ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDZiMWZkMWIuLmI1ZjlkZWYgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMiw2ICsyLDcgQEAKIC9HSVQtQ0ZMQUdTCiAvR0lULUxERkxBR1MKIC9HSVQtUFJFRklYCisvR0lULVBFUkwtREVGSU5FUwogL0dJVC1QWVRIT04tVkFSUwogL0dJVC1TQ1JJUFQtREVGSU5FUwogL0dJVC1VU0VSLUFHRU5UCkBAIC03NSw3ICs3Niw2IEBACiAvZ2l0LWluaXQtZGIKIC9naXQtaW5zdGF3ZWIKIC9naXQtbG9nCi0vZ2l0LWxvc3QtZm91bmQKIC9naXQtbHMtZmlsZXMKIC9naXQtbHMtcmVtb3RlCiAvZ2l0LWxzLXRyZWUKQEAgLTEwNSw3ICsxMDUsNiBAQAogL2dpdC1wYWNrLXJlZnMKIC9naXQtcGFyc2UtcmVtb3RlCiAvZ2l0LXBhdGNoLWlkCi0vZ2l0LXBlZWstcmVtb3RlCiAvZ2l0LXBydW5lCiAvZ2l0LXBydW5lLXBhY2tlZAogL2dpdC1wdWxsCkBAIC0xMzEsNyArMTMwLDYgQEAKIC9naXQtcmVtb3RlLXRlc3Rzdm4KIC9naXQtcmVwYWNrCiAvZ2l0LXJlcGxhY2UKLS9naXQtcmVwby1jb25maWcKIC9naXQtcmVxdWVzdC1wdWxsCiAvZ2l0LXJlcmVyZQogL2dpdC1yZXNldApAQCAtMTU5LDcgKzE1Nyw2IEBACiAvZ2l0LXN2bgogL2dpdC1zeW1ib2xpYy1yZWYKIC9naXQtdGFnCi0vZ2l0LXRhci10cmVlCiAvZ2l0LXVucGFjay1maWxlCiAvZ2l0LXVucGFjay1vYmplY3RzCiAvZ2l0LXVwZGF0ZS1pbmRleApAQCAtMjAyLDYgKzE5OSw3IEBACiAvdGVzdC1zdHJpbmctbGlzdAogL3Rlc3Qtc3VicHJvY2VzcwogL3Rlc3Qtc3ZuLWZlCisvdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uCiAvdGVzdC13aWxkbWF0Y2gKIC9jb21tb24tY21kcy5oCiAqLnRhci5negpkaWZmIC0tZ2l0IGEvLm1haWxtYXAgYi8ubWFpbG1hcAppbmRleCAxYzFmNWVjLi4xMTA1N2NiIDEwMDY0NAotLS0gYS8ubWFpbG1hcAorKysgYi8ubWFpbG1hcApAQCAtMjE4LDcgKzIxOCw5IEBACiBUZWQgUGVyY2l2YWwgPHRlZEBtaWRnM3QubmV0PiA8dGVkLnBlcmNpdmFsQHF1ZXN0LmNvbT4KIFRoZW9kb3JlIFRzJ28gPHR5dHNvQG1pdC5lZHU+CiBUaG9tYXMgQWNrZXJtYW5uIDx0aC5hY2tlckBhcmNvci5kZT4gPHRoLmFja2VyNjZAYXJjb3IuZGU+Ci1UaG9tYXMgUmFzdCA8dHJhc3RAaW5mLmV0aHouY2g+IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitUaG9tYXMgUmFzdCA8dHJAdGhvbWFzcmFzdC5jaD4gPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK1Rob21hcyBSYXN0IDx0ckB0aG9tYXNyYXN0LmNoPiA8dHJhc3RAaW5mLmV0aHouY2g+CitUaG9tYXMgUmFzdCA8dHJAdGhvbWFzcmFzdC5jaD4gPHRyYXN0QGdvb2dsZS5jb20+CiBUaW1vIEhpcnZvbmVuIDx0aWhpcnZvbkBnbWFpbC5jb20+IDx0aWhpcnZvbkBlZS5vdWx1LmZpPgogVG9ieSBBbGxzb3BwIDxUb2J5LkFsbHNvcHBAbmF2bWFuLmNvLm56PiA8dG9ieS5hbGxzb3BwQG5hdm1hbi5jby5uej4KIFRvbSBHcmVubmFuIDx0bWdyZW5uYW5AZ21haWwuY29tPiA8dGdyZW5uYW5AcmVkYmFjay5jb20+CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0NvZGluZ0d1aWRlbGluZXMgYi9Eb2N1bWVudGF0aW9uL0NvZGluZ0d1aWRlbGluZXMKaW5kZXggNTU5ZDVmOS4uZWY2N2I1MyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9Db2RpbmdHdWlkZWxpbmVzCisrKyBiL0RvY3VtZW50YXRpb24vQ29kaW5nR3VpZGVsaW5lcwpAQCAtMTQ1LDYgKzE0NSwxNCBAQAogICAgdGhleSB3ZXJlIGRlc2NyaWJpbmcgY2hhbmdlcy4gIE9mdGVuIHNwbGl0dGluZyBhIGZ1bmN0aW9uCiAgICBpbnRvIHR3byBtYWtlcyB0aGUgaW50ZW50aW9uIG9mIHRoZSBjb2RlIG11Y2ggY2xlYXJlci4KIAorIC0gTXVsdGktbGluZSBjb21tZW50cyBpbmNsdWRlIHRoZWlyIGRlbGltaXRlcnMgb24gc2VwYXJhdGUgbGluZXMgZnJvbQorICAgdGhlIHRleHQuICBFLmcuCisKKwkvKgorCSAqIEEgdmVyeSBsb25nCisJICogbXVsdGktbGluZSBjb21tZW50LgorCSAqLworCiAgLSBEb3VibGUgbmVnYXRpb24gaXMgb2Z0ZW4gaGFyZGVyIHRvIHVuZGVyc3RhbmQgdGhhbiBubyBuZWdhdGlvbgogICAgYXQgYWxsLgogCkBAIC0yNDIsMTEgKzI1MCwyMSBAQAogIHByb2Nlc3NlZCBpbnRvIEhUTUwgYW5kIG1hbnBhZ2VzIChlLmcuIGdpdC5odG1sIGFuZCBnaXQuMSBpbiB0aGUKICBzYW1lIGRpcmVjdG9yeSkuCiAKKyBUaGUgZG9jdW1lbnRhdGlvbiBsaWJlcmFsbHkgbWl4ZXMgVVMgYW5kIFVLIEVuZ2xpc2ggKGVuX1VTL1VLKQorIG5vcm1zIGZvciBzcGVsbGluZyBhbmQgZ3JhbW1hciwgd2hpY2ggaXMgc29tZXdoYXQgdW5mb3J0dW5hdGUuCisgSW4gYW4gaWRlYWwgd29ybGQsIGl0IHdvdWxkIGhhdmUgYmVlbiBiZXR0ZXIgaWYgaXQgY29uc2lzdGVudGx5CisgdXNlZCBvbmx5IG9uZSBhbmQgbm90IHRoZSBvdGhlciwgYW5kIHdlIHdvdWxkIGhhdmUgcGlja2VkIGVuX1VTCisgKGlmIHlvdSB3aXNoIHRvIGNvcnJlY3QgdGhlIEVuZ2xpc2ggb2Ygc29tZSBvZiB0aGUgZXhpc3RpbmcKKyBkb2N1bWVudGF0aW9uLCBwbGVhc2Ugc2VlIHRoZSBkb2N1bWVudGF0aW9uLXJlbGF0ZWQgYWR2aWNlIGluIHRoZQorIERvY3VtZW50YXRpb24vU3VibWl0dGluZ1BhdGNoZXMgZmlsZSkuCisKICBFdmVyeSB1c2VyLXZpc2libGUgY2hhbmdlIHNob3VsZCBiZSByZWZsZWN0ZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uCiAgVGhlIHNhbWUgZ2VuZXJhbCBydWxlIGFzIGZvciBjb2RlIGFwcGxpZXMgLS0gaW1pdGF0ZSB0aGUgZXhpc3RpbmcKLSBjb252ZW50aW9ucy4gIEEgZmV3IGNvbW1lbnRlZCBleGFtcGxlcyBmb2xsb3cgdG8gcHJvdmlkZSByZWZlcmVuY2UKLSB3aGVuIHdyaXRpbmcgb3IgbW9kaWZ5aW5nIGNvbW1hbmQgdXNhZ2Ugc3RyaW5ncyBhbmQgc3lub3BzaXMgc2VjdGlvbnMKLSBpbiB0aGUgbWFudWFsIHBhZ2VzOgorIGNvbnZlbnRpb25zLgorCisgQSBmZXcgY29tbWVudGVkIGV4YW1wbGVzIGZvbGxvdyB0byBwcm92aWRlIHJlZmVyZW5jZSB3aGVuIHdyaXRpbmcgb3IKKyBtb2RpZnlpbmcgY29tbWFuZCB1c2FnZSBzdHJpbmdzIGFuZCBzeW5vcHNpcyBzZWN0aW9ucyBpbiB0aGUgbWFudWFsCisgcGFnZXM6CiAKICBQbGFjZWhvbGRlcnMgYXJlIHNwZWxsZWQgaW4gbG93ZXJjYXNlIGFuZCBlbmNsb3NlZCBpbiBhbmdsZSBicmFja2V0czoKICAgIDxmaWxlPgpAQCAtMjk2LDMgKzMxNCwyOSBAQAogICAgVXNlICdnaXQnIChhbGwgbG93ZXJjYXNlKSB3aGVuIHRhbGtpbmcgYWJvdXQgY29tbWFuZHMgaS5lLiBzb21ldGhpbmcKICAgIHRoZSB1c2VyIHdvdWxkIHR5cGUgaW50byBhIHNoZWxsIGFuZCB1c2UgJ0dpdCcgKHVwcGVyY2FzZSBmaXJzdCBsZXR0ZXIpCiAgICB3aGVuIHRhbGtpbmcgYWJvdXQgdGhlIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gYW5kIGl0cyBwcm9wZXJ0aWVzLgorCisgQSBmZXcgY29tbWVudGVkIGV4YW1wbGVzIGZvbGxvdyB0byBwcm92aWRlIHJlZmVyZW5jZSB3aGVuIHdyaXRpbmcgb3IKKyBtb2RpZnlpbmcgcGFyYWdyYXBocyBvciBvcHRpb24vY29tbWFuZCBleHBsYW5hdGlvbnMgdGhhdCBjb250YWluIG9wdGlvbnMKKyBvciBjb21tYW5kczoKKworIExpdGVyYWwgZXhhbXBsZXMgKGUuZy4gdXNlIG9mIGNvbW1hbmQtbGluZSBvcHRpb25zLCBjb21tYW5kIG5hbWVzLCBhbmQKKyBjb25maWd1cmF0aW9uIHZhcmlhYmxlcykgYXJlIHR5cGVzZXQgaW4gbW9ub3NwYWNlLCBhbmQgaWYgeW91IGNhbiB1c2UKKyBgYmFja3RpY2tzIGFyb3VuZCB3b3JkIHBocmFzZXNgLCBkbyBzby4KKyAgIGAtLXByZXR0eT1vbmVsaW5lYAorICAgYGdpdCByZXYtbGlzdGAKKyAgIGByZW1vdGUucHVzaGRlZmF1bHRgCisKKyBXb3JkIHBocmFzZXMgZW5jbG9zZWQgaW4gYGJhY2t0aWNrIGNoYXJhY3RlcnNgIGFyZSByZW5kZXJlZCBsaXRlcmFsbHkKKyBhbmQgd2lsbCBub3QgYmUgZnVydGhlciBleHBhbmRlZC4gVGhlIHVzZSBvZiBgYmFja3RpY2tzYCB0byBhY2hpZXZlIHRoZQorIHByZXZpb3VzIHJ1bGUgbWVhbnMgdGhhdCBsaXRlcmFsIGV4YW1wbGVzIHNob3VsZCBub3QgdXNlIEFzY2lpRG9jCisgZXNjYXBlcy4KKyAgIENvcnJlY3Q6CisgICAgICBgLS1wcmV0dHk9b25lbGluZWAKKyAgIEluY29ycmVjdDoKKyAgICAgIGBcLS1wcmV0dHk9b25lbGluZWAKKworIElmIHNvbWUgcGxhY2UgaW4gdGhlIGRvY3VtZW50YXRpb24gbmVlZHMgdG8gdHlwZXNldCBhIGNvbW1hbmQgdXNhZ2UKKyBleGFtcGxlIHdpdGggaW5saW5lIHN1YnN0aXR1dGlvbnMsIGl0IGlzIGZpbmUgdG8gdXNlICttb25vc3BhY2VkIGFuZAorIGlubGluZSBzdWJzdGl0dXRlZCB0ZXh0KyBpbnN0ZWFkIG9mIGBtb25vc3BhY2VkIGxpdGVyYWwgdGV4dGAsIGFuZCB3aXRoCisgdGhlIGZvcm1lciwgdGhlIHBhcnQgdGhhdCBzaG91bGQgbm90IGdldCBzdWJzdGl0dXRlZCBtdXN0IGJlCisgcXVvdGVkL2VzY2FwZWQuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL01ha2VmaWxlIGIvRG9jdW1lbnRhdGlvbi9NYWtlZmlsZQppbmRleCAwY2ZkYzM2Li5mYzZiMmNmIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL01ha2VmaWxlCisrKyBiL0RvY3VtZW50YXRpb24vTWFrZWZpbGUKQEAgLTIsNiArMiw5IEBACiBNQU4xX1RYVCA9CiBNQU41X1RYVCA9CiBNQU43X1RYVCA9CitURUNIX0RPQ1MgPQorQVJUSUNMRVMgPQorU1BfQVJUSUNMRVMgPQogCiBNQU4xX1RYVCArPSAkKGZpbHRlci1vdXQgXAogCQkkKGFkZHN1ZmZpeCAudHh0LCAkKEFSVElDTEVTKSAkKFNQX0FSVElDTEVTKSksIFwKQEAgLTM3LDEyICs0MCwxMiBAQAogT0JTT0xFVEVfSFRNTCA9IGdpdC1yZW1vdGUtaGVscGVycy5odG1sCiBET0NfSFRNTCA9ICQoTUFOX0hUTUwpICQoT0JTT0xFVEVfSFRNTCkKIAotQVJUSUNMRVMgPSBob3d0by1pbmRleAorQVJUSUNMRVMgKz0gaG93dG8taW5kZXgKIEFSVElDTEVTICs9IGV2ZXJ5ZGF5CiBBUlRJQ0xFUyArPSBnaXQtdG9vbHMKIEFSVElDTEVTICs9IGdpdC1iaXNlY3QtbGsyMDA5CiAjIHdpdGggdGhlaXIgb3duIGZvcm1hdHRpbmcgcnVsZXMuCi1TUF9BUlRJQ0xFUyA9IHVzZXItbWFudWFsCitTUF9BUlRJQ0xFUyArPSB1c2VyLW1hbnVhbAogU1BfQVJUSUNMRVMgKz0gaG93dG8vbmV3LWNvbW1hbmQKIFNQX0FSVElDTEVTICs9IGhvd3RvL3JldmVydC1icmFuY2gtcmViYXNlCiBTUF9BUlRJQ0xFUyArPSBob3d0by91c2luZy1tZXJnZS1zdWJ0cmVlCkBAIC01MywxMyArNTYsMTUgQEAKIFNQX0FSVElDTEVTICs9IGhvd3RvL3NlcGFyYXRpbmctdG9waWMtYnJhbmNoZXMKIFNQX0FSVElDTEVTICs9IGhvd3RvL3JldmVydC1hLWZhdWx0eS1tZXJnZQogU1BfQVJUSUNMRVMgKz0gaG93dG8vcmVjb3Zlci1jb3JydXB0ZWQtYmxvYi1vYmplY3QKK1NQX0FSVElDTEVTICs9IGhvd3RvL3JlY292ZXItY29ycnVwdGVkLW9iamVjdC1oYXJkZXIKIFNQX0FSVElDTEVTICs9IGhvd3RvL3JlYnVpbGQtZnJvbS11cGRhdGUtaG9vawogU1BfQVJUSUNMRVMgKz0gaG93dG8vcmViYXNlLWZyb20taW50ZXJuYWwtYnJhbmNoCiBTUF9BUlRJQ0xFUyArPSBob3d0by9tYWludGFpbi1naXQKIEFQSV9ET0NTID0gJChwYXRzdWJzdCAlLnR4dCwlLCQoZmlsdGVyLW91dCB0ZWNobmljYWwvYXBpLWluZGV4LXNrZWwudHh0IHRlY2huaWNhbC9hcGktaW5kZXgudHh0LCAkKHdpbGRjYXJkIHRlY2huaWNhbC9hcGktKi50eHQpKSkKIFNQX0FSVElDTEVTICs9ICQoQVBJX0RPQ1MpCiAKLVRFQ0hfRE9DUyA9IHRlY2huaWNhbC9pbmRleC1mb3JtYXQKK1RFQ0hfRE9DUyArPSB0ZWNobmljYWwvaHR0cC1wcm90b2NvbAorVEVDSF9ET0NTICs9IHRlY2huaWNhbC9pbmRleC1mb3JtYXQKIFRFQ0hfRE9DUyArPSB0ZWNobmljYWwvcGFjay1mb3JtYXQKIFRFQ0hfRE9DUyArPSB0ZWNobmljYWwvcGFjay1oZXVyaXN0aWNzCiBURUNIX0RPQ1MgKz0gdGVjaG5pY2FsL3BhY2stcHJvdG9jb2wKQEAgLTEwMyw2ICsxMDgsNyBAQAogSU5TVEFMTF9JTkZPID0gaW5zdGFsbC1pbmZvCiBET0NCT09LMlhfVEVYSSA9IGRvY2Jvb2syeC10ZXhpCiBEQkxBVEVYID0gZGJsYXRleAorQVNDSUlET0NfREJMQVRFWF9ESVIgPSAvZXRjL2FzY2lpZG9jL2RibGF0ZXgKIGlmbmRlZiBQRVJMX1BBVEgKIAlQRVJMX1BBVEggPSAvdXNyL2Jpbi9wZXJsCiBlbmRpZgpAQCAtMzIyLDcgKzMyOCw3IEBACiAKIHVzZXItbWFudWFsLnhtbDogdXNlci1tYW51YWwudHh0IHVzZXItbWFudWFsLmNvbmYKIAkkKFFVSUVUX0FTQ0lJRE9DKSQoUk0pICRAKyAkQCAmJiBcCi0JJChBU0NJSURPQykgJChBU0NJSURPQ19FWFRSQSkgLWIgZG9jYm9vayAtZCBib29rIC1vICRAKyAkPCAmJiBcCisJJChBU0NJSURPQykgJChBU0NJSURPQ19FWFRSQSkgLWIgZG9jYm9vayAtZCBhcnRpY2xlIC1vICRAKyAkPCAmJiBcCiAJbXYgJEArICRACiAKIHRlY2huaWNhbC9hcGktaW5kZXgudHh0OiB0ZWNobmljYWwvYXBpLWluZGV4LXNrZWwudHh0IFwKQEAgLTM1NCw3ICszNjAsNyBAQAogCiB1c2VyLW1hbnVhbC5wZGY6IHVzZXItbWFudWFsLnhtbAogCSQoUVVJRVRfREJMQVRFWCkkKFJNKSAkQCsgJEAgJiYgXAotCSQoREJMQVRFWCkgLW8gJEArIC1wIC9ldGMvYXNjaWlkb2MvZGJsYXRleC9hc2NpaWRvYy1kYmxhdGV4LnhzbCAtcyAvZXRjL2FzY2lpZG9jL2RibGF0ZXgvYXNjaWlkb2MtZGJsYXRleC5zdHkgJDwgJiYgXAorCSQoREJMQVRFWCkgLW8gJEArIC1wICQoQVNDSUlET0NfREJMQVRFWF9ESVIpL2FzY2lpZG9jLWRibGF0ZXgueHNsIC1zICQoQVNDSUlET0NfREJMQVRFWF9ESVIpL2FzY2lpZG9jLWRibGF0ZXguc3R5ICQ8ICYmIFwKIAltdiAkQCsgJEAKIAogZ2l0bWFuLnRleGk6ICQoTUFOX1hNTCkgY2F0LXRleGkucGVybApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuMTEuMi50eHQgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuNy4xMS4yLnR4dAppbmRleCBhMGQyNGQxLi5mMGNmZDAyIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuNy4xMS4yLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuNy4xMS4yLnR4dApAQCAtMzEsNyArMzEsNyBAQAogICogImdpdCBkaWZmIC0tbm8taW5kZXgiIGRpZCBub3Qgd29yayB3aXRoIHBhZ2VycyBjb3JyZWN0bHkuCiAKICAqICJnaXQgZGlmZiBDT1BZSU5HIEhFQUQ6Q09QWUlORyIgZ2F2ZSBhIG5vbnNlbnNlIGVycm9yIG1lc3NhZ2UgdGhhdAotICAgY2xhaW1lZCB0aGF0IHRoZSB0cmVlaXNoIEhFQUQgZGlkIG5vdCBoYXZlIENPUFlJTkcgaW4gaXQuCisgICBjbGFpbWVkIHRoYXQgdGhlIHRyZWUtaXNoIEhFQUQgZGlkIG5vdCBoYXZlIENPUFlJTkcgaW4gaXQuCiAKICAqIFdoZW4gImdpdCBsb2ciIGdldHMgIi0tc2ltcGxpZnktbWVyZ2VzL2J5LWRlY29yYXRpb24iIHRvZ2V0aGVyIHdpdGgKICAgICItLWZpcnN0LXBhcmVudCIsIHRoZSBjb21iaW5hdGlvbiBvZiB0aGVzZSBvcHRpb25zIG1ha2VzIHRoZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguNS4xLnR4dCBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjUuMS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIzNmFhZgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjUuMS50eHQKQEAgLTAsMCArMSw5IEBACitHaXQgdjEuOC41LjEgUmVsZWFzZSBOb3RlcworPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworRml4ZXMgc2luY2UgdjEuOC41CistLS0tLS0tLS0tLS0tLS0tLS0KKworICogImdpdCBzdWJtb2R1bGUgaW5pdCIgY29waWVkICJzdWJtb2R1bGUuJG5hbWUudXBkYXRlIiBzZXR0aW5ncyBmcm9tCisgICAuZ2l0bW9kdWxlcyB0byAuZ2l0L2NvbmZpZyB3aXRob3V0IG1ha2luZyBzdXJlIGlmIHRoZSBzdWdnZXN0ZWQKKyAgIHZhbHVlIHdhcyBzZW5zaWJsZS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjUuMi50eHQgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC41LjIudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhYzQ5ODQKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC41LjIudHh0CkBAIC0wLDAgKzEsMjAgQEAKK0dpdCB2MS44LjUuMiBSZWxlYXNlIE5vdGVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PQorCitGaXhlcyBzaW5jZSB2MS44LjUuMQorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICogImdpdCBkaWZmIC0tICc6KGljYXNlKW1ha2VmaWxlJyIgd2FzIHVubmVjZXNzYXJpbHkgcmVqZWN0ZWQgYXQgdGhlCisgICBjb21tYW5kIGxpbmUgcGFyc2VyLgorCisgKiAiZ2l0IGNhdC1maWxlIC0tYmF0Y2gtY2hlY2s9b2siIGRpZCBub3QgY2hlY2sgdGhlIGV4aXN0ZW5jZSBvZgorICAgdGhlIG5hbWVkIG9iamVjdC4KKworICogImdpdCBhbSAtLWFib3J0IiBzb21ldGltZXMgY29tcGxhaW5lZCBhYm91dCBub3QgYmVpbmcgYWJsZSB0byB3cml0ZQorICAgYSB0cmVlIHdpdGggYW4gMHs0MH0gb2JqZWN0IGluIGl0LgorCisgKiBUd28gcHJvY2Vzc2VzIGNyZWF0aW5nIGxvb3NlIG9iamVjdHMgYXQgdGhlIHNhbWUgdGltZSBjb3VsZCBoYXZlCisgICBmYWlsZWQgdW5uZWNlc3NhcmlseSB3aGVuIHRoZSBuYW1lIG9mIHRoZWlyIG5ldyBvYmplY3RzIHN0YXJ0ZWQKKyAgIHdpdGggdGhlIHNhbWUgYnl0ZSB2YWx1ZSwgZHVlIHRvIGEgcmFjZSBjb25kaXRpb24uCisKK0Fsc28gY29udGFpbnMgdHlwb2ZpeGVzLCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kIHRyaXZpYWwgY29kZSBjbGVhbi11cHMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC41LjMudHh0IGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguNS4zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGUyZGQwCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguNS4zLnR4dApAQCAtMCwwICsxLDI3IEBACitHaXQgdjEuOC41LjMgUmVsZWFzZSBOb3RlcworPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworRml4ZXMgc2luY2UgdjEuOC41LjIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAqIFRoZSAiLS1bbm8tXWluZm9ybWF0aXZlLWVycm9ycyIgb3B0aW9ucyB0byAiZ2l0IGRhZW1vbiIgd2VyZSBwYXJzZWQKKyAgIGEgYml0IHRvbyBsb29zZWx5LCBhbGxvd2luZyBhbnkgb3RoZXIgc3RyaW5nIGFmdGVyIHRoZXNlIG9wdGlvbgorICAgbmFtZXMuCisKKyAqIEEgImdjIiBwcm9jZXNzIHJ1bm5pbmcgYXMgYSBkaWZmZXJlbnQgdXNlciBzaG91bGQgYmUgYWJsZSB0byBzdG9wIGEKKyAgIG5ldyAiZ2MiIHByb2Nlc3MgZnJvbSBzdGFydGluZy4KKworICogQW4gZWFybGllciAiY2xlYW4tdXAiIGludHJvZHVjZWQgYW4gdW5uZWNlc3NhcnkgbWVtb3J5IGxlYWsgdG8gdGhlCisgICBjcmVkZW50aWFsIHN1YnN5c3RlbS4KKworICogImdpdCBtdiBBIEIvIiwgd2hlbiBCIGRvZXMgbm90IGV4aXN0IGFzIGEgZGlyZWN0b3J5LCBzaG91bGQgZXJyb3IKKyAgIG91dCwgYnV0IGl0IGRpZG4ndC4KKworICogImdpdCByZXYtcGFyc2UgPHJldnM+IC0tIDxwYXRocz4iIGRpZCBub3QgaW1wbGVtZW50IHRoZSB1c3VhbAorICAgZGlzYW1iaWd1YXRpb24gcnVsZXMgdGhlIGNvbW1hbmRzIGluIHRoZSAiZ2l0IGxvZyIgZmFtaWx5IHVzZWQgaW4KKyAgIHRoZSBzYW1lIHdheS4KKworICogImdpdCBjYXQtZmlsZSAtLWJhdGNoPSIsIGFuIGFkbWl0dGVkbHkgdXNlbGVzcyBjb21tYW5kLCBkaWQgbm90CisgICBiZWhhdmUgdmVyeSB3ZWxsLgorCitBbHNvIGNvbnRhaW5zIHR5cG9maXhlcywgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFuZCB0cml2aWFsIGNvZGUgY2xlYW4tdXBzLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguNS50eHQgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC41LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDJkZjBjCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguNS50eHQKQEAgLTAsMCArMSw0NTYgQEAKK0dpdCB2MS44LjUgUmVsZWFzZSBOb3RlcworPT09PT09PT09PT09PT09PT09PT09PT09CisKK0JhY2t3YXJkIGNvbXBhdGliaWxpdHkgbm90ZXMgKGZvciBHaXQgMi4wKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1doZW4gImdpdCBwdXNoIFskdGhlcmVdIiBkb2VzIG5vdCBzYXkgd2hhdCB0byBwdXNoLCB3ZSBoYXZlIHVzZWQgdGhlCit0cmFkaXRpb25hbCAibWF0Y2hpbmciIHNlbWFudGljcyBzbyBmYXIgKGFsbCB5b3VyIGJyYW5jaGVzIHdlcmUgc2VudAordG8gdGhlIHJlbW90ZSBhcyBsb25nIGFzIHRoZXJlIGFscmVhZHkgYXJlIGJyYW5jaGVzIG9mIHRoZSBzYW1lIG5hbWUKK292ZXIgdGhlcmUpLiAgSW4gR2l0IDIuMCwgdGhlIGRlZmF1bHQgd2lsbCBjaGFuZ2UgdG8gdGhlICJzaW1wbGUiCitzZW1hbnRpY3MsIHdoaWNoIHB1c2hlczoKKworIC0gb25seSB0aGUgY3VycmVudCBicmFuY2ggdG8gdGhlIGJyYW5jaCB3aXRoIHRoZSBzYW1lIG5hbWUsIGFuZCBvbmx5CisgICB3aGVuIHRoZSBjdXJyZW50IGJyYW5jaCBpcyBzZXQgdG8gaW50ZWdyYXRlIHdpdGggdGhhdCByZW1vdGUKKyAgIGJyYW5jaCwgaWYgeW91IGFyZSBwdXNoaW5nIHRvIHRoZSBzYW1lIHJlbW90ZSBhcyB5b3UgZmV0Y2ggZnJvbTsgb3IKKworIC0gb25seSB0aGUgY3VycmVudCBicmFuY2ggdG8gdGhlIGJyYW5jaCB3aXRoIHRoZSBzYW1lIG5hbWUsIGlmIHlvdQorICAgYXJlIHB1c2hpbmcgdG8gYSByZW1vdGUgdGhhdCBpcyBub3Qgd2hlcmUgeW91IHVzdWFsbHkgZmV0Y2ggZnJvbS4KKworVXNlIHRoZSB1c2VyIHByZWZlcmVuY2UgY29uZmlndXJhdGlvbiB2YXJpYWJsZSAicHVzaC5kZWZhdWx0IiB0bworY2hhbmdlIHRoaXMuICBJZiB5b3UgYXJlIGFuIG9sZC10aW1lciB3aG8gaXMgdXNlZCB0byB0aGUgIm1hdGNoaW5nIgorc2VtYW50aWNzLCB5b3UgY2FuIHNldCB0aGUgdmFyaWFibGUgdG8gIm1hdGNoaW5nIiB0byBrZWVwIHRoZQordHJhZGl0aW9uYWwgYmVoYXZpb3VyLiAgSWYgeW91IHdhbnQgdG8gbGl2ZSBpbiB0aGUgZnV0dXJlIGVhcmx5LCB5b3UKK2NhbiBzZXQgaXQgdG8gInNpbXBsZSIgdG9kYXkgd2l0aG91dCB3YWl0aW5nIGZvciBHaXQgMi4wLgorCitXaGVuICJnaXQgYWRkIC11IiAoYW5kICJnaXQgYWRkIC1BIikgaXMgcnVuIGluc2lkZSBhIHN1YmRpcmVjdG9yeSBhbmQKK2RvZXMgbm90IHNwZWNpZnkgd2hpY2ggcGF0aHMgdG8gYWRkIG9uIHRoZSBjb21tYW5kIGxpbmUsIGl0Cit3aWxsIG9wZXJhdGUgb24gdGhlIGVudGlyZSB0cmVlIGluIEdpdCAyLjAgZm9yIGNvbnNpc3RlbmN5Cit3aXRoICJnaXQgY29tbWl0IC1hIiBhbmQgb3RoZXIgY29tbWFuZHMuICBUaGVyZSB3aWxsIGJlIG5vCittZWNoYW5pc20gdG8gbWFrZSBwbGFpbiAiZ2l0IGFkZCAtdSIgYmVoYXZlIGxpa2UgImdpdCBhZGQgLXUgLiIuCitDdXJyZW50IHVzZXJzIG9mICJnaXQgYWRkIC11IiAod2l0aG91dCBhIHBhdGhzcGVjKSBzaG91bGQgc3RhcnQKK3RyYWluaW5nIHRoZWlyIGZpbmdlcnMgdG8gZXhwbGljaXRseSBzYXkgImdpdCBhZGQgLXUgLiIKK2JlZm9yZSBHaXQgMi4wIGNvbWVzLiAgQSB3YXJuaW5nIGlzIGlzc3VlZCB3aGVuIHRoZXNlIGNvbW1hbmRzIGFyZQorcnVuIHdpdGhvdXQgYSBwYXRoc3BlYyBhbmQgd2hlbiB5b3UgaGF2ZSBsb2NhbCBjaGFuZ2VzIG91dHNpZGUgdGhlCitjdXJyZW50IGRpcmVjdG9yeSwgYmVjYXVzZSB0aGUgYmVoYXZpb3VyIGluIEdpdCAyLjAgd2lsbCBiZSBkaWZmZXJlbnQKK2Zyb20gdG9kYXkncyB2ZXJzaW9uIGluIHN1Y2ggYSBzaXR1YXRpb24uCisKK0luIEdpdCAyLjAsICJnaXQgYWRkIDxwYXRoPiIgd2lsbCBiZWhhdmUgYXMgImdpdCBhZGQgLUEgPHBhdGg+Iiwgc28KK3RoYXQgImdpdCBhZGQgZGlyLyIgd2lsbCBub3RpY2UgcGF0aHMgeW91IHJlbW92ZWQgZnJvbSB0aGUgZGlyZWN0b3J5CithbmQgcmVjb3JkIHRoZSByZW1vdmFsLiAgVmVyc2lvbnMgYmVmb3JlIEdpdCAyLjAsIGluY2x1ZGluZyB0aGlzCityZWxlYXNlLCB3aWxsIGtlZXAgaWdub3JpbmcgcmVtb3ZhbHMsIGJ1dCB0aGUgdXNlcnMgd2hvIHJlbHkgb24gdGhpcworYmVoYXZpb3VyIGFyZSBlbmNvdXJhZ2VkIHRvIHN0YXJ0IHVzaW5nICJnaXQgYWRkIC0taWdub3JlLXJlbW92YWwgPHBhdGg+Igorbm93IGJlZm9yZSAyLjAgaXMgcmVsZWFzZWQuCisKK1RoZSBkZWZhdWx0IHByZWZpeCBmb3IgImdpdCBzdm4iIHdpbGwgY2hhbmdlIGluIEdpdCAyLjAuICBGb3IgYSBsb25nCit0aW1lLCAiZ2l0IHN2biIgY3JlYXRlZCBpdHMgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIGRpcmVjdGx5IHVuZGVyCityZWZzL3JlbW90ZXMsIGJ1dCBpdCB3aWxsIHBsYWNlIHRoZW0gdW5kZXIgcmVmcy9yZW1vdGVzL29yaWdpbi8gdW5sZXNzCitpdCBpcyB0b2xkIG90aGVyd2lzZSB3aXRoIGl0cyAtLXByZWZpeCBvcHRpb24uCisKKworVXBkYXRlcyBzaW5jZSB2MS44LjQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0ZvcmVpZ24gaW50ZXJmYWNlcywgc3Vic3lzdGVtcyBhbmQgcG9ydHMuCisKKyAqICJnaXQtc3ZuIiBoYXMgYmVlbiB0YXVnaHQgdG8gdXNlIHRoZSBzZXJmIGxpYnJhcnksIHdoaWNoIGlzIHRoZQorICAgb25seSBvcHRpb24gU1ZOIDEuOC4wIG9mZmVycyB1cyB3aGVuIHRhbGtpbmcgdGhlIEhUVFAgcHJvdG9jb2wuCisKKyAqICJnaXQtc3ZuIiB0YWxraW5nIG92ZXIgYW4gaHR0cHM6Ly8gY29ubmVjdGlvbiB1c2luZyB0aGUgc2VyZiBsaWJyYXJ5CisgICBkdW1wZWQgY29yZSBkdWUgdG8gYSBidWcgaW4gdGhlIHNlcmYgbGlicmFyeSB0aGF0IFNWTiB1c2VzLiAgV29yaworICAgYXJvdW5kIGl0IG9uIG91ciBzaWRlLCBldmVuIHRob3VnaCB0aGUgU1ZOIHNpZGUgaXMgYmVpbmcgZml4ZWQuCisKKyAqIE9uIE1hY09TIFgsIHdlIGRldGVjdGVkIGlmIHRoZSBmaWxlc3lzdGVtIG5lZWRzIHRoZSAicHJlLWNvbXBvc2VkCisgICB1bmljb2RlIHN0cmluZ3MiIHdvcmthcm91bmQsIGJ1dCBkaWQgbm90IGF1dG9tYXRpY2FsbHkgZW5hYmxlIGl0LgorICAgTm93IHdlIGRvLgorCisgKiByZW1vdGUtaGcgcmVtb3RlIGhlbHBlciBtaXNiZWhhdmVkIHdoZW4gaW50ZXJhY3Rpbmcgd2l0aCBhIGxvY2FsIEhnCisgICByZXBvc2l0b3J5IHJlbGF0aXZlIHRvIHRoZSBob21lIGRpcmVjdG9yeSwgZS5nLiAiY2xvbmUgaGc6On4vdGhlcmUiLgorCisgKiBpbWFwLXNlbmQgcG9ydGVkIHRvIE9TIFggdXNlcyBBcHBsZSdzIHNlY3VyaXR5IGZyYW1ld29yayBpbnN0ZWFkIG9mCisgICBPcGVuU1NMJ3MuCisKKyAqICJnaXQgZmFzdC1pbXBvcnQiIHRyZWF0cyBhbiBlbXB0eSBwYXRoIGdpdmVuIHRvICJscyIgYXMgdGhlIHJvb3Qgb2YKKyAgIHRoZSB0cmVlLgorCisKK1VJLCBXb3JrZmxvd3MgJiBGZWF0dXJlcworCisgKiB4ZGctb3BlbiBjYW4gYmUgdXNlZCBhcyBhIGJyb3dzZXIgYmFja2VuZCBmb3IgImdpdCB3ZWItYnJvd3NlIgorICAgKGhlbmNlIHRvIHNob3cgImdpdCBoZWxwIC13IiBvdXRwdXQpLCB3aGVuIGF2YWlsYWJsZS4KKworICogImdpdCBncmVwIiBhbmQgImdpdCBzaG93IiBwYXkgYXR0ZW50aW9uIHRvIHRoZSAiLS10ZXh0Y29udiIgb3B0aW9uCisgICB3aGVuIHRoZXNlIGNvbW1hbmRzIGFyZSB0b2xkIHRvIG9wZXJhdGUgb24gYmxvYiBvYmplY3RzIChlLmcuICJnaXQKKyAgIGdyZXAgLWUgcGF0dGVybiAtLXRleHRjb252IEhFQUQ6TWFrZWZpbGUiKS4KKworICogImdpdCByZXBsYWNlIiBoZWxwZXIgbm8gbG9uZ2VyIGFsbG93cyBhbiBvYmplY3QgdG8gYmUgcmVwbGFjZWQgd2l0aAorICAgYW5vdGhlciBvYmplY3Qgb2YgYSBkaWZmZXJlbnQgdHlwZSB0byBhdm9pZCBjb25mdXNpb24gKHlvdSBjYW4KKyAgIHN0aWxsIG1hbnVhbGx5IGNyYWZ0IHN1Y2ggYSByZXBsYWNlbWVudCB1c2luZyAiZ2l0IHVwZGF0ZS1yZWYiLCBhcyBhbgorICAgZXNjYXBlIGhhdGNoKS4KKworICogImdpdCBzdGF0dXMiIG5vIGxvbmdlciBwcmludHMgdGhlIGRpcnR5IHN0YXR1cyBpbmZvcm1hdGlvbiBvZgorICAgc3VibW9kdWxlcyBmb3Igd2hpY2ggc3VibW9kdWxlLiRuYW1lLmlnbm9yZSBpcyBzZXQgdG8gImFsbCIuCisKKyAqICJnaXQgcmViYXNlIC1pIiBob25vdXJzIGNvcmUuYWJicmV2IHdoZW4gcHJlcGFyaW5nIHRoZSBpbnNuIHNoZWV0CisgICBmb3IgZWRpdGluZy4KKworICogImdpdCBzdGF0dXMiIGR1cmluZyBhIGNoZXJyeS1waWNrIHNob3dzIHdoaWNoIG9yaWdpbmFsIGNvbW1pdCBpcworICAgYmVpbmcgcGlja2VkLgorCisgKiBJbnN0ZWFkIG9mIHR5cGluZyBmb3VyIGNhcGl0YWwgbGV0dGVycyAiSEVBRCIsIHlvdSBjYW4gc2F5ICJAIiBub3csCisgICBlLmcuICJnaXQgbG9nIEAiLgorCisgKiAiZ2l0IGNoZWNrLWlnbm9yZSIgZm9sbG93cyB0aGUgc2FtZSBydWxlIGFzICJnaXQgYWRkIiBhbmQgImdpdAorICAgc3RhdHVzIiBpbiB0aGF0IHRoZSBpZ25vcmUvZXhjbHVkZSBtZWNoYW5pc20gZG9lcyBub3QgdGFrZSBlZmZlY3QKKyAgIG9uIHBhdGhzIHRoYXQgYXJlIGFscmVhZHkgdHJhY2tlZC4gIFdpdGggdGhlICItLW5vLWluZGV4IiBvcHRpb24sIGl0CisgICBjYW4gYmUgdXNlZCB0byBkaWFnbm9zZSB3aGljaCBwYXRocyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gaWdub3JlZAorICAgaGF2ZSBiZWVuIG1pc3Rha2VubHkgYWRkZWQgdG8gdGhlIGluZGV4LgorCisgKiBTb21lIGlycmVsZXZhbnQgImFkdmljZSIgbWVzc2FnZXMgdGhhdCBhcmUgc2hhcmVkIHdpdGggImdpdCBzdGF0dXMiCisgICBvdXRwdXQgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgY29tbWl0IGxvZyB0ZW1wbGF0ZS4KKworICogInVwZGF0ZS1yZWZzIiBsZWFybmVkIGEgIi0tc3RkaW4iIG9wdGlvbiB0byByZWFkIG11bHRpcGxlIHVwZGF0ZQorICAgcmVxdWVzdHMgYW5kIHBlcmZvcm0gdGhlbSBpbiBhbiBhbGwtb3Itbm9uZSBmYXNoaW9uLgorCisgKiBKdXN0IGxpa2UgIm1ha2UgLUMgPGRpcmVjdG9yeT4iLCAiZ2l0IC1DIDxkaXJlY3Rvcnk+IC4uLiIgdGVsbHMgR2l0CisgICB0byBnbyB0aGVyZSBiZWZvcmUgZG9pbmcgYW55dGhpbmcgZWxzZS4KKworICogSnVzdCBsaWtlICJnaXQgY2hlY2tvdXQgLSIga25vd3MgdG8gY2hlY2sgb3V0LCBhbmQgImdpdCBtZXJnZSAtIgorICAga25vd3MgdG8gbWVyZ2UsIHRoZSBicmFuY2ggeW91IHdlcmUgcHJldmlvdXNseSBvbiwgImdpdCBjaGVycnktcGljayIKKyAgIG5vdyB1bmRlcnN0YW5kcyAiZ2l0IGNoZXJyeS1waWNrIC0iIHRvIHBpY2sgZnJvbSB0aGUgcHJldmlvdXMKKyAgIGJyYW5jaC4KKworICogImdpdCBzdGF0dXMiIG5vdyBvbWl0cyB0aGUgcHJlZml4IHRvIG1ha2UgaXRzIG91dHB1dCBhIGNvbW1lbnQgaW4gYQorICAgY29tbWl0IGxvZyBlZGl0b3IsIHdoaWNoIGlzIG5vdCBuZWNlc3NhcnkgZm9yIGh1bWFuIGNvbnN1bXB0aW9uLgorICAgU2NyaXB0cyB0aGF0IHBhcnNlIHRoZSBvdXRwdXQgb2YgImdpdCBzdGF0dXMiIGFyZSBhZHZpc2VkIHRvIHVzZQorICAgImdpdCBzdGF0dXMgLS1wb3JjZWxhaW4iIGluc3RlYWQsIGFzIGl0cyBmb3JtYXQgaXMgc3RhYmxlIGFuZCBlYXNpZXIKKyAgIHRvIHBhcnNlLgorCisgKiBUaGUgcmVmIHN5bnRheCAiZm9vXnt0YWd9IiAod2l0aCB0aGUgbGl0ZXJhbCBzdHJpbmcgInt0YWd9IikgcGVlbHMgYQorICAgdGFnIHJlZiB0byBpdHNlbGYsIGkuZS4gaXQncyBhIG5vLW9wLiwgYW5kIGZhaWxzIGlmCisgICAiZm9vIiBpcyBub3QgYSB0YWcuICAiZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSB2MS4wXnt0YWd9IiBpcworICAgYSBtb3JlIGNvbnZlbmllbnQgd2F5IHRoYW4gInRlc3QgJChnaXQgY2F0LWZpbGUgLXQgdjEuMCkgPSB0YWciIHRvCisgICBjaGVjayBpZiB2MS4wIGlzIGEgdGFnLgorCisgKiAiZ2l0IGJyYW5jaCAtdiAtdiIgKGFuZCAiZ2l0IHN0YXR1cyIpIGRpZCBub3QgZGlzdGluZ3Vpc2ggYW1vbmcgYQorICAgYnJhbmNoIHRoYXQgaXMgbm90IGJhc2VkIG9uIGFueSBvdGhlciBicmFuY2gsIGEgYnJhbmNoIHRoYXQgaXMgaW4KKyAgIHN5bmMgd2l0aCBpdHMgdXBzdHJlYW0gYnJhbmNoLCBhbmQgYSBicmFuY2ggdGhhdCBpcyBjb25maWd1cmVkIHdpdGggYW4KKyAgIHVwc3RyZWFtIGJyYW5jaCB0aGF0IG5vIGxvbmdlciBleGlzdHMuCisKKyAqIEVhcmxpZXIgd2Ugc3RhcnRlZCByZWplY3RpbmcgYW55IGF0dGVtcHQgdG8gYWRkIHRoZSAwezQwfSBvYmplY3QgbmFtZSB0bworICAgdGhlIGluZGV4IGFuZCB0byB0cmVlIG9iamVjdHMsIGJ1dCBpdCBzb21ldGltZXMgaXMgbmVjZXNzYXJ5IHRvCisgICBhbGxvdyB0aGlzIHRvIGJlIGFibGUgdG8gdXNlIHRvb2xzIGxpa2UgZmlsdGVyLWJyYW5jaCB0byBjb3JyZWN0IHN1Y2gKKyAgIGJyb2tlbiB0cmVlIG9iamVjdHMuICAiZmlsdGVyLWJyYW5jaCIgY2FuIGFnYWluIGJlIHVzZWQgdG8gZG8gdGhpcy4KKworICogImdpdCBjb25maWciIGRpZCBub3QgcHJvdmlkZSBhIHdheSB0byBzZXQgb3IgYWNjZXNzIG51bWJlcnMgbGFyZ2VyCisgICB0aGFuIGEgbmF0aXZlICJpbnQiIG9uIHRoZSBwbGF0Zm9ybTsgaXQgbm93IHByb3ZpZGVzIDY0LWJpdCBzaWduZWQKKyAgIGludGVnZXJzIG9uIGFsbCBwbGF0Zm9ybXMuCisKKyAqICJnaXQgcHVsbCAtLXJlYmFzZSIgYWx3YXlzIGNob3NlIHRvIGRvIHRoZSBib2ctc3RhbmRhcmQgZmxhdHRlbmluZworICAgcmViYXNlLiAgWW91IGNhbiB0ZWxsIGl0IHRvIHJ1biAicmViYXNlIC0tcHJlc2VydmUtbWVyZ2VzIiB3aXRoCisgICAiZ2l0IHB1bGwgLS1yZWJhc2U9cHJlc2VydmUiIG9yIGJ5CisgICBzZXR0aW5nICJwdWxsLnJlYmFzZSIgY29uZmlndXJhdGlvbiB0byAicHJlc2VydmUiLgorCisgKiAiZ2l0IHB1c2ggLS1uby10aGluIiBhY3R1YWxseSBkaXNhYmxlcyB0aGUgInRoaW4gcGFjayB0cmFuc2ZlciIKKyAgIG9wdGltaXphdGlvbi4KKworICogTWFnaWMgcGF0aHNwZWNzIGxpa2UgIjooaWNhc2UpbWFrZWZpbGUiIChtYXRjaGVzIGJvdGggTWFrZWZpbGUKKyAgIGFuZCBtYWtlZmlsZSkgYW5kICI6KGdsb2IpZm9vLyoqL2JhciIgKG1hdGNoZXMgImJhciIgaW4gImZvbyIKKyAgIGFuZCBhbnkgc3ViZGlyZWN0b3J5IG9mICJmb28iKSBjYW4gYmUgdXNlZCBpbiBtb3JlIHBsYWNlcy4KKworICogVGhlICJodHRwLioiIHZhcmlhYmxlcyBjYW4gbm93IGJlIHNwZWNpZmllZCBmb3IgaW5kaXZpZHVhbCBVUkxzLgorICAgRm9yIGV4YW1wbGUsCisKKyAgIFtodHRwXQorICAgICAgIHNzbFZlcmlmeSA9IHRydWUKKyAgIFtodHRwICJodHRwczovL3dlYWsuZXhhbXBsZS5jb20vIl0KKyAgICAgICBzc2xWZXJpZnkgPSBmYWxzZQorCisgICB3b3VsZCBmbGlwIGh0dHAuc3NsVmVyaWZ5IG9mZiBvbmx5IHdoZW4gdGFsa2luZyB0byB0aGF0IHNwZWNpZmljCisgICBzaXRlLgorCisgKiAiZ2l0IG12IEEgQiIgd2hlbiBtb3ZpbmcgYSBzdWJtb2R1bGUgaGFzIGJlZW4gdGF1Z2h0IHRvCisgICByZWxvY2F0ZSB0aGUgc3VibW9kdWxlJ3Mgd29ya2luZyB0cmVlIGFuZCB0byBhZGp1c3QgdGhlIHBhdGhzIGluIHRoZQorICAgLmdpdG1vZHVsZXMgZmlsZS4KKworICogImdpdCBibGFtZSIgY2FuIG5vdyB0YWtlIG1vcmUgdGhhbiBvbmUgLUwgb3B0aW9uIHRvIGRpc2NvdmVyIHRoZQorICAgb3JpZ2luIG9mIG11bHRpcGxlIGJsb2NrcyBvZiBsaW5lcy4KKworICogVGhlIGh0dHAgdHJhbnNwb3J0IGNsaWVudHMgY2FuIG9wdGlvbmFsbHkgYXNrIHRvIHNhdmUgY29va2llcworICAgd2l0aCB0aGUgaHR0cC5zYXZlY29va2llcyBjb25maWd1cmF0aW9uIHZhcmlhYmxlLgorCisgKiAiZ2l0IHB1c2giIGxlYXJuZWQgYSBtb3JlIGZpbmUgZ3JhaW5lZCBjb250cm9sIG92ZXIgYSBibHVudAorICAgIi0tZm9yY2UiIHdoZW4gcmVxdWVzdGluZyBhIG5vbi1mYXN0LWZvcndhcmQgdXBkYXRlIHdpdGggdGhlCisgICAiLS1mb3JjZS13aXRoLWxlYXNlPTxyZWZuYW1lPjo8ZXhwZWN0ZWQgb2JqZWN0IG5hbWU+IiBvcHRpb24uCisKKyAqICJnaXQgZGlmZiAtLWRpZmYtZmlsdGVyPTxjbGFzc2VzIG9mIGNoYW5nZXM+IiBjYW4gbm93IHRha2UKKyAgIGxvd2VyY2FzZSBsZXR0ZXJzIChlLmcuICItLWRpZmYtZmlsdGVyPWQiKSB0byBtZWFuICJzaG93CisgICBldmVyeXRoaW5nIGJ1dCB0aGVzZSBjbGFzc2VzIi4gICJnaXQgZGlmZi1maWxlcyAtcSIgaXMgbm93IGEKKyAgIGRlcHJlY2F0ZWQgc3lub255bSBmb3IgImdpdCBkaWZmLWZpbGVzIC0tZGlmZi1maWx0ZXI9ZCIuCisKKyAqICJnaXQgZmV0Y2giIChoZW5jZSAiZ2l0IHB1bGwiIGFzIHdlbGwpIGxlYXJuZWQgdG8gY2hlY2sKKyAgICJmZXRjaC5wcnVuZSIgYW5kICJyZW1vdGUuKi5wcnVuZSIgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgYW5kCisgICB0byBiZWhhdmUgYXMgaWYgdGhlICItLXBydW5lIiBjb21tYW5kIGxpbmUgb3B0aW9uIHdhcyBnaXZlbi4KKworICogImdpdCBjaGVjay1pZ25vcmUgLXoiIGFwcGxpZWQgdGhlIE5VTCB0ZXJtaW5hdGlvbiB0byBib3RoIGl0cyBpbnB1dAorICAgKHdpdGggLS1zdGRpbikgYW5kIGl0cyBvdXRwdXQsIGJ1dCAiZ2l0IGNoZWNrLWF0dHIgLXoiIGlnbm9yZWQgdGhlCisgICBvcHRpb24gb24gdGhlIG91dHB1dCBzaWRlLiBNYWtlIGJvdGggaG9ub3IgLXogb24gdGhlIGlucHV0IGFuZAorICAgb3V0cHV0IHNpZGUgdGhlIHNhbWUgd2F5LgorCisgKiAiZ2l0IHdoYXRjaGFuZ2VkIiBtYXkgc3RpbGwgYmUgdXNlZCBieSBvbGQgdGltZXJzLCBidXQgbWVudGlvbiBvZgorICAgaXQgaW4gZG9jdW1lbnRzIG1lYW50IGZvciBuZXcgdXNlcnMgd2lsbCBvbmx5IHdhc3RlIHJlYWRlcnMnIHRpbWUKKyAgIHdvbmRlcmluZyB3aGF0IHRoZSBkaWZmZXJlbmNlIGlzIGJldHdlZW4gaXQgYW5kICJnaXQgbG9nIi4gIE1ha2UgaXQKKyAgIGxlc3MgcHJvbWluZW50IGluIHRoZSBnZW5lcmFsIHBhcnQgb2YgdGhlIGRvY3VtZW50YXRpb24gYW5kIGV4cGxhaW4KKyAgIHRoYXQgaXQgaXMgbWVyZWx5IGEgImdpdCBsb2ciIHdpdGggZGlmZmVyZW50IGRlZmF1bHQgYmVoYXZpb3VyIGluCisgICBpdHMgb3duIGRvY3VtZW50LgorCisKK1BlcmZvcm1hbmNlLCBJbnRlcm5hbCBJbXBsZW1lbnRhdGlvbiwgZXRjLgorCisgKiAiZ2l0IGZvci1lYWNoLXJlZiIgd2hlbiBhc2tpbmcgZm9yIG1lcmVseSB0aGUgb2JqZWN0IG5hbWUgZG9lcyBub3QKKyAgIGhhdmUgdG8gcGFyc2UgdGhlIG9iamVjdCBwb2ludGVkIGF0IGJ5IHRoZSByZWZzOyB0aGUgY29kZXBhdGggaGFzCisgICBiZWVuIG9wdGltaXplZC4KKworICogVGhlIEhUVFAgdHJhbnNwb3J0IHdpbGwgdHJ5IHRvIHVzZSBUQ1Aga2VlcGFsaXZlIHdoZW4gYWJsZS4KKworICogImdpdCByZXBhY2siIGlzIG5vdyB3cml0dGVuIGluIEMuCisKKyAqIEJ1aWxkIHByb2NlZHVyZSBmb3IgTVNWQyBoYXMgYmVlbiB1cGRhdGVkLgorCisgKiBJZiBhIGJ1aWxkLXRpbWUgZmFsbGJhY2sgaXMgc2V0IHRvICJjYXQiIGluc3RlYWQgb2YgImxlc3MiLCB3ZQorICAgc2hvdWxkIGFwcGx5IHRoZSBzYW1lICJubyBzdWJwcm9jZXNzIG9yIHBpcGUiIG9wdGltaXphdGlvbiBhcyB3ZQorICAgYXBwbHkgdG8gdXNlci1zdXBwbGllZCBHSVRfUEFHRVI9Y2F0LgorCisgKiBNYW55IGNvbW1hbmRzIHVzZSBhIC0tZGFzaGVkLW9wdGlvbiBhcyBhbiBvcGVyYXRpb24gbW9kZSBzZWxlY3RvcgorICAgKGUuZy4gImdpdCB0YWcgLS1kZWxldGUiKSB0aGF0IGV4Y2x1ZGVzIG90aGVyIG9wZXJhdGlvbiBtb2RlcworICAgKGUuZy4gImdpdCB0YWcgLS1kZWxldGUgLS12ZXJpZnkiIGlzIG5vbnNlbnNlKSBhbmQgdGhhdCBjYW5ub3QgYmUKKyAgIG5lZ2F0ZWQgKGUuZy4gImdpdCB0YWcgLS1uby1kZWxldGUiIGlzIG5vbnNlbnNlKS4gIFRoZSBwYXJzZS1vcHRpb25zCisgICBBUEkgbGVhcm5lZCBhIG5ldyBPUFRfQ01ETU9ERSBtYWNybyB0byBtYWtlIGl0IGVhc2llciB0byBpbXBsZW1lbnQKKyAgIHN1Y2ggYSBzZXQgb2Ygb3B0aW9ucy4KKworICogT1BUX0JPT0xFQU4oKSBpbiB0aGUgcGFyc2Utb3B0aW9ucyBBUEkgd2FzIG1pc2Rlc2lnbmVkIHRvIGJlICJjb3VudGluZworICAgdXAiIGJ1dCBtYW55IHN1YmNvbW1hbmRzIGV4cGVjdCBpdCB0byBiZWhhdmUgYXMgIm9uL29mZiIuIFVwZGF0ZQorICAgdGhlbSB0byB1c2UgT1BUX0JPT0woKSB3aGljaCBpcyBhIHByb3BlciBib29sZWFuLgorCisgKiAiZ2l0IGdjIiBleGl0cyBlYXJseSB3aXRob3V0IGRvaW5nIGFueSB3b3JrIHdoZW4gaXQgZGV0ZWN0cworICAgdGhhdCBhbm90aGVyIGluc3RhbmNlIG9mIGl0c2VsZiBpcyBhbHJlYWR5IHJ1bm5pbmcuCisKKyAqIFVuZGVyIG1lbW9yeSBwcmVzc3VyZSBhbmQvb3IgZmlsZSBkZXNjcmlwdG9yIHByZXNzdXJlLCB3ZSB1c2VkIHRvCisgICBjbG9zZSBwYWNrIHdpbmRvd3MgdGhhdCBhcmUgbm90IHVzZWQgYW5kIGFsc28gY2xvc2VkIGZpbGVoYW5kbGVzIHRvCisgICBvcGVuIGJ1dCB1bnVzZWQgcGFja2ZpbGVzLiBUaGVzZSBhcmUgbm93IGNvbnRyb2xsZWQgc2VwYXJhdGVseQorICAgdG8gYmV0dGVyIGNvcGUgd2l0aCB0aGUgbG9hZC4KKworQWxzbyBjb250YWlucyB2YXJpb3VzIGRvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgY29kZSBjbGVhbi11cHMuCisKKworRml4ZXMgc2luY2UgdjEuOC40CistLS0tLS0tLS0tLS0tLS0tLS0KKworVW5sZXNzIG90aGVyd2lzZSBub3RlZCwgYWxsIHRoZSBmaXhlcyBzaW5jZSB2MS44LjQgaW4gdGhlIG1haW50ZW5hbmNlCit0cmFjayBhcmUgY29udGFpbmVkIGluIHRoaXMgcmVsZWFzZSAoc2VlIHRoZSBtYWludGVuYW5jZSByZWxlYXNlcycgbm90ZXMgZm9yCitkZXRhaWxzKS4KKworICogQW4gYW5jaWVudCBIb3ctVG8gb24gc2VydmluZyBHaXQgcmVwb3NpdG9yaWVzIG9uIGFuIEhUVFAgc2VydmVyCisgICBsYWNrZWQgYSB3YXJuaW5nIHRoYXQgaXQgaGFzIGJlZW4gbW9zdGx5IHN1cGVyc2VkZWQgd2l0aCBhIG1vcmUKKyAgIG1vZGVybiB3YXkuCisgICAobWVyZ2UgNmQ1MmJjMyBzYy9kb2MtaG93dG8tZHVtYi1odHRwIGxhdGVyIHRvIG1haW50KS4KKworICogVGhlIGludGVyYWN0aW9uIGJldHdlZW4gdGhlIHVzZSBvZiBQZXJsIGluIG91ciB0ZXN0IHN1aXRlIGFuZCBOT19QRVJMCisgICBoYXMgYmVlbiBjbGFyaWZpZWQgYSBiaXQuCisgICAobWVyZ2UgZjhmYzBlZSBqbi90ZXN0LXByZXJlcS1wZXJsLWRvYyBsYXRlciB0byBtYWludCkuCisKKyAqIFRoZSBzeW5vcHNpcyBzZWN0aW9uIG9mIHRoZSAiZ2l0IHVucGFjay1vYmplY3RzIiBkb2N1bWVudGF0aW9uIGhhcyBiZWVuCisgICBjbGFyaWZpZWQgYSBiaXQuCisgICAobWVyZ2UgNjFlMmUyMiB2ZC9kb2MtdW5wYWNrLW9iamVjdHMgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBXZSBkaWQgbm90IGdlbmVyYXRlIHRoZSBIVE1MIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50YXRpb24gdG8gImdpdCBzdWJ0cmVlIgorICAgaW4gY29udHJpYi8uCisgICAobWVyZ2UgOTVjNjJmYiBqay9zdWJ0cmVlLWluc3RhbGwtZml4IGxhdGVyIHRvIG1haW50KS4KKworICogQSBmYXN0LWltcG9ydCBzdHJlYW0gZXhwcmVzc2VzIGEgcGF0aG5hbWUgd2l0aCBmdW5ueSBjaGFyYWN0ZXJzIGJ5CisgICBxdW90aW5nIHRoZW0gaW4gQyBzdHlsZTsgdGhlIHJlbW90ZS1oZyByZW1vdGUgaGVscGVyIGZvcmdvdCB0byB1bnF1b3RlCisgICBzdWNoIGEgcGF0aC4KKyAgIChtZXJnZSAxMTM2MjY1IGFwL3JlbW90ZS1oZy11bnF1b3RlLWNxdW90ZSBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgcmVzZXQgLXAgSEVBRCIgaGFzIGEgY29kZXBhdGggdG8gc3BlY2lhbC1jYXNlIGl0IHRvIGJlaGF2ZQorICAgZGlmZmVyZW50bHkgZnJvbSByZXNldHRpbmcgdG8gY29udGVudHMgb2Ygb3RoZXIgY29tbWl0cywgYnV0IGEKKyAgIHJlY2VudCBjaGFuZ2UgYnJva2UgaXQuCisKKyAqIENvbG9yaW5nIGFyb3VuZCBvY3RvcHVzIG1lcmdlcyBpbiAibG9nIC0tZ3JhcGgiIG91dHB1dCB3YXMgc2NyZXd5LgorICAgKG1lcmdlIDMzOWMxN2IgaG4vbG9nLWdyYXBoLWNvbG9yLW9jdG9wdXMgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiAiZ2l0IGNoZWNrb3V0IHRvcGljIiwgd2hlbiB0aGVyZSBpcyBub3QgeWV0IGEgbG9jYWwgInRvcGljIiBicmFuY2gKKyAgIGJ1dCB0aGVyZSBpcyBhIHVuaXF1ZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIGZvciBhIHJlbW90ZSAidG9waWMiCisgICBicmFuY2gsIHByZXRlbmRlZCBhcyBpZiAiZ2l0IGNoZWNrb3V0IC10IC1iIHRvcGljIHJlbW90ZS8kci90b3BpYyIKKyAgIChmb3IgdGhhdCB1bmlxdWUgcmVtb3RlICRyKSB3YXMgcnVuLiBUaGlzIGhhY2sgaG93ZXZlciB3YXMgbm90CisgICBpbXBsZW1lbnRlZCBmb3IgImdpdCBjaGVja291dCB0b3BpYyAtLSIuCisgICAobWVyZ2UgYmNhMzk2OSBtbS9jaGVja291dC1hdXRvLXRyYWNrLWZpeCBsYXRlciB0byBtYWludCkuCisKKyAqIE9uZSBsb25nLXN0YW5kaW5nIGZsYXcgaW4gdGhlIHBhY2sgdHJhbnNmZXIgcHJvdG9jb2wgdXNlZCBieSAiZ2l0CisgICBjbG9uZSIgd2FzIHRoYXQgdGhlcmUgd2FzIG5vIHdheSB0byB0ZWxsIHRoZSBvdGhlciBlbmQgd2hpY2ggYnJhbmNoCisgICAiSEVBRCIgcG9pbnRzIGF0LCBhbmQgdGhlIHJlY2VpdmluZyBlbmQgbmVlZGVkIHRvIGd1ZXNzLiAgQSBuZXcKKyAgIGNhcGFiaWxpdHkgaGFzIGJlZW4gZGVmaW5lZCBpbiB0aGUgcGFjayBwcm90b2NvbCB0byBjb252ZXkgdGhpcworICAgaW5mb3JtYXRpb24gc28gdGhhdCBjbG9uaW5nIGZyb20gYSByZXBvc2l0b3J5IHdpdGggbW9yZSB0aGFuIG9uZQorICAgYnJhbmNoIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNvbW1pdCB3aGVyZSB0aGUgSEVBRCBpcyBhdCBub3cKKyAgIHJlbGlhYmx5IHNldHMgdGhlIGluaXRpYWwgYnJhbmNoIGluIHRoZSByZXN1bHRpbmcgcmVwb3NpdG9yeS4KKyAgIChtZXJnZSAzNjBhMzI2IGpjL3VwbG9hZC1wYWNrLXNlbmQtc3ltcmVmIGxhdGVyIHRvIG1haW50KS4KKworICogV2UgZGlkIG5vdCBoYW5kbGUgY2FzZXMgd2hlcmUgdGhlIGh0dHAgdHJhbnNwb3J0IGdldHMgcmVkaXJlY3RlZCBkdXJpbmcKKyAgIHRoZSBhdXRob3JpemF0aW9uIHJlcXVlc3QgKGUuZy4gZnJvbSBodHRwOi8vIHRvIGh0dHBzOi8vKS4KKyAgIChtZXJnZSA3MDkwMGVkIGprL2h0dHAtYXV0aC1yZWRpcmVjdHMgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBCYXNoIHByb21wdGluZyBjb2RlIHRvIGRlYWwgd2l0aCBhbiBTVk4gcmVtb3RlIGFzIGFuIHVwc3RyZWFtCisgICB3YXMgY29kZWQgaW4gYSB3YXkgdW5zdXBwb3J0ZWQgYnkgb2xkZXIgQmFzaCB2ZXJzaW9ucyAoMy54KS4KKyAgIChtZXJnZSA1MmVjODg5IHNnL3Byb21wdC1zdm4tcmVtb3RlLWZpeCBsYXRlciB0byBtYWludCkuCisKKyAqIFRoZSBmYWxsLWJhY2sgcGFyc2luZyBvZiBjb21taXQgb2JqZWN0cyB3aXRoIGJyb2tlbiBhdXRob3Igb3IKKyAgIGNvbW1pdHRlciBsaW5lcyB3YXMgbGVzcyByb2J1c3QgdGhhbiBpZGVhbCBpbiBwaWNraW5nIHVwIHRoZQorICAgdGltZXN0YW1wcy4KKyAgIChtZXJnZSAwMzgxOGE0IGprL3NwbGl0LWJyb2tlbi1pZGVudCBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgcmV2LWxpc3QgLS1vYmplY3RzIF52MS4wXiB2MS4wIiBnYXZlIHRoZSB2MS4wIHRhZyBpdHNlbGYgaW4gdGhlCisgICBvdXRwdXQsIGJ1dCAiZ2l0IHJldi1saXN0IC0tb2JqZWN0cyB2MS4wXi4udjEuMCIgZGlkIG5vdC4KKyAgIChtZXJnZSA4OTVjNWJhIGpjL3JldmlzaW9uLXJhbmdlLXVucGVlbCBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgY2xvbmUiIHdyb3RlIHNvbWUgcHJvZ3Jlc3MgbWVzc2FnZXMgdG8gc3RhbmRhcmQgb3V0cHV0LCBub3QKKyAgIHRvIHN0YW5kYXJkIGVycm9yLCBhbmQgZGlkIG5vdCBzdXBwcmVzcyB0aGVtIHdpdGggdGhlCisgICAtLW5vLXByb2dyZXNzIG9wdGlvbi4KKyAgIChtZXJnZSA2NDNmOTE4IGprL2Nsb25lLXByb2dyZXNzLXRvLXN0ZGVyciBsYXRlciB0byBtYWludCkuCisKKyAqICJmb3JtYXQtcGF0Y2ggLS1mcm9tPTx3aG9tPiIgZm9yZ290IHRvIG9taXQgYW4gdW5uZWNlc3NhcnkgaW4tYm9keQorICAgZnJvbSBsaW5lLCBpLmUuIHdoZW4gPHdob20+IGlzIHRoZSBzYW1lIGFzIHRoZSByZWFsIGF1dGhvci4KKyAgIChtZXJnZSA2NjJjYzMwIGprL2Zvcm1hdC1wYXRjaC1mcm9tIGxhdGVyIHRvIG1haW50KS4KKworICogImdpdCBzaG9ydGxvZyIgdXNlZCB0byBjaG9rZSBhbmQgZGllIHdoZW4gdGhlcmUgaXMgYSBtYWxmb3JtZWQKKyAgIGNvbW1pdCAoZS5nLiBtaXNzaW5nIGF1dGhvcnMpOyBpdCBub3cgc2ltcGx5IGlnbm9yZXMgc3VjaCBhIGNvbW1pdAorICAgYW5kIGtlZXBzIGdvaW5nLgorICAgKG1lcmdlIGNkNGYwOWUgamsvc2hvcnRsb2ctdG9sZXJhdGUtYnJva2VuLWNvbW1pdCBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgbWVyZ2UtcmVjdXJzaXZlIiBkaWQgbm90IHBhcnNlIGl0cyAiLS1kaWZmLWFsZ29yaXRobT0iIGNvbW1hbmQKKyAgIGxpbmUgb3B0aW9uIGNvcnJlY3RseS4KKyAgIChtZXJnZSA2NTYyOTI4IGprL2RpZmYtYWxnbyBsYXRlciB0byBtYWludCkuCisKKyAqIFdoZW4gcnVubmluZyAiZmV0Y2ggLXEiLCBhIGxvbmcgc2lsZW5jZSB3aGlsZSB0aGUgc2VuZGVyIHNpZGUKKyAgIGNvbXB1dGVzIHRoZSBzZXQgb2Ygb2JqZWN0cyB0byBzZW5kIGNhbiBiZSBtaXN0YWtlbiBieSBwcm94aWVzIGFzCisgICBkcm9wcGVkIGNvbm5lY3Rpb24uICBUaGUgc2VydmVyIHNpZGUgaGFzIGJlZW4gdGF1Z2h0IHRvIHNlbmQgYQorICAgc21hbGwgZW1wdHkgbWVzc2FnZXMgdG8ga2VlcCB0aGUgY29ubmVjdGlvbiBhbGl2ZS4KKyAgIChtZXJnZSAxMTVkZWRkIGprL3VwbG9hZC1wYWNrLWtlZXBhbGl2ZSBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgcmViYXNlIiBoYWQgYSBwb3J0YWJpbGl0eSByZWdyZXNzaW9uIGluIHYxLjguNCB0aGF0IHRyaWdnZXJlZCBhCisgICBidWcgaW4gc29tZSBCU0Qgc2hlbGwgaW1wbGVtZW50YXRpb25zLgorICAgKG1lcmdlIDk5ODU1ZGQgbW0vcmViYXNlLWNvbnRpbnVlLWZyZWVic2QtV0IgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiAiZ2l0IGJyYW5jaCAtLXRyYWNrIiBoYWQgYSBtaW5vciByZWdyZXNzaW9uIGluIHYxLjguMy4yIGFuZCBsYXRlcgorICAgdGhhdCBtYWRlIGl0IGltcG9zc2libGUgdG8gYmFzZSB5b3VyIGxvY2FsIHdvcmsgb24gYW55dGhpbmcgYnV0IGEKKyAgIGxvY2FsIGJyYW5jaCBvZiB0aGUgdXBzdHJlYW0gcmVwb3NpdG9yeSB5b3UgYXJlIHRyYWNraW5nLgorICAgKG1lcmdlIGIwZjQ5ZmYgamgvY2hlY2tvdXQtYXV0by10cmFja2luZyBsYXRlciB0byBtYWludCkuCisKKyAqIFdoZW4gdGhlIHdlYiBzZXJ2ZXIgcmVzcG9uZHMgd2l0aCAiNDA1IE1ldGhvZCBOb3QgQWxsb3dlZCIsICJnaXQKKyAgIGh0dHAtYmFja2VuZCIgc2hvdWxkIHRlbGwgdGhlIGNsaWVudCB3aGF0IG1ldGhvZHMgYXJlIGFsbG93ZWQgd2l0aAorICAgdGhlICJBbGxvdyIgaGVhZGVyLgorICAgKG1lcmdlIDkyNDdiZTAgYmMvaHR0cC1iYWNrZW5kLWFsbG93LTQwNSBsYXRlciB0byBtYWludCkuCisKKyAqIFdoZW4gdGhlcmUgaXMgbm8gc3VmZmljaWVudCBvdmVybGFwIGJldHdlZW4gb2xkIGFuZCBuZXcgaGlzdG9yeQorICAgZHVyaW5nIGEgImdpdCBmZXRjaCIgaW50byBhIHNoYWxsb3cgcmVwb3NpdG9yeSwgb2JqZWN0cyB0aGF0IHRoZQorICAgc2VuZGluZyBzaWRlIGtub3dzIHRoZSByZWNlaXZpbmcgZW5kIGhhcyB3ZXJlIHVubmVjZXNzYXJpbHkgc2VudC4KKyAgIChtZXJnZSBmMjFkMmE3IG5kL2ZldGNoLWludG8tc2hhbGxvdyBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgY3Zzc2VydmVyIiBjb21wdXRlZCB0aGUgcGVybWlzc2lvbiBtb2RlIGJpdHMgaW5jb3JyZWN0bHkgZm9yCisgICBleGVjdXRhYmxlIGZpbGVzLgorICAgKG1lcmdlIDFiNDhkNTYgamMvY3Zzc2VydmVyLXBlcm0tYml0LWZpeCBsYXRlciB0byBtYWludCkuCisKKyAqIFdoZW4gc2VuZC1lbWFpbCBvYnRhaW5zIGFuIGVycm9yIG1lc3NhZ2UgdG8gZGllIHdpdGggdXBvbgorICAgZmFpbHVyZSB0byBzdGFydCBhbiBTU0wgc2Vzc2lvbiwgaXQgdHJpZWQgdG8gcmVhZCB0aGUgZXJyb3Igc3RyaW5nCisgICBmcm9tIGEgd3JvbmcgcGxhY2UuCisgICAobWVyZ2UgNmNiMGM4OCBiYy9zZW5kLWVtYWlsLXNzbC1kaWUtbWVzc2FnZS1maXggbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBUaGUgaW1wbGVtZW50YXRpb24gb2YgImFkZCAtaSIgaGFzIHNvbWUgY3JpcHBsaW5nIGNvZGUgdG8gd29yayBhcm91bmQgYW4KKyAgIEFjdGl2ZVN0YXRlIFBlcmwgbGltaXRhdGlvbiBidXQgaXQgYnkgbWlzdGFrZSBhbHNvIHRyaWdnZXJlZCBvbiBHaXQKKyAgIGZvciBXaW5kb3dzIHdoZXJlIE1TWVMgcGVybCBpcyB1c2VkLgorICAgKG1lcmdlIGRmMTdlNzcganMvYWRkLWktbWluZ3cgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBXZSBtYWRlIHN1cmUgdGhhdCB3ZSBub3RpY2Ugd2hlbiB0aGUgdXNlci1zdXBwbGllZCBHSVRfRElSIGlzIGFjdHVhbGx5IGEKKyAgIGdpdGZpbGUsIGJ1dCBkaWQgbm90IGRvIHRoZSBzYW1lIHdoZW4gdGhlIGRlZmF1bHQgIi5naXQiIGlzIGEKKyAgIGdpdGZpbGUuCisgICAobWVyZ2UgNDg3YTJiNyBuZC9naXQtZGlyLXBvaW50aW5nLWF0LWdpdGZpbGUgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBXaGVuIGFuIG9iamVjdCBpcyBub3QgZm91bmQgYWZ0ZXIgY2hlY2tpbmcgdGhlIHBhY2tmaWxlcyBhbmQgdGhlCisgICBsb29zZSBvYmplY3QgZGlyZWN0b3J5LCByZWFkX3NoYTFfZmlsZSgpIHJlLWNoZWNrcyB0aGUgcGFja2ZpbGVzIHRvCisgICBwcmV2ZW50IHJhY2luZyB3aXRoIGEgY29uY3VycmVudCByZXBhY2tlcjsgdGVhY2ggdGhlIHNhbWUgbG9naWMgdG8KKyAgIGhhc19zaGExX2ZpbGUoKS4KKyAgIChtZXJnZSA0NWU4YTc0IGprL2hhcy1zaGExLWZpbGUtcmV0cnktcGFja2VkIGxhdGVyIHRvIG1haW50KS4KKworICogImdpdCBjb21taXQgLS1hdXRob3I9JG5hbWUiLCB3aGVuICRuYW1lIGlzIG5vdCBpbiB0aGUgY2Fub25pY2FsCisgICAiQS4gVS4gVGhvciA8YXUudGhvckBleGFtcGxlLnh6PiIgZm9ybWF0LCBsb29rcyBmb3IgYSBtYXRjaGluZyBuYW1lCisgICBmcm9tIGV4aXN0aW5nIGhpc3RvcnksIGJ1dCBkaWQgbm90IGNvbnN1bHQgbWFpbG1hcCB0byBncmFiIHRoZQorICAgcHJlZmVycmVkIGF1dGhvciBuYW1lLgorICAgKG1lcmdlIGVhMTY3OTQgYXAvY29tbWl0LWF1dGhvci1tYWlsbWFwIGxhdGVyIHRvIG1haW50KS4KKworICogImdpdCBscy1maWxlcyAtayIgbmVlZHMgdG8gY3Jhd2wgb25seSB0aGUgcGFydCBvZiB0aGUgd29ya2luZyB0cmVlCisgICB0aGF0IG1heSBvdmVybGFwIHRoZSBwYXRocyBpbiB0aGUgaW5kZXggdG8gZmluZCBraWxsZWQgZmlsZXMsIGJ1dAorICAgc2hhcmVkIGNvZGUgd2l0aCB0aGUgbG9naWMgdG8gZmluZCBhbGwgdGhlIHVudHJhY2tlZCBmaWxlcywgd2hpY2gKKyAgIG1hZGUgaXQgdW5uZWNlc3NhcmlseSBpbmVmZmljaWVudC4KKyAgIChtZXJnZSA2ODBiZTA0IGpjL2xzLWZpbGVzLWtpbGxlZC1vcHRpbSBsYXRlciB0byBtYWludCkuCisKKyAqIFRoZSBzaG9ydGVuZWQgY29tbWl0IG9iamVjdCBuYW1lcyBpbiB0aGUgaW5zbiBzaGVldCB0aGF0IGlzIHByZXBhcmVkIGF0IHRoZQorICAgYmVnaW5uaW5nIG9mIGEgInJlYmFzZSAtaSIgc2Vzc2lvbiBjYW4gYmVjb21lIGFtYmlndW91cyBhcyB0aGUKKyAgIHJlYmFzaW5nIHByb2dyZXNzZXMgYW5kIHRoZSByZXBvc2l0b3J5IGdhaW5zIG1vcmUgY29tbWl0cy4gTWFrZQorICAgc3VyZSB0aGUgaW50ZXJuYWwgcmVjb3JkIGlzIGtlcHQgd2l0aCBmdWxsIDQwLWhleCBvYmplY3QgbmFtZXMuCisgICAobWVyZ2UgNzVjNjk3NiBlcy9yZWJhc2UtaS1uby1hYmJyZXYgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiAiZ2l0IHJlYmFzZSAtLXByZXNlcnZlLW1lcmdlcyIgaW50ZXJuYWxseSB1c2VkIHRoZSBtZXJnZSBtYWNoaW5lcnkKKyAgIGFuZCBhcyBhIHNpZGUgZWZmZWN0IGxlZnQgdGhlIG1lcmdlIHN1bW1hcnkgbWVzc2FnZSBpbiB0aGUgbG9nLCBidXQKKyAgIHdoZW4gcmViYXNpbmcgdGhlcmUgaXMgbm8gbmVlZCBmb3IgdGhlIG1lcmdlIHN1bW1hcnkuCisgICAobWVyZ2UgYTlmNzM5YyBydC9yZWJhc2UtcC1uby1tZXJnZS1zdW1tYXJ5IGxhdGVyIHRvIG1haW50KS4KKworICogQSBjYWxsIHRvIHhyZWFkKCkgd2FzIHVzZWQgd2l0aG91dCBhIGxvb3AgYXJvdW5kIGl0IHRvIGNvcGUgd2l0aCBzaG9ydAorICAgcmVhZHMgaW4gdGhlIGNvZGVwYXRoIHRvIHN0cmVhbSBuZXcgY29udGVudHMgdG8gYSBwYWNrLgorICAgKG1lcmdlIGU5MjUyN2MganMveHJlYWQtaW4tZnVsbCBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgcmViYXNlIC1pIiBmb3Jnb3QgdGhhdCB0aGUgY29tbWVudCBjaGFyYWN0ZXIgaXMKKyAgIGNvbmZpZ3VyYWJsZSB3aGlsZSByZWFkaW5nIGl0cyBpbnNuIHNoZWV0LgorICAgKG1lcmdlIDdiY2E3YWYgZXMvcmViYXNlLWktcmVzcGVjdC1jb3JlLWNvbW1lbnRjaGFyIGxhdGVyIHRvIG1haW50KS4KKworICogVGhlIG1haWxtYXAgc3VwcG9ydCBjb2RlIHJlYWQgcGFzdCB0aGUgYWxsb2NhdGVkIGJ1ZmZlciB3aGVuIHRoZQorICAgbWFpbG1hcCBmaWxlIGVuZGVkIHdpdGggYW4gaW5jb21wbGV0ZSBsaW5lLgorICAgKG1lcmdlIGY5NzJhMTYgamsvbWFpbG1hcC1pbmNvbXBsZXRlLWxpbmUgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBXZSB1c2VkIHRvIHNlbmQgYSBsYXJnZSByZXF1ZXN0IHRvIHJlYWQoMikvd3JpdGUoMikgYXMgYSBzaW5nbGUKKyAgIHN5c3RlbSBjYWxsLCB3aGljaCB3YXMgYmFkIGZyb20gdGhlIGxhdGVuY3kgcG9pbnQgb2YgdmlldyB3aGVuCisgICB0aGUgb3BlcmF0aW9uIG5lZWRzIHRvIGJlIGtpbGxlZCwgYW5kIGFsc28gdHJpZ2dlcmVkIGFuIGVycm9yIG9uCisgICBicm9rZW4gNjQtYml0IHN5c3RlbXMgdGhhdCByZWZ1c2UgdG8gcmVhZCBvciB3cml0ZSBtb3JlIHRoYW4gMkdCCisgICBpbiBvbmUgZ28uCisgICAobWVyZ2UgYTQ4NzkxNiBzcC9jbGlwLXJlYWQtd3JpdGUtdG8tOG1iIGxhdGVyIHRvIG1haW50KS4KKworICogImdpdCBmZXRjaCIgdGhhdCBhdXRvLWZvbGxvd2VkIHRhZ3MgaW5jb3JyZWN0bHkgcmV1c2VkIHRoZQorICAgY29ubmVjdGlvbiB3aXRoIEdpdC1hd2FyZSB0cmFuc3BvcnQgaGVscGVyIChsaWtlIHRoZSBzYW1wbGUgImV4dDo6IgorICAgaGVscGVyIHNoaXBwZWQgd2l0aCBHaXQpLgorICAgKG1lcmdlIDBmNzNmOGIgamMvdHJhbnNwb3J0LWRvLW5vdC11c2UtY29ubmVjdC10d2ljZS1pbi1mZXRjaCBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgbG9nIC0tZnVsbC1kaWZmIC0tIDxwYXRoc3BlYz4iIHNob3dlZCBhIGh1Z2UgZGlmZiBmb3IgcGF0aHMKKyAgIG91dHNpZGUgdGhlIGdpdmVuIDxwYXRoc3BlYz4gZm9yIGVhY2ggY29tbWl0LCBpbnN0ZWFkIG9mIHNob3dpbmcKKyAgIHRoZSBjaGFuZ2UgcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBvZiB0aGUgY29tbWl0LiAgImdpdCByZWZsb2cgLXAiCisgICBoYWQgYSBzaW1pbGFyIHByb2JsZW0uCisgICAobWVyZ2UgODM4ZjlhMSB0ci9sb2ctZnVsbC1kaWZmLWtlZXAtdHJ1ZS1wYXJlbnRzIGxhdGVyIHRvIG1haW50KS4KKworICogU2V0dGluZyBhIHN1Ym1vZHVsZS4qLnBhdGggY29uZmlndXJhdGlvbiB2YXJpYWJsZSB0byB0cnVlICh3aXRob3V0CisgICBnaXZpbmcgIj0gdmFsdWUiKSBjYXVzZWQgR2l0IHRvIHNlZ2ZhdWx0LgorICAgKG1lcmdlIDRiMDU0NDAgamwvc29tZS1zdWJtb2R1bGUtY29uZmlnLWFyZS1ub3QtYm9vbGVhbiBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgcmViYXNlIC1pIiAodGhlcmUgY291bGQgYmUgb3RoZXJzLCBhcyB0aGUgcm9vdCBjYXVzZSBpcyBwcmV0dHkKKyAgIGdlbmVyaWMpIGZlZCBhIHJhbmRvbSwgZGF0YSBkZXBlbmRlbnQgc3RyaW5nIHRvICdlY2hvJyBhbmQKKyAgIGV4cGVjdGVkIGl0IHRvIGNvbWUgb3V0IGxpdGVyYWxseSwgY29ycnVwdGluZyBpdHMgZXJyb3IgbWVzc2FnZS4KKyAgIChtZXJnZSA4OWIwMjMwIG1tL25vLXNoZWxsLWVzY2FwZS1pbi1kaWUtbWVzc2FnZSBsYXRlciB0byBtYWludCkuCisKKyAqIFNvbWUgcGVvcGxlIHN0aWxsIHVzZSByYXRoZXIgb2xkIHZlcnNpb25zIG9mIGJhc2gsIHdoaWNoIGNhbm5vdAorICAgZ3JvayBzb21lIGNvbnN0cnVjdHMgbGlrZSAncHJpbnRmIC12IHZhcm5hbWUnIHdoaWNoIHRoZSBwcm9tcHQgYW5kCisgICBjb21wbGV0aW9uIGNvZGUgc3RhcnRlZCB0byB1c2UgcmVjZW50bHkuCisgICAobWVyZ2UgYTQ0YWE2OSBiYy9jb21wbGV0aW9uLWZvci1iYXNoLTMuMCBsYXRlciB0byBtYWludCkuCisKKyAqIENvZGUgdG8gcmVhZCBjb25maWd1cmF0aW9uIGZyb20gYSBibG9iIG9iamVjdCBkaWQgbm90IGNvbXBpbGUgb24KKyAgIHBsYXRmb3JtcyB3aXRoIGZnZXRjKCkgZXRjLiBpbXBsZW1lbnRlZCBhcyBtYWNyb3MuCisgICAobWVyZ2UgNDlkNmNmYSBodi9jb25maWctZnJvbS1ibG9iIGxhdGVyIHRvIG1haW50LTEuOC4zKS4KKworICogVGhlIHJlY2VudCAic2hvcnQtY3V0IGNsb25lIGNvbm5lY3Rpdml0eSBjaGVjayIgdG9waWMgYnJva2UgYQorICAgc2hhbGxvdyByZXBvc2l0b3J5IHdoZW4gYSBmZXRjaCBvcGVyYXRpb24gdHJpZXMgdG8gYXV0by1mb2xsb3cgdGFncy4KKyAgIChtZXJnZSA2ZGE4YmRjIG5kL2ZldGNoLXBhY2stc2hhbGxvdy1maXggbGF0ZXIgdG8gbWFpbnQtMS44LjMpLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjkudHh0IGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjkudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiY2YzNzEKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOS50eHQKQEAgLTAsMCArMSwzMjYgQEAKK0dpdCB2MS45IFJlbGVhc2UgTm90ZXMKKz09PT09PT09PT09PT09PT09PT09PT0KKworQmFja3dhcmQgY29tcGF0aWJpbGl0eSBub3RlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisiZ2l0IHN1Ym1vZHVsZSBmb3JlYWNoICRjbWQgJGFyZ3MiIHVzZWQgdG8gdHJlYXQgIiRjbWQgJGFyZ3MiIHRoZSBzYW1lCit3YXkgInNzaCIgZGlkLCBjb25jYXRlbmF0aW5nIHRoZW0gaW50byBhIHNpbmdsZSBzdHJpbmcgYW5kIGxldHRpbmcgdGhlCitzaGVsbCB1bnF1b3RlLiBDYXJlbGVzcyB1c2VycyB3aG8gZm9yZ2V0IHRvIHN1ZmZpY2llbnRseSBxdW90ZSAkYXJncworZ2V0cyB0aGVpciBhcmd1bWVudCBzcGxpdCBhdCAkSUZTIHdoaXRlc3BhY2VzIGJ5IHRoZSBzaGVsbCwgYW5kIGdvdAordW5leHBlY3RlZCByZXN1bHRzIGR1ZSB0byB0aGlzLiBTdGFydGluZyBmcm9tIHRoaXMgcmVsZWFzZSwgdGhlCitjb21tYW5kIGxpbmUgaXMgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSBzaGVsbCwgaWYgaXQgaGFzIGFuIGFyZ3VtZW50LgorCitSZWFkLW9ubHkgc3VwcG9ydCBmb3IgZXhwZXJpbWVudGFsIGxvb3NlLW9iamVjdCBmb3JtYXQsIGluIHdoaWNoIHVzZXJzCitjb3VsZCBvcHRpb25hbGx5IGNob29zZSB0byB3cml0ZSBpbiB0aGVpciBsb29zZSBvYmplY3RzIGZvciBhIHNob3J0Cit3aGlsZSBiZXR3ZWVuIHYxLjQuMyB0byB2MS41LjMgZXJhLCBoYXMgYmVlbiBkcm9wcGVkLgorCitUaGUgbWVhbmluZ3Mgb2YgIi0tdGFncyIgb3B0aW9uIHRvICJnaXQgZmV0Y2giIGhhcyBjaGFuZ2VkOyB0aGUKK2NvbW1hbmQgZmV0Y2hlcyB0YWdzIF9pbiBhZGRpdGlvbiB0b18gd2hhdCBhcmUgZmV0Y2hlZCBieSB0aGUgc2FtZQorY29tbWFuZCBsaW5lIHdpdGhvdXQgdGhlIG9wdGlvbi4KKworVGhlIHdheSAiZ2l0IHB1c2ggJHRoZXJlICR3aGF0IiBpbnRlcnByZXRzICR3aGF0IHBhcnQgZ2l2ZW4gb24gdGhlCitjb21tYW5kIGxpbmUsIHdoZW4gaXQgZG9lcyBub3QgaGF2ZSBhIGNvbG9uIHRoYXQgZXhwbGljaXRseSB0ZWxscyB1cword2hhdCByZWYgYXQgdGhlICR0aGVyZSByZXBvc2l0b3J5IGlzIHRvIGJlIHVwZGF0ZWQsIGhhcyBiZWVuIGVuaGFuY2VkLgorCitBIGhhbmRmdWwgb2YgYW5jaWVudCBjb21tYW5kcyB0aGF0IGhhdmUgbG9uZyBiZWVuIGRlcHJlY2F0ZWQgYXJlCitmaW5hbGx5IGdvbmUgKHJlcG8tY29uZmlnLCB0YXItdHJlZSwgbG9zdC1mb3VuZCwgYW5kIHBlZWstcmVtb3RlKS4KKworCitCYWNrd2FyZCBjb21wYXRpYmlsaXR5IG5vdGVzIChmb3IgR2l0IDIuMCkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaGVuICJnaXQgcHVzaCBbJHRoZXJlXSIgZG9lcyBub3Qgc2F5IHdoYXQgdG8gcHVzaCwgd2UgaGF2ZSB1c2VkIHRoZQordHJhZGl0aW9uYWwgIm1hdGNoaW5nIiBzZW1hbnRpY3Mgc28gZmFyIChhbGwgeW91ciBicmFuY2hlcyB3ZXJlIHNlbnQKK3RvIHRoZSByZW1vdGUgYXMgbG9uZyBhcyB0aGVyZSBhbHJlYWR5IGFyZSBicmFuY2hlcyBvZiB0aGUgc2FtZSBuYW1lCitvdmVyIHRoZXJlKS4gIEluIEdpdCAyLjAsIHRoZSBkZWZhdWx0IHdpbGwgY2hhbmdlIHRvIHRoZSAic2ltcGxlIgorc2VtYW50aWNzLCB3aGljaCBwdXNoZXM6CisKKyAtIG9ubHkgdGhlIGN1cnJlbnQgYnJhbmNoIHRvIHRoZSBicmFuY2ggd2l0aCB0aGUgc2FtZSBuYW1lLCBhbmQgb25seQorICAgd2hlbiB0aGUgY3VycmVudCBicmFuY2ggaXMgc2V0IHRvIGludGVncmF0ZSB3aXRoIHRoYXQgcmVtb3RlCisgICBicmFuY2gsIGlmIHlvdSBhcmUgcHVzaGluZyB0byB0aGUgc2FtZSByZW1vdGUgYXMgeW91IGZldGNoIGZyb207IG9yCisKKyAtIG9ubHkgdGhlIGN1cnJlbnQgYnJhbmNoIHRvIHRoZSBicmFuY2ggd2l0aCB0aGUgc2FtZSBuYW1lLCBpZiB5b3UKKyAgIGFyZSBwdXNoaW5nIHRvIGEgcmVtb3RlIHRoYXQgaXMgbm90IHdoZXJlIHlvdSB1c3VhbGx5IGZldGNoIGZyb20uCisKK1VzZSB0aGUgdXNlciBwcmVmZXJlbmNlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgInB1c2guZGVmYXVsdCIgdG8KK2NoYW5nZSB0aGlzLiAgSWYgeW91IGFyZSBhbiBvbGQtdGltZXIgd2hvIGlzIHVzZWQgdG8gdGhlICJtYXRjaGluZyIKK3NlbWFudGljcywgeW91IGNhbiBzZXQgdGhlIHZhcmlhYmxlIHRvICJtYXRjaGluZyIgdG8ga2VlcCB0aGUKK3RyYWRpdGlvbmFsIGJlaGF2aW91ci4gIElmIHlvdSB3YW50IHRvIGxpdmUgaW4gdGhlIGZ1dHVyZSBlYXJseSwgeW91CitjYW4gc2V0IGl0IHRvICJzaW1wbGUiIHRvZGF5IHdpdGhvdXQgd2FpdGluZyBmb3IgR2l0IDIuMC4KKworV2hlbiAiZ2l0IGFkZCAtdSIgKGFuZCAiZ2l0IGFkZCAtQSIpIGlzIHJ1biBpbnNpZGUgYSBzdWJkaXJlY3RvcnkgYW5kCitkb2VzIG5vdCBzcGVjaWZ5IHdoaWNoIHBhdGhzIHRvIGFkZCBvbiB0aGUgY29tbWFuZCBsaW5lLCBpdAord2lsbCBvcGVyYXRlIG9uIHRoZSBlbnRpcmUgdHJlZSBpbiBHaXQgMi4wIGZvciBjb25zaXN0ZW5jeQord2l0aCAiZ2l0IGNvbW1pdCAtYSIgYW5kIG90aGVyIGNvbW1hbmRzLiAgVGhlcmUgd2lsbCBiZSBubworbWVjaGFuaXNtIHRvIG1ha2UgcGxhaW4gImdpdCBhZGQgLXUiIGJlaGF2ZSBsaWtlICJnaXQgYWRkIC11IC4iLgorQ3VycmVudCB1c2VycyBvZiAiZ2l0IGFkZCAtdSIgKHdpdGhvdXQgYSBwYXRoc3BlYykgc2hvdWxkIHN0YXJ0Cit0cmFpbmluZyB0aGVpciBmaW5nZXJzIHRvIGV4cGxpY2l0bHkgc2F5ICJnaXQgYWRkIC11IC4iCitiZWZvcmUgR2l0IDIuMCBjb21lcy4gIEEgd2FybmluZyBpcyBpc3N1ZWQgd2hlbiB0aGVzZSBjb21tYW5kcyBhcmUKK3J1biB3aXRob3V0IGEgcGF0aHNwZWMgYW5kIHdoZW4geW91IGhhdmUgbG9jYWwgY2hhbmdlcyBvdXRzaWRlIHRoZQorY3VycmVudCBkaXJlY3RvcnksIGJlY2F1c2UgdGhlIGJlaGF2aW91ciBpbiBHaXQgMi4wIHdpbGwgYmUgZGlmZmVyZW50Citmcm9tIHRvZGF5J3MgdmVyc2lvbiBpbiBzdWNoIGEgc2l0dWF0aW9uLgorCitJbiBHaXQgMi4wLCAiZ2l0IGFkZCA8cGF0aD4iIHdpbGwgYmVoYXZlIGFzICJnaXQgYWRkIC1BIDxwYXRoPiIsIHNvCit0aGF0ICJnaXQgYWRkIGRpci8iIHdpbGwgbm90aWNlIHBhdGhzIHlvdSByZW1vdmVkIGZyb20gdGhlIGRpcmVjdG9yeQorYW5kIHJlY29yZCB0aGUgcmVtb3ZhbC4gIFZlcnNpb25zIGJlZm9yZSBHaXQgMi4wLCBpbmNsdWRpbmcgdGhpcworcmVsZWFzZSwgd2lsbCBrZWVwIGlnbm9yaW5nIHJlbW92YWxzLCBidXQgdGhlIHVzZXJzIHdobyByZWx5IG9uIHRoaXMKK2JlaGF2aW91ciBhcmUgZW5jb3VyYWdlZCB0byBzdGFydCB1c2luZyAiZ2l0IGFkZCAtLWlnbm9yZS1yZW1vdmFsIDxwYXRoPiIKK25vdyBiZWZvcmUgMi4wIGlzIHJlbGVhc2VkLgorCitUaGUgZGVmYXVsdCBwcmVmaXggZm9yICJnaXQgc3ZuIiB3aWxsIGNoYW5nZSBpbiBHaXQgMi4wLiAgRm9yIGEgbG9uZwordGltZSwgImdpdCBzdm4iIGNyZWF0ZWQgaXRzIHJlbW90ZS10cmFja2luZyBicmFuY2hlcyBkaXJlY3RseSB1bmRlcgorcmVmcy9yZW1vdGVzLCBidXQgaXQgd2lsbCBwbGFjZSB0aGVtIHVuZGVyIHJlZnMvcmVtb3Rlcy9vcmlnaW4vIHVubGVzcworaXQgaXMgdG9sZCBvdGhlcndpc2Ugd2l0aCBpdHMgLS1wcmVmaXggb3B0aW9uLgorCisKK1VwZGF0ZXMgc2luY2UgdjEuOC41CistLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGb3JlaWduIGludGVyZmFjZXMsIHN1YnN5c3RlbXMgYW5kIHBvcnRzLgorCisgKiBUaGUgSFRUUCB0cmFuc3BvcnQsIHdoZW4gdGFsa2luZyBHU1MtTmVnb3RpYXRlLCB1c2VzICIxMDAKKyAgIENvbnRpbnVlIiByZXNwb25zZSB0byBhdm9pZCBoYXZpbmcgdG8gcmV3aW5kIGFuZCByZXNlbmQgYSBsYXJnZQorICAgcGF5bG9hZCwgd2hpY2ggbWF5IG5vdCBiZSBhbHdheXMgZG9hYmxlLgorCisgKiBWYXJpb3VzIGJ1Z2ZpeGVzIHRvIHJlbW90ZS1ienIgYW5kIHJlbW90ZS1oZyAoaW4gY29udHJpYi8pLgorCisgKiBUaGUgYnVpbGQgcHJvY2VkdXJlIGlzIGF3YXJlIG9mIE1pckJTRCBub3cuCisKKworVUksIFdvcmtmbG93cyAmIEZlYXR1cmVzCisKKyAqIEZldGNoaW5nIGZyb20gYSBzaGFsbG93bHktY2xvbmVkIHJlcG9zaXRvcnkgdXNlZCB0byBiZSBmb3JiaWRkZW4sCisgICBwcmltYXJpbHkgYmVjYXVzZSB0aGUgY29kZXBhdGhzIGludm9sdmVkIHdlcmUgbm90IGNhcmVmdWxseSB2ZXR0ZWQKKyAgIGFuZCB3ZSBkaWQgbm90IGJvdGhlciBzdXBwb3J0aW5nIHN1Y2ggdXNhZ2UuIFRoaXMgcmVsZWFzZSBhdHRlbXB0cworICAgdG8gYWxsb3cgb2JqZWN0IHRyYW5zZmVyIG91dCBvZiBhIHNoYWxsb3dseS1jbG9uZWQgcmVwb3NpdG9yeSBpbiBhCisgICBtb3JlIGNvbnRyb2xsZWQgd2F5IChpLmUuIHRoZSByZWNlaXZlciBiZWNvbWUgYSBzaGFsbG93IHJlcG9zaXRvcnkKKyAgIHdpdGggYSB0cnVuY2F0ZWQgaGlzdG9yeSkuCisKKyAqIEp1c3QgbGlrZSB3ZSBnaXZlIGEgcmVhc29uYWJsZSBkZWZhdWx0IGZvciAibGVzcyIgdmlhIHRoZSBMRVNTCisgICBlbnZpcm9ubWVudCB2YXJpYWJsZSwgd2Ugbm93IHNwZWNpZnkgYSByZWFzb25hYmxlIGRlZmF1bHQgZm9yICJsdiIKKyAgIHZpYSB0aGUgIkxWIiBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aGVuIHNwYXduaW5nIHRoZSBwYWdlci4KKworICogVHdvLWxldmVsIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgbmFtZXMgaW4gImJyYW5jaC4qIiBhbmQgInJlbW90ZS4qIgorICAgaGllcmFyY2hpZXMsIHdob3NlIHZhcmlhYmxlcyBhcmUgcHJlZG9taW5hbnRseSB0aHJlZS1sZXZlbCwgd2VyZQorICAgbm90IGNvbXBsZXRlZCBieSBoaXR0aW5nIGEgPFRBQj4gaW4gYmFzaCBhbmQgenNoIGNvbXBsZXRpb25zLgorCisgKiBGZXRjaGluZyAnZnJvdHonIGJyYW5jaCB3aXRoICJnaXQgZmV0Y2giLCB3aGlsZSAnZnJvdHovbml0Zm9sJworICAgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCBmcm9tIGFuIGVhcmxpZXIgZmV0Y2ggd2FzIHN0aWxsIHRoZXJlLCB3b3VsZAorICAgZXJyb3Igb3V0LCBwcmltYXJpbHkgYmVjYXVzZSB0aGUgY29tbWFuZCB3YXMgbm90IHRvbGQgdGhhdCBpdCBpcworICAgYWxsb3dlZCB0byBsb3NlIGFueSBpbmZvcm1hdGlvbiBvbiBvdXIgc2lkZS4gICJnaXQgZmV0Y2ggLS1wcnVuZSIKKyAgIG5vdyBjYW4gYmUgdXNlZCB0byByZW1vdmUgJ2Zyb3R6L25pdGZvbCcgdG8gbWFrZSByb29tIHRvIGZldGNoIGFuZAorICAgc3RvcmUgJ2Zyb3R6JyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoLgorCisgKiAiZGlmZi5vcmRlcmZpbGU9PGZpbGU+IiBjb25maWd1cmF0aW9uIHZhcmlhYmxlIGNhbiBiZSB1c2VkIHRvCisgICBwcmV0ZW5kIGFzIGlmIHRoZSAiLU88ZmlsZT4iIG9wdGlvbiB3ZXJlIGdpdmVuIGZyb20gdGhlIGNvbW1hbmQKKyAgIGxpbmUgb2YgImdpdCBkaWZmIiwgZXRjLgorCisgKiBUaGUgbmVnYXRpdmUgcGF0aHNwZWMgc3ludGF4IGFsbG93cyAiZ2l0IGxvZyAtLSAuICc6IWRpciciIHRvIHRlbGwKKyAgIHVzICJJIGFtIGludGVyZXN0ZWQgaW4gZXZlcnl0aGluZyBidXQgJ2RpcicgZGlyZWN0b3J5Ii4KKworICogImdpdCBkaWZmdG9vbCIgc2hvd3MgaG93IG1hbnkgZGlmZmVyZW50IHBhdGhzIHRoZXJlIGFyZSBpbiB0b3RhbCwKKyAgIGFuZCBob3cgbWFueSBvZiB0aGVtIGhhdmUgYmVlbiBzaG93biBzbyBmYXIsIHRvIGluZGljYXRlIHByb2dyZXNzLgorCisgKiAiZ2l0IHB1c2ggb3JpZ2luIG1hc3RlciIgdXNlZCB0byBwdXNoIG91ciAnbWFzdGVyJyBicmFuY2ggdG8gdXBkYXRlCisgICB0aGUgJ21hc3RlcicgYnJhbmNoIGF0IHRoZSAnb3JpZ2luJyByZXBvc2l0b3J5LiAgVGhpcyBoYXMgYmVlbgorICAgZW5oYW5jZWQgdG8gdXNlIHRoZSBzYW1lIHJlZiBtYXBwaW5nICJnaXQgcHVzaCBvcmlnaW4iIHdvdWxkIHVzZSB0bworICAgZGV0ZXJtaW5lIHdoYXQgcmVmIGF0IHRoZSAnb3JpZ2luJyB0byBiZSB1cGRhdGVkIHdpdGggb3VyICdtYXN0ZXInLgorICAgRm9yIGV4YW1wbGUsIHdpdGggdGhpcyBjb25maWd1cmF0aW9uCisKKyAgIFtyZW1vdGUgIm9yaWdpbiJdCisgICAgICBwdXNoID0gcmVmcy9oZWFkcy8qOnJlZnMvcmV2aWV3LyoKKworICAgdGhhdCB3b3VsZCBjYXVzZSAiZ2l0IHB1c2ggb3JpZ2luIiB0byBwdXNoIG91dCBvdXIgbG9jYWwgYnJhbmNoZXMKKyAgIHRvIGNvcnJlc3BvbmRpbmcgcmVmcyB1bmRlciByZWZzL3Jldmlldy8gaGllcmFyY2h5IGF0ICdvcmlnaW4nLAorICAgImdpdCBwdXNoIG9yaWdpbiBtYXN0ZXIiIHdvdWxkIHVwZGF0ZSAncmVmcy9yZXZpZXcvbWFzdGVyJyBvdmVyCisgICB0aGVyZS4gIEFsdGVybmF0aXZlbHksIGlmIHB1c2guZGVmYXVsdCBpcyBzZXQgdG8gJ3Vwc3RyZWFtJyBhbmQgb3VyCisgICAnbWFzdGVyJyBpcyBzZXQgdG8gaW50ZWdyYXRlIHdpdGggJ3RvcGljJyBmcm9tIHRoZSAnb3JpZ2luJyBicmFuY2gsCisgICBydW5uaW5nICJnaXQgcHVzaCBvcmlnaW4iIHdoaWxlIG9uIG91ciAnbWFzdGVyJyB3b3VsZCB1cGRhdGUgdGhlaXIKKyAgICd0b3BpYycgYnJhbmNoLCBhbmQgcnVubmluZyAiZ2l0IHB1c2ggb3JpZ2luIG1hc3RlciIgd2hpbGUgb24gYW55CisgICBvZiBvdXIgYnJhbmNoZXMgZG9lcyB0aGUgc2FtZS4KKworICogImdpdHdlYiIgbGVhcm5lZCB0byB0cmVhdCByZWYgaGllcmFyY2hpZXMgb3RoZXIgdGhhbiByZWZzL2hlYWRzIGFzCisgICBpZiB0aGV5IGFyZSBhZGRpdGlvbmFsIGJyYW5jaCBuYW1lc3BhY2VzIChlLmcuIHJlZnMvY2hhbmdlcy8gaW4KKyAgIEdlcnJpdCkuCisKKyAqICJnaXQgZm9yLWVhY2gtcmVmIC0tZm9ybWF0PS4uLiIgbGVhcm5lZCBhIGZldyBmb3JtYXR0aW5nIGRpcmVjdGl2ZXM7CisgICBlLmcuICIlKGNvbG9yOnJlZCklKEhFQUQpJShjb2xvcjpyZXNldCkgJShyZWZuYW1lOnNob3J0KSAlKHN1YmplY3QpIi4KKworICogVGhlIGNvbW1hbmQgc3RyaW5nIGdpdmVuIHRvICJnaXQgc3VibW9kdWxlIGZvcmVhY2giIGlzIHBhc3NlZAorICAgZGlyZWN0bHkgdG8gdGhlIHNoZWxsLCB3aXRob3V0IGJlaW5nIGV2YWwnZWQuICBUaGlzIGlzIGEgYmFja3dhcmQKKyAgIGluY29tcGF0aWJsZSBjaGFuZ2UgdGhhdCBtYXkgYnJlYWsgZXhpc3RpbmcgdXNlcnMuCisKKyAqICJnaXQgbG9nIiBhbmQgZnJpZW5kcyBsZWFybmVkIHRoZSAiLS1leGNsdWRlPTxnbG9iPiIgb3B0aW9uLCB0bworICAgYWxsb3cgcGVvcGxlIHRvIHNheSAibGlzdCBoaXN0b3J5IG9mIGFsbCBicmFuY2hlcyBleGNlcHQgdGhvc2UgdGhhdAorICAgbWF0Y2ggdGhpcyBwYXR0ZXJuIiB3aXRoICJnaXQgbG9nIC0tZXhjbHVkZT0nKi8qJyAtLWJyYW5jaGVzIi4KKworICogImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCIgbGVhcm5lZCBhIG5ldyAiLS1zdHVjay1sb25nIiBvcHRpb24gdG8KKyAgIGhlbHAgc2NyaXB0cyBwYXJzZSBvcHRpb25zIHdpdGggYW4gb3B0aW9uYWwgcGFyYW1ldGVyLgorCisgKiBUaGUgIi0tdGFncyIgb3B0aW9uIHRvICJnaXQgZmV0Y2giIG5vIGxvbmdlciB0ZWxscyB0aGUgY29tbWFuZCB0bworICAgZmV0Y2ggX29ubHlfIHRoZSB0YWdzLiBJdCBpbnN0ZWFkIGZldGNoZXMgdGFncyBfaW4gYWRkaXRpb24gdG9fCisgICB3aGF0IGFyZSBmZXRjaGVkIGJ5IHRoZSBzYW1lIGNvbW1hbmQgbGluZSB3aXRob3V0IHRoZSBvcHRpb24uCisKKworUGVyZm9ybWFuY2UsIEludGVybmFsIEltcGxlbWVudGF0aW9uLCBldGMuCisKKyAqIFdoZW4gcGFyc2luZyBhIDQwLWhleCBzdHJpbmcgaW50byB0aGUgb2JqZWN0IG5hbWUsIHRoZSBzdHJpbmcgaXMKKyAgIGNoZWNrZWQgdG8gc2VlIGlmIGl0IGNhbiBiZSBpbnRlcnByZXRlZCBhcyBhIHJlZiBzbyB0aGF0IGEgd2FybmluZworICAgY2FuIGJlIGdpdmVuIGZvciBhbWJpZ3VpdHkuIFRoZSBjb2RlIGtpY2tlZCBpbiBldmVuIHdoZW4gdGhlCisgICBjb3JlLndhcm5hbWJpZ3VvdXNyZWZzIGlzIHNldCB0byBmYWxzZSB0byBzcXVlbGNoIHRoaXMgd2FybmluZywgaW4KKyAgIHdoaWNoIGNhc2UgdGhlIGN5Y2xlcyBzcGVudCB0byBsb29rIGF0IHRoZSByZWYgbmFtZXNwYWNlIHdlcmUgYW4KKyAgIGV4cGVuc2l2ZSBuby1vcCwgYXMgdGhlIHJlc3VsdCB3YXMgZGlzY2FyZGVkIHdpdGhvdXQgYmVpbmcgdXNlZC4KKworICogVGhlIG5hbWluZyBjb252ZW50aW9uIG9mIHRoZSBwYWNrZmlsZXMgaGFzIGJlZW4gdXBkYXRlZDsgaXQgdXNlZCB0bworICAgYmUgYmFzZWQgb24gdGhlIGVudW1lcmF0aW9uIG9mIG5hbWVzIG9mIHRoZSBvYmplY3RzIHRoYXQgYXJlCisgICBjb250YWluZWQgaW4gdGhlIHBhY2ssIGJ1dCBub3cgaXQgYWxzbyBkZXBlbmRzIG9uIGhvdyB0aGUgcGFja2VkCisgICByZXN1bHQgaXMgcmVwcmVzZW50ZWQtLS1wYWNraW5nIHRoZSBzYW1lIHNldCBvZiBvYmplY3RzIHVzaW5nCisgICBkaWZmZXJlbnQgc2V0dGluZ3MgKG9yIGRlbHRhIG9yZGVyKSB3b3VsZCBwcm9kdWNlIGEgcGFjayB3aXRoCisgICBkaWZmZXJlbnQgbmFtZS4KKworICogImdpdCBkaWZmIC0tbm8taW5kZXgiIG1vZGUgdXNlZCB0byB1bm5lY2Vzc2FyaWx5IGF0dGVtcHQgdG8gcmVhZAorICAgdGhlIGluZGV4IHdoZW4gdGhlcmUgaXMgb25lLgorCisgKiBUaGUgZGVwcmVjYXRlZCBwYXJzZS1vcHRpb25zIG1hY3JvIE9QVF9CT09MRUFOIGhhcyBiZWVuIHJlbW92ZWQ7CisgICB1c2UgT1BUX0JPT0wgb3IgT1BUX0NPVU5UVVAgaW4gbmV3IGNvZGUuCisKKyAqIEEgZmV3IGR1cGxpY2F0ZSBpbXBsZW1lbnRhdGlvbnMgb2YgcHJlZml4L3N1ZmZpeCBzdHJpbmcgY29tcGFyaXNvbgorICAgZnVuY3Rpb25zIGhhdmUgYmVlbiB1bmlmaWVkIHRvIHN0YXJ0c193aXRoKCkgYW5kIGVuZHNfd2l0aCgpLgorCisgKiBUaGUgbmV3IFBFUkxMSUJfRVhUUkEgbWFrZWZpbGUgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeQorICAgYWRkaXRpb25hbCBkaXJlY3RvcmllcyBQZXJsIG1vZHVsZXMgKGUuZy4gdGhlIG9uZXMgbmVjZXNzYXJ5IHRvIHJ1bgorICAgZ2l0LXN2bikgYXJlIGluc3RhbGxlZCBvbiB0aGUgcGxhdGZvcm0gd2hlbiBidWlsZGluZy4KKworICogImdpdCBtZXJnZS1iYXNlIiBsZWFybmVkIHRoZSAiLS1mb3JrLXBvaW50IiBtb2RlLCB0aGF0IGltcGxlbWVudHMKKyAgIHRoZSBzYW1lIGxvZ2ljIHVzZWQgaW4gImdpdCBwdWxsIC0tcmViYXNlIiB0byBmaW5kIGEgc3VpdGFibGUgZm9yaworICAgcG9pbnQgb3V0IG9mIHRoZSByZWZsb2cgZW50cmllcyBmb3IgdGhlIHJlbW90ZS10cmFja2luZyBicmFuY2ggdGhlCisgICB3b3JrIGhhcyBiZWVuIGJhc2VkIG9uLiAgImdpdCByZWJhc2UiIGhhcyB0aGUgc2FtZSBsb2dpYyB0aGF0IGNhbiBiZQorICAgdHJpZ2dlcmVkIHdpdGggdGhlICItLWZvcmstcG9pbnQiIG9wdGlvbi4KKworICogQSB0aGlyZC1wYXJ0eSAicmVjZWl2ZS1wYWNrIiAodGhlIHJlc3BvbmRlciB0byAiZ2l0IHB1c2giKSBjYW4KKyAgIGFkdmVydGlzZSB0aGUgIm5vLXRoaW4iIGNhcGFiaWxpdHkgdG8gdGVsbCAiZ2l0IHB1c2giIG5vdCB0byB1c2UKKyAgIHRoZSB0aGluLXBhY2sgb3B0aW1pemF0aW9uLiBPdXIgcmVjZWl2ZS1wYWNrIGhhcyBhbHdheXMgYmVlbgorICAgY2FwYWJsZSBvZiBhY2NlcHRpbmcgYW5kIGZhdHRlbmluZyBhIHRoaW4tcGFjaywgYW5kIHdpbGwgY29udGludWUKKyAgIG5vdCB0byBhc2sgImdpdCBwdXNoIiB0byB1c2UgYSBub24tdGhpbiBwYWNrLgorCisKK0Fsc28gY29udGFpbnMgdmFyaW91cyBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kIGNvZGUgY2xlYW4tdXBzLgorCisKK0ZpeGVzIHNpbmNlIHYxLjguNQorLS0tLS0tLS0tLS0tLS0tLS0tCisKK1VubGVzcyBvdGhlcndpc2Ugbm90ZWQsIGFsbCB0aGUgZml4ZXMgc2luY2UgdjEuOC41IGluIHRoZSBtYWludGVuYW5jZQordHJhY2sgYXJlIGNvbnRhaW5lZCBpbiB0aGlzIHJlbGVhc2UgKHNlZSB0aGUgbWFpbnRlbmFuY2UgcmVsZWFzZXMnIG5vdGVzCitmb3IgZGV0YWlscykuCisKKyAqICJzdWJtb2R1bGUuKi51cGRhdGU9Y2hlY2tvdXQiLCB3aGVuIHByb3BhZ2F0ZWQgZnJvbSAuZ2l0bW9kdWxlcyB0bworICAgLmdpdC9jb25maWcsIHR1cm5lZCBpbnRvIGEgInN1Ym1vZHVsZS4qLnVwZGF0ZT1ub25lIiwgd2hpY2ggZGlkIG5vdAorICAgbWFrZSBtdWNoIHNlbnNlLgorICAgKG1lcmdlIGVmYThmZDcgZnAvc3VibW9kdWxlLWNoZWNrb3V0LW1vZGUgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBUaGUgaW1wbGVtZW50YXRpb24gb2YgJ2dpdCBzdGFzaCAkY21kICJzdGFzaEB7Li4ufSInIGRpZCBub3QgcXVvdGUKKyAgIHRoZSBzdGFzaCBhcmd1bWVudCBwcm9wZXJseSBhbmQgbGVmdCBpdCBzcGxpdCBhdCBJRlMgd2hpdGVzcGFjZS4KKyAgIChtZXJnZSAyYTA3ZTQzIG93L3N0YXNoLXdpdGgtaWZzIGxhdGVyIHRvIG1haW50KS4KKworICogVGhlICItLVtuby1daW5mb3JtYXRpdmUtZXJyb3JzIiBvcHRpb25zIHRvICJnaXQgZGFlbW9uIiB3ZXJlIHBhcnNlZAorICAgYSBiaXQgdG9vIGxvb3NlbHksIGFsbG93aW5nIGFueSBvdGhlciBzdHJpbmcgYWZ0ZXIgdGhlc2Ugb3B0aW9uCisgICBuYW1lcy4KKyAgIChtZXJnZSA4MjI0NmI3IG5kL2RhZW1vbi1pbmZvcm1hdGl2ZS1lcnJvcnMtdHlwb2ZpeCBsYXRlciB0byBtYWludCkuCisKKyAqIFRoZXJlIGlzIG5vIHJlYXNvbiB0byBoYXZlIGEgaGFyZGNvZGVkIHVwcGVyIGxpbWl0IG9mIHRoZSBudW1iZXIgb2YKKyAgIHBhcmVudHMgZm9yIGFuIG9jdG9wdXMgbWVyZ2UsIGNyZWF0ZWQgdmlhIHRoZSBncmFmdCBtZWNoYW5pc20sIGJ1dAorICAgdGhlcmUgd2FzLgorICAgKG1lcmdlIGUyMjhjMTcganMvbGlmdC1wYXJlbnQtY291bnQtbGltaXQgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBUaGUgYmFzaWMgdGVzdCB1c2VkIHRvIGxlYXZlIHVubmVjZXNzYXJ5IHRyYXNoIGRpcmVjdG9yaWVzIGluIHRoZQorICAgdC8gZGlyZWN0b3J5LgorICAgKG1lcmdlIDczOGE4YmUgamsvdGVzdC1mcmFtZXdvcmstdXBkYXRlcyBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgbWVyZ2UtYmFzZSAtLW9jdG9wdXMiIHVzZWQgdG8gbGVhdmUgY2xlYW5pbmcgdXAgc3Vib3B0aW1hbAorICAgcmVzdWx0IHRvIHRoZSBjYWxsZXIsIGJ1dCBub3cgaXQgZG9lcyB0aGUgY2xlYW4tdXAgaXRzZWxmLgorICAgKG1lcmdlIDhmMjkyOTkgYm0vbWVyZ2UtYmFzZS1vY3RvcHVzLWRlZHVwIGxhdGVyIHRvIG1haW50KS4KKworICogQSAiZ2MiIHByb2Nlc3MgcnVubmluZyBhcyBhIGRpZmZlcmVudCB1c2VyIHNob3VsZCBiZSBhYmxlIHRvIHN0b3AgYQorICAgbmV3ICJnYyIgcHJvY2VzcyBmcm9tIHN0YXJ0aW5nLCBidXQgaXQgZGlkbid0LgorICAgKG1lcmdlIGVkN2VkYTgga20vZ2MtZXBlcm0gbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBBbiBlYXJsaWVyICJjbGVhbi11cCIgaW50cm9kdWNlZCBhbiB1bm5lY2Vzc2FyeSBtZW1vcnkgbGVhay4KKyAgIChtZXJnZSBlMWMxYTMyIGprL2NyZWRlbnRpYWwtcGx1Zy1sZWFrIGxhdGVyIHRvIG1haW50KS4KKworICogImdpdCBhZGQgLUEiIChubyBvdGhlciBhcmd1bWVudHMpIGluIGEgdG90YWxseSBlbXB0eSB3b3JraW5nIHRyZWUKKyAgIHVzZWQgdG8gZW1pdCBhbiBlcnJvci4KKyAgIChtZXJnZSA2NGVkMDdjIG5kL2FkZC1lbXB0eS1maXggbGF0ZXIgdG8gbWFpbnQpLgorCisgKiAiZ2l0IGxvZyAtLWRlY29yYXRlIiBkaWQgbm90IGhhbmRsZSBhIHRhZyBwb2ludGVkIGJ5IGFub3RoZXIgdGFnCisgICBuaWNlbHkuCisgICAobWVyZ2UgNWUxMzYxYyBiYy9sb2ctZGVjb3JhdGlvbiBsYXRlciB0byBtYWludCkuCisKKyAqIFdoZW4gd2UgZmlndXJlIG91dCBob3cgbWFueSBmaWxlIGRlc2NyaXB0b3JzIHRvIGFsbG9jYXRlIGZvcgorICAga2VlcGluZyBwYWNrZmlsZXMgb3BlbiwgYSBzeXN0ZW0gd2l0aCBub24td29ya2luZyBnZXRybGltaXQoKSBjb3VsZAorICAgY2F1c2UgdXMgdG8gZGllKCksIGJ1dCBiZWNhdXNlIHdlIG1ha2UgdGhpcyBjYWxsIG9ubHkgdG8gZ2V0IGEKKyAgIHJvdWdoIGVzdGltYXRlIG9mIGhvdyBtYW55IGlzIGF2YWlsYWJsZSBhbmQgd2UgZG8gbm90IGV2ZW4gYXR0ZW1wdAorICAgdG8gdXNlIHVwIGFsbCBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZSBvdXJzZWx2ZXMsIGl0IGlzIG5pY2VyIHRvCisgICBmYWxsIGJhY2sgdG8gYSByZWFzb25hYmxlIGxvdyB2YWx1ZSByYXRoZXIgdGhhbiBkeWluZy4KKyAgIChtZXJnZSA0OTFhOGRlIGpoL3JsaW1pdC1ub2ZpbGUtZmFsbGJhY2sgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiByZWFkX3NoYTFfZmlsZSgpLCB0aGF0IGlzIHRoZSB3b3JraG9yc2UgdG8gcmVhZCB0aGUgY29udGVudHMgZ2l2ZW4KKyAgIGFuIG9iamVjdCBuYW1lLCBob25vdXJlZCBvYmplY3QgcmVwbGFjZW1lbnRzLCBidXQgdGhlcmUgd2FzIG5vCisgICBjb3JyZXNwb25kaW5nIG1lY2hhbmlzbSB0byBzaGExX29iamVjdF9pbmZvKCkgdGhhdCB3YXMgdXNlZCB0bworICAgb2J0YWluIHRoZSBtZXRhaW5mbyAoZS5nLiB0eXBlICYgc2l6ZSkgYWJvdXQgdGhlIG9iamVjdC4gIFRoaXMgbGVkCisgICBjYWxsZXJzIHRvIHdlaXJkIGluY29uc2lzdGVuY2llcy4KKyAgIChtZXJnZSA2NjNhODU2IGNjL3JlcGxhY2Utb2JqZWN0LWluZm8gbGF0ZXIgdG8gbWFpbnQpLgorCisgKiAiZ2l0IGNhdC1maWxlIC0tYmF0Y2g9IiwgYW4gYWRtaXR0ZWRseSB1c2VsZXNzIGNvbW1hbmQsIGRpZCBub3QKKyAgIGJlaGF2ZSB2ZXJ5IHdlbGwuCisgICAobWVyZ2UgNjU1NGRmYSBqay9jYXQtZmlsZS1yZWdyZXNzaW9uLWZpeCBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgcmV2LXBhcnNlIDxyZXZzPiAtLSA8cGF0aHM+IiBkaWQgbm90IGltcGxlbWVudCB0aGUgdXN1YWwKKyAgIGRpc2FtYmlndWF0aW9uIHJ1bGVzIHRoZSBjb21tYW5kcyBpbiB0aGUgImdpdCBsb2ciIGZhbWlseSB1c2VkIGluCisgICB0aGUgc2FtZSB3YXkuCisgICAobWVyZ2UgNjJmMTYyZiBqay9yZXYtcGFyc2UtZG91YmxlLWRhc2hlcyBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgbXYgQSBCLyIsIHdoZW4gQiBkb2VzIG5vdCBleGlzdCBhcyBhIGRpcmVjdG9yeSwgc2hvdWxkIGVycm9yCisgICBvdXQsIGJ1dCBpdCBkaWRuJ3QuCisgICAobWVyZ2UgYzU3ZjYyOCBtbS9tdi1maWxlLXRvLW5vLXN1Y2gtZGlyLXdpdGgtc2xhc2ggbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBBIHdvcmthcm91bmQgdG8gYW4gb2xkIGJ1ZyBpbiBnbGliYyBwcmlvciB0byBnbGliYyAyLjE3IGhhcyBiZWVuCisgICByZXRpcmVkOyB0aGlzIHdvdWxkIHJlbW92ZSBhIHNpZGUgZWZmZWN0IG9mIHRoZSB3b3JrYXJvdW5kIHRoYXQKKyAgIGNvcnJ1cHRzIHN5c3RlbSBlcnJvciBtZXNzYWdlcyBpbiBub24tQyBsb2NhbGVzLgorCisgKiBTU0wtcmVsYXRlZCBvcHRpb25zIHdlcmUgbm90IHBhc3NlZCBjb3JyZWN0bHkgdG8gdW5kZXJseWluZyBzb2NrZXQKKyAgIGxheWVyIGluICJnaXQgc2VuZC1lbWFpbCIuCisgICAobWVyZ2UgNTUwOGYzZSB0ci9zZW5kLWVtYWlsLXNzbCBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgY29tbWl0IC12IiBhcHBlbmRzIHRoZSBwYXRjaCB0byB0aGUgbG9nIG1lc3NhZ2UgYmVmb3JlCisgICBlZGl0aW5nLCBhbmQgdGhlbiByZW1vdmVzIHRoZSBwYXRjaCB3aGVuIHRoZSBlZGl0b3IgcmV0dXJuZWQKKyAgIGNvbnRyb2wuIEhvd2V2ZXIsIHRoZSBwYXRjaCB3YXMgbm90IHN0cmlwcGVkIGNvcnJlY3RseSB3aGVuIHRoZQorICAgZmlyc3QgbW9kaWZpZWQgcGF0aCB3YXMgYSBzdWJtb2R1bGUuCisgICAobWVyZ2UgMWE3MmNmZCBqbC9jb21taXQtdi1zdHJpcC1tYXJrZXIgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiAiZ2l0IGZldGNoIC0tZGVwdGg9MCIgd2FzIGEgbm8tb3AsIGFuZCB3YXMgc2lsZW50bHkgaWdub3JlZC4KKyAgIERpYWdub3NlIGl0IGFzIGFuIGVycm9yLgorICAgKG1lcmdlIDU1OTRiY2EgbmQvdHJhbnNwb3J0LXBvc2l0aXZlLWRlcHRoLW9ubHkgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBSZW1vdGUgcmVwb3NpdG9yeSBVUkwgZXhwcmVzc2VkIGluIHNjcC1zdHlsZSBob3N0OnBhdGggbm90YXRpb24gYXJlCisgICBwYXJzZWQgbW9yZSBjYXJlZnVsbHkgKGUuZy4gImZvby9iYXI6YmF6IiBpcyBsb2NhbCwgIls6OjFdOi9+dXNlciIgYXNrcworICAgdG8gY29ubmVjdCB0byB1c2VyJ3MgaG9tZSBkaXJlY3Rvcnkgb24gaG9zdCBhdCBhZGRyZXNzIDo6MS4KKyAgIChtZXJnZSBhMjAzNmQ3IHRiL2Nsb25lLXNzaC13aXRoLWNvbG9uLWZvci1wb3J0IGxhdGVyIHRvIG1haW50KS4KKworICogImdpdCBkaWZmIC0tICc6KGljYXNlKW1ha2VmaWxlJyIgd2FzIHVubmVjZXNzYXJpbHkgcmVqZWN0ZWQgYXQgdGhlCisgICBjb21tYW5kIGxpbmUgcGFyc2VyLgorICAgKG1lcmdlIDg4N2M2YzEgbmQvbWFnaWMtcGF0aHNwZWMgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiAiZ2l0IGNhdC1maWxlIC0tYmF0Y2gtY2hlY2s9b2siIGRpZCBub3QgY2hlY2sgdGhlIGV4aXN0ZW5jZSBvZgorICAgdGhlIG5hbWVkIG9iamVjdC4KKyAgIChtZXJnZSA0ZWY4ZDFkIHNiL3NoYTEtbG9vc2Utb2JqZWN0LWluZm8tY2hlY2stZXhpc3RlbmNlIGxhdGVyIHRvIG1haW50KS4KKworICogImdpdCBhbSAtLWFib3J0IiBzb21ldGltZXMgY29tcGxhaW5lZCBhYm91dCBub3QgYmVpbmcgYWJsZSB0byB3cml0ZQorICAgYSB0cmVlIHdpdGggYW4gMHs0MH0gb2JqZWN0IGluIGl0LgorICAgKG1lcmdlIDc3YjQzY2EgamsvdHdvLXdheS1tZXJnZS1jb3JuZXItY2FzZS1maXggbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBUd28gcHJvY2Vzc2VzIGNyZWF0aW5nIGxvb3NlIG9iamVjdHMgYXQgdGhlIHNhbWUgdGltZSBjb3VsZCBoYXZlCisgICBmYWlsZWQgdW5uZWNlc3NhcmlseSB3aGVuIHRoZSBuYW1lIG9mIHRoZWlyIG5ldyBvYmplY3RzIHN0YXJ0ZWQKKyAgIHdpdGggdGhlIHNhbWUgYnl0ZSB2YWx1ZSwgZHVlIHRvIGEgcmFjZSBjb25kaXRpb24uCisgICAobWVyZ2UgYjI0NzZhNiBqaC9sb29zZS1vYmplY3QtZGlycy1jcmVhdGlvbi1yYWNlIGxhdGVyIHRvIG1haW50KS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vU3VibWl0dGluZ1BhdGNoZXMgYi9Eb2N1bWVudGF0aW9uL1N1Ym1pdHRpbmdQYXRjaGVzCmluZGV4IGQwYTQ3MzMuLmU2ZDQ2ZWQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vU3VibWl0dGluZ1BhdGNoZXMKKysrIGIvRG9jdW1lbnRhdGlvbi9TdWJtaXR0aW5nUGF0Y2hlcwpAQCAtNjUsNyArNjUsMjAgQEAKIHRlc3Qgc3VpdGUgcGFzc2VzIGFmdGVyIHlvdXIgY29tbWl0LiAgRG8gbm90IGZvcmdldCB0byB1cGRhdGUgdGhlCiBkb2N1bWVudGF0aW9uIHRvIGRlc2NyaWJlIHRoZSB1cGRhdGVkIGJlaGF2aW91ci4KIAotT2gsIGFub3RoZXIgdGhpbmcuICBJIGFtIHBpY2t5IGFib3V0IHdoaXRlc3BhY2VzLiAgTWFrZSBzdXJlIHlvdXIKK1NwZWFraW5nIG9mIHRoZSBkb2N1bWVudGF0aW9uLCBpdCBpcyBjdXJyZW50bHkgYSBsaWJlcmFsIG1peHR1cmUgb2YgVVMKK2FuZCBVSyBFbmdsaXNoIG5vcm1zIGZvciBzcGVsbGluZyBhbmQgZ3JhbW1hciwgd2hpY2ggaXMgc29tZXdoYXQKK3VuZm9ydHVuYXRlLiAgQSBodWdlIHBhdGNoIHRoYXQgdG91Y2hlcyB0aGUgZmlsZXMgYWxsIG92ZXIgdGhlIHBsYWNlCitvbmx5IHRvIGNvcnJlY3QgdGhlIGluY29uc2lzdGVuY3kgaXMgbm90IHdlbGNvbWUsIHRob3VnaC4gIFBvdGVudGlhbAorY2xhc2hlcyB3aXRoIG90aGVyIGNoYW5nZXMgdGhhdCBjYW4gcmVzdWx0IGZyb20gc3VjaCBhIHBhdGNoIGFyZSBub3QKK3dvcnRoIGl0LiAgV2UgcHJlZmVyIHRvIGdyYWR1YWxseSByZWNvbmNpbGUgdGhlIGluY29uc2lzdGVuY2llcyBpbgorZmF2b3Igb2YgVVMgRW5nbGlzaCwgd2l0aCBzbWFsbCBhbmQgZWFzaWx5IGRpZ2VzdGlibGUgcGF0Y2hlcywgYXMgYQorc2lkZSBlZmZlY3Qgb2YgZG9pbmcgc29tZSBvdGhlciByZWFsIHdvcmsgaW4gdGhlIHZpY2luaXR5IChlLmcuCityZXdyaXRpbmcgYSBwYXJhZ3JhcGggZm9yIGNsYXJpdHksIHdoaWxlIHR1cm5pbmcgZW5fVUsgc3BlbGxpbmcgdG8KK2VuX1VTKS4gIE9idmlvdXMgdHlwb2dyYXBoaWNhbCBmaXhlcyBhcmUgbXVjaCBtb3JlIHdlbGNvbWVkICgidGVoIC0+CisidGhlIiksIHByZWZlcmFibHkgc3VibWl0dGVkIGFzIGluZGVwZW5kZW50IHBhdGNoZXMgc2VwYXJhdGUgZnJvbQorb3RoZXIgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzLgorCitPaCwgYW5vdGhlciB0aGluZy4gIFdlIGFyZSBwaWNreSBhYm91dCB3aGl0ZXNwYWNlcy4gIE1ha2Ugc3VyZSB5b3VyCiBjaGFuZ2VzIGRvIG5vdCB0cmlnZ2VyIGVycm9ycyB3aXRoIHRoZSBzYW1wbGUgcHJlLWNvbW1pdCBob29rIHNoaXBwZWQKIGluIHRlbXBsYXRlcy9ob29rcy0tcHJlLWNvbW1pdC4gIFRvIGhlbHAgZW5zdXJlIHRoaXMgZG9lcyBub3QgaGFwcGVuLAogcnVuIGdpdCBkaWZmIC0tY2hlY2sgb24geW91ciBjaGFuZ2VzIGJlZm9yZSB5b3UgY29tbWl0LgpAQCAtMTI2LDggKzEzOSwxNSBAQAogY29tbWVudCBvbiB0aGUgY2hhbmdlcyB5b3UgYXJlIHN1Ym1pdHRpbmcuICBJdCBpcyBpbXBvcnRhbnQgZm9yCiBhIGRldmVsb3BlciB0byBiZSBhYmxlIHRvICJxdW90ZSIgeW91ciBjaGFuZ2VzLCB1c2luZyBzdGFuZGFyZAogZS1tYWlsIHRvb2xzLCBzbyB0aGF0IHRoZXkgbWF5IGNvbW1lbnQgb24gc3BlY2lmaWMgcG9ydGlvbnMgb2YKLXlvdXIgY29kZS4gIEZvciB0aGlzIHJlYXNvbiwgYWxsIHBhdGNoZXMgc2hvdWxkIGJlIHN1Ym1pdHRlZAotImlubGluZSIuICBJZiB5b3VyIGxvZyBtZXNzYWdlIChpbmNsdWRpbmcgeW91ciBuYW1lIG9uIHRoZQoreW91ciBjb2RlLiAgRm9yIHRoaXMgcmVhc29uLCBlYWNoIHBhdGNoIHNob3VsZCBiZSBzdWJtaXR0ZWQKKyJpbmxpbmUiIGluIGEgc2VwYXJhdGUgbWVzc2FnZS4KKworTXVsdGlwbGUgcmVsYXRlZCBwYXRjaGVzIHNob3VsZCBiZSBncm91cGVkIGludG8gdGhlaXIgb3duIGUtbWFpbAordGhyZWFkIHRvIGhlbHAgcmVhZGVycyBmaW5kIGFsbCBwYXJ0cyBvZiB0aGUgc2VyaWVzLiAgVG8gdGhhdCBlbmQsCitzZW5kIHRoZW0gYXMgcmVwbGllcyB0byBlaXRoZXIgYW4gYWRkaXRpb25hbCAiY292ZXIgbGV0dGVyIiBtZXNzYWdlCisoc2VlIGJlbG93KSwgdGhlIGZpcnN0IHBhdGNoLCBvciB0aGUgcmVzcGVjdGl2ZSBwcmVjZWRpbmcgcGF0Y2guCisKK0lmIHlvdXIgbG9nIG1lc3NhZ2UgKGluY2x1ZGluZyB5b3VyIG5hbWUgb24gdGhlCiBTaWduZWQtb2ZmLWJ5IGxpbmUpIGlzIG5vdCB3cml0YWJsZSBpbiBBU0NJSSwgbWFrZSBzdXJlIHRoYXQKIHlvdSBzZW5kIG9mZiBhIG1lc3NhZ2UgaW4gdGhlIGNvcnJlY3QgZW5jb2RpbmcuCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYmxhbWUtb3B0aW9ucy50eHQgYi9Eb2N1bWVudGF0aW9uL2JsYW1lLW9wdGlvbnMudHh0CmluZGV4IDRlNTViMTUuLjBjZWJjNGYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vYmxhbWUtb3B0aW9ucy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9ibGFtZS1vcHRpb25zLnR4dApAQCAtMTEsMTIgKzExLDEyIEBACiAKIC1MIDxzdGFydD4sPGVuZD46OgogLUwgOjxyZWdleD46OgotCUFubm90YXRlIG9ubHkgdGhlIGdpdmVuIGxpbmUgcmFuZ2UuICA8c3RhcnQ+IGFuZCA8ZW5kPiBhcmUgb3B0aW9uYWwuCi0JYGAtTCA8c3RhcnQ+Jycgb3IgYGAtTCA8c3RhcnQ+LCcnIHNwYW5zIGZyb20gPHN0YXJ0PiB0byBlbmQgb2YgZmlsZS4KLQlgYC1MICw8ZW5kPicnIHNwYW5zIGZyb20gc3RhcnQgb2YgZmlsZSB0byA8ZW5kPi4KKwlBbm5vdGF0ZSBvbmx5IHRoZSBnaXZlbiBsaW5lIHJhbmdlLiBNYXkgYmUgc3BlY2lmaWVkIG11bHRpcGxlIHRpbWVzLgorCU92ZXJsYXBwaW5nIHJhbmdlcyBhcmUgYWxsb3dlZC4KICsKLTxzdGFydD4gYW5kIDxlbmQ+IGNhbiB0YWtlIG9uZSBvZiB0aGVzZSBmb3JtczoKLQorPHN0YXJ0PiBhbmQgPGVuZD4gYXJlIG9wdGlvbmFsLiBgYC1MIDxzdGFydD4nJyBvciBgYC1MIDxzdGFydD4sJycgc3BhbnMgZnJvbQorPHN0YXJ0PiB0byBlbmQgb2YgZmlsZS4gYGAtTCAsPGVuZD4nJyBzcGFucyBmcm9tIHN0YXJ0IG9mIGZpbGUgdG8gPGVuZD4uCisrCiBpbmNsdWRlOjpsaW5lLXJhbmdlLWZvcm1hdC50eHRbXQogCiAtbDo6CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2NvbmZpZy50eHQgYi9Eb2N1bWVudGF0aW9uL2NvbmZpZy50eHQKaW5kZXggNmIzNTU3OC4uNWY0ZDc5MyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9jb25maWcudHh0CisrKyBiL0RvY3VtZW50YXRpb24vY29uZmlnLnR4dApAQCAtMTcwLDggKzE3MCw4IEBACiAJcHVzaE5lZWRzRm9yY2U6OgogCQlTaG93biB3aGVuIGxpbmtnaXQ6Z2l0LXB1c2hbMV0gcmVqZWN0cyBhbiB1cGRhdGUgdGhhdAogCQl0cmllcyB0byBvdmVyd3JpdGUgYSByZW1vdGUgcmVmIHRoYXQgcG9pbnRzIGF0IGFuCi0JCW9iamVjdCB0aGF0IGlzIG5vdCBhIGNvbW1pdHRpc2gsIG9yIG1ha2UgdGhlIHJlbW90ZQotCQlyZWYgcG9pbnQgYXQgYW4gb2JqZWN0IHRoYXQgaXMgbm90IGEgY29tbWl0dGlzaC4KKwkJb2JqZWN0IHRoYXQgaXMgbm90IGEgY29tbWl0LWlzaCwgb3IgbWFrZSB0aGUgcmVtb3RlCisJCXJlZiBwb2ludCBhdCBhbiBvYmplY3QgdGhhdCBpcyBub3QgYSBjb21taXQtaXNoLgogCXN0YXR1c0hpbnRzOjoKIAkJU2hvdyBkaXJlY3Rpb25zIG9uIGhvdyB0byBwcm9jZWVkIGZyb20gdGhlIGN1cnJlbnQKIAkJc3RhdGUgaW4gdGhlIG91dHB1dCBvZiBsaW5rZ2l0OmdpdC1zdGF0dXNbMV0sIGluCkBAIC01NTMsMjIgKzU1MywyNCBAQAogCVdoZW4gbm90IGNvbmZpZ3VyZWQgdGhlIGRlZmF1bHQgY29tbWl0IG1lc3NhZ2UgZWRpdG9yIGlzIHVzZWQgaW5zdGVhZC4KIAogY29yZS5wYWdlcjo6Ci0JVGhlIGNvbW1hbmQgdGhhdCBHaXQgd2lsbCB1c2UgdG8gcGFnaW5hdGUgb3V0cHV0LiAgQ2FuCi0JYmUgb3ZlcnJpZGRlbiB3aXRoIHRoZSBgR0lUX1BBR0VSYCBlbnZpcm9ubWVudAotCXZhcmlhYmxlLiAgTm90ZSB0aGF0IEdpdCBzZXRzIHRoZSBgTEVTU2AgZW52aXJvbm1lbnQKLQl2YXJpYWJsZSB0byBgRlJTWGAgaWYgaXQgaXMgdW5zZXQgd2hlbiBpdCBydW5zIHRoZQotCXBhZ2VyLiAgT25lIGNhbiBjaGFuZ2UgdGhlc2Ugc2V0dGluZ3MgYnkgc2V0dGluZyB0aGUKLQlgTEVTU2AgdmFyaWFibGUgdG8gc29tZSBvdGhlciB2YWx1ZS4gIEFsdGVybmF0ZWx5LAotCXRoZXNlIHNldHRpbmdzIGNhbiBiZSBvdmVycmlkZGVuIG9uIGEgcHJvamVjdCBvcgotCWdsb2JhbCBiYXNpcyBieSBzZXR0aW5nIHRoZSBgY29yZS5wYWdlcmAgb3B0aW9uLgotCVNldHRpbmcgYGNvcmUucGFnZXJgIGhhcyBubyBlZmZlY3Qgb24gdGhlIGBMRVNTYAotCWVudmlyb25tZW50IHZhcmlhYmxlIGJlaGF2aW91ciBhYm92ZSwgc28gaWYgeW91IHdhbnQKLQl0byBvdmVycmlkZSBHaXQncyBkZWZhdWx0IHNldHRpbmdzIHRoaXMgd2F5LCB5b3UgbmVlZAotCXRvIGJlIGV4cGxpY2l0LiAgRm9yIGV4YW1wbGUsIHRvIGRpc2FibGUgdGhlIFMgb3B0aW9uCi0JaW4gYSBiYWNrd2FyZCBjb21wYXRpYmxlIG1hbm5lciwgc2V0IGBjb3JlLnBhZ2VyYAotCXRvIGBsZXNzIC0rU2AuICBUaGlzIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBzaGVsbCBieQotCUdpdCwgd2hpY2ggd2lsbCB0cmFuc2xhdGUgdGhlIGZpbmFsIGNvbW1hbmQgdG8KLQlgTEVTUz1GUlNYIGxlc3MgLStTYC4KKwlUZXh0IHZpZXdlciBmb3IgdXNlIGJ5IEdpdCBjb21tYW5kcyAoZS5nLiwgJ2xlc3MnKS4gIFRoZSB2YWx1ZQorCWlzIG1lYW50IHRvIGJlIGludGVycHJldGVkIGJ5IHRoZSBzaGVsbC4gIFRoZSBvcmRlciBvZiBwcmVmZXJlbmNlCisJaXMgdGhlIGAkR0lUX1BBR0VSYCBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlbiBgY29yZS5wYWdlcmAKKwljb25maWd1cmF0aW9uLCB0aGVuIGAkUEFHRVJgLCBhbmQgdGhlbiB0aGUgZGVmYXVsdCBjaG9zZW4gYXQKKwljb21waWxlIHRpbWUgKHVzdWFsbHkgJ2xlc3MnKS4KKysKK1doZW4gdGhlIGBMRVNTYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyB1bnNldCwgR2l0IHNldHMgaXQgdG8gYEZSU1hgCisoaWYgYExFU1NgIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCwgR2l0IGRvZXMgbm90IGNoYW5nZSBpdCBhdAorYWxsKS4gIElmIHlvdSB3YW50IHRvIHNlbGVjdGl2ZWx5IG92ZXJyaWRlIEdpdCdzIGRlZmF1bHQgc2V0dGluZworZm9yIGBMRVNTYCwgeW91IGNhbiBzZXQgYGNvcmUucGFnZXJgIHRvIGUuZy4gYGxlc3MgLStTYC4gIFRoaXMgd2lsbAorYmUgcGFzc2VkIHRvIHRoZSBzaGVsbCBieSBHaXQsIHdoaWNoIHdpbGwgdHJhbnNsYXRlIHRoZSBmaW5hbAorY29tbWFuZCB0byBgTEVTUz1GUlNYIGxlc3MgLStTYC4gVGhlIGVudmlyb25tZW50IHRlbGxzIHRoZSBjb21tYW5kCit0byBzZXQgdGhlIGBTYCBvcHRpb24gdG8gY2hvcCBsb25nIGxpbmVzIGJ1dCB0aGUgY29tbWFuZCBsaW5lCityZXNldHMgaXQgdG8gdGhlIGRlZmF1bHQgdG8gZm9sZCBsb25nIGxpbmVzLgorKworTGlrZXdpc2UsIHdoZW4gdGhlIGBMVmAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgdW5zZXQsIEdpdCBzZXRzIGl0Cit0byBgLWNgLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIHNldHRpbmcgYnkgZXhwb3J0aW5nIGBMVmAgd2l0aAorYW5vdGhlciB2YWx1ZSBvciBzZXR0aW5nIGBjb3JlLnBhZ2VyYCB0byBgbHYgK2NgLgogCiBjb3JlLndoaXRlc3BhY2U6OgogCUEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgY29tbW9uIHdoaXRlc3BhY2UgcHJvYmxlbXMgdG8KQEAgLTcyNiw2ICs3MjgsOCBAQAogCW92ZXJyaWRkZW4gYnkgYGJyYW5jaC48bmFtZT4ucHVzaHJlbW90ZWAuICBJZiBubyByZW1vdGUgaXMKIAljb25maWd1cmVkLCBvciBpZiB5b3UgYXJlIG5vdCBvbiBhbnkgYnJhbmNoLCBpdCBkZWZhdWx0cyB0bwogCWBvcmlnaW5gIGZvciBmZXRjaGluZyBhbmQgYHJlbW90ZS5wdXNoZGVmYXVsdGAgZm9yIHB1c2hpbmcuCisJQWRkaXRpb25hbGx5LCBgLmAgKGEgcGVyaW9kKSBpcyB0aGUgY3VycmVudCBsb2NhbCByZXBvc2l0b3J5CisJKGEgZG90LXJlcG9zaXRvcnkpLCBzZWUgYGJyYW5jaC48bmFtZT4ubWVyZ2VgJ3MgZmluYWwgbm90ZSBiZWxvdy4KIAogYnJhbmNoLjxuYW1lPi5wdXNocmVtb3RlOjoKIAlXaGVuIG9uIGJyYW5jaCA8bmFtZT4sIGl0IG92ZXJyaWRlcyBgYnJhbmNoLjxuYW1lPi5yZW1vdGVgIGZvcgpAQCAtNzUxLDggKzc1NSw4IEBACiAJU3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgdG8gZ2V0IGFuIG9jdG9wdXMgbWVyZ2UuCiAJSWYgeW91IHdpc2ggdG8gc2V0dXAgJ2dpdCBwdWxsJyBzbyB0aGF0IGl0IG1lcmdlcyBpbnRvIDxuYW1lPiBmcm9tCiAJYW5vdGhlciBicmFuY2ggaW4gdGhlIGxvY2FsIHJlcG9zaXRvcnksIHlvdSBjYW4gcG9pbnQKLQlicmFuY2guPG5hbWU+Lm1lcmdlIHRvIHRoZSBkZXNpcmVkIGJyYW5jaCwgYW5kIHVzZSB0aGUgc3BlY2lhbCBzZXR0aW5nCi0JYC5gIChhIHBlcmlvZCkgZm9yIGJyYW5jaC48bmFtZT4ucmVtb3RlLgorCWJyYW5jaC48bmFtZT4ubWVyZ2UgdG8gdGhlIGRlc2lyZWQgYnJhbmNoLCBhbmQgdXNlIHRoZSByZWxhdGl2ZSBwYXRoCisJc2V0dGluZyBgLmAgKGEgcGVyaW9kKSBmb3IgYnJhbmNoLjxuYW1lPi5yZW1vdGUuCiAKIGJyYW5jaC48bmFtZT4ubWVyZ2VvcHRpb25zOjoKIAlTZXRzIGRlZmF1bHQgb3B0aW9ucyBmb3IgbWVyZ2luZyBpbnRvIGJyYW5jaCA8bmFtZT4uIFRoZSBzeW50YXggYW5kCkBAIC03NjYsNiArNzcwLDEwIEBACiAJImdpdCBwdWxsIiBpcyBydW4uIFNlZSAicHVsbC5yZWJhc2UiIGZvciBkb2luZyB0aGlzIGluIGEgbm9uCiAJYnJhbmNoLXNwZWNpZmljIG1hbm5lci4KICsKKwlXaGVuIHByZXNlcnZlLCBhbHNvIHBhc3MgYC0tcHJlc2VydmUtbWVyZ2VzYCBhbG9uZyB0byAnZ2l0IHJlYmFzZScKKwlzbyB0aGF0IGxvY2FsbHkgY29tbWl0dGVkIG1lcmdlIGNvbW1pdHMgd2lsbCBub3QgYmUgZmxhdHRlbmVkCisJYnkgcnVubmluZyAnZ2l0IHB1bGwnLgorKwogKk5PVEUqOiB0aGlzIGlzIGEgcG9zc2libHkgZGFuZ2Vyb3VzIG9wZXJhdGlvbjsgZG8gKm5vdCogdXNlCiBpdCB1bmxlc3MgeW91IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyAoc2VlIGxpbmtnaXQ6Z2l0LXJlYmFzZVsxXQogZm9yIGRldGFpbHMpLgpAQCAtNzg3LDggKzc5NSw4IEBACiAJd29ya2luZyByZXBvc2l0b3J5IGluIGdpdHdlYiAoc2VlIGxpbmtnaXQ6Z2l0LWluc3Rhd2ViWzFdKS4KIAogY2xlYW4ucmVxdWlyZUZvcmNlOjoKLQlBIGJvb2xlYW4gdG8gbWFrZSBnaXQtY2xlYW4gZG8gbm90aGluZyB1bmxlc3MgZ2l2ZW4gLWYKLQlvciAtbi4gICBEZWZhdWx0cyB0byB0cnVlLgorCUEgYm9vbGVhbiB0byBtYWtlIGdpdC1jbGVhbiBkbyBub3RoaW5nIHVubGVzcyBnaXZlbiAtZiwKKwktaSBvciAtbi4gICBEZWZhdWx0cyB0byB0cnVlLgogCiBjb2xvci5icmFuY2g6OgogCUEgYm9vbGVhbiB0byBlbmFibGUvZGlzYWJsZSBjb2xvciBpbiB0aGUgb3V0cHV0IG9mCkBAIC0xMDYxLDYgKzEwNjksMTAgQEAKIAllc3BlY2lhbGx5IG9uIHNsb3cgZmlsZXN5c3RlbXMuICBJZiBub3Qgc2V0LCB0aGUgdmFsdWUgb2YKIAlgdHJhbnNmZXIudW5wYWNrTGltaXRgIGlzIHVzZWQgaW5zdGVhZC4KIAorZmV0Y2gucHJ1bmU6OgorCUlmIHRydWUsIGZldGNoIHdpbGwgYXV0b21hdGljYWxseSBiZWhhdmUgYXMgaWYgdGhlIGAtLXBydW5lYAorCW9wdGlvbiB3YXMgZ2l2ZW4gb24gdGhlIGNvbW1hbmQgbGluZS4gIFNlZSBhbHNvIGByZW1vdGUuPG5hbWU+LnBydW5lYC4KKwogZm9ybWF0LmF0dGFjaDo6CiAJRW5hYmxlIG11bHRpcGFydC9taXhlZCBhdHRhY2htZW50cyBhcyB0aGUgZGVmYXVsdCBmb3IKIAknZm9ybWF0LXBhdGNoJy4gIFRoZSB2YWx1ZSBjYW4gYWxzbyBiZSBhIGRvdWJsZSBxdW90ZWQgc3RyaW5nCkBAIC0xNDQ1LDcgKzE0NTcsMTEgQEAKIAlvZiB0aGUgZmlsZSB0byByZWFkIGNvb2tpZXMgZnJvbSBzaG91bGQgYmUgcGxhaW4gSFRUUCBoZWFkZXJzIG9yCiAJdGhlIE5ldHNjYXBlL01vemlsbGEgY29va2llIGZpbGUgZm9ybWF0IChzZWUgbGlua2dpdDpjdXJsWzFdKS4KIAlOT1RFIHRoYXQgdGhlIGZpbGUgc3BlY2lmaWVkIHdpdGggaHR0cC5jb29raWVmaWxlIGlzIG9ubHkgdXNlZCBhcwotCWlucHV0LiBObyBjb29raWVzIHdpbGwgYmUgc3RvcmVkIGluIHRoZSBmaWxlLgorCWlucHV0IHVubGVzcyBodHRwLnNhdmVDb29raWVzIGlzIHNldC4KKworaHR0cC5zYXZlY29va2llczo6CisJSWYgc2V0LCBzdG9yZSBjb29raWVzIHJlY2VpdmVkIGR1cmluZyByZXF1ZXN0cyB0byB0aGUgZmlsZSBzcGVjaWZpZWQgYnkKKwlodHRwLmNvb2tpZWZpbGUuIEhhcyBubyBlZmZlY3QgaWYgaHR0cC5jb29raWVmaWxlIGlzIHVuc2V0LgogCiBodHRwLnNzbFZlcmlmeTo6CiAJV2hldGhlciB0byB2ZXJpZnkgdGhlIFNTTCBjZXJ0aWZpY2F0ZSB3aGVuIGZldGNoaW5nIG9yIHB1c2hpbmcKQEAgLTE1MjUsNiArMTU0MSw1MSBAQAogCW9mIGNvbW1vbiBVU0VSX0FHRU5UIHN0cmluZ3MgKGJ1dCBub3QgaW5jbHVkaW5nIHRob3NlIGxpa2UgZ2l0LzEuNy4xKS4KIAlDYW4gYmUgb3ZlcnJpZGRlbiBieSB0aGUgJ0dJVF9IVFRQX1VTRVJfQUdFTlQnIGVudmlyb25tZW50IHZhcmlhYmxlLgogCitodHRwLjx1cmw+Lio6OgorCUFueSBvZiB0aGUgaHR0cC4qIG9wdGlvbnMgYWJvdmUgY2FuIGJlIGFwcGxpZWQgc2VsZWN0aXZlbHkgdG8gc29tZSB1cmxzLgorCUZvciBhIGNvbmZpZyBrZXkgdG8gbWF0Y2ggYSBVUkwsIGVhY2ggZWxlbWVudCBvZiB0aGUgY29uZmlnIGtleSBpcworCWNvbXBhcmVkIHRvIHRoYXQgb2YgdGhlIFVSTCwgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjoKKysKKy0tCisuIFNjaGVtZSAoZS5nLiwgYGh0dHBzYCBpbiBgaHR0cHM6Ly9leGFtcGxlLmNvbS9gKS4gVGhpcyBmaWVsZAorICBtdXN0IG1hdGNoIGV4YWN0bHkgYmV0d2VlbiB0aGUgY29uZmlnIGtleSBhbmQgdGhlIFVSTC4KKworLiBIb3N0L2RvbWFpbiBuYW1lIChlLmcuLCBgZXhhbXBsZS5jb21gIGluIGBodHRwczovL2V4YW1wbGUuY29tL2ApLgorICBUaGlzIGZpZWxkIG11c3QgbWF0Y2ggZXhhY3RseSBiZXR3ZWVuIHRoZSBjb25maWcga2V5IGFuZCB0aGUgVVJMLgorCisuIFBvcnQgbnVtYmVyIChlLmcuLCBgODA4MGAgaW4gYGh0dHA6Ly9leGFtcGxlLmNvbTo4MDgwL2ApLgorICBUaGlzIGZpZWxkIG11c3QgbWF0Y2ggZXhhY3RseSBiZXR3ZWVuIHRoZSBjb25maWcga2V5IGFuZCB0aGUgVVJMLgorICBPbWl0dGVkIHBvcnQgbnVtYmVycyBhcmUgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gdGhlIGNvcnJlY3QKKyAgZGVmYXVsdCBmb3IgdGhlIHNjaGVtZSBiZWZvcmUgbWF0Y2hpbmcuCisKKy4gUGF0aCAoZS5nLiwgYHJlcG8uZ2l0YCBpbiBgaHR0cHM6Ly9leGFtcGxlLmNvbS9yZXBvLmdpdGApLiBUaGUKKyAgcGF0aCBmaWVsZCBvZiB0aGUgY29uZmlnIGtleSBtdXN0IG1hdGNoIHRoZSBwYXRoIGZpZWxkIG9mIHRoZSBVUkwKKyAgZWl0aGVyIGV4YWN0bHkgb3IgYXMgYSBwcmVmaXggb2Ygc2xhc2gtZGVsaW1pdGVkIHBhdGggZWxlbWVudHMuICBUaGlzIG1lYW5zCisgIGEgY29uZmlnIGtleSB3aXRoIHBhdGggYGZvby9gIG1hdGNoZXMgVVJMIHBhdGggYGZvby9iYXJgLiAgQSBwcmVmaXggY2FuIG9ubHkKKyAgbWF0Y2ggb24gYSBzbGFzaCAoYC9gKSBib3VuZGFyeS4gIExvbmdlciBtYXRjaGVzIHRha2UgcHJlY2VkZW5jZSAoc28gYSBjb25maWcKKyAga2V5IHdpdGggcGF0aCBgZm9vL2JhcmAgaXMgYSBiZXR0ZXIgbWF0Y2ggdG8gVVJMIHBhdGggYGZvby9iYXJgIHRoYW4gYSBjb25maWcKKyAga2V5IHdpdGgganVzdCBwYXRoIGBmb28vYCkuCisKKy4gVXNlciBuYW1lIChlLmcuLCBgdXNlcmAgaW4gYGh0dHBzOi8vdXNlckBleGFtcGxlLmNvbS9yZXBvLmdpdGApLiBJZgorICB0aGUgY29uZmlnIGtleSBoYXMgYSB1c2VyIG5hbWUgaXQgbXVzdCBtYXRjaCB0aGUgdXNlciBuYW1lIGluIHRoZQorICBVUkwgZXhhY3RseS4gSWYgdGhlIGNvbmZpZyBrZXkgZG9lcyBub3QgaGF2ZSBhIHVzZXIgbmFtZSwgdGhhdAorICBjb25maWcga2V5IHdpbGwgbWF0Y2ggYSBVUkwgd2l0aCBhbnkgdXNlciBuYW1lIChpbmNsdWRpbmcgbm9uZSksCisgIGJ1dCBhdCBhIGxvd2VyIHByZWNlZGVuY2UgdGhhbiBhIGNvbmZpZyBrZXkgd2l0aCBhIHVzZXIgbmFtZS4KKy0tCisrCitUaGUgbGlzdCBhYm92ZSBpcyBvcmRlcmVkIGJ5IGRlY3JlYXNpbmcgcHJlY2VkZW5jZTsgYSBVUkwgdGhhdCBtYXRjaGVzCithIGNvbmZpZyBrZXkncyBwYXRoIGlzIHByZWZlcnJlZCB0byBvbmUgdGhhdCBtYXRjaGVzIGl0cyB1c2VyIG5hbWUuIEZvciBleGFtcGxlLAoraWYgdGhlIFVSTCBpcyBgaHR0cHM6Ly91c2VyQGV4YW1wbGUuY29tL2Zvby9iYXJgIGEgY29uZmlnIGtleSBtYXRjaCBvZgorYGh0dHBzOi8vZXhhbXBsZS5jb20vZm9vYCB3aWxsIGJlIHByZWZlcnJlZCBvdmVyIGEgY29uZmlnIGtleSBtYXRjaCBvZgorYGh0dHBzOi8vdXNlckBleGFtcGxlLmNvbWAuCisrCitBbGwgVVJMcyBhcmUgbm9ybWFsaXplZCBiZWZvcmUgYXR0ZW1wdGluZyBhbnkgbWF0Y2hpbmcgKHRoZSBwYXNzd29yZCBwYXJ0LAoraWYgZW1iZWRkZWQgaW4gdGhlIFVSTCwgaXMgYWx3YXlzIGlnbm9yZWQgZm9yIG1hdGNoaW5nIHB1cnBvc2VzKSBzbyB0aGF0CitlcXVpdmFsZW50IHVybHMgdGhhdCBhcmUgc2ltcGx5IHNwZWxsZWQgZGlmZmVyZW50bHkgd2lsbCBtYXRjaCBwcm9wZXJseS4KK0Vudmlyb25tZW50IHZhcmlhYmxlIHNldHRpbmdzIGFsd2F5cyBvdmVycmlkZSBhbnkgbWF0Y2hlcy4gIFRoZSB1cmxzIHRoYXQgYXJlCittYXRjaGVkIGFnYWluc3QgYXJlIHRob3NlIGdpdmVuIGRpcmVjdGx5IHRvIEdpdCBjb21tYW5kcy4gIFRoaXMgbWVhbnMgYW55IFVSTHMKK3Zpc2l0ZWQgYXMgYSByZXN1bHQgb2YgYSByZWRpcmVjdGlvbiBkbyBub3QgcGFydGljaXBhdGUgaW4gbWF0Y2hpbmcuCisKIGkxOG4uY29tbWl0RW5jb2Rpbmc6OgogCUNoYXJhY3RlciBlbmNvZGluZyB0aGUgY29tbWl0IG1lc3NhZ2VzIGFyZSBzdG9yZWQgaW47IEdpdCBpdHNlbGYKIAlkb2VzIG5vdCBjYXJlIHBlciBzZSwgYnV0IHRoaXMgaW5mb3JtYXRpb24gaXMgbmVjZXNzYXJ5IGUuZy4gd2hlbgpAQCAtMTgyNiw2ICsxODg3LDEwIEBACiAJcHVsbCIgaXMgcnVuLiBTZWUgImJyYW5jaC48bmFtZT4ucmViYXNlIiBmb3Igc2V0dGluZyB0aGlzIG9uIGEKIAlwZXItYnJhbmNoIGJhc2lzLgogKworCVdoZW4gcHJlc2VydmUsIGFsc28gcGFzcyBgLS1wcmVzZXJ2ZS1tZXJnZXNgIGFsb25nIHRvICdnaXQgcmViYXNlJworCXNvIHRoYXQgbG9jYWxseSBjb21taXR0ZWQgbWVyZ2UgY29tbWl0cyB3aWxsIG5vdCBiZSBmbGF0dGVuZWQKKwlieSBydW5uaW5nICdnaXQgcHVsbCcuCisrCiAqTk9URSo6IHRoaXMgaXMgYSBwb3NzaWJseSBkYW5nZXJvdXMgb3BlcmF0aW9uOyBkbyAqbm90KiB1c2UKIGl0IHVubGVzcyB5b3UgdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIChzZWUgbGlua2dpdDpnaXQtcmViYXNlWzFdCiBmb3IgZGV0YWlscykuCkBAIC0xOTY1LDYgKzIwMzAsMTAgQEAKIAlJZiBzZXQgdG8gdHJ1ZSwgZ2l0LXJlY2VpdmUtcGFjayB3aWxsIHJ1biBnaXQtdXBkYXRlLXNlcnZlci1pbmZvCiAJYWZ0ZXIgcmVjZWl2aW5nIGRhdGEgZnJvbSBnaXQtcHVzaCBhbmQgdXBkYXRpbmcgcmVmcy4KIAorcmVjZWl2ZS5zaGFsbG93dXBkYXRlOjoKKwlJZiBzZXQgdG8gdHJ1ZSwgLmdpdC9zaGFsbG93IGNhbiBiZSB1cGRhdGVkIHdoZW4gbmV3IHJlZnMKKwlyZXF1aXJlIG5ldyBzaGFsbG93IHJvb3RzLiBPdGhlcndpc2UgdGhvc2UgcmVmcyBhcmUgcmVqZWN0ZWQuCisKIHJlbW90ZS5wdXNoZGVmYXVsdDo6CiAJVGhlIHJlbW90ZSB0byBwdXNoIHRvIGJ5IGRlZmF1bHQuICBPdmVycmlkZXMKIAlgYnJhbmNoLjxuYW1lPi5yZW1vdGVgIGZvciBhbGwgYnJhbmNoZXMsIGFuZCBpcyBvdmVycmlkZGVuIGJ5CkBAIC0yMDI0LDYgKzIwOTMsMTIgQEAKIAlTZXR0aW5nIHRoaXMgdG8gYSB2YWx1ZSA8dmNzPiB3aWxsIGNhdXNlIEdpdCB0byBpbnRlcmFjdCB3aXRoCiAJdGhlIHJlbW90ZSB3aXRoIHRoZSBnaXQtcmVtb3RlLTx2Y3M+IGhlbHBlci4KIAorcmVtb3RlLjxuYW1lPi5wcnVuZTo6CisJV2hlbiBzZXQgdG8gdHJ1ZSwgZmV0Y2hpbmcgZnJvbSB0aGlzIHJlbW90ZSBieSBkZWZhdWx0IHdpbGwgYWxzbworCXJlbW92ZSBhbnkgcmVtb3RlLXRyYWNraW5nIHJlZmVyZW5jZXMgdGhhdCBubyBsb25nZXIgZXhpc3Qgb24gdGhlCisJcmVtb3RlIChhcyBpZiB0aGUgYC0tcHJ1bmVgIG9wdGlvbiB3YXMgZ2l2ZW4gb24gdGhlIGNvbW1hbmQgbGluZSkuCisJT3ZlcnJpZGVzIGBmZXRjaC5wcnVuZWAgc2V0dGluZ3MsIGlmIGFueS4KKwogcmVtb3Rlcy48Z3JvdXA+OjoKIAlUaGUgbGlzdCBvZiByZW1vdGVzIHdoaWNoIGFyZSBmZXRjaGVkIGJ5ICJnaXQgcmVtb3RlIHVwZGF0ZQogCTxncm91cD4iLiAgU2VlIGxpbmtnaXQ6Z2l0LXJlbW90ZVsxXS4KQEAgLTIxMTgsNiArMjE5MywxMyBAQAogCVNldCB0byB0cnVlIHRvIGVuYWJsZSAtLWJyYW5jaCBieSBkZWZhdWx0IGluIGxpbmtnaXQ6Z2l0LXN0YXR1c1sxXS4KIAlUaGUgb3B0aW9uIC0tbm8tYnJhbmNoIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGlzIHZhcmlhYmxlLgogCitzdGF0dXMuZGlzcGxheUNvbW1lbnRQcmVmaXg6OgorCUlmIHNldCB0byB0cnVlLCBsaW5rZ2l0OmdpdC1zdGF0dXNbMV0gd2lsbCBpbnNlcnQgYSBjb21tZW50CisJcHJlZml4IGJlZm9yZSBlYWNoIG91dHB1dCBsaW5lIChzdGFydGluZyB3aXRoCisJYGNvcmUuY29tbWVudENoYXJgLCBpLmUuIGAjYCBieSBkZWZhdWx0KS4gVGhpcyB3YXMgdGhlCisJYmVoYXZpb3Igb2YgbGlua2dpdDpnaXQtc3RhdHVzWzFdIGluIEdpdCAxLjguNCBhbmQgcHJldmlvdXMuCisJRGVmYXVsdHMgdG8gZmFsc2UuCisKIHN0YXR1cy5zaG93VW50cmFja2VkRmlsZXM6OgogCUJ5IGRlZmF1bHQsIGxpbmtnaXQ6Z2l0LXN0YXR1c1sxXSBhbmQgbGlua2dpdDpnaXQtY29tbWl0WzFdIHNob3cKIAlmaWxlcyB3aGljaCBhcmUgbm90IGN1cnJlbnRseSB0cmFja2VkIGJ5IEdpdC4gRGlyZWN0b3JpZXMgd2hpY2gKQEAgLTIxNDIsNyArMjIyNCwxNCBAQAogCUlmIHRoaXMgaXMgc2V0IHRvIGEgbm9uIHplcm8gbnVtYmVyIG9yIHRydWUgKGlkZW50aWNhbCB0byAtMSBvciBhbgogCXVubGltaXRlZCBudW1iZXIpLCB0aGUgc3VibW9kdWxlIHN1bW1hcnkgd2lsbCBiZSBlbmFibGVkIGFuZCBhCiAJc3VtbWFyeSBvZiBjb21taXRzIGZvciBtb2RpZmllZCBzdWJtb2R1bGVzIHdpbGwgYmUgc2hvd24gKHNlZQotCS0tc3VtbWFyeS1saW1pdCBvcHRpb24gb2YgbGlua2dpdDpnaXQtc3VibW9kdWxlWzFdKS4KKwktLXN1bW1hcnktbGltaXQgb3B0aW9uIG9mIGxpbmtnaXQ6Z2l0LXN1Ym1vZHVsZVsxXSkuIFBsZWFzZSBub3RlCisJdGhhdCB0aGUgc3VtbWFyeSBvdXRwdXQgY29tbWFuZCB3aWxsIGJlIHN1cHByZXNzZWQgZm9yIGFsbAorCXN1Ym1vZHVsZXMgd2hlbiBgZGlmZi5pZ25vcmVTdWJtb2R1bGVzYCBpcyBzZXQgdG8gJ2FsbCcgb3Igb25seQorCWZvciB0aG9zZSBzdWJtb2R1bGVzIHdoZXJlIGBzdWJtb2R1bGUuPG5hbWU+Lmlnbm9yZT1hbGxgLiBUbworCWFsc28gdmlldyB0aGUgc3VtbWFyeSBmb3IgaWdub3JlZCBzdWJtb2R1bGVzIHlvdSBjYW4gZWl0aGVyIHVzZQorCXRoZSAtLWlnbm9yZS1zdWJtb2R1bGVzPWRpcnR5IGNvbW1hbmQgbGluZSBvcHRpb24gb3IgdGhlICdnaXQKKwlzdWJtb2R1bGUgc3VtbWFyeScgY29tbWFuZCwgd2hpY2ggc2hvd3MgYSBzaW1pbGFyIG91dHB1dCBidXQgZG9lcworCW5vdCBob25vciB0aGVzZSBzZXR0aW5ncy4KIAogc3VibW9kdWxlLjxuYW1lPi5wYXRoOjoKIHN1Ym1vZHVsZS48bmFtZT4udXJsOjoKQEAgLTIxNzcsNyArMjI2Niw4IEBACiAJc3VibW9kdWxlcyB0aGF0IGhhdmUgdW50cmFja2VkIGZpbGVzIGluIHRoZWlyIHdvcmsgdHJlZSBhcyBjaGFuZ2VkLgogCVRoaXMgc2V0dGluZyBvdmVycmlkZXMgYW55IHNldHRpbmcgbWFkZSBpbiAuZ2l0bW9kdWxlcyBmb3IgdGhpcyBzdWJtb2R1bGUsCiAJYm90aCBzZXR0aW5ncyBjYW4gYmUgb3ZlcnJpZGRlbiBvbiB0aGUgY29tbWFuZCBsaW5lIGJ5IHVzaW5nIHRoZQotCSItLWlnbm9yZS1zdWJtb2R1bGVzIiBvcHRpb24uCisJIi0taWdub3JlLXN1Ym1vZHVsZXMiIG9wdGlvbi4gVGhlICdnaXQgc3VibW9kdWxlJyBjb21tYW5kcyBhcmUgbm90CisJYWZmZWN0ZWQgYnkgdGhpcyBzZXR0aW5nLgogCiB0YXIudW1hc2s6OgogCVRoaXMgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gcmVzdHJpY3QgdGhlIHBlcm1pc3Npb24gYml0cyBvZgpAQCAtMjI2MiwxMSArMjM1MiwxMSBAQAogCWVudmlyb25tZW50IHZhcmlhYmxlcy4gIFNlZSBsaW5rZ2l0OmdpdC1jb21taXQtdHJlZVsxXS4KIAogdXNlci5zaWduaW5na2V5OjoKLQlJZiBsaW5rZ2l0OmdpdC10YWdbMV0gaXMgbm90IHNlbGVjdGluZyB0aGUga2V5IHlvdSB3YW50IGl0IHRvCi0JYXV0b21hdGljYWxseSB3aGVuIGNyZWF0aW5nIGEgc2lnbmVkIHRhZywgeW91IGNhbiBvdmVycmlkZSB0aGUKLQlkZWZhdWx0IHNlbGVjdGlvbiB3aXRoIHRoaXMgdmFyaWFibGUuICBUaGlzIG9wdGlvbiBpcyBwYXNzZWQKLQl1bmNoYW5nZWQgdG8gZ3BnJ3MgLS1sb2NhbC11c2VyIHBhcmFtZXRlciwgc28geW91IG1heSBzcGVjaWZ5IGEga2V5Ci0JdXNpbmcgYW55IG1ldGhvZCB0aGF0IGdwZyBzdXBwb3J0cy4KKwlJZiBsaW5rZ2l0OmdpdC10YWdbMV0gb3IgbGlua2dpdDpnaXQtY29tbWl0WzFdIGlzIG5vdCBzZWxlY3RpbmcgdGhlCisJa2V5IHlvdSB3YW50IGl0IHRvIGF1dG9tYXRpY2FsbHkgd2hlbiBjcmVhdGluZyBhIHNpZ25lZCB0YWcgb3IKKwljb21taXQsIHlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2VsZWN0aW9uIHdpdGggdGhpcyB2YXJpYWJsZS4KKwlUaGlzIG9wdGlvbiBpcyBwYXNzZWQgdW5jaGFuZ2VkIHRvIGdwZydzIC0tbG9jYWwtdXNlciBwYXJhbWV0ZXIsCisJc28geW91IG1heSBzcGVjaWZ5IGEga2V5IHVzaW5nIGFueSBtZXRob2QgdGhhdCBncGcgc3VwcG9ydHMuCiAKIHdlYi5icm93c2VyOjoKIAlTcGVjaWZ5IGEgd2ViIGJyb3dzZXIgdGhhdCBtYXkgYmUgdXNlZCBieSBzb21lIGNvbW1hbmRzLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kYXRlLWZvcm1hdHMudHh0IGIvRG9jdW1lbnRhdGlvbi9kYXRlLWZvcm1hdHMudHh0CmluZGV4IGMwMDBmMDguLmNjZDFmYzggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGF0ZS1mb3JtYXRzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RhdGUtZm9ybWF0cy50eHQKQEAgLTgsOSArOCw5IEBACiBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgZGF0ZSBmb3JtYXRzOgogCiBHaXQgaW50ZXJuYWwgZm9ybWF0OjoKLQlJdCBpcyBgPHVuaXggdGltZXN0YW1wPiA8dGltZXpvbmUgb2Zmc2V0PmAsIHdoZXJlIGA8dW5peAorCUl0IGlzIGA8dW5peCB0aW1lc3RhbXA+IDx0aW1lIHpvbmUgb2Zmc2V0PmAsIHdoZXJlIGA8dW5peAogCXRpbWVzdGFtcD5gIGlzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSB0aGUgVU5JWCBlcG9jaC4KLQlgPHRpbWV6b25lIG9mZnNldD5gIGlzIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgb2Zmc2V0IGZyb20gVVRDLgorCWA8dGltZSB6b25lIG9mZnNldD5gIGlzIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgb2Zmc2V0IGZyb20gVVRDLgogCUZvciBleGFtcGxlIENFVCAod2hpY2ggaXMgMiBob3VycyBhaGVhZCBVVEMpIGlzIGArMDIwMGAuCiAKIFJGQyAyODIyOjoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGlmZi1jb25maWcudHh0IGIvRG9jdW1lbnRhdGlvbi9kaWZmLWNvbmZpZy50eHQKaW5kZXggYWM3NzA1MC4uZjA3YjQ1MSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kaWZmLWNvbmZpZy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kaWZmLWNvbmZpZy50eHQKQEAgLTczLDcgKzczLDExIEBACiAJU2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBvZiAtLWlnbm9yZS1zdWJtb2R1bGVzLiBOb3RlIHRoYXQgdGhpcwogCWFmZmVjdHMgb25seSAnZ2l0IGRpZmYnIFBvcmNlbGFpbiwgYW5kIG5vdCBsb3dlciBsZXZlbCAnZGlmZicKIAljb21tYW5kcyBzdWNoIGFzICdnaXQgZGlmZi1maWxlcycuICdnaXQgY2hlY2tvdXQnIGFsc28gaG9ub3JzCi0JdGhpcyBzZXR0aW5nIHdoZW4gcmVwb3J0aW5nIHVuY29tbWl0dGVkIGNoYW5nZXMuCisJdGhpcyBzZXR0aW5nIHdoZW4gcmVwb3J0aW5nIHVuY29tbWl0dGVkIGNoYW5nZXMuIFNldHRpbmcgaXQgdG8KKwknYWxsJyBkaXNhYmxlcyB0aGUgc3VibW9kdWxlIHN1bW1hcnkgbm9ybWFsbHkgc2hvd24gYnkgJ2dpdCBjb21taXQnCisJYW5kICdnaXQgc3RhdHVzJyB3aGVuICdzdGF0dXMuc3VibW9kdWxlc3VtbWFyeScgaXMgc2V0IHVubGVzcyBpdCBpcworCW92ZXJyaWRkZW4gYnkgdXNpbmcgdGhlIC0taWdub3JlLXN1Ym1vZHVsZXMgY29tbWFuZCBsaW5lIG9wdGlvbi4KKwlUaGUgJ2dpdCBzdWJtb2R1bGUnIGNvbW1hbmRzIGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhpcyBzZXR0aW5nLgogCiBkaWZmLm1uZW1vbmljcHJlZml4OjoKIAlJZiBzZXQsICdnaXQgZGlmZicgdXNlcyBhIHByZWZpeCBwYWlyIHRoYXQgaXMgZGlmZmVyZW50IGZyb20gdGhlCkBAIC05NCw2ICs5OCwxMSBAQAogZGlmZi5ub3ByZWZpeDo6CiAJSWYgc2V0LCAnZ2l0IGRpZmYnIGRvZXMgbm90IHNob3cgYW55IHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwcmVmaXguCiAKK2RpZmYub3JkZXJmaWxlOjoKKwlGaWxlIGluZGljYXRpbmcgaG93IHRvIG9yZGVyIGZpbGVzIHdpdGhpbiBhIGRpZmYsIHVzaW5nCisJb25lIHNoZWxsIGdsb2IgcGF0dGVybiBwZXIgbGluZS4KKwlDYW4gYmUgb3ZlcnJpZGRlbiBieSB0aGUgJy1PJyBvcHRpb24gdG8gbGlua2dpdDpnaXQtZGlmZlsxXS4KKwogZGlmZi5yZW5hbWVMaW1pdDo6CiAJVGhlIG51bWJlciBvZiBmaWxlcyB0byBjb25zaWRlciB3aGVuIHBlcmZvcm1pbmcgdGhlIGNvcHkvcmVuYW1lCiAJZGV0ZWN0aW9uOyBlcXVpdmFsZW50IHRvIHRoZSAnZ2l0IGRpZmYnIG9wdGlvbiAnLWwnLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kaWZmLW9wdGlvbnMudHh0IGIvRG9jdW1lbnRhdGlvbi9kaWZmLW9wdGlvbnMudHh0CmluZGV4IGJiZWQyY2QuLjliMzdiMmEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGlmZi1vcHRpb25zLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RpZmYtb3B0aW9ucy50eHQKQEAgLTQzMiw2ICs0MzIsOSBAQAogLU88b3JkZXJmaWxlPjo6CiAJT3V0cHV0IHRoZSBwYXRjaCBpbiB0aGUgb3JkZXIgc3BlY2lmaWVkIGluIHRoZQogCTxvcmRlcmZpbGU+LCB3aGljaCBoYXMgb25lIHNoZWxsIGdsb2IgcGF0dGVybiBwZXIgbGluZS4KKwlUaGlzIG92ZXJyaWRlcyB0aGUgYGRpZmYub3JkZXJmaWxlYCBjb25maWd1cmF0aW9uIHZhcmlhYmxlCisJKHNlZSBsaW5rZ2l0OmdpdC1jb25maWdbMV0pLiAgVG8gY2FuY2VsIGBkaWZmLm9yZGVyZmlsZWAsCisJdXNlIGAtTy9kZXYvbnVsbGAuCiAKIGlmbmRlZjo6Z2l0LWZvcm1hdC1wYXRjaFtdCiAtUjo6CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2V2ZXJ5ZGF5LnR4dCBiL0RvY3VtZW50YXRpb24vZXZlcnlkYXkudHh0CmluZGV4IGUxZmJhODUuLjJhMThjMWYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZXZlcnlkYXkudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZXZlcnlkYXkudHh0CkBAIC0zMDQsNyArMzA0LDcgQEAKICAgKiBsaW5rZ2l0OmdpdC1zaGVsbFsxXSBjYW4gYmUgdXNlZCBhcyBhICdyZXN0cmljdGVkIGxvZ2luIHNoZWxsJwogICAgIGZvciBzaGFyZWQgY2VudHJhbCByZXBvc2l0b3J5IHVzZXJzLgogCi1saW5rOmhvd3RvL3VwZGF0ZS1ob29rLWV4YW1wbGUudHh0W3VwZGF0ZSBob29rIGhvd3RvXSBoYXMgYSBnb29kCitsaW5rOmhvd3RvL3VwZGF0ZS1ob29rLWV4YW1wbGUuaHRtbFt1cGRhdGUgaG9vayBob3d0b10gaGFzIGEgZ29vZAogZXhhbXBsZSBvZiBtYW5hZ2luZyBhIHNoYXJlZCBjZW50cmFsIHJlcG9zaXRvcnkuCiAKIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9mZXRjaC1vcHRpb25zLnR4dCBiL0RvY3VtZW50YXRpb24vZmV0Y2gtb3B0aW9ucy50eHQKaW5kZXggYmExZmU0OS4uOTJjNjhjMyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9mZXRjaC1vcHRpb25zLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2ZldGNoLW9wdGlvbnMudHh0CkBAIC0xNCw4ICsxNCwxOCBAQAogCWJyYW5jaCBoaXN0b3J5LiBUYWdzIGZvciB0aGUgZGVlcGVuZWQgY29tbWl0cyBhcmUgbm90IGZldGNoZWQuCiAKIC0tdW5zaGFsbG93OjoKLQlDb252ZXJ0IGEgc2hhbGxvdyByZXBvc2l0b3J5IHRvIGEgY29tcGxldGUgb25lLCByZW1vdmluZyBhbGwKLQl0aGUgbGltaXRhdGlvbnMgaW1wb3NlZCBieSBzaGFsbG93IHJlcG9zaXRvcmllcy4KKwlJZiB0aGUgc291cmNlIHJlcG9zaXRvcnkgaXMgY29tcGxldGUsIGNvbnZlcnQgYSBzaGFsbG93CisJcmVwb3NpdG9yeSB0byBhIGNvbXBsZXRlIG9uZSwgcmVtb3ZpbmcgYWxsIHRoZSBsaW1pdGF0aW9ucworCWltcG9zZWQgYnkgc2hhbGxvdyByZXBvc2l0b3JpZXMuCisrCitJZiB0aGUgc291cmNlIHJlcG9zaXRvcnkgaXMgc2hhbGxvdywgZmV0Y2ggYXMgbXVjaCBhcyBwb3NzaWJsZSBzbyB0aGF0Cit0aGUgY3VycmVudCByZXBvc2l0b3J5IGhhcyB0aGUgc2FtZSBoaXN0b3J5IGFzIHRoZSBzb3VyY2UgcmVwb3NpdG9yeS4KKworLS11cGRhdGUtc2hhbGxvdzo6CisJQnkgZGVmYXVsdCB3aGVuIGZldGNoaW5nIGZyb20gYSBzaGFsbG93IHJlcG9zaXRvcnksCisJYGdpdCBmZXRjaGAgcmVmdXNlcyByZWZzIHRoYXQgcmVxdWlyZSB1cGRhdGluZworCS5naXQvc2hhbGxvdy4gVGhpcyBvcHRpb24gdXBkYXRlcyAuZ2l0L3NoYWxsb3cgYW5kIGFjY2VwdCBzdWNoCisJcmVmcy4KIAogaWZuZGVmOjpnaXQtcHVsbFtdCiAtLWRyeS1ydW46OgpAQCAtNDEsMTcgKzUxLDIwIEBACiAKIC1wOjoKIC0tcHJ1bmU6OgotCUFmdGVyIGZldGNoaW5nLCByZW1vdmUgYW55IHJlbW90ZS10cmFja2luZyBicmFuY2hlcyB3aGljaAotCW5vIGxvbmdlciBleGlzdAlvbiB0aGUgcmVtb3RlLgorCUFmdGVyIGZldGNoaW5nLCByZW1vdmUgYW55IHJlbW90ZS10cmFja2luZyByZWZlcmVuY2VzIHRoYXQgbm8KKwlsb25nZXIgZXhpc3Qgb24gdGhlIHJlbW90ZS4gIFRhZ3MgYXJlIG5vdCBzdWJqZWN0IHRvIHBydW5pbmcKKwlpZiB0aGV5IGFyZSBmZXRjaGVkIG9ubHkgYmVjYXVzZSBvZiB0aGUgZGVmYXVsdCB0YWcKKwlhdXRvLWZvbGxvd2luZyBvciBkdWUgdG8gYSAtLXRhZ3Mgb3B0aW9uLiAgSG93ZXZlciwgaWYgdGFncworCWFyZSBmZXRjaGVkIGR1ZSB0byBhbiBleHBsaWNpdCByZWZzcGVjIChlaXRoZXIgb24gdGhlIGNvbW1hbmQKKwlsaW5lIG9yIGluIHRoZSByZW1vdGUgY29uZmlndXJhdGlvbiwgZm9yIGV4YW1wbGUgaWYgdGhlIHJlbW90ZQorCXdhcyBjbG9uZWQgd2l0aCB0aGUgLS1taXJyb3Igb3B0aW9uKSwgdGhlbiB0aGV5IGFyZSBhbHNvCisJc3ViamVjdCB0byBwcnVuaW5nLgogZW5kaWY6OmdpdC1wdWxsW10KIAotaWZkZWY6OmdpdC1wdWxsW10KLS0tbm8tdGFnczo6Ci1lbmRpZjo6Z2l0LXB1bGxbXQogaWZuZGVmOjpnaXQtcHVsbFtdCiAtbjo6Ci0tLW5vLXRhZ3M6OgogZW5kaWY6OmdpdC1wdWxsW10KKy0tbm8tdGFnczo6CiAJQnkgZGVmYXVsdCwgdGFncyB0aGF0IHBvaW50IGF0IG9iamVjdHMgdGhhdCBhcmUgZG93bmxvYWRlZAogCWZyb20gdGhlIHJlbW90ZSByZXBvc2l0b3J5IGFyZSBmZXRjaGVkIGFuZCBzdG9yZWQgbG9jYWxseS4KIAlUaGlzIG9wdGlvbiBkaXNhYmxlcyB0aGlzIGF1dG9tYXRpYyB0YWcgZm9sbG93aW5nLiBUaGUgZGVmYXVsdApAQCAtNjEsMTEgKzc0LDEyIEBACiBpZm5kZWY6OmdpdC1wdWxsW10KIC10OjoKIC0tdGFnczo6Ci0JVGhpcyBpcyBhIHNob3J0LWhhbmQgZm9yIGdpdmluZyBgcmVmcy90YWdzLyo6cmVmcy90YWdzLypgCi0JcmVmc3BlYyBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIHRvIGFzayBhbGwgdGFncyB0byBiZSBmZXRjaGVkCi0JYW5kIHN0b3JlZCBsb2NhbGx5LiAgQmVjYXVzZSB0aGlzIGFjdHMgYXMgYW4gZXhwbGljaXQKLQlyZWZzcGVjLCB0aGUgZGVmYXVsdCByZWZzcGVjcyAoY29uZmlndXJlZCB3aXRoIHRoZQotCXJlbW90ZS4kbmFtZS5mZXRjaCB2YXJpYWJsZSkgYXJlIG92ZXJyaWRkZW4gYW5kIG5vdCB1c2VkLgorCUZldGNoIGFsbCB0YWdzIGZyb20gdGhlIHJlbW90ZSAoaS5lLiwgZmV0Y2ggcmVtb3RlIHRhZ3MKKwlgcmVmcy90YWdzLypgIGludG8gbG9jYWwgdGFncyB3aXRoIHRoZSBzYW1lIG5hbWUpLCBpbiBhZGRpdGlvbgorCXRvIHdoYXRldmVyIGVsc2Ugd291bGQgb3RoZXJ3aXNlIGJlIGZldGNoZWQuICBVc2luZyB0aGlzCisJb3B0aW9uIGFsb25lIGRvZXMgbm90IHN1YmplY3QgdGFncyB0byBwcnVuaW5nLCBldmVuIGlmIC0tcHJ1bmUKKwlpcyB1c2VkICh0aG91Z2ggdGFncyBtYXkgYmUgcHJ1bmVkIGFueXdheSBpZiB0aGV5IGFyZSBhbHNvIHRoZQorCWRlc3RpbmF0aW9uIG9mIGFuIGV4cGxpY2l0IHJlZnNwZWM7IHNlZSAnLS1wcnVuZScpLgogCiAtLXJlY3Vyc2Utc3VibW9kdWxlc1s9eWVzfG9uLWRlbWFuZHxub106OgogCVRoaXMgb3B0aW9uIGNvbnRyb2xzIGlmIGFuZCB1bmRlciB3aGF0IGNvbmRpdGlvbnMgbmV3IGNvbW1pdHMgb2YKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWJsYW1lLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWJsYW1lLnR4dAppbmRleCA2Y2VhN2YxLi44ZTcwYTYxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1ibGFtZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtYmxhbWUudHh0CkBAIC05LDcgKzksNyBAQAogLS0tLS0tLS0KIFt2ZXJzZV0KICdnaXQgYmxhbWUnIFstY10gWy1iXSBbLWxdIFstLXJvb3RdIFstdF0gWy1mXSBbLW5dIFstc10gWy1lXSBbLXBdIFstd10gWy0taW5jcmVtZW50YWxdCi0JICAgIFstTCBuLG0gfCAtTCA6Zm5dIFstUyA8cmV2cy1maWxlPl0gWy1NXSBbLUNdIFstQ10gWy1DXSBbLS1zaW5jZT08ZGF0ZT5dCisJICAgIFstTCA8cmFuZ2U+XSBbLVMgPHJldnMtZmlsZT5dIFstTV0gWy1DXSBbLUNdIFstQ10gWy0tc2luY2U9PGRhdGU+XQogCSAgICBbLS1hYmJyZXY9PG4+XSBbPHJldj4gfCAtLWNvbnRlbnRzIDxmaWxlPiB8IC0tcmV2ZXJzZSA8cmV2Pl0gWy0tXSA8ZmlsZT4KIAogREVTQ1JJUFRJT04KQEAgLTE4LDcgKzE4LDggQEAKIEFubm90YXRlcyBlYWNoIGxpbmUgaW4gdGhlIGdpdmVuIGZpbGUgd2l0aCBpbmZvcm1hdGlvbiBmcm9tIHRoZSByZXZpc2lvbiB3aGljaAogbGFzdCBtb2RpZmllZCB0aGUgbGluZS4gT3B0aW9uYWxseSwgc3RhcnQgYW5ub3RhdGluZyBmcm9tIHRoZSBnaXZlbiByZXZpc2lvbi4KIAotVGhlIGNvbW1hbmQgY2FuIGFsc28gbGltaXQgdGhlIHJhbmdlIG9mIGxpbmVzIGFubm90YXRlZC4KK1doZW4gc3BlY2lmaWVkIG9uZSBvciBtb3JlIHRpbWVzLCBgLUxgIHJlc3RyaWN0cyBhbm5vdGF0aW9uIHRvIHRoZSByZXF1ZXN0ZWQKK2xpbmVzLgogCiBUaGUgb3JpZ2luIG9mIGxpbmVzIGlzIGF1dG9tYXRpY2FsbHkgZm9sbG93ZWQgYWNyb3NzIHdob2xlLWZpbGUKIHJlbmFtZXMgKGN1cnJlbnRseSB0aGVyZSBpcyBubyBvcHRpb24gdG8gdHVybiB0aGUgcmVuYW1lLWZvbGxvd2luZwpAQCAtMTAyLDcgKzEwMyw3IEBACiBhdCBsZWFzdCBvbmNlIGZvciBlYWNoIGNvbW1pdDoKIAogLSB0aGUgYXV0aG9yIG5hbWUgKCJhdXRob3IiKSwgZW1haWwgKCJhdXRob3ItbWFpbCIpLCB0aW1lCi0gICgiYXV0aG9yLXRpbWUiKSwgYW5kIHRpbWV6b25lICgiYXV0aG9yLXR6Iik7IHNpbWlsYXJseQorICAoImF1dGhvci10aW1lIiksIGFuZCB0aW1lIHpvbmUgKCJhdXRob3ItdHoiKTsgc2ltaWxhcmx5CiAgIGZvciBjb21taXR0ZXIuCiAtIHRoZSBmaWxlbmFtZSBpbiB0aGUgY29tbWl0IHRoYXQgdGhlIGxpbmUgaXMgYXR0cmlidXRlZCB0by4KIC0gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGNvbW1pdCBsb2cgbWVzc2FnZSAoInN1bW1hcnkiKS4KQEAgLTEzMCw3ICsxMzEsMTAgQEAKIAogVW5saWtlICdnaXQgYmxhbWUnIGFuZCAnZ2l0IGFubm90YXRlJyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBnaXQsIHRoZSBleHRlbnQKIG9mIHRoZSBhbm5vdGF0aW9uIGNhbiBiZSBsaW1pdGVkIHRvIGJvdGggbGluZSByYW5nZXMgYW5kIHJldmlzaW9uCi1yYW5nZXMuICBXaGVuIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBmaW5kaW5nIHRoZSBvcmlnaW4gZm9yCityYW5nZXMuIFRoZSBgLUxgIG9wdGlvbiwgd2hpY2ggbGltaXRzIGFubm90YXRpb24gdG8gYSByYW5nZSBvZiBsaW5lcywgbWF5IGJlCitzcGVjaWZpZWQgbXVsdGlwbGUgdGltZXMuCisKK1doZW4geW91IGFyZSBpbnRlcmVzdGVkIGluIGZpbmRpbmcgdGhlIG9yaWdpbiBmb3IKIGxpbmVzIDQwLTYwIGZvciBmaWxlIGBmb29gLCB5b3UgY2FuIHVzZSB0aGUgYC1MYCBvcHRpb24gbGlrZSBzbwogKHRoZXkgbWVhbiB0aGUgc2FtZSB0aGluZyAtLSBib3RoIGFzayBmb3IgMjEgbGluZXMgc3RhcnRpbmcgYXQKIGxpbmUgNDApOgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY2F0LWZpbGUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtY2F0LWZpbGUudHh0CmluZGV4IDEwZmJjNmEuLmY2YTE2ZjQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWNhdC1maWxlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jYXQtZmlsZS50eHQKQEAgLTU0LDcgKzU0LDcgQEAKIAogLS10ZXh0Y29udjo6CiAJU2hvdyB0aGUgY29udGVudCBhcyB0cmFuc2Zvcm1lZCBieSBhIHRleHRjb252IGZpbHRlci4gSW4gdGhpcyBjYXNlLAotCTxvYmplY3Q+IGhhcyBiZSBvZiB0aGUgZm9ybSA8dHJlZWlzaD46PHBhdGg+LCBvciA6PHBhdGg+IGluIG9yZGVyCisJPG9iamVjdD4gaGFzIGJlIG9mIHRoZSBmb3JtIDx0cmVlLWlzaD46PHBhdGg+LCBvciA6PHBhdGg+IGluIG9yZGVyCiAJdG8gYXBwbHkgdGhlIGZpbHRlciB0byB0aGUgY29udGVudCByZWNvcmRlZCBpbiB0aGUgaW5kZXggYXQgPHBhdGg+LgogCiAtLWJhdGNoOjoKQEAgLTg2LDEwICs4Niw5IEBACiAtLS0tLS0tLS0tLS0KIAogSWYgYC0tYmF0Y2hgIG9yIGAtLWJhdGNoLWNoZWNrYCBpcyBnaXZlbiwgYGNhdC1maWxlYCB3aWxsIHJlYWQgb2JqZWN0cwotZnJvbSBzdGRpbiwgb25lIHBlciBsaW5lLCBhbmQgcHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgdGhlbS4KLQotRWFjaCBsaW5lIGlzIGNvbnNpZGVyZWQgYXMgYSB3aG9sZSBvYmplY3QgbmFtZSwgYW5kIGlzIHBhcnNlZCBhcyBpZgotZ2l2ZW4gdG8gbGlua2dpdDpnaXQtcmV2LXBhcnNlWzFdLgorZnJvbSBzdGRpbiwgb25lIHBlciBsaW5lLCBhbmQgcHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgdGhlbS4gQnkgZGVmYXVsdCwKK3RoZSB3aG9sZSBsaW5lIGlzIGNvbnNpZGVyZWQgYXMgYW4gb2JqZWN0LCBhcyBpZiBpdCB3ZXJlIGZlZCB0bworbGlua2dpdDpnaXQtcmV2LXBhcnNlWzFdLgogCiBZb3UgY2FuIHNwZWNpZnkgdGhlIGluZm9ybWF0aW9uIHNob3duIGZvciBlYWNoIG9iamVjdCBieSB1c2luZyBhIGN1c3RvbQogYDxmb3JtYXQ+YC4gVGhlIGA8Zm9ybWF0PmAgaXMgY29waWVkIGxpdGVyYWxseSB0byBzdGRvdXQgZm9yIGVhY2gKQEAgLTExMCw2ICsxMDksMTggQEAKIAlUaGUgc2l6ZSwgaW4gYnl0ZXMsIHRoYXQgdGhlIG9iamVjdCB0YWtlcyB1cCBvbiBkaXNrLiBTZWUgdGhlCiAJbm90ZSBhYm91dCBvbi1kaXNrIHNpemVzIGluIHRoZSBgQ0FWRUFUU2Agc2VjdGlvbiBiZWxvdy4KIAorYGRlbHRhYmFzZWA6OgorCUlmIHRoZSBvYmplY3QgaXMgc3RvcmVkIGFzIGEgZGVsdGEgb24tZGlzaywgdGhpcyBleHBhbmRzIHRvIHRoZQorCTQwLWhleCBzaGExIG9mIHRoZSBkZWx0YSBiYXNlIG9iamVjdC4gT3RoZXJ3aXNlLCBleHBhbmRzIHRvIHRoZQorCW51bGwgc2hhMSAoNDAgemVyb2VzKS4gU2VlIGBDQVZFQVRTYCBiZWxvdy4KKworYHJlc3RgOjoKKwlJZiB0aGlzIGF0b20gaXMgdXNlZCBpbiB0aGUgb3V0cHV0IHN0cmluZywgaW5wdXQgbGluZXMgYXJlIHNwbGl0CisJYXQgdGhlIGZpcnN0IHdoaXRlc3BhY2UgYm91bmRhcnkuIEFsbCBjaGFyYWN0ZXJzIGJlZm9yZSB0aGF0CisJd2hpdGVzcGFjZSBhcmUgY29uc2lkZXJlZCB0byBiZSB0aGUgb2JqZWN0IG5hbWU7IGNoYXJhY3RlcnMKKwlhZnRlciB0aGF0IGZpcnN0IHJ1biBvZiB3aGl0ZXNwYWNlIChpLmUuLCB0aGUgInJlc3QiIG9mIHRoZQorCWxpbmUpIGFyZSBvdXRwdXQgaW4gcGxhY2Ugb2YgdGhlIGAlKHJlc3QpYCBhdG9tLgorCiBJZiBubyBmb3JtYXQgaXMgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBmb3JtYXQgaXMgYCUob2JqZWN0bmFtZSkKICUob2JqZWN0dHlwZSkgJShvYmplY3RzaXplKWAuCiAKQEAgLTE0NiwxMCArMTU3LDExIEBACiByZXNwb25zaWJsZSBmb3IgZGlzayB1c2FnZS4gVGhlIHNpemUgb2YgYSBwYWNrZWQgbm9uLWRlbHRhIG9iamVjdCBtYXkgYmUKIG11Y2ggbGFyZ2VyIHRoYW4gdGhlIHNpemUgb2Ygb2JqZWN0cyB3aGljaCBkZWx0YSBhZ2FpbnN0IGl0LCBidXQgdGhlCiBjaG9pY2Ugb2Ygd2hpY2ggb2JqZWN0IGlzIHRoZSBiYXNlIGFuZCB3aGljaCBpcyB0aGUgZGVsdGEgaXMgYXJiaXRyYXJ5Ci1hbmQgaXMgc3ViamVjdCB0byBjaGFuZ2UgZHVyaW5nIGEgcmVwYWNrLiBOb3RlIGFsc28gdGhhdCBtdWx0aXBsZSBjb3BpZXMKLW9mIGFuIG9iamVjdCBtYXkgYmUgcHJlc2VudCBpbiB0aGUgb2JqZWN0IGRhdGFiYXNlOyBpbiB0aGlzIGNhc2UsIGl0IGlzCi11bmRlZmluZWQgd2hpY2ggY29weSdzIHNpemUgd2lsbCBiZSByZXBvcnRlZC4KK2FuZCBpcyBzdWJqZWN0IHRvIGNoYW5nZSBkdXJpbmcgYSByZXBhY2suCiAKK05vdGUgYWxzbyB0aGF0IG11bHRpcGxlIGNvcGllcyBvZiBhbiBvYmplY3QgbWF5IGJlIHByZXNlbnQgaW4gdGhlIG9iamVjdAorZGF0YWJhc2U7IGluIHRoaXMgY2FzZSwgaXQgaXMgdW5kZWZpbmVkIHdoaWNoIGNvcHkncyBzaXplIG9yIGRlbHRhIGJhc2UKK3dpbGwgYmUgcmVwb3J0ZWQuCiAKIEdJVAogLS0tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1hdHRyLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrLWF0dHIudHh0CmluZGV4IGE3YmU4MGQuLjAwZTJhYTIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrLWF0dHIudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrLWF0dHIudHh0CkBAIC0zMSw4ICszMSw5IEBACiAJUmVhZCBmaWxlIG5hbWVzIGZyb20gc3RkaW4gaW5zdGVhZCBvZiBmcm9tIHRoZSBjb21tYW5kLWxpbmUuCiAKIC16OjoKLQlPbmx5IG1lYW5pbmdmdWwgd2l0aCBgLS1zdGRpbmA7IHBhdGhzIGFyZSBzZXBhcmF0ZWQgd2l0aCBhCi0JTlVMIGNoYXJhY3RlciBpbnN0ZWFkIG9mIGEgbGluZWZlZWQgY2hhcmFjdGVyLgorCVRoZSBvdXRwdXQgZm9ybWF0IGlzIG1vZGlmaWVkIHRvIGJlIG1hY2hpbmUtcGFyc2VhYmxlLgorCUlmIGAtLXN0ZGluYCBpcyBhbHNvIGdpdmVuLCBpbnB1dCBwYXRocyBhcmUgc2VwYXJhdGVkCisJd2l0aCBhIE5VTCBjaGFyYWN0ZXIgaW5zdGVhZCBvZiBhIGxpbmVmZWVkIGNoYXJhY3Rlci4KIAogXC0tOjoKIAlJbnRlcnByZXQgYWxsIHByZWNlZGluZyBhcmd1bWVudHMgYXMgYXR0cmlidXRlcyBhbmQgYWxsIGZvbGxvd2luZwpAQCAtNDgsNiArNDksMTAgQEAKIFRoZSBvdXRwdXQgaXMgb2YgdGhlIGZvcm06CiA8cGF0aD4gQ09MT04gU1AgPGF0dHJpYnV0ZT4gQ09MT04gU1AgPGluZm8+IExGCiAKK3VubGVzcyBgLXpgIGlzIGluIGVmZmVjdCwgaW4gd2hpY2ggY2FzZSBOVUwgaXMgdXNlZCBhcyBkZWxpbWl0ZXI6Cis8cGF0aD4gTlVMIDxhdHRyaWJ1dGU+IE5VTCA8aW5mbz4gTlVMCisKKwogPHBhdGg+IGlzIHRoZSBwYXRoIG9mIGEgZmlsZSBiZWluZyBxdWVyaWVkLCA8YXR0cmlidXRlPiBpcyBhbiBhdHRyaWJ1dGUKIGJlaW5nIHF1ZXJpZWQgYW5kIDxpbmZvPiBjYW4gYmUgZWl0aGVyOgogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1pZ25vcmUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2staWdub3JlLnR4dAppbmRleCBkMmRmNDg3Li5lZTJlMDkxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1pZ25vcmUudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrLWlnbm9yZS50eHQKQEAgLTQ1LDYgKzQ1LDEzIEBACiAJbm90IGJlIHBvc3NpYmxlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gcGF0aHMgd2hpY2ggbWF0Y2ggYQogCXBhdHRlcm4gYW5kIHRob3NlIHdoaWNoIGRvbid0LgogCistLW5vLWluZGV4OjoKKwlEb24ndCBsb29rIGluIHRoZSBpbmRleCB3aGVuIHVuZGVydGFraW5nIHRoZSBjaGVja3MuIFRoaXMgY2FuCisJYmUgdXNlZCB0byBkZWJ1ZyB3aHkgYSBwYXRoIGJlY2FtZSB0cmFja2VkIGJ5IGUuZy4gYGdpdCBhZGQgLmAKKwlhbmQgd2FzIG5vdCBpZ25vcmVkIGJ5IHRoZSBydWxlcyBhcyBleHBlY3RlZCBieSB0aGUgdXNlciBvciB3aGVuCisJZGV2ZWxvcGluZyBwYXR0ZXJucyBpbmNsdWRpbmcgbmVnYXRpb24gdG8gbWF0Y2ggYSBwYXRoIHByZXZpb3VzbHkKKwlhZGRlZCB3aXRoIGBnaXQgYWRkIC1mYC4KKwogT1VUUFVUCiAtLS0tLS0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2stcmVmLWZvcm1hdC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1yZWYtZm9ybWF0LnR4dAppbmRleCBhNDliZTFiLi5mYzAyOTU5IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1yZWYtZm9ybWF0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1yZWYtZm9ybWF0LnR4dApAQCAtNTQsNiArNTQsOCBAQAogCiAuIFRoZXkgY2Fubm90IGNvbnRhaW4gYSBzZXF1ZW5jZSBgQHtgLgogCisuIFRoZXkgY2Fubm90IGJlIHRoZSBzaW5nbGUgY2hhcmFjdGVyIGBAYC4KKwogLiBUaGV5IGNhbm5vdCBjb250YWluIGEgYFxgLgogCiBUaGVzZSBydWxlcyBtYWtlIGl0IGVhc3kgZm9yIHNoZWxsIHNjcmlwdCBiYXNlZCB0b29scyB0byBwYXJzZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2tvdXQudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2tvdXQudHh0CmluZGV4IGNhMTE4YWMuLjMzYWQyYWQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrb3V0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVja291dC50eHQKQEAgLTksNyArOSw4IEBACiAtLS0tLS0tLQogW3ZlcnNlXQogJ2dpdCBjaGVja291dCcgWy1xXSBbLWZdIFstbV0gWzxicmFuY2g+XQotJ2dpdCBjaGVja291dCcgWy1xXSBbLWZdIFstbV0gWy0tZGV0YWNoXSBbPGNvbW1pdD5dCisnZ2l0IGNoZWNrb3V0JyBbLXFdIFstZl0gWy1tXSAtLWRldGFjaCBbPGJyYW5jaD5dCisnZ2l0IGNoZWNrb3V0JyBbLXFdIFstZl0gWy1tXSBbLS1kZXRhY2hdIDxjb21taXQ+CiAnZ2l0IGNoZWNrb3V0JyBbLXFdIFstZl0gWy1tXSBbWy1ifC1CfC0tb3JwaGFuXSA8bmV3X2JyYW5jaD5dIFs8c3RhcnRfcG9pbnQ+XQogJ2dpdCBjaGVja291dCcgWy1mfC0tb3Vyc3wtLXRoZWlyc3wtbXwtLWNvbmZsaWN0PTxzdHlsZT5dIFs8dHJlZS1pc2g+XSBbLS1dIDxwYXRocz4uLi4KICdnaXQgY2hlY2tvdXQnIFstcHwtLXBhdGNoXSBbPHRyZWUtaXNoPl0gWy0tXSBbPHBhdGhzPi4uLl0KQEAgLTYyLDcgKzYzLDcgQEAKIHN1Y2Nlc3NmdWwuCiAKICdnaXQgY2hlY2tvdXQnIC0tZGV0YWNoIFs8YnJhbmNoPl06OgotJ2dpdCBjaGVja291dCcgPGNvbW1pdD46OgorJ2dpdCBjaGVja291dCcgWy0tZGV0YWNoXSA8Y29tbWl0Pjo6CiAKIAlQcmVwYXJlIHRvIHdvcmsgb24gdG9wIG9mIDxjb21taXQ+LCBieSBkZXRhY2hpbmcgSEVBRCBhdCBpdAogCShzZWUgIkRFVEFDSEVEIEhFQUQiIHNlY3Rpb24pLCBhbmQgdXBkYXRpbmcgdGhlIGluZGV4IGFuZCB0aGUKQEAgLTcxLDEwICs3MiwxMSBAQAogCXRyZWUgd2lsbCBiZSB0aGUgc3RhdGUgcmVjb3JkZWQgaW4gdGhlIGNvbW1pdCBwbHVzIHRoZSBsb2NhbAogCW1vZGlmaWNhdGlvbnMuCiArCi1QYXNzaW5nIGAtLWRldGFjaGAgZm9yY2VzIHRoaXMgYmVoYXZpb3IgaW4gdGhlIGNhc2Ugb2YgYSA8YnJhbmNoPiAod2l0aG91dAotdGhlIG9wdGlvbiwgZ2l2aW5nIGEgYnJhbmNoIG5hbWUgdG8gdGhlIGNvbW1hbmQgd291bGQgY2hlY2sgb3V0IHRoZSBicmFuY2gsCi1pbnN0ZWFkIG9mIGRldGFjaGluZyBIRUFEIGF0IGl0KSwgb3IgdGhlIGN1cnJlbnQgY29tbWl0LAotaWYgbm8gPGJyYW5jaD4gaXMgc3BlY2lmaWVkLgorV2hlbiB0aGUgPGNvbW1pdD4gYXJndW1lbnQgaXMgYSBicmFuY2ggbmFtZSwgdGhlIGAtLWRldGFjaGAgb3B0aW9uIGNhbgorYmUgdXNlZCB0byBkZXRhY2ggSEVBRCBhdCB0aGUgdGlwIG9mIHRoZSBicmFuY2ggKGBnaXQgY2hlY2tvdXQKKzxicmFuY2g+YCB3b3VsZCBjaGVjayBvdXQgdGhhdCBicmFuY2ggd2l0aG91dCBkZXRhY2hpbmcgSEVBRCkuCisrCitPbWl0dGluZyA8YnJhbmNoPiBkZXRhY2hlcyBIRUFEIGF0IHRoZSB0aXAgb2YgdGhlIGN1cnJlbnQgYnJhbmNoLgogCiAnZ2l0IGNoZWNrb3V0JyBbLXB8LS1wYXRjaF0gWzx0cmVlLWlzaD5dIFstLV0gPHBhdGhzcGVjPi4uLjo6CiAKQEAgLTIzMCw4ICsyMzIsOCBAQAogCWNvbW1pdCwgeW91ciBIRUFEIGJlY29tZXMgImRldGFjaGVkIiBhbmQgeW91IGFyZSBubyBsb25nZXIgb24KIAlhbnkgYnJhbmNoIChzZWUgYmVsb3cgZm9yIGRldGFpbHMpLgogKwotQXMgYSBzcGVjaWFsIGNhc2UsIHRoZSBgIkB7LU59ImAgc3ludGF4IGZvciB0aGUgTi10aCBsYXN0IGJyYW5jaAotY2hlY2tzIG91dCB0aGUgYnJhbmNoIChpbnN0ZWFkIG9mIGRldGFjaGluZykuICBZb3UgbWF5IGFsc28gc3BlY2lmeQorQXMgYSBzcGVjaWFsIGNhc2UsIHRoZSBgIkB7LU59ImAgc3ludGF4IGZvciB0aGUgTi10aCBsYXN0IGJyYW5jaC9jb21taXQKK2NoZWNrcyBvdXQgYnJhbmNoZXMgKGluc3RlYWQgb2YgZGV0YWNoaW5nKS4gIFlvdSBtYXkgYWxzbyBzcGVjaWZ5CiBgLWAgd2hpY2ggaXMgc3lub255bW91cyB3aXRoIGAiQHstMX0iYC4KICsKIEFzIGEgZnVydGhlciBzcGVjaWFsIGNhc2UsIHlvdSBtYXkgdXNlIGAiQS4uLkIiYCBhcyBhIHNob3J0Y3V0IGZvciB0aGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWNoZXJyeS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVycnkudHh0CmluZGV4IGY2YzE5YzcuLjBlYTkyMWEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWNoZXJyeS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtY2hlcnJ5LnR4dApAQCAtMyw3ICszLDcgQEAKIAogTkFNRQogLS0tLQotZ2l0LWNoZXJyeSAtIEZpbmQgY29tbWl0cyBub3QgbWVyZ2VkIHVwc3RyZWFtCitnaXQtY2hlcnJ5IC0gRmluZCBjb21taXRzIHlldCB0byBiZSBhcHBsaWVkIHRvIHVwc3RyZWFtCiAKIFNZTk9QU0lTCiAtLS0tLS0tLQpAQCAtMTIsNDcgKzEyLDI2IEBACiAKIERFU0NSSVBUSU9OCiAtLS0tLS0tLS0tLQotVGhlIGNoYW5nZXNldCAob3IgImRpZmYiKSBvZiBlYWNoIGNvbW1pdCBiZXR3ZWVuIHRoZSBmb3JrLXBvaW50IGFuZCA8aGVhZD4KLWlzIGNvbXBhcmVkIGFnYWluc3QgZWFjaCBjb21taXQgYmV0d2VlbiB0aGUgZm9yay1wb2ludCBhbmQgPHVwc3RyZWFtPi4KLVRoZSBjb21taXRzIGFyZSBjb21wYXJlZCB3aXRoIHRoZWlyICdwYXRjaCBpZCcsIG9idGFpbmVkIGZyb20KLXRoZSAnZ2l0IHBhdGNoLWlkJyBwcm9ncmFtLgorRGV0ZXJtaW5lIHdoZXRoZXIgdGhlcmUgYXJlIGNvbW1pdHMgaW4gYDxoZWFkPi4uPHVwc3RyZWFtPmAgdGhhdCBhcmUKK2VxdWl2YWxlbnQgdG8gdGhvc2UgaW4gdGhlIHJhbmdlIGA8bGltaXQ+Li48aGVhZD5gLgogCi1FdmVyeSBjb21taXQgdGhhdCBkb2Vzbid0IGV4aXN0IGluIHRoZSA8dXBzdHJlYW0+IGJyYW5jaAotaGFzIGl0cyBpZCAoc2hhMSkgcmVwb3J0ZWQsIHByZWZpeGVkIGJ5IGEgc3ltYm9sLiAgVGhlIG9uZXMgdGhhdCBoYXZlCi1lcXVpdmFsZW50IGNoYW5nZSBhbHJlYWR5Ci1pbiB0aGUgPHVwc3RyZWFtPiBicmFuY2ggYXJlIHByZWZpeGVkIHdpdGggYSBtaW51cyAoLSkgc2lnbiwgYW5kIHRob3NlCi10aGF0IG9ubHkgZXhpc3QgaW4gdGhlIDxoZWFkPiBicmFuY2ggYXJlIHByZWZpeGVkIHdpdGggYSBwbHVzICgrKSBzeW1ib2w6CitUaGUgZXF1aXZhbGVuY2UgdGVzdCBpcyBiYXNlZCBvbiB0aGUgZGlmZiwgYWZ0ZXIgcmVtb3Zpbmcgd2hpdGVzcGFjZQorYW5kIGxpbmUgbnVtYmVycy4gIGdpdC1jaGVycnkgdGhlcmVmb3JlIGRldGVjdHMgd2hlbiBjb21taXRzIGhhdmUgYmVlbgorImNvcGllZCIgYnkgbWVhbnMgb2YgbGlua2dpdDpnaXQtY2hlcnJ5LXBpY2tbMV0sIGxpbmtnaXQ6Z2l0LWFtWzFdIG9yCitsaW5rZ2l0OmdpdC1yZWJhc2VbMV0uCiAKLSAgICAgICAgICAgICAgIF9fKl9fKl9fKl9fKl9fPiA8dXBzdHJlYW0+Ci0gICAgICAgICAgICAgIC8KLSAgICBmb3JrLXBvaW50Ci0gICAgICAgICAgICAgIFxfXytfXytfXy1fXytfXytfXy1fXytfXz4gPGhlYWQ+Ci0KLQotSWYgYSA8bGltaXQ+IGhhcyBiZWVuIGdpdmVuIHRoZW4gdGhlIGNvbW1pdHMgYWxvbmcgdGhlIDxoZWFkPiBicmFuY2ggdXAKLXRvIGFuZCBpbmNsdWRpbmcgPGxpbWl0PiBhcmUgbm90IHJlcG9ydGVkOgotCi0gICAgICAgICAgICAgICBfXypfXypfXypfXypfXz4gPHVwc3RyZWFtPgotICAgICAgICAgICAgICAvCi0gICAgZm9yay1wb2ludAotICAgICAgICAgICAgICBcX18qX18qX188bGltaXQ+X18tX18rX18+IDxoZWFkPgotCi0KLUJlY2F1c2UgJ2dpdCBjaGVycnknIGNvbXBhcmVzIHRoZSBjaGFuZ2VzZXQgcmF0aGVyIHRoYW4gdGhlIGNvbW1pdCBpZAotKHNoYTEpLCB5b3UgY2FuIHVzZSAnZ2l0IGNoZXJyeScgdG8gZmluZCBvdXQgaWYgYSBjb21taXQgeW91IG1hZGUgbG9jYWxseQotaGFzIGJlZW4gYXBwbGllZCA8dXBzdHJlYW0+IHVuZGVyIGEgZGlmZmVyZW50IGNvbW1pdCBpZC4gIEZvciBleGFtcGxlLAotdGhpcyB3aWxsIGhhcHBlbiBpZiB5b3UncmUgZmVlZGluZyBwYXRjaGVzIDx1cHN0cmVhbT4gdmlhIGVtYWlsIHJhdGhlcgotdGhhbiBwdXNoaW5nIG9yIHB1bGxpbmcgY29tbWl0cyBkaXJlY3RseS4KLQorT3V0cHV0cyB0aGUgU0hBMSBvZiBldmVyeSBjb21taXQgaW4gYDxsaW1pdD4uLjxoZWFkPmAsIHByZWZpeGVkIHdpdGgKK2AtYCBmb3IgY29tbWl0cyB0aGF0IGhhdmUgYW4gZXF1aXZhbGVudCBpbiA8dXBzdHJlYW0+LCBhbmQgYCtgIGZvcgorY29tbWl0cyB0aGF0IGRvIG5vdC4KIAogT1BUSU9OUwogLS0tLS0tLQogLXY6OgotCVZlcmJvc2UuCisJU2hvdyB0aGUgY29tbWl0IHN1YmplY3RzIG5leHQgdG8gdGhlIFNIQTFzLgogCiA8dXBzdHJlYW0+OjoKLQlVcHN0cmVhbSBicmFuY2ggdG8gY29tcGFyZSBhZ2FpbnN0LgotCURlZmF1bHRzIHRvIHRoZSBmaXJzdCB0cmFja2VkIHJlbW90ZSBicmFuY2gsIGlmIGF2YWlsYWJsZS4KKwlVcHN0cmVhbSBicmFuY2ggdG8gc2VhcmNoIGZvciBlcXVpdmFsZW50IGNvbW1pdHMuCisJRGVmYXVsdHMgdG8gdGhlIHVwc3RyZWFtIGJyYW5jaCBvZiBIRUFELgogCiA8aGVhZD46OgogCVdvcmtpbmcgYnJhbmNoOyBkZWZhdWx0cyB0byBIRUFELgpAQCAtNjAsNiArMzksMTAzIEBACiA8bGltaXQ+OjoKIAlEbyBub3QgcmVwb3J0IGNvbW1pdHMgdXAgdG8gKGFuZCBpbmNsdWRpbmcpIGxpbWl0LgogCitFWEFNUExFUworLS0tLS0tLS0KKworUGF0Y2ggd29ya2Zsb3dzCit+fn5+fn5+fn5+fn5+fn4KKworZ2l0LWNoZXJyeSBpcyBmcmVxdWVudGx5IHVzZWQgaW4gcGF0Y2gtYmFzZWQgd29ya2Zsb3dzIChzZWUKK2xpbmtnaXQ6Z2l0d29ya2Zsb3dzWzddKSB0byBkZXRlcm1pbmUgaWYgYSBzZXJpZXMgb2YgcGF0Y2hlcyBoYXMgYmVlbgorYXBwbGllZCBieSB0aGUgdXBzdHJlYW0gbWFpbnRhaW5lci4gIEluIHN1Y2ggYSB3b3JrZmxvdyB5b3UgbWlnaHQKK2NyZWF0ZSBhbmQgc2VuZCBhIHRvcGljIGJyYW5jaCBsaWtlIHRoaXM6CisKKy0tLS0tLS0tLS0tLQorJCBnaXQgY2hlY2tvdXQgLWIgdG9waWMgb3JpZ2luL21hc3RlcgorIyB3b3JrIGFuZCBjcmVhdGUgc29tZSBjb21taXRzCiskIGdpdCBmb3JtYXQtcGF0Y2ggb3JpZ2luL21hc3RlcgorJCBnaXQgc2VuZC1lbWFpbCAuLi4gMDAqCistLS0tLS0tLS0tLS0KKworTGF0ZXIsIHlvdSBjYW4gc2VlIHdoZXRoZXIgeW91ciBjaGFuZ2VzIGhhdmUgYmVlbiBhcHBsaWVkIGJ5IHNheWluZworKHN0aWxsIG9uIGB0b3BpY2ApOgorCistLS0tLS0tLS0tLS0KKyQgZ2l0IGZldGNoICAjIHVwZGF0ZSB5b3VyIG5vdGlvbiBvZiBvcmlnaW4vbWFzdGVyCiskIGdpdCBjaGVycnkgLXYKKy0tLS0tLS0tLS0tLQorCitDb25jcmV0ZSBleGFtcGxlCit+fn5+fn5+fn5+fn5+fn5+CisKK0luIGEgc2l0dWF0aW9uIHdoZXJlIHRvcGljIGNvbnNpc3RlZCBvZiB0aHJlZSBjb21taXRzLCBhbmQgdGhlCittYWludGFpbmVyIGFwcGxpZWQgdHdvIG9mIHRoZW0sIHRoZSBzaXR1YXRpb24gbWlnaHQgbG9vayBsaWtlOgorCistLS0tLS0tLS0tLS0KKyQgZ2l0IGxvZyAtLWdyYXBoIC0tb25lbGluZSAtLWRlY29yYXRlIC0tYm91bmRhcnkgb3JpZ2luL21hc3Rlci4uLnRvcGljCisqIDc2NTQzMjEgKG9yaWdpbi9tYXN0ZXIpIHVwc3RyZWFtIHRpcCBjb21taXQKK1suLi4gc25pcCBzb21lIG90aGVyIGNvbW1pdHMgLi4uXQorKiBjY2NjMTExIGNoZXJyeS1waWNrIG9mIEMKKyogYWFhYTExMSBjaGVycnktcGljayBvZiBBCitbLi4uIHNuaXAgYSBsb3QgbW9yZSB0aGF0IGhhcyBoYXBwZW5lZCAuLi5dCit8ICogY2NjYzAwMCAodG9waWMpIGNvbW1pdCBDCit8ICogYmJiYjAwMCBjb21taXQgQgorfCAqIGFhYWEwMDAgY29tbWl0IEEKK3wvCitvIDEyMzQ1NjcgYnJhbmNoIHBvaW50CistLS0tLS0tLS0tLS0KKworSW4gc3VjaCBjYXNlcywgZ2l0LWNoZXJyeSBzaG93cyBhIGNvbmNpc2Ugc3VtbWFyeSBvZiB3aGF0IGhhcyB5ZXQgdG8KK2JlIGFwcGxpZWQ6CisKKy0tLS0tLS0tLS0tLQorJCBnaXQgY2hlcnJ5IG9yaWdpbi9tYXN0ZXIgdG9waWMKKy0gY2NjYzAwMC4uLiBjb21taXQgQworKyBiYmJiMDAwLi4uIGNvbW1pdCBCCistIGFhYWEwMDAuLi4gY29tbWl0IEEKKy0tLS0tLS0tLS0tLQorCitIZXJlLCB3ZSBzZWUgdGhhdCB0aGUgY29tbWl0cyBBIGFuZCBDIChtYXJrZWQgd2l0aCBgLWApIGNhbiBiZQorZHJvcHBlZCBmcm9tIHlvdXIgYHRvcGljYCBicmFuY2ggd2hlbiB5b3UgcmViYXNlIGl0IG9uIHRvcCBvZgorYG9yaWdpbi9tYXN0ZXJgLCB3aGlsZSB0aGUgY29tbWl0IEIgKG1hcmtlZCB3aXRoIGArYCkgc3RpbGwgbmVlZHMgdG8KK2JlIGtlcHQgc28gdGhhdCBpdCB3aWxsIGJlIHNlbnQgdG8gYmUgYXBwbGllZCB0byBgb3JpZ2luL21hc3RlcmAuCisKKworVXNpbmcgYSBsaW1pdAorfn5+fn5+fn5+fn5+fgorCitUaGUgb3B0aW9uYWwgPGxpbWl0PiBpcyB1c2VmdWwgaW4gY2FzZXMgd2hlcmUgeW91ciB0b3BpYyBpcyBiYXNlZCBvbgorb3RoZXIgd29yayB0aGF0IGlzIG5vdCBpbiB1cHN0cmVhbS4gIEV4cGFuZGluZyBvbiB0aGUgcHJldmlvdXMKK2V4YW1wbGUsIHRoaXMgbWlnaHQgbG9vayBsaWtlOgorCistLS0tLS0tLS0tLS0KKyQgZ2l0IGxvZyAtLWdyYXBoIC0tb25lbGluZSAtLWRlY29yYXRlIC0tYm91bmRhcnkgb3JpZ2luL21hc3Rlci4uLnRvcGljCisqIDc2NTQzMjEgKG9yaWdpbi9tYXN0ZXIpIHVwc3RyZWFtIHRpcCBjb21taXQKK1suLi4gc25pcCBzb21lIG90aGVyIGNvbW1pdHMgLi4uXQorKiBjY2NjMTExIGNoZXJyeS1waWNrIG9mIEMKKyogYWFhYTExMSBjaGVycnktcGljayBvZiBBCitbLi4uIHNuaXAgYSBsb3QgbW9yZSB0aGF0IGhhcyBoYXBwZW5lZCAuLi5dCit8ICogY2NjYzAwMCAodG9waWMpIGNvbW1pdCBDCit8ICogYmJiYjAwMCBjb21taXQgQgorfCAqIGFhYWEwMDAgY29tbWl0IEEKK3wgKiAwMDAwZmZmIChiYXNlKSB1bnB1Ymxpc2hlZCBzdHVmZiBGCitbLi4uIHNuaXAgLi4uXQorfCAqIDAwMDBhYWEgdW5wdWJsaXNoZWQgc3R1ZmYgQQorfC8KK28gMTIzNDU2NyBtZXJnZS1iYXNlIGJldHdlZW4gdXBzdHJlYW0gYW5kIHRvcGljCistLS0tLS0tLS0tLS0KKworQnkgc3BlY2lmeWluZyBgYmFzZWAgYXMgdGhlIGxpbWl0LCB5b3UgY2FuIGF2b2lkIGxpc3RpbmcgY29tbWl0cworYmV0d2VlbiBgYmFzZWAgYW5kIGB0b3BpY2A6CisKKy0tLS0tLS0tLS0tLQorJCBnaXQgY2hlcnJ5IG9yaWdpbi9tYXN0ZXIgdG9waWMgYmFzZQorLSBjY2NjMDAwLi4uIGNvbW1pdCBDCisrIGJiYmIwMDAuLi4gY29tbWl0IEIKKy0gYWFhYTAwMC4uLiBjb21taXQgQQorLS0tLS0tLS0tLS0tCisKKwogU0VFIEFMU08KIC0tLS0tLS0tCiBsaW5rZ2l0OmdpdC1wYXRjaC1pZFsxXQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY2xvbmUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtY2xvbmUudHh0CmluZGV4IDQ1MGYxNTguLjQ5ODc4NTcgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWNsb25lLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jbG9uZS50eHQKQEAgLTE4MSwxMiArMTgxLDcgQEAKIAogLS1kZXB0aCA8ZGVwdGg+OjoKIAlDcmVhdGUgYSAnc2hhbGxvdycgY2xvbmUgd2l0aCBhIGhpc3RvcnkgdHJ1bmNhdGVkIHRvIHRoZQotCXNwZWNpZmllZCBudW1iZXIgb2YgcmV2aXNpb25zLiAgQSBzaGFsbG93IHJlcG9zaXRvcnkgaGFzIGEKLQludW1iZXIgb2YgbGltaXRhdGlvbnMgKHlvdSBjYW5ub3QgY2xvbmUgb3IgZmV0Y2ggZnJvbQotCWl0LCBub3IgcHVzaCBmcm9tIG5vciBpbnRvIGl0KSwgYnV0IGlzIGFkZXF1YXRlIGlmIHlvdQotCWFyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIHJlY2VudCBoaXN0b3J5IG9mIGEgbGFyZ2UgcHJvamVjdAotCXdpdGggYSBsb25nIGhpc3RvcnksIGFuZCB3b3VsZCB3YW50IHRvIHNlbmQgaW4gZml4ZXMKLQlhcyBwYXRjaGVzLgorCXNwZWNpZmllZCBudW1iZXIgb2YgcmV2aXNpb25zLgogCiAtLVtuby1dc2luZ2xlLWJyYW5jaDo6CiAJQ2xvbmUgb25seSB0aGUgaGlzdG9yeSBsZWFkaW5nIHRvIHRoZSB0aXAgb2YgYSBzaW5nbGUgYnJhbmNoLApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY29sdW1uLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWNvbHVtbi50eHQKaW5kZXggNWQ2ZjFjYy4uMDNkMTg0NiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtY29sdW1uLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jb2x1bW4udHh0CkBAIC00MywxMSArNDMsNiBAQAogLS1wYWRkaW5nPTxOPjo6CiAJVGhlIG51bWJlciBvZiBzcGFjZXMgYmV0d2VlbiBjb2x1bW5zLiBPbmUgc3BhY2UgYnkgZGVmYXVsdC4KIAotCi1BdXRob3IKLS0tLS0tLQotV3JpdHRlbiBieSBOZ3V5ZW4gVGhhaSBOZ29jIER1eSA8cGNsb3Vkc0BnbWFpbC5jb20+Ci0KIEdJVAogLS0tCiBQYXJ0IG9mIHRoZSBsaW5rZ2l0OmdpdFsxXSBzdWl0ZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY29uZmlnLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWNvbmZpZy50eHQKaW5kZXggMmRiZTQ4Ni4uZTk5MTdiOCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtY29uZmlnLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jb25maWcudHh0CkBAIC0xNSw2ICsxNSw3IEBACiAnZ2l0IGNvbmZpZycgWzxmaWxlLW9wdGlvbj5dIFt0eXBlXSBbLXp8LS1udWxsXSAtLWdldCBuYW1lIFt2YWx1ZV9yZWdleF0KICdnaXQgY29uZmlnJyBbPGZpbGUtb3B0aW9uPl0gW3R5cGVdIFstenwtLW51bGxdIC0tZ2V0LWFsbCBuYW1lIFt2YWx1ZV9yZWdleF0KICdnaXQgY29uZmlnJyBbPGZpbGUtb3B0aW9uPl0gW3R5cGVdIFstenwtLW51bGxdIC0tZ2V0LXJlZ2V4cCBuYW1lX3JlZ2V4IFt2YWx1ZV9yZWdleF0KKydnaXQgY29uZmlnJyBbPGZpbGUtb3B0aW9uPl0gW3R5cGVdIFstenwtLW51bGxdIC0tZ2V0LXVybG1hdGNoIG5hbWUgVVJMCiAnZ2l0IGNvbmZpZycgWzxmaWxlLW9wdGlvbj5dIC0tdW5zZXQgbmFtZSBbdmFsdWVfcmVnZXhdCiAnZ2l0IGNvbmZpZycgWzxmaWxlLW9wdGlvbj5dIC0tdW5zZXQtYWxsIG5hbWUgW3ZhbHVlX3JlZ2V4XQogJ2dpdCBjb25maWcnIFs8ZmlsZS1vcHRpb24+XSAtLXJlbmFtZS1zZWN0aW9uIG9sZF9uYW1lIG5ld19uYW1lCkBAIC05NSw2ICs5NiwxNCBAQAogCWluIHdoaWNoIHNlY3Rpb24gYW5kIHZhcmlhYmxlIG5hbWVzIGFyZSBsb3dlcmNhc2VkLCBidXQgc3Vic2VjdGlvbgogCW5hbWVzIGFyZSBub3QuCiAKKy0tZ2V0LXVybG1hdGNoIG5hbWUgVVJMOjoKKwlXaGVuIGdpdmVuIGEgdHdvLXBhcnQgbmFtZSBzZWN0aW9uLmtleSwgdGhlIHZhbHVlIGZvcgorCXNlY3Rpb24uPHVybD4ua2V5IHdob3NlIDx1cmw+IHBhcnQgbWF0Y2hlcyB0aGUgYmVzdCB0byB0aGUKKwlnaXZlbiBVUkwgaXMgcmV0dXJuZWQgKGlmIG5vIHN1Y2gga2V5IGV4aXN0cywgdGhlIHZhbHVlIGZvcgorCXNlY3Rpb24ua2V5IGlzIHVzZWQgYXMgYSBmYWxsYmFjaykuICBXaGVuIGdpdmVuIGp1c3QgdGhlCisJc2VjdGlvbiBhcyBuYW1lLCBkbyBzbyBmb3IgYWxsIHRoZSBrZXlzIGluIHRoZSBzZWN0aW9uIGFuZAorCWxpc3QgdGhlbS4KKwogLS1nbG9iYWw6OgogCUZvciB3cml0aW5nIG9wdGlvbnM6IHdyaXRlIHRvIGdsb2JhbCBgfi8uZ2l0Y29uZmlnYCBmaWxlCiAJcmF0aGVyIHRoYW4gdGhlIHJlcG9zaXRvcnkgYC5naXQvY29uZmlnYCwgd3JpdGUgdG8KQEAgLTI5NSw2ICszMDQsMTMgQEAKIAkJZ2l0cHJveHk9cHJveHktY29tbWFuZCBmb3Iga2VybmVsLm9yZwogCQlnaXRwcm94eT1kZWZhdWx0LXByb3h5IDsgZm9yIGFsbCB0aGUgcmVzdAogCisJOyBIVFRQCisJW2h0dHBdCisJCXNzbFZlcmlmeQorCVtodHRwICJodHRwczovL3dlYWsuZXhhbXBsZS5jb20iXQorCQlzc2xWZXJpZnkgPSBmYWxzZQorCQljb29raWVGaWxlID0gL3RtcC9jb29raWUudHh0CisKIHlvdSBjYW4gc2V0IHRoZSBmaWxlbW9kZSB0byB0cnVlIHdpdGgKIAogLS0tLS0tLS0tLS0tCkBAIC0zODAsNiArMzk2LDE5IEBACiBlY2hvICIke1dTfXlvdXIgd2hpdGVzcGFjZSBjb2xvciBvciBibHVlIHJldmVyc2Uke1JFU0VUfSIKIC0tLS0tLS0tLS0tLQogCitGb3IgVVJMcyBpbiBgaHR0cHM6Ly93ZWFrLmV4YW1wbGUuY29tYCwgYGh0dHAuc3NsVmVyaWZ5YCBpcyBzZXQgdG8KK2ZhbHNlLCB3aGlsZSBpdCBpcyBzZXQgdG8gYHRydWVgIGZvciBhbGwgb3RoZXJzOgorCistLS0tLS0tLS0tLS0KKyUgZ2l0IGNvbmZpZyAtLWJvb2wgLS1nZXQtdXJsbWF0Y2ggaHR0cC5zc2x2ZXJpZnkgaHR0cHM6Ly9nb29kLmV4YW1wbGUuY29tCit0cnVlCislIGdpdCBjb25maWcgLS1ib29sIC0tZ2V0LXVybG1hdGNoIGh0dHAuc3NsdmVyaWZ5IGh0dHBzOi8vd2Vhay5leGFtcGxlLmNvbQorZmFsc2UKKyUgZ2l0IGNvbmZpZyAtLWdldC11cmxtYXRjaCBodHRwIGh0dHBzOi8vd2Vhay5leGFtcGxlLmNvbQoraHR0cC5jb29raWVmaWxlIC90bXAvY29va2llLnR4dAoraHR0cC5zc2x2ZXJpZnkgZmFsc2UKKy0tLS0tLS0tLS0tLQorCiBpbmNsdWRlOjpjb25maWcudHh0W10KIAogR0lUCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1jcmVkZW50aWFsLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWNyZWRlbnRpYWwudHh0CmluZGV4IDdkYTBmMTMuLmIyMTE0NDAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWNyZWRlbnRpYWwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWNyZWRlbnRpYWwudHh0CkBAIC0yMCw3ICsyMCw3IEBACiBpbnRlcmZhY2UgdG8gc2NyaXB0cyB3aGljaCBtYXkgd2FudCB0byByZXRyaWV2ZSwgc3RvcmUsIG9yIHByb21wdCBmb3IKIGNyZWRlbnRpYWxzIGluIHRoZSBzYW1lIG1hbm5lciBhcyBHaXQuIFRoZSBkZXNpZ24gb2YgdGhpcyBzY3JpcHRhYmxlCiBpbnRlcmZhY2UgbW9kZWxzIHRoZSBpbnRlcm5hbCBDIEFQSTsgc2VlCi1saW5rOnRlY2huaWNhbC9hcGktY3JlZGVudGlhbHMudHh0W3RoZSBHaXQgY3JlZGVudGlhbCBBUEldIGZvciBtb3JlCitsaW5rOnRlY2huaWNhbC9hcGktY3JlZGVudGlhbHMuaHRtbFt0aGUgR2l0IGNyZWRlbnRpYWwgQVBJXSBmb3IgbW9yZQogYmFja2dyb3VuZCBvbiB0aGUgY29uY2VwdHMuCiAKIGdpdC1jcmVkZW50aWFsIHRha2VzIGFuICJhY3Rpb24iIG9wdGlvbiBvbiB0aGUgY29tbWFuZC1saW5lIChvbmUgb2YKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWN2c2ltcG9ydC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jdnNpbXBvcnQudHh0CmluZGV4IGQxYmNkYTIuLjJkZjk5NTMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWN2c2ltcG9ydC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtY3ZzaW1wb3J0LnR4dApAQCAtMTQ0LDcgKzE0NCw3IEBACiAJQ1ZTIGJ5IGRlZmF1bHQgdXNlcyB0aGUgVW5peCB1c2VybmFtZSB3aGVuIHdyaXRpbmcgaXRzCiAJY29tbWl0IGxvZ3MuIFVzaW5nIHRoaXMgb3B0aW9uIGFuZCBhbiBhdXRob3ItY29udi1maWxlCiAJbWFwcyB0aGUgbmFtZSByZWNvcmRlZCBpbiBDVlMgdG8gYXV0aG9yIG5hbWUsIGUtbWFpbCBhbmQKLQlvcHRpb25hbCB0aW1lem9uZToKKwlvcHRpb25hbCB0aW1lIHpvbmU6CiArCiAtLS0tLS0tLS0KIAlleG9uPUFuZHJlYXMgRXJpY3Nzb24gPGFlQG9wNS5zZT4KQEAgLTE1NCw3ICsxNTQsNyBAQAogKwogJ2dpdCBjdnNpbXBvcnQnIHdpbGwgbWFrZSBpdCBhcHBlYXIgYXMgdGhvc2UgYXV0aG9ycyBoYWQKIHRoZWlyIEdJVF9BVVRIT1JfTkFNRSBhbmQgR0lUX0FVVEhPUl9FTUFJTCBzZXQgcHJvcGVybHkKLWFsbCBhbG9uZy4gIElmIGEgdGltZXpvbmUgaXMgc3BlY2lmaWVkLCBHSVRfQVVUSE9SX0RBVEUgd2lsbAorYWxsIGFsb25nLiAgSWYgYSB0aW1lIHpvbmUgaXMgc3BlY2lmaWVkLCBHSVRfQVVUSE9SX0RBVEUgd2lsbAogaGF2ZSB0aGUgY29ycmVzcG9uZGluZyBvZmZzZXQgYXBwbGllZC4KICsKIEZvciBjb252ZW5pZW5jZSwgdGhpcyBkYXRhIGlzIHNhdmVkIHRvIGAkR0lUX0RJUi9jdnMtYXV0aG9yc2AKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWRlc2NyaWJlLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWRlc2NyaWJlLnR4dAppbmRleCA5NDM5Y2Q2Li5kMjBjYTQwIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1kZXNjcmliZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtZGVzY3JpYmUudHh0CkBAIC05LDcgKzksNyBAQAogU1lOT1BTSVMKIC0tLS0tLS0tCiBbdmVyc2VdCi0nZ2l0IGRlc2NyaWJlJyBbLS1hbGxdIFstLXRhZ3NdIFstLWNvbnRhaW5zXSBbLS1hYmJyZXY9PG4+XSA8Y29tbWl0dGlzaD4uLi4KKydnaXQgZGVzY3JpYmUnIFstLWFsbF0gWy0tdGFnc10gWy0tY29udGFpbnNdIFstLWFiYnJldj08bj5dIDxjb21taXQtaXNoPi4uLgogJ2dpdCBkZXNjcmliZScgWy0tYWxsXSBbLS10YWdzXSBbLS1jb250YWluc10gWy0tYWJicmV2PTxuPl0gLS1kaXJ0eVs9PG1hcms+XQogCiBERVNDUklQVElPTgpAQCAtMjYsOCArMjYsOCBAQAogCiBPUFRJT05TCiAtLS0tLS0tCi08Y29tbWl0dGlzaD4uLi46OgotCUNvbW1pdHRpc2ggb2JqZWN0IG5hbWVzIHRvIGRlc2NyaWJlLgorPGNvbW1pdC1pc2g+Li4uOjoKKwlDb21taXQtaXNoIG9iamVjdCBuYW1lcyB0byBkZXNjcmliZS4KIAogLS1kaXJ0eVs9PG1hcms+XTo6CiAJRGVzY3JpYmUgdGhlIHdvcmtpbmcgdHJlZS4KQEAgLTU3LDcgKzU3LDcgQEAKIAogLS1jYW5kaWRhdGVzPTxuPjo6CiAJSW5zdGVhZCBvZiBjb25zaWRlcmluZyBvbmx5IHRoZSAxMCBtb3N0IHJlY2VudCB0YWdzIGFzCi0JY2FuZGlkYXRlcyB0byBkZXNjcmliZSB0aGUgaW5wdXQgY29tbWl0dGlzaCBjb25zaWRlcgorCWNhbmRpZGF0ZXMgdG8gZGVzY3JpYmUgdGhlIGlucHV0IGNvbW1pdC1pc2ggY29uc2lkZXIKIAl1cCB0byA8bj4gY2FuZGlkYXRlcy4gIEluY3JlYXNpbmcgPG4+IGFib3ZlIDEwIHdpbGwgdGFrZQogCXNsaWdodGx5IGxvbmdlciBidXQgbWF5IHByb2R1Y2UgYSBtb3JlIGFjY3VyYXRlIHJlc3VsdC4KIAlBbiA8bj4gb2YgMCB3aWxsIGNhdXNlIG9ubHkgZXhhY3QgbWF0Y2hlcyB0byBiZSBvdXRwdXQuCkBAIC0xNDUsNyArMTQ1LDcgQEAKIFNFQVJDSCBTVFJBVEVHWQogLS0tLS0tLS0tLS0tLS0tCiAKLUZvciBlYWNoIGNvbW1pdHRpc2ggc3VwcGxpZWQsICdnaXQgZGVzY3JpYmUnIHdpbGwgZmlyc3QgbG9vayBmb3IKK0ZvciBlYWNoIGNvbW1pdC1pc2ggc3VwcGxpZWQsICdnaXQgZGVzY3JpYmUnIHdpbGwgZmlyc3QgbG9vayBmb3IKIGEgdGFnIHdoaWNoIHRhZ3MgZXhhY3RseSB0aGF0IGNvbW1pdC4gIEFubm90YXRlZCB0YWdzIHdpbGwgYWx3YXlzCiBiZSBwcmVmZXJyZWQgb3ZlciBsaWdodHdlaWdodCB0YWdzLCBhbmQgdGFncyB3aXRoIG5ld2VyIGRhdGVzIHdpbGwKIGFsd2F5cyBiZSBwcmVmZXJyZWQgb3ZlciB0YWdzIHdpdGggb2xkZXIgZGF0ZXMuICBJZiBhbiBleGFjdCBtYXRjaApAQCAtMTU0LDEyICsxNTQsMTIgQEAKIElmIGFuIGV4YWN0IG1hdGNoIHdhcyBub3QgZm91bmQsICdnaXQgZGVzY3JpYmUnIHdpbGwgd2FsayBiYWNrCiB0aHJvdWdoIHRoZSBjb21taXQgaGlzdG9yeSB0byBsb2NhdGUgYW4gYW5jZXN0b3IgY29tbWl0IHdoaWNoCiBoYXMgYmVlbiB0YWdnZWQuICBUaGUgYW5jZXN0b3IncyB0YWcgd2lsbCBiZSBvdXRwdXQgYWxvbmcgd2l0aCBhbgotYWJicmV2aWF0aW9uIG9mIHRoZSBpbnB1dCBjb21taXR0aXNoJ3MgU0hBLTEuIElmICctLWZpcnN0LXBhcmVudCcgd2FzCithYmJyZXZpYXRpb24gb2YgdGhlIGlucHV0IGNvbW1pdC1pc2gncyBTSEEtMS4gSWYgJy0tZmlyc3QtcGFyZW50JyB3YXMKIHNwZWNpZmllZCB0aGVuIHRoZSB3YWxrIHdpbGwgb25seSBjb25zaWRlciB0aGUgZmlyc3QgcGFyZW50IG9mIGVhY2gKIGNvbW1pdC4KIAogSWYgbXVsdGlwbGUgdGFncyB3ZXJlIGZvdW5kIGR1cmluZyB0aGUgd2FsayB0aGVuIHRoZSB0YWcgd2hpY2gKLWhhcyB0aGUgZmV3ZXN0IGNvbW1pdHMgZGlmZmVyZW50IGZyb20gdGhlIGlucHV0IGNvbW1pdHRpc2ggd2lsbCBiZQoraGFzIHRoZSBmZXdlc3QgY29tbWl0cyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5wdXQgY29tbWl0LWlzaCB3aWxsIGJlCiBzZWxlY3RlZCBhbmQgb3V0cHV0LiAgSGVyZSBmZXdlc3QgY29tbWl0cyBkaWZmZXJlbnQgaXMgZGVmaW5lZCBhcwogdGhlIG51bWJlciBvZiBjb21taXRzIHdoaWNoIHdvdWxkIGJlIHNob3duIGJ5IGBnaXQgbG9nIHRhZy4uaW5wdXRgCiB3aWxsIGJlIHRoZSBzbWFsbGVzdCBudW1iZXIgb2YgY29tbWl0cyBwb3NzaWJsZS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWRpZmYudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtZGlmZi50eHQKaW5kZXggNzhkNmQ1MC4uMzNmYmQ4YyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtZGlmZi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtZGlmZi50eHQKQEAgLTI4LDEwICsyOCwxNSBAQAogCXdvcmRzLCB0aGUgZGlmZmVyZW5jZXMgYXJlIHdoYXQgeW91IF9jb3VsZF8gdGVsbCBHaXQgdG8KIAlmdXJ0aGVyIGFkZCB0byB0aGUgaW5kZXggYnV0IHlvdSBzdGlsbCBoYXZlbid0LiAgWW91IGNhbgogCXN0YWdlIHRoZXNlIGNoYW5nZXMgYnkgdXNpbmcgbGlua2dpdDpnaXQtYWRkWzFdLgotKwotSWYgZXhhY3RseSB0d28gcGF0aHMgYXJlIGdpdmVuIGFuZCBhdCBsZWFzdCBvbmUgcG9pbnRzIG91dHNpZGUKLXRoZSBjdXJyZW50IHJlcG9zaXRvcnksICdnaXQgZGlmZicgd2lsbCBjb21wYXJlIHRoZSB0d28gZmlsZXMgLwotZGlyZWN0b3JpZXMuIFRoaXMgYmVoYXZpb3IgY2FuIGJlIGZvcmNlZCBieSAtLW5vLWluZGV4LgorCisnZ2l0IGRpZmYnIC0tbm8taW5kZXggWy0tb3B0aW9uc10gWy0tXSBbPHBhdGg+Li4uXTo6CisKKwlUaGlzIGZvcm0gaXMgdG8gY29tcGFyZSB0aGUgZ2l2ZW4gdHdvIHBhdGhzIG9uIHRoZQorCWZpbGVzeXN0ZW0uICBZb3UgY2FuIG9taXQgdGhlIGAtLW5vLWluZGV4YCBvcHRpb24gd2hlbgorCXJ1bm5pbmcgdGhlIGNvbW1hbmQgaW4gYSB3b3JraW5nIHRyZWUgY29udHJvbGxlZCBieSBHaXQgYW5kCisJYXQgbGVhc3Qgb25lIG9mIHRoZSBwYXRocyBwb2ludHMgb3V0c2lkZSB0aGUgd29ya2luZyB0cmVlLAorCW9yIHdoZW4gcnVubmluZyB0aGUgY29tbWFuZCBvdXRzaWRlIGEgd29ya2luZyB0cmVlCisJY29udHJvbGxlZCBieSBHaXQuCiAKICdnaXQgZGlmZicgWy0tb3B0aW9uc10gLS1jYWNoZWQgWzxjb21taXQ+XSBbLS1dIFs8cGF0aD4uLi5dOjoKIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtZmFzdC1pbXBvcnQudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtZmFzdC1pbXBvcnQudHh0CmluZGV4IGJmMWEwMmEuLmZkMjJhOWEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWZhc3QtaW1wb3J0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1mYXN0LWltcG9ydC50eHQKQEAgLTI1MSw3ICsyNTEsNyBAQAogSWYgdGhlIGxvY2FsIG9mZnNldCBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBzb3VyY2UgbWF0ZXJpYWwsIHVzZQogYGArMDAwMCcnLCBvciB0aGUgbW9zdCBjb21tb24gbG9jYWwgb2Zmc2V0LiAgRm9yIGV4YW1wbGUgbWFueQogb3JnYW5pemF0aW9ucyBoYXZlIGEgQ1ZTIHJlcG9zaXRvcnkgd2hpY2ggaGFzIG9ubHkgZXZlciBiZWVuIGFjY2Vzc2VkCi1ieSB1c2VycyB3aG8gYXJlIGxvY2F0ZWQgaW4gdGhlIHNhbWUgbG9jYXRpb24gYW5kIHRpbWV6b25lLiAgSW4gdGhpcworYnkgdXNlcnMgd2hvIGFyZSBsb2NhdGVkIGluIHRoZSBzYW1lIGxvY2F0aW9uIGFuZCB0aW1lIHpvbmUuICBJbiB0aGlzCiBjYXNlIGEgcmVhc29uYWJsZSBvZmZzZXQgZnJvbSBVVEMgY291bGQgYmUgYXNzdW1lZC4KICsKIFVubGlrZSB0aGUgYHJmYzI4MjJgIGZvcm1hdCwgdGhpcyBmb3JtYXQgaXMgdmVyeSBzdHJpY3QuICBBbnkKQEAgLTI3MSw3ICsyNzEsNyBAQAogc3RyaW5ncyB3aGljaCBHaXQgd2lsbCBwYXJzZSB3cm9uZywgYW5kIHlldCBjb25zaWRlciB2YWxpZC4KIFNlcmlvdXNseSBtYWxmb3JtZWQgc3RyaW5ncyB3aWxsIGJlIHJlamVjdGVkLgogKwotVW5saWtlIHRoZSBgcmF3YCBmb3JtYXQgYWJvdmUsIHRoZSB0aW1lem9uZS9VVEMgb2Zmc2V0IGluZm9ybWF0aW9uCitVbmxpa2UgdGhlIGByYXdgIGZvcm1hdCBhYm92ZSwgdGhlIHRpbWUgem9uZS9VVEMgb2Zmc2V0IGluZm9ybWF0aW9uCiBjb250YWluZWQgaW4gYW4gUkZDIDI4MjIgZGF0ZSBzdHJpbmcgaXMgdXNlZCB0byBhZGp1c3QgdGhlIGRhdGUKIHZhbHVlIHRvIFVUQyBwcmlvciB0byBzdG9yYWdlLiAgVGhlcmVmb3JlIGl0IGlzIGltcG9ydGFudCB0aGF0CiB0aGlzIGluZm9ybWF0aW9uIGJlIGFzIGFjY3VyYXRlIGFzIHBvc3NpYmxlLgpAQCAtMjg3LDEzICsyODcsMTMgQEAKIGFtYmlndWl0eSBpbiBwYXJzaW5nLgogCiBgbm93YDo6Ci0JQWx3YXlzIHVzZSB0aGUgY3VycmVudCB0aW1lIGFuZCB0aW1lem9uZS4gIFRoZSBsaXRlcmFsCisJQWx3YXlzIHVzZSB0aGUgY3VycmVudCB0aW1lIGFuZCB0aW1lIHpvbmUuICBUaGUgbGl0ZXJhbAogCWBub3dgIG11c3QgYWx3YXlzIGJlIHN1cHBsaWVkIGZvciBgPHdoZW4+YC4KICsKLVRoaXMgaXMgYSB0b3kgZm9ybWF0LiAgVGhlIGN1cnJlbnQgdGltZSBhbmQgdGltZXpvbmUgb2YgdGhpcyBzeXN0ZW0KK1RoaXMgaXMgYSB0b3kgZm9ybWF0LiAgVGhlIGN1cnJlbnQgdGltZSBhbmQgdGltZSB6b25lIG9mIHRoaXMgc3lzdGVtCiBpcyBhbHdheXMgY29waWVkIGludG8gdGhlIGlkZW50aXR5IHN0cmluZyBhdCB0aGUgdGltZSBpdCBpcyBiZWluZwogY3JlYXRlZCBieSBmYXN0LWltcG9ydC4gIFRoZXJlIGlzIG5vIHdheSB0byBzcGVjaWZ5IGEgZGlmZmVyZW50IHRpbWUgb3IKLXRpbWV6b25lLgordGltZSB6b25lLgogKwogVGhpcyBwYXJ0aWN1bGFyIGZvcm1hdCBpcyBzdXBwbGllZCBhcyBpdCdzIHNob3J0IHRvIGltcGxlbWVudCBhbmQKIG1heSBiZSB1c2VmdWwgdG8gYSBwcm9jZXNzIHRoYXQgd2FudHMgdG8gY3JlYXRlIGEgbmV3IGNvbW1pdApAQCAtMzYxLDggKzM2MSw4IEBACiAJYC0tY2F0LWJsb2ItZmRgIG9yIGBzdGRvdXRgIGlmIHVuc3BlY2lmaWVkLgogCiBgZmVhdHVyZWA6OgotCVJlcXVpcmUgdGhhdCBmYXN0LWltcG9ydCBzdXBwb3J0cyB0aGUgc3BlY2lmaWVkIGZlYXR1cmUsIG9yCi0JYWJvcnQgaWYgaXQgZG9lcyBub3QuCisJRW5hYmxlIHRoZSBzcGVjaWZpZWQgZmVhdHVyZS4gVGhpcyByZXF1aXJlcyB0aGF0IGZhc3QtaW1wb3J0CisJc3VwcG9ydHMgdGhlIHNwZWNpZmllZCBmZWF0dXJlLCBhbmQgYWJvcnRzIGlmIGl0IGRvZXMgbm90LgogCiBgb3B0aW9uYDo6CiAJU3BlY2lmeSBhbnkgb2YgdGhlIG9wdGlvbnMgbGlzdGVkIHVuZGVyIE9QVElPTlMgdGhhdCBkbyBub3QKQEAgLTM4MCw4ICszODAsOCBAQAogCSgnYXV0aG9yJyAoU1AgPG5hbWU+KT8gU1AgTFQgPGVtYWlsPiBHVCBTUCA8d2hlbj4gTEYpPwogCSdjb21taXR0ZXInIChTUCA8bmFtZT4pPyBTUCBMVCA8ZW1haWw+IEdUIFNQIDx3aGVuPiBMRgogCWRhdGEKLQkoJ2Zyb20nIFNQIDxjb21taXR0aXNoPiBMRik/Ci0JKCdtZXJnZScgU1AgPGNvbW1pdHRpc2g+IExGKT8KKwkoJ2Zyb20nIFNQIDxjb21taXQtaXNoPiBMRik/CisJKCdtZXJnZScgU1AgPGNvbW1pdC1pc2g+IExGKT8KIAkoZmlsZW1vZGlmeSB8IGZpbGVkZWxldGUgfCBmaWxlY29weSB8IGZpbGVyZW5hbWUgfCBmaWxlZGVsZXRlYWxsIHwgbm90ZW1vZGlmeSkqCiAJTEY/CiAuLi4uCkBAIC00NjAsOSArNDYwLDkgQEAKIGJlIHRoZSBmaXJzdCBhbmNlc3RvciBvZiB0aGUgbmV3IGNvbW1pdC4KIAogQXMgYExGYCBpcyBub3QgdmFsaWQgaW4gYSBHaXQgcmVmbmFtZSBvciBTSEEtMSBleHByZXNzaW9uLCBubwotcXVvdGluZyBvciBlc2NhcGluZyBzeW50YXggaXMgc3VwcG9ydGVkIHdpdGhpbiBgPGNvbW1pdHRpc2g+YC4KK3F1b3Rpbmcgb3IgZXNjYXBpbmcgc3ludGF4IGlzIHN1cHBvcnRlZCB3aXRoaW4gYDxjb21taXQtaXNoPmAuCiAKLUhlcmUgYDxjb21taXR0aXNoPmAgaXMgYW55IG9mIHRoZSBmb2xsb3dpbmc6CitIZXJlIGA8Y29tbWl0LWlzaD5gIGlzIGFueSBvZiB0aGUgZm9sbG93aW5nOgogCiAqIFRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGJyYW5jaCBhbHJlYWR5IGluIGZhc3QtaW1wb3J0J3MgaW50ZXJuYWwgYnJhbmNoCiAgIHRhYmxlLiAgSWYgZmFzdC1pbXBvcnQgZG9lc24ndCBrbm93IHRoZSBuYW1lLCBpdCdzIHRyZWF0ZWQgYXMgYSBTSEEtMQpAQCAtNTA5LDcgKzUwOSw3IEBACiBpdCBpcyBzdWdnZXN0ZWQgdGhhdCBmcm9udGVuZHMgZG8gbm90IHVzZSBtb3JlIHRoYW4gMTUgYG1lcmdlYAogY29tbWFuZHMgcGVyIGNvbW1pdDsgMTYsIGlmIHN0YXJ0aW5nIGEgbmV3LCBlbXB0eSBicmFuY2guCiAKLUhlcmUgYDxjb21taXR0aXNoPmAgaXMgYW55IG9mIHRoZSBjb21taXQgc3BlY2lmaWNhdGlvbiBleHByZXNzaW9ucworSGVyZSBgPGNvbW1pdC1pc2g+YCBpcyBhbnkgb2YgdGhlIGNvbW1pdCBzcGVjaWZpY2F0aW9uIGV4cHJlc3Npb25zCiBhbHNvIGFjY2VwdGVkIGJ5IGBmcm9tYCAoc2VlIGFib3ZlKS4KIAogYGZpbGVtb2RpZnlgCkBAIC02NzcsOCArNjc3LDggQEAKIGBub3RlbW9kaWZ5YAogXl5eXl5eXl5eXl5eCiBJbmNsdWRlZCBpbiBhIGBjb21taXRgIGA8bm90ZXNfcmVmPmAgY29tbWFuZCB0byBhZGQgYSBuZXcgbm90ZQotYW5ub3RhdGluZyBhIGA8Y29tbWl0dGlzaD5gIG9yIGNoYW5nZSB0aGlzIGFubm90YXRpb24gY29udGVudHMuCi1JbnRlcm5hbGx5IGl0IGlzIHNpbWlsYXIgdG8gZmlsZW1vZGlmeSAxMDA2NDQgb24gYDxjb21taXR0aXNoPmAKK2Fubm90YXRpbmcgYSBgPGNvbW1pdC1pc2g+YCBvciBjaGFuZ2UgdGhpcyBhbm5vdGF0aW9uIGNvbnRlbnRzLgorSW50ZXJuYWxseSBpdCBpcyBzaW1pbGFyIHRvIGZpbGVtb2RpZnkgMTAwNjQ0IG9uIGA8Y29tbWl0LWlzaD5gCiBwYXRoIChtYXliZSBzcGxpdCBpbnRvIHN1YmRpcmVjdG9yaWVzKS4gSXQncyBub3QgYWR2aXNlZCB0bwogdXNlIGFueSBvdGhlciBjb21tYW5kcyB0byB3cml0ZSB0byB0aGUgYDxub3Rlc19yZWY+YCB0cmVlIGV4Y2VwdAogYGZpbGVkZWxldGVhbGxgIHRvIGRlbGV0ZSBhbGwgZXhpc3Rpbmcgbm90ZXMgaW4gdGhpcyB0cmVlLgpAQCAtNjkxLDcgKzY5MSw3IEBACiAJY29tbWl0IHRoYXQgaXMgdG8gYmUgYW5ub3RhdGVkLgogKwogLi4uLgotCSdOJyBTUCA8ZGF0YXJlZj4gU1AgPGNvbW1pdHRpc2g+IExGCisJJ04nIFNQIDxkYXRhcmVmPiBTUCA8Y29tbWl0LWlzaD4gTEYKIC4uLi4KICsKIEhlcmUgYDxkYXRhcmVmPmAgY2FuIGJlIGVpdGhlciBhIG1hcmsgcmVmZXJlbmNlIChgOjxpZG51bT5gKQpAQCAtNzA0LDEzICs3MDQsMTMgQEAKIAljb21tYW5kLgogKwogLi4uLgotCSdOJyBTUCAnaW5saW5lJyBTUCA8Y29tbWl0dGlzaD4gTEYKKwknTicgU1AgJ2lubGluZScgU1AgPGNvbW1pdC1pc2g+IExGCiAJZGF0YQogLi4uLgogKwogU2VlIGJlbG93IGZvciBhIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIHRoZSBgZGF0YWAgY29tbWFuZC4KIAotSW4gYm90aCBmb3JtYXRzIGA8Y29tbWl0dGlzaD5gIGlzIGFueSBvZiB0aGUgY29tbWl0IHNwZWNpZmljYXRpb24KK0luIGJvdGggZm9ybWF0cyBgPGNvbW1pdC1pc2g+YCBpcyBhbnkgb2YgdGhlIGNvbW1pdCBzcGVjaWZpY2F0aW9uCiBleHByZXNzaW9ucyBhbHNvIGFjY2VwdGVkIGJ5IGBmcm9tYCAoc2VlIGFib3ZlKS4KIAogYG1hcmtgCkBAIC03NDEsNyArNzQxLDcgQEAKIAogLi4uLgogCSd0YWcnIFNQIDxuYW1lPiBMRgotCSdmcm9tJyBTUCA8Y29tbWl0dGlzaD4gTEYKKwknZnJvbScgU1AgPGNvbW1pdC1pc2g+IExGCiAJJ3RhZ2dlcicgKFNQIDxuYW1lPik/IFNQIExUIDxlbWFpbD4gR1QgU1AgPHdoZW4+IExGCiAJZGF0YQogLi4uLgpAQCAtNzg2LDExICs3ODYsMTEgQEAKIAogLi4uLgogCSdyZXNldCcgU1AgPHJlZj4gTEYKLQkoJ2Zyb20nIFNQIDxjb21taXR0aXNoPiBMRik/CisJKCdmcm9tJyBTUCA8Y29tbWl0LWlzaD4gTEYpPwogCUxGPwogLi4uLgogCi1Gb3IgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiBgPHJlZj5gIGFuZCBgPGNvbW1pdHRpc2g+YCBzZWUgYWJvdmUKK0ZvciBhIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIGA8cmVmPmAgYW5kIGA8Y29tbWl0LWlzaD5gIHNlZSBhYm92ZQogdW5kZXIgYGNvbW1pdGAgYW5kIGBmcm9tYC4KIAogVGhlIGBMRmAgYWZ0ZXIgdGhlIGNvbW1hbmQgaXMgb3B0aW9uYWwgKGl0IHVzZWQgdG8gYmUgcmVxdWlyZWQpLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtZmV0Y2gtcGFjay50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1mZXRjaC1wYWNrLnR4dAppbmRleCAxZTcxNzU0Li45M2I1MDY3IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1mZXRjaC1wYWNrLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1mZXRjaC1wYWNrLnR4dApAQCAtMTIsNyArMTIsNyBAQAogJ2dpdCBmZXRjaC1wYWNrJyBbLS1hbGxdIFstLXF1aWV0fC1xXSBbLS1rZWVwfC1rXSBbLS10aGluXSBbLS1pbmNsdWRlLXRhZ10KIAlbLS11cGxvYWQtcGFjaz08Z2l0LXVwbG9hZC1wYWNrPl0KIAlbLS1kZXB0aD08bj5dIFstLW5vLXByb2dyZXNzXQotCVstdl0gWzxob3N0PjpdPGRpcmVjdG9yeT4gWzxyZWZzPi4uLl0KKwlbLXZdIDxyZXBvc2l0b3J5PiBbPHJlZnM+Li4uXQogCiBERVNDUklQVElPTgogLS0tLS0tLS0tLS0KQEAgLTkwLDIyICs5MCwyNSBAQAogLS1uby1wcm9ncmVzczo6CiAJRG8gbm90IHNob3cgdGhlIHByb2dyZXNzLgogCistLWNoZWNrLXNlbGYtY29udGFpbmVkLWFuZC1jb25uZWN0ZWQ6OgorCU91dHB1dCAiY29ubmVjdGl2aXR5LW9rIiBpZiB0aGUgcmVjZWl2ZWQgcGFjayBpcworCXNlbGYtY29udGFpbmVkIGFuZCBjb25uZWN0ZWQuCisKIC12OjoKIAlSdW4gdmVyYm9zZWx5LgogCi08aG9zdD46OgotCUEgcmVtb3RlIGhvc3QgdGhhdCBob3VzZXMgdGhlIHJlcG9zaXRvcnkuICBXaGVuIHRoaXMKLQlwYXJ0IGlzIHNwZWNpZmllZCwgJ2dpdC11cGxvYWQtcGFjaycgaXMgaW52b2tlZCB2aWEKLQlzc2guCi0KLTxkaXJlY3Rvcnk+OjoKLQlUaGUgcmVwb3NpdG9yeSB0byBzeW5jIGZyb20uCis8cmVwb3NpdG9yeT46OgorCVRoZSBVUkwgdG8gdGhlIHJlbW90ZSByZXBvc2l0b3J5LgogCiA8cmVmcz4uLi46OgogCVRoZSByZW1vdGUgaGVhZHMgdG8gdXBkYXRlIGZyb20uIFRoaXMgaXMgcmVsYXRpdmUgdG8KIAkkR0lUX0RJUiAoZS5nLiAiSEVBRCIsICJyZWZzL2hlYWRzL21hc3RlciIpLiAgV2hlbgogCXVuc3BlY2lmaWVkLCB1cGRhdGUgZnJvbSBhbGwgaGVhZHMgdGhlIHJlbW90ZSBzaWRlIGhhcy4KIAorU0VFIEFMU08KKy0tLS0tLS0tCitsaW5rZ2l0OmdpdC1mZXRjaFsxXQorCiBHSVQKIC0tLQogUGFydCBvZiB0aGUgbGlua2dpdDpnaXRbMV0gc3VpdGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWZldGNoLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWZldGNoLnR4dAppbmRleCBlMDhhMDI4Li41ODA5YWE0IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1mZXRjaC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtZmV0Y2gudHh0CkBAIC0yNCwxOSArMjQsMjIgQEAKIGluIGAuZ2l0L0ZFVENIX0hFQURgLiAgVGhpcyBpbmZvcm1hdGlvbiBpcyBsZWZ0IGZvciBhIGxhdGVyIG1lcmdlCiBvcGVyYXRpb24gZG9uZSBieSAnZ2l0IG1lcmdlJy4KIAotV2hlbiA8cmVmc3BlYz4gc3RvcmVzIHRoZSBmZXRjaGVkIHJlc3VsdCBpbiByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMsCi10aGUgdGFncyB0aGF0IHBvaW50IGF0IHRoZXNlIGJyYW5jaGVzIGFyZSBhdXRvbWF0aWNhbGx5Ci1mb2xsb3dlZC4gIFRoaXMgaXMgZG9uZSBieSBmaXJzdCBmZXRjaGluZyBmcm9tIHRoZSByZW1vdGUgdXNpbmcKLXRoZSBnaXZlbiA8cmVmc3BlYz5zLCBhbmQgaWYgdGhlIHJlcG9zaXRvcnkgaGFzIG9iamVjdHMgdGhhdCBhcmUKLXBvaW50ZWQgYnkgcmVtb3RlIHRhZ3MgdGhhdCBpdCBkb2VzIG5vdCB5ZXQgaGF2ZSwgdGhlbiBmZXRjaAotdGhvc2UgbWlzc2luZyB0YWdzLiAgSWYgdGhlIG90aGVyIGVuZCBoYXMgdGFncyB0aGF0IHBvaW50IGF0Ci1icmFuY2hlcyB5b3UgYXJlIG5vdCBpbnRlcmVzdGVkIGluLCB5b3Ugd2lsbCBub3QgZ2V0IHRoZW0uCitCeSBkZWZhdWx0LCB0YWdzIGFyZSBhdXRvLWZvbGxvd2VkLiAgVGhpcyBtZWFucyB0aGF0IHdoZW4gZmV0Y2hpbmcKK2Zyb20gYSByZW1vdGUsIGFueSB0YWdzIG9uIHRoZSByZW1vdGUgdGhhdCBwb2ludCB0byBvYmplY3RzIHRoYXQgZXhpc3QKK2luIHRoZSBsb2NhbCByZXBvc2l0b3J5IGFyZSBmZXRjaGVkLiAgVGhlIGVmZmVjdCBpcyB0byBmZXRjaCB0YWdzIHRoYXQKK3BvaW50IGF0IGJyYW5jaGVzIHRoYXQgeW91IGFyZSBpbnRlcmVzdGVkIGluLiAgVGhpcyBkZWZhdWx0IGJlaGF2aW9yCitjYW4gYmUgY2hhbmdlZCBieSB1c2luZyB0aGUgLS10YWdzIG9yIC0tbm8tdGFncyBvcHRpb25zLCBieQorY29uZmlndXJpbmcgcmVtb3RlLjxuYW1lPi50YWdvcHQsIG9yIGJ5IHVzaW5nIGEgcmVmc3BlYyB0aGF0IGZldGNoZXMKK3RhZ3MgZXhwbGljaXRseS4KIAogJ2dpdCBmZXRjaCcgY2FuIGZldGNoIGZyb20gZWl0aGVyIGEgc2luZ2xlIG5hbWVkIHJlcG9zaXRvcnksCiBvciBmcm9tIHNldmVyYWwgcmVwb3NpdG9yaWVzIGF0IG9uY2UgaWYgPGdyb3VwPiBpcyBnaXZlbiBhbmQKIHRoZXJlIGlzIGEgcmVtb3Rlcy48Z3JvdXA+IGVudHJ5IGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuCiAoU2VlIGxpbmtnaXQ6Z2l0LWNvbmZpZ1sxXSkuCiAKK1doZW4gbm8gcmVtb3RlIGlzIHNwZWNpZmllZCwgYnkgZGVmYXVsdCB0aGUgYG9yaWdpbmAgcmVtb3RlIHdpbGwgYmUgdXNlZCwKK3VubGVzcyB0aGVyZSdzIGFuIHVwc3RyZWFtIGJyYW5jaCBjb25maWd1cmVkIGZvciB0aGUgY3VycmVudCBicmFuY2guCisKIE9QVElPTlMKIC0tLS0tLS0KIGluY2x1ZGU6OmZldGNoLW9wdGlvbnMudHh0W10KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWZpbHRlci1icmFuY2gudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtZmlsdGVyLWJyYW5jaC50eHQKaW5kZXggZTRjOGU4Mi4uMmViYTYyNyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtZmlsdGVyLWJyYW5jaC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtZmlsdGVyLWJyYW5jaC50eHQKQEAgLTM5Myw3ICszOTMsNyBAQAogQ2hlY2tsaXN0IGZvciBTaHJpbmtpbmcgYSBSZXBvc2l0b3J5CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotZ2l0LWZpbHRlci1icmFuY2ggaXMgb2Z0ZW4gdXNlZCB0byBnZXQgcmlkIG9mIGEgc3Vic2V0IG9mIGZpbGVzLAorZ2l0LWZpbHRlci1icmFuY2ggY2FuIGJlIHVzZWQgdG8gZ2V0IHJpZCBvZiBhIHN1YnNldCBvZiBmaWxlcywKIHVzdWFsbHkgd2l0aCBzb21lIGNvbWJpbmF0aW9uIG9mIGAtLWluZGV4LWZpbHRlcmAgYW5kCiBgLS1zdWJkaXJlY3RvcnktZmlsdGVyYC4gIFBlb3BsZSBleHBlY3QgdGhlIHJlc3VsdGluZyByZXBvc2l0b3J5IHRvCiBiZSBzbWFsbGVyIHRoYW4gdGhlIG9yaWdpbmFsLCBidXQgeW91IG5lZWQgYSBmZXcgbW9yZSBzdGVwcyB0bwpAQCAtNDI5LDYgKzQyOSwzNyBAQAogICAob3IgaWYgeW91ciBnaXQtZ2MgaXMgbm90IG5ldyBlbm91Z2ggdG8gc3VwcG9ydCBhcmd1bWVudHMgdG8KICAgYC0tcHJ1bmVgLCB1c2UgYGdpdCByZXBhY2sgLWFkOyBnaXQgcHJ1bmVgIGluc3RlYWQpLgogCitOb3RlcworLS0tLS0KKworZ2l0LWZpbHRlci1icmFuY2ggYWxsb3dzIHlvdSB0byBtYWtlIGNvbXBsZXggc2hlbGwtc2NyaXB0ZWQgcmV3cml0ZXMKK29mIHlvdXIgR2l0IGhpc3RvcnksIGJ1dCB5b3UgcHJvYmFibHkgZG9uJ3QgbmVlZCB0aGlzIGZsZXhpYmlsaXR5IGlmCit5b3UncmUgc2ltcGx5IF9yZW1vdmluZyB1bndhbnRlZCBkYXRhXyBsaWtlIGxhcmdlIGZpbGVzIG9yIHBhc3N3b3Jkcy4KK0ZvciB0aG9zZSBvcGVyYXRpb25zIHlvdSBtYXkgd2FudCB0byBjb25zaWRlcgorbGluazpodHRwOi8vcnR5bGV5LmdpdGh1Yi5pby9iZmctcmVwby1jbGVhbmVyL1tUaGUgQkZHIFJlcG8tQ2xlYW5lcl0sCithIEpWTS1iYXNlZCBhbHRlcm5hdGl2ZSB0byBnaXQtZmlsdGVyLWJyYW5jaCwgdHlwaWNhbGx5IGF0IGxlYXN0CisxMC01MHggZmFzdGVyIGZvciB0aG9zZSB1c2UtY2FzZXMsIGFuZCB3aXRoIHF1aXRlIGRpZmZlcmVudAorY2hhcmFjdGVyaXN0aWNzOgorCisqIEFueSBwYXJ0aWN1bGFyIHZlcnNpb24gb2YgYSBmaWxlIGlzIGNsZWFuZWQgZXhhY3RseSBfb25jZV8uIFRoZSBCRkcsCisgIHVubGlrZSBnaXQtZmlsdGVyLWJyYW5jaCwgZG9lcyBub3QgZ2l2ZSB5b3UgdGhlIG9wcG9ydHVuaXR5IHRvCisgIGhhbmRsZSBhIGZpbGUgZGlmZmVyZW50bHkgYmFzZWQgb24gd2hlcmUgb3Igd2hlbiBpdCB3YXMgY29tbWl0dGVkCisgIHdpdGhpbiB5b3VyIGhpc3RvcnkuIFRoaXMgY29uc3RyYWludCBnaXZlcyB0aGUgY29yZSBwZXJmb3JtYW5jZQorICBiZW5lZml0IG9mIFRoZSBCRkcsIGFuZCBpcyB3ZWxsLXN1aXRlZCB0byB0aGUgdGFzayBvZiBjbGVhbnNpbmcgYmFkCisgIGRhdGEgLSB5b3UgZG9uJ3QgY2FyZSBfd2hlcmVfIHRoZSBiYWQgZGF0YSBpcywgeW91IGp1c3Qgd2FudCBpdAorICBfZ29uZV8uCisKKyogQnkgZGVmYXVsdCBUaGUgQkZHIHRha2VzIGZ1bGwgYWR2YW50YWdlIG9mIG11bHRpLWNvcmUgbWFjaGluZXMsCisgIGNsZWFuc2luZyBjb21taXQgZmlsZS10cmVlcyBpbiBwYXJhbGxlbC4gZ2l0LWZpbHRlci1icmFuY2ggY2xlYW5zCisgIGNvbW1pdHMgc2VxdWVudGlhbGx5IChpZSBpbiBhIHNpbmdsZS10aHJlYWRlZCBtYW5uZXIpLCB0aG91Z2ggaXQKKyAgX2lzXyBwb3NzaWJsZSB0byB3cml0ZSBmaWx0ZXJzIHRoYXQgaW5jbHVkZSB0aGVpciBvd24gcGFyYWxsZWxsaXNtLAorICBpbiB0aGUgc2NyaXB0cyBleGVjdXRlZCBhZ2FpbnN0IGVhY2ggY29tbWl0LgorCisqIFRoZSBsaW5rOmh0dHA6Ly9ydHlsZXkuZ2l0aHViLmlvL2JmZy1yZXBvLWNsZWFuZXIvI2V4YW1wbGVzW2NvbW1hbmQgb3B0aW9uc10KKyAgYXJlIG11Y2ggbW9yZSByZXN0cmljdGl2ZSB0aGFuIGdpdC1maWx0ZXIgYnJhbmNoLCBhbmQgZGVkaWNhdGVkIGp1c3QKKyAgdG8gdGhlIHRhc2tzIG9mIHJlbW92aW5nIHVud2FudGVkIGRhdGEtIGUuZzoKKyAgYC0tc3RyaXAtYmxvYnMtYmlnZ2VyLXRoYW4gMU1gLgorCiBHSVQKIC0tLQogUGFydCBvZiB0aGUgbGlua2dpdDpnaXRbMV0gc3VpdGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWZvci1lYWNoLXJlZi50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1mb3ItZWFjaC1yZWYudHh0CmluZGV4IGYyZTA4ZDEuLjQyNDA4NzUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWZvci1lYWNoLXJlZi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtZm9yLWVhY2gtcmVmLnR4dApAQCAtOTEsNyArOTEsMTkgQEAKIHVwc3RyZWFtOjoKIAlUaGUgbmFtZSBvZiBhIGxvY2FsIHJlZiB3aGljaCBjYW4gYmUgY29uc2lkZXJlZCBgYHVwc3RyZWFtJycKIAlmcm9tIHRoZSBkaXNwbGF5ZWQgcmVmLiBSZXNwZWN0cyBgOnNob3J0YCBpbiB0aGUgc2FtZSB3YXkgYXMKLQlgcmVmbmFtZWAgYWJvdmUuCisJYHJlZm5hbWVgIGFib3ZlLiAgQWRkaXRpb25hbGx5IHJlc3BlY3RzIGA6dHJhY2tgIHRvIHNob3cKKwkiW2FoZWFkIE4sIGJlaGluZCBNXSIgYW5kIGA6dHJhY2tzaG9ydGAgdG8gc2hvdyB0aGUgdGVyc2UKKwl2ZXJzaW9uOiAiPiIgKGFoZWFkKSwgIjwiIChiZWhpbmQpLCAiPD4iIChhaGVhZCBhbmQgYmVoaW5kKSwKKwlvciAiPSIgKGluIHN5bmMpLiAgSGFzIG5vIGVmZmVjdCBpZiB0aGUgcmVmIGRvZXMgbm90IGhhdmUKKwl0cmFja2luZyBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuCisKK0hFQUQ6OgorCScqJyBpZiBIRUFEIG1hdGNoZXMgY3VycmVudCByZWYgKHRoZSBjaGVja2VkIG91dCBicmFuY2gpLCAnICcKKwlvdGhlcndpc2UuCisKK2NvbG9yOjoKKwlDaGFuZ2Ugb3V0cHV0IGNvbG9yLiAgRm9sbG93ZWQgYnkgYDo8Y29sb3JuYW1lPmAsIHdoZXJlIG5hbWVzCisJYXJlIGRlc2NyaWJlZCBpbiBgY29sb3IuYnJhbmNoLipgLgogCiBJbiBhZGRpdGlvbiB0byB0aGUgYWJvdmUsIGZvciBjb21taXQgYW5kIHRhZyBvYmplY3RzLCB0aGUgaGVhZGVyCiBmaWVsZCBuYW1lcyAoYHRyZWVgLCBgcGFyZW50YCwgYG9iamVjdGAsIGB0eXBlYCwgYW5kIGB0YWdgKSBjYW4KQEAgLTIwNywxMyArMjE5LDkgQEAKIGV2YWwgIiRldmFsIgogLS0tLS0tLS0tLS0tCiAKLUF1dGhvcgotLS0tLS0tCi1Xcml0dGVuIGJ5IEp1bmlvIEMgSGFtYW5vIDxnaXRzdGVyQHBvYm94LmNvbT4uCi0KLURvY3VtZW50YXRpb24KLS0tLS0tLS0tLS0tLS0KLURvY3VtZW50YXRpb24gYnkgSnVuaW8gQyBIYW1hbm8gYW5kIHRoZSBnaXQtbGlzdCA8Z2l0QHZnZXIua2VybmVsLm9yZz4uCitTRUUgQUxTTworLS0tLS0tLS0KK2xpbmtnaXQ6Z2l0LXNob3ctcmVmWzFdCiAKIEdJVAogLS0tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1mb3JtYXQtcGF0Y2gudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtZm9ybWF0LXBhdGNoLnR4dAppbmRleCBlMzk0Mjc2Li41YzBhNGFiIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1mb3JtYXQtcGF0Y2gudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWZvcm1hdC1wYXRjaC50eHQKQEAgLTI0Miw2ICsyNDIsNyBAQAogTm90ZSB0aGF0IHRoZSBsZWFkaW5nIGNoYXJhY3RlciBkb2VzIG5vdCBoYXZlIHRvIGJlIGEgZG90OyBmb3IgZXhhbXBsZSwKIHlvdSBjYW4gdXNlIGAtLXN1ZmZpeD0tcGF0Y2hgIHRvIGdldCBgMDAwMS1kZXNjcmlwdGlvbi1vZi1teS1jaGFuZ2UtcGF0Y2hgLgogCistcTo6CiAtLXF1aWV0OjoKIAlEbyBub3QgcHJpbnQgdGhlIG5hbWVzIG9mIHRoZSBnZW5lcmF0ZWQgZmlsZXMgdG8gc3RhbmRhcmQgb3V0cHV0LgogCkBAIC00MzcsNyArNDM4LDggQEAKIEluIFRodW5kZXJiaXJkIDM6CiBFZGl0Li5QcmVmZXJlbmNlcy4uQWR2YW5jZWQuLkNvbmZpZyBFZGl0b3IuICBTZWFyY2ggZm9yCiAibWFpbC53cmFwX2xvbmdfbGluZXMiLgotVG9nZ2xlIGl0IHRvIG1ha2Ugc3VyZSBpdCBpcyBzZXQgdG8gYGZhbHNlYC4KK1RvZ2dsZSBpdCB0byBtYWtlIHN1cmUgaXQgaXMgc2V0IHRvIGBmYWxzZWAuIEFsc28sIHNlYXJjaCBmb3IKKyJtYWlsbmV3cy53cmFwbGVuZ3RoIiBhbmQgc2V0IHRoZSB2YWx1ZSB0byAwLgogCiAzLiBEaXNhYmxlIHRoZSB1c2Ugb2YgZm9ybWF0PWZsb3dlZDoKIEVkaXQuLlByZWZlcmVuY2VzLi5BZHZhbmNlZC4uQ29uZmlnIEVkaXRvci4gIFNlYXJjaCBmb3IKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWdjLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWdjLnR4dAppbmRleCAyNDAyZWQ2Li5lMTU4YTNiIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1nYy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtZ2MudHh0CkBAIC05LDcgKzksNyBAQAogU1lOT1BTSVMKIC0tLS0tLS0tCiBbdmVyc2VdCi0nZ2l0IGdjJyBbLS1hZ2dyZXNzaXZlXSBbLS1hdXRvXSBbLS1xdWlldF0gWy0tcHJ1bmU9PGRhdGU+IHwgLS1uby1wcnVuZV0KKydnaXQgZ2MnIFstLWFnZ3Jlc3NpdmVdIFstLWF1dG9dIFstLXF1aWV0XSBbLS1wcnVuZT08ZGF0ZT4gfCAtLW5vLXBydW5lXSBbLS1mb3JjZV0KIAogREVTQ1JJUFRJT04KIC0tLS0tLS0tLS0tCkBAIC03Miw2ICs3MiwxMCBAQAogLS1xdWlldDo6CiAJU3VwcHJlc3MgYWxsIHByb2dyZXNzIHJlcG9ydHMuCiAKKy0tZm9yY2U6OgorCUZvcmNlIGBnaXQgZ2NgIHRvIHJ1biBldmVuIGlmIHRoZXJlIG1heSBiZSBhbm90aGVyIGBnaXQgZ2NgCisJaW5zdGFuY2UgcnVubmluZyBvbiB0aGlzIHJlcG9zaXRvcnkuCisKIENvbmZpZ3VyYXRpb24KIC0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtZ3JlcC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1ncmVwLnR4dAppbmRleCA4NDk3YWE0Li5mODM3MzM0IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1ncmVwLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1ncmVwLnR4dApAQCAtOSw3ICs5LDcgQEAKIFNZTk9QU0lTCiAtLS0tLS0tLQogW3ZlcnNlXQotJ2dpdCBncmVwJyBbLWEgfCAtLXRleHRdIFstSV0gWy1pIHwgLS1pZ25vcmUtY2FzZV0gWy13IHwgLS13b3JkLXJlZ2V4cF0KKydnaXQgZ3JlcCcgWy1hIHwgLS10ZXh0XSBbLUldIFstLXRleHRjb252XSBbLWkgfCAtLWlnbm9yZS1jYXNlXSBbLXcgfCAtLXdvcmQtcmVnZXhwXQogCSAgIFstdiB8IC0taW52ZXJ0LW1hdGNoXSBbLWh8LUhdIFstLWZ1bGwtbmFtZV0KIAkgICBbLUUgfCAtLWV4dGVuZGVkLXJlZ2V4cF0gWy1HIHwgLS1iYXNpYy1yZWdleHBdCiAJICAgWy1QIHwgLS1wZXJsLXJlZ2V4cF0KQEAgLTgwLDYgKzgwLDEzIEBACiAtLXRleHQ6OgogCVByb2Nlc3MgYmluYXJ5IGZpbGVzIGFzIGlmIHRoZXkgd2VyZSB0ZXh0LgogCistLXRleHRjb252OjoKKwlIb25vciB0ZXh0Y29udiBmaWx0ZXIgc2V0dGluZ3MuCisKKy0tbm8tdGV4dGNvbnY6OgorCURvIG5vdCBob25vciB0ZXh0Y29udiBmaWx0ZXIgc2V0dGluZ3MuCisJVGhpcyBpcyB0aGUgZGVmYXVsdC4KKwogLWk6OgogLS1pZ25vcmUtY2FzZTo6CiAJSWdub3JlIGNhc2UgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgcGF0dGVybnMgYW5kIHRoZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtaHR0cC1iYWNrZW5kLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWh0dHAtYmFja2VuZC50eHQKaW5kZXggZTNiY2RiNS4uZThjMTNmNiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtaHR0cC1iYWNrZW5kLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1odHRwLWJhY2tlbmQudHh0CkBAIC0yNjMsMTQgKzI2Myw2IEBACiBBbGwgQ0dJIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIGVhY2ggb2YgdGhlIGhvb2tzCiBpbnZva2VkIGJ5IHRoZSAnZ2l0LXJlY2VpdmUtcGFjaycuCiAKLUF1dGhvcgotLS0tLS0tCi1Xcml0dGVuIGJ5IFNoYXduIE8uIFBlYXJjZSA8c3BlYXJjZUBzcGVhcmNlLm9yZz4uCi0KLURvY3VtZW50YXRpb24KLS0tLS0tLS0tLS0tLS0tCi1Eb2N1bWVudGF0aW9uIGJ5IFNoYXduIE8uIFBlYXJjZSA8c3BlYXJjZUBzcGVhcmNlLm9yZz4uCi0KIEdJVAogLS0tCiBQYXJ0IG9mIHRoZSBsaW5rZ2l0OmdpdFsxXSBzdWl0ZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtbG9nLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWxvZy50eHQKaW5kZXggYWMyNjk0ZC4uMWY3YmM2NyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtbG9nLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1sb2cudHh0CkBAIC0xNSw5ICsxNSw5IEBACiAtLS0tLS0tLS0tLQogU2hvd3MgdGhlIGNvbW1pdCBsb2dzLgogCi1UaGUgY29tbWFuZCB0YWtlcyBvcHRpb25zIGFwcGxpY2FibGUgdG8gdGhlICdnaXQgcmV2LWxpc3QnCitUaGUgY29tbWFuZCB0YWtlcyBvcHRpb25zIGFwcGxpY2FibGUgdG8gdGhlIGBnaXQgcmV2LWxpc3RgCiBjb21tYW5kIHRvIGNvbnRyb2wgd2hhdCBpcyBzaG93biBhbmQgaG93LCBhbmQgb3B0aW9ucyBhcHBsaWNhYmxlIHRvCi10aGUgJ2dpdCBkaWZmLSonIGNvbW1hbmRzIHRvIGNvbnRyb2wgaG93IHRoZSBjaGFuZ2VzCit0aGUgYGdpdCBkaWZmLSpgIGNvbW1hbmRzIHRvIGNvbnRyb2wgaG93IHRoZSBjaGFuZ2VzCiBlYWNoIGNvbW1pdCBpbnRyb2R1Y2VzIGFyZSBzaG93bi4KIAogCkBAIC00MiwyOCArNDIsMjcgQEAKIAogLS11c2UtbWFpbG1hcDo6CiAJVXNlIG1haWxtYXAgZmlsZSB0byBtYXAgYXV0aG9yIGFuZCBjb21taXR0ZXIgbmFtZXMgYW5kIGVtYWlsCi0JdG8gY2Fub25pY2FsIHJlYWwgbmFtZXMgYW5kIGVtYWlsIGFkZHJlc3Nlcy4gU2VlCisJYWRkcmVzc2VzIHRvIGNhbm9uaWNhbCByZWFsIG5hbWVzIGFuZCBlbWFpbCBhZGRyZXNzZXMuIFNlZQogCWxpbmtnaXQ6Z2l0LXNob3J0bG9nWzFdLgogCiAtLWZ1bGwtZGlmZjo6Ci0JV2l0aG91dCB0aGlzIGZsYWcsICJnaXQgbG9nIC1wIDxwYXRoPi4uLiIgc2hvd3MgY29tbWl0cyB0aGF0CisJV2l0aG91dCB0aGlzIGZsYWcsIGBnaXQgbG9nIC1wIDxwYXRoPi4uLmAgc2hvd3MgY29tbWl0cyB0aGF0CiAJdG91Y2ggdGhlIHNwZWNpZmllZCBwYXRocywgYW5kIGRpZmZzIGFib3V0IHRoZSBzYW1lIHNwZWNpZmllZAogCXBhdGhzLiAgV2l0aCB0aGlzLCB0aGUgZnVsbCBkaWZmIGlzIHNob3duIGZvciBjb21taXRzIHRoYXQgdG91Y2gKIAl0aGUgc3BlY2lmaWVkIHBhdGhzOyB0aGlzIG1lYW5zIHRoYXQgIjxwYXRoPi4uLiIgbGltaXRzIG9ubHkKIAljb21taXRzLCBhbmQgZG9lc24ndCBsaW1pdCBkaWZmIGZvciB0aG9zZSBjb21taXRzLgogKwogTm90ZSB0aGF0IHRoaXMgYWZmZWN0cyBhbGwgZGlmZi1iYXNlZCBvdXRwdXQgdHlwZXMsIGUuZy4gdGhvc2UKLXByb2R1Y2VkIGJ5IC0tc3RhdCBldGMuCitwcm9kdWNlZCBieSBgLS1zdGF0YCwgZXRjLgogCiAtLWxvZy1zaXplOjoKLQlCZWZvcmUgdGhlIGxvZyBtZXNzYWdlIHByaW50IG91dCBpdHMgc2l6ZSBpbiBieXRlcy4gSW50ZW5kZWQKLQltYWlubHkgZm9yIHBvcmNlbGFpbiB0b29scyBjb25zdW1wdGlvbi4gSWYgR2l0IGlzIHVuYWJsZSB0bwotCXByb2R1Y2UgYSB2YWxpZCB2YWx1ZSBzaXplIGlzIHNldCB0byB6ZXJvLgotCU5vdGUgdGhhdCBvbmx5IG1lc3NhZ2UgaXMgY29uc2lkZXJlZCwgaWYgYWxzbyBhIGRpZmYgaXMgc2hvd24KLQlpdHMgc2l6ZSBpcyBub3QgaW5jbHVkZWQuCisJSW5jbHVkZSBhIGxpbmUgYGBsb2cgc2l6ZSA8bnVtYmVyPicnIGluIHRoZSBvdXRwdXQgZm9yIGVhY2ggY29tbWl0LAorCXdoZXJlIDxudW1iZXI+IGlzIHRoZSBsZW5ndGggb2YgdGhhdCBjb21taXQncyBtZXNzYWdlIGluIGJ5dGVzLgorCUludGVuZGVkIHRvIHNwZWVkIHVwIHRvb2xzIHRoYXQgcmVhZCBsb2cgbWVzc2FnZXMgZnJvbSBgZ2l0IGxvZ2AKKwlvdXRwdXQgYnkgYWxsb3dpbmcgdGhlbSB0byBhbGxvY2F0ZSBzcGFjZSBpbiBhZHZhbmNlLgogCi0tTCA8c3RhcnQ+LDxlbmQ+OjxmaWxlPiwgLUwgOjxyZWdleD46PGZpbGU+OjoKLQorLUwgPHN0YXJ0Piw8ZW5kPjo8ZmlsZT46OgorLUwgOjxyZWdleD46PGZpbGU+OjoKIAlUcmFjZSB0aGUgZXZvbHV0aW9uIG9mIHRoZSBsaW5lIHJhbmdlIGdpdmVuIGJ5ICI8c3RhcnQ+LDxlbmQ+IgogCShvciB0aGUgZnVuY25hbWUgcmVnZXggPHJlZ2V4Pikgd2l0aGluIHRoZSA8ZmlsZT4uICBZb3UgbWF5CiAJbm90IGdpdmUgYW55IHBhdGhzcGVjIGxpbWl0ZXJzLiAgVGhpcyBpcyBjdXJyZW50bHkgbGltaXRlZCB0bwpAQCAtNzEsOCArNzAsNiBAQAogCWdpdmUgemVybyBvciBvbmUgcG9zaXRpdmUgcmV2aXNpb24gYXJndW1lbnRzLgogCVlvdSBjYW4gc3BlY2lmeSB0aGlzIG9wdGlvbiBtb3JlIHRoYW4gb25jZS4KICsKLTxzdGFydD4gYW5kIDxlbmQ+IGNhbiB0YWtlIG9uZSBvZiB0aGVzZSBmb3JtczoKLQogaW5jbHVkZTo6bGluZS1yYW5nZS1mb3JtYXQudHh0W10KIAogPHJldmlzaW9uIHJhbmdlPjo6CkBAIC04MSwxNiArNzgsMTYgQEAKIAl3aG9sZSBoaXN0b3J5IGxlYWRpbmcgdG8gdGhlIGN1cnJlbnQgY29tbWl0KS4gIGBvcmlnaW4uLkhFQURgCiAJc3BlY2lmaWVzIGFsbCB0aGUgY29tbWl0cyByZWFjaGFibGUgZnJvbSB0aGUgY3VycmVudCBjb21taXQKIAkoaS5lLiBgSEVBRGApLCBidXQgbm90IGZyb20gYG9yaWdpbmAuIEZvciBhIGNvbXBsZXRlIGxpc3Qgb2YKLQl3YXlzIHRvIHNwZWxsIDxyZXZpc2lvbiByYW5nZT4sIHNlZSB0aGUgIlNwZWNpZnlpbmcgUmFuZ2VzIgorCXdheXMgdG8gc3BlbGwgPHJldmlzaW9uIHJhbmdlPiwgc2VlIHRoZSAnU3BlY2lmeWluZyBSYW5nZXMnCiAJc2VjdGlvbiBvZiBsaW5rZ2l0OmdpdHJldmlzaW9uc1s3XS4KIAogW1wtLV0gPHBhdGg+Li4uOjoKIAlTaG93IG9ubHkgY29tbWl0cyB0aGF0IGFyZSBlbm91Z2ggdG8gZXhwbGFpbiBob3cgdGhlIGZpbGVzCi0JdGhhdCBtYXRjaCB0aGUgc3BlY2lmaWVkIHBhdGhzIGNhbWUgdG8gYmUuICBTZWUgIkhpc3RvcnkKLQlTaW1wbGlmaWNhdGlvbiIgYmVsb3cgZm9yIGRldGFpbHMgYW5kIG90aGVyIHNpbXBsaWZpY2F0aW9uCisJdGhhdCBtYXRjaCB0aGUgc3BlY2lmaWVkIHBhdGhzIGNhbWUgdG8gYmUuICBTZWUgJ0hpc3RvcnkKKwlTaW1wbGlmaWNhdGlvbicgYmVsb3cgZm9yIGRldGFpbHMgYW5kIG90aGVyIHNpbXBsaWZpY2F0aW9uCiAJbW9kZXMuCiArCi1QYXRocyBtYXkgbmVlZCB0byBiZSBwcmVmaXhlZCB3aXRoICJcLS0gIiB0byBzZXBhcmF0ZSB0aGVtIGZyb20KK1BhdGhzIG1heSBuZWVkIHRvIGJlIHByZWZpeGVkIHdpdGggYGBcLS0gJycgdG8gc2VwYXJhdGUgdGhlbSBmcm9tCiBvcHRpb25zIG9yIHRoZSByZXZpc2lvbiByYW5nZSwgd2hlbiBjb25mdXNpb24gYXJpc2VzLgogCiBpbmNsdWRlOjpyZXYtbGlzdC1vcHRpb25zLnR4dFtdCkBAIC0xMTQsMTIgKzExMSwxMiBAQAogYGdpdCBsb2cgdjIuNi4xMi4uIGluY2x1ZGUvc2NzaSBkcml2ZXJzL3Njc2lgOjoKIAogCVNob3cgYWxsIGNvbW1pdHMgc2luY2UgdmVyc2lvbiAndjIuNi4xMicgdGhhdCBjaGFuZ2VkIGFueSBmaWxlCi0JaW4gdGhlIGluY2x1ZGUvc2NzaSBvciBkcml2ZXJzL3Njc2kgc3ViZGlyZWN0b3JpZXMKKwlpbiB0aGUgYGluY2x1ZGUvc2NzaWAgb3IgYGRyaXZlcnMvc2NzaWAgc3ViZGlyZWN0b3JpZXMKIAogYGdpdCBsb2cgLS1zaW5jZT0iMiB3ZWVrcyBhZ28iIC0tIGdpdGtgOjoKIAogCVNob3cgdGhlIGNoYW5nZXMgZHVyaW5nIHRoZSBsYXN0IHR3byB3ZWVrcyB0byB0aGUgZmlsZSAnZ2l0aycuCi0JVGhlICItLSIgaXMgbmVjZXNzYXJ5IHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIHRoZSAqYnJhbmNoKiBuYW1lZAorCVRoZSBgYC0tJycgaXMgbmVjZXNzYXJ5IHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIHRoZSAqYnJhbmNoKiBuYW1lZAogCSdnaXRrJwogCiBgZ2l0IGxvZyAtLW5hbWUtc3RhdHVzIHJlbGVhc2UuLnRlc3RgOjoKQEAgLTEzMCw3ICsxMjcsNyBAQAogCiBgZ2l0IGxvZyAtLWZvbGxvdyBidWlsdGluL3Jldi1saXN0LmNgOjoKIAotCVNob3dzIHRoZSBjb21taXRzIHRoYXQgY2hhbmdlZCBidWlsdGluL3Jldi1saXN0LmMsIGluY2x1ZGluZworCVNob3dzIHRoZSBjb21taXRzIHRoYXQgY2hhbmdlZCBgYnVpbHRpbi9yZXYtbGlzdC5jYCwgaW5jbHVkaW5nCiAJdGhvc2UgY29tbWl0cyB0aGF0IG9jY3VycmVkIGJlZm9yZSB0aGUgZmlsZSB3YXMgZ2l2ZW4gaXRzCiAJcHJlc2VudCBuYW1lLgogCkBAIC0xNDgsMTcgKzE0NSwxOCBAQAogYGdpdCBsb2cgLXAgLW0gLS1maXJzdC1wYXJlbnRgOjoKIAogCVNob3dzIHRoZSBoaXN0b3J5IGluY2x1ZGluZyBjaGFuZ2UgZGlmZnMsIGJ1dCBvbmx5IGZyb20gdGhlCi0JIm1haW4gYnJhbmNoIiBwZXJzcGVjdGl2ZSwgc2tpcHBpbmcgY29tbWl0cyB0aGF0IGNvbWUgZnJvbSBtZXJnZWQKKwlgYG1haW4gYnJhbmNoJycgcGVyc3BlY3RpdmUsIHNraXBwaW5nIGNvbW1pdHMgdGhhdCBjb21lIGZyb20gbWVyZ2VkCiAJYnJhbmNoZXMsIGFuZCBzaG93aW5nIGZ1bGwgZGlmZnMgb2YgY2hhbmdlcyBpbnRyb2R1Y2VkIGJ5IHRoZSBtZXJnZXMuCiAJVGhpcyBtYWtlcyBzZW5zZSBvbmx5IHdoZW4gZm9sbG93aW5nIGEgc3RyaWN0IHBvbGljeSBvZiBtZXJnaW5nIGFsbAogCXRvcGljIGJyYW5jaGVzIHdoZW4gc3RheWluZyBvbiBhIHNpbmdsZSBpbnRlZ3JhdGlvbiBicmFuY2guCiAKIGBnaXQgbG9nIC1MICcvaW50IG1haW4vJywvXn0vOm1haW4uY2A6OgogCi0JU2hvd3MgaG93IHRoZSBmdW5jdGlvbiBgbWFpbigpYCBpbiB0aGUgZmlsZSAnbWFpbi5jJyBldm9sdmVkCisJU2hvd3MgaG93IHRoZSBmdW5jdGlvbiBgbWFpbigpYCBpbiB0aGUgZmlsZSBgbWFpbi5jYCBldm9sdmVkCiAJb3ZlciB0aW1lLgogCiBgZ2l0IGxvZyAtM2A6OgorCiAJTGltaXRzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0byBzaG93IHRvIDMuCiAKIERJU0NVU1NJT04KQEAgLTE3MywxMiArMTcxLDEyIEBACiBmb3Igc2V0dGluZ3MgcmVsYXRlZCB0byBkaWZmIGdlbmVyYXRpb24uCiAKIGZvcm1hdC5wcmV0dHk6OgotCURlZmF1bHQgZm9yIHRoZSBgLS1mb3JtYXRgIG9wdGlvbi4gIChTZWUgIlBSRVRUWSBGT1JNQVRTIiBhYm92ZS4pCi0JRGVmYXVsdHMgdG8gIm1lZGl1bSIuCisJRGVmYXVsdCBmb3IgdGhlIGAtLWZvcm1hdGAgb3B0aW9uLiAgKFNlZSAnUHJldHR5IEZvcm1hdHMnIGFib3ZlLikKKwlEZWZhdWx0cyB0byBgbWVkaXVtYC4KIAogaTE4bi5sb2dPdXRwdXRFbmNvZGluZzo6Ci0JRW5jb2RpbmcgdG8gdXNlIHdoZW4gZGlzcGxheWluZyBsb2dzLiAgKFNlZSAiRGlzY3Vzc2lvbiIsIGFib3ZlLikKLQlEZWZhdWx0cyB0byB0aGUgdmFsdWUgb2YgYGkxOG4uY29tbWl0RW5jb2RpbmdgIGlmIHNldCwgVVRGLTgKKwlFbmNvZGluZyB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIGxvZ3MuICAoU2VlICdEaXNjdXNzaW9uJyBhYm92ZS4pCisJRGVmYXVsdHMgdG8gdGhlIHZhbHVlIG9mIGBpMThuLmNvbW1pdEVuY29kaW5nYCBpZiBzZXQsIGFuZCBVVEYtOAogCW90aGVyd2lzZS4KIAogbG9nLmRhdGU6OgpAQCAtMTg3LDcgKzE4NSw3IEBACiAJZGF0ZXMgbGlrZSBgU2F0IE1heSA4IDE5OjM1OjM0IDIwMTAgLTA1MDBgLgogCiBsb2cuc2hvd3Jvb3Q6OgotCUlmIGBmYWxzZWAsICdnaXQgbG9nJyBhbmQgcmVsYXRlZCBjb21tYW5kcyB3aWxsIG5vdCB0cmVhdCB0aGUKKwlJZiBgZmFsc2VgLCBgZ2l0IGxvZ2AgYW5kIHJlbGF0ZWQgY29tbWFuZHMgd2lsbCBub3QgdHJlYXQgdGhlCiAJaW5pdGlhbCBjb21taXQgYXMgYSBiaWcgY3JlYXRpb24gZXZlbnQuICBBbnkgcm9vdCBjb21taXRzIGluCiAJYGdpdCBsb2cgLXBgIG91dHB1dCB3b3VsZCBiZSBzaG93biB3aXRob3V0IGEgZGlmZiBhdHRhY2hlZC4KIAlUaGUgZGVmYXVsdCBpcyBgdHJ1ZWAuCkBAIC0xOTgsNyArMTk2LDcgQEAKIG5vdGVzLmRpc3BsYXlSZWY6OgogCVdoaWNoIHJlZnMsIGluIGFkZGl0aW9uIHRvIHRoZSBkZWZhdWx0IHNldCBieSBgY29yZS5ub3Rlc1JlZmAKIAlvciAnR0lUX05PVEVTX1JFRicsIHRvIHJlYWQgbm90ZXMgZnJvbSB3aGVuIHNob3dpbmcgY29tbWl0Ci0JbWVzc2FnZXMgd2l0aCB0aGUgJ2xvZycgZmFtaWx5IG9mIGNvbW1hbmRzLiAgU2VlCisJbWVzc2FnZXMgd2l0aCB0aGUgYGxvZ2AgZmFtaWx5IG9mIGNvbW1hbmRzLiAgU2VlCiAJbGlua2dpdDpnaXQtbm90ZXNbMV0uCiArCiBNYXkgYmUgYW4gdW5hYmJyZXZpYXRlZCByZWYgbmFtZSBvciBhIGdsb2IgYW5kIG1heSBiZSBzcGVjaWZpZWQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWxvc3QtZm91bmQudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtbG9zdC1mb3VuZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1NDkzMjguLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtbG9zdC1mb3VuZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi1naXQtbG9zdC1mb3VuZCgxKQotPT09PT09PT09PT09PT09PT0KLQotTkFNRQotLS0tLQotZ2l0LWxvc3QtZm91bmQgLSBSZWNvdmVyIGxvc3QgcmVmcyB0aGF0IGx1Y2tpbHkgaGF2ZSBub3QgeWV0IGJlZW4gcHJ1bmVkCi0KLVNZTk9QU0lTCi0tLS0tLS0tLQotW3ZlcnNlXQotJ2dpdCBsb3N0LWZvdW5kJwotCi1ERVNDUklQVElPTgotLS0tLS0tLS0tLS0KLQotKk5PVEUqOiB0aGlzIGNvbW1hbmQgaXMgZGVwcmVjYXRlZC4gIFVzZSBsaW5rZ2l0OmdpdC1mc2NrWzFdIHdpdGgKLXRoZSBvcHRpb24gJy0tbG9zdC1mb3VuZCcgaW5zdGVhZC4KLQotRmluZHMgZGFuZ2xpbmcgY29tbWl0cyBhbmQgdGFncyBmcm9tIHRoZSBvYmplY3QgZGF0YWJhc2UsIGFuZAotY3JlYXRlcyByZWZzIHRvIHRoZW0gaW4gdGhlIC5naXQvbG9zdC1mb3VuZC8gZGlyZWN0b3J5LiAgQ29tbWl0cyBhbmQKLXRhZ3MgdGhhdCBkZXJlZmVyZW5jZSB0byBjb21taXRzIGFyZSBzdG9yZWQgaW4gLmdpdC9sb3N0LWZvdW5kL2NvbW1pdCwKLWFuZCBvdGhlciBvYmplY3RzIGFyZSBzdG9yZWQgaW4gLmdpdC9sb3N0LWZvdW5kL290aGVyLgotCi0KLU9VVFBVVAotLS0tLS0tCi1QcmludHMgdG8gc3RhbmRhcmQgb3V0cHV0IHRoZSBvYmplY3QgbmFtZXMgYW5kIG9uZS1saW5lIGRlc2NyaXB0aW9ucwotb2YgYW55IGNvbW1pdHMgb3IgdGFncyBmb3VuZC4KLQotRVhBTVBMRQotLS0tLS0tLQotCi1TdXBwb3NlIHlvdSBydW4gJ2dpdCB0YWcgLWYnIGFuZCBtaXN0eXBlIHRoZSB0YWcgdG8gb3ZlcndyaXRlLgotVGhlIHJlZiB0byB5b3VyIHRhZyBpcyBvdmVyd3JpdHRlbiwgYnV0IHVudGlsIHlvdSBydW4gJ2dpdAotcHJ1bmUnLCB0aGUgdGFnIGl0c2VsZiBpcyBzdGlsbCB0aGVyZS4KLQotLS0tLS0tLS0tLS0tCi0kIGdpdCBsb3N0LWZvdW5kCi1bMWVmMmIxOTZkOTA5ZWVkNTIzZDRmM2M5YmY1NGI3OGNkZDY4NDNjNl0gR0lUIDAuOTkuOWMKLS4uLgotLS0tLS0tLS0tLS0tCi0KLUFsc28geW91IGNhbiB1c2UgZ2l0ayB0byBicm93c2UgaG93IGFueSB0YWdzIGZvdW5kIHJlbGF0ZSB0byBlYWNoCi1vdGhlci4KLQotLS0tLS0tLS0tLS0tCi0kIGdpdGsgJChjZCAuZ2l0L2xvc3QtZm91bmQvY29tbWl0ICYmIGVjaG8gPz8qKQotLS0tLS0tLS0tLS0tCi0KLUFmdGVyIG1ha2luZyBzdXJlIHlvdSBrbm93IHdoaWNoIHRoZSBvYmplY3QgaXMgdGhlIHRhZyB5b3UgYXJlIGxvb2tpbmcKLWZvciwgeW91IGNhbiByZWNvbm5lY3QgaXQgdG8geW91ciByZWd1bGFyIGByZWZzYCBoaWVyYXJjaHkgYnkgdXNpbmcKLXRoZSBgdXBkYXRlLXJlZmAgY29tbWFuZC4KLQotLS0tLS0tLS0tLS0tCi0kIGdpdCBjYXQtZmlsZSAtdCAxZWYyYjE5NgotdGFnCi0kIGdpdCBjYXQtZmlsZSB0YWcgMWVmMmIxOTYKLW9iamVjdCBmYTQxYmJjZThlMzhjNjdhMjE4NDE1ZGU2Y2ZhNTEwYzdlNTAwMzJhCi10eXBlIGNvbW1pdAotdGFnIHYwLjk5LjljCi10YWdnZXIgSnVuaW8gQyBIYW1hbm8gPGp1bmtpb0Bjb3gubmV0PiAxMTMxMDU5NTk0IC0wODAwCi0KLUdJVCAwLjk5LjljCi0KLVRoaXMgY29udGFpbnMgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIGZyb20gdGhlICJtYXN0ZXIiIGJyYW5jaCwgc2luY2UKLS4uLgotJCBnaXQgdXBkYXRlLXJlZiByZWZzL3RhZ3Mvbm90LWxvc3QtYW55bW9yZSAxZWYyYjE5NgotJCBnaXQgcmV2LXBhcnNlIG5vdC1sb3N0LWFueW1vcmUKLTFlZjJiMTk2ZDkwOWVlZDUyM2Q0ZjNjOWJmNTRiNzhjZGQ2ODQzYzYKLS0tLS0tLS0tLS0tLQotCi1HSVQKLS0tLQotUGFydCBvZiB0aGUgbGlua2dpdDpnaXRbMV0gc3VpdGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LW1lcmdlLWJhc2UudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtbWVyZ2UtYmFzZS50eHQKaW5kZXggODc4NDJlMy4uODA4NDI2ZiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtbWVyZ2UtYmFzZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtbWVyZ2UtYmFzZS50eHQKQEAgLTEzLDYgKzEzLDcgQEAKICdnaXQgbWVyZ2UtYmFzZScgWy1hfC0tYWxsXSAtLW9jdG9wdXMgPGNvbW1pdD4uLi4KICdnaXQgbWVyZ2UtYmFzZScgLS1pcy1hbmNlc3RvciA8Y29tbWl0PiA8Y29tbWl0PgogJ2dpdCBtZXJnZS1iYXNlJyAtLWluZGVwZW5kZW50IDxjb21taXQ+Li4uCisnZ2l0IG1lcmdlLWJhc2UnIC0tZm9yay1wb2ludCA8cmVmPiBbPGNvbW1pdD5dCiAKIERFU0NSSVBUSU9OCiAtLS0tLS0tLS0tLQpAQCAtMjQsOCArMjUsOCBAQAogYW5jZXN0b3InLCBpLmUuIGEgJ21lcmdlIGJhc2UnLiAgTm90ZSB0aGF0IHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gb25lCiBtZXJnZSBiYXNlIGZvciBhIHBhaXIgb2YgY29tbWl0cy4KIAotT1BFUkFUSU9OIE1PREUKLS0tLS0tLS0tLS0tLS0tCitPUEVSQVRJT04gTU9ERVMKKy0tLS0tLS0tLS0tLS0tLQogCiBBcyB0aGUgbW9zdCBjb21tb24gc3BlY2lhbCBjYXNlLCBzcGVjaWZ5aW5nIG9ubHkgdHdvIGNvbW1pdHMgb24gdGhlCiBjb21tYW5kIGxpbmUgbWVhbnMgY29tcHV0aW5nIHRoZSBtZXJnZSBiYXNlIGJldHdlZW4gdGhlIGdpdmVuIHR3byBjb21taXRzLgpAQCAtNTYsNiArNTcsMTQgQEAKIAlhbmQgZXhpdCB3aXRoIHN0YXR1cyAwIGlmIHRydWUsIG9yIHdpdGggc3RhdHVzIDEgaWYgbm90LgogCUVycm9ycyBhcmUgc2lnbmFsZWQgYnkgYSBub24temVybyBzdGF0dXMgdGhhdCBpcyBub3QgMS4KIAorLS1mb3JrLXBvaW50OjoKKwlGaW5kIHRoZSBwb2ludCBhdCB3aGljaCBhIGJyYW5jaCAob3IgYW55IGhpc3RvcnkgdGhhdCBsZWFkcworCXRvIDxjb21taXQ+KSBmb3JrZWQgZnJvbSBhbm90aGVyIGJyYW5jaCAob3IgYW55IHJlZmVyZW5jZSkKKwk8cmVmPi4gVGhpcyBkb2VzIG5vdCBqdXN0IGxvb2sgZm9yIHRoZSBjb21tb24gYW5jZXN0b3Igb2YKKwl0aGUgdHdvIGNvbW1pdHMsIGJ1dCBhbHNvIHRha2VzIGludG8gYWNjb3VudCB0aGUgcmVmbG9nIG9mCisJPHJlZj4gdG8gc2VlIGlmIHRoZSBoaXN0b3J5IGxlYWRpbmcgdG8gPGNvbW1pdD4gZm9ya2VkIGZyb20KKwlhbiBlYXJsaWVyIGluY2FybmF0aW9uIG9mIHRoZSBicmFuY2ggPHJlZj4gKHNlZSBkaXNjdXNzaW9uCisJb24gdGhpcyBtb2RlIGJlbG93KS4KIAogT1BUSU9OUwogLS0tLS0tLQpAQCAtMTM3LDYgKzE0NiwzMSBAQAogCiBpbnN0ZWFkLgogCitEaXNjdXNzaW9uIG9uIGZvcmstcG9pbnQgbW9kZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQWZ0ZXIgd29ya2luZyBvbiB0aGUgYHRvcGljYCBicmFuY2ggY3JlYXRlZCB3aXRoIGBnaXQgY2hlY2tvdXQgLWIKK3RvcGljIG9yaWdpbi9tYXN0ZXJgLCB0aGUgaGlzdG9yeSBvZiByZW1vdGUtdHJhY2tpbmcgYnJhbmNoCitgb3JpZ2luL21hc3RlcmAgbWF5IGhhdmUgYmVlbiByZXdvdW5kIGFuZCByZWJ1aWx0LCBsZWFkaW5nIHRvIGEKK2hpc3Rvcnkgb2YgdGhpcyBzaGFwZToKKworCQkJIG8tLS1CMQorCQkJLworCS0tLW8tLS1vLS0tQjItLW8tLS1vLS0tby0tLUIgKG9yaWdpbi9tYXN0ZXIpCisJCVwKKwkJIEIzCisJCSAgXAorCQkgICBEZXJpdmVkICh0b3BpYykKKword2hlcmUgYG9yaWdpbi9tYXN0ZXJgIHVzZWQgdG8gcG9pbnQgYXQgY29tbWl0cyBCMywgQjIsIEIxIGFuZCBub3cgaXQKK3BvaW50cyBhdCBCLCBhbmQgeW91ciBgdG9waWNgIGJyYW5jaCB3YXMgc3RhcnRlZCBvbiB0b3Agb2YgaXQgYmFjaword2hlbiBgb3JpZ2luL21hc3RlcmAgd2FzIGF0IEIzLiBUaGlzIG1vZGUgdXNlcyB0aGUgcmVmbG9nIG9mCitgb3JpZ2luL21hc3RlcmAgdG8gZmluZCBCMyBhcyB0aGUgZm9yayBwb2ludCwgc28gdGhhdCB0aGUgYHRvcGljYAorY2FuIGJlIHJlYmFzZWQgb24gdG9wIG9mIHRoZSB1cGRhdGVkIGBvcmlnaW4vbWFzdGVyYCBieToKKworICAgICQgZm9ya19wb2ludD0kKGdpdCBtZXJnZS1iYXNlIC0tZm9yay1wb2ludCBvcmlnaW4vbWFzdGVyIHRvcGljKQorICAgICQgZ2l0IHJlYmFzZSAtLW9udG8gb3JpZ2luL21hc3RlciAkZm9ya19wb2ludCB0b3BpYworCiAKIFNlZSBhbHNvCiAtLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtbWVyZ2UtZmlsZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1tZXJnZS1maWxlLnR4dAppbmRleCBkN2RiMmEzLi5kMmZjMTJlIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1tZXJnZS1maWxlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1tZXJnZS1maWxlLnR4dApAQCAtMTEsNyArMTEsNyBAQAogW3ZlcnNlXQogJ2dpdCBtZXJnZS1maWxlJyBbLUwgPGN1cnJlbnQtbmFtZT4gWy1MIDxiYXNlLW5hbWU+IFstTCA8b3RoZXItbmFtZT5dXV0KIAlbLS1vdXJzfC0tdGhlaXJzfC0tdW5pb25dIFstcHwtLXN0ZG91dF0gWy1xfC0tcXVpZXRdIFstLW1hcmtlci1zaXplPTxuPl0KLQk8Y3VycmVudC1maWxlPiA8YmFzZS1maWxlPiA8b3RoZXItZmlsZT4KKwlbLS1bbm8tXWRpZmYzXSA8Y3VycmVudC1maWxlPiA8YmFzZS1maWxlPiA8b3RoZXItZmlsZT4KIAogCiBERVNDUklQVElPTgpAQCAtNjYsNiArNjYsOSBAQAogLXE6OgogCVF1aWV0OyBkbyBub3Qgd2FybiBhYm91dCBjb25mbGljdHMuCiAKKy0tZGlmZjM6OgorCVNob3cgY29uZmxpY3RzIGluICJkaWZmMyIgc3R5bGUuCisKIC0tb3Vyczo6CiAtLXRoZWlyczo6CiAtLXVuaW9uOjoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LW1lcmdlLXRyZWUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtbWVyZ2UtdHJlZS50eHQKaW5kZXggYzVmODRiNi4uNTg3MzFjMSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtbWVyZ2UtdHJlZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtbWVyZ2UtdHJlZS50eHQKQEAgLTEzLDcgKzEzLDcgQEAKIAogREVTQ1JJUFRJT04KIC0tLS0tLS0tLS0tCi1SZWFkcyB0aHJlZSB0cmVlaXNoLCBhbmQgb3V0cHV0IHRyaXZpYWwgbWVyZ2UgcmVzdWx0cyBhbmQKK1JlYWRzIHRocmVlIHRyZWUtaXNoLCBhbmQgb3V0cHV0IHRyaXZpYWwgbWVyZ2UgcmVzdWx0cyBhbmQKIGNvbmZsaWN0aW5nIHN0YWdlcyB0byB0aGUgc3RhbmRhcmQgb3V0cHV0LiAgVGhpcyBpcyBzaW1pbGFyIHRvCiB3aGF0IHRocmVlLXdheSAnZ2l0IHJlYWQtdHJlZSAtbScgZG9lcywgYnV0IGluc3RlYWQgb2Ygc3RvcmluZyB0aGUKIHJlc3VsdHMgaW4gdGhlIGluZGV4LCB0aGUgY29tbWFuZCBvdXRwdXRzIHRoZSBlbnRyaWVzIHRvIHRoZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtbXYudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtbXYudHh0CmluZGV4IGU5M2ZjYjQuLmU0NTMxMzIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LW12LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1tdi50eHQKQEAgLTEzLDcgKzEzLDcgQEAKIAogREVTQ1JJUFRJT04KIC0tLS0tLS0tLS0tCi1UaGlzIHNjcmlwdCBpcyB1c2VkIHRvIG1vdmUgb3IgcmVuYW1lIGEgZmlsZSwgZGlyZWN0b3J5IG9yIHN5bWxpbmsuCitNb3ZlIG9yIHJlbmFtZSBhIGZpbGUsIGRpcmVjdG9yeSBvciBzeW1saW5rLgogCiAgZ2l0IG12IFstdl0gWy1mXSBbLW5dIFsta10gPHNvdXJjZT4gPGRlc3RpbmF0aW9uPgogIGdpdCBtdiBbLXZdIFstZl0gWy1uXSBbLWtdIDxzb3VyY2U+IC4uLiA8ZGVzdGluYXRpb24gZGlyZWN0b3J5PgpAQCAtNDQsNiArNDQsMjYgQEAKIC0tdmVyYm9zZTo6CiAJUmVwb3J0IHRoZSBuYW1lcyBvZiBmaWxlcyBhcyB0aGV5IGFyZSBtb3ZlZC4KIAorU1VCTU9EVUxFUworLS0tLS0tLS0tLQorTW92aW5nIGEgc3VibW9kdWxlIHVzaW5nIGEgZ2l0ZmlsZSAod2hpY2ggbWVhbnMgdGhleSB3ZXJlIGNsb25lZAord2l0aCBhIEdpdCB2ZXJzaW9uIDEuNy44IG9yIG5ld2VyKSB3aWxsIHVwZGF0ZSB0aGUgZ2l0ZmlsZSBhbmQKK2NvcmUud29ya3RyZWUgc2V0dGluZyB0byBtYWtlIHRoZSBzdWJtb2R1bGUgd29yayBpbiB0aGUgbmV3IGxvY2F0aW9uLgorSXQgYWxzbyB3aWxsIGF0dGVtcHQgdG8gdXBkYXRlIHRoZSBzdWJtb2R1bGUuPG5hbWU+LnBhdGggc2V0dGluZyBpbgordGhlIGxpbmtnaXQ6Z2l0bW9kdWxlc1s1XSBmaWxlIGFuZCBzdGFnZSB0aGF0IGZpbGUgKHVubGVzcyAtbiBpcyB1c2VkKS4KKworQlVHUworLS0tLQorRWFjaCB0aW1lIGEgc3VwZXJwcm9qZWN0IHVwZGF0ZSBtb3ZlcyBhIHBvcHVsYXRlZCBzdWJtb2R1bGUgKGUuZy4gd2hlbgorc3dpdGNoaW5nIGJldHdlZW4gY29tbWl0cyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBtb3ZlKSBhIHN0YWxlIHN1Ym1vZHVsZQorY2hlY2tvdXQgd2lsbCByZW1haW4gaW4gdGhlIG9sZCBsb2NhdGlvbiBhbmQgYW4gZW1wdHkgZGlyZWN0b3J5IHdpbGwKK2FwcGVhciBpbiB0aGUgbmV3IGxvY2F0aW9uLiBUbyBwb3B1bGF0ZSB0aGUgc3VibW9kdWxlIGFnYWluIGluIHRoZSBuZXcKK2xvY2F0aW9uIHRoZSB1c2VyIHdpbGwgaGF2ZSB0byBydW4gImdpdCBzdWJtb2R1bGUgdXBkYXRlIgorYWZ0ZXJ3YXJkcy4gUmVtb3ZpbmcgdGhlIG9sZCBkaXJlY3RvcnkgaXMgb25seSBzYWZlIHdoZW4gaXQgdXNlcyBhCitnaXRmaWxlLCBhcyBvdGhlcndpc2UgdGhlIGhpc3Rvcnkgb2YgdGhlIHN1Ym1vZHVsZSB3aWxsIGJlIGRlbGV0ZWQKK3Rvby4gQm90aCBzdGVwcyB3aWxsIGJlIG9ic29sZXRlIHdoZW4gcmVjdXJzaXZlIHN1Ym1vZHVsZSB1cGRhdGUgaGFzCitiZWVuIGltcGxlbWVudGVkLgorCiBHSVQKIC0tLQogUGFydCBvZiB0aGUgbGlua2dpdDpnaXRbMV0gc3VpdGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LW5hbWUtcmV2LnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LW5hbWUtcmV2LnR4dAppbmRleCAxNWIwMGUwLi5jYTI4ZmI4IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1uYW1lLXJldi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtbmFtZS1yZXYudHh0CkBAIC0xMCw3ICsxMCw3IEBACiAtLS0tLS0tLQogW3ZlcnNlXQogJ2dpdCBuYW1lLXJldicgWy0tdGFnc10gWy0tcmVmcz08cGF0dGVybj5dCi0JICAgICAgICggLS1hbGwgfCAtLXN0ZGluIHwgPGNvbW1pdHRpc2g+Li4uICkKKwkgICAgICAgKCAtLWFsbCB8IC0tc3RkaW4gfCA8Y29tbWl0LWlzaD4uLi4gKQogCiBERVNDUklQVElPTgogLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LW5vdGVzLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LW5vdGVzLnR4dAppbmRleCA0NmVmMDQ2Li44NGJiMGZlIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1ub3Rlcy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtbm90ZXMudHh0CkBAIC0zNzUsMTYgKzM3NSw2IEBACiBJZiBub3Qgc2V0IGluIHRoZSBlbnZpcm9ubWVudCwgdGhlIGxpc3Qgb2Ygbm90ZXMgdG8gY29weSBkZXBlbmRzCiBvbiB0aGUgYG5vdGVzLnJld3JpdGUuPGNvbW1hbmQ+YCBhbmQgYG5vdGVzLnJld3JpdGVSZWZgIHNldHRpbmdzLgogCi0KLUF1dGhvcgotLS0tLS0tCi1Xcml0dGVuIGJ5IEpvaGFubmVzIFNjaGluZGVsaW4gPGpvaGFubmVzLnNjaGluZGVsaW5AZ214LmRlPiBhbmQKLUpvaGFuIEhlcmxhbmQgPGpvaGFuQGhlcmxhbmQubmV0PgotCi1Eb2N1bWVudGF0aW9uCi0tLS0tLS0tLS0tLS0tCi1Eb2N1bWVudGF0aW9uIGJ5IEpvaGFubmVzIFNjaGluZGVsaW4gYW5kIEpvaGFuIEhlcmxhbmQKLQogR0lUCiAtLS0KIFBhcnQgb2YgdGhlIGxpbmtnaXQ6Z2l0WzddIHN1aXRlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1wNC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1wNC50eHQKaW5kZXggOGNiYTE2ZC4uNmFiNWY5NCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcDQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXA0LnR4dApAQCAtMTY4LDcgKzE2OCw4IEBACiAtLWdpdC1kaXIgPGRpcj46OgogCVNldCB0aGUgJ0dJVF9ESVInIGVudmlyb25tZW50IHZhcmlhYmxlLiAgU2VlIGxpbmtnaXQ6Z2l0WzFdLgogCi0tLXZlcmJvc2UsIC12OjoKKy12OjoKKy0tdmVyYm9zZTo6CiAJUHJvdmlkZSBtb3JlIHByb2dyZXNzIGluZm9ybWF0aW9uLgogCiBTeW5jIG9wdGlvbnMKQEAgLTI3OSw3ICsyODAsOCBAQAogCUV4cG9ydCB0YWdzIGZyb20gR2l0IGFzIHA0IGxhYmVscy4gVGFncyBmb3VuZCBpbiBHaXQgYXJlIGFwcGxpZWQKIAl0byB0aGUgcGVyZm9yY2Ugd29ya2luZyBkaXJlY3RvcnkuCiAKLS0tZHJ5LXJ1biwgLW46OgorLW46OgorLS1kcnktcnVuOjoKIAlTaG93IGp1c3Qgd2hhdCBjb21taXRzIHdvdWxkIGJlIHN1Ym1pdHRlZCB0byBwNDsgZG8gbm90IGNoYW5nZQogCXN0YXRlIGluIEdpdCBvciBwNC4KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcGFjay1vYmplY3RzLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXBhY2stb2JqZWN0cy50eHQKaW5kZXggZDk0ZWRjZC4uY2RhYjllZCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcGFjay1vYmplY3RzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1wYWNrLW9iamVjdHMudHh0CkBAIC01MSw4ICs1MSw3IEBACiAJPGJhc2UtbmFtZT4gdG8gZGV0ZXJtaW5lIHRoZSBuYW1lIG9mIHRoZSBjcmVhdGVkIGZpbGUuCiAJV2hlbiB0aGlzIG9wdGlvbiBpcyB1c2VkLCB0aGUgdHdvIGZpbGVzIGFyZSB3cml0dGVuIGluCiAJPGJhc2UtbmFtZT4tPFNIQS0xPi57cGFjayxpZHh9IGZpbGVzLiAgPFNIQS0xPiBpcyBhIGhhc2gKLQlvZiB0aGUgc29ydGVkIG9iamVjdCBuYW1lcyB0byBtYWtlIHRoZSByZXN1bHRpbmcgZmlsZW5hbWUKLQliYXNlZCBvbiB0aGUgcGFjayBjb250ZW50LCBhbmQgd3JpdHRlbiB0byB0aGUgc3RhbmRhcmQKKwliYXNlZCBvbiB0aGUgcGFjayBjb250ZW50IGFuZCBpcyB3cml0dGVuIHRvIHRoZSBzdGFuZGFyZAogCW91dHB1dCBvZiB0aGUgY29tbWFuZC4KIAogLS1zdGRvdXQ6OgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcGVlay1yZW1vdGUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcGVlay1yZW1vdGUudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2VhM2ZiLi4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXBlZWstcmVtb3RlLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLWdpdC1wZWVrLXJlbW90ZSgxKQotPT09PT09PT09PT09PT09PT09Ci0KLU5BTUUKLS0tLS0KLWdpdC1wZWVrLXJlbW90ZSAtIExpc3QgdGhlIHJlZmVyZW5jZXMgaW4gYSByZW1vdGUgcmVwb3NpdG9yeQotCi0KLVNZTk9QU0lTCi0tLS0tLS0tLQotW3ZlcnNlXQotJ2dpdCBwZWVrLXJlbW90ZScgWy0tdXBsb2FkLXBhY2s9PGdpdC11cGxvYWQtcGFjaz5dIFs8aG9zdD46XTxkaXJlY3Rvcnk+Ci0KLURFU0NSSVBUSU9OCi0tLS0tLS0tLS0tLQotVGhpcyBjb21tYW5kIGlzIGRlcHJlY2F0ZWQ7IHVzZSAnZ2l0IGxzLXJlbW90ZScgaW5zdGVhZC4KLQotT1BUSU9OUwotLS0tLS0tLQotLS11cGxvYWQtcGFjaz08Z2l0LXVwbG9hZC1wYWNrPjo6Ci0JVXNlIHRoaXMgdG8gc3BlY2lmeSB0aGUgcGF0aCB0byAnZ2l0LXVwbG9hZC1wYWNrJyBvbiB0aGUKLQlyZW1vdGUgc2lkZSwgaWYgaXQgaXMgbm90IGZvdW5kIG9uIHlvdXIgJFBBVEguIFNvbWUKLQlpbnN0YWxsYXRpb25zIG9mIHNzaGQgaWdub3JlcyB0aGUgdXNlcidzIGVudmlyb25tZW50Ci0Jc2V0dXAgc2NyaXB0cyBmb3IgbG9naW4gc2hlbGxzIChlLmcuIC5iYXNoX3Byb2ZpbGUpIGFuZAotCXlvdXIgcHJpdmF0ZWx5IGluc3RhbGxlZCBnaXQgbWF5IG5vdCBiZSBmb3VuZCBvbiB0aGUgc3lzdGVtCi0JZGVmYXVsdCAkUEFUSC4gIEFub3RoZXIgd29ya2Fyb3VuZCBzdWdnZXN0ZWQgaXMgdG8gc2V0Ci0JdXAgeW91ciAkUEFUSCBpbiAiLmJhc2hyYyIsIGJ1dCB0aGlzIGZsYWcgaXMgZm9yIHBlb3BsZQotCXdobyBkbyBub3Qgd2FudCB0byBwYXkgdGhlIG92ZXJoZWFkIGZvciBub24taW50ZXJhY3RpdmUKLQlzaGVsbHMsIGJ1dCBwcmVmZXIgaGF2aW5nIGEgbGVhbiAuYmFzaHJjIGZpbGUgKHRoZXkgc2V0IG1vc3Qgb2YKLQl0aGUgdGhpbmdzIHVwIGluIC5iYXNoX3Byb2ZpbGUpLgotCi08aG9zdD46OgotCUEgcmVtb3RlIGhvc3QgdGhhdCBob3VzZXMgdGhlIHJlcG9zaXRvcnkuICBXaGVuIHRoaXMKLQlwYXJ0IGlzIHNwZWNpZmllZCwgJ2dpdC11cGxvYWQtcGFjaycgaXMgaW52b2tlZCB2aWEKLQlzc2guCi0KLTxkaXJlY3Rvcnk+OjoKLQlUaGUgcmVwb3NpdG9yeSB0byBzeW5jIGZyb20uCi0KLQotR0lUCi0tLS0KLVBhcnQgb2YgdGhlIGxpbmtnaXQ6Z2l0WzFdIHN1aXRlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1wcnVuZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1wcnVuZS50eHQKaW5kZXggYmY4MjQxMC4uMDU4YWMwZCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcHJ1bmUudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXBydW5lLnR4dApAQCAtMjQsNiArMjQsOCBAQAogSW4gYWRkaXRpb24sIGl0CiBwcnVuZXMgdGhlIHVucGFja2VkIG9iamVjdHMgdGhhdCBhcmUgYWxzbyBmb3VuZCBpbiBwYWNrcyBieQogcnVubmluZyAnZ2l0IHBydW5lLXBhY2tlZCcuCitJdCBhbHNvIHJlbW92ZXMgZW50cmllcyBmcm9tIC5naXQvc2hhbGxvdyB0aGF0IGFyZSBub3QgcmVhY2hhYmxlIGJ5CithbnkgcmVmLgogCiBOb3RlIHRoYXQgdW5yZWFjaGFibGUsIHBhY2tlZCBvYmplY3RzIHdpbGwgcmVtYWluLiAgSWYgdGhpcyBpcwogbm90IGRlc2lyZWQsIHNlZSBsaW5rZ2l0OmdpdC1yZXBhY2tbMV0uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1wdWxsLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXB1bGwudHh0CmluZGV4IDZlZjhkNTkuLjIwMGViMjIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXB1bGwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXB1bGwudHh0CkBAIC00Miw2ICs0Miw4IEBACiAJICBBLS0tQi0tLUMgbWFzdGVyIG9uIG9yaWdpbgogCSAvCiAgICAgRC0tLUUtLS1GLS0tRyBtYXN0ZXIKKwleCisJb3JpZ2luL21hc3RlciBpbiB5b3VyIHJlcG9zaXRvcnkKIC0tLS0tLS0tLS0tLQogCiBUaGVuICJgZ2l0IHB1bGxgIiB3aWxsIGZldGNoIGFuZCByZXBsYXkgdGhlIGNoYW5nZXMgZnJvbSB0aGUgcmVtb3RlCkBAIC01MSw3ICs1Myw3IEBACiBhbmQgYSBsb2cgbWVzc2FnZSBmcm9tIHRoZSB1c2VyIGRlc2NyaWJpbmcgdGhlIGNoYW5nZXMuCiAKIC0tLS0tLS0tLS0tLQotCSAgQS0tLUItLS1DIHJlbW90ZXMvb3JpZ2luL21hc3RlcgorCSAgQS0tLUItLS1DIG9yaWdpbi9tYXN0ZXIKIAkgLyAgICAgICAgIFwKICAgICBELS0tRS0tLUYtLS1HLS0tSCBtYXN0ZXIKIC0tLS0tLS0tLS0tLQpAQCAtOTcsMTcgKzk5LDIzIEBACiBPcHRpb25zIHJlbGF0ZWQgdG8gbWVyZ2luZwogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAotaW5jbHVkZTo6bWVyZ2Utb3B0aW9ucy50eHRbXQotCiA6Z2l0LXB1bGw6IDEKIAoraW5jbHVkZTo6bWVyZ2Utb3B0aW9ucy50eHRbXQorCiAtcjo6Ci0tLXJlYmFzZTo6Ci0JUmViYXNlIHRoZSBjdXJyZW50IGJyYW5jaCBvbiB0b3Agb2YgdGhlIHVwc3RyZWFtIGJyYW5jaCBhZnRlcgotCWZldGNoaW5nLiAgSWYgdGhlcmUgaXMgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIGNvcnJlc3BvbmRpbmcgdG8KLQl0aGUgdXBzdHJlYW0gYnJhbmNoIGFuZCB0aGUgdXBzdHJlYW0gYnJhbmNoIHdhcyByZWJhc2VkIHNpbmNlIGxhc3QKLQlmZXRjaGVkLCB0aGUgcmViYXNlIHVzZXMgdGhhdCBpbmZvcm1hdGlvbiB0byBhdm9pZCByZWJhc2luZwotCW5vbi1sb2NhbCBjaGFuZ2VzLgorLS1yZWJhc2VbPWZhbHNlfHRydWV8cHJlc2VydmVdOjoKKwlXaGVuIHRydWUsIHJlYmFzZSB0aGUgY3VycmVudCBicmFuY2ggb24gdG9wIG9mIHRoZSB1cHN0cmVhbQorCWJyYW5jaCBhZnRlciBmZXRjaGluZy4gSWYgdGhlcmUgaXMgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoCisJY29ycmVzcG9uZGluZyB0byB0aGUgdXBzdHJlYW0gYnJhbmNoIGFuZCB0aGUgdXBzdHJlYW0gYnJhbmNoCisJd2FzIHJlYmFzZWQgc2luY2UgbGFzdCBmZXRjaGVkLCB0aGUgcmViYXNlIHVzZXMgdGhhdCBpbmZvcm1hdGlvbgorCXRvIGF2b2lkIHJlYmFzaW5nIG5vbi1sb2NhbCBjaGFuZ2VzLgorKworV2hlbiBwcmVzZXJ2ZSwgYWxzbyByZWJhc2UgdGhlIGN1cnJlbnQgYnJhbmNoIG9uIHRvcCBvZiB0aGUgdXBzdHJlYW0KK2JyYW5jaCwgYnV0IHBhc3MgYC0tcHJlc2VydmUtbWVyZ2VzYCBhbG9uZyB0byBgZ2l0IHJlYmFzZWAgc28gdGhhdAorbG9jYWxseSBjcmVhdGVkIG1lcmdlIGNvbW1pdHMgd2lsbCBub3QgYmUgZmxhdHRlbmVkLgorKworV2hlbiBmYWxzZSwgbWVyZ2UgdGhlIGN1cnJlbnQgYnJhbmNoIGludG8gdGhlIHVwc3RyZWFtIGJyYW5jaC4KICsKIFNlZSBgcHVsbC5yZWJhc2VgLCBgYnJhbmNoLjxuYW1lPi5yZWJhc2VgIGFuZCBgYnJhbmNoLmF1dG9zZXR1cHJlYmFzZWAgaW4KIGxpbmtnaXQ6Z2l0LWNvbmZpZ1sxXSBpZiB5b3Ugd2FudCB0byBtYWtlIGBnaXQgcHVsbGAgYWx3YXlzIHVzZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcHVzaC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1wdXNoLnR4dAppbmRleCBmN2RmZTQ4Li4yYjdmNGY5IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1wdXNoLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1wdXNoLnR4dApAQCAtMTEsNiArMTEsNyBAQAogW3ZlcnNlXQogJ2dpdCBwdXNoJyBbLS1hbGwgfCAtLW1pcnJvciB8IC0tdGFnc10gWy0tZm9sbG93LXRhZ3NdIFstbiB8IC0tZHJ5LXJ1bl0gWy0tcmVjZWl2ZS1wYWNrPTxnaXQtcmVjZWl2ZS1wYWNrPl0KIAkgICBbLS1yZXBvPTxyZXBvc2l0b3J5Pl0gWy1mIHwgLS1mb3JjZV0gWy0tcHJ1bmVdIFstdiB8IC0tdmVyYm9zZV0gWy11IHwgLS1zZXQtdXBzdHJlYW1dCisJICAgWy0tZm9yY2Utd2l0aC1sZWFzZVs9PHJlZm5hbWU+Wzo8ZXhwZWN0Pl1dXQogCSAgIFstLW5vLXZlcmlmeV0gWzxyZXBvc2l0b3J5PiBbPHJlZnNwZWM+Li4uXV0KIAogREVTQ1JJUFRJT04KQEAgLTU1LDggKzU2LDEzIEBACiArCiBUaGUgPGRzdD4gdGVsbHMgd2hpY2ggcmVmIG9uIHRoZSByZW1vdGUgc2lkZSBpcyB1cGRhdGVkIHdpdGggdGhpcwogcHVzaC4gQXJiaXRyYXJ5IGV4cHJlc3Npb25zIGNhbm5vdCBiZSB1c2VkIGhlcmUsIGFuIGFjdHVhbCByZWYgbXVzdAotYmUgbmFtZWQuIElmIGA6YDxkc3Q+IGlzIG9taXR0ZWQsIHRoZSBzYW1lIHJlZiBhcyA8c3JjPiB3aWxsIGJlCi11cGRhdGVkLgorYmUgbmFtZWQuCitJZiBgZ2l0IHB1c2ggWzxyZXBvc2l0b3J5Pl1gIHdpdGhvdXQgYW55IGA8cmVmc3BlYz5gIGFyZ3VtZW50IGlzIHNldCB0bwordXBkYXRlIHNvbWUgcmVmIGF0IHRoZSBkZXN0aW5hdGlvbiB3aXRoIGA8c3JjPmAgd2l0aAorYHJlbW90ZS48cmVwb3NpdG9yeT4ucHVzaGAgY29uZmlndXJhdGlvbiB2YXJpYWJsZSwgYDo8ZHN0PmAgcGFydCBjYW4KK2JlIG9taXR0ZWQtLS1zdWNoIGEgcHVzaCB3aWxsIHVwZGF0ZSBhIHJlZiB0aGF0IGA8c3JjPmAgbm9ybWFsbHkgdXBkYXRlcword2l0aG91dCBhbnkgYDxyZWZzcGVjPmAgb24gdGhlIGNvbW1hbmQgbGluZS4gIE90aGVyd2lzZSwgbWlzc2luZworYDo8ZHN0PmAgbWVhbnMgdG8gdXBkYXRlIHRoZSBzYW1lIHJlZiBhcyB0aGUgYDxzcmM+YC4KICsKIFRoZSBvYmplY3QgcmVmZXJlbmNlZCBieSA8c3JjPiBpcyB1c2VkIHRvIHVwZGF0ZSB0aGUgPGRzdD4gcmVmZXJlbmNlCiBvbiB0aGUgcmVtb3RlIHNpZGUuICBCeSBkZWZhdWx0IHRoaXMgaXMgb25seSBhbGxvd2VkIGlmIDxkc3Q+IGlzIG5vdApAQCAtMTIwLDcgKzEyNiw3IEBACiAtLWZvbGxvdy10YWdzOjoKIAlQdXNoIGFsbCB0aGUgcmVmcyB0aGF0IHdvdWxkIGJlIHB1c2hlZCB3aXRob3V0IHRoaXMgb3B0aW9uLAogCWFuZCBhbHNvIHB1c2ggYW5ub3RhdGVkIHRhZ3MgaW4gYHJlZnMvdGFnc2AgdGhhdCBhcmUgbWlzc2luZwotCWZyb20gdGhlIHJlbW90ZSBidXQgYXJlIHBvaW50aW5nIGF0IGNvbW1pdHRpc2ggdGhhdCBhcmUKKwlmcm9tIHRoZSByZW1vdGUgYnV0IGFyZSBwb2ludGluZyBhdCBjb21taXQtaXNoIHRoYXQgYXJlCiAJcmVhY2hhYmxlIGZyb20gdGhlIHJlZnMgYmVpbmcgcHVzaGVkLgogCiAtLXJlY2VpdmUtcGFjaz08Z2l0LXJlY2VpdmUtcGFjaz46OgpAQCAtMTMwLDIxICsxMzYsNzUgQEAKIAlyZXBvc2l0b3J5IG92ZXIgc3NoLCBhbmQgeW91IGRvIG5vdCBoYXZlIHRoZSBwcm9ncmFtIGluCiAJYSBkaXJlY3Rvcnkgb24gdGhlIGRlZmF1bHQgJFBBVEguCiAKKy0tW25vLV1mb3JjZS13aXRoLWxlYXNlOjoKKy0tZm9yY2Utd2l0aC1sZWFzZT08cmVmbmFtZT46OgorLS1mb3JjZS13aXRoLWxlYXNlPTxyZWZuYW1lPjo8ZXhwZWN0Pjo6CisJVXN1YWxseSwgImdpdCBwdXNoIiByZWZ1c2VzIHRvIHVwZGF0ZSBhIHJlbW90ZSByZWYgdGhhdCBpcworCW5vdCBhbiBhbmNlc3RvciBvZiB0aGUgbG9jYWwgcmVmIHVzZWQgdG8gb3ZlcndyaXRlIGl0LgorKworVGhpcyBvcHRpb24gYnlwYXNzZXMgdGhlIGNoZWNrLCBidXQgaW5zdGVhZCByZXF1aXJlcyB0aGF0IHRoZQorY3VycmVudCB2YWx1ZSBvZiB0aGUgcmVmIHRvIGJlIHRoZSBleHBlY3RlZCB2YWx1ZS4gICJnaXQgcHVzaCIKK2ZhaWxzIG90aGVyd2lzZS4KKysKK0ltYWdpbmUgdGhhdCB5b3UgaGF2ZSB0byByZWJhc2Ugd2hhdCB5b3UgaGF2ZSBhbHJlYWR5IHB1Ymxpc2hlZC4KK1lvdSB3aWxsIGhhdmUgdG8gYnlwYXNzIHRoZSAibXVzdCBmYXN0LWZvcndhcmQiIHJ1bGUgaW4gb3JkZXIgdG8KK3JlcGxhY2UgdGhlIGhpc3RvcnkgeW91IG9yaWdpbmFsbHkgcHVibGlzaGVkIHdpdGggdGhlIHJlYmFzZWQgaGlzdG9yeS4KK0lmIHNvbWVib2R5IGVsc2UgYnVpbHQgb24gdG9wIG9mIHlvdXIgb3JpZ2luYWwgaGlzdG9yeSB3aGlsZSB5b3UgYXJlCityZWJhc2luZywgdGhlIHRpcCBvZiB0aGUgYnJhbmNoIGF0IHRoZSByZW1vdGUgbWF5IGFkdmFuY2Ugd2l0aCBoZXIKK2NvbW1pdCwgYW5kIGJsaW5kbHkgcHVzaGluZyB3aXRoIGAtLWZvcmNlYCB3aWxsIGxvc2UgaGVyIHdvcmsuCisrCitUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIHNheSB0aGF0IHlvdSBleHBlY3QgdGhlIGhpc3RvcnkgeW91IGFyZQordXBkYXRpbmcgaXMgd2hhdCB5b3UgcmViYXNlZCBhbmQgd2FudCB0byByZXBsYWNlLiBJZiB0aGUgcmVtb3RlIHJlZgorc3RpbGwgcG9pbnRzIGF0IHRoZSBjb21taXQgeW91IHNwZWNpZmllZCwgeW91IGNhbiBiZSBzdXJlIHRoYXQgbm8KK290aGVyIHBlb3BsZSBkaWQgYW55dGhpbmcgdG8gdGhlIHJlZiAoaXQgaXMgbGlrZSB0YWtpbmcgYSAibGVhc2UiIG9uCit0aGUgcmVmIHdpdGhvdXQgZXhwbGljaXRseSBsb2NraW5nIGl0LCBhbmQgeW91IHVwZGF0ZSB0aGUgcmVmIHdoaWxlCittYWtpbmcgc3VyZSB0aGF0IHlvdXIgZWFybGllciAibGVhc2UiIGlzIHN0aWxsIHZhbGlkKS4KKysKK2AtLWZvcmNlLXdpdGgtbGVhc2VgIGFsb25lLCB3aXRob3V0IHNwZWNpZnlpbmcgdGhlIGRldGFpbHMsIHdpbGwgcHJvdGVjdAorYWxsIHJlbW90ZSByZWZzIHRoYXQgYXJlIGdvaW5nIHRvIGJlIHVwZGF0ZWQgYnkgcmVxdWlyaW5nIHRoZWlyCitjdXJyZW50IHZhbHVlIHRvIGJlIHRoZSBzYW1lIGFzIHRoZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIHdlIGhhdmUKK2ZvciB0aGVtLCB1bmxlc3Mgc3BlY2lmaWVkIHdpdGggYSBgLS1mb3JjZS13aXRoLWxlYXNlPTxyZWZuYW1lPjo8ZXhwZWN0PmAKK29wdGlvbiB0aGF0IGV4cGxpY2l0bHkgc3RhdGVzIHdoYXQgdGhlIGV4cGVjdGVkIHZhbHVlIGlzLgorKworYC0tZm9yY2Utd2l0aC1sZWFzZT08cmVmbmFtZT5gLCB3aXRob3V0IHNwZWNpZnlpbmcgdGhlIGV4cGVjdGVkIHZhbHVlLCB3aWxsCitwcm90ZWN0IHRoZSBuYW1lZCByZWYgKGFsb25lKSwgaWYgaXQgaXMgZ29pbmcgdG8gYmUgdXBkYXRlZCwgYnkKK3JlcXVpcmluZyBpdHMgY3VycmVudCB2YWx1ZSB0byBiZSB0aGUgc2FtZSBhcyB0aGUgcmVtb3RlLXRyYWNraW5nCiticmFuY2ggd2UgaGF2ZSBmb3IgaXQuCisrCitgLS1mb3JjZS13aXRoLWxlYXNlPTxyZWZuYW1lPjo8ZXhwZWN0PmAgd2lsbCBwcm90ZWN0IHRoZSBuYW1lZCByZWYgKGFsb25lKSwKK2lmIGl0IGlzIGdvaW5nIHRvIGJlIHVwZGF0ZWQsIGJ5IHJlcXVpcmluZyBpdHMgY3VycmVudCB2YWx1ZSB0byBiZQordGhlIHNhbWUgYXMgdGhlIHNwZWNpZmllZCB2YWx1ZSA8ZXhwZWN0PiAod2hpY2ggaXMgYWxsb3dlZCB0byBiZQorZGlmZmVyZW50IGZyb20gdGhlIHJlbW90ZS10cmFja2luZyBicmFuY2ggd2UgaGF2ZSBmb3IgdGhlIHJlZm5hbWUsCitvciB3ZSBkbyBub3QgZXZlbiBoYXZlIHRvIGhhdmUgc3VjaCBhIHJlbW90ZS10cmFja2luZyBicmFuY2ggd2hlbgordGhpcyBmb3JtIGlzIHVzZWQpLgorKworTm90ZSB0aGF0IGFsbCBmb3JtcyBvdGhlciB0aGFuIGAtLWZvcmNlLXdpdGgtbGVhc2U9PHJlZm5hbWU+OjxleHBlY3Q+YAordGhhdCBzcGVjaWZpZXMgdGhlIGV4cGVjdGVkIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHJlZiBleHBsaWNpdGx5IGFyZQorc3RpbGwgZXhwZXJpbWVudGFsIGFuZCB0aGVpciBzZW1hbnRpY3MgbWF5IGNoYW5nZSBhcyB3ZSBnYWluIGV4cGVyaWVuY2UKK3dpdGggdGhpcyBmZWF0dXJlLgorKworIi0tbm8tZm9yY2Utd2l0aC1sZWFzZSIgd2lsbCBjYW5jZWwgYWxsIHRoZSBwcmV2aW91cyAtLWZvcmNlLXdpdGgtbGVhc2Ugb24gdGhlCitjb21tYW5kIGxpbmUuCisKIC1mOjoKIC0tZm9yY2U6OgogCVVzdWFsbHksIHRoZSBjb21tYW5kIHJlZnVzZXMgdG8gdXBkYXRlIGEgcmVtb3RlIHJlZiB0aGF0IGlzCiAJbm90IGFuIGFuY2VzdG9yIG9mIHRoZSBsb2NhbCByZWYgdXNlZCB0byBvdmVyd3JpdGUgaXQuCi0JVGhpcyBmbGFnIGRpc2FibGVzIHRoZSBjaGVjay4gIFRoaXMgY2FuIGNhdXNlIHRoZQotCXJlbW90ZSByZXBvc2l0b3J5IHRvIGxvc2UgY29tbWl0czsgdXNlIGl0IHdpdGggY2FyZS4KLQlOb3RlIHRoYXQgYC0tZm9yY2VgIGFwcGxpZXMgdG8gYWxsIHRoZSByZWZzIHRoYXQgYXJlIHB1c2hlZCwKLQloZW5jZSB1c2luZyBpdCB3aXRoIGBwdXNoLmRlZmF1bHRgIHNldCB0byBgbWF0Y2hpbmdgIG9yIHdpdGgKLQltdWx0aXBsZSBwdXNoIGRlc3RpbmF0aW9ucyBjb25maWd1cmVkIHdpdGggYHJlbW90ZS4qLnB1c2hgCi0JbWF5IG92ZXJ3cml0ZSByZWZzIG90aGVyIHRoYW4gdGhlIGN1cnJlbnQgYnJhbmNoIChpbmNsdWRpbmcKLQlsb2NhbCByZWZzIHRoYXQgYXJlIHN0cmljdGx5IGJlaGluZCB0aGVpciByZW1vdGUgY291bnRlcnBhcnQpLgotCVRvIGZvcmNlIGEgcHVzaCB0byBvbmx5IG9uZSBicmFuY2gsIHVzZSBhIGArYCBpbiBmcm9udCBvZiB0aGUKLQlyZWZzcGVjIHRvIHB1c2gJKGUuZyBgZ2l0IHB1c2ggb3JpZ2luICttYXN0ZXJgIHRvIGZvcmNlIGEgcHVzaAotCXRvIHRoZSBgbWFzdGVyYAlicmFuY2gpLiBTZWUgdGhlIGA8cmVmc3BlYz4uLi5gIHNlY3Rpb24gYWJvdmUKLQlmb3IgZGV0YWlscy4KKwlBbHNvLCB3aGVuIGAtLWZvcmNlLXdpdGgtbGVhc2VgIG9wdGlvbiBpcyB1c2VkLCB0aGUgY29tbWFuZCByZWZ1c2VzCisJdG8gdXBkYXRlIGEgcmVtb3RlIHJlZiB3aG9zZSBjdXJyZW50IHZhbHVlIGRvZXMgbm90IG1hdGNoCisJd2hhdCBpcyBleHBlY3RlZC4KKysKK1RoaXMgZmxhZyBkaXNhYmxlcyB0aGVzZSBjaGVja3MsIGFuZCBjYW4gY2F1c2UgdGhlIHJlbW90ZSByZXBvc2l0b3J5Cit0byBsb3NlIGNvbW1pdHM7IHVzZSBpdCB3aXRoIGNhcmUuCisrCitOb3RlIHRoYXQgYC0tZm9yY2VgIGFwcGxpZXMgdG8gYWxsIHRoZSByZWZzIHRoYXQgYXJlIHB1c2hlZCwgaGVuY2UKK3VzaW5nIGl0IHdpdGggYHB1c2guZGVmYXVsdGAgc2V0IHRvIGBtYXRjaGluZ2Agb3Igd2l0aCBtdWx0aXBsZSBwdXNoCitkZXN0aW5hdGlvbnMgY29uZmlndXJlZCB3aXRoIGByZW1vdGUuKi5wdXNoYCBtYXkgb3ZlcndyaXRlIHJlZnMKK290aGVyIHRoYW4gdGhlIGN1cnJlbnQgYnJhbmNoIChpbmNsdWRpbmcgbG9jYWwgcmVmcyB0aGF0IGFyZQorc3RyaWN0bHkgYmVoaW5kIHRoZWlyIHJlbW90ZSBjb3VudGVycGFydCkuICBUbyBmb3JjZSBhIHB1c2ggdG8gb25seQorb25lIGJyYW5jaCwgdXNlIGEgYCtgIGluIGZyb250IG9mIHRoZSByZWZzcGVjIHRvIHB1c2ggKGUuZyBgZ2l0IHB1c2gKK29yaWdpbiArbWFzdGVyYCB0byBmb3JjZSBhIHB1c2ggdG8gdGhlIGBtYXN0ZXJgIGJyYW5jaCkuIFNlZSB0aGUKK2A8cmVmc3BlYz4uLi5gIHNlY3Rpb24gYWJvdmUgZm9yIGRldGFpbHMuCiAKIC0tcmVwbz08cmVwb3NpdG9yeT46OgogCVRoaXMgb3B0aW9uIGlzIG9ubHkgcmVsZXZhbnQgaWYgbm8gPHJlcG9zaXRvcnk+IGFyZ3VtZW50IGlzCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1yZWJhc2UudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcmViYXNlLnR4dAppbmRleCA2YjJlMWM4Li4yODg5YmU2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1yZWJhc2UudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXJlYmFzZS50eHQKQEAgLTMyMiw3ICszMjIsMTcgQEAKIHJldmVydGluZyBhIHRvcGljIGJyYW5jaCBtZXJnZSwgYXMgdGhpcyBvcHRpb24gcmVjcmVhdGVzIHRoZSB0b3BpYyBicmFuY2ggd2l0aAogZnJlc2ggY29tbWl0cyBzbyBpdCBjYW4gYmUgcmVtZXJnZWQgc3VjY2Vzc2Z1bGx5IHdpdGhvdXQgbmVlZGluZyB0byAicmV2ZXJ0CiB0aGUgcmV2ZXJzaW9uIiAoc2VlIHRoZQotbGluazpob3d0by9yZXZlcnQtYS1mYXVsdHktbWVyZ2UudHh0W3JldmVydC1hLWZhdWx0eS1tZXJnZSBIb3ctVG9dIGZvciBkZXRhaWxzKS4KK2xpbms6aG93dG8vcmV2ZXJ0LWEtZmF1bHR5LW1lcmdlLmh0bWxbcmV2ZXJ0LWEtZmF1bHR5LW1lcmdlIEhvdy1Ub10gZm9yIGRldGFpbHMpLgorCistLWZvcmstcG9pbnQ6OgorLS1uby1mb3JrLXBvaW50OjoKKwlVc2UgJ2dpdCBtZXJnZS1iYXNlIC0tZm9yay1wb2ludCcgdG8gZmluZCBhIGJldHRlciBjb21tb24gYW5jZXN0b3IKKwliZXR3ZWVuIGB1cHN0cmVhbWAgYW5kIGBicmFuY2hgIHdoZW4gY2FsY3VsYXRpbmcgd2hpY2ggY29tbWl0cyBoYXZlCisJaGF2ZSBiZWVuIGludHJvZHVjZWQgYnkgYGJyYW5jaGAgKHNlZSBsaW5rZ2l0OmdpdC1tZXJnZS1iYXNlWzFdKS4KKysKK0lmIG5vIG5vbi1vcHRpb24gYXJndW1lbnRzIGFyZSBnaXZlbiBvbiB0aGUgY29tbWFuZCBsaW5lLCB0aGVuIHRoZSBkZWZhdWx0IGlzCitgLS1mb3JrLXBvaW50IEB7dX1gIG90aGVyd2lzZSB0aGUgYHVwc3RyZWFtYCBhcmd1bWVudCBpcyBpbnRlcnByZXRlZCBsaXRlcmFsbHkKK3VubGVzcyB0aGUgYC0tZm9yay1wb2ludGAgb3B0aW9uIGlzIHNwZWNpZmllZC4KIAogLS1pZ25vcmUtd2hpdGVzcGFjZTo6CiAtLXdoaXRlc3BhY2U9PG9wdGlvbj46OgpAQCAtNDE2LDcgKzQyNiw3IEBACiBZb3UgbWF5IGZpbmQgdGhpcyBoZWxwZnVsIGFmdGVyIHJldmVydGluZyBhIHRvcGljIGJyYW5jaCBtZXJnZSwgYXMgdGhpcyBvcHRpb24KIHJlY3JlYXRlcyB0aGUgdG9waWMgYnJhbmNoIHdpdGggZnJlc2ggY29tbWl0cyBzbyBpdCBjYW4gYmUgcmVtZXJnZWQKIHN1Y2Nlc3NmdWxseSB3aXRob3V0IG5lZWRpbmcgdG8gInJldmVydCB0aGUgcmV2ZXJzaW9uIiAoc2VlIHRoZQotbGluazpob3d0by9yZXZlcnQtYS1mYXVsdHktbWVyZ2UudHh0W3JldmVydC1hLWZhdWx0eS1tZXJnZSBIb3ctVG9dIGZvciBkZXRhaWxzKS4KK2xpbms6aG93dG8vcmV2ZXJ0LWEtZmF1bHR5LW1lcmdlLmh0bWxbcmV2ZXJ0LWEtZmF1bHR5LW1lcmdlIEhvdy1Ub10gZm9yIGRldGFpbHMpLgogCiBpbmNsdWRlOjptZXJnZS1zdHJhdGVnaWVzLnR4dFtdCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXJlbW90ZS1leHQudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcmVtb3RlLWV4dC50eHQKaW5kZXggOGNmYzc0OC4uY2QwYmI3NyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcmVtb3RlLWV4dC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcmVtb3RlLWV4dC50eHQKQEAgLTExNiwxMSArMTE2LDYgQEAKIAlkZXRlcm1pbmVkIGJ5IHRoZSBoZWxwZXIgdXNpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIChzZWUKIAlhYm92ZSkuCiAKLURvY3VtZW50YXRpb24KLS0tLS0tLS0tLS0tLS0tCi1Eb2N1bWVudGF0aW9uIGJ5IElsYXJpIExpdXN2YWFyYSwgSm9uYXRoYW4gTmllZGVyIGFuZCB0aGUgR2l0IGxpc3QKLTxnaXRAdmdlci5rZXJuZWwub3JnPgotCiBHSVQKIC0tLQogUGFydCBvZiB0aGUgbGlua2dpdDpnaXRbMV0gc3VpdGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXJlbW90ZS1mZC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZW1vdGUtZmQudHh0CmluZGV4IDkzM2MyYWQuLmJjZDM3NjYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXJlbW90ZS1mZC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcmVtb3RlLWZkLnR4dApAQCAtNTAsMTAgKzUwLDYgQEAKIGBnaXQgcHVzaCBmZDo6Nyw4L2JhciBtYXN0ZXJgOjoKIAlTYW1lIGFzIGFib3ZlLgogCi1Eb2N1bWVudGF0aW9uCi0tLS0tLS0tLS0tLS0tLQotRG9jdW1lbnRhdGlvbiBieSBJbGFyaSBMaXVzdmFhcmEgYW5kIHRoZSBHaXQgbGlzdCA8Z2l0QHZnZXIua2VybmVsLm9yZz4KLQogR0lUCiAtLS0KIFBhcnQgb2YgdGhlIGxpbmtnaXQ6Z2l0WzFdIHN1aXRlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1yZW1vdGUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcmVtb3RlLnR4dAppbmRleCA5YzNlM2JmLi4yNTA3YzhiIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1yZW1vdGUudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXJlbW90ZS50eHQKQEAgLTEzLDcgKzEzLDcgQEAKICdnaXQgcmVtb3RlIGFkZCcgWy10IDxicmFuY2g+XSBbLW0gPG1hc3Rlcj5dIFstZl0gWy0tW25vLV10YWdzXSBbLS1taXJyb3I9PGZldGNofHB1c2g+XSA8bmFtZT4gPHVybD4KICdnaXQgcmVtb3RlIHJlbmFtZScgPG9sZD4gPG5ldz4KICdnaXQgcmVtb3RlIHJlbW92ZScgPG5hbWU+Ci0nZ2l0IHJlbW90ZSBzZXQtaGVhZCcgPG5hbWU+ICgtYSB8IC1kIHwgPGJyYW5jaD4pCisnZ2l0IHJlbW90ZSBzZXQtaGVhZCcgPG5hbWU+ICgtYSB8IC0tYXV0byB8IC1kIHwgLS1kZWxldGUgfCA8YnJhbmNoPikKICdnaXQgcmVtb3RlIHNldC1icmFuY2hlcycgWy0tYWRkXSA8bmFtZT4gPGJyYW5jaD4uLi4KICdnaXQgcmVtb3RlIHNldC11cmwnIFstLXB1c2hdIDxuYW1lPiA8bmV3dXJsPiBbPG9sZHVybD5dCiAnZ2l0IHJlbW90ZSBzZXQtdXJsIC0tYWRkJyBbLS1wdXNoXSA8bmFtZT4gPG5ld3VybD4KQEAgLTEwMSw5ICsxMDEsOSBAQAogYG1hc3RlcmAsIHRoZW4gYG9yaWdpbmAgbWF5IGJlIHNwZWNpZmllZCB3aGVyZXZlciB5b3Ugd291bGQgbm9ybWFsbHkKIHNwZWNpZnkgYG9yaWdpbi9tYXN0ZXJgLgogKwotV2l0aCBgLWRgLCB0aGUgc3ltYm9saWMgcmVmIGByZWZzL3JlbW90ZXMvPG5hbWU+L0hFQURgIGlzIGRlbGV0ZWQuCitXaXRoIGAtZGAgb3IgYC0tZGVsZXRlYCwgdGhlIHN5bWJvbGljIHJlZiBgcmVmcy9yZW1vdGVzLzxuYW1lPi9IRUFEYCBpcyBkZWxldGVkLgogKwotV2l0aCBgLWFgLCB0aGUgcmVtb3RlIGlzIHF1ZXJpZWQgdG8gZGV0ZXJtaW5lIGl0cyBgSEVBRGAsIHRoZW4gdGhlCitXaXRoIGAtYWAgb3IgYC0tYXV0b2AsIHRoZSByZW1vdGUgaXMgcXVlcmllZCB0byBkZXRlcm1pbmUgaXRzIGBIRUFEYCwgdGhlbiB0aGUKIHN5bWJvbGljLXJlZiBgcmVmcy9yZW1vdGVzLzxuYW1lPi9IRUFEYCBpcyBzZXQgdG8gdGhlIHNhbWUgYnJhbmNoLiBlLmcuLCBpZiB0aGUgcmVtb3RlCiBgSEVBRGAgaXMgcG9pbnRlZCBhdCBgbmV4dGAsICJgZ2l0IHJlbW90ZSBzZXQtaGVhZCBvcmlnaW4gLWFgIiB3aWxsIHNldAogdGhlIHN5bWJvbGljLXJlZiBgcmVmcy9yZW1vdGVzL29yaWdpbi9IRUFEYCB0byBgcmVmcy9yZW1vdGVzL29yaWdpbi9uZXh0YC4gVGhpcyB3aWxsCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1yZXBhY2sudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcmVwYWNrLnR4dAppbmRleCA0YzFhZmY2Li41MDljZjczIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1yZXBhY2sudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXJlcGFjay50eHQKQEAgLTE0LDcgKzE0LDcgQEAKIERFU0NSSVBUSU9OCiAtLS0tLS0tLS0tLQogCi1UaGlzIHNjcmlwdCBpcyB1c2VkIHRvIGNvbWJpbmUgYWxsIG9iamVjdHMgdGhhdCBkbyBub3QgY3VycmVudGx5CitUaGlzIGNvbW1hbmQgaXMgdXNlZCB0byBjb21iaW5lIGFsbCBvYmplY3RzIHRoYXQgZG8gbm90IGN1cnJlbnRseQogcmVzaWRlIGluIGEgInBhY2siLCBpbnRvIGEgcGFjay4gIEl0IGNhbiBhbHNvIGJlIHVzZWQgdG8gcmUtb3JnYW5pemUKIGV4aXN0aW5nIHBhY2tzIGludG8gYSBzaW5nbGUsIG1vcmUgZWZmaWNpZW50IHBhY2suCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXJlcGxhY2UudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcmVwbGFjZS50eHQKaW5kZXggZTBiNDA1Ny4uMGEwMmY3MCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcmVwbGFjZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcmVwbGFjZS50eHQKQEAgLTEwLDcgKzEwLDcgQEAKIFt2ZXJzZV0KICdnaXQgcmVwbGFjZScgWy1mXSA8b2JqZWN0PiA8cmVwbGFjZW1lbnQ+CiAnZ2l0IHJlcGxhY2UnIC1kIDxvYmplY3Q+Li4uCi0nZ2l0IHJlcGxhY2UnIC1sIFs8cGF0dGVybj5dCisnZ2l0IHJlcGxhY2UnIFstLWZvcm1hdD08Zm9ybWF0Pl0gWy1sIFs8cGF0dGVybj5dXQogCiBERVNDUklQVElPTgogLS0tLS0tLS0tLS0KQEAgLTIwLDggKzIwLDE0IEBACiByZXBsYWNlZC4gVGhlIGNvbnRlbnQgb2YgdGhlICdyZXBsYWNlJyByZWZlcmVuY2UgaXMgdGhlIFNIQS0xIG9mIHRoZQogcmVwbGFjZW1lbnQgb2JqZWN0LgogCitUaGUgcmVwbGFjZWQgb2JqZWN0IGFuZCB0aGUgcmVwbGFjZW1lbnQgb2JqZWN0IG11c3QgYmUgb2YgdGhlIHNhbWUgdHlwZS4KK1RoaXMgcmVzdHJpY3Rpb24gY2FuIGJlIGJ5cGFzc2VkIHVzaW5nIGAtZmAuCisKIFVubGVzcyBgLWZgIGlzIGdpdmVuLCB0aGUgJ3JlcGxhY2UnIHJlZmVyZW5jZSBtdXN0IG5vdCB5ZXQgZXhpc3QuCiAKK1RoZXJlIGlzIG5vIG90aGVyIHJlc3RyaWN0aW9uIG9uIHRoZSByZXBsYWNlZCBhbmQgcmVwbGFjZW1lbnQgb2JqZWN0cy4KK01lcmdlIGNvbW1pdHMgY2FuIGJlIHJlcGxhY2VkIGJ5IG5vbi1tZXJnZSBjb21taXRzIGFuZCB2aWNlIHZlcnNhLgorCiBSZXBsYWNlbWVudCByZWZlcmVuY2VzIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0IGJ5IGFsbCBHaXQgY29tbWFuZHMKIGV4Y2VwdCB0aG9zZSBkb2luZyByZWFjaGFiaWxpdHkgdHJhdmVyc2FsIChwcnVuZSwgcGFjayB0cmFuc2ZlciBhbmQKIGZzY2spLgpAQCAtNDksMTggKzU1LDUxIEBACiBPUFRJT05TCiAtLS0tLS0tCiAtZjo6CistLWZvcmNlOjoKIAlJZiBhbiBleGlzdGluZyByZXBsYWNlIHJlZiBmb3IgdGhlIHNhbWUgb2JqZWN0IGV4aXN0cywgaXQgd2lsbAogCWJlIG92ZXJ3cml0dGVuIChpbnN0ZWFkIG9mIGZhaWxpbmcpLgogCiAtZDo6CistLWRlbGV0ZTo6CiAJRGVsZXRlIGV4aXN0aW5nIHJlcGxhY2UgcmVmcyBmb3IgdGhlIGdpdmVuIG9iamVjdHMuCiAKIC1sIDxwYXR0ZXJuPjo6CistLWxpc3QgPHBhdHRlcm4+OjoKIAlMaXN0IHJlcGxhY2UgcmVmcyBmb3Igb2JqZWN0cyB0aGF0IG1hdGNoIHRoZSBnaXZlbiBwYXR0ZXJuIChvcgogCWFsbCBpZiBubyBwYXR0ZXJuIGlzIGdpdmVuKS4KIAlUeXBpbmcgImdpdCByZXBsYWNlIiB3aXRob3V0IGFyZ3VtZW50cywgYWxzbyBsaXN0cyBhbGwgcmVwbGFjZQogCXJlZnMuCiAKKy0tZm9ybWF0PTxmb3JtYXQ+OjoKKwlXaGVuIGxpc3RpbmcsIHVzZSB0aGUgc3BlY2lmaWVkIDxmb3JtYXQ+LCB3aGljaCBjYW4gYmUgb25lIG9mCisJJ3Nob3J0JywgJ21lZGl1bScgYW5kICdsb25nJy4gV2hlbiBvbWl0dGVkLCB0aGUgZm9ybWF0CisJZGVmYXVsdHMgdG8gJ3Nob3J0Jy4KKworRk9STUFUUworLS0tLS0tLQorCitUaGUgZm9sbG93aW5nIGZvcm1hdCBhcmUgYXZhaWxhYmxlOgorCisqICdzaG9ydCc6CisJPHJlcGxhY2VkIHNoYTE+CisqICdtZWRpdW0nOgorCTxyZXBsYWNlZCBzaGExPiAtPiA8cmVwbGFjZW1lbnQgc2hhMT4KKyogJ2xvbmcnOgorCTxyZXBsYWNlZCBzaGExPiAoPHJlcGxhY2VkIHR5cGU+KSAtPiA8cmVwbGFjZW1lbnQgc2hhMT4gKDxyZXBsYWNlbWVudCB0eXBlPikKKworQ1JFQVRJTkcgUkVQTEFDRU1FTlQgT0JKRUNUUworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitsaW5rZ2l0OmdpdC1maWx0ZXItYnJhbmNoWzFdLCBsaW5rZ2l0OmdpdC1oYXNoLW9iamVjdFsxXSBhbmQKK2xpbmtnaXQ6Z2l0LXJlYmFzZVsxXSwgYW1vbmcgb3RoZXIgZ2l0IGNvbW1hbmRzLCBjYW4gYmUgdXNlZCB0byBjcmVhdGUKK3JlcGxhY2VtZW50IG9iamVjdHMgZnJvbSBleGlzdGluZyBvYmplY3RzLgorCitJZiB5b3Ugd2FudCB0byByZXBsYWNlIG1hbnkgYmxvYnMsIHRyZWVzIG9yIGNvbW1pdHMgdGhhdCBhcmUgcGFydCBvZiBhCitzdHJpbmcgb2YgY29tbWl0cywgeW91IG1heSBqdXN0IHdhbnQgdG8gY3JlYXRlIGEgcmVwbGFjZW1lbnQgc3RyaW5nIG9mCitjb21taXRzIGFuZCB0aGVuIG9ubHkgcmVwbGFjZSB0aGUgY29tbWl0IGF0IHRoZSB0aXAgb2YgdGhlIHRhcmdldAorc3RyaW5nIG9mIGNvbW1pdHMgd2l0aCB0aGUgY29tbWl0IGF0IHRoZSB0aXAgb2YgdGhlIHJlcGxhY2VtZW50IHN0cmluZworb2YgY29tbWl0cy4KKwogQlVHUwogLS0tLQogQ29tcGFyaW5nIGJsb2JzIG9yIHRyZWVzIHRoYXQgaGF2ZSBiZWVuIHJlcGxhY2VkIHdpdGggdGhvc2UgdGhhdApAQCAtNjksMTIgKzEwOCwxMyBAQAogY29tbWl0IGluc3RlYWQgb2YgdGhlIHJlcGxhY2VkIGNvbW1pdC4KIAogVGhlcmUgbWF5IGJlIG90aGVyIHByb2JsZW1zIHdoZW4gdXNpbmcgJ2dpdCByZXYtbGlzdCcgcmVsYXRlZCB0bwotcGVuZGluZyBvYmplY3RzLiBBbmQgb2YgY291cnNlIHRoaW5ncyBtYXkgYnJlYWsgaWYgYW4gb2JqZWN0IG9mIG9uZQotdHlwZSBpcyByZXBsYWNlZCBieSBhbiBvYmplY3Qgb2YgYW5vdGhlciB0eXBlIChmb3IgZXhhbXBsZSBhIGJsb2IKLXJlcGxhY2VkIGJ5IGEgY29tbWl0KS4KK3BlbmRpbmcgb2JqZWN0cy4KIAogU0VFIEFMU08KIC0tLS0tLS0tCitsaW5rZ2l0OmdpdC1oYXNoLW9iamVjdFsxXQorbGlua2dpdDpnaXQtZmlsdGVyLWJyYW5jaFsxXQorbGlua2dpdDpnaXQtcmViYXNlWzFdCiBsaW5rZ2l0OmdpdC10YWdbMV0KIGxpbmtnaXQ6Z2l0LWJyYW5jaFsxXQogbGlua2dpdDpnaXRbMV0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXJlcG8tY29uZmlnLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXJlcG8tY29uZmlnLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWVjMTE1Yi4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1yZXBvLWNvbmZpZy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1naXQtcmVwby1jb25maWcoMSkKLT09PT09PT09PT09PT09PT09PQotCi1OQU1FCi0tLS0tCi1naXQtcmVwby1jb25maWcgLSBHZXQgYW5kIHNldCByZXBvc2l0b3J5IG9yIGdsb2JhbCBvcHRpb25zCi0KLQotU1lOT1BTSVMKLS0tLS0tLS0tCi1bdmVyc2VdCi0nZ2l0IHJlcG8tY29uZmlnJyAuLi4KLQotCi1ERVNDUklQVElPTgotLS0tLS0tLS0tLS0KLQotVGhpcyBpcyBhIHN5bm9ueW0gZm9yIGxpbmtnaXQ6Z2l0LWNvbmZpZ1sxXS4gIFBsZWFzZSByZWZlciB0byB0aGUKLWRvY3VtZW50YXRpb24gb2YgdGhhdCBjb21tYW5kLgotCi1HSVQKLS0tLQotUGFydCBvZiB0aGUgbGlua2dpdDpnaXRbMV0gc3VpdGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXJldi1wYXJzZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZXYtcGFyc2UudHh0CmluZGV4IDJiMTI2YzAuLjBkMmNkY2QgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXJldi1wYXJzZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcmV2LXBhcnNlLnR4dApAQCAtMjQsOSArMjQsMjMgQEAKIAogT1BUSU9OUwogLS0tLS0tLQorCitPcGVyYXRpb24gTW9kZXMKK35+fn5+fn5+fn5+fn5+fgorCitFYWNoIG9mIHRoZXNlIG9wdGlvbnMgbXVzdCBhcHBlYXIgZmlyc3Qgb24gdGhlIGNvbW1hbmQgbGluZS4KKwogLS1wYXJzZW9wdDo6CiAJVXNlICdnaXQgcmV2LXBhcnNlJyBpbiBvcHRpb24gcGFyc2luZyBtb2RlIChzZWUgUEFSU0VPUFQgc2VjdGlvbiBiZWxvdykuCiAKKy0tc3EtcXVvdGU6OgorCVVzZSAnZ2l0IHJldi1wYXJzZScgaW4gc2hlbGwgcXVvdGluZyBtb2RlIChzZWUgU1EtUVVPVEUKKwlzZWN0aW9uIGJlbG93KS4gSW4gY29udHJhc3QgdG8gdGhlIGAtLXNxYCBvcHRpb24gYmVsb3csIHRoaXMKKwltb2RlIGRvZXMgb25seSBxdW90aW5nLiBOb3RoaW5nIGVsc2UgaXMgZG9uZSB0byBjb21tYW5kIGlucHV0LgorCitPcHRpb25zIGZvciAtLXBhcnNlb3B0Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKIC0ta2VlcC1kYXNoZGFzaDo6CiAJT25seSBtZWFuaW5nZnVsIGluIGAtLXBhcnNlb3B0YCBtb2RlLiBUZWxscyB0aGUgb3B0aW9uIHBhcnNlciB0byBlY2hvCiAJb3V0IHRoZSBmaXJzdCBgLS1gIG1ldCBpbnN0ZWFkIG9mIHNraXBwaW5nIGl0LgpAQCAtMzYsMTAgKzUwLDEyIEBACiAJdGhlIGZpcnN0IG5vbi1vcHRpb24gYXJndW1lbnQuICBUaGlzIGNhbiBiZSB1c2VkIHRvIHBhcnNlIHN1Yi1jb21tYW5kcwogCXRoYXQgdGFrZSBvcHRpb25zIHRoZW1zZWx2ZXMuCiAKLS0tc3EtcXVvdGU6OgotCVVzZSAnZ2l0IHJldi1wYXJzZScgaW4gc2hlbGwgcXVvdGluZyBtb2RlIChzZWUgU1EtUVVPVEUKLQlzZWN0aW9uIGJlbG93KS4gSW4gY29udHJhc3QgdG8gdGhlIGAtLXNxYCBvcHRpb24gYmVsb3csIHRoaXMKLQltb2RlIGRvZXMgb25seSBxdW90aW5nLiBOb3RoaW5nIGVsc2UgaXMgZG9uZSB0byBjb21tYW5kIGlucHV0LgorLS1zdHVjay1sb25nOjoKKwlPbmx5IG1lYW5pbmdmdWwgaW4gYC0tcGFyc2VvcHRgIG1vZGUuIE91dHB1dCB0aGUgb3B0aW9ucyBpbiB0aGVpcgorCWxvbmcgZm9ybSBpZiBhdmFpbGFibGUsIGFuZCB3aXRoIHRoZWlyIGFyZ3VtZW50cyBzdHVjay4KKworT3B0aW9ucyBmb3IgRmlsdGVyaW5nCit+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAogLS1yZXZzLW9ubHk6OgogCURvIG5vdCBvdXRwdXQgZmxhZ3MgYW5kIHBhcmFtZXRlcnMgbm90IG1lYW50IGZvcgpAQCAtNTUsNiArNzEsOSBAQAogLS1uby1mbGFnczo6CiAJRG8gbm90IG91dHB1dCBmbGFnIHBhcmFtZXRlcnMuCiAKK09wdGlvbnMgZm9yIE91dHB1dAorfn5+fn5+fn5+fn5+fn5+fn5+CisKIC0tZGVmYXVsdCA8YXJnPjo6CiAJSWYgdGhlcmUgaXMgbm8gcGFyYW1ldGVyIGdpdmVuIGJ5IHRoZSB1c2VyLCB1c2UgYDxhcmc+YAogCWluc3RlYWQuCkBAIC0xMTAsNiArMTI5LDE3IEBACiAJc3RyaXAgJ3tjYXJldH0nIHByZWZpeCBmcm9tIHRoZSBvYmplY3QgbmFtZXMgdGhhdCBhbHJlYWR5IGhhdmUKIAlvbmUuCiAKKy0tYWJicmV2LXJlZls9KHN0cmljdHxsb29zZSldOjoKKwlBIG5vbi1hbWJpZ3VvdXMgc2hvcnQgbmFtZSBvZiB0aGUgb2JqZWN0cyBuYW1lLgorCVRoZSBvcHRpb24gY29yZS53YXJuQW1iaWd1b3VzUmVmcyBpcyB1c2VkIHRvIHNlbGVjdCB0aGUgc3RyaWN0CisJYWJicmV2aWF0aW9uIG1vZGUuCisKKy0tc2hvcnQ6OgorLS1zaG9ydD1udW1iZXI6OgorCUluc3RlYWQgb2Ygb3V0cHV0dGluZyB0aGUgZnVsbCBTSEEtMSB2YWx1ZXMgb2Ygb2JqZWN0IG5hbWVzIHRyeSB0bworCWFiYnJldmlhdGUgdGhlbSB0byBhIHNob3J0ZXIgdW5pcXVlIG5hbWUuIFdoZW4gbm8gbGVuZ3RoIGlzIHNwZWNpZmllZAorCTcgaXMgdXNlZC4gVGhlIG1pbmltdW0gbGVuZ3RoIGlzIDQuCisKIC0tc3ltYm9saWM6OgogCVVzdWFsbHkgdGhlIG9iamVjdCBuYW1lcyBhcmUgb3V0cHV0IGluIFNIQS0xIGZvcm0gKHdpdGgKIAlwb3NzaWJsZSAne2NhcmV0fScgcHJlZml4KTsgdGhpcyBvcHRpb24gbWFrZXMgdGhlbSBvdXRwdXQgaW4gYQpAQCAtMTIzLDE2ICsxNTMsOCBAQAogCXVuZm9ydHVuYXRlbHkgbmFtZWQgdGFnICJtYXN0ZXIiKSwgYW5kIHNob3cgdGhlbSBhcyBmdWxsCiAJcmVmbmFtZXMgKGUuZy4gInJlZnMvaGVhZHMvbWFzdGVyIikuCiAKLS0tYWJicmV2LXJlZls9KHN0cmljdHxsb29zZSldOjoKLQlBIG5vbi1hbWJpZ3VvdXMgc2hvcnQgbmFtZSBvZiB0aGUgb2JqZWN0cyBuYW1lLgotCVRoZSBvcHRpb24gY29yZS53YXJuQW1iaWd1b3VzUmVmcyBpcyB1c2VkIHRvIHNlbGVjdCB0aGUgc3RyaWN0Ci0JYWJicmV2aWF0aW9uIG1vZGUuCi0KLS0tZGlzYW1iaWd1YXRlPTxwcmVmaXg+OjoKLQlTaG93IGV2ZXJ5IG9iamVjdCB3aG9zZSBuYW1lIGJlZ2lucyB3aXRoIHRoZSBnaXZlbiBwcmVmaXguCi0JVGhlIDxwcmVmaXg+IG11c3QgYmUgYXQgbGVhc3QgNCBoZXhhZGVjaW1hbCBkaWdpdHMgbG9uZyB0bwotCWF2b2lkIGxpc3RpbmcgZWFjaCBhbmQgZXZlcnkgb2JqZWN0IGluIHRoZSByZXBvc2l0b3J5IGJ5Ci0JbWlzdGFrZS4KK09wdGlvbnMgZm9yIE9iamVjdHMKK35+fn5+fn5+fn5+fn5+fn5+fn4KIAogLS1hbGw6OgogCVNob3cgYWxsIHJlZnMgZm91bmQgaW4gYHJlZnMvYC4KQEAgLTE1NSwxOCArMTc3LDM0IEBACiAJY2hhcmFjdGVyIChgP2AsIGAqYCwgb3IgYFtgKSwgaXQgaXMgdHVybmVkIGludG8gYSBwcmVmaXgKIAltYXRjaCBieSBhcHBlbmRpbmcgYC8qYC4KIAotLS1zaG93LXRvcGxldmVsOjoKLQlTaG93IHRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5LgorLS1leGNsdWRlPTxnbG9iLXBhdHRlcm4+OjoKKwlEbyBub3QgaW5jbHVkZSByZWZzIG1hdGNoaW5nICc8Z2xvYi1wYXR0ZXJuPicgdGhhdCB0aGUgbmV4dCBgLS1hbGxgLAorCWAtLWJyYW5jaGVzYCwgYC0tdGFnc2AsIGAtLXJlbW90ZXNgLCBvciBgLS1nbG9iYCB3b3VsZCBvdGhlcndpc2UKKwljb25zaWRlci4gUmVwZXRpdGlvbnMgb2YgdGhpcyBvcHRpb24gYWNjdW11bGF0ZSBleGNsdXNpb24gcGF0dGVybnMKKwl1cCB0byB0aGUgbmV4dCBgLS1hbGxgLCBgLS1icmFuY2hlc2AsIGAtLXRhZ3NgLCBgLS1yZW1vdGVzYCwgb3IKKwlgLS1nbG9iYCBvcHRpb24gKG90aGVyIG9wdGlvbnMgb3IgYXJndW1lbnRzIGRvIG5vdCBjbGVhcgorCWFjY3VtbGF0ZWQgcGF0dGVybnMpLgorKworVGhlIHBhdHRlcm5zIGdpdmVuIHNob3VsZCBub3QgYmVnaW4gd2l0aCBgcmVmcy9oZWFkc2AsIGByZWZzL3RhZ3NgLCBvcgorYHJlZnMvcmVtb3Rlc2Agd2hlbiBhcHBsaWVkIHRvIGAtLWJyYW5jaGVzYCwgYC0tdGFnc2AsIG9yIGAtLXJlbW90ZXNgLAorcmVzcGVjdGl2ZWx5LCBhbmQgdGhleSBtdXN0IGJlZ2luIHdpdGggYHJlZnMvYCB3aGVuIGFwcGxpZWQgdG8gYC0tZ2xvYmAKK29yIGAtLWFsbGAuIElmIGEgdHJhaWxpbmcgJy97YXN0ZXJpc2t9JyBpcyBpbnRlbmRlZCwgaXQgbXVzdCBiZSBnaXZlbgorZXhwbGljaXRseS4KIAotLS1zaG93LXByZWZpeDo6Ci0JV2hlbiB0aGUgY29tbWFuZCBpcyBpbnZva2VkIGZyb20gYSBzdWJkaXJlY3RvcnksIHNob3cgdGhlCi0JcGF0aCBvZiB0aGUgY3VycmVudCBkaXJlY3RvcnkgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZXZlbAotCWRpcmVjdG9yeS4KKy0tZGlzYW1iaWd1YXRlPTxwcmVmaXg+OjoKKwlTaG93IGV2ZXJ5IG9iamVjdCB3aG9zZSBuYW1lIGJlZ2lucyB3aXRoIHRoZSBnaXZlbiBwcmVmaXguCisJVGhlIDxwcmVmaXg+IG11c3QgYmUgYXQgbGVhc3QgNCBoZXhhZGVjaW1hbCBkaWdpdHMgbG9uZyB0bworCWF2b2lkIGxpc3RpbmcgZWFjaCBhbmQgZXZlcnkgb2JqZWN0IGluIHRoZSByZXBvc2l0b3J5IGJ5CisJbWlzdGFrZS4KIAotLS1zaG93LWNkdXA6OgotCVdoZW4gdGhlIGNvbW1hbmQgaXMgaW52b2tlZCBmcm9tIGEgc3ViZGlyZWN0b3J5LCBzaG93IHRoZQotCXBhdGggb2YgdGhlIHRvcC1sZXZlbCBkaXJlY3RvcnkgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQKLQlkaXJlY3RvcnkgKHR5cGljYWxseSBhIHNlcXVlbmNlIG9mICIuLi8iLCBvciBhbiBlbXB0eSBzdHJpbmcpLgorT3B0aW9ucyBmb3IgRmlsZXMKK35+fn5+fn5+fn5+fn5+fn5+CisKKy0tbG9jYWwtZW52LXZhcnM6OgorCUxpc3QgdGhlIEdJVF8qIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZSBsb2NhbCB0byB0aGUKKwlyZXBvc2l0b3J5IChlLmcuIEdJVF9ESVIgb3IgR0lUX1dPUktfVFJFRSwgYnV0IG5vdCBHSVRfRURJVE9SKS4KKwlPbmx5IHRoZSBuYW1lcyBvZiB0aGUgdmFyaWFibGVzIGFyZSBsaXN0ZWQsIG5vdCB0aGVpciB2YWx1ZSwKKwlldmVuIGlmIHRoZXkgYXJlIHNldC4KIAogLS1naXQtZGlyOjoKIAlTaG93IGAkR0lUX0RJUmAgaWYgZGVmaW5lZC4gT3RoZXJ3aXNlIHNob3cgdGhlIHBhdGggdG8KQEAgLTE4OCwxNyArMjI2LDI3IEBACiAtLWlzLWJhcmUtcmVwb3NpdG9yeTo6CiAJV2hlbiB0aGUgcmVwb3NpdG9yeSBpcyBiYXJlIHByaW50ICJ0cnVlIiwgb3RoZXJ3aXNlICJmYWxzZSIuCiAKLS0tbG9jYWwtZW52LXZhcnM6OgotCUxpc3QgdGhlIEdJVF8qIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZSBsb2NhbCB0byB0aGUKLQlyZXBvc2l0b3J5IChlLmcuIEdJVF9ESVIgb3IgR0lUX1dPUktfVFJFRSwgYnV0IG5vdCBHSVRfRURJVE9SKS4KLQlPbmx5IHRoZSBuYW1lcyBvZiB0aGUgdmFyaWFibGVzIGFyZSBsaXN0ZWQsIG5vdCB0aGVpciB2YWx1ZSwKLQlldmVuIGlmIHRoZXkgYXJlIHNldC4KKy0tcmVzb2x2ZS1naXQtZGlyIDxwYXRoPjo6CisJQ2hlY2sgaWYgPHBhdGg+IGlzIGEgdmFsaWQgcmVwb3NpdG9yeSBvciBhIGdpdGZpbGUgdGhhdAorCXBvaW50cyBhdCBhIHZhbGlkIHJlcG9zaXRvcnksIGFuZCBwcmludCB0aGUgbG9jYXRpb24gb2YgdGhlCisJcmVwb3NpdG9yeS4gIElmIDxwYXRoPiBpcyBhIGdpdGZpbGUgdGhlbiB0aGUgcmVzb2x2ZWQgcGF0aAorCXRvIHRoZSByZWFsIHJlcG9zaXRvcnkgaXMgcHJpbnRlZC4KIAotLS1zaG9ydDo6Ci0tLXNob3J0PW51bWJlcjo6Ci0JSW5zdGVhZCBvZiBvdXRwdXR0aW5nIHRoZSBmdWxsIFNIQS0xIHZhbHVlcyBvZiBvYmplY3QgbmFtZXMgdHJ5IHRvCi0JYWJicmV2aWF0ZSB0aGVtIHRvIGEgc2hvcnRlciB1bmlxdWUgbmFtZS4gV2hlbiBubyBsZW5ndGggaXMgc3BlY2lmaWVkCi0JNyBpcyB1c2VkLiBUaGUgbWluaW11bSBsZW5ndGggaXMgNC4KKy0tc2hvdy1jZHVwOjoKKwlXaGVuIHRoZSBjb21tYW5kIGlzIGludm9rZWQgZnJvbSBhIHN1YmRpcmVjdG9yeSwgc2hvdyB0aGUKKwlwYXRoIG9mIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50CisJZGlyZWN0b3J5ICh0eXBpY2FsbHkgYSBzZXF1ZW5jZSBvZiAiLi4vIiwgb3IgYW4gZW1wdHkgc3RyaW5nKS4KKworLS1zaG93LXByZWZpeDo6CisJV2hlbiB0aGUgY29tbWFuZCBpcyBpbnZva2VkIGZyb20gYSBzdWJkaXJlY3RvcnksIHNob3cgdGhlCisJcGF0aCBvZiB0aGUgY3VycmVudCBkaXJlY3RvcnkgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZXZlbAorCWRpcmVjdG9yeS4KKworLS1zaG93LXRvcGxldmVsOjoKKwlTaG93IHRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5LgorCitPdGhlciBPcHRpb25zCit+fn5+fn5+fn5+fn5+CiAKIC0tc2luY2U9ZGF0ZXN0cmluZzo6CiAtLWFmdGVyPWRhdGVzdHJpbmc6OgpAQCAtMjEzLDEyICsyNjEsNiBAQAogPGFyZ3M+Li4uOjoKIAlGbGFncyBhbmQgcGFyYW1ldGVycyB0byBiZSBwYXJzZWQuCiAKLS0tcmVzb2x2ZS1naXQtZGlyIDxwYXRoPjo6Ci0JQ2hlY2sgaWYgPHBhdGg+IGlzIGEgdmFsaWQgcmVwb3NpdG9yeSBvciBhIGdpdGZpbGUgdGhhdAotCXBvaW50cyBhdCBhIHZhbGlkIHJlcG9zaXRvcnksIGFuZCBwcmludCB0aGUgbG9jYXRpb24gb2YgdGhlCi0JcmVwb3NpdG9yeS4gIElmIDxwYXRoPiBpcyBhIGdpdGZpbGUgdGhlbiB0aGUgcmVzb2x2ZWQgcGF0aAotCXRvIHRoZSByZWFsIHJlcG9zaXRvcnkgaXMgcHJpbnRlZC4KLQogCiBpbmNsdWRlOjpyZXZpc2lvbnMudHh0W10KIApAQCAtMjYxLDcgKzMwMyw5IEBACiAJYDxmbGFncz5gIGFyZSBvZiBgKmAsIGA9YCwgYD9gIG9yIGAhYC4KIAkqIFVzZSBgPWAgaWYgdGhlIG9wdGlvbiB0YWtlcyBhbiBhcmd1bWVudC4KIAotCSogVXNlIGA/YCB0byBtZWFuIHRoYXQgdGhlIG9wdGlvbiBpcyBvcHRpb25hbCAodGhvdWdoIGl0cyB1c2UgaXMgZGlzY291cmFnZWQpLgorCSogVXNlIGA/YCB0byBtZWFuIHRoYXQgdGhlIG9wdGlvbiB0YWtlcyBhbiBvcHRpb25hbCBhcmd1bWVudC4gWW91CisJICBwcm9iYWJseSB3YW50IHRvIHVzZSB0aGUgYC0tc3R1Y2stbG9uZ2AgbW9kZSB0byBiZSBhYmxlIHRvCisJICB1bmFtYmlndW91c2x5IHBhcnNlIHRoZSBvcHRpb25hbCBhcmd1bWVudC4KIAogCSogVXNlIGAqYCB0byBtZWFuIHRoYXQgdGhpcyBvcHRpb24gc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHVzYWdlCiAJICBnZW5lcmF0ZWQgZm9yIHRoZSBgLWhgIGFyZ3VtZW50LiBJdCdzIHNob3duIGZvciBgLS1oZWxwLWFsbGAgYXMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXJldmVydC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZXZlcnQudHh0CmluZGV4IGY3OWM5ZDguLjJkZTY3YTUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXJldmVydC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcmV2ZXJ0LnR4dApAQCAtNTksNyArNTksNyBAQAogY2hhbmdlcyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdHMgdGhhdCBhcmUgbm90IGFuY2VzdG9ycyBvZiB0aGUgcHJldmlvdXNseQogcmV2ZXJ0ZWQgbWVyZ2UuICBUaGlzIG1heSBvciBtYXkgbm90IGJlIHdoYXQgeW91IHdhbnQuCiArCi1TZWUgdGhlIGxpbms6aG93dG8vcmV2ZXJ0LWEtZmF1bHR5LW1lcmdlLnR4dFtyZXZlcnQtYS1mYXVsdHktbWVyZ2UgSG93LVRvXSBmb3IKK1NlZSB0aGUgbGluazpob3d0by9yZXZlcnQtYS1mYXVsdHktbWVyZ2UuaHRtbFtyZXZlcnQtYS1mYXVsdHktbWVyZ2UgSG93LVRvXSBmb3IKIG1vcmUgZGV0YWlscy4KIAogLS1uby1lZGl0OjoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXJtLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXJtLnR4dAppbmRleCAxZDg3NmMyLi5mMWVmYzExIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1ybS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcm0udHh0CkBAIC0xMzQsMTQgKzEzNCwxNiBAQAogZ2l0IGRpZmYgLS1uYW1lLW9ubHkgLS1kaWZmLWZpbHRlcj1EIC16IHwgeGFyZ3MgLTAgZ2l0IHJtIC0tY2FjaGVkCiAtLS0tLS0tLS0tLS0tLS0tCiAKLVN1Ym1vZHVsZXMKLX5+fn5+fn5+fn4KK1NVQk1PRFVMRVMKKy0tLS0tLS0tLS0KIE9ubHkgc3VibW9kdWxlcyB1c2luZyBhIGdpdGZpbGUgKHdoaWNoIG1lYW5zIHRoZXkgd2VyZSBjbG9uZWQKIHdpdGggYSBHaXQgdmVyc2lvbiAxLjcuOCBvciBuZXdlcikgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIHdvcmsKIHRyZWUsIGFzIHRoZWlyIHJlcG9zaXRvcnkgbGl2ZXMgaW5zaWRlIHRoZSAuZ2l0IGRpcmVjdG9yeSBvZiB0aGUKIHN1cGVycHJvamVjdC4gSWYgYSBzdWJtb2R1bGUgKG9yIG9uZSBvZiB0aG9zZSBuZXN0ZWQgaW5zaWRlIGl0KQogc3RpbGwgdXNlcyBhIC5naXQgZGlyZWN0b3J5LCBgZ2l0IHJtYCB3aWxsIGZhaWwgLSBubyBtYXR0ZXIgaWYgZm9yY2VkCi1vciBub3QgLSB0byBwcm90ZWN0IHRoZSBzdWJtb2R1bGUncyBoaXN0b3J5Lgorb3Igbm90IC0gdG8gcHJvdGVjdCB0aGUgc3VibW9kdWxlJ3MgaGlzdG9yeS4gSWYgaXQgZXhpc3RzIHRoZQorc3VibW9kdWxlLjxuYW1lPiBzZWN0aW9uIGluIHRoZSBsaW5rZ2l0OmdpdG1vZHVsZXNbNV0gZmlsZSB3aWxsIGFsc28KK2JlIHJlbW92ZWQgYW5kIHRoYXQgZmlsZSB3aWxsIGJlIHN0YWdlZCAodW5sZXNzIC0tY2FjaGVkIG9yIC1uIGFyZSB1c2VkKS4KIAogQSBzdWJtb2R1bGUgaXMgY29uc2lkZXJlZCB1cC10by1kYXRlIHdoZW4gdGhlIEhFQUQgaXMgdGhlIHNhbWUgYXMKIHJlY29yZGVkIGluIHRoZSBpbmRleCwgbm8gdHJhY2tlZCBmaWxlcyBhcmUgbW9kaWZpZWQgYW5kIG5vIHVudHJhY2tlZApAQCAtMTY4LDYgKzE3MCwxNSBAQAogCShpLmUuIHlvdSBhcmUgbGlzdGluZyB0aGUgZmlsZXMgZXhwbGljaXRseSksIGl0CiAJZG9lcyBub3QgcmVtb3ZlIGBzdWJkaXIvZ2l0LWZvby5zaGAuCiAKK0JVR1MKKy0tLS0KK0VhY2ggdGltZSBhIHN1cGVycHJvamVjdCB1cGRhdGUgcmVtb3ZlcyBhIHBvcHVsYXRlZCBzdWJtb2R1bGUKKyhlLmcuIHdoZW4gc3dpdGNoaW5nIGJldHdlZW4gY29tbWl0cyBiZWZvcmUgYW5kIGFmdGVyIHRoZSByZW1vdmFsKSBhCitzdGFsZSBzdWJtb2R1bGUgY2hlY2tvdXQgd2lsbCByZW1haW4gaW4gdGhlIG9sZCBsb2NhdGlvbi4gUmVtb3ZpbmcgdGhlCitvbGQgZGlyZWN0b3J5IGlzIG9ubHkgc2FmZSB3aGVuIGl0IHVzZXMgYSBnaXRmaWxlLCBhcyBvdGhlcndpc2UgdGhlCitoaXN0b3J5IG9mIHRoZSBzdWJtb2R1bGUgd2lsbCBiZSBkZWxldGVkIHRvby4gVGhpcyBzdGVwIHdpbGwgYmUKK29ic29sZXRlIHdoZW4gcmVjdXJzaXZlIHN1Ym1vZHVsZSB1cGRhdGUgaGFzIGJlZW4gaW1wbGVtZW50ZWQuCisKIFNFRSBBTFNPCiAtLS0tLS0tLQogbGlua2dpdDpnaXQtYWRkWzFdCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1zaC1zZXR1cC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1zaC1zZXR1cC50eHQKaW5kZXggNWQ3MDlkMC4uNGY2N2M0YyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtc2gtc2V0dXAudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXNoLXNldHVwLnR4dApAQCAtNDEsOSArNDEsMTEgQEAKIAlkaWUgd2l0aCB0aGUgdXNhZ2UgbWVzc2FnZS4KIAogc2V0X3JlZmxvZ19hY3Rpb246OgotCXNldCB0aGUgbWVzc2FnZSB0aGF0IHdpbGwgYmUgcmVjb3JkZWQgdG8gZGVzY3JpYmUgdGhlCi0JZW5kLXVzZXIgYWN0aW9uIGluIHRoZSByZWZsb2csIHdoZW4gdGhlIHNjcmlwdCB1cGRhdGVzIGEKLQlyZWYuCisJU2V0IEdJVF9SRUZMT0dfQUNUSU9OIGVudmlyb25tZW50IHRvIGEgZ2l2ZW4gc3RyaW5nICh0eXBpY2FsbHkKKwl0aGUgbmFtZSBvZiB0aGUgcHJvZ3JhbSkgdW5sZXNzIGl0IGlzIGFscmVhZHkgc2V0LiAgV2hlbmV2ZXIKKwl0aGUgc2NyaXB0IHJ1bnMgYSBgZ2l0YCBjb21tYW5kIHRoYXQgdXBkYXRlcyByZWZzLCBhIHJlZmxvZworCWVudHJ5IGlzIGNyZWF0ZWQgdXNpbmcgdGhlIHZhbHVlIG9mIHRoaXMgc3RyaW5nIHRvIGxlYXZlIHRoZQorCXJlY29yZCBvZiB3aGF0IGNvbW1hbmQgdXBkYXRlZCB0aGUgcmVmLgogCiBnaXRfZWRpdG9yOjoKIAlydW5zIGFuIGVkaXRvciBvZiB1c2VyJ3MgY2hvaWNlIChHSVRfRURJVE9SLCBjb3JlLmVkaXRvciwgVklTVUFMIG9yCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1zaG93LXJlZi50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1zaG93LXJlZi50eHQKaW5kZXggYjBhMzA5Yi4uZmZkMWIwMyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtc2hvdy1yZWYudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXNob3ctcmVmLnR4dApAQCAtMTc1LDYgKzE3NSw3IEBACiAKIFNFRSBBTFNPCiAtLS0tLS0tLQorbGlua2dpdDpnaXQtZm9yLWVhY2gtcmVmWzFdLAogbGlua2dpdDpnaXQtbHMtcmVtb3RlWzFdLAogbGlua2dpdDpnaXQtdXBkYXRlLXJlZlsxXSwKIGxpbmtnaXQ6Z2l0cmVwb3NpdG9yeS1sYXlvdXRbNV0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXN0YXR1cy50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1zdGF0dXMudHh0CmluZGV4IDkwNDZkZjkuLmE0YWNhYTAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXN0YXR1cy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtc3RhdHVzLnR4dApAQCAtMjEwLDcgKzIxMCwxMyBAQAogSWYgYHN0YXR1cy5zdWJtb2R1bGVzdW1tYXJ5YCBpcyBzZXQgdG8gYSBub24gemVybyBudW1iZXIgb3IgdHJ1ZSAoaWRlbnRpY2FsCiB0byAtMSBvciBhbiB1bmxpbWl0ZWQgbnVtYmVyKSwgdGhlIHN1Ym1vZHVsZSBzdW1tYXJ5IHdpbGwgYmUgZW5hYmxlZCBmb3IKIHRoZSBsb25nIGZvcm1hdCBhbmQgYSBzdW1tYXJ5IG9mIGNvbW1pdHMgZm9yIG1vZGlmaWVkIHN1Ym1vZHVsZXMgd2lsbCBiZQotc2hvd24gKHNlZSAtLXN1bW1hcnktbGltaXQgb3B0aW9uIG9mIGxpbmtnaXQ6Z2l0LXN1Ym1vZHVsZVsxXSkuCitzaG93biAoc2VlIC0tc3VtbWFyeS1saW1pdCBvcHRpb24gb2YgbGlua2dpdDpnaXQtc3VibW9kdWxlWzFdKS4gUGxlYXNlIG5vdGUKK3RoYXQgdGhlIHN1bW1hcnkgb3V0cHV0IGZyb20gdGhlIHN0YXR1cyBjb21tYW5kIHdpbGwgYmUgc3VwcHJlc3NlZCBmb3IgYWxsCitzdWJtb2R1bGVzIHdoZW4gYGRpZmYuaWdub3JlU3VibW9kdWxlc2AgaXMgc2V0IHRvICdhbGwnIG9yIG9ubHkgZm9yIHRob3NlCitzdWJtb2R1bGVzIHdoZXJlIGBzdWJtb2R1bGUuPG5hbWU+Lmlnbm9yZT1hbGxgLiBUbyBhbHNvIHZpZXcgdGhlIHN1bW1hcnkgZm9yCitpZ25vcmVkIHN1Ym1vZHVsZXMgeW91IGNhbiBlaXRoZXIgdXNlIHRoZSAtLWlnbm9yZS1zdWJtb2R1bGVzPWRpcnR5IGNvbW1hbmQKK2xpbmUgb3B0aW9uIG9yIHRoZSAnZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5JyBjb21tYW5kLCB3aGljaCBzaG93cyBhIHNpbWlsYXIKK291dHB1dCBidXQgZG9lcyBub3QgaG9ub3IgdGhlc2Ugc2V0dGluZ3MuCiAKIFNFRSBBTFNPCiAtLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtc3ZuLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXN2bi50eHQKaW5kZXggNGRkM2JjYi4uMzBjNWVlMiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtc3ZuLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1zdm4udHh0CkBAIC03OSw4ICs3OSwyMSBAQAogCXRyYWlsaW5nIHNsYXNoLCBzbyBiZSBzdXJlIHlvdSBpbmNsdWRlIG9uZSBpbiB0aGUKIAlhcmd1bWVudCBpZiB0aGF0IGlzIHdoYXQgeW91IHdhbnQuICBJZiAtLWJyYW5jaGVzLy1iIGlzCiAJc3BlY2lmaWVkLCB0aGUgcHJlZml4IG11c3QgaW5jbHVkZSBhIHRyYWlsaW5nIHNsYXNoLgotCVNldHRpbmcgYSBwcmVmaXggaXMgdXNlZnVsIGlmIHlvdSB3aXNoIHRvIHRyYWNrIG11bHRpcGxlCi0JcHJvamVjdHMgdGhhdCBzaGFyZSBhIGNvbW1vbiByZXBvc2l0b3J5LgorCVNldHRpbmcgYSBwcmVmaXggKHdpdGggYSB0cmFpbGluZyBzbGFzaCkgaXMgc3Ryb25nbHkKKwllbmNvdXJhZ2VkIGluIGFueSBjYXNlLCBhcyB5b3VyIFNWTi10cmFja2luZyByZWZzIHdpbGwKKwl0aGVuIGJlIGxvY2F0ZWQgYXQgInJlZnMvcmVtb3Rlcy8kcHJlZml4LyoiLCB3aGljaCBpcworCWNvbXBhdGlibGUgd2l0aCBHaXQncyBvd24gcmVtb3RlLXRyYWNraW5nIHJlZiBsYXlvdXQKKwkocmVmcy9yZW1vdGVzLyRyZW1vdGUvKikuIFNldHRpbmcgYSBwcmVmaXggaXMgYWxzbyB1c2VmdWwKKwlpZiB5b3Ugd2lzaCB0byB0cmFjayBtdWx0aXBsZSBwcm9qZWN0cyB0aGF0IHNoYXJlIGEgY29tbW9uCisJcmVwb3NpdG9yeS4KKysKK05PVEU6IEluIEdpdCB2Mi4wLCB0aGUgZGVmYXVsdCBwcmVmaXggd2lsbCBDSEFOR0UgZnJvbSAiIiAobm8gcHJlZml4KQordG8gIm9yaWdpbi8iLiBUaGlzIGlzIGRvbmUgdG8gcHV0IFNWTi10cmFja2luZyByZWZzIGF0CisicmVmcy9yZW1vdGVzL29yaWdpbi8qIiBpbnN0ZWFkIG9mICJyZWZzL3JlbW90ZXMvKiIsIGFuZCBtYWtlIHRoZW0KK21vcmUgY29tcGF0aWJsZSB3aXRoIGhvdyBHaXQncyBvd24gcmVtb3RlLXRyYWNraW5nIHJlZnMgYXJlIG9yZ2FuaXplZAorKGkuZS4gcmVmcy9yZW1vdGVzLyRyZW1vdGUvKikuIFlvdSBjYW4gZW5qb3kgdGhlIHNhbWUgYmVuZWZpdHMgdG9kYXksCitieSB1c2luZyB0aGUgLS1wcmVmaXggb3B0aW9uLgorCiAtLWlnbm9yZS1wYXRocz08cmVnZXg+OzsKIAlXaGVuIHBhc3NlZCB0byAnaW5pdCcgb3IgJ2Nsb25lJyB0aGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsCiAJYmUgcHJlc2VydmVkIGFzIGEgY29uZmlnIGtleS4gIFNlZSAnZmV0Y2gnIGZvciBhIGRlc2NyaXB0aW9uCkBAIC0xMDQsMTkgKzExNywyMiBAQAogJ2ZldGNoJzo6CiAJRmV0Y2ggdW5mZXRjaGVkIHJldmlzaW9ucyBmcm9tIHRoZSBTdWJ2ZXJzaW9uIHJlbW90ZSB3ZSBhcmUKIAl0cmFja2luZy4gIFRoZSBuYW1lIG9mIHRoZSBbc3ZuLXJlbW90ZSAiLi4uIl0gc2VjdGlvbiBpbiB0aGUKLQkuZ2l0L2NvbmZpZyBmaWxlIG1heSBiZSBzcGVjaWZpZWQgYXMgYW4gb3B0aW9uYWwgY29tbWFuZC1saW5lCi0JYXJndW1lbnQuCisJJEdJVF9ESVIvY29uZmlnIGZpbGUgbWF5IGJlIHNwZWNpZmllZCBhcyBhbiBvcHRpb25hbAorCWNvbW1hbmQtbGluZSBhcmd1bWVudC4KKysKK1RoaXMgYXV0b21hdGljYWxseSB1cGRhdGVzIHRoZSByZXZfbWFwIGlmIG5lZWRlZCAoc2VlCisnJEdJVF9ESVIvc3ZuL1wqXCovLnJldl9tYXAuKicgaW4gdGhlIEZJTEVTIHNlY3Rpb24gYmVsb3cgZm9yIGRldGFpbHMpLgogCiAtLWxvY2FsdGltZTs7Ci0JU3RvcmUgR2l0IGNvbW1pdCB0aW1lcyBpbiB0aGUgbG9jYWwgdGltZXpvbmUgaW5zdGVhZCBvZiBVVEMuICBUaGlzCisJU3RvcmUgR2l0IGNvbW1pdCB0aW1lcyBpbiB0aGUgbG9jYWwgdGltZSB6b25lIGluc3RlYWQgb2YgVVRDLiAgVGhpcwogCW1ha2VzICdnaXQgbG9nJyAoZXZlbiB3aXRob3V0IC0tZGF0ZT1sb2NhbCkgc2hvdyB0aGUgc2FtZSB0aW1lcwotCXRoYXQgYHN2biBsb2dgIHdvdWxkIGluIHRoZSBsb2NhbCB0aW1lem9uZS4KKwl0aGF0IGBzdm4gbG9nYCB3b3VsZCBpbiB0aGUgbG9jYWwgdGltZSB6b25lLgogKwogVGhpcyBkb2Vzbid0IGludGVyZmVyZSB3aXRoIGludGVyb3BlcmF0aW5nIHdpdGggdGhlIFN1YnZlcnNpb24KIHJlcG9zaXRvcnkgeW91IGNsb25lZCBmcm9tLCBidXQgaWYgeW91IHdpc2ggZm9yIHlvdXIgbG9jYWwgR2l0CiByZXBvc2l0b3J5IHRvIGJlIGFibGUgdG8gaW50ZXJvcGVyYXRlIHdpdGggc29tZW9uZSBlbHNlJ3MgbG9jYWwgR2l0CiByZXBvc2l0b3J5LCBlaXRoZXIgZG9uJ3QgdXNlIHRoaXMgb3B0aW9uIG9yIHlvdSBzaG91bGQgYm90aCB1c2UgaXQgaW4KLXRoZSBzYW1lIGxvY2FsIHRpbWV6b25lLgordGhlIHNhbWUgbG9jYWwgdGltZSB6b25lLgogCiAtLXBhcmVudDs7CiAJRmV0Y2ggb25seSBmcm9tIHRoZSBTVk4gcGFyZW50IG9mIHRoZSBjdXJyZW50IEhFQUQuCkBAIC0xNTksMTEgKzE3NSwxMSBAQAogCXByZWNlZGVuY2Ugb3ZlciAnLS1pbmNsdWRlLXBhdGhzJy4KIAogLS1sb2ctd2luZG93LXNpemU9PG4+OzsKLSAgICBGZXRjaCA8bj4gbG9nIGVudHJpZXMgcGVyIHJlcXVlc3Qgd2hlbiBzY2FubmluZyBTdWJ2ZXJzaW9uIGhpc3RvcnkuCi0gICAgVGhlIGRlZmF1bHQgaXMgMTAwLiBGb3IgdmVyeSBsYXJnZSBTdWJ2ZXJzaW9uIHJlcG9zaXRvcmllcywgbGFyZ2VyCi0gICAgdmFsdWVzIG1heSBiZSBuZWVkZWQgZm9yICdjbG9uZScvJ2ZldGNoJyB0byBjb21wbGV0ZSBpbiByZWFzb25hYmxlCi0gICAgdGltZS4gQnV0IG92ZXJseSBsYXJnZSB2YWx1ZXMgbWF5IGxlYWQgdG8gaGlnaGVyIG1lbW9yeSB1c2FnZSBhbmQKLSAgICByZXF1ZXN0IHRpbWVvdXRzLgorCUZldGNoIDxuPiBsb2cgZW50cmllcyBwZXIgcmVxdWVzdCB3aGVuIHNjYW5uaW5nIFN1YnZlcnNpb24gaGlzdG9yeS4KKwlUaGUgZGVmYXVsdCBpcyAxMDAuIEZvciB2ZXJ5IGxhcmdlIFN1YnZlcnNpb24gcmVwb3NpdG9yaWVzLCBsYXJnZXIKKwl2YWx1ZXMgbWF5IGJlIG5lZWRlZCBmb3IgJ2Nsb25lJy8nZmV0Y2gnIHRvIGNvbXBsZXRlIGluIHJlYXNvbmFibGUKKwl0aW1lLiBCdXQgb3Zlcmx5IGxhcmdlIHZhbHVlcyBtYXkgbGVhZCB0byBoaWdoZXIgbWVtb3J5IHVzYWdlIGFuZAorCXJlcXVlc3QgdGltZW91dHMuCiAKICdjbG9uZSc6OgogCVJ1bnMgJ2luaXQnIGFuZCAnZmV0Y2gnLiAgSXQgd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhCkBAIC0yMDEsNiArMjE3LDkgQEAKICsKIExpa2UgJ2dpdCByZWJhc2UnOyB0aGlzIHJlcXVpcmVzIHRoYXQgdGhlIHdvcmtpbmcgdHJlZSBiZSBjbGVhbgogYW5kIGhhdmUgbm8gdW5jb21taXR0ZWQgY2hhbmdlcy4KKysKK1RoaXMgYXV0b21hdGljYWxseSB1cGRhdGVzIHRoZSByZXZfbWFwIGlmIG5lZWRlZCAoc2VlCisnJEdJVF9ESVIvc3ZuL1wqXCovLnJldl9tYXAuKicgaW4gdGhlIEZJTEVTIHNlY3Rpb24gYmVsb3cgZm9yIGRldGFpbHMpLgogCiAtbDs7CiAtLWxvY2FsOzsKQEAgLTI1Niw3ICsyNzUsNyBAQAogCUZvciBlYWNoIHBhdGNoLCBvbmUgbWF5IGFuc3dlciAieWVzIiAoYWNjZXB0IHRoaXMgcGF0Y2gpLCAibm8iIChkaXNjYXJkIHRoaXMKIAlwYXRjaCksICJhbGwiIChhY2NlcHQgYWxsIHBhdGNoZXMpLCBvciAicXVpdCIuCiAJKwotICAgICAgICdnaXQgc3ZuIGRjb21taXQnIHJldHVybnMgaW1tZWRpYXRlbHkgaWYgYW5zd2VyIGlzICJubyIgb3IgInF1aXQiLCB3aXRob3V0CisJJ2dpdCBzdm4gZGNvbW1pdCcgcmV0dXJucyBpbW1lZGlhdGVseSBpZiBhbnN3ZXIgaXMgIm5vIiBvciAicXVpdCIsIHdpdGhvdXQKIAljb21taXR0aW5nIGFueXRoaW5nIHRvIFNWTi4KIAogJ2JyYW5jaCc6OgpAQCAtMzQ3LDEyICszNjYsMTIgQEAKIEFueSBvdGhlciBhcmd1bWVudHMgYXJlIHBhc3NlZCBkaXJlY3RseSB0byAnZ2l0IGxvZycKIAogJ2JsYW1lJzo6Ci0gICAgICAgU2hvdyB3aGF0IHJldmlzaW9uIGFuZCBhdXRob3IgbGFzdCBtb2RpZmllZCBlYWNoIGxpbmUgb2YgYSBmaWxlLiBUaGUKLSAgICAgICBvdXRwdXQgb2YgdGhpcyBtb2RlIGlzIGZvcm1hdC1jb21wYXRpYmxlIHdpdGggdGhlIG91dHB1dCBvZgotICAgICAgIGBzdm4gYmxhbWUnIGJ5IGRlZmF1bHQuIExpa2UgdGhlIFNWTiBibGFtZSBjb21tYW5kLAotICAgICAgIGxvY2FsIHVuY29tbWl0dGVkIGNoYW5nZXMgaW4gdGhlIHdvcmtpbmcgdHJlZSBhcmUgaWdub3JlZDsKLSAgICAgICB0aGUgdmVyc2lvbiBvZiB0aGUgZmlsZSBpbiB0aGUgSEVBRCByZXZpc2lvbiBpcyBhbm5vdGF0ZWQuIFVua25vd24KLSAgICAgICBhcmd1bWVudHMgYXJlIHBhc3NlZCBkaXJlY3RseSB0byAnZ2l0IGJsYW1lJy4KKwlTaG93IHdoYXQgcmV2aXNpb24gYW5kIGF1dGhvciBsYXN0IG1vZGlmaWVkIGVhY2ggbGluZSBvZiBhIGZpbGUuIFRoZQorCW91dHB1dCBvZiB0aGlzIG1vZGUgaXMgZm9ybWF0LWNvbXBhdGlibGUgd2l0aCB0aGUgb3V0cHV0IG9mCisJYHN2biBibGFtZScgYnkgZGVmYXVsdC4gTGlrZSB0aGUgU1ZOIGJsYW1lIGNvbW1hbmQsCisJbG9jYWwgdW5jb21taXR0ZWQgY2hhbmdlcyBpbiB0aGUgd29ya2luZyB0cmVlIGFyZSBpZ25vcmVkOworCXRoZSB2ZXJzaW9uIG9mIHRoZSBmaWxlIGluIHRoZSBIRUFEIHJldmlzaW9uIGlzIGFubm90YXRlZC4gVW5rbm93bgorCWFyZ3VtZW50cyBhcmUgcGFzc2VkIGRpcmVjdGx5IHRvICdnaXQgYmxhbWUnLgogKwogLS1naXQtZm9ybWF0OzsKIAlQcm9kdWNlIG91dHB1dCBpbiB0aGUgc2FtZSBmb3JtYXQgYXMgJ2dpdCBibGFtZScsIGJ1dCB3aXRoCkBAIC00MzUsOCArNDU0LDggQEAKIAlzcGVjaWZpYyByZXZpc2lvbi4KIAogJ2djJzo6Ci0JQ29tcHJlc3MgJEdJVF9ESVIvc3ZuLzxyZWZuYW1lPi91bmhhbmRsZWQubG9nIGZpbGVzIGluIC5naXQvc3ZuCi0JYW5kIHJlbW92ZSAkR0lUX0RJUi9zdm4vPHJlZm5hbWU+aW5kZXggZmlsZXMgaW4gLmdpdC9zdm4uCisJQ29tcHJlc3MgJEdJVF9ESVIvc3ZuLzxyZWZuYW1lPi91bmhhbmRsZWQubG9nIGZpbGVzIGFuZCByZW1vdmUKKwkkR0lUX0RJUi9zdm4vPHJlZm5hbWU+L2luZGV4IGZpbGVzLgogCiAncmVzZXQnOjoKIAlVbmRvZXMgdGhlIGVmZmVjdHMgb2YgJ2ZldGNoJyBiYWNrIHRvIHRoZSBzcGVjaWZpZWQgcmV2aXNpb24uCkBAIC00NDksOSArNDY4LDEwIEBACiAJZmlsZSBjYW5ub3QgYmUgaWdub3JlZCBmb3JldmVyICh3aXRoIC0taWdub3JlLXBhdGhzKSB0aGUgb25seQogCXdheSB0byByZXBhaXIgdGhlIHJlcG8gaXMgdG8gdXNlICdyZXNldCcuCiArCi1Pbmx5IHRoZSByZXZfbWFwIGFuZCByZWZzL3JlbW90ZXMvZ2l0LXN2biBhcmUgY2hhbmdlZC4gIEZvbGxvdyAncmVzZXQnCi13aXRoIGEgJ2ZldGNoJyBhbmQgdGhlbiAnZ2l0IHJlc2V0JyBvciAnZ2l0IHJlYmFzZScgdG8gbW92ZSBsb2NhbAotYnJhbmNoZXMgb250byB0aGUgbmV3IHRyZWUuCitPbmx5IHRoZSByZXZfbWFwIGFuZCByZWZzL3JlbW90ZXMvZ2l0LXN2biBhcmUgY2hhbmdlZCAoc2VlCisnJEdJVF9ESVIvc3ZuL1wqXCovLnJldl9tYXAuKicgaW4gdGhlIEZJTEVTIHNlY3Rpb24gYmVsb3cgZm9yIGRldGFpbHMpLgorRm9sbG93ICdyZXNldCcgd2l0aCBhICdmZXRjaCcgYW5kIHRoZW4gJ2dpdCByZXNldCcgb3IgJ2dpdCByZWJhc2UnIHRvCittb3ZlIGxvY2FsIGJyYW5jaGVzIG9udG8gdGhlIG5ldyB0cmVlLgogCiAtciA8bj47OwogLS1yZXZpc2lvbj08bj47OwpAQCAtNjg0LDcgKzcwNCw3IEBACiArCiBUaGlzIG9wdGlvbiBjYW4gb25seSBiZSB1c2VkIGZvciBvbmUtc2hvdCBpbXBvcnRzIGFzICdnaXQgc3ZuJwogd2lsbCBub3QgYmUgYWJsZSB0byBmZXRjaCBhZ2FpbiB3aXRob3V0IG1ldGFkYXRhLiBBZGRpdGlvbmFsbHksCi1pZiB5b3UgbG9zZSB5b3VyIC5naXQvc3ZuLyoqLy5yZXZfbWFwLiogZmlsZXMsICdnaXQgc3ZuJyB3aWxsIG5vdAoraWYgeW91IGxvc2UgeW91ciAnJEdJVF9ESVIvc3ZuL1wqXCovLnJldl9tYXAuKicgZmlsZXMsICdnaXQgc3ZuJyB3aWxsIG5vdAogYmUgYWJsZSB0byByZWJ1aWxkIHRoZW0uCiArCiBUaGUgJ2dpdCBzdm4gbG9nJyBjb21tYW5kIHdpbGwgbm90IHdvcmsgb24gcmVwb3NpdG9yaWVzIHVzaW5nCkBAIC04MDQsMTYgKzgyNCwxNiBAQAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgQ2xvbmUgYSByZXBvIHdpdGggc3RhbmRhcmQgU1ZOIGRpcmVjdG9yeSBsYXlvdXQgKGxpa2UgZ2l0IGNsb25lKToKLQlnaXQgc3ZuIGNsb25lIGh0dHA6Ly9zdm4uZXhhbXBsZS5jb20vcHJvamVjdCAtLXN0ZGxheW91dAorCWdpdCBzdm4gY2xvbmUgaHR0cDovL3N2bi5leGFtcGxlLmNvbS9wcm9qZWN0IC0tc3RkbGF5b3V0IC0tcHJlZml4IHN2bi8KICMgT3IsIGlmIHRoZSByZXBvIHVzZXMgYSBub24tc3RhbmRhcmQgZGlyZWN0b3J5IGxheW91dDoKLQlnaXQgc3ZuIGNsb25lIGh0dHA6Ly9zdm4uZXhhbXBsZS5jb20vcHJvamVjdCAtVCB0ciAtYiBicmFuY2ggLXQgdGFnCisJZ2l0IHN2biBjbG9uZSBodHRwOi8vc3ZuLmV4YW1wbGUuY29tL3Byb2plY3QgLVQgdHIgLWIgYnJhbmNoIC10IHRhZyAtLXByZWZpeCBzdm4vCiAjIFZpZXcgYWxsIGJyYW5jaGVzIGFuZCB0YWdzIHlvdSBoYXZlIGNsb25lZDoKIAlnaXQgYnJhbmNoIC1yCiAjIENyZWF0ZSBhIG5ldyBicmFuY2ggaW4gU1ZOCi0gICAgZ2l0IHN2biBicmFuY2ggd2FsZG8KKwlnaXQgc3ZuIGJyYW5jaCB3YWxkbwogIyBSZXNldCB5b3VyIG1hc3RlciB0byB0cnVuayAob3IgYW55IG90aGVyIGJyYW5jaCwgcmVwbGFjaW5nICd0cnVuaycKICMgd2l0aCB0aGUgYXBwcm9wcmlhdGUgbmFtZSk6Ci0JZ2l0IHJlc2V0IC0taGFyZCByZW1vdGVzL3RydW5rCisJZ2l0IHJlc2V0IC0taGFyZCBzdm4vdHJ1bmsKICMgWW91IG1heSBvbmx5IGRjb21taXQgdG8gb25lIGJyYW5jaC90YWcvdHJ1bmsgYXQgYSB0aW1lLiAgVGhlIHVzYWdlCiAjIG9mIGRjb21taXQvcmViYXNlL3Nob3ctaWdub3JlIHNob3VsZCBiZSB0aGUgc2FtZSBhcyBhYm92ZS4KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtODI3LDcgKzg0Nyw3IEBACiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBEbyB0aGUgaW5pdGlhbCBpbXBvcnQgb24gYSBzZXJ2ZXIKLQlzc2ggc2VydmVyICJjZCAvcHViICYmIGdpdCBzdm4gY2xvbmUgaHR0cDovL3N2bi5leGFtcGxlLmNvbS9wcm9qZWN0CisJc3NoIHNlcnZlciAiY2QgL3B1YiAmJiBnaXQgc3ZuIGNsb25lIGh0dHA6Ly9zdm4uZXhhbXBsZS5jb20vcHJvamVjdCBbb3B0aW9ucy4uLl0iCiAjIENsb25lIGxvY2FsbHkgLSBtYWtlIHN1cmUgdGhlIHJlZnMvcmVtb3Rlcy8gc3BhY2UgbWF0Y2hlcyB0aGUgc2VydmVyCiAJbWtkaXIgcHJvamVjdAogCWNkIHByb2plY3QKQEAgLTg0MCw4ICs4NjAsOSBAQAogCWdpdCBjb25maWcgLS1yZW1vdmUtc2VjdGlvbiByZW1vdGUub3JpZ2luCiAjIENyZWF0ZSBhIGxvY2FsIGJyYW5jaCBmcm9tIG9uZSBvZiB0aGUgYnJhbmNoZXMganVzdCBmZXRjaGVkCiAJZ2l0IGNoZWNrb3V0IC1iIG1hc3RlciBGRVRDSF9IRUFECi0jIEluaXRpYWxpemUgJ2dpdCBzdm4nIGxvY2FsbHkgKGJlIHN1cmUgdG8gdXNlIHRoZSBzYW1lIFVSTCBhbmQgLVQvLWIvLXQgb3B0aW9ucyBhcyB3ZXJlIHVzZWQgb24gc2VydmVyKQotCWdpdCBzdm4gaW5pdCBodHRwOi8vc3ZuLmV4YW1wbGUuY29tL3Byb2plY3QKKyMgSW5pdGlhbGl6ZSAnZ2l0IHN2bicgbG9jYWxseSAoYmUgc3VyZSB0byB1c2UgdGhlIHNhbWUgVVJMIGFuZAorIyAtLXN0ZGxheW91dC8tVC8tYi8tdC8tLXByZWZpeCBvcHRpb25zIGFzIHdlcmUgdXNlZCBvbiBzZXJ2ZXIpCisJZ2l0IHN2biBpbml0IGh0dHA6Ly9zdm4uZXhhbXBsZS5jb20vcHJvamVjdCBbb3B0aW9ucy4uLl0KICMgUHVsbCB0aGUgbGF0ZXN0IGNoYW5nZXMgZnJvbSBTdWJ2ZXJzaW9uCiAJZ2l0IHN2biByZWJhc2UKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTczLDEyICs5OTQsMjIgQEAKIGJyYW5jaGVzIGFuZCB0YWdzIGlzIHJlcXVpcmVkLCB0aGUgb3B0aW9ucyAnLS10cnVuaycgLyAnLS1icmFuY2hlcycgLwogJy0tdGFncycgbXVzdCBiZSB1c2VkLgogCitXaGVuIHVzaW5nIHRoZSBvcHRpb25zIGZvciBkZXNjcmliaW5nIHRoZSByZXBvc2l0b3J5IGxheW91dCAoLS10cnVuaywKKy0tdGFncywgLS1icmFuY2hlcywgLS1zdGRsYXlvdXQpLCBwbGVhc2UgYWxzbyBzcGVjaWZ5IHRoZSAtLXByZWZpeAorb3B0aW9uIChlLmcuICctLXByZWZpeD1vcmlnaW4vJykgdG8gY2F1c2UgeW91ciBTVk4tdHJhY2tpbmcgcmVmcyB0byBiZQorcGxhY2VkIGF0IHJlZnMvcmVtb3Rlcy9vcmlnaW4vKiByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdCByZWZzL3JlbW90ZXMvKi4KK1RoZSBmb3JtZXIgaXMgbW9yZSBjb21wYXRpYmxlIHdpdGggdGhlIGxheW91dCBvZiBHaXQncyAicmVndWxhciIKK3JlbW90ZS10cmFja2luZyByZWZzIChyZWZzL3JlbW90ZXMvJHJlbW90ZS8qKSwgYW5kIG1heSBwb3RlbnRpYWxseQorcHJldmVudCBzaW1pbGFybHkgbmFtZWQgU1ZOIGJyYW5jaGVzIGFuZCBHaXQgcmVtb3RlcyBmcm9tIGNsb2JiZXJpbmcKK2VhY2ggb3RoZXIuIEluIEdpdCB2Mi4wIHRoZSBkZWZhdWx0IHByZWZpeCB1c2VkIChpLmUuIHdoZW4gbm8gLS1wcmVmaXgKK2lzIGdpdmVuKSB3aWxsIGNoYW5nZSBmcm9tICIiIChubyBwcmVmaXgpIHRvICJvcmlnaW4vIi4KKwogV2hlbiB1c2luZyBtdWx0aXBsZSAtLWJyYW5jaGVzIG9yIC0tdGFncywgJ2dpdCBzdm4nIGRvZXMgbm90IGF1dG9tYXRpY2FsbHkKIGhhbmRsZSBuYW1lIGNvbGxpc2lvbnMgKGZvciBleGFtcGxlLCBpZiB0d28gYnJhbmNoZXMgZnJvbSBkaWZmZXJlbnQgcGF0aHMgaGF2ZQogdGhlIHNhbWUgbmFtZSwgb3IgaWYgYSBicmFuY2ggYW5kIGEgdGFnIGhhdmUgdGhlIHNhbWUgbmFtZSkuICBJbiB0aGVzZSBjYXNlcywKIHVzZSAnaW5pdCcgdG8gc2V0IHVwIHlvdXIgR2l0IHJlcG9zaXRvcnkgdGhlbiwgYmVmb3JlIHlvdXIgZmlyc3QgJ2ZldGNoJywgZWRpdAotdGhlIC5naXQvY29uZmlnIGZpbGUgc28gdGhhdCB0aGUgYnJhbmNoZXMgYW5kIHRhZ3MgYXJlIGFzc29jaWF0ZWQgd2l0aAotZGlmZmVyZW50IG5hbWUgc3BhY2VzLiAgRm9yIGV4YW1wbGU6Cit0aGUgJEdJVF9ESVIvY29uZmlnIGZpbGUgc28gdGhhdCB0aGUgYnJhbmNoZXMgYW5kIHRhZ3MgYXJlIGFzc29jaWF0ZWQKK3dpdGggZGlmZmVyZW50IG5hbWUgc3BhY2VzLiAgRm9yIGV4YW1wbGU6CiAKIAlicmFuY2hlcyA9IHN0YWJsZS8qOnJlZnMvcmVtb3Rlcy9zdm4vc3RhYmxlLyoKIAlicmFuY2hlcyA9IGRlYnVnLyo6cmVmcy9yZW1vdGVzL3N2bi9kZWJ1Zy8qCkBAIC0xMDA2LDcgKzEwMzcsNyBAQAogLS0tLS0tLS0tLS0tLQogCiAnZ2l0IHN2bicgc3RvcmVzIFtzdm4tcmVtb3RlXSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGluIHRoZQotcmVwb3NpdG9yeSAuZ2l0L2NvbmZpZyBmaWxlLiAgSXQgaXMgc2ltaWxhciB0aGUgY29yZSBHaXQKK3JlcG9zaXRvcnkgJEdJVF9ESVIvY29uZmlnIGZpbGUuICBJdCBpcyBzaW1pbGFyIHRoZSBjb3JlIEdpdAogW3JlbW90ZV0gc2VjdGlvbnMgZXhjZXB0ICdmZXRjaCcga2V5cyBkbyBub3QgYWNjZXB0IGdsb2IKIGFyZ3VtZW50czsgYnV0IHRoZXkgYXJlIGluc3RlYWQgaGFuZGxlZCBieSB0aGUgJ2JyYW5jaGVzJwogYW5kICd0YWdzJyBrZXlzLiAgU2luY2Ugc29tZSBTVk4gcmVwb3NpdG9yaWVzIGFyZSBvZGRseQpAQCAtMTAzNSw4ICsxMDY2LDggQEAKIFtzdm4tcmVtb3RlICJodWdlLXByb2plY3QiXQogCXVybCA9IGh0dHA6Ly9zZXJ2ZXIub3JnL3N2bgogCWZldGNoID0gdHJ1bmsvc3JjOnJlZnMvcmVtb3Rlcy90cnVuawotCWJyYW5jaGVzID0gYnJhbmNoZXMve3JlZCxncmVlbn0vc3JjOnJlZnMvcmVtb3Rlcy9icmFuY2hlcy8qCi0JdGFncyA9IHRhZ3MvezEuMCwyLjB9L3NyYzpyZWZzL3JlbW90ZXMvdGFncy8qCisJYnJhbmNoZXMgPSBicmFuY2hlcy97cmVkLGdyZWVufS9zcmM6cmVmcy9yZW1vdGVzL3Byb2plY3QtYS9icmFuY2hlcy8qCisJdGFncyA9IHRhZ3MvezEuMCwyLjB9L3NyYzpyZWZzL3JlbW90ZXMvcHJvamVjdC1hL3RhZ3MvKgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIE11bHRpcGxlIGZldGNoLCBicmFuY2hlcywgYW5kIHRhZ3Mga2V5cyBhcmUgc3VwcG9ydGVkOgpAQCAtMTA2MCw4ICsxMDkxLDIxIEBACiAKIE5vdGUgdGhhdCBnaXQtc3ZuIGtlZXBzIHRyYWNrIG9mIHRoZSBoaWdoZXN0IHJldmlzaW9uIGluIHdoaWNoIGEgYnJhbmNoCiBvciB0YWcgaGFzIGFwcGVhcmVkLiBJZiB0aGUgc3Vic2V0IG9mIGJyYW5jaGVzIG9yIHRhZ3MgaXMgY2hhbmdlZCBhZnRlcgotZmV0Y2hpbmcsIHRoZW4gLmdpdC9zdm4vLm1ldGFkYXRhIG11c3QgYmUgbWFudWFsbHkgZWRpdGVkIHRvIHJlbW92ZSAob3IKLXJlc2V0KSBicmFuY2hlcy1tYXhSZXYgYW5kL29yIHRhZ3MtbWF4UmV2IGFzIGFwcHJvcHJpYXRlLgorZmV0Y2hpbmcsIHRoZW4gJEdJVF9ESVIvc3ZuLy5tZXRhZGF0YSBtdXN0IGJlIG1hbnVhbGx5IGVkaXRlZCB0byByZW1vdmUKKyhvciByZXNldCkgYnJhbmNoZXMtbWF4UmV2IGFuZC9vciB0YWdzLW1heFJldiBhcyBhcHByb3ByaWF0ZS4KKworRklMRVMKKy0tLS0tCiskR0lUX0RJUi9zdm4vXCpcKi8ucmV2X21hcC4qOjoKKwlNYXBwaW5nIGJldHdlZW4gU3VidmVyc2lvbiByZXZpc2lvbiBudW1iZXJzIGFuZCBHaXQgY29tbWl0CisJbmFtZXMuICBJbiBhIHJlcG9zaXRvcnkgd2hlcmUgdGhlIG5vTWV0YWRhdGEgb3B0aW9uIGlzIG5vdCBzZXQsCisJdGhpcyBjYW4gYmUgcmVidWlsdCBmcm9tIHRoZSBnaXQtc3ZuLWlkOiBsaW5lcyB0aGF0IGFyZSBhdCB0aGUKKwllbmQgb2YgZXZlcnkgY29tbWl0IChzZWUgdGhlICdzdm4ubm9NZXRhZGF0YScgc2VjdGlvbiBhYm92ZSBmb3IKKwlkZXRhaWxzKS4KKysKKydnaXQgc3ZuIGZldGNoJyBhbmQgJ2dpdCBzdm4gcmViYXNlJyBhdXRvbWF0aWNhbGx5IHVwZGF0ZSB0aGUgcmV2X21hcAoraWYgaXQgaXMgbWlzc2luZyBvciBub3QgdXAgdG8gZGF0ZS4gICdnaXQgc3ZuIHJlc2V0JyBhdXRvbWF0aWNhbGx5CityZXdpbmRzIGl0LgogCiBTRUUgQUxTTwogLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXRhci10cmVlLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXRhci10cmVlLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjczNjJkYy4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC10YXItdHJlZS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi1naXQtdGFyLXRyZWUoMSkKLT09PT09PT09PT09PT09PQotCi1OQU1FCi0tLS0tCi1naXQtdGFyLXRyZWUgLSBDcmVhdGUgYSB0YXIgYXJjaGl2ZSBvZiB0aGUgZmlsZXMgaW4gdGhlIG5hbWVkIHRyZWUgb2JqZWN0Ci0KLQotU1lOT1BTSVMKLS0tLS0tLS0tCi1bdmVyc2VdCi0nZ2l0IHRhci10cmVlJyBbLS1yZW1vdGU9PHJlcG8+XSA8dHJlZS1pc2g+IFsgPGJhc2U+IF0KLQotREVTQ1JJUFRJT04KLS0tLS0tLS0tLS0tCi1USElTIENPTU1BTkQgSVMgREVQUkVDQVRFRC4gIFVzZSAnZ2l0IGFyY2hpdmUnIHdpdGggYC0tZm9ybWF0PXRhcmAKLW9wdGlvbiBpbnN0ZWFkIChhbmQgbW92ZSB0aGUgPGJhc2U+IGFyZ3VtZW50IHRvIGAtLXByZWZpeD1iYXNlL2ApLgotCi1DcmVhdGVzIGEgdGFyIGFyY2hpdmUgY29udGFpbmluZyB0aGUgdHJlZSBzdHJ1Y3R1cmUgZm9yIHRoZSBuYW1lZCB0cmVlLgotV2hlbiA8YmFzZT4gaXMgc3BlY2lmaWVkIGl0IGlzIGFkZGVkIGFzIGEgbGVhZGluZyBwYXRoIHRvIHRoZSBmaWxlcyBpbiB0aGUKLWdlbmVyYXRlZCB0YXIgYXJjaGl2ZS4KLQotJ2dpdCB0YXItdHJlZScgYmVoYXZlcyBkaWZmZXJlbnRseSB3aGVuIGdpdmVuIGEgdHJlZSBJRCB2ZXJzdXMgd2hlbiBnaXZlbgotYSBjb21taXQgSUQgb3IgdGFnIElELiAgSW4gdGhlIGZpcnN0IGNhc2UgdGhlIGN1cnJlbnQgdGltZSBpcyB1c2VkIGFzCi1tb2RpZmljYXRpb24gdGltZSBvZiBlYWNoIGZpbGUgaW4gdGhlIGFyY2hpdmUuICBJbiB0aGUgbGF0dGVyIGNhc2UgdGhlCi1jb21taXQgdGltZSBhcyByZWNvcmRlZCBpbiB0aGUgcmVmZXJlbmNlZCBjb21taXQgb2JqZWN0IGlzIHVzZWQgaW5zdGVhZC4KLUFkZGl0aW9uYWxseSB0aGUgY29tbWl0IElEIGlzIHN0b3JlZCBpbiBhIGdsb2JhbCBleHRlbmRlZCBwYXggaGVhZGVyLgotSXQgY2FuIGJlIGV4dHJhY3RlZCB1c2luZyAnZ2l0IGdldC10YXItY29tbWl0LWlkJy4KLQotT1BUSU9OUwotLS0tLS0tLQotCi08dHJlZS1pc2g+OjoKLQlUaGUgdHJlZSBvciBjb21taXQgdG8gcHJvZHVjZSB0YXIgYXJjaGl2ZSBmb3IuICBJZiBpdCBpcwotCXRoZSBvYmplY3QgbmFtZSBvZiBhIGNvbW1pdCBvYmplY3QuCi0KLTxiYXNlPjo6Ci0JTGVhZGluZyBwYXRoIHRvIHRoZSBmaWxlcyBpbiB0aGUgcmVzdWx0aW5nIHRhciBhcmNoaXZlLgotCi0tLXJlbW90ZT08cmVwbz46OgotCUluc3RlYWQgb2YgbWFraW5nIGEgdGFyIGFyY2hpdmUgZnJvbSBsb2NhbCByZXBvc2l0b3J5LAotCXJldHJpZXZlIGEgdGFyIGFyY2hpdmUgZnJvbSBhIHJlbW90ZSByZXBvc2l0b3J5LgotCi1DT05GSUdVUkFUSU9OCi0tLS0tLS0tLS0tLS0tCi0KLXRhci51bWFzazo6Ci0JVGhpcyB2YXJpYWJsZSBjYW4gYmUgdXNlZCB0byByZXN0cmljdCB0aGUgcGVybWlzc2lvbiBiaXRzIG9mCi0JdGFyIGFyY2hpdmUgZW50cmllcy4gIFRoZSBkZWZhdWx0IGlzIDAwMDIsIHdoaWNoIHR1cm5zIG9mZiB0aGUKLQl3b3JsZCB3cml0ZSBiaXQuICBUaGUgc3BlY2lhbCB2YWx1ZSAidXNlciIgaW5kaWNhdGVzIHRoYXQgdGhlCi0JYXJjaGl2aW5nIHVzZXIncyB1bWFzayB3aWxsIGJlIHVzZWQgaW5zdGVhZC4gIFNlZSB1bWFzaygyKSBmb3IKLQlkZXRhaWxzLgotCi1FWEFNUExFUwotLS0tLS0tLS0KLWBnaXQgdGFyLXRyZWUgSEVBRCBqdW5rIHwgKGNkIC92YXIvdG1wLyAmJiB0YXIgeGYgLSlgOjoKLQotCUNyZWF0ZSBhIHRhciBhcmNoaXZlIHRoYXQgY29udGFpbnMgdGhlIGNvbnRlbnRzIG9mIHRoZQotCWxhdGVzdCBjb21taXQgb24gdGhlIGN1cnJlbnQgYnJhbmNoLCBhbmQgZXh0cmFjdHMgaXQgaW4KLQlgL3Zhci90bXAvanVua2AgZGlyZWN0b3J5LgotCi1gZ2l0IHRhci10cmVlIHYxLjQuMCBnaXQtMS40LjAgfCBnemlwID5naXQtMS40LjAudGFyLmd6YDo6Ci0KLQlDcmVhdGUgYSB0YXJiYWxsIGZvciB2MS40LjAgcmVsZWFzZS4KLQotYGdpdCB0YXItdHJlZSB2MS40LjBee3RyZWV9IGdpdC0xLjQuMCB8IGd6aXAgPmdpdC0xLjQuMC50YXIuZ3pgOjoKLQotCUNyZWF0ZSBhIHRhcmJhbGwgZm9yIHYxLjQuMCByZWxlYXNlLCBidXQgd2l0aG91dCBhCi0JZ2xvYmFsIGV4dGVuZGVkIHBheCBoZWFkZXIuCi0KLWBnaXQgdGFyLXRyZWUgLS1yZW1vdGU9ZXhhbXBsZS5jb206Z2l0LmdpdCB2MS40LjAgPmdpdC0xLjQuMC50YXJgOjoKLQotCUdldCBhIHRhcmJhbGwgdjEuNC4wIGZyb20gZXhhbXBsZS5jb20uCi0KLWBnaXQgdGFyLXRyZWUgSEVBRDpEb2N1bWVudGF0aW9uLyBnaXQtZG9jcyA+IGdpdC0xLjQuMC1kb2NzLnRhcmA6OgotCi0JUHV0IGV2ZXJ5dGhpbmcgaW4gdGhlIGN1cnJlbnQgaGVhZCdzIERvY3VtZW50YXRpb24vIGRpcmVjdG9yeQotCWludG8gJ2dpdC0xLjQuMC1kb2NzLnRhcicsIHdpdGggdGhlIHByZWZpeCAnZ2l0LWRvY3MvJy4KLQotR0lUCi0tLS0KLVBhcnQgb2YgdGhlIGxpbmtnaXQ6Z2l0WzFdIHN1aXRlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC11cGRhdGUtcmVmLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXVwZGF0ZS1yZWYudHh0CmluZGV4IDBkZjEzZmYuLjBhMGE1NTEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXVwZGF0ZS1yZWYudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXVwZGF0ZS1yZWYudHh0CkBAIC04LDcgKzgsNyBAQAogU1lOT1BTSVMKIC0tLS0tLS0tCiBbdmVyc2VdCi0nZ2l0IHVwZGF0ZS1yZWYnIFstbSA8cmVhc29uPl0gKC1kIDxyZWY+IFs8b2xkdmFsdWU+XSB8IFstLW5vLWRlcmVmXSA8cmVmPiA8bmV3dmFsdWU+IFs8b2xkdmFsdWU+XSkKKydnaXQgdXBkYXRlLXJlZicgWy1tIDxyZWFzb24+XSAoLWQgPHJlZj4gWzxvbGR2YWx1ZT5dIHwgWy0tbm8tZGVyZWZdIDxyZWY+IDxuZXd2YWx1ZT4gWzxvbGR2YWx1ZT5dIHwgLS1zdGRpbiBbLXpdKQogCiBERVNDUklQVElPTgogLS0tLS0tLS0tLS0KQEAgLTU4LDYgKzU4LDU4IEBACiBXaXRoIGAtZGAgZmxhZywgaXQgZGVsZXRlcyB0aGUgbmFtZWQgPHJlZj4gYWZ0ZXIgdmVyaWZ5aW5nIGl0CiBzdGlsbCBjb250YWlucyA8b2xkdmFsdWU+LgogCitXaXRoIGAtLXN0ZGluYCwgdXBkYXRlLXJlZiByZWFkcyBpbnN0cnVjdGlvbnMgZnJvbSBzdGFuZGFyZCBpbnB1dCBhbmQKK3BlcmZvcm1zIGFsbCBtb2RpZmljYXRpb25zIHRvZ2V0aGVyLiAgU3BlY2lmeSBjb21tYW5kcyBvZiB0aGUgZm9ybToKKworCXVwZGF0ZSBTUCA8cmVmPiBTUCA8bmV3dmFsdWU+IFtTUCA8b2xkdmFsdWU+XSBMRgorCWNyZWF0ZSBTUCA8cmVmPiBTUCA8bmV3dmFsdWU+IExGCisJZGVsZXRlIFNQIDxyZWY+IFtTUCA8b2xkdmFsdWU+XSBMRgorCXZlcmlmeSBTUCA8cmVmPiBbU1AgPG9sZHZhbHVlPl0gTEYKKwlvcHRpb24gU1AgPG9wdD4gTEYKKworUXVvdGUgZmllbGRzIGNvbnRhaW5pbmcgd2hpdGVzcGFjZSBhcyBpZiB0aGV5IHdlcmUgc3RyaW5ncyBpbiBDIHNvdXJjZQorY29kZS4gIEFsdGVybmF0aXZlbHksIHVzZSBgLXpgIHRvIHNwZWNpZnkgY29tbWFuZHMgd2l0aG91dCBxdW90aW5nOgorCisJdXBkYXRlIFNQIDxyZWY+IE5VTCA8bmV3dmFsdWU+IE5VTCBbPG9sZHZhbHVlPl0gTlVMCisJY3JlYXRlIFNQIDxyZWY+IE5VTCA8bmV3dmFsdWU+IE5VTAorCWRlbGV0ZSBTUCA8cmVmPiBOVUwgWzxvbGR2YWx1ZT5dIE5VTAorCXZlcmlmeSBTUCA8cmVmPiBOVUwgWzxvbGR2YWx1ZT5dIE5VTAorCW9wdGlvbiBTUCA8b3B0PiBOVUwKKworTGluZXMgb2YgYW55IG90aGVyIGZvcm1hdCBvciBhIHJlcGVhdGVkIDxyZWY+IHByb2R1Y2UgYW4gZXJyb3IuCitDb21tYW5kIG1lYW5pbmdzIGFyZToKKwordXBkYXRlOjoKKwlTZXQgPHJlZj4gdG8gPG5ld3ZhbHVlPiBhZnRlciB2ZXJpZnlpbmcgPG9sZHZhbHVlPiwgaWYgZ2l2ZW4uCisJU3BlY2lmeSBhIHplcm8gPG5ld3ZhbHVlPiB0byBlbnN1cmUgdGhlIHJlZiBkb2VzIG5vdCBleGlzdAorCWFmdGVyIHRoZSB1cGRhdGUgYW5kL29yIGEgemVybyA8b2xkdmFsdWU+IHRvIG1ha2Ugc3VyZSB0aGUKKwlyZWYgZG9lcyBub3QgZXhpc3QgYmVmb3JlIHRoZSB1cGRhdGUuCisKK2NyZWF0ZTo6CisJQ3JlYXRlIDxyZWY+IHdpdGggPG5ld3ZhbHVlPiBhZnRlciB2ZXJpZnlpbmcgaXQgZG9lcyBub3QKKwlleGlzdC4gIFRoZSBnaXZlbiA8bmV3dmFsdWU+IG1heSBub3QgYmUgemVyby4KKworZGVsZXRlOjoKKwlEZWxldGUgPHJlZj4gYWZ0ZXIgdmVyaWZ5aW5nIGl0IGV4aXN0cyB3aXRoIDxvbGR2YWx1ZT4sIGlmCisJZ2l2ZW4uICBJZiBnaXZlbiwgPG9sZHZhbHVlPiBtYXkgbm90IGJlIHplcm8uCisKK3ZlcmlmeTo6CisJVmVyaWZ5IDxyZWY+IGFnYWluc3QgPG9sZHZhbHVlPiBidXQgZG8gbm90IGNoYW5nZSBpdC4gIElmCisJPG9sZHZhbHVlPiB6ZXJvIG9yIG1pc3NpbmcsIHRoZSByZWYgbXVzdCBub3QgZXhpc3QuCisKK29wdGlvbjo6CisJTW9kaWZ5IGJlaGF2aW9yIG9mIHRoZSBuZXh0IGNvbW1hbmQgbmFtaW5nIGEgPHJlZj4uCisJVGhlIG9ubHkgdmFsaWQgb3B0aW9uIGlzIGBuby1kZXJlZmAgdG8gYXZvaWQgZGVyZWZlcmVuY2luZworCWEgc3ltYm9saWMgcmVmLgorCitVc2UgNDAgIjAiIG9yIHRoZSBlbXB0eSBzdHJpbmcgdG8gc3BlY2lmeSBhIHplcm8gdmFsdWUsIGV4Y2VwdCB0aGF0Cit3aXRoIGAtemAgYW4gZW1wdHkgPG9sZHZhbHVlPiBpcyBjb25zaWRlcmVkIG1pc3NpbmcuCisKK0lmIGFsbCA8cmVmPnMgY2FuIGJlIGxvY2tlZCB3aXRoIG1hdGNoaW5nIDxvbGR2YWx1ZT5zCitzaW11bHRhbmVvdXNseSwgYWxsIG1vZGlmaWNhdGlvbnMgYXJlIHBlcmZvcm1lZC4gIE90aGVyd2lzZSwgbm8KK21vZGlmaWNhdGlvbnMgYXJlIHBlcmZvcm1lZC4gIE5vdGUgdGhhdCB3aGlsZSBlYWNoIGluZGl2aWR1YWwKKzxyZWY+IGlzIHVwZGF0ZWQgb3IgZGVsZXRlZCBhdG9taWNhbGx5LCBhIGNvbmN1cnJlbnQgcmVhZGVyIG1heQorc3RpbGwgc2VlIGEgc3Vic2V0IG9mIHRoZSBtb2RpZmljYXRpb25zLgogCiBMb2dnaW5nIFVwZGF0ZXMKIC0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtd2ViLS1icm93c2UudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtd2ViLS1icm93c2UudHh0CmluZGV4IDVhZWM0ZWMuLjJkZTU3NWYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXdlYi0tYnJvd3NlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC13ZWItLWJyb3dzZS50eHQKQEAgLTM1LDYgKzM1LDcgQEAKICogb3BlbiAodGhpcyBpcyB0aGUgZGVmYXVsdCB1bmRlciBNYWMgT1MgWCBHVUkpCiAqIHN0YXJ0ICh0aGlzIGlzIHRoZSBkZWZhdWx0IHVuZGVyIE1pbkdXKQogKiBjeWdzdGFydCAodGhpcyBpcyB0aGUgZGVmYXVsdCB1bmRlciBDeWd3aW4pCisqIHhkZy1vcGVuCiAKIEN1c3RvbSBjb21tYW5kcyBtYXkgYWxzbyBiZSBzcGVjaWZpZWQuCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXdoYXRjaGFuZ2VkLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXdoYXRjaGFuZ2VkLnR4dAppbmRleCBjNjAwYjYxLi44YjYzY2ViIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC13aGF0Y2hhbmdlZC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtd2hhdGNoYW5nZWQudHh0CkBAIC0xMyw0MyArMTMsMTcgQEAKIAogREVTQ1JJUFRJT04KIC0tLS0tLS0tLS0tCi1TaG93cyBjb21taXQgbG9ncyBhbmQgZGlmZiBvdXRwdXQgZWFjaCBjb21taXQgaW50cm9kdWNlcy4gIFRoZQotY29tbWFuZCBpbnRlcm5hbGx5IGludm9rZXMgJ2dpdCByZXYtbGlzdCcgcGlwZWQgdG8KLSdnaXQgZGlmZi10cmVlJywgYW5kIHRha2VzIGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciBib3RoIG9mCi10aGVzZSBjb21tYW5kcy4KIAotVGhpcyBtYW51YWwgcGFnZSBkZXNjcmliZXMgb25seSB0aGUgbW9zdCBmcmVxdWVudGx5IHVzZWQgb3B0aW9ucy4KK1Nob3dzIGNvbW1pdCBsb2dzIGFuZCBkaWZmIG91dHB1dCBlYWNoIGNvbW1pdCBpbnRyb2R1Y2VzLgogCitOZXcgdXNlcnMgYXJlIGVuY291cmFnZWQgdG8gdXNlIGxpbmtnaXQ6Z2l0LWxvZ1sxXSBpbnN0ZWFkLiAgVGhlCitgd2hhdGNoYW5nZWRgIGNvbW1hbmQgaXMgZXNzZW50aWFsbHkgdGhlIHNhbWUgYXMgbGlua2dpdDpnaXQtbG9nWzFdCitidXQgZGVmYXVsdHMgdG8gc2hvdyB0aGUgcmF3IGZvcm1hdCBkaWZmIG91dHB1dCBhbmQgdG8gc2tpcCBtZXJnZXMuCiAKLU9QVElPTlMKLS0tLS0tLS0KLS1wOjoKLQlTaG93IHRleHR1YWwgZGlmZnMsIGluc3RlYWQgb2YgdGhlIEdpdCBpbnRlcm5hbCBkaWZmCi0Jb3V0cHV0IGZvcm1hdCB0aGF0IGlzIHVzZWZ1bCBvbmx5IHRvIHRlbGwgdGhlIGNoYW5nZWQKLQlwYXRocyBhbmQgdGhlaXIgbmF0dXJlIG9mIGNoYW5nZXMuCitUaGUgY29tbWFuZCBpcyBrZXB0IHByaW1hcmlseSBmb3IgaGlzdG9yaWNhbCByZWFzb25zOyBmaW5nZXJzIG9mCittYW55IHBlb3BsZSB3aG8gbGVhcm5lZCBHaXQgbG9uZyBiZWZvcmUgYGdpdCBsb2dgIHdhcyBpbnZlbnRlZCBieQorcmVhZGluZyBMaW51eCBrZXJuZWwgbWFpbGluZyBsaXN0IGFyZSB0cmFpbmVkIHRvIHR5cGUgaXQuCiAKLS08bj46OgotCUxpbWl0IG91dHB1dCB0byA8bj4gY29tbWl0cy4KLQotPHNpbmNlPi4uPHVudGlsPjo6Ci0JTGltaXQgb3V0cHV0IHRvIGJldHdlZW4gdGhlIHR3byBuYW1lZCBjb21taXRzIChib3R0b20KLQlleGNsdXNpdmUsIHRvcCBpbmNsdXNpdmUpLgotCi0tcjo6Ci0JU2hvdyBHaXQgaW50ZXJuYWwgZGlmZiBvdXRwdXQsIGJ1dCBmb3IgdGhlIHdob2xlIHRyZWUsCi0Jbm90IGp1c3QgdGhlIHRvcCBsZXZlbC4KLQotLW06OgotCUJ5IGRlZmF1bHQsIGRpZmZlcmVuY2VzIGZvciBtZXJnZSBjb21taXRzIGFyZSBub3Qgc2hvd24uCi0JV2l0aCB0aGlzIGZsYWcsIHNob3cgZGlmZmVyZW5jZXMgdG8gdGhhdCBjb21taXQgZnJvbSBhbGwKLQlvZiBpdHMgcGFyZW50cy4KLSsKLUhvd2V2ZXIsIGl0IGlzIG5vdCB2ZXJ5IHVzZWZ1bCBpbiBnZW5lcmFsLCBhbHRob3VnaCBpdAotKmlzKiB1c2VmdWwgb24gYSBmaWxlLWJ5LWZpbGUgYmFzaXMuCi0KLWluY2x1ZGU6OnByZXR0eS1vcHRpb25zLnR4dFtdCi0KLWluY2x1ZGU6OnByZXR0eS1mb3JtYXRzLnR4dFtdCiAKIEV4YW1wbGVzCiAtLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQudHh0CmluZGV4IDhmN2E0NjAuLjI3NGQ4MTYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC50eHQKQEAgLTksNyArOSw3IEBACiBTWU5PUFNJUwogLS0tLS0tLS0KIFt2ZXJzZV0KLSdnaXQnIFstLXZlcnNpb25dIFstLWhlbHBdIFstYyA8bmFtZT49PHZhbHVlPl0KKydnaXQnIFstLXZlcnNpb25dIFstLWhlbHBdIFstQyA8cGF0aD5dIFstYyA8bmFtZT49PHZhbHVlPl0KICAgICBbLS1leGVjLXBhdGhbPTxwYXRoPl1dIFstLWh0bWwtcGF0aF0gWy0tbWFuLXBhdGhdIFstLWluZm8tcGF0aF0KICAgICBbLXB8LS1wYWdpbmF0ZXwtLW5vLXBhZ2VyXSBbLS1uby1yZXBsYWNlLW9iamVjdHNdIFstLWJhcmVdCiAgICAgWy0tZ2l0LWRpcj08cGF0aD5dIFstLXdvcmstdHJlZT08cGF0aD5dIFstLW5hbWVzcGFjZT08bmFtZT5dCkBAIC00Myw2ICs0MywxNCBAQAogYnJhbmNoIG9mIHRoZSBgZ2l0LmdpdGAgcmVwb3NpdG9yeS4KIERvY3VtZW50YXRpb24gZm9yIG9sZGVyIHJlbGVhc2VzIGFyZSBhdmFpbGFibGUgaGVyZToKIAorKiBsaW5rOnYxLjguNS4zL2dpdC5odG1sW2RvY3VtZW50YXRpb24gZm9yIHJlbGVhc2UgMS44LjUuM10KKworKiByZWxlYXNlIG5vdGVzIGZvcgorICBsaW5rOlJlbE5vdGVzLzEuOC41LjMudHh0WzEuOC41LjNdLAorICBsaW5rOlJlbE5vdGVzLzEuOC41LjIudHh0WzEuOC41LjJdLAorICBsaW5rOlJlbE5vdGVzLzEuOC41LjEudHh0WzEuOC41LjFdLAorICBsaW5rOlJlbE5vdGVzLzEuOC41LnR4dFsxLjguNV0uCisKICogbGluazp2MS44LjQuNS9naXQuaHRtbFtkb2N1bWVudGF0aW9uIGZvciByZWxlYXNlIDEuOC40LjVdCiAKICogcmVsZWFzZSBub3RlcyBmb3IKQEAgLTQwMCw2ICs0MDgsMjAgQEAKIGJlY2F1c2UgYGdpdCAtLWhlbHAgLi4uYCBpcyBjb252ZXJ0ZWQgaW50ZXJuYWxseSBpbnRvIGBnaXQKIGhlbHAgLi4uYC4KIAorLUMgPHBhdGg+OjoKKwlSdW4gYXMgaWYgZ2l0IHdhcyBzdGFydGVkIGluICc8cGF0aD4nIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgd29ya2luZworCWRpcmVjdG9yeS4gIFdoZW4gbXVsdGlwbGUgYC1DYCBvcHRpb25zIGFyZSBnaXZlbiwgZWFjaCBzdWJzZXF1ZW50CisJbm9uLWFic29sdXRlIGAtQyA8cGF0aD5gIGlzIGludGVycHJldGVkIHJlbGF0aXZlIHRvIHRoZSBwcmVjZWRpbmcgYC1DCisJPHBhdGg+YC4KKysKK1RoaXMgb3B0aW9uIGFmZmVjdHMgb3B0aW9ucyB0aGF0IGV4cGVjdCBwYXRoIG5hbWUgbGlrZSBgLS1naXQtZGlyYCBhbmQKK2AtLXdvcmstdHJlZWAgaW4gdGhhdCB0aGVpciBpbnRlcnByZXRhdGlvbnMgb2YgdGhlIHBhdGggbmFtZXMgd291bGQgYmUKK21hZGUgcmVsYXRpdmUgdG8gdGhlIHdvcmtpbmcgZGlyZWN0b3J5IGNhdXNlZCBieSB0aGUgYC1DYCBvcHRpb24uIEZvcgorZXhhbXBsZSB0aGUgZm9sbG93aW5nIGludm9jYXRpb25zIGFyZSBlcXVpdmFsZW50OgorCisgICAgZ2l0IC0tZ2l0LWRpcj1hLmdpdCAtLXdvcmstdHJlZT1iIC1DIGMgc3RhdHVzCisgICAgZ2l0IC0tZ2l0LWRpcj1jL2EuZ2l0IC0td29yay10cmVlPWMvYiBzdGF0dXMKKwogLWMgPG5hbWU+PTx2YWx1ZT46OgogCVBhc3MgYSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciB0byB0aGUgY29tbWFuZC4gVGhlIHZhbHVlCiAJZ2l2ZW4gd2lsbCBvdmVycmlkZSB2YWx1ZXMgZnJvbSBjb25maWd1cmF0aW9uIGZpbGVzLgpAQCAtNDYyLDEwICs0ODQsMjUgQEAKIAlsaW5rZ2l0OmdpdC1yZXBsYWNlWzFdIGZvciBtb3JlIGluZm9ybWF0aW9uLgogCiAtLWxpdGVyYWwtcGF0aHNwZWNzOjoKLQlUcmVhdCBwYXRoc3BlY3MgbGl0ZXJhbGx5LCByYXRoZXIgdGhhbiBhcyBnbG9iIHBhdHRlcm5zLiBUaGlzIGlzCi0JZXF1aXZhbGVudCB0byBzZXR0aW5nIHRoZSBgR0lUX0xJVEVSQUxfUEFUSFNQRUNTYCBlbnZpcm9ubWVudAorCVRyZWF0IHBhdGhzcGVjcyBsaXRlcmFsbHkgKGkuZS4gbm8gZ2xvYmJpbmcsIG5vIHBhdGhzcGVjIG1hZ2ljKS4KKwlUaGlzIGlzIGVxdWl2YWxlbnQgdG8gc2V0dGluZyB0aGUgYEdJVF9MSVRFUkFMX1BBVEhTUEVDU2AgZW52aXJvbm1lbnQKIAl2YXJpYWJsZSB0byBgMWAuCiAKKy0tZ2xvYi1wYXRoc3BlY3M6OgorCUFkZCAiZ2xvYiIgbWFnaWMgdG8gYWxsIHBhdGhzcGVjLiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gc2V0dGluZworCXRoZSBgR0lUX0dMT0JfUEFUSFNQRUNTYCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBgMWAuIERpc2FibGluZworCWdsb2JiaW5nIG9uIGluZGl2aWR1YWwgcGF0aHNwZWNzIGNhbiBiZSBkb25lIHVzaW5nIHBhdGhzcGVjCisJbWFnaWMgIjoobGl0ZXJhbCkiCisKKy0tbm9nbG9iLXBhdGhzcGVjczo6CisJQWRkICJsaXRlcmFsIiBtYWdpYyB0byBhbGwgcGF0aHNwZWMuIFRoaXMgaXMgZXF1aXZhbGVudCB0byBzZXR0aW5nCisJdGhlIGBHSVRfTk9HTE9CX1BBVEhTUEVDU2AgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYDFgLiBFbmFibGluZworCWdsb2JiaW5nIG9uIGluZGl2aWR1YWwgcGF0aHNwZWNzIGNhbiBiZSBkb25lIHVzaW5nIHBhdGhzcGVjCisJbWFnaWMgIjooZ2xvYikiCisKKy0taWNhc2UtcGF0aHNwZWNzOjoKKwlBZGQgImljYXNlIiBtYWdpYyB0byBhbGwgcGF0aHNwZWMuIFRoaXMgaXMgZXF1aXZhbGVudCB0byBzZXR0aW5nCisJdGhlIGBHSVRfSUNBU0VfUEFUSFNQRUNTYCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBgMWAuCiAKIEdJVCBDT01NQU5EUwogLS0tLS0tLS0tLS0tCkBAIC03NzEsNiArODA4LDE1IEBACiArCiBGb3IgYSBwYXRoIHRoYXQgaXMgdW5tZXJnZWQsICdHSVRfRVhURVJOQUxfRElGRicgaXMgY2FsbGVkIHdpdGggMQogcGFyYW1ldGVyLCA8cGF0aD4uCisrCitGb3IgZWFjaCBwYXRoICdHSVRfRVhURVJOQUxfRElGRicgaXMgY2FsbGVkLCB0d28gZW52aXJvbm1lbnQgdmFyaWFibGVzLAorJ0dJVF9ESUZGX1BBVEhfQ09VTlRFUicgYW5kICdHSVRfRElGRl9QQVRIX1RPVEFMJyBhcmUgc2V0LgorCisnR0lUX0RJRkZfUEFUSF9DT1VOVEVSJzo6CisJQSAxLWJhc2VkIGNvdW50ZXIgaW5jcmVtZW50ZWQgYnkgb25lIGZvciBldmVyeSBwYXRoLgorCisnR0lUX0RJRkZfUEFUSF9UT1RBTCc6OgorCVRoZSB0b3RhbCBudW1iZXIgb2YgcGF0aHMuCiAKIG90aGVyCiB+fn5+fgpAQCAtODI4LDcgKzg3NCw3IEBACiAnR0lUX0ZMVVNIJzo6CiAJSWYgdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQgdG8gIjEiLCB0aGVuIGNvbW1hbmRzIHN1Y2gKIAlhcyAnZ2l0IGJsYW1lJyAoaW4gaW5jcmVtZW50YWwgbW9kZSksICdnaXQgcmV2LWxpc3QnLCAnZ2l0IGxvZycsCi0JJ2dpdCBjaGVjay1hdHRyJywgJ2dpdCBjaGVjay1pZ25vcmUnLCBhbmQgJ2dpdCB3aGF0Y2hhbmdlZCcgd2lsbAorCSdnaXQgY2hlY2stYXR0cicgYW5kICdnaXQgY2hlY2staWdub3JlJyB3aWxsCiAJZm9yY2UgYSBmbHVzaCBvZiB0aGUgb3V0cHV0IHN0cmVhbSBhZnRlciBlYWNoIHJlY29yZCBoYXZlIGJlZW4KIAlmbHVzaGVkLiBJZiB0aGlzCiAJdmFyaWFibGUgaXMgc2V0IHRvICIwIiwgdGhlIG91dHB1dCBvZiB0aGVzZSBjb21tYW5kcyB3aWxsIGJlIGRvbmUKQEAgLTg3Miw2ICs5MTgsMjggQEAKIAlsaXRlcmFsIHBhdGhzIHRvIEdpdCAoZS5nLiwgcGF0aHMgcHJldmlvdXNseSBnaXZlbiB0byB5b3UgYnkKIAlgZ2l0IGxzLXRyZWVgLCBgLS1yYXdgIGRpZmYgb3V0cHV0LCBldGMpLgogCitHSVRfR0xPQl9QQVRIU1BFQ1M6OgorCVNldHRpbmcgdGhpcyB2YXJpYWJsZSB0byBgMWAgd2lsbCBjYXVzZSBHaXQgdG8gdHJlYXQgYWxsCisJcGF0aHNwZWNzIGFzIGdsb2IgcGF0dGVybnMgKGFrYSAiZ2xvYiIgbWFnaWMpLgorCitHSVRfTk9HTE9CX1BBVEhTUEVDUzo6CisJU2V0dGluZyB0aGlzIHZhcmlhYmxlIHRvIGAxYCB3aWxsIGNhdXNlIEdpdCB0byB0cmVhdCBhbGwKKwlwYXRoc3BlY3MgYXMgbGl0ZXJhbCAoYWthICJsaXRlcmFsIiBtYWdpYykuCisKK0dJVF9JQ0FTRV9QQVRIU1BFQ1M6OgorCVNldHRpbmcgdGhpcyB2YXJpYWJsZSB0byBgMWAgd2lsbCBjYXVzZSBHaXQgdG8gdHJlYXQgYWxsCisJcGF0aHNwZWNzIGFzIGNhc2UtaW5zZW5zaXRpdmUuCisKKydHSVRfUkVGTE9HX0FDVElPTic6OgorCVdoZW4gYSByZWYgaXMgdXBkYXRlZCwgcmVmbG9nIGVudHJpZXMgYXJlIGNyZWF0ZWQgdG8ga2VlcAorCXRyYWNrIG9mIHRoZSByZWFzb24gd2h5IHRoZSByZWYgd2FzIHVwZGF0ZWQgKHdoaWNoIGlzCisJdHlwaWNhbGx5IHRoZSBuYW1lIG9mIHRoZSBoaWdoLWxldmVsIGNvbW1hbmQgdGhhdCB1cGRhdGVkCisJdGhlIHJlZiksIGluIGFkZGl0aW9uIHRvIHRoZSBvbGQgYW5kIG5ldyB2YWx1ZXMgb2YgdGhlIHJlZi4KKwlBIHNjcmlwdGVkIFBvcmNlbGFpbiBjb21tYW5kIGNhbiB1c2Ugc2V0X3JlZmxvZ19hY3Rpb24KKwloZWxwZXIgZnVuY3Rpb24gaW4gYGdpdC1zaC1zZXR1cGAgdG8gc2V0IGl0cyBuYW1lIHRvIHRoaXMKKwl2YXJpYWJsZSB3aGVuIGl0IGlzIGludm9rZWQgYXMgdGhlIHRvcCBsZXZlbCBjb21tYW5kIGJ5IHRoZQorCWVuZCB1c2VyLCB0byBiZSByZWNvcmRlZCBpbiB0aGUgYm9keSBvZiB0aGUgcmVmbG9nLgorCiAKIERpc2N1c3Npb25bW0Rpc2N1c3Npb25dXQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdGF0dHJpYnV0ZXMudHh0IGIvRG9jdW1lbnRhdGlvbi9naXRhdHRyaWJ1dGVzLnR4dAppbmRleCBiMzIyYTI2Li42NDNjMWJhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdGF0dHJpYnV0ZXMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0YXR0cmlidXRlcy50eHQKQEAgLTkzMCw5ICs5MzAsMTIgQEAKIERFRklOSU5HIE1BQ1JPIEFUVFJJQlVURVMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotQ3VzdG9tIG1hY3JvIGF0dHJpYnV0ZXMgY2FuIGJlIGRlZmluZWQgb25seSBpbiB0aGUgYC5naXRhdHRyaWJ1dGVzYAotZmlsZSBhdCB0aGUgdG9wbGV2ZWwgKGkuZS4gbm90IGluIGFueSBzdWJkaXJlY3RvcnkpLiAgVGhlIGJ1aWx0LWluCi1tYWNybyBhdHRyaWJ1dGUgImJpbmFyeSIgaXMgZXF1aXZhbGVudCB0bzoKK0N1c3RvbSBtYWNybyBhdHRyaWJ1dGVzIGNhbiBiZSBkZWZpbmVkIG9ubHkgaW4gdG9wLWxldmVsIGdpdGF0dHJpYnV0ZXMKK2ZpbGVzIChgJEdJVF9ESVIvaW5mby9hdHRyaWJ1dGVzYCwgdGhlIGAuZ2l0YXR0cmlidXRlc2AgZmlsZSBhdCB0aGUKK3RvcCBsZXZlbCBvZiB0aGUgd29ya2luZyB0cmVlLCBvciB0aGUgZ2xvYmFsIG9yIHN5c3RlbS13aWRlCitnaXRhdHRyaWJ1dGVzIGZpbGVzKSwgbm90IGluIGAuZ2l0YXR0cmlidXRlc2AgZmlsZXMgaW4gd29ya2luZyB0cmVlCitzdWJkaXJlY3Rvcmllcy4gIFRoZSBidWlsdC1pbiBtYWNybyBhdHRyaWJ1dGUgImJpbmFyeSIgaXMgZXF1aXZhbGVudAordG86CiAKIC0tLS0tLS0tLS0tLQogW2F0dHJdYmluYXJ5IC1kaWZmIC1tZXJnZSAtdGV4dApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXRjbGkudHh0IGIvRG9jdW1lbnRhdGlvbi9naXRjbGkudHh0CmluZGV4IDlhYzUwODguLjNmMzNjYTUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0Y2xpLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdGNsaS50eHQKQEAgLTU5LDYgKzU5LDEwIEBACiBzZWUgYGhlbGxvLmNgIGluIHlvdXIgd29ya2luZyB0cmVlIHdpdGggdGhlIGZvcm1lciwgYnV0IHdpdGggdGhlIGxhdHRlcgogeW91IHdpbGwuCiAKKyAqIEp1c3QgYXMgdGhlIGZpbGVzeXN0ZW0gJy4nIChwZXJpb2QpIHJlZmVycyB0byB0aGUgY3VycmVudCBkaXJlY3RvcnksCisgICB1c2luZyBhICcuJyBhcyBhIHJlcG9zaXRvcnkgbmFtZSBpbiBHaXQgKGEgZG90LXJlcG9zaXRvcnkpIGlzIGEgcmVsYXRpdmUKKyAgIHBhdGggYW5kIG1lYW5zIHlvdXIgY3VycmVudCByZXBvc2l0b3J5LgorCiBIZXJlIGFyZSB0aGUgcnVsZXMgcmVnYXJkaW5nIHRoZSAiZmxhZ3MiIHRoYXQgeW91IHNob3VsZCBmb2xsb3cgd2hlbiB5b3UgYXJlCiBzY3JpcHRpbmcgR2l0OgogCkBAIC02OCwyMyArNzIsMjMgQEAKICAqIHNwbGl0dGluZyBzaG9ydCBvcHRpb25zIHRvIHNlcGFyYXRlIHdvcmRzIChwcmVmZXIgYGdpdCBmb28gLWEgLWJgCiAgICB0byBgZ2l0IGZvbyAtYWJgLCB0aGUgbGF0dGVyIG1heSBub3QgZXZlbiB3b3JrKS4KIAotICogd2hlbiBhIGNvbW1hbmQgbGluZSBvcHRpb24gdGFrZXMgYW4gYXJndW1lbnQsIHVzZSB0aGUgJ3N0aWNrZWQnIGZvcm0uICBJbgorICogd2hlbiBhIGNvbW1hbmQgbGluZSBvcHRpb24gdGFrZXMgYW4gYXJndW1lbnQsIHVzZSB0aGUgJ3N0dWNrJyBmb3JtLiAgSW4KICAgIG90aGVyIHdvcmRzLCB3cml0ZSBgZ2l0IGZvbyAtb0FyZ2AgaW5zdGVhZCBvZiBgZ2l0IGZvbyAtbyBBcmdgIGZvciBzaG9ydAogICAgb3B0aW9ucywgYW5kIGBnaXQgZm9vIC0tbG9uZy1vcHQ9QXJnYCBpbnN0ZWFkIG9mIGBnaXQgZm9vIC0tbG9uZy1vcHQgQXJnYAogICAgZm9yIGxvbmcgb3B0aW9ucy4gIEFuIG9wdGlvbiB0aGF0IHRha2VzIG9wdGlvbmFsIG9wdGlvbi1hcmd1bWVudCBtdXN0IGJlCi0gICB3cml0dGVuIGluIHRoZSAnc3RpY2tlZCcgZm9ybS4KKyAgIHdyaXR0ZW4gaW4gdGhlICdzdHVjaycgZm9ybS4KIAogICogd2hlbiB5b3UgZ2l2ZSBhIHJldmlzaW9uIHBhcmFtZXRlciB0byBhIGNvbW1hbmQsIG1ha2Ugc3VyZSB0aGUgcGFyYW1ldGVyIGlzCiAgICBub3QgYW1iaWd1b3VzIHdpdGggYSBuYW1lIG9mIGEgZmlsZSBpbiB0aGUgd29yayB0cmVlLiAgRS5nLiBkbyBub3Qgd3JpdGUKICAgIGBnaXQgbG9nIC0xIEhFQURgIGJ1dCB3cml0ZSBgZ2l0IGxvZyAtMSBIRUFEIC0tYDsgdGhlIGZvcm1lciB3aWxsIG5vdCB3b3JrCiAgICBpZiB5b3UgaGFwcGVuIHRvIGhhdmUgYSBmaWxlIGNhbGxlZCBgSEVBRGAgaW4gdGhlIHdvcmsgdHJlZS4KIAotICogbWFueSBjb21tYW5kcyBhbGxvdyBhIGxvbmcgb3B0aW9uICItLW9wdGlvbiIgdG8gYmUgYWJicmV2aWF0ZWQKKyAqIG1hbnkgY29tbWFuZHMgYWxsb3cgYSBsb25nIG9wdGlvbiBgLS1vcHRpb25gIHRvIGJlIGFiYnJldmlhdGVkCiAgICBvbmx5IHRvIHRoZWlyIHVuaXF1ZSBwcmVmaXggKGUuZy4gaWYgdGhlcmUgaXMgbm8gb3RoZXIgb3B0aW9uCi0gICB3aG9zZSBuYW1lIGJlZ2lucyB3aXRoICJvcHQiLCB5b3UgbWF5IGJlIGFibGUgdG8gc3BlbGwgIi0tb3B0IiB0bwotICAgaW52b2tlIHRoZSAiLS1vcHRpb24iIGZsYWcpLCBidXQgeW91IHNob3VsZCBmdWxseSBzcGVsbCB0aGVtIG91dAorICAgd2hvc2UgbmFtZSBiZWdpbnMgd2l0aCBgb3B0YCwgeW91IG1heSBiZSBhYmxlIHRvIHNwZWxsIGAtLW9wdGAgdG8KKyAgIGludm9rZSB0aGUgYC0tb3B0aW9uYCBmbGFnKSwgYnV0IHlvdSBzaG91bGQgZnVsbHkgc3BlbGwgdGhlbSBvdXQKICAgIHdoZW4gd3JpdGluZyB5b3VyIHNjcmlwdHM7IGxhdGVyIHZlcnNpb25zIG9mIEdpdCBtYXkgaW50cm9kdWNlIGEKLSAgIG5ldyBvcHRpb24gd2hvc2UgbmFtZSBzaGFyZXMgdGhlIHNhbWUgcHJlZml4LCBlLmcuICItLW9wdGltaXplIiwKKyAgIG5ldyBvcHRpb24gd2hvc2UgbmFtZSBzaGFyZXMgdGhlIHNhbWUgcHJlZml4LCBlLmcuIGAtLW9wdGltaXplYCwKICAgIHRvIG1ha2UgYSBzaG9ydCBwcmVmaXggdGhhdCB1c2VkIHRvIGJlIHVuaXF1ZSBubyBsb25nZXIgdW5pcXVlLgogCiAKQEAgLTEwNiw3ICsxMTAsNyBAQAogKwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAkIGdpdCBkZXNjcmliZSAtaAotdXNhZ2U6IGdpdCBkZXNjcmliZSBbb3B0aW9uc10gPGNvbW1pdHRpc2g+KgordXNhZ2U6IGdpdCBkZXNjcmliZSBbb3B0aW9uc10gPGNvbW1pdC1pc2g+KgogICAgb3I6IGdpdCBkZXNjcmliZSBbb3B0aW9uc10gLS1kaXJ0eQogCiAgICAgLS1jb250YWlucyAgICAgICAgICAgIGZpbmQgdGhlIHRhZyB0aGF0IGNvbWVzIGFmdGVyIHRoZSBjb21taXQKQEAgLTE0NSw3ICsxNDksNyBAQAogd2l0aCBhIGNhdXRpb24uICBGb3IgZXhhbXBsZSwgYGdpdCBjb21taXQgLS1hbWVuYCBiZWhhdmVzIGFzIGlmIHlvdQogdHlwZWQgYGdpdCBjb21taXQgLS1hbWVuZGAsIGJ1dCB0aGF0IGlzIHRydWUgb25seSB1bnRpbCBhIGxhdGVyIHZlcnNpb24KIG9mIEdpdCBpbnRyb2R1Y2VzIGFub3RoZXIgb3B0aW9uIHRoYXQgc2hhcmVzIHRoZSBzYW1lIHByZWZpeCwKLWUuZyBgZ2l0IGNvbW1pdCAtLWFtZW5pdHkiIG9wdGlvbi4KK2UuZy4gYGdpdCBjb21taXQgLS1hbWVuaXR5YCBvcHRpb24uCiAKIAogU2VwYXJhdGluZyBhcmd1bWVudCBmcm9tIHRoZSBvcHRpb24KQEAgLTE2MSw3ICsxNjUsNyBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBIb3dldmVyLCB0aGlzIGlzICpOT1QqIGFsbG93ZWQgZm9yIHN3aXRjaGVzIHdpdGggYW4gb3B0aW9uYWwgdmFsdWUsIHdoZXJlIHRoZQotJ3N0aWNrZWQnIGZvcm0gbXVzdCBiZSB1c2VkOgorJ3N0dWNrJyBmb3JtIG11c3QgYmUgdXNlZDoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICQgZ2l0IGRlc2NyaWJlIC0tYWJicmV2IEhFQUQgICAgICMgY29ycmVjdAogJCBnaXQgZGVzY3JpYmUgLS1hYmJyZXY9MTAgSEVBRCAgIyBjb3JyZWN0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdGNvcmUtdHV0b3JpYWwudHh0IGIvRG9jdW1lbnRhdGlvbi9naXRjb3JlLXR1dG9yaWFsLnR4dAppbmRleCBmNTM4YTg3Li4wNThhMzUyIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdGNvcmUtdHV0b3JpYWwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0Y29yZS10dXRvcmlhbC50eHQKQEAgLTUzNCw0MiArNTM0LDkgQEAKIAogSW4gZmFjdCwgdG9nZXRoZXIgd2l0aCB0aGUgJ2dpdCByZXYtbGlzdCcgcHJvZ3JhbSAod2hpY2ggZ2VuZXJhdGVzIGEKIGxpc3Qgb2YgcmV2aXNpb25zKSwgJ2dpdCBkaWZmLXRyZWUnIGVuZHMgdXAgYmVpbmcgYSB2ZXJpdGFibGUgZm91bnQgb2YKLWNoYW5nZXMuIEEgdHJpdmlhbCAoYnV0IHZlcnkgdXNlZnVsKSBzY3JpcHQgY2FsbGVkICdnaXQgd2hhdGNoYW5nZWQnIGlzCi1pbmNsdWRlZCB3aXRoIEdpdCB3aGljaCBkb2VzIGV4YWN0bHkgdGhpcywgYW5kIHNob3dzIGEgbG9nIG9mIHJlY2VudAotYWN0aXZpdGllcy4KLQotVG8gc2VlIHRoZSB3aG9sZSBoaXN0b3J5IG9mIG91ciBwaXRpZnVsIGxpdHRsZSBnaXQtdHV0b3JpYWwgcHJvamVjdCwgeW91Ci1jYW4gZG8KLQotLS0tLS0tLS0tLS0tLS0tLQotJCBnaXQgbG9nCi0tLS0tLS0tLS0tLS0tLS0tCi0KLXdoaWNoIHNob3dzIGp1c3QgdGhlIGxvZyBtZXNzYWdlcywgb3IgaWYgd2Ugd2FudCB0byBzZWUgdGhlIGxvZyB0b2dldGhlcgotd2l0aCB0aGUgYXNzb2NpYXRlZCBwYXRjaGVzIHVzZSB0aGUgbW9yZSBjb21wbGV4IChhbmQgbXVjaCBtb3JlCi1wb3dlcmZ1bCkKLQotLS0tLS0tLS0tLS0tLS0tLQotJCBnaXQgd2hhdGNoYW5nZWQgLXAKLS0tLS0tLS0tLS0tLS0tLS0KLQotYW5kIHlvdSB3aWxsIHNlZSBleGFjdGx5IHdoYXQgaGFzIGNoYW5nZWQgaW4gdGhlIHJlcG9zaXRvcnkgb3ZlciBpdHMKLXNob3J0IGhpc3RvcnkuCi0KLVtOT1RFXQotV2hlbiB1c2luZyB0aGUgYWJvdmUgdHdvIGNvbW1hbmRzLCB0aGUgaW5pdGlhbCBjb21taXQgd2lsbCBiZSBzaG93bi4KLUlmIHRoaXMgaXMgYSBwcm9ibGVtIGJlY2F1c2UgaXQgaXMgaHVnZSwgeW91IGNhbiBoaWRlIGl0IGJ5IHNldHRpbmcKLXRoZSBsb2cuc2hvd3Jvb3QgY29uZmlndXJhdGlvbiB2YXJpYWJsZSB0byBmYWxzZS4gSGF2aW5nIHRoaXMsIHlvdQotY2FuIHN0aWxsIHNob3cgaXQgZm9yIGVhY2ggY29tbWFuZCBqdXN0IGFkZGluZyB0aGUgYC0tcm9vdGAgb3B0aW9uLAotd2hpY2ggaXMgYSBmbGFnIGZvciAnZ2l0IGRpZmYtdHJlZScgYWNjZXB0ZWQgYnkgYm90aCBjb21tYW5kcy4KLQotV2l0aCB0aGF0LCB5b3Ugc2hvdWxkIG5vdyBiZSBoYXZpbmcgc29tZSBpbmtsaW5nIG9mIHdoYXQgR2l0IGRvZXMsIGFuZAotY2FuIGV4cGxvcmUgb24geW91ciBvd24uCi0KLVtOT1RFXQotTW9zdCBsaWtlbHksIHlvdSBhcmUgbm90IGRpcmVjdGx5IHVzaW5nIHRoZSBjb3JlCi1HaXQgUGx1bWJpbmcgY29tbWFuZHMsIGJ1dCB1c2luZyBQb3JjZWxhaW4gc3VjaCBhcyAnZ2l0IGFkZCcsIGBnaXQtcm0nCi1hbmQgYGdpdC1jb21taXQnLgorY2hhbmdlcy4gIFlvdSBjYW4gZW11bGF0ZSBgZ2l0IGxvZ2AsIGBnaXQgbG9nIC1wYCwgZXRjLiB3aXRoIGEgdHJpdmlhbAorc2NyaXB0IHRoYXQgcGlwZXMgdGhlIG91dHB1dCBvZiBgZ2l0IHJldi1saXN0YCB0byBgZ2l0IGRpZmYtdHJlZSAtLXN0ZGluYCwKK3doaWNoIHdhcyBleGFjdGx5IGhvdyBlYXJseSB2ZXJzaW9ucyBvZiBgZ2l0IGxvZ2Agd2VyZSBpbXBsZW1lbnRlZC4KIAogCiBUYWdnaW5nIGEgdmVyc2lvbgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXRjdnMtbWlncmF0aW9uLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0Y3ZzLW1pZ3JhdGlvbi50eHQKaW5kZXggNWFiNWIwNy4uNWVhOTRjYiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXRjdnMtbWlncmF0aW9uLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdGN2cy1taWdyYXRpb24udHh0CkBAIC0xNTcsNyArMTU3LDcgQEAKIHJlcG9zaXRvcnkgdG8gYSBtYWlsaW5nIGxpc3QuICBTZWUgbGlua2dpdDpnaXRob29rc1s1XS4KIAogWW91IGNhbiBlbmZvcmNlIGZpbmVyIGdyYWluZWQgcGVybWlzc2lvbnMgdXNpbmcgdXBkYXRlIGhvb2tzLiAgU2VlCi1saW5rOmhvd3RvL3VwZGF0ZS1ob29rLWV4YW1wbGUudHh0W0NvbnRyb2xsaW5nIGFjY2VzcyB0byBicmFuY2hlcyB1c2luZworbGluazpob3d0by91cGRhdGUtaG9vay1leGFtcGxlLmh0bWxbQ29udHJvbGxpbmcgYWNjZXNzIHRvIGJyYW5jaGVzIHVzaW5nCiB1cGRhdGUgaG9va3NdLgogCiBQcm92aWRpbmcgQ1ZTIEFjY2VzcyB0byBhIEdpdCBSZXBvc2l0b3J5CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdGlnbm9yZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdGlnbm9yZS50eHQKaW5kZXggZjk3MTk2MC4uYjA4ZDM0ZCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXRpZ25vcmUudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0aWdub3JlLnR4dApAQCAtNyw3ICs3LDcgQEAKIAogU1lOT1BTSVMKIC0tLS0tLS0tCi0kR0lUX0RJUi9pbmZvL2V4Y2x1ZGUsIC5naXRpZ25vcmUKKyRIT01FLy5jb25maWcvZ2l0L2lnbm9yZSwgJEdJVF9ESVIvaW5mby9leGNsdWRlLCAuZ2l0aWdub3JlCiAKIERFU0NSSVBUSU9OCiAtLS0tLS0tLS0tLQpAQCAtNzksOCArNzksMTAgQEAKIAogIC0gQW4gb3B0aW9uYWwgcHJlZml4ICJgIWAiIHdoaWNoIG5lZ2F0ZXMgdGhlIHBhdHRlcm47IGFueQogICAgbWF0Y2hpbmcgZmlsZSBleGNsdWRlZCBieSBhIHByZXZpb3VzIHBhdHRlcm4gd2lsbCBiZWNvbWUKLSAgIGluY2x1ZGVkIGFnYWluLiAgSWYgYSBuZWdhdGVkIHBhdHRlcm4gbWF0Y2hlcywgdGhpcyB3aWxsCi0gICBvdmVycmlkZSBsb3dlciBwcmVjZWRlbmNlIHBhdHRlcm5zIHNvdXJjZXMuCisgICBpbmNsdWRlZCBhZ2Fpbi4gSXQgaXMgbm90IHBvc3NpYmxlIHRvIHJlLWluY2x1ZGUgYSBmaWxlIGlmIGEgcGFyZW50CisgICBkaXJlY3Rvcnkgb2YgdGhhdCBmaWxlIGlzIGV4Y2x1ZGVkLiBHaXQgZG9lc24ndCBsaXN0IGV4Y2x1ZGVkCisgICBkaXJlY3RvcmllcyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgc28gYW55IHBhdHRlcm5zIG9uIGNvbnRhaW5lZAorICAgZmlsZXMgaGF2ZSBubyBlZmZlY3QsIG5vIG1hdHRlciB3aGVyZSB0aGV5IGFyZSBkZWZpbmVkLgogICAgUHV0IGEgYmFja3NsYXNoICgiYFxgIikgaW4gZnJvbnQgb2YgdGhlIGZpcnN0ICJgIWAiIGZvciBwYXR0ZXJucwogICAgdGhhdCBiZWdpbiB3aXRoIGEgbGl0ZXJhbCAiYCFgIiwgZm9yIGV4YW1wbGUsICJgXCFpbXBvcnRhbnQhLnR4dGAiLgogCkBAIC0xODIsNiArMTg0LDE5IEBACiBUaGUgc2Vjb25kIC5naXRpZ25vcmUgcHJldmVudHMgR2l0IGZyb20gaWdub3JpbmcKIGBhcmNoL2Zvby9rZXJuZWwvdm1saW51eC5sZHMuU2AuCiAKK0V4YW1wbGUgdG8gZXhjbHVkZSBldmVyeXRoaW5nIGV4Y2VwdCBhIHNwZWNpZmljIGRpcmVjdG9yeSBgZm9vL2JhcmAKKyhub3RlIHRoZSBgLypgIC0gd2l0aG91dCB0aGUgc2xhc2gsIHRoZSB3aWxkY2FyZCB3b3VsZCBhbHNvIGV4Y2x1ZGUKK2V2ZXJ5dGhpbmcgd2l0aGluIGBmb28vYmFyYCk6CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgJCBjYXQgLmdpdGlnbm9yZQorICAgICMgZXhjbHVkZSBldmVyeXRoaW5nIGV4Y2VwdCBkaXJlY3RvcnkgZm9vL2JhcgorICAgIC8qCisgICAgIS9mb28KKyAgICAvZm9vLyoKKyAgICAhL2Zvby9iYXIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIFNFRSBBTFNPCiAtLS0tLS0tLQogbGlua2dpdDpnaXQtcm1bMV0sCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdGsudHh0IGIvRG9jdW1lbnRhdGlvbi9naXRrLnR4dAppbmRleCBjMTdlNzYwLi4xZTllMzhhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdGsudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0ay50eHQKQEAgLTgsNyArOCw3IEBACiBTWU5PUFNJUwogLS0tLS0tLS0KIFt2ZXJzZV0KLSdnaXRrJyBbPG9wdGlvbj4uLi5dIFs8cmV2cz5dIFstLV0gWzxwYXRoPi4uLl0KKydnaXRrJyBbPG9wdGlvbnM+XSBbPHJldmlzaW9uIHJhbmdlPl0gW1wtLV0gWzxwYXRoPi4uLl0KIAogREVTQ1JJUFRJT04KIC0tLS0tLS0tLS0tCkBAIC0xNiwyMSArMTYsMzggQEAKIHZpc3VhbGl6aW5nIHRoZSBjb21taXQgZ3JhcGgsIHNob3dpbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBlYWNoIGNvbW1pdCwgYW5kCiB0aGUgZmlsZXMgaW4gdGhlIHRyZWVzIG9mIGVhY2ggcmV2aXNpb24uCiAKLUhpc3RvcmljYWxseSwgZ2l0ayB3YXMgdGhlIGZpcnN0IHJlcG9zaXRvcnkgYnJvd3Nlci4gSXQncyB3cml0dGVuIGluIHRjbC90awotYW5kIHN0YXJ0ZWQgb2ZmIGluIGEgc2VwYXJhdGUgcmVwb3NpdG9yeSBidXQgd2FzIGxhdGVyIG1lcmdlZCBpbnRvIHRoZSBtYWluCi1HaXQgcmVwb3NpdG9yeS4KLQogT1BUSU9OUwogLS0tLS0tLQotVG8gY29udHJvbCB3aGljaCByZXZpc2lvbnMgdG8gc2hvdywgdGhlIGNvbW1hbmQgdGFrZXMgb3B0aW9ucyBhcHBsaWNhYmxlIHRvCi10aGUgJ2dpdCByZXYtbGlzdCcgY29tbWFuZCAoc2VlIGxpbmtnaXQ6Z2l0LXJldi1saXN0WzFdKS4KLVRoaXMgbWFudWFsIHBhZ2UgZGVzY3JpYmVzIG9ubHkgdGhlIG1vc3QKLWZyZXF1ZW50bHkgdXNlZCBvcHRpb25zLgogCi0tbiA8bnVtYmVyPjo6Ci0tLW1heC1jb3VudD08bnVtYmVyPjo6CitUbyBjb250cm9sIHdoaWNoIHJldmlzaW9ucyB0byBzaG93LCBnaXRrIHN1cHBvcnRzIG1vc3Qgb3B0aW9ucworYXBwbGljYWJsZSB0byB0aGUgJ2dpdCByZXYtbGlzdCcgY29tbWFuZC4gIEl0IGFsc28gc3VwcG9ydHMgYSBmZXcKK29wdGlvbnMgYXBwbGljYWJsZSB0byB0aGUgJ2dpdCBkaWZmLSonIGNvbW1hbmRzIHRvIGNvbnRyb2wgaG93IHRoZQorY2hhbmdlcyBlYWNoIGNvbW1pdCBpbnRyb2R1Y2VzIGFyZSBzaG93bi4gIEZpbmFsbHksIGl0IHN1cHBvcnRzIHNvbWUKK2dpdGstc3BlY2lmaWMgb3B0aW9ucy4KIAotCUxpbWl0cyB0aGUgbnVtYmVyIG9mIGNvbW1pdHMgdG8gc2hvdy4KK2dpdGsgZ2VuZXJhbGx5IG9ubHkgdW5kZXJzdGFuZHMgb3B0aW9ucyB3aXRoIGFyZ3VtZW50cyBpbiB0aGUKKydzdGlja2VkJyBmb3JtIChzZWUgbGlua2dpdDpnaXRjbGlbN10pIGR1ZSB0byBsaW1pdGF0aW9ucyBpbiB0aGUKK2NvbW1hbmQgbGluZSBwYXJzZXIuCisKK3Jldi1saXN0IG9wdGlvbnMgYW5kIGFyZ3VtZW50cworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK1RoaXMgbWFudWFsIHBhZ2UgZGVzY3JpYmVzIG9ubHkgdGhlIG1vc3QgZnJlcXVlbnRseSB1c2VkIG9wdGlvbnMuICBTZWUKK2xpbmtnaXQ6Z2l0LXJldi1saXN0WzFdIGZvciBhIGNvbXBsZXRlIGxpc3QuCisKKy0tYWxsOjoKKworCVNob3cgYWxsIHJlZnMgKGJyYW5jaGVzLCB0YWdzLCBldGMuKS4KKworLS1icmFuY2hlc1s9PHBhdHRlcm4+XTo6CistLXRhZ3NbPTxwYXR0ZXJuPl06OgorLS1yZW1vdGVzWz08cGF0dGVybj5dOjoKKworCVByZXRlbmQgYXMgaWYgYWxsIHRoZSBicmFuY2hlcyAodGFncywgcmVtb3RlIGJyYW5jaGVzLCByZXNwLikKKwlhcmUgbGlzdGVkIG9uIHRoZSBjb21tYW5kIGxpbmUgYXMgJzxjb21taXQ+Jy4gSWYgJzxwYXR0ZXJuPicKKwlpcyBnaXZlbiwgbGltaXQgcmVmcyB0byBvbmVzIG1hdGNoaW5nIGdpdmVuIHNoZWxsIGdsb2IuIElmCisJcGF0dGVybiBsYWNrcyAnPycsICd7YXN0ZXJpc2t9Jywgb3IgJ1snLCAnL3thc3Rlcmlza30nIGF0IHRoZQorCWVuZCBpcyBpbXBsaWVkLgogCiAtLXNpbmNlPTxkYXRlPjo6CiAKQEAgLTQwLDkgKzU3LDkgQEAKIAogCVNob3cgY29tbWl0cyBvbGRlciB0aGFuIGEgc3BlY2lmaWMgZGF0ZS4KIAotLS1hbGw6OgorLS1kYXRlLW9yZGVyOjoKIAotCVNob3cgYWxsIGJyYW5jaGVzLgorCVNvcnQgY29tbWl0cyBieSBkYXRlIHdoZW4gcG9zc2libGUuCiAKIC0tbWVyZ2U6OgogCkBAIC01MSwxOSArNjgsNTMgQEAKIAl0aGF0IG1vZGlmeSB0aGUgY29uZmxpY3RlZCBmaWxlcyBhbmQgZG8gbm90IGV4aXN0IG9uIGFsbCB0aGUgaGVhZHMKIAliZWluZyBtZXJnZWQuCiAKLS0tYXJnc2NtZD08Y29tbWFuZD46OgotCUNvbW1hbmQgdG8gYmUgcnVuIGVhY2ggdGltZSBnaXRrIGhhcyB0byBkZXRlcm1pbmUgdGhlIGxpc3Qgb2YKLQk8cmV2cz4gdG8gc2hvdy4gIFRoZSBjb21tYW5kIGlzIGV4cGVjdGVkIHRvIHByaW50IG9uIGl0cyBzdGFuZGFyZAotCW91dHB1dCBhIGxpc3Qgb2YgYWRkaXRpb25hbCByZXZzIHRvIGJlIHNob3duLCBvbmUgcGVyIGxpbmUuCi0JVXNlIHRoaXMgaW5zdGVhZCBvZiBleHBsaWNpdGx5IHNwZWNpZnlpbmcgPHJldnM+IGlmIHRoZSBzZXQgb2YKLQljb21taXRzIHRvIHNob3cgbWF5IHZhcnkgYmV0d2VlbiByZWZyZXNoZXMuCistLWxlZnQtcmlnaHQ6OgogCi0tLXNlbGVjdC1jb21taXQ9PHJlZj46OgorCU1hcmsgd2hpY2ggc2lkZSBvZiBhIHN5bW1ldHJpYyBkaWZmIGEgY29tbWl0IGlzIHJlYWNoYWJsZQorCWZyb20uICBDb21taXRzIGZyb20gdGhlIGxlZnQgc2lkZSBhcmUgcHJlZml4ZWQgd2l0aCBhIGA8YAorCXN5bWJvbCBhbmQgdGhvc2UgZnJvbSB0aGUgcmlnaHQgd2l0aCBhIGA+YCBzeW1ib2wuCiAKLQlBdXRvbWF0aWNhbGx5IHNlbGVjdCB0aGUgc3BlY2lmaWVkIGNvbW1pdCBhZnRlciBsb2FkaW5nIHRoZSBncmFwaC4KLQlEZWZhdWx0IGJlaGF2aW9yIGlzIGVxdWl2YWxlbnQgdG8gc3BlY2lmeWluZyAnLS1zZWxlY3QtY29tbWl0PUhFQUQnLgorLS1mdWxsLWhpc3Rvcnk6OgogCi08cmV2cz46OgorCVdoZW4gZmlsdGVyaW5nIGhpc3Rvcnkgd2l0aCAnPHBhdGg+Li4uJywgZG9lcyBub3QgcHJ1bmUgc29tZQorCWhpc3RvcnkuICAoU2VlICJIaXN0b3J5IHNpbXBsaWZpY2F0aW9uIiBpbiBsaW5rZ2l0OmdpdC1sb2dbMV0KKwlmb3IgYSBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uLikKKworLS1zaW1wbGlmeS1tZXJnZXM6OgorCisJQWRkaXRpb25hbCBvcHRpb24gdG8gJy0tZnVsbC1oaXN0b3J5JyB0byByZW1vdmUgc29tZSBuZWVkbGVzcworCW1lcmdlcyBmcm9tIHRoZSByZXN1bHRpbmcgaGlzdG9yeSwgYXMgdGhlcmUgYXJlIG5vIHNlbGVjdGVkCisJY29tbWl0cyBjb250cmlidXRpbmcgdG8gdGhpcyBtZXJnZS4gIChTZWUgIkhpc3RvcnkKKwlzaW1wbGlmaWNhdGlvbiIgaW4gbGlua2dpdDpnaXQtbG9nWzFdIGZvciBhIG1vcmUgZGV0YWlsZWQKKwlleHBsYW5hdGlvbi4pCisKKy0tYW5jZXN0cnktcGF0aDo6CisKKwlXaGVuIGdpdmVuIGEgcmFuZ2Ugb2YgY29tbWl0cyB0byBkaXNwbGF5CisJKGUuZy4gJ2NvbW1pdDEuLmNvbW1pdDInIG9yICdjb21taXQyIHtjYXJldH1jb21taXQxJyksIG9ubHkKKwlkaXNwbGF5IGNvbW1pdHMgdGhhdCBleGlzdCBkaXJlY3RseSBvbiB0aGUgYW5jZXN0cnkgY2hhaW4KKwliZXR3ZWVuIHRoZSAnY29tbWl0MScgYW5kICdjb21taXQyJywgaS5lLiBjb21taXRzIHRoYXQgYXJlCisJYm90aCBkZXNjZW5kYW50cyBvZiAnY29tbWl0MScsIGFuZCBhbmNlc3RvcnMgb2YgJ2NvbW1pdDInLgorCShTZWUgIkhpc3Rvcnkgc2ltcGxpZmljYXRpb24iIGluIGxpbmtnaXQ6Z2l0LWxvZ1sxXSBmb3IgYSBtb3JlCisJZGV0YWlsZWQgZXhwbGFuYXRpb24uKQorCistTDxzdGFydD4sPGVuZD46PGZpbGU+OjoKKy1MOjxyZWdleD46PGZpbGU+OjoKKworCVRyYWNlIHRoZSBldm9sdXRpb24gb2YgdGhlIGxpbmUgcmFuZ2UgZ2l2ZW4gYnkgIjxzdGFydD4sPGVuZD4iCisJKG9yIHRoZSBmdW5jbmFtZSByZWdleCA8cmVnZXg+KSB3aXRoaW4gdGhlIDxmaWxlPi4gIFlvdSBtYXkKKwlub3QgZ2l2ZSBhbnkgcGF0aHNwZWMgbGltaXRlcnMuICBUaGlzIGlzIGN1cnJlbnRseSBsaW1pdGVkIHRvCisJYSB3YWxrIHN0YXJ0aW5nIGZyb20gYSBzaW5nbGUgcmV2aXNpb24sIGkuZS4sIHlvdSBtYXkgb25seQorCWdpdmUgemVybyBvciBvbmUgcG9zaXRpdmUgcmV2aXNpb24gYXJndW1lbnRzLgorCVlvdSBjYW4gc3BlY2lmeSB0aGlzIG9wdGlvbiBtb3JlIHRoYW4gb25jZS4KKysKKypOb3RlOiogZ2l0ayAodW5saWtlIGxpbmtnaXQ6Z2l0LWxvZ1sxXSkgY3VycmVudGx5IG9ubHkgdW5kZXJzdGFuZHMKK3RoaXMgb3B0aW9uIGlmIHlvdSBzcGVjaWZ5IGl0ICJnbHVlZCB0b2dldGhlciIgd2l0aCBpdHMgYXJndW1lbnQuICBEbworKm5vdCogcHV0IGEgc3BhY2UgYWZ0ZXIgYC1MYC4KKysKK2luY2x1ZGU6OmxpbmUtcmFuZ2UtZm9ybWF0LnR4dFtdCisKKzxyZXZpc2lvbiByYW5nZT46OgogCiAJTGltaXQgdGhlIHJldmlzaW9ucyB0byBzaG93LiBUaGlzIGNhbiBiZSBlaXRoZXIgYSBzaW5nbGUgcmV2aXNpb24KIAltZWFuaW5nIHNob3cgZnJvbSB0aGUgZ2l2ZW4gcmV2aXNpb24gYW5kIGJhY2ssIG9yIGl0IGNhbiBiZSBhIHJhbmdlIGluCkBAIC03OCw2ICsxMjksMjMgQEAKIAlhdm9pZCBhbWJpZ3VpdHkgd2l0aCByZXNwZWN0IHRvIHJldmlzaW9uIG5hbWVzIHVzZSAiLS0iIHRvIHNlcGFyYXRlIHRoZSBwYXRocwogCWZyb20gYW55IHByZWNlZGluZyBvcHRpb25zLgogCitnaXRrLXNwZWNpZmljIG9wdGlvbnMKK35+fn5+fn5+fn5+fn5+fn5+fn5+fgorCistLWFyZ3NjbWQ9PGNvbW1hbmQ+OjoKKworCUNvbW1hbmQgdG8gYmUgcnVuIGVhY2ggdGltZSBnaXRrIGhhcyB0byBkZXRlcm1pbmUgdGhlIHJldmlzaW9uCisJcmFuZ2UgdG8gc2hvdy4gIFRoZSBjb21tYW5kIGlzIGV4cGVjdGVkIHRvIHByaW50IG9uIGl0cworCXN0YW5kYXJkIG91dHB1dCBhIGxpc3Qgb2YgYWRkaXRpb25hbCByZXZpc2lvbnMgdG8gYmUgc2hvd24sCisJb25lIHBlciBsaW5lLiAgVXNlIHRoaXMgaW5zdGVhZCBvZiBleHBsaWNpdGx5IHNwZWNpZnlpbmcgYQorCSc8cmV2aXNpb24gcmFuZ2U+JyBpZiB0aGUgc2V0IG9mIGNvbW1pdHMgdG8gc2hvdyBtYXkgdmFyeQorCWJldHdlZW4gcmVmcmVzaGVzLgorCistLXNlbGVjdC1jb21taXQ9PHJlZj46OgorCisJU2VsZWN0IHRoZSBzcGVjaWZpZWQgY29tbWl0IGFmdGVyIGxvYWRpbmcgdGhlIGdyYXBoLgorCURlZmF1bHQgYmVoYXZpb3IgaXMgZXF1aXZhbGVudCB0byBzcGVjaWZ5aW5nICctLXNlbGVjdC1jb21taXQ9SEVBRCcuCisKIEV4YW1wbGVzCiAtLS0tLS0tLQogZ2l0ayB2Mi42LjEyLi4gaW5jbHVkZS9zY3NpIGRyaXZlcnMvc2NzaTo6CkBAIC0xMDEsNiArMTY5LDEzIEBACiBHaXRrIGNyZWF0ZXMgdGhlIC5naXRrIGZpbGUgaW4geW91ciAkSE9NRSBkaXJlY3RvcnkgdG8gc3RvcmUgcHJlZmVyZW5jZXMKIHN1Y2ggYXMgZGlzcGxheSBvcHRpb25zLCBmb250LCBhbmQgY29sb3JzLgogCitIaXN0b3J5CistLS0tLS0tCitHaXRrIHdhcyB0aGUgZmlyc3QgZ3JhcGhpY2FsIHJlcG9zaXRvcnkgYnJvd3Nlci4gSXQncyB3cml0dGVuIGluCit0Y2wvdGsgYW5kIHN0YXJ0ZWQgb2ZmIGluIGEgc2VwYXJhdGUgcmVwb3NpdG9yeSBidXQgd2FzIGxhdGVyIG1lcmdlZAoraW50byB0aGUgbWFpbiBHaXQgcmVwb3NpdG9yeS4KKworCiBTRUUgQUxTTwogLS0tLS0tLS0KICdxZ2l0KDEpJzo6CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdG1vZHVsZXMudHh0IGIvRG9jdW1lbnRhdGlvbi9naXRtb2R1bGVzLnR4dAppbmRleCA2YTFjYTRhLi4zNDdhOWY3IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdG1vZHVsZXMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0bW9kdWxlcy50eHQKQEAgLTM1LDYgKzM1LDggQEAKIAlsaW5rZ2l0OmdpdC1jbG9uZVsxXSBvciAoaWYgaXQgYmVnaW5zIHdpdGggLi8gb3IgLi4vKSBhIGxvY2F0aW9uCiAJcmVsYXRpdmUgdG8gdGhlIHN1cGVycHJvamVjdCdzIG9yaWdpbiByZXBvc2l0b3J5LgogCitJbiBhZGRpdGlvbiwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIG9wdGlvbmFsIGtleXM6CisKIHN1Ym1vZHVsZS48bmFtZT4udXBkYXRlOjoKIAlEZWZpbmVzIHdoYXQgdG8gZG8gd2hlbiB0aGUgc3VibW9kdWxlIGlzIHVwZGF0ZWQgYnkgdGhlIHN1cGVycHJvamVjdC4KIAlJZiAnY2hlY2tvdXQnICh0aGUgZGVmYXVsdCksIHRoZSBuZXcgY29tbWl0IHNwZWNpZmllZCBpbiB0aGUKQEAgLTc1LDcgKzc3LDggQEAKIAl0aGUgc3VwZXJwcm9qZWN0LCB0aGUgc2V0dGluZyB0aGVyZSB3aWxsIG92ZXJyaWRlIHRoZSBvbmUgZm91bmQgaW4KIAkuZ2l0bW9kdWxlcy4KIAlCb3RoIHNldHRpbmdzIGNhbiBiZSBvdmVycmlkZGVuIG9uIHRoZSBjb21tYW5kIGxpbmUgYnkgdXNpbmcgdGhlCi0JIi0taWdub3JlLXN1Ym1vZHVsZSIgb3B0aW9uLgorCSItLWlnbm9yZS1zdWJtb2R1bGUiIG9wdGlvbi4gVGhlICdnaXQgc3VibW9kdWxlJyBjb21tYW5kcyBhcmUgbm90CisJYWZmZWN0ZWQgYnkgdGhpcyBzZXR0aW5nLgogCiAKIEVYQU1QTEVTCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdHJlbW90ZS1oZWxwZXJzLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0cmVtb3RlLWhlbHBlcnMudHh0CmluZGV4IDA4MjdmNjkuLmMyOTA4ZGIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0cmVtb3RlLWhlbHBlcnMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0cmVtb3RlLWhlbHBlcnMudHh0CkBAIC0xMjAsNiArMTIwLDExIEBACiBXaGVuIGNob29zaW5nIGJldHdlZW4gJ3B1c2gnIGFuZCAnZXhwb3J0JywgR2l0IHByZWZlcnMgJ3B1c2gnLgogT3RoZXIgZnJvbnRlbmRzIG1heSBoYXZlIHNvbWUgb3RoZXIgb3JkZXIgb2YgcHJlZmVyZW5jZS4KIAorJ25vLXByaXZhdGUtdXBkYXRlJzo6CisJV2hlbiB1c2luZyB0aGUgJ3JlZnNwZWMnIGNhcGFiaWxpdHksIGdpdCBub3JtYWxseSB1cGRhdGVzIHRoZQorCXByaXZhdGUgcmVmIG9uIHN1Y2Nlc3NmdWwgcHVzaC4gVGhpcyB1cGRhdGUgaXMgZGlzYWJsZWQgd2hlbgorCXRoZSByZW1vdGUtaGVscGVyIGRlY2xhcmVzIHRoZSBjYXBhYmlsaXR5ICduby1wcml2YXRlLXVwZGF0ZScuCisKIAogQ2FwYWJpbGl0aWVzIGZvciBGZXRjaGluZwogXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgpAQCAtMTQzLDYgKzE0OCwxMCBAQAogKwogU3VwcG9ydGVkIGNvbW1hbmRzOiAnbGlzdCcsICdpbXBvcnQnLgogCisnY2hlY2stY29ubmVjdGl2aXR5Jzo6CisJQ2FuIGd1YXJhbnRlZSB0aGF0IHdoZW4gYSBjbG9uZSBpcyByZXF1ZXN0ZWQsIHRoZSByZWNlaXZlZAorCXBhY2sgaXMgc2VsZiBjb250YWluZWQgYW5kIGlzIGNvbm5lY3RlZC4KKwogSWYgYSBoZWxwZXIgYWR2ZXJ0aXNlcyAnY29ubmVjdCcsIEdpdCB3aWxsIHVzZSBpdCBpZiBwb3NzaWJsZSBhbmQKIGZhbGwgYmFjayB0byBhbm90aGVyIGNhcGFiaWxpdHkgaWYgdGhlIGhlbHBlciByZXF1ZXN0cyBzbyB3aGVuCiBjb25uZWN0aW5nIChzZWUgdGhlICdjb25uZWN0JyBjb21tYW5kIHVuZGVyIENPTU1BTkRTKS4KQEAgLTE3Niw2ICsxODUsMTIgQEAKIGFkdmVydGlzZWQgd2l0aCB0aGlzIGNhcGFiaWxpdHkgbXVzdCBjb3ZlciBhbGwgcmVmcyByZXBvcnRlZCBieQogdGhlIGxpc3QgY29tbWFuZC4gIElmIG5vICdyZWZzcGVjJyBjYXBhYmlsaXR5IGlzIGFkdmVydGlzZWQsCiB0aGVyZSBpcyBhbiBpbXBsaWVkIGByZWZzcGVjICo6KmAuCisrCitXaGVuIHdyaXRpbmcgcmVtb3RlLWhlbHBlcnMgZm9yIGRlY2VudHJhbGl6ZWQgdmVyc2lvbiBjb250cm9sCitzeXN0ZW1zLCBpdCBpcyBhZHZpc2VkIHRvIGtlZXAgYSBsb2NhbCBjb3B5IG9mIHRoZSByZXBvc2l0b3J5IHRvCitpbnRlcmFjdCB3aXRoLCBhbmQgdG8gbGV0IHRoZSBwcml2YXRlIG5hbWVzcGFjZSByZWZzIHBvaW50IHRvIHRoaXMKK2xvY2FsIHJlcG9zaXRvcnksIHdoaWxlIHRoZSByZWZzL3JlbW90ZXMgbmFtZXNwYWNlIGlzIHVzZWQgdG8gdHJhY2sKK3RoZSByZW1vdGUgcmVwb3NpdG9yeS4KIAogJ2JpZGktaW1wb3J0Jzo6CiAJVGhpcyBtb2RpZmllcyB0aGUgJ2ltcG9ydCcgY2FwYWJpbGl0eS4KQEAgLTI3MCw2ICsyODUsOSBAQAogR0lUX0RJUi9vYmplY3RzL3BhY2sgd2hpY2ggaXMga2VlcGluZyBhIHBhY2sgdW50aWwgcmVmcyBjYW4gYmUKIHN1aXRhYmx5IHVwZGF0ZWQuCiArCitJZiBvcHRpb24gJ2NoZWNrLWNvbm5lY3Rpdml0eScgaXMgcmVxdWVzdGVkLCB0aGUgaGVscGVyIG11c3Qgb3V0cHV0CisnY29ubmVjdGl2aXR5LW9rJyBpZiB0aGUgY2xvbmUgaXMgc2VsZi1jb250YWluZWQgYW5kIGNvbm5lY3RlZC4KKysKIFN1cHBvcnRlZCBpZiB0aGUgaGVscGVyIGhhcyB0aGUgImZldGNoIiBjYXBhYmlsaXR5LgogCiAncHVzaCcgKzxzcmM+Ojxkc3Q+OjoKQEAgLTQxNiw2ICs0MzQsMTYgQEAKIAltdXN0IG5vdCByZWx5IG9uIHRoaXMgb3B0aW9uIGJlaW5nIHNldCBiZWZvcmUKIAljb25uZWN0IHJlcXVlc3Qgb2NjdXJzLgogCisnb3B0aW9uIGNoZWNrLWNvbm5lY3Rpdml0eScgXHsndHJ1ZSd8J2ZhbHNlJ1x9OjoKKwlSZXF1ZXN0IHRoZSBoZWxwZXIgdG8gY2hlY2sgY29ubmVjdGl2aXR5IG9mIGEgY2xvbmUuCisKKydvcHRpb24gY2xvbmluZyBceyd0cnVlJ3wnZmFsc2UnXH06OgorCU5vdGlmeSB0aGUgaGVscGVyIHRoaXMgaXMgYSBjbG9uZSByZXF1ZXN0IChpLmUuIHRoZSBjdXJyZW50CisJcmVwb3NpdG9yeSBpcyBndWFyYW50ZWVkIGVtcHR5KS4KKworJ29wdGlvbiB1cGRhdGUtc2hhbGxvdyBceyd0cnVlJ3wnZmFsc2UnXH06OgorCUFsbG93IHRvIGV4dGVuZCAuZ2l0L3NoYWxsb3cgaWYgdGhlIG5ldyByZWZzIHJlcXVpcmUgaXQuCisKIFNFRSBBTFNPCiAtLS0tLS0tLQogbGlua2dpdDpnaXQtcmVtb3RlWzFdCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdHdlYi5jb25mLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0d2ViLmNvbmYudHh0CmluZGV4IDMwNWRiNjMuLmRiNDE1NGYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0d2ViLmNvbmYudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0d2ViLmNvbmYudHh0CkBAIC04MjIsMTggKzgyMiwxOCBAQAogUHJvamVjdCBzcGVjaWZpYyBvdmVycmlkZSBpcyBub3Qgc3VwcG9ydGVkLgogCiBqYXZhc2NyaXB0LXRpbWV6b25lOjoKLQlFbmFibGUgYW5kIGNvbmZpZ3VyZSB0aGUgYWJpbGl0eSB0byBjaGFuZ2UgYSBjb21tb24gdGltZXpvbmUgZm9yIGRhdGVzCisJRW5hYmxlIGFuZCBjb25maWd1cmUgdGhlIGFiaWxpdHkgdG8gY2hhbmdlIGEgY29tbW9uIHRpbWUgem9uZSBmb3IgZGF0ZXMKIAlpbiBnaXR3ZWIgb3V0cHV0IHZpYSBKYXZhU2NyaXB0LiAgRGF0ZXMgaW4gZ2l0d2ViIG91dHB1dCBpbmNsdWRlCiAJYXV0aG9yZGF0ZSBhbmQgY29tbWl0dGVyZGF0ZSBpbiAiY29tbWl0IiwgImNvbW1pdGRpZmYiIGFuZCAibG9nIgogCXZpZXdzLCBhbmQgdGFnZ2VyZGF0ZSBpbiAidGFnIiB2aWV3LiAgRW5hYmxlZCBieSBkZWZhdWx0LgogKwotVGhlIHZhbHVlIGlzIGEgbGlzdCBvZiB0aHJlZSB2YWx1ZXM6IGEgZGVmYXVsdCB0aW1lem9uZSAoZm9yIGlmIHRoZSBjbGllbnQKLWhhc24ndCBzZWxlY3RlZCBzb21lIG90aGVyIHRpbWV6b25lIGFuZCBzYXZlZCBpdCBpbiBhIGNvb2tpZSksIGEgbmFtZSBvZiBjb29raWUKLXdoZXJlIHRvIHN0b3JlIHNlbGVjdGVkIHRpbWV6b25lLCBhbmQgYSBDU1MgY2xhc3MgdXNlZCB0byBtYXJrIHVwCitUaGUgdmFsdWUgaXMgYSBsaXN0IG9mIHRocmVlIHZhbHVlczogYSBkZWZhdWx0IHRpbWUgem9uZSAoZm9yIGlmIHRoZSBjbGllbnQKK2hhc24ndCBzZWxlY3RlZCBzb21lIG90aGVyIHRpbWUgem9uZSBhbmQgc2F2ZWQgaXQgaW4gYSBjb29raWUpLCBhIG5hbWUgb2YgY29va2llCit3aGVyZSB0byBzdG9yZSBzZWxlY3RlZCB0aW1lIHpvbmUsIGFuZCBhIENTUyBjbGFzcyB1c2VkIHRvIG1hcmsgdXAKIGRhdGVzIGZvciBtYW5pcHVsYXRpb24uICBJZiB5b3Ugd2FudCB0byB0dXJuIHRoaXMgZmVhdHVyZSBvZmYsIHNldCAiZGVmYXVsdCIKIHRvIGVtcHR5IGxpc3Q6IGBbXWAuCiArCi1UeXBpY2FsIGdpdHdlYiBjb25maWcgZmlsZXMgd2lsbCBvbmx5IGNoYW5nZSBzdGFydGluZyAoZGVmYXVsdCkgdGltZXpvbmUsCitUeXBpY2FsIGdpdHdlYiBjb25maWcgZmlsZXMgd2lsbCBvbmx5IGNoYW5nZSBzdGFydGluZyAoZGVmYXVsdCkgdGltZSB6b25lLAogYW5kIGxlYXZlIG90aGVyIGVsZW1lbnRzIGF0IHRoZWlyIGRlZmF1bHQgdmFsdWVzOgogKwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC04NDMsMTIgKzg0Myw0OSBAQAogVGhlIGV4YW1wbGUgY29uZmlndXJhdGlvbiBwcmVzZW50ZWQgaGVyZSBpcyBndWFyYW50ZWVkIHRvIGJlIGJhY2t3YXJkcwogYW5kIGZvcndhcmQgY29tcGF0aWJsZS4KICsKLVRpbWV6b25lIHZhbHVlcyBjYW4gYmUgImxvY2FsIiAoZm9yIGxvY2FsIHRpbWV6b25lIHRoYXQgYnJvd3NlciB1c2VzKSwgInV0YyIKK1RpbWUgem9uZSB2YWx1ZXMgY2FuIGJlICJsb2NhbCIgKGZvciBsb2NhbCB0aW1lIHpvbmUgdGhhdCBicm93c2VyIHVzZXMpLCAidXRjIgogKHdoYXQgZ2l0d2ViIHVzZXMgd2hlbiBKYXZhU2NyaXB0IG9yIHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCksIG9yIG51bWVyaWNhbAotdGltZXpvbmVzIGluIHRoZSBmb3JtIG9mICIrLy1ISE1NIiwgc3VjaCBhcyAiKzAyMDAiLgordGltZSB6b25lcyBpbiB0aGUgZm9ybSBvZiAiKy8tSEhNTSIsIHN1Y2ggYXMgIiswMjAwIi4KICsKIFByb2plY3Qgc3BlY2lmaWMgb3ZlcnJpZGUgaXMgbm90IHN1cHBvcnRlZC4KIAorZXh0cmEtYnJhbmNoLXJlZnM6OgorCUxpc3Qgb2YgYWRkaXRpb25hbCBkaXJlY3RvcmllcyB1bmRlciAicmVmcyIgd2hpY2ggYXJlIGdvaW5nIHRvCisJYmUgdXNlZCBhcyBicmFuY2ggcmVmcy4gRm9yIGV4YW1wbGUgaWYgeW91IGhhdmUgYSBnZXJyaXQgc2V0dXAKKwl3aGVyZSBhbGwgYnJhbmNoZXMgdW5kZXIgcmVmcy9oZWFkcy8gYXJlIG9mZmljaWFsLAorCXB1c2gtYWZ0ZXItcmV2aWV3IG9uZXMgYW5kIGJyYW5jaGVzIHVuZGVyIHJlZnMvc2FuZGJveC8sCisJcmVmcy93aXAgYW5kIHJlZnMvb3RoZXIgYXJlIHVzZXIgb25lcyB3aGVyZSBwZXJtaXNzaW9ucyBhcmUKKwltdWNoIHdpZGVyLCB0aGVuIHlvdSBtaWdodCB3YW50IHRvIHNldCB0aGlzIHZhcmlhYmxlIGFzCisJZm9sbG93czoKKysKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiskZmVhdHVyZXsnZXh0cmEtYnJhbmNoLXJlZnMnfXsnZGVmYXVsdCd9ID0KKwlbJ3NhbmRib3gnLCAnd2lwJywgJ290aGVyJ107CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworVGhpcyBmZWF0dXJlIGNhbiBiZSBjb25maWd1cmVkIG9uIHBlci1yZXBvc2l0b3J5IGJhc2lzIGFmdGVyIHNldHRpbmcKKyRmZWF0dXJleydleHRyYS1icmFuY2gtcmVmcyd9eydvdmVycmlkZSd9IHRvIHRydWUsIHZpYSByZXBvc2l0b3J5J3MKK2BnaXR3ZWIuZXh0cmFCcmFuY2hSZWZzYCBjb25maWd1cmF0aW9uIHZhcmlhYmxlLCB3aGljaCBjb250YWlucyBhCitzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiByZWZzLiBBbiBleGFtcGxlOgorKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1tnaXR3ZWJdCisJZXh0cmFCcmFuY2hSZWZzID0gc2FuZGJveCB3aXAgb3RoZXIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCitUaGUgZ2l0d2ViLmV4dHJhQnJhbmNoUmVmcyBpcyBhY3R1YWxseSBhIG11bHRpLXZhbHVlZCBjb25maWd1cmF0aW9uCit2YXJpYWJsZSwgc28gZm9sbG93aW5nIGV4YW1wbGUgaXMgYWxzbyBjb3JyZWN0IGFuZCB0aGUgcmVzdWx0IGlzIHRoZQorc2FtZSBhcyBvZiB0aGUgc25pcHBldCBhYm92ZToKKysKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitbZ2l0d2ViXQorCWV4dHJhQnJhbmNoUmVmcyA9IHNhbmRib3gKKwlleHRyYUJyYW5jaFJlZnMgPSB3aXAgb3RoZXIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCitJdCBpcyBhbiBlcnJvciB0byBzcGVjaWZ5IGEgcmVmIHRoYXQgZG9lcyBub3QgcGFzcyAiZ2l0IGNoZWNrLXJlZi1mb3JtYXQiCitzY3J1dGlueS4gRHVwbGljYXRlZCB2YWx1ZXMgYXJlIGZpbHRlcmVkLgorCiAKIEVYQU1QTEVTCiAtLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9nbG9zc2FyeS1jb250ZW50LnR4dCBiL0RvY3VtZW50YXRpb24vZ2xvc3NhcnktY29udGVudC50eHQKaW5kZXggZGJhNTA2Mi4uMzc4MzA2ZiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9nbG9zc2FyeS1jb250ZW50LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dsb3NzYXJ5LWNvbnRlbnQudHh0CkBAIC04Miw2ICs4MiwxOCBAQAogCXRvIHRoZSB0b3AgPDxkZWZfZGlyZWN0b3J5LGRpcmVjdG9yeT4+IG9mIHRoZSBzdG9yZWQKIAlyZXZpc2lvbi4KIAorW1tkZWZfY29tbWl0LWlzaF1dY29tbWl0LWlzaCAoYWxzbyBjb21taXR0aXNoKTo6CisJQSA8PGRlZl9jb21taXRfb2JqZWN0LGNvbW1pdCBvYmplY3Q+PiBvciBhbgorCTw8ZGVmX29iamVjdCxvYmplY3Q+PiB0aGF0IGNhbiBiZSByZWN1cnNpdmVseSBkZXJlZmVyZW5jZWQgdG8KKwlhIGNvbW1pdCBvYmplY3QuCisJVGhlIGZvbGxvd2luZyBhcmUgYWxsIGNvbW1pdC1pc2hlczoKKwlhIGNvbW1pdCBvYmplY3QsCisJYSA8PGRlZl90YWdfb2JqZWN0LHRhZyBvYmplY3Q+PiB0aGF0IHBvaW50cyB0byBhIGNvbW1pdAorCW9iamVjdCwKKwlhIHRhZyBvYmplY3QgdGhhdCBwb2ludHMgdG8gYSB0YWcgb2JqZWN0IHRoYXQgcG9pbnRzIHRvIGEKKwljb21taXQgb2JqZWN0LAorCWV0Yy4KKwogW1tkZWZfY29yZV9naXRdXWNvcmUgR2l0OjoKIAlGdW5kYW1lbnRhbCBkYXRhIHN0cnVjdHVyZXMgYW5kIHV0aWxpdGllcyBvZiBHaXQuIEV4cG9zZXMgb25seSBsaW1pdGVkCiAJc291cmNlIGNvZGUgbWFuYWdlbWVudCB0b29scy4KQEAgLTMxMSwyNCArMzIzLDY4IEBACiBBIHBhdGhzcGVjIHRoYXQgYmVnaW5zIHdpdGggYSBjb2xvbiBgOmAgaGFzIHNwZWNpYWwgbWVhbmluZy4gIEluIHRoZQogc2hvcnQgZm9ybSwgdGhlIGxlYWRpbmcgY29sb24gYDpgIGlzIGZvbGxvd2VkIGJ5IHplcm8gb3IgbW9yZSAibWFnaWMKIHNpZ25hdHVyZSIgbGV0dGVycyAod2hpY2ggb3B0aW9uYWxseSBpcyB0ZXJtaW5hdGVkIGJ5IGFub3RoZXIgY29sb24gYDpgKSwKLWFuZCB0aGUgcmVtYWluZGVyIGlzIHRoZSBwYXR0ZXJuIHRvIG1hdGNoIGFnYWluc3QgdGhlIHBhdGguIFRoZSBvcHRpb25hbAotY29sb24gdGhhdCB0ZXJtaW5hdGVzIHRoZSAibWFnaWMgc2lnbmF0dXJlIiBjYW4gYmUgb21pdHRlZCBpZiB0aGUgcGF0dGVybgotYmVnaW5zIHdpdGggYSBjaGFyYWN0ZXIgdGhhdCBjYW5ub3QgYmUgYSAibWFnaWMgc2lnbmF0dXJlIiBhbmQgaXMgbm90IGEKLWNvbG9uLgorYW5kIHRoZSByZW1haW5kZXIgaXMgdGhlIHBhdHRlcm4gdG8gbWF0Y2ggYWdhaW5zdCB0aGUgcGF0aC4KK1RoZSAibWFnaWMgc2lnbmF0dXJlIiBjb25zaXN0cyBvZiBBU0NJSSBzeW1ib2xzIHRoYXQgYXJlIG5laXRoZXIKK2FscGhhbnVtZXJpYywgZ2xvYiwgcmVnZXggc3BlY2lhbCBjaGFyYXRlcnMgbm9yIGNvbG9uLgorVGhlIG9wdGlvbmFsIGNvbG9uIHRoYXQgdGVybWluYXRlcyB0aGUgIm1hZ2ljIHNpZ25hdHVyZSIgY2FuIGJlCitvbWl0dGVkIGlmIHRoZSBwYXR0ZXJuIGJlZ2lucyB3aXRoIGEgY2hhcmFjdGVyIHRoYXQgZG9lcyBub3QgYmVsb25nIHRvCisibWFnaWMgc2lnbmF0dXJlIiBzeW1ib2wgc2V0IGFuZCBpcyBub3QgYSBjb2xvbi4KICsKIEluIHRoZSBsb25nIGZvcm0sIHRoZSBsZWFkaW5nIGNvbG9uIGA6YCBpcyBmb2xsb3dlZCBieSBhIG9wZW4KIHBhcmVudGhlc2lzIGAoYCwgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB6ZXJvIG9yIG1vcmUgIm1hZ2ljIHdvcmRzIiwKIGFuZCBhIGNsb3NlIHBhcmVudGhlc2VzIGApYCwgYW5kIHRoZSByZW1haW5kZXIgaXMgdGhlIHBhdHRlcm4gdG8gbWF0Y2gKIGFnYWluc3QgdGhlIHBhdGguCiArCi1UaGUgIm1hZ2ljIHNpZ25hdHVyZSIgY29uc2lzdHMgb2YgYW4gQVNDSUkgc3ltYm9sIHRoYXQgaXMgbm90Ci1hbHBoYW51bWVyaWMuIEN1cnJlbnRseSBvbmx5IHRoZSBzbGFzaCBgL2AgaXMgcmVjb2duaXplZCBhcyBhCi0ibWFnaWMgc2lnbmF0dXJlIjogaXQgbWFrZXMgdGhlIHBhdHRlcm4gbWF0Y2ggZnJvbSB0aGUgcm9vdCBvZgotdGhlIHdvcmtpbmcgdHJlZSwgZXZlbiB3aGVuIHlvdSBhcmUgcnVubmluZyB0aGUgY29tbWFuZCBmcm9tCi1pbnNpZGUgYSBzdWJkaXJlY3RvcnkuCi0rCiBBIHBhdGhzcGVjIHdpdGggb25seSBhIGNvbG9uIG1lYW5zICJ0aGVyZSBpcyBubyBwYXRoc3BlYyIuIFRoaXMgZm9ybQogc2hvdWxkIG5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHBhdGhzcGVjLgorKworLS0KK3RvcDs7CisJVGhlIG1hZ2ljIHdvcmQgYHRvcGAgKG1hZ2ljIHNpZ25hdHVyZTogYC9gKSBtYWtlcyB0aGUgcGF0dGVybgorCW1hdGNoIGZyb20gdGhlIHJvb3Qgb2YgdGhlIHdvcmtpbmcgdHJlZSwgZXZlbiB3aGVuIHlvdSBhcmUKKwlydW5uaW5nIHRoZSBjb21tYW5kIGZyb20gaW5zaWRlIGEgc3ViZGlyZWN0b3J5LgorCitsaXRlcmFsOzsKKwlXaWxkY2FyZHMgaW4gdGhlIHBhdHRlcm4gc3VjaCBhcyBgKmAgb3IgYD9gIGFyZSB0cmVhdGVkCisJYXMgbGl0ZXJhbCBjaGFyYWN0ZXJzLgorCitpY2FzZTs7CisJQ2FzZSBpbnNlbnNpdGl2ZSBtYXRjaC4KKworZ2xvYjs7CisJR2l0IHRyZWF0cyB0aGUgcGF0dGVybiBhcyBhIHNoZWxsIGdsb2Igc3VpdGFibGUgZm9yCisJY29uc3VtcHRpb24gYnkgZm5tYXRjaCgzKSB3aXRoIHRoZSBGTk1fUEFUSE5BTUUgZmxhZzoKKwl3aWxkY2FyZHMgaW4gdGhlIHBhdHRlcm4gd2lsbCBub3QgbWF0Y2ggYSAvIGluIHRoZSBwYXRobmFtZS4KKwlGb3IgZXhhbXBsZSwgIkRvY3VtZW50YXRpb24ve2FzdGVyaXNrfS5odG1sIiBtYXRjaGVzCisJIkRvY3VtZW50YXRpb24vZ2l0Lmh0bWwiIGJ1dCBub3QgIkRvY3VtZW50YXRpb24vcHBjL3BwYy5odG1sIgorCW9yICJ0b29scy9wZXJmL0RvY3VtZW50YXRpb24vcGVyZi5odG1sIi4KKysKK1R3byBjb25zZWN1dGl2ZSBhc3Rlcmlza3MgKCJgKipgIikgaW4gcGF0dGVybnMgbWF0Y2hlZCBhZ2FpbnN0CitmdWxsIHBhdGhuYW1lIG1heSBoYXZlIHNwZWNpYWwgbWVhbmluZzoKKworIC0gQSBsZWFkaW5nICJgKipgIiBmb2xsb3dlZCBieSBhIHNsYXNoIG1lYW5zIG1hdGNoIGluIGFsbAorICAgZGlyZWN0b3JpZXMuIEZvciBleGFtcGxlLCAiYCoqL2Zvb2AiIG1hdGNoZXMgZmlsZSBvciBkaXJlY3RvcnkKKyAgICJgZm9vYCIgYW55d2hlcmUsIHRoZSBzYW1lIGFzIHBhdHRlcm4gImBmb29gIi4gImAqKi9mb28vYmFyYCIKKyAgIG1hdGNoZXMgZmlsZSBvciBkaXJlY3RvcnkgImBiYXJgIiBhbnl3aGVyZSB0aGF0IGlzIGRpcmVjdGx5CisgICB1bmRlciBkaXJlY3RvcnkgImBmb29gIi4KKworIC0gQSB0cmFpbGluZyAiYC8qKmAiIG1hdGNoZXMgZXZlcnl0aGluZyBpbnNpZGUuIEZvciBleGFtcGxlLAorICAgImBhYmMvKipgIiBtYXRjaGVzIGFsbCBmaWxlcyBpbnNpZGUgZGlyZWN0b3J5ICJhYmMiLCByZWxhdGl2ZQorICAgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBgLmdpdGlnbm9yZWAgZmlsZSwgd2l0aCBpbmZpbml0ZSBkZXB0aC4KKworIC0gQSBzbGFzaCBmb2xsb3dlZCBieSB0d28gY29uc2VjdXRpdmUgYXN0ZXJpc2tzIHRoZW4gYSBzbGFzaAorICAgbWF0Y2hlcyB6ZXJvIG9yIG1vcmUgZGlyZWN0b3JpZXMuIEZvciBleGFtcGxlLCAiYGEvKiovYmAiCisgICBtYXRjaGVzICJgYS9iYCIsICJgYS94L2JgIiwgImBhL3gveS9iYCIgYW5kIHNvIG9uLgorCisgLSBPdGhlciBjb25zZWN1dGl2ZSBhc3Rlcmlza3MgYXJlIGNvbnNpZGVyZWQgaW52YWxpZC4KKysKK0dsb2IgbWFnaWMgaXMgaW5jb21wYXRpYmxlIHdpdGggbGl0ZXJhbCBtYWdpYy4KKworZXhjbHVkZTs7CisJQWZ0ZXIgYSBwYXRoIG1hdGNoZXMgYW55IG5vbi1leGNsdWRlIHBhdGhzcGVjLCBpdCB3aWxsIGJlIHJ1bgorCXRocm91Z2ggYWxsIGV4Y2x1ZGUgcGF0aHNwZWMgKG1hZ2ljIHNpZ25hdHVyZTogYCFgKS4gSWYgaXQKKwltYXRjaGVzLCB0aGUgcGF0aCBpcyBpZ25vcmVkLgorLS0KIAogW1tkZWZfcGFyZW50XV1wYXJlbnQ6OgogCUEgPDxkZWZfY29tbWl0X29iamVjdCxjb21taXQgb2JqZWN0Pj4gY29udGFpbnMgYSAocG9zc2libHkgZW1wdHkpIGxpc3QKQEAgLTM4MywxMCArNDM5LDIwIEBACiAJdG8gdGhlIHJlc3VsdC4KIAogW1tkZWZfcmVmXV1yZWY6OgotCUEgNDAtYnl0ZSBoZXggcmVwcmVzZW50YXRpb24gb2YgYSA8PGRlZl9TSEExLFNIQS0xPj4gb3IgYSBuYW1lIHRoYXQKLQlkZW5vdGVzIGEgcGFydGljdWxhciA8PGRlZl9vYmplY3Qsb2JqZWN0Pj4uIFRoZXkgbWF5IGJlIHN0b3JlZCBpbgotCWEgZmlsZSB1bmRlciBgJEdJVF9ESVIvcmVmcy9gIGRpcmVjdG9yeSwgb3IKLQlpbiB0aGUgYCRHSVRfRElSL3BhY2tlZC1yZWZzYCBmaWxlLgorCUEgbmFtZSB0aGF0IGJlZ2lucyB3aXRoIGByZWZzL2AgKGUuZy4gYHJlZnMvaGVhZHMvbWFzdGVyYCkKKwl0aGF0IHBvaW50cyB0byBhbiA8PGRlZl9vYmplY3RfbmFtZSxvYmplY3QgbmFtZT4+IG9yIGFub3RoZXIKKwlyZWYgKHRoZSBsYXR0ZXIgaXMgY2FsbGVkIGEgPDxkZWZfc3ltcmVmLHN5bWJvbGljIHJlZj4+KS4KKwlGb3IgY29udmVuaWVuY2UsIGEgcmVmIGNhbiBzb21ldGltZXMgYmUgYWJicmV2aWF0ZWQgd2hlbiB1c2VkCisJYXMgYW4gYXJndW1lbnQgdG8gYSBHaXQgY29tbWFuZDsgc2VlIGxpbmtnaXQ6Z2l0cmV2aXNpb25zWzddCisJZm9yIGRldGFpbHMuCisJUmVmcyBhcmUgc3RvcmVkIGluIHRoZSA8PGRlZl9yZXBvc2l0b3J5LHJlcG9zaXRvcnk+Pi4KKysKK1RoZSByZWYgbmFtZXNwYWNlIGlzIGhpZXJhcmNoaWNhbC4KK0RpZmZlcmVudCBzdWJoaWVyYXJjaGllcyBhcmUgdXNlZCBmb3IgZGlmZmVyZW50IHB1cnBvc2VzIChlLmcuIHRoZQorYHJlZnMvaGVhZHMvYCBoaWVyYXJjaHkgaXMgdXNlZCB0byByZXByZXNlbnQgbG9jYWwgYnJhbmNoZXMpLgorKworVGhlcmUgYXJlIGEgZmV3IHNwZWNpYWwtcHVycG9zZSByZWZzIHRoYXQgZG8gbm90IGJlZ2luIHdpdGggYHJlZnMvYC4KK1RoZSBtb3N0IG5vdGFibGUgZXhhbXBsZSBpcyBgSEVBRGAuCiAKIFtbZGVmX3JlZmxvZ11dcmVmbG9nOjoKIAlBIHJlZmxvZyBzaG93cyB0aGUgbG9jYWwgImhpc3RvcnkiIG9mIGEgcmVmLiAgSW4gb3RoZXIgd29yZHMsCkBAIC00ODYsMTAgKzU1MiwxOSBAQAogCXdpdGggcmVmcyB0byB0aGUgYXNzb2NpYXRlZCBibG9iIGFuZC9vciB0cmVlIG9iamVjdHMuIEEKIAk8PGRlZl90cmVlLHRyZWU+PiBpcyBlcXVpdmFsZW50IHRvIGEgPDxkZWZfZGlyZWN0b3J5LGRpcmVjdG9yeT4+LgogCi1bW2RlZl90cmVlLWlzaF1ddHJlZS1pc2g6OgotCUEgPDxkZWZfcmVmLHJlZj4+IHBvaW50aW5nIHRvIGVpdGhlciBhIDw8ZGVmX2NvbW1pdF9vYmplY3QsY29tbWl0Ci0Jb2JqZWN0Pj4sIGEgPDxkZWZfdHJlZV9vYmplY3QsdHJlZSBvYmplY3Q+Piwgb3IgYSA8PGRlZl90YWdfb2JqZWN0LHRhZwotCW9iamVjdD4+IHBvaW50aW5nIHRvIGEgdGFnIG9yIGNvbW1pdCBvciB0cmVlIG9iamVjdC4KK1tbZGVmX3RyZWUtaXNoXV10cmVlLWlzaCAoYWxzbyB0cmVlaXNoKTo6CisJQSA8PGRlZl90cmVlX29iamVjdCx0cmVlIG9iamVjdD4+IG9yIGFuIDw8ZGVmX29iamVjdCxvYmplY3Q+PgorCXRoYXQgY2FuIGJlIHJlY3Vyc2l2ZWx5IGRlcmVmZXJlbmNlZCB0byBhIHRyZWUgb2JqZWN0LgorCURlcmVmZXJlbmNpbmcgYSA8PGRlZl9jb21taXRfb2JqZWN0LGNvbW1pdCBvYmplY3Q+PiB5aWVsZHMgdGhlCisJdHJlZSBvYmplY3QgY29ycmVzcG9uZGluZyB0byB0aGUgPDxkZWZfcmV2aXNpb24scmV2aXNpb24+PidzCisJdG9wIDw8ZGVmX2RpcmVjdG9yeSxkaXJlY3Rvcnk+Pi4KKwlUaGUgZm9sbG93aW5nIGFyZSBhbGwgdHJlZS1pc2hlczoKKwlhIDw8ZGVmX2NvbW1pdC1pc2gsY29tbWl0LWlzaD4+LAorCWEgdHJlZSBvYmplY3QsCisJYSA8PGRlZl90YWdfb2JqZWN0LHRhZyBvYmplY3Q+PiB0aGF0IHBvaW50cyB0byBhIHRyZWUgb2JqZWN0LAorCWEgdGFnIG9iamVjdCB0aGF0IHBvaW50cyB0byBhIHRhZyBvYmplY3QgdGhhdCBwb2ludHMgdG8gYSB0cmVlCisJb2JqZWN0LAorCWV0Yy4KIAogW1tkZWZfdW5tZXJnZWRfaW5kZXhdXXVubWVyZ2VkIGluZGV4OjoKIAlBbiA8PGRlZl9pbmRleCxpbmRleD4+IHdoaWNoIGNvbnRhaW5zIHVubWVyZ2VkCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2hvd3RvL3JlY292ZXItY29ycnVwdGVkLW9iamVjdC1oYXJkZXIudHh0IGIvRG9jdW1lbnRhdGlvbi9ob3d0by9yZWNvdmVyLWNvcnJ1cHRlZC1vYmplY3QtaGFyZGVyLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjMzZGFjCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9ob3d0by9yZWNvdmVyLWNvcnJ1cHRlZC1vYmplY3QtaGFyZGVyLnR4dApAQCAtMCwwICsxLDI0MiBAQAorRGF0ZTogV2VkLCAxNiBPY3QgMjAxMyAwNDozNDowMSAtMDQwMAorRnJvbTogSmVmZiBLaW5nIDxwZWZmQHBlZmYubmV0PgorU3ViamVjdDogcGFjayBjb3JydXB0aW9uIHBvc3QtbW9ydGVtCitBYnN0cmFjdDogUmVjb3ZlcmluZyBhIGNvcnJ1cHRlZCBvYmplY3Qgd2hlbiBubyBnb29kIGNvcHkgaXMgYXZhaWxhYmxlLgorQ29udGVudC10eXBlOiB0ZXh0L2FzY2lpZG9jCisKK0hvdyB0byByZWNvdmVyIGFuIG9iamVjdCBmcm9tIHNjcmF0Y2gKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworSSB3YXMgcmVjZW50bHkgcHJlc2VudGVkIHdpdGggYSByZXBvc2l0b3J5IHdpdGggYSBjb3JydXB0ZWQgcGFja2ZpbGUsCithbmQgd2FzIGFza2VkIGlmIHRoZSBkYXRhIHdhcyByZWNvdmVyYWJsZS4gVGhpcyBwb3N0LW1vcnRlbSBkZXNjcmliZXMKK3RoZSBzdGVwcyBJIHRvb2sgdG8gaW52ZXN0aWdhdGUgYW5kIGZpeCB0aGUgcHJvYmxlbS4gSSB0aG91Z2h0IG90aGVycworbWlnaHQgZmluZCB0aGUgcHJvY2VzcyBpbnRlcmVzdGluZywgYW5kIGl0IG1pZ2h0IGhlbHAgc29tZWJvZHkgaW4gdGhlCitzYW1lIHNpdHVhdGlvbi4KKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKK05vdGU6IEluIHRoaXMgY2FzZSwgbm8gZ29vZCBjb3B5IG9mIHRoZSByZXBvc2l0b3J5IHdhcyBhdmFpbGFibGUuIEZvcgordGhlIG11Y2ggZWFzaWVyIGNhc2Ugd2hlcmUgeW91IGNhbiBnZXQgdGhlIGNvcnJ1cHRlZCBvYmplY3QgZnJvbQorZWxzZXdoZXJlLCBzZWUgbGluazpyZWNvdmVyLWNvcnJ1cHRlZC1ibG9iLW9iamVjdC5odG1sW3RoaXMgaG93dG9dLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworSSBzdGFydGVkIHdpdGggYW4gZnNjaywgd2hpY2ggZm91bmQgYSBwcm9ibGVtIHdpdGggZXhhY3RseSBvbmUgb2JqZWN0CisoSSd2ZSB1c2VkICRwYWNrIGFuZCAkb2JqIGJlbG93IHRvIGtlZXAgdGhlIG91dHB1dCByZWFkYWJsZSwgYW5kIGFsc28KK2JlY2F1c2UgSSdsbCByZWZlciB0byB0aGVtIGxhdGVyKToKKworLS0tLS0tLS0tLS0KKyAgICAkIGdpdCBmc2NrCisgICAgZXJyb3I6ICRwYWNrIFNIQTEgY2hlY2tzdW0gbWlzbWF0Y2gKKyAgICBlcnJvcjogaW5kZXggQ1JDIG1pc21hdGNoIGZvciBvYmplY3QgJG9iaiBmcm9tICRwYWNrIGF0IG9mZnNldCA1MTY1Mzg3MworICAgIGVycm9yOiBpbmZsYXRlOiBkYXRhIHN0cmVhbSBlcnJvciAoaW5jb3JyZWN0IGRhdGEgY2hlY2spCisgICAgZXJyb3I6IGNhbm5vdCB1bnBhY2sgJG9iaiBmcm9tICRwYWNrIGF0IG9mZnNldCA1MTY1Mzg3MworLS0tLS0tLS0tLS0KKworVGhlIHBhY2sgY2hlY2tzdW0gZmFpbGluZyBtZWFucyBhIGJ5dGUgaXMgbXVuZ2VkIHNvbWV3aGVyZSwgYW5kIGl0IGlzCitwcmVzdW1hYmx5IGluIHRoZSBvYmplY3QgbWVudGlvbmVkIChzaW5jZSBib3RoIHRoZSBpbmRleCBjaGVja3N1bSBhbmQKK3psaWIgd2VyZSBmYWlsaW5nKS4KKworUmVhZGluZyB0aGUgemxpYiBzb3VyY2UgY29kZSwgSSBmb3VuZCB0aGF0ICJpbmNvcnJlY3QgZGF0YSBjaGVjayIgbWVhbnMKK3RoYXQgdGhlIGFkbGVyLTMyIGNoZWNrc3VtIGF0IHRoZSBlbmQgb2YgdGhlIHpsaWIgZGF0YSBkaWQgbm90IG1hdGNoIHRoZQoraW5mbGF0ZWQgZGF0YS4gU28gc3RlcHBpbmcgdGhlIGRhdGEgdGhyb3VnaCB6bGliIHdvdWxkIG5vdCBoZWxwLCBhcyBpdAorZGlkIG5vdCBmYWlsIHVudGlsIHRoZSB2ZXJ5IGVuZCwgd2hlbiB3ZSByZWFsaXplIHRoZSBjcmMgZG9lcyBub3QgbWF0Y2guCitUaGUgcHJvYmxlbWF0aWMgYnl0ZXMgY291bGQgYmUgYW55d2hlcmUgaW4gdGhlIG9iamVjdCBkYXRhLgorCitUaGUgZmlyc3QgdGhpbmcgSSBkaWQgd2FzIHB1bGwgdGhlIGJyb2tlbiBkYXRhIG91dCBvZiB0aGUgcGFja2ZpbGUuIEkKK25lZWRlZCB0byBrbm93IGhvdyBiaWcgdGhlIG9iamVjdCB3YXMsIHdoaWNoIEkgZm91bmQgb3V0IHdpdGg6CisKKy0tLS0tLS0tLS0tLQorICAgICQgZ2l0IHNob3ctaW5kZXggPCRpZHggfCBjdXQgLWQnICcgLWYxIHwgc29ydCAtbiB8IGdyZXAgLUExIDUxNjUzODczCisgICAgNTE2NTM4NzMKKyAgICA1MTY2NDczNgorLS0tLS0tLS0tLS0tCisKK1Nob3ctaW5kZXggZ2l2ZXMgdXMgdGhlIGxpc3Qgb2Ygb2JqZWN0cyBhbmQgdGhlaXIgb2Zmc2V0cy4gV2UgdGhyb3cgYXdheQorZXZlcnl0aGluZyBidXQgdGhlIG9mZnNldHMsIGFuZCB0aGVuIHNvcnQgdGhlbSBzbyB0aGF0IG91ciBpbnRlcmVzdGluZworb2Zmc2V0ICh3aGljaCB3ZSBnb3QgZnJvbSB0aGUgZnNjayBvdXRwdXQgYWJvdmUpIGlzIGZvbGxvd2VkIGltbWVkaWF0ZWx5CitieSB0aGUgb2Zmc2V0IG9mIHRoZSBuZXh0IG9iamVjdC4gTm93IHdlIGtub3cgdGhhdCB0aGUgb2JqZWN0IGRhdGEgaXMKKzEwODYzIGJ5dGVzIGxvbmcsIGFuZCB3ZSBjYW4gZ3JhYiBpdCB3aXRoOgorCistLS0tLS0tLS0tLS0KKyAgZGQgaWY9JHBhY2sgb2Y9b2JqZWN0IGJzPTEgc2tpcD01MTY1Mzg3MyBjb3VudD0xMDg2MworLS0tLS0tLS0tLS0tCisKK0kgaW5zcGVjdGVkIGEgaGV4ZHVtcCBvZiB0aGUgZGF0YSwgbG9va2luZyBmb3IgYW55IG9idmlvdXMgYm9nb3NpdHkKKyhlLmcuLCBhIDRLIHJ1biBvZiB6ZXJvZXMgd291bGQgYmUgYSBnb29kIHNpZ24gb2YgZmlsZXN5c3RlbQorY29ycnVwdGlvbikuIEJ1dCBldmVyeXRoaW5nIGxvb2tlZCBwcmV0dHkgcmVhc29uYWJsZS4KKworTm90ZSB0aGF0IHRoZSAib2JqZWN0IiBmaWxlIGlzbid0IGZpdCBmb3IgZmVlZGluZyBzdHJhaWdodCB0byB6bGliOyBpdAoraGFzIHRoZSBnaXQgcGFja2VkIG9iamVjdCBoZWFkZXIsIHdoaWNoIGlzIHZhcmlhYmxlLWxlbmd0aC4gV2Ugd2FudCB0bworc3RyaXAgdGhhdCBvZmYgc28gd2UgY2FuIHN0YXJ0IHBsYXlpbmcgd2l0aCB0aGUgemxpYiBkYXRhIGRpcmVjdGx5LiBZb3UKK2NhbiBlaXRoZXIgd29yayB5b3VyIHdheSB0aHJvdWdoIGl0IG1hbnVhbGx5ICh0aGUgZm9ybWF0IGlzIGRlc2NyaWJlZCBpbgorbGluazouLi90ZWNobmljYWwvcGFjay1mb3JtYXQuaHRtbFtEb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wYWNrLWZvcm1hdC50eHRdKSwKK29yIHlvdSBjYW4gd2FsayB0aHJvdWdoIGl0IGluIGEgZGVidWdnZXIuIEkgZGlkIHRoZSBsYXR0ZXIsIGNyZWF0aW5nIGEKK3ZhbGlkIHBhY2sgbGlrZToKKworLS0tLS0tLS0tLS0tCisgICAgIyBwYWNrIG1hZ2ljIGFuZCB2ZXJzaW9uCisgICAgcHJpbnRmICdQQUNLXDBcMFwwXDInID50bXAucGFjaworICAgICMgcGFjayBoYXMgb25lIG9iamVjdAorICAgIHByaW50ZiAnXDBcMFwwXDEnID4+dG1wLnBhY2sKKyAgICAjIG5vdyBhZGQgb3VyIG9iamVjdCBkYXRhCisgICAgY2F0IG9iamVjdCA+PnRtcC5wYWNrCisgICAgIyBhbmQgdGhlbiBhcHBlbmQgdGhlIHBhY2sgdHJhaWxlcgorICAgIC9wYXRoL3RvL2dpdC5naXQvdGVzdC1zaGExIC1iIDx0bXAucGFjayA+dHJhaWxlcgorICAgIGNhdCB0cmFpbGVyID4+dG1wLnBhY2sKKy0tLS0tLS0tLS0tLQorCithbmQgdGhlbiBydW5uaW5nICJnaXQgaW5kZXgtcGFjayB0bXAucGFjayIgaW4gdGhlIGRlYnVnZ2VyIChzdG9wIGF0Cit1bnBhY2tfcmF3X2VudHJ5KS4gRG9pbmcgdGhpcywgSSBmb3VuZCB0aGF0IHRoZXJlIHdlcmUgMyBieXRlcyBvZiBoZWFkZXIKKyhhbmQgdGhlIGhlYWRlciBpdHNlbGYgaGFkIGEgc2FuZSB0eXBlIGFuZCBzaXplKS4gU28gSSBzdHJpcHBlZCB0aG9zZQorb2ZmIHdpdGg6CisKKy0tLS0tLS0tLS0tLQorICAgIGRkIGlmPW9iamVjdCBvZj16bGliIGJzPTEgc2tpcD0zCistLS0tLS0tLS0tLS0KKworSSByYW4gdGhlIHJlc3VsdCB0aHJvdWdoIHpsaWIncyBpbmZsYXRlIHVzaW5nIGEgY3VzdG9tIEMgcHJvZ3JhbS4gQW5kCit3aGlsZSBpdCBkaWQgcmVwb3J0IHRoZSBlcnJvciwgSSBkaWQgZ2V0IHRoZSByaWdodCBudW1iZXIgb2Ygb3V0cHV0CitieXRlcyAoaS5lLiwgaXQgbWF0Y2hlZCBnaXQncyBzaXplIGhlYWRlciB0aGF0IHdlIGRlY29kZWQgYWJvdmUpLiBCdXQKK2ZlZWRpbmcgdGhlIHJlc3VsdCBiYWNrIHRvICJnaXQgaGFzaC1vYmplY3QiIGRpZG4ndCBwcm9kdWNlIHRoZSBzYW1lCitzaGExLiBTbyB0aGVyZSB3ZXJlIHNvbWUgd3JvbmcgYnl0ZXMsIGJ1dCBJIGRpZG4ndCBrbm93IHdoaWNoLiBUaGUgZmlsZQoraGFwcGVuZWQgdG8gYmUgQyBzb3VyY2UgY29kZSwgc28gSSBob3BlZCBJIGNvdWxkIG5vdGljZSBzb21ldGhpbmcKK29idmlvdXNseSB3cm9uZyB3aXRoIGl0LCBidXQgSSBkaWRuJ3QuIEkgZXZlbiBnb3QgaXQgdG8gY29tcGlsZSEKKworSSBhbHNvIHRyaWVkIGNvbXBhcmluZyBpdCB0byBvdGhlciB2ZXJzaW9ucyBvZiB0aGUgc2FtZSBwYXRoIGluIHRoZQorcmVwb3NpdG9yeSwgaG9waW5nIHRoYXQgdGhlcmUgd291bGQgYmUgc29tZSBwYXJ0IG9mIHRoZSBkaWZmIHRoYXQgZGlkbid0CittYWtlIHNlbnNlLiBVbmZvcnR1bmF0ZWx5LCB0aGlzIGhhcHBlbmVkIHRvIGJlIHRoZSBvbmx5IHJldmlzaW9uIG9mIHRoaXMKK3BhcnRpY3VsYXIgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeSwgc28gSSBoYWQgbm90aGluZyB0byBjb21wYXJlIGFnYWluc3QuCisKK1NvIEkgdG9vayBhIGRpZmZlcmVudCBhcHByb2FjaC4gV29ya2luZyB1bmRlciB0aGUgZ3Vlc3MgdGhhdCB0aGUKK2NvcnJ1cHRpb24gd2FzIGxpbWl0ZWQgdG8gYSBzaW5nbGUgYnl0ZSwgSSB3cm90ZSBhIHByb2dyYW0gdG8gbXVuZ2UgZWFjaAorYnl0ZSBpbmRpdmlkdWFsbHksIGFuZCB0cnkgaW5mbGF0aW5nIHRoZSByZXN1bHQuIFNpbmNlIHRoZSBvYmplY3Qgd2FzCitvbmx5IDEwSyBjb21wcmVzc2VkLCB0aGF0IHdvcmtlZCBvdXQgdG8gYWJvdXQgMi41TSBhdHRlbXB0cywgd2hpY2ggdG9vaworYSBmZXcgbWludXRlcy4KKworVGhlIHByb2dyYW0gSSB1c2VkIGlzIGhlcmU6CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHpsaWIuaD4KKworc3RhdGljIGludCB0cnlfemxpYih1bnNpZ25lZCBjaGFyICpidWYsIGludCBsZW4pCit7CisJLyogbWFrZSB0aGlzIGFic3VyZGx5IGxhcmdlIHNvIHdlIGRvbid0IGhhdmUgdG8gbG9vcCAqLworCXN0YXRpYyB1bnNpZ25lZCBjaGFyIG91dFsxMDI0KjEwMjRdOworCXpfc3RyZWFtIHo7CisJaW50IHJldDsKKworCW1lbXNldCgmeiwgMCwgc2l6ZW9mKHopKTsKKwlpbmZsYXRlSW5pdCgmeik7CisKKwl6Lm5leHRfaW4gPSBidWY7CisJei5hdmFpbF9pbiA9IGxlbjsKKwl6Lm5leHRfb3V0ID0gb3V0OworCXouYXZhaWxfb3V0ID0gc2l6ZW9mKG91dCk7CisKKwlyZXQgPSBpbmZsYXRlKCZ6LCAwKTsKKwlpbmZsYXRlRW5kKCZ6KTsKKwlyZXR1cm4gcmV0ID49IDA7Cit9CisKKy8qIGV5ZSBjYW5keSAqLworc3RhdGljIGludCBjb3VudGVyID0gMDsKK3N0YXRpYyB2b2lkIHByb2dyZXNzKGludCBzaWcpCit7CisJZnByaW50ZihzdGRlcnIsICJcciVkIiwgY291bnRlcik7CisJYWxhcm0oMSk7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisJLyogb3ZlcnNpemVkIHNvIHdlIGNhbiByZWFkIHRoZSB3aG9sZSBidWZmZXIgaW4gKi8KKwl1bnNpZ25lZCBjaGFyIGJ1ZlsxMDI0KjEwMjRdOworCWludCBsZW47CisJdW5zaWduZWQgaSwgajsKKworCXNpZ25hbChTSUdBTFJNLCBwcm9ncmVzcyk7CisJYWxhcm0oMSk7CisKKwlsZW4gPSByZWFkKDAsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgeworCQl1bnNpZ25lZCBjaGFyIGMgPSBidWZbaV07CisJCWZvciAoaiA9IDA7IGogPD0gMHhmZjsgaisrKSB7CisJCQlidWZbaV0gPSBqOworCisJCQljb3VudGVyKys7CisJCQlpZiAodHJ5X3psaWIoYnVmLCBsZW4pKQorCQkJCXByaW50ZigiaT0lZCwgaj0leFxuIiwgaSwgaik7CisJCX0KKwkJYnVmW2ldID0gYzsKKwl9CisKKwlhbGFybSgwKTsKKwlmcHJpbnRmKHN0ZGVyciwgIlxuIik7CisJcmV0dXJuIDA7Cit9CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0kgY29tcGlsZWQgYW5kIHJhbiB3aXRoOgorCistLS0tLS0tCisgIGdjYyAtV2FsbCAtV2Vycm9yIC1PMyBtdW5nZS5jIC1vIG11bmdlIC1segorICAuL211bmdlIDx6bGliCistLS0tLS0tCisKKworVGhlcmUgd2VyZSBhIGZldyBmYWxzZSBwb3NpdGl2ZXMgZWFybHkgb24gKGlmIHlvdSB3cml0ZSAibm8gZGF0YSIgaW4gdGhlCit6bGliIGhlYWRlciwgemxpYiB0aGlua3MgaXQncyBqdXN0IGZpbmUgOikgKS4gQnV0IEkgZ290IGEgaGl0IGFib3V0CitoYWxmd2F5IHRocm91Z2g6CisKKy0tLS0tLS0KKyAgaT01NjQyLCBqPWM3CistLS0tLS0tCisKK0kgbGV0IGl0IHJ1biB0byBjb21wbGV0aW9uLCBhbmQgZ290IGEgZmV3IG1vcmUgaGl0cyBhdCB0aGUgZW5kICh3aGVyZSBpdAord2FzIG11bmdpbmcgdGhlIGNyYyB0byBtYXRjaCBvdXIgYnJva2VuIGRhdGEpLiBTbyB0aGVyZSB3YXMgYSBnb29kCitjaGFuY2UgdGhpcyBtaWRkbGUgaGl0IHdhcyB0aGUgc291cmNlIG9mIHRoZSBwcm9ibGVtLgorCitJIGNvbmZpcm1lZCBieSB0d2Vha2luZyB0aGUgYnl0ZSBpbiBhIGhleCBlZGl0b3IsIHpsaWIgaW5mbGF0aW5nIHRoZQorcmVzdWx0IChubyBlcnJvcnMhKSwgYW5kIHRoZW4gcGlwaW5nIHRoZSBvdXRwdXQgaW50byAiZ2l0IGhhc2gtb2JqZWN0IiwKK3doaWNoIHJlcG9ydGVkIHRoZSBzaGExIG9mIHRoZSBicm9rZW4gb2JqZWN0LiBTdWNjZXNzIQorCitJIGZpeGVkIHRoZSBwYWNrZmlsZSBpdHNlbGYgd2l0aDoKKworLS0tLS0tLQorICBjaG1vZCArdyAkcGFjaworICBwcmludGYgJ1x4YzcnIHwgZGQgb2Y9JHBhY2sgYnM9MSBzZWVrPTUxNjU5NTE4IGNvbnY9bm90cnVuYworICBjaG1vZCAtdyAkcGFjaworLS0tLS0tLQorCitUaGUgYFx4YzdgIGNvbWVzIGZyb20gdGhlIHJlcGxhY2VtZW50IGJ5dGUgb3VyICJtdW5nZSIgcHJvZ3JhbSBmb3VuZC4KK1RoZSBvZmZzZXQgNTE2NTk1MTggaXMgZGVyaXZlZCBieSB0YWtpbmcgdGhlIG9yaWdpbmFsIG9iamVjdCBvZmZzZXQKKyg1MTY1Mzg3MyksIGFkZGluZyB0aGUgcmVwbGFjZW1lbnQgb2Zmc2V0IGZvdW5kIGJ5ICJtdW5nZSIgKDU2NDIpLCBhbmQKK3RoZW4gYWRkaW5nIGJhY2sgaW4gdGhlIDMgYnl0ZXMgb2YgZ2l0IGhlYWRlciB3ZSBzdHJpcHBlZC4KKworQWZ0ZXIgdGhhdCwgImdpdCBmc2NrIiByYW4gY2xlYW4uCisKK0FzIGZvciB0aGUgY29ycnVwdGlvbiBpdHNlbGYsIEkgd2FzIGx1Y2t5IHRoYXQgaXQgd2FzIGluZGVlZCBhIHNpbmdsZQorYnl0ZS4gSW4gZmFjdCwgaXQgdHVybmVkIG91dCB0byBiZSBhIHNpbmdsZSBiaXQuIFRoZSBieXRlIDB4Yzcgd2FzCitjb3JydXB0ZWQgdG8gMHhjNS4gU28gcHJlc3VtYWJseSBpdCB3YXMgY2F1c2VkIGJ5IGZhdWx0eSBoYXJkd2FyZSwgb3IgYQorY29zbWljIHJheS4KKworQW5kIHRoZSBhYm9ydGVkIGF0dGVtcHQgdG8gbG9vayBhdCB0aGUgaW5mbGF0ZWQgb3V0cHV0IHRvIHNlZSB3aGF0IHdhcword3Jvbmc/IEkgY291bGQgaGF2ZSBsb29rZWQgZm9yZXZlciBhbmQgbmV2ZXIgZm91bmQgaXQuIEhlcmUncyB0aGUgZGlmZgorYmV0d2VlbiB3aGF0IHRoZSBjb3JydXB0ZWQgZGF0YSBpbmZsYXRlcyB0bywgdmVyc3VzIHRoZSByZWFsIGRhdGE6CisKKy0tLS0tLS0tLS0tLS0tCisgIC0gICAgICAgY3AgPSBzdHJ0b2sgKGFyZywgIisiKTsKKyAgKyAgICAgICBjcCA9IHN0cnRvayAoYXJnLCAiLiIpOworLS0tLS0tLS0tLS0tLS0KKworSXQgdHdlYWtlZCBvbmUgYnl0ZSBhbmQgc3RpbGwgZW5kZWQgdXAgYXMgdmFsaWQsIHJlYWRhYmxlIEMgdGhhdCBqdXN0CitoYXBwZW5lZCB0byBkbyBzb21ldGhpbmcgdG90YWxseSBkaWZmZXJlbnQhIE9uZSB0YWtlYXdheSBpcyB0aGF0IG9uIGEKK2xlc3MgdW5sdWNreSBkYXksIGxvb2tpbmcgYXQgdGhlIHpsaWIgb3V0cHV0IG1pZ2h0IGhhdmUgYWN0dWFsbHkgYmVlbgoraGVscGZ1bCwgYXMgbW9zdCByYW5kb20gY2hhbmdlcyB3b3VsZCBhY3R1YWxseSBicmVhayB0aGUgQyBjb2RlLgorCitCdXQgbW9yZSBpbXBvcnRhbnRseSwgZ2l0J3MgaGFzaGluZyBhbmQgY2hlY2tzdW1taW5nIG5vdGljZWQgYSBwcm9ibGVtCit0aGF0IGVhc2lseSBjb3VsZCBoYXZlIGdvbmUgdW5kZXRlY3RlZCBpbiBhbm90aGVyIHN5c3RlbS4gVGhlIHJlc3VsdAorc3RpbGwgY29tcGlsZWQsIGJ1dCB3b3VsZCBoYXZlIGNhdXNlZCBhbiBpbnRlcmVzdGluZyBidWcgKHRoYXQgd291bGQKK2hhdmUgYmVlbiBibGFtZWQgb24gc29tZSByYW5kb20gY29tbWl0KS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaG93dG8vcmV2ZXJ0LWEtZmF1bHR5LW1lcmdlLnR4dCBiL0RvY3VtZW50YXRpb24vaG93dG8vcmV2ZXJ0LWEtZmF1bHR5LW1lcmdlLnR4dAppbmRleCAwNzU0MThlLi5hY2YzZTQ3IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2hvd3RvL3JldmVydC1hLWZhdWx0eS1tZXJnZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9ob3d0by9yZXZlcnQtYS1mYXVsdHktbWVyZ2UudHh0CkBAIC0zNyw3ICszNyw3IEBACiBtZXJnZSB0aGF0IGJyaW5ncyB0aGVzZSBwcmVtYXR1cmUgY2hhbmdlcyBpbnRvIHRoZSBtYWlubGluZSwgeCBhcmUgY2hhbmdlcwogdW5yZWxhdGVkIHRvIHdoYXQgdGhlIHNpZGUgYnJhbmNoIGRpZCBhbmQgYWxyZWFkeSBtYWRlIG9uIHRoZSBtYWlubGluZSwKIGFuZCBXIGlzIHRoZSAicmV2ZXJ0IG9mIHRoZSBtZXJnZSBNIiAoZG9lc24ndCBXIGxvb2sgTSB1cHNpZGUgZG93bj8pLgotSU9XLCAiZGlmZiBXXi4uVyIgaXMgc2ltaWxhciB0byAiZGlmZiAtUiBNXi4uTSIuCitJT1csIGAiZGlmZiBXXi4uVyJgIGlzIHNpbWlsYXIgdG8gYCJkaWZmIC1SIE1eLi5NImAuCiAKIFN1Y2ggYSAicmV2ZXJ0IiBvZiBhIG1lcmdlIGNhbiBiZSBtYWRlIHdpdGg6CiAKQEAgLTEyMSw5ICsxMjEsOSBAQAogICAgICAgIC0tLUEtLS1CICAgICAgICAgICAgICAgICAgIEEnLS1CJy0tQycKIAogd2hlcmUgWSBpcyB0aGUgcmV2ZXJ0IG9mIFcsIEEnIGFuZCBCJyBhcmUgcmVyb2xsZWQgQSBhbmQgQiwgYW5kIHRoZXJlIG1heQotYWxzbyBiZSBhIGZ1cnRoZXIgZml4LXVwIEMnIG9uIHRoZSBzaWRlIGJyYW5jaC4gICJkaWZmIFleLi5ZIiBpcyBzaW1pbGFyCi10byAiZGlmZiAtUiBXXi4uVyIgKHdoaWNoIGluIHR1cm4gbWVhbnMgaXQgaXMgc2ltaWxhciB0byAiZGlmZiBNXi4uTSIpLAotYW5kICJkaWZmIEEnXi4uQyciIGJ5IGRlZmluaXRpb24gd291bGQgYmUgc2ltaWxhciBidXQgZGlmZmVyZW50IGZyb20gdGhhdCwKK2Fsc28gYmUgYSBmdXJ0aGVyIGZpeC11cCBDJyBvbiB0aGUgc2lkZSBicmFuY2guICBgImRpZmYgWV4uLlkiYCBpcyBzaW1pbGFyCit0byBgImRpZmYgLVIgV14uLlciYCAod2hpY2ggaW4gdHVybiBtZWFucyBpdCBpcyBzaW1pbGFyIHRvIGAiZGlmZiBNXi4uTSJgKSwKK2FuZCBgImRpZmYgQSdeLi5DJyJgIGJ5IGRlZmluaXRpb24gd291bGQgYmUgc2ltaWxhciBidXQgZGlmZmVyZW50IGZyb20gdGhhdCwKIGJlY2F1c2UgaXQgaXMgYSByZXJvbGxlZCBzZXJpZXMgb2YgdGhlIGVhcmxpZXIgY2hhbmdlLiAgVGhlcmUgd2lsbCBiZSBhCiBsb3Qgb2Ygb3ZlcmxhcHBpbmcgY2hhbmdlcyB0aGF0IHJlc3VsdCBpbiBjb25mbGljdHMuICBTbyBkbyBub3QgZG8gInJldmVydAogb2YgcmV2ZXJ0IiBibGluZGx5IHdpdGhvdXQgdGhpbmtpbmcuLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ob3d0by9yZXZlcnQtYnJhbmNoLXJlYmFzZS50eHQgYi9Eb2N1bWVudGF0aW9uL2hvd3RvL3JldmVydC1icmFuY2gtcmViYXNlLnR4dAppbmRleCAwZDU0MTllLi44NWY2OWRiIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2hvd3RvL3JldmVydC1icmFuY2gtcmViYXNlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2hvd3RvL3JldmVydC1icmFuY2gtcmViYXNlLnR4dApAQCAtMTU0LDcgKzE1NCw3IEBACiBQYWNraW5nIDAgb2JqZWN0cwogVW5wYWNraW5nIDAgb2JqZWN0cwogCi0qIGNvbW1pdHRpc2g6IGUzYTY5M2MuLi4JcmVmcy9oZWFkcy9tYXN0ZXIgZnJvbSAuCisqIGNvbW1pdC1pc2g6IGUzYTY5M2MuLi4JcmVmcy9oZWFkcy9tYXN0ZXIgZnJvbSAuCiBUcnlpbmcgdG8gbWVyZ2UgZTNhNjkzYy4uLiBpbnRvIDhjMWY1ZjAuLi4gdXNpbmcgMTBkNzgxYi4uLgogQ29tbWl0dGVkIG1lcmdlIDdmYjliNzI2MmExZDFlMGE0N2JiZmRjYmJjZjUwY2UwNjM1ZDNmOGYKICBjYWNoZS5oICAgICAgICB8ICAgIDggKysrKy0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaG93dG8vc2V0dXAtZ2l0LXNlcnZlci1vdmVyLWh0dHAudHh0IGIvRG9jdW1lbnRhdGlvbi9ob3d0by9zZXR1cC1naXQtc2VydmVyLW92ZXItaHR0cC50eHQKaW5kZXggYzgwMzY0OS4uNmRlNGYzYyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9ob3d0by9zZXR1cC1naXQtc2VydmVyLW92ZXItaHR0cC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9ob3d0by9zZXR1cC1naXQtc2VydmVyLW92ZXItaHR0cC50eHQKQEAgLTg1LDggKzg1LDggQEAKICAgICAkIGdpdCAtLWJhcmUgaW5pdAogCiAKLUNoYW5nZSB0aGUgb3duZXJzaGlwIHRvIHlvdXIgd2ViLXNlcnZlcidzIGNyZWRlbnRpYWxzLiBVc2UgImdyZXAgXlVzZXIKLWh0dHBkLmNvbmYiIGFuZCAiZ3JlcCBeR3JvdXAgaHR0cGQuY29uZiIgdG8gZmluZCBvdXQ6CitDaGFuZ2UgdGhlIG93bmVyc2hpcCB0byB5b3VyIHdlYi1zZXJ2ZXIncyBjcmVkZW50aWFscy4gVXNlIGAiZ3JlcCBeVXNlcgoraHR0cGQuY29uZiJgIGFuZCBgImdyZXAgXkdyb3VwIGh0dHBkLmNvbmYiYCB0byBmaW5kIG91dDoKIAogICAgICQgY2hvd24gLVIgd3d3Lnd3dyAuCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbGluZS1yYW5nZS1mb3JtYXQudHh0IGIvRG9jdW1lbnRhdGlvbi9saW5lLXJhbmdlLWZvcm1hdC50eHQKaW5kZXggM2U3Y2U3Mi4uZDdmMjYwMyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9saW5lLXJhbmdlLWZvcm1hdC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9saW5lLXJhbmdlLWZvcm1hdC50eHQKQEAgLTEsMyArMSw1IEBACis8c3RhcnQ+IGFuZCA8ZW5kPiBjYW4gdGFrZSBvbmUgb2YgdGhlc2UgZm9ybXM6CisKIC0gbnVtYmVyCiArCiBJZiA8c3RhcnQ+IG9yIDxlbmQ+IGlzIGEgbnVtYmVyLCBpdCBzcGVjaWZpZXMgYW4KQEAgLTcsNyArOSwxMCBAQAogLSAvcmVnZXgvCiArCiBUaGlzIGZvcm0gd2lsbCB1c2UgdGhlIGZpcnN0IGxpbmUgbWF0Y2hpbmcgdGhlIGdpdmVuCi1QT1NJWCByZWdleC4gIElmIDxlbmQ+IGlzIGEgcmVnZXgsIGl0IHdpbGwgc2VhcmNoCitQT1NJWCByZWdleC4gSWYgPHN0YXJ0PiBpcyBhIHJlZ2V4LCBpdCB3aWxsIHNlYXJjaCBmcm9tIHRoZSBlbmQgb2YKK3RoZSBwcmV2aW91cyBgLUxgIHJhbmdlLCBpZiBhbnksIG90aGVyd2lzZSBmcm9tIHRoZSBzdGFydCBvZiBmaWxlLgorSWYgPHN0YXJ0PiBpcyBgYF4vcmVnZXgvJycsIGl0IHdpbGwgc2VhcmNoIGZyb20gdGhlIHN0YXJ0IG9mIGZpbGUuCitJZiA8ZW5kPiBpcyBhIHJlZ2V4LCBpdCB3aWxsIHNlYXJjaAogc3RhcnRpbmcgYXQgdGhlIGxpbmUgZ2l2ZW4gYnkgPHN0YXJ0Pi4KICsKIApAQCAtMTUsMTEgKzIwLDEwIEBACiArCiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIDxlbmQ+IGFuZCB3aWxsIHNwZWNpZnkgYSBudW1iZXIKIG9mIGxpbmVzIGJlZm9yZSBvciBhZnRlciB0aGUgbGluZSBnaXZlbiBieSA8c3RhcnQ+LgotKwogCi0tIDpyZWdleAogKwotSWYgdGhlIG9wdGlvbidzIGFyZ3VtZW50IGlzIG9mIHRoZSBmb3JtIDpyZWdleCwgaXQgZGVub3RlcyB0aGUgcmFuZ2UKK0lmIGBgOjxyZWdleD4nJyBpcyBnaXZlbiBpbiBwbGFjZSBvZiA8c3RhcnQ+IGFuZCA8ZW5kPiwgaXQgZGVub3RlcyB0aGUgcmFuZ2UKIGZyb20gdGhlIGZpcnN0IGZ1bmNuYW1lIGxpbmUgdGhhdCBtYXRjaGVzIDxyZWdleD4sIHVwIHRvIHRoZSBuZXh0Ci1mdW5jbmFtZSBsaW5lLgotKworZnVuY25hbWUgbGluZS4gYGA6PHJlZ2V4PicnIHNlYXJjaGVzIGZyb20gdGhlIGVuZCBvZiB0aGUgcHJldmlvdXMgYC1MYCByYW5nZSwKK2lmIGFueSwgb3RoZXJ3aXNlIGZyb20gdGhlIHN0YXJ0IG9mIGZpbGUuCitgYF46PHJlZ2V4PicnIHNlYXJjaGVzIGZyb20gdGhlIHN0YXJ0IG9mIGZpbGUuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL21lcmdlLW9wdGlvbnMudHh0IGIvRG9jdW1lbnRhdGlvbi9tZXJnZS1vcHRpb25zLnR4dAppbmRleCBhZmJhOGQ0Li5lMTM0MzE1IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL21lcmdlLW9wdGlvbnMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vbWVyZ2Utb3B0aW9ucy50eHQKQEAgLTE0LDkgKzE0LDEyIEBACiAJZnVydGhlciBlZGl0IHRoZSBhdXRvLWdlbmVyYXRlZCBtZXJnZSBtZXNzYWdlLCBzbyB0aGF0IHRoZSB1c2VyCiAJY2FuIGV4cGxhaW4gYW5kIGp1c3RpZnkgdGhlIG1lcmdlLiBUaGUgYC0tbm8tZWRpdGAgb3B0aW9uIGNhbiBiZQogCXVzZWQgdG8gYWNjZXB0IHRoZSBhdXRvLWdlbmVyYXRlZCBtZXNzYWdlICh0aGlzIGlzIGdlbmVyYWxseQotCWRpc2NvdXJhZ2VkKS4gVGhlIGAtLWVkaXRgIChvciBgLWVgKSBvcHRpb24gaXMgc3RpbGwgdXNlZnVsIGlmIHlvdSBhcmUKLQlnaXZpbmcgYSBkcmFmdCBtZXNzYWdlIHdpdGggdGhlIGAtbWAgb3B0aW9uIGZyb20gdGhlIGNvbW1hbmQgbGluZQotCWFuZCB3YW50IHRvIGVkaXQgaXQgaW4gdGhlIGVkaXRvci4KKwlkaXNjb3VyYWdlZCkuCitpZm5kZWY6OmdpdC1wdWxsW10KK1RoZSBgLS1lZGl0YCAob3IgYC1lYCkgb3B0aW9uIGlzIHN0aWxsIHVzZWZ1bCBpZiB5b3UgYXJlCitnaXZpbmcgYSBkcmFmdCBtZXNzYWdlIHdpdGggdGhlIGAtbWAgb3B0aW9uIGZyb20gdGhlIGNvbW1hbmQgbGluZQorYW5kIHdhbnQgdG8gZWRpdCBpdCBpbiB0aGUgZWRpdG9yLgorZW5kaWY6OmdpdC1wdWxsW10KICsKIE9sZGVyIHNjcmlwdHMgbWF5IGRlcGVuZCBvbiB0aGUgaGlzdG9yaWNhbCBiZWhhdmlvdXIgb2Ygbm90IGFsbG93aW5nIHRoZQogdXNlciB0byBlZGl0IHRoZSBtZXJnZSBsb2cgbWVzc2FnZS4gVGhleSB3aWxsIHNlZSBhbiBlZGl0b3Igb3BlbmVkIHdoZW4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbWVyZ2Utc3RyYXRlZ2llcy50eHQgYi9Eb2N1bWVudGF0aW9uL21lcmdlLXN0cmF0ZWdpZXMudHh0CmluZGV4IDQ5YTlhN2QuLmZiNmU1OTMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbWVyZ2Utc3RyYXRlZ2llcy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9tZXJnZS1zdHJhdGVnaWVzLnR4dApAQCAtMTEzLDMgKzExMywxMSBAQAogCW1hdGNoIHRoZSB0cmVlIHN0cnVjdHVyZSBvZiBBLCBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHRyZWVzIGF0CiAJdGhlIHNhbWUgbGV2ZWwuIFRoaXMgYWRqdXN0bWVudCBpcyBhbHNvIGRvbmUgdG8gdGhlIGNvbW1vbgogCWFuY2VzdG9yIHRyZWUuCisKK1dpdGggdGhlIHN0cmF0ZWdpZXMgdGhhdCB1c2UgMy13YXkgbWVyZ2UgKGluY2x1ZGluZyB0aGUgZGVmYXVsdCwgJ3JlY3Vyc2l2ZScpLAoraWYgYSBjaGFuZ2UgaXMgbWFkZSBvbiBib3RoIGJyYW5jaGVzLCBidXQgbGF0ZXIgcmV2ZXJ0ZWQgb24gb25lIG9mIHRoZQorYnJhbmNoZXMsIHRoYXQgY2hhbmdlIHdpbGwgYmUgcHJlc2VudCBpbiB0aGUgbWVyZ2VkIHJlc3VsdDsgc29tZSBwZW9wbGUgZmluZAordGhpcyBiZWhhdmlvciBjb25mdXNpbmcuICBJdCBvY2N1cnMgYmVjYXVzZSBvbmx5IHRoZSBoZWFkcyBhbmQgdGhlIG1lcmdlIGJhc2UKK2FyZSBjb25zaWRlcmVkIHdoZW4gcGVyZm9ybWluZyBhIG1lcmdlLCBub3QgdGhlIGluZGl2aWR1YWwgY29tbWl0cy4gIFRoZSBtZXJnZQorYWxnb3JpdGhtIHRoZXJlZm9yZSBjb25zaWRlcnMgdGhlIHJldmVydGVkIGNoYW5nZSBhcyBubyBjaGFuZ2UgYXQgYWxsLCBhbmQKK3N1YnN0aXR1dGVzIHRoZSBjaGFuZ2VkIHZlcnNpb24gaW5zdGVhZC4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vcmV2LWxpc3Qtb3B0aW9ucy50eHQgYi9Eb2N1bWVudGF0aW9uL3Jldi1saXN0LW9wdGlvbnMudHh0CmluZGV4IDViZGZiNDIuLjAzNTMzYWYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vcmV2LWxpc3Qtb3B0aW9ucy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9yZXYtbGlzdC1vcHRpb25zLnR4dApAQCAtMTgsMzMgKzE4LDI3IEBACiAtPG51bWJlcj46OgogLW4gPG51bWJlcj46OgogLS1tYXgtY291bnQ9PG51bWJlcj46OgotCiAJTGltaXQgdGhlIG51bWJlciBvZiBjb21taXRzIHRvIG91dHB1dC4KIAogLS1za2lwPTxudW1iZXI+OjoKLQogCVNraXAgJ251bWJlcicgY29tbWl0cyBiZWZvcmUgc3RhcnRpbmcgdG8gc2hvdyB0aGUgY29tbWl0IG91dHB1dC4KIAogLS1zaW5jZT08ZGF0ZT46OgogLS1hZnRlcj08ZGF0ZT46OgotCiAJU2hvdyBjb21taXRzIG1vcmUgcmVjZW50IHRoYW4gYSBzcGVjaWZpYyBkYXRlLgogCiAtLXVudGlsPTxkYXRlPjo6CiAtLWJlZm9yZT08ZGF0ZT46OgotCiAJU2hvdyBjb21taXRzIG9sZGVyIHRoYW4gYSBzcGVjaWZpYyBkYXRlLgogCiBpZmRlZjo6Z2l0LXJldi1saXN0W10KIC0tbWF4LWFnZT08dGltZXN0YW1wPjo6CiAtLW1pbi1hZ2U9PHRpbWVzdGFtcD46OgotCiAJTGltaXQgdGhlIGNvbW1pdHMgb3V0cHV0IHRvIHNwZWNpZmllZCB0aW1lIHJhbmdlLgogZW5kaWY6OmdpdC1yZXYtbGlzdFtdCiAKIC0tYXV0aG9yPTxwYXR0ZXJuPjo6CiAtLWNvbW1pdHRlcj08cGF0dGVybj46OgotCiAJTGltaXQgdGhlIGNvbW1pdHMgb3V0cHV0IHRvIG9uZXMgd2l0aCBhdXRob3IvY29tbWl0dGVyCiAJaGVhZGVyIGxpbmVzIHRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCBwYXR0ZXJuIChyZWd1bGFyCiAJZXhwcmVzc2lvbikuICBXaXRoIG1vcmUgdGhhbiBvbmUgYC0tYXV0aG9yPTxwYXR0ZXJuPmAsCkBAIC01Miw3ICs0Niw2IEBACiAJY2hvc2VuIChzaW1pbGFybHkgZm9yIG11bHRpcGxlIGAtLWNvbW1pdHRlcj08cGF0dGVybj5gKS4KIAogLS1ncmVwLXJlZmxvZz08cGF0dGVybj46OgotCiAJTGltaXQgdGhlIGNvbW1pdHMgb3V0cHV0IHRvIG9uZXMgd2l0aCByZWZsb2cgZW50cmllcyB0aGF0CiAJbWF0Y2ggdGhlIHNwZWNpZmllZCBwYXR0ZXJuIChyZWd1bGFyIGV4cHJlc3Npb24pLiBXaXRoCiAJbW9yZSB0aGFuIG9uZSBgLS1ncmVwLXJlZmxvZ2AsIGNvbW1pdHMgd2hvc2UgcmVmbG9nIG1lc3NhZ2UKQEAgLTYwLDcgKzUzLDYgQEAKIAllcnJvciB0byB1c2UgdGhpcyBvcHRpb24gdW5sZXNzIGAtLXdhbGstcmVmbG9nc2AgaXMgaW4gdXNlLgogCiAtLWdyZXA9PHBhdHRlcm4+OjoKLQogCUxpbWl0IHRoZSBjb21taXRzIG91dHB1dCB0byBvbmVzIHdpdGggbG9nIG1lc3NhZ2UgdGhhdAogCW1hdGNoZXMgdGhlIHNwZWNpZmllZCBwYXR0ZXJuIChyZWd1bGFyIGV4cHJlc3Npb24pLiAgV2l0aAogCW1vcmUgdGhhbiBvbmUgYC0tZ3JlcD08cGF0dGVybj5gLCBjb21taXRzIHdob3NlIG1lc3NhZ2UKQEAgLTcxLDQ2ICs2MywzOSBAQAogaWYgaXQgaXMgcGFydCBvZiB0aGUgbG9nIG1lc3NhZ2UuCiAKIC0tYWxsLW1hdGNoOjoKLQlMaW1pdCB0aGUgY29tbWl0cyBvdXRwdXQgdG8gb25lcyB0aGF0IG1hdGNoIGFsbCBnaXZlbiAtLWdyZXAsCisJTGltaXQgdGhlIGNvbW1pdHMgb3V0cHV0IHRvIG9uZXMgdGhhdCBtYXRjaCBhbGwgZ2l2ZW4gYC0tZ3JlcGAsCiAJaW5zdGVhZCBvZiBvbmVzIHRoYXQgbWF0Y2ggYXQgbGVhc3Qgb25lLgogCiAtaTo6CiAtLXJlZ2V4cC1pZ25vcmUtY2FzZTo6Ci0KLQlNYXRjaCB0aGUgcmVnZXhwIGxpbWl0aW5nIHBhdHRlcm5zIHdpdGhvdXQgcmVnYXJkIHRvIGxldHRlcnMgY2FzZS4KKwlNYXRjaCB0aGUgcmVndWxhciBleHByZXNzaW9uIGxpbWl0aW5nIHBhdHRlcm5zIHdpdGhvdXQgcmVnYXJkIHRvIGxldHRlcgorCWNhc2UuCiAKIC0tYmFzaWMtcmVnZXhwOjoKLQogCUNvbnNpZGVyIHRoZSBsaW1pdGluZyBwYXR0ZXJucyB0byBiZSBiYXNpYyByZWd1bGFyIGV4cHJlc3Npb25zOwogCXRoaXMgaXMgdGhlIGRlZmF1bHQuCiAKIC1FOjoKIC0tZXh0ZW5kZWQtcmVnZXhwOjoKLQogCUNvbnNpZGVyIHRoZSBsaW1pdGluZyBwYXR0ZXJucyB0byBiZSBleHRlbmRlZCByZWd1bGFyIGV4cHJlc3Npb25zCiAJaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBiYXNpYyByZWd1bGFyIGV4cHJlc3Npb25zLgogCiAtRjo6CiAtLWZpeGVkLXN0cmluZ3M6OgotCiAJQ29uc2lkZXIgdGhlIGxpbWl0aW5nIHBhdHRlcm5zIHRvIGJlIGZpeGVkIHN0cmluZ3MgKGRvbid0IGludGVycHJldAogCXBhdHRlcm4gYXMgYSByZWd1bGFyIGV4cHJlc3Npb24pLgogCiAtLXBlcmwtcmVnZXhwOjoKLQotCUNvbnNpZGVyIHRoZSBsaW1pdGluZyBwYXR0ZXJucyB0byBiZSBQZXJsLWNvbXBhdGlibGUgcmVnZXhwLgorCUNvbnNpZGVyIHRoZSBsaW1pdGluZyBwYXR0ZXJucyB0byBiZSBQZXJsLWNvbXBhdGlibGUgcmVndWxhciBleHByZXNzaW9ucy4KIAlSZXF1aXJlcyBsaWJwY3JlIHRvIGJlIGNvbXBpbGVkIGluLgogCiAtLXJlbW92ZS1lbXB0eTo6Ci0KIAlTdG9wIHdoZW4gYSBnaXZlbiBwYXRoIGRpc2FwcGVhcnMgZnJvbSB0aGUgdHJlZS4KIAogLS1tZXJnZXM6OgotCiAJUHJpbnQgb25seSBtZXJnZSBjb21taXRzLiBUaGlzIGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgYC0tbWluLXBhcmVudHM9MmAuCiAKIC0tbm8tbWVyZ2VzOjoKLQogCURvIG5vdCBwcmludCBjb21taXRzIHdpdGggbW9yZSB0aGFuIG9uZSBwYXJlbnQuIFRoaXMgaXMKIAlleGFjdGx5IHRoZSBzYW1lIGFzIGAtLW1heC1wYXJlbnRzPTFgLgogCkBAIC0xMTgsNyArMTAzLDYgQEAKIC0tbWF4LXBhcmVudHM9PG51bWJlcj46OgogLS1uby1taW4tcGFyZW50czo6CiAtLW5vLW1heC1wYXJlbnRzOjoKLQogCVNob3cgb25seSBjb21taXRzIHdoaWNoIGhhdmUgYXQgbGVhc3QgKG9yIGF0IG1vc3QpIHRoYXQgbWFueSBwYXJlbnQKIAljb21taXRzLiBJbiBwYXJ0aWN1bGFyLCBgLS1tYXgtcGFyZW50cz0xYCBpcyB0aGUgc2FtZSBhcyBgLS1uby1tZXJnZXNgLAogCWAtLW1pbi1wYXJlbnRzPTJgIGlzIHRoZSBzYW1lIGFzIGAtLW1lcmdlc2AuICBgLS1tYXgtcGFyZW50cz0wYApAQCAtMTM4LDMxICsxMjIsMjYgQEAKIAlicm91Z2h0IGluIHRvIHlvdXIgaGlzdG9yeSBieSBzdWNoIGEgbWVyZ2UuCiAKIC0tbm90OjoKLQogCVJldmVyc2VzIHRoZSBtZWFuaW5nIG9mIHRoZSAne2NhcmV0fScgcHJlZml4IChvciBsYWNrIHRoZXJlb2YpCi0JZm9yIGFsbCBmb2xsb3dpbmcgcmV2aXNpb24gc3BlY2lmaWVycywgdXAgdG8gdGhlIG5leHQgJy0tbm90Jy4KKwlmb3IgYWxsIGZvbGxvd2luZyByZXZpc2lvbiBzcGVjaWZpZXJzLCB1cCB0byB0aGUgbmV4dCBgLS1ub3RgLgogCiAtLWFsbDo6Ci0KIAlQcmV0ZW5kIGFzIGlmIGFsbCB0aGUgcmVmcyBpbiBgcmVmcy9gIGFyZSBsaXN0ZWQgb24gdGhlCiAJY29tbWFuZCBsaW5lIGFzICc8Y29tbWl0PicuCiAKIC0tYnJhbmNoZXNbPTxwYXR0ZXJuPl06OgotCiAJUHJldGVuZCBhcyBpZiBhbGwgdGhlIHJlZnMgaW4gYHJlZnMvaGVhZHNgIGFyZSBsaXN0ZWQKIAlvbiB0aGUgY29tbWFuZCBsaW5lIGFzICc8Y29tbWl0PicuIElmICc8cGF0dGVybj4nIGlzIGdpdmVuLCBsaW1pdAogCWJyYW5jaGVzIHRvIG9uZXMgbWF0Y2hpbmcgZ2l2ZW4gc2hlbGwgZ2xvYi4gSWYgcGF0dGVybiBsYWNrcyAnPycsCiAJJ3thc3Rlcmlza30nLCBvciAnWycsICcve2FzdGVyaXNrfScgYXQgdGhlIGVuZCBpcyBpbXBsaWVkLgogCiAtLXRhZ3NbPTxwYXR0ZXJuPl06OgotCiAJUHJldGVuZCBhcyBpZiBhbGwgdGhlIHJlZnMgaW4gYHJlZnMvdGFnc2AgYXJlIGxpc3RlZAogCW9uIHRoZSBjb21tYW5kIGxpbmUgYXMgJzxjb21taXQ+Jy4gSWYgJzxwYXR0ZXJuPicgaXMgZ2l2ZW4sIGxpbWl0CiAJdGFncyB0byBvbmVzIG1hdGNoaW5nIGdpdmVuIHNoZWxsIGdsb2IuIElmIHBhdHRlcm4gbGFja3MgJz8nLCAne2FzdGVyaXNrfScsCiAJb3IgJ1snLCAnL3thc3Rlcmlza30nIGF0IHRoZSBlbmQgaXMgaW1wbGllZC4KIAogLS1yZW1vdGVzWz08cGF0dGVybj5dOjoKLQogCVByZXRlbmQgYXMgaWYgYWxsIHRoZSByZWZzIGluIGByZWZzL3JlbW90ZXNgIGFyZSBsaXN0ZWQKIAlvbiB0aGUgY29tbWFuZCBsaW5lIGFzICc8Y29tbWl0PicuIElmICc8cGF0dGVybj4nIGlzIGdpdmVuLCBsaW1pdAogCXJlbW90ZS10cmFja2luZyBicmFuY2hlcyB0byBvbmVzIG1hdGNoaW5nIGdpdmVuIHNoZWxsIGdsb2IuCkBAIC0xNzQsMTQgKzE1MywyNyBAQAogCWlzIGF1dG9tYXRpY2FsbHkgcHJlcGVuZGVkIGlmIG1pc3NpbmcuIElmIHBhdHRlcm4gbGFja3MgJz8nLCAne2FzdGVyaXNrfScsCiAJb3IgJ1snLCAnL3thc3Rlcmlza30nIGF0IHRoZSBlbmQgaXMgaW1wbGllZC4KIAotLS1pZ25vcmUtbWlzc2luZzo6CistLWV4Y2x1ZGU9PGdsb2ItcGF0dGVybj46OgogCisJRG8gbm90IGluY2x1ZGUgcmVmcyBtYXRjaGluZyAnPGdsb2ItcGF0dGVybj4nIHRoYXQgdGhlIG5leHQgYC0tYWxsYCwKKwlgLS1icmFuY2hlc2AsIGAtLXRhZ3NgLCBgLS1yZW1vdGVzYCwgb3IgYC0tZ2xvYmAgd291bGQgb3RoZXJ3aXNlCisJY29uc2lkZXIuIFJlcGV0aXRpb25zIG9mIHRoaXMgb3B0aW9uIGFjY3VtdWxhdGUgZXhjbHVzaW9uIHBhdHRlcm5zCisJdXAgdG8gdGhlIG5leHQgYC0tYWxsYCwgYC0tYnJhbmNoZXNgLCBgLS10YWdzYCwgYC0tcmVtb3Rlc2AsIG9yCisJYC0tZ2xvYmAgb3B0aW9uIChvdGhlciBvcHRpb25zIG9yIGFyZ3VtZW50cyBkbyBub3QgY2xlYXIKKwlhY2N1bWxhdGVkIHBhdHRlcm5zKS4KKysKK1RoZSBwYXR0ZXJucyBnaXZlbiBzaG91bGQgbm90IGJlZ2luIHdpdGggYHJlZnMvaGVhZHNgLCBgcmVmcy90YWdzYCwgb3IKK2ByZWZzL3JlbW90ZXNgIHdoZW4gYXBwbGllZCB0byBgLS1icmFuY2hlc2AsIGAtLXRhZ3NgLCBvciBgLS1yZW1vdGVzYCwKK3Jlc3BlY3RpdmVseSwgYW5kIHRoZXkgbXVzdCBiZWdpbiB3aXRoIGByZWZzL2Agd2hlbiBhcHBsaWVkIHRvIGAtLWdsb2JgCitvciBgLS1hbGxgLiBJZiBhIHRyYWlsaW5nICcve2FzdGVyaXNrfScgaXMgaW50ZW5kZWQsIGl0IG11c3QgYmUgZ2l2ZW4KK2V4cGxpY2l0bHkuCisKKy0taWdub3JlLW1pc3Npbmc6OgogCVVwb24gc2VlaW5nIGFuIGludmFsaWQgb2JqZWN0IG5hbWUgaW4gdGhlIGlucHV0LCBwcmV0ZW5kIGFzIGlmCiAJdGhlIGJhZCBpbnB1dCB3YXMgbm90IGdpdmVuLgogCiBpZm5kZWY6OmdpdC1yZXYtbGlzdFtdCiAtLWJpc2VjdDo6Ci0KIAlQcmV0ZW5kIGFzIGlmIHRoZSBiYWQgYmlzZWN0aW9uIHJlZiBgcmVmcy9iaXNlY3QvYmFkYAogCXdhcyBsaXN0ZWQgYW5kIGFzIGlmIGl0IHdhcyBmb2xsb3dlZCBieSBgLS1ub3RgIGFuZCB0aGUgZ29vZAogCWJpc2VjdGlvbiByZWZzIGByZWZzL2Jpc2VjdC9nb29kLSpgIG9uIHRoZSBjb21tYW5kCkBAIC0xODksNyArMTgxLDYgQEAKIGVuZGlmOjpnaXQtcmV2LWxpc3RbXQogCiAtLXN0ZGluOjoKLQogCUluIGFkZGl0aW9uIHRvIHRoZSAnPGNvbW1pdD4nIGxpc3RlZCBvbiB0aGUgY29tbWFuZAogCWxpbmUsIHJlYWQgdGhlbSBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dC4gSWYgYSAnLS0nIHNlcGFyYXRvciBpcwogCXNlZW4sIHN0b3AgcmVhZGluZyBjb21taXRzIGFuZCBzdGFydCByZWFkaW5nIHBhdGhzIHRvIGxpbWl0IHRoZQpAQCAtMTk3LDM2ICsxODgsMzIgQEAKIAogaWZkZWY6OmdpdC1yZXYtbGlzdFtdCiAtLXF1aWV0OjoKLQogCURvbid0IHByaW50IGFueXRoaW5nIHRvIHN0YW5kYXJkIG91dHB1dC4gIFRoaXMgZm9ybQogCWlzIHByaW1hcmlseSBtZWFudCB0byBhbGxvdyB0aGUgY2FsbGVyIHRvCiAJdGVzdCB0aGUgZXhpdCBzdGF0dXMgdG8gc2VlIGlmIGEgcmFuZ2Ugb2Ygb2JqZWN0cyBpcyBmdWxseQogCWNvbm5lY3RlZCAob3Igbm90KS4gIEl0IGlzIGZhc3RlciB0aGFuIHJlZGlyZWN0aW5nIHN0ZG91dAotCXRvIC9kZXYvbnVsbCBhcyB0aGUgb3V0cHV0IGRvZXMgbm90IGhhdmUgdG8gYmUgZm9ybWF0dGVkLgorCXRvIGAvZGV2L251bGxgIGFzIHRoZSBvdXRwdXQgZG9lcyBub3QgaGF2ZSB0byBiZSBmb3JtYXR0ZWQuCiBlbmRpZjo6Z2l0LXJldi1saXN0W10KIAogLS1jaGVycnktbWFyazo6Ci0KIAlMaWtlIGAtLWNoZXJyeS1waWNrYCAoc2VlIGJlbG93KSBidXQgbWFyayBlcXVpdmFsZW50IGNvbW1pdHMKIAl3aXRoIGA9YCByYXRoZXIgdGhhbiBvbWl0dGluZyB0aGVtLCBhbmQgaW5lcXVpdmFsZW50IG9uZXMgd2l0aCBgK2AuCiAKIC0tY2hlcnJ5LXBpY2s6OgotCiAJT21pdCBhbnkgY29tbWl0IHRoYXQgaW50cm9kdWNlcyB0aGUgc2FtZSBjaGFuZ2UgYXMKLQlhbm90aGVyIGNvbW1pdCBvbiB0aGUgIm90aGVyIHNpZGUiIHdoZW4gdGhlIHNldCBvZgorCWFub3RoZXIgY29tbWl0IG9uIHRoZSBgYG90aGVyIHNpZGUnJyB3aGVuIHRoZSBzZXQgb2YKIAljb21taXRzIGFyZSBsaW1pdGVkIHdpdGggc3ltbWV0cmljIGRpZmZlcmVuY2UuCiArCiBGb3IgZXhhbXBsZSwgaWYgeW91IGhhdmUgdHdvIGJyYW5jaGVzLCBgQWAgYW5kIGBCYCwgYSB1c3VhbCB3YXkKIHRvIGxpc3QgYWxsIGNvbW1pdHMgb24gb25seSBvbmUgc2lkZSBvZiB0aGVtIGlzIHdpdGgKIGAtLWxlZnQtcmlnaHRgIChzZWUgdGhlIGV4YW1wbGUgYmVsb3cgaW4gdGhlIGRlc2NyaXB0aW9uIG9mCi10aGUgYC0tbGVmdC1yaWdodGAgb3B0aW9uKS4gIEl0IGhvd2V2ZXIgc2hvd3MgdGhlIGNvbW1pdHMgdGhhdCB3ZXJlIGNoZXJyeS1waWNrZWQKLWZyb20gdGhlIG90aGVyIGJyYW5jaCAoZm9yIGV4YW1wbGUsICIzcmQgb24gYiIgbWF5IGJlIGNoZXJyeS1waWNrZWQKLWZyb20gYnJhbmNoIEEpLiAgV2l0aCB0aGlzIG9wdGlvbiwgc3VjaCBwYWlycyBvZiBjb21taXRzIGFyZQordGhlIGAtLWxlZnQtcmlnaHRgIG9wdGlvbikuIEhvd2V2ZXIsIGl0IHNob3dzIHRoZSBjb21taXRzIHRoYXQgd2VyZQorY2hlcnJ5LXBpY2tlZCBmcm9tIHRoZSBvdGhlciBicmFuY2ggKGZvciBleGFtcGxlLCBgYDNyZCBvbiBiJycgbWF5IGJlCitjaGVycnktcGlja2VkIGZyb20gYnJhbmNoIEEpLiBXaXRoIHRoaXMgb3B0aW9uLCBzdWNoIHBhaXJzIG9mIGNvbW1pdHMgYXJlCiBleGNsdWRlZCBmcm9tIHRoZSBvdXRwdXQuCiAKIC0tbGVmdC1vbmx5OjoKIC0tcmlnaHQtb25seTo6Ci0KIAlMaXN0IG9ubHkgY29tbWl0cyBvbiB0aGUgcmVzcGVjdGl2ZSBzaWRlIG9mIGEgc3ltbWV0cmljIHJhbmdlLAogCWkuZS4gb25seSB0aG9zZSB3aGljaCB3b3VsZCBiZSBtYXJrZWQgYDxgIHJlc3AuIGA+YCBieQogCWAtLWxlZnQtcmlnaHRgLgpAQCAtMjM4LDcgKzIyNSw2IEBACiBsaXN0LgogCiAtLWNoZXJyeTo6Ci0KIAlBIHN5bm9ueW0gZm9yIGAtLXJpZ2h0LW9ubHkgLS1jaGVycnktbWFyayAtLW5vLW1lcmdlc2A7IHVzZWZ1bCB0bwogCWxpbWl0IHRoZSBvdXRwdXQgdG8gdGhlIGNvbW1pdHMgb24gb3VyIHNpZGUgYW5kIG1hcmsgdGhvc2UgdGhhdAogCWhhdmUgYmVlbiBhcHBsaWVkIHRvIHRoZSBvdGhlciBzaWRlIG9mIGEgZm9ya2VkIGhpc3Rvcnkgd2l0aApAQCAtMjQ3LDMwICsyMzMsMjcgQEAKIAogLWc6OgogLS13YWxrLXJlZmxvZ3M6OgotCiAJSW5zdGVhZCBvZiB3YWxraW5nIHRoZSBjb21taXQgYW5jZXN0cnkgY2hhaW4sIHdhbGsKIAlyZWZsb2cgZW50cmllcyBmcm9tIHRoZSBtb3N0IHJlY2VudCBvbmUgdG8gb2xkZXIgb25lcy4KIAlXaGVuIHRoaXMgb3B0aW9uIGlzIHVzZWQgeW91IGNhbm5vdCBzcGVjaWZ5IGNvbW1pdHMgdG8KIAlleGNsdWRlICh0aGF0IGlzLCAne2NhcmV0fWNvbW1pdCcsICdjb21taXQxLi5jb21taXQyJywKIAlub3IgJ2NvbW1pdDFcLi4uY29tbWl0Micgbm90YXRpb25zIGNhbm5vdCBiZSB1c2VkKS4KICsKLVdpdGggJ1wtLXByZXR0eScgZm9ybWF0IG90aGVyIHRoYW4gb25lbGluZSAoZm9yIG9idmlvdXMgcmVhc29ucyksCitXaXRoIGAtLXByZXR0eWAgZm9ybWF0IG90aGVyIHRoYW4gYG9uZWxpbmVgIChmb3Igb2J2aW91cyByZWFzb25zKSwKIHRoaXMgY2F1c2VzIHRoZSBvdXRwdXQgdG8gaGF2ZSB0d28gZXh0cmEgbGluZXMgb2YgaW5mb3JtYXRpb24KIHRha2VuIGZyb20gdGhlIHJlZmxvZy4gIEJ5IGRlZmF1bHQsICdjb21taXRAXHtOdGh9JyBub3RhdGlvbiBpcwogdXNlZCBpbiB0aGUgb3V0cHV0LiAgV2hlbiB0aGUgc3RhcnRpbmcgY29tbWl0IGlzIHNwZWNpZmllZCBhcwogJ2NvbW1pdEBce25vd30nLCBvdXRwdXQgYWxzbyB1c2VzICdjb21taXRAXHt0aW1lc3RhbXB9JyBub3RhdGlvbgotaW5zdGVhZC4gIFVuZGVyICdcLS1wcmV0dHk9b25lbGluZScsIHRoZSBjb21taXQgbWVzc2FnZSBpcworaW5zdGVhZC4gIFVuZGVyIGAtLXByZXR0eT1vbmVsaW5lYCwgdGhlIGNvbW1pdCBtZXNzYWdlIGlzCiBwcmVmaXhlZCB3aXRoIHRoaXMgaW5mb3JtYXRpb24gb24gdGhlIHNhbWUgbGluZS4KLVRoaXMgb3B0aW9uIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoICdcLS1yZXZlcnNlJy4KK1RoaXMgb3B0aW9uIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIGAtLXJldmVyc2VgLgogU2VlIGFsc28gbGlua2dpdDpnaXQtcmVmbG9nWzFdLgogCiAtLW1lcmdlOjoKLQogCUFmdGVyIGEgZmFpbGVkIG1lcmdlLCBzaG93IHJlZnMgdGhhdCB0b3VjaCBmaWxlcyBoYXZpbmcgYQogCWNvbmZsaWN0IGFuZCBkb24ndCBleGlzdCBvbiBhbGwgaGVhZHMgdG8gbWVyZ2UuCiAKIC0tYm91bmRhcnk6OgotCiAJT3V0cHV0IGV4Y2x1ZGVkIGJvdW5kYXJ5IGNvbW1pdHMuIEJvdW5kYXJ5IGNvbW1pdHMgYXJlCiAJcHJlZml4ZWQgd2l0aCBgLWAuCiAKQEAgLTI4NywxMSArMjcwLDkgQEAKIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBzZWxlY3QgdGhlIGNvbW1pdHMgdG8gYmUgc2hvd246CiAKIDxwYXRocz46OgotCiAJQ29tbWl0cyBtb2RpZnlpbmcgdGhlIGdpdmVuIDxwYXRocz4gYXJlIHNlbGVjdGVkLgogCiAtLXNpbXBsaWZ5LWJ5LWRlY29yYXRpb246OgotCiAJQ29tbWl0cyB0aGF0IGFyZSByZWZlcnJlZCBieSBzb21lIGJyYW5jaCBvciB0YWcgYXJlIHNlbGVjdGVkLgogCiBOb3RlIHRoYXQgZXh0cmEgY29tbWl0cyBjYW4gYmUgc2hvd24gdG8gZ2l2ZSBhIG1lYW5pbmdmdWwgaGlzdG9yeS4KQEAgLTI5OSwzMyArMjgwLDI3IEBACiBUaGUgZm9sbG93aW5nIG9wdGlvbnMgYWZmZWN0IHRoZSB3YXkgdGhlIHNpbXBsaWZpY2F0aW9uIGlzIHBlcmZvcm1lZDoKIAogRGVmYXVsdCBtb2RlOjoKLQogCVNpbXBsaWZpZXMgdGhlIGhpc3RvcnkgdG8gdGhlIHNpbXBsZXN0IGhpc3RvcnkgZXhwbGFpbmluZyB0aGUKIAlmaW5hbCBzdGF0ZSBvZiB0aGUgdHJlZS4gU2ltcGxlc3QgYmVjYXVzZSBpdCBwcnVuZXMgc29tZSBzaWRlCiAJYnJhbmNoZXMgaWYgdGhlIGVuZCByZXN1bHQgaXMgdGhlIHNhbWUgKGkuZS4gbWVyZ2luZyBicmFuY2hlcwogCXdpdGggdGhlIHNhbWUgY29udGVudCkKIAogLS1mdWxsLWhpc3Rvcnk6OgotCiAJU2FtZSBhcyB0aGUgZGVmYXVsdCBtb2RlLCBidXQgZG9lcyBub3QgcHJ1bmUgc29tZSBoaXN0b3J5LgogCiAtLWRlbnNlOjoKLQogCU9ubHkgdGhlIHNlbGVjdGVkIGNvbW1pdHMgYXJlIHNob3duLCBwbHVzIHNvbWUgdG8gaGF2ZSBhCiAJbWVhbmluZ2Z1bCBoaXN0b3J5LgogCiAtLXNwYXJzZTo6Ci0KIAlBbGwgY29tbWl0cyBpbiB0aGUgc2ltcGxpZmllZCBoaXN0b3J5IGFyZSBzaG93bi4KIAogLS1zaW1wbGlmeS1tZXJnZXM6OgotCi0JQWRkaXRpb25hbCBvcHRpb24gdG8gJy0tZnVsbC1oaXN0b3J5JyB0byByZW1vdmUgc29tZSBuZWVkbGVzcworCUFkZGl0aW9uYWwgb3B0aW9uIHRvIGAtLWZ1bGwtaGlzdG9yeWAgdG8gcmVtb3ZlIHNvbWUgbmVlZGxlc3MKIAltZXJnZXMgZnJvbSB0aGUgcmVzdWx0aW5nIGhpc3RvcnksIGFzIHRoZXJlIGFyZSBubyBzZWxlY3RlZAogCWNvbW1pdHMgY29udHJpYnV0aW5nIHRvIHRoaXMgbWVyZ2UuCiAKIC0tYW5jZXN0cnktcGF0aDo6Ci0KIAlXaGVuIGdpdmVuIGEgcmFuZ2Ugb2YgY29tbWl0cyB0byBkaXNwbGF5IChlLmcuICdjb21taXQxLi5jb21taXQyJwogCW9yICdjb21taXQyIHtjYXJldH1jb21taXQxJyksIG9ubHkgZGlzcGxheSBjb21taXRzIHRoYXQgZXhpc3QKIAlkaXJlY3RseSBvbiB0aGUgYW5jZXN0cnkgY2hhaW4gYmV0d2VlbiB0aGUgJ2NvbW1pdDEnIGFuZApAQCAtMzUyLDM2ICszMjcsMzUgQEAKIGVhY2ggbWVyZ2UuICBUaGUgY29tbWl0cyBhcmU6CiAKICogYElgIGlzIHRoZSBpbml0aWFsIGNvbW1pdCwgaW4gd2hpY2ggYGZvb2AgZXhpc3RzIHdpdGggY29udGVudHMKLSAgImFzZGYiLCBhbmQgYSBmaWxlIGBxdXV4YCBleGlzdHMgd2l0aCBjb250ZW50cyAicXV1eCIuICBJbml0aWFsCisgIGBgYXNkZicnLCBhbmQgYSBmaWxlIGBxdXV4YCBleGlzdHMgd2l0aCBjb250ZW50cyBgYHF1dXgnJy4gSW5pdGlhbAogICBjb21taXRzIGFyZSBjb21wYXJlZCB0byBhbiBlbXB0eSB0cmVlLCBzbyBgSWAgaXMgIVRSRUVTQU1FLgogCi0qIEluIGBBYCwgYGZvb2AgY29udGFpbnMganVzdCAiZm9vIi4KKyogSW4gYEFgLCBgZm9vYCBjb250YWlucyBqdXN0IGBgZm9vJycuCiAKICogYEJgIGNvbnRhaW5zIHRoZSBzYW1lIGNoYW5nZSBhcyBgQWAuICBJdHMgbWVyZ2UgYE1gIGlzIHRyaXZpYWwgYW5kCiAgIGhlbmNlIFRSRUVTQU1FIHRvIGFsbCBwYXJlbnRzLgogCi0qIGBDYCBkb2VzIG5vdCBjaGFuZ2UgYGZvb2AsIGJ1dCBpdHMgbWVyZ2UgYE5gIGNoYW5nZXMgaXQgdG8gImZvb2JhciIsCisqIGBDYCBkb2VzIG5vdCBjaGFuZ2UgYGZvb2AsIGJ1dCBpdHMgbWVyZ2UgYE5gIGNoYW5nZXMgaXQgdG8gYGBmb29iYXInJywKICAgc28gaXQgaXMgbm90IFRSRUVTQU1FIHRvIGFueSBwYXJlbnQuCiAKLSogYERgIHNldHMgYGZvb2AgdG8gImJheiIuICBJdHMgbWVyZ2UgYE9gIGNvbWJpbmVzIHRoZSBzdHJpbmdzIGZyb20KLSAgYE5gIGFuZCBgRGAgdG8gImZvb2JhcmJheiI7IGkuZS4sIGl0IGlzIG5vdCBUUkVFU0FNRSB0byBhbnkgcGFyZW50LgorKiBgRGAgc2V0cyBgZm9vYCB0byBgYGJheicnLiBJdHMgbWVyZ2UgYE9gIGNvbWJpbmVzIHRoZSBzdHJpbmdzIGZyb20KKyAgYE5gIGFuZCBgRGAgdG8gYGBmb29iYXJiYXonJzsgaS5lLiwgaXQgaXMgbm90IFRSRUVTQU1FIHRvIGFueSBwYXJlbnQuCiAKLSogYEVgIGNoYW5nZXMgYHF1dXhgIHRvICJ4eXp6eSIsIGFuZCBpdHMgbWVyZ2UgYFBgIGNvbWJpbmVzIHRoZQotICBzdHJpbmdzIHRvICJxdXV4IHh5enp5Ii4gIGBQYCBpcyBUUkVFU0FNRSB0byBgT2AsIGJ1dCBub3QgdG8gYEVgLgorKiBgRWAgY2hhbmdlcyBgcXV1eGAgdG8gYGB4eXp6eScnLCBhbmQgaXRzIG1lcmdlIGBQYCBjb21iaW5lcyB0aGUKKyAgc3RyaW5ncyB0byBgYHF1dXggeHl6enknJy4gYFBgIGlzIFRSRUVTQU1FIHRvIGBPYCwgYnV0IG5vdCB0byBgRWAuCiAKICogYFhgIGlzIGFuIGluZGVwZW5kZW50IHJvb3QgY29tbWl0IHRoYXQgYWRkZWQgYSBuZXcgZmlsZSBgc2lkZWAsIGFuZCBgWWAKICAgbW9kaWZpZWQgaXQuIGBZYCBpcyBUUkVFU0FNRSB0byBgWGAuIEl0cyBtZXJnZSBgUWAgYWRkZWQgYHNpZGVgIHRvIGBQYCwgYW5kCiAgIGBRYCBpcyBUUkVFU0FNRSB0byBgUGAsIGJ1dCBub3QgdG8gYFlgLgogCi0ncmV2LWxpc3QnIHdhbGtzIGJhY2t3YXJkcyB0aHJvdWdoIGhpc3RvcnksIGluY2x1ZGluZyBvciBleGNsdWRpbmcKLWNvbW1pdHMgYmFzZWQgb24gd2hldGhlciAnXC0tZnVsbC1oaXN0b3J5JyBhbmQvb3IgcGFyZW50IHJld3JpdGluZwotKHZpYSAnXC0tcGFyZW50cycgb3IgJ1wtLWNoaWxkcmVuJykgYXJlIHVzZWQuICBUaGUgZm9sbG93aW5nIHNldHRpbmdzCitgcmV2LWxpc3RgIHdhbGtzIGJhY2t3YXJkcyB0aHJvdWdoIGhpc3RvcnksIGluY2x1ZGluZyBvciBleGNsdWRpbmcKK2NvbW1pdHMgYmFzZWQgb24gd2hldGhlciBgLS1mdWxsLWhpc3RvcnlgIGFuZC9vciBwYXJlbnQgcmV3cml0aW5nCisodmlhIGAtLXBhcmVudHNgIG9yIGAtLWNoaWxkcmVuYCkgYXJlIHVzZWQuIFRoZSBmb2xsb3dpbmcgc2V0dGluZ3MKIGFyZSBhdmFpbGFibGUuCiAKIERlZmF1bHQgbW9kZTo6Ci0KIAlDb21taXRzIGFyZSBpbmNsdWRlZCBpZiB0aGV5IGFyZSBub3QgVFJFRVNBTUUgdG8gYW55IHBhcmVudAotCSh0aG91Z2ggdGhpcyBjYW4gYmUgY2hhbmdlZCwgc2VlICdcLS1zcGFyc2UnIGJlbG93KS4gIElmIHRoZQorCSh0aG91Z2ggdGhpcyBjYW4gYmUgY2hhbmdlZCwgc2VlIGAtLXNwYXJzZWAgYmVsb3cpLiAgSWYgdGhlCiAJY29tbWl0IHdhcyBhIG1lcmdlLCBhbmQgaXQgd2FzIFRSRUVTQU1FIHRvIG9uZSBwYXJlbnQsIGZvbGxvdwogCW9ubHkgdGhhdCBwYXJlbnQuICAoRXZlbiBpZiB0aGVyZSBhcmUgc2V2ZXJhbCBUUkVFU0FNRQogCXBhcmVudHMsIGZvbGxvdyBvbmx5IG9uZSBvZiB0aGVtLikgIE90aGVyd2lzZSwgZm9sbG93IGFsbApAQCAtNDAwLDEyICszNzQsMTEgQEAKIGNvbnNpZGVyZWQgdmlhIGBOYCwgYnV0IGlzIFRSRUVTQU1FLiAgUm9vdCBjb21taXRzIGFyZSBjb21wYXJlZCB0byBhbgogZW1wdHkgdHJlZSwgc28gYElgIGlzICFUUkVFU0FNRS4KICsKLVBhcmVudC9jaGlsZCByZWxhdGlvbnMgYXJlIG9ubHkgdmlzaWJsZSB3aXRoIC0tcGFyZW50cywgYnV0IHRoYXQgZG9lcworUGFyZW50L2NoaWxkIHJlbGF0aW9ucyBhcmUgb25seSB2aXNpYmxlIHdpdGggYC0tcGFyZW50c2AsIGJ1dCB0aGF0IGRvZXMKIG5vdCBhZmZlY3QgdGhlIGNvbW1pdHMgc2VsZWN0ZWQgaW4gZGVmYXVsdCBtb2RlLCBzbyB3ZSBoYXZlIHNob3duIHRoZQogcGFyZW50IGxpbmVzLgogCiAtLWZ1bGwtaGlzdG9yeSB3aXRob3V0IHBhcmVudCByZXdyaXRpbmc6OgotCiAJVGhpcyBtb2RlIGRpZmZlcnMgZnJvbSB0aGUgZGVmYXVsdCBpbiBvbmUgcG9pbnQ6IGFsd2F5cyBmb2xsb3cKIAlhbGwgcGFyZW50cyBvZiBhIG1lcmdlLCBldmVuIGlmIGl0IGlzIFRSRUVTQU1FIHRvIG9uZSBvZiB0aGVtLgogCUV2ZW4gaWYgbW9yZSB0aGFuIG9uZSBzaWRlIG9mIHRoZSBtZXJnZSBoYXMgY29tbWl0cyB0aGF0IGFyZQpAQCAtNDI1LDkgKzM5OCw4IEBACiB0aGVtIGRpc2Nvbm5lY3RlZC4KIAogLS1mdWxsLWhpc3Rvcnkgd2l0aCBwYXJlbnQgcmV3cml0aW5nOjoKLQogCU9yZGluYXJ5IGNvbW1pdHMgYXJlIG9ubHkgaW5jbHVkZWQgaWYgdGhleSBhcmUgIVRSRUVTQU1FCi0JKHRob3VnaCB0aGlzIGNhbiBiZSBjaGFuZ2VkLCBzZWUgJ1wtLXNwYXJzZScgYmVsb3cpLgorCSh0aG91Z2ggdGhpcyBjYW4gYmUgY2hhbmdlZCwgc2VlIGAtLXNwYXJzZWAgYmVsb3cpLgogKwogTWVyZ2VzIGFyZSBhbHdheXMgaW5jbHVkZWQuICBIb3dldmVyLCB0aGVpciBwYXJlbnQgbGlzdCBpcyByZXdyaXR0ZW46CiBBbG9uZyBlYWNoIHBhcmVudCwgcHJ1bmUgYXdheSBjb21taXRzIHRoYXQgYXJlIG5vdCBpbmNsdWRlZApAQCAtNDQxLDcgKzQxMyw3IEBACiAJICBgLS0tLS0tLS0tLS0tLScKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiArCi1Db21wYXJlIHRvICdcLS1mdWxsLWhpc3RvcnknIHdpdGhvdXQgcmV3cml0aW5nIGFib3ZlLiAgTm90ZSB0aGF0IGBFYAorQ29tcGFyZSB0byBgLS1mdWxsLWhpc3RvcnlgIHdpdGhvdXQgcmV3cml0aW5nIGFib3ZlLiAgTm90ZSB0aGF0IGBFYAogd2FzIHBydW5lZCBhd2F5IGJlY2F1c2UgaXQgaXMgVFJFRVNBTUUsIGJ1dCB0aGUgcGFyZW50IGxpc3Qgb2YgUCB3YXMKIHJld3JpdHRlbiB0byBjb250YWluIGBFYCdzIHBhcmVudCBgSWAuICBUaGUgc2FtZSBoYXBwZW5lZCBmb3IgYENgIGFuZAogYE5gLCBhbmQgYFhgLCBgWWAgYW5kIGBRYC4KQEAgLTQ1MCwyMiArNDIyLDE5IEBACiBhZmZlY3RzIGluY2x1c2lvbjoKIAogLS1kZW5zZTo6Ci0KIAlDb21taXRzIHRoYXQgYXJlIHdhbGtlZCBhcmUgaW5jbHVkZWQgaWYgdGhleSBhcmUgbm90IFRSRUVTQU1FCiAJdG8gYW55IHBhcmVudC4KIAogLS1zcGFyc2U6OgotCiAJQWxsIGNvbW1pdHMgdGhhdCBhcmUgd2Fsa2VkIGFyZSBpbmNsdWRlZC4KICsKLU5vdGUgdGhhdCB3aXRob3V0ICdcLS1mdWxsLWhpc3RvcnknLCB0aGlzIHN0aWxsIHNpbXBsaWZpZXMgbWVyZ2VzOiBpZgorTm90ZSB0aGF0IHdpdGhvdXQgYC0tZnVsbC1oaXN0b3J5YCwgdGhpcyBzdGlsbCBzaW1wbGlmaWVzIG1lcmdlczogaWYKIG9uZSBvZiB0aGUgcGFyZW50cyBpcyBUUkVFU0FNRSwgd2UgZm9sbG93IG9ubHkgdGhhdCBvbmUsIHNvIHRoZSBvdGhlcgogc2lkZXMgb2YgdGhlIG1lcmdlIGFyZSBuZXZlciB3YWxrZWQuCiAKIC0tc2ltcGxpZnktbWVyZ2VzOjoKLQogCUZpcnN0LCBidWlsZCBhIGhpc3RvcnkgZ3JhcGggaW4gdGhlIHNhbWUgd2F5IHRoYXQKLQknXC0tZnVsbC1oaXN0b3J5JyB3aXRoIHBhcmVudCByZXdyaXRpbmcgZG9lcyAoc2VlIGFib3ZlKS4KKwlgLS1mdWxsLWhpc3RvcnlgIHdpdGggcGFyZW50IHJld3JpdGluZyBkb2VzIChzZWUgYWJvdmUpLgogKwogVGhlbiBzaW1wbGlmeSBlYWNoIGNvbW1pdCBgQ2AgdG8gaXRzIHJlcGxhY2VtZW50IGBDJ2AgaW4gdGhlIGZpbmFsCiBoaXN0b3J5IGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHJ1bGVzOgpAQCAtNDg0LDcgKzQ1Myw3IEBACiAtLQogKwogVGhlIGVmZmVjdCBvZiB0aGlzIGlzIGJlc3Qgc2hvd24gYnkgd2F5IG9mIGNvbXBhcmluZyB0bwotJ1wtLWZ1bGwtaGlzdG9yeScgd2l0aCBwYXJlbnQgcmV3cml0aW5nLiAgVGhlIGV4YW1wbGUgdHVybnMgaW50bzoKK2AtLWZ1bGwtaGlzdG9yeWAgd2l0aCBwYXJlbnQgcmV3cml0aW5nLiAgVGhlIGV4YW1wbGUgdHVybnMgaW50bzoKICsKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJICAuLUEtLS1NLS0tTi0tLU8KQEAgLTQ5NCw3ICs0NjMsNyBAQAogCSAgYC0tLS0tLS0tLScKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiArCi1Ob3RlIHRoZSBtYWpvciBkaWZmZXJlbmNlcyBpbiBgTmAsIGBQYCBhbmQgYFFgIG92ZXIgJy0tZnVsbC1oaXN0b3J5JzoKK05vdGUgdGhlIG1ham9yIGRpZmZlcmVuY2VzIGluIGBOYCwgYFBgLCBhbmQgYFFgIG92ZXIgYC0tZnVsbC1oaXN0b3J5YDoKICsKIC0tCiAqIGBOYCdzIHBhcmVudCBsaXN0IGhhZCBgSWAgcmVtb3ZlZCwgYmVjYXVzZSBpdCBpcyBhbiBhbmNlc3RvciBvZiB0aGUKQEAgLTUxMSwxMSArNDgwLDEwIEBACiBGaW5hbGx5LCB0aGVyZSBpcyBhIGZpZnRoIHNpbXBsaWZpY2F0aW9uIG1vZGUgYXZhaWxhYmxlOgogCiAtLWFuY2VzdHJ5LXBhdGg6OgotCiAJTGltaXQgdGhlIGRpc3BsYXllZCBjb21taXRzIHRvIHRob3NlIGRpcmVjdGx5IG9uIHRoZSBhbmNlc3RyeQotCWNoYWluIGJldHdlZW4gdGhlICJmcm9tIiBhbmQgInRvIiBjb21taXRzIGluIHRoZSBnaXZlbiBjb21taXQKLQlyYW5nZS4gSS5lLiBvbmx5IGRpc3BsYXkgY29tbWl0cyB0aGF0IGFyZSBhbmNlc3RvciBvZiB0aGUgInRvIgotCWNvbW1pdCwgYW5kIGRlc2NlbmRhbnRzIG9mIHRoZSAiZnJvbSIgY29tbWl0LgorCWNoYWluIGJldHdlZW4gdGhlIGBgZnJvbScnIGFuZCBgYHRvJycgY29tbWl0cyBpbiB0aGUgZ2l2ZW4gY29tbWl0CisJcmFuZ2UuIEkuZS4gb25seSBkaXNwbGF5IGNvbW1pdHMgdGhhdCBhcmUgYW5jZXN0b3Igb2YgdGhlIGBgdG8nJworCWNvbW1pdCBhbmQgZGVzY2VuZGFudHMgb2YgdGhlIGBgZnJvbScnIGNvbW1pdC4KICsKIEFzIGFuIGV4YW1wbGUgdXNlIGNhc2UsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgY29tbWl0IGhpc3Rvcnk6CiArCkBAIC01MzAsMTQgKzQ5OCwxNCBAQAogQSByZWd1bGFyICdELi5NJyBjb21wdXRlcyB0aGUgc2V0IG9mIGNvbW1pdHMgdGhhdCBhcmUgYW5jZXN0b3JzIG9mIGBNYCwKIGJ1dCBleGNsdWRlcyB0aGUgb25lcyB0aGF0IGFyZSBhbmNlc3RvcnMgb2YgYERgLiBUaGlzIGlzIHVzZWZ1bCB0byBzZWUKIHdoYXQgaGFwcGVuZWQgdG8gdGhlIGhpc3RvcnkgbGVhZGluZyB0byBgTWAgc2luY2UgYERgLCBpbiB0aGUgc2Vuc2UKLXRoYXQgIndoYXQgZG9lcyBgTWAgaGF2ZSB0aGF0IGRpZCBub3QgZXhpc3QgaW4gYERgIi4gVGhlIHJlc3VsdCBpbiB0aGlzCit0aGF0IGBgd2hhdCBkb2VzIGBNYCBoYXZlIHRoYXQgZGlkIG5vdCBleGlzdCBpbiBgRGAnJy4gVGhlIHJlc3VsdCBpbiB0aGlzCiBleGFtcGxlIHdvdWxkIGJlIGFsbCB0aGUgY29tbWl0cywgZXhjZXB0IGBBYCBhbmQgYEJgIChhbmQgYERgIGl0c2VsZiwKIG9mIGNvdXJzZSkuCiArCiBXaGVuIHdlIHdhbnQgdG8gZmluZCBvdXQgd2hhdCBjb21taXRzIGluIGBNYCBhcmUgY29udGFtaW5hdGVkIHdpdGggdGhlCiBidWcgaW50cm9kdWNlZCBieSBgRGAgYW5kIG5lZWQgZml4aW5nLCBob3dldmVyLCB3ZSBtaWdodCB3YW50IHRvIHZpZXcKIG9ubHkgdGhlIHN1YnNldCBvZiAnRC4uTScgdGhhdCBhcmUgYWN0dWFsbHkgZGVzY2VuZGFudHMgb2YgYERgLCBpLmUuCi1leGNsdWRpbmcgYENgIGFuZCBgS2AuIFRoaXMgaXMgZXhhY3RseSB3aGF0IHRoZSAnLS1hbmNlc3RyeS1wYXRoJworZXhjbHVkaW5nIGBDYCBhbmQgYEtgLiBUaGlzIGlzIGV4YWN0bHkgd2hhdCB0aGUgYC0tYW5jZXN0cnktcGF0aGAKIG9wdGlvbiBkb2VzLiBBcHBsaWVkIHRvIHRoZSAnRC4uTScgcmFuZ2UsIGl0IHJlc3VsdHMgaW46CiArCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTQ4LDcgKzUxNiw3IEBACiAJCQkJTC0tTQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotVGhlICdcLS1zaW1wbGlmeS1ieS1kZWNvcmF0aW9uJyBvcHRpb24gYWxsb3dzIHlvdSB0byB2aWV3IG9ubHkgdGhlCitUaGUgYC0tc2ltcGxpZnktYnktZGVjb3JhdGlvbmAgb3B0aW9uIGFsbG93cyB5b3UgdG8gdmlldyBvbmx5IHRoZQogYmlnIHBpY3R1cmUgb2YgdGhlIHRvcG9sb2d5IG9mIHRoZSBoaXN0b3J5LCBieSBvbWl0dGluZyBjb21taXRzCiB0aGF0IGFyZSBub3QgcmVmZXJlbmNlZCBieSB0YWdzLiAgQ29tbWl0cyBhcmUgbWFya2VkIGFzICFUUkVFU0FNRQogKGluIG90aGVyIHdvcmRzLCBrZXB0IGFmdGVyIGhpc3Rvcnkgc2ltcGxpZmljYXRpb24gcnVsZXMgZGVzY3JpYmVkCkBAIC01NjEsNTAgKzUyOSw0NyBAQAogfn5+fn5+fn5+fn5+fn5+fn4KIAogLS1iaXNlY3Q6OgotCi1MaW1pdCBvdXRwdXQgdG8gdGhlIG9uZSBjb21taXQgb2JqZWN0IHdoaWNoIGlzIHJvdWdobHkgaGFsZndheSBiZXR3ZWVuCi1pbmNsdWRlZCBhbmQgZXhjbHVkZWQgY29tbWl0cy4gTm90ZSB0aGF0IHRoZSBiYWQgYmlzZWN0aW9uIHJlZgotYHJlZnMvYmlzZWN0L2JhZGAgaXMgYWRkZWQgdG8gdGhlIGluY2x1ZGVkIGNvbW1pdHMgKGlmIGl0Ci1leGlzdHMpIGFuZCB0aGUgZ29vZCBiaXNlY3Rpb24gcmVmcyBgcmVmcy9iaXNlY3QvZ29vZC0qYCBhcmUKLWFkZGVkIHRvIHRoZSBleGNsdWRlZCBjb21taXRzIChpZiB0aGV5IGV4aXN0KS4gVGh1cywgc3VwcG9zaW5nIHRoZXJlCi1hcmUgbm8gcmVmcyBpbiBgcmVmcy9iaXNlY3QvYCwgaWYKLQorCUxpbWl0IG91dHB1dCB0byB0aGUgb25lIGNvbW1pdCBvYmplY3Qgd2hpY2ggaXMgcm91Z2hseSBoYWxmd2F5IGJldHdlZW4KKwlpbmNsdWRlZCBhbmQgZXhjbHVkZWQgY29tbWl0cy4gTm90ZSB0aGF0IHRoZSBiYWQgYmlzZWN0aW9uIHJlZgorCWByZWZzL2Jpc2VjdC9iYWRgIGlzIGFkZGVkIHRvIHRoZSBpbmNsdWRlZCBjb21taXRzIChpZiBpdAorCWV4aXN0cykgYW5kIHRoZSBnb29kIGJpc2VjdGlvbiByZWZzIGByZWZzL2Jpc2VjdC9nb29kLSpgIGFyZQorCWFkZGVkIHRvIHRoZSBleGNsdWRlZCBjb21taXRzIChpZiB0aGV5IGV4aXN0KS4gVGh1cywgc3VwcG9zaW5nIHRoZXJlCisJYXJlIG5vIHJlZnMgaW4gYHJlZnMvYmlzZWN0L2AsIGlmCisrCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCSQgZ2l0IHJldi1saXN0IC0tYmlzZWN0IGZvbyBeYmFyIF5iYXoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KKysKIG91dHB1dHMgJ21pZHBvaW50JywgdGhlIG91dHB1dCBvZiB0aGUgdHdvIGNvbW1hbmRzCi0KKysKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJJCBnaXQgcmV2LWxpc3QgZm9vIF5taWRwb2ludAogCSQgZ2l0IHJldi1saXN0IG1pZHBvaW50IF5iYXIgXmJhegogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQorKwogd291bGQgYmUgb2Ygcm91Z2hseSB0aGUgc2FtZSBsZW5ndGguICBGaW5kaW5nIHRoZSBjaGFuZ2Ugd2hpY2gKIGludHJvZHVjZXMgYSByZWdyZXNzaW9uIGlzIHRodXMgcmVkdWNlZCB0byBhIGJpbmFyeSBzZWFyY2g6IHJlcGVhdGVkbHkKIGdlbmVyYXRlIGFuZCB0ZXN0IG5ldyAnbWlkcG9pbnQncyB1bnRpbCB0aGUgY29tbWl0IGNoYWluIGlzIG9mIGxlbmd0aAogb25lLgogCiAtLWJpc2VjdC12YXJzOjoKLQotVGhpcyBjYWxjdWxhdGVzIHRoZSBzYW1lIGFzIGAtLWJpc2VjdGAsIGV4Y2VwdCB0aGF0IHJlZnMgaW4KLWByZWZzL2Jpc2VjdC9gIGFyZSBub3QgdXNlZCwgYW5kIGV4Y2VwdCB0aGF0IHRoaXMgb3V0cHV0cwotdGV4dCByZWFkeSB0byBiZSBldmFsJ2VkIGJ5IHRoZSBzaGVsbC4gVGhlc2UgbGluZXMgd2lsbCBhc3NpZ24gdGhlCi1uYW1lIG9mIHRoZSBtaWRwb2ludCByZXZpc2lvbiB0byB0aGUgdmFyaWFibGUgYGJpc2VjdF9yZXZgLCBhbmQgdGhlCi1leHBlY3RlZCBudW1iZXIgb2YgY29tbWl0cyB0byBiZSB0ZXN0ZWQgYWZ0ZXIgYGJpc2VjdF9yZXZgIGlzIHRlc3RlZAotdG8gYGJpc2VjdF9ucmAsIHRoZSBleHBlY3RlZCBudW1iZXIgb2YgY29tbWl0cyB0byBiZSB0ZXN0ZWQgaWYKLWBiaXNlY3RfcmV2YCB0dXJucyBvdXQgdG8gYmUgZ29vZCB0byBgYmlzZWN0X2dvb2RgLCB0aGUgZXhwZWN0ZWQKLW51bWJlciBvZiBjb21taXRzIHRvIGJlIHRlc3RlZCBpZiBgYmlzZWN0X3JldmAgdHVybnMgb3V0IHRvIGJlIGJhZCB0bwotYGJpc2VjdF9iYWRgLCBhbmQgdGhlIG51bWJlciBvZiBjb21taXRzIHdlIGFyZSBiaXNlY3RpbmcgcmlnaHQgbm93IHRvCi1gYmlzZWN0X2FsbGAuCisJVGhpcyBjYWxjdWxhdGVzIHRoZSBzYW1lIGFzIGAtLWJpc2VjdGAsIGV4Y2VwdCB0aGF0IHJlZnMgaW4KKwlgcmVmcy9iaXNlY3QvYCBhcmUgbm90IHVzZWQsIGFuZCBleGNlcHQgdGhhdCB0aGlzIG91dHB1dHMKKwl0ZXh0IHJlYWR5IHRvIGJlIGV2YWwnZWQgYnkgdGhlIHNoZWxsLiBUaGVzZSBsaW5lcyB3aWxsIGFzc2lnbiB0aGUKKwluYW1lIG9mIHRoZSBtaWRwb2ludCByZXZpc2lvbiB0byB0aGUgdmFyaWFibGUgYGJpc2VjdF9yZXZgLCBhbmQgdGhlCisJZXhwZWN0ZWQgbnVtYmVyIG9mIGNvbW1pdHMgdG8gYmUgdGVzdGVkIGFmdGVyIGBiaXNlY3RfcmV2YCBpcyB0ZXN0ZWQKKwl0byBgYmlzZWN0X25yYCwgdGhlIGV4cGVjdGVkIG51bWJlciBvZiBjb21taXRzIHRvIGJlIHRlc3RlZCBpZgorCWBiaXNlY3RfcmV2YCB0dXJucyBvdXQgdG8gYmUgZ29vZCB0byBgYmlzZWN0X2dvb2RgLCB0aGUgZXhwZWN0ZWQKKwludW1iZXIgb2YgY29tbWl0cyB0byBiZSB0ZXN0ZWQgaWYgYGJpc2VjdF9yZXZgIHR1cm5zIG91dCB0byBiZSBiYWQgdG8KKwlgYmlzZWN0X2JhZGAsIGFuZCB0aGUgbnVtYmVyIG9mIGNvbW1pdHMgd2UgYXJlIGJpc2VjdGluZyByaWdodCBub3cgdG8KKwlgYmlzZWN0X2FsbGAuCiAKIC0tYmlzZWN0LWFsbDo6Ci0KLVRoaXMgb3V0cHV0cyBhbGwgdGhlIGNvbW1pdCBvYmplY3RzIGJldHdlZW4gdGhlIGluY2x1ZGVkIGFuZCBleGNsdWRlZAotY29tbWl0cywgb3JkZXJlZCBieSB0aGVpciBkaXN0YW5jZSB0byB0aGUgaW5jbHVkZWQgYW5kIGV4Y2x1ZGVkCi1jb21taXRzLiBSZWZzIGluIGByZWZzL2Jpc2VjdC9gIGFyZSBub3QgdXNlZC4gVGhlIGZhcnRoZXN0Ci1mcm9tIHRoZW0gaXMgZGlzcGxheWVkIGZpcnN0LiAoVGhpcyBpcyB0aGUgb25seSBvbmUgZGlzcGxheWVkIGJ5Ci1gLS1iaXNlY3RgLikKKwlUaGlzIG91dHB1dHMgYWxsIHRoZSBjb21taXQgb2JqZWN0cyBiZXR3ZWVuIHRoZSBpbmNsdWRlZCBhbmQgZXhjbHVkZWQKKwljb21taXRzLCBvcmRlcmVkIGJ5IHRoZWlyIGRpc3RhbmNlIHRvIHRoZSBpbmNsdWRlZCBhbmQgZXhjbHVkZWQKKwljb21taXRzLiBSZWZzIGluIGByZWZzL2Jpc2VjdC9gIGFyZSBub3QgdXNlZC4gVGhlIGZhcnRoZXN0CisJZnJvbSB0aGVtIGlzIGRpc3BsYXllZCBmaXJzdC4gKFRoaXMgaXMgdGhlIG9ubHkgb25lIGRpc3BsYXllZCBieQorCWAtLWJpc2VjdGAuKQogKwogVGhpcyBpcyB1c2VmdWwgYmVjYXVzZSBpdCBtYWtlcyBpdCBlYXN5IHRvIGNob29zZSBhIGdvb2QgY29tbWl0IHRvCiB0ZXN0IHdoZW4geW91IHdhbnQgdG8gYXZvaWQgdG8gdGVzdCBzb21lIG9mIHRoZW0gZm9yIHNvbWUgcmVhc29uICh0aGV5CkBAIC02NTQsOSArNjE5LDggQEAKIHRvZ2V0aGVyLgogCiAtLXJldmVyc2U6OgotCiAJT3V0cHV0IHRoZSBjb21taXRzIGluIHJldmVyc2Ugb3JkZXIuCi0JQ2Fubm90IGJlIGNvbWJpbmVkIHdpdGggJ1wtLXdhbGstcmVmbG9ncycuCisJQ2Fubm90IGJlIGNvbWJpbmVkIHdpdGggYC0td2Fsay1yZWZsb2dzYC4KIAogT2JqZWN0IFRyYXZlcnNhbAogfn5+fn5+fn5+fn5+fn5+fgpAQCAtNjY0LDM3ICs2MjgsMzIgQEAKIFRoZXNlIG9wdGlvbnMgYXJlIG1vc3RseSB0YXJnZXRlZCBmb3IgcGFja2luZyBvZiBHaXQgcmVwb3NpdG9yaWVzLgogCiAtLW9iamVjdHM6OgotCiAJUHJpbnQgdGhlIG9iamVjdCBJRHMgb2YgYW55IG9iamVjdCByZWZlcmVuY2VkIGJ5IHRoZSBsaXN0ZWQKLQljb21taXRzLiAgJy0tb2JqZWN0cyBmb28gXmJhcicgdGh1cyBtZWFucyAic2VuZCBtZQorCWNvbW1pdHMuICBgLS1vYmplY3RzIGZvbyBeYmFyYCB0aHVzIG1lYW5zIGBgc2VuZCBtZQogCWFsbCBvYmplY3QgSURzIHdoaWNoIEkgbmVlZCB0byBkb3dubG9hZCBpZiBJIGhhdmUgdGhlIGNvbW1pdAotCW9iamVjdCAnYmFyJywgYnV0IG5vdCAnZm9vJyIuCisJb2JqZWN0IF9iYXJfIGJ1dCBub3QgX2Zvb18nJy4KIAogLS1vYmplY3RzLWVkZ2U6OgotCi0JU2ltaWxhciB0byAnLS1vYmplY3RzJywgYnV0IGFsc28gcHJpbnQgdGhlIElEcyBvZiBleGNsdWRlZAotCWNvbW1pdHMgcHJlZml4ZWQgd2l0aCBhICItIiBjaGFyYWN0ZXIuICBUaGlzIGlzIHVzZWQgYnkKLQlsaW5rZ2l0OmdpdC1wYWNrLW9iamVjdHNbMV0gdG8gYnVpbGQgInRoaW4iIHBhY2ssIHdoaWNoIHJlY29yZHMKKwlTaW1pbGFyIHRvIGAtLW9iamVjdHNgLCBidXQgYWxzbyBwcmludCB0aGUgSURzIG9mIGV4Y2x1ZGVkCisJY29tbWl0cyBwcmVmaXhlZCB3aXRoIGEgYGAtJycgY2hhcmFjdGVyLiAgVGhpcyBpcyB1c2VkIGJ5CisJbGlua2dpdDpnaXQtcGFjay1vYmplY3RzWzFdIHRvIGJ1aWxkIGBgdGhpbicnIHBhY2ssIHdoaWNoIHJlY29yZHMKIAlvYmplY3RzIGluIGRlbHRpZmllZCBmb3JtIGJhc2VkIG9uIG9iamVjdHMgY29udGFpbmVkIGluIHRoZXNlCiAJZXhjbHVkZWQgY29tbWl0cyB0byByZWR1Y2UgbmV0d29yayB0cmFmZmljLgogCiAtLXVucGFja2VkOjoKLQotCU9ubHkgdXNlZnVsIHdpdGggJy0tb2JqZWN0cyc7IHByaW50IHRoZSBvYmplY3QgSURzIHRoYXQgYXJlIG5vdAorCU9ubHkgdXNlZnVsIHdpdGggYC0tb2JqZWN0c2A7IHByaW50IHRoZSBvYmplY3QgSURzIHRoYXQgYXJlIG5vdAogCWluIHBhY2tzLgogCiAtLW5vLXdhbGtbPShzb3J0ZWR8dW5zb3J0ZWQpXTo6Ci0KIAlPbmx5IHNob3cgdGhlIGdpdmVuIGNvbW1pdHMsIGJ1dCBkbyBub3QgdHJhdmVyc2UgdGhlaXIgYW5jZXN0b3JzLgogCVRoaXMgaGFzIG5vIGVmZmVjdCBpZiBhIHJhbmdlIGlzIHNwZWNpZmllZC4gSWYgdGhlIGFyZ3VtZW50Ci0JInVuc29ydGVkIiBpcyBnaXZlbiwgdGhlIGNvbW1pdHMgYXJlIHNob3cgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZQotCWdpdmVuIG9uIHRoZSBjb21tYW5kIGxpbmUuIE90aGVyd2lzZSAoaWYgInNvcnRlZCIgb3Igbm8gYXJndW1lbnQKLQl3YXMgZ2l2ZW4pLCB0aGUgY29tbWl0cyBhcmUgc2hvdyBpbiByZXZlcnNlIGNocm9ub2xvZ2ljYWwgb3JkZXIKKwlgdW5zb3J0ZWRgIGlzIGdpdmVuLCB0aGUgY29tbWl0cyBhcmUgc2hvd24gaW4gdGhlIG9yZGVyIHRoZXkgd2VyZQorCWdpdmVuIG9uIHRoZSBjb21tYW5kIGxpbmUuIE90aGVyd2lzZSAoaWYgYHNvcnRlZGAgb3Igbm8gYXJndW1lbnQKKwl3YXMgZ2l2ZW4pLCB0aGUgY29tbWl0cyBhcmUgc2hvd24gaW4gcmV2ZXJzZSBjaHJvbm9sb2dpY2FsIG9yZGVyCiAJYnkgY29tbWl0IHRpbWUuCiAKIC0tZG8td2Fsazo6Ci0KLQlPdmVycmlkZXMgYSBwcmV2aW91cyAtLW5vLXdhbGsuCisJT3ZlcnJpZGVzIGEgcHJldmlvdXMgYC0tbm8td2Fsa2AuCiAKIENvbW1pdCBGb3JtYXR0aW5nCiB+fn5+fn5+fn5+fn5+fn5+fgpAQCAtNzA4LDQ2ICs2NjcsNDEgQEAKIGluY2x1ZGU6OnByZXR0eS1vcHRpb25zLnR4dFtdCiAKIC0tcmVsYXRpdmUtZGF0ZTo6Ci0KIAlTeW5vbnltIGZvciBgLS1kYXRlPXJlbGF0aXZlYC4KIAogLS1kYXRlPShyZWxhdGl2ZXxsb2NhbHxkZWZhdWx0fGlzb3xyZmN8c2hvcnR8cmF3KTo6Ci0KIAlPbmx5IHRha2VzIGVmZmVjdCBmb3IgZGF0ZXMgc2hvd24gaW4gaHVtYW4tcmVhZGFibGUgZm9ybWF0LCBzdWNoCi0JYXMgd2hlbiB1c2luZyAiLS1wcmV0dHkiLiBgbG9nLmRhdGVgIGNvbmZpZyB2YXJpYWJsZSBzZXRzIGEgZGVmYXVsdAotCXZhbHVlIGZvciBsb2cgY29tbWFuZCdzIC0tZGF0ZSBvcHRpb24uCisJYXMgd2hlbiB1c2luZyBgLS1wcmV0dHlgLiBgbG9nLmRhdGVgIGNvbmZpZyB2YXJpYWJsZSBzZXRzIGEgZGVmYXVsdAorCXZhbHVlIGZvciB0aGUgbG9nIGNvbW1hbmQncyBgLS1kYXRlYCBvcHRpb24uCiArCiBgLS1kYXRlPXJlbGF0aXZlYCBzaG93cyBkYXRlcyByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB0aW1lLAotZS5nLiAiMiBob3VycyBhZ28iLgorZS5nLiBgYDIgaG91cnMgYWdvJycuCiArCi1gLS1kYXRlPWxvY2FsYCBzaG93cyB0aW1lc3RhbXBzIGluIHVzZXIncyBsb2NhbCB0aW1lem9uZS4KK2AtLWRhdGU9bG9jYWxgIHNob3dzIHRpbWVzdGFtcHMgaW4gdXNlcidzIGxvY2FsIHRpbWUgem9uZS4KICsKIGAtLWRhdGU9aXNvYCAob3IgYC0tZGF0ZT1pc284NjAxYCkgc2hvd3MgdGltZXN0YW1wcyBpbiBJU08gODYwMSBmb3JtYXQuCiArCiBgLS1kYXRlPXJmY2AgKG9yIGAtLWRhdGU9cmZjMjgyMmApIHNob3dzIHRpbWVzdGFtcHMgaW4gUkZDIDI4MjIKLWZvcm1hdCwgb2Z0ZW4gZm91bmQgaW4gRS1tYWlsIG1lc3NhZ2VzLgorZm9ybWF0LCBvZnRlbiBmb3VuZCBpbiBlbWFpbCBtZXNzYWdlcy4KICsKLWAtLWRhdGU9c2hvcnRgIHNob3dzIG9ubHkgZGF0ZSBidXQgbm90IHRpbWUsIGluIGBZWVlZLU1NLUREYCBmb3JtYXQuCitgLS1kYXRlPXNob3J0YCBzaG93cyBvbmx5IHRoZSBkYXRlLCBidXQgbm90IHRoZSB0aW1lLCBpbiBgWVlZWS1NTS1ERGAgZm9ybWF0LgogKwogYC0tZGF0ZT1yYXdgIHNob3dzIHRoZSBkYXRlIGluIHRoZSBpbnRlcm5hbCByYXcgR2l0IGZvcm1hdCBgJXMgJXpgIGZvcm1hdC4KICsKLWAtLWRhdGU9ZGVmYXVsdGAgc2hvd3MgdGltZXN0YW1wcyBpbiB0aGUgb3JpZ2luYWwgdGltZXpvbmUKK2AtLWRhdGU9ZGVmYXVsdGAgc2hvd3MgdGltZXN0YW1wcyBpbiB0aGUgb3JpZ2luYWwgdGltZSB6b25lCiAoZWl0aGVyIGNvbW1pdHRlcidzIG9yIGF1dGhvcidzKS4KIAogaWZkZWY6OmdpdC1yZXYtbGlzdFtdCiAtLWhlYWRlcjo6Ci0KIAlQcmludCB0aGUgY29udGVudHMgb2YgdGhlIGNvbW1pdCBpbiByYXctZm9ybWF0OyBlYWNoIHJlY29yZCBpcwogCXNlcGFyYXRlZCB3aXRoIGEgTlVMIGNoYXJhY3Rlci4KIGVuZGlmOjpnaXQtcmV2LWxpc3RbXQogCiAtLXBhcmVudHM6OgotCiAJUHJpbnQgYWxzbyB0aGUgcGFyZW50cyBvZiB0aGUgY29tbWl0IChpbiB0aGUgZm9ybSAiY29tbWl0IHBhcmVudC4uLiIpLgogCUFsc28gZW5hYmxlcyBwYXJlbnQgcmV3cml0aW5nLCBzZWUgJ0hpc3RvcnkgU2ltcGxpZmljYXRpb24nIGJlbG93LgogCiAtLWNoaWxkcmVuOjoKLQogCVByaW50IGFsc28gdGhlIGNoaWxkcmVuIG9mIHRoZSBjb21taXQgKGluIHRoZSBmb3JtICJjb21taXQgY2hpbGQuLi4iKS4KIAlBbHNvIGVuYWJsZXMgcGFyZW50IHJld3JpdGluZywgc2VlICdIaXN0b3J5IFNpbXBsaWZpY2F0aW9uJyBiZWxvdy4KIApAQCAtNzU3LDcgKzcxMSw2IEBACiBlbmRpZjo6Z2l0LXJldi1saXN0W10KIAogLS1sZWZ0LXJpZ2h0OjoKLQogCU1hcmsgd2hpY2ggc2lkZSBvZiBhIHN5bW1ldHJpYyBkaWZmIGEgY29tbWl0IGlzIHJlYWNoYWJsZSBmcm9tLgogCUNvbW1pdHMgZnJvbSB0aGUgbGVmdCBzaWRlIGFyZSBwcmVmaXhlZCB3aXRoIGA8YCBhbmQgdGhvc2UgZnJvbQogCXRoZSByaWdodCB3aXRoIGA+YC4gIElmIGNvbWJpbmVkIHdpdGggYC0tYm91bmRhcnlgLCB0aG9zZQpAQCAtNzg3LDcgKzc0MCw2IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAtLWdyYXBoOjoKLQogCURyYXcgYSB0ZXh0LWJhc2VkIGdyYXBoaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29tbWl0IGhpc3RvcnkKIAlvbiB0aGUgbGVmdCBoYW5kIHNpZGUgb2YgdGhlIG91dHB1dC4gIFRoaXMgbWF5IGNhdXNlIGV4dHJhIGxpbmVzCiAJdG8gYmUgcHJpbnRlZCBpbiBiZXR3ZWVuIGNvbW1pdHMsIGluIG9yZGVyIGZvciB0aGUgZ3JhcGggaGlzdG9yeQpAQCAtNzk1LDMxICs3NDcsMjkgQEAKICsKIFRoaXMgZW5hYmxlcyBwYXJlbnQgcmV3cml0aW5nLCBzZWUgJ0hpc3RvcnkgU2ltcGxpZmljYXRpb24nIGJlbG93LgogKwotVGhpcyBpbXBsaWVzIHRoZSAnLS10b3BvLW9yZGVyJyBvcHRpb24gYnkgZGVmYXVsdCwgYnV0IHRoZQotJy0tZGF0ZS1vcmRlcicgb3B0aW9uIG1heSBhbHNvIGJlIHNwZWNpZmllZC4KK1RoaXMgaW1wbGllcyB0aGUgYC0tdG9wby1vcmRlcmAgb3B0aW9uIGJ5IGRlZmF1bHQsIGJ1dCB0aGUKK2AtLWRhdGUtb3JkZXJgIG9wdGlvbiBtYXkgYWxzbyBiZSBzcGVjaWZpZWQuCiAKIGlmZGVmOjpnaXQtcmV2LWxpc3RbXQogLS1jb3VudDo6CiAJUHJpbnQgYSBudW1iZXIgc3RhdGluZyBob3cgbWFueSBjb21taXRzIHdvdWxkIGhhdmUgYmVlbgogCWxpc3RlZCwgYW5kIHN1cHByZXNzIGFsbCBvdGhlciBvdXRwdXQuICBXaGVuIHVzZWQgdG9nZXRoZXIKLQl3aXRoICctLWxlZnQtcmlnaHQnLCBpbnN0ZWFkIHByaW50IHRoZSBjb3VudHMgZm9yIGxlZnQgYW5kCisJd2l0aCBgLS1sZWZ0LXJpZ2h0YCwgaW5zdGVhZCBwcmludCB0aGUgY291bnRzIGZvciBsZWZ0IGFuZAogCXJpZ2h0IGNvbW1pdHMsIHNlcGFyYXRlZCBieSBhIHRhYi4gV2hlbiB1c2VkIHRvZ2V0aGVyIHdpdGgKLQknLS1jaGVycnktbWFyaycsIG9taXQgcGF0Y2ggZXF1aXZhbGVudCBjb21taXRzIGZyb20gdGhlc2UKKwlgLS1jaGVycnktbWFya2AsIG9taXQgcGF0Y2ggZXF1aXZhbGVudCBjb21taXRzIGZyb20gdGhlc2UKIAljb3VudHMgYW5kIHByaW50IHRoZSBjb3VudCBmb3IgZXF1aXZhbGVudCBjb21taXRzIHNlcGFyYXRlZAogCWJ5IGEgdGFiLgogZW5kaWY6OmdpdC1yZXYtbGlzdFtdCiAKLQogaWZuZGVmOjpnaXQtcmV2LWxpc3RbXQogRGlmZiBGb3JtYXR0aW5nCiB+fn5+fn5+fn5+fn5+fn4KIAotQmVsb3cgYXJlIGxpc3RlZCBvcHRpb25zIHRoYXQgY29udHJvbCB0aGUgZm9ybWF0dGluZyBvZiBkaWZmIG91dHB1dC4KK0xpc3RlZCBiZWxvdyBhcmUgb3B0aW9ucyB0aGF0IGNvbnRyb2wgdGhlIGZvcm1hdHRpbmcgb2YgZGlmZiBvdXRwdXQuCiBTb21lIG9mIHRoZW0gYXJlIHNwZWNpZmljIHRvIGxpbmtnaXQ6Z2l0LXJldi1saXN0WzFdLCBob3dldmVyIG90aGVyIGRpZmYKIG9wdGlvbnMgbWF5IGJlIGdpdmVuLiBTZWUgbGlua2dpdDpnaXQtZGlmZi1maWxlc1sxXSBmb3IgbW9yZSBvcHRpb25zLgogCiAtYzo6Ci0KIAlXaXRoIHRoaXMgb3B0aW9uLCBkaWZmIG91dHB1dCBmb3IgYSBtZXJnZSBjb21taXQKIAlzaG93cyB0aGUgZGlmZmVyZW5jZXMgZnJvbSBlYWNoIG9mIHRoZSBwYXJlbnRzIHRvIHRoZSBtZXJnZSByZXN1bHQKIAlzaW11bHRhbmVvdXNseSBpbnN0ZWFkIG9mIHNob3dpbmcgcGFpcndpc2UgZGlmZiBiZXR3ZWVuIGEgcGFyZW50CkBAIC04MjcsMjYgKzc3NywyMiBAQAogCXdoaWNoIHdlcmUgbW9kaWZpZWQgZnJvbSBhbGwgcGFyZW50cy4KIAogLS1jYzo6Ci0KLQlUaGlzIGZsYWcgaW1wbGllcyB0aGUgJy1jJyBvcHRpb24gYW5kIGZ1cnRoZXIgY29tcHJlc3NlcyB0aGUKKwlUaGlzIGZsYWcgaW1wbGllcyB0aGUgYC1jYCBvcHRpb24gYW5kIGZ1cnRoZXIgY29tcHJlc3NlcyB0aGUKIAlwYXRjaCBvdXRwdXQgYnkgb21pdHRpbmcgdW5pbnRlcmVzdGluZyBodW5rcyB3aG9zZSBjb250ZW50cyBpbgogCXRoZSBwYXJlbnRzIGhhdmUgb25seSB0d28gdmFyaWFudHMgYW5kIHRoZSBtZXJnZSByZXN1bHQgcGlja3MKIAlvbmUgb2YgdGhlbSB3aXRob3V0IG1vZGlmaWNhdGlvbi4KIAogLW06OgotCiAJVGhpcyBmbGFnIG1ha2VzIHRoZSBtZXJnZSBjb21taXRzIHNob3cgdGhlIGZ1bGwgZGlmZiBsaWtlCiAJcmVndWxhciBjb21taXRzOyBmb3IgZWFjaCBtZXJnZSBwYXJlbnQsIGEgc2VwYXJhdGUgbG9nIGVudHJ5CiAJYW5kIGRpZmYgaXMgZ2VuZXJhdGVkLiBBbiBleGNlcHRpb24gaXMgdGhhdCBvbmx5IGRpZmYgYWdhaW5zdAotCXRoZSBmaXJzdCBwYXJlbnQgaXMgc2hvd24gd2hlbiAnLS1maXJzdC1wYXJlbnQnIG9wdGlvbiBpcyBnaXZlbjsKKwl0aGUgZmlyc3QgcGFyZW50IGlzIHNob3duIHdoZW4gYC0tZmlyc3QtcGFyZW50YCBvcHRpb24gaXMgZ2l2ZW47CiAJaW4gdGhhdCBjYXNlLCB0aGUgb3V0cHV0IHJlcHJlc2VudHMgdGhlIGNoYW5nZXMgdGhlIG1lcmdlCiAJYnJvdWdodCBfaW50b18gdGhlIHRoZW4tY3VycmVudCBicmFuY2guCiAKIC1yOjoKLQogCVNob3cgcmVjdXJzaXZlIGRpZmZzLgogCiAtdDo6Ci0KLQlTaG93IHRoZSB0cmVlIG9iamVjdHMgaW4gdGhlIGRpZmYgb3V0cHV0LiBUaGlzIGltcGxpZXMgJy1yJy4KKwlTaG93IHRoZSB0cmVlIG9iamVjdHMgaW4gdGhlIGRpZmYgb3V0cHV0LiBUaGlzIGltcGxpZXMgYC1yYC4KIGVuZGlmOjpnaXQtcmV2LWxpc3RbXQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9yZXZpc2lvbnMudHh0IGIvRG9jdW1lbnRhdGlvbi9yZXZpc2lvbnMudHh0CmluZGV4IGQ0NzdiM2YuLjVhMjg2ZDAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vcmV2aXNpb25zLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3JldmlzaW9ucy50eHQKQEAgLTU4LDYgKzU4LDkgQEAKIFdoaWxlIHRoZSByZWYgbmFtZSBlbmNvZGluZyBpcyB1bnNwZWNpZmllZCwgVVRGLTggaXMgcHJlZmVycmVkIGFzCiBzb21lIG91dHB1dCBwcm9jZXNzaW5nIG1heSBhc3N1bWUgcmVmIG5hbWVzIGluIFVURi04LgogCisnQCc6OgorICAnQCcgYWxvbmUgaXMgYSBzaG9ydGN1dCBmb3IgJ0hFQUQnLgorCiAnPHJlZm5hbWU+QFx7PGRhdGU+XH0nLCBlLmcuICdtYXN0ZXJAXHt5ZXN0ZXJkYXlcfScsICdIRUFEQFx7NSBtaW51dGVzIGFnb1x9Jzo6CiAgIEEgcmVmIGZvbGxvd2VkIGJ5IHRoZSBzdWZmaXggJ0AnIHdpdGggYSBkYXRlIHNwZWNpZmljYXRpb24KICAgZW5jbG9zZWQgaW4gYSBicmFjZQpAQCAtODUsNyArODgsNyBAQAogICBicmFuY2ggJ2JsYWJsYScgdGhlbiAnQFx7MVx9JyBtZWFucyB0aGUgc2FtZSBhcyAnYmxhYmxhQFx7MVx9Jy4KIAogJ0Bcey08bj5cfScsIGUuZy4gJ0Bcey0xXH0nOjoKLSAgVGhlIGNvbnN0cnVjdCAnQFx7LTxuPlx9JyBtZWFucyB0aGUgPG4+dGggYnJhbmNoIGNoZWNrZWQgb3V0CisgIFRoZSBjb25zdHJ1Y3QgJ0Bcey08bj5cfScgbWVhbnMgdGhlIDxuPnRoIGJyYW5jaC9jb21taXQgY2hlY2tlZCBvdXQKICAgYmVmb3JlIHRoZSBjdXJyZW50IG9uZS4KIAogJzxicmFuY2huYW1lPkBce3Vwc3RyZWFtXH0nLCBlLmcuICdtYXN0ZXJAXHt1cHN0cmVhbVx9JywgJ0Bce3VcfSc6OgpAQCAtMTExLDE2ICsxMTQsMjMgQEAKIAogJzxyZXY+e2NhcmV0fVx7PHR5cGU+XH0nLCBlLmcuICd2MC45OS44e2NhcmV0fVx7Y29tbWl0XH0nOjoKICAgQSBzdWZmaXggJ3tjYXJldH0nIGZvbGxvd2VkIGJ5IGFuIG9iamVjdCB0eXBlIG5hbWUgZW5jbG9zZWQgaW4KLSAgYnJhY2UgcGFpciBtZWFucyB0aGUgb2JqZWN0Ci0gIGNvdWxkIGJlIGEgdGFnLCBhbmQgZGVyZWZlcmVuY2UgdGhlIHRhZyByZWN1cnNpdmVseSB1bnRpbCBhbgotICBvYmplY3Qgb2YgdGhhdCB0eXBlIGlzIGZvdW5kIG9yIHRoZSBvYmplY3QgY2Fubm90IGJlCi0gIGRlcmVmZXJlbmNlZCBhbnltb3JlIChpbiB3aGljaCBjYXNlLCBiYXJmKS4gICc8cmV2PntjYXJldH0wJworICBicmFjZSBwYWlyIG1lYW5zIGRlcmVmZXJlbmNlIHRoZSBvYmplY3QgYXQgJzxyZXY+JyByZWN1cnNpdmVseSB1bnRpbAorICBhbiBvYmplY3Qgb2YgdHlwZSAnPHR5cGU+JyBpcyBmb3VuZCBvciB0aGUgb2JqZWN0IGNhbm5vdCBiZQorICBkZXJlZmVyZW5jZWQgYW55bW9yZSAoaW4gd2hpY2ggY2FzZSwgYmFyZikuCisgIEZvciBleGFtcGxlLCBpZiAnPHJldj4nIGlzIGEgY29tbWl0LWlzaCwgJzxyZXY+e2NhcmV0fVx7Y29tbWl0XH0nCisgIGRlc2NyaWJlcyB0aGUgY29ycmVzcG9uZGluZyBjb21taXQgb2JqZWN0LgorICBTaW1pbGFybHksIGlmICc8cmV2PicgaXMgYSB0cmVlLWlzaCwgJzxyZXY+e2NhcmV0fVx7dHJlZVx9JworICBkZXNjcmliZXMgdGhlIGNvcnJlc3BvbmRpbmcgdHJlZSBvYmplY3QuCisgICc8cmV2PntjYXJldH0wJwogICBpcyBhIHNob3J0LWhhbmQgZm9yICc8cmV2PntjYXJldH1ce2NvbW1pdFx9Jy4KICsKICdyZXZ7Y2FyZXR9XHtvYmplY3RcfScgY2FuIGJlIHVzZWQgdG8gbWFrZSBzdXJlICdyZXYnIG5hbWVzIGFuCiBvYmplY3QgdGhhdCBleGlzdHMsIHdpdGhvdXQgcmVxdWlyaW5nICdyZXYnIHRvIGJlIGEgdGFnLCBhbmQKIHdpdGhvdXQgZGVyZWZlcmVuY2luZyAncmV2JzsgYmVjYXVzZSBhIHRhZyBpcyBhbHJlYWR5IGFuIG9iamVjdCwKIGl0IGRvZXMgbm90IGhhdmUgdG8gYmUgZGVyZWZlcmVuY2VkIGV2ZW4gb25jZSB0byBnZXQgdG8gYW4gb2JqZWN0LgorKworJ3JldntjYXJldH1ce3RhZ1x9JyBjYW4gYmUgdXNlZCB0byBlbnN1cmUgdGhhdCAncmV2JyBpZGVudGlmaWVzIGFuCitleGlzdGluZyB0YWcgb2JqZWN0LgogCiAnPHJldj57Y2FyZXR9XHtcfScsIGUuZy4gJ3YwLjk5Ljh7Y2FyZXR9XHtcfSc6OgogICBBIHN1ZmZpeCAne2NhcmV0fScgZm9sbG93ZWQgYnkgYW4gZW1wdHkgYnJhY2UgcGFpcgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLWJ1aWx0aW4udHh0IGIvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLWJ1aWx0aW4udHh0CmluZGV4IGYzYzEzNTcuLmUzZDZlN2EgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1idWlsdGluLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktYnVpbHRpbi50eHQKQEAgLTE0LDggKzE0LDggQEAKIAogLiBBZGQgdGhlIGV4dGVybmFsIGRlY2xhcmF0aW9uIGZvciB0aGUgZnVuY3Rpb24gdG8gYGJ1aWx0aW4uaGAuCiAKLS4gQWRkIHRoZSBjb21tYW5kIHRvIGBjb21tYW5kc1tdYCB0YWJsZSBpbiBgaGFuZGxlX2ludGVybmFsX2NvbW1hbmQoKWAsCi0gIGRlZmluZWQgaW4gYGdpdC5jYC4gIFRoZSBlbnRyeSBzaG91bGQgbG9vayBsaWtlOgorLiBBZGQgdGhlIGNvbW1hbmQgdG8gdGhlIGBjb21tYW5kc1tdYCB0YWJsZSBkZWZpbmVkIGluIGBnaXQuY2AuCisgIFRoZSBlbnRyeSBzaG91bGQgbG9vayBsaWtlOgogCiAJeyAiZm9vIiwgY21kX2ZvbywgPG9wdGlvbnM+IH0sCiArCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktZGlmZi50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktZGlmZi50eHQKaW5kZXggMmQyZWJjMC4uOGIwMDFkZSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLWRpZmYudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1kaWZmLnR4dApAQCAtMjgsNyArMjgsOCBAQAogCiAqIENhbGwgYGRpZmZfc2V0dXBfZG9uZSgpYDsgdGhpcyBpbnNwZWN0cyB0aGUgb3B0aW9ucyBzZXQgdXAgc28gZmFyIGZvcgogICBpbnRlcm5hbCBjb25zaXN0ZW5jeSBhbmQgbWFrZSBuZWNlc3NhcnkgdHdlYWtpbmcgdG8gaXQgKGUuZy4gaWYKLSAgdGV4dHVhbCBwYXRjaCBvdXRwdXQgd2FzIGFza2VkLCByZWN1cnNpdmUgYmVoYXZpb3VyIGlzIHR1cm5lZCBvbikuCisgIHRleHR1YWwgcGF0Y2ggb3V0cHV0IHdhcyBhc2tlZCwgcmVjdXJzaXZlIGJlaGF2aW91ciBpcyB0dXJuZWQgb24pOworICB0aGUgY2FsbGJhY2sgc2V0X2RlZmF1bHQgaW4gZGlmZl9vcHRpb25zIGNhbiBiZSB1c2VkIHRvIHR3ZWFrIHRoaXMgbW9yZS4KIAogKiBBcyB5b3UgZmluZCBkaWZmZXJlbnQgcGFpcnMgb2YgZmlsZXMsIGNhbGwgYGRpZmZfY2hhbmdlKClgIHRvIGZlZWQKICAgbW9kaWZpZWQgZmlsZXMsIGBkaWZmX2FkZHJlbW92ZSgpYCB0byBmZWVkIGNyZWF0ZWQgb3IgZGVsZXRlZCBmaWxlcywKQEAgLTExNSw2ICsxMTYsMTMgQEAKIAlvcGVyYXRpb24sIGJ1dCBzb21lIGRvIG5vdCBoYXZlIGFueXRoaW5nIHRvIGRvIHdpdGggdGhlIGRpZmZjb3JlCiAJbGlicmFyeS4KIAorYHRvdWNoZWRfZmxhZ3NgOjoKKwlSZWNvcmRzIHdoZXRoZXIgYSBmbGFnIGhhcyBiZWVuIGNoYW5nZWQgZHVlIHRvIHVzZXIgcmVxdWVzdAorCShyYXRoZXIgdGhhbiBqdXN0IHNldC91bnNldCBieSBkZWZhdWx0KS4KKworYHNldF9kZWZhdWx0YDo6CisJQ2FsbGJhY2sgd2hpY2ggYWxsb3dzIHR3ZWFraW5nIHRoZSBvcHRpb25zIGluIGRpZmZfc2V0dXBfZG9uZSgpLgorCiBCSU5BUlksIFRFWFQ7OwogCUFmZmVjdHMgdGhlIHdheSBob3cgYSBmaWxlIHRoYXQgaXMgc2VlbWluZ2x5IGJpbmFyeSBpcyB0cmVhdGVkLgogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktcGFyc2Utb3B0aW9ucy50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktcGFyc2Utb3B0aW9ucy50eHQKaW5kZXggMGJlMmI1MS4uYmU1MGNmNCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLXBhcnNlLW9wdGlvbnMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1wYXJzZS1vcHRpb25zLnR4dApAQCAtMjksOSArMjksOSBAQAogCiBUaGUgcGFyc2Utb3B0aW9ucyBBUEkgYWxsb3dzOgogCi0qICdzdGlja2VkJyBhbmQgJ3NlcGFyYXRlIGZvcm0nIG9mIG9wdGlvbnMgd2l0aCBhcmd1bWVudHMuCi0gIGAtb0FyZ2AgaXMgc3RpY2tlZCwgYC1vIEFyZ2AgaXMgc2VwYXJhdGUgZm9ybS4KLSAgYC0tb3B0aW9uPUFyZ2AgaXMgc3RpY2tlZCwgYC0tb3B0aW9uIEFyZ2AgaXMgc2VwYXJhdGUgZm9ybS4KKyogJ3N0dWNrJyBhbmQgJ3NlcGFyYXRlIGZvcm0nIG9mIG9wdGlvbnMgd2l0aCBhcmd1bWVudHMuCisgIGAtb0FyZ2AgaXMgc3R1Y2ssIGAtbyBBcmdgIGlzIHNlcGFyYXRlIGZvcm0uCisgIGAtLW9wdGlvbj1BcmdgIGlzIHN0dWNrLCBgLS1vcHRpb24gQXJnYCBpcyBzZXBhcmF0ZSBmb3JtLgogCiAqIExvbmcgb3B0aW9ucyBtYXkgYmUgJ2FiYnJldmlhdGVkJywgYXMgbG9uZyBhcyB0aGUgYWJicmV2aWF0aW9uCiAgIGlzIHVuYW1iaWd1b3VzLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLXJlZi1pdGVyYXRpb24udHh0IGIvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLXJlZi1pdGVyYXRpb24udHh0CmluZGV4IGFhMWM1MGYuLjAyYWRmZDQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1yZWYtaXRlcmF0aW9uLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktcmVmLWl0ZXJhdGlvbi50eHQKQEAgLTUwLDEwICs1MCwxMCBAQAogdGhpczoKIAogCWNvbnN0IGNoYXIgKnBhdGggPSAicGF0aC90by9zdWJtb2R1bGUiCi0JaWYgKCFhZGRfc3VibW9kdWxlX29kYihwYXRoKSkKKwlpZiAoYWRkX3N1Ym1vZHVsZV9vZGIocGF0aCkpCiAJCWRpZSgiRXJyb3Igc3VibW9kdWxlICclcycgbm90IHBvcHVsYXRlZC4iLCBwYXRoKTsKIAotYGFkZF9zdWJtb2R1bGVfb2RiKClgIHdpbGwgcmV0dXJuIGFuIG5vbi16ZXJvIHZhbHVlIG9uIHN1Y2Nlc3MuIElmIHlvdQorYGFkZF9zdWJtb2R1bGVfb2RiKClgIHdpbGwgcmV0dXJuIHplcm8gb24gc3VjY2Vzcy4gSWYgeW91CiBkbyBub3QgZG8gdGhpcyB5b3Ugd2lsbCBnZXQgYW4gZXJyb3IgZm9yIGVhY2ggcmVmIHRoYXQgaXQgZG9lcyBub3QgcG9pbnQKIHRvIGEgdmFsaWQgb2JqZWN0LgogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktcmVtb3RlLnR4dCBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1yZW1vdGUudHh0CmluZGV4IDRiZTg3NzYuLjVkMjQ1YWEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1yZW1vdGUudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1yZW1vdGUudHh0CkBAIC01OCwxNiArNTgsMTYgQEAKIHN0cnVjdCByZWZzcGVjCiAtLS0tLS0tLS0tLS0tLQogCi1BIHN0cnVjdCByZWZzcGVjIGhvbGRzIHRoZSBwYXJzZWQgaW50ZXJwcmV0YXRpb24gb2YgYSByZWZzcGVjLiBJZiBpdAotd2lsbCBmb3JjZSB1cGRhdGVzIChzdGFydHMgd2l0aCBhICcrJyksIGZvcmNlIGlzIHRydWUuIElmIGl0IGlzIGEKLXBhdHRlcm4gKHNpZGVzIGVuZCB3aXRoICcqJykgcGF0dGVybiBpcyB0cnVlLiBzcmMgYW5kIGRlc3QgYXJlIHRoZSB0d28KLXNpZGVzIChpZiBhIHBhdHRlcm4sIG9ubHkgdGhlIHBhcnQgb3V0c2lkZSBvZiB0aGUgd2lsZGNhcmRzKTsgaWYgdGhlcmUKLWlzIG9ubHkgb25lIHNpZGUsIGl0IGlzIHNyYywgYW5kIGRzdCBpcyBOVUxMOyBpZiBzaWRlcyBleGlzdCBidXQgYXJlCi1lbXB0eSAoaS5lLiwgdGhlIHJlZnNwZWMgZWl0aGVyIHN0YXJ0cyBvciBlbmRzIHdpdGggJzonKSwgdGhlCi1jb3JyZXNwb25kaW5nIHNpZGUgaXMgIiIuCitBIHN0cnVjdCByZWZzcGVjIGhvbGRzIHRoZSBwYXJzZWQgaW50ZXJwcmV0YXRpb24gb2YgYSByZWZzcGVjLiAgSWYgaXQKK3dpbGwgZm9yY2UgdXBkYXRlcyAoc3RhcnRzIHdpdGggYSAnKycpLCBmb3JjZSBpcyB0cnVlLiAgSWYgaXQgaXMgYQorcGF0dGVybiAoc2lkZXMgZW5kIHdpdGggJyonKSBwYXR0ZXJuIGlzIHRydWUuICBzcmMgYW5kIGRlc3QgYXJlIHRoZQordHdvIHNpZGVzIChpbmNsdWRpbmcgJyonIGNoYXJhY3RlcnMgaWYgcHJlc2VudCk7IGlmIHRoZXJlIGlzIG9ubHkgb25lCitzaWRlLCBpdCBpcyBzcmMsIGFuZCBkc3QgaXMgTlVMTDsgaWYgc2lkZXMgZXhpc3QgYnV0IGFyZSBlbXB0eSAoaS5lLiwKK3RoZSByZWZzcGVjIGVpdGhlciBzdGFydHMgb3IgZW5kcyB3aXRoICc6JyksIHRoZSBjb3JyZXNwb25kaW5nIHNpZGUgaXMKKyIiLgogCi1UaGlzIHBhcnNpbmcgY2FuIGJlIGRvbmUgdG8gYW4gYXJyYXkgb2Ygc3RyaW5ncyB0byBnaXZlIGFuIGFycmF5IG9mCi1zdHJ1Y3QgcmVmcHNlY3Mgd2l0aCBwYXJzZV9yZWZfc3BlYygpLgorQW4gYXJyYXkgb2Ygc3RyaW5ncyBjYW4gYmUgcGFyc2VkIGludG8gYW4gYXJyYXkgb2Ygc3RydWN0IHJlZnNwZWNzCit1c2luZyBwYXJzZV9mZXRjaF9yZWZzcGVjKCkgb3IgcGFyc2VfcHVzaF9yZWZzcGVjKCkuCiAKIHJlbW90ZV9maW5kX3RyYWNraW5nKCksIGdpdmVuIGEgcmVtb3RlIGFuZCBhIHN0cnVjdCByZWZzcGVjIHdpdGgKIGVpdGhlciBzcmMgb3IgZHN0IGZpbGxlZCBvdXQsIHdpbGwgZmlsbCBvdXQgdGhlIG90aGVyIHN1Y2ggdGhhdCB0aGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1zZXR1cC50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktc2V0dXAudHh0CmluZGV4IDRmNjNhMDQuLjU0MGU0NTUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1zZXR1cC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLXNldHVwLnR4dApAQCAtOCw2ICs4LDQyIEBACiAqIGlzX2luc2lkZV9naXRfZGlyKCkKICogaXNfaW5zaWRlX3dvcmtfdHJlZSgpCiAqIHNldHVwX3dvcmtfdHJlZSgpCi0qIGdldF9wYXRoc3BlYygpCiAKIChEc2NobykKKworUGF0aHNwZWMKKy0tLS0tLS0tCisKK1NlZSBnbG9zc2FyeS1jb250ZXh0LnR4dCBmb3IgdGhlIHN5bnRheCBvZiBwYXRoc3BlYy4gSW4gbWVtb3J5LCBhCitwYXRoc3BlYyBzZXQgaXMgcmVwcmVzZW50ZWQgYnkgInN0cnVjdCBwYXRoc3BlYyIgYW5kIGlzIHByZXBhcmVkIGJ5CitwYXJzZV9wYXRoc3BlYygpLiBUaGlzIGZ1bmN0aW9uIHRha2VzIHNldmVyYWwgYXJndW1lbnRzOgorCistIG1hZ2ljX21hc2sgc3BlY2lmaWVzIHdoYXQgZmVhdHVyZXMgdGhhdCBhcmUgTk9UIHN1cHBvcnRlZCBieSB0aGUKKyAgZm9sbG93aW5nIGNvZGUuIElmIGEgdXNlciBhdHRlbXB0cyB0byB1c2Ugc3VjaCBhIGZlYXR1cmUsCisgIHBhcnNlX3BhdGhzcGVjKCkgY2FuIHJlamVjdCBpdCBlYXJseS4KKworLSBmbGFncyBzcGVjaWZpZXMgb3RoZXIgdGhpbmdzIHRoYXQgdGhlIGNhbGxlciB3YW50cyBwYXJzZV9wYXRoc3BlYyB0bworICBwZXJmb3JtLgorCistIHByZWZpeCBhbmQgYXJncyBjb21lIGZyb20gY21kXyogZnVuY3Rpb25zCisKK2dldF9wYXRoc3BlYygpIGlzIG9ic29sZXRlIGFuZCBzaG91bGQgbmV2ZXIgYmUgdXNlZCBpbiBuZXcgY29kZS4KKworcGFyc2VfcGF0aHNwZWMoKSBoZWxwcyBjYXRjaCB1bnN1cHBvcnRlZCBmZWF0dXJlcyBhbmQgcmVqZWN0IHRoZW0KK3BvbGl0ZWx5LiBBdCBhIGxvd2VyIGxldmVsLCBkaWZmZXJlbnQgcGF0aHNwZWMtcmVsYXRlZCBmdW5jdGlvbnMgbWF5Citub3Qgc3VwcG9ydCB0aGUgc2FtZSBzZXQgb2YgZmVhdHVyZXMuIFN1Y2ggcGF0aHNwZWMtc2Vuc2l0aXZlCitmdW5jdGlvbnMgYXJlIGd1YXJkZWQgd2l0aCBHVUFSRF9QQVRIU1BFQygpLCB3aGljaCB3aWxsIGRpZSBpbiBhbgordW5mcmllbmRseSB3YXkgd2hlbiBhbiB1bnN1cHBvcnRlZCBmZWF0dXJlIGlzIHJlcXVlc3RlZC4KKworVGhlIGNvbW1hbmQgZGVzaWduZXJzIGFyZSBzdXBwb3NlZCB0byBtYWtlIHN1cmUgdGhhdCBHVUFSRF9QQVRIU1BFQygpCituZXZlciBkaWVzLiBUaGV5IGhhdmUgdG8gbWFrZSBzdXJlIGFsbCB1bnN1cHBvcnRlZCBmZWF0dXJlcyBhcmUgY2F1Z2h0CitieSBwYXJzZV9wYXRoc3BlYygpLCBub3QgYnkgR1VBUkRfUEFUSFNQRUMuIGdyZXBwaW5nIEdVQVJEX1BBVEhTUEVDKCkKK3Nob3VsZCBnaXZlIHRoZSBkZXNpZ25lcnMgYWxsIHBhdGhzcGVjLXNlbnNpdGl2ZSBjb2RlcGF0aHMgYW5kIHdoYXQKK2ZlYXR1cmVzIHRoZXkgc3VwcG9ydC4KKworQSBzaW1pbGFyIHByb2Nlc3MgaXMgYXBwbGllZCB3aGVuIGEgbmV3IHBhdGhzcGVjIG1hZ2ljIGlzIGFkZGVkLiBUaGUKK2Rlc2lnbmVyIGxpZnRzIHRoZSBHVUFSRF9QQVRIU1BFQyByZXN0cmljdGlvbiBpbiB0aGUgZnVuY3Rpb25zIHRoYXQKK3N1cHBvcnQgdGhlIG5ldyBtYWdpYy4gQXQgdGhlIHNhbWUgdGltZSAocyloZSBoYXMgdG8gbWFrZSBzdXJlIHRoaXMKK25ldyBmZWF0dXJlIHdpbGwgYmUgY2F1Z2h0IGF0IHBhcnNlX3BhdGhzcGVjKCkgaW4gY29tbWFuZHMgdGhhdCBjYW5ub3QKK2hhbmRsZSB0aGUgbmV3IG1hZ2ljIGluIHNvbWUgY2FzZXMuIGdyZXBwaW5nIHBhcnNlX3BhdGhzcGVjKCkgc2hvdWxkCitoZWxwLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvaHR0cC1wcm90b2NvbC50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9odHRwLXByb3RvY29sLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDQzNzNiCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvaHR0cC1wcm90b2NvbC50eHQKQEAgLTAsMCArMSw1MDYgQEAKK0hUVFAgdHJhbnNmZXIgcHJvdG9jb2xzCis9PT09PT09PT09PT09PT09PT09PT09PQorCitHaXQgc3VwcG9ydHMgdHdvIEhUVFAgYmFzZWQgdHJhbnNmZXIgcHJvdG9jb2xzLiAgQSAiZHVtYiIgcHJvdG9jb2wKK3doaWNoIHJlcXVpcmVzIG9ubHkgYSBzdGFuZGFyZCBIVFRQIHNlcnZlciBvbiB0aGUgc2VydmVyIGVuZCBvZiB0aGUKK2Nvbm5lY3Rpb24sIGFuZCBhICJzbWFydCIgcHJvdG9jb2wgd2hpY2ggcmVxdWlyZXMgYSBHaXQgYXdhcmUgQ0dJCisob3Igc2VydmVyIG1vZHVsZSkuICBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyBib3RoIHByb3RvY29scy4KKworQXMgYSBkZXNpZ24gZmVhdHVyZSBzbWFydCBjbGllbnRzIGNhbiBhdXRvbWF0aWNhbGx5IHVwZ3JhZGUgImR1bWIiCitwcm90b2NvbCBVUkxzIHRvIHNtYXJ0IFVSTHMuICBUaGlzIHBlcm1pdHMgYWxsIHVzZXJzIHRvIGhhdmUgdGhlCitzYW1lIHB1Ymxpc2hlZCBVUkwsIGFuZCB0aGUgcGVlcnMgYXV0b21hdGljYWxseSBzZWxlY3QgdGhlIG1vc3QKK2VmZmljaWVudCB0cmFuc3BvcnQgYXZhaWxhYmxlIHRvIHRoZW0uCisKKworVVJMIEZvcm1hdAorLS0tLS0tLS0tLQorCitVUkxzIGZvciBHaXQgcmVwb3NpdG9yaWVzIGFjY2Vzc2VkIGJ5IEhUVFAgdXNlIHRoZSBzdGFuZGFyZCBIVFRQCitVUkwgc3ludGF4IGRvY3VtZW50ZWQgYnkgUkZDIDE3MzgsIHNvIHRoZXkgYXJlIG9mIHRoZSBmb3JtOgorCisgIGh0dHA6Ly88aG9zdD46PHBvcnQ+LzxwYXRoPj88c2VhcmNocGFydD4KKworV2l0aGluIHRoaXMgZG9jdW1lbnRhdGlvbiB0aGUgcGxhY2Vob2xkZXIgYCRHSVRfVVJMYCB3aWxsIHN0YW5kIGZvcgordGhlIGh0dHA6Ly8gcmVwb3NpdG9yeSBVUkwgZW50ZXJlZCBieSB0aGUgZW5kLXVzZXIuCisKK1NlcnZlcnMgU0hPVUxEIGhhbmRsZSBhbGwgcmVxdWVzdHMgdG8gbG9jYXRpb25zIG1hdGNoaW5nIGAkR0lUX1VSTGAsIGFzCitib3RoIHRoZSAic21hcnQiIGFuZCAiZHVtYiIgSFRUUCBwcm90b2NvbHMgdXNlZCBieSBHaXQgb3BlcmF0ZQorYnkgYXBwZW5kaW5nIGFkZGl0aW9uYWwgcGF0aCBjb21wb25lbnRzIG9udG8gdGhlIGVuZCBvZiB0aGUgdXNlcgorc3VwcGxpZWQgYCRHSVRfVVJMYCBzdHJpbmcuCisKK0FuIGV4YW1wbGUgb2YgYSBkdW1iIGNsaWVudCByZXF1ZXN0aW5nIGZvciBhIGxvb3NlIG9iamVjdDoKKworICAkR0lUX1VSTDogICAgIGh0dHA6Ly9leGFtcGxlLmNvbTo4MDgwL2dpdC9yZXBvLmdpdAorICBVUkwgcmVxdWVzdDogIGh0dHA6Ly9leGFtcGxlLmNvbTo4MDgwL2dpdC9yZXBvLmdpdC9vYmplY3RzL2QwLzQ5ZjZjMjdhMjI0NGUxMjA0MTk1NWUyNjJhNDA0YzdmYWJhMzU1CisKK0FuIGV4YW1wbGUgb2YgYSBzbWFydCByZXF1ZXN0IHRvIGEgY2F0Y2gtYWxsIGdhdGV3YXk6CisKKyAgJEdJVF9VUkw6ICAgICBodHRwOi8vZXhhbXBsZS5jb20vZGFlbW9uLmNnaT9zdmM9Z2l0JnE9CisgIFVSTCByZXF1ZXN0OiAgaHR0cDovL2V4YW1wbGUuY29tL2RhZW1vbi5jZ2k/c3ZjPWdpdCZxPS9pbmZvL3JlZnMmc2VydmljZT1naXQtcmVjZWl2ZS1wYWNrCisKK0FuIGV4YW1wbGUgb2YgYSByZXF1ZXN0IHRvIGEgc3VibW9kdWxlOgorCisgICRHSVRfVVJMOiAgICAgaHR0cDovL2V4YW1wbGUuY29tL2dpdC9yZXBvLmdpdC9wYXRoL3N1Ym1vZHVsZS5naXQKKyAgVVJMIHJlcXVlc3Q6ICBodHRwOi8vZXhhbXBsZS5jb20vZ2l0L3JlcG8uZ2l0L3BhdGgvc3VibW9kdWxlLmdpdC9pbmZvL3JlZnMKKworQ2xpZW50cyBNVVNUIHN0cmlwIGEgdHJhaWxpbmcgYC9gLCBpZiBwcmVzZW50LCBmcm9tIHRoZSB1c2VyIHN1cHBsaWVkCitgJEdJVF9VUkxgIHN0cmluZyB0byBwcmV2ZW50IGVtcHR5IHBhdGggdG9rZW5zIChgLy9gKSBmcm9tIGFwcGVhcmluZworaW4gYW55IFVSTCBzZW50IHRvIGEgc2VydmVyLiAgQ29tcGF0aWJsZSBjbGllbnRzIE1VU1QgZXhwYW5kCitgJEdJVF9VUkwvaW5mby9yZWZzYCBhcyBgZm9vL2luZm8vcmVmc2AgYW5kIG5vdCBgZm9vLy9pbmZvL3JlZnNgLgorCisKK0F1dGhlbnRpY2F0aW9uCistLS0tLS0tLS0tLS0tLQorCitTdGFuZGFyZCBIVFRQIGF1dGhlbnRpY2F0aW9uIGlzIHVzZWQgaWYgYXV0aGVudGljYXRpb24gaXMgcmVxdWlyZWQKK3RvIGFjY2VzcyBhIHJlcG9zaXRvcnksIGFuZCBNQVkgYmUgY29uZmlndXJlZCBhbmQgZW5mb3JjZWQgYnkgdGhlCitIVFRQIHNlcnZlciBzb2Z0d2FyZS4KKworQmVjYXVzZSBHaXQgcmVwb3NpdG9yaWVzIGFyZSBhY2Nlc3NlZCBieSBzdGFuZGFyZCBwYXRoIGNvbXBvbmVudHMKK3NlcnZlciBhZG1pbmlzdHJhdG9ycyBNQVkgdXNlIGRpcmVjdG9yeSBiYXNlZCBwZXJtaXNzaW9ucyB3aXRoaW4KK3RoZWlyIEhUVFAgc2VydmVyIHRvIGNvbnRyb2wgcmVwb3NpdG9yeSBhY2Nlc3MuCisKK0NsaWVudHMgU0hPVUxEIHN1cHBvcnQgQmFzaWMgYXV0aGVudGljYXRpb24gYXMgZGVzY3JpYmVkIGJ5IFJGQyAyNjE2LgorU2VydmVycyBTSE9VTEQgc3VwcG9ydCBCYXNpYyBhdXRoZW50aWNhdGlvbiBieSByZWx5aW5nIHVwb24gdGhlCitIVFRQIHNlcnZlciBwbGFjZWQgaW4gZnJvbnQgb2YgdGhlIEdpdCBzZXJ2ZXIgc29mdHdhcmUuCisKK1NlcnZlcnMgU0hPVUxEIE5PVCByZXF1aXJlIEhUVFAgY29va2llcyBmb3IgdGhlIHB1cnBvc2VzIG9mCithdXRoZW50aWNhdGlvbiBvciBhY2Nlc3MgY29udHJvbC4KKworQ2xpZW50cyBhbmQgc2VydmVycyBNQVkgc3VwcG9ydCBvdGhlciBjb21tb24gZm9ybXMgb2YgSFRUUCBiYXNlZAorYXV0aGVudGljYXRpb24sIHN1Y2ggYXMgRGlnZXN0IGF1dGhlbnRpY2F0aW9uLgorCisKK1NTTAorLS0tCisKK0NsaWVudHMgYW5kIHNlcnZlcnMgU0hPVUxEIHN1cHBvcnQgU1NMLCBwYXJ0aWN1bGFybHkgdG8gcHJvdGVjdAorcGFzc3dvcmRzIHdoZW4gcmVseWluZyBvbiBCYXNpYyBIVFRQIGF1dGhlbnRpY2F0aW9uLgorCisKK1Nlc3Npb24gU3RhdGUKKy0tLS0tLS0tLS0tLS0KKworVGhlIEdpdCBvdmVyIEhUVFAgcHJvdG9jb2wgKG11Y2ggbGlrZSBIVFRQIGl0c2VsZikgaXMgc3RhdGVsZXNzCitmcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiB0aGUgSFRUUCBzZXJ2ZXIgc2lkZS4gIEFsbCBzdGF0ZSBNVVNUIGJlCityZXRhaW5lZCBhbmQgbWFuYWdlZCBieSB0aGUgY2xpZW50IHByb2Nlc3MuICBUaGlzIHBlcm1pdHMgc2ltcGxlCityb3VuZC1yb2JpbiBsb2FkLWJhbGFuY2luZyBvbiB0aGUgc2VydmVyIHNpZGUsIHdpdGhvdXQgbmVlZGluZyB0bword29ycnkgYWJvdXQgc3RhdGUgbWFuYWdlbWVudC4KKworQ2xpZW50cyBNVVNUIE5PVCByZXF1aXJlIHN0YXRlIG1hbmFnZW1lbnQgb24gdGhlIHNlcnZlciBzaWRlIGluCitvcmRlciB0byBmdW5jdGlvbiBjb3JyZWN0bHkuCisKK1NlcnZlcnMgTVVTVCBOT1QgcmVxdWlyZSBIVFRQIGNvb2tpZXMgaW4gb3JkZXIgdG8gZnVuY3Rpb24gY29ycmVjdGx5LgorQ2xpZW50cyBNQVkgc3RvcmUgYW5kIGZvcndhcmQgSFRUUCBjb29raWVzIGR1cmluZyByZXF1ZXN0IHByb2Nlc3NpbmcKK2FzIGRlc2NyaWJlZCBieSBSRkMgMjYxNiAoSFRUUC8xLjEpLiAgU2VydmVycyBTSE9VTEQgaWdub3JlIGFueQorY29va2llcyBzZW50IGJ5IGEgY2xpZW50LgorCisKK0dlbmVyYWwgUmVxdWVzdCBQcm9jZXNzaW5nCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitFeGNlcHQgd2hlcmUgbm90ZWQsIGFsbCBzdGFuZGFyZCBIVFRQIGJlaGF2aW9yIFNIT1VMRCBiZSBhc3N1bWVkCitieSBib3RoIGNsaWVudCBhbmQgc2VydmVyLiAgVGhpcyBpbmNsdWRlcyAoYnV0IGlzIG5vdCBuZWNlc3NhcmlseQorbGltaXRlZCB0byk6CisKK0lmIHRoZXJlIGlzIG5vIHJlcG9zaXRvcnkgYXQgYCRHSVRfVVJMYCwgb3IgdGhlIHJlc291cmNlIHBvaW50ZWQgdG8gYnkgYQorbG9jYXRpb24gbWF0Y2hpbmcgYCRHSVRfVVJMYCBkb2VzIG5vdCBleGlzdCwgdGhlIHNlcnZlciBNVVNUIE5PVCByZXNwb25kCit3aXRoIGAyMDAgT0tgIHJlc3BvbnNlLiAgQSBzZXJ2ZXIgU0hPVUxEIHJlc3BvbmQgd2l0aAorYDQwNCBOb3QgRm91bmRgLCBgNDEwIEdvbmVgLCBvciBhbnkgb3RoZXIgc3VpdGFibGUgSFRUUCBzdGF0dXMgY29kZQord2hpY2ggZG9lcyBub3QgaW1wbHkgdGhlIHJlc291cmNlIGV4aXN0cyBhcyByZXF1ZXN0ZWQuCisKK0lmIHRoZXJlIGlzIGEgcmVwb3NpdG9yeSBhdCBgJEdJVF9VUkxgLCBidXQgYWNjZXNzIGlzIG5vdCBjdXJyZW50bHkKK3Blcm1pdHRlZCwgdGhlIHNlcnZlciBNVVNUIHJlc3BvbmQgd2l0aCB0aGUgYDQwMyBGb3JiaWRkZW5gIEhUVFAKK3N0YXR1cyBjb2RlLgorCitTZXJ2ZXJzIFNIT1VMRCBzdXBwb3J0IGJvdGggSFRUUCAxLjAgYW5kIEhUVFAgMS4xLgorU2VydmVycyBTSE9VTEQgc3VwcG9ydCBjaHVua2VkIGVuY29kaW5nIGZvciBib3RoIHJlcXVlc3QgYW5kIHJlc3BvbnNlCitib2RpZXMuCisKK0NsaWVudHMgU0hPVUxEIHN1cHBvcnQgYm90aCBIVFRQIDEuMCBhbmQgSFRUUCAxLjEuCitDbGllbnRzIFNIT1VMRCBzdXBwb3J0IGNodW5rZWQgZW5jb2RpbmcgZm9yIGJvdGggcmVxdWVzdCBhbmQgcmVzcG9uc2UKK2JvZGllcy4KKworU2VydmVycyBNQVkgcmV0dXJuIEVUYWcgYW5kL29yIExhc3QtTW9kaWZpZWQgaGVhZGVycy4KKworQ2xpZW50cyBNQVkgcmV2YWxpZGF0ZSBjYWNoZWQgZW50aXRpZXMgYnkgaW5jbHVkaW5nIElmLU1vZGlmaWVkLVNpbmNlCithbmQvb3IgSWYtTm9uZS1NYXRjaCByZXF1ZXN0IGhlYWRlcnMuCisKK1NlcnZlcnMgTUFZIHJldHVybiBgMzA0IE5vdCBNb2RpZmllZGAgaWYgdGhlIHJlbGV2YW50IGhlYWRlcnMgYXBwZWFyCitpbiB0aGUgcmVxdWVzdCBhbmQgdGhlIGVudGl0eSBoYXMgbm90IGNoYW5nZWQuICBDbGllbnRzIE1VU1QgdHJlYXQKK2AzMDQgTm90IE1vZGlmaWVkYCBpZGVudGljYWwgdG8gYDIwMCBPS2AgYnkgcmV1c2luZyB0aGUgY2FjaGVkIGVudGl0eS4KKworQ2xpZW50cyBNQVkgcmV1c2UgYSBjYWNoZWQgZW50aXR5IHdpdGhvdXQgcmV2YWxpZGF0aW9uIGlmIHRoZQorQ2FjaGUtQ29udHJvbCBhbmQvb3IgRXhwaXJlcyBoZWFkZXIgcGVybWl0cyBjYWNoaW5nLiAgQ2xpZW50cyBhbmQKK3NlcnZlcnMgTVVTVCBmb2xsb3cgUkZDIDI2MTYgZm9yIGNhY2hlIGNvbnRyb2xzLgorCisKK0Rpc2NvdmVyaW5nIFJlZmVyZW5jZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQWxsIEhUVFAgY2xpZW50cyBNVVNUIGJlZ2luIGVpdGhlciBhIGZldGNoIG9yIGEgcHVzaCBleGNoYW5nZSBieQorZGlzY292ZXJpbmcgdGhlIHJlZmVyZW5jZXMgYXZhaWxhYmxlIG9uIHRoZSByZW1vdGUgcmVwb3NpdG9yeS4KKworRHVtYiBDbGllbnRzCit+fn5+fn5+fn5+fn4KKworSFRUUCBjbGllbnRzIHRoYXQgb25seSBzdXBwb3J0IHRoZSAiZHVtYiIgcHJvdG9jb2wgTVVTVCBkaXNjb3ZlcgorcmVmZXJlbmNlcyBieSBtYWtpbmcgYSByZXF1ZXN0IGZvciB0aGUgc3BlY2lhbCBpbmZvL3JlZnMgZmlsZSBvZgordGhlIHJlcG9zaXRvcnkuCisKK0R1bWIgSFRUUCBjbGllbnRzIE1VU1QgbWFrZSBhIGBHRVRgIHJlcXVlc3QgdG8gYCRHSVRfVVJML2luZm8vcmVmc2AsCit3aXRob3V0IGFueSBzZWFyY2gvcXVlcnkgcGFyYW1ldGVycy4KKworICAgQzogR0VUICRHSVRfVVJML2luZm8vcmVmcyBIVFRQLzEuMAorCisgICBTOiAyMDAgT0sKKyAgIFM6CisgICBTOiA5NWRjZmEzNjMzMDA0ZGEwMDQ5ZDNkMGZhMDNmODA1ODljYmNhZjMxCXJlZnMvaGVhZHMvbWFpbnQKKyAgIFM6IGQwNDlmNmMyN2EyMjQ0ZTEyMDQxOTU1ZTI2MmE0MDRjN2ZhYmEzNTUJcmVmcy9oZWFkcy9tYXN0ZXIKKyAgIFM6IDJjYjU4Yjc5NDg4YTk4ZDI3MjFjZWE2NDQ4NzVhOGRkMDAyNmIxMTUJcmVmcy90YWdzL3YxLjAKKyAgIFM6IGEzYzJlMjQwMmI5OTE2M2QxZDU5NzU2ZTVmMjA3YWUyMWNjY2JhNGMJcmVmcy90YWdzL3YxLjBee30KKworVGhlIENvbnRlbnQtVHlwZSBvZiB0aGUgcmV0dXJuZWQgaW5mby9yZWZzIGVudGl0eSBTSE9VTEQgYmUKK2B0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04YCwgYnV0IE1BWSBiZSBhbnkgY29udGVudCB0eXBlLgorQ2xpZW50cyBNVVNUIE5PVCBhdHRlbXB0IHRvIHZhbGlkYXRlIHRoZSByZXR1cm5lZCBDb250ZW50LVR5cGUuCitEdW1iIHNlcnZlcnMgTVVTVCBOT1QgcmV0dXJuIGEgcmV0dXJuIHR5cGUgc3RhcnRpbmcgd2l0aAorYGFwcGxpY2F0aW9uL3gtZ2l0LWAuCisKK0NhY2hlLUNvbnRyb2wgaGVhZGVycyBNQVkgYmUgcmV0dXJuZWQgdG8gZGlzYWJsZSBjYWNoaW5nIG9mIHRoZQorcmV0dXJuZWQgZW50aXR5LgorCitXaGVuIGV4YW1pbmluZyB0aGUgcmVzcG9uc2UgY2xpZW50cyBTSE9VTEQgb25seSBleGFtaW5lIHRoZSBIVFRQCitzdGF0dXMgY29kZS4gIFZhbGlkIHJlc3BvbnNlcyBhcmUgYDIwMCBPS2AsIG9yIGAzMDQgTm90IE1vZGlmaWVkYC4KKworVGhlIHJldHVybmVkIGNvbnRlbnQgaXMgYSBVTklYIGZvcm1hdHRlZCB0ZXh0IGZpbGUgZGVzY3JpYmluZworZWFjaCByZWYgYW5kIGl0cyBrbm93biB2YWx1ZS4gIFRoZSBmaWxlIFNIT1VMRCBiZSBzb3J0ZWQgYnkgbmFtZQorYWNjb3JkaW5nIHRvIHRoZSBDIGxvY2FsZSBvcmRlcmluZy4gIFRoZSBmaWxlIFNIT1VMRCBOT1QgaW5jbHVkZQordGhlIGRlZmF1bHQgcmVmIG5hbWVkIGBIRUFEYC4KKworICBpbmZvX3JlZnMgICA9ICAqKCByZWZfcmVjb3JkICkKKyAgcmVmX3JlY29yZCAgPSAgYW55X3JlZiAvIHBlZWxlZF9yZWYKKworICBhbnlfcmVmICAgICA9ICBvYmotaWQgSFRBQiByZWZuYW1lIExGCisgIHBlZWxlZF9yZWYgID0gIG9iai1pZCBIVEFCIHJlZm5hbWUgTEYKKwkJIG9iai1pZCBIVEFCIHJlZm5hbWUgIl57fSIgTEYKKworU21hcnQgQ2xpZW50cworfn5+fn5+fn5+fn5+fgorCitIVFRQIGNsaWVudHMgdGhhdCBzdXBwb3J0IHRoZSAic21hcnQiIHByb3RvY29sIChvciBib3RoIHRoZQorInNtYXJ0IiBhbmQgImR1bWIiIHByb3RvY29scykgTVVTVCBkaXNjb3ZlciByZWZlcmVuY2VzIGJ5IG1ha2luZworYSBwYXJhbWV0ZXJpemVkIHJlcXVlc3QgZm9yIHRoZSBpbmZvL3JlZnMgZmlsZSBvZiB0aGUgcmVwb3NpdG9yeS4KKworVGhlIHJlcXVlc3QgTVVTVCBjb250YWluIGV4YWN0bHkgb25lIHF1ZXJ5IHBhcmFtZXRlciwKK2BzZXJ2aWNlPSRzZXJ2aWNlbmFtZWAsIHdoZXJlIGAkc2VydmljZW5hbWVgIE1VU1QgYmUgdGhlIHNlcnZpY2UKK25hbWUgdGhlIGNsaWVudCB3aXNoZXMgdG8gY29udGFjdCB0byBjb21wbGV0ZSB0aGUgb3BlcmF0aW9uLgorVGhlIHJlcXVlc3QgTVVTVCBOT1QgY29udGFpbiBhZGRpdGlvbmFsIHF1ZXJ5IHBhcmFtZXRlcnMuCisKKyAgIEM6IEdFVCAkR0lUX1VSTC9pbmZvL3JlZnM/c2VydmljZT1naXQtdXBsb2FkLXBhY2sgSFRUUC8xLjAKKworZHVtYiBzZXJ2ZXIgcmVwbHk6CisKKyAgIFM6IDIwMCBPSworICAgUzoKKyAgIFM6IDk1ZGNmYTM2MzMwMDRkYTAwNDlkM2QwZmEwM2Y4MDU4OWNiY2FmMzEJcmVmcy9oZWFkcy9tYWludAorICAgUzogZDA0OWY2YzI3YTIyNDRlMTIwNDE5NTVlMjYyYTQwNGM3ZmFiYTM1NQlyZWZzL2hlYWRzL21hc3RlcgorICAgUzogMmNiNThiNzk0ODhhOThkMjcyMWNlYTY0NDg3NWE4ZGQwMDI2YjExNQlyZWZzL3RhZ3MvdjEuMAorICAgUzogYTNjMmUyNDAyYjk5MTYzZDFkNTk3NTZlNWYyMDdhZTIxY2NjYmE0YwlyZWZzL3RhZ3MvdjEuMF57fQorCitzbWFydCBzZXJ2ZXIgcmVwbHk6CisKKyAgIFM6IDIwMCBPSworICAgUzogQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LWdpdC11cGxvYWQtcGFjay1hZHZlcnRpc2VtZW50CisgICBTOiBDYWNoZS1Db250cm9sOiBuby1jYWNoZQorICAgUzoKKyAgIFM6IDAwMWUjIHNlcnZpY2U9Z2l0LXVwbG9hZC1wYWNrXG4KKyAgIFM6IDAwNDg5NWRjZmEzNjMzMDA0ZGEwMDQ5ZDNkMGZhMDNmODA1ODljYmNhZjMxIHJlZnMvaGVhZHMvbWFpbnRcMG11bHRpX2Fja1xuCisgICBTOiAwMDQyZDA0OWY2YzI3YTIyNDRlMTIwNDE5NTVlMjYyYTQwNGM3ZmFiYTM1NSByZWZzL2hlYWRzL21hc3RlclxuCisgICBTOiAwMDNjMmNiNThiNzk0ODhhOThkMjcyMWNlYTY0NDg3NWE4ZGQwMDI2YjExNSByZWZzL3RhZ3MvdjEuMFxuCisgICBTOiAwMDNmYTNjMmUyNDAyYjk5MTYzZDFkNTk3NTZlNWYyMDdhZTIxY2NjYmE0YyByZWZzL3RhZ3MvdjEuMF57fVxuCisKK0R1bWIgU2VydmVyIFJlc3BvbnNlCiteXl5eXl5eXl5eXl5eXl5eXl5eXgorRHVtYiBzZXJ2ZXJzIE1VU1QgcmVzcG9uZCB3aXRoIHRoZSBkdW1iIHNlcnZlciByZXBseSBmb3JtYXQuCisKK1NlZSB0aGUgcHJpb3Igc2VjdGlvbiB1bmRlciBkdW1iIGNsaWVudHMgZm9yIGEgbW9yZSBkZXRhaWxlZAorZGVzY3JpcHRpb24gb2YgdGhlIGR1bWIgc2VydmVyIHJlc3BvbnNlLgorCitTbWFydCBTZXJ2ZXIgUmVzcG9uc2UKK15eXl5eXl5eXl5eXl5eXl5eXl5eXgorSWYgdGhlIHNlcnZlciBkb2VzIG5vdCByZWNvZ25pemUgdGhlIHJlcXVlc3RlZCBzZXJ2aWNlIG5hbWUsIG9yIHRoZQorcmVxdWVzdGVkIHNlcnZpY2UgbmFtZSBoYXMgYmVlbiBkaXNhYmxlZCBieSB0aGUgc2VydmVyIGFkbWluaXN0cmF0b3IsCit0aGUgc2VydmVyIE1VU1QgcmVzcG9uZCB3aXRoIHRoZSBgNDAzIEZvcmJpZGRlbmAgSFRUUCBzdGF0dXMgY29kZS4KKworT3RoZXJ3aXNlLCBzbWFydCBzZXJ2ZXJzIE1VU1QgcmVzcG9uZCB3aXRoIHRoZSBzbWFydCBzZXJ2ZXIgcmVwbHkKK2Zvcm1hdCBmb3IgdGhlIHJlcXVlc3RlZCBzZXJ2aWNlIG5hbWUuCisKK0NhY2hlLUNvbnRyb2wgaGVhZGVycyBTSE9VTEQgYmUgdXNlZCB0byBkaXNhYmxlIGNhY2hpbmcgb2YgdGhlCityZXR1cm5lZCBlbnRpdHkuCisKK1RoZSBDb250ZW50LVR5cGUgTVVTVCBiZSBgYXBwbGljYXRpb24veC0kc2VydmljZW5hbWUtYWR2ZXJ0aXNlbWVudGAuCitDbGllbnRzIFNIT1VMRCBmYWxsIGJhY2sgdG8gdGhlIGR1bWIgcHJvdG9jb2wgaWYgYW5vdGhlciBjb250ZW50Cit0eXBlIGlzIHJldHVybmVkLiAgV2hlbiBmYWxsaW5nIGJhY2sgdG8gdGhlIGR1bWIgcHJvdG9jb2wgY2xpZW50cworU0hPVUxEIE5PVCBtYWtlIGFuIGFkZGl0aW9uYWwgcmVxdWVzdCB0byBgJEdJVF9VUkwvaW5mby9yZWZzYCwgYnV0CitpbnN0ZWFkIFNIT1VMRCB1c2UgdGhlIHJlc3BvbnNlIGFscmVhZHkgaW4gaGFuZC4gIENsaWVudHMgTVVTVCBOT1QKK2NvbnRpbnVlIGlmIHRoZXkgZG8gbm90IHN1cHBvcnQgdGhlIGR1bWIgcHJvdG9jb2wuCisKK0NsaWVudHMgTVVTVCB2YWxpZGF0ZSB0aGUgc3RhdHVzIGNvZGUgaXMgZWl0aGVyIGAyMDAgT0tgIG9yCitgMzA0IE5vdCBNb2RpZmllZGAuCisKK0NsaWVudHMgTVVTVCB2YWxpZGF0ZSB0aGUgZmlyc3QgZml2ZSBieXRlcyBvZiB0aGUgcmVzcG9uc2UgZW50aXR5CittYXRjaGVzIHRoZSByZWdleCBgXlswLTlhLWZdezR9I2AuICBJZiB0aGlzIHRlc3QgZmFpbHMsIGNsaWVudHMKK01VU1QgTk9UIGNvbnRpbnVlLgorCitDbGllbnRzIE1VU1QgcGFyc2UgdGhlIGVudGlyZSByZXNwb25zZSBhcyBhIHNlcXVlbmNlIG9mIHBrdC1saW5lCityZWNvcmRzLgorCitDbGllbnRzIE1VU1QgdmVyaWZ5IHRoZSBmaXJzdCBwa3QtbGluZSBpcyBgIyBzZXJ2aWNlPSRzZXJ2aWNlbmFtZWAuCitTZXJ2ZXJzIE1VU1Qgc2V0ICRzZXJ2aWNlbmFtZSB0byBiZSB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdmFsdWUuCitTZXJ2ZXJzIFNIT1VMRCBpbmNsdWRlIGFuIExGIGF0IHRoZSBlbmQgb2YgdGhpcyBsaW5lLgorQ2xpZW50cyBNVVNUIGlnbm9yZSBhbiBMRiBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLgorCitTZXJ2ZXJzIE1VU1QgdGVybWluYXRlIHRoZSByZXNwb25zZSB3aXRoIHRoZSBtYWdpYyBgMDAwMGAgZW5kCitwa3QtbGluZSBtYXJrZXIuCisKK1RoZSByZXR1cm5lZCByZXNwb25zZSBpcyBhIHBrdC1saW5lIHN0cmVhbSBkZXNjcmliaW5nIGVhY2ggcmVmIGFuZAoraXRzIGtub3duIHZhbHVlLiAgVGhlIHN0cmVhbSBTSE9VTEQgYmUgc29ydGVkIGJ5IG5hbWUgYWNjb3JkaW5nIHRvCit0aGUgQyBsb2NhbGUgb3JkZXJpbmcuICBUaGUgc3RyZWFtIFNIT1VMRCBpbmNsdWRlIHRoZSBkZWZhdWx0IHJlZgorbmFtZWQgYEhFQURgIGFzIHRoZSBmaXJzdCByZWYuICBUaGUgc3RyZWFtIE1VU1QgaW5jbHVkZSBjYXBhYmlsaXR5CitkZWNsYXJhdGlvbnMgYmVoaW5kIGEgTlVMIG9uIHRoZSBmaXJzdCByZWYuCisKKyAgc21hcnRfcmVwbHkgICAgID0gIFBLVC1MSU5FKCIjIHNlcnZpY2U9JHNlcnZpY2VuYW1lIiBMRikKKwkJICAgICByZWZfbGlzdAorCQkgICAgICIwMDAwIgorICByZWZfbGlzdCAgICAgICAgPSAgZW1wdHlfbGlzdCAvIG5vbl9lbXB0eV9saXN0CisKKyAgZW1wdHlfbGlzdCAgICAgID0gIFBLVC1MSU5FKHplcm8taWQgU1AgImNhcGFiaWxpdGllc157fSIgTlVMIGNhcC1saXN0IExGKQorCisgIG5vbl9lbXB0eV9saXN0ICA9ICBQS1QtTElORShvYmotaWQgU1AgbmFtZSBOVUwgY2FwX2xpc3QgTEYpCisJCSAgICAgKnJlZl9yZWNvcmQKKworICBjYXAtbGlzdCAgICAgICAgPSAgY2FwYWJpbGl0eSAqKFNQIGNhcGFiaWxpdHkpCisgIGNhcGFiaWxpdHkgICAgICA9ICAxKihMQ19BTFBIQSAvIERJR0lUIC8gIi0iIC8gIl8iKQorICBMQ19BTFBIQSAgICAgICAgPSAgJXg2MS03QQorCisgIHJlZl9yZWNvcmQgICAgICA9ICBhbnlfcmVmIC8gcGVlbGVkX3JlZgorICBhbnlfcmVmICAgICAgICAgPSAgUEtULUxJTkUob2JqLWlkIFNQIG5hbWUgTEYpCisgIHBlZWxlZF9yZWYgICAgICA9ICBQS1QtTElORShvYmotaWQgU1AgbmFtZSBMRikKKwkJICAgICBQS1QtTElORShvYmotaWQgU1AgbmFtZSAiXnt9IiBMRgorCisKK1NtYXJ0IFNlcnZpY2UgZ2l0LXVwbG9hZC1wYWNrCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RoaXMgc2VydmljZSByZWFkcyBmcm9tIHRoZSByZXBvc2l0b3J5IHBvaW50ZWQgdG8gYnkgYCRHSVRfVVJMYC4KKworQ2xpZW50cyBNVVNUIGZpcnN0IHBlcmZvcm0gcmVmIGRpc2NvdmVyeSB3aXRoCitgJEdJVF9VUkwvaW5mby9yZWZzP3NlcnZpY2U9Z2l0LXVwbG9hZC1wYWNrYC4KKworICAgQzogUE9TVCAkR0lUX1VSTC9naXQtdXBsb2FkLXBhY2sgSFRUUC8xLjAKKyAgIEM6IENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC1naXQtdXBsb2FkLXBhY2stcmVxdWVzdAorICAgQzoKKyAgIEM6IDAwMzJ3YW50IDBhNTNlOWRkZWFkZGFkNjNhZDEwNjg2MDIzN2JiZjUzNDExZDExYTdcbgorICAgQzogMDAzMmhhdmUgNDQxYjQwZDgzM2ZkZmE5M2ViMjkwOGU1Mjc0MjI0OGZhZjBlZTk5M1xuCisgICBDOiAwMDAwCisKKyAgIFM6IDIwMCBPSworICAgUzogQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LWdpdC11cGxvYWQtcGFjay1yZXN1bHQKKyAgIFM6IENhY2hlLUNvbnRyb2w6IG5vLWNhY2hlCisgICBTOgorICAgUzogLi4uLkFDSyAlcywgY29udGludWUKKyAgIFM6IC4uLi5OQUsKKworQ2xpZW50cyBNVVNUIE5PVCByZXVzZSBvciByZXZhbGlkYXRlIGEgY2FjaGVkIHJlc3BvbnNlLgorU2VydmVycyBNVVNUIGluY2x1ZGUgc3VmZmljaWVudCBDYWNoZS1Db250cm9sIGhlYWRlcnMKK3RvIHByZXZlbnQgY2FjaGluZyBvZiB0aGUgcmVzcG9uc2UuCisKK1NlcnZlcnMgU0hPVUxEIHN1cHBvcnQgYWxsIGNhcGFiaWxpdGllcyBkZWZpbmVkIGhlcmUuCisKK0NsaWVudHMgTVVTVCBzZW5kIGF0IGxlYXN0IG9uZSAid2FudCIgY29tbWFuZCBpbiB0aGUgcmVxdWVzdCBib2R5LgorQ2xpZW50cyBNVVNUIE5PVCByZWZlcmVuY2UgYW4gaWQgaW4gYSAid2FudCIgY29tbWFuZCB3aGljaCBkaWQgbm90CithcHBlYXIgaW4gdGhlIHJlc3BvbnNlIG9idGFpbmVkIHRocm91Z2ggcmVmIGRpc2NvdmVyeSB1bmxlc3MgdGhlCitzZXJ2ZXIgYWR2ZXJ0aXNlcyBjYXBhYmlsaXR5IGBhbGxvdy10aXAtc2hhMS1pbi13YW50YC4KKworICBjb21wdXRlX3JlcXVlc3QgICA9ICB3YW50X2xpc3QKKwkJICAgICAgIGhhdmVfbGlzdAorCQkgICAgICAgcmVxdWVzdF9lbmQKKyAgcmVxdWVzdF9lbmQgICAgICAgPSAgIjAwMDAiIC8gImRvbmUiCisKKyAgd2FudF9saXN0ICAgICAgICAgPSAgUEtULUxJTkUod2FudCBOVUwgY2FwX2xpc3QgTEYpCisJCSAgICAgICAqKHdhbnRfcGt0KQorICB3YW50X3BrdCAgICAgICAgICA9ICBQS1QtTElORSh3YW50IExGKQorICB3YW50ICAgICAgICAgICAgICA9ICAid2FudCIgU1AgaWQKKyAgY2FwX2xpc3QgICAgICAgICAgPSAgKihTUCBjYXBhYmlsaXR5KSBTUAorCisgIGhhdmVfbGlzdCAgICAgICAgID0gICpQS1QtTElORSgiaGF2ZSIgU1AgaWQgTEYpCisKK1RPRE86IERvY3VtZW50IHRoaXMgZnVydGhlci4KKworVGhlIE5lZ290aWF0aW9uIEFsZ29yaXRobQorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorVGhlIGNvbXB1dGF0aW9uIHRvIHNlbGVjdCB0aGUgbWluaW1hbCBwYWNrIHByb2NlZWRzIGFzIGZvbGxvd3MKKyhDID0gY2xpZW50LCBTID0gc2VydmVyKToKKworJ2luaXQgc3RlcDonCisKK0M6IFVzZSByZWYgZGlzY292ZXJ5IHRvIG9idGFpbiB0aGUgYWR2ZXJ0aXNlZCByZWZzLgorCitDOiBQbGFjZSBhbnkgb2JqZWN0IHNlZW4gaW50byBzZXQgYGFkdmVydGlzZWRgLgorCitDOiBCdWlsZCBhbiBlbXB0eSBzZXQsIGBjb21tb25gLCB0byBob2xkIHRoZSBvYmplY3RzIHRoYXQgYXJlIGxhdGVyCisgICBkZXRlcm1pbmVkIHRvIGJlIG9uIGJvdGggZW5kcy4KKworQzogQnVpbGQgYSBzZXQsIGB3YW50YCwgb2YgdGhlIG9iamVjdHMgZnJvbSBgYWR2ZXJ0aXNlZGAgdGhlIGNsaWVudAorICAgd2FudHMgdG8gZmV0Y2gsIGJhc2VkIG9uIHdoYXQgaXQgc2F3IGR1cmluZyByZWYgZGlzY292ZXJ5LgorCitDOiBTdGFydCBhIHF1ZXVlLCBgY19wZW5kaW5nYCwgb3JkZXJlZCBieSBjb21taXQgdGltZSAocG9wcGluZyBuZXdlc3QKKyAgIGZpcnN0KS4gIEFkZCBhbGwgY2xpZW50IHJlZnMuICBXaGVuIGEgY29tbWl0IGlzIHBvcHBlZCBmcm9tCisgICB0aGUgcXVldWUgaXRzIHBhcmVudHMgU0hPVUxEIGJlIGF1dG9tYXRpY2FsbHkgaW5zZXJ0ZWQgYmFjay4KKyAgIENvbW1pdHMgTVVTVCBvbmx5IGVudGVyIHRoZSBxdWV1ZSBvbmNlLgorCisnb25lIGNvbXB1dGUgc3RlcDonCisKK0M6IFNlbmQgb25lIGAkR0lUX1VSTC9naXQtdXBsb2FkLXBhY2tgIHJlcXVlc3Q6CisKKyAgIEM6IDAwMzJ3YW50IDx3YW50ICMxPi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgIEM6IDAwMzJ3YW50IDx3YW50ICMyPi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgIC4uLi4KKyAgIEM6IDAwMzJoYXZlIDxjb21tb24gIzE+Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgIEM6IDAwMzJoYXZlIDxjb21tb24gIzI+Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgIC4uLi4KKyAgIEM6IDAwMzJoYXZlIDxoYXZlICMxPi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgIEM6IDAwMzJoYXZlIDxoYXZlICMyPi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgIC4uLi4KKyAgIEM6IDAwMDAKKworVGhlIHN0cmVhbSBpcyBvcmdhbml6ZWQgaW50byAiY29tbWFuZHMiLCB3aXRoIGVhY2ggY29tbWFuZAorYXBwZWFyaW5nIGJ5IGl0c2VsZiBpbiBhIHBrdC1saW5lLiAgV2l0aGluIGEgY29tbWFuZCBsaW5lCit0aGUgdGV4dCBsZWFkaW5nIHVwIHRvIHRoZSBmaXJzdCBzcGFjZSBpcyB0aGUgY29tbWFuZCBuYW1lLAorYW5kIHRoZSByZW1haW5kZXIgb2YgdGhlIGxpbmUgdG8gdGhlIGZpcnN0IExGIGlzIHRoZSB2YWx1ZS4KK0NvbW1hbmQgbGluZXMgYXJlIHRlcm1pbmF0ZWQgd2l0aCBhbiBMRiBhcyB0aGUgbGFzdCBieXRlIG9mCit0aGUgcGt0LWxpbmUgdmFsdWUuCisKK0NvbW1hbmRzIE1VU1QgYXBwZWFyIGluIHRoZSBmb2xsb3dpbmcgb3JkZXIsIGlmIHRoZXkgYXBwZWFyCithdCBhbGwgaW4gdGhlIHJlcXVlc3Qgc3RyZWFtOgorCisqICJ3YW50IgorKiAiaGF2ZSIKKworVGhlIHN0cmVhbSBpcyB0ZXJtaW5hdGVkIGJ5IGEgcGt0LWxpbmUgZmx1c2ggKGAwMDAwYCkuCisKK0Egc2luZ2xlICJ3YW50IiBvciAiaGF2ZSIgY29tbWFuZCBNVVNUIGhhdmUgb25lIGhleCBmb3JtYXR0ZWQKK1NIQS0xIGFzIGl0cyB2YWx1ZS4gIE11bHRpcGxlIFNIQS0xcyBNVVNUIGJlIHNlbnQgYnkgc2VuZGluZworbXVsdGlwbGUgY29tbWFuZHMuCisKK1RoZSBgaGF2ZWAgbGlzdCBpcyBjcmVhdGVkIGJ5IHBvcHBpbmcgdGhlIGZpcnN0IDMyIGNvbW1pdHMKK2Zyb20gYGNfcGVuZGluZ2AuICBMZXNzIGNhbiBiZSBzdXBwbGllZCBpZiBgY19wZW5kaW5nYCBlbXB0aWVzLgorCitJZiB0aGUgY2xpZW50IGhhcyBzZW50IDI1NiAiaGF2ZSIgY29tbWl0cyBhbmQgaGFzIG5vdCB5ZXQKK3JlY2VpdmVkIG9uZSBvZiB0aG9zZSBiYWNrIGZyb20gYHNfY29tbW9uYCwgb3IgdGhlIGNsaWVudCBoYXMKK2VtcHRpZWQgYGNfcGVuZGluZ2AgaXQgU0hPVUxEIGluY2x1ZGUgYSAiZG9uZSIgY29tbWFuZCB0byBsZXQKK3RoZSBzZXJ2ZXIga25vdyBpdCB3b24ndCBwcm9jZWVkOgorCisgICBDOiAwMDA5ZG9uZQorCitTOiBQYXJzZSB0aGUgZ2l0LXVwbG9hZC1wYWNrIHJlcXVlc3Q6CisKK1ZlcmlmeSBhbGwgb2JqZWN0cyBpbiBgd2FudGAgYXJlIGRpcmVjdGx5IHJlYWNoYWJsZSBmcm9tIHJlZnMuCisKK1RoZSBzZXJ2ZXIgTUFZIHdhbGsgYmFja3dhcmRzIHRocm91Z2ggaGlzdG9yeSBvciB0aHJvdWdoCit0aGUgcmVmbG9nIHRvIHBlcm1pdCBzbGlnaHRseSBzdGFsZSByZXF1ZXN0cy4KKworSWYgbm8gIndhbnQiIG9iamVjdHMgYXJlIHJlY2VpdmVkLCBzZW5kIGFuIGVycm9yOgorVE9ETzogRGVmaW5lIGVycm9yIGlmIG5vICJ3YW50IiBsaW5lcyBhcmUgcmVxdWVzdGVkLgorCitJZiBhbnkgIndhbnQiIG9iamVjdCBpcyBub3QgcmVhY2hhYmxlLCBzZW5kIGFuIGVycm9yOgorVE9ETzogRGVmaW5lIGVycm9yIGlmIGFuIGludmFsaWQgIndhbnQiIGlzIHJlcXVlc3RlZC4KKworQ3JlYXRlIGFuIGVtcHR5IGxpc3QsIGBzX2NvbW1vbmAuCisKK0lmICJoYXZlIiB3YXMgc2VudDoKKworTG9vcCB0aHJvdWdoIHRoZSBvYmplY3RzIGluIHRoZSBvcmRlciBzdXBwbGllZCBieSB0aGUgY2xpZW50LgorCitGb3IgZWFjaCBvYmplY3QsIGlmIHRoZSBzZXJ2ZXIgaGFzIHRoZSBvYmplY3QgcmVhY2hhYmxlIGZyb20KK2EgcmVmLCBhZGQgaXQgdG8gYHNfY29tbW9uYC4gIElmIGEgY29tbWl0IGlzIGFkZGVkIHRvIGBzX2NvbW1vbmAsCitkbyBub3QgYWRkIGFueSBhbmNlc3RvcnMsIGV2ZW4gaWYgdGhleSBhbHNvIGFwcGVhciBpbiBgaGF2ZWAuCisKK1M6IFNlbmQgdGhlIGdpdC11cGxvYWQtcGFjayByZXNwb25zZToKKworSWYgdGhlIHNlcnZlciBoYXMgZm91bmQgYSBjbG9zZWQgc2V0IG9mIG9iamVjdHMgdG8gcGFjayBvciB0aGUKK3JlcXVlc3QgZW5kcyB3aXRoICJkb25lIiwgaXQgcmVwbGllcyB3aXRoIHRoZSBwYWNrLgorVE9ETzogRG9jdW1lbnQgdGhlIHBhY2sgYmFzZWQgcmVzcG9uc2UKKworICAgUzogUEFDSy4uLgorCitUaGUgcmV0dXJuZWQgc3RyZWFtIGlzIHRoZSBzaWRlLWJhbmQtNjRrIHByb3RvY29sIHN1cHBvcnRlZAorYnkgdGhlIGdpdC11cGxvYWQtcGFjayBzZXJ2aWNlLCBhbmQgdGhlIHBhY2sgaXMgZW1iZWRkZWQgaW50bworc3RyZWFtIDEuICBQcm9ncmVzcyBtZXNzYWdlcyBmcm9tIHRoZSBzZXJ2ZXIgc2lkZSBNQVkgYXBwZWFyCitpbiBzdHJlYW0gMi4KKworSGVyZSBhICJjbG9zZWQgc2V0IG9mIG9iamVjdHMiIGlzIGRlZmluZWQgdG8gaGF2ZSBhdCBsZWFzdAorb25lIHBhdGggZnJvbSBldmVyeSAid2FudCIgdG8gYXQgbGVhc3Qgb25lICJjb21tb24iIG9iamVjdC4KKworSWYgdGhlIHNlcnZlciBuZWVkcyBtb3JlIGluZm9ybWF0aW9uLCBpdCByZXBsaWVzIHdpdGggYQorc3RhdHVzIGNvbnRpbnVlIHJlc3BvbnNlOgorVE9ETzogRG9jdW1lbnQgdGhlIG5vbi1wYWNrIHJlc3BvbnNlCisKK0M6IFBhcnNlIHRoZSB1cGxvYWQtcGFjayByZXNwb25zZToKKyAgIFRPRE86IERvY3VtZW50IHBhcnNpbmcgcmVzcG9uc2UKKworJ0RvIGFub3RoZXIgY29tcHV0ZSBzdGVwLicKKworCitTbWFydCBTZXJ2aWNlIGdpdC1yZWNlaXZlLXBhY2sKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVGhpcyBzZXJ2aWNlIHJlYWRzIGZyb20gdGhlIHJlcG9zaXRvcnkgcG9pbnRlZCB0byBieSBgJEdJVF9VUkxgLgorCitDbGllbnRzIE1VU1QgZmlyc3QgcGVyZm9ybSByZWYgZGlzY292ZXJ5IHdpdGgKK2AkR0lUX1VSTC9pbmZvL3JlZnM/c2VydmljZT1naXQtcmVjZWl2ZS1wYWNrYC4KKworICAgQzogUE9TVCAkR0lUX1VSTC9naXQtcmVjZWl2ZS1wYWNrIEhUVFAvMS4wCisgICBDOiBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtZ2l0LXJlY2VpdmUtcGFjay1yZXF1ZXN0CisgICBDOgorICAgQzogLi4uLjBhNTNlOWRkZWFkZGFkNjNhZDEwNjg2MDIzN2JiZjUzNDExZDExYTcgNDQxYjQwZDgzM2ZkZmE5M2ViMjkwOGU1Mjc0MjI0OGZhZjBlZTk5MyByZWZzL2hlYWRzL21haW50XDAgcmVwb3J0LXN0YXR1cworICAgQzogMDAwMAorICAgQzogUEFDSy4uLi4KKworICAgUzogMjAwIE9LCisgICBTOiBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtZ2l0LXJlY2VpdmUtcGFjay1yZXN1bHQKKyAgIFM6IENhY2hlLUNvbnRyb2w6IG5vLWNhY2hlCisgICBTOgorICAgUzogLi4uLgorCitDbGllbnRzIE1VU1QgTk9UIHJldXNlIG9yIHJldmFsaWRhdGUgYSBjYWNoZWQgcmVzcG9uc2UuCitTZXJ2ZXJzIE1VU1QgaW5jbHVkZSBzdWZmaWNpZW50IENhY2hlLUNvbnRyb2wgaGVhZGVycwordG8gcHJldmVudCBjYWNoaW5nIG9mIHRoZSByZXNwb25zZS4KKworU2VydmVycyBTSE9VTEQgc3VwcG9ydCBhbGwgY2FwYWJpbGl0aWVzIGRlZmluZWQgaGVyZS4KKworQ2xpZW50cyBNVVNUIHNlbmQgYXQgbGVhc3Qgb25lIGNvbW1hbmQgaW4gdGhlIHJlcXVlc3QgYm9keS4KK1dpdGhpbiB0aGUgY29tbWFuZCBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IGJvZHkgY2xpZW50cyBTSE9VTEQgc2VuZAordGhlIGlkIG9idGFpbmVkIHRocm91Z2ggcmVmIGRpc2NvdmVyeSBhcyBvbGRfaWQuCisKKyAgdXBkYXRlX3JlcXVlc3QgID0gIGNvbW1hbmRfbGlzdAorCQkgICAgICJQQUNLIiA8YmluYXJ5IGRhdGE+CisKKyAgY29tbWFuZF9saXN0ICAgID0gIFBLVC1MSU5FKGNvbW1hbmQgTlVMIGNhcF9saXN0IExGKQorCQkgICAgICooY29tbWFuZF9wa3QpCisgIGNvbW1hbmRfcGt0ICAgICA9ICBQS1QtTElORShjb21tYW5kIExGKQorICBjYXBfbGlzdCAgICAgICAgPSAgKihTUCBjYXBhYmlsaXR5KSBTUAorCisgIGNvbW1hbmQgICAgICAgICA9ICBjcmVhdGUgLyBkZWxldGUgLyB1cGRhdGUKKyAgY3JlYXRlICAgICAgICAgID0gIHplcm8taWQgU1AgbmV3X2lkIFNQIG5hbWUKKyAgZGVsZXRlICAgICAgICAgID0gIG9sZF9pZCBTUCB6ZXJvLWlkIFNQIG5hbWUKKyAgdXBkYXRlICAgICAgICAgID0gIG9sZF9pZCBTUCBuZXdfaWQgU1AgbmFtZQorCitUT0RPOiBEb2N1bWVudCB0aGlzIGZ1cnRoZXIuCisKKworUmVmZXJlbmNlcworLS0tLS0tLS0tLQorCitsaW5rOmh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzE3MzgudHh0W1JGQyAxNzM4OiBVbmlmb3JtIFJlc291cmNlIExvY2F0b3JzIChVUkwpXQorbGluazpodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyNjE2LnR4dFtSRkMgMjYxNjogSHlwZXJ0ZXh0IFRyYW5zZmVyIFByb3RvY29sIC0tIEhUVFAvMS4xXQorbGluazp0ZWNobmljYWwvcGFjay1wcm90b2NvbC5odG1sCitsaW5rOnRlY2huaWNhbC9wcm90b2NvbC1jYXBhYmlsaXRpZXMuaHRtbApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvcGFjay1oZXVyaXN0aWNzLnR4dCBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL3BhY2staGV1cmlzdGljcy50eHQKaW5kZXggOGI3YWUxYy4uOTVhMDdkYiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvcGFjay1oZXVyaXN0aWNzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wYWNrLWhldXJpc3RpY3MudHh0CkBAIC0xLDUgKzEsNSBAQAotICAgICAgICBDb25jZXJuaW5nIEdpdCdzIFBhY2tpbmcgSGV1cmlzdGljcwotICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQ29uY2VybmluZyBHaXQncyBQYWNraW5nIEhldXJpc3RpY3MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKICAgICAgICAgT2gsIGhlcmUncyBhIHJlYWxseSBzdHVwaWQgcXVlc3Rpb246CiAKQEAgLTM2NiwxMiArMzY2LDYgQEAKIAogICAgIDxsaW51cz4gWWVzLCB3ZSBhbHdheXMgd3JpdGUgb3V0IG1vc3QgcmVjZW50IGZpcnN0CiAKLUZvciB0aGUgb3RoZXIgcmVjb3JkOgotCi0gICAgPHBhc2t5PiBuanNgOiBodHRwOi8vcGFzdGViaW4uY29tLzU0Nzk2NQotCi1UaGUgJ25ldCBuZXZlciBmb3JnZXRzLCBzbyB0aGF0IHNob3VsZCBiZSBnb29kIHVudGlsIHRoZSBlbmQgb2YgdGltZS4KLQogICAgIDxuanNgPiBBbmQsIHllYWgsIEkgZ290IHRoZSBwYXJ0IGFib3V0IGRlZXBlci1pbi1oaXN0b3J5IHN0dWZmCiAgICAgICAgIGhhdmluZyB3b3JzZSBJTyBjaGFyYWN0ZXJpc3RpY3MsIG9uZSBzb3J0IG9mIGRvZXNuJ3QgY2FyZS4KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvcGFjay1wcm90b2NvbC50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wYWNrLXByb3RvY29sLnR4dAppbmRleCBiODk4ZTk3Li5jNzNiNjJmIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wYWNrLXByb3RvY29sLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wYWNrLXByb3RvY29sLnR4dApAQCAtMTYxLDYgKzE2MSw3IEBACiAKIC0tLS0KICAgYWR2ZXJ0aXNlZC1yZWZzICA9ICAobm8tcmVmcyAvIGxpc3Qtb2YtcmVmcykKKwkJICAgICAgKnNoYWxsb3cKIAkJICAgICAgZmx1c2gtcGt0CiAKICAgbm8tcmVmcyAgICAgICAgICA9ICBQS1QtTElORSh6ZXJvLWlkIFNQICJjYXBhYmlsaXRpZXNee30iCkBAIC0xNzQsNiArMTc1LDggQEAKICAgb3RoZXItdGlwICAgICAgICA9ICBvYmotaWQgU1AgcmVmbmFtZSBMRgogICBvdGhlci1wZWVsZWQgICAgID0gIG9iai1pZCBTUCByZWZuYW1lICJee30iIExGCiAKKyAgc2hhbGxvdyAgICAgICAgICA9ICBQS1QtTElORSgic2hhbGxvdyIgU1Agb2JqLWlkKQorCiAgIGNhcGFiaWxpdHktbGlzdCAgPSAgY2FwYWJpbGl0eSAqKFNQIGNhcGFiaWxpdHkpCiAgIGNhcGFiaWxpdHkgICAgICAgPSAgMSooTENfQUxQSEEgLyBESUdJVCAvICItIiAvICJfIikKICAgTENfQUxQSEEgICAgICAgICA9ICAleDYxLTdBCkBAIC00NjEsNyArNDY0LDkgQEAKIHJlZmVyZW5jZXMuCiAKIC0tLS0KLSAgdXBkYXRlLXJlcXVlc3QgICAgPSAgY29tbWFuZC1saXN0IFtwYWNrLWZpbGVdCisgIHVwZGF0ZS1yZXF1ZXN0ICAgID0gICpzaGFsbG93IGNvbW1hbmQtbGlzdCBbcGFjay1maWxlXQorCisgIHNoYWxsb3cgICAgICAgICAgID0gIFBLVC1MSU5FKCJzaGFsbG93IiBTUCBvYmotaWQpCiAKICAgY29tbWFuZC1saXN0ICAgICAgPSAgUEtULUxJTkUoY29tbWFuZCBOVUwgY2FwYWJpbGl0eS1saXN0IExGKQogCQkgICAgICAgKlBLVC1MSU5FKGNvbW1hbmQgTEYpCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wcm90b2NvbC1jYXBhYmlsaXRpZXMudHh0IGIvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvcHJvdG9jb2wtY2FwYWJpbGl0aWVzLnR4dAppbmRleCBmZDhmZmE1Li5lM2U3OTI0IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wcm90b2NvbC1jYXBhYmlsaXRpZXMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL3Byb3RvY29sLWNhcGFiaWxpdGllcy50eHQKQEAgLTcyLDE0ICs3MiwyOSBAQAogdGhpbi1wYWNrCiAtLS0tLS0tLS0KIAotVGhpcyBjYXBhYmlsaXR5IG1lYW5zIHRoYXQgdGhlIHNlcnZlciBjYW4gc2VuZCBhICd0aGluJyBwYWNrLCBhIHBhY2sKLXdoaWNoIGRvZXMgbm90IGNvbnRhaW4gYmFzZSBvYmplY3RzOyBpZiB0aG9zZSBiYXNlIG9iamVjdHMgYXJlIGF2YWlsYWJsZQotb24gY2xpZW50IHNpZGUuIENsaWVudCByZXF1ZXN0cyAndGhpbi1wYWNrJyBjYXBhYmlsaXR5IHdoZW4gaXQKLXVuZGVyc3RhbmRzIGhvdyB0byAidGhpY2tlbiIgaXQgYnkgYWRkaW5nIHJlcXVpcmVkIGRlbHRhIGJhc2VzIG1ha2luZwotaXQgc2VsZi1jb250YWluZWQuCitBIHRoaW4gcGFjayBpcyBvbmUgd2l0aCBkZWx0YXMgd2hpY2ggcmVmZXJlbmNlIGJhc2Ugb2JqZWN0cyBub3QKK2NvbnRhaW5lZCB3aXRoaW4gdGhlIHBhY2sgKGJ1dCBhcmUga25vd24gdG8gZXhpc3QgYXQgdGhlIHJlY2VpdmluZworZW5kKS4gVGhpcyBjYW4gcmVkdWNlIHRoZSBuZXR3b3JrIHRyYWZmaWMgc2lnbmlmaWNhbnRseSwgYnV0IGl0CityZXF1aXJlcyB0aGUgcmVjZWl2aW5nIGVuZCB0byBrbm93IGhvdyB0byAidGhpY2tlbiIgdGhlc2UgcGFja3MgYnkKK2FkZGluZyB0aGUgbWlzc2luZyBiYXNlcyB0byB0aGUgcGFjay4KIAotQ2xpZW50IE1VU1QgTk9UIHJlcXVlc3QgJ3RoaW4tcGFjaycgY2FwYWJpbGl0eSBpZiBpdCBjYW5ub3QgdHVybiBhIHRoaW4KLXBhY2sgaW50byBhIHNlbGYtY29udGFpbmVkIHBhY2suCitUaGUgdXBsb2FkLXBhY2sgc2VydmVyIGFkdmVydGlzZXMgJ3RoaW4tcGFjaycgd2hlbiBpdCBjYW4gZ2VuZXJhdGUKK2FuZCBzZW5kIGEgdGhpbiBwYWNrLiBBIGNsaWVudCByZXF1ZXN0cyB0aGUgJ3RoaW4tcGFjaycgY2FwYWJpbGl0eQord2hlbiBpdCB1bmRlcnN0YW5kcyBob3cgdG8gInRoaWNrZW4iIGl0LCBub3RpZnlpbmcgdGhlIHNlcnZlciB0aGF0CitpdCBjYW4gcmVjZWl2ZSBzdWNoIGEgcGFjay4gQSBjbGllbnQgTVVTVCBOT1QgcmVxdWVzdCB0aGUKKyd0aGluLXBhY2snIGNhcGFiaWxpdHkgaWYgaXQgY2Fubm90IHR1cm4gYSB0aGluIHBhY2sgaW50byBhCitzZWxmLWNvbnRhaW5lZCBwYWNrLgorCitSZWNlaXZlLXBhY2ssIG9uIHRoZSBvdGhlciBoYW5kLCBpcyBhc3N1bWVkIGJ5IGRlZmF1bHQgdG8gYmUgYWJsZSB0bworaGFuZGxlIHRoaW4gcGFja3MsIGJ1dCBjYW4gYXNrIHRoZSBjbGllbnQgbm90IHRvIHVzZSB0aGUgZmVhdHVyZSBieQorYWR2ZXJ0aXNpbmcgdGhlICduby10aGluJyBjYXBhYmlsaXR5LiBBIGNsaWVudCBNVVNUIE5PVCBzZW5kIGEgdGhpbgorcGFjayBpZiB0aGUgc2VydmVyIGFkdmVydGlzZXMgdGhlICduby10aGluJyBjYXBhYmlsaXR5LgorCitUaGUgcmVhc29ucyBmb3IgdGhpcyBhc3ltbWV0cnkgYXJlIGhpc3RvcmljYWwuIFRoZSByZWNlaXZlLXBhY2sKK3Byb2dyYW0gZGlkIG5vdCBleGlzdCB1bnRpbCBhZnRlciB0aGUgaW52ZW50aW9uIG9mIHRoaW4gcGFja3MsIHNvCitoaXN0b3JpY2FsbHkgdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZiByZWNlaXZlLXBhY2sgYWx3YXlzCit1bmRlcnN0b29kIHRoaW4gcGFja3MuIEFkZGluZyAnbm8tdGhpbicgbGF0ZXIgYWxsb3dlZCByZWNlaXZlLXBhY2sKK3RvIGRpc2FibGUgdGhlIGZlYXR1cmUgaW4gYSBiYWNrd2FyZHMtY29tcGF0aWJsZSBtYW5uZXIuCiAKIAogc2lkZS1iYW5kLCBzaWRlLWJhbmQtNjRrCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3VzZXItbWFudWFsLnR4dCBiL0RvY3VtZW50YXRpb24vdXNlci1tYW51YWwudHh0CmluZGV4IGZlNzIzZTQuLjI0OGRjYWIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdXNlci1tYW51YWwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdXNlci1tYW51YWwudHh0CkBAIC0xLDYgKzEsNSBAQAotR2l0IFVzZXIncyBNYW51YWwgKGZvciB2ZXJzaW9uIDEuNS4zIG9yIG5ld2VyKQotX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwotCitHaXQgVXNlciBNYW51YWwKKz09PT09PT09PT09PT09PQogCiBHaXQgaXMgYSBmYXN0IGRpc3RyaWJ1dGVkIHJldmlzaW9uIGNvbnRyb2wgc3lzdGVtLgogCkBAIC0yMjAsNyArMjE5LDcgQEAKIAogVGhlIGJlc3Qgd2F5IHRvIHNlZSBob3cgdGhpcyB3b3JrcyBpcyB1c2luZyB0aGUgbGlua2dpdDpnaXRrWzFdCiBjb21tYW5kOyBydW5uaW5nIGdpdGsgbm93IG9uIGEgR2l0IHJlcG9zaXRvcnkgYW5kIGxvb2tpbmcgZm9yIG1lcmdlCi1jb21taXRzIHdpbGwgaGVscCB1bmRlcnN0YW5kIGhvdyB0aGUgR2l0IG9yZ2FuaXplcyBoaXN0b3J5LgorY29tbWl0cyB3aWxsIGhlbHAgdW5kZXJzdGFuZCBob3cgR2l0IG9yZ2FuaXplcyBoaXN0b3J5LgogCiBJbiB0aGUgZm9sbG93aW5nLCB3ZSBzYXkgdGhhdCBjb21taXQgWCBpcyAicmVhY2hhYmxlIiBmcm9tIGNvbW1pdCBZCiBpZiBjb21taXQgWCBpcyBhbiBhbmNlc3RvciBvZiBjb21taXQgWS4gIEVxdWl2YWxlbnRseSwgeW91IGNvdWxkIHNheQpAQCAtMjY5LDI3ICsyNjgsMjMgQEAKIGEgc3VtbWFyeSBvZiB0aGUgY29tbWFuZHM6CiAKIGBnaXQgYnJhbmNoYDo6Ci0JbGlzdCBhbGwgYnJhbmNoZXMKKwlsaXN0IGFsbCBicmFuY2hlcy4KIGBnaXQgYnJhbmNoIDxicmFuY2g+YDo6CiAJY3JlYXRlIGEgbmV3IGJyYW5jaCBuYW1lZCBgPGJyYW5jaD5gLCByZWZlcmVuY2luZyB0aGUgc2FtZQotCXBvaW50IGluIGhpc3RvcnkgYXMgdGhlIGN1cnJlbnQgYnJhbmNoCisJcG9pbnQgaW4gaGlzdG9yeSBhcyB0aGUgY3VycmVudCBicmFuY2guCiBgZ2l0IGJyYW5jaCA8YnJhbmNoPiA8c3RhcnQtcG9pbnQ+YDo6CiAJY3JlYXRlIGEgbmV3IGJyYW5jaCBuYW1lZCBgPGJyYW5jaD5gLCByZWZlcmVuY2luZwogCWA8c3RhcnQtcG9pbnQ+YCwgd2hpY2ggbWF5IGJlIHNwZWNpZmllZCBhbnkgd2F5IHlvdSBsaWtlLAotCWluY2x1ZGluZyB1c2luZyBhIGJyYW5jaCBuYW1lIG9yIGEgdGFnIG5hbWUKKwlpbmNsdWRpbmcgdXNpbmcgYSBicmFuY2ggbmFtZSBvciBhIHRhZyBuYW1lLgogYGdpdCBicmFuY2ggLWQgPGJyYW5jaD5gOjoKLQlkZWxldGUgdGhlIGJyYW5jaCBgPGJyYW5jaD5gOyBpZiB0aGUgYnJhbmNoIHlvdSBhcmUgZGVsZXRpbmcKLQlwb2ludHMgdG8gYSBjb21taXQgd2hpY2ggaXMgbm90IHJlYWNoYWJsZSBmcm9tIHRoZSBjdXJyZW50Ci0JYnJhbmNoLCB0aGlzIGNvbW1hbmQgd2lsbCBmYWlsIHdpdGggYSB3YXJuaW5nLgorCWRlbGV0ZSB0aGUgYnJhbmNoIGA8YnJhbmNoPmA7IGlmIHRoZSBicmFuY2ggaXMgbm90IGZ1bGx5CisJbWVyZ2VkIGluIGl0cyB1cHN0cmVhbSBicmFuY2ggb3IgY29udGFpbmVkIGluIHRoZSBjdXJyZW50IGJyYW5jaCwKKwl0aGlzIGNvbW1hbmQgd2lsbCBmYWlsIHdpdGggYSB3YXJuaW5nLgogYGdpdCBicmFuY2ggLUQgPGJyYW5jaD5gOjoKLQlldmVuIGlmIHRoZSBicmFuY2ggcG9pbnRzIHRvIGEgY29tbWl0IG5vdCByZWFjaGFibGUKLQlmcm9tIHRoZSBjdXJyZW50IGJyYW5jaCwgeW91IG1heSBrbm93IHRoYXQgdGhhdCBjb21taXQKLQlpcyBzdGlsbCByZWFjaGFibGUgZnJvbSBzb21lIG90aGVyIGJyYW5jaCBvciB0YWcuICBJbiB0aGF0Ci0JY2FzZSBpdCBpcyBzYWZlIHRvIHVzZSB0aGlzIGNvbW1hbmQgdG8gZm9yY2UgR2l0IHRvIGRlbGV0ZQotCXRoZSBicmFuY2guCisJZGVsZXRlIHRoZSBicmFuY2ggYDxicmFuY2g+YCBpcnJlc3BlY3RpdmUgb2YgaXRzIG1lcmdlZCBzdGF0dXMuCiBgZ2l0IGNoZWNrb3V0IDxicmFuY2g+YDo6CiAJbWFrZSB0aGUgY3VycmVudCBicmFuY2ggYDxicmFuY2g+YCwgdXBkYXRpbmcgdGhlIHdvcmtpbmcKLQlkaXJlY3RvcnkgdG8gcmVmbGVjdCB0aGUgdmVyc2lvbiByZWZlcmVuY2VkIGJ5IGA8YnJhbmNoPmAKKwlkaXJlY3RvcnkgdG8gcmVmbGVjdCB0aGUgdmVyc2lvbiByZWZlcmVuY2VkIGJ5IGA8YnJhbmNoPmAuCiBgZ2l0IGNoZWNrb3V0IC1iIDxuZXc+IDxzdGFydC1wb2ludD5gOjoKIAljcmVhdGUgYSBuZXcgYnJhbmNoIGA8bmV3PmAgcmVmZXJlbmNpbmcgYDxzdGFydC1wb2ludD5gLCBhbmQKIAljaGVjayBpdCBvdXQuCkBAIC0zMTMsMTAgKzMwOCwxNyBAQAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICQgZ2l0IGNoZWNrb3V0IHYyLjYuMTcKLU5vdGU6IG1vdmluZyB0byAidjIuNi4xNyIgd2hpY2ggaXNuJ3QgYSBsb2NhbCBicmFuY2gKLUlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhIG5ldyBicmFuY2ggZnJvbSB0aGlzIGNoZWNrb3V0LCB5b3UgbWF5IGRvIHNvCi0obm93IG9yIGxhdGVyKSBieSB1c2luZyAtYiB3aXRoIHRoZSBjaGVja291dCBjb21tYW5kIGFnYWluLiBFeGFtcGxlOgotICBnaXQgY2hlY2tvdXQgLWIgPG5ld19icmFuY2hfbmFtZT4KK05vdGU6IGNoZWNraW5nIG91dCAndjIuNi4xNycuCisKK1lvdSBhcmUgaW4gJ2RldGFjaGVkIEhFQUQnIHN0YXRlLiBZb3UgY2FuIGxvb2sgYXJvdW5kLCBtYWtlIGV4cGVyaW1lbnRhbAorY2hhbmdlcyBhbmQgY29tbWl0IHRoZW0sIGFuZCB5b3UgY2FuIGRpc2NhcmQgYW55IGNvbW1pdHMgeW91IG1ha2UgaW4gdGhpcworc3RhdGUgd2l0aG91dCBpbXBhY3RpbmcgYW55IGJyYW5jaGVzIGJ5IHBlcmZvcm1pbmcgYW5vdGhlciBjaGVja291dC4KKworSWYgeW91IHdhbnQgdG8gY3JlYXRlIGEgbmV3IGJyYW5jaCB0byByZXRhaW4gY29tbWl0cyB5b3UgY3JlYXRlLCB5b3UgbWF5CitkbyBzbyAobm93IG9yIGxhdGVyKSBieSB1c2luZyAtYiB3aXRoIHRoZSBjaGVja291dCBjb21tYW5kIGFnYWluLiBFeGFtcGxlOgorCisgIGdpdCBjaGVja291dCAtYiBuZXdfYnJhbmNoX25hbWUKKwogSEVBRCBpcyBub3cgYXQgNDI3YWJmYS4uLiBMaW51eCB2Mi42LjE3CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtMzI3LDcgKzMyOSw3IEBACiAkIGNhdCAuZ2l0L0hFQUQKIDQyN2FiZmEyOGFmZWRmZmFkZmNhOWRkOGIwNjdlYjZkMzZiYWM1M2YKICQgZ2l0IGJyYW5jaAotKiAobm8gYnJhbmNoKQorKiAoZGV0YWNoZWQgZnJvbSB2Mi42LjE3KQogICBtYXN0ZXIKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC03ODcsNyArNzg5LDcgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogT3IgeW91IGNvdWxkIHJlY2FsbCB0aGF0IHRoZSBgLi4uYCBvcGVyYXRvciBzZWxlY3RzIGFsbCBjb21taXRzCi1jb250YWluZWQgcmVhY2hhYmxlIGZyb20gZWl0aGVyIG9uZSByZWZlcmVuY2Ugb3IgdGhlIG90aGVyIGJ1dCBub3QKK3JlYWNoYWJsZSBmcm9tIGVpdGhlciBvbmUgcmVmZXJlbmNlIG9yIHRoZSBvdGhlciBidXQgbm90CiBib3RoOyBzbwogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC04MTQsNyArODE2LDcgQEAKICQgZ2l0ayBlMDVkYjBmZC4uCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU9yIHlvdSBjYW4gdXNlIGxpbmtnaXQ6Z2l0LW5hbWUtcmV2WzFdLCB3aGljaCB3aWxsIGdpdmUgdGhlIGNvbW1pdCBhCitvciB5b3UgY2FuIHVzZSBsaW5rZ2l0OmdpdC1uYW1lLXJldlsxXSwgd2hpY2ggd2lsbCBnaXZlIHRoZSBjb21taXQgYQogbmFtZSBiYXNlZCBvbiBhbnkgdGFnIGl0IGZpbmRzIHBvaW50aW5nIHRvIG9uZSBvZiB0aGUgY29tbWl0J3MKIGRlc2NlbmRhbnRzOgogCkBAIC04NTgsOCArODYwLDggQEAKIAogQXMgeWV0IGFub3RoZXIgYWx0ZXJuYXRpdmUsIHRoZSBsaW5rZ2l0OmdpdC1zaG93LWJyYW5jaFsxXSBjb21tYW5kIGxpc3RzCiB0aGUgY29tbWl0cyByZWFjaGFibGUgZnJvbSBpdHMgYXJndW1lbnRzIHdpdGggYSBkaXNwbGF5IG9uIHRoZSBsZWZ0LWhhbmQKLXNpZGUgdGhhdCBpbmRpY2F0ZXMgd2hpY2ggYXJndW1lbnRzIHRoYXQgY29tbWl0IGlzIHJlYWNoYWJsZSBmcm9tLiAgU28sCi15b3UgY2FuIHJ1biBzb21ldGhpbmcgbGlrZQorc2lkZSB0aGF0IGluZGljYXRlcyB3aGljaCBhcmd1bWVudHMgdGhhdCBjb21taXQgaXMgcmVhY2hhYmxlIGZyb20uCitTbywgaWYgeW91IHJ1biBzb21ldGhpbmcgbGlrZQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAkIGdpdCBzaG93LWJyYW5jaCBlMDVkYjBmZCB2MS41LjAtcmMwIHYxLjUuMC1yYzEgdjEuNS4wLXJjMgpAQCAtODcxLDE1ICs4NzMsMTUgQEAKIC4uLgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi10aGVuIHNlYXJjaCBmb3IgYSBsaW5lIHRoYXQgbG9va3MgbGlrZQordGhlbiBhIGxpbmUgbGlrZQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiArICsrIFtlMDVkYjBmZF0gRml4IHdhcm5pbmdzIGluIHNoYTFfZmlsZS5jIC0gdXNlIEM5OSBwcmludGYgZm9ybWF0IGlmCiBhdmFpbGFibGUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotV2hpY2ggc2hvd3MgdGhhdCBlMDVkYjBmZCBpcyByZWFjaGFibGUgZnJvbSBpdHNlbGYsIGZyb20gdjEuNS4wLXJjMSwgYW5kCi1mcm9tIHYxLjUuMC1yYzIsIGJ1dCBub3QgZnJvbSB2MS41LjAtcmMwLgorc2hvd3MgdGhhdCBlMDVkYjBmZCBpcyByZWFjaGFibGUgZnJvbSBpdHNlbGYsIGZyb20gdjEuNS4wLXJjMSwKK2FuZCBmcm9tIHYxLjUuMC1yYzIsIGFuZCBub3QgZnJvbSB2MS41LjAtcmMwLgogCiBbW3Nob3dpbmctY29tbWl0cy11bmlxdWUtdG8tYS1icmFuY2hdXQogU2hvd2luZyBjb21taXRzIHVuaXF1ZSB0byBhIGdpdmVuIGJyYW5jaApAQCAtMTA3NCwxOSArMTA3NiwxMyBAQAogCiBNb2RpZnlpbmcgdGhlIGluZGV4IGlzIGVhc3k6CiAKLVRvIHVwZGF0ZSB0aGUgaW5kZXggd2l0aCB0aGUgbmV3IGNvbnRlbnRzIG9mIGEgbW9kaWZpZWQgZmlsZSwgdXNlCitUbyB1cGRhdGUgdGhlIGluZGV4IHdpdGggdGhlIGNvbnRlbnRzIG9mIGEgbmV3IG9yIG1vZGlmaWVkIGZpbGUsIHVzZQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAkIGdpdCBhZGQgcGF0aC90by9maWxlCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVRvIGFkZCB0aGUgY29udGVudHMgb2YgYSBuZXcgZmlsZSB0byB0aGUgaW5kZXgsIHVzZQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0kIGdpdCBhZGQgcGF0aC90by9maWxlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRvIHJlbW92ZSBhIGZpbGUgZnJvbSB0aGUgaW5kZXggYW5kIGZyb20gdGhlIHdvcmtpbmcgdHJlZSwKK1RvIHJlbW92ZSBhIGZpbGUgZnJvbSB0aGUgaW5kZXggYW5kIGZyb20gdGhlIHdvcmtpbmcgdHJlZSwgdXNlCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICQgZ2l0IHJtIHBhdGgvdG8vZmlsZQpAQCAtMTc4Nyw3ICsxNzgzLDcgQEAKICQgZ2l0IG1lcmdlIGJyYW5jaAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1hcmUgcm91Z2hseSBlcXVpdmFsZW50LiAgVGhlIGZvcm1lciBpcyBhY3R1YWxseSB2ZXJ5IGNvbW1vbmx5IHVzZWQuCithcmUgcm91Z2hseSBlcXVpdmFsZW50LgogCiBbW3N1Ym1pdHRpbmctcGF0Y2hlc11dCiBTdWJtaXR0aW5nIHBhdGNoZXMgdG8gYSBwcm9qZWN0CkBAIC0xOTc3LDcgKzE5NzMsNyBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAoU2VlIGFsc28KLWxpbms6aG93dG8vc2V0dXAtZ2l0LXNlcnZlci1vdmVyLWh0dHAudHh0W3NldHVwLWdpdC1zZXJ2ZXItb3Zlci1odHRwXQorbGluazpob3d0by9zZXR1cC1naXQtc2VydmVyLW92ZXItaHR0cC5odG1sW3NldHVwLWdpdC1zZXJ2ZXItb3Zlci1odHRwXQogZm9yIGEgc2xpZ2h0bHkgbW9yZSBzb3BoaXN0aWNhdGVkIHNldHVwIHVzaW5nIFdlYkRBViB3aGljaCBhbHNvCiBhbGxvd3MgcHVzaGluZyBvdmVyIEhUVFAuKQogCkBAIC0yMjQ5LDExICsyMjQ1LDExIEBACiAkIC4uLiBwYXRjaCAuLi4gdGVzdCAgLi4uIGNvbW1pdCBbIC4uLiBwYXRjaCAuLi4gdGVzdCAuLi4gY29tbWl0IF0qCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVdoZW4geW91IGFyZSBoYXBweSB3aXRoIHRoZSBzdGF0ZSBvZiB0aGlzIGNoYW5nZSwgeW91IGNhbiBwdWxsIGl0IGludG8gdGhlCitXaGVuIHlvdSBhcmUgaGFwcHkgd2l0aCB0aGUgc3RhdGUgb2YgdGhpcyBjaGFuZ2UsIHlvdSBjYW4gbWVyZ2UgaXQgaW50byB0aGUKICJ0ZXN0IiBicmFuY2ggaW4gcHJlcGFyYXRpb24gdG8gbWFrZSBpdCBwdWJsaWM6CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSQgZ2l0IGNoZWNrb3V0IHRlc3QgJiYgZ2l0IHB1bGwgLiBzcGVlZC11cC1zcGlubG9ja3MKKyQgZ2l0IGNoZWNrb3V0IHRlc3QgJiYgZ2l0IG1lcmdlIHNwZWVkLXVwLXNwaW5sb2NrcwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBJdCBpcyB1bmxpa2VseSB0aGF0IHlvdSB3b3VsZCBoYXZlIGFueSBjb25mbGljdHMgaGVyZSAuLi4gYnV0IHlvdSBtaWdodCBpZiB5b3UKQEAgLTIyNjUsNyArMjI2MSw3IEBACiBtZWFucyB0aGF0IHRoZSBwYXRjaGVzIGNhbiBiZSBtb3ZlZCBpbnRvIHRoZSBgcmVsZWFzZWAgdHJlZSBpbiBhbnkgb3JkZXIuCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSQgZ2l0IGNoZWNrb3V0IHJlbGVhc2UgJiYgZ2l0IHB1bGwgLiBzcGVlZC11cC1zcGlubG9ja3MKKyQgZ2l0IGNoZWNrb3V0IHJlbGVhc2UgJiYgZ2l0IG1lcmdlIHNwZWVkLXVwLXNwaW5sb2NrcwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBBZnRlciBhIHdoaWxlLCB5b3Ugd2lsbCBoYXZlIGEgbnVtYmVyIG9mIGJyYW5jaGVzLCBhbmQgZGVzcGl0ZSB0aGUKQEAgLTMxOTEsMjMgKzMxODcsMjEgQEAKIFlvdSBjYW4gc2F2ZSBzcGFjZSBhbmQgbWFrZSBHaXQgZmFzdGVyIGJ5IG1vdmluZyB0aGVzZSBsb29zZSBvYmplY3RzIGluCiB0byBhICJwYWNrIGZpbGUiLCB3aGljaCBzdG9yZXMgYSBncm91cCBvZiBvYmplY3RzIGluIGFuIGVmZmljaWVudAogY29tcHJlc3NlZCBmb3JtYXQ7IHRoZSBkZXRhaWxzIG9mIGhvdyBwYWNrIGZpbGVzIGFyZSBmb3JtYXR0ZWQgY2FuIGJlCi1mb3VuZCBpbiBsaW5rOnRlY2huaWNhbC9wYWNrLWZvcm1hdC50eHRbdGVjaG5pY2FsL3BhY2stZm9ybWF0LnR4dF0uCitmb3VuZCBpbiBsaW5rOnRlY2huaWNhbC9wYWNrLWZvcm1hdC5odG1sW3BhY2sgZm9ybWF0XS4KIAogVG8gcHV0IHRoZSBsb29zZSBvYmplY3RzIGludG8gYSBwYWNrLCBqdXN0IHJ1biBnaXQgcmVwYWNrOgogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICQgZ2l0IHJlcGFjawotR2VuZXJhdGluZyBwYWNrLi4uCi1Eb25lIGNvdW50aW5nIDYwMjAgb2JqZWN0cy4KLURlbHRpZnlpbmcgNjAyMCBvYmplY3RzLgotIDEwMCUgKDYwMjAvNjAyMCkgZG9uZQotV3JpdGluZyA2MDIwIG9iamVjdHMuCi0gMTAwJSAoNjAyMC82MDIwKSBkb25lCi1Ub3RhbCA2MDIwLCB3cml0dGVuIDYwMjAgKGRlbHRhIDQwNzApLCByZXVzZWQgMCAoZGVsdGEgMCkKLVBhY2sgcGFjay0zZTU0YWQyOWQ1YjJlMDU4MzhjNzVkZjU4MmM2NTI1N2I4ZDA4ZTFjIGNyZWF0ZWQuCitDb3VudGluZyBvYmplY3RzOiA2MDIwLCBkb25lLgorRGVsdGEgY29tcHJlc3Npb24gdXNpbmcgdXAgdG8gNCB0aHJlYWRzLgorQ29tcHJlc3Npbmcgb2JqZWN0czogMTAwJSAoNjAyMC82MDIwKSwgZG9uZS4KK1dyaXRpbmcgb2JqZWN0czogMTAwJSAoNjAyMC82MDIwKSwgZG9uZS4KK1RvdGFsIDYwMjAgKGRlbHRhIDQwNzApLCByZXVzZWQgMCAoZGVsdGEgMCkKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1Zb3UgY2FuIHRoZW4gcnVuCitUaGlzIGNyZWF0ZXMgYSBzaW5nbGUgInBhY2sgZmlsZSIgaW4gLmdpdC9vYmplY3RzL3BhY2svCitjb250YWluaW5nIGFsbCBjdXJyZW50bHkgdW5wYWNrZWQgb2JqZWN0cy4gIFlvdSBjYW4gdGhlbiBydW4KIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAkIGdpdCBwcnVuZQpAQCAtMzMwNSwxNyArMzI5OSwxMSBAQAogJCBnaXQgcHJ1bmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1hbmQgdGhleSdsbCBiZSBnb25lLiBCdXQgeW91IHNob3VsZCBvbmx5IHJ1biBgZ2l0IHBydW5lYCBvbiBhIHF1aWVzY2VudAorYW5kIHRoZXknbGwgYmUgZ29uZS4gKFlvdSBzaG91bGQgb25seSBydW4gYGdpdCBwcnVuZWAgb24gYSBxdWllc2NlbnQKIHJlcG9zaXRvcnktLWl0J3Mga2luZCBvZiBsaWtlIGRvaW5nIGEgZmlsZXN5c3RlbSBmc2NrIHJlY292ZXJ5OiB5b3UKIGRvbid0IHdhbnQgdG8gZG8gdGhhdCB3aGlsZSB0aGUgZmlsZXN5c3RlbSBpcyBtb3VudGVkLgotCi0oVGhlIHNhbWUgaXMgdHJ1ZSBvZiBgZ2l0IGZzY2tgIGl0c2VsZiwgYnR3LCBidXQgc2luY2UKLWBnaXQgZnNja2AgbmV2ZXIgYWN0dWFsbHkgKmNoYW5nZXMqIHRoZSByZXBvc2l0b3J5LCBpdCBqdXN0IHJlcG9ydHMKLW9uIHdoYXQgaXQgZm91bmQsIGBnaXQgZnNja2AgaXRzZWxmIGlzIG5ldmVyICdkYW5nZXJvdXMnIHRvIHJ1bi4KLVJ1bm5pbmcgaXQgd2hpbGUgc29tZWJvZHkgaXMgYWN0dWFsbHkgY2hhbmdpbmcgdGhlIHJlcG9zaXRvcnkgY2FuIGNhdXNlCi1jb25mdXNpbmcgYW5kIHNjYXJ5IG1lc3NhZ2VzLCBidXQgaXQgd29uJ3QgYWN0dWFsbHkgZG8gYW55dGhpbmcgYmFkLiBJbgotY29udHJhc3QsIHJ1bm5pbmcgYGdpdCBwcnVuZWAgd2hpbGUgc29tZWJvZHkgaXMgYWN0aXZlbHkgY2hhbmdpbmcgdGhlCi1yZXBvc2l0b3J5IGlzIGEgKkJBRCogaWRlYSkuCitgZ2l0IHBydW5lYCBpcyBkZXNpZ25lZCBub3QgdG8gY2F1c2UgYW55IGhhcm0gaW4gc3VjaCBjYXNlcyBvZiBjb25jdXJyZW50CithY2Nlc3NlcyB0byBhIHJlcG9zaXRvcnkgYnV0IHlvdSBtaWdodCByZWNlaXZlIGNvbmZ1c2luZyBvciBzY2FyeSBtZXNzYWdlcy4pCiAKIFtbcmVjb3ZlcmluZy1mcm9tLXJlcG9zaXRvcnktY29ycnVwdGlvbl1dCiBSZWNvdmVyaW5nIGZyb20gcmVwb3NpdG9yeSBjb3JydXB0aW9uCkBAIC0zNTM4LDcgKzM1MjYsNyBAQAogbWFudWFsbHkgY2hlY2sgdGhlbSBvdXQ7IGVhcmxpZXIgdmVyc2lvbnMgd29uJ3QgcmVjb2duaXplIHRoZSBzdWJtb2R1bGVzIGF0CiBhbGwuCiAKLVRvIHNlZSBob3cgc3VibW9kdWxlIHN1cHBvcnQgd29ya3MsIGNyZWF0ZSAoZm9yIGV4YW1wbGUpIGZvdXIgZXhhbXBsZQorVG8gc2VlIGhvdyBzdWJtb2R1bGUgc3VwcG9ydCB3b3JrcywgY3JlYXRlIGZvdXIgZXhhbXBsZQogcmVwb3NpdG9yaWVzIHRoYXQgY2FuIGJlIHVzZWQgbGF0ZXIgYXMgYSBzdWJtb2R1bGU6CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM2NDAsNyArMzYyOCw3IEBACiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICQgZ2l0IGJyYW5jaAotKiAobm8gYnJhbmNoKQorKiAoZGV0YWNoZWQgZnJvbSBkMjY2Yjk4KQogICBtYXN0ZXIKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtMzkxMCw3ICszODk4LDcgQEAKIHByZXZpb3VzIHN0YXRlcyByZXByZXNlbnRlZCBieSBvdGhlciBjb21taXRzLgogCiBJbiBvdGhlciB3b3Jkcywgd2hpbGUgYSAidHJlZSIgcmVwcmVzZW50cyBhIHBhcnRpY3VsYXIgZGlyZWN0b3J5IHN0YXRlCi1vZiBhIHdvcmtpbmcgZGlyZWN0b3J5LCBhICJjb21taXQiIHJlcHJlc2VudHMgdGhhdCBzdGF0ZSBpbiAidGltZSIsCitvZiBhIHdvcmtpbmcgZGlyZWN0b3J5LCBhICJjb21taXQiIHJlcHJlc2VudHMgdGhhdCBzdGF0ZSBpbiB0aW1lLAogYW5kIGV4cGxhaW5zIGhvdyB3ZSBnb3QgdGhlcmUuCiAKIFlvdSBjcmVhdGUgYSBjb21taXQgb2JqZWN0IGJ5IGdpdmluZyBpdCB0aGUgdHJlZSB0aGF0IGRlc2NyaWJlcyB0aGUKQEAgLTM5MzAsOCArMzkxOCw3IEBACiByZXN1bHQgdG8gdGhlIGZpbGUgcG9pbnRlZCBhdCBieSBgLmdpdC9IRUFEYCwgc28gdGhhdCB3ZSBjYW4gYWx3YXlzIHNlZQogd2hhdCB0aGUgbGFzdCBjb21taXR0ZWQgc3RhdGUgd2FzLgogCi1IZXJlIGlzIGFuIEFTQ0lJIGFydCBieSBKb24gTG9lbGlnZXIgdGhhdCBpbGx1c3RyYXRlcyBob3cKLXZhcmlvdXMgcGllY2VzIGZpdCB0b2dldGhlci4KK0hlcmUgaXMgYSBwaWN0dXJlIHRoYXQgaWxsdXN0cmF0ZXMgaG93IHZhcmlvdXMgcGllY2VzIGZpdCB0b2dldGhlcjoKIAogLS0tLS0tLS0tLS0tCiAKQEAgLTQwMTAsMjcgKzM5OTcsMjYgQEAKIE1lcmdpbmcgbXVsdGlwbGUgdHJlZXMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotR2l0IGhlbHBzIHlvdSBkbyBhIHRocmVlLXdheSBtZXJnZSwgd2hpY2ggeW91IGNhbiBleHBhbmQgdG8gbi13YXkgYnkKLXJlcGVhdGluZyB0aGUgbWVyZ2UgcHJvY2VkdXJlIGFyYml0cmFyeSB0aW1lcyB1bnRpbCB5b3UgZmluYWxseQotImNvbW1pdCIgdGhlIHN0YXRlLiAgVGhlIG5vcm1hbCBzaXR1YXRpb24gaXMgdGhhdCB5b3UnZCBvbmx5IGRvIG9uZQotdGhyZWUtd2F5IG1lcmdlICh0d28gcGFyZW50cyksIGFuZCBjb21taXQgaXQsIGJ1dCBpZiB5b3UgbGlrZSB0bywgeW91Ci1jYW4gZG8gbXVsdGlwbGUgcGFyZW50cyBpbiBvbmUgZ28uCitHaXQgY2FuIGhlbHAgeW91IHBlcmZvcm0gYSB0aHJlZS13YXkgbWVyZ2UsIHdoaWNoIGNhbiBpbiB0dXJuIGJlCit1c2VkIGZvciBhIG1hbnktd2F5IG1lcmdlIGJ5IHJlcGVhdGluZyB0aGUgbWVyZ2UgcHJvY2VkdXJlIHNldmVyYWwKK3RpbWVzLiAgVGhlIHVzdWFsIHNpdHVhdGlvbiBpcyB0aGF0IHlvdSBvbmx5IGRvIG9uZSB0aHJlZS13YXkgbWVyZ2UKKyhyZWNvbmNpbGluZyB0d28gbGluZXMgb2YgaGlzdG9yeSkgYW5kIGNvbW1pdCB0aGUgcmVzdWx0LCBidXQgaWYKK3lvdSBsaWtlIHRvLCB5b3UgY2FuIG1lcmdlIHNldmVyYWwgYnJhbmNoZXMgaW4gb25lIGdvLgogCi1UbyBkbyBhIHRocmVlLXdheSBtZXJnZSwgeW91IG5lZWQgdGhlIHR3byBzZXRzIG9mICJjb21taXQiIG9iamVjdHMKLXRoYXQgeW91IHdhbnQgdG8gbWVyZ2UsIHVzZSB0aG9zZSB0byBmaW5kIHRoZSBjbG9zZXN0IGNvbW1vbiBwYXJlbnQgKGEKLXRoaXJkICJjb21taXQiIG9iamVjdCksIGFuZCB0aGVuIHVzZSB0aG9zZSBjb21taXQgb2JqZWN0cyB0byBmaW5kIHRoZQotc3RhdGUgb2YgdGhlIGRpcmVjdG9yeSAoInRyZWUiIG9iamVjdCkgYXQgdGhlc2UgcG9pbnRzLgorVG8gcGVyZm9ybSBhIHRocmVlLXdheSBtZXJnZSwgeW91IHN0YXJ0IHdpdGggdGhlIHR3byBjb21taXRzIHlvdQord2FudCB0byBtZXJnZSwgZmluZCB0aGVpciBjbG9zZXN0IGNvbW1vbiBwYXJlbnQgKGEgdGhpcmQgY29tbWl0KSwKK2FuZCBjb21wYXJlIHRoZSB0cmVlcyBjb3JyZXNwb25kaW5nIHRvIHRoZXNlIHRocmVlIGNvbW1pdHMuCiAKLVRvIGdldCB0aGUgImJhc2UiIGZvciB0aGUgbWVyZ2UsIHlvdSBmaXJzdCBsb29rIHVwIHRoZSBjb21tb24gcGFyZW50Ci1vZiB0d28gY29tbWl0cyB3aXRoCitUbyBnZXQgdGhlICJiYXNlIiBmb3IgdGhlIG1lcmdlLCBsb29rIHVwIHRoZSBjb21tb24gcGFyZW50IG9mIHR3bworY29tbWl0czoKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogJCBnaXQgbWVyZ2UtYmFzZSA8Y29tbWl0MT4gPGNvbW1pdDI+CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLXdoaWNoIHdpbGwgcmV0dXJuIHlvdSB0aGUgY29tbWl0IHRoZXkgYXJlIGJvdGggYmFzZWQgb24uICBZb3Ugc2hvdWxkCi1ub3cgbG9vayB1cCB0aGUgInRyZWUiIG9iamVjdHMgb2YgdGhvc2UgY29tbWl0cywgd2hpY2ggeW91IGNhbiBlYXNpbHkKLWRvIHdpdGggKGZvciBleGFtcGxlKQorVGhpcyBwcmludHMgdGhlIG5hbWUgb2YgYSBjb21taXQgdGhleSBhcmUgYm90aCBiYXNlZCBvbi4gWW91IHNob3VsZAorbm93IGxvb2sgdXAgdGhlIHRyZWUgb2JqZWN0cyBvZiB0aG9zZSBjb21taXRzLCB3aGljaCB5b3UgY2FuIGVhc2lseQorZG8gd2l0aAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAkIGdpdCBjYXQtZmlsZSBjb21taXQgPGNvbW1pdG5hbWU+IHwgaGVhZCAtMQpAQCAtNDE1Miw4ICs0MTM4LDYgQEAKIHRoYXQgaXMgdXNlZCB0byBuYW1lIHRoZSBvYmplY3QgaXMgdGhlIGhhc2ggb2YgdGhlIG9yaWdpbmFsIGRhdGEKIHBsdXMgdGhpcyBoZWFkZXIsIHNvIGBzaGExc3VtYCAnZmlsZScgZG9lcyBub3QgbWF0Y2ggdGhlIG9iamVjdCBuYW1lCiBmb3IgJ2ZpbGUnLgotKEhpc3RvcmljYWwgbm90ZTogaW4gdGhlIGRhd24gb2YgdGhlIGFnZSBvZiBHaXQgdGhlIGhhc2gKLXdhcyB0aGUgU0hBLTEgb2YgdGhlICdjb21wcmVzc2VkJyBvYmplY3QuKQogCiBBcyBhIHJlc3VsdCwgdGhlIGdlbmVyYWwgY29uc2lzdGVuY3kgb2YgYW4gb2JqZWN0IGNhbiBhbHdheXMgYmUgdGVzdGVkCiBpbmRlcGVuZGVudGx5IG9mIHRoZSBjb250ZW50cyBvciB0aGUgdHlwZSBvZiB0aGUgb2JqZWN0OiBhbGwgb2JqZWN0cyBjYW4KZGlmZiAtLWdpdCBhL0dJVC1WRVJTSU9OLUdFTiBiL0dJVC1WRVJTSU9OLUdFTgppbmRleCA5MTlhMWQ0Li5lNjZhNWFiIDEwMDc1NQotLS0gYS9HSVQtVkVSU0lPTi1HRU4KKysrIGIvR0lULVZFUlNJT04tR0VOCkBAIC0xLDcgKzEsNyBAQAogIyEvYmluL3NoCiAKIEdWRj1HSVQtVkVSU0lPTi1GSUxFCi1ERUZfVkVSPXYxLjguNC41CitERUZfVkVSPXYxLjktcmMwCiAKIExGPScKICcKZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggNDAyNjIxMS4uZGRkYWY0ZiAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTQ1Miw3ICs0NTIsNiBAQAogU0NSSVBUX1NIICs9IGdpdC1iaXNlY3Quc2gKIFNDUklQVF9TSCArPSBnaXQtZGlmZnRvb2wtLWhlbHBlci5zaAogU0NSSVBUX1NIICs9IGdpdC1maWx0ZXItYnJhbmNoLnNoCi1TQ1JJUFRfU0ggKz0gZ2l0LWxvc3QtZm91bmQuc2gKIFNDUklQVF9TSCArPSBnaXQtbWVyZ2Utb2N0b3B1cy5zaAogU0NSSVBUX1NIICs9IGdpdC1tZXJnZS1vbmUtZmlsZS5zaAogU0NSSVBUX1NIICs9IGdpdC1tZXJnZS1yZXNvbHZlLnNoCkBAIC00NjEsNyArNDYwLDYgQEAKIFNDUklQVF9TSCArPSBnaXQtcXVpbHRpbXBvcnQuc2gKIFNDUklQVF9TSCArPSBnaXQtcmViYXNlLnNoCiBTQ1JJUFRfU0ggKz0gZ2l0LXJlbW90ZS10ZXN0Z2l0LnNoCi1TQ1JJUFRfU0ggKz0gZ2l0LXJlcGFjay5zaAogU0NSSVBUX1NIICs9IGdpdC1yZXF1ZXN0LXB1bGwuc2gKIFNDUklQVF9TSCArPSBnaXQtc3Rhc2guc2gKIFNDUklQVF9TSCArPSBnaXQtc3VibW9kdWxlLnNoCkBAIC00ODUsMTEgKzQ4Myw5IEBACiBTQ1JJUFRfUEVSTCArPSBnaXQtc2VuZC1lbWFpbC5wZXJsCiBTQ1JJUFRfUEVSTCArPSBnaXQtc3ZuLnBlcmwKIAotU0NSSVBUX1BZVEhPTiArPSBnaXQtcmVtb3RlLXRlc3RweS5weQogU0NSSVBUX1BZVEhPTiArPSBnaXQtcDQucHkKIAogTk9fSU5TVEFMTCArPSBnaXQtcmVtb3RlLXRlc3RnaXQKLU5PX0lOU1RBTEwgKz0gZ2l0LXJlbW90ZS10ZXN0cHkKIAogIyBHZW5lcmF0ZWQgZmlsZXMgZm9yIHNjcmlwdHMKIFNDUklQVF9TSF9HRU4gPSAkKHBhdHN1YnN0ICUuc2gsJSwkKFNDUklQVF9TSCkpCkBAIC01NzcsNiArNTczLDcgQEAKIFRFU1RfUFJPR1JBTVNfTkVFRF9YICs9IHRlc3Qtc3RyaW5nLWxpc3QKIFRFU1RfUFJPR1JBTVNfTkVFRF9YICs9IHRlc3Qtc3VicHJvY2VzcwogVEVTVF9QUk9HUkFNU19ORUVEX1ggKz0gdGVzdC1zdm4tZmUKK1RFU1RfUFJPR1JBTVNfTkVFRF9YICs9IHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbgogVEVTVF9QUk9HUkFNU19ORUVEX1ggKz0gdGVzdC13aWxkbWF0Y2gKIAogVEVTVF9QUk9HUkFNUyA9ICQocGF0c3Vic3QgJSwlJFgsJChURVNUX1BST0dSQU1TX05FRURfWCkpCkBAIC01ODksMTEgKzU4Niw4IEBACiBCVUlMVF9JTlMgKz0gZ2l0LWNoZXJyeS1waWNrJFgKIEJVSUxUX0lOUyArPSBnaXQtZm9ybWF0LXBhdGNoJFgKIEJVSUxUX0lOUyArPSBnaXQtZnNjay1vYmplY3RzJFgKLUJVSUxUX0lOUyArPSBnaXQtZ2V0LXRhci1jb21taXQtaWQkWAogQlVJTFRfSU5TICs9IGdpdC1pbml0JFgKIEJVSUxUX0lOUyArPSBnaXQtbWVyZ2Utc3VidHJlZSRYCi1CVUlMVF9JTlMgKz0gZ2l0LXBlZWstcmVtb3RlJFgKLUJVSUxUX0lOUyArPSBnaXQtcmVwby1jb25maWckWAogQlVJTFRfSU5TICs9IGdpdC1zaG93JFgKIEJVSUxUX0lOUyArPSBnaXQtc3RhZ2UkWAogQlVJTFRfSU5TICs9IGdpdC1zdGF0dXMkWApAQCAtNzMzLDYgKzcyNyw3IEBACiBMSUJfSCArPSB0cmVlLmgKIExJQl9IICs9IHVucGFjay10cmVlcy5oCiBMSUJfSCArPSB1cmwuaAorTElCX0ggKz0gdXJsbWF0Y2guaAogTElCX0ggKz0gdXNlcmRpZmYuaAogTElCX0ggKz0gdXRmOC5oCiBMSUJfSCArPSB2YXJpbnQuaApAQCAtODgzLDYgKzg3OCw3IEBACiBMSUJfT0JKUyArPSB0cmVlLXdhbGsubwogTElCX09CSlMgKz0gdW5wYWNrLXRyZWVzLm8KIExJQl9PQkpTICs9IHVybC5vCitMSUJfT0JKUyArPSB1cmxtYXRjaC5vCiBMSUJfT0JKUyArPSB1c2FnZS5vCiBMSUJfT0JKUyArPSB1c2VyZGlmZi5vCiBMSUJfT0JKUyArPSB1dGY4Lm8KQEAgLTkzMiw2ICs5MjgsNyBAQAogQlVJTFRJTl9PQkpTICs9IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLm8KIEJVSUxUSU5fT0JKUyArPSBidWlsdGluL2ZzY2subwogQlVJTFRJTl9PQkpTICs9IGJ1aWx0aW4vZ2MubworQlVJTFRJTl9PQkpTICs9IGJ1aWx0aW4vZ2V0LXRhci1jb21taXQtaWQubwogQlVJTFRJTl9PQkpTICs9IGJ1aWx0aW4vZ3JlcC5vCiBCVUlMVElOX09CSlMgKz0gYnVpbHRpbi9oYXNoLW9iamVjdC5vCiBCVUlMVElOX09CSlMgKz0gYnVpbHRpbi9oZWxwLm8KQEAgLTk2OCw2ICs5NjUsNyBAQAogQlVJTFRJTl9PQkpTICs9IGJ1aWx0aW4vcmVtb3RlLm8KIEJVSUxUSU5fT0JKUyArPSBidWlsdGluL3JlbW90ZS1leHQubwogQlVJTFRJTl9PQkpTICs9IGJ1aWx0aW4vcmVtb3RlLWZkLm8KK0JVSUxUSU5fT0JKUyArPSBidWlsdGluL3JlcGFjay5vCiBCVUlMVElOX09CSlMgKz0gYnVpbHRpbi9yZXBsYWNlLm8KIEJVSUxUSU5fT0JKUyArPSBidWlsdGluL3JlcmVyZS5vCiBCVUlMVElOX09CSlMgKz0gYnVpbHRpbi9yZXNldC5vCkBAIC05ODIsNyArOTgwLDYgQEAKIEJVSUxUSU5fT0JKUyArPSBidWlsdGluL3N0cmlwc3BhY2UubwogQlVJTFRJTl9PQkpTICs9IGJ1aWx0aW4vc3ltYm9saWMtcmVmLm8KIEJVSUxUSU5fT0JKUyArPSBidWlsdGluL3RhZy5vCi1CVUlMVElOX09CSlMgKz0gYnVpbHRpbi90YXItdHJlZS5vCiBCVUlMVElOX09CSlMgKz0gYnVpbHRpbi91bnBhY2stZmlsZS5vCiBCVUlMVElOX09CSlMgKz0gYnVpbHRpbi91bnBhY2stb2JqZWN0cy5vCiBCVUlMVElOX09CSlMgKz0gYnVpbHRpbi91cGRhdGUtaW5kZXgubwpAQCAtMTE3OSw2ICsxMTc2LDkgQEAKIGVsc2UKIAlMSUJfNF9DUllQVE8gPSAkKE9QRU5TU0xfTElOSykgLWxjcnlwdG8KIGVuZGlmCitpZmRlZiBBUFBMRV9DT01NT05fQ1JZUFRPCisJTElCXzRfQ1JZUFRPICs9IC1mcmFtZXdvcmsgU2VjdXJpdHkgLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbgorZW5kaWYKIGVuZGlmCiBpZmRlZiBORUVEU19MSUJJQ09OVgogCWlmZGVmIElDT05WRElSCkBAIC0xNTg0LDYgKzE1ODQsNyBAQAogUFlUSE9OX1BBVEhfU1EgPSAkKHN1YnN0ICcsJ1wnJywkKFBZVEhPTl9QQVRIKSkKIFRDTFRLX1BBVEhfU1EgPSAkKHN1YnN0ICcsJ1wnJywkKFRDTFRLX1BBVEgpKQogRElGRl9TUSA9ICQoc3Vic3QgJywnXCcnLCQoRElGRikpCitQRVJMTElCX0VYVFJBX1NRID0gJChzdWJzdCAnLCdcJycsJChQRVJMTElCX0VYVFJBKSkKIAogTElCUyA9ICQoR0lUTElCUykgJChFWFRMSUJTKQogCkBAIC0xNjU5LDkgKzE2NjAsNiBAQAogaWZuZGVmIE5PX1BFUkwKIAkkKFFVSUVUX1NVQkRJUjApcGVybCAkKFFVSUVUX1NVQkRJUjEpIFBFUkxfUEFUSD0nJChQRVJMX1BBVEhfU1EpJyBwcmVmaXg9JyQocHJlZml4X1NRKScgbG9jYWxlZGlyPSckKGxvY2FsZWRpcl9TUSknIGFsbAogZW5kaWYKLWlmbmRlZiBOT19QWVRIT04KLQkkKFFVSUVUX1NVQkRJUjApZ2l0X3JlbW90ZV9oZWxwZXJzICQoUVVJRVRfU1VCRElSMSkgUFlUSE9OX1BBVEg9JyQoUFlUSE9OX1BBVEhfU1EpJyBwcmVmaXg9JyQocHJlZml4X1NRKScgYWxsCi1lbmRpZgogCSQoUVVJRVRfU1VCRElSMCl0ZW1wbGF0ZXMgJChRVUlFVF9TVUJESVIxKSBTSEVMTF9QQVRIPSckKFNIRUxMX1BBVEhfU1EpJyBQRVJMX1BBVEg9JyQoUEVSTF9QQVRIX1NRKScKIAogcGxlYXNlX3NldF9TSEVMTF9QQVRIX3RvX2FfbW9yZV9tb2Rlcm5fc2hlbGw6CkBAIC0xNzc1LDcgKzE3NzMsNyBAQAogCiBnaXQucmVzOiBnaXQucmMgR0lULVZFUlNJT04tRklMRQogCSQoUVVJRVRfUkMpJChSQykgXAotCSAgJChqb2luIC1ETUFKT1I9IC1ETUlOT1I9IC1EUEFUQ0g9LCAkKHdvcmRsaXN0IDEsMywkKHN1YnN0IC0sICwkKHN1YnN0IC4sICwkKEdJVF9WRVJTSU9OKSkpKSkgXAorCSAgJChqb2luIC1ETUFKT1I9IC1ETUlOT1I9LCAkKHdvcmRsaXN0IDEsMiwkKHN1YnN0IC0sICwkKHN1YnN0IC4sICwkKEdJVF9WRVJTSU9OKSkpKSkgXAogCSAgLURHSVRfVkVSU0lPTj0iXFxcIiQoR0lUX1ZFUlNJT04pXFxcIiIgJDwgLW8gJEAKIAogaWZuZGVmIE5PX1BFUkwKQEAgLTE3OTEsOSArMTc4OSwxMiBAQAogcGVybC9wZXJsLm1hazogR0lULUNGTEFHUyBHSVQtUFJFRklYIHBlcmwvTWFrZWZpbGUgcGVybC9NYWtlZmlsZS5QTAogCSQoUVVJRVRfU1VCRElSMClwZXJsICQoUVVJRVRfU1VCRElSMSkgUEVSTF9QQVRIPSckKFBFUkxfUEFUSF9TUSknIHByZWZpeD0nJChwcmVmaXhfU1EpJyAkKEBGKQogCi0kKHBhdHN1YnN0ICUucGVybCwlLCQoU0NSSVBUX1BFUkwpKTogJSA6ICUucGVybCBHSVQtVkVSU0lPTi1GSUxFCitQRVJMX0RFRklORVMgPSAkKFBFUkxfUEFUSF9TUSk6JChQRVJMTElCX0VYVFJBX1NRKQorJChwYXRzdWJzdCAlLnBlcmwsJSwkKFNDUklQVF9QRVJMKSk6ICUgOiAlLnBlcmwgcGVybC9wZXJsLm1hayBHSVQtUEVSTC1ERUZJTkVTIEdJVC1WRVJTSU9OLUZJTEUKIAkkKFFVSUVUX0dFTikkKFJNKSAkQCAkQCsgJiYgXAogCUlOU1RMSUJESVI9YE1BS0VGTEFHUz0gJChNQUtFKSAtQyBwZXJsIC1zIC0tbm8tcHJpbnQtZGlyZWN0b3J5IGluc3RsaWJkaXJgICYmIFwKKwlJTlNUTElCRElSX0VYVFJBPSckKFBFUkxMSUJfRVhUUkFfU1EpJyAmJiBcCisJSU5TVExJQkRJUj0iJCRJTlNUTElCRElSJCR7SU5TVExJQkRJUl9FWFRSQTorOiQkSU5TVExJQkRJUl9FWFRSQX0iICYmIFwKIAlzZWQgLWUgJzF7JyBcCiAJICAgIC1lICcJc3wjIS4qcGVybHwjISQoUEVSTF9QQVRIX1NRKXwnIFwKIAkgICAgLWUgJwloJyBcCkBAIC0xODA2LDYgKzE4MDcsMTMgQEAKIAljaG1vZCAreCAkQCsgJiYgXAogCW12ICRAKyAkQAogCitHSVQtUEVSTC1ERUZJTkVTOiBGT1JDRQorCUBGTEFHUz0nJChQRVJMX0RFRklORVMpJzsgXAorCSAgICBpZiB0ZXN0IHgiJCRGTEFHUyIgIT0geCJgY2F0ICRAIDI+L2Rldi9udWxsYCIgOyB0aGVuIFwKKwkJZWNobyA+JjIgIiAgICAqIG5ldyBwZXJsLXNwZWNpZmljIHBhcmFtZXRlcnMiOyBcCisJCWVjaG8gIiQkRkxBR1MiID4kQDsgXAorCSAgICBmaQorCiAKIC5QSE9OWTogZ2l0d2ViCiBnaXR3ZWI6CkBAIC0xODI5LDEyICsxODM3LDcgQEAKICQoU0NSSVBUX1BZVEhPTl9HRU4pOiBHSVQtQ0ZMQUdTIEdJVC1QUkVGSVggR0lULVBZVEhPTi1WQVJTCiAkKFNDUklQVF9QWVRIT05fR0VOKTogJSA6ICUucHkKIAkkKFFVSUVUX0dFTikkKFJNKSAkQCAkQCsgJiYgXAotCUlOU1RMSUJESVI9YE1BS0VGTEFHUz0gJChNQUtFKSAtQyBnaXRfcmVtb3RlX2hlbHBlcnMgLXMgXAotCQktLW5vLXByaW50LWRpcmVjdG9yeSBwcmVmaXg9JyQocHJlZml4X1NRKScgREVTVERJUj0nJChERVNURElSX1NRKScgXAotCQlpbnN0bGliZGlyYCAmJiBcCiAJc2VkIC1lICcxc3wjIS4qcHl0aG9ufCMhJChQWVRIT05fUEFUSF9TUSl8JyBcCi0JICAgIC1lICdzfFwob3NcLmdldGVudigiR0lUUFlUSE9OTElCIlwpW14pXSopfFwxLCJAQElOU1RMSUJESVJAQCIpfCcgXAotCSAgICAtZSAnc3xAQElOU1RMSUJESVJAQHwnIiQkSU5TVExJQkRJUiInfGcnIFwKIAkgICAgJDwgPiRAKyAmJiBcCiAJY2htb2QgK3ggJEArICYmIFwKIAltdiAkQCsgJEAKQEAgLTIwMjIsNiArMjAyNSw5IEBACiBnZXR0ZXh0LnNwIGdldHRleHQucyBnZXR0ZXh0Lm86IEVYVFJBX0NQUEZMQUdTID0gXAogCS1ER0lUX0xPQ0FMRV9QQVRIPSciJChsb2NhbGVkaXJfU1EpIicKIAoraHR0cC1wdXNoLnNwIGh0dHAuc3AgaHR0cC13YWxrZXIuc3AgcmVtb3RlLWN1cmwuc3A6IFNQQVJTRV9GTEFHUyArPSBcCisJLURDVVJMX0RJU0FCTEVfVFlQRUNIRUNLCisKIGlmZGVmIE5PX0VYUEFUCiBodHRwLXdhbGtlci5zcCBodHRwLXdhbGtlci5zIGh0dHAtd2Fsa2VyLm86IEVYVFJBX0NQUEZMQUdTID0gLUROT19FWFBBVAogZW5kaWYKQEAgLTIwNDQsMTAgKzIwNTAsMTAgQEAKIAkkKFFVSUVUX0xJTkspJChDQykgJChBTExfQ0ZMQUdTKSAtbyAkQCAkKEFMTF9MREZMQUdTKSAkKGZpbHRlciAlLm8sJF4pIFwKIAkJJChMSUJTKSAkKE9QRU5TU0xfTElOSykgJChPUEVOU1NMX0xJQlNTTCkgJChMSUJfNF9DUllQVE8pCiAKLWdpdC1odHRwLWZldGNoJFg6IHJldmlzaW9uLm8gaHR0cC5vIGh0dHAtd2Fsa2VyLm8gaHR0cC1mZXRjaC5vIEdJVC1MREZMQUdTICQoR0lUTElCUykKK2dpdC1odHRwLWZldGNoJFg6IGh0dHAubyBodHRwLXdhbGtlci5vIGh0dHAtZmV0Y2gubyBHSVQtTERGTEFHUyAkKEdJVExJQlMpCiAJJChRVUlFVF9MSU5LKSQoQ0MpICQoQUxMX0NGTEFHUykgLW8gJEAgJChBTExfTERGTEFHUykgJChmaWx0ZXIgJS5vLCReKSBcCiAJCSQoTElCUykgJChDVVJMX0xJQkNVUkwpCi1naXQtaHR0cC1wdXNoJFg6IHJldmlzaW9uLm8gaHR0cC5vIGh0dHAtcHVzaC5vIEdJVC1MREZMQUdTICQoR0lUTElCUykKK2dpdC1odHRwLXB1c2gkWDogaHR0cC5vIGh0dHAtcHVzaC5vIEdJVC1MREZMQUdTICQoR0lUTElCUykKIAkkKFFVSUVUX0xJTkspJChDQykgJChBTExfQ0ZMQUdTKSAtbyAkQCAkKEFMTF9MREZMQUdTKSAkKGZpbHRlciAlLm8sJF4pIFwKIAkJJChMSUJTKSAkKENVUkxfTElCQ1VSTCkgJChFWFBBVF9MSUJFWFBBVCkKIApAQCAtMjM0MSw5ICsyMzQ3LDYgQEAKIAkkKE1BS0UpIC1DIHBlcmwgcHJlZml4PSckKHByZWZpeF9TUSknIERFU1RESVI9JyQoREVTVERJUl9TUSknIGluc3RhbGwKIAkkKE1BS0UpIC1DIGdpdHdlYiBpbnN0YWxsCiBlbmRpZgotaWZuZGVmIE5PX1BZVEhPTgotCSQoTUFLRSkgLUMgZ2l0X3JlbW90ZV9oZWxwZXJzIHByZWZpeD0nJChwcmVmaXhfU1EpJyBERVNURElSPSckKERFU1RESVJfU1EpJyBpbnN0YWxsCi1lbmRpZgogaWZuZGVmIE5PX1RDTFRLCiAJJChNQUtFKSAtQyBnaXRrLWdpdCBpbnN0YWxsCiAJJChNQUtFKSAtQyBnaXQtZ3VpIGdpdGV4ZWNkaXI9JyQoZ2l0ZXhlY19pbnN0ZGlyX1NRKScgaW5zdGFsbApAQCAtMjQ5MSw5ICsyNDk0LDYgQEAKIAkkKE1BS0UpIC1DIGdpdHdlYiBjbGVhbgogCSQoTUFLRSkgLUMgcGVybCBjbGVhbgogZW5kaWYKLWlmbmRlZiBOT19QWVRIT04KLQkkKE1BS0UpIC1DIGdpdF9yZW1vdGVfaGVscGVycyBjbGVhbgotZW5kaWYKIAkkKE1BS0UpIC1DIHRlbXBsYXRlcy8gY2xlYW4KIAkkKE1BS0UpIC1DIHQvIGNsZWFuCiBpZm5kZWYgTk9fVENMVEsKQEAgLTI1MDEsNyArMjUwMSw4IEBACiAJJChNQUtFKSAtQyBnaXQtZ3VpIGNsZWFuCiBlbmRpZgogCSQoUk0pIEdJVC1WRVJTSU9OLUZJTEUgR0lULUNGTEFHUyBHSVQtTERGTEFHUyBHSVQtQlVJTEQtT1BUSU9OUwotCSQoUk0pIEdJVC1VU0VSLUFHRU5UIEdJVC1QUkVGSVggR0lULVNDUklQVC1ERUZJTkVTIEdJVC1QWVRIT04tVkFSUworCSQoUk0pIEdJVC1VU0VSLUFHRU5UIEdJVC1QUkVGSVgKKwkkKFJNKSBHSVQtU0NSSVBULURFRklORVMgR0lULVBFUkwtREVGSU5FUyBHSVQtUFlUSE9OLVZBUlMKIAogLlBIT05ZOiBhbGwgaW5zdGFsbCBwcm9maWxlLWNsZWFuIGNsZWFuIHN0cmlwCiAuUEhPTlk6IHNoZWxsX2NvbXBhdGliaWxpdHlfdGVzdCBwbGVhc2Vfc2V0X1NIRUxMX1BBVEhfdG9fYV9tb3JlX21vZGVybl9zaGVsbApkaWZmIC0tZ2l0IGEvUmVsTm90ZXMgYi9SZWxOb3RlcwppbmRleCBjYjAyZjMxLi5jMzAwMTE5IDEyMDAwMAotLS0gYS9SZWxOb3RlcworKysgYi9SZWxOb3RlcwpAQCAtMSArMSBAQAotRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguNC41LnR4dApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS45LnR4dApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Fic3BhdGguYyBiL2Fic3BhdGguYwppbmRleCA2NGFkYmUyLi5jYTMzNTU4IDEwMDY0NAotLS0gYS9hYnNwYXRoLmMKKysrIGIvYWJzcGF0aC5jCkBAIC0xMTAsNyArMTEwLDcgQEAKIAkJCQllbHNlCiAJCQkJCWdvdG8gZXJyb3Jfb3V0OwogCQkJfQotCQkJaWYgKGxlbiAmJiAhaXNfZGlyX3NlcChidWZbbGVuLTFdKSkKKwkJCWlmIChsZW4gJiYgIWlzX2Rpcl9zZXAoYnVmW2xlbiAtIDFdKSkKIAkJCQlidWZbbGVuKytdID0gJy8nOwogCQkJc3RyY3B5KGJ1ZiArIGxlbiwgbGFzdF9lbGVtKTsKIAkJCWZyZWUobGFzdF9lbGVtKTsKQEAgLTE0Myw3ICsxNDMsNyBAQAogZXJyb3Jfb3V0OgogCWZyZWUobGFzdF9lbGVtKTsKIAlpZiAoKmN3ZCAmJiBjaGRpcihjd2QpKQotCQlkaWVfZXJybm8gKCJDb3VsZCBub3QgY2hhbmdlIGJhY2sgdG8gJyVzJyIsIGN3ZCk7CisJCWRpZV9lcnJubygiQ291bGQgbm90IGNoYW5nZSBiYWNrIHRvICclcyciLCBjd2QpOwogCiAJcmV0dXJuIHJldHZhbDsKIH0KQEAgLTIwMSw3ICsyMDEsNyBAQAogCQlpZiAoIWN3ZCkKIAkJCWRpZV9lcnJubygiQ2Fubm90IGRldGVybWluZSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSIpOwogCQlsZW4gPSBzdHJsZW4oY3dkKTsKLQkJZm10ID0gKGxlbiA+IDAgJiYgaXNfZGlyX3NlcChjd2RbbGVuLTFdKSkgPyAiJXMlcyIgOiAiJXMvJXMiOworCQlmbXQgPSAobGVuID4gMCAmJiBpc19kaXJfc2VwKGN3ZFtsZW4gLSAxXSkpID8gIiVzJXMiIDogIiVzLyVzIjsKIAkJaWYgKHNucHJpbnRmKGJ1ZiwgUEFUSF9NQVgsIGZtdCwgY3dkLCBwYXRoKSA+PSBQQVRIX01BWCkKIAkJCWRpZSgiVG9vIGxvbmcgcGF0aDogJS4qcyIsIDYwLCBwYXRoKTsKIAl9CkBAIC0yMTUsMjMgKzIxNSwyNSBAQAogICovCiBjb25zdCBjaGFyICpwcmVmaXhfZmlsZW5hbWUoY29uc3QgY2hhciAqcGZ4LCBpbnQgcGZ4X2xlbiwgY29uc3QgY2hhciAqYXJnKQogewotCXN0YXRpYyBjaGFyIHBhdGhbUEFUSF9NQVhdOworCXN0YXRpYyBzdHJ1Y3Qgc3RyYnVmIHBhdGggPSBTVFJCVUZfSU5JVDsKICNpZm5kZWYgR0lUX1dJTkRPV1NfTkFUSVZFCiAJaWYgKCFwZnhfbGVuIHx8IGlzX2Fic29sdXRlX3BhdGgoYXJnKSkKIAkJcmV0dXJuIGFyZzsKLQltZW1jcHkocGF0aCwgcGZ4LCBwZnhfbGVuKTsKLQlzdHJjcHkocGF0aCArIHBmeF9sZW4sIGFyZyk7CisJc3RyYnVmX3Jlc2V0KCZwYXRoKTsKKwlzdHJidWZfYWRkKCZwYXRoLCBwZngsIHBmeF9sZW4pOworCXN0cmJ1Zl9hZGRzdHIoJnBhdGgsIGFyZyk7CiAjZWxzZQogCWNoYXIgKnA7CiAJLyogZG9uJ3QgYWRkIHByZWZpeCB0byBhYnNvbHV0ZSBwYXRocywgYnV0IHN0aWxsIHJlcGxhY2UgJ1wnIGJ5ICcvJyAqLworCXN0cmJ1Zl9yZXNldCgmcGF0aCk7CiAJaWYgKGlzX2Fic29sdXRlX3BhdGgoYXJnKSkKIAkJcGZ4X2xlbiA9IDA7CiAJZWxzZSBpZiAocGZ4X2xlbikKLQkJbWVtY3B5KHBhdGgsIHBmeCwgcGZ4X2xlbik7Ci0Jc3RyY3B5KHBhdGggKyBwZnhfbGVuLCBhcmcpOwotCWZvciAocCA9IHBhdGggKyBwZnhfbGVuOyAqcDsgcCsrKQorCQlzdHJidWZfYWRkKCZwYXRoLCBwZngsIHBmeF9sZW4pOworCXN0cmJ1Zl9hZGRzdHIoJnBhdGgsIGFyZyk7CisJZm9yIChwID0gcGF0aC5idWYgKyBwZnhfbGVuOyAqcDsgcCsrKQogCQlpZiAoKnAgPT0gJ1xcJykKIAkJCSpwID0gJy8nOwogI2VuZGlmCi0JcmV0dXJuIHBhdGg7CisJcmV0dXJuIHBhdGguYnVmOwogfQpkaWZmIC0tZ2l0IGEvYWxpYXMuYyBiL2FsaWFzLmMKaW5kZXggZWI5ZjA4Yi4uNWVmYzNkNiAxMDA2NDQKLS0tIGEvYWxpYXMuYworKysgYi9hbGlhcy5jCkBAIC01LDcgKzUsNyBAQAogCiBzdGF0aWMgaW50IGFsaWFzX2xvb2t1cF9jYihjb25zdCBjaGFyICprLCBjb25zdCBjaGFyICp2LCB2b2lkICpjYikKIHsKLQlpZiAoIXByZWZpeGNtcChrLCAiYWxpYXMuIikgJiYgIXN0cmNtcChrKzYsIGFsaWFzX2tleSkpIHsKKwlpZiAoc3RhcnRzX3dpdGgoaywgImFsaWFzLiIpICYmICFzdHJjbXAoayArIDYsIGFsaWFzX2tleSkpIHsKIAkJaWYgKCF2KQogCQkJcmV0dXJuIGNvbmZpZ19lcnJvcl9ub25ib29sKGspOwogCQlhbGlhc192YWwgPSB4c3RyZHVwKHYpOwpAQCAtMzQsNyArMzQsNyBAQAogCWludCBzcmMsIGRzdCwgY291bnQgPSAwLCBzaXplID0gMTY7CiAJY2hhciBxdW90ZWQgPSAwOwogCi0JKmFyZ3YgPSB4bWFsbG9jKHNpemVvZihjaGFyICopICogc2l6ZSk7CisJKmFyZ3YgPSB4bWFsbG9jKHNpemVvZigqKmFyZ3YpICogc2l6ZSk7CiAKIAkvKiBzcGxpdCBhbGlhc19zdHJpbmcgKi8KIAkoKmFyZ3YpW2NvdW50KytdID0gY21kbGluZTsKQEAgLTQ1LDcgKzQ1LDcgQEAKIAkJCXdoaWxlIChjbWRsaW5lWysrc3JjXQogCQkJCQkmJiBpc3NwYWNlKGNtZGxpbmVbc3JjXSkpCiAJCQkJOyAvKiBza2lwICovCi0JCQlBTExPQ19HUk9XKCphcmd2LCBjb3VudCsxLCBzaXplKTsKKwkJCUFMTE9DX0dST1coKmFyZ3YsIGNvdW50ICsgMSwgc2l6ZSk7CiAJCQkoKmFyZ3YpW2NvdW50KytdID0gY21kbGluZSArIGRzdDsKIAkJfSBlbHNlIGlmICghcXVvdGVkICYmIChjID09ICdcJycgfHwgYyA9PSAnIicpKSB7CiAJCQlxdW90ZWQgPSBjOwpAQCAtNzYsMTIgKzc2LDEzIEBACiAJCXJldHVybiAtU1BMSVRfQ01ETElORV9VTkNMT1NFRF9RVU9URTsKIAl9CiAKLQlBTExPQ19HUk9XKCphcmd2LCBjb3VudCsxLCBzaXplKTsKKwlBTExPQ19HUk9XKCphcmd2LCBjb3VudCArIDEsIHNpemUpOwogCSgqYXJndilbY291bnRdID0gTlVMTDsKIAogCXJldHVybiBjb3VudDsKIH0KIAotY29uc3QgY2hhciAqc3BsaXRfY21kbGluZV9zdHJlcnJvcihpbnQgc3BsaXRfY21kbGluZV9lcnJubykgewotCXJldHVybiBzcGxpdF9jbWRsaW5lX2Vycm9yc1stc3BsaXRfY21kbGluZV9lcnJuby0xXTsKK2NvbnN0IGNoYXIgKnNwbGl0X2NtZGxpbmVfc3RyZXJyb3IoaW50IHNwbGl0X2NtZGxpbmVfZXJybm8pCit7CisJcmV0dXJuIHNwbGl0X2NtZGxpbmVfZXJyb3JzWy1zcGxpdF9jbWRsaW5lX2Vycm5vIC0gMV07CiB9CmRpZmYgLS1naXQgYS9hbGxvYy5jIGIvYWxsb2MuYwppbmRleCBhZWFlNTVjLi5mM2VlNzQ1IDEwMDY0NAotLS0gYS9hbGxvYy5jCisrKyBiL2FsbG9jLmMKQEAgLTU4LDcgKzU4LDcgQEAKIH0KIAogI2RlZmluZSBSRVBPUlQobmFtZSkJXAotICAgIHJlcG9ydCgjbmFtZSwgbmFtZSMjX2FsbG9jcywgbmFtZSMjX2FsbG9jcypzaXplb2Yoc3RydWN0IG5hbWUpID4+IDEwKQorICAgIHJlcG9ydCgjbmFtZSwgbmFtZSMjX2FsbG9jcywgbmFtZSMjX2FsbG9jcyAqIHNpemVvZihzdHJ1Y3QgbmFtZSkgPj4gMTApCiAKIHZvaWQgYWxsb2NfcmVwb3J0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS9hcmNoaXZlLmMgYi9hcmNoaXZlLmMKaW5kZXggZDI1NGZhNS4uMzQ2ZjNiMiAxMDA2NDQKLS0tIGEvYXJjaGl2ZS5jCisrKyBiL2FyY2hpdmUuYwpAQCAtMTUxLDcgKzE1MSw2IEBACiAJc3RydWN0IGFyY2hpdmVyX2NvbnRleHQgY29udGV4dDsKIAlzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgb3B0czsKIAlzdHJ1Y3QgdHJlZV9kZXNjIHQ7Ci0Jc3RydWN0IHBhdGhzcGVjIHBhdGhzcGVjOwogCWludCBlcnI7CiAKIAlpZiAoYXJncy0+YmFzZWxlbiA+IDAgJiYgYXJncy0+YmFzZVthcmdzLT5iYXNlbGVuIC0gMV0gPT0gJy8nKSB7CkBAIC0xODYsMTAgKzE4NSw4IEBACiAJCWdpdF9hdHRyX3NldF9kaXJlY3Rpb24oR0lUX0FUVFJfSU5ERVgsICZ0aGVfaW5kZXgpOwogCX0KIAotCWluaXRfcGF0aHNwZWMoJnBhdGhzcGVjLCBhcmdzLT5wYXRoc3BlYyk7Ci0JZXJyID0gcmVhZF90cmVlX3JlY3Vyc2l2ZShhcmdzLT50cmVlLCAiIiwgMCwgMCwgJnBhdGhzcGVjLAorCWVyciA9IHJlYWRfdHJlZV9yZWN1cnNpdmUoYXJncy0+dHJlZSwgIiIsIDAsIDAsICZhcmdzLT5wYXRoc3BlYywKIAkJCQkgIHdyaXRlX2FyY2hpdmVfZW50cnksICZjb250ZXh0KTsKLQlmcmVlX3BhdGhzcGVjKCZwYXRoc3BlYyk7CiAJaWYgKGVyciA9PSBSRUFEX1RSRUVfUkVDVVJTSVZFKQogCQllcnIgPSAwOwogCXJldHVybiBlcnI7CkBAIC0yMjIsNyArMjE5LDcgQEAKIAlzdHJ1Y3QgcGF0aHNwZWMgcGF0aHNwZWM7CiAJaW50IHJldDsKIAotCWluaXRfcGF0aHNwZWMoJnBhdGhzcGVjLCBwYXRocyk7CisJcGFyc2VfcGF0aHNwZWMoJnBhdGhzcGVjLCAwLCAwLCAiIiwgcGF0aHMpOwogCXJldCA9IHJlYWRfdHJlZV9yZWN1cnNpdmUodHJlZSwgIiIsIDAsIDAsICZwYXRoc3BlYywgcmVqZWN0X2VudHJ5LCBOVUxMKTsKIAlmcmVlX3BhdGhzcGVjKCZwYXRoc3BlYyk7CiAJcmV0dXJuIHJldCAhPSAwOwpAQCAtMjMxLDExICsyMjgsMTggQEAKIHN0YXRpYyB2b2lkIHBhcnNlX3BhdGhzcGVjX2FyZyhjb25zdCBjaGFyICoqcGF0aHNwZWMsCiAJCXN0cnVjdCBhcmNoaXZlcl9hcmdzICphcl9hcmdzKQogewotCWFyX2FyZ3MtPnBhdGhzcGVjID0gcGF0aHNwZWMgPSBnZXRfcGF0aHNwZWMoIiIsIHBhdGhzcGVjKTsKKwkvKgorCSAqIG11c3QgYmUgY29uc2lzdGVudCB3aXRoIHBhcnNlX3BhdGhzcGVjIGluIHBhdGhfZXhpc3RzKCkKKwkgKiBBbHNvIGlmIHBhdGhzcGVjIHBhdHRlcm5zIGFyZSBkZXBlbmRlbnQsIHdlJ3JlIGluIGJpZworCSAqIHRyb3VibGUgYXMgd2UgdGVzdCBlYWNoIG9uZSBzZXBhcmF0ZWx5CisJICovCisJcGFyc2VfcGF0aHNwZWMoJmFyX2FyZ3MtPnBhdGhzcGVjLCAwLAorCQkgICAgICAgUEFUSFNQRUNfUFJFRkVSX0ZVTEwsCisJCSAgICAgICAiIiwgcGF0aHNwZWMpOwogCWlmIChwYXRoc3BlYykgewogCQl3aGlsZSAoKnBhdGhzcGVjKSB7CiAJCQlpZiAoKipwYXRoc3BlYyAmJiAhcGF0aF9leGlzdHMoYXJfYXJncy0+dHJlZSwgKnBhdGhzcGVjKSkKLQkJCQlkaWUoInBhdGggbm90IGZvdW5kOiAlcyIsICpwYXRoc3BlYyk7CisJCQkJZGllKF8oInBhdGhzcGVjICclcycgZGlkIG5vdCBtYXRjaCBhbnkgZmlsZXMiKSwgKnBhdGhzcGVjKTsKIAkJCXBhdGhzcGVjKys7CiAJCX0KIAl9CkBAIC00MzYsNyArNDQwLDcgQEAKIAkgKiBwcmVmaXggaXMgbm9uLWVtcHR5IChrLmUuLCB3ZSBkb24ndCBtYXRjaCAudGFyLmd6IHdpdGggbm8gYWN0dWFsCiAJICogZmlsZW5hbWUpLgogCSAqLwotCWlmIChwcmVmaXhsZW4gPCAyIHx8IGZpbGVuYW1lW3ByZWZpeGxlbi0xXSAhPSAnLicpCisJaWYgKHByZWZpeGxlbiA8IDIgfHwgZmlsZW5hbWVbcHJlZml4bGVuIC0gMV0gIT0gJy4nKQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gIXN0cmNtcChmaWxlbmFtZSArIHByZWZpeGxlbiwgZXh0KTsKIH0KZGlmZiAtLWdpdCBhL2FyY2hpdmUuaCBiL2FyY2hpdmUuaAppbmRleCA4OTVhZmNkLi40YTc5MWUxIDEwMDY0NAotLS0gYS9hcmNoaXZlLmgKKysrIGIvYXJjaGl2ZS5oCkBAIC0xLDYgKzEsOCBAQAogI2lmbmRlZiBBUkNISVZFX0gKICNkZWZpbmUgQVJDSElWRV9ICiAKKyNpbmNsdWRlICJwYXRoc3BlYy5oIgorCiBzdHJ1Y3QgYXJjaGl2ZXJfYXJncyB7CiAJY29uc3QgY2hhciAqYmFzZTsKIAlzaXplX3QgYmFzZWxlbjsKQEAgLTgsNyArMTAsNyBAQAogCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmNvbW1pdF9zaGExOwogCWNvbnN0IHN0cnVjdCBjb21taXQgKmNvbW1pdDsKIAl0aW1lX3QgdGltZTsKLQljb25zdCBjaGFyICoqcGF0aHNwZWM7CisJc3RydWN0IHBhdGhzcGVjIHBhdGhzcGVjOwogCXVuc2lnbmVkIGludCB2ZXJib3NlIDogMTsKIAl1bnNpZ25lZCBpbnQgd29ya3RyZWVfYXR0cmlidXRlcyA6IDE7CiAJdW5zaWduZWQgaW50IGNvbnZlcnQgOiAxOwpkaWZmIC0tZ2l0IGEvYXR0ci5jIGIvYXR0ci5jCmluZGV4IDBlNzc0YzYuLjhkMTNkNzAgMTAwNjQ0Ci0tLSBhL2F0dHIuYworKysgYi9hdHRyLmMKQEAgLTIxMSw3ICsyMTEsNyBAQAogCW5hbWUgPSBjcDsKIAluYW1lbGVuID0gc3RyY3NwbihuYW1lLCBibGFuayk7CiAJaWYgKHN0cmxlbihBVFRSSUJVVEVfTUFDUk9fUFJFRklYKSA8IG5hbWVsZW4gJiYKLQkgICAgIXByZWZpeGNtcChuYW1lLCBBVFRSSUJVVEVfTUFDUk9fUFJFRklYKSkgeworCSAgICBzdGFydHNfd2l0aChuYW1lLCBBVFRSSUJVVEVfTUFDUk9fUFJFRklYKSkgewogCQlpZiAoIW1hY3JvX29rKSB7CiAJCQlmcHJpbnRmKHN0ZGVyciwgIiVzIG5vdCBhbGxvd2VkOiAlczolZFxuIiwKIAkJCQluYW1lLCBzcmMsIGxpbmVubyk7CmRpZmYgLS1naXQgYS9iYXNlODUuYyBiL2Jhc2U4NS5jCmluZGV4IDc4MWI1NzUuLjVjYTYwMWUgMTAwNjQ0Ci0tLSBhL2Jhc2U4NS5jCisrKyBiL2Jhc2U4NS5jCkBAIC00MSw3ICs0MSw3IEBACiB7CiAJcHJlcF9iYXNlODUoKTsKIAotCXNheTIoImRlY29kZSA4NSA8JS4qcz4iLCBsZW4vNCo1LCBidWZmZXIpOworCXNheTIoImRlY29kZSA4NSA8JS4qcz4iLCBsZW4gLyA0ICogNSwgYnVmZmVyKTsKIAl3aGlsZSAobGVuKSB7CiAJCXVuc2lnbmVkIGFjYyA9IDA7CiAJCWludCBkZSwgY250ID0gNDsKZGlmZiAtLWdpdCBhL2Jpc2VjdC5jIGIvYmlzZWN0LmMKaW5kZXggMWU0NmE0Zi4uMzcyMDBiNCAxMDA2NDQKLS0tIGEvYmlzZWN0LmMKKysrIGIvYmlzZWN0LmMKQEAgLTQwNiw5ICs0MDYsOSBAQAogCWlmICghc3RyY21wKHJlZm5hbWUsICJiYWQiKSkgewogCQljdXJyZW50X2JhZF9zaGExID0geG1hbGxvYygyMCk7CiAJCWhhc2hjcHkoY3VycmVudF9iYWRfc2hhMSwgc2hhMSk7Ci0JfSBlbHNlIGlmICghcHJlZml4Y21wKHJlZm5hbWUsICJnb29kLSIpKSB7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChyZWZuYW1lLCAiZ29vZC0iKSkgewogCQlzaGExX2FycmF5X2FwcGVuZCgmZ29vZF9yZXZzLCBzaGExKTsKLQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAocmVmbmFtZSwgInNraXAtIikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKHJlZm5hbWUsICJza2lwLSIpKSB7CiAJCXNoYTFfYXJyYXlfYXBwZW5kKCZza2lwcGVkX3JldnMsIHNoYTEpOwogCX0KIApkaWZmIC0tZ2l0IGEvYmxvY2stc2hhMS9zaGExLmMgYi9ibG9jay1zaGExL3NoYTEuYwppbmRleCBhOGQ0YmY5Li5lMWExZWI2IDEwMDY0NAotLS0gYS9ibG9jay1zaGExL3NoYTEuYworKysgYi9ibG9jay1zaGExL3NoYTEuYwpAQCAtMjc0LDEwICsyNzQsMTAgQEAKIAlwYWRsZW5bMV0gPSBodG9ubCgodWludDMyX3QpKGN0eC0+c2l6ZSA8PCAzKSk7CiAKIAlpID0gY3R4LT5zaXplICYgNjM7Ci0JYmxrX1NIQTFfVXBkYXRlKGN0eCwgcGFkLCAxKyAoNjMgJiAoNTUgLSBpKSkpOworCWJsa19TSEExX1VwZGF0ZShjdHgsIHBhZCwgMSArICg2MyAmICg1NSAtIGkpKSk7CiAJYmxrX1NIQTFfVXBkYXRlKGN0eCwgcGFkbGVuLCA4KTsKIAogCS8qIE91dHB1dCBoYXNoICovCiAJZm9yIChpID0gMDsgaSA8IDU7IGkrKykKLQkJcHV0X2JlMzIoaGFzaG91dCArIGkqNCwgY3R4LT5IW2ldKTsKKwkJcHV0X2JlMzIoaGFzaG91dCArIGkgKiA0LCBjdHgtPkhbaV0pOwogfQpkaWZmIC0tZ2l0IGEvYnJhbmNoLmMgYi9icmFuY2guYwppbmRleCAyZDE1YzE5Li43MjNhMzZiIDEwMDY0NAotLS0gYS9icmFuY2guYworKysgYi9icmFuY2guYwpAQCAtNTAsNyArNTAsNyBAQAogdm9pZCBpbnN0YWxsX2JyYW5jaF9jb25maWcoaW50IGZsYWcsIGNvbnN0IGNoYXIgKmxvY2FsLCBjb25zdCBjaGFyICpvcmlnaW4sIGNvbnN0IGNoYXIgKnJlbW90ZSkKIHsKIAljb25zdCBjaGFyICpzaG9ydG5hbWUgPSByZW1vdGUgKyAxMTsKLQlpbnQgcmVtb3RlX2lzX2JyYW5jaCA9ICFwcmVmaXhjbXAocmVtb3RlLCAicmVmcy9oZWFkcy8iKTsKKwlpbnQgcmVtb3RlX2lzX2JyYW5jaCA9IHN0YXJ0c193aXRoKHJlbW90ZSwgInJlZnMvaGVhZHMvIik7CiAJc3RydWN0IHN0cmJ1ZiBrZXkgPSBTVFJCVUZfSU5JVDsKIAlpbnQgcmViYXNpbmcgPSBzaG91bGRfc2V0dXBfcmViYXNlKG9yaWdpbik7CiAKQEAgLTI3Miw3ICsyNzIsNyBAQAogCQlicmVhazsKIAljYXNlIDE6CiAJCS8qIFVuaXF1ZSBjb21wbGV0aW9uIC0tIGdvb2QsIG9ubHkgaWYgaXQgaXMgYSByZWFsIGJyYW5jaCAqLwotCQlpZiAocHJlZml4Y21wKHJlYWxfcmVmLCAicmVmcy9oZWFkcy8iKSAmJgorCQlpZiAoIXN0YXJ0c193aXRoKHJlYWxfcmVmLCAicmVmcy9oZWFkcy8iKSAmJgogCQkgICAgdmFsaWRhdGVfcmVtb3RlX3RyYWNraW5nX2JyYW5jaChyZWFsX3JlZikpIHsKIAkJCWlmIChleHBsaWNpdF90cmFja2luZykKIAkJCQlkaWUoXyh1cHN0cmVhbV9ub3RfYnJhbmNoKSwgc3RhcnRfbmFtZSk7CkBAIC0yOTAsNyArMjkwLDcgQEAKIAloYXNoY3B5KHNoYTEsIGNvbW1pdC0+b2JqZWN0LnNoYTEpOwogCiAJaWYgKCFkb250X2NoYW5nZV9yZWYpIHsKLQkJbG9jayA9IGxvY2tfYW55X3JlZl9mb3JfdXBkYXRlKHJlZi5idWYsIE5VTEwsIDApOworCQlsb2NrID0gbG9ja19hbnlfcmVmX2Zvcl91cGRhdGUocmVmLmJ1ZiwgTlVMTCwgMCwgTlVMTCk7CiAJCWlmICghbG9jaykKIAkJCWRpZV9lcnJubyhfKCJGYWlsZWQgdG8gbG9jayByZWYgZm9yIHVwZGF0ZSIpKTsKIAl9CkBAIC0zMDYsNyArMzA2LDcgQEAKIAkJCSBzdGFydF9uYW1lKTsKIAogCWlmIChyZWFsX3JlZiAmJiB0cmFjaykKLQkJc2V0dXBfdHJhY2tpbmcocmVmLmJ1ZisxMSwgcmVhbF9yZWYsIHRyYWNrLCBxdWlldCk7CisJCXNldHVwX3RyYWNraW5nKHJlZi5idWYgKyAxMSwgcmVhbF9yZWYsIHRyYWNrLCBxdWlldCk7CiAKIAlpZiAoIWRvbnRfY2hhbmdlX3JlZikKIAkJaWYgKHdyaXRlX3JlZl9zaGExKGxvY2ssIHNoYTEsIG1zZykgPCAwKQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi5oIGIvYnVpbHRpbi5oCmluZGV4IDhhZmEyZGUuLmM0N2MxMTAgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4uaAorKysgYi9idWlsdGluLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogZXh0ZXJuIGludCB0ZXh0Y29udl9vYmplY3QoY29uc3QgY2hhciAqcGF0aCwgdW5zaWduZWQgbW9kZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IHNoYTFfdmFsaWQsIGNoYXIgKipidWYsIHVuc2lnbmVkIGxvbmcgKmJ1Zl9zaXplKTsKIAorZXh0ZXJuIGludCBpc19idWlsdGluKGNvbnN0IGNoYXIgKnMpOworCiBleHRlcm4gaW50IGNtZF9hZGQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwogZXh0ZXJuIGludCBjbWRfYW5ub3RhdGUoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwogZXh0ZXJuIGludCBjbWRfYXBwbHkoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwpAQCAtMTAyLDcgKzEwNCw3IEBACiBleHRlcm4gaW50IGNtZF9yZW1vdGUoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwogZXh0ZXJuIGludCBjbWRfcmVtb3RlX2V4dChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCk7CiBleHRlcm4gaW50IGNtZF9yZW1vdGVfZmQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwotZXh0ZXJuIGludCBjbWRfcmVwb19jb25maWcoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOworZXh0ZXJuIGludCBjbWRfcmVwYWNrKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KTsKIGV4dGVybiBpbnQgY21kX3JlcmVyZShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCk7CiBleHRlcm4gaW50IGNtZF9yZXNldChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCk7CiBleHRlcm4gaW50IGNtZF9yZXZfbGlzdChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCk7CmRpZmYgLS1naXQgYS9idWlsdGluL2FkZC5jIGIvYnVpbHRpbi9hZGQuYwppbmRleCA4MjY2YTljLi4yYTI3MjJmIDEwMDY0NAotLS0gYS9idWlsdGluL2FkZC5jCisrKyBiL2J1aWx0aW4vYWRkLmMKQEAgLTE2NiwxNCArMTY2LDE2IEBACiAJfQogfQogCi1zdGF0aWMgdm9pZCB1cGRhdGVfZmlsZXNfaW5fY2FjaGUoY29uc3QgY2hhciAqcHJlZml4LCBjb25zdCBjaGFyICoqcGF0aHNwZWMsCitzdGF0aWMgdm9pZCB1cGRhdGVfZmlsZXNfaW5fY2FjaGUoY29uc3QgY2hhciAqcHJlZml4LAorCQkJCSAgY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYywKIAkJCQkgIHN0cnVjdCB1cGRhdGVfY2FsbGJhY2tfZGF0YSAqZGF0YSkKIHsKIAlzdHJ1Y3QgcmV2X2luZm8gcmV2OwogCiAJaW5pdF9yZXZpc2lvbnMoJnJldiwgcHJlZml4KTsKIAlzZXR1cF9yZXZpc2lvbnMoMCwgTlVMTCwgJnJldiwgTlVMTCk7Ci0JaW5pdF9wYXRoc3BlYygmcmV2LnBydW5lX2RhdGEsIHBhdGhzcGVjKTsKKwlpZiAocGF0aHNwZWMpCisJCWNvcHlfcGF0aHNwZWMoJnJldi5wcnVuZV9kYXRhLCBwYXRoc3BlYyk7CiAJcmV2LmRpZmZvcHQub3V0cHV0X2Zvcm1hdCA9IERJRkZfRk9STUFUX0NBTExCQUNLOwogCXJldi5kaWZmb3B0LmZvcm1hdF9jYWxsYmFjayA9IHVwZGF0ZV9jYWxsYmFjazsKIAlyZXYuZGlmZm9wdC5mb3JtYXRfY2FsbGJhY2tfZGF0YSA9IGRhdGE7CkBAIC0xODEsNyArMTgzLDggQEAKIAlydW5fZGlmZl9maWxlcygmcmV2LCBESUZGX1JBQ1lfSVNfTU9ESUZJRUQpOwogfQogCi1pbnQgYWRkX2ZpbGVzX3RvX2NhY2hlKGNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqKnBhdGhzcGVjLCBpbnQgZmxhZ3MpCitpbnQgYWRkX2ZpbGVzX3RvX2NhY2hlKGNvbnN0IGNoYXIgKnByZWZpeCwKKwkJICAgICAgIGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMsIGludCBmbGFncykKIHsKIAlzdHJ1Y3QgdXBkYXRlX2NhbGxiYWNrX2RhdGEgZGF0YTsKIApAQCAtMTkyLDIzICsxOTUsMjEgQEAKIH0KIAogI2RlZmluZSBXQVJOX0lNUExJQ0lUX0RPVCAoMXUgPDwgMCkKLXN0YXRpYyBjaGFyICpwcnVuZV9kaXJlY3Rvcnkoc3RydWN0IGRpcl9zdHJ1Y3QgKmRpciwgY29uc3QgY2hhciAqKnBhdGhzcGVjLAorc3RhdGljIGNoYXIgKnBydW5lX2RpcmVjdG9yeShzdHJ1Y3QgZGlyX3N0cnVjdCAqZGlyLCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjLAogCQkJICAgICBpbnQgcHJlZml4LCB1bnNpZ25lZCBmbGFnKQogewogCWNoYXIgKnNlZW47Ci0JaW50IGksIHNwZWNzOworCWludCBpOwogCXN0cnVjdCBkaXJfZW50cnkgKipzcmMsICoqZHN0OwogCi0JZm9yIChzcGVjcyA9IDA7IHBhdGhzcGVjW3NwZWNzXTsgIHNwZWNzKyspCi0JCS8qIG5vdGhpbmcgKi87Ci0Jc2VlbiA9IHhjYWxsb2Moc3BlY3MsIDEpOworCXNlZW4gPSB4Y2FsbG9jKHBhdGhzcGVjLT5uciwgMSk7CiAKIAlzcmMgPSBkc3QgPSBkaXItPmVudHJpZXM7CiAJaSA9IGRpci0+bnI7CiAJd2hpbGUgKC0taSA+PSAwKSB7CiAJCXN0cnVjdCBkaXJfZW50cnkgKmVudHJ5ID0gKnNyYysrOwotCQlpZiAobWF0Y2hfcGF0aHNwZWMocGF0aHNwZWMsIGVudHJ5LT5uYW1lLCBlbnRyeS0+bGVuLAotCQkJCSAgIHByZWZpeCwgc2VlbikpCisJCWlmIChtYXRjaF9wYXRoc3BlY19kZXB0aChwYXRoc3BlYywgZW50cnktPm5hbWUsIGVudHJ5LT5sZW4sCisJCQkJCSBwcmVmaXgsIHNlZW4pKQogCQkJKmRzdCsrID0gZW50cnk7CiAJCWVsc2UgaWYgKGZsYWcgJiBXQVJOX0lNUExJQ0lUX0RPVCkKIAkJCS8qCkBAIC0yMjIsNzIgKzIyMywzMyBAQAogCQkJd2Fybl9wYXRobGVzc19hZGQoKTsKIAl9CiAJZGlyLT5uciA9IGRzdCAtIGRpci0+ZW50cmllczsKLQlhZGRfcGF0aHNwZWNfbWF0Y2hlc19hZ2FpbnN0X2luZGV4KHBhdGhzcGVjLCBzZWVuLCBzcGVjcyk7CisJYWRkX3BhdGhzcGVjX21hdGNoZXNfYWdhaW5zdF9pbmRleChwYXRoc3BlYywgc2Vlbik7CiAJcmV0dXJuIHNlZW47CiB9CiAKLS8qCi0gKiBDaGVja3MgdGhlIGluZGV4IHRvIHNlZSB3aGV0aGVyIGFueSBwYXRoIGluIHBhdGhzcGVjIHJlZmVycyB0bwotICogc29tZXRoaW5nIGluc2lkZSBhIHN1Ym1vZHVsZS4gIElmIHNvLCBkaWVzIHdpdGggYW4gZXJyb3IgbWVzc2FnZS4KLSAqLwotc3RhdGljIHZvaWQgdHJlYXRfZ2l0bGlua3MoY29uc3QgY2hhciAqKnBhdGhzcGVjKQotewotCWludCBpOwotCi0JaWYgKCFwYXRoc3BlYyB8fCAhKnBhdGhzcGVjKQotCQlyZXR1cm47Ci0KLQlmb3IgKGkgPSAwOyBwYXRoc3BlY1tpXTsgaSsrKQotCQlwYXRoc3BlY1tpXSA9IGNoZWNrX3BhdGhfZm9yX2dpdGxpbmsocGF0aHNwZWNbaV0pOwotfQotCi1zdGF0aWMgdm9pZCByZWZyZXNoKGludCB2ZXJib3NlLCBjb25zdCBjaGFyICoqcGF0aHNwZWMpCitzdGF0aWMgdm9pZCByZWZyZXNoKGludCB2ZXJib3NlLCBjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjKQogewogCWNoYXIgKnNlZW47Ci0JaW50IGksIHNwZWNzOworCWludCBpOwogCi0JZm9yIChzcGVjcyA9IDA7IHBhdGhzcGVjW3NwZWNzXTsgIHNwZWNzKyspCi0JCS8qIG5vdGhpbmcgKi87Ci0Jc2VlbiA9IHhjYWxsb2Moc3BlY3MsIDEpOworCXNlZW4gPSB4Y2FsbG9jKHBhdGhzcGVjLT5uciwgMSk7CiAJcmVmcmVzaF9pbmRleCgmdGhlX2luZGV4LCB2ZXJib3NlID8gUkVGUkVTSF9JTl9QT1JDRUxBSU4gOiBSRUZSRVNIX1FVSUVULAogCQkgICAgICBwYXRoc3BlYywgc2VlbiwgXygiVW5zdGFnZWQgY2hhbmdlcyBhZnRlciByZWZyZXNoaW5nIHRoZSBpbmRleDoiKSk7Ci0JZm9yIChpID0gMDsgaSA8IHNwZWNzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgcGF0aHNwZWMtPm5yOyBpKyspIHsKIAkJaWYgKCFzZWVuW2ldKQotCQkJZGllKF8oInBhdGhzcGVjICclcycgZGlkIG5vdCBtYXRjaCBhbnkgZmlsZXMiKSwgcGF0aHNwZWNbaV0pOworCQkJZGllKF8oInBhdGhzcGVjICclcycgZGlkIG5vdCBtYXRjaCBhbnkgZmlsZXMiKSwKKwkJCSAgICBwYXRoc3BlYy0+aXRlbXNbaV0ubWF0Y2gpOwogCX0KICAgICAgICAgZnJlZShzZWVuKTsKIH0KIAotLyoKLSAqIE5vcm1hbGl6ZXMgYXJndiByZWxhdGl2ZSB0byBwcmVmaXgsIHZpYSBnZXRfcGF0aHNwZWMoKSwgYW5kIHRoZW4KLSAqIHJ1bnMgZGllX2lmX3BhdGhfYmV5b25kX3N5bWxpbmsoKSBvbiBlYWNoIHBhdGggaW4gdGhlIG5vcm1hbGl6ZWQKLSAqIGxpc3QuCi0gKi8KLXN0YXRpYyBjb25zdCBjaGFyICoqdmFsaWRhdGVfcGF0aHNwZWMoY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKLXsKLQljb25zdCBjaGFyICoqcGF0aHNwZWMgPSBnZXRfcGF0aHNwZWMocHJlZml4LCBhcmd2KTsKLQotCWlmIChwYXRoc3BlYykgewotCQljb25zdCBjaGFyICoqcDsKLQkJZm9yIChwID0gcGF0aHNwZWM7ICpwOyBwKyspIHsKLQkJCWRpZV9pZl9wYXRoX2JleW9uZF9zeW1saW5rKCpwLCBwcmVmaXgpOwotCQl9Ci0JfQotCi0JcmV0dXJuIHBhdGhzcGVjOwotfQotCiBpbnQgcnVuX2FkZF9pbnRlcmFjdGl2ZShjb25zdCBjaGFyICpyZXZpc2lvbiwgY29uc3QgY2hhciAqcGF0Y2hfbW9kZSwKLQkJCWNvbnN0IGNoYXIgKipwYXRoc3BlYykKKwkJCWNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMpCiB7Ci0JaW50IHN0YXR1cywgYWMsIHBjID0gMDsKKwlpbnQgc3RhdHVzLCBhYywgaTsKIAljb25zdCBjaGFyICoqYXJnczsKIAotCWlmIChwYXRoc3BlYykKLQkJd2hpbGUgKHBhdGhzcGVjW3BjXSkKLQkJCXBjKys7Ci0KLQlhcmdzID0geGNhbGxvYyhzaXplb2YoY29uc3QgY2hhciAqKSwgKHBjICsgNSkpOworCWFyZ3MgPSB4Y2FsbG9jKHNpemVvZihjb25zdCBjaGFyICopLCAocGF0aHNwZWMtPm5yICsgNikpOwogCWFjID0gMDsKIAlhcmdzW2FjKytdID0gImFkZC0taW50ZXJhY3RpdmUiOwogCWlmIChwYXRjaF9tb2RlKQpAQCAtMjk1LDExICsyNTcsOSBAQAogCWlmIChyZXZpc2lvbikKIAkJYXJnc1thYysrXSA9IHJldmlzaW9uOwogCWFyZ3NbYWMrK10gPSAiLS0iOwotCWlmIChwYykgewotCQltZW1jcHkoJihhcmdzW2FjXSksIHBhdGhzcGVjLCBzaXplb2YoY29uc3QgY2hhciAqKSAqIHBjKTsKLQkJYWMgKz0gcGM7Ci0JfQotCWFyZ3NbYWNdID0gTlVMTDsKKwlmb3IgKGkgPSAwOyBpIDwgcGF0aHNwZWMtPm5yOyBpKyspCisJCS8qIHBhc3Mgb3JpZ2luYWwgcGF0aHNwZWMsIHRvIGJlIHJlLXBhcnNlZCAqLworCQlhcmdzW2FjKytdID0gcGF0aHNwZWMtPml0ZW1zW2ldLm9yaWdpbmFsOwogCiAJc3RhdHVzID0gcnVuX2NvbW1hbmRfdl9vcHQoYXJncywgUlVOX0dJVF9DTUQpOwogCWZyZWUoYXJncyk7CkBAIC0zMDgsMTcgKzI2OCwxNyBAQAogCiBpbnQgaW50ZXJhY3RpdmVfYWRkKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4LCBpbnQgcGF0Y2gpCiB7Ci0JY29uc3QgY2hhciAqKnBhdGhzcGVjID0gTlVMTDsKKwlzdHJ1Y3QgcGF0aHNwZWMgcGF0aHNwZWM7CiAKLQlpZiAoYXJnYykgewotCQlwYXRoc3BlYyA9IHZhbGlkYXRlX3BhdGhzcGVjKGFyZ3YsIHByZWZpeCk7Ci0JCWlmICghcGF0aHNwZWMpCi0JCQlyZXR1cm4gLTE7Ci0JfQorCXBhcnNlX3BhdGhzcGVjKCZwYXRoc3BlYywgMCwKKwkJICAgICAgIFBBVEhTUEVDX1BSRUZFUl9GVUxMIHwKKwkJICAgICAgIFBBVEhTUEVDX1NZTUxJTktfTEVBRElOR19QQVRIIHwKKwkJICAgICAgIFBBVEhTUEVDX1BSRUZJWF9PUklHSU4sCisJCSAgICAgICBwcmVmaXgsIGFyZ3YpOwogCiAJcmV0dXJuIHJ1bl9hZGRfaW50ZXJhY3RpdmUoTlVMTCwKIAkJCQkgICBwYXRjaCA/ICItLXBhdGNoIiA6IE5VTEwsCi0JCQkJICAgcGF0aHNwZWMpOworCQkJCSAgICZwYXRoc3BlYyk7CiB9CiAKIHN0YXRpYyBpbnQgZWRpdF9wYXRjaChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKQEAgLTMzNiw3ICsyOTYsNyBAQAogCWdpdF9jb25maWcoZ2l0X2RpZmZfYmFzaWNfY29uZmlnLCBOVUxMKTsgLyogbm8gImRpZmYiIFVJIG9wdGlvbnMgKi8KIAogCWlmIChyZWFkX2NhY2hlKCkgPCAwKQotCQlkaWUgKF8oIkNvdWxkIG5vdCByZWFkIHRoZSBpbmRleCIpKTsKKwkJZGllKF8oIkNvdWxkIG5vdCByZWFkIHRoZSBpbmRleCIpKTsKIAogCWluaXRfcmV2aXNpb25zKCZyZXYsIHByZWZpeCk7CiAJcmV2LmRpZmZvcHQuY29udGV4dCA9IDc7CkBAIC0zNDcsMTEgKzMwNywxMSBAQAogCURJRkZfT1BUX1NFVCgmcmV2LmRpZmZvcHQsIElHTk9SRV9ESVJUWV9TVUJNT0RVTEVTKTsKIAlvdXQgPSBvcGVuKGZpbGUsIE9fQ1JFQVQgfCBPX1dST05MWSwgMDY2Nik7CiAJaWYgKG91dCA8IDApCi0JCWRpZSAoXygiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZy4iKSwgZmlsZSk7CisJCWRpZShfKCJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nLiIpLCBmaWxlKTsKIAlyZXYuZGlmZm9wdC5maWxlID0geGZkb3BlbihvdXQsICJ3Iik7CiAJcmV2LmRpZmZvcHQuY2xvc2VfZmlsZSA9IDE7CiAJaWYgKHJ1bl9kaWZmX2ZpbGVzKCZyZXYsIDApKQotCQlkaWUgKF8oIkNvdWxkIG5vdCB3cml0ZSBwYXRjaCIpKTsKKwkJZGllKF8oIkNvdWxkIG5vdCB3cml0ZSBwYXRjaCIpKTsKIAogCWxhdW5jaF9lZGl0b3IoZmlsZSwgTlVMTCwgTlVMTCk7CiAKQEAgLTM2NCw3ICszMjQsNyBAQAogCWNoaWxkLmdpdF9jbWQgPSAxOwogCWNoaWxkLmFyZ3YgPSBhcHBseV9hcmd2OwogCWlmIChydW5fY29tbWFuZCgmY2hpbGQpKQotCQlkaWUgKF8oIkNvdWxkIG5vdCBhcHBseSAnJXMnIiksIGZpbGUpOworCQlkaWUoXygiQ291bGQgbm90IGFwcGx5ICclcyciKSwgZmlsZSk7CiAKIAl1bmxpbmsoZmlsZSk7CiAJZnJlZShmaWxlKTsKQEAgLTQ0Niw3ICs0MDYsNyBAQAogewogCWludCBleGl0X3N0YXR1cyA9IDA7CiAJaW50IG5ld2ZkOwotCWNvbnN0IGNoYXIgKipwYXRoc3BlYzsKKwlzdHJ1Y3QgcGF0aHNwZWMgcGF0aHNwZWM7CiAJc3RydWN0IGRpcl9zdHJ1Y3QgZGlyOwogCWludCBmbGFnczsKIAlpbnQgYWRkX25ld19maWxlczsKQEAgLTUyNywxNCArNDg3LDIzIEBACiAJCWZwcmludGYoc3RkZXJyLCBfKCJNYXliZSB5b3Ugd2FudGVkIHRvIHNheSAnZ2l0IGFkZCAuJz9cbiIpKTsKIAkJcmV0dXJuIDA7CiAJfQotCXBhdGhzcGVjID0gdmFsaWRhdGVfcGF0aHNwZWMoYXJndiwgcHJlZml4KTsKIAogCWlmIChyZWFkX2NhY2hlKCkgPCAwKQogCQlkaWUoXygiaW5kZXggZmlsZSBjb3JydXB0IikpOwotCXRyZWF0X2dpdGxpbmtzKHBhdGhzcGVjKTsKKworCS8qCisJICogQ2hlY2sgdGhlICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIiBibG9jaworCSAqIGJlbG93IGJlZm9yZSBlbmFibGluZyBuZXcgbWFnaWMuCisJICovCisJcGFyc2VfcGF0aHNwZWMoJnBhdGhzcGVjLCAwLAorCQkgICAgICAgUEFUSFNQRUNfUFJFRkVSX0ZVTEwgfAorCQkgICAgICAgUEFUSFNQRUNfU1lNTElOS19MRUFESU5HX1BBVEggfAorCQkgICAgICAgUEFUSFNQRUNfU1RSSVBfU1VCTU9EVUxFX1NMQVNIX0VYUEVOU0lWRSwKKwkJICAgICAgIHByZWZpeCwgYXJndik7CiAKIAlpZiAoYWRkX25ld19maWxlcykgewogCQlpbnQgYmFzZWxlbjsKKwkJc3RydWN0IHBhdGhzcGVjIGVtcHR5X3BhdGhzcGVjOwogCiAJCS8qIFNldCB1cCB0aGUgZGVmYXVsdCBnaXQgcG9yY2VsYWluIGV4Y2x1ZGVzICovCiAJCW1lbXNldCgmZGlyLCAwLCBzaXplb2YoZGlyKSk7CkBAIC01NDMsMzUgKzUxMiw1MiBAQAogCQkJc2V0dXBfc3RhbmRhcmRfZXhjbHVkZXMoJmRpcik7CiAJCX0KIAorCQltZW1zZXQoJmVtcHR5X3BhdGhzcGVjLCAwLCBzaXplb2YoZW1wdHlfcGF0aHNwZWMpKTsKIAkJLyogVGhpcyBwaWNrcyB1cCB0aGUgcGF0aHMgdGhhdCBhcmUgbm90IHRyYWNrZWQgKi8KLQkJYmFzZWxlbiA9IGZpbGxfZGlyZWN0b3J5KCZkaXIsIGltcGxpY2l0X2RvdCA/IE5VTEwgOiBwYXRoc3BlYyk7Ci0JCWlmIChwYXRoc3BlYykKLQkJCXNlZW4gPSBwcnVuZV9kaXJlY3RvcnkoJmRpciwgcGF0aHNwZWMsIGJhc2VsZW4sCisJCWJhc2VsZW4gPSBmaWxsX2RpcmVjdG9yeSgmZGlyLCBpbXBsaWNpdF9kb3QgPyAmZW1wdHlfcGF0aHNwZWMgOiAmcGF0aHNwZWMpOworCQlpZiAocGF0aHNwZWMubnIpCisJCQlzZWVuID0gcHJ1bmVfZGlyZWN0b3J5KCZkaXIsICZwYXRoc3BlYywgYmFzZWxlbiwKIAkJCQkJaW1wbGljaXRfZG90ID8gV0FSTl9JTVBMSUNJVF9ET1QgOiAwKTsKIAl9CiAKIAlpZiAocmVmcmVzaF9vbmx5KSB7Ci0JCXJlZnJlc2godmVyYm9zZSwgcGF0aHNwZWMpOworCQlyZWZyZXNoKHZlcmJvc2UsICZwYXRoc3BlYyk7CiAJCWdvdG8gZmluaXNoOwogCX0KIAlpZiAoaW1wbGljaXRfZG90ICYmIHByZWZpeCkKIAkJcmVmcmVzaF9jYWNoZShSRUZSRVNIX1FVSUVUKTsKIAotCWlmIChwYXRoc3BlYykgeworCWlmIChwYXRoc3BlYy5ucikgewogCQlpbnQgaTsKIAogCQlpZiAoIXNlZW4pCi0JCQlzZWVuID0gZmluZF9wYXRoc3BlY3NfbWF0Y2hpbmdfYWdhaW5zdF9pbmRleChwYXRoc3BlYyk7Ci0JCWZvciAoaSA9IDA7IHBhdGhzcGVjW2ldOyBpKyspIHsKLQkJCWlmICghc2VlbltpXSAmJiBwYXRoc3BlY1tpXVswXQotCQkJICAgICYmICFmaWxlX2V4aXN0cyhwYXRoc3BlY1tpXSkpIHsKKwkJCXNlZW4gPSBmaW5kX3BhdGhzcGVjc19tYXRjaGluZ19hZ2FpbnN0X2luZGV4KCZwYXRoc3BlYyk7CisKKwkJLyoKKwkJICogZmlsZV9leGlzdHMoKSBhc3N1bWVzIGV4YWN0IG1hdGNoCisJCSAqLworCQlHVUFSRF9QQVRIU1BFQygmcGF0aHNwZWMsCisJCQkgICAgICAgUEFUSFNQRUNfRlJPTVRPUCB8CisJCQkgICAgICAgUEFUSFNQRUNfTElURVJBTCB8CisJCQkgICAgICAgUEFUSFNQRUNfR0xPQiB8CisJCQkgICAgICAgUEFUSFNQRUNfSUNBU0UgfAorCQkJICAgICAgIFBBVEhTUEVDX0VYQ0xVREUpOworCisJCWZvciAoaSA9IDA7IGkgPCBwYXRoc3BlYy5ucjsgaSsrKSB7CisJCQljb25zdCBjaGFyICpwYXRoID0gcGF0aHNwZWMuaXRlbXNbaV0ubWF0Y2g7CisJCQlpZiAocGF0aHNwZWMuaXRlbXNbaV0ubWFnaWMgJiBQQVRIU1BFQ19FWENMVURFKQorCQkJCWNvbnRpbnVlOworCQkJaWYgKCFzZWVuW2ldICYmIHBhdGhbMF0gJiYKKwkJCSAgICAoKHBhdGhzcGVjLml0ZW1zW2ldLm1hZ2ljICYKKwkJCSAgICAgIChQQVRIU1BFQ19HTE9CIHwgUEFUSFNQRUNfSUNBU0UpKSB8fAorCQkJICAgICAhZmlsZV9leGlzdHMocGF0aCkpKSB7CiAJCQkJaWYgKGlnbm9yZV9taXNzaW5nKSB7CiAJCQkJCWludCBkdHlwZSA9IERUX1VOS05PV047Ci0JCQkJCWlmIChpc19leGNsdWRlZCgmZGlyLCBwYXRoc3BlY1tpXSwgJmR0eXBlKSkKLQkJCQkJCWRpcl9hZGRfaWdub3JlZCgmZGlyLCBwYXRoc3BlY1tpXSwgc3RybGVuKHBhdGhzcGVjW2ldKSk7CisJCQkJCWlmIChpc19leGNsdWRlZCgmZGlyLCBwYXRoLCAmZHR5cGUpKQorCQkJCQkJZGlyX2FkZF9pZ25vcmVkKCZkaXIsIHBhdGgsIHBhdGhzcGVjLml0ZW1zW2ldLmxlbik7CiAJCQkJfSBlbHNlCiAJCQkJCWRpZShfKCJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIiksCi0JCQkJCSAgICBwYXRoc3BlY1tpXSk7CisJCQkJCSAgICBwYXRoc3BlYy5pdGVtc1tpXS5vcmlnaW5hbCk7CiAJCQl9CiAJCX0KIAkJZnJlZShzZWVuKTsKQEAgLTU4NywxMCArNTczLDExIEBACiAJCSAqLwogCQl1cGRhdGVfZGF0YS5pbXBsaWNpdF9kb3QgPSBwcmVmaXg7CiAJCXVwZGF0ZV9kYXRhLmltcGxpY2l0X2RvdF9sZW4gPSBzdHJsZW4ocHJlZml4KTsKLQkJcGF0aHNwZWMgPSBOVUxMOworCQlmcmVlX3BhdGhzcGVjKCZwYXRoc3BlYyk7CisJCW1lbXNldCgmcGF0aHNwZWMsIDAsIHNpemVvZihwYXRoc3BlYykpOwogCX0KIAl1cGRhdGVfZGF0YS5mbGFncyA9IGZsYWdzICYgfkFERF9DQUNIRV9JTVBMSUNJVF9ET1Q7Ci0JdXBkYXRlX2ZpbGVzX2luX2NhY2hlKHByZWZpeCwgcGF0aHNwZWMsICZ1cGRhdGVfZGF0YSk7CisJdXBkYXRlX2ZpbGVzX2luX2NhY2hlKHByZWZpeCwgJnBhdGhzcGVjLCAmdXBkYXRlX2RhdGEpOwogCiAJZXhpdF9zdGF0dXMgfD0gISF1cGRhdGVfZGF0YS5hZGRfZXJyb3JzOwogCWlmIChhZGRfbmV3X2ZpbGVzKQpAQCAtNTk4LDcgKzU4NSw3IEBACiAKIAl1bnBsdWdfYnVsa19jaGVja2luKCk7CiAKLSBmaW5pc2g6CitmaW5pc2g6CiAJaWYgKGFjdGl2ZV9jYWNoZV9jaGFuZ2VkKSB7CiAJCWlmICh3cml0ZV9jYWNoZShuZXdmZCwgYWN0aXZlX2NhY2hlLCBhY3RpdmVfbnIpIHx8CiAJCSAgICBjb21taXRfbG9ja2VkX2luZGV4KCZsb2NrX2ZpbGUpKQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9hcHBseS5jIGIvYnVpbHRpbi9hcHBseS5jCmluZGV4IDUwOTEyYzkuLmIwZDA5ODYgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vYXBwbHkuYworKysgYi9idWlsdGluL2FwcGx5LmMKQEAgLTE0MDksMTAgKzE0MDksMTAgQEAKIAkJY2FzZSAnXFwnOgogCQkJY29udGludWU7CiAJCWNhc2UgJ0AnOgotCQkJcmV0ID0gc2l6ZSA8IDMgfHwgcHJlZml4Y21wKGxpbmUsICJAQCAiKTsKKwkJCXJldCA9IHNpemUgPCAzIHx8ICFzdGFydHNfd2l0aChsaW5lLCAiQEAgIik7CiAJCQlicmVhazsKIAkJY2FzZSAnZCc6Ci0JCQlyZXQgPSBzaXplIDwgNSB8fCBwcmVmaXhjbXAobGluZSwgImRpZmYgIik7CisJCQlyZXQgPSBzaXplIDwgNSB8fCAhc3RhcnRzX3dpdGgobGluZSwgImRpZmYgIik7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCXJldCA9IC0xOwpAQCAtMTc5OCwxMSArMTc5OCwxMSBAQAogCiAJKnN0YXR1c19wID0gMDsKIAotCWlmICghcHJlZml4Y21wKGJ1ZmZlciwgImRlbHRhICIpKSB7CisJaWYgKHN0YXJ0c193aXRoKGJ1ZmZlciwgImRlbHRhICIpKSB7CiAJCXBhdGNoX21ldGhvZCA9IEJJTkFSWV9ERUxUQV9ERUZMQVRFRDsKIAkJb3JpZ2xlbiA9IHN0cnRvdWwoYnVmZmVyICsgNiwgTlVMTCwgMTApOwogCX0KLQllbHNlIGlmICghcHJlZml4Y21wKGJ1ZmZlciwgImxpdGVyYWwgIikpIHsKKwllbHNlIGlmIChzdGFydHNfd2l0aChidWZmZXIsICJsaXRlcmFsICIpKSB7CiAJCXBhdGNoX21ldGhvZCA9IEJJTkFSWV9MSVRFUkFMX0RFRkxBVEVEOwogCQlvcmlnbGVuID0gc3RydG91bChidWZmZXIgKyA4LCBOVUxMLCAxMCk7CiAJfQpAQCAtMzYyNywxMiArMzYyNywxMiBAQAogCSAgICBodW5rLT5vbGRwb3MgPT0gMSAmJiBodW5rLT5vbGRsaW5lcyA9PSAxICYmCiAJICAgIC8qIGRvZXMgcHJlaW1hZ2UgYmVnaW4gd2l0aCB0aGUgaGVhZGluZz8gKi8KIAkgICAgKHByZWltYWdlID0gbWVtY2hyKGh1bmstPnBhdGNoLCAnXG4nLCBodW5rLT5zaXplKSkgIT0gTlVMTCAmJgotCSAgICAhcHJlZml4Y21wKCsrcHJlaW1hZ2UsIGhlYWRpbmcpICYmCisJICAgIHN0YXJ0c193aXRoKCsrcHJlaW1hZ2UsIGhlYWRpbmcpICYmCiAJICAgIC8qIGRvZXMgaXQgcmVjb3JkIGZ1bGwgU0hBLTE/ICovCiAJICAgICFnZXRfc2hhMV9oZXgocHJlaW1hZ2UgKyBzaXplb2YoaGVhZGluZykgLSAxLCBzaGExKSAmJgogCSAgICBwcmVpbWFnZVtzaXplb2YoaGVhZGluZykgKyA0MCAtIDFdID09ICdcbicgJiYKIAkgICAgLyogZG9lcyB0aGUgYWJicmV2aWF0ZWQgbmFtZSBvbiB0aGUgaW5kZXggbGluZSBhZ3JlZSB3aXRoIGl0PyAqLwotCSAgICAhcHJlZml4Y21wKHByZWltYWdlICsgc2l6ZW9mKGhlYWRpbmcpIC0gMSwgcC0+b2xkX3NoYTFfcHJlZml4KSkKKwkgICAgc3RhcnRzX3dpdGgocHJlaW1hZ2UgKyBzaXplb2YoaGVhZGluZykgLSAxLCBwLT5vbGRfc2hhMV9wcmVmaXgpKQogCQlyZXR1cm4gMDsgLyogaXQgYWxsIGxvb2tzIGZpbmUgKi8KIAogCS8qIHdlIG1heSBoYXZlIGZ1bGwgb2JqZWN0IG5hbWUgb24gdGhlIGluZGV4IGxpbmUgKi8KQEAgLTQzNjMsMjMgKzQzNjMsMjMgQEAKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssICdwJywgTlVMTCwgTlVMTCwgTl8oIm51bSIpLAogCQkJTl8oInJlbW92ZSA8bnVtPiBsZWFkaW5nIHNsYXNoZXMgZnJvbSB0cmFkaXRpb25hbCBkaWZmIHBhdGhzIiksCiAJCQkwLCBvcHRpb25fcGFyc2VfcCB9LAotCQlPUFRfQk9PTEVBTigwLCAibm8tYWRkIiwgJm5vX2FkZCwKKwkJT1BUX0JPT0woMCwgIm5vLWFkZCIsICZub19hZGQsCiAJCQlOXygiaWdub3JlIGFkZGl0aW9ucyBtYWRlIGJ5IHRoZSBwYXRjaCIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgInN0YXQiLCAmZGlmZnN0YXQsCisJCU9QVF9CT09MKDAsICJzdGF0IiwgJmRpZmZzdGF0LAogCQkJTl8oImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBvdXRwdXQgZGlmZnN0YXQgZm9yIHRoZSBpbnB1dCIpKSwKIAkJT1BUX05PT1BfTk9BUkcoMCwgImFsbG93LWJpbmFyeS1yZXBsYWNlbWVudCIpLAogCQlPUFRfTk9PUF9OT0FSRygwLCAiYmluYXJ5IiksCi0JCU9QVF9CT09MRUFOKDAsICJudW1zdGF0IiwgJm51bXN0YXQsCisJCU9QVF9CT09MKDAsICJudW1zdGF0IiwgJm51bXN0YXQsCiAJCQlOXygic2hvdyBudW1iZXIgb2YgYWRkZWQgYW5kIGRlbGV0ZWQgbGluZXMgaW4gZGVjaW1hbCBub3RhdGlvbiIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgInN1bW1hcnkiLCAmc3VtbWFyeSwKKwkJT1BUX0JPT0woMCwgInN1bW1hcnkiLCAmc3VtbWFyeSwKIAkJCU5fKCJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgb3V0cHV0IGEgc3VtbWFyeSBmb3IgdGhlIGlucHV0IikpLAotCQlPUFRfQk9PTEVBTigwLCAiY2hlY2siLCAmY2hlY2ssCisJCU9QVF9CT09MKDAsICJjaGVjayIsICZjaGVjaywKIAkJCU5fKCJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgc2VlIGlmIHRoZSBwYXRjaCBpcyBhcHBsaWNhYmxlIikpLAotCQlPUFRfQk9PTEVBTigwLCAiaW5kZXgiLCAmY2hlY2tfaW5kZXgsCisJCU9QVF9CT09MKDAsICJpbmRleCIsICZjaGVja19pbmRleCwKIAkJCU5fKCJtYWtlIHN1cmUgdGhlIHBhdGNoIGlzIGFwcGxpY2FibGUgdG8gdGhlIGN1cnJlbnQgaW5kZXgiKSksCi0JCU9QVF9CT09MRUFOKDAsICJjYWNoZWQiLCAmY2FjaGVkLAorCQlPUFRfQk9PTCgwLCAiY2FjaGVkIiwgJmNhY2hlZCwKIAkJCU5fKCJhcHBseSBhIHBhdGNoIHdpdGhvdXQgdG91Y2hpbmcgdGhlIHdvcmtpbmcgdHJlZSIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgImFwcGx5IiwgJmZvcmNlX2FwcGx5LAorCQlPUFRfQk9PTCgwLCAiYXBwbHkiLCAmZm9yY2VfYXBwbHksCiAJCQlOXygiYWxzbyBhcHBseSB0aGUgcGF0Y2ggKHVzZSB3aXRoIC0tc3RhdC8tLXN1bW1hcnkvLS1jaGVjaykiKSksCiAJCU9QVF9CT09MKCczJywgIjN3YXkiLCAmdGhyZWV3YXksCiAJCQkgTl8oICJhdHRlbXB0IHRocmVlLXdheSBtZXJnZSBpZiBhIHBhdGNoIGRvZXMgbm90IGFwcGx5IikpLApAQCAtNDM5OSwxMyArNDM5OSwxMyBAQAogCQl7IE9QVElPTl9DQUxMQkFDSywgMCwgImlnbm9yZS13aGl0ZXNwYWNlIiwgTlVMTCwgTlVMTCwKIAkJCU5fKCJpZ25vcmUgY2hhbmdlcyBpbiB3aGl0ZXNwYWNlIHdoZW4gZmluZGluZyBjb250ZXh0IiksCiAJCQlQQVJTRV9PUFRfTk9BUkcsIG9wdGlvbl9wYXJzZV9zcGFjZV9jaGFuZ2UgfSwKLQkJT1BUX0JPT0xFQU4oJ1InLCAicmV2ZXJzZSIsICZhcHBseV9pbl9yZXZlcnNlLAorCQlPUFRfQk9PTCgnUicsICJyZXZlcnNlIiwgJmFwcGx5X2luX3JldmVyc2UsCiAJCQlOXygiYXBwbHkgdGhlIHBhdGNoIGluIHJldmVyc2UiKSksCi0JCU9QVF9CT09MRUFOKDAsICJ1bmlkaWZmLXplcm8iLCAmdW5pZGlmZl96ZXJvLAorCQlPUFRfQk9PTCgwLCAidW5pZGlmZi16ZXJvIiwgJnVuaWRpZmZfemVybywKIAkJCU5fKCJkb24ndCBleHBlY3QgYXQgbGVhc3Qgb25lIGxpbmUgb2YgY29udGV4dCIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgInJlamVjdCIsICZhcHBseV93aXRoX3JlamVjdCwKKwkJT1BUX0JPT0woMCwgInJlamVjdCIsICZhcHBseV93aXRoX3JlamVjdCwKIAkJCU5fKCJsZWF2ZSB0aGUgcmVqZWN0ZWQgaHVua3MgaW4gY29ycmVzcG9uZGluZyAqLnJlaiBmaWxlcyIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgImFsbG93LW92ZXJsYXAiLCAmYWxsb3dfb3ZlcmxhcCwKKwkJT1BUX0JPT0woMCwgImFsbG93LW92ZXJsYXAiLCAmYWxsb3dfb3ZlcmxhcCwKIAkJCU5fKCJhbGxvdyBvdmVybGFwcGluZyBodW5rcyIpKSwKIAkJT1BUX19WRVJCT1NFKCZhcHBseV92ZXJib3NlbHksIE5fKCJiZSB2ZXJib3NlIikpLAogCQlPUFRfQklUKDAsICJpbmFjY3VyYXRlLWVvZiIsICZvcHRpb25zLApkaWZmIC0tZ2l0IGEvYnVpbHRpbi9hcmNoaXZlLmMgYi9idWlsdGluL2FyY2hpdmUuYwppbmRleCA0OTE3OGYxLi5hMWUzYjk0IDEwMDY0NAotLS0gYS9idWlsdGluL2FyY2hpdmUuYworKysgYi9idWlsdGluL2FyY2hpdmUuYwpAQCAtNTcsOSArNTcsOSBAQAogCWlmICghYnVmKQogCQlkaWUoXygiZ2l0IGFyY2hpdmU6IGV4cGVjdGVkIEFDSy9OQUssIGdvdCBFT0YiKSk7CiAJaWYgKHN0cmNtcChidWYsICJBQ0siKSkgewotCQlpZiAoIXByZWZpeGNtcChidWYsICJOQUNLICIpKQorCQlpZiAoc3RhcnRzX3dpdGgoYnVmLCAiTkFDSyAiKSkKIAkJCWRpZShfKCJnaXQgYXJjaGl2ZTogTkFDSyAlcyIpLCBidWYgKyA1KTsKLQkJaWYgKCFwcmVmaXhjbXAoYnVmLCAiRVJSICIpKQorCQlpZiAoc3RhcnRzX3dpdGgoYnVmLCAiRVJSICIpKQogCQkJZGllKF8oInJlbW90ZSBlcnJvcjogJXMiKSwgYnVmICsgNCk7CiAJCWRpZShfKCJnaXQgYXJjaGl2ZTogcHJvdG9jb2wgZXJyb3IiKSk7CiAJfQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9iaXNlY3QtLWhlbHBlci5jIGIvYnVpbHRpbi9iaXNlY3QtLWhlbHBlci5jCmluZGV4IGUzODg0ZTMuLjMzMjQyMjkwIDEwMDY0NAotLS0gYS9idWlsdGluL2Jpc2VjdC0taGVscGVyLmMKKysrIGIvYnVpbHRpbi9iaXNlY3QtLWhlbHBlci5jCkBAIC0xMywxMCArMTMsMTAgQEAKIAlpbnQgbmV4dF9hbGwgPSAwOwogCWludCBub19jaGVja291dCA9IDA7CiAJc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7Ci0JCU9QVF9CT09MRUFOKDAsICJuZXh0LWFsbCIsICZuZXh0X2FsbCwKLQkJCSAgICBOXygicGVyZm9ybSAnZ2l0IGJpc2VjdCBuZXh0JyIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgIm5vLWNoZWNrb3V0IiwgJm5vX2NoZWNrb3V0LAotCQkJICAgIE5fKCJ1cGRhdGUgQklTRUNUX0hFQUQgaW5zdGVhZCBvZiBjaGVja2luZyBvdXQgdGhlIGN1cnJlbnQgY29tbWl0IikpLAorCQlPUFRfQk9PTCgwLCAibmV4dC1hbGwiLCAmbmV4dF9hbGwsCisJCQkgTl8oInBlcmZvcm0gJ2dpdCBiaXNlY3QgbmV4dCciKSksCisJCU9QVF9CT09MKDAsICJuby1jaGVja291dCIsICZub19jaGVja291dCwKKwkJCSBOXygidXBkYXRlIEJJU0VDVF9IRUFEIGluc3RlYWQgb2YgY2hlY2tpbmcgb3V0IHRoZSBjdXJyZW50IGNvbW1pdCIpKSwKIAkJT1BUX0VORCgpCiAJfTsKIApkaWZmIC0tZ2l0IGEvYnVpbHRpbi9ibGFtZS5jIGIvYnVpbHRpbi9ibGFtZS5jCmluZGV4IDA3OWRjZDMuLmU0NGE2YmIgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vYmxhbWUuYworKysgYi9idWlsdGluL2JsYW1lLmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJ1dGY4LmgiCiAjaW5jbHVkZSAidXNlcmRpZmYuaCIKICNpbmNsdWRlICJsaW5lLXJhbmdlLmgiCisjaW5jbHVkZSAibGluZS1sb2cuaCIKIAogc3RhdGljIGNoYXIgYmxhbWVfdXNhZ2VbXSA9IE5fKCJnaXQgYmxhbWUgW29wdGlvbnNdIFtyZXYtb3B0c10gW3Jldl0gWy0tXSBmaWxlIik7CiAKQEAgLTQwOCw3ICs0MDksOSBAQAogCXBhdGhzWzBdID0gb3JpZ2luLT5wYXRoOwogCXBhdGhzWzFdID0gTlVMTDsKIAotCWRpZmZfdHJlZV9zZXR1cF9wYXRocyhwYXRocywgJmRpZmZfb3B0cyk7CisJcGFyc2VfcGF0aHNwZWMoJmRpZmZfb3B0cy5wYXRoc3BlYywKKwkJICAgICAgIFBBVEhTUEVDX0FMTF9NQUdJQyAmIH5QQVRIU1BFQ19MSVRFUkFMLAorCQkgICAgICAgUEFUSFNQRUNfTElURVJBTF9QQVRILCAiIiwgcGF0aHMpOwogCWRpZmZfc2V0dXBfZG9uZSgmZGlmZl9vcHRzKTsKIAogCWlmIChpc19udWxsX3NoYTEob3JpZ2luLT5jb21taXQtPm9iamVjdC5zaGExKSkKQEAgLTQ1OCw3ICs0NjEsNyBAQAogCQl9CiAJfQogCWRpZmZfZmx1c2goJmRpZmZfb3B0cyk7Ci0JZGlmZl90cmVlX3JlbGVhc2VfcGF0aHMoJmRpZmZfb3B0cyk7CisJZnJlZV9wYXRoc3BlYygmZGlmZl9vcHRzLnBhdGhzcGVjKTsKIAlpZiAocG9yaWdpbikgewogCQkvKgogCQkgKiBDcmVhdGUgYSBmcmVlc3RhbmRpbmcgY29weSB0aGF0IGlzIG5vdCBwYXJ0IG9mCkBAIC00ODYsMTUgKzQ4OSwxMiBAQAogCXN0cnVjdCBvcmlnaW4gKnBvcmlnaW4gPSBOVUxMOwogCXN0cnVjdCBkaWZmX29wdGlvbnMgZGlmZl9vcHRzOwogCWludCBpOwotCWNvbnN0IGNoYXIgKnBhdGhzWzJdOwogCiAJZGlmZl9zZXR1cCgmZGlmZl9vcHRzKTsKIAlESUZGX09QVF9TRVQoJmRpZmZfb3B0cywgUkVDVVJTSVZFKTsKIAlkaWZmX29wdHMuZGV0ZWN0X3JlbmFtZSA9IERJRkZfREVURUNUX1JFTkFNRTsKIAlkaWZmX29wdHMub3V0cHV0X2Zvcm1hdCA9IERJRkZfRk9STUFUX05PX09VVFBVVDsKIAlkaWZmX29wdHMuc2luZ2xlX2ZvbGxvdyA9IG9yaWdpbi0+cGF0aDsKLQlwYXRoc1swXSA9IE5VTEw7Ci0JZGlmZl90cmVlX3NldHVwX3BhdGhzKHBhdGhzLCAmZGlmZl9vcHRzKTsKIAlkaWZmX3NldHVwX2RvbmUoJmRpZmZfb3B0cyk7CiAKIAlpZiAoaXNfbnVsbF9zaGExKG9yaWdpbi0+Y29tbWl0LT5vYmplY3Quc2hhMSkpCkBAIC01MTYsNyArNTE2LDcgQEAKIAkJfQogCX0KIAlkaWZmX2ZsdXNoKCZkaWZmX29wdHMpOwotCWRpZmZfdHJlZV9yZWxlYXNlX3BhdGhzKCZkaWZmX29wdHMpOworCWZyZWVfcGF0aHNwZWMoJmRpZmZfb3B0cy5wYXRoc3BlYyk7CiAJcmV0dXJuIHBvcmlnaW47CiB9CiAKQEAgLTEwNjQsNyArMTA2NCw2IEBACiAJCQkgICAgICAgaW50IG9wdCkKIHsKIAlzdHJ1Y3QgZGlmZl9vcHRpb25zIGRpZmZfb3B0czsKLQljb25zdCBjaGFyICpwYXRoc1sxXTsKIAlpbnQgaSwgajsKIAlpbnQgcmV0dmFsOwogCXN0cnVjdCBibGFtZV9saXN0ICpibGFtZV9saXN0OwpAQCAtMTA3OCw4ICsxMDc3LDYgQEAKIAlESUZGX09QVF9TRVQoJmRpZmZfb3B0cywgUkVDVVJTSVZFKTsKIAlkaWZmX29wdHMub3V0cHV0X2Zvcm1hdCA9IERJRkZfRk9STUFUX05PX09VVFBVVDsKIAotCXBhdGhzWzBdID0gTlVMTDsKLQlkaWZmX3RyZWVfc2V0dXBfcGF0aHMocGF0aHMsICZkaWZmX29wdHMpOwogCWRpZmZfc2V0dXBfZG9uZSgmZGlmZl9vcHRzKTsKIAogCS8qIFRyeSAiZmluZCBjb3BpZXMgaGFyZGVyIiBvbiBuZXcgcGF0aCBpZiByZXF1ZXN0ZWQ7CkBAIC0xMTYyLDcgKzExNTksNyBAQAogCX0KIAlyZXNldF9zY2FubmVkX2ZsYWcoc2IpOwogCWRpZmZfZmx1c2goJmRpZmZfb3B0cyk7Ci0JZGlmZl90cmVlX3JlbGVhc2VfcGF0aHMoJmRpZmZfb3B0cyk7CisJZnJlZV9wYXRoc3BlYygmZGlmZl9vcHRzLnBhdGhzcGVjKTsKIAlyZXR1cm4gcmV0dmFsOwogfQogCkBAIC0xNTU0LDggKzE1NTEsNyBAQAogCQkgKi8KIAkJb3JpZ2luX2luY3JlZihzdXNwZWN0KTsKIAkJY29tbWl0ID0gc3VzcGVjdC0+Y29tbWl0OwotCQlpZiAoIWNvbW1pdC0+b2JqZWN0LnBhcnNlZCkKLQkJCXBhcnNlX2NvbW1pdChjb21taXQpOworCQlwYXJzZV9jb21taXQoY29tbWl0KTsKIAkJaWYgKHJldmVyc2UgfHwKIAkJICAgICghKGNvbW1pdC0+b2JqZWN0LmZsYWdzICYgVU5JTlRFUkVTVElORykgJiYKIAkJICAgICAhKHJldnMtPm1heF9hZ2UgIT0gLTEgJiYgY29tbWl0LT5kYXRlIDwgcmV2cy0+bWF4X2FnZSkpKQpAQCAtMTgwNywxNyArMTgwMywxNyBAQAogc3RhdGljIGludCByZWFkX2FuY2VzdHJ5KGNvbnN0IGNoYXIgKmdyYWZ0X2ZpbGUpCiB7CiAJRklMRSAqZnAgPSBmb3BlbihncmFmdF9maWxlLCAiciIpOwotCWNoYXIgYnVmWzEwMjRdOworCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CiAJaWYgKCFmcCkKIAkJcmV0dXJuIC0xOwotCXdoaWxlIChmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmcCkpIHsKKwl3aGlsZSAoIXN0cmJ1Zl9nZXR3aG9sZWxpbmUoJmJ1ZiwgZnAsICdcbicpKSB7CiAJCS8qIFRoZSBmb3JtYXQgaXMganVzdCAiQ29tbWl0IFBhcmVudDEgUGFyZW50MiAuLi5cbiIgKi8KLQkJaW50IGxlbiA9IHN0cmxlbihidWYpOwotCQlzdHJ1Y3QgY29tbWl0X2dyYWZ0ICpncmFmdCA9IHJlYWRfZ3JhZnRfbGluZShidWYsIGxlbik7CisJCXN0cnVjdCBjb21taXRfZ3JhZnQgKmdyYWZ0ID0gcmVhZF9ncmFmdF9saW5lKGJ1Zi5idWYsIGJ1Zi5sZW4pOwogCQlpZiAoZ3JhZnQpCiAJCQlyZWdpc3Rlcl9jb21taXRfZ3JhZnQoZ3JhZnQsIDApOwogCX0KIAlmY2xvc2UoZnApOworCXN0cmJ1Zl9yZWxlYXNlKCZidWYpOwogCXJldHVybiAwOwogfQogCkBAIC0xOTM3LDE4ICsxOTMzLDYgQEAKIAlyZXR1cm4gcHJlZml4X3BhdGgocHJlZml4LCBwcmVmaXggPyBzdHJsZW4ocHJlZml4KSA6IDAsIHBhdGgpOwogfQogCi0vKgotICogUGFyc2luZyBvZiAtTCBvcHRpb24KLSAqLwotc3RhdGljIHZvaWQgcHJlcGFyZV9ibGFtZV9yYW5nZShzdHJ1Y3Qgc2NvcmVib2FyZCAqc2IsCi0JCQkJY29uc3QgY2hhciAqYm90dG9tdG9wLAotCQkJCWxvbmcgbG5vLAotCQkJCWxvbmcgKmJvdHRvbSwgbG9uZyAqdG9wKQotewotCWlmIChwYXJzZV9yYW5nZV9hcmcoYm90dG9tdG9wLCBudGhfbGluZV9jYiwgc2IsIGxubywgYm90dG9tLCB0b3AsIHNiLT5wYXRoKSkKLQkJdXNhZ2UoYmxhbWVfdXNhZ2UpOwotfQotCiBzdGF0aWMgaW50IGdpdF9ibGFtZV9jb25maWcoY29uc3QgY2hhciAqdmFyLCBjb25zdCBjaGFyICp2YWx1ZSwgdm9pZCAqY2IpCiB7CiAJaWYgKCFzdHJjbXAodmFyLCAiYmxhbWUuc2hvd3Jvb3QiKSkgewpAQCAtMjI0NSwzOCArMjIyOSwyNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGJsYW1lX2JvdHRvbXRvcF9jYWxsYmFjayhjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHRpb24sIGNvbnN0IGNoYXIgKmFyZywgaW50IHVuc2V0KQotewotCWNvbnN0IGNoYXIgKipib3R0b210b3AgPSBvcHRpb24tPnZhbHVlOwotCWlmICghYXJnKQotCQlyZXR1cm4gLTE7Ci0JaWYgKCpib3R0b210b3ApCi0JCWRpZSgiTW9yZSB0aGFuIG9uZSAnLUwgbixtJyBvcHRpb24gZ2l2ZW4iKTsKLQkqYm90dG9tdG9wID0gYXJnOwotCXJldHVybiAwOwotfQotCiBpbnQgY21kX2JsYW1lKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KQogewogCXN0cnVjdCByZXZfaW5mbyByZXZzOwogCWNvbnN0IGNoYXIgKnBhdGg7CiAJc3RydWN0IHNjb3JlYm9hcmQgc2I7CiAJc3RydWN0IG9yaWdpbiAqbzsKLQlzdHJ1Y3QgYmxhbWVfZW50cnkgKmVudDsKLQlsb25nIGRhc2hkYXNoX3BvcywgYm90dG9tLCB0b3AsIGxubzsKKwlzdHJ1Y3QgYmxhbWVfZW50cnkgKmVudCA9IE5VTEw7CisJbG9uZyBkYXNoZGFzaF9wb3MsIGxubzsKIAljb25zdCBjaGFyICpmaW5hbF9jb21taXRfbmFtZSA9IE5VTEw7CiAJZW51bSBvYmplY3RfdHlwZSB0eXBlOwogCi0Jc3RhdGljIGNvbnN0IGNoYXIgKmJvdHRvbXRvcCA9IE5VTEw7CisJc3RhdGljIHN0cnVjdCBzdHJpbmdfbGlzdCByYW5nZV9saXN0OwogCXN0YXRpYyBpbnQgb3V0cHV0X29wdGlvbiA9IDAsIG9wdCA9IDA7CiAJc3RhdGljIGludCBzaG93X3N0YXRzID0gMDsKIAlzdGF0aWMgY29uc3QgY2hhciAqcmV2c19maWxlID0gTlVMTDsKIAlzdGF0aWMgY29uc3QgY2hhciAqY29udGVudHNfZnJvbSA9IE5VTEw7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0gewotCQlPUFRfQk9PTEVBTigwLCAiaW5jcmVtZW50YWwiLCAmaW5jcmVtZW50YWwsIE5fKCJTaG93IGJsYW1lIGVudHJpZXMgYXMgd2UgZmluZCB0aGVtLCBpbmNyZW1lbnRhbGx5IikpLAotCQlPUFRfQk9PTEVBTignYicsIE5VTEwsICZibGFua19ib3VuZGFyeSwgTl8oIlNob3cgYmxhbmsgU0hBLTEgZm9yIGJvdW5kYXJ5IGNvbW1pdHMgKERlZmF1bHQ6IG9mZikiKSksCi0JCU9QVF9CT09MRUFOKDAsICJyb290IiwgJnNob3dfcm9vdCwgTl8oIkRvIG5vdCB0cmVhdCByb290IGNvbW1pdHMgYXMgYm91bmRhcmllcyAoRGVmYXVsdDogb2ZmKSIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgInNob3ctc3RhdHMiLCAmc2hvd19zdGF0cywgTl8oIlNob3cgd29yayBjb3N0IHN0YXRpc3RpY3MiKSksCisJCU9QVF9CT09MKDAsICJpbmNyZW1lbnRhbCIsICZpbmNyZW1lbnRhbCwgTl8oIlNob3cgYmxhbWUgZW50cmllcyBhcyB3ZSBmaW5kIHRoZW0sIGluY3JlbWVudGFsbHkiKSksCisJCU9QVF9CT09MKCdiJywgTlVMTCwgJmJsYW5rX2JvdW5kYXJ5LCBOXygiU2hvdyBibGFuayBTSEEtMSBmb3IgYm91bmRhcnkgY29tbWl0cyAoRGVmYXVsdDogb2ZmKSIpKSwKKwkJT1BUX0JPT0woMCwgInJvb3QiLCAmc2hvd19yb290LCBOXygiRG8gbm90IHRyZWF0IHJvb3QgY29tbWl0cyBhcyBib3VuZGFyaWVzIChEZWZhdWx0OiBvZmYpIikpLAorCQlPUFRfQk9PTCgwLCAic2hvdy1zdGF0cyIsICZzaG93X3N0YXRzLCBOXygiU2hvdyB3b3JrIGNvc3Qgc3RhdGlzdGljcyIpKSwKIAkJT1BUX0JJVCgwLCAic2NvcmUtZGVidWciLCAmb3V0cHV0X29wdGlvbiwgTl8oIlNob3cgb3V0cHV0IHNjb3JlIGZvciBibGFtZSBlbnRyaWVzIiksIE9VVFBVVF9TSE9XX1NDT1JFKSwKIAkJT1BUX0JJVCgnZicsICJzaG93LW5hbWUiLCAmb3V0cHV0X29wdGlvbiwgTl8oIlNob3cgb3JpZ2luYWwgZmlsZW5hbWUgKERlZmF1bHQ6IGF1dG8pIiksIE9VVFBVVF9TSE9XX05BTUUpLAogCQlPUFRfQklUKCduJywgInNob3ctbnVtYmVyIiwgJm91dHB1dF9vcHRpb24sIE5fKCJTaG93IG9yaWdpbmFsIGxpbmVudW1iZXIgKERlZmF1bHQ6IG9mZikiKSwgT1VUUFVUX1NIT1dfTlVNQkVSKSwKQEAgLTIyOTMsMTMgKzIyNjYsMTYgQEAKIAkJT1BUX1NUUklORygwLCAiY29udGVudHMiLCAmY29udGVudHNfZnJvbSwgTl8oImZpbGUiKSwgTl8oIlVzZSA8ZmlsZT4ncyBjb250ZW50cyBhcyB0aGUgZmluYWwgaW1hZ2UiKSksCiAJCXsgT1BUSU9OX0NBTExCQUNLLCAnQycsIE5VTEwsICZvcHQsIE5fKCJzY29yZSIpLCBOXygiRmluZCBsaW5lIGNvcGllcyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIpLCBQQVJTRV9PUFRfT1BUQVJHLCBibGFtZV9jb3B5X2NhbGxiYWNrIH0sCiAJCXsgT1BUSU9OX0NBTExCQUNLLCAnTScsIE5VTEwsICZvcHQsIE5fKCJzY29yZSIpLCBOXygiRmluZCBsaW5lIG1vdmVtZW50cyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIpLCBQQVJTRV9PUFRfT1BUQVJHLCBibGFtZV9tb3ZlX2NhbGxiYWNrIH0sCi0JCU9QVF9DQUxMQkFDSygnTCcsIE5VTEwsICZib3R0b210b3AsIE5fKCJuLG0iKSwgTl8oIlByb2Nlc3Mgb25seSBsaW5lIHJhbmdlIG4sbSwgY291bnRpbmcgZnJvbSAxIiksIGJsYW1lX2JvdHRvbXRvcF9jYWxsYmFjayksCisJCU9QVF9TVFJJTkdfTElTVCgnTCcsIE5VTEwsICZyYW5nZV9saXN0LCBOXygibixtIiksIE5fKCJQcm9jZXNzIG9ubHkgbGluZSByYW5nZSBuLG0sIGNvdW50aW5nIGZyb20gMSIpKSwKIAkJT1BUX19BQkJSRVYoJmFiYnJldiksCiAJCU9QVF9FTkQoKQogCX07CiAKIAlzdHJ1Y3QgcGFyc2Vfb3B0X2N0eF90IGN0eDsKIAlpbnQgY21kX2lzX2Fubm90YXRlID0gIXN0cmNtcChhcmd2WzBdLCAiYW5ub3RhdGUiKTsKKwlzdHJ1Y3QgcmFuZ2Vfc2V0IHJhbmdlczsKKwl1bnNpZ25lZCBpbnQgcmFuZ2VfaTsKKwlsb25nIGFuY2hvcjsKIAogCWdpdF9jb25maWcoZ2l0X2JsYW1lX2NvbmZpZywgTlVMTCk7CiAJaW5pdF9yZXZpc2lvbnMoJnJldnMsIE5VTEwpOwpAQCAtMjQ5MiwyMiArMjQ2OCw0OCBAQAogCW51bV9yZWFkX2Jsb2IrKzsKIAlsbm8gPSBwcmVwYXJlX2xpbmVzKCZzYik7CiAKLQlib3R0b20gPSB0b3AgPSAwOwotCWlmIChib3R0b210b3ApCi0JCXByZXBhcmVfYmxhbWVfcmFuZ2UoJnNiLCBib3R0b210b3AsIGxubywgJmJvdHRvbSwgJnRvcCk7Ci0JaWYgKGJvdHRvbSA8IDEpCi0JCWJvdHRvbSA9IDE7Ci0JaWYgKHRvcCA8IDEpCi0JCXRvcCA9IGxubzsKLQlib3R0b20tLTsKLQlpZiAobG5vIDwgdG9wIHx8IGxubyA8IGJvdHRvbSkKLQkJZGllKCJmaWxlICVzIGhhcyBvbmx5ICVsdSBsaW5lcyIsIHBhdGgsIGxubyk7CisJaWYgKGxubyAmJiAhcmFuZ2VfbGlzdC5ucikKKwkJc3RyaW5nX2xpc3RfYXBwZW5kKCZyYW5nZV9saXN0LCB4c3RyZHVwKCIxIikpOwogCi0JZW50ID0geGNhbGxvYygxLCBzaXplb2YoKmVudCkpOwotCWVudC0+bG5vID0gYm90dG9tOwotCWVudC0+bnVtX2xpbmVzID0gdG9wIC0gYm90dG9tOwotCWVudC0+c3VzcGVjdCA9IG87Ci0JZW50LT5zX2xubyA9IGJvdHRvbTsKKwlhbmNob3IgPSAxOworCXJhbmdlX3NldF9pbml0KCZyYW5nZXMsIHJhbmdlX2xpc3QubnIpOworCWZvciAocmFuZ2VfaSA9IDA7IHJhbmdlX2kgPCByYW5nZV9saXN0Lm5yOyArK3JhbmdlX2kpIHsKKwkJbG9uZyBib3R0b20sIHRvcDsKKwkJaWYgKHBhcnNlX3JhbmdlX2FyZyhyYW5nZV9saXN0Lml0ZW1zW3JhbmdlX2ldLnN0cmluZywKKwkJCQkgICAgbnRoX2xpbmVfY2IsICZzYiwgbG5vLCBhbmNob3IsCisJCQkJICAgICZib3R0b20sICZ0b3AsIHNiLnBhdGgpKQorCQkJdXNhZ2UoYmxhbWVfdXNhZ2UpOworCQlpZiAobG5vIDwgdG9wIHx8ICgobG5vIHx8IGJvdHRvbSkgJiYgbG5vIDwgYm90dG9tKSkKKwkJCWRpZSgiZmlsZSAlcyBoYXMgb25seSAlbHUgbGluZXMiLCBwYXRoLCBsbm8pOworCQlpZiAoYm90dG9tIDwgMSkKKwkJCWJvdHRvbSA9IDE7CisJCWlmICh0b3AgPCAxKQorCQkJdG9wID0gbG5vOworCQlib3R0b20tLTsKKwkJcmFuZ2Vfc2V0X2FwcGVuZF91bnNhZmUoJnJhbmdlcywgYm90dG9tLCB0b3ApOworCQlhbmNob3IgPSB0b3AgKyAxOworCX0KKwlzb3J0X2FuZF9tZXJnZV9yYW5nZV9zZXQoJnJhbmdlcyk7CisKKwlmb3IgKHJhbmdlX2kgPSByYW5nZXMubnI7IHJhbmdlX2kgPiAwOyAtLXJhbmdlX2kpIHsKKwkJY29uc3Qgc3RydWN0IHJhbmdlICpyID0gJnJhbmdlcy5yYW5nZXNbcmFuZ2VfaSAtIDFdOworCQlsb25nIGJvdHRvbSA9IHItPnN0YXJ0OworCQlsb25nIHRvcCA9IHItPmVuZDsKKwkJc3RydWN0IGJsYW1lX2VudHJ5ICpuZXh0ID0gZW50OworCQllbnQgPSB4Y2FsbG9jKDEsIHNpemVvZigqZW50KSk7CisJCWVudC0+bG5vID0gYm90dG9tOworCQllbnQtPm51bV9saW5lcyA9IHRvcCAtIGJvdHRvbTsKKwkJZW50LT5zdXNwZWN0ID0gbzsKKwkJZW50LT5zX2xubyA9IGJvdHRvbTsKKwkJZW50LT5uZXh0ID0gbmV4dDsKKwkJaWYgKG5leHQpCisJCQluZXh0LT5wcmV2ID0gZW50OworCQlvcmlnaW5faW5jcmVmKG8pOworCX0KKwlvcmlnaW5fZGVjcmVmKG8pOworCisJcmFuZ2Vfc2V0X3JlbGVhc2UoJnJhbmdlcyk7CisJc3RyaW5nX2xpc3RfY2xlYXIoJnJhbmdlX2xpc3QsIDApOwogCiAJc2IuZW50ID0gZW50OwogCXNiLnBhdGggPSBwYXRoOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9icmFuY2guYyBiL2J1aWx0aW4vYnJhbmNoLmMKaW5kZXggMDgzNjg5MC4uYjRkNzcxNiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9icmFuY2guYworKysgYi9idWlsdGluL2JyYW5jaC5jCkBAIC04MSwxMyArODEsMTMgQEAKIAogc3RhdGljIGludCBnaXRfYnJhbmNoX2NvbmZpZyhjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpjYikKIHsKLQlpZiAoIXByZWZpeGNtcCh2YXIsICJjb2x1bW4uIikpCisJaWYgKHN0YXJ0c193aXRoKHZhciwgImNvbHVtbi4iKSkKIAkJcmV0dXJuIGdpdF9jb2x1bW5fY29uZmlnKHZhciwgdmFsdWUsICJicmFuY2giLCAmY29sb3B0cyk7CiAJaWYgKCFzdHJjbXAodmFyLCAiY29sb3IuYnJhbmNoIikpIHsKIAkJYnJhbmNoX3VzZV9jb2xvciA9IGdpdF9jb25maWdfY29sb3Jib29sKHZhciwgdmFsdWUpOwogCQlyZXR1cm4gMDsKIAl9Ci0JaWYgKCFwcmVmaXhjbXAodmFyLCAiY29sb3IuYnJhbmNoLiIpKSB7CisJaWYgKHN0YXJ0c193aXRoKHZhciwgImNvbG9yLmJyYW5jaC4iKSkgewogCQlpbnQgc2xvdCA9IHBhcnNlX2JyYW5jaF9jb2xvcl9zbG90KHZhciwgMTMpOwogCQlpZiAoc2xvdCA8IDApCiAJCQlyZXR1cm4gMDsKQEAgLTQyMywxOSArNDIzLDIwIEBACiAJY2hhciAqcmVmID0gTlVMTDsKIAlzdHJ1Y3QgYnJhbmNoICpicmFuY2ggPSBicmFuY2hfZ2V0KGJyYW5jaF9uYW1lKTsKIAlzdHJ1Y3Qgc3RyYnVmIGZhbmN5ID0gU1RSQlVGX0lOSVQ7CisJaW50IHVwc3RyZWFtX2lzX2dvbmUgPSAwOworCWludCBhZGRlZF9kZWNvcmF0aW9uID0gMTsKIAotCWlmICghc3RhdF90cmFja2luZ19pbmZvKGJyYW5jaCwgJm91cnMsICZ0aGVpcnMpKSB7Ci0JCWlmIChicmFuY2ggJiYgYnJhbmNoLT5tZXJnZSAmJiBicmFuY2gtPm1lcmdlWzBdLT5kc3QgJiYKLQkJICAgIHNob3dfdXBzdHJlYW1fcmVmKSB7Ci0JCQlyZWYgPSBzaG9ydGVuX3VuYW1iaWd1b3VzX3JlZihicmFuY2gtPm1lcmdlWzBdLT5kc3QsIDApOwotCQkJaWYgKHdhbnRfY29sb3IoYnJhbmNoX3VzZV9jb2xvcikpCi0JCQkJc3RyYnVmX2FkZGYoc3RhdCwgIlslcyVzJXNdICIsCi0JCQkJCQlicmFuY2hfZ2V0X2NvbG9yKEJSQU5DSF9DT0xPUl9VUFNUUkVBTSksCi0JCQkJCQlyZWYsIGJyYW5jaF9nZXRfY29sb3IoQlJBTkNIX0NPTE9SX1JFU0VUKSk7Ci0JCQllbHNlCi0JCQkJc3RyYnVmX2FkZGYoc3RhdCwgIlslc10gIiwgcmVmKTsKLQkJfQorCXN3aXRjaCAoc3RhdF90cmFja2luZ19pbmZvKGJyYW5jaCwgJm91cnMsICZ0aGVpcnMpKSB7CisJY2FzZSAwOgorCQkvKiBubyBiYXNlICovCiAJCXJldHVybjsKKwljYXNlIC0xOgorCQkvKiB3aXRoICJnb25lIiBiYXNlICovCisJCXVwc3RyZWFtX2lzX2dvbmUgPSAxOworCQlicmVhazsKKwlkZWZhdWx0OgorCQkvKiB3aXRoIGJhc2UgKi8KKwkJYnJlYWs7CiAJfQogCiAJaWYgKHNob3dfdXBzdHJlYW1fcmVmKSB7CkBAIC00NDgsMTkgKzQ0OSwyOSBAQAogCQkJc3RyYnVmX2FkZHN0cigmZmFuY3ksIHJlZik7CiAJfQogCi0JaWYgKCFvdXJzKSB7Ci0JCWlmIChyZWYpCisJaWYgKHVwc3RyZWFtX2lzX2dvbmUpIHsKKwkJaWYgKHNob3dfdXBzdHJlYW1fcmVmKQorCQkJc3RyYnVmX2FkZGYoc3RhdCwgXygiWyVzOiBnb25lXSIpLCBmYW5jeS5idWYpOworCQllbHNlCisJCQlhZGRlZF9kZWNvcmF0aW9uID0gMDsKKwl9IGVsc2UgaWYgKCFvdXJzICYmICF0aGVpcnMpIHsKKwkJaWYgKHNob3dfdXBzdHJlYW1fcmVmKQorCQkJc3RyYnVmX2FkZGYoc3RhdCwgXygiWyVzXSIpLCBmYW5jeS5idWYpOworCQllbHNlCisJCQlhZGRlZF9kZWNvcmF0aW9uID0gMDsKKwl9IGVsc2UgaWYgKCFvdXJzKSB7CisJCWlmIChzaG93X3Vwc3RyZWFtX3JlZikKIAkJCXN0cmJ1Zl9hZGRmKHN0YXQsIF8oIlslczogYmVoaW5kICVkXSIpLCBmYW5jeS5idWYsIHRoZWlycyk7CiAJCWVsc2UKIAkJCXN0cmJ1Zl9hZGRmKHN0YXQsIF8oIltiZWhpbmQgJWRdIiksIHRoZWlycyk7CiAKIAl9IGVsc2UgaWYgKCF0aGVpcnMpIHsKLQkJaWYgKHJlZikKKwkJaWYgKHNob3dfdXBzdHJlYW1fcmVmKQogCQkJc3RyYnVmX2FkZGYoc3RhdCwgXygiWyVzOiBhaGVhZCAlZF0iKSwgZmFuY3kuYnVmLCBvdXJzKTsKIAkJZWxzZQogCQkJc3RyYnVmX2FkZGYoc3RhdCwgXygiW2FoZWFkICVkXSIpLCBvdXJzKTsKIAl9IGVsc2UgewotCQlpZiAocmVmKQorCQlpZiAoc2hvd191cHN0cmVhbV9yZWYpCiAJCQlzdHJidWZfYWRkZihzdGF0LCBfKCJbJXM6IGFoZWFkICVkLCBiZWhpbmQgJWRdIiksCiAJCQkJICAgIGZhbmN5LmJ1Ziwgb3VycywgdGhlaXJzKTsKIAkJZWxzZQpAQCAtNDY4LDcgKzQ3OSw4IEBACiAJCQkJICAgIG91cnMsIHRoZWlycyk7CiAJfQogCXN0cmJ1Zl9yZWxlYXNlKCZmYW5jeSk7Ci0Jc3RyYnVmX2FkZGNoKHN0YXQsICcgJyk7CisJaWYgKGFkZGVkX2RlY29yYXRpb24pCisJCXN0cmJ1Zl9hZGRjaChzdGF0LCAnICcpOwogCWZyZWUocmVmKTsKIH0KIApAQCAtNDkwLDcgKzUwMiw3IEBACiAJY29uc3QgY2hhciAqc3ViID0gXygiICoqKiogaW52YWxpZCByZWYgKioqKiIpOwogCXN0cnVjdCBjb21taXQgKmNvbW1pdCA9IGl0ZW0tPmNvbW1pdDsKIAotCWlmIChjb21taXQgJiYgIXBhcnNlX2NvbW1pdChjb21taXQpKSB7CisJaWYgKCFwYXJzZV9jb21taXQoY29tbWl0KSkgewogCQlwcF9jb21taXRfZWFzeShDTUlUX0ZNVF9PTkVMSU5FLCBjb21taXQsICZzdWJqZWN0KTsKIAkJc3ViID0gc3ViamVjdC5idWY7CiAJfQpAQCAtNzk3LDcgKzgwOSw3IEBACiAJCU9QVF9TRVRfSU5UKCAwLCAic2V0LXVwc3RyZWFtIiwgICZ0cmFjaywgTl8oImNoYW5nZSB1cHN0cmVhbSBpbmZvIiksCiAJCQlCUkFOQ0hfVFJBQ0tfT1ZFUlJJREUpLAogCQlPUFRfU1RSSU5HKCd1JywgInNldC11cHN0cmVhbS10byIsICZuZXdfdXBzdHJlYW0sICJ1cHN0cmVhbSIsICJjaGFuZ2UgdGhlIHVwc3RyZWFtIGluZm8iKSwKLQkJT1BUX0JPT0xFQU4oMCwgInVuc2V0LXVwc3RyZWFtIiwgJnVuc2V0X3Vwc3RyZWFtLCAiVW5zZXQgdGhlIHVwc3RyZWFtIGluZm8iKSwKKwkJT1BUX0JPT0woMCwgInVuc2V0LXVwc3RyZWFtIiwgJnVuc2V0X3Vwc3RyZWFtLCAiVW5zZXQgdGhlIHVwc3RyZWFtIGluZm8iKSwKIAkJT1BUX19DT0xPUigmYnJhbmNoX3VzZV9jb2xvciwgTl8oInVzZSBjb2xvcmVkIG91dHB1dCIpKSwKIAkJT1BUX1NFVF9JTlQoJ3InLCAicmVtb3RlcyIsICAgICAma2luZHMsIE5fKCJhY3Qgb24gcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIiksCiAJCQlSRUZfUkVNT1RFX0JSQU5DSCksCkBAIC04MjIsMTAgKzgzNCwxMCBAQAogCQlPUFRfQklUKCdEJywgTlVMTCwgJmRlbGV0ZSwgTl8oImRlbGV0ZSBicmFuY2ggKGV2ZW4gaWYgbm90IG1lcmdlZCkiKSwgMiksCiAJCU9QVF9CSVQoJ20nLCAibW92ZSIsICZyZW5hbWUsIE5fKCJtb3ZlL3JlbmFtZSBhIGJyYW5jaCBhbmQgaXRzIHJlZmxvZyIpLCAxKSwKIAkJT1BUX0JJVCgnTScsIE5VTEwsICZyZW5hbWUsIE5fKCJtb3ZlL3JlbmFtZSBhIGJyYW5jaCwgZXZlbiBpZiB0YXJnZXQgZXhpc3RzIiksIDIpLAotCQlPUFRfQk9PTEVBTigwLCAibGlzdCIsICZsaXN0LCBOXygibGlzdCBicmFuY2ggbmFtZXMiKSksCi0JCU9QVF9CT09MRUFOKCdsJywgImNyZWF0ZS1yZWZsb2ciLCAmcmVmbG9nLCBOXygiY3JlYXRlIHRoZSBicmFuY2gncyByZWZsb2ciKSksCi0JCU9QVF9CT09MRUFOKDAsICJlZGl0LWRlc2NyaXB0aW9uIiwgJmVkaXRfZGVzY3JpcHRpb24sCi0JCQkgICAgTl8oImVkaXQgdGhlIGRlc2NyaXB0aW9uIGZvciB0aGUgYnJhbmNoIikpLAorCQlPUFRfQk9PTCgwLCAibGlzdCIsICZsaXN0LCBOXygibGlzdCBicmFuY2ggbmFtZXMiKSksCisJCU9QVF9CT09MKCdsJywgImNyZWF0ZS1yZWZsb2ciLCAmcmVmbG9nLCBOXygiY3JlYXRlIHRoZSBicmFuY2gncyByZWZsb2ciKSksCisJCU9QVF9CT09MKDAsICJlZGl0LWRlc2NyaXB0aW9uIiwgJmVkaXRfZGVzY3JpcHRpb24sCisJCQkgTl8oImVkaXQgdGhlIGRlc2NyaXB0aW9uIGZvciB0aGUgYnJhbmNoIikpLAogCQlPUFRfX0ZPUkNFKCZmb3JjZV9jcmVhdGUsIE5fKCJmb3JjZSBjcmVhdGlvbiAod2hlbiBhbHJlYWR5IGV4aXN0cykiKSksCiAJCXsKIAkJCU9QVElPTl9DQUxMQkFDSywgMCwgIm5vLW1lcmdlZCIsICZtZXJnZV9maWx0ZXJfcmVmLApAQCAtODU2LDcgKzg2OCw3IEBACiAJaWYgKCFzdHJjbXAoaGVhZCwgIkhFQUQiKSkgewogCQlkZXRhY2hlZCA9IDE7CiAJfSBlbHNlIHsKLQkJaWYgKHByZWZpeGNtcChoZWFkLCAicmVmcy9oZWFkcy8iKSkKKwkJaWYgKCFzdGFydHNfd2l0aChoZWFkLCAicmVmcy9oZWFkcy8iKSkKIAkJCWRpZShfKCJIRUFEIG5vdCBmb3VuZCBiZWxvdyByZWZzL2hlYWRzISIpKTsKIAkJaGVhZCArPSAxMTsKIAl9CkBAIC04NzIsNyArODg0LDggQEAKIAlpZiAod2l0aF9jb21taXQgfHwgbWVyZ2VfZmlsdGVyICE9IE5PX0ZJTFRFUikKIAkJbGlzdCA9IDE7CiAKLQlpZiAoISFkZWxldGUgKyAhIXJlbmFtZSArICEhZm9yY2VfY3JlYXRlICsgISFsaXN0ICsgISFuZXdfdXBzdHJlYW0gKyAhIXVuc2V0X3Vwc3RyZWFtID4gMSkKKwlpZiAoISFkZWxldGUgKyAhIXJlbmFtZSArICEhZm9yY2VfY3JlYXRlICsgISFuZXdfdXBzdHJlYW0gKworCSAgICBsaXN0ICsgdW5zZXRfdXBzdHJlYW0gPiAxKQogCQl1c2FnZV93aXRoX29wdGlvbnMoYnVpbHRpbl9icmFuY2hfdXNhZ2UsIG9wdGlvbnMpOwogCiAJaWYgKGFiYnJldiA9PSAtMSkKQEAgLTk2OCw5ICs5ODEsOCBAQAogCQkJZGllKF8oIm5vIHN1Y2ggYnJhbmNoICclcyciKSwgYXJndlswXSk7CiAJCX0KIAotCQlpZiAoIWJyYW5jaF9oYXNfbWVyZ2VfY29uZmlnKGJyYW5jaCkpIHsKKwkJaWYgKCFicmFuY2hfaGFzX21lcmdlX2NvbmZpZyhicmFuY2gpKQogCQkJZGllKF8oIkJyYW5jaCAnJXMnIGhhcyBubyB1cHN0cmVhbSBpbmZvcm1hdGlvbiIpLCBicmFuY2gtPm5hbWUpOwotCQl9CiAKIAkJc3RyYnVmX2FkZGYoJmJ1ZiwgImJyYW5jaC4lcy5yZW1vdGUiLCBicmFuY2gtPm5hbWUpOwogCQlnaXRfY29uZmlnX3NldF9tdWx0aXZhcihidWYuYnVmLCBOVUxMLCBOVUxMLCAxKTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vY2F0LWZpbGUuYyBiL2J1aWx0aW4vY2F0LWZpbGUuYwppbmRleCA0MjUzNDYwLi5kNWE5M2UwIDEwMDY0NAotLS0gYS9idWlsdGluL2NhdC1maWxlLmMKKysrIGIvYnVpbHRpbi9jYXQtZmlsZS5jCkBAIC00NSw2ICs0NSwxNCBAQAogCWNhc2UgJ2UnOgogCQlyZXR1cm4gIWhhc19zaGExX2ZpbGUoc2hhMSk7CiAKKwljYXNlICdjJzoKKwkJaWYgKCFvYmpfY29udGV4dC5wYXRoWzBdKQorCQkJZGllKCJnaXQgY2F0LWZpbGUgLS10ZXh0Y29udiAlczogPG9iamVjdD4gbXVzdCBiZSA8c2hhMTpwYXRoPiIsCisJCQkgICAgb2JqX25hbWUpOworCisJCWlmICh0ZXh0Y29udl9vYmplY3Qob2JqX2NvbnRleHQucGF0aCwgb2JqX2NvbnRleHQubW9kZSwgc2hhMSwgMSwgJmJ1ZiwgJnNpemUpKQorCQkJYnJlYWs7CisKIAljYXNlICdwJzoKIAkJdHlwZSA9IHNoYTFfb2JqZWN0X2luZm8oc2hhMSwgTlVMTCk7CiAJCWlmICh0eXBlIDwgMCkKQEAgLTY3LDE2ICs3NSw2IEBACiAJCS8qIG90aGVyd2lzZSBqdXN0IHNwaXQgb3V0IHRoZSBkYXRhICovCiAJCWJyZWFrOwogCi0JY2FzZSAnYyc6Ci0JCWlmICghb2JqX2NvbnRleHQucGF0aFswXSkKLQkJCWRpZSgiZ2l0IGNhdC1maWxlIC0tdGV4dGNvbnYgJXM6IDxvYmplY3Q+IG11c3QgYmUgPHNoYTE6cGF0aD4iLAotCQkJICAgIG9ial9uYW1lKTsKLQotCQlpZiAoIXRleHRjb252X29iamVjdChvYmpfY29udGV4dC5wYXRoLCBvYmpfY29udGV4dC5tb2RlLCBzaGExLCAxLCAmYnVmLCAmc2l6ZSkpCi0JCQlkaWUoImdpdCBjYXQtZmlsZSAtLXRleHRjb252OiB1bmFibGUgdG8gcnVuIHRleHRjb252IG9uICVzIiwKLQkJCSAgICBvYmpfbmFtZSk7Ci0JCWJyZWFrOwotCiAJY2FzZSAwOgogCQlpZiAodHlwZV9mcm9tX3N0cmluZyhleHBfdHlwZSkgPT0gT0JKX0JMT0IpIHsKIAkJCXVuc2lnbmVkIGNoYXIgYmxvYl9zaGExWzIwXTsKQEAgLTExOSw2ICsxMTcsOCBAQAogCWVudW0gb2JqZWN0X3R5cGUgdHlwZTsKIAl1bnNpZ25lZCBsb25nIHNpemU7CiAJdW5zaWduZWQgbG9uZyBkaXNrX3NpemU7CisJY29uc3QgY2hhciAqcmVzdDsKKwl1bnNpZ25lZCBjaGFyIGRlbHRhX2Jhc2Vfc2hhMVsyMF07CiAKIAkvKgogCSAqIElmIG1hcmtfcXVlcnkgaXMgdHJ1ZSwgd2UgZG8gbm90IGV4cGFuZCBhbnl0aGluZywgYnV0IHJhdGhlcgpAQCAtMTI3LDYgKzEyNywxMyBAQAogCWludCBtYXJrX3F1ZXJ5OwogCiAJLyoKKwkgKiBXaGV0aGVyIHRvIHNwbGl0IHRoZSBpbnB1dCBvbiB3aGl0ZXNwYWNlIGJlZm9yZSBmZWVkaW5nIGl0IHRvCisJICogZ2V0X3NoYTE7IHRoaXMgaXMgZGVjaWRlZCBkdXJpbmcgdGhlIG1hcmtfcXVlcnkgcGhhc2UgYmFzZWQgb24KKwkgKiB3aGV0aGVyIHdlIGhhdmUgYSAlKHJlc3QpIHRva2VuIGluIG91ciBmb3JtYXQuCisJICovCisJaW50IHNwbGl0X29uX3doaXRlc3BhY2U7CisKKwkvKgogCSAqIEFmdGVyIGEgbWFya19xdWVyeSBydW4sIHRoaXMgb2JqZWN0X2luZm8gaXMgc2V0IHVwIHRvIGJlCiAJICogcGFzc2VkIHRvIHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQuIEl0IHdpbGwgcG9pbnQgdG8gdGhlIGRhdGEKIAkgKiBlbGVtZW50cyBhYm92ZSwgc28geW91IGNhbiByZXRyaWV2ZSB0aGUgcmVzcG9uc2UgZnJvbSB0aGVyZS4KQEAgLTE2Myw2ICsxNzAsMTYgQEAKIAkJCWRhdGEtPmluZm8uZGlza19zaXplcCA9ICZkYXRhLT5kaXNrX3NpemU7CiAJCWVsc2UKIAkJCXN0cmJ1Zl9hZGRmKHNiLCAiJWx1IiwgZGF0YS0+ZGlza19zaXplKTsKKwl9IGVsc2UgaWYgKGlzX2F0b20oInJlc3QiLCBhdG9tLCBsZW4pKSB7CisJCWlmIChkYXRhLT5tYXJrX3F1ZXJ5KQorCQkJZGF0YS0+c3BsaXRfb25fd2hpdGVzcGFjZSA9IDE7CisJCWVsc2UgaWYgKGRhdGEtPnJlc3QpCisJCQlzdHJidWZfYWRkc3RyKHNiLCBkYXRhLT5yZXN0KTsKKwl9IGVsc2UgaWYgKGlzX2F0b20oImRlbHRhYmFzZSIsIGF0b20sIGxlbikpIHsKKwkJaWYgKGRhdGEtPm1hcmtfcXVlcnkpCisJCQlkYXRhLT5pbmZvLmRlbHRhX2Jhc2Vfc2hhMSA9IGRhdGEtPmRlbHRhX2Jhc2Vfc2hhMTsKKwkJZWxzZQorCQkJc3RyYnVmX2FkZHN0cihzYiwgc2hhMV90b19oZXgoZGF0YS0+ZGVsdGFfYmFzZV9zaGExKSk7CiAJfSBlbHNlCiAJCWRpZSgidW5rbm93biBmb3JtYXQgZWxlbWVudDogJS4qcyIsIGxlbiwgYXRvbSk7CiB9CkBAIC0xODIsMjUgKzE5OSwyOCBAQAogCXJldHVybiBlbmQgLSBzdGFydCArIDE7CiB9CiAKLXN0YXRpYyB2b2lkIHByaW50X29iamVjdF9vcl9kaWUoaW50IGZkLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAotCQkJCWVudW0gb2JqZWN0X3R5cGUgdHlwZSwgdW5zaWduZWQgbG9uZyBzaXplKQorc3RhdGljIHZvaWQgcHJpbnRfb2JqZWN0X29yX2RpZShpbnQgZmQsIHN0cnVjdCBleHBhbmRfZGF0YSAqZGF0YSkKIHsKLQlpZiAodHlwZSA9PSBPQkpfQkxPQikgeworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEgPSBkYXRhLT5zaGExOworCisJYXNzZXJ0KGRhdGEtPmluZm8udHlwZXApOworCisJaWYgKGRhdGEtPnR5cGUgPT0gT0JKX0JMT0IpIHsKIAkJaWYgKHN0cmVhbV9ibG9iX3RvX2ZkKGZkLCBzaGExLCBOVUxMLCAwKSA8IDApCiAJCQlkaWUoInVuYWJsZSB0byBzdHJlYW0gJXMgdG8gc3Rkb3V0Iiwgc2hhMV90b19oZXgoc2hhMSkpOwogCX0KIAllbHNlIHsKLQkJZW51bSBvYmplY3RfdHlwZSBydHlwZTsKLQkJdW5zaWduZWQgbG9uZyByc2l6ZTsKKwkJZW51bSBvYmplY3RfdHlwZSB0eXBlOworCQl1bnNpZ25lZCBsb25nIHNpemU7CiAJCXZvaWQgKmNvbnRlbnRzOwogCi0JCWNvbnRlbnRzID0gcmVhZF9zaGExX2ZpbGUoc2hhMSwgJnJ0eXBlLCAmcnNpemUpOworCQljb250ZW50cyA9IHJlYWRfc2hhMV9maWxlKHNoYTEsICZ0eXBlLCAmc2l6ZSk7CiAJCWlmICghY29udGVudHMpCiAJCQlkaWUoIm9iamVjdCAlcyBkaXNhcHBlYXJlZCIsIHNoYTFfdG9faGV4KHNoYTEpKTsKLQkJaWYgKHJ0eXBlICE9IHR5cGUpCisJCWlmICh0eXBlICE9IGRhdGEtPnR5cGUpCiAJCQlkaWUoIm9iamVjdCAlcyBjaGFuZ2VkIHR5cGUhPyIsIHNoYTFfdG9faGV4KHNoYTEpKTsKLQkJaWYgKHJzaXplICE9IHNpemUpCi0JCQlkaWUoIm9iamVjdCAlcyBjaGFuZ2Ugc2l6ZSE/Iiwgc2hhMV90b19oZXgoc2hhMSkpOworCQlpZiAoZGF0YS0+aW5mby5zaXplcCAmJiBzaXplICE9IGRhdGEtPnNpemUpCisJCQlkaWUoIm9iamVjdCAlcyBjaGFuZ2VkIHNpemUhPyIsIHNoYTFfdG9faGV4KHNoYTEpKTsKIAogCQl3cml0ZV9vcl9kaWUoZmQsIGNvbnRlbnRzLCBzaXplKTsKIAkJZnJlZShjb250ZW50cyk7CkBAIC0yMjcsNyArMjQ3LDcgQEAKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQoZGF0YS0+c2hhMSwgJmRhdGEtPmluZm8pIDwgMCkgeworCWlmIChzaGExX29iamVjdF9pbmZvX2V4dGVuZGVkKGRhdGEtPnNoYTEsICZkYXRhLT5pbmZvLCBMT09LVVBfUkVQTEFDRV9PQkpFQ1QpIDwgMCkgewogCQlwcmludGYoIiVzIG1pc3NpbmdcbiIsIG9ial9uYW1lKTsKIAkJZmZsdXNoKHN0ZG91dCk7CiAJCXJldHVybiAwOwpAQCAtMjM5LDcgKzI1OSw3IEBACiAJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7CiAKIAlpZiAob3B0LT5wcmludF9jb250ZW50cykgewotCQlwcmludF9vYmplY3Rfb3JfZGllKDEsIGRhdGEtPnNoYTEsIGRhdGEtPnR5cGUsIGRhdGEtPnNpemUpOworCQlwcmludF9vYmplY3Rfb3JfZGllKDEsIGRhdGEpOwogCQl3cml0ZV9vcl9kaWUoMSwgIlxuIiwgMSk7CiAJfQogCXJldHVybiAwOwpAQCAtMjY0LDYgKzI4NCwxMyBAQAogCWRhdGEubWFya19xdWVyeSA9IDA7CiAKIAkvKgorCSAqIElmIHdlIGFyZSBwcmludGluZyBvdXQgdGhlIG9iamVjdCwgdGhlbiBhbHdheXMgZmlsbCBpbiB0aGUgdHlwZSwKKwkgKiBzaW5jZSB3ZSB3aWxsIHdhbnQgdG8gZGVjaWRlIHdoZXRoZXIgb3Igbm90IHRvIHN0cmVhbS4KKwkgKi8KKwlpZiAob3B0LT5wcmludF9jb250ZW50cykKKwkJZGF0YS5pbmZvLnR5cGVwID0gJmRhdGEudHlwZTsKKworCS8qCiAJICogV2UgYXJlIGdvaW5nIHRvIGNhbGwgZ2V0X3NoYTEgb24gYSBwb3RlbnRpYWxseSB2ZXJ5IGxhcmdlIG51bWJlciBvZgogCSAqIG9iamVjdHMuIEluIG1vc3QgbGFyZ2UgY2FzZXMsIHRoZXNlIHdpbGwgYmUgYWN0dWFsIG9iamVjdCBzaGExcy4gVGhlCiAJICogY29zdCB0byBkb3VibGUtY2hlY2sgdGhhdCBlYWNoIG9uZSBpcyBub3QgYWxzbyBhIHJlZiAoanVzdCBzbyB3ZSBjYW4KQEAgLTI3Myw3ICszMDAsMjMgQEAKIAl3YXJuX29uX29iamVjdF9yZWZuYW1lX2FtYmlndWl0eSA9IDA7CiAKIAl3aGlsZSAoc3RyYnVmX2dldGxpbmUoJmJ1Ziwgc3RkaW4sICdcbicpICE9IEVPRikgewotCQlpbnQgZXJyb3IgPSBiYXRjaF9vbmVfb2JqZWN0KGJ1Zi5idWYsIG9wdCwgJmRhdGEpOworCQlpbnQgZXJyb3I7CisKKwkJaWYgKGRhdGEuc3BsaXRfb25fd2hpdGVzcGFjZSkgeworCQkJLyoKKwkJCSAqIFNwbGl0IGF0IGZpcnN0IHdoaXRlc3BhY2UsIHR5aW5nIG9mZiB0aGUgYmVnaW5uaW5nCisJCQkgKiBvZiB0aGUgc3RyaW5nIGFuZCBzYXZpbmcgdGhlIHJlbWFpbmRlciAob3IgTlVMTCkgaW4KKwkJCSAqIGRhdGEucmVzdC4KKwkJCSAqLworCQkJY2hhciAqcCA9IHN0cnBicmsoYnVmLmJ1ZiwgIiBcdCIpOworCQkJaWYgKHApIHsKKwkJCQl3aGlsZSAoKnAgJiYgc3RyY2hyKCIgXHQiLCAqcCkpCisJCQkJCSpwKysgPSAnXDAnOworCQkJfQorCQkJZGF0YS5yZXN0ID0gcDsKKwkJfQorCisJCWVycm9yID0gYmF0Y2hfb25lX29iamVjdChidWYuYnVmLCBvcHQsICZkYXRhKTsKIAkJaWYgKGVycm9yKQogCQkJcmV0dXJuIGVycm9yOwogCX0KZGlmZiAtLWdpdCBhL2J1aWx0aW4vY2hlY2stYXR0ci5jIGIvYnVpbHRpbi9jaGVjay1hdHRyLmMKaW5kZXggMDc1ZDAxZC4uZTlhZjdiMiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9jaGVjay1hdHRyLmMKKysrIGIvYnVpbHRpbi9jaGVjay1hdHRyLmMKQEAgLTEzLDE0ICsxMywxNCBAQAogTlVMTAogfTsKIAotc3RhdGljIGludCBudWxsX3Rlcm1fbGluZTsKK3N0YXRpYyBpbnQgbnVsX3Rlcm1fbGluZTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb24gY2hlY2tfYXR0cl9vcHRpb25zW10gPSB7Ci0JT1BUX0JPT0xFQU4oJ2EnLCAiYWxsIiwgJmFsbF9hdHRycywgTl8oInJlcG9ydCBhbGwgYXR0cmlidXRlcyBzZXQgb24gZmlsZSIpKSwKLQlPUFRfQk9PTEVBTigwLCAgImNhY2hlZCIsICZjYWNoZWRfYXR0cnMsIE5fKCJ1c2UgLmdpdGF0dHJpYnV0ZXMgb25seSBmcm9tIHRoZSBpbmRleCIpKSwKLQlPUFRfQk9PTEVBTigwICwgInN0ZGluIiwgJnN0ZGluX3BhdGhzLCBOXygicmVhZCBmaWxlIG5hbWVzIGZyb20gc3RkaW4iKSksCi0JT1BUX0JPT0xFQU4oJ3onLCBOVUxMLCAmbnVsbF90ZXJtX2xpbmUsCi0JCU5fKCJpbnB1dCBwYXRocyBhcmUgdGVybWluYXRlZCBieSBhIG51bGwgY2hhcmFjdGVyIikpLAorCU9QVF9CT09MKCdhJywgImFsbCIsICZhbGxfYXR0cnMsIE5fKCJyZXBvcnQgYWxsIGF0dHJpYnV0ZXMgc2V0IG9uIGZpbGUiKSksCisJT1BUX0JPT0woMCwgICJjYWNoZWQiLCAmY2FjaGVkX2F0dHJzLCBOXygidXNlIC5naXRhdHRyaWJ1dGVzIG9ubHkgZnJvbSB0aGUgaW5kZXgiKSksCisJT1BUX0JPT0woMCAsICJzdGRpbiIsICZzdGRpbl9wYXRocywgTl8oInJlYWQgZmlsZSBuYW1lcyBmcm9tIHN0ZGluIikpLAorCU9QVF9CT09MKCd6JywgTlVMTCwgJm51bF90ZXJtX2xpbmUsCisJCSBOXygidGVybWluYXRlIGlucHV0IGFuZCBvdXRwdXQgcmVjb3JkcyBieSBhIE5VTCBjaGFyYWN0ZXIiKSksCiAJT1BUX0VORCgpCiB9OwogCkBAIC0zOCw4ICszOCwxNiBAQAogCQllbHNlIGlmIChBVFRSX1VOU0VUKHZhbHVlKSkKIAkJCXZhbHVlID0gInVuc3BlY2lmaWVkIjsKIAotCQlxdW90ZV9jX3N0eWxlKGZpbGUsIE5VTEwsIHN0ZG91dCwgMCk7Ci0JCXByaW50ZigiOiAlczogJXNcbiIsIGdpdF9hdHRyX25hbWUoY2hlY2tbal0uYXR0ciksIHZhbHVlKTsKKwkJaWYgKG51bF90ZXJtX2xpbmUpIHsKKwkJCXByaW50ZigiJXMlYyIgLyogcGF0aCAqLworCQkJICAgICAgICIlcyVjIiAvKiBhdHRybmFtZSAqLworCQkJICAgICAgICIlcyVjIiAvKiBhdHRydmFsdWUgKi8sCisJCQkgICAgICAgZmlsZSwgMCwgZ2l0X2F0dHJfbmFtZShjaGVja1tqXS5hdHRyKSwgMCwgdmFsdWUsIDApOworCQl9IGVsc2UgeworCQkJcXVvdGVfY19zdHlsZShmaWxlLCBOVUxMLCBzdGRvdXQsIDApOworCQkJcHJpbnRmKCI6ICVzOiAlc1xuIiwgZ2l0X2F0dHJfbmFtZShjaGVja1tqXS5hdHRyKSwgdmFsdWUpOworCQl9CisKIAl9CiB9CiAKQEAgLTY1LDcgKzczLDcgQEAKIAlzdHJ1Y3QgZ2l0X2F0dHJfY2hlY2sgKmNoZWNrKQogewogCXN0cnVjdCBzdHJidWYgYnVmLCBuYnVmOwotCWludCBsaW5lX3Rlcm1pbmF0aW9uID0gbnVsbF90ZXJtX2xpbmUgPyAwIDogJ1xuJzsKKwlpbnQgbGluZV90ZXJtaW5hdGlvbiA9IG51bF90ZXJtX2xpbmUgPyAwIDogJ1xuJzsKIAogCXN0cmJ1Zl9pbml0KCZidWYsIDApOwogCXN0cmJ1Zl9pbml0KCZuYnVmLCAwKTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vY2hlY2staWdub3JlLmMgYi9idWlsdGluL2NoZWNrLWlnbm9yZS5jCmluZGV4IDRhOGZjNzAuLjU5NDQ2M2EgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vY2hlY2staWdub3JlLmMKKysrIGIvYnVpbHRpbi9jaGVjay1pZ25vcmUuYwpAQCAtNSwyNSArNSwyNyBAQAogI2luY2x1ZGUgInBhdGhzcGVjLmgiCiAjaW5jbHVkZSAicGFyc2Utb3B0aW9ucy5oIgogCi1zdGF0aWMgaW50IHF1aWV0LCB2ZXJib3NlLCBzdGRpbl9wYXRocywgc2hvd19ub25fbWF0Y2hpbmc7CitzdGF0aWMgaW50IHF1aWV0LCB2ZXJib3NlLCBzdGRpbl9wYXRocywgc2hvd19ub25fbWF0Y2hpbmcsIG5vX2luZGV4Owogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjaGVja19pZ25vcmVfdXNhZ2VbXSA9IHsKICJnaXQgY2hlY2staWdub3JlIFtvcHRpb25zXSBwYXRobmFtZS4uLiIsCiAiZ2l0IGNoZWNrLWlnbm9yZSBbb3B0aW9uc10gLS1zdGRpbiA8IDxsaXN0LW9mLXBhdGhzPiIsCiBOVUxMCiB9OwogCi1zdGF0aWMgaW50IG51bGxfdGVybV9saW5lOworc3RhdGljIGludCBudWxfdGVybV9saW5lOwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBjaGVja19pZ25vcmVfb3B0aW9uc1tdID0gewogCU9QVF9fUVVJRVQoJnF1aWV0LCBOXygic3VwcHJlc3MgcHJvZ3Jlc3MgcmVwb3J0aW5nIikpLAogCU9QVF9fVkVSQk9TRSgmdmVyYm9zZSwgTl8oImJlIHZlcmJvc2UiKSksCiAJT1BUX0dST1VQKCIiKSwKLQlPUFRfQk9PTEVBTigwLCAic3RkaW4iLCAmc3RkaW5fcGF0aHMsCi0JCSAgICBOXygicmVhZCBmaWxlIG5hbWVzIGZyb20gc3RkaW4iKSksCi0JT1BUX0JPT0xFQU4oJ3onLCBOVUxMLCAmbnVsbF90ZXJtX2xpbmUsCi0JCSAgICBOXygiaW5wdXQgcGF0aHMgYXJlIHRlcm1pbmF0ZWQgYnkgYSBudWxsIGNoYXJhY3RlciIpKSwKLQlPUFRfQk9PTEVBTignbicsICJub24tbWF0Y2hpbmciLCAmc2hvd19ub25fbWF0Y2hpbmcsCi0JCSAgICBOXygic2hvdyBub24tbWF0Y2hpbmcgaW5wdXQgcGF0aHMiKSksCisJT1BUX0JPT0woMCwgInN0ZGluIiwgJnN0ZGluX3BhdGhzLAorCQkgTl8oInJlYWQgZmlsZSBuYW1lcyBmcm9tIHN0ZGluIikpLAorCU9QVF9CT09MKCd6JywgTlVMTCwgJm51bF90ZXJtX2xpbmUsCisJCSBOXygidGVybWluYXRlIGlucHV0IGFuZCBvdXRwdXQgcmVjb3JkcyBieSBhIE5VTCBjaGFyYWN0ZXIiKSksCisJT1BUX0JPT0woJ24nLCAibm9uLW1hdGNoaW5nIiwgJnNob3dfbm9uX21hdGNoaW5nLAorCQkgTl8oInNob3cgbm9uLW1hdGNoaW5nIGlucHV0IHBhdGhzIikpLAorCU9QVF9CT09MKDAsICJuby1pbmRleCIsICZub19pbmRleCwKKwkJIE5fKCJpZ25vcmUgaW5kZXggd2hlbiBjaGVja2luZyIpKSwKIAlPUFRfRU5EKCkKIH07CiAKQEAgLTMxLDcgKzMzLDcgQEAKIHsKIAljaGFyICpiYW5nICA9IChleGNsdWRlICYmIGV4Y2x1ZGUtPmZsYWdzICYgRVhDX0ZMQUdfTkVHQVRJVkUpICA/ICIhIiA6ICIiOwogCWNoYXIgKnNsYXNoID0gKGV4Y2x1ZGUgJiYgZXhjbHVkZS0+ZmxhZ3MgJiBFWENfRkxBR19NVVNUQkVESVIpID8gIi8iIDogIiI7Ci0JaWYgKCFudWxsX3Rlcm1fbGluZSkgeworCWlmICghbnVsX3Rlcm1fbGluZSkgewogCQlpZiAoIXZlcmJvc2UpIHsKIAkJCXdyaXRlX25hbWVfcXVvdGVkKHBhdGgsIHN0ZG91dCwgJ1xuJyk7CiAJCX0gZWxzZSB7CkBAIC02NCwzNyArNjYsNDUgQEAKIH0KIAogc3RhdGljIGludCBjaGVja19pZ25vcmUoc3RydWN0IGRpcl9zdHJ1Y3QgKmRpciwKLQkJCWNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqKnBhdGhzcGVjKQorCQkJY29uc3QgY2hhciAqcHJlZml4LCBpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiB7Ci0JY29uc3QgY2hhciAqcGF0aCwgKmZ1bGxfcGF0aDsKKwljb25zdCBjaGFyICpmdWxsX3BhdGg7CiAJY2hhciAqc2VlbjsKIAlpbnQgbnVtX2lnbm9yZWQgPSAwLCBkdHlwZSA9IERUX1VOS05PV04sIGk7CiAJc3RydWN0IGV4Y2x1ZGUgKmV4Y2x1ZGU7CisJc3RydWN0IHBhdGhzcGVjIHBhdGhzcGVjOwogCi0JaWYgKCFwYXRoc3BlYyB8fCAhKnBhdGhzcGVjKSB7CisJaWYgKCFhcmdjKSB7CiAJCWlmICghcXVpZXQpCiAJCQlmcHJpbnRmKHN0ZGVyciwgIm5vIHBhdGhzcGVjIGdpdmVuLlxuIik7CiAJCXJldHVybiAwOwogCX0KIAogCS8qCisJICogY2hlY2staWdub3JlIGp1c3QgbmVlZHMgcGF0aHMuIE1hZ2ljIGJleW9uZCA6LyBpcyByZWFsbHkKKwkgKiBpcnJlbGV2YW50LgorCSAqLworCXBhcnNlX3BhdGhzcGVjKCZwYXRoc3BlYywKKwkJICAgICAgIFBBVEhTUEVDX0FMTF9NQUdJQyAmIH5QQVRIU1BFQ19GUk9NVE9QLAorCQkgICAgICAgUEFUSFNQRUNfU1lNTElOS19MRUFESU5HX1BBVEggfAorCQkgICAgICAgUEFUSFNQRUNfU1RSSVBfU1VCTU9EVUxFX1NMQVNIX0VYUEVOU0lWRSB8CisJCSAgICAgICBQQVRIU1BFQ19LRUVQX09SREVSLAorCQkgICAgICAgcHJlZml4LCBhcmd2KTsKKworCS8qCiAJICogbG9vayBmb3IgcGF0aHNwZWNzIG1hdGNoaW5nIGVudHJpZXMgaW4gdGhlIGluZGV4LCBzaW5jZSB0aGVzZQogCSAqIHNob3VsZCBub3QgYmUgaWdub3JlZCwgaW4gb3JkZXIgdG8gYmUgY29uc2lzdGVudCB3aXRoCiAJICogJ2dpdCBzdGF0dXMnLCAnZ2l0IGFkZCcgZXRjLgogCSAqLwotCXNlZW4gPSBmaW5kX3BhdGhzcGVjc19tYXRjaGluZ19hZ2FpbnN0X2luZGV4KHBhdGhzcGVjKTsKLQlmb3IgKGkgPSAwOyBwYXRoc3BlY1tpXTsgaSsrKSB7Ci0JCXBhdGggPSBwYXRoc3BlY1tpXTsKLQkJZnVsbF9wYXRoID0gcHJlZml4X3BhdGgocHJlZml4LCBwcmVmaXgKLQkJCQkJPyBzdHJsZW4ocHJlZml4KSA6IDAsIHBhdGgpOwotCQlmdWxsX3BhdGggPSBjaGVja19wYXRoX2Zvcl9naXRsaW5rKGZ1bGxfcGF0aCk7Ci0JCWRpZV9pZl9wYXRoX2JleW9uZF9zeW1saW5rKGZ1bGxfcGF0aCwgcHJlZml4KTsKKwlzZWVuID0gZmluZF9wYXRoc3BlY3NfbWF0Y2hpbmdfYWdhaW5zdF9pbmRleCgmcGF0aHNwZWMpOworCWZvciAoaSA9IDA7IGkgPCBwYXRoc3BlYy5ucjsgaSsrKSB7CisJCWZ1bGxfcGF0aCA9IHBhdGhzcGVjLml0ZW1zW2ldLm1hdGNoOwogCQlleGNsdWRlID0gTlVMTDsKIAkJaWYgKCFzZWVuW2ldKSB7CiAJCQlleGNsdWRlID0gbGFzdF9leGNsdWRlX21hdGNoaW5nKGRpciwgZnVsbF9wYXRoLCAmZHR5cGUpOwogCQl9CiAJCWlmICghcXVpZXQgJiYgKGV4Y2x1ZGUgfHwgc2hvd19ub25fbWF0Y2hpbmcpKQotCQkJb3V0cHV0X2V4Y2x1ZGUocGF0aCwgZXhjbHVkZSk7CisJCQlvdXRwdXRfZXhjbHVkZShwYXRoc3BlYy5pdGVtc1tpXS5vcmlnaW5hbCwgZXhjbHVkZSk7CiAJCWlmIChleGNsdWRlKQogCQkJbnVtX2lnbm9yZWQrKzsKIAl9CkBAIC0xMDcsNyArMTE3LDcgQEAKIHsKIAlzdHJ1Y3Qgc3RyYnVmIGJ1ZiwgbmJ1ZjsKIAljaGFyICpwYXRoc3BlY1syXSA9IHsgTlVMTCwgTlVMTCB9OwotCWludCBsaW5lX3Rlcm1pbmF0aW9uID0gbnVsbF90ZXJtX2xpbmUgPyAwIDogJ1xuJzsKKwlpbnQgbGluZV90ZXJtaW5hdGlvbiA9IG51bF90ZXJtX2xpbmUgPyAwIDogJ1xuJzsKIAlpbnQgbnVtX2lnbm9yZWQgPSAwOwogCiAJc3RyYnVmX2luaXQoJmJ1ZiwgMCk7CkBAIC0xMjAsNyArMTMwLDggQEAKIAkJCXN0cmJ1Zl9zd2FwKCZidWYsICZuYnVmKTsKIAkJfQogCQlwYXRoc3BlY1swXSA9IGJ1Zi5idWY7Ci0JCW51bV9pZ25vcmVkICs9IGNoZWNrX2lnbm9yZShkaXIsIHByZWZpeCwgKGNvbnN0IGNoYXIgKiopcGF0aHNwZWMpOworCQludW1faWdub3JlZCArPSBjaGVja19pZ25vcmUoZGlyLCBwcmVmaXgsCisJCQkJCSAgICAxLCAoY29uc3QgY2hhciAqKilwYXRoc3BlYyk7CiAJCW1heWJlX2ZsdXNoX29yX2RpZShzdGRvdXQsICJjaGVjay1pZ25vcmUgdG8gc3Rkb3V0Iik7CiAJfQogCXN0cmJ1Zl9yZWxlYXNlKCZidWYpOwpAQCAtMTQyLDcgKzE1Myw3IEBACiAJCWlmIChhcmdjID4gMCkKIAkJCWRpZShfKCJjYW5ub3Qgc3BlY2lmeSBwYXRobmFtZXMgd2l0aCAtLXN0ZGluIikpOwogCX0gZWxzZSB7Ci0JCWlmIChudWxsX3Rlcm1fbGluZSkKKwkJaWYgKG51bF90ZXJtX2xpbmUpCiAJCQlkaWUoXygiLXogb25seSBtYWtlcyBzZW5zZSB3aXRoIC0tc3RkaW4iKSk7CiAJCWlmIChhcmdjID09IDApCiAJCQlkaWUoXygibm8gcGF0aCBzcGVjaWZpZWQiKSk7CkBAIC0xNTcsNyArMTY4LDcgQEAKIAkJZGllKF8oIi0tbm9uLW1hdGNoaW5nIGlzIG9ubHkgdmFsaWQgd2l0aCAtLXZlcmJvc2UiKSk7CiAKIAkvKiByZWFkX2NhY2hlKCkgaXMgb25seSBuZWNlc3Nhcnkgc28gd2UgY2FuIHdhdGNoIG91dCBmb3Igc3VibW9kdWxlcy4gKi8KLQlpZiAocmVhZF9jYWNoZSgpIDwgMCkKKwlpZiAoIW5vX2luZGV4ICYmIHJlYWRfY2FjaGUoKSA8IDApCiAJCWRpZShfKCJpbmRleCBmaWxlIGNvcnJ1cHQiKSk7CiAKIAltZW1zZXQoJmRpciwgMCwgc2l6ZW9mKGRpcikpOwpAQCAtMTY2LDcgKzE3Nyw3IEBACiAJaWYgKHN0ZGluX3BhdGhzKSB7CiAJCW51bV9pZ25vcmVkID0gY2hlY2tfaWdub3JlX3N0ZGluX3BhdGhzKCZkaXIsIHByZWZpeCk7CiAJfSBlbHNlIHsKLQkJbnVtX2lnbm9yZWQgPSBjaGVja19pZ25vcmUoJmRpciwgcHJlZml4LCBhcmd2KTsKKwkJbnVtX2lnbm9yZWQgPSBjaGVja19pZ25vcmUoJmRpciwgcHJlZml4LCBhcmdjLCBhcmd2KTsKIAkJbWF5YmVfZmx1c2hfb3JfZGllKHN0ZG91dCwgImlnbm9yZSB0byBzdGRvdXQiKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2J1aWx0aW4vY2hlY2tvdXQtaW5kZXguYyBiL2J1aWx0aW4vY2hlY2tvdXQtaW5kZXguYwppbmRleCBiMWZlZGE3Li42MWU3NWViIDEwMDY0NAotLS0gYS9idWlsdGluL2NoZWNrb3V0LWluZGV4LmMKKysrIGIvYnVpbHRpbi9jaGVja291dC1pbmRleC5jCkBAIC0xNCw3ICsxNCw3IEBACiBzdGF0aWMgaW50IGxpbmVfdGVybWluYXRpb24gPSAnXG4nOwogc3RhdGljIGludCBjaGVja291dF9zdGFnZTsgLyogZGVmYXVsdCB0byBjaGVja291dCBzdGFnZTAgKi8KIHN0YXRpYyBpbnQgdG9fdGVtcGZpbGU7Ci1zdGF0aWMgY2hhciB0b3BhdGhbNF1bUEFUSF9NQVggKyAxXTsKK3N0YXRpYyBjaGFyIHRvcGF0aFs0XVtURU1QT1JBUllfRklMRU5BTUVfTEVOR1RIICsgMV07CiAKIHN0YXRpYyBzdHJ1Y3QgY2hlY2tvdXQgc3RhdGU7CiAKQEAgLTE4MywxMiArMTgzLDEyIEBACiAJaW50IHByZWZpeF9sZW5ndGg7CiAJaW50IGZvcmNlID0gMCwgcXVpZXQgPSAwLCBub3RfbmV3ID0gMDsKIAlzdHJ1Y3Qgb3B0aW9uIGJ1aWx0aW5fY2hlY2tvdXRfaW5kZXhfb3B0aW9uc1tdID0gewotCQlPUFRfQk9PTEVBTignYScsICJhbGwiLCAmYWxsLAorCQlPUFRfQk9PTCgnYScsICJhbGwiLCAmYWxsLAogCQkJTl8oImNoZWNrIG91dCBhbGwgZmlsZXMgaW4gdGhlIGluZGV4IikpLAogCQlPUFRfX0ZPUkNFKCZmb3JjZSwgTl8oImZvcmNlIG92ZXJ3cml0ZSBvZiBleGlzdGluZyBmaWxlcyIpKSwKIAkJT1BUX19RVUlFVCgmcXVpZXQsCiAJCQlOXygibm8gd2FybmluZyBmb3IgZXhpc3RpbmcgZmlsZXMgYW5kIGZpbGVzIG5vdCBpbiBpbmRleCIpKSwKLQkJT1BUX0JPT0xFQU4oJ24nLCAibm8tY3JlYXRlIiwgJm5vdF9uZXcsCisJCU9QVF9CT09MKCduJywgIm5vLWNyZWF0ZSIsICZub3RfbmV3LAogCQkJTl8oImRvbid0IGNoZWNrb3V0IG5ldyBmaWxlcyIpKSwKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssICd1JywgImluZGV4IiwgJm5ld2ZkLCBOVUxMLAogCQkJTl8oInVwZGF0ZSBzdGF0IGluZm9ybWF0aW9uIGluIHRoZSBpbmRleCBmaWxlIiksCkBAIC0xOTYsOSArMTk2LDkgQEAKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssICd6JywgTlVMTCwgTlVMTCwgTlVMTCwKIAkJCU5fKCJwYXRocyBhcmUgc2VwYXJhdGVkIHdpdGggTlVMIGNoYXJhY3RlciIpLAogCQkJUEFSU0VfT1BUX05PQVJHLCBvcHRpb25fcGFyc2VfeiB9LAotCQlPUFRfQk9PTEVBTigwLCAic3RkaW4iLCAmcmVhZF9mcm9tX3N0ZGluLAorCQlPUFRfQk9PTCgwLCAic3RkaW4iLCAmcmVhZF9mcm9tX3N0ZGluLAogCQkJTl8oInJlYWQgbGlzdCBvZiBwYXRocyBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgInRlbXAiLCAmdG9fdGVtcGZpbGUsCisJCU9QVF9CT09MKDAsICJ0ZW1wIiwgJnRvX3RlbXBmaWxlLAogCQkJTl8oIndyaXRlIHRoZSBjb250ZW50IHRvIHRlbXBvcmFyeSBmaWxlcyIpKSwKIAkJT1BUX0NBTExCQUNLKDAsICJwcmVmaXgiLCBOVUxMLCBOXygic3RyaW5nIiksCiAJCQlOXygid2hlbiBjcmVhdGluZyBmaWxlcywgcHJlcGVuZCA8c3RyaW5nPiIpLApkaWZmIC0tZ2l0IGEvYnVpbHRpbi9jaGVja291dC5jIGIvYnVpbHRpbi9jaGVja291dC5jCmluZGV4IDIyY2M3ZmMuLjVkZjM4MzcgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vY2hlY2tvdXQuYworKysgYi9idWlsdGluL2NoZWNrb3V0LmMKQEAgLTQ2LDcgKzQ2LDcgQEAKIAogCWludCBicmFuY2hfZXhpc3RzOwogCWNvbnN0IGNoYXIgKnByZWZpeDsKLQljb25zdCBjaGFyICoqcGF0aHNwZWM7CisJc3RydWN0IHBhdGhzcGVjIHBhdGhzcGVjOwogCXN0cnVjdCB0cmVlICpzb3VyY2VfdHJlZTsKIH07CiAKQEAgLTgzLDEyICs4Myw5IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcmVhZF90cmVlX3NvbWUoc3RydWN0IHRyZWUgKnRyZWUsIGNvbnN0IGNoYXIgKipwYXRoc3BlYykKK3N0YXRpYyBpbnQgcmVhZF90cmVlX3NvbWUoc3RydWN0IHRyZWUgKnRyZWUsIGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMpCiB7Ci0Jc3RydWN0IHBhdGhzcGVjIHBzOwotCWluaXRfcGF0aHNwZWMoJnBzLCBwYXRoc3BlYyk7Ci0JcmVhZF90cmVlX3JlY3Vyc2l2ZSh0cmVlLCAiIiwgMCwgMCwgJnBzLCB1cGRhdGVfc29tZSwgTlVMTCk7Ci0JZnJlZV9wYXRoc3BlYygmcHMpOworCXJlYWRfdHJlZV9yZWN1cnNpdmUodHJlZSwgIiIsIDAsIDAsIHBhdGhzcGVjLCB1cGRhdGVfc29tZSwgTlVMTCk7CiAKIAkvKiB1cGRhdGUgdGhlIGluZGV4IHdpdGggdGhlIGdpdmVuIHRyZWUncyBpbmZvCiAJICogZm9yIGFsbCBhcmdzLCBleHBhbmRpbmcgd2lsZGNhcmRzLCBhbmQgZXhpdApAQCAtMjI4LDggKzIyNSw2IEBACiAJaW50IGZsYWc7CiAJc3RydWN0IGNvbW1pdCAqaGVhZDsKIAlpbnQgZXJycyA9IDA7Ci0JaW50IHN0YWdlID0gb3B0cy0+d3JpdGVvdXRfc3RhZ2U7Ci0JaW50IG1lcmdlID0gb3B0cy0+bWVyZ2U7CiAJaW50IG5ld2ZkOwogCXN0cnVjdCBsb2NrX2ZpbGUgKmxvY2tfZmlsZTsKIApAQCAtMjU3LDIwICsyNTIsMTggQEAKIAogCWlmIChvcHRzLT5wYXRjaF9tb2RlKQogCQlyZXR1cm4gcnVuX2FkZF9pbnRlcmFjdGl2ZShyZXZpc2lvbiwgIi0tcGF0Y2g9Y2hlY2tvdXQiLAotCQkJCQkgICBvcHRzLT5wYXRoc3BlYyk7CisJCQkJCSAgICZvcHRzLT5wYXRoc3BlYyk7CiAKIAlsb2NrX2ZpbGUgPSB4Y2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgbG9ja19maWxlKSk7CiAKIAluZXdmZCA9IGhvbGRfbG9ja2VkX2luZGV4KGxvY2tfZmlsZSwgMSk7Ci0JaWYgKHJlYWRfY2FjaGVfcHJlbG9hZChvcHRzLT5wYXRoc3BlYykgPCAwKQorCWlmIChyZWFkX2NhY2hlX3ByZWxvYWQoJm9wdHMtPnBhdGhzcGVjKSA8IDApCiAJCXJldHVybiBlcnJvcihfKCJjb3JydXB0IGluZGV4IGZpbGUiKSk7CiAKIAlpZiAob3B0cy0+c291cmNlX3RyZWUpCi0JCXJlYWRfdHJlZV9zb21lKG9wdHMtPnNvdXJjZV90cmVlLCBvcHRzLT5wYXRoc3BlYyk7CisJCXJlYWRfdHJlZV9zb21lKG9wdHMtPnNvdXJjZV90cmVlLCAmb3B0cy0+cGF0aHNwZWMpOwogCi0JZm9yIChwb3MgPSAwOyBvcHRzLT5wYXRoc3BlY1twb3NdOyBwb3MrKykKLQkJOwotCXBzX21hdGNoZWQgPSB4Y2FsbG9jKDEsIHBvcyk7CisJcHNfbWF0Y2hlZCA9IHhjYWxsb2MoMSwgb3B0cy0+cGF0aHNwZWMubnIpOwogCiAJLyoKIAkgKiBNYWtlIHN1cmUgYWxsIHBhdGhzcGVjcyBwYXJ0aWNpcGF0ZWQgaW4gbG9jYXRpbmcgdGhlIHBhdGhzCkBAIC0zMDQsMTIgKzI5NywxMiBAQAogCQkgKiBtYXRjaF9wYXRoc3BlYygpIGZvciBfYWxsXyBlbnRyaWVzIHdoZW4KIAkJICogb3B0cy0+c291cmNlX3RyZWUgIT0gTlVMTC4KIAkJICovCi0JCWlmIChtYXRjaF9wYXRoc3BlYyhvcHRzLT5wYXRoc3BlYywgY2UtPm5hbWUsIGNlX25hbWVsZW4oY2UpLAorCQlpZiAobWF0Y2hfcGF0aHNwZWNfZGVwdGgoJm9wdHMtPnBhdGhzcGVjLCBjZS0+bmFtZSwgY2VfbmFtZWxlbihjZSksCiAJCQkJICAgMCwgcHNfbWF0Y2hlZCkpCiAJCQljZS0+Y2VfZmxhZ3MgfD0gQ0VfTUFUQ0hFRDsKIAl9CiAKLQlpZiAocmVwb3J0X3BhdGhfZXJyb3IocHNfbWF0Y2hlZCwgb3B0cy0+cGF0aHNwZWMsIG9wdHMtPnByZWZpeCkpIHsKKwlpZiAocmVwb3J0X3BhdGhfZXJyb3IocHNfbWF0Y2hlZCwgJm9wdHMtPnBhdGhzcGVjLCBvcHRzLT5wcmVmaXgpKSB7CiAJCWZyZWUocHNfbWF0Y2hlZCk7CiAJCXJldHVybiAxOwogCX0KQEAgLTMyNyw4ICszMjAsOCBAQAogCQkJCWNvbnRpbnVlOwogCQkJaWYgKG9wdHMtPmZvcmNlKSB7CiAJCQkJd2FybmluZyhfKCJwYXRoICclcycgaXMgdW5tZXJnZWQiKSwgY2UtPm5hbWUpOwotCQkJfSBlbHNlIGlmIChzdGFnZSkgewotCQkJCWVycnMgfD0gY2hlY2tfc3RhZ2Uoc3RhZ2UsIGNlLCBwb3MpOworCQkJfSBlbHNlIGlmIChvcHRzLT53cml0ZW91dF9zdGFnZSkgeworCQkJCWVycnMgfD0gY2hlY2tfc3RhZ2Uob3B0cy0+d3JpdGVvdXRfc3RhZ2UsIGNlLCBwb3MpOwogCQkJfSBlbHNlIGlmIChvcHRzLT5tZXJnZSkgewogCQkJCWVycnMgfD0gY2hlY2tfc3RhZ2VzKCgxPDwyKSB8ICgxPDwzKSwgY2UsIHBvcyk7CiAJCQl9IGVsc2UgewpAQCAtMzUyLDkgKzM0NSw5IEBACiAJCQkJZXJycyB8PSBjaGVja291dF9lbnRyeShjZSwgJnN0YXRlLCBOVUxMKTsKIAkJCQljb250aW51ZTsKIAkJCX0KLQkJCWlmIChzdGFnZSkKLQkJCQllcnJzIHw9IGNoZWNrb3V0X3N0YWdlKHN0YWdlLCBjZSwgcG9zLCAmc3RhdGUpOwotCQkJZWxzZSBpZiAobWVyZ2UpCisJCQlpZiAob3B0cy0+d3JpdGVvdXRfc3RhZ2UpCisJCQkJZXJycyB8PSBjaGVja291dF9zdGFnZShvcHRzLT53cml0ZW91dF9zdGFnZSwgY2UsIHBvcywgJnN0YXRlKTsKKwkJCWVsc2UgaWYgKG9wdHMtPm1lcmdlKQogCQkJCWVycnMgfD0gY2hlY2tvdXRfbWVyZ2VkKHBvcywgJnN0YXRlKTsKIAkJCXBvcyA9IHNraXBfc2FtZV9uYW1lKGNlLCBwb3MpIC0gMTsKIAkJfQpAQCAtMzg3LDggKzM4MCw4IEBACiBzdGF0aWMgdm9pZCBkZXNjcmliZV9kZXRhY2hlZF9oZWFkKGNvbnN0IGNoYXIgKm1zZywgc3RydWN0IGNvbW1pdCAqY29tbWl0KQogewogCXN0cnVjdCBzdHJidWYgc2IgPSBTVFJCVUZfSU5JVDsKLQlwYXJzZV9jb21taXQoY29tbWl0KTsKLQlwcF9jb21taXRfZWFzeShDTUlUX0ZNVF9PTkVMSU5FLCBjb21taXQsICZzYik7CisJaWYgKCFwYXJzZV9jb21taXQoY29tbWl0KSkKKwkJcHBfY29tbWl0X2Vhc3koQ01JVF9GTVRfT05FTElORSwgY29tbWl0LCAmc2IpOwogCWZwcmludGYoc3RkZXJyLCAiJXMgJXMuLi4gJXNcbiIsIG1zZywKIAkJZmluZF91bmlxdWVfYWJicmV2KGNvbW1pdC0+b2JqZWN0LnNoYTEsIERFRkFVTFRfQUJCUkVWKSwgc2IuYnVmKTsKIAlzdHJidWZfcmVsZWFzZSgmc2IpOwpAQCAtNjg0LDEyICs2NzcsMTIgQEAKIAogc3RhdGljIHZvaWQgZGVzY3JpYmVfb25lX29ycGhhbihzdHJ1Y3Qgc3RyYnVmICpzYiwgc3RydWN0IGNvbW1pdCAqY29tbWl0KQogewotCXBhcnNlX2NvbW1pdChjb21taXQpOwogCXN0cmJ1Zl9hZGRzdHIoc2IsICIgICIpOwogCXN0cmJ1Zl9hZGRzdHIoc2IsCiAJCWZpbmRfdW5pcXVlX2FiYnJldihjb21taXQtPm9iamVjdC5zaGExLCBERUZBVUxUX0FCQlJFVikpOwogCXN0cmJ1Zl9hZGRjaChzYiwgJyAnKTsKLQlwcF9jb21taXRfZWFzeShDTUlUX0ZNVF9PTkVMSU5FLCBjb21taXQsIHNiKTsKKwlpZiAoIXBhcnNlX2NvbW1pdChjb21taXQpKQorCQlwcF9jb21taXRfZWFzeShDTUlUX0ZNVF9PTkVMSU5FLCBjb21taXQsIHNiKTsKIAlzdHJidWZfYWRkY2goc2IsICdcbicpOwogfQogCkBAIC03ODgsNyArNzgxLDcgQEAKIAlpZiAoIShmbGFnICYgUkVGX0lTU1lNUkVGKSkKIAkJb2xkLnBhdGggPSBOVUxMOwogCi0JaWYgKG9sZC5wYXRoICYmICFwcmVmaXhjbXAob2xkLnBhdGgsICJyZWZzL2hlYWRzLyIpKQorCWlmIChvbGQucGF0aCAmJiBzdGFydHNfd2l0aChvbGQucGF0aCwgInJlZnMvaGVhZHMvIikpCiAJCW9sZC5uYW1lID0gb2xkLnBhdGggKyBzdHJsZW4oInJlZnMvaGVhZHMvIik7CiAKIAlpZiAoIW5ldy0+bmFtZSkgewpAQCAtNzk2LDcgKzc4OSw3IEBACiAJCW5ldy0+Y29tbWl0ID0gb2xkLmNvbW1pdDsKIAkJaWYgKCFuZXctPmNvbW1pdCkKIAkJCWRpZShfKCJZb3UgYXJlIG9uIGEgYnJhbmNoIHlldCB0byBiZSBib3JuIikpOwotCQlwYXJzZV9jb21taXQobmV3LT5jb21taXQpOworCQlwYXJzZV9jb21taXRfb3JfZGllKG5ldy0+Y29tbWl0KTsKIAl9CiAKIAlyZXQgPSBtZXJnZV93b3JraW5nX3RyZWUob3B0cywgJm9sZCwgbmV3LCAmd3JpdGVvdXRfZXJyb3IpOwpAQCAtODIzLDcgKzgxNiw3IEBACiAJCXJldHVybiAwOwogCX0KIAotCWlmICghcHJlZml4Y21wKHZhciwgInN1Ym1vZHVsZS4iKSkKKwlpZiAoc3RhcnRzX3dpdGgodmFyLCAic3VibW9kdWxlLiIpKQogCQlyZXR1cm4gcGFyc2Vfc3VibW9kdWxlX2NvbmZpZ19vcHRpb24odmFyLCB2YWx1ZSk7CiAKIAlyZXR1cm4gZ2l0X3htZXJnZV9jb25maWcodmFyLCB2YWx1ZSwgTlVMTCk7CkBAIC0xMDAyLDcgKzk5NSw3IEBACiAJCS8qIG5vdCBhIGNvbW1pdCAqLwogCQkqc291cmNlX3RyZWUgPSBwYXJzZV90cmVlX2luZGlyZWN0KHJldik7CiAJfSBlbHNlIHsKLQkJcGFyc2VfY29tbWl0KG5ldy0+Y29tbWl0KTsKKwkJcGFyc2VfY29tbWl0X29yX2RpZShuZXctPmNvbW1pdCk7CiAJCSpzb3VyY2VfdHJlZSA9IG5ldy0+Y29tbWl0LT50cmVlOwogCX0KIApAQCAtMTA0NSw3ICsxMDM4LDcgQEAKIHN0YXRpYyBpbnQgY2hlY2tvdXRfYnJhbmNoKHN0cnVjdCBjaGVja291dF9vcHRzICpvcHRzLAogCQkJICAgc3RydWN0IGJyYW5jaF9pbmZvICpuZXcpCiB7Ci0JaWYgKG9wdHMtPnBhdGhzcGVjKQorCWlmIChvcHRzLT5wYXRoc3BlYy5ucikKIAkJZGllKF8oInBhdGhzIGNhbm5vdCBiZSB1c2VkIHdpdGggc3dpdGNoaW5nIGJyYW5jaGVzIikpOwogCiAJaWYgKG9wdHMtPnBhdGNoX21vZGUpCkBAIC0xMDk5LDggKzEwOTIsOCBAQAogCQkJICAgTl8oImNyZWF0ZSBhbmQgY2hlY2tvdXQgYSBuZXcgYnJhbmNoIikpLAogCQlPUFRfU1RSSU5HKCdCJywgTlVMTCwgJm9wdHMubmV3X2JyYW5jaF9mb3JjZSwgTl8oImJyYW5jaCIpLAogCQkJICAgTl8oImNyZWF0ZS9yZXNldCBhbmQgY2hlY2tvdXQgYSBicmFuY2giKSksCi0JCU9QVF9CT09MRUFOKCdsJywgTlVMTCwgJm9wdHMubmV3X2JyYW5jaF9sb2csIE5fKCJjcmVhdGUgcmVmbG9nIGZvciBuZXcgYnJhbmNoIikpLAotCQlPUFRfQk9PTEVBTigwLCAiZGV0YWNoIiwgJm9wdHMuZm9yY2VfZGV0YWNoLCBOXygiZGV0YWNoIHRoZSBIRUFEIGF0IG5hbWVkIGNvbW1pdCIpKSwKKwkJT1BUX0JPT0woJ2wnLCBOVUxMLCAmb3B0cy5uZXdfYnJhbmNoX2xvZywgTl8oImNyZWF0ZSByZWZsb2cgZm9yIG5ldyBicmFuY2giKSksCisJCU9QVF9CT09MKDAsICJkZXRhY2giLCAmb3B0cy5mb3JjZV9kZXRhY2gsIE5fKCJkZXRhY2ggdGhlIEhFQUQgYXQgbmFtZWQgY29tbWl0IikpLAogCQlPUFRfU0VUX0lOVCgndCcsICJ0cmFjayIsICAmb3B0cy50cmFjaywgTl8oInNldCB1cHN0cmVhbSBpbmZvIGZvciBuZXcgYnJhbmNoIiksCiAJCQlCUkFOQ0hfVFJBQ0tfRVhQTElDSVQpLAogCQlPUFRfU1RSSU5HKDAsICJvcnBoYW4iLCAmb3B0cy5uZXdfb3JwaGFuX2JyYW5jaCwgTl8oIm5ldyBicmFuY2giKSwgTl8oIm5ldyB1bnBhcmVudGVkIGJyYW5jaCIpKSwKQEAgLTExMDksMTYgKzExMDIsMTUgQEAKIAkJT1BUX1NFVF9JTlQoJzMnLCAidGhlaXJzIiwgJm9wdHMud3JpdGVvdXRfc3RhZ2UsIE5fKCJjaGVja291dCB0aGVpciB2ZXJzaW9uIGZvciB1bm1lcmdlZCBmaWxlcyIpLAogCQkJICAgIDMpLAogCQlPUFRfX0ZPUkNFKCZvcHRzLmZvcmNlLCBOXygiZm9yY2UgY2hlY2tvdXQgKHRocm93IGF3YXkgbG9jYWwgbW9kaWZpY2F0aW9ucykiKSksCi0JCU9QVF9CT09MRUFOKCdtJywgIm1lcmdlIiwgJm9wdHMubWVyZ2UsIE5fKCJwZXJmb3JtIGEgMy13YXkgbWVyZ2Ugd2l0aCB0aGUgbmV3IGJyYW5jaCIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgIm92ZXJ3cml0ZS1pZ25vcmUiLCAmb3B0cy5vdmVyd3JpdGVfaWdub3JlLCBOXygidXBkYXRlIGlnbm9yZWQgZmlsZXMgKGRlZmF1bHQpIikpLAorCQlPUFRfQk9PTCgnbScsICJtZXJnZSIsICZvcHRzLm1lcmdlLCBOXygicGVyZm9ybSBhIDMtd2F5IG1lcmdlIHdpdGggdGhlIG5ldyBicmFuY2giKSksCisJCU9QVF9CT09MKDAsICJvdmVyd3JpdGUtaWdub3JlIiwgJm9wdHMub3ZlcndyaXRlX2lnbm9yZSwgTl8oInVwZGF0ZSBpZ25vcmVkIGZpbGVzIChkZWZhdWx0KSIpKSwKIAkJT1BUX1NUUklORygwLCAiY29uZmxpY3QiLCAmY29uZmxpY3Rfc3R5bGUsIE5fKCJzdHlsZSIpLAogCQkJICAgTl8oImNvbmZsaWN0IHN0eWxlIChtZXJnZSBvciBkaWZmMykiKSksCi0JCU9QVF9CT09MRUFOKCdwJywgInBhdGNoIiwgJm9wdHMucGF0Y2hfbW9kZSwgTl8oInNlbGVjdCBodW5rcyBpbnRlcmFjdGl2ZWx5IikpLAorCQlPUFRfQk9PTCgncCcsICJwYXRjaCIsICZvcHRzLnBhdGNoX21vZGUsIE5fKCJzZWxlY3QgaHVua3MgaW50ZXJhY3RpdmVseSIpKSwKIAkJT1BUX0JPT0woMCwgImlnbm9yZS1za2lwLXdvcmt0cmVlLWJpdHMiLCAmb3B0cy5pZ25vcmVfc2tpcHdvcmt0cmVlLAogCQkJIE5fKCJkbyBub3QgbGltaXQgcGF0aHNwZWNzIHRvIHNwYXJzZSBlbnRyaWVzIG9ubHkiKSksCi0JCXsgT1BUSU9OX0JPT0xFQU4sIDAsICJndWVzcyIsICZkd2ltX25ld19sb2NhbF9icmFuY2gsIE5VTEwsCi0JCSAgTl8oInNlY29uZCBndWVzcyAnZ2l0IGNoZWNrb3V0IG5vLXN1Y2gtYnJhbmNoJyIpLAotCQkgIFBBUlNFX09QVF9OT0FSRyB8IFBBUlNFX09QVF9ISURERU4gfSwKKwkJT1BUX0hJRERFTl9CT09MKDAsICJndWVzcyIsICZkd2ltX25ld19sb2NhbF9icmFuY2gsCisJCQkJTl8oInNlY29uZCBndWVzcyAnZ2l0IGNoZWNrb3V0IG5vLXN1Y2gtYnJhbmNoJyIpKSwKIAkJT1BUX0VORCgpLAogCX07CiAKQEAgLTExNTksOSArMTE1MSw5IEBACiAJCWNvbnN0IGNoYXIgKmFyZ3YwID0gYXJndlswXTsKIAkJaWYgKCFhcmdjIHx8ICFzdHJjbXAoYXJndjAsICItLSIpKQogCQkJZGllIChfKCItLXRyYWNrIG5lZWRzIGEgYnJhbmNoIG5hbWUiKSk7Ci0JCWlmICghcHJlZml4Y21wKGFyZ3YwLCAicmVmcy8iKSkKKwkJaWYgKHN0YXJ0c193aXRoKGFyZ3YwLCAicmVmcy8iKSkKIAkJCWFyZ3YwICs9IDU7Ci0JCWlmICghcHJlZml4Y21wKGFyZ3YwLCAicmVtb3Rlcy8iKSkKKwkJaWYgKHN0YXJ0c193aXRoKGFyZ3YwLCAicmVtb3Rlcy8iKSkKIAkJCWFyZ3YwICs9IDg7CiAJCWFyZ3YwID0gc3RyY2hyKGFyZ3YwLCAnLycpOwogCQlpZiAoIWFyZ3YwIHx8ICFhcmd2MFsxXSkKQEAgLTExOTcsOSArMTE4OSwxMSBAQAogCX0KIAogCWlmIChhcmdjKSB7Ci0JCW9wdHMucGF0aHNwZWMgPSBnZXRfcGF0aHNwZWMocHJlZml4LCBhcmd2KTsKKwkJcGFyc2VfcGF0aHNwZWMoJm9wdHMucGF0aHNwZWMsIDAsCisJCQkgICAgICAgb3B0cy5wYXRjaF9tb2RlID8gUEFUSFNQRUNfUFJFRklYX09SSUdJTiA6IDAsCisJCQkgICAgICAgcHJlZml4LCBhcmd2KTsKIAotCQlpZiAoIW9wdHMucGF0aHNwZWMpCisJCWlmICghb3B0cy5wYXRoc3BlYy5ucikKIAkJCWRpZShfKCJpbnZhbGlkIHBhdGggc3BlY2lmaWNhdGlvbiIpKTsKIAogCQkvKgpAQCAtMTIzMSw3ICsxMjI1LDcgQEAKIAkJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7CiAJfQogCi0JaWYgKG9wdHMucGF0Y2hfbW9kZSB8fCBvcHRzLnBhdGhzcGVjKQorCWlmIChvcHRzLnBhdGNoX21vZGUgfHwgb3B0cy5wYXRoc3BlYy5ucikKIAkJcmV0dXJuIGNoZWNrb3V0X3BhdGhzKCZvcHRzLCBuZXcubmFtZSk7CiAJZWxzZQogCQlyZXR1cm4gY2hlY2tvdXRfYnJhbmNoKCZvcHRzLCAmbmV3KTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vY2xlYW4uYyBiL2J1aWx0aW4vY2xlYW4uYwppbmRleCAzYzg1ZTE1Li4yZjI2Mjk3IDEwMDY0NAotLS0gYS9idWlsdGluL2NsZWFuLmMKKysrIGIvYnVpbHRpbi9jbGVhbi5jCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSAicXVvdGUuaCIKICNpbmNsdWRlICJjb2x1bW4uaCIKICNpbmNsdWRlICJjb2xvci5oIgorI2luY2x1ZGUgInBhdGhzcGVjLmgiCiAKIHN0YXRpYyBpbnQgZm9yY2UgPSAtMTsgLyogdW5zZXQgKi8KIHN0YXRpYyBpbnQgaW50ZXJhY3RpdmU7CkBAIC05OSw3ICsxMDAsNyBAQAogCiBzdGF0aWMgaW50IGdpdF9jbGVhbl9jb25maWcoY29uc3QgY2hhciAqdmFyLCBjb25zdCBjaGFyICp2YWx1ZSwgdm9pZCAqY2IpCiB7Ci0JaWYgKCFwcmVmaXhjbXAodmFyLCAiY29sdW1uLiIpKQorCWlmIChzdGFydHNfd2l0aCh2YXIsICJjb2x1bW4uIikpCiAJCXJldHVybiBnaXRfY29sdW1uX2NvbmZpZyh2YXIsIHZhbHVlLCAiY2xlYW4iLCAmY29sb3B0cyk7CiAKIAkvKiBob25vcnMgdGhlIGNvbG9yLmludGVyYWN0aXZlKiBjb25maWcgdmFyaWFibGVzIHdoaWNoIGFsc28KQEAgLTEwOCw3ICsxMDksNyBAQAogCQljbGVhbl91c2VfY29sb3IgPSBnaXRfY29uZmlnX2NvbG9yYm9vbCh2YXIsIHZhbHVlKTsKIAkJcmV0dXJuIDA7CiAJfQotCWlmICghcHJlZml4Y21wKHZhciwgImNvbG9yLmludGVyYWN0aXZlLiIpKSB7CisJaWYgKHN0YXJ0c193aXRoKHZhciwgImNvbG9yLmludGVyYWN0aXZlLiIpKSB7CiAJCWludCBzbG90ID0gcGFyc2VfY2xlYW5fY29sb3Jfc2xvdCh2YXIgKwogCQkJCQkJICBzdHJsZW4oImNvbG9yLmludGVyYWN0aXZlLiIpKTsKIAkJaWYgKHNsb3QgPCAwKQpAQCAtODYzLDI0ICs4NjQsMjMgQEAKIAlpbnQgcm1fZmxhZ3MgPSBSRU1PVkVfRElSX0tFRVBfTkVTVEVEX0dJVDsKIAlzdHJ1Y3Qgc3RyYnVmIGFic19wYXRoID0gU1RSQlVGX0lOSVQ7CiAJc3RydWN0IGRpcl9zdHJ1Y3QgZGlyOwotCXN0YXRpYyBjb25zdCBjaGFyICoqcGF0aHNwZWM7CisJc3RydWN0IHBhdGhzcGVjIHBhdGhzcGVjOwogCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CiAJc3RydWN0IHN0cmluZ19saXN0IGV4Y2x1ZGVfbGlzdCA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CiAJc3RydWN0IGV4Y2x1ZGVfbGlzdCAqZWw7CiAJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW07CiAJY29uc3QgY2hhciAqcW5hbWU7Ci0JY2hhciAqc2VlbiA9IE5VTEw7CiAJc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CiAJCU9QVF9fUVVJRVQoJnF1aWV0LCBOXygiZG8gbm90IHByaW50IG5hbWVzIG9mIGZpbGVzIHJlbW92ZWQiKSksCiAJCU9QVF9fRFJZX1JVTigmZHJ5X3J1biwgTl8oImRyeSBydW4iKSksCiAJCU9QVF9fRk9SQ0UoJmZvcmNlLCBOXygiZm9yY2UiKSksCiAJCU9QVF9CT09MKCdpJywgImludGVyYWN0aXZlIiwgJmludGVyYWN0aXZlLCBOXygiaW50ZXJhY3RpdmUgY2xlYW5pbmciKSksCi0JCU9QVF9CT09MRUFOKCdkJywgTlVMTCwgJnJlbW92ZV9kaXJlY3RvcmllcywKKwkJT1BUX0JPT0woJ2QnLCBOVUxMLCAmcmVtb3ZlX2RpcmVjdG9yaWVzLAogCQkJCU5fKCJyZW1vdmUgd2hvbGUgZGlyZWN0b3JpZXMiKSksCiAJCXsgT1BUSU9OX0NBTExCQUNLLCAnZScsICJleGNsdWRlIiwgJmV4Y2x1ZGVfbGlzdCwgTl8oInBhdHRlcm4iKSwKIAkJICBOXygiYWRkIDxwYXR0ZXJuPiB0byBpZ25vcmUgcnVsZXMiKSwgUEFSU0VfT1BUX05PTkVHLCBleGNsdWRlX2NiIH0sCi0JCU9QVF9CT09MRUFOKCd4JywgTlVMTCwgJmlnbm9yZWQsIE5fKCJyZW1vdmUgaWdub3JlZCBmaWxlcywgdG9vIikpLAotCQlPUFRfQk9PTEVBTignWCcsIE5VTEwsICZpZ25vcmVkX29ubHksCisJCU9QVF9CT09MKCd4JywgTlVMTCwgJmlnbm9yZWQsIE5fKCJyZW1vdmUgaWdub3JlZCBmaWxlcywgdG9vIikpLAorCQlPUFRfQk9PTCgnWCcsIE5VTEwsICZpZ25vcmVkX29ubHksCiAJCQkJTl8oInJlbW92ZSBvbmx5IGlnbm9yZWQgZmlsZXMiKSksCiAJCU9QVF9FTkQoKQogCX07CkBAIC05MjUsMTIgKzkyNSwxMSBAQAogCWZvciAoaSA9IDA7IGkgPCBleGNsdWRlX2xpc3QubnI7IGkrKykKIAkJYWRkX2V4Y2x1ZGUoZXhjbHVkZV9saXN0Lml0ZW1zW2ldLnN0cmluZywgIiIsIDAsIGVsLCAtKGkrMSkpOwogCi0JcGF0aHNwZWMgPSBnZXRfcGF0aHNwZWMocHJlZml4LCBhcmd2KTsKKwlwYXJzZV9wYXRoc3BlYygmcGF0aHNwZWMsIDAsCisJCSAgICAgICBQQVRIU1BFQ19QUkVGRVJfQ1dELAorCQkgICAgICAgcHJlZml4LCBhcmd2KTsKIAotCWZpbGxfZGlyZWN0b3J5KCZkaXIsIHBhdGhzcGVjKTsKLQotCWlmIChwYXRoc3BlYykKLQkJc2VlbiA9IHhtYWxsb2MoYXJnYyA+IDAgPyBhcmdjIDogMSk7CisJZmlsbF9kaXJlY3RvcnkoJmRpciwgJnBhdGhzcGVjKTsKIAogCWZvciAoaSA9IDA7IGkgPCBkaXIubnI7IGkrKykgewogCQlzdHJ1Y3QgZGlyX2VudHJ5ICplbnQgPSBkaXIuZW50cmllc1tpXTsKQEAgLTk2MSwxMSArOTYwLDkgQEAKIAkJaWYgKGxzdGF0KGVudC0+bmFtZSwgJnN0KSkKIAkJCWRpZV9lcnJubygiQ2Fubm90IGxzdGF0ICclcyciLCBlbnQtPm5hbWUpOwogCi0JCWlmIChwYXRoc3BlYykgewotCQkJbWVtc2V0KHNlZW4sIDAsIGFyZ2MgPiAwID8gYXJnYyA6IDEpOwotCQkJbWF0Y2hlcyA9IG1hdGNoX3BhdGhzcGVjKHBhdGhzcGVjLCBlbnQtPm5hbWUsIGxlbiwKLQkJCQkJCSAwLCBzZWVuKTsKLQkJfQorCQlpZiAocGF0aHNwZWMubnIpCisJCQltYXRjaGVzID0gbWF0Y2hfcGF0aHNwZWNfZGVwdGgoJnBhdGhzcGVjLCBlbnQtPm5hbWUsCisJCQkJCQkgICAgICAgbGVuLCAwLCBOVUxMKTsKIAogCQlpZiAoU19JU0RJUihzdC5zdF9tb2RlKSkgewogCQkJaWYgKHJlbW92ZV9kaXJlY3RvcmllcyB8fCAobWF0Y2hlcyA9PSBNQVRDSEVEX0VYQUNUTFkpKSB7CkBAIC05NzMsNyArOTcwLDcgQEAKIAkJCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmRlbF9saXN0LCByZWwpOwogCQkJfQogCQl9IGVsc2UgewotCQkJaWYgKHBhdGhzcGVjICYmICFtYXRjaGVzKQorCQkJaWYgKHBhdGhzcGVjLm5yICYmICFtYXRjaGVzKQogCQkJCWNvbnRpbnVlOwogCQkJcmVsID0gcmVsYXRpdmVfcGF0aChlbnQtPm5hbWUsIHByZWZpeCwgJmJ1Zik7CiAJCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmRlbF9saXN0LCByZWwpOwpAQCAtMTAxOSw3ICsxMDE2LDYgQEAKIAkJfQogCQlzdHJidWZfcmVzZXQoJmFic19wYXRoKTsKIAl9Ci0JZnJlZShzZWVuKTsKIAogCXN0cmJ1Zl9yZWxlYXNlKCZhYnNfcGF0aCk7CiAJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7CmRpZmYgLS1naXQgYS9idWlsdGluL2Nsb25lLmMgYi9idWlsdGluL2Nsb25lLmMKaW5kZXggNTUyZjM0MC4uNDNlNzcyYyAxMDA2NDQKLS0tIGEvYnVpbHRpbi9jbG9uZS5jCisrKyBiL2J1aWx0aW4vY2xvbmUuYwpAQCAtNjIsMjMgKzYyLDIyIEBACiAJT1BUX19WRVJCT1NJVFkoJm9wdGlvbl92ZXJib3NpdHkpLAogCU9QVF9CT09MKDAsICJwcm9ncmVzcyIsICZvcHRpb25fcHJvZ3Jlc3MsCiAJCSBOXygiZm9yY2UgcHJvZ3Jlc3MgcmVwb3J0aW5nIikpLAotCU9QVF9CT09MRUFOKCduJywgIm5vLWNoZWNrb3V0IiwgJm9wdGlvbl9ub19jaGVja291dCwKLQkJICAgIE5fKCJkb24ndCBjcmVhdGUgYSBjaGVja291dCIpKSwKLQlPUFRfQk9PTEVBTigwLCAiYmFyZSIsICZvcHRpb25fYmFyZSwgTl8oImNyZWF0ZSBhIGJhcmUgcmVwb3NpdG9yeSIpKSwKLQl7IE9QVElPTl9CT09MRUFOLCAwLCAibmFrZWQiLCAmb3B0aW9uX2JhcmUsIE5VTEwsCi0JCU5fKCJjcmVhdGUgYSBiYXJlIHJlcG9zaXRvcnkiKSwKLQkJUEFSU0VfT1BUX05PQVJHIHwgUEFSU0VfT1BUX0hJRERFTiB9LAotCU9QVF9CT09MRUFOKDAsICJtaXJyb3IiLCAmb3B0aW9uX21pcnJvciwKLQkJICAgIE5fKCJjcmVhdGUgYSBtaXJyb3IgcmVwb3NpdG9yeSAoaW1wbGllcyBiYXJlKSIpKSwKKwlPUFRfQk9PTCgnbicsICJuby1jaGVja291dCIsICZvcHRpb25fbm9fY2hlY2tvdXQsCisJCSBOXygiZG9uJ3QgY3JlYXRlIGEgY2hlY2tvdXQiKSksCisJT1BUX0JPT0woMCwgImJhcmUiLCAmb3B0aW9uX2JhcmUsIE5fKCJjcmVhdGUgYSBiYXJlIHJlcG9zaXRvcnkiKSksCisJT1BUX0hJRERFTl9CT09MKDAsICJuYWtlZCIsICZvcHRpb25fYmFyZSwKKwkJCU5fKCJjcmVhdGUgYSBiYXJlIHJlcG9zaXRvcnkiKSksCisJT1BUX0JPT0woMCwgIm1pcnJvciIsICZvcHRpb25fbWlycm9yLAorCQkgTl8oImNyZWF0ZSBhIG1pcnJvciByZXBvc2l0b3J5IChpbXBsaWVzIGJhcmUpIikpLAogCU9QVF9CT09MKCdsJywgImxvY2FsIiwgJm9wdGlvbl9sb2NhbCwKIAkJTl8oInRvIGNsb25lIGZyb20gYSBsb2NhbCByZXBvc2l0b3J5IikpLAotCU9QVF9CT09MRUFOKDAsICJuby1oYXJkbGlua3MiLCAmb3B0aW9uX25vX2hhcmRsaW5rcywKKwlPUFRfQk9PTCgwLCAibm8taGFyZGxpbmtzIiwgJm9wdGlvbl9ub19oYXJkbGlua3MsCiAJCSAgICBOXygiZG9uJ3QgdXNlIGxvY2FsIGhhcmRsaW5rcywgYWx3YXlzIGNvcHkiKSksCi0JT1BUX0JPT0xFQU4oJ3MnLCAic2hhcmVkIiwgJm9wdGlvbl9zaGFyZWQsCisJT1BUX0JPT0woJ3MnLCAic2hhcmVkIiwgJm9wdGlvbl9zaGFyZWQsCiAJCSAgICBOXygic2V0dXAgYXMgc2hhcmVkIHJlcG9zaXRvcnkiKSksCi0JT1BUX0JPT0xFQU4oMCwgInJlY3Vyc2l2ZSIsICZvcHRpb25fcmVjdXJzaXZlLAorCU9QVF9CT09MKDAsICJyZWN1cnNpdmUiLCAmb3B0aW9uX3JlY3Vyc2l2ZSwKIAkJICAgIE5fKCJpbml0aWFsaXplIHN1Ym1vZHVsZXMgaW4gdGhlIGNsb25lIikpLAotCU9QVF9CT09MRUFOKDAsICJyZWN1cnNlLXN1Ym1vZHVsZXMiLCAmb3B0aW9uX3JlY3Vyc2l2ZSwKKwlPUFRfQk9PTCgwLCAicmVjdXJzZS1zdWJtb2R1bGVzIiwgJm9wdGlvbl9yZWN1cnNpdmUsCiAJCSAgICBOXygiaW5pdGlhbGl6ZSBzdWJtb2R1bGVzIGluIHRoZSBjbG9uZSIpKSwKIAlPUFRfU1RSSU5HKDAsICJ0ZW1wbGF0ZSIsICZvcHRpb25fdGVtcGxhdGUsIE5fKCJ0ZW1wbGF0ZS1kaXJlY3RvcnkiKSwKIAkJICAgTl8oImRpcmVjdG9yeSBmcm9tIHdoaWNoIHRlbXBsYXRlcyB3aWxsIGJlIHVzZWQiKSksCkBAIC0yNTMsNiArMjUyLDEyIEBACiAJCWRpZShfKCJyZWZlcmVuY2UgcmVwb3NpdG9yeSAnJXMnIGlzIG5vdCBhIGxvY2FsIHJlcG9zaXRvcnkuIiksCiAJCSAgICBpdGVtLT5zdHJpbmcpOwogCisJaWYgKCFhY2Nlc3MobWtwYXRoKCIlcy9zaGFsbG93IiwgcmVmX2dpdCksIEZfT0spKQorCQlkaWUoXygicmVmZXJlbmNlIHJlcG9zaXRvcnkgJyVzJyBpcyBzaGFsbG93IiksIGl0ZW0tPnN0cmluZyk7CisKKwlpZiAoIWFjY2Vzcyhta3BhdGgoIiVzL2luZm8vZ3JhZnRzIiwgcmVmX2dpdCksIEZfT0spKQorCQlkaWUoXygicmVmZXJlbmNlIHJlcG9zaXRvcnkgJyVzJyBpcyBncmFmdGVkIiksIGl0ZW0tPnN0cmluZyk7CisKIAlzdHJidWZfYWRkZigmYWx0ZXJuYXRlLCAiJXMvb2JqZWN0cyIsIHJlZl9naXQpOwogCWFkZF90b19hbHRlcm5hdGVzX2ZpbGUoYWx0ZXJuYXRlLmJ1Zik7CiAJc3RyYnVmX3JlbGVhc2UoJmFsdGVybmF0ZSk7CkBAIC01MDksOSArNTE0LDkgQEAKIHsKIAljb25zdCBzdHJ1Y3QgcmVmICpyZWY7CiAJZm9yIChyZWYgPSByZWZzOyByZWY7IHJlZiA9IHJlZi0+bmV4dCkgewotCQlpZiAocHJlZml4Y21wKHJlZi0+bmFtZSwgInJlZnMvdGFncy8iKSkKKwkJaWYgKCFzdGFydHNfd2l0aChyZWYtPm5hbWUsICJyZWZzL3RhZ3MvIikpCiAJCQljb250aW51ZTsKLQkJaWYgKCFzdWZmaXhjbXAocmVmLT5uYW1lLCAiXnt9IikpCisJCWlmIChlbmRzX3dpdGgocmVmLT5uYW1lLCAiXnt9IikpCiAJCQljb250aW51ZTsKIAkJaWYgKCFoYXNfc2hhMV9maWxlKHJlZi0+b2xkX3NoYTEpKQogCQkJY29udGludWU7CkBAIC01NTcsNyArNTYyLDcgQEAKIAkJCQkJCQkgICAgICAwLCAmcm0sIHRyYW5zcG9ydCkpCiAJCQlkaWUoXygicmVtb3RlIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHMiKSk7CiAJCWlmICh0cmFuc3BvcnQtPnByb2dyZXNzKQotCQkJZnByaW50ZihzdGRlcnIsIF8oImRvbmVcbiIpKTsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCJkb25lLlxuIikpOwogCX0KIAogCWlmIChyZWZzKSB7CkBAIC01NzksNyArNTg0LDcgQEAKIHN0YXRpYyB2b2lkIHVwZGF0ZV9oZWFkKGNvbnN0IHN0cnVjdCByZWYgKm91ciwgY29uc3Qgc3RydWN0IHJlZiAqcmVtb3RlLAogCQkJY29uc3QgY2hhciAqbXNnKQogewotCWlmIChvdXIgJiYgIXByZWZpeGNtcChvdXItPm5hbWUsICJyZWZzL2hlYWRzLyIpKSB7CisJaWYgKG91ciAmJiBzdGFydHNfd2l0aChvdXItPm5hbWUsICJyZWZzL2hlYWRzLyIpKSB7CiAJCS8qIExvY2FsIGRlZmF1bHQgYnJhbmNoIGxpbmsgKi8KIAkJY3JlYXRlX3N5bXJlZigiSEVBRCIsIG91ci0+bmFtZSwgTlVMTCk7CiAJCWlmICghb3B0aW9uX2JhcmUpIHsKQEAgLTYyNiw3ICs2MzEsNyBAQAogCQlpZiAoYWR2aWNlX2RldGFjaGVkX2hlYWQpCiAJCQlkZXRhY2hfYWR2aWNlKHNoYTFfdG9faGV4KHNoYTEpKTsKIAl9IGVsc2UgewotCQlpZiAocHJlZml4Y21wKGhlYWQsICJyZWZzL2hlYWRzLyIpKQorCQlpZiAoIXN0YXJ0c193aXRoKGhlYWQsICJyZWZzL2hlYWRzLyIpKQogCQkJZGllKF8oIkhFQUQgbm90IGZvdW5kIGJlbG93IHJlZnMvaGVhZHMhIikpOwogCX0KIAlmcmVlKGhlYWQpOwpAQCAtNzkyLDExICs3OTcsMjIgQEAKIAllbHNlCiAJCXJlcG8gPSByZXBvX25hbWU7CiAJaXNfbG9jYWwgPSBvcHRpb25fbG9jYWwgIT0gMCAmJiBwYXRoICYmICFpc19idW5kbGU7Ci0JaWYgKGlzX2xvY2FsICYmIG9wdGlvbl9kZXB0aCkKLQkJd2FybmluZyhfKCItLWRlcHRoIGlzIGlnbm9yZWQgaW4gbG9jYWwgY2xvbmVzOyB1c2UgZmlsZTovLyBpbnN0ZWFkLiIpKTsKKwlpZiAoaXNfbG9jYWwpIHsKKwkJaWYgKG9wdGlvbl9kZXB0aCkKKwkJCXdhcm5pbmcoXygiLS1kZXB0aCBpcyBpZ25vcmVkIGluIGxvY2FsIGNsb25lczsgdXNlIGZpbGU6Ly8gaW5zdGVhZC4iKSk7CisJCWlmICghYWNjZXNzKG1rcGF0aCgiJXMvc2hhbGxvdyIsIHBhdGgpLCBGX09LKSkgeworCQkJaWYgKG9wdGlvbl9sb2NhbCA+IDApCisJCQkJd2FybmluZyhfKCJzb3VyY2UgcmVwb3NpdG9yeSBpcyBzaGFsbG93LCBpZ25vcmluZyAtLWxvY2FsIikpOworCQkJaXNfbG9jYWwgPSAwOworCQl9CisJfQogCWlmIChvcHRpb25fbG9jYWwgPiAwICYmICFpc19sb2NhbCkKIAkJd2FybmluZyhfKCItLWxvY2FsIGlzIGlnbm9yZWQiKSk7CiAKKwkvKiBubyBuZWVkIHRvIGJlIHN0cmljdCwgdHJhbnNwb3J0X3NldF9vcHRpb24oKSB3aWxsIHZhbGlkYXRlIGl0IGFnYWluICovCisJaWYgKG9wdGlvbl9kZXB0aCAmJiBhdG9pKG9wdGlvbl9kZXB0aCkgPCAxKQorCQlkaWUoXygiZGVwdGggJXMgaXMgbm90IGEgcG9zaXRpdmUgbnVtYmVyIiksIG9wdGlvbl9kZXB0aCk7CisKIAlpZiAoYXJnYyA9PSAyKQogCQlkaXIgPSB4c3RyZHVwKGFyZ3ZbMV0pOwogCWVsc2UKQEAgLTg4NCw2ICs5MDAsNyBAQAogCiAJcmVtb3RlID0gcmVtb3RlX2dldChvcHRpb25fb3JpZ2luKTsKIAl0cmFuc3BvcnQgPSB0cmFuc3BvcnRfZ2V0KHJlbW90ZSwgcmVtb3RlLT51cmxbMF0pOworCXRyYW5zcG9ydC0+Y2xvbmluZyA9IDE7CiAKIAlpZiAoIXRyYW5zcG9ydC0+Z2V0X3JlZnNfbGlzdCB8fCAoIWlzX2xvY2FsICYmICF0cmFuc3BvcnQtPmZldGNoKSkKIAkJZGllKF8oIkRvbid0IGtub3cgaG93IHRvIGNsb25lICVzIiksIHRyYW5zcG9ydC0+dXJsKTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vY29sdW1uLmMgYi9idWlsdGluL2NvbHVtbi5jCmluZGV4IGUxMjVhNTUuLjc1ODE4NTIgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vY29sdW1uLmMKKysrIGIvYnVpbHRpbi9jb2x1bW4uYwpAQCAtMzQsNyArMzQsNyBAQAogCX07CiAKIAkvKiBUaGlzIG9uZSBpcyBzcGVjaWFsIGFuZCBtdXN0IGJlIHRoZSBmaXJzdCBvbmUgKi8KLQlpZiAoYXJnYyA+IDEgJiYgIXByZWZpeGNtcChhcmd2WzFdLCAiLS1jb21tYW5kPSIpKSB7CisJaWYgKGFyZ2MgPiAxICYmIHN0YXJ0c193aXRoKGFyZ3ZbMV0sICItLWNvbW1hbmQ9IikpIHsKIAkJY29tbWFuZCA9IGFyZ3ZbMV0gKyAxMDsKIAkJZ2l0X2NvbmZpZyhjb2x1bW5fY29uZmlnLCAodm9pZCAqKWNvbW1hbmQpOwogCX0gZWxzZQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9jb21taXQuYyBiL2J1aWx0aW4vY29tbWl0LmMKaW5kZXggYTQ4YTdmZS4uMzc2NzQ3OCAxMDA2NDQKLS0tIGEvYnVpbHRpbi9jb21taXQuYworKysgYi9idWlsdGluL2NvbW1pdC5jCkBAIC0xNjQsNiArMTY0LDE1IEBACiAJCXMtPndoZW5jZSA9IHdoZW5jZTsKIH0KIAorc3RhdGljIHZvaWQgc3RhdHVzX2luaXRfY29uZmlnKHN0cnVjdCB3dF9zdGF0dXMgKnMsIGNvbmZpZ19mbl90IGZuKQoreworCXd0X3N0YXR1c19wcmVwYXJlKHMpOworCWdpdG1vZHVsZXNfY29uZmlnKCk7CisJZ2l0X2NvbmZpZyhmbiwgcyk7CisJZGV0ZXJtaW5lX3doZW5jZShzKTsKKwlzLT5oaW50cyA9IGFkdmljZV9zdGF0dXNfaGludHM7IC8qIG11c3QgY29tZSBhZnRlciBnaXRfY29uZmlnKCkgKi8KK30KKwogc3RhdGljIHZvaWQgcm9sbGJhY2tfaW5kZXhfZmlsZXModm9pZCkKIHsKIAlzd2l0Y2ggKGNvbW1pdF9zdHlsZSkgewpAQCAtMjAzLDE3ICsyMTIsMTUgQEAKICAqIGFuZCByZXR1cm4gdGhlIHBhdGhzIHRoYXQgbWF0Y2ggdGhlIGdpdmVuIHBhdHRlcm4gaW4gbGlzdC4KICAqLwogc3RhdGljIGludCBsaXN0X3BhdGhzKHN0cnVjdCBzdHJpbmdfbGlzdCAqbGlzdCwgY29uc3QgY2hhciAqd2l0aF90cmVlLAotCQkgICAgICBjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKipwYXR0ZXJuKQorCQkgICAgICBjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0dGVybikKIHsKIAlpbnQgaTsKIAljaGFyICptOwogCi0JaWYgKCFwYXR0ZXJuKQorCWlmICghcGF0dGVybi0+bnIpCiAJCXJldHVybiAwOwogCi0JZm9yIChpID0gMDsgcGF0dGVybltpXTsgaSsrKQotCQk7Ci0JbSA9IHhjYWxsb2MoMSwgaSk7CisJbSA9IHhjYWxsb2MoMSwgcGF0dGVybi0+bnIpOwogCiAJaWYgKHdpdGhfdHJlZSkgewogCQljaGFyICptYXhfcHJlZml4ID0gY29tbW9uX3ByZWZpeChwYXR0ZXJuKTsKQEAgLTIyNyw3ICsyMzQsNyBAQAogCiAJCWlmIChjZS0+Y2VfZmxhZ3MgJiBDRV9VUERBVEUpCiAJCQljb250aW51ZTsKLQkJaWYgKCFtYXRjaF9wYXRoc3BlYyhwYXR0ZXJuLCBjZS0+bmFtZSwgY2VfbmFtZWxlbihjZSksIDAsIG0pKQorCQlpZiAoIW1hdGNoX3BhdGhzcGVjX2RlcHRoKHBhdHRlcm4sIGNlLT5uYW1lLCBjZV9uYW1lbGVuKGNlKSwgMCwgbSkpCiAJCQljb250aW51ZTsKIAkJaXRlbSA9IHN0cmluZ19saXN0X2luc2VydChsaXN0LCBjZS0+bmFtZSk7CiAJCWlmIChjZV9za2lwX3dvcmt0cmVlKGNlKSkKQEAgLTI5OSwxNyArMzA2LDE3IEBACiB7CiAJaW50IGZkOwogCXN0cnVjdCBzdHJpbmdfbGlzdCBwYXJ0aWFsOwotCWNvbnN0IGNoYXIgKipwYXRoc3BlYyA9IE5VTEw7CisJc3RydWN0IHBhdGhzcGVjIHBhdGhzcGVjOwogCWNoYXIgKm9sZF9pbmRleF9lbnYgPSBOVUxMOwogCWludCByZWZyZXNoX2ZsYWdzID0gUkVGUkVTSF9RVUlFVDsKIAogCWlmIChpc19zdGF0dXMpCiAJCXJlZnJlc2hfZmxhZ3MgfD0gUkVGUkVTSF9VTk1FUkdFRDsKKwlwYXJzZV9wYXRoc3BlYygmcGF0aHNwZWMsIDAsCisJCSAgICAgICBQQVRIU1BFQ19QUkVGRVJfRlVMTCwKKwkJICAgICAgIHByZWZpeCwgYXJndik7CiAKLQlpZiAoKmFyZ3YpCi0JCXBhdGhzcGVjID0gZ2V0X3BhdGhzcGVjKHByZWZpeCwgYXJndik7Ci0KLQlpZiAocmVhZF9jYWNoZV9wcmVsb2FkKHBhdGhzcGVjKSA8IDApCisJaWYgKHJlYWRfY2FjaGVfcHJlbG9hZCgmcGF0aHNwZWMpIDwgMCkKIAkJZGllKF8oImluZGV4IGZpbGUgY29ycnVwdCIpKTsKIAogCWlmIChpbnRlcmFjdGl2ZSkgewpAQCAtMzUxLDkgKzM1OCw5IEBACiAJICogKEEpIGlmIGFsbCBnb2VzIHdlbGwsIGNvbW1pdCB0aGUgcmVhbCBpbmRleDsKIAkgKiAoQikgb24gZmFpbHVyZSwgcm9sbGJhY2sgdGhlIHJlYWwgaW5kZXguCiAJICovCi0JaWYgKGFsbCB8fCAoYWxzbyAmJiBwYXRoc3BlYyAmJiAqcGF0aHNwZWMpKSB7CisJaWYgKGFsbCB8fCAoYWxzbyAmJiBwYXRoc3BlYy5ucikpIHsKIAkJZmQgPSBob2xkX2xvY2tlZF9pbmRleCgmaW5kZXhfbG9jaywgMSk7Ci0JCWFkZF9maWxlc190b19jYWNoZShhbHNvID8gcHJlZml4IDogTlVMTCwgcGF0aHNwZWMsIDApOworCQlhZGRfZmlsZXNfdG9fY2FjaGUoYWxzbyA/IHByZWZpeCA6IE5VTEwsICZwYXRoc3BlYywgMCk7CiAJCXJlZnJlc2hfY2FjaGVfb3JfZGllKHJlZnJlc2hfZmxhZ3MpOwogCQl1cGRhdGVfbWFpbl9jYWNoZV90cmVlKFdSSVRFX1RSRUVfU0lMRU5UKTsKIAkJaWYgKHdyaXRlX2NhY2hlKGZkLCBhY3RpdmVfY2FjaGUsIGFjdGl2ZV9ucikgfHwKQEAgLTM3Miw3ICszNzksNyBAQAogCSAqIGFuZCBjcmVhdGUgY29tbWl0IGZyb20gdGhlX2luZGV4LgogCSAqIFdlIHN0aWxsIG5lZWQgdG8gcmVmcmVzaCB0aGUgaW5kZXggaGVyZS4KIAkgKi8KLQlpZiAoIW9ubHkgJiYgKCFwYXRoc3BlYyB8fCAhKnBhdGhzcGVjKSkgeworCWlmICghb25seSAmJiAhcGF0aHNwZWMubnIpIHsKIAkJZmQgPSBob2xkX2xvY2tlZF9pbmRleCgmaW5kZXhfbG9jaywgMSk7CiAJCXJlZnJlc2hfY2FjaGVfb3JfZGllKHJlZnJlc2hfZmxhZ3MpOwogCQlpZiAoYWN0aXZlX2NhY2hlX2NoYW5nZWQpIHsKQEAgLTQxNyw3ICs0MjQsNyBAQAogCiAJbWVtc2V0KCZwYXJ0aWFsLCAwLCBzaXplb2YocGFydGlhbCkpOwogCXBhcnRpYWwuc3RyZHVwX3N0cmluZ3MgPSAxOwotCWlmIChsaXN0X3BhdGhzKCZwYXJ0aWFsLCAhY3VycmVudF9oZWFkID8gTlVMTCA6ICJIRUFEIiwgcHJlZml4LCBwYXRoc3BlYykpCisJaWYgKGxpc3RfcGF0aHMoJnBhcnRpYWwsICFjdXJyZW50X2hlYWQgPyBOVUxMIDogIkhFQUQiLCBwcmVmaXgsICZwYXRoc3BlYykpCiAJCWV4aXQoMSk7CiAKIAlkaXNjYXJkX2NhY2hlKCk7CkBAIC02MDAsNiArNjA3LDcgQEAKIAljb25zdCBjaGFyICpob29rX2FyZzIgPSBOVUxMOwogCWludCBpZGVudF9zaG93biA9IDA7CiAJaW50IGNsZWFuX21lc3NhZ2VfY29udGVudHMgPSAoY2xlYW51cF9tb2RlICE9IENMRUFOVVBfTk9ORSk7CisJaW50IG9sZF9kaXNwbGF5X2NvbW1lbnRfcHJlZml4OwogCiAJLyogVGhpcyBjaGVja3MgYW5kIGJhcmZzIGlmIGF1dGhvciBpcyBiYWRseSBzcGVjaWZpZWQgKi8KIAlkZXRlcm1pbmVfYXV0aG9yX2luZm8oYXV0aG9yX2lkZW50KTsKQEAgLTY5Nyw2ICs3MDUsMTYgQEAKIAlpZiAocy0+ZnAgPT0gTlVMTCkKIAkJZGllX2Vycm5vKF8oImNvdWxkIG5vdCBvcGVuICclcyciKSwgZ2l0X3BhdGgoY29tbWl0X2VkaXRtc2cpKTsKIAorCS8qIElnbm9yZSBzdGF0dXMuZGlzcGxheUNvbW1lbnRQcmVmaXg6IHdlIGRvIG5lZWQgY29tbWVudHMgaW4gQ09NTUlUX0VESVRNU0cuICovCisJb2xkX2Rpc3BsYXlfY29tbWVudF9wcmVmaXggPSBzLT5kaXNwbGF5X2NvbW1lbnRfcHJlZml4OworCXMtPmRpc3BsYXlfY29tbWVudF9wcmVmaXggPSAxOworCisJLyoKKwkgKiBNb3N0IGhpbnRzIGFyZSBjb3VudGVyLXByb2R1Y3RpdmUgd2hlbiB0aGUgY29tbWl0IGhhcworCSAqIGFscmVhZHkgc3RhcnRlZC4KKwkgKi8KKwlzLT5oaW50cyA9IDA7CisKIAlpZiAoY2xlYW5fbWVzc2FnZV9jb250ZW50cykKIAkJc3RyaXBzcGFjZSgmc2IsIDApOwogCkBAIC03MTUsNyArNzMzLDcgQEAKIAkJCQllb2wgPSBubCAtIHNiLmJ1ZjsKIAkJCWVsc2UKIAkJCQllb2wgPSBzYi5sZW47Ci0JCQlpZiAoIXByZWZpeGNtcChzYi5idWYgKyBwcmV2aW91cywgIlxuQ29uZmxpY3RzOlxuIikpIHsKKwkJCWlmIChzdGFydHNfd2l0aChzYi5idWYgKyBwcmV2aW91cywgIlxuQ29uZmxpY3RzOlxuIikpIHsKIAkJCQlpZ25vcmVfZm9vdGVyID0gc2IubGVuIC0gcHJldmlvdXM7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC04MjIsNiArODQwLDcgQEAKIAkgKi8KIAlpZiAoIWNvbW1pdGFibGUgJiYgd2hlbmNlICE9IEZST01fTUVSR0UgJiYgIWFsbG93X2VtcHR5ICYmCiAJICAgICEoYW1lbmQgJiYgaXNfYV9tZXJnZShjdXJyZW50X2hlYWQpKSkgeworCQlzLT5kaXNwbGF5X2NvbW1lbnRfcHJlZml4ID0gb2xkX2Rpc3BsYXlfY29tbWVudF9wcmVmaXg7CiAJCXJ1bl9zdGF0dXMoc3Rkb3V0LCBpbmRleF9maWxlLCBwcmVmaXgsIDAsIHMpOwogCQlpZiAoYW1lbmQpCiAJCQlmcHV0cyhfKGVtcHR5X2FtZW5kX2FkdmljZSksIHN0ZGVycik7CkBAIC04ODUsNyArOTA0LDcgQEAKIAkJCWVvbCA9IHNiLT5sZW47CiAKIAkJaWYgKHN0cmxlbihzaWduX29mZl9oZWFkZXIpIDw9IGVvbCAtIGkgJiYKLQkJICAgICFwcmVmaXhjbXAoc2ItPmJ1ZiArIGksIHNpZ25fb2ZmX2hlYWRlcikpIHsKKwkJICAgIHN0YXJ0c193aXRoKHNiLT5idWYgKyBpLCBzaWduX29mZl9oZWFkZXIpKSB7CiAJCQlpID0gZW9sOwogCQkJY29udGludWU7CiAJCX0KQEAgLTEwOTcsNyArMTExNiw3IEBACiAJaWYgKHBhdGNoX2ludGVyYWN0aXZlKQogCQlpbnRlcmFjdGl2ZSA9IDE7CiAKLQlpZiAoISFhbHNvICsgISFvbmx5ICsgISFhbGwgKyAhIWludGVyYWN0aXZlID4gMSkKKwlpZiAoYWxzbyArIG9ubHkgKyBhbGwgKyBpbnRlcmFjdGl2ZSA+IDEpCiAJCWRpZShfKCJPbmx5IG9uZSBvZiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCBjYW4gYmUgdXNlZC4iKSk7CiAJaWYgKGFyZ2MgPT0gMCAmJiAoYWxzbyB8fCAob25seSAmJiAhYW1lbmQpKSkKIAkJZGllKF8oIk5vIHBhdGhzIHdpdGggLS1pbmNsdWRlLy0tb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlLiIpKTsKQEAgLTExNjQsNyArMTE4Myw3IEBACiB7CiAJc3RydWN0IHd0X3N0YXR1cyAqcyA9IGNiOwogCi0JaWYgKCFwcmVmaXhjbXAoaywgImNvbHVtbi4iKSkKKwlpZiAoc3RhcnRzX3dpdGgoaywgImNvbHVtbi4iKSkKIAkJcmV0dXJuIGdpdF9jb2x1bW5fY29uZmlnKGssIHYsICJzdGF0dXMiLCAmcy0+Y29sb3B0cyk7CiAJaWYgKCFzdHJjbXAoaywgInN0YXR1cy5zdWJtb2R1bGVzdW1tYXJ5IikpIHsKIAkJaW50IGlzX2Jvb2w7CkBAIC0xMTg4LDcgKzEyMDcsMTEgQEAKIAkJcy0+dXNlX2NvbG9yID0gZ2l0X2NvbmZpZ19jb2xvcmJvb2woaywgdik7CiAJCXJldHVybiAwOwogCX0KLQlpZiAoIXByZWZpeGNtcChrLCAic3RhdHVzLmNvbG9yLiIpIHx8ICFwcmVmaXhjbXAoaywgImNvbG9yLnN0YXR1cy4iKSkgeworCWlmICghc3RyY21wKGssICJzdGF0dXMuZGlzcGxheWNvbW1lbnRwcmVmaXgiKSkgeworCQlzLT5kaXNwbGF5X2NvbW1lbnRfcHJlZml4ID0gZ2l0X2NvbmZpZ19ib29sKGssIHYpOworCQlyZXR1cm4gMDsKKwl9CisJaWYgKHN0YXJ0c193aXRoKGssICJzdGF0dXMuY29sb3IuIikgfHwgc3RhcnRzX3dpdGgoaywgImNvbG9yLnN0YXR1cy4iKSkgewogCQlpbnQgc2xvdCA9IHBhcnNlX3N0YXR1c19zbG90KGssIDEzKTsKIAkJaWYgKHNsb3QgPCAwKQogCQkJcmV0dXJuIDA7CkBAIC0xMjM0LDE0ICsxMjU3LDE0IEBACiAJCU9QVF9TRVRfSU5UKDAsICJsb25nIiwgJnN0YXR1c19mb3JtYXQsCiAJCQkgICAgTl8oInNob3cgc3RhdHVzIGluIGxvbmcgZm9ybWF0IChkZWZhdWx0KSIpLAogCQkJICAgIFNUQVRVU19GT1JNQVRfTE9ORyksCi0JCU9QVF9CT09MRUFOKCd6JywgIm51bGwiLCAmcy5udWxsX3Rlcm1pbmF0aW9uLAotCQkJICAgIE5fKCJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCIpKSwKKwkJT1BUX0JPT0woJ3onLCAibnVsbCIsICZzLm51bGxfdGVybWluYXRpb24sCisJCQkgTl8oInRlcm1pbmF0ZSBlbnRyaWVzIHdpdGggTlVMIikpLAogCQl7IE9QVElPTl9TVFJJTkcsICd1JywgInVudHJhY2tlZC1maWxlcyIsICZ1bnRyYWNrZWRfZmlsZXNfYXJnLAogCQkgIE5fKCJtb2RlIiksCiAJCSAgTl8oInNob3cgdW50cmFja2VkIGZpbGVzLCBvcHRpb25hbCBtb2RlczogYWxsLCBub3JtYWwsIG5vLiAoRGVmYXVsdDogYWxsKSIpLAogCQkgIFBBUlNFX09QVF9PUFRBUkcsIE5VTEwsIChpbnRwdHJfdCkiYWxsIiB9LAotCQlPUFRfQk9PTEVBTigwLCAiaWdub3JlZCIsICZzaG93X2lnbm9yZWRfaW5fc3RhdHVzLAotCQkJICAgIE5fKCJzaG93IGlnbm9yZWQgZmlsZXMiKSksCisJCU9QVF9CT09MKDAsICJpZ25vcmVkIiwgJnNob3dfaWdub3JlZF9pbl9zdGF0dXMsCisJCQkgTl8oInNob3cgaWdub3JlZCBmaWxlcyIpKSwKIAkJeyBPUFRJT05fU1RSSU5HLCAwLCAiaWdub3JlLXN1Ym1vZHVsZXMiLCAmaWdub3JlX3N1Ym1vZHVsZV9hcmcsIE5fKCJ3aGVuIiksCiAJCSAgTl8oImlnbm9yZSBjaGFuZ2VzIHRvIHN1Ym1vZHVsZXMsIG9wdGlvbmFsIHdoZW46IGFsbCwgZGlydHksIHVudHJhY2tlZC4gKERlZmF1bHQ6IGFsbCkiKSwKIAkJICBQQVJTRV9PUFRfT1BUQVJHLCBOVUxMLCAoaW50cHRyX3QpImFsbCIgfSwKQEAgLTEyNTIsMTAgKzEyNzUsNyBAQAogCWlmIChhcmdjID09IDIgJiYgIXN0cmNtcChhcmd2WzFdLCAiLWgiKSkKIAkJdXNhZ2Vfd2l0aF9vcHRpb25zKGJ1aWx0aW5fc3RhdHVzX3VzYWdlLCBidWlsdGluX3N0YXR1c19vcHRpb25zKTsKIAotCXd0X3N0YXR1c19wcmVwYXJlKCZzKTsKLQlnaXRtb2R1bGVzX2NvbmZpZygpOwotCWdpdF9jb25maWcoZ2l0X3N0YXR1c19jb25maWcsICZzKTsKLQlkZXRlcm1pbmVfd2hlbmNlKCZzKTsKKwlzdGF0dXNfaW5pdF9jb25maWcoJnMsIGdpdF9zdGF0dXNfY29uZmlnKTsKIAlhcmdjID0gcGFyc2Vfb3B0aW9ucyhhcmdjLCBhcmd2LCBwcmVmaXgsCiAJCQkgICAgIGJ1aWx0aW5fc3RhdHVzX29wdGlvbnMsCiAJCQkgICAgIGJ1aWx0aW5fc3RhdHVzX3VzYWdlLCAwKTsKQEAgLTEyNjUsMTEgKzEyODUsMTIgQEAKIAloYW5kbGVfdW50cmFja2VkX2ZpbGVzX2FyZygmcyk7CiAJaWYgKHNob3dfaWdub3JlZF9pbl9zdGF0dXMpCiAJCXMuc2hvd19pZ25vcmVkX2ZpbGVzID0gMTsKLQlpZiAoKmFyZ3YpCi0JCXMucGF0aHNwZWMgPSBnZXRfcGF0aHNwZWMocHJlZml4LCBhcmd2KTsKKwlwYXJzZV9wYXRoc3BlYygmcy5wYXRoc3BlYywgMCwKKwkJICAgICAgIFBBVEhTUEVDX1BSRUZFUl9GVUxMLAorCQkgICAgICAgcHJlZml4LCBhcmd2KTsKIAotCXJlYWRfY2FjaGVfcHJlbG9hZChzLnBhdGhzcGVjKTsKLQlyZWZyZXNoX2luZGV4KCZ0aGVfaW5kZXgsIFJFRlJFU0hfUVVJRVR8UkVGUkVTSF9VTk1FUkdFRCwgcy5wYXRoc3BlYywgTlVMTCwgTlVMTCk7CisJcmVhZF9jYWNoZV9wcmVsb2FkKCZzLnBhdGhzcGVjKTsKKwlyZWZyZXNoX2luZGV4KCZ0aGVfaW5kZXgsIFJFRlJFU0hfUVVJRVR8UkVGUkVTSF9VTk1FUkdFRCwgJnMucGF0aHNwZWMsIE5VTEwsIE5VTEwpOwogCiAJZmQgPSBob2xkX2xvY2tlZF9pbmRleCgmaW5kZXhfbG9jaywgMCk7CiAJaWYgKDAgPD0gZmQpCkBAIC0xMzE3LDcgKzEzMzgsNyBAQAogCWNvbW1pdCA9IGxvb2t1cF9jb21taXQoc2hhMSk7CiAJaWYgKCFjb21taXQpCiAJCWRpZShfKCJjb3VsZG4ndCBsb29rIHVwIG5ld2x5IGNyZWF0ZWQgY29tbWl0IikpOwotCWlmICghY29tbWl0IHx8IHBhcnNlX2NvbW1pdChjb21taXQpKQorCWlmIChwYXJzZV9jb21taXQoY29tbWl0KSkKIAkJZGllKF8oImNvdWxkIG5vdCBwYXJzZSBuZXdseSBjcmVhdGVkIGNvbW1pdCIpKTsKIAogCXN0cmJ1Zl9hZGRzdHIoJmZvcm1hdCwgImZvcm1hdDolaF0gJXMiKTsKQEAgLTEzNTYsNyArMTM3Nyw3IEBACiAKIAloZWFkID0gcmVzb2x2ZV9yZWZfdW5zYWZlKCJIRUFEIiwganVua19zaGExLCAwLCBOVUxMKTsKIAlwcmludGYoIlslcyVzICIsCi0JCSFwcmVmaXhjbXAoaGVhZCwgInJlZnMvaGVhZHMvIikgPworCQlzdGFydHNfd2l0aChoZWFkLCAicmVmcy9oZWFkcy8iKSA/CiAJCQloZWFkICsgMTEgOgogCQkJIXN0cmNtcChoZWFkLCAiSEVBRCIpID8KIAkJCQlfKCJkZXRhY2hlZCBIRUFEIikgOgpAQCAtMTQ0MCwyNCArMTQ2MSwyNCBAQAogCQlPUFRfU1RSSU5HKCdDJywgInJldXNlLW1lc3NhZ2UiLCAmdXNlX21lc3NhZ2UsIE5fKCJjb21taXQiKSwgTl8oInJldXNlIG1lc3NhZ2UgZnJvbSBzcGVjaWZpZWQgY29tbWl0IikpLAogCQlPUFRfU1RSSU5HKDAsICJmaXh1cCIsICZmaXh1cF9tZXNzYWdlLCBOXygiY29tbWl0IiksIE5fKCJ1c2UgYXV0b3NxdWFzaCBmb3JtYXR0ZWQgbWVzc2FnZSB0byBmaXh1cCBzcGVjaWZpZWQgY29tbWl0IikpLAogCQlPUFRfU1RSSU5HKDAsICJzcXVhc2giLCAmc3F1YXNoX21lc3NhZ2UsIE5fKCJjb21taXQiKSwgTl8oInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIHNxdWFzaCBzcGVjaWZpZWQgY29tbWl0IikpLAotCQlPUFRfQk9PTEVBTigwLCAicmVzZXQtYXV0aG9yIiwgJnJlbmV3X2F1dGhvcnNoaXAsIE5fKCJ0aGUgY29tbWl0IGlzIGF1dGhvcmVkIGJ5IG1lIG5vdyAodXNlZCB3aXRoIC1DLy1jLy0tYW1lbmQpIikpLAotCQlPUFRfQk9PTEVBTigncycsICJzaWdub2ZmIiwgJnNpZ25vZmYsIE5fKCJhZGQgU2lnbmVkLW9mZi1ieToiKSksCisJCU9QVF9CT09MKDAsICJyZXNldC1hdXRob3IiLCAmcmVuZXdfYXV0aG9yc2hpcCwgTl8oInRoZSBjb21taXQgaXMgYXV0aG9yZWQgYnkgbWUgbm93ICh1c2VkIHdpdGggLUMvLWMvLS1hbWVuZCkiKSksCisJCU9QVF9CT09MKCdzJywgInNpZ25vZmYiLCAmc2lnbm9mZiwgTl8oImFkZCBTaWduZWQtb2ZmLWJ5OiIpKSwKIAkJT1BUX0ZJTEVOQU1FKCd0JywgInRlbXBsYXRlIiwgJnRlbXBsYXRlX2ZpbGUsIE5fKCJ1c2Ugc3BlY2lmaWVkIHRlbXBsYXRlIGZpbGUiKSksCiAJCU9QVF9CT09MKCdlJywgImVkaXQiLCAmZWRpdF9mbGFnLCBOXygiZm9yY2UgZWRpdCBvZiBjb21taXQiKSksCiAJCU9QVF9TVFJJTkcoMCwgImNsZWFudXAiLCAmY2xlYW51cF9hcmcsIE5fKCJkZWZhdWx0IiksIE5fKCJob3cgdG8gc3RyaXAgc3BhY2VzIGFuZCAjY29tbWVudHMgZnJvbSBtZXNzYWdlIikpLAotCQlPUFRfQk9PTEVBTigwLCAic3RhdHVzIiwgJmluY2x1ZGVfc3RhdHVzLCBOXygiaW5jbHVkZSBzdGF0dXMgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiKSksCisJCU9QVF9CT09MKDAsICJzdGF0dXMiLCAmaW5jbHVkZV9zdGF0dXMsIE5fKCJpbmNsdWRlIHN0YXR1cyBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIpKSwKIAkJeyBPUFRJT05fU1RSSU5HLCAnUycsICJncGctc2lnbiIsICZzaWduX2NvbW1pdCwgTl8oImtleSBpZCIpLAogCQkgIE5fKCJHUEcgc2lnbiBjb21taXQiKSwgUEFSU0VfT1BUX09QVEFSRywgTlVMTCwgKGludHB0cl90KSAiIiB9LAogCQkvKiBlbmQgY29tbWl0IG1lc3NhZ2Ugb3B0aW9ucyAqLwogCiAJCU9QVF9HUk9VUChOXygiQ29tbWl0IGNvbnRlbnRzIG9wdGlvbnMiKSksCi0JCU9QVF9CT09MRUFOKCdhJywgImFsbCIsICZhbGwsIE5fKCJjb21taXQgYWxsIGNoYW5nZWQgZmlsZXMiKSksCi0JCU9QVF9CT09MRUFOKCdpJywgImluY2x1ZGUiLCAmYWxzbywgTl8oImFkZCBzcGVjaWZpZWQgZmlsZXMgdG8gaW5kZXggZm9yIGNvbW1pdCIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgImludGVyYWN0aXZlIiwgJmludGVyYWN0aXZlLCBOXygiaW50ZXJhY3RpdmVseSBhZGQgZmlsZXMiKSksCi0JCU9QVF9CT09MRUFOKCdwJywgInBhdGNoIiwgJnBhdGNoX2ludGVyYWN0aXZlLCBOXygiaW50ZXJhY3RpdmVseSBhZGQgY2hhbmdlcyIpKSwKLQkJT1BUX0JPT0xFQU4oJ28nLCAib25seSIsICZvbmx5LCBOXygiY29tbWl0IG9ubHkgc3BlY2lmaWVkIGZpbGVzIikpLAotCQlPUFRfQk9PTEVBTignbicsICJuby12ZXJpZnkiLCAmbm9fdmVyaWZ5LCBOXygiYnlwYXNzIHByZS1jb21taXQgaG9vayIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgImRyeS1ydW4iLCAmZHJ5X3J1biwgTl8oInNob3cgd2hhdCB3b3VsZCBiZSBjb21taXR0ZWQiKSksCisJCU9QVF9CT09MKCdhJywgImFsbCIsICZhbGwsIE5fKCJjb21taXQgYWxsIGNoYW5nZWQgZmlsZXMiKSksCisJCU9QVF9CT09MKCdpJywgImluY2x1ZGUiLCAmYWxzbywgTl8oImFkZCBzcGVjaWZpZWQgZmlsZXMgdG8gaW5kZXggZm9yIGNvbW1pdCIpKSwKKwkJT1BUX0JPT0woMCwgImludGVyYWN0aXZlIiwgJmludGVyYWN0aXZlLCBOXygiaW50ZXJhY3RpdmVseSBhZGQgZmlsZXMiKSksCisJCU9QVF9CT09MKCdwJywgInBhdGNoIiwgJnBhdGNoX2ludGVyYWN0aXZlLCBOXygiaW50ZXJhY3RpdmVseSBhZGQgY2hhbmdlcyIpKSwKKwkJT1BUX0JPT0woJ28nLCAib25seSIsICZvbmx5LCBOXygiY29tbWl0IG9ubHkgc3BlY2lmaWVkIGZpbGVzIikpLAorCQlPUFRfQk9PTCgnbicsICJuby12ZXJpZnkiLCAmbm9fdmVyaWZ5LCBOXygiYnlwYXNzIHByZS1jb21taXQgaG9vayIpKSwKKwkJT1BUX0JPT0woMCwgImRyeS1ydW4iLCAmZHJ5X3J1biwgTl8oInNob3cgd2hhdCB3b3VsZCBiZSBjb21taXR0ZWQiKSksCiAJCU9QVF9TRVRfSU5UKDAsICJzaG9ydCIsICZzdGF0dXNfZm9ybWF0LCBOXygic2hvdyBzdGF0dXMgY29uY2lzZWx5IiksCiAJCQkgICAgU1RBVFVTX0ZPUk1BVF9TSE9SVCksCiAJCU9QVF9CT09MKDAsICJicmFuY2giLCAmcy5zaG93X2JyYW5jaCwgTl8oInNob3cgYnJhbmNoIGluZm9ybWF0aW9uIikpLApAQCAtMTQ2NiwxOSArMTQ4NywxNyBAQAogCQlPUFRfU0VUX0lOVCgwLCAibG9uZyIsICZzdGF0dXNfZm9ybWF0LAogCQkJICAgIE5fKCJzaG93IHN0YXR1cyBpbiBsb25nIGZvcm1hdCAoZGVmYXVsdCkiKSwKIAkJCSAgICBTVEFUVVNfRk9STUFUX0xPTkcpLAotCQlPUFRfQk9PTEVBTigneicsICJudWxsIiwgJnMubnVsbF90ZXJtaW5hdGlvbiwKLQkJCSAgICBOXygidGVybWluYXRlIGVudHJpZXMgd2l0aCBOVUwiKSksCi0JCU9QVF9CT09MRUFOKDAsICJhbWVuZCIsICZhbWVuZCwgTl8oImFtZW5kIHByZXZpb3VzIGNvbW1pdCIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgIm5vLXBvc3QtcmV3cml0ZSIsICZub19wb3N0X3Jld3JpdGUsIE5fKCJieXBhc3MgcG9zdC1yZXdyaXRlIGhvb2siKSksCisJCU9QVF9CT09MKCd6JywgIm51bGwiLCAmcy5udWxsX3Rlcm1pbmF0aW9uLAorCQkJIE5fKCJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCIpKSwKKwkJT1BUX0JPT0woMCwgImFtZW5kIiwgJmFtZW5kLCBOXygiYW1lbmQgcHJldmlvdXMgY29tbWl0IikpLAorCQlPUFRfQk9PTCgwLCAibm8tcG9zdC1yZXdyaXRlIiwgJm5vX3Bvc3RfcmV3cml0ZSwgTl8oImJ5cGFzcyBwb3N0LXJld3JpdGUgaG9vayIpKSwKIAkJeyBPUFRJT05fU1RSSU5HLCAndScsICJ1bnRyYWNrZWQtZmlsZXMiLCAmdW50cmFja2VkX2ZpbGVzX2FyZywgTl8oIm1vZGUiKSwgTl8oInNob3cgdW50cmFja2VkIGZpbGVzLCBvcHRpb25hbCBtb2RlczogYWxsLCBub3JtYWwsIG5vLiAoRGVmYXVsdDogYWxsKSIpLCBQQVJTRV9PUFRfT1BUQVJHLCBOVUxMLCAoaW50cHRyX3QpImFsbCIgfSwKIAkJLyogZW5kIGNvbW1pdCBjb250ZW50cyBvcHRpb25zICovCiAKLQkJeyBPUFRJT05fQk9PTEVBTiwgMCwgImFsbG93LWVtcHR5IiwgJmFsbG93X2VtcHR5LCBOVUxMLAotCQkgIE5fKCJvayB0byByZWNvcmQgYW4gZW1wdHkgY2hhbmdlIiksCi0JCSAgUEFSU0VfT1BUX05PQVJHIHwgUEFSU0VfT1BUX0hJRERFTiB9LAotCQl7IE9QVElPTl9CT09MRUFOLCAwLCAiYWxsb3ctZW1wdHktbWVzc2FnZSIsICZhbGxvd19lbXB0eV9tZXNzYWdlLCBOVUxMLAotCQkgIE5fKCJvayB0byByZWNvcmQgYSBjaGFuZ2Ugd2l0aCBhbiBlbXB0eSBtZXNzYWdlIiksCi0JCSAgUEFSU0VfT1BUX05PQVJHIHwgUEFSU0VfT1BUX0hJRERFTiB9LAorCQlPUFRfSElEREVOX0JPT0woMCwgImFsbG93LWVtcHR5IiwgJmFsbG93X2VtcHR5LAorCQkJCU5fKCJvayB0byByZWNvcmQgYW4gZW1wdHkgY2hhbmdlIikpLAorCQlPUFRfSElEREVOX0JPT0woMCwgImFsbG93LWVtcHR5LW1lc3NhZ2UiLCAmYWxsb3dfZW1wdHlfbWVzc2FnZSwKKwkJCQlOXygib2sgdG8gcmVjb3JkIGEgY2hhbmdlIHdpdGggYW4gZW1wdHkgbWVzc2FnZSIpKSwKIAogCQlPUFRfRU5EKCkKIAl9OwpAQCAtMTQ4Niw3ICsxNTA1LDcgQEAKIAlzdHJ1Y3Qgc3RyYnVmIHNiID0gU1RSQlVGX0lOSVQ7CiAJc3RydWN0IHN0cmJ1ZiBhdXRob3JfaWRlbnQgPSBTVFJCVUZfSU5JVDsKIAljb25zdCBjaGFyICppbmRleF9maWxlLCAqcmVmbG9nX21zZzsKLQljaGFyICpubCwgKnA7CisJY2hhciAqbmw7CiAJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKIAlzdHJ1Y3QgcmVmX2xvY2sgKnJlZl9sb2NrOwogCXN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50cyA9IE5VTEwsICoqcHB0ciA9ICZwYXJlbnRzOwpAQCAtMTQ5OCwxOCArMTUxNywxNSBAQAogCWlmIChhcmdjID09IDIgJiYgIXN0cmNtcChhcmd2WzFdLCAiLWgiKSkKIAkJdXNhZ2Vfd2l0aF9vcHRpb25zKGJ1aWx0aW5fY29tbWl0X3VzYWdlLCBidWlsdGluX2NvbW1pdF9vcHRpb25zKTsKIAotCXd0X3N0YXR1c19wcmVwYXJlKCZzKTsKLQlnaXRtb2R1bGVzX2NvbmZpZygpOwotCWdpdF9jb25maWcoZ2l0X2NvbW1pdF9jb25maWcsICZzKTsKKwlzdGF0dXNfaW5pdF9jb25maWcoJnMsIGdpdF9jb21taXRfY29uZmlnKTsKIAlzdGF0dXNfZm9ybWF0ID0gU1RBVFVTX0ZPUk1BVF9OT05FOyAvKiBJZ25vcmUgc3RhdHVzLnNob3J0ICovCi0JZGV0ZXJtaW5lX3doZW5jZSgmcyk7CiAJcy5jb2xvcHRzID0gMDsKIAogCWlmIChnZXRfc2hhMSgiSEVBRCIsIHNoYTEpKQogCQljdXJyZW50X2hlYWQgPSBOVUxMOwogCWVsc2UgewogCQljdXJyZW50X2hlYWQgPSBsb29rdXBfY29tbWl0X29yX2RpZShzaGExLCAiSEVBRCIpOwotCQlpZiAoIWN1cnJlbnRfaGVhZCB8fCBwYXJzZV9jb21taXQoY3VycmVudF9oZWFkKSkKKwkJaWYgKHBhcnNlX2NvbW1pdChjdXJyZW50X2hlYWQpKQogCQkJZGllKF8oImNvdWxkIG5vdCBwYXJzZSBIRUFEIGNvbW1pdCIpKTsKIAl9CiAJYXJnYyA9IHBhcnNlX2FuZF92YWxpZGF0ZV9vcHRpb25zKGFyZ2MsIGFyZ3YsIGJ1aWx0aW5fY29tbWl0X29wdGlvbnMsCkBAIC0xNTg1LDExICsxNjAxLDggQEAKIAl9CiAKIAkvKiBUcnVuY2F0ZSB0aGUgbWVzc2FnZSBqdXN0IGJlZm9yZSB0aGUgZGlmZiwgaWYgYW55LiAqLwotCWlmICh2ZXJib3NlKSB7Ci0JCXAgPSBzdHJzdHIoc2IuYnVmLCAiXG5kaWZmIC0tZ2l0ICIpOwotCQlpZiAocCAhPSBOVUxMKQotCQkJc3RyYnVmX3NldGxlbigmc2IsIHAgLSBzYi5idWYgKyAxKTsKLQl9CisJaWYgKHZlcmJvc2UpCisJCXd0X3N0YXR1c190cnVuY2F0ZV9tZXNzYWdlX2F0X2N1dF9saW5lKCZzYik7CiAKIAlpZiAoY2xlYW51cF9tb2RlICE9IENMRUFOVVBfTk9ORSkKIAkJc3RyaXBzcGFjZSgmc2IsIGNsZWFudXBfbW9kZSA9PSBDTEVBTlVQX0FMTCk7CkBAIC0xNjI0LDcgKzE2MzcsNyBAQAogCQkJCQkgICAhY3VycmVudF9oZWFkCiAJCQkJCSAgID8gTlVMTAogCQkJCQkgICA6IGN1cnJlbnRfaGVhZC0+b2JqZWN0LnNoYTEsCi0JCQkJCSAgIDApOworCQkJCQkgICAwLCBOVUxMKTsKIAogCW5sID0gc3RyY2hyKHNiLmJ1ZiwgJ1xuJyk7CiAJaWYgKG5sKQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9jb25maWcuYyBiL2J1aWx0aW4vY29uZmlnLmMKaW5kZXggNDAxMGM0My4uOTJlYmYyMyAxMDA2NDQKLS0tIGEvYnVpbHRpbi9jb25maWcuYworKysgYi9idWlsdGluL2NvbmZpZy5jCkBAIC0yLDYgKzIsNyBAQAogI2luY2x1ZGUgImNhY2hlLmgiCiAjaW5jbHVkZSAiY29sb3IuaCIKICNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCisjaW5jbHVkZSAidXJsbWF0Y2guaCIKIAogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IGJ1aWx0aW5fY29uZmlnX3VzYWdlW10gPSB7CiAJTl8oImdpdCBjb25maWcgW29wdGlvbnNdIiksCkBAIC00Miw2ICs0Myw3IEBACiAjZGVmaW5lIEFDVElPTl9TRVRfQUxMICgxPDwxMikKICNkZWZpbmUgQUNUSU9OX0dFVF9DT0xPUiAoMTw8MTMpCiAjZGVmaW5lIEFDVElPTl9HRVRfQ09MT1JCT09MICgxPDwxNCkKKyNkZWZpbmUgQUNUSU9OX0dFVF9VUkxNQVRDSCAoMTw8MTUpCiAKICNkZWZpbmUgVFlQRV9CT09MICgxPDwwKQogI2RlZmluZSBUWVBFX0lOVCAoMTw8MSkKQEAgLTUwLDE1ICs1MiwxNiBAQAogCiBzdGF0aWMgc3RydWN0IG9wdGlvbiBidWlsdGluX2NvbmZpZ19vcHRpb25zW10gPSB7CiAJT1BUX0dST1VQKE5fKCJDb25maWcgZmlsZSBsb2NhdGlvbiIpKSwKLQlPUFRfQk9PTEVBTigwLCAiZ2xvYmFsIiwgJnVzZV9nbG9iYWxfY29uZmlnLCBOXygidXNlIGdsb2JhbCBjb25maWcgZmlsZSIpKSwKLQlPUFRfQk9PTEVBTigwLCAic3lzdGVtIiwgJnVzZV9zeXN0ZW1fY29uZmlnLCBOXygidXNlIHN5c3RlbSBjb25maWcgZmlsZSIpKSwKLQlPUFRfQk9PTEVBTigwLCAibG9jYWwiLCAmdXNlX2xvY2FsX2NvbmZpZywgTl8oInVzZSByZXBvc2l0b3J5IGNvbmZpZyBmaWxlIikpLAorCU9QVF9CT09MKDAsICJnbG9iYWwiLCAmdXNlX2dsb2JhbF9jb25maWcsIE5fKCJ1c2UgZ2xvYmFsIGNvbmZpZyBmaWxlIikpLAorCU9QVF9CT09MKDAsICJzeXN0ZW0iLCAmdXNlX3N5c3RlbV9jb25maWcsIE5fKCJ1c2Ugc3lzdGVtIGNvbmZpZyBmaWxlIikpLAorCU9QVF9CT09MKDAsICJsb2NhbCIsICZ1c2VfbG9jYWxfY29uZmlnLCBOXygidXNlIHJlcG9zaXRvcnkgY29uZmlnIGZpbGUiKSksCiAJT1BUX1NUUklORygnZicsICJmaWxlIiwgJmdpdmVuX2NvbmZpZ19maWxlLCBOXygiZmlsZSIpLCBOXygidXNlIGdpdmVuIGNvbmZpZyBmaWxlIikpLAogCU9QVF9TVFJJTkcoMCwgImJsb2IiLCAmZ2l2ZW5fY29uZmlnX2Jsb2IsIE5fKCJibG9iLWlkIiksIE5fKCJyZWFkIGNvbmZpZyBmcm9tIGdpdmVuIGJsb2Igb2JqZWN0IikpLAogCU9QVF9HUk9VUChOXygiQWN0aW9uIikpLAogCU9QVF9CSVQoMCwgImdldCIsICZhY3Rpb25zLCBOXygiZ2V0IHZhbHVlOiBuYW1lIFt2YWx1ZS1yZWdleF0iKSwgQUNUSU9OX0dFVCksCiAJT1BUX0JJVCgwLCAiZ2V0LWFsbCIsICZhY3Rpb25zLCBOXygiZ2V0IGFsbCB2YWx1ZXM6IGtleSBbdmFsdWUtcmVnZXhdIiksIEFDVElPTl9HRVRfQUxMKSwKIAlPUFRfQklUKDAsICJnZXQtcmVnZXhwIiwgJmFjdGlvbnMsIE5fKCJnZXQgdmFsdWVzIGZvciByZWdleHA6IG5hbWUtcmVnZXggW3ZhbHVlLXJlZ2V4XSIpLCBBQ1RJT05fR0VUX1JFR0VYUCksCisJT1BUX0JJVCgwLCAiZ2V0LXVybG1hdGNoIiwgJmFjdGlvbnMsIE5fKCJnZXQgdmFsdWUgc3BlY2lmaWMgZm9yIHRoZSBVUkw6IHNlY3Rpb25bLnZhcl0gVVJMIiksIEFDVElPTl9HRVRfVVJMTUFUQ0gpLAogCU9QVF9CSVQoMCwgInJlcGxhY2UtYWxsIiwgJmFjdGlvbnMsIE5fKCJyZXBsYWNlIGFsbCBtYXRjaGluZyB2YXJpYWJsZXM6IG5hbWUgdmFsdWUgW3ZhbHVlX3JlZ2V4XSIpLCBBQ1RJT05fUkVQTEFDRV9BTEwpLAogCU9QVF9CSVQoMCwgImFkZCIsICZhY3Rpb25zLCBOXygiYWRkIGEgbmV3IHZhcmlhYmxlOiBuYW1lIHZhbHVlIiksIEFDVElPTl9BREQpLAogCU9QVF9CSVQoMCwgInVuc2V0IiwgJmFjdGlvbnMsIE5fKCJyZW1vdmUgYSB2YXJpYWJsZTogbmFtZSBbdmFsdWUtcmVnZXhdIiksIEFDVElPTl9VTlNFVCksCkBAIC03NSw3ICs3OCw3IEBACiAJT1BUX0JJVCgwLCAiYm9vbC1vci1pbnQiLCAmdHlwZXMsIE5fKCJ2YWx1ZSBpcyAtLWJvb2wgb3IgLS1pbnQiKSwgVFlQRV9CT09MX09SX0lOVCksCiAJT1BUX0JJVCgwLCAicGF0aCIsICZ0eXBlcywgTl8oInZhbHVlIGlzIGEgcGF0aCAoZmlsZSBvciBkaXJlY3RvcnkgbmFtZSkiKSwgVFlQRV9QQVRIKSwKIAlPUFRfR1JPVVAoTl8oIk90aGVyIikpLAotCU9QVF9CT09MRUFOKCd6JywgIm51bGwiLCAmZW5kX251bGwsIE5fKCJ0ZXJtaW5hdGUgdmFsdWVzIHdpdGggTlVMIGJ5dGUiKSksCisJT1BUX0JPT0woJ3onLCAibnVsbCIsICZlbmRfbnVsbCwgTl8oInRlcm1pbmF0ZSB2YWx1ZXMgd2l0aCBOVUwgYnl0ZSIpKSwKIAlPUFRfQk9PTCgwLCAiaW5jbHVkZXMiLCAmcmVzcGVjdF9pbmNsdWRlcywgTl8oInJlc3BlY3QgaW5jbHVkZSBkaXJlY3RpdmVzIG9uIGxvb2t1cCIpKSwKIAlPUFRfRU5EKCksCiB9OwpAQCAtMTAyLDI1ICsxMDUsMTMgQEAKIAlpbnQgYWxsb2M7CiB9OwogCi1zdGF0aWMgaW50IGNvbGxlY3RfY29uZmlnKGNvbnN0IGNoYXIgKmtleV8sIGNvbnN0IGNoYXIgKnZhbHVlXywgdm9pZCAqY2IpCitzdGF0aWMgaW50IGZvcm1hdF9jb25maWcoc3RydWN0IHN0cmJ1ZiAqYnVmLCBjb25zdCBjaGFyICprZXlfLCBjb25zdCBjaGFyICp2YWx1ZV8pCiB7Ci0Jc3RydWN0IHN0cmJ1Zl9saXN0ICp2YWx1ZXMgPSBjYjsKLQlzdHJ1Y3Qgc3RyYnVmICpidWY7Ci0JY2hhciB2YWx1ZVsyNTZdOwotCWNvbnN0IGNoYXIgKnZwdHIgPSB2YWx1ZTsKIAlpbnQgbXVzdF9mcmVlX3ZwdHIgPSAwOwogCWludCBtdXN0X3ByaW50X2RlbGltID0gMDsKKwljaGFyIHZhbHVlWzI1Nl07CisJY29uc3QgY2hhciAqdnB0ciA9IHZhbHVlOwogCi0JaWYgKCF1c2Vfa2V5X3JlZ2V4cCAmJiBzdHJjbXAoa2V5Xywga2V5KSkKLQkJcmV0dXJuIDA7Ci0JaWYgKHVzZV9rZXlfcmVnZXhwICYmIHJlZ2V4ZWMoa2V5X3JlZ2V4cCwga2V5XywgMCwgTlVMTCwgMCkpCi0JCXJldHVybiAwOwotCWlmIChyZWdleHAgIT0gTlVMTCAmJgotCSAgICAoZG9fbm90X21hdGNoIF4gISFyZWdleGVjKHJlZ2V4cCwgKHZhbHVlXz92YWx1ZV86IiIpLCAwLCBOVUxMLCAwKSkpCi0JCXJldHVybiAwOwotCi0JQUxMT0NfR1JPVyh2YWx1ZXMtPml0ZW1zLCB2YWx1ZXMtPm5yICsgMSwgdmFsdWVzLT5hbGxvYyk7Ci0JYnVmID0gJnZhbHVlcy0+aXRlbXNbdmFsdWVzLT5ucisrXTsKIAlzdHJidWZfaW5pdChidWYsIDApOwogCiAJaWYgKHNob3dfa2V5cykgewpAQCAtMTI4LDcgKzExOSw4IEBACiAJCW11c3RfcHJpbnRfZGVsaW0gPSAxOwogCX0KIAlpZiAodHlwZXMgPT0gVFlQRV9JTlQpCi0JCXNwcmludGYodmFsdWUsICIlZCIsIGdpdF9jb25maWdfaW50KGtleV8sIHZhbHVlXz92YWx1ZV86IiIpKTsKKwkJc3ByaW50Zih2YWx1ZSwgIiUiUFJJZDY0LAorCQkJZ2l0X2NvbmZpZ19pbnQ2NChrZXlfLCB2YWx1ZV8gPyB2YWx1ZV8gOiAiIikpOwogCWVsc2UgaWYgKHR5cGVzID09IFRZUEVfQk9PTCkKIAkJdnB0ciA9IGdpdF9jb25maWdfYm9vbChrZXlfLCB2YWx1ZV8pID8gInRydWUiIDogImZhbHNlIjsKIAllbHNlIGlmICh0eXBlcyA9PSBUWVBFX0JPT0xfT1JfSU5UKSB7CkBAIC0xNTYsMTUgKzE0OCwyNyBAQAogCXN0cmJ1Zl9hZGRjaChidWYsIHRlcm0pOwogCiAJaWYgKG11c3RfZnJlZV92cHRyKQotCQkvKiBJZiB2cHRyIG11c3QgYmUgZnJlZWQsIGl0J3MgYSBwb2ludGVyIHRvIGEKLQkJICogZHluYW1pY2FsbHkgYWxsb2NhdGVkIGJ1ZmZlciwgaXQncyBzYWZlIHRvIGNhc3QgdG8KLQkJICogY29uc3QuCi0JCSovCiAJCWZyZWUoKGNoYXIgKil2cHRyKTsKLQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGNvbGxlY3RfY29uZmlnKGNvbnN0IGNoYXIgKmtleV8sIGNvbnN0IGNoYXIgKnZhbHVlXywgdm9pZCAqY2IpCit7CisJc3RydWN0IHN0cmJ1Zl9saXN0ICp2YWx1ZXMgPSBjYjsKKworCWlmICghdXNlX2tleV9yZWdleHAgJiYgc3RyY21wKGtleV8sIGtleSkpCisJCXJldHVybiAwOworCWlmICh1c2Vfa2V5X3JlZ2V4cCAmJiByZWdleGVjKGtleV9yZWdleHAsIGtleV8sIDAsIE5VTEwsIDApKQorCQlyZXR1cm4gMDsKKwlpZiAocmVnZXhwICE9IE5VTEwgJiYKKwkgICAgKGRvX25vdF9tYXRjaCBeICEhcmVnZXhlYyhyZWdleHAsICh2YWx1ZV8/dmFsdWVfOiIiKSwgMCwgTlVMTCwgMCkpKQorCQlyZXR1cm4gMDsKKworCUFMTE9DX0dST1codmFsdWVzLT5pdGVtcywgdmFsdWVzLT5uciArIDEsIHZhbHVlcy0+YWxsb2MpOworCisJcmV0dXJuIGZvcm1hdF9jb25maWcoJnZhbHVlcy0+aXRlbXNbdmFsdWVzLT5ucisrXSwga2V5XywgdmFsdWVfKTsKK30KKwogc3RhdGljIGludCBnZXRfdmFsdWUoY29uc3QgY2hhciAqa2V5XywgY29uc3QgY2hhciAqcmVnZXhfKQogewogCWludCByZXQgPSBDT05GSUdfR0VORVJJQ19FUlJPUjsKQEAgLTI2NSw4ICsyNjksOCBAQAogCWVsc2UgewogCQlub3JtYWxpemVkID0geG1hbGxvYyg2NCk7CiAJCWlmICh0eXBlcyA9PSBUWVBFX0lOVCkgewotCQkJaW50IHYgPSBnaXRfY29uZmlnX2ludChrZXksIHZhbHVlKTsKLQkJCXNwcmludGYobm9ybWFsaXplZCwgIiVkIiwgdik7CisJCQlpbnQ2NF90IHYgPSBnaXRfY29uZmlnX2ludDY0KGtleSwgdmFsdWUpOworCQkJc3ByaW50Zihub3JtYWxpemVkLCAiJSJQUklkNjQsIHYpOwogCQl9CiAJCWVsc2UgaWYgKHR5cGVzID09IFRZUEVfQk9PTCkKIAkJCXNwcmludGYobm9ybWFsaXplZCwgIiVzIiwKQEAgLTM2NCw2ICszNjgsOTcgQEAKIAkJZGllKCJ3cml0aW5nIGNvbmZpZyBibG9icyBpcyBub3Qgc3VwcG9ydGVkIik7CiB9CiAKK3N0cnVjdCB1cmxtYXRjaF9jdXJyZW50X2NhbmRpZGF0ZV92YWx1ZSB7CisJY2hhciB2YWx1ZV9pc19udWxsOworCXN0cnVjdCBzdHJidWYgdmFsdWU7Cit9OworCitzdGF0aWMgaW50IHVybG1hdGNoX2NvbGxlY3RfZm4oY29uc3QgY2hhciAqdmFyLCBjb25zdCBjaGFyICp2YWx1ZSwgdm9pZCAqY2IpCit7CisJc3RydWN0IHN0cmluZ19saXN0ICp2YWx1ZXMgPSBjYjsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbSA9IHN0cmluZ19saXN0X2luc2VydCh2YWx1ZXMsIHZhcik7CisJc3RydWN0IHVybG1hdGNoX2N1cnJlbnRfY2FuZGlkYXRlX3ZhbHVlICptYXRjaGVkID0gaXRlbS0+dXRpbDsKKworCWlmICghbWF0Y2hlZCkgeworCQltYXRjaGVkID0geG1hbGxvYyhzaXplb2YoKm1hdGNoZWQpKTsKKwkJc3RyYnVmX2luaXQoJm1hdGNoZWQtPnZhbHVlLCAwKTsKKwkJaXRlbS0+dXRpbCA9IG1hdGNoZWQ7CisJfSBlbHNlIHsKKwkJc3RyYnVmX3Jlc2V0KCZtYXRjaGVkLT52YWx1ZSk7CisJfQorCisJaWYgKHZhbHVlKSB7CisJCXN0cmJ1Zl9hZGRzdHIoJm1hdGNoZWQtPnZhbHVlLCB2YWx1ZSk7CisJCW1hdGNoZWQtPnZhbHVlX2lzX251bGwgPSAwOworCX0gZWxzZSB7CisJCW1hdGNoZWQtPnZhbHVlX2lzX251bGwgPSAxOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNoYXIgKmR1cF9kb3duY2FzZShjb25zdCBjaGFyICpzdHJpbmcpCit7CisJY2hhciAqcmVzdWx0OworCXNpemVfdCBsZW4sIGk7CisKKwlsZW4gPSBzdHJsZW4oc3RyaW5nKTsKKwlyZXN1bHQgPSB4bWFsbG9jKGxlbiArIDEpOworCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKKwkJcmVzdWx0W2ldID0gdG9sb3dlcihzdHJpbmdbaV0pOworCXJlc3VsdFtpXSA9ICdcMCc7CisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGludCBnZXRfdXJsbWF0Y2goY29uc3QgY2hhciAqdmFyLCBjb25zdCBjaGFyICp1cmwpCit7CisJY2hhciAqc2VjdGlvbl90YWlsOworCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtOworCXN0cnVjdCB1cmxtYXRjaF9jb25maWcgY29uZmlnID0geyBTVFJJTkdfTElTVF9JTklUX0RVUCB9OworCXN0cnVjdCBzdHJpbmdfbGlzdCB2YWx1ZXMgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKKworCWNvbmZpZy5jb2xsZWN0X2ZuID0gdXJsbWF0Y2hfY29sbGVjdF9mbjsKKwljb25maWcuY2FzY2FkZV9mbiA9IE5VTEw7CisJY29uZmlnLmNiID0gJnZhbHVlczsKKworCWlmICghdXJsX25vcm1hbGl6ZSh1cmwsICZjb25maWcudXJsKSkKKwkJZGllKCIlcyIsIGNvbmZpZy51cmwuZXJyKTsKKworCWNvbmZpZy5zZWN0aW9uID0gZHVwX2Rvd25jYXNlKHZhcik7CisJc2VjdGlvbl90YWlsID0gc3RyY2hyKGNvbmZpZy5zZWN0aW9uLCAnLicpOworCWlmIChzZWN0aW9uX3RhaWwpIHsKKwkJKnNlY3Rpb25fdGFpbCA9ICdcMCc7CisJCWNvbmZpZy5rZXkgPSBzZWN0aW9uX3RhaWwgKyAxOworCQlzaG93X2tleXMgPSAwOworCX0gZWxzZSB7CisJCWNvbmZpZy5rZXkgPSBOVUxMOworCQlzaG93X2tleXMgPSAxOworCX0KKworCWdpdF9jb25maWdfd2l0aF9vcHRpb25zKHVybG1hdGNoX2NvbmZpZ19lbnRyeSwgJmNvbmZpZywKKwkJCQlnaXZlbl9jb25maWdfZmlsZSwgTlVMTCwgcmVzcGVjdF9pbmNsdWRlcyk7CisKKwlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKGl0ZW0sICZ2YWx1ZXMpIHsKKwkJc3RydWN0IHVybG1hdGNoX2N1cnJlbnRfY2FuZGlkYXRlX3ZhbHVlICptYXRjaGVkID0gaXRlbS0+dXRpbDsKKwkJc3RydWN0IHN0cmJ1ZiBrZXkgPSBTVFJCVUZfSU5JVDsKKwkJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKKworCQlzdHJidWZfYWRkc3RyKCZrZXksIGl0ZW0tPnN0cmluZyk7CisJCWZvcm1hdF9jb25maWcoJmJ1Ziwga2V5LmJ1ZiwKKwkJCSAgICAgIG1hdGNoZWQtPnZhbHVlX2lzX251bGwgPyBOVUxMIDogbWF0Y2hlZC0+dmFsdWUuYnVmKTsKKwkJZndyaXRlKGJ1Zi5idWYsIDEsIGJ1Zi5sZW4sIHN0ZG91dCk7CisJCXN0cmJ1Zl9yZWxlYXNlKCZrZXkpOworCQlzdHJidWZfcmVsZWFzZSgmYnVmKTsKKworCQlzdHJidWZfcmVsZWFzZSgmbWF0Y2hlZC0+dmFsdWUpOworCX0KKwlzdHJpbmdfbGlzdF9jbGVhcigmY29uZmlnLnZhcnMsIDEpOworCXN0cmluZ19saXN0X2NsZWFyKCZ2YWx1ZXMsIDEpOworCWZyZWUoY29uZmlnLnVybC51cmwpOworCisJZnJlZSgodm9pZCAqKWNvbmZpZy5zZWN0aW9uKTsKKwlyZXR1cm4gMDsKK30KKwogaW50IGNtZF9jb25maWcoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCiB7CiAJaW50IG5vbmdpdCA9ICFzdGFydHVwX2luZm8tPmhhdmVfcmVwb3NpdG9yeTsKQEAgLTUyMyw2ICs2MTgsMTAgQEAKIAkJY2hlY2tfYXJnYyhhcmdjLCAxLCAyKTsKIAkJcmV0dXJuIGdldF92YWx1ZShhcmd2WzBdLCBhcmd2WzFdKTsKIAl9CisJZWxzZSBpZiAoYWN0aW9ucyA9PSBBQ1RJT05fR0VUX1VSTE1BVENIKSB7CisJCWNoZWNrX2FyZ2MoYXJnYywgMiwgMik7CisJCXJldHVybiBnZXRfdXJsbWF0Y2goYXJndlswXSwgYXJndlsxXSk7CisJfQogCWVsc2UgaWYgKGFjdGlvbnMgPT0gQUNUSU9OX1VOU0VUKSB7CiAJCWNoZWNrX2Jsb2Jfd3JpdGUoKTsKIAkJY2hlY2tfYXJnYyhhcmdjLCAxLCAyKTsKQEAgLTU3Miw5ICs2NzEsMyBAQAogCiAJcmV0dXJuIDA7CiB9Ci0KLWludCBjbWRfcmVwb19jb25maWcoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCi17Ci0JZnByaW50ZihzdGRlcnIsICJXQVJOSU5HOiBnaXQgcmVwby1jb25maWcgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBnaXQgY29uZmlnLlxuIik7Ci0JcmV0dXJuIGNtZF9jb25maWcoYXJnYywgYXJndiwgcHJlZml4KTsKLX0KZGlmZiAtLWdpdCBhL2J1aWx0aW4vZGVzY3JpYmUuYyBiL2J1aWx0aW4vZGVzY3JpYmUuYwppbmRleCA3ZDczNzIyLi43ZGI0M2RhIDEwMDY0NAotLS0gYS9idWlsdGluL2Rlc2NyaWJlLmMKKysrIGIvYnVpbHRpbi9kZXNjcmliZS5jCkBAIC05LDExICs5LDExIEBACiAjaW5jbHVkZSAiaGFzaC5oIgogI2luY2x1ZGUgImFyZ3YtYXJyYXkuaCIKIAotI2RlZmluZSBTRUVOCQkoMXU8PDApCisjZGVmaW5lIFNFRU4JCSgxdSA8PCAwKQogI2RlZmluZSBNQVhfVEFHUwkoRkxBR19CSVRTIC0gMSkKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBkZXNjcmliZV91c2FnZVtdID0gewotCU5fKCJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIDxjb21taXR0aXNoPioiKSwKKwlOXygiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSA8Y29tbWl0LWlzaD4qIiksCiAJTl8oImdpdCBkZXNjcmliZSBbb3B0aW9uc10gLS1kaXJ0eSIpLAogCU5VTEwKIH07CkBAIC0zNiw3ICszNiw2IEBACiAJImRpZmYtaW5kZXgiLCAiLS1xdWlldCIsICJIRUFEIiwgIi0tIiwgTlVMTAogfTsKIAotCiBzdHJ1Y3QgY29tbWl0X25hbWUgewogCXN0cnVjdCBjb21taXRfbmFtZSAqbmV4dDsKIAl1bnNpZ25lZCBjaGFyIHBlZWxlZFsyMF07CkBAIC00Niw2ICs0NSw3IEBACiAJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKIAljaGFyICpwYXRoOwogfTsKKwogc3RhdGljIGNvbnN0IGNoYXIgKnByaW9fbmFtZXNbXSA9IHsKIAkiaGVhZCIsICJsaWdodHdlaWdodCIsICJhbm5vdGF0ZWQiLAogfTsKQEAgLTE0MSw3ICsxNDEsNyBAQAogCiBzdGF0aWMgaW50IGdldF9uYW1lKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIGludCBmbGFnLCB2b2lkICpjYl9kYXRhKQogewotCWludCBpc190YWcgPSAhcHJlZml4Y21wKHBhdGgsICJyZWZzL3RhZ3MvIik7CisJaW50IGlzX3RhZyA9IHN0YXJ0c193aXRoKHBhdGgsICJyZWZzL3RhZ3MvIik7CiAJdW5zaWduZWQgY2hhciBwZWVsZWRbMjBdOwogCWludCBpc19hbm5vdGF0ZWQsIHByaW87CiAKQEAgLTQwNiwxMiArNDA2LDEyIEBACiB7CiAJaW50IGNvbnRhaW5zID0gMDsKIAlzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKLQkJT1BUX0JPT0xFQU4oMCwgImNvbnRhaW5zIiwgICAmY29udGFpbnMsIE5fKCJmaW5kIHRoZSB0YWcgdGhhdCBjb21lcyBhZnRlciB0aGUgY29tbWl0IikpLAotCQlPUFRfQk9PTEVBTigwLCAiZGVidWciLCAgICAgICZkZWJ1ZywgTl8oImRlYnVnIHNlYXJjaCBzdHJhdGVneSBvbiBzdGRlcnIiKSksCi0JCU9QVF9CT09MRUFOKDAsICJhbGwiLCAgICAgICAgJmFsbCwgTl8oInVzZSBhbnkgcmVmIikpLAotCQlPUFRfQk9PTEVBTigwLCAidGFncyIsICAgICAgICZ0YWdzLCBOXygidXNlIGFueSB0YWcsIGV2ZW4gdW5hbm5vdGF0ZWQiKSksCi0JCU9QVF9CT09MRUFOKDAsICJsb25nIiwgICAgICAgJmxvbmdmb3JtYXQsIE5fKCJhbHdheXMgdXNlIGxvbmcgZm9ybWF0IikpLAotCQlPUFRfQk9PTEVBTigwLCAiZmlyc3QtcGFyZW50IiwgJmZpcnN0X3BhcmVudCwgTl8oIm9ubHkgZm9sbG93IGZpcnN0IHBhcmVudCIpKSwKKwkJT1BUX0JPT0woMCwgImNvbnRhaW5zIiwgICAmY29udGFpbnMsIE5fKCJmaW5kIHRoZSB0YWcgdGhhdCBjb21lcyBhZnRlciB0aGUgY29tbWl0IikpLAorCQlPUFRfQk9PTCgwLCAiZGVidWciLCAgICAgICZkZWJ1ZywgTl8oImRlYnVnIHNlYXJjaCBzdHJhdGVneSBvbiBzdGRlcnIiKSksCisJCU9QVF9CT09MKDAsICJhbGwiLCAgICAgICAgJmFsbCwgTl8oInVzZSBhbnkgcmVmIikpLAorCQlPUFRfQk9PTCgwLCAidGFncyIsICAgICAgICZ0YWdzLCBOXygidXNlIGFueSB0YWcsIGV2ZW4gdW5hbm5vdGF0ZWQiKSksCisJCU9QVF9CT09MKDAsICJsb25nIiwgICAgICAgJmxvbmdmb3JtYXQsIE5fKCJhbHdheXMgdXNlIGxvbmcgZm9ybWF0IikpLAorCQlPUFRfQk9PTCgwLCAiZmlyc3QtcGFyZW50IiwgJmZpcnN0X3BhcmVudCwgTl8oIm9ubHkgZm9sbG93IGZpcnN0IHBhcmVudCIpKSwKIAkJT1BUX19BQkJSRVYoJmFiYnJldiksCiAJCU9QVF9TRVRfSU5UKDAsICJleGFjdC1tYXRjaCIsICZtYXhfY2FuZGlkYXRlcywKIAkJCSAgICBOXygib25seSBvdXRwdXQgZXhhY3QgbWF0Y2hlcyIpLCAwKSwKQEAgLTQxOSwxMSArNDE5LDExIEBACiAJCQkgICAgTl8oImNvbnNpZGVyIDxuPiBtb3N0IHJlY2VudCB0YWdzIChkZWZhdWx0OiAxMCkiKSksCiAJCU9QVF9TVFJJTkcoMCwgIm1hdGNoIiwgICAgICAgJnBhdHRlcm4sIE5fKCJwYXR0ZXJuIiksCiAJCQkgICBOXygib25seSBjb25zaWRlciB0YWdzIG1hdGNoaW5nIDxwYXR0ZXJuPiIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgImFsd2F5cyIsICAgICAmYWx3YXlzLAotCQkJICAgTl8oInNob3cgYWJicmV2aWF0ZWQgY29tbWl0IG9iamVjdCBhcyBmYWxsYmFjayIpKSwKKwkJT1BUX0JPT0woMCwgImFsd2F5cyIsICAgICAgICAmYWx3YXlzLAorCQkJTl8oInNob3cgYWJicmV2aWF0ZWQgY29tbWl0IG9iamVjdCBhcyBmYWxsYmFjayIpKSwKIAkJe09QVElPTl9TVFJJTkcsIDAsICJkaXJ0eSIsICAmZGlydHksIE5fKCJtYXJrIiksCi0JCQkgICBOXygiYXBwZW5kIDxtYXJrPiBvbiBkaXJ0eSB3b3JraW5nIHRyZWUgKGRlZmF1bHQ6IFwiLWRpcnR5XCIpIiksCi0JCSBQQVJTRV9PUFRfT1BUQVJHLCBOVUxMLCAoaW50cHRyX3QpICItZGlydHkifSwKKwkJCU5fKCJhcHBlbmQgPG1hcms+IG9uIGRpcnR5IHdvcmtpbmcgdHJlZSAoZGVmYXVsdDogXCItZGlydHlcIikiKSwKKwkJCVBBUlNFX09QVF9PUFRBUkcsIE5VTEwsIChpbnRwdHJfdCkgIi1kaXJ0eSJ9LAogCQlPUFRfRU5EKCksCiAJfTsKIApAQCAtNDg2LDExICs0ODYsMTAgQEAKIAkJfQogCQlkZXNjcmliZSgiSEVBRCIsIDEpOwogCX0gZWxzZSBpZiAoZGlydHkpIHsKLQkJZGllKF8oIi0tZGlydHkgaXMgaW5jb21wYXRpYmxlIHdpdGggY29tbWl0dGlzaGVzIikpOworCQlkaWUoXygiLS1kaXJ0eSBpcyBpbmNvbXBhdGlibGUgd2l0aCBjb21taXQtaXNoZXMiKSk7CiAJfSBlbHNlIHsKLQkJd2hpbGUgKGFyZ2MtLSA+IDApIHsKKwkJd2hpbGUgKGFyZ2MtLSA+IDApCiAJCQlkZXNjcmliZSgqYXJndisrLCBhcmdjID09IDApOwotCQl9CiAJfQogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9kaWZmLWZpbGVzLmMgYi9idWlsdGluL2RpZmYtZmlsZXMuYwppbmRleCA0NjA4NWY4Li45MjAwMDY5IDEwMDY0NAotLS0gYS9idWlsdGluL2RpZmYtZmlsZXMuYworKysgYi9idWlsdGluL2RpZmYtZmlsZXMuYwpAQCAtNjEsNyArNjEsNyBAQAogCSAgICAocmV2LmRpZmZvcHQub3V0cHV0X2Zvcm1hdCAmIERJRkZfRk9STUFUX1BBVENIKSkKIAkJcmV2LmNvbWJpbmVfbWVyZ2VzID0gcmV2LmRlbnNlX2NvbWJpbmVkX21lcmdlcyA9IDE7CiAKLQlpZiAocmVhZF9jYWNoZV9wcmVsb2FkKHJldi5kaWZmb3B0LnBhdGhzcGVjLnJhdykgPCAwKSB7CisJaWYgKHJlYWRfY2FjaGVfcHJlbG9hZCgmcmV2LmRpZmZvcHQucGF0aHNwZWMpIDwgMCkgewogCQlwZXJyb3IoInJlYWRfY2FjaGVfcHJlbG9hZCIpOwogCQlyZXR1cm4gLTE7CiAJfQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9kaWZmLWluZGV4LmMgYi9idWlsdGluL2RpZmYtaW5kZXguYwppbmRleCAxYzczN2Y3Li5jZTE1YjIzIDEwMDY0NAotLS0gYS9idWlsdGluL2RpZmYtaW5kZXguYworKysgYi9idWlsdGluL2RpZmYtaW5kZXguYwpAQCAtNDMsNyArNDMsNyBAQAogCQl1c2FnZShkaWZmX2NhY2hlX3VzYWdlKTsKIAlpZiAoIWNhY2hlZCkgewogCQlzZXR1cF93b3JrX3RyZWUoKTsKLQkJaWYgKHJlYWRfY2FjaGVfcHJlbG9hZChyZXYuZGlmZm9wdC5wYXRoc3BlYy5yYXcpIDwgMCkgeworCQlpZiAocmVhZF9jYWNoZV9wcmVsb2FkKCZyZXYuZGlmZm9wdC5wYXRoc3BlYykgPCAwKSB7CiAJCQlwZXJyb3IoInJlYWRfY2FjaGVfcHJlbG9hZCIpOwogCQkJcmV0dXJuIC0xOwogCQl9CmRpZmYgLS1naXQgYS9idWlsdGluL2RpZmYuYyBiL2J1aWx0aW4vZGlmZi5jCmluZGV4IDlmYzI3M2QuLjBmMjQ3ZDIgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vZGlmZi5jCisrKyBiL2J1aWx0aW4vZGlmZi5jCkBAIC0xNiw2ICsxNiw5IEBACiAjaW5jbHVkZSAic3VibW9kdWxlLmgiCiAjaW5jbHVkZSAic2hhMS1hcnJheS5oIgogCisjZGVmaW5lIERJRkZfTk9fSU5ERVhfRVhQTElDSVQgMQorI2RlZmluZSBESUZGX05PX0lOREVYX0lNUExJQ0lUIDIKKwogc3RydWN0IGJsb2JpbmZvIHsKIAl1bnNpZ25lZCBjaGFyIHNoYTFbMjBdOwogCWNvbnN0IGNoYXIgKm5hbWU7CkBAIC02NCwxNSArNjcsMTggQEAKIAogc3RhdGljIGludCBidWlsdGluX2RpZmZfYl9mKHN0cnVjdCByZXZfaW5mbyAqcmV2cywKIAkJCSAgICBpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsCi0JCQkgICAgc3RydWN0IGJsb2JpbmZvICpibG9iLAotCQkJICAgIGNvbnN0IGNoYXIgKnBhdGgpCisJCQkgICAgc3RydWN0IGJsb2JpbmZvICpibG9iKQogewogCS8qIEJsb2IgdnMgZmlsZSBpbiB0aGUgd29ya2luZyB0cmVlKi8KIAlzdHJ1Y3Qgc3RhdCBzdDsKKwljb25zdCBjaGFyICpwYXRoOwogCiAJaWYgKGFyZ2MgPiAxKQogCQl1c2FnZShidWlsdGluX2RpZmZfdXNhZ2UpOwogCisJR1VBUkRfUEFUSFNQRUMoJnJldnMtPnBydW5lX2RhdGEsIFBBVEhTUEVDX0ZST01UT1AgfCBQQVRIU1BFQ19MSVRFUkFMKTsKKwlwYXRoID0gcmV2cy0+cHJ1bmVfZGF0YS5pdGVtc1swXS5tYXRjaDsKKwogCWlmIChsc3RhdChwYXRoLCAmc3QpKQogCQlkaWVfZXJybm8oXygiZmFpbGVkIHRvIHN0YXQgJyVzJyIpLCBwYXRoKTsKIAlpZiAoIShTX0lTUkVHKHN0LnN0X21vZGUpIHx8IFNfSVNMTksoc3Quc3RfbW9kZSkpKQpAQCAtMTQwLDcgKzE0Niw3IEBACiAJCXVzYWdlKGJ1aWx0aW5fZGlmZl91c2FnZSk7CiAJaWYgKCFjYWNoZWQpIHsKIAkJc2V0dXBfd29ya190cmVlKCk7Ci0JCWlmIChyZWFkX2NhY2hlX3ByZWxvYWQocmV2cy0+ZGlmZm9wdC5wYXRoc3BlYy5yYXcpIDwgMCkgeworCQlpZiAocmVhZF9jYWNoZV9wcmVsb2FkKCZyZXZzLT5kaWZmb3B0LnBhdGhzcGVjKSA8IDApIHsKIAkJCXBlcnJvcigicmVhZF9jYWNoZV9wcmVsb2FkIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTE2OSw3ICsxNzUsNyBAQAogCWlmIChlbnQxLT5pdGVtLT5mbGFncyAmIFVOSU5URVJFU1RJTkcpCiAJCXN3YXAgPSAxOwogCXNoYTFbc3dhcF0gPSBlbnQwLT5pdGVtLT5zaGExOwotCXNoYTFbMS1zd2FwXSA9IGVudDEtPml0ZW0tPnNoYTE7CisJc2hhMVsxIC0gc3dhcF0gPSBlbnQxLT5pdGVtLT5zaGExOwogCWRpZmZfdHJlZV9zaGExKHNoYTFbMF0sIHNoYTFbMV0sICIiLCAmcmV2cy0+ZGlmZm9wdCk7CiAJbG9nX3RyZWVfZGlmZl9mbHVzaChyZXZzKTsKIAlyZXR1cm4gMDsKQEAgLTI0Miw3ICsyNDgsNyBAQAogCQlyZXZzLT5jb21iaW5lX21lcmdlcyA9IHJldnMtPmRlbnNlX2NvbWJpbmVkX21lcmdlcyA9IDE7CiAKIAlzZXR1cF93b3JrX3RyZWUoKTsKLQlpZiAocmVhZF9jYWNoZV9wcmVsb2FkKHJldnMtPmRpZmZvcHQucGF0aHNwZWMucmF3KSA8IDApIHsKKwlpZiAocmVhZF9jYWNoZV9wcmVsb2FkKCZyZXZzLT5kaWZmb3B0LnBhdGhzcGVjKSA8IDApIHsKIAkJcGVycm9yKCJyZWFkX2NhY2hlX3ByZWxvYWQiKTsKIAkJcmV0dXJuIC0xOwogCX0KQEAgLTI1NSw5ICsyNjEsOCBAQAogCXN0cnVjdCByZXZfaW5mbyByZXY7CiAJc3RydWN0IG9iamVjdF9hcnJheSBlbnQgPSBPQkpFQ1RfQVJSQVlfSU5JVDsKIAlpbnQgYmxvYnMgPSAwLCBwYXRocyA9IDA7Ci0JY29uc3QgY2hhciAqcGF0aCA9IE5VTEw7CiAJc3RydWN0IGJsb2JpbmZvIGJsb2JbMl07Ci0JaW50IG5vbmdpdDsKKwlpbnQgbm9uZ2l0ID0gMCwgbm9faW5kZXggPSAwOwogCWludCByZXN1bHQgPSAwOwogCiAJLyoKQEAgLTI4MywxNCArMjg4LDU5IEBACiAJICogT3RoZXIgY2FzZXMgYXJlIGVycm9ycy4KIAkgKi8KIAotCXByZWZpeCA9IHNldHVwX2dpdF9kaXJlY3RvcnlfZ2VudGx5KCZub25naXQpOwotCWdpdG1vZHVsZXNfY29uZmlnKCk7CisJLyogV2VyZSB3ZSBhc2tlZCB0byBkbyAtLW5vLWluZGV4IGV4cGxpY2l0bHk/ICovCisJZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykgeworCQlpZiAoIXN0cmNtcChhcmd2W2ldLCAiLS0iKSkgeworCQkJaSsrOworCQkJYnJlYWs7CisJCX0KKwkJaWYgKCFzdHJjbXAoYXJndltpXSwgIi0tbm8taW5kZXgiKSkKKwkJCW5vX2luZGV4ID0gRElGRl9OT19JTkRFWF9FWFBMSUNJVDsKKwkJaWYgKGFyZ3ZbaV1bMF0gIT0gJy0nKQorCQkJYnJlYWs7CisJfQorCisJaWYgKCFub19pbmRleCkKKwkJcHJlZml4ID0gc2V0dXBfZ2l0X2RpcmVjdG9yeV9nZW50bHkoJm5vbmdpdCk7CisKKwkvKgorCSAqIFRyZWF0IGdpdCBkaWZmIHdpdGggYXQgbGVhc3Qgb25lIHBhdGggb3V0c2lkZSBvZiB0aGUKKwkgKiByZXBvIHRoZSBzYW1lIGFzIGlmIHRoZSBjb21tYW5kIHdvdWxkIGhhdmUgYmVlbiBleGVjdXRlZAorCSAqIG91dHNpZGUgb2YgYSBnaXQgcmVwb3NpdG9yeS4gIEluIHRoaXMgY2FzZSBpdCBiZWhhdmVzCisJICogdGhlIHNhbWUgd2F5IGFzICJnaXQgZGlmZiAtLW5vLWluZGV4IDxhPiA8Yj4iLCB3aGljaCBhY3RzCisJICogYXMgYSBjb2xvdXJmdWwgImRpZmYiIHJlcGxhY2VtZW50LgorCSAqLworCWlmIChub25naXQgfHwgKChhcmdjID09IGkgKyAyKSAmJgorCQkgICAgICAgKCFwYXRoX2luc2lkZV9yZXBvKHByZWZpeCwgYXJndltpXSkgfHwKKwkJCSFwYXRoX2luc2lkZV9yZXBvKHByZWZpeCwgYXJndltpICsgMV0pKSkpCisJCW5vX2luZGV4ID0gRElGRl9OT19JTkRFWF9JTVBMSUNJVDsKKworCWlmICghbm9faW5kZXgpCisJCWdpdG1vZHVsZXNfY29uZmlnKCk7CiAJZ2l0X2NvbmZpZyhnaXRfZGlmZl91aV9jb25maWcsIE5VTEwpOwogCiAJaW5pdF9yZXZpc2lvbnMoJnJldiwgcHJlZml4KTsKIAotCS8qIElmIHRoaXMgaXMgYSBuby1pbmRleCBkaWZmLCBqdXN0IHJ1biBpdCBhbmQgZXhpdCB0aGVyZS4gKi8KLQlkaWZmX25vX2luZGV4KCZyZXYsIGFyZ2MsIGFyZ3YsIG5vbmdpdCwgcHJlZml4KTsKKwlpZiAobm9faW5kZXggJiYgYXJnYyAhPSBpICsgMikgeworCQlpZiAobm9faW5kZXggPT0gRElGRl9OT19JTkRFWF9JTVBMSUNJVCkgeworCQkJLyoKKwkJCSAqIFRoZXJlIHdhcyBubyAtLW5vLWluZGV4IGFuZCB0aGVyZSB3ZXJlIG5vdCB0d28KKwkJCSAqIHBhdGhzLiBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB1c2VyIGludGVuZGVkCisJCQkgKiB0byBkbyBhbiBpbnNpZGUtcmVwb3NpdG9yeSBvcGVyYXRpb24uCisJCQkgKi8KKwkJCWZwcmludGYoc3RkZXJyLCAiTm90IGEgZ2l0IHJlcG9zaXRvcnlcbiIpOworCQkJZnByaW50ZihzdGRlcnIsCisJCQkJIlRvIGNvbXBhcmUgdHdvIHBhdGhzIG91dHNpZGUgYSB3b3JraW5nIHRyZWU6XG4iKTsKKwkJfQorCQkvKiBHaXZlIHRoZSB1c2FnZSBtZXNzYWdlIGZvciBub24tcmVwb3NpdG9yeSB1c2FnZSBhbmQgZXhpdC4gKi8KKwkJdXNhZ2VmKCJnaXQgZGlmZiAlcyA8cGF0aD4gPHBhdGg+IiwKKwkJICAgICAgIG5vX2luZGV4ID09IERJRkZfTk9fSU5ERVhfRVhQTElDSVQgPworCQkgICAgICAgIi0tbm8taW5kZXgiIDogIlstLW5vLWluZGV4XSIpOworCisJfQorCWlmIChub19pbmRleCkKKwkJLyogSWYgdGhpcyBpcyBhIG5vLWluZGV4IGRpZmYsIGp1c3QgcnVuIGl0IGFuZCBleGl0IHRoZXJlLiAqLworCQlkaWZmX25vX2luZGV4KCZyZXYsIGFyZ2MsIGFyZ3YsIHByZWZpeCk7CiAKIAkvKiBPdGhlcndpc2UsIHdlIGFyZSBkb2luZyB0aGUgdXN1YWwgImdpdCIgZGlmZiAqLwogCXJldi5kaWZmb3B0LnNraXBfc3RhdF91bm1hdGNoID0gISFkaWZmX2F1dG9fcmVmcmVzaF9pbmRleDsKQEAgLTM2NiwxMSArNDE2LDggQEAKIAkJCWRpZShfKCJ1bmhhbmRsZWQgb2JqZWN0ICclcycgZ2l2ZW4uIiksIG5hbWUpOwogCQl9CiAJfQotCWlmIChyZXYucHJ1bmVfZGF0YS5ucikgewotCQlpZiAoIXBhdGgpCi0JCQlwYXRoID0gcmV2LnBydW5lX2RhdGEuaXRlbXNbMF0ubWF0Y2g7CisJaWYgKHJldi5wcnVuZV9kYXRhLm5yKQogCQlwYXRocyArPSByZXYucHJ1bmVfZGF0YS5ucjsKLQl9CiAKIAkvKgogCSAqIE5vdywgZG8gdGhlIGFyZ3VtZW50cyBsb29rIHJlYXNvbmFibGU/CkBAIC0zODMsNyArNDMwLDcgQEAKIAkJY2FzZSAxOgogCQkJaWYgKHBhdGhzICE9IDEpCiAJCQkJdXNhZ2UoYnVpbHRpbl9kaWZmX3VzYWdlKTsKLQkJCXJlc3VsdCA9IGJ1aWx0aW5fZGlmZl9iX2YoJnJldiwgYXJnYywgYXJndiwgYmxvYiwgcGF0aCk7CisJCQlyZXN1bHQgPSBidWlsdGluX2RpZmZfYl9mKCZyZXYsIGFyZ2MsIGFyZ3YsIGJsb2IpOwogCQkJYnJlYWs7CiAJCWNhc2UgMjoKIAkJCWlmIChwYXRocykKZGlmZiAtLWdpdCBhL2J1aWx0aW4vZmFzdC1leHBvcnQuYyBiL2J1aWx0aW4vZmFzdC1leHBvcnQuYwppbmRleCA4ZTE5MDU4Li5iOGQ4YTNhIDEwMDY0NAotLS0gYS9idWlsdGluL2Zhc3QtZXhwb3J0LmMKKysrIGIvYnVpbHRpbi9mYXN0LWV4cG9ydC5jCkBAIC0zMCw2ICszMCw3IEBACiBzdGF0aWMgaW50IHVzZV9kb25lX2ZlYXR1cmU7CiBzdGF0aWMgaW50IG5vX2RhdGE7CiBzdGF0aWMgaW50IGZ1bGxfdHJlZTsKK3N0YXRpYyBzdHJ1Y3Qgc3RyaW5nX2xpc3QgZXh0cmFfcmVmcyA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CiAKIHN0YXRpYyBpbnQgcGFyc2Vfb3B0X3NpZ25lZF90YWdfbW9kZShjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsCiAJCQkJICAgICBjb25zdCBjaGFyICphcmcsIGludCB1bnNldCkKQEAgLTI4Niw3ICsyODcsNyBAQAogCiAJcmV2LT5kaWZmb3B0Lm91dHB1dF9mb3JtYXQgPSBESUZGX0ZPUk1BVF9DQUxMQkFDSzsKIAotCXBhcnNlX2NvbW1pdChjb21taXQpOworCXBhcnNlX2NvbW1pdF9vcl9kaWUoY29tbWl0KTsKIAlhdXRob3IgPSBzdHJzdHIoY29tbWl0LT5idWZmZXIsICJcbmF1dGhvciAiKTsKIAlpZiAoIWF1dGhvcikKIAkJZGllICgiQ291bGQgbm90IGZpbmQgYXV0aG9yIGluIGNvbW1pdCAlcyIsCkBAIC0zMDcsNyArMzA4LDcgQEAKIAlpZiAoY29tbWl0LT5wYXJlbnRzICYmCiAJICAgIGdldF9vYmplY3RfbWFyaygmY29tbWl0LT5wYXJlbnRzLT5pdGVtLT5vYmplY3QpICE9IDAgJiYKIAkgICAgIWZ1bGxfdHJlZSkgewotCQlwYXJzZV9jb21taXQoY29tbWl0LT5wYXJlbnRzLT5pdGVtKTsKKwkJcGFyc2VfY29tbWl0X29yX2RpZShjb21taXQtPnBhcmVudHMtPml0ZW0pOwogCQlkaWZmX3RyZWVfc2hhMShjb21taXQtPnBhcmVudHMtPml0ZW0tPnRyZWUtPm9iamVjdC5zaGExLAogCQkJICAgICAgIGNvbW1pdC0+dHJlZS0+b2JqZWN0LnNoYTEsICIiLCAmcmV2LT5kaWZmb3B0KTsKIAl9CkBAIC00NzUsNyArNDc2LDcgQEAKIAkJfQogCX0KIAotCWlmICghcHJlZml4Y21wKG5hbWUsICJyZWZzL3RhZ3MvIikpCisJaWYgKHN0YXJ0c193aXRoKG5hbWUsICJyZWZzL3RhZ3MvIikpCiAJCW5hbWUgKz0gMTA7CiAJcHJpbnRmKCJ0YWcgJXNcbmZyb20gOiVkXG4lLipzJXNkYXRhICVkXG4lLipzXG4iLAogCSAgICAgICBuYW1lLCB0YWdnZWRfbWFyaywKQEAgLTQ4NCwxMCArNDg1LDMyIEBACiAJICAgICAgIChpbnQpbWVzc2FnZV9zaXplLCAoaW50KW1lc3NhZ2Vfc2l6ZSwgbWVzc2FnZSA/IG1lc3NhZ2UgOiAiIik7CiB9CiAKLXN0YXRpYyB2b2lkIGdldF90YWdzX2FuZF9kdXBsaWNhdGVzKHN0cnVjdCByZXZfY21kbGluZV9pbmZvICppbmZvLAotCQkJCSAgICBzdHJ1Y3Qgc3RyaW5nX2xpc3QgKmV4dHJhX3JlZnMpCitzdGF0aWMgc3RydWN0IGNvbW1pdCAqZ2V0X2NvbW1pdChzdHJ1Y3QgcmV2X2NtZGxpbmVfZW50cnkgKmUsIGNoYXIgKmZ1bGxfbmFtZSkKIHsKLQlzdHJ1Y3QgdGFnICp0YWc7CisJc3dpdGNoIChlLT5pdGVtLT50eXBlKSB7CisJY2FzZSBPQkpfQ09NTUlUOgorCQlyZXR1cm4gKHN0cnVjdCBjb21taXQgKillLT5pdGVtOworCWNhc2UgT0JKX1RBRzogeworCQlzdHJ1Y3QgdGFnICp0YWcgPSAoc3RydWN0IHRhZyAqKWUtPml0ZW07CisKKwkJLyogaGFuZGxlIG5lc3RlZCB0YWdzICovCisJCXdoaWxlICh0YWcgJiYgdGFnLT5vYmplY3QudHlwZSA9PSBPQkpfVEFHKSB7CisJCQlwYXJzZV9vYmplY3QodGFnLT5vYmplY3Quc2hhMSk7CisJCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmV4dHJhX3JlZnMsIGZ1bGxfbmFtZSktPnV0aWwgPSB0YWc7CisJCQl0YWcgPSAoc3RydWN0IHRhZyAqKXRhZy0+dGFnZ2VkOworCQl9CisJCWlmICghdGFnKQorCQkJZGllKCJUYWcgJXMgcG9pbnRzIG5vd2hlcmU/IiwgZS0+bmFtZSk7CisJCXJldHVybiAoc3RydWN0IGNvbW1pdCAqKXRhZzsKKwkJYnJlYWs7CisJfQorCWRlZmF1bHQ6CisJCXJldHVybiBOVUxMOworCX0KK30KKworc3RhdGljIHZvaWQgZ2V0X3RhZ3NfYW5kX2R1cGxpY2F0ZXMoc3RydWN0IHJldl9jbWRsaW5lX2luZm8gKmluZm8pCit7CiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgaW5mby0+bnI7IGkrKykgewpAQCAtNTAyLDYwICs1MjUsNDUgQEAKIAkJaWYgKGR3aW1fcmVmKGUtPm5hbWUsIHN0cmxlbihlLT5uYW1lKSwgc2hhMSwgJmZ1bGxfbmFtZSkgIT0gMSkKIAkJCWNvbnRpbnVlOwogCi0JCXN3aXRjaCAoZS0+aXRlbS0+dHlwZSkgewotCQljYXNlIE9CSl9DT01NSVQ6Ci0JCQljb21taXQgPSAoc3RydWN0IGNvbW1pdCAqKWUtPml0ZW07Ci0JCQlicmVhazsKLQkJY2FzZSBPQkpfVEFHOgotCQkJdGFnID0gKHN0cnVjdCB0YWcgKillLT5pdGVtOwotCi0JCQkvKiBoYW5kbGUgbmVzdGVkIHRhZ3MgKi8KLQkJCXdoaWxlICh0YWcgJiYgdGFnLT5vYmplY3QudHlwZSA9PSBPQkpfVEFHKSB7Ci0JCQkJcGFyc2Vfb2JqZWN0KHRhZy0+b2JqZWN0LnNoYTEpOwotCQkJCXN0cmluZ19saXN0X2FwcGVuZChleHRyYV9yZWZzLCBmdWxsX25hbWUpLT51dGlsID0gdGFnOwotCQkJCXRhZyA9IChzdHJ1Y3QgdGFnICopdGFnLT50YWdnZWQ7Ci0JCQl9Ci0JCQlpZiAoIXRhZykKLQkJCQlkaWUgKCJUYWcgJXMgcG9pbnRzIG5vd2hlcmU/IiwgZS0+bmFtZSk7Ci0JCQlzd2l0Y2godGFnLT5vYmplY3QudHlwZSkgewotCQkJY2FzZSBPQkpfQ09NTUlUOgotCQkJCWNvbW1pdCA9IChzdHJ1Y3QgY29tbWl0ICopdGFnOwotCQkJCWJyZWFrOwotCQkJY2FzZSBPQkpfQkxPQjoKLQkJCQlleHBvcnRfYmxvYih0YWctPm9iamVjdC5zaGExKTsKLQkJCQljb250aW51ZTsKLQkJCWRlZmF1bHQ6IC8qIE9CSl9UQUcgKG5lc3RlZCB0YWdzKSBpcyBhbHJlYWR5IGhhbmRsZWQgKi8KLQkJCQl3YXJuaW5nKCJUYWcgcG9pbnRzIHRvIG9iamVjdCBvZiB1bmV4cGVjdGVkIHR5cGUgJXMsIHNraXBwaW5nLiIsCi0JCQkJCXR5cGVuYW1lKHRhZy0+b2JqZWN0LnR5cGUpKTsKLQkJCQljb250aW51ZTsKLQkJCX0KLQkJCWJyZWFrOwotCQlkZWZhdWx0OgorCQljb21taXQgPSBnZXRfY29tbWl0KGUsIGZ1bGxfbmFtZSk7CisJCWlmICghY29tbWl0KSB7CiAJCQl3YXJuaW5nKCIlczogVW5leHBlY3RlZCBvYmplY3Qgb2YgdHlwZSAlcywgc2tpcHBpbmcuIiwKIAkJCQllLT5uYW1lLAogCQkJCXR5cGVuYW1lKGUtPml0ZW0tPnR5cGUpKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJc3dpdGNoKGNvbW1pdC0+b2JqZWN0LnR5cGUpIHsKKwkJY2FzZSBPQkpfQ09NTUlUOgorCQkJYnJlYWs7CisJCWNhc2UgT0JKX0JMT0I6CisJCQlleHBvcnRfYmxvYihjb21taXQtPm9iamVjdC5zaGExKTsKKwkJCWNvbnRpbnVlOworCQlkZWZhdWx0OiAvKiBPQkpfVEFHIChuZXN0ZWQgdGFncykgaXMgYWxyZWFkeSBoYW5kbGVkICovCisJCQl3YXJuaW5nKCJUYWcgcG9pbnRzIHRvIG9iamVjdCBvZiB1bmV4cGVjdGVkIHR5cGUgJXMsIHNraXBwaW5nLiIsCisJCQkJdHlwZW5hbWUoY29tbWl0LT5vYmplY3QudHlwZSkpOworCQkJY29udGludWU7CisJCX0KKwogCQkvKgogCQkgKiBUaGlzIHJlZiB3aWxsIG5vdCBiZSB1cGRhdGVkIHRocm91Z2ggYSBjb21taXQsIGxldHMgbWFrZQogCQkgKiBzdXJlIGl0IGdldHMgcHJvcGVybHkgdXBkYXRlZCBldmVudHVhbGx5LgogCQkgKi8KIAkJaWYgKGNvbW1pdC0+dXRpbCB8fCBjb21taXQtPm9iamVjdC5mbGFncyAmIFNIT1dOKQotCQkJc3RyaW5nX2xpc3RfYXBwZW5kKGV4dHJhX3JlZnMsIGZ1bGxfbmFtZSktPnV0aWwgPSBjb21taXQ7CisJCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmV4dHJhX3JlZnMsIGZ1bGxfbmFtZSktPnV0aWwgPSBjb21taXQ7CiAJCWlmICghY29tbWl0LT51dGlsKQogCQkJY29tbWl0LT51dGlsID0gZnVsbF9uYW1lOwogCX0KIH0KIAotc3RhdGljIHZvaWQgaGFuZGxlX3RhZ3NfYW5kX2R1cGxpY2F0ZXMoc3RydWN0IHN0cmluZ19saXN0ICpleHRyYV9yZWZzKQorc3RhdGljIHZvaWQgaGFuZGxlX3RhZ3NfYW5kX2R1cGxpY2F0ZXModm9pZCkKIHsKIAlzdHJ1Y3QgY29tbWl0ICpjb21taXQ7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSBleHRyYV9yZWZzLT5uciAtIDE7IGkgPj0gMDsgaS0tKSB7Ci0JCWNvbnN0IGNoYXIgKm5hbWUgPSBleHRyYV9yZWZzLT5pdGVtc1tpXS5zdHJpbmc7Ci0JCXN0cnVjdCBvYmplY3QgKm9iamVjdCA9IGV4dHJhX3JlZnMtPml0ZW1zW2ldLnV0aWw7CisJZm9yIChpID0gZXh0cmFfcmVmcy5uciAtIDE7IGkgPj0gMDsgaS0tKSB7CisJCWNvbnN0IGNoYXIgKm5hbWUgPSBleHRyYV9yZWZzLml0ZW1zW2ldLnN0cmluZzsKKwkJc3RydWN0IG9iamVjdCAqb2JqZWN0ID0gZXh0cmFfcmVmcy5pdGVtc1tpXS51dGlsOwogCQlzd2l0Y2ggKG9iamVjdC0+dHlwZSkgewogCQljYXNlIE9CSl9UQUc6CiAJCQloYW5kbGVfdGFnKG5hbWUsIChzdHJ1Y3QgdGFnICopb2JqZWN0KTsKQEAgLTY1Nyw3ICs2NjUsNiBAQAogewogCXN0cnVjdCByZXZfaW5mbyByZXZzOwogCXN0cnVjdCBvYmplY3RfYXJyYXkgY29tbWl0cyA9IE9CSkVDVF9BUlJBWV9JTklUOwotCXN0cnVjdCBzdHJpbmdfbGlzdCBleHRyYV9yZWZzID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKIAlzdHJ1Y3QgY29tbWl0ICpjb21taXQ7CiAJY2hhciAqZXhwb3J0X2ZpbGVuYW1lID0gTlVMTCwgKmltcG9ydF9maWxlbmFtZSA9IE5VTEw7CiAJdWludDMyX3QgbGFzdGltcG9ydGlkOwpAQCAtNjc0LDExICs2ODEsMTEgQEAKIAkJCSAgICAgTl8oIkR1bXAgbWFya3MgdG8gdGhpcyBmaWxlIikpLAogCQlPUFRfU1RSSU5HKDAsICJpbXBvcnQtbWFya3MiLCAmaW1wb3J0X2ZpbGVuYW1lLCBOXygiZmlsZSIpLAogCQkJICAgICBOXygiSW1wb3J0IG1hcmtzIGZyb20gdGhpcyBmaWxlIikpLAotCQlPUFRfQk9PTEVBTigwLCAiZmFrZS1taXNzaW5nLXRhZ2dlciIsICZmYWtlX21pc3NpbmdfdGFnZ2VyLAotCQkJICAgICBOXygiRmFrZSBhIHRhZ2dlciB3aGVuIHRhZ3MgbGFjayBvbmUiKSksCi0JCU9QVF9CT09MRUFOKDAsICJmdWxsLXRyZWUiLCAmZnVsbF90cmVlLAotCQkJICAgICBOXygiT3V0cHV0IGZ1bGwgdHJlZSBmb3IgZWFjaCBjb21taXQiKSksCi0JCU9QVF9CT09MRUFOKDAsICJ1c2UtZG9uZS1mZWF0dXJlIiwgJnVzZV9kb25lX2ZlYXR1cmUsCisJCU9QVF9CT09MKDAsICJmYWtlLW1pc3NpbmctdGFnZ2VyIiwgJmZha2VfbWlzc2luZ190YWdnZXIsCisJCQkgTl8oIkZha2UgYSB0YWdnZXIgd2hlbiB0YWdzIGxhY2sgb25lIikpLAorCQlPUFRfQk9PTCgwLCAiZnVsbC10cmVlIiwgJmZ1bGxfdHJlZSwKKwkJCSBOXygiT3V0cHV0IGZ1bGwgdHJlZSBmb3IgZWFjaCBjb21taXQiKSksCisJCU9QVF9CT09MKDAsICJ1c2UtZG9uZS1mZWF0dXJlIiwgJnVzZV9kb25lX2ZlYXR1cmUsCiAJCQkgICAgIE5fKCJVc2UgdGhlIGRvbmUgZmVhdHVyZSB0byB0ZXJtaW5hdGUgdGhlIHN0cmVhbSIpKSwKIAkJT1BUX0JPT0woMCwgIm5vLWRhdGEiLCAmbm9fZGF0YSwgTl8oIlNraXAgb3V0cHV0IG9mIGJsb2IgZGF0YSIpKSwKIAkJT1BUX0VORCgpCkBAIC03MDksNyArNzE2LDcgQEAKIAlpZiAoaW1wb3J0X2ZpbGVuYW1lICYmIHJldnMucHJ1bmVfZGF0YS5ucikKIAkJZnVsbF90cmVlID0gMTsKIAotCWdldF90YWdzX2FuZF9kdXBsaWNhdGVzKCZyZXZzLmNtZGxpbmUsICZleHRyYV9yZWZzKTsKKwlnZXRfdGFnc19hbmRfZHVwbGljYXRlcygmcmV2cy5jbWRsaW5lKTsKIAogCWlmIChwcmVwYXJlX3JldmlzaW9uX3dhbGsoJnJldnMpKQogCQlkaWUoInJldmlzaW9uIHdhbGsgc2V0dXAgZmFpbGVkIik7CkBAIC03MjUsNyArNzMyLDcgQEAKIAkJfQogCX0KIAotCWhhbmRsZV90YWdzX2FuZF9kdXBsaWNhdGVzKCZleHRyYV9yZWZzKTsKKwloYW5kbGVfdGFnc19hbmRfZHVwbGljYXRlcygpOwogCiAJaWYgKGV4cG9ydF9maWxlbmFtZSAmJiBsYXN0aW1wb3J0aWQgIT0gbGFzdF9pZG51bSkKIAkJZXhwb3J0X21hcmtzKGV4cG9ydF9maWxlbmFtZSk7CmRpZmYgLS1naXQgYS9idWlsdGluL2ZldGNoLXBhY2suYyBiL2J1aWx0aW4vZmV0Y2gtcGFjay5jCmluZGV4IGFiYTQ0NjUuLjEyNjJiNDAgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vZmV0Y2gtcGFjay5jCisrKyBiL2J1aWx0aW4vZmV0Y2gtcGFjay5jCkBAIC0xLDE2ICsxLDI2IEBACiAjaW5jbHVkZSAiYnVpbHRpbi5oIgogI2luY2x1ZGUgInBrdC1saW5lLmgiCiAjaW5jbHVkZSAiZmV0Y2gtcGFjay5oIgorI2luY2x1ZGUgInJlbW90ZS5oIgorI2luY2x1ZGUgImNvbm5lY3QuaCIKKyNpbmNsdWRlICJzaGExLWFycmF5LmgiCiAKIHN0YXRpYyBjb25zdCBjaGFyIGZldGNoX3BhY2tfdXNhZ2VbXSA9CiAiZ2l0IGZldGNoLXBhY2sgWy0tYWxsXSBbLS1zdGRpbl0gWy0tcXVpZXR8LXFdIFstLWtlZXB8LWtdIFstLXRoaW5dICIKICJbLS1pbmNsdWRlLXRhZ10gWy0tdXBsb2FkLXBhY2s9PGdpdC11cGxvYWQtcGFjaz5dIFstLWRlcHRoPTxuPl0gIgotIlstLW5vLXByb2dyZXNzXSBbLXZdIFs8aG9zdD46XTxkaXJlY3Rvcnk+IFs8cmVmcz4uLi5dIjsKKyJbLS1uby1wcm9ncmVzc10gWy0tZGlhZy11cmxdIFstdl0gWzxob3N0PjpdPGRpcmVjdG9yeT4gWzxyZWZzPi4uLl0iOwogCiBzdGF0aWMgdm9pZCBhZGRfc291Z2h0X2VudHJ5X21lbShzdHJ1Y3QgcmVmICoqKnNvdWdodCwgaW50ICpuciwgaW50ICphbGxvYywKIAkJCQkgY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVsZW4pCiB7CiAJc3RydWN0IHJlZiAqcmVmID0geGNhbGxvYygxLCBzaXplb2YoKnJlZikgKyBuYW1lbGVuICsgMSk7CisJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKKworCWlmIChuYW1lbGVuID4gNDEgJiYgbmFtZVs0MF0gPT0gJyAnICYmICFnZXRfc2hhMV9oZXgobmFtZSwgc2hhMSkpIHsKKwkJaGFzaGNweShyZWYtPm9sZF9zaGExLCBzaGExKTsKKwkJbmFtZSArPSA0MTsKKwkJbmFtZWxlbiAtPSA0MTsKKwl9CiAKIAltZW1jcHkocmVmLT5uYW1lLCBuYW1lLCBuYW1lbGVuKTsKIAlyZWYtPm5hbWVbbmFtZWxlbl0gPSAnXDAnOwpAQCAtMzcsNiArNDcsNyBAQAogCWNoYXIgKipwYWNrX2xvY2tmaWxlX3B0ciA9IE5VTEw7CiAJc3RydWN0IGNoaWxkX3Byb2Nlc3MgKmNvbm47CiAJc3RydWN0IGZldGNoX3BhY2tfYXJncyBhcmdzOworCXN0cnVjdCBzaGExX2FycmF5IHNoYWxsb3cgPSBTSEExX0FSUkFZX0lOSVQ7CiAKIAlwYWNrZXRfdHJhY2VfaWRlbnRpdHkoImZldGNoLXBhY2siKTsKIApAQCAtNDYsMTEgKzU3LDExIEBACiAJZm9yIChpID0gMTsgaSA8IGFyZ2MgJiYgKmFyZ3ZbaV0gPT0gJy0nOyBpKyspIHsKIAkJY29uc3QgY2hhciAqYXJnID0gYXJndltpXTsKIAotCQlpZiAoIXByZWZpeGNtcChhcmcsICItLXVwbG9hZC1wYWNrPSIpKSB7CisJCWlmIChzdGFydHNfd2l0aChhcmcsICItLXVwbG9hZC1wYWNrPSIpKSB7CiAJCQlhcmdzLnVwbG9hZHBhY2sgPSBhcmcgKyAxNDsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWlmICghcHJlZml4Y21wKGFyZywgIi0tZXhlYz0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1leGVjPSIpKSB7CiAJCQlhcmdzLnVwbG9hZHBhY2sgPSBhcmcgKyA3OwogCQkJY29udGludWU7CiAJCX0KQEAgLTc5LDExICs5MCwxNSBAQAogCQkJYXJncy5zdGRpbl9yZWZzID0gMTsKIAkJCWNvbnRpbnVlOwogCQl9CisJCWlmICghc3RyY21wKCItLWRpYWctdXJsIiwgYXJnKSkgeworCQkJYXJncy5kaWFnX3VybCA9IDE7CisJCQljb250aW51ZTsKKwkJfQogCQlpZiAoIXN0cmNtcCgiLXYiLCBhcmcpKSB7CiAJCQlhcmdzLnZlcmJvc2UgPSAxOwogCQkJY29udGludWU7CiAJCX0KLQkJaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1kZXB0aD0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1kZXB0aD0iKSkgewogCQkJYXJncy5kZXB0aCA9IHN0cnRvbChhcmcgKyA4LCBOVUxMLCAwKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC0xMDAsNiArMTE1LDE4IEBACiAJCQlwYWNrX2xvY2tmaWxlX3B0ciA9ICZwYWNrX2xvY2tmaWxlOwogCQkJY29udGludWU7CiAJCX0KKwkJaWYgKCFzdHJjbXAoIi0tY2hlY2stc2VsZi1jb250YWluZWQtYW5kLWNvbm5lY3RlZCIsIGFyZykpIHsKKwkJCWFyZ3MuY2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCA9IDE7CisJCQljb250aW51ZTsKKwkJfQorCQlpZiAoIXN0cmNtcCgiLS1jbG9uaW5nIiwgYXJnKSkgeworCQkJYXJncy5jbG9uaW5nID0gMTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICghc3RyY21wKCItLXVwZGF0ZS1zaGFsbG93IiwgYXJnKSkgeworCQkJYXJncy51cGRhdGVfc2hhbGxvdyA9IDE7CisJCQljb250aW51ZTsKKwkJfQogCQl1c2FnZShmZXRjaF9wYWNrX3VzYWdlKTsKIAl9CiAKQEAgLTE0MCwxOCArMTY3LDI3IEBACiAJCWZkWzBdID0gMDsKIAkJZmRbMV0gPSAxOwogCX0gZWxzZSB7CisJCWludCBmbGFncyA9IGFyZ3MudmVyYm9zZSA/IENPTk5FQ1RfVkVSQk9TRSA6IDA7CisJCWlmIChhcmdzLmRpYWdfdXJsKQorCQkJZmxhZ3MgfD0gQ09OTkVDVF9ESUFHX1VSTDsKIAkJY29ubiA9IGdpdF9jb25uZWN0KGZkLCBkZXN0LCBhcmdzLnVwbG9hZHBhY2ssCi0JCQkJICAgYXJncy52ZXJib3NlID8gQ09OTkVDVF9WRVJCT1NFIDogMCk7CisJCQkJICAgZmxhZ3MpOworCQlpZiAoIWNvbm4pCisJCQlyZXR1cm4gYXJncy5kaWFnX3VybCA/IDAgOiAxOwogCX0KKwlnZXRfcmVtb3RlX2hlYWRzKGZkWzBdLCBOVUxMLCAwLCAmcmVmLCAwLCBOVUxMLCAmc2hhbGxvdyk7CiAKLQlnZXRfcmVtb3RlX2hlYWRzKGZkWzBdLCBOVUxMLCAwLCAmcmVmLCAwLCBOVUxMKTsKLQotCXJlZiA9IGZldGNoX3BhY2soJmFyZ3MsIGZkLCBjb25uLCByZWYsIGRlc3QsCi0JCQkgc291Z2h0LCBucl9zb3VnaHQsIHBhY2tfbG9ja2ZpbGVfcHRyKTsKKwlyZWYgPSBmZXRjaF9wYWNrKCZhcmdzLCBmZCwgY29ubiwgcmVmLCBkZXN0LCBzb3VnaHQsIG5yX3NvdWdodCwKKwkJCSAmc2hhbGxvdywgcGFja19sb2NrZmlsZV9wdHIpOwogCWlmIChwYWNrX2xvY2tmaWxlKSB7CiAJCXByaW50ZigibG9jayAlc1xuIiwgcGFja19sb2NrZmlsZSk7CiAJCWZmbHVzaChzdGRvdXQpOwogCX0KKwlpZiAoYXJncy5jaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkICYmCisJICAgIGFyZ3Muc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCkgeworCQlwcmludGYoImNvbm5lY3Rpdml0eS1va1xuIik7CisJCWZmbHVzaChzdGRvdXQpOworCX0KIAljbG9zZShmZFswXSk7CiAJY2xvc2UoZmRbMV0pOwogCWlmIChmaW5pc2hfY29ubmVjdChjb25uKSkKZGlmZiAtLWdpdCBhL2J1aWx0aW4vZmV0Y2guYyBiL2J1aWx0aW4vZmV0Y2guYwppbmRleCA1NjQ3MDU1Li4wMjViYzNlIDEwMDY0NAotLS0gYS9idWlsdGluL2ZldGNoLmMKKysrIGIvYnVpbHRpbi9mZXRjaC5jCkBAIC0zMCw5ICszMCwxMyBAQAogCVRBR1NfU0VUID0gMgogfTsKIAotc3RhdGljIGludCBhbGwsIGFwcGVuZCwgZHJ5X3J1biwgZm9yY2UsIGtlZXAsIG11bHRpcGxlLCBwcnVuZSwgdXBkYXRlX2hlYWRfb2ssIHZlcmJvc2l0eTsKK3N0YXRpYyBpbnQgZmV0Y2hfcHJ1bmVfY29uZmlnID0gLTE7IC8qIHVuc3BlY2lmaWVkICovCitzdGF0aWMgaW50IHBydW5lID0gLTE7IC8qIHVuc3BlY2lmaWVkICovCisjZGVmaW5lIFBSVU5FX0JZX0RFRkFVTFQgMCAvKiBkbyB3ZSBwcnVuZSBieSBkZWZhdWx0PyAqLworCitzdGF0aWMgaW50IGFsbCwgYXBwZW5kLCBkcnlfcnVuLCBmb3JjZSwga2VlcCwgbXVsdGlwbGUsIHVwZGF0ZV9oZWFkX29rLCB2ZXJib3NpdHk7CiBzdGF0aWMgaW50IHByb2dyZXNzID0gLTEsIHJlY3Vyc2Vfc3VibW9kdWxlcyA9IFJFQ1VSU0VfU1VCTU9EVUxFU19ERUZBVUxUOwotc3RhdGljIGludCB0YWdzID0gVEFHU19ERUZBVUxULCB1bnNoYWxsb3c7CitzdGF0aWMgaW50IHRhZ3MgPSBUQUdTX0RFRkFVTFQsIHVuc2hhbGxvdywgdXBkYXRlX3NoYWxsb3c7CiBzdGF0aWMgY29uc3QgY2hhciAqZGVwdGg7CiBzdGF0aWMgY29uc3QgY2hhciAqdXBsb2FkX3BhY2s7CiBzdGF0aWMgc3RydWN0IHN0cmJ1ZiBkZWZhdWx0X3JsYSA9IFNUUkJVRl9JTklUOwpAQCAtNDAsNiArNDQsNyBAQAogc3RhdGljIHN0cnVjdCB0cmFuc3BvcnQgKmdzZWNvbmRhcnk7CiBzdGF0aWMgY29uc3QgY2hhciAqc3VibW9kdWxlX3ByZWZpeCA9ICIiOwogc3RhdGljIGNvbnN0IGNoYXIgKnJlY3Vyc2Vfc3VibW9kdWxlc19kZWZhdWx0Oworc3RhdGljIGludCBzaG93bl91cmwgPSAwOwogCiBzdGF0aWMgaW50IG9wdGlvbl9wYXJzZV9yZWN1cnNlX3N1Ym1vZHVsZXMoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LAogCQkJCSAgIGNvbnN0IGNoYXIgKmFyZywgaW50IHVuc2V0KQpAQCAtNTUsMzAgKzYwLDM5IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgZ2l0X2ZldGNoX2NvbmZpZyhjb25zdCBjaGFyICprLCBjb25zdCBjaGFyICp2LCB2b2lkICpjYikKK3sKKwlpZiAoIXN0cmNtcChrLCAiZmV0Y2gucHJ1bmUiKSkgeworCQlmZXRjaF9wcnVuZV9jb25maWcgPSBnaXRfY29uZmlnX2Jvb2woaywgdik7CisJCXJldHVybiAwOworCX0KKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIHN0cnVjdCBvcHRpb24gYnVpbHRpbl9mZXRjaF9vcHRpb25zW10gPSB7CiAJT1BUX19WRVJCT1NJVFkoJnZlcmJvc2l0eSksCi0JT1BUX0JPT0xFQU4oMCwgImFsbCIsICZhbGwsCi0JCSAgICBOXygiZmV0Y2ggZnJvbSBhbGwgcmVtb3RlcyIpKSwKLQlPUFRfQk9PTEVBTignYScsICJhcHBlbmQiLCAmYXBwZW5kLAotCQkgICAgTl8oImFwcGVuZCB0byAuZ2l0L0ZFVENIX0hFQUQgaW5zdGVhZCBvZiBvdmVyd3JpdGluZyIpKSwKKwlPUFRfQk9PTCgwLCAiYWxsIiwgJmFsbCwKKwkJIE5fKCJmZXRjaCBmcm9tIGFsbCByZW1vdGVzIikpLAorCU9QVF9CT09MKCdhJywgImFwcGVuZCIsICZhcHBlbmQsCisJCSBOXygiYXBwZW5kIHRvIC5naXQvRkVUQ0hfSEVBRCBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIikpLAogCU9QVF9TVFJJTkcoMCwgInVwbG9hZC1wYWNrIiwgJnVwbG9hZF9wYWNrLCBOXygicGF0aCIpLAogCQkgICBOXygicGF0aCB0byB1cGxvYWQgcGFjayBvbiByZW1vdGUgZW5kIikpLAogCU9QVF9fRk9SQ0UoJmZvcmNlLCBOXygiZm9yY2Ugb3ZlcndyaXRlIG9mIGxvY2FsIGJyYW5jaCIpKSwKLQlPUFRfQk9PTEVBTignbScsICJtdWx0aXBsZSIsICZtdWx0aXBsZSwKLQkJICAgIE5fKCJmZXRjaCBmcm9tIG11bHRpcGxlIHJlbW90ZXMiKSksCisJT1BUX0JPT0woJ20nLCAibXVsdGlwbGUiLCAmbXVsdGlwbGUsCisJCSBOXygiZmV0Y2ggZnJvbSBtdWx0aXBsZSByZW1vdGVzIikpLAogCU9QVF9TRVRfSU5UKCd0JywgInRhZ3MiLCAmdGFncywKIAkJICAgIE5fKCJmZXRjaCBhbGwgdGFncyBhbmQgYXNzb2NpYXRlZCBvYmplY3RzIiksIFRBR1NfU0VUKSwKIAlPUFRfU0VUX0lOVCgnbicsIE5VTEwsICZ0YWdzLAogCQkgICAgTl8oImRvIG5vdCBmZXRjaCBhbGwgdGFncyAoLS1uby10YWdzKSIpLCBUQUdTX1VOU0VUKSwKLQlPUFRfQk9PTEVBTigncCcsICJwcnVuZSIsICZwcnVuZSwKLQkJICAgIE5fKCJwcnVuZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMgbm8gbG9uZ2VyIG9uIHJlbW90ZSIpKSwKKwlPUFRfQk9PTCgncCcsICJwcnVuZSIsICZwcnVuZSwKKwkJIE5fKCJwcnVuZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMgbm8gbG9uZ2VyIG9uIHJlbW90ZSIpKSwKIAl7IE9QVElPTl9DQUxMQkFDSywgMCwgInJlY3Vyc2Utc3VibW9kdWxlcyIsIE5VTEwsIE5fKCJvbi1kZW1hbmQiKSwKIAkJICAgIE5fKCJjb250cm9sIHJlY3Vyc2l2ZSBmZXRjaGluZyBvZiBzdWJtb2R1bGVzIiksCiAJCSAgICBQQVJTRV9PUFRfT1BUQVJHLCBvcHRpb25fcGFyc2VfcmVjdXJzZV9zdWJtb2R1bGVzIH0sCi0JT1BUX0JPT0xFQU4oMCwgImRyeS1ydW4iLCAmZHJ5X3J1biwKLQkJICAgIE5fKCJkcnkgcnVuIikpLAotCU9QVF9CT09MRUFOKCdrJywgImtlZXAiLCAma2VlcCwgTl8oImtlZXAgZG93bmxvYWRlZCBwYWNrIikpLAotCU9QVF9CT09MRUFOKCd1JywgInVwZGF0ZS1oZWFkLW9rIiwgJnVwZGF0ZV9oZWFkX29rLAorCU9QVF9CT09MKDAsICJkcnktcnVuIiwgJmRyeV9ydW4sCisJCSBOXygiZHJ5IHJ1biIpKSwKKwlPUFRfQk9PTCgnaycsICJrZWVwIiwgJmtlZXAsIE5fKCJrZWVwIGRvd25sb2FkZWQgcGFjayIpKSwKKwlPUFRfQk9PTCgndScsICJ1cGRhdGUtaGVhZC1vayIsICZ1cGRhdGVfaGVhZF9vaywKIAkJICAgIE5fKCJhbGxvdyB1cGRhdGluZyBvZiBIRUFEIHJlZiIpKSwKIAlPUFRfQk9PTCgwLCAicHJvZ3Jlc3MiLCAmcHJvZ3Jlc3MsIE5fKCJmb3JjZSBwcm9ncmVzcyByZXBvcnRpbmciKSksCiAJT1BUX1NUUklORygwLCAiZGVwdGgiLCAmZGVwdGgsIE5fKCJkZXB0aCIpLApAQCAtOTEsNiArMTA1LDggQEAKIAl7IE9QVElPTl9TVFJJTkcsIDAsICJyZWN1cnNlLXN1Ym1vZHVsZXMtZGVmYXVsdCIsCiAJCSAgICZyZWN1cnNlX3N1Ym1vZHVsZXNfZGVmYXVsdCwgTlVMTCwKIAkJICAgTl8oImRlZmF1bHQgbW9kZSBmb3IgcmVjdXJzaW9uIiksIFBBUlNFX09QVF9ISURERU4gfSwKKwlPUFRfQk9PTCgwLCAidXBkYXRlLXNoYWxsb3ciLCAmdXBkYXRlX3NoYWxsb3csCisJCSBOXygiYWNjZXB0IHJlZnMgdGhhdCB1cGRhdGUgLmdpdC9zaGFsbG93IikpLAogCU9QVF9FTkQoKQogfTsKIApAQCAtMTQ3LDQ4ICsxNjMsMTU2IEBACiAJfQogfQogCitzdGF0aWMgaW50IGFkZF9leGlzdGluZyhjb25zdCBjaGFyICpyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAorCQkJaW50IGZsYWcsIHZvaWQgKmNiZGF0YSkKK3sKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgKmxpc3QgPSAoc3RydWN0IHN0cmluZ19saXN0ICopY2JkYXRhOworCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtID0gc3RyaW5nX2xpc3RfaW5zZXJ0KGxpc3QsIHJlZm5hbWUpOworCWl0ZW0tPnV0aWwgPSB4bWFsbG9jKDIwKTsKKwloYXNoY3B5KGl0ZW0tPnV0aWwsIHNoYTEpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHdpbGxfZmV0Y2goc3RydWN0IHJlZiAqKmhlYWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEpCit7CisJc3RydWN0IHJlZiAqcm0gPSAqaGVhZDsKKwl3aGlsZSAocm0pIHsKKwkJaWYgKCFoYXNoY21wKHJtLT5vbGRfc2hhMSwgc2hhMSkpCisJCQlyZXR1cm4gMTsKKwkJcm0gPSBybS0+bmV4dDsKKwl9CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyB2b2lkIGZpbmRfbm9uX2xvY2FsX3RhZ3Moc3RydWN0IHRyYW5zcG9ydCAqdHJhbnNwb3J0LAogCQkJc3RydWN0IHJlZiAqKmhlYWQsCi0JCQlzdHJ1Y3QgcmVmICoqKnRhaWwpOworCQkJc3RydWN0IHJlZiAqKip0YWlsKQoreworCXN0cnVjdCBzdHJpbmdfbGlzdCBleGlzdGluZ19yZWZzID0gU1RSSU5HX0xJU1RfSU5JVF9EVVA7CisJc3RydWN0IHN0cmluZ19saXN0IHJlbW90ZV9yZWZzID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKKwljb25zdCBzdHJ1Y3QgcmVmICpyZWY7CisJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW0gPSBOVUxMOworCisJZm9yX2VhY2hfcmVmKGFkZF9leGlzdGluZywgJmV4aXN0aW5nX3JlZnMpOworCWZvciAocmVmID0gdHJhbnNwb3J0X2dldF9yZW1vdGVfcmVmcyh0cmFuc3BvcnQpOyByZWY7IHJlZiA9IHJlZi0+bmV4dCkgeworCQlpZiAoIXN0YXJ0c193aXRoKHJlZi0+bmFtZSwgInJlZnMvdGFncy8iKSkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIFRoZSBwZWVsZWQgcmVmIGFsd2F5cyBmb2xsb3dzIHRoZSBtYXRjaGluZyBiYXNlCisJCSAqIHJlZiwgc28gaWYgd2Ugc2VlIGEgcGVlbGVkIHJlZiB0aGF0IHdlIGRvbid0IHdhbnQKKwkJICogdG8gZmV0Y2ggdGhlbiB3ZSBjYW4gbWFyayB0aGUgcmVmIGVudHJ5IGluIHRoZSBsaXN0CisJCSAqIGFzIG9uZSB0byBpZ25vcmUgYnkgc2V0dGluZyB1dGlsIHRvIE5VTEwuCisJCSAqLworCQlpZiAoZW5kc193aXRoKHJlZi0+bmFtZSwgIl57fSIpKSB7CisJCQlpZiAoaXRlbSAmJiAhaGFzX3NoYTFfZmlsZShyZWYtPm9sZF9zaGExKSAmJgorCQkJICAgICF3aWxsX2ZldGNoKGhlYWQsIHJlZi0+b2xkX3NoYTEpICYmCisJCQkgICAgIWhhc19zaGExX2ZpbGUoaXRlbS0+dXRpbCkgJiYKKwkJCSAgICAhd2lsbF9mZXRjaChoZWFkLCBpdGVtLT51dGlsKSkKKwkJCQlpdGVtLT51dGlsID0gTlVMTDsKKwkJCWl0ZW0gPSBOVUxMOworCQkJY29udGludWU7CisJCX0KKworCQkvKgorCQkgKiBJZiBpdGVtIGlzIG5vbi1OVUxMIGhlcmUsIHRoZW4gd2UgcHJldmlvdXNseSBzYXcgYQorCQkgKiByZWYgbm90IGZvbGxvd2VkIGJ5IGEgcGVlbGVkIHJlZmVyZW5jZSwgc28gd2UgbmVlZAorCQkgKiB0byBjaGVjayBpZiBpdCBpcyBhIGxpZ2h0d2VpZ2h0IHRhZyB0aGF0IHdlIHdhbnQgdG8KKwkJICogZmV0Y2guCisJCSAqLworCQlpZiAoaXRlbSAmJiAhaGFzX3NoYTFfZmlsZShpdGVtLT51dGlsKSAmJgorCQkgICAgIXdpbGxfZmV0Y2goaGVhZCwgaXRlbS0+dXRpbCkpCisJCQlpdGVtLT51dGlsID0gTlVMTDsKKworCQlpdGVtID0gTlVMTDsKKworCQkvKiBza2lwIGR1cGxpY2F0ZXMgYW5kIHJlZnMgdGhhdCB3ZSBhbHJlYWR5IGhhdmUgKi8KKwkJaWYgKHN0cmluZ19saXN0X2hhc19zdHJpbmcoJnJlbW90ZV9yZWZzLCByZWYtPm5hbWUpIHx8CisJCSAgICBzdHJpbmdfbGlzdF9oYXNfc3RyaW5nKCZleGlzdGluZ19yZWZzLCByZWYtPm5hbWUpKQorCQkJY29udGludWU7CisKKwkJaXRlbSA9IHN0cmluZ19saXN0X2luc2VydCgmcmVtb3RlX3JlZnMsIHJlZi0+bmFtZSk7CisJCWl0ZW0tPnV0aWwgPSAodm9pZCAqKXJlZi0+b2xkX3NoYTE7CisJfQorCXN0cmluZ19saXN0X2NsZWFyKCZleGlzdGluZ19yZWZzLCAxKTsKKworCS8qCisJICogV2UgbWF5IGhhdmUgYSBmaW5hbCBsaWdodHdlaWdodCB0YWcgdGhhdCBuZWVkcyB0byBiZQorCSAqIGNoZWNrZWQgdG8gc2VlIGlmIGl0IG5lZWRzIGZldGNoaW5nLgorCSAqLworCWlmIChpdGVtICYmICFoYXNfc2hhMV9maWxlKGl0ZW0tPnV0aWwpICYmCisJICAgICF3aWxsX2ZldGNoKGhlYWQsIGl0ZW0tPnV0aWwpKQorCQlpdGVtLT51dGlsID0gTlVMTDsKKworCS8qCisJICogRm9yIGFsbCB0aGUgdGFncyBpbiB0aGUgcmVtb3RlX3JlZnMgc3RyaW5nIGxpc3QsCisJICogYWRkIHRoZW0gdG8gdGhlIGxpc3Qgb2YgcmVmcyB0byBiZSBmZXRjaGVkCisJICovCisJZm9yX2VhY2hfc3RyaW5nX2xpc3RfaXRlbShpdGVtLCAmcmVtb3RlX3JlZnMpIHsKKwkJLyogVW5sZXNzIHdlIGhhdmUgYWxyZWFkeSBkZWNpZGVkIHRvIGlnbm9yZSB0aGlzIGl0ZW0uLi4gKi8KKwkJaWYgKGl0ZW0tPnV0aWwpCisJCXsKKwkJCXN0cnVjdCByZWYgKnJtID0gYWxsb2NfcmVmKGl0ZW0tPnN0cmluZyk7CisJCQlybS0+cGVlcl9yZWYgPSBhbGxvY19yZWYoaXRlbS0+c3RyaW5nKTsKKwkJCWhhc2hjcHkocm0tPm9sZF9zaGExLCBpdGVtLT51dGlsKTsKKwkJCSoqdGFpbCA9IHJtOworCQkJKnRhaWwgPSAmcm0tPm5leHQ7CisJCX0KKwl9CisKKwlzdHJpbmdfbGlzdF9jbGVhcigmcmVtb3RlX3JlZnMsIDApOworfQogCiBzdGF0aWMgc3RydWN0IHJlZiAqZ2V0X3JlZl9tYXAoc3RydWN0IHRyYW5zcG9ydCAqdHJhbnNwb3J0LAotCQkJICAgICAgIHN0cnVjdCByZWZzcGVjICpyZWZzLCBpbnQgcmVmX2NvdW50LCBpbnQgdGFncywKLQkJCSAgICAgICBpbnQgKmF1dG90YWdzKQorCQkJICAgICAgIHN0cnVjdCByZWZzcGVjICpyZWZzcGVjcywgaW50IHJlZnNwZWNfY291bnQsCisJCQkgICAgICAgaW50IHRhZ3MsIGludCAqYXV0b3RhZ3MpCiB7CiAJaW50IGk7CiAJc3RydWN0IHJlZiAqcm07CiAJc3RydWN0IHJlZiAqcmVmX21hcCA9IE5VTEw7CiAJc3RydWN0IHJlZiAqKnRhaWwgPSAmcmVmX21hcDsKIAorCS8qIG9wcG9ydHVuaXN0aWNhbGx5LXVwZGF0ZWQgcmVmZXJlbmNlczogKi8KKwlzdHJ1Y3QgcmVmICpvcmVmcyA9IE5VTEwsICoqb3JlZl90YWlsID0gJm9yZWZzOworCiAJY29uc3Qgc3RydWN0IHJlZiAqcmVtb3RlX3JlZnMgPSB0cmFuc3BvcnRfZ2V0X3JlbW90ZV9yZWZzKHRyYW5zcG9ydCk7CiAKLQlpZiAocmVmX2NvdW50IHx8IHRhZ3MgPT0gVEFHU19TRVQpIHsKLQkJc3RydWN0IHJlZiAqKm9sZF90YWlsOwotCi0JCWZvciAoaSA9IDA7IGkgPCByZWZfY291bnQ7IGkrKykgewotCQkJZ2V0X2ZldGNoX21hcChyZW1vdGVfcmVmcywgJnJlZnNbaV0sICZ0YWlsLCAwKTsKLQkJCWlmIChyZWZzW2ldLmRzdCAmJiByZWZzW2ldLmRzdFswXSkKKwlpZiAocmVmc3BlY19jb3VudCkgeworCQlmb3IgKGkgPSAwOyBpIDwgcmVmc3BlY19jb3VudDsgaSsrKSB7CisJCQlnZXRfZmV0Y2hfbWFwKHJlbW90ZV9yZWZzLCAmcmVmc3BlY3NbaV0sICZ0YWlsLCAwKTsKKwkJCWlmIChyZWZzcGVjc1tpXS5kc3QgJiYgcmVmc3BlY3NbaV0uZHN0WzBdKQogCQkJCSphdXRvdGFncyA9IDE7CiAJCX0KLQkJLyogTWVyZ2UgZXZlcnl0aGluZyBvbiB0aGUgY29tbWFuZCBsaW5lLCBidXQgbm90IC0tdGFncyAqLworCQkvKiBNZXJnZSBldmVyeXRoaW5nIG9uIHRoZSBjb21tYW5kIGxpbmUgKGJ1dCBub3QgLS10YWdzKSAqLwogCQlmb3IgKHJtID0gcmVmX21hcDsgcm07IHJtID0gcm0tPm5leHQpCiAJCQlybS0+ZmV0Y2hfaGVhZF9zdGF0dXMgPSBGRVRDSF9IRUFEX01FUkdFOwotCQlpZiAodGFncyA9PSBUQUdTX1NFVCkKLQkJCWdldF9mZXRjaF9tYXAocmVtb3RlX3JlZnMsIHRhZ19yZWZzcGVjLCAmdGFpbCwgMCk7CiAKIAkJLyoKLQkJICogRm9yIGFueSByZWZzIHRoYXQgd2UgaGFwcGVuIHRvIGJlIGZldGNoaW5nIHZpYSBjb21tYW5kLWxpbmUKLQkJICogYXJndW1lbnRzLCB0YWtlIHRoZSBvcHBvcnR1bml0eSB0byB1cGRhdGUgdGhlaXIgY29uZmlndXJlZAotCQkgKiBjb3VudGVycGFydHMuIEhvd2V2ZXIsIHdlIGRvIG5vdCB3YW50IHRvIG1lbnRpb24gdGhlc2UKLQkJICogZW50cmllcyBpbiBGRVRDSF9IRUFEIGF0IGFsbCwgYXMgdGhleSB3b3VsZCBzaW1wbHkgYmUKLQkJICogZHVwbGljYXRlcyBvZiBleGlzdGluZyBlbnRyaWVzLgorCQkgKiBGb3IgYW55IHJlZnMgdGhhdCB3ZSBoYXBwZW4gdG8gYmUgZmV0Y2hpbmcgdmlhCisJCSAqIGNvbW1hbmQtbGluZSBhcmd1bWVudHMsIHRoZSBkZXN0aW5hdGlvbiByZWYgbWlnaHQKKwkJICogaGF2ZSBiZWVuIG1pc3Npbmcgb3IgaGF2ZSBiZWVuIGRpZmZlcmVudCB0aGFuIHRoZQorCQkgKiByZW1vdGUtdHJhY2tpbmcgcmVmIHRoYXQgd291bGQgYmUgZGVyaXZlZCBmcm9tIHRoZQorCQkgKiBjb25maWd1cmVkIHJlZnNwZWMuICBJbiB0aGVzZSBjYXNlcywgd2Ugd2FudCB0bworCQkgKiB0YWtlIHRoZSBvcHBvcnR1bml0eSB0byB1cGRhdGUgdGhlaXIgY29uZmlndXJlZAorCQkgKiByZW1vdGUtdHJhY2tpbmcgcmVmZXJlbmNlLiAgSG93ZXZlciwgd2UgZG8gbm90IHdhbnQKKwkJICogdG8gbWVudGlvbiB0aGVzZSBlbnRyaWVzIGluIEZFVENIX0hFQUQgYXQgYWxsLCBhcworCQkgKiB0aGV5IHdvdWxkIHNpbXBseSBiZSBkdXBsaWNhdGVzIG9mIGV4aXN0aW5nCisJCSAqIGVudHJpZXMsIHNvIHdlIHNldCB0aGVtIEZFVENIX0hFQURfSUdOT1JFIGJlbG93LgorCQkgKgorCQkgKiBXZSBjb21wdXRlIHRoZXNlIGVudHJpZXMgbm93LCBiYXNlZCBvbmx5IG9uIHRoZQorCQkgKiByZWZzcGVjcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4gIEJ1dCB3ZSBhZGQKKwkJICogdGhlbSB0byB0aGUgbGlzdCBmb2xsb3dpbmcgdGhlIHJlZnNwZWNzIHJlc3VsdGluZworCQkgKiBmcm9tIHRoZSB0YWdzIG9wdGlvbiBzbyB0aGF0IG9uZSBvZiB0aGUgbGF0dGVyLAorCQkgKiB3aGljaCBoYXMgRkVUQ0hfSEVBRF9OT1RfRk9SX01FUkdFLCBpcyBub3QgcmVtb3ZlZAorCQkgKiBieSByZWZfcmVtb3ZlX2R1cGxpY2F0ZXMoKSBpbiBmYXZvciBvZiBvbmUgb2YgdGhlc2UKKwkJICogb3Bwb3J0dW5pc3RpYyBlbnRyaWVzIHdpdGggRkVUQ0hfSEVBRF9JR05PUkUuCiAJCSAqLwotCQlvbGRfdGFpbCA9IHRhaWw7CiAJCWZvciAoaSA9IDA7IGkgPCB0cmFuc3BvcnQtPnJlbW90ZS0+ZmV0Y2hfcmVmc3BlY19ucjsgaSsrKQogCQkJZ2V0X2ZldGNoX21hcChyZWZfbWFwLCAmdHJhbnNwb3J0LT5yZW1vdGUtPmZldGNoW2ldLAotCQkJCSAgICAgICZ0YWlsLCAxKTsKLQkJZm9yIChybSA9ICpvbGRfdGFpbDsgcm07IHJtID0gcm0tPm5leHQpCi0JCQlybS0+ZmV0Y2hfaGVhZF9zdGF0dXMgPSBGRVRDSF9IRUFEX0lHTk9SRTsKKwkJCQkgICAgICAmb3JlZl90YWlsLCAxKTsKKworCQlpZiAodGFncyA9PSBUQUdTX1NFVCkKKwkJCWdldF9mZXRjaF9tYXAocmVtb3RlX3JlZnMsIHRhZ19yZWZzcGVjLCAmdGFpbCwgMCk7CiAJfSBlbHNlIHsKIAkJLyogVXNlIHRoZSBkZWZhdWx0cyAqLwogCQlzdHJ1Y3QgcmVtb3RlICpyZW1vdGUgPSB0cmFuc3BvcnQtPnJlbW90ZTsKQEAgLTIyNSwxMSArMzQ5LDIxIEBACiAJCQl0YWlsID0gJnJlZl9tYXAtPm5leHQ7CiAJCX0KIAl9Ci0JaWYgKHRhZ3MgPT0gVEFHU19ERUZBVUxUICYmICphdXRvdGFncykKLQkJZmluZF9ub25fbG9jYWxfdGFncyh0cmFuc3BvcnQsICZyZWZfbWFwLCAmdGFpbCk7Ci0JcmVmX3JlbW92ZV9kdXBsaWNhdGVzKHJlZl9tYXApOwogCi0JcmV0dXJuIHJlZl9tYXA7CisJaWYgKHRhZ3MgPT0gVEFHU19TRVQpCisJCS8qIGFsc28gZmV0Y2ggYWxsIHRhZ3MgKi8KKwkJZ2V0X2ZldGNoX21hcChyZW1vdGVfcmVmcywgdGFnX3JlZnNwZWMsICZ0YWlsLCAwKTsKKwllbHNlIGlmICh0YWdzID09IFRBR1NfREVGQVVMVCAmJiAqYXV0b3RhZ3MpCisJCWZpbmRfbm9uX2xvY2FsX3RhZ3ModHJhbnNwb3J0LCAmcmVmX21hcCwgJnRhaWwpOworCisJLyogTm93IGFwcGVuZCBhbnkgcmVmcyB0byBiZSB1cGRhdGVkIG9wcG9ydHVuaXN0aWNhbGx5OiAqLworCSp0YWlsID0gb3JlZnM7CisJZm9yIChybSA9IG9yZWZzOyBybTsgcm0gPSBybS0+bmV4dCkgeworCQlybS0+ZmV0Y2hfaGVhZF9zdGF0dXMgPSBGRVRDSF9IRUFEX0lHTk9SRTsKKwkJdGFpbCA9ICZybS0+bmV4dDsKKwl9CisKKwlyZXR1cm4gcmVmX3JlbW92ZV9kdXBsaWNhdGVzKHJlZl9tYXApOwogfQogCiAjZGVmaW5lIFNUT1JFX1JFRl9FUlJPUl9PVEhFUiAxCkBAIC0yNDksNyArMzgzLDggQEAKIAkJcmxhID0gZGVmYXVsdF9ybGEuYnVmOwogCXNucHJpbnRmKG1zZywgc2l6ZW9mKG1zZyksICIlczogJXMiLCBybGEsIGFjdGlvbik7CiAJbG9jayA9IGxvY2tfYW55X3JlZl9mb3JfdXBkYXRlKHJlZi0+bmFtZSwKLQkJCQkgICAgICAgY2hlY2tfb2xkID8gcmVmLT5vbGRfc2hhMSA6IE5VTEwsIDApOworCQkJCSAgICAgICBjaGVja19vbGQgPyByZWYtPm9sZF9zaGExIDogTlVMTCwKKwkJCQkgICAgICAgMCwgTlVMTCk7CiAJaWYgKCFsb2NrKQogCQlyZXR1cm4gZXJybm8gPT0gRU5PVERJUiA/IFNUT1JFX1JFRl9FUlJPUl9ERl9DT05GTElDVCA6CiAJCQkJCSAgU1RPUkVfUkVGX0VSUk9SX09USEVSOwpAQCAtMjk5LDcgKzQzNCw3IEBACiAJfQogCiAJaWYgKCFpc19udWxsX3NoYTEocmVmLT5vbGRfc2hhMSkgJiYKLQkgICAgIXByZWZpeGNtcChyZWYtPm5hbWUsICJyZWZzL3RhZ3MvIikpIHsKKwkgICAgc3RhcnRzX3dpdGgocmVmLT5uYW1lLCAicmVmcy90YWdzLyIpKSB7CiAJCWludCByOwogCQlyID0gc191cGRhdGVfcmVmKCJ1cGRhdGluZyB0YWciLCByZWYsIDApOwogCQlzdHJidWZfYWRkZihkaXNwbGF5LCAiJWMgJS0qcyAlLSpzIC0+ICVzJXMiLApAQCAtMzIyLDEwICs0NTcsMTAgQEAKIAkJICogbW9yZSBsaWtlbHkgdG8gZm9sbG93IGEgc3RhbmRhcmQgbGF5b3V0LgogCQkgKi8KIAkJY29uc3QgY2hhciAqbmFtZSA9IHJlbW90ZV9yZWYgPyByZW1vdGVfcmVmLT5uYW1lIDogIiI7Ci0JCWlmICghcHJlZml4Y21wKG5hbWUsICJyZWZzL3RhZ3MvIikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKG5hbWUsICJyZWZzL3RhZ3MvIikpIHsKIAkJCW1zZyA9ICJzdG9yaW5nIHRhZyI7CiAJCQl3aGF0ID0gXygiW25ldyB0YWddIik7Ci0JCX0gZWxzZSBpZiAoIXByZWZpeGNtcChuYW1lLCAicmVmcy9oZWFkcy8iKSkgeworCQl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKG5hbWUsICJyZWZzL2hlYWRzLyIpKSB7CiAJCQltc2cgPSAic3RvcmluZyBoZWFkIjsKIAkJCXdoYXQgPSBfKCJbbmV3IGJyYW5jaF0iKTsKIAkJfSBlbHNlIHsKQEAgLTM5MSw2ICs1MjYsOCBAQAogCXN0cnVjdCByZWYgKipybSA9IGNiX2RhdGE7CiAJc3RydWN0IHJlZiAqcmVmID0gKnJtOwogCisJd2hpbGUgKHJlZiAmJiByZWYtPnN0YXR1cyA9PSBSRUZfU1RBVFVTX1JFSkVDVF9TSEFMTE9XKQorCQlyZWYgPSByZWYtPm5leHQ7CiAJaWYgKCFyZWYpCiAJCXJldHVybiAtMTsgLyogZW5kIG9mIHRoZSBsaXN0ICovCiAJKnJtID0gcmVmLT5uZXh0OwpAQCAtNDAzLDcgKzU0MCw3IEBACiB7CiAJRklMRSAqZnA7CiAJc3RydWN0IGNvbW1pdCAqY29tbWl0OwotCWludCB1cmxfbGVuLCBpLCBzaG93bl91cmwgPSAwLCByYyA9IDA7CisJaW50IHVybF9sZW4sIGksIHJjID0gMDsKIAlzdHJ1Y3Qgc3RyYnVmIG5vdGUgPSBTVFJCVUZfSU5JVDsKIAljb25zdCBjaGFyICp3aGF0LCAqa2luZDsKIAlzdHJ1Y3QgcmVmICpybTsKQEAgLTQzNyw2ICs1NzQsMTMgQEAKIAkJCXN0cnVjdCByZWYgKnJlZiA9IE5VTEw7CiAJCQljb25zdCBjaGFyICptZXJnZV9zdGF0dXNfbWFya2VyID0gIiI7CiAKKwkJCWlmIChybS0+c3RhdHVzID09IFJFRl9TVEFUVVNfUkVKRUNUX1NIQUxMT1cpIHsKKwkJCQlpZiAod2FudF9zdGF0dXMgPT0gRkVUQ0hfSEVBRF9NRVJHRSkKKwkJCQkJd2FybmluZyhfKCJyZWplY3QgJXMgYmVjYXVzZSBzaGFsbG93IHJvb3RzIGFyZSBub3QgYWxsb3dlZCB0byBiZSB1cGRhdGVkIiksCisJCQkJCQlybS0+cGVlcl9yZWYgPyBybS0+cGVlcl9yZWYtPm5hbWUgOiBybS0+bmFtZSk7CisJCQkJY29udGludWU7CisJCQl9CisKIAkJCWNvbW1pdCA9IGxvb2t1cF9jb21taXRfcmVmZXJlbmNlX2dlbnRseShybS0+b2xkX3NoYTEsIDEpOwogCQkJaWYgKCFjb21taXQpCiAJCQkJcm0tPmZldGNoX2hlYWRfc3RhdHVzID0gRkVUQ0hfSEVBRF9OT1RfRk9SX01FUkdFOwpAQCAtNDU3LDE1ICs2MDEsMTUgQEAKIAkJCQlraW5kID0gIiI7CiAJCQkJd2hhdCA9ICIiOwogCQkJfQotCQkJZWxzZSBpZiAoIXByZWZpeGNtcChybS0+bmFtZSwgInJlZnMvaGVhZHMvIikpIHsKKwkJCWVsc2UgaWYgKHN0YXJ0c193aXRoKHJtLT5uYW1lLCAicmVmcy9oZWFkcy8iKSkgewogCQkJCWtpbmQgPSAiYnJhbmNoIjsKIAkJCQl3aGF0ID0gcm0tPm5hbWUgKyAxMTsKIAkJCX0KLQkJCWVsc2UgaWYgKCFwcmVmaXhjbXAocm0tPm5hbWUsICJyZWZzL3RhZ3MvIikpIHsKKwkJCWVsc2UgaWYgKHN0YXJ0c193aXRoKHJtLT5uYW1lLCAicmVmcy90YWdzLyIpKSB7CiAJCQkJa2luZCA9ICJ0YWciOwogCQkJCXdoYXQgPSBybS0+bmFtZSArIDEwOwogCQkJfQotCQkJZWxzZSBpZiAoIXByZWZpeGNtcChybS0+bmFtZSwgInJlZnMvcmVtb3Rlcy8iKSkgeworCQkJZWxzZSBpZiAoc3RhcnRzX3dpdGgocm0tPm5hbWUsICJyZWZzL3JlbW90ZXMvIikpIHsKIAkJCQlraW5kID0gInJlbW90ZS10cmFja2luZyBicmFuY2giOwogCQkJCXdoYXQgPSBybS0+bmFtZSArIDEzOwogCQkJfQpAQCAtNTc2LDE3ICs3MjAsMzYgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHBydW5lX3JlZnMoc3RydWN0IHJlZnNwZWMgKnJlZnMsIGludCByZWZfY291bnQsIHN0cnVjdCByZWYgKnJlZl9tYXApCitzdGF0aWMgaW50IHBydW5lX3JlZnMoc3RydWN0IHJlZnNwZWMgKnJlZnMsIGludCByZWZfY291bnQsIHN0cnVjdCByZWYgKnJlZl9tYXAsCisJCWNvbnN0IGNoYXIgKnJhd191cmwpCiB7Ci0JaW50IHJlc3VsdCA9IDA7CisJaW50IHVybF9sZW4sIGksIHJlc3VsdCA9IDA7CiAJc3RydWN0IHJlZiAqcmVmLCAqc3RhbGVfcmVmcyA9IGdldF9zdGFsZV9oZWFkcyhyZWZzLCByZWZfY291bnQsIHJlZl9tYXApOworCWNoYXIgKnVybDsKIAljb25zdCBjaGFyICpkYW5nbGluZ19tc2cgPSBkcnlfcnVuCiAJCT8gXygiICAgKCVzIHdpbGwgYmVjb21lIGRhbmdsaW5nKSIpCiAJCTogXygiICAgKCVzIGhhcyBiZWNvbWUgZGFuZ2xpbmcpIik7CiAKKwlpZiAocmF3X3VybCkKKwkJdXJsID0gdHJhbnNwb3J0X2Fub255bWl6ZV91cmwocmF3X3VybCk7CisJZWxzZQorCQl1cmwgPSB4c3RyZHVwKCJmb3JlaWduIik7CisKKwl1cmxfbGVuID0gc3RybGVuKHVybCk7CisJZm9yIChpID0gdXJsX2xlbiAtIDE7IHVybFtpXSA9PSAnLycgJiYgMCA8PSBpOyBpLS0pCisJCTsKKworCXVybF9sZW4gPSBpICsgMTsKKwlpZiAoNCA8IGkgJiYgIXN0cm5jbXAoIi5naXQiLCB1cmwgKyBpIC0gMywgNCkpCisJCXVybF9sZW4gPSBpIC0gMzsKKwogCWZvciAocmVmID0gc3RhbGVfcmVmczsgcmVmOyByZWYgPSByZWYtPm5leHQpIHsKIAkJaWYgKCFkcnlfcnVuKQogCQkJcmVzdWx0IHw9IGRlbGV0ZV9yZWYocmVmLT5uYW1lLCBOVUxMLCAwKTsKKwkJaWYgKHZlcmJvc2l0eSA+PSAwICYmICFzaG93bl91cmwpIHsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCJGcm9tICUuKnNcbiIpLCB1cmxfbGVuLCB1cmwpOworCQkJc2hvd25fdXJsID0gMTsKKwkJfQogCQlpZiAodmVyYm9zaXR5ID49IDApIHsKIAkJCWZwcmludGYoc3RkZXJyLCAiIHggJS0qcyAlLSpzIC0+ICVzXG4iLAogCQkJCVRSQU5TUE9SVF9TVU1NQVJZKF8oIltkZWxldGVkXSIpKSwKQEAgLTU5NCwxMTAgKzc1NywxMSBAQAogCQkJd2Fybl9kYW5nbGluZ19zeW1yZWYoc3RkZXJyLCBkYW5nbGluZ19tc2csIHJlZi0+bmFtZSk7CiAJCX0KIAl9CisJZnJlZSh1cmwpOwogCWZyZWVfcmVmcyhzdGFsZV9yZWZzKTsKIAlyZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW50IGFkZF9leGlzdGluZyhjb25zdCBjaGFyICpyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAotCQkJaW50IGZsYWcsIHZvaWQgKmNiZGF0YSkKLXsKLQlzdHJ1Y3Qgc3RyaW5nX2xpc3QgKmxpc3QgPSAoc3RydWN0IHN0cmluZ19saXN0ICopY2JkYXRhOwotCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtID0gc3RyaW5nX2xpc3RfaW5zZXJ0KGxpc3QsIHJlZm5hbWUpOwotCWl0ZW0tPnV0aWwgPSB4bWFsbG9jKDIwKTsKLQloYXNoY3B5KGl0ZW0tPnV0aWwsIHNoYTEpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHdpbGxfZmV0Y2goc3RydWN0IHJlZiAqKmhlYWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEpCi17Ci0Jc3RydWN0IHJlZiAqcm0gPSAqaGVhZDsKLQl3aGlsZSAocm0pIHsKLQkJaWYgKCFoYXNoY21wKHJtLT5vbGRfc2hhMSwgc2hhMSkpCi0JCQlyZXR1cm4gMTsKLQkJcm0gPSBybS0+bmV4dDsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGZpbmRfbm9uX2xvY2FsX3RhZ3Moc3RydWN0IHRyYW5zcG9ydCAqdHJhbnNwb3J0LAotCQkJc3RydWN0IHJlZiAqKmhlYWQsCi0JCQlzdHJ1Y3QgcmVmICoqKnRhaWwpCi17Ci0Jc3RydWN0IHN0cmluZ19saXN0IGV4aXN0aW5nX3JlZnMgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKLQlzdHJ1Y3Qgc3RyaW5nX2xpc3QgcmVtb3RlX3JlZnMgPSBTVFJJTkdfTElTVF9JTklUX05PRFVQOwotCWNvbnN0IHN0cnVjdCByZWYgKnJlZjsKLQlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbSA9IE5VTEw7Ci0KLQlmb3JfZWFjaF9yZWYoYWRkX2V4aXN0aW5nLCAmZXhpc3RpbmdfcmVmcyk7Ci0JZm9yIChyZWYgPSB0cmFuc3BvcnRfZ2V0X3JlbW90ZV9yZWZzKHRyYW5zcG9ydCk7IHJlZjsgcmVmID0gcmVmLT5uZXh0KSB7Ci0JCWlmIChwcmVmaXhjbXAocmVmLT5uYW1lLCAicmVmcy90YWdzLyIpKQotCQkJY29udGludWU7Ci0KLQkJLyoKLQkJICogVGhlIHBlZWxlZCByZWYgYWx3YXlzIGZvbGxvd3MgdGhlIG1hdGNoaW5nIGJhc2UKLQkJICogcmVmLCBzbyBpZiB3ZSBzZWUgYSBwZWVsZWQgcmVmIHRoYXQgd2UgZG9uJ3Qgd2FudAotCQkgKiB0byBmZXRjaCB0aGVuIHdlIGNhbiBtYXJrIHRoZSByZWYgZW50cnkgaW4gdGhlIGxpc3QKLQkJICogYXMgb25lIHRvIGlnbm9yZSBieSBzZXR0aW5nIHV0aWwgdG8gTlVMTC4KLQkJICovCi0JCWlmICghc3VmZml4Y21wKHJlZi0+bmFtZSwgIl57fSIpKSB7Ci0JCQlpZiAoaXRlbSAmJiAhaGFzX3NoYTFfZmlsZShyZWYtPm9sZF9zaGExKSAmJgotCQkJICAgICF3aWxsX2ZldGNoKGhlYWQsIHJlZi0+b2xkX3NoYTEpICYmCi0JCQkgICAgIWhhc19zaGExX2ZpbGUoaXRlbS0+dXRpbCkgJiYKLQkJCSAgICAhd2lsbF9mZXRjaChoZWFkLCBpdGVtLT51dGlsKSkKLQkJCQlpdGVtLT51dGlsID0gTlVMTDsKLQkJCWl0ZW0gPSBOVUxMOwotCQkJY29udGludWU7Ci0JCX0KLQotCQkvKgotCQkgKiBJZiBpdGVtIGlzIG5vbi1OVUxMIGhlcmUsIHRoZW4gd2UgcHJldmlvdXNseSBzYXcgYQotCQkgKiByZWYgbm90IGZvbGxvd2VkIGJ5IGEgcGVlbGVkIHJlZmVyZW5jZSwgc28gd2UgbmVlZAotCQkgKiB0byBjaGVjayBpZiBpdCBpcyBhIGxpZ2h0d2VpZ2h0IHRhZyB0aGF0IHdlIHdhbnQgdG8KLQkJICogZmV0Y2guCi0JCSAqLwotCQlpZiAoaXRlbSAmJiAhaGFzX3NoYTFfZmlsZShpdGVtLT51dGlsKSAmJgotCQkgICAgIXdpbGxfZmV0Y2goaGVhZCwgaXRlbS0+dXRpbCkpCi0JCQlpdGVtLT51dGlsID0gTlVMTDsKLQotCQlpdGVtID0gTlVMTDsKLQotCQkvKiBza2lwIGR1cGxpY2F0ZXMgYW5kIHJlZnMgdGhhdCB3ZSBhbHJlYWR5IGhhdmUgKi8KLQkJaWYgKHN0cmluZ19saXN0X2hhc19zdHJpbmcoJnJlbW90ZV9yZWZzLCByZWYtPm5hbWUpIHx8Ci0JCSAgICBzdHJpbmdfbGlzdF9oYXNfc3RyaW5nKCZleGlzdGluZ19yZWZzLCByZWYtPm5hbWUpKQotCQkJY29udGludWU7Ci0KLQkJaXRlbSA9IHN0cmluZ19saXN0X2luc2VydCgmcmVtb3RlX3JlZnMsIHJlZi0+bmFtZSk7Ci0JCWl0ZW0tPnV0aWwgPSAodm9pZCAqKXJlZi0+b2xkX3NoYTE7Ci0JfQotCXN0cmluZ19saXN0X2NsZWFyKCZleGlzdGluZ19yZWZzLCAxKTsKLQotCS8qCi0JICogV2UgbWF5IGhhdmUgYSBmaW5hbCBsaWdodHdlaWdodCB0YWcgdGhhdCBuZWVkcyB0byBiZQotCSAqIGNoZWNrZWQgdG8gc2VlIGlmIGl0IG5lZWRzIGZldGNoaW5nLgotCSAqLwotCWlmIChpdGVtICYmICFoYXNfc2hhMV9maWxlKGl0ZW0tPnV0aWwpICYmCi0JICAgICF3aWxsX2ZldGNoKGhlYWQsIGl0ZW0tPnV0aWwpKQotCQlpdGVtLT51dGlsID0gTlVMTDsKLQotCS8qCi0JICogRm9yIGFsbCB0aGUgdGFncyBpbiB0aGUgcmVtb3RlX3JlZnMgc3RyaW5nIGxpc3QsCi0JICogYWRkIHRoZW0gdG8gdGhlIGxpc3Qgb2YgcmVmcyB0byBiZSBmZXRjaGVkCi0JICovCi0JZm9yX2VhY2hfc3RyaW5nX2xpc3RfaXRlbShpdGVtLCAmcmVtb3RlX3JlZnMpIHsKLQkJLyogVW5sZXNzIHdlIGhhdmUgYWxyZWFkeSBkZWNpZGVkIHRvIGlnbm9yZSB0aGlzIGl0ZW0uLi4gKi8KLQkJaWYgKGl0ZW0tPnV0aWwpCi0JCXsKLQkJCXN0cnVjdCByZWYgKnJtID0gYWxsb2NfcmVmKGl0ZW0tPnN0cmluZyk7Ci0JCQlybS0+cGVlcl9yZWYgPSBhbGxvY19yZWYoaXRlbS0+c3RyaW5nKTsKLQkJCWhhc2hjcHkocm0tPm9sZF9zaGExLCBpdGVtLT51dGlsKTsKLQkJCSoqdGFpbCA9IHJtOwotCQkJKnRhaWwgPSAmcm0tPm5leHQ7Ci0JCX0KLQl9Ci0KLQlzdHJpbmdfbGlzdF9jbGVhcigmcmVtb3RlX3JlZnMsIDApOwotfQotCiBzdGF0aWMgdm9pZCBjaGVja19ub3RfY3VycmVudF9icmFuY2goc3RydWN0IHJlZiAqcmVmX21hcCkKIHsKIAlzdHJ1Y3QgYnJhbmNoICpjdXJyZW50X2JyYW5jaCA9IGJyYW5jaF9nZXQoTlVMTCk7CkBAIC03NDUsNiArODA5LDggQEAKIAkJc2V0X29wdGlvbih0cmFuc3BvcnQsIFRSQU5TX09QVF9LRUVQLCAieWVzIik7CiAJaWYgKGRlcHRoKQogCQlzZXRfb3B0aW9uKHRyYW5zcG9ydCwgVFJBTlNfT1BUX0RFUFRILCBkZXB0aCk7CisJaWYgKHVwZGF0ZV9zaGFsbG93KQorCQlzZXRfb3B0aW9uKHRyYW5zcG9ydCwgVFJBTlNfT1BUX1VQREFURV9TSEFMTE9XLCAieWVzIik7CiAJcmV0dXJuIHRyYW5zcG9ydDsKIH0KIApAQCAtODEwLDM2ICs4NzYsMjYgQEAKIAogCWlmICh0YWdzID09IFRBR1NfREVGQVVMVCAmJiBhdXRvdGFncykKIAkJdHJhbnNwb3J0X3NldF9vcHRpb24odHJhbnNwb3J0LCBUUkFOU19PUFRfRk9MTE9XVEFHUywgIjEiKTsKKwlpZiAocHJ1bmUpIHsKKwkJLyoKKwkJICogV2Ugb25seSBwcnVuZSBiYXNlZCBvbiByZWZzcGVjcyBzcGVjaWZpZWQKKwkJICogZXhwbGljaXRseSAodmlhIGNvbW1hbmQgbGluZSBvciBjb25maWd1cmF0aW9uKTsgd2UKKwkJICogZG9uJ3QgY2FyZSB3aGV0aGVyIC0tdGFncyB3YXMgc3BlY2lmaWVkLgorCQkgKi8KKwkJaWYgKHJlZl9jb3VudCkgeworCQkJcHJ1bmVfcmVmcyhyZWZzLCByZWZfY291bnQsIHJlZl9tYXAsIHRyYW5zcG9ydC0+dXJsKTsKKwkJfSBlbHNlIHsKKwkJCXBydW5lX3JlZnModHJhbnNwb3J0LT5yZW1vdGUtPmZldGNoLAorCQkJCSAgIHRyYW5zcG9ydC0+cmVtb3RlLT5mZXRjaF9yZWZzcGVjX25yLAorCQkJCSAgIHJlZl9tYXAsCisJCQkJICAgdHJhbnNwb3J0LT51cmwpOworCQl9CisJfQogCWlmIChmZXRjaF9yZWZzKHRyYW5zcG9ydCwgcmVmX21hcCkpIHsKIAkJZnJlZV9yZWZzKHJlZl9tYXApOwogCQlyZXRjb2RlID0gMTsKIAkJZ290byBjbGVhbnVwOwogCX0KLQlpZiAocHJ1bmUpIHsKLQkJLyogSWYgLS10YWdzIHdhcyBzcGVjaWZpZWQsIHByZXRlbmQgdGhlIHVzZXIgZ2F2ZSB1cyB0aGUgY2Fub25pY2FsIHRhZ3MgcmVmc3BlYyAqLwotCQlpZiAodGFncyA9PSBUQUdTX1NFVCkgewotCQkJY29uc3QgY2hhciAqdGFnc19zdHIgPSAicmVmcy90YWdzLyo6cmVmcy90YWdzLyoiOwotCQkJc3RydWN0IHJlZnNwZWMgKnRhZ3NfcmVmc3BlYywgKnJlZnNwZWM7Ci0KLQkJCS8qIENvcHkgdGhlIHJlZnNwZWMgYW5kIGFkZCB0aGUgdGFncyB0byBpdCAqLwotCQkJcmVmc3BlYyA9IHhjYWxsb2MocmVmX2NvdW50ICsgMSwgc2l6ZW9mKHN0cnVjdCByZWZzcGVjKSk7Ci0JCQl0YWdzX3JlZnNwZWMgPSBwYXJzZV9mZXRjaF9yZWZzcGVjKDEsICZ0YWdzX3N0cik7Ci0JCQltZW1jcHkocmVmc3BlYywgcmVmcywgcmVmX2NvdW50ICogc2l6ZW9mKHN0cnVjdCByZWZzcGVjKSk7Ci0JCQltZW1jcHkoJnJlZnNwZWNbcmVmX2NvdW50XSwgdGFnc19yZWZzcGVjLCBzaXplb2Yoc3RydWN0IHJlZnNwZWMpKTsKLQkJCXJlZl9jb3VudCsrOwotCi0JCQlwcnVuZV9yZWZzKHJlZnNwZWMsIHJlZl9jb3VudCwgcmVmX21hcCk7Ci0KLQkJCXJlZl9jb3VudC0tOwotCQkJLyogVGhlIHJlc3Qgb2YgdGhlIHN0cmluZ3MgYmVsb25nIHRvIGZldGNoX29uZSAqLwotCQkJZnJlZV9yZWZzcGVjKDEsIHRhZ3NfcmVmc3BlYyk7Ci0JCQlmcmVlKHJlZnNwZWMpOwotCQl9IGVsc2UgaWYgKHJlZl9jb3VudCkgewotCQkJcHJ1bmVfcmVmcyhyZWZzLCByZWZfY291bnQsIHJlZl9tYXApOwotCQl9IGVsc2UgewotCQkJcHJ1bmVfcmVmcyh0cmFuc3BvcnQtPnJlbW90ZS0+ZmV0Y2gsIHRyYW5zcG9ydC0+cmVtb3RlLT5mZXRjaF9yZWZzcGVjX25yLCByZWZfbWFwKTsKLQkJfQotCX0KIAlmcmVlX3JlZnMocmVmX21hcCk7CiAKIAkvKiBpZiBuZWl0aGVyIC0tbm8tdGFncyBub3IgLS10YWdzIHdhcyBzcGVjaWZpZWQsIGRvIGF1dG9tYXRlZCB0YWcKQEAgLTg3NSw3ICs5MzEsNyBAQAogewogCXN0cnVjdCByZW1vdGVfZ3JvdXBfZGF0YSAqZyA9IHByaXY7CiAKLQlpZiAoIXByZWZpeGNtcChrZXksICJyZW1vdGVzLiIpICYmCisJaWYgKHN0YXJ0c193aXRoKGtleSwgInJlbW90ZXMuIikgJiYKIAkJCSFzdHJjbXAoa2V5ICsgOCwgZy0+bmFtZSkpIHsKIAkJLyogc3BsaXQgbGlzdCBieSB3aGl0ZSBzcGFjZSAqLwogCQlpbnQgc3BhY2UgPSBzdHJjc3BuKHZhbHVlLCAiIFx0XG4iKTsKQEAgLTkxMyw4ICs5NjksOCBAQAogewogCWlmIChkcnlfcnVuKQogCQlhcmd2X2FycmF5X3B1c2goYXJndiwgIi0tZHJ5LXJ1biIpOwotCWlmIChwcnVuZSkKLQkJYXJndl9hcnJheV9wdXNoKGFyZ3YsICItLXBydW5lIik7CisJaWYgKHBydW5lICE9IC0xKQorCQlhcmd2X2FycmF5X3B1c2goYXJndiwgcHJ1bmUgPyAiLS1wcnVuZSIgOiAiLS1uby1wcnVuZSIpOwogCWlmICh1cGRhdGVfaGVhZF9vaykKIAkJYXJndl9hcnJheV9wdXNoKGFyZ3YsICItLXVwZGF0ZS1oZWFkLW9rIik7CiAJaWYgKGZvcmNlKQpAQCAtOTgxLDYgKzEwMzcsMTcgQEAKIAkJICAgICJyZW1vdGUgbmFtZSBmcm9tIHdoaWNoIG5ldyByZXZpc2lvbnMgc2hvdWxkIGJlIGZldGNoZWQuIikpOwogCiAJZ3RyYW5zcG9ydCA9IHByZXBhcmVfdHJhbnNwb3J0KHJlbW90ZSk7CisKKwlpZiAocHJ1bmUgPCAwKSB7CisJCS8qIG5vIGNvbW1hbmQgbGluZSByZXF1ZXN0ICovCisJCWlmICgwIDw9IGd0cmFuc3BvcnQtPnJlbW90ZS0+cHJ1bmUpCisJCQlwcnVuZSA9IGd0cmFuc3BvcnQtPnJlbW90ZS0+cHJ1bmU7CisJCWVsc2UgaWYgKDAgPD0gZmV0Y2hfcHJ1bmVfY29uZmlnKQorCQkJcHJ1bmUgPSBmZXRjaF9wcnVuZV9jb25maWc7CisJCWVsc2UKKwkJCXBydW5lID0gUFJVTkVfQllfREVGQVVMVDsKKwl9CisKIAlpZiAoYXJnYyA+IDApIHsKIAkJaW50IGogPSAwOwogCQlyZWZzID0geGNhbGxvYyhhcmdjICsgMSwgc2l6ZW9mKGNvbnN0IGNoYXIgKikpOwpAQCAtMTAzMCw2ICsxMDk3LDggQEAKIAlmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKQogCQlzdHJidWZfYWRkZigmZGVmYXVsdF9ybGEsICIgJXMiLCBhcmd2W2ldKTsKIAorCWdpdF9jb25maWcoZ2l0X2ZldGNoX2NvbmZpZywgTlVMTCk7CisKIAlhcmdjID0gcGFyc2Vfb3B0aW9ucyhhcmdjLCBhcmd2LCBwcmVmaXgsCiAJCQkgICAgIGJ1aWx0aW5fZmV0Y2hfb3B0aW9ucywgYnVpbHRpbl9mZXRjaF91c2FnZSwgMCk7CiAKQEAgLTEwNDUsNiArMTExNCwxMCBAQAogCQl9CiAJfQogCisJLyogbm8gbmVlZCB0byBiZSBzdHJpY3QsIHRyYW5zcG9ydF9zZXRfb3B0aW9uKCkgd2lsbCB2YWxpZGF0ZSBpdCBhZ2FpbiAqLworCWlmIChkZXB0aCAmJiBhdG9pKGRlcHRoKSA8IDEpCisJCWRpZShfKCJkZXB0aCAlcyBpcyBub3QgYSBwb3NpdGl2ZSBudW1iZXIiKSwgZGVwdGgpOworCiAJaWYgKHJlY3Vyc2Vfc3VibW9kdWxlcyAhPSBSRUNVUlNFX1NVQk1PRFVMRVNfT0ZGKSB7CiAJCWlmIChyZWN1cnNlX3N1Ym1vZHVsZXNfZGVmYXVsdCkgewogCQkJaW50IGFyZyA9IHBhcnNlX2ZldGNoX3JlY3Vyc2Vfc3VibW9kdWxlc19hcmcoIi0tcmVjdXJzZS1zdWJtb2R1bGVzLWRlZmF1bHQiLCByZWN1cnNlX3N1Ym1vZHVsZXNfZGVmYXVsdCk7CmRpZmYgLS1naXQgYS9idWlsdGluL2ZtdC1tZXJnZS1tc2cuYyBiL2J1aWx0aW4vZm10LW1lcmdlLW1zZy5jCmluZGV4IDFjMDQwNzAuLjM5MDZlZGEgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vZm10LW1lcmdlLW1zZy5jCisrKyBiL2J1aWx0aW4vZm10LW1lcmdlLW1zZy5jCkBAIC0xMDksNyArMTA5LDcgQEAKIAlpZiAobGVuIDwgNDMgfHwgbGluZVs0MF0gIT0gJ1x0JykKIAkJcmV0dXJuIDE7CiAKLQlpZiAoIXByZWZpeGNtcChsaW5lICsgNDEsICJub3QtZm9yLW1lcmdlIikpCisJaWYgKHN0YXJ0c193aXRoKGxpbmUgKyA0MSwgIm5vdC1mb3ItbWVyZ2UiKSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAobGluZVs0MV0gIT0gJ1x0JykKQEAgLTE1NSwxNiArMTU1LDE2IEBACiAJaWYgKHB1bGxpbmdfaGVhZCkgewogCQlvcmlnaW4gPSBzcmM7CiAJCXNyY19kYXRhLT5oZWFkX3N0YXR1cyB8PSAxOwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChsaW5lLCAiYnJhbmNoICIpKSB7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChsaW5lLCAiYnJhbmNoICIpKSB7CiAJCW9yaWdpbl9kYXRhLT5pc19sb2NhbF9icmFuY2ggPSAxOwogCQlvcmlnaW4gPSBsaW5lICsgNzsKIAkJc3RyaW5nX2xpc3RfYXBwZW5kKCZzcmNfZGF0YS0+YnJhbmNoLCBvcmlnaW4pOwogCQlzcmNfZGF0YS0+aGVhZF9zdGF0dXMgfD0gMjsKLQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAobGluZSwgInRhZyAiKSkgeworCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgobGluZSwgInRhZyAiKSkgewogCQlvcmlnaW4gPSBsaW5lOwogCQlzdHJpbmdfbGlzdF9hcHBlbmQoJnNyY19kYXRhLT50YWcsIG9yaWdpbiArIDQpOwogCQlzcmNfZGF0YS0+aGVhZF9zdGF0dXMgfD0gMjsKLQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAobGluZSwgInJlbW90ZS10cmFja2luZyBicmFuY2ggIikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGxpbmUsICJyZW1vdGUtdHJhY2tpbmcgYnJhbmNoICIpKSB7CiAJCW9yaWdpbiA9IGxpbmUgKyBzdHJsZW4oInJlbW90ZS10cmFja2luZyBicmFuY2ggIik7CiAJCXN0cmluZ19saXN0X2FwcGVuZCgmc3JjX2RhdGEtPnJfYnJhbmNoLCBvcmlnaW4pOwogCQlzcmNfZGF0YS0+aGVhZF9zdGF0dXMgfD0gMjsKQEAgLTYwNSw3ICs2MDUsNyBAQAogCQlyZXNvbHZlX3JlZmR1cCgiSEVBRCIsIGhlYWRfc2hhMSwgMSwgTlVMTCk7CiAJaWYgKCFjdXJyZW50X2JyYW5jaCkKIAkJZGllKCJObyBjdXJyZW50IGJyYW5jaCIpOwotCWlmICghcHJlZml4Y21wKGN1cnJlbnRfYnJhbmNoLCAicmVmcy9oZWFkcy8iKSkKKwlpZiAoc3RhcnRzX3dpdGgoY3VycmVudF9icmFuY2gsICJyZWZzL2hlYWRzLyIpKQogCQljdXJyZW50X2JyYW5jaCArPSAxMTsKIAogCWZpbmRfbWVyZ2VfcGFyZW50cygmbWVyZ2VfcGFyZW50cywgaW4sIGhlYWRfc2hhMSk7CmRpZmYgLS1naXQgYS9idWlsdGluL2Zvci1lYWNoLXJlZi5jIGIvYnVpbHRpbi9mb3ItZWFjaC1yZWYuYwppbmRleCA3ZjA1OWMzLi41MTc5OGI0IDEwMDY0NAotLS0gYS9idWlsdGluL2Zvci1lYWNoLXJlZi5jCisrKyBiL2J1aWx0aW4vZm9yLWVhY2gtcmVmLmMKQEAgLTksNiArOSw3IEBACiAjaW5jbHVkZSAicXVvdGUuaCIKICNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCiAjaW5jbHVkZSAicmVtb3RlLmgiCisjaW5jbHVkZSAiY29sb3IuaCIKIAogLyogUXVvdGluZyBzdHlsZXMgKi8KICNkZWZpbmUgUVVPVEVfTk9ORSAwCkBAIC03NSw2ICs3Niw4IEBACiAJeyAidXBzdHJlYW0iIH0sCiAJeyAic3ltcmVmIiB9LAogCXsgImZsYWciIH0sCisJeyAiSEVBRCIgfSwKKwl7ICJjb2xvciIgfSwKIH07CiAKIC8qCkBAIC04OSw3ICs5Miw4IEBACiAgKi8KIHN0YXRpYyBjb25zdCBjaGFyICoqdXNlZF9hdG9tOwogc3RhdGljIGNtcF90eXBlICp1c2VkX2F0b21fdHlwZTsKLXN0YXRpYyBpbnQgdXNlZF9hdG9tX2NudCwgc29ydF9hdG9tX2xpbWl0LCBuZWVkX3RhZ2dlZCwgbmVlZF9zeW1yZWY7CitzdGF0aWMgaW50IHVzZWRfYXRvbV9jbnQsIG5lZWRfdGFnZ2VkLCBuZWVkX3N5bXJlZjsKK3N0YXRpYyBpbnQgbmVlZF9jb2xvcl9yZXNldF9hdF9lb2w7CiAKIC8qCiAgKiBVc2VkIHRvIHBhcnNlIGZvcm1hdCBzdHJpbmcgYW5kIHNvcnQgc3BlY2lmaWVycwpAQCAtMTc2LDEzICsxODAsMjEgQEAKIHN0YXRpYyBpbnQgdmVyaWZ5X2Zvcm1hdChjb25zdCBjaGFyICpmb3JtYXQpCiB7CiAJY29uc3QgY2hhciAqY3AsICpzcDsKKwlzdGF0aWMgY29uc3QgY2hhciBjb2xvcl9yZXNldFtdID0gImNvbG9yOnJlc2V0IjsKKworCW5lZWRfY29sb3JfcmVzZXRfYXRfZW9sID0gMDsKIAlmb3IgKGNwID0gZm9ybWF0OyAqY3AgJiYgKHNwID0gZmluZF9uZXh0KGNwKSk7ICkgewogCQljb25zdCBjaGFyICplcCA9IHN0cmNocihzcCwgJyknKTsKKwkJaW50IGF0OworCiAJCWlmICghZXApCiAJCQlyZXR1cm4gZXJyb3IoIm1hbGZvcm1lZCBmb3JtYXQgc3RyaW5nICVzIiwgc3ApOwogCQkvKiBzcCBwb2ludHMgYXQgIiUoIiBhbmQgZXAgcG9pbnRzIGF0IHRoZSBjbG9zaW5nICIpIiAqLwotCQlwYXJzZV9hdG9tKHNwICsgMiwgZXApOworCQlhdCA9IHBhcnNlX2F0b20oc3AgKyAyLCBlcCk7CiAJCWNwID0gZXAgKyAxOworCisJCWlmICghbWVtY21wKHVzZWRfYXRvbVthdF0sICJjb2xvcjoiLCA2KSkKKwkJCW5lZWRfY29sb3JfcmVzZXRfYXRfZW9sID0gISFzdHJjbXAodXNlZF9hdG9tW2F0XSwgY29sb3JfcmVzZXQpOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTIwNSw2ICsyMTcsMjIgQEAKIAlyZXR1cm4gYnVmOwogfQogCitzdGF0aWMgaW50IGdyYWJfb2JqZWN0bmFtZShjb25zdCBjaGFyICpuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAorCQkJICAgIHN0cnVjdCBhdG9tX3ZhbHVlICp2KQoreworCWlmICghc3RyY21wKG5hbWUsICJvYmplY3RuYW1lIikpIHsKKwkJY2hhciAqcyA9IHhtYWxsb2MoNDEpOworCQlzdHJjcHkocywgc2hhMV90b19oZXgoc2hhMSkpOworCQl2LT5zID0gczsKKwkJcmV0dXJuIDE7CisJfQorCWlmICghc3RyY21wKG5hbWUsICJvYmplY3RuYW1lOnNob3J0IikpIHsKKwkJdi0+cyA9IHhzdHJkdXAoZmluZF91bmlxdWVfYWJicmV2KHNoYTEsIERFRkFVTFRfQUJCUkVWKSk7CisJCXJldHVybiAxOworCX0KKwlyZXR1cm4gMDsKK30KKwogLyogU2VlIGdyYWJfdmFsdWVzICovCiBzdGF0aWMgdm9pZCBncmFiX2NvbW1vbl92YWx1ZXMoc3RydWN0IGF0b21fdmFsdWUgKnZhbCwgaW50IGRlcmVmLCBzdHJ1Y3Qgb2JqZWN0ICpvYmosIHZvaWQgKmJ1ZiwgdW5zaWduZWQgbG9uZyBzeikKIHsKQEAgLTIyNSwxNSArMjUzLDggQEAKIAkJCXYtPnVsID0gc3o7CiAJCQl2LT5zID0gczsKIAkJfQotCQllbHNlIGlmICghc3RyY21wKG5hbWUsICJvYmplY3RuYW1lIikpIHsKLQkJCWNoYXIgKnMgPSB4bWFsbG9jKDQxKTsKLQkJCXN0cmNweShzLCBzaGExX3RvX2hleChvYmotPnNoYTEpKTsKLQkJCXYtPnMgPSBzOwotCQl9Ci0JCWVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIm9iamVjdG5hbWU6c2hvcnQiKSkgewotCQkJdi0+cyA9IHhzdHJkdXAoZmluZF91bmlxdWVfYWJicmV2KG9iai0+c2hhMSwKLQkJCQkJCQkgIERFRkFVTFRfQUJCUkVWKSk7Ci0JCX0KKwkJZWxzZSBpZiAoZGVyZWYpCisJCQlncmFiX29iamVjdG5hbWUobmFtZSwgb2JqLT5zaGExLCB2KTsKIAl9CiB9CiAKQEAgLTQzMiw3ICs0NTMsNyBAQAogCQlpZiAobmFtZVt3aG9sZW5dICE9IDAgJiYKIAkJICAgIHN0cmNtcChuYW1lICsgd2hvbGVuLCAibmFtZSIpICYmCiAJCSAgICBzdHJjbXAobmFtZSArIHdob2xlbiwgImVtYWlsIikgJiYKLQkJICAgIHByZWZpeGNtcChuYW1lICsgd2hvbGVuLCAiZGF0ZSIpKQorCQkgICAgIXN0YXJ0c193aXRoKG5hbWUgKyB3aG9sZW4sICJkYXRlIikpCiAJCQljb250aW51ZTsKIAkJaWYgKCF3aG9saW5lKQogCQkJd2hvbGluZSA9IGZpbmRfd2hvbGluZSh3aG8sIHdob2xlbiwgYnVmLCBzeik7CkBAIC00NDQsNyArNDY1LDcgQEAKIAkJCXYtPnMgPSBjb3B5X25hbWUod2hvbGluZSk7CiAJCWVsc2UgaWYgKCFzdHJjbXAobmFtZSArIHdob2xlbiwgImVtYWlsIikpCiAJCQl2LT5zID0gY29weV9lbWFpbCh3aG9saW5lKTsKLQkJZWxzZSBpZiAoIXByZWZpeGNtcChuYW1lICsgd2hvbGVuLCAiZGF0ZSIpKQorCQllbHNlIGlmIChzdGFydHNfd2l0aChuYW1lICsgd2hvbGVuLCAiZGF0ZSIpKQogCQkJZ3JhYl9kYXRlKHdob2xpbmUsIHYsIG5hbWUpOwogCX0KIApAQCAtNDY2LDcgKzQ4Nyw3IEBACiAJCWlmIChkZXJlZikKIAkJCW5hbWUrKzsKIAotCQlpZiAoIXByZWZpeGNtcChuYW1lLCAiY3JlYXRvcmRhdGUiKSkKKwkJaWYgKHN0YXJ0c193aXRoKG5hbWUsICJjcmVhdG9yZGF0ZSIpKQogCQkJZ3JhYl9kYXRlKHdob2xpbmUsIHYsIG5hbWUpOwogCQllbHNlIGlmICghc3RyY21wKG5hbWUsICJjcmVhdG9yIikpCiAJCQl2LT5zID0gY29weV9saW5lKHdob2xpbmUpOwpAQCAtNjQwLDIwICs2NjEsMjAgQEAKIAkJaW50IGRlcmVmID0gMDsKIAkJY29uc3QgY2hhciAqcmVmbmFtZTsKIAkJY29uc3QgY2hhciAqZm9ybWF0cDsKKwkJc3RydWN0IGJyYW5jaCAqYnJhbmNoID0gTlVMTDsKIAogCQlpZiAoKm5hbWUgPT0gJyonKSB7CiAJCQlkZXJlZiA9IDE7CiAJCQluYW1lKys7CiAJCX0KIAotCQlpZiAoIXByZWZpeGNtcChuYW1lLCAicmVmbmFtZSIpKQorCQlpZiAoc3RhcnRzX3dpdGgobmFtZSwgInJlZm5hbWUiKSkKIAkJCXJlZm5hbWUgPSByZWYtPnJlZm5hbWU7Ci0JCWVsc2UgaWYgKCFwcmVmaXhjbXAobmFtZSwgInN5bXJlZiIpKQorCQllbHNlIGlmIChzdGFydHNfd2l0aChuYW1lLCAic3ltcmVmIikpCiAJCQlyZWZuYW1lID0gcmVmLT5zeW1yZWYgPyByZWYtPnN5bXJlZiA6ICIiOwotCQllbHNlIGlmICghcHJlZml4Y21wKG5hbWUsICJ1cHN0cmVhbSIpKSB7Ci0JCQlzdHJ1Y3QgYnJhbmNoICpicmFuY2g7CisJCWVsc2UgaWYgKHN0YXJ0c193aXRoKG5hbWUsICJ1cHN0cmVhbSIpKSB7CiAJCQkvKiBvbmx5IGxvY2FsIGJyYW5jaGVzIG1heSBoYXZlIGFuIHVwc3RyZWFtICovCi0JCQlpZiAocHJlZml4Y21wKHJlZi0+cmVmbmFtZSwgInJlZnMvaGVhZHMvIikpCisJCQlpZiAoIXN0YXJ0c193aXRoKHJlZi0+cmVmbmFtZSwgInJlZnMvaGVhZHMvIikpCiAJCQkJY29udGludWU7CiAJCQlicmFuY2ggPSBicmFuY2hfZ2V0KHJlZi0+cmVmbmFtZSArIDExKTsKIApAQCAtNjYxLDggKzY4MiwxMyBAQAogCQkJICAgICFicmFuY2gtPm1lcmdlWzBdLT5kc3QpCiAJCQkJY29udGludWU7CiAJCQlyZWZuYW1lID0gYnJhbmNoLT5tZXJnZVswXS0+ZHN0OwotCQl9Ci0JCWVsc2UgaWYgKCFzdHJjbXAobmFtZSwgImZsYWciKSkgeworCQl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKG5hbWUsICJjb2xvcjoiKSkgeworCQkJY2hhciBjb2xvcltDT0xPUl9NQVhMRU5dID0gIiI7CisKKwkJCWNvbG9yX3BhcnNlKG5hbWUgKyA2LCAiLS1mb3JtYXQiLCBjb2xvcik7CisJCQl2LT5zID0geHN0cmR1cChjb2xvcik7CisJCQljb250aW51ZTsKKwkJfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJmbGFnIikpIHsKIAkJCWNoYXIgYnVmWzI1Nl0sICpjcCA9IGJ1ZjsKIAkJCWlmIChyZWYtPmZsYWcgJiBSRUZfSVNTWU1SRUYpCiAJCQkJY3AgPSBjb3B5X2FkdmFuY2UoY3AsICIsc3ltcmVmIik7CkBAIC02NzUsMTggKzcwMSw2MiBAQAogCQkJCXYtPnMgPSB4c3RyZHVwKGJ1ZiArIDEpOwogCQkJfQogCQkJY29udGludWU7Ci0JCX0KLQkJZWxzZQorCQl9IGVsc2UgaWYgKCFkZXJlZiAmJiBncmFiX29iamVjdG5hbWUobmFtZSwgcmVmLT5vYmplY3RuYW1lLCB2KSkgeworCQkJY29udGludWU7CisJCX0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiSEVBRCIpKSB7CisJCQljb25zdCBjaGFyICpoZWFkOworCQkJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKKworCQkJaGVhZCA9IHJlc29sdmVfcmVmX3Vuc2FmZSgiSEVBRCIsIHNoYTEsIDEsIE5VTEwpOworCQkJaWYgKCFzdHJjbXAocmVmLT5yZWZuYW1lLCBoZWFkKSkKKwkJCQl2LT5zID0gIioiOworCQkJZWxzZQorCQkJCXYtPnMgPSAiICI7CisJCQljb250aW51ZTsKKwkJfSBlbHNlCiAJCQljb250aW51ZTsKIAogCQlmb3JtYXRwID0gc3RyY2hyKG5hbWUsICc6Jyk7Ci0JCS8qIGxvb2sgZm9yICJzaG9ydCIgcmVmbmFtZSBmb3JtYXQgKi8KIAkJaWYgKGZvcm1hdHApIHsKKwkJCWludCBudW1fb3VycywgbnVtX3RoZWlyczsKKwogCQkJZm9ybWF0cCsrOwogCQkJaWYgKCFzdHJjbXAoZm9ybWF0cCwgInNob3J0IikpCiAJCQkJcmVmbmFtZSA9IHNob3J0ZW5fdW5hbWJpZ3VvdXNfcmVmKHJlZm5hbWUsCiAJCQkJCQkgICAgICB3YXJuX2FtYmlndW91c19yZWZzKTsKLQkJCWVsc2UKKwkJCWVsc2UgaWYgKCFzdHJjbXAoZm9ybWF0cCwgInRyYWNrIikgJiYKKwkJCQkgc3RhcnRzX3dpdGgobmFtZSwgInVwc3RyZWFtIikpIHsKKwkJCQljaGFyIGJ1Zls0MF07CisKKwkJCQlzdGF0X3RyYWNraW5nX2luZm8oYnJhbmNoLCAmbnVtX291cnMsICZudW1fdGhlaXJzKTsKKwkJCQlpZiAoIW51bV9vdXJzICYmICFudW1fdGhlaXJzKQorCQkJCQl2LT5zID0gIiI7CisJCQkJZWxzZSBpZiAoIW51bV9vdXJzKSB7CisJCQkJCXNwcmludGYoYnVmLCAiW2JlaGluZCAlZF0iLCBudW1fdGhlaXJzKTsKKwkJCQkJdi0+cyA9IHhzdHJkdXAoYnVmKTsKKwkJCQl9IGVsc2UgaWYgKCFudW1fdGhlaXJzKSB7CisJCQkJCXNwcmludGYoYnVmLCAiW2FoZWFkICVkXSIsIG51bV9vdXJzKTsKKwkJCQkJdi0+cyA9IHhzdHJkdXAoYnVmKTsKKwkJCQl9IGVsc2UgeworCQkJCQlzcHJpbnRmKGJ1ZiwgIlthaGVhZCAlZCwgYmVoaW5kICVkXSIsCisJCQkJCQludW1fb3VycywgbnVtX3RoZWlycyk7CisJCQkJCXYtPnMgPSB4c3RyZHVwKGJ1Zik7CisJCQkJfQorCQkJCWNvbnRpbnVlOworCQkJfSBlbHNlIGlmICghc3RyY21wKGZvcm1hdHAsICJ0cmFja3Nob3J0IikgJiYKKwkJCQkgICBzdGFydHNfd2l0aChuYW1lLCAidXBzdHJlYW0iKSkgeworCQkJCWFzc2VydChicmFuY2gpOworCQkJCXN0YXRfdHJhY2tpbmdfaW5mbyhicmFuY2gsICZudW1fb3VycywgJm51bV90aGVpcnMpOworCQkJCWlmICghbnVtX291cnMgJiYgIW51bV90aGVpcnMpCisJCQkJCXYtPnMgPSAiPSI7CisJCQkJZWxzZSBpZiAoIW51bV9vdXJzKQorCQkJCQl2LT5zID0gIjwiOworCQkJCWVsc2UgaWYgKCFudW1fdGhlaXJzKQorCQkJCQl2LT5zID0gIj4iOworCQkJCWVsc2UKKwkJCQkJdi0+cyA9ICI8PiI7CisJCQkJY29udGludWU7CisJCQl9IGVsc2UKIAkJCQlkaWUoInVua25vd24gJS4qcyBmb3JtYXQgJXMiLAogCQkJCSAgICAoaW50KShmb3JtYXRwIC0gbmFtZSksIG5hbWUsIGZvcm1hdHApOwogCQl9CkBAIC04NjQsMjcgKzkzNCwzMCBAQAogCXFzb3J0KHJlZnMsIG51bV9yZWZzLCBzaXplb2Yoc3RydWN0IHJlZmluZm8gKiksIGNvbXBhcmVfcmVmcyk7CiB9CiAKLXN0YXRpYyB2b2lkIHByaW50X3ZhbHVlKHN0cnVjdCByZWZpbmZvICpyZWYsIGludCBhdG9tLCBpbnQgcXVvdGVfc3R5bGUpCitzdGF0aWMgdm9pZCBwcmludF92YWx1ZShzdHJ1Y3QgYXRvbV92YWx1ZSAqdiwgaW50IHF1b3RlX3N0eWxlKQogewotCXN0cnVjdCBhdG9tX3ZhbHVlICp2OwotCWdldF92YWx1ZShyZWYsIGF0b20sICZ2KTsKKwlzdHJ1Y3Qgc3RyYnVmIHNiID0gU1RSQlVGX0lOSVQ7CiAJc3dpdGNoIChxdW90ZV9zdHlsZSkgewogCWNhc2UgUVVPVEVfTk9ORToKIAkJZnB1dHModi0+cywgc3Rkb3V0KTsKIAkJYnJlYWs7CiAJY2FzZSBRVU9URV9TSEVMTDoKLQkJc3FfcXVvdGVfcHJpbnQoc3Rkb3V0LCB2LT5zKTsKKwkJc3FfcXVvdGVfYnVmKCZzYiwgdi0+cyk7CiAJCWJyZWFrOwogCWNhc2UgUVVPVEVfUEVSTDoKLQkJcGVybF9xdW90ZV9wcmludChzdGRvdXQsIHYtPnMpOworCQlwZXJsX3F1b3RlX2J1Zigmc2IsIHYtPnMpOwogCQlicmVhazsKIAljYXNlIFFVT1RFX1BZVEhPTjoKLQkJcHl0aG9uX3F1b3RlX3ByaW50KHN0ZG91dCwgdi0+cyk7CisJCXB5dGhvbl9xdW90ZV9idWYoJnNiLCB2LT5zKTsKIAkJYnJlYWs7CiAJY2FzZSBRVU9URV9UQ0w6Ci0JCXRjbF9xdW90ZV9wcmludChzdGRvdXQsIHYtPnMpOworCQl0Y2xfcXVvdGVfYnVmKCZzYiwgdi0+cyk7CiAJCWJyZWFrOwogCX0KKwlpZiAocXVvdGVfc3R5bGUgIT0gUVVPVEVfTk9ORSkgeworCQlmcHV0cyhzYi5idWYsIHN0ZG91dCk7CisJCXN0cmJ1Zl9yZWxlYXNlKCZzYik7CisJfQogfQogCiBzdGF0aWMgaW50IGhleDEoY2hhciBjaCkKQEAgLTkzMCwxNSArMTAwMywyNiBAQAogCWNvbnN0IGNoYXIgKmNwLCAqc3AsICplcDsKIAogCWZvciAoY3AgPSBmb3JtYXQ7ICpjcCAmJiAoc3AgPSBmaW5kX25leHQoY3ApKTsgY3AgPSBlcCArIDEpIHsKKwkJc3RydWN0IGF0b21fdmFsdWUgKmF0b212OworCiAJCWVwID0gc3RyY2hyKHNwLCAnKScpOwogCQlpZiAoY3AgPCBzcCkKIAkJCWVtaXQoY3AsIHNwKTsKLQkJcHJpbnRfdmFsdWUoaW5mbywgcGFyc2VfYXRvbShzcCArIDIsIGVwKSwgcXVvdGVfc3R5bGUpOworCQlnZXRfdmFsdWUoaW5mbywgcGFyc2VfYXRvbShzcCArIDIsIGVwKSwgJmF0b212KTsKKwkJcHJpbnRfdmFsdWUoYXRvbXYsIHF1b3RlX3N0eWxlKTsKIAl9CiAJaWYgKCpjcCkgewogCQlzcCA9IGNwICsgc3RybGVuKGNwKTsKIAkJZW1pdChjcCwgc3ApOwogCX0KKwlpZiAobmVlZF9jb2xvcl9yZXNldF9hdF9lb2wpIHsKKwkJc3RydWN0IGF0b21fdmFsdWUgcmVzZXR2OworCQljaGFyIGNvbG9yW0NPTE9SX01BWExFTl0gPSAiIjsKKworCQljb2xvcl9wYXJzZSgicmVzZXQiLCAiLS1mb3JtYXQiLCBjb2xvcik7CisJCXJlc2V0di5zID0gY29sb3I7CisJCXByaW50X3ZhbHVlKCZyZXNldHYsIHF1b3RlX3N0eWxlKTsKKwl9CiAJcHV0Y2hhcignXG4nKTsKIH0KIApAQCAtMTAyMSw3ICsxMTA1LDYgQEAKIAogCWlmICghc29ydCkKIAkJc29ydCA9IGRlZmF1bHRfc29ydCgpOwotCXNvcnRfYXRvbV9saW1pdCA9IHVzZWRfYXRvbV9jbnQ7CiAKIAkvKiBmb3Igd2Fybl9hbWJpZ3VvdXNfcmVmcyAqLwogCWdpdF9jb25maWcoZ2l0X2RlZmF1bHRfY29uZmlnLCBOVUxMKTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vZnNjay5jIGIvYnVpbHRpbi9mc2NrLmMKaW5kZXggOTkwOWI2ZC4uMWFmZmRkNSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9mc2NrLmMKKysrIGIvYnVpbHRpbi9mc2NrLmMKQEAgLTE2LDYgKzE2LDcgQEAKIAogI2RlZmluZSBSRUFDSEFCTEUgMHgwMDAxCiAjZGVmaW5lIFNFRU4gICAgICAweDAwMDIKKyNkZWZpbmUgSEFTX09CSiAgIDB4MDAwNAogCiBzdGF0aWMgaW50IHNob3dfcm9vdDsKIHN0YXRpYyBpbnQgc2hvd190YWdzOwpAQCAtMTAxLDcgKzEwMiw3IEBACiAJaWYgKG9iai0+ZmxhZ3MgJiBSRUFDSEFCTEUpCiAJCXJldHVybiAwOwogCW9iai0+ZmxhZ3MgfD0gUkVBQ0hBQkxFOwotCWlmICghb2JqLT5wYXJzZWQpIHsKKwlpZiAoIShvYmotPmZsYWdzICYgSEFTX09CSikpIHsKIAkJaWYgKHBhcmVudCAmJiAhaGFzX3NoYTFfZmlsZShvYmotPnNoYTEpKSB7CiAJCQlwcmludGYoImJyb2tlbiBsaW5rIGZyb20gJTdzICVzXG4iLAogCQkJCSB0eXBlbmFtZShwYXJlbnQtPnR5cGUpLCBzaGExX3RvX2hleChwYXJlbnQtPnNoYTEpKTsKQEAgLTEyNywxNiArMTI4LDEzIEBACiAJc3RydWN0IHRyZWUgKnRyZWUgPSBOVUxMOwogCiAJaWYgKG9iai0+dHlwZSA9PSBPQkpfVFJFRSkgewotCQlvYmotPnBhcnNlZCA9IDA7CiAJCXRyZWUgPSAoc3RydWN0IHRyZWUgKilvYmo7CiAJCWlmIChwYXJzZV90cmVlKHRyZWUpIDwgMCkKIAkJCXJldHVybiAxOyAvKiBlcnJvciBhbHJlYWR5IGRpc3BsYXllZCAqLwogCX0KIAlyZXN1bHQgPSBmc2NrX3dhbGsob2JqLCBtYXJrX29iamVjdCwgb2JqKTsKLQlpZiAodHJlZSkgewotCQlmcmVlKHRyZWUtPmJ1ZmZlcik7Ci0JCXRyZWUtPmJ1ZmZlciA9IE5VTEw7Ci0JfQorCWlmICh0cmVlKQorCQlmcmVlX3RyZWVfYnVmZmVyKHRyZWUpOwogCXJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTE3OCw3ICsxNzYsNyBAQAogCSAqIGV4Y2VwdCBpZiBpdCB3YXMgaW4gYSBwYWNrLWZpbGUgYW5kIHdlIGRpZG4ndAogCSAqIGRvIGEgZnVsbCBmc2NrCiAJICovCi0JaWYgKCFvYmotPnBhcnNlZCkgeworCWlmICghKG9iai0+ZmxhZ3MgJiBIQVNfT0JKKSkgewogCQlpZiAoaGFzX3NoYTFfcGFjayhvYmotPnNoYTEpKQogCQkJcmV0dXJuOyAvKiBpdCBpcyBpbiBwYWNrIC0gZm9yZ2V0IGFib3V0IGl0ICovCiAJCXByaW50ZigibWlzc2luZyAlcyAlc1xuIiwgdHlwZW5hbWUob2JqLT50eXBlKSwgc2hhMV90b19oZXgob2JqLT5zaGExKSk7CkBAIC0zMDYsOCArMzA0LDcgQEAKIAlpZiAob2JqLT50eXBlID09IE9CSl9UUkVFKSB7CiAJCXN0cnVjdCB0cmVlICppdGVtID0gKHN0cnVjdCB0cmVlICopIG9iajsKIAotCQlmcmVlKGl0ZW0tPmJ1ZmZlcik7Ci0JCWl0ZW0tPmJ1ZmZlciA9IE5VTEw7CisJCWZyZWVfdHJlZV9idWZmZXIoaXRlbSk7CiAJfQogCiAJaWYgKG9iai0+dHlwZSA9PSBPQkpfQ09NTUlUKSB7CkBAIC0zNDAsNiArMzM3LDcgQEAKIAkJcmV0dXJuIGVycm9yKCIlczogb2JqZWN0IGNvcnJ1cHQgb3IgbWlzc2luZyIsCiAJCQkgICAgIHNoYTFfdG9faGV4KHNoYTEpKTsKIAl9CisJb2JqLT5mbGFncyB8PSBIQVNfT0JKOwogCXJldHVybiBmc2NrX29iaihvYmopOwogfQogCkBAIC0zNTIsNiArMzUwLDcgQEAKIAkJZXJyb3JzX2ZvdW5kIHw9IEVSUk9SX09CSkVDVDsKIAkJcmV0dXJuIGVycm9yKCIlczogb2JqZWN0IGNvcnJ1cHQgb3IgbWlzc2luZyIsIHNoYTFfdG9faGV4KHNoYTEpKTsKIAl9CisJb2JqLT5mbGFncyA9IEhBU19PQko7CiAJcmV0dXJuIGZzY2tfb2JqKG9iaik7CiB9CiAKQEAgLTQ0Myw3ICs0NDIsNyBAQAogCQkJYWRkX3NoYTFfbGlzdChzaGExLCBESVJFTlRfU09SVF9ISU5UKGRlKSk7CiAJCQljb250aW51ZTsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChkZS0+ZF9uYW1lLCAidG1wX29ial8iKSkKKwkJaWYgKHN0YXJ0c193aXRoKGRlLT5kX25hbWUsICJ0bXBfb2JqXyIpKQogCQkJY29udGludWU7CiAJCWZwcmludGYoc3RkZXJyLCAiYmFkIHNoYTEgZmlsZTogJXMvJXNcbiIsIHBhdGgsIGRlLT5kX25hbWUpOwogCX0KQEAgLTQ4NSw3ICs0ODQsNyBAQAogCiBzdGF0aWMgaW50IGlzX2JyYW5jaChjb25zdCBjaGFyICpyZWZuYW1lKQogewotCXJldHVybiAhc3RyY21wKHJlZm5hbWUsICJIRUFEIikgfHwgIXByZWZpeGNtcChyZWZuYW1lLCAicmVmcy9oZWFkcy8iKTsKKwlyZXR1cm4gIXN0cmNtcChyZWZuYW1lLCAiSEVBRCIpIHx8IHN0YXJ0c193aXRoKHJlZm5hbWUsICJyZWZzL2hlYWRzLyIpOwogfQogCiBzdGF0aWMgaW50IGZzY2tfaGFuZGxlX3JlZihjb25zdCBjaGFyICpyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBpbnQgZmxhZywgdm9pZCAqY2JfZGF0YSkKQEAgLTU2Nyw3ICs1NjYsNyBAQAogCWlmICghc3RyY21wKGhlYWRfcG9pbnRzX2F0LCAiSEVBRCIpKQogCQkvKiBkZXRhY2hlZCBIRUFEICovCiAJCW51bGxfaXNfZXJyb3IgPSAxOwotCWVsc2UgaWYgKHByZWZpeGNtcChoZWFkX3BvaW50c19hdCwgInJlZnMvaGVhZHMvIikpCisJZWxzZSBpZiAoIXN0YXJ0c193aXRoKGhlYWRfcG9pbnRzX2F0LCAicmVmcy9oZWFkcy8iKSkKIAkJcmV0dXJuIGVycm9yKCJIRUFEIHBvaW50cyB0byBzb21ldGhpbmcgc3RyYW5nZSAoJXMpIiwKIAkJCSAgICAgaGVhZF9wb2ludHNfYXQpOwogCWlmIChpc19udWxsX3NoYTEoaGVhZF9zaGExKSkgewpAQCAtNjExLDE1ICs2MTAsMTUgQEAKIAogc3RhdGljIHN0cnVjdCBvcHRpb24gZnNja19vcHRzW10gPSB7CiAJT1BUX19WRVJCT1NFKCZ2ZXJib3NlLCBOXygiYmUgdmVyYm9zZSIpKSwKLQlPUFRfQk9PTEVBTigwLCAidW5yZWFjaGFibGUiLCAmc2hvd191bnJlYWNoYWJsZSwgTl8oInNob3cgdW5yZWFjaGFibGUgb2JqZWN0cyIpKSwKKwlPUFRfQk9PTCgwLCAidW5yZWFjaGFibGUiLCAmc2hvd191bnJlYWNoYWJsZSwgTl8oInNob3cgdW5yZWFjaGFibGUgb2JqZWN0cyIpKSwKIAlPUFRfQk9PTCgwLCAiZGFuZ2xpbmciLCAmc2hvd19kYW5nbGluZywgTl8oInNob3cgZGFuZ2xpbmcgb2JqZWN0cyIpKSwKLQlPUFRfQk9PTEVBTigwLCAidGFncyIsICZzaG93X3RhZ3MsIE5fKCJyZXBvcnQgdGFncyIpKSwKLQlPUFRfQk9PTEVBTigwLCAicm9vdCIsICZzaG93X3Jvb3QsIE5fKCJyZXBvcnQgcm9vdCBub2RlcyIpKSwKLQlPUFRfQk9PTEVBTigwLCAiY2FjaGUiLCAma2VlcF9jYWNoZV9vYmplY3RzLCBOXygibWFrZSBpbmRleCBvYmplY3RzIGhlYWQgbm9kZXMiKSksCi0JT1BUX0JPT0xFQU4oMCwgInJlZmxvZ3MiLCAmaW5jbHVkZV9yZWZsb2dzLCBOXygibWFrZSByZWZsb2dzIGhlYWQgbm9kZXMgKGRlZmF1bHQpIikpLAotCU9QVF9CT09MRUFOKDAsICJmdWxsIiwgJmNoZWNrX2Z1bGwsIE5fKCJhbHNvIGNvbnNpZGVyIHBhY2tzIGFuZCBhbHRlcm5hdGUgb2JqZWN0cyIpKSwKLQlPUFRfQk9PTEVBTigwLCAic3RyaWN0IiwgJmNoZWNrX3N0cmljdCwgTl8oImVuYWJsZSBtb3JlIHN0cmljdCBjaGVja2luZyIpKSwKLQlPUFRfQk9PTEVBTigwLCAibG9zdC1mb3VuZCIsICZ3cml0ZV9sb3N0X2FuZF9mb3VuZCwKKwlPUFRfQk9PTCgwLCAidGFncyIsICZzaG93X3RhZ3MsIE5fKCJyZXBvcnQgdGFncyIpKSwKKwlPUFRfQk9PTCgwLCAicm9vdCIsICZzaG93X3Jvb3QsIE5fKCJyZXBvcnQgcm9vdCBub2RlcyIpKSwKKwlPUFRfQk9PTCgwLCAiY2FjaGUiLCAma2VlcF9jYWNoZV9vYmplY3RzLCBOXygibWFrZSBpbmRleCBvYmplY3RzIGhlYWQgbm9kZXMiKSksCisJT1BUX0JPT0woMCwgInJlZmxvZ3MiLCAmaW5jbHVkZV9yZWZsb2dzLCBOXygibWFrZSByZWZsb2dzIGhlYWQgbm9kZXMgKGRlZmF1bHQpIikpLAorCU9QVF9CT09MKDAsICJmdWxsIiwgJmNoZWNrX2Z1bGwsIE5fKCJhbHNvIGNvbnNpZGVyIHBhY2tzIGFuZCBhbHRlcm5hdGUgb2JqZWN0cyIpKSwKKwlPUFRfQk9PTCgwLCAic3RyaWN0IiwgJmNoZWNrX3N0cmljdCwgTl8oImVuYWJsZSBtb3JlIHN0cmljdCBjaGVja2luZyIpKSwKKwlPUFRfQk9PTCgwLCAibG9zdC1mb3VuZCIsICZ3cml0ZV9sb3N0X2FuZF9mb3VuZCwKIAkJCQlOXygid3JpdGUgZGFuZ2xpbmcgb2JqZWN0cyBpbiAuZ2l0L2xvc3QtZm91bmQiKSksCiAJT1BUX0JPT0woMCwgInByb2dyZXNzIiwgJnNob3dfcHJvZ3Jlc3MsIE5fKCJzaG93IHByb2dyZXNzIikpLAogCU9QVF9FTkQoKSwKZGlmZiAtLWdpdCBhL2J1aWx0aW4vZ2MuYyBiL2J1aWx0aW4vZ2MuYwppbmRleCA2YmU2YzhkLi5jMTk1NDVkIDEwMDY0NAotLS0gYS9idWlsdGluL2djLmMKKysrIGIvYnVpbHRpbi9nYy5jCkBAIC0xNCw3ICsxNCw5IEBACiAjaW5jbHVkZSAiY2FjaGUuaCIKICNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCiAjaW5jbHVkZSAicnVuLWNvbW1hbmQuaCIKKyNpbmNsdWRlICJzaWdjaGFpbi5oIgogI2luY2x1ZGUgImFyZ3YtYXJyYXkuaCIKKyNpbmNsdWRlICJjb21taXQuaCIKIAogI2RlZmluZSBGQUlMRURfUlVOICJmYWlsZWQgdG8gcnVuICVzIgogCkBAIC0zNSw2ICszNywyMSBAQAogc3RhdGljIHN0cnVjdCBhcmd2X2FycmF5IHBydW5lID0gQVJHVl9BUlJBWV9JTklUOwogc3RhdGljIHN0cnVjdCBhcmd2X2FycmF5IHJlcmVyZSA9IEFSR1ZfQVJSQVlfSU5JVDsKIAorc3RhdGljIGNoYXIgKnBpZGZpbGU7CisKK3N0YXRpYyB2b2lkIHJlbW92ZV9waWRmaWxlKHZvaWQpCit7CisJaWYgKHBpZGZpbGUpCisJCXVubGluayhwaWRmaWxlKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlX3BpZGZpbGVfb25fc2lnbmFsKGludCBzaWdubykKK3sKKwlyZW1vdmVfcGlkZmlsZSgpOworCXNpZ2NoYWluX3BvcChzaWdubyk7CisJcmFpc2Uoc2lnbm8pOworfQorCiBzdGF0aWMgaW50IGdjX2NvbmZpZyhjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpjYikKIHsKIAlpZiAoIXN0cmNtcCh2YXIsICJnYy5wYWNrcmVmcyIpKSB7CkBAIC0xNjcsMTkgKzE4NCw4NiBAQAogCXJldHVybiAxOwogfQogCisvKiByZXR1cm4gTlVMTCBvbiBzdWNjZXNzLCBlbHNlIGhvc3RuYW1lIHJ1bm5pbmcgdGhlIGdjICovCitzdGF0aWMgY29uc3QgY2hhciAqbG9ja19yZXBvX2Zvcl9nYyhpbnQgZm9yY2UsIHBpZF90KiByZXRfcGlkKQoreworCXN0YXRpYyBzdHJ1Y3QgbG9ja19maWxlIGxvY2s7CisJc3RhdGljIGNoYXIgbG9ja2luZ19ob3N0WzEyOF07CisJY2hhciBteV9ob3N0WzEyOF07CisJc3RydWN0IHN0cmJ1ZiBzYiA9IFNUUkJVRl9JTklUOworCXN0cnVjdCBzdGF0IHN0OworCXVpbnRtYXhfdCBwaWQ7CisJRklMRSAqZnA7CisJaW50IGZkLCBzaG91bGRfZXhpdDsKKworCWlmIChwaWRmaWxlKQorCQkvKiBhbHJlYWR5IGxvY2tlZCAqLworCQlyZXR1cm4gTlVMTDsKKworCWlmIChnZXRob3N0bmFtZShteV9ob3N0LCBzaXplb2YobXlfaG9zdCkpKQorCQlzdHJjcHkobXlfaG9zdCwgInVua25vd24iKTsKKworCWZkID0gaG9sZF9sb2NrX2ZpbGVfZm9yX3VwZGF0ZSgmbG9jaywgZ2l0X3BhdGgoImdjLnBpZCIpLAorCQkJCSAgICAgICBMT0NLX0RJRV9PTl9FUlJPUik7CisJaWYgKCFmb3JjZSkgeworCQlmcCA9IGZvcGVuKGdpdF9wYXRoKCJnYy5waWQiKSwgInIiKTsKKwkJbWVtc2V0KGxvY2tpbmdfaG9zdCwgMCwgc2l6ZW9mKGxvY2tpbmdfaG9zdCkpOworCQlzaG91bGRfZXhpdCA9CisJCQlmcCAhPSBOVUxMICYmCisJCQkhZnN0YXQoZmlsZW5vKGZwKSwgJnN0KSAmJgorCQkJLyoKKwkJCSAqIDEyIGhvdXIgbGltaXQgaXMgdmVyeSBnZW5lcm91cyBhcyBnYyBzaG91bGQKKwkJCSAqIG5ldmVyIHRha2UgdGhhdCBsb25nLiBPbiB0aGUgb3RoZXIgaGFuZCB3ZQorCQkJICogZG9uJ3QgcmVhbGx5IG5lZWQgYSBzdHJpY3QgbGltaXQgaGVyZSwKKwkJCSAqIHJ1bm5pbmcgZ2MgLS1hdXRvIG9uZSBkYXkgbGF0ZSBpcyBub3QgYSBiaWcKKwkJCSAqIHByb2JsZW0uIC0tZm9yY2UgY2FuIGJlIHVzZWQgaW4gbWFudWFsIGdjCisJCQkgKiBhZnRlciB0aGUgdXNlciB2ZXJpZmllcyB0aGF0IG5vIGdjIGlzCisJCQkgKiBydW5uaW5nLgorCQkJICovCisJCQl0aW1lKE5VTEwpIC0gc3Quc3RfbXRpbWUgPD0gMTIgKiAzNjAwICYmCisJCQlmc2NhbmYoZnAsICIlIlBSSXVNQVgiICUxMjdjIiwgJnBpZCwgbG9ja2luZ19ob3N0KSA9PSAyICYmCisJCQkvKiBiZSBnZW50bGUgdG8gY29uY3VycmVudCAiZ2MiIG9uIHJlbW90ZSBob3N0cyAqLworCQkJKHN0cmNtcChsb2NraW5nX2hvc3QsIG15X2hvc3QpIHx8ICFraWxsKHBpZCwgMCkgfHwgZXJybm8gPT0gRVBFUk0pOworCQlpZiAoZnAgIT0gTlVMTCkKKwkJCWZjbG9zZShmcCk7CisJCWlmIChzaG91bGRfZXhpdCkgeworCQkJaWYgKGZkID49IDApCisJCQkJcm9sbGJhY2tfbG9ja19maWxlKCZsb2NrKTsKKwkJCSpyZXRfcGlkID0gcGlkOworCQkJcmV0dXJuIGxvY2tpbmdfaG9zdDsKKwkJfQorCX0KKworCXN0cmJ1Zl9hZGRmKCZzYiwgIiUiUFJJdU1BWCIgJXMiLAorCQkgICAgKHVpbnRtYXhfdCkgZ2V0cGlkKCksIG15X2hvc3QpOworCXdyaXRlX2luX2Z1bGwoZmQsIHNiLmJ1Ziwgc2IubGVuKTsKKwlzdHJidWZfcmVsZWFzZSgmc2IpOworCWNvbW1pdF9sb2NrX2ZpbGUoJmxvY2spOworCisJcGlkZmlsZSA9IGdpdF9wYXRoZHVwKCJnYy5waWQiKTsKKwlzaWdjaGFpbl9wdXNoX2NvbW1vbihyZW1vdmVfcGlkZmlsZV9vbl9zaWduYWwpOworCWF0ZXhpdChyZW1vdmVfcGlkZmlsZSk7CisKKwlyZXR1cm4gTlVMTDsKK30KKwogaW50IGNtZF9nYyhpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKIHsKIAlpbnQgYWdncmVzc2l2ZSA9IDA7CiAJaW50IGF1dG9fZ2MgPSAwOwogCWludCBxdWlldCA9IDA7CisJaW50IGZvcmNlID0gMDsKKwljb25zdCBjaGFyICpuYW1lOworCXBpZF90IHBpZDsKIAogCXN0cnVjdCBvcHRpb24gYnVpbHRpbl9nY19vcHRpb25zW10gPSB7CiAJCU9QVF9fUVVJRVQoJnF1aWV0LCBOXygic3VwcHJlc3MgcHJvZ3Jlc3MgcmVwb3J0aW5nIikpLAogCQl7IE9QVElPTl9TVFJJTkcsIDAsICJwcnVuZSIsICZwcnVuZV9leHBpcmUsIE5fKCJkYXRlIiksCiAJCQlOXygicHJ1bmUgdW5yZWZlcmVuY2VkIG9iamVjdHMiKSwKIAkJCVBBUlNFX09QVF9PUFRBUkcsIE5VTEwsIChpbnRwdHJfdClwcnVuZV9leHBpcmUgfSwKLQkJT1BUX0JPT0xFQU4oMCwgImFnZ3Jlc3NpdmUiLCAmYWdncmVzc2l2ZSwgTl8oImJlIG1vcmUgdGhvcm91Z2ggKGluY3JlYXNlZCBydW50aW1lKSIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgImF1dG8iLCAmYXV0b19nYywgTl8oImVuYWJsZSBhdXRvLWdjIG1vZGUiKSksCisJCU9QVF9CT09MKDAsICJhZ2dyZXNzaXZlIiwgJmFnZ3Jlc3NpdmUsIE5fKCJiZSBtb3JlIHRob3JvdWdoIChpbmNyZWFzZWQgcnVudGltZSkiKSksCisJCU9QVF9CT09MKDAsICJhdXRvIiwgJmF1dG9fZ2MsIE5fKCJlbmFibGUgYXV0by1nYyBtb2RlIikpLAorCQlPUFRfQk9PTCgwLCAiZm9yY2UiLCAmZm9yY2UsIE5fKCJmb3JjZSBydW5uaW5nIGdjIGV2ZW4gaWYgdGhlcmUgbWF5IGJlIGFub3RoZXIgZ2MgcnVubmluZyIpKSwKIAkJT1BUX0VORCgpCiAJfTsKIApAQCAtMjI1LDYgKzMwOSwxNCBAQAogCX0gZWxzZQogCQlhZGRfcmVwYWNrX2FsbF9vcHRpb24oKTsKIAorCW5hbWUgPSBsb2NrX3JlcG9fZm9yX2djKGZvcmNlLCAmcGlkKTsKKwlpZiAobmFtZSkgeworCQlpZiAoYXV0b19nYykKKwkJCXJldHVybiAwOyAvKiBiZSBxdWlldCBvbiAtLWF1dG8gKi8KKwkJZGllKF8oImdjIGlzIGFscmVhZHkgcnVubmluZyBvbiBtYWNoaW5lICclcycgcGlkICUiUFJJdU1BWCIgKHVzZSAtLWZvcmNlIGlmIG5vdCkiKSwKKwkJICAgIG5hbWUsICh1aW50bWF4X3QpcGlkKTsKKwl9CisKIAlpZiAocGFja19yZWZzICYmIHJ1bl9jb21tYW5kX3Zfb3B0KHBhY2tfcmVmc19jbWQuYXJndiwgUlVOX0dJVF9DTUQpKQogCQlyZXR1cm4gZXJyb3IoRkFJTEVEX1JVTiwgcGFja19yZWZzX2NtZC5hcmd2WzBdKTsKIApkaWZmIC0tZ2l0IGEvYnVpbHRpbi9nZXQtdGFyLWNvbW1pdC1pZC5jIGIvYnVpbHRpbi9nZXQtdGFyLWNvbW1pdC1pZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNzI1OTYKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsdGluL2dldC10YXItY29tbWl0LWlkLmMKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwNSwgMjAwNiBSZW5lIFNjaGFyZmUKKyAqLworI2luY2x1ZGUgImNhY2hlLmgiCisjaW5jbHVkZSAiY29tbWl0LmgiCisjaW5jbHVkZSAidGFyLmgiCisjaW5jbHVkZSAiYnVpbHRpbi5oIgorI2luY2x1ZGUgInF1b3RlLmgiCisKK3N0YXRpYyBjb25zdCBjaGFyIGJ1aWx0aW5fZ2V0X3Rhcl9jb21taXRfaWRfdXNhZ2VbXSA9CisiZ2l0IGdldC10YXItY29tbWl0LWlkIDwgPHRhcmZpbGU+IjsKKworLyogdXN0YXIgaGVhZGVyICsgZXh0ZW5kZWQgZ2xvYmFsIGhlYWRlciBjb250ZW50ICovCisjZGVmaW5lIFJFQ09SRFNJWkUJKDUxMikKKyNkZWZpbmUgSEVBREVSU0laRSAoMiAqIFJFQ09SRFNJWkUpCisKK2ludCBjbWRfZ2V0X3Rhcl9jb21taXRfaWQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCit7CisJY2hhciBidWZmZXJbSEVBREVSU0laRV07CisJc3RydWN0IHVzdGFyX2hlYWRlciAqaGVhZGVyID0gKHN0cnVjdCB1c3Rhcl9oZWFkZXIgKilidWZmZXI7CisJY2hhciAqY29udGVudCA9IGJ1ZmZlciArIFJFQ09SRFNJWkU7CisJc3NpemVfdCBuOworCisJaWYgKGFyZ2MgIT0gMSkKKwkJdXNhZ2UoYnVpbHRpbl9nZXRfdGFyX2NvbW1pdF9pZF91c2FnZSk7CisKKwluID0gcmVhZF9pbl9mdWxsKDAsIGJ1ZmZlciwgSEVBREVSU0laRSk7CisJaWYgKG4gPCBIRUFERVJTSVpFKQorCQlkaWUoImdpdCBnZXQtdGFyLWNvbW1pdC1pZDogcmVhZCBlcnJvciIpOworCWlmIChoZWFkZXItPnR5cGVmbGFnWzBdICE9ICdnJykKKwkJcmV0dXJuIDE7CisJaWYgKG1lbWNtcChjb250ZW50LCAiNTIgY29tbWVudD0iLCAxMSkpCisJCXJldHVybiAxOworCisJbiA9IHdyaXRlX2luX2Z1bGwoMSwgY29udGVudCArIDExLCA0MSk7CisJaWYgKG4gPCA0MSkKKwkJZGllX2Vycm5vKCJnaXQgZ2V0LXRhci1jb21taXQtaWQ6IHdyaXRlIGVycm9yIik7CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2J1aWx0aW4vZ3JlcC5jIGIvYnVpbHRpbi9ncmVwLmMKaW5kZXggZDNiM2IxZC4uNjNmODYwMyAxMDA2NDQKLS0tIGEvYnVpbHRpbi9ncmVwLmMKKysrIGIvYnVpbHRpbi9ncmVwLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlICJncmVwLmgiCiAjaW5jbHVkZSAicXVvdGUuaCIKICNpbmNsdWRlICJkaXIuaCIKKyNpbmNsdWRlICJwYXRoc3BlYy5oIgogCiBzdGF0aWMgY2hhciBjb25zdCAqIGNvbnN0IGdyZXBfdXNhZ2VbXSA9IHsKIAlOXygiZ2l0IGdyZXAgW29wdGlvbnNdIFstZV0gPHBhdHRlcm4+IFs8cmV2Pi4uLl0gW1stLV0gPHBhdGg+Li4uXSIpLApAQCAtNDU3LDEwICs0NTgsMTAgQEAKIH0KIAogc3RhdGljIGludCBncmVwX29iamVjdChzdHJ1Y3QgZ3JlcF9vcHQgKm9wdCwgY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYywKLQkJICAgICAgIHN0cnVjdCBvYmplY3QgKm9iaiwgY29uc3QgY2hhciAqbmFtZSkKKwkJICAgICAgIHN0cnVjdCBvYmplY3QgKm9iaiwgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamVjdF9jb250ZXh0ICpvYykKIHsKIAlpZiAob2JqLT50eXBlID09IE9CSl9CTE9CKQotCQlyZXR1cm4gZ3JlcF9zaGExKG9wdCwgb2JqLT5zaGExLCBuYW1lLCAwLCBOVUxMKTsKKwkJcmV0dXJuIGdyZXBfc2hhMShvcHQsIG9iai0+c2hhMSwgbmFtZSwgMCwgb2MgPyBvYy0+cGF0aCA6IE5VTEwpOwogCWlmIChvYmotPnR5cGUgPT0gT0JKX0NPTU1JVCB8fCBvYmotPnR5cGUgPT0gT0JKX1RSRUUpIHsKIAkJc3RydWN0IHRyZWVfZGVzYyB0cmVlOwogCQl2b2lkICpkYXRhOwpAQCAtNTAyLDcgKzUwMyw3IEBACiAJZm9yIChpID0gMDsgaSA8IG5yOyBpKyspIHsKIAkJc3RydWN0IG9iamVjdCAqcmVhbF9vYmo7CiAJCXJlYWxfb2JqID0gZGVyZWZfdGFnKGxpc3QtPm9iamVjdHNbaV0uaXRlbSwgTlVMTCwgMCk7Ci0JCWlmIChncmVwX29iamVjdChvcHQsIHBhdGhzcGVjLCByZWFsX29iaiwgbGlzdC0+b2JqZWN0c1tpXS5uYW1lKSkgeworCQlpZiAoZ3JlcF9vYmplY3Qob3B0LCBwYXRoc3BlYywgcmVhbF9vYmosIGxpc3QtPm9iamVjdHNbaV0ubmFtZSwgbGlzdC0+b2JqZWN0c1tpXS5jb250ZXh0KSkgewogCQkJaGl0ID0gMTsKIAkJCWlmIChvcHQtPnN0YXR1c19vbmx5KQogCQkJCWJyZWFrOwpAQCAtNTIxLDcgKzUyMiw3IEBACiAJaWYgKGV4Y19zdGQpCiAJCXNldHVwX3N0YW5kYXJkX2V4Y2x1ZGVzKCZkaXIpOwogCi0JZmlsbF9kaXJlY3RvcnkoJmRpciwgcGF0aHNwZWMtPnJhdyk7CisJZmlsbF9kaXJlY3RvcnkoJmRpciwgcGF0aHNwZWMpOwogCWZvciAoaSA9IDA7IGkgPCBkaXIubnI7IGkrKykgewogCQljb25zdCBjaGFyICpuYW1lID0gZGlyLmVudHJpZXNbaV0tPm5hbWU7CiAJCWludCBuYW1lbGVuID0gc3RybGVuKG5hbWUpOwpAQCAtNjI5LDcgKzYzMCw2IEBACiAJY29uc3QgY2hhciAqc2hvd19pbl9wYWdlciA9IE5VTEwsICpkZWZhdWx0X3BhZ2VyID0gImR1bW15IjsKIAlzdHJ1Y3QgZ3JlcF9vcHQgb3B0OwogCXN0cnVjdCBvYmplY3RfYXJyYXkgbGlzdCA9IE9CSkVDVF9BUlJBWV9JTklUOwotCWNvbnN0IGNoYXIgKipwYXRocyA9IE5VTEw7CiAJc3RydWN0IHBhdGhzcGVjIHBhdGhzcGVjOwogCXN0cnVjdCBzdHJpbmdfbGlzdCBwYXRoX2xpc3QgPSBTVFJJTkdfTElTVF9JTklUX05PRFVQOwogCWludCBpOwpAQCAtNjM4LDI2ICs2MzgsMjggQEAKIAlpbnQgcGF0dGVybl90eXBlX2FyZyA9IEdSRVBfUEFUVEVSTl9UWVBFX1VOU1BFQ0lGSUVEOwogCiAJc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7Ci0JCU9QVF9CT09MRUFOKDAsICJjYWNoZWQiLCAmY2FjaGVkLAorCQlPUFRfQk9PTCgwLCAiY2FjaGVkIiwgJmNhY2hlZCwKIAkJCU5fKCJzZWFyY2ggaW4gaW5kZXggaW5zdGVhZCBvZiBpbiB0aGUgd29yayB0cmVlIikpLAogCQlPUFRfTkVHQklUKDAsICJuby1pbmRleCIsICZ1c2VfaW5kZXgsCiAJCQkgTl8oImZpbmQgaW4gY29udGVudHMgbm90IG1hbmFnZWQgYnkgZ2l0IiksIDEpLAotCQlPUFRfQk9PTEVBTigwLCAidW50cmFja2VkIiwgJnVudHJhY2tlZCwKKwkJT1BUX0JPT0woMCwgInVudHJhY2tlZCIsICZ1bnRyYWNrZWQsCiAJCQlOXygic2VhcmNoIGluIGJvdGggdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIikpLAogCQlPUFRfU0VUX0lOVCgwLCAiZXhjbHVkZS1zdGFuZGFyZCIsICZvcHRfZXhjbHVkZSwKIAkJCSAgICBOXygic2VhcmNoIGFsc28gaW4gaWdub3JlZCBmaWxlcyIpLCAxKSwKIAkJT1BUX0dST1VQKCIiKSwKLQkJT1BUX0JPT0xFQU4oJ3YnLCAiaW52ZXJ0LW1hdGNoIiwgJm9wdC5pbnZlcnQsCisJCU9QVF9CT09MKCd2JywgImludmVydC1tYXRjaCIsICZvcHQuaW52ZXJ0LAogCQkJTl8oInNob3cgbm9uLW1hdGNoaW5nIGxpbmVzIikpLAotCQlPUFRfQk9PTEVBTignaScsICJpZ25vcmUtY2FzZSIsICZvcHQuaWdub3JlX2Nhc2UsCisJCU9QVF9CT09MKCdpJywgImlnbm9yZS1jYXNlIiwgJm9wdC5pZ25vcmVfY2FzZSwKIAkJCU5fKCJjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIikpLAotCQlPUFRfQk9PTEVBTigndycsICJ3b3JkLXJlZ2V4cCIsICZvcHQud29yZF9yZWdleHAsCisJCU9QVF9CT09MKCd3JywgIndvcmQtcmVnZXhwIiwgJm9wdC53b3JkX3JlZ2V4cCwKIAkJCU5fKCJtYXRjaCBwYXR0ZXJucyBvbmx5IGF0IHdvcmQgYm91bmRhcmllcyIpKSwKIAkJT1BUX1NFVF9JTlQoJ2EnLCAidGV4dCIsICZvcHQuYmluYXJ5LAogCQkJTl8oInByb2Nlc3MgYmluYXJ5IGZpbGVzIGFzIHRleHQiKSwgR1JFUF9CSU5BUllfVEVYVCksCiAJCU9QVF9TRVRfSU5UKCdJJywgTlVMTCwgJm9wdC5iaW5hcnksCiAJCQlOXygiZG9uJ3QgbWF0Y2ggcGF0dGVybnMgaW4gYmluYXJ5IGZpbGVzIiksCiAJCQlHUkVQX0JJTkFSWV9OT01BVENIKSwKKwkJT1BUX0JPT0woMCwgInRleHRjb252IiwgJm9wdC5hbGxvd190ZXh0Y29udiwKKwkJCSBOXygicHJvY2VzcyBiaW5hcnkgZmlsZXMgd2l0aCB0ZXh0Y29udiBmaWx0ZXJzIikpLAogCQl7IE9QVElPTl9JTlRFR0VSLCAwLCAibWF4LWRlcHRoIiwgJm9wdC5tYXhfZGVwdGgsIE5fKCJkZXB0aCIpLAogCQkJTl8oImRlc2NlbmQgYXQgbW9zdCA8ZGVwdGg+IGxldmVscyIpLCBQQVJTRV9PUFRfTk9ORUcsCiAJCQlOVUxMLCAxIH0sCkBAIC02NzUsMjYgKzY3NywyNiBAQAogCQkJICAgIE5fKCJ1c2UgUGVybC1jb21wYXRpYmxlIHJlZ3VsYXIgZXhwcmVzc2lvbnMiKSwKIAkJCSAgICBHUkVQX1BBVFRFUk5fVFlQRV9QQ1JFKSwKIAkJT1BUX0dST1VQKCIiKSwKLQkJT1BUX0JPT0xFQU4oJ24nLCAibGluZS1udW1iZXIiLCAmb3B0LmxpbmVudW0sIE5fKCJzaG93IGxpbmUgbnVtYmVycyIpKSwKKwkJT1BUX0JPT0woJ24nLCAibGluZS1udW1iZXIiLCAmb3B0LmxpbmVudW0sIE5fKCJzaG93IGxpbmUgbnVtYmVycyIpKSwKIAkJT1BUX05FR0JJVCgnaCcsIE5VTEwsICZvcHQucGF0aG5hbWUsIE5fKCJkb24ndCBzaG93IGZpbGVuYW1lcyIpLCAxKSwKIAkJT1BUX0JJVCgnSCcsIE5VTEwsICZvcHQucGF0aG5hbWUsIE5fKCJzaG93IGZpbGVuYW1lcyIpLCAxKSwKIAkJT1BUX05FR0JJVCgwLCAiZnVsbC1uYW1lIiwgJm9wdC5yZWxhdGl2ZSwKIAkJCU5fKCJzaG93IGZpbGVuYW1lcyByZWxhdGl2ZSB0byB0b3AgZGlyZWN0b3J5IiksIDEpLAotCQlPUFRfQk9PTEVBTignbCcsICJmaWxlcy13aXRoLW1hdGNoZXMiLCAmb3B0Lm5hbWVfb25seSwKKwkJT1BUX0JPT0woJ2wnLCAiZmlsZXMtd2l0aC1tYXRjaGVzIiwgJm9wdC5uYW1lX29ubHksCiAJCQlOXygic2hvdyBvbmx5IGZpbGVuYW1lcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIikpLAotCQlPUFRfQk9PTEVBTigwLCAibmFtZS1vbmx5IiwgJm9wdC5uYW1lX29ubHksCisJCU9QVF9CT09MKDAsICJuYW1lLW9ubHkiLCAmb3B0Lm5hbWVfb25seSwKIAkJCU5fKCJzeW5vbnltIGZvciAtLWZpbGVzLXdpdGgtbWF0Y2hlcyIpKSwKLQkJT1BUX0JPT0xFQU4oJ0wnLCAiZmlsZXMtd2l0aG91dC1tYXRjaCIsCisJCU9QVF9CT09MKCdMJywgImZpbGVzLXdpdGhvdXQtbWF0Y2giLAogCQkJJm9wdC51bm1hdGNoX25hbWVfb25seSwKIAkJCU5fKCJzaG93IG9ubHkgdGhlIG5hbWVzIG9mIGZpbGVzIHdpdGhvdXQgbWF0Y2giKSksCi0JCU9QVF9CT09MRUFOKCd6JywgIm51bGwiLCAmb3B0Lm51bGxfZm9sbG93aW5nX25hbWUsCisJCU9QVF9CT09MKCd6JywgIm51bGwiLCAmb3B0Lm51bGxfZm9sbG93aW5nX25hbWUsCiAJCQlOXygicHJpbnQgTlVMIGFmdGVyIGZpbGVuYW1lcyIpKSwKLQkJT1BUX0JPT0xFQU4oJ2MnLCAiY291bnQiLCAmb3B0LmNvdW50LAorCQlPUFRfQk9PTCgnYycsICJjb3VudCIsICZvcHQuY291bnQsCiAJCQlOXygic2hvdyB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgaW5zdGVhZCBvZiBtYXRjaGluZyBsaW5lcyIpKSwKIAkJT1BUX19DT0xPUigmb3B0LmNvbG9yLCBOXygiaGlnaGxpZ2h0IG1hdGNoZXMiKSksCi0JCU9QVF9CT09MRUFOKDAsICJicmVhayIsICZvcHQuZmlsZV9icmVhaywKKwkJT1BUX0JPT0woMCwgImJyZWFrIiwgJm9wdC5maWxlX2JyZWFrLAogCQkJTl8oInByaW50IGVtcHR5IGxpbmUgYmV0d2VlbiBtYXRjaGVzIGZyb20gZGlmZmVyZW50IGZpbGVzIikpLAotCQlPUFRfQk9PTEVBTigwLCAiaGVhZGluZyIsICZvcHQuaGVhZGluZywKKwkJT1BUX0JPT0woMCwgImhlYWRpbmciLCAmb3B0LmhlYWRpbmcsCiAJCQlOXygic2hvdyBmaWxlbmFtZSBvbmx5IG9uY2UgYWJvdmUgbWF0Y2hlcyBmcm9tIHNhbWUgZmlsZSIpKSwKIAkJT1BUX0dST1VQKCIiKSwKIAkJT1BUX0NBTExCQUNLKCdDJywgImNvbnRleHQiLCAmb3B0LCBOXygibiIpLApAQCAtNzA2LDkgKzcwOCw5IEBACiAJCQlOXygic2hvdyA8bj4gY29udGV4dCBsaW5lcyBhZnRlciBtYXRjaGVzIikpLAogCQlPUFRfTlVNQkVSX0NBTExCQUNLKCZvcHQsIE5fKCJzaG9ydGN1dCBmb3IgLUMgTlVNIiksCiAJCQljb250ZXh0X2NhbGxiYWNrKSwKLQkJT1BUX0JPT0xFQU4oJ3AnLCAic2hvdy1mdW5jdGlvbiIsICZvcHQuZnVuY25hbWUsCisJCU9QVF9CT09MKCdwJywgInNob3ctZnVuY3Rpb24iLCAmb3B0LmZ1bmNuYW1lLAogCQkJTl8oInNob3cgYSBsaW5lIHdpdGggdGhlIGZ1bmN0aW9uIG5hbWUgYmVmb3JlIG1hdGNoZXMiKSksCi0JCU9QVF9CT09MRUFOKCdXJywgImZ1bmN0aW9uLWNvbnRleHQiLCAmb3B0LmZ1bmNib2R5LAorCQlPUFRfQk9PTCgnVycsICJmdW5jdGlvbi1jb250ZXh0IiwgJm9wdC5mdW5jYm9keSwKIAkJCU5fKCJzaG93IHRoZSBzdXJyb3VuZGluZyBmdW5jdGlvbiIpKSwKIAkJT1BUX0dST1VQKCIiKSwKIAkJT1BUX0NBTExCQUNLKCdmJywgTlVMTCwgJm9wdCwgTl8oImZpbGUiKSwKQEAgLTcxOCw3ICs3MjAsNyBAQAogCQl7IE9QVElPTl9DQUxMQkFDSywgMCwgImFuZCIsICZvcHQsIE5VTEwsCiAJCSAgTl8oImNvbWJpbmUgcGF0dGVybnMgc3BlY2lmaWVkIHdpdGggLWUiKSwKIAkJICBQQVJTRV9PUFRfTk9BUkcgfCBQQVJTRV9PUFRfTk9ORUcsIGFuZF9jYWxsYmFjayB9LAotCQlPUFRfQk9PTEVBTigwLCAib3IiLCAmZHVtbXksICIiKSwKKwkJT1BUX0JPT0woMCwgIm9yIiwgJmR1bW15LCAiIiksCiAJCXsgT1BUSU9OX0NBTExCQUNLLCAwLCAibm90IiwgJm9wdCwgTlVMTCwgIiIsCiAJCSAgUEFSU0VfT1BUX05PQVJHIHwgUEFSU0VfT1BUX05PTkVHLCBub3RfY2FsbGJhY2sgfSwKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssICcoJywgTlVMTCwgJm9wdCwgTlVMTCwgIiIsCkBAIC03MjksNyArNzMxLDcgQEAKIAkJICBjbG9zZV9jYWxsYmFjayB9LAogCQlPUFRfX1FVSUVUKCZvcHQuc3RhdHVzX29ubHksCiAJCQkgICBOXygiaW5kaWNhdGUgaGl0IHdpdGggZXhpdCBzdGF0dXMgd2l0aG91dCBvdXRwdXQiKSksCi0JCU9QVF9CT09MRUFOKDAsICJhbGwtbWF0Y2giLCAmb3B0LmFsbF9tYXRjaCwKKwkJT1BUX0JPT0woMCwgImFsbC1tYXRjaCIsICZvcHQuYWxsX21hdGNoLAogCQkJTl8oInNob3cgb25seSBtYXRjaGVzIGZyb20gZmlsZXMgdGhhdCBtYXRjaCBhbGwgcGF0dGVybnMiKSksCiAJCXsgT1BUSU9OX1NFVF9JTlQsIDAsICJkZWJ1ZyIsICZvcHQuZGVidWcsIE5VTEwsCiAJCSAgTl8oInNob3cgcGFyc2UgdHJlZSBmb3IgZ3JlcCBleHByZXNzaW9uIiksCkBAIC03MzgsOCArNzQwLDggQEAKIAkJeyBPUFRJT05fU1RSSU5HLCAnTycsICJvcGVuLWZpbGVzLWluLXBhZ2VyIiwgJnNob3dfaW5fcGFnZXIsCiAJCQlOXygicGFnZXIiKSwgTl8oInNob3cgbWF0Y2hpbmcgZmlsZXMgaW4gdGhlIHBhZ2VyIiksCiAJCQlQQVJTRV9PUFRfT1BUQVJHLCBOVUxMLCAoaW50cHRyX3QpZGVmYXVsdF9wYWdlciB9LAotCQlPUFRfQk9PTEVBTigwLCAiZXh0LWdyZXAiLCAmZXh0ZXJuYWxfZ3JlcF9hbGxvd2VkX19pZ25vcmVkLAotCQkJICAgIE5fKCJhbGxvdyBjYWxsaW5nIG9mIGdyZXAoMSkgKGlnbm9yZWQgYnkgdGhpcyBidWlsZCkiKSksCisJCU9QVF9CT09MKDAsICJleHQtZ3JlcCIsICZleHRlcm5hbF9ncmVwX2FsbG93ZWRfX2lnbm9yZWQsCisJCQkgTl8oImFsbG93IGNhbGxpbmcgb2YgZ3JlcCgxKSAoaWdub3JlZCBieSB0aGlzIGJ1aWxkKSIpKSwKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssIDAsICJoZWxwLWFsbCIsICZvcHRpb25zLCBOVUxMLCBOXygic2hvdyB1c2FnZSIpLAogCQkgIFBBUlNFX09QVF9ISURERU4gfCBQQVJTRV9PUFRfTk9BUkcsIGhlbHBfY2FsbGJhY2sgfSwKIAkJT1BUX0VORCgpCkBAIC04MTcsMTIgKzgxOSwxMyBAQAogCWZvciAoaSA9IDA7IGkgPCBhcmdjOyBpKyspIHsKIAkJY29uc3QgY2hhciAqYXJnID0gYXJndltpXTsKIAkJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKKwkJc3RydWN0IG9iamVjdF9jb250ZXh0IG9jOwogCQkvKiBJcyBpdCBhIHJldj8gKi8KLQkJaWYgKCFnZXRfc2hhMShhcmcsIHNoYTEpKSB7CisJCWlmICghZ2V0X3NoYTFfd2l0aF9jb250ZXh0KGFyZywgMCwgc2hhMSwgJm9jKSkgewogCQkJc3RydWN0IG9iamVjdCAqb2JqZWN0ID0gcGFyc2Vfb2JqZWN0X29yX2RpZShzaGExLCBhcmcpOwogCQkJaWYgKCFzZWVuX2Rhc2hkYXNoKQogCQkJCXZlcmlmeV9ub25fZmlsZW5hbWUocHJlZml4LCBhcmcpOwotCQkJYWRkX29iamVjdF9hcnJheShvYmplY3QsIGFyZywgJmxpc3QpOworCQkJYWRkX29iamVjdF9hcnJheV93aXRoX2NvbnRleHQob2JqZWN0LCBhcmcsICZsaXN0LCB4bWVtZHVweigmb2MsIHNpemVvZihzdHJ1Y3Qgb2JqZWN0X2NvbnRleHQpKSk7CiAJCQljb250aW51ZTsKIAkJfQogCQlpZiAoIXN0cmNtcChhcmcsICItLSIpKSB7CkBAIC04NTYsOCArODU5LDEwIEBACiAJCQl2ZXJpZnlfZmlsZW5hbWUocHJlZml4LCBhcmd2W2pdLCBqID09IGkpOwogCX0KIAotCXBhdGhzID0gZ2V0X3BhdGhzcGVjKHByZWZpeCwgYXJndiArIGkpOwotCWluaXRfcGF0aHNwZWMoJnBhdGhzcGVjLCBwYXRocyk7CisJcGFyc2VfcGF0aHNwZWMoJnBhdGhzcGVjLCAwLAorCQkgICAgICAgUEFUSFNQRUNfUFJFRkVSX0NXRCB8CisJCSAgICAgICAob3B0Lm1heF9kZXB0aCAhPSAtMSA/IFBBVEhTUEVDX01BWERFUFRIX1ZBTElEIDogMCksCisJCSAgICAgICBwcmVmaXgsIGFyZ3YgKyBpKTsKIAlwYXRoc3BlYy5tYXhfZGVwdGggPSBvcHQubWF4X2RlcHRoOwogCXBhdGhzcGVjLnJlY3Vyc2l2ZSA9IDE7CiAKZGlmZiAtLWdpdCBhL2J1aWx0aW4vaGFzaC1vYmplY3QuYyBiL2J1aWx0aW4vaGFzaC1vYmplY3QuYwppbmRleCA4ZDE4NGYxLi5kN2ZjZjRjIDEwMDY0NAotLS0gYS9idWlsdGluL2hhc2gtb2JqZWN0LmMKKysrIGIvYnVpbHRpbi9oYXNoLW9iamVjdC5jCkBAIC03MCwxMCArNzAsMTAgQEAKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb24gaGFzaF9vYmplY3Rfb3B0aW9uc1tdID0gewogCU9QVF9TVFJJTkcoJ3QnLCBOVUxMLCAmdHlwZSwgTl8oInR5cGUiKSwgTl8oIm9iamVjdCB0eXBlIikpLAotCU9QVF9CT09MRUFOKCd3JywgTlVMTCwgJndyaXRlX29iamVjdCwgTl8oIndyaXRlIHRoZSBvYmplY3QgaW50byB0aGUgb2JqZWN0IGRhdGFiYXNlIikpLAotCU9QVF9CT09MRUFOKCAwICwgInN0ZGluIiwgJmhhc2hzdGRpbiwgTl8oInJlYWQgdGhlIG9iamVjdCBmcm9tIHN0ZGluIikpLAotCU9QVF9CT09MRUFOKCAwICwgInN0ZGluLXBhdGhzIiwgJnN0ZGluX3BhdGhzLCBOXygicmVhZCBmaWxlIG5hbWVzIGZyb20gc3RkaW4iKSksCi0JT1BUX0JPT0xFQU4oIDAgLCAibm8tZmlsdGVycyIsICZub19maWx0ZXJzLCBOXygic3RvcmUgZmlsZSBhcyBpcyB3aXRob3V0IGZpbHRlcnMiKSksCisJT1BUX0JPT0woJ3cnLCBOVUxMLCAmd3JpdGVfb2JqZWN0LCBOXygid3JpdGUgdGhlIG9iamVjdCBpbnRvIHRoZSBvYmplY3QgZGF0YWJhc2UiKSksCisJT1BUX0NPVU5UVVAoIDAgLCAic3RkaW4iLCAmaGFzaHN0ZGluLCBOXygicmVhZCB0aGUgb2JqZWN0IGZyb20gc3RkaW4iKSksCisJT1BUX0JPT0woIDAgLCAic3RkaW4tcGF0aHMiLCAmc3RkaW5fcGF0aHMsIE5fKCJyZWFkIGZpbGUgbmFtZXMgZnJvbSBzdGRpbiIpKSwKKwlPUFRfQk9PTCggMCAsICJuby1maWx0ZXJzIiwgJm5vX2ZpbHRlcnMsIE5fKCJzdG9yZSBmaWxlIGFzIGlzIHdpdGhvdXQgZmlsdGVycyIpKSwKIAlPUFRfU1RSSU5HKCAwICwgInBhdGgiLCAmdnBhdGgsIE5fKCJmaWxlIiksIE5fKCJwcm9jZXNzIGZpbGUgYXMgaXQgd2VyZSBmcm9tIHRoaXMgcGF0aCIpKSwKIAlPUFRfRU5EKCkKIH07CmRpZmYgLS1naXQgYS9idWlsdGluL2hlbHAuYyBiL2J1aWx0aW4vaGVscC5jCmluZGV4IGYxZTIzNmIuLjFmZGVmZWIgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vaGVscC5jCisrKyBiL2J1aWx0aW4vaGVscC5jCkBAIC0xMDAsNyArMTAwLDcgQEAKIAkgKi8KIAlmaW5pc2hfY29tbWFuZCgmZWNfcHJvY2Vzcyk7CiAKLQlpZiAocHJlZml4Y21wKGJ1ZmZlci5idWYsICJlbWFjc2NsaWVudCIpKSB7CisJaWYgKCFzdGFydHNfd2l0aChidWZmZXIuYnVmLCAiZW1hY3NjbGllbnQiKSkgewogCQlzdHJidWZfcmVsZWFzZSgmYnVmZmVyKTsKIAkJcmV0dXJuIGVycm9yKF8oIkZhaWxlZCB0byBwYXJzZSBlbWFjc2NsaWVudCB2ZXJzaW9uLiIpKTsKIAl9CkBAIC0yNTgsNyArMjU4LDcgQEAKIAogc3RhdGljIGludCBnaXRfaGVscF9jb25maWcoY29uc3QgY2hhciAqdmFyLCBjb25zdCBjaGFyICp2YWx1ZSwgdm9pZCAqY2IpCiB7Ci0JaWYgKCFwcmVmaXhjbXAodmFyLCAiY29sdW1uLiIpKQorCWlmIChzdGFydHNfd2l0aCh2YXIsICJjb2x1bW4uIikpCiAJCXJldHVybiBnaXRfY29sdW1uX2NvbmZpZyh2YXIsIHZhbHVlLCAiaGVscCIsICZjb2xvcHRzKTsKIAlpZiAoIXN0cmNtcCh2YXIsICJoZWxwLmZvcm1hdCIpKSB7CiAJCWlmICghdmFsdWUpCkBAIC0yNzgsNyArMjc4LDcgQEAKIAkJYWRkX21hbl92aWV3ZXIodmFsdWUpOwogCQlyZXR1cm4gMDsKIAl9Ci0JaWYgKCFwcmVmaXhjbXAodmFyLCAibWFuLiIpKQorCWlmIChzdGFydHNfd2l0aCh2YXIsICJtYW4uIikpCiAJCXJldHVybiBhZGRfbWFuX3ZpZXdlcl9pbmZvKHZhciwgdmFsdWUpOwogCiAJcmV0dXJuIGdpdF9kZWZhdWx0X2NvbmZpZyh2YXIsIHZhbHVlLCBjYik7CkBAIC0yODgsNiArMjg4LDEwIEBACiAKIHN0YXRpYyBpbnQgaXNfZ2l0X2NvbW1hbmQoY29uc3QgY2hhciAqcykKIHsKKwlpZiAoaXNfYnVpbHRpbihzKSkKKwkJcmV0dXJuIDE7CisKKwlsb2FkX2NvbW1hbmRfbGlzdCgiZ2l0LSIsICZtYWluX2NtZHMsICZvdGhlcl9jbWRzKTsKIAlyZXR1cm4gaXNfaW5fY21kbGlzdCgmbWFpbl9jbWRzLCBzKSB8fAogCQlpc19pbl9jbWRsaXN0KCZvdGhlcl9jbWRzLCBzKTsKIH0KQEAgLTMwNiw3ICszMTAsNyBAQAogewogCWlmICghZ2l0X2NtZCkKIAkJcmV0dXJuICJnaXQiOwotCWVsc2UgaWYgKCFwcmVmaXhjbXAoZ2l0X2NtZCwgImdpdCIpKQorCWVsc2UgaWYgKHN0YXJ0c193aXRoKGdpdF9jbWQsICJnaXQiKSkKIAkJcmV0dXJuIGdpdF9jbWQ7CiAJZWxzZSBpZiAoaXNfZ2l0X2NvbW1hbmQoZ2l0X2NtZCkpCiAJCXJldHVybiBwcmVwZW5kKCJnaXQtIiwgZ2l0X2NtZCk7CkBAIC00NDksNyArNDUzLDYgQEAKIAlpbnQgbm9uZ2l0OwogCWNvbnN0IGNoYXIgKmFsaWFzOwogCWVudW0gaGVscF9mb3JtYXQgcGFyc2VkX2hlbHBfZm9ybWF0OwotCWxvYWRfY29tbWFuZF9saXN0KCJnaXQtIiwgJm1haW5fY21kcywgJm90aGVyX2NtZHMpOwogCiAJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgcHJlZml4LCBidWlsdGluX2hlbHBfb3B0aW9ucywKIAkJCWJ1aWx0aW5faGVscF91c2FnZSwgMCk7CkBAIC00NTgsNiArNDYxLDcgQEAKIAlpZiAoc2hvd19hbGwpIHsKIAkJZ2l0X2NvbmZpZyhnaXRfaGVscF9jb25maWcsIE5VTEwpOwogCQlwcmludGYoXygidXNhZ2U6ICVzJXMiKSwgXyhnaXRfdXNhZ2Vfc3RyaW5nKSwgIlxuXG4iKTsKKwkJbG9hZF9jb21tYW5kX2xpc3QoImdpdC0iLCAmbWFpbl9jbWRzLCAmb3RoZXJfY21kcyk7CiAJCWxpc3RfY29tbWFuZHMoY29sb3B0cywgJm1haW5fY21kcywgJm90aGVyX2NtZHMpOwogCX0KIApkaWZmIC0tZ2l0IGEvYnVpbHRpbi9pbmRleC1wYWNrLmMgYi9idWlsdGluL2luZGV4LXBhY2suYwppbmRleCA5YzFjZmFjLi4yZjM3YTM4IDEwMDY0NAotLS0gYS9idWlsdGluL2luZGV4LXBhY2suYworKysgYi9idWlsdGluL2luZGV4LXBhY2suYwpAQCAtNzcwLDYgKzc3MCw3IEBACiAJCQlpZiAob2JqLT50eXBlID09IE9CSl9UUkVFKSB7CiAJCQkJc3RydWN0IHRyZWUgKml0ZW0gPSAoc3RydWN0IHRyZWUgKikgb2JqOwogCQkJCWl0ZW0tPmJ1ZmZlciA9IE5VTEw7CisJCQkJb2JqLT5wYXJzZWQgPSAwOwogCQkJfQogCQkJaWYgKG9iai0+dHlwZSA9PSBPQkpfQ09NTUlUKSB7CiAJCQkJc3RydWN0IGNvbW1pdCAqY29tbWl0ID0gKHN0cnVjdCBjb21taXQgKikgb2JqOwpAQCAtMTUzMyw5ICsxNTM0LDkgQEAKIAkJCQlzdGF0X29ubHkgPSAxOwogCQkJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0ta2VlcCIpKSB7CiAJCQkJa2VlcF9tc2cgPSAiIjsKLQkJCX0gZWxzZSBpZiAoIXByZWZpeGNtcChhcmcsICItLWtlZXA9IikpIHsKKwkJCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1rZWVwPSIpKSB7CiAJCQkJa2VlcF9tc2cgPSBhcmcgKyA3OwotCQkJfSBlbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0tdGhyZWFkcz0iKSkgeworCQkJfSBlbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLXRocmVhZHM9IikpIHsKIAkJCQljaGFyICplbmQ7CiAJCQkJbnJfdGhyZWFkcyA9IHN0cnRvdWwoYXJnKzEwLCAmZW5kLCAwKTsKIAkJCQlpZiAoIWFyZ1sxMF0gfHwgKmVuZCB8fCBucl90aHJlYWRzIDwgMCkKQEAgLTE1NDYsNyArMTU0Nyw3IEBACiAJCQkJCQkgICJpZ25vcmluZyAlcyIpLCBhcmcpOwogCQkJCW5yX3RocmVhZHMgPSAxOwogI2VuZGlmCi0JCQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1wYWNrX2hlYWRlcj0iKSkgeworCQkJfSBlbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLXBhY2tfaGVhZGVyPSIpKSB7CiAJCQkJc3RydWN0IHBhY2tfaGVhZGVyICpoZHI7CiAJCQkJY2hhciAqYzsKIApAQCAtMTU2NSw3ICsxNTY2LDcgQEAKIAkJCQlpZiAoaW5kZXhfbmFtZSB8fCAoaSsxKSA+PSBhcmdjKQogCQkJCQl1c2FnZShpbmRleF9wYWNrX3VzYWdlKTsKIAkJCQlpbmRleF9uYW1lID0gYXJndlsrK2ldOwotCQkJfSBlbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0taW5kZXgtdmVyc2lvbj0iKSkgeworCQkJfSBlbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLWluZGV4LXZlcnNpb249IikpIHsKIAkJCQljaGFyICpjOwogCQkJCW9wdHMudmVyc2lvbiA9IHN0cnRvdWwoYXJnICsgMTYsICZjLCAxMCk7CiAJCQkJaWYgKG9wdHMudmVyc2lvbiA+IDIpCmRpZmYgLS1naXQgYS9idWlsdGluL2luaXQtZGIuYyBiL2J1aWx0aW4vaW5pdC1kYi5jCmluZGV4IDc4YWEzODcuLmM3Yzc2YmIgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vaW5pdC1kYi5jCisrKyBiL2J1aWx0aW4vaW5pdC1kYi5jCkBAIC0yNjYsNyArMjY2LDcgQEAKIAkJLyogYWxsb3cgdGVtcGxhdGUgY29uZmlnIGZpbGUgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgKi8KIAkJaWYgKGxvZ19hbGxfcmVmX3VwZGF0ZXMgPT0gLTEpCiAJCSAgICBnaXRfY29uZmlnX3NldCgiY29yZS5sb2dhbGxyZWZ1cGRhdGVzIiwgInRydWUiKTsKLQkJaWYgKHByZWZpeGNtcChnaXRfZGlyLCB3b3JrX3RyZWUpIHx8CisJCWlmICghc3RhcnRzX3dpdGgoZ2l0X2Rpciwgd29ya190cmVlKSB8fAogCQkgICAgc3RyY21wKGdpdF9kaXIgKyBzdHJsZW4od29ya190cmVlKSwgIi8uZ2l0IikpIHsKIAkJCWdpdF9jb25maWdfc2V0KCJjb3JlLndvcmt0cmVlIiwgd29ya190cmVlKTsKIAkJfQpAQCAtNTE1LDEzICs1MTUsMTQgQEAKIAkJCQlzYXZlZCA9IHNoYXJlZF9yZXBvc2l0b3J5OwogCQkJCXNoYXJlZF9yZXBvc2l0b3J5ID0gMDsKIAkJCQlzd2l0Y2ggKHNhZmVfY3JlYXRlX2xlYWRpbmdfZGlyZWN0b3JpZXNfY29uc3QoYXJndlswXSkpIHsKLQkJCQljYXNlIC0zOgorCQkJCWNhc2UgU0NMRF9PSzoKKwkJCQljYXNlIFNDTERfUEVSTVM6CisJCQkJCWJyZWFrOworCQkJCWNhc2UgU0NMRF9FWElTVFM6CiAJCQkJCWVycm5vID0gRUVYSVNUOwogCQkJCQkvKiBmYWxsdGhydSAqLwotCQkJCWNhc2UgLTE6Ci0JCQkJCWRpZV9lcnJubyhfKCJjYW5ub3QgbWtkaXIgJXMiKSwgYXJndlswXSk7Ci0JCQkJCWJyZWFrOwogCQkJCWRlZmF1bHQ6CisJCQkJCWRpZV9lcnJubyhfKCJjYW5ub3QgbWtkaXIgJXMiKSwgYXJndlswXSk7CiAJCQkJCWJyZWFrOwogCQkJCX0KIAkJCQlzaGFyZWRfcmVwb3NpdG9yeSA9IHNhdmVkOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9sb2cuYyBiL2J1aWx0aW4vbG9nLmMKaW5kZXggMjYyNWY5OC4uYjk3MzczZCAxMDA2NDQKLS0tIGEvYnVpbHRpbi9sb2cuYworKysgYi9idWlsdGluL2xvZy5jCkBAIC0xMTEsNiArMTExLDcgQEAKIAogCWlmIChkZWZhdWx0X2RhdGVfbW9kZSkKIAkJcmV2LT5kYXRlX21vZGUgPSBwYXJzZV9kYXRlX2Zvcm1hdChkZWZhdWx0X2RhdGVfbW9kZSk7CisJcmV2LT5kaWZmb3B0LnRvdWNoZWRfZmxhZ3MgPSAwOwogfQogCiBzdGF0aWMgdm9pZCBjbWRfbG9nX2luaXRfZmluaXNoKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4LApAQCAtMTIxLDcgKzEyMiw3IEBACiAJc3RhdGljIHN0cnVjdCBsaW5lX29wdF9jYWxsYmFja19kYXRhIGxpbmVfY2IgPSB7TlVMTCwgTlVMTCwgU1RSSU5HX0xJU1RfSU5JVF9EVVB9OwogCiAJY29uc3Qgc3RydWN0IG9wdGlvbiBidWlsdGluX2xvZ19vcHRpb25zW10gPSB7Ci0JCU9QVF9CT09MKDAsICJxdWlldCIsICZxdWlldCwgTl8oInN1cHByZXNzIGRpZmYgb3V0cHV0IikpLAorCQlPUFRfX1FVSUVUKCZxdWlldCwgTl8oInN1cHByZXNzIGRpZmYgb3V0cHV0IikpLAogCQlPUFRfQk9PTCgwLCAic291cmNlIiwgJnNvdXJjZSwgTl8oInNob3cgc291cmNlIikpLAogCQlPUFRfQk9PTCgwLCAidXNlLW1haWxtYXAiLCAmbWFpbG1hcCwgTl8oIlVzZSBtYWlsIG1hcCBmaWxlIikpLAogCQl7IE9QVElPTl9DQUxMQkFDSywgMCwgImRlY29yYXRlIiwgTlVMTCwgTlVMTCwgTl8oImRlY29yYXRlIG9wdGlvbnMiKSwKQEAgLTM5MCw3ICszOTEsNyBAQAogCQlkZWZhdWx0X3Nob3dfcm9vdCA9IGdpdF9jb25maWdfYm9vbCh2YXIsIHZhbHVlKTsKIAkJcmV0dXJuIDA7CiAJfQotCWlmICghcHJlZml4Y21wKHZhciwgImNvbG9yLmRlY29yYXRlLiIpKQorCWlmIChzdGFydHNfd2l0aCh2YXIsICJjb2xvci5kZWNvcmF0ZS4iKSkKIAkJcmV0dXJuIHBhcnNlX2RlY29yYXRlX2NvbG9yX2NvbmZpZyh2YXIsIDE1LCB2YWx1ZSk7CiAJaWYgKCFzdHJjbXAodmFyLCAibG9nLm1haWxtYXAiKSkgewogCQl1c2VfbWFpbG1hcF9jb25maWcgPSBnaXRfY29uZmlnX2Jvb2wodmFyLCB2YWx1ZSk7CkBAIC00MzYsMTAgKzQzNywyOSBAQAogCXN0cmJ1Zl9yZWxlYXNlKCZvdXQpOwogfQogCi1zdGF0aWMgaW50IHNob3dfYmxvYl9vYmplY3QoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgc3RydWN0IHJldl9pbmZvICpyZXYpCitzdGF0aWMgaW50IHNob3dfYmxvYl9vYmplY3QoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgc3RydWN0IHJldl9pbmZvICpyZXYsIGNvbnN0IGNoYXIgKm9ial9uYW1lKQogeworCXVuc2lnbmVkIGNoYXIgc2hhMWNbMjBdOworCXN0cnVjdCBvYmplY3RfY29udGV4dCBvYmpfY29udGV4dDsKKwljaGFyICpidWY7CisJdW5zaWduZWQgbG9uZyBzaXplOworCiAJZmZsdXNoKHN0ZG91dCk7Ci0JcmV0dXJuIHN0cmVhbV9ibG9iX3RvX2ZkKDEsIHNoYTEsIE5VTEwsIDApOworCWlmICghRElGRl9PUFRfVE9VQ0hFRCgmcmV2LT5kaWZmb3B0LCBBTExPV19URVhUQ09OVikgfHwKKwkgICAgIURJRkZfT1BUX1RTVCgmcmV2LT5kaWZmb3B0LCBBTExPV19URVhUQ09OVikpCisJCXJldHVybiBzdHJlYW1fYmxvYl90b19mZCgxLCBzaGExLCBOVUxMLCAwKTsKKworCWlmIChnZXRfc2hhMV93aXRoX2NvbnRleHQob2JqX25hbWUsIDAsIHNoYTFjLCAmb2JqX2NvbnRleHQpKQorCQlkaWUoIk5vdCBhIHZhbGlkIG9iamVjdCBuYW1lICVzIiwgb2JqX25hbWUpOworCWlmICghb2JqX2NvbnRleHQucGF0aFswXSB8fAorCSAgICAhdGV4dGNvbnZfb2JqZWN0KG9ial9jb250ZXh0LnBhdGgsIG9ial9jb250ZXh0Lm1vZGUsIHNoYTFjLCAxLCAmYnVmLCAmc2l6ZSkpCisJCXJldHVybiBzdHJlYW1fYmxvYl90b19mZCgxLCBzaGExLCBOVUxMLCAwKTsKKworCWlmICghYnVmKQorCQlkaWUoImdpdCBzaG93ICVzOiBiYWQgZmlsZSIsIG9ial9uYW1lKTsKKworCXdyaXRlX29yX2RpZSgxLCBidWYsIHNpemUpOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IHNob3dfdGFnX29iamVjdChjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBzdHJ1Y3QgcmV2X2luZm8gKnJldikKQEAgLTQ1Nyw3ICs0NzcsNyBAQAogCQlpbnQgbmV3X29mZnNldCA9IG9mZnNldCArIDE7CiAJCXdoaWxlIChuZXdfb2Zmc2V0IDwgc2l6ZSAmJiBidWZbbmV3X29mZnNldCsrXSAhPSAnXG4nKQogCQkJOyAvKiBkbyBub3RoaW5nICovCi0JCWlmICghcHJlZml4Y21wKGJ1ZiArIG9mZnNldCwgInRhZ2dlciAiKSkKKwkJaWYgKHN0YXJ0c193aXRoKGJ1ZiArIG9mZnNldCwgInRhZ2dlciAiKSkKIAkJCXNob3dfdGFnZ2VyKGJ1ZiArIG9mZnNldCArIDcsCiAJCQkJICAgIG5ld19vZmZzZXQgLSBvZmZzZXQgLSA3LCByZXYpOwogCQlvZmZzZXQgPSBuZXdfb2Zmc2V0OwpAQCAtNTAzLDcgKzUyMyw3IEBACiAJaW5pdF9ncmVwX2RlZmF1bHRzKCk7CiAJZ2l0X2NvbmZpZyhnaXRfbG9nX2NvbmZpZywgTlVMTCk7CiAKLQlpbml0X3BhdGhzcGVjKCZtYXRjaF9hbGwsIE5VTEwpOworCW1lbXNldCgmbWF0Y2hfYWxsLCAwLCBzaXplb2YobWF0Y2hfYWxsKSk7CiAJaW5pdF9yZXZpc2lvbnMoJnJldiwgcHJlZml4KTsKIAlyZXYuZGlmZiA9IDE7CiAJcmV2LmFsd2F5c19zaG93X2hlYWRlciA9IDE7CkBAIC01MjUsNyArNTQ1LDcgQEAKIAkJY29uc3QgY2hhciAqbmFtZSA9IG9iamVjdHNbaV0ubmFtZTsKIAkJc3dpdGNoIChvLT50eXBlKSB7CiAJCWNhc2UgT0JKX0JMT0I6Ci0JCQlyZXQgPSBzaG93X2Jsb2Jfb2JqZWN0KG8tPnNoYTEsIE5VTEwpOworCQkJcmV0ID0gc2hvd19ibG9iX29iamVjdChvLT5zaGExLCAmcmV2LCBuYW1lKTsKIAkJCWJyZWFrOwogCQljYXNlIE9CSl9UQUc6IHsKIAkJCXN0cnVjdCB0YWcgKnQgPSAoc3RydWN0IHRhZyAqKW87CkBAIC04NjIsNyArODgyLDcgQEAKIAlyZWYgPSByZXYtPmNtZGxpbmUucmV2W3Bvc2l0aXZlXS5uYW1lOwogCXRpcF9zaGExID0gcmV2LT5jbWRsaW5lLnJldltwb3NpdGl2ZV0uaXRlbS0+c2hhMTsKIAlpZiAoZHdpbV9yZWYocmVmLCBzdHJsZW4ocmVmKSwgYnJhbmNoX3NoYTEsICZmdWxsX3JlZikgJiYKLQkgICAgIXByZWZpeGNtcChmdWxsX3JlZiwgInJlZnMvaGVhZHMvIikgJiYKKwkgICAgc3RhcnRzX3dpdGgoZnVsbF9yZWYsICJyZWZzL2hlYWRzLyIpICYmCiAJICAgICFoYXNoY21wKHRpcF9zaGExLCBicmFuY2hfc2hhMSkpCiAJCWJyYW5jaCA9IHhzdHJkdXAoZnVsbF9yZWYgKyBzdHJsZW4oInJlZnMvaGVhZHMvIikpOwogCWZyZWUoZnVsbF9yZWYpOwpAQCAtMTE3OSwxMyArMTE5OSwxMyBAQAogCQl7IE9QVElPTl9DQUxMQkFDSywgJ2snLCAia2VlcC1zdWJqZWN0IiwgJnJldiwgTlVMTCwKIAkJCSAgICBOXygiZG9uJ3Qgc3RyaXAvYWRkIFtQQVRDSF0iKSwKIAkJCSAgICBQQVJTRV9PUFRfTk9BUkcgfCBQQVJTRV9PUFRfTk9ORUcsIGtlZXBfY2FsbGJhY2sgfSwKLQkJT1BUX0JPT0xFQU4oMCwgIm5vLWJpbmFyeSIsICZub19iaW5hcnlfZGlmZiwKLQkJCSAgICBOXygiZG9uJ3Qgb3V0cHV0IGJpbmFyeSBkaWZmcyIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgImlnbm9yZS1pZi1pbi11cHN0cmVhbSIsICZpZ25vcmVfaWZfaW5fdXBzdHJlYW0sCi0JCQkgICAgTl8oImRvbid0IGluY2x1ZGUgYSBwYXRjaCBtYXRjaGluZyBhIGNvbW1pdCB1cHN0cmVhbSIpKSwKLQkJeyBPUFRJT05fQk9PTEVBTiwgJ3AnLCAibm8tc3RhdCIsICZ1c2VfcGF0Y2hfZm9ybWF0LCBOVUxMLAorCQlPUFRfQk9PTCgwLCAibm8tYmluYXJ5IiwgJm5vX2JpbmFyeV9kaWZmLAorCQkJIE5fKCJkb24ndCBvdXRwdXQgYmluYXJ5IGRpZmZzIikpLAorCQlPUFRfQk9PTCgwLCAiaWdub3JlLWlmLWluLXVwc3RyZWFtIiwgJmlnbm9yZV9pZl9pbl91cHN0cmVhbSwKKwkJCSBOXygiZG9uJ3QgaW5jbHVkZSBhIHBhdGNoIG1hdGNoaW5nIGEgY29tbWl0IHVwc3RyZWFtIikpLAorCQl7IE9QVElPTl9TRVRfSU5ULCAncCcsICJuby1zdGF0IiwgJnVzZV9wYXRjaF9mb3JtYXQsIE5VTEwsCiAJCSAgTl8oInNob3cgcGF0Y2ggZm9ybWF0IGluc3RlYWQgb2YgZGVmYXVsdCAocGF0Y2ggKyBzdGF0KSIpLAotCQkgIFBBUlNFX09QVF9OT05FRyB8IFBBUlNFX09QVF9OT0FSRyB9LAorCQkgIFBBUlNFX09QVF9OT05FRyB8IFBBUlNFX09QVF9OT0FSRywgTlVMTCwgMX0sCiAJCU9QVF9HUk9VUChOXygiTWVzc2FnaW5nIikpLAogCQl7IE9QVElPTl9DQUxMQkFDSywgMCwgImFkZC1oZWFkZXIiLCBOVUxMLCBOXygiaGVhZGVyIiksCiAJCQkgICAgTl8oImFkZCBlbWFpbCBoZWFkZXIiKSwgMCwgaGVhZGVyX2NhbGxiYWNrIH0sCkBAIC0xMjEwLDggKzEyMzAsNyBAQAogCQkJICAgIFBBUlNFX09QVF9PUFRBUkcsIHRocmVhZF9jYWxsYmFjayB9LAogCQlPUFRfU1RSSU5HKDAsICJzaWduYXR1cmUiLCAmc2lnbmF0dXJlLCBOXygic2lnbmF0dXJlIiksCiAJCQkgICAgTl8oImFkZCBhIHNpZ25hdHVyZSIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgInF1aWV0IiwgJnF1aWV0LAotCQkJICAgIE5fKCJkb24ndCBwcmludCB0aGUgcGF0Y2ggZmlsZW5hbWVzIikpLAorCQlPUFRfX1FVSUVUKCZxdWlldCwgTl8oImRvbid0IHByaW50IHRoZSBwYXRjaCBmaWxlbmFtZXMiKSksCiAJCU9QVF9FTkQoKQogCX07CiAKQEAgLTEzNjksNyArMTM4OCw3IEBACiAJCQl1bnNpZ25lZCBjaGFyIHNoYTFbMjBdOwogCQkJY29uc3QgY2hhciAqcmVmOwogCQkJcmVmID0gcmVzb2x2ZV9yZWZfdW5zYWZlKCJIRUFEIiwgc2hhMSwgMSwgTlVMTCk7Ci0JCQlpZiAocmVmICYmICFwcmVmaXhjbXAocmVmLCAicmVmcy9oZWFkcy8iKSkKKwkJCWlmIChyZWYgJiYgc3RhcnRzX3dpdGgocmVmLCAicmVmcy9oZWFkcy8iKSkKIAkJCQlicmFuY2hfbmFtZSA9IHhzdHJkdXAocmVmICsgc3RybGVuKCJyZWZzL2hlYWRzLyIpKTsKIAkJCWVsc2UKIAkJCQlicmFuY2hfbmFtZSA9IHhzdHJkdXAoIiIpOyAvKiBubyBicmFuY2ggKi8KZGlmZiAtLWdpdCBhL2J1aWx0aW4vbHMtZmlsZXMuYyBiL2J1aWx0aW4vbHMtZmlsZXMuYwppbmRleCA4NTAwNDQ2Li5lMWNmNmQ4IDEwMDY0NAotLS0gYS9idWlsdGluL2xzLWZpbGVzLmMKKysrIGIvYnVpbHRpbi9scy1maWxlcy5jCkBAIC0xMyw2ICsxMyw3IEBACiAjaW5jbHVkZSAicGFyc2Utb3B0aW9ucy5oIgogI2luY2x1ZGUgInJlc29sdmUtdW5kby5oIgogI2luY2x1ZGUgInN0cmluZy1saXN0LmgiCisjaW5jbHVkZSAicGF0aHNwZWMuaCIKIAogc3RhdGljIGludCBhYmJyZXY7CiBzdGF0aWMgaW50IHNob3dfZGVsZXRlZDsKQEAgLTMwLDcgKzMxLDcgQEAKIHN0YXRpYyBjb25zdCBjaGFyICpwcmVmaXg7CiBzdGF0aWMgaW50IG1heF9wcmVmaXhfbGVuOwogc3RhdGljIGludCBwcmVmaXhfbGVuOwotc3RhdGljIGNvbnN0IGNoYXIgKipwYXRoc3BlYzsKK3N0YXRpYyBzdHJ1Y3QgcGF0aHNwZWMgcGF0aHNwZWM7CiBzdGF0aWMgaW50IGVycm9yX3VubWF0Y2g7CiBzdGF0aWMgY2hhciAqcHNfbWF0Y2hlZDsKIHN0YXRpYyBjb25zdCBjaGFyICp3aXRoX3RyZWU7CkBAIC02Myw3ICs2NCw3IEBACiAJaWYgKGxlbiA+PSBlbnQtPmxlbikKIAkJZGllKCJnaXQgbHMtZmlsZXM6IGludGVybmFsIGVycm9yIC0gZGlyZWN0b3J5IGVudHJ5IG5vdCBzdXBlcnNldCBvZiBwcmVmaXgiKTsKIAotCWlmICghbWF0Y2hfcGF0aHNwZWMocGF0aHNwZWMsIGVudC0+bmFtZSwgZW50LT5sZW4sIGxlbiwgcHNfbWF0Y2hlZCkpCisJaWYgKCFtYXRjaF9wYXRoc3BlY19kZXB0aCgmcGF0aHNwZWMsIGVudC0+bmFtZSwgZW50LT5sZW4sIGxlbiwgcHNfbWF0Y2hlZCkpCiAJCXJldHVybjsKIAogCWZwdXRzKHRhZywgc3Rkb3V0KTsKQEAgLTEzOCw3ICsxMzksNyBAQAogCWlmIChsZW4gPj0gY2VfbmFtZWxlbihjZSkpCiAJCWRpZSgiZ2l0IGxzLWZpbGVzOiBpbnRlcm5hbCBlcnJvciAtIGNhY2hlIGVudHJ5IG5vdCBzdXBlcnNldCBvZiBwcmVmaXgiKTsKIAotCWlmICghbWF0Y2hfcGF0aHNwZWMocGF0aHNwZWMsIGNlLT5uYW1lLCBjZV9uYW1lbGVuKGNlKSwgbGVuLCBwc19tYXRjaGVkKSkKKwlpZiAoIW1hdGNoX3BhdGhzcGVjX2RlcHRoKCZwYXRoc3BlYywgY2UtPm5hbWUsIGNlX25hbWVsZW4oY2UpLCBsZW4sIHBzX21hdGNoZWQpKQogCQlyZXR1cm47CiAKIAlpZiAodGFnICYmICp0YWcgJiYgc2hvd192YWxpZF9iaXQgJiYKQEAgLTE5NCw3ICsxOTUsNyBAQAogCQlsZW4gPSBzdHJsZW4ocGF0aCk7CiAJCWlmIChsZW4gPCBtYXhfcHJlZml4X2xlbikKIAkJCWNvbnRpbnVlOyAvKiBvdXRzaWRlIG9mIHRoZSBwcmVmaXggKi8KLQkJaWYgKCFtYXRjaF9wYXRoc3BlYyhwYXRoc3BlYywgcGF0aCwgbGVuLCBtYXhfcHJlZml4X2xlbiwgcHNfbWF0Y2hlZCkpCisJCWlmICghbWF0Y2hfcGF0aHNwZWNfZGVwdGgoJnBhdGhzcGVjLCBwYXRoLCBsZW4sIG1heF9wcmVmaXhfbGVuLCBwc19tYXRjaGVkKSkKIAkJCWNvbnRpbnVlOyAvKiB1bmludGVyZXN0ZWQgKi8KIAkJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgewogCQkJaWYgKCF1aS0+bW9kZVtpXSkKQEAgLTIyMSw3ICsyMjIsNyBAQAogCWlmIChzaG93X290aGVycyB8fCBzaG93X2tpbGxlZCkgewogCQlpZiAoIXNob3dfb3RoZXJzKQogCQkJZGlyLT5mbGFncyB8PSBESVJfQ09MTEVDVF9LSUxMRURfT05MWTsKLQkJZmlsbF9kaXJlY3RvcnkoZGlyLCBwYXRoc3BlYyk7CisJCWZpbGxfZGlyZWN0b3J5KGRpciwgJnBhdGhzcGVjKTsKIAkJaWYgKHNob3dfb3RoZXJzKQogCQkJc2hvd19vdGhlcl9maWxlcyhkaXIpOwogCQlpZiAoc2hvd19raWxsZWQpCkBAIC0yODksMjEgKzI5MCw2IEBACiAJYWN0aXZlX25yID0gbGFzdDsKIH0KIAotc3RhdGljIHZvaWQgc3RyaXBfdHJhaWxpbmdfc2xhc2hfZnJvbV9zdWJtb2R1bGVzKHZvaWQpCi17Ci0JY29uc3QgY2hhciAqKnA7Ci0KLQlmb3IgKHAgPSBwYXRoc3BlYzsgKnAgIT0gTlVMTDsgcCsrKSB7Ci0JCWludCBsZW4gPSBzdHJsZW4oKnApLCBwb3M7Ci0KLQkJaWYgKGxlbiA8IDEgfHwgKCpwKVtsZW4gLSAxXSAhPSAnLycpCi0JCQljb250aW51ZTsKLQkJcG9zID0gY2FjaGVfbmFtZV9wb3MoKnAsIGxlbiAtIDEpOwotCQlpZiAocG9zID49IDAgJiYgU19JU0dJVExJTksoYWN0aXZlX2NhY2hlW3Bvc10tPmNlX21vZGUpKQotCQkJKnAgPSB4c3RybmR1cCgqcCwgbGVuIC0gMSk7Ci0JfQotfQotCiAvKgogICogUmVhZCB0aGUgdHJlZSBzcGVjaWZpZWQgd2l0aCAtLXdpdGgtdHJlZSBvcHRpb24KICAqICh0eXBpY2FsbHksIEhFQUQpIGludG8gc3RhZ2UgIzEgYW5kIHRoZW4KQEAgLTMzNSwxMyArMzIxLDEyIEBACiAJfQogCiAJaWYgKHByZWZpeCkgewotCQlzdGF0aWMgY29uc3QgY2hhciAqKG1hdGNoYnVmWzJdKTsKLQkJbWF0Y2hidWZbMF0gPSBwcmVmaXg7Ci0JCW1hdGNoYnVmWzFdID0gTlVMTDsKLQkJaW5pdF9wYXRoc3BlYygmcGF0aHNwZWMsIG1hdGNoYnVmKTsKLQkJcGF0aHNwZWMuaXRlbXNbMF0ubm93aWxkY2FyZF9sZW4gPSBwYXRoc3BlYy5pdGVtc1swXS5sZW47CisJCXN0YXRpYyBjb25zdCBjaGFyICoobWF0Y2hidWZbMV0pOworCQltYXRjaGJ1ZlswXSA9IE5VTEw7CisJCXBhcnNlX3BhdGhzcGVjKCZwYXRoc3BlYywgUEFUSFNQRUNfQUxMX01BR0lDLAorCQkJICAgICAgIFBBVEhTUEVDX1BSRUZFUl9DV0QsIHByZWZpeCwgbWF0Y2hidWYpOwogCX0gZWxzZQotCQlpbml0X3BhdGhzcGVjKCZwYXRoc3BlYywgTlVMTCk7CisJCW1lbXNldCgmcGF0aHNwZWMsIDAsIHNpemVvZihwYXRoc3BlYykpOwogCWlmIChyZWFkX3RyZWUodHJlZSwgMSwgJnBhdGhzcGVjKSkKIAkJZGllKCJ1bmFibGUgdG8gcmVhZCB0cmVlIGVudHJpZXMgJXMiLCB0cmVlX25hbWUpOwogCkBAIC0zNjYsMTUgKzM1MSwxNiBAQAogCX0KIH0KIAotaW50IHJlcG9ydF9wYXRoX2Vycm9yKGNvbnN0IGNoYXIgKnBzX21hdGNoZWQsIGNvbnN0IGNoYXIgKipwYXRoc3BlYywgY29uc3QgY2hhciAqcHJlZml4KQoraW50IHJlcG9ydF9wYXRoX2Vycm9yKGNvbnN0IGNoYXIgKnBzX21hdGNoZWQsCisJCSAgICAgIGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMsCisJCSAgICAgIGNvbnN0IGNoYXIgKnByZWZpeCkKIHsKIAkvKgogCSAqIE1ha2Ugc3VyZSBhbGwgcGF0aHNwZWMgbWF0Y2hlZDsgb3RoZXJ3aXNlIGl0IGlzIGFuIGVycm9yLgogCSAqLwogCXN0cnVjdCBzdHJidWYgc2IgPSBTVFJCVUZfSU5JVDsKLQljb25zdCBjaGFyICpuYW1lOwogCWludCBudW0sIGVycm9ycyA9IDA7Ci0JZm9yIChudW0gPSAwOyBwYXRoc3BlY1tudW1dOyBudW0rKykgeworCWZvciAobnVtID0gMDsgbnVtIDwgcGF0aHNwZWMtPm5yOyBudW0rKykgewogCQlpbnQgb3RoZXIsIGZvdW5kX2R1cDsKIAogCQlpZiAocHNfbWF0Y2hlZFtudW1dKQpAQCAtMzgyLDEzICszNjgsMTYgQEAKIAkJLyoKIAkJICogVGhlIGNhbGxlciBtaWdodCBoYXZlIGZlZCBpZGVudGljYWwgcGF0aHNwZWMKIAkJICogdHdpY2UuICBEbyBub3QgYmFyZiBvbiBzdWNoIGEgbWlzdGFrZS4KKwkJICogRklYTUU6IHBhcnNlX3BhdGhzcGVjIHNob3VsZCBoYXZlIGVsaW1pbmF0ZWQKKwkJICogZHVwbGljYXRlIHBhdGhzcGVjLgogCQkgKi8KIAkJZm9yIChmb3VuZF9kdXAgPSBvdGhlciA9IDA7Ci0JCSAgICAgIWZvdW5kX2R1cCAmJiBwYXRoc3BlY1tvdGhlcl07CisJCSAgICAgIWZvdW5kX2R1cCAmJiBvdGhlciA8IHBhdGhzcGVjLT5ucjsKIAkJICAgICBvdGhlcisrKSB7CiAJCQlpZiAob3RoZXIgPT0gbnVtIHx8ICFwc19tYXRjaGVkW290aGVyXSkKIAkJCQljb250aW51ZTsKLQkJCWlmICghc3RyY21wKHBhdGhzcGVjW290aGVyXSwgcGF0aHNwZWNbbnVtXSkpCisJCQlpZiAoIXN0cmNtcChwYXRoc3BlYy0+aXRlbXNbb3RoZXJdLm9yaWdpbmFsLAorCQkJCSAgICBwYXRoc3BlYy0+aXRlbXNbbnVtXS5vcmlnaW5hbCkpCiAJCQkJLyoKIAkJCQkgKiBPaywgd2UgaGF2ZSBhIG1hdGNoIGFscmVhZHkuCiAJCQkJICovCkBAIC0zOTcsOSArMzg2LDggQEAKIAkJaWYgKGZvdW5kX2R1cCkKIAkJCWNvbnRpbnVlOwogCi0JCW5hbWUgPSBxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGhzcGVjW251bV0sIHByZWZpeCwgJnNiKTsKIAkJZXJyb3IoInBhdGhzcGVjICclcycgZGlkIG5vdCBtYXRjaCBhbnkgZmlsZShzKSBrbm93biB0byBnaXQuIiwKLQkJICAgICAgbmFtZSk7CisJCSAgICAgIHBhdGhzcGVjLT5pdGVtc1tudW1dLm9yaWdpbmFsKTsKIAkJZXJyb3JzKys7CiAJfQogCXN0cmJ1Zl9yZWxlYXNlKCZzYik7CkBAIC00NjMsMjQgKzQ1MSwyNCBAQAogCQl7IE9QVElPTl9DQUxMQkFDSywgJ3onLCBOVUxMLCBOVUxMLCBOVUxMLAogCQkJTl8oInBhdGhzIGFyZSBzZXBhcmF0ZWQgd2l0aCBOVUwgY2hhcmFjdGVyIiksCiAJCQlQQVJTRV9PUFRfTk9BUkcsIG9wdGlvbl9wYXJzZV96IH0sCi0JCU9QVF9CT09MRUFOKCd0JywgTlVMTCwgJnNob3dfdGFnLAorCQlPUFRfQk9PTCgndCcsIE5VTEwsICZzaG93X3RhZywKIAkJCU5fKCJpZGVudGlmeSB0aGUgZmlsZSBzdGF0dXMgd2l0aCB0YWdzIikpLAotCQlPUFRfQk9PTEVBTigndicsIE5VTEwsICZzaG93X3ZhbGlkX2JpdCwKKwkJT1BUX0JPT0woJ3YnLCBOVUxMLCAmc2hvd192YWxpZF9iaXQsCiAJCQlOXygidXNlIGxvd2VyY2FzZSBsZXR0ZXJzIGZvciAnYXNzdW1lIHVuY2hhbmdlZCcgZmlsZXMiKSksCi0JCU9QVF9CT09MRUFOKCdjJywgImNhY2hlZCIsICZzaG93X2NhY2hlZCwKKwkJT1BUX0JPT0woJ2MnLCAiY2FjaGVkIiwgJnNob3dfY2FjaGVkLAogCQkJTl8oInNob3cgY2FjaGVkIGZpbGVzIGluIHRoZSBvdXRwdXQgKGRlZmF1bHQpIikpLAotCQlPUFRfQk9PTEVBTignZCcsICJkZWxldGVkIiwgJnNob3dfZGVsZXRlZCwKKwkJT1BUX0JPT0woJ2QnLCAiZGVsZXRlZCIsICZzaG93X2RlbGV0ZWQsCiAJCQlOXygic2hvdyBkZWxldGVkIGZpbGVzIGluIHRoZSBvdXRwdXQiKSksCi0JCU9QVF9CT09MRUFOKCdtJywgIm1vZGlmaWVkIiwgJnNob3dfbW9kaWZpZWQsCisJCU9QVF9CT09MKCdtJywgIm1vZGlmaWVkIiwgJnNob3dfbW9kaWZpZWQsCiAJCQlOXygic2hvdyBtb2RpZmllZCBmaWxlcyBpbiB0aGUgb3V0cHV0IikpLAotCQlPUFRfQk9PTEVBTignbycsICJvdGhlcnMiLCAmc2hvd19vdGhlcnMsCisJCU9QVF9CT09MKCdvJywgIm90aGVycyIsICZzaG93X290aGVycywKIAkJCU5fKCJzaG93IG90aGVyIGZpbGVzIGluIHRoZSBvdXRwdXQiKSksCiAJCU9QVF9CSVQoJ2knLCAiaWdub3JlZCIsICZkaXIuZmxhZ3MsCiAJCQlOXygic2hvdyBpZ25vcmVkIGZpbGVzIGluIHRoZSBvdXRwdXQiKSwKIAkJCURJUl9TSE9XX0lHTk9SRUQpLAotCQlPUFRfQk9PTEVBTigncycsICJzdGFnZSIsICZzaG93X3N0YWdlLAorCQlPUFRfQk9PTCgncycsICJzdGFnZSIsICZzaG93X3N0YWdlLAogCQkJTl8oInNob3cgc3RhZ2VkIGNvbnRlbnRzJyBvYmplY3QgbmFtZSBpbiB0aGUgb3V0cHV0IikpLAotCQlPUFRfQk9PTEVBTignaycsICJraWxsZWQiLCAmc2hvd19raWxsZWQsCisJCU9QVF9CT09MKCdrJywgImtpbGxlZCIsICZzaG93X2tpbGxlZCwKIAkJCU5fKCJzaG93IGZpbGVzIG9uIHRoZSBmaWxlc3lzdGVtIHRoYXQgbmVlZCB0byBiZSByZW1vdmVkIikpLAogCQlPUFRfQklUKDAsICJkaXJlY3RvcnkiLCAmZGlyLmZsYWdzLAogCQkJTl8oInNob3cgJ290aGVyJyBkaXJlY3RvcmllcycgbmFtZSBvbmx5IiksCkBAIC00ODgsOSArNDc2LDkgQEAKIAkJT1BUX05FR0JJVCgwLCAiZW1wdHktZGlyZWN0b3J5IiwgJmRpci5mbGFncywKIAkJCU5fKCJkb24ndCBzaG93IGVtcHR5IGRpcmVjdG9yaWVzIiksCiAJCQlESVJfSElERV9FTVBUWV9ESVJFQ1RPUklFUyksCi0JCU9QVF9CT09MRUFOKCd1JywgInVubWVyZ2VkIiwgJnNob3dfdW5tZXJnZWQsCisJCU9QVF9CT09MKCd1JywgInVubWVyZ2VkIiwgJnNob3dfdW5tZXJnZWQsCiAJCQlOXygic2hvdyB1bm1lcmdlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IikpLAotCQlPUFRfQk9PTEVBTigwLCAicmVzb2x2ZS11bmRvIiwgJnNob3dfcmVzb2x2ZV91bmRvLAorCQlPUFRfQk9PTCgwLCAicmVzb2x2ZS11bmRvIiwgJnNob3dfcmVzb2x2ZV91bmRvLAogCQkJICAgIE5fKCJzaG93IHJlc29sdmUtdW5kbyBpbmZvcm1hdGlvbiIpKSwKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssICd4JywgImV4Y2x1ZGUiLCAmZXhjbHVkZV9saXN0LCBOXygicGF0dGVybiIpLAogCQkJTl8oInNraXAgZmlsZXMgbWF0Y2hpbmcgcGF0dGVybiIpLApAQCAtNTA2LDEyICs0OTQsMTIgQEAKIAkJeyBPUFRJT05fU0VUX0lOVCwgMCwgImZ1bGwtbmFtZSIsICZwcmVmaXhfbGVuLCBOVUxMLAogCQkJTl8oIm1ha2UgdGhlIG91dHB1dCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCB0b3AgZGlyZWN0b3J5IiksCiAJCQlQQVJTRV9PUFRfTk9BUkcgfCBQQVJTRV9PUFRfTk9ORUcsIE5VTEwgfSwKLQkJT1BUX0JPT0xFQU4oMCwgImVycm9yLXVubWF0Y2giLCAmZXJyb3JfdW5tYXRjaCwKKwkJT1BUX0JPT0woMCwgImVycm9yLXVubWF0Y2giLCAmZXJyb3JfdW5tYXRjaCwKIAkJCU5fKCJpZiBhbnkgPGZpbGU+IGlzIG5vdCBpbiB0aGUgaW5kZXgsIHRyZWF0IHRoaXMgYXMgYW4gZXJyb3IiKSksCiAJCU9QVF9TVFJJTkcoMCwgIndpdGgtdHJlZSIsICZ3aXRoX3RyZWUsIE5fKCJ0cmVlLWlzaCIpLAogCQkJTl8oInByZXRlbmQgdGhhdCBwYXRocyByZW1vdmVkIHNpbmNlIDx0cmVlLWlzaD4gYXJlIHN0aWxsIHByZXNlbnQiKSksCiAJCU9QVF9fQUJCUkVWKCZhYmJyZXYpLAotCQlPUFRfQk9PTEVBTigwLCAiZGVidWciLCAmZGVidWdfbW9kZSwgTl8oInNob3cgZGVidWdnaW5nIGRhdGEiKSksCisJCU9QVF9CT09MKDAsICJkZWJ1ZyIsICZkZWJ1Z19tb2RlLCBOXygic2hvdyBkZWJ1Z2dpbmcgZGF0YSIpKSwKIAkJT1BUX0VORCgpCiAJfTsKIApAQCAtNTU3LDIzICs1NDUsMTggQEAKIAlpZiAocmVxdWlyZV93b3JrX3RyZWUgJiYgIWlzX2luc2lkZV93b3JrX3RyZWUoKSkKIAkJc2V0dXBfd29ya190cmVlKCk7CiAKLQlwYXRoc3BlYyA9IGdldF9wYXRoc3BlYyhwcmVmaXgsIGFyZ3YpOwotCi0JLyogYmUgbmljZSB3aXRoIHN1Ym1vZHVsZSBwYXRocyBlbmRpbmcgaW4gYSBzbGFzaCAqLwotCWlmIChwYXRoc3BlYykKLQkJc3RyaXBfdHJhaWxpbmdfc2xhc2hfZnJvbV9zdWJtb2R1bGVzKCk7CisJcGFyc2VfcGF0aHNwZWMoJnBhdGhzcGVjLCAwLAorCQkgICAgICAgUEFUSFNQRUNfUFJFRkVSX0NXRCB8CisJCSAgICAgICBQQVRIU1BFQ19TVFJJUF9TVUJNT0RVTEVfU0xBU0hfQ0hFQVAsCisJCSAgICAgICBwcmVmaXgsIGFyZ3YpOwogCiAJLyogRmluZCBjb21tb24gcHJlZml4IGZvciBhbGwgcGF0aHNwZWMncyAqLwotCW1heF9wcmVmaXggPSBjb21tb25fcHJlZml4KHBhdGhzcGVjKTsKKwltYXhfcHJlZml4ID0gY29tbW9uX3ByZWZpeCgmcGF0aHNwZWMpOwogCW1heF9wcmVmaXhfbGVuID0gbWF4X3ByZWZpeCA/IHN0cmxlbihtYXhfcHJlZml4KSA6IDA7CiAKIAkvKiBUcmVhdCB1bm1hdGNoaW5nIHBhdGhzcGVjIGVsZW1lbnRzIGFzIGVycm9ycyAqLwotCWlmIChwYXRoc3BlYyAmJiBlcnJvcl91bm1hdGNoKSB7Ci0JCWludCBudW07Ci0JCWZvciAobnVtID0gMDsgcGF0aHNwZWNbbnVtXTsgbnVtKyspCi0JCQk7Ci0JCXBzX21hdGNoZWQgPSB4Y2FsbG9jKDEsIG51bSk7Ci0JfQorCWlmIChwYXRoc3BlYy5uciAmJiBlcnJvcl91bm1hdGNoKQorCQlwc19tYXRjaGVkID0geGNhbGxvYygxLCBwYXRoc3BlYy5ucik7CiAKIAlpZiAoKGRpci5mbGFncyAmIERJUl9TSE9XX0lHTk9SRUQpICYmICFleGNfZ2l2ZW4pCiAJCWRpZSgibHMtZmlsZXMgLS1pZ25vcmVkIG5lZWRzIHNvbWUgZXhjbHVkZSBwYXR0ZXJuIik7CkBAIC02MDAsNyArNTgzLDcgQEAKIAogCWlmIChwc19tYXRjaGVkKSB7CiAJCWludCBiYWQ7Ci0JCWJhZCA9IHJlcG9ydF9wYXRoX2Vycm9yKHBzX21hdGNoZWQsIHBhdGhzcGVjLCBwcmVmaXgpOworCQliYWQgPSByZXBvcnRfcGF0aF9lcnJvcihwc19tYXRjaGVkLCAmcGF0aHNwZWMsIHByZWZpeCk7CiAJCWlmIChiYWQpCiAJCQlmcHJpbnRmKHN0ZGVyciwgIkRpZCB5b3UgZm9yZ2V0IHRvICdnaXQgYWRkJz9cbiIpOwogCmRpZmYgLS1naXQgYS9idWlsdGluL2xzLXJlbW90ZS5jIGIvYnVpbHRpbi9scy1yZW1vdGUuYwppbmRleCAyNWU4M2NmLi4zOWU1MTQ0IDEwMDY0NAotLS0gYS9idWlsdGluL2xzLXJlbW90ZS5jCisrKyBiL2J1aWx0aW4vbHMtcmVtb3RlLmMKQEAgLTUwLDExICs1MCwxMSBAQAogCQljb25zdCBjaGFyICphcmcgPSBhcmd2W2ldOwogCiAJCWlmICgqYXJnID09ICctJykgewotCQkJaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS11cGxvYWQtcGFjaz0iKSkgeworCQkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tdXBsb2FkLXBhY2s9IikpIHsKIAkJCQl1cGxvYWRwYWNrID0gYXJnICsgMTQ7CiAJCQkJY29udGludWU7CiAJCQl9Ci0JCQlpZiAoIXByZWZpeGNtcChhcmcsICItLWV4ZWM9IikpIHsKKwkJCWlmIChzdGFydHNfd2l0aChhcmcsICItLWV4ZWM9IikpIHsKIAkJCQl1cGxvYWRwYWNrID0gYXJnICsgNzsKIAkJCQljb250aW51ZTsKIAkJCX0KZGlmZiAtLWdpdCBhL2J1aWx0aW4vbHMtdHJlZS5jIGIvYnVpbHRpbi9scy10cmVlLmMKaW5kZXggZmI3NmUzOC4uNjVlYzkzMSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9scy10cmVlLmMKKysrIGIvYnVpbHRpbi9scy10cmVlLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlICJxdW90ZS5oIgogI2luY2x1ZGUgImJ1aWx0aW4uaCIKICNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCisjaW5jbHVkZSAicGF0aHNwZWMuaCIKIAogc3RhdGljIGludCBsaW5lX3Rlcm1pbmF0aW9uID0gJ1xuJzsKICNkZWZpbmUgTFNfUkVDVVJTSVZFIDEKQEAgLTM1LDcgKzM2LDcgQEAKIAlpZiAobHNfb3B0aW9ucyAmIExTX1JFQ1VSU0lWRSkKIAkJcmV0dXJuIDE7CiAKLQlzID0gcGF0aHNwZWMucmF3OworCXMgPSBwYXRoc3BlYy5fcmF3OwogCWlmICghcykKIAkJcmV0dXJuIDA7CiAKQEAgLTEzOCw5ICsxMzksOSBAQAogCQkJTFNfTkFNRV9PTkxZKSwKIAkJT1BUX1NFVF9JTlQoMCwgImZ1bGwtbmFtZSIsICZjaG9tcF9wcmVmaXgsCiAJCQkgICAgTl8oInVzZSBmdWxsIHBhdGggbmFtZXMiKSwgMCksCi0JCU9QVF9CT09MRUFOKDAsICJmdWxsLXRyZWUiLCAmZnVsbF90cmVlLAotCQkJICAgIE5fKCJsaXN0IGVudGlyZSB0cmVlOyBub3QganVzdCBjdXJyZW50IGRpcmVjdG9yeSAiCi0JCQkgICAgICAgIihpbXBsaWVzIC0tZnVsbC1uYW1lKSIpKSwKKwkJT1BUX0JPT0woMCwgImZ1bGwtdHJlZSIsICZmdWxsX3RyZWUsCisJCQkgTl8oImxpc3QgZW50aXJlIHRyZWU7IG5vdCBqdXN0IGN1cnJlbnQgZGlyZWN0b3J5ICIKKwkJCSAgICAiKGltcGxpZXMgLS1mdWxsLW5hbWUpIikpLAogCQlPUFRfX0FCQlJFVigmYWJicmV2KSwKIAkJT1BUX0VORCgpCiAJfTsKQEAgLTE2Niw3ICsxNjcsMTUgQEAKIAlpZiAoZ2V0X3NoYTEoYXJndlswXSwgc2hhMSkpCiAJCWRpZSgiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWUgJXMiLCBhcmd2WzBdKTsKIAotCWluaXRfcGF0aHNwZWMoJnBhdGhzcGVjLCBnZXRfcGF0aHNwZWMocHJlZml4LCBhcmd2ICsgMSkpOworCS8qCisJICogc2hvd19yZWN1cnNpdmUoKSByb2xscyBpdHMgb3duIG1hdGNoaW5nIGNvZGUgYW5kIGlzCisJICogZ2VuZXJhbGx5IGlnbm9yYW50IG9mICdzdHJ1Y3QgcGF0aHNwZWMnLiBUaGUgbWFnaWMgbWFzaworCSAqIGNhbm5vdCBiZSBsaWZ0ZWQgdW50aWwgaXQgaXMgY29udmVydGVkIHRvIHVzZQorCSAqIG1hdGNoX3BhdGhzcGVjX2RlcHRoKCkgb3IgdHJlZV9lbnRyeV9pbnRlcmVzdGluZygpCisJICovCisJcGFyc2VfcGF0aHNwZWMoJnBhdGhzcGVjLCBQQVRIU1BFQ19HTE9CIHwgUEFUSFNQRUNfSUNBU0UsCisJCSAgICAgICBQQVRIU1BFQ19QUkVGRVJfQ1dELAorCQkgICAgICAgcHJlZml4LCBhcmd2ICsgMSk7CiAJZm9yIChpID0gMDsgaSA8IHBhdGhzcGVjLm5yOyBpKyspCiAJCXBhdGhzcGVjLml0ZW1zW2ldLm5vd2lsZGNhcmRfbGVuID0gcGF0aHNwZWMuaXRlbXNbaV0ubGVuOwogCXBhdGhzcGVjLmhhc193aWxkY2FyZCA9IDA7CmRpZmYgLS1naXQgYS9idWlsdGluL21haWxpbmZvLmMgYi9idWlsdGluL21haWxpbmZvLmMKaW5kZXggMjRhNzcyZC4uMmMzY2Q4ZSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9tYWlsaW5mby5jCisrKyBiL2J1aWx0aW4vbWFpbGluZm8uYwpAQCAtMzI4LDExICszMjgsMTEgQEAKIAl9CiAKIAkvKiBmb3IgaW5ib2R5IHN0dWZmICovCi0JaWYgKCFwcmVmaXhjbXAobGluZS0+YnVmLCAiPkZyb20iKSAmJiBpc3NwYWNlKGxpbmUtPmJ1Zls1XSkpIHsKKwlpZiAoc3RhcnRzX3dpdGgobGluZS0+YnVmLCAiPkZyb20iKSAmJiBpc3NwYWNlKGxpbmUtPmJ1Zls1XSkpIHsKIAkJcmV0ID0gMTsgLyogU2hvdWxkIHRoaXMgcmV0dXJuIDA/ICovCiAJCWdvdG8gY2hlY2tfaGVhZGVyX291dDsKIAl9Ci0JaWYgKCFwcmVmaXhjbXAobGluZS0+YnVmLCAiW1BBVENIXSIpICYmIGlzc3BhY2UobGluZS0+YnVmWzddKSkgeworCWlmIChzdGFydHNfd2l0aChsaW5lLT5idWYsICJbUEFUQ0hdIikgJiYgaXNzcGFjZShsaW5lLT5idWZbN10pKSB7CiAJCWZvciAoaSA9IDA7IGhlYWRlcltpXTsgaSsrKSB7CiAJCQlpZiAoIW1lbWNtcCgiU3ViamVjdCIsIGhlYWRlcltpXSwgNykpIHsKIAkJCQloYW5kbGVfaGVhZGVyKCZoZHJfZGF0YVtpXSwgbGluZSk7CkBAIC0zNjEsNyArMzYxLDcgQEAKIAljaGFyICpjcCA9IGxpbmUtPmJ1ZjsKIAogCS8qIENvdW50IG1ib3ggRnJvbSBoZWFkZXJzIGFzIGhlYWRlcnMgKi8KLQlpZiAoIXByZWZpeGNtcChjcCwgIkZyb20gIikgfHwgIXByZWZpeGNtcChjcCwgIj5Gcm9tICIpKQorCWlmIChzdGFydHNfd2l0aChjcCwgIkZyb20gIikgfHwgc3RhcnRzX3dpdGgoY3AsICI+RnJvbSAiKSkKIAkJcmV0dXJuIDE7CiAKIAl3aGlsZSAoKGNoID0gKmNwKyspKSB7CkBAIC02NzEsMTEgKzY3MSwxMSBAQAogCXNpemVfdCBpOwogCiAJLyogQmVnaW5uaW5nIG9mIGEgImRpZmYgLSIgaGVhZGVyPyAqLwotCWlmICghcHJlZml4Y21wKGxpbmUtPmJ1ZiwgImRpZmYgLSIpKQorCWlmIChzdGFydHNfd2l0aChsaW5lLT5idWYsICJkaWZmIC0iKSkKIAkJcmV0dXJuIDE7CiAKIAkvKiBDVlMgIkluZGV4OiAiIGxpbmU/ICovCi0JaWYgKCFwcmVmaXhjbXAobGluZS0+YnVmLCAiSW5kZXg6ICIpKQorCWlmIChzdGFydHNfd2l0aChsaW5lLT5idWYsICJJbmRleDogIikpCiAJCXJldHVybiAxOwogCiAJLyoKQEAgLTY4NSw3ICs2ODUsNyBAQAogCWlmIChsaW5lLT5sZW4gPCA0KQogCQlyZXR1cm4gMDsKIAotCWlmICghcHJlZml4Y21wKGxpbmUtPmJ1ZiwgIi0tLSIpKSB7CisJaWYgKHN0YXJ0c193aXRoKGxpbmUtPmJ1ZiwgIi0tLSIpKSB7CiAJCS8qIHNwYWNlIGZvbGxvd2VkIGJ5IGEgZmlsZW5hbWU/ICovCiAJCWlmIChsaW5lLT5idWZbM10gPT0gJyAnICYmICFpc3NwYWNlKGxpbmUtPmJ1Zls0XSkpCiAJCQlyZXR1cm4gMTsKQEAgLTk4Niw3ICs5ODYsNyBAQAogCiBzdGF0aWMgaW50IGdpdF9tYWlsaW5mb19jb25maWcoY29uc3QgY2hhciAqdmFyLCBjb25zdCBjaGFyICp2YWx1ZSwgdm9pZCAqdW51c2VkKQogewotCWlmIChwcmVmaXhjbXAodmFyLCAibWFpbGluZm8uIikpCisJaWYgKCFzdGFydHNfd2l0aCh2YXIsICJtYWlsaW5mby4iKSkKIAkJcmV0dXJuIGdpdF9kZWZhdWx0X2NvbmZpZyh2YXIsIHZhbHVlLCB1bnVzZWQpOwogCWlmICghc3RyY21wKHZhciwgIm1haWxpbmZvLnNjaXNzb3JzIikpIHsKIAkJdXNlX3NjaXNzb3JzID0gZ2l0X2NvbmZpZ19ib29sKHZhciwgdmFsdWUpOwpAQCAtMTAyMCw3ICsxMDIwLDcgQEAKIAkJCW1ldGFpbmZvX2NoYXJzZXQgPSBkZWZfY2hhcnNldDsKIAkJZWxzZSBpZiAoIXN0cmNtcChhcmd2WzFdLCAiLW4iKSkKIAkJCW1ldGFpbmZvX2NoYXJzZXQgPSBOVUxMOwotCQllbHNlIGlmICghcHJlZml4Y21wKGFyZ3ZbMV0sICItLWVuY29kaW5nPSIpKQorCQllbHNlIGlmIChzdGFydHNfd2l0aChhcmd2WzFdLCAiLS1lbmNvZGluZz0iKSkKIAkJCW1ldGFpbmZvX2NoYXJzZXQgPSBhcmd2WzFdICsgMTE7CiAJCWVsc2UgaWYgKCFzdHJjbXAoYXJndlsxXSwgIi0tc2Npc3NvcnMiKSkKIAkJCXVzZV9zY2lzc29ycyA9IDE7CmRpZmYgLS1naXQgYS9idWlsdGluL21lcmdlLWJhc2UuYyBiL2J1aWx0aW4vbWVyZ2UtYmFzZS5jCmluZGV4IDBjNGNkMmYuLjBlY2RlOGQgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vbWVyZ2UtYmFzZS5jCisrKyBiL2J1aWx0aW4vbWVyZ2UtYmFzZS5jCkBAIC0xLDYgKzEsOSBAQAogI2luY2x1ZGUgImJ1aWx0aW4uaCIKICNpbmNsdWRlICJjYWNoZS5oIgogI2luY2x1ZGUgImNvbW1pdC5oIgorI2luY2x1ZGUgInJlZnMuaCIKKyNpbmNsdWRlICJkaWZmLmgiCisjaW5jbHVkZSAicmV2aXNpb24uaCIKICNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCiAKIHN0YXRpYyBpbnQgc2hvd19tZXJnZV9iYXNlKHN0cnVjdCBjb21taXQgKipyZXYsIGludCByZXZfbnIsIGludCBzaG93X2FsbCkKQEAgLTI3LDYgKzMwLDcgQEAKIAlOXygiZ2l0IG1lcmdlLWJhc2UgWy1hfC0tYWxsXSAtLW9jdG9wdXMgPGNvbW1pdD4uLi4iKSwKIAlOXygiZ2l0IG1lcmdlLWJhc2UgLS1pbmRlcGVuZGVudCA8Y29tbWl0Pi4uLiIpLAogCU5fKCJnaXQgbWVyZ2UtYmFzZSAtLWlzLWFuY2VzdG9yIDxjb21taXQ+IDxjb21taXQ+IiksCisJTl8oImdpdCBtZXJnZS1iYXNlIC0tZm9yay1wb2ludCA8cmVmPiBbPGNvbW1pdD5dIiksCiAJTlVMTAogfTsKIApAQCAtNDQsMTkgKzQ4LDM2IEBACiAJcmV0dXJuIHI7CiB9CiAKLXN0YXRpYyBpbnQgaGFuZGxlX29jdG9wdXMoaW50IGNvdW50LCBjb25zdCBjaGFyICoqYXJncywgaW50IHJlZHVjZSwgaW50IHNob3dfYWxsKQorc3RhdGljIGludCBoYW5kbGVfaW5kZXBlbmRlbnQoaW50IGNvdW50LCBjb25zdCBjaGFyICoqYXJncykKIHsKIAlzdHJ1Y3QgY29tbWl0X2xpc3QgKnJldnMgPSBOVUxMOwogCXN0cnVjdCBjb21taXRfbGlzdCAqcmVzdWx0OwogCWludCBpOwogCi0JaWYgKHJlZHVjZSkKLQkJc2hvd19hbGwgPSAxOworCWZvciAoaSA9IGNvdW50IC0gMTsgaSA+PSAwOyBpLS0pCisJCWNvbW1pdF9saXN0X2luc2VydChnZXRfY29tbWl0X3JlZmVyZW5jZShhcmdzW2ldKSwgJnJldnMpOworCisJcmVzdWx0ID0gcmVkdWNlX2hlYWRzKHJldnMpOworCWlmICghcmVzdWx0KQorCQlyZXR1cm4gMTsKKworCXdoaWxlIChyZXN1bHQpIHsKKwkJcHJpbnRmKCIlc1xuIiwgc2hhMV90b19oZXgocmVzdWx0LT5pdGVtLT5vYmplY3Quc2hhMSkpOworCQlyZXN1bHQgPSByZXN1bHQtPm5leHQ7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbmRsZV9vY3RvcHVzKGludCBjb3VudCwgY29uc3QgY2hhciAqKmFyZ3MsIGludCBzaG93X2FsbCkKK3sKKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKnJldnMgPSBOVUxMOworCXN0cnVjdCBjb21taXRfbGlzdCAqcmVzdWx0OworCWludCBpOwogCiAJZm9yIChpID0gY291bnQgLSAxOyBpID49IDA7IGktLSkKIAkJY29tbWl0X2xpc3RfaW5zZXJ0KGdldF9jb21taXRfcmVmZXJlbmNlKGFyZ3NbaV0pLCAmcmV2cyk7CiAKLQlyZXN1bHQgPSByZWR1Y2UgPyByZWR1Y2VfaGVhZHMocmV2cykgOiBnZXRfb2N0b3B1c19tZXJnZV9iYXNlcyhyZXZzKTsKKwlyZXN1bHQgPSByZWR1Y2VfaGVhZHMoZ2V0X29jdG9wdXNfbWVyZ2VfYmFzZXMocmV2cykpOwogCiAJaWYgKCFyZXN1bHQpCiAJCXJldHVybiAxOwpAQCAtODUsMzcgKzEwNiwxNTEgQEAKIAkJcmV0dXJuIDE7CiB9CiAKK3N0cnVjdCByZXZfY29sbGVjdCB7CisJc3RydWN0IGNvbW1pdCAqKmNvbW1pdDsKKwlpbnQgbnI7CisJaW50IGFsbG9jOworCXVuc2lnbmVkIGludCBpbml0aWFsIDogMTsKK307CisKK3N0YXRpYyB2b2lkIGFkZF9vbmVfY29tbWl0KHVuc2lnbmVkIGNoYXIgKnNoYTEsIHN0cnVjdCByZXZfY29sbGVjdCAqcmV2cykKK3sKKwlzdHJ1Y3QgY29tbWl0ICpjb21taXQ7CisKKwlpZiAoaXNfbnVsbF9zaGExKHNoYTEpKQorCQlyZXR1cm47CisKKwljb21taXQgPSBsb29rdXBfY29tbWl0KHNoYTEpOworCWlmICghY29tbWl0IHx8CisJICAgIChjb21taXQtPm9iamVjdC5mbGFncyAmIFRNUF9NQVJLKSB8fAorCSAgICBwYXJzZV9jb21taXQoY29tbWl0KSkKKwkJcmV0dXJuOworCisJQUxMT0NfR1JPVyhyZXZzLT5jb21taXQsIHJldnMtPm5yICsgMSwgcmV2cy0+YWxsb2MpOworCXJldnMtPmNvbW1pdFtyZXZzLT5ucisrXSA9IGNvbW1pdDsKKwljb21taXQtPm9iamVjdC5mbGFncyB8PSBUTVBfTUFSSzsKK30KKworc3RhdGljIGludCBjb2xsZWN0X29uZV9yZWZsb2dfZW50KHVuc2lnbmVkIGNoYXIgKm9zaGExLCB1bnNpZ25lZCBjaGFyICpuc2hhMSwKKwkJCQkgIGNvbnN0IGNoYXIgKmlkZW50LCB1bnNpZ25lZCBsb25nIHRpbWVzdGFtcCwKKwkJCQkgIGludCB0eiwgY29uc3QgY2hhciAqbWVzc2FnZSwgdm9pZCAqY2JkYXRhKQoreworCXN0cnVjdCByZXZfY29sbGVjdCAqcmV2cyA9IGNiZGF0YTsKKworCWlmIChyZXZzLT5pbml0aWFsKSB7CisJCXJldnMtPmluaXRpYWwgPSAwOworCQlhZGRfb25lX2NvbW1pdChvc2hhMSwgcmV2cyk7CisJfQorCWFkZF9vbmVfY29tbWl0KG5zaGExLCByZXZzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYW5kbGVfZm9ya19wb2ludChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCit7CisJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKKwljaGFyICpyZWZuYW1lOworCWNvbnN0IGNoYXIgKmNvbW1pdG5hbWU7CisJc3RydWN0IHJldl9jb2xsZWN0IHJldnM7CisJc3RydWN0IGNvbW1pdCAqZGVyaXZlZDsKKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKmJhc2VzOworCWludCBpLCByZXQgPSAwOworCisJc3dpdGNoIChkd2ltX3JlZihhcmd2WzBdLCBzdHJsZW4oYXJndlswXSksIHNoYTEsICZyZWZuYW1lKSkgeworCWNhc2UgMDoKKwkJZGllKCJObyBzdWNoIHJlZjogJyVzJyIsIGFyZ3ZbMF0pOworCWNhc2UgMToKKwkJYnJlYWs7IC8qIGdvb2QgKi8KKwlkZWZhdWx0OgorCQlkaWUoIkFtYmlndW91cyByZWZuYW1lOiAnJXMnIiwgYXJndlswXSk7CisJfQorCisJY29tbWl0bmFtZSA9IChhcmdjID09IDIpID8gYXJndlsxXSA6ICJIRUFEIjsKKwlpZiAoZ2V0X3NoYTEoY29tbWl0bmFtZSwgc2hhMSkpCisJCWRpZSgiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWU6ICclcyciLCBjb21taXRuYW1lKTsKKworCWRlcml2ZWQgPSBsb29rdXBfY29tbWl0X3JlZmVyZW5jZShzaGExKTsKKwltZW1zZXQoJnJldnMsIDAsIHNpemVvZihyZXZzKSk7CisJcmV2cy5pbml0aWFsID0gMTsKKwlmb3JfZWFjaF9yZWZsb2dfZW50KHJlZm5hbWUsIGNvbGxlY3Rfb25lX3JlZmxvZ19lbnQsICZyZXZzKTsKKworCWZvciAoaSA9IDA7IGkgPCByZXZzLm5yOyBpKyspCisJCXJldnMuY29tbWl0W2ldLT5vYmplY3QuZmxhZ3MgJj0gflRNUF9NQVJLOworCisJYmFzZXMgPSBnZXRfbWVyZ2VfYmFzZXNfbWFueShkZXJpdmVkLCByZXZzLm5yLCByZXZzLmNvbW1pdCwgMCk7CisKKwkvKgorCSAqIFRoZXJlIHNob3VsZCBiZSBvbmUgYW5kIG9ubHkgb25lIG1lcmdlIGJhc2UsIHdoZW4gd2UgZm91bmQKKwkgKiBhIGNvbW1vbiBhbmNlc3RvciBhbW9uZyByZWZsb2cgZW50cmllcy4KKwkgKi8KKwlpZiAoIWJhc2VzIHx8IGJhc2VzLT5uZXh0KSB7CisJCXJldCA9IDE7CisJCWdvdG8gY2xlYW51cF9yZXR1cm47CisJfQorCisJLyogQW5kIHRoZSBmb3VuZCBvbmUgbXVzdCBiZSBvbmUgb2YgdGhlIHJlZmxvZyBlbnRyaWVzICovCisJZm9yIChpID0gMDsgaSA8IHJldnMubnI7IGkrKykKKwkJaWYgKCZiYXNlcy0+aXRlbS0+b2JqZWN0ID09ICZyZXZzLmNvbW1pdFtpXS0+b2JqZWN0KQorCQkJYnJlYWs7IC8qIGZvdW5kICovCisJaWYgKHJldnMubnIgPD0gaSkgeworCQlyZXQgPSAxOyAvKiBub3QgZm91bmQgKi8KKwkJZ290byBjbGVhbnVwX3JldHVybjsKKwl9CisKKwlwcmludGYoIiVzXG4iLCBzaGExX3RvX2hleChiYXNlcy0+aXRlbS0+b2JqZWN0LnNoYTEpKTsKKworY2xlYW51cF9yZXR1cm46CisJZnJlZV9jb21taXRfbGlzdChiYXNlcyk7CisJcmV0dXJuIHJldDsKK30KKwogaW50IGNtZF9tZXJnZV9iYXNlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KQogewogCXN0cnVjdCBjb21taXQgKipyZXY7CiAJaW50IHJldl9uciA9IDA7CiAJaW50IHNob3dfYWxsID0gMDsKLQlpbnQgb2N0b3B1cyA9IDA7Ci0JaW50IHJlZHVjZSA9IDA7Ci0JaW50IGlzX2FuY2VzdG9yID0gMDsKKwlpbnQgY21kbW9kZSA9IDA7CiAKIAlzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKLQkJT1BUX0JPT0xFQU4oJ2EnLCAiYWxsIiwgJnNob3dfYWxsLCBOXygib3V0cHV0IGFsbCBjb21tb24gYW5jZXN0b3JzIikpLAotCQlPUFRfQk9PTEVBTigwLCAib2N0b3B1cyIsICZvY3RvcHVzLCBOXygiZmluZCBhbmNlc3RvcnMgZm9yIGEgc2luZ2xlIG4td2F5IG1lcmdlIikpLAotCQlPUFRfQk9PTEVBTigwLCAiaW5kZXBlbmRlbnQiLCAmcmVkdWNlLCBOXygibGlzdCByZXZzIG5vdCByZWFjaGFibGUgZnJvbSBvdGhlcnMiKSksCi0JCU9QVF9CT09MRUFOKDAsICJpcy1hbmNlc3RvciIsICZpc19hbmNlc3RvciwKLQkJCSAgICBOXygiaXMgdGhlIGZpcnN0IG9uZSBhbmNlc3RvciBvZiB0aGUgb3RoZXI/IikpLAorCQlPUFRfQk9PTCgnYScsICJhbGwiLCAmc2hvd19hbGwsIE5fKCJvdXRwdXQgYWxsIGNvbW1vbiBhbmNlc3RvcnMiKSksCisJCU9QVF9DTURNT0RFKDAsICJvY3RvcHVzIiwgJmNtZG1vZGUsCisJCQkgICAgTl8oImZpbmQgYW5jZXN0b3JzIGZvciBhIHNpbmdsZSBuLXdheSBtZXJnZSIpLCAnbycpLAorCQlPUFRfQ01ETU9ERSgwLCAiaW5kZXBlbmRlbnQiLCAmY21kbW9kZSwKKwkJCSAgICBOXygibGlzdCByZXZzIG5vdCByZWFjaGFibGUgZnJvbSBvdGhlcnMiKSwgJ3InKSwKKwkJT1BUX0NNRE1PREUoMCwgImlzLWFuY2VzdG9yIiwgJmNtZG1vZGUsCisJCQkgICAgTl8oImlzIHRoZSBmaXJzdCBvbmUgYW5jZXN0b3Igb2YgdGhlIG90aGVyPyIpLCAnYScpLAorCQlPUFRfQ01ETU9ERSgwLCAiZm9yay1wb2ludCIsICZjbWRtb2RlLAorCQkJICAgIE5fKCJmaW5kIHdoZXJlIDxjb21taXQ+IGZvcmtlZCBmcm9tIHJlZmxvZyBvZiA8cmVmPiIpLCAnZicpLAogCQlPUFRfRU5EKCkKIAl9OwogCiAJZ2l0X2NvbmZpZyhnaXRfZGVmYXVsdF9jb25maWcsIE5VTEwpOwogCWFyZ2MgPSBwYXJzZV9vcHRpb25zKGFyZ2MsIGFyZ3YsIHByZWZpeCwgb3B0aW9ucywgbWVyZ2VfYmFzZV91c2FnZSwgMCk7Ci0JaWYgKCFvY3RvcHVzICYmICFyZWR1Y2UgJiYgYXJnYyA8IDIpCi0JCXVzYWdlX3dpdGhfb3B0aW9ucyhtZXJnZV9iYXNlX3VzYWdlLCBvcHRpb25zKTsKLQlpZiAoaXNfYW5jZXN0b3IgJiYgKHNob3dfYWxsIHx8IG9jdG9wdXMgfHwgcmVkdWNlKSkKLQkJZGllKCItLWlzLWFuY2VzdG9yIGNhbm5vdCBiZSB1c2VkIHdpdGggb3RoZXIgb3B0aW9ucyIpOwotCWlmIChpc19hbmNlc3RvcikKLQkJcmV0dXJuIGhhbmRsZV9pc19hbmNlc3RvcihhcmdjLCBhcmd2KTsKLQlpZiAocmVkdWNlICYmIChzaG93X2FsbCB8fCBvY3RvcHVzKSkKLQkJZGllKCItLWluZGVwZW5kZW50IGNhbm5vdCBiZSB1c2VkIHdpdGggb3RoZXIgb3B0aW9ucyIpOwogCi0JaWYgKG9jdG9wdXMgfHwgcmVkdWNlKQotCQlyZXR1cm4gaGFuZGxlX29jdG9wdXMoYXJnYywgYXJndiwgcmVkdWNlLCBzaG93X2FsbCk7CisJaWYgKGNtZG1vZGUgPT0gJ2EnKSB7CisJCWlmIChhcmdjIDwgMikKKwkJCXVzYWdlX3dpdGhfb3B0aW9ucyhtZXJnZV9iYXNlX3VzYWdlLCBvcHRpb25zKTsKKwkJaWYgKHNob3dfYWxsKQorCQkJZGllKCItLWlzLWFuY2VzdG9yIGNhbm5vdCBiZSB1c2VkIHdpdGggLS1hbGwiKTsKKwkJcmV0dXJuIGhhbmRsZV9pc19hbmNlc3RvcihhcmdjLCBhcmd2KTsKKwl9CisKKwlpZiAoY21kbW9kZSA9PSAncicgJiYgc2hvd19hbGwpCisJCWRpZSgiLS1pbmRlcGVuZGVudCBjYW5ub3QgYmUgdXNlZCB3aXRoIC0tYWxsIik7CisKKwlpZiAoY21kbW9kZSA9PSAnbycpCisJCXJldHVybiBoYW5kbGVfb2N0b3B1cyhhcmdjLCBhcmd2LCBzaG93X2FsbCk7CisKKwlpZiAoY21kbW9kZSA9PSAncicpCisJCXJldHVybiBoYW5kbGVfaW5kZXBlbmRlbnQoYXJnYywgYXJndik7CisKKwlpZiAoY21kbW9kZSA9PSAnZicpIHsKKwkJaWYgKGFyZ2MgPCAxIHx8IDIgPCBhcmdjKQorCQkJdXNhZ2Vfd2l0aF9vcHRpb25zKG1lcmdlX2Jhc2VfdXNhZ2UsIG9wdGlvbnMpOworCQlyZXR1cm4gaGFuZGxlX2ZvcmtfcG9pbnQoYXJnYywgYXJndik7CisJfQorCisJaWYgKGFyZ2MgPCAyKQorCQl1c2FnZV93aXRoX29wdGlvbnMobWVyZ2VfYmFzZV91c2FnZSwgb3B0aW9ucyk7CiAKIAlyZXYgPSB4bWFsbG9jKGFyZ2MgKiBzaXplb2YoKnJldikpOwogCXdoaWxlIChhcmdjLS0gPiAwKQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9tZXJnZS1maWxlLmMgYi9idWlsdGluL21lcmdlLWZpbGUuYwppbmRleCBjMDU3MGYyLi44NDRmODRmIDEwMDY0NAotLS0gYS9idWlsdGluL21lcmdlLWZpbGUuYworKysgYi9idWlsdGluL21lcmdlLWZpbGUuYwpAQCAtMzAsNyArMzAsNyBAQAogCWludCBxdWlldCA9IDA7CiAJaW50IHByZWZpeGxlbiA9IDA7CiAJc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7Ci0JCU9QVF9CT09MRUFOKCdwJywgInN0ZG91dCIsICZ0b19zdGRvdXQsIE5fKCJzZW5kIHJlc3VsdHMgdG8gc3RhbmRhcmQgb3V0cHV0IikpLAorCQlPUFRfQk9PTCgncCcsICJzdGRvdXQiLCAmdG9fc3Rkb3V0LCBOXygic2VuZCByZXN1bHRzIHRvIHN0YW5kYXJkIG91dHB1dCIpKSwKIAkJT1BUX1NFVF9JTlQoMCwgImRpZmYzIiwgJnhtcC5zdHlsZSwgTl8oInVzZSBhIGRpZmYzIGJhc2VkIG1lcmdlIiksIFhETF9NRVJHRV9ESUZGMyksCiAJCU9QVF9TRVRfSU5UKDAsICJvdXJzIiwgJnhtcC5mYXZvciwgTl8oImZvciBjb25mbGljdHMsIHVzZSBvdXIgdmVyc2lvbiIpLAogCQkJICAgIFhETF9NRVJHRV9GQVZPUl9PVVJTKSwKZGlmZiAtLWdpdCBhL2J1aWx0aW4vbWVyZ2UtcmVjdXJzaXZlLmMgYi9idWlsdGluL21lcmdlLXJlY3Vyc2l2ZS5jCmluZGV4IDNhNjRmNWQuLmE5MGYyOGYgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vbWVyZ2UtcmVjdXJzaXZlLmMKKysrIGIvYnVpbHRpbi9tZXJnZS1yZWN1cnNpdmUuYwpAQCAtMjksNyArMjksNyBAQAogCXN0cnVjdCBjb21taXQgKnJlc3VsdDsKIAogCWluaXRfbWVyZ2Vfb3B0aW9ucygmbyk7Ci0JaWYgKGFyZ3ZbMF0gJiYgIXN1ZmZpeGNtcChhcmd2WzBdLCAiLXN1YnRyZWUiKSkKKwlpZiAoYXJndlswXSAmJiBlbmRzX3dpdGgoYXJndlswXSwgIi1zdWJ0cmVlIikpCiAJCW8uc3VidHJlZV9zaGlmdCA9ICIiOwogCiAJaWYgKGFyZ2MgPCA0KQpAQCAtMzgsNyArMzgsNyBAQAogCWZvciAoaSA9IDE7IGkgPCBhcmdjOyArK2kpIHsKIAkJY29uc3QgY2hhciAqYXJnID0gYXJndltpXTsKIAotCQlpZiAoIXByZWZpeGNtcChhcmcsICItLSIpKSB7CisJCWlmIChzdGFydHNfd2l0aChhcmcsICItLSIpKSB7CiAJCQlpZiAoIWFyZ1syXSkKIAkJCQlicmVhazsKIAkJCWlmIChwYXJzZV9tZXJnZV9vcHQoJm8sIGFyZyArIDIpKQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9tZXJnZS5jIGIvYnVpbHRpbi9tZXJnZS5jCmluZGV4IDM0YTYxNjYuLmU1NzZhN2YgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vbWVyZ2UuYworKysgYi9idWlsdGluL21lcmdlLmMKQEAgLTE4NiwzMyArMTg2LDI2IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgb3B0aW9uX3BhcnNlX2ZmX29ubHkoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LAotCQkJICBjb25zdCBjaGFyICphcmcsIGludCB1bnNldCkKLXsKLQlmYXN0X2ZvcndhcmQgPSBGRl9PTkxZOwotCXJldHVybiAwOwotfQotCiBzdGF0aWMgc3RydWN0IG9wdGlvbiBidWlsdGluX21lcmdlX29wdGlvbnNbXSA9IHsKIAl7IE9QVElPTl9DQUxMQkFDSywgJ24nLCBOVUxMLCBOVUxMLCBOVUxMLAogCQlOXygiZG8gbm90IHNob3cgYSBkaWZmc3RhdCBhdCB0aGUgZW5kIG9mIHRoZSBtZXJnZSIpLAogCQlQQVJTRV9PUFRfTk9BUkcsIG9wdGlvbl9wYXJzZV9uIH0sCi0JT1BUX0JPT0xFQU4oMCwgInN0YXQiLCAmc2hvd19kaWZmc3RhdCwKKwlPUFRfQk9PTCgwLCAic3RhdCIsICZzaG93X2RpZmZzdGF0LAogCQlOXygic2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIikpLAotCU9QVF9CT09MRUFOKDAsICJzdW1tYXJ5IiwgJnNob3dfZGlmZnN0YXQsIE5fKCIoc3lub255bSB0byAtLXN0YXQpIikpLAorCU9QVF9CT09MKDAsICJzdW1tYXJ5IiwgJnNob3dfZGlmZnN0YXQsIE5fKCIoc3lub255bSB0byAtLXN0YXQpIikpLAogCXsgT1BUSU9OX0lOVEVHRVIsIDAsICJsb2ciLCAmc2hvcnRsb2dfbGVuLCBOXygibiIpLAogCSAgTl8oImFkZCAoYXQgbW9zdCA8bj4pIGVudHJpZXMgZnJvbSBzaG9ydGxvZyB0byBtZXJnZSBjb21taXQgbWVzc2FnZSIpLAogCSAgUEFSU0VfT1BUX09QVEFSRywgTlVMTCwgREVGQVVMVF9NRVJHRV9MT0dfTEVOIH0sCi0JT1BUX0JPT0xFQU4oMCwgInNxdWFzaCIsICZzcXVhc2gsCisJT1BUX0JPT0woMCwgInNxdWFzaCIsICZzcXVhc2gsCiAJCU5fKCJjcmVhdGUgYSBzaW5nbGUgY29tbWl0IGluc3RlYWQgb2YgZG9pbmcgYSBtZXJnZSIpKSwKLQlPUFRfQk9PTEVBTigwLCAiY29tbWl0IiwgJm9wdGlvbl9jb21taXQsCisJT1BUX0JPT0woMCwgImNvbW1pdCIsICZvcHRpb25fY29tbWl0LAogCQlOXygicGVyZm9ybSBhIGNvbW1pdCBpZiB0aGUgbWVyZ2Ugc3VjY2VlZHMgKGRlZmF1bHQpIikpLAogCU9QVF9CT09MKCdlJywgImVkaXQiLCAmb3B0aW9uX2VkaXQsCiAJCU5fKCJlZGl0IG1lc3NhZ2UgYmVmb3JlIGNvbW1pdHRpbmciKSksCiAJT1BUX1NFVF9JTlQoMCwgImZmIiwgJmZhc3RfZm9yd2FyZCwgTl8oImFsbG93IGZhc3QtZm9yd2FyZCAoZGVmYXVsdCkiKSwgRkZfQUxMT1cpLAotCXsgT1BUSU9OX0NBTExCQUNLLCAwLCAiZmYtb25seSIsIE5VTEwsIE5VTEwsCisJeyBPUFRJT05fU0VUX0lOVCwgMCwgImZmLW9ubHkiLCAmZmFzdF9mb3J3YXJkLCBOVUxMLAogCQlOXygiYWJvcnQgaWYgZmFzdC1mb3J3YXJkIGlzIG5vdCBwb3NzaWJsZSIpLAotCQlQQVJTRV9PUFRfTk9BUkcgfCBQQVJTRV9PUFRfTk9ORUcsIG9wdGlvbl9wYXJzZV9mZl9vbmx5IH0sCisJCVBBUlNFX09QVF9OT0FSRyB8IFBBUlNFX09QVF9OT05FRywgTlVMTCwgRkZfT05MWSB9LAogCU9QVF9SRVJFUkVfQVVUT1VQREFURSgmYWxsb3dfcmVyZXJlX2F1dG8pLAogCU9QVF9CT09MKDAsICJ2ZXJpZnktc2lnbmF0dXJlcyIsICZ2ZXJpZnlfc2lnbmF0dXJlcywKIAkJTl8oIlZlcmlmeSB0aGF0IHRoZSBuYW1lZCBjb21taXQgaGFzIGEgdmFsaWQgR1BHIHNpZ25hdHVyZSIpKSwKQEAgLTIyNCwxMiArMjE3LDEyIEBACiAJCU5fKCJtZXJnZSBjb21taXQgbWVzc2FnZSAoZm9yIGEgbm9uLWZhc3QtZm9yd2FyZCBtZXJnZSkiKSwKIAkJb3B0aW9uX3BhcnNlX21lc3NhZ2UpLAogCU9QVF9fVkVSQk9TSVRZKCZ2ZXJib3NpdHkpLAotCU9QVF9CT09MRUFOKDAsICJhYm9ydCIsICZhYm9ydF9jdXJyZW50X21lcmdlLAorCU9QVF9CT09MKDAsICJhYm9ydCIsICZhYm9ydF9jdXJyZW50X21lcmdlLAogCQlOXygiYWJvcnQgdGhlIGN1cnJlbnQgaW4tcHJvZ3Jlc3MgbWVyZ2UiKSksCiAJT1BUX1NFVF9JTlQoMCwgInByb2dyZXNzIiwgJnNob3dfcHJvZ3Jlc3MsIE5fKCJmb3JjZSBwcm9ncmVzcyByZXBvcnRpbmciKSwgMSksCiAJeyBPUFRJT05fU1RSSU5HLCAnUycsICJncGctc2lnbiIsICZzaWduX2NvbW1pdCwgTl8oImtleSBpZCIpLAogCSAgTl8oIkdQRyBzaWduIGNvbW1pdCIpLCBQQVJTRV9PUFRfT1BUQVJHLCBOVUxMLCAoaW50cHRyX3QpICIiIH0sCi0JT1BUX0JPT0xFQU4oMCwgIm92ZXJ3cml0ZS1pZ25vcmUiLCAmb3ZlcndyaXRlX2lnbm9yZSwgTl8oInVwZGF0ZSBpZ25vcmVkIGZpbGVzIChkZWZhdWx0KSIpKSwKKwlPUFRfQk9PTCgwLCAib3ZlcndyaXRlLWlnbm9yZSIsICZvdmVyd3JpdGVfaWdub3JlLCBOXygidXBkYXRlIGlnbm9yZWQgZmlsZXMgKGRlZmF1bHQpIikpLAogCU9QVF9FTkQoKQogfTsKIApAQCAtMzc0LDcgKzM2Nyw3IEBACiAJCQlzaGExX3RvX2hleChjb21taXQtPm9iamVjdC5zaGExKSk7CiAJCXByZXR0eV9wcmludF9jb21taXQoJmN0eCwgY29tbWl0LCAmb3V0KTsKIAl9Ci0JaWYgKHdyaXRlKGZkLCBvdXQuYnVmLCBvdXQubGVuKSA8IDApCisJaWYgKHdyaXRlX2luX2Z1bGwoZmQsIG91dC5idWYsIG91dC5sZW4pICE9IG91dC5sZW4pCiAJCWRpZV9lcnJubyhfKCJXcml0aW5nIFNRVUFTSF9NU0ciKSk7CiAJaWYgKGNsb3NlKGZkKSkKIAkJZGllX2Vycm5vKF8oIkZpbmlzaGluZyBTUVVBU0hfTVNHIikpOwpAQCAtNDUzLDE3ICs0NDYsMTcgQEAKIAkJZGllKF8oIiclcycgZG9lcyBub3QgcG9pbnQgdG8gYSBjb21taXQiKSwgcmVtb3RlKTsKIAogCWlmIChkd2ltX3JlZihyZW1vdGUsIHN0cmxlbihyZW1vdGUpLCBicmFuY2hfaGVhZCwgJmZvdW5kX3JlZikgPiAwKSB7Ci0JCWlmICghcHJlZml4Y21wKGZvdW5kX3JlZiwgInJlZnMvaGVhZHMvIikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKGZvdW5kX3JlZiwgInJlZnMvaGVhZHMvIikpIHsKIAkJCXN0cmJ1Zl9hZGRmKG1zZywgIiVzXHRcdGJyYW5jaCAnJXMnIG9mIC5cbiIsCiAJCQkJICAgIHNoYTFfdG9faGV4KGJyYW5jaF9oZWFkKSwgcmVtb3RlKTsKIAkJCWdvdG8gY2xlYW51cDsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChmb3VuZF9yZWYsICJyZWZzL3RhZ3MvIikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKGZvdW5kX3JlZiwgInJlZnMvdGFncy8iKSkgewogCQkJc3RyYnVmX2FkZGYobXNnLCAiJXNcdFx0dGFnICclcycgb2YgLlxuIiwKIAkJCQkgICAgc2hhMV90b19oZXgoYnJhbmNoX2hlYWQpLCByZW1vdGUpOwogCQkJZ290byBjbGVhbnVwOwogCQl9Ci0JCWlmICghcHJlZml4Y21wKGZvdW5kX3JlZiwgInJlZnMvcmVtb3Rlcy8iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoZm91bmRfcmVmLCAicmVmcy9yZW1vdGVzLyIpKSB7CiAJCQlzdHJidWZfYWRkZihtc2csICIlc1x0XHRyZW1vdGUtdHJhY2tpbmcgYnJhbmNoICclcycgb2YgLlxuIiwKIAkJCQkgICAgc2hhMV90b19oZXgoYnJhbmNoX2hlYWQpLCByZW1vdGUpOwogCQkJZ290byBjbGVhbnVwOwpAQCAtNTc3LDggKzU3MCw4IEBACiB7CiAJaW50IHN0YXR1czsKIAotCWlmIChicmFuY2ggJiYgIXByZWZpeGNtcChrLCAiYnJhbmNoLiIpICYmCi0JCSFwcmVmaXhjbXAoayArIDcsIGJyYW5jaCkgJiYKKwlpZiAoYnJhbmNoICYmIHN0YXJ0c193aXRoKGssICJicmFuY2guIikgJiYKKwkJc3RhcnRzX3dpdGgoayArIDcsIGJyYW5jaCkgJiYKIAkJIXN0cmNtcChrICsgNyArIHN0cmxlbihicmFuY2gpLCAiLm1lcmdlb3B0aW9ucyIpKSB7CiAJCWZyZWUoYnJhbmNoX21lcmdlb3B0aW9ucyk7CiAJCWJyYW5jaF9tZXJnZW9wdGlvbnMgPSB4c3RyZHVwKHYpOwpAQCAtMTExMyw3ICsxMTA2LDcgQEAKIAkgKiBjdXJyZW50IGJyYW5jaC4KIAkgKi8KIAlicmFuY2ggPSBicmFuY2hfdG9fZnJlZSA9IHJlc29sdmVfcmVmZHVwKCJIRUFEIiwgaGVhZF9zaGExLCAwLCAmZmxhZyk7Ci0JaWYgKGJyYW5jaCAmJiAhcHJlZml4Y21wKGJyYW5jaCwgInJlZnMvaGVhZHMvIikpCisJaWYgKGJyYW5jaCAmJiBzdGFydHNfd2l0aChicmFuY2gsICJyZWZzL2hlYWRzLyIpKQogCQlicmFuY2ggKz0gMTE7CiAJaWYgKCFicmFuY2ggfHwgaXNfbnVsbF9zaGExKGhlYWRfc2hhMSkpCiAJCWhlYWRfY29tbWl0ID0gTlVMTDsKQEAgLTExOTMsNyArMTE4Niw3IEBACiAJICogVGhpcyBjb3VsZCBiZSB0cmFkaXRpb25hbCAibWVyZ2UgPG1zZz4gSEVBRCA8Y29tbWl0Pi4uLiIgIGFuZAogCSAqIHRoZSB3YXkgd2UgY2FuIHRlbGwgaXQgaXMgdG8gc2VlIGlmIHRoZSBzZWNvbmQgdG9rZW4gaXMgSEVBRCwKIAkgKiBidXQgc29tZSBwZW9wbGUgbWlnaHQgaGF2ZSBtaXN1c2VkIHRoZSBpbnRlcmZhY2UgYW5kIHVzZWQgYQotCSAqIGNvbW1pdHRpc2ggdGhhdCBpcyB0aGUgc2FtZSBhcyBIRUFEIHRoZXJlIGluc3RlYWQuCisJICogY29tbWl0LWlzaCB0aGF0IGlzIHRoZSBzYW1lIGFzIEhFQUQgdGhlcmUgaW5zdGVhZC4KIAkgKiBUcmFkaXRpb25hbCBmb3JtYXQgbmV2ZXIgd291bGQgaGF2ZSAiLW0iIHNvIGl0IGlzIGFuCiAJICogYWRkaXRpb25hbCBzYWZldHkgbWVhc3VyZSB0byBjaGVjayBmb3IgaXQuCiAJICovCmRpZmYgLS1naXQgYS9idWlsdGluL212LmMgYi9idWlsdGluL212LmMKaW5kZXggMDM0ZmVjOS4uMjFjNDZkMSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9tdi5jCisrKyBiL2J1aWx0aW4vbXYuYwpAQCAtOSwxNCArOSwxOSBAQAogI2luY2x1ZGUgImNhY2hlLXRyZWUuaCIKICNpbmNsdWRlICJzdHJpbmctbGlzdC5oIgogI2luY2x1ZGUgInBhcnNlLW9wdGlvbnMuaCIKKyNpbmNsdWRlICJzdWJtb2R1bGUuaCIKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBidWlsdGluX212X3VzYWdlW10gPSB7CiAJTl8oImdpdCBtdiBbb3B0aW9uc10gPHNvdXJjZT4uLi4gPGRlc3RpbmF0aW9uPiIpLAogCU5VTEwKIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICoqY29weV9wYXRoc3BlYyhjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKipwYXRoc3BlYywKLQkJCQkgIGludCBjb3VudCwgaW50IGJhc2VfbmFtZSkKKyNkZWZpbmUgRFVQX0JBU0VOQU1FIDEKKyNkZWZpbmUgS0VFUF9UUkFJTElOR19TTEFTSCAyCisKK3N0YXRpYyBjb25zdCBjaGFyICoqaW50ZXJuYWxfY29weV9wYXRoc3BlYyhjb25zdCBjaGFyICpwcmVmaXgsCisJCQkJCSAgIGNvbnN0IGNoYXIgKipwYXRoc3BlYywKKwkJCQkJICAgaW50IGNvdW50LCB1bnNpZ25lZCBmbGFncykKIHsKIAlpbnQgaTsKIAljb25zdCBjaGFyICoqcmVzdWx0ID0geG1hbGxvYygoY291bnQgKyAxKSAqIHNpemVvZihjb25zdCBjaGFyICopKTsKQEAgLTI1LDExICszMCwxMiBAQAogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAJCWludCBsZW5ndGggPSBzdHJsZW4ocmVzdWx0W2ldKTsKIAkJaW50IHRvX2NvcHkgPSBsZW5ndGg7Ci0JCXdoaWxlICh0b19jb3B5ID4gMCAmJiBpc19kaXJfc2VwKHJlc3VsdFtpXVt0b19jb3B5IC0gMV0pKQorCQl3aGlsZSAoIShmbGFncyAmIEtFRVBfVFJBSUxJTkdfU0xBU0gpICYmCisJCSAgICAgICB0b19jb3B5ID4gMCAmJiBpc19kaXJfc2VwKHJlc3VsdFtpXVt0b19jb3B5IC0gMV0pKQogCQkJdG9fY29weS0tOwotCQlpZiAodG9fY29weSAhPSBsZW5ndGggfHwgYmFzZV9uYW1lKSB7CisJCWlmICh0b19jb3B5ICE9IGxlbmd0aCB8fCBmbGFncyAmIERVUF9CQVNFTkFNRSkgewogCQkJY2hhciAqaXQgPSB4bWVtZHVweihyZXN1bHRbaV0sIHRvX2NvcHkpOwotCQkJaWYgKGJhc2VfbmFtZSkgeworCQkJaWYgKGZsYWdzICYgRFVQX0JBU0VOQU1FKSB7CiAJCQkJcmVzdWx0W2ldID0geHN0cmR1cChiYXNlbmFtZShpdCkpOwogCQkJCWZyZWUoaXQpOwogCQkJfSBlbHNlCkBAIC01MywyMyArNTksMjUgQEAKIH0KIAogc3RhdGljIHN0cnVjdCBsb2NrX2ZpbGUgbG9ja19maWxlOworI2RlZmluZSBTVUJNT0RVTEVfV0lUSF9HSVRESVIgKChjb25zdCBjaGFyICopMSkKIAogaW50IGNtZF9tdihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKIHsKLQlpbnQgaSwgbmV3ZmQ7CisJaW50IGksIG5ld2ZkLCBnaXRtb2R1bGVzX21vZGlmaWVkID0gMDsKIAlpbnQgdmVyYm9zZSA9IDAsIHNob3dfb25seSA9IDAsIGZvcmNlID0gMCwgaWdub3JlX2Vycm9ycyA9IDA7CiAJc3RydWN0IG9wdGlvbiBidWlsdGluX212X29wdGlvbnNbXSA9IHsKIAkJT1BUX19WRVJCT1NFKCZ2ZXJib3NlLCBOXygiYmUgdmVyYm9zZSIpKSwKIAkJT1BUX19EUllfUlVOKCZzaG93X29ubHksIE5fKCJkcnkgcnVuIikpLAogCQlPUFRfX0ZPUkNFKCZmb3JjZSwgTl8oImZvcmNlIG1vdmUvcmVuYW1lIGV2ZW4gaWYgdGFyZ2V0IGV4aXN0cyIpKSwKLQkJT1BUX0JPT0xFQU4oJ2snLCBOVUxMLCAmaWdub3JlX2Vycm9ycywgTl8oInNraXAgbW92ZS9yZW5hbWUgZXJyb3JzIikpLAorCQlPUFRfQk9PTCgnaycsIE5VTEwsICZpZ25vcmVfZXJyb3JzLCBOXygic2tpcCBtb3ZlL3JlbmFtZSBlcnJvcnMiKSksCiAJCU9QVF9FTkQoKSwKIAl9OwotCWNvbnN0IGNoYXIgKipzb3VyY2UsICoqZGVzdGluYXRpb24sICoqZGVzdF9wYXRoOworCWNvbnN0IGNoYXIgKipzb3VyY2UsICoqZGVzdGluYXRpb24sICoqZGVzdF9wYXRoLCAqKnN1Ym1vZHVsZV9naXRmaWxlOwogCWVudW0gdXBkYXRlX21vZGUgeyBCT1RIID0gMCwgV09SS0lOR19ESVJFQ1RPUlksIElOREVYIH0gKm1vZGVzOwogCXN0cnVjdCBzdGF0IHN0OwogCXN0cnVjdCBzdHJpbmdfbGlzdCBzcmNfZm9yX2RzdCA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CiAKKwlnaXRtb2R1bGVzX2NvbmZpZygpOwogCWdpdF9jb25maWcoZ2l0X2RlZmF1bHRfY29uZmlnLCBOVUxMKTsKIAogCWFyZ2MgPSBwYXJzZV9vcHRpb25zKGFyZ2MsIGFyZ3YsIHByZWZpeCwgYnVpbHRpbl9tdl9vcHRpb25zLApAQCAtODEsMTcgKzg5LDIzIEBACiAJaWYgKHJlYWRfY2FjaGUoKSA8IDApCiAJCWRpZShfKCJpbmRleCBmaWxlIGNvcnJ1cHQiKSk7CiAKLQlzb3VyY2UgPSBjb3B5X3BhdGhzcGVjKHByZWZpeCwgYXJndiwgYXJnYywgMCk7CisJc291cmNlID0gaW50ZXJuYWxfY29weV9wYXRoc3BlYyhwcmVmaXgsIGFyZ3YsIGFyZ2MsIDApOwogCW1vZGVzID0geGNhbGxvYyhhcmdjLCBzaXplb2YoZW51bSB1cGRhdGVfbW9kZSkpOwotCWRlc3RfcGF0aCA9IGNvcHlfcGF0aHNwZWMocHJlZml4LCBhcmd2ICsgYXJnYywgMSwgMCk7CisJLyoKKwkgKiBLZWVwIHRyYWlsaW5nIHNsYXNoLCBuZWVkZWQgdG8gbGV0CisJICogImdpdCBtdiBmaWxlIG5vLXN1Y2gtZGlyLyIgZXJyb3Igb3V0LgorCSAqLworCWRlc3RfcGF0aCA9IGludGVybmFsX2NvcHlfcGF0aHNwZWMocHJlZml4LCBhcmd2ICsgYXJnYywgMSwKKwkJCQkJICAgS0VFUF9UUkFJTElOR19TTEFTSCk7CisJc3VibW9kdWxlX2dpdGZpbGUgPSB4Y2FsbG9jKGFyZ2MsIHNpemVvZihjaGFyICopKTsKIAogCWlmIChkZXN0X3BhdGhbMF1bMF0gPT0gJ1wwJykKIAkJLyogc3BlY2lhbCBjYXNlOiAiLiIgd2FzIG5vcm1hbGl6ZWQgdG8gIiIgKi8KLQkJZGVzdGluYXRpb24gPSBjb3B5X3BhdGhzcGVjKGRlc3RfcGF0aFswXSwgYXJndiwgYXJnYywgMSk7CisJCWRlc3RpbmF0aW9uID0gaW50ZXJuYWxfY29weV9wYXRoc3BlYyhkZXN0X3BhdGhbMF0sIGFyZ3YsIGFyZ2MsIERVUF9CQVNFTkFNRSk7CiAJZWxzZSBpZiAoIWxzdGF0KGRlc3RfcGF0aFswXSwgJnN0KSAmJgogCQkJU19JU0RJUihzdC5zdF9tb2RlKSkgewogCQlkZXN0X3BhdGhbMF0gPSBhZGRfc2xhc2goZGVzdF9wYXRoWzBdKTsKLQkJZGVzdGluYXRpb24gPSBjb3B5X3BhdGhzcGVjKGRlc3RfcGF0aFswXSwgYXJndiwgYXJnYywgMSk7CisJCWRlc3RpbmF0aW9uID0gaW50ZXJuYWxfY29weV9wYXRoc3BlYyhkZXN0X3BhdGhbMF0sIGFyZ3YsIGFyZ2MsIERVUF9CQVNFTkFNRSk7CiAJfSBlbHNlIHsKIAkJaWYgKGFyZ2MgIT0gMSkKIAkJCWRpZSgiZGVzdGluYXRpb24gJyVzJyBpcyBub3QgYSBkaXJlY3RvcnkiLCBkZXN0X3BhdGhbMF0pOwpAQCAtMTE3LDU1ICsxMzEsNzAgQEAKIAkJCQkmJiBsc3RhdChkc3QsICZzdCkgPT0gMCkKIAkJCWJhZCA9IF8oImNhbm5vdCBtb3ZlIGRpcmVjdG9yeSBvdmVyIGZpbGUiKTsKIAkJZWxzZSBpZiAoc3JjX2lzX2RpcikgewotCQkJY29uc3QgY2hhciAqc3JjX3dfc2xhc2ggPSBhZGRfc2xhc2goc3JjKTsKLQkJCWludCBsZW5fd19zbGFzaCA9IGxlbmd0aCArIDE7Ci0JCQlpbnQgZmlyc3QsIGxhc3Q7CisJCQlpbnQgZmlyc3QgPSBjYWNoZV9uYW1lX3BvcyhzcmMsIGxlbmd0aCk7CisJCQlpZiAoZmlyc3QgPj0gMCkgeworCQkJCXN0cnVjdCBzdHJidWYgc3VibW9kdWxlX2RvdGdpdCA9IFNUUkJVRl9JTklUOworCQkJCWlmICghU19JU0dJVExJTksoYWN0aXZlX2NhY2hlW2ZpcnN0XS0+Y2VfbW9kZSkpCisJCQkJCWRpZSAoXygiSHVoPyBEaXJlY3RvcnkgJXMgaXMgaW4gaW5kZXggYW5kIG5vIHN1Ym1vZHVsZT8iKSwgc3JjKTsKKwkJCQlpZiAoIWlzX3N0YWdpbmdfZ2l0bW9kdWxlc19vaygpKQorCQkJCQlkaWUgKF8oIlBsZWFzZSwgc3RhZ2UgeW91ciBjaGFuZ2VzIHRvIC5naXRtb2R1bGVzIG9yIHN0YXNoIHRoZW0gdG8gcHJvY2VlZCIpKTsKKwkJCQlzdHJidWZfYWRkZigmc3VibW9kdWxlX2RvdGdpdCwgIiVzLy5naXQiLCBzcmMpOworCQkJCXN1Ym1vZHVsZV9naXRmaWxlW2ldID0gcmVhZF9naXRmaWxlKHN1Ym1vZHVsZV9kb3RnaXQuYnVmKTsKKwkJCQlpZiAoc3VibW9kdWxlX2dpdGZpbGVbaV0pCisJCQkJCXN1Ym1vZHVsZV9naXRmaWxlW2ldID0geHN0cmR1cChzdWJtb2R1bGVfZ2l0ZmlsZVtpXSk7CisJCQkJZWxzZQorCQkJCQlzdWJtb2R1bGVfZ2l0ZmlsZVtpXSA9IFNVQk1PRFVMRV9XSVRIX0dJVERJUjsKKwkJCQlzdHJidWZfcmVsZWFzZSgmc3VibW9kdWxlX2RvdGdpdCk7CisJCQl9IGVsc2UgeworCQkJCWNvbnN0IGNoYXIgKnNyY193X3NsYXNoID0gYWRkX3NsYXNoKHNyYyk7CisJCQkJaW50IGxhc3QsIGxlbl93X3NsYXNoID0gbGVuZ3RoICsgMTsKIAotCQkJbW9kZXNbaV0gPSBXT1JLSU5HX0RJUkVDVE9SWTsKKwkJCQltb2Rlc1tpXSA9IFdPUktJTkdfRElSRUNUT1JZOwogCi0JCQlmaXJzdCA9IGNhY2hlX25hbWVfcG9zKHNyY193X3NsYXNoLCBsZW5fd19zbGFzaCk7Ci0JCQlpZiAoZmlyc3QgPj0gMCkKLQkJCQlkaWUgKF8oIkh1aD8gJS4qcyBpcyBpbiBpbmRleD8iKSwKLQkJCQkJCWxlbl93X3NsYXNoLCBzcmNfd19zbGFzaCk7CisJCQkJZmlyc3QgPSBjYWNoZV9uYW1lX3BvcyhzcmNfd19zbGFzaCwgbGVuX3dfc2xhc2gpOworCQkJCWlmIChmaXJzdCA+PSAwKQorCQkJCQlkaWUgKF8oIkh1aD8gJS4qcyBpcyBpbiBpbmRleD8iKSwKKwkJCQkJCQlsZW5fd19zbGFzaCwgc3JjX3dfc2xhc2gpOwogCi0JCQlmaXJzdCA9IC0xIC0gZmlyc3Q7Ci0JCQlmb3IgKGxhc3QgPSBmaXJzdDsgbGFzdCA8IGFjdGl2ZV9ucjsgbGFzdCsrKSB7Ci0JCQkJY29uc3QgY2hhciAqcGF0aCA9IGFjdGl2ZV9jYWNoZVtsYXN0XS0+bmFtZTsKLQkJCQlpZiAoc3RybmNtcChwYXRoLCBzcmNfd19zbGFzaCwgbGVuX3dfc2xhc2gpKQotCQkJCQlicmVhazsKLQkJCX0KLQkJCWZyZWUoKGNoYXIgKilzcmNfd19zbGFzaCk7Ci0KLQkJCWlmIChsYXN0IC0gZmlyc3QgPCAxKQotCQkJCWJhZCA9IF8oInNvdXJjZSBkaXJlY3RvcnkgaXMgZW1wdHkiKTsKLQkJCWVsc2UgewotCQkJCWludCBqLCBkc3RfbGVuOwotCi0JCQkJaWYgKGxhc3QgLSBmaXJzdCA+IDApIHsKLQkJCQkJc291cmNlID0geHJlYWxsb2Moc291cmNlLAotCQkJCQkJCShhcmdjICsgbGFzdCAtIGZpcnN0KQotCQkJCQkJCSogc2l6ZW9mKGNoYXIgKikpOwotCQkJCQlkZXN0aW5hdGlvbiA9IHhyZWFsbG9jKGRlc3RpbmF0aW9uLAotCQkJCQkJCShhcmdjICsgbGFzdCAtIGZpcnN0KQotCQkJCQkJCSogc2l6ZW9mKGNoYXIgKikpOwotCQkJCQltb2RlcyA9IHhyZWFsbG9jKG1vZGVzLAotCQkJCQkJCShhcmdjICsgbGFzdCAtIGZpcnN0KQotCQkJCQkJCSogc2l6ZW9mKGVudW0gdXBkYXRlX21vZGUpKTsKKwkJCQlmaXJzdCA9IC0xIC0gZmlyc3Q7CisJCQkJZm9yIChsYXN0ID0gZmlyc3Q7IGxhc3QgPCBhY3RpdmVfbnI7IGxhc3QrKykgeworCQkJCQljb25zdCBjaGFyICpwYXRoID0gYWN0aXZlX2NhY2hlW2xhc3RdLT5uYW1lOworCQkJCQlpZiAoc3RybmNtcChwYXRoLCBzcmNfd19zbGFzaCwgbGVuX3dfc2xhc2gpKQorCQkJCQkJYnJlYWs7CiAJCQkJfQorCQkJCWZyZWUoKGNoYXIgKilzcmNfd19zbGFzaCk7CiAKLQkJCQlkc3QgPSBhZGRfc2xhc2goZHN0KTsKLQkJCQlkc3RfbGVuID0gc3RybGVuKGRzdCk7CisJCQkJaWYgKGxhc3QgLSBmaXJzdCA8IDEpCisJCQkJCWJhZCA9IF8oInNvdXJjZSBkaXJlY3RvcnkgaXMgZW1wdHkiKTsKKwkJCQllbHNlIHsKKwkJCQkJaW50IGosIGRzdF9sZW47CiAKLQkJCQlmb3IgKGogPSAwOyBqIDwgbGFzdCAtIGZpcnN0OyBqKyspIHsKLQkJCQkJY29uc3QgY2hhciAqcGF0aCA9Ci0JCQkJCQlhY3RpdmVfY2FjaGVbZmlyc3QgKyBqXS0+bmFtZTsKLQkJCQkJc291cmNlW2FyZ2MgKyBqXSA9IHBhdGg7Ci0JCQkJCWRlc3RpbmF0aW9uW2FyZ2MgKyBqXSA9Ci0JCQkJCQlwcmVmaXhfcGF0aChkc3QsIGRzdF9sZW4sCi0JCQkJCQkJcGF0aCArIGxlbmd0aCArIDEpOwotCQkJCQltb2Rlc1thcmdjICsgal0gPSBJTkRFWDsKKwkJCQkJaWYgKGxhc3QgLSBmaXJzdCA+IDApIHsKKwkJCQkJCXNvdXJjZSA9IHhyZWFsbG9jKHNvdXJjZSwKKwkJCQkJCQkJKGFyZ2MgKyBsYXN0IC0gZmlyc3QpCisJCQkJCQkJCSogc2l6ZW9mKGNoYXIgKikpOworCQkJCQkJZGVzdGluYXRpb24gPSB4cmVhbGxvYyhkZXN0aW5hdGlvbiwKKwkJCQkJCQkJKGFyZ2MgKyBsYXN0IC0gZmlyc3QpCisJCQkJCQkJCSogc2l6ZW9mKGNoYXIgKikpOworCQkJCQkJbW9kZXMgPSB4cmVhbGxvYyhtb2RlcywKKwkJCQkJCQkJKGFyZ2MgKyBsYXN0IC0gZmlyc3QpCisJCQkJCQkJCSogc2l6ZW9mKGVudW0gdXBkYXRlX21vZGUpKTsKKwkJCQkJfQorCisJCQkJCWRzdCA9IGFkZF9zbGFzaChkc3QpOworCQkJCQlkc3RfbGVuID0gc3RybGVuKGRzdCk7CisKKwkJCQkJZm9yIChqID0gMDsgaiA8IGxhc3QgLSBmaXJzdDsgaisrKSB7CisJCQkJCQljb25zdCBjaGFyICpwYXRoID0KKwkJCQkJCQlhY3RpdmVfY2FjaGVbZmlyc3QgKyBqXS0+bmFtZTsKKwkJCQkJCXNvdXJjZVthcmdjICsgal0gPSBwYXRoOworCQkJCQkJZGVzdGluYXRpb25bYXJnYyArIGpdID0KKwkJCQkJCQlwcmVmaXhfcGF0aChkc3QsIGRzdF9sZW4sCisJCQkJCQkJCXBhdGggKyBsZW5ndGggKyAxKTsKKwkJCQkJCW1vZGVzW2FyZ2MgKyBqXSA9IElOREVYOworCQkJCQl9CisJCQkJCWFyZ2MgKz0gbGFzdCAtIGZpcnN0OwogCQkJCX0KLQkJCQlhcmdjICs9IGxhc3QgLSBmaXJzdDsKIAkJCX0KIAkJfSBlbHNlIGlmIChjYWNoZV9uYW1lX3BvcyhzcmMsIGxlbmd0aCkgPCAwKQogCQkJYmFkID0gXygibm90IHVuZGVyIHZlcnNpb24gY29udHJvbCIpOwpAQCAtMTg1LDYgKzIxNCw4IEBACiAJCQl9CiAJCX0gZWxzZSBpZiAoc3RyaW5nX2xpc3RfaGFzX3N0cmluZygmc3JjX2Zvcl9kc3QsIGRzdCkpCiAJCQliYWQgPSBfKCJtdWx0aXBsZSBzb3VyY2VzIGZvciB0aGUgc2FtZSB0YXJnZXQiKTsKKwkJZWxzZSBpZiAoaXNfZGlyX3NlcChkc3Rbc3RybGVuKGRzdCkgLSAxXSkpCisJCQliYWQgPSBfKCJkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QiKTsKIAkJZWxzZQogCQkJc3RyaW5nX2xpc3RfaW5zZXJ0KCZzcmNfZm9yX2RzdCwgZHN0KTsKIApAQCAtMjEwLDkgKzI0MSwxNiBAQAogCQlpbnQgcG9zOwogCQlpZiAoc2hvd19vbmx5IHx8IHZlcmJvc2UpCiAJCQlwcmludGYoXygiUmVuYW1pbmcgJXMgdG8gJXNcbiIpLCBzcmMsIGRzdCk7Ci0JCWlmICghc2hvd19vbmx5ICYmIG1vZGUgIT0gSU5ERVggJiYKLQkJCQlyZW5hbWUoc3JjLCBkc3QpIDwgMCAmJiAhaWdub3JlX2Vycm9ycykKLQkJCWRpZV9lcnJubyAoXygicmVuYW1pbmcgJyVzJyBmYWlsZWQiKSwgc3JjKTsKKwkJaWYgKCFzaG93X29ubHkgJiYgbW9kZSAhPSBJTkRFWCkgeworCQkJaWYgKHJlbmFtZShzcmMsIGRzdCkgPCAwICYmICFpZ25vcmVfZXJyb3JzKQorCQkJCWRpZV9lcnJubyAoXygicmVuYW1pbmcgJyVzJyBmYWlsZWQiKSwgc3JjKTsKKwkJCWlmIChzdWJtb2R1bGVfZ2l0ZmlsZVtpXSkgeworCQkJCWlmIChzdWJtb2R1bGVfZ2l0ZmlsZVtpXSAhPSBTVUJNT0RVTEVfV0lUSF9HSVRESVIpCisJCQkJCWNvbm5lY3Rfd29ya190cmVlX2FuZF9naXRfZGlyKGRzdCwgc3VibW9kdWxlX2dpdGZpbGVbaV0pOworCQkJCWlmICghdXBkYXRlX3BhdGhfaW5fZ2l0bW9kdWxlcyhzcmMsIGRzdCkpCisJCQkJCWdpdG1vZHVsZXNfbW9kaWZpZWQgPSAxOworCQkJfQorCQl9CiAKIAkJaWYgKG1vZGUgPT0gV09SS0lOR19ESVJFQ1RPUlkpCiAJCQljb250aW51ZTsKQEAgLTIyMyw2ICsyNjEsOSBAQAogCQkJcmVuYW1lX2NhY2hlX2VudHJ5X2F0KHBvcywgZHN0KTsKIAl9CiAKKwlpZiAoZ2l0bW9kdWxlc19tb2RpZmllZCkKKwkJc3RhZ2VfdXBkYXRlZF9naXRtb2R1bGVzKCk7CisKIAlpZiAoYWN0aXZlX2NhY2hlX2NoYW5nZWQpIHsKIAkJaWYgKHdyaXRlX2NhY2hlKG5ld2ZkLCBhY3RpdmVfY2FjaGUsIGFjdGl2ZV9ucikgfHwKIAkJICAgIGNvbW1pdF9sb2NrZWRfaW5kZXgoJmxvY2tfZmlsZSkpCmRpZmYgLS1naXQgYS9idWlsdGluL25hbWUtcmV2LmMgYi9idWlsdGluL25hbWUtcmV2LmMKaW5kZXggMGFhYTE5ZS4uMGIyMWQ3ZSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9uYW1lLXJldi5jCisrKyBiL2J1aWx0aW4vbmFtZS1yZXYuYwpAQCAtMjcsOCArMjcsNyBAQAogCXN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50czsKIAlpbnQgcGFyZW50X251bWJlciA9IDE7CiAKLQlpZiAoIWNvbW1pdC0+b2JqZWN0LnBhcnNlZCkKLQkJcGFyc2VfY29tbWl0KGNvbW1pdCk7CisJcGFyc2VfY29tbWl0KGNvbW1pdCk7CiAKIAlpZiAoY29tbWl0LT5kYXRlIDwgY3V0b2ZmKQogCQlyZXR1cm47CkBAIC0xMDEsOSArMTAwLDkgQEAKIHsKIAlpZiAoc2hvcnRlbl91bmFtYmlndW91cykKIAkJcmVmbmFtZSA9IHNob3J0ZW5fdW5hbWJpZ3VvdXNfcmVmKHJlZm5hbWUsIDApOwotCWVsc2UgaWYgKCFwcmVmaXhjbXAocmVmbmFtZSwgInJlZnMvaGVhZHMvIikpCisJZWxzZSBpZiAoc3RhcnRzX3dpdGgocmVmbmFtZSwgInJlZnMvaGVhZHMvIikpCiAJCXJlZm5hbWUgPSByZWZuYW1lICsgMTE7Ci0JZWxzZSBpZiAoIXByZWZpeGNtcChyZWZuYW1lLCAicmVmcy8iKSkKKwllbHNlIGlmIChzdGFydHNfd2l0aChyZWZuYW1lLCAicmVmcy8iKSkKIAkJcmVmbmFtZSA9IHJlZm5hbWUgKyA1OwogCXJldHVybiByZWZuYW1lOwogfQpAQCAtMTQ5LDcgKzE0OCw3IEBACiAJaW50IGNhbl9hYmJyZXZpYXRlX291dHB1dCA9IGRhdGEtPnRhZ3Nfb25seSAmJiBkYXRhLT5uYW1lX29ubHk7CiAJaW50IGRlcmVmID0gMDsKIAotCWlmIChkYXRhLT50YWdzX29ubHkgJiYgcHJlZml4Y21wKHBhdGgsICJyZWZzL3RhZ3MvIikpCisJaWYgKGRhdGEtPnRhZ3Nfb25seSAmJiAhc3RhcnRzX3dpdGgocGF0aCwgInJlZnMvdGFncy8iKSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoZGF0YS0+cmVmX2ZpbHRlcikgewpAQCAtMzEwLDE1ICszMDksMTUgQEAKIAlpbnQgYWxsID0gMCwgdHJhbnNmb3JtX3N0ZGluID0gMCwgYWxsb3dfdW5kZWZpbmVkID0gMSwgYWx3YXlzID0gMCwgcGVlbF90YWcgPSAwOwogCXN0cnVjdCBuYW1lX3JlZl9kYXRhIGRhdGEgPSB7IDAsIDAsIE5VTEwgfTsKIAlzdHJ1Y3Qgb3B0aW9uIG9wdHNbXSA9IHsKLQkJT1BUX0JPT0xFQU4oMCwgIm5hbWUtb25seSIsICZkYXRhLm5hbWVfb25seSwgTl8oInByaW50IG9ubHkgbmFtZXMgKG5vIFNIQS0xKSIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgInRhZ3MiLCAmZGF0YS50YWdzX29ubHksIE5fKCJvbmx5IHVzZSB0YWdzIHRvIG5hbWUgdGhlIGNvbW1pdHMiKSksCisJCU9QVF9CT09MKDAsICJuYW1lLW9ubHkiLCAmZGF0YS5uYW1lX29ubHksIE5fKCJwcmludCBvbmx5IG5hbWVzIChubyBTSEEtMSkiKSksCisJCU9QVF9CT09MKDAsICJ0YWdzIiwgJmRhdGEudGFnc19vbmx5LCBOXygib25seSB1c2UgdGFncyB0byBuYW1lIHRoZSBjb21taXRzIikpLAogCQlPUFRfU1RSSU5HKDAsICJyZWZzIiwgJmRhdGEucmVmX2ZpbHRlciwgTl8oInBhdHRlcm4iKSwKIAkJCQkgICBOXygib25seSB1c2UgcmVmcyBtYXRjaGluZyA8cGF0dGVybj4iKSksCiAJCU9QVF9HUk9VUCgiIiksCi0JCU9QVF9CT09MRUFOKDAsICJhbGwiLCAmYWxsLCBOXygibGlzdCBhbGwgY29tbWl0cyByZWFjaGFibGUgZnJvbSBhbGwgcmVmcyIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgInN0ZGluIiwgJnRyYW5zZm9ybV9zdGRpbiwgTl8oInJlYWQgZnJvbSBzdGRpbiIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgInVuZGVmaW5lZCIsICZhbGxvd191bmRlZmluZWQsIE5fKCJhbGxvdyB0byBwcmludCBgdW5kZWZpbmVkYCBuYW1lcyIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgImFsd2F5cyIsICAgICAmYWx3YXlzLAorCQlPUFRfQk9PTCgwLCAiYWxsIiwgJmFsbCwgTl8oImxpc3QgYWxsIGNvbW1pdHMgcmVhY2hhYmxlIGZyb20gYWxsIHJlZnMiKSksCisJCU9QVF9CT09MKDAsICJzdGRpbiIsICZ0cmFuc2Zvcm1fc3RkaW4sIE5fKCJyZWFkIGZyb20gc3RkaW4iKSksCisJCU9QVF9CT09MKDAsICJ1bmRlZmluZWQiLCAmYWxsb3dfdW5kZWZpbmVkLCBOXygiYWxsb3cgdG8gcHJpbnQgYHVuZGVmaW5lZGAgbmFtZXMgKGRlZmF1bHQpIikpLAorCQlPUFRfQk9PTCgwLCAiYWx3YXlzIiwgICAgICZhbHdheXMsCiAJCQkgICBOXygic2hvdyBhYmJyZXZpYXRlZCBjb21taXQgb2JqZWN0IGFzIGZhbGxiYWNrIikpLAogCQl7CiAJCQkvKiBBIEhpZGRlbiBPUFRfQk9PTCAqLwpAQCAtMzMxLDcgKzMzMCw3IEBACiAKIAlnaXRfY29uZmlnKGdpdF9kZWZhdWx0X2NvbmZpZywgTlVMTCk7CiAJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgcHJlZml4LCBvcHRzLCBuYW1lX3Jldl91c2FnZSwgMCk7Ci0JaWYgKCEhYWxsICsgISF0cmFuc2Zvcm1fc3RkaW4gKyAhIWFyZ2MgPiAxKSB7CisJaWYgKGFsbCArIHRyYW5zZm9ybV9zdGRpbiArICEhYXJnYyA+IDEpIHsKIAkJZXJyb3IoIlNwZWNpZnkgZWl0aGVyIGEgbGlzdCwgb3IgLS1hbGwsIG5vdCBib3RoISIpOwogCQl1c2FnZV93aXRoX29wdGlvbnMobmFtZV9yZXZfdXNhZ2UsIG9wdHMpOwogCX0KZGlmZiAtLWdpdCBhL2J1aWx0aW4vbm90ZXMuYyBiL2J1aWx0aW4vbm90ZXMuYwppbmRleCBlNDEwMGM0Li4yYjI0ZDA1IDEwMDY0NAotLS0gYS9idWlsdGluL25vdGVzLmMKKysrIGIvYnVpbHRpbi9ub3Rlcy5jCkBAIC0zNDcsNyArMzQ3LDcgQEAKIAlpbml0X25vdGVzKE5VTEwsIE5VTEwsIE5VTEwsIDApOwogCXQgPSAmZGVmYXVsdF9ub3Rlc190cmVlOwogCi0JaWYgKHByZWZpeGNtcCh0LT5yZWYsICJyZWZzL25vdGVzLyIpKQorCWlmICghc3RhcnRzX3dpdGgodC0+cmVmLCAicmVmcy9ub3Rlcy8iKSkKIAkJZGllKCJSZWZ1c2luZyB0byAlcyBub3RlcyBpbiAlcyAob3V0c2lkZSBvZiByZWZzL25vdGVzLykiLAogCQkgICAgc3ViY29tbWFuZCwgdC0+cmVmKTsKIAlyZXR1cm4gdDsKQEAgLTQ4Myw3ICs0ODMsNyBAQAogCWNvbnN0IGNoYXIgKnJld3JpdGVfY21kID0gTlVMTDsKIAlzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKIAkJT1BUX19GT1JDRSgmZm9yY2UsIE5fKCJyZXBsYWNlIGV4aXN0aW5nIG5vdGVzIikpLAotCQlPUFRfQk9PTEVBTigwLCAic3RkaW4iLCAmZnJvbV9zdGRpbiwgTl8oInJlYWQgb2JqZWN0cyBmcm9tIHN0ZGluIikpLAorCQlPUFRfQk9PTCgwLCAic3RkaW4iLCAmZnJvbV9zdGRpbiwgTl8oInJlYWQgb2JqZWN0cyBmcm9tIHN0ZGluIikpLAogCQlPUFRfU1RSSU5HKDAsICJmb3ItcmV3cml0ZSIsICZyZXdyaXRlX2NtZCwgTl8oImNvbW1hbmQiKSwKIAkJCSAgIE5fKCJsb2FkIHJld3JpdGluZyBjb25maWcgZm9yIDxjb21tYW5kPiAoaW1wbGllcyAiCiAJCQkgICAgICAiLS1zdGRpbikiKSksCkBAIC03MzksMTMgKzczOSwxMyBAQAogCQkJICAgTl8oInJlc29sdmUgbm90ZXMgY29uZmxpY3RzIHVzaW5nIHRoZSBnaXZlbiBzdHJhdGVneSAiCiAJCQkgICAgICAiKG1hbnVhbC9vdXJzL3RoZWlycy91bmlvbi9jYXRfc29ydF91bmlxKSIpKSwKIAkJT1BUX0dST1VQKE5fKCJDb21taXR0aW5nIHVubWVyZ2VkIG5vdGVzIikpLAotCQl7IE9QVElPTl9CT09MRUFOLCAwLCAiY29tbWl0IiwgJmRvX2NvbW1pdCwgTlVMTCwKKwkJeyBPUFRJT05fU0VUX0lOVCwgMCwgImNvbW1pdCIsICZkb19jb21taXQsIE5VTEwsCiAJCQlOXygiZmluYWxpemUgbm90ZXMgbWVyZ2UgYnkgY29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIpLAotCQkJUEFSU0VfT1BUX05PQVJHIHwgUEFSU0VfT1BUX05PTkVHIH0sCisJCQlQQVJTRV9PUFRfTk9BUkcgfCBQQVJTRV9PUFRfTk9ORUcsIE5VTEwsIDF9LAogCQlPUFRfR1JPVVAoTl8oIkFib3J0aW5nIG5vdGVzIG1lcmdlIHJlc29sdXRpb24iKSksCi0JCXsgT1BUSU9OX0JPT0xFQU4sIDAsICJhYm9ydCIsICZkb19hYm9ydCwgTlVMTCwKKwkJeyBPUFRJT05fU0VUX0lOVCwgMCwgImFib3J0IiwgJmRvX2Fib3J0LCBOVUxMLAogCQkJTl8oImFib3J0IG5vdGVzIG1lcmdlIiksCi0JCQlQQVJTRV9PUFRfTk9BUkcgfCBQQVJTRV9PUFRfTk9ORUcgfSwKKwkJCVBBUlNFX09QVF9OT0FSRyB8IFBBUlNFX09QVF9OT05FRywgTlVMTCwgMX0sCiAJCU9QVF9FTkQoKQogCX07CiAKQEAgLTg1Myw3ICs4NTMsNyBAQAogCQlPUFRfQklUKDAsICJpZ25vcmUtbWlzc2luZyIsICZmbGFnLAogCQkJTl8oImF0dGVtcHQgdG8gcmVtb3ZlIG5vbi1leGlzdGVudCBub3RlIGlzIG5vdCBhbiBlcnJvciIpLAogCQkJSUdOT1JFX01JU1NJTkcpLAotCQlPUFRfQk9PTEVBTigwLCAic3RkaW4iLCAmZnJvbV9zdGRpbiwKKwkJT1BUX0JPT0woMCwgInN0ZGluIiwgJmZyb21fc3RkaW4sCiAJCQkgICAgTl8oInJlYWQgb2JqZWN0IG5hbWVzIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IikpLAogCQlPUFRfRU5EKCkKIAl9OwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9wYWNrLW9iamVjdHMuYyBiL2J1aWx0aW4vcGFjay1vYmplY3RzLmMKaW5kZXggZGQxMTdiMy4uNTQxNjY3ZiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9wYWNrLW9iamVjdHMuYworKysgYi9idWlsdGluL3BhY2stb2JqZWN0cy5jCkBAIC0zOCwxNyArMzgsMTggQEAKIAl2b2lkICpkZWx0YV9kYXRhOwkvKiBjYWNoZWQgZGVsdGEgKHVuY29tcHJlc3NlZCkgKi8KIAl1bnNpZ25lZCBsb25nIGRlbHRhX3NpemU7CS8qIGRlbHRhIGRhdGEgc2l6ZSAodW5jb21wcmVzc2VkKSAqLwogCXVuc2lnbmVkIGxvbmcgel9kZWx0YV9zaXplOwkvKiBkZWx0YSBkYXRhIHNpemUgKGNvbXByZXNzZWQpICovCi0JdW5zaWduZWQgaW50IGhhc2g7CS8qIG5hbWUgaGludCBoYXNoICovCiAJZW51bSBvYmplY3RfdHlwZSB0eXBlOwogCWVudW0gb2JqZWN0X3R5cGUgaW5fcGFja190eXBlOwkvKiBjb3VsZCBiZSBkZWx0YSAqLworCXVpbnQzMl90IGhhc2g7CQkJLyogbmFtZSBoaW50IGhhc2ggKi8KIAl1bnNpZ25lZCBjaGFyIGluX3BhY2tfaGVhZGVyX3NpemU7Ci0JdW5zaWduZWQgY2hhciBwcmVmZXJyZWRfYmFzZTsgLyogd2UgZG8gbm90IHBhY2sgdGhpcywgYnV0IGlzIGF2YWlsYWJsZQotCQkJCSAgICAgICAqIHRvIGJlIHVzZWQgYXMgdGhlIGJhc2Ugb2JqZWN0IHRvIGRlbHRhCi0JCQkJICAgICAgICogb2JqZWN0cyBhZ2FpbnN0LgotCQkJCSAgICAgICAqLwotCXVuc2lnbmVkIGNoYXIgbm9fdHJ5X2RlbHRhOwotCXVuc2lnbmVkIGNoYXIgdGFnZ2VkOyAvKiBuZWFyIHRoZSB2ZXJ5IHRpcCBvZiByZWZzICovCi0JdW5zaWduZWQgY2hhciBmaWxsZWQ7IC8qIGFzc2lnbmVkIHdyaXRlLW9yZGVyICovCisJdW5zaWduZWQgcHJlZmVycmVkX2Jhc2U6MTsgLyoKKwkJCQkgICAgKiB3ZSBkbyBub3QgcGFjayB0aGlzLCBidXQgaXMgYXZhaWxhYmxlCisJCQkJICAgICogdG8gYmUgdXNlZCBhcyB0aGUgYmFzZSBvYmplY3QgdG8gZGVsdGEKKwkJCQkgICAgKiBvYmplY3RzIGFnYWluc3QuCisJCQkJICAgICovCisJdW5zaWduZWQgbm9fdHJ5X2RlbHRhOjE7CisJdW5zaWduZWQgdGFnZ2VkOjE7IC8qIG5lYXIgdGhlIHZlcnkgdGlwIG9mIHJlZnMgKi8KKwl1bnNpZ25lZCBmaWxsZWQ6MTsgLyogYXNzaWduZWQgd3JpdGUtb3JkZXIgKi8KIH07CiAKIC8qCkBAIC03MzYsOCArNzM3LDYgQEAKIAkJCWYgPSBjcmVhdGVfdG1wX3BhY2tmaWxlKCZwYWNrX3RtcF9uYW1lKTsKIAogCQlvZmZzZXQgPSB3cml0ZV9wYWNrX2hlYWRlcihmLCBucl9yZW1haW5pbmcpOwotCQlpZiAoIW9mZnNldCkKLQkJCWRpZV9lcnJubygidW5hYmxlIHRvIHdyaXRlIHBhY2sgaGVhZGVyIik7CiAJCW5yX3dyaXR0ZW4gPSAwOwogCQlmb3IgKDsgaSA8IG5yX29iamVjdHM7IGkrKykgewogCQkJc3RydWN0IG9iamVjdF9lbnRyeSAqZSA9IHdyaXRlX29yZGVyW2ldOwpAQCAtODU5LDkgKzg1OCw5IEBACiAJfQogfQogCi1zdGF0aWMgdW5zaWduZWQgbmFtZV9oYXNoKGNvbnN0IGNoYXIgKm5hbWUpCitzdGF0aWMgdWludDMyX3QgbmFtZV9oYXNoKGNvbnN0IGNoYXIgKm5hbWUpCiB7Ci0JdW5zaWduZWQgYywgaGFzaCA9IDA7CisJdWludDMyX3QgYywgaGFzaCA9IDA7CiAKIAlpZiAoIW5hbWUpCiAJCXJldHVybiAwOwpAQCAtOTA4LDcgKzkwNyw3IEBACiAJc3RydWN0IHBhY2tlZF9naXQgKnAsICpmb3VuZF9wYWNrID0gTlVMTDsKIAlvZmZfdCBmb3VuZF9vZmZzZXQgPSAwOwogCWludCBpeDsKLQl1bnNpZ25lZCBoYXNoID0gbmFtZV9oYXNoKG5hbWUpOworCXVpbnQzMl90IGhhc2ggPSBuYW1lX2hhc2gobmFtZSk7CiAKIAlpeCA9IG5yX29iamVjdHMgPyBsb2NhdGVfb2JqZWN0X2VudHJ5X2hhc2goc2hhMSkgOiAtMTsKIAlpZiAoaXggPj0gMCkgewpAQCAtMTgwOSw3ICsxODA4LDcgQEAKIHN0YXRpYyB2b2lkIHRyeV90b19mcmVlX2Zyb21fdGhyZWFkcyhzaXplX3Qgc2l6ZSkKIHsKIAlyZWFkX2xvY2soKTsKLQlyZWxlYXNlX3BhY2tfbWVtb3J5KHNpemUsIC0xKTsKKwlyZWxlYXNlX3BhY2tfbWVtb3J5KHNpemUpOwogCXJlYWRfdW5sb2NrKCk7CiB9CiAKQEAgLTIwMzEsNyArMjAzMCw3IEBACiB7CiAJdW5zaWduZWQgY2hhciBwZWVsZWRbMjBdOwogCi0JaWYgKCFwcmVmaXhjbXAocGF0aCwgInJlZnMvdGFncy8iKSAmJiAvKiBpcyBhIHRhZz8gKi8KKwlpZiAoc3RhcnRzX3dpdGgocGF0aCwgInJlZnMvdGFncy8iKSAmJiAvKiBpcyBhIHRhZz8gKi8KIAkgICAgIXBlZWxfcmVmKHBhdGgsIHBlZWxlZCkgICAgICAgICYmIC8qIHBlZWxhYmxlPyAqLwogCSAgICBsb2NhdGVfb2JqZWN0X2VudHJ5KHBlZWxlZCkpICAgICAgLyogb2JqZWN0IHBhY2tlZD8gKi8KIAkJYWRkX29iamVjdF9lbnRyeShzaGExLCBPQkpfVEFHLCBOVUxMLCAwKTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcHJ1bmUtcGFja2VkLmMgYi9idWlsdGluL3BydW5lLXBhY2tlZC5jCmluZGV4IGZhNmNlNDIuLmZjZjVmYjYgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcHJ1bmUtcGFja2VkLmMKKysrIGIvYnVpbHRpbi9wcnVuZS1wYWNrZWQuYwpAQCAtMTAsNTggKzEwLDYyIEBACiAKIHN0YXRpYyBzdHJ1Y3QgcHJvZ3Jlc3MgKnByb2dyZXNzOwogCi1zdGF0aWMgdm9pZCBwcnVuZV9kaXIoaW50IGksIERJUiAqZGlyLCBjaGFyICpwYXRobmFtZSwgaW50IGxlbiwgaW50IG9wdHMpCitzdGF0aWMgdm9pZCBwcnVuZV9kaXIoaW50IGksIERJUiAqZGlyLCBzdHJ1Y3Qgc3RyYnVmICpwYXRobmFtZSwgaW50IG9wdHMpCiB7CiAJc3RydWN0IGRpcmVudCAqZGU7CiAJY2hhciBoZXhbNDBdOworCWludCB0b3BfbGVuID0gcGF0aG5hbWUtPmxlbjsKIAogCXNwcmludGYoaGV4LCAiJTAyeCIsIGkpOwogCXdoaWxlICgoZGUgPSByZWFkZGlyKGRpcikpICE9IE5VTEwpIHsKIAkJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKIAkJaWYgKHN0cmxlbihkZS0+ZF9uYW1lKSAhPSAzOCkKIAkJCWNvbnRpbnVlOwotCQltZW1jcHkoaGV4KzIsIGRlLT5kX25hbWUsIDM4KTsKKwkJbWVtY3B5KGhleCArIDIsIGRlLT5kX25hbWUsIDM4KTsKIAkJaWYgKGdldF9zaGExX2hleChoZXgsIHNoYTEpKQogCQkJY29udGludWU7CiAJCWlmICghaGFzX3NoYTFfcGFjayhzaGExKSkKIAkJCWNvbnRpbnVlOwotCQltZW1jcHkocGF0aG5hbWUgKyBsZW4sIGRlLT5kX25hbWUsIDM4KTsKKworCQlzdHJidWZfYWRkKHBhdGhuYW1lLCBkZS0+ZF9uYW1lLCAzOCk7CiAJCWlmIChvcHRzICYgUFJVTkVfUEFDS0VEX0RSWV9SVU4pCi0JCQlwcmludGYoInJtIC1mICVzXG4iLCBwYXRobmFtZSk7CisJCQlwcmludGYoInJtIC1mICVzXG4iLCBwYXRobmFtZS0+YnVmKTsKIAkJZWxzZQotCQkJdW5saW5rX29yX3dhcm4ocGF0aG5hbWUpOworCQkJdW5saW5rX29yX3dhcm4ocGF0aG5hbWUtPmJ1Zik7CiAJCWRpc3BsYXlfcHJvZ3Jlc3MocHJvZ3Jlc3MsIGkgKyAxKTsKKwkJc3RyYnVmX3NldGxlbihwYXRobmFtZSwgdG9wX2xlbik7CiAJfQogfQogCiB2b2lkIHBydW5lX3BhY2tlZF9vYmplY3RzKGludCBvcHRzKQogewogCWludCBpOwotCXN0YXRpYyBjaGFyIHBhdGhuYW1lW1BBVEhfTUFYXTsKIAljb25zdCBjaGFyICpkaXIgPSBnZXRfb2JqZWN0X2RpcmVjdG9yeSgpOwotCWludCBsZW4gPSBzdHJsZW4oZGlyKTsKKwlzdHJ1Y3Qgc3RyYnVmIHBhdGhuYW1lID0gU1RSQlVGX0lOSVQ7CisJaW50IHRvcF9sZW47CiAKKwlzdHJidWZfYWRkc3RyKCZwYXRobmFtZSwgZGlyKTsKIAlpZiAob3B0cyAmIFBSVU5FX1BBQ0tFRF9WRVJCT1NFKQogCQlwcm9ncmVzcyA9IHN0YXJ0X3Byb2dyZXNzX2RlbGF5KCJSZW1vdmluZyBkdXBsaWNhdGUgb2JqZWN0cyIsCiAJCQkyNTYsIDk1LCAyKTsKIAotCWlmIChsZW4gPiBQQVRIX01BWCAtIDQyKQotCQlkaWUoImltcG9zc2libGUgb2JqZWN0IGRpcmVjdG9yeSIpOwotCW1lbWNweShwYXRobmFtZSwgZGlyLCBsZW4pOwotCWlmIChsZW4gJiYgcGF0aG5hbWVbbGVuLTFdICE9ICcvJykKLQkJcGF0aG5hbWVbbGVuKytdID0gJy8nOworCWlmIChwYXRobmFtZS5sZW4gJiYgcGF0aG5hbWUuYnVmW3BhdGhuYW1lLmxlbiAtIDFdICE9ICcvJykKKwkJc3RyYnVmX2FkZGNoKCZwYXRobmFtZSwgJy8nKTsKKworCXRvcF9sZW4gPSBwYXRobmFtZS5sZW47CiAJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CiAJCURJUiAqZDsKIAogCQlkaXNwbGF5X3Byb2dyZXNzKHByb2dyZXNzLCBpICsgMSk7Ci0JCXNwcmludGYocGF0aG5hbWUgKyBsZW4sICIlMDJ4LyIsIGkpOwotCQlkID0gb3BlbmRpcihwYXRobmFtZSk7CisJCXN0cmJ1Zl9zZXRsZW4oJnBhdGhuYW1lLCB0b3BfbGVuKTsKKwkJc3RyYnVmX2FkZGYoJnBhdGhuYW1lLCAiJTAyeC8iLCBpKTsKKwkJZCA9IG9wZW5kaXIocGF0aG5hbWUuYnVmKTsKIAkJaWYgKCFkKQogCQkJY29udGludWU7Ci0JCXBydW5lX2RpcihpLCBkLCBwYXRobmFtZSwgbGVuICsgMywgb3B0cyk7CisJCXBydW5lX2RpcihpLCBkLCAmcGF0aG5hbWUsIG9wdHMpOwogCQljbG9zZWRpcihkKTsKLQkJcGF0aG5hbWVbbGVuICsgMl0gPSAnXDAnOwotCQlybWRpcihwYXRobmFtZSk7CisJCXN0cmJ1Zl9zZXRsZW4oJnBhdGhuYW1lLCB0b3BfbGVuICsgMik7CisJCXJtZGlyKHBhdGhuYW1lLmJ1Zik7CiAJfQogCXN0b3BfcHJvZ3Jlc3MoJnByb2dyZXNzKTsKIH0KZGlmZiAtLWdpdCBhL2J1aWx0aW4vcHJ1bmUuYyBiL2J1aWx0aW4vcHJ1bmUuYwppbmRleCA2MzY2OTE3Li5kZTQzYjI2IDEwMDY0NAotLS0gYS9idWlsdGluL3BydW5lLmMKKysrIGIvYnVpbHRpbi9wcnVuZS5jCkBAIC0xNyw5ICsxNyw4IEBACiBzdGF0aWMgdW5zaWduZWQgbG9uZyBleHBpcmU7CiBzdGF0aWMgaW50IHNob3dfcHJvZ3Jlc3MgPSAtMTsKIAotc3RhdGljIGludCBwcnVuZV90bXBfb2JqZWN0KGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKQorc3RhdGljIGludCBwcnVuZV90bXBfZmlsZShjb25zdCBjaGFyICpmdWxscGF0aCkKIHsKLQljb25zdCBjaGFyICpmdWxscGF0aCA9IG1rcGF0aCgiJXMvJXMiLCBwYXRoLCBmaWxlbmFtZSk7CiAJc3RydWN0IHN0YXQgc3Q7CiAJaWYgKGxzdGF0KGZ1bGxwYXRoLCAmc3QpKQogCQlyZXR1cm4gZXJyb3IoIkNvdWxkIG5vdCBzdGF0ICclcyciLCBmdWxscGF0aCk7CkBAIC0zMiw5ICszMSw4IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcHJ1bmVfb2JqZWN0KGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKQorc3RhdGljIGludCBwcnVuZV9vYmplY3QoY29uc3QgY2hhciAqZnVsbHBhdGgsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEpCiB7Ci0JY29uc3QgY2hhciAqZnVsbHBhdGggPSBta3BhdGgoIiVzLyVzIiwgcGF0aCwgZmlsZW5hbWUpOwogCXN0cnVjdCBzdGF0IHN0OwogCWlmIChsc3RhdChmdWxscGF0aCwgJnN0KSkKIAkJcmV0dXJuIGVycm9yKCJDb3VsZCBub3Qgc3RhdCAnJXMnIiwgZnVsbHBhdGgpOwpAQCAtNTAsOSArNDgsMTAgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBwcnVuZV9kaXIoaW50IGksIGNoYXIgKnBhdGgpCitzdGF0aWMgaW50IHBydW5lX2RpcihpbnQgaSwgc3RydWN0IHN0cmJ1ZiAqcGF0aCkKIHsKLQlESVIgKmRpciA9IG9wZW5kaXIocGF0aCk7CisJc2l6ZV90IGJhc2VsZW4gPSBwYXRoLT5sZW47CisJRElSICpkaXIgPSBvcGVuZGlyKHBhdGgtPmJ1Zik7CiAJc3RydWN0IGRpcmVudCAqZGU7CiAKIAlpZiAoIWRpcikKQEAgLTc3LDI4ICs3NiwzOSBAQAogCQkJaWYgKGxvb2t1cF9vYmplY3Qoc2hhMSkpCiAJCQkJY29udGludWU7CiAKLQkJCXBydW5lX29iamVjdChwYXRoLCBkZS0+ZF9uYW1lLCBzaGExKTsKKwkJCXN0cmJ1Zl9hZGRmKHBhdGgsICIvJXMiLCBkZS0+ZF9uYW1lKTsKKwkJCXBydW5lX29iamVjdChwYXRoLT5idWYsIHNoYTEpOworCQkJc3RyYnVmX3NldGxlbihwYXRoLCBiYXNlbGVuKTsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWlmICghcHJlZml4Y21wKGRlLT5kX25hbWUsICJ0bXBfb2JqXyIpKSB7Ci0JCQlwcnVuZV90bXBfb2JqZWN0KHBhdGgsIGRlLT5kX25hbWUpOworCQlpZiAoc3RhcnRzX3dpdGgoZGUtPmRfbmFtZSwgInRtcF9vYmpfIikpIHsKKwkJCXN0cmJ1Zl9hZGRmKHBhdGgsICIvJXMiLCBkZS0+ZF9uYW1lKTsKKwkJCXBydW5lX3RtcF9maWxlKHBhdGgtPmJ1Zik7CisJCQlzdHJidWZfc2V0bGVuKHBhdGgsIGJhc2VsZW4pOwogCQkJY29udGludWU7CiAJCX0KLQkJZnByaW50ZihzdGRlcnIsICJiYWQgc2hhMSBmaWxlOiAlcy8lc1xuIiwgcGF0aCwgZGUtPmRfbmFtZSk7CisJCWZwcmludGYoc3RkZXJyLCAiYmFkIHNoYTEgZmlsZTogJXMvJXNcbiIsIHBhdGgtPmJ1ZiwgZGUtPmRfbmFtZSk7CiAJfQogCWNsb3NlZGlyKGRpcik7CiAJaWYgKCFzaG93X29ubHkpCi0JCXJtZGlyKHBhdGgpOworCQlybWRpcihwYXRoLT5idWYpOwogCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBwcnVuZV9vYmplY3RfZGlyKGNvbnN0IGNoYXIgKnBhdGgpCiB7CisJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKKwlzaXplX3QgYmFzZWxlbjsKIAlpbnQgaTsKKworCXN0cmJ1Zl9hZGRzdHIoJmJ1ZiwgcGF0aCk7CisJc3RyYnVmX2FkZGNoKCZidWYsICcvJyk7CisJYmFzZWxlbiA9IGJ1Zi5sZW47CisKIAlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKLQkJc3RhdGljIGNoYXIgZGlyWzQwOTZdOwotCQlzcHJpbnRmKGRpciwgIiVzLyUwMngiLCBwYXRoLCBpKTsKLQkJcHJ1bmVfZGlyKGksIGRpcik7CisJCXN0cmJ1Zl9hZGRmKCZidWYsICIlMDJ4IiwgaSk7CisJCXBydW5lX2RpcihpLCAmYnVmKTsKKwkJc3RyYnVmX3NldGxlbigmYnVmLCBiYXNlbGVuKTsKIAl9CiB9CiAKQEAgLTExOSw4ICsxMjksOCBAQAogCQlyZXR1cm47CiAJfQogCXdoaWxlICgoZGUgPSByZWFkZGlyKGRpcikpICE9IE5VTEwpCi0JCWlmICghcHJlZml4Y21wKGRlLT5kX25hbWUsICJ0bXBfIikpCi0JCQlwcnVuZV90bXBfb2JqZWN0KHBhdGgsIGRlLT5kX25hbWUpOworCQlpZiAoc3RhcnRzX3dpdGgoZGUtPmRfbmFtZSwgInRtcF8iKSkKKwkJCXBydW5lX3RtcF9maWxlKG1rcGF0aCgiJXMvJXMiLCBwYXRoLCBkZS0+ZF9uYW1lKSk7CiAJY2xvc2VkaXIoZGlyKTsKIH0KIApAQCAtMTcwLDUgKzE4MCw5IEBACiAJcyA9IG1rcGF0aGR1cCgiJXMvcGFjayIsIGdldF9vYmplY3RfZGlyZWN0b3J5KCkpOwogCXJlbW92ZV90ZW1wb3JhcnlfZmlsZXMocyk7CiAJZnJlZShzKTsKKworCWlmIChpc19yZXBvc2l0b3J5X3NoYWxsb3coKSkKKwkJcHJ1bmVfc2hhbGxvdyhzaG93X29ubHkpOworCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9idWlsdGluL3B1c2guYyBiL2J1aWx0aW4vcHVzaC5jCmluZGV4IDA0ZjBlYWYuLjBlNTBkZGIgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcHVzaC5jCisrKyBiL2J1aWx0aW4vcHVzaC5jCkBAIC0xNSwxMiArMTUsMTQgQEAKIAlOVUxMLAogfTsKIAotc3RhdGljIGludCB0aGluOworc3RhdGljIGludCB0aGluID0gMTsKIHN0YXRpYyBpbnQgZGVsZXRlcmVmczsKIHN0YXRpYyBjb25zdCBjaGFyICpyZWNlaXZlcGFjazsKIHN0YXRpYyBpbnQgdmVyYm9zaXR5Owogc3RhdGljIGludCBwcm9ncmVzcyA9IC0xOwogCitzdGF0aWMgc3RydWN0IHB1c2hfY2FzX29wdGlvbiBjYXM7CisKIHN0YXRpYyBjb25zdCBjaGFyICoqcmVmc3BlYzsKIHN0YXRpYyBpbnQgcmVmc3BlY19ucjsKIHN0YXRpYyBpbnQgcmVmc3BlY19hbGxvYzsKQEAgLTMzLDM1ICszNSw3NSBAQAogCXJlZnNwZWNbcmVmc3BlY19uci0xXSA9IHJlZjsKIH0KIAotc3RhdGljIHZvaWQgc2V0X3JlZnNwZWNzKGNvbnN0IGNoYXIgKipyZWZzLCBpbnQgbnIpCitzdGF0aWMgY29uc3QgY2hhciAqbWFwX3JlZnNwZWMoY29uc3QgY2hhciAqcmVmLAorCQkJICAgICAgIHN0cnVjdCByZW1vdGUgKnJlbW90ZSwgc3RydWN0IHJlZiAqbG9jYWxfcmVmcykKIHsKKwlzdHJ1Y3QgcmVmICptYXRjaGVkID0gTlVMTDsKKworCS8qIERvZXMgInJlZiIgdW5pcXVlbHkgbmFtZSBvdXIgcmVmPyAqLworCWlmIChjb3VudF9yZWZzcGVjX21hdGNoKHJlZiwgbG9jYWxfcmVmcywgJm1hdGNoZWQpICE9IDEpCisJCXJldHVybiByZWY7CisKKwlpZiAocmVtb3RlLT5wdXNoKSB7CisJCXN0cnVjdCByZWZzcGVjIHF1ZXJ5OworCQltZW1zZXQoJnF1ZXJ5LCAwLCBzaXplb2Yoc3RydWN0IHJlZnNwZWMpKTsKKwkJcXVlcnkuc3JjID0gbWF0Y2hlZC0+bmFtZTsKKwkJaWYgKCFxdWVyeV9yZWZzcGVjcyhyZW1vdGUtPnB1c2gsIHJlbW90ZS0+cHVzaF9yZWZzcGVjX25yLCAmcXVlcnkpICYmCisJCSAgICBxdWVyeS5kc3QpIHsKKwkJCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CisJCQlzdHJidWZfYWRkZigmYnVmLCAiJXMlczolcyIsCisJCQkJICAgIHF1ZXJ5LmZvcmNlID8gIisiIDogIiIsCisJCQkJICAgIHF1ZXJ5LnNyYywgcXVlcnkuZHN0KTsKKwkJCXJldHVybiBzdHJidWZfZGV0YWNoKCZidWYsIE5VTEwpOworCQl9CisJfQorCisJaWYgKHB1c2hfZGVmYXVsdCA9PSBQVVNIX0RFRkFVTFRfVVBTVFJFQU0gJiYKKwkgICAgIXByZWZpeGNtcChtYXRjaGVkLT5uYW1lLCAicmVmcy9oZWFkcy8iKSkgeworCQlzdHJ1Y3QgYnJhbmNoICpicmFuY2ggPSBicmFuY2hfZ2V0KG1hdGNoZWQtPm5hbWUgKyAxMSk7CisJCWlmIChicmFuY2gtPm1lcmdlX25yID09IDEgJiYgYnJhbmNoLT5tZXJnZVswXS0+c3JjKSB7CisJCQlzdHJ1Y3Qgc3RyYnVmIGJ1ZiA9IFNUUkJVRl9JTklUOworCQkJc3RyYnVmX2FkZGYoJmJ1ZiwgIiVzOiVzIiwKKwkJCQkgICAgcmVmLCBicmFuY2gtPm1lcmdlWzBdLT5zcmMpOworCQkJcmV0dXJuIHN0cmJ1Zl9kZXRhY2goJmJ1ZiwgTlVMTCk7CisJCX0KKwl9CisKKwlyZXR1cm4gcmVmOworfQorCitzdGF0aWMgdm9pZCBzZXRfcmVmc3BlY3MoY29uc3QgY2hhciAqKnJlZnMsIGludCBuciwgY29uc3QgY2hhciAqcmVwbykKK3sKKwlzdHJ1Y3QgcmVtb3RlICpyZW1vdGUgPSBOVUxMOworCXN0cnVjdCByZWYgKmxvY2FsX3JlZnMgPSBOVUxMOwogCWludCBpOworCiAJZm9yIChpID0gMDsgaSA8IG5yOyBpKyspIHsKIAkJY29uc3QgY2hhciAqcmVmID0gcmVmc1tpXTsKIAkJaWYgKCFzdHJjbXAoInRhZyIsIHJlZikpIHsKLQkJCWNoYXIgKnRhZzsKLQkJCWludCBsZW47CisJCQlzdHJ1Y3Qgc3RyYnVmIHRhZ3JlZiA9IFNUUkJVRl9JTklUOwogCQkJaWYgKG5yIDw9ICsraSkKIAkJCQlkaWUoXygidGFnIHNob3J0aGFuZCB3aXRob3V0IDx0YWc+IikpOwotCQkJbGVuID0gc3RybGVuKHJlZnNbaV0pICsgMTE7Ci0JCQlpZiAoZGVsZXRlcmVmcykgewotCQkJCXRhZyA9IHhtYWxsb2MobGVuKzEpOwotCQkJCXN0cmNweSh0YWcsICI6cmVmcy90YWdzLyIpOwotCQkJfSBlbHNlIHsKLQkJCQl0YWcgPSB4bWFsbG9jKGxlbik7Ci0JCQkJc3RyY3B5KHRhZywgInJlZnMvdGFncy8iKTsKKwkJCXJlZiA9IHJlZnNbaV07CisJCQlpZiAoZGVsZXRlcmVmcykKKwkJCQlzdHJidWZfYWRkZigmdGFncmVmLCAiOnJlZnMvdGFncy8lcyIsIHJlZik7CisJCQllbHNlCisJCQkJc3RyYnVmX2FkZGYoJnRhZ3JlZiwgInJlZnMvdGFncy8lcyIsIHJlZik7CisJCQlyZWYgPSBzdHJidWZfZGV0YWNoKCZ0YWdyZWYsIE5VTEwpOworCQl9IGVsc2UgaWYgKGRlbGV0ZXJlZnMpIHsKKwkJCXN0cnVjdCBzdHJidWYgZGVscmVmID0gU1RSQlVGX0lOSVQ7CisJCQlpZiAoc3RyY2hyKHJlZiwgJzonKSkKKwkJCQlkaWUoXygiLS1kZWxldGUgb25seSBhY2NlcHRzIHBsYWluIHRhcmdldCByZWYgbmFtZXMiKSk7CisJCQlzdHJidWZfYWRkZigmZGVscmVmLCAiOiVzIiwgcmVmKTsKKwkJCXJlZiA9IHN0cmJ1Zl9kZXRhY2goJmRlbHJlZiwgTlVMTCk7CisJCX0gZWxzZSBpZiAoIXN0cmNocihyZWYsICc6JykpIHsKKwkJCWlmICghcmVtb3RlKSB7CisJCQkJLyogbGF6aWx5IGdyYWIgcmVtb3RlIGFuZCBsb2NhbF9yZWZzICovCisJCQkJcmVtb3RlID0gcmVtb3RlX2dldChyZXBvKTsKKwkJCQlsb2NhbF9yZWZzID0gZ2V0X2xvY2FsX2hlYWRzKCk7CiAJCQl9Ci0JCQlzdHJjYXQodGFnLCByZWZzW2ldKTsKLQkJCXJlZiA9IHRhZzsKLQkJfSBlbHNlIGlmIChkZWxldGVyZWZzICYmICFzdHJjaHIocmVmLCAnOicpKSB7Ci0JCQljaGFyICpkZWxyZWY7Ci0JCQlpbnQgbGVuID0gc3RybGVuKHJlZikrMTsKLQkJCWRlbHJlZiA9IHhtYWxsb2MobGVuKzEpOwotCQkJc3RyY3B5KGRlbHJlZiwgIjoiKTsKLQkJCXN0cmNhdChkZWxyZWYsIHJlZik7Ci0JCQlyZWYgPSBkZWxyZWY7Ci0JCX0gZWxzZSBpZiAoZGVsZXRlcmVmcykKLQkJCWRpZShfKCItLWRlbGV0ZSBvbmx5IGFjY2VwdHMgcGxhaW4gdGFyZ2V0IHJlZiBuYW1lcyIpKTsKKwkJCXJlZiA9IG1hcF9yZWZzcGVjKHJlZiwgcmVtb3RlLCBsb2NhbF9yZWZzKTsKKwkJfQogCQlhZGRfcmVmc3BlYyhyZWYpOwogCX0KIH0KQEAgLTE3Miw2ICsyMTQsMTMgQEAKICAgICJcbiIKICAgICIgIGdpdCBjb25maWcgLS1nbG9iYWwgcHVzaC5kZWZhdWx0IHNpbXBsZVxuIgogICAgIlxuIgorICAgIldoZW4gcHVzaC5kZWZhdWx0IGlzIHNldCB0byAnbWF0Y2hpbmcnLCBnaXQgd2lsbCBwdXNoIGxvY2FsIGJyYW5jaGVzXG4iCisgICAidG8gdGhlIHJlbW90ZSBicmFuY2hlcyB0aGF0IGFscmVhZHkgZXhpc3Qgd2l0aCB0aGUgc2FtZSBuYW1lLlxuIgorICAgIlxuIgorICAgIkluIEdpdCAyLjAsIEdpdCB3aWxsIGRlZmF1bHQgdG8gdGhlIG1vcmUgY29uc2VydmF0aXZlICdzaW1wbGUnXG4iCisgICAiYmVoYXZpb3IsIHdoaWNoIG9ubHkgcHVzaGVzIHRoZSBjdXJyZW50IGJyYW5jaCB0byB0aGUgY29ycmVzcG9uZGluZ1xuIgorICAgInJlbW90ZSBicmFuY2ggdGhhdCAnZ2l0IHB1bGwnIHVzZXMgdG8gdXBkYXRlIHRoZSBjdXJyZW50IGJyYW5jaC5cbiIKKyAgICJcbiIKICAgICJTZWUgJ2dpdCBoZWxwIGNvbmZpZycgYW5kIHNlYXJjaCBmb3IgJ3B1c2guZGVmYXVsdCcgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24uXG4iCiAgICAiKHRoZSAnc2ltcGxlJyBtb2RlIHdhcyBpbnRyb2R1Y2VkIGluIEdpdCAxLjcuMTEuIFVzZSB0aGUgc2ltaWxhciBtb2RlXG4iCiAgICAiJ2N1cnJlbnQnIGluc3RlYWQgb2YgJ3NpbXBsZScgaWYgeW91IHNvbWV0aW1lcyB1c2Ugb2xkZXIgdmVyc2lvbnMgb2YgR2l0KSIpOwpAQCAtMzEzLDggKzM2MiwxNCBAQAogCWlmIChyZWNlaXZlcGFjaykKIAkJdHJhbnNwb3J0X3NldF9vcHRpb24odHJhbnNwb3J0LAogCQkJCSAgICAgVFJBTlNfT1BUX1JFQ0VJVkVQQUNLLCByZWNlaXZlcGFjayk7Ci0JaWYgKHRoaW4pCi0JCXRyYW5zcG9ydF9zZXRfb3B0aW9uKHRyYW5zcG9ydCwgVFJBTlNfT1BUX1RISU4sICJ5ZXMiKTsKKwl0cmFuc3BvcnRfc2V0X29wdGlvbih0cmFuc3BvcnQsIFRSQU5TX09QVF9USElOLCB0aGluID8gInllcyIgOiBOVUxMKTsKKworCWlmICghaXNfZW1wdHlfY2FzKCZjYXMpKSB7CisJCWlmICghdHJhbnNwb3J0LT5zbWFydF9vcHRpb25zKQorCQkJZGllKCJ1bmRlcmx5aW5nIHRyYW5zcG9ydCBkb2VzIG5vdCBzdXBwb3J0IC0tJXMgb3B0aW9uIiwKKwkJCSAgICBDQVNfT1BUX05BTUUpOworCQl0cmFuc3BvcnQtPnNtYXJ0X29wdGlvbnMtPmNhcyA9ICZjYXM7CisJfQogCiAJaWYgKHZlcmJvc2l0eSA+IDApCiAJCWZwcmludGYoc3RkZXJyLCBfKCJQdXNoaW5nIHRvICVzXG4iKSwgdHJhbnNwb3J0LT51cmwpOwpAQCAtNDQ2LDE1ICs1MDEsMTkgQEAKIAkJT1BUX0JJVCggMCAsICJhbGwiLCAmZmxhZ3MsIE5fKCJwdXNoIGFsbCByZWZzIiksIFRSQU5TUE9SVF9QVVNIX0FMTCksCiAJCU9QVF9CSVQoIDAgLCAibWlycm9yIiwgJmZsYWdzLCBOXygibWlycm9yIGFsbCByZWZzIiksCiAJCQkgICAgKFRSQU5TUE9SVF9QVVNIX01JUlJPUnxUUkFOU1BPUlRfUFVTSF9GT1JDRSkpLAotCQlPUFRfQk9PTEVBTiggMCwgImRlbGV0ZSIsICZkZWxldGVyZWZzLCBOXygiZGVsZXRlIHJlZnMiKSksCi0JCU9QVF9CT09MRUFOKCAwICwgInRhZ3MiLCAmdGFncywgTl8oInB1c2ggdGFncyAoY2FuJ3QgYmUgdXNlZCB3aXRoIC0tYWxsIG9yIC0tbWlycm9yKSIpKSwKKwkJT1BUX0JPT0woIDAsICJkZWxldGUiLCAmZGVsZXRlcmVmcywgTl8oImRlbGV0ZSByZWZzIikpLAorCQlPUFRfQk9PTCggMCAsICJ0YWdzIiwgJnRhZ3MsIE5fKCJwdXNoIHRhZ3MgKGNhbid0IGJlIHVzZWQgd2l0aCAtLWFsbCBvciAtLW1pcnJvcikiKSksCiAJCU9QVF9CSVQoJ24nICwgImRyeS1ydW4iLCAmZmxhZ3MsIE5fKCJkcnkgcnVuIiksIFRSQU5TUE9SVF9QVVNIX0RSWV9SVU4pLAogCQlPUFRfQklUKCAwLCAgInBvcmNlbGFpbiIsICZmbGFncywgTl8oIm1hY2hpbmUtcmVhZGFibGUgb3V0cHV0IiksIFRSQU5TUE9SVF9QVVNIX1BPUkNFTEFJTiksCiAJCU9QVF9CSVQoJ2YnLCAiZm9yY2UiLCAmZmxhZ3MsIE5fKCJmb3JjZSB1cGRhdGVzIiksIFRSQU5TUE9SVF9QVVNIX0ZPUkNFKSwKKwkJeyBPUFRJT05fQ0FMTEJBQ0ssCisJCSAgMCwgQ0FTX09QVF9OQU1FLCAmY2FzLCBOXygicmVmbmFtZT46PGV4cGVjdCIpLAorCQkgIE5fKCJyZXF1aXJlIG9sZCB2YWx1ZSBvZiByZWYgdG8gYmUgYXQgdGhpcyB2YWx1ZSIpLAorCQkgIFBBUlNFX09QVF9PUFRBUkcsIHBhcnNlb3B0X3B1c2hfY2FzX29wdGlvbiB9LAogCQl7IE9QVElPTl9DQUxMQkFDSywgMCwgInJlY3Vyc2Utc3VibW9kdWxlcyIsICZmbGFncywgTl8oImNoZWNrIiksCiAJCQlOXygiY29udHJvbCByZWN1cnNpdmUgcHVzaGluZyBvZiBzdWJtb2R1bGVzIiksCiAJCQlQQVJTRV9PUFRfT1BUQVJHLCBvcHRpb25fcGFyc2VfcmVjdXJzZV9zdWJtb2R1bGVzIH0sCi0JCU9QVF9CT09MRUFOKCAwICwgInRoaW4iLCAmdGhpbiwgTl8oInVzZSB0aGluIHBhY2siKSksCisJCU9QVF9CT09MKCAwICwgInRoaW4iLCAmdGhpbiwgTl8oInVzZSB0aGluIHBhY2siKSksCiAJCU9QVF9TVFJJTkcoIDAgLCAicmVjZWl2ZS1wYWNrIiwgJnJlY2VpdmVwYWNrLCAicmVjZWl2ZS1wYWNrIiwgTl8oInJlY2VpdmUgcGFjayBwcm9ncmFtIikpLAogCQlPUFRfU1RSSU5HKCAwICwgImV4ZWMiLCAmcmVjZWl2ZXBhY2ssICJyZWNlaXZlLXBhY2siLCBOXygicmVjZWl2ZSBwYWNrIHByb2dyYW0iKSksCiAJCU9QVF9CSVQoJ3UnLCAic2V0LXVwc3RyZWFtIiwgJmZsYWdzLCBOXygic2V0IHVwc3RyZWFtIGZvciBnaXQgcHVsbC9zdGF0dXMiKSwKQEAgLTQ4Miw3ICs1NDEsNyBAQAogCiAJaWYgKGFyZ2MgPiAwKSB7CiAJCXJlcG8gPSBhcmd2WzBdOwotCQlzZXRfcmVmc3BlY3MoYXJndiArIDEsIGFyZ2MgLSAxKTsKKwkJc2V0X3JlZnNwZWNzKGFyZ3YgKyAxLCBhcmdjIC0gMSwgcmVwbyk7CiAJfQogCiAJcmMgPSBkb19wdXNoKHJlcG8sIGZsYWdzKTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmVhZC10cmVlLmMgYi9idWlsdGluL3JlYWQtdHJlZS5jCmluZGV4IDBmNWQ3ZmUuLjBkN2VmODQgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcmVhZC10cmVlLmMKKysrIGIvYnVpbHRpbi9yZWFkLXRyZWUuYwpAQCAtMTc4LDcgKzE3OCw3IEBACiAKIAlpZiAoMSA8IG9wdHMuaW5kZXhfb25seSArIG9wdHMudXBkYXRlKQogCQlkaWUoIi11IGFuZCAtaSBhdCB0aGUgc2FtZSB0aW1lIG1ha2VzIG5vIHNlbnNlIik7Ci0JaWYgKChvcHRzLnVwZGF0ZXx8b3B0cy5pbmRleF9vbmx5KSAmJiAhb3B0cy5tZXJnZSkKKwlpZiAoKG9wdHMudXBkYXRlIHx8IG9wdHMuaW5kZXhfb25seSkgJiYgIW9wdHMubWVyZ2UpCiAJCWRpZSgiJXMgaXMgbWVhbmluZ2xlc3Mgd2l0aG91dCAtbSwgLS1yZXNldCwgb3IgLS1wcmVmaXgiLAogCQkgICAgb3B0cy51cGRhdGUgPyAiLXUiIDogIi1pIik7CiAJaWYgKChvcHRzLmRpciAmJiAhb3B0cy51cGRhdGUpKQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9yZWNlaXZlLXBhY2suYyBiL2J1aWx0aW4vcmVjZWl2ZS1wYWNrLmMKaW5kZXggZTNlYjVmYy4uODViYmEzNSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9yZWNlaXZlLXBhY2suYworKysgYi9idWlsdGluL3JlY2VpdmUtcGFjay5jCkBAIC04LDEwICs4LDEyIEBACiAjaW5jbHVkZSAiY29tbWl0LmgiCiAjaW5jbHVkZSAib2JqZWN0LmgiCiAjaW5jbHVkZSAicmVtb3RlLmgiCisjaW5jbHVkZSAiY29ubmVjdC5oIgogI2luY2x1ZGUgInRyYW5zcG9ydC5oIgogI2luY2x1ZGUgInN0cmluZy1saXN0LmgiCiAjaW5jbHVkZSAic2hhMS1hcnJheS5oIgogI2luY2x1ZGUgImNvbm5lY3RlZC5oIgorI2luY2x1ZGUgImFyZ3YtYXJyYXkuaCIKICNpbmNsdWRlICJ2ZXJzaW9uLmgiCiAKIHN0YXRpYyBjb25zdCBjaGFyIHJlY2VpdmVfcGFja191c2FnZVtdID0gImdpdCByZWNlaXZlLXBhY2sgPGdpdC1kaXI+IjsKQEAgLTM4LDkgKzQwLDEyIEBACiBzdGF0aWMgaW50IHByZWZlcl9vZnNfZGVsdGEgPSAxOwogc3RhdGljIGludCBhdXRvX3VwZGF0ZV9zZXJ2ZXJfaW5mbzsKIHN0YXRpYyBpbnQgYXV0b19nYyA9IDE7CitzdGF0aWMgaW50IGZpeF90aGluID0gMTsKIHN0YXRpYyBjb25zdCBjaGFyICpoZWFkX25hbWU7CiBzdGF0aWMgdm9pZCAqaGVhZF9uYW1lX3RvX2ZyZWU7CiBzdGF0aWMgaW50IHNlbnRfY2FwYWJpbGl0aWVzOworc3RhdGljIGludCBzaGFsbG93X3VwZGF0ZTsKK3N0YXRpYyBjb25zdCBjaGFyICphbHRfc2hhbGxvd19maWxlOwogCiBzdGF0aWMgZW51bSBkZW55X2FjdGlvbiBwYXJzZV9kZW55X2FjdGlvbihjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlKQogewpAQCAtMTE5LDYgKzEyNCwxMSBAQAogCQlyZXR1cm4gMDsKIAl9CiAKKwlpZiAoc3RyY21wKHZhciwgInJlY2VpdmUuc2hhbGxvd3VwZGF0ZSIpID09IDApIHsKKwkJc2hhbGxvd191cGRhdGUgPSBnaXRfY29uZmlnX2Jvb2wodmFyLCB2YWx1ZSk7CisJCXJldHVybiAwOworCX0KKwogCXJldHVybiBnaXRfZGVmYXVsdF9jb25maWcodmFyLCB2YWx1ZSwgY2IpOwogfQogCkBAIC0xNzYsNiArMTg2LDggQEAKIAlpZiAoIXNlbnRfY2FwYWJpbGl0aWVzKQogCQlzaG93X3JlZigiY2FwYWJpbGl0aWVzXnt9IiwgbnVsbF9zaGExKTsKIAorCWFkdmVydGlzZV9zaGFsbG93X2dyYWZ0cygxKTsKKwogCS8qIEVPRiAqLwogCXBhY2tldF9mbHVzaCgxKTsKIH0KQEAgLTE4NSw2ICsxOTcsNyBAQAogCWNvbnN0IGNoYXIgKmVycm9yX3N0cmluZzsKIAl1bnNpZ25lZCBpbnQgc2tpcF91cGRhdGU6MSwKIAkJICAgICBkaWRfbm90X2V4aXN0OjE7CisJaW50IGluZGV4OwogCXVuc2lnbmVkIGNoYXIgb2xkX3NoYTFbMjBdOwogCXVuc2lnbmVkIGNoYXIgbmV3X3NoYTFbMjBdOwogCWNoYXIgcmVmX25hbWVbRkxFWF9BUlJBWV07IC8qIG1vcmUgKi8KQEAgLTQxNiw3ICs0MjksNDYgQEAKIAkJcnBfZXJyb3IoIiVzIiwgcmVmdXNlX3VuY29uZmlndXJlZF9kZW55X2RlbGV0ZV9jdXJyZW50X21zZ1tpXSk7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICp1cGRhdGUoc3RydWN0IGNvbW1hbmQgKmNtZCkKK3N0YXRpYyBpbnQgY29tbWFuZF9zaW5nbGV0b25faXRlcmF0b3Iodm9pZCAqY2JfZGF0YSwgdW5zaWduZWQgY2hhciBzaGExWzIwXSk7CitzdGF0aWMgaW50IHVwZGF0ZV9zaGFsbG93X3JlZihzdHJ1Y3QgY29tbWFuZCAqY21kLCBzdHJ1Y3Qgc2hhbGxvd19pbmZvICpzaSkKK3sKKwlzdGF0aWMgc3RydWN0IGxvY2tfZmlsZSBzaGFsbG93X2xvY2s7CisJc3RydWN0IHNoYTFfYXJyYXkgZXh0cmEgPSBTSEExX0FSUkFZX0lOSVQ7CisJY29uc3QgY2hhciAqYWx0X2ZpbGU7CisJdWludDMyX3QgbWFzayA9IDEgPDwgKGNtZC0+aW5kZXggJSAzMik7CisJaW50IGk7CisKKwl0cmFjZV9wcmludGZfa2V5KCJHSVRfVFJBQ0VfU0hBTExPVyIsCisJCQkgInNoYWxsb3c6IHVwZGF0ZV9zaGFsbG93X3JlZiAlc1xuIiwgY21kLT5yZWZfbmFtZSk7CisJZm9yIChpID0gMDsgaSA8IHNpLT5zaGFsbG93LT5ucjsgaSsrKQorCQlpZiAoc2ktPnVzZWRfc2hhbGxvd1tpXSAmJgorCQkgICAgKHNpLT51c2VkX3NoYWxsb3dbaV1bY21kLT5pbmRleCAvIDMyXSAmIG1hc2spICYmCisJCSAgICAhZGVsYXllZF9yZWFjaGFiaWxpdHlfdGVzdChzaSwgaSkpCisJCQlzaGExX2FycmF5X2FwcGVuZCgmZXh0cmEsIHNpLT5zaGFsbG93LT5zaGExW2ldKTsKKworCXNldHVwX2FsdGVybmF0ZV9zaGFsbG93KCZzaGFsbG93X2xvY2ssICZhbHRfZmlsZSwgJmV4dHJhKTsKKwlpZiAoY2hlY2tfc2hhbGxvd19jb25uZWN0ZWQoY29tbWFuZF9zaW5nbGV0b25faXRlcmF0b3IsCisJCQkJICAgIDAsIGNtZCwgYWx0X2ZpbGUpKSB7CisJCXJvbGxiYWNrX2xvY2tfZmlsZSgmc2hhbGxvd19sb2NrKTsKKwkJc2hhMV9hcnJheV9jbGVhcigmZXh0cmEpOworCQlyZXR1cm4gLTE7CisJfQorCisJY29tbWl0X2xvY2tfZmlsZSgmc2hhbGxvd19sb2NrKTsKKworCS8qCisJICogTWFrZSBzdXJlIHNldHVwX2FsdGVybmF0ZV9zaGFsbG93KCkgZm9yIHRoZSBuZXh0IHJlZiBkb2VzCisJICogbm90IGxvc2UgdGhlc2UgbmV3IHJvb3RzLi4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgZXh0cmEubnI7IGkrKykKKwkJcmVnaXN0ZXJfc2hhbGxvdyhleHRyYS5zaGExW2ldKTsKKworCXNpLT5zaGFsbG93X3JlZltjbWQtPmluZGV4XSA9IDA7CisJc2hhMV9hcnJheV9jbGVhcigmZXh0cmEpOworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3QgY2hhciAqdXBkYXRlKHN0cnVjdCBjb21tYW5kICpjbWQsIHN0cnVjdCBzaGFsbG93X2luZm8gKnNpKQogewogCWNvbnN0IGNoYXIgKm5hbWUgPSBjbWQtPnJlZl9uYW1lOwogCXN0cnVjdCBzdHJidWYgbmFtZXNwYWNlZF9uYW1lX2J1ZiA9IFNUUkJVRl9JTklUOwpAQCAtNDI2LDcgKzQ3OCw3IEBACiAJc3RydWN0IHJlZl9sb2NrICpsb2NrOwogCiAJLyogb25seSByZWZzLy4uLiBhcmUgYWxsb3dlZCAqLwotCWlmIChwcmVmaXhjbXAobmFtZSwgInJlZnMvIikgfHwgY2hlY2tfcmVmbmFtZV9mb3JtYXQobmFtZSArIDUsIDApKSB7CisJaWYgKCFzdGFydHNfd2l0aChuYW1lLCAicmVmcy8iKSB8fCBjaGVja19yZWZuYW1lX2Zvcm1hdChuYW1lICsgNSwgMCkpIHsKIAkJcnBfZXJyb3IoInJlZnVzaW5nIHRvIGNyZWF0ZSBmdW5ueSByZWYgJyVzJyByZW1vdGVseSIsIG5hbWUpOwogCQlyZXR1cm4gImZ1bm55IHJlZm5hbWUiOwogCX0KQEAgLTQ1Nyw3ICs1MDksNyBAQAogCX0KIAogCWlmICghaXNfbnVsbF9zaGExKG9sZF9zaGExKSAmJiBpc19udWxsX3NoYTEobmV3X3NoYTEpKSB7Ci0JCWlmIChkZW55X2RlbGV0ZXMgJiYgIXByZWZpeGNtcChuYW1lLCAicmVmcy9oZWFkcy8iKSkgeworCQlpZiAoZGVueV9kZWxldGVzICYmIHN0YXJ0c193aXRoKG5hbWUsICJyZWZzL2hlYWRzLyIpKSB7CiAJCQlycF9lcnJvcigiZGVueWluZyByZWYgZGVsZXRpb24gZm9yICVzIiwgbmFtZSk7CiAJCQlyZXR1cm4gImRlbGV0aW9uIHByb2hpYml0ZWQiOwogCQl9CkBAIC00ODEsNyArNTMzLDcgQEAKIAogCWlmIChkZW55X25vbl9mYXN0X2ZvcndhcmRzICYmICFpc19udWxsX3NoYTEobmV3X3NoYTEpICYmCiAJICAgICFpc19udWxsX3NoYTEob2xkX3NoYTEpICYmCi0JICAgICFwcmVmaXhjbXAobmFtZSwgInJlZnMvaGVhZHMvIikpIHsKKwkgICAgc3RhcnRzX3dpdGgobmFtZSwgInJlZnMvaGVhZHMvIikpIHsKIAkJc3RydWN0IG9iamVjdCAqb2xkX29iamVjdCwgKm5ld19vYmplY3Q7CiAJCXN0cnVjdCBjb21taXQgKm9sZF9jb21taXQsICpuZXdfY29tbWl0OwogCkBAIC01MjQsNyArNTc2LDEyIEBACiAJCXJldHVybiBOVUxMOyAvKiBnb29kICovCiAJfQogCWVsc2UgewotCQlsb2NrID0gbG9ja19hbnlfcmVmX2Zvcl91cGRhdGUobmFtZXNwYWNlZF9uYW1lLCBvbGRfc2hhMSwgMCk7CisJCWlmIChzaGFsbG93X3VwZGF0ZSAmJiBzaS0+c2hhbGxvd19yZWZbY21kLT5pbmRleF0gJiYKKwkJICAgIHVwZGF0ZV9zaGFsbG93X3JlZihjbWQsIHNpKSkKKwkJCXJldHVybiAic2hhbGxvdyBlcnJvciI7CisKKwkJbG9jayA9IGxvY2tfYW55X3JlZl9mb3JfdXBkYXRlKG5hbWVzcGFjZWRfbmFtZSwgb2xkX3NoYTEsCisJCQkJCSAgICAgICAwLCBOVUxMKTsKIAkJaWYgKCFsb2NrKSB7CiAJCQlycF9lcnJvcigiZmFpbGVkIHRvIGxvY2sgJXMiLCBuYW1lKTsKIAkJCXJldHVybiAiZmFpbGVkIHRvIGxvY2siOwpAQCAtNjYzLDEyICs3MjAsMTYgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgc2V0X2Nvbm5lY3Rpdml0eV9lcnJvcnMoc3RydWN0IGNvbW1hbmQgKmNvbW1hbmRzKQorc3RhdGljIHZvaWQgc2V0X2Nvbm5lY3Rpdml0eV9lcnJvcnMoc3RydWN0IGNvbW1hbmQgKmNvbW1hbmRzLAorCQkJCSAgICBzdHJ1Y3Qgc2hhbGxvd19pbmZvICpzaSkKIHsKIAlzdHJ1Y3QgY29tbWFuZCAqY21kOwogCiAJZm9yIChjbWQgPSBjb21tYW5kczsgY21kOyBjbWQgPSBjbWQtPm5leHQpIHsKIAkJc3RydWN0IGNvbW1hbmQgKnNpbmdsZXRvbiA9IGNtZDsKKwkJaWYgKHNoYWxsb3dfdXBkYXRlICYmIHNpLT5zaGFsbG93X3JlZltjbWQtPmluZGV4XSkKKwkJCS8qIHRvIGJlIGNoZWNrZWQgaW4gdXBkYXRlX3NoYWxsb3dfcmVmKCkgKi8KKwkJCWNvbnRpbnVlOwogCQlpZiAoIWNoZWNrX2V2ZXJ5dGhpbmdfY29ubmVjdGVkKGNvbW1hbmRfc2luZ2xldG9uX2l0ZXJhdG9yLAogCQkJCQkJMCwgJnNpbmdsZXRvbikpCiAJCQljb250aW51ZTsKQEAgLTY3NiwxOCArNzM3LDI2IEBACiAJfQogfQogCitzdHJ1Y3QgaXRlcmF0ZV9kYXRhIHsKKwlzdHJ1Y3QgY29tbWFuZCAqY21kczsKKwlzdHJ1Y3Qgc2hhbGxvd19pbmZvICpzaTsKK307CisKIHN0YXRpYyBpbnQgaXRlcmF0ZV9yZWNlaXZlX2NvbW1hbmRfbGlzdCh2b2lkICpjYl9kYXRhLCB1bnNpZ25lZCBjaGFyIHNoYTFbMjBdKQogewotCXN0cnVjdCBjb21tYW5kICoqY21kX2xpc3QgPSBjYl9kYXRhOworCXN0cnVjdCBpdGVyYXRlX2RhdGEgKmRhdGEgPSBjYl9kYXRhOworCXN0cnVjdCBjb21tYW5kICoqY21kX2xpc3QgPSAmZGF0YS0+Y21kczsKIAlzdHJ1Y3QgY29tbWFuZCAqY21kID0gKmNtZF9saXN0OwogCi0Jd2hpbGUgKGNtZCkgewotCQlpZiAoIWlzX251bGxfc2hhMShjbWQtPm5ld19zaGExKSkgeworCWZvciAoOyBjbWQ7IGNtZCA9IGNtZC0+bmV4dCkgeworCQlpZiAoc2hhbGxvd191cGRhdGUgJiYgZGF0YS0+c2ktPnNoYWxsb3dfcmVmW2NtZC0+aW5kZXhdKQorCQkJLyogdG8gYmUgY2hlY2tlZCBpbiB1cGRhdGVfc2hhbGxvd19yZWYoKSAqLworCQkJY29udGludWU7CisJCWlmICghaXNfbnVsbF9zaGExKGNtZC0+bmV3X3NoYTEpICYmICFjbWQtPnNraXBfdXBkYXRlKSB7CiAJCQloYXNoY3B5KHNoYTEsIGNtZC0+bmV3X3NoYTEpOwogCQkJKmNtZF9saXN0ID0gY21kLT5uZXh0OwogCQkJcmV0dXJuIDA7CiAJCX0KLQkJY21kID0gY21kLT5uZXh0OwogCX0KIAkqY21kX2xpc3QgPSBOVUxMOwogCXJldHVybiAtMTsgLyogZW5kIG9mIGxpc3QgKi8KQEAgLTcwNywxMCArNzc2LDE0IEBACiAJfQogfQogCi1zdGF0aWMgdm9pZCBleGVjdXRlX2NvbW1hbmRzKHN0cnVjdCBjb21tYW5kICpjb21tYW5kcywgY29uc3QgY2hhciAqdW5wYWNrZXJfZXJyb3IpCitzdGF0aWMgdm9pZCBleGVjdXRlX2NvbW1hbmRzKHN0cnVjdCBjb21tYW5kICpjb21tYW5kcywKKwkJCSAgICAgY29uc3QgY2hhciAqdW5wYWNrZXJfZXJyb3IsCisJCQkgICAgIHN0cnVjdCBzaGFsbG93X2luZm8gKnNpKQogeworCWludCBjaGVja2VkX2Nvbm5lY3Rpdml0eTsKIAlzdHJ1Y3QgY29tbWFuZCAqY21kOwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CisJc3RydWN0IGl0ZXJhdGVfZGF0YSBkYXRhOwogCiAJaWYgKHVucGFja2VyX2Vycm9yKSB7CiAJCWZvciAoY21kID0gY29tbWFuZHM7IGNtZDsgY21kID0gY21kLT5uZXh0KQpAQCAtNzE4LDEwICs3OTEsMTAgQEAKIAkJcmV0dXJuOwogCX0KIAotCWNtZCA9IGNvbW1hbmRzOwotCWlmIChjaGVja19ldmVyeXRoaW5nX2Nvbm5lY3RlZChpdGVyYXRlX3JlY2VpdmVfY29tbWFuZF9saXN0LAotCQkJCSAgICAgICAwLCAmY21kKSkKLQkJc2V0X2Nvbm5lY3Rpdml0eV9lcnJvcnMoY29tbWFuZHMpOworCWRhdGEuY21kcyA9IGNvbW1hbmRzOworCWRhdGEuc2kgPSBzaTsKKwlpZiAoY2hlY2tfZXZlcnl0aGluZ19jb25uZWN0ZWQoaXRlcmF0ZV9yZWNlaXZlX2NvbW1hbmRfbGlzdCwgMCwgJmRhdGEpKQorCQlzZXRfY29ubmVjdGl2aXR5X2Vycm9ycyhjb21tYW5kcywgc2kpOwogCiAJcmVqZWN0X3VwZGF0ZXNfdG9faGlkZGVuKGNvbW1hbmRzKTsKIApAQCAtNzM4LDYgKzgxMSw3IEBACiAJZnJlZShoZWFkX25hbWVfdG9fZnJlZSk7CiAJaGVhZF9uYW1lID0gaGVhZF9uYW1lX3RvX2ZyZWUgPSByZXNvbHZlX3JlZmR1cCgiSEVBRCIsIHNoYTEsIDAsIE5VTEwpOwogCisJY2hlY2tlZF9jb25uZWN0aXZpdHkgPSAxOwogCWZvciAoY21kID0gY29tbWFuZHM7IGNtZDsgY21kID0gY21kLT5uZXh0KSB7CiAJCWlmIChjbWQtPmVycm9yX3N0cmluZykKIAkJCWNvbnRpbnVlOwpAQCAtNzQ1LDExICs4MTksMjYgQEAKIAkJaWYgKGNtZC0+c2tpcF91cGRhdGUpCiAJCQljb250aW51ZTsKIAotCQljbWQtPmVycm9yX3N0cmluZyA9IHVwZGF0ZShjbWQpOworCQljbWQtPmVycm9yX3N0cmluZyA9IHVwZGF0ZShjbWQsIHNpKTsKKwkJaWYgKHNoYWxsb3dfdXBkYXRlICYmICFjbWQtPmVycm9yX3N0cmluZyAmJgorCQkgICAgc2ktPnNoYWxsb3dfcmVmW2NtZC0+aW5kZXhdKSB7CisJCQllcnJvcigiQlVHOiBjb25uZWN0aXZpdHkgY2hlY2sgaGFzIG5vdCBiZWVuIHJ1biBvbiByZWYgJXMiLAorCQkJICAgICAgY21kLT5yZWZfbmFtZSk7CisJCQljaGVja2VkX2Nvbm5lY3Rpdml0eSA9IDA7CisJCX0KKwl9CisKKwlpZiAoc2hhbGxvd191cGRhdGUpIHsKKwkJaWYgKCFjaGVja2VkX2Nvbm5lY3Rpdml0eSkKKwkJCWVycm9yKCJCVUc6IHJ1biAnZ2l0IGZzY2snIGZvciBzYWZldHkuXG4iCisJCQkgICAgICAiSWYgdGhlcmUgYXJlIGVycm9ycywgdHJ5IHRvIHJlbW92ZSAiCisJCQkgICAgICAidGhlIHJlcG9ydGVkIHJlZnMgYWJvdmUiKTsKKwkJaWYgKGFsdF9zaGFsbG93X2ZpbGUgJiYgKmFsdF9zaGFsbG93X2ZpbGUpCisJCQl1bmxpbmsoYWx0X3NoYWxsb3dfZmlsZSk7CiAJfQogfQogCi1zdGF0aWMgc3RydWN0IGNvbW1hbmQgKnJlYWRfaGVhZF9pbmZvKHZvaWQpCitzdGF0aWMgc3RydWN0IGNvbW1hbmQgKnJlYWRfaGVhZF9pbmZvKHN0cnVjdCBzaGExX2FycmF5ICpzaGFsbG93KQogewogCXN0cnVjdCBjb21tYW5kICpjb21tYW5kcyA9IE5VTEw7CiAJc3RydWN0IGNvbW1hbmQgKipwID0gJmNvbW1hbmRzOwpAQCAtNzYzLDYgKzg1MiwxNCBAQAogCQlsaW5lID0gcGFja2V0X3JlYWRfbGluZSgwLCAmbGVuKTsKIAkJaWYgKCFsaW5lKQogCQkJYnJlYWs7CisKKwkJaWYgKGxlbiA9PSA0OCAmJiBzdGFydHNfd2l0aChsaW5lLCAic2hhbGxvdyAiKSkgeworCQkJaWYgKGdldF9zaGExX2hleChsaW5lICsgOCwgb2xkX3NoYTEpKQorCQkJCWRpZSgicHJvdG9jb2wgZXJyb3I6IGV4cGVjdGVkIHNoYWxsb3cgc2hhLCBnb3QgJyVzJyIsIGxpbmUgKyA4KTsKKwkJCXNoYTFfYXJyYXlfYXBwZW5kKHNoYWxsb3csIG9sZF9zaGExKTsKKwkJCWNvbnRpbnVlOworCQl9CisKIAkJaWYgKGxlbiA8IDgzIHx8CiAJCSAgICBsaW5lWzQwXSAhPSAnICcgfHwKIAkJICAgIGxpbmVbODFdICE9ICcgJyB8fApAQCAtODE0LDExICs5MTEsMTQgQEAKIAogc3RhdGljIGNvbnN0IGNoYXIgKnBhY2tfbG9ja2ZpbGU7CiAKLXN0YXRpYyBjb25zdCBjaGFyICp1bnBhY2soaW50IGVycl9mZCkKK3N0YXRpYyBjb25zdCBjaGFyICp1bnBhY2soaW50IGVycl9mZCwgc3RydWN0IHNoYWxsb3dfaW5mbyAqc2kpCiB7CiAJc3RydWN0IHBhY2tfaGVhZGVyIGhkcjsKKwlzdHJ1Y3QgYXJndl9hcnJheSBhdiA9IEFSR1ZfQVJSQVlfSU5JVDsKIAljb25zdCBjaGFyICpoZHJfZXJyOworCWludCBzdGF0dXM7CiAJY2hhciBoZHJfYXJnWzM4XTsKKwlzdHJ1Y3QgY2hpbGRfcHJvY2VzcyBjaGlsZDsKIAlpbnQgZnNja19vYmplY3RzID0gKHJlY2VpdmVfZnNja19vYmplY3RzID49IDAKIAkJCSAgICA/IHJlY2VpdmVfZnNja19vYmplY3RzCiAJCQkgICAgOiB0cmFuc2Zlcl9mc2NrX29iamVjdHMgPj0gMApAQCAtODM1LDcxICs5MzUsNjMgQEAKIAkJCSItLXBhY2tfaGVhZGVyPSUiUFJJdTMyIiwlIlBSSXUzMiwKIAkJCW50b2hsKGhkci5oZHJfdmVyc2lvbiksIG50b2hsKGhkci5oZHJfZW50cmllcykpOwogCisJaWYgKHNpLT5ucl9vdXJzIHx8IHNpLT5ucl90aGVpcnMpIHsKKwkJYWx0X3NoYWxsb3dfZmlsZSA9IHNldHVwX3RlbXBvcmFyeV9zaGFsbG93KHNpLT5zaGFsbG93KTsKKwkJYXJndl9hcnJheV9wdXNobCgmYXYsICItLXNoYWxsb3ctZmlsZSIsIGFsdF9zaGFsbG93X2ZpbGUsIE5VTEwpOworCX0KKworCW1lbXNldCgmY2hpbGQsIDAsIHNpemVvZihjaGlsZCkpOwogCWlmIChudG9obChoZHIuaGRyX2VudHJpZXMpIDwgdW5wYWNrX2xpbWl0KSB7Ci0JCWludCBjb2RlLCBpID0gMDsKLQkJc3RydWN0IGNoaWxkX3Byb2Nlc3MgY2hpbGQ7Ci0JCWNvbnN0IGNoYXIgKnVucGFja2VyWzVdOwotCQl1bnBhY2tlcltpKytdID0gInVucGFjay1vYmplY3RzIjsKKwkJYXJndl9hcnJheV9wdXNobCgmYXYsICJ1bnBhY2stb2JqZWN0cyIsIGhkcl9hcmcsIE5VTEwpOwogCQlpZiAocXVpZXQpCi0JCQl1bnBhY2tlcltpKytdID0gIi1xIjsKKwkJCWFyZ3ZfYXJyYXlfcHVzaCgmYXYsICItcSIpOwogCQlpZiAoZnNja19vYmplY3RzKQotCQkJdW5wYWNrZXJbaSsrXSA9ICItLXN0cmljdCI7Ci0JCXVucGFja2VyW2krK10gPSBoZHJfYXJnOwotCQl1bnBhY2tlcltpKytdID0gTlVMTDsKLQkJbWVtc2V0KCZjaGlsZCwgMCwgc2l6ZW9mKGNoaWxkKSk7Ci0JCWNoaWxkLmFyZ3YgPSB1bnBhY2tlcjsKKwkJCWFyZ3ZfYXJyYXlfcHVzaCgmYXYsICItLXN0cmljdCIpOworCQljaGlsZC5hcmd2ID0gYXYuYXJndjsKIAkJY2hpbGQubm9fc3Rkb3V0ID0gMTsKIAkJY2hpbGQuZXJyID0gZXJyX2ZkOwogCQljaGlsZC5naXRfY21kID0gMTsKLQkJY29kZSA9IHJ1bl9jb21tYW5kKCZjaGlsZCk7Ci0JCWlmICghY29kZSkKLQkJCXJldHVybiBOVUxMOwotCQlyZXR1cm4gInVucGFjay1vYmplY3RzIGFibm9ybWFsIGV4aXQiOworCQlzdGF0dXMgPSBydW5fY29tbWFuZCgmY2hpbGQpOworCQlpZiAoc3RhdHVzKQorCQkJcmV0dXJuICJ1bnBhY2stb2JqZWN0cyBhYm5vcm1hbCBleGl0IjsKIAl9IGVsc2UgewotCQljb25zdCBjaGFyICprZWVwZXJbN107Ci0JCWludCBzLCBzdGF0dXMsIGkgPSAwOworCQlpbnQgczsKIAkJY2hhciBrZWVwX2FyZ1syNTZdOwotCQlzdHJ1Y3QgY2hpbGRfcHJvY2VzcyBpcDsKIAogCQlzID0gc3ByaW50ZihrZWVwX2FyZywgIi0ta2VlcD1yZWNlaXZlLXBhY2sgJSJQUkl1TUFYIiBvbiAiLCAodWludG1heF90KSBnZXRwaWQoKSk7CiAJCWlmIChnZXRob3N0bmFtZShrZWVwX2FyZyArIHMsIHNpemVvZihrZWVwX2FyZykgLSBzKSkKIAkJCXN0cmNweShrZWVwX2FyZyArIHMsICJsb2NhbGhvc3QiKTsKIAotCQlrZWVwZXJbaSsrXSA9ICJpbmRleC1wYWNrIjsKLQkJa2VlcGVyW2krK10gPSAiLS1zdGRpbiI7CisJCWFyZ3ZfYXJyYXlfcHVzaGwoJmF2LCAiaW5kZXgtcGFjayIsCisJCQkJICItLXN0ZGluIiwgaGRyX2FyZywga2VlcF9hcmcsIE5VTEwpOwogCQlpZiAoZnNja19vYmplY3RzKQotCQkJa2VlcGVyW2krK10gPSAiLS1zdHJpY3QiOwotCQlrZWVwZXJbaSsrXSA9ICItLWZpeC10aGluIjsKLQkJa2VlcGVyW2krK10gPSBoZHJfYXJnOwotCQlrZWVwZXJbaSsrXSA9IGtlZXBfYXJnOwotCQlrZWVwZXJbaSsrXSA9IE5VTEw7Ci0JCW1lbXNldCgmaXAsIDAsIHNpemVvZihpcCkpOwotCQlpcC5hcmd2ID0ga2VlcGVyOwotCQlpcC5vdXQgPSAtMTsKLQkJaXAuZXJyID0gZXJyX2ZkOwotCQlpcC5naXRfY21kID0gMTsKLQkJc3RhdHVzID0gc3RhcnRfY29tbWFuZCgmaXApOwotCQlpZiAoc3RhdHVzKSB7CisJCQlhcmd2X2FycmF5X3B1c2goJmF2LCAiLS1zdHJpY3QiKTsKKwkJaWYgKGZpeF90aGluKQorCQkJYXJndl9hcnJheV9wdXNoKCZhdiwgIi0tZml4LXRoaW4iKTsKKwkJY2hpbGQuYXJndiA9IGF2LmFyZ3Y7CisJCWNoaWxkLm91dCA9IC0xOworCQljaGlsZC5lcnIgPSBlcnJfZmQ7CisJCWNoaWxkLmdpdF9jbWQgPSAxOworCQlzdGF0dXMgPSBzdGFydF9jb21tYW5kKCZjaGlsZCk7CisJCWlmIChzdGF0dXMpCiAJCQlyZXR1cm4gImluZGV4LXBhY2sgZm9yayBmYWlsZWQiOwotCQl9Ci0JCXBhY2tfbG9ja2ZpbGUgPSBpbmRleF9wYWNrX2xvY2tmaWxlKGlwLm91dCk7Ci0JCWNsb3NlKGlwLm91dCk7Ci0JCXN0YXR1cyA9IGZpbmlzaF9jb21tYW5kKCZpcCk7Ci0JCWlmICghc3RhdHVzKSB7Ci0JCQlyZXByZXBhcmVfcGFja2VkX2dpdCgpOwotCQkJcmV0dXJuIE5VTEw7Ci0JCX0KLQkJcmV0dXJuICJpbmRleC1wYWNrIGFibm9ybWFsIGV4aXQiOworCQlwYWNrX2xvY2tmaWxlID0gaW5kZXhfcGFja19sb2NrZmlsZShjaGlsZC5vdXQpOworCQljbG9zZShjaGlsZC5vdXQpOworCQlzdGF0dXMgPSBmaW5pc2hfY29tbWFuZCgmY2hpbGQpOworCQlpZiAoc3RhdHVzKQorCQkJcmV0dXJuICJpbmRleC1wYWNrIGFibm9ybWFsIGV4aXQiOworCQlyZXByZXBhcmVfcGFja2VkX2dpdCgpOwogCX0KKwlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKnVucGFja193aXRoX3NpZGViYW5kKHZvaWQpCitzdGF0aWMgY29uc3QgY2hhciAqdW5wYWNrX3dpdGhfc2lkZWJhbmQoc3RydWN0IHNoYWxsb3dfaW5mbyAqc2kpCiB7CiAJc3RydWN0IGFzeW5jIG11eGVyOwogCWNvbnN0IGNoYXIgKnJldDsKIAogCWlmICghdXNlX3NpZGViYW5kKQotCQlyZXR1cm4gdW5wYWNrKDApOworCQlyZXR1cm4gdW5wYWNrKDAsIHNpKTsKIAogCW1lbXNldCgmbXV4ZXIsIDAsIHNpemVvZihtdXhlcikpOwogCW11eGVyLnByb2MgPSBjb3B5X3RvX3NpZGViYW5kOwpAQCAtOTA3LDEyICs5OTksMTAxIEBACiAJaWYgKHN0YXJ0X2FzeW5jKCZtdXhlcikpCiAJCXJldHVybiBOVUxMOwogCi0JcmV0ID0gdW5wYWNrKG11eGVyLmluKTsKKwlyZXQgPSB1bnBhY2sobXV4ZXIuaW4sIHNpKTsKIAogCWZpbmlzaF9hc3luYygmbXV4ZXIpOwogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2b2lkIHByZXBhcmVfc2hhbGxvd191cGRhdGUoc3RydWN0IGNvbW1hbmQgKmNvbW1hbmRzLAorCQkJCSAgIHN0cnVjdCBzaGFsbG93X2luZm8gKnNpKQoreworCWludCBpLCBqLCBrLCBiaXRtYXBfc2l6ZSA9IChzaS0+cmVmLT5uciArIDMxKSAvIDMyOworCisJc2ktPnVzZWRfc2hhbGxvdyA9IHhtYWxsb2Moc2l6ZW9mKCpzaS0+dXNlZF9zaGFsbG93KSAqCisJCQkJICAgc2ktPnNoYWxsb3ctPm5yKTsKKwlhc3NpZ25fc2hhbGxvd19jb21taXRzX3RvX3JlZnMoc2ksIHNpLT51c2VkX3NoYWxsb3csIE5VTEwpOworCisJc2ktPm5lZWRfcmVhY2hhYmlsaXR5X3Rlc3QgPQorCQl4Y2FsbG9jKHNpLT5zaGFsbG93LT5uciwgc2l6ZW9mKCpzaS0+bmVlZF9yZWFjaGFiaWxpdHlfdGVzdCkpOworCXNpLT5yZWFjaGFibGUgPQorCQl4Y2FsbG9jKHNpLT5zaGFsbG93LT5uciwgc2l6ZW9mKCpzaS0+cmVhY2hhYmxlKSk7CisJc2ktPnNoYWxsb3dfcmVmID0geGNhbGxvYyhzaS0+cmVmLT5uciwgc2l6ZW9mKCpzaS0+c2hhbGxvd19yZWYpKTsKKworCWZvciAoaSA9IDA7IGkgPCBzaS0+bnJfb3VyczsgaSsrKQorCQlzaS0+bmVlZF9yZWFjaGFiaWxpdHlfdGVzdFtzaS0+b3Vyc1tpXV0gPSAxOworCisJZm9yIChpID0gMDsgaSA8IHNpLT5zaGFsbG93LT5ucjsgaSsrKSB7CisJCWlmICghc2ktPnVzZWRfc2hhbGxvd1tpXSkKKwkJCWNvbnRpbnVlOworCQlmb3IgKGogPSAwOyBqIDwgYml0bWFwX3NpemU7IGorKykgeworCQkJaWYgKCFzaS0+dXNlZF9zaGFsbG93W2ldW2pdKQorCQkJCWNvbnRpbnVlOworCQkJc2ktPm5lZWRfcmVhY2hhYmlsaXR5X3Rlc3RbaV0rKzsKKwkJCWZvciAoayA9IDA7IGsgPCAzMjsgaysrKQorCQkJCWlmIChzaS0+dXNlZF9zaGFsbG93W2ldW2pdICYgKDEgPDwgaykpCisJCQkJCXNpLT5zaGFsbG93X3JlZltqICogMzIgKyBrXSsrOworCQl9CisKKwkJLyoKKwkJICogdHJ1ZSBmb3IgdGhvc2UgYXNzb2NpYXRlZCB3aXRoIHNvbWUgcmVmcyBhbmQgYmVsb25nCisJCSAqIGluICJvdXJzIiBsaXN0IGFrYSAic3RlcCA3IG5vdCBkb25lIHlldCIKKwkJICovCisJCXNpLT5uZWVkX3JlYWNoYWJpbGl0eV90ZXN0W2ldID0KKwkJCXNpLT5uZWVkX3JlYWNoYWJpbGl0eV90ZXN0W2ldID4gMTsKKwl9CisKKwkvKgorCSAqIGtlZXAgaG9va3MgaGFwcHkgYnkgZm9yY2luZyBhIHRlbXBvcmFyeSBzaGFsbG93IGZpbGUgdmlhCisJICogZW52IHZhcmlhYmxlIGJlY2F1c2Ugd2UgY2FuJ3QgYWRkIC0tc2hhbGxvdy1maWxlIHRvIGV2ZXJ5CisJICogY29tbWFuZC4gY2hlY2tfZXZlcnl0aGluZ19jb25uZWN0ZWQoKSB3aWxsIGJlIGRvbmUgd2l0aAorCSAqIHRydWUgLmdpdC9zaGFsbG93IHRob3VnaC4KKwkgKi8KKwlzZXRlbnYoR0lUX1NIQUxMT1dfRklMRV9FTlZJUk9OTUVOVCwgYWx0X3NoYWxsb3dfZmlsZSwgMSk7Cit9CisKK3N0YXRpYyB2b2lkIHVwZGF0ZV9zaGFsbG93X2luZm8oc3RydWN0IGNvbW1hbmQgKmNvbW1hbmRzLAorCQkJCXN0cnVjdCBzaGFsbG93X2luZm8gKnNpLAorCQkJCXN0cnVjdCBzaGExX2FycmF5ICpyZWYpCit7CisJc3RydWN0IGNvbW1hbmQgKmNtZDsKKwlpbnQgKnJlZl9zdGF0dXM7CisJcmVtb3ZlX25vbmV4aXN0ZW50X3RoZWlyc19zaGFsbG93KHNpKTsKKwlpZiAoIXNpLT5ucl9vdXJzICYmICFzaS0+bnJfdGhlaXJzKSB7CisJCXNoYWxsb3dfdXBkYXRlID0gMDsKKwkJcmV0dXJuOworCX0KKworCWZvciAoY21kID0gY29tbWFuZHM7IGNtZDsgY21kID0gY21kLT5uZXh0KSB7CisJCWlmIChpc19udWxsX3NoYTEoY21kLT5uZXdfc2hhMSkpCisJCQljb250aW51ZTsKKwkJc2hhMV9hcnJheV9hcHBlbmQocmVmLCBjbWQtPm5ld19zaGExKTsKKwkJY21kLT5pbmRleCA9IHJlZi0+bnIgLSAxOworCX0KKwlzaS0+cmVmID0gcmVmOworCisJaWYgKHNoYWxsb3dfdXBkYXRlKSB7CisJCXByZXBhcmVfc2hhbGxvd191cGRhdGUoY29tbWFuZHMsIHNpKTsKKwkJcmV0dXJuOworCX0KKworCXJlZl9zdGF0dXMgPSB4bWFsbG9jKHNpemVvZigqcmVmX3N0YXR1cykgKiByZWYtPm5yKTsKKwlhc3NpZ25fc2hhbGxvd19jb21taXRzX3RvX3JlZnMoc2ksIE5VTEwsIHJlZl9zdGF0dXMpOworCWZvciAoY21kID0gY29tbWFuZHM7IGNtZDsgY21kID0gY21kLT5uZXh0KSB7CisJCWlmIChpc19udWxsX3NoYTEoY21kLT5uZXdfc2hhMSkpCisJCQljb250aW51ZTsKKwkJaWYgKHJlZl9zdGF0dXNbY21kLT5pbmRleF0pIHsKKwkJCWNtZC0+ZXJyb3Jfc3RyaW5nID0gInNoYWxsb3cgdXBkYXRlIG5vdCBhbGxvd2VkIjsKKwkJCWNtZC0+c2tpcF91cGRhdGUgPSAxOworCQl9CisJfQorCWlmIChhbHRfc2hhbGxvd19maWxlICYmICphbHRfc2hhbGxvd19maWxlKSB7CisJCXVubGluayhhbHRfc2hhbGxvd19maWxlKTsKKwkJYWx0X3NoYWxsb3dfZmlsZSA9IE5VTEw7CisJfQorCWZyZWUocmVmX3N0YXR1cyk7Cit9CisKIHN0YXRpYyB2b2lkIHJlcG9ydChzdHJ1Y3QgY29tbWFuZCAqY29tbWFuZHMsIGNvbnN0IGNoYXIgKnVucGFja19zdGF0dXMpCiB7CiAJc3RydWN0IGNvbW1hbmQgKmNtZDsKQEAgLTk1NCw2ICsxMTM1LDkgQEAKIAlpbnQgaTsKIAljaGFyICpkaXIgPSBOVUxMOwogCXN0cnVjdCBjb21tYW5kICpjb21tYW5kczsKKwlzdHJ1Y3Qgc2hhMV9hcnJheSBzaGFsbG93ID0gU0hBMV9BUlJBWV9JTklUOworCXN0cnVjdCBzaGExX2FycmF5IHJlZiA9IFNIQTFfQVJSQVlfSU5JVDsKKwlzdHJ1Y3Qgc2hhbGxvd19pbmZvIHNpOwogCiAJcGFja2V0X3RyYWNlX2lkZW50aXR5KCJyZWNlaXZlLXBhY2siKTsKIApAQCAtOTc1LDYgKzExNTksMTAgQEAKIAkJCQlzdGF0ZWxlc3NfcnBjID0gMTsKIAkJCQljb250aW51ZTsKIAkJCX0KKwkJCWlmICghc3RyY21wKGFyZywgIi0tcmVqZWN0LXRoaW4tcGFjay1mb3ItdGVzdGluZyIpKSB7CisJCQkJZml4X3RoaW4gPSAwOworCQkJCWNvbnRpbnVlOworCQkJfQogCiAJCQl1c2FnZShyZWNlaXZlX3BhY2tfdXNhZ2UpOwogCQl9CkBAIC05OTAsOSArMTE3OCw2IEBACiAJaWYgKCFlbnRlcl9yZXBvKGRpciwgMCkpCiAJCWRpZSgiJyVzJyBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSBnaXQgcmVwb3NpdG9yeSIsIGRpcik7CiAKLQlpZiAoaXNfcmVwb3NpdG9yeV9zaGFsbG93KCkpCi0JCWRpZSgiYXR0ZW1wdCB0byBwdXNoIGludG8gYSBzaGFsbG93IHJlcG9zaXRvcnkiKTsKLQogCWdpdF9jb25maWcocmVjZWl2ZV9wYWNrX2NvbmZpZywgTlVMTCk7CiAKIAlpZiAoMCA8PSB0cmFuc2Zlcl91bnBhY2tfbGltaXQpCkBAIC0xMDA2LDEyICsxMTkxLDE3IEBACiAJaWYgKGFkdmVydGlzZV9yZWZzKQogCQlyZXR1cm4gMDsKIAotCWlmICgoY29tbWFuZHMgPSByZWFkX2hlYWRfaW5mbygpKSAhPSBOVUxMKSB7CisJaWYgKChjb21tYW5kcyA9IHJlYWRfaGVhZF9pbmZvKCZzaGFsbG93KSkgIT0gTlVMTCkgewogCQljb25zdCBjaGFyICp1bnBhY2tfc3RhdHVzID0gTlVMTDsKIAotCQlpZiAoIWRlbGV0ZV9vbmx5KGNvbW1hbmRzKSkKLQkJCXVucGFja19zdGF0dXMgPSB1bnBhY2tfd2l0aF9zaWRlYmFuZCgpOwotCQlleGVjdXRlX2NvbW1hbmRzKGNvbW1hbmRzLCB1bnBhY2tfc3RhdHVzKTsKKwkJcHJlcGFyZV9zaGFsbG93X2luZm8oJnNpLCAmc2hhbGxvdyk7CisJCWlmICghc2kubnJfb3VycyAmJiAhc2kubnJfdGhlaXJzKQorCQkJc2hhbGxvd191cGRhdGUgPSAwOworCQlpZiAoIWRlbGV0ZV9vbmx5KGNvbW1hbmRzKSkgeworCQkJdW5wYWNrX3N0YXR1cyA9IHVucGFja193aXRoX3NpZGViYW5kKCZzaSk7CisJCQl1cGRhdGVfc2hhbGxvd19pbmZvKGNvbW1hbmRzLCAmc2ksICZyZWYpOworCQl9CisJCWV4ZWN1dGVfY29tbWFuZHMoY29tbWFuZHMsIHVucGFja19zdGF0dXMsICZzaSk7CiAJCWlmIChwYWNrX2xvY2tmaWxlKQogCQkJdW5saW5rX29yX3dhcm4ocGFja19sb2NrZmlsZSk7CiAJCWlmIChyZXBvcnRfc3RhdHVzKQpAQCAtMTAyNyw4ICsxMjE3LDExIEBACiAJCX0KIAkJaWYgKGF1dG9fdXBkYXRlX3NlcnZlcl9pbmZvKQogCQkJdXBkYXRlX3NlcnZlcl9pbmZvKDApOworCQljbGVhcl9zaGFsbG93X2luZm8oJnNpKTsKIAl9CiAJaWYgKHVzZV9zaWRlYmFuZCkKIAkJcGFja2V0X2ZsdXNoKDEpOworCXNoYTFfYXJyYXlfY2xlYXIoJnNoYWxsb3cpOworCXNoYTFfYXJyYXlfY2xlYXIoJnJlZik7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9idWlsdGluL3JlZmxvZy5jIGIvYnVpbHRpbi9yZWZsb2cuYwppbmRleCA1NDE4NGIzLi44NTJjZmY2IDEwMDY0NAotLS0gYS9idWlsdGluL3JlZmxvZy5jCisrKyBiL2J1aWx0aW4vcmVmbG9nLmMKQEAgLTk0LDggKzk0LDcgQEAKIAkJCWNvbXBsZXRlID0gMDsKIAkJfQogCX0KLQlmcmVlKHRyZWUtPmJ1ZmZlcik7Ci0JdHJlZS0+YnVmZmVyID0gTlVMTDsKKwlmcmVlX3RyZWVfYnVmZmVyKHRyZWUpOwogCiAJaWYgKGNvbXBsZXRlKQogCQl0cmVlLT5vYmplY3QuZmxhZ3MgfD0gU0VFTjsKQEAgLTM2Niw3ICszNjUsNyBAQAogCSAqIHdlIHRha2UgdGhlIGxvY2sgZm9yIHRoZSByZWYgaXRzZWxmIHRvIHByZXZlbnQgaXQgZnJvbQogCSAqIGdldHRpbmcgdXBkYXRlZC4KIAkgKi8KLQlsb2NrID0gbG9ja19hbnlfcmVmX2Zvcl91cGRhdGUocmVmLCBzaGExLCAwKTsKKwlsb2NrID0gbG9ja19hbnlfcmVmX2Zvcl91cGRhdGUocmVmLCBzaGExLCAwLCBOVUxMKTsKIAlpZiAoIWxvY2spCiAJCXJldHVybiBlcnJvcigiY2Fubm90IGxvY2sgcmVmICclcyciLCByZWYpOwogCWxvZ19maWxlID0gZ2l0X3BhdGhkdXAoImxvZ3MvJXMiLCByZWYpOwpAQCAtNjExLDEyICs2MTAsMTIgQEAKIAkJY29uc3QgY2hhciAqYXJnID0gYXJndltpXTsKIAkJaWYgKCFzdHJjbXAoYXJnLCAiLS1kcnktcnVuIikgfHwgIXN0cmNtcChhcmcsICItbiIpKQogCQkJY2IuZHJ5X3J1biA9IDE7Ci0JCWVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1leHBpcmU9IikpIHsKKwkJZWxzZSBpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1leHBpcmU9IikpIHsKIAkJCWlmIChwYXJzZV9leHBpcnlfZGF0ZShhcmcgKyA5LCAmY2IuZXhwaXJlX3RvdGFsKSkKIAkJCQlkaWUoXygiJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiKSwgYXJnKTsKIAkJCWV4cGxpY2l0X2V4cGlyeSB8PSBFWFBJUkVfVE9UQUw7CiAJCX0KLQkJZWxzZSBpZiAoIXByZWZpeGNtcChhcmcsICItLWV4cGlyZS11bnJlYWNoYWJsZT0iKSkgeworCQllbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLWV4cGlyZS11bnJlYWNoYWJsZT0iKSkgewogCQkJaWYgKHBhcnNlX2V4cGlyeV9kYXRlKGFyZyArIDIxLCAmY2IuZXhwaXJlX3VucmVhY2hhYmxlKSkKIAkJCQlkaWUoXygiJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiKSwgYXJnKTsKIAkJCWV4cGxpY2l0X2V4cGlyeSB8PSBFWFBJUkVfVU5SRUFDSDsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmVtb3RlLmMgYi9idWlsdGluL3JlbW90ZS5jCmluZGV4IDVlNTRkMzYuLmIzYWI0Y2YgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcmVtb3RlLmMKKysrIGIvYnVpbHRpbi9yZW1vdGUuYwpAQCAtNiwxMyArNiwxNCBAQAogI2luY2x1ZGUgInN0cmJ1Zi5oIgogI2luY2x1ZGUgInJ1bi1jb21tYW5kLmgiCiAjaW5jbHVkZSAicmVmcy5oIgorI2luY2x1ZGUgImFyZ3YtYXJyYXkuaCIKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBidWlsdGluX3JlbW90ZV91c2FnZVtdID0gewogCU5fKCJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0iKSwKIAlOXygiZ2l0IHJlbW90ZSBhZGQgWy10IDxicmFuY2g+XSBbLW0gPG1hc3Rlcj5dIFstZl0gWy0tdGFnc3wtLW5vLXRhZ3NdIFstLW1pcnJvcj08ZmV0Y2h8cHVzaD5dIDxuYW1lPiA8dXJsPiIpLAogCU5fKCJnaXQgcmVtb3RlIHJlbmFtZSA8b2xkPiA8bmV3PiIpLAogCU5fKCJnaXQgcmVtb3RlIHJlbW92ZSA8bmFtZT4iKSwKLQlOXygiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLWQgfCA8YnJhbmNoPikiKSwKKwlOXygiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8PGJyYW5jaD4pIiksCiAJTl8oImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSBzaG93IFstbl0gPG5hbWU+IiksCiAJTl8oImdpdCByZW1vdGUgcHJ1bmUgWy1uIHwgLS1kcnktcnVuXSA8bmFtZT4iKSwKIAlOXygiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIHVwZGF0ZSBbLXAgfCAtLXBydW5lXSBbKDxncm91cD4gfCA8cmVtb3RlPikuLi5dIiksCkBAIC0zOSw3ICs0MCw3IEBACiB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGJ1aWx0aW5fcmVtb3RlX3NldGhlYWRfdXNhZ2VbXSA9IHsKLQlOXygiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLWQgfCA8YnJhbmNoPikiKSwKKwlOXygiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8IDxicmFuY2g+KSIpLAogCU5VTEwKIH07CiAKQEAgLTc3LDE3ICs3OCw2IEBACiAKIHN0YXRpYyBpbnQgdmVyYm9zZTsKIAotc3RhdGljIGludCBzaG93X2FsbCh2b2lkKTsKLXN0YXRpYyBpbnQgcHJ1bmVfcmVtb3RlKGNvbnN0IGNoYXIgKnJlbW90ZSwgaW50IGRyeV9ydW4pOwotCi1zdGF0aWMgaW5saW5lIGludCBwb3N0Zml4Y21wKGNvbnN0IGNoYXIgKnN0cmluZywgY29uc3QgY2hhciAqcG9zdGZpeCkKLXsKLQlpbnQgbGVuMSA9IHN0cmxlbihzdHJpbmcpLCBsZW4yID0gc3RybGVuKHBvc3RmaXgpOwotCWlmIChsZW4xIDwgbGVuMikKLQkJcmV0dXJuIDE7Ci0JcmV0dXJuIHN0cmNtcChzdHJpbmcgKyBsZW4xIC0gbGVuMiwgcG9zdGZpeCk7Ci19Ci0KIHN0YXRpYyBpbnQgZmV0Y2hfcmVtb3RlKGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAJY29uc3QgY2hhciAqYXJndltdID0geyAiZmV0Y2giLCBuYW1lLCBOVUxMLCBOVUxMIH07CkBAIC0xNjAsNyArMTUwLDcgQEAKIAlpbnQgaTsKIAogCXN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0gewotCQlPUFRfQk9PTEVBTignZicsICJmZXRjaCIsICZmZXRjaCwgTl8oImZldGNoIHRoZSByZW1vdGUgYnJhbmNoZXMiKSksCisJCU9QVF9CT09MKCdmJywgImZldGNoIiwgJmZldGNoLCBOXygiZmV0Y2ggdGhlIHJlbW90ZSBicmFuY2hlcyIpKSwKIAkJT1BUX1NFVF9JTlQoMCwgInRhZ3MiLCAmZmV0Y2hfdGFncywKIAkJCSAgICBOXygiaW1wb3J0IGFsbCB0YWdzIGFuZCBhc3NvY2lhdGVkIG9iamVjdHMgd2hlbiBmZXRjaGluZyIpLAogCQkJICAgIFRBR1NfU0VUKSwKQEAgLTI2OSw3ICsyNTksNyBAQAogCiBzdGF0aWMgaW50IGNvbmZpZ19yZWFkX2JyYW5jaGVzKGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqdmFsdWUsIHZvaWQgKmNiKQogewotCWlmICghcHJlZml4Y21wKGtleSwgImJyYW5jaC4iKSkgeworCWlmIChzdGFydHNfd2l0aChrZXksICJicmFuY2guIikpIHsKIAkJY29uc3QgY2hhciAqb3JpZ19rZXkgPSBrZXk7CiAJCWNoYXIgKm5hbWU7CiAJCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtOwpAQCAtMjc3LDEzICsyNjcsMTMgQEAKIAkJZW51bSB7IFJFTU9URSwgTUVSR0UsIFJFQkFTRSB9IHR5cGU7CiAKIAkJa2V5ICs9IDc7Ci0JCWlmICghcG9zdGZpeGNtcChrZXksICIucmVtb3RlIikpIHsKKwkJaWYgKGVuZHNfd2l0aChrZXksICIucmVtb3RlIikpIHsKIAkJCW5hbWUgPSB4c3RybmR1cChrZXksIHN0cmxlbihrZXkpIC0gNyk7CiAJCQl0eXBlID0gUkVNT1RFOwotCQl9IGVsc2UgaWYgKCFwb3N0Zml4Y21wKGtleSwgIi5tZXJnZSIpKSB7CisJCX0gZWxzZSBpZiAoZW5kc193aXRoKGtleSwgIi5tZXJnZSIpKSB7CiAJCQluYW1lID0geHN0cm5kdXAoa2V5LCBzdHJsZW4oa2V5KSAtIDYpOwogCQkJdHlwZSA9IE1FUkdFOwotCQl9IGVsc2UgaWYgKCFwb3N0Zml4Y21wKGtleSwgIi5yZWJhc2UiKSkgeworCQl9IGVsc2UgaWYgKGVuZHNfd2l0aChrZXksICIucmViYXNlIikpIHsKIAkJCW5hbWUgPSB4c3RybmR1cChrZXksIHN0cmxlbihrZXkpIC0gNyk7CiAJCQl0eXBlID0gUkVCQVNFOwogCQl9IGVsc2UKQEAgLTMwOSw4ICsyOTksMTMgQEAKIAkJCQlzcGFjZSA9IHN0cmNocih2YWx1ZSwgJyAnKTsKIAkJCX0KIAkJCXN0cmluZ19saXN0X2FwcGVuZCgmaW5mby0+bWVyZ2UsIHhzdHJkdXAodmFsdWUpKTsKLQkJfSBlbHNlCi0JCQlpbmZvLT5yZWJhc2UgPSBnaXRfY29uZmlnX2Jvb2wob3JpZ19rZXksIHZhbHVlKTsKKwkJfSBlbHNlIHsKKwkJCWludCB2ID0gZ2l0X2NvbmZpZ19tYXliZV9ib29sKG9yaWdfa2V5LCB2YWx1ZSk7CisJCQlpZiAodiA+PSAwKQorCQkJCWluZm8tPnJlYmFzZSA9IHY7CisJCQllbHNlIGlmICghc3RyY21wKHZhbHVlLCAicHJlc2VydmUiKSkKKwkJCQlpbmZvLT5yZWJhc2UgPSAxOworCQl9CiAJfQogCXJldHVybiAwOwogfQpAQCAtNTM0LDkgKzUyOSw5IEBACiAJfQogCiAJLyogZG9uJ3QgZGVsZXRlIG5vbi1yZW1vdGUtdHJhY2tpbmcgcmVmcyAqLwotCWlmIChwcmVmaXhjbXAocmVmbmFtZSwgInJlZnMvcmVtb3Rlcy8iKSkgeworCWlmICghc3RhcnRzX3dpdGgocmVmbmFtZSwgInJlZnMvcmVtb3Rlcy8iKSkgewogCQkvKiBhZHZpc2UgdXNlciBob3cgdG8gZGVsZXRlIGxvY2FsIGJyYW5jaGVzICovCi0JCWlmICghcHJlZml4Y21wKHJlZm5hbWUsICJyZWZzL2hlYWRzLyIpKQorCQlpZiAoc3RhcnRzX3dpdGgocmVmbmFtZSwgInJlZnMvaGVhZHMvIikpCiAJCQlzdHJpbmdfbGlzdF9hcHBlbmQoYnJhbmNoZXMtPnNraXBwZWQsCiAJCQkJCSAgIGFiYnJldl9icmFuY2gocmVmbmFtZSkpOwogCQkvKiBzaWxlbnRseSBza2lwIG92ZXIgb3RoZXIgbm9uLXJlbW90ZSByZWZzICovCkBAIC01NzEsNyArNTY2LDcgQEAKIAljb25zdCBjaGFyICpzeW1yZWY7CiAKIAlzdHJidWZfYWRkZigmYnVmLCAicmVmcy9yZW1vdGVzLyVzLyIsIHJlbmFtZS0+b2xkKTsKLQlpZiAoIXByZWZpeGNtcChyZWZuYW1lLCBidWYuYnVmKSkgeworCWlmIChzdGFydHNfd2l0aChyZWZuYW1lLCBidWYuYnVmKSkgewogCQlpdGVtID0gc3RyaW5nX2xpc3RfYXBwZW5kKHJlbmFtZS0+cmVtb3RlX2JyYW5jaGVzLCB4c3RyZHVwKHJlZm5hbWUpKTsKIAkJc3ltcmVmID0gcmVzb2x2ZV9yZWZfdW5zYWZlKHJlZm5hbWUsIG9yaWdfc2hhMSwgMSwgJmZsYWcpOwogCQlpZiAoZmxhZyAmIFJFRl9JU1NZTVJFRikKQEAgLTEwODQsMTEgKzEwNzksNjkgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBnZXRfb25lX2VudHJ5KHN0cnVjdCByZW1vdGUgKnJlbW90ZSwgdm9pZCAqcHJpdikKK3sKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgKmxpc3QgPSBwcml2OworCXN0cnVjdCBzdHJidWYgdXJsX2J1ZiA9IFNUUkJVRl9JTklUOworCWNvbnN0IGNoYXIgKip1cmw7CisJaW50IGksIHVybF9ucjsKKworCWlmIChyZW1vdGUtPnVybF9uciA+IDApIHsKKwkJc3RyYnVmX2FkZGYoJnVybF9idWYsICIlcyAoZmV0Y2gpIiwgcmVtb3RlLT51cmxbMF0pOworCQlzdHJpbmdfbGlzdF9hcHBlbmQobGlzdCwgcmVtb3RlLT5uYW1lKS0+dXRpbCA9CisJCQkJc3RyYnVmX2RldGFjaCgmdXJsX2J1ZiwgTlVMTCk7CisJfSBlbHNlCisJCXN0cmluZ19saXN0X2FwcGVuZChsaXN0LCByZW1vdGUtPm5hbWUpLT51dGlsID0gTlVMTDsKKwlpZiAocmVtb3RlLT5wdXNodXJsX25yKSB7CisJCXVybCA9IHJlbW90ZS0+cHVzaHVybDsKKwkJdXJsX25yID0gcmVtb3RlLT5wdXNodXJsX25yOworCX0gZWxzZSB7CisJCXVybCA9IHJlbW90ZS0+dXJsOworCQl1cmxfbnIgPSByZW1vdGUtPnVybF9ucjsKKwl9CisJZm9yIChpID0gMDsgaSA8IHVybF9ucjsgaSsrKQorCXsKKwkJc3RyYnVmX2FkZGYoJnVybF9idWYsICIlcyAocHVzaCkiLCB1cmxbaV0pOworCQlzdHJpbmdfbGlzdF9hcHBlbmQobGlzdCwgcmVtb3RlLT5uYW1lKS0+dXRpbCA9CisJCQkJc3RyYnVmX2RldGFjaCgmdXJsX2J1ZiwgTlVMTCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2hvd19hbGwodm9pZCkKK3sKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgbGlzdCA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CisJaW50IHJlc3VsdDsKKworCWxpc3Quc3RyZHVwX3N0cmluZ3MgPSAxOworCXJlc3VsdCA9IGZvcl9lYWNoX3JlbW90ZShnZXRfb25lX2VudHJ5LCAmbGlzdCk7CisKKwlpZiAoIXJlc3VsdCkgeworCQlpbnQgaTsKKworCQlzb3J0X3N0cmluZ19saXN0KCZsaXN0KTsKKwkJZm9yIChpID0gMDsgaSA8IGxpc3QubnI7IGkrKykgeworCQkJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW0gPSBsaXN0Lml0ZW1zICsgaTsKKwkJCWlmICh2ZXJib3NlKQorCQkJCXByaW50ZigiJXNcdCVzXG4iLCBpdGVtLT5zdHJpbmcsCisJCQkJCWl0ZW0tPnV0aWwgPyAoY29uc3QgY2hhciAqKWl0ZW0tPnV0aWwgOiAiIik7CisJCQllbHNlIHsKKwkJCQlpZiAoaSAmJiAhc3RyY21wKChpdGVtIC0gMSktPnN0cmluZywgaXRlbS0+c3RyaW5nKSkKKwkJCQkJY29udGludWU7CisJCQkJcHJpbnRmKCIlc1xuIiwgaXRlbS0+c3RyaW5nKTsKKwkJCX0KKwkJfQorCX0KKwlzdHJpbmdfbGlzdF9jbGVhcigmbGlzdCwgMSk7CisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGludCBzaG93KGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIHsKIAlpbnQgbm9fcXVlcnkgPSAwLCByZXN1bHQgPSAwLCBxdWVyeV9mbGFnID0gMDsKIAlzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKLQkJT1BUX0JPT0xFQU4oJ24nLCBOVUxMLCAmbm9fcXVlcnksIE5fKCJkbyBub3QgcXVlcnkgcmVtb3RlcyIpKSwKKwkJT1BUX0JPT0woJ24nLCBOVUxMLCAmbm9fcXVlcnksIE5fKCJkbyBub3QgcXVlcnkgcmVtb3RlcyIpKSwKIAkJT1BUX0VORCgpCiAJfTsKIAlzdHJ1Y3QgcmVmX3N0YXRlcyBzdGF0ZXM7CkBAIC0xMTk1LDEwICsxMjQ4LDEwIEBACiAJY2hhciAqaGVhZF9uYW1lID0gTlVMTDsKIAogCXN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0gewotCQlPUFRfQk9PTEVBTignYScsICJhdXRvIiwgJm9wdF9hLAotCQkJICAgIE5fKCJzZXQgcmVmcy9yZW1vdGVzLzxuYW1lPi9IRUFEIGFjY29yZGluZyB0byByZW1vdGUiKSksCi0JCU9QVF9CT09MRUFOKCdkJywgImRlbGV0ZSIsICZvcHRfZCwKLQkJCSAgICBOXygiZGVsZXRlIHJlZnMvcmVtb3Rlcy88bmFtZT4vSEVBRCIpKSwKKwkJT1BUX0JPT0woJ2EnLCAiYXV0byIsICZvcHRfYSwKKwkJCSBOXygic2V0IHJlZnMvcmVtb3Rlcy88bmFtZT4vSEVBRCBhY2NvcmRpbmcgdG8gcmVtb3RlIikpLAorCQlPUFRfQk9PTCgnZCcsICJkZWxldGUiLCAmb3B0X2QsCisJCQkgTl8oImRlbGV0ZSByZWZzL3JlbW90ZXMvPG5hbWU+L0hFQUQiKSksCiAJCU9QVF9FTkQoKQogCX07CiAJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgTlVMTCwgb3B0aW9ucywgYnVpbHRpbl9yZW1vdGVfc2V0aGVhZF91c2FnZSwKQEAgLTEyNDYsMjYgKzEyOTksNiBAQAogCXJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbnQgcHJ1bmUoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQotewotCWludCBkcnlfcnVuID0gMCwgcmVzdWx0ID0gMDsKLQlzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKLQkJT1BUX19EUllfUlVOKCZkcnlfcnVuLCBOXygiZHJ5IHJ1biIpKSwKLQkJT1BUX0VORCgpCi0JfTsKLQotCWFyZ2MgPSBwYXJzZV9vcHRpb25zKGFyZ2MsIGFyZ3YsIE5VTEwsIG9wdGlvbnMsIGJ1aWx0aW5fcmVtb3RlX3BydW5lX3VzYWdlLAotCQkJICAgICAwKTsKLQotCWlmIChhcmdjIDwgMSkKLQkJdXNhZ2Vfd2l0aF9vcHRpb25zKGJ1aWx0aW5fcmVtb3RlX3BydW5lX3VzYWdlLCBvcHRpb25zKTsKLQotCWZvciAoOyBhcmdjOyBhcmdjLS0sIGFyZ3YrKykKLQkJcmVzdWx0IHw9IHBydW5lX3JlbW90ZSgqYXJndiwgZHJ5X3J1bik7Ci0KLQlyZXR1cm4gcmVzdWx0OwotfQotCiBzdGF0aWMgaW50IHBydW5lX3JlbW90ZShjb25zdCBjaGFyICpyZW1vdGUsIGludCBkcnlfcnVuKQogewogCWludCByZXN1bHQgPSAwLCBpOwpAQCAtMTMwNCw2ICsxMzM3LDI2IEBACiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGludCBwcnVuZShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCit7CisJaW50IGRyeV9ydW4gPSAwLCByZXN1bHQgPSAwOworCXN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0geworCQlPUFRfX0RSWV9SVU4oJmRyeV9ydW4sIE5fKCJkcnkgcnVuIikpLAorCQlPUFRfRU5EKCkKKwl9OworCisJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgTlVMTCwgb3B0aW9ucywgYnVpbHRpbl9yZW1vdGVfcHJ1bmVfdXNhZ2UsCisJCQkgICAgIDApOworCisJaWYgKGFyZ2MgPCAxKQorCQl1c2FnZV93aXRoX29wdGlvbnMoYnVpbHRpbl9yZW1vdGVfcHJ1bmVfdXNhZ2UsIG9wdGlvbnMpOworCisJZm9yICg7IGFyZ2M7IGFyZ2MtLSwgYXJndisrKQorCQlyZXN1bHQgfD0gcHJ1bmVfcmVtb3RlKCphcmd2LCBkcnlfcnVuKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIHN0YXRpYyBpbnQgZ2V0X3JlbW90ZV9kZWZhdWx0KGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqdmFsdWUsIHZvaWQgKnByaXYpCiB7CiAJaWYgKHN0cmNtcChrZXksICJyZW1vdGVzLmRlZmF1bHQiKSA9PSAwKSB7CkBAIC0xMzE1LDQyICsxMzY4LDQyIEBACiAKIHN0YXRpYyBpbnQgdXBkYXRlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIHsKLQlpbnQgaSwgcHJ1bmUgPSAwOworCWludCBpLCBwcnVuZSA9IC0xOwogCXN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0gewotCQlPUFRfQk9PTEVBTigncCcsICJwcnVuZSIsICZwcnVuZSwKLQkJCSAgICBOXygicHJ1bmUgcmVtb3RlcyBhZnRlciBmZXRjaGluZyIpKSwKKwkJT1BUX0JPT0woJ3AnLCAicHJ1bmUiLCAmcHJ1bmUsCisJCQkgTl8oInBydW5lIHJlbW90ZXMgYWZ0ZXIgZmV0Y2hpbmciKSksCiAJCU9QVF9FTkQoKQogCX07Ci0JY29uc3QgY2hhciAqKmZldGNoX2FyZ3Y7Ci0JaW50IGZldGNoX2FyZ2MgPSAwOworCXN0cnVjdCBhcmd2X2FycmF5IGZldGNoX2FyZ3YgPSBBUkdWX0FSUkFZX0lOSVQ7CiAJaW50IGRlZmF1bHRfZGVmaW5lZCA9IDA7Ci0KLQlmZXRjaF9hcmd2ID0geG1hbGxvYyhzaXplb2YoY2hhciAqKSAqIChhcmdjKzUpKTsKKwlpbnQgcmV0dmFsOwogCiAJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgTlVMTCwgb3B0aW9ucywgYnVpbHRpbl9yZW1vdGVfdXBkYXRlX3VzYWdlLAogCQkJICAgICBQQVJTRV9PUFRfS0VFUF9BUkdWMCk7CiAKLQlmZXRjaF9hcmd2W2ZldGNoX2FyZ2MrK10gPSAiZmV0Y2giOworCWFyZ3ZfYXJyYXlfcHVzaCgmZmV0Y2hfYXJndiwgImZldGNoIik7CiAKLQlpZiAocHJ1bmUpCi0JCWZldGNoX2FyZ3ZbZmV0Y2hfYXJnYysrXSA9ICItLXBydW5lIjsKKwlpZiAocHJ1bmUgIT0gLTEpCisJCWFyZ3ZfYXJyYXlfcHVzaCgmZmV0Y2hfYXJndiwgcHJ1bmUgPyAiLS1wcnVuZSIgOiAiLS1uby1wcnVuZSIpOwogCWlmICh2ZXJib3NlKQotCQlmZXRjaF9hcmd2W2ZldGNoX2FyZ2MrK10gPSAiLXYiOwotCWZldGNoX2FyZ3ZbZmV0Y2hfYXJnYysrXSA9ICItLW11bHRpcGxlIjsKKwkJYXJndl9hcnJheV9wdXNoKCZmZXRjaF9hcmd2LCAiLXYiKTsKKwlhcmd2X2FycmF5X3B1c2goJmZldGNoX2FyZ3YsICItLW11bHRpcGxlIik7CiAJaWYgKGFyZ2MgPCAyKQotCQlmZXRjaF9hcmd2W2ZldGNoX2FyZ2MrK10gPSAiZGVmYXVsdCI7CisJCWFyZ3ZfYXJyYXlfcHVzaCgmZmV0Y2hfYXJndiwgImRlZmF1bHQiKTsKIAlmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKQotCQlmZXRjaF9hcmd2W2ZldGNoX2FyZ2MrK10gPSBhcmd2W2ldOworCQlhcmd2X2FycmF5X3B1c2goJmZldGNoX2FyZ3YsIGFyZ3ZbaV0pOwogCi0JaWYgKHN0cmNtcChmZXRjaF9hcmd2W2ZldGNoX2FyZ2MtMV0sICJkZWZhdWx0IikgPT0gMCkgeworCWlmIChzdHJjbXAoZmV0Y2hfYXJndi5hcmd2W2ZldGNoX2FyZ3YuYXJnYy0xXSwgImRlZmF1bHQiKSA9PSAwKSB7CiAJCWdpdF9jb25maWcoZ2V0X3JlbW90ZV9kZWZhdWx0LCAmZGVmYXVsdF9kZWZpbmVkKTsKLQkJaWYgKCFkZWZhdWx0X2RlZmluZWQpCi0JCQlmZXRjaF9hcmd2W2ZldGNoX2FyZ2MtMV0gPSAiLS1hbGwiOworCQlpZiAoIWRlZmF1bHRfZGVmaW5lZCkgeworCQkJYXJndl9hcnJheV9wb3AoJmZldGNoX2FyZ3YpOworCQkJYXJndl9hcnJheV9wdXNoKCZmZXRjaF9hcmd2LCAiLS1hbGwiKTsKKwkJfQogCX0KIAotCWZldGNoX2FyZ3ZbZmV0Y2hfYXJnY10gPSBOVUxMOwotCi0JcmV0dXJuIHJ1bl9jb21tYW5kX3Zfb3B0KGZldGNoX2FyZ3YsIFJVTl9HSVRfQ01EKTsKKwlyZXR2YWwgPSBydW5fY29tbWFuZF92X29wdChmZXRjaF9hcmd2LmFyZ3YsIFJVTl9HSVRfQ01EKTsKKwlhcmd2X2FycmF5X2NsZWFyKCZmZXRjaF9hcmd2KTsKKwlyZXR1cm4gcmV0dmFsOwogfQogCiBzdGF0aWMgaW50IHJlbW92ZV9hbGxfZmV0Y2hfcmVmc3BlY3MoY29uc3QgY2hhciAqcmVtb3RlLCBjb25zdCBjaGFyICprZXkpCkBAIC0xNDA0LDcgKzE0NTcsNyBAQAogewogCWludCBhZGRfbW9kZSA9IDA7CiAJc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7Ci0JCU9QVF9CT09MRUFOKCdcMCcsICJhZGQiLCAmYWRkX21vZGUsIE5fKCJhZGQgYnJhbmNoIikpLAorCQlPUFRfQk9PTCgnXDAnLCAiYWRkIiwgJmFkZF9tb2RlLCBOXygiYWRkIGJyYW5jaCIpKSwKIAkJT1BUX0VORCgpCiAJfTsKIApAQCAtMTQzMiwxMSArMTQ4NSwxMSBAQAogCWludCB1cmxzZXRfbnI7CiAJc3RydWN0IHN0cmJ1ZiBuYW1lX2J1ZiA9IFNUUkJVRl9JTklUOwogCXN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0gewotCQlPUFRfQk9PTEVBTignXDAnLCAicHVzaCIsICZwdXNoX21vZGUsCi0JCQkgICAgTl8oIm1hbmlwdWxhdGUgcHVzaCBVUkxzIikpLAotCQlPUFRfQk9PTEVBTignXDAnLCAiYWRkIiwgJmFkZF9tb2RlLAotCQkJICAgIE5fKCJhZGQgVVJMIikpLAotCQlPUFRfQk9PTEVBTignXDAnLCAiZGVsZXRlIiwgJmRlbGV0ZV9tb2RlLAorCQlPUFRfQk9PTCgnXDAnLCAicHVzaCIsICZwdXNoX21vZGUsCisJCQkgTl8oIm1hbmlwdWxhdGUgcHVzaCBVUkxzIikpLAorCQlPUFRfQk9PTCgnXDAnLCAiYWRkIiwgJmFkZF9tb2RlLAorCQkJIE5fKCJhZGQgVVJMIikpLAorCQlPUFRfQk9PTCgnXDAnLCAiZGVsZXRlIiwgJmRlbGV0ZV9tb2RlLAogCQkJICAgIE5fKCJkZWxldGUgVVJMcyIpKSwKIAkJT1BUX0VORCgpCiAJfTsKQEAgLTE1MDUsNjQgKzE1NTgsNiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGdldF9vbmVfZW50cnkoc3RydWN0IHJlbW90ZSAqcmVtb3RlLCB2b2lkICpwcml2KQotewotCXN0cnVjdCBzdHJpbmdfbGlzdCAqbGlzdCA9IHByaXY7Ci0Jc3RydWN0IHN0cmJ1ZiB1cmxfYnVmID0gU1RSQlVGX0lOSVQ7Ci0JY29uc3QgY2hhciAqKnVybDsKLQlpbnQgaSwgdXJsX25yOwotCi0JaWYgKHJlbW90ZS0+dXJsX25yID4gMCkgewotCQlzdHJidWZfYWRkZigmdXJsX2J1ZiwgIiVzIChmZXRjaCkiLCByZW1vdGUtPnVybFswXSk7Ci0JCXN0cmluZ19saXN0X2FwcGVuZChsaXN0LCByZW1vdGUtPm5hbWUpLT51dGlsID0KLQkJCQlzdHJidWZfZGV0YWNoKCZ1cmxfYnVmLCBOVUxMKTsKLQl9IGVsc2UKLQkJc3RyaW5nX2xpc3RfYXBwZW5kKGxpc3QsIHJlbW90ZS0+bmFtZSktPnV0aWwgPSBOVUxMOwotCWlmIChyZW1vdGUtPnB1c2h1cmxfbnIpIHsKLQkJdXJsID0gcmVtb3RlLT5wdXNodXJsOwotCQl1cmxfbnIgPSByZW1vdGUtPnB1c2h1cmxfbnI7Ci0JfSBlbHNlIHsKLQkJdXJsID0gcmVtb3RlLT51cmw7Ci0JCXVybF9uciA9IHJlbW90ZS0+dXJsX25yOwotCX0KLQlmb3IgKGkgPSAwOyBpIDwgdXJsX25yOyBpKyspCi0JewotCQlzdHJidWZfYWRkZigmdXJsX2J1ZiwgIiVzIChwdXNoKSIsIHVybFtpXSk7Ci0JCXN0cmluZ19saXN0X2FwcGVuZChsaXN0LCByZW1vdGUtPm5hbWUpLT51dGlsID0KLQkJCQlzdHJidWZfZGV0YWNoKCZ1cmxfYnVmLCBOVUxMKTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzaG93X2FsbCh2b2lkKQotewotCXN0cnVjdCBzdHJpbmdfbGlzdCBsaXN0ID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKLQlpbnQgcmVzdWx0OwotCi0JbGlzdC5zdHJkdXBfc3RyaW5ncyA9IDE7Ci0JcmVzdWx0ID0gZm9yX2VhY2hfcmVtb3RlKGdldF9vbmVfZW50cnksICZsaXN0KTsKLQotCWlmICghcmVzdWx0KSB7Ci0JCWludCBpOwotCi0JCXNvcnRfc3RyaW5nX2xpc3QoJmxpc3QpOwotCQlmb3IgKGkgPSAwOyBpIDwgbGlzdC5ucjsgaSsrKSB7Ci0JCQlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbSA9IGxpc3QuaXRlbXMgKyBpOwotCQkJaWYgKHZlcmJvc2UpCi0JCQkJcHJpbnRmKCIlc1x0JXNcbiIsIGl0ZW0tPnN0cmluZywKLQkJCQkJaXRlbS0+dXRpbCA/IChjb25zdCBjaGFyICopaXRlbS0+dXRpbCA6ICIiKTsKLQkJCWVsc2UgewotCQkJCWlmIChpICYmICFzdHJjbXAoKGl0ZW0gLSAxKS0+c3RyaW5nLCBpdGVtLT5zdHJpbmcpKQotCQkJCQljb250aW51ZTsKLQkJCQlwcmludGYoIiVzXG4iLCBpdGVtLT5zdHJpbmcpOwotCQkJfQotCQl9Ci0JfQotCXN0cmluZ19saXN0X2NsZWFyKCZsaXN0LCAxKTsKLQlyZXR1cm4gcmVzdWx0OwotfQotCiBpbnQgY21kX3JlbW90ZShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKIHsKIAlzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmVwYWNrLmMgYi9idWlsdGluL3JlcGFjay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyODQ4NDYKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsdGluL3JlcGFjay5jCkBAIC0wLDAgKzEsMzg2IEBACisjaW5jbHVkZSAiYnVpbHRpbi5oIgorI2luY2x1ZGUgImNhY2hlLmgiCisjaW5jbHVkZSAiZGlyLmgiCisjaW5jbHVkZSAicGFyc2Utb3B0aW9ucy5oIgorI2luY2x1ZGUgInJ1bi1jb21tYW5kLmgiCisjaW5jbHVkZSAic2lnY2hhaW4uaCIKKyNpbmNsdWRlICJzdHJidWYuaCIKKyNpbmNsdWRlICJzdHJpbmctbGlzdC5oIgorI2luY2x1ZGUgImFyZ3YtYXJyYXkuaCIKKworc3RhdGljIGludCBkZWx0YV9iYXNlX29mZnNldCA9IDE7CitzdGF0aWMgY2hhciAqcGFja2RpciwgKnBhY2t0bXA7CisKK3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBnaXRfcmVwYWNrX3VzYWdlW10gPSB7CisJTl8oImdpdCByZXBhY2sgW29wdGlvbnNdIiksCisJTlVMTAorfTsKKworc3RhdGljIGludCByZXBhY2tfY29uZmlnKGNvbnN0IGNoYXIgKnZhciwgY29uc3QgY2hhciAqdmFsdWUsIHZvaWQgKmNiKQoreworCWlmICghc3RyY21wKHZhciwgInJlcGFjay51c2VkZWx0YWJhc2VvZmZzZXQiKSkgeworCQlkZWx0YV9iYXNlX29mZnNldCA9IGdpdF9jb25maWdfYm9vbCh2YXIsIHZhbHVlKTsKKwkJcmV0dXJuIDA7CisJfQorCXJldHVybiBnaXRfZGVmYXVsdF9jb25maWcodmFyLCB2YWx1ZSwgY2IpOworfQorCisvKgorICogUmVtb3ZlIHRlbXBvcmFyeSAkR0lUX09CSkVDVF9ESVJFQ1RPUlkvcGFjay8udG1wLSQkLXBhY2stKiBmaWxlcy4KKyAqLworc3RhdGljIHZvaWQgcmVtb3ZlX3RlbXBvcmFyeV9maWxlcyh2b2lkKQoreworCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CisJc2l6ZV90IGRpcmxlbiwgcHJlZml4bGVuOworCURJUiAqZGlyOworCXN0cnVjdCBkaXJlbnQgKmU7CisKKwlkaXIgPSBvcGVuZGlyKHBhY2tkaXIpOworCWlmICghZGlyKQorCQlyZXR1cm47CisKKwkvKiBQb2ludCBhdCB0aGUgc2xhc2ggYXQgdGhlIGVuZCBvZiAiLi4uL29iamVjdHMvcGFjay8iICovCisJZGlybGVuID0gc3RybGVuKHBhY2tkaXIpICsgMTsKKwlzdHJidWZfYWRkc3RyKCZidWYsIHBhY2t0bXApOworCS8qIEhvbGQgdGhlIGxlbmd0aCBvZiAgIi50bXAtJWQtcGFjay0iICovCisJcHJlZml4bGVuID0gYnVmLmxlbiAtIGRpcmxlbjsKKworCXdoaWxlICgoZSA9IHJlYWRkaXIoZGlyKSkpIHsKKwkJaWYgKHN0cm5jbXAoZS0+ZF9uYW1lLCBidWYuYnVmICsgZGlybGVuLCBwcmVmaXhsZW4pKQorCQkJY29udGludWU7CisJCXN0cmJ1Zl9zZXRsZW4oJmJ1ZiwgZGlybGVuKTsKKwkJc3RyYnVmX2FkZHN0cigmYnVmLCBlLT5kX25hbWUpOworCQl1bmxpbmsoYnVmLmJ1Zik7CisJfQorCWNsb3NlZGlyKGRpcik7CisJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZV9wYWNrX29uX3NpZ25hbChpbnQgc2lnbm8pCit7CisJcmVtb3ZlX3RlbXBvcmFyeV9maWxlcygpOworCXNpZ2NoYWluX3BvcChzaWdubyk7CisJcmFpc2Uoc2lnbm8pOworfQorCisvKgorICogQWRkcyBhbGwgcGFja3MgaGV4IHN0cmluZ3MgdG8gdGhlIGZuYW1lIGxpc3QsIHdoaWNoIGRvIG5vdAorICogaGF2ZSBhIGNvcnJlc3BvbmRpbmcgLmtlZXAgZmlsZS4KKyAqLworc3RhdGljIHZvaWQgZ2V0X25vbl9rZXB0X3BhY2tfZmlsZW5hbWVzKHN0cnVjdCBzdHJpbmdfbGlzdCAqZm5hbWVfbGlzdCkKK3sKKwlESVIgKmRpcjsKKwlzdHJ1Y3QgZGlyZW50ICplOworCWNoYXIgKmZuYW1lOworCXNpemVfdCBsZW47CisKKwlpZiAoIShkaXIgPSBvcGVuZGlyKHBhY2tkaXIpKSkKKwkJcmV0dXJuOworCisJd2hpbGUgKChlID0gcmVhZGRpcihkaXIpKSAhPSBOVUxMKSB7CisJCWlmICghZW5kc193aXRoKGUtPmRfbmFtZSwgIi5wYWNrIikpCisJCQljb250aW51ZTsKKworCQlsZW4gPSBzdHJsZW4oZS0+ZF9uYW1lKSAtIHN0cmxlbigiLnBhY2siKTsKKwkJZm5hbWUgPSB4bWVtZHVweihlLT5kX25hbWUsIGxlbik7CisKKwkJaWYgKCFmaWxlX2V4aXN0cyhta3BhdGgoIiVzLyVzLmtlZXAiLCBwYWNrZGlyLCBmbmFtZSkpKQorCQkJc3RyaW5nX2xpc3RfYXBwZW5kX25vZHVwKGZuYW1lX2xpc3QsIGZuYW1lKTsKKwkJZWxzZQorCQkJZnJlZShmbmFtZSk7CisJfQorCWNsb3NlZGlyKGRpcik7Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZV9yZWR1bmRhbnRfcGFjayhjb25zdCBjaGFyICpkaXJfbmFtZSwgY29uc3QgY2hhciAqYmFzZV9uYW1lKQoreworCWNvbnN0IGNoYXIgKmV4dHNbXSA9IHsiLnBhY2siLCAiLmlkeCIsICIua2VlcCJ9OworCWludCBpOworCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CisJc2l6ZV90IHBsZW47CisKKwlzdHJidWZfYWRkZigmYnVmLCAiJXMvJXMiLCBkaXJfbmFtZSwgYmFzZV9uYW1lKTsKKwlwbGVuID0gYnVmLmxlbjsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGV4dHMpOyBpKyspIHsKKwkJc3RyYnVmX3NldGxlbigmYnVmLCBwbGVuKTsKKwkJc3RyYnVmX2FkZHN0cigmYnVmLCBleHRzW2ldKTsKKwkJdW5saW5rKGJ1Zi5idWYpOworCX0KKwlzdHJidWZfcmVsZWFzZSgmYnVmKTsKK30KKworI2RlZmluZSBBTExfSU5UT19PTkUgMQorI2RlZmluZSBMT09TRU5fVU5SRUFDSEFCTEUgMgorCitpbnQgY21kX3JlcGFjayhpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKK3sKKwljb25zdCBjaGFyICpleHRzWzJdID0geyIucGFjayIsICIuaWR4In07CisJc3RydWN0IGNoaWxkX3Byb2Nlc3MgY21kOworCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtOworCXN0cnVjdCBhcmd2X2FycmF5IGNtZF9hcmdzID0gQVJHVl9BUlJBWV9JTklUOworCXN0cnVjdCBzdHJpbmdfbGlzdCBuYW1lcyA9IFNUUklOR19MSVNUX0lOSVRfRFVQOworCXN0cnVjdCBzdHJpbmdfbGlzdCByb2xsYmFjayA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CisJc3RydWN0IHN0cmluZ19saXN0IGV4aXN0aW5nX3BhY2tzID0gU1RSSU5HX0xJU1RfSU5JVF9EVVA7CisJc3RydWN0IHN0cmJ1ZiBsaW5lID0gU1RSQlVGX0lOSVQ7CisJaW50IGV4dCwgcmV0LCBmYWlsZWQ7CisJRklMRSAqb3V0OworCisJLyogdmFyaWFibGVzIHRvIGJlIGZpbGxlZCBieSBvcHRpb24gcGFyc2luZyAqLworCWludCBwYWNrX2V2ZXJ5dGhpbmcgPSAwOworCWludCBkZWxldGVfcmVkdW5kYW50ID0gMDsKKwljb25zdCBjaGFyICp1bnBhY2tfdW5yZWFjaGFibGUgPSBOVUxMOworCWNvbnN0IGNoYXIgKndpbmRvdyA9IE5VTEwsICp3aW5kb3dfbWVtb3J5ID0gTlVMTDsKKwljb25zdCBjaGFyICpkZXB0aCA9IE5VTEw7CisJY29uc3QgY2hhciAqbWF4X3BhY2tfc2l6ZSA9IE5VTEw7CisJaW50IG5vX3JldXNlX2RlbHRhID0gMCwgbm9fcmV1c2Vfb2JqZWN0ID0gMDsKKwlpbnQgbm9fdXBkYXRlX3NlcnZlcl9pbmZvID0gMDsKKwlpbnQgcXVpZXQgPSAwOworCWludCBsb2NhbCA9IDA7CisKKwlzdHJ1Y3Qgb3B0aW9uIGJ1aWx0aW5fcmVwYWNrX29wdGlvbnNbXSA9IHsKKwkJT1BUX0JJVCgnYScsIE5VTEwsICZwYWNrX2V2ZXJ5dGhpbmcsCisJCQkJTl8oInBhY2sgZXZlcnl0aGluZyBpbiBhIHNpbmdsZSBwYWNrIiksIEFMTF9JTlRPX09ORSksCisJCU9QVF9CSVQoJ0EnLCBOVUxMLCAmcGFja19ldmVyeXRoaW5nLAorCQkJCU5fKCJzYW1lIGFzIC1hLCBhbmQgdHVybiB1bnJlYWNoYWJsZSBvYmplY3RzIGxvb3NlIiksCisJCQkJICAgTE9PU0VOX1VOUkVBQ0hBQkxFIHwgQUxMX0lOVE9fT05FKSwKKwkJT1BUX0JPT0woJ2QnLCBOVUxMLCAmZGVsZXRlX3JlZHVuZGFudCwKKwkJCQlOXygicmVtb3ZlIHJlZHVuZGFudCBwYWNrcywgYW5kIHJ1biBnaXQtcHJ1bmUtcGFja2VkIikpLAorCQlPUFRfQk9PTCgnZicsIE5VTEwsICZub19yZXVzZV9kZWx0YSwKKwkJCQlOXygicGFzcyAtLW5vLXJldXNlLWRlbHRhIHRvIGdpdC1wYWNrLW9iamVjdHMiKSksCisJCU9QVF9CT09MKCdGJywgTlVMTCwgJm5vX3JldXNlX29iamVjdCwKKwkJCQlOXygicGFzcyAtLW5vLXJldXNlLW9iamVjdCB0byBnaXQtcGFjay1vYmplY3RzIikpLAorCQlPUFRfQk9PTCgnbicsIE5VTEwsICZub191cGRhdGVfc2VydmVyX2luZm8sCisJCQkJTl8oImRvIG5vdCBydW4gZ2l0LXVwZGF0ZS1zZXJ2ZXItaW5mbyIpKSwKKwkJT1BUX19RVUlFVCgmcXVpZXQsIE5fKCJiZSBxdWlldCIpKSwKKwkJT1BUX0JPT0woJ2wnLCAibG9jYWwiLCAmbG9jYWwsCisJCQkJTl8oInBhc3MgLS1sb2NhbCB0byBnaXQtcGFjay1vYmplY3RzIikpLAorCQlPUFRfU1RSSU5HKDAsICJ1bnBhY2stdW5yZWFjaGFibGUiLCAmdW5wYWNrX3VucmVhY2hhYmxlLCBOXygiYXBwcm94aWRhdGUiKSwKKwkJCQlOXygid2l0aCAtQSwgZG8gbm90IGxvb3NlbiBvYmplY3RzIG9sZGVyIHRoYW4gdGhpcyIpKSwKKwkJT1BUX1NUUklORygwLCAid2luZG93IiwgJndpbmRvdywgTl8oIm4iKSwKKwkJCQlOXygic2l6ZSBvZiB0aGUgd2luZG93IHVzZWQgZm9yIGRlbHRhIGNvbXByZXNzaW9uIikpLAorCQlPUFRfU1RSSU5HKDAsICJ3aW5kb3ctbWVtb3J5IiwgJndpbmRvd19tZW1vcnksIE5fKCJieXRlcyIpLAorCQkJCU5fKCJzYW1lIGFzIHRoZSBhYm92ZSwgYnV0IGxpbWl0IG1lbW9yeSBzaXplIGluc3RlYWQgb2YgZW50cmllcyBjb3VudCIpKSwKKwkJT1BUX1NUUklORygwLCAiZGVwdGgiLCAmZGVwdGgsIE5fKCJuIiksCisJCQkJTl8oImxpbWl0cyB0aGUgbWF4aW11bSBkZWx0YSBkZXB0aCIpKSwKKwkJT1BUX1NUUklORygwLCAibWF4LXBhY2stc2l6ZSIsICZtYXhfcGFja19zaXplLCBOXygiYnl0ZXMiKSwKKwkJCQlOXygibWF4aW11bSBzaXplIG9mIGVhY2ggcGFja2ZpbGUiKSksCisJCU9QVF9FTkQoKQorCX07CisKKwlnaXRfY29uZmlnKHJlcGFja19jb25maWcsIE5VTEwpOworCisJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgcHJlZml4LCBidWlsdGluX3JlcGFja19vcHRpb25zLAorCQkJCWdpdF9yZXBhY2tfdXNhZ2UsIDApOworCisJcGFja2RpciA9IG1rcGF0aGR1cCgiJXMvcGFjayIsIGdldF9vYmplY3RfZGlyZWN0b3J5KCkpOworCXBhY2t0bXAgPSBta3BhdGhkdXAoIiVzLy50bXAtJWQtcGFjayIsIHBhY2tkaXIsIChpbnQpZ2V0cGlkKCkpOworCisJc2lnY2hhaW5fcHVzaF9jb21tb24ocmVtb3ZlX3BhY2tfb25fc2lnbmFsKTsKKworCWFyZ3ZfYXJyYXlfcHVzaCgmY21kX2FyZ3MsICJwYWNrLW9iamVjdHMiKTsKKwlhcmd2X2FycmF5X3B1c2goJmNtZF9hcmdzLCAiLS1rZWVwLXRydWUtcGFyZW50cyIpOworCWFyZ3ZfYXJyYXlfcHVzaCgmY21kX2FyZ3MsICItLWhvbm9yLXBhY2sta2VlcCIpOworCWFyZ3ZfYXJyYXlfcHVzaCgmY21kX2FyZ3MsICItLW5vbi1lbXB0eSIpOworCWFyZ3ZfYXJyYXlfcHVzaCgmY21kX2FyZ3MsICItLWFsbCIpOworCWFyZ3ZfYXJyYXlfcHVzaCgmY21kX2FyZ3MsICItLXJlZmxvZyIpOworCWlmICh3aW5kb3cpCisJCWFyZ3ZfYXJyYXlfcHVzaGYoJmNtZF9hcmdzLCAiLS13aW5kb3c9JXMiLCB3aW5kb3cpOworCWlmICh3aW5kb3dfbWVtb3J5KQorCQlhcmd2X2FycmF5X3B1c2hmKCZjbWRfYXJncywgIi0td2luZG93LW1lbW9yeT0lcyIsIHdpbmRvd19tZW1vcnkpOworCWlmIChkZXB0aCkKKwkJYXJndl9hcnJheV9wdXNoZigmY21kX2FyZ3MsICItLWRlcHRoPSVzIiwgZGVwdGgpOworCWlmIChtYXhfcGFja19zaXplKQorCQlhcmd2X2FycmF5X3B1c2hmKCZjbWRfYXJncywgIi0tbWF4LXBhY2stc2l6ZT0lcyIsIG1heF9wYWNrX3NpemUpOworCWlmIChub19yZXVzZV9kZWx0YSkKKwkJYXJndl9hcnJheV9wdXNoZigmY21kX2FyZ3MsICItLW5vLXJldXNlLWRlbHRhIik7CisJaWYgKG5vX3JldXNlX29iamVjdCkKKwkJYXJndl9hcnJheV9wdXNoZigmY21kX2FyZ3MsICItLW5vLXJldXNlLW9iamVjdCIpOworCisJaWYgKHBhY2tfZXZlcnl0aGluZyAmIEFMTF9JTlRPX09ORSkgeworCQlnZXRfbm9uX2tlcHRfcGFja19maWxlbmFtZXMoJmV4aXN0aW5nX3BhY2tzKTsKKworCQlpZiAoZXhpc3RpbmdfcGFja3MubnIgJiYgZGVsZXRlX3JlZHVuZGFudCkgeworCQkJaWYgKHVucGFja191bnJlYWNoYWJsZSkKKwkJCQlhcmd2X2FycmF5X3B1c2hmKCZjbWRfYXJncywKKwkJCQkJCSItLXVucGFjay11bnJlYWNoYWJsZT0lcyIsCisJCQkJCQl1bnBhY2tfdW5yZWFjaGFibGUpOworCQkJZWxzZSBpZiAocGFja19ldmVyeXRoaW5nICYgTE9PU0VOX1VOUkVBQ0hBQkxFKQorCQkJCWFyZ3ZfYXJyYXlfcHVzaCgmY21kX2FyZ3MsCisJCQkJCQkiLS11bnBhY2stdW5yZWFjaGFibGUiKTsKKwkJfQorCX0gZWxzZSB7CisJCWFyZ3ZfYXJyYXlfcHVzaCgmY21kX2FyZ3MsICItLXVucGFja2VkIik7CisJCWFyZ3ZfYXJyYXlfcHVzaCgmY21kX2FyZ3MsICItLWluY3JlbWVudGFsIik7CisJfQorCisJaWYgKGxvY2FsKQorCQlhcmd2X2FycmF5X3B1c2goJmNtZF9hcmdzLCAgIi0tbG9jYWwiKTsKKwlpZiAocXVpZXQpCisJCWFyZ3ZfYXJyYXlfcHVzaCgmY21kX2FyZ3MsICAiLS1xdWlldCIpOworCWlmIChkZWx0YV9iYXNlX29mZnNldCkKKwkJYXJndl9hcnJheV9wdXNoKCZjbWRfYXJncywgICItLWRlbHRhLWJhc2Utb2Zmc2V0Iik7CisKKwlhcmd2X2FycmF5X3B1c2goJmNtZF9hcmdzLCBwYWNrdG1wKTsKKworCW1lbXNldCgmY21kLCAwLCBzaXplb2YoY21kKSk7CisJY21kLmFyZ3YgPSBjbWRfYXJncy5hcmd2OworCWNtZC5naXRfY21kID0gMTsKKwljbWQub3V0ID0gLTE7CisJY21kLm5vX3N0ZGluID0gMTsKKworCXJldCA9IHN0YXJ0X2NvbW1hbmQoJmNtZCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCW91dCA9IHhmZG9wZW4oY21kLm91dCwgInIiKTsKKwl3aGlsZSAoc3RyYnVmX2dldGxpbmUoJmxpbmUsIG91dCwgJ1xuJykgIT0gRU9GKSB7CisJCWlmIChsaW5lLmxlbiAhPSA0MCkKKwkJCWRpZSgicmVwYWNrOiBFeHBlY3RpbmcgNDAgY2hhcmFjdGVyIHNoYTEgbGluZXMgb25seSBmcm9tIHBhY2stb2JqZWN0cy4iKTsKKwkJc3RyaW5nX2xpc3RfYXBwZW5kKCZuYW1lcywgbGluZS5idWYpOworCX0KKwlmY2xvc2Uob3V0KTsKKwlyZXQgPSBmaW5pc2hfY29tbWFuZCgmY21kKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCWFyZ3ZfYXJyYXlfY2xlYXIoJmNtZF9hcmdzKTsKKworCWlmICghbmFtZXMubnIgJiYgIXF1aWV0KQorCQlwcmludGYoIk5vdGhpbmcgbmV3IHRvIHBhY2suXG4iKTsKKworCS8qCisJICogT2sgd2UgaGF2ZSBwcmVwYXJlZCBhbGwgbmV3IHBhY2tmaWxlcy4KKwkgKiBGaXJzdCBzZWUgaWYgdGhlcmUgYXJlIHBhY2tzIG9mIHRoZSBzYW1lIG5hbWUgYW5kIGlmIHNvCisJICogaWYgd2UgY2FuIG1vdmUgdGhlbSBvdXQgb2YgdGhlIHdheSAodGhpcyBjYW4gaGFwcGVuIGlmIHdlCisJICogcmVwYWNrZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgcGFja2luZyBmdWxseS4KKwkgKi8KKwlmYWlsZWQgPSAwOworCWZvcl9lYWNoX3N0cmluZ19saXN0X2l0ZW0oaXRlbSwgJm5hbWVzKSB7CisJCWZvciAoZXh0ID0gMDsgZXh0IDwgMjsgZXh0KyspIHsKKwkJCWNoYXIgKmZuYW1lLCAqZm5hbWVfb2xkOworCQkJZm5hbWUgPSBta3BhdGhkdXAoIiVzLyVzJXMiLCBwYWNrZGlyLAorCQkJCQkJaXRlbS0+c3RyaW5nLCBleHRzW2V4dF0pOworCQkJaWYgKCFmaWxlX2V4aXN0cyhmbmFtZSkpIHsKKwkJCQlmcmVlKGZuYW1lKTsKKwkJCQljb250aW51ZTsKKwkJCX0KKworCQkJZm5hbWVfb2xkID0gbWtwYXRoKCIlcy9vbGQtJXMlcyIsIHBhY2tkaXIsCisJCQkJCQlpdGVtLT5zdHJpbmcsIGV4dHNbZXh0XSk7CisJCQlpZiAoZmlsZV9leGlzdHMoZm5hbWVfb2xkKSkKKwkJCQlpZiAodW5saW5rKGZuYW1lX29sZCkpCisJCQkJCWZhaWxlZCA9IDE7CisKKwkJCWlmICghZmFpbGVkICYmIHJlbmFtZShmbmFtZSwgZm5hbWVfb2xkKSkgeworCQkJCWZyZWUoZm5hbWUpOworCQkJCWZhaWxlZCA9IDE7CisJCQkJYnJlYWs7CisJCQl9IGVsc2UgeworCQkJCXN0cmluZ19saXN0X2FwcGVuZCgmcm9sbGJhY2ssIGZuYW1lKTsKKwkJCX0KKwkJfQorCQlpZiAoZmFpbGVkKQorCQkJYnJlYWs7CisJfQorCWlmIChmYWlsZWQpIHsKKwkJc3RydWN0IHN0cmluZ19saXN0IHJvbGxiYWNrX2ZhaWx1cmUgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKKwkJZm9yX2VhY2hfc3RyaW5nX2xpc3RfaXRlbShpdGVtLCAmcm9sbGJhY2spIHsKKwkJCWNoYXIgKmZuYW1lLCAqZm5hbWVfb2xkOworCQkJZm5hbWUgPSBta3BhdGhkdXAoIiVzLyVzIiwgcGFja2RpciwgaXRlbS0+c3RyaW5nKTsKKwkJCWZuYW1lX29sZCA9IG1rcGF0aCgiJXMvb2xkLSVzIiwgcGFja2RpciwgaXRlbS0+c3RyaW5nKTsKKwkJCWlmIChyZW5hbWUoZm5hbWVfb2xkLCBmbmFtZSkpCisJCQkJc3RyaW5nX2xpc3RfYXBwZW5kKCZyb2xsYmFja19mYWlsdXJlLCBmbmFtZSk7CisJCQlmcmVlKGZuYW1lKTsKKwkJfQorCisJCWlmIChyb2xsYmFja19mYWlsdXJlLm5yKSB7CisJCQlpbnQgaTsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCSJXQVJOSU5HOiBTb21lIHBhY2tzIGluIHVzZSBoYXZlIGJlZW4gcmVuYW1lZCBieVxuIgorCQkJCSJXQVJOSU5HOiBwcmVmaXhpbmcgb2xkLSB0byB0aGVpciBuYW1lLCBpbiBvcmRlciB0b1xuIgorCQkJCSJXQVJOSU5HOiByZXBsYWNlIHRoZW0gd2l0aCB0aGUgbmV3IHZlcnNpb24gb2YgdGhlXG4iCisJCQkJIldBUk5JTkc6IGZpbGUuICBCdXQgdGhlIG9wZXJhdGlvbiBmYWlsZWQsIGFuZCB0aGVcbiIKKwkJCQkiV0FSTklORzogYXR0ZW1wdCB0byByZW5hbWUgdGhlbSBiYWNrIHRvIHRoZWlyXG4iCisJCQkJIldBUk5JTkc6IG9yaWdpbmFsIG5hbWVzIGFsc28gZmFpbGVkLlxuIgorCQkJCSJXQVJOSU5HOiBQbGVhc2UgcmVuYW1lIHRoZW0gaW4gJXMgbWFudWFsbHk6XG4iLCBwYWNrZGlyKTsKKwkJCWZvciAoaSA9IDA7IGkgPCByb2xsYmFja19mYWlsdXJlLm5yOyBpKyspCisJCQkJZnByaW50ZihzdGRlcnIsICJXQVJOSU5HOiAgIG9sZC0lcyAtPiAlc1xuIiwKKwkJCQkJcm9sbGJhY2tfZmFpbHVyZS5pdGVtc1tpXS5zdHJpbmcsCisJCQkJCXJvbGxiYWNrX2ZhaWx1cmUuaXRlbXNbaV0uc3RyaW5nKTsKKwkJfQorCQlleGl0KDEpOworCX0KKworCS8qIE5vdyB0aGUgb25lcyB3aXRoIHRoZSBzYW1lIG5hbWUgYXJlIG91dCBvZiB0aGUgd2F5Li4uICovCisJZm9yX2VhY2hfc3RyaW5nX2xpc3RfaXRlbShpdGVtLCAmbmFtZXMpIHsKKwkJZm9yIChleHQgPSAwOyBleHQgPCAyOyBleHQrKykgeworCQkJY2hhciAqZm5hbWUsICpmbmFtZV9vbGQ7CisJCQlzdHJ1Y3Qgc3RhdCBzdGF0YnVmZmVyOworCQkJZm5hbWUgPSBta3BhdGhkdXAoIiVzL3BhY2stJXMlcyIsCisJCQkJCXBhY2tkaXIsIGl0ZW0tPnN0cmluZywgZXh0c1tleHRdKTsKKwkJCWZuYW1lX29sZCA9IG1rcGF0aGR1cCgiJXMtJXMlcyIsCisJCQkJCXBhY2t0bXAsIGl0ZW0tPnN0cmluZywgZXh0c1tleHRdKTsKKwkJCWlmICghc3RhdChmbmFtZV9vbGQsICZzdGF0YnVmZmVyKSkgeworCQkJCXN0YXRidWZmZXIuc3RfbW9kZSAmPSB+KFNfSVdVU1IgfCBTX0lXR1JQIHwgU19JV09USCk7CisJCQkJY2htb2QoZm5hbWVfb2xkLCBzdGF0YnVmZmVyLnN0X21vZGUpOworCQkJfQorCQkJaWYgKHJlbmFtZShmbmFtZV9vbGQsIGZuYW1lKSkKKwkJCQlkaWVfZXJybm8oXygicmVuYW1pbmcgJyVzJyBmYWlsZWQiKSwgZm5hbWVfb2xkKTsKKwkJCWZyZWUoZm5hbWUpOworCQkJZnJlZShmbmFtZV9vbGQpOworCQl9CisJfQorCisJLyogUmVtb3ZlIHRoZSAib2xkLSIgZmlsZXMgKi8KKwlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKGl0ZW0sICZuYW1lcykgeworCQlmb3IgKGV4dCA9IDA7IGV4dCA8IDI7IGV4dCsrKSB7CisJCQljaGFyICpmbmFtZTsKKwkJCWZuYW1lID0gbWtwYXRoKCIlcy9vbGQtcGFjay0lcyVzIiwKKwkJCQkJcGFja2RpciwKKwkJCQkJaXRlbS0+c3RyaW5nLAorCQkJCQlleHRzW2V4dF0pOworCQkJaWYgKHJlbW92ZV9wYXRoKGZuYW1lKSkKKwkJCQl3YXJuaW5nKF8oInJlbW92aW5nICclcycgZmFpbGVkIiksIGZuYW1lKTsKKwkJfQorCX0KKworCS8qIEVuZCBvZiBwYWNrIHJlcGxhY2VtZW50LiAqLworCisJaWYgKGRlbGV0ZV9yZWR1bmRhbnQpIHsKKwkJc29ydF9zdHJpbmdfbGlzdCgmbmFtZXMpOworCQlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKGl0ZW0sICZleGlzdGluZ19wYWNrcykgeworCQkJY2hhciAqc2hhMTsKKwkJCXNpemVfdCBsZW4gPSBzdHJsZW4oaXRlbS0+c3RyaW5nKTsKKwkJCWlmIChsZW4gPCA0MCkKKwkJCQljb250aW51ZTsKKwkJCXNoYTEgPSBpdGVtLT5zdHJpbmcgKyBsZW4gLSA0MDsKKwkJCWlmICghc3RyaW5nX2xpc3RfaGFzX3N0cmluZygmbmFtZXMsIHNoYTEpKQorCQkJCXJlbW92ZV9yZWR1bmRhbnRfcGFjayhwYWNrZGlyLCBpdGVtLT5zdHJpbmcpOworCQl9CisJCWFyZ3ZfYXJyYXlfcHVzaCgmY21kX2FyZ3MsICJwcnVuZS1wYWNrZWQiKTsKKwkJaWYgKHF1aWV0KQorCQkJYXJndl9hcnJheV9wdXNoKCZjbWRfYXJncywgIi0tcXVpZXQiKTsKKworCQltZW1zZXQoJmNtZCwgMCwgc2l6ZW9mKGNtZCkpOworCQljbWQuYXJndiA9IGNtZF9hcmdzLmFyZ3Y7CisJCWNtZC5naXRfY21kID0gMTsKKwkJcnVuX2NvbW1hbmQoJmNtZCk7CisJCWFyZ3ZfYXJyYXlfY2xlYXIoJmNtZF9hcmdzKTsKKwl9CisKKwlpZiAoIW5vX3VwZGF0ZV9zZXJ2ZXJfaW5mbykgeworCQlhcmd2X2FycmF5X3B1c2goJmNtZF9hcmdzLCAidXBkYXRlLXNlcnZlci1pbmZvIik7CisJCW1lbXNldCgmY21kLCAwLCBzaXplb2YoY21kKSk7CisJCWNtZC5hcmd2ID0gY21kX2FyZ3MuYXJndjsKKwkJY21kLmdpdF9jbWQgPSAxOworCQlydW5fY29tbWFuZCgmY21kKTsKKwkJYXJndl9hcnJheV9jbGVhcigmY21kX2FyZ3MpOworCX0KKwlyZW1vdmVfdGVtcG9yYXJ5X2ZpbGVzKCk7CisJc3RyaW5nX2xpc3RfY2xlYXIoJm5hbWVzLCAwKTsKKwlzdHJpbmdfbGlzdF9jbGVhcigmcm9sbGJhY2ssIDApOworCXN0cmluZ19saXN0X2NsZWFyKCZleGlzdGluZ19wYWNrcywgMCk7CisJc3RyYnVmX3JlbGVhc2UoJmxpbmUpOworCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9idWlsdGluL3JlcGxhY2UuYyBiL2J1aWx0aW4vcmVwbGFjZS5jCmluZGV4IDU5ZDMxMTUuLjIzMzYzMjUgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcmVwbGFjZS5jCisrKyBiL2J1aWx0aW4vcmVwbGFjZS5jCkBAIC0xNiwyNyArMTYsNjkgQEAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZ2l0X3JlcGxhY2VfdXNhZ2VbXSA9IHsKIAlOXygiZ2l0IHJlcGxhY2UgWy1mXSA8b2JqZWN0PiA8cmVwbGFjZW1lbnQ+IiksCiAJTl8oImdpdCByZXBsYWNlIC1kIDxvYmplY3Q+Li4uIiksCi0JTl8oImdpdCByZXBsYWNlIC1sIFs8cGF0dGVybj5dIiksCisJTl8oImdpdCByZXBsYWNlIFstLWZvcm1hdD08Zm9ybWF0Pl0gWy1sIFs8cGF0dGVybj5dXSIpLAogCU5VTEwKIH07CiAKK2VudW0gcmVwbGFjZV9mb3JtYXQgeworICAgICAgUkVQTEFDRV9GT1JNQVRfU0hPUlQsCisgICAgICBSRVBMQUNFX0ZPUk1BVF9NRURJVU0sCisgICAgICBSRVBMQUNFX0ZPUk1BVF9MT05HCit9OworCitzdHJ1Y3Qgc2hvd19kYXRhIHsKKwljb25zdCBjaGFyICpwYXR0ZXJuOworCWVudW0gcmVwbGFjZV9mb3JtYXQgZm9ybWF0OworfTsKKwogc3RhdGljIGludCBzaG93X3JlZmVyZW5jZShjb25zdCBjaGFyICpyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAogCQkJICBpbnQgZmxhZywgdm9pZCAqY2JfZGF0YSkKIHsKLQljb25zdCBjaGFyICpwYXR0ZXJuID0gY2JfZGF0YTsKKwlzdHJ1Y3Qgc2hvd19kYXRhICpkYXRhID0gY2JfZGF0YTsKIAotCWlmICghZm5tYXRjaChwYXR0ZXJuLCByZWZuYW1lLCAwKSkKLQkJcHJpbnRmKCIlc1xuIiwgcmVmbmFtZSk7CisJaWYgKCFmbm1hdGNoKGRhdGEtPnBhdHRlcm4sIHJlZm5hbWUsIDApKSB7CisJCWlmIChkYXRhLT5mb3JtYXQgPT0gUkVQTEFDRV9GT1JNQVRfU0hPUlQpCisJCQlwcmludGYoIiVzXG4iLCByZWZuYW1lKTsKKwkJZWxzZSBpZiAoZGF0YS0+Zm9ybWF0ID09IFJFUExBQ0VfRk9STUFUX01FRElVTSkKKwkJCXByaW50ZigiJXMgLT4gJXNcbiIsIHJlZm5hbWUsIHNoYTFfdG9faGV4KHNoYTEpKTsKKwkJZWxzZSB7IC8qIGRhdGEtPmZvcm1hdCA9PSBSRVBMQUNFX0ZPUk1BVF9MT05HICovCisJCQl1bnNpZ25lZCBjaGFyIG9iamVjdFsyMF07CisJCQllbnVtIG9iamVjdF90eXBlIG9ial90eXBlLCByZXBsX3R5cGU7CisKKwkJCWlmIChnZXRfc2hhMShyZWZuYW1lLCBvYmplY3QpKQorCQkJCXJldHVybiBlcnJvcigiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHJlZi4iLCByZWZuYW1lKTsKKworCQkJb2JqX3R5cGUgPSBzaGExX29iamVjdF9pbmZvKG9iamVjdCwgTlVMTCk7CisJCQlyZXBsX3R5cGUgPSBzaGExX29iamVjdF9pbmZvKHNoYTEsIE5VTEwpOworCisJCQlwcmludGYoIiVzICglcykgLT4gJXMgKCVzKVxuIiwgcmVmbmFtZSwgdHlwZW5hbWUob2JqX3R5cGUpLAorCQkJICAgICAgIHNoYTFfdG9faGV4KHNoYTEpLCB0eXBlbmFtZShyZXBsX3R5cGUpKTsKKwkJfQorCX0KIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGxpc3RfcmVwbGFjZV9yZWZzKGNvbnN0IGNoYXIgKnBhdHRlcm4pCitzdGF0aWMgaW50IGxpc3RfcmVwbGFjZV9yZWZzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGNvbnN0IGNoYXIgKmZvcm1hdCkKIHsKKwlzdHJ1Y3Qgc2hvd19kYXRhIGRhdGE7CisKIAlpZiAocGF0dGVybiA9PSBOVUxMKQogCQlwYXR0ZXJuID0gIioiOworCWRhdGEucGF0dGVybiA9IHBhdHRlcm47CiAKLQlmb3JfZWFjaF9yZXBsYWNlX3JlZihzaG93X3JlZmVyZW5jZSwgKHZvaWQgKikgcGF0dGVybik7CisJaWYgKGZvcm1hdCA9PSBOVUxMIHx8ICpmb3JtYXQgPT0gJ1wwJyB8fCAhc3RyY21wKGZvcm1hdCwgInNob3J0IikpCisJCWRhdGEuZm9ybWF0ID0gUkVQTEFDRV9GT1JNQVRfU0hPUlQ7CisJZWxzZSBpZiAoIXN0cmNtcChmb3JtYXQsICJtZWRpdW0iKSkKKwkJZGF0YS5mb3JtYXQgPSBSRVBMQUNFX0ZPUk1BVF9NRURJVU07CisJZWxzZSBpZiAoIXN0cmNtcChmb3JtYXQsICJsb25nIikpCisJCWRhdGEuZm9ybWF0ID0gUkVQTEFDRV9GT1JNQVRfTE9ORzsKKwllbHNlCisJCWRpZSgiaW52YWxpZCByZXBsYWNlIGZvcm1hdCAnJXMnXG4iCisJCSAgICAidmFsaWQgZm9ybWF0cyBhcmUgJ3Nob3J0JywgJ21lZGl1bScgYW5kICdsb25nJ1xuIiwKKwkJICAgIGZvcm1hdCk7CisKKwlmb3JfZWFjaF9yZXBsYWNlX3JlZihzaG93X3JlZmVyZW5jZSwgKHZvaWQgKikgJmRhdGEpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC04NSw2ICsxMjcsNyBAQAogCQkJICBpbnQgZm9yY2UpCiB7CiAJdW5zaWduZWQgY2hhciBvYmplY3RbMjBdLCBwcmV2WzIwXSwgcmVwbFsyMF07CisJZW51bSBvYmplY3RfdHlwZSBvYmpfdHlwZSwgcmVwbF90eXBlOwogCWNoYXIgcmVmW1BBVEhfTUFYXTsKIAlzdHJ1Y3QgcmVmX2xvY2sgKmxvY2s7CiAKQEAgLTEwMCwxMiArMTQzLDIxIEBACiAJaWYgKGNoZWNrX3JlZm5hbWVfZm9ybWF0KHJlZiwgMCkpCiAJCWRpZSgiJyVzJyBpcyBub3QgYSB2YWxpZCByZWYgbmFtZS4iLCByZWYpOwogCisJb2JqX3R5cGUgPSBzaGExX29iamVjdF9pbmZvKG9iamVjdCwgTlVMTCk7CisJcmVwbF90eXBlID0gc2hhMV9vYmplY3RfaW5mbyhyZXBsLCBOVUxMKTsKKwlpZiAoIWZvcmNlICYmIG9ial90eXBlICE9IHJlcGxfdHlwZSkKKwkJZGllKCJPYmplY3RzIG11c3QgYmUgb2YgdGhlIHNhbWUgdHlwZS5cbiIKKwkJICAgICInJXMnIHBvaW50cyB0byBhIHJlcGxhY2VkIG9iamVjdCBvZiB0eXBlICclcydcbiIKKwkJICAgICJ3aGlsZSAnJXMnIHBvaW50cyB0byBhIHJlcGxhY2VtZW50IG9iamVjdCBvZiB0eXBlICclcycuIiwKKwkJICAgIG9iamVjdF9yZWYsIHR5cGVuYW1lKG9ial90eXBlKSwKKwkJICAgIHJlcGxhY2VfcmVmLCB0eXBlbmFtZShyZXBsX3R5cGUpKTsKKwogCWlmIChyZWFkX3JlZihyZWYsIHByZXYpKQogCQloYXNoY2xyKHByZXYpOwogCWVsc2UgaWYgKCFmb3JjZSkKIAkJZGllKCJyZXBsYWNlIHJlZiAnJXMnIGFscmVhZHkgZXhpc3RzIiwgcmVmKTsKIAotCWxvY2sgPSBsb2NrX2FueV9yZWZfZm9yX3VwZGF0ZShyZWYsIHByZXYsIDApOworCWxvY2sgPSBsb2NrX2FueV9yZWZfZm9yX3VwZGF0ZShyZWYsIHByZXYsIDAsIE5VTEwpOwogCWlmICghbG9jaykKIAkJZGllKCIlczogY2Fubm90IGxvY2sgdGhlIHJlZiIsIHJlZik7CiAJaWYgKHdyaXRlX3JlZl9zaGExKGxvY2ssIHJlcGwsIE5VTEwpIDwgMCkKQEAgLTExNywxOSArMTY5LDI3IEBACiBpbnQgY21kX3JlcGxhY2UoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCiB7CiAJaW50IGxpc3QgPSAwLCBkZWxldGUgPSAwLCBmb3JjZSA9IDA7CisJY29uc3QgY2hhciAqZm9ybWF0ID0gTlVMTDsKIAlzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKLQkJT1BUX0JPT0xFQU4oJ2wnLCBOVUxMLCAmbGlzdCwgTl8oImxpc3QgcmVwbGFjZSByZWZzIikpLAotCQlPUFRfQk9PTEVBTignZCcsIE5VTEwsICZkZWxldGUsIE5fKCJkZWxldGUgcmVwbGFjZSByZWZzIikpLAotCQlPUFRfQk9PTEVBTignZicsIE5VTEwsICZmb3JjZSwgTl8oInJlcGxhY2UgdGhlIHJlZiBpZiBpdCBleGlzdHMiKSksCisJCU9QVF9CT09MKCdsJywgImxpc3QiLCAmbGlzdCwgTl8oImxpc3QgcmVwbGFjZSByZWZzIikpLAorCQlPUFRfQk9PTCgnZCcsICJkZWxldGUiLCAmZGVsZXRlLCBOXygiZGVsZXRlIHJlcGxhY2UgcmVmcyIpKSwKKwkJT1BUX0JPT0woJ2YnLCAiZm9yY2UiLCAmZm9yY2UsIE5fKCJyZXBsYWNlIHRoZSByZWYgaWYgaXQgZXhpc3RzIikpLAorCQlPUFRfU1RSSU5HKDAsICJmb3JtYXQiLCAmZm9ybWF0LCBOXygiZm9ybWF0IiksIE5fKCJ1c2UgdGhpcyBmb3JtYXQiKSksCiAJCU9QVF9FTkQoKQogCX07CiAKKwlyZWFkX3JlcGxhY2VfcmVmcyA9IDA7CisKIAlhcmdjID0gcGFyc2Vfb3B0aW9ucyhhcmdjLCBhcmd2LCBwcmVmaXgsIG9wdGlvbnMsIGdpdF9yZXBsYWNlX3VzYWdlLCAwKTsKIAogCWlmIChsaXN0ICYmIGRlbGV0ZSkKIAkJdXNhZ2VfbXNnX29wdCgiLWwgYW5kIC1kIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIiwKIAkJCSAgICAgIGdpdF9yZXBsYWNlX3VzYWdlLCBvcHRpb25zKTsKIAorCWlmIChmb3JtYXQgJiYgZGVsZXRlKQorCQl1c2FnZV9tc2dfb3B0KCItLWZvcm1hdCBhbmQgLWQgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiLAorCQkJICAgICAgZ2l0X3JlcGxhY2VfdXNhZ2UsIG9wdGlvbnMpOworCiAJaWYgKGZvcmNlICYmIChsaXN0IHx8IGRlbGV0ZSkpCiAJCXVzYWdlX21zZ19vcHQoIi1mIGNhbm5vdCBiZSB1c2VkIHdpdGggLWQgb3IgLWwiLAogCQkJICAgICAgZ2l0X3JlcGxhY2VfdXNhZ2UsIG9wdGlvbnMpOwpAQCAtMTQ3LDYgKzIwNyw5IEBACiAJCWlmIChhcmdjICE9IDIpCiAJCQl1c2FnZV9tc2dfb3B0KCJiYWQgbnVtYmVyIG9mIGFyZ3VtZW50cyIsCiAJCQkJICAgICAgZ2l0X3JlcGxhY2VfdXNhZ2UsIG9wdGlvbnMpOworCQlpZiAoZm9ybWF0KQorCQkJdXNhZ2VfbXNnX29wdCgiLS1mb3JtYXQgY2Fubm90IGJlIHVzZWQgd2hlbiBub3QgbGlzdGluZyIsCisJCQkJICAgICAgZ2l0X3JlcGxhY2VfdXNhZ2UsIG9wdGlvbnMpOwogCQlyZXR1cm4gcmVwbGFjZV9vYmplY3QoYXJndlswXSwgYXJndlsxXSwgZm9yY2UpOwogCX0KIApAQCAtMTU4LDUgKzIyMSw1IEBACiAJCXVzYWdlX21zZ19vcHQoIi1mIG5lZWRzIHNvbWUgYXJndW1lbnRzIiwKIAkJCSAgICAgIGdpdF9yZXBsYWNlX3VzYWdlLCBvcHRpb25zKTsKIAotCXJldHVybiBsaXN0X3JlcGxhY2VfcmVmcyhhcmd2WzBdKTsKKwlyZXR1cm4gbGlzdF9yZXBsYWNlX3JlZnMoYXJndlswXSwgZm9ybWF0KTsKIH0KZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmVyZXJlLmMgYi9idWlsdGluL3JlcmVyZS5jCmluZGV4IGRjMTcwOGUuLjRlNTFhZGQgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcmVyZXJlLmMKKysrIGIvYnVpbHRpbi9yZXJlcmUuYwpAQCAtNiw2ICs2LDcgQEAKICNpbmNsdWRlICJyZXJlcmUuaCIKICNpbmNsdWRlICJ4ZGlmZi94ZGlmZi5oIgogI2luY2x1ZGUgInhkaWZmLWludGVyZmFjZS5oIgorI2luY2x1ZGUgInBhdGhzcGVjLmgiCiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcmVyZXJlX3VzYWdlW10gPSB7CiAJTl8oImdpdCByZXJlcmUgW2NsZWFyIHwgZm9yZ2V0IHBhdGguLi4gfCBzdGF0dXMgfCByZW1haW5pbmcgfCBkaWZmIHwgZ2NdIiksCkBAIC02OCwxMSArNjksMTIgQEAKIAkJcmV0dXJuIHJlcmVyZShmbGFncyk7CiAKIAlpZiAoIXN0cmNtcChhcmd2WzBdLCAiZm9yZ2V0IikpIHsKLQkJY29uc3QgY2hhciAqKnBhdGhzcGVjOworCQlzdHJ1Y3QgcGF0aHNwZWMgcGF0aHNwZWM7CiAJCWlmIChhcmdjIDwgMikKIAkJCXdhcm5pbmcoIidnaXQgcmVyZXJlIGZvcmdldCcgd2l0aG91dCBwYXRocyBpcyBkZXByZWNhdGVkIik7Ci0JCXBhdGhzcGVjID0gZ2V0X3BhdGhzcGVjKHByZWZpeCwgYXJndiArIDEpOwotCQlyZXR1cm4gcmVyZXJlX2ZvcmdldChwYXRoc3BlYyk7CisJCXBhcnNlX3BhdGhzcGVjKCZwYXRoc3BlYywgMCwgUEFUSFNQRUNfUFJFRkVSX0NXRCwKKwkJCSAgICAgICBwcmVmaXgsIGFyZ3YgKyAxKTsKKwkJcmV0dXJuIHJlcmVyZV9mb3JnZXQoJnBhdGhzcGVjKTsKIAl9CiAKIAlmZCA9IHNldHVwX3JlcmVyZSgmbWVyZ2VfcnIsIGZsYWdzKTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmVzZXQuYyBiL2J1aWx0aW4vcmVzZXQuYwppbmRleCBhZmE2ZTAyLi42MDA0ODAzIDEwMDY0NAotLS0gYS9idWlsdGluL3Jlc2V0LmMKKysrIGIvYnVpbHRpbi9yZXNldC5jCkBAIC0xMzMsMjEgKzEzMywyMSBAQAogCX0KIH0KIAotc3RhdGljIGludCByZWFkX2Zyb21fdHJlZShjb25zdCBjaGFyICoqcGF0aHNwZWMsIHVuc2lnbmVkIGNoYXIgKnRyZWVfc2hhMSkKK3N0YXRpYyBpbnQgcmVhZF9mcm9tX3RyZWUoY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYywKKwkJCSAgdW5zaWduZWQgY2hhciAqdHJlZV9zaGExKQogewogCXN0cnVjdCBkaWZmX29wdGlvbnMgb3B0OwogCiAJbWVtc2V0KCZvcHQsIDAsIHNpemVvZihvcHQpKTsKLQlkaWZmX3RyZWVfc2V0dXBfcGF0aHMocGF0aHNwZWMsICZvcHQpOworCWNvcHlfcGF0aHNwZWMoJm9wdC5wYXRoc3BlYywgcGF0aHNwZWMpOwogCW9wdC5vdXRwdXRfZm9ybWF0ID0gRElGRl9GT1JNQVRfQ0FMTEJBQ0s7CiAJb3B0LmZvcm1hdF9jYWxsYmFjayA9IHVwZGF0ZV9pbmRleF9mcm9tX2RpZmY7CiAKLQlyZWFkX2NhY2hlKCk7CiAJaWYgKGRvX2RpZmZfY2FjaGUodHJlZV9zaGExLCAmb3B0KSkKIAkJcmV0dXJuIDE7CiAJZGlmZmNvcmVfc3RkKCZvcHQpOwogCWRpZmZfZmx1c2goJm9wdCk7Ci0JZGlmZl90cmVlX3JlbGVhc2VfcGF0aHMoJm9wdCk7CisJZnJlZV9wYXRoc3BlYygmb3B0LnBhdGhzcGVjKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTY4LDEzICsxNjgsMTYgQEAKIAogc3RhdGljIHZvaWQgZGllX2lmX3VubWVyZ2VkX2NhY2hlKGludCByZXNldF90eXBlKQogewotCWlmIChpc19tZXJnZSgpIHx8IHJlYWRfY2FjaGUoKSA8IDAgfHwgdW5tZXJnZWRfY2FjaGUoKSkKKwlpZiAoaXNfbWVyZ2UoKSB8fCB1bm1lcmdlZF9jYWNoZSgpKQogCQlkaWUoXygiQ2Fubm90IGRvIGEgJXMgcmVzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlLiIpLAogCQkgICAgXyhyZXNldF90eXBlX25hbWVzW3Jlc2V0X3R5cGVdKSk7CiAKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKipwYXJzZV9hcmdzKGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKipyZXZfcmV0KQorc3RhdGljIHZvaWQgcGFyc2VfYXJncyhzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjLAorCQkgICAgICAgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCwKKwkJICAgICAgIGludCBwYXRjaF9tb2RlLAorCQkgICAgICAgY29uc3QgY2hhciAqKnJldl9yZXQpCiB7CiAJY29uc3QgY2hhciAqcmV2ID0gIkhFQUQiOwogCXVuc2lnbmVkIGNoYXIgdW51c2VkWzIwXTsKQEAgLTIxNiwxMCArMjE5LDE4IEBACiAJCX0KIAl9CiAJKnJldl9yZXQgPSByZXY7Ci0JcmV0dXJuIGFyZ3ZbMF0gPyBnZXRfcGF0aHNwZWMocHJlZml4LCBhcmd2KSA6IE5VTEw7CisKKwlpZiAocmVhZF9jYWNoZSgpIDwgMCkKKwkJZGllKF8oImluZGV4IGZpbGUgY29ycnVwdCIpKTsKKworCXBhcnNlX3BhdGhzcGVjKHBhdGhzcGVjLCAwLAorCQkgICAgICAgUEFUSFNQRUNfUFJFRkVSX0ZVTEwgfAorCQkgICAgICAgUEFUSFNQRUNfU1RSSVBfU1VCTU9EVUxFX1NMQVNIX0NIRUFQIHwKKwkJICAgICAgIChwYXRjaF9tb2RlID8gUEFUSFNQRUNfUFJFRklYX09SSUdJTiA6IDApLAorCQkgICAgICAgcHJlZml4LCBhcmd2KTsKIH0KIAotc3RhdGljIGludCB1cGRhdGVfcmVmcyhjb25zdCBjaGFyICpyZXYsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEpCitzdGF0aWMgaW50IHJlc2V0X3JlZnMoY29uc3QgY2hhciAqcmV2LCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKQogewogCWludCB1cGRhdGVfcmVmX3N0YXR1czsKIAlzdHJ1Y3Qgc3RyYnVmIG1zZyA9IFNUUkJVRl9JTklUOwpAQCAtMjQ2LDcgKzI1Nyw3IEBACiAJaW50IHBhdGNoX21vZGUgPSAwLCB1bmJvcm47CiAJY29uc3QgY2hhciAqcmV2OwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07Ci0JY29uc3QgY2hhciAqKnBhdGhzcGVjID0gTlVMTDsKKwlzdHJ1Y3QgcGF0aHNwZWMgcGF0aHNwZWM7CiAJY29uc3Qgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CiAJCU9QVF9fUVVJRVQoJnF1aWV0LCBOXygiYmUgcXVpZXQsIG9ubHkgcmVwb3J0IGVycm9ycyIpKSwKIAkJT1BUX1NFVF9JTlQoMCwgIm1peGVkIiwgJnJlc2V0X3R5cGUsCkBAIC0yNTgsNyArMjY5LDcgQEAKIAkJCQlOXygicmVzZXQgSEVBRCwgaW5kZXggYW5kIHdvcmtpbmcgdHJlZSIpLCBNRVJHRSksCiAJCU9QVF9TRVRfSU5UKDAsICJrZWVwIiwgJnJlc2V0X3R5cGUsCiAJCQkJTl8oInJlc2V0IEhFQUQgYnV0IGtlZXAgbG9jYWwgY2hhbmdlcyIpLCBLRUVQKSwKLQkJT1BUX0JPT0xFQU4oJ3AnLCAicGF0Y2giLCAmcGF0Y2hfbW9kZSwgTl8oInNlbGVjdCBodW5rcyBpbnRlcmFjdGl2ZWx5IikpLAorCQlPUFRfQk9PTCgncCcsICJwYXRjaCIsICZwYXRjaF9tb2RlLCBOXygic2VsZWN0IGh1bmtzIGludGVyYWN0aXZlbHkiKSksCiAJCU9QVF9FTkQoKQogCX07CiAKQEAgLTI2NiwxMyArMjc3LDEzIEBACiAKIAlhcmdjID0gcGFyc2Vfb3B0aW9ucyhhcmdjLCBhcmd2LCBwcmVmaXgsIG9wdGlvbnMsIGdpdF9yZXNldF91c2FnZSwKIAkJCQkJCVBBUlNFX09QVF9LRUVQX0RBU0hEQVNIKTsKLQlwYXRoc3BlYyA9IHBhcnNlX2FyZ3MoYXJndiwgcHJlZml4LCAmcmV2KTsKKwlwYXJzZV9hcmdzKCZwYXRoc3BlYywgYXJndiwgcHJlZml4LCBwYXRjaF9tb2RlLCAmcmV2KTsKIAogCXVuYm9ybiA9ICFzdHJjbXAocmV2LCAiSEVBRCIpICYmIGdldF9zaGExKCJIRUFEIiwgc2hhMSk7CiAJaWYgKHVuYm9ybikgewogCQkvKiByZXNldCBvbiB1bmJvcm4gYnJhbmNoOiB0cmVhdCBhcyByZXNldCB0byBlbXB0eSB0cmVlICovCiAJCWhhc2hjcHkoc2hhMSwgRU1QVFlfVFJFRV9TSEExX0JJTik7Ci0JfSBlbHNlIGlmICghcGF0aHNwZWMpIHsKKwl9IGVsc2UgaWYgKCFwYXRoc3BlYy5ucikgewogCQlzdHJ1Y3QgY29tbWl0ICpjb21taXQ7CiAJCWlmIChnZXRfc2hhMV9jb21taXR0aXNoKHJldiwgc2hhMSkpCiAJCQlkaWUoXygiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHJldmlzaW9uLiIpLCByZXYpOwpAQCAtMjkzLDEzICszMDQsMTMgQEAKIAlpZiAocGF0Y2hfbW9kZSkgewogCQlpZiAocmVzZXRfdHlwZSAhPSBOT05FKQogCQkJZGllKF8oIi0tcGF0Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggLS17aGFyZCxtaXhlZCxzb2Z0fSIpKTsKLQkJcmV0dXJuIHJ1bl9hZGRfaW50ZXJhY3RpdmUoc2hhMV90b19oZXgoc2hhMSksICItLXBhdGNoPXJlc2V0IiwgcGF0aHNwZWMpOworCQlyZXR1cm4gcnVuX2FkZF9pbnRlcmFjdGl2ZShyZXYsICItLXBhdGNoPXJlc2V0IiwgJnBhdGhzcGVjKTsKIAl9CiAKIAkvKiBnaXQgcmVzZXQgdHJlZSBbLS1dIHBhdGhzLi4uIGNhbiBiZSB1c2VkIHRvCiAJICogbG9hZCBjaG9zZW4gcGF0aHMgZnJvbSB0aGUgdHJlZSBpbnRvIHRoZSBpbmRleCB3aXRob3V0CiAJICogYWZmZWN0aW5nIHRoZSB3b3JraW5nIHRyZWUgbm9yIEhFQUQuICovCi0JaWYgKHBhdGhzcGVjKSB7CisJaWYgKHBhdGhzcGVjLm5yKSB7CiAJCWlmIChyZXNldF90eXBlID09IE1JWEVEKQogCQkJd2FybmluZyhfKCItLW1peGVkIHdpdGggcGF0aHMgaXMgZGVwcmVjYXRlZDsgdXNlICdnaXQgcmVzZXQgLS0gPHBhdGhzPicgaW5zdGVhZC4iKSk7CiAJCWVsc2UgaWYgKHJlc2V0X3R5cGUgIT0gTk9ORSkKQEAgLTMyMywxMSArMzM0LDE0IEBACiAJCWRpZV9pZl91bm1lcmdlZF9jYWNoZShyZXNldF90eXBlKTsKIAogCWlmIChyZXNldF90eXBlICE9IFNPRlQpIHsKLQkJc3RydWN0IGxvY2tfZmlsZSAqbG9jayA9IHhjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBsb2NrX2ZpbGUpKTsKKwkJc3RydWN0IGxvY2tfZmlsZSAqbG9jayA9IHhjYWxsb2MoMSwgc2l6ZW9mKCpsb2NrKSk7CiAJCWludCBuZXdmZCA9IGhvbGRfbG9ja2VkX2luZGV4KGxvY2ssIDEpOwogCQlpZiAocmVzZXRfdHlwZSA9PSBNSVhFRCkgewotCQkJaWYgKHJlYWRfZnJvbV90cmVlKHBhdGhzcGVjLCBzaGExKSkKKwkJCWludCBmbGFncyA9IHF1aWV0ID8gUkVGUkVTSF9RVUlFVCA6IFJFRlJFU0hfSU5fUE9SQ0VMQUlOOworCQkJaWYgKHJlYWRfZnJvbV90cmVlKCZwYXRoc3BlYywgc2hhMSkpCiAJCQkJcmV0dXJuIDE7CisJCQlyZWZyZXNoX2luZGV4KCZ0aGVfaW5kZXgsIGZsYWdzLCBOVUxMLCBOVUxMLAorCQkJCSAgICAgIF8oIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVzZXQ6IikpOwogCQl9IGVsc2UgewogCQkJaW50IGVyciA9IHJlc2V0X2luZGV4KHNoYTEsIHJlc2V0X3R5cGUsIHF1aWV0KTsKIAkJCWlmIChyZXNldF90eXBlID09IEtFRVAgJiYgIWVycikKQEAgLTMzNiwyNiArMzUwLDIwIEBACiAJCQkJZGllKF8oIkNvdWxkIG5vdCByZXNldCBpbmRleCBmaWxlIHRvIHJldmlzaW9uICclcycuIiksIHJldik7CiAJCX0KIAotCQlpZiAocmVzZXRfdHlwZSA9PSBNSVhFRCkgeyAvKiBSZXBvcnQgd2hhdCBoYXMgbm90IGJlZW4gdXBkYXRlZC4gKi8KLQkJCWludCBmbGFncyA9IHF1aWV0ID8gUkVGUkVTSF9RVUlFVCA6IFJFRlJFU0hfSU5fUE9SQ0VMQUlOOwotCQkJcmVmcmVzaF9pbmRleCgmdGhlX2luZGV4LCBmbGFncywgTlVMTCwgTlVMTCwKLQkJCQkgICAgICBfKCJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlc2V0OiIpKTsKLQkJfQotCiAJCWlmICh3cml0ZV9jYWNoZShuZXdmZCwgYWN0aXZlX2NhY2hlLCBhY3RpdmVfbnIpIHx8CiAJCSAgICBjb21taXRfbG9ja2VkX2luZGV4KGxvY2spKQogCQkJZGllKF8oIkNvdWxkIG5vdCB3cml0ZSBuZXcgaW5kZXggZmlsZS4iKSk7CiAJfQogCi0JaWYgKCFwYXRoc3BlYyAmJiAhdW5ib3JuKSB7CisJaWYgKCFwYXRoc3BlYy5uciAmJiAhdW5ib3JuKSB7CiAJCS8qIEFueSByZXNldHMgd2l0aG91dCBwYXRocyB1cGRhdGUgSEVBRCB0byB0aGUgaGVhZCBiZWluZwogCQkgKiBzd2l0Y2hlZCB0bywgc2F2aW5nIHRoZSBwcmV2aW91cyBoZWFkIGluIE9SSUdfSEVBRCBiZWZvcmUuICovCi0JCXVwZGF0ZV9yZWZfc3RhdHVzID0gdXBkYXRlX3JlZnMocmV2LCBzaGExKTsKKwkJdXBkYXRlX3JlZl9zdGF0dXMgPSByZXNldF9yZWZzKHJldiwgc2hhMSk7CiAKIAkJaWYgKHJlc2V0X3R5cGUgPT0gSEFSRCAmJiAhdXBkYXRlX3JlZl9zdGF0dXMgJiYgIXF1aWV0KQogCQkJcHJpbnRfbmV3X2hlYWRfbGluZShsb29rdXBfY29tbWl0X3JlZmVyZW5jZShzaGExKSk7CiAJfQotCWlmICghcGF0aHNwZWMpCisJaWYgKCFwYXRoc3BlYy5ucikKIAkJcmVtb3ZlX2JyYW5jaF9zdGF0ZSgpOwogCiAJcmV0dXJuIHVwZGF0ZV9yZWZfc3RhdHVzOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9yZXYtbGlzdC5jIGIvYnVpbHRpbi9yZXYtbGlzdC5jCmluZGV4IDRmYzE2MTYuLjA3NDVlMmQgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcmV2LWxpc3QuYworKysgYi9idWlsdGluL3Jldi1saXN0LmMKQEAgLTMyMiw3ICszMjIsNyBAQAogCQlyZXZzLmNvbW1pdF9mb3JtYXQgPSBDTUlUX0ZNVF9SQVc7CiAKIAlpZiAoKCFyZXZzLmNvbW1pdHMgJiYKLQkgICAgICghKHJldnMudGFnX29iamVjdHN8fHJldnMudHJlZV9vYmplY3RzfHxyZXZzLmJsb2Jfb2JqZWN0cykgJiYKKwkgICAgICghKHJldnMudGFnX29iamVjdHMgfHwgcmV2cy50cmVlX29iamVjdHMgfHwgcmV2cy5ibG9iX29iamVjdHMpICYmCiAJICAgICAgIXJldnMucGVuZGluZy5ucikpIHx8CiAJICAgIHJldnMuZGlmZikKIAkJdXNhZ2UocmV2X2xpc3RfdXNhZ2UpOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9yZXYtcGFyc2UuYyBiL2J1aWx0aW4vcmV2LXBhcnNlLmMKaW5kZXggZGU4OTRjNy4uYWFlYjYxMSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9yZXYtcGFyc2UuYworKysgYi9idWlsdGluL3Jldi1wYXJzZS5jCkBAIC05LDYgKzksOCBAQAogI2luY2x1ZGUgInF1b3RlLmgiCiAjaW5jbHVkZSAiYnVpbHRpbi5oIgogI2luY2x1ZGUgInBhcnNlLW9wdGlvbnMuaCIKKyNpbmNsdWRlICJkaWZmLmgiCisjaW5jbHVkZSAicmV2aXNpb24uaCIKIAogI2RlZmluZSBET19SRVZTCQkxCiAjZGVmaW5lIERPX05PUkVWCTIKQEAgLTMwLDYgKzMyLDkgQEAKIHN0YXRpYyBpbnQgYWJicmV2X3JlZl9zdHJpY3Q7CiBzdGF0aWMgaW50IG91dHB1dF9zcTsKIAorc3RhdGljIGludCBzdHVja19sb25nOworc3RhdGljIHN0cnVjdCBzdHJpbmdfbGlzdCAqcmVmX2V4Y2x1ZGVzOworCiAvKgogICogU29tZSBhcmd1bWVudHMgYXJlIHJlbGV2YW50ICJyZXZpc2lvbiIgYXJndW1lbnRzLAogICogb3RoZXJzIGFyZSBhYm91dCBvdXRwdXQgZm9ybWF0IG9yIG90aGVyIGRldGFpbHMuCkBAIC0xODUsNiArMTkwLDggQEAKIAogc3RhdGljIGludCBzaG93X3JlZmVyZW5jZShjb25zdCBjaGFyICpyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBpbnQgZmxhZywgdm9pZCAqY2JfZGF0YSkKIHsKKwlpZiAocmVmX2V4Y2x1ZGVkKHJlZl9leGNsdWRlcywgcmVmbmFtZSkpCisJCXJldHVybiAwOwogCXNob3dfcmV2KE5PUk1BTCwgc2hhMSwgcmVmbmFtZSk7CiAJcmV0dXJuIDA7CiB9CkBAIC0yNzksNiArMjg2LDcgQEAKIAkJCQlleGNsdWRlID0gbjsKIAkJCX0KIAkJfQorCQkqZG90ZG90ID0gJy4nOwogCQlyZXR1cm4gMTsKIAl9CiAJKmRvdGRvdCA9ICcuJzsKQEAgLTMwMiw4ICszMTAsMTAgQEAKIAkJcmV0dXJuIDA7CiAKIAkqZG90ZG90ID0gMDsKLQlpZiAoZ2V0X3NoYTFfY29tbWl0dGlzaChhcmcsIHNoYTEpKQorCWlmIChnZXRfc2hhMV9jb21taXR0aXNoKGFyZywgc2hhMSkpIHsKKwkJKmRvdGRvdCA9ICdeJzsKIAkJcmV0dXJuIDA7CisJfQogCiAJaWYgKCFwYXJlbnRzX29ubHkpCiAJCXNob3dfcmV2KE5PUk1BTCwgc2hhMSwgYXJnKTsKQEAgLTMxMiw2ICszMjIsNyBAQAogCQlzaG93X3JldihwYXJlbnRzX29ubHkgPyBOT1JNQUwgOiBSRVZFUlNFRCwKIAkJCQlwYXJlbnRzLT5pdGVtLT5vYmplY3Quc2hhMSwgYXJnKTsKIAorCSpkb3Rkb3QgPSAnXic7CiAJcmV0dXJuIDE7CiB9CiAKQEAgLTMyMCwxMiArMzMxLDE1IEBACiAJc3RydWN0IHN0cmJ1ZiAqcGFyc2VkID0gby0+dmFsdWU7CiAJaWYgKHVuc2V0KQogCQlzdHJidWZfYWRkZihwYXJzZWQsICIgLS1uby0lcyIsIG8tPmxvbmdfbmFtZSk7Ci0JZWxzZSBpZiAoby0+c2hvcnRfbmFtZSkKKwllbHNlIGlmIChvLT5zaG9ydF9uYW1lICYmIChvLT5sb25nX25hbWUgPT0gTlVMTCB8fCAhc3R1Y2tfbG9uZykpCiAJCXN0cmJ1Zl9hZGRmKHBhcnNlZCwgIiAtJWMiLCBvLT5zaG9ydF9uYW1lKTsKIAllbHNlCiAJCXN0cmJ1Zl9hZGRmKHBhcnNlZCwgIiAtLSVzIiwgby0+bG9uZ19uYW1lKTsKIAlpZiAoYXJnKSB7Ci0JCXN0cmJ1Zl9hZGRjaChwYXJzZWQsICcgJyk7CisJCWlmICghc3R1Y2tfbG9uZykKKwkJCXN0cmJ1Zl9hZGRjaChwYXJzZWQsICcgJyk7CisJCWVsc2UgaWYgKG8tPmxvbmdfbmFtZSkKKwkJCXN0cmJ1Zl9hZGRjaChwYXJzZWQsICc9Jyk7CiAJCXNxX3F1b3RlX2J1ZihwYXJzZWQsIGFyZyk7CiAJfQogCXJldHVybiAwOwpAQCAtMzQ2LDExICszNjAsMTMgQEAKIAkJTlVMTAogCX07CiAJc3RhdGljIHN0cnVjdCBvcHRpb24gcGFyc2VvcHRfb3B0c1tdID0gewotCQlPUFRfQk9PTEVBTigwLCAia2VlcC1kYXNoZGFzaCIsICZrZWVwX2Rhc2hkYXNoLAorCQlPUFRfQk9PTCgwLCAia2VlcC1kYXNoZGFzaCIsICZrZWVwX2Rhc2hkYXNoLAogCQkJCQlOXygia2VlcCB0aGUgYC0tYCBwYXNzZWQgYXMgYW4gYXJnIikpLAotCQlPUFRfQk9PTEVBTigwLCAic3RvcC1hdC1ub24tb3B0aW9uIiwgJnN0b3BfYXRfbm9uX29wdGlvbiwKKwkJT1BUX0JPT0woMCwgInN0b3AtYXQtbm9uLW9wdGlvbiIsICZzdG9wX2F0X25vbl9vcHRpb24sCiAJCQkJCU5fKCJzdG9wIHBhcnNpbmcgYWZ0ZXIgdGhlICIKIAkJCQkJICAgImZpcnN0IG5vbi1vcHRpb24gYXJndW1lbnQiKSksCisJCU9QVF9CT09MKDAsICJzdHVjay1sb25nIiwgJnN0dWNrX2xvbmcsCisJCQkJCU5fKCJvdXRwdXQgaW4gc3R1Y2sgbG9uZyBmb3JtIikpLAogCQlPUFRfRU5EKCksCiAJfTsKIApAQCAtNDc2LDYgKzQ5Miw3IEBACiBpbnQgY21kX3Jldl9wYXJzZShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKIHsKIAlpbnQgaSwgYXNfaXMgPSAwLCB2ZXJpZnkgPSAwLCBxdWlldCA9IDAsIHJldnNfY291bnQgPSAwLCB0eXBlID0gMDsKKwlpbnQgaGFzX2Rhc2hkYXNoID0gMDsKIAlpbnQgb3V0cHV0X3ByZWZpeCA9IDA7CiAJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKIAljb25zdCBjaGFyICpuYW1lID0gTlVMTDsKQEAgLTQ4NiwyNCArNTAzLDE2IEBACiAJaWYgKGFyZ2MgPiAxICYmICFzdHJjbXAoIi0tc3EtcXVvdGUiLCBhcmd2WzFdKSkKIAkJcmV0dXJuIGNtZF9zcV9xdW90ZShhcmdjIC0gMiwgYXJndiArIDIpOwogCi0JaWYgKGFyZ2MgPT0gMiAmJiAhc3RyY21wKCItLWxvY2FsLWVudi12YXJzIiwgYXJndlsxXSkpIHsKLQkJaW50IGk7Ci0JCWZvciAoaSA9IDA7IGxvY2FsX3JlcG9fZW52W2ldOyBpKyspCi0JCQlwcmludGYoIiVzXG4iLCBsb2NhbF9yZXBvX2VudltpXSk7Ci0JCXJldHVybiAwOwotCX0KLQotCWlmIChhcmdjID4gMiAmJiAhc3RyY21wKGFyZ3ZbMV0sICItLXJlc29sdmUtZ2l0LWRpciIpKSB7Ci0JCWNvbnN0IGNoYXIgKmdpdGRpciA9IHJlc29sdmVfZ2l0ZGlyKGFyZ3ZbMl0pOwotCQlpZiAoIWdpdGRpcikKLQkJCWRpZSgibm90IGEgZ2l0ZGlyICclcyciLCBhcmd2WzJdKTsKLQkJcHV0cyhnaXRkaXIpOwotCQlyZXR1cm4gMDsKLQl9Ci0KIAlpZiAoYXJnYyA+IDEgJiYgIXN0cmNtcCgiLWgiLCBhcmd2WzFdKSkKIAkJdXNhZ2UoYnVpbHRpbl9yZXZfcGFyc2VfdXNhZ2UpOwogCisJZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykgeworCQlpZiAoIXN0cmNtcChhcmd2W2ldLCAiLS0iKSkgeworCQkJaGFzX2Rhc2hkYXNoID0gMTsKKwkJCWJyZWFrOworCQl9CisJfQorCiAJcHJlZml4ID0gc2V0dXBfZ2l0X2RpcmVjdG9yeSgpOwogCWdpdF9jb25maWcoZ2l0X2RlZmF1bHRfY29uZmlnLCBOVUxMKTsKIAlmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKSB7CkBAIC01MjMsNyArNTMyLDcgQEAKIAkJCX0KIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWlmICghcHJlZml4Y21wKGFyZywgIi1uIikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi1uIikpIHsKIAkJCWlmICgoZmlsdGVyICYgRE9fRkxBR1MpICYmIChmaWx0ZXIgJiBET19SRVZTKSkKIAkJCQlzaG93KGFyZyk7CiAJCQljb250aW51ZTsKQEAgLTU3NSw3ICs1ODQsNyBAQAogCQkJCWNvbnRpbnVlOwogCQkJfQogCQkJaWYgKCFzdHJjbXAoYXJnLCAiLS1zaG9ydCIpIHx8Ci0JCQkgICAgIXByZWZpeGNtcChhcmcsICItLXNob3J0PSIpKSB7CisJCQkgICAgc3RhcnRzX3dpdGgoYXJnLCAiLS1zaG9ydD0iKSkgewogCQkJCWZpbHRlciAmPSB+KERPX0ZMQUdTfERPX05PUkVWKTsKIAkJCQl2ZXJpZnkgPSAxOwogCQkJCWFiYnJldiA9IERFRkFVTFRfQUJCUkVWOwpAQCAtNjAzLDcgKzYxMiw3IEBACiAJCQkJc3ltYm9saWMgPSBTSE9XX1NZTUJPTElDX0ZVTEw7CiAJCQkJY29udGludWU7CiAJCQl9Ci0JCQlpZiAoIXByZWZpeGNtcChhcmcsICItLWFiYnJldi1yZWYiKSAmJgorCQkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tYWJicmV2LXJlZiIpICYmCiAJCQkgICAgKCFhcmdbMTJdIHx8IGFyZ1sxMl0gPT0gJz0nKSkgewogCQkJCWFiYnJldl9yZWYgPSAxOwogCQkJCWFiYnJldl9yZWZfc3RyaWN0ID0gd2Fybl9hbWJpZ3VvdXNfcmVmczsKQEAgLTYyMSw3ICs2MzAsNyBAQAogCQkJCWZvcl9lYWNoX3JlZihzaG93X3JlZmVyZW5jZSwgTlVMTCk7CiAJCQkJY29udGludWU7CiAJCQl9Ci0JCQlpZiAoIXByZWZpeGNtcChhcmcsICItLWRpc2FtYmlndWF0ZT0iKSkgeworCQkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tZGlzYW1iaWd1YXRlPSIpKSB7CiAJCQkJZm9yX2VhY2hfYWJicmV2KGFyZyArIDE1LCBzaG93X2FiYnJldiwgTlVMTCk7CiAJCQkJY29udGludWU7CiAJCQl9CkBAIC02MzAsMzUgKzYzOSw1MiBAQAogCQkJCWZvcl9lYWNoX3JlZl9pbigicmVmcy9iaXNlY3QvZ29vZCIsIGFudGlfcmVmZXJlbmNlLCBOVUxMKTsKIAkJCQljb250aW51ZTsKIAkJCX0KLQkJCWlmICghcHJlZml4Y21wKGFyZywgIi0tYnJhbmNoZXM9IikpIHsKKwkJCWlmIChzdGFydHNfd2l0aChhcmcsICItLWJyYW5jaGVzPSIpKSB7CiAJCQkJZm9yX2VhY2hfZ2xvYl9yZWZfaW4oc2hvd19yZWZlcmVuY2UsIGFyZyArIDExLAogCQkJCQkicmVmcy9oZWFkcy8iLCBOVUxMKTsKKwkJCQljbGVhcl9yZWZfZXhjbHVzaW9uKCZyZWZfZXhjbHVkZXMpOwogCQkJCWNvbnRpbnVlOwogCQkJfQogCQkJaWYgKCFzdHJjbXAoYXJnLCAiLS1icmFuY2hlcyIpKSB7CiAJCQkJZm9yX2VhY2hfYnJhbmNoX3JlZihzaG93X3JlZmVyZW5jZSwgTlVMTCk7CisJCQkJY2xlYXJfcmVmX2V4Y2x1c2lvbigmcmVmX2V4Y2x1ZGVzKTsKIAkJCQljb250aW51ZTsKIAkJCX0KLQkJCWlmICghcHJlZml4Y21wKGFyZywgIi0tdGFncz0iKSkgeworCQkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tdGFncz0iKSkgewogCQkJCWZvcl9lYWNoX2dsb2JfcmVmX2luKHNob3dfcmVmZXJlbmNlLCBhcmcgKyA3LAogCQkJCQkicmVmcy90YWdzLyIsIE5VTEwpOworCQkJCWNsZWFyX3JlZl9leGNsdXNpb24oJnJlZl9leGNsdWRlcyk7CiAJCQkJY29udGludWU7CiAJCQl9CiAJCQlpZiAoIXN0cmNtcChhcmcsICItLXRhZ3MiKSkgewogCQkJCWZvcl9lYWNoX3RhZ19yZWYoc2hvd19yZWZlcmVuY2UsIE5VTEwpOworCQkJCWNsZWFyX3JlZl9leGNsdXNpb24oJnJlZl9leGNsdWRlcyk7CiAJCQkJY29udGludWU7CiAJCQl9Ci0JCQlpZiAoIXByZWZpeGNtcChhcmcsICItLWdsb2I9IikpIHsKKwkJCWlmIChzdGFydHNfd2l0aChhcmcsICItLWdsb2I9IikpIHsKIAkJCQlmb3JfZWFjaF9nbG9iX3JlZihzaG93X3JlZmVyZW5jZSwgYXJnICsgNywgTlVMTCk7CisJCQkJY2xlYXJfcmVmX2V4Y2x1c2lvbigmcmVmX2V4Y2x1ZGVzKTsKIAkJCQljb250aW51ZTsKIAkJCX0KLQkJCWlmICghcHJlZml4Y21wKGFyZywgIi0tcmVtb3Rlcz0iKSkgeworCQkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tcmVtb3Rlcz0iKSkgewogCQkJCWZvcl9lYWNoX2dsb2JfcmVmX2luKHNob3dfcmVmZXJlbmNlLCBhcmcgKyAxMCwKIAkJCQkJInJlZnMvcmVtb3Rlcy8iLCBOVUxMKTsKKwkJCQljbGVhcl9yZWZfZXhjbHVzaW9uKCZyZWZfZXhjbHVkZXMpOwogCQkJCWNvbnRpbnVlOwogCQkJfQogCQkJaWYgKCFzdHJjbXAoYXJnLCAiLS1yZW1vdGVzIikpIHsKIAkJCQlmb3JfZWFjaF9yZW1vdGVfcmVmKHNob3dfcmVmZXJlbmNlLCBOVUxMKTsKKwkJCQljbGVhcl9yZWZfZXhjbHVzaW9uKCZyZWZfZXhjbHVkZXMpOworCQkJCWNvbnRpbnVlOworCQkJfQorCQkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tZXhjbHVkZT0iKSkgeworCQkJCWFkZF9yZWZfZXhjbHVzaW9uKCZyZWZfZXhjbHVkZXMsIGFyZyArIDEwKTsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCWlmICghc3RyY21wKGFyZywgIi0tbG9jYWwtZW52LXZhcnMiKSkgeworCQkJCWludCBpOworCQkJCWZvciAoaSA9IDA7IGxvY2FsX3JlcG9fZW52W2ldOyBpKyspCisJCQkJCXByaW50ZigiJXNcbiIsIGxvY2FsX3JlcG9fZW52W2ldKTsKIAkJCQljb250aW51ZTsKIAkJCX0KIAkJCWlmICghc3RyY21wKGFyZywgIi0tc2hvdy10b3BsZXZlbCIpKSB7CkBAIC03MTEsNiArNzM3LDEzIEBACiAJCQkJcHJpbnRmKCIlcyVzLmdpdFxuIiwgY3dkLCBsZW4gJiYgY3dkW2xlbi0xXSAhPSAnLycgPyAiLyIgOiAiIik7CiAJCQkJY29udGludWU7CiAJCQl9CisJCQlpZiAoIXN0cmNtcChhcmcsICItLXJlc29sdmUtZ2l0LWRpciIpKSB7CisJCQkJY29uc3QgY2hhciAqZ2l0ZGlyID0gcmVzb2x2ZV9naXRkaXIoYXJndltpKzFdKTsKKwkJCQlpZiAoIWdpdGRpcikKKwkJCQkJZGllKCJub3QgYSBnaXRkaXIgJyVzJyIsIGFyZ3ZbaSsxXSk7CisJCQkJcHV0cyhnaXRkaXIpOworCQkJCWNvbnRpbnVlOworCQkJfQogCQkJaWYgKCFzdHJjbXAoYXJnLCAiLS1pcy1pbnNpZGUtZ2l0LWRpciIpKSB7CiAJCQkJcHJpbnRmKCIlc1xuIiwgaXNfaW5zaWRlX2dpdF9kaXIoKSA/ICJ0cnVlIgogCQkJCQkJOiAiZmFsc2UiKTsKQEAgLTcyNiwxOSArNzU5LDE5IEBACiAJCQkJCQk6ICJmYWxzZSIpOwogCQkJCWNvbnRpbnVlOwogCQkJfQotCQkJaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1zaW5jZT0iKSkgeworCQkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tc2luY2U9IikpIHsKIAkJCQlzaG93X2RhdGVzdHJpbmcoIi0tbWF4LWFnZT0iLCBhcmcrOCk7CiAJCQkJY29udGludWU7CiAJCQl9Ci0JCQlpZiAoIXByZWZpeGNtcChhcmcsICItLWFmdGVyPSIpKSB7CisJCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1hZnRlcj0iKSkgewogCQkJCXNob3dfZGF0ZXN0cmluZygiLS1tYXgtYWdlPSIsIGFyZys4KTsKIAkJCQljb250aW51ZTsKIAkJCX0KLQkJCWlmICghcHJlZml4Y21wKGFyZywgIi0tYmVmb3JlPSIpKSB7CisJCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1iZWZvcmU9IikpIHsKIAkJCQlzaG93X2RhdGVzdHJpbmcoIi0tbWluLWFnZT0iLCBhcmcrOSk7CiAJCQkJY29udGludWU7CiAJCQl9Ci0JCQlpZiAoIXByZWZpeGNtcChhcmcsICItLXVudGlsPSIpKSB7CisJCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS11bnRpbD0iKSkgewogCQkJCXNob3dfZGF0ZXN0cmluZygiLS1taW4tYWdlPSIsIGFyZys4KTsKIAkJCQljb250aW51ZTsKIAkJCX0KQEAgLTc2Nyw2ICs4MDAsOCBAQAogCQl9CiAJCWlmICh2ZXJpZnkpCiAJCQlkaWVfbm9fc2luZ2xlX3JldihxdWlldCk7CisJCWlmIChoYXNfZGFzaGRhc2gpCisJCQlkaWUoImJhZCByZXZpc2lvbiAnJXMnIiwgYXJnKTsKIAkJYXNfaXMgPSAxOwogCQlpZiAoIXNob3dfZmlsZShhcmcsIG91dHB1dF9wcmVmaXgpKQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9idWlsdGluL3JldmVydC5jIGIvYnVpbHRpbi9yZXZlcnQuYwppbmRleCAxZDI2NDhiLi44NzY1OWM5IDEwMDY0NAotLS0gYS9idWlsdGluL3JldmVydC5jCisrKyBiL2J1aWx0aW4vcmV2ZXJ0LmMKQEAgLTcxLDQ0ICs3MSwxOSBAQAogCQlkaWUoXygiJXM6ICVzIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiKSwgbWUsIHRoaXNfb3B0LCBiYXNlX29wdCk7CiB9CiAKLUxBU1RfQVJHX01VU1RfQkVfTlVMTAotc3RhdGljIHZvaWQgdmVyaWZ5X29wdF9tdXR1YWxseV9jb21wYXRpYmxlKGNvbnN0IGNoYXIgKm1lLCAuLi4pCi17Ci0JY29uc3QgY2hhciAqb3B0MSwgKm9wdDIgPSBOVUxMOwotCXZhX2xpc3QgYXA7Ci0KLQl2YV9zdGFydChhcCwgbWUpOwotCXdoaWxlICgob3B0MSA9IHZhX2FyZyhhcCwgY29uc3QgY2hhciAqKSkpIHsKLQkJaWYgKHZhX2FyZyhhcCwgaW50KSkKLQkJCWJyZWFrOwotCX0KLQlpZiAob3B0MSkgewotCQl3aGlsZSAoKG9wdDIgPSB2YV9hcmcoYXAsIGNvbnN0IGNoYXIgKikpKSB7Ci0JCQlpZiAodmFfYXJnKGFwLCBpbnQpKQotCQkJCWJyZWFrOwotCQl9Ci0JfQotCXZhX2VuZChhcCk7Ci0KLQlpZiAob3B0MSAmJiBvcHQyKQotCQlkaWUoXygiJXM6ICVzIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiKSwJbWUsIG9wdDEsIG9wdDIpOwotfQotCiBzdGF0aWMgdm9pZCBwYXJzZV9hcmdzKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IHJlcGxheV9vcHRzICpvcHRzKQogewogCWNvbnN0IGNoYXIgKiBjb25zdCAqIHVzYWdlX3N0ciA9IHJldmVydF9vcl9jaGVycnlfcGlja191c2FnZShvcHRzKTsKIAljb25zdCBjaGFyICptZSA9IGFjdGlvbl9uYW1lKG9wdHMpOwotCWludCByZW1vdmVfc3RhdGUgPSAwOwotCWludCBjb250aW4gPSAwOwotCWludCByb2xsYmFjayA9IDA7CisJaW50IGNtZCA9IDA7CiAJc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7Ci0JCU9QVF9CT09MRUFOKDAsICJxdWl0IiwgJnJlbW92ZV9zdGF0ZSwgTl8oImVuZCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiKSksCi0JCU9QVF9CT09MRUFOKDAsICJjb250aW51ZSIsICZjb250aW4sIE5fKCJyZXN1bWUgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIikpLAotCQlPUFRfQk9PTEVBTigwLCAiYWJvcnQiLCAmcm9sbGJhY2ssIE5fKCJjYW5jZWwgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIikpLAotCQlPUFRfQk9PTEVBTignbicsICJuby1jb21taXQiLCAmb3B0cy0+bm9fY29tbWl0LCBOXygiZG9uJ3QgYXV0b21hdGljYWxseSBjb21taXQiKSksCi0JCU9QVF9CT09MRUFOKCdlJywgImVkaXQiLCAmb3B0cy0+ZWRpdCwgTl8oImVkaXQgdGhlIGNvbW1pdCBtZXNzYWdlIikpLAorCQlPUFRfQ01ETU9ERSgwLCAicXVpdCIsICZjbWQsIE5fKCJlbmQgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIiksICdxJyksCisJCU9QVF9DTURNT0RFKDAsICJjb250aW51ZSIsICZjbWQsIE5fKCJyZXN1bWUgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIiksICdjJyksCisJCU9QVF9DTURNT0RFKDAsICJhYm9ydCIsICZjbWQsIE5fKCJjYW5jZWwgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIiksICdhJyksCisJCU9QVF9CT09MKCduJywgIm5vLWNvbW1pdCIsICZvcHRzLT5ub19jb21taXQsIE5fKCJkb24ndCBhdXRvbWF0aWNhbGx5IGNvbW1pdCIpKSwKKwkJT1BUX0JPT0woJ2UnLCAiZWRpdCIsICZvcHRzLT5lZGl0LCBOXygiZWRpdCB0aGUgY29tbWl0IG1lc3NhZ2UiKSksCiAJCU9QVF9OT09QX05PQVJHKCdyJywgTlVMTCksCi0JCU9QVF9CT09MRUFOKCdzJywgInNpZ25vZmYiLCAmb3B0cy0+c2lnbm9mZiwgTl8oImFkZCBTaWduZWQtb2ZmLWJ5OiIpKSwKKwkJT1BUX0JPT0woJ3MnLCAic2lnbm9mZiIsICZvcHRzLT5zaWdub2ZmLCBOXygiYWRkIFNpZ25lZC1vZmYtYnk6IikpLAogCQlPUFRfSU5URUdFUignbScsICJtYWlubGluZSIsICZvcHRzLT5tYWlubGluZSwgTl8oInBhcmVudCBudW1iZXIiKSksCiAJCU9QVF9SRVJFUkVfQVVUT1VQREFURSgmb3B0cy0+YWxsb3dfcmVyZXJlX2F1dG8pLAogCQlPUFRfU1RSSU5HKDAsICJzdHJhdGVneSIsICZvcHRzLT5zdHJhdGVneSwgTl8oInN0cmF0ZWd5IiksIE5fKCJtZXJnZSBzdHJhdGVneSIpKSwKQEAgLTEyNCwxMSArOTksMTEgQEAKIAogCWlmIChvcHRzLT5hY3Rpb24gPT0gUkVQTEFZX1BJQ0spIHsKIAkJc3RydWN0IG9wdGlvbiBjcF9leHRyYVtdID0gewotCQkJT1BUX0JPT0xFQU4oJ3gnLCBOVUxMLCAmb3B0cy0+cmVjb3JkX29yaWdpbiwgTl8oImFwcGVuZCBjb21taXQgbmFtZSIpKSwKLQkJCU9QVF9CT09MRUFOKDAsICJmZiIsICZvcHRzLT5hbGxvd19mZiwgTl8oImFsbG93IGZhc3QtZm9yd2FyZCIpKSwKLQkJCU9QVF9CT09MRUFOKDAsICJhbGxvdy1lbXB0eSIsICZvcHRzLT5hbGxvd19lbXB0eSwgTl8oInByZXNlcnZlIGluaXRpYWxseSBlbXB0eSBjb21taXRzIikpLAotCQkJT1BUX0JPT0xFQU4oMCwgImFsbG93LWVtcHR5LW1lc3NhZ2UiLCAmb3B0cy0+YWxsb3dfZW1wdHlfbWVzc2FnZSwgTl8oImFsbG93IGNvbW1pdHMgd2l0aCBlbXB0eSBtZXNzYWdlcyIpKSwKLQkJCU9QVF9CT09MRUFOKDAsICJrZWVwLXJlZHVuZGFudC1jb21taXRzIiwgJm9wdHMtPmtlZXBfcmVkdW5kYW50X2NvbW1pdHMsIE5fKCJrZWVwIHJlZHVuZGFudCwgZW1wdHkgY29tbWl0cyIpKSwKKwkJCU9QVF9CT09MKCd4JywgTlVMTCwgJm9wdHMtPnJlY29yZF9vcmlnaW4sIE5fKCJhcHBlbmQgY29tbWl0IG5hbWUiKSksCisJCQlPUFRfQk9PTCgwLCAiZmYiLCAmb3B0cy0+YWxsb3dfZmYsIE5fKCJhbGxvdyBmYXN0LWZvcndhcmQiKSksCisJCQlPUFRfQk9PTCgwLCAiYWxsb3ctZW1wdHkiLCAmb3B0cy0+YWxsb3dfZW1wdHksIE5fKCJwcmVzZXJ2ZSBpbml0aWFsbHkgZW1wdHkgY29tbWl0cyIpKSwKKwkJCU9QVF9CT09MKDAsICJhbGxvdy1lbXB0eS1tZXNzYWdlIiwgJm9wdHMtPmFsbG93X2VtcHR5X21lc3NhZ2UsIE5fKCJhbGxvdyBjb21taXRzIHdpdGggZW1wdHkgbWVzc2FnZXMiKSksCisJCQlPUFRfQk9PTCgwLCAia2VlcC1yZWR1bmRhbnQtY29tbWl0cyIsICZvcHRzLT5rZWVwX3JlZHVuZGFudF9jb21taXRzLCBOXygia2VlcCByZWR1bmRhbnQsIGVtcHR5IGNvbW1pdHMiKSksCiAJCQlPUFRfRU5EKCksCiAJCX07CiAJCWlmIChwYXJzZV9vcHRpb25zX2NvbmNhdChvcHRpb25zLCBBUlJBWV9TSVpFKG9wdGlvbnMpLCBjcF9leHRyYSkpCkBAIC0xMzksMjMgKzExNCwxNiBAQAogCQkJUEFSU0VfT1BUX0tFRVBfQVJHVjAgfAogCQkJUEFSU0VfT1BUX0tFRVBfVU5LTk9XTik7CiAKLQkvKiBDaGVjayBmb3IgaW5jb21wYXRpYmxlIHN1YmNvbW1hbmRzICovCi0JdmVyaWZ5X29wdF9tdXR1YWxseV9jb21wYXRpYmxlKG1lLAotCQkJCSItLXF1aXQiLCByZW1vdmVfc3RhdGUsCi0JCQkJIi0tY29udGludWUiLCBjb250aW4sCi0JCQkJIi0tYWJvcnQiLCByb2xsYmFjaywKLQkJCQlOVUxMKTsKLQogCS8qIGltcGxpZXMgYWxsb3dfZW1wdHkgKi8KIAlpZiAob3B0cy0+a2VlcF9yZWR1bmRhbnRfY29tbWl0cykKIAkJb3B0cy0+YWxsb3dfZW1wdHkgPSAxOwogCiAJLyogU2V0IHRoZSBzdWJjb21tYW5kICovCi0JaWYgKHJlbW92ZV9zdGF0ZSkKKwlpZiAoY21kID09ICdxJykKIAkJb3B0cy0+c3ViY29tbWFuZCA9IFJFUExBWV9SRU1PVkVfU1RBVEU7Ci0JZWxzZSBpZiAoY29udGluKQorCWVsc2UgaWYgKGNtZCA9PSAnYycpCiAJCW9wdHMtPnN1YmNvbW1hbmQgPSBSRVBMQVlfQ09OVElOVUU7Ci0JZWxzZSBpZiAocm9sbGJhY2spCisJZWxzZSBpZiAoY21kID09ICdhJykKIAkJb3B0cy0+c3ViY29tbWFuZCA9IFJFUExBWV9ST0xMQkFDSzsKIAllbHNlCiAJCW9wdHMtPnN1YmNvbW1hbmQgPSBSRVBMQVlfTk9ORTsKQEAgLTIwMCw2ICsxNjgsOCBAQAogCQlvcHRzLT5yZXZzLT5ub193YWxrID0gUkVWSVNJT05fV0FMS19OT19XQUxLX1VOU09SVEVEOwogCQlpZiAoYXJnYyA8IDIpCiAJCQl1c2FnZV93aXRoX29wdGlvbnModXNhZ2Vfc3RyLCBvcHRpb25zKTsKKwkJaWYgKCFzdHJjbXAoYXJndlsxXSwgIi0iKSkKKwkJCWFyZ3ZbMV0gPSAiQHstMX0iOwogCQltZW1zZXQoJnNfcl9vcHQsIDAsIHNpemVvZihzX3Jfb3B0KSk7CiAJCXNfcl9vcHQuYXNzdW1lX2Rhc2hkYXNoID0gMTsKIAkJYXJnYyA9IHNldHVwX3JldmlzaW9ucyhhcmdjLCBhcmd2LCBvcHRzLT5yZXZzLCAmc19yX29wdCk7CmRpZmYgLS1naXQgYS9idWlsdGluL3JtLmMgYi9idWlsdGluL3JtLmMKaW5kZXggMGRmMGI0ZC4uM2EwZTBlYSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9ybS5jCisrKyBiL2J1aWx0aW4vcm0uYwpAQCAtMTEsNiArMTEsNyBAQAogI2luY2x1ZGUgInBhcnNlLW9wdGlvbnMuaCIKICNpbmNsdWRlICJzdHJpbmctbGlzdC5oIgogI2luY2x1ZGUgInN1Ym1vZHVsZS5oIgorI2luY2x1ZGUgInBhdGhzcGVjLmgiCiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYnVpbHRpbl9ybV91c2FnZVtdID0gewogCU5fKCJnaXQgcm0gW29wdGlvbnNdIFstLV0gPGZpbGU+Li4uIiksCkBAIC0yNjcsMTAgKzI2OCwxMCBAQAogc3RhdGljIHN0cnVjdCBvcHRpb24gYnVpbHRpbl9ybV9vcHRpb25zW10gPSB7CiAJT1BUX19EUllfUlVOKCZzaG93X29ubHksIE5fKCJkcnkgcnVuIikpLAogCU9QVF9fUVVJRVQoJnF1aWV0LCBOXygiZG8gbm90IGxpc3QgcmVtb3ZlZCBmaWxlcyIpKSwKLQlPUFRfQk9PTEVBTiggMCAsICJjYWNoZWQiLCAgICAgICAgICZpbmRleF9vbmx5LCBOXygib25seSByZW1vdmUgZnJvbSB0aGUgaW5kZXgiKSksCisJT1BUX0JPT0woIDAgLCAiY2FjaGVkIiwgICAgICAgICAmaW5kZXhfb25seSwgTl8oIm9ubHkgcmVtb3ZlIGZyb20gdGhlIGluZGV4IikpLAogCU9QVF9fRk9SQ0UoJmZvcmNlLCBOXygib3ZlcnJpZGUgdGhlIHVwLXRvLWRhdGUgY2hlY2siKSksCi0JT1BUX0JPT0xFQU4oJ3InLCBOVUxMLCAgICAgICAgICAgICAmcmVjdXJzaXZlLCAgTl8oImFsbG93IHJlY3Vyc2l2ZSByZW1vdmFsIikpLAotCU9QVF9CT09MRUFOKCAwICwgImlnbm9yZS11bm1hdGNoIiwgJmlnbm9yZV91bm1hdGNoLAorCU9QVF9CT09MKCdyJywgTlVMTCwgICAgICAgICAgICAgJnJlY3Vyc2l2ZSwgIE5fKCJhbGxvdyByZWN1cnNpdmUgcmVtb3ZhbCIpKSwKKwlPUFRfQk9PTCggMCAsICJpZ25vcmUtdW5tYXRjaCIsICZpZ25vcmVfdW5tYXRjaCwKIAkJCQlOXygiZXhpdCB3aXRoIGEgemVybyBzdGF0dXMgZXZlbiBpZiBub3RoaW5nIG1hdGNoZWQiKSksCiAJT1BUX0VORCgpLAogfTsKQEAgLTI3OCw5ICsyNzksMTAgQEAKIGludCBjbWRfcm0oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCiB7CiAJaW50IGksIG5ld2ZkOwotCWNvbnN0IGNoYXIgKipwYXRoc3BlYzsKKwlzdHJ1Y3QgcGF0aHNwZWMgcGF0aHNwZWM7CiAJY2hhciAqc2VlbjsKIAorCWdpdG1vZHVsZXNfY29uZmlnKCk7CiAJZ2l0X2NvbmZpZyhnaXRfZGVmYXVsdF9jb25maWcsIE5VTEwpOwogCiAJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgcHJlZml4LCBidWlsdGluX3JtX29wdGlvbnMsCkBAIC0yOTYsNDYgKzI5OCwzNSBAQAogCWlmIChyZWFkX2NhY2hlKCkgPCAwKQogCQlkaWUoXygiaW5kZXggZmlsZSBjb3JydXB0IikpOwogCi0JLyoKLQkgKiBEcm9wIHRyYWlsaW5nIGRpcmVjdG9yeSBzZXBhcmF0b3JzIGZyb20gZGlyZWN0b3JpZXMgc28gd2UnbGwgZmluZAotCSAqIHN1Ym1vZHVsZXMgaW4gdGhlIGluZGV4LgotCSAqLwotCWZvciAoaSA9IDA7IGkgPCBhcmdjOyBpKyspIHsKLQkJc2l6ZV90IHBhdGhsZW4gPSBzdHJsZW4oYXJndltpXSk7Ci0JCWlmIChwYXRobGVuICYmIGlzX2Rpcl9zZXAoYXJndltpXVtwYXRobGVuIC0gMV0pICYmCi0JCSAgICBpc19kaXJlY3RvcnkoYXJndltpXSkpIHsKLQkJCWRvIHsKLQkJCQlwYXRobGVuLS07Ci0JCQl9IHdoaWxlIChwYXRobGVuICYmIGlzX2Rpcl9zZXAoYXJndltpXVtwYXRobGVuIC0gMV0pKTsKLQkJCWFyZ3ZbaV0gPSB4bWVtZHVweihhcmd2W2ldLCBwYXRobGVuKTsKLQkJfQotCX0KKwlwYXJzZV9wYXRoc3BlYygmcGF0aHNwZWMsIDAsCisJCSAgICAgICBQQVRIU1BFQ19QUkVGRVJfQ1dEIHwKKwkJICAgICAgIFBBVEhTUEVDX1NUUklQX1NVQk1PRFVMRV9TTEFTSF9DSEVBUCwKKwkJICAgICAgIHByZWZpeCwgYXJndik7CisJcmVmcmVzaF9pbmRleCgmdGhlX2luZGV4LCBSRUZSRVNIX1FVSUVULCAmcGF0aHNwZWMsIE5VTEwsIE5VTEwpOwogCi0JcGF0aHNwZWMgPSBnZXRfcGF0aHNwZWMocHJlZml4LCBhcmd2KTsKLQlyZWZyZXNoX2luZGV4KCZ0aGVfaW5kZXgsIFJFRlJFU0hfUVVJRVQsIHBhdGhzcGVjLCBOVUxMLCBOVUxMKTsKLQotCXNlZW4gPSBOVUxMOwotCWZvciAoaSA9IDA7IHBhdGhzcGVjW2ldIDsgaSsrKQotCQkvKiBub3RoaW5nICovOwotCXNlZW4gPSB4Y2FsbG9jKGksIDEpOworCXNlZW4gPSB4Y2FsbG9jKHBhdGhzcGVjLm5yLCAxKTsKIAogCWZvciAoaSA9IDA7IGkgPCBhY3RpdmVfbnI7IGkrKykgewogCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2ldOwotCQlpZiAoIW1hdGNoX3BhdGhzcGVjKHBhdGhzcGVjLCBjZS0+bmFtZSwgY2VfbmFtZWxlbihjZSksIDAsIHNlZW4pKQorCQlpZiAoIW1hdGNoX3BhdGhzcGVjX2RlcHRoKCZwYXRoc3BlYywgY2UtPm5hbWUsIGNlX25hbWVsZW4oY2UpLCAwLCBzZWVuKSkKIAkJCWNvbnRpbnVlOwogCQlBTExPQ19HUk9XKGxpc3QuZW50cnksIGxpc3QubnIgKyAxLCBsaXN0LmFsbG9jKTsKIAkJbGlzdC5lbnRyeVtsaXN0Lm5yXS5uYW1lID0gY2UtPm5hbWU7Ci0JCWxpc3QuZW50cnlbbGlzdC5ucisrXS5pc19zdWJtb2R1bGUgPSBTX0lTR0lUTElOSyhjZS0+Y2VfbW9kZSk7CisJCWxpc3QuZW50cnlbbGlzdC5ucl0uaXNfc3VibW9kdWxlID0gU19JU0dJVExJTksoY2UtPmNlX21vZGUpOworCQlpZiAobGlzdC5lbnRyeVtsaXN0Lm5yKytdLmlzX3N1Ym1vZHVsZSAmJgorCQkgICAgIWlzX3N0YWdpbmdfZ2l0bW9kdWxlc19vaygpKQorCQkJZGllIChfKCJQbGVhc2UsIHN0YWdlIHlvdXIgY2hhbmdlcyB0byAuZ2l0bW9kdWxlcyBvciBzdGFzaCB0aGVtIHRvIHByb2NlZWQiKSk7CiAJfQogCi0JaWYgKHBhdGhzcGVjKSB7Ci0JCWNvbnN0IGNoYXIgKm1hdGNoOworCWlmIChwYXRoc3BlYy5ucikgeworCQljb25zdCBjaGFyICpvcmlnaW5hbDsKIAkJaW50IHNlZW5fYW55ID0gMDsKLQkJZm9yIChpID0gMDsgKG1hdGNoID0gcGF0aHNwZWNbaV0pICE9IE5VTEwgOyBpKyspIHsKKwkJZm9yIChpID0gMDsgaSA8IHBhdGhzcGVjLm5yOyBpKyspIHsKKwkJCW9yaWdpbmFsID0gcGF0aHNwZWMuaXRlbXNbaV0ub3JpZ2luYWw7CiAJCQlpZiAoIXNlZW5baV0pIHsKIAkJCQlpZiAoIWlnbm9yZV91bm1hdGNoKSB7CiAJCQkJCWRpZShfKCJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIiksCi0JCQkJCSAgICBtYXRjaCk7CisJCQkJCSAgICBvcmlnaW5hbCk7CiAJCQkJfQogCQkJfQogCQkJZWxzZSB7CkBAIC0zNDMsMTAgKzMzNCwxMCBAQAogCQkJfQogCQkJaWYgKCFyZWN1cnNpdmUgJiYgc2VlbltpXSA9PSBNQVRDSEVEX1JFQ1VSU0lWRUxZKQogCQkJCWRpZShfKCJub3QgcmVtb3ZpbmcgJyVzJyByZWN1cnNpdmVseSB3aXRob3V0IC1yIiksCi0JCQkJICAgICptYXRjaCA/IG1hdGNoIDogIi4iKTsKKwkJCQkgICAgKm9yaWdpbmFsID8gb3JpZ2luYWwgOiAiLiIpOwogCQl9CiAKLQkJaWYgKCEgc2Vlbl9hbnkpCisJCWlmICghc2Vlbl9hbnkpCiAJCQlleGl0KDApOwogCX0KIApAQCAtMzk2LDEzICszODcsMTUgQEAKIAkgKiBpbiB0aGUgbWlkZGxlKQogCSAqLwogCWlmICghaW5kZXhfb25seSkgewotCQlpbnQgcmVtb3ZlZCA9IDA7CisJCWludCByZW1vdmVkID0gMCwgZ2l0bW9kdWxlc19tb2RpZmllZCA9IDA7CiAJCWZvciAoaSA9IDA7IGkgPCBsaXN0Lm5yOyBpKyspIHsKIAkJCWNvbnN0IGNoYXIgKnBhdGggPSBsaXN0LmVudHJ5W2ldLm5hbWU7CiAJCQlpZiAobGlzdC5lbnRyeVtpXS5pc19zdWJtb2R1bGUpIHsKIAkJCQlpZiAoaXNfZW1wdHlfZGlyKHBhdGgpKSB7CiAJCQkJCWlmICghcm1kaXIocGF0aCkpIHsKIAkJCQkJCXJlbW92ZWQgPSAxOworCQkJCQkJaWYgKCFyZW1vdmVfcGF0aF9mcm9tX2dpdG1vZHVsZXMocGF0aCkpCisJCQkJCQkJZ2l0bW9kdWxlc19tb2RpZmllZCA9IDE7CiAJCQkJCQljb250aW51ZTsKIAkJCQkJfQogCQkJCX0gZWxzZSB7CkBAIC00MTAsOSArNDAzLDE0IEBACiAJCQkJCXN0cmJ1Zl9hZGRzdHIoJmJ1ZiwgcGF0aCk7CiAJCQkJCWlmICghcmVtb3ZlX2Rpcl9yZWN1cnNpdmVseSgmYnVmLCAwKSkgewogCQkJCQkJcmVtb3ZlZCA9IDE7CisJCQkJCQlpZiAoIXJlbW92ZV9wYXRoX2Zyb21fZ2l0bW9kdWxlcyhwYXRoKSkKKwkJCQkJCQlnaXRtb2R1bGVzX21vZGlmaWVkID0gMTsKIAkJCQkJCXN0cmJ1Zl9yZWxlYXNlKCZidWYpOwogCQkJCQkJY29udGludWU7Ci0JCQkJCX0KKwkJCQkJfSBlbHNlIGlmICghZmlsZV9leGlzdHMocGF0aCkpCisJCQkJCQkvKiBTdWJtb2R1bGUgd2FzIHJlbW92ZWQgYnkgdXNlciAqLworCQkJCQkJaWYgKCFyZW1vdmVfcGF0aF9mcm9tX2dpdG1vZHVsZXMocGF0aCkpCisJCQkJCQkJZ2l0bW9kdWxlc19tb2RpZmllZCA9IDE7CiAJCQkJCXN0cmJ1Zl9yZWxlYXNlKCZidWYpOwogCQkJCQkvKiBGYWxsdGhyb3VnaCBhbmQgbGV0IHJlbW92ZV9wYXRoKCkgZmFpbC4gKi8KIAkJCQl9CkBAIC00MjQsNiArNDIyLDggQEAKIAkJCWlmICghcmVtb3ZlZCkKIAkJCQlkaWVfZXJybm8oImdpdCBybTogJyVzJyIsIHBhdGgpOwogCQl9CisJCWlmIChnaXRtb2R1bGVzX21vZGlmaWVkKQorCQkJc3RhZ2VfdXBkYXRlZF9naXRtb2R1bGVzKCk7CiAJfQogCiAJaWYgKGFjdGl2ZV9jYWNoZV9jaGFuZ2VkKSB7CmRpZmYgLS1naXQgYS9idWlsdGluL3NlbmQtcGFjay5jIGIvYnVpbHRpbi9zZW5kLXBhY2suYwppbmRleCAxNTJjNGVhLi5mNDIwYjc0IDEwMDY0NAotLS0gYS9idWlsdGluL3NlbmQtcGFjay5jCisrKyBiL2J1aWx0aW4vc2VuZC1wYWNrLmMKQEAgLTUsMTAgKzUsMTIgQEAKICNpbmNsdWRlICJzaWRlYmFuZC5oIgogI2luY2x1ZGUgInJ1bi1jb21tYW5kLmgiCiAjaW5jbHVkZSAicmVtb3RlLmgiCisjaW5jbHVkZSAiY29ubmVjdC5oIgogI2luY2x1ZGUgInNlbmQtcGFjay5oIgogI2luY2x1ZGUgInF1b3RlLmgiCiAjaW5jbHVkZSAidHJhbnNwb3J0LmgiCiAjaW5jbHVkZSAidmVyc2lvbi5oIgorI2luY2x1ZGUgInNoYTEtYXJyYXkuaCIKIAogc3RhdGljIGNvbnN0IGNoYXIgc2VuZF9wYWNrX3VzYWdlW10gPQogImdpdCBzZW5kLXBhY2sgWy0tYWxsIHwgLS1taXJyb3JdIFstLWRyeS1ydW5dIFstLWZvcmNlXSBbLS1yZWNlaXZlLXBhY2s9PGdpdC1yZWNlaXZlLXBhY2s+XSBbLS12ZXJib3NlXSBbLS10aGluXSBbPGhvc3Q+Ol08ZGlyZWN0b3J5PiBbPHJlZj4uLi5dXG4iCkBAIC01NCw2ICs1NiwxMSBAQAogCQkJbXNnID0gIm5lZWRzIGZvcmNlIjsKIAkJCWJyZWFrOwogCisJCWNhc2UgUkVGX1NUQVRVU19SRUpFQ1RfU1RBTEU6CisJCQlyZXMgPSAiZXJyb3IiOworCQkJbXNnID0gInN0YWxlIGluZm8iOworCQkJYnJlYWs7CisKIAkJY2FzZSBSRUZfU1RBVFVTX1JFSkVDVF9BTFJFQURZX0VYSVNUUzoKIAkJCXJlcyA9ICJlcnJvciI7CiAJCQltc2cgPSAiYWxyZWFkeSBleGlzdHMiOwpAQCAtOTMsNyArMTAwLDggQEAKIAljb25zdCBjaGFyICpkZXN0ID0gTlVMTDsKIAlpbnQgZmRbMl07CiAJc3RydWN0IGNoaWxkX3Byb2Nlc3MgKmNvbm47Ci0Jc3RydWN0IGV4dHJhX2hhdmVfb2JqZWN0cyBleHRyYV9oYXZlOworCXN0cnVjdCBzaGExX2FycmF5IGV4dHJhX2hhdmUgPSBTSEExX0FSUkFZX0lOSVQ7CisJc3RydWN0IHNoYTFfYXJyYXkgc2hhbGxvdyA9IFNIQTFfQVJSQVlfSU5JVDsKIAlzdHJ1Y3QgcmVmICpyZW1vdGVfcmVmcywgKmxvY2FsX3JlZnM7CiAJaW50IHJldDsKIAlpbnQgaGVscGVyX3N0YXR1cyA9IDA7CkBAIC0xMDIsMjEgKzExMCwyMiBAQAogCWludCBmbGFnczsKIAl1bnNpZ25lZCBpbnQgcmVqZWN0X3JlYXNvbnM7CiAJaW50IHByb2dyZXNzID0gLTE7CisJc3RydWN0IHB1c2hfY2FzX29wdGlvbiBjYXMgPSB7MH07CiAKIAlhcmd2Kys7CiAJZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKywgYXJndisrKSB7CiAJCWNvbnN0IGNoYXIgKmFyZyA9ICphcmd2OwogCiAJCWlmICgqYXJnID09ICctJykgewotCQkJaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1yZWNlaXZlLXBhY2s9IikpIHsKKwkJCWlmIChzdGFydHNfd2l0aChhcmcsICItLXJlY2VpdmUtcGFjaz0iKSkgewogCQkJCXJlY2VpdmVwYWNrID0gYXJnICsgMTU7CiAJCQkJY29udGludWU7CiAJCQl9Ci0JCQlpZiAoIXByZWZpeGNtcChhcmcsICItLWV4ZWM9IikpIHsKKwkJCWlmIChzdGFydHNfd2l0aChhcmcsICItLWV4ZWM9IikpIHsKIAkJCQlyZWNlaXZlcGFjayA9IGFyZyArIDc7CiAJCQkJY29udGludWU7CiAJCQl9Ci0JCQlpZiAoIXByZWZpeGNtcChhcmcsICItLXJlbW90ZT0iKSkgeworCQkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tcmVtb3RlPSIpKSB7CiAJCQkJcmVtb3RlX25hbWUgPSBhcmcgKyA5OwogCQkJCWNvbnRpbnVlOwogCQkJfQpAQCAtMTY0LDYgKzE3MywyMiBAQAogCQkJCWhlbHBlcl9zdGF0dXMgPSAxOwogCQkJCWNvbnRpbnVlOwogCQkJfQorCQkJaWYgKCFzdHJjbXAoYXJnLCAiLS0iIENBU19PUFRfTkFNRSkpIHsKKwkJCQlpZiAocGFyc2VfcHVzaF9jYXNfb3B0aW9uKCZjYXMsIE5VTEwsIDApIDwgMCkKKwkJCQkJZXhpdCgxKTsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCWlmICghc3RyY21wKGFyZywgIi0tbm8tIiBDQVNfT1BUX05BTUUpKSB7CisJCQkJaWYgKHBhcnNlX3B1c2hfY2FzX29wdGlvbigmY2FzLCBOVUxMLCAxKSA8IDApCisJCQkJCWV4aXQoMSk7CisJCQkJY29udGludWU7CisJCQl9CisJCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS0iIENBU19PUFRfTkFNRSAiPSIpKSB7CisJCQkJaWYgKHBhcnNlX3B1c2hfY2FzX29wdGlvbigmY2FzLAorCQkJCQkJCSAgc3RyY2hyKGFyZywgJz0nKSArIDEsIDApIDwgMCkKKwkJCQkJZXhpdCgxKTsKKwkJCQljb250aW51ZTsKKwkJCX0KIAkJCXVzYWdlKHNlbmRfcGFja191c2FnZSk7CiAJCX0KIAkJaWYgKCFkZXN0KSB7CkBAIC0yMDUsOSArMjMwLDggQEAKIAkJCWFyZ3MudmVyYm9zZSA/IENPTk5FQ1RfVkVSQk9TRSA6IDApOwogCX0KIAotCW1lbXNldCgmZXh0cmFfaGF2ZSwgMCwgc2l6ZW9mKGV4dHJhX2hhdmUpKTsKLQotCWdldF9yZW1vdGVfaGVhZHMoZmRbMF0sIE5VTEwsIDAsICZyZW1vdGVfcmVmcywgUkVGX05PUk1BTCwgJmV4dHJhX2hhdmUpOworCWdldF9yZW1vdGVfaGVhZHMoZmRbMF0sIE5VTEwsIDAsICZyZW1vdGVfcmVmcywgUkVGX05PUk1BTCwKKwkJCSAmZXh0cmFfaGF2ZSwgJnNoYWxsb3cpOwogCiAJdHJhbnNwb3J0X3ZlcmlmeV9yZW1vdGVfbmFtZXMobnJfcmVmc3BlY3MsIHJlZnNwZWNzKTsKIApAQCAtMjI0LDYgKzI0OCw5IEBACiAJaWYgKG1hdGNoX3B1c2hfcmVmcyhsb2NhbF9yZWZzLCAmcmVtb3RlX3JlZnMsIG5yX3JlZnNwZWNzLCByZWZzcGVjcywgZmxhZ3MpKQogCQlyZXR1cm4gLTE7CiAKKwlpZiAoIWlzX2VtcHR5X2NhcygmY2FzKSkKKwkJYXBwbHlfcHVzaF9jYXMoJmNhcywgcmVtb3RlLCByZW1vdGVfcmVmcyk7CisKIAlzZXRfcmVmX3N0YXR1c19mb3JfcHVzaChyZW1vdGVfcmVmcywgYXJncy5zZW5kX21pcnJvciwKIAkJYXJncy5mb3JjZV91cGRhdGUpOwogCmRpZmYgLS1naXQgYS9idWlsdGluL3Nob3J0bG9nLmMgYi9idWlsdGluL3Nob3J0bG9nLmMKaW5kZXggODRmZmJiNy4uNGI3ZTUzNiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9zaG9ydGxvZy5jCisrKyBiL2J1aWx0aW4vc2hvcnRsb2cuYwpAQCAtNjUsNyArNjUsNyBAQAogCWVvbCA9IHN0cmNocihvbmVsaW5lLCAnXG4nKTsKIAlpZiAoIWVvbCkKIAkJZW9sID0gb25lbGluZSArIHN0cmxlbihvbmVsaW5lKTsKLQlpZiAoIXByZWZpeGNtcChvbmVsaW5lLCAiW1BBVENIIikpIHsKKwlpZiAoc3RhcnRzX3dpdGgob25lbGluZSwgIltQQVRDSCIpKSB7CiAJCWNoYXIgKmVvYiA9IHN0cmNocihvbmVsaW5lLCAnXScpOwogCQlpZiAoZW9iICYmICghZW9sIHx8IGVvYiA8IGVvbCkpCiAJCQlvbmVsaW5lID0gZW9iICsgMTsKQEAgLTk1LDcgKzk1LDcgQEAKIAogCXdoaWxlIChmZ2V0cyhhdXRob3IsIHNpemVvZihhdXRob3IpLCBzdGRpbikgIT0gTlVMTCkgewogCQlpZiAoIShhdXRob3JbMF0gPT0gJ0EnIHx8IGF1dGhvclswXSA9PSAnYScpIHx8Ci0JCSAgICBwcmVmaXhjbXAoYXV0aG9yICsgMSwgInV0aG9yOiAiKSkKKwkJICAgICFzdGFydHNfd2l0aChhdXRob3IgKyAxLCAidXRob3I6ICIpKQogCQkJY29udGludWU7CiAJCXdoaWxlIChmZ2V0cyhvbmVsaW5lLCBzaXplb2Yob25lbGluZSksIHN0ZGluKSAmJgogCQkgICAgICAgb25lbGluZVswXSAhPSAnXG4nKQpAQCAtMTIzLDcgKzEyMyw3IEBACiAJCWVsc2UKIAkJCWVvbCsrOwogCi0JCWlmICghcHJlZml4Y21wKGJ1ZmZlciwgImF1dGhvciAiKSkKKwkJaWYgKHN0YXJ0c193aXRoKGJ1ZmZlciwgImF1dGhvciAiKSkKIAkJCWF1dGhvciA9IGJ1ZmZlciArIDc7CiAJCWJ1ZmZlciA9IGVvbDsKIAl9CkBAIC0yMjYsMTIgKzIyNiwxMiBAQAogCWludCBub25naXQgPSAhc3RhcnR1cF9pbmZvLT5oYXZlX3JlcG9zaXRvcnk7CiAKIAlzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7Ci0JCU9QVF9CT09MRUFOKCduJywgIm51bWJlcmVkIiwgJmxvZy5zb3J0X2J5X251bWJlciwKLQkJCSAgICBOXygic29ydCBvdXRwdXQgYWNjb3JkaW5nIHRvIHRoZSBudW1iZXIgb2YgY29tbWl0cyBwZXIgYXV0aG9yIikpLAotCQlPUFRfQk9PTEVBTigncycsICJzdW1tYXJ5IiwgJmxvZy5zdW1tYXJ5LAotCQkJICAgIE5fKCJTdXBwcmVzcyBjb21taXQgZGVzY3JpcHRpb25zLCBvbmx5IHByb3ZpZGVzIGNvbW1pdCBjb3VudCIpKSwKLQkJT1BUX0JPT0xFQU4oJ2UnLCAiZW1haWwiLCAmbG9nLmVtYWlsLAotCQkJICAgIE5fKCJTaG93IHRoZSBlbWFpbCBhZGRyZXNzIG9mIGVhY2ggYXV0aG9yIikpLAorCQlPUFRfQk9PTCgnbicsICJudW1iZXJlZCIsICZsb2cuc29ydF9ieV9udW1iZXIsCisJCQkgTl8oInNvcnQgb3V0cHV0IGFjY29yZGluZyB0byB0aGUgbnVtYmVyIG9mIGNvbW1pdHMgcGVyIGF1dGhvciIpKSwKKwkJT1BUX0JPT0woJ3MnLCAic3VtbWFyeSIsICZsb2cuc3VtbWFyeSwKKwkJCSBOXygiU3VwcHJlc3MgY29tbWl0IGRlc2NyaXB0aW9ucywgb25seSBwcm92aWRlcyBjb21taXQgY291bnQiKSksCisJCU9QVF9CT09MKCdlJywgImVtYWlsIiwgJmxvZy5lbWFpbCwKKwkJCSBOXygiU2hvdyB0aGUgZW1haWwgYWRkcmVzcyBvZiBlYWNoIGF1dGhvciIpKSwKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssICd3JywgTlVMTCwgJmxvZywgTl8oIndbLGkxWyxpMl1dIiksCiAJCQlOXygiTGluZXdyYXAgb3V0cHV0IiksIFBBUlNFX09QVF9PUFRBUkcsICZwYXJzZV93cmFwX2FyZ3MgfSwKIAkJT1BUX0VORCgpLApkaWZmIC0tZ2l0IGEvYnVpbHRpbi9zaG93LWJyYW5jaC5jIGIvYnVpbHRpbi9zaG93LWJyYW5jaC5jCmluZGV4IDk3ODhlYjEuLmQ5MjE3Y2UgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vc2hvdy1icmFuY2guYworKysgYi9idWlsdGluL3Nob3ctYnJhbmNoLmMKQEAgLTIyNyw4ICsyMjcsNyBAQAogCQkJcGFyZW50cyA9IHBhcmVudHMtPm5leHQ7CiAJCQlpZiAoKHRoaXNfZmxhZyAmIGZsYWdzKSA9PSBmbGFncykKIAkJCQljb250aW51ZTsKLQkJCWlmICghcC0+b2JqZWN0LnBhcnNlZCkKLQkJCQlwYXJzZV9jb21taXQocCk7CisJCQlwYXJzZV9jb21taXQocCk7CiAJCQlpZiAobWFya19zZWVuKHAsIHNlZW5fcCkgJiYgIXN0aWxsX2ludGVyZXN0aW5nKQogCQkJCWV4dHJhLS07CiAJCQlwLT5vYmplY3QuZmxhZ3MgfD0gZmxhZ3M7CkBAIC0yODUsNyArMjg0LDcgQEAKIAkJcHBfY29tbWl0X2Vhc3koQ01JVF9GTVRfT05FTElORSwgY29tbWl0LCAmcHJldHR5KTsKIAkJcHJldHR5X3N0ciA9IHByZXR0eS5idWY7CiAJfQotCWlmICghcHJlZml4Y21wKHByZXR0eV9zdHIsICJbUEFUQ0hdICIpKQorCWlmIChzdGFydHNfd2l0aChwcmV0dHlfc3RyLCAiW1BBVENIXSAiKSkKIAkJcHJldHR5X3N0ciArPSA4OwogCiAJaWYgKCFub19uYW1lKSB7CkBAIC0zOTYsNyArMzk1LDcgQEAKIHsKIAl1bnNpZ25lZCBjaGFyIHRtcFsyMF07CiAJaW50IG9mcyA9IDExOwotCWlmIChwcmVmaXhjbXAocmVmbmFtZSwgInJlZnMvaGVhZHMvIikpCisJaWYgKCFzdGFydHNfd2l0aChyZWZuYW1lLCAicmVmcy9oZWFkcy8iKSkKIAkJcmV0dXJuIDA7CiAJLyogSWYgYm90aCBoZWFkcy9mb28gYW5kIHRhZ3MvZm9vIGV4aXN0cywgZ2V0X3NoYTEgd291bGQKIAkgKiBnZXQgY29uZnVzZWQuCkBAIC00MTAsNyArNDA5LDcgQEAKIHsKIAl1bnNpZ25lZCBjaGFyIHRtcFsyMF07CiAJaW50IG9mcyA9IDEzOwotCWlmIChwcmVmaXhjbXAocmVmbmFtZSwgInJlZnMvcmVtb3Rlcy8iKSkKKwlpZiAoIXN0YXJ0c193aXRoKHJlZm5hbWUsICJyZWZzL3JlbW90ZXMvIikpCiAJCXJldHVybiAwOwogCS8qIElmIGJvdGggaGVhZHMvZm9vIGFuZCB0YWdzL2ZvbyBleGlzdHMsIGdldF9zaGExIHdvdWxkCiAJICogZ2V0IGNvbmZ1c2VkLgpAQCAtNDIyLDcgKzQyMSw3IEBACiAKIHN0YXRpYyBpbnQgYXBwZW5kX3RhZ19yZWYoY29uc3QgY2hhciAqcmVmbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IGZsYWcsIHZvaWQgKmNiX2RhdGEpCiB7Ci0JaWYgKHByZWZpeGNtcChyZWZuYW1lLCAicmVmcy90YWdzLyIpKQorCWlmICghc3RhcnRzX3dpdGgocmVmbmFtZSwgInJlZnMvdGFncy8iKSkKIAkJcmV0dXJuIDA7CiAJcmV0dXJuIGFwcGVuZF9yZWYocmVmbmFtZSArIDUsIHNoYTEsIDApOwogfQpAQCAtNDUzLDkgKzQ1Miw5IEBACiAJCXJldHVybiAwOwogCWlmIChmbm1hdGNoKG1hdGNoX3JlZl9wYXR0ZXJuLCB0YWlsLCAwKSkKIAkJcmV0dXJuIDA7Ci0JaWYgKCFwcmVmaXhjbXAocmVmbmFtZSwgInJlZnMvaGVhZHMvIikpCisJaWYgKHN0YXJ0c193aXRoKHJlZm5hbWUsICJyZWZzL2hlYWRzLyIpKQogCQlyZXR1cm4gYXBwZW5kX2hlYWRfcmVmKHJlZm5hbWUsIHNoYTEsIGZsYWcsIGNiX2RhdGEpOwotCWlmICghcHJlZml4Y21wKHJlZm5hbWUsICJyZWZzL3RhZ3MvIikpCisJaWYgKHN0YXJ0c193aXRoKHJlZm5hbWUsICJyZWZzL3RhZ3MvIikpCiAJCXJldHVybiBhcHBlbmRfdGFnX3JlZihyZWZuYW1lLCBzaGExLCBmbGFnLCBjYl9kYXRhKTsKIAlyZXR1cm4gYXBwZW5kX3JlZihyZWZuYW1lLCBzaGExLCAwKTsKIH0KQEAgLTQ4MCwxMSArNDc5LDExIEBACiAJaWYgKCghaGVhZFswXSkgfHwKIAkgICAgKGhlYWRfc2hhMSAmJiBzaGExICYmIGhhc2hjbXAoaGVhZF9zaGExLCBzaGExKSkpCiAJCXJldHVybiAwOwotCWlmICghcHJlZml4Y21wKGhlYWQsICJyZWZzL2hlYWRzLyIpKQorCWlmIChzdGFydHNfd2l0aChoZWFkLCAicmVmcy9oZWFkcy8iKSkKIAkJaGVhZCArPSAxMTsKLQlpZiAoIXByZWZpeGNtcChuYW1lLCAicmVmcy9oZWFkcy8iKSkKKwlpZiAoc3RhcnRzX3dpdGgobmFtZSwgInJlZnMvaGVhZHMvIikpCiAJCW5hbWUgKz0gMTE7Ci0JZWxzZSBpZiAoIXByZWZpeGNtcChuYW1lLCAiaGVhZHMvIikpCisJZWxzZSBpZiAoc3RhcnRzX3dpdGgobmFtZSwgImhlYWRzLyIpKQogCQluYW1lICs9IDY7CiAJcmV0dXJuICFzdHJjbXAoaGVhZCwgbmFtZSk7CiB9CkBAIC02NDYsMzAgKzY0NSwzMCBAQAogCWludCBkZW5zZSA9IDE7CiAJY29uc3QgY2hhciAqcmVmbG9nX2Jhc2UgPSBOVUxMOwogCXN0cnVjdCBvcHRpb24gYnVpbHRpbl9zaG93X2JyYW5jaF9vcHRpb25zW10gPSB7Ci0JCU9QVF9CT09MRUFOKCdhJywgImFsbCIsICZhbGxfaGVhZHMsCi0JCQkgICAgTl8oInNob3cgcmVtb3RlLXRyYWNraW5nIGFuZCBsb2NhbCBicmFuY2hlcyIpKSwKLQkJT1BUX0JPT0xFQU4oJ3InLCAicmVtb3RlcyIsICZhbGxfcmVtb3RlcywKLQkJCSAgICBOXygic2hvdyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMiKSksCisJCU9QVF9CT09MKCdhJywgImFsbCIsICZhbGxfaGVhZHMsCisJCQkgTl8oInNob3cgcmVtb3RlLXRyYWNraW5nIGFuZCBsb2NhbCBicmFuY2hlcyIpKSwKKwkJT1BUX0JPT0woJ3InLCAicmVtb3RlcyIsICZhbGxfcmVtb3RlcywKKwkJCSBOXygic2hvdyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMiKSksCiAJCU9QVF9fQ09MT1IoJnNob3dicmFuY2hfdXNlX2NvbG9yLAogCQkJICAgIE5fKCJjb2xvciAnKiErLScgY29ycmVzcG9uZGluZyB0byB0aGUgYnJhbmNoIikpLAogCQl7IE9QVElPTl9JTlRFR0VSLCAwLCAibW9yZSIsICZleHRyYSwgTl8oIm4iKSwKIAkJCSAgICBOXygic2hvdyA8bj4gbW9yZSBjb21taXRzIGFmdGVyIHRoZSBjb21tb24gYW5jZXN0b3IiKSwKIAkJCSAgICBQQVJTRV9PUFRfT1BUQVJHLCBOVUxMLCAoaW50cHRyX3QpMSB9LAogCQlPUFRfU0VUX0lOVCgwLCAibGlzdCIsICZleHRyYSwgTl8oInN5bm9ueW0gdG8gbW9yZT0tMSIpLCAtMSksCi0JCU9QVF9CT09MRUFOKDAsICJuby1uYW1lIiwgJm5vX25hbWUsIE5fKCJzdXBwcmVzcyBuYW1pbmcgc3RyaW5ncyIpKSwKLQkJT1BUX0JPT0xFQU4oMCwgImN1cnJlbnQiLCAmd2l0aF9jdXJyZW50X2JyYW5jaCwKLQkJCSAgICBOXygiaW5jbHVkZSB0aGUgY3VycmVudCBicmFuY2giKSksCi0JCU9QVF9CT09MRUFOKDAsICJzaGExLW5hbWUiLCAmc2hhMV9uYW1lLAotCQkJICAgIE5fKCJuYW1lIGNvbW1pdHMgd2l0aCB0aGVpciBvYmplY3QgbmFtZXMiKSksCi0JCU9QVF9CT09MRUFOKDAsICJtZXJnZS1iYXNlIiwgJm1lcmdlX2Jhc2UsCi0JCQkgICAgTl8oInNob3cgcG9zc2libGUgbWVyZ2UgYmFzZXMiKSksCi0JCU9QVF9CT09MRUFOKDAsICJpbmRlcGVuZGVudCIsICZpbmRlcGVuZGVudCwKKwkJT1BUX0JPT0woMCwgIm5vLW5hbWUiLCAmbm9fbmFtZSwgTl8oInN1cHByZXNzIG5hbWluZyBzdHJpbmdzIikpLAorCQlPUFRfQk9PTCgwLCAiY3VycmVudCIsICZ3aXRoX2N1cnJlbnRfYnJhbmNoLAorCQkJIE5fKCJpbmNsdWRlIHRoZSBjdXJyZW50IGJyYW5jaCIpKSwKKwkJT1BUX0JPT0woMCwgInNoYTEtbmFtZSIsICZzaGExX25hbWUsCisJCQkgTl8oIm5hbWUgY29tbWl0cyB3aXRoIHRoZWlyIG9iamVjdCBuYW1lcyIpKSwKKwkJT1BUX0JPT0woMCwgIm1lcmdlLWJhc2UiLCAmbWVyZ2VfYmFzZSwKKwkJCSBOXygic2hvdyBwb3NzaWJsZSBtZXJnZSBiYXNlcyIpKSwKKwkJT1BUX0JPT0woMCwgImluZGVwZW5kZW50IiwgJmluZGVwZW5kZW50LAogCQkJICAgIE5fKCJzaG93IHJlZnMgdW5yZWFjaGFibGUgZnJvbSBhbnkgb3RoZXIgcmVmIikpLAogCQlPUFRfU0VUX0lOVCgwLCAidG9wby1vcmRlciIsICZzb3J0X29yZGVyLAogCQkJICAgIE5fKCJzaG93IGNvbW1pdHMgaW4gdG9wb2xvZ2ljYWwgb3JkZXIiKSwKIAkJCSAgICBSRVZfU09SVF9JTl9HUkFQSF9PUkRFUiksCi0JCU9QVF9CT09MRUFOKDAsICJ0b3BpY3MiLCAmdG9waWNzLAotCQkJICAgIE5fKCJzaG93IG9ubHkgY29tbWl0cyBub3Qgb24gdGhlIGZpcnN0IGJyYW5jaCIpKSwKKwkJT1BUX0JPT0woMCwgInRvcGljcyIsICZ0b3BpY3MsCisJCQkgTl8oInNob3cgb25seSBjb21taXRzIG5vdCBvbiB0aGUgZmlyc3QgYnJhbmNoIikpLAogCQlPUFRfU0VUX0lOVCgwLCAic3BhcnNlIiwgJmRlbnNlLAogCQkJICAgIE5fKCJzaG93IG1lcmdlcyByZWFjaGFibGUgZnJvbSBvbmx5IG9uZSB0aXAiKSwgMCksCiAJCU9QVF9TRVRfSU5UKDAsICJkYXRlLW9yZGVyIiwgJnNvcnRfb3JkZXIsCkBAIC04MTMsNyArODEyLDcgQEAKIAkJCQloYXNfaGVhZCsrOwogCQl9CiAJCWlmICghaGFzX2hlYWQpIHsKLQkJCWludCBvZmZzZXQgPSAhcHJlZml4Y21wKGhlYWQsICJyZWZzL2hlYWRzLyIpID8gMTEgOiAwOworCQkJaW50IG9mZnNldCA9IHN0YXJ0c193aXRoKGhlYWQsICJyZWZzL2hlYWRzLyIpID8gMTEgOiAwOwogCQkJYXBwZW5kX29uZV9yZXYoaGVhZCArIG9mZnNldCk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9idWlsdGluL3Nob3ctcmVmLmMgYi9idWlsdGluL3Nob3ctcmVmLmMKaW5kZXggODc4MDZhZC4uNWJhMWYzMCAxMDA2NDQKLS0tIGEvYnVpbHRpbi9zaG93LXJlZi5jCisrKyBiL2J1aWx0aW4vc2hvdy1yZWYuYwpAQCAtMzcsOCArMzcsOCBAQAogCWlmICh0YWdzX29ubHkgfHwgaGVhZHNfb25seSkgewogCQlpbnQgbWF0Y2g7CiAKLQkJbWF0Y2ggPSBoZWFkc19vbmx5ICYmICFwcmVmaXhjbXAocmVmbmFtZSwgInJlZnMvaGVhZHMvIik7Ci0JCW1hdGNoIHw9IHRhZ3Nfb25seSAmJiAhcHJlZml4Y21wKHJlZm5hbWUsICJyZWZzL3RhZ3MvIik7CisJCW1hdGNoID0gaGVhZHNfb25seSAmJiBzdGFydHNfd2l0aChyZWZuYW1lLCAicmVmcy9oZWFkcy8iKTsKKwkJbWF0Y2ggfD0gdGFnc19vbmx5ICYmIHN0YXJ0c193aXRoKHJlZm5hbWUsICJyZWZzL3RhZ3MvIik7CiAJCWlmICghbWF0Y2gpCiAJCQlyZXR1cm4gMDsKIAl9CkBAIC0xNjUsMTYgKzE2NSwxNSBAQAogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBzaG93X3JlZl9vcHRpb25zW10gPSB7Ci0JT1BUX0JPT0xFQU4oMCwgInRhZ3MiLCAmdGFnc19vbmx5LCBOXygib25seSBzaG93IHRhZ3MgKGNhbiBiZSBjb21iaW5lZCB3aXRoIGhlYWRzKSIpKSwKLQlPUFRfQk9PTEVBTigwLCAiaGVhZHMiLCAmaGVhZHNfb25seSwgTl8oIm9ubHkgc2hvdyBoZWFkcyAoY2FuIGJlIGNvbWJpbmVkIHdpdGggdGFncykiKSksCi0JT1BUX0JPT0xFQU4oMCwgInZlcmlmeSIsICZ2ZXJpZnksIE5fKCJzdHJpY3RlciByZWZlcmVuY2UgY2hlY2tpbmcsICIKKwlPUFRfQk9PTCgwLCAidGFncyIsICZ0YWdzX29ubHksIE5fKCJvbmx5IHNob3cgdGFncyAoY2FuIGJlIGNvbWJpbmVkIHdpdGggaGVhZHMpIikpLAorCU9QVF9CT09MKDAsICJoZWFkcyIsICZoZWFkc19vbmx5LCBOXygib25seSBzaG93IGhlYWRzIChjYW4gYmUgY29tYmluZWQgd2l0aCB0YWdzKSIpKSwKKwlPUFRfQk9PTCgwLCAidmVyaWZ5IiwgJnZlcmlmeSwgTl8oInN0cmljdGVyIHJlZmVyZW5jZSBjaGVja2luZywgIgogCQkgICAgInJlcXVpcmVzIGV4YWN0IHJlZiBwYXRoIikpLAotCXsgT1BUSU9OX0JPT0xFQU4sICdoJywgTlVMTCwgJnNob3dfaGVhZCwgTlVMTCwKLQkgIE5fKCJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSwgZXZlbiBpZiBpdCB3b3VsZCBiZSBmaWx0ZXJlZCBvdXQiKSwKLQkgIFBBUlNFX09QVF9OT0FSRyB8IFBBUlNFX09QVF9ISURERU4gfSwKLQlPUFRfQk9PTEVBTigwLCAiaGVhZCIsICZzaG93X2hlYWQsCisJT1BUX0hJRERFTl9CT09MKCdoJywgTlVMTCwgJnNob3dfaGVhZCwKKwkJCU5fKCJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSwgZXZlbiBpZiBpdCB3b3VsZCBiZSBmaWx0ZXJlZCBvdXQiKSksCisJT1BUX0JPT0woMCwgImhlYWQiLCAmc2hvd19oZWFkLAogCSAgTl8oInNob3cgdGhlIEhFQUQgcmVmZXJlbmNlLCBldmVuIGlmIGl0IHdvdWxkIGJlIGZpbHRlcmVkIG91dCIpKSwKLQlPUFRfQk9PTEVBTignZCcsICJkZXJlZmVyZW5jZSIsICZkZXJlZl90YWdzLAorCU9QVF9CT09MKCdkJywgImRlcmVmZXJlbmNlIiwgJmRlcmVmX3RhZ3MsCiAJCSAgICBOXygiZGVyZWZlcmVuY2UgdGFncyBpbnRvIG9iamVjdCBJRHMiKSksCiAJeyBPUFRJT05fQ0FMTEJBQ0ssICdzJywgImhhc2giLCAmYWJicmV2LCBOXygibiIpLAogCSAgTl8oIm9ubHkgc2hvdyBTSEExIGhhc2ggdXNpbmcgPG4+IGRpZ2l0cyIpLApAQCAtMjExLDcgKzIxMCw3IEBACiAJCXdoaWxlICgqcGF0dGVybikgewogCQkJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKIAotCQkJaWYgKCFwcmVmaXhjbXAoKnBhdHRlcm4sICJyZWZzLyIpICYmCisJCQlpZiAoc3RhcnRzX3dpdGgoKnBhdHRlcm4sICJyZWZzLyIpICYmCiAJCQkgICAgIXJlYWRfcmVmKCpwYXR0ZXJuLCBzaGExKSkgewogCQkJCWlmICghcXVpZXQpCiAJCQkJCXNob3dfb25lKCpwYXR0ZXJuLCBzaGExKTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vc3RyaXBzcGFjZS5jIGIvYnVpbHRpbi9zdHJpcHNwYWNlLmMKaW5kZXggZTk4MWRmYi4uMTI1OWVkNyAxMDA2NDQKLS0tIGEvYnVpbHRpbi9zdHJpcHNwYWNlLmMKKysrIGIvYnVpbHRpbi9zdHJpcHNwYWNlLmMKQEAgLTg5LDExICs4OSwxMSBAQAogCiAJaWYgKGFyZ2MgPT0gMikgewogCQlpZiAoIXN0cmNtcChhcmd2WzFdLCAiLXMiKSB8fAotCQkJIXN0cmNtcChhcmd2WzFdLCAiLS1zdHJpcC1jb21tZW50cyIpKSB7Ci0JCQkgc3RyaXBfY29tbWVudHMgPSAxOworCQkgICAgIXN0cmNtcChhcmd2WzFdLCAiLS1zdHJpcC1jb21tZW50cyIpKSB7CisJCQlzdHJpcF9jb21tZW50cyA9IDE7CiAJCX0gZWxzZSBpZiAoIXN0cmNtcChhcmd2WzFdLCAiLWMiKSB8fAotCQkJCQkgIXN0cmNtcChhcmd2WzFdLCAiLS1jb21tZW50LWxpbmVzIikpIHsKLQkJCSBtb2RlID0gQ09NTUVOVF9MSU5FUzsKKwkJCSAgICFzdHJjbXAoYXJndlsxXSwgIi0tY29tbWVudC1saW5lcyIpKSB7CisJCQltb2RlID0gQ09NTUVOVF9MSU5FUzsKIAkJfSBlbHNlIHsKIAkJCW1vZGUgPSBJTlZBTDsKIAkJfQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9zeW1ib2xpYy1yZWYuYyBiL2J1aWx0aW4vc3ltYm9saWMtcmVmLmMKaW5kZXggZjQ4MTk1OS4uYjZhNzExZCAxMDA2NDQKLS0tIGEvYnVpbHRpbi9zeW1ib2xpYy1yZWYuYworKysgYi9idWlsdGluL3N5bWJvbGljLXJlZi5jCkBAIC00Nyw3ICs0Nyw3IEBACiAJZ2l0X2NvbmZpZyhnaXRfZGVmYXVsdF9jb25maWcsIE5VTEwpOwogCWFyZ2MgPSBwYXJzZV9vcHRpb25zKGFyZ2MsIGFyZ3YsIHByZWZpeCwgb3B0aW9ucywKIAkJCSAgICAgZ2l0X3N5bWJvbGljX3JlZl91c2FnZSwgMCk7Ci0JaWYgKG1zZyAmJiEqbXNnKQorCWlmIChtc2cgJiYgISptc2cpCiAJCWRpZSgiUmVmdXNpbmcgdG8gcGVyZm9ybSB1cGRhdGUgd2l0aCBlbXB0eSBtZXNzYWdlIik7CiAKIAlpZiAoZGVsZXRlKSB7CkBAIC02NSw3ICs2NSw3IEBACiAJCWJyZWFrOwogCWNhc2UgMjoKIAkJaWYgKCFzdHJjbXAoYXJndlswXSwgIkhFQUQiKSAmJgotCQkgICAgcHJlZml4Y21wKGFyZ3ZbMV0sICJyZWZzLyIpKQorCQkgICAgIXN0YXJ0c193aXRoKGFyZ3ZbMV0sICJyZWZzLyIpKQogCQkJZGllKCJSZWZ1c2luZyB0byBwb2ludCBIRUFEIG91dHNpZGUgb2YgcmVmcy8iKTsKIAkJY3JlYXRlX3N5bXJlZihhcmd2WzBdLCBhcmd2WzFdLCBtc2cpOwogCQlicmVhazsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vdGFnLmMgYi9idWlsdGluL3RhZy5jCmluZGV4IGFmM2FmM2YuLjc0ZDM3ODAgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vdGFnLmMKKysrIGIvYnVpbHRpbi90YWcuYwpAQCAtMjU5LDcgKzI1OSw3IEBACiAJaW50IHN0YXR1cyA9IGdpdF9ncGdfY29uZmlnKHZhciwgdmFsdWUsIGNiKTsKIAlpZiAoc3RhdHVzKQogCQlyZXR1cm4gc3RhdHVzOwotCWlmICghcHJlZml4Y21wKHZhciwgImNvbHVtbi4iKSkKKwlpZiAoc3RhcnRzX3dpdGgodmFyLCAiY29sdW1uLiIpKQogCQlyZXR1cm4gZ2l0X2NvbHVtbl9jb25maWcodmFyLCB2YWx1ZSwgInRhZyIsICZjb2xvcHRzKTsKIAlyZXR1cm4gZ2l0X2RlZmF1bHRfY29uZmlnKHZhciwgdmFsdWUsIGNiKTsKIH0KQEAgLTQzNiwyNiArNDM2LDI2IEBACiAJc3RydWN0IHJlZl9sb2NrICpsb2NrOwogCXN0cnVjdCBjcmVhdGVfdGFnX29wdGlvbnMgb3B0OwogCWNoYXIgKmNsZWFudXBfYXJnID0gTlVMTDsKLQlpbnQgYW5ub3RhdGUgPSAwLCBmb3JjZSA9IDAsIGxpbmVzID0gLTEsIGxpc3QgPSAwLAotCQlkZWxldGUgPSAwLCB2ZXJpZnkgPSAwOworCWludCBhbm5vdGF0ZSA9IDAsIGZvcmNlID0gMCwgbGluZXMgPSAtMTsKKwlpbnQgY21kbW9kZSA9IDA7CiAJY29uc3QgY2hhciAqbXNnZmlsZSA9IE5VTEwsICprZXlpZCA9IE5VTEw7CiAJc3RydWN0IG1zZ19hcmcgbXNnID0geyAwLCBTVFJCVUZfSU5JVCB9OwogCXN0cnVjdCBjb21taXRfbGlzdCAqd2l0aF9jb21taXQgPSBOVUxMOwogCXN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0gewotCQlPUFRfQk9PTEVBTignbCcsICJsaXN0IiwgJmxpc3QsIE5fKCJsaXN0IHRhZyBuYW1lcyIpKSwKKwkJT1BUX0NNRE1PREUoJ2wnLCAibGlzdCIsICZjbWRtb2RlLCBOXygibGlzdCB0YWcgbmFtZXMiKSwgJ2wnKSwKIAkJeyBPUFRJT05fSU5URUdFUiwgJ24nLCBOVUxMLCAmbGluZXMsIE5fKCJuIiksCiAJCQkJTl8oInByaW50IDxuPiBsaW5lcyBvZiBlYWNoIHRhZyBtZXNzYWdlIiksCiAJCQkJUEFSU0VfT1BUX09QVEFSRywgTlVMTCwgMSB9LAotCQlPUFRfQk9PTEVBTignZCcsICJkZWxldGUiLCAmZGVsZXRlLCBOXygiZGVsZXRlIHRhZ3MiKSksCi0JCU9QVF9CT09MRUFOKCd2JywgInZlcmlmeSIsICZ2ZXJpZnksIE5fKCJ2ZXJpZnkgdGFncyIpKSwKKwkJT1BUX0NNRE1PREUoJ2QnLCAiZGVsZXRlIiwgJmNtZG1vZGUsIE5fKCJkZWxldGUgdGFncyIpLCAnZCcpLAorCQlPUFRfQ01ETU9ERSgndicsICJ2ZXJpZnkiLCAmY21kbW9kZSwgTl8oInZlcmlmeSB0YWdzIiksICd2JyksCiAKIAkJT1BUX0dST1VQKE5fKCJUYWcgY3JlYXRpb24gb3B0aW9ucyIpKSwKLQkJT1BUX0JPT0xFQU4oJ2EnLCAiYW5ub3RhdGUiLCAmYW5ub3RhdGUsCisJCU9QVF9CT09MKCdhJywgImFubm90YXRlIiwgJmFubm90YXRlLAogCQkJCQlOXygiYW5ub3RhdGVkIHRhZywgbmVlZHMgYSBtZXNzYWdlIikpLAogCQlPUFRfQ0FMTEJBQ0soJ20nLCAibWVzc2FnZSIsICZtc2csIE5fKCJtZXNzYWdlIiksCiAJCQkgICAgIE5fKCJ0YWcgbWVzc2FnZSIpLCBwYXJzZV9tc2dfYXJnKSwKIAkJT1BUX0ZJTEVOQU1FKCdGJywgImZpbGUiLCAmbXNnZmlsZSwgTl8oInJlYWQgbWVzc2FnZSBmcm9tIGZpbGUiKSksCi0JCU9QVF9CT09MRUFOKCdzJywgInNpZ24iLCAmb3B0LnNpZ24sIE5fKCJhbm5vdGF0ZWQgYW5kIEdQRy1zaWduZWQgdGFnIikpLAorCQlPUFRfQk9PTCgncycsICJzaWduIiwgJm9wdC5zaWduLCBOXygiYW5ub3RhdGVkIGFuZCBHUEctc2lnbmVkIHRhZyIpKSwKIAkJT1BUX1NUUklORygwLCAiY2xlYW51cCIsICZjbGVhbnVwX2FyZywgTl8oIm1vZGUiKSwKIAkJCU5fKCJob3cgdG8gc3RyaXAgc3BhY2VzIGFuZCAjY29tbWVudHMgZnJvbSBtZXNzYWdlIikpLAogCQlPUFRfU1RSSU5HKCd1JywgImxvY2FsLXVzZXIiLCAma2V5aWQsIE5fKCJrZXkgaWQiKSwKQEAgLTQ4OSwyMiArNDg5LDE5IEBACiAJfQogCWlmIChvcHQuc2lnbikKIAkJYW5ub3RhdGUgPSAxOwotCWlmIChhcmdjID09IDAgJiYgIShkZWxldGUgfHwgdmVyaWZ5KSkKLQkJbGlzdCA9IDE7CisJaWYgKGFyZ2MgPT0gMCAmJiAhY21kbW9kZSkKKwkJY21kbW9kZSA9ICdsJzsKIAotCWlmICgoYW5ub3RhdGUgfHwgbXNnLmdpdmVuIHx8IG1zZ2ZpbGUgfHwgZm9yY2UpICYmCi0JICAgIChsaXN0IHx8IGRlbGV0ZSB8fCB2ZXJpZnkpKQorCWlmICgoYW5ub3RhdGUgfHwgbXNnLmdpdmVuIHx8IG1zZ2ZpbGUgfHwgZm9yY2UpICYmIChjbWRtb2RlICE9IDApKQogCQl1c2FnZV93aXRoX29wdGlvbnMoZ2l0X3RhZ191c2FnZSwgb3B0aW9ucyk7CiAKLQlpZiAobGlzdCArIGRlbGV0ZSArIHZlcmlmeSA+IDEpCi0JCXVzYWdlX3dpdGhfb3B0aW9ucyhnaXRfdGFnX3VzYWdlLCBvcHRpb25zKTsKIAlmaW5hbGl6ZV9jb2xvcHRzKCZjb2xvcHRzLCAtMSk7Ci0JaWYgKGxpc3QgJiYgbGluZXMgIT0gLTEpIHsKKwlpZiAoY21kbW9kZSA9PSAnbCcgJiYgbGluZXMgIT0gLTEpIHsKIAkJaWYgKGV4cGxpY2l0bHlfZW5hYmxlX2NvbHVtbihjb2xvcHRzKSkKIAkJCWRpZShfKCItLWNvbHVtbiBhbmQgLW4gYXJlIGluY29tcGF0aWJsZSIpKTsKIAkJY29sb3B0cyA9IDA7CiAJfQotCWlmIChsaXN0KSB7CisJaWYgKGNtZG1vZGUgPT0gJ2wnKSB7CiAJCWludCByZXQ7CiAJCWlmIChjb2x1bW5fYWN0aXZlKGNvbG9wdHMpKSB7CiAJCQlzdHJ1Y3QgY29sdW1uX29wdGlvbnMgY29wdHM7CkBAIC01MjMsOSArNTIwLDkgQEAKIAkJZGllKF8oIi0tY29udGFpbnMgb3B0aW9uIGlzIG9ubHkgYWxsb3dlZCB3aXRoIC1sLiIpKTsKIAlpZiAocG9pbnRzX2F0Lm5yKQogCQlkaWUoXygiLS1wb2ludHMtYXQgb3B0aW9uIGlzIG9ubHkgYWxsb3dlZCB3aXRoIC1sLiIpKTsKLQlpZiAoZGVsZXRlKQorCWlmIChjbWRtb2RlID09ICdkJykKIAkJcmV0dXJuIGZvcl9lYWNoX3RhZ19uYW1lKGFyZ3YsIGRlbGV0ZV90YWcpOwotCWlmICh2ZXJpZnkpCisJaWYgKGNtZG1vZGUgPT0gJ3YnKQogCQlyZXR1cm4gZm9yX2VhY2hfdGFnX25hbWUoYXJndiwgdmVyaWZ5X3RhZyk7CiAKIAlpZiAobXNnLmdpdmVuIHx8IG1zZ2ZpbGUpIHsKQEAgLTU3Nyw3ICs1NzQsNyBAQAogCWlmIChhbm5vdGF0ZSkKIAkJY3JlYXRlX3RhZyhvYmplY3QsIHRhZywgJmJ1ZiwgJm9wdCwgcHJldiwgb2JqZWN0KTsKIAotCWxvY2sgPSBsb2NrX2FueV9yZWZfZm9yX3VwZGF0ZShyZWYuYnVmLCBwcmV2LCAwKTsKKwlsb2NrID0gbG9ja19hbnlfcmVmX2Zvcl91cGRhdGUocmVmLmJ1ZiwgcHJldiwgMCwgTlVMTCk7CiAJaWYgKCFsb2NrKQogCQlkaWUoXygiJXM6IGNhbm5vdCBsb2NrIHRoZSByZWYiKSwgcmVmLmJ1Zik7CiAJaWYgKHdyaXRlX3JlZl9zaGExKGxvY2ssIG9iamVjdCwgTlVMTCkgPCAwKQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi90YXItdHJlZS5jIGIvYnVpbHRpbi90YXItdHJlZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjFlNzAxLi4wMDAwMDAwCi0tLSBhL2J1aWx0aW4vdGFyLXRyZWUuYworKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDA1LCAyMDA2IFJlbmUgU2NoYXJmZQotICovCi0jaW5jbHVkZSAiY2FjaGUuaCIKLSNpbmNsdWRlICJjb21taXQuaCIKLSNpbmNsdWRlICJ0YXIuaCIKLSNpbmNsdWRlICJidWlsdGluLmgiCi0jaW5jbHVkZSAicXVvdGUuaCIKLQotc3RhdGljIGNvbnN0IGNoYXIgdGFyX3RyZWVfdXNhZ2VbXSA9Ci0iZ2l0IHRhci10cmVlIFstLXJlbW90ZT08cmVwbz5dIDx0cmVlLWlzaD4gW2Jhc2VkaXJdXG4iCi0iKioqIE5vdGUgdGhhdCB0aGlzIGNvbW1hbmQgaXMgbm93IGRlcHJlY2F0ZWQ7IHVzZSBcImdpdCBhcmNoaXZlXCIgaW5zdGVhZC4iOwotCi1zdGF0aWMgY29uc3QgY2hhciBidWlsdGluX2dldF90YXJfY29tbWl0X2lkX3VzYWdlW10gPQotImdpdCBnZXQtdGFyLWNvbW1pdC1pZCA8IDx0YXJmaWxlPiI7Ci0KLWludCBjbWRfdGFyX3RyZWUoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCi17Ci0JLyoKLQkgKiAiZ2l0IHRhci10cmVlIiBpcyBub3cgYSB3cmFwcGVyIGFyb3VuZCAiZ2l0IGFyY2hpdmUgLS1mb3JtYXQ9dGFyIgotCSAqCi0JICogJDAgLS1yZW1vdGU9PHJlcG8+IGFyZy4uLiA9PT4KLQkgKglnaXQgYXJjaGl2ZSAtLWZvcm1hdD10YXIgLS1yZW1vdGU9PHJlcG8+IGFyZy4uLgotCSAqICQwIHRyZWUtaXNoID09PgotCSAqCWdpdCBhcmNoaXZlIC0tZm9ybWF0PXRhciB0cmVlLWlzaAotCSAqICQwIHRyZWUtaXNoIGJhc2VkaXIgPT0+Ci0JICogCWdpdCBhcmNoaXZlIC0tZm9ybWF0LXRhciAtLXByZWZpeD1iYXNlZGlyIHRyZWUtaXNoCi0JICovCi0JaW50IGk7Ci0JY29uc3QgY2hhciAqKm5hcmd2ID0geGNhbGxvYyhzaXplb2YoKm5hcmd2KSwgYXJnYyArIDMpOwotCWNoYXIgKmJhc2VkaXJfYXJnOwotCWludCBuYXJnYyA9IDA7Ci0KLQluYXJndltuYXJnYysrXSA9ICJhcmNoaXZlIjsKLQluYXJndltuYXJnYysrXSA9ICItLWZvcm1hdD10YXIiOwotCi0JaWYgKDIgPD0gYXJnYyAmJiAhcHJlZml4Y21wKGFyZ3ZbMV0sICItLXJlbW90ZT0iKSkgewotCQluYXJndltuYXJnYysrXSA9IGFyZ3ZbMV07Ci0JCWFyZ3YrKzsKLQkJYXJnYy0tOwotCX0KLQotCS8qCi0JICogQmVjYXVzZSBpdCdzIGp1c3QgYSBjb21wYXRpYmlsaXR5IHdyYXBwZXIsIHRhci10cmVlIHN1cHBvcnRzIG9ubHkKLQkgKiB0aGUgb2xkIGJlaGF2aW91ciBvZiByZWFkaW5nIGF0dHJpYnV0ZXMgZnJvbSB0aGUgd29yayB0cmVlLgotCSAqLwotCW5hcmd2W25hcmdjKytdID0gIi0td29ya3RyZWUtYXR0cmlidXRlcyI7Ci0KLQlzd2l0Y2ggKGFyZ2MpIHsKLQlkZWZhdWx0OgotCQl1c2FnZSh0YXJfdHJlZV91c2FnZSk7Ci0JCWJyZWFrOwotCWNhc2UgMzoKLQkJLyogYmFzZS1wYXRoICovCi0JCWJhc2VkaXJfYXJnID0geG1hbGxvYyhzdHJsZW4oYXJndlsyXSkgKyAxMSk7Ci0JCXNwcmludGYoYmFzZWRpcl9hcmcsICItLXByZWZpeD0lcy8iLCBhcmd2WzJdKTsKLQkJbmFyZ3ZbbmFyZ2MrK10gPSBiYXNlZGlyX2FyZzsKLQkJLyogZmFsbHRocnUgKi8KLQljYXNlIDI6Ci0JCS8qIHRyZWUtaXNoICovCi0JCW5hcmd2W25hcmdjKytdID0gYXJndlsxXTsKLQl9Ci0JbmFyZ3ZbbmFyZ2NdID0gTlVMTDsKLQotCWZwcmludGYoc3RkZXJyLAotCQkiKioqIFwiZ2l0IHRhci10cmVlXCIgaXMgbm93IGRlcHJlY2F0ZWQuXG4iCi0JCSIqKiogUnVubmluZyBcImdpdCBhcmNoaXZlXCIgaW5zdGVhZC5cbioqKiIpOwotCWZvciAoaSA9IDA7IGkgPCBuYXJnYzsgaSsrKSB7Ci0JCWZwdXRjKCcgJywgc3RkZXJyKTsKLQkJc3FfcXVvdGVfcHJpbnQoc3RkZXJyLCBuYXJndltpXSk7Ci0JfQotCWZwdXRjKCdcbicsIHN0ZGVycik7Ci0JcmV0dXJuIGNtZF9hcmNoaXZlKG5hcmdjLCBuYXJndiwgcHJlZml4KTsKLX0KLQotLyogdXN0YXIgaGVhZGVyICsgZXh0ZW5kZWQgZ2xvYmFsIGhlYWRlciBjb250ZW50ICovCi0jZGVmaW5lIFJFQ09SRFNJWkUJKDUxMikKLSNkZWZpbmUgSEVBREVSU0laRSAoMiAqIFJFQ09SRFNJWkUpCi0KLWludCBjbWRfZ2V0X3Rhcl9jb21taXRfaWQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCi17Ci0JY2hhciBidWZmZXJbSEVBREVSU0laRV07Ci0Jc3RydWN0IHVzdGFyX2hlYWRlciAqaGVhZGVyID0gKHN0cnVjdCB1c3Rhcl9oZWFkZXIgKilidWZmZXI7Ci0JY2hhciAqY29udGVudCA9IGJ1ZmZlciArIFJFQ09SRFNJWkU7Ci0Jc3NpemVfdCBuOwotCi0JaWYgKGFyZ2MgIT0gMSkKLQkJdXNhZ2UoYnVpbHRpbl9nZXRfdGFyX2NvbW1pdF9pZF91c2FnZSk7Ci0KLQluID0gcmVhZF9pbl9mdWxsKDAsIGJ1ZmZlciwgSEVBREVSU0laRSk7Ci0JaWYgKG4gPCBIRUFERVJTSVpFKQotCQlkaWUoImdpdCBnZXQtdGFyLWNvbW1pdC1pZDogcmVhZCBlcnJvciIpOwotCWlmIChoZWFkZXItPnR5cGVmbGFnWzBdICE9ICdnJykKLQkJcmV0dXJuIDE7Ci0JaWYgKG1lbWNtcChjb250ZW50LCAiNTIgY29tbWVudD0iLCAxMSkpCi0JCXJldHVybiAxOwotCi0JbiA9IHdyaXRlX2luX2Z1bGwoMSwgY29udGVudCArIDExLCA0MSk7Ci0JaWYgKG4gPCA0MSkKLQkJZGllX2Vycm5vKCJnaXQgZ2V0LXRhci1jb21taXQtaWQ6IHdyaXRlIGVycm9yIik7Ci0KLQlyZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2J1aWx0aW4vdW5wYWNrLW9iamVjdHMuYyBiL2J1aWx0aW4vdW5wYWNrLW9iamVjdHMuYwppbmRleCAyMjE3ZDdiLi42MmZmNjczIDEwMDY0NAotLS0gYS9idWlsdGluL3VucGFjay1vYmplY3RzLmMKKysrIGIvYnVpbHRpbi91bnBhY2stb2JqZWN0cy5jCkBAIC01MjMsNyArNTIzLDcgQEAKIAkJCQlzdHJpY3QgPSAxOwogCQkJCWNvbnRpbnVlOwogCQkJfQotCQkJaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1wYWNrX2hlYWRlcj0iKSkgeworCQkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tcGFja19oZWFkZXI9IikpIHsKIAkJCQlzdHJ1Y3QgcGFja19oZWFkZXIgKmhkcjsKIAkJCQljaGFyICpjOwogCmRpZmYgLS1naXQgYS9idWlsdGluL3VwZGF0ZS1pbmRleC5jIGIvYnVpbHRpbi91cGRhdGUtaW5kZXguYwppbmRleCBjMzE3OTgxLi5lM2ExMGQ3IDEwMDY0NAotLS0gYS9idWlsdGluL3VwZGF0ZS1pbmRleC5jCisrKyBiL2J1aWx0aW4vdXBkYXRlLWluZGV4LmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlICJyZWZzLmgiCiAjaW5jbHVkZSAicmVzb2x2ZS11bmRvLmgiCiAjaW5jbHVkZSAicGFyc2Utb3B0aW9ucy5oIgorI2luY2x1ZGUgInBhdGhzcGVjLmgiCiAKIC8qCiAgKiBEZWZhdWx0IHRvIG5vdCBhbGxvd2luZyBjaGFuZ2VzIHRvIHRoZSBsaXN0IG9mIGZpbGVzLiBUaGUKQEAgLTU0NiwxMCArNTQ3LDExIEBACiAJICovCiAJaW50IHBvczsKIAlpbnQgaGFzX2hlYWQgPSAxOwotCWNvbnN0IGNoYXIgKipwYXRocyA9IGdldF9wYXRoc3BlYyhwcmVmaXgsIGF2ICsgMSk7CiAJc3RydWN0IHBhdGhzcGVjIHBhdGhzcGVjOwogCi0JaW5pdF9wYXRoc3BlYygmcGF0aHNwZWMsIHBhdGhzKTsKKwlwYXJzZV9wYXRoc3BlYygmcGF0aHNwZWMsIDAsCisJCSAgICAgICBQQVRIU1BFQ19QUkVGRVJfQ1dELAorCQkgICAgICAgcHJlZml4LCBhdiArIDEpOwogCiAJaWYgKHJlYWRfcmVmKCJIRUFEIiwgaGVhZF9zaGExKSkKIAkJLyogSWYgdGhlcmUgaXMgbm8gSEVBRCwgdGhhdCBtZWFucyBpdCBpcyBhbiBpbml0aWFsCmRpZmYgLS1naXQgYS9idWlsdGluL3VwZGF0ZS1yZWYuYyBiL2J1aWx0aW4vdXBkYXRlLXJlZi5jCmluZGV4IDUxZDI2ODQuLjEyOTJjZmUgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vdXBkYXRlLXJlZi5jCisrKyBiL2J1aWx0aW4vdXBkYXRlLXJlZi5jCkBAIC0yLDIzICsyLDI2MSBAQAogI2luY2x1ZGUgInJlZnMuaCIKICNpbmNsdWRlICJidWlsdGluLmgiCiAjaW5jbHVkZSAicGFyc2Utb3B0aW9ucy5oIgorI2luY2x1ZGUgInF1b3RlLmgiCisjaW5jbHVkZSAiYXJndi1hcnJheS5oIgogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGdpdF91cGRhdGVfcmVmX3VzYWdlW10gPSB7CiAJTl8oImdpdCB1cGRhdGUtcmVmIFtvcHRpb25zXSAtZCA8cmVmbmFtZT4gWzxvbGR2YWw+XSIpLAogCU5fKCJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gICAgPHJlZm5hbWU+IDxuZXd2YWw+IFs8b2xkdmFsPl0iKSwKKwlOXygiZ2l0IHVwZGF0ZS1yZWYgW29wdGlvbnNdIC0tc3RkaW4gWy16XSIpLAogCU5VTEwKIH07CiAKK3N0YXRpYyBpbnQgdXBkYXRlc19hbGxvYzsKK3N0YXRpYyBpbnQgdXBkYXRlc19jb3VudDsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVmX3VwZGF0ZSAqKnVwZGF0ZXM7CisKK3N0YXRpYyBjaGFyIGxpbmVfdGVybWluYXRpb24gPSAnXG4nOworc3RhdGljIGludCB1cGRhdGVfZmxhZ3M7CisKK3N0YXRpYyBzdHJ1Y3QgcmVmX3VwZGF0ZSAqdXBkYXRlX2FsbG9jKHZvaWQpCit7CisJc3RydWN0IHJlZl91cGRhdGUgKnVwZGF0ZTsKKworCS8qIEFsbG9jYXRlIGFuZCB6ZXJvLWluaXQgYSBzdHJ1Y3QgcmVmX3VwZGF0ZSAqLworCXVwZGF0ZSA9IHhjYWxsb2MoMSwgc2l6ZW9mKCp1cGRhdGUpKTsKKwlBTExPQ19HUk9XKHVwZGF0ZXMsIHVwZGF0ZXNfY291bnQgKyAxLCB1cGRhdGVzX2FsbG9jKTsKKwl1cGRhdGVzW3VwZGF0ZXNfY291bnQrK10gPSB1cGRhdGU7CisKKwkvKiBTdG9yZSBhbmQgcmVzZXQgYWNjdW11bGF0ZWQgb3B0aW9ucyAqLworCXVwZGF0ZS0+ZmxhZ3MgPSB1cGRhdGVfZmxhZ3M7CisJdXBkYXRlX2ZsYWdzID0gMDsKKworCXJldHVybiB1cGRhdGU7Cit9CisKK3N0YXRpYyB2b2lkIHVwZGF0ZV9zdG9yZV9yZWZfbmFtZShzdHJ1Y3QgcmVmX3VwZGF0ZSAqdXBkYXRlLAorCQkJCSAgY29uc3QgY2hhciAqcmVmX25hbWUpCit7CisJaWYgKGNoZWNrX3JlZm5hbWVfZm9ybWF0KHJlZl9uYW1lLCBSRUZOQU1FX0FMTE9XX09ORUxFVkVMKSkKKwkJZGllKCJpbnZhbGlkIHJlZiBmb3JtYXQ6ICVzIiwgcmVmX25hbWUpOworCXVwZGF0ZS0+cmVmX25hbWUgPSB4c3RyZHVwKHJlZl9uYW1lKTsKK30KKworc3RhdGljIHZvaWQgdXBkYXRlX3N0b3JlX25ld19zaGExKHN0cnVjdCByZWZfdXBkYXRlICp1cGRhdGUsCisJCQkJICBjb25zdCBjaGFyICpuZXd2YWx1ZSkKK3sKKwlpZiAoKm5ld3ZhbHVlICYmIGdldF9zaGExKG5ld3ZhbHVlLCB1cGRhdGUtPm5ld19zaGExKSkKKwkJZGllKCJpbnZhbGlkIG5ldyB2YWx1ZSBmb3IgcmVmICVzOiAlcyIsCisJCSAgICB1cGRhdGUtPnJlZl9uYW1lLCBuZXd2YWx1ZSk7Cit9CisKK3N0YXRpYyB2b2lkIHVwZGF0ZV9zdG9yZV9vbGRfc2hhMShzdHJ1Y3QgcmVmX3VwZGF0ZSAqdXBkYXRlLAorCQkJCSAgY29uc3QgY2hhciAqb2xkdmFsdWUpCit7CisJaWYgKCpvbGR2YWx1ZSAmJiBnZXRfc2hhMShvbGR2YWx1ZSwgdXBkYXRlLT5vbGRfc2hhMSkpCisJCWRpZSgiaW52YWxpZCBvbGQgdmFsdWUgZm9yIHJlZiAlczogJXMiLAorCQkgICAgdXBkYXRlLT5yZWZfbmFtZSwgb2xkdmFsdWUpOworCisJLyogV2UgaGF2ZSBhbiBvbGQgdmFsdWUgaWYgbm9uLWVtcHR5LCBvciBpZiBlbXB0eSB3aXRob3V0IC16ICovCisJdXBkYXRlLT5oYXZlX29sZCA9ICpvbGR2YWx1ZSB8fCBsaW5lX3Rlcm1pbmF0aW9uOworfQorCitzdGF0aWMgY29uc3QgY2hhciAqcGFyc2VfYXJnKGNvbnN0IGNoYXIgKm5leHQsIHN0cnVjdCBzdHJidWYgKmFyZykKK3sKKwkvKiBQYXJzZSBTUC10ZXJtaW5hdGVkLCBwb3NzaWJseSBDLXF1b3RlZCBhcmd1bWVudCAqLworCWlmICgqbmV4dCAhPSAnIicpCisJCXdoaWxlICgqbmV4dCAmJiAhaXNzcGFjZSgqbmV4dCkpCisJCQlzdHJidWZfYWRkY2goYXJnLCAqbmV4dCsrKTsKKwllbHNlIGlmICh1bnF1b3RlX2Nfc3R5bGUoYXJnLCBuZXh0LCAmbmV4dCkpCisJCWRpZSgiYmFkbHkgcXVvdGVkIGFyZ3VtZW50OiAlcyIsIG5leHQpOworCisJLyogUmV0dXJuIHBvc2l0aW9uIGFmdGVyIHRoZSBhcmd1bWVudCAqLworCXJldHVybiBuZXh0OworfQorCitzdGF0aWMgY29uc3QgY2hhciAqcGFyc2VfZmlyc3RfYXJnKGNvbnN0IGNoYXIgKm5leHQsIHN0cnVjdCBzdHJidWYgKmFyZykKK3sKKwkvKiBQYXJzZSBhcmd1bWVudCBpbW1lZGlhdGVseSBhZnRlciAiY29tbWFuZCBTUCIgKi8KKwlzdHJidWZfcmVzZXQoYXJnKTsKKwlpZiAobGluZV90ZXJtaW5hdGlvbikgeworCQkvKiBXaXRob3V0IC16LCB1c2UgdGhlIG5leHQgYXJndW1lbnQgKi8KKwkJbmV4dCA9IHBhcnNlX2FyZyhuZXh0LCBhcmcpOworCX0gZWxzZSB7CisJCS8qIFdpdGggLXosIHVzZSByZXN0IG9mIGZpcnN0IE5VTC10ZXJtaW5hdGVkIGxpbmUgKi8KKwkJc3RyYnVmX2FkZHN0cihhcmcsIG5leHQpOworCQluZXh0ID0gbmV4dCArIGFyZy0+bGVuOworCX0KKwlyZXR1cm4gbmV4dDsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKnBhcnNlX25leHRfYXJnKGNvbnN0IGNoYXIgKm5leHQsIHN0cnVjdCBzdHJidWYgKmFyZykKK3sKKwkvKiBQYXJzZSBuZXh0IFNQLXRlcm1pbmF0ZWQgb3IgTlVMLXRlcm1pbmF0ZWQgYXJndW1lbnQsIGlmIGFueSAqLworCXN0cmJ1Zl9yZXNldChhcmcpOworCWlmIChsaW5lX3Rlcm1pbmF0aW9uKSB7CisJCS8qIFdpdGhvdXQgLXosIGNvbnN1bWUgU1AgYW5kIHVzZSBuZXh0IGFyZ3VtZW50ICovCisJCWlmICghKm5leHQpCisJCQlyZXR1cm4gTlVMTDsKKwkJaWYgKCpuZXh0ICE9ICcgJykKKwkJCWRpZSgiZXhwZWN0ZWQgU1AgYnV0IGdvdDogJXMiLCBuZXh0KTsKKwkJbmV4dCA9IHBhcnNlX2FyZyhuZXh0ICsgMSwgYXJnKTsKKwl9IGVsc2UgeworCQkvKiBXaXRoIC16LCByZWFkIHRoZSBuZXh0IE5VTC10ZXJtaW5hdGVkIGxpbmUgKi8KKwkJaWYgKCpuZXh0KQorCQkJZGllKCJleHBlY3RlZCBOVUwgYnV0IGdvdDogJXMiLCBuZXh0KTsKKwkJaWYgKHN0cmJ1Zl9nZXRsaW5lKGFyZywgc3RkaW4sICdcMCcpID09IEVPRikKKwkJCXJldHVybiBOVUxMOworCQluZXh0ID0gYXJnLT5idWYgKyBhcmctPmxlbjsKKwl9CisJcmV0dXJuIG5leHQ7Cit9CisKK3N0YXRpYyB2b2lkIHBhcnNlX2NtZF91cGRhdGUoY29uc3QgY2hhciAqbmV4dCkKK3sKKwlzdHJ1Y3Qgc3RyYnVmIHJlZiA9IFNUUkJVRl9JTklUOworCXN0cnVjdCBzdHJidWYgbmV3dmFsdWUgPSBTVFJCVUZfSU5JVDsKKwlzdHJ1Y3Qgc3RyYnVmIG9sZHZhbHVlID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IHJlZl91cGRhdGUgKnVwZGF0ZTsKKworCXVwZGF0ZSA9IHVwZGF0ZV9hbGxvYygpOworCisJaWYgKChuZXh0ID0gcGFyc2VfZmlyc3RfYXJnKG5leHQsICZyZWYpKSAhPSBOVUxMICYmIHJlZi5idWZbMF0pCisJCXVwZGF0ZV9zdG9yZV9yZWZfbmFtZSh1cGRhdGUsIHJlZi5idWYpOworCWVsc2UKKwkJZGllKCJ1cGRhdGUgbGluZSBtaXNzaW5nIDxyZWY+Iik7CisKKwlpZiAoKG5leHQgPSBwYXJzZV9uZXh0X2FyZyhuZXh0LCAmbmV3dmFsdWUpKSAhPSBOVUxMKQorCQl1cGRhdGVfc3RvcmVfbmV3X3NoYTEodXBkYXRlLCBuZXd2YWx1ZS5idWYpOworCWVsc2UKKwkJZGllKCJ1cGRhdGUgJXMgbWlzc2luZyA8bmV3dmFsdWU+IiwgcmVmLmJ1Zik7CisKKwlpZiAoKG5leHQgPSBwYXJzZV9uZXh0X2FyZyhuZXh0LCAmb2xkdmFsdWUpKSAhPSBOVUxMKQorCQl1cGRhdGVfc3RvcmVfb2xkX3NoYTEodXBkYXRlLCBvbGR2YWx1ZS5idWYpOworCWVsc2UgaWYoIWxpbmVfdGVybWluYXRpb24pCisJCWRpZSgidXBkYXRlICVzIG1pc3NpbmcgWzxvbGR2YWx1ZT5dIE5VTCIsIHJlZi5idWYpOworCisJaWYgKG5leHQgJiYgKm5leHQpCisJCWRpZSgidXBkYXRlICVzIGhhcyBleHRyYSBpbnB1dDogJXMiLCByZWYuYnVmLCBuZXh0KTsKK30KKworc3RhdGljIHZvaWQgcGFyc2VfY21kX2NyZWF0ZShjb25zdCBjaGFyICpuZXh0KQoreworCXN0cnVjdCBzdHJidWYgcmVmID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IHN0cmJ1ZiBuZXd2YWx1ZSA9IFNUUkJVRl9JTklUOworCXN0cnVjdCByZWZfdXBkYXRlICp1cGRhdGU7CisKKwl1cGRhdGUgPSB1cGRhdGVfYWxsb2MoKTsKKworCWlmICgobmV4dCA9IHBhcnNlX2ZpcnN0X2FyZyhuZXh0LCAmcmVmKSkgIT0gTlVMTCAmJiByZWYuYnVmWzBdKQorCQl1cGRhdGVfc3RvcmVfcmVmX25hbWUodXBkYXRlLCByZWYuYnVmKTsKKwllbHNlCisJCWRpZSgiY3JlYXRlIGxpbmUgbWlzc2luZyA8cmVmPiIpOworCisJaWYgKChuZXh0ID0gcGFyc2VfbmV4dF9hcmcobmV4dCwgJm5ld3ZhbHVlKSkgIT0gTlVMTCkKKwkJdXBkYXRlX3N0b3JlX25ld19zaGExKHVwZGF0ZSwgbmV3dmFsdWUuYnVmKTsKKwllbHNlCisJCWRpZSgiY3JlYXRlICVzIG1pc3NpbmcgPG5ld3ZhbHVlPiIsIHJlZi5idWYpOworCWlmIChpc19udWxsX3NoYTEodXBkYXRlLT5uZXdfc2hhMSkpCisJCWRpZSgiY3JlYXRlICVzIGdpdmVuIHplcm8gbmV3IHZhbHVlIiwgcmVmLmJ1Zik7CisKKwlpZiAobmV4dCAmJiAqbmV4dCkKKwkJZGllKCJjcmVhdGUgJXMgaGFzIGV4dHJhIGlucHV0OiAlcyIsIHJlZi5idWYsIG5leHQpOworfQorCitzdGF0aWMgdm9pZCBwYXJzZV9jbWRfZGVsZXRlKGNvbnN0IGNoYXIgKm5leHQpCit7CisJc3RydWN0IHN0cmJ1ZiByZWYgPSBTVFJCVUZfSU5JVDsKKwlzdHJ1Y3Qgc3RyYnVmIG9sZHZhbHVlID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IHJlZl91cGRhdGUgKnVwZGF0ZTsKKworCXVwZGF0ZSA9IHVwZGF0ZV9hbGxvYygpOworCisJaWYgKChuZXh0ID0gcGFyc2VfZmlyc3RfYXJnKG5leHQsICZyZWYpKSAhPSBOVUxMICYmIHJlZi5idWZbMF0pCisJCXVwZGF0ZV9zdG9yZV9yZWZfbmFtZSh1cGRhdGUsIHJlZi5idWYpOworCWVsc2UKKwkJZGllKCJkZWxldGUgbGluZSBtaXNzaW5nIDxyZWY+Iik7CisKKwlpZiAoKG5leHQgPSBwYXJzZV9uZXh0X2FyZyhuZXh0LCAmb2xkdmFsdWUpKSAhPSBOVUxMKQorCQl1cGRhdGVfc3RvcmVfb2xkX3NoYTEodXBkYXRlLCBvbGR2YWx1ZS5idWYpOworCWVsc2UgaWYoIWxpbmVfdGVybWluYXRpb24pCisJCWRpZSgiZGVsZXRlICVzIG1pc3NpbmcgWzxvbGR2YWx1ZT5dIE5VTCIsIHJlZi5idWYpOworCWlmICh1cGRhdGUtPmhhdmVfb2xkICYmIGlzX251bGxfc2hhMSh1cGRhdGUtPm9sZF9zaGExKSkKKwkJZGllKCJkZWxldGUgJXMgZ2l2ZW4gemVybyBvbGQgdmFsdWUiLCByZWYuYnVmKTsKKworCWlmIChuZXh0ICYmICpuZXh0KQorCQlkaWUoImRlbGV0ZSAlcyBoYXMgZXh0cmEgaW5wdXQ6ICVzIiwgcmVmLmJ1ZiwgbmV4dCk7Cit9CisKK3N0YXRpYyB2b2lkIHBhcnNlX2NtZF92ZXJpZnkoY29uc3QgY2hhciAqbmV4dCkKK3sKKwlzdHJ1Y3Qgc3RyYnVmIHJlZiA9IFNUUkJVRl9JTklUOworCXN0cnVjdCBzdHJidWYgdmFsdWUgPSBTVFJCVUZfSU5JVDsKKwlzdHJ1Y3QgcmVmX3VwZGF0ZSAqdXBkYXRlOworCisJdXBkYXRlID0gdXBkYXRlX2FsbG9jKCk7CisKKwlpZiAoKG5leHQgPSBwYXJzZV9maXJzdF9hcmcobmV4dCwgJnJlZikpICE9IE5VTEwgJiYgcmVmLmJ1ZlswXSkKKwkJdXBkYXRlX3N0b3JlX3JlZl9uYW1lKHVwZGF0ZSwgcmVmLmJ1Zik7CisJZWxzZQorCQlkaWUoInZlcmlmeSBsaW5lIG1pc3NpbmcgPHJlZj4iKTsKKworCWlmICgobmV4dCA9IHBhcnNlX25leHRfYXJnKG5leHQsICZ2YWx1ZSkpICE9IE5VTEwpIHsKKwkJdXBkYXRlX3N0b3JlX29sZF9zaGExKHVwZGF0ZSwgdmFsdWUuYnVmKTsKKwkJdXBkYXRlX3N0b3JlX25ld19zaGExKHVwZGF0ZSwgdmFsdWUuYnVmKTsKKwl9IGVsc2UgaWYoIWxpbmVfdGVybWluYXRpb24pCisJCWRpZSgidmVyaWZ5ICVzIG1pc3NpbmcgWzxvbGR2YWx1ZT5dIE5VTCIsIHJlZi5idWYpOworCisJaWYgKG5leHQgJiYgKm5leHQpCisJCWRpZSgidmVyaWZ5ICVzIGhhcyBleHRyYSBpbnB1dDogJXMiLCByZWYuYnVmLCBuZXh0KTsKK30KKworc3RhdGljIHZvaWQgcGFyc2VfY21kX29wdGlvbihjb25zdCBjaGFyICpuZXh0KQoreworCWlmICghc3RyY21wKG5leHQsICJuby1kZXJlZiIpKQorCQl1cGRhdGVfZmxhZ3MgfD0gUkVGX05PREVSRUY7CisJZWxzZQorCQlkaWUoIm9wdGlvbiB1bmtub3duOiAlcyIsIG5leHQpOworfQorCitzdGF0aWMgdm9pZCB1cGRhdGVfcmVmc19zdGRpbih2b2lkKQoreworCXN0cnVjdCBzdHJidWYgY21kID0gU1RSQlVGX0lOSVQ7CisKKwkvKiBSZWFkIGVhY2ggbGluZSBkaXNwYXRjaCBpdHMgY29tbWFuZCAqLworCXdoaWxlIChzdHJidWZfZ2V0bGluZSgmY21kLCBzdGRpbiwgbGluZV90ZXJtaW5hdGlvbikgIT0gRU9GKQorCQlpZiAoIWNtZC5idWZbMF0pCisJCQlkaWUoImVtcHR5IGNvbW1hbmQgaW4gaW5wdXQiKTsKKwkJZWxzZSBpZiAoaXNzcGFjZSgqY21kLmJ1ZikpCisJCQlkaWUoIndoaXRlc3BhY2UgYmVmb3JlIGNvbW1hbmQ6ICVzIiwgY21kLmJ1Zik7CisJCWVsc2UgaWYgKHN0YXJ0c193aXRoKGNtZC5idWYsICJ1cGRhdGUgIikpCisJCQlwYXJzZV9jbWRfdXBkYXRlKGNtZC5idWYgKyA3KTsKKwkJZWxzZSBpZiAoc3RhcnRzX3dpdGgoY21kLmJ1ZiwgImNyZWF0ZSAiKSkKKwkJCXBhcnNlX2NtZF9jcmVhdGUoY21kLmJ1ZiArIDcpOworCQllbHNlIGlmIChzdGFydHNfd2l0aChjbWQuYnVmLCAiZGVsZXRlICIpKQorCQkJcGFyc2VfY21kX2RlbGV0ZShjbWQuYnVmICsgNyk7CisJCWVsc2UgaWYgKHN0YXJ0c193aXRoKGNtZC5idWYsICJ2ZXJpZnkgIikpCisJCQlwYXJzZV9jbWRfdmVyaWZ5KGNtZC5idWYgKyA3KTsKKwkJZWxzZSBpZiAoc3RhcnRzX3dpdGgoY21kLmJ1ZiwgIm9wdGlvbiAiKSkKKwkJCXBhcnNlX2NtZF9vcHRpb24oY21kLmJ1ZiArIDcpOworCQllbHNlCisJCQlkaWUoInVua25vd24gY29tbWFuZDogJXMiLCBjbWQuYnVmKTsKKworCXN0cmJ1Zl9yZWxlYXNlKCZjbWQpOworfQorCiBpbnQgY21kX3VwZGF0ZV9yZWYoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCiB7CiAJY29uc3QgY2hhciAqcmVmbmFtZSwgKm9sZHZhbCwgKm1zZyA9IE5VTEw7CiAJdW5zaWduZWQgY2hhciBzaGExWzIwXSwgb2xkc2hhMVsyMF07Ci0JaW50IGRlbGV0ZSA9IDAsIG5vX2RlcmVmID0gMCwgZmxhZ3MgPSAwOworCWludCBkZWxldGUgPSAwLCBub19kZXJlZiA9IDAsIHJlYWRfc3RkaW4gPSAwLCBlbmRfbnVsbCA9IDAsIGZsYWdzID0gMDsKIAlzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKIAkJT1BUX1NUUklORyggJ20nLCBOVUxMLCAmbXNnLCBOXygicmVhc29uIiksIE5fKCJyZWFzb24gb2YgdGhlIHVwZGF0ZSIpKSwKLQkJT1BUX0JPT0xFQU4oJ2QnLCBOVUxMLCAmZGVsZXRlLCBOXygiZGVsZXRlIHRoZSByZWZlcmVuY2UiKSksCi0JCU9QVF9CT09MRUFOKCAwICwgIm5vLWRlcmVmIiwgJm5vX2RlcmVmLAorCQlPUFRfQk9PTCgnZCcsIE5VTEwsICZkZWxldGUsIE5fKCJkZWxldGUgdGhlIHJlZmVyZW5jZSIpKSwKKwkJT1BUX0JPT0woIDAgLCAibm8tZGVyZWYiLCAmbm9fZGVyZWYsCiAJCQkJCU5fKCJ1cGRhdGUgPHJlZm5hbWU+IG5vdCB0aGUgb25lIGl0IHBvaW50cyB0byIpKSwKKwkJT1BUX0JPT0woJ3onLCBOVUxMLCAmZW5kX251bGwsIE5fKCJzdGRpbiBoYXMgTlVMLXRlcm1pbmF0ZWQgYXJndW1lbnRzIikpLAorCQlPUFRfQk9PTCggMCAsICJzdGRpbiIsICZyZWFkX3N0ZGluLCBOXygicmVhZCB1cGRhdGVzIGZyb20gc3RkaW4iKSksCiAJCU9QVF9FTkQoKSwKIAl9OwogCkBAIC0yOCw2ICsyNjYsMTggQEAKIAlpZiAobXNnICYmICEqbXNnKQogCQlkaWUoIlJlZnVzaW5nIHRvIHBlcmZvcm0gdXBkYXRlIHdpdGggZW1wdHkgbWVzc2FnZS4iKTsKIAorCWlmIChyZWFkX3N0ZGluKSB7CisJCWlmIChkZWxldGUgfHwgbm9fZGVyZWYgfHwgYXJnYyA+IDApCisJCQl1c2FnZV93aXRoX29wdGlvbnMoZ2l0X3VwZGF0ZV9yZWZfdXNhZ2UsIG9wdGlvbnMpOworCQlpZiAoZW5kX251bGwpCisJCQlsaW5lX3Rlcm1pbmF0aW9uID0gJ1wwJzsKKwkJdXBkYXRlX3JlZnNfc3RkaW4oKTsKKwkJcmV0dXJuIHVwZGF0ZV9yZWZzKG1zZywgdXBkYXRlcywgdXBkYXRlc19jb3VudCwgRElFX09OX0VSUik7CisJfQorCisJaWYgKGVuZF9udWxsKQorCQl1c2FnZV93aXRoX29wdGlvbnMoZ2l0X3VwZGF0ZV9yZWZfdXNhZ2UsIG9wdGlvbnMpOworCiAJaWYgKGRlbGV0ZSkgewogCQlpZiAoYXJnYyA8IDEgfHwgYXJnYyA+IDIpCiAJCQl1c2FnZV93aXRoX29wdGlvbnMoZ2l0X3VwZGF0ZV9yZWZfdXNhZ2UsIG9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi91cGxvYWQtYXJjaGl2ZS5jIGIvYnVpbHRpbi91cGxvYWQtYXJjaGl2ZS5jCmluZGV4IGFmMmRhMzUuLjMyYWI5NGMgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vdXBsb2FkLWFyY2hpdmUuYworKysgYi9idWlsdGluL3VwbG9hZC1hcmNoaXZlLmMKQEAgLTM3LDcgKzM3LDcgQEAKIAkJaWYgKHNlbnRfYXJndi5hcmdjID4gTUFYX0FSR1MpCiAJCQlkaWUoIlRvbyBtYW55IG9wdGlvbnMgKD4lZCkiLCBNQVhfQVJHUyAtIDEpOwogCi0JCWlmIChwcmVmaXhjbXAoYnVmLCBhcmdfY21kKSkKKwkJaWYgKCFzdGFydHNfd2l0aChidWYsIGFyZ19jbWQpKQogCQkJZGllKCInYXJndW1lbnQnIHRva2VuIG9yIGZsdXNoIGV4cGVjdGVkIik7CiAJCWFyZ3ZfYXJyYXlfcHVzaCgmc2VudF9hcmd2LCBidWYgKyBzdHJsZW4oYXJnX2NtZCkpOwogCX0KZGlmZiAtLWdpdCBhL2J1bmRsZS5jIGIvYnVuZGxlLmMKaW5kZXggM2Q2NDMxMS4uZTk5MDY1YyAxMDA2NDQKLS0tIGEvYnVuZGxlLmMKKysrIGIvYnVuZGxlLmMKQEAgLTcsNiArNyw3IEBACiAjaW5jbHVkZSAibGlzdC1vYmplY3RzLmgiCiAjaW5jbHVkZSAicnVuLWNvbW1hbmQuaCIKICNpbmNsdWRlICJyZWZzLmgiCisjaW5jbHVkZSAiYXJndi1hcnJheS5oIgogCiBzdGF0aWMgY29uc3QgY2hhciBidW5kbGVfc2lnbmF0dXJlW10gPSAiIyB2MiBnaXQgYnVuZGxlXG4iOwogCkBAIC0yMzQsMTMgKzIzNSwxMyBAQAogfQogCiBpbnQgY3JlYXRlX2J1bmRsZShzdHJ1Y3QgYnVuZGxlX2hlYWRlciAqaGVhZGVyLCBjb25zdCBjaGFyICpwYXRoLAotCQlpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCisJCSAgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQogewogCXN0YXRpYyBzdHJ1Y3QgbG9ja19maWxlIGxvY2s7CiAJaW50IGJ1bmRsZV9mZCA9IC0xOwogCWludCBidW5kbGVfdG9fc3Rkb3V0OwotCWNvbnN0IGNoYXIgKiphcmd2X2JvdW5kYXJ5ID0geG1hbGxvYygoYXJnYyArIDQpICogc2l6ZW9mKGNvbnN0IGNoYXIgKikpOwotCWNvbnN0IGNoYXIgKiphcmd2X3BhY2sgPSB4bWFsbG9jKDYgKiBzaXplb2YoY29uc3QgY2hhciAqKSk7CisJc3RydWN0IGFyZ3ZfYXJyYXkgYXJndl9ib3VuZGFyeSA9IEFSR1ZfQVJSQVlfSU5JVDsKKwlzdHJ1Y3QgYXJndl9hcnJheSBhcmd2X3BhY2sgPSBBUkdWX0FSUkFZX0lOSVQ7CiAJaW50IGksIHJlZl9jb3VudCA9IDA7CiAJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKIAlzdHJ1Y3QgcmV2X2luZm8gcmV2czsKQEAgLTI2MiwxMyArMjYzLDE0IEBACiAJaW5pdF9yZXZpc2lvbnMoJnJldnMsIE5VTEwpOwogCiAJLyogd3JpdGUgcHJlcmVxdWlzaXRlcyAqLwotCW1lbWNweShhcmd2X2JvdW5kYXJ5ICsgMywgYXJndiArIDEsIGFyZ2MgKiBzaXplb2YoY29uc3QgY2hhciAqKSk7Ci0JYXJndl9ib3VuZGFyeVswXSA9ICJyZXYtbGlzdCI7Ci0JYXJndl9ib3VuZGFyeVsxXSA9ICItLWJvdW5kYXJ5IjsKLQlhcmd2X2JvdW5kYXJ5WzJdID0gIi0tcHJldHR5PW9uZWxpbmUiOwotCWFyZ3ZfYm91bmRhcnlbYXJnYyArIDJdID0gTlVMTDsKKwlhcmd2X2FycmF5X3B1c2hsKCZhcmd2X2JvdW5kYXJ5LAorCQkJICJyZXYtbGlzdCIsICItLWJvdW5kYXJ5IiwgIi0tcHJldHR5PW9uZWxpbmUiLAorCQkJIE5VTEwpOworCWZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspCisJCWFyZ3ZfYXJyYXlfcHVzaCgmYXJndl9ib3VuZGFyeSwgYXJndltpXSk7CisKIAltZW1zZXQoJnJscywgMCwgc2l6ZW9mKHJscykpOwotCXJscy5hcmd2ID0gYXJndl9ib3VuZGFyeTsKKwlybHMuYXJndiA9IGFyZ3ZfYm91bmRhcnkuYXJndjsKIAlybHMub3V0ID0gLTE7CiAJcmxzLmdpdF9jbWQgPSAxOwogCWlmIChzdGFydF9jb21tYW5kKCZybHMpKQpAQCAtMzgzLDE0ICszODUsMTIgQEAKIAl3cml0ZV9vcl9kaWUoYnVuZGxlX2ZkLCAiXG4iLCAxKTsKIAogCS8qIHdyaXRlIHBhY2sgKi8KLQlhcmd2X3BhY2tbMF0gPSAicGFjay1vYmplY3RzIjsKLQlhcmd2X3BhY2tbMV0gPSAiLS1hbGwtcHJvZ3Jlc3MtaW1wbGllZCI7Ci0JYXJndl9wYWNrWzJdID0gIi0tc3Rkb3V0IjsKLQlhcmd2X3BhY2tbM10gPSAiLS10aGluIjsKLQlhcmd2X3BhY2tbNF0gPSAiLS1kZWx0YS1iYXNlLW9mZnNldCI7Ci0JYXJndl9wYWNrWzVdID0gTlVMTDsKKwlhcmd2X2FycmF5X3B1c2hsKCZhcmd2X3BhY2ssCisJCQkgInBhY2stb2JqZWN0cyIsICItLWFsbC1wcm9ncmVzcy1pbXBsaWVkIiwKKwkJCSAiLS1zdGRvdXQiLCAiLS10aGluIiwgIi0tZGVsdGEtYmFzZS1vZmZzZXQiLAorCQkJIE5VTEwpOwogCW1lbXNldCgmcmxzLCAwLCBzaXplb2YocmxzKSk7Ci0JcmxzLmFyZ3YgPSBhcmd2X3BhY2s7CisJcmxzLmFyZ3YgPSBhcmd2X3BhY2suYXJndjsKIAlybHMuaW4gPSAtMTsKIAlybHMub3V0ID0gYnVuZGxlX2ZkOwogCXJscy5naXRfY21kID0gMTsKZGlmZiAtLWdpdCBhL2NhY2hlLmggYi9jYWNoZS5oCmluZGV4IDQxNWQ4ODMuLmRjMDQwZmIgMTAwNjQ0Ci0tLSBhL2NhY2hlLmgKKysrIGIvY2FjaGUuaApAQCAtMTAxLDkgKzEwMSw5IEBACiAKICNkZWZpbmUgQ0FDSEVfU0lHTkFUVVJFIDB4NDQ0OTUyNDMJLyogIkRJUkMiICovCiBzdHJ1Y3QgY2FjaGVfaGVhZGVyIHsKLQl1bnNpZ25lZCBpbnQgaGRyX3NpZ25hdHVyZTsKLQl1bnNpZ25lZCBpbnQgaGRyX3ZlcnNpb247Ci0JdW5zaWduZWQgaW50IGhkcl9lbnRyaWVzOworCXVpbnQzMl90IGhkcl9zaWduYXR1cmU7CisJdWludDMyX3QgaGRyX3ZlcnNpb247CisJdWludDMyX3QgaGRyX2VudHJpZXM7CiB9OwogCiAjZGVmaW5lIElOREVYX0ZPUk1BVF9MQiAyCkBAIC0xMTUsOCArMTE1LDggQEAKICAqIGNoZWNrIGl0IGZvciBlcXVhbGl0eSBpbiB0aGUgMzIgYml0cyB3ZSBzYXZlLgogICovCiBzdHJ1Y3QgY2FjaGVfdGltZSB7Ci0JdW5zaWduZWQgaW50IHNlYzsKLQl1bnNpZ25lZCBpbnQgbnNlYzsKKwl1aW50MzJfdCBzZWM7CisJdWludDMyX3QgbnNlYzsKIH07CiAKIHN0cnVjdCBzdGF0X2RhdGEgewpAQCAtMTg5LDYgKzE4OSw4IEBACiAjZXJyb3IgIkNFX0VYVEVOREVEX0ZMQUdTIG91dCBvZiByYW5nZSIKICNlbmRpZgogCitzdHJ1Y3QgcGF0aHNwZWM7CisKIC8qCiAgKiBDb3B5IHRoZSBzaGExIGFuZCBzdGF0IHN0YXRlIG9mIGEgY2FjaGUgZW50cnkgZnJvbSBvbmUgdG8KICAqIGFub3RoZXIuIEJ1dCB3ZSBuZXZlciBjaGFuZ2UgdGhlIG5hbWUsIG9yIHRoZSBoYXNoIHN0YXRlIQpAQCAtMzEyLDYgKzMxNCw4IEBACiAjZGVmaW5lIHJlZnJlc2hfY2FjaGUoZmxhZ3MpIHJlZnJlc2hfaW5kZXgoJnRoZV9pbmRleCwgKGZsYWdzKSwgTlVMTCwgTlVMTCwgTlVMTCkKICNkZWZpbmUgY2VfbWF0Y2hfc3RhdChjZSwgc3QsIG9wdGlvbnMpIGllX21hdGNoX3N0YXQoJnRoZV9pbmRleCwgKGNlKSwgKHN0KSwgKG9wdGlvbnMpKQogI2RlZmluZSBjZV9tb2RpZmllZChjZSwgc3QsIG9wdGlvbnMpIGllX21vZGlmaWVkKCZ0aGVfaW5kZXgsIChjZSksIChzdCksIChvcHRpb25zKSkKKyNkZWZpbmUgY2FjaGVfZGlyX2V4aXN0cyhuYW1lLCBuYW1lbGVuKSBpbmRleF9kaXJfZXhpc3RzKCZ0aGVfaW5kZXgsIChuYW1lKSwgKG5hbWVsZW4pKQorI2RlZmluZSBjYWNoZV9maWxlX2V4aXN0cyhuYW1lLCBuYW1lbGVuLCBpZ25jYXNlKSBpbmRleF9maWxlX2V4aXN0cygmdGhlX2luZGV4LCAobmFtZSksIChuYW1lbGVuKSwgKGlnbmNhc2UpKQogI2RlZmluZSBjYWNoZV9uYW1lX2V4aXN0cyhuYW1lLCBuYW1lbGVuLCBpZ25jYXNlKSBpbmRleF9uYW1lX2V4aXN0cygmdGhlX2luZGV4LCAobmFtZSksIChuYW1lbGVuKSwgKGlnbmNhc2UpKQogI2RlZmluZSBjYWNoZV9uYW1lX2lzX290aGVyKG5hbWUsIG5hbWVsZW4pIGluZGV4X25hbWVfaXNfb3RoZXIoJnRoZV9pbmRleCwgKG5hbWUpLCAobmFtZWxlbikpCiAjZGVmaW5lIHJlc29sdmVfdW5kb19jbGVhcigpIHJlc29sdmVfdW5kb19jbGVhcl9pbmRleCgmdGhlX2luZGV4KQpAQCAtMzUwLDYgKzM1NCw3IEBACiAjZGVmaW5lIERCX0VOVklST05NRU5UICJHSVRfT0JKRUNUX0RJUkVDVE9SWSIKICNkZWZpbmUgSU5ERVhfRU5WSVJPTk1FTlQgIkdJVF9JTkRFWF9GSUxFIgogI2RlZmluZSBHUkFGVF9FTlZJUk9OTUVOVCAiR0lUX0dSQUZUX0ZJTEUiCisjZGVmaW5lIEdJVF9TSEFMTE9XX0ZJTEVfRU5WSVJPTk1FTlQgIkdJVF9TSEFMTE9XX0ZJTEUiCiAjZGVmaW5lIFRFTVBMQVRFX0RJUl9FTlZJUk9OTUVOVCAiR0lUX1RFTVBMQVRFX0RJUiIKICNkZWZpbmUgQ09ORklHX0VOVklST05NRU5UICJHSVRfQ09ORklHIgogI2RlZmluZSBDT05GSUdfREFUQV9FTlZJUk9OTUVOVCAiR0lUX0NPTkZJR19QQVJBTUVURVJTIgpAQCAtMzY1LDYgKzM3MCw5IEBACiAjZGVmaW5lIEdJVF9OT1RFU19SRVdSSVRFX1JFRl9FTlZJUk9OTUVOVCAiR0lUX05PVEVTX1JFV1JJVEVfUkVGIgogI2RlZmluZSBHSVRfTk9URVNfUkVXUklURV9NT0RFX0VOVklST05NRU5UICJHSVRfTk9URVNfUkVXUklURV9NT0RFIgogI2RlZmluZSBHSVRfTElURVJBTF9QQVRIU1BFQ1NfRU5WSVJPTk1FTlQgIkdJVF9MSVRFUkFMX1BBVEhTUEVDUyIKKyNkZWZpbmUgR0lUX0dMT0JfUEFUSFNQRUNTX0VOVklST05NRU5UICJHSVRfR0xPQl9QQVRIU1BFQ1MiCisjZGVmaW5lIEdJVF9OT0dMT0JfUEFUSFNQRUNTX0VOVklST05NRU5UICJHSVRfTk9HTE9CX1BBVEhTUEVDUyIKKyNkZWZpbmUgR0lUX0lDQVNFX1BBVEhTUEVDU19FTlZJUk9OTUVOVCAiR0lUX0lDQVNFX1BBVEhTUEVDUyIKIAogLyoKICAqIFRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgZXhwZWN0ZWQgdG8gY29udGFpbiBhIGJvb2xlYW4gaW5kaWNhdGluZwpAQCAtMzkxLDcgKzM5OSw2IEBACiBleHRlcm4gaW50IGlzX2luc2lkZV9naXRfZGlyKHZvaWQpOwogZXh0ZXJuIGNoYXIgKmdpdF93b3JrX3RyZWVfY2ZnOwogZXh0ZXJuIGludCBpc19pbnNpZGVfd29ya190cmVlKHZvaWQpOwotZXh0ZXJuIGludCBoYXZlX2dpdF9kaXIodm9pZCk7CiBleHRlcm4gY29uc3QgY2hhciAqZ2V0X2dpdF9kaXIodm9pZCk7CiBleHRlcm4gaW50IGlzX2dpdF9kaXJlY3RvcnkoY29uc3QgY2hhciAqcGF0aCk7CiBleHRlcm4gY2hhciAqZ2V0X29iamVjdF9kaXJlY3Rvcnkodm9pZCk7CkBAIC00MTIsNiArNDE5LDcgQEAKIGV4dGVybiBjb25zdCBjaGFyICpzZXR1cF9naXRfZGlyZWN0b3J5X2dlbnRseShpbnQgKik7CiBleHRlcm4gY29uc3QgY2hhciAqc2V0dXBfZ2l0X2RpcmVjdG9yeSh2b2lkKTsKIGV4dGVybiBjaGFyICpwcmVmaXhfcGF0aChjb25zdCBjaGFyICpwcmVmaXgsIGludCBsZW4sIGNvbnN0IGNoYXIgKnBhdGgpOworZXh0ZXJuIGNoYXIgKnByZWZpeF9wYXRoX2dlbnRseShjb25zdCBjaGFyICpwcmVmaXgsIGludCBsZW4sIGludCAqcmVtYWluaW5nLCBjb25zdCBjaGFyICpwYXRoKTsKIGV4dGVybiBjb25zdCBjaGFyICpwcmVmaXhfZmlsZW5hbWUoY29uc3QgY2hhciAqcHJlZml4LCBpbnQgbGVuLCBjb25zdCBjaGFyICpwYXRoKTsKIGV4dGVybiBpbnQgY2hlY2tfZmlsZW5hbWUoY29uc3QgY2hhciAqcHJlZml4LCBjb25zdCBjaGFyICpuYW1lKTsKIGV4dGVybiB2b2lkIHZlcmlmeV9maWxlbmFtZShjb25zdCBjaGFyICpwcmVmaXgsCkBAIC00NDksNyArNDU3LDcgQEAKIAogLyogSW5pdGlhbGl6ZSBhbmQgdXNlIHRoZSBjYWNoZSBpbmZvcm1hdGlvbiAqLwogZXh0ZXJuIGludCByZWFkX2luZGV4KHN0cnVjdCBpbmRleF9zdGF0ZSAqKTsKLWV4dGVybiBpbnQgcmVhZF9pbmRleF9wcmVsb2FkKHN0cnVjdCBpbmRleF9zdGF0ZSAqLCBjb25zdCBjaGFyICoqcGF0aHNwZWMpOworZXh0ZXJuIGludCByZWFkX2luZGV4X3ByZWxvYWQoc3RydWN0IGluZGV4X3N0YXRlICosIGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMpOwogZXh0ZXJuIGludCByZWFkX2luZGV4X2Zyb20oc3RydWN0IGluZGV4X3N0YXRlICosIGNvbnN0IGNoYXIgKnBhdGgpOwogZXh0ZXJuIGludCBpc19pbmRleF91bmJvcm4oc3RydWN0IGluZGV4X3N0YXRlICopOwogZXh0ZXJuIGludCByZWFkX2luZGV4X3VubWVyZ2VkKHN0cnVjdCBpbmRleF9zdGF0ZSAqKTsKQEAgLTQ1Nyw2ICs0NjUsOCBAQAogZXh0ZXJuIGludCBkaXNjYXJkX2luZGV4KHN0cnVjdCBpbmRleF9zdGF0ZSAqKTsKIGV4dGVybiBpbnQgdW5tZXJnZWRfaW5kZXgoY29uc3Qgc3RydWN0IGluZGV4X3N0YXRlICopOwogZXh0ZXJuIGludCB2ZXJpZnlfcGF0aChjb25zdCBjaGFyICpwYXRoKTsKK2V4dGVybiBzdHJ1Y3QgY2FjaGVfZW50cnkgKmluZGV4X2Rpcl9leGlzdHMoc3RydWN0IGluZGV4X3N0YXRlICppc3RhdGUsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuYW1lbGVuKTsKK2V4dGVybiBzdHJ1Y3QgY2FjaGVfZW50cnkgKmluZGV4X2ZpbGVfZXhpc3RzKHN0cnVjdCBpbmRleF9zdGF0ZSAqaXN0YXRlLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbmFtZWxlbiwgaW50IGlnbmNhc2UpOwogZXh0ZXJuIHN0cnVjdCBjYWNoZV9lbnRyeSAqaW5kZXhfbmFtZV9leGlzdHMoc3RydWN0IGluZGV4X3N0YXRlICppc3RhdGUsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuYW1lbGVuLCBpbnQgaWduY2FzZSk7CiBleHRlcm4gaW50IGluZGV4X25hbWVfcG9zKGNvbnN0IHN0cnVjdCBpbmRleF9zdGF0ZSAqLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbmFtZWxlbik7CiAjZGVmaW5lIEFERF9DQUNIRV9PS19UT19BREQgMQkJLyogT2sgdG8gYWRkICovCkBAIC00OTEsMjggKzUwMSw4IEBACiBleHRlcm4gaW50IGllX21hdGNoX3N0YXQoY29uc3Qgc3RydWN0IGluZGV4X3N0YXRlICosIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqLCBzdHJ1Y3Qgc3RhdCAqLCB1bnNpZ25lZCBpbnQpOwogZXh0ZXJuIGludCBpZV9tb2RpZmllZChjb25zdCBzdHJ1Y3QgaW5kZXhfc3RhdGUgKiwgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICosIHN0cnVjdCBzdGF0ICosIHVuc2lnbmVkIGludCk7CiAKLSNkZWZpbmUgUEFUSFNQRUNfT05FU1RBUiAxCS8qIHRoZSBwYXRoc3BlYyBwYXR0ZXJuIHNhdGlzZmllcyBHRk5NX09ORVNUQVIgKi8KLQotc3RydWN0IHBhdGhzcGVjIHsKLQljb25zdCBjaGFyICoqcmF3OyAvKiBnZXRfcGF0aHNwZWMoKSByZXN1bHQsIG5vdCBmcmVlZCBieSBmcmVlX3BhdGhzcGVjKCkgKi8KLQlpbnQgbnI7Ci0JdW5zaWduZWQgaW50IGhhc193aWxkY2FyZDoxOwotCXVuc2lnbmVkIGludCByZWN1cnNpdmU6MTsKLQlpbnQgbWF4X2RlcHRoOwotCXN0cnVjdCBwYXRoc3BlY19pdGVtIHsKLQkJY29uc3QgY2hhciAqbWF0Y2g7Ci0JCWludCBsZW47Ci0JCWludCBub3dpbGRjYXJkX2xlbjsKLQkJaW50IGZsYWdzOwotCX0gKml0ZW1zOwotfTsKLQotZXh0ZXJuIGludCBpbml0X3BhdGhzcGVjKHN0cnVjdCBwYXRoc3BlYyAqLCBjb25zdCBjaGFyICoqKTsKLWV4dGVybiB2b2lkIGZyZWVfcGF0aHNwZWMoc3RydWN0IHBhdGhzcGVjICopOwogZXh0ZXJuIGludCBjZV9wYXRoX21hdGNoKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMpOwogCi1leHRlcm4gaW50IGxpbWl0X3BhdGhzcGVjX3RvX2xpdGVyYWwodm9pZCk7Ci0KICNkZWZpbmUgSEFTSF9XUklURV9PQkpFQ1QgMQogI2RlZmluZSBIQVNIX0ZPUk1BVF9DSEVDSyAyCiBleHRlcm4gaW50IGluZGV4X2ZkKHVuc2lnbmVkIGNoYXIgKnNoYTEsIGludCBmZCwgc3RydWN0IHN0YXQgKnN0LCBlbnVtIG9iamVjdF90eXBlIHR5cGUsIGNvbnN0IGNoYXIgKnBhdGgsIHVuc2lnbmVkIGZsYWdzKTsKQEAgLTU0MCw3ICs1MzAsNyBAQAogI2RlZmluZSBSRUZSRVNIX0lHTk9SRV9NSVNTSU5HCTB4MDAwOAkvKiBpZ25vcmUgbm9uLWV4aXN0ZW50ICovCiAjZGVmaW5lIFJFRlJFU0hfSUdOT1JFX1NVQk1PRFVMRVMJMHgwMDEwCS8qIGlnbm9yZSBzdWJtb2R1bGVzICovCiAjZGVmaW5lIFJFRlJFU0hfSU5fUE9SQ0VMQUlOCTB4MDAyMAkvKiB1c2VyIGZyaWVuZGx5IG91dHB1dCwgbm90ICJuZWVkcyB1cGRhdGUiICovCi1leHRlcm4gaW50IHJlZnJlc2hfaW5kZXgoc3RydWN0IGluZGV4X3N0YXRlICosIHVuc2lnbmVkIGludCBmbGFncywgY29uc3QgY2hhciAqKnBhdGhzcGVjLCBjaGFyICpzZWVuLCBjb25zdCBjaGFyICpoZWFkZXJfbXNnKTsKK2V4dGVybiBpbnQgcmVmcmVzaF9pbmRleChzdHJ1Y3QgaW5kZXhfc3RhdGUgKiwgdW5zaWduZWQgaW50IGZsYWdzLCBjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjLCBjaGFyICpzZWVuLCBjb25zdCBjaGFyICpoZWFkZXJfbXNnKTsKIAogc3RydWN0IGxvY2tfZmlsZSB7CiAJc3RydWN0IGxvY2tfZmlsZSAqbmV4dDsKQEAgLTc0Nyw4ICs3MzcsMjkgQEAKIH07CiBpbnQgZ2l0X2NvbmZpZ19wZXJtKGNvbnN0IGNoYXIgKnZhciwgY29uc3QgY2hhciAqdmFsdWUpOwogaW50IGFkanVzdF9zaGFyZWRfcGVybShjb25zdCBjaGFyICpwYXRoKTsKLWludCBzYWZlX2NyZWF0ZV9sZWFkaW5nX2RpcmVjdG9yaWVzKGNoYXIgKnBhdGgpOwotaW50IHNhZmVfY3JlYXRlX2xlYWRpbmdfZGlyZWN0b3JpZXNfY29uc3QoY29uc3QgY2hhciAqcGF0aCk7CisKKy8qCisgKiBDcmVhdGUgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBuYW1lZCBwYXRoLCB1c2luZyBjYXJlIHRvIGJlCisgKiBzb21ld2hhdCBzYWZlIGFnYWluc3QgcmFjZXMuICBSZXR1cm4gb25lIG9mIHRoZSBzY2xkX2Vycm9yIHZhbHVlcworICogdG8gaW5kaWNhdGUgc3VjY2Vzcy9mYWlsdXJlLgorICoKKyAqIFNDTERfVkFOSVNIRUQgaW5kaWNhdGVzIHRoYXQgb25lIG9mIHRoZSBhbmNlc3RvciBkaXJlY3RvcmllcyBvZiB0aGUKKyAqIHBhdGggZXhpc3RlZCBhdCBvbmUgcG9pbnQgZHVyaW5nIHRoZSBmdW5jdGlvbiBjYWxsIGFuZCB0aGVuCisgKiBzdWRkZW5seSB2YW5pc2hlZCwgcHJvYmFibHkgYmVjYXVzZSBhbm90aGVyIHByb2Nlc3MgcHJ1bmVkIHRoZQorICogZGlyZWN0b3J5IHdoaWxlIHdlIHdlcmUgd29ya2luZy4gIFRvIGJlIHJvYnVzdCBhZ2FpbnN0IHRoaXMga2luZCBvZgorICogcmFjZSwgY2FsbGVycyBtaWdodCB3YW50IHRvIHRyeSBpbnZva2luZyB0aGUgZnVuY3Rpb24gYWdhaW4gd2hlbiBpdAorICogcmV0dXJucyBTQ0xEX1ZBTklTSEVELgorICovCitlbnVtIHNjbGRfZXJyb3IgeworCVNDTERfT0sgPSAwLAorCVNDTERfRkFJTEVEID0gLTEsCisJU0NMRF9QRVJNUyA9IC0yLAorCVNDTERfRVhJU1RTID0gLTMsCisJU0NMRF9WQU5JU0hFRCA9IC00Cit9OworZW51bSBzY2xkX2Vycm9yIHNhZmVfY3JlYXRlX2xlYWRpbmdfZGlyZWN0b3JpZXMoY2hhciAqcGF0aCk7CitlbnVtIHNjbGRfZXJyb3Igc2FmZV9jcmVhdGVfbGVhZGluZ19kaXJlY3Rvcmllc19jb25zdChjb25zdCBjaGFyICpwYXRoKTsKKwogaW50IG1rZGlyX2luX2dpdGRpcihjb25zdCBjaGFyICpwYXRoKTsKIGV4dGVybiB2b2lkIGhvbWVfY29uZmlnX3BhdGhzKGNoYXIgKipnbG9iYWwsIGNoYXIgKip4ZGcsIGNoYXIgKmZpbGUpOwogZXh0ZXJuIGNoYXIgKmV4cGFuZF91c2VyX3BhdGgoY29uc3QgY2hhciAqcGF0aCk7CkBAIC03NjEsNyArNzcyLDkgQEAKIGNvbnN0IGNoYXIgKnJlYWxfcGF0aChjb25zdCBjaGFyICpwYXRoKTsKIGNvbnN0IGNoYXIgKnJlYWxfcGF0aF9pZl92YWxpZChjb25zdCBjaGFyICpwYXRoKTsKIGNvbnN0IGNoYXIgKmFic29sdXRlX3BhdGgoY29uc3QgY2hhciAqcGF0aCk7Citjb25zdCBjaGFyICpyZW1vdmVfbGVhZGluZ19wYXRoKGNvbnN0IGNoYXIgKmluLCBjb25zdCBjaGFyICpwcmVmaXgpOwogY29uc3QgY2hhciAqcmVsYXRpdmVfcGF0aChjb25zdCBjaGFyICppbiwgY29uc3QgY2hhciAqcHJlZml4LCBzdHJ1Y3Qgc3RyYnVmICpzYik7CitpbnQgbm9ybWFsaXplX3BhdGhfY29weV9sZW4oY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMsIGludCAqcHJlZml4X2xlbik7CiBpbnQgbm9ybWFsaXplX3BhdGhfY29weShjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYyk7CiBpbnQgbG9uZ2VzdF9hbmNlc3Rvcl9sZW5ndGgoY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IHN0cmluZ19saXN0ICpwcmVmaXhlcyk7CiBjaGFyICpzdHJpcF9wYXRoX3N1ZmZpeChjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICpzdWZmaXgpOwpAQCAtNzY5LDExICs3ODIsMTEgQEAKIGludCBvZmZzZXRfMXN0X2NvbXBvbmVudChjb25zdCBjaGFyICpwYXRoKTsKIAogLyogb2JqZWN0IHJlcGxhY2VtZW50ICovCi0jZGVmaW5lIFJFQURfU0hBMV9GSUxFX1JFUExBQ0UgMQorI2RlZmluZSBMT09LVVBfUkVQTEFDRV9PQkpFQ1QgMQogZXh0ZXJuIHZvaWQgKnJlYWRfc2hhMV9maWxlX2V4dGVuZGVkKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIGVudW0gb2JqZWN0X3R5cGUgKnR5cGUsIHVuc2lnbmVkIGxvbmcgKnNpemUsIHVuc2lnbmVkIGZsYWcpOwogc3RhdGljIGlubGluZSB2b2lkICpyZWFkX3NoYTFfZmlsZShjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBlbnVtIG9iamVjdF90eXBlICp0eXBlLCB1bnNpZ25lZCBsb25nICpzaXplKQogewotCXJldHVybiByZWFkX3NoYTFfZmlsZV9leHRlbmRlZChzaGExLCB0eXBlLCBzaXplLCBSRUFEX1NIQTFfRklMRV9SRVBMQUNFKTsKKwlyZXR1cm4gcmVhZF9zaGExX2ZpbGVfZXh0ZW5kZWQoc2hhMSwgdHlwZSwgc2l6ZSwgTE9PS1VQX1JFUExBQ0VfT0JKRUNUKTsKIH0KIGV4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyICpkb19sb29rdXBfcmVwbGFjZV9vYmplY3QoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSk7CiBzdGF0aWMgaW5saW5lIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmxvb2t1cF9yZXBsYWNlX29iamVjdChjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKQpAQCAtNzgyLDYgKzc5NSwxMiBAQAogCQlyZXR1cm4gc2hhMTsKIAlyZXR1cm4gZG9fbG9va3VwX3JlcGxhY2Vfb2JqZWN0KHNoYTEpOwogfQorc3RhdGljIGlubGluZSBjb25zdCB1bnNpZ25lZCBjaGFyICpsb29rdXBfcmVwbGFjZV9vYmplY3RfZXh0ZW5kZWQoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgdW5zaWduZWQgZmxhZykKK3sKKwlpZiAoIShmbGFnICYgTE9PS1VQX1JFUExBQ0VfT0JKRUNUKSkKKwkJcmV0dXJuIHNoYTE7CisJcmV0dXJuIGxvb2t1cF9yZXBsYWNlX29iamVjdChzaGExKTsKK30KIAogLyogUmVhZCBhbmQgdW5wYWNrIGEgc2hhMSBmaWxlIGludG8gbWVtb3J5LCB3cml0ZSBtZW1vcnkgdG8gYSBzaGExIGZpbGUgKi8KIGV4dGVybiBpbnQgc2hhMV9vYmplY3RfaW5mbyhjb25zdCB1bnNpZ25lZCBjaGFyICosIHVuc2lnbmVkIGxvbmcgKik7CkBAIC04OTMsMTIgKzkxMiwxNSBAQAogCiBleHRlcm4gaW50IGR3aW1fcmVmKGNvbnN0IGNoYXIgKnN0ciwgaW50IGxlbiwgdW5zaWduZWQgY2hhciAqc2hhMSwgY2hhciAqKnJlZik7CiBleHRlcm4gaW50IGR3aW1fbG9nKGNvbnN0IGNoYXIgKnN0ciwgaW50IGxlbiwgdW5zaWduZWQgY2hhciAqc2hhMSwgY2hhciAqKnJlZik7Ci1leHRlcm4gaW50IGludGVycHJldF9icmFuY2hfbmFtZShjb25zdCBjaGFyICpzdHIsIHN0cnVjdCBzdHJidWYgKik7CitleHRlcm4gaW50IGludGVycHJldF9icmFuY2hfbmFtZShjb25zdCBjaGFyICpzdHIsIGludCBsZW4sIHN0cnVjdCBzdHJidWYgKik7CiBleHRlcm4gaW50IGdldF9zaGExX21iKGNvbnN0IGNoYXIgKnN0ciwgdW5zaWduZWQgY2hhciAqc2hhMSk7CiAKLWV4dGVybiBpbnQgcmVmbmFtZV9tYXRjaChjb25zdCBjaGFyICphYmJyZXZfbmFtZSwgY29uc3QgY2hhciAqZnVsbF9uYW1lLCBjb25zdCBjaGFyICoqcnVsZXMpOwotZXh0ZXJuIGNvbnN0IGNoYXIgKnJlZl9yZXZfcGFyc2VfcnVsZXNbXTsKLSNkZWZpbmUgcmVmX2ZldGNoX3J1bGVzIHJlZl9yZXZfcGFyc2VfcnVsZXMKKy8qCisgKiBSZXR1cm4gdHJ1ZSBpZmYgYWJicmV2X25hbWUgaXMgYSBwb3NzaWJsZSBhYmJyZXZpYXRpb24gZm9yCisgKiBmdWxsX25hbWUgYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBkZWZpbmVkIGJ5IHJlZl9yZXZfcGFyc2VfcnVsZXMgaW4KKyAqIHJlZnMuYy4KKyAqLworZXh0ZXJuIGludCByZWZuYW1lX21hdGNoKGNvbnN0IGNoYXIgKmFiYnJldl9uYW1lLCBjb25zdCBjaGFyICpmdWxsX25hbWUpOwogCiBleHRlcm4gaW50IGNyZWF0ZV9zeW1yZWYoY29uc3QgY2hhciAqcmVmLCBjb25zdCBjaGFyICpyZWZzX2hlYWRzX21hc3RlciwgY29uc3QgY2hhciAqbG9nbXNnKTsKIGV4dGVybiBpbnQgdmFsaWRhdGVfaGVhZHJlZihjb25zdCBjaGFyICpyZWYpOwpAQCAtOTg0LDYgKzEwMDYsNyBAQAogCQkgcmVmcmVzaF9jYWNoZToxOwogfTsKIAorI2RlZmluZSBURU1QT1JBUllfRklMRU5BTUVfTEVOR1RIIDI1CiBleHRlcm4gaW50IGNoZWNrb3V0X2VudHJ5KHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIGNvbnN0IHN0cnVjdCBjaGVja291dCAqc3RhdGUsIGNoYXIgKnRvcGF0aCk7CiAKIHN0cnVjdCBjYWNoZV9kZWYgewpAQCAtMTA0Nyw2NyArMTA3MCw2IEBACiAJc3RydWN0IHBhY2tlZF9naXQgKnA7CiB9OwogCi1zdHJ1Y3QgcmVmIHsKLQlzdHJ1Y3QgcmVmICpuZXh0OwotCXVuc2lnbmVkIGNoYXIgb2xkX3NoYTFbMjBdOwotCXVuc2lnbmVkIGNoYXIgbmV3X3NoYTFbMjBdOwotCWNoYXIgKnN5bXJlZjsKLQl1bnNpZ25lZCBpbnQKLQkJZm9yY2U6MSwKLQkJZm9yY2VkX3VwZGF0ZToxLAotCQlkZWxldGlvbjoxLAotCQltYXRjaGVkOjE7Ci0KLQkvKgotCSAqIE9yZGVyIGlzIGltcG9ydGFudCBoZXJlLCBhcyB3ZSB3cml0ZSB0byBGRVRDSF9IRUFECi0JICogaW4gbnVtZXJpYyBvcmRlci4gQW5kIHRoZSBkZWZhdWx0IE5PVF9GT1JfTUVSR0UKLQkgKiBzaG91bGQgYmUgMCwgc28gdGhhdCB4Y2FsbG9jJ2Qgc3RydWN0dXJlcyBnZXQgaXQKLQkgKiBieSBkZWZhdWx0LgotCSAqLwotCWVudW0gewotCQlGRVRDSF9IRUFEX01FUkdFID0gLTEsCi0JCUZFVENIX0hFQURfTk9UX0ZPUl9NRVJHRSA9IDAsCi0JCUZFVENIX0hFQURfSUdOT1JFID0gMQotCX0gZmV0Y2hfaGVhZF9zdGF0dXM7Ci0KLQllbnVtIHsKLQkJUkVGX1NUQVRVU19OT05FID0gMCwKLQkJUkVGX1NUQVRVU19PSywKLQkJUkVGX1NUQVRVU19SRUpFQ1RfTk9ORkFTVEZPUldBUkQsCi0JCVJFRl9TVEFUVVNfUkVKRUNUX0FMUkVBRFlfRVhJU1RTLAotCQlSRUZfU1RBVFVTX1JFSkVDVF9OT0RFTEVURSwKLQkJUkVGX1NUQVRVU19SRUpFQ1RfRkVUQ0hfRklSU1QsCi0JCVJFRl9TVEFUVVNfUkVKRUNUX05FRURTX0ZPUkNFLAotCQlSRUZfU1RBVFVTX1VQVE9EQVRFLAotCQlSRUZfU1RBVFVTX1JFTU9URV9SRUpFQ1QsCi0JCVJFRl9TVEFUVVNfRVhQRUNUSU5HX1JFUE9SVAotCX0gc3RhdHVzOwotCWNoYXIgKnJlbW90ZV9zdGF0dXM7Ci0Jc3RydWN0IHJlZiAqcGVlcl9yZWY7IC8qIHdoZW4gcmVuYW1pbmcgKi8KLQljaGFyIG5hbWVbRkxFWF9BUlJBWV07IC8qIG1vcmUgKi8KLX07Ci0KLSNkZWZpbmUgUkVGX05PUk1BTAkoMXUgPDwgMCkKLSNkZWZpbmUgUkVGX0hFQURTCSgxdSA8PCAxKQotI2RlZmluZSBSRUZfVEFHUwkoMXUgPDwgMikKLQotZXh0ZXJuIHN0cnVjdCByZWYgKmZpbmRfcmVmX2J5X25hbWUoY29uc3Qgc3RydWN0IHJlZiAqbGlzdCwgY29uc3QgY2hhciAqbmFtZSk7Ci0KLSNkZWZpbmUgQ09OTkVDVF9WRVJCT1NFICAgICAgICgxdSA8PCAwKQotZXh0ZXJuIHN0cnVjdCBjaGlsZF9wcm9jZXNzICpnaXRfY29ubmVjdChpbnQgZmRbMl0sIGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqcHJvZywgaW50IGZsYWdzKTsKLWV4dGVybiBpbnQgZmluaXNoX2Nvbm5lY3Qoc3RydWN0IGNoaWxkX3Byb2Nlc3MgKmNvbm4pOwotZXh0ZXJuIGludCBnaXRfY29ubmVjdGlvbl9pc19zb2NrZXQoc3RydWN0IGNoaWxkX3Byb2Nlc3MgKmNvbm4pOwotc3RydWN0IGV4dHJhX2hhdmVfb2JqZWN0cyB7Ci0JaW50IG5yLCBhbGxvYzsKLQl1bnNpZ25lZCBjaGFyICgqYXJyYXkpWzIwXTsKLX07Ci1leHRlcm4gc3RydWN0IHJlZiAqKmdldF9yZW1vdGVfaGVhZHMoaW50IGluLCBjaGFyICpzcmNfYnVmLCBzaXplX3Qgc3JjX2xlbiwKLQkJCQkgICAgIHN0cnVjdCByZWYgKipsaXN0LCB1bnNpZ25lZCBpbnQgZmxhZ3MsCi0JCQkJICAgICBzdHJ1Y3QgZXh0cmFfaGF2ZV9vYmplY3RzICopOwotZXh0ZXJuIGludCBzZXJ2ZXJfc3VwcG9ydHMoY29uc3QgY2hhciAqZmVhdHVyZSk7Ci1leHRlcm4gaW50IHBhcnNlX2ZlYXR1cmVfcmVxdWVzdChjb25zdCBjaGFyICpmZWF0dXJlcywgY29uc3QgY2hhciAqZmVhdHVyZSk7Ci1leHRlcm4gY29uc3QgY2hhciAqc2VydmVyX2ZlYXR1cmVfdmFsdWUoY29uc3QgY2hhciAqZmVhdHVyZSwgaW50ICpsZW5fcmV0KTsKLQogZXh0ZXJuIHN0cnVjdCBwYWNrZWRfZ2l0ICpwYXJzZV9wYWNrX2luZGV4KHVuc2lnbmVkIGNoYXIgKnNoYTEsIGNvbnN0IGNoYXIgKmlkeF9wYXRoKTsKIAogLyogQSBob29rIGZvciBjb3VudC1vYmplY3RzIHRvIHJlcG9ydCBpbnZhbGlkIGZpbGVzIGluIHBhY2sgZGlyZWN0b3J5ICovCkBAIC0xMTQzLDYgKzExMDUsNyBAQAogCWVudW0gb2JqZWN0X3R5cGUgKnR5cGVwOwogCXVuc2lnbmVkIGxvbmcgKnNpemVwOwogCXVuc2lnbmVkIGxvbmcgKmRpc2tfc2l6ZXA7CisJdW5zaWduZWQgY2hhciAqZGVsdGFfYmFzZV9zaGExOwogCiAJLyogUmVzcG9uc2UgKi8KIAllbnVtIHsKQEAgLTExNjcsNyArMTEzMCw3IEBACiAJCX0gcGFja2VkOwogCX0gdTsKIH07Ci1leHRlcm4gaW50IHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQoY29uc3QgdW5zaWduZWQgY2hhciAqLCBzdHJ1Y3Qgb2JqZWN0X2luZm8gKik7CitleHRlcm4gaW50IHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQoY29uc3QgdW5zaWduZWQgY2hhciAqLCBzdHJ1Y3Qgb2JqZWN0X2luZm8gKiwgdW5zaWduZWQgZmxhZ3MpOwogCiAvKiBEdW1iIHNlcnZlcnMgc3VwcG9ydCAqLwogZXh0ZXJuIGludCB1cGRhdGVfc2VydmVyX2luZm8oaW50KTsKQEAgLTExOTgsNiArMTE2MSw3IEBACiBleHRlcm4gaW50IGdpdF9jb25maWdfZWFybHkoY29uZmlnX2ZuX3QgZm4sIHZvaWQgKiwgY29uc3QgY2hhciAqcmVwb19jb25maWcpOwogZXh0ZXJuIGludCBnaXRfcGFyc2VfdWxvbmcoY29uc3QgY2hhciAqLCB1bnNpZ25lZCBsb25nICopOwogZXh0ZXJuIGludCBnaXRfY29uZmlnX2ludChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CitleHRlcm4gaW50NjRfdCBnaXRfY29uZmlnX2ludDY0KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIGdpdF9jb25maWdfdWxvbmcoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwogZXh0ZXJuIGludCBnaXRfY29uZmlnX2Jvb2xfb3JfaW50KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBpbnQgKik7CiBleHRlcm4gaW50IGdpdF9jb25maWdfYm9vbChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CkBAIC0xMzA0LDYgKzEyNjgsOCBAQAogZXh0ZXJuIHZvaWQgdHJhY2VfYXJndl9wcmludGYoY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKIGV4dGVybiB2b2lkIHRyYWNlX3JlcG9fc2V0dXAoY29uc3QgY2hhciAqcHJlZml4KTsKIGV4dGVybiBpbnQgdHJhY2Vfd2FudChjb25zdCBjaGFyICprZXkpOworX19hdHRyaWJ1dGVfXygoZm9ybWF0IChwcmludGYsIDIsIDMpKSkKK2V4dGVybiB2b2lkIHRyYWNlX3ByaW50Zl9rZXkoY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICpmbXQsIC4uLik7CiBleHRlcm4gdm9pZCB0cmFjZV9zdHJidWYoY29uc3QgY2hhciAqa2V5LCBjb25zdCBzdHJ1Y3Qgc3RyYnVmICpidWYpOwogCiB2b2lkIHBhY2tldF90cmFjZV9pZGVudGl0eShjb25zdCBjaGFyICpwcm9nKTsKQEAgLTEzMTMsNyArMTI3OSw3IEBACiAgKiByZXR1cm4gMCBpZiBzdWNjZXNzLCAxIC0gaWYgYWRkaXRpb24gb2YgYSBmaWxlIGZhaWxlZCBhbmQKICAqIEFERF9GSUxFU19JR05PUkVfRVJST1JTIHdhcyBzcGVjaWZpZWQgaW4gZmxhZ3MKICAqLwotaW50IGFkZF9maWxlc190b19jYWNoZShjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKipwYXRoc3BlYywgaW50IGZsYWdzKTsKK2ludCBhZGRfZmlsZXNfdG9fY2FjaGUoY29uc3QgY2hhciAqcHJlZml4LCBjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjLCBpbnQgZmxhZ3MpOwogCiAvKiBkaWZmLmMgKi8KIGV4dGVybiBpbnQgZGlmZl9hdXRvX3JlZnJlc2hfaW5kZXg7CkBAIC0xMzQ3LDcgKzEzMTMsNyBAQAogI2RlZmluZSB3c190YWJfd2lkdGgocnVsZSkgICAgICgocnVsZSkgJiBXU19UQUJfV0lEVEhfTUFTSykKIAogLyogbHMtZmlsZXMgKi8KLWludCByZXBvcnRfcGF0aF9lcnJvcihjb25zdCBjaGFyICpwc19tYXRjaGVkLCBjb25zdCBjaGFyICoqcGF0aHNwZWMsIGNvbnN0IGNoYXIgKnByZWZpeCk7CitpbnQgcmVwb3J0X3BhdGhfZXJyb3IoY29uc3QgY2hhciAqcHNfbWF0Y2hlZCwgY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYywgY29uc3QgY2hhciAqcHJlZml4KTsKIHZvaWQgb3ZlcmxheV90cmVlX29uX2NhY2hlKGNvbnN0IGNoYXIgKnRyZWVfbmFtZSwgY29uc3QgY2hhciAqcHJlZml4KTsKIAogY2hhciAqYWxpYXNfbG9va3VwKGNvbnN0IGNoYXIgKmFsaWFzKTsKZGlmZiAtLWdpdCBhL2NvbWJpbmUtZGlmZi5jIGIvY29tYmluZS1kaWZmLmMKaW5kZXggNGZjMTZhZC4uM2I5MmM0NDggMTAwNjQ0Ci0tLSBhL2NvbWJpbmUtZGlmZi5jCisrKyBiL2NvbWJpbmUtZGlmZi5jCkBAIC0xMzA2LDcgKzEzMDYsNyBAQAogCWludCBpLCBudW1fcGF0aHMsIG5lZWRzZXAsIHNob3dfbG9nX2ZpcnN0LCBudW1fcGFyZW50ID0gcGFyZW50cy0+bnI7CiAKIAlkaWZmb3B0cyA9ICpvcHQ7Ci0JZGlmZl90cmVlX3NldHVwX3BhdGhzKGRpZmZvcHRzLnBhdGhzcGVjLnJhdywgJmRpZmZvcHRzKTsKKwljb3B5X3BhdGhzcGVjKCZkaWZmb3B0cy5wYXRoc3BlYywgJm9wdC0+cGF0aHNwZWMpOwogCWRpZmZvcHRzLm91dHB1dF9mb3JtYXQgPSBESUZGX0ZPUk1BVF9OT19PVVRQVVQ7CiAJRElGRl9PUFRfU0VUKCZkaWZmb3B0cywgUkVDVVJTSVZFKTsKIAlESUZGX09QVF9DTFIoJmRpZmZvcHRzLCBBTExPV19FWFRFUk5BTCk7CkBAIC0xMzc4LDcgKzEzNzgsNyBAQAogCQlmcmVlKHRtcCk7CiAJfQogCi0JZGlmZl90cmVlX3JlbGVhc2VfcGF0aHMoJmRpZmZvcHRzKTsKKwlmcmVlX3BhdGhzcGVjKCZkaWZmb3B0cy5wYXRoc3BlYyk7CiB9CiAKIHZvaWQgZGlmZl90cmVlX2NvbWJpbmVkX21lcmdlKGNvbnN0IHN0cnVjdCBjb21taXQgKmNvbW1pdCwgaW50IGRlbnNlLApkaWZmIC0tZ2l0IGEvY29tbWFuZC1saXN0LnR4dCBiL2NvbW1hbmQtbGlzdC50eHQKaW5kZXggMDhiMDRlMi4uY2YzNmMzZCAxMDA2NDQKLS0tIGEvY29tbWFuZC1saXN0LnR4dAorKysgYi9jb21tYW5kLWxpc3QudHh0CkBAIC02NCw3ICs2NCw2IEBACiBnaXQtaW5zdGF3ZWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWxsYXJ5aW50ZXJyb2dhdG9ycwogZ2l0ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5wb3JjZWxhaW4KIGdpdC1sb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWlucG9yY2VsYWluIGNvbW1vbgotZ2l0LWxvc3QtZm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2lsbGFyeW1hbmlwdWxhdG9ycwlkZXByZWNhdGVkCiBnaXQtbHMtZmlsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1bWJpbmdpbnRlcnJvZ2F0b3JzCiBnaXQtbHMtcmVtb3RlICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1bWJpbmdpbnRlcnJvZ2F0b3JzCiBnaXQtbHMtdHJlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1bWJpbmdpbnRlcnJvZ2F0b3JzCkBAIC04OCw3ICs4Nyw2IEBACiBnaXQtcGFjay1yZWZzICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWxsYXJ5bWFuaXB1bGF0b3JzCiBnaXQtcGFyc2UtcmVtb3RlICAgICAgICAgICAgICAgICAgICAgICAgc3luY2hlbHBlcnMKIGdpdC1wYXRjaC1pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXJlaGVscGVycwotZ2l0LXBlZWstcmVtb3RlICAgICAgICAgICAgICAgICAgICAgICAgIHB1cmVoZWxwZXJzCWRlcHJlY2F0ZWQKIGdpdC1wcnVuZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpbGxhcnltYW5pcHVsYXRvcnMKIGdpdC1wcnVuZS1wYWNrZWQgICAgICAgICAgICAgICAgICAgICAgICBwbHVtYmluZ21hbmlwdWxhdG9ycwogZ2l0LXB1bGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5wb3JjZWxhaW4gY29tbW9uCkBAIC0xMDIsNyArMTAwLDYgQEAKIGdpdC1yZW1vdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpbGxhcnltYW5pcHVsYXRvcnMKIGdpdC1yZXBhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpbGxhcnltYW5pcHVsYXRvcnMKIGdpdC1yZXBsYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpbGxhcnltYW5pcHVsYXRvcnMKLWdpdC1yZXBvLWNvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpbGxhcnltYW5pcHVsYXRvcnMJZGVwcmVjYXRlZAogZ2l0LXJlcXVlc3QtcHVsbCAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVpZ25zY21pbnRlcmZhY2UKIGdpdC1yZXJlcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpbGxhcnlpbnRlcnJvZ2F0b3JzCiBnaXQtcmVzZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbnBvcmNlbGFpbiBjb21tb24KQEAgLTEyNyw3ICsxMjQsNiBAQAogZ2l0LXN2biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVpZ25zY21pbnRlcmZhY2UKIGdpdC1zeW1ib2xpYy1yZWYgICAgICAgICAgICAgICAgICAgICAgICBwbHVtYmluZ21hbmlwdWxhdG9ycwogZ2l0LXRhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5wb3JjZWxhaW4gY29tbW9uCi1naXQtdGFyLXRyZWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1bWJpbmdpbnRlcnJvZ2F0b3JzCWRlcHJlY2F0ZWQKIGdpdC11bnBhY2stZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICBwbHVtYmluZ2ludGVycm9nYXRvcnMKIGdpdC11bnBhY2stb2JqZWN0cyAgICAgICAgICAgICAgICAgICAgICBwbHVtYmluZ21hbmlwdWxhdG9ycwogZ2l0LXVwZGF0ZS1pbmRleCAgICAgICAgICAgICAgICAgICAgICAgIHBsdW1iaW5nbWFuaXB1bGF0b3JzCmRpZmYgLS1naXQgYS9jb21taXQtc2xhYi5oIGIvY29tbWl0LXNsYWIuaAppbmRleCBkNGM4Mjg2Li5jYzExNGI1IDEwMDY0NAotLS0gYS9jb21taXQtc2xhYi5oCisrKyBiL2NvbW1pdC1zbGFiLmgKQEAgLTIyLDggKzIyLDE3IEBACiAgKgogICogICBJbml0aWFsaXplcyB0aGUgaW5kZWdyZWUgc2xhYiB0aGF0IGFzc29jaWF0ZXMgYW4gYXJyYXkgb2YgaW50ZWdlcnMKICAqICAgdG8gZWFjaCBjb21taXQuICdzdHJpZGUnIHNwZWNpZmllcyBob3cgYmlnIGVhY2ggYXJyYXkgaXMuICBUaGUgc2xhYgotICogICB0aGF0IGlkIGluaXRpYWxpZWQgYnkgdGhlIHZhcmlhbnQgd2l0aG91dCAiX3dpdGhfc3RyaWRlIiBhc3NvY2lhdGVzCisgKiAgIHRoYXQgaXMgaW5pdGlhbGl6ZWQgYnkgdGhlIHZhcmlhbnQgd2l0aG91dCAiX3dpdGhfc3RyaWRlIiBhc3NvY2lhdGVzCiAgKiAgIGVhY2ggY29tbWl0IHdpdGggYW4gYXJyYXkgb2Ygb25lIGludGVnZXIuCisgKgorICogLSB2b2lkIGNsZWFyX2luZGVncmVlKHN0cnVjdCBpbmRlZ3JlZSAqKTsKKyAqCisgKiAgIEVtcHRpZXMgdGhlIHNsYWIuICBUaGUgc2xhYiBjYW4gYmUgcmV1c2VkIHdpdGggdGhlIHNhbWUgc3RyaWRlCisgKiAgIHdpdGhvdXQgY2FsbGluZyBpbml0X2luZGVncmVlKCkgYWdhaW4gb3IgY2FuIGJlIHJlY29uZmlndXJlZCB0byBhCisgKiAgIGRpZmZlcmVudCBzdHJpZGUgYnkgY2FsbGluZyBpbml0X2luZGVncmVlX3dpdGhfc3RyaWRlKCkuCisgKgorICogICBDYWxsIHRoaXMgZnVuY3Rpb24gYmVmb3JlIHRoZSBzbGFiIGZhbGxzIG91dCBvZiBzY29wZSB0byBhdm9pZAorICogICBsZWFraW5nIG1lbW9yeS4KICAqLwogCiAvKiBhbGxvY2F0ZSB+NTEya0IgYXQgb25jZSwgYWxsb3dpbmcgZm9yIG1hbGxvYyBvdmVyaGVhZCAqLwpAQCAtMzEsNiArNDAsOCBAQAogI2RlZmluZSBDT01NSVRfU0xBQl9TSVpFICg1MTIqMTAyNC0zMikKICNlbmRpZgogCisjZGVmaW5lIE1BWUJFX1VOVVNFRCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkKKwogI2RlZmluZSBkZWZpbmVfY29tbWl0X3NsYWIoc2xhYm5hbWUsIGVsZW10eXBlKSAJCQkJXAogCQkJCQkJCQkJXAogc3RydWN0IHNsYWJuYW1lIHsJCQkJCQkJXApAQCAtNDEsOCArNTIsOCBAQAogfTsJCQkJCQkJCQlcCiBzdGF0aWMgaW50IHN0YXRfICMjc2xhYm5hbWUjIyByZWFsbG9jOwkJCQkJXAogCQkJCQkJCQkJXAotc3RhdGljIHZvaWQgaW5pdF8gIyNzbGFibmFtZSMjIF93aXRoX3N0cmlkZShzdHJ1Y3Qgc2xhYm5hbWUgKnMsCQlcCi0JCQkJCSAgICB1bnNpZ25lZCBzdHJpZGUpCQlcCitzdGF0aWMgTUFZQkVfVU5VU0VEIHZvaWQgaW5pdF8gIyNzbGFibmFtZSMjIF93aXRoX3N0cmlkZShzdHJ1Y3Qgc2xhYm5hbWUgKnMsIFwKKwkJCQkJCSAgIHVuc2lnbmVkIHN0cmlkZSkJXAogewkJCQkJCQkJCVwKIAl1bnNpZ25lZCBpbnQgZWxlbV9zaXplOwkJCQkJCVwKIAlpZiAoIXN0cmlkZSkJCQkJCQkJXApAQCAtNTQsMTIgKzY1LDEyIEBACiAJcy0+c2xhYiA9IE5VTEw7CQkJCQkJCVwKIH0JCQkJCQkJCQlcCiAJCQkJCQkJCQlcCi1zdGF0aWMgdm9pZCBpbml0XyAjI3NsYWJuYW1lKHN0cnVjdCBzbGFibmFtZSAqcykJCQlcCitzdGF0aWMgTUFZQkVfVU5VU0VEIHZvaWQgaW5pdF8gIyNzbGFibmFtZShzdHJ1Y3Qgc2xhYm5hbWUgKnMpCQlcCiB7CQkJCQkJCQkJXAogCWluaXRfICMjc2xhYm5hbWUjIyBfd2l0aF9zdHJpZGUocywgMSk7CQkJCVwKIH0JCQkJCQkJCQlcCiAJCQkJCQkJCQlcCi1zdGF0aWMgdm9pZCBjbGVhcl8gIyNzbGFibmFtZShzdHJ1Y3Qgc2xhYm5hbWUgKnMpCQkJXAorc3RhdGljIE1BWUJFX1VOVVNFRCB2b2lkIGNsZWFyXyAjI3NsYWJuYW1lKHN0cnVjdCBzbGFibmFtZSAqcykJCVwKIHsJCQkJCQkJCQlcCiAJaW50IGk7CQkJCQkJCQlcCiAJZm9yIChpID0gMDsgaSA8IHMtPnNsYWJfY291bnQ7IGkrKykJCQkJXApAQCAtNjksOCArODAsOCBAQAogCXMtPnNsYWIgPSBOVUxMOwkJCQkJCQlcCiB9CQkJCQkJCQkJXAogCQkJCQkJCQkJXAotc3RhdGljIGVsZW10eXBlICpzbGFibmFtZSMjIF9hdChzdHJ1Y3Qgc2xhYm5hbWUgKnMsCQkJXAotCQkJCWNvbnN0IHN0cnVjdCBjb21taXQgKmMpCQkJXAorc3RhdGljIE1BWUJFX1VOVVNFRCBlbGVtdHlwZSAqc2xhYm5hbWUjIyBfYXQoc3RydWN0IHNsYWJuYW1lICpzLAlcCisJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBjb21taXQgKmMpCQlcCiB7CQkJCQkJCQkJXAogCWludCBudGhfc2xhYiwgbnRoX3Nsb3Q7CQkJCQkJXAogCQkJCQkJCQkJXApAQCAtODAsNyArOTEsNyBAQAogCWlmIChzLT5zbGFiX2NvdW50IDw9IG50aF9zbGFiKSB7CQkJCVwKIAkJaW50IGk7CQkJCQkJCVwKIAkJcy0+c2xhYiA9IHhyZWFsbG9jKHMtPnNsYWIsCQkJCVwKLQkJCQkgICAobnRoX3NsYWIgKyAxKSAqIHNpemVvZihzLT5zbGFiKSk7CVwKKwkJCQkgICAobnRoX3NsYWIgKyAxKSAqIHNpemVvZigqcy0+c2xhYikpOwlcCiAJCXN0YXRfICMjc2xhYm5hbWUjIyByZWFsbG9jKys7CQkJCVwKIAkJZm9yIChpID0gcy0+c2xhYl9jb3VudDsgaSA8PSBudGhfc2xhYjsgaSsrKQkJXAogCQkJcy0+c2xhYltpXSA9IE5VTEw7CQkJCVwKQEAgLTk0LDQgKzEwNSwxNiBAQAogCQkJCQkJCQkJXAogc3RhdGljIGludCBzdGF0XyAjI3NsYWJuYW1lIyMgcmVhbGxvYwogCisvKgorICogTm90ZSB0aGF0IHRoaXMgc2VlbWluZ2x5IHJlZHVuZGFudCBzZWNvbmQgZGVjbGFyYXRpb24gaXMgcmVxdWlyZWQKKyAqIHRvIGFsbG93IGEgdGVybWluYXRpbmcgc2VtaWNvbG9uLCB3aGljaCBtYWtlcyBpbnN0YW50aWF0aW9ucyBsb29rCisgKiBsaWtlIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4gIEkuZS4sIHRoZSBleHBhbnNpb24gb2YKKyAqCisgKiAgICBkZWZpbmVfY29tbWl0X3NsYWIoaW5kZWdyZWUsIGludCk7CisgKgorICogZW5kcyBpbiAnc3RhdGljIGludCBzdGF0X2luZGVncmVlcmVhbGxvYzsnLiAgVGhpcyB3b3VsZCBvdGhlcndpc2UKKyAqIGJlIGEgc3ludGF4IGVycm9yIGFjY29yZGluZyAoYXQgbGVhc3QpIHRvIElTTyBDLiAgSXQncyBoYXJkIHRvCisgKiBjYXRjaCBiZWNhdXNlIEdDQyBzaWxlbnRseSBwYXJzZXMgaXQgYnkgZGVmYXVsdC4KKyAqLworCiAjZW5kaWYgLyogQ09NTUlUX1NMQUJfSCAqLwpkaWZmIC0tZ2l0IGEvY29tbWl0LmMgYi9jb21taXQuYwppbmRleCBkZTE2YTNjLi42YmY0ZmUwIDEwMDY0NAotLS0gYS9jb21taXQuYworKysgYi9jb21taXQuYwpAQCAtNzksNyArNzksNyBAQAogCWlmIChnZXRfc2hhMV9jb21taXR0aXNoKG5hbWUsIHNoYTEpKQogCQlyZXR1cm4gTlVMTDsKIAljb21taXQgPSBsb29rdXBfY29tbWl0X3JlZmVyZW5jZShzaGExKTsKLQlpZiAoIWNvbW1pdCB8fCBwYXJzZV9jb21taXQoY29tbWl0KSkKKwlpZiAocGFyc2VfY29tbWl0KGNvbW1pdCkpCiAJCXJldHVybiBOVUxMOwogCXJldHVybiBjb21taXQ7CiB9CkBAIC0xOTYsMTkgKzE5NiwxOSBAQAogc3RhdGljIGludCByZWFkX2dyYWZ0X2ZpbGUoY29uc3QgY2hhciAqZ3JhZnRfZmlsZSkKIHsKIAlGSUxFICpmcCA9IGZvcGVuKGdyYWZ0X2ZpbGUsICJyIik7Ci0JY2hhciBidWZbMTAyNF07CisJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKIAlpZiAoIWZwKQogCQlyZXR1cm4gLTE7Ci0Jd2hpbGUgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZwKSkgeworCXdoaWxlICghc3RyYnVmX2dldHdob2xlbGluZSgmYnVmLCBmcCwgJ1xuJykpIHsKIAkJLyogVGhlIGZvcm1hdCBpcyBqdXN0ICJDb21taXQgUGFyZW50MSBQYXJlbnQyIC4uLlxuIiAqLwotCQlpbnQgbGVuID0gc3RybGVuKGJ1Zik7Ci0JCXN0cnVjdCBjb21taXRfZ3JhZnQgKmdyYWZ0ID0gcmVhZF9ncmFmdF9saW5lKGJ1ZiwgbGVuKTsKKwkJc3RydWN0IGNvbW1pdF9ncmFmdCAqZ3JhZnQgPSByZWFkX2dyYWZ0X2xpbmUoYnVmLmJ1ZiwgYnVmLmxlbik7CiAJCWlmICghZ3JhZnQpCiAJCQljb250aW51ZTsKIAkJaWYgKHJlZ2lzdGVyX2NvbW1pdF9ncmFmdChncmFmdCwgMSkpCi0JCQllcnJvcigiZHVwbGljYXRlIGdyYWZ0IGRhdGE6ICVzIiwgYnVmKTsKKwkJCWVycm9yKCJkdXBsaWNhdGUgZ3JhZnQgZGF0YTogJXMiLCBidWYuYnVmKTsKIAl9CiAJZmNsb3NlKGZwKTsKKwlzdHJidWZfcmVsZWFzZSgmYnVmKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzQxLDYgKzM0MSwxMyBAQAogCXJldHVybiByZXQ7CiB9CiAKK3ZvaWQgcGFyc2VfY29tbWl0X29yX2RpZShzdHJ1Y3QgY29tbWl0ICppdGVtKQoreworCWlmIChwYXJzZV9jb21taXQoaXRlbSkpCisJCWRpZSgidW5hYmxlIHRvIHBhcnNlIGNvbW1pdCAlcyIsCisJCSAgICBpdGVtID8gc2hhMV90b19oZXgoaXRlbS0+b2JqZWN0LnNoYTEpIDogIihudWxsKSIpOworfQorCiBpbnQgZmluZF9jb21taXRfc3ViamVjdChjb25zdCBjaGFyICpjb21taXRfYnVmZmVyLCBjb25zdCBjaGFyICoqc3ViamVjdCkKIHsKIAljb25zdCBjaGFyICplb2w7CkBAIC01NTksNyArNTY2LDcgQEAKIAkgICAgIGJ1ZjsKIAkgICAgIGJ1ZiA9IGxpbmVfZW5kICsgMSkgewogCQlsaW5lX2VuZCA9IHN0cmNocm51bChidWYsICdcbicpOwotCQlpZiAocHJlZml4Y21wKGJ1ZiwgImF1dGhvciAiKSkgeworCQlpZiAoIXN0YXJ0c193aXRoKGJ1ZiwgImF1dGhvciAiKSkgewogCQkJaWYgKCFsaW5lX2VuZFswXSB8fCBsaW5lX2VuZFsxXSA9PSAnXG4nKQogCQkJCXJldHVybjsgLyogZW5kIG9mIGhlYWRlciAqLwogCQkJY29udGludWU7CkBAIC04MzQsMjYgKzg0MSwyNiBAQAogc3RydWN0IGNvbW1pdF9saXN0ICpnZXRfb2N0b3B1c19tZXJnZV9iYXNlcyhzdHJ1Y3QgY29tbWl0X2xpc3QgKmluKQogewogCXN0cnVjdCBjb21taXRfbGlzdCAqaSwgKmosICprLCAqcmV0ID0gTlVMTDsKLQlzdHJ1Y3QgY29tbWl0X2xpc3QgKipwcHRyID0gJnJldDsKIAotCWZvciAoaSA9IGluOyBpOyBpID0gaS0+bmV4dCkgewotCQlpZiAoIXJldCkKLQkJCXBwdHIgPSAmY29tbWl0X2xpc3RfaW5zZXJ0KGktPml0ZW0sIHBwdHIpLT5uZXh0OwotCQllbHNlIHsKLQkJCXN0cnVjdCBjb21taXRfbGlzdCAqbmV3ID0gTlVMTCwgKmVuZCA9IE5VTEw7CisJaWYgKCFpbikKKwkJcmV0dXJuIHJldDsKIAotCQkJZm9yIChqID0gcmV0OyBqOyBqID0gai0+bmV4dCkgewotCQkJCXN0cnVjdCBjb21taXRfbGlzdCAqYmFzZXM7Ci0JCQkJYmFzZXMgPSBnZXRfbWVyZ2VfYmFzZXMoaS0+aXRlbSwgai0+aXRlbSwgMSk7Ci0JCQkJaWYgKCFuZXcpCi0JCQkJCW5ldyA9IGJhc2VzOwotCQkJCWVsc2UKLQkJCQkJZW5kLT5uZXh0ID0gYmFzZXM7Ci0JCQkJZm9yIChrID0gYmFzZXM7IGs7IGsgPSBrLT5uZXh0KQotCQkJCQllbmQgPSBrOwotCQkJfQotCQkJcmV0ID0gbmV3OworCWNvbW1pdF9saXN0X2luc2VydChpbi0+aXRlbSwgJnJldCk7CisKKwlmb3IgKGkgPSBpbi0+bmV4dDsgaTsgaSA9IGktPm5leHQpIHsKKwkJc3RydWN0IGNvbW1pdF9saXN0ICpuZXcgPSBOVUxMLCAqZW5kID0gTlVMTDsKKworCQlmb3IgKGogPSByZXQ7IGo7IGogPSBqLT5uZXh0KSB7CisJCQlzdHJ1Y3QgY29tbWl0X2xpc3QgKmJhc2VzOworCQkJYmFzZXMgPSBnZXRfbWVyZ2VfYmFzZXMoaS0+aXRlbSwgai0+aXRlbSwgMSk7CisJCQlpZiAoIW5ldykKKwkJCQluZXcgPSBiYXNlczsKKwkJCWVsc2UKKwkJCQllbmQtPm5leHQgPSBiYXNlczsKKwkJCWZvciAoayA9IGJhc2VzOyBrOyBrID0gay0+bmV4dCkKKwkJCQllbmQgPSBrOwogCQl9CisJCXJldCA9IG5ldzsKIAl9CiAJcmV0dXJuIHJldDsKIH0KQEAgLTExMDYsNyArMTExMyw3IEBACiAJCW5leHQgPSBuZXh0ID8gbmV4dCArIDEgOiB0YWlsOwogCQlpZiAoaW5fc2lnbmF0dXJlICYmIGxpbmVbMF0gPT0gJyAnKQogCQkJc2lnID0gbGluZSArIDE7Ci0JCWVsc2UgaWYgKCFwcmVmaXhjbXAobGluZSwgZ3BnX3NpZ19oZWFkZXIpICYmCisJCWVsc2UgaWYgKHN0YXJ0c193aXRoKGxpbmUsIGdwZ19zaWdfaGVhZGVyKSAmJgogCQkJIGxpbmVbZ3BnX3NpZ19oZWFkZXJfbGVuXSA9PSAnICcpCiAJCQlzaWcgPSBsaW5lICsgZ3BnX3NpZ19oZWFkZXJfbGVuICsgMTsKIAkJaWYgKHNpZykgewpAQCAtMTE4Niw3ICsxMTkzLDcgQEAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzaWdjaGVja19ncGdfc3RhdHVzKTsgaSsrKSB7CiAJCWNvbnN0IGNoYXIgKmZvdW5kLCAqbmV4dDsKIAotCQlpZiAoIXByZWZpeGNtcChidWYsIHNpZ2NoZWNrX2dwZ19zdGF0dXNbaV0uY2hlY2sgKyAxKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYnVmLCBzaWdjaGVja19ncGdfc3RhdHVzW2ldLmNoZWNrICsgMSkpIHsKIAkJCS8qIEF0IHRoZSB2ZXJ5IGJlZ2lubmluZyBvZiB0aGUgYnVmZmVyICovCiAJCQlmb3VuZCA9IGJ1ZiArIHN0cmxlbihzaWdjaGVja19ncGdfc3RhdHVzW2ldLmNoZWNrICsgMSk7CiAJCX0gZWxzZSB7CkBAIC0xMzQ5LDcgKzEzNTYsNyBAQAogCX0KIH0KIAotaW50IGNvbW1pdF90cmVlKGNvbnN0IHN0cnVjdCBzdHJidWYgKm1zZywgdW5zaWduZWQgY2hhciAqdHJlZSwKK2ludCBjb21taXRfdHJlZShjb25zdCBzdHJ1Y3Qgc3RyYnVmICptc2csIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRyZWUsCiAJCXN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50cywgdW5zaWduZWQgY2hhciAqcmV0LAogCQljb25zdCBjaGFyICphdXRob3IsIGNvbnN0IGNoYXIgKnNpZ25fY29tbWl0KQogewpAQCAtMTQ3OCw3ICsxNDg1LDcgQEAKICJZb3UgbWF5IHdhbnQgdG8gYW1lbmQgaXQgYWZ0ZXIgZml4aW5nIHRoZSBtZXNzYWdlLCBvciBzZXQgdGhlIGNvbmZpZ1xuIgogInZhcmlhYmxlIGkxOG4uY29tbWl0ZW5jb2RpbmcgdG8gdGhlIGVuY29kaW5nIHlvdXIgcHJvamVjdCB1c2VzLlxuIjsKIAotaW50IGNvbW1pdF90cmVlX2V4dGVuZGVkKGNvbnN0IHN0cnVjdCBzdHJidWYgKm1zZywgdW5zaWduZWQgY2hhciAqdHJlZSwKK2ludCBjb21taXRfdHJlZV9leHRlbmRlZChjb25zdCBzdHJ1Y3Qgc3RyYnVmICptc2csIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRyZWUsCiAJCQkgc3RydWN0IGNvbW1pdF9saXN0ICpwYXJlbnRzLCB1bnNpZ25lZCBjaGFyICpyZXQsCiAJCQkgY29uc3QgY2hhciAqYXV0aG9yLCBjb25zdCBjaGFyICpzaWduX2NvbW1pdCwKIAkJCSBzdHJ1Y3QgY29tbWl0X2V4dHJhX2hlYWRlciAqZXh0cmEpCmRpZmYgLS1naXQgYS9jb21taXQuaCBiL2NvbW1pdC5oCmluZGV4IGMzMDg2NzQuLjE2ZDljNDMgMTAwNjQ0Ci0tLSBhL2NvbW1pdC5oCisrKyBiL2NvbW1pdC5oCkBAIC00OSw2ICs0OSw3IEBACiAKIGludCBwYXJzZV9jb21taXRfYnVmZmVyKHN0cnVjdCBjb21taXQgKml0ZW0sIGNvbnN0IHZvaWQgKmJ1ZmZlciwgdW5zaWduZWQgbG9uZyBzaXplKTsKIGludCBwYXJzZV9jb21taXQoc3RydWN0IGNvbW1pdCAqaXRlbSk7Cit2b2lkIHBhcnNlX2NvbW1pdF9vcl9kaWUoc3RydWN0IGNvbW1pdCAqaXRlbSk7CiAKIC8qIEZpbmQgYmVnaW5uaW5nIGFuZCBsZW5ndGggb2YgY29tbWl0IHN1YmplY3QuICovCiBpbnQgZmluZF9jb21taXRfc3ViamVjdChjb25zdCBjaGFyICpjb21taXRfYnVmZmVyLCBjb25zdCBjaGFyICoqc3ViamVjdCk7CkBAIC0xOTMsNiArMTk0LDggQEAKIC8qIGxhcmdlc3QgcG9zaXRpdmUgbnVtYmVyIGEgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIGNhbiBjb250YWluICovCiAjZGVmaW5lIElORklOSVRFX0RFUFRIIDB4N2ZmZmZmZmYKIAorc3RydWN0IHNoYTFfYXJyYXk7CitzdHJ1Y3QgcmVmOwogZXh0ZXJuIGludCByZWdpc3Rlcl9zaGFsbG93KGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEpOwogZXh0ZXJuIGludCB1bnJlZ2lzdGVyX3NoYWxsb3coY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSk7CiBleHRlcm4gaW50IGZvcl9lYWNoX2NvbW1pdF9ncmFmdChlYWNoX2NvbW1pdF9ncmFmdF9mbiwgdm9pZCAqKTsKQEAgLTIwMCwxMSArMjAzLDM4IEBACiBleHRlcm4gc3RydWN0IGNvbW1pdF9saXN0ICpnZXRfc2hhbGxvd19jb21taXRzKHN0cnVjdCBvYmplY3RfYXJyYXkgKmhlYWRzLAogCQlpbnQgZGVwdGgsIGludCBzaGFsbG93X2ZsYWcsIGludCBub3Rfc2hhbGxvd19mbGFnKTsKIGV4dGVybiB2b2lkIGNoZWNrX3NoYWxsb3dfZmlsZV9mb3JfdXBkYXRlKHZvaWQpOwotZXh0ZXJuIHZvaWQgc2V0X2FsdGVybmF0ZV9zaGFsbG93X2ZpbGUoY29uc3QgY2hhciAqcGF0aCk7Ci1leHRlcm4gaW50IHdyaXRlX3NoYWxsb3dfY29tbWl0cyhzdHJ1Y3Qgc3RyYnVmICpvdXQsIGludCB1c2VfcGFja19wcm90b2NvbCk7CitleHRlcm4gdm9pZCBzZXRfYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZShjb25zdCBjaGFyICpwYXRoLCBpbnQgb3ZlcnJpZGUpOworZXh0ZXJuIGludCB3cml0ZV9zaGFsbG93X2NvbW1pdHMoc3RydWN0IHN0cmJ1ZiAqb3V0LCBpbnQgdXNlX3BhY2tfcHJvdG9jb2wsCisJCQkJIGNvbnN0IHN0cnVjdCBzaGExX2FycmF5ICpleHRyYSk7CiBleHRlcm4gdm9pZCBzZXR1cF9hbHRlcm5hdGVfc2hhbGxvdyhzdHJ1Y3QgbG9ja19maWxlICpzaGFsbG93X2xvY2ssCi0JCQkJICAgIGNvbnN0IGNoYXIgKiphbHRlcm5hdGVfc2hhbGxvd19maWxlKTsKLWV4dGVybiBjaGFyICpzZXR1cF90ZW1wb3Jhcnlfc2hhbGxvdyh2b2lkKTsKKwkJCQkgICAgY29uc3QgY2hhciAqKmFsdGVybmF0ZV9zaGFsbG93X2ZpbGUsCisJCQkJICAgIGNvbnN0IHN0cnVjdCBzaGExX2FycmF5ICpleHRyYSk7CitleHRlcm4gY2hhciAqc2V0dXBfdGVtcG9yYXJ5X3NoYWxsb3coY29uc3Qgc3RydWN0IHNoYTFfYXJyYXkgKmV4dHJhKTsKK2V4dGVybiB2b2lkIGFkdmVydGlzZV9zaGFsbG93X2dyYWZ0cyhpbnQpOworCitzdHJ1Y3Qgc2hhbGxvd19pbmZvIHsKKwlzdHJ1Y3Qgc2hhMV9hcnJheSAqc2hhbGxvdzsKKwlpbnQgKm91cnMsIG5yX291cnM7CisJaW50ICp0aGVpcnMsIG5yX3RoZWlyczsKKwlzdHJ1Y3Qgc2hhMV9hcnJheSAqcmVmOworCisJLyogZm9yIHJlY2VpdmUtcGFjayAqLworCXVpbnQzMl90ICoqdXNlZF9zaGFsbG93OworCWludCAqbmVlZF9yZWFjaGFiaWxpdHlfdGVzdDsKKwlpbnQgKnJlYWNoYWJsZTsKKwlpbnQgKnNoYWxsb3dfcmVmOworCXN0cnVjdCBjb21taXQgKipjb21taXRzOworCWludCBucl9jb21taXRzOworfTsKKworZXh0ZXJuIHZvaWQgcHJlcGFyZV9zaGFsbG93X2luZm8oc3RydWN0IHNoYWxsb3dfaW5mbyAqLCBzdHJ1Y3Qgc2hhMV9hcnJheSAqKTsKK2V4dGVybiB2b2lkIGNsZWFyX3NoYWxsb3dfaW5mbyhzdHJ1Y3Qgc2hhbGxvd19pbmZvICopOworZXh0ZXJuIHZvaWQgcmVtb3ZlX25vbmV4aXN0ZW50X3RoZWlyc19zaGFsbG93KHN0cnVjdCBzaGFsbG93X2luZm8gKik7CitleHRlcm4gdm9pZCBhc3NpZ25fc2hhbGxvd19jb21taXRzX3RvX3JlZnMoc3RydWN0IHNoYWxsb3dfaW5mbyAqaW5mbywKKwkJCQkJICAgdWludDMyX3QgKip1c2VkLAorCQkJCQkgICBpbnQgKnJlZl9zdGF0dXMpOworZXh0ZXJuIGludCBkZWxheWVkX3JlYWNoYWJpbGl0eV90ZXN0KHN0cnVjdCBzaGFsbG93X2luZm8gKnNpLCBpbnQgYyk7CitleHRlcm4gdm9pZCBwcnVuZV9zaGFsbG93KGludCBzaG93X29ubHkpOwogCiBpbnQgaXNfZGVzY2VuZGFudF9vZihzdHJ1Y3QgY29tbWl0ICosIHN0cnVjdCBjb21taXRfbGlzdCAqKTsKIGludCBpbl9tZXJnZV9iYXNlcyhzdHJ1Y3QgY29tbWl0ICosIHN0cnVjdCBjb21taXQgKik7CkBAIC0yMTIsNyArMjQyLDcgQEAKIAogZXh0ZXJuIGludCBpbnRlcmFjdGl2ZV9hZGQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgsIGludCBwYXRjaCk7CiBleHRlcm4gaW50IHJ1bl9hZGRfaW50ZXJhY3RpdmUoY29uc3QgY2hhciAqcmV2aXNpb24sIGNvbnN0IGNoYXIgKnBhdGNoX21vZGUsCi0JCQkgICAgICAgY29uc3QgY2hhciAqKnBhdGhzcGVjKTsKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjKTsKIAogc3RhdGljIGlubGluZSBpbnQgc2luZ2xlX3BhcmVudChzdHJ1Y3QgY29tbWl0ICpjb21taXQpCiB7CkBAIC0yMzEsMTEgKzI2MSwxMSBAQAogZXh0ZXJuIHZvaWQgYXBwZW5kX21lcmdlX3RhZ19oZWFkZXJzKHN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50cywKIAkJCQkgICAgIHN0cnVjdCBjb21taXRfZXh0cmFfaGVhZGVyICoqKnRhaWwpOwogCi1leHRlcm4gaW50IGNvbW1pdF90cmVlKGNvbnN0IHN0cnVjdCBzdHJidWYgKm1zZywgdW5zaWduZWQgY2hhciAqdHJlZSwKK2V4dGVybiBpbnQgY29tbWl0X3RyZWUoY29uc3Qgc3RydWN0IHN0cmJ1ZiAqbXNnLCBjb25zdCB1bnNpZ25lZCBjaGFyICp0cmVlLAogCQkgICAgICAgc3RydWN0IGNvbW1pdF9saXN0ICpwYXJlbnRzLCB1bnNpZ25lZCBjaGFyICpyZXQsCiAJCSAgICAgICBjb25zdCBjaGFyICphdXRob3IsIGNvbnN0IGNoYXIgKnNpZ25fY29tbWl0KTsKIAotZXh0ZXJuIGludCBjb21taXRfdHJlZV9leHRlbmRlZChjb25zdCBzdHJ1Y3Qgc3RyYnVmICptc2csIHVuc2lnbmVkIGNoYXIgKnRyZWUsCitleHRlcm4gaW50IGNvbW1pdF90cmVlX2V4dGVuZGVkKGNvbnN0IHN0cnVjdCBzdHJidWYgKm1zZywgY29uc3QgdW5zaWduZWQgY2hhciAqdHJlZSwKIAkJCQlzdHJ1Y3QgY29tbWl0X2xpc3QgKnBhcmVudHMsIHVuc2lnbmVkIGNoYXIgKnJldCwKIAkJCQljb25zdCBjaGFyICphdXRob3IsIGNvbnN0IGNoYXIgKnNpZ25fY29tbWl0LAogCQkJCXN0cnVjdCBjb21taXRfZXh0cmFfaGVhZGVyICopOwpkaWZmIC0tZ2l0IGEvY29tcGF0L2FwcGxlLWNvbW1vbi1jcnlwdG8uaCBiL2NvbXBhdC9hcHBsZS1jb21tb24tY3J5cHRvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhiOWIwZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbXBhdC9hcHBsZS1jb21tb24tY3J5cHRvLmgKQEAgLTAsMCArMSw4NiBAQAorLyogc3VwcHJlc3MgaW5jbHVzaW9uIG9mIGNvbmZsaWN0aW5nIG9wZW5zc2wgZnVuY3Rpb25zICovCisjZGVmaW5lIE9QRU5TU0xfTk9fTUQ1CisjZGVmaW5lIEhFQURFUl9ITUFDX0gKKyNkZWZpbmUgSEVBREVSX1NIQV9ICisjaW5jbHVkZSA8Q29tbW9uQ3J5cHRvL0NvbW1vbkhNQUMuaD4KKyNkZWZpbmUgSE1BQ19DVFggQ0NIbWFjQ29udGV4dAorI2RlZmluZSBITUFDX0luaXQoaG1hYywga2V5LCBsZW4sIGFsZ28pIENDSG1hY0luaXQoaG1hYywgYWxnbywga2V5LCBsZW4pCisjZGVmaW5lIEhNQUNfVXBkYXRlIENDSG1hY1VwZGF0ZQorI2RlZmluZSBITUFDX0ZpbmFsKGhtYWMsIGhhc2gsIHB0cikgQ0NIbWFjRmluYWwoaG1hYywgaGFzaCkKKyNkZWZpbmUgSE1BQ19DVFhfY2xlYW51cChpZ25vcmUpCisjZGVmaW5lIEVWUF9tZDUoLi4uKSBrQ0NIbWFjQWxnTUQ1CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCisjZGVmaW5lIEFQUExFX0xJT05fT1JfTkVXRVIKKyNpbmNsdWRlIDxTZWN1cml0eS9TZWN1cml0eS5oPgorLyogQXBwbGUncyBUWVBFX0JPT0wgY29uZmxpY3RzIHdpdGggY29uZmlnLmMgKi8KKyN1bmRlZiBUWVBFX0JPT0wKKyNlbmRpZgorCisjaWZkZWYgQVBQTEVfTElPTl9PUl9ORVdFUgorI2RlZmluZSBnaXRfQ0NfZXJyb3JfY2hlY2socGF0dGVybiwgZXJyKSBcCisJZG8geyBcCisJCWlmIChlcnIpIHsgXAorCQkJZGllKHBhdHRlcm4sIChsb25nKUNGRXJyb3JHZXRDb2RlKGVycikpOyBcCisJCX0gXAorCX0gd2hpbGUoMCkKKworI2RlZmluZSBFVlBfRW5jb2RlQmxvY2sgZ2l0X0NDX0VWUF9FbmNvZGVCbG9jaworc3RhdGljIGlubGluZSBpbnQgZ2l0X0NDX0VWUF9FbmNvZGVCbG9jayh1bnNpZ25lZCBjaGFyICpvdXQsCisJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmluLCBpbnQgaW5sZW4pCit7CisJQ0ZFcnJvclJlZiBlcnI7CisJU2VjVHJhbnNmb3JtUmVmIGVuY29kZXI7CisJQ0ZEYXRhUmVmIGlucHV0LCBvdXRwdXQ7CisJQ0ZJbmRleCBsZW5ndGg7CisKKwllbmNvZGVyID0gU2VjRW5jb2RlVHJhbnNmb3JtQ3JlYXRlKGtTZWNCYXNlNjRFbmNvZGluZywgJmVycik7CisJZ2l0X0NDX2Vycm9yX2NoZWNrKCJTZWNFbmNvZGVUcmFuc2Zvcm1DcmVhdGUgZmFpbGVkOiAlbGQiLCBlcnIpOworCisJaW5wdXQgPSBDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgaW4sIGlubGVuKTsKKwlTZWNUcmFuc2Zvcm1TZXRBdHRyaWJ1dGUoZW5jb2Rlciwga1NlY1RyYW5zZm9ybUlucHV0QXR0cmlidXRlTmFtZSwKKwkJCWlucHV0LCAmZXJyKTsKKwlnaXRfQ0NfZXJyb3JfY2hlY2soIlNlY1RyYW5zZm9ybVNldEF0dHJpYnV0ZSBmYWlsZWQ6ICVsZCIsIGVycik7CisKKwlvdXRwdXQgPSBTZWNUcmFuc2Zvcm1FeGVjdXRlKGVuY29kZXIsICZlcnIpOworCWdpdF9DQ19lcnJvcl9jaGVjaygiU2VjVHJhbnNmb3JtRXhlY3V0ZSBmYWlsZWQ6ICVsZCIsIGVycik7CisKKwlsZW5ndGggPSBDRkRhdGFHZXRMZW5ndGgob3V0cHV0KTsKKwlDRkRhdGFHZXRCeXRlcyhvdXRwdXQsIENGUmFuZ2VNYWtlKDAsIGxlbmd0aCksIG91dCk7CisKKwlDRlJlbGVhc2Uob3V0cHV0KTsKKwlDRlJlbGVhc2UoaW5wdXQpOworCUNGUmVsZWFzZShlbmNvZGVyKTsKKworCXJldHVybiAoaW50KXN0cmxlbigoY29uc3QgY2hhciAqKW91dCk7Cit9CisKKyNkZWZpbmUgRVZQX0RlY29kZUJsb2NrIGdpdF9DQ19FVlBfRGVjb2RlQmxvY2sKK3N0YXRpYyBpbnQgaW5saW5lIGdpdF9DQ19FVlBfRGVjb2RlQmxvY2sodW5zaWduZWQgY2hhciAqb3V0LAorCQljb25zdCB1bnNpZ25lZCBjaGFyICppbiwgaW50IGlubGVuKQoreworCUNGRXJyb3JSZWYgZXJyOworCVNlY1RyYW5zZm9ybVJlZiBkZWNvZGVyOworCUNGRGF0YVJlZiBpbnB1dCwgb3V0cHV0OworCUNGSW5kZXggbGVuZ3RoOworCisJZGVjb2RlciA9IFNlY0RlY29kZVRyYW5zZm9ybUNyZWF0ZShrU2VjQmFzZTY0RW5jb2RpbmcsICZlcnIpOworCWdpdF9DQ19lcnJvcl9jaGVjaygiU2VjRW5jb2RlVHJhbnNmb3JtQ3JlYXRlIGZhaWxlZDogJWxkIiwgZXJyKTsKKworCWlucHV0ID0gQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGluLCBpbmxlbik7CisJU2VjVHJhbnNmb3JtU2V0QXR0cmlidXRlKGRlY29kZXIsIGtTZWNUcmFuc2Zvcm1JbnB1dEF0dHJpYnV0ZU5hbWUsCisJCQlpbnB1dCwgJmVycik7CisJZ2l0X0NDX2Vycm9yX2NoZWNrKCJTZWNUcmFuc2Zvcm1TZXRBdHRyaWJ1dGUgZmFpbGVkOiAlbGQiLCBlcnIpOworCisJb3V0cHV0ID0gU2VjVHJhbnNmb3JtRXhlY3V0ZShkZWNvZGVyLCAmZXJyKTsKKwlnaXRfQ0NfZXJyb3JfY2hlY2soIlNlY1RyYW5zZm9ybUV4ZWN1dGUgZmFpbGVkOiAlbGQiLCBlcnIpOworCisJbGVuZ3RoID0gQ0ZEYXRhR2V0TGVuZ3RoKG91dHB1dCk7CisJQ0ZEYXRhR2V0Qnl0ZXMob3V0cHV0LCBDRlJhbmdlTWFrZSgwLCBsZW5ndGgpLCBvdXQpOworCisJQ0ZSZWxlYXNlKG91dHB1dCk7CisJQ0ZSZWxlYXNlKGlucHV0KTsKKwlDRlJlbGVhc2UoZGVjb2Rlcik7CisKKwlyZXR1cm4gKGludClzdHJsZW4oKGNvbnN0IGNoYXIgKilvdXQpOworfQorI2VuZGlmIC8qIEFQUExFX0xJT05fT1JfTkVXRVIgKi8KZGlmZiAtLWdpdCBhL2NvbXBhdC9taW5ndy5jIGIvY29tcGF0L21pbmd3LmMKaW5kZXggYmI5MmM0My4uZTk4OTJmOCAxMDA2NDQKLS0tIGEvY29tcGF0L21pbmd3LmMKKysrIGIvY29tcGF0L21pbmd3LmMKQEAgLTMwNCwyMyArMzA0LDYgQEAKIAlyZXR1cm4gZmQ7CiB9CiAKLSN1bmRlZiB3cml0ZQotc3NpemVfdCBtaW5nd193cml0ZShpbnQgZmQsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGNvdW50KQotewotCS8qCi0JICogV2hpbGUgd3JpdGUoKSBjYWxscyB0byBhIGZpbGUgb24gYSBsb2NhbCBkaXNrIGFyZSB0cmFuc2xhdGVkCi0JICogaW50byBXcml0ZUZpbGUoKSBjYWxscyB3aXRoIGEgbWF4aW11bSBzaXplIG9mIDY0S0Igb24gV2luZG93cwotCSAqIFhQIGFuZCAyNTZLQiBvbiBWaXN0YSwgbm8gc3VjaCBjYXAgaXMgcGxhY2VkIG9uIHdyaXRlcyB0bwotCSAqIGZpbGVzIG92ZXIgdGhlIG5ldHdvcmsgb24gV2luZG93cyBYUC4gIFVuZm9ydHVuYXRlbHksIHRoZXJlCi0JICogc2VlbXMgdG8gYmUgYSBsaW1pdCBvZiAzMk1CLTI4S0Igb24gWDY0IGFuZCA2NE1CLTMyS0Igb24geDg2OwotCSAqIGJpZ2dlciB3cml0ZXMgZmFpbCBvbiBXaW5kb3dzIFhQLgotCSAqIFNvIHdlIGNhcCB0byBhIG5pY2UgMzFNQiBoZXJlIHRvIGF2b2lkIHdyaXRlIGZhaWx1cmVzIG92ZXIKLQkgKiB0aGUgbmV0IHdpdGhvdXQgY2hhbmdpbmcgdGhlIG51bWJlciBvZiBXcml0ZUZpbGUoKSBjYWxscyBpbgotCSAqIHRoZSBsb2NhbCBjYXNlLgotCSAqLwotCXJldHVybiB3cml0ZShmZCwgYnVmLCBtaW4oY291bnQsIDMxICogMTAyNCAqIDEwMjQpKTsKLX0KLQogc3RhdGljIEJPT0wgV0lOQVBJIGN0cmxfaWdub3JlKERXT1JEIHR5cGUpCiB7CiAJcmV0dXJuIFRSVUU7CkBAIC00OTEsNyArNDc0LDYgQEAKIAlyZXR1cm4gZG9fc3RhdF9pbnRlcm5hbCgxLCBmaWxlX25hbWUsIGJ1Zik7CiB9CiAKLSN1bmRlZiBmc3RhdAogaW50IG1pbmd3X2ZzdGF0KGludCBmZCwgc3RydWN0IHN0YXQgKmJ1ZikKIHsKIAlIQU5ETEUgZmggPSAoSEFORExFKV9nZXRfb3NmaGFuZGxlKGZkKTsKQEAgLTEwODYsNiArMTA2OCwxMiBAQAogCQllcnJubyA9IGVycl93aW5fdG9fcG9zaXgoR2V0TGFzdEVycm9yKCkpOwogCQlDbG9zZUhhbmRsZShoKTsKIAkJcmV0dXJuIC0xOworCX0gZWxzZSBpZiAocGlkID4gMCAmJiBzaWcgPT0gMCkgeworCQlIQU5ETEUgaCA9IE9wZW5Qcm9jZXNzKFBST0NFU1NfUVVFUllfSU5GT1JNQVRJT04sIEZBTFNFLCBwaWQpOworCQlpZiAoaCkgeworCQkJQ2xvc2VIYW5kbGUoaCk7CisJCQlyZXR1cm4gMDsKKwkJfQogCX0KIAogCWVycm5vID0gRUlOVkFMOwpkaWZmIC0tZ2l0IGEvY29tcGF0L21pbmd3LmggYi9jb21wYXQvbWluZ3cuaAppbmRleCBiZDBhODhiLi5lMDMzZTcyIDEwMDY0NAotLS0gYS9jb21wYXQvbWluZ3cuaAorKysgYi9jb21wYXQvbWluZ3cuaApAQCAtMzIsNyArMzIsOSBAQAogI2RlZmluZSBXRVhJVFNUQVRVUyh4KSAoKHgpICYgMHhmZikKICNkZWZpbmUgV1RFUk1TSUcoeCkgU0lHVEVSTQogCisjaWZuZGVmIEVXT1VMREJMT0NLCiAjZGVmaW5lIEVXT1VMREJMT0NLIEVBR0FJTgorI2VuZGlmCiAjZGVmaW5lIFNIVVRfV1IgU0RfU0VORAogCiAjZGVmaW5lIFNJR0hVUCAxCkBAIC00Niw4ICs0OCwxMiBAQAogI2RlZmluZSBGX1NFVEZEIDIKICNkZWZpbmUgRkRfQ0xPRVhFQyAweDEKIAorI2lmbmRlZiBFQUZOT1NVUFBPUlQKICNkZWZpbmUgRUFGTk9TVVBQT1JUIFdTQUVBRk5PU1VQUE9SVAorI2VuZGlmCisjaWZuZGVmIEVDT05OQUJPUlRFRAogI2RlZmluZSBFQ09OTkFCT1JURUQgV1NBRUNPTk5BQk9SVEVECisjZW5kaWYKIAogc3RydWN0IHBhc3N3ZCB7CiAJY2hhciAqcHdfbmFtZTsKQEAgLTE3NCw5ICsxODAsNiBAQAogaW50IG1pbmd3X29wZW4gKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgb2ZsYWdzLCAuLi4pOwogI2RlZmluZSBvcGVuIG1pbmd3X29wZW4KIAotc3NpemVfdCBtaW5nd193cml0ZShpbnQgZmQsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGNvdW50KTsKLSNkZWZpbmUgd3JpdGUgbWluZ3dfd3JpdGUKLQogaW50IG1pbmd3X2ZnZXRjKEZJTEUgKnN0cmVhbSk7CiAjZGVmaW5lIGZnZXRjIG1pbmd3X2ZnZXRjCiAKQEAgLTI1OCwxOSArMjYxLDM1IEBACiAJcmV0dXJuIDA7CiB9CiAKLS8qIFVzZSBtaW5nd19sc3RhdCgpIGluc3RlYWQgb2YgbHN0YXQoKS9zdGF0KCkgYW5kCi0gKiBtaW5nd19mc3RhdCgpIGluc3RlYWQgb2YgZnN0YXQoKSBvbiBXaW5kb3dzLgorLyoKKyAqIFVzZSBtaW5ndyBzcGVjaWZpYyBzdGF0KCkvbHN0YXQoKS9mc3RhdCgpIGltcGxlbWVudGF0aW9ucyBvbiBXaW5kb3dzLgogICovCiAjZGVmaW5lIG9mZl90IG9mZjY0X3QKICNkZWZpbmUgbHNlZWsgX2xzZWVraTY0Ci0jaWZuZGVmIEFMUkVBRFlfREVDTEFSRURfU1RBVF9GVU5DUworCisvKiB1c2Ugc3RydWN0IHN0YXQgd2l0aCA2NCBiaXQgc3Rfc2l6ZSAqLworI2lmZGVmIHN0YXQKKyN1bmRlZiBzdGF0CisjZW5kaWYKICNkZWZpbmUgc3RhdCBfc3RhdGk2NAogaW50IG1pbmd3X2xzdGF0KGNvbnN0IGNoYXIgKmZpbGVfbmFtZSwgc3RydWN0IHN0YXQgKmJ1Zik7CiBpbnQgbWluZ3dfc3RhdChjb25zdCBjaGFyICpmaWxlX25hbWUsIHN0cnVjdCBzdGF0ICpidWYpOwogaW50IG1pbmd3X2ZzdGF0KGludCBmZCwgc3RydWN0IHN0YXQgKmJ1Zik7CisjaWZkZWYgZnN0YXQKKyN1bmRlZiBmc3RhdAorI2VuZGlmCiAjZGVmaW5lIGZzdGF0IG1pbmd3X2ZzdGF0CisjaWZkZWYgbHN0YXQKKyN1bmRlZiBsc3RhdAorI2VuZGlmCiAjZGVmaW5lIGxzdGF0IG1pbmd3X2xzdGF0Ci0jZGVmaW5lIF9zdGF0aTY0KHgseSkgbWluZ3dfc3RhdCh4LHkpCisKKyNpZm5kZWYgX3N0YXRpNjQKKyMgZGVmaW5lIF9zdGF0aTY0KHgseSkgbWluZ3dfc3RhdCh4LHkpCisjZWxpZiBkZWZpbmVkIChfVVNFXzMyQklUX1RJTUVfVCkKKyMgZGVmaW5lIF9zdGF0MzJpNjQoeCx5KSBtaW5nd19zdGF0KHgseSkKKyNlbHNlCisjIGRlZmluZSBfc3RhdDY0KHgseSkgbWluZ3dfc3RhdCh4LHkpCiAjZW5kaWYKIAogaW50IG1pbmd3X3V0aW1lKGNvbnN0IGNoYXIgKmZpbGVfbmFtZSwgY29uc3Qgc3RydWN0IHV0aW1idWYgKnRpbWVzKTsKQEAgLTMyMiw2ICszNDEsNyBAQAogI2RlZmluZSBmaW5kX2xhc3RfZGlyX3NlcCBtaW5nd19maW5kX2xhc3RfZGlyX3NlcAogI2RlZmluZSBQQVRIX1NFUCAnOycKICNkZWZpbmUgUFJJdU1BWCAiSTY0dSIKKyNkZWZpbmUgUFJJZDY0ICJJNjRkIgogCiB2b2lkIG1pbmd3X29wZW5faHRtbChjb25zdCBjaGFyICpwYXRoKTsKICNkZWZpbmUgb3Blbl9odG1sIG1pbmd3X29wZW5faHRtbApkaWZmIC0tZ2l0IGEvY29tcGF0L21zdmMuaCBiL2NvbXBhdC9tc3ZjLmgKaW5kZXggOTZiNmQ2MC4uNTgwYmI1NSAxMDA2NDQKLS0tIGEvY29tcGF0L21zdmMuaAorKysgYi9jb21wYXQvbXN2Yy5oCkBAIC0yNCwyMSArMjQsNiBAQAogCiAjdW5kZWYgRVJST1IKIAotLyogVXNlIG1pbmd3X2xzdGF0KCkgaW5zdGVhZCBvZiBsc3RhdCgpL3N0YXQoKSBhbmQgbWluZ3dfZnN0YXQoKSBpbnN0ZWFkCi0gKiBvZiBmc3RhdCgpLiBXZSBhZGQgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZXNlIGZ1bmN0aW9ucyBoZXJlLCBzdXBwcmVzc2luZwotICogdGhlIGNvcnJlc3BvbmRpbmcgZGVjbGFyYXRpb25zIGluIG1pbmd3LmgsIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGUKLSAqIGFwcHJvcHJpYXRlIHN0cnVjdHVyZSB0eXBlIChhbmQgZnVuY3Rpb24pIG5hbWVzIGZyb20gdGhlIG1zdmMgaGVhZGVycy4KLSAqLwotI2RlZmluZSBzdGF0IF9zdGF0NjQKLWludCBtaW5nd19sc3RhdChjb25zdCBjaGFyICpmaWxlX25hbWUsIHN0cnVjdCBzdGF0ICpidWYpOwotaW50IG1pbmd3X2ZzdGF0KGludCBmZCwgc3RydWN0IHN0YXQgKmJ1Zik7Ci0jZGVmaW5lIGZzdGF0IG1pbmd3X2ZzdGF0Ci0jZGVmaW5lIGxzdGF0IG1pbmd3X2xzdGF0Ci0jZGVmaW5lIF9zdGF0NjQoeCx5KSBtaW5nd19sc3RhdCh4LHkpCi0jZGVmaW5lIEFMUkVBRFlfREVDTEFSRURfU1RBVF9GVU5DUwotCiAjaW5jbHVkZSAiY29tcGF0L21pbmd3LmgiCiAKLSN1bmRlZiBBTFJFQURZX0RFQ0xBUkVEX1NUQVRfRlVOQ1MKLQogI2VuZGlmCmRpZmYgLS1naXQgYS9jb21wYXQvbmVkbWFsbG9jL21hbGxvYy5jLmggYi9jb21wYXQvbmVkbWFsbG9jL21hbGxvYy5jLmgKaW5kZXggZWQ0ZjFmYS4uZjIxNmEyYSAxMDA2NDQKLS0tIGEvY29tcGF0L25lZG1hbGxvYy9tYWxsb2MuYy5oCisrKyBiL2NvbXBhdC9uZWRtYWxsb2MvbWFsbG9jLmMuaApAQCAtNDk5LDcgKzQ5OSw5IEBACiAjZW5kaWYgIC8qIFdJTjMyICovCiAjaWZkZWYgV0lOMzIKICNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgorI2lmbmRlZiBfV0lOMzJfV0lOTlQKICNkZWZpbmUgX1dJTjMyX1dJTk5UIDB4NDAzCisjZW5kaWYKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjZGVmaW5lIEhBVkVfTU1BUCAxCiAjZGVmaW5lIEhBVkVfTU9SRUNPUkUgMApkaWZmIC0tZ2l0IGEvY29tcGF0L3BvbGwvcG9sbC5jIGIvY29tcGF0L3BvbGwvcG9sbC5jCmluZGV4IDQ0MTAzMTAuLjMxMTYzZjIgMTAwNjQ0Ci0tLSBhL2NvbXBhdC9wb2xsL3BvbGwuYworKysgYi9jb21wYXQvcG9sbC9wb2xsLmMKQEAgLTM5LDcgKzM5LDcgQEAKIAogI2lmIChkZWZpbmVkIF9XSU4zMiB8fCBkZWZpbmVkIF9fV0lOMzJfXykgJiYgISBkZWZpbmVkIF9fQ1lHV0lOX18KICMgZGVmaW5lIFdJTjMyX05BVElWRQotIyBpZiBkZWZpbmVkIChfTVNDX1ZFUikKKyMgaWYgZGVmaW5lZCAoX01TQ19WRVIpICYmICFkZWZpbmVkKF9XSU4zMl9XSU5OVCkKICMgIGRlZmluZSBfV0lOMzJfV0lOTlQgMHgwNTAyCiAjIGVuZGlmCiAjIGluY2x1ZGUgPHdpbnNvY2syLmg+CmRpZmYgLS1naXQgYS9jb21wYXQvcHJlY29tcG9zZV91dGY4LmMgYi9jb21wYXQvcHJlY29tcG9zZV91dGY4LmMKaW5kZXggNzk4MGFiZC4uOTVmZTg0OSAxMDA2NDQKLS0tIGEvY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jCisrKyBiL2NvbXBhdC9wcmVjb21wb3NlX3V0ZjguYwpAQCAtNDgsMTEgKzQ4LDggQEAKIAlpZiAob3V0cHV0X2ZkID49IDApIHsKIAkJY2xvc2Uob3V0cHV0X2ZkKTsKIAkJc3RyY3B5KHBhdGggKyBsZW4sIGF1bWxfbmZkKTsKLQkJLyogSW5kaWNhdGUgdG8gdGhlIHVzZXIsIHRoYXQgd2UgY2FuIGNvbmZpZ3VyZSBpdCB0byB0cnVlICovCi0JCWlmICghYWNjZXNzKHBhdGgsIFJfT0spKQotCQkJZ2l0X2NvbmZpZ19zZXQoImNvcmUucHJlY29tcG9zZXVuaWNvZGUiLCAiZmFsc2UiKTsKLQkJLyogVG8gYmUgYmFja3dhcmQgY29tcGF0aWJsZSwgc2V0IHByZWNvbXBvc2VkX3VuaWNvZGUgdG8gMCAqLwotCQlwcmVjb21wb3NlZF91bmljb2RlID0gMDsKKwkJcHJlY29tcG9zZWRfdW5pY29kZSA9IGFjY2VzcyhwYXRoLCBSX09LKSA/IDAgOiAxOworCQlnaXRfY29uZmlnX3NldCgiY29yZS5wcmVjb21wb3NldW5pY29kZSIsIHByZWNvbXBvc2VkX3VuaWNvZGUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKIAkJc3RyY3B5KHBhdGggKyBsZW4sIGF1bWxfbmZjKTsKIAkJaWYgKHVubGluayhwYXRoKSkKIAkJCWRpZV9lcnJubyhfKCJmYWlsZWQgdG8gdW5saW5rICclcyciKSwgcGF0aCk7CmRpZmYgLS1naXQgYS9jb21wYXQvcmVnZXgvcmVnY29tcC5jIGIvY29tcGF0L3JlZ2V4L3JlZ2NvbXAuYwppbmRleCBiMmM1ZDQ2Li4wNmYzMDg4IDEwMDY0NAotLS0gYS9jb21wYXQvcmVnZXgvcmVnY29tcC5jCisrKyBiL2NvbXBhdC9yZWdleC9yZWdjb21wLmMKQEAgLTMzOSw3ICszMzksNyBAQAogCSAgICAgIHAgPSBidWY7CiAJICAgICAgKnArKyA9IGRmYS0+bm9kZXNbbm9kZV0ub3ByLmM7CiAJICAgICAgd2hpbGUgKCsrbm9kZSA8IGRmYS0+bm9kZXNfbGVuCi0JCSAgICAgJiYJZGZhLT5ub2Rlc1tub2RlXS50eXBlID09IENIQVJBQ1RFUgorCQkgICAgICYmIGRmYS0+bm9kZXNbbm9kZV0udHlwZSA9PSBDSEFSQUNURVIKIAkJICAgICAmJiBkZmEtPm5vZGVzW25vZGVdLm1iX3BhcnRpYWwpCiAJCSpwKysgPSBkZmEtPm5vZGVzW25vZGVdLm9wci5jOwogCSAgICAgIG1lbXNldCAoJnN0YXRlLCAnXDAnLCBzaXplb2YgKHN0YXRlKSk7CmRpZmYgLS1naXQgYS9jb21wYXQvdmNidWlsZC9zY3JpcHRzL2NsaW5rLnBsIGIvY29tcGF0L3ZjYnVpbGQvc2NyaXB0cy9jbGluay5wbApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9jb21wYXQvdmNidWlsZC9zY3JpcHRzL2xpYi5wbCBiL2NvbXBhdC92Y2J1aWxkL3NjcmlwdHMvbGliLnBsCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL2NvbmZpZy5jIGIvY29uZmlnLmMKaW5kZXggOWY5YmYwYy4uZDk2OWE1YSAxMDA2NDQKLS0tIGEvY29uZmlnLmMKKysrIGIvY29uZmlnLmMKQEAgLTQ2OCw3ICs0NjgsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGdpdF9wYXJzZV9sb25nKGNvbnN0IGNoYXIgKnZhbHVlLCBsb25nICpyZXQpCitzdGF0aWMgaW50IGdpdF9wYXJzZV9zaWduZWQoY29uc3QgY2hhciAqdmFsdWUsIGludG1heF90ICpyZXQsIGludG1heF90IG1heCkKIHsKIAlpZiAodmFsdWUgJiYgKnZhbHVlKSB7CiAJCWNoYXIgKmVuZDsKQEAgLTQ4MCwyMSArNDgwLDI1IEBACiAJCXZhbCA9IHN0cnRvaW1heCh2YWx1ZSwgJmVuZCwgMCk7CiAJCWlmIChlcnJubyA9PSBFUkFOR0UpCiAJCQlyZXR1cm4gMDsKLQkJaWYgKCFwYXJzZV91bml0X2ZhY3RvcihlbmQsICZmYWN0b3IpKQorCQlpZiAoIXBhcnNlX3VuaXRfZmFjdG9yKGVuZCwgJmZhY3RvcikpIHsKKwkJCWVycm5vID0gRUlOVkFMOwogCQkJcmV0dXJuIDA7CisJCX0KIAkJdXZhbCA9IGFicyh2YWwpOwogCQl1dmFsICo9IGZhY3RvcjsKLQkJaWYgKCh1dmFsID4gbWF4aW11bV9zaWduZWRfdmFsdWVfb2ZfdHlwZShsb25nKSkgfHwKLQkJICAgIChhYnModmFsKSA+IHV2YWwpKQorCQlpZiAodXZhbCA+IG1heCB8fCBhYnModmFsKSA+IHV2YWwpIHsKKwkJCWVycm5vID0gRVJBTkdFOwogCQkJcmV0dXJuIDA7CisJCX0KIAkJdmFsICo9IGZhY3RvcjsKIAkJKnJldCA9IHZhbDsKIAkJcmV0dXJuIDE7CiAJfQorCWVycm5vID0gRUlOVkFMOwogCXJldHVybiAwOwogfQogCi1pbnQgZ2l0X3BhcnNlX3Vsb25nKGNvbnN0IGNoYXIgKnZhbHVlLCB1bnNpZ25lZCBsb25nICpyZXQpCitzdGF0aWMgaW50IGdpdF9wYXJzZV91bnNpZ25lZChjb25zdCBjaGFyICp2YWx1ZSwgdWludG1heF90ICpyZXQsIHVpbnRtYXhfdCBtYXgpCiB7CiAJaWYgKHZhbHVlICYmICp2YWx1ZSkgewogCQljaGFyICplbmQ7CkBAIC01MDYsMjkgKzUxMCw3NSBAQAogCQlpZiAoZXJybm8gPT0gRVJBTkdFKQogCQkJcmV0dXJuIDA7CiAJCW9sZHZhbCA9IHZhbDsKLQkJaWYgKCFwYXJzZV91bml0X2ZhY3RvcihlbmQsICZ2YWwpKQorCQlpZiAoIXBhcnNlX3VuaXRfZmFjdG9yKGVuZCwgJnZhbCkpIHsKKwkJCWVycm5vID0gRUlOVkFMOwogCQkJcmV0dXJuIDA7Ci0JCWlmICgodmFsID4gbWF4aW11bV91bnNpZ25lZF92YWx1ZV9vZl90eXBlKGxvbmcpKSB8fAotCQkgICAgKG9sZHZhbCA+IHZhbCkpCisJCX0KKwkJaWYgKHZhbCA+IG1heCB8fCBvbGR2YWwgPiB2YWwpIHsKKwkJCWVycm5vID0gRVJBTkdFOwogCQkJcmV0dXJuIDA7CisJCX0KIAkJKnJldCA9IHZhbDsKIAkJcmV0dXJuIDE7CiAJfQorCWVycm5vID0gRUlOVkFMOwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBkaWVfYmFkX2NvbmZpZyhjb25zdCBjaGFyICpuYW1lKQorc3RhdGljIGludCBnaXRfcGFyc2VfaW50KGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgKnJldCkKIHsKKwlpbnRtYXhfdCB0bXA7CisJaWYgKCFnaXRfcGFyc2Vfc2lnbmVkKHZhbHVlLCAmdG1wLCBtYXhpbXVtX3NpZ25lZF92YWx1ZV9vZl90eXBlKGludCkpKQorCQlyZXR1cm4gMDsKKwkqcmV0ID0gdG1wOworCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IGdpdF9wYXJzZV9pbnQ2NChjb25zdCBjaGFyICp2YWx1ZSwgaW50NjRfdCAqcmV0KQoreworCWludG1heF90IHRtcDsKKwlpZiAoIWdpdF9wYXJzZV9zaWduZWQodmFsdWUsICZ0bXAsIG1heGltdW1fc2lnbmVkX3ZhbHVlX29mX3R5cGUoaW50NjRfdCkpKQorCQlyZXR1cm4gMDsKKwkqcmV0ID0gdG1wOworCXJldHVybiAxOworfQorCitpbnQgZ2l0X3BhcnNlX3Vsb25nKGNvbnN0IGNoYXIgKnZhbHVlLCB1bnNpZ25lZCBsb25nICpyZXQpCit7CisJdWludG1heF90IHRtcDsKKwlpZiAoIWdpdF9wYXJzZV91bnNpZ25lZCh2YWx1ZSwgJnRtcCwgbWF4aW11bV91bnNpZ25lZF92YWx1ZV9vZl90eXBlKGxvbmcpKSkKKwkJcmV0dXJuIDA7CisJKnJldCA9IHRtcDsKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIHZvaWQgZGllX2JhZF9udW1iZXIoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCit7CisJY29uc3QgY2hhciAqcmVhc29uID0gZXJybm8gPT0gRVJBTkdFID8KKwkJCSAgICAgIm91dCBvZiByYW5nZSIgOgorCQkJICAgICAiaW52YWxpZCB1bml0IjsKKwlpZiAoIXZhbHVlKQorCQl2YWx1ZSA9ICIiOworCiAJaWYgKGNmICYmIGNmLT5uYW1lKQotCQlkaWUoImJhZCBjb25maWcgdmFsdWUgZm9yICclcycgaW4gJXMiLCBuYW1lLCBjZi0+bmFtZSk7Ci0JZGllKCJiYWQgY29uZmlnIHZhbHVlIGZvciAnJXMnIiwgbmFtZSk7CisJCWRpZSgiYmFkIG51bWVyaWMgY29uZmlnIHZhbHVlICclcycgZm9yICclcycgaW4gJXM6ICVzIiwKKwkJICAgIHZhbHVlLCBuYW1lLCBjZi0+bmFtZSwgcmVhc29uKTsKKwlkaWUoImJhZCBudW1lcmljIGNvbmZpZyB2YWx1ZSAnJXMnIGZvciAnJXMnOiAlcyIsIHZhbHVlLCBuYW1lLCByZWFzb24pOwogfQogCiBpbnQgZ2l0X2NvbmZpZ19pbnQoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCiB7Ci0JbG9uZyByZXQgPSAwOwotCWlmICghZ2l0X3BhcnNlX2xvbmcodmFsdWUsICZyZXQpKQotCQlkaWVfYmFkX2NvbmZpZyhuYW1lKTsKKwlpbnQgcmV0OworCWlmICghZ2l0X3BhcnNlX2ludCh2YWx1ZSwgJnJldCkpCisJCWRpZV9iYWRfbnVtYmVyKG5hbWUsIHZhbHVlKTsKKwlyZXR1cm4gcmV0OworfQorCitpbnQ2NF90IGdpdF9jb25maWdfaW50NjQoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCit7CisJaW50NjRfdCByZXQ7CisJaWYgKCFnaXRfcGFyc2VfaW50NjQodmFsdWUsICZyZXQpKQorCQlkaWVfYmFkX251bWJlcihuYW1lLCB2YWx1ZSk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtNTM2LDcgKzU4Niw3IEBACiB7CiAJdW5zaWduZWQgbG9uZyByZXQ7CiAJaWYgKCFnaXRfcGFyc2VfdWxvbmcodmFsdWUsICZyZXQpKQotCQlkaWVfYmFkX2NvbmZpZyhuYW1lKTsKKwkJZGllX2JhZF9udW1iZXIobmFtZSwgdmFsdWUpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTU1OSwxMCArNjA5LDEwIEBACiAKIGludCBnaXRfY29uZmlnX21heWJlX2Jvb2woY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCiB7Ci0JbG9uZyB2ID0gZ2l0X2NvbmZpZ19tYXliZV9ib29sX3RleHQobmFtZSwgdmFsdWUpOworCWludCB2ID0gZ2l0X2NvbmZpZ19tYXliZV9ib29sX3RleHQobmFtZSwgdmFsdWUpOwogCWlmICgwIDw9IHYpCiAJCXJldHVybiB2OwotCWlmIChnaXRfcGFyc2VfbG9uZyh2YWx1ZSwgJnYpKQorCWlmIChnaXRfcGFyc2VfaW50KHZhbHVlLCAmdikpCiAJCXJldHVybiAhIXY7CiAJcmV0dXJuIC0xOwogfQpAQCAtOTE5LDI1ICs5NjksMjUgQEAKIAogaW50IGdpdF9kZWZhdWx0X2NvbmZpZyhjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpkdW1teSkKIHsKLQlpZiAoIXByZWZpeGNtcCh2YXIsICJjb3JlLiIpKQorCWlmIChzdGFydHNfd2l0aCh2YXIsICJjb3JlLiIpKQogCQlyZXR1cm4gZ2l0X2RlZmF1bHRfY29yZV9jb25maWcodmFyLCB2YWx1ZSk7CiAKLQlpZiAoIXByZWZpeGNtcCh2YXIsICJ1c2VyLiIpKQorCWlmIChzdGFydHNfd2l0aCh2YXIsICJ1c2VyLiIpKQogCQlyZXR1cm4gZ2l0X2lkZW50X2NvbmZpZyh2YXIsIHZhbHVlLCBkdW1teSk7CiAKLQlpZiAoIXByZWZpeGNtcCh2YXIsICJpMThuLiIpKQorCWlmIChzdGFydHNfd2l0aCh2YXIsICJpMThuLiIpKQogCQlyZXR1cm4gZ2l0X2RlZmF1bHRfaTE4bl9jb25maWcodmFyLCB2YWx1ZSk7CiAKLQlpZiAoIXByZWZpeGNtcCh2YXIsICJicmFuY2guIikpCisJaWYgKHN0YXJ0c193aXRoKHZhciwgImJyYW5jaC4iKSkKIAkJcmV0dXJuIGdpdF9kZWZhdWx0X2JyYW5jaF9jb25maWcodmFyLCB2YWx1ZSk7CiAKLQlpZiAoIXByZWZpeGNtcCh2YXIsICJwdXNoLiIpKQorCWlmIChzdGFydHNfd2l0aCh2YXIsICJwdXNoLiIpKQogCQlyZXR1cm4gZ2l0X2RlZmF1bHRfcHVzaF9jb25maWcodmFyLCB2YWx1ZSk7CiAKLQlpZiAoIXByZWZpeGNtcCh2YXIsICJtYWlsbWFwLiIpKQorCWlmIChzdGFydHNfd2l0aCh2YXIsICJtYWlsbWFwLiIpKQogCQlyZXR1cm4gZ2l0X2RlZmF1bHRfbWFpbG1hcF9jb25maWcodmFyLCB2YWx1ZSk7CiAKLQlpZiAoIXByZWZpeGNtcCh2YXIsICJhZHZpY2UuIikpCisJaWYgKHN0YXJ0c193aXRoKHZhciwgImFkdmljZS4iKSkKIAkJcmV0dXJuIGdpdF9kZWZhdWx0X2FkdmljZV9jb25maWcodmFyLCB2YWx1ZSk7CiAKIAlpZiAoIXN0cmNtcCh2YXIsICJwYWdlci5jb2xvciIpIHx8ICFzdHJjbXAodmFyLCAiY29sb3IucGFnZXIiKSkgewpAQCAtMTE2MCwxNSArMTIxMCwxNCBAQAogICogRmluZCBhbGwgdGhlIHN0dWZmIGZvciBnaXRfY29uZmlnX3NldCgpIGJlbG93LgogICovCiAKLSNkZWZpbmUgTUFYX01BVENIRVMgNTEyCi0KIHN0YXRpYyBzdHJ1Y3QgewogCWludCBiYXNlbGVuOwogCWNoYXIgKmtleTsKIAlpbnQgZG9fbm90X21hdGNoOwogCXJlZ2V4X3QgKnZhbHVlX3JlZ2V4OwogCWludCBtdWx0aV9yZXBsYWNlOwotCXNpemVfdCBvZmZzZXRbTUFYX01BVENIRVNdOworCXNpemVfdCAqb2Zmc2V0OworCXVuc2lnbmVkIGludCBvZmZzZXRfYWxsb2M7CiAJZW51bSB7IFNUQVJULCBTRUNUSU9OX1NFRU4sIFNFQ1RJT05fRU5EX1NFRU4sIEtFWV9TRUVOIH0gc3RhdGU7CiAJaW50IHNlZW47CiB9IHN0b3JlOwpAQCAtMTE5MSwxMSArMTI0MCwxMSBAQAogCQlpZiAobWF0Y2hlcyhrZXksIHZhbHVlKSkgewogCQkJaWYgKHN0b3JlLnNlZW4gPT0gMSAmJiBzdG9yZS5tdWx0aV9yZXBsYWNlID09IDApIHsKIAkJCQl3YXJuaW5nKCIlcyBoYXMgbXVsdGlwbGUgdmFsdWVzIiwga2V5KTsKLQkJCX0gZWxzZSBpZiAoc3RvcmUuc2VlbiA+PSBNQVhfTUFUQ0hFUykgewotCQkJCWVycm9yKCJ0b28gbWFueSBtYXRjaGVzIGZvciAlcyIsIGtleSk7Ci0JCQkJcmV0dXJuIDE7CiAJCQl9CiAKKwkJCUFMTE9DX0dST1coc3RvcmUub2Zmc2V0LCBzdG9yZS5zZWVuICsgMSwKKwkJCQkgICBzdG9yZS5vZmZzZXRfYWxsb2MpOworCiAJCQlzdG9yZS5vZmZzZXRbc3RvcmUuc2Vlbl0gPSBjZi0+ZG9fZnRlbGwoY2YpOwogCQkJc3RvcmUuc2VlbisrOwogCQl9CkBAIC0xMjIzLDExICsxMjcyLDE1IEBACiAJCSAqIERvIG5vdCBpbmNyZW1lbnQgbWF0Y2hlczogdGhpcyBpcyBubyBtYXRjaCwgYnV0IHdlCiAJCSAqIGp1c3QgbWFkZSBzdXJlIHdlIGFyZSBpbiB0aGUgZGVzaXJlZCBzZWN0aW9uLgogCQkgKi8KKwkJQUxMT0NfR1JPVyhzdG9yZS5vZmZzZXQsIHN0b3JlLnNlZW4gKyAxLAorCQkJICAgc3RvcmUub2Zmc2V0X2FsbG9jKTsKIAkJc3RvcmUub2Zmc2V0W3N0b3JlLnNlZW5dID0gY2YtPmRvX2Z0ZWxsKGNmKTsKIAkJLyogZmFsbHRocnUgKi8KIAljYXNlIFNFQ1RJT05fRU5EX1NFRU46CiAJY2FzZSBTVEFSVDoKIAkJaWYgKG1hdGNoZXMoa2V5LCB2YWx1ZSkpIHsKKwkJCUFMTE9DX0dST1coc3RvcmUub2Zmc2V0LCBzdG9yZS5zZWVuICsgMSwKKwkJCQkgICBzdG9yZS5vZmZzZXRfYWxsb2MpOwogCQkJc3RvcmUub2Zmc2V0W3N0b3JlLnNlZW5dID0gY2YtPmRvX2Z0ZWxsKGNmKTsKIAkJCXN0b3JlLnN0YXRlID0gS0VZX1NFRU47CiAJCQlzdG9yZS5zZWVuKys7CkBAIC0xMjM1LDYgKzEyODgsOSBAQAogCQkJaWYgKHN0cnJjaHIoa2V5LCAnLicpIC0ga2V5ID09IHN0b3JlLmJhc2VsZW4gJiYKIAkJCSAgICAgICFzdHJuY21wKGtleSwgc3RvcmUua2V5LCBzdG9yZS5iYXNlbGVuKSkgewogCQkJCQlzdG9yZS5zdGF0ZSA9IFNFQ1RJT05fU0VFTjsKKwkJCQkJQUxMT0NfR1JPVyhzdG9yZS5vZmZzZXQsCisJCQkJCQkgICBzdG9yZS5zZWVuICsgMSwKKwkJCQkJCSAgIHN0b3JlLm9mZnNldF9hbGxvYyk7CiAJCQkJCXN0b3JlLm9mZnNldFtzdG9yZS5zZWVuXSA9IGNmLT5kb19mdGVsbChjZik7CiAJCQl9CiAJCX0KQEAgLTE1MzMsNiArMTU4OSw3IEBACiAJCQl9CiAJCX0KIAorCQlBTExPQ19HUk9XKHN0b3JlLm9mZnNldCwgMSwgc3RvcmUub2Zmc2V0X2FsbG9jKTsKIAkJc3RvcmUub2Zmc2V0WzBdID0gMDsKIAkJc3RvcmUuc3RhdGUgPSBTVEFSVDsKIAkJc3RvcmUuc2VlbiA9IDA7CkBAIC0xODIyLDcgKzE4NzksNyBAQAogCWNvbnN0IGNoYXIgKmRvdDsKIAogCS8qIERvZXMgaXQgc3RhcnQgd2l0aCAic2VjdGlvbi4iID8gKi8KLQlpZiAocHJlZml4Y21wKHZhciwgc2VjdGlvbikgfHwgdmFyW3NlY3Rpb25fbGVuXSAhPSAnLicpCisJaWYgKCFzdGFydHNfd2l0aCh2YXIsIHNlY3Rpb24pIHx8IHZhcltzZWN0aW9uX2xlbl0gIT0gJy4nKQogCQlyZXR1cm4gLTE7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvY29uZmlnLm1hay51bmFtZSBiL2NvbmZpZy5tYWsudW5hbWUKaW5kZXggN2Q2MTUzMS4uN2QzMWZhZCAxMDA2NDQKLS0tIGEvY29uZmlnLm1hay51bmFtZQorKysgYi9jb25maWcubWFrLnVuYW1lCkBAIC0xOTgsNiArMTk4LDEzIEBACiAJQkFTSUNfTERGTEFHUyArPSAtTC91c3IvbG9jYWwvbGliCiAJSEFWRV9QQVRIU19IID0gWWVzUGxlYXNlCiBlbmRpZgoraWZlcSAoJCh1bmFtZV9TKSxNaXJCU0QpCisJTk9fU1RSQ0FTRVNUUiA9IFllc1BsZWFzZQorCU5PX01FTU1FTSA9IFllc1BsZWFzZQorCVVTRV9TVF9USU1FU1BFQyA9IFllc1BsZWFzZQorCU5FRURTX0xJQklDT05WID0gWWVzUGxlYXNlCisJSEFWRV9QQVRIU19IID0gWWVzUGxlYXNlCitlbmRpZgogaWZlcSAoJCh1bmFtZV9TKSxOZXRCU0QpCiAJaWZlcSAoJChzaGVsbCBleHByICIkKHVuYW1lX1IpIiA6ICdbMDFdXC4nKSwyKQogCQlORUVEU19MSUJJQ09OViA9IFllc1BsZWFzZQpAQCAtMzM5LDYgKzM0Niw3IEBACiAJT0JKRUNUX0NSRUFUSU9OX1VTRVNfUkVOQU1FUyA9IFVuZm9ydHVuYXRlbHlOZWVkc1RvCiAJTk9fUkVHRVggPSBZZXNQbGVhc2UKIAlOT19DVVJMID0gWWVzUGxlYXNlCisJTk9fR0VUVEVYVCA9IFllc1BsZWFzZQogCU5PX1BZVEhPTiA9IFllc1BsZWFzZQogCUJMS19TSEExID0gWWVzUGxlYXNlCiAJRVRBR1NfVEFSR0VUID0gRVRBR1MKQEAgLTQ5OSw3ICs1MDcsNyBAQAogCU5PX0lORVRfTlRPUCA9IFllc1BsZWFzZQogCU5PX1BPU0lYX0dPT0RJRVMgPSBVbmZvcnR1bmF0ZWx5WWVzCiAJREVGQVVMVF9IRUxQX0ZPUk1BVCA9IGh0bWwKLQlDT01QQVRfQ0ZMQUdTICs9IC1EX19VU0VfTUlOR1dfQUNDRVNTIC1ETk9HREkgLUljb21wYXQgLUljb21wYXQvd2luMzIKKwlDT01QQVRfQ0ZMQUdTICs9IC1EX19VU0VfTUlOR1dfQUNDRVNTIC1EX1VTRV8zMkJJVF9USU1FX1QgLUROT0dESSAtSWNvbXBhdCAtSWNvbXBhdC93aW4zMgogCUNPTVBBVF9DRkxBR1MgKz0gLURTVFJJUF9FWFRFTlNJT049XCIuZXhlXCIKIAlDT01QQVRfT0JKUyArPSBjb21wYXQvbWluZ3cubyBjb21wYXQvd2luYW5zaS5vIFwKIAkJY29tcGF0L3dpbjMyL3B0aHJlYWQubyBjb21wYXQvd2luMzIvc3lzbG9nLm8gXApkaWZmIC0tZ2l0IGEvY29ubmVjdC5jIGIvY29ubmVjdC5jCmluZGV4IDU1M2E4MGMuLjQxNTA0MTIgMTAwNjQ0Ci0tLSBhL2Nvbm5lY3QuYworKysgYi9jb25uZWN0LmMKQEAgLTUsOCArNSwxMCBAQAogI2luY2x1ZGUgInJlZnMuaCIKICNpbmNsdWRlICJydW4tY29tbWFuZC5oIgogI2luY2x1ZGUgInJlbW90ZS5oIgorI2luY2x1ZGUgImNvbm5lY3QuaCIKICNpbmNsdWRlICJ1cmwuaCIKICNpbmNsdWRlICJzdHJpbmctbGlzdC5oIgorI2luY2x1ZGUgInNoYTEtYXJyYXkuaCIKIAogc3RhdGljIGNoYXIgKnNlcnZlcl9jYXBhYmlsaXRpZXM7CiBzdGF0aWMgY29uc3QgY2hhciAqcGFyc2VfZmVhdHVyZV92YWx1ZShjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgaW50ICopOwpAQCAtNDQsMTMgKzQ2LDYgQEAKIAlyZXR1cm4gY2hlY2tfcmVmKHJlZi0+bmFtZSwgc3RybGVuKHJlZi0+bmFtZSksIGZsYWdzKTsKIH0KIAotc3RhdGljIHZvaWQgYWRkX2V4dHJhX2hhdmUoc3RydWN0IGV4dHJhX2hhdmVfb2JqZWN0cyAqZXh0cmEsIHVuc2lnbmVkIGNoYXIgKnNoYTEpCi17Ci0JQUxMT0NfR1JPVyhleHRyYS0+YXJyYXksIGV4dHJhLT5uciArIDEsIGV4dHJhLT5hbGxvYyk7Ci0JaGFzaGNweSgmKGV4dHJhLT5hcnJheVtleHRyYS0+bnJdWzBdKSwgc2hhMSk7Ci0JZXh0cmEtPm5yKys7Ci19Ci0KIHN0YXRpYyB2b2lkIGRpZV9pbml0aWFsX2NvbnRhY3QoaW50IGdvdF9hdF9sZWFzdF9vbmVfaGVhZCkKIHsKIAlpZiAoZ290X2F0X2xlYXN0X29uZV9oZWFkKQpAQCAtMTIxLDcgKzExNiw4IEBACiAgKi8KIHN0cnVjdCByZWYgKipnZXRfcmVtb3RlX2hlYWRzKGludCBpbiwgY2hhciAqc3JjX2J1Ziwgc2l6ZV90IHNyY19sZW4sCiAJCQkgICAgICBzdHJ1Y3QgcmVmICoqbGlzdCwgdW5zaWduZWQgaW50IGZsYWdzLAotCQkJICAgICAgc3RydWN0IGV4dHJhX2hhdmVfb2JqZWN0cyAqZXh0cmFfaGF2ZSkKKwkJCSAgICAgIHN0cnVjdCBzaGExX2FycmF5ICpleHRyYV9oYXZlLAorCQkJICAgICAgc3RydWN0IHNoYTFfYXJyYXkgKnNoYWxsb3dfcG9pbnRzKQogewogCXN0cnVjdCByZWYgKipvcmlnX2xpc3QgPSBsaXN0OwogCWludCBnb3RfYXRfbGVhc3Rfb25lX2hlYWQgPSAwOwpAQCAtMTQ0LDkgKzE0MCwxOCBAQAogCQlpZiAoIWxlbikKIAkJCWJyZWFrOwogCi0JCWlmIChsZW4gPiA0ICYmICFwcmVmaXhjbXAoYnVmZmVyLCAiRVJSICIpKQorCQlpZiAobGVuID4gNCAmJiBzdGFydHNfd2l0aChidWZmZXIsICJFUlIgIikpCiAJCQlkaWUoInJlbW90ZSBlcnJvcjogJXMiLCBidWZmZXIgKyA0KTsKIAorCQlpZiAobGVuID09IDQ4ICYmIHN0YXJ0c193aXRoKGJ1ZmZlciwgInNoYWxsb3cgIikpIHsKKwkJCWlmIChnZXRfc2hhMV9oZXgoYnVmZmVyICsgOCwgb2xkX3NoYTEpKQorCQkJCWRpZSgicHJvdG9jb2wgZXJyb3I6IGV4cGVjdGVkIHNoYWxsb3cgc2hhLTEsIGdvdCAnJXMnIiwgYnVmZmVyICsgOCk7CisJCQlpZiAoIXNoYWxsb3dfcG9pbnRzKQorCQkJCWRpZSgicmVwb3NpdG9yeSBvbiB0aGUgb3RoZXIgZW5kIGNhbm5vdCBiZSBzaGFsbG93Iik7CisJCQlzaGExX2FycmF5X2FwcGVuZChzaGFsbG93X3BvaW50cywgb2xkX3NoYTEpOworCQkJY29udGludWU7CisJCX0KKwogCQlpZiAobGVuIDwgNDIgfHwgZ2V0X3NoYTFfaGV4KGJ1ZmZlciwgb2xkX3NoYTEpIHx8IGJ1ZmZlcls0MF0gIT0gJyAnKQogCQkJZGllKCJwcm90b2NvbCBlcnJvcjogZXhwZWN0ZWQgc2hhL3JlZiwgZ290ICclcyciLCBidWZmZXIpOwogCQluYW1lID0gYnVmZmVyICsgNDE7CkBAIC0xNTksNyArMTY0LDcgQEAKIAogCQlpZiAoZXh0cmFfaGF2ZSAmJgogCQkgICAgbmFtZV9sZW4gPT0gNSAmJiAhbWVtY21wKCIuaGF2ZSIsIG5hbWUsIDUpKSB7Ci0JCQlhZGRfZXh0cmFfaGF2ZShleHRyYV9oYXZlLCBvbGRfc2hhMSk7CisJCQlzaGExX2FycmF5X2FwcGVuZChleHRyYV9oYXZlLCBvbGRfc2hhMSk7CiAJCQljb250aW51ZTsKIAkJfQogCkBAIC0yMzEsMTAgKzIzNiwzNCBAQAogCiBlbnVtIHByb3RvY29sIHsKIAlQUk9UT19MT0NBTCA9IDEsCisJUFJPVE9fRklMRSwKIAlQUk9UT19TU0gsCiAJUFJPVE9fR0lUCiB9OwogCitpbnQgdXJsX2lzX2xvY2FsX25vdF9zc2goY29uc3QgY2hhciAqdXJsKQoreworCWNvbnN0IGNoYXIgKmNvbG9uID0gc3RyY2hyKHVybCwgJzonKTsKKwljb25zdCBjaGFyICpzbGFzaCA9IHN0cmNocih1cmwsICcvJyk7CisJcmV0dXJuICFjb2xvbiB8fCAoc2xhc2ggJiYgc2xhc2ggPCBjb2xvbikgfHwKKwkJaGFzX2Rvc19kcml2ZV9wcmVmaXgodXJsKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKnByb3RfbmFtZShlbnVtIHByb3RvY29sIHByb3RvY29sKQoreworCXN3aXRjaCAocHJvdG9jb2wpIHsKKwkJY2FzZSBQUk9UT19MT0NBTDoKKwkJY2FzZSBQUk9UT19GSUxFOgorCQkJcmV0dXJuICJmaWxlIjsKKwkJY2FzZSBQUk9UT19TU0g6CisJCQlyZXR1cm4gInNzaCI7CisJCWNhc2UgUFJPVE9fR0lUOgorCQkJcmV0dXJuICJnaXQiOworCQlkZWZhdWx0OgorCQkJcmV0dXJuICJ1bmtvd24gcHJvdG9jb2wiOworCX0KK30KKwogc3RhdGljIGVudW0gcHJvdG9jb2wgZ2V0X3Byb3RvY29sKGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAJaWYgKCFzdHJjbXAobmFtZSwgInNzaCIpKQpAQCAtMjQ2LDcgKzI3NSw3IEBACiAJaWYgKCFzdHJjbXAobmFtZSwgInNzaCtnaXQiKSkKIAkJcmV0dXJuIFBST1RPX1NTSDsKIAlpZiAoIXN0cmNtcChuYW1lLCAiZmlsZSIpKQotCQlyZXR1cm4gUFJPVE9fTE9DQUw7CisJCXJldHVybiBQUk9UT19GSUxFOwogCWRpZSgiSSBkb24ndCBoYW5kbGUgcHJvdG9jb2wgJyVzJyIsIG5hbWUpOwogfQogCkBAIC01MjYsMjQgKzU1NSw5NSBAQAogCXJldHVybiBwcm94eTsKIH0KIAotI2RlZmluZSBNQVhfQ01EX0xFTiAxMDI0Ci0KLXN0YXRpYyBjaGFyICpnZXRfcG9ydChjaGFyICpob3N0KQorc3RhdGljIGNvbnN0IGNoYXIgKmdldF9wb3J0X251bWVyaWMoY29uc3QgY2hhciAqcCkKIHsKIAljaGFyICplbmQ7Ci0JY2hhciAqcCA9IHN0cmNocihob3N0LCAnOicpOwotCiAJaWYgKHApIHsKIAkJbG9uZyBwb3J0ID0gc3RydG9sKHAgKyAxLCAmZW5kLCAxMCk7CiAJCWlmIChlbmQgIT0gcCArIDEgJiYgKmVuZCA9PSAnXDAnICYmIDAgPD0gcG9ydCAmJiBwb3J0IDwgNjU1MzYpIHsKLQkJCSpwID0gJ1wwJzsKLQkJCXJldHVybiBwKzE7CisJCQlyZXR1cm4gcDsKIAkJfQogCX0KIAogCXJldHVybiBOVUxMOwogfQogCisvKgorICogRXh0cmFjdCBwcm90b2NvbCBhbmQgcmVsZXZhbnQgcGFydHMgZnJvbSB0aGUgc3BlY2lmaWVkIGNvbm5lY3Rpb24gVVJMLgorICogVGhlIGNhbGxlciBtdXN0IGZyZWUoKSB0aGUgcmV0dXJuZWQgc3RyaW5ncy4KKyAqLworc3RhdGljIGVudW0gcHJvdG9jb2wgcGFyc2VfY29ubmVjdF91cmwoY29uc3QgY2hhciAqdXJsX29yaWcsIGNoYXIgKipyZXRfaG9zdCwKKwkJCQkgICAgICAgY2hhciAqKnJldF9wYXRoKQoreworCWNoYXIgKnVybDsKKwljaGFyICpob3N0LCAqcGF0aDsKKwljaGFyICplbmQ7CisJaW50IHNlcGFyYXRvciA9ICcvJzsKKwllbnVtIHByb3RvY29sIHByb3RvY29sID0gUFJPVE9fTE9DQUw7CisKKwlpZiAoaXNfdXJsKHVybF9vcmlnKSkKKwkJdXJsID0gdXJsX2RlY29kZSh1cmxfb3JpZyk7CisJZWxzZQorCQl1cmwgPSB4c3RyZHVwKHVybF9vcmlnKTsKKworCWhvc3QgPSBzdHJzdHIodXJsLCAiOi8vIik7CisJaWYgKGhvc3QpIHsKKwkJKmhvc3QgPSAnXDAnOworCQlwcm90b2NvbCA9IGdldF9wcm90b2NvbCh1cmwpOworCQlob3N0ICs9IDM7CisJfSBlbHNlIHsKKwkJaG9zdCA9IHVybDsKKwkJaWYgKCF1cmxfaXNfbG9jYWxfbm90X3NzaCh1cmwpKSB7CisJCQlwcm90b2NvbCA9IFBST1RPX1NTSDsKKwkJCXNlcGFyYXRvciA9ICc6JzsKKwkJfQorCX0KKworCS8qCisJICogRG9uJ3QgZG8gZGVzdHJ1Y3RpdmUgdHJhbnNmb3JtcyBhcyBwcm90b2NvbCBjb2RlIGRvZXMKKwkgKiAnW10nIHVud3JhcHBpbmcgaW4gZ2V0X2hvc3RfYW5kX3BvcnQoKQorCSAqLworCWlmIChob3N0WzBdID09ICdbJykgeworCQllbmQgPSBzdHJjaHIoaG9zdCArIDEsICddJyk7CisJCWlmIChlbmQpIHsKKwkJCWVuZCsrOworCQl9IGVsc2UKKwkJCWVuZCA9IGhvc3Q7CisJfSBlbHNlCisJCWVuZCA9IGhvc3Q7CisKKwlpZiAocHJvdG9jb2wgPT0gUFJPVE9fTE9DQUwpCisJCXBhdGggPSBlbmQ7CisJZWxzZSBpZiAocHJvdG9jb2wgPT0gUFJPVE9fRklMRSAmJiBoYXNfZG9zX2RyaXZlX3ByZWZpeChlbmQpKQorCQlwYXRoID0gZW5kOyAvKiAiZmlsZTovLyQocHdkKSIgbWF5IGJlICJmaWxlOi8vQzovcHJvamVjdHMvcmVwbyIgKi8KKwllbHNlCisJCXBhdGggPSBzdHJjaHIoZW5kLCBzZXBhcmF0b3IpOworCisJaWYgKCFwYXRoIHx8ICEqcGF0aCkKKwkJZGllKCJObyBwYXRoIHNwZWNpZmllZC4gU2VlICdtYW4gZ2l0LXB1bGwnIGZvciB2YWxpZCB1cmwgc3ludGF4Iik7CisKKwkvKgorCSAqIG51bGwtdGVybWluYXRlIGhvc3RuYW1lIGFuZCBwb2ludCBwYXRoIHRvIH4gZm9yIFVSTCdzIGxpa2UgdGhpczoKKwkgKiAgICBzc2g6Ly9ob3N0Lnh6L351c2VyL3JlcG8KKwkgKi8KKworCWVuZCA9IHBhdGg7IC8qIE5lZWQgdG8gXDAgdGVybWluYXRlIGhvc3QgaGVyZSAqLworCWlmIChzZXBhcmF0b3IgPT0gJzonKQorCQlwYXRoKys7IC8qIHBhdGggc3RhcnRzIGFmdGVyICc6JyAqLworCWlmIChwcm90b2NvbCA9PSBQUk9UT19HSVQgfHwgcHJvdG9jb2wgPT0gUFJPVE9fU1NIKSB7CisJCWlmIChwYXRoWzFdID09ICd+JykKKwkJCXBhdGgrKzsKKwl9CisKKwlwYXRoID0geHN0cmR1cChwYXRoKTsKKwkqZW5kID0gJ1wwJzsKKworCSpyZXRfaG9zdCA9IHhzdHJkdXAoaG9zdCk7CisJKnJldF9wYXRoID0gcGF0aDsKKwlmcmVlKHVybCk7CisJcmV0dXJuIHByb3RvY29sOworfQorCiBzdGF0aWMgc3RydWN0IGNoaWxkX3Byb2Nlc3Mgbm9fZm9yazsKIAogLyoKQEAgLTU1NywxMDQgKzY1NywzNiBAQAogICogd2lsbCBob3BlZnVsbHkgYmUgY2hhbmdlZCBpbiBhIGxpYmlmaWNhdGlvbiBlZmZvcnQsIHRvIHJldHVybiBOVUxMIHdoZW4KICAqIHRoZSBjb25uZWN0aW9uIGZhaWxlZCkuCiAgKi8KLXN0cnVjdCBjaGlsZF9wcm9jZXNzICpnaXRfY29ubmVjdChpbnQgZmRbMl0sIGNvbnN0IGNoYXIgKnVybF9vcmlnLAorc3RydWN0IGNoaWxkX3Byb2Nlc3MgKmdpdF9jb25uZWN0KGludCBmZFsyXSwgY29uc3QgY2hhciAqdXJsLAogCQkJCSAgY29uc3QgY2hhciAqcHJvZywgaW50IGZsYWdzKQogewotCWNoYXIgKnVybDsKLQljaGFyICpob3N0LCAqcGF0aDsKLQljaGFyICplbmQ7Ci0JaW50IGM7CisJY2hhciAqaG9zdGFuZHBvcnQsICpwYXRoOwogCXN0cnVjdCBjaGlsZF9wcm9jZXNzICpjb25uID0gJm5vX2Zvcms7Ci0JZW51bSBwcm90b2NvbCBwcm90b2NvbCA9IFBST1RPX0xPQ0FMOwotCWludCBmcmVlX3BhdGggPSAwOwotCWNoYXIgKnBvcnQgPSBOVUxMOworCWVudW0gcHJvdG9jb2wgcHJvdG9jb2w7CiAJY29uc3QgY2hhciAqKmFyZzsKLQlzdHJ1Y3Qgc3RyYnVmIGNtZDsKKwlzdHJ1Y3Qgc3RyYnVmIGNtZCA9IFNUUkJVRl9JTklUOwogCiAJLyogV2l0aG91dCB0aGlzIHdlIGNhbm5vdCByZWx5IG9uIHdhaXRwaWQoKSB0byB0ZWxsCiAJICogd2hhdCBoYXBwZW5lZCB0byBvdXIgY2hpbGRyZW4uCiAJICovCiAJc2lnbmFsKFNJR0NITEQsIFNJR19ERkwpOwogCi0JaWYgKGlzX3VybCh1cmxfb3JpZykpCi0JCXVybCA9IHVybF9kZWNvZGUodXJsX29yaWcpOwotCWVsc2UKLQkJdXJsID0geHN0cmR1cCh1cmxfb3JpZyk7Ci0KLQlob3N0ID0gc3Ryc3RyKHVybCwgIjovLyIpOwotCWlmIChob3N0KSB7Ci0JCSpob3N0ID0gJ1wwJzsKLQkJcHJvdG9jb2wgPSBnZXRfcHJvdG9jb2wodXJsKTsKLQkJaG9zdCArPSAzOwotCQljID0gJy8nOwotCX0gZWxzZSB7Ci0JCWhvc3QgPSB1cmw7Ci0JCWMgPSAnOic7Ci0JfQotCi0JLyoKLQkgKiBEb24ndCBkbyBkZXN0cnVjdGl2ZSB0cmFuc2Zvcm1zIHdpdGggZ2l0Oi8vIGFzIHRoYXQKLQkgKiBwcm90b2NvbCBjb2RlIGRvZXMgJ1tdJyB1bndyYXBwaW5nIG9mIGl0cyBvd24uCi0JICovCi0JaWYgKGhvc3RbMF0gPT0gJ1snKSB7Ci0JCWVuZCA9IHN0cmNocihob3N0ICsgMSwgJ10nKTsKLQkJaWYgKGVuZCkgewotCQkJaWYgKHByb3RvY29sICE9IFBST1RPX0dJVCkgewotCQkJCSplbmQgPSAwOwotCQkJCWhvc3QrKzsKLQkJCX0KLQkJCWVuZCsrOwotCQl9IGVsc2UKLQkJCWVuZCA9IGhvc3Q7Ci0JfSBlbHNlCi0JCWVuZCA9IGhvc3Q7Ci0KLQlwYXRoID0gc3RyY2hyKGVuZCwgYyk7Ci0JaWYgKHBhdGggJiYgIWhhc19kb3NfZHJpdmVfcHJlZml4KGVuZCkpIHsKLQkJaWYgKGMgPT0gJzonKSB7Ci0JCQlpZiAocGF0aCA8IHN0cmNocm51bChob3N0LCAnLycpKSB7Ci0JCQkJcHJvdG9jb2wgPSBQUk9UT19TU0g7Ci0JCQkJKnBhdGgrKyA9ICdcMCc7Ci0JCQl9IGVsc2UgLyogJy8nIGluIHRoZSBob3N0IHBhcnQsIGFzc3VtZSBsb2NhbCBwYXRoICovCi0JCQkJcGF0aCA9IGVuZDsKLQkJfQotCX0gZWxzZQotCQlwYXRoID0gZW5kOwotCi0JaWYgKCFwYXRoIHx8ICEqcGF0aCkKLQkJZGllKCJObyBwYXRoIHNwZWNpZmllZC4gU2VlICdtYW4gZ2l0LXB1bGwnIGZvciB2YWxpZCB1cmwgc3ludGF4Iik7Ci0KLQkvKgotCSAqIG51bGwtdGVybWluYXRlIGhvc3RuYW1lIGFuZCBwb2ludCBwYXRoIHRvIH4gZm9yIFVSTCdzIGxpa2UgdGhpczoKLQkgKiAgICBzc2g6Ly9ob3N0Lnh6L351c2VyL3JlcG8KLQkgKi8KLQlpZiAocHJvdG9jb2wgIT0gUFJPVE9fTE9DQUwgJiYgaG9zdCAhPSB1cmwpIHsKLQkJY2hhciAqcHRyID0gcGF0aDsKLQkJaWYgKHBhdGhbMV0gPT0gJ34nKQotCQkJcGF0aCsrOwotCQllbHNlIHsKLQkJCXBhdGggPSB4c3RyZHVwKHB0cik7Ci0JCQlmcmVlX3BhdGggPSAxOwotCQl9Ci0KLQkJKnB0ciA9ICdcMCc7Ci0JfQotCi0JLyoKLQkgKiBBZGQgc3VwcG9ydCBmb3Igc3NoIHBvcnQ6IHNzaDovL2hvc3QueHk6PHBvcnQ+Ly4uLgotCSAqLwotCWlmIChwcm90b2NvbCA9PSBQUk9UT19TU0ggJiYgaG9zdCAhPSB1cmwpCi0JCXBvcnQgPSBnZXRfcG9ydChlbmQpOwotCi0JaWYgKHByb3RvY29sID09IFBST1RPX0dJVCkgeworCXByb3RvY29sID0gcGFyc2VfY29ubmVjdF91cmwodXJsLCAmaG9zdGFuZHBvcnQsICZwYXRoKTsKKwlpZiAoZmxhZ3MgJiBDT05ORUNUX0RJQUdfVVJMKSB7CisJCXByaW50ZigiRGlhZzogdXJsPSVzXG4iLCB1cmwgPyB1cmwgOiAiTlVMTCIpOworCQlwcmludGYoIkRpYWc6IHByb3RvY29sPSVzXG4iLCBwcm90X25hbWUocHJvdG9jb2wpKTsKKwkJcHJpbnRmKCJEaWFnOiBob3N0YW5kcG9ydD0lc1xuIiwgaG9zdGFuZHBvcnQgPyBob3N0YW5kcG9ydCA6ICJOVUxMIik7CisJCXByaW50ZigiRGlhZzogcGF0aD0lc1xuIiwgcGF0aCA/IHBhdGggOiAiTlVMTCIpOworCQljb25uID0gTlVMTDsKKwl9IGVsc2UgaWYgKHByb3RvY29sID09IFBST1RPX0dJVCkgewogCQkvKiBUaGVzZSB1bmRlcmx5aW5nIGNvbm5lY3Rpb24gY29tbWFuZHMgZGllKCkgaWYgdGhleQogCQkgKiBjYW5ub3QgY29ubmVjdC4KIAkJICovCi0JCWNoYXIgKnRhcmdldF9ob3N0ID0geHN0cmR1cChob3N0KTsKLQkJaWYgKGdpdF91c2VfcHJveHkoaG9zdCkpCi0JCQljb25uID0gZ2l0X3Byb3h5X2Nvbm5lY3QoZmQsIGhvc3QpOworCQljaGFyICp0YXJnZXRfaG9zdCA9IHhzdHJkdXAoaG9zdGFuZHBvcnQpOworCQlpZiAoZ2l0X3VzZV9wcm94eShob3N0YW5kcG9ydCkpCisJCQljb25uID0gZ2l0X3Byb3h5X2Nvbm5lY3QoZmQsIGhvc3RhbmRwb3J0KTsKIAkJZWxzZQotCQkJZ2l0X3RjcF9jb25uZWN0KGZkLCBob3N0LCBmbGFncyk7CisJCQlnaXRfdGNwX2Nvbm5lY3QoZmQsIGhvc3RhbmRwb3J0LCBmbGFncyk7CiAJCS8qCiAJCSAqIFNlcGFyYXRlIG9yaWdpbmFsIHByb3RvY29sIGNvbXBvbmVudHMgcHJvZyBhbmQgcGF0aAogCQkgKiBmcm9tIGV4dGVuZGVkIGhvc3QgaGVhZGVyIHdpdGggYSBOVUwgYnl0ZS4KQEAgLTY2Nyw1NSArNjk5LDUxIEBACiAJCQkgICAgIHByb2csIHBhdGgsIDAsCiAJCQkgICAgIHRhcmdldF9ob3N0LCAwKTsKIAkJZnJlZSh0YXJnZXRfaG9zdCk7Ci0JCWZyZWUodXJsKTsKLQkJaWYgKGZyZWVfcGF0aCkKLQkJCWZyZWUocGF0aCk7Ci0JCXJldHVybiBjb25uOwotCX0KKwl9IGVsc2UgeworCQljb25uID0geGNhbGxvYygxLCBzaXplb2YoKmNvbm4pKTsKIAotCWNvbm4gPSB4Y2FsbG9jKDEsIHNpemVvZigqY29ubikpOworCQlzdHJidWZfYWRkc3RyKCZjbWQsIHByb2cpOworCQlzdHJidWZfYWRkY2goJmNtZCwgJyAnKTsKKwkJc3FfcXVvdGVfYnVmKCZjbWQsIHBhdGgpOwogCi0Jc3RyYnVmX2luaXQoJmNtZCwgTUFYX0NNRF9MRU4pOwotCXN0cmJ1Zl9hZGRzdHIoJmNtZCwgcHJvZyk7Ci0Jc3RyYnVmX2FkZGNoKCZjbWQsICcgJyk7Ci0Jc3FfcXVvdGVfYnVmKCZjbWQsIHBhdGgpOwotCWlmIChjbWQubGVuID49IE1BWF9DTURfTEVOKQotCQlkaWUoImNvbW1hbmQgbGluZSB0b28gbG9uZyIpOworCQljb25uLT5pbiA9IGNvbm4tPm91dCA9IC0xOworCQljb25uLT5hcmd2ID0gYXJnID0geGNhbGxvYyg3LCBzaXplb2YoKmFyZykpOworCQlpZiAocHJvdG9jb2wgPT0gUFJPVE9fU1NIKSB7CisJCQljb25zdCBjaGFyICpzc2ggPSBnZXRlbnYoIkdJVF9TU0giKTsKKwkJCWludCBwdXR0eSA9IHNzaCAmJiBzdHJjYXNlc3RyKHNzaCwgInBsaW5rIik7CisJCQljaGFyICpzc2hfaG9zdCA9IGhvc3RhbmRwb3J0OworCQkJY29uc3QgY2hhciAqcG9ydCA9IE5VTEw7CisJCQlnZXRfaG9zdF9hbmRfcG9ydCgmc3NoX2hvc3QsICZwb3J0KTsKKwkJCXBvcnQgPSBnZXRfcG9ydF9udW1lcmljKHBvcnQpOwogCi0JY29ubi0+aW4gPSBjb25uLT5vdXQgPSAtMTsKLQljb25uLT5hcmd2ID0gYXJnID0geGNhbGxvYyg3LCBzaXplb2YoKmFyZykpOwotCWlmIChwcm90b2NvbCA9PSBQUk9UT19TU0gpIHsKLQkJY29uc3QgY2hhciAqc3NoID0gZ2V0ZW52KCJHSVRfU1NIIik7Ci0JCWludCBwdXR0eSA9IHNzaCAmJiBzdHJjYXNlc3RyKHNzaCwgInBsaW5rIik7Ci0JCWlmICghc3NoKSBzc2ggPSAic3NoIjsKKwkJCWlmICghc3NoKSBzc2ggPSAic3NoIjsKIAotCQkqYXJnKysgPSBzc2g7Ci0JCWlmIChwdXR0eSAmJiAhc3RyY2FzZXN0cihzc2gsICJ0b3J0b2lzZXBsaW5rIikpCi0JCQkqYXJnKysgPSAiLWJhdGNoIjsKLQkJaWYgKHBvcnQpIHsKLQkJCS8qIFAgaXMgZm9yIFB1VFRZLCBwIGlzIGZvciBPcGVuU1NIICovCi0JCQkqYXJnKysgPSBwdXR0eSA/ICItUCIgOiAiLXAiOwotCQkJKmFyZysrID0gcG9ydDsKKwkJCSphcmcrKyA9IHNzaDsKKwkJCWlmIChwdXR0eSAmJiAhc3RyY2FzZXN0cihzc2gsICJ0b3J0b2lzZXBsaW5rIikpCisJCQkJKmFyZysrID0gIi1iYXRjaCI7CisJCQlpZiAocG9ydCkgeworCQkJCS8qIFAgaXMgZm9yIFB1VFRZLCBwIGlzIGZvciBPcGVuU1NIICovCisJCQkJKmFyZysrID0gcHV0dHkgPyAiLVAiIDogIi1wIjsKKwkJCQkqYXJnKysgPSBwb3J0OworCQkJfQorCQkJKmFyZysrID0gc3NoX2hvc3Q7CisJCX0JZWxzZSB7CisJCQkvKiByZW1vdmUgcmVwby1sb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgZW52aXJvbm1lbnQgKi8KKwkJCWNvbm4tPmVudiA9IGxvY2FsX3JlcG9fZW52OworCQkJY29ubi0+dXNlX3NoZWxsID0gMTsKIAkJfQotCQkqYXJnKysgPSBob3N0OwotCX0KLQllbHNlIHsKLQkJLyogcmVtb3ZlIHJlcG8tbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIGVudmlyb25tZW50ICovCi0JCWNvbm4tPmVudiA9IGxvY2FsX3JlcG9fZW52OwotCQljb25uLT51c2Vfc2hlbGwgPSAxOwotCX0KLQkqYXJnKysgPSBjbWQuYnVmOwotCSphcmcgPSBOVUxMOworCQkqYXJnKysgPSBjbWQuYnVmOworCQkqYXJnID0gTlVMTDsKIAotCWlmIChzdGFydF9jb21tYW5kKGNvbm4pKQotCQlkaWUoInVuYWJsZSB0byBmb3JrIik7CisJCWlmIChzdGFydF9jb21tYW5kKGNvbm4pKQorCQkJZGllKCJ1bmFibGUgdG8gZm9yayIpOwogCi0JZmRbMF0gPSBjb25uLT5vdXQ7IC8qIHJlYWQgZnJvbSBjaGlsZCdzIHN0ZG91dCAqLwotCWZkWzFdID0gY29ubi0+aW47ICAvKiB3cml0ZSB0byBjaGlsZCdzIHN0ZGluICovCi0Jc3RyYnVmX3JlbGVhc2UoJmNtZCk7Ci0JZnJlZSh1cmwpOwotCWlmIChmcmVlX3BhdGgpCi0JCWZyZWUocGF0aCk7CisJCWZkWzBdID0gY29ubi0+b3V0OyAvKiByZWFkIGZyb20gY2hpbGQncyBzdGRvdXQgKi8KKwkJZmRbMV0gPSBjb25uLT5pbjsgIC8qIHdyaXRlIHRvIGNoaWxkJ3Mgc3RkaW4gKi8KKwkJc3RyYnVmX3JlbGVhc2UoJmNtZCk7CisJfQorCWZyZWUoaG9zdGFuZHBvcnQpOworCWZyZWUocGF0aCk7CiAJcmV0dXJuIGNvbm47CiB9CiAKZGlmZiAtLWdpdCBhL2Nvbm5lY3QuaCBiL2Nvbm5lY3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDFhNjg1Ci0tLSAvZGV2L251bGwKKysrIGIvY29ubmVjdC5oCkBAIC0wLDAgKzEsMTQgQEAKKyNpZm5kZWYgQ09OTkVDVF9ICisjZGVmaW5lIENPTk5FQ1RfSAorCisjZGVmaW5lIENPTk5FQ1RfVkVSQk9TRSAgICAgICAoMXUgPDwgMCkKKyNkZWZpbmUgQ09OTkVDVF9ESUFHX1VSTCAgICAgICgxdSA8PCAxKQorZXh0ZXJuIHN0cnVjdCBjaGlsZF9wcm9jZXNzICpnaXRfY29ubmVjdChpbnQgZmRbMl0sIGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqcHJvZywgaW50IGZsYWdzKTsKK2V4dGVybiBpbnQgZmluaXNoX2Nvbm5lY3Qoc3RydWN0IGNoaWxkX3Byb2Nlc3MgKmNvbm4pOworZXh0ZXJuIGludCBnaXRfY29ubmVjdGlvbl9pc19zb2NrZXQoc3RydWN0IGNoaWxkX3Byb2Nlc3MgKmNvbm4pOworZXh0ZXJuIGludCBzZXJ2ZXJfc3VwcG9ydHMoY29uc3QgY2hhciAqZmVhdHVyZSk7CitleHRlcm4gaW50IHBhcnNlX2ZlYXR1cmVfcmVxdWVzdChjb25zdCBjaGFyICpmZWF0dXJlcywgY29uc3QgY2hhciAqZmVhdHVyZSk7CitleHRlcm4gY29uc3QgY2hhciAqc2VydmVyX2ZlYXR1cmVfdmFsdWUoY29uc3QgY2hhciAqZmVhdHVyZSwgaW50ICpsZW5fcmV0KTsKK2V4dGVybiBpbnQgdXJsX2lzX2xvY2FsX25vdF9zc2goY29uc3QgY2hhciAqdXJsKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9jb25uZWN0ZWQuYyBiL2Nvbm5lY3RlZC5jCmluZGV4IGZhZThkNjQuLmJlMDI1M2UgMTAwNjQ0Ci0tLSBhL2Nvbm5lY3RlZC5jCisrKyBiL2Nvbm5lY3RlZC5jCkBAIC0xOSwxNyArMTksMTcgQEAKICAqCiAgKiBSZXR1cm5zIDAgaWYgZXZlcnl0aGluZyBpcyBjb25uZWN0ZWQsIG5vbi16ZXJvIG90aGVyd2lzZS4KICAqLwotaW50IGNoZWNrX2V2ZXJ5dGhpbmdfY29ubmVjdGVkX3dpdGhfdHJhbnNwb3J0KHNoYTFfaXRlcmF0ZV9mbiBmbiwKLQkJCQkJICAgICAgaW50IHF1aWV0LAotCQkJCQkgICAgICB2b2lkICpjYl9kYXRhLAotCQkJCQkgICAgICBzdHJ1Y3QgdHJhbnNwb3J0ICp0cmFuc3BvcnQpCitzdGF0aWMgaW50IGNoZWNrX2V2ZXJ5dGhpbmdfY29ubmVjdGVkX3JlYWwoc2hhMV9pdGVyYXRlX2ZuIGZuLAorCQkJCQkgICBpbnQgcXVpZXQsCisJCQkJCSAgIHZvaWQgKmNiX2RhdGEsCisJCQkJCSAgIHN0cnVjdCB0cmFuc3BvcnQgKnRyYW5zcG9ydCwKKwkJCQkJICAgY29uc3QgY2hhciAqc2hhbGxvd19maWxlKQogewogCXN0cnVjdCBjaGlsZF9wcm9jZXNzIHJldl9saXN0OwotCWNvbnN0IGNoYXIgKmFyZ3ZbXSA9IHsicmV2LWxpc3QiLCAiLS1vYmplY3RzIiwKLQkJCSAgICAgICItLXN0ZGluIiwgIi0tbm90IiwgIi0tYWxsIiwgTlVMTCwgTlVMTH07CisJY29uc3QgY2hhciAqYXJndls5XTsKIAljaGFyIGNvbW1pdFs0MV07CiAJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKLQlpbnQgZXJyID0gMDsKKwlpbnQgZXJyID0gMCwgYWMgPSAwOwogCXN0cnVjdCBwYWNrZWRfZ2l0ICpuZXdfcGFjayA9IE5VTEw7CiAKIAlpZiAoZm4oY2JfZGF0YSwgc2hhMSkpCkBAIC0zOCw3ICszOCw3IEBACiAJaWYgKHRyYW5zcG9ydCAmJiB0cmFuc3BvcnQtPnNtYXJ0X29wdGlvbnMgJiYKIAkgICAgdHJhbnNwb3J0LT5zbWFydF9vcHRpb25zLT5zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkICYmCiAJICAgIHRyYW5zcG9ydC0+cGFja19sb2NrZmlsZSAmJgotCSAgICAhc3VmZml4Y21wKHRyYW5zcG9ydC0+cGFja19sb2NrZmlsZSwgIi5rZWVwIikpIHsKKwkgICAgZW5kc193aXRoKHRyYW5zcG9ydC0+cGFja19sb2NrZmlsZSwgIi5rZWVwIikpIHsKIAkJc3RydWN0IHN0cmJ1ZiBpZHhfZmlsZSA9IFNUUkJVRl9JTklUOwogCQlzdHJidWZfYWRkc3RyKCZpZHhfZmlsZSwgdHJhbnNwb3J0LT5wYWNrX2xvY2tmaWxlKTsKIAkJc3RyYnVmX3NldGxlbigmaWR4X2ZpbGUsIGlkeF9maWxlLmxlbiAtIDUpOyAvKiAiLmtlZXAiICovCkBAIC00Nyw4ICs0NywxOCBAQAogCQlzdHJidWZfcmVsZWFzZSgmaWR4X2ZpbGUpOwogCX0KIAorCWlmIChzaGFsbG93X2ZpbGUpIHsKKwkJYXJndlthYysrXSA9ICItLXNoYWxsb3ctZmlsZSI7CisJCWFyZ3ZbYWMrK10gPSBzaGFsbG93X2ZpbGU7CisJfQorCWFyZ3ZbYWMrK10gPSAicmV2LWxpc3QiOworCWFyZ3ZbYWMrK10gPSAiLS1vYmplY3RzIjsKKwlhcmd2W2FjKytdID0gIi0tc3RkaW4iOworCWFyZ3ZbYWMrK10gPSAiLS1ub3QiOworCWFyZ3ZbYWMrK10gPSAiLS1hbGwiOwogCWlmIChxdWlldCkKLQkJYXJndls1XSA9ICItLXF1aWV0IjsKKwkJYXJndlthYysrXSA9ICItLXF1aWV0IjsKKwlhcmd2W2FjXSA9IE5VTEw7CiAKIAltZW1zZXQoJnJldl9saXN0LCAwLCBzaXplb2YocmV2X2xpc3QpKTsKIAlyZXZfbGlzdC5hcmd2ID0gYXJndjsKQEAgLTkyLDMgKzEwMiwxOSBAQAogCXNpZ2NoYWluX3BvcChTSUdQSVBFKTsKIAlyZXR1cm4gZmluaXNoX2NvbW1hbmQoJnJldl9saXN0KSB8fCBlcnI7CiB9CisKK2ludCBjaGVja19ldmVyeXRoaW5nX2Nvbm5lY3RlZF93aXRoX3RyYW5zcG9ydChzaGExX2l0ZXJhdGVfZm4gZm4sCisJCQkJCSAgICAgIGludCBxdWlldCwKKwkJCQkJICAgICAgdm9pZCAqY2JfZGF0YSwKKwkJCQkJICAgICAgc3RydWN0IHRyYW5zcG9ydCAqdHJhbnNwb3J0KQoreworCXJldHVybiBjaGVja19ldmVyeXRoaW5nX2Nvbm5lY3RlZF9yZWFsKGZuLCBxdWlldCwgY2JfZGF0YSwKKwkJCQkJICAgICAgIHRyYW5zcG9ydCwgTlVMTCk7Cit9CisKK2ludCBjaGVja19zaGFsbG93X2Nvbm5lY3RlZChzaGExX2l0ZXJhdGVfZm4gZm4sIGludCBxdWlldCwgdm9pZCAqY2JfZGF0YSwKKwkJCSAgICBjb25zdCBjaGFyICpzaGFsbG93X2ZpbGUpCit7CisJcmV0dXJuIGNoZWNrX2V2ZXJ5dGhpbmdfY29ubmVjdGVkX3JlYWwoZm4sIHF1aWV0LCBjYl9kYXRhLAorCQkJCQkgICAgICAgTlVMTCwgc2hhbGxvd19maWxlKTsKK30KZGlmZiAtLWdpdCBhL2Nvbm5lY3RlZC5oIGIvY29ubmVjdGVkLmgKaW5kZXggMGIwNjBiNy4uMDcxZDQwOCAxMDA2NDQKLS0tIGEvY29ubmVjdGVkLmgKKysrIGIvY29ubmVjdGVkLmgKQEAgLTE4LDYgKzE4LDggQEAKICAqIFJldHVybiAwIGlmIE9rLCBub24gemVybyBvdGhlcndpc2UgKGkuZS4gc29tZSBtaXNzaW5nIG9iamVjdHMpCiAgKi8KIGV4dGVybiBpbnQgY2hlY2tfZXZlcnl0aGluZ19jb25uZWN0ZWQoc2hhMV9pdGVyYXRlX2ZuLCBpbnQgcXVpZXQsIHZvaWQgKmNiX2RhdGEpOworZXh0ZXJuIGludCBjaGVja19zaGFsbG93X2Nvbm5lY3RlZChzaGExX2l0ZXJhdGVfZm4sIGludCBxdWlldCwgdm9pZCAqY2JfZGF0YSwKKwkJCQkgICBjb25zdCBjaGFyICpzaGFsbG93X2ZpbGUpOwogZXh0ZXJuIGludCBjaGVja19ldmVyeXRoaW5nX2Nvbm5lY3RlZF93aXRoX3RyYW5zcG9ydChzaGExX2l0ZXJhdGVfZm4sIGludCBxdWlldCwKIAkJCQkJCSAgICAgdm9pZCAqY2JfZGF0YSwKIAkJCQkJCSAgICAgc3RydWN0IHRyYW5zcG9ydCAqdHJhbnNwb3J0KTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnVpbGRzeXN0ZW1zL2VuZ2luZS5wbCBiL2NvbnRyaWIvYnVpbGRzeXN0ZW1zL2VuZ2luZS5wbApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9jb250cmliL2J1aWxkc3lzdGVtcy9nZW5lcmF0ZSBiL2NvbnRyaWIvYnVpbGRzeXN0ZW1zL2dlbmVyYXRlCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnVpbGRzeXN0ZW1zL3BhcnNlLnBsIGIvY29udHJpYi9idWlsZHN5c3RlbXMvcGFyc2UucGwKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaWFib3QvSU5TVEFMTCBiL2NvbnRyaWIvY2lhYm90L0lOU1RBTEwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyMjI5NjEuLjAwMDAwMDAKLS0tIGEvY29udHJpYi9jaWFib3QvSU5TVEFMTAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLT0gSW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyA9Ci0KLVR3byBzY3JpcHRzIGFyZSBpbmNsdWRlZC4gIFRoZSBQeXRob24gb25lIChjaWFib3QucHkpIGlzIGZhc3RlciBhbmQKLW1vcmUgY2FwYWJsZTsgdGhlIHNoZWxsIG9uZSAoY2lhYm90LnNoKSBpcyBhIGZhbGxiYWNrIGluIGNhc2UgUHl0aG9uCi1naXZlcyB5b3VyIGdpdCBob3N0aW5nIHNpdGUgaW5kaWdlc3Rpb24uIChJIGtub3cgb2Ygbm8gc3VjaCBzaXRlcy4pCi0KLUl0IGlzIG5vIGxvbmdlciBuZWNlc3NhcnkgdG8gbW9kaWZ5IHRoZSBzY3JpcHQgaW4gb3JkZXIgdG8gcHV0IGl0Ci1pbiBwbGFjZTsgaW4gZmFjdCwgdGhpcyBpcyBub3cgZGlzY291cmFnZWQuIEl0IGlzIGVudGlyZWx5Ci1jb25maWd1cmFibGUgd2l0aCB0aGUgZm9sbG93aW5nIGdpdCBjb25maWcgdmFyaWFibGVzOgotCi1jaWFib3QucHJvamVjdCA9IG5hbWUgb2YgdGhlIHByb2plY3QKLWNpYWJvdC5yZXBvID0gbmFtZSBvZiB0aGUgcHJvamVjdCByZXBvIGZvciBnaXR3ZWIvY2dpdCBwdXJwb3NlcwotY2lhYm90LnhtbHJwYyAgPSBpZiB0cnVlLCBzaGlwIG5vdGlmaWNhdGlvbnMgdmlhIFhNTC1SUEMKLWNpYWJvdC5yZXZmb3JtYXQgPSBmb3JtYXQgaW4gd2hpY2ggdGhlIHJldmlzaW9uIGlzIHNob3duCi0KLVRoZSByZXZmb3JtYXQgdmFyaWFibGUgbWF5IGhhdmUgdGhlIGZvbGxvd2luZyB2YWx1ZXMKLXJhdyAtPiBmdWxsIGhleCBJRCBvZiBjb21taXQKLXNob3J0IC0+IGZpcnN0IDEyIGNoYXJzIG9mIGhleCBJRAotZGVzY3JpYmUgLT4gZGVzY3JpYmUgcmVsYXRpdmUgdG8gbGFzdCB0YWcsIGZhbGxpbmcgYmFjayB0byBzaG9ydAotCi1jaWFib3QucHJvamVjdCBkZWZhdWx0cyB0byB0aGUgZGlyZWN0b3J5IG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkgdG9wbGV2ZWwuCi1jaWFib3QucmVwbyBkZWZhdWx0cyB0byBjaWFib3QucHJvamVjdCBsb3dlcmNhc2VkLgotY2lhYm90LnhtbHJwYyBkZWZhdWx0cyB0byBUcnVlCi1jaWFib3QucmV2Zm9ybWF0IGRlZmF1bHRzIHRvICdkZXNjcmliZScuCi0KLVRoaXMgbWVhbnMgdGhhdCBpbiB0aGUgbm9ybWFsIGNhc2UgeW91IG5lZWQgbm90IGRvIGFueSBjb25maWd1cmF0aW9uIGF0IGFsbCwKLWhvd2V2ZXIgc2V0dGluZyBjaWFib3QucHJvamVjdCB3aWxsIGFsbG93IHRoZSBob29rIHRvIHJ1biBzbGlnaHRseSBmYXN0ZXIuCi0KLU9uY2UgeW91J3ZlIHNldCB0aGVzZSB2YXJpYWJsZXMsIHRyeSB5b3VyIHNjcmlwdCB3aXRoIC1uIHRvIHNlZSB0aGUKLW5vdGlmaWNhdGlvbiBtZXNzYWdlIGR1bXBlZCB0byBzdGRvdXQgYW5kIHZlcmlmeSB0aGF0IGl0IGxvb2tzIHNhbmUuCi0KLVRvIGxpdmUtdGVzdCB0aGVzZSBzY3JpcHRzLCB5b3VyIHByb2plY3QgbmVlZHMgdG8gaGF2ZSBiZWVuIHJlZ2lzdGVyZWQgd2l0aAotdGhlIENJQSBzaXRlLiAgSGVyZSBhcmUgdGhlIHN0ZXBzOgotCi0xLiBPcGVuIGFuIElSQyB3aW5kb3cgb24gaXJjOi8vZnJlZW5vZGUvY29tbWl0cyBvciB5b3VyIHJlZ2lzdGVyZWQKLSAgIHByb2plY3QgSVJDIGNoYW5uZWwuCi0KLTIuIFJ1biBjaWFib3QucHkgYW5kL29yIGNpYWJvdC5zaCBmcm9tIGFueSBkaXJlY3RvcnkgdW5kZXIgZ2l0Ci0gICBjb250cm9sLgotCi1Zb3Ugc2hvdWxkIHNlZSBhIG5vdGlmaWNhdGlvbiBvbiB0aGUgY2hhbm5lbCBmb3IgeW91ciBtb3N0IHJlY2VudCBjb21taXQuCi0KLUFmdGVyIHZlcmlmeWluZyBjb3JyZWN0IGZ1bmN0aW9uLCBpbnN0YWxsIG9uZSBvZiB0aGVzZSBzY3JpcHRzIGVpdGhlcgotaW4gYSBwb3N0LWNvbW1pdCBob29rIG9yIGluIGFuIHVwZGF0ZSBob29rLgotCi1JbiBwb3N0LWNvbW1pdCwgcnVuIGl0IHdpdGhvdXQgYXJndW1lbnRzLiBJdCB3aWxsIHF1ZXJ5IGZvcgotY3VycmVudCBIRUFEIGFuZCB0aGUgbGF0ZXN0IGNvbW1pdCBJRCB0byBnZXQgdGhlIGluZm9ybWF0aW9uIGl0Ci1uZWVkcy4KLQotSW4gdXBkYXRlLCBjYWxsIGl0IHdpdGggYSByZWZuYW1lIGZvbGxvd2VkIGJ5IGEgbGlzdCBvZiBjb21taXRzOgotWW91IHdhbnQgdG8gcmV2ZXJzZSB0aGUgb3JkZXIgZ2l0IHJldi1saXN0IGVtaXRzIGJlY2F1c2UgaXQgbGlzdHMKLWZyb20gbW9zdCByZWNlbnQgdG8gb2xkZXN0LgotCi0vcGF0aC90by9jaWFib3QucHkgJHtyZWZuYW1lfSAkKGdpdCByZXYtbGlzdCAke29sZGhlYWR9Li4ke25ld2hlYWR9IHwgdGFjKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaWFib3QvUkVBRE1FIGIvY29udHJpYi9jaWFib3QvUkVBRE1FCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZGZlMWY5Li4wMDAwMDAwCi0tLSBhL2NvbnRyaWIvY2lhYm90L1JFQURNRQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRoZXNlIGFyZSBob29rIHNjcmlwdHMgZm9yIHRoZSBDSUEgbm90aWZpY2F0aW9uIHNlcnZpY2UgYXQgPGh0dHA6Ly9jaWEudmMvPgotCi1UaGV5IGFyZSBtYWludGFpbmVkIGJ5IEVyaWMgUy4gUmF5bW9uZCA8ZXNyQHRoeXJzdXMuY29tPi4gIFRoZXJlIGlzIGFuCi11cHN0cmVhbSByZXNvdXJjZSBwYWdlIGZvciB0aGVtIGF0IDxodHRwOi8vd3d3LmNhdGIub3JnL2Vzci9jaWFib3QvPiwKLWJ1dCB0aGV5IGFyZSB1bmxpa2VseSB0byBjaGFuZ2UgcmFwaWRseS4KLQotWW91IHByb2JhYmx5IHdhbnQgdGhlIFB5dGhvbiB2ZXJzaW9uOyBpdCdzIGZhc3RlciwgbW9yZSBjYXBhYmxlLCBhbmQKLWJldHRlciBkb2N1bWVudGVkLiAgVGhlIHNoZWxsIHZlcnNpb24gaXMgbWFpbnRhaW5lZCBvbmx5IGFzIGEgZmFsbGJhY2sKLWZvciB1c2Ugb24gaG9zdGluZyBzaXRlcyB0aGF0IGRvbid0IHBlcm1pdCBQeXRob24gaG9vayBzY3JpcHRzLgotCi1TZWUgdGhlIGZpbGUgSU5TVEFMTCBmb3IgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucy4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2lhYm90L2NpYWJvdC5weSBiL2NvbnRyaWIvY2lhYm90L2NpYWJvdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYmVmYTBjMy4uMDAwMDAwMAotLS0gYS9jb250cmliL2NpYWJvdC9jaWFib3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNTUgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAoYykgMjAxMCBFcmljIFMuIFJheW1vbmQgPGVzckB0aHlyc3VzLmNvbT4KLSMgRGlzdHJpYnV0ZWQgdW5kZXIgQlNEIHRlcm1zLgotIwotIyBUaGlzIHNjcmlwdCBjb250YWlucyBwb3JjZWxhaW4gYW5kIHBvcmNlbGFpbiBieXByb2R1Y3RzLgotIyBJdCdzIFB5dGhvbiBiZWNhdXNlIHRoZSBQeXRob24gc3RhbmRhcmQgbGlicmFyaWVzIGF2b2lkIHBvcnRhYmlsaXR5L3NlY3VyaXR5Ci0jIGlzc3VlcyByYWlzZWQgYnkgY2FsbG91dHMgaW4gdGhlIGFuY2VzdHJhbCBQZXJsIGFuZCBzaCBzY3JpcHRzLiAgSXQgc2hvdWxkCi0jIGJlIGNvbXBhdGlibGUgYmFjayB0byBQeXRob24gMi4xLjUKLSMKLSMgdXNhZ2U6IGNpYWJvdC5weSBbLVZdIFstbl0gWy1wIHByb2plY3RuYW1lXSAgW3JlZm5hbWUgW2NvbW1pdHMuLi5dXQotIwotIyBUaGlzIHNjcmlwdCBpcyBtZWFudCB0byBiZSBydW4gZWl0aGVyIGluIGEgcG9zdC1jb21taXQgaG9vayBvciBpbiBhbgotIyB1cGRhdGUgaG9vay4gVHJ5IGl0IHdpdGggLW4gdG8gc2VlIHRoZSBub3RpZmljYXRpb24gbWFpbCBkdW1wZWQgdG8KLSMgc3Rkb3V0IGFuZCB2ZXJpZnkgdGhhdCBpdCBsb29rcyBzYW5lLiBXaXRoIC1WIGl0IGR1bXBzIGl0cyB2ZXJzaW9uCi0jIGFuZCBleGl0cy4KLSMKLSMgSW4gcG9zdC1jb21taXQsIHJ1biBpdCB3aXRob3V0IGFyZ3VtZW50cy4gSXQgd2lsbCBxdWVyeSBmb3IKLSMgY3VycmVudCBIRUFEIGFuZCB0aGUgbGF0ZXN0IGNvbW1pdCBJRCB0byBnZXQgdGhlIGluZm9ybWF0aW9uIGl0Ci0jIG5lZWRzLgotIwotIyBJbiB1cGRhdGUsIGNhbGwgaXQgd2l0aCBhIHJlZm5hbWUgZm9sbG93ZWQgYnkgYSBsaXN0IG9mIGNvbW1pdHM6Ci0jIFlvdSB3YW50IHRvIHJldmVyc2UgdGhlIG9yZGVyIGdpdCByZXYtbGlzdCBlbWl0cyBiZWNhdXNlIGl0IGxpc3RzCi0jIGZyb20gbW9zdCByZWNlbnQgdG8gb2xkZXN0LgotIwotIyAvcGF0aC90by9jaWFib3QucHkgJHtyZWZuYW1lfSAkKGdpdCByZXYtbGlzdCAke29sZGhlYWR9Li4ke25ld2hlYWR9IHwgdGFjKQotIwotIyBDb25maWd1cmF0aW9uIHZhcmlhYmxlcyBhZmZlY3RpbmcgdGhpcyBzY3JpcHQ6Ci0jCi0jIGNpYWJvdC5wcm9qZWN0ID0gbmFtZSBvZiB0aGUgcHJvamVjdAotIyBjaWFib3QucmVwbyA9IG5hbWUgb2YgdGhlIHByb2plY3QgcmVwbyBmb3IgZ2l0d2ViL2NnaXQgcHVycG9zZXMKLSMgY2lhYm90LnhtbHJwYyAgPSBpZiB0cnVlIChkZWZhdWx0KSwgc2hpcCBub3RpZmljYXRpb25zIHZpYSBYTUwtUlBDCi0jIGNpYWJvdC5yZXZmb3JtYXQgPSBmb3JtYXQgaW4gd2hpY2ggdGhlIHJldmlzaW9uIGlzIHNob3duCi0jCi0jIGNpYWJvdC5wcm9qZWN0IGRlZmF1bHRzIHRvIHRoZSBkaXJlY3RvcnkgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeSB0b3BsZXZlbC4KLSMgY2lhYm90LnJlcG8gZGVmYXVsdHMgdG8gY2lhYm90LnByb2plY3QgbG93ZXJjYXNlZC4KLSMKLSMgVGhpcyBtZWFucyB0aGF0IGluIHRoZSBub3JtYWwgY2FzZSB5b3UgbmVlZCBub3QgZG8gYW55IGNvbmZpZ3VyYXRpb24gYXQgYWxsLAotIyBidXQgc2V0dGluZyB0aGUgcHJvamVjdCBuYW1lIHdpbGwgc3BlZWQgaXQgdXAgc2xpZ2h0bHkuCi0jCi0jIFRoZSByZXZmb3JtYXQgdmFyaWFibGUgbWF5IGhhdmUgdGhlIGZvbGxvd2luZyB2YWx1ZXMKLSMgcmF3IC0+IGZ1bGwgaGV4IElEIG9mIGNvbW1pdAotIyBzaG9ydCAtPiBmaXJzdCAxMiBjaGFycyBvZiBoZXggSUQKLSMgZGVzY3JpYmUgPSAtPiBkZXNjcmliZSByZWxhdGl2ZSB0byBsYXN0IHRhZywgZmFsbGluZyBiYWNrIHRvIHNob3J0Ci0jIFRoZSBkZWZhdWx0IGlzICdkZXNjcmliZScuCi0jCi0jIE5vdGU6IHRoZSBDSUEgcHJvamVjdCBub3cgc2F5cyBvbmx5IFhNTC1SUEMgaXMgcmVsaWFibGUsIHNvCi0jIHdlIGRlZmF1bHQgdG8gdGhhdC4KLSMKLQotaW1wb3J0IHN5cwotaWYgc3lzLmhleHZlcnNpb24gPCAweDAyMDAwMDAwOgotICAgICAgICAjIFRoZSBsaW1pdGVyIGlzIHRoZSB4bWwuc2F4IG1vZHVsZQotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJjaWFib3QucHk6IHJlcXVpcmVzIFB5dGhvbiAyLjAuMCBvciBsYXRlci5cbiIpCi0gICAgICAgIHN5cy5leGl0KDEpCi0KLWltcG9ydCBvcywgY29tbWFuZHMsIHNvY2tldCwgdXJsbGliCi1mcm9tIHhtbC5zYXguc2F4dXRpbHMgaW1wb3J0IGVzY2FwZQotCi0jIENoYW5nZXNldCBVUkwgcHJlZml4IGZvciB5b3VyIHJlcG86IHdoZW4gdGhlIGNvbW1pdCBJRCBpcyBhcHBlbmRlZAotIyB0byB0aGlzLCBpdCBzaG91bGQgcG9pbnQgYXQgYSBDR0kgdGhhdCB3aWxsIGRpc3BsYXkgdGhlIGNvbW1pdAotIyB0aHJvdWdoIGdpdHdlYiBvciBzb21ldGhpbmcgc2ltaWxhci4gVGhlIGRlZmF1bHRzIHdpbGwgcHJvYmFibHkKLSMgd29yayBpZiB5b3UgaGF2ZSBhIHR5cGljYWwgZ2l0d2ViL2NnaXQgc2V0dXAuCi0jCi0jdXJscHJlZml4PSJodHRwOi8vJShob3N0KXMvY2dpLWJpbi9naXR3ZWIuY2dpP3A9JShyZXBvKXM7YT1jb21taXQ7aD0iCi11cmxwcmVmaXg9Imh0dHA6Ly8lKGhvc3Qpcy9jZ2ktYmluL2NnaXQuY2dpLyUocmVwbylzL2NvbW1pdC8/aWQ9IgotCi0jIFRoZSBzZXJ2aWNlIHVzZWQgdG8gdHVybiB5b3VyIGdpdHdlYmJpc2ggVVJMIGludG8gYSB0aW55dXJsIHNvIGl0Ci0jIHdpbGwgdGFrZSB1cCBsZXNzIHNwYWNlIG9uIHRoZSBJUkMgbm90aWZpY2F0aW9uIGxpbmUuCi10aW55aWZpZXIgPSAiaHR0cDovL3Rpbnl1cmwuY29tL2FwaS1jcmVhdGUucGhwP3VybD0iCi0KLSMgVGhlIHRlbXBsYXRlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIFhNTCBtZXNzYWdlcyB0byBDSUEuICBZb3UgY2FuIG1ha2UKLSMgdmlzaWJsZSBjaGFuZ2VzIHRvIHRoZSBJUkMtYm90IG5vdGlmaWNhdGlvbiBsaW5lcyBieSBoYWNraW5nIHRoaXMuCi0jIFRoZSBkZWZhdWx0IHdpbGwgcHJvZHVjZSBhIG5vdGlmaWNhdGlvbiBsaW5lIHRoYXQgbG9va3MgbGlrZSB0aGlzOgotIwotIyAke3Byb2plY3R9OiAke2F1dGhvcn0gJHtyZXBvfToke2JyYW5jaH0gKiAke3Jldn0gJHtmaWxlc306ICR7bG9nbXNnfSAke3VybH0KLSMKLSMgQnkgb21pdHRpbmcgJGZpbGVzIHlvdSBjYW4gY29sbGFwc2UgdGhlIGZpbGVzIHBhcnQgdG8gYSBzaW5nbGUgc2xhc2guCi14bWwgPSAnJydcCi08bWVzc2FnZT4KLSAgPGdlbmVyYXRvcj4KLSAgICA8bmFtZT5DSUEgUHl0aG9uIGNsaWVudCBmb3IgR2l0PC9uYW1lPgotICAgIDx2ZXJzaW9uPiUodmVyc2lvbilzPC92ZXJzaW9uPgotICAgIDx1cmw+JShnZW5lcmF0b3IpczwvdXJsPgotICA8L2dlbmVyYXRvcj4KLSAgPHNvdXJjZT4KLSAgICA8cHJvamVjdD4lKHByb2plY3QpczwvcHJvamVjdD4KLSAgICA8YnJhbmNoPiUocmVwbylzOiUoYnJhbmNoKXM8L2JyYW5jaD4KLSAgPC9zb3VyY2U+Ci0gIDx0aW1lc3RhbXA+JSh0cylzPC90aW1lc3RhbXA+Ci0gIDxib2R5PgotICAgIDxjb21taXQ+Ci0gICAgICA8YXV0aG9yPiUoYXV0aG9yKXM8L2F1dGhvcj4KLSAgICAgIDxyZXZpc2lvbj4lKHJldilzPC9yZXZpc2lvbj4KLSAgICAgIDxmaWxlcz4KLSAgICAgICAgJShmaWxlcylzCi0gICAgICA8L2ZpbGVzPgotICAgICAgPGxvZz4lKGxvZ21zZylzICUodXJsKXM8L2xvZz4KLSAgICAgIDx1cmw+JSh1cmwpczwvdXJsPgotICAgIDwvY29tbWl0PgotICA8L2JvZHk+Ci08L21lc3NhZ2U+Ci0nJycKLQotIwotIyBObyB1c2VyLXNlcnZpY2VhYmxlIHBhcnRzIGJlbG93IHRoaXMgbGluZToKLSMKLQotIyBXaGVyZSB0byBzaGlwIGUtbWFpbCBub3RpZmljYXRpb25zLgotdG9hZGRyID0gImNpYUBjaWEudmMiCi0KLSMgSWRlbnRpZnkgdGhlIGdlbmVyYXRvciBzY3JpcHQuCi0jIFNob3VsZCBvbmx5IGNoYW5nZSB3aGVuIHRoZSBzY3JpcHQgaXRzZWxmIGdldHMgYSBuZXcgaG9tZSBhbmQgbWFpbnRhaW5lci4KLWdlbmVyYXRvciA9ICJodHRwOi8vd3d3LmNhdGIub3JnL35lc3IvY2lhYm90LnB5IgotdmVyc2lvbiA9ICIzLjYiCi0KLWRlZiBkbyhjb21tYW5kKToKLSAgICByZXR1cm4gY29tbWFuZHMuZ2V0c3RhdHVzb3V0cHV0KGNvbW1hbmQpWzFdCi0KLWRlZiByZXBvcnQocmVmbmFtZSwgbWVyZ2VkLCB4bWxycGM9VHJ1ZSk6Ci0gICAgIkdlbmVyYXRlIGEgY29tbWl0IG5vdGlmaWNhdGlvbiB0byBiZSByZXBvcnRlZCB0byBDSUEiCi0KLSAgICAjIFRyeSB0byB0aW55ZnkgYSByZWZlcmVuY2UgdG8gYSB3ZWIgdmlldyBmb3IgdGhpcyBjb21taXQuCi0gICAgdHJ5OgotICAgICAgICB1cmwgPSBvcGVuKHVybGxpYi51cmxyZXRyaWV2ZSh0aW55aWZpZXIgKyB1cmxwcmVmaXggKyBtZXJnZWQpWzBdKS5yZWFkKCkKLSAgICBleGNlcHQ6Ci0gICAgICAgIHVybCA9IHVybHByZWZpeCArIG1lcmdlZAotCi0gICAgYnJhbmNoID0gb3MucGF0aC5iYXNlbmFtZShyZWZuYW1lKQotCi0gICAgIyBDb21wdXRlIGEgZGVzY3JpcHRpb24gZm9yIHRoZSByZXZpc2lvbgotICAgIGlmIHJldmZvcm1hdCA9PSAncmF3JzoKLSAgICAgICAgcmV2ID0gbWVyZ2VkCi0gICAgZWxpZiByZXZmb3JtYXQgPT0gJ3Nob3J0JzoKLSAgICAgICAgcmV2ID0gJycKLSAgICBlbHNlOiAjIHJldmZvcm1hdCA9PSAnZGVzY3JpYmUnCi0gICAgICAgIHJldiA9IGRvKCJnaXQgZGVzY3JpYmUgJXMgMj4vZGV2L251bGwiICUgbWVyZ2VkKQotICAgIGlmIG5vdCByZXY6Ci0gICAgICAgIHJldiA9IG1lcmdlZFs6MTJdCi0KLSAgICAjIEV4dHJhY3QgdGhlIG1ldGEtaW5mb3JtYXRpb24gZm9yIHRoZSBjb21taXQKLSAgICBmaWxlcz1kbygiZ2l0IGRpZmYtdHJlZSAtciAtLW5hbWUtb25seSAnIisgbWVyZ2VkICsiJyB8IHNlZCAtZSAnMWQnIC1lICdzLS4qLTxmaWxlPiY8L2ZpbGU+LSciKQotICAgIG1ldGFpbmZvID0gZG8oImdpdCBsb2cgLTEgJy0tcHJldHR5PWZvcm1hdDolYW4gPCVhZT4lbiVhdCVuJXMnICIgKyBtZXJnZWQpCi0gICAgKGF1dGhvciwgdHMsIGxvZ21zZykgPSBtZXRhaW5mby5zcGxpdCgiXG4iKQotICAgIGxvZ21zZyA9IGVzY2FwZShsb2dtc2cpCi0KLSAgICAjIFRoaXMgZGlzY2FyZHMgdGhlIHBhcnQgb2YgdGhlIGF1dGhvcidzIGFkZHJlc3MgYWZ0ZXIgQC4KLSAgICAjIE1pZ2h0IGJlIGJlIG5pY2UgdG8gc2hpcCB0aGUgZnVsbCBlbWFpbCBhZGRyZXNzLCBpZiBub3QKLSAgICAjIGZvciBzcGFtbWVycycgYWRkcmVzcyBoYXJ2ZXN0ZXJzIC0gZ2V0dGluZyB0aGlzIHdyb25nCi0gICAgIyB3b3VsZCBtYWtlIHRoZSBmcmVlbm9kZSAjY29tbWl0cyBjaGFubmVsIGludG8gaGFydmVzdGVyIGhlYXZlbi4KLSAgICBhdXRob3IgPSBlc2NhcGUoYXV0aG9yLnJlcGxhY2UoIjwiLCAiIikuc3BsaXQoIkAiKVswXS5zcGxpdCgpWy0xXSkKLQotICAgICMgVGhpcyBpZ25vcmVzIHRoZSB0aW1lem9uZS4gIE5vdCBjbGVhciB3aGF0IHRvIGRvIHdpdGggaXQuLi4KLSAgICB0cyA9IHRzLnN0cmlwKCkuc3BsaXQoKVswXQotCi0gICAgY29udGV4dCA9IGxvY2FscygpCi0gICAgY29udGV4dC51cGRhdGUoZ2xvYmFscygpKQotCi0gICAgb3V0ID0geG1sICUgY29udGV4dAotICAgIG1haWwgPSAnJydcCi1NZXNzYWdlLUlEOiA8JShtZXJnZWQpcy4lKGF1dGhvcilzQCUocHJvamVjdClzPgotRnJvbTogJShmcm9tYWRkcilzCi1UbzogJSh0b2FkZHIpcwotQ29udGVudC10eXBlOiB0ZXh0L3htbAotU3ViamVjdDogRGVsaXZlclhNTAotCi0lKG91dClzJycnICUgbG9jYWxzKCkKLQotICAgIGlmIHhtbHJwYzoKLSAgICAgICAgcmV0dXJuIG91dAotICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiBtYWlsCi0KLWlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0gICAgaW1wb3J0IGdldG9wdAotCi0gICAgIyBHZXQgYWxsIGNvbmZpZyB2YXJpYWJsZXMKLSAgICByZXZmb3JtYXQgPSBkbygiZ2l0IGNvbmZpZyAtLWdldCBjaWFib3QucmV2Zm9ybWF0IikKLSAgICBwcm9qZWN0ID0gZG8oImdpdCBjb25maWcgLS1nZXQgY2lhYm90LnByb2plY3QiKQotICAgIHJlcG8gPSBkbygiZ2l0IGNvbmZpZyAtLWdldCBjaWFib3QucmVwbyIpCi0gICAgeG1scnBjID0gZG8oImdpdCBjb25maWcgLS1nZXQgY2lhYm90LnhtbHJwYyIpCi0gICAgeG1scnBjID0gbm90ICh4bWxycGMgYW5kIHhtbHJwYyA9PSAiZmFsc2UiKQotCi0gICAgaG9zdCA9IHNvY2tldC5nZXRmcWRuKCkKLSAgICBmcm9tYWRkciA9ICJDSUFCT1QtTk9SRVBMWUAiICsgaG9zdAotCi0gICAgdHJ5OgotICAgICAgICAob3B0aW9ucywgYXJndW1lbnRzKSA9IGdldG9wdC5nZXRvcHQoc3lzLmFyZ3ZbMTpdLCAibnA6eFYiKQotICAgIGV4Y2VwdCBnZXRvcHQuR2V0b3B0RXJyb3IsIG1zZzoKLSAgICAgICAgcHJpbnQgImNpYWJvdC5weTogIiArIHN0cihtc2cpCi0gICAgICAgIHJhaXNlIFN5c3RlbUV4aXQsIDEKLQotICAgIG5vdGlmeSA9IFRydWUKLSAgICBmb3IgKHN3aXRjaCwgdmFsKSBpbiBvcHRpb25zOgotICAgICAgICBpZiBzd2l0Y2ggPT0gJy1wJzoKLSAgICAgICAgICAgIHByb2plY3QgPSB2YWwKLSAgICAgICAgZWxpZiBzd2l0Y2ggPT0gJy1uJzoKLSAgICAgICAgICAgIG5vdGlmeSA9IEZhbHNlCi0gICAgICAgIGVsaWYgc3dpdGNoID09ICcteCc6Ci0gICAgICAgICAgICB4bWxycGMgPSBUcnVlCi0gICAgICAgIGVsaWYgc3dpdGNoID09ICctVic6Ci0gICAgICAgICAgICBwcmludCAiY2lhYm90LnB5OiB2ZXJzaW9uIiwgdmVyc2lvbgotICAgICAgICAgICAgc3lzLmV4aXQoMCkKLQotICAgICMgVGhlIHByb2plY3QgdmFyaWFibGUgZGVmYXVsdHMgdG8gdGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkgdG9wbGV2ZWwuCi0gICAgaWYgbm90IHByb2plY3Q6Ci0gICAgICAgIGhlcmUgPSBvcy5nZXRjd2QoKQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKGhlcmUsICIuZ2l0IikpOgotICAgICAgICAgICAgICAgIHByb2plY3QgPSBvcy5wYXRoLmJhc2VuYW1lKGhlcmUpCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGVsaWYgaGVyZSA9PSAnLyc6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiY2lhYm90LnB5OiBubyAuZ2l0IGJlbG93IHJvb3QhXG4iKQotICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAgICAgICBoZXJlID0gb3MucGF0aC5kaXJuYW1lKGhlcmUpCi0KLSAgICBpZiBub3QgcmVwbzoKLSAgICAgICAgcmVwbyA9IHByb2plY3QubG93ZXIoKQotCi0gICAgdXJscHJlZml4ID0gdXJscHJlZml4ICUgZ2xvYmFscygpCi0KLSAgICAjIFRoZSBzY3JpcHQgd2FudHMgYSByZWZlcmVuY2UgdG8gaGVhZCBmb2xsb3dlZCBieSB0aGUgbGlzdCBvZgotICAgICMgY29tbWl0IElEIHRvIHJlcG9ydCBhYm91dC4KLSAgICBpZiBsZW4oYXJndW1lbnRzKSA9PSAwOgotICAgICAgICByZWZuYW1lID0gZG8oImdpdCBzeW1ib2xpYy1yZWYgSEVBRCAyPi9kZXYvbnVsbCIpCi0gICAgICAgIG1lcmdlcyA9IFtkbygiZ2l0IHJldi1wYXJzZSBIRUFEIildCi0gICAgZWxzZToKLSAgICAgICAgcmVmbmFtZSA9IGFyZ3VtZW50c1swXQotICAgICAgICBtZXJnZXMgPSBhcmd1bWVudHNbMTpdCi0KLSAgICBpZiBub3RpZnk6Ci0gICAgICAgIGlmIHhtbHJwYzoKLSAgICAgICAgICAgIGltcG9ydCB4bWxycGNsaWIKLSAgICAgICAgICAgIHNlcnZlciA9IHhtbHJwY2xpYi5TZXJ2ZXIoJ2h0dHA6Ly9jaWEudmMvUlBDMicpOwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaW1wb3J0IHNtdHBsaWIKLSAgICAgICAgICAgIHNlcnZlciA9IHNtdHBsaWIuU01UUCgnbG9jYWxob3N0JykKLQotICAgIGZvciBtZXJnZWQgaW4gbWVyZ2VzOgotICAgICAgICBtZXNzYWdlID0gcmVwb3J0KHJlZm5hbWUsIG1lcmdlZCwgeG1scnBjKQotICAgICAgICBpZiBub3Qgbm90aWZ5OgotICAgICAgICAgICAgcHJpbnQgbWVzc2FnZQotICAgICAgICBlbGlmIHhtbHJwYzoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAjIFJQQyBzZXJ2ZXIgaXMgZmxha3ksIHRoaXMgY2FuIGZhaWwgZHVlIHRvIHRpbWVvdXQuCi0gICAgICAgICAgICAgICAgc2VydmVyLmh1Yi5kZWxpdmVyKG1lc3NhZ2UpCi0gICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yLCBlOgotICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIiVzXG4iICUgZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlcnZlci5zZW5kbWFpbChmcm9tYWRkciwgW3RvYWRkcl0sIG1lc3NhZ2UpCi0KLSAgICBpZiBub3RpZnk6Ci0gICAgICAgIGlmIG5vdCB4bWxycGM6Ci0gICAgICAgICAgICBzZXJ2ZXIucXVpdCgpCi0KLSNFbmQKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2lhYm90L2NpYWJvdC5zaCBiL2NvbnRyaWIvY2lhYm90L2NpYWJvdC5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZGZiNzFhMS4uMDAwMDAwMAotLS0gYS9jb250cmliL2NpYWJvdC9jaWFib3Quc2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMzMgKzAsMCBAQAotIyEvYmluL3NoCi0jIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjIKLSMgQ29weXJpZ2h0IChjKSAyMDA2IEZlcm5hbmRvIEouIFBlcmVkYSA8ZmVyZHlAZ2VudG9vLm9yZz4KLSMgQ29weXJpZ2h0IChjKSAyMDA4IE5hdGFuYWVsIENvcGEgPG5hdGFuYWVsLmNvcGFAZ21haWwuY29tPgotIyBDb3B5cmlnaHQgKGMpIDIwMTAgRXJpYyBTLiBSYXltb25kIDxlc3JAdGh5cnN1cy5jb20+Ci0jIEFzc2lzdGFuY2UgYW5kIHJldmlldyBieSBQZXRyIEJhdWRpcywgYXV0aG9yIG9mIGNpYWJvdC5wbCwKLSMgaXMgZ3JhdGVmdWxseSBhY2tub3dsZWRnZWQuCi0jCi0jIFRoaXMgaXMgYSB2ZXJzaW9uIDMueCBvZiBjaWFib3Quc2g7IHVzZSAtViB0byBmaW5kIHRoZSBleGFjdAotIyB2ZXJzaW9uLiAgVmVyc2lvbnMgMSBhbmQgMiB3ZXJlIHNoaXBwZWQgaW4gMjAwNiBhbmQgMjAwOCBhbmQgYXJlIG5vdAotIyB2ZXJzaW9uLXN0YW1wZWQuICBUaGUgdmVyc2lvbiAyIG1haW50YWluZXIgaGFzIHBhc3NlZCB0aGUgYmF0b24uCi0jCi0jIE5vdGU6IFRoaXMgc2NyaXB0IHNob3VsZCBiZSBjb25zaWRlcmVkIG9ic29sZXRlLgotIyBUaGVyZSBpcyBhIGZhc3RlciwgYmV0dGVyLWRvY3VtZW50ZWQgcmV3cml0ZSBpbiBQeXRob246IGZpbmQgaXQgYXMgY2lhYm90LnB5Ci0jIFVzZSB0aGlzIG9ubHkgaWYgeW91ciBob3N0aW5nIHNpdGUgZm9yYmlkcyBQeXRob24gaG9va3MuCi0jIEl0IHJlcXVpcmVzOiBnaXQoMSksIGhvc3RuYW1lKDEpLCBjdXQoMSksIHNlbmRtYWlsKDEpLCBhbmQgd2dldCgxKS4KLSMKLSMgT3JpZ2luYWxseSBiYXNlZCBvbiBHaXQgY2lhYm90LnBsIGJ5IFBldHIgQmF1ZGlzLgotIyBUaGlzIHNjcmlwdCBjb250YWlucyBwb3JjZWxhaW4gYW5kIHBvcmNlbGFpbiBieXByb2R1Y3RzLgotIwotIyB1c2FnZTogY2lhYm90LnNoIFstVl0gWy1uXSBbLXAgcHJvamVjdG5hbWVdIFtyZWZuYW1lIGNvbW1pdF0KLSMKLSMgVGhpcyBzY3JpcHQgaXMgbWVhbnQgdG8gYmUgcnVuIGVpdGhlciBpbiBhIHBvc3QtY29tbWl0IGhvb2sgb3IgaW4gYW4KLSMgdXBkYXRlIGhvb2suIFRyeSBpdCB3aXRoIC1uIHRvIHNlZSB0aGUgbm90aWZpY2F0aW9uIG1haWwgZHVtcGVkIHRvCi0jIHN0ZG91dCBhbmQgdmVyaWZ5IHRoYXQgaXQgbG9va3Mgc2FuZS4gV2l0aCAtViBpdCBkdW1wcyBpdHMgdmVyc2lvbgotIyBhbmQgZXhpdHMuCi0jCi0jIEluIHBvc3QtY29tbWl0LCBydW4gaXQgd2l0aG91dCBhcmd1bWVudHMuIEl0IHdpbGwgcXVlcnkgZm9yCi0jIGN1cnJlbnQgSEVBRCBhbmQgdGhlIGxhdGVzdCBjb21taXQgSUQgdG8gZ2V0IHRoZSBpbmZvcm1hdGlvbiBpdAotIyBuZWVkcy4KLSMKLSMgSW4gdXBkYXRlLCB5b3UgaGF2ZSB0byBjYWxsIGl0IG9uY2UgcGVyIG1lcmdlZCBjb21taXQ6Ci0jCi0jICAgICAgIHJlZm5hbWU9JDEKLSMgICAgICAgb2xkaGVhZD0kMgotIyAgICAgICBuZXdoZWFkPSQzCi0jICAgICAgIGZvciBtZXJnZWQgaW4gJChnaXQgcmV2LWxpc3QgJHtvbGRoZWFkfS4uJHtuZXdoZWFkfSB8IHRhYykgOyBkbwotIyAgICAgICAgICAgICAgIC9wYXRoL3RvL2NpYWJvdC5zaCAke3JlZm5hbWV9ICR7bWVyZ2VkfQotIyAgICAgICBkb25lCi0jCi0jIFRoZSByZWFzb24gZm9yIHRoZSB0YWMgY2FsbCBpcyB0aGF0IGdpdCByZXYtbGlzdCBlbWl0cyBjb21taXRzIGZyb20KLSMgbW9zdCByZWNlbnQgdG8gbGVhc3QgLSBiZXR0ZXIgdG8gc2hpcCBub3RpZmljYXRpb25zIGZyb20gb2xkZXN0IHRvIG5ld2VzdC4KLSMKLSMgQ29uZmlndXJhdGlvbiB2YXJpYWJsZXMgYWZmZWN0aW5nIHRoaXMgc2NyaXB0OgotIwotIyBjaWFib3QucHJvamVjdCA9IG5hbWUgb2YgdGhlIHByb2plY3QKLSMgY2lhYm90LnJlcG8gPSBuYW1lIG9mIHRoZSBwcm9qZWN0IHJlcG8gZm9yIGdpdHdlYi9jZ2l0IHB1cnBvc2VzCi0jIGNpYWJvdC5yZXZmb3JtYXQgPSBmb3JtYXQgaW4gd2hpY2ggdGhlIHJldmlzaW9uIGlzIHNob3duCi0jCi0jIGNpYWJvdC5wcm9qZWN0IGRlZmF1bHRzIHRvIHRoZSBkaXJlY3RvcnkgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeSB0b3BsZXZlbC4KLSMgY2lhYm90LnJlcG8gZGVmYXVsdHMgdG8gY2lhYm90LnByb2plY3QgbG93ZXJjYXNlZC4KLSMKLSMgVGhpcyBtZWFucyB0aGF0IGluIHRoZSBub3JtYWwgY2FzZSB5b3UgbmVlZCBub3QgZG8gYW55IGNvbmZpZ3VyYXRpb24gYXQgYWxsLAotIyBidXQgc2V0dGluZyB0aGUgcHJvamVjdCBuYW1lIHdpbGwgc3BlZWQgaXQgdXAgc2xpZ2h0bHkuCi0jCi0jIFRoZSByZXZmb3JtYXQgdmFyaWFibGUgbWF5IGhhdmUgdGhlIGZvbGxvd2luZyB2YWx1ZXMKLSMgcmF3IC0+IGZ1bGwgaGV4IElEIG9mIGNvbW1pdAotIyBzaG9ydCAtPiBmaXJzdCAxMiBjaGFycyBvZiBoZXggSUQKLSMgZGVzY3JpYmUgPSAtPiBkZXNjcmliZSByZWxhdGl2ZSB0byBsYXN0IHRhZywgZmFsbGluZyBiYWNrIHRvIHNob3J0Ci0jIFRoZSBkZWZhdWx0IGlzICdkZXNjcmliZScuCi0jCi0jIE5vdGU6IHRoZSBzaGVsbCBhbmNlc3RvcnMgb2YgdGhpcyBzY3JpcHQgdXNlZCBtYWlsLCBub3QgWE1MLVJQQywgaW4KLSMgb3JkZXIgdG8gYXZvaWQgc3RhbGxpbmcgdW50aWwgdGltZW91dCB3aGVuIHRoZSBDSUEgWE1MLVJQQyBzZXJ2ZXIgaXMKLSMgZG93bi4gSXQgaXMgdW5rbm93biB3aGV0aGVyIHRoaXMgaXMgc3RpbGwgYW4gaXNzdWUgaW4gMjAxMCwgYnV0Ci0jIFhNTC1SUEMgd291bGQgYmUgYW5ub3lpbmcgdG8gZG8gZnJvbSBzaCBpbiBhbnkgY2FzZS4gKFhNTC1SUEMgZG9lcwotIyBoYXZlIHRoZSBhZHZhbnRhZ2UgdGhhdCBpdCBndWFyYW50ZWVzIG5vdGlmaWNhdGlvbiBvZiBtdWx0aXBsZSBjb21taXRzCi0jIHNoaXBwZWQgZnJvbSBhbiB1cGRhdGUgaW4gdGhlaXIgYWN0dWFsIG9yZGVyLikKLSMKLQotIyBUaGUgcHJvamVjdCBhcyBrbm93biB0byBDSUEuIFlvdSBjYW4gc2V0IHRoaXMgd2l0aCBhIC1wIG9wdGlvbiwKLSMgb3IgbGV0IGl0IGRlZmF1bHQgdG8gdGhlIGRpcmVjdG9yeSBuYW1lIG9mIHRoZSByZXBvIHRvcGxldmVsLgotcHJvamVjdD0kKGdpdCBjb25maWcgLS1nZXQgY2lhYm90LnByb2plY3QpCi0KLWlmIFsgLXogJHByb2plY3QgXQotdGhlbgotICAgIGhlcmU9YHB3ZGA7Ci0gICAgd2hpbGUgOjsgZG8KLQlpZiBbIC1kICRoZXJlLy5naXQgXQotCXRoZW4KLQkgICAgcHJvamVjdD1gYmFzZW5hbWUgJGhlcmVgCi0JICAgIGJyZWFrCi0JZWxpZiBbICRoZXJlID0gJy8nIF0KLQl0aGVuCi0JICAgIGVjaG8gImNpYWJvdC5zaDogbm8gLmdpdCBiZWxvdyByb290ISIKLQkgICAgZXhpdCAxCi0JZmkKLQloZXJlPWBkaXJuYW1lICRoZXJlYAotICAgIGRvbmUKLWZpCi0KLSMgTmFtZSBvZiB0aGUgcmVwbyBmb3IgZ2l0d2ViL2NnaXQgcHVycG9zZXMKLXJlcG89JChnaXQgY29uZmlnIC0tZ2V0IGNpYWJvdC5yZXBvKQotWyAteiAkcmVwb10gJiYgcmVwbz0kKGVjaG8gIiR7cHJvamVjdH0iIHwgdHIgJ1tBLVpdJyAnW2Etel0nKQotCi0jIFdoYXQgcmV2aXNpb24gZm9ybWF0IGRvIHdlIHdhbnQgaW4gdGhlIHN1bW1hcnk/Ci1yZXZmb3JtYXQ9JChnaXQgY29uZmlnIC0tZ2V0IGNpYWJvdC5yZXZmb3JtYXQpCi0KLSMgRnVsbHkgcXVhbGlmaWVkIGRvbWFpbiBuYW1lIG9mIHRoZSByZXBvIGhvc3QuICBZb3UgY2FuIGhhcmR3aXJlIHRoaXMKLSMgdG8gbWFrZSB0aGUgc2NyaXB0IGZhc3Rlci4gVGhlIC1mIG9wdGlvbiB3b3JrcyB1bmRlciBMaW51eCBhbmQgRnJlZUJTRCwKLSMgYnV0IG5vdCBPcGVuQlNEIGFuZCBOZXRCU0QuIEJ1dCB1bmRlciBPcGVuQlNEIGFuZCBOZXRCU0QsCi0jIGhvc3RuYW1lIHdpdGhvdXQgb3B0aW9ucyBnaXZlcyB0aGUgRlFETi4KLWlmIGhvc3RuYW1lIC1mID4vZGV2L251bGwgMj4mMQotdGhlbgotICAgIGhvc3RuYW1lPWBob3N0bmFtZSAtZmAKLWVsc2UKLSAgICBob3N0bmFtZT1gaG9zdG5hbWVgCi1maQotCi0jIENoYW5nZXNldCBVUkwgcHJlZml4IGZvciB5b3VyIHJlcG86IHdoZW4gdGhlIGNvbW1pdCBJRCBpcyBhcHBlbmRlZAotIyB0byB0aGlzLCBpdCBzaG91bGQgcG9pbnQgYXQgYSBDR0kgdGhhdCB3aWxsIGRpc3BsYXkgdGhlIGNvbW1pdAotIyB0aHJvdWdoIGdpdHdlYiBvciBzb21ldGhpbmcgc2ltaWxhci4gVGhlIGRlZmF1bHRzIHdpbGwgcHJvYmFibHkKLSMgd29yayBpZiB5b3UgaGF2ZSBhIHR5cGljYWwgZ2l0d2ViL2NnaXQgc2V0dXAuCi0jdXJscHJlZml4PSJodHRwOi8vJHtob3N0fS9jZ2ktYmluL2dpdHdlYi5jZ2k/cD0ke3JlcG99O2E9Y29tbWl0O2g9IgotdXJscHJlZml4PSJodHRwOi8vJHtob3N0fS9jZ2ktYmluL2NnaXQuY2dpLyR7cmVwb30vY29tbWl0Lz9pZD0iCi0KLSMKLSMgWW91IHByb2JhYmx5IHdpbGwgbm90IG5lZWQgdG8gY2hhbmdlIHRoZSBmb2xsb3dpbmc6Ci0jCi0KLSMgSWRlbnRpZnkgdGhlIHNjcmlwdC4gVGhlICdnZW5lcmF0b3InIHZhcmlhYmxlIHNob3VsZCBjaGFuZ2Ugb25seQotIyB3aGVuIHRoZSBzY3JpcHQgaXRzZWxmIGdldHMgYSBuZXcgaG9tZSBhbmQgbWFpbnRhaW5lci4KLWdlbmVyYXRvcj0iaHR0cDovL3d3dy5jYXRiLm9yZy9+ZXNyL2NpYWJvdC9jaWFib3Quc2giCi12ZXJzaW9uPTMuNQotCi0jIEFkZHJlc3NlcyBmb3IgdGhlIGUtbWFpbAotZnJvbT0iQ0lBQk9ULU5PUkVQTFlAJHtob3N0bmFtZX0iCi10bz0iY2lhQGNpYS52YyIKLQotIyBTTVRQIGNsaWVudCB0byB1c2UgLSBtYXkgbmVlZCB0byBlZGl0IHRoZSBhYnNvbHV0ZSBwYXRobmFtZSBmb3IgeW91ciBzeXN0ZW0KLXNlbmRtYWlsPSJzZW5kbWFpbCAtdCAtZiAke2Zyb219IgotCi0jCi0jIE5vIHVzZXItc2VydmljZWFibGUgcGFydHMgYmVsb3cgdGhpcyBsaW5lOgotIwotCi0jIFNob3VsZCBpbmNsdWRlIGFsbCBwbGFjZXMgc2VuZG1haWwgaXMgbGlrZWx5IHRvIGx1cmsuCi1QQVRIPSIkUEFUSDovdXNyL3NiaW4vIgotCi1tb2RlPW1haWxpdAotd2hpbGUgZ2V0b3B0cyBwblYgb3B0Ci1kbwotICAgIGNhc2UgJG9wdCBpbgotCXApIHByb2plY3Q9JDI7IHNoaWZ0IDsgc2hpZnQgOzsKLQluKSBtb2RlPWR1bXBpdDsgc2hpZnQgOzsKLQlWKSBlY2hvICJjaWFib3Quc2g6IHZlcnNpb24gJHZlcnNpb24iOyBleGl0IDA7IHNoaWZ0IDs7Ci0gICAgZXNhYwotZG9uZQotCi0jIENvdWdoIGFuZCBkaWUgaWYgdXNlciBoYXMgbm90IHNwZWNpZmllZCBhIHByb2plY3QKLWlmIFsgLXogIiRwcm9qZWN0IiBdCi10aGVuCi0gICAgZWNobyAiY2lhYm90LnNoOiBubyBwcm9qZWN0IHNwZWNpZmllZCwgYmFpbGluZyBvdXQuIiA+JjIKLSAgICBleGl0IDEKLWZpCi0KLWlmIFsgJCMgLWVxIDAgXSA7IHRoZW4KLQlyZWZuYW1lPSQoZ2l0IHN5bWJvbGljLXJlZiBIRUFEIDI+L2Rldi9udWxsKQotCW1lcmdlZD0kKGdpdCByZXYtcGFyc2UgSEVBRCkKLWVsc2UKLQlyZWZuYW1lPSQxCi0JbWVyZ2VkPSQyCi1maQotCi0jIFRoaXMgdHJpZXMgdG8gdHVybiB5b3VyIGdpdHdlYmJpc2ggVVJMIGludG8gYSB0aW55dXJsIHNvIGl0IHdpbGwgdGFrZSB1cAotIyBsZXNzIHNwYWNlIG9uIHRoZSBJUkMgbm90aWZpY2F0aW9uIGxpbmUuIFNvbWUgcmVwbyBzaXRlcyAoSSdtIGxvb2tpbmcgYXQKLSMgeW91LCBiZXJsaW9zLmRlISkgZm9yYmlkIHdnZXQgY2FsbHMgZm9yIHNlY3VyaXR5IHJlYXNvbnMuICBPbiB0aGVzZSwKLSMgdGhlIGNvZGUgd2lsbCBmYWxsIGJhY2sgdG8gdGhlIGZ1bGwgdW4tdGlueWZpZWQgVVJMLgotbG9uZ3VybD0ke3VybHByZWZpeH0ke21lcmdlZH0KLXVybD0kKHdnZXQgLU8gLSAtcSBodHRwOi8vdGlueXVybC5jb20vYXBpLWNyZWF0ZS5waHA/dXJsPSR7bG9uZ3VybH0gMj4vZGV2L251bGwpCi1pZiBbIC16ICIkdXJsIiBdOyB0aGVuCi0JdXJsPSIke2xvbmd1cmx9IgotZmkKLQotcmVmbmFtZT0ke3JlZm5hbWUjI3JlZnMvaGVhZHMvfQotCi1jYXNlICRyZXZmb3JtYXQgaW4KLXJhdykgcmV2PSRtZXJnZWQgOzsKLXNob3J0KSByZXY9JycgOzsKLSopIHJldj0kKGdpdCBkZXNjcmliZSAke21lcmdlZH0gMj4vZGV2L251bGwpIDs7Ci1lc2FjCi1bIC16ICR7cmV2fSBdICYmIHJldj0kKGVjaG8gIiRtZXJnZWQiIHwgY3V0IC1jIDEtMTIpCi0KLSMgV2UgZGlzY2FyZCB0aGUgcGFydCBvZiB0aGUgYXV0aG9yJ3MgYWRkcmVzcyBhZnRlciBALgotIyBNaWdodCBiZSBuaWNlIHRvIHNoaXAgdGhlIGZ1bGwgZW1haWwgYWRkcmVzcywgaWYgbm90Ci0jIGZvciBzcGFtbWVycycgYWRkcmVzcyBoYXJ2ZXN0ZXJzIC0gZ2V0dGluZyB0aGlzIHdyb25nCi0jIHdvdWxkIG1ha2UgdGhlIGZyZWVub2RlICNjb21taXRzIGNoYW5uZWwgaW50byBoYXJ2ZXN0ZXIgaGVhdmVuLgotYXV0aG9yPSQoZ2l0IGxvZyAtMSAnLS1wcmV0dHk9Zm9ybWF0OiVhbiA8JWFlPicgJG1lcmdlZCkKLWF1dGhvcj0kKGVjaG8gIiRhdXRob3IiIHwgc2VkIC1uIC1lICcvXi4qPFwoW15AXSpcKS4qJC9zLS1cMS1wJykKLQotbG9nbWVzc2FnZT0kKGdpdCBsb2cgLTEgJy0tcHJldHR5PWZvcm1hdDolcycgJG1lcmdlZCkKLXRzPSQoZ2l0IGxvZyAtMSAnLS1wcmV0dHk9Zm9ybWF0OiVhdCcgJG1lcmdlZCkKLWZpbGVzPSQoZ2l0IGRpZmYtdHJlZSAtciAtLW5hbWUtb25seSAke21lcmdlZH0gfCBzZWQgLWUgJzFkJyAtZSAncy0uKi08ZmlsZT4mPC9maWxlPi0nKQotCi1vdXQ9IgotPG1lc3NhZ2U+Ci0gIDxnZW5lcmF0b3I+Ci0gICAgPG5hbWU+Q0lBIFNoZWxsIGNsaWVudCBmb3IgR2l0PC9uYW1lPgotICAgIDx2ZXJzaW9uPiR7dmVyc2lvbn08L3ZlcnNpb24+Ci0gICAgPHVybD4ke2dlbmVyYXRvcn08L3VybD4KLSAgPC9nZW5lcmF0b3I+Ci0gIDxzb3VyY2U+Ci0gICAgPHByb2plY3Q+JHtwcm9qZWN0fTwvcHJvamVjdD4KLSAgICA8YnJhbmNoPiRyZXBvOiR7cmVmbmFtZX08L2JyYW5jaD4KLSAgPC9zb3VyY2U+Ci0gIDx0aW1lc3RhbXA+JHt0c308L3RpbWVzdGFtcD4KLSAgPGJvZHk+Ci0gICAgPGNvbW1pdD4KLSAgICAgIDxhdXRob3I+JHthdXRob3J9PC9hdXRob3I+Ci0gICAgICA8cmV2aXNpb24+JHtyZXZ9PC9yZXZpc2lvbj4KLSAgICAgIDxmaWxlcz4KLQkke2ZpbGVzfQotICAgICAgPC9maWxlcz4KLSAgICAgIDxsb2c+JHtsb2dtZXNzYWdlfSAke3VybH08L2xvZz4KLSAgICAgIDx1cmw+JHt1cmx9PC91cmw+Ci0gICAgPC9jb21taXQ+Ci0gIDwvYm9keT4KLTwvbWVzc2FnZT4iCi0KLWlmIFsgIiRtb2RlIiA9ICJkdW1waXQiIF0KLXRoZW4KLSAgICBzZW5kbWFpbD1jYXQKLWZpCi0KLSR7c2VuZG1haWx9IDw8IEVPTQotTWVzc2FnZS1JRDogPCR7bWVyZ2VkfS4ke2F1dGhvcn1AJHtwcm9qZWN0fT4KLUZyb206ICR7ZnJvbX0KLVRvOiAke3RvfQotQ29udGVudC10eXBlOiB0ZXh0L3htbAotU3ViamVjdDogRGVsaXZlclhNTAotJHtvdXR9Ci1FT00KLQotIyB2aW06IHNldCB0dz03MCA6CmRpZmYgLS1naXQgYS9jb250cmliL2NvbXBsZXRpb24vZ2l0LWNvbXBsZXRpb24uYmFzaCBiL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi5iYXNoCmluZGV4IGUxYjczMTMuLjk1MjUzNDMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi5iYXNoCisrKyBiL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi5iYXNoCkBAIC0xLDUgKzEsMyBAQAotIyFiYXNoCi0jCiAjIGJhc2gvenNoIGNvbXBsZXRpb24gc3VwcG9ydCBmb3IgY29yZSBHaXQuCiAjCiAjIENvcHlyaWdodCAoQykgMjAwNiwyMDA3IFNoYXduIE8uIFBlYXJjZSA8c3BlYXJjZUBzcGVhcmNlLm9yZz4KQEAgLTE4MCw5ICsxNzgsOSBAQAogfQogZmkKIAotX19naXRjb21wYWRkICgpCitfX2dpdGNvbXBhcHBlbmQgKCkKIHsKLQlsb2NhbCBpPTAKKwlsb2NhbCBpPSR7I0NPTVBSRVBMWVtAXX0KIAlmb3IgeCBpbiAkMTsgZG8KIAkJaWYgW1sgIiR4IiA9PSAiJDMiKiBdXTsgdGhlbgogCQkJQ09NUFJFUExZW2krK109IiQyJHgkNCIKQEAgLTE5MCw2ICsxODgsMTIgQEAKIAlkb25lCiB9CiAKK19fZ2l0Y29tcGFkZCAoKQoreworCUNPTVBSRVBMWT0oKQorCV9fZ2l0Y29tcGFwcGVuZCAiJEAiCit9CisKICMgR2VuZXJhdGVzIGNvbXBsZXRpb24gcmVwbHksIGFwcGVuZGluZyBhIHNwYWNlIHRvIHBvc3NpYmxlIGNvbXBsZXRpb24gd29yZHMsCiAjIGlmIG5lY2Vzc2FyeS4KICMgSXQgYWNjZXB0cyAxIHRvIDQgYXJndW1lbnRzOgpAQCAtMjIwLDYgKzIyNCwxNCBAQAogCWVzYWMKIH0KIAorIyBWYXJpYXRpb24gb2YgX19naXRjb21wX25sICgpIHRoYXQgYXBwZW5kcyB0byB0aGUgZXhpc3RpbmcgbGlzdCBvZgorIyBjb21wbGV0aW9uIGNhbmRpZGF0ZXMsIENPTVBSRVBMWS4KK19fZ2l0Y29tcF9ubF9hcHBlbmQgKCkKK3sKKwlsb2NhbCBJRlM9JCdcbicKKwlfX2dpdGNvbXBhcHBlbmQgIiQxIiAiJHsyLX0iICIkezMtJGN1cn0iICIkezQtIH0iCit9CisKICMgR2VuZXJhdGVzIGNvbXBsZXRpb24gcmVwbHkgZnJvbSBuZXdsaW5lLXNlcGFyYXRlZCBwb3NzaWJsZSBjb21wbGV0aW9uIHdvcmRzCiAjIGJ5IGFwcGVuZGluZyBhIHNwYWNlIHRvIGFsbCBvZiB0aGVtLgogIyBJdCBhY2NlcHRzIDEgdG8gNCBhcmd1bWVudHM6CkBAIC0yMzEsOCArMjQzLDggQEAKICMgICAgYXBwZW5kZWQuCiBfX2dpdGNvbXBfbmwgKCkKIHsKLQlsb2NhbCBJRlM9JCdcbicKLQlfX2dpdGNvbXBhZGQgIiQxIiAiJHsyLX0iICIkezMtJGN1cn0iICIkezQtIH0iCisJQ09NUFJFUExZPSgpCisJX19naXRjb21wX25sX2FwcGVuZCAiJEAiCiB9CiAKICMgR2VuZXJhdGVzIGNvbXBsZXRpb24gcmVwbHkgd2l0aCBjb21wZ2VuIGZyb20gbmV3bGluZS1zZXBhcmF0ZWQgcG9zc2libGUKQEAgLTY3Myw3ICs2ODUsNiBAQAogCQlpbmRleC1wYWNrKSAgICAgICA6IHBsdW1iaW5nOzsKIAkJaW5pdC1kYikgICAgICAgICAgOiBkZXByZWNhdGVkOzsKIAkJbG9jYWwtZmV0Y2gpICAgICAgOiBwbHVtYmluZzs7Ci0JCWxvc3QtZm91bmQpICAgICAgIDogaW5mcmVxdWVudDs7CiAJCWxzLWZpbGVzKSAgICAgICAgIDogcGx1bWJpbmc7OwogCQlscy1yZW1vdGUpICAgICAgICA6IHBsdW1iaW5nOzsKIAkJbHMtdHJlZSkgICAgICAgICAgOiBwbHVtYmluZzs7CkBAIC02ODcsMTQgKzY5OCwxMiBAQAogCQlwYWNrLXJlZnMpICAgICAgICA6IHBsdW1iaW5nOzsKIAkJcGFyc2UtcmVtb3RlKSAgICAgOiBwbHVtYmluZzs7CiAJCXBhdGNoLWlkKSAgICAgICAgIDogcGx1bWJpbmc7OwotCQlwZWVrLXJlbW90ZSkgICAgICA6IHBsdW1iaW5nOzsKIAkJcHJ1bmUpICAgICAgICAgICAgOiBwbHVtYmluZzs7CiAJCXBydW5lLXBhY2tlZCkgICAgIDogcGx1bWJpbmc7OwogCQlxdWlsdGltcG9ydCkgICAgICA6IGltcG9ydDs7CiAJCXJlYWQtdHJlZSkgICAgICAgIDogcGx1bWJpbmc7OwogCQlyZWNlaXZlLXBhY2spICAgICA6IHBsdW1iaW5nOzsKIAkJcmVtb3RlLSopICAgICAgICAgOiB0cmFuc3BvcnQ7OwotCQlyZXBvLWNvbmZpZykgICAgICA6IGRlcHJlY2F0ZWQ7OwogCQlyZXJlcmUpICAgICAgICAgICA6IHBsdW1iaW5nOzsKIAkJcmV2LWxpc3QpICAgICAgICAgOiBwbHVtYmluZzs7CiAJCXJldi1wYXJzZSkgICAgICAgIDogcGx1bWJpbmc7OwpAQCAtNzA3LDcgKzcxNiw2IEBACiAJCXNzaC0qKSAgICAgICAgICAgIDogdHJhbnNwb3J0OzsKIAkJc3RyaXBzcGFjZSkgICAgICAgOiBwbHVtYmluZzs7CiAJCXN5bWJvbGljLXJlZikgICAgIDogcGx1bWJpbmc7OwotCQl0YXItdHJlZSkgICAgICAgICA6IGRlcHJlY2F0ZWQ7OwogCQl1bnBhY2stZmlsZSkgICAgICA6IHBsdW1iaW5nOzsKIAkJdW5wYWNrLW9iamVjdHMpICAgOiBwbHVtYmluZzs7CiAJCXVwZGF0ZS1pbmRleCkgICAgIDogcGx1bWJpbmc7OwpAQCAtOTAxLDcgKzkwOSw3IEBACiAJZXNhYwogCiAJIyBYWFggc2hvdWxkIHdlIGNoZWNrIGZvciAtLXVwZGF0ZSBhbmQgLS1hbGwgb3B0aW9ucyA/Ci0JX19naXRfY29tcGxldGVfaW5kZXhfZmlsZSAiLS1vdGhlcnMgLS1tb2RpZmllZCIKKwlfX2dpdF9jb21wbGV0ZV9pbmRleF9maWxlICItLW90aGVycyAtLW1vZGlmaWVkIC0tZGlyZWN0b3J5IC0tbm8tZW1wdHktZGlyZWN0b3J5IgogfQogCiBfZ2l0X2FyY2hpdmUgKCkKQEAgLTEwNjMsNyArMTA3MSw3IEBACiAJZXNhYwogCiAJIyBYWFggc2hvdWxkIHdlIGNoZWNrIGZvciAteCBvcHRpb24gPwotCV9fZ2l0X2NvbXBsZXRlX2luZGV4X2ZpbGUgIi0tb3RoZXJzIgorCV9fZ2l0X2NvbXBsZXRlX2luZGV4X2ZpbGUgIi0tb3RoZXJzIC0tZGlyZWN0b3J5IgogfQogCiBfZ2l0X2Nsb25lICgpCkBAIC0xMTg4LDcgKzExOTYsNyBAQAogCV9fZ2l0X2NvbXBsZXRlX3Jldmxpc3RfZmlsZQogfQogCi1fX2dpdF9tZXJnZXRvb2xzX2NvbW1vbj0iZGlmZnVzZSBlY21lcmdlIGVtZXJnZSBrZGlmZjMgbWVsZCBvcGVuZGlmZgorX19naXRfbWVyZ2V0b29sc19jb21tb249ImRpZmZ1c2UgZGlmZm1lcmdlIGVjbWVyZ2UgZW1lcmdlIGtkaWZmMyBtZWxkIG9wZW5kaWZmCiAJCQl0a2RpZmYgdmltZGlmZiBndmltZGlmZiB4eGRpZmYgYXJheGlzIHA0bWVyZ2UgYmMzIGNvZGVjb21wYXJlCiAiCiAKQEAgLTE0OTEsNiArMTQ5OSwxMiBAQAogCiBfZ2l0X21lcmdlX2Jhc2UgKCkKIHsKKwljYXNlICIkY3VyIiBpbgorCS0tKikKKwkJX19naXRjb21wICItLW9jdG9wdXMgLS1pbmRlcGVuZGVudCAtLWlzLWFuY2VzdG9yIC0tZm9yay1wb2ludCIKKwkJcmV0dXJuCisJCTs7CisJZXNhYwogCV9fZ2l0Y29tcF9ubCAiJChfX2dpdF9yZWZzKSIKIH0KIApAQCAtMTYyMyw3ICsxNjM3LDcgQEAKIAkJCS0tcHJlc2VydmUtbWVyZ2VzIC0tc3RhdCAtLW5vLXN0YXQKIAkJCS0tY29tbWl0dGVyLWRhdGUtaXMtYXV0aG9yLWRhdGUgLS1pZ25vcmUtZGF0ZQogCQkJLS1pZ25vcmUtd2hpdGVzcGFjZSAtLXdoaXRlc3BhY2U9Ci0JCQktLWF1dG9zcXVhc2gKKwkJCS0tYXV0b3NxdWFzaCAtLWZvcmstcG9pbnQgLS1uby1mb3JrLXBvaW50CiAJCQkiCiAKIAkJcmV0dXJuCkBAIC0xODMzLDYgKzE4NDcsNyBAQAogCWJyYW5jaC4qKQogCQlsb2NhbCBwZng9IiR7Y3VyJS4qfS4iIGN1cl89IiR7Y3VyIyoufSIKIAkJX19naXRjb21wX25sICIkKF9fZ2l0X2hlYWRzKSIgIiRwZngiICIkY3VyXyIgIi4iCisJCV9fZ2l0Y29tcF9ubF9hcHBlbmQgJCdhdXRvc2V0dXBtZXJnZVxuYXV0b3NldHVwcmViYXNlXG4nICIkcGZ4IiAiJGN1cl8iCiAJCXJldHVybgogCQk7OwogCWd1aXRvb2wuKi4qKQpAQCAtMTg3NSw2ICsxODkwLDcgQEAKIAlyZW1vdGUuKikKIAkJbG9jYWwgcGZ4PSIke2N1ciUuKn0uIiBjdXJfPSIke2N1ciMqLn0iCiAJCV9fZ2l0Y29tcF9ubCAiJChfX2dpdF9yZW1vdGVzKSIgIiRwZngiICIkY3VyXyIgIi4iCisJCV9fZ2l0Y29tcF9ubF9hcHBlbmQgInB1c2hkZWZhdWx0IiAiJHBmeCIgIiRjdXJfIgogCQlyZXR1cm4KIAkJOzsKIAl1cmwuKi4qKQpAQCAtMTk5Nyw2ICsyMDEzLDcgQEAKIAkJZmV0Y2gudW5wYWNrTGltaXQKIAkJZm9ybWF0LmF0dGFjaAogCQlmb3JtYXQuY2MKKwkJZm9ybWF0LmNvdmVyTGV0dGVyCiAJCWZvcm1hdC5oZWFkZXJzCiAJCWZvcm1hdC5udW1iZXJlZAogCQlmb3JtYXQucHJldHR5CmRpZmYgLS1naXQgYS9jb250cmliL2NvbXBsZXRpb24vZ2l0LWNvbXBsZXRpb24udGNzaCBiL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi50Y3NoCmluZGV4IGVhYWNhZjAuLjYxMDRhNDIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi50Y3NoCisrKyBiL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi50Y3NoCkBAIC0xLDUgKzEsMyBAQAotIyF0Y3NoCi0jCiAjIHRjc2ggY29tcGxldGlvbiBzdXBwb3J0IGZvciBjb3JlIEdpdC4KICMKICMgQ29weXJpZ2h0IChDKSAyMDEyIE1hcmMgS2hvdXphbSA8bWFyYy5raG91emFtQGdtYWlsLmNvbT4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi56c2ggYi9jb250cmliL2NvbXBsZXRpb24vZ2l0LWNvbXBsZXRpb24uenNoCmluZGV4IGZhYzVlNzEuLjZiNzc5NjggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi56c2gKKysrIGIvY29udHJpYi9jb21wbGV0aW9uL2dpdC1jb21wbGV0aW9uLnpzaApAQCAtMzAsMTAgKzMwLDEwIEBACiAJbG9jYWwgLWEgbG9jYXRpb25zCiAJbG9jYWwgZQogCWxvY2F0aW9ucz0oCisJCSQoZGlybmFtZSAke2Z1bmNzb3VyY2V0cmFjZVsxXSU6Kn0pL2dpdC1jb21wbGV0aW9uLmJhc2gKIAkJJy9ldGMvYmFzaF9jb21wbGV0aW9uLmQvZ2l0JyAjIGZlZG9yYSwgb2xkIGRlYmlhbgogCQknL3Vzci9zaGFyZS9iYXNoLWNvbXBsZXRpb24vY29tcGxldGlvbnMvZ2l0JyAjIGFyY2gsIHVidW50dSwgbmV3IGRlYmlhbgogCQknL3Vzci9zaGFyZS9iYXNoLWNvbXBsZXRpb24vZ2l0JyAjIGdlbnRvbwotCQkkKGRpcm5hbWUgJHtmdW5jc291cmNldHJhY2VbMV0lOip9KS9naXQtY29tcGxldGlvbi5iYXNoCiAJCSkKIAlmb3IgZSBpbiAkbG9jYXRpb25zOyBkbwogCQl0ZXN0IC1mICRlICYmIHNjcmlwdD0iJGUiICYmIGJyZWFrCkBAIC03Niw2ICs3NiwxNCBAQAogCWNvbXBhZGQgLVEgLVMgIiR7NC0gfSIgLXAgIiR7Mi19IiAtLSAkez0xfSAmJiBfcmV0PTAKIH0KIAorX19naXRjb21wX25sX2FwcGVuZCAoKQoreworCWVtdWxhdGUgLUwgenNoCisKKwlsb2NhbCBJRlM9JCdcbicKKwljb21wYWRkIC1RIC1TICIkezQtIH0iIC1wICIkezItfSIgLS0gJHs9MX0gJiYgX3JldD0wCit9CisKIF9fZ2l0Y29tcF9maWxlICgpCiB7CiAJZW11bGF0ZSAtTCB6c2gKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY29tcGxldGlvbi9naXQtcHJvbXB0LnNoIGIvY29udHJpYi9jb21wbGV0aW9uL2dpdC1wcm9tcHQuc2gKaW5kZXggOTk4NzIyYy4uN2I3MzJkMiAxMDA2NDQKLS0tIGEvY29udHJpYi9jb21wbGV0aW9uL2dpdC1wcm9tcHQuc2gKKysrIGIvY29udHJpYi9jb21wbGV0aW9uL2dpdC1wcm9tcHQuc2gKQEAgLTYwLDYgKzYwLDcgQEAKICMgb2YgdmFsdWVzOgogIwogIyAgICAgdmVyYm9zZSAgICAgICBzaG93IG51bWJlciBvZiBjb21taXRzIGFoZWFkL2JlaGluZCAoKy8tKSB1cHN0cmVhbQorIyAgICAgbmFtZSAgICAgICAgICBpZiB2ZXJib3NlLCB0aGVuIGFsc28gc2hvdyB0aGUgdXBzdHJlYW0gYWJicmV2IG5hbWUKICMgICAgIGxlZ2FjeSAgICAgICAgZG9uJ3QgdXNlIHRoZSAnLS1jb3VudCcgb3B0aW9uIGF2YWlsYWJsZSBpbiByZWNlbnQKICMgICAgICAgICAgICAgICAgICAgdmVyc2lvbnMgb2YgZ2l0LXJldi1saXN0CiAjICAgICBnaXQgICAgICAgICAgIGFsd2F5cyBjb21wYXJlIEhFQUQgdG8gQHt1cHN0cmVhbX0KQEAgLTk0LDcgKzk1LDcgQEAKIHsKIAlsb2NhbCBrZXkgdmFsdWUKIAlsb2NhbCBzdm5fcmVtb3RlIHN2bl91cmxfcGF0dGVybiBjb3VudCBuCi0JbG9jYWwgdXBzdHJlYW09Z2l0IGxlZ2FjeT0iIiB2ZXJib3NlPSIiCisJbG9jYWwgdXBzdHJlYW09Z2l0IGxlZ2FjeT0iIiB2ZXJib3NlPSIiIG5hbWU9IiIKIAogCXN2bl9yZW1vdGU9KCkKIAkjIGdldCBzb21lIGNvbmZpZyBvcHRpb25zIGZyb20gZ2l0LWNvbmZpZwpAQCAtMTIyLDYgKzEyMyw3IEBACiAJCWdpdHxzdm4pIHVwc3RyZWFtPSIkb3B0aW9uIiA7OwogCQl2ZXJib3NlKSB2ZXJib3NlPTEgOzsKIAkJbGVnYWN5KSAgbGVnYWN5PTEgIDs7CisJCW5hbWUpICAgIG5hbWU9MSA7OwogCQllc2FjCiAJZG9uZQogCkBAIC0yMDQsNiArMjA2LDkgQEAKIAkJKikJICAgICMgZGl2ZXJnZWQgZnJvbSB1cHN0cmVhbQogCQkJcD0iIHUrJHtjb3VudCMqCX0tJHtjb3VudCUJKn0iIDs7CiAJCWVzYWMKKwkJaWYgW1sgLW4gIiRjb3VudCIgJiYgLW4gIiRuYW1lIiBdXTsgdGhlbgorCQkJcD0iJHAgJChnaXQgcmV2LXBhcnNlIC0tYWJicmV2LXJlZiAiJHVwc3RyZWFtIiAyPi9kZXYvbnVsbCkiCisJCWZpCiAJZmkKIAogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jb250YWN0cy9naXQtY29udGFjdHMgYi9jb250cmliL2NvbnRhY3RzL2dpdC1jb250YWN0cwppbmRleCBkODBmN2QxLi40MjhjYzFhIDEwMDc1NQotLS0gYS9jb250cmliL2NvbnRhY3RzL2dpdC1jb250YWN0cworKysgYi9jb250cmliL2NvbnRhY3RzL2dpdC1jb250YWN0cwpAQCAtNTksMTEgKzU5LDExIEBACiB9CiAKIHN1YiBnZXRfYmxhbWUgewotCW15ICgkY29tbWl0cywgJHNvdXJjZSwgJHN0YXJ0LCAkbGVuLCAkZnJvbSkgPSBAXzsKLQkkbGVuID0gMSB1bmxlc3MgZGVmaW5lZCgkbGVuKTsKLQlyZXR1cm4gaWYgJGxlbiA9PSAwOworCW15ICgkY29tbWl0cywgJHNvdXJjZSwgJGZyb20sICRyYW5nZXMpID0gQF87CisJcmV0dXJuIHVubGVzcyBAJHJhbmdlczsKIAlvcGVuIG15ICRmLCAnLXwnLAotCQlxdyhnaXQgYmxhbWUgLS1wb3JjZWxhaW4gLUMpLCAnLUwnLCAiJHN0YXJ0LCskbGVuIiwKKwkJcXcoZ2l0IGJsYW1lIC0tcG9yY2VsYWluIC1DKSwKKwkJbWFwKHsiLUwkXy0+WzBdLCskXy0+WzFdIn0gQCRyYW5nZXMpLAogCQknLS1zaW5jZScsICRzaW5jZSwgIiRmcm9tXiIsICctLScsICRzb3VyY2Ugb3IgZGllOwogCXdoaWxlICg8JGY+KSB7CiAJCWlmICgvXihbMC05YS1mXXs0MH0pIFxkKyBcZCsgXGQrJC8pIHsKQEAgLTc2LDggKzc2LDE3IEBACiAJY2xvc2UgJGY7CiB9CiAKK3N1YiBibGFtZV9zb3VyY2VzIHsKKwlteSAoJHNvdXJjZXMsICRjb21taXRzKSA9IEBfOworCWZvciBteSAkcyAoa2V5cyAlJHNvdXJjZXMpIHsKKwkJZm9yIG15ICRpZCAoa2V5cyAleyRzb3VyY2VzLT57JHN9fSkgeworCQkJZ2V0X2JsYW1lKCRjb21taXRzLCAkcywgJGlkLCAkc291cmNlcy0+eyRzfXskaWR9KTsKKwkJfQorCX0KK30KKwogc3ViIHNjYW5fcGF0Y2hlcyB7Ci0JbXkgKCRjb21taXRzLCAkaWQsICRmKSA9IEBfOworCW15ICgkc291cmNlcywgJGlkLCAkZikgPSBAXzsKIAlteSAkc291cmNlOwogCXdoaWxlICg8JGY+KSB7CiAJCWlmICgvXkZyb20gKFswLTlhLWZdezQwfSkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxJC8pIHsKQEAgLTkwLDcgKzk5LDggQEAKIAkJfSBlbHNpZiAoL14tLS0gLykgewogCQkJZGllICJDYW5ub3QgcGFyc2UgaHVuayBzb3VyY2U6ICRfXG4iOwogCQl9IGVsc2lmICgvXkBAIC0oXGQrKSg/OiwoXGQrKSk/LyAmJiAkc291cmNlKSB7Ci0JCQlnZXRfYmxhbWUoJGNvbW1pdHMsICRzb3VyY2UsICQxLCAkMiwgJGlkKTsKKwkJCW15ICRsZW4gPSBkZWZpbmVkKCQyKSA/ICQyIDogMTsKKwkJCXB1c2ggQHskc291cmNlcy0+eyRzb3VyY2V9eyRpZH19LCBbJDEsICRsZW5dIGlmICRsZW47CiAJCX0KIAl9CiB9CkBAIC0xNjMsMTMgKzE3MywyMCBAQAogCX0KIH0KIAotbXkgJWNvbW1pdHM7CitteSAlc291cmNlczsKIGZvciAoQGZpbGVzKSB7Ci0Jc2Nhbl9wYXRjaF9maWxlKFwlY29tbWl0cywgJF8pOworCXNjYW5fcGF0Y2hfZmlsZShcJXNvdXJjZXMsICRfKTsKIH0KIGlmIChAcmV2X2FyZ3MpIHsKLQlzY2FuX3Jldl9hcmdzKFwlY29tbWl0cywgXEByZXZfYXJncykKKwlzY2FuX3Jldl9hcmdzKFwlc291cmNlcywgXEByZXZfYXJncykKIH0KKworbXkgJHRvcGxldmVsID0gYGdpdCByZXYtcGFyc2UgLS1zaG93LXRvcGxldmVsYDsKK2Nob21wICR0b3BsZXZlbDsKK2NoZGlyKCR0b3BsZXZlbCkgb3IgZGllICJjaGRpciBmYWlsdXJlOiAkdG9wbGV2ZWw6ICQhXG4iOworCitteSAlY29tbWl0czsKK2JsYW1lX3NvdXJjZXMoXCVzb3VyY2VzLCBcJWNvbW1pdHMpOwogaW1wb3J0X2NvbW1pdHMoXCVjb21taXRzKTsKIAogbXkgJGNvbnRhY3RzID0ge307CmRpZmYgLS1naXQgYS9jb250cmliL2NyZWRlbnRpYWwvZ25vbWUta2V5cmluZy9NYWtlZmlsZSBiL2NvbnRyaWIvY3JlZGVudGlhbC9nbm9tZS1rZXlyaW5nL01ha2VmaWxlCmluZGV4IGU2NTYxZDguLmMzYzdjOTggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY3JlZGVudGlhbC9nbm9tZS1rZXlyaW5nL01ha2VmaWxlCisrKyBiL2NvbnRyaWIvY3JlZGVudGlhbC9nbm9tZS1rZXlyaW5nL01ha2VmaWxlCkBAIC04LDggKzgsOCBAQAogLWluY2x1ZGUgLi4vLi4vLi4vY29uZmlnLm1hay5hdXRvZ2VuCiAtaW5jbHVkZSAuLi8uLi8uLi9jb25maWcubWFrCiAKLUlOQ1M6PSQoc2hlbGwgcGtnLWNvbmZpZyAtLWNmbGFncyBnbm9tZS1rZXlyaW5nLTEpCi1MSUJTOj0kKHNoZWxsIHBrZy1jb25maWcgLS1saWJzIGdub21lLWtleXJpbmctMSkKK0lOQ1M6PSQoc2hlbGwgcGtnLWNvbmZpZyAtLWNmbGFncyBnbm9tZS1rZXlyaW5nLTEgZ2xpYi0yLjApCitMSUJTOj0kKHNoZWxsIHBrZy1jb25maWcgLS1saWJzIGdub21lLWtleXJpbmctMSBnbGliLTIuMCkKIAogU1JDUzo9JChNQUlOKS5jCiBPQkpTOj0kKFNSQ1M6LmM9Lm8pCmRpZmYgLS1naXQgYS9jb250cmliL2NyZWRlbnRpYWwvZ25vbWUta2V5cmluZy9naXQtY3JlZGVudGlhbC1nbm9tZS1rZXlyaW5nLmMgYi9jb250cmliL2NyZWRlbnRpYWwvZ25vbWUta2V5cmluZy9naXQtY3JlZGVudGlhbC1nbm9tZS1rZXlyaW5nLmMKaW5kZXggZjJjZGVmZS4uMmEzMTdmYyAxMDA2NDQKLS0tIGEvY29udHJpYi9jcmVkZW50aWFsL2dub21lLWtleXJpbmcvZ2l0LWNyZWRlbnRpYWwtZ25vbWUta2V5cmluZy5jCisrKyBiL2NvbnRyaWIvY3JlZGVudGlhbC9nbm9tZS1rZXlyaW5nL2dpdC1jcmVkZW50aWFsLWdub21lLWtleXJpbmcuYwpAQCAtMjUsMTM1ICsyNSwxNDggQEAKIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RkYXJnLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8Z25vbWUta2V5cmluZy5oPgogCisjaWZkZWYgR05PTUVfS0VZUklOR19ERUZBVUxUCisKKyAgIC8qIE1vZGVybiBnbm9tZS1rZXlyaW5nICovCisKKyNpbmNsdWRlIDxnbm9tZS1rZXlyaW5nLW1lbW9yeS5oPgorCisjZWxzZQorCisgICAvKgorICAgICogU3VwcG9ydCBhbmNpZW50IGdub21lLWtleXJpbmcsIGNpcmMuIFJIRUwgNS5YLgorICAgICogR05PTUVfS0VZUklOR19ERUZBVUxUIHNlZW1zIHRvIGhhdmUgYmVlbiBpbnRyb2R1Y2VkIHdpdGggR25vbWUgMi4yMiwKKyAgICAqIGFuZCB0aGUgb3RoZXIgZmVhdHVyZXMgcm91Z2hseSBhcm91bmQgR25vbWUgMi4yMCwgNiBtb250aHMgYmVmb3JlLgorICAgICogVWJ1bnR1IDguMDQgdXNlZCBHbm9tZSAyLjIyIChJIHRoaW5rKS4gIE5vdCBzdXJlIGFueSBkaXN0cm8gdXNlZCAyLjIwLgorICAgICogU28gdGhlIGV4aXN0ZW5jZS9ub24tZXhpc3RlbmNlIG9mIEdOT01FX0tFWVJJTkdfREVGQVVMVCBzZWVtcyBsaWtlCisgICAgKiBhIGRlY2VudCB0aGluZyB0byB1c2UgYXMgYW4gaW5kaWNhdG9yLgorICAgICovCisKKyNkZWZpbmUgR05PTUVfS0VZUklOR19ERUZBVUxUIE5VTEwKKworLyoKKyAqIGFuY2llbnQgZ25vbWUta2V5cmluZyByZXR1cm5zIERFTklFRCB3aGVuIGFuIGVudHJ5IGlzIG5vdCBmb3VuZC4KKyAqIFNldHRpbmcgTk9fTUFUQ0ggdG8gREVOSUVEIHdpbGwgcHJldmVudCB1cyBmcm9tIHJlcG9ydGluZyBERU5JRUQKKyAqIGVycm9ycyBkdXJpbmcgZ2V0IGFuZCBlcmFzZSBvcGVyYXRpb25zLCBidXQgd2Ugd2lsbCBzdGlsbCByZXBvcnQKKyAqIERFTklFRCBlcnJvcnMgZHVyaW5nIGEgc3RvcmUuCisgKi8KKyNkZWZpbmUgR05PTUVfS0VZUklOR19SRVNVTFRfTk9fTUFUQ0ggR05PTUVfS0VZUklOR19SRVNVTFRfREVOSUVECisKKyNkZWZpbmUgZ25vbWVfa2V5cmluZ19tZW1vcnlfYWxsb2MgZ19tYWxsb2MKKyNkZWZpbmUgZ25vbWVfa2V5cmluZ19tZW1vcnlfZnJlZSBnbm9tZV9rZXlyaW5nX2ZyZWVfcGFzc3dvcmQKKyNkZWZpbmUgZ25vbWVfa2V5cmluZ19tZW1vcnlfc3RyZHVwIGdfc3RyZHVwCisKK3N0YXRpYyBjb25zdCBjaGFyICpnbm9tZV9rZXlyaW5nX3Jlc3VsdF90b19tZXNzYWdlKEdub21lS2V5cmluZ1Jlc3VsdCByZXN1bHQpCit7CisJc3dpdGNoIChyZXN1bHQpIHsKKwljYXNlIEdOT01FX0tFWVJJTkdfUkVTVUxUX09LOgorCQlyZXR1cm4gIk9LIjsKKwljYXNlIEdOT01FX0tFWVJJTkdfUkVTVUxUX0RFTklFRDoKKwkJcmV0dXJuICJEZW5pZWQiOworCWNhc2UgR05PTUVfS0VZUklOR19SRVNVTFRfTk9fS0VZUklOR19EQUVNT046CisJCXJldHVybiAiTm8gS2V5cmluZyBEYWVtb24iOworCWNhc2UgR05PTUVfS0VZUklOR19SRVNVTFRfQUxSRUFEWV9VTkxPQ0tFRDoKKwkJcmV0dXJuICJBbHJlYWR5IFVuTG9ja2VkIjsKKwljYXNlIEdOT01FX0tFWVJJTkdfUkVTVUxUX05PX1NVQ0hfS0VZUklORzoKKwkJcmV0dXJuICJObyBTdWNoIEtleXJpbmciOworCWNhc2UgR05PTUVfS0VZUklOR19SRVNVTFRfQkFEX0FSR1VNRU5UUzoKKwkJcmV0dXJuICJCYWQgQXJndW1lbnRzIjsKKwljYXNlIEdOT01FX0tFWVJJTkdfUkVTVUxUX0lPX0VSUk9SOgorCQlyZXR1cm4gIklPIEVycm9yIjsKKwljYXNlIEdOT01FX0tFWVJJTkdfUkVTVUxUX0NBTkNFTExFRDoKKwkJcmV0dXJuICJDYW5jZWxsZWQiOworCWNhc2UgR05PTUVfS0VZUklOR19SRVNVTFRfQUxSRUFEWV9FWElTVFM6CisJCXJldHVybiAiQWxyZWFkeSBFeGlzdHMiOworCWRlZmF1bHQ6CisJCXJldHVybiAiVW5rbm93biBFcnJvciI7CisJfQorfQorCisvKgorICogU3VwcG9ydCByZWFsbHkgYW5jaWVudCBnbm9tZS1rZXlyaW5nLCBjaXJjLiBSSEVMIDQuWC4KKyAqIEp1c3QgYSBndWVzcyBmb3IgdGhlIEdsaWIgdmVyc2lvbi4gIEdsaWIgMi44IHdhcyByb3VnaGx5IEdub21lIDIuMTIgPworICogV2hpY2ggd2FzIHJlbGVhc2VkIHdpdGggZ25vbWUta2V5cmluZyAwLjQuMyA/PworICovCisjaWYgR0xJQl9NQUpPUl9WRVJTSU9OID09IDIgJiYgR0xJQl9NSU5PUl9WRVJTSU9OIDwgOAorCitzdGF0aWMgdm9pZCBnbm9tZV9rZXlyaW5nX2RvbmVfY2IoR25vbWVLZXlyaW5nUmVzdWx0IHJlc3VsdCwgZ3BvaW50ZXIgdXNlcl9kYXRhKQoreworCWdwb2ludGVyICpkYXRhID0gKGdwb2ludGVyICopdXNlcl9kYXRhOworCWludCAqZG9uZSA9IChpbnQgKilkYXRhWzBdOworCUdub21lS2V5cmluZ1Jlc3VsdCAqciA9IChHbm9tZUtleXJpbmdSZXN1bHQgKilkYXRhWzFdOworCisJKnIgPSByZXN1bHQ7CisJKmRvbmUgPSAxOworfQorCitzdGF0aWMgdm9pZCB3YWl0X2Zvcl9yZXF1ZXN0X2NvbXBsZXRpb24oaW50ICpkb25lKQoreworCUdNYWluQ29udGV4dCAqbWMgPSBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7CisJd2hpbGUgKCEqZG9uZSkKKwkJZ19tYWluX2NvbnRleHRfaXRlcmF0aW9uKG1jLCBUUlVFKTsKK30KKworc3RhdGljIEdub21lS2V5cmluZ1Jlc3VsdCBnbm9tZV9rZXlyaW5nX2l0ZW1fZGVsZXRlX3N5bmMoY29uc3QgY2hhciAqa2V5cmluZywgZ3VpbnQzMiBpZCkKK3sKKwlpbnQgZG9uZSA9IDA7CisJR25vbWVLZXlyaW5nUmVzdWx0IHJlc3VsdDsKKwlncG9pbnRlciBkYXRhW10gPSB7ICZkb25lLCAmcmVzdWx0IH07CisKKwlnbm9tZV9rZXlyaW5nX2l0ZW1fZGVsZXRlKGtleXJpbmcsIGlkLCBnbm9tZV9rZXlyaW5nX2RvbmVfY2IsIGRhdGEsCisJCU5VTEwpOworCisJd2FpdF9mb3JfcmVxdWVzdF9jb21wbGV0aW9uKCZkb25lKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKKyNlbmRpZgorI2VuZGlmCisKIC8qCiAgKiBUaGlzIGNyZWRlbnRpYWwgc3RydWN0IGFuZCBBUEkgaXMgc2ltcGxpZmllZCBmcm9tIGdpdCdzIGNyZWRlbnRpYWwue2gsY30KICAqLwotc3RydWN0IGNyZWRlbnRpYWwKLXsKLQljaGFyICAgICAgICAgICpwcm90b2NvbDsKLQljaGFyICAgICAgICAgICpob3N0Oworc3RydWN0IGNyZWRlbnRpYWwgeworCWNoYXIgKnByb3RvY29sOworCWNoYXIgKmhvc3Q7CiAJdW5zaWduZWQgc2hvcnQgcG9ydDsKLQljaGFyICAgICAgICAgICpwYXRoOwotCWNoYXIgICAgICAgICAgKnVzZXJuYW1lOwotCWNoYXIgICAgICAgICAgKnBhc3N3b3JkOworCWNoYXIgKnBhdGg7CisJY2hhciAqdXNlcm5hbWU7CisJY2hhciAqcGFzc3dvcmQ7CiB9OwogCi0jZGVmaW5lIENSRURFTlRJQUxfSU5JVCBcCi0gIHsgTlVMTCxOVUxMLDAsTlVMTCxOVUxMLE5VTEwgfQorI2RlZmluZSBDUkVERU5USUFMX0lOSVQgeyBOVUxMLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBOVUxMIH0KIAotdm9pZCBjcmVkZW50aWFsX2luaXQoc3RydWN0IGNyZWRlbnRpYWwgKmMpOwotdm9pZCBjcmVkZW50aWFsX2NsZWFyKHN0cnVjdCBjcmVkZW50aWFsICpjKTsKLWludCAgY3JlZGVudGlhbF9yZWFkKHN0cnVjdCBjcmVkZW50aWFsICpjKTsKLXZvaWQgY3JlZGVudGlhbF93cml0ZShjb25zdCBzdHJ1Y3QgY3JlZGVudGlhbCAqYyk7Cit0eXBlZGVmIGludCAoKmNyZWRlbnRpYWxfb3BfY2IpKHN0cnVjdCBjcmVkZW50aWFsICopOwogCi10eXBlZGVmIGludCAoKmNyZWRlbnRpYWxfb3BfY2IpKHN0cnVjdCBjcmVkZW50aWFsKik7Ci0KLXN0cnVjdCBjcmVkZW50aWFsX29wZXJhdGlvbgotewotCWNoYXIgICAgICAgICAgICAgKm5hbWU7CitzdHJ1Y3QgY3JlZGVudGlhbF9vcGVyYXRpb24geworCWNoYXIgKm5hbWU7CiAJY3JlZGVudGlhbF9vcF9jYiBvcDsKIH07CiAKLSNkZWZpbmUgQ1JFREVOVElBTF9PUF9FTkQgXAotICB7IE5VTEwsTlVMTCB9Ci0KLS8qCi0gKiBUYWJsZSB3aXRoIG9wZXJhdGlvbiBjYWxsYmFja3MgaXMgZGVmaW5lZCBpbiBjb25jcmV0ZQotICogY3JlZGVudGlhbCBoZWxwZXIgaW1wbGVtZW50YXRpb24gYW5kIGNvbnRhaW5zIGVudHJpZXMKLSAqIGxpa2UgeyAiZ2V0IiwgZnVuY3Rpb25fdG9fZ2V0X2NyZWRlbnRpYWwgfSB0ZXJtaW5hdGVkCi0gKiBieSBDUkVERU5USUFMX09QX0VORC4KLSAqLwotc3RydWN0IGNyZWRlbnRpYWxfb3BlcmF0aW9uIGNvbnN0IGNyZWRlbnRpYWxfaGVscGVyX29wc1tdOwotCi0vKiAtLS0tLS0tLS0tLS0tLS0tIGNvbW1vbiBoZWxwZXIgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tICovCi0KLXN0YXRpYyBpbmxpbmUgdm9pZCBmcmVlX3Bhc3N3b3JkKGNoYXIgKnBhc3N3b3JkKQotewotCWNoYXIgKmMgPSBwYXNzd29yZDsKLQlpZiAoIXBhc3N3b3JkKQotCQlyZXR1cm47Ci0KLQl3aGlsZSAoKmMpICpjKysgPSAnXDAnOwotCWZyZWUocGFzc3dvcmQpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgd2FybmluZyhjb25zdCBjaGFyICpmbXQsIC4uLikKLXsKLQl2YV9saXN0IGFwOwotCi0JdmFfc3RhcnQoYXAsIGZtdCk7Ci0JZnByaW50ZihzdGRlcnIsICJ3YXJuaW5nOiAiKTsKLQl2ZnByaW50ZihzdGRlcnIsIGZtdCwgYXApOwotCWZwcmludGYoc3RkZXJyLCAiXG4iICk7Ci0JdmFfZW5kKGFwKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGVycm9yKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotewotCXZhX2xpc3QgYXA7Ci0KLQl2YV9zdGFydChhcCwgZm10KTsKLQlmcHJpbnRmKHN0ZGVyciwgImVycm9yOiAiKTsKLQl2ZnByaW50ZihzdGRlcnIsIGZtdCwgYXApOwotCWZwcmludGYoc3RkZXJyLCAiXG4iICk7Ci0JdmFfZW5kKGFwKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGRpZShjb25zdCBjaGFyICpmbXQsIC4uLikKLXsKLQl2YV9saXN0IGFwOwotCi0JdmFfc3RhcnQoYXAsZm10KTsKLQllcnJvcihmbXQsIGFwKTsKLQl2YV9lbmQoYXApOwotCWV4aXQoRVhJVF9GQUlMVVJFKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGRpZV9lcnJubyhpbnQgZXJyKQotewotCWVycm9yKCIlcyIsIHN0cmVycm9yKGVycikpOwotCWV4aXQoRVhJVF9GQUlMVVJFKTsKLX0KLQotc3RhdGljIGlubGluZSBjaGFyICp4c3RyZHVwKGNvbnN0IGNoYXIgKnN0cikKLXsKLQljaGFyICpyZXQgPSBzdHJkdXAoc3RyKTsKLQlpZiAoIXJldCkKLQkJZGllX2Vycm5vKGVycm5vKTsKLQotCXJldHVybiByZXQ7Ci19CisjZGVmaW5lIENSRURFTlRJQUxfT1BfRU5EIHsgTlVMTCwgTlVMTCB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tIEdOT01FIEtleXJpbmcgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qIGNyZWF0ZSBhIHNwZWNpYWwga2V5cmluZyBvcHRpb24gc3RyaW5nLCBpZiBwYXRoIGlzIGdpdmVuICovCi1zdGF0aWMgY2hhcioga2V5cmluZ19vYmplY3Qoc3RydWN0IGNyZWRlbnRpYWwgKmMpCitzdGF0aWMgY2hhciAqa2V5cmluZ19vYmplY3Qoc3RydWN0IGNyZWRlbnRpYWwgKmMpCiB7Ci0JY2hhciogb2JqZWN0ID0gTlVMTDsKLQogCWlmICghYy0+cGF0aCkKLQkJcmV0dXJuIG9iamVjdDsKKwkJcmV0dXJuIE5VTEw7CiAKLQlvYmplY3QgPSAoY2hhciopIG1hbGxvYyhzdHJsZW4oYy0+aG9zdCkrc3RybGVuKGMtPnBhdGgpKzgpOwotCWlmKCFvYmplY3QpCi0JCWRpZV9lcnJubyhlcnJubyk7CisJaWYgKGMtPnBvcnQpCisJCXJldHVybiBnX3N0cmR1cF9wcmludGYoIiVzOiVoZC8lcyIsIGMtPmhvc3QsIGMtPnBvcnQsIGMtPnBhdGgpOwogCi0JaWYoYy0+cG9ydCkKLQkJc3ByaW50ZihvYmplY3QsIiVzOiVoZC8lcyIsYy0+aG9zdCxjLT5wb3J0LGMtPnBhdGgpOwotCWVsc2UKLQkJc3ByaW50ZihvYmplY3QsIiVzLyVzIixjLT5ob3N0LGMtPnBhdGgpOwotCi0JcmV0dXJuIG9iamVjdDsKKwlyZXR1cm4gZ19zdHJkdXBfcHJpbnRmKCIlcy8lcyIsIGMtPmhvc3QsIGMtPnBhdGgpOwogfQogCi1pbnQga2V5cmluZ19nZXQoc3RydWN0IGNyZWRlbnRpYWwgKmMpCitzdGF0aWMgaW50IGtleXJpbmdfZ2V0KHN0cnVjdCBjcmVkZW50aWFsICpjKQogewotCWNoYXIqIG9iamVjdCA9IE5VTEw7CisJY2hhciAqb2JqZWN0ID0gTlVMTDsKIAlHTGlzdCAqZW50cmllczsKIAlHbm9tZUtleXJpbmdOZXR3b3JrUGFzc3dvcmREYXRhICpwYXNzd29yZF9kYXRhOwogCUdub21lS2V5cmluZ1Jlc3VsdCByZXN1bHQ7CkBAIC0xNzMsNyArMTg2LDcgQEAKIAkJCQljLT5wb3J0LAogCQkJCSZlbnRyaWVzKTsKIAotCWZyZWUob2JqZWN0KTsKKwlnX2ZyZWUob2JqZWN0KTsKIAogCWlmIChyZXN1bHQgPT0gR05PTUVfS0VZUklOR19SRVNVTFRfTk9fTUFUQ0gpCiAJCXJldHVybiBFWElUX1NVQ0NFU1M7CkBAIC0xODIsMTggKzE5NSwxOCBAQAogCQlyZXR1cm4gRVhJVF9TVUNDRVNTOwogCiAJaWYgKHJlc3VsdCAhPSBHTk9NRV9LRVlSSU5HX1JFU1VMVF9PSykgewotCQllcnJvcigiJXMiLGdub21lX2tleXJpbmdfcmVzdWx0X3RvX21lc3NhZ2UocmVzdWx0KSk7CisJCWdfY3JpdGljYWwoIiVzIiwgZ25vbWVfa2V5cmluZ19yZXN1bHRfdG9fbWVzc2FnZShyZXN1bHQpKTsKIAkJcmV0dXJuIEVYSVRfRkFJTFVSRTsKIAl9CiAKIAkvKiBwaWNrIHRoZSBmaXJzdCBvbmUgZnJvbSB0aGUgbGlzdCAqLwotCXBhc3N3b3JkX2RhdGEgPSAoR25vbWVLZXlyaW5nTmV0d29ya1Bhc3N3b3JkRGF0YSAqKSBlbnRyaWVzLT5kYXRhOworCXBhc3N3b3JkX2RhdGEgPSAoR25vbWVLZXlyaW5nTmV0d29ya1Bhc3N3b3JkRGF0YSAqKWVudHJpZXMtPmRhdGE7CiAKLQlmcmVlX3Bhc3N3b3JkKGMtPnBhc3N3b3JkKTsKLQljLT5wYXNzd29yZCA9IHhzdHJkdXAocGFzc3dvcmRfZGF0YS0+cGFzc3dvcmQpOworCWdub21lX2tleXJpbmdfbWVtb3J5X2ZyZWUoYy0+cGFzc3dvcmQpOworCWMtPnBhc3N3b3JkID0gZ25vbWVfa2V5cmluZ19tZW1vcnlfc3RyZHVwKHBhc3N3b3JkX2RhdGEtPnBhc3N3b3JkKTsKIAogCWlmICghYy0+dXNlcm5hbWUpCi0JCWMtPnVzZXJuYW1lID0geHN0cmR1cChwYXNzd29yZF9kYXRhLT51c2VyKTsKKwkJYy0+dXNlcm5hbWUgPSBnX3N0cmR1cChwYXNzd29yZF9kYXRhLT51c2VyKTsKIAogCWdub21lX2tleXJpbmdfbmV0d29ya19wYXNzd29yZF9saXN0X2ZyZWUoZW50cmllcyk7CiAKQEAgLTIwMSwxMCArMjE0LDExIEBACiB9CiAKIAotaW50IGtleXJpbmdfc3RvcmUoc3RydWN0IGNyZWRlbnRpYWwgKmMpCitzdGF0aWMgaW50IGtleXJpbmdfc3RvcmUoc3RydWN0IGNyZWRlbnRpYWwgKmMpCiB7CiAJZ3VpbnQzMiBpdGVtX2lkOwotCWNoYXIgICpvYmplY3QgPSBOVUxMOworCWNoYXIgKm9iamVjdCA9IE5VTEw7CisJR25vbWVLZXlyaW5nUmVzdWx0IHJlc3VsdDsKIAogCS8qCiAJICogU2FuaXR5IGNoZWNrIHRoYXQgd2hhdCB3ZSBhcmUgc3RvcmluZyBpcyBhY3R1YWxseSBzZW5zaWJsZS4KQEAgLTIxOSw3ICsyMzMsNyBAQAogCiAJb2JqZWN0ID0ga2V5cmluZ19vYmplY3QoYyk7CiAKLQlnbm9tZV9rZXlyaW5nX3NldF9uZXR3b3JrX3Bhc3N3b3JkX3N5bmMoCisJcmVzdWx0ID0gZ25vbWVfa2V5cmluZ19zZXRfbmV0d29ya19wYXNzd29yZF9zeW5jKAogCQkJCUdOT01FX0tFWVJJTkdfREVGQVVMVCwKIAkJCQljLT51c2VybmFtZSwKIAkJCQlOVUxMIC8qIGRvbWFpbiAqLywKQEAgLTIzMSwxMyArMjQ1LDIwIEBACiAJCQkJYy0+cGFzc3dvcmQsCiAJCQkJJml0ZW1faWQpOwogCi0JZnJlZShvYmplY3QpOworCWdfZnJlZShvYmplY3QpOworCisJaWYgKHJlc3VsdCAhPSBHTk9NRV9LRVlSSU5HX1JFU1VMVF9PSyAmJgorCSAgICByZXN1bHQgIT0gR05PTUVfS0VZUklOR19SRVNVTFRfQ0FOQ0VMTEVEKSB7CisJCWdfY3JpdGljYWwoIiVzIiwgZ25vbWVfa2V5cmluZ19yZXN1bHRfdG9fbWVzc2FnZShyZXN1bHQpKTsKKwkJcmV0dXJuIEVYSVRfRkFJTFVSRTsKKwl9CisKIAlyZXR1cm4gRVhJVF9TVUNDRVNTOwogfQogCi1pbnQga2V5cmluZ19lcmFzZShzdHJ1Y3QgY3JlZGVudGlhbCAqYykKK3N0YXRpYyBpbnQga2V5cmluZ19lcmFzZShzdHJ1Y3QgY3JlZGVudGlhbCAqYykKIHsKLQljaGFyICAqb2JqZWN0ID0gTlVMTDsKKwljaGFyICpvYmplY3QgPSBOVUxMOwogCUdMaXN0ICplbnRyaWVzOwogCUdub21lS2V5cmluZ05ldHdvcmtQYXNzd29yZERhdGEgKnBhc3N3b3JkX2RhdGE7CiAJR25vbWVLZXlyaW5nUmVzdWx0IHJlc3VsdDsKQEAgLTI2NSw3ICsyODYsNyBAQAogCQkJCWMtPnBvcnQsCiAJCQkJJmVudHJpZXMpOwogCi0JZnJlZShvYmplY3QpOworCWdfZnJlZShvYmplY3QpOwogCiAJaWYgKHJlc3VsdCA9PSBHTk9NRV9LRVlSSU5HX1JFU1VMVF9OT19NQVRDSCkKIAkJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKQEAgLTI3MywyMyArMjk0LDIxIEBACiAJaWYgKHJlc3VsdCA9PSBHTk9NRV9LRVlSSU5HX1JFU1VMVF9DQU5DRUxMRUQpCiAJCXJldHVybiBFWElUX1NVQ0NFU1M7CiAKLQlpZiAocmVzdWx0ICE9IEdOT01FX0tFWVJJTkdfUkVTVUxUX09LKQotCXsKLQkJZXJyb3IoIiVzIixnbm9tZV9rZXlyaW5nX3Jlc3VsdF90b19tZXNzYWdlKHJlc3VsdCkpOworCWlmIChyZXN1bHQgIT0gR05PTUVfS0VZUklOR19SRVNVTFRfT0spIHsKKwkJZ19jcml0aWNhbCgiJXMiLCBnbm9tZV9rZXlyaW5nX3Jlc3VsdF90b19tZXNzYWdlKHJlc3VsdCkpOwogCQlyZXR1cm4gRVhJVF9GQUlMVVJFOwogCX0KIAogCS8qIHBpY2sgdGhlIGZpcnN0IG9uZSBmcm9tIHRoZSBsaXN0IChkZWxldGUgYWxsIG1hdGNoZXM/KSAqLwotCXBhc3N3b3JkX2RhdGEgPSAoR25vbWVLZXlyaW5nTmV0d29ya1Bhc3N3b3JkRGF0YSAqKSBlbnRyaWVzLT5kYXRhOworCXBhc3N3b3JkX2RhdGEgPSAoR25vbWVLZXlyaW5nTmV0d29ya1Bhc3N3b3JkRGF0YSAqKWVudHJpZXMtPmRhdGE7CiAKIAlyZXN1bHQgPSBnbm9tZV9rZXlyaW5nX2l0ZW1fZGVsZXRlX3N5bmMoCiAJCXBhc3N3b3JkX2RhdGEtPmtleXJpbmcsIHBhc3N3b3JkX2RhdGEtPml0ZW1faWQpOwogCiAJZ25vbWVfa2V5cmluZ19uZXR3b3JrX3Bhc3N3b3JkX2xpc3RfZnJlZShlbnRyaWVzKTsKIAotCWlmIChyZXN1bHQgIT0gR05PTUVfS0VZUklOR19SRVNVTFRfT0spCi0JewotCQllcnJvcigiJXMiLGdub21lX2tleXJpbmdfcmVzdWx0X3RvX21lc3NhZ2UocmVzdWx0KSk7CisJaWYgKHJlc3VsdCAhPSBHTk9NRV9LRVlSSU5HX1JFU1VMVF9PSykgeworCQlnX2NyaXRpY2FsKCIlcyIsIGdub21lX2tleXJpbmdfcmVzdWx0X3RvX21lc3NhZ2UocmVzdWx0KSk7CiAJCXJldHVybiBFWElUX0ZBSUxVUkU7CiAJfQogCkBAIC0zMDAsOSArMzE5LDggQEAKICAqIFRhYmxlIHdpdGggaGVscGVyIG9wZXJhdGlvbiBjYWxsYmFja3MsIHVzZWQgYnkgZ2VuZXJpYwogICogY3JlZGVudGlhbCBoZWxwZXIgbWFpbiBmdW5jdGlvbi4KICAqLwotc3RydWN0IGNyZWRlbnRpYWxfb3BlcmF0aW9uIGNvbnN0IGNyZWRlbnRpYWxfaGVscGVyX29wc1tdID0KLXsKLQl7ICJnZXQiLCAgIGtleXJpbmdfZ2V0ICAgfSwKK3N0YXRpYyBzdHJ1Y3QgY3JlZGVudGlhbF9vcGVyYXRpb24gY29uc3QgY3JlZGVudGlhbF9oZWxwZXJfb3BzW10gPSB7CisJeyAiZ2V0IiwgICBrZXlyaW5nX2dldCB9LAogCXsgInN0b3JlIiwga2V5cmluZ19zdG9yZSB9LAogCXsgImVyYXNlIiwga2V5cmluZ19lcmFzZSB9LAogCUNSRURFTlRJQUxfT1BfRU5ECkBAIC0zMTAsNjcgKzMyOCw3MCBAQAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0gY3JlZGVudGlhbCBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLXZvaWQgY3JlZGVudGlhbF9pbml0KHN0cnVjdCBjcmVkZW50aWFsICpjKQorc3RhdGljIHZvaWQgY3JlZGVudGlhbF9pbml0KHN0cnVjdCBjcmVkZW50aWFsICpjKQogewogCW1lbXNldChjLCAwLCBzaXplb2YoKmMpKTsKIH0KIAotdm9pZCBjcmVkZW50aWFsX2NsZWFyKHN0cnVjdCBjcmVkZW50aWFsICpjKQorc3RhdGljIHZvaWQgY3JlZGVudGlhbF9jbGVhcihzdHJ1Y3QgY3JlZGVudGlhbCAqYykKIHsKLQlmcmVlKGMtPnByb3RvY29sKTsKLQlmcmVlKGMtPmhvc3QpOwotCWZyZWUoYy0+cGF0aCk7Ci0JZnJlZShjLT51c2VybmFtZSk7Ci0JZnJlZV9wYXNzd29yZChjLT5wYXNzd29yZCk7CisJZ19mcmVlKGMtPnByb3RvY29sKTsKKwlnX2ZyZWUoYy0+aG9zdCk7CisJZ19mcmVlKGMtPnBhdGgpOworCWdfZnJlZShjLT51c2VybmFtZSk7CisJZ25vbWVfa2V5cmluZ19tZW1vcnlfZnJlZShjLT5wYXNzd29yZCk7CiAKIAljcmVkZW50aWFsX2luaXQoYyk7CiB9CiAKLWludCBjcmVkZW50aWFsX3JlYWQoc3RydWN0IGNyZWRlbnRpYWwgKmMpCitzdGF0aWMgaW50IGNyZWRlbnRpYWxfcmVhZChzdHJ1Y3QgY3JlZGVudGlhbCAqYykKIHsKLQljaGFyICAgIGJ1ZlsxMDI0XTsKLQlzc2l6ZV90IGxpbmVfbGVuID0gMDsKLQljaGFyICAgKmtleSAgICAgID0gYnVmOwotCWNoYXIgICAqdmFsdWU7CisJY2hhciAqYnVmOworCXNpemVfdCBsaW5lX2xlbjsKKwljaGFyICprZXk7CisJY2hhciAqdmFsdWU7CiAKLQl3aGlsZSAoZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgc3RkaW4pKQotCXsKKwlrZXkgPSBidWYgPSBnbm9tZV9rZXlyaW5nX21lbW9yeV9hbGxvYygxMDI0KTsKKworCXdoaWxlIChmZ2V0cyhidWYsIDEwMjQsIHN0ZGluKSkgewogCQlsaW5lX2xlbiA9IHN0cmxlbihidWYpOwogCi0JCWlmKGJ1ZltsaW5lX2xlbi0xXT09J1xuJykKLQkJCWJ1ZlstLWxpbmVfbGVuXT0nXDAnOworCQlpZiAobGluZV9sZW4gJiYgYnVmW2xpbmVfbGVuLTFdID09ICdcbicpCisJCQlidWZbLS1saW5lX2xlbl0gPSAnXDAnOwogCi0JCWlmKCFsaW5lX2xlbikKKwkJaWYgKCFsaW5lX2xlbikKIAkJCWJyZWFrOwogCi0JCXZhbHVlID0gc3RyY2hyKGJ1ZiwnPScpOwotCQlpZighdmFsdWUpIHsKLQkJCXdhcm5pbmcoImludmFsaWQgY3JlZGVudGlhbCBsaW5lOiAlcyIsIGtleSk7CisJCXZhbHVlID0gc3RyY2hyKGJ1ZiwgJz0nKTsKKwkJaWYgKCF2YWx1ZSkgeworCQkJZ193YXJuaW5nKCJpbnZhbGlkIGNyZWRlbnRpYWwgbGluZTogJXMiLCBrZXkpOworCQkJZ25vbWVfa2V5cmluZ19tZW1vcnlfZnJlZShidWYpOwogCQkJcmV0dXJuIC0xOwogCQl9CiAJCSp2YWx1ZSsrID0gJ1wwJzsKIAogCQlpZiAoIXN0cmNtcChrZXksICJwcm90b2NvbCIpKSB7Ci0JCQlmcmVlKGMtPnByb3RvY29sKTsKLQkJCWMtPnByb3RvY29sID0geHN0cmR1cCh2YWx1ZSk7CisJCQlnX2ZyZWUoYy0+cHJvdG9jb2wpOworCQkJYy0+cHJvdG9jb2wgPSBnX3N0cmR1cCh2YWx1ZSk7CiAJCX0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJob3N0IikpIHsKLQkJCWZyZWUoYy0+aG9zdCk7Ci0JCQljLT5ob3N0ID0geHN0cmR1cCh2YWx1ZSk7Ci0JCQl2YWx1ZSA9IHN0cnJjaHIoYy0+aG9zdCwnOicpOworCQkJZ19mcmVlKGMtPmhvc3QpOworCQkJYy0+aG9zdCA9IGdfc3RyZHVwKHZhbHVlKTsKKwkJCXZhbHVlID0gc3RycmNocihjLT5ob3N0LCAnOicpOwogCQkJaWYgKHZhbHVlKSB7CiAJCQkJKnZhbHVlKysgPSAnXDAnOwogCQkJCWMtPnBvcnQgPSBhdG9pKHZhbHVlKTsKIAkJCX0KIAkJfSBlbHNlIGlmICghc3RyY21wKGtleSwgInBhdGgiKSkgewotCQkJZnJlZShjLT5wYXRoKTsKLQkJCWMtPnBhdGggPSB4c3RyZHVwKHZhbHVlKTsKKwkJCWdfZnJlZShjLT5wYXRoKTsKKwkJCWMtPnBhdGggPSBnX3N0cmR1cCh2YWx1ZSk7CiAJCX0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJ1c2VybmFtZSIpKSB7Ci0JCQlmcmVlKGMtPnVzZXJuYW1lKTsKLQkJCWMtPnVzZXJuYW1lID0geHN0cmR1cCh2YWx1ZSk7CisJCQlnX2ZyZWUoYy0+dXNlcm5hbWUpOworCQkJYy0+dXNlcm5hbWUgPSBnX3N0cmR1cCh2YWx1ZSk7CiAJCX0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJwYXNzd29yZCIpKSB7Ci0JCQlmcmVlX3Bhc3N3b3JkKGMtPnBhc3N3b3JkKTsKLQkJCWMtPnBhc3N3b3JkID0geHN0cmR1cCh2YWx1ZSk7Ci0JCQl3aGlsZSAoKnZhbHVlKSAqdmFsdWUrKyA9ICdcMCc7CisJCQlnbm9tZV9rZXlyaW5nX21lbW9yeV9mcmVlKGMtPnBhc3N3b3JkKTsKKwkJCWMtPnBhc3N3b3JkID0gZ25vbWVfa2V5cmluZ19tZW1vcnlfc3RyZHVwKHZhbHVlKTsKKwkJCXdoaWxlICgqdmFsdWUpCisJCQkJKnZhbHVlKysgPSAnXDAnOwogCQl9CiAJCS8qCiAJCSAqIElnbm9yZSBvdGhlciBsaW5lczsgd2UgZG9uJ3Qga25vdyB3aGF0IHRoZXkgbWVhbiwgYnV0CkBAIC0zNzgsMTcgKzM5OSwyMCBAQAogCQkgKiBsZWFybiBuZXcgbGluZXMsIGFuZCB0aGUgaGVscGVycyBhcmUgdXBkYXRlZCB0byBtYXRjaC4KIAkJICovCiAJfQorCisJZ25vbWVfa2V5cmluZ19tZW1vcnlfZnJlZShidWYpOworCiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgY3JlZGVudGlhbF93cml0ZV9pdGVtKEZJTEUgKmZwLCBjb25zdCBjaGFyICprZXksIGNvbnN0IGNoYXIgKnZhbHVlKQorc3RhdGljIHZvaWQgY3JlZGVudGlhbF93cml0ZV9pdGVtKEZJTEUgKmZwLCBjb25zdCBjaGFyICprZXksIGNvbnN0IGNoYXIgKnZhbHVlKQogewogCWlmICghdmFsdWUpCiAJCXJldHVybjsKIAlmcHJpbnRmKGZwLCAiJXM9JXNcbiIsIGtleSwgdmFsdWUpOwogfQogCi12b2lkIGNyZWRlbnRpYWxfd3JpdGUoY29uc3Qgc3RydWN0IGNyZWRlbnRpYWwgKmMpCitzdGF0aWMgdm9pZCBjcmVkZW50aWFsX3dyaXRlKGNvbnN0IHN0cnVjdCBjcmVkZW50aWFsICpjKQogewogCS8qIG9ubHkgd3JpdGUgdXNlcm5hbWUvcGFzc3dvcmQsIGlmIHNldCAqLwogCWNyZWRlbnRpYWxfd3JpdGVfaXRlbShzdGRvdXQsICJ1c2VybmFtZSIsIGMtPnVzZXJuYW1lKTsKQEAgLTM5OCwxNiArNDIyLDE2IEBACiBzdGF0aWMgdm9pZCB1c2FnZShjb25zdCBjaGFyICpuYW1lKQogewogCXN0cnVjdCBjcmVkZW50aWFsX29wZXJhdGlvbiBjb25zdCAqdHJ5X29wID0gY3JlZGVudGlhbF9oZWxwZXJfb3BzOwotCWNvbnN0IGNoYXIgKmJhc2VuYW1lID0gc3RycmNocihuYW1lLCcvJyk7CisJY29uc3QgY2hhciAqYmFzZW5hbWUgPSBzdHJyY2hyKG5hbWUsICcvJyk7CiAKIAliYXNlbmFtZSA9IChiYXNlbmFtZSkgPyBiYXNlbmFtZSArIDEgOiBuYW1lOwogCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDwiLCBiYXNlbmFtZSk7Ci0Jd2hpbGUodHJ5X29wLT5uYW1lKSB7Ci0JCWZwcmludGYoc3RkZXJyLCIlcyIsKHRyeV9vcCsrKS0+bmFtZSk7Ci0JCWlmKHRyeV9vcC0+bmFtZSkKLQkJCWZwcmludGYoc3RkZXJyLCIlcyIsInwiKTsKKwl3aGlsZSAodHJ5X29wLT5uYW1lKSB7CisJCWZwcmludGYoc3RkZXJyLCAiJXMiLCAodHJ5X29wKyspLT5uYW1lKTsKKwkJaWYgKHRyeV9vcC0+bmFtZSkKKwkJCWZwcmludGYoc3RkZXJyLCAiJXMiLCAifCIpOwogCX0KLQlmcHJpbnRmKHN0ZGVyciwiJXMiLCI+XG4iKTsKKwlmcHJpbnRmKHN0ZGVyciwgIiVzIiwgIj5cbiIpOwogfQogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQpAQCAtNDE1LDIzICs0MzksMjUgQEAKIAlpbnQgcmV0ID0gRVhJVF9TVUNDRVNTOwogCiAJc3RydWN0IGNyZWRlbnRpYWxfb3BlcmF0aW9uIGNvbnN0ICp0cnlfb3AgPSBjcmVkZW50aWFsX2hlbHBlcl9vcHM7Ci0Jc3RydWN0IGNyZWRlbnRpYWwgICAgICAgICAgICAgICAgICBjcmVkICAgPSBDUkVERU5USUFMX0lOSVQ7CisJc3RydWN0IGNyZWRlbnRpYWwgY3JlZCA9IENSRURFTlRJQUxfSU5JVDsKIAogCWlmICghYXJndlsxXSkgewogCQl1c2FnZShhcmd2WzBdKTsKLQkJZ290byBvdXQ7CisJCWV4aXQoRVhJVF9GQUlMVVJFKTsKIAl9CiAKKwlnX3NldF9hcHBsaWNhdGlvbl9uYW1lKCJHaXQgQ3JlZGVudGlhbCBIZWxwZXIiKTsKKwogCS8qIGxvb2t1cCBvcGVyYXRpb24gY2FsbGJhY2sgKi8KLQl3aGlsZSh0cnlfb3AtPm5hbWUgJiYgc3RyY21wKGFyZ3ZbMV0sIHRyeV9vcC0+bmFtZSkpCisJd2hpbGUgKHRyeV9vcC0+bmFtZSAmJiBzdHJjbXAoYXJndlsxXSwgdHJ5X29wLT5uYW1lKSkKIAkJdHJ5X29wKys7CiAKIAkvKiB1bnN1cHBvcnRlZCBvcGVyYXRpb24gZ2l2ZW4gLS0gaWdub3JlIHNpbGVudGx5ICovCi0JaWYoIXRyeV9vcC0+bmFtZSB8fCAhdHJ5X29wLT5vcCkKKwlpZiAoIXRyeV9vcC0+bmFtZSB8fCAhdHJ5X29wLT5vcCkKIAkJZ290byBvdXQ7CiAKIAlyZXQgPSBjcmVkZW50aWFsX3JlYWQoJmNyZWQpOwotCWlmKHJldCkKKwlpZiAocmV0KQogCQlnb3RvIG91dDsKIAogCS8qIHBlcmZvcm0gY3JlZGVudGlhbCBvcGVyYXRpb24gKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvY3JlZGVudGlhbC9uZXRyYy9naXQtY3JlZGVudGlhbC1uZXRyYyBiL2NvbnRyaWIvY3JlZGVudGlhbC9uZXRyYy9naXQtY3JlZGVudGlhbC1uZXRyYwppbmRleCA2YzUxYzQzLi4xNTcxYTdiIDEwMDc1NQotLS0gYS9jb250cmliL2NyZWRlbnRpYWwvbmV0cmMvZ2l0LWNyZWRlbnRpYWwtbmV0cmMKKysrIGIvY29udHJpYi9jcmVkZW50aWFsL25ldHJjL2dpdC1jcmVkZW50aWFsLW5ldHJjCkBAIC0zNjksNyArMzY5LDkgQEAKIAl7CiAJCW15ICRlbnRyeV90ZXh0ID0gam9pbiAnLCAnLCBtYXAgeyAiJF89JGVudHJ5LT57JF99IiB9IGtleXMgJSRlbnRyeTsKIAkJZm9yZWFjaCBteSAkY2hlY2sgKHNvcnQga2V5cyAlJHF1ZXJ5KSB7Ci0JCQlpZiAoZGVmaW5lZCAkcXVlcnktPnskY2hlY2t9KSB7CisJCQlpZiAoIWRlZmluZWQgJGVudHJ5LT57JGNoZWNrfSkgeworCQkJICAgICAgICBsb2dfZGVidWcoIk9LOiBlbnRyeSBoYXMgbm8gJGNoZWNrIHRva2VuLCBzbyBhbnkgdmFsdWUgc2F0aXNmaWVzIGNoZWNrICRjaGVjayIpOworCQkJfSBlbHNpZiAoZGVmaW5lZCAkcXVlcnktPnskY2hlY2t9KSB7CiAJCQkJbG9nX2RlYnVnKCJjb21wYXJlICVzIFslc10gdG8gWyVzXSAoZW50cnk6ICVzKSIsCiAJCQkJCSAgJGNoZWNrLAogCQkJCQkgICRlbnRyeS0+eyRjaGVja30sCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2dpdC1sb2cuc2ggYi9jb250cmliL2V4YW1wbGVzL2dpdC1sb2cuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzJlYTcxYwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvZ2l0LWxvZy5zaApAQCAtMCwwICsxLDE1IEBACisjIS9iaW4vc2gKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDA1IExpbnVzIFRvcnZhbGRzCisjCisKK1VTQUdFPSdbLS1tYXgtY291bnQ9PG4+XSBbPHNpbmNlPi4uPGxpbWl0Pl0gWy0tcHJldHR5PTxmb3JtYXQ+XSBbZ2l0LXJldi1saXN0IG9wdGlvbnNdJworU1VCRElSRUNUT1JZX09LPSdZZXMnCisuIGdpdC1zaC1zZXR1cAorCityZXZzPSQoZ2l0LXJldi1wYXJzZSAtLXJldnMtb25seSAtLW5vLWZsYWdzIC0tZGVmYXVsdCBIRUFEICIkQCIpIHx8IGV4aXQKK1sgIiRyZXZzIiBdIHx8IHsKKwlkaWUgIk5vIEhFQUQgcmVmIgorfQorZ2l0LXJldi1saXN0IC0tcHJldHR5ICQoZ2l0LXJldi1wYXJzZSAtLWRlZmF1bHQgSEVBRCAiJEAiKSB8CitMRVNTPS1TICR7UEFHRVI6LWxlc3N9CmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2dpdC1tZXJnZS5zaCBiL2NvbnRyaWIvZXhhbXBsZXMvZ2l0LW1lcmdlLnNoCmluZGV4IDdiOTIyYzMuLmE1ZTQyYTkgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvZXhhbXBsZXMvZ2l0LW1lcmdlLnNoCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvZ2l0LW1lcmdlLnNoCkBAIC0yNjMsNyArMjYzLDcgQEAKIAogIyBUaGlzIGNvdWxkIGJlIHRyYWRpdGlvbmFsICJtZXJnZSA8bXNnPiBIRUFEIDxjb21taXQ+Li4uIiAgYW5kIHRoZQogIyB3YXkgd2UgY2FuIHRlbGwgaXQgaXMgdG8gc2VlIGlmIHRoZSBzZWNvbmQgdG9rZW4gaXMgSEVBRCwgYnV0IHNvbWUKLSMgcGVvcGxlIG1pZ2h0IGhhdmUgbWlzdXNlZCB0aGUgaW50ZXJmYWNlIGFuZCB1c2VkIGEgY29tbWl0dGlzaCB0aGF0CisjIHBlb3BsZSBtaWdodCBoYXZlIG1pc3VzZWQgdGhlIGludGVyZmFjZSBhbmQgdXNlZCBhIGNvbW1pdC1pc2ggdGhhdAogIyBpcyB0aGUgc2FtZSBhcyBIRUFEIHRoZXJlIGluc3RlYWQuICBUcmFkaXRpb25hbCBmb3JtYXQgbmV2ZXIgd291bGQKICMgaGF2ZSAiLW0iIHNvIGl0IGlzIGFuIGFkZGl0aW9uYWwgc2FmZXR5IG1lYXN1cmUgdG8gY2hlY2sgZm9yIGl0LgogCmRpZmYgLS1naXQgYS9naXQtcmVwYWNrLnNoIGIvY29udHJpYi9leGFtcGxlcy9naXQtcmVwYWNrLnNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBnaXQtcmVwYWNrLnNoCnJlbmFtZSB0byBjb250cmliL2V4YW1wbGVzL2dpdC1yZXBhY2suc2gKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvZ2l0LXdoYXRjaGFuZ2VkLnNoIGIvY29udHJpYi9leGFtcGxlcy9naXQtd2hhdGNoYW5nZWQuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmVkYmRjNgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvZ2l0LXdoYXRjaGFuZ2VkLnNoCkBAIC0wLDAgKzEsMjggQEAKKyMhL2Jpbi9zaAorCitVU0FHRT0nWy1wXSBbLS1tYXgtY291bnQ9PG4+XSBbPHNpbmNlPi4uPGxpbWl0Pl0gWy0tcHJldHR5PTxmb3JtYXQ+XSBbLW1dIFtnaXQtZGlmZi10cmVlIG9wdGlvbnNdIFtnaXQtcmV2LWxpc3Qgb3B0aW9uc10nCitTVUJESVJFQ1RPUllfT0s9J1llcycKKy4gZ2l0LXNoLXNldHVwCisKK2RpZmZfdHJlZV9mbGFncz0kKGdpdC1yZXYtcGFyc2UgLS1zcSAtLW5vLXJldnMgLS1mbGFncyAiJEAiKSB8fCBleGl0CitjYXNlICIkMCIgaW4KKyp3aGF0Y2hhbmdlZCkKKwljb3VudD0KKwl0ZXN0IC16ICIkZGlmZl90cmVlX2ZsYWdzIiAmJgorCQlkaWZmX3RyZWVfZmxhZ3M9JChnaXQgY29uZmlnIC0tZ2V0IHdoYXRjaGFuZ2VkLmRpZmZ0cmVlKQorCWRpZmZfdHJlZV9kZWZhdWx0X2ZsYWdzPSctYyAtTSAtLWFiYnJldicgOzsKKypzaG93KQorCWNvdW50PS1uMQorCXRlc3QgLXogIiRkaWZmX3RyZWVfZmxhZ3MiICYmCisJCWRpZmZfdHJlZV9mbGFncz0kKGdpdCBjb25maWcgLS1nZXQgc2hvdy5kaWZmdHJlZSkKKwlkaWZmX3RyZWVfZGVmYXVsdF9mbGFncz0nLS1jYyAtLWFsd2F5cycgOzsKK2VzYWMKK3Rlc3QgLXogIiRkaWZmX3RyZWVfZmxhZ3MiICYmCisJZGlmZl90cmVlX2ZsYWdzPSIkZGlmZl90cmVlX2RlZmF1bHRfZmxhZ3MiCisKK3Jldl9saXN0X2FyZ3M9JChnaXQtcmV2LXBhcnNlIC0tc3EgLS1kZWZhdWx0IEhFQUQgLS1yZXZzLW9ubHkgIiRAIikgJiYKK2RpZmZfdHJlZV9hcmdzPSQoZ2l0LXJldi1wYXJzZSAtLXNxIC0tbm8tcmV2cyAtLW5vLWZsYWdzICIkQCIpICYmCisKK2V2YWwgImdpdC1yZXYtbGlzdCAkY291bnQgJHJldl9saXN0X2FyZ3MiIHwKK2V2YWwgImdpdC1kaWZmLXRyZWUgLS1zdGRpbiAtLXByZXR0eSAtciAkZGlmZl90cmVlX2ZsYWdzICRkaWZmX3RyZWVfYXJncyIgfAorTEVTUz0iJExFU1MgLVMiICR7UEFHRVI6LWxlc3N9CmRpZmYgLS1naXQgYS9jb250cmliL2dpdHZpZXcvZ2l0dmlldyBiL2NvbnRyaWIvZ2l0dmlldy9naXR2aWV3CmluZGV4IDRjOTlkZmIuLjRlMjNjNjUgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvZ2l0dmlldy9naXR2aWV3CisrKyBiL2NvbnRyaWIvZ2l0dmlldy9naXR2aWV3CkBAIC0xMjA1LDcgKzEyMDUsNyBAQAogCiAJCSNUaGUgZmlyc3QgcGFyZW50IGFsd2F5cyBjb250aW51ZSBvbiB0aGUgc2FtZSBsaW5lCiAJCXRyeToKLQkJCSMgY2hlY2sgd2UgYWxyZWF5IGhhdmUgdGhlIHZhbHVlCisJCQkjIGNoZWNrIHdlIGFscmVhZHkgaGF2ZSB0aGUgdmFsdWUKIAkJCXRtcF9ub2RlX3BvcyA9IHNlbGYubm9kZXBvc1tjb21taXQucGFyZW50X3NoYTFbMF1dCiAJCWV4Y2VwdCBLZXlFcnJvcjoKIAkJCXNlbGYuY29sb3Vyc1tjb21taXQucGFyZW50X3NoYTFbMF1dID0gY29sb3VyCmRpZmYgLS1naXQgYS9jb250cmliL2hvb2tzL3Bvc3QtcmVjZWl2ZS1lbWFpbCBiL2NvbnRyaWIvaG9va3MvcG9zdC1yZWNlaXZlLWVtYWlsCmluZGV4IDE1MzExNTAuLjg3NDdiODQgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvaG9va3MvcG9zdC1yZWNlaXZlLWVtYWlsCisrKyBiL2NvbnRyaWIvaG9va3MvcG9zdC1yZWNlaXZlLWVtYWlsCkBAIC0yMiw3ICsyMiw2IEBACiAjIEZvciBleGFtcGxlLCBvbiBkZWJpYW4gdGhlIGhvb2sgaXMgc3RvcmVkIGluCiAjIC91c3Ivc2hhcmUvZ2l0LWNvcmUvY29udHJpYi9ob29rcy9wb3N0LXJlY2VpdmUtZW1haWw6CiAjCi0jICBjaG1vZCBhK3ggcG9zdC1yZWNlaXZlLWVtYWlsCiAjICBjZCAvcGF0aC90by95b3VyL3JlcG9zaXRvcnkuZ2l0CiAjICBsbiAtc2YgL3Vzci9zaGFyZS9naXQtY29yZS9jb250cmliL2hvb2tzL3Bvc3QtcmVjZWl2ZS1lbWFpbCBob29rcy9wb3N0LXJlY2VpdmUKICMKQEAgLTI0Miw2ICsyNDEsOSBAQAogCWNhdCA8PC1FT0YKIAlUbzogJHJlY2lwaWVudHMKIAlTdWJqZWN0OiAke2VtYWlscHJlZml4fSRwcm9qZWN0ZGVzYyAkcmVmbmFtZV90eXBlICRzaG9ydF9yZWZuYW1lICR7Y2hhbmdlX3R5cGV9ZC4gJGRlc2NyaWJlCisJTUlNRS1WZXJzaW9uOiAxLjAKKwlDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgKKwlDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CiAJWC1HaXQtUmVmbmFtZTogJHJlZm5hbWUKIAlYLUdpdC1SZWZ0eXBlOiAkcmVmbmFtZV90eXBlCiAJWC1HaXQtT2xkcmV2OiAkb2xkcmV2CkBAIC00NzEsNyArNDczLDcgQEAKIAllY2hvICIgICAgICAgd2FzICAkb2xkcmV2IgogCWVjaG8gIiIKIAllY2hvICRMT0dCRUdJTgotCWdpdCBzaG93IC1zIC0tcHJldHR5PW9uZWxpbmUgJG9sZHJldgorCWdpdCBkaWZmLXRyZWUgLXMgLS1hbHdheXMgLS1lbmNvZGluZz1VVEYtOCAtLXByZXR0eT1vbmVsaW5lICRvbGRyZXYKIAllY2hvICRMT0dFTkQKIH0KIApAQCAtNTQ3LDExICs1NDksMTEgQEAKIAkJIyBwZXJmb3JtZWQgb24gdGhlbQogCQlpZiBbIC1uICIkcHJldnRhZyIgXTsgdGhlbgogCQkJIyBTaG93IGNoYW5nZXMgc2luY2UgdGhlIHByZXZpb3VzIHJlbGVhc2UKLQkJCWdpdCByZXYtbGlzdCAtLXByZXR0eT1zaG9ydCAiJHByZXZ0YWcuLiRuZXdyZXYiIHwgZ2l0IHNob3J0bG9nCisJCQlnaXQgc2hvcnRsb2cgIiRwcmV2dGFnLi4kbmV3cmV2IgogCQllbHNlCiAJCQkjIE5vIHByZXZpb3VzIHRhZywgc2hvdyBhbGwgdGhlIGNoYW5nZXMgc2luY2UgdGltZQogCQkJIyBiZWdhbgotCQkJZ2l0IHJldi1saXN0IC0tcHJldHR5PXNob3J0ICRuZXdyZXYgfCBnaXQgc2hvcnRsb2cKKwkJCWdpdCBzaG9ydGxvZyAkbmV3cmV2CiAJCWZpCiAJCTs7CiAJKikKQEAgLTU3MSw3ICs1NzMsNyBAQAogCWVjaG8gIiAgICAgICB3YXMgICRvbGRyZXYiCiAJZWNobyAiIgogCWVjaG8gJExPR0JFR0lOCi0JZ2l0IHNob3cgLXMgLS1wcmV0dHk9b25lbGluZSAkb2xkcmV2CisJZ2l0IGRpZmYtdHJlZSAtcyAtLWFsd2F5cyAtLWVuY29kaW5nPVVURi04IC0tcHJldHR5PW9uZWxpbmUgJG9sZHJldgogCWVjaG8gJExPR0VORAogfQogCkBAIC02MTcsNyArNjE5LDcgQEAKIAllY2hvICIiCiAJaWYgWyAiJG5ld3Jldl90eXBlIiA9ICJjb21taXQiIF07IHRoZW4KIAkJZWNobyAkTE9HQkVHSU4KLQkJZ2l0IHNob3cgLS1uby1jb2xvciAtLXJvb3QgLXMgLS1wcmV0dHk9bWVkaXVtICRuZXdyZXYKKwkJZ2l0IGRpZmYtdHJlZSAtcyAtLWFsd2F5cyAtLWVuY29kaW5nPVVURi04IC0tcHJldHR5PW1lZGl1bSAkbmV3cmV2CiAJCWVjaG8gJExPR0VORAogCWVsc2UKIAkJIyBXaGF0IGNhbiB3ZSBkbyBoZXJlPyAgVGhlIHRhZyBtYXJrcyBhbiBvYmplY3QgdGhhdCBpcyBub3QKQEAgLTYzNiw3ICs2MzgsNyBAQAogCWVjaG8gIiAgICAgICB3YXMgICRvbGRyZXYiCiAJZWNobyAiIgogCWVjaG8gJExPR0JFR0lOCi0JZ2l0IHNob3cgLXMgLS1wcmV0dHk9b25lbGluZSAkb2xkcmV2CisJZ2l0IGRpZmYtdHJlZSAtcyAtLWFsd2F5cyAtLWVuY29kaW5nPVVURi04IC0tcHJldHR5PW9uZWxpbmUgJG9sZHJldgogCWVjaG8gJExPR0VORAogfQogCmRpZmYgLS1naXQgYS9jb250cmliL2hvb2tzL3ByZS1hdXRvLWdjLWJhdHRlcnkgYi9jb250cmliL2hvb2tzL3ByZS1hdXRvLWdjLWJhdHRlcnkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCAxZjkxNGM5Li45ZDBjMmQxCi0tLSBhL2NvbnRyaWIvaG9va3MvcHJlLWF1dG8tZ2MtYmF0dGVyeQorKysgYi9jb250cmliL2hvb2tzL3ByZS1hdXRvLWdjLWJhdHRlcnkKQEAgLTEzLDcgKzEzLDYgQEAKICMgRm9yIGV4YW1wbGUsIGlmIHRoZSBob29rIGlzIHN0b3JlZCBpbgogIyAvdXNyL3NoYXJlL2dpdC1jb3JlL2NvbnRyaWIvaG9va3MvcHJlLWF1dG8tZ2MtYmF0dGVyeToKICMKLSMgY2htb2QgYSt4IHByZS1hdXRvLWdjLWJhdHRlcnkKICMgY2QgL3BhdGgvdG8veW91ci9yZXBvc2l0b3J5LmdpdAogIyBsbiAtc2YgL3Vzci9zaGFyZS9naXQtY29yZS9jb250cmliL2hvb2tzL3ByZS1hdXRvLWdjLWJhdHRlcnkgXAogIwlob29rcy9wcmUtYXV0by1nYwpkaWZmIC0tZ2l0IGEvY29udHJpYi9ob29rcy9zZXRnaXRwZXJtcy5wZXJsIGIvY29udHJpYi9ob29rcy9zZXRnaXRwZXJtcy5wZXJsCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaG9va3MvdXBkYXRlLXBhcmFub2lkIGIvY29udHJpYi9ob29rcy91cGRhdGUtcGFyYW5vaWQKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvY29udHJpYi9tdy10by1naXQvTWFrZWZpbGUgYi9jb250cmliL213LXRvLWdpdC9NYWtlZmlsZQppbmRleCA3NmZjZDRkLi5hNGI2ZjdhIDEwMDY0NAotLS0gYS9jb250cmliL213LXRvLWdpdC9NYWtlZmlsZQorKysgYi9jb250cmliL213LXRvLWdpdC9NYWtlZmlsZQpAQCAtMTgsMTQgKzE4LDI1IEBACiBHSVRfUk9PVF9ESVI9Li4vLi4KIEhFUkU9Y29udHJpYi9tdy10by1naXQvCiAKK0lOU1RBTEwgPSBpbnN0YWxsCisKIFNDUklQVF9QRVJMX0ZVTEw9JChwYXRzdWJzdCAlLCQoSEVSRSkvJSwkKFNDUklQVF9QRVJMKSkKIElOU1RMSUJESVI9JChzaGVsbCAkKE1BS0UpIC1DICQoR0lUX1JPT1RfRElSKS9wZXJsIFwKICAgICAgICAgICAgICAgICAtcyAtLW5vLXByaW50LWRpcmVjdG9yeSBpbnN0bGliZGlyKQorREVTVERJUl9TUSA9ICQoc3Vic3QgJywnXCcnLCQoREVTVERJUikpCitJTlNUTElCRElSX1NRID0gJChzdWJzdCAnLCdcJycsJChJTlNUTElCRElSKSkKIAogYWxsOiBidWlsZAogCit0ZXN0OiBhbGwKKwkkKE1BS0UpIC1DIHQKKworY2hlY2s6IHBlcmxjcml0aWMgdGVzdAorCiBpbnN0YWxsX3BtOgotCWluc3RhbGwgJChHSVRfTUVESUFXSUtJX1BNKSAkKElOU1RMSUJESVIpLyQoR0lUX01FRElBV0lLSV9QTSkKKwkkKElOU1RBTEwpIC1kIC1tIDc1NSAnJChERVNURElSX1NRKSQoSU5TVExJQkRJUl9TUSkvR2l0JworCSQoSU5TVEFMTCkgLW0gNjQ0ICQoR0lUX01FRElBV0lLSV9QTSkgXAorCQknJChERVNURElSX1NRKSQoSU5TVExJQkRJUl9TUSkvJChHSVRfTUVESUFXSUtJX1BNKScKIAogYnVpbGQ6CiAJJChNQUtFKSAtQyAkKEdJVF9ST09UX0RJUikgU0NSSVBUX1BFUkw9IiQoU0NSSVBUX1BFUkxfRlVMTCkiIFwKQEAgLTM4LDcgKzQ5LDkgQEAKIGNsZWFuOgogCSQoTUFLRSkgLUMgJChHSVRfUk9PVF9ESVIpIFNDUklQVF9QRVJMPSIkKFNDUklQVF9QRVJMX0ZVTEwpIiBcCiAgICAgICAgICAgICAgICAgY2xlYW4tcGVybC1zY3JpcHQKLQlybSAkKElOU1RMSUJESVIpLyQoR0lUX01FRElBV0lLSV9QTSkKIAogcGVybGNyaXRpYzoKLQlwZXJsY3JpdGljIC0yICoucGVybAorCXBlcmxjcml0aWMgLTUgJChTQ1JJUFRfUEVSTCkKKwktcGVybGNyaXRpYyAtMiAkKFNDUklQVF9QRVJMKQorCisuUEhPTlk6IGFsbCB0ZXN0IGNoZWNrIGluc3RhbGxfcG0gaW5zdGFsbCBjbGVhbiBwZXJsY3JpdGljCmRpZmYgLS1naXQgYS9jb250cmliL213LXRvLWdpdC9naXQtcmVtb3RlLW1lZGlhd2lraS5wZXJsIGIvY29udHJpYi9tdy10by1naXQvZ2l0LXJlbW90ZS1tZWRpYXdpa2kucGVybAppbmRleCA4NWQwYzQyLi4zZjhkOTkzIDEwMDc1NQotLS0gYS9jb250cmliL213LXRvLWdpdC9naXQtcmVtb3RlLW1lZGlhd2lraS5wZXJsCisrKyBiL2NvbnRyaWIvbXctdG8tZ2l0L2dpdC1yZW1vdGUtbWVkaWF3aWtpLnBlcmwKQEAgLTU5MCw2ICs1OTAsOSBAQAogCXByaW50IHsqU1RET1VUfSAiaW1wb3J0XG4iOwogCXByaW50IHsqU1RET1VUfSAibGlzdFxuIjsKIAlwcmludCB7KlNURE9VVH0gInB1c2hcbiI7CisJaWYgKCRkdW1iX3B1c2gpIHsKKwkJcHJpbnQgeypTVERPVVR9ICJuby1wcml2YXRlLXVwZGF0ZVxuIjsKKwl9CiAJcHJpbnQgeypTVERPVVR9ICJcbiI7CiAJcmV0dXJuOwogfQpAQCAtMTIyMSw3ICsxMjI0LDYgQEAKIAkJfQogCQlpZiAoISRkdW1iX3B1c2gpIHsKIAkJCXJ1bl9naXQocXEobm90ZXMgLS1yZWY9JHtyZW1vdGVuYW1lfS9tZWRpYXdpa2kgYWRkIC1mIC1tICJtZWRpYXdpa2lfcmV2aXNpb246ICR7bXdfcmV2aXNpb259IiAke3NoYTFfY29tbWl0fSkpOwotCQkJcnVuX2dpdChxcSh1cGRhdGUtcmVmIC1tICJHaXQtTWVkaWFXaWtpIHB1c2giIHJlZnMvbWVkaWF3aWtpLyR7cmVtb3RlbmFtZX0vbWFzdGVyICR7c2hhMV9jb21taXR9ICR7c2hhMV9jaGlsZH0pKTsKIAkJfQogCX0KIApAQCAtMTMxMyw3ICsxMzE1LDcgQEAKIAkjIFN0b3JlICJub3RBTmFtZVNwYWNlIiBhcyBzcGVjaWFsIHZhbHVlIGZvciBpbmV4aXN0aW5nIG5hbWVzcGFjZXMKIAlteSAkc3RvcmVfaWQgPSAoJGlkIHx8ICdub3RBTmFtZVNwYWNlJyk7CiAKLQkjIFN0b3JlIGV4cGxpY2l0ZWx5IHJlcXVlc3RlZCBuYW1lc3BhY2VzIG9uIGRpc2sKKwkjIFN0b3JlIGV4cGxpY2l0bHkgcmVxdWVzdGVkIG5hbWVzcGFjZXMgb24gZGlzawogCWlmICghZXhpc3RzICRjYWNoZWRfbXdfbmFtZXNwYWNlX2lkeyRuYW1lfSkgewogCQlydW5fZ2l0KHFxKGNvbmZpZyAtLWFkZCByZW1vdGUuJHtyZW1vdGVuYW1lfS5uYW1lc3BhY2VDYWNoZSAiJHtuYW1lfToke3N0b3JlX2lkfSIpKTsKIAkJJGNhY2hlZF9td19uYW1lc3BhY2VfaWR7JG5hbWV9ID0gMTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbXctdG8tZ2l0L3QvdGVzdC1naXRtdy1saWIuc2ggYi9jb250cmliL213LXRvLWdpdC90L3Rlc3QtZ2l0bXctbGliLnNoCmluZGV4IGNhNjg2MGYuLjMzNzJiMmEgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvbXctdG8tZ2l0L3QvdGVzdC1naXRtdy1saWIuc2gKKysrIGIvY29udHJpYi9tdy10by1naXQvdC90ZXN0LWdpdG13LWxpYi5zaApAQCAtOTEsNyArOTEsNyBAQAogIyBDaGVjayB0aGF0IDxkaXI+IGNvbnRhaW5zIGV4YWN0bHkgPE4+IGZpbGVzCiB0ZXN0X2NvbnRhaW5zX05fZmlsZXMgKCkgewogCWlmIHRlc3QgYGxzIC0tICIkMSIgfCB3YyAtbGAgLW5lICIkMiI7IHRoZW4KLQkJZWNobyAiZGlyZWN0b3J5ICQxIHNvdWxkIGNvbnRhaW4gJDIgZmlsZXMiCisJCWVjaG8gImRpcmVjdG9yeSAkMSBzaG91bGQgY29udGFpbiAkMiBmaWxlcyIKIAkJZWNobyAiaXQgY29udGFpbnMgdGhlc2UgZmlsZXM6IgogCQlscyAiJDEiCiAJCWZhbHNlCmRpZmYgLS1naXQgYS9jb250cmliL213LXRvLWdpdC90L3Rlc3QuY29uZmlnIGIvY29udHJpYi9tdy10by1naXQvdC90ZXN0LmNvbmZpZwppbmRleCA0Y2ZlYmU5Li41YmEwNjg0IDEwMDY0NAotLS0gYS9jb250cmliL213LXRvLWdpdC90L3Rlc3QuY29uZmlnCisrKyBiL2NvbnRyaWIvbXctdG8tZ2l0L3QvdGVzdC5jb25maWcKQEAgLTEyLDcgKzEyLDcgQEAKIFRNUD0vdG1wCiBEQl9GSUxFPXdpa2lkYi5zcWxpdGUKIAotIyBJZiBMSUdIVFRQRCBpcyBub3Qgc2V0IHRvIHRydWUsIHRoZSBzY3JpcHQgd2lsbCB1c2UgdGhlIGRlZmF1dAorIyBJZiBMSUdIVFRQRCBpcyBub3Qgc2V0IHRvIHRydWUsIHRoZSBzY3JpcHQgd2lsbCB1c2UgdGhlIGRlZmF1bHQKICMgd2ViIHNlcnZlciBydW5uaW5nIGluIFdJS0lfRElSX0lOU1QuCiBXSUtJX0RJUl9JTlNUPS92YXIvd3d3CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcDRpbXBvcnQvUkVBRE1FIGIvY29udHJpYi9wNGltcG9ydC9SRUFETUUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5ODkyYjYuLjAwMDAwMDAKLS0tIGEvY29udHJpYi9wNGltcG9ydC9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1QbGVhc2Ugc2VlIGNvbnRyaWIvZmFzdC1pbXBvcnQvZ2l0LXA0IGZvciBhIGJldHRlciBQZXJmb3JjZSBpbXBvcnRlci4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcDRpbXBvcnQvZ2l0LXA0aW1wb3J0LnB5IGIvY29udHJpYi9wNGltcG9ydC9naXQtcDRpbXBvcnQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5M2Q2YTAuLjAwMDAwMDAKLS0tIGEvY29udHJpYi9wNGltcG9ydC9naXQtcDRpbXBvcnQucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNjUgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIFRoaXMgdG9vbCBpcyBjb3B5cmlnaHQgKGMpIDIwMDYsIFNlYW4gRXN0YWJyb29rcy4KLSMgSXQgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIEdudSBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLgotIwotIyBJbXBvcnQgUGVyZm9yY2UgYnJhbmNoZXMgaW50byBHaXQgcmVwb3NpdG9yaWVzLgotIyBDaGVja2luZyBvdXQgdGhlIGZpbGVzIGlzIGRvbmUgYnkgY2FsbGluZyB0aGUgc3RhbmRhcmQgcDQKLSMgY2xpZW50IHdoaWNoIHlvdSBtdXN0IGhhdmUgcHJvcGVybHkgY29uZmlndXJlZCB5b3Vyc2VsZgotIwotCi1pbXBvcnQgbWFyc2hhbAotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1pbXBvcnQgdGltZQotaW1wb3J0IGdldG9wdAotCi1pZiBzeXMuaGV4dmVyc2lvbiA8IDB4MDIwMjAwMDA6Ci0gICAjIFRoZSBiZWhhdmlvciBvZiB0aGUgbWFyc2hhbCBtb2R1bGUgY2hhbmdlZCBzaWduaWZpY2FudGx5IGluIDIuMgotICAgc3lzLnN0ZGVyci53cml0ZSgiZ2l0LXA0aW1wb3J0LnB5OiByZXF1aXJlcyBQeXRob24gMi4yIG9yIGxhdGVyLlxuIikKLSAgIHN5cy5leGl0KDEpCi0KLWZyb20gc2lnbmFsIGltcG9ydCBzaWduYWwsIFwKLSAgIFNJR1BJUEUsIFNJR0lOVCwgU0lHX0RGTCwgXAotICAgZGVmYXVsdF9pbnRfaGFuZGxlcgotCi1zaWduYWwoU0lHUElQRSwgU0lHX0RGTCkKLXMgPSBzaWduYWwoU0lHSU5ULCBTSUdfREZMKQotaWYgcyAhPSBkZWZhdWx0X2ludF9oYW5kbGVyOgotICAgc2lnbmFsKFNJR0lOVCwgcykKLQotZGVmIGRpZShtc2csICphcmdzKToKLSAgICBmb3IgYSBpbiBhcmdzOgotICAgICAgICBtc2cgPSAiJXMgJXMiICUgKG1zZywgYSkKLSAgICBwcmludCAiZ2l0LXA0aW1wb3J0IGZhdGFsIGVycm9yOiIsIG1zZwotICAgIHN5cy5leGl0KDEpCi0KLWRlZiB1c2FnZSgpOgotICAgIHByaW50ICJVU0FHRTogZ2l0LXA0aW1wb3J0IFstcXwtdl0gIFstLWF1dGhvcnM9PGZpbGU+XSAgWy10IDx0aW1lem9uZT5dICBbLy9wNHJlcG8vcGF0aCA8YnJhbmNoPl0iCi0gICAgc3lzLmV4aXQoMSkKLQotdmVyYm9zaXR5ID0gMQotbG9nZmlsZSA9ICIvZGV2L251bGwiCi1pZ25vcmVfd2FybmluZ3MgPSBGYWxzZQotc3RpdGNoID0gMAotdGFnYWxsID0gVHJ1ZQotCi1kZWYgcmVwb3J0KGxldmVsLCBtc2csICphcmdzKToKLSAgICBnbG9iYWwgdmVyYm9zaXR5Ci0gICAgZ2xvYmFsIGxvZ2ZpbGUKLSAgICBmb3IgYSBpbiBhcmdzOgotICAgICAgICBtc2cgPSAiJXMgJXMiICUgKG1zZywgYSkKLSAgICBmZCA9IG9wZW4obG9nZmlsZSwgImEiKQotICAgIGZkLndyaXRlbGluZXMobXNnKQotICAgIGZkLmNsb3NlKCkKLSAgICBpZiBsZXZlbCA8PSB2ZXJib3NpdHk6Ci0gICAgICAgIHByaW50IG1zZwotCi1jbGFzcyBwNF9jb21tYW5kOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBfcmVwb3BhdGgpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBnbG9iYWwgbG9nZmlsZQotICAgICAgICAgICAgc2VsZi51c2VybGlzdCA9IHt9Ci0gICAgICAgICAgICBpZiBfcmVwb3BhdGhbLTFdID09ICcvJzoKLSAgICAgICAgICAgICAgICBzZWxmLnJlcG9wYXRoID0gX3JlcG9wYXRoWzotMV0KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5yZXBvcGF0aCA9IF9yZXBvcGF0aAotICAgICAgICAgICAgaWYgc2VsZi5yZXBvcGF0aFstNDpdICE9ICIvLi4uIjoKLSAgICAgICAgICAgICAgICBzZWxmLnJlcG9wYXRoPSAiJXMvLi4uIiAlIHNlbGYucmVwb3BhdGgKLSAgICAgICAgICAgIGY9b3MucG9wZW4oJ3A0IC1WIDI+PiVzJyVsb2dmaWxlLCAncmInKQotICAgICAgICAgICAgYSA9IGYucmVhZGxpbmVzKCkKLSAgICAgICAgICAgIGlmIGYuY2xvc2UoKToKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICAgICAgZGllKCJDb3VsZCBub3QgZmluZCB0aGUgXCJwNFwiIGNvbW1hbmQiKQotCi0gICAgZGVmIHA0KHNlbGYsIGNtZCwgKmFyZ3MpOgotICAgICAgICBnbG9iYWwgbG9nZmlsZQotICAgICAgICBjbWQgPSAiJXMgJXMiICUgKGNtZCwgJyAnLmpvaW4oYXJncykpCi0gICAgICAgIHJlcG9ydCgyLCAiUDQ6IiwgY21kKQotICAgICAgICBmPW9zLnBvcGVuKCdwNCAtRyAlcyAyPj4lcycgJSAoY21kLGxvZ2ZpbGUpLCAncmInKQotICAgICAgICBsaXN0ID0gW10KLSAgICAgICAgd2hpbGUgMToKLSAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGxpc3QuYXBwZW5kKG1hcnNoYWwubG9hZChmKSkKLSAgICAgICAgICAgZXhjZXB0IEVPRkVycm9yOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIHNlbGYucmV0ID0gZi5jbG9zZSgpCi0gICAgICAgIHJldHVybiBsaXN0Ci0KLSAgICBkZWYgc3luYyhzZWxmLCBpZCwgZm9yY2U9RmFsc2UsIHRyaWNrPUZhbHNlLCB0ZXN0PUZhbHNlKToKLSAgICAgICAgaWYgZm9yY2U6Ci0gICAgICAgICAgICByZXQgPSBzZWxmLnA0KCJzeW5jIC1mICVzQCVzIiUoc2VsZi5yZXBvcGF0aCwgaWQpKVswXQotICAgICAgICBlbGlmIHRyaWNrOgotICAgICAgICAgICAgcmV0ID0gc2VsZi5wNCgic3luYyAtayAlc0AlcyIlKHNlbGYucmVwb3BhdGgsIGlkKSlbMF0KLSAgICAgICAgZWxpZiB0ZXN0OgotICAgICAgICAgICAgcmV0ID0gc2VsZi5wNCgic3luYyAtbiAlc0AlcyIlKHNlbGYucmVwb3BhdGgsIGlkKSlbMF0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldCA9IHNlbGYucDQoInN5bmMgICAgJXNAJXMiJShzZWxmLnJlcG9wYXRoLCBpZCkpWzBdCi0gICAgICAgIGlmIHJldFsnY29kZSddID09ICJlcnJvciI6Ci0gICAgICAgICAgICAgZGF0YSA9IHJldFsnZGF0YSddLnVwcGVyKCkKLSAgICAgICAgICAgICBpZiBkYXRhLmZpbmQoJ1ZJRVcnKSA+IDA6Ci0gICAgICAgICAgICAgICAgIGRpZSgiUGVyZm9yY2UgcmVwb3J0cyAlcyBpcyBub3QgaW4gY2xpZW50IHZpZXciJSBzZWxmLnJlcG9wYXRoKQotICAgICAgICAgICAgIGVsaWYgZGF0YS5maW5kKCdVUC1UTy1EQVRFJykgPCAwOgotICAgICAgICAgICAgICAgICBkaWUoIkNvdWxkIG5vdCBzeW5jIGZpbGVzIGZyb20gcGVyZm9yY2UiLCBzZWxmLnJlcG9wYXRoKQotCi0gICAgZGVmIGNoYW5nZXMoc2VsZiwgc2luY2U9MCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGxpc3QgPSBbXQotICAgICAgICAgICAgZm9yIHJlYyBpbiBzZWxmLnA0KCJjaGFuZ2VzICVzQCVzLCNoZWFkIiAlIChzZWxmLnJlcG9wYXRoLCBzaW5jZSsxKSk6Ci0gICAgICAgICAgICAgICAgbGlzdC5hcHBlbmQocmVjWydjaGFuZ2UnXSkKLSAgICAgICAgICAgIGxpc3QucmV2ZXJzZSgpCi0gICAgICAgICAgICByZXR1cm4gbGlzdAotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICByZXR1cm4gW10KLQotICAgIGRlZiBhdXRob3JzKHNlbGYsIGZpbGVuYW1lKToKLSAgICAgICAgZj1vcGVuKGZpbGVuYW1lKQotICAgICAgICBmb3IgbCBpbiBmLnJlYWRsaW5lcygpOgotICAgICAgICAgICAgc2VsZi51c2VybGlzdFtsWzpsLmZpbmQoJz0nKV0ucnN0cmlwKCldID0gXAotICAgICAgICAgICAgICAgICAgICAobFtsLmZpbmQoJz0nKSsxOmwuZmluZCgnPCcpXS5yc3RyaXAoKSxsW2wuZmluZCgnPCcpKzE6bC5maW5kKCc+JyldKQotICAgICAgICBmLmNsb3NlKCkKLSAgICAgICAgZm9yIGYsZSBpbiBzZWxmLnVzZXJsaXN0Lml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgcmVwb3J0KDIsIGYsICI6IiwgZVswXSwgIiAgPCIsIGVbMV0sICI+IikKLQotICAgIGRlZiBfZ2V0X3VzZXIoc2VsZiwgaWQpOgotICAgICAgICBpZiBub3Qgc2VsZi51c2VybGlzdC5oYXNfa2V5KGlkKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB1c2VyID0gc2VsZi5wNCgidXNlcnMiLCBpZClbMF0KLSAgICAgICAgICAgICAgICBzZWxmLnVzZXJsaXN0W2lkXSA9ICh1c2VyWydGdWxsTmFtZSddLCB1c2VyWydFbWFpbCddKQotICAgICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgIHNlbGYudXNlcmxpc3RbaWRdID0gKGlkLCAiIikKLSAgICAgICAgcmV0dXJuIHNlbGYudXNlcmxpc3RbaWRdCi0KLSAgICBkZWYgX2Zvcm1hdF9kYXRlKHNlbGYsIHRpY2tzKToKLSAgICAgICAgc3ltYm9sPScrJwotICAgICAgICBuYW1lID0gdGltZS50em5hbWVbMF0KLSAgICAgICAgb2Zmc2V0ID0gdGltZS50aW1lem9uZQotICAgICAgICBpZiB0aWNrc1s4XToKLSAgICAgICAgICAgIG5hbWUgPSB0aW1lLnR6bmFtZVsxXQotICAgICAgICAgICAgb2Zmc2V0ID0gdGltZS5hbHR6b25lCi0gICAgICAgIGlmIG9mZnNldCA8IDA6Ci0gICAgICAgICAgICBvZmZzZXQgKj0gLTEKLSAgICAgICAgICAgIHN5bWJvbCA9ICctJwotICAgICAgICBsb2NhbG8gPSAiJXMlMDJkJTAyZCAlcyIgJSAoc3ltYm9sLCBvZmZzZXQgLyAzNjAwLCBvZmZzZXQgJSAzNjAwLCBuYW1lKQotICAgICAgICB0aWNrc28gPSB0aW1lLnN0cmZ0aW1lKCIlYSAlYiAlZCAlSDolTTolUyAlWSIsIHRpY2tzKQotICAgICAgICByZXR1cm4gIiVzICVzIiAlICh0aWNrc28sIGxvY2FsbykKLQotICAgIGRlZiB3aGVyZShzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYucDQoIndoZXJlICVzIiAlIHNlbGYucmVwb3BhdGgpWy0xXVsncGF0aCddCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHJldHVybiAiIgotCi0gICAgZGVmIGRlc2NyaWJlKHNlbGYsIG51bSk6Ci0gICAgICAgIGRlc2MgPSBzZWxmLnA0KCJkZXNjcmliZSAtcyIsIG51bSlbMF0KLSAgICAgICAgc2VsZi5tc2cgPSBkZXNjWydkZXNjJ10KLSAgICAgICAgc2VsZi5hdXRob3IsIHNlbGYuZW1haWwgPSBzZWxmLl9nZXRfdXNlcihkZXNjWyd1c2VyJ10pCi0gICAgICAgIHNlbGYuZGF0ZSA9IHNlbGYuX2Zvcm1hdF9kYXRlKHRpbWUubG9jYWx0aW1lKGxvbmcoZGVzY1sndGltZSddKSkpCi0gICAgICAgIHJldHVybiBzZWxmCi0KLWNsYXNzIGdpdF9jb21tYW5kOgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi52ZXJzaW9uID0gc2VsZi5naXQoIi0tdmVyc2lvbiIpWzBdWzEyOl0ucnN0cmlwKCkKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgZGllKCJDb3VsZCBub3QgZmluZCB0aGUgXCJnaXRcIiBjb21tYW5kIikKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5naXRkaXIgPSBzZWxmLmdldF9zaW5nbGUoInJldi1wYXJzZSAtLWdpdC1kaXIiKQotICAgICAgICAgICAgcmVwb3J0KDIsICJnZGlyOiIsIHNlbGYuZ2l0ZGlyKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICBkaWUoIk5vdCBhIGdpdCByZXBvc2l0b3J5Li4uIGRpZCB5b3UgZm9yZ2V0IHRvIFwiZ2l0IGluaXRcIiA/IikKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5jZHVwID0gc2VsZi5nZXRfc2luZ2xlKCJyZXYtcGFyc2UgLS1zaG93LWNkdXAiKQotICAgICAgICAgICAgaWYgc2VsZi5jZHVwICE9ICIiOgotICAgICAgICAgICAgICAgIG9zLmNoZGlyKHNlbGYuY2R1cCkKLSAgICAgICAgICAgIHNlbGYudG9wZGlyID0gb3MuZ2V0Y3dkKCkKLSAgICAgICAgICAgIHJlcG9ydCgyLCAidG9wZGlyOiIsIHNlbGYudG9wZGlyKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICBkaWUoIkNvdWxkIG5vdCBmaW5kIHRvcCBnaXQgZGlyZWN0b3J5IikKLQotICAgIGRlZiBnaXQoc2VsZiwgY21kKToKLSAgICAgICAgZ2xvYmFsIGxvZ2ZpbGUKLSAgICAgICAgcmVwb3J0KDIsICJHSVQ6IiwgY21kKQotICAgICAgICBmPW9zLnBvcGVuKCdnaXQgJXMgMj4+JXMnICUgKGNtZCxsb2dmaWxlKSwgJ3JiJykKLSAgICAgICAgcj1mLnJlYWRsaW5lcygpCi0gICAgICAgIHNlbGYucmV0ID0gZi5jbG9zZSgpCi0gICAgICAgIHJldHVybiByCi0KLSAgICBkZWYgZ2V0X3NpbmdsZShzZWxmLCBjbWQpOgotICAgICAgICByZXR1cm4gc2VsZi5naXQoY21kKVswXS5yc3RyaXAoKQotCi0gICAgZGVmIGN1cnJlbnRfYnJhbmNoKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0ZXN0aXQgPSBzZWxmLmdpdCgicmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQiKVswXQotICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2l0KCJzeW1ib2xpYy1yZWYgSEVBRCIpWzBdWzExOl0ucnN0cmlwKCkKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBnZXRfY29uZmlnKHNlbGYsIHZhcmlhYmxlKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2l0KCJjb25maWcgLS1nZXQgJXMiICUgdmFyaWFibGUpWzBdLnJzdHJpcCgpCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYgc2V0X2NvbmZpZyhzZWxmLCB2YXJpYWJsZSwgdmFsdWUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLmdpdCgiY29uZmlnICVzICVzIiUodmFyaWFibGUsIHZhbHVlKSApCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIGRpZSgiQ291bGQgbm90IHNldCAlcyB0byAiICUgdmFyaWFibGUsIHZhbHVlKQotCi0gICAgZGVmIG1ha2VfdGFnKHNlbGYsIG5hbWUsIGhlYWQpOgotICAgICAgICBzZWxmLmdpdCgidGFnIC1mICVzICVzIiUobmFtZSxoZWFkKSkKLQotICAgIGRlZiB0b3BfY2hhbmdlKHNlbGYsIGJyYW5jaCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGE9c2VsZi5nZXRfc2luZ2xlKCJuYW1lLXJldiAtLXRhZ3MgcmVmcy9oZWFkcy8lcyIgJSBicmFuY2gpCi0gICAgICAgICAgICBsb2MgPSBhLmZpbmQoJyB0YWdzLycpICsgNgotICAgICAgICAgICAgaWYgYVtsb2M6bG9jKzNdICE9ICJwNC8iOgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICByZXR1cm4gaW50KGFbbG9jKzM6XVs6LTJdKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICByZXR1cm4gMAotCi0gICAgZGVmIHVwZGF0ZV9pbmRleChzZWxmKToKLSAgICAgICAgc2VsZi5naXQoImxzLWZpbGVzIC1tIC1kIC1vIC16IHwgZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCAtLXJlbW92ZSAteiAtLXN0ZGluIikKLQotICAgIGRlZiBjaGVja291dChzZWxmLCBicmFuY2gpOgotICAgICAgICBzZWxmLmdpdCgiY2hlY2tvdXQgJXMiICUgYnJhbmNoKQotCi0gICAgZGVmIHJlcG9pbnRfaGVhZChzZWxmLCBicmFuY2gpOgotICAgICAgICBzZWxmLmdpdCgic3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8lcyIgJSBicmFuY2gpCi0KLSAgICBkZWYgcmVtb3ZlX2ZpbGVzKHNlbGYpOgotICAgICAgICBzZWxmLmdpdCgibHMtZmlsZXMgfCB4YXJncyBybSIpCi0KLSAgICBkZWYgY2xlYW5fZGlyZWN0b3JpZXMoc2VsZik6Ci0gICAgICAgIHNlbGYuZ2l0KCJjbGVhbiAtZCIpCi0KLSAgICBkZWYgZnJlc2hfYnJhbmNoKHNlbGYsIGJyYW5jaCk6Ci0gICAgICAgIHJlcG9ydCgxLCAiQ3JlYXRpbmcgbmV3IGJyYW5jaCIsIGJyYW5jaCkKLSAgICAgICAgc2VsZi5naXQoImxzLWZpbGVzIHwgeGFyZ3Mgcm0iKQotICAgICAgICBvcy5yZW1vdmUoIi5naXQvaW5kZXgiKQotICAgICAgICBzZWxmLnJlcG9pbnRfaGVhZChicmFuY2gpCi0gICAgICAgIHNlbGYuZ2l0KCJjbGVhbiAtZCIpCi0KLSAgICBkZWYgYmFzZWRpcihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYudG9wZGlyCi0KLSAgICBkZWYgY29tbWl0KHNlbGYsIGF1dGhvciwgZW1haWwsIGRhdGUsIG1zZywgaWQpOgotICAgICAgICBzZWxmLnVwZGF0ZV9pbmRleCgpCi0gICAgICAgIGZkPW9wZW4oIi5tc2ciLCAidyIpCi0gICAgICAgIGZkLndyaXRlbGluZXMobXNnKQotICAgICAgICBmZC5jbG9zZSgpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBjdXJyZW50ID0gc2VsZi5nZXRfc2luZ2xlKCJyZXYtcGFyc2UgLS12ZXJpZnkgSEVBRCIpCi0gICAgICAgICAgICAgICAgaGVhZCA9ICItcCBIRUFEIgotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICAgICAgY3VycmVudCA9ICIiCi0gICAgICAgICAgICAgICAgaGVhZCA9ICIiCi0gICAgICAgIHRyZWUgPSBzZWxmLmdldF9zaW5nbGUoIndyaXRlLXRyZWUiKQotICAgICAgICBmb3IgcixsIGluIFsoJ0RBVEUnLGRhdGUpLCgnTkFNRScsYXV0aG9yKSwoJ0VNQUlMJyxlbWFpbCldOgotICAgICAgICAgICAgb3MuZW52aXJvblsnR0lUX0FVVEhPUl8lcyclcl0gPSBsCi0gICAgICAgICAgICBvcy5lbnZpcm9uWydHSVRfQ09NTUlUVEVSXyVzJyVyXSA9IGwKLSAgICAgICAgY29tbWl0ID0gc2VsZi5nZXRfc2luZ2xlKCJjb21taXQtdHJlZSAlcyAlcyA8IC5tc2ciICUgKHRyZWUsaGVhZCkpCi0gICAgICAgIG9zLnJlbW92ZSgiLm1zZyIpCi0gICAgICAgIHNlbGYubWFrZV90YWcoInA0LyVzIiVpZCwgY29tbWl0KQotICAgICAgICBzZWxmLmdpdCgidXBkYXRlLXJlZiBIRUFEICVzICVzIiAlIChjb21taXQsIGN1cnJlbnQpICkKLQotdHJ5OgotICAgIG9wdHMsIGFyZ3MgPSBnZXRvcHQuZ2V0b3B0KHN5cy5hcmd2WzE6XSwgInFodnQ6IiwKLSAgICAgICAgICAgIFsiYXV0aG9ycz0iLCJoZWxwIiwic3RpdGNoPSIsInRpbWV6b25lPSIsImxvZz0iLCJpZ25vcmUiLCJub3RhZ3MiXSkKLWV4Y2VwdCBnZXRvcHQuR2V0b3B0RXJyb3I6Ci0gICAgdXNhZ2UoKQotCi1mb3IgbywgYSBpbiBvcHRzOgotICAgIGlmIG8gPT0gIi1xIjoKLSAgICAgICAgdmVyYm9zaXR5ID0gMAotICAgIGlmIG8gPT0gIi12IjoKLSAgICAgICAgdmVyYm9zaXR5ICs9IDEKLSAgICBpZiBvIGluICgiLS1sb2ciKToKLSAgICAgICAgbG9nZmlsZSA9IGEKLSAgICBpZiBvIGluICgiLS1ub3RhZ3MiKToKLSAgICAgICAgdGFnYWxsID0gRmFsc2UKLSAgICBpZiBvIGluICgiLWgiLCAiLS1oZWxwIik6Ci0gICAgICAgIHVzYWdlKCkKLSAgICBpZiBvIGluICgiLS1pZ25vcmUiKToKLSAgICAgICAgaWdub3JlX3dhcm5pbmdzID0gVHJ1ZQotCi1naXQgPSBnaXRfY29tbWFuZCgpCi1icmFuY2g9Z2l0LmN1cnJlbnRfYnJhbmNoKCkKLQotZm9yIG8sIGEgaW4gb3B0czoKLSAgICBpZiBvIGluICgiLXQiLCAiLS10aW1lem9uZSIpOgotICAgICAgICBnaXQuc2V0X2NvbmZpZygicGVyZm9yY2UudGltZXpvbmUiLCBhKQotICAgIGlmIG8gaW4gKCItLXN0aXRjaCIpOgotICAgICAgICBnaXQuc2V0X2NvbmZpZygicGVyZm9yY2UuJXMucGF0aCIgJSBicmFuY2gsIGEpCi0gICAgICAgIHN0aXRjaCA9IDEKLQotaWYgbGVuKGFyZ3MpID09IDI6Ci0gICAgYnJhbmNoID0gYXJnc1sxXQotICAgIGdpdC5jaGVja291dChicmFuY2gpCi0gICAgaWYgYnJhbmNoID09IGdpdC5jdXJyZW50X2JyYW5jaCgpOgotICAgICAgICBkaWUoIkJyYW5jaCAlcyBhbHJlYWR5IGV4aXN0cyEiICUgYnJhbmNoKQotICAgIHJlcG9ydCgxLCAiU2V0dGluZyBwZXJmb3JjZSB0byAiLCBhcmdzWzBdKQotICAgIGdpdC5zZXRfY29uZmlnKCJwZXJmb3JjZS4lcy5wYXRoIiAlIGJyYW5jaCwgYXJnc1swXSkKLWVsaWYgbGVuKGFyZ3MpICE9IDA6Ci0gICAgZGllKCJZb3UgbXVzdCBzcGVjaWZ5IHRoZSBwZXJmb3JjZSAvL2RlcG90L3BhdGggYW5kIGdpdCBicmFuY2giKQotCi1wNHBhdGggPSBnaXQuZ2V0X2NvbmZpZygicGVyZm9yY2UuJXMucGF0aCIgJSBicmFuY2gpCi1pZiBwNHBhdGggPT0gTm9uZToKLSAgICBkaWUoIkRvIG5vdCBrbm93IFBlcmZvcmNlIC8vZGVwb3QvcGF0aCBmb3IgZ2l0IGJyYW5jaCIsIGJyYW5jaCkKLQotcDQgPSBwNF9jb21tYW5kKHA0cGF0aCkKLQotZm9yIG8sIGEgaW4gb3B0czoKLSAgICBpZiBvIGluICgiLWEiLCAiLS1hdXRob3JzIik6Ci0gICAgICAgIHA0LmF1dGhvcnMoYSkKLQotbG9jYWxkaXIgPSBnaXQuYmFzZWRpcigpCi1pZiBwNC53aGVyZSgpWzpsZW4obG9jYWxkaXIpXSAhPSBsb2NhbGRpcjoKLSAgICByZXBvcnQoMSwgIioqV0FSTklORyoqIEFwcGVhcnMgcDQgY2xpZW50IGlzIG1pc2NvbmZpZ3VyZWQiKQotICAgIHJlcG9ydCgxLCAiICAgZm9yIHN5bmMgZnJvbSAlcyB0byAlcyIgJSAocDQucmVwb3BhdGgsIGxvY2FsZGlyKSkKLSAgICBpZiBpZ25vcmVfd2FybmluZ3MgIT0gVHJ1ZToKLSAgICAgICAgZGllKCJSZWNvbmZpZ3VyZSBvciB1c2UgXCItLWlnbm9yZVwiIG9uIGNvbW1hbmQgbGluZSIpCi0KLWlmIHN0aXRjaCA9PSAwOgotICAgIHRvcCA9IGdpdC50b3BfY2hhbmdlKGJyYW5jaCkKLWVsc2U6Ci0gICAgdG9wID0gMAotY2hhbmdlcyA9IHA0LmNoYW5nZXModG9wKQotY291bnQgPSBsZW4oY2hhbmdlcykKLWlmIGNvdW50ID09IDA6Ci0gICAgcmVwb3J0KDEsICJBbHJlYWR5IHVwIHRvIGRhdGUuLi4iKQotICAgIHN5cy5leGl0KDApCi0KLXB0eiA9IGdpdC5nZXRfY29uZmlnKCJwZXJmb3JjZS50aW1lem9uZSIpCi1pZiBwdHo6Ci0gICAgcmVwb3J0KDEsICJTZXR0aW5nIHRpbWV6b25lIHRvIiwgcHR6KQotICAgIG9zLmVudmlyb25bJ1RaJ10gPSBwdHoKLSAgICB0aW1lLnR6c2V0KCkKLQotaWYgc3RpdGNoID09IDE6Ci0gICAgZ2l0LnJlbW92ZV9maWxlcygpCi0gICAgZ2l0LmNsZWFuX2RpcmVjdG9yaWVzKCkKLSAgICBwNC5zeW5jKGNoYW5nZXNbMF0sIGZvcmNlPVRydWUpCi1lbGlmIHRvcCA9PSAwIGFuZCBicmFuY2ggIT0gZ2l0LmN1cnJlbnRfYnJhbmNoKCk6Ci0gICAgcDQuc3luYyhjaGFuZ2VzWzBdLCB0ZXN0PVRydWUpCi0gICAgcmVwb3J0KDEsICJDcmVhdGluZyBuZXcgaW5pdGlhbCBjb21taXQiKTsKLSAgICBnaXQuZnJlc2hfYnJhbmNoKGJyYW5jaCkKLSAgICBwNC5zeW5jKGNoYW5nZXNbMF0sIGZvcmNlPVRydWUpCi1lbHNlOgotICAgIHA0LnN5bmMoY2hhbmdlc1swXSwgdHJpY2s9VHJ1ZSkKLQotcmVwb3J0KDEsICJwcm9jZXNzaW5nICVzIGNoYW5nZXMgZnJvbSBwNCAoJXMpIHRvIGdpdCAoJXMpIiAlIChjb3VudCwgcDQucmVwb3BhdGgsIGJyYW5jaCkpCi1mb3IgaWQgaW4gY2hhbmdlczoKLSAgICByZXBvcnQoMSwgIkltcG9ydGluZyBjaGFuZ2VzZXQiLCBpZCkKLSAgICBjaGFuZ2UgPSBwNC5kZXNjcmliZShpZCkKLSAgICBwNC5zeW5jKGlkKQotICAgIGlmIHRhZ2FsbCA6Ci0gICAgICAgICAgICBnaXQuY29tbWl0KGNoYW5nZS5hdXRob3IsIGNoYW5nZS5lbWFpbCwgY2hhbmdlLmRhdGUsIGNoYW5nZS5tc2csIGlkKQotICAgIGVsc2U6Ci0gICAgICAgICAgICBnaXQuY29tbWl0KGNoYW5nZS5hdXRob3IsIGNoYW5nZS5lbWFpbCwgY2hhbmdlLmRhdGUsIGNoYW5nZS5tc2csICJpbXBvcnQiKQotICAgIGlmIHN0aXRjaCA9PSAxOgotICAgICAgICBnaXQuY2xlYW5fZGlyZWN0b3JpZXMoKQotICAgICAgICBzdGl0Y2ggPSAwCmRpZmYgLS1naXQgYS9jb250cmliL3A0aW1wb3J0L2dpdC1wNGltcG9ydC50eHQgYi9jb250cmliL3A0aW1wb3J0L2dpdC1wNGltcG9ydC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5Njc1ODcuLjAwMDAwMDAKLS0tIGEvY29udHJpYi9wNGltcG9ydC9naXQtcDRpbXBvcnQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTY3ICswLDAgQEAKLWdpdC1wNGltcG9ydCgxKQotPT09PT09PT09PT09PT09Ci0KLU5BTUUKLS0tLS0KLWdpdC1wNGltcG9ydCAtIEltcG9ydCBhIFBlcmZvcmNlIHJlcG9zaXRvcnkgaW50byBnaXQKLQotCi1TWU5PUFNJUwotLS0tLS0tLS0KLVt2ZXJzZV0KLWBnaXQtcDRpbXBvcnRgIFstcXwtdl0gWy0tbm90YWdzXSBbLS1hdXRob3JzIDxmaWxlPl0gWy10IDx0aW1lem9uZT5dCi0gICAgICAgICAgICAgICA8Ly9wNHJlcG8vcGF0aD4gPGJyYW5jaD4KLWBnaXQtcDRpbXBvcnRgIC0tc3RpdGNoIDwvL3A0cmVwby9wYXRoPgotYGdpdC1wNGltcG9ydGAKLQotCi1ERVNDUklQVElPTgotLS0tLS0tLS0tLS0KLUltcG9ydCBhIFBlcmZvcmNlIHJlcG9zaXRvcnkgaW50byBhbiBleGlzdGluZyBnaXQgcmVwb3NpdG9yeS4gIFdoZW4KLWEgPC8vcDRyZXBvL3BhdGg+IGFuZCA8YnJhbmNoPiBhcmUgc3BlY2lmaWVkIGEgbmV3IGJyYW5jaCB3aXRoIHRoZQotZ2l2ZW4gbmFtZSB3aWxsIGJlIGNyZWF0ZWQgYW5kIHRoZSBpbml0aWFsIGltcG9ydCB3aWxsIGJlZ2luLgotCi1PbmNlIHRoZSBpbml0aWFsIGltcG9ydCBpcyBjb21wbGV0ZSB5b3UgY2FuIGRvIGFuIGluY3JlbWVudGFsIGltcG9ydAotb2YgbmV3IGNvbW1pdHMgZnJvbSB0aGUgUGVyZm9yY2UgcmVwb3NpdG9yeS4gIFlvdSBkbyB0aGlzIGJ5IGNoZWNraW5nCi1vdXQgdGhlIGFwcHJvcHJpYXRlIGdpdCBicmFuY2ggYW5kIHRoZW4gcnVubmluZyBgZ2l0LXA0aW1wb3J0YCB3aXRob3V0Ci1hbnkgb3B0aW9ucy4KLQotVGhlIHN0YW5kYXJkIHA0IGNsaWVudCBpcyB1c2VkIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIFBlcmZvcmNlCi1yZXBvc2l0b3J5OyBpdCBtdXN0IGJlIGNvbmZpZ3VyZWQgY29ycmVjdGx5IGluIG9yZGVyIGZvciBgZ2l0LXA0aW1wb3J0YAotdG8gb3BlcmF0ZSAoc2VlIGJlbG93KS4KLQotCi1PUFRJT05TCi0tLS0tLS0tCi0tcTo6Ci0JRG8gbm90IGRpc3BsYXkgYW55IHByb2dyZXNzIGluZm9ybWF0aW9uLgotCi0tdjo6Ci0gICAgICAgIEdpdmUgZXh0cmEgcHJvZ3Jlc3MgaW5mb3JtYXRpb24uCi0KLVwtLWF1dGhvcnM6OgotCVNwZWNpZnkgYW4gYXV0aG9ycyBmaWxlIGNvbnRhaW5pbmcgYSBtYXBwaW5nIG9mIFBlcmZvcmNlIHVzZXIKLQlpZHMgdG8gZnVsbCBuYW1lcyBhbmQgZW1haWwgYWRkcmVzc2VzIChzZWUgTm90ZXMgYmVsb3cpLgotCi1cLS1ub3RhZ3M6OgotCURvIG5vdCBjcmVhdGUgYSB0YWcgZm9yIGVhY2ggaW1wb3J0ZWQgY29tbWl0LgotCi1cLS1zdGl0Y2g6OgotCUltcG9ydCB0aGUgY29udGVudHMgb2YgdGhlIGdpdmVuIHBlcmZvcmNlIGJyYW5jaCBpbnRvIHRoZQotCWN1cnJlbnRseSBjaGVja2VkIG91dCBnaXQgYnJhbmNoLgotCi1cLS1sb2c6OgotCVN0b3JlIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBpbiB0aGUgc3BlY2lmaWVkIGZpbGUuCi0KLS10OjoKLQlTcGVjaWZ5IHRoYXQgdGhlIHJlbW90ZSByZXBvc2l0b3J5IGlzIGluIHRoZSBzcGVjaWZpZWQgdGltZXpvbmUuCi0JVGltZXpvbmUgbXVzdCBiZSBpbiB0aGUgZm9ybWF0ICJVUy9QYWNpZmljIiBvciAiRXVyb3BlL0xvbmRvbiIKLQlldGMuICBZb3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgdGhpcyBvbmNlLCBpdCB3aWxsIGJlIHNhdmVkIGluCi0JdGhlIGdpdCBjb25maWcgZmlsZSBmb3IgdGhlIHJlcG9zaXRvcnkuCi0KLTwvL3A0cmVwby9wYXRoPjo6Ci0JVGhlIFBlcmZvcmNlIHBhdGggdGhhdCB3aWxsIGJlIGltcG9ydGVkIGludG8gdGhlIHNwZWNpZmllZCBicmFuY2guCi0KLTxicmFuY2g+OjoKLQlUaGUgbmV3IGJyYW5jaCB0aGF0IHdpbGwgYmUgY3JlYXRlZCB0byBob2xkIHRoZSBQZXJmb3JjZSBpbXBvcnRzLgotCi0KLVA0IENsaWVudAotLS0tLS0tLS0tCi1Zb3UgbXVzdCBtYWtlIHRoZSBgcDRgIGNsaWVudCBjb21tYW5kIGF2YWlsYWJsZSBpbiB5b3VyICRQQVRIIGFuZAotY29uZmlndXJlIGl0IHRvIGNvbW11bmljYXRlIHdpdGggdGhlIHRhcmdldCBQZXJmb3JjZSByZXBvc2l0b3J5LgotVHlwaWNhbGx5IHRoaXMgbWVhbnMgeW91IG11c3Qgc2V0IHRoZSAiJFA0UE9SVCIgYW5kICIkUDRDTElFTlQiCi1lbnZpcm9ubWVudCB2YXJpYWJsZXMuCi0KLVlvdSBtdXN0IGFsc28gY29uZmlndXJlIGEgYHA0YCBjbGllbnQgInZpZXciIHdoaWNoIG1hcHMgdGhlIFBlcmZvcmNlCi1icmFuY2ggaW50byB0aGUgdG9wIGxldmVsIG9mIHlvdXIgZ2l0IHJlcG9zaXRvcnksIGZvciBleGFtcGxlOgotCi0tLS0tLS0tLS0tLS0KLUNsaWVudDogbXlob3N0Ci0KLVJvb3Q6ICAgL2hvbWUvc2Vhbi9pbXBvcnQKLQotT3B0aW9uczogICBub2FsbHdyaXRlIGNsb2JiZXIgbm9jb21wcmVzcyB1bmxvY2tlZCBtb2R0aW1lIHJtZGlyCi0KLVZpZXc6Ci0gICAgICAgIC8vcHVibGljL2phbS8uLi4gLy9teWhvc3QvamFtLy4uLgotLS0tLS0tLS0tLS0tCi0KLVdpdGggdGhlIGFib3ZlIGBwNGAgY2xpZW50IHNldHVwLCB5b3UgY291bGQgaW1wb3J0IHRoZSAiamFtIgotcGVyZm9yY2UgYnJhbmNoIGludG8gYSBicmFuY2ggbmFtZWQgImphbW15IiwgbGlrZSBzbzoKLQotLS0tLS0tLS0tLS0tCi0kIG1rZGlyIC1wIC9ob21lL3NlYW4vaW1wb3J0L2phbQotJCBjZCAvaG9tZS9zZWFuL2ltcG9ydC9qYW0KLSQgZ2l0IGluaXQKLSQgZ2l0IHA0aW1wb3J0IC8vcHVibGljL2phbSBqYW1teQotLS0tLS0tLS0tLS0tCi0KLQotTXVsdGlwbGUgQnJhbmNoZXMKLS0tLS0tLS0tLS0tLS0tLS0tCi1Ob3RlIHRoYXQgYnkgY3JlYXRpbmcgbXVsdGlwbGUgInZpZXdzIiB5b3UgY2FuIHVzZSBgZ2l0LXA0aW1wb3J0YAotdG8gaW1wb3J0IGFkZGl0aW9uYWwgYnJhbmNoZXMgaW50byB0aGUgc2FtZSBnaXQgcmVwb3NpdG9yeS4KLUhvd2V2ZXIsIHRoZSBgcDRgIGNsaWVudCBoYXMgYSBsaW1pdGF0aW9uIGluIHRoYXQgaXQgc2lsZW50bHkKLWlnbm9yZXMgYWxsIGJ1dCB0aGUgbGFzdCAidmlldyIgdGhhdCBtYXBzIGludG8gdGhlIHNhbWUgbG9jYWwKLWRpcmVjdG9yeS4gIFNvIHRoZSBmb2xsb3dpbmcgd2lsbCAqbm90KiB3b3JrOgotCi0tLS0tLS0tLS0tLS0KLVZpZXc6Ci0gICAgICAgIC8vcHVibGljL2phbS8uLi4gLy9teWhvc3QvamFtLy4uLgotICAgICAgICAvL3B1YmxpYy9vdGhlci8uLi4gLy9teWhvc3QvamFtLy4uLgotICAgICAgICAvL3B1YmxpYy9ndWVzdC8uLi4gLy9teWhvc3QvamFtLy4uLgotLS0tLS0tLS0tLS0tCi0KLUlmIHlvdSB3YW50IG1vcmUgdGhhbiBvbmUgUGVyZm9yY2UgYnJhbmNoIHRvIGJlIGltcG9ydGVkIGludG8gdGhlCi1zYW1lIGRpcmVjdG9yeSB5b3UgbXVzdCBlbXBsb3kgYSB3b3JrYXJvdW5kLiAgQSBzaW1wbGUgb3B0aW9uIGlzCi10byBhZGp1c3QgeW91ciBgcDRgIGNsaWVudCBiZWZvcmUgZWFjaCBpbXBvcnQgdG8gb25seSBpbmNsdWRlIGEKLXNpbmdsZSB2aWV3LgotCi1Bbm90aGVyIG9wdGlvbiBpcyB0byBjcmVhdGUgbXVsdGlwbGUgc3ltbGlua3MgbG9jYWxseSB3aGljaCBhbGwKLXBvaW50IHRvIHRoZSBzYW1lIGRpcmVjdG9yeSBpbiB5b3VyIGdpdCByZXBvc2l0b3J5IGFuZCB0aGVuIHVzZQotb25lIHBlciAidmlldyIgaW5zdGVhZCBvZiBsaXN0aW5nIHRoZSBhY3R1YWwgZGlyZWN0b3J5LgotCi0KLVRhZ3MKLS0tLS0KLUEgZ2l0IHRhZyBvZiB0aGUgZm9ybSBwNC94eCBpcyBjcmVhdGVkIGZvciBldmVyeSBjaGFuZ2UgaW1wb3J0ZWQgZnJvbQotdGhlIFBlcmZvcmNlIHJlcG9zaXRvcnkgd2hlcmUgeHggaXMgdGhlIFBlcmZvcmNlIGNoYW5nZXNldCBudW1iZXIuCi1UaGVyZWZvcmUgYWZ0ZXIgdGhlIGltcG9ydCB5b3UgY2FuIHVzZSBnaXQgdG8gYWNjZXNzIGFueSBjb21taXQgYnkgaXRzCi1QZXJmb3JjZSBudW1iZXIsIGUuZy4gZ2l0IHNob3cgcDQvMzI3LgotCi1UaGUgdGFnIGFzc29jaWF0ZWQgd2l0aCB0aGUgSEVBRCBjb21taXQgaXMgYWxzbyBob3cgYGdpdC1wNGltcG9ydGAKLWRldGVybWluZXMgaWYgdGhlcmUgYXJlIG5ldyBjaGFuZ2VzIHRvIGluY3JlbWVudGFsbHkgaW1wb3J0IGZyb20gdGhlCi1QZXJmb3JjZSByZXBvc2l0b3J5LgotCi1JZiB5b3UgaW1wb3J0IGZyb20gYSByZXBvc2l0b3J5IHdpdGggbWFueSB0aG91c2FuZHMgb2YgY2hhbmdlcwoteW91IHdpbGwgaGF2ZSBhbiBlcXVhbCBudW1iZXIgb2YgcDQveHh4eCBnaXQgdGFncy4gIEdpdCB0YWdzIGNhbgotYmUgZXhwZW5zaXZlIGluIHRlcm1zIG9mIGRpc2sgc3BhY2UgYW5kIHJlcG9zaXRvcnkgb3BlcmF0aW9ucy4KLUlmIHlvdSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gZnVydGhlciBpbmNyZW1lbnRhbCBpbXBvcnRzLCB5b3UKLW1heSBkZWxldGUgdGhlIHRhZ3MuCi0KLQotTm90ZXMKLS0tLS0tCi1Zb3UgY2FuIGludGVycnVwdCB0aGUgaW1wb3J0IChlLmcuIGN0cmwtYykgYXQgYW55IHRpbWUgYW5kIHJlc3RhcnQgaXQKLXdpdGhvdXQgd29ycnkuCi0KLUF1dGhvciBpbmZvcm1hdGlvbiBpcyBhdXRvbWF0aWNhbGx5IGRldGVybWluZWQgYnkgcXVlcnlpbmcgdGhlCi1QZXJmb3JjZSAidXNlcnMiIHRhYmxlIHVzaW5nIHRoZSBpZCBhc3NvY2lhdGVkIHdpdGggZWFjaCBjaGFuZ2UuCi1Ib3dldmVyLCBpZiB5b3Ugd2FudCB0byBtYW51YWxseSBzdXBwbHkgdGhlc2UgbWFwcGluZ3MgeW91IGNhbiBkbwotc28gd2l0aCB0aGUgIi0tYXV0aG9ycyIgb3B0aW9uLiAgSXQgYWNjZXB0cyBhIGZpbGUgY29udGFpbmluZyBhIGxpc3QKLW9mIG1hcHBpbmdzIHdpdGggZWFjaCBsaW5lIGNvbnRhaW5pbmcgb25lIG1hcHBpbmcgaW4gdGhlIGZvcm1hdDoKLQotLS0tLS0tLS0tLS0tCi0gICAgcGVyZm9yY2VfaWQgPSBGdWxsIE5hbWUgPGVtYWlsQGFkZHJlc3MuY29tPgotLS0tLS0tLS0tLS0tCi0KLQotQXV0aG9yCi0tLS0tLS0KLVdyaXR0ZW4gYnkgU2VhbiBFc3RhYnJvb2tzIDxzZWFubGttbEBzeW1wYXRpY28uY2E+Ci0KLQotR0lUCi0tLS0KLVBhcnQgb2YgdGhlIGdpdGxpbms6Z2l0WzddIHN1aXRlCmRpZmYgLS1naXQgYS9jb250cmliL3JlbW90ZS1oZWxwZXJzL2dpdC1yZW1vdGUtYnpyIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy9naXQtcmVtb3RlLWJ6cgppbmRleCBjM2EzY2FjLi4zMzJhYmE3IDEwMDc1NQotLS0gYS9jb250cmliL3JlbW90ZS1oZWxwZXJzL2dpdC1yZW1vdGUtYnpyCisrKyBiL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvZ2l0LXJlbW90ZS1ienIKQEAgLTEzLDggKzEzLDExIEBACiAjIG9yCiAjICUgZ2l0IGNsb25lIGJ6cjo6bHA6bXlyZXBvCiAjCi0jIElmIHlvdSB3YW50IHRvIHNwZWNpZnkgd2hpY2ggYnJhbmNoZXMgeW91IHdhbnQgdHJhY2sgKHBlciByZXBvKToKLSMgZ2l0IGNvbmZpZyByZW1vdGUtYnpyLmJyYW5jaGVzICd0cnVuaywgZGV2ZWwsIHRlc3QnCisjIElmIHlvdSB3YW50IHRvIHNwZWNpZnkgd2hpY2ggYnJhbmNoZXMgeW91IHdhbnQgdG8gdHJhY2sgKHBlciByZXBvKToKKyMgJSBnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4uYnpyLWJyYW5jaGVzICd0cnVuaywgZGV2ZWwsIHRlc3QnCisjCisjIFdoZXJlICdvcmlnaW4nIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5IHlvdSB3YW50IHRvIHNwZWNpZnkgdGhlCisjIGJyYW5jaGVzLgogIwogCiBpbXBvcnQgc3lzCkBAIC00MSw4ICs0NCw4IEBACiBpbXBvcnQgYXRleGl0LCBzaHV0aWwsIGhhc2hsaWIsIHVybHBhcnNlLCBzdWJwcm9jZXNzCiAKIE5BTUVfUkUgPSByZS5jb21waWxlKCdeKFtePD5dKyknKQotQVVUSE9SX1JFID0gcmUuY29tcGlsZSgnXihbXjw+XSs/KT8gPzwoW148Pl0qKT4kJykKLUVNQUlMX1JFID0gcmUuY29tcGlsZSgnXihbXjw+XStbXiBcXFx0PD5dKT9cXGIoPzpbIFxcdDw+XSo/KVxcYihbXiBcXHQ8Pl0rQFteIFxcdDw+XSspJykKK0FVVEhPUl9SRSA9IHJlLmNvbXBpbGUoJ14oW148Pl0rPyk/ID9bPD5dKFtePD5dKikoPzokfD4pJykKK0VNQUlMX1JFID0gcmUuY29tcGlsZShyJyhbXiBcdDw+XStAW14gXHQ8Pl0rKScpCiBSQVdfQVVUSE9SX1JFID0gcmUuY29tcGlsZSgnXihcdyspICguKyk/IDwoLiopPiAoXGQrKSAoWystXVxkKyknKQogCiBkZWYgZGllKG1zZywgKmFyZ3MpOgpAQCAtMTY4LDE3ICsxNzEsMTYgQEAKICAgICAgICAgaWYgbm90IG06CiAgICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICBfLCBuYW1lLCBlbWFpbCwgZGF0ZSwgdHogPSBtLmdyb3VwcygpCisgICAgICAgIG5hbWUgPSBuYW1lLmRlY29kZSgndXRmLTgnKQogICAgICAgICBjb21taXR0ZXIgPSAnJXMgPCVzPicgJSAobmFtZSwgZW1haWwpCiAgICAgICAgIHR6ID0gaW50KHR6KQogICAgICAgICB0eiA9ICgodHogLyAxMDApICogMzYwMCkgKyAoKHR6ICUgMTAwKSAqIDYwKQogICAgICAgICByZXR1cm4gKGNvbW1pdHRlciwgaW50KGRhdGUpLCB0eikKIAogZGVmIHJldl90b19tYXJrKHJldik6Ci0gICAgZ2xvYmFsIG1hcmtzCiAgICAgcmV0dXJuIG1hcmtzLmZyb21fcmV2KHJldikKIAogZGVmIG1hcmtfdG9fcmV2KG1hcmspOgotICAgIGdsb2JhbCBtYXJrcwogICAgIHJldHVybiBtYXJrcy50b19yZXYobWFyaykKIAogZGVmIGZpeHVwX3VzZXIodXNlcik6CkBAIC0xOTEsOCArMTkzLDcgQEAKICAgICBlbHNlOgogICAgICAgICBtID0gRU1BSUxfUkUubWF0Y2godXNlcikKICAgICAgICAgaWYgbToKLSAgICAgICAgICAgIG5hbWUgPSBtLmdyb3VwKDEpCi0gICAgICAgICAgICBtYWlsID0gbS5ncm91cCgyKQorICAgICAgICAgICAgbWFpbCA9IG0uZ3JvdXAoMSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIG0gPSBOQU1FX1JFLm1hdGNoKHVzZXIpCiAgICAgICAgICAgICBpZiBtOgpAQCAtMjMzLDggKzIzNCw2IEBACiAgICAgcmV0dXJuIG1vZGlmaWVkLCByZW1vdmVkCiAKIGRlZiBleHBvcnRfZmlsZXModHJlZSwgZmlsZXMpOgotICAgIGdsb2JhbCBtYXJrcywgZmlsZW5vZGVzCi0KICAgICBmaW5hbCA9IFtdCiAgICAgZm9yIHBhdGgsIGZpZCBpbiBmaWxlcy5pdGVyaXRlbXMoKToKICAgICAgICAga2luZCA9IHRyZWUua2luZChmaWQpCkBAIC0yNzYsOCArMjc1LDYgQEAKICAgICByZXR1cm4gZmluYWwKIAogZGVmIGV4cG9ydF9icmFuY2gocmVwbywgbmFtZSk6Ci0gICAgZ2xvYmFsIHByZWZpeAotCiAgICAgcmVmID0gJyVzL2hlYWRzLyVzJyAlIChwcmVmaXgsIG5hbWUpCiAgICAgdGlwID0gbWFya3MuZ2V0X3RpcChuYW1lKQogCkBAIC0zNzgsMTYgKzM3NSwxMiBAQAogICAgIG1hcmtzLnNldF90aXAobmFtZSwgcmV2aWQpCiAKIGRlZiBleHBvcnRfdGFnKHJlcG8sIG5hbWUpOgotICAgIGdsb2JhbCB0YWdzLCBwcmVmaXgKLQogICAgIHJlZiA9ICclcy90YWdzLyVzJyAlIChwcmVmaXgsIG5hbWUpCiAgICAgcHJpbnQgInJlc2V0ICVzIiAlIHJlZgogICAgIHByaW50ICJmcm9tIDoldSIgJSByZXZfdG9fbWFyayh0YWdzW25hbWVdKQogICAgIHByaW50CiAKIGRlZiBkb19pbXBvcnQocGFyc2VyKToKLSAgICBnbG9iYWwgZGlybmFtZQotCiAgICAgcmVwbyA9IHBhcnNlci5yZXBvCiAgICAgcGF0aCA9IG9zLnBhdGguam9pbihkaXJuYW1lLCAnbWFya3MtZ2l0JykKIApAQCAtNDEzLDggKzQwNiw2IEBACiAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCiAKIGRlZiBwYXJzZV9ibG9iKHBhcnNlcik6Ci0gICAgZ2xvYmFsIGJsb2JfbWFya3MKLQogICAgIHBhcnNlci5uZXh0KCkKICAgICBtYXJrID0gcGFyc2VyLmdldF9tYXJrKCkKICAgICBwYXJzZXIubmV4dCgpCkBAIC00MjUsOCArNDE2LDYgQEAKIGNsYXNzIEN1c3RvbVRyZWUoKToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBicmFuY2gsIHJldmlkLCBwYXJlbnRzLCBmaWxlcyk6Ci0gICAgICAgIGdsb2JhbCBmaWxlc19jYWNoZQotCiAgICAgICAgIHNlbGYudXBkYXRlcyA9IHt9CiAgICAgICAgIHNlbGYuYnJhbmNoID0gYnJhbmNoCiAKQEAgLTQ4NCw3ICs0NzMsNyBAQAogICAgICAgICAgICAgYWRkX2VudHJ5KGZpZCwgZGlybmFtZSwgJ2RpcmVjdG9yeScpCiAgICAgICAgICAgICByZXR1cm4gZmlkCiAKLSAgICAgICAgZGVmIGFkZF9lbnRyeShmaWQsIHBhdGgsIGtpbmQsIG1vZGUgPSBOb25lKToKKyAgICAgICAgZGVmIGFkZF9lbnRyeShmaWQsIHBhdGgsIGtpbmQsIG1vZGU9Tm9uZSk6CiAgICAgICAgICAgICBkaXJuYW1lLCBiYXNlbmFtZSA9IG9zLnBhdGguc3BsaXQocGF0aCkKICAgICAgICAgICAgIHBhcmVudF9maWQgPSBnZXRfcGFyZW50KGRpcm5hbWUsIGJhc2VuYW1lKQogCkBAIC01MDUsNyArNDk0LDcgQEAKICAgICAgICAgICAgIHNlbGYuZmlsZXNbcGF0aF0gPSBbY2hhbmdlWzBdLCBOb25lXQogICAgICAgICAgICAgY2hhbmdlcy5hcHBlbmQoY2hhbmdlKQogCi0gICAgICAgIGRlZiB1cGRhdGVfZW50cnkoZmlkLCBwYXRoLCBraW5kLCBtb2RlID0gTm9uZSk6CisgICAgICAgIGRlZiB1cGRhdGVfZW50cnkoZmlkLCBwYXRoLCBraW5kLCBtb2RlPU5vbmUpOgogICAgICAgICAgICAgZGlybmFtZSwgYmFzZW5hbWUgPSBvcy5wYXRoLnNwbGl0KHBhdGgpCiAgICAgICAgICAgICBwYXJlbnRfZmlkID0gZ2V0X3BhcmVudChkaXJuYW1lLCBiYXNlbmFtZSkKIApAQCAtNTgzLDkgKzU3Miw2IEBACiAgICAgcmV0dXJuIHN0cmluZwogCiBkZWYgcGFyc2VfY29tbWl0KHBhcnNlcik6Ci0gICAgZ2xvYmFsIG1hcmtzLCBibG9iX21hcmtzLCBwYXJzZWRfcmVmcwotICAgIGdsb2JhbCBtb2RlCi0KICAgICBwYXJlbnRzID0gW10KIAogICAgIHJlZiA9IHBhcnNlclsxXQpAQCAtNjU3LDggKzY0Myw2IEBACiAgICAgbWFya3MubmV3X21hcmsocmV2aWQsIGNvbW1pdF9tYXJrKQogCiBkZWYgcGFyc2VfcmVzZXQocGFyc2VyKToKLSAgICBnbG9iYWwgcGFyc2VkX3JlZnMKLQogICAgIHJlZiA9IHBhcnNlclsxXQogICAgIHBhcnNlci5uZXh0KCkKIApAQCAtNjc0LDggKzY1OCw2IEBACiAgICAgcGFyc2VkX3JlZnNbcmVmXSA9IG1hcmtfdG9fcmV2KGZyb21fbWFyaykKIAogZGVmIGRvX2V4cG9ydChwYXJzZXIpOgotICAgIGdsb2JhbCBwYXJzZWRfcmVmcywgZGlybmFtZQotCiAgICAgcGFyc2VyLm5leHQoKQogCiAgICAgZm9yIGxpbmUgaW4gcGFyc2VyLmVhY2hfYmxvY2soJ2RvbmUnKToKQEAgLTY5OSw3ICs2ODEsOCBAQAogICAgICAgICAgICAgYnJhbmNoLmdlbmVyYXRlX3JldmlzaW9uX2hpc3RvcnkocmV2aWQsIG1hcmtzLmdldF90aXAobmFtZSkpCiAKICAgICAgICAgICAgIGlmIG5hbWUgaW4gcGVlcnM6Ci0gICAgICAgICAgICAgICAgcGVlciA9IGJ6cmxpYi5icmFuY2guQnJhbmNoLm9wZW4ocGVlcnNbbmFtZV0pCisgICAgICAgICAgICAgICAgcGVlciA9IGJ6cmxpYi5icmFuY2guQnJhbmNoLm9wZW4ocGVlcnNbbmFtZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zc2libGVfdHJhbnNwb3J0cz10cmFuc3BvcnRzKQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgcGVlci5ienJkaXIucHVzaF9icmFuY2goYnJhbmNoLCByZXZpc2lvbl9pZD1yZXZpZCkKICAgICAgICAgICAgICAgICBleGNlcHQgYnpybGliLmVycm9ycy5EaXZlcmdlZEJyYW5jaGVzOgpAQCAtNzI0LDggKzcwNyw2IEBACiAgICAgcHJpbnQKIAogZGVmIGRvX2NhcGFiaWxpdGllcyhwYXJzZXIpOgotICAgIGdsb2JhbCBkaXJuYW1lCi0KICAgICBwcmludCAiaW1wb3J0IgogICAgIHByaW50ICJleHBvcnQiCiAgICAgcHJpbnQgInJlZnNwZWMgcmVmcy9oZWFkcy8qOiVzL2hlYWRzLyoiICUgcHJlZml4CkBAIC03NDMsOCArNzI0LDYgQEAKICAgICByZXR1cm4gbm90IFRydWUgaW4gW2MgaW4gbmFtZSBmb3IgYyBpbiAnfl46IFxcJ10KIAogZGVmIGRvX2xpc3QocGFyc2VyKToKLSAgICBnbG9iYWwgdGFncwotCiAgICAgbWFzdGVyX2JyYW5jaCA9IE5vbmUKIAogICAgIGZvciBuYW1lIGluIGJyYW5jaGVzOgpAQCAtNzcwLDI0ICs3NDksMjQgQEAKIAogZGVmIGNsb25lKHBhdGgsIHJlbW90ZV9icmFuY2gpOgogICAgIHRyeToKLSAgICAgICAgYmRpciA9IGJ6cmxpYi5ienJkaXIuQnpyRGlyLmNyZWF0ZShwYXRoKQorICAgICAgICBiZGlyID0gYnpybGliLmJ6cmRpci5CenJEaXIuY3JlYXRlKHBhdGgsIHBvc3NpYmxlX3RyYW5zcG9ydHM9dHJhbnNwb3J0cykKICAgICBleGNlcHQgYnpybGliLmVycm9ycy5BbHJlYWR5Q29udHJvbERpckVycm9yOgotICAgICAgICBiZGlyID0gYnpybGliLmJ6cmRpci5CenJEaXIub3BlbihwYXRoKQorICAgICAgICBiZGlyID0gYnpybGliLmJ6cmRpci5CenJEaXIub3BlbihwYXRoLCBwb3NzaWJsZV90cmFuc3BvcnRzPXRyYW5zcG9ydHMpCiAgICAgcmVwbyA9IGJkaXIuZmluZF9yZXBvc2l0b3J5KCkKICAgICByZXBvLmZldGNoKHJlbW90ZV9icmFuY2gucmVwb3NpdG9yeSkKICAgICByZXR1cm4gcmVtb3RlX2JyYW5jaC5zcHJvdXQoYmRpciwgcmVwb3NpdG9yeT1yZXBvKQogCiBkZWYgZ2V0X3JlbW90ZV9icmFuY2gobmFtZSk6Ci0gICAgZ2xvYmFsIGRpcm5hbWUsIGJyYW5jaGVzCi0KLSAgICByZW1vdGVfYnJhbmNoID0gYnpybGliLmJyYW5jaC5CcmFuY2gub3BlbihicmFuY2hlc1tuYW1lXSkKKyAgICByZW1vdGVfYnJhbmNoID0gYnpybGliLmJyYW5jaC5CcmFuY2gub3BlbihicmFuY2hlc1tuYW1lXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NzaWJsZV90cmFuc3BvcnRzPXRyYW5zcG9ydHMpCiAgICAgaWYgaXNpbnN0YW5jZShyZW1vdGVfYnJhbmNoLnVzZXJfdHJhbnNwb3J0LCBienJsaWIudHJhbnNwb3J0LmxvY2FsLkxvY2FsVHJhbnNwb3J0KToKICAgICAgICAgcmV0dXJuIHJlbW90ZV9icmFuY2gKIAogICAgIGJyYW5jaF9wYXRoID0gb3MucGF0aC5qb2luKGRpcm5hbWUsICdjbG9uZScsIG5hbWUpCiAKICAgICB0cnk6Ci0gICAgICAgIGJyYW5jaCA9IGJ6cmxpYi5icmFuY2guQnJhbmNoLm9wZW4oYnJhbmNoX3BhdGgpCisgICAgICAgIGJyYW5jaCA9IGJ6cmxpYi5icmFuY2guQnJhbmNoLm9wZW4oYnJhbmNoX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zc2libGVfdHJhbnNwb3J0cz10cmFuc3BvcnRzKQogICAgIGV4Y2VwdCBienJsaWIuZXJyb3JzLk5vdEJyYW5jaEVycm9yOgogICAgICAgICAjIGNsb25lCiAgICAgICAgIGJyYW5jaCA9IGNsb25lKGJyYW5jaF9wYXRoLCByZW1vdGVfYnJhbmNoKQpAQCAtODIxLDE3ICs4MDAsMTcgQEAKICAgICAgICAgICAgIHlpZWxkIG5hbWUsIGJyYW5jaC5iYXNlCiAKIGRlZiBnZXRfcmVwbyh1cmwsIGFsaWFzKToKLSAgICBnbG9iYWwgZGlybmFtZSwgcGVlciwgYnJhbmNoZXMKLQogICAgIG5vcm1hbF91cmwgPSBienJsaWIudXJsdXRpbHMubm9ybWFsaXplX3VybCh1cmwpCi0gICAgb3JpZ2luID0gYnpybGliLmJ6cmRpci5CenJEaXIub3Blbih1cmwpCisgICAgb3JpZ2luID0gYnpybGliLmJ6cmRpci5CenJEaXIub3Blbih1cmwsIHBvc3NpYmxlX3RyYW5zcG9ydHM9dHJhbnNwb3J0cykKICAgICBpc19sb2NhbCA9IGlzaW5zdGFuY2Uob3JpZ2luLnRyYW5zcG9ydCwgYnpybGliLnRyYW5zcG9ydC5sb2NhbC5Mb2NhbFRyYW5zcG9ydCkKIAogICAgIHNoYXJlZF9wYXRoID0gb3MucGF0aC5qb2luKGdpdGRpciwgJ2J6cicpCiAgICAgdHJ5OgotICAgICAgICBzaGFyZWRfZGlyID0gYnpybGliLmJ6cmRpci5CenJEaXIub3BlbihzaGFyZWRfcGF0aCkKKyAgICAgICAgc2hhcmVkX2RpciA9IGJ6cmxpYi5ienJkaXIuQnpyRGlyLm9wZW4oc2hhcmVkX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlX3RyYW5zcG9ydHM9dHJhbnNwb3J0cykKICAgICBleGNlcHQgYnpybGliLmVycm9ycy5Ob3RCcmFuY2hFcnJvcjoKLSAgICAgICAgc2hhcmVkX2RpciA9IGJ6cmxpYi5ienJkaXIuQnpyRGlyLmNyZWF0ZShzaGFyZWRfcGF0aCkKKyAgICAgICAgc2hhcmVkX2RpciA9IGJ6cmxpYi5ienJkaXIuQnpyRGlyLmNyZWF0ZShzaGFyZWRfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NzaWJsZV90cmFuc3BvcnRzPXRyYW5zcG9ydHMpCiAgICAgdHJ5OgogICAgICAgICBzaGFyZWRfcmVwbyA9IHNoYXJlZF9kaXIub3Blbl9yZXBvc2l0b3J5KCkKICAgICBleGNlcHQgYnpybGliLmVycm9ycy5Ob1JlcG9zaXRvcnlQcmVzZW50OgpAQCAtODQ0LDE2ICs4MjMsMjEgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgICMgY2hlY2sgYW5kIHJlbW92ZSBvbGQgb3JnYW5pemF0aW9uCiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgYmRpciA9IGJ6cmxpYi5ienJkaXIuQnpyRGlyLm9wZW4oY2xvbmVfcGF0aCkKKyAgICAgICAgICAgICAgICBiZGlyID0gYnpybGliLmJ6cmRpci5CenJEaXIub3BlbihjbG9uZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlX3RyYW5zcG9ydHM9dHJhbnNwb3J0cykKICAgICAgICAgICAgICAgICBiZGlyLmRlc3Ryb3lfcmVwb3NpdG9yeSgpCiAgICAgICAgICAgICBleGNlcHQgYnpybGliLmVycm9ycy5Ob3RCcmFuY2hFcnJvcjoKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICBleGNlcHQgYnpybGliLmVycm9ycy5Ob1JlcG9zaXRvcnlQcmVzZW50OgogICAgICAgICAgICAgICAgIHBhc3MKIAotICAgIHdhbnRlZCA9IGdldF9jb25maWcoJ3JlbW90ZS1ienIuYnJhbmNoZXMnKS5yc3RyaXAoKS5zcGxpdCgnLCAnKQorICAgIHdhbnRlZCA9IGdldF9jb25maWcoJ3JlbW90ZS4lcy5ienItYnJhbmNoZXMnICUgYWxpYXMpLnJzdHJpcCgpLnNwbGl0KCcsICcpCiAgICAgIyBzdHVwaWQgcHl0aG9uCiAgICAgd2FudGVkID0gW2UgZm9yIGUgaW4gd2FudGVkIGlmIGVdCisgICAgaWYgbm90IHdhbnRlZDoKKyAgICAgICAgd2FudGVkID0gZ2V0X2NvbmZpZygncmVtb3RlLWJ6ci5icmFuY2hlcycpLnJzdHJpcCgpLnNwbGl0KCcsICcpCisgICAgICAgICMgc3R1cGlkIHB5dGhvbgorICAgICAgICB3YW50ZWQgPSBbZSBmb3IgZSBpbiB3YW50ZWQgaWYgZV0KIAogICAgIGlmIG5vdCB3YW50ZWQ6CiAgICAgICAgIHRyeToKQEAgLTg5Nyw2ICs4ODEsMTcgQEAKICAgICBnbG9iYWwgZmlsZXNfY2FjaGUKICAgICBnbG9iYWwgaXNfdG1wCiAgICAgZ2xvYmFsIGJyYW5jaGVzLCBwZWVycworICAgIGdsb2JhbCB0cmFuc3BvcnRzCisKKyAgICBtYXJrcyA9IE5vbmUKKyAgICBpc190bXAgPSBGYWxzZQorICAgIGdpdGRpciA9IG9zLmVudmlyb24uZ2V0KCdHSVRfRElSJywgTm9uZSkKKworICAgIGlmIGxlbihhcmdzKSA8IDM6CisgICAgICAgIGRpZSgnTm90IGVub3VnaCBhcmd1bWVudHMuJykKKworICAgIGlmIG5vdCBnaXRkaXI6CisgICAgICAgIGRpZSgnR0lUX0RJUiBub3Qgc2V0JykKIAogICAgIGFsaWFzID0gYXJnc1sxXQogICAgIHVybCA9IGFyZ3NbMl0KQEAgLTkwNiwxOCArOTAxLDE1IEBACiAgICAgYmxvYl9tYXJrcyA9IHt9CiAgICAgcGFyc2VkX3JlZnMgPSB7fQogICAgIGZpbGVzX2NhY2hlID0ge30KLSAgICBtYXJrcyA9IE5vbmUKICAgICBicmFuY2hlcyA9IHt9CiAgICAgcGVlcnMgPSB7fQorICAgIHRyYW5zcG9ydHMgPSBbXQogCiAgICAgaWYgYWxpYXNbNTpdID09IHVybDoKICAgICAgICAgaXNfdG1wID0gVHJ1ZQogICAgICAgICBhbGlhcyA9IGhhc2hsaWIuc2hhMShhbGlhcykuaGV4ZGlnZXN0KCkKLSAgICBlbHNlOgotICAgICAgICBpc190bXAgPSBGYWxzZQogCiAgICAgcHJlZml4ID0gJ3JlZnMvYnpyLyVzJyAlIGFsaWFzCi0gICAgZ2l0ZGlyID0gb3MuZW52aXJvblsnR0lUX0RJUiddCiAgICAgZGlybmFtZSA9IG9zLnBhdGguam9pbihnaXRkaXIsICdienInLCBhbGlhcykKIAogICAgIGlmIG5vdCBpc190bXA6CmRpZmYgLS1naXQgYS9jb250cmliL3JlbW90ZS1oZWxwZXJzL2dpdC1yZW1vdGUtaGcgYi9jb250cmliL3JlbW90ZS1oZWxwZXJzL2dpdC1yZW1vdGUtaGcKaW5kZXggMWM3MTNlMC4uZWI4OWVmNiAxMDA3NTUKLS0tIGEvY29udHJpYi9yZW1vdGUtaGVscGVycy9naXQtcmVtb3RlLWhnCisrKyBiL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvZ2l0LXJlbW90ZS1oZwpAQCAtMjMsOCArMjMsMTIgQEAKIGltcG9ydCB1cmxsaWIKIGltcG9ydCBhdGV4aXQKIGltcG9ydCB1cmxwYXJzZSwgaGFzaGxpYgoraW1wb3J0IHRpbWUgYXMgcHRpbWUKIAogIworIyBJZiB5b3Ugd2FudCB0byBzZWUgTWVyY3VyaWFsIHJldmlzaW9ucyBhcyBHaXQgY29tbWl0IG5vdGVzOgorIyBnaXQgY29uZmlnIGNvcmUubm90ZXNSZWYgcmVmcy9ub3Rlcy9oZworIwogIyBJZiB5b3UgYXJlIG5vdCBpbiBoZy1naXQtY29tcGF0IG1vZGUgYW5kIHdhbnQgdG8gZGlzYWJsZSB0aGUgdHJhY2tpbmcgb2YKICMgbmFtZWQgYnJhbmNoZXM6CiAjIGdpdCBjb25maWcgLS1nbG9iYWwgcmVtb3RlLWhnLnRyYWNrLWJyYW5jaGVzIGZhbHNlCkBAIC00Nyw4ICs1MSw4IEBACiAjCiAKIE5BTUVfUkUgPSByZS5jb21waWxlKCdeKFtePD5dKyknKQotQVVUSE9SX1JFID0gcmUuY29tcGlsZSgnXihbXjw+XSs/KT8gPzwoW148Pl0qKT4kJykKLUVNQUlMX1JFID0gcmUuY29tcGlsZSgnXihbXjw+XStbXiBcXFx0PD5dKT9cXGIoPzpbIFxcdDw+XSo/KVxcYihbXiBcXHQ8Pl0rQFteIFxcdDw+XSspJykKK0FVVEhPUl9SRSA9IHJlLmNvbXBpbGUoJ14oW148Pl0rPyk/ID9bPD5dKFtePD5dKikoPzokfD4pJykKK0VNQUlMX1JFID0gcmUuY29tcGlsZShyJyhbXiBcdDw+XStAW14gXHQ8Pl0rKScpCiBBVVRIT1JfSEdfUkUgPSByZS5jb21waWxlKCdeKC4qPykgPzwoLio/KSg/Oj4oLispPyk/JCcpCiBSQVdfQVVUSE9SX1JFID0gcmUuY29tcGlsZSgnXihcdyspICg/OiguKyk/ICk/PCguKik+IChcZCspIChbKy1dXGQrKScpCiAKQEAgLTEyNiw2ICsxMzAsNyBAQAogICAgICAgICBzZWxmLnJldl9tYXJrcyA9IHt9CiAgICAgICAgIHNlbGYubGFzdF9tYXJrID0gMAogICAgICAgICBzZWxmLnZlcnNpb24gPSAwCisgICAgICAgIHNlbGYubGFzdF9ub3RlID0gMAogCiAgICAgZGVmIGxvYWQoc2VsZik6CiAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzZWxmLnBhdGgpOgpAQCAtMTM3LDYgKzE0Miw3IEBACiAgICAgICAgIHNlbGYubWFya3MgPSB0bXBbJ21hcmtzJ10KICAgICAgICAgc2VsZi5sYXN0X21hcmsgPSB0bXBbJ2xhc3QtbWFyayddCiAgICAgICAgIHNlbGYudmVyc2lvbiA9IHRtcC5nZXQoJ3ZlcnNpb24nLCAxKQorICAgICAgICBzZWxmLmxhc3Rfbm90ZSA9IHRtcC5nZXQoJ2xhc3Qtbm90ZScsIDApCiAKICAgICAgICAgZm9yIHJldiwgbWFyayBpbiBzZWxmLm1hcmtzLml0ZXJpdGVtcygpOgogICAgICAgICAgICAgc2VsZi5yZXZfbWFya3NbbWFya10gPSByZXYKQEAgLTE1MCw3ICsxNTYsNyBAQAogICAgICAgICBzZWxmLnZlcnNpb24gPSAyCiAKICAgICBkZWYgZGljdChzZWxmKToKLSAgICAgICAgcmV0dXJuIHsgJ3RpcHMnOiBzZWxmLnRpcHMsICdtYXJrcyc6IHNlbGYubWFya3MsICdsYXN0LW1hcmsnIDogc2VsZi5sYXN0X21hcmssICd2ZXJzaW9uJyA6IHNlbGYudmVyc2lvbiB9CisgICAgICAgIHJldHVybiB7ICd0aXBzJzogc2VsZi50aXBzLCAnbWFya3MnOiBzZWxmLm1hcmtzLCAnbGFzdC1tYXJrJyA6IHNlbGYubGFzdF9tYXJrLCAndmVyc2lvbicgOiBzZWxmLnZlcnNpb24sICdsYXN0LW5vdGUnIDogc2VsZi5sYXN0X25vdGUgfQogCiAgICAgZGVmIHN0b3JlKHNlbGYpOgogICAgICAgICBqc29uLmR1bXAoc2VsZi5kaWN0KCksIG9wZW4oc2VsZi5wYXRoLCAndycpKQpAQCAtMjI3LDggKzIzMyw2IEBACiAgICAgICAgIHJldHVybiBzeXMuc3RkaW4ucmVhZChzaXplKQogCiAgICAgZGVmIGdldF9hdXRob3Ioc2VsZik6Ci0gICAgICAgIGdsb2JhbCBiYWRfbWFpbAotCiAgICAgICAgIGV4ID0gTm9uZQogICAgICAgICBtID0gUkFXX0FVVEhPUl9SRS5tYXRjaChzZWxmLmxpbmUpCiAgICAgICAgIGlmIG5vdCBtOgpAQCAtMjYxLDggKzI2NSw2IEBACiAgICAgcmV0dXJuIG9zLnBhdGgucmVscGF0aChwYXRoLCAnLycpCiAKIGRlZiBleHBvcnRfZmlsZXMoZmlsZXMpOgotICAgIGdsb2JhbCBtYXJrcywgZmlsZW5vZGVzCi0KICAgICBmaW5hbCA9IFtdCiAgICAgZm9yIGYgaW4gZmlsZXM6CiAgICAgICAgIGZpZCA9IG5vZGUuaGV4KGYuZmlsZW5vZGUoKSkKQEAgLTMxNCw4ICszMTYsNyBAQAogICAgIGVsc2U6CiAgICAgICAgIG0gPSBFTUFJTF9SRS5tYXRjaCh1c2VyKQogICAgICAgICBpZiBtOgotICAgICAgICAgICAgbmFtZSA9IG0uZ3JvdXAoMSkKLSAgICAgICAgICAgIG1haWwgPSBtLmdyb3VwKDIpCisgICAgICAgICAgICBtYWlsID0gbS5ncm91cCgxKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbSA9IE5BTUVfUkUubWF0Y2godXNlcikKICAgICAgICAgICAgIGlmIG06CkBAIC0zNDQsOCArMzQ1LDYgQEAKICAgICByZXR1cm4gKG5hbWUsIG1haWwpCiAKIGRlZiBmaXh1cF91c2VyKHVzZXIpOgotICAgIGdsb2JhbCBtb2RlLCBiYWRfbWFpbAotCiAgICAgaWYgbW9kZSA9PSAnZ2l0JzoKICAgICAgICAgbmFtZSwgbWFpbCA9IGZpeHVwX3VzZXJfZ2l0KHVzZXIpCiAgICAgZWxzZToKQEAgLTM3NCw3ICszNzMsNyBAQAogICAgICAgICBib29rbWFya3Mud3JpdGUocmVwbykKIAogZGVmIGdldF9yZXBvKHVybCwgYWxpYXMpOgotICAgIGdsb2JhbCBkaXJuYW1lLCBwZWVyCisgICAgZ2xvYmFsIHBlZXIKIAogICAgIG15dWkgPSB1aS51aSgpCiAgICAgbXl1aS5zZXRjb25maWcoJ3VpJywgJ2ludGVyYWN0aXZlJywgJ29mZicpCkBAIC0zOTEsMTEgKzM5MCwyNCBAQAogICAgICAgICAgICAgb3MubWFrZWRpcnMoZGlybmFtZSkKICAgICBlbHNlOgogICAgICAgICBzaGFyZWRfcGF0aCA9IG9zLnBhdGguam9pbihnaXRkaXIsICdoZycpCi0gICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzaGFyZWRfcGF0aCk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgaGcuY2xvbmUobXl1aSwge30sIHVybCwgc2hhcmVkX3BhdGgsIHVwZGF0ZT1GYWxzZSwgcHVsbD1UcnVlKQotICAgICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgIGRpZSgnUmVwb3NpdG9yeSBlcnJvcicpCisKKyAgICAgICAgIyBjaGVjayBhbmQgdXBncmFkZSBvbGQgb3JnYW5pemF0aW9uCisgICAgICAgIGhnX3BhdGggPSBvcy5wYXRoLmpvaW4oc2hhcmVkX3BhdGgsICcuaGcnKQorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhzaGFyZWRfcGF0aCkgYW5kIG5vdCBvcy5wYXRoLmV4aXN0cyhoZ19wYXRoKToKKyAgICAgICAgICAgIHJlcG9zID0gb3MubGlzdGRpcihzaGFyZWRfcGF0aCkKKyAgICAgICAgICAgIGZvciB4IGluIHJlcG9zOgorICAgICAgICAgICAgICAgIGxvY2FsX2hnID0gb3MucGF0aC5qb2luKHNoYXJlZF9wYXRoLCB4LCAnY2xvbmUnLCAnLmhnJykKKyAgICAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMobG9jYWxfaGcpOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhoZ19wYXRoKToKKyAgICAgICAgICAgICAgICAgICAgc2h1dGlsLm1vdmUobG9jYWxfaGcsIGhnX3BhdGgpCisgICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShvcy5wYXRoLmpvaW4oc2hhcmVkX3BhdGgsIHgsICdjbG9uZScpKQorCisgICAgICAgICMgc2V0dXAgc2hhcmVkIHJlcG8gKGlmIG5vdCB0aGVyZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaGcucGVlcihteXVpLCB7fSwgc2hhcmVkX3BhdGgsIGNyZWF0ZT1UcnVlKQorICAgICAgICBleGNlcHQgZXJyb3IuUmVwb0Vycm9yOgorICAgICAgICAgICAgcGFzcwogCiAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhkaXJuYW1lKToKICAgICAgICAgICAgIG9zLm1ha2VkaXJzKGRpcm5hbWUpCkBAIC00MDMsNiArNDE1LDkgQEAKICAgICAgICAgbG9jYWxfcGF0aCA9IG9zLnBhdGguam9pbihkaXJuYW1lLCAnY2xvbmUnKQogICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMobG9jYWxfcGF0aCk6CiAgICAgICAgICAgICBoZy5zaGFyZShteXVpLCBzaGFyZWRfcGF0aCwgbG9jYWxfcGF0aCwgdXBkYXRlPUZhbHNlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBtYWtlIHN1cmUgdGhlIHNoYXJlZCBwYXRoIGlzIGFsd2F5cyB1cC10by1kYXRlCisgICAgICAgICAgICB1dGlsLndyaXRlZmlsZShvcy5wYXRoLmpvaW4obG9jYWxfcGF0aCwgJy5oZycsICdzaGFyZWRwYXRoJyksIGhnX3BhdGgpCiAKICAgICAgICAgcmVwbyA9IGhnLnJlcG9zaXRvcnkobXl1aSwgbG9jYWxfcGF0aCkKICAgICAgICAgdHJ5OgpAQCAtNDE2LDE2ICs0MzEsMTIgQEAKICAgICByZXR1cm4gcmVwbwogCiBkZWYgcmV2X3RvX21hcmsocmV2KToKLSAgICBnbG9iYWwgbWFya3MKICAgICByZXR1cm4gbWFya3MuZnJvbV9yZXYocmV2LmhleCgpKQogCiBkZWYgbWFya190b19yZXYobWFyayk6Ci0gICAgZ2xvYmFsIG1hcmtzCiAgICAgcmV0dXJuIG1hcmtzLnRvX3JldihtYXJrKQogCiBkZWYgZXhwb3J0X3JlZihyZXBvLCBuYW1lLCBraW5kLCBoZWFkKToKLSAgICBnbG9iYWwgcHJlZml4LCBtYXJrcywgbW9kZQotCiAgICAgZW5hbWUgPSAnJXMvJXMnICUgKGtpbmQsIG5hbWUpCiAgICAgdHJ5OgogICAgICAgICB0aXAgPSBtYXJrcy5nZXRfdGlwKGVuYW1lKQpAQCAtNTIyLDYgKzUzMywzMSBAQAogICAgIHByaW50ICJmcm9tIDoldSIgJSByZXZfdG9fbWFyayhoZWFkKQogICAgIHByaW50CiAKKyAgICBwZW5kaW5nX3JldnMgPSBzZXQocmV2cykgLSBub3RlcworICAgIGlmIHBlbmRpbmdfcmV2czoKKyAgICAgICAgbm90ZV9tYXJrID0gbWFya3MubmV4dF9tYXJrKCkKKyAgICAgICAgcmVmID0gInJlZnMvbm90ZXMvaGciCisKKyAgICAgICAgcHJpbnQgImNvbW1pdCAlcyIgJSByZWYKKyAgICAgICAgcHJpbnQgIm1hcmsgOiVkIiAlIChub3RlX21hcmspCisgICAgICAgIHByaW50ICJjb21taXR0ZXIgcmVtb3RlLWhnIDw+ICVkICVzIiAlIChwdGltZS50aW1lKCksIGdpdHR6KHB0aW1lLnRpbWV6b25lKSkKKyAgICAgICAgZGVzYyA9ICJOb3RlcyBmb3IgJXNcbiIgJSAobmFtZSkKKyAgICAgICAgcHJpbnQgImRhdGEgJWQiICUgKGxlbihkZXNjKSkKKyAgICAgICAgcHJpbnQgZGVzYworICAgICAgICBpZiBtYXJrcy5sYXN0X25vdGU6CisgICAgICAgICAgICBwcmludCAiZnJvbSA6JXUiICUgbWFya3MubGFzdF9ub3RlCisKKyAgICAgICAgZm9yIHJldiBpbiBwZW5kaW5nX3JldnM6CisgICAgICAgICAgICBub3Rlcy5hZGQocmV2KQorICAgICAgICAgICAgYyA9IHJlcG9bcmV2XQorICAgICAgICAgICAgcHJpbnQgIk4gaW5saW5lIDoldSIgJSByZXZfdG9fbWFyayhjKQorICAgICAgICAgICAgbXNnID0gYy5oZXgoKQorICAgICAgICAgICAgcHJpbnQgImRhdGEgJWQiICUgKGxlbihtc2cpKQorICAgICAgICAgICAgcHJpbnQgbXNnCisgICAgICAgIHByaW50CisKKyAgICAgICAgbWFya3MubGFzdF9ub3RlID0gbm90ZV9tYXJrCisKICAgICBtYXJrcy5zZXRfdGlwKGVuYW1lLCBoZWFkLmhleCgpKQogCiBkZWYgZXhwb3J0X3RhZyhyZXBvLCB0YWcpOgpAQCAtNTM3LDEyICs1NzMsOSBAQAogICAgIGV4cG9ydF9yZWYocmVwbywgYnJhbmNoLCAnYnJhbmNoZXMnLCBoZWFkKQogCiBkZWYgZXhwb3J0X2hlYWQocmVwbyk6Ci0gICAgZ2xvYmFsIGdfaGVhZAogICAgIGV4cG9ydF9yZWYocmVwbywgZ19oZWFkWzBdLCAnYm9va21hcmtzJywgZ19oZWFkWzFdKQogCiBkZWYgZG9fY2FwYWJpbGl0aWVzKHBhcnNlcik6Ci0gICAgZ2xvYmFsIHByZWZpeCwgZGlybmFtZQotCiAgICAgcHJpbnQgImltcG9ydCIKICAgICBwcmludCAiZXhwb3J0IgogICAgIHByaW50ICJyZWZzcGVjIHJlZnMvaGVhZHMvYnJhbmNoZXMvKjolcy9icmFuY2hlcy8qIiAlIHByZWZpeApAQCAtNTYyLDggKzU5NSw2IEBACiAgICAgcmV0dXJuIGJyYW5jaGVzW2JyYW5jaF1bLTFdCiAKIGRlZiBnZXRfYnJhbmNoX3RpcChyZXBvLCBicmFuY2gpOgotICAgIGdsb2JhbCBicmFuY2hlcwotCiAgICAgaGVhZHMgPSBicmFuY2hlcy5nZXQoaGdyZWYoYnJhbmNoKSwgTm9uZSkKICAgICBpZiBub3QgaGVhZHM6CiAgICAgICAgIHJldHVybiBOb25lCkBAIC01NzYsNyArNjA3LDcgQEAKICAgICByZXR1cm4gaGVhZHNbMF0KIAogZGVmIGxpc3RfaGVhZChyZXBvLCBjdXIpOgotICAgIGdsb2JhbCBnX2hlYWQsIGJtYXJrcywgZmFrZV9ibWFyaworICAgIGdsb2JhbCBnX2hlYWQsIGZha2VfYm1hcmsKIAogICAgIGlmICdkZWZhdWx0JyBub3QgaW4gYnJhbmNoZXM6CiAgICAgICAgICMgZW1wdHkgcmVwbwpAQCAtNTkyLDggKzYyMyw2IEBACiAgICAgZ19oZWFkID0gKGhlYWQsIG5vZGUpCiAKIGRlZiBkb19saXN0KHBhcnNlcik6Ci0gICAgZ2xvYmFsIGJyYW5jaGVzLCBibWFya3MsIHRyYWNrX2JyYW5jaGVzCi0KICAgICByZXBvID0gcGFyc2VyLnJlcG8KICAgICBmb3IgYm1hcmssIG5vZGUgaW4gYm9va21hcmtzLmxpc3Rib29rbWFya3MocmVwbykuaXRlcml0ZW1zKCk6CiAgICAgICAgIGJtYXJrc1tibWFya10gPSByZXBvW25vZGVdCkBAIC02NjEsOCArNjkwLDYgQEAKICAgICBwcmludCAnZG9uZScKIAogZGVmIHBhcnNlX2Jsb2IocGFyc2VyKToKLSAgICBnbG9iYWwgYmxvYl9tYXJrcwotCiAgICAgcGFyc2VyLm5leHQoKQogICAgIG1hcmsgPSBwYXJzZXIuZ2V0X21hcmsoKQogICAgIHBhcnNlci5uZXh0KCkKQEAgLTY4NCw5ICs3MTEsNiBAQAogICAgIHJldHVybiBzdHJpbmcKIAogZGVmIHBhcnNlX2NvbW1pdChwYXJzZXIpOgotICAgIGdsb2JhbCBtYXJrcywgYmxvYl9tYXJrcywgcGFyc2VkX3JlZnMKLSAgICBnbG9iYWwgbW9kZQotCiAgICAgZnJvbV9tYXJrID0gbWVyZ2VfbWFyayA9IE5vbmUKIAogICAgIHJlZiA9IHBhcnNlclsxXQpAQCAtODA1LDggKzgyOSw2IEBACiAgICAgbWFya3MubmV3X21hcmsobm9kZSwgY29tbWl0X21hcmspCiAKIGRlZiBwYXJzZV9yZXNldChwYXJzZXIpOgotICAgIGdsb2JhbCBwYXJzZWRfcmVmcwotCiAgICAgcmVmID0gcGFyc2VyWzFdCiAgICAgcGFyc2VyLm5leHQoKQogICAgICMgdWdoCkBAIC05OTksOCArMTAyMSw2IEBACiAgICAgICAgIHJldHVybiB0aXAgaW4gaGVhZHMKIAogZGVmIGRvX2V4cG9ydChwYXJzZXIpOgotICAgIGdsb2JhbCBwYXJzZWRfcmVmcywgYm1hcmtzLCBwZWVyCi0KICAgICBwX2JtYXJrcyA9IFtdCiAgICAgcF9yZXZzID0ge30KIApAQCAtMTA3Miw3ICsxMDkyLDcgQEAKICAgICAgICAgICAgIGF1dGhvciwgbXNnID0gcGFyc2VkX3RhZ3MuZ2V0KHRhZywgKE5vbmUsIE5vbmUpKQogICAgICAgICAgICAgaWYgbW9kZSA9PSAnZ2l0JzoKICAgICAgICAgICAgICAgICBpZiBub3QgbXNnOgotICAgICAgICAgICAgICAgICAgICBtc2cgPSAnQWRkZWQgdGFnICVzIGZvciBjaGFuZ2VzZXQgJXMnICUgKHRhZywgbm9kZVs6MTJdKTsKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gJ0FkZGVkIHRhZyAlcyBmb3IgY2hhbmdlc2V0ICVzJyAlICh0YWcsIG5vZGVbOjEyXSkKICAgICAgICAgICAgICAgICB0YWdub2RlLCBicmFuY2ggPSB3cml0ZV90YWcocGFyc2VyLnJlcG8sIHRhZywgbm9kZSwgbXNnLCBhdXRob3IpCiAgICAgICAgICAgICAgICAgcF9yZXZzW3RhZ25vZGVdID0gJ3JlZnMvaGVhZHMvYnJhbmNoZXMvJyArIGdpdHJlZihicmFuY2gpCiAgICAgICAgICAgICBlbHNlOgpAQCAtMTEzMCw3ICsxMTUwLDcgQEAKIAogZGVmIGZpeF9wYXRoKGFsaWFzLCByZXBvLCBvcmlnX3VybCk6CiAgICAgdXJsID0gdXJscGFyc2UudXJscGFyc2Uob3JpZ191cmwsICdmaWxlJykKLSAgICBpZiB1cmwuc2NoZW1lICE9ICdmaWxlJyBvciBvcy5wYXRoLmlzYWJzKHVybC5wYXRoKToKKyAgICBpZiB1cmwuc2NoZW1lICE9ICdmaWxlJyBvciBvcy5wYXRoLmlzYWJzKG9zLnBhdGguZXhwYW5kdXNlcih1cmwucGF0aCkpOgogICAgICAgICByZXR1cm4KICAgICBhYnNfdXJsID0gdXJscGFyc2UudXJsam9pbigiJXMvIiAlIG9zLmdldGN3ZCgpLCBvcmlnX3VybCkKICAgICBjbWQgPSBbJ2dpdCcsICdjb25maWcnLCAncmVtb3RlLiVzLnVybCcgJSBhbGlhcywgImhnOjolcyIgJSBhYnNfdXJsXQpAQCAtMTE0NSw2ICsxMTY1LDE3IEBACiAgICAgZ2xvYmFsIGZpbGVub2RlcwogICAgIGdsb2JhbCBmYWtlX2JtYXJrLCBoZ192ZXJzaW9uCiAgICAgZ2xvYmFsIGRyeV9ydW4KKyAgICBnbG9iYWwgbm90ZXMsIGFsaWFzCisKKyAgICBtYXJrcyA9IE5vbmUKKyAgICBpc190bXAgPSBGYWxzZQorICAgIGdpdGRpciA9IG9zLmVudmlyb24uZ2V0KCdHSVRfRElSJywgTm9uZSkKKworICAgIGlmIGxlbihhcmdzKSA8IDM6CisgICAgICAgIGRpZSgnTm90IGVub3VnaCBhcmd1bWVudHMuJykKKworICAgIGlmIG5vdCBnaXRkaXI6CisgICAgICAgIGRpZSgnR0lUX0RJUiBub3Qgc2V0JykKIAogICAgIGFsaWFzID0gYXJnc1sxXQogICAgIHVybCA9IGFyZ3NbMl0KQEAgLTExNjYsMTYgKzExOTcsMTIgQEAKICAgICBpZiBhbGlhc1s0Ol0gPT0gdXJsOgogICAgICAgICBpc190bXAgPSBUcnVlCiAgICAgICAgIGFsaWFzID0gaGFzaGxpYi5zaGExKGFsaWFzKS5oZXhkaWdlc3QoKQotICAgIGVsc2U6Ci0gICAgICAgIGlzX3RtcCA9IEZhbHNlCiAKLSAgICBnaXRkaXIgPSBvcy5lbnZpcm9uWydHSVRfRElSJ10KICAgICBkaXJuYW1lID0gb3MucGF0aC5qb2luKGdpdGRpciwgJ2hnJywgYWxpYXMpCiAgICAgYnJhbmNoZXMgPSB7fQogICAgIGJtYXJrcyA9IHt9CiAgICAgYmxvYl9tYXJrcyA9IHt9CiAgICAgcGFyc2VkX3JlZnMgPSB7fQotICAgIG1hcmtzID0gTm9uZQogICAgIHBhcnNlZF90YWdzID0ge30KICAgICBmaWxlbm9kZXMgPSB7fQogICAgIGZha2VfYm1hcmsgPSBOb25lCkBAIC0xMTg0LDYgKzEyMTEsNyBAQAogICAgIGV4Y2VwdDoKICAgICAgICAgaGdfdmVyc2lvbiA9IE5vbmUKICAgICBkcnlfcnVuID0gRmFsc2UKKyAgICBub3RlcyA9IHNldCgpCiAKICAgICByZXBvID0gZ2V0X3JlcG8odXJsLCBhbGlhcykKICAgICBwcmVmaXggPSAncmVmcy9oZy8lcycgJSBhbGlhcwpkaWZmIC0tZ2l0IGEvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWJ6ci5zaCBiL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1ienIuc2gKaW5kZXggZGNlMjgxZi4uMWU1M2ZmOSAxMDA3NTUKLS0tIGEvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWJ6ci5zaAorKysgYi9jb250cmliL3JlbW90ZS1oZWxwZXJzL3Rlc3QtYnpyLnNoCkBAIC01LDIxICs1LDI0IEBACiAKIHRlc3RfZGVzY3JpcHRpb249J1Rlc3QgcmVtb3RlLWJ6cicKIAotLiAuL3Rlc3QtbGliLnNoCit0ZXN0IC1uICIkVEVTVF9ESVJFQ1RPUlkiIHx8IFRFU1RfRElSRUNUT1JZPSR7MCUvKn0vLi4vLi4vdAorLiAiJFRFU1RfRElSRUNUT1JZIi90ZXN0LWxpYi5zaAogCi1pZiAhIHRlc3RfaGF2ZV9wcmVyZXEgUFlUSE9OOyB0aGVuCitpZiAhIHRlc3RfaGF2ZV9wcmVyZXEgUFlUSE9OCit0aGVuCiAJc2tpcF9hbGw9J3NraXBwaW5nIHJlbW90ZS1ienIgdGVzdHM7IHB5dGhvbiBub3QgYXZhaWxhYmxlJwogCXRlc3RfZG9uZQogZmkKIAotaWYgISBweXRob24gLWMgJ2ltcG9ydCBienJsaWInOyB0aGVuCitpZiAhIHB5dGhvbiAtYyAnaW1wb3J0IGJ6cmxpYicKK3RoZW4KIAlza2lwX2FsbD0nc2tpcHBpbmcgcmVtb3RlLWJ6ciB0ZXN0czsgYnpyIG5vdCBhdmFpbGFibGUnCiAJdGVzdF9kb25lCiBmaQogCiBjaGVjayAoKSB7Ci0JZWNobyAkMyA+IGV4cGVjdGVkICYmCi0JZ2l0IC0tZ2l0LWRpcj0kMS8uZ2l0IGxvZyAtLWZvcm1hdD0nJXMnIC0xICQyID4gYWN0dWFsCisJZWNobyAkMyA+ZXhwZWN0ZWQgJiYKKwlnaXQgLS1naXQtZGlyPSQxLy5naXQgbG9nIC0tZm9ybWF0PSclcycgLTEgJDIgPmFjdHVhbAogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogfQogCkBAIC0yOSw3ICszMiw3IEBACiAJKAogCWJ6ciBpbml0IGJ6cnJlcG8gJiYKIAljZCBienJyZXBvICYmCi0JZWNobyBvbmUgPiBjb250ZW50ICYmCisJZWNobyBvbmUgPmNvbnRlbnQgJiYKIAlienIgYWRkIGNvbnRlbnQgJiYKIAlienIgY29tbWl0IC1tIG9uZQogCSkgJiYKQEAgLTQxLDcgKzQ0LDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1bGxpbmcnICcKIAkoCiAJY2QgYnpycmVwbyAmJgotCWVjaG8gdHdvID4gY29udGVudCAmJgorCWVjaG8gdHdvID5jb250ZW50ICYmCiAJYnpyIGNvbW1pdCAtbSB0d28KIAkpICYmCiAKQEAgLTUzLDEzICs1NiwxMyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaGluZycgJwogCSgKIAljZCBnaXRyZXBvICYmCi0JZWNobyB0aHJlZSA+IGNvbnRlbnQgJiYKKwllY2hvIHRocmVlID5jb250ZW50ICYmCiAJZ2l0IGNvbW1pdCAtYSAtbSB0aHJlZSAmJgogCWdpdCBwdXNoCiAJKSAmJgogCi0JZWNobyB0aHJlZSA+IGV4cGVjdGVkICYmCi0JY2F0IGJ6cnJlcG8vY29udGVudCA+IGFjdHVhbCAmJgorCWVjaG8gdGhyZWUgPmV4cGVjdGVkICYmCisJY2F0IGJ6cnJlcG8vY29udGVudCA+YWN0dWFsICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKQEAgLTY3LDE2ICs3MCwxNiBAQAogCSgKIAljZCBnaXRyZXBvICYmCiAJZ2l0IHB1bGwgJiYKLQlnaXQgbG9nIC0tZm9ybWF0PSIlcyIgLTEgb3JpZ2luL21hc3RlciA+IGFjdHVhbAorCWdpdCBsb2cgLS1mb3JtYXQ9IiVzIiAtMSBvcmlnaW4vbWFzdGVyID5hY3R1YWwKIAkpICYmCi0JZWNobyB0aHJlZSA+IGV4cGVjdGVkICYmCisJZWNobyB0aHJlZSA+ZXhwZWN0ZWQgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwgJiYKIAogCShjZCBnaXRyZXBvICYmIGdpdCBwdXNoICYmIGdpdCBwdWxsKSAmJgogCiAJKAogCWNkIGJ6cnJlcG8gJiYKLQllY2hvIGZvdXIgPiBjb250ZW50ICYmCisJZWNobyBmb3VyID5jb250ZW50ICYmCiAJYnpyIGNvbW1pdCAtbSBmb3VyCiAJKSAmJgogCkBAIC04NiwxOSArODksMTkgQEAKIAogCSgKIAljZCBnaXRyZXBvICYmCi0JZWNobyBmaXZlID4gY29udGVudCAmJgorCWVjaG8gZml2ZSA+Y29udGVudCAmJgogCWdpdCBjb21taXQgLWEgLW0gZml2ZSAmJgogCWdpdCBwdXNoICYmIGdpdCBwdWxsCiAJKSAmJgogCiAJKGNkIGJ6cnJlcG8gJiYgYnpyIHJldmVydCkgJiYKIAotCWVjaG8gZml2ZSA+IGV4cGVjdGVkICYmCi0JY2F0IGJ6cnJlcG8vY29udGVudCA+IGFjdHVhbCAmJgorCWVjaG8gZml2ZSA+ZXhwZWN0ZWQgJiYKKwljYXQgYnpycmVwby9jb250ZW50ID5hY3R1YWwgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKIAotY2F0ID4gZXhwZWN0ZWQgPDxFT0YKK2NhdCA+ZXhwZWN0ZWQgPDxcRU9GCiAxMDA2NDQgYmxvYiA1NGY5ZDZkYTVjOTFkNTU2ZTZiNTQzNDBiMTMyNzU3MzA3MzAzMGFmCWNvbnRlbnQKIDEwMDc1NSBibG9iIDY4NzY5NTc5YzNlYWFkYmU1NTUzNzliOWMzNTM4ZTY2MjhiYWUxZWIJZXhlY3V0YWJsZQogMTIwMDAwIGJsb2IgNmI1ODRlOGVjZTU2MmViZmZjMTVkMzg4MDhjZDZiOThmYzNkOTdlYQlsaW5rCkBAIC0xMDcsNyArMTEwLDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NwZWNpYWwgbW9kZXMnICcKIAkoCiAJY2QgYnpycmVwbyAmJgotCWVjaG8gZXhlYyA+IGV4ZWN1dGFibGUKKwllY2hvIGV4ZWMgPmV4ZWN1dGFibGUKIAljaG1vZCAreCBleGVjdXRhYmxlICYmCiAJYnpyIGFkZCBleGVjdXRhYmxlCiAJYnpyIGNvbW1pdCAtbSBleGVjICYmCkBAIC0xMjIsMjEgKzEyNSwyMSBAQAogCSgKIAljZCBnaXRyZXBvICYmCiAJZ2l0IHB1bGwKLQlnaXQgbHMtdHJlZSBIRUFEID4gLi4vYWN0dWFsCisJZ2l0IGxzLXRyZWUgSEVBRCA+Li4vYWN0dWFsCiAJKSAmJgogCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCiAKIAkoCiAJY2QgZ2l0cmVwbyAmJgotCWdpdCBjYXQtZmlsZSAtcCBIRUFEOmxpbmsgPiAuLi9hY3R1YWwKKwlnaXQgY2F0LWZpbGUgLXAgSEVBRDpsaW5rID4uLi9hY3R1YWwKIAkpICYmCiAKLQlwcmludGYgY29udGVudCA+IGV4cGVjdGVkICYmCisJcHJpbnRmIGNvbnRlbnQgPmV4cGVjdGVkICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKLWNhdCA+IGV4cGVjdGVkIDw8RU9GCitjYXQgPmV4cGVjdGVkIDw8XEVPRgogMTAwNjQ0IGJsb2IgNTRmOWQ2ZGE1YzkxZDU1NmU2YjU0MzQwYjEzMjc1NzMwNzMwMzBhZgljb250ZW50CiAxMDA3NTUgYmxvYiA2ODc2OTU3OWMzZWFhZGJlNTU1Mzc5YjljMzUzOGU2NjI4YmFlMWViCWV4ZWN1dGFibGUKIDEyMDAwMCBibG9iIDZiNTg0ZThlY2U1NjJlYmZmYzE1ZDM4ODA4Y2Q2Yjk4ZmMzZDk3ZWEJbGluawpAQCAtMTQ3LDggKzE1MCw4IEBACiAJKAogCWNkIGJ6cnJlcG8gJiYKIAlta2RpciBtb3ZlZGlyICYmCi0JZWNobyBvbmUgPiBtb3ZlZGlyL29uZSAmJgotCWVjaG8gdHdvID4gbW92ZWRpci90d28gJiYKKwllY2hvIG9uZSA+bW92ZWRpci9vbmUgJiYKKwllY2hvIHR3byA+bW92ZWRpci90d28gJiYKIAlienIgYWRkIG1vdmVkaXIgJiYKIAlienIgY29tbWl0IC1tIG1vdmVkaXIgJiYKIAlienIgbXYgbW92ZWRpciBtb3ZlZGlyLW5ldyAmJgpAQCAtMTU4LDcgKzE2MSw3IEBACiAJKAogCWNkIGdpdHJlcG8gJiYKIAlnaXQgcHVsbCAmJgotCWdpdCBscy10cmVlIEhFQUQgPiAuLi9hY3R1YWwKKwlnaXQgbHMtdHJlZSBIRUFEID4uLi9hY3R1YWwKIAkpICYmCiAKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKQEAgLTE2Nyw3ICsxNzAsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlmZmVyZW50IGF1dGhvcnMnICcKIAkoCiAJY2QgYnpycmVwbyAmJgotCWVjaG8gam9obiA+PiBjb250ZW50ICYmCisJZWNobyBqb2huID4+Y29udGVudCAmJgogCWJ6ciBjb21taXQgLW0gam9obiBcCiAJICAtLWF1dGhvciAiSmFuZSBSZXkgPGpyZXlAZXhhbXBsZS5jb20+IiBcCiAJICAtLWF1dGhvciAiSm9obiBEb2UgPGpkb2VAZXhhbXBsZS5jb20+IgpAQCAtMTc2LDEwICsxNzksMTAgQEAKIAkoCiAJY2QgZ2l0cmVwbyAmJgogCWdpdCBwdWxsICYmCi0JZ2l0IHNob3cgLS1mb3JtYXQ9IiVhbiA8JWFlPiwgJWNuIDwlY2U+IiAtLXF1aWV0ID4gLi4vYWN0dWFsCisJZ2l0IHNob3cgLS1mb3JtYXQ9IiVhbiA8JWFlPiwgJWNuIDwlY2U+IiAtLXF1aWV0ID4uLi9hY3R1YWwKIAkpICYmCiAKLQllY2hvICJKYW5lIFJleSA8anJleUBleGFtcGxlLmNvbT4sIEEgVSBUaG9yIDxhdXRob3JAZXhhbXBsZS5jb20+IiA+IGV4cGVjdGVkICYmCisJZWNobyAiSmFuZSBSZXkgPGpyZXlAZXhhbXBsZS5jb20+LCBBIFUgVGhvciA8YXV0aG9yQGV4YW1wbGUuY29tPiIgPmV4cGVjdGVkICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKQEAgLTE5NiwxMiArMTk5LDEyIEBACiAJYnpyIGluaXQgYnpycmVwbyAmJgogCWNkIGJ6cnJlcG8gJiYKIAotCWVjaG8gdGVzdCA+PiAiw6Zyw7giICYmCisJZWNobyB0ZXN0ID4+IsOmcsO4IiAmJgogCWJ6ciBhZGQgIsOmcsO4IiAmJgotCWVjaG8gdGVzdCA+PiAiw7h+PyIgJiYKKwllY2hvIHRlc3QgPj4iw7h+PyIgJiYKIAlienIgYWRkICLDuH4/IiAmJgogCWJ6ciBjb21taXQgLW0gYWRkLXV0Zi04ICYmCi0JZWNobyB0ZXN0ID4+ICLDpnLDuCIgJiYKKwllY2hvIHRlc3QgPj4iw6Zyw7giICYmCiAJYnpyIGNvbW1pdCAtbSB0ZXN0LXV0Zi04ICYmCiAJYnpyIHJtICLDuH4/IiAmJgogCWJ6ciBtdiAiw6Zyw7giICLDuH4/IiAmJgpAQCAtMjExLDkgKzIxNCw5IEBACiAJKAogCWdpdCBjbG9uZSAiYnpyOjpienJyZXBvIiBnaXRyZXBvICYmCiAJY2QgZ2l0cmVwbyAmJgotCWdpdCAtYyBjb3JlLnF1b3RlcGF0aD1mYWxzZSBscy1maWxlcyA+IC4uL2FjdHVhbAorCWdpdCAtYyBjb3JlLnF1b3RlcGF0aD1mYWxzZSBscy1maWxlcyA+Li4vYWN0dWFsCiAJKSAmJgotCWVjaG8gIsO4fj8iID4gZXhwZWN0ZWQgJiYKKwllY2hvICLDuH4/IiA+ZXhwZWN0ZWQgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKIApAQCAtMjI5LDcgKzIzMiw3IEBACiAJYnpyIGluaXQgYnpycmVwbyAmJgogCWNkIGJ6cnJlcG8gJiYKIAotCWVjaG8gb25lID4+IGNvbnRlbnQgJiYKKwllY2hvIG9uZSA+PmNvbnRlbnQgJiYKIAlienIgYWRkIGNvbnRlbnQgJiYKIAlienIgY29tbWl0IC1tIG9uZQogCSkgJiYKQEAgLTIzOCwxNSArMjQxLDE1IEBACiAJZ2l0IGNsb25lICJienI6OmJ6cnJlcG8iIGdpdHJlcG8gJiYKIAljZCBnaXRyZXBvICYmCiAKLQllY2hvIHRlc3QgPj4gIsOmcsO4IiAmJgorCWVjaG8gdGVzdCA+PiLDpnLDuCIgJiYKIAlnaXQgYWRkICLDpnLDuCIgJiYKIAlnaXQgY29tbWl0IC1tIHV0Zi04ICYmCiAKIAlnaXQgcHVzaAogCSkgJiYKIAotCShjZCBienJyZXBvICYmIGJ6ciBscyA+IC4uL2FjdHVhbCkgJiYKLQlwcmludGYgImNvbnRlbnRcbsOmcsO4XG4iID4gZXhwZWN0ZWQgJiYKKwkoY2QgYnpycmVwbyAmJiBienIgbHMgPi4uL2FjdHVhbCkgJiYKKwlwcmludGYgImNvbnRlbnRcbsOmcsO4XG4iID5leHBlY3RlZCAmJgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCkBAIC0yNTYsNyArMjU5LDcgQEAKIAkoCiAJYnpyIGluaXQgYnpycmVwbyAmJgogCWNkIGJ6cnJlcG8gJiYKLQllY2hvIG9uZSA+IGNvbnRlbnQgJiYKKwllY2hvIG9uZSA+Y29udGVudCAmJgogCWJ6ciBhZGQgY29udGVudCAmJgogCWJ6ciBjb21taXQgLW0gb25lCiAJKSAmJgpAQCAtMjY1LDI3ICsyNjgsMjcgQEAKIAogCSgKIAljZCBienJyZXBvICYmCi0JZWNobyB0d28gPiBjb250ZW50ICYmCisJZWNobyB0d28gPmNvbnRlbnQgJiYKIAlienIgY29tbWl0IC1tIHR3bwogCSkgJiYKIAogCSgKIAljZCBnaXRyZXBvICYmCi0JZWNobyB0aHJlZSA+IGNvbnRlbnQgJiYKKwllY2hvIHRocmVlID5jb250ZW50ICYmCiAJZ2l0IGNvbW1pdCAtYSAtbSB0aHJlZSAmJgogCWdpdCBmZXRjaCAmJgogCWdpdCBtZXJnZSBvcmlnaW4vbWFzdGVyIHx8IHRydWUgJiYKLQllY2hvIHRocmVlID4gY29udGVudCAmJgorCWVjaG8gdGhyZWUgPmNvbnRlbnQgJiYKIAlnaXQgY29tbWl0IC1hIC0tbm8tZWRpdCAmJgogCWdpdCBwdXNoCiAJKSAmJgogCi0JZWNobyB0aHJlZSA+IGV4cGVjdGVkICYmCi0JY2F0IGJ6cnJlcG8vY29udGVudCA+IGFjdHVhbCAmJgorCWVjaG8gdGhyZWUgPmV4cGVjdGVkICYmCisJY2F0IGJ6cnJlcG8vY29udGVudCA+YWN0dWFsICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKLWNhdCA+IGV4cGVjdGVkIDw8RU9GCitjYXQgPmV4cGVjdGVkIDw8XEVPRgogb3JpZ2luL0hFQUQKIG9yaWdpbi9icmFuY2gKIG9yaWdpbi90cnVuawpAQCAtMjk5LDcgKzMwMiw3IEBACiAJKAogCWJ6ciBpbml0IGJ6cnJlcG8vdHJ1bmsgJiYKIAljZCBienJyZXBvL3RydW5rICYmCi0JZWNobyBvbmUgPj4gY29udGVudCAmJgorCWVjaG8gb25lID4+Y29udGVudCAmJgogCWJ6ciBhZGQgY29udGVudCAmJgogCWJ6ciBjb21taXQgLW0gb25lCiAJKSAmJgpAQCAtMzA3LDE0ICszMTAsMTQgQEAKIAkoCiAJYnpyIGJyYW5jaCBienJyZXBvL3RydW5rIGJ6cnJlcG8vYnJhbmNoICYmCiAJY2QgYnpycmVwby9icmFuY2ggJiYKLQllY2hvIHR3byA+PiBjb250ZW50ICYmCisJZWNobyB0d28gPj5jb250ZW50ICYmCiAJYnpyIGNvbW1pdCAtbSBvbmUKIAkpICYmCiAKIAkoCiAJZ2l0IGNsb25lICJienI6OmJ6cnJlcG8iIGdpdHJlcG8gJiYKIAljZCBnaXRyZXBvICYmCi0JZ2l0IGZvci1lYWNoLXJlZiAtLWZvcm1hdCAiJShyZWZuYW1lOnNob3J0KSIgcmVmcy9yZW1vdGVzL29yaWdpbiA+IC4uL2FjdHVhbAorCWdpdCBmb3ItZWFjaC1yZWYgLS1mb3JtYXQgIiUocmVmbmFtZTpzaG9ydCkiIHJlZnMvcmVtb3Rlcy9vcmlnaW4gPi4uL2FjdHVhbAogCSkgJiYKIAogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbApAQCAtMzI3LDExICszMzAsMTEgQEAKIAlienIgaW5pdCBienJyZXBvICYmCiAJY2QgYnpycmVwbyAmJgogCi0JZWNobyBvbmUgPj4gY29udGVudCAmJgorCWVjaG8gb25lID4+Y29udGVudCAmJgogCWJ6ciBhZGQgY29udGVudCAmJgogCWJ6ciBjb21taXQgLW0gb25lICYmCiAKLQllY2hvIHR3byA+PiBjb250ZW50ICYmCisJZWNobyB0d28gPj5jb250ZW50ICYmCiAJYnpyIGNvbW1pdCAtbSB0d28KIAkpICYmCiAKQEAgLTM0MSwyMSArMzQ0LDUxIEBACiAJY2QgYnpycmVwbyAmJgogCWJ6ciB1bmNvbW1pdCAtLWZvcmNlICYmCiAKLQllY2hvIHRocmVlID4+IGNvbnRlbnQgJiYKKwllY2hvIHRocmVlID4+Y29udGVudCAmJgogCWJ6ciBjb21taXQgLW0gdGhyZWUgJiYKIAotCWVjaG8gZm91ciA+PiBjb250ZW50ICYmCisJZWNobyBmb3VyID4+Y29udGVudCAmJgogCWJ6ciBjb21taXQgLW0gZm91ciAmJgotCWJ6ciBsb2cgLS1saW5lIHwgc2VkIC1lICJzL15bMC05XVswLTldKjogLy8iID4gLi4vZXhwZWN0ZWQKKwlienIgbG9nIC0tbGluZSB8IHNlZCAtZSAicy9eWzAtOV1bMC05XSo6IC8vIiA+Li4vZXhwZWN0ZWQKIAkpICYmCiAKIAkoCiAJY2QgZ2l0cmVwbyAmJgogCWdpdCBmZXRjaCAmJgotCWdpdCBsb2cgLS1mb3JtYXQ9IiVhbiAlYWQgJXMiIC0tZGF0ZT1zaG9ydCBvcmlnaW4vbWFzdGVyID4gLi4vYWN0dWFsCisJZ2l0IGxvZyAtLWZvcm1hdD0iJWFuICVhZCAlcyIgLS1kYXRlPXNob3J0IG9yaWdpbi9tYXN0ZXIgPi4uL2FjdHVhbAogCSkgJiYKIAogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdleHBvcnQgdXRmLTggYXV0aG9ycycgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGJ6cnJlcG8gZ2l0cmVwbyAmJiBMQ19BTEw9QyAmJiB1bnNldCBHSVRfQ09NTUlUVEVSX05BTUUiICYmCisKKwlMQ19BTEw9ZW5fVVMuVVRGLTgKKwlleHBvcnQgTENfQUxMCisKKwlHSVRfQ09NTUlUVEVSX05BTUU9Ikdyw6lnb2lyZSIKKwlleHBvcnQgR0lUX0NPTU1JVFRFUl9OQU1FCisKKwlienIgaW5pdCBienJyZXBvICYmCisKKwkoCisJZ2l0IGluaXQgZ2l0cmVwbyAmJgorCWNkIGdpdHJlcG8gJiYKKwllY2hvIGdyZWcgPj5jb250ZW50ICYmCisJZ2l0IGFkZCBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtbSBvbmUgJiYKKwlnaXQgcmVtb3RlIGFkZCBienIgImJ6cjo6Li4vYnpycmVwbyIgJiYKKwlnaXQgcHVzaCBienIgbWFzdGVyCisJKSAmJgorCisJKAorCWNkIGJ6cnJlcG8gJiYKKwlienIgbG9nIHwgZ3JlcCAiXmNvbW1pdHRlcjogIiA+Li4vYWN0dWFsCisJKSAmJgorCisJZWNobyAiY29tbWl0dGVyOiBHcsOpZ29pcmUgPGNvbW1pdHRlckBleGFtcGxlLmNvbT4iID5leHBlY3RlZCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1oZy1iaWRpLnNoIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLWJpZGkuc2gKaW5kZXggZjgzZDY3ZC4uZTI0YzUxZCAxMDA3NTUKLS0tIGEvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLWJpZGkuc2gKKysrIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLWJpZGkuc2gKQEAgLTEwLDEyICsxMCwxNCBAQAogCiAuIC4vdGVzdC1saWIuc2gKIAotaWYgISB0ZXN0X2hhdmVfcHJlcmVxIFBZVEhPTjsgdGhlbgoraWYgISB0ZXN0X2hhdmVfcHJlcmVxIFBZVEhPTgordGhlbgogCXNraXBfYWxsPSdza2lwcGluZyByZW1vdGUtaGcgdGVzdHM7IHB5dGhvbiBub3QgYXZhaWxhYmxlJwogCXRlc3RfZG9uZQogZmkKIAotaWYgISBweXRob24gLWMgJ2ltcG9ydCBtZXJjdXJpYWwnOyB0aGVuCitpZiAhIHB5dGhvbiAtYyAnaW1wb3J0IG1lcmN1cmlhbCcKK3RoZW4KIAlza2lwX2FsbD0nc2tpcHBpbmcgcmVtb3RlLWhnIHRlc3RzOyBtZXJjdXJpYWwgbm90IGF2YWlsYWJsZScKIAl0ZXN0X2RvbmUKIGZpCkBAIC00Myw3ICs0NSw3IEBACiAJZ2l0IGNoZWNrb3V0IC1xIC1iIHRtcCAmJgogCWdpdCBmZXRjaCAtcSAiaGc6Oi4uLyQxIiAncmVmcy90YWdzLyo6cmVmcy90YWdzLyonICdyZWZzL2hlYWRzLyo6cmVmcy9oZWFkcy8qJyAmJgogCWdpdCBjaGVja291dCAtcSBAey0xfSAmJgotCWdpdCBicmFuY2ggLXEgLUQgdG1wIDI+IC9kZXYvbnVsbCB8fCB0cnVlCisJZ2l0IGJyYW5jaCAtcSAtRCB0bXAgMj4vZGV2L251bGwgfHwgdHJ1ZQogCSkKIH0KIApAQCAtNjIsNyArNjQsNyBAQAogCWVjaG8gInRhZyA9IC1kIFwiMCAwXCIiCiAJZWNobyAiW2V4dGVuc2lvbnNdIgogCWVjaG8gImdyYXBobG9nID0iCi0JKSA+PiAiJEhPTUUiLy5oZ3JjICYmCisJKSA+PiIkSE9NRSIvLmhncmMgJiYKIAlnaXQgY29uZmlnIC0tZ2xvYmFsIHJlbW90ZS1oZy5oZy1naXQtY29tcGF0IHRydWUKIAlnaXQgY29uZmlnIC0tZ2xvYmFsIHJlbW90ZS1oZy50cmFjay1icmFuY2hlcyB0cnVlCiAKQEAgLTgxLDIyICs4MywyMiBAQAogCWdpdCBpbml0IC1xIGdpdHJlcG8gJiYKIAljZCBnaXRyZXBvICYmCiAKLQllY2hvIGFscGhhID4gYWxwaGEgJiYKKwllY2hvIGFscGhhID5hbHBoYSAmJgogCWdpdCBhZGQgYWxwaGEgJiYKIAlnaXQgY29tbWl0IC1tICJhZGQgw6RscGjDoCIgJiYKIAogCUdJVF9BVVRIT1JfTkFNRT0idMOpc3Qgw6huY8O2ZMOubmciICYmCiAJZXhwb3J0IEdJVF9BVVRIT1JfTkFNRSAmJgotCWVjaG8gYmV0YSA+IGJldGEgJiYKKwllY2hvIGJldGEgPmJldGEgJiYKIAlnaXQgYWRkIGJldGEgJiYKIAlnaXQgY29tbWl0IC1tICJhZGQgYmV0YSIgJiYKIAotCWVjaG8gZ2FtbWEgPiBnYW1tYSAmJgorCWVjaG8gZ2FtbWEgPmdhbW1hICYmCiAJZ2l0IGFkZCBnYW1tYSAmJgogCWdpdCBjb21taXQgLW0gImFkZCBnw6RtbcOiIiAmJgogCiAJOiBUT0RPIGdpdCBjb25maWcgaTE4bi5jb21taXRlbmNvZGluZyBsYXRpbi0xICYmCi0JZWNobyBkZWx0YSA+IGRlbHRhICYmCisJZWNobyBkZWx0YSA+ZGVsdGEgJiYKIAlnaXQgYWRkIGRlbHRhICYmCiAJZ2l0IGNvbW1pdCAtbSAiYWRkIGTDqWx0w6AiCiAJKSAmJgpAQCAtMTA1LDggKzEwNyw4IEBACiAJZ2l0X2Nsb25lIGhncmVwbyBnaXRyZXBvMiAmJgogCWhnX2Nsb25lIGdpdHJlcG8yIGhncmVwbzIgJiYKIAotCUhHRU5DT0RJTkc9dXRmLTggaGdfbG9nIGhncmVwbyA+IGV4cGVjdGVkICYmCi0JSEdFTkNPRElORz11dGYtOCBoZ19sb2cgaGdyZXBvMiA+IGFjdHVhbCAmJgorCUhHRU5DT0RJTkc9dXRmLTggaGdfbG9nIGhncmVwbyA+ZXhwZWN0ZWQgJiYKKwlIR0VOQ09ESU5HPXV0Zi04IGhnX2xvZyBoZ3JlcG8yID5hY3R1YWwgJiYKIAogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTE3LDE0ICsxMTksMTQgQEAKIAkoCiAJZ2l0IGluaXQgLXEgZ2l0cmVwbyAmJgogCWNkIGdpdHJlcG8gJiYKLQllY2hvIGFscGhhID4gYWxwaGEgJiYKKwllY2hvIGFscGhhID5hbHBoYSAmJgogCWdpdCBhZGQgYWxwaGEgJiYKIAlnaXQgY29tbWl0IC1tICJhZGQgYWxwaGEiICYmCi0JZWNobyBiZXRhID4gYmV0YSAmJgorCWVjaG8gYmV0YSA+YmV0YSAmJgogCWdpdCBhZGQgYmV0YSAmJgogCWdpdCBjb21taXQgLW0gImFkZCBiZXRhIgogCW1rZGlyIGZvbyAmJgotCWVjaG8gYmxhaCA+IGZvby9iYXIgJiYKKwllY2hvIGJsYWggPmZvby9iYXIgJiYKIAlnaXQgYWRkIGZvbyAmJgogCWdpdCBjb21taXQgLW0gImFkZCBmb28iICYmCiAJZ2l0IHJtIGFscGhhICYmCkBAIC0xMzcsOCArMTM5LDggQEAKIAlnaXRfY2xvbmUgaGdyZXBvIGdpdHJlcG8yICYmCiAJaGdfY2xvbmUgZ2l0cmVwbzIgaGdyZXBvMiAmJgogCi0JaGdfbG9nIGhncmVwbyA+IGV4cGVjdGVkICYmCi0JaGdfbG9nIGhncmVwbzIgPiBhY3R1YWwgJiYKKwloZ19sb2cgaGdyZXBvID5leHBlY3RlZCAmJgorCWhnX2xvZyBoZ3JlcG8yID5hY3R1YWwgJiYKIAogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTUwLDEyICsxNTIsMTIgQEAKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCiAJY2QgZ2l0cmVwbyAmJgogCWdpdCBjb25maWcgcmVjZWl2ZS5kZW55Q3VycmVudEJyYW5jaCBpZ25vcmUgJiYKLQllY2hvIGFscGhhID4gYWxwaGEgJiYKKwllY2hvIGFscGhhID5hbHBoYSAmJgogCWdpdCBhZGQgYWxwaGEgJiYKIAlnaXQgY29tbWl0IC1tICJhZGQgYWxwaGEiICYmCiAJZ2l0IHRhZyBhbHBoYSAmJgogCi0JZWNobyBiZXRhID4gYmV0YSAmJgorCWVjaG8gYmV0YSA+YmV0YSAmJgogCWdpdCBhZGQgYmV0YSAmJgogCWdpdCBjb21taXQgLW0gImFkZCBiZXRhIiAmJgogCWdpdCB0YWcgLWEgLW0gImFkZGVkIHRhZyBiZXRhIiBiZXRhCkBAIC0xNjUsOCArMTY3LDggQEAKIAlnaXRfY2xvbmUgaGdyZXBvIGdpdHJlcG8yICYmCiAJaGdfY2xvbmUgZ2l0cmVwbzIgaGdyZXBvMiAmJgogCi0JaGdfbG9nIGhncmVwbyA+IGV4cGVjdGVkICYmCi0JaGdfbG9nIGhncmVwbzIgPiBhY3R1YWwgJiYKKwloZ19sb2cgaGdyZXBvID5leHBlY3RlZCAmJgorCWhnX2xvZyBoZ3JlcG8yID5hY3R1YWwgJiYKIAogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTc4LDcgKzE4MCw3IEBACiAJZ2l0IGluaXQgLXEgZ2l0cmVwbyAmJgogCWNkIGdpdHJlcG8gJiYKIAotCWVjaG8gYWxwaGEgPiBhbHBoYSAmJgorCWVjaG8gYWxwaGEgPmFscGhhICYmCiAJZ2l0IGFkZCBhbHBoYSAmJgogCWdpdCBjb21taXQgLXEgLW0gImFkZCBhbHBoYSIgJiYKIAlnaXQgY2hlY2tvdXQgLXEgLWIgbm90LW1hc3RlcgpAQCAtMjAxLDggKzIwMyw4IEBACiAJOiBCYWNrIHRvIHRoZSBjb21tb24gcmV2aXNpb24gJiYKIAkoY2QgaGdyZXBvICYmIGhnIGNoZWNrb3V0IGRlZmF1bHQpICYmCiAKLQloZ19sb2cgaGdyZXBvID4gZXhwZWN0ZWQgJiYKLQloZ19sb2cgaGdyZXBvMiA+IGFjdHVhbCAmJgorCWhnX2xvZyBoZ3JlcG8gPmV4cGVjdGVkICYmCisJaGdfbG9nIGhncmVwbzIgPmFjdHVhbCAmJgogCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0yMTQsNyArMjE2LDcgQEAKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCiAJY2QgZ2l0cmVwbyAmJgogCi0JZWNobyBhbHBoYSA+IGFscGhhICYmCisJZWNobyBhbHBoYSA+YWxwaGEgJiYKIAlnaXQgYWRkIGFscGhhICYmCiAJZ2l0IGNvbW1pdCAtbSAiYWRkIGFscGhhIiAmJgogCWdpdCBjaGVja291dCAtcSAtYiBub3QtbWFzdGVyCkBAIC0yMzEsOCArMjMzLDggQEAKIAloZ19wdXNoIGhncmVwbyBnaXRyZXBvICYmCiAJaGdfY2xvbmUgZ2l0cmVwbyBoZ3JlcG8yICYmCiAKLQloZ19sb2cgaGdyZXBvID4gZXhwZWN0ZWQgJiYKLQloZ19sb2cgaGdyZXBvMiA+IGFjdHVhbCAmJgorCWhnX2xvZyBoZ3JlcG8gPmV4cGVjdGVkICYmCisJaGdfbG9nIGhncmVwbzIgPmFjdHVhbCAmJgogCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCmRpZmYgLS1naXQgYS9jb250cmliL3JlbW90ZS1oZWxwZXJzL3Rlc3QtaGctaGctZ2l0LnNoIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLWhnLWdpdC5zaAppbmRleCAyMjE5Mjg0Li42ZGNkOTVkIDEwMDc1NQotLS0gYS9jb250cmliL3JlbW90ZS1oZWxwZXJzL3Rlc3QtaGctaGctZ2l0LnNoCisrKyBiL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1oZy1oZy1naXQuc2gKQEAgLTEwLDE3ICsxMCwyMCBAQAogCiAuIC4vdGVzdC1saWIuc2gKIAotaWYgISB0ZXN0X2hhdmVfcHJlcmVxIFBZVEhPTjsgdGhlbgoraWYgISB0ZXN0X2hhdmVfcHJlcmVxIFBZVEhPTgordGhlbgogCXNraXBfYWxsPSdza2lwcGluZyByZW1vdGUtaGcgdGVzdHM7IHB5dGhvbiBub3QgYXZhaWxhYmxlJwogCXRlc3RfZG9uZQogZmkKIAotaWYgISBweXRob24gLWMgJ2ltcG9ydCBtZXJjdXJpYWwnOyB0aGVuCitpZiAhIHB5dGhvbiAtYyAnaW1wb3J0IG1lcmN1cmlhbCcKK3RoZW4KIAlza2lwX2FsbD0nc2tpcHBpbmcgcmVtb3RlLWhnIHRlc3RzOyBtZXJjdXJpYWwgbm90IGF2YWlsYWJsZScKIAl0ZXN0X2RvbmUKIGZpCiAKLWlmICEgcHl0aG9uIC1jICdpbXBvcnQgaGdnaXQnOyB0aGVuCitpZiAhIHB5dGhvbiAtYyAnaW1wb3J0IGhnZ2l0JwordGhlbgogCXNraXBfYWxsPSdza2lwcGluZyByZW1vdGUtaGcgdGVzdHM7IGhnLWdpdCBub3QgYXZhaWxhYmxlJwogCXRlc3RfZG9uZQogZmkKQEAgLTY2LDcgKzY5LDcgQEAKIAlnaXQgZmV0Y2ggLXEgImhnOjouLi8kMSIgJ3JlZnMvdGFncy8qOnJlZnMvdGFncy8qJyAncmVmcy9oZWFkcy8qOnJlZnMvaGVhZHMvKicgJiYKIAlnaXQgYnJhbmNoIC1EIGRlZmF1bHQgJiYKIAlnaXQgY2hlY2tvdXQgLXEgQHstMX0gJiYKLQlnaXQgYnJhbmNoIC1xIC1EIHRtcCAyPiAvZGV2L251bGwgfHwgdHJ1ZQorCWdpdCBicmFuY2ggLXEgLUQgdG1wIDI+L2Rldi9udWxsIHx8IHRydWUKIAkpCiB9CiAKQEAgLTEwMCw3ICsxMDMsNyBAQAogCWVjaG8gImhnZXh0LmJvb2ttYXJrcyA9IgogCWVjaG8gImhnZ2l0ID0iCiAJZWNobyAiZ3JhcGhsb2cgPSIKLQkpID4+ICIkSE9NRSIvLmhncmMgJiYKKwkpID4+IiRIT01FIi8uaGdyYyAmJgogCWdpdCBjb25maWcgLS1nbG9iYWwgcmVjZWl2ZS5kZW55Y3VycmVudGJyYW5jaCB3YXJuCiAJZ2l0IGNvbmZpZyAtLWdsb2JhbCByZW1vdGUtaGcuaGctZ2l0LWNvbXBhdCB0cnVlCiAJZ2l0IGNvbmZpZyAtLWdsb2JhbCByZW1vdGUtaGcudHJhY2stYnJhbmNoZXMgZmFsc2UKQEAgLTEyMSw3ICsxMjQsNyBAQAogCSgKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCiAJY2QgZ2l0cmVwbyAmJgotCWVjaG8gYWxwaGEgPiBhbHBoYSAmJgorCWVjaG8gYWxwaGEgPmFscGhhICYmCiAJY2htb2QgMDY0NCBhbHBoYSAmJgogCWdpdCBhZGQgYWxwaGEgJiYKIAlnaXQgY29tbWl0IC1tICJhZGQgYWxwaGEiICYmCkBAIC0xMzMsMTcgKzEzNiwxOCBAQAogCWdpdCBjb21taXQgLW0gImNsZWFyIGV4ZWN1dGFibGUgYml0IgogCSkgJiYKIAotCWZvciB4IGluIGhnIGdpdDsgZG8KKwlmb3IgeCBpbiBoZyBnaXQKKwlkbwogCQkoCiAJCWhnX2Nsb25lXyR4IGdpdHJlcG8gaGdyZXBvLSR4ICYmCiAJCWNkIGhncmVwby0keCAmJgogCQloZ19sb2cgLiAmJgogCQloZyBtYW5pZmVzdCAtciAxIC12ICYmCiAJCWhnIG1hbmlmZXN0IC12Ci0JCSkgPiBvdXRwdXQtJHggJiYKKwkJKSA+Im91dHB1dC0keCIgJiYKIAogCQlnaXRfY2xvbmVfJHggaGdyZXBvLSR4IGdpdHJlcG8yLSR4ICYmCi0JCWdpdF9sb2cgZ2l0cmVwbzItJHggPiBsb2ctJHgKKwkJZ2l0X2xvZyBnaXRyZXBvMi0keCA+ImxvZy0keCIKIAlkb25lICYmCiAKIAl0ZXN0X2NtcCBvdXRwdXQtaGcgb3V0cHV0LWdpdCAmJgpAQCAtMTU2LDcgKzE2MCw3IEBACiAJKAogCWdpdCBpbml0IC1xIGdpdHJlcG8gJiYKIAljZCBnaXRyZXBvICYmCi0JZWNobyBhbHBoYSA+IGFscGhhICYmCisJZWNobyBhbHBoYSA+YWxwaGEgJiYKIAlnaXQgYWRkIGFscGhhICYmCiAJZ2l0IGNvbW1pdCAtbSAiYWRkIGFscGhhIiAmJgogCWxuIC1zIGFscGhhIGJldGEgJiYKQEAgLTE2NCwxNiArMTY4LDE3IEBACiAJZ2l0IGNvbW1pdCAtbSAiYWRkIGJldGEiCiAJKSAmJgogCi0JZm9yIHggaW4gaGcgZ2l0OyBkbworCWZvciB4IGluIGhnIGdpdAorCWRvCiAJCSgKIAkJaGdfY2xvbmVfJHggZ2l0cmVwbyBoZ3JlcG8tJHggJiYKIAkJY2QgaGdyZXBvLSR4ICYmCiAJCWhnX2xvZyAuICYmCiAJCWhnIG1hbmlmZXN0IC12Ci0JCSkgPiBvdXRwdXQtJHggJiYKKwkJKSA+Im91dHB1dC0keCIgJiYKIAogCQlnaXRfY2xvbmVfJHggaGdyZXBvLSR4IGdpdHJlcG8yLSR4ICYmCi0JCWdpdF9sb2cgZ2l0cmVwbzItJHggPiBsb2ctJHgKKwkJZ2l0X2xvZyBnaXRyZXBvMi0keCA+ImxvZy0keCIKIAlkb25lICYmCiAKIAl0ZXN0X2NtcCBvdXRwdXQtaGcgb3V0cHV0LWdpdCAmJgpAQCAtMTg2LDI4ICsxOTEsMjkgQEAKIAkoCiAJaGcgaW5pdCBoZ3JlcG8xICYmCiAJY2QgaGdyZXBvMSAmJgotCWVjaG8gQSA+IGFmaWxlICYmCisJZWNobyBBID5hZmlsZSAmJgogCWhnIGFkZCBhZmlsZSAmJgogCWhnIGNpIC1tICJvcmlnaW4iICYmCiAKLQllY2hvIEIgPiBhZmlsZSAmJgorCWVjaG8gQiA+YWZpbGUgJiYKIAloZyBjaSAtbSAiQS0+QiIgJiYKIAogCWhnIHVwIC1yMCAmJgotCWVjaG8gQyA+IGFmaWxlICYmCisJZWNobyBDID5hZmlsZSAmJgogCWhnIGNpIC1tICJBLT5DIiAmJgogCiAJaGcgbWVyZ2UgLXIxICYmCi0JZWNobyBDID4gYWZpbGUgJiYKKwllY2hvIEMgPmFmaWxlICYmCiAJaGcgcmVzb2x2ZSAtbSBhZmlsZSAmJgogCWhnIGNpIC1tICJtZXJnZSB0byBDIgogCSkgJiYKIAotCWZvciB4IGluIGhnIGdpdDsgZG8KKwlmb3IgeCBpbiBoZyBnaXQKKwlkbwogCQlnaXRfY2xvbmVfJHggaGdyZXBvMSBnaXRyZXBvLSR4ICYmCiAJCWhnX2Nsb25lXyR4IGdpdHJlcG8tJHggaGdyZXBvMi0keCAmJgotCQloZ19sb2cgaGdyZXBvMi0keCA+IGhnLWxvZy0keCAmJgotCQlnaXRfbG9nIGdpdHJlcG8tJHggPiBnaXQtbG9nLSR4CisJCWhnX2xvZyBoZ3JlcG8yLSR4ID4iaGctbG9nLSR4IiAmJgorCQlnaXRfbG9nIGdpdHJlcG8tJHggPiJnaXQtbG9nLSR4IgogCWRvbmUgJiYKIAogCXRlc3RfY21wIGhnLWxvZy1oZyBoZy1sb2ctZ2l0ICYmCkBAIC0yMjAsMjggKzIyNiwyOSBAQAogCSgKIAloZyBpbml0IGhncmVwbzEgJiYKIAljZCBoZ3JlcG8xICYmCi0JZWNobyBBID4gYWZpbGUgJiYKKwllY2hvIEEgPmFmaWxlICYmCiAJaGcgYWRkIGFmaWxlICYmCiAJaGcgY2kgLW0gIm9yaWdpbiIgJiYKIAotCWVjaG8gQiA+IGFmaWxlICYmCisJZWNobyBCID5hZmlsZSAmJgogCWhnIGNpIC1tICJBLT5CIiAmJgogCiAJaGcgdXAgLXIwICYmCi0JZWNobyBDID4gYWZpbGUgJiYKKwllY2hvIEMgPmFmaWxlICYmCiAJaGcgY2kgLW0gIkEtPkMiICYmCiAKIAloZyBtZXJnZSAtcjEgfHwgdHJ1ZSAmJgotCWVjaG8gQiA+IGFmaWxlICYmCisJZWNobyBCID5hZmlsZSAmJgogCWhnIHJlc29sdmUgLW0gYWZpbGUgJiYKIAloZyBjaSAtbSAibWVyZ2UgdG8gQiIKIAkpICYmCiAKLQlmb3IgeCBpbiBoZyBnaXQ7IGRvCisJZm9yIHggaW4gaGcgZ2l0CisJZG8KIAkJZ2l0X2Nsb25lXyR4IGhncmVwbzEgZ2l0cmVwby0keCAmJgogCQloZ19jbG9uZV8keCBnaXRyZXBvLSR4IGhncmVwbzItJHggJiYKLQkJaGdfbG9nIGhncmVwbzItJHggPiBoZy1sb2ctJHggJiYKLQkJZ2l0X2xvZyBnaXRyZXBvLSR4ID4gZ2l0LWxvZy0keAorCQloZ19sb2cgaGdyZXBvMi0keCA+ImhnLWxvZy0keCIgJiYKKwkJZ2l0X2xvZyBnaXRyZXBvLSR4ID4iZ2l0LWxvZy0keCIKIAlkb25lICYmCiAKIAl0ZXN0X2NtcCBoZy1sb2ctaGcgaGctbG9nLWdpdCAmJgpAQCAtMjU0LDI5ICsyNjEsMzAgQEAKIAkoCiAJaGcgaW5pdCBoZ3JlcG8xICYmCiAJY2QgaGdyZXBvMSAmJgotCWVjaG8gQSA+IGFmaWxlICYmCisJZWNobyBBID5hZmlsZSAmJgogCWhnIGFkZCBhZmlsZSAmJgogCWhnIGNpIC1tICJvcmlnaW4iICYmCiAKLQllY2hvIEIgPiBhZmlsZSAmJgorCWVjaG8gQiA+YWZpbGUgJiYKIAloZyBjaSAtbSAiQS0+QiIgJiYKIAotCWVjaG8gQyA+IGFmaWxlICYmCisJZWNobyBDID5hZmlsZSAmJgogCWhnIGNpIC1tICJCLT5DIiAmJgogCiAJaGcgdXAgLXIwICYmCi0JZWNobyBDID4gYWZpbGUgJiYKKwllY2hvIEMgPmFmaWxlICYmCiAJaGcgY2kgLW0gIkEtPkMiICYmCiAKIAloZyBtZXJnZSAtcjIgfHwgdHJ1ZSAmJgogCWhnIGNpIC1tICJtZXJnZSIKIAkpICYmCiAKLQlmb3IgeCBpbiBoZyBnaXQ7IGRvCisJZm9yIHggaW4gaGcgZ2l0CisJZG8KIAkJZ2l0X2Nsb25lXyR4IGhncmVwbzEgZ2l0cmVwby0keCAmJgogCQloZ19jbG9uZV8keCBnaXRyZXBvLSR4IGhncmVwbzItJHggJiYKLQkJaGdfbG9nIGhncmVwbzItJHggPiBoZy1sb2ctJHggJiYKLQkJZ2l0X2xvZyBnaXRyZXBvLSR4ID4gZ2l0LWxvZy0keAorCQloZ19sb2cgaGdyZXBvMi0keCA+ImhnLWxvZy0keCIgJiYKKwkJZ2l0X2xvZyBnaXRyZXBvLSR4ID4iZ2l0LWxvZy0keCIKIAlkb25lICYmCiAKIAl0ZXN0X2NtcCBoZy1sb2ctaGcgaGctbG9nLWdpdCAmJgpAQCAtMjkwLDMyICsyOTgsMzMgQEAKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCiAJY2QgZ2l0cmVwbyAmJgogCi0JZWNobyBhbHBoYSA+IGFscGhhICYmCisJZWNobyBhbHBoYSA+YWxwaGEgJiYKIAlnaXQgYWRkIGFscGhhICYmCiAJZ2l0IGNvbW1pdCAtbSAiYWRkIMOkbHBow6AiICYmCiAKIAlHSVRfQVVUSE9SX05BTUU9InTDqXN0IMOobmPDtmTDrm5nIiAmJgogCWV4cG9ydCBHSVRfQVVUSE9SX05BTUUgJiYKLQllY2hvIGJldGEgPiBiZXRhICYmCisJZWNobyBiZXRhID5iZXRhICYmCiAJZ2l0IGFkZCBiZXRhICYmCiAJZ2l0IGNvbW1pdCAtbSAiYWRkIGJldGEiICYmCiAKLQllY2hvIGdhbW1hID4gZ2FtbWEgJiYKKwllY2hvIGdhbW1hID5nYW1tYSAmJgogCWdpdCBhZGQgZ2FtbWEgJiYKIAlnaXQgY29tbWl0IC1tICJhZGQgZ8OkbW3DoiIgJiYKIAogCTogVE9ETyBnaXQgY29uZmlnIGkxOG4uY29tbWl0ZW5jb2RpbmcgbGF0aW4tMSAmJgotCWVjaG8gZGVsdGEgPiBkZWx0YSAmJgorCWVjaG8gZGVsdGEgPmRlbHRhICYmCiAJZ2l0IGFkZCBkZWx0YSAmJgogCWdpdCBjb21taXQgLW0gImFkZCBkw6lsdMOgIgogCSkgJiYKIAotCWZvciB4IGluIGhnIGdpdDsgZG8KKwlmb3IgeCBpbiBoZyBnaXQKKwlkbwogCQloZ19jbG9uZV8keCBnaXRyZXBvIGhncmVwby0keCAmJgogCQlnaXRfY2xvbmVfJHggaGdyZXBvLSR4IGdpdHJlcG8yLSR4ICYmCiAKLQkJSEdFTkNPRElORz11dGYtOCBoZ19sb2cgaGdyZXBvLSR4ID4gaGctbG9nLSR4ICYmCi0JCWdpdF9sb2cgZ2l0cmVwbzItJHggPiBnaXQtbG9nLSR4CisJCUhHRU5DT0RJTkc9dXRmLTggaGdfbG9nIGhncmVwby0keCA+ImhnLWxvZy0keCIgJiYKKwkJZ2l0X2xvZyBnaXRyZXBvMi0keCA+ImdpdC1sb2ctJHgiCiAJZG9uZSAmJgogCiAJdGVzdF9jbXAgaGctbG9nLWhnIGhnLWxvZy1naXQgJiYKQEAgLTMyOCwxNCArMzM3LDE0IEBACiAJKAogCWdpdCBpbml0IC1xIGdpdHJlcG8gJiYKIAljZCBnaXRyZXBvICYmCi0JZWNobyBhbHBoYSA+IGFscGhhICYmCisJZWNobyBhbHBoYSA+YWxwaGEgJiYKIAlnaXQgYWRkIGFscGhhICYmCiAJZ2l0IGNvbW1pdCAtbSAiYWRkIGFscGhhIiAmJgotCWVjaG8gYmV0YSA+IGJldGEgJiYKKwllY2hvIGJldGEgPmJldGEgJiYKIAlnaXQgYWRkIGJldGEgJiYKIAlnaXQgY29tbWl0IC1tICJhZGQgYmV0YSIKIAlta2RpciBmb28gJiYKLQllY2hvIGJsYWggPiBmb28vYmFyICYmCisJZWNobyBibGFoID5mb28vYmFyICYmCiAJZ2l0IGFkZCBmb28gJiYKIAlnaXQgY29tbWl0IC1tICJhZGQgZm9vIiAmJgogCWdpdCBybSBhbHBoYSAmJgpAQCAtMzQ0LDE3ICszNTMsMTggQEAKIAlnaXQgY29tbWl0IC1tICJyZW1vdmUgZm9vL2JhciIKIAkpICYmCiAKLQlmb3IgeCBpbiBoZyBnaXQ7IGRvCisJZm9yIHggaW4gaGcgZ2l0CisJZG8KIAkJKAogCQloZ19jbG9uZV8keCBnaXRyZXBvIGhncmVwby0keCAmJgogCQljZCBoZ3JlcG8tJHggJiYKIAkJaGdfbG9nIC4gJiYKIAkJaGcgbWFuaWZlc3QgLXIgMyAmJgogCQloZyBtYW5pZmVzdAotCQkpID4gb3V0cHV0LSR4ICYmCisJCSkgPiJvdXRwdXQtJHgiICYmCiAKIAkJZ2l0X2Nsb25lXyR4IGhncmVwby0keCBnaXRyZXBvMi0keCAmJgotCQlnaXRfbG9nIGdpdHJlcG8yLSR4ID4gbG9nLSR4CisJCWdpdF9sb2cgZ2l0cmVwbzItJHggPiJsb2ctJHgiCiAJZG9uZSAmJgogCiAJdGVzdF9jbXAgb3V0cHV0LWhnIG91dHB1dC1naXQgJiYKQEAgLTM2OCwyMCArMzc4LDIxIEBACiAJZ2l0IGluaXQgLXEgZ2l0cmVwbyAmJgogCWNkIGdpdHJlcG8gJiYKIAlnaXQgY29uZmlnIHJlY2VpdmUuZGVueUN1cnJlbnRCcmFuY2ggaWdub3JlICYmCi0JZWNobyBhbHBoYSA+IGFscGhhICYmCisJZWNobyBhbHBoYSA+YWxwaGEgJiYKIAlnaXQgYWRkIGFscGhhICYmCiAJZ2l0IGNvbW1pdCAtbSAiYWRkIGFscGhhIiAmJgogCWdpdCB0YWcgYWxwaGEgJiYKIAotCWVjaG8gYmV0YSA+IGJldGEgJiYKKwllY2hvIGJldGEgPmJldGEgJiYKIAlnaXQgYWRkIGJldGEgJiYKIAlnaXQgY29tbWl0IC1tICJhZGQgYmV0YSIgJiYKIAlnaXQgdGFnIC1hIC1tICJhZGRlZCB0YWcgYmV0YSIgYmV0YQogCSkgJiYKIAotCWZvciB4IGluIGhnIGdpdDsgZG8KKwlmb3IgeCBpbiBoZyBnaXQKKwlkbwogCQloZ19jbG9uZV8keCBnaXRyZXBvIGhncmVwby0keCAmJgotCQloZ19sb2cgaGdyZXBvLSR4ID4gbG9nLSR4CisJCWhnX2xvZyBoZ3JlcG8tJHggPiJsb2ctJHgiCiAJZG9uZSAmJgogCiAJdGVzdF9jbXAgbG9nLWhnIGxvZy1naXQKQEAgLTM5MCwxMiArNDAxLDEzIEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdoZyBhdXRob3InICcKIAl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCi0JZm9yIHggaW4gaGcgZ2l0OyBkbworCWZvciB4IGluIGhnIGdpdAorCWRvCiAJCSgKIAkJZ2l0IGluaXQgLXEgZ2l0cmVwby0keCAmJgogCQljZCBnaXRyZXBvLSR4ICYmCiAKLQkJZWNobyBhbHBoYSA+IGFscGhhICYmCisJCWVjaG8gYWxwaGEgPmFscGhhICYmCiAJCWdpdCBhZGQgYWxwaGEgJiYKIAkJZ2l0IGNvbW1pdCAtbSAiYWRkIGFscGhhIiAmJgogCQlnaXQgY2hlY2tvdXQgLXEgLWIgbm90LW1hc3RlcgpAQCAtNDA2LDM4ICs0MTgsMzggQEAKIAkJY2QgaGdyZXBvLSR4ICYmCiAKIAkJaGcgY28gbWFzdGVyICYmCi0JCWVjaG8gYmV0YSA+IGJldGEgJiYKKwkJZWNobyBiZXRhID5iZXRhICYmCiAJCWhnIGFkZCBiZXRhICYmCiAJCWhnIGNvbW1pdCAtdSAidGVzdCIgLW0gImFkZCBiZXRhIiAmJgogCi0JCWVjaG8gZ2FtbWEgPj4gYmV0YSAmJgorCQllY2hvIGdhbW1hID4+YmV0YSAmJgogCQloZyBjb21taXQgLXUgInRlc3QgPHRlc3RAZXhhbXBsZS5jb20+IChjb21tZW50KSIgLW0gIm1vZGlmeSBiZXRhIiAmJgogCi0JCWVjaG8gZ2FtbWEgPiBnYW1tYSAmJgorCQllY2hvIGdhbW1hID5nYW1tYSAmJgogCQloZyBhZGQgZ2FtbWEgJiYKIAkJaGcgY29tbWl0IC11ICI8dGVzdEBleGFtcGxlLmNvbT4iIC1tICJhZGQgZ2FtbWEiICYmCiAKLQkJZWNobyBkZWx0YSA+IGRlbHRhICYmCisJCWVjaG8gZGVsdGEgPmRlbHRhICYmCiAJCWhnIGFkZCBkZWx0YSAmJgogCQloZyBjb21taXQgLXUgIm5hbWU8dGVzdEBleGFtcGxlLmNvbT4iIC1tICJhZGQgZGVsdGEiICYmCiAKLQkJZWNobyBlcHNpbG9uID4gZXBzaWxvbiAmJgorCQllY2hvIGVwc2lsb24gPmVwc2lsb24gJiYKIAkJaGcgYWRkIGVwc2lsb24gJiYKIAkJaGcgY29tbWl0IC11ICJuYW1lIDx0ZXN0QGV4YW1wbGUuY29tIiAtbSAiYWRkIGVwc2lsb24iICYmCiAKLQkJZWNobyB6ZXRhID4gemV0YSAmJgorCQllY2hvIHpldGEgPnpldGEgJiYKIAkJaGcgYWRkIHpldGEgJiYKIAkJaGcgY29tbWl0IC11ICIgdGVzdCAiIC1tICJhZGQgemV0YSIgJiYKIAotCQllY2hvIGV0YSA+IGV0YSAmJgorCQllY2hvIGV0YSA+ZXRhICYmCiAJCWhnIGFkZCBldGEgJiYKIAkJaGcgY29tbWl0IC11ICJ0ZXN0IDwgdGVzdEBleGFtcGxlLmNvbSA+IiAtbSAiYWRkIGV0YSIgJiYKIAotCQllY2hvIHRoZXRhID4gdGhldGEgJiYKKwkJZWNobyB0aGV0YSA+dGhldGEgJiYKIAkJaGcgYWRkIHRoZXRhICYmCiAJCWhnIGNvbW1pdCAtdSAidGVzdCA+dGVzdEBleGFtcGxlLmNvbT4iIC1tICJhZGQgdGhldGEiICYmCiAKLQkJZWNobyBpb3RhID4gaW90YSAmJgorCQllY2hvIGlvdGEgPmlvdGEgJiYKIAkJaGcgYWRkIGlvdGEgJiYKIAkJaGcgY29tbWl0IC11ICJ0ZXN0IDx0ZXN0IDxhdD4gZXhhbXBsZSA8ZG90PiBjb20+IiAtbSAiYWRkIGlvdGEiCiAJCSkgJiYKQEAgLTQ0NSw4ICs0NTcsOCBAQAogCQloZ19wdXNoXyR4IGhncmVwby0keCBnaXRyZXBvLSR4ICYmCiAJCWhnX2Nsb25lXyR4IGdpdHJlcG8tJHggaGdyZXBvMi0keCAmJgogCi0JCWhnX2xvZyBoZ3JlcG8yLSR4ID4gaGctbG9nLSR4ICYmCi0JCWdpdF9sb2cgZ2l0cmVwby0keCA+IGdpdC1sb2ctJHgKKwkJaGdfbG9nIGhncmVwbzItJHggPiJoZy1sb2ctJHgiICYmCisJCWdpdF9sb2cgZ2l0cmVwby0keCA+ImdpdC1sb2ctJHgiCiAJZG9uZSAmJgogCiAJdGVzdF9jbXAgaGctbG9nLWhnIGhnLWxvZy1naXQgJiYKQEAgLTQ1NiwxMiArNDY4LDEzIEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdoZyBicmFuY2gnICcKIAl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCi0JZm9yIHggaW4gaGcgZ2l0OyBkbworCWZvciB4IGluIGhnIGdpdAorCWRvCiAJCSgKIAkJZ2l0IGluaXQgLXEgZ2l0cmVwby0keCAmJgogCQljZCBnaXRyZXBvLSR4ICYmCiAKLQkJZWNobyBhbHBoYSA+IGFscGhhICYmCisJCWVjaG8gYWxwaGEgPmFscGhhICYmCiAJCWdpdCBhZGQgYWxwaGEgJiYKIAkJZ2l0IGNvbW1pdCAtcSAtbSAiYWRkIGFscGhhIiAmJgogCQlnaXQgY2hlY2tvdXQgLXEgLWIgbm90LW1hc3RlcgpAQCAtNDgxLDggKzQ5NCw4IEBACiAJCWhnX3B1c2hfJHggaGdyZXBvLSR4IGdpdHJlcG8tJHggJiYKIAkJaGdfY2xvbmVfJHggZ2l0cmVwby0keCBoZ3JlcG8yLSR4ICYmCiAKLQkJaGdfbG9nIGhncmVwbzItJHggPiBoZy1sb2ctJHggJiYKLQkJZ2l0X2xvZyBnaXRyZXBvLSR4ID4gZ2l0LWxvZy0keAorCQloZ19sb2cgaGdyZXBvMi0keCA+ImhnLWxvZy0keCIgJiYKKwkJZ2l0X2xvZyBnaXRyZXBvLSR4ID4iZ2l0LWxvZy0keCIKIAlkb25lICYmCiAKIAl0ZXN0X2NtcCBoZy1sb2ctaGcgaGctbG9nLWdpdCAmJgpAQCAtNDkyLDEyICs1MDUsMTMgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2hnIHRhZ3MnICcKIAl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCi0JZm9yIHggaW4gaGcgZ2l0OyBkbworCWZvciB4IGluIGhnIGdpdAorCWRvCiAJCSgKIAkJZ2l0IGluaXQgLXEgZ2l0cmVwby0keCAmJgogCQljZCBnaXRyZXBvLSR4ICYmCiAKLQkJZWNobyBhbHBoYSA+IGFscGhhICYmCisJCWVjaG8gYWxwaGEgPmFscGhhICYmCiAJCWdpdCBhZGQgYWxwaGEgJiYKIAkJZ2l0IGNvbW1pdCAtbSAiYWRkIGFscGhhIiAmJgogCQlnaXQgY2hlY2tvdXQgLXEgLWIgbm90LW1hc3RlcgpAQCAtNTE4LDcgKzUzMiw3IEBACiAJCWdpdCAtLWdpdC1kaXI9Z2l0cmVwby0keC8uZ2l0IHRhZyAtbCAmJgogCQloZ19sb2cgaGdyZXBvMi0keCAmJgogCQljYXQgaGdyZXBvMi0keC8uaGd0YWdzCi0JCSkgPiBvdXRwdXQtJHgKKwkJKSA+Im91dHB1dC0keCIKIAlkb25lICYmCiAKIAl0ZXN0X2NtcCBvdXRwdXQtaGcgb3V0cHV0LWdpdApkaWZmIC0tZ2l0IGEvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLnNoIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLnNoCmluZGV4IGY3Y2U4YWEuLjVkMTI4YTUgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1oZy5zaAorKysgYi9jb250cmliL3JlbW90ZS1oZWxwZXJzL3Rlc3QtaGcuc2gKQEAgLTgsNTUgKzgsNjAgQEAKIAogdGVzdF9kZXNjcmlwdGlvbj0nVGVzdCByZW1vdGUtaGcnCiAKLS4gLi90ZXN0LWxpYi5zaAordGVzdCAtbiAiJFRFU1RfRElSRUNUT1JZIiB8fCBURVNUX0RJUkVDVE9SWT0kezAlLyp9Ly4uLy4uL3QKKy4gIiRURVNUX0RJUkVDVE9SWSIvdGVzdC1saWIuc2gKIAotaWYgISB0ZXN0X2hhdmVfcHJlcmVxIFBZVEhPTjsgdGhlbgoraWYgISB0ZXN0X2hhdmVfcHJlcmVxIFBZVEhPTgordGhlbgogCXNraXBfYWxsPSdza2lwcGluZyByZW1vdGUtaGcgdGVzdHM7IHB5dGhvbiBub3QgYXZhaWxhYmxlJwogCXRlc3RfZG9uZQogZmkKIAotaWYgISBweXRob24gLWMgJ2ltcG9ydCBtZXJjdXJpYWwnOyB0aGVuCitpZiAhIHB5dGhvbiAtYyAnaW1wb3J0IG1lcmN1cmlhbCcKK3RoZW4KIAlza2lwX2FsbD0nc2tpcHBpbmcgcmVtb3RlLWhnIHRlc3RzOyBtZXJjdXJpYWwgbm90IGF2YWlsYWJsZScKIAl0ZXN0X2RvbmUKIGZpCiAKIGNoZWNrICgpIHsKLQllY2hvICQzID4gZXhwZWN0ZWQgJiYKLQlnaXQgLS1naXQtZGlyPSQxLy5naXQgbG9nIC0tZm9ybWF0PSclcycgLTEgJDIgPiBhY3R1YWwKKwllY2hvICQzID5leHBlY3RlZCAmJgorCWdpdCAtLWdpdC1kaXI9JDEvLmdpdCBsb2cgLS1mb3JtYXQ9JyVzJyAtMSAkMiA+YWN0dWFsCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiB9CiAKIGNoZWNrX2JyYW5jaCAoKSB7Ci0JaWYgWyAtbiAiJDMiIF07IHRoZW4KLQkJZWNobyAkMyA+IGV4cGVjdGVkICYmCi0JCWhnIC1SICQxIGxvZyAtciAkMiAtLXRlbXBsYXRlICd7ZGVzY31cbicgPiBhY3R1YWwgJiYKKwlpZiB0ZXN0IC1uICIkMyIKKwl0aGVuCisJCWVjaG8gJDMgPmV4cGVjdGVkICYmCisJCWhnIC1SICQxIGxvZyAtciAkMiAtLXRlbXBsYXRlICd7ZGVzY31cbicgPmFjdHVhbCAmJgogCQl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKIAllbHNlCi0JCWhnIC1SICQxIGJyYW5jaGVzID4gb3V0ICYmCisJCWhnIC1SICQxIGJyYW5jaGVzID5vdXQgJiYKIAkJISBncmVwICQyIG91dAogCWZpCiB9CiAKIGNoZWNrX2Jvb2ttYXJrICgpIHsKLQlpZiBbIC1uICIkMyIgXTsgdGhlbgotCQllY2hvICQzID4gZXhwZWN0ZWQgJiYKLQkJaGcgLVIgJDEgbG9nIC1yICJib29rbWFyaygnJDInKSIgLS10ZW1wbGF0ZSAne2Rlc2N9XG4nID4gYWN0dWFsICYmCisJaWYgdGVzdCAtbiAiJDMiCisJdGhlbgorCQllY2hvICQzID5leHBlY3RlZCAmJgorCQloZyAtUiAkMSBsb2cgLXIgImJvb2ttYXJrKCckMicpIiAtLXRlbXBsYXRlICd7ZGVzY31cbicgPmFjdHVhbCAmJgogCQl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKIAllbHNlCi0JCWhnIC1SICQxIGJvb2ttYXJrcyA+IG91dCAmJgorCQloZyAtUiAkMSBib29rbWFya3MgPm91dCAmJgogCQkhIGdyZXAgJDIgb3V0CiAJZmkKIH0KIAogY2hlY2tfcHVzaCAoKSB7Ci0JbG9jYWwgZXhwZWN0ZWRfcmV0PSQxIHJldD0wIHJlZl9yZXQ9MCBJRlM9JzonCisJZXhwZWN0ZWRfcmV0PSQxIHJldD0wIHJlZl9yZXQ9MAogCiAJc2hpZnQKLQlnaXQgcHVzaCBvcmlnaW4gIiRAIiAyPiBlcnJvcgorCWdpdCBwdXNoIG9yaWdpbiAiJEAiIDI+ZXJyb3IKIAlyZXQ9JD8KIAljYXQgZXJyb3IKIAotCXdoaWxlIHJlYWQgYnJhbmNoIGtpbmQKKwl3aGlsZSBJRlM9JzonIHJlYWQgYnJhbmNoIGtpbmQKIAlkbwogCQljYXNlICIka2luZCIgaW4KIAkJJ25ldycpCkBAIC03NSwxMCArODAsMTAgQEAKIAkJCWdyZXAgIl4gICBbYS1mMC05XSpcLlwuW2EtZjAtOV0qICoke2JyYW5jaH0gLT4gJHticmFuY2h9JCIgZXJyb3IgfHwgcmVmX3JldD0xCiAJCQk7OwogCQllc2FjCi0JCWxldCAncmVmX3JldCcgJiYgZWNobyAibWF0Y2ggZm9yICckYnJhbmNoJyBmYWlsZWQiICYmIGJyZWFrCisJCXRlc3QgJHJlZl9yZXQgLW5lIDAgJiYgZWNobyAibWF0Y2ggZm9yICckYnJhbmNoJyBmYWlsZWQiICYmIGJyZWFrCiAJZG9uZQogCi0JaWYgbGV0ICdleHBlY3RlZF9yZXQgIT0gcmV0IHx8IHJlZl9yZXQnCisJaWYgdGVzdCAkZXhwZWN0ZWRfcmV0IC1uZSAkcmV0IHx8IHRlc3QgJHJlZl9yZXQgLW5lIDAKIAl0aGVuCiAJCXJldHVybiAxCiAJZmkKQEAgLTkyLDcgKzk3LDcgQEAKIAllY2hvICJ1c2VybmFtZSA9IEggRyBXZWxscyA8d2VsbHNAZXhhbXBsZS5jb20+IgogCWVjaG8gIltleHRlbnNpb25zXSIKIAllY2hvICJtcSA9IgotCSkgPj4gIiRIT01FIi8uaGdyYyAmJgorCSkgPj4iJEhPTUUiLy5oZ3JjICYmCiAKIAlHSVRfQVVUSE9SX0RBVEU9IjIwMDctMDEtMDEgMDA6MDA6MDAgKzAyMzAiICYmCiAJR0lUX0NPTU1JVFRFUl9EQVRFPSIkR0lUX0FVVEhPUl9EQVRFIiAmJgpAQCAtMTA3LDcgKzExMiw3IEBACiAJKAogCWhnIGluaXQgaGdyZXBvICYmCiAJY2QgaGdyZXBvICYmCi0JZWNobyB6ZXJvID4gY29udGVudCAmJgorCWVjaG8gemVybyA+Y29udGVudCAmJgogCWhnIGFkZCBjb250ZW50ICYmCiAJaGcgY29tbWl0IC1tIHplcm8KIAkpICYmCkBAIC0xMjIsNyArMTI3LDcgQEAKIAkoCiAJY2QgaGdyZXBvICYmCiAJaGcgYnJhbmNoIG5leHQgJiYKLQllY2hvIG5leHQgPiBjb250ZW50ICYmCisJZWNobyBuZXh0ID5jb250ZW50ICYmCiAJaGcgY29tbWl0IC1tIG5leHQKIAkpICYmCiAKQEAgLTEzNyw3ICsxNDIsNyBAQAogCWNkIGhncmVwbyAmJgogCWhnIGNoZWNrb3V0IGRlZmF1bHQgJiYKIAloZyBib29rbWFyayBmZWF0dXJlLWEgJiYKLQllY2hvIGZlYXR1cmUtYSA+IGNvbnRlbnQgJiYKKwllY2hvIGZlYXR1cmUtYSA+Y29udGVudCAmJgogCWhnIGNvbW1pdCAtbSBmZWF0dXJlLWEKIAkpICYmCiAKQEAgLTE1Nyw3ICsxNjIsNyBAQAogCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgogCWNkIGdpdHJlcG8gJiYKIAlnaXQgY2hlY2tvdXQgLS1xdWlldCBkZXZlbCAmJgotCWVjaG8gZGV2ZWwgPiBjb250ZW50ICYmCisJZWNobyBkZXZlbCA+Y29udGVudCAmJgogCWdpdCBjb21taXQgLWEgLW0gZGV2ZWwgJiYKIAlnaXQgcHVzaCAtLXF1aWV0CiAJKSAmJgpAQCAtMTcyLDcgKzE3Nyw3IEBACiAJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCiAJY2QgZ2l0cmVwbyAmJgogCWdpdCBjaGVja291dCAtLXF1aWV0IC1iIGZlYXR1cmUtYiAmJgotCWVjaG8gZmVhdHVyZS1iID4gY29udGVudCAmJgorCWVjaG8gZmVhdHVyZS1iID5jb250ZW50ICYmCiAJZ2l0IGNvbW1pdCAtYSAtbSBmZWF0dXJlLWIgJiYKIAlnaXQgcHVzaCAtLXF1aWV0IG9yaWdpbiBmZWF0dXJlLWIKIAkpICYmCkBAIC0xODQsOSArMTg5LDkgQEAKIHJtIC1yZiBoZ3JlcG8KIAogYXV0aG9yX3Rlc3QgKCkgewotCWVjaG8gJDEgPj4gY29udGVudCAmJgorCWVjaG8gJDEgPj5jb250ZW50ICYmCiAJaGcgY29tbWl0IC11ICIkMiIgLW0gImFkZCAkMSIgJiYKLQllY2hvICIkMyIgPj4gLi4vZXhwZWN0ZWQKKwllY2hvICIkMyIgPj4uLi9leHBlY3RlZAogfQogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhdXRob3JzJyAnCkBAIC0xOTksMjIgKzIwNCwyMyBAQAogCXRvdWNoIGNvbnRlbnQgJiYKIAloZyBhZGQgY29udGVudCAmJgogCi0JPiAuLi9leHBlY3RlZCAmJgorCT4uLi9leHBlY3RlZCAmJgogCWF1dGhvcl90ZXN0IGFscGhhICIiICJIIEcgV2VsbHMgPHdlbGxzQGV4YW1wbGUuY29tPiIgJiYKLQlhdXRob3JfdGVzdCBiZXRhICJ0ZXN0IiAidGVzdCA8dW5rbm93bj4iICYmCi0JYXV0aG9yX3Rlc3QgYmV0YSAidGVzdCA8dGVzdEBleGFtcGxlLmNvbT4gKGNvbW1lbnQpIiAidGVzdCA8dGVzdEBleGFtcGxlLmNvbT4iICYmCi0JYXV0aG9yX3Rlc3QgZ2FtbWEgIjx0ZXN0QGV4YW1wbGUuY29tPiIgIlVua25vd24gPHRlc3RAZXhhbXBsZS5jb20+IiAmJgotCWF1dGhvcl90ZXN0IGRlbHRhICJuYW1lPHRlc3RAZXhhbXBsZS5jb20+IiAibmFtZSA8dGVzdEBleGFtcGxlLmNvbT4iICYmCi0JYXV0aG9yX3Rlc3QgZXBzaWxvbiAibmFtZSA8dGVzdEBleGFtcGxlLmNvbSIgIm5hbWUgPHRlc3RAZXhhbXBsZS5jb20+IiAmJgotCWF1dGhvcl90ZXN0IHpldGEgIiB0ZXN0ICIgInRlc3QgPHVua25vd24+IiAmJgotCWF1dGhvcl90ZXN0IGV0YSAidGVzdCA8IHRlc3RAZXhhbXBsZS5jb20gPiIgInRlc3QgPHRlc3RAZXhhbXBsZS5jb20+IiAmJgotCWF1dGhvcl90ZXN0IHRoZXRhICJ0ZXN0ID50ZXN0QGV4YW1wbGUuY29tPiIgInRlc3QgPHRlc3RAZXhhbXBsZS5jb20+IiAmJgotCWF1dGhvcl90ZXN0IGlvdGEgInRlc3QgPCB0ZXN0IDxhdD4gZXhhbXBsZSA8ZG90PiBjb20+IiAidGVzdCA8dW5rbm93bj4iICYmCi0JYXV0aG9yX3Rlc3Qga2FwcGEgInRlc3RAZXhhbXBsZS5jb20iICJVbmtub3duIDx0ZXN0QGV4YW1wbGUuY29tPiIKKwlhdXRob3JfdGVzdCBiZXRhICJiZXRhIiAiYmV0YSA8dW5rbm93bj4iICYmCisJYXV0aG9yX3Rlc3QgZ2FtbWEgImdhbW1hIDx0ZXN0QGV4YW1wbGUuY29tPiAoY29tbWVudCkiICJnYW1tYSA8dGVzdEBleGFtcGxlLmNvbT4iICYmCisJYXV0aG9yX3Rlc3QgZGVsdGEgIjxkZWx0YUBleGFtcGxlLmNvbT4iICJVbmtub3duIDxkZWx0YUBleGFtcGxlLmNvbT4iICYmCisJYXV0aG9yX3Rlc3QgZXBzaWxvbiAiZXBzaWxvbjx0ZXN0QGV4YW1wbGUuY29tPiIgImVwc2lsb24gPHRlc3RAZXhhbXBsZS5jb20+IiAmJgorCWF1dGhvcl90ZXN0IHpldGEgInpldGEgPHRlc3RAZXhhbXBsZS5jb20iICJ6ZXRhIDx0ZXN0QGV4YW1wbGUuY29tPiIgJiYKKwlhdXRob3JfdGVzdCBldGEgIiBldGEgIiAiZXRhIDx1bmtub3duPiIgJiYKKwlhdXRob3JfdGVzdCB0aGV0YSAidGhldGEgPCB0ZXN0QGV4YW1wbGUuY29tID4iICJ0aGV0YSA8dGVzdEBleGFtcGxlLmNvbT4iICYmCisJYXV0aG9yX3Rlc3QgaW90YSAiaW90YSA+dGVzdEBleGFtcGxlLmNvbT4iICJpb3RhIDx0ZXN0QGV4YW1wbGUuY29tPiIgJiYKKwlhdXRob3JfdGVzdCBrYXBwYSAia2FwcGEgPCB0ZXN0IDxhdD4gZXhhbXBsZSA8ZG90PiBjb20+IiAia2FwcGEgPHVua25vd24+IiAmJgorCWF1dGhvcl90ZXN0IGxhbWJkYSAibGFtYmRhQGV4YW1wbGUuY29tIiAiVW5rbm93biA8bGFtYmRhQGV4YW1wbGUuY29tPiIgJiYKKwlhdXRob3JfdGVzdCBtdSAibXUubXVAZXhhbXBsZS5jb20iICJVbmtub3duIDxtdS5tdUBleGFtcGxlLmNvbT4iCiAJKSAmJgogCiAJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCi0JZ2l0IC0tZ2l0LWRpcj1naXRyZXBvLy5naXQgbG9nIC0tcmV2ZXJzZSAtLWZvcm1hdD0iJWFuIDwlYWU+IiA+IGFjdHVhbCAmJgorCWdpdCAtLWdpdC1kaXI9Z2l0cmVwby8uZ2l0IGxvZyAtLXJldmVyc2UgLS1mb3JtYXQ9IiVhbiA8JWFlPiIgPmFjdHVhbCAmJgogCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0yMjYsMTEgKzIzMiwxMSBAQAogCWhnIGluaXQgaGdyZXBvICYmCiAJY2QgaGdyZXBvICYmCiAKLQllY2hvIG9uZSA+PiBjb250ZW50ICYmCisJZWNobyBvbmUgPj5jb250ZW50ICYmCiAJaGcgYWRkIGNvbnRlbnQgJiYKIAloZyBjb21taXQgLW0gb25lICYmCiAKLQllY2hvIHR3byA+PiBjb250ZW50ICYmCisJZWNobyB0d28gPj5jb250ZW50ICYmCiAJaGcgY29tbWl0IC1tIHR3bwogCSkgJiYKIApAQCAtMjQwLDIwICsyNDYsMjAgQEAKIAljZCBoZ3JlcG8gJiYKIAloZyBzdHJpcCAxICYmCiAKLQllY2hvIHRocmVlID4+IGNvbnRlbnQgJiYKKwllY2hvIHRocmVlID4+Y29udGVudCAmJgogCWhnIGNvbW1pdCAtbSB0aHJlZSAmJgogCi0JZWNobyBmb3VyID4+IGNvbnRlbnQgJiYKKwllY2hvIGZvdXIgPj5jb250ZW50ICYmCiAJaGcgY29tbWl0IC1tIGZvdXIKIAkpICYmCiAKIAkoCiAJY2QgZ2l0cmVwbyAmJgogCWdpdCBmZXRjaCAmJgotCWdpdCBsb2cgLS1mb3JtYXQ9IiVzIiBvcmlnaW4vbWFzdGVyID4gLi4vYWN0dWFsCisJZ2l0IGxvZyAtLWZvcm1hdD0iJXMiIG9yaWdpbi9tYXN0ZXIgPi4uL2FjdHVhbAogCSkgJiYKIAotCWhnIC1SIGhncmVwbyBsb2cgLS10ZW1wbGF0ZSAie2Rlc2N9XG4iID4gZXhwZWN0ZWQgJiYKKwloZyAtUiBoZ3JlcG8gbG9nIC0tdGVtcGxhdGUgIntkZXNjfVxuIiA+ZXhwZWN0ZWQgJiYKIAl0ZXN0X2NtcCBhY3R1YWwgZXhwZWN0ZWQKICcKIApAQCAtMjYzLDE4ICsyNjksMTggQEAKIAkoCiAJaGcgaW5pdCBoZ3JlcG8gJiYKIAljZCBoZ3JlcG8gJiYKLQllY2hvIHplcm8gPiBjb250ZW50ICYmCisJZWNobyB6ZXJvID5jb250ZW50ICYmCiAJaGcgYWRkIGNvbnRlbnQgJiYKIAloZyBjb21taXQgLW0gemVybyAmJgogCWhnIGJvb2ttYXJrIG1hc3RlciAmJgotCWVjaG8gb25lID4gY29udGVudCAmJgorCWVjaG8gb25lID5jb250ZW50ICYmCiAJaGcgY29tbWl0IC1tIG9uZQogCSkgJiYKIAogCSgKIAlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKIAljZCBnaXRyZXBvICYmCi0JZWNobyB0d28gPiBjb250ZW50ICYmCisJZWNobyB0d28gPmNvbnRlbnQgJiYKIAlnaXQgY29tbWl0IC1hIC1tIHR3byAmJgogCWdpdCBwdXNoCiAJKSAmJgpAQCAtMjgyLDcgKzI4OCw3IEBACiAJY2hlY2tfYnJhbmNoIGhncmVwbyBkZWZhdWx0IHR3bwogJwogCi1jYXQgPiBleHBlY3RlZCA8PEVPRgorY2F0ID5leHBlY3RlZCA8PFxFT0YKIGNoYW5nZXNldDogICAwOjZlMjEyNjQ4OWQzZAogdGFnOiAgICAgICAgIHRpcAogdXNlcjogICAgICAgIEEgVSBUaG9yIDxhdXRob3JAZXhhbXBsZS5jb20+CkBAIC0zMDAsMTMgKzMwNiwxMyBAQAogCWdpdCBpbml0IGdpdHJlcG8gJiYKIAljZCBnaXRyZXBvICYmCiAJZ2l0IHJlbW90ZSBhZGQgb3JpZ2luICJoZzo6Li4vaGdyZXBvIiAmJgotCWVjaG8gb25lID4gY29udGVudCAmJgorCWVjaG8gb25lID5jb250ZW50ICYmCiAJZ2l0IGFkZCBjb250ZW50ICYmCiAJZ2l0IGNvbW1pdCAtYSAtbSBvbmUgJiYKIAlnaXQgcHVzaCBvcmlnaW4gbWFzdGVyCiAJKSAmJgogCi0JaGcgLVIgaGdyZXBvIGxvZyA+IGFjdHVhbCAmJgorCWhnIC1SIGhncmVwbyBsb2cgPmFjdHVhbCAmJgogCWNhdCBhY3R1YWwgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwgJiYKIApAQCAtMzIyLDcgKzMyOCw3IEBACiAJKAogCWhnIGluaXQgaGdyZXBvICYmCiAJY2QgaGdyZXBvICYmCi0JZWNobyB6ZXJvID4gY29udGVudCAmJgorCWVjaG8gemVybyA+Y29udGVudCAmJgogCWhnIGFkZCBjb250ZW50ICYmCiAJaGcgY29tbWl0IC1tIHplcm8KIAkpICYmCkBAIC0zMzEsNiArMzM3LDE3IEBACiAJY2hlY2sgZ2l0cmVwbyBIRUFEIHplcm8KICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnbW92aW5nIHJlbW90ZSBjbG9uZScgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgorCisJKAorCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCW12IGdpdHJlcG8gZ2l0cmVwbzIgJiYKKwljZCBnaXRyZXBvMiAmJgorCWdpdCBmZXRjaAorCSkKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVtb3RlIHVwZGF0ZSBib29rbWFyaycgJwogCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgogCkBAIC0zNDMsNyArMzYwLDcgQEAKIAlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKIAljZCBnaXRyZXBvICYmCiAJZ2l0IGNoZWNrb3V0IC0tcXVpZXQgZGV2ZWwgJiYKLQllY2hvIGRldmVsID4gY29udGVudCAmJgorCWVjaG8gZGV2ZWwgPmNvbnRlbnQgJiYKIAlnaXQgY29tbWl0IC1hIC1tIGRldmVsICYmCiAJZ2l0IHB1c2ggLS1xdWlldAogCSkgJiYKQEAgLTM1OCw3ICszNzUsNyBAQAogCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgogCWNkIGdpdHJlcG8gJiYKIAlnaXQgY2hlY2tvdXQgLS1xdWlldCAtYiBmZWF0dXJlLWIgJiYKLQllY2hvIGZlYXR1cmUtYiA+IGNvbnRlbnQgJiYKKwllY2hvIGZlYXR1cmUtYiA+Y29udGVudCAmJgogCWdpdCBjb21taXQgLWEgLW0gZmVhdHVyZS1iICYmCiAJZ2l0IHB1c2ggLS1xdWlldCBvcmlnaW4gZmVhdHVyZS1iCiAJKSAmJgpAQCAtMzc0LDE1ICszOTEsMTUgQEAKIAkoCiAJY2QgaGdyZXBvICYmCiAJaGcgY2hlY2tvdXQgZGVmYXVsdCAmJgotCWVjaG8gYnVtcCA+IGNvbnRlbnQgJiYKKwllY2hvIGJ1bXAgPmNvbnRlbnQgJiYKIAloZyBjb21taXQgLW0gYnVtcAogCSkgJiYKIAogCSgKIAljZCBnaXRyZXBvICYmCi0JZWNobyBkaXZlcmdlID4gY29udGVudCAmJgorCWVjaG8gZGl2ZXJnZSA+Y29udGVudCAmJgogCWdpdCBjb21taXQgLWEgLW0gZGl2ZXJnZWQgJiYKLQljaGVja19wdXNoIDEgPDwtRU9GCisJY2hlY2tfcHVzaCAxIDw8LVxFT0YKIAltYXN0ZXI6bm9uLWZhc3QtZm9yd2FyZAogCUVPRgogCSkgJiYKQEAgLTQwMywxNiArNDIwLDE2IEBACiAKIAkoCiAJY2QgaGdyZXBvICYmCi0JZWNobyAiYnVtcCBib29rbWFyayIgPiBjb250ZW50ICYmCisJZWNobyAiYnVtcCBib29rbWFyayIgPmNvbnRlbnQgJiYKIAloZyBjb21taXQgLW0gImJ1bXAgYm9va21hcmsiCiAJKSAmJgogCiAJKAogCWNkIGdpdHJlcG8gJiYKIAlnaXQgY2hlY2tvdXQgLS1xdWlldCBkaXZlcmdlICYmCi0JZWNobyBkaXZlcmdlID4gY29udGVudCAmJgorCWVjaG8gZGl2ZXJnZSA+Y29udGVudCAmJgogCWdpdCBjb21taXQgLWEgLW0gZGl2ZXJnZSAmJgotCWNoZWNrX3B1c2ggMSA8PC1FT0YKKwljaGVja19wdXNoIDEgPDwtXEVPRgogCWRpdmVyZ2U6ZmV0Y2gtZmlyc3QKIAlFT0YKIAkpICYmCkBAIC00MjcsNyArNDQ0LDcgQEAKIAlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKIAljZCBnaXRyZXBvICYmCiAJZ2l0IGNoZWNrb3V0IC0tcXVpZXQgLWIgZmVhdHVyZS1jIEhFQUReICYmCi0JZWNobyBmZWF0dXJlLWMgPiBjb250ZW50ICYmCisJZWNobyBmZWF0dXJlLWMgPmNvbnRlbnQgJiYKIAlnaXQgY29tbWl0IC1hIC1tIGZlYXR1cmUtYyAmJgogCWdpdCBwdXNoIC0tcXVpZXQgb3JpZ2luIGZlYXR1cmUtYwogCSkgJiYKQEAgLTQzOCwyNCArNDU1LDkyIEBACiAjIGNsZWFudXAgcHJldmlvdXMgc3R1ZmYKIHJtIC1yZiBoZ3JlcG8KIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggc3BlY2lhbCBmaWxlbmFtZXMnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBoZ3JlcG8gZ2l0cmVwbyAmJiBMQ19BTEw9QyIgJiYKKworCUxDX0FMTD1lbl9VUy5VVEYtOAorCWV4cG9ydCBMQ19BTEwKKworCSgKKwloZyBpbml0IGhncmVwbyAmJgorCWNkIGhncmVwbyAmJgorCisJZWNobyB0ZXN0ID4+ICLDpiByw7giICYmCisJaGcgYWRkICLDpiByw7giICYmCisJZWNobyB0ZXN0ID4+ICLDuH4/IiAmJgorCWhnIGFkZCAiw7h+PyIgJiYKKwloZyBjb21taXQgLW0gYWRkLXV0Zi04ICYmCisJZWNobyB0ZXN0ID4+ICLDpiByw7giICYmCisJaGcgY29tbWl0IC1tIHRlc3QtdXRmLTggJiYKKwloZyBybSAiw7h+PyIgJiYKKwloZyBtdiAiw6YgcsO4IiAiw7h+PyIgJiYKKwloZyBjb21taXQgLW0gaGctbXYtdXRmLTgKKwkpICYmCisKKwkoCisJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCisJY2QgZ2l0cmVwbyAmJgorCWdpdCAtYyBjb3JlLnF1b3RlcGF0aD1mYWxzZSBscy1maWxlcyA+IC4uL2FjdHVhbAorCSkgJiYKKwllY2hvICLDuH4/IiA+IGV4cGVjdGVkICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1c2ggc3BlY2lhbCBmaWxlbmFtZXMnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBoZ3JlcG8gZ2l0cmVwbyAmJiBMQ19BTEw9QyIgJiYKKworCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKKworCUxDX0FMTD1lbl9VUy5VVEYtOAorCWV4cG9ydCBMQ19BTEwKKworCSgKKwloZyBpbml0IGhncmVwbyAmJgorCWNkIGhncmVwbyAmJgorCisJZWNobyBvbmUgPj4gY29udGVudCAmJgorCWhnIGFkZCBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tIG9uZQorCSkgJiYKKworCSgKKwlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKKwljZCBnaXRyZXBvICYmCisKKwllY2hvIHRlc3QgPj4gIsOmIHLDuCIgJiYKKwlnaXQgYWRkICLDpiByw7giICYmCisJZ2l0IGNvbW1pdCAtbSB1dGYtOCAmJgorCisJZ2l0IHB1c2gKKwkpICYmCisKKwkoY2QgaGdyZXBvICYmCisJaGcgdXBkYXRlICYmCisJaGcgbWFuaWZlc3QgPiAuLi9hY3R1YWwKKwkpICYmCisKKwlwcmludGYgImNvbnRlbnRcbsOmIHLDuFxuIiA+IGV4cGVjdGVkICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCisKIHNldHVwX2JpZ19wdXNoICgpIHsKIAkoCiAJaGcgaW5pdCBoZ3JlcG8gJiYKIAljZCBoZ3JlcG8gJiYKLQllY2hvIHplcm8gPiBjb250ZW50ICYmCisJZWNobyB6ZXJvID5jb250ZW50ICYmCiAJaGcgYWRkIGNvbnRlbnQgJiYKIAloZyBjb21taXQgLW0gemVybyAmJgogCWhnIGJvb2ttYXJrIGJhZF9ibWFyazEgJiYKLQllY2hvIG9uZSA+IGNvbnRlbnQgJiYKKwllY2hvIG9uZSA+Y29udGVudCAmJgogCWhnIGNvbW1pdCAtbSBvbmUgJiYKIAloZyBib29rbWFyayBiYWRfYm1hcmsyICYmCiAJaGcgYm9va21hcmsgZ29vZF9ibWFyayAmJgogCWhnIGJvb2ttYXJrIC1pIGdvb2RfYm1hcmsgJiYKIAloZyAtcSBicmFuY2ggZ29vZF9icmFuY2ggJiYKLQllY2hvICJnb29kIGJyYW5jaCIgPiBjb250ZW50ICYmCisJZWNobyAiZ29vZCBicmFuY2giID5jb250ZW50ICYmCiAJaGcgY29tbWl0IC1tICJnb29kIGJyYW5jaCIgJiYKIAloZyAtcSBicmFuY2ggYmFkX2JyYW5jaCAmJgotCWVjaG8gImJhZCBicmFuY2giID4gY29udGVudCAmJgorCWVjaG8gImJhZCBicmFuY2giID5jb250ZW50ICYmCiAJaGcgY29tbWl0IC1tICJiYWQgYnJhbmNoIgogCSkgJiYKIApAQCAtNDYzLDQwICs1NDgsNDAgQEAKIAogCSgKIAljZCBnaXRyZXBvICYmCi0JZWNobyB0d28gPiBjb250ZW50ICYmCisJZWNobyB0d28gPmNvbnRlbnQgJiYKIAlnaXQgY29tbWl0IC1xIC1hIC1tIHR3byAmJgogCiAJZ2l0IGNoZWNrb3V0IC1xIGdvb2RfYm1hcmsgJiYKLQllY2hvIHRocmVlID4gY29udGVudCAmJgorCWVjaG8gdGhyZWUgPmNvbnRlbnQgJiYKIAlnaXQgY29tbWl0IC1xIC1hIC1tIHRocmVlICYmCiAKIAlnaXQgY2hlY2tvdXQgLXEgYmFkX2JtYXJrMSAmJgogCWdpdCByZXNldCAtLWhhcmQgSEVBRF4gJiYKLQllY2hvIGZvdXIgPiBjb250ZW50ICYmCisJZWNobyBmb3VyID5jb250ZW50ICYmCiAJZ2l0IGNvbW1pdCAtcSAtYSAtbSBmb3VyICYmCiAKIAlnaXQgY2hlY2tvdXQgLXEgYmFkX2JtYXJrMiAmJgogCWdpdCByZXNldCAtLWhhcmQgSEVBRF4gJiYKLQllY2hvIGZpdmUgPiBjb250ZW50ICYmCisJZWNobyBmaXZlID5jb250ZW50ICYmCiAJZ2l0IGNvbW1pdCAtcSAtYSAtbSBmaXZlICYmCiAKIAlnaXQgY2hlY2tvdXQgLXEgLWIgbmV3X2JtYXJrIG1hc3RlciAmJgotCWVjaG8gc2l4ID4gY29udGVudCAmJgorCWVjaG8gc2l4ID5jb250ZW50ICYmCiAJZ2l0IGNvbW1pdCAtcSAtYSAtbSBzaXggJiYKIAogCWdpdCBjaGVja291dCAtcSBicmFuY2hlcy9nb29kX2JyYW5jaCAmJgotCWVjaG8gc2V2ZW4gPiBjb250ZW50ICYmCisJZWNobyBzZXZlbiA+Y29udGVudCAmJgogCWdpdCBjb21taXQgLXEgLWEgLW0gc2V2ZW4gJiYKLQllY2hvIGVpZ2h0ID4gY29udGVudCAmJgorCWVjaG8gZWlnaHQgPmNvbnRlbnQgJiYKIAlnaXQgY29tbWl0IC1xIC1hIC1tIGVpZ2h0ICYmCiAKIAlnaXQgY2hlY2tvdXQgLXEgYnJhbmNoZXMvYmFkX2JyYW5jaCAmJgogCWdpdCByZXNldCAtLWhhcmQgSEVBRF4gJiYKLQllY2hvIG5pbmUgPiBjb250ZW50ICYmCisJZWNobyBuaW5lID5jb250ZW50ICYmCiAJZ2l0IGNvbW1pdCAtcSAtYSAtbSBuaW5lICYmCiAKIAlnaXQgY2hlY2tvdXQgLXEgLWIgYnJhbmNoZXMvbmV3X2JyYW5jaCBtYXN0ZXIgJiYKLQllY2hvIHRlbiA+IGNvbnRlbnQgJiYKKwllY2hvIHRlbiA+Y29udGVudCAmJgogCWdpdCBjb21taXQgLXEgLWEgLW0gdGVuCiAJKQogfQpAQCAtNTA5LDcgKzU5NCw3IEBACiAJKAogCWNkIGdpdHJlcG8gJiYKIAotCWNoZWNrX3B1c2ggMSAtLWFsbCA8PC1FT0YKKwljaGVja19wdXNoIDEgLS1hbGwgPDwtXEVPRgogCW1hc3RlcgogCWdvb2RfYm1hcmsKIAlicmFuY2hlcy9nb29kX2JyYW5jaApAQCAtNTM3LDE3ICs2MjIsMTcgQEAKIAkoCiAJaGcgaW5pdCBoZ3JlcG8gJiYKIAljZCBoZ3JlcG8gJiYKLQllY2hvIHplcm8gPiBjb250ZW50ICYmCisJZWNobyB6ZXJvID5jb250ZW50ICYmCiAJaGcgYWRkIGNvbnRlbnQgJiYKIAloZyBjb21taXQgLW0gemVybyAmJgogCWhnIGJvb2ttYXJrIGJhZF9ibWFyayAmJgogCWhnIGJvb2ttYXJrIGdvb2RfYm1hcmsgJiYKIAloZyBib29rbWFyayAtaSBnb29kX2JtYXJrICYmCiAJaGcgLXEgYnJhbmNoIGdvb2RfYnJhbmNoICYmCi0JZWNobyAiZ29vZCBicmFuY2giID4gY29udGVudCAmJgorCWVjaG8gImdvb2QgYnJhbmNoIiA+Y29udGVudCAmJgogCWhnIGNvbW1pdCAtbSAiZ29vZCBicmFuY2giICYmCiAJaGcgLXEgYnJhbmNoIGJhZF9icmFuY2ggJiYKLQllY2hvICJiYWQgYnJhbmNoIiA+IGNvbnRlbnQgJiYKKwllY2hvICJiYWQgYnJhbmNoIiA+Y29udGVudCAmJgogCWhnIGNvbW1pdCAtbSAiYmFkIGJyYW5jaCIKIAkpICYmCiAKQEAgLTU1NiwzOSArNjQxLDM3IEBACiAJKAogCWNkIGhncmVwbyAmJgogCWhnIGJvb2ttYXJrIC1mIGJhZF9ibWFyayAmJgotCWVjaG8gdXBkYXRlX2JtYXJrID4gY29udGVudCAmJgorCWVjaG8gdXBkYXRlX2JtYXJrID5jb250ZW50ICYmCiAJaGcgY29tbWl0IC1tICJ1cGRhdGUgYm1hcmsiCiAJKSAmJgogCiAJKAogCWNkIGdpdHJlcG8gJiYKLQllY2hvIHR3byA+IGNvbnRlbnQgJiYKKwllY2hvIHR3byA+Y29udGVudCAmJgogCWdpdCBjb21taXQgLXEgLWEgLW0gdHdvICYmCiAKIAlnaXQgY2hlY2tvdXQgLXEgZ29vZF9ibWFyayAmJgotCWVjaG8gdGhyZWUgPiBjb250ZW50ICYmCisJZWNobyB0aHJlZSA+Y29udGVudCAmJgogCWdpdCBjb21taXQgLXEgLWEgLW0gdGhyZWUgJiYKIAogCWdpdCBjaGVja291dCAtcSBiYWRfYm1hcmsgJiYKLQllY2hvIGZvdXIgPiBjb250ZW50ICYmCisJZWNobyBmb3VyID5jb250ZW50ICYmCiAJZ2l0IGNvbW1pdCAtcSAtYSAtbSBmb3VyICYmCiAKIAlnaXQgY2hlY2tvdXQgLXEgYnJhbmNoZXMvYmFkX2JyYW5jaCAmJgotCWVjaG8gZml2ZSA+IGNvbnRlbnQgJiYKKwllY2hvIGZpdmUgPmNvbnRlbnQgJiYKIAlnaXQgY29tbWl0IC1xIC1hIC1tIGZpdmUgJiYKIAotCWNoZWNrX3B1c2ggMSAtLWFsbCA8PC1FT0YKKwljaGVja19wdXNoIDEgLS1hbGwgPDwtXEVPRiAmJgogCW1hc3RlcgogCWdvb2RfYm1hcmsKLQluZXdfYm1hcms6bmV3Ci0JbmV3X2JyYW5jaDpuZXcKIAliYWRfYm1hcms6ZmV0Y2gtZmlyc3QKIAlicmFuY2hlcy9iYWRfYnJhbmNoOmZlc3RjaC1maXJzdAogCUVPRgogCiAJZ2l0IGZldGNoICYmCiAKLQljaGVja19wdXNoIDEgLS1hbGwgPDwtRU9GCisJY2hlY2tfcHVzaCAxIC0tYWxsIDw8LVxFT0YKIAltYXN0ZXIKIAlnb29kX2JtYXJrCiAJYmFkX2JtYXJrOm5vbi1mYXN0LWZvcndhcmQKQEAgLTYwNSw3ICs2ODgsNyBAQAogCSgKIAljZCBnaXRyZXBvICYmCiAKLQljaGVja19wdXNoIDAgLS1mb3JjZSAtLWFsbCA8PC1FT0YKKwljaGVja19wdXNoIDAgLS1mb3JjZSAtLWFsbCA8PC1cRU9GCiAJbWFzdGVyCiAJZ29vZF9ibWFyawogCWJyYW5jaGVzL2dvb2RfYnJhbmNoCkBAIC02MzUsNyArNzE4LDcgQEAKIAkoCiAJY2QgZ2l0cmVwbyAmJgogCi0JY2hlY2tfcHVzaCAwIC0tZHJ5LXJ1biAtLWFsbCA8PC1FT0YKKwljaGVja19wdXNoIDEgLS1kcnktcnVuIC0tYWxsIDw8LVxFT0YgJiYKIAltYXN0ZXIKIAlnb29kX2JtYXJrCiAJYnJhbmNoZXMvZ29vZF9icmFuY2gKQEAgLTY0Niw3ICs3MjksNyBAQAogCWJyYW5jaGVzL2JhZF9icmFuY2g6bm9uLWZhc3QtZm9yd2FyZAogCUVPRgogCi0JY2hlY2tfcHVzaCAwIC0tZHJ5LXJ1biBtYXN0ZXIgZ29vZF9ibWFyayBuZXdfYm1hcmsgYnJhbmNoZXMvZ29vZF9icmFuY2ggYnJhbmNoZXMvbmV3X2JyYW5jaCA8PC1FT0YKKwljaGVja19wdXNoIDAgLS1kcnktcnVuIG1hc3RlciBnb29kX2JtYXJrIG5ld19ibWFyayBicmFuY2hlcy9nb29kX2JyYW5jaCBicmFuY2hlcy9uZXdfYnJhbmNoIDw8LVxFT0YKIAltYXN0ZXIKIAlnb29kX2JtYXJrCiAJYnJhbmNoZXMvZ29vZF9icmFuY2gKQEAgLTY3MSwxMCArNzU0LDEwIEBACiAJKAogCWhnIGluaXQgaGdyZXBvICYmCiAJY2QgaGdyZXBvICYmCi0JZWNobyB6ZXJvID4gY29udGVudCAmJgorCWVjaG8gemVybyA+Y29udGVudCAmJgogCWhnIGFkZCBjb250ZW50ICYmCiAJaGcgY29tbWl0IC1tIHplcm8gJiYKLQllY2hvIG9uZSA+IGNvbnRlbnQgJiYKKwllY2hvIG9uZSA+Y29udGVudCAmJgogCWhnIGNvbW1pdCAtbSBvbmUKIAkpICYmCiAKQEAgLTY4Miw3ICs3NjUsNyBAQAogCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgogCWNkIGdpdHJlcG8gJiYKIAlnaXQgcmVzZXQgLS1oYXJkIEhFQUReICYmCi0JZWNobyB0d28gPiBjb250ZW50ICYmCisJZWNobyB0d28gPmNvbnRlbnQgJiYKIAlnaXQgY29tbWl0IC1hIC1tIHR3byAmJgogCXRlc3RfZXhwZWN0X2NvZGUgMSBnaXQgcHVzaCAmJgogCXRlc3RfZXhwZWN0X2NvZGUgMSBnaXQgcHVzaApkaWZmIC0tZ2l0IGEvY29udHJpYi9zdWJ0cmVlL2dpdC1zdWJ0cmVlLnNoIGIvY29udHJpYi9zdWJ0cmVlL2dpdC1zdWJ0cmVlLnNoCmluZGV4IDdkN2FmMDMuLmRjNTlhOTEgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvc3VidHJlZS9naXQtc3VidHJlZS5zaAorKysgYi9jb250cmliL3N1YnRyZWUvZ2l0LXN1YnRyZWUuc2gKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29udHJpYi9zdWJ0cmVlL2dpdC1zdWJ0cmVlLnR4dCBiL2NvbnRyaWIvc3VidHJlZS9naXQtc3VidHJlZS50eHQKaW5kZXggZTA5NTdlZS4uMDI2NjliMSAxMDA2NDQKLS0tIGEvY29udHJpYi9zdWJ0cmVlL2dpdC1zdWJ0cmVlLnR4dAorKysgYi9jb250cmliL3N1YnRyZWUvZ2l0LXN1YnRyZWUudHh0CkBAIC05LDEwICs5LDEwIEBACiBTWU5PUFNJUwogLS0tLS0tLS0KIFt2ZXJzZV0KLSdnaXQgc3VidHJlZScgYWRkICAgLVAgPHByZWZpeD4gPHJlZnNwZWM+Ci0nZ2l0IHN1YnRyZWUnIGFkZCAgIC1QIDxwcmVmaXg+IDxyZXBvc2l0b3J5PiA8cmVmc3BlYz4KLSdnaXQgc3VidHJlZScgcHVsbCAgLVAgPHByZWZpeD4gPHJlcG9zaXRvcnk+IDxyZWZzcGVjLi4uPgotJ2dpdCBzdWJ0cmVlJyBwdXNoICAtUCA8cHJlZml4PiA8cmVwb3NpdG9yeT4gPHJlZnNwZWMuLi4+CisnZ2l0IHN1YnRyZWUnIGFkZCAgIC1QIDxwcmVmaXg+IDxjb21taXQ+CisnZ2l0IHN1YnRyZWUnIGFkZCAgIC1QIDxwcmVmaXg+IDxyZXBvc2l0b3J5PiA8cmVmPgorJ2dpdCBzdWJ0cmVlJyBwdWxsICAtUCA8cHJlZml4PiA8cmVwb3NpdG9yeT4gPHJlZj4KKydnaXQgc3VidHJlZScgcHVzaCAgLVAgPHByZWZpeD4gPHJlcG9zaXRvcnk+IDxyZWY+CiAnZ2l0IHN1YnRyZWUnIG1lcmdlIC1QIDxwcmVmaXg+IDxjb21taXQ+CiAnZ2l0IHN1YnRyZWUnIHNwbGl0IC1QIDxwcmVmaXg+IFtPUFRJT05TXSBbPGNvbW1pdD5dCiAKQEAgLTY4LDcgKzY4LDcgQEAKIC0tLS0tLS0tCiBhZGQ6OgogCUNyZWF0ZSB0aGUgPHByZWZpeD4gc3VidHJlZSBieSBpbXBvcnRpbmcgaXRzIGNvbnRlbnRzCi0JZnJvbSB0aGUgZ2l2ZW4gPHJlZnNwZWM+IG9yIDxyZXBvc2l0b3J5PiBhbmQgcmVtb3RlIDxyZWZzcGVjPi4KKwlmcm9tIHRoZSBnaXZlbiA8Y29tbWl0PiBvciA8cmVwb3NpdG9yeT4gYW5kIHJlbW90ZSA8cmVmPi4KIAlBIG5ldyBjb21taXQgaXMgY3JlYXRlZAlhdXRvbWF0aWNhbGx5LCBqb2luaW5nIHRoZSBpbXBvcnRlZAogCXByb2plY3QncyBoaXN0b3J5IHdpdGggeW91ciBvd24uICBXaXRoICctLXNxdWFzaCcsIGltcG9ydHMKIAlvbmx5IGEgc2luZ2xlIGNvbW1pdCBmcm9tIHRoZSBzdWJwcm9qZWN0LCByYXRoZXIgdGhhbiBpdHMKQEAgLTkwLDEzICs5MCwxMyBAQAogCQogcHVsbDo6CiAJRXhhY3RseSBsaWtlICdtZXJnZScsIGJ1dCBwYXJhbGxlbHMgJ2dpdCBwdWxsJyBpbiB0aGF0Ci0JaXQgZmV0Y2hlcyB0aGUgZ2l2ZW4gY29tbWl0IGZyb20gdGhlIHNwZWNpZmllZCByZW1vdGUKKwlpdCBmZXRjaGVzIHRoZSBnaXZlbiByZWYgZnJvbSB0aGUgc3BlY2lmaWVkIHJlbW90ZQogCXJlcG9zaXRvcnkuCiAJCiBwdXNoOjoKIAlEb2VzIGEgJ3NwbGl0JyAoc2VlIGJlbG93KSB1c2luZyB0aGUgPHByZWZpeD4gc3VwcGxpZWQKIAlhbmQgdGhlbiBkb2VzIGEgJ2dpdCBwdXNoJyB0byBwdXNoIHRoZSByZXN1bHQgdG8gdGhlIAotCXJlcG9zaXRvcnkgYW5kIHJlZnNwZWMuIFRoaXMgY2FuIGJlIHVzZWQgdG8gcHVzaCB5b3VyCisJcmVwb3NpdG9yeSBhbmQgcmVmLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHB1c2ggeW91cgogCXN1YnRyZWUgdG8gZGlmZmVyZW50IGJyYW5jaGVzIG9mIHRoZSByZW1vdGUgcmVwb3NpdG9yeS4KIAogc3BsaXQ6OgpkaWZmIC0tZ2l0IGEvY29udmVydC5jIGIvY29udmVydC5jCmluZGV4IDExYTk1ZmMuLmFiODBiNzIgMTAwNjQ0Ci0tLSBhL2NvbnZlcnQuYworKysgYi9jb252ZXJ0LmMKQEAgLTExMjEsNyArMTEyMSw3IEBACiB7CiAJaW50IGk7CiAKLQlpZiAocHJlZml4Y21wKHN0ciwgIiRJZDogIikpCisJaWYgKCFzdGFydHNfd2l0aChzdHIsICIkSWQ6ICIpKQogCQlyZXR1cm4gMDsKIAlmb3IgKGkgPSA1OyBzdHJbaV07IGkrKykgewogCQlpZiAoaXNzcGFjZShzdHJbaV0pICYmIHN0cltpKzFdICE9ICckJykKZGlmZiAtLWdpdCBhL2NzdW0tZmlsZS5jIGIvY3N1bS1maWxlLmMKaW5kZXggNTNmNTM3NS4uYjAwYjIxNSAxMDA2NDQKLS0tIGEvY3N1bS1maWxlLmMKKysrIGIvY3N1bS1maWxlLmMKQEAgLTExLDcgKzExLDcgQEAKICNpbmNsdWRlICJwcm9ncmVzcy5oIgogI2luY2x1ZGUgImNzdW0tZmlsZS5oIgogCi1zdGF0aWMgdm9pZCBmbHVzaChzdHJ1Y3Qgc2hhMWZpbGUgKmYsIHZvaWQgKmJ1ZiwgdW5zaWduZWQgaW50IGNvdW50KQorc3RhdGljIHZvaWQgZmx1c2goc3RydWN0IHNoYTFmaWxlICpmLCBjb25zdCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBjb3VudCkKIHsKIAlpZiAoMCA8PSBmLT5jaGVja19mZCAmJiBjb3VudCkgIHsKIAkJdW5zaWduZWQgY2hhciBjaGVja19idWZmZXJbODE5Ml07CkBAIC04NiwxMyArODYsMTMgQEAKIAlyZXR1cm4gZmQ7CiB9CiAKLWludCBzaGExd3JpdGUoc3RydWN0IHNoYTFmaWxlICpmLCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBjb3VudCkKK3ZvaWQgc2hhMXdyaXRlKHN0cnVjdCBzaGExZmlsZSAqZiwgY29uc3Qgdm9pZCAqYnVmLCB1bnNpZ25lZCBpbnQgY291bnQpCiB7CiAJd2hpbGUgKGNvdW50KSB7CiAJCXVuc2lnbmVkIG9mZnNldCA9IGYtPm9mZnNldDsKIAkJdW5zaWduZWQgbGVmdCA9IHNpemVvZihmLT5idWZmZXIpIC0gb2Zmc2V0OwogCQl1bnNpZ25lZCBuciA9IGNvdW50ID4gbGVmdCA/IGxlZnQgOiBjb3VudDsKLQkJdm9pZCAqZGF0YTsKKwkJY29uc3Qgdm9pZCAqZGF0YTsKIAogCQlpZiAoZi0+ZG9fY3JjKQogCQkJZi0+Y3JjMzIgPSBjcmMzMihmLT5jcmMzMiwgYnVmLCBucik7CkBAIC0xMTYsNyArMTE2LDYgQEAKIAkJfQogCQlmLT5vZmZzZXQgPSBvZmZzZXQ7CiAJfQotCXJldHVybiAwOwogfQogCiBzdHJ1Y3Qgc2hhMWZpbGUgKnNoYTFmZChpbnQgZmQsIGNvbnN0IGNoYXIgKm5hbWUpCmRpZmYgLS1naXQgYS9jc3VtLWZpbGUuaCBiL2NzdW0tZmlsZS5oCmluZGV4IDNiNTQwYmQuLmJiNTQzZDUgMTAwNjQ0Ci0tLSBhL2NzdW0tZmlsZS5oCisrKyBiL2NzdW0tZmlsZS5oCkBAIC0zNCw3ICszNCw3IEBACiBleHRlcm4gc3RydWN0IHNoYTFmaWxlICpzaGExZmRfY2hlY2soY29uc3QgY2hhciAqbmFtZSk7CiBleHRlcm4gc3RydWN0IHNoYTFmaWxlICpzaGExZmRfdGhyb3VnaHB1dChpbnQgZmQsIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBwcm9ncmVzcyAqdHApOwogZXh0ZXJuIGludCBzaGExY2xvc2Uoc3RydWN0IHNoYTFmaWxlICosIHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgaW50KTsKLWV4dGVybiBpbnQgc2hhMXdyaXRlKHN0cnVjdCBzaGExZmlsZSAqLCB2b2lkICosIHVuc2lnbmVkIGludCk7CitleHRlcm4gdm9pZCBzaGExd3JpdGUoc3RydWN0IHNoYTFmaWxlICosIGNvbnN0IHZvaWQgKiwgdW5zaWduZWQgaW50KTsKIGV4dGVybiB2b2lkIHNoYTFmbHVzaChzdHJ1Y3Qgc2hhMWZpbGUgKmYpOwogZXh0ZXJuIHZvaWQgY3JjMzJfYmVnaW4oc3RydWN0IHNoYTFmaWxlICopOwogZXh0ZXJuIHVpbnQzMl90IGNyYzMyX2VuZChzdHJ1Y3Qgc2hhMWZpbGUgKik7CmRpZmYgLS1naXQgYS9kYWVtb24uYyBiL2RhZW1vbi5jCmluZGV4IDM0OTE2YzUuLjUwM2UwMzkgMTAwNjQ0Ci0tLSBhL2RhZW1vbi5jCisrKyBiL2RhZW1vbi5jCkBAIC0yMzUsNyArMjM1LDcgQEAKIAogc3RhdGljIGludCBnaXRfZGFlbW9uX2NvbmZpZyhjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpjYikKIHsKLQlpZiAoIXByZWZpeGNtcCh2YXIsICJkYWVtb24uIikgJiYKKwlpZiAoc3RhcnRzX3dpdGgodmFyLCAiZGFlbW9uLiIpICYmCiAJICAgICFzdHJjbXAodmFyICsgNywgc2VydmljZV9sb29raW5nX2F0LT5jb25maWdfbmFtZSkpIHsKIAkJc2VydmljZV9lbmFibGVkID0gZ2l0X2NvbmZpZ19ib29sKHZhciwgdmFsdWUpOwogCQlyZXR1cm4gMDsKQEAgLTYzMyw3ICs2MzMsNyBAQAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRhZW1vbl9zZXJ2aWNlKTsgaSsrKSB7CiAJCXN0cnVjdCBkYWVtb25fc2VydmljZSAqcyA9ICYoZGFlbW9uX3NlcnZpY2VbaV0pOwogCQlpbnQgbmFtZWxlbiA9IHN0cmxlbihzLT5uYW1lKTsKLQkJaWYgKCFwcmVmaXhjbXAobGluZSwgImdpdC0iKSAmJgorCQlpZiAoc3RhcnRzX3dpdGgobGluZSwgImdpdC0iKSAmJgogCQkgICAgIXN0cm5jbXAocy0+bmFtZSwgbGluZSArIDQsIG5hbWVsZW4pICYmCiAJCSAgICBsaW5lW25hbWVsZW4gKyA0XSA9PSAnICcpIHsKIAkJCS8qCkBAIC0xMTY1LDExICsxMTY1LDExIEBACiAJZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykgewogCQljaGFyICphcmcgPSBhcmd2W2ldOwogCi0JCWlmICghcHJlZml4Y21wKGFyZywgIi0tbGlzdGVuPSIpKSB7CisJCWlmIChzdGFydHNfd2l0aChhcmcsICItLWxpc3Rlbj0iKSkgewogCQkJc3RyaW5nX2xpc3RfYXBwZW5kKCZsaXN0ZW5fYWRkciwgeHN0cmR1cF90b2xvd2VyKGFyZyArIDkpKTsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWlmICghcHJlZml4Y21wKGFyZywgIi0tcG9ydD0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1wb3J0PSIpKSB7CiAJCQljaGFyICplbmQ7CiAJCQl1bnNpZ25lZCBsb25nIG47CiAJCQluID0gc3RydG91bChhcmcrNywgJmVuZCwgMCk7CkBAIC0xMTk5LDE5ICsxMTk5LDE5IEBACiAJCQlleHBvcnRfYWxsX3RyZWVzID0gMTsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWlmICghcHJlZml4Y21wKGFyZywgIi0tYWNjZXNzLWhvb2s9IikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tYWNjZXNzLWhvb2s9IikpIHsKIAkJCWFjY2Vzc19ob29rID0gYXJnICsgMTQ7CiAJCQljb250aW51ZTsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChhcmcsICItLXRpbWVvdXQ9IikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tdGltZW91dD0iKSkgewogCQkJdGltZW91dCA9IGF0b2koYXJnKzEwKTsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWlmICghcHJlZml4Y21wKGFyZywgIi0taW5pdC10aW1lb3V0PSIpKSB7CisJCWlmIChzdGFydHNfd2l0aChhcmcsICItLWluaXQtdGltZW91dD0iKSkgewogCQkJaW5pdF90aW1lb3V0ID0gYXRvaShhcmcrMTUpOwogCQkJY29udGludWU7CiAJCX0KLQkJaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1tYXgtY29ubmVjdGlvbnM9IikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tbWF4LWNvbm5lY3Rpb25zPSIpKSB7CiAJCQltYXhfY29ubmVjdGlvbnMgPSBhdG9pKGFyZysxOCk7CiAJCQlpZiAobWF4X2Nvbm5lY3Rpb25zIDwgMCkKIAkJCQltYXhfY29ubmVjdGlvbnMgPSAwOwkgICAgICAgIC8qIHVubGltaXRlZCAqLwpAQCAtMTIyMSw3ICsxMjIxLDcgQEAKIAkJCXN0cmljdF9wYXRocyA9IDE7CiAJCQljb250aW51ZTsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChhcmcsICItLWJhc2UtcGF0aD0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1iYXNlLXBhdGg9IikpIHsKIAkJCWJhc2VfcGF0aCA9IGFyZysxMjsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC0xMjI5LDcgKzEyMjksNyBAQAogCQkJYmFzZV9wYXRoX3JlbGF4ZWQgPSAxOwogCQkJY29udGludWU7CiAJCX0KLQkJaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1pbnRlcnBvbGF0ZWQtcGF0aD0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1pbnRlcnBvbGF0ZWQtcGF0aD0iKSkgewogCQkJaW50ZXJwb2xhdGVkX3BhdGggPSBhcmcrMjA7CiAJCQljb250aW51ZTsKIAkJfQpAQCAtMTI0MSwxMSArMTI0MSwxMSBAQAogCQkJdXNlcl9wYXRoID0gIiI7CiAJCQljb250aW51ZTsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChhcmcsICItLXVzZXItcGF0aD0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS11c2VyLXBhdGg9IikpIHsKIAkJCXVzZXJfcGF0aCA9IGFyZyArIDEyOwogCQkJY29udGludWU7CiAJCX0KLQkJaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1waWQtZmlsZT0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1waWQtZmlsZT0iKSkgewogCQkJcGlkX2ZpbGUgPSBhcmcgKyAxMTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC0xMjU0LDM1ICsxMjU0LDM1IEBACiAJCQlsb2dfc3lzbG9nID0gMTsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWlmICghcHJlZml4Y21wKGFyZywgIi0tdXNlcj0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS11c2VyPSIpKSB7CiAJCQl1c2VyX25hbWUgPSBhcmcgKyA3OwogCQkJY29udGludWU7CiAJCX0KLQkJaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1ncm91cD0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1ncm91cD0iKSkgewogCQkJZ3JvdXBfbmFtZSA9IGFyZyArIDg7CiAJCQljb250aW51ZTsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChhcmcsICItLWVuYWJsZT0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1lbmFibGU9IikpIHsKIAkJCWVuYWJsZV9zZXJ2aWNlKGFyZyArIDksIDEpOwogCQkJY29udGludWU7CiAJCX0KLQkJaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1kaXNhYmxlPSIpKSB7CisJCWlmIChzdGFydHNfd2l0aChhcmcsICItLWRpc2FibGU9IikpIHsKIAkJCWVuYWJsZV9zZXJ2aWNlKGFyZyArIDEwLCAwKTsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWlmICghcHJlZml4Y21wKGFyZywgIi0tYWxsb3ctb3ZlcnJpZGU9IikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tYWxsb3ctb3ZlcnJpZGU9IikpIHsKIAkJCW1ha2Vfc2VydmljZV9vdmVycmlkYWJsZShhcmcgKyAxNywgMSk7CiAJCQljb250aW51ZTsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChhcmcsICItLWZvcmJpZC1vdmVycmlkZT0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1mb3JiaWQtb3ZlcnJpZGU9IikpIHsKIAkJCW1ha2Vfc2VydmljZV9vdmVycmlkYWJsZShhcmcgKyAxOCwgMCk7CiAJCQljb250aW51ZTsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChhcmcsICItLWluZm9ybWF0aXZlLWVycm9ycyIpKSB7CisJCWlmICghc3RyY21wKGFyZywgIi0taW5mb3JtYXRpdmUtZXJyb3JzIikpIHsKIAkJCWluZm9ybWF0aXZlX2Vycm9ycyA9IDE7CiAJCQljb250aW51ZTsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChhcmcsICItLW5vLWluZm9ybWF0aXZlLWVycm9ycyIpKSB7CisJCWlmICghc3RyY21wKGFyZywgIi0tbm8taW5mb3JtYXRpdmUtZXJyb3JzIikpIHsKIAkJCWluZm9ybWF0aXZlX2Vycm9ycyA9IDA7CiAJCQljb250aW51ZTsKIAkJfQpkaWZmIC0tZ2l0IGEvZGF0ZS5jIGIvZGF0ZS5jCmluZGV4IDI5ZjE1NDAuLjgzYjQxNjYgMTAwNjQ0Ci0tLSBhL2RhdGUuYworKysgYi9kYXRlLmMKQEAgLTkwNyw3ICs5MDcsNyBAQAogCWNvbnN0IGNoYXIgKmVuZCA9IGRhdGU7CiAJaW50IGk7CiAKLQl3aGlsZSAoaXNhbHBoYSgqKytlbmQpKTsKKwl3aGlsZSAoaXNhbHBoYSgqKytlbmQpKQogCQk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykgewpkaWZmIC0tZ2l0IGEvZGlmZi1kZWx0YS5jIGIvZGlmZi1kZWx0YS5jCmluZGV4IDkzMzg1ZTEuLjM3OTdjZTYgMTAwNjQ0Ci0tLSBhL2RpZmYtZGVsdGEuYworKysgYi9kaWZmLWRlbHRhLmMKQEAgLTE1NSw3ICsxNTUsNyBAQAogCQllbnRyaWVzID0gMHhmZmZmZmZmZVUgLyBSQUJJTl9XSU5ET1c7CiAJfQogCWhzaXplID0gZW50cmllcyAvIDQ7Ci0JZm9yIChpID0gNDsgKDF1IDw8IGkpIDwgaHNpemUgJiYgaSA8IDMxOyBpKyspOworCWZvciAoaSA9IDQ7ICgxdSA8PCBpKSA8IGhzaXplOyBpKyspOwogCWhzaXplID0gMSA8PCBpOwogCWhtYXNrID0gaHNpemUgLSAxOwogCmRpZmYgLS1naXQgYS9kaWZmLWxpYi5jIGIvZGlmZi1saWIuYwppbmRleCBiNmY0YjIxLi4zNDZjYWM2IDEwMDY0NAotLS0gYS9kaWZmLWxpYi5jCisrKyBiL2RpZmYtbGliLmMKQEAgLTg3LDEwICs4NywxMiBAQAogewogCWludCBlbnRyaWVzLCBpOwogCWludCBkaWZmX3VubWVyZ2VkX3N0YWdlID0gcmV2cy0+bWF4X2NvdW50OwotCWludCBzaWxlbnRfb25fcmVtb3ZlZCA9IG9wdGlvbiAmIERJRkZfU0lMRU5UX09OX1JFTU9WRUQ7CiAJdW5zaWduZWQgY2Vfb3B0aW9uID0gKChvcHRpb24gJiBESUZGX1JBQ1lfSVNfTU9ESUZJRUQpCiAJCQkgICAgICA/IENFX01BVENIX1JBQ1lfSVNfRElSVFkgOiAwKTsKIAorCWlmIChvcHRpb24gJiBESUZGX1NJTEVOVF9PTl9SRU1PVkVEKQorCQloYW5kbGVfZGVwcmVjYXRlZF9zaG93X2RpZmZfcSgmcmV2cy0+ZGlmZm9wdCk7CisKIAlkaWZmX3NldF9tbmVtb25pY19wcmVmaXgoJnJldnMtPmRpZmZvcHQsICJpLyIsICJ3LyIpOwogCiAJaWYgKGRpZmZfdW5tZXJnZWRfc3RhZ2UgPCAwKQpAQCAtMTM3LDggKzEzOSw2IEBACiAJCQkJCXBlcnJvcihjZS0+bmFtZSk7CiAJCQkJCWNvbnRpbnVlOwogCQkJCX0KLQkJCQlpZiAoc2lsZW50X29uX3JlbW92ZWQpCi0JCQkJCWNvbnRpbnVlOwogCQkJCXd0X21vZGUgPSAwOwogCQkJfQogCQkJZHBhdGgtPm1vZGUgPSB3dF9tb2RlOwpAQCAtMjA0LDggKzIwNCw2IEBACiAJCQkJcGVycm9yKGNlLT5uYW1lKTsKIAkJCQljb250aW51ZTsKIAkJCX0KLQkJCWlmIChzaWxlbnRfb25fcmVtb3ZlZCkKLQkJCQljb250aW51ZTsKIAkJCWRpZmZfYWRkcmVtb3ZlKCZyZXZzLT5kaWZmb3B0LCAnLScsIGNlLT5jZV9tb2RlLAogCQkJCSAgICAgICBjZS0+c2hhMSwgIWlzX251bGxfc2hhMShjZS0+c2hhMSksCiAJCQkJICAgICAgIGNlLT5uYW1lLCAwKTsKQEAgLTQ3Niw3ICs0NzQsNiBAQAogCW9wdHMuZHN0X2luZGV4ID0gTlVMTDsKIAlvcHRzLnBhdGhzcGVjID0gJnJldnMtPmRpZmZvcHQucGF0aHNwZWM7CiAJb3B0cy5wYXRoc3BlYy0+cmVjdXJzaXZlID0gMTsKLQlvcHRzLnBhdGhzcGVjLT5tYXhfZGVwdGggPSAtMTsKIAogCWluaXRfdHJlZV9kZXNjKCZ0LCB0cmVlLT5idWZmZXIsIHRyZWUtPnNpemUpOwogCXJldHVybiB1bnBhY2tfdHJlZXMoMSwgJnQsICZvcHRzKTsKQEAgLTUwMiw3ICs0OTksNyBAQAogCXN0cnVjdCByZXZfaW5mbyByZXZzOwogCiAJaW5pdF9yZXZpc2lvbnMoJnJldnMsIE5VTEwpOwotCWluaXRfcGF0aHNwZWMoJnJldnMucHJ1bmVfZGF0YSwgb3B0LT5wYXRoc3BlYy5yYXcpOworCWNvcHlfcGF0aHNwZWMoJnJldnMucHJ1bmVfZGF0YSwgJm9wdC0+cGF0aHNwZWMpOwogCXJldnMuZGlmZm9wdCA9ICpvcHQ7CiAKIAlpZiAoZGlmZl9jYWNoZSgmcmV2cywgdHJlZV9zaGExLCBOVUxMLCAxKSkKZGlmZiAtLWdpdCBhL2RpZmYtbm8taW5kZXguYyBiL2RpZmYtbm8taW5kZXguYwppbmRleCBlNjZmZGYzLi4zM2U1OTgyIDEwMDY0NAotLS0gYS9kaWZmLW5vLWluZGV4LmMKKysrIGIvZGlmZi1uby1pbmRleC5jCkBAIC0xODMsNDkgKzE4MywxOSBAQAogCiB2b2lkIGRpZmZfbm9faW5kZXgoc3RydWN0IHJldl9pbmZvICpyZXZzLAogCQkgICBpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsCi0JCSAgIGludCBub25naXQsIGNvbnN0IGNoYXIgKnByZWZpeCkKKwkJICAgY29uc3QgY2hhciAqcHJlZml4KQogewogCWludCBpLCBwcmVmaXhsZW47Ci0JaW50IG5vX2luZGV4ID0gMDsKLQl1bnNpZ25lZCBvcHRpb25zID0gMDsKKwl1bnNpZ25lZCBkZXByZWNhdGVkX3Nob3dfZGlmZl9xX29wdGlvbl91c2VkID0gMDsKIAljb25zdCBjaGFyICpwYXRoc1syXTsKIAotCS8qIFdlcmUgd2UgYXNrZWQgdG8gZG8gLS1uby1pbmRleCBleHBsaWNpdGx5PyAqLwotCWZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspIHsKLQkJaWYgKCFzdHJjbXAoYXJndltpXSwgIi0tIikpIHsKLQkJCWkrKzsKLQkJCWJyZWFrOwotCQl9Ci0JCWlmICghc3RyY21wKGFyZ3ZbaV0sICItLW5vLWluZGV4IikpCi0JCQlub19pbmRleCA9IDE7Ci0JCWlmIChhcmd2W2ldWzBdICE9ICctJykKLQkJCWJyZWFrOwotCX0KLQotCWlmICghbm9faW5kZXggJiYgIW5vbmdpdCkgewotCQkvKgotCQkgKiBJbnNpZGUgYSBnaXQgcmVwb3NpdG9yeSwgd2l0aG91dCAtLW5vLWluZGV4LiAgT25seQotCQkgKiB3aGVuIGEgcGF0aCBvdXRzaWRlIHRoZSByZXBvc2l0b3J5IGlzIGdpdmVuLAotCQkgKiBlLmcuICJnaXQgZGlmZiAvdmFyL3RtcC9bMTJdIiwgb3IgImdpdCBkaWZmCi0JCSAqIE1ha2VmaWxlIC92YXIvdG1wL01ha2VmaWxlIiwgYWxsb3cgaXQgdG8gYmUgdXNlZCBhcwotCQkgKiBhIGNvbG91cmZ1bCAiZGlmZiIgcmVwbGFjZW1lbnQuCi0JCSAqLwotCQlpZiAoKGFyZ2MgIT0gaSArIDIpIHx8Ci0JCSAgICAocGF0aF9pbnNpZGVfcmVwbyhwcmVmaXgsIGFyZ3ZbaV0pICYmCi0JCSAgICAgcGF0aF9pbnNpZGVfcmVwbyhwcmVmaXgsIGFyZ3ZbaSsxXSkpKQotCQkJcmV0dXJuOwotCX0KLQlpZiAoYXJnYyAhPSBpICsgMikKLQkJdXNhZ2VmKCJnaXQgZGlmZiAlcyA8cGF0aD4gPHBhdGg+IiwKLQkJICAgICAgIG5vX2luZGV4ID8gIi0tbm8taW5kZXgiIDogIlstLW5vLWluZGV4XSIpOwotCiAJZGlmZl9zZXR1cCgmcmV2cy0+ZGlmZm9wdCk7CiAJZm9yIChpID0gMTsgaSA8IGFyZ2MgLSAyOyApIHsKIAkJaW50IGo7CiAJCWlmICghc3RyY21wKGFyZ3ZbaV0sICItLW5vLWluZGV4IikpCiAJCQlpKys7CiAJCWVsc2UgaWYgKCFzdHJjbXAoYXJndltpXSwgIi1xIikpIHsKLQkJCW9wdGlvbnMgfD0gRElGRl9TSUxFTlRfT05fUkVNT1ZFRDsKKwkJCWRlcHJlY2F0ZWRfc2hvd19kaWZmX3Ffb3B0aW9uX3VzZWQgPSAxOwogCQkJaSsrOwogCQl9CiAJCWVsc2UgaWYgKCFzdHJjbXAoYXJndltpXSwgIi0tIikpCkBAIC0yNjAsNiArMjMwLDkgQEAKIAlyZXZzLT5tYXhfY291bnQgPSAtMjsKIAlkaWZmX3NldHVwX2RvbmUoJnJldnMtPmRpZmZvcHQpOwogCisJaWYgKGRlcHJlY2F0ZWRfc2hvd19kaWZmX3Ffb3B0aW9uX3VzZWQpCisJCWhhbmRsZV9kZXByZWNhdGVkX3Nob3dfZGlmZl9xKCZyZXZzLT5kaWZmb3B0KTsKKwogCXNldHVwX2RpZmZfcGFnZXIoJnJldnMtPmRpZmZvcHQpOwogCURJRkZfT1BUX1NFVCgmcmV2cy0+ZGlmZm9wdCwgRVhJVF9XSVRIX1NUQVRVUyk7CiAKZGlmZiAtLWdpdCBhL2RpZmYuYyBiL2RpZmYuYwppbmRleCAyNjYxMTJjLi44ZTRhNmE5IDEwMDY0NAotLS0gYS9kaWZmLmMKKysrIGIvZGlmZi5jCkBAIC0zMCw2ICszMCw3IEBACiBzdGF0aWMgaW50IGRpZmZfY29udGV4dF9kZWZhdWx0ID0gMzsKIHN0YXRpYyBjb25zdCBjaGFyICpkaWZmX3dvcmRfcmVnZXhfY2ZnOwogc3RhdGljIGNvbnN0IGNoYXIgKmV4dGVybmFsX2RpZmZfY21kX2NmZzsKK3N0YXRpYyBjb25zdCBjaGFyICpkaWZmX29yZGVyX2ZpbGVfY2ZnOwogaW50IGRpZmZfYXV0b19yZWZyZXNoX2luZGV4ID0gMTsKIHN0YXRpYyBpbnQgZGlmZl9tbmVtb25pY19wcmVmaXg7CiBzdGF0aWMgaW50IGRpZmZfbm9fcHJlZml4OwpAQCAtMjAxLDYgKzIwMiw4IEBACiAJCXJldHVybiBnaXRfY29uZmlnX3N0cmluZygmZXh0ZXJuYWxfZGlmZl9jbWRfY2ZnLCB2YXIsIHZhbHVlKTsKIAlpZiAoIXN0cmNtcCh2YXIsICJkaWZmLndvcmRyZWdleCIpKQogCQlyZXR1cm4gZ2l0X2NvbmZpZ19zdHJpbmcoJmRpZmZfd29yZF9yZWdleF9jZmcsIHZhciwgdmFsdWUpOworCWlmICghc3RyY21wKHZhciwgImRpZmYub3JkZXJmaWxlIikpCisJCXJldHVybiBnaXRfY29uZmlnX3BhdGhuYW1lKCZkaWZmX29yZGVyX2ZpbGVfY2ZnLCB2YXIsIHZhbHVlKTsKIAogCWlmICghc3RyY21wKHZhciwgImRpZmYuaWdub3Jlc3VibW9kdWxlcyIpKQogCQloYW5kbGVfaWdub3JlX3N1Ym1vZHVsZXNfYXJnKCZkZWZhdWx0X2RpZmZfb3B0aW9ucywgdmFsdWUpOwpAQCAtMjM1LDcgKzIzOCw3IEBACiAJaWYgKHVzZXJkaWZmX2NvbmZpZyh2YXIsIHZhbHVlKSA8IDApCiAJCXJldHVybiAtMTsKIAotCWlmICghcHJlZml4Y21wKHZhciwgImRpZmYuY29sb3IuIikgfHwgIXByZWZpeGNtcCh2YXIsICJjb2xvci5kaWZmLiIpKSB7CisJaWYgKHN0YXJ0c193aXRoKHZhciwgImRpZmYuY29sb3IuIikgfHwgc3RhcnRzX3dpdGgodmFyLCAiY29sb3IuZGlmZi4iKSkgewogCQlpbnQgc2xvdCA9IHBhcnNlX2RpZmZfY29sb3Jfc2xvdCh2YXIsIDExKTsKIAkJaWYgKHNsb3QgPCAwKQogCQkJcmV0dXJuIDA7CkBAIC0yNjQsNyArMjY3LDcgQEAKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKCFwcmVmaXhjbXAodmFyLCAic3VibW9kdWxlLiIpKQorCWlmIChzdGFydHNfd2l0aCh2YXIsICJzdWJtb2R1bGUuIikpCiAJCXJldHVybiBwYXJzZV9zdWJtb2R1bGVfY29uZmlnX29wdGlvbih2YXIsIHZhbHVlKTsKIAogCXJldHVybiBnaXRfZGVmYXVsdF9jb25maWcodmFyLCB2YWx1ZSwgY2IpOwpAQCAtNjY5LDcgKzY3Miw3IEBACiAJbWVtc2V0KCZlY2JkYXRhLCAwLCBzaXplb2YoZWNiZGF0YSkpOwogCWVjYmRhdGEuY29sb3JfZGlmZiA9IHdhbnRfY29sb3Ioby0+dXNlX2NvbG9yKTsKIAllY2JkYXRhLmZvdW5kX2NoYW5nZXNwID0gJm8tPmZvdW5kX2NoYW5nZXM7Ci0JZWNiZGF0YS53c19ydWxlID0gd2hpdGVzcGFjZV9ydWxlKG5hbWVfYiA/IG5hbWVfYiA6IG5hbWVfYSk7CisJZWNiZGF0YS53c19ydWxlID0gd2hpdGVzcGFjZV9ydWxlKG5hbWVfYik7CiAJZWNiZGF0YS5vcHQgPSBvOwogCWlmIChlY2JkYXRhLndzX3J1bGUgJiBXU19CTEFOS19BVF9FT0YpIHsKIAkJbW1maWxlX3QgbWYxLCBtZjI7CkBAIC0xMjE1LDcgKzEyMTgsNyBAQAogCQkJZGlmZl93b3Jkc19hcHBlbmQobGluZSwgbGVuLAogCQkJCQkgICZlY2JkYXRhLT5kaWZmX3dvcmRzLT5wbHVzKTsKIAkJCXJldHVybjsKLQkJfSBlbHNlIGlmICghcHJlZml4Y21wKGxpbmUsICJcXCAiKSkgeworCQl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGxpbmUsICJcXCAiKSkgewogCQkJLyoKIAkJCSAqIEVhdCB0aGUgIm5vIG5ld2xpbmUgYXQgZW9mIiBtYXJrZXIgYXMgaWYgd2UKIAkJCSAqIHNhdyBhICIrIiBvciAiLSIgbGluZSB3aXRoIG5vdGhpbmcgb24gaXQsCkBAIC0yMjUyLDcgKzIyNTUsNyBAQAogCQkJKCF0d28tPm1vZGUgfHwgU19JU0dJVExJTksodHdvLT5tb2RlKSkpIHsKIAkJY29uc3QgY2hhciAqZGVsID0gZGlmZl9nZXRfY29sb3Jfb3B0KG8sIERJRkZfRklMRV9PTEQpOwogCQljb25zdCBjaGFyICphZGQgPSBkaWZmX2dldF9jb2xvcl9vcHQobywgRElGRl9GSUxFX05FVyk7Ci0JCXNob3dfc3VibW9kdWxlX3N1bW1hcnkoby0+ZmlsZSwgb25lID8gb25lLT5wYXRoIDogdHdvLT5wYXRoLAorCQlzaG93X3N1Ym1vZHVsZV9zdW1tYXJ5KG8tPmZpbGUsIG9uZS0+cGF0aCA/IG9uZS0+cGF0aCA6IHR3by0+cGF0aCwKIAkJCQlsaW5lX3ByZWZpeCwKIAkJCQlvbmUtPnNoYTEsIHR3by0+c2hhMSwgdHdvLT5kaXJ0eV9zdWJtb2R1bGUsCiAJCQkJbWV0YSwgZGVsLCBhZGQsIHJlc2V0KTsKQEAgLTIzNzIsNyArMjM3NSw3IEBACiAJCWVjYmRhdGEubGFiZWxfcGF0aCA9IGxibDsKIAkJZWNiZGF0YS5jb2xvcl9kaWZmID0gd2FudF9jb2xvcihvLT51c2VfY29sb3IpOwogCQllY2JkYXRhLmZvdW5kX2NoYW5nZXNwID0gJm8tPmZvdW5kX2NoYW5nZXM7Ci0JCWVjYmRhdGEud3NfcnVsZSA9IHdoaXRlc3BhY2VfcnVsZShuYW1lX2IgPyBuYW1lX2IgOiBuYW1lX2EpOworCQllY2JkYXRhLndzX3J1bGUgPSB3aGl0ZXNwYWNlX3J1bGUobmFtZV9iKTsKIAkJaWYgKGVjYmRhdGEud3NfcnVsZSAmIFdTX0JMQU5LX0FUX0VPRikKIAkJCWNoZWNrX2JsYW5rX2F0X2VvZigmbWYxLCAmbWYyLCAmZWNiZGF0YSk7CiAJCWVjYmRhdGEub3B0ID0gbzsKQEAgLTIzODcsOSArMjM5MCw5IEBACiAJCQl4ZGlmZl9zZXRfZmluZF9mdW5jKCZ4ZWNmZywgcGUtPnBhdHRlcm4sIHBlLT5jZmxhZ3MpOwogCQlpZiAoIWRpZmZvcHRzKQogCQkJOwotCQllbHNlIGlmICghcHJlZml4Y21wKGRpZmZvcHRzLCAiLS11bmlmaWVkPSIpKQorCQllbHNlIGlmIChzdGFydHNfd2l0aChkaWZmb3B0cywgIi0tdW5pZmllZD0iKSkKIAkJCXhlY2ZnLmN0eGxlbiA9IHN0cnRvdWwoZGlmZm9wdHMgKyAxMCwgTlVMTCwgMTApOwotCQllbHNlIGlmICghcHJlZml4Y21wKGRpZmZvcHRzLCAiLXUiKSkKKwkJZWxzZSBpZiAoc3RhcnRzX3dpdGgoZGlmZm9wdHMsICItdSIpKQogCQkJeGVjZmcuY3R4bGVuID0gc3RydG91bChkaWZmb3B0cyArIDIsIE5VTEwsIDEwKTsKIAkJaWYgKG8tPndvcmRfZGlmZikKIAkJCWluaXRfZGlmZl93b3Jkc19kYXRhKCZlY2JkYXRhLCBvLCBvbmUsIHR3byk7CkBAIC0yODk5LDExICsyOTAyLDE2IEBACiAJCQkgICAgICBzdHJ1Y3QgZGlmZl9maWxlc3BlYyAqb25lLAogCQkJICAgICAgc3RydWN0IGRpZmZfZmlsZXNwZWMgKnR3bywKIAkJCSAgICAgIGNvbnN0IGNoYXIgKnhmcm1fbXNnLAotCQkJICAgICAgaW50IGNvbXBsZXRlX3Jld3JpdGUpCisJCQkgICAgICBpbnQgY29tcGxldGVfcmV3cml0ZSwKKwkJCSAgICAgIHN0cnVjdCBkaWZmX29wdGlvbnMgKm8pCiB7CiAJY29uc3QgY2hhciAqc3Bhd25fYXJnWzEwXTsKIAlpbnQgcmV0dmFsOwogCWNvbnN0IGNoYXIgKiphcmcgPSAmc3Bhd25fYXJnWzBdOworCXN0cnVjdCBkaWZmX3F1ZXVlX3N0cnVjdCAqcSA9ICZkaWZmX3F1ZXVlZF9kaWZmOworCWNvbnN0IGNoYXIgKmVudlszXSA9IHsgTlVMTCB9OworCWNoYXIgZW52X2NvdW50ZXJbNTBdOworCWNoYXIgZW52X3RvdGFsWzUwXTsKIAogCWlmIChvbmUgJiYgdHdvKSB7CiAJCXN0cnVjdCBkaWZmX3RlbXBmaWxlICp0ZW1wX29uZSwgKnRlbXBfdHdvOwpAQCAtMjkyOCw3ICsyOTM2LDE0IEBACiAJfQogCSphcmcgPSBOVUxMOwogCWZmbHVzaChOVUxMKTsKLQlyZXR2YWwgPSBydW5fY29tbWFuZF92X29wdChzcGF3bl9hcmcsIFJVTl9VU0lOR19TSEVMTCk7CisKKwllbnZbMF0gPSBlbnZfY291bnRlcjsKKwlzbnByaW50ZihlbnZfY291bnRlciwgc2l6ZW9mKGVudl9jb3VudGVyKSwgIkdJVF9ESUZGX1BBVEhfQ09VTlRFUj0lZCIsCisJCSArK28tPmRpZmZfcGF0aF9jb3VudGVyKTsKKwllbnZbMV0gPSBlbnZfdG90YWw7CisJc25wcmludGYoZW52X3RvdGFsLCBzaXplb2YoZW52X3RvdGFsKSwgIkdJVF9ESUZGX1BBVEhfVE9UQUw9JWQiLCBxLT5ucik7CisKKwlyZXR2YWwgPSBydW5fY29tbWFuZF92X29wdF9jZF9lbnYoc3Bhd25fYXJnLCBSVU5fVVNJTkdfU0hFTEwsIE5VTEwsIGVudik7CiAJcmVtb3ZlX3RlbXBmaWxlKCk7CiAJaWYgKHJldHZhbCkgewogCQlmcHJpbnRmKHN0ZGVyciwgImV4dGVybmFsIGRpZmYgZGllZCwgc3RvcHBpbmcgYXQgJXMuXG4iLCBuYW1lKTsKQEAgLTMwNDIsNyArMzA1Nyw3IEBACiAKIAlpZiAocGdtKSB7CiAJCXJ1bl9leHRlcm5hbF9kaWZmKHBnbSwgbmFtZSwgb3RoZXIsIG9uZSwgdHdvLCB4ZnJtX21zZywKLQkJCQkgIGNvbXBsZXRlX3Jld3JpdGUpOworCQkJCSAgY29tcGxldGVfcmV3cml0ZSwgbyk7CiAJCXJldHVybjsKIAl9CiAJaWYgKG9uZSAmJiB0d28pCkBAIC0zMjA3LDYgKzMyMjIsOCBAQAogCW9wdGlvbnMtPmRldGVjdF9yZW5hbWUgPSBkaWZmX2RldGVjdF9yZW5hbWVfZGVmYXVsdDsKIAlvcHRpb25zLT54ZGxfb3B0cyB8PSBkaWZmX2FsZ29yaXRobTsKIAorCW9wdGlvbnMtPm9yZGVyZmlsZSA9IGRpZmZfb3JkZXJfZmlsZV9jZmc7CisKIAlpZiAoZGlmZl9ub19wcmVmaXgpIHsKIAkJb3B0aW9ucy0+YV9wcmVmaXggPSBvcHRpb25zLT5iX3ByZWZpeCA9ICIiOwogCX0gZWxzZSBpZiAoIWRpZmZfbW5lbW9uaWNfcHJlZml4KSB7CkBAIC0zMjE5LDYgKzMyMzYsOSBAQAogewogCWludCBjb3VudCA9IDA7CiAKKwlpZiAob3B0aW9ucy0+c2V0X2RlZmF1bHQpCisJCW9wdGlvbnMtPnNldF9kZWZhdWx0KG9wdGlvbnMpOworCiAJaWYgKG9wdGlvbnMtPm91dHB1dF9mb3JtYXQgJiBESUZGX0ZPUk1BVF9OQU1FKQogCQljb3VudCsrOwogCWlmIChvcHRpb25zLT5vdXRwdXRfZm9ybWF0ICYgRElGRl9GT1JNQVRfTkFNRV9TVEFUVVMpCkBAIC0zMzE0LDYgKzMzMzQsOCBAQAogCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0ID0gRElGRl9GT1JNQVRfTk9fT1VUUFVUOwogCQlESUZGX09QVF9TRVQob3B0aW9ucywgRVhJVF9XSVRIX1NUQVRVUyk7CiAJfQorCisJb3B0aW9ucy0+ZGlmZl9wYXRoX2NvdW50ZXIgPSAwOwogfQogCiBzdGF0aWMgaW50IG9wdF9hcmcoY29uc3QgY2hhciAqYXJnLCBpbnQgYXJnX3Nob3J0LCBjb25zdCBjaGFyICphcmdfbG9uZywgaW50ICp2YWwpCkBAIC0zMzg4LDEwICszNDEwLDEwIEBACiAJaWYgKGFyZ1swXSAhPSAnLScgfHwgYXJnWzFdICE9ICctJykKIAkJcmV0dXJuIDA7CiAJYXJnICs9IHN0cmxlbigiLS0iKTsKLQlpZiAocHJlZml4Y21wKGFyZywgb3B0KSkKKwlpZiAoIXN0YXJ0c193aXRoKGFyZywgb3B0KSkKIAkJcmV0dXJuIDA7CiAJYXJnICs9IHN0cmxlbihvcHQpOwotCWlmICgqYXJnID09ICc9JykgeyAvKiBzdGlja2VkIGZvcm06IC0tb3B0aW9uPXZhbHVlICovCisJaWYgKCphcmcgPT0gJz0nKSB7IC8qIHN0dWNrIGZvcm06IC0tb3B0aW9uPXZhbHVlICovCiAJCSpvcHRhcmcgPSBhcmcgKyAxOwogCQlyZXR1cm4gMTsKIAl9CkBAIC0zNDE5LDcgKzM0NDEsNyBAQAogCiAJc3dpdGNoICgqYXJnKSB7CiAJY2FzZSAnLSc6Ci0JCWlmICghcHJlZml4Y21wKGFyZywgIi13aWR0aCIpKSB7CisJCWlmIChzdGFydHNfd2l0aChhcmcsICItd2lkdGgiKSkgewogCQkJYXJnICs9IHN0cmxlbigiLXdpZHRoIik7CiAJCQlpZiAoKmFyZyA9PSAnPScpCiAJCQkJd2lkdGggPSBzdHJ0b3VsKGFyZyArIDEsICZlbmQsIDEwKTsKQEAgLTM0MjksNyArMzQ1MSw3IEBACiAJCQkJd2lkdGggPSBzdHJ0b3VsKGF2WzFdLCAmZW5kLCAxMCk7CiAJCQkJYXJnY291bnQgPSAyOwogCQkJfQotCQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLW5hbWUtd2lkdGgiKSkgeworCQl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGFyZywgIi1uYW1lLXdpZHRoIikpIHsKIAkJCWFyZyArPSBzdHJsZW4oIi1uYW1lLXdpZHRoIik7CiAJCQlpZiAoKmFyZyA9PSAnPScpCiAJCQkJbmFtZV93aWR0aCA9IHN0cnRvdWwoYXJnICsgMSwgJmVuZCwgMTApOwpAQCAtMzQzOSw3ICszNDYxLDcgQEAKIAkJCQluYW1lX3dpZHRoID0gc3RydG91bChhdlsxXSwgJmVuZCwgMTApOwogCQkJCWFyZ2NvdW50ID0gMjsKIAkJCX0KLQkJfSBlbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi1ncmFwaC13aWR0aCIpKSB7CisJCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLWdyYXBoLXdpZHRoIikpIHsKIAkJCWFyZyArPSBzdHJsZW4oIi1ncmFwaC13aWR0aCIpOwogCQkJaWYgKCphcmcgPT0gJz0nKQogCQkJCWdyYXBoX3dpZHRoID0gc3RydG91bChhcmcgKyAxLCAmZW5kLCAxMCk7CkBAIC0zNDQ5LDcgKzM0NzEsNyBAQAogCQkJCWdyYXBoX3dpZHRoID0gc3RydG91bChhdlsxXSwgJmVuZCwgMTApOwogCQkJCWFyZ2NvdW50ID0gMjsKIAkJCX0KLQkJfSBlbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi1jb3VudCIpKSB7CisJCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLWNvdW50IikpIHsKIAkJCWFyZyArPSBzdHJsZW4oIi1jb3VudCIpOwogCQkJaWYgKCphcmcgPT0gJz0nKQogCQkJCWNvdW50ID0gc3RydG91bChhcmcgKyAxLCAmZW5kLCAxMCk7CkBAIC0zNTAzLDYgKzM1MjUsODggQEAKIAlyZXR1cm4gMTsKIH0KIAorc3RhdGljIGNvbnN0IGNoYXIgZGlmZl9zdGF0dXNfbGV0dGVyc1tdID0geworCURJRkZfU1RBVFVTX0FEREVELAorCURJRkZfU1RBVFVTX0NPUElFRCwKKwlESUZGX1NUQVRVU19ERUxFVEVELAorCURJRkZfU1RBVFVTX01PRElGSUVELAorCURJRkZfU1RBVFVTX1JFTkFNRUQsCisJRElGRl9TVEFUVVNfVFlQRV9DSEFOR0VELAorCURJRkZfU1RBVFVTX1VOS05PV04sCisJRElGRl9TVEFUVVNfVU5NRVJHRUQsCisJRElGRl9TVEFUVVNfRklMVEVSX0FPTiwKKwlESUZGX1NUQVRVU19GSUxURVJfQlJPS0VOLAorCSdcMCcsCit9OworCitzdGF0aWMgdW5zaWduZWQgaW50IGZpbHRlcl9iaXRbJ1onICsgMV07CisKK3N0YXRpYyB2b2lkIHByZXBhcmVfZmlsdGVyX2JpdHModm9pZCkKK3sKKwlpbnQgaTsKKworCWlmICghZmlsdGVyX2JpdFtESUZGX1NUQVRVU19BRERFRF0pIHsKKwkJZm9yIChpID0gMDsgZGlmZl9zdGF0dXNfbGV0dGVyc1tpXTsgaSsrKQorCQkJZmlsdGVyX2JpdFsoaW50KSBkaWZmX3N0YXR1c19sZXR0ZXJzW2ldXSA9ICgxIDw8IGkpOworCX0KK30KKworc3RhdGljIHVuc2lnbmVkIGZpbHRlcl9iaXRfdHN0KGNoYXIgc3RhdHVzLCBjb25zdCBzdHJ1Y3QgZGlmZl9vcHRpb25zICpvcHQpCit7CisJcmV0dXJuIG9wdC0+ZmlsdGVyICYgZmlsdGVyX2JpdFsoaW50KSBzdGF0dXNdOworfQorCitzdGF0aWMgaW50IHBhcnNlX2RpZmZfZmlsdGVyX29wdChjb25zdCBjaGFyICpvcHRhcmcsIHN0cnVjdCBkaWZmX29wdGlvbnMgKm9wdCkKK3sKKwlpbnQgaSwgb3B0Y2g7CisKKwlwcmVwYXJlX2ZpbHRlcl9iaXRzKCk7CisKKwkvKgorCSAqIElmIHRoZXJlIGlzIGEgbmVnYXRpb24gZS5nLiAnZCcgaW4gdGhlIGlucHV0LCBhbmQgd2UgaGF2ZW4ndAorCSAqIGluaXRpYWxpemVkIHRoZSBmaWx0ZXIgZmllbGQgd2l0aCBhbm90aGVyIC0tZGlmZi1maWx0ZXIsIHN0YXJ0CisJICogZnJvbSBmdWxsIHNldCBvZiBiaXRzLCBleGNlcHQgZm9yIEFPTi4KKwkgKi8KKwlpZiAoIW9wdC0+ZmlsdGVyKSB7CisJCWZvciAoaSA9IDA7IChvcHRjaCA9IG9wdGFyZ1tpXSkgIT0gJ1wwJzsgaSsrKSB7CisJCQlpZiAob3B0Y2ggPCAnYScgfHwgJ3onIDwgb3B0Y2gpCisJCQkJY29udGludWU7CisJCQlvcHQtPmZpbHRlciA9ICgxIDw8IChBUlJBWV9TSVpFKGRpZmZfc3RhdHVzX2xldHRlcnMpIC0gMSkpIC0gMTsKKwkJCW9wdC0+ZmlsdGVyICY9IH5maWx0ZXJfYml0W0RJRkZfU1RBVFVTX0ZJTFRFUl9BT05dOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlmb3IgKGkgPSAwOyAob3B0Y2ggPSBvcHRhcmdbaV0pICE9ICdcMCc7IGkrKykgeworCQl1bnNpZ25lZCBpbnQgYml0OworCQlpbnQgbmVnYXRlOworCisJCWlmICgnYScgPD0gb3B0Y2ggJiYgb3B0Y2ggPD0gJ3onKSB7CisJCQluZWdhdGUgPSAxOworCQkJb3B0Y2ggPSB0b3VwcGVyKG9wdGNoKTsKKwkJfSBlbHNlIHsKKwkJCW5lZ2F0ZSA9IDA7CisJCX0KKworCQliaXQgPSAoMCA8PSBvcHRjaCAmJiBvcHRjaCA8PSAnWicpID8gZmlsdGVyX2JpdFtvcHRjaF0gOiAwOworCQlpZiAoIWJpdCkKKwkJCXJldHVybiBvcHRhcmdbaV07CisJCWlmIChuZWdhdGUpCisJCQlvcHQtPmZpbHRlciAmPSB+Yml0OworCQllbHNlCisJCQlvcHQtPmZpbHRlciB8PSBiaXQ7CisJfQorCXJldHVybiAwOworfQorCisvKiBVc2VkIG9ubHkgYnkgImRpZmYtZmlsZXMiIGFuZCAiZGlmZiAtLW5vLWluZGV4IiAqLwordm9pZCBoYW5kbGVfZGVwcmVjYXRlZF9zaG93X2RpZmZfcShzdHJ1Y3QgZGlmZl9vcHRpb25zICpvcHQpCit7CisJd2FybmluZygiJ2RpZmYgLXEnIGFuZCAnZGlmZi1maWxlcyAtcScgYXJlIGRlcHJlY2F0ZWQuIik7CisJd2FybmluZygiVXNlICdkaWZmIC0tZGlmZi1maWx0ZXI9ZCcgaW5zdGVhZCB0byBpZ25vcmUgZGVsZXRlZCBmaWxlcGFpcnMuIik7CisJcGFyc2VfZGlmZl9maWx0ZXJfb3B0KCJkIiwgb3B0KTsKK30KKwogc3RhdGljIHZvaWQgZW5hYmxlX3BhdGNoX291dHB1dChpbnQgKmZtdCkgewogCSpmbXQgJj0gfkRJRkZfRk9STUFUX05PX09VVFBVVDsKIAkqZm10IHw9IERJRkZfRk9STUFUX1BBVENIOwpAQCAtMzUyOSwxNSArMzYzMywxNSBAQAogCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX1NIT1JUU1RBVDsKIAllbHNlIGlmICghc3RyY21wKGFyZywgIi1YIikgfHwgIXN0cmNtcChhcmcsICItLWRpcnN0YXQiKSkKIAkJcmV0dXJuIHBhcnNlX2RpcnN0YXRfb3B0KG9wdGlvbnMsICIiKTsKLQllbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi1YIikpCisJZWxzZSBpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLVgiKSkKIAkJcmV0dXJuIHBhcnNlX2RpcnN0YXRfb3B0KG9wdGlvbnMsIGFyZyArIDIpOwotCWVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1kaXJzdGF0PSIpKQorCWVsc2UgaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tZGlyc3RhdD0iKSkKIAkJcmV0dXJuIHBhcnNlX2RpcnN0YXRfb3B0KG9wdGlvbnMsIGFyZyArIDEwKTsKIAllbHNlIGlmICghc3RyY21wKGFyZywgIi0tY3VtdWxhdGl2ZSIpKQogCQlyZXR1cm4gcGFyc2VfZGlyc3RhdF9vcHQob3B0aW9ucywgImN1bXVsYXRpdmUiKTsKIAllbHNlIGlmICghc3RyY21wKGFyZywgIi0tZGlyc3RhdC1ieS1maWxlIikpCiAJCXJldHVybiBwYXJzZV9kaXJzdGF0X29wdChvcHRpb25zLCAiZmlsZXMiKTsKLQllbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0tZGlyc3RhdC1ieS1maWxlPSIpKSB7CisJZWxzZSBpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1kaXJzdGF0LWJ5LWZpbGU9IikpIHsKIAkJcGFyc2VfZGlyc3RhdF9vcHQob3B0aW9ucywgImZpbGVzIik7CiAJCXJldHVybiBwYXJzZV9kaXJzdGF0X29wdChvcHRpb25zLCBhcmcgKyAxOCk7CiAJfQpAQCAtMzU1NCwxNyArMzY1OCwxNyBAQAogCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX05BTUVfU1RBVFVTOwogCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLXMiKSB8fCAhc3RyY21wKGFyZywgIi0tbm8tcGF0Y2giKSkKIAkJb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCB8PSBESUZGX0ZPUk1BVF9OT19PVVRQVVQ7Ci0JZWxzZSBpZiAoIXByZWZpeGNtcChhcmcsICItLXN0YXQiKSkKKwllbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLXN0YXQiKSkKIAkJLyogLS1zdGF0LCAtLXN0YXQtd2lkdGgsIC0tc3RhdC1uYW1lLXdpZHRoLCBvciAtLXN0YXQtY291bnQgKi8KIAkJcmV0dXJuIHN0YXRfb3B0KG9wdGlvbnMsIGF2KTsKIAogCS8qIHJlbmFtZXMgb3B0aW9ucyAqLwotCWVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLUIiKSB8fCAhcHJlZml4Y21wKGFyZywgIi0tYnJlYWstcmV3cml0ZXM9IikgfHwKKwllbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItQiIpIHx8IHN0YXJ0c193aXRoKGFyZywgIi0tYnJlYWstcmV3cml0ZXM9IikgfHwKIAkJICFzdHJjbXAoYXJnLCAiLS1icmVhay1yZXdyaXRlcyIpKSB7CiAJCWlmICgob3B0aW9ucy0+YnJlYWtfb3B0ID0gZGlmZl9zY29yZW9wdF9wYXJzZShhcmcpKSA9PSAtMSkKIAkJCXJldHVybiBlcnJvcigiaW52YWxpZCBhcmd1bWVudCB0byAtQjogJXMiLCBhcmcrMik7CiAJfQotCWVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLU0iKSB8fCAhcHJlZml4Y21wKGFyZywgIi0tZmluZC1yZW5hbWVzPSIpIHx8CisJZWxzZSBpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLU0iKSB8fCBzdGFydHNfd2l0aChhcmcsICItLWZpbmQtcmVuYW1lcz0iKSB8fAogCQkgIXN0cmNtcChhcmcsICItLWZpbmQtcmVuYW1lcyIpKSB7CiAJCWlmICgob3B0aW9ucy0+cmVuYW1lX3Njb3JlID0gZGlmZl9zY29yZW9wdF9wYXJzZShhcmcpKSA9PSAtMSkKIAkJCXJldHVybiBlcnJvcigiaW52YWxpZCBhcmd1bWVudCB0byAtTTogJXMiLCBhcmcrMik7CkBAIC0zNTczLDcgKzM2NzcsNyBAQAogCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLUQiKSB8fCAhc3RyY21wKGFyZywgIi0taXJyZXZlcnNpYmxlLWRlbGV0ZSIpKSB7CiAJCW9wdGlvbnMtPmlycmV2ZXJzaWJsZV9kZWxldGUgPSAxOwogCX0KLQllbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi1DIikgfHwgIXByZWZpeGNtcChhcmcsICItLWZpbmQtY29waWVzPSIpIHx8CisJZWxzZSBpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLUMiKSB8fCBzdGFydHNfd2l0aChhcmcsICItLWZpbmQtY29waWVzPSIpIHx8CiAJCSAhc3RyY21wKGFyZywgIi0tZmluZC1jb3BpZXMiKSkgewogCQlpZiAob3B0aW9ucy0+ZGV0ZWN0X3JlbmFtZSA9PSBESUZGX0RFVEVDVF9DT1BZKQogCQkJRElGRl9PUFRfU0VUKG9wdGlvbnMsIEZJTkRfQ09QSUVTX0hBUkRFUik7CkBAIC0zNTg5LDcgKzM2OTMsNyBAQAogCQlESUZGX09QVF9DTFIob3B0aW9ucywgUkVOQU1FX0VNUFRZKTsKIAllbHNlIGlmICghc3RyY21wKGFyZywgIi0tcmVsYXRpdmUiKSkKIAkJRElGRl9PUFRfU0VUKG9wdGlvbnMsIFJFTEFUSVZFX05BTUUpOwotCWVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1yZWxhdGl2ZT0iKSkgeworCWVsc2UgaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tcmVsYXRpdmU9IikpIHsKIAkJRElGRl9PUFRfU0VUKG9wdGlvbnMsIFJFTEFUSVZFX05BTUUpOwogCQlvcHRpb25zLT5wcmVmaXggPSBhcmcgKyAxMTsKIAl9CkBAIC0zNjQyLDcgKzM3NDYsNyBAQAogCQlESUZGX09QVF9DTFIob3B0aW9ucywgRk9MTE9XX1JFTkFNRVMpOwogCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1jb2xvciIpKQogCQlvcHRpb25zLT51c2VfY29sb3IgPSAxOwotCWVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1jb2xvcj0iKSkgeworCWVsc2UgaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tY29sb3I9IikpIHsKIAkJaW50IHZhbHVlID0gZ2l0X2NvbmZpZ19jb2xvcmJvb2woTlVMTCwgYXJnKzgpOwogCQlpZiAodmFsdWUgPCAwKQogCQkJcmV0dXJuIGVycm9yKCJvcHRpb24gYGNvbG9yJyBleHBlY3RzIFwiYWx3YXlzXCIsIFwiYXV0b1wiLCBvciBcIm5ldmVyXCIiKTsKQEAgLTM2NTQsNyArMzc1OCw3IEBACiAJCW9wdGlvbnMtPnVzZV9jb2xvciA9IDE7CiAJCW9wdGlvbnMtPndvcmRfZGlmZiA9IERJRkZfV09SRFNfQ09MT1I7CiAJfQotCWVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1jb2xvci13b3Jkcz0iKSkgeworCWVsc2UgaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tY29sb3Itd29yZHM9IikpIHsKIAkJb3B0aW9ucy0+dXNlX2NvbG9yID0gMTsKIAkJb3B0aW9ucy0+d29yZF9kaWZmID0gRElGRl9XT1JEU19DT0xPUjsKIAkJb3B0aW9ucy0+d29yZF9yZWdleCA9IGFyZyArIDE0OwpAQCAtMzY2Myw3ICszNzY3LDcgQEAKIAkJaWYgKG9wdGlvbnMtPndvcmRfZGlmZiA9PSBESUZGX1dPUkRTX05PTkUpCiAJCQlvcHRpb25zLT53b3JkX2RpZmYgPSBESUZGX1dPUkRTX1BMQUlOOwogCX0KLQllbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0td29yZC1kaWZmPSIpKSB7CisJZWxzZSBpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS13b3JkLWRpZmY9IikpIHsKIAkJY29uc3QgY2hhciAqdHlwZSA9IGFyZyArIDEyOwogCQlpZiAoIXN0cmNtcCh0eXBlLCAicGxhaW4iKSkKIAkJCW9wdGlvbnMtPndvcmRfZGlmZiA9IERJRkZfV09SRFNfUExBSU47CkBAIC0zNjk5LDEyICszODAzLDEyIEBACiAJZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLWlnbm9yZS1zdWJtb2R1bGVzIikpIHsKIAkJRElGRl9PUFRfU0VUKG9wdGlvbnMsIE9WRVJSSURFX1NVQk1PRFVMRV9DT05GSUcpOwogCQloYW5kbGVfaWdub3JlX3N1Ym1vZHVsZXNfYXJnKG9wdGlvbnMsICJhbGwiKTsKLQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1pZ25vcmUtc3VibW9kdWxlcz0iKSkgeworCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1pZ25vcmUtc3VibW9kdWxlcz0iKSkgewogCQlESUZGX09QVF9TRVQob3B0aW9ucywgT1ZFUlJJREVfU1VCTU9EVUxFX0NPTkZJRyk7CiAJCWhhbmRsZV9pZ25vcmVfc3VibW9kdWxlc19hcmcob3B0aW9ucywgYXJnICsgMjApOwogCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLXN1Ym1vZHVsZSIpKQogCQlESUZGX09QVF9TRVQob3B0aW9ucywgU1VCTU9EVUxFX0xPRyk7Ci0JZWxzZSBpZiAoIXByZWZpeGNtcChhcmcsICItLXN1Ym1vZHVsZT0iKSkKKwllbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLXN1Ym1vZHVsZT0iKSkKIAkJcmV0dXJuIHBhcnNlX3N1Ym1vZHVsZV9vcHQob3B0aW9ucywgYXJnICsgMTIpOwogCiAJLyogbWlzYyBvcHRpb25zICovCkBAIC0zNzMyLDEyICszODM2LDE1IEBACiAJCXJldHVybiBhcmdjb3VudDsKIAl9CiAJZWxzZSBpZiAoKGFyZ2NvdW50ID0gcGFyc2VfbG9uZ19vcHQoImRpZmYtZmlsdGVyIiwgYXYsICZvcHRhcmcpKSkgewotCQlvcHRpb25zLT5maWx0ZXIgPSBvcHRhcmc7CisJCWludCBvZmZlbmRpbmcgPSBwYXJzZV9kaWZmX2ZpbHRlcl9vcHQob3B0YXJnLCBvcHRpb25zKTsKKwkJaWYgKG9mZmVuZGluZykKKwkJCWRpZSgidW5rbm93biBjaGFuZ2UgY2xhc3MgJyVjJyBpbiAtLWRpZmYtZmlsdGVyPSVzIiwKKwkJCSAgICBvZmZlbmRpbmcsIG9wdGFyZyk7CiAJCXJldHVybiBhcmdjb3VudDsKIAl9CiAJZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLWFiYnJldiIpKQogCQlvcHRpb25zLT5hYmJyZXYgPSBERUZBVUxUX0FCQlJFVjsKLQllbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0tYWJicmV2PSIpKSB7CisJZWxzZSBpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1hYmJyZXY9IikpIHsKIAkJb3B0aW9ucy0+YWJicmV2ID0gc3RydG91bChhcmcgKyA5LCBOVUxMLCAxMCk7CiAJCWlmIChvcHRpb25zLT5hYmJyZXYgPCBNSU5JTVVNX0FCQlJFVikKIAkJCW9wdGlvbnMtPmFiYnJldiA9IE1JTklNVU1fQUJCUkVWOwpAQCAtMzgxOSwxNSArMzkyNiwxNSBAQAogCWNtZCA9ICpvcHQrKzsKIAlpZiAoY21kID09ICctJykgewogCQkvKiBjb252ZXJ0IHRoZSBsb25nLWZvcm0gYXJndW1lbnRzIGludG8gc2hvcnQtZm9ybSB2ZXJzaW9ucyAqLwotCQlpZiAoIXByZWZpeGNtcChvcHQsICJicmVhay1yZXdyaXRlcyIpKSB7CisJCWlmIChzdGFydHNfd2l0aChvcHQsICJicmVhay1yZXdyaXRlcyIpKSB7CiAJCQlvcHQgKz0gc3RybGVuKCJicmVhay1yZXdyaXRlcyIpOwogCQkJaWYgKCpvcHQgPT0gMCB8fCAqb3B0KysgPT0gJz0nKQogCQkJCWNtZCA9ICdCJzsKLQkJfSBlbHNlIGlmICghcHJlZml4Y21wKG9wdCwgImZpbmQtY29waWVzIikpIHsKKwkJfSBlbHNlIGlmIChzdGFydHNfd2l0aChvcHQsICJmaW5kLWNvcGllcyIpKSB7CiAJCQlvcHQgKz0gc3RybGVuKCJmaW5kLWNvcGllcyIpOwogCQkJaWYgKCpvcHQgPT0gMCB8fCAqb3B0KysgPT0gJz0nKQogCQkJCWNtZCA9ICdDJzsKLQkJfSBlbHNlIGlmICghcHJlZml4Y21wKG9wdCwgImZpbmQtcmVuYW1lcyIpKSB7CisJCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgob3B0LCAiZmluZC1yZW5hbWVzIikpIHsKIAkJCW9wdCArPSBzdHJsZW4oImZpbmQtcmVuYW1lcyIpOwogCQkJaWYgKCpvcHQgPT0gMCB8fCAqb3B0KysgPT0gJz0nKQogCQkJCWNtZCA9ICdNJzsKQEAgLTQwMzIsOSArNDEzOSw5IEBACiAJCURJRkZfRklMRV9WQUxJRChzKSA/ICJ2YWxpZCIgOiAiaW52YWxpZCIsCiAJCXMtPm1vZGUsCiAJCXMtPnNoYTFfdmFsaWQgPyBzaGExX3RvX2hleChzLT5zaGExKSA6ICIiKTsKLQlmcHJpbnRmKHN0ZGVyciwgInF1ZXVlWyVkXSAlcyBzaXplICVsdSBmbGFncyAlZFxuIiwKKwlmcHJpbnRmKHN0ZGVyciwgInF1ZXVlWyVkXSAlcyBzaXplICVsdVxuIiwKIAkJeCwgb25lID8gb25lIDogIiIsCi0JCXMtPnNpemUsIHMtPnhmcm1fZmxhZ3MpOworCQlzLT5zaXplKTsKIH0KIAogdm9pZCBkaWZmX2RlYnVnX2ZpbGVwYWlyKGNvbnN0IHN0cnVjdCBkaWZmX2ZpbGVwYWlyICpwLCBpbnQgaSkKQEAgLTQyMzcsNyArNDM0NCw3IEBACiAJaW50IG5ld19sZW47CiAKIAkvKiBJZ25vcmUgbGluZSBudW1iZXJzIHdoZW4gY29tcHV0aW5nIHRoZSBTSEExIG9mIHRoZSBwYXRjaCAqLwotCWlmICghcHJlZml4Y21wKGxpbmUsICJAQCAtIikpCisJaWYgKHN0YXJ0c193aXRoKGxpbmUsICJAQCAtIikpCiAJCXJldHVybjsKIAogCW5ld19sZW4gPSByZW1vdmVfc3BhY2UobGluZSwgbGVuKTsKQEAgLTQ1MjQsMjcgKzQ2MzEsMzIgQEAKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGRpZmZjb3JlX2FwcGx5X2ZpbHRlcihjb25zdCBjaGFyICpmaWx0ZXIpCitzdGF0aWMgaW50IG1hdGNoX2ZpbHRlcihjb25zdCBzdHJ1Y3QgZGlmZl9vcHRpb25zICpvcHRpb25zLCBjb25zdCBzdHJ1Y3QgZGlmZl9maWxlcGFpciAqcCkKK3sKKwlyZXR1cm4gKCgocC0+c3RhdHVzID09IERJRkZfU1RBVFVTX01PRElGSUVEKSAmJgorCQkgKChwLT5zY29yZSAmJgorCQkgICBmaWx0ZXJfYml0X3RzdChESUZGX1NUQVRVU19GSUxURVJfQlJPS0VOLCBvcHRpb25zKSkgfHwKKwkJICAoIXAtPnNjb3JlICYmCisJCSAgIGZpbHRlcl9iaXRfdHN0KERJRkZfU1RBVFVTX01PRElGSUVELCBvcHRpb25zKSkpKSB8fAorCQkoKHAtPnN0YXR1cyAhPSBESUZGX1NUQVRVU19NT0RJRklFRCkgJiYKKwkJIGZpbHRlcl9iaXRfdHN0KHAtPnN0YXR1cywgb3B0aW9ucykpKTsKK30KKworc3RhdGljIHZvaWQgZGlmZmNvcmVfYXBwbHlfZmlsdGVyKHN0cnVjdCBkaWZmX29wdGlvbnMgKm9wdGlvbnMpCiB7CiAJaW50IGk7CiAJc3RydWN0IGRpZmZfcXVldWVfc3RydWN0ICpxID0gJmRpZmZfcXVldWVkX2RpZmY7CiAJc3RydWN0IGRpZmZfcXVldWVfc3RydWN0IG91dHE7CisKIAlESUZGX1FVRVVFX0NMRUFSKCZvdXRxKTsKIAotCWlmICghZmlsdGVyKQorCWlmICghb3B0aW9ucy0+ZmlsdGVyKQogCQlyZXR1cm47CiAKLQlpZiAoc3RyY2hyKGZpbHRlciwgRElGRl9TVEFUVVNfRklMVEVSX0FPTikpIHsKKwlpZiAoZmlsdGVyX2JpdF90c3QoRElGRl9TVEFUVVNfRklMVEVSX0FPTiwgb3B0aW9ucykpIHsKIAkJaW50IGZvdW5kOwogCQlmb3IgKGkgPSBmb3VuZCA9IDA7ICFmb3VuZCAmJiBpIDwgcS0+bnI7IGkrKykgewotCQkJc3RydWN0IGRpZmZfZmlsZXBhaXIgKnAgPSBxLT5xdWV1ZVtpXTsKLQkJCWlmICgoKHAtPnN0YXR1cyA9PSBESUZGX1NUQVRVU19NT0RJRklFRCkgJiYKLQkJCSAgICAgKChwLT5zY29yZSAmJgotCQkJICAgICAgIHN0cmNocihmaWx0ZXIsIERJRkZfU1RBVFVTX0ZJTFRFUl9CUk9LRU4pKSB8fAotCQkJICAgICAgKCFwLT5zY29yZSAmJgotCQkJICAgICAgIHN0cmNocihmaWx0ZXIsIERJRkZfU1RBVFVTX01PRElGSUVEKSkpKSB8fAotCQkJICAgICgocC0+c3RhdHVzICE9IERJRkZfU1RBVFVTX01PRElGSUVEKSAmJgotCQkJICAgICBzdHJjaHIoZmlsdGVyLCBwLT5zdGF0dXMpKSkKKwkJCWlmIChtYXRjaF9maWx0ZXIob3B0aW9ucywgcS0+cXVldWVbaV0pKQogCQkJCWZvdW5kKys7CiAJCX0KIAkJaWYgKGZvdW5kKQpAQCAtNDU2MiwxNCArNDY3NCw3IEBACiAJCS8qIE9ubHkgdGhlIG1hdGNoaW5nIG9uZXMgKi8KIAkJZm9yIChpID0gMDsgaSA8IHEtPm5yOyBpKyspIHsKIAkJCXN0cnVjdCBkaWZmX2ZpbGVwYWlyICpwID0gcS0+cXVldWVbaV07Ci0KLQkJCWlmICgoKHAtPnN0YXR1cyA9PSBESUZGX1NUQVRVU19NT0RJRklFRCkgJiYKLQkJCSAgICAgKChwLT5zY29yZSAmJgotCQkJICAgICAgIHN0cmNocihmaWx0ZXIsIERJRkZfU1RBVFVTX0ZJTFRFUl9CUk9LRU4pKSB8fAotCQkJICAgICAgKCFwLT5zY29yZSAmJgotCQkJICAgICAgIHN0cmNocihmaWx0ZXIsIERJRkZfU1RBVFVTX01PRElGSUVEKSkpKSB8fAotCQkJICAgICgocC0+c3RhdHVzICE9IERJRkZfU1RBVFVTX01PRElGSUVEKSAmJgotCQkJICAgICBzdHJjaHIoZmlsdGVyLCBwLT5zdGF0dXMpKSkKKwkJCWlmIChtYXRjaF9maWx0ZXIob3B0aW9ucywgcCkpCiAJCQkJZGlmZl9xKCZvdXRxLCBwKTsKIAkJCWVsc2UKIAkJCQlkaWZmX2ZyZWVfZmlsZXBhaXIocCk7CkBAIC00Njc2LDcgKzQ3ODEsNyBAQAogCWlmICghb3B0aW9ucy0+Zm91bmRfZm9sbG93KQogCQkvKiBTZWUgdHJ5X3RvX2ZvbGxvd19yZW5hbWVzKCkgaW4gdHJlZS1kaWZmLmMgKi8KIAkJZGlmZl9yZXNvbHZlX3JlbmFtZV9jb3B5KCk7Ci0JZGlmZmNvcmVfYXBwbHlfZmlsdGVyKG9wdGlvbnMtPmZpbHRlcik7CisJZGlmZmNvcmVfYXBwbHlfZmlsdGVyKG9wdGlvbnMpOwogCiAJaWYgKGRpZmZfcXVldWVkX2RpZmYubnIgJiYgIURJRkZfT1BUX1RTVChvcHRpb25zLCBESUZGX0ZST01fQ09OVEVOVFMpKQogCQlESUZGX09QVF9TRVQob3B0aW9ucywgSEFTX0NIQU5HRVMpOwpkaWZmIC0tZ2l0IGEvZGlmZi5oIGIvZGlmZi5oCmluZGV4IDc4YjQwOTEuLmNlMTIzZmEgMTAwNjQ0Ci0tLSBhL2RpZmYuaAorKysgYi9kaWZmLmgKQEAgLTUsNiArNSw3IEBACiAjZGVmaW5lIERJRkZfSAogCiAjaW5jbHVkZSAidHJlZS13YWxrLmgiCisjaW5jbHVkZSAicGF0aHNwZWMuaCIKIAogc3RydWN0IHJldl9pbmZvOwogc3RydWN0IGRpZmZfb3B0aW9uczsKQEAgLTg3LDggKzg4LDkgQEAKICNkZWZpbmUgRElGRl9PUFRfUElDS0FYRV9JR05PUkVfQ0FTRSAoMSA8PCAzMCkKIAogI2RlZmluZSBESUZGX09QVF9UU1Qob3B0cywgZmxhZykgICAgKChvcHRzKS0+ZmxhZ3MgJiBESUZGX09QVF8jI2ZsYWcpCi0jZGVmaW5lIERJRkZfT1BUX1NFVChvcHRzLCBmbGFnKSAgICAoKG9wdHMpLT5mbGFncyB8PSBESUZGX09QVF8jI2ZsYWcpCi0jZGVmaW5lIERJRkZfT1BUX0NMUihvcHRzLCBmbGFnKSAgICAoKG9wdHMpLT5mbGFncyAmPSB+RElGRl9PUFRfIyNmbGFnKQorI2RlZmluZSBESUZGX09QVF9UT1VDSEVEKG9wdHMsIGZsYWcpICAgICgob3B0cyktPnRvdWNoZWRfZmxhZ3MgJiBESUZGX09QVF8jI2ZsYWcpCisjZGVmaW5lIERJRkZfT1BUX1NFVChvcHRzLCBmbGFnKSAgICAoKChvcHRzKS0+ZmxhZ3MgfD0gRElGRl9PUFRfIyNmbGFnKSwoKG9wdHMpLT50b3VjaGVkX2ZsYWdzIHw9IERJRkZfT1BUXyMjZmxhZykpCisjZGVmaW5lIERJRkZfT1BUX0NMUihvcHRzLCBmbGFnKSAgICAoKChvcHRzKS0+ZmxhZ3MgJj0gfkRJRkZfT1BUXyMjZmxhZyksKChvcHRzKS0+dG91Y2hlZF9mbGFncyB8PSBESUZGX09QVF8jI2ZsYWcpKQogI2RlZmluZSBESUZGX1hETF9UU1Qob3B0cywgZmxhZykgICAgKChvcHRzKS0+eGRsX29wdHMgJiBYREZfIyNmbGFnKQogI2RlZmluZSBESUZGX1hETF9TRVQob3B0cywgZmxhZykgICAgKChvcHRzKS0+eGRsX29wdHMgfD0gWERGXyMjZmxhZykKICNkZWZpbmUgRElGRl9YRExfQ0xSKG9wdHMsIGZsYWcpICAgICgob3B0cyktPnhkbF9vcHRzICY9IH5YREZfIyNmbGFnKQpAQCAtMTAzLDEyICsxMDUsMTYgQEAKIH07CiAKIHN0cnVjdCBkaWZmX29wdGlvbnMgewotCWNvbnN0IGNoYXIgKmZpbHRlcjsKIAljb25zdCBjaGFyICpvcmRlcmZpbGU7CiAJY29uc3QgY2hhciAqcGlja2F4ZTsKIAljb25zdCBjaGFyICpzaW5nbGVfZm9sbG93OwogCWNvbnN0IGNoYXIgKmFfcHJlZml4LCAqYl9wcmVmaXg7CiAJdW5zaWduZWQgZmxhZ3M7CisJdW5zaWduZWQgdG91Y2hlZF9mbGFnczsKKworCS8qIGRpZmYtZmlsdGVyIGJpdHMgKi8KKwl1bnNpZ25lZCBpbnQgZmlsdGVyOworCiAJaW50IHVzZV9jb2xvcjsKIAlpbnQgY29udGV4dDsKIAlpbnQgaW50ZXJodW5rY29udGV4dDsKQEAgLTE0NSw2ICsxNTEsOCBAQAogCS8qIHRvIHN1cHBvcnQgaW50ZXJuYWwgZGlmZiByZWN1cnNpb24gYnkgLS1mb2xsb3cgaGFjayovCiAJaW50IGZvdW5kX2ZvbGxvdzsKIAorCXZvaWQgKCpzZXRfZGVmYXVsdCkoc3RydWN0IGRpZmZfb3B0aW9ucyAqKTsKKwogCUZJTEUgKmZpbGU7CiAJaW50IGNsb3NlX2ZpbGU7CiAKQEAgLTE1Niw2ICsxNjQsOCBAQAogCWRpZmZfcHJlZml4X2ZuX3Qgb3V0cHV0X3ByZWZpeDsKIAlpbnQgb3V0cHV0X3ByZWZpeF9sZW5ndGg7CiAJdm9pZCAqb3V0cHV0X3ByZWZpeF9kYXRhOworCisJaW50IGRpZmZfcGF0aF9jb3VudGVyOwogfTsKIAogZW51bSBjb2xvcl9kaWZmIHsKQEAgLTE3OSw4ICsxODksNiBAQAogCiBleHRlcm4gY29uc3QgY2hhciBtaW1lX2JvdW5kYXJ5X2xlYWRlcltdOwogCi1leHRlcm4gdm9pZCBkaWZmX3RyZWVfc2V0dXBfcGF0aHMoY29uc3QgY2hhciAqKnBhdGhzLCBzdHJ1Y3QgZGlmZl9vcHRpb25zICopOwotZXh0ZXJuIHZvaWQgZGlmZl90cmVlX3JlbGVhc2VfcGF0aHMoc3RydWN0IGRpZmZfb3B0aW9ucyAqKTsKIGV4dGVybiBpbnQgZGlmZl90cmVlKHN0cnVjdCB0cmVlX2Rlc2MgKnQxLCBzdHJ1Y3QgdHJlZV9kZXNjICp0MiwKIAkJICAgICBjb25zdCBjaGFyICpiYXNlLCBzdHJ1Y3QgZGlmZl9vcHRpb25zICpvcHQpOwogZXh0ZXJuIGludCBkaWZmX3RyZWVfc2hhMShjb25zdCB1bnNpZ25lZCBjaGFyICpvbGQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm5ldywKQEAgLTIzOCw3ICsyNDYsNyBAQAogI2RlZmluZSBESUZGX1NFVFVQX1VTRV9TSVpFX0NBQ0hFCTQKIAogLyoKLSAqIFBvb3IgbWFuJ3MgYWx0ZXJuYXRpdmUgdG8gcGFyc2Utb3B0aW9uLCB0byBhbGxvdyBib3RoIHN0aWNrZWQgZm9ybQorICogUG9vciBtYW4ncyBhbHRlcm5hdGl2ZSB0byBwYXJzZS1vcHRpb24sIHRvIGFsbG93IGJvdGggc3R1Y2sgZm9ybQogICogKC0tb3B0aW9uPXZhbHVlKSBhbmQgc2VwYXJhdGUgZm9ybSAoLS1vcHRpb24gdmFsdWUpLgogICovCiBleHRlcm4gaW50IHBhcnNlX2xvbmdfb3B0KGNvbnN0IGNoYXIgKm9wdCwgY29uc3QgY2hhciAqKmFyZ3YsCkBAIC0zMjQsNyArMzMyLDcgQEAKIAogZXh0ZXJuIGludCBkaWZmX3Jlc3VsdF9jb2RlKHN0cnVjdCBkaWZmX29wdGlvbnMgKiwgaW50KTsKIAotZXh0ZXJuIHZvaWQgZGlmZl9ub19pbmRleChzdHJ1Y3QgcmV2X2luZm8gKiwgaW50LCBjb25zdCBjaGFyICoqLCBpbnQsIGNvbnN0IGNoYXIgKik7CitleHRlcm4gdm9pZCBkaWZmX25vX2luZGV4KHN0cnVjdCByZXZfaW5mbyAqLCBpbnQsIGNvbnN0IGNoYXIgKiosIGNvbnN0IGNoYXIgKik7CiAKIGV4dGVybiBpbnQgaW5kZXhfZGlmZmVyc19mcm9tKGNvbnN0IGNoYXIgKmRlZiwgaW50IGRpZmZfZmxhZ3MpOwogCkBAIC0zMzgsNiArMzQ2LDggQEAKIAogZXh0ZXJuIGxvbmcgcGFyc2VfYWxnb3JpdGhtX3ZhbHVlKGNvbnN0IGNoYXIgKnZhbHVlKTsKIAorZXh0ZXJuIHZvaWQgaGFuZGxlX2RlcHJlY2F0ZWRfc2hvd19kaWZmX3Eoc3RydWN0IGRpZmZfb3B0aW9ucyAqKTsKKwogZXh0ZXJuIGludCBwcmludF9zdGF0X3N1bW1hcnkoRklMRSAqZnAsIGludCBmaWxlcywKIAkJCSAgICAgIGludCBpbnNlcnRpb25zLCBpbnQgZGVsZXRpb25zKTsKIGV4dGVybiB2b2lkIHNldHVwX2RpZmZfcGFnZXIoc3RydWN0IGRpZmZfb3B0aW9ucyAqKTsKZGlmZiAtLWdpdCBhL2RpZmZjb3JlLW9yZGVyLmMgYi9kaWZmY29yZS1vcmRlci5jCmluZGV4IDIzZTkzODUuLmZlN2YxZjQgMTAwNjQ0Ci0tLSBhL2RpZmZjb3JlLW9yZGVyLmMKKysrIGIvZGlmZmNvcmUtb3JkZXIuYwpAQCAtMTAsMjggKzEwLDIxIEBACiAKIHN0YXRpYyB2b2lkIHByZXBhcmVfb3JkZXIoY29uc3QgY2hhciAqb3JkZXJmaWxlKQogewotCWludCBmZCwgY250LCBwYXNzOworCWludCBjbnQsIHBhc3M7CisJc3RydWN0IHN0cmJ1ZiBzYiA9IFNUUkJVRl9JTklUOwogCXZvaWQgKm1hcDsKIAljaGFyICpjcCwgKmVuZHA7Ci0Jc3RydWN0IHN0YXQgc3Q7Ci0Jc2l6ZV90IHN6OworCXNzaXplX3Qgc3o7CiAKIAlpZiAob3JkZXIpCiAJCXJldHVybjsKIAotCWZkID0gb3BlbihvcmRlcmZpbGUsIE9fUkRPTkxZKTsKLQlpZiAoZmQgPCAwKQotCQlyZXR1cm47Ci0JaWYgKGZzdGF0KGZkLCAmc3QpKSB7Ci0JCWNsb3NlKGZkKTsKLQkJcmV0dXJuOwotCX0KLQlzeiA9IHhzaXplX3Qoc3Quc3Rfc2l6ZSk7Ci0JbWFwID0gbW1hcChOVUxMLCBzeiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFLCBmZCwgMCk7Ci0JY2xvc2UoZmQpOwotCWlmIChtYXAgPT0gTUFQX0ZBSUxFRCkKLQkJcmV0dXJuOworCXN6ID0gc3RyYnVmX3JlYWRfZmlsZSgmc2IsIG9yZGVyZmlsZSwgMCk7CisJaWYgKHN6IDwgMCkKKwkJZGllX2Vycm5vKF8oImZhaWxlZCB0byByZWFkIG9yZGVyZmlsZSAnJXMnIiksIG9yZGVyZmlsZSk7CisJbWFwID0gc3RyYnVmX2RldGFjaCgmc2IsIE5VTEwpOwogCWVuZHAgPSAoY2hhciAqKSBtYXAgKyBzejsKKwogCWZvciAocGFzcyA9IDA7IHBhc3MgPCAyOyBwYXNzKyspIHsKIAkJY250ID0gMDsKIAkJY3AgPSBtYXA7CkBAIC03MywxNSArNjYsMTYgQEAKIHN0YXRpYyBpbnQgbWF0Y2hfb3JkZXIoY29uc3QgY2hhciAqcGF0aCkKIHsKIAlpbnQgaTsKLQljaGFyIHBbUEFUSF9NQVhdOworCXN0YXRpYyBzdHJ1Y3Qgc3RyYnVmIHAgPSBTVFJCVUZfSU5JVDsKIAogCWZvciAoaSA9IDA7IGkgPCBvcmRlcl9jbnQ7IGkrKykgewotCQlzdHJjcHkocCwgcGF0aCk7Ci0JCXdoaWxlIChwWzBdKSB7CisJCXN0cmJ1Zl9yZXNldCgmcCk7CisJCXN0cmJ1Zl9hZGRzdHIoJnAsIHBhdGgpOworCQl3aGlsZSAocC5idWZbMF0pIHsKIAkJCWNoYXIgKmNwOwotCQkJaWYgKCFmbm1hdGNoKG9yZGVyW2ldLCBwLCAwKSkKKwkJCWlmICghZm5tYXRjaChvcmRlcltpXSwgcC5idWYsIDApKQogCQkJCXJldHVybiBpOwotCQkJY3AgPSBzdHJyY2hyKHAsICcvJyk7CisJCQljcCA9IHN0cnJjaHIocC5idWYsICcvJyk7CiAJCQlpZiAoIWNwKQogCQkJCWJyZWFrOwogCQkJKmNwID0gMDsKZGlmZiAtLWdpdCBhL2RpZmZjb3JlLmggYi9kaWZmY29yZS5oCmluZGV4IDFjMTZjODUuLjc5ZGU4Y2YgMTAwNjQ0Ci0tLSBhL2RpZmZjb3JlLmgKKysrIGIvZGlmZmNvcmUuaApAQCAtMjksMTAgKzI5LDggQEAKIAljaGFyICpwYXRoOwogCXZvaWQgKmRhdGE7CiAJdm9pZCAqY250X2RhdGE7Ci0JY29uc3QgY2hhciAqZnVuY25hbWVfcGF0dGVybl9pZGVudDsKIAl1bnNpZ25lZCBsb25nIHNpemU7CiAJaW50IGNvdW50OyAgICAgICAgICAgICAgIC8qIFJlZmVyZW5jZSBjb3VudCAqLwotCWludCB4ZnJtX2ZsYWdzOwkJIC8qIGZvciB1c2UgYnkgdGhlIHhmcm0gKi8KIAlpbnQgcmVuYW1lX3VzZWQ7ICAgICAgICAgLyogQ291bnQgb2YgcmVuYW1lIHVzZXJzICovCiAJdW5zaWduZWQgc2hvcnQgbW9kZTsJIC8qIGZpbGUgbW9kZSAqLwogCXVuc2lnbmVkIHNoYTFfdmFsaWQgOiAxOyAvKiBpZiB0cnVlLCB1c2Ugc2hhMSBhbmQgdHJ1c3QgbW9kZTsKQEAgLTQzLDEzICs0MSwxMyBAQAogCXVuc2lnbmVkIHNob3VsZF9mcmVlIDogMTsgLyogZGF0YSBzaG91bGQgYmUgZnJlZSgpJ2VkICovCiAJdW5zaWduZWQgc2hvdWxkX211bm1hcCA6IDE7IC8qIGRhdGEgc2hvdWxkIGJlIG11bm1hcCgpJ2VkICovCiAJdW5zaWduZWQgZGlydHlfc3VibW9kdWxlIDogMjsgIC8qIEZvciBzdWJtb2R1bGVzOiBpdHMgd29yayB0cmVlIGlzIGRpcnR5ICovCi0JdW5zaWduZWQgaXNfc3RkaW4gOiAxOwogI2RlZmluZSBESVJUWV9TVUJNT0RVTEVfVU5UUkFDS0VEIDEKICNkZWZpbmUgRElSVFlfU1VCTU9EVUxFX01PRElGSUVEICAyCisJdW5zaWduZWQgaXNfc3RkaW4gOiAxOwogCXVuc2lnbmVkIGhhc19tb3JlX2VudHJpZXMgOiAxOyAvKiBvbmx5IGFwcGVhciBpbiBjb21iaW5lZCBkaWZmICovCi0Jc3RydWN0IHVzZXJkaWZmX2RyaXZlciAqZHJpdmVyOwogCS8qIGRhdGEgc2hvdWxkIGJlIGNvbnNpZGVyZWQgImJpbmFyeSI7IC0xIG1lYW5zICJkb24ndCBrbm93IHlldCIgKi8KLQlpbnQgaXNfYmluYXJ5OworCWludCBpc19iaW5hcnkgOiAyOworCXN0cnVjdCB1c2VyZGlmZl9kcml2ZXIgKmRyaXZlcjsKIH07CiAKIGV4dGVybiBzdHJ1Y3QgZGlmZl9maWxlc3BlYyAqYWxsb2NfZmlsZXNwZWMoY29uc3QgY2hhciAqKTsKZGlmZiAtLWdpdCBhL2Rpci5jIGIvZGlyLmMKaW5kZXggMWQ2M2U5OC4uYjM1YjYzMyAxMDA2NDQKLS0tIGEvZGlyLmMKKysrIGIvZGlyLmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlICJkaXIuaCIKICNpbmNsdWRlICJyZWZzLmgiCiAjaW5jbHVkZSAid2lsZG1hdGNoLmgiCisjaW5jbHVkZSAicGF0aHNwZWMuaCIKIAogc3RydWN0IHBhdGhfc2ltcGxpZnkgewogCWludCBsZW47CkBAIC01MSwyNiArNTIsMzIgQEAKIAlyZXR1cm4gZm5tYXRjaChwYXR0ZXJuLCBzdHJpbmcsIGZsYWdzIHwgKGlnbm9yZV9jYXNlID8gRk5NX0NBU0VGT0xEIDogMCkpOwogfQogCi1pbmxpbmUgaW50IGdpdF9mbm1hdGNoKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGNvbnN0IGNoYXIgKnN0cmluZywKLQkJICAgICAgIGludCBmbGFncywgaW50IHByZWZpeCkKK2lubGluZSBpbnQgZ2l0X2ZubWF0Y2goY29uc3Qgc3RydWN0IHBhdGhzcGVjX2l0ZW0gKml0ZW0sCisJCSAgICAgICBjb25zdCBjaGFyICpwYXR0ZXJuLCBjb25zdCBjaGFyICpzdHJpbmcsCisJCSAgICAgICBpbnQgcHJlZml4KQogewotCWludCBmbm1fZmxhZ3MgPSAwOwotCWlmIChmbGFncyAmIEdGTk1fUEFUSE5BTUUpCi0JCWZubV9mbGFncyB8PSBGTk1fUEFUSE5BTUU7CiAJaWYgKHByZWZpeCA+IDApIHsKLQkJaWYgKHN0cm5jbXAocGF0dGVybiwgc3RyaW5nLCBwcmVmaXgpKQorCQlpZiAocHNfc3RybmNtcChpdGVtLCBwYXR0ZXJuLCBzdHJpbmcsIHByZWZpeCkpCiAJCQlyZXR1cm4gRk5NX05PTUFUQ0g7CiAJCXBhdHRlcm4gKz0gcHJlZml4OwogCQlzdHJpbmcgKz0gcHJlZml4OwogCX0KLQlpZiAoZmxhZ3MgJiBHRk5NX09ORVNUQVIpIHsKKwlpZiAoaXRlbS0+ZmxhZ3MgJiBQQVRIU1BFQ19PTkVTVEFSKSB7CiAJCWludCBwYXR0ZXJuX2xlbiA9IHN0cmxlbigrK3BhdHRlcm4pOwogCQlpbnQgc3RyaW5nX2xlbiA9IHN0cmxlbihzdHJpbmcpOwogCQlyZXR1cm4gc3RyaW5nX2xlbiA8IHBhdHRlcm5fbGVuIHx8Ci0JCSAgICAgICBzdHJjbXAocGF0dGVybiwKLQkJCSAgICAgIHN0cmluZyArIHN0cmluZ19sZW4gLSBwYXR0ZXJuX2xlbik7CisJCQlwc19zdHJjbXAoaXRlbSwgcGF0dGVybiwKKwkJCQkgIHN0cmluZyArIHN0cmluZ19sZW4gLSBwYXR0ZXJuX2xlbik7CiAJfQotCXJldHVybiBmbm1hdGNoKHBhdHRlcm4sIHN0cmluZywgZm5tX2ZsYWdzKTsKKwlpZiAoaXRlbS0+bWFnaWMgJiBQQVRIU1BFQ19HTE9CKQorCQlyZXR1cm4gd2lsZG1hdGNoKHBhdHRlcm4sIHN0cmluZywKKwkJCQkgV01fUEFUSE5BTUUgfAorCQkJCSAoaXRlbS0+bWFnaWMgJiBQQVRIU1BFQ19JQ0FTRSA/IFdNX0NBU0VGT0xEIDogMCksCisJCQkJIE5VTEwpOworCWVsc2UKKwkJLyogd2lsZG1hdGNoIGhhcyBub3QgbGVhcm5lZCBubyBGTk1fUEFUSE5BTUUgbW9kZSB5ZXQgKi8KKwkJcmV0dXJuIGZubWF0Y2gocGF0dGVybiwgc3RyaW5nLAorCQkJICAgICAgIGl0ZW0tPm1hZ2ljICYgUEFUSFNQRUNfSUNBU0UgPyBGTk1fQ0FTRUZPTEQgOiAwKTsKIH0KIAogc3RhdGljIGludCBmbm1hdGNoX2ljYXNlX21lbShjb25zdCBjaGFyICpwYXR0ZXJuLCBpbnQgcGF0dGVybmxlbiwKQEAgLTEwMiwyNiArMTA5LDQzIEBACiAJcmV0dXJuIG1hdGNoX3N0YXR1czsKIH0KIAotc3RhdGljIHNpemVfdCBjb21tb25fcHJlZml4X2xlbihjb25zdCBjaGFyICoqcGF0aHNwZWMpCitzdGF0aWMgc2l6ZV90IGNvbW1vbl9wcmVmaXhfbGVuKGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMpCiB7Ci0JY29uc3QgY2hhciAqbiwgKmZpcnN0OworCWludCBuOwogCXNpemVfdCBtYXggPSAwOwotCWludCBsaXRlcmFsID0gbGltaXRfcGF0aHNwZWNfdG9fbGl0ZXJhbCgpOwogCi0JaWYgKCFwYXRoc3BlYykKLQkJcmV0dXJuIG1heDsKKwkvKgorCSAqICI6KGljYXNlKXBhdGgiIGlzIHRyZWF0ZWQgYXMgYSBwYXRoc3BlYyBmdWxsIG9mCisJICogd2lsZGNhcmQuIEluIG90aGVyIHdvcmRzLCBvbmx5IHByZWZpeCBpcyBjb25zaWRlcmVkIGNvbW1vbgorCSAqIHByZWZpeC4gSWYgdGhlIHBhdGhzcGVjIGlzIGFiYy9mb28gYWJjL2JhciwgcnVubmluZyBpbgorCSAqIHN1YmRpciB4eXosIHRoZSBjb21tb24gcHJlZml4IGlzIHN0aWxsIHh5eiwgbm90IHh1ei9hYmMgYXMKKwkgKiBpbiBub24tOihpY2FzZSkuCisJICovCisJR1VBUkRfUEFUSFNQRUMocGF0aHNwZWMsCisJCSAgICAgICBQQVRIU1BFQ19GUk9NVE9QIHwKKwkJICAgICAgIFBBVEhTUEVDX01BWERFUFRIIHwKKwkJICAgICAgIFBBVEhTUEVDX0xJVEVSQUwgfAorCQkgICAgICAgUEFUSFNQRUNfR0xPQiB8CisJCSAgICAgICBQQVRIU1BFQ19JQ0FTRSB8CisJCSAgICAgICBQQVRIU1BFQ19FWENMVURFKTsKIAotCWZpcnN0ID0gKnBhdGhzcGVjOwotCXdoaWxlICgobiA9ICpwYXRoc3BlYysrKSkgewotCQlzaXplX3QgaSwgbGVuID0gMDsKLQkJZm9yIChpID0gMDsgZmlyc3QgPT0gbiB8fCBpIDwgbWF4OyBpKyspIHsKLQkJCWNoYXIgYyA9IG5baV07Ci0JCQlpZiAoIWMgfHwgYyAhPSBmaXJzdFtpXSB8fCAoIWxpdGVyYWwgJiYgaXNfZ2xvYl9zcGVjaWFsKGMpKSkKKwlmb3IgKG4gPSAwOyBuIDwgcGF0aHNwZWMtPm5yOyBuKyspIHsKKwkJc2l6ZV90IGkgPSAwLCBsZW4gPSAwLCBpdGVtX2xlbjsKKwkJaWYgKHBhdGhzcGVjLT5pdGVtc1tuXS5tYWdpYyAmIFBBVEhTUEVDX0VYQ0xVREUpCisJCQljb250aW51ZTsKKwkJaWYgKHBhdGhzcGVjLT5pdGVtc1tuXS5tYWdpYyAmIFBBVEhTUEVDX0lDQVNFKQorCQkJaXRlbV9sZW4gPSBwYXRoc3BlYy0+aXRlbXNbbl0ucHJlZml4OworCQllbHNlCisJCQlpdGVtX2xlbiA9IHBhdGhzcGVjLT5pdGVtc1tuXS5ub3dpbGRjYXJkX2xlbjsKKwkJd2hpbGUgKGkgPCBpdGVtX2xlbiAmJiAobiA9PSAwIHx8IGkgPCBtYXgpKSB7CisJCQljaGFyIGMgPSBwYXRoc3BlYy0+aXRlbXNbbl0ubWF0Y2hbaV07CisJCQlpZiAoYyAhPSBwYXRoc3BlYy0+aXRlbXNbMF0ubWF0Y2hbaV0pCiAJCQkJYnJlYWs7CiAJCQlpZiAoYyA9PSAnLycpCiAJCQkJbGVuID0gaSArIDE7CisJCQlpKys7CiAJCX0KLQkJaWYgKGZpcnN0ID09IG4gfHwgbGVuIDwgbWF4KSB7CisJCWlmIChuID09IDAgfHwgbGVuIDwgbWF4KSB7CiAJCQltYXggPSBsZW47CiAJCQlpZiAoIW1heCkKIAkJCQlicmVhazsKQEAgLTEzNCwxNCArMTU4LDE0IEBACiAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgbG9uZ2VzdCBsZWFkaW5nIHBhdGggY29tbW9uIGFtb25nIGFsbAogICogcGF0aHNwZWNzLgogICovCi1jaGFyICpjb21tb25fcHJlZml4KGNvbnN0IGNoYXIgKipwYXRoc3BlYykKK2NoYXIgKmNvbW1vbl9wcmVmaXgoY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYykKIHsKIAl1bnNpZ25lZCBsb25nIGxlbiA9IGNvbW1vbl9wcmVmaXhfbGVuKHBhdGhzcGVjKTsKIAotCXJldHVybiBsZW4gPyB4bWVtZHVweigqcGF0aHNwZWMsIGxlbikgOiBOVUxMOworCXJldHVybiBsZW4gPyB4bWVtZHVweihwYXRoc3BlYy0+aXRlbXNbMF0ubWF0Y2gsIGxlbikgOiBOVUxMOwogfQogCi1pbnQgZmlsbF9kaXJlY3Rvcnkoc3RydWN0IGRpcl9zdHJ1Y3QgKmRpciwgY29uc3QgY2hhciAqKnBhdGhzcGVjKQoraW50IGZpbGxfZGlyZWN0b3J5KHN0cnVjdCBkaXJfc3RydWN0ICpkaXIsIGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMpCiB7CiAJc2l6ZV90IGxlbjsKIApAQCAtMTUyLDcgKzE3Niw3IEBACiAJbGVuID0gY29tbW9uX3ByZWZpeF9sZW4ocGF0aHNwZWMpOwogCiAJLyogUmVhZCB0aGUgZGlyZWN0b3J5IGFuZCBwcnVuZSBpdCAqLwotCXJlYWRfZGlyZWN0b3J5KGRpciwgcGF0aHNwZWMgPyAqcGF0aHNwZWMgOiAiIiwgbGVuLCBwYXRoc3BlYyk7CisJcmVhZF9kaXJlY3RvcnkoZGlyLCBwYXRoc3BlYy0+bnIgPyBwYXRoc3BlYy0+X3Jhd1swXSA6ICIiLCBsZW4sIHBhdGhzcGVjKTsKIAlyZXR1cm4gbGVuOwogfQogCkBAIC0xODMsMTEzICsyMDcsNiBAQAogICoKICAqIEl0IHJldHVybnMgMCB3aGVuIHRoZXJlIGlzIG5vIG1hdGNoLgogICovCi1zdGF0aWMgaW50IG1hdGNoX29uZShjb25zdCBjaGFyICptYXRjaCwgY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVsZW4pCi17Ci0JaW50IG1hdGNobGVuOwotCWludCBsaXRlcmFsID0gbGltaXRfcGF0aHNwZWNfdG9fbGl0ZXJhbCgpOwotCi0JLyogSWYgdGhlIG1hdGNoIHdhcyBqdXN0IHRoZSBwcmVmaXgsIHdlIG1hdGNoZWQgKi8KLQlpZiAoISptYXRjaCkKLQkJcmV0dXJuIE1BVENIRURfUkVDVVJTSVZFTFk7Ci0KLQlpZiAoaWdub3JlX2Nhc2UpIHsKLQkJZm9yICg7OykgewotCQkJdW5zaWduZWQgY2hhciBjMSA9IHRvbG93ZXIoKm1hdGNoKTsKLQkJCXVuc2lnbmVkIGNoYXIgYzIgPSB0b2xvd2VyKCpuYW1lKTsKLQkJCWlmIChjMSA9PSAnXDAnIHx8ICghbGl0ZXJhbCAmJiBpc19nbG9iX3NwZWNpYWwoYzEpKSkKLQkJCQlicmVhazsKLQkJCWlmIChjMSAhPSBjMikKLQkJCQlyZXR1cm4gMDsKLQkJCW1hdGNoKys7Ci0JCQluYW1lKys7Ci0JCQluYW1lbGVuLS07Ci0JCX0KLQl9IGVsc2UgewotCQlmb3IgKDs7KSB7Ci0JCQl1bnNpZ25lZCBjaGFyIGMxID0gKm1hdGNoOwotCQkJdW5zaWduZWQgY2hhciBjMiA9ICpuYW1lOwotCQkJaWYgKGMxID09ICdcMCcgfHwgKCFsaXRlcmFsICYmIGlzX2dsb2Jfc3BlY2lhbChjMSkpKQotCQkJCWJyZWFrOwotCQkJaWYgKGMxICE9IGMyKQotCQkJCXJldHVybiAwOwotCQkJbWF0Y2grKzsKLQkJCW5hbWUrKzsKLQkJCW5hbWVsZW4tLTsKLQkJfQotCX0KLQotCS8qCi0JICogSWYgd2UgZG9uJ3QgbWF0Y2ggdGhlIG1hdGNoc3RyaW5nIGV4YWN0bHksCi0JICogd2UgbmVlZCB0byBtYXRjaCBieSBmbm1hdGNoCi0JICovCi0JbWF0Y2hsZW4gPSBzdHJsZW4obWF0Y2gpOwotCWlmIChzdHJuY21wX2ljYXNlKG1hdGNoLCBuYW1lLCBtYXRjaGxlbikpIHsKLQkJaWYgKGxpdGVyYWwpCi0JCQlyZXR1cm4gMDsKLQkJcmV0dXJuICFmbm1hdGNoX2ljYXNlKG1hdGNoLCBuYW1lLCAwKSA/IE1BVENIRURfRk5NQVRDSCA6IDA7Ci0JfQotCi0JaWYgKG5hbWVsZW4gPT0gbWF0Y2hsZW4pCi0JCXJldHVybiBNQVRDSEVEX0VYQUNUTFk7Ci0JaWYgKG1hdGNoW21hdGNobGVuLTFdID09ICcvJyB8fCBuYW1lW21hdGNobGVuXSA9PSAnLycpCi0JCXJldHVybiBNQVRDSEVEX1JFQ1VSU0lWRUxZOwotCXJldHVybiAwOwotfQotCi0vKgotICogR2l2ZW4gYSBuYW1lIGFuZCBhIGxpc3Qgb2YgcGF0aHNwZWNzLCByZXR1cm5zIHRoZSBuYXR1cmUgb2YgdGhlCi0gKiBjbG9zZXN0IChpLmUuIG1vc3Qgc3BlY2lmaWMpIG1hdGNoIG9mIHRoZSBuYW1lIHRvIGFueSBvZiB0aGUKLSAqIHBhdGhzcGVjcy4KLSAqCi0gKiBUaGUgY2FsbGVyIHR5cGljYWxseSBjYWxscyB0aGlzIG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUKLSAqIHBhdGhzcGVjIGFuZCBzZWVuW10gYXJyYXkgYnV0IHdpdGggZGlmZmVyZW50IG5hbWUvbmFtZWxlbgotICogKGUuZy4gZW50cmllcyBmcm9tIHRoZSBpbmRleCkgYW5kIGlzIGludGVyZXN0ZWQgaW4gc2VlaW5nIGlmIGFuZAotICogaG93IGVhY2ggcGF0aHNwZWMgbWF0Y2hlcyBhbGwgdGhlIG5hbWVzIGl0IGNhbGxzIHRoaXMgZnVuY3Rpb24KLSAqIHdpdGguICBBIG1hcmsgaXMgbGVmdCBpbiB0aGUgc2VlbltdIGFycmF5IGZvciBlYWNoIHBhdGhzcGVjIGVsZW1lbnQKLSAqIGluZGljYXRpbmcgdGhlIGNsb3Nlc3QgdHlwZSBvZiBtYXRjaCB0aGF0IGVsZW1lbnQgYWNoaWV2ZWQsIHNvIGlmCi0gKiBzZWVuW25dIHJlbWFpbnMgemVybyBhZnRlciBtdWx0aXBsZSBpbnZvY2F0aW9ucywgdGhhdCBtZWFucyB0aGUgbnRoCi0gKiBwYXRoc3BlYyBkaWQgbm90IG1hdGNoIGFueSBuYW1lcywgd2hpY2ggY291bGQgaW5kaWNhdGUgdGhhdCB0aGUKLSAqIHVzZXIgbWlzdHlwZWQgdGhlIG50aCBwYXRoc3BlYy4KLSAqLwotaW50IG1hdGNoX3BhdGhzcGVjKGNvbnN0IGNoYXIgKipwYXRoc3BlYywgY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVsZW4sCi0JCWludCBwcmVmaXgsIGNoYXIgKnNlZW4pCi17Ci0JaW50IGksIHJldHZhbCA9IDA7Ci0KLQlpZiAoIXBhdGhzcGVjKQotCQlyZXR1cm4gMTsKLQotCW5hbWUgKz0gcHJlZml4OwotCW5hbWVsZW4gLT0gcHJlZml4OwotCi0JZm9yIChpID0gMDsgcGF0aHNwZWNbaV0gIT0gTlVMTDsgaSsrKSB7Ci0JCWludCBob3c7Ci0JCWNvbnN0IGNoYXIgKm1hdGNoID0gcGF0aHNwZWNbaV0gKyBwcmVmaXg7Ci0JCWlmIChzZWVuICYmIHNlZW5baV0gPT0gTUFUQ0hFRF9FWEFDVExZKQotCQkJY29udGludWU7Ci0JCWhvdyA9IG1hdGNoX29uZShtYXRjaCwgbmFtZSwgbmFtZWxlbik7Ci0JCWlmIChob3cpIHsKLQkJCWlmIChyZXR2YWwgPCBob3cpCi0JCQkJcmV0dmFsID0gaG93OwotCQkJaWYgKHNlZW4gJiYgc2VlbltpXSA8IGhvdykKLQkJCQlzZWVuW2ldID0gaG93OwotCQl9Ci0JfQotCXJldHVybiByZXR2YWw7Ci19Ci0KLS8qCi0gKiBEb2VzICdtYXRjaCcgbWF0Y2ggdGhlIGdpdmVuIG5hbWU/Ci0gKiBBIG1hdGNoIGlzIGZvdW5kIGlmCi0gKgotICogKDEpIHRoZSAnbWF0Y2gnIHN0cmluZyBpcyBsZWFkaW5nIGRpcmVjdG9yeSBvZiAnbmFtZScsIG9yCi0gKiAoMikgdGhlICdtYXRjaCcgc3RyaW5nIGlzIGEgd2lsZGNhcmQgYW5kIG1hdGNoZXMgJ25hbWUnLCBvcgotICogKDMpIHRoZSAnbWF0Y2gnIHN0cmluZyBpcyBleGFjdGx5IHRoZSBzYW1lIGFzICduYW1lJy4KLSAqCi0gKiBhbmQgdGhlIHJldHVybiB2YWx1ZSB0ZWxscyB3aGljaCBjYXNlIGl0IHdhcy4KLSAqCi0gKiBJdCByZXR1cm5zIDAgd2hlbiB0aGVyZSBpcyBubyBtYXRjaC4KLSAqLwogc3RhdGljIGludCBtYXRjaF9wYXRoc3BlY19pdGVtKGNvbnN0IHN0cnVjdCBwYXRoc3BlY19pdGVtICppdGVtLCBpbnQgcHJlZml4LAogCQkJICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuYW1lbGVuKQogewpAQCAtMjk3LDExICsyMTQsNDQgQEAKIAljb25zdCBjaGFyICptYXRjaCA9IGl0ZW0tPm1hdGNoICsgcHJlZml4OwogCWludCBtYXRjaGxlbiA9IGl0ZW0tPmxlbiAtIHByZWZpeDsKIAorCS8qCisJICogVGhlIG5vcm1hbCBjYWxsIHBhdHRlcm4gaXM6CisJICogMS4gcHJlZml4ID0gY29tbW9uX3ByZWZpeF9sZW4ocHMpOworCSAqIDIuIHBydW5lIHNvbWV0aGluZywgb3IgZmlsbF9kaXJlY3RvcnkKKwkgKiAzLiBtYXRjaF9wYXRoc3BlY19kZXB0aCgpCisJICoKKwkgKiAncHJlZml4JyBhdCAjMSBtYXkgYmUgc2hvcnRlciB0aGFuIHRoZSBjb21tYW5kJ3MgcHJlZml4IGFuZAorCSAqIGl0J3Mgb2sgZm9yICMyIHRvIG1hdGNoIGV4dHJhIGZpbGVzLiBUaG9zZSBleHRyYXMgd2lsbCBiZQorCSAqIHRyaW1tZWQgYXQgIzMuCisJICoKKwkgKiBTdXBwb3NlIHRoZSBwYXRoc3BlYyBpcyAnZm9vJyBhbmQgJy4uL2JhcicgcnVubmluZyBmcm9tCisJICogc3ViZGlyICd4eXonLiBUaGUgY29tbW9uIHByZWZpeCBhdCAjMSB3aWxsIGJlIGVtcHR5LCB0aGFua3MKKwkgKiB0byAiLi4vIi4gV2UgbWF5IGhhdmUgeHl6L2ZvbyBfYW5kXyBYWVovZm9vIGFmdGVyICMyLiBUaGUKKwkgKiB1c2VyIGRvZXMgbm90IHdhbnQgWFlaL2Zvbywgb25seSB0aGUgImZvbyIgcGFydCBzaG91bGQgYmUKKwkgKiBjYXNlLWluc2Vuc2l0aXZlLiBXZSBuZWVkIHRvIGZpbHRlciBvdXQgWFlaL2ZvbyBoZXJlLiBJbgorCSAqIG90aGVyIHdvcmRzLCB3ZSBkbyBub3QgdHJ1c3QgdGhlIGNhbGxlciBvbiBjb21wYXJpbmcgdGhlCisJICogcHJlZml4IHBhcnQgd2hlbiA6KGljYXNlKSBpcyBpbnZvbHZlZC4gV2UgZG8gZXhhY3QKKwkgKiBjb21wYXJpc29uIG91cnNlbHZlcy4KKwkgKgorCSAqIE5vcm1hbGx5IHRoZSBjYWxsZXIgKGNvbW1vbl9wcmVmaXhfbGVuKCkgaW4gZmFjdCkgZG9lcworCSAqIF9leGFjdF8gbWF0Y2hpbmcgb24gbmFtZVstcHJlZml4KzEuLi0xXSBhbmQgd2UgZG8gbm90IG5lZWQKKwkgKiB0byBjaGVjayB0aGF0IHBhcnQuIEJlIGRlZmVuc2l2ZSBhbmQgY2hlY2sgaXQgYW55d2F5LCBpbgorCSAqIGNhc2UgY29tbW9uX3ByZWZpeF9sZW4gaXMgY2hhbmdlZCwgb3IgYSBuZXcgY2FsbGVyIGlzCisJICogaW50cm9kdWNlZCB0aGF0IGRvZXMgbm90IHVzZSBjb21tb25fcHJlZml4X2xlbi4KKwkgKgorCSAqIElmIHRoZSBwZW5hbHR5IHR1cm5zIG91dCB0b28gaGlnaCB3aGVuIHByZWZpeCBpcyByZWFsbHkKKwkgKiBsb25nLCBtYXliZSBjaGFuZ2UgaXQgdG8KKwkgKiBzdHJuY21wKG1hdGNoLCBuYW1lLCBpdGVtLT5wcmVmaXggLSBwcmVmaXgpCisJICovCisJaWYgKGl0ZW0tPnByZWZpeCAmJiAoaXRlbS0+bWFnaWMgJiBQQVRIU1BFQ19JQ0FTRSkgJiYKKwkgICAgc3RybmNtcChpdGVtLT5tYXRjaCwgbmFtZSAtIHByZWZpeCwgaXRlbS0+cHJlZml4KSkKKwkJcmV0dXJuIDA7CisKIAkvKiBJZiB0aGUgbWF0Y2ggd2FzIGp1c3QgdGhlIHByZWZpeCwgd2UgbWF0Y2hlZCAqLwogCWlmICghKm1hdGNoKQogCQlyZXR1cm4gTUFUQ0hFRF9SRUNVUlNJVkVMWTsKIAotCWlmIChtYXRjaGxlbiA8PSBuYW1lbGVuICYmICFzdHJuY21wKG1hdGNoLCBuYW1lLCBtYXRjaGxlbikpIHsKKwlpZiAobWF0Y2hsZW4gPD0gbmFtZWxlbiAmJiAhcHNfc3RybmNtcChpdGVtLCBtYXRjaCwgbmFtZSwgbWF0Y2hsZW4pKSB7CiAJCWlmIChtYXRjaGxlbiA9PSBuYW1lbGVuKQogCQkJcmV0dXJuIE1BVENIRURfRVhBQ1RMWTsKIApAQCAtMzEwLDggKzI2MCw3IEBACiAJfQogCiAJaWYgKGl0ZW0tPm5vd2lsZGNhcmRfbGVuIDwgaXRlbS0+bGVuICYmCi0JICAgICFnaXRfZm5tYXRjaChtYXRjaCwgbmFtZSwKLQkJCSBpdGVtLT5mbGFncyAmIFBBVEhTUEVDX09ORVNUQVIgPyBHRk5NX09ORVNUQVIgOiAwLAorCSAgICAhZ2l0X2ZubWF0Y2goaXRlbSwgbWF0Y2gsIG5hbWUsCiAJCQkgaXRlbS0+bm93aWxkY2FyZF9sZW4gLSBwcmVmaXgpKQogCQlyZXR1cm4gTUFUQ0hFRF9GTk1BVENIOwogCkBAIC0zMzMsMTQgKzI4MiwyNSBAQAogICogcGF0aHNwZWMgZGlkIG5vdCBtYXRjaCBhbnkgbmFtZXMsIHdoaWNoIGNvdWxkIGluZGljYXRlIHRoYXQgdGhlCiAgKiB1c2VyIG1pc3R5cGVkIHRoZSBudGggcGF0aHNwZWMuCiAgKi8KLWludCBtYXRjaF9wYXRoc3BlY19kZXB0aChjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBzLAotCQkJIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuYW1lbGVuLAotCQkJIGludCBwcmVmaXgsIGNoYXIgKnNlZW4pCitzdGF0aWMgaW50IG1hdGNoX3BhdGhzcGVjX2RlcHRoXzEoY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwcywKKwkJCQkgIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuYW1lbGVuLAorCQkJCSAgaW50IHByZWZpeCwgY2hhciAqc2VlbiwKKwkJCQkgIGludCBleGNsdWRlKQogewogCWludCBpLCByZXR2YWwgPSAwOwogCisJR1VBUkRfUEFUSFNQRUMocHMsCisJCSAgICAgICBQQVRIU1BFQ19GUk9NVE9QIHwKKwkJICAgICAgIFBBVEhTUEVDX01BWERFUFRIIHwKKwkJICAgICAgIFBBVEhTUEVDX0xJVEVSQUwgfAorCQkgICAgICAgUEFUSFNQRUNfR0xPQiB8CisJCSAgICAgICBQQVRIU1BFQ19JQ0FTRSB8CisJCSAgICAgICBQQVRIU1BFQ19FWENMVURFKTsKKwogCWlmICghcHMtPm5yKSB7Ci0JCWlmICghcHMtPnJlY3Vyc2l2ZSB8fCBwcy0+bWF4X2RlcHRoID09IC0xKQorCQlpZiAoIXBzLT5yZWN1cnNpdmUgfHwKKwkJICAgICEocHMtPm1hZ2ljICYgUEFUSFNQRUNfTUFYREVQVEgpIHx8CisJCSAgICBwcy0+bWF4X2RlcHRoID09IC0xKQogCQkJcmV0dXJuIE1BVENIRURfUkVDVVJTSVZFTFk7CiAKIAkJaWYgKHdpdGhpbl9kZXB0aChuYW1lLCBuYW1lbGVuLCAwLCBwcy0+bWF4X2RlcHRoKSkKQEAgLTM1NCwxMCArMzE0LDIzIEBACiAKIAlmb3IgKGkgPSBwcy0+bnIgLSAxOyBpID49IDA7IGktLSkgewogCQlpbnQgaG93OworCisJCWlmICgoIWV4Y2x1ZGUgJiYgICBwcy0+aXRlbXNbaV0ubWFnaWMgJiBQQVRIU1BFQ19FWENMVURFKSB8fAorCQkgICAgKCBleGNsdWRlICYmICEocHMtPml0ZW1zW2ldLm1hZ2ljICYgUEFUSFNQRUNfRVhDTFVERSkpKQorCQkJY29udGludWU7CisKIAkJaWYgKHNlZW4gJiYgc2VlbltpXSA9PSBNQVRDSEVEX0VYQUNUTFkpCiAJCQljb250aW51ZTsKKwkJLyoKKwkJICogTWFrZSBleGNsdWRlIHBhdHRlcm5zIG9wdGlvbmFsIGFuZCBuZXZlciByZXBvcnQKKwkJICogInBhdGhzcGVjICc6KGV4Y2x1ZGUpZm9vJyBtYXRjaGVzIG5vIGZpbGVzIgorCQkgKi8KKwkJaWYgKHNlZW4gJiYgcHMtPml0ZW1zW2ldLm1hZ2ljICYgUEFUSFNQRUNfRVhDTFVERSkKKwkJCXNlZW5baV0gPSBNQVRDSEVEX0ZOTUFUQ0g7CiAJCWhvdyA9IG1hdGNoX3BhdGhzcGVjX2l0ZW0ocHMtPml0ZW1zK2ksIHByZWZpeCwgbmFtZSwgbmFtZWxlbik7Ci0JCWlmIChwcy0+cmVjdXJzaXZlICYmIHBzLT5tYXhfZGVwdGggIT0gLTEgJiYKKwkJaWYgKHBzLT5yZWN1cnNpdmUgJiYKKwkJICAgIChwcy0+bWFnaWMgJiBQQVRIU1BFQ19NQVhERVBUSCkgJiYKKwkJICAgIHBzLT5tYXhfZGVwdGggIT0gLTEgJiYKIAkJICAgIGhvdyAmJiBob3cgIT0gTUFUQ0hFRF9GTk1BVENIKSB7CiAJCQlpbnQgbGVuID0gcHMtPml0ZW1zW2ldLmxlbjsKIAkJCWlmIChuYW1lW2xlbl0gPT0gJy8nKQpAQCAtMzc3LDEwICszNTAsMjIgQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCitpbnQgbWF0Y2hfcGF0aHNwZWNfZGVwdGgoY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwcywKKwkJCSBjb25zdCBjaGFyICpuYW1lLCBpbnQgbmFtZWxlbiwKKwkJCSBpbnQgcHJlZml4LCBjaGFyICpzZWVuKQoreworCWludCBwb3NpdGl2ZSwgbmVnYXRpdmU7CisJcG9zaXRpdmUgPSBtYXRjaF9wYXRoc3BlY19kZXB0aF8xKHBzLCBuYW1lLCBuYW1lbGVuLCBwcmVmaXgsIHNlZW4sIDApOworCWlmICghKHBzLT5tYWdpYyAmIFBBVEhTUEVDX0VYQ0xVREUpIHx8ICFwb3NpdGl2ZSkKKwkJcmV0dXJuIHBvc2l0aXZlOworCW5lZ2F0aXZlID0gbWF0Y2hfcGF0aHNwZWNfZGVwdGhfMShwcywgbmFtZSwgbmFtZWxlbiwgcHJlZml4LCBzZWVuLCAxKTsKKwlyZXR1cm4gbmVnYXRpdmUgPyAwIDogcG9zaXRpdmU7Cit9CisKIC8qCiAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgInNpbXBsZSIgcGFydCBvZiBhIHBhdGggbWF0Y2ggbGltaXRlci4KICAqLwotc3RhdGljIGludCBzaW1wbGVfbGVuZ3RoKGNvbnN0IGNoYXIgKm1hdGNoKQoraW50IHNpbXBsZV9sZW5ndGgoY29uc3QgY2hhciAqbWF0Y2gpCiB7CiAJaW50IGxlbiA9IC0xOwogCkBAIC0zOTIsNyArMzc3LDcgQEAKIAl9CiB9CiAKLXN0YXRpYyBpbnQgbm9fd2lsZGNhcmQoY29uc3QgY2hhciAqc3RyaW5nKQoraW50IG5vX3dpbGRjYXJkKGNvbnN0IGNoYXIgKnN0cmluZykKIHsKIAlyZXR1cm4gc3RyaW5nW3NpbXBsZV9sZW5ndGgoc3RyaW5nKV0gPT0gJ1wwJzsKIH0KQEAgLTkwMyw3ICs4ODgsNyBAQAogCiBzdGF0aWMgc3RydWN0IGRpcl9lbnRyeSAqZGlyX2FkZF9uYW1lKHN0cnVjdCBkaXJfc3RydWN0ICpkaXIsIGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBpbnQgbGVuKQogewotCWlmIChjYWNoZV9uYW1lX2V4aXN0cyhwYXRobmFtZSwgbGVuLCBpZ25vcmVfY2FzZSkpCisJaWYgKGNhY2hlX2ZpbGVfZXhpc3RzKHBhdGhuYW1lLCBsZW4sIGlnbm9yZV9jYXNlKSkKIAkJcmV0dXJuIE5VTEw7CiAKIAlBTExPQ19HUk9XKGRpci0+ZW50cmllcywgZGlyLT5ucisxLCBkaXItPmFsbG9jKTsKQEAgLTkyOCwxMSArOTEzLDExIEBACiAvKgogICogRG8gbm90IHVzZSB0aGUgYWxwaGFiZXRpY2FsbHkgc29ydGVkIGluZGV4IHRvIGxvb2sgdXAKICAqIHRoZSBkaXJlY3RvcnkgbmFtZTsgaW5zdGVhZCwgdXNlIHRoZSBjYXNlIGluc2Vuc2l0aXZlCi0gKiBuYW1lIGhhc2guCisgKiBkaXJlY3RvcnkgaGFzaC4KICAqLwogc3RhdGljIGVudW0gZXhpc3Rfc3RhdHVzIGRpcmVjdG9yeV9leGlzdHNfaW5faW5kZXhfaWNhc2UoY29uc3QgY2hhciAqZGlybmFtZSwgaW50IGxlbikKIHsKLQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gY2FjaGVfbmFtZV9leGlzdHMoZGlybmFtZSwgbGVuICsgMSwgaWdub3JlX2Nhc2UpOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBjYWNoZV9kaXJfZXhpc3RzKGRpcm5hbWUsIGxlbik7CiAJdW5zaWduZWQgY2hhciBlbmRjaGFyOwogCiAJaWYgKCFjZSkKQEAgLTExMTQsNyArMTA5OSw3IEBACiAJaW50IHBvczsKIAljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOwogCi0JY2UgPSBjYWNoZV9uYW1lX2V4aXN0cyhwYXRoLCBsZW4sIDApOworCWNlID0gY2FjaGVfZmlsZV9leGlzdHMocGF0aCwgbGVuLCAwKTsKIAlpZiAoY2UpIHsKIAkJaWYgKCFjZV91cHRvZGF0ZShjZSkpCiAJCQlyZXR1cm4gRFRfVU5LTk9XTjsKQEAgLTExNzQsNyArMTE1OSw3IEBACiAJCQkJCSAgaW50IGR0eXBlLCBzdHJ1Y3QgZGlyZW50ICpkZSkKIHsKIAlpbnQgZXhjbHVkZTsKLQlpbnQgaGFzX3BhdGhfaW5faW5kZXggPSAhIWNhY2hlX25hbWVfZXhpc3RzKHBhdGgtPmJ1ZiwgcGF0aC0+bGVuLCBpZ25vcmVfY2FzZSk7CisJaW50IGhhc19wYXRoX2luX2luZGV4ID0gISFjYWNoZV9maWxlX2V4aXN0cyhwYXRoLT5idWYsIHBhdGgtPmxlbiwgaWdub3JlX2Nhc2UpOwogCiAJaWYgKGR0eXBlID09IERUX1VOS05PV04pCiAJCWR0eXBlID0gZ2V0X2R0eXBlKGRlLCBwYXRoLT5idWYsIHBhdGgtPmxlbik7CkBAIC0xMjAzLDIxICsxMTg4LDkgQEAKIAkgKi8KIAlpZiAoKGRpci0+ZmxhZ3MgJiBESVJfQ09MTEVDVF9LSUxMRURfT05MWSkgJiYKIAkgICAgKGR0eXBlID09IERUX0RJUikgJiYKLQkgICAgIWhhc19wYXRoX2luX2luZGV4KSB7Ci0JCS8qCi0JCSAqIE5FRURTV09SSzogZGlyZWN0b3J5X2V4aXN0c19pbl9pbmRleF9pY2FzZSgpCi0JCSAqIGFzc3VtZXMgdGhhdCBvbmUgYnl0ZSBwYXN0IHRoZSBnaXZlbiBwYXRoIGlzCi0JCSAqIHJlYWRhYmxlIGFuZCBoYXMgJy8nLCB3aGljaCBuZWVkcyB0byBiZSBmaXhlZCwgYnV0Ci0JCSAqIHVudGlsIHRoZW4sIHdvcmsgaXQgYXJvdW5kIGluIHRoZSBjYWxsZXIuCi0JCSAqLwotCQlzdHJidWZfYWRkY2gocGF0aCwgJy8nKTsKLQkJaWYgKGRpcmVjdG9yeV9leGlzdHNfaW5faW5kZXgocGF0aC0+YnVmLCBwYXRoLT5sZW4gLSAxKSA9PQotCQkgICAgaW5kZXhfbm9uZXhpc3RlbnQpIHsKLQkJCXN0cmJ1Zl9zZXRsZW4ocGF0aCwgcGF0aC0+bGVuIC0gMSk7Ci0JCQlyZXR1cm4gcGF0aF9ub25lOwotCQl9Ci0JCXN0cmJ1Zl9zZXRsZW4ocGF0aCwgcGF0aC0+bGVuIC0gMSk7Ci0JfQorCSAgICAhaGFzX3BhdGhfaW5faW5kZXggJiYKKwkgICAgKGRpcmVjdG9yeV9leGlzdHNfaW5faW5kZXgocGF0aC0+YnVmLCBwYXRoLT5sZW4pID09IGluZGV4X25vbmV4aXN0ZW50KSkKKwkJcmV0dXJuIHBhdGhfbm9uZTsKIAogCWV4Y2x1ZGUgPSBpc19leGNsdWRlZChkaXIsIHBhdGgtPmJ1ZiwgJmR0eXBlKTsKIApAQCAtMTQxNywxNCArMTM5MCwzMiBAQAogCXJldHVybiByYzsKIH0KIAotaW50IHJlYWRfZGlyZWN0b3J5KHN0cnVjdCBkaXJfc3RydWN0ICpkaXIsIGNvbnN0IGNoYXIgKnBhdGgsIGludCBsZW4sIGNvbnN0IGNoYXIgKipwYXRoc3BlYykKK2ludCByZWFkX2RpcmVjdG9yeShzdHJ1Y3QgZGlyX3N0cnVjdCAqZGlyLCBjb25zdCBjaGFyICpwYXRoLCBpbnQgbGVuLCBjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjKQogewogCXN0cnVjdCBwYXRoX3NpbXBsaWZ5ICpzaW1wbGlmeTsKIAorCS8qCisJICogQ2hlY2sgb3V0IGNyZWF0ZV9zaW1wbGlmeSgpCisJICovCisJaWYgKHBhdGhzcGVjKQorCQlHVUFSRF9QQVRIU1BFQyhwYXRoc3BlYywKKwkJCSAgICAgICBQQVRIU1BFQ19GUk9NVE9QIHwKKwkJCSAgICAgICBQQVRIU1BFQ19NQVhERVBUSCB8CisJCQkgICAgICAgUEFUSFNQRUNfTElURVJBTCB8CisJCQkgICAgICAgUEFUSFNQRUNfR0xPQiB8CisJCQkgICAgICAgUEFUSFNQRUNfSUNBU0UgfAorCQkJICAgICAgIFBBVEhTUEVDX0VYQ0xVREUpOworCiAJaWYgKGhhc19zeW1saW5rX2xlYWRpbmdfcGF0aChwYXRoLCBsZW4pKQogCQlyZXR1cm4gZGlyLT5ucjsKIAotCXNpbXBsaWZ5ID0gY3JlYXRlX3NpbXBsaWZ5KHBhdGhzcGVjKTsKKwkvKgorCSAqIGV4Y2x1ZGUgcGF0dGVybnMgYXJlIHRyZWF0ZWQgbGlrZSBwb3NpdGl2ZSBvbmVzIGluCisJICogY3JlYXRlX3NpbXBsaWZ5LiBVc3VhbGx5IGV4Y2x1ZGUgcGF0dGVybnMgc2hvdWxkIGJlIGEKKwkgKiBzdWJzZXQgb2YgcG9zaXRpdmUgb25lcywgd2hpY2ggaGFzIG5vIGltcGFjdHMgb24KKwkgKiBjcmVhdGVfc2ltcGxpZnkoKS4KKwkgKi8KKwlzaW1wbGlmeSA9IGNyZWF0ZV9zaW1wbGlmeShwYXRoc3BlYyA/IHBhdGhzcGVjLT5fcmF3IDogTlVMTCk7CiAJaWYgKCFsZW4gfHwgdHJlYXRfbGVhZGluZ19wYXRoKGRpciwgcGF0aCwgbGVuLCBzaW1wbGlmeSkpCiAJCXJlYWRfZGlyZWN0b3J5X3JlY3Vyc2l2ZShkaXIsIHBhdGgsIGxlbiwgMCwgc2ltcGxpZnkpOwogCWZyZWVfc2ltcGxpZnkoc2ltcGxpZnkpOwpAQCAtMTUyMCw4ICsxNTExLDEzIEBACiAJZmxhZyAmPSB+UkVNT1ZFX0RJUl9LRUVQX1RPUExFVkVMOwogCWRpciA9IG9wZW5kaXIocGF0aC0+YnVmKTsKIAlpZiAoIWRpcikgewotCQkvKiBhbiBlbXB0eSBkaXIgY291bGQgYmUgcmVtb3ZlZCBldmVuIGlmIGl0IGlzIHVucmVhZGJsZSAqLwotCQlpZiAoIWtlZXBfdG9wbGV2ZWwpCisJCWlmIChlcnJubyA9PSBFTk9FTlQpCisJCQlyZXR1cm4ga2VlcF90b3BsZXZlbCA/IC0xIDogMDsKKwkJZWxzZSBpZiAoZXJybm8gPT0gRUFDQ0VTICYmICFrZWVwX3RvcGxldmVsKQorCQkJLyoKKwkJCSAqIEFuIGVtcHR5IGRpciBjb3VsZCBiZSByZW1vdmFibGUgZXZlbiBpZiBpdAorCQkJICogaXMgdW5yZWFkYWJsZToKKwkJCSAqLwogCQkJcmV0dXJuIHJtZGlyKHBhdGgtPmJ1Zik7CiAJCWVsc2UKIAkJCXJldHVybiAtMTsKQEAgLTE1MzcsMTMgKzE1MzMsMjEgQEAKIAogCQlzdHJidWZfc2V0bGVuKHBhdGgsIGxlbik7CiAJCXN0cmJ1Zl9hZGRzdHIocGF0aCwgZS0+ZF9uYW1lKTsKLQkJaWYgKGxzdGF0KHBhdGgtPmJ1ZiwgJnN0KSkKLQkJCTsgLyogZmFsbCB0aHJ1ICovCi0JCWVsc2UgaWYgKFNfSVNESVIoc3Quc3RfbW9kZSkpIHsKKwkJaWYgKGxzdGF0KHBhdGgtPmJ1ZiwgJnN0KSkgeworCQkJaWYgKGVycm5vID09IEVOT0VOVCkKKwkJCQkvKgorCQkJCSAqIGZpbGUgZGlzYXBwZWFyZWQsIHdoaWNoIGlzIHdoYXQgd2UKKwkJCQkgKiB3YW50ZWQgYW55d2F5CisJCQkJICovCisJCQkJY29udGludWU7CisJCQkvKiBmYWxsIHRocnUgKi8KKwkJfSBlbHNlIGlmIChTX0lTRElSKHN0LnN0X21vZGUpKSB7CiAJCQlpZiAoIXJlbW92ZV9kaXJfcmVjdXJzZShwYXRoLCBmbGFnLCAma2VwdF9kb3duKSkKIAkJCQljb250aW51ZTsgLyogaGFwcHkgKi8KLQkJfSBlbHNlIGlmICghb25seV9lbXB0eSAmJiAhdW5saW5rKHBhdGgtPmJ1ZikpCisJCX0gZWxzZSBpZiAoIW9ubHlfZW1wdHkgJiYKKwkJCSAgICghdW5saW5rKHBhdGgtPmJ1ZikgfHwgZXJybm8gPT0gRU5PRU5UKSkgewogCQkJY29udGludWU7IC8qIGhhcHB5LCB0b28gKi8KKwkJfQogCiAJCS8qIHBhdGggdG9vIGxvbmcsIHN0YXQgZmFpbHMsIG9yIG5vbi1kaXJlY3Rvcnkgc3RpbGwgZXhpc3RzICovCiAJCXJldCA9IC0xOwpAQCAtMTU1Myw3ICsxNTU3LDcgQEAKIAogCXN0cmJ1Zl9zZXRsZW4ocGF0aCwgb3JpZ2luYWxfbGVuKTsKIAlpZiAoIXJldCAmJiAha2VlcF90b3BsZXZlbCAmJiAha2VwdF9kb3duKQotCQlyZXQgPSBybWRpcihwYXRoLT5idWYpOworCQlyZXQgPSAoIXJtZGlyKHBhdGgtPmJ1ZikgfHwgZXJybm8gPT0gRU5PRU5UKSA/IDAgOiAtMTsKIAllbHNlIGlmIChrZXB0X3VwKQogCQkvKgogCQkgKiByZXBvcnQgdGhlIHVwbGV2ZWwgdGhhdCBpdCBpcyBub3QgYW4gZXJyb3IgdGhhdCB3ZQpAQCAtMTYwNCw3MSArMTYwOCw2IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcGF0aHNwZWNfaXRlbV9jbXAoY29uc3Qgdm9pZCAqYV8sIGNvbnN0IHZvaWQgKmJfKQotewotCXN0cnVjdCBwYXRoc3BlY19pdGVtICphLCAqYjsKLQotCWEgPSAoc3RydWN0IHBhdGhzcGVjX2l0ZW0gKilhXzsKLQliID0gKHN0cnVjdCBwYXRoc3BlY19pdGVtICopYl87Ci0JcmV0dXJuIHN0cmNtcChhLT5tYXRjaCwgYi0+bWF0Y2gpOwotfQotCi1pbnQgaW5pdF9wYXRoc3BlYyhzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjLCBjb25zdCBjaGFyICoqcGF0aHMpCi17Ci0JY29uc3QgY2hhciAqKnAgPSBwYXRoczsKLQlpbnQgaTsKLQotCW1lbXNldChwYXRoc3BlYywgMCwgc2l6ZW9mKCpwYXRoc3BlYykpOwotCWlmICghcCkKLQkJcmV0dXJuIDA7Ci0Jd2hpbGUgKCpwKQotCQlwKys7Ci0JcGF0aHNwZWMtPnJhdyA9IHBhdGhzOwotCXBhdGhzcGVjLT5uciA9IHAgLSBwYXRoczsKLQlpZiAoIXBhdGhzcGVjLT5ucikKLQkJcmV0dXJuIDA7Ci0KLQlwYXRoc3BlYy0+aXRlbXMgPSB4bWFsbG9jKHNpemVvZihzdHJ1Y3QgcGF0aHNwZWNfaXRlbSkqcGF0aHNwZWMtPm5yKTsKLQlmb3IgKGkgPSAwOyBpIDwgcGF0aHNwZWMtPm5yOyBpKyspIHsKLQkJc3RydWN0IHBhdGhzcGVjX2l0ZW0gKml0ZW0gPSBwYXRoc3BlYy0+aXRlbXMraTsKLQkJY29uc3QgY2hhciAqcGF0aCA9IHBhdGhzW2ldOwotCi0JCWl0ZW0tPm1hdGNoID0gcGF0aDsKLQkJaXRlbS0+bGVuID0gc3RybGVuKHBhdGgpOwotCQlpdGVtLT5mbGFncyA9IDA7Ci0JCWlmIChsaW1pdF9wYXRoc3BlY190b19saXRlcmFsKCkpIHsKLQkJCWl0ZW0tPm5vd2lsZGNhcmRfbGVuID0gaXRlbS0+bGVuOwotCQl9IGVsc2UgewotCQkJaXRlbS0+bm93aWxkY2FyZF9sZW4gPSBzaW1wbGVfbGVuZ3RoKHBhdGgpOwotCQkJaWYgKGl0ZW0tPm5vd2lsZGNhcmRfbGVuIDwgaXRlbS0+bGVuKSB7Ci0JCQkJcGF0aHNwZWMtPmhhc193aWxkY2FyZCA9IDE7Ci0JCQkJaWYgKHBhdGhbaXRlbS0+bm93aWxkY2FyZF9sZW5dID09ICcqJyAmJgotCQkJCSAgICBub193aWxkY2FyZChwYXRoICsgaXRlbS0+bm93aWxkY2FyZF9sZW4gKyAxKSkKLQkJCQkJaXRlbS0+ZmxhZ3MgfD0gUEFUSFNQRUNfT05FU1RBUjsKLQkJCX0KLQkJfQotCX0KLQotCXFzb3J0KHBhdGhzcGVjLT5pdGVtcywgcGF0aHNwZWMtPm5yLAotCSAgICAgIHNpemVvZihzdHJ1Y3QgcGF0aHNwZWNfaXRlbSksIHBhdGhzcGVjX2l0ZW1fY21wKTsKLQotCXJldHVybiAwOwotfQotCi12b2lkIGZyZWVfcGF0aHNwZWMoc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYykKLXsKLQlmcmVlKHBhdGhzcGVjLT5pdGVtcyk7Ci0JcGF0aHNwZWMtPml0ZW1zID0gTlVMTDsKLX0KLQotaW50IGxpbWl0X3BhdGhzcGVjX3RvX2xpdGVyYWwodm9pZCkKLXsKLQlzdGF0aWMgaW50IGZsYWcgPSAtMTsKLQlpZiAoZmxhZyA8IDApCi0JCWZsYWcgPSBnaXRfZW52X2Jvb2woR0lUX0xJVEVSQUxfUEFUSFNQRUNTX0VOVklST05NRU5ULCAwKTsKLQlyZXR1cm4gZmxhZzsKLX0KLQogLyoKICAqIEZyZWVzIG1lbW9yeSB3aXRoaW4gZGlyIHdoaWNoIHdhcyBhbGxvY2F0ZWQgZm9yIGV4Y2x1ZGUgbGlzdHMgYW5kCiAgKiB0aGUgZXhjbHVkZV9zdGFjay4gIERvZXMgbm90IGZyZWUgZGlyIGl0c2VsZi4KZGlmZiAtLWdpdCBhL2Rpci5oIGIvZGlyLmgKaW5kZXggNDY3N2I4Ni4uOWI3ZTRlNyAxMDA2NDQKLS0tIGEvZGlyLmgKKysrIGIvZGlyLmgKQEAgLTEyOSwxNSArMTI5LDE2IEBACiAjZGVmaW5lIE1BVENIRURfUkVDVVJTSVZFTFkgMQogI2RlZmluZSBNQVRDSEVEX0ZOTUFUQ0ggMgogI2RlZmluZSBNQVRDSEVEX0VYQUNUTFkgMwotZXh0ZXJuIGNoYXIgKmNvbW1vbl9wcmVmaXgoY29uc3QgY2hhciAqKnBhdGhzcGVjKTsKLWV4dGVybiBpbnQgbWF0Y2hfcGF0aHNwZWMoY29uc3QgY2hhciAqKnBhdGhzcGVjLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbmFtZWxlbiwgaW50IHByZWZpeCwgY2hhciAqc2Vlbik7CitleHRlcm4gaW50IHNpbXBsZV9sZW5ndGgoY29uc3QgY2hhciAqbWF0Y2gpOworZXh0ZXJuIGludCBub193aWxkY2FyZChjb25zdCBjaGFyICpzdHJpbmcpOworZXh0ZXJuIGNoYXIgKmNvbW1vbl9wcmVmaXgoY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYyk7CiBleHRlcm4gaW50IG1hdGNoX3BhdGhzcGVjX2RlcHRoKGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMsCiAJCQkJY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVsZW4sCiAJCQkJaW50IHByZWZpeCwgY2hhciAqc2Vlbik7CiBleHRlcm4gaW50IHdpdGhpbl9kZXB0aChjb25zdCBjaGFyICpuYW1lLCBpbnQgbmFtZWxlbiwgaW50IGRlcHRoLCBpbnQgbWF4X2RlcHRoKTsKIAotZXh0ZXJuIGludCBmaWxsX2RpcmVjdG9yeShzdHJ1Y3QgZGlyX3N0cnVjdCAqZGlyLCBjb25zdCBjaGFyICoqcGF0aHNwZWMpOwotZXh0ZXJuIGludCByZWFkX2RpcmVjdG9yeShzdHJ1Y3QgZGlyX3N0cnVjdCAqLCBjb25zdCBjaGFyICpwYXRoLCBpbnQgbGVuLCBjb25zdCBjaGFyICoqcGF0aHNwZWMpOworZXh0ZXJuIGludCBmaWxsX2RpcmVjdG9yeShzdHJ1Y3QgZGlyX3N0cnVjdCAqZGlyLCBjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjKTsKK2V4dGVybiBpbnQgcmVhZF9kaXJlY3Rvcnkoc3RydWN0IGRpcl9zdHJ1Y3QgKiwgY29uc3QgY2hhciAqcGF0aCwgaW50IGxlbiwgY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYyk7CiAKIGV4dGVybiBpbnQgaXNfZXhjbHVkZWRfZnJvbV9saXN0KGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBpbnQgcGF0aGxlbiwgY29uc3QgY2hhciAqYmFzZW5hbWUsCiAJCQkJIGludCAqZHR5cGUsIHN0cnVjdCBleGNsdWRlX2xpc3QgKmVsKTsKQEAgLTE5OSwxMCArMjAwLDkgQEAKIC8qCiAgKiBUaGUgcHJlZml4IHBhcnQgb2YgcGF0dGVybiBtdXN0IG5vdCBjb250YWlucyB3aWxkY2FyZHMuCiAgKi8KLSNkZWZpbmUgR0ZOTV9QQVRITkFNRSAxCQkvKiBzaW1pbGFyIHRvIEZOTV9QQVRITkFNRSAqLwotI2RlZmluZSBHRk5NX09ORVNUQVIgIDIJCS8qIHRoZXJlIGlzIG9ubHkgX29uZV8gd2lsZGNhcmQsIGEgc3RhciAqLwotCi1leHRlcm4gaW50IGdpdF9mbm1hdGNoKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGNvbnN0IGNoYXIgKnN0cmluZywKLQkJICAgICAgIGludCBmbGFncywgaW50IHByZWZpeCk7CitzdHJ1Y3QgcGF0aHNwZWNfaXRlbTsKK2V4dGVybiBpbnQgZ2l0X2ZubWF0Y2goY29uc3Qgc3RydWN0IHBhdGhzcGVjX2l0ZW0gKml0ZW0sCisJCSAgICAgICBjb25zdCBjaGFyICpwYXR0ZXJuLCBjb25zdCBjaGFyICpzdHJpbmcsCisJCSAgICAgICBpbnQgcHJlZml4KTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9lZGl0b3IuYyBiL2VkaXRvci5jCmluZGV4IDI3YmRlY2QuLjBhYmJkOGQgMTAwNjQ0Ci0tLSBhL2VkaXRvci5jCisrKyBiL2VkaXRvci5jCkBAIC0zNyw3ICszNyw3IEBACiAJCXJldHVybiBlcnJvcigiVGVybWluYWwgaXMgZHVtYiwgYnV0IEVESVRPUiB1bnNldCIpOwogCiAJaWYgKHN0cmNtcChlZGl0b3IsICI6IikpIHsKLQkJY29uc3QgY2hhciAqYXJnc1tdID0geyBlZGl0b3IsIHBhdGgsIE5VTEwgfTsKKwkJY29uc3QgY2hhciAqYXJnc1tdID0geyBlZGl0b3IsIHJlYWxfcGF0aChwYXRoKSwgTlVMTCB9OwogCQlzdHJ1Y3QgY2hpbGRfcHJvY2VzcyBwOwogCQlpbnQgcmV0LCBzaWc7CiAKZGlmZiAtLWdpdCBhL2VudHJ5LmMgYi9lbnRyeS5jCmluZGV4IGFjYzg5MmYuLjdiN2FhODEgMTAwNjQ0Ci0tLSBhL2VudHJ5LmMKKysrIGIvZW50cnkuYwpAQCAtMjM0LDE5ICsyMzQsMzAgQEAKIAlyZXR1cm4gbHN0YXQocGF0aCwgc3QpOwogfQogCisvKgorICogV3JpdGUgdGhlIGNvbnRlbnRzIGZyb20gY2Ugb3V0IHRvIHRoZSB3b3JraW5nIHRyZWUuCisgKgorICogV2hlbiB0b3BhdGhbXSBpcyBub3QgTlVMTCwgaW5zdGVhZCBvZiB3cml0aW5nIHRvIHRoZSB3b3JraW5nIHRyZWUKKyAqIGZpbGUgbmFtZWQgYnkgY2UsIGEgdGVtcG9yYXJ5IGZpbGUgaXMgY3JlYXRlZCBieSB0aGlzIGZ1bmN0aW9uIGFuZAorICogaXRzIG5hbWUgaXMgcmV0dXJuZWQgaW4gdG9wYXRoW10sIHdoaWNoIG11c3QgYmUgYWJsZSB0byBob2xkIGF0CisgKiBsZWFzdCBURU1QT1JBUllfRklMRU5BTUVfTEVOR1RIIGJ5dGVzIGxvbmcuCisgKi8KIGludCBjaGVja291dF9lbnRyeShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAogCQkgICBjb25zdCBzdHJ1Y3QgY2hlY2tvdXQgKnN0YXRlLCBjaGFyICp0b3BhdGgpCiB7Ci0Jc3RhdGljIGNoYXIgcGF0aFtQQVRIX01BWCArIDFdOworCXN0YXRpYyBzdHJ1Y3Qgc3RyYnVmIHBhdGhfYnVmID0gU1RSQlVGX0lOSVQ7CisJY2hhciAqcGF0aDsKIAlzdHJ1Y3Qgc3RhdCBzdDsKLQlpbnQgbGVuID0gc3RhdGUtPmJhc2VfZGlyX2xlbjsKKwlpbnQgbGVuOwogCiAJaWYgKHRvcGF0aCkKIAkJcmV0dXJuIHdyaXRlX2VudHJ5KGNlLCB0b3BhdGgsIHN0YXRlLCAxKTsKIAotCW1lbWNweShwYXRoLCBzdGF0ZS0+YmFzZV9kaXIsIGxlbik7Ci0Jc3RyY3B5KHBhdGggKyBsZW4sIGNlLT5uYW1lKTsKLQlsZW4gKz0gY2VfbmFtZWxlbihjZSk7CisJc3RyYnVmX3Jlc2V0KCZwYXRoX2J1Zik7CisJc3RyYnVmX2FkZCgmcGF0aF9idWYsIHN0YXRlLT5iYXNlX2Rpciwgc3RhdGUtPmJhc2VfZGlyX2xlbik7CisJc3RyYnVmX2FkZCgmcGF0aF9idWYsIGNlLT5uYW1lLCBjZV9uYW1lbGVuKGNlKSk7CisJcGF0aCA9IHBhdGhfYnVmLmJ1ZjsKKwlsZW4gPSBwYXRoX2J1Zi5sZW47CiAKIAlpZiAoIWNoZWNrX3BhdGgocGF0aCwgbGVuLCAmc3QsIHN0YXRlLT5iYXNlX2Rpcl9sZW4pKSB7CiAJCXVuc2lnbmVkIGNoYW5nZWQgPSBjZV9tYXRjaF9zdGF0KGNlLCAmc3QsIENFX01BVENIX0lHTk9SRV9WQUxJRHxDRV9NQVRDSF9JR05PUkVfU0tJUF9XT1JLVFJFRSk7CmRpZmYgLS1naXQgYS9lbnZpcm9ubWVudC5jIGIvZW52aXJvbm1lbnQuYwppbmRleCAzNzgyNTRjLi40YTM0MzdkIDEwMDY0NAotLS0gYS9lbnZpcm9ubWVudC5jCisrKyBiL2Vudmlyb25tZW50LmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlICJjYWNoZS5oIgogI2luY2x1ZGUgInJlZnMuaCIKICNpbmNsdWRlICJmbXQtbWVyZ2UtbXNnLmgiCisjaW5jbHVkZSAiY29tbWl0LmgiCiAKIGludCB0cnVzdF9leGVjdXRhYmxlX2JpdCA9IDE7CiBpbnQgdHJ1c3RfY3RpbWUgPSAxOwpAQCAtOTcsNiArOTgsNyBAQAogCUlOREVYX0VOVklST05NRU5ULAogCU5PX1JFUExBQ0VfT0JKRUNUU19FTlZJUk9OTUVOVCwKIAlHSVRfUFJFRklYX0VOVklST05NRU5ULAorCUdJVF9TSEFMTE9XX0ZJTEVfRU5WSVJPTk1FTlQsCiAJTlVMTAogfTsKIApAQCAtMTI0LDYgKzEyNiw3IEBACiBzdGF0aWMgdm9pZCBzZXR1cF9naXRfZW52KHZvaWQpCiB7CiAJY29uc3QgY2hhciAqZ2l0ZmlsZTsKKwljb25zdCBjaGFyICpzaGFsbG93X2ZpbGU7CiAKIAlnaXRfZGlyID0gZ2V0ZW52KEdJVF9ESVJfRU5WSVJPTk1FTlQpOwogCWlmICghZ2l0X2RpcikKQEAgLTE0Nyw2ICsxNTAsOSBAQAogCQlyZWFkX3JlcGxhY2VfcmVmcyA9IDA7CiAJbmFtZXNwYWNlID0gZXhwYW5kX25hbWVzcGFjZShnZXRlbnYoR0lUX05BTUVTUEFDRV9FTlZJUk9OTUVOVCkpOwogCW5hbWVzcGFjZV9sZW4gPSBzdHJsZW4obmFtZXNwYWNlKTsKKwlzaGFsbG93X2ZpbGUgPSBnZXRlbnYoR0lUX1NIQUxMT1dfRklMRV9FTlZJUk9OTUVOVCk7CisJaWYgKHNoYWxsb3dfZmlsZSkKKwkJc2V0X2FsdGVybmF0ZV9zaGFsbG93X2ZpbGUoc2hhbGxvd19maWxlLCAwKTsKIH0KIAogaW50IGlzX2JhcmVfcmVwb3NpdG9yeSh2b2lkKQpAQCAtMTU1LDExICsxNjEsNiBAQAogCXJldHVybiBpc19iYXJlX3JlcG9zaXRvcnlfY2ZnICYmICFnZXRfZ2l0X3dvcmtfdHJlZSgpOwogfQogCi1pbnQgaGF2ZV9naXRfZGlyKHZvaWQpCi17Ci0JcmV0dXJuICEhZ2l0X2RpcjsKLX0KLQogY29uc3QgY2hhciAqZ2V0X2dpdF9kaXIodm9pZCkKIHsKIAlpZiAoIWdpdF9kaXIpCkBAIC0xNzYsNyArMTc3LDcgQEAKIAogY29uc3QgY2hhciAqc3RyaXBfbmFtZXNwYWNlKGNvbnN0IGNoYXIgKm5hbWVzcGFjZWRfcmVmKQogewotCWlmIChwcmVmaXhjbXAobmFtZXNwYWNlZF9yZWYsIGdldF9naXRfbmFtZXNwYWNlKCkpICE9IDApCisJaWYgKCFzdGFydHNfd2l0aChuYW1lc3BhY2VkX3JlZiwgZ2V0X2dpdF9uYW1lc3BhY2UoKSkpCiAJCXJldHVybiBOVUxMOwogCXJldHVybiBuYW1lc3BhY2VkX3JlZiArIG5hbWVzcGFjZV9sZW47CiB9CmRpZmYgLS1naXQgYS9mYXN0LWltcG9ydC5jIGIvZmFzdC1pbXBvcnQuYwppbmRleCAyM2Y2MjVmLi40ZmQxOGEzIDEwMDY0NAotLS0gYS9mYXN0LWltcG9ydC5jCisrKyBiL2Zhc3QtaW1wb3J0LmMKQEAgLTIyLDggKzIyLDggQEAKICAgICAoJ2F1dGhvcicgKHNwIG5hbWUpPyBzcCAnPCcgZW1haWwgJz4nIHNwIHdoZW4gbGYpPwogICAgICdjb21taXR0ZXInIChzcCBuYW1lKT8gc3AgJzwnIGVtYWlsICc+JyBzcCB3aGVuIGxmCiAgICAgY29tbWl0X21zZwotICAgICgnZnJvbScgc3AgY29tbWl0dGlzaCBsZik/Ci0gICAgKCdtZXJnZScgc3AgY29tbWl0dGlzaCBsZikqCisgICAgKCdmcm9tJyBzcCBjb21taXQtaXNoIGxmKT8KKyAgICAoJ21lcmdlJyBzcCBjb21taXQtaXNoIGxmKSoKICAgICAoZmlsZV9jaGFuZ2UgfCBscykqCiAgICAgbGY/OwogICBjb21taXRfbXNnIDo6PSBkYXRhOwpAQCAtNDMsMTggKzQzLDE4IEBACiAgIGZpbGVfb2JtIDo6PSAnTScgc3AgbW9kZSBzcCAoaGV4c2hhMSB8IGlkbnVtKSBzcCBwYXRoX3N0ciBsZjsKICAgZmlsZV9pbm0gOjo9ICdNJyBzcCBtb2RlIHNwICdpbmxpbmUnIHNwIHBhdGhfc3RyIGxmCiAgICAgZGF0YTsKLSAgbm90ZV9vYm0gOjo9ICdOJyBzcCAoaGV4c2hhMSB8IGlkbnVtKSBzcCBjb21taXR0aXNoIGxmOwotICBub3RlX2lubSA6Oj0gJ04nIHNwICdpbmxpbmUnIHNwIGNvbW1pdHRpc2ggbGYKKyAgbm90ZV9vYm0gOjo9ICdOJyBzcCAoaGV4c2hhMSB8IGlkbnVtKSBzcCBjb21taXQtaXNoIGxmOworICBub3RlX2lubSA6Oj0gJ04nIHNwICdpbmxpbmUnIHNwIGNvbW1pdC1pc2ggbGYKICAgICBkYXRhOwogCiAgIG5ld190YWcgOjo9ICd0YWcnIHNwIHRhZ19zdHIgbGYKLSAgICAnZnJvbScgc3AgY29tbWl0dGlzaCBsZgorICAgICdmcm9tJyBzcCBjb21taXQtaXNoIGxmCiAgICAgKCd0YWdnZXInIChzcCBuYW1lKT8gc3AgJzwnIGVtYWlsICc+JyBzcCB3aGVuIGxmKT8KICAgICB0YWdfbXNnOwogICB0YWdfbXNnIDo6PSBkYXRhOwogCiAgIHJlc2V0X2JyYW5jaCA6Oj0gJ3Jlc2V0JyBzcCByZWZfc3RyIGxmCi0gICAgKCdmcm9tJyBzcCBjb21taXR0aXNoIGxmKT8KKyAgICAoJ2Zyb20nIHNwIGNvbW1pdC1pc2ggbGYpPwogICAgIGxmPzsKIAogICBjaGVja3BvaW50IDo6PSAnY2hlY2twb2ludCcgbGYKQEAgLTkzLDcgKzkzLDcgQEAKICAgICAgIyBzdHJlYW0gZm9ybWF0dGluZyBpczogXCwgIiBhbmQgTEYuICBPdGhlcndpc2UgdGhlc2UgdmFsdWVzCiAgICAgICMgYXJlIFVURjguCiAgICAgICMKLSAgY29tbWl0dGlzaCAgOjo9IChyZWZfc3RyIHwgaGV4c2hhMSB8IHNoYTFleHBfc3RyIHwgaWRudW0pOworICBjb21taXQtaXNoICA6Oj0gKHJlZl9zdHIgfCBoZXhzaGExIHwgc2hhMWV4cF9zdHIgfCBpZG51bSk7CiAgIHJlZl9zdHIgICAgIDo6PSByZWY7CiAgIHNoYTFleHBfc3RyIDo6PSBzaGExZXhwOwogICB0YWdfc3RyICAgICA6Oj0gdGFnOwpAQCAtMTU2OCw3ICsxNTY4LDggQEAKIHN0YXRpYyBpbnQgdHJlZV9jb250ZW50X3JlbW92ZSgKIAlzdHJ1Y3QgdHJlZV9lbnRyeSAqcm9vdCwKIAljb25zdCBjaGFyICpwLAotCXN0cnVjdCB0cmVlX2VudHJ5ICpiYWNrdXBfbGVhZikKKwlzdHJ1Y3QgdHJlZV9lbnRyeSAqYmFja3VwX2xlYWYsCisJaW50IGFsbG93X3Jvb3QpCiB7CiAJc3RydWN0IHRyZWVfY29udGVudCAqdDsKIAljb25zdCBjaGFyICpzbGFzaDE7CkBAIC0xNTgzLDYgKzE1ODQsMTIgQEAKIAogCWlmICghcm9vdC0+dHJlZSkKIAkJbG9hZF90cmVlKHJvb3QpOworCisJaWYgKCEqcCAmJiBhbGxvd19yb290KSB7CisJCWUgPSByb290OworCQlnb3RvIGRlbF9lbnRyeTsKKwl9CisKIAl0ID0gcm9vdC0+dHJlZTsKIAlmb3IgKGkgPSAwOyBpIDwgdC0+ZW50cnlfY291bnQ7IGkrKykgewogCQllID0gdC0+ZW50cmllc1tpXTsKQEAgLTE1OTksNyArMTYwNiw3IEBACiAJCQkJZ290byBkZWxfZW50cnk7CiAJCQlpZiAoIWUtPnRyZWUpCiAJCQkJbG9hZF90cmVlKGUpOwotCQkJaWYgKHRyZWVfY29udGVudF9yZW1vdmUoZSwgc2xhc2gxICsgMSwgYmFja3VwX2xlYWYpKSB7CisJCQlpZiAodHJlZV9jb250ZW50X3JlbW92ZShlLCBzbGFzaDEgKyAxLCBiYWNrdXBfbGVhZiwgMCkpIHsKIAkJCQlmb3IgKG4gPSAwOyBuIDwgZS0+dHJlZS0+ZW50cnlfY291bnQ7IG4rKykgewogCQkJCQlpZiAoZS0+dHJlZS0+ZW50cmllc1tuXS0+dmVyc2lvbnNbMV0ubW9kZSkgewogCQkJCQkJaGFzaGNscihyb290LT52ZXJzaW9uc1sxXS5zaGExKTsKQEAgLTE2MjksNyArMTYzNiw4IEBACiBzdGF0aWMgaW50IHRyZWVfY29udGVudF9nZXQoCiAJc3RydWN0IHRyZWVfZW50cnkgKnJvb3QsCiAJY29uc3QgY2hhciAqcCwKLQlzdHJ1Y3QgdHJlZV9lbnRyeSAqbGVhZikKKwlzdHJ1Y3QgdHJlZV9lbnRyeSAqbGVhZiwKKwlpbnQgYWxsb3dfcm9vdCkKIHsKIAlzdHJ1Y3QgdHJlZV9jb250ZW50ICp0OwogCWNvbnN0IGNoYXIgKnNsYXNoMTsKQEAgLTE2NDEsMzEgKzE2NDksMzkgQEAKIAkJbiA9IHNsYXNoMSAtIHA7CiAJZWxzZQogCQluID0gc3RybGVuKHApOwotCWlmICghbikKKwlpZiAoIW4gJiYgIWFsbG93X3Jvb3QpCiAJCWRpZSgiRW1wdHkgcGF0aCBjb21wb25lbnQgZm91bmQgaW4gaW5wdXQiKTsKIAogCWlmICghcm9vdC0+dHJlZSkKIAkJbG9hZF90cmVlKHJvb3QpOworCisJaWYgKCFuKSB7CisJCWUgPSByb290OworCQlnb3RvIGZvdW5kX2VudHJ5OworCX0KKwogCXQgPSByb290LT50cmVlOwogCWZvciAoaSA9IDA7IGkgPCB0LT5lbnRyeV9jb3VudDsgaSsrKSB7CiAJCWUgPSB0LT5lbnRyaWVzW2ldOwogCQlpZiAoZS0+bmFtZS0+c3RyX2xlbiA9PSBuICYmICFzdHJuY21wX2ljYXNlKHAsIGUtPm5hbWUtPnN0cl9kYXQsIG4pKSB7Ci0JCQlpZiAoIXNsYXNoMSkgewotCQkJCW1lbWNweShsZWFmLCBlLCBzaXplb2YoKmxlYWYpKTsKLQkJCQlpZiAoZS0+dHJlZSAmJiBpc19udWxsX3NoYTEoZS0+dmVyc2lvbnNbMV0uc2hhMSkpCi0JCQkJCWxlYWYtPnRyZWUgPSBkdXBfdHJlZV9jb250ZW50KGUtPnRyZWUpOwotCQkJCWVsc2UKLQkJCQkJbGVhZi0+dHJlZSA9IE5VTEw7Ci0JCQkJcmV0dXJuIDE7Ci0JCQl9CisJCQlpZiAoIXNsYXNoMSkKKwkJCQlnb3RvIGZvdW5kX2VudHJ5OwogCQkJaWYgKCFTX0lTRElSKGUtPnZlcnNpb25zWzFdLm1vZGUpKQogCQkJCXJldHVybiAwOwogCQkJaWYgKCFlLT50cmVlKQogCQkJCWxvYWRfdHJlZShlKTsKLQkJCXJldHVybiB0cmVlX2NvbnRlbnRfZ2V0KGUsIHNsYXNoMSArIDEsIGxlYWYpOworCQkJcmV0dXJuIHRyZWVfY29udGVudF9nZXQoZSwgc2xhc2gxICsgMSwgbGVhZiwgMCk7CiAJCX0KIAl9CiAJcmV0dXJuIDA7CisKK2ZvdW5kX2VudHJ5OgorCW1lbWNweShsZWFmLCBlLCBzaXplb2YoKmxlYWYpKTsKKwlpZiAoZS0+dHJlZSAmJiBpc19udWxsX3NoYTEoZS0+dmVyc2lvbnNbMV0uc2hhMSkpCisJCWxlYWYtPnRyZWUgPSBkdXBfdHJlZV9jb250ZW50KGUtPnRyZWUpOworCWVsc2UKKwkJbGVhZi0+dHJlZSA9IE5VTEw7CisJcmV0dXJuIDE7CiB9CiAKIHN0YXRpYyBpbnQgdXBkYXRlX2JyYW5jaChzdHJ1Y3QgYnJhbmNoICpiKQpAQCAtMTY3OCw3ICsxNjk0LDcgQEAKIAkJcmV0dXJuIDA7CiAJaWYgKHJlYWRfcmVmKGItPm5hbWUsIG9sZF9zaGExKSkKIAkJaGFzaGNscihvbGRfc2hhMSk7Ci0JbG9jayA9IGxvY2tfYW55X3JlZl9mb3JfdXBkYXRlKGItPm5hbWUsIG9sZF9zaGExLCAwKTsKKwlsb2NrID0gbG9ja19hbnlfcmVmX2Zvcl91cGRhdGUoYi0+bmFtZSwgb2xkX3NoYTEsIDAsIE5VTEwpOwogCWlmICghbG9jaykKIAkJcmV0dXJuIGVycm9yKCJVbmFibGUgdG8gbG9jayAlcyIsIGItPm5hbWUpOwogCWlmICghZm9yY2VfdXBkYXRlICYmICFpc19udWxsX3NoYTEob2xkX3NoYTEpKSB7CkBAIC0xODYxLDggKzE4NzcsOCBAQAogCQkJCXJldHVybiBFT0Y7CiAKIAkJCWlmICghc2Vlbl9kYXRhX2NvbW1hbmQKLQkJCQkmJiBwcmVmaXhjbXAoY29tbWFuZF9idWYuYnVmLCAiZmVhdHVyZSAiKQotCQkJCSYmIHByZWZpeGNtcChjb21tYW5kX2J1Zi5idWYsICJvcHRpb24gIikpIHsKKwkJCQkmJiAhc3RhcnRzX3dpdGgoY29tbWFuZF9idWYuYnVmLCAiZmVhdHVyZSAiKQorCQkJCSYmICFzdGFydHNfd2l0aChjb21tYW5kX2J1Zi5idWYsICJvcHRpb24gIikpIHsKIAkJCQlwYXJzZV9hcmd2KCk7CiAJCQl9CiAKQEAgLTE4ODIsNyArMTg5OCw3IEBACiAJCQlyYy0+cHJldi0+bmV4dCA9IHJjOwogCQkJY21kX3RhaWwgPSByYzsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChjb21tYW5kX2J1Zi5idWYsICJjYXQtYmxvYiAiKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoY29tbWFuZF9idWYuYnVmLCAiY2F0LWJsb2IgIikpIHsKIAkJCXBhcnNlX2NhdF9ibG9iKCk7CiAJCQljb250aW51ZTsKIAkJfQpAQCAtMTkwMSw3ICsxOTE3LDcgQEAKIAogc3RhdGljIHZvaWQgcGFyc2VfbWFyayh2b2lkKQogewotCWlmICghcHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgIm1hcmsgOiIpKSB7CisJaWYgKHN0YXJ0c193aXRoKGNvbW1hbmRfYnVmLmJ1ZiwgIm1hcmsgOiIpKSB7CiAJCW5leHRfbWFyayA9IHN0cnRvdW1heChjb21tYW5kX2J1Zi5idWYgKyA2LCBOVUxMLCAxMCk7CiAJCXJlYWRfbmV4dF9jb21tYW5kKCk7CiAJfQpAQCAtMTkxMywxMCArMTkyOSwxMCBAQAogewogCXN0cmJ1Zl9yZXNldChzYik7CiAKLQlpZiAocHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgImRhdGEgIikpCisJaWYgKCFzdGFydHNfd2l0aChjb21tYW5kX2J1Zi5idWYsICJkYXRhICIpKQogCQlkaWUoIkV4cGVjdGVkICdkYXRhIG4nIGNvbW1hbmQsIGZvdW5kOiAlcyIsIGNvbW1hbmRfYnVmLmJ1Zik7CiAKLQlpZiAoIXByZWZpeGNtcChjb21tYW5kX2J1Zi5idWYgKyA1LCAiPDwiKSkgeworCWlmIChzdGFydHNfd2l0aChjb21tYW5kX2J1Zi5idWYgKyA1LCAiPDwiKSkgewogCQljaGFyICp0ZXJtID0geHN0cmR1cChjb21tYW5kX2J1Zi5idWYgKyA1ICsgMik7CiAJCXNpemVfdCB0ZXJtX2xlbiA9IGNvbW1hbmRfYnVmLmxlbiAtIDUgLSAyOwogCkBAIC0yMTc5LDcgKzIxOTUsNyBAQAogCQkJfQogCiAJCQkvKiBSZW5hbWUgZnVsbHBhdGggdG8gcmVhbHBhdGggKi8KLQkJCWlmICghdHJlZV9jb250ZW50X3JlbW92ZShvcmlnX3Jvb3QsIGZ1bGxwYXRoLCAmbGVhZikpCisJCQlpZiAoIXRyZWVfY29udGVudF9yZW1vdmUob3JpZ19yb290LCBmdWxscGF0aCwgJmxlYWYsIDApKQogCQkJCWRpZSgiRmFpbGVkIHRvIHJlbW92ZSBwYXRoICVzIiwgZnVsbHBhdGgpOwogCQkJdHJlZV9jb250ZW50X3NldChvcmlnX3Jvb3QsIHJlYWxwYXRoLAogCQkJCWxlYWYudmVyc2lvbnNbMV0uc2hhMSwKQEAgLTIyOTAsNyArMjMwNiw3IEBACiAJaWYgKCpwID09ICc6JykgewogCQlvZSA9IGZpbmRfbWFyayhwYXJzZV9tYXJrX3JlZl9zcGFjZSgmcCkpOwogCQloYXNoY3B5KHNoYTEsIG9lLT5pZHguc2hhMSk7Ci0JfSBlbHNlIGlmICghcHJlZml4Y21wKHAsICJpbmxpbmUgIikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKHAsICJpbmxpbmUgIikpIHsKIAkJaW5saW5lX2RhdGEgPSAxOwogCQlvZSA9IE5VTEw7IC8qIG5vdCB1c2VkIHdpdGggaW5saW5lX2RhdGEsIGJ1dCBtYWtlcyBnY2MgaGFwcHkgKi8KIAkJcCArPSBzdHJsZW4oImlubGluZSIpOyAgLyogYWR2YW5jZSB0byBzcGFjZSAqLwpAQCAtMjMxNCw3ICsyMzMwLDcgQEAKIAogCS8qIEdpdCBkb2VzIG5vdCB0cmFjayBlbXB0eSwgbm9uLXRvcGxldmVsIGRpcmVjdG9yaWVzLiAqLwogCWlmIChTX0lTRElSKG1vZGUpICYmICFtZW1jbXAoc2hhMSwgRU1QVFlfVFJFRV9TSEExX0JJTiwgMjApICYmICpwKSB7Ci0JCXRyZWVfY29udGVudF9yZW1vdmUoJmItPmJyYW5jaF90cmVlLCBwLCBOVUxMKTsKKwkJdHJlZV9jb250ZW50X3JlbW92ZSgmYi0+YnJhbmNoX3RyZWUsIHAsIE5VTEwsIDApOwogCQlyZXR1cm47CiAJfQogCkBAIC0yMzc1LDcgKzIzOTEsNyBAQAogCQkJZGllKCJHYXJiYWdlIGFmdGVyIHBhdGggaW46ICVzIiwgY29tbWFuZF9idWYuYnVmKTsKIAkJcCA9IHVxLmJ1ZjsKIAl9Ci0JdHJlZV9jb250ZW50X3JlbW92ZSgmYi0+YnJhbmNoX3RyZWUsIHAsIE5VTEwpOworCXRyZWVfY29udGVudF9yZW1vdmUoJmItPmJyYW5jaF90cmVlLCBwLCBOVUxMLCAxKTsKIH0KIAogc3RhdGljIHZvaWQgZmlsZV9jaGFuZ2VfY3Ioc3RydWN0IGJyYW5jaCAqYiwgaW50IHJlbmFtZSkKQEAgLTI0MTMsOSArMjQyOSw5IEBACiAKIAltZW1zZXQoJmxlYWYsIDAsIHNpemVvZihsZWFmKSk7CiAJaWYgKHJlbmFtZSkKLQkJdHJlZV9jb250ZW50X3JlbW92ZSgmYi0+YnJhbmNoX3RyZWUsIHMsICZsZWFmKTsKKwkJdHJlZV9jb250ZW50X3JlbW92ZSgmYi0+YnJhbmNoX3RyZWUsIHMsICZsZWFmLCAxKTsKIAllbHNlCi0JCXRyZWVfY29udGVudF9nZXQoJmItPmJyYW5jaF90cmVlLCBzLCAmbGVhZik7CisJCXRyZWVfY29udGVudF9nZXQoJmItPmJyYW5jaF90cmVlLCBzLCAmbGVhZiwgMSk7CiAJaWYgKCFsZWFmLnZlcnNpb25zWzFdLm1vZGUpCiAJCWRpZSgiUGF0aCAlcyBub3QgaW4gYnJhbmNoIiwgcyk7CiAJaWYgKCEqZCkgewkvKiBDICJwYXRoL3RvL3N1YmRpciIgIiIgKi8KQEAgLTI0NjMsNyArMjQ3OSw3IEBACiAJaWYgKCpwID09ICc6JykgewogCQlvZSA9IGZpbmRfbWFyayhwYXJzZV9tYXJrX3JlZl9zcGFjZSgmcCkpOwogCQloYXNoY3B5KHNoYTEsIG9lLT5pZHguc2hhMSk7Ci0JfSBlbHNlIGlmICghcHJlZml4Y21wKHAsICJpbmxpbmUgIikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKHAsICJpbmxpbmUgIikpIHsKIAkJaW5saW5lX2RhdGEgPSAxOwogCQlvZSA9IE5VTEw7IC8qIG5vdCB1c2VkIHdpdGggaW5saW5lX2RhdGEsIGJ1dCBtYWtlcyBnY2MgaGFwcHkgKi8KIAkJcCArPSBzdHJsZW4oImlubGluZSIpOyAgLyogYWR2YW5jZSB0byBzcGFjZSAqLwpAQCAtMjQ3OCw3ICsyNDk0LDcgQEAKIAlhc3NlcnQoKnAgPT0gJyAnKTsKIAlwKys7ICAvKiBza2lwIHNwYWNlICovCiAKLQkvKiA8Y29tbWl0dGlzaD4gKi8KKwkvKiA8Y29tbWl0LWlzaD4gKi8KIAlzID0gbG9va3VwX2JyYW5jaChwKTsKIAlpZiAocykgewogCQlpZiAoaXNfbnVsbF9zaGExKHMtPnNoYTEpKQpAQCAtMjUyMSw3ICsyNTM3LDcgQEAKIAl9CiAKIAljb25zdHJ1Y3RfcGF0aF93aXRoX2Zhbm91dChzaGExX3RvX2hleChjb21taXRfc2hhMSksICpvbGRfZmFub3V0LCBwYXRoKTsKLQlpZiAodHJlZV9jb250ZW50X3JlbW92ZSgmYi0+YnJhbmNoX3RyZWUsIHBhdGgsIE5VTEwpKQorCWlmICh0cmVlX2NvbnRlbnRfcmVtb3ZlKCZiLT5icmFuY2hfdHJlZSwgcGF0aCwgTlVMTCwgMCkpCiAJCWItPm51bV9ub3Rlcy0tOwogCiAJaWYgKGlzX251bGxfc2hhMShzaGExKSkKQEAgLTI1NzQsNyArMjU5MCw3IEBACiAJY29uc3QgY2hhciAqZnJvbTsKIAlzdHJ1Y3QgYnJhbmNoICpzOwogCi0JaWYgKHByZWZpeGNtcChjb21tYW5kX2J1Zi5idWYsICJmcm9tICIpKQorCWlmICghc3RhcnRzX3dpdGgoY29tbWFuZF9idWYuYnVmLCAiZnJvbSAiKSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoYi0+YnJhbmNoX3RyZWUudHJlZSkgewpAQCAtMjYyMCw3ICsyNjM2LDcgQEAKIAlzdHJ1Y3QgYnJhbmNoICpzOwogCiAJKmNvdW50ID0gMDsKLQl3aGlsZSAoIXByZWZpeGNtcChjb21tYW5kX2J1Zi5idWYsICJtZXJnZSAiKSkgeworCXdoaWxlIChzdGFydHNfd2l0aChjb21tYW5kX2J1Zi5idWYsICJtZXJnZSAiKSkgewogCQlmcm9tID0gc3RyY2hyKGNvbW1hbmRfYnVmLmJ1ZiwgJyAnKSArIDE7CiAJCW4gPSB4bWFsbG9jKHNpemVvZigqbikpOwogCQlzID0gbG9va3VwX2JyYW5jaChmcm9tKTsKQEAgLTI2NzEsMTEgKzI2ODcsMTEgQEAKIAogCXJlYWRfbmV4dF9jb21tYW5kKCk7CiAJcGFyc2VfbWFyaygpOwotCWlmICghcHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgImF1dGhvciAiKSkgeworCWlmIChzdGFydHNfd2l0aChjb21tYW5kX2J1Zi5idWYsICJhdXRob3IgIikpIHsKIAkJYXV0aG9yID0gcGFyc2VfaWRlbnQoY29tbWFuZF9idWYuYnVmICsgNyk7CiAJCXJlYWRfbmV4dF9jb21tYW5kKCk7CiAJfQotCWlmICghcHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgImNvbW1pdHRlciAiKSkgeworCWlmIChzdGFydHNfd2l0aChjb21tYW5kX2J1Zi5idWYsICJjb21taXR0ZXIgIikpIHsKIAkJY29tbWl0dGVyID0gcGFyc2VfaWRlbnQoY29tbWFuZF9idWYuYnVmICsgMTApOwogCQlyZWFkX25leHRfY29tbWFuZCgpOwogCX0KQEAgLTI2OTYsMTkgKzI3MTIsMTkgQEAKIAogCS8qIGZpbGVfY2hhbmdlKiAqLwogCXdoaWxlIChjb21tYW5kX2J1Zi5sZW4gPiAwKSB7Ci0JCWlmICghcHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgIk0gIikpCisJCWlmIChzdGFydHNfd2l0aChjb21tYW5kX2J1Zi5idWYsICJNICIpKQogCQkJZmlsZV9jaGFuZ2VfbShiKTsKLQkJZWxzZSBpZiAoIXByZWZpeGNtcChjb21tYW5kX2J1Zi5idWYsICJEICIpKQorCQllbHNlIGlmIChzdGFydHNfd2l0aChjb21tYW5kX2J1Zi5idWYsICJEICIpKQogCQkJZmlsZV9jaGFuZ2VfZChiKTsKLQkJZWxzZSBpZiAoIXByZWZpeGNtcChjb21tYW5kX2J1Zi5idWYsICJSICIpKQorCQllbHNlIGlmIChzdGFydHNfd2l0aChjb21tYW5kX2J1Zi5idWYsICJSICIpKQogCQkJZmlsZV9jaGFuZ2VfY3IoYiwgMSk7Ci0JCWVsc2UgaWYgKCFwcmVmaXhjbXAoY29tbWFuZF9idWYuYnVmLCAiQyAiKSkKKwkJZWxzZSBpZiAoc3RhcnRzX3dpdGgoY29tbWFuZF9idWYuYnVmLCAiQyAiKSkKIAkJCWZpbGVfY2hhbmdlX2NyKGIsIDApOwotCQllbHNlIGlmICghcHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgIk4gIikpCisJCWVsc2UgaWYgKHN0YXJ0c193aXRoKGNvbW1hbmRfYnVmLmJ1ZiwgIk4gIikpCiAJCQlub3RlX2NoYW5nZV9uKGIsICZwcmV2X2Zhbm91dCk7CiAJCWVsc2UgaWYgKCFzdHJjbXAoImRlbGV0ZWFsbCIsIGNvbW1hbmRfYnVmLmJ1ZikpCiAJCQlmaWxlX2NoYW5nZV9kZWxldGVhbGwoYik7Ci0JCWVsc2UgaWYgKCFwcmVmaXhjbXAoY29tbWFuZF9idWYuYnVmLCAibHMgIikpCisJCWVsc2UgaWYgKHN0YXJ0c193aXRoKGNvbW1hbmRfYnVmLmJ1ZiwgImxzICIpKQogCQkJcGFyc2VfbHMoYik7CiAJCWVsc2UgewogCQkJdW5yZWFkX2NvbW1hbmRfYnVmID0gMTsKQEAgLTI3NzcsNyArMjc5Myw3IEBACiAJcmVhZF9uZXh0X2NvbW1hbmQoKTsKIAogCS8qIGZyb20gLi4uICovCi0JaWYgKHByZWZpeGNtcChjb21tYW5kX2J1Zi5idWYsICJmcm9tICIpKQorCWlmICghc3RhcnRzX3dpdGgoY29tbWFuZF9idWYuYnVmLCAiZnJvbSAiKSkKIAkJZGllKCJFeHBlY3RlZCBmcm9tIGNvbW1hbmQsIGdvdCAlcyIsIGNvbW1hbmRfYnVmLmJ1Zik7CiAJZnJvbSA9IHN0cmNocihjb21tYW5kX2J1Zi5idWYsICcgJykgKyAxOwogCXMgPSBsb29rdXBfYnJhbmNoKGZyb20pOwpAQCAtMjgwNSw3ICsyODIxLDcgQEAKIAlyZWFkX25leHRfY29tbWFuZCgpOwogCiAJLyogdGFnZ2VyIC4uLiAqLwotCWlmICghcHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgInRhZ2dlciAiKSkgeworCWlmIChzdGFydHNfd2l0aChjb21tYW5kX2J1Zi5idWYsICJ0YWdnZXIgIikpIHsKIAkJdGFnZ2VyID0gcGFyc2VfaWRlbnQoY29tbWFuZF9idWYuYnVmICsgNyk7CiAJCXJlYWRfbmV4dF9jb21tYW5kKCk7CiAJfSBlbHNlCkBAIC0yOTU3LDcgKzI5NzMsNyBAQAogCWNhc2UgT0JKX1RBRzoKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJZGllKCJOb3QgYSB0cmVlaXNoOiAlcyIsIGNvbW1hbmRfYnVmLmJ1Zik7CisJCWRpZSgiTm90IGEgdHJlZS1pc2g6ICVzIiwgY29tbWFuZF9idWYuYnVmKTsKIAl9CiAKIAlpZiAob2UtPnBhY2tfaWQgIT0gTUFYX1BBQ0tfSUQpIHsJLyogaW4gYSBwYWNrIGJlaW5nIHdyaXR0ZW4gKi8KQEAgLTMwNDEsNyArMzA1Nyw3IEBACiAJc3RydWN0IHRyZWVfZW50cnkgKnJvb3QgPSBOVUxMOwogCXN0cnVjdCB0cmVlX2VudHJ5IGxlYWYgPSB7TlVMTH07CiAKLQkvKiBscyBTUCAoPHRyZWVpc2g+IFNQKT8gPHBhdGg+ICovCisJLyogbHMgU1AgKDx0cmVlLWlzaD4gU1ApPyA8cGF0aD4gKi8KIAlwID0gY29tbWFuZF9idWYuYnVmICsgc3RybGVuKCJscyAiKTsKIAlpZiAoKnAgPT0gJyInKSB7CiAJCWlmICghYikKQEAgLTMwNTEsNiArMzA2Nyw4IEBACiAJCXN0cnVjdCBvYmplY3RfZW50cnkgKmUgPSBwYXJzZV90cmVlaXNoX2RhdGFyZWYoJnApOwogCQlyb290ID0gbmV3X3RyZWVfZW50cnkoKTsKIAkJaGFzaGNweShyb290LT52ZXJzaW9uc1sxXS5zaGExLCBlLT5pZHguc2hhMSk7CisJCWlmICghaXNfbnVsbF9zaGExKHJvb3QtPnZlcnNpb25zWzFdLnNoYTEpKQorCQkJcm9vdC0+dmVyc2lvbnNbMV0ubW9kZSA9IFNfSUZESVI7CiAJCWxvYWRfdHJlZShyb290KTsKIAkJaWYgKCpwKysgIT0gJyAnKQogCQkJZGllKCJNaXNzaW5nIHNwYWNlIGFmdGVyIHRyZWUtaXNoOiAlcyIsIGNvbW1hbmRfYnVmLmJ1Zik7CkBAIC0zMDY1LDcgKzMwODMsNyBAQAogCQkJZGllKCJHYXJiYWdlIGFmdGVyIHBhdGggaW46ICVzIiwgY29tbWFuZF9idWYuYnVmKTsKIAkJcCA9IHVxLmJ1ZjsKIAl9Ci0JdHJlZV9jb250ZW50X2dldChyb290LCBwLCAmbGVhZik7CisJdHJlZV9jb250ZW50X2dldChyb290LCBwLCAmbGVhZiwgMSk7CiAJLyoKIAkgKiBBIGRpcmVjdG9yeSBpbiBwcmVwYXJhdGlvbiB3b3VsZCBoYXZlIGEgc2hhMSBvZiB6ZXJvCiAJICogdW50aWwgaXQgaXMgc2F2ZWQuICBTYXZlLCBmb3Igc2ltcGxpY2l0eS4KQEAgLTMxOTEsNyArMzIwOSw3IEBACiAKIHN0YXRpYyBpbnQgcGFyc2Vfb25lX29wdGlvbihjb25zdCBjaGFyICpvcHRpb24pCiB7Ci0JaWYgKCFwcmVmaXhjbXAob3B0aW9uLCAibWF4LXBhY2stc2l6ZT0iKSkgeworCWlmIChzdGFydHNfd2l0aChvcHRpb24sICJtYXgtcGFjay1zaXplPSIpKSB7CiAJCXVuc2lnbmVkIGxvbmcgdjsKIAkJaWYgKCFnaXRfcGFyc2VfdWxvbmcob3B0aW9uICsgMTQsICZ2KSkKIAkJCXJldHVybiAwOwpAQCAtMzIwMywyMCArMzIyMSwyMCBAQAogCQkJdiA9IDEwMjQgKiAxMDI0OwogCQl9CiAJCW1heF9wYWNrc2l6ZSA9IHY7Ci0JfSBlbHNlIGlmICghcHJlZml4Y21wKG9wdGlvbiwgImJpZy1maWxlLXRocmVzaG9sZD0iKSkgeworCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgob3B0aW9uLCAiYmlnLWZpbGUtdGhyZXNob2xkPSIpKSB7CiAJCXVuc2lnbmVkIGxvbmcgdjsKIAkJaWYgKCFnaXRfcGFyc2VfdWxvbmcob3B0aW9uICsgMTksICZ2KSkKIAkJCXJldHVybiAwOwogCQliaWdfZmlsZV90aHJlc2hvbGQgPSB2OwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChvcHRpb24sICJkZXB0aD0iKSkgeworCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgob3B0aW9uLCAiZGVwdGg9IikpIHsKIAkJb3B0aW9uX2RlcHRoKG9wdGlvbiArIDYpOwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChvcHRpb24sICJhY3RpdmUtYnJhbmNoZXM9IikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKG9wdGlvbiwgImFjdGl2ZS1icmFuY2hlcz0iKSkgewogCQlvcHRpb25fYWN0aXZlX2JyYW5jaGVzKG9wdGlvbiArIDE2KTsKLQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAob3B0aW9uLCAiZXhwb3J0LXBhY2stZWRnZXM9IikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKG9wdGlvbiwgImV4cG9ydC1wYWNrLWVkZ2VzPSIpKSB7CiAJCW9wdGlvbl9leHBvcnRfcGFja19lZGdlcyhvcHRpb24gKyAxOCk7Ci0JfSBlbHNlIGlmICghcHJlZml4Y21wKG9wdGlvbiwgInF1aWV0IikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKG9wdGlvbiwgInF1aWV0IikpIHsKIAkJc2hvd19zdGF0cyA9IDA7Ci0JfSBlbHNlIGlmICghcHJlZml4Y21wKG9wdGlvbiwgInN0YXRzIikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKG9wdGlvbiwgInN0YXRzIikpIHsKIAkJc2hvd19zdGF0cyA9IDE7CiAJfSBlbHNlIHsKIAkJcmV0dXJuIDA7CkBAIC0zMjI3LDE0ICszMjQ1LDE0IEBACiAKIHN0YXRpYyBpbnQgcGFyc2Vfb25lX2ZlYXR1cmUoY29uc3QgY2hhciAqZmVhdHVyZSwgaW50IGZyb21fc3RyZWFtKQogewotCWlmICghcHJlZml4Y21wKGZlYXR1cmUsICJkYXRlLWZvcm1hdD0iKSkgeworCWlmIChzdGFydHNfd2l0aChmZWF0dXJlLCAiZGF0ZS1mb3JtYXQ9IikpIHsKIAkJb3B0aW9uX2RhdGVfZm9ybWF0KGZlYXR1cmUgKyAxMik7Ci0JfSBlbHNlIGlmICghcHJlZml4Y21wKGZlYXR1cmUsICJpbXBvcnQtbWFya3M9IikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGZlYXR1cmUsICJpbXBvcnQtbWFya3M9IikpIHsKIAkJb3B0aW9uX2ltcG9ydF9tYXJrcyhmZWF0dXJlICsgMTMsIGZyb21fc3RyZWFtLCAwKTsKLQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoZmVhdHVyZSwgImltcG9ydC1tYXJrcy1pZi1leGlzdHM9IikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGZlYXR1cmUsICJpbXBvcnQtbWFya3MtaWYtZXhpc3RzPSIpKSB7CiAJCW9wdGlvbl9pbXBvcnRfbWFya3MoZmVhdHVyZSArIHN0cmxlbigiaW1wb3J0LW1hcmtzLWlmLWV4aXN0cz0iKSwKIAkJCQkJZnJvbV9zdHJlYW0sIDEpOwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChmZWF0dXJlLCAiZXhwb3J0LW1hcmtzPSIpKSB7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChmZWF0dXJlLCAiZXhwb3J0LW1hcmtzPSIpKSB7CiAJCW9wdGlvbl9leHBvcnRfbWFya3MoZmVhdHVyZSArIDEzKTsKIAl9IGVsc2UgaWYgKCFzdHJjbXAoZmVhdHVyZSwgImNhdC1ibG9iIikpIHsKIAkJOyAvKiBEb24ndCBkaWUgLSB0aGlzIGZlYXR1cmUgaXMgc3VwcG9ydGVkICovCkBAIC0zMzMyLDcgKzMzNTAsNyBAQAogCQlpZiAocGFyc2Vfb25lX2ZlYXR1cmUoYSArIDIsIDApKQogCQkJY29udGludWU7CiAKLQkJaWYgKCFwcmVmaXhjbXAoYSArIDIsICJjYXQtYmxvYi1mZD0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYSArIDIsICJjYXQtYmxvYi1mZD0iKSkgewogCQkJb3B0aW9uX2NhdF9ibG9iX2ZkKGEgKyAyICsgc3RybGVuKCJjYXQtYmxvYi1mZD0iKSk7CiAJCQljb250aW51ZTsKIAkJfQpAQCAtMzM4NiwyNSArMzQwNCwyNSBAQAogCXdoaWxlIChyZWFkX25leHRfY29tbWFuZCgpICE9IEVPRikgewogCQlpZiAoIXN0cmNtcCgiYmxvYiIsIGNvbW1hbmRfYnVmLmJ1ZikpCiAJCQlwYXJzZV9uZXdfYmxvYigpOwotCQllbHNlIGlmICghcHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgImxzICIpKQorCQllbHNlIGlmIChzdGFydHNfd2l0aChjb21tYW5kX2J1Zi5idWYsICJscyAiKSkKIAkJCXBhcnNlX2xzKE5VTEwpOwotCQllbHNlIGlmICghcHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgImNvbW1pdCAiKSkKKwkJZWxzZSBpZiAoc3RhcnRzX3dpdGgoY29tbWFuZF9idWYuYnVmLCAiY29tbWl0ICIpKQogCQkJcGFyc2VfbmV3X2NvbW1pdCgpOwotCQllbHNlIGlmICghcHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgInRhZyAiKSkKKwkJZWxzZSBpZiAoc3RhcnRzX3dpdGgoY29tbWFuZF9idWYuYnVmLCAidGFnICIpKQogCQkJcGFyc2VfbmV3X3RhZygpOwotCQllbHNlIGlmICghcHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgInJlc2V0ICIpKQorCQllbHNlIGlmIChzdGFydHNfd2l0aChjb21tYW5kX2J1Zi5idWYsICJyZXNldCAiKSkKIAkJCXBhcnNlX3Jlc2V0X2JyYW5jaCgpOwogCQllbHNlIGlmICghc3RyY21wKCJjaGVja3BvaW50IiwgY29tbWFuZF9idWYuYnVmKSkKIAkJCXBhcnNlX2NoZWNrcG9pbnQoKTsKIAkJZWxzZSBpZiAoIXN0cmNtcCgiZG9uZSIsIGNvbW1hbmRfYnVmLmJ1ZikpCiAJCQlicmVhazsKLQkJZWxzZSBpZiAoIXByZWZpeGNtcChjb21tYW5kX2J1Zi5idWYsICJwcm9ncmVzcyAiKSkKKwkJZWxzZSBpZiAoc3RhcnRzX3dpdGgoY29tbWFuZF9idWYuYnVmLCAicHJvZ3Jlc3MgIikpCiAJCQlwYXJzZV9wcm9ncmVzcygpOwotCQllbHNlIGlmICghcHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgImZlYXR1cmUgIikpCisJCWVsc2UgaWYgKHN0YXJ0c193aXRoKGNvbW1hbmRfYnVmLmJ1ZiwgImZlYXR1cmUgIikpCiAJCQlwYXJzZV9mZWF0dXJlKCk7Ci0JCWVsc2UgaWYgKCFwcmVmaXhjbXAoY29tbWFuZF9idWYuYnVmLCAib3B0aW9uIGdpdCAiKSkKKwkJZWxzZSBpZiAoc3RhcnRzX3dpdGgoY29tbWFuZF9idWYuYnVmLCAib3B0aW9uIGdpdCAiKSkKIAkJCXBhcnNlX29wdGlvbigpOwotCQllbHNlIGlmICghcHJlZml4Y21wKGNvbW1hbmRfYnVmLmJ1ZiwgIm9wdGlvbiAiKSkKKwkJZWxzZSBpZiAoc3RhcnRzX3dpdGgoY29tbWFuZF9idWYuYnVmLCAib3B0aW9uICIpKQogCQkJLyogaWdub3JlIG5vbi1naXQgb3B0aW9ucyovOwogCQllbHNlCiAJCQlkaWUoIlVuc3VwcG9ydGVkIGNvbW1hbmQ6ICVzIiwgY29tbWFuZF9idWYuYnVmKTsKZGlmZiAtLWdpdCBhL2ZldGNoLXBhY2suYyBiL2ZldGNoLXBhY2suYwppbmRleCBhZmY0ZjVhLi45MGZkZDQ5IDEwMDY0NAotLS0gYS9mZXRjaC1wYWNrLmMKKysrIGIvZmV0Y2gtcGFjay5jCkBAIC05LDkgKzksMTEgQEAKICNpbmNsdWRlICJmZXRjaC1wYWNrLmgiCiAjaW5jbHVkZSAicmVtb3RlLmgiCiAjaW5jbHVkZSAicnVuLWNvbW1hbmQuaCIKKyNpbmNsdWRlICJjb25uZWN0LmgiCiAjaW5jbHVkZSAidHJhbnNwb3J0LmgiCiAjaW5jbHVkZSAidmVyc2lvbi5oIgogI2luY2x1ZGUgInByaW8tcXVldWUuaCIKKyNpbmNsdWRlICJzaGExLWFycmF5LmgiCiAKIHN0YXRpYyBpbnQgdHJhbnNmZXJfdW5wYWNrX2xpbWl0ID0gLTE7CiBzdGF0aWMgaW50IGZldGNoX3VucGFja19saW1pdCA9IC0xOwpAQCAtNDYsOSArNDgsOCBAQAogCWlmICghKGNvbW1pdC0+b2JqZWN0LmZsYWdzICYgbWFyaykpIHsKIAkJY29tbWl0LT5vYmplY3QuZmxhZ3MgfD0gbWFyazsKIAotCQlpZiAoIShjb21taXQtPm9iamVjdC5wYXJzZWQpKQotCQkJaWYgKHBhcnNlX2NvbW1pdChjb21taXQpKQotCQkJCXJldHVybjsKKwkJaWYgKHBhcnNlX2NvbW1pdChjb21taXQpKQorCQkJcmV0dXJuOwogCiAJCXByaW9fcXVldWVfcHV0KCZyZXZfbGlzdCwgY29tbWl0KTsKIApAQCAtMTI3LDggKzEyOCw3IEBACiAJCQlyZXR1cm4gTlVMTDsKIAogCQljb21taXQgPSBwcmlvX3F1ZXVlX2dldCgmcmV2X2xpc3QpOwotCQlpZiAoIWNvbW1pdC0+b2JqZWN0LnBhcnNlZCkKLQkJCXBhcnNlX2NvbW1pdChjb21taXQpOworCQlwYXJzZV9jb21taXQoY29tbWl0KTsKIAkJcGFyZW50cyA9IGNvbW1pdC0+cGFyZW50czsKIAogCQljb21taXQtPm9iamVjdC5mbGFncyB8PSBQT1BQRUQ7CkBAIC0xNzUsOSArMTc1LDkgQEAKIAkJICovCiAJCWNoYXIgKmxpbmU7CiAJCXdoaWxlICgobGluZSA9IHBhY2tldF9yZWFkX2xpbmUoZmQsIE5VTEwpKSkgewotCQkJaWYgKCFwcmVmaXhjbXAobGluZSwgInNoYWxsb3cgIikpCisJCQlpZiAoc3RhcnRzX3dpdGgobGluZSwgInNoYWxsb3cgIikpCiAJCQkJY29udGludWU7Ci0JCQlpZiAoIXByZWZpeGNtcChsaW5lLCAidW5zaGFsbG93ICIpKQorCQkJaWYgKHN0YXJ0c193aXRoKGxpbmUsICJ1bnNoYWxsb3cgIikpCiAJCQkJY29udGludWU7CiAJCQlkaWUoImdpdCBmZXRjaC1wYWNrOiBleHBlY3RlZCBzaGFsbG93IGxpc3QiKTsKIAkJfQpAQCAtMTkzLDcgKzE5Myw3IEBACiAJCWRpZSgiZ2l0IGZldGNoLXBhY2s6IGV4cGVjdGVkIEFDSy9OQUssIGdvdCBFT0YiKTsKIAlpZiAoIXN0cmNtcChsaW5lLCAiTkFLIikpCiAJCXJldHVybiBOQUs7Ci0JaWYgKCFwcmVmaXhjbXAobGluZSwgIkFDSyAiKSkgeworCWlmIChzdGFydHNfd2l0aChsaW5lLCAiQUNLICIpKSB7CiAJCWlmICghZ2V0X3NoYTFfaGV4KGxpbmUrNCwgcmVzdWx0X3NoYTEpKSB7CiAJCQlpZiAobGVuIDwgNDUpCiAJCQkJcmV0dXJuIEFDSzsKQEAgLTMxMCw3ICszMTAsNyBAQAogCX0KIAogCWlmIChpc19yZXBvc2l0b3J5X3NoYWxsb3coKSkKLQkJd3JpdGVfc2hhbGxvd19jb21taXRzKCZyZXFfYnVmLCAxKTsKKwkJd3JpdGVfc2hhbGxvd19jb21taXRzKCZyZXFfYnVmLCAxLCBOVUxMKTsKIAlpZiAoYXJncy0+ZGVwdGggPiAwKQogCQlwYWNrZXRfYnVmX3dyaXRlKCZyZXFfYnVmLCAiZGVlcGVuICVkIiwgYXJncy0+ZGVwdGgpOwogCXBhY2tldF9idWZfZmx1c2goJnJlcV9idWYpOwpAQCAtMzIyLDEzICszMjIsMTMgQEAKIAogCQlzZW5kX3JlcXVlc3QoYXJncywgZmRbMV0sICZyZXFfYnVmKTsKIAkJd2hpbGUgKChsaW5lID0gcGFja2V0X3JlYWRfbGluZShmZFswXSwgTlVMTCkpKSB7Ci0JCQlpZiAoIXByZWZpeGNtcChsaW5lLCAic2hhbGxvdyAiKSkgeworCQkJaWYgKHN0YXJ0c193aXRoKGxpbmUsICJzaGFsbG93ICIpKSB7CiAJCQkJaWYgKGdldF9zaGExX2hleChsaW5lICsgOCwgc2hhMSkpCiAJCQkJCWRpZSgiaW52YWxpZCBzaGFsbG93IGxpbmU6ICVzIiwgbGluZSk7CiAJCQkJcmVnaXN0ZXJfc2hhbGxvdyhzaGExKTsKIAkJCQljb250aW51ZTsKIAkJCX0KLQkJCWlmICghcHJlZml4Y21wKGxpbmUsICJ1bnNoYWxsb3cgIikpIHsKKwkJCWlmIChzdGFydHNfd2l0aChsaW5lLCAidW5zaGFsbG93ICIpKSB7CiAJCQkJaWYgKGdldF9zaGExX2hleChsaW5lICsgMTAsIHNoYTEpKQogCQkJCQlkaWUoImludmFsaWQgdW5zaGFsbG93IGxpbmU6ICVzIiwgbGluZSk7CiAJCQkJaWYgKCFsb29rdXBfb2JqZWN0KHNoYTEpKQpAQCAtNTA2LDcgKzUwNiw3IEBACiAJCW5leHQgPSByZWYtPm5leHQ7CiAKIAkJaWYgKCFtZW1jbXAocmVmLT5uYW1lLCAicmVmcy8iLCA1KSAmJgotCQkgICAgY2hlY2tfcmVmbmFtZV9mb3JtYXQocmVmLT5uYW1lICsgNSwgMCkpCisJCSAgICBjaGVja19yZWZuYW1lX2Zvcm1hdChyZWYtPm5hbWUsIDApKQogCQkJOyAvKiB0cmFzaCAqLwogCQllbHNlIHsKIAkJCXdoaWxlIChpIDwgbnJfc291Z2h0KSB7CkBAIC01MjIsNyArNTIyLDcgQEAKIAkJfQogCiAJCWlmICgha2VlcCAmJiBhcmdzLT5mZXRjaF9hbGwgJiYKLQkJICAgICghYXJncy0+ZGVwdGggfHwgcHJlZml4Y21wKHJlZi0+bmFtZSwgInJlZnMvdGFncy8iKSkpCisJCSAgICAoIWFyZ3MtPmRlcHRoIHx8ICFzdGFydHNfd2l0aChyZWYtPm5hbWUsICJyZWZzL3RhZ3MvIikpKQogCQkJa2VlcCA9IDE7CiAKIAkJaWYgKGtlZXApIHsKQEAgLTY1OCw3ICs2NTgsNyBAQAogCWNvbnN0IGNoYXIgKmFyZ3ZbMjJdOwogCWNoYXIga2VlcF9hcmdbMjU2XTsKIAljaGFyIGhkcl9hcmdbMjU2XTsKLQljb25zdCBjaGFyICoqYXY7CisJY29uc3QgY2hhciAqKmF2LCAqY21kX25hbWU7CiAJaW50IGRvX2tlZXAgPSBhcmdzLT5rZWVwX3BhY2s7CiAJc3RydWN0IGNoaWxkX3Byb2Nlc3MgY21kOwogCWludCByZXQ7CkBAIC03MDUsNyArNzA1LDcgQEAKIAlpZiAoZG9fa2VlcCkgewogCQlpZiAocGFja19sb2NrZmlsZSkKIAkJCWNtZC5vdXQgPSAtMTsKLQkJKmF2KysgPSAiaW5kZXgtcGFjayI7CisJCSphdisrID0gY21kX25hbWUgPSAiaW5kZXgtcGFjayI7CiAJCSphdisrID0gIi0tc3RkaW4iOwogCQlpZiAoIWFyZ3MtPnF1aWV0ICYmICFhcmdzLT5ub19wcm9ncmVzcykKIAkJCSphdisrID0gIi12IjsKQEAgLTcyMiw3ICs3MjIsNyBAQAogCQkJKmF2KysgPSAiLS1jaGVjay1zZWxmLWNvbnRhaW5lZC1hbmQtY29ubmVjdGVkIjsKIAl9CiAJZWxzZSB7Ci0JCSphdisrID0gInVucGFjay1vYmplY3RzIjsKKwkJKmF2KysgPSBjbWRfbmFtZSA9ICJ1bnBhY2stb2JqZWN0cyI7CiAJCWlmIChhcmdzLT5xdWlldCB8fCBhcmdzLT5ub19wcm9ncmVzcykKIAkJCSphdisrID0gIi1xIjsKIAkJYXJncy0+Y2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCA9IDA7CkBAIC03NDAsMTkgKzc0MCwyMyBAQAogCWNtZC5pbiA9IGRlbXV4Lm91dDsKIAljbWQuZ2l0X2NtZCA9IDE7CiAJaWYgKHN0YXJ0X2NvbW1hbmQoJmNtZCkpCi0JCWRpZSgiZmV0Y2gtcGFjazogdW5hYmxlIHRvIGZvcmsgb2ZmICVzIiwgYXJndlswXSk7CisJCWRpZSgiZmV0Y2gtcGFjazogdW5hYmxlIHRvIGZvcmsgb2ZmICVzIiwgY21kX25hbWUpOwogCWlmIChkb19rZWVwICYmIHBhY2tfbG9ja2ZpbGUpIHsKIAkJKnBhY2tfbG9ja2ZpbGUgPSBpbmRleF9wYWNrX2xvY2tmaWxlKGNtZC5vdXQpOwogCQljbG9zZShjbWQub3V0KTsKIAl9CiAKKwlpZiAoIXVzZV9zaWRlYmFuZCkKKwkJLyogQ2xvc2VkIGJ5IHN0YXJ0X2NvbW1hbmQoKSAqLworCQl4ZFswXSA9IC0xOworCiAJcmV0ID0gZmluaXNoX2NvbW1hbmQoJmNtZCk7CiAJaWYgKCFyZXQgfHwgKGFyZ3MtPmNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgJiYgcmV0ID09IDEpKQogCQlhcmdzLT5zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkID0KIAkJCWFyZ3MtPmNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgJiYKIAkJCXJldCA9PSAwOwogCWVsc2UKLQkJZGllKCIlcyBmYWlsZWQiLCBhcmd2WzBdKTsKKwkJZGllKCIlcyBmYWlsZWQiLCBjbWRfbmFtZSk7CiAJaWYgKHVzZV9zaWRlYmFuZCAmJiBmaW5pc2hfYXN5bmMoJmRlbXV4KSkKIAkJZGllKCJlcnJvciBpbiBzaWRlYmFuZCBkZW11bHRpcGxleGVyIik7CiAJcmV0dXJuIDA7CkBAIC03NjksNiArNzczLDcgQEAKIAkJCQkgaW50IGZkWzJdLAogCQkJCSBjb25zdCBzdHJ1Y3QgcmVmICpvcmlnX3JlZiwKIAkJCQkgc3RydWN0IHJlZiAqKnNvdWdodCwgaW50IG5yX3NvdWdodCwKKwkJCQkgc3RydWN0IHNoYWxsb3dfaW5mbyAqc2ksCiAJCQkJIGNoYXIgKipwYWNrX2xvY2tmaWxlKQogewogCXN0cnVjdCByZWYgKnJlZiA9IGNvcHlfcmVmX2xpc3Qob3JpZ19yZWYpOwpAQCAtODQ1LDcgKzg1MCwxMCBAQAogCWlmIChhcmdzLT5zdGF0ZWxlc3NfcnBjKQogCQlwYWNrZXRfZmx1c2goZmRbMV0pOwogCWlmIChhcmdzLT5kZXB0aCA+IDApCi0JCXNldHVwX2FsdGVybmF0ZV9zaGFsbG93KCZzaGFsbG93X2xvY2ssICZhbHRlcm5hdGVfc2hhbGxvd19maWxlKTsKKwkJc2V0dXBfYWx0ZXJuYXRlX3NoYWxsb3coJnNoYWxsb3dfbG9jaywgJmFsdGVybmF0ZV9zaGFsbG93X2ZpbGUsCisJCQkJCU5VTEwpOworCWVsc2UgaWYgKHNpLT5ucl9vdXJzIHx8IHNpLT5ucl90aGVpcnMpCisJCWFsdGVybmF0ZV9zaGFsbG93X2ZpbGUgPSBzZXR1cF90ZW1wb3Jhcnlfc2hhbGxvdyhzaS0+c2hhbGxvdyk7CiAJZWxzZQogCQlhbHRlcm5hdGVfc2hhbGxvd19maWxlID0gTlVMTDsKIAlpZiAoZ2V0X3BhY2soYXJncywgZmQsIHBhY2tfbG9ja2ZpbGUpKQpAQCAtOTE5LDE0ICs5MjcsMTIxIEBACiAJcmV0dXJuIGRzdDsKIH0KIAorc3RhdGljIHZvaWQgdXBkYXRlX3NoYWxsb3coc3RydWN0IGZldGNoX3BhY2tfYXJncyAqYXJncywKKwkJCSAgIHN0cnVjdCByZWYgKipzb3VnaHQsIGludCBucl9zb3VnaHQsCisJCQkgICBzdHJ1Y3Qgc2hhbGxvd19pbmZvICpzaSkKK3sKKwlzdHJ1Y3Qgc2hhMV9hcnJheSByZWYgPSBTSEExX0FSUkFZX0lOSVQ7CisJaW50ICpzdGF0dXM7CisJaW50IGk7CisKKwlpZiAoYXJncy0+ZGVwdGggPiAwICYmIGFsdGVybmF0ZV9zaGFsbG93X2ZpbGUpIHsKKwkJaWYgKCphbHRlcm5hdGVfc2hhbGxvd19maWxlID09ICdcMCcpIHsgLyogLS11bnNoYWxsb3cgKi8KKwkJCXVubGlua19vcl93YXJuKGdpdF9wYXRoKCJzaGFsbG93IikpOworCQkJcm9sbGJhY2tfbG9ja19maWxlKCZzaGFsbG93X2xvY2spOworCQl9IGVsc2UKKwkJCWNvbW1pdF9sb2NrX2ZpbGUoJnNoYWxsb3dfbG9jayk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoIXNpLT5zaGFsbG93IHx8ICFzaS0+c2hhbGxvdy0+bnIpCisJCXJldHVybjsKKworCWlmIChhbHRlcm5hdGVfc2hhbGxvd19maWxlKSB7CisJCS8qCisJCSAqIFRoZSB0ZW1wb3Jhcnkgc2hhbGxvdyBmaWxlIGlzIG9ubHkgdXNlZnVsIGZvcgorCQkgKiBpbmRleC1wYWNrIGFuZCB1bnBhY2stb2JqZWN0cyBiZWNhdXNlIGl0IG1heQorCQkgKiBjb250YWluIG1vcmUgcm9vdHMgdGhhbiB3ZSB3YW50LiBEZWxldGUgaXQuCisJCSAqLworCQlpZiAoKmFsdGVybmF0ZV9zaGFsbG93X2ZpbGUpCisJCQl1bmxpbmsoYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZSk7CisJCWZyZWUoKGNoYXIgKilhbHRlcm5hdGVfc2hhbGxvd19maWxlKTsKKwl9CisKKwlpZiAoYXJncy0+Y2xvbmluZykgeworCQkvKgorCQkgKiByZW1vdGUgaXMgc2hhbGxvdywgYnV0IHRoaXMgaXMgYSBjbG9uZSwgdGhlcmUgYXJlCisJCSAqIG5vIG9iamVjdHMgaW4gcmVwbyB0byB3b3JyeSBhYm91dC4gQWNjZXB0IGFueQorCQkgKiBzaGFsbG93IHBvaW50cyB0aGF0IGV4aXN0IGluIHRoZSBwYWNrIChpb3cgaW4gcmVwbworCQkgKiBhZnRlciBnZXRfcGFjaygpIGFuZCByZXByZXBhcmVfcGFja2VkX2dpdCgpKQorCQkgKi8KKwkJc3RydWN0IHNoYTFfYXJyYXkgZXh0cmEgPSBTSEExX0FSUkFZX0lOSVQ7CisJCXVuc2lnbmVkIGNoYXIgKCpzaGExKVsyMF0gPSBzaS0+c2hhbGxvdy0+c2hhMTsKKwkJZm9yIChpID0gMDsgaSA8IHNpLT5zaGFsbG93LT5ucjsgaSsrKQorCQkJaWYgKGhhc19zaGExX2ZpbGUoc2hhMVtpXSkpCisJCQkJc2hhMV9hcnJheV9hcHBlbmQoJmV4dHJhLCBzaGExW2ldKTsKKwkJaWYgKGV4dHJhLm5yKSB7CisJCQlzZXR1cF9hbHRlcm5hdGVfc2hhbGxvdygmc2hhbGxvd19sb2NrLAorCQkJCQkJJmFsdGVybmF0ZV9zaGFsbG93X2ZpbGUsCisJCQkJCQkmZXh0cmEpOworCQkJY29tbWl0X2xvY2tfZmlsZSgmc2hhbGxvd19sb2NrKTsKKwkJfQorCQlzaGExX2FycmF5X2NsZWFyKCZleHRyYSk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoIXNpLT5ucl9vdXJzICYmICFzaS0+bnJfdGhlaXJzKQorCQlyZXR1cm47CisKKwlyZW1vdmVfbm9uZXhpc3RlbnRfdGhlaXJzX3NoYWxsb3coc2kpOworCWlmICghc2ktPm5yX291cnMgJiYgIXNpLT5ucl90aGVpcnMpCisJCXJldHVybjsKKwlmb3IgKGkgPSAwOyBpIDwgbnJfc291Z2h0OyBpKyspCisJCXNoYTFfYXJyYXlfYXBwZW5kKCZyZWYsIHNvdWdodFtpXS0+b2xkX3NoYTEpOworCXNpLT5yZWYgPSAmcmVmOworCisJaWYgKGFyZ3MtPnVwZGF0ZV9zaGFsbG93KSB7CisJCS8qCisJCSAqIHJlbW90ZSBpcyBhbHNvIHNoYWxsb3csIC5naXQvc2hhbGxvdyBtYXkgYmUgdXBkYXRlZAorCQkgKiBzbyBhbGwgcmVmcyBjYW4gYmUgYWNjZXB0ZWQuIE1ha2Ugc3VyZSB3ZSBvbmx5IGFkZAorCQkgKiBzaGFsbG93IHJvb3RzIHRoYXQgYXJlIGFjdHVhbGx5IHJlYWNoYWJsZSBmcm9tIG5ldworCQkgKiByZWZzLgorCQkgKi8KKwkJc3RydWN0IHNoYTFfYXJyYXkgZXh0cmEgPSBTSEExX0FSUkFZX0lOSVQ7CisJCXVuc2lnbmVkIGNoYXIgKCpzaGExKVsyMF0gPSBzaS0+c2hhbGxvdy0+c2hhMTsKKwkJYXNzaWduX3NoYWxsb3dfY29tbWl0c190b19yZWZzKHNpLCBOVUxMLCBOVUxMKTsKKwkJaWYgKCFzaS0+bnJfb3VycyAmJiAhc2ktPm5yX3RoZWlycykgeworCQkJc2hhMV9hcnJheV9jbGVhcigmcmVmKTsKKwkJCXJldHVybjsKKwkJfQorCQlmb3IgKGkgPSAwOyBpIDwgc2ktPm5yX291cnM7IGkrKykKKwkJCXNoYTFfYXJyYXlfYXBwZW5kKCZleHRyYSwgc2hhMVtzaS0+b3Vyc1tpXV0pOworCQlmb3IgKGkgPSAwOyBpIDwgc2ktPm5yX3RoZWlyczsgaSsrKQorCQkJc2hhMV9hcnJheV9hcHBlbmQoJmV4dHJhLCBzaGExW3NpLT50aGVpcnNbaV1dKTsKKwkJc2V0dXBfYWx0ZXJuYXRlX3NoYWxsb3coJnNoYWxsb3dfbG9jaywKKwkJCQkJJmFsdGVybmF0ZV9zaGFsbG93X2ZpbGUsCisJCQkJCSZleHRyYSk7CisJCWNvbW1pdF9sb2NrX2ZpbGUoJnNoYWxsb3dfbG9jayk7CisJCXNoYTFfYXJyYXlfY2xlYXIoJmV4dHJhKTsKKwkJc2hhMV9hcnJheV9jbGVhcigmcmVmKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogcmVtb3RlIGlzIGFsc28gc2hhbGxvdywgY2hlY2sgd2hhdCByZWYgaXMgc2FmZSB0byB1cGRhdGUKKwkgKiB3aXRob3V0IHVwZGF0aW5nIC5naXQvc2hhbGxvdworCSAqLworCXN0YXR1cyA9IHhjYWxsb2MobnJfc291Z2h0LCBzaXplb2YoKnN0YXR1cykpOworCWFzc2lnbl9zaGFsbG93X2NvbW1pdHNfdG9fcmVmcyhzaSwgTlVMTCwgc3RhdHVzKTsKKwlpZiAoc2ktPm5yX291cnMgfHwgc2ktPm5yX3RoZWlycykgeworCQlmb3IgKGkgPSAwOyBpIDwgbnJfc291Z2h0OyBpKyspCisJCQlpZiAoc3RhdHVzW2ldKQorCQkJCXNvdWdodFtpXS0+c3RhdHVzID0gUkVGX1NUQVRVU19SRUpFQ1RfU0hBTExPVzsKKwl9CisJZnJlZShzdGF0dXMpOworCXNoYTFfYXJyYXlfY2xlYXIoJnJlZik7Cit9CisKIHN0cnVjdCByZWYgKmZldGNoX3BhY2soc3RydWN0IGZldGNoX3BhY2tfYXJncyAqYXJncywKIAkJICAgICAgIGludCBmZFtdLCBzdHJ1Y3QgY2hpbGRfcHJvY2VzcyAqY29ubiwKIAkJICAgICAgIGNvbnN0IHN0cnVjdCByZWYgKnJlZiwKIAkJICAgICAgIGNvbnN0IGNoYXIgKmRlc3QsCiAJCSAgICAgICBzdHJ1Y3QgcmVmICoqc291Z2h0LCBpbnQgbnJfc291Z2h0LAorCQkgICAgICAgc3RydWN0IHNoYTFfYXJyYXkgKnNoYWxsb3csCiAJCSAgICAgICBjaGFyICoqcGFja19sb2NrZmlsZSkKIHsKIAlzdHJ1Y3QgcmVmICpyZWZfY3B5OworCXN0cnVjdCBzaGFsbG93X2luZm8gc2k7CiAKIAlmZXRjaF9wYWNrX3NldHVwKCk7CiAJaWYgKG5yX3NvdWdodCkKQEAgLTkzNiwxNiArMTA1MSwxMSBAQAogCQlwYWNrZXRfZmx1c2goZmRbMV0pOwogCQlkaWUoIm5vIG1hdGNoaW5nIHJlbW90ZSBoZWFkIik7CiAJfQotCXJlZl9jcHkgPSBkb19mZXRjaF9wYWNrKGFyZ3MsIGZkLCByZWYsIHNvdWdodCwgbnJfc291Z2h0LCBwYWNrX2xvY2tmaWxlKTsKLQotCWlmIChhcmdzLT5kZXB0aCA+IDAgJiYgYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZSkgewotCQlpZiAoKmFsdGVybmF0ZV9zaGFsbG93X2ZpbGUgPT0gJ1wwJykgeyAvKiAtLXVuc2hhbGxvdyAqLwotCQkJdW5saW5rX29yX3dhcm4oZ2l0X3BhdGgoInNoYWxsb3ciKSk7Ci0JCQlyb2xsYmFja19sb2NrX2ZpbGUoJnNoYWxsb3dfbG9jayk7Ci0JCX0gZWxzZQotCQkJY29tbWl0X2xvY2tfZmlsZSgmc2hhbGxvd19sb2NrKTsKLQl9Ci0KKwlwcmVwYXJlX3NoYWxsb3dfaW5mbygmc2ksIHNoYWxsb3cpOworCXJlZl9jcHkgPSBkb19mZXRjaF9wYWNrKGFyZ3MsIGZkLCByZWYsIHNvdWdodCwgbnJfc291Z2h0LAorCQkJCSZzaSwgcGFja19sb2NrZmlsZSk7CiAJcmVwcmVwYXJlX3BhY2tlZF9naXQoKTsKKwl1cGRhdGVfc2hhbGxvdyhhcmdzLCBzb3VnaHQsIG5yX3NvdWdodCwgJnNpKTsKKwljbGVhcl9zaGFsbG93X2luZm8oJnNpKTsKIAlyZXR1cm4gcmVmX2NweTsKIH0KZGlmZiAtLWdpdCBhL2ZldGNoLXBhY2suaCBiL2ZldGNoLXBhY2suaAppbmRleCA0MGYwOGJhLi5iYjdmZDc2IDEwMDY0NAotLS0gYS9mZXRjaC1wYWNrLmgKKysrIGIvZmV0Y2gtcGFjay5oCkBAIC0yLDIzICsyLDI5IEBACiAjZGVmaW5lIEZFVENIX1BBQ0tfSAogCiAjaW5jbHVkZSAic3RyaW5nLWxpc3QuaCIKKyNpbmNsdWRlICJydW4tY29tbWFuZC5oIgorCitzdHJ1Y3Qgc2hhMV9hcnJheTsKIAogc3RydWN0IGZldGNoX3BhY2tfYXJncyB7CiAJY29uc3QgY2hhciAqdXBsb2FkcGFjazsKIAlpbnQgdW5wYWNrbGltaXQ7CiAJaW50IGRlcHRoOwotCXVuc2lnbmVkIHF1aWV0OjEsCi0JCWtlZXBfcGFjazoxLAotCQlsb2NrX3BhY2s6MSwKLQkJdXNlX3RoaW5fcGFjazoxLAotCQlmZXRjaF9hbGw6MSwKLQkJc3RkaW5fcmVmczoxLAotCQl2ZXJib3NlOjEsCi0JCW5vX3Byb2dyZXNzOjEsCi0JCWluY2x1ZGVfdGFnOjEsCi0JCXN0YXRlbGVzc19ycGM6MSwKLQkJY2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZDoxLAotCQlzZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkOjE7CisJdW5zaWduZWQgcXVpZXQ6MTsKKwl1bnNpZ25lZCBrZWVwX3BhY2s6MTsKKwl1bnNpZ25lZCBsb2NrX3BhY2s6MTsKKwl1bnNpZ25lZCB1c2VfdGhpbl9wYWNrOjE7CisJdW5zaWduZWQgZmV0Y2hfYWxsOjE7CisJdW5zaWduZWQgc3RkaW5fcmVmczoxOworCXVuc2lnbmVkIGRpYWdfdXJsOjE7CisJdW5zaWduZWQgdmVyYm9zZToxOworCXVuc2lnbmVkIG5vX3Byb2dyZXNzOjE7CisJdW5zaWduZWQgaW5jbHVkZV90YWc6MTsKKwl1bnNpZ25lZCBzdGF0ZWxlc3NfcnBjOjE7CisJdW5zaWduZWQgY2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZDoxOworCXVuc2lnbmVkIHNlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQ6MTsKKwl1bnNpZ25lZCBjbG9uaW5nOjE7CisJdW5zaWduZWQgdXBkYXRlX3NoYWxsb3c6MTsKIH07CiAKIC8qCkBAIC0zMiw2ICszOCw3IEBACiAJCSAgICAgICBjb25zdCBjaGFyICpkZXN0LAogCQkgICAgICAgc3RydWN0IHJlZiAqKnNvdWdodCwKIAkJICAgICAgIGludCBucl9zb3VnaHQsCisJCSAgICAgICBzdHJ1Y3Qgc2hhMV9hcnJheSAqc2hhbGxvdywKIAkJICAgICAgIGNoYXIgKipwYWNrX2xvY2tmaWxlKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9nZXR0ZXh0LmMgYi9nZXR0ZXh0LmMKaW5kZXggNzFlOTU0NS4uOGIyZGE0NiAxMDA2NDQKLS0tIGEvZ2V0dGV4dC5jCisrKyBiL2dldHRleHQuYwpAQCAtMjksNiArMjksMTcgQEAKICNlbmRpZgogCiAjaWZuZGVmIE5PX0dFVFRFWFQKK3N0YXRpYyBpbnQgdGVzdF92c25wcmludGYoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisJY2hhciBidWZbMjZdOworCWludCByZXQ7CisJdmFfbGlzdCBhcDsKKwl2YV9zdGFydChhcCwgZm10KTsKKwlyZXQgPSB2c25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgZm10LCBhcCk7CisJdmFfZW5kKGFwKTsKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgY29uc3QgY2hhciAqY2hhcnNldDsKIHN0YXRpYyB2b2lkIGluaXRfZ2V0dGV4dF9jaGFyc2V0KGNvbnN0IGNoYXIgKmRvbWFpbikKIHsKQEAgLTk5LDkgKzExMCw3IEBACiAJICAgJCBMQU5HVUFHRT0gTEFORz1kZV9ERS51dGY4IC4vdGVzdAogCSAgIHRlc3Q6IEtlaW4gcGFzc2VuZGVzIEdlcj90IGdlZnVuZGVuCiAKLQkgICBJbiB0aGUgbG9uZyB0ZXJtIHdlIHNob3VsZCBwcm9iYWJseSBzZWUgYWJvdXQgZ2V0dGluZyB0aGF0Ci0JICAgdnNucHJpbnRmIGJ1ZyBpbiBnbGliYyBmaXhlZCwgYW5kIGF1ZGl0IG91ciBjb2RlIHNvIGl0IHdvbid0Ci0JICAgZmFsbCBhcGFydCB1bmRlciBhIG5vbi1DIGxvY2FsZS4KKwkgICBUaGUgdnNucHJpbnRmIGJ1ZyBoYXMgYmVlbiBmaXhlZCBzaW5jZSBnbGliYyAyLjE3LgogCiAJICAgVGhlbiB3ZSBjb3VsZCBzaW1wbHkgc2V0IExDX0NUWVBFIGZyb20gdGhlIGVudmlyb25tZW50LCB3aGljaCB3b3VsZAogCSAgIG1ha2UgdGhpbmdzIGxpa2UgdGhlIGV4dGVybmFsIHBlcnJvcigzKSBtZXNzYWdlcyB3b3JrLgpAQCAtMTE1LDcgKzEyNCw5IEBACiAJc2V0bG9jYWxlKExDX0NUWVBFLCAiIik7CiAJY2hhcnNldCA9IGxvY2FsZV9jaGFyc2V0KCk7CiAJYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQoZG9tYWluLCBjaGFyc2V0KTsKLQlzZXRsb2NhbGUoTENfQ1RZUEUsICJDIik7CisJLyogdGhlIHN0cmluZyBpcyB0YWtlbiBmcm9tIHYwLjk5LjZ+MSAqLworCWlmICh0ZXN0X3ZzbnByaW50ZigiJS4qcyIsIDEzLCAiRGF2aWRfS1wzNDVnZWRhbCIpIDwgMCkKKwkJc2V0bG9jYWxlKExDX0NUWVBFLCAiQyIpOwogfQogCiB2b2lkIGdpdF9zZXR1cF9nZXR0ZXh0KHZvaWQpCmRpZmYgLS1naXQgYS9naXQtYWRkLS1pbnRlcmFjdGl2ZS5wZXJsIGIvZ2l0LWFkZC0taW50ZXJhY3RpdmUucGVybAppbmRleCA1MTU2Mzg0Li4yNGJiMWFiIDEwMDc1NQotLS0gYS9naXQtYWRkLS1pbnRlcmFjdGl2ZS5wZXJsCisrKyBiL2dpdC1hZGQtLWludGVyYWN0aXZlLnBlcmwKQEAgLTI2Myw2ICsyNjMsMTcgQEAKIAlyZXR1cm4gJzRiODI1ZGM2NDJjYjZlYjlhMDYwZTU0YmY4ZDY5Mjg4ZmJlZTQ5MDQnOwogfQogCitzdWIgZ2V0X2RpZmZfcmVmZXJlbmNlIHsKKwlteSAkcmVmID0gc2hpZnQ7CisJaWYgKGRlZmluZWQgJHJlZiBhbmQgJHJlZiBuZSAnSEVBRCcpIHsKKwkJcmV0dXJuICRyZWY7CisJfSBlbHNpZiAoaXNfaW5pdGlhbF9jb21taXQoKSkgeworCQlyZXR1cm4gZ2V0X2VtcHR5X3RyZWUoKTsKKwl9IGVsc2UgeworCQlyZXR1cm4gJ0hFQUQnOworCX0KK30KKwogIyBSZXR1cm5zIGxpc3Qgb2YgaGFzaGVzLCBjb250ZW50cyBvZiBlYWNoIG9mIHdoaWNoIGFyZToKICMgVkFMVUU6CXBhdGhuYW1lCiAjIEJJTkFSWToJaXMgYSBiaW5hcnkgcGF0aApAQCAtMjg2LDE0ICsyOTcsNyBAQAogCQlyZXR1cm4gaWYgKCFAdHJhY2tlZCk7CiAJfQogCi0JbXkgJHJlZmVyZW5jZTsKLQlpZiAoZGVmaW5lZCAkcGF0Y2hfbW9kZV9yZXZpc2lvbiBhbmQgJHBhdGNoX21vZGVfcmV2aXNpb24gbmUgJ0hFQUQnKSB7Ci0JCSRyZWZlcmVuY2UgPSAkcGF0Y2hfbW9kZV9yZXZpc2lvbjsKLQl9IGVsc2lmIChpc19pbml0aWFsX2NvbW1pdCgpKSB7Ci0JCSRyZWZlcmVuY2UgPSBnZXRfZW1wdHlfdHJlZSgpOwotCX0gZWxzZSB7Ci0JCSRyZWZlcmVuY2UgPSAnSEVBRCc7Ci0JfQorCW15ICRyZWZlcmVuY2UgPSBnZXRfZGlmZl9yZWZlcmVuY2UoJHBhdGNoX21vZGVfcmV2aXNpb24pOwogCWZvciAocnVuX2NtZF9waXBlKHF3KGdpdCBkaWZmLWluZGV4IC0tY2FjaGVkCiAJCQkgICAgIC0tbnVtc3RhdCAtLXN1bW1hcnkpLCAkcmVmZXJlbmNlLAogCQkJICAgICAnLS0nLCBAdHJhY2tlZCkpIHsKQEAgLTczNyw3ICs3NDEsNyBAQAogCQlzcGxpY2UgQGRpZmZfY21kLCAxLCAwLCAiLS1kaWZmLWFsZ29yaXRobT0ke2RpZmZfYWxnb3JpdGhtfSI7CiAJfQogCWlmIChkZWZpbmVkICRwYXRjaF9tb2RlX3JldmlzaW9uKSB7Ci0JCXB1c2ggQGRpZmZfY21kLCAkcGF0Y2hfbW9kZV9yZXZpc2lvbjsKKwkJcHVzaCBAZGlmZl9jbWQsIGdldF9kaWZmX3JlZmVyZW5jZSgkcGF0Y2hfbW9kZV9yZXZpc2lvbik7CiAJfQogCW15IEBkaWZmID0gcnVuX2NtZF9waXBlKCJnaXQiLCBAZGlmZl9jbWQsICItLSIsICRwYXRoKTsKIAlteSBAY29sb3JlZCA9ICgpOwpkaWZmIC0tZ2l0IGEvZ2l0LWFtLnNoIGIvZ2l0LWFtLnNoCmluZGV4IDdlYTQwZmUuLmJiZWE0MzAgMTAwNzU1Ci0tLSBhL2dpdC1hbS5zaAorKysgYi9naXQtYW0uc2gKQEAgLTMwMiw3ICszMDIsNyBAQAogCQkJIyBub3Qgc3RhcnRpbmcgd2l0aCBBdXRob3IsIEZyb20gb3IgRGF0ZSBpcyB0aGUKIAkJCSMgc3ViamVjdCwgYW5kIHRoZSBib2R5IHN0YXJ0cyB3aXRoIHRoZSBuZXh0IG5vbmVtcHR5CiAJCQkjIGxpbmUgbm90IHN0YXJ0aW5nIHdpdGggQXV0aG9yLCBGcm9tIG9yIERhdGUKLQkJCXBlcmwgLW5lICdCRUdJTiB7ICRzdWJqZWN0ID0gMCB9CisJCQlAQFBFUkxAQCAtbmUgJ0JFR0lOIHsgJHN1YmplY3QgPSAwIH0KIAkJCQlpZiAoJHN1YmplY3QgPiAxKSB7IHByaW50IDsgfQogCQkJCWVsc2lmICgvXlxzKyQvKSB7IG5leHQgOyB9CiAJCQkJZWxzaWYgKC9eQXV0aG9yOi8pIHsgcy9BdXRob3IvRnJvbS8gOyBwcmludCA7fQpAQCAtMzM0LDcgKzMzNCw3IEBACiAJCQkjIFNpbmNlIHdlIGNhbm5vdCBndWFyYW50ZWUgdGhhdCB0aGUgY29tbWl0IG1lc3NhZ2UgaXMgaW4KIAkJCSMgZ2l0LWZyaWVuZGx5IGZvcm1hdCwgd2UgcHV0IG5vIFN1YmplY3Q6IGxpbmUgYW5kIGp1c3QgY29uc3VtZQogCQkJIyBhbGwgb2YgdGhlIG1lc3NhZ2UgYXMgdGhlIGJvZHkKLQkJCUxBTkc9QyBMQ19BTEw9QyBwZXJsIC1NJ1BPU0lYIHF3KHN0cmZ0aW1lKScgLW5lICdCRUdJTiB7ICRzdWJqZWN0ID0gMCB9CisJCQlMQU5HPUMgTENfQUxMPUMgQEBQRVJMQEAgLU0nUE9TSVggcXcoc3RyZnRpbWUpJyAtbmUgJ0JFR0lOIHsgJHN1YmplY3QgPSAwIH0KIAkJCQlpZiAoJHN1YmplY3QpIHsgcHJpbnQgOyB9CiAJCQkJZWxzaWYgKC9eXCMgVXNlciAvKSB7IHMvXCMgVXNlci9Gcm9tOi8gOyBwcmludCA7IH0KIAkJCQllbHNpZiAoL15cIyBEYXRlIC8pIHsKZGlmZiAtLWdpdCBhL2dpdC1iaXNlY3Quc2ggYi9naXQtYmlzZWN0LnNoCmluZGV4IDlmMDY0YjYuLjczYjRjMTQgMTAwNzU1Ci0tLSBhL2dpdC1iaXNlY3Quc2gKKysrIGIvZ2l0LWJpc2VjdC5zaApAQCAtMTM3LDcgKzEzNyw3IEBACiAJCQkjIGNvZ2l0byB1c2FnZSwgYW5kIGNvZ2l0byB1c2VycyBzaG91bGQgdW5kZXJzdGFuZAogCQkJIyBpdCByZWxhdGVzIHRvIGNnLXNlZWsuCiAJCQlbIC1zICIkR0lUX0RJUi9oZWFkLW5hbWUiIF0gJiYKLQkJCQlkaWUgIiQoZ2V0dGV4dCAid29uJ3QgYmlzZWN0IG9uIHNlZWtlZCB0cmVlIikiCisJCQkJZGllICIkKGdldHRleHQgIndvbid0IGJpc2VjdCBvbiBjZy1zZWVrJ2VkIHRyZWUiKSIKIAkJCXN0YXJ0X2hlYWQ9IiR7aGVhZCNyZWZzL2hlYWRzL30iCiAJCQk7OwogCQkqKQpkaWZmIC0tZ2l0IGEvZ2l0LWNvbXBhdC11dGlsLmggYi9naXQtY29tcGF0LXV0aWwuaAppbmRleCA5NmQ4ODgxLi5jYmQ4NmMzIDEwMDY0NAotLS0gYS9naXQtY29tcGF0LXV0aWwuaAorKysgYi9naXQtY29tcGF0LXV0aWwuaApAQCAtNzUsNyArNzUsNyBAQAogIyBlbmRpZgogI2VsaWYgIWRlZmluZWQoX19BUFBMRV9fKSAmJiAhZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19VU0xDX18pICYmIFwKICAgICAgICFkZWZpbmVkKF9NX1VOSVgpICYmICFkZWZpbmVkKF9fc2dpKSAmJiAhZGVmaW5lZChfX0RyYWdvbkZseV9fKSAmJiBcCi0gICAgICAhZGVmaW5lZChfX1RBTkRFTSkgJiYgIWRlZmluZWQoX19RTlhfXykKKyAgICAgICFkZWZpbmVkKF9fVEFOREVNKSAmJiAhZGVmaW5lZChfX1FOWF9fKSAmJiAhZGVmaW5lZChfX01pckJTRF9fKQogI2RlZmluZSBfWE9QRU5fU09VUkNFIDYwMCAvKiBnbGliYzIgYW5kIEFJWCA1LjNMIG5lZWQgNTAwLCBPcGVuQlNEIG5lZWRzIDYwMCBmb3IgU19JU0xOSygpICovCiAjZGVmaW5lIF9YT1BFTl9TT1VSQ0VfRVhURU5ERUQgMSAvKiBBSVggNS4zTCBuZWVkcyB0aGlzICovCiAjZW5kaWYKQEAgLTg2LDcgKzg2LDcgQEAKICNkZWZpbmUgX1NHSV9TT1VSQ0UgMQogCiAjaWYgZGVmaW5lZChXSU4zMikgJiYgIWRlZmluZWQoX19DWUdXSU5fXykgLyogQm90aCBNaW5HVyBhbmQgTVNWQyAqLwotIyBpZiBkZWZpbmVkIChfTVNDX1ZFUikKKyMgaWYgZGVmaW5lZCAoX01TQ19WRVIpICYmICFkZWZpbmVkKF9XSU4zMl9XSU5OVCkKICMgIGRlZmluZSBfV0lOMzJfV0lOTlQgMHgwNTAyCiAjIGVuZGlmCiAjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4gIC8qIHN0b3BzIHdpbmRvd3MuaCBpbmNsdWRpbmcgd2luc29jay5oICovCkBAIC0zMjUsNiArMzI1LDE2IEBACiBleHRlcm4gaW50IGVycm9yKGNvbnN0IGNoYXIgKmVyciwgLi4uKSBfX2F0dHJpYnV0ZV9fKChmb3JtYXQgKHByaW50ZiwgMSwgMikpKTsKIGV4dGVybiB2b2lkIHdhcm5pbmcoY29uc3QgY2hhciAqZXJyLCAuLi4pIF9fYXR0cmlidXRlX18oKGZvcm1hdCAocHJpbnRmLCAxLCAyKSkpOwogCisjaWZuZGVmIE5PX09QRU5TU0wKKyNpZmRlZiBBUFBMRV9DT01NT05fQ1JZUFRPCisjaW5jbHVkZSAiY29tcGF0L2FwcGxlLWNvbW1vbi1jcnlwdG8uaCIKKyNlbHNlCisjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2htYWMuaD4KKyNlbmRpZiAvKiBBUFBMRV9DT01NT05fQ1JZUFRPICovCisjaW5jbHVkZSA8b3BlbnNzbC94NTA5djMuaD4KKyNlbmRpZiAvKiBOT19PUEVOU1NMICovCisKIC8qCiAgKiBMZXQgY2FsbGVycyBiZSBhd2FyZSBvZiB0aGUgY29uc3RhbnQgcmV0dXJuIHZhbHVlOyB0aGlzIGNhbiBoZWxwCiAgKiBnY2Mgd2l0aCAtV3VuaW5pdGlhbGl6ZWQgYW5hbHlzaXMuIFdlIHJlc3RyaWN0IHRoaXMgdHJpY2sgdG8gZ2NjLCB0aG91Z2gsCkBAIC0zNDAsNyArMzUwLDkgQEAKIGV4dGVybiB2b2lkIHNldF9lcnJvcl9yb3V0aW5lKHZvaWQgKCpyb3V0aW5lKShjb25zdCBjaGFyICplcnIsIHZhX2xpc3QgcGFyYW1zKSk7CiBleHRlcm4gdm9pZCBzZXRfZGllX2lzX3JlY3Vyc2luZ19yb3V0aW5lKGludCAoKnJvdXRpbmUpKHZvaWQpKTsKIAorZXh0ZXJuIGludCBzdGFydHNfd2l0aChjb25zdCBjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnByZWZpeCk7CiBleHRlcm4gaW50IHByZWZpeGNtcChjb25zdCBjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnByZWZpeCk7CitleHRlcm4gaW50IGVuZHNfd2l0aChjb25zdCBjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnN1ZmZpeCk7CiBleHRlcm4gaW50IHN1ZmZpeGNtcChjb25zdCBjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnN1ZmZpeCk7CiAKIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqc2tpcF9wcmVmaXgoY29uc3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICpwcmVmaXgpCkBAIC01MDksNyArNTIxLDcgQEAKIGNvbnN0IGNoYXIgKmluZXRfbnRvcChpbnQgYWYsIGNvbnN0IHZvaWQgKnNyYywgY2hhciAqZHN0LCBzaXplX3Qgc2l6ZSk7CiAjZW5kaWYKIAotZXh0ZXJuIHZvaWQgcmVsZWFzZV9wYWNrX21lbW9yeShzaXplX3QsIGludCk7CitleHRlcm4gdm9pZCByZWxlYXNlX3BhY2tfbWVtb3J5KHNpemVfdCk7CiAKIHR5cGVkZWYgdm9pZCAoKnRyeV90b19mcmVlX3QpKHNpemVfdCk7CiBleHRlcm4gdHJ5X3RvX2ZyZWVfdCBzZXRfdHJ5X3RvX2ZyZWVfcm91dGluZSh0cnlfdG9fZnJlZV90KTsKZGlmZiAtLWdpdCBhL2dpdC1jdnNzZXJ2ZXIucGVybCBiL2dpdC1jdnNzZXJ2ZXIucGVybAppbmRleCA2N2IxZTdiLi45NWU2OWIxIDEwMDc1NQotLS0gYS9naXQtY3Zzc2VydmVyLnBlcmwKKysrIGIvZ2l0LWN2c3NlcnZlci5wZXJsCkBAIC00MzAsMTAgKzQzMCwxMCBAQAogCiAgICAgJGxvZy0+ZGVidWcoInJlcV92YWxpZHJlcXVlc3RzIik7CiAKLSAgICAkbG9nLT5kZWJ1ZygiU0VORCA6IFZhbGlkLXJlcXVlc3RzICIgLiBqb2luKCIgIixrZXlzICUkbWV0aG9kcykpOworICAgICRsb2ctPmRlYnVnKCJTRU5EIDogVmFsaWQtcmVxdWVzdHMgIiAuIGpvaW4oIiAiLHNvcnQga2V5cyAlJG1ldGhvZHMpKTsKICAgICAkbG9nLT5kZWJ1ZygiU0VORCA6IG9rIik7CiAKLSAgICBwcmludCAiVmFsaWQtcmVxdWVzdHMgIiAuIGpvaW4oIiAiLGtleXMgJSRtZXRob2RzKSAuICJcbiI7CisgICAgcHJpbnQgIlZhbGlkLXJlcXVlc3RzICIgLiBqb2luKCIgIixzb3J0IGtleXMgJSRtZXRob2RzKSAuICJcbiI7CiAgICAgcHJpbnQgIm9rXG4iOwogfQogCkBAIC0yMTI0LDcgKzIxMjQsNyBAQAogICAgICAgICAgICAgcHJpbnQgIk0gcmV0cmlldmluZyByZXZpc2lvbiAkbWV0YTItPntyZXZpc2lvbn1cbiIKICAgICAgICAgfQogICAgICAgICBwcmludCAiTSBkaWZmICI7Ci0gICAgICAgIGZvcmVhY2ggbXkgJG9wdCAoIGtleXMgJXskc3RhdGUtPntvcHR9fSApCisgICAgICAgIGZvcmVhY2ggbXkgJG9wdCAoIHNvcnQga2V5cyAleyRzdGF0ZS0+e29wdH19ICkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCByZWYgJHN0YXRlLT57b3B0fXskb3B0fSBlcSAiQVJSQVkiICkKICAgICAgICAgICAgIHsKQEAgLTQwNTAsNyArNDA1MCw3IEBACiAgICAgICAgICAgICBjbG9zZSBGSUxFTElTVDsKIAogICAgICAgICAgICAgIyBEZXRlY3QgZGVsZXRlZCBmaWxlcwotICAgICAgICAgICAgZm9yZWFjaCBteSAkZmlsZSAoIGtleXMgJSRoZWFkICkKKyAgICAgICAgICAgIGZvcmVhY2ggbXkgJGZpbGUgKCBzb3J0IGtleXMgJSRoZWFkICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB1bmxlc3MgKCBleGlzdHMgJHNlZW5fZmlsZXMtPnskZmlsZX0gb3IgJGhlYWQtPnskZmlsZX17ZmlsZWhhc2h9IGVxICJkZWxldGVkIiApCiAgICAgICAgICAgICAgICAgewpAQCAtNDA3OCw3ICs0MDc4LDcgQEAKICAgICB9CiAKICAgICAkc2VsZi0+ZGVsZXRlX2hlYWQoKTsKLSAgICBmb3JlYWNoIG15ICRmaWxlICgga2V5cyAlJGhlYWQgKQorICAgIGZvcmVhY2ggbXkgJGZpbGUgKCBzb3J0IGtleXMgJSRoZWFkICkKICAgICB7CiAgICAgICAgICRzZWxmLT5pbnNlcnRfaGVhZCgKICAgICAgICAgICAgICRmaWxlLApAQCAtNDMzOCw3ICs0MzM4LDcgQEAKID1oZWFkMiBnZXRSZXZpc2lvbkRpck1hcAogCiBBICJyZXZpc2lvbiBkaXIgbWFwIiBjb250YWlucyBhbGwgdGhlIHBsYWluLWZpbGUgZmlsZW5hbWVzIGFzc29jaWF0ZWQKLXdpdGggYSBwYXJ0aWN1bGFyIHJldmlzaW9uICh0cmVlaXNoKSwgb3JnYW5pemVkIGJ5IGRpcmVjdG9yeToKK3dpdGggYSBwYXJ0aWN1bGFyIHJldmlzaW9uICh0cmVlLWlzaCksIG9yZ2FuaXplZCBieSBkaXJlY3Rvcnk6CiAKICAgJHR5cGUgPSAkb3V0LT57JGRpcn17JGZ1bGxOYW1lfQogCmRpZmYgLS1naXQgYS9naXQtZGlmZnRvb2wtLWhlbHBlci5zaCBiL2dpdC1kaWZmdG9vbC0taGVscGVyLnNoCmluZGV4IGIwMGVkOTUuLjdlZjM2YjkgMTAwNzU1Ci0tLSBhL2dpdC1kaWZmdG9vbC0taGVscGVyLnNoCisrKyBiL2dpdC1kaWZmdG9vbC0taGVscGVyLnNoCkBAIC00MCw3ICs0MCw4IEBACiAJIyB0aGUgdXNlciB3aXRoIHRoZSByZWFsICRNRVJHRUQgbmFtZSBiZWZvcmUgbGF1bmNoaW5nICRtZXJnZV90b29sLgogCWlmIHNob3VsZF9wcm9tcHQKIAl0aGVuCi0JCXByaW50ZiAiXG5WaWV3aW5nOiAnJXMnXG4iICIkTUVSR0VEIgorCQlwcmludGYgIlxuVmlld2luZyAoJXMvJXMpOiAnJXMnXG4iICIkR0lUX0RJRkZfUEFUSF9DT1VOVEVSIiBcCisJCQkiJEdJVF9ESUZGX1BBVEhfVE9UQUwiICIkTUVSR0VEIgogCQlpZiB1c2VfZXh0X2NtZAogCQl0aGVuCiAJCQlwcmludGYgIkxhdW5jaCAnJXMnIFtZL25dOiAiIFwKZGlmZiAtLWdpdCBhL2dpdC1maWx0ZXItYnJhbmNoLnNoIGIvZ2l0LWZpbHRlci1icmFuY2guc2gKaW5kZXggYWMyYTAwNS4uODZkNjk5NCAxMDA3NTUKLS0tIGEvZ2l0LWZpbHRlci1icmFuY2guc2gKKysrIGIvZ2l0LWZpbHRlci1icmFuY2guc2gKQEAgLTI1NSw3ICsyNTUsNyBAQAogCXJlbWFwX3RvX2FuY2VzdG9yPXQKIGZpCiAKLXJldl9hcmdzPSQoZ2l0IHJldi1wYXJzZSAtLXJldnMtb25seSAiJEAiKQorZ2l0IHJldi1wYXJzZSAtLXJldnMtb25seSAiJEAiID4uLi9wYXJzZQogCiBjYXNlICIkZmlsdGVyX3N1YmRpciIgaW4KICIiKQpAQCAtMjY4LDcgKzI2OCw3IEBACiBlc2FjCiAKIGdpdCByZXYtbGlzdCAtLXJldmVyc2UgLS10b3BvLW9yZGVyIC0tZGVmYXVsdCBIRUFEIFwKLQktLXBhcmVudHMgLS1zaW1wbGlmeS1tZXJnZXMgJHJldl9hcmdzICIkQCIgPiAuLi9yZXZzIHx8CisJLS1wYXJlbnRzIC0tc2ltcGxpZnktbWVyZ2VzIC0tc3RkaW4gIiRAIiA8Li4vcGFyc2UgPi4uL3JldnMgfHwKIAlkaWUgIkNvdWxkIG5vdCBnZXQgdGhlIGNvbW1pdHMiCiBjb21taXRzPSQod2MgLWwgPC4uL3JldnMgfCB0ciAtZCAiICIpCiAKQEAgLTI4MywxMSArMjgzLDEyIEBACiAKIAljYXNlICIkZmlsdGVyX3N1YmRpciIgaW4KIAkiIikKLQkJZ2l0IHJlYWQtdHJlZSAtaSAtbSAkY29tbWl0CisJCUdJVF9BTExPV19OVUxMX1NIQTE9MSBnaXQgcmVhZC10cmVlIC1pIC1tICRjb21taXQKIAkJOzsKIAkqKQogCQkjIFRoZSBjb21taXQgbWF5IG5vdCBoYXZlIHRoZSBzdWJkaXJlY3RvcnkgYXQgYWxsCi0JCWVycj0kKGdpdCByZWFkLXRyZWUgLWkgLW0gJGNvbW1pdDoiJGZpbHRlcl9zdWJkaXIiIDI+JjEpIHx8IHsKKwkJZXJyPSQoR0lUX0FMTE9XX05VTExfU0hBMT0xIFwKKwkJICAgICAgZ2l0IHJlYWQtdHJlZSAtaSAtbSAkY29tbWl0OiIkZmlsdGVyX3N1YmRpciIgMj4mMSkgfHwgewogCQkJaWYgISBnaXQgcmV2LXBhcnNlIC1xIC0tdmVyaWZ5ICRjb21taXQ6IiRmaWx0ZXJfc3ViZGlyIgogCQkJdGhlbgogCQkJCXJtIC1mICIkR0lUX0lOREVYX0ZJTEUiCmRpZmYgLS1naXQgYS9naXQtZ3VpL0dJVC1WRVJTSU9OLUdFTiBiL2dpdC1ndWkvR0lULVZFUlNJT04tR0VOCmluZGV4IDBhMWY4ZDQuLmE5ZWEyMTggMTAwNzU1Ci0tLSBhL2dpdC1ndWkvR0lULVZFUlNJT04tR0VOCisrKyBiL2dpdC1ndWkvR0lULVZFUlNJT04tR0VOCkBAIC0xLDcgKzEsNyBAQAogIyEvYmluL3NoCiAKIEdWRj1HSVQtVkVSU0lPTi1GSUxFCi1ERUZfVkVSPTAuMTguR0lUR1VJCitERUZfVkVSPTAuMTkuR0lUR1VJCiAKIExGPScKICcKZGlmZiAtLWdpdCBhL2dpdC1ndWkvTWFrZWZpbGUgYi9naXQtZ3VpL01ha2VmaWxlCmluZGV4IGU5YzJiYzMuLmNkZThiMmUgMTAwNjQ0Ci0tLSBhL2dpdC1ndWkvTWFrZWZpbGUKKysrIGIvZ2l0LWd1aS9NYWtlZmlsZQpAQCAtNCw3ICs0LDcgQEAKICMKICMgRGVmaW5lIE5PX01TR0ZNVCBpZiB5b3UgZG8gbm90IGhhdmUgbXNnZm10IGZyb20gdGhlIEdOVSBnZXR0ZXh0CiAjIHBhY2thZ2UgYW5kIHdhbnQgdG8gdXNlIG91ciByb3VnaCBwdXJlIFRjbCBwby0+bXNnIHRyYW5zbGF0b3IuCi0jIFRDTF9QQVRIIG11c3QgYmUgdmFpbGQgZm9yIHRoaXMgdG8gd29yay4KKyMgVENMX1BBVEggbXVzdCBiZSB2YWxpZCBmb3IgdGhpcyB0byB3b3JrLgogIwogCiBHSVQtVkVSU0lPTi1GSUxFOiBGT1JDRQpkaWZmIC0tZ2l0IGEvZ2l0LWd1aS9naXQtZ3VpLnNoIGIvZ2l0LWd1aS9naXQtZ3VpLnNoCmluZGV4IDE1M2Y4NWQuLmNmMjIwOWIgMTAwNzU1Ci0tLSBhL2dpdC1ndWkvZ2l0LWd1aS5zaAorKysgYi9naXQtZ3VpL2dpdC1ndWkuc2gKQEAgLTg5NCw2ICs4OTQsNyBAQAogc2V0IGRlZmF1bHRfY29uZmlnKGd1aS5wcnVuZWR1cmluZ2ZldGNoKSBmYWxzZQogc2V0IGRlZmF1bHRfY29uZmlnKGd1aS50cnVzdG10aW1lKSBmYWxzZQogc2V0IGRlZmF1bHRfY29uZmlnKGd1aS5mYXN0Y29weWJsYW1lKSBmYWxzZQorc2V0IGRlZmF1bHRfY29uZmlnKGd1aS5tYXhyZWNlbnRyZXBvKSAxMAogc2V0IGRlZmF1bHRfY29uZmlnKGd1aS5jb3B5YmxhbWV0aHJlc2hvbGQpIDQwCiBzZXQgZGVmYXVsdF9jb25maWcoZ3VpLmJsYW1laGlzdG9yeWN0eCkgNwogc2V0IGRlZmF1bHRfY29uZmlnKGd1aS5kaWZmY29udGV4dCkgNQpAQCAtOTEyLDYgKzkxMyw3IEBACiAJe2ZvbnRkaWZmIGZvbnRfZGlmZiB7bWMgIkRpZmYvQ29uc29sZSBGb250In19CiB9CiBzZXQgZGVmYXVsdF9jb25maWcoZ3VpLnN0YWdldW50cmFja2VkKSBhc2sKK3NldCBkZWZhdWx0X2NvbmZpZyhndWkuZGlzcGxheXVudHJhY2tlZCkgdHJ1ZQogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIwpAQCAtMTI4Miw3ICsxMjg0LDExIEBACiAKICMgdjEuNy4wIGludHJvZHVjZWQgLS1zaG93LXRvcGxldmVsIHRvIHJldHVybiB0aGUgY2Fub25pY2FsIHdvcmstdHJlZQogaWYge1twYWNrYWdlIHZzYXRpc2ZpZXMgJF9naXRfdmVyc2lvbiAxLjcuMF19IHsKLQlzZXQgX2dpdHdvcmt0cmVlIFtnaXQgcmV2LXBhcnNlIC0tc2hvdy10b3BsZXZlbF0KKwlpZiB7IFtpc19DeWd3aW5dIH0geworCQljYXRjaCB7c2V0IF9naXR3b3JrdHJlZSBbZXhlYyBjeWdwYXRoIC0td2luZG93cyBbZ2l0IHJldi1wYXJzZSAtLXNob3ctdG9wbGV2ZWxdXX0KKwl9IGVsc2UgeworCQlzZXQgX2dpdHdvcmt0cmVlIFtnaXQgcmV2LXBhcnNlIC0tc2hvdy10b3BsZXZlbF0KKwl9CiB9IGVsc2UgewogCSMgdHJ5IHRvIHNldCB3b3JrIHRyZWUgZnJvbSBlbnZpcm9ubWVudCwgY29yZS53b3JrdHJlZSBvciB1c2UKIAkjIGNkdXAgdG8gb2J0YWluIGEgcmVsYXRpdmUgcGF0aCB0byB0aGUgdG9wIG9mIHRoZSB3b3JrdHJlZS4gSWYKQEAgLTE1NTAsMTggKzE1NTYsMjMgQEAKIAlzZXQgYnVmX3JkZiB7fQogCXNldCBidWZfcmxvIHt9CiAKLQlzZXQgcmVzY2FuX2FjdGl2ZSAzCisJc2V0IHJlc2Nhbl9hY3RpdmUgMgogCXVpX3N0YXR1cyBbbWMgIlNjYW5uaW5nIGZvciBtb2RpZmllZCBmaWxlcyAuLi4iXQogCXNldCBmZF9kaSBbZ2l0X3JlYWQgZGlmZi1pbmRleCAtLWNhY2hlZCAteiBbUEFSRU5UXV0KIAlzZXQgZmRfZGYgW2dpdF9yZWFkIGRpZmYtZmlsZXMgLXpdCi0Jc2V0IGZkX2xvIFtldmFsIGdpdF9yZWFkIGxzLWZpbGVzIC0tb3RoZXJzIC16ICRsc19vdGhlcnNdCiAKIAlmY29uZmlndXJlICRmZF9kaSAtYmxvY2tpbmcgMCAtdHJhbnNsYXRpb24gYmluYXJ5IC1lbmNvZGluZyBiaW5hcnkKIAlmY29uZmlndXJlICRmZF9kZiAtYmxvY2tpbmcgMCAtdHJhbnNsYXRpb24gYmluYXJ5IC1lbmNvZGluZyBiaW5hcnkKLQlmY29uZmlndXJlICRmZF9sbyAtYmxvY2tpbmcgMCAtdHJhbnNsYXRpb24gYmluYXJ5IC1lbmNvZGluZyBiaW5hcnkKKwogCWZpbGVldmVudCAkZmRfZGkgcmVhZGFibGUgW2xpc3QgcmVhZF9kaWZmX2luZGV4ICRmZF9kaSAkYWZ0ZXJdCiAJZmlsZWV2ZW50ICRmZF9kZiByZWFkYWJsZSBbbGlzdCByZWFkX2RpZmZfZmlsZXMgJGZkX2RmICRhZnRlcl0KLQlmaWxlZXZlbnQgJGZkX2xvIHJlYWRhYmxlIFtsaXN0IHJlYWRfbHNfb3RoZXJzICRmZF9sbyAkYWZ0ZXJdCisKKwlpZiB7W2lzX2NvbmZpZ190cnVlIGd1aS5kaXNwbGF5dW50cmFja2VkXX0geworCQlzZXQgZmRfbG8gW2V2YWwgZ2l0X3JlYWQgbHMtZmlsZXMgLS1vdGhlcnMgLXogJGxzX290aGVyc10KKwkJZmNvbmZpZ3VyZSAkZmRfbG8gLWJsb2NraW5nIDAgLXRyYW5zbGF0aW9uIGJpbmFyeSAtZW5jb2RpbmcgYmluYXJ5CisJCWZpbGVldmVudCAkZmRfbG8gcmVhZGFibGUgW2xpc3QgcmVhZF9sc19vdGhlcnMgJGZkX2xvICRhZnRlcl0KKwkJaW5jciByZXNjYW5fYWN0aXZlCisJfQogfQogCiBwcm9jIGxvYWRfbWVzc2FnZSB7ZmlsZSB7ZW5jb2Rpbmcge319fSB7CkBAIC0yNjU0LDYgKzI2NjUsMTYgQEAKIAkubWJhci5yZXBvc2l0b3J5IGFkZCBjb21tYW5kIFwKIAkJLWxhYmVsIFttYyAiRXhwbG9yZSBXb3JraW5nIENvcHkiXSBcCiAJCS1jb21tYW5kIHtkb19leHBsb3JlfQorfQorCitpZiB7W2lzX1dpbmRvd3NdfSB7CisJLm1iYXIucmVwb3NpdG9yeSBhZGQgY29tbWFuZCBcCisJCS1sYWJlbCBbbWMgIkdpdCBCYXNoIl0gXAorCQktY29tbWFuZCB7ZXZhbCBleGVjIFthdXRvX2V4ZWNvayBzdGFydF0gXAorCQkJCQkgIFtsaXN0ICJHaXQgQmFzaCIgYmFzaCAtLWxvZ2luIC1sICZdfQorfQorCitpZiB7W2lzX1dpbmRvd3NdIHx8ICFbaXNfYmFyZV19IHsKIAkubWJhci5yZXBvc2l0b3J5IGFkZCBzZXBhcmF0b3IKIH0KIApAQCAtMzIwMywxMyArMzIyNCwyOSBAQAogCiAjIC0tIERpZmYgYW5kIENvbW1pdCBBcmVhCiAjCi0ke05TfTo6ZnJhbWUgLnZwYW5lLmxvd2VyIC1oZWlnaHQgMzAwIC13aWR0aCA0MDAKLSR7TlN9OjpmcmFtZSAudnBhbmUubG93ZXIuY29tbWFyZWEKLSR7TlN9OjpmcmFtZSAudnBhbmUubG93ZXIuZGlmZiAtcmVsaWVmIHN1bmtlbiAtYm9yZGVyd2lkdGggMQotcGFjayAudnBhbmUubG93ZXIuZGlmZiAtZmlsbCBib3RoIC1leHBhbmQgMQotcGFjayAudnBhbmUubG93ZXIuY29tbWFyZWEgLXNpZGUgYm90dG9tIC1maWxsIHgKLS52cGFuZSBhZGQgLnZwYW5lLmxvd2VyCi1pZiB7ISR1c2VfdHRrfSB7LnZwYW5lIHBhbmVjb25maWd1cmUgLnZwYW5lLmxvd2VyIC1zdGlja3kgbnNld30KK2lmIHskaGF2ZV90azg1fSB7CisJJHtOU306OnBhbmVkd2luZG93IC52cGFuZS5sb3dlciAtb3JpZW50IHZlcnRpY2FsCisJJHtOU306OmZyYW1lIC52cGFuZS5sb3dlci5jb21tYXJlYQorCSR7TlN9OjpmcmFtZSAudnBhbmUubG93ZXIuZGlmZiAtcmVsaWVmIHN1bmtlbiAtYm9yZGVyd2lkdGggMSAtaGVpZ2h0IDUwMAorCS52cGFuZS5sb3dlciBhZGQgLnZwYW5lLmxvd2VyLmRpZmYKKwkudnBhbmUubG93ZXIgYWRkIC52cGFuZS5sb3dlci5jb21tYXJlYQorCS52cGFuZSBhZGQgLnZwYW5lLmxvd2VyCisJaWYgeyR1c2VfdHRrfSB7CisJCS52cGFuZS5sb3dlciBwYW5lIC52cGFuZS5sb3dlci5kaWZmIC13ZWlnaHQgMQorCQkudnBhbmUubG93ZXIgcGFuZSAudnBhbmUubG93ZXIuY29tbWFyZWEgLXdlaWdodCAwCisJfSBlbHNlIHsKKwkJLnZwYW5lLmxvd2VyIHBhbmVjb25maWd1cmUgLnZwYW5lLmxvd2VyLmRpZmYgLXN0cmV0Y2ggYWx3YXlzCisJCS52cGFuZS5sb3dlciBwYW5lY29uZmlndXJlIC52cGFuZS5sb3dlci5jb21tYXJlYSAtc3RyZXRjaCBuZXZlcgorCX0KK30gZWxzZSB7CisJZnJhbWUgLnZwYW5lLmxvd2VyIC1oZWlnaHQgMzAwIC13aWR0aCA0MDAKKwlmcmFtZSAudnBhbmUubG93ZXIuY29tbWFyZWEKKwlmcmFtZSAudnBhbmUubG93ZXIuZGlmZiAtcmVsaWVmIHN1bmtlbiAtYm9yZGVyd2lkdGggMQorCXBhY2sgLnZwYW5lLmxvd2VyLmRpZmYgLWZpbGwgYm90aCAtZXhwYW5kIDEKKwlwYWNrIC52cGFuZS5sb3dlci5jb21tYXJlYSAtc2lkZSBib3R0b20gLWZpbGwgeAorCS52cGFuZSBhZGQgLnZwYW5lLmxvd2VyCisJLnZwYW5lIHBhbmVjb25maWd1cmUgLnZwYW5lLmxvd2VyIC1zdGlja3kgbnNldworfQogCiAjIC0tIENvbW1pdCBBcmVhIEJ1dHRvbnMKICMKZGlmZiAtLWdpdCBhL2dpdC1ndWkvbGliL2JsYW1lLnRjbCBiL2dpdC1ndWkvbGliL2JsYW1lLnRjbAppbmRleCAzMjRmNzc0Li5iMWQxNWY0IDEwMDY0NAotLS0gYS9naXQtZ3VpL2xpYi9ibGFtZS50Y2wKKysrIGIvZ2l0LWd1aS9saWIvYmxhbWUudGNsCkBAIC01LDcgKzUsNyBAQAogCiBpbWFnZSBjcmVhdGUgcGhvdG8gOjpibGFtZTo6aW1nX2JhY2tfYXJyb3cgLWRhdGEge1IwbEdPRGxoR0FBWUFJVUFBUHdDQkV6S1hGVFNaSXorbkd6bWhHenFmR1RpZElUK25FekdYSFRxaEd6bWZHemlmRnphZEVUQ1ZFUytWQVJXREZ6V2JIenlqQVJlREdUYWRGVE9aRFN5UkR5eVRDeW1QQVJhRkdUZWRGelNiRHkyVEN5cVJDeXFQQVJhREF5Q0hFUzZWRHk2VkN5aVBBUjZIQ1NlTkJ5V0xBUnlGQVJpREFScUZHVGlmQVJpRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNINUJBRUFBQUFBTEFBQUFBQVlBQmdBQUFhalFJQndTQ3dhajhpa2NzazBCcHBKd1JQcUhFeXBRd0hCaXMwV0RBZEVGeUJJS0JhTUFLTEJkalFlU2tGQllUQkFJdmdFb1M2Sm1oVVRFd0lVRFE0VkZoY01HRWh5Q2dvWkV4b1VheHNXSEIwVEhrZ2ZBWFVHQWhvQkRTQVZGUjBYQm5DYkRSbWdvZzBocFNJaURKcEpJeUVRaEJVY0pDSWx3QTIyU1NZVm9na25FZzhlRDgycVNpZ2REU2tuWTBJcUpRWFBZeElsMWRaQ0dOdld3K0RtNTEwR1FRQWgvbWhEY21WaGRHVmtJR0o1SUVKTlVGUnZSMGxHSUZCeWJ5QjJaWEp6YVc5dUlESXVOUTBLcVNCRVpYWmxiRU52Y2lBeE9UazNMREU1T1RndUlFRnNiQ0J5YVdkb2RITWdjbVZ6WlhKMlpXUXVEUXBvZEhSd09pOHZkM2QzTG1SbGRtVnNZMjl5TG1OdmJRQTd9CiAKLSMgUGVyc2lzdGFudCBkYXRhIChzdXJ2aXZlcyBsb2FkcykKKyMgUGVyc2lzdGVudCBkYXRhIChzdXJ2aXZlcyBsb2FkcykKICMKIGZpZWxkIGhpc3Rvcnkge307ICMgdmlld2VyIGhpc3Rvcnk6IHtjb21taXQgcGF0aH0KIGZpZWxkIGhlYWRlciAgICA7ICMgYXJyYXkgY29tbWl0LGtleSAtPiBoZWFkZXIgZmllbGQKZGlmZiAtLWdpdCBhL2dpdC1ndWkvbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbCBiL2dpdC1ndWkvbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbAppbmRleCBlZTU4OTgxLi4zYzEwYmM2IDEwMDY0NAotLS0gYS9naXQtZ3VpL2xpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2wKKysrIGIvZ2l0LWd1aS9saWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsCkBAIC0yNCw2ICsyNCwxMCBAQAogY29uc3RydWN0b3IgcGljayB7fSB7CiAJZ2xvYmFsIE0xVCBNMUIgdXNlX3R0ayBOUwogCisJaWYge1tzZXQgbWF4cmVjZW50IFtnZXRfY29uZmlnIGd1aS5tYXhyZWNlbnRyZXBvXV0gZXEge319IHsKKwkJc2V0IG1heHJlY2VudCAxMAorCX0KKwogCW1ha2VfZGlhbG9nIHRvcCB3CiAJd20gdGl0bGUgJHRvcCBbbWMgIkdpdCBHdWkiXQogCkBAIC0xNDgsNyArMTUyLDcgQEAKIAkJCS1iYWNrZ3JvdW5kIFtnZXRfYmdfY29sb3IgJHdfYm9keS5yZWNlbnRsYWJlbF0gXAogCQkJLXdyYXAgbm9uZSBcCiAJCQktd2lkdGggNTAgXAotCQkJLWhlaWdodCAxMAorCQkJLWhlaWdodCAkbWF4cmVjZW50CiAJCSR3X3JlY2VudGxpc3QgdGFnIGNvbmYgbGluayBcCiAJCQktZm9yZWdyb3VuZCBibHVlIFwKIAkJCS11bmRlcmxpbmUgMQpAQCAtMjY0LDcgKzI2OCwxMSBAQAogCWdpdCBjb25maWcgLS1nbG9iYWwgLS1hZGQgZ3VpLnJlY2VudHJlcG8gJHBhdGgKIAlsb2FkX2NvbmZpZyAxCiAKLQl3aGlsZSB7W2xsZW5ndGggJHJlY2VudF0gPiAxMH0geworCWlmIHtbc2V0IG1heHJlY2VudCBbZ2V0X2NvbmZpZyBndWkubWF4cmVjZW50cmVwb11dIGVxIHt9fSB7CisJCXNldCBtYXhyZWNlbnQgMTAKKwl9CisKKwl3aGlsZSB7W2xsZW5ndGggJHJlY2VudF0gPiAkbWF4cmVjZW50fSB7CiAJCV91bnNldF9yZWNlbnRyZXBvIFtsaW5kZXggJHJlY2VudCAwXQogCQlzZXQgcmVjZW50IFtscmFuZ2UgJHJlY2VudCAxIGVuZF0KIAl9CmRpZmYgLS1naXQgYS9naXQtZ3VpL2xpYi9pbmRleC50Y2wgYi9naXQtZ3VpL2xpYi9pbmRleC50Y2wKaW5kZXggOGVmYmJkZC4uNzRhODFhNyAxMDA2NDQKLS0tIGEvZ2l0LWd1aS9saWIvaW5kZXgudGNsCisrKyBiL2dpdC1ndWkvbGliL2luZGV4LnRjbApAQCAtNDE0LDcgKzQxNCw3IEBACiAJIyBzdWNoIGRpc3RpbmN0aW9uIGlzIG5lZWRlZCBpbiBzb21lIGxhbmd1YWdlcy4gUHJldmlvdXNseSwgdGhlCiAJIyBjb2RlIHVzZWQgIlJldmVydCBjaGFuZ2VzIGluIiBmb3IgYm90aCwgYnV0IHRoYXQgY2FuJ3Qgd29yawogCSMgaW4gbGFuZ3VhZ2VzIHdoZXJlICdpbicgbXVzdCBiZSBjb21iaW5lZCB3aXRoIHdvcmQgZnJvbQotCSMgcmVzdCBvZiBzdHJpbmcgKGluIGRpZmZyZW50IHdheSBmb3IgYm90aCBjYXNlcyBvZiBjb3Vyc2UpLgorCSMgcmVzdCBvZiBzdHJpbmcgKGluIGRpZmZlcmVudCB3YXkgZm9yIGJvdGggY2FzZXMgb2YgY291cnNlKS4KIAkjCiAJIyBGSVhNRTogVW5mb3J0dW5hdGVseSwgZXZlbiB0aGF0IGlzbid0IGVub3VnaCBpbiBzb21lIGxhbmd1YWdlcwogCSMgYXMgdGhleSBoYXZlIHF1aXRlIGNvbXBsZXggcGx1cmFsLWZvcm0gcnVsZXMuIFVuZm9ydHVuYXRlbHksCmRpZmYgLS1naXQgYS9naXQtZ3VpL2xpYi9vcHRpb24udGNsIGIvZ2l0LWd1aS9saWIvb3B0aW9uLnRjbAppbmRleCAwY2YxZGExLi4yM2M5YWU3IDEwMDY0NAotLS0gYS9naXQtZ3VpL2xpYi9vcHRpb24udGNsCisrKyBiL2dpdC1ndWkvbGliL29wdGlvbi50Y2wKQEAgLTE1MCw2ICsxNTAsNyBAQAogCQl7YiBndWkubWF0Y2h0cmFja2luZ2JyYW5jaCB7bWMgIk1hdGNoIFRyYWNraW5nIEJyYW5jaGVzIn19CiAJCXtiIGd1aS50ZXh0Y29udiB7bWMgIlVzZSBUZXh0Y29udiBGb3IgRGlmZnMgYW5kIEJsYW1lcyJ9fQogCQl7YiBndWkuZmFzdGNvcHlibGFtZSB7bWMgIkJsYW1lIENvcHkgT25seSBPbiBDaGFuZ2VkIEZpbGVzIn19CisJCXtpLTAuLjEwMCBndWkubWF4cmVjZW50cmVwbyB7bWMgIk1heGltdW0gTGVuZ3RoIG9mIFJlY2VudCBSZXBvc2l0b3JpZXMgTGlzdCJ9fQogCQl7aS0yMC4uMjAwIGd1aS5jb3B5YmxhbWV0aHJlc2hvbGQge21jICJNaW5pbXVtIExldHRlcnMgVG8gQmxhbWUgQ29weSBPbiJ9fQogCQl7aS0wLi4zMDAgZ3VpLmJsYW1laGlzdG9yeWN0eCB7bWMgIkJsYW1lIEhpc3RvcnkgQ29udGV4dCBSYWRpdXMgKGRheXMpIn19CiAJCXtpLTEuLjk5IGd1aS5kaWZmY29udGV4dCB7bWMgIk51bWJlciBvZiBEaWZmIENvbnRleHQgTGluZXMifX0KQEAgLTE1OSw2ICsxNjAsNyBAQAogCQl7YyBndWkuZW5jb2Rpbmcge21jICJEZWZhdWx0IEZpbGUgQ29udGVudHMgRW5jb2RpbmcifX0KIAkJe2IgZ3VpLndhcm5kZXRhY2hlZGNvbW1pdCB7bWMgIldhcm4gYmVmb3JlIGNvbW1pdHRpbmcgdG8gYSBkZXRhY2hlZCBoZWFkIn19CiAJCXtzIGd1aS5zdGFnZXVudHJhY2tlZCB7bWMgIlN0YWdpbmcgb2YgdW50cmFja2VkIGZpbGVzIn0ge2xpc3QgInllcyIgIm5vIiAiYXNrIn19CisJCXtiIGd1aS5kaXNwbGF5dW50cmFja2VkIHttYyAiU2hvdyB1bnRyYWNrZWQgZmlsZXMifX0KIAkJfSB7CiAJCXNldCB0eXBlIFtsaW5kZXggJG9wdGlvbiAwXQogCQlzZXQgbmFtZSBbbGluZGV4ICRvcHRpb24gMV0KZGlmZiAtLWdpdCBhL2dpdC1ndWkvbGliL3NwZWxsY2hlY2sudGNsIGIvZ2l0LWd1aS9saWIvc3BlbGxjaGVjay50Y2wKaW5kZXggZTYxMjAzMC4uNTM4ZDYxYyAxMDA2NDQKLS0tIGEvZ2l0LWd1aS9saWIvc3BlbGxjaGVjay50Y2wKKysrIGIvZ2l0LWd1aS9saWIvc3BlbGxjaGVjay50Y2wKQEAgLTE0LDcgKzE0LDcgQEAKIGZpZWxkIHNfbWVudWlkeCAwIDsgIyBsYXN0IGluZGV4IG9mIGluc2VydGlvbiBpbnRvICR3X21lbnUKIAogZmllbGQgc19pICAgICAgICAgICB7fSA7ICMgdGltZXIgcmVnaXN0cmF0aW9uIGZvciBfcnVuIGNhbGxiYWNrcwotZmllbGQgc19jbGVhciAgICAgICAgMCA7ICMgZGlkIHdlIGVyYXNlIG1pc3BlbGxlZCB0YWdzIHlldD8KK2ZpZWxkIHNfY2xlYXIgICAgICAgIDAgOyAjIGRpZCB3ZSBlcmFzZSBtaXNzcGVsbGVkIHRhZ3MgeWV0PwogZmllbGQgc19zZWVuICAgIFtsaXN0XSA7ICMgbGluZXMgbGFzdCBzZWVuIGZyb20gJHdfdGV4dCBpbiBfcnVuCiBmaWVsZCBzX2NoZWNrZWQgW2xpc3RdIDsgIyBsaW5lcyBhbHJlYWR5IGNoZWNrZWQKIGZpZWxkIHNfcGVuZGluZyBbbGlzdF0gOyAjIFskbGluZSAkZGF0YV0gc2VudCB0byBpc3BlbGwvYXNwZWxsCkBAIC0yNTksNyArMjU5LDcgQEAKIAkJaWYgeyRuID09ICRjdXJfbGluZQogCQkgJiYgIVtyZWdleHAge15cVyR9IFskd190ZXh0IGdldCAkY3VyX3BvcyBpbnNlcnRdXX0gewogCi0JCQkjIElmIHRoZSBjdXJyZW50IHdvcmQgaXMgbWlzcGVsbGVkIHJlbW92ZSB0aGUgdGFnCisJCQkjIElmIHRoZSBjdXJyZW50IHdvcmQgaXMgbWlzc3BlbGxlZCByZW1vdmUgdGhlIHRhZwogCQkJIyBidXQgZm9yY2UgYSBzcGVsbGNoZWNrIGxhdGVyLgogCQkJIwogCQkJc2V0IHRhZ3MgWyR3X3RleHQgdGFnIG5hbWVzICRjdXJfcG9zXQpkaWZmIC0tZ2l0IGEvZ2l0LWd1aS9tYWNvc3gvSW5mby5wbGlzdCBiL2dpdC1ndWkvbWFjb3N4L0luZm8ucGxpc3QKaW5kZXggYjNiZjE1Zi4uMWFkZTEyMSAxMDA2NDQKLS0tIGEvZ2l0LWd1aS9tYWNvc3gvSW5mby5wbGlzdAorKysgYi9naXQtZ3VpL21hY29zeC9JbmZvLnBsaXN0CkBAIC0yNCw1ICsyNCw3IEBACiAJPHN0cmluZz5HSVRnPC9zdHJpbmc+CiAJPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KIAk8c3RyaW5nPkBAR0lUR1VJX1ZFUlNJT05AQDwvc3RyaW5nPgorCTxrZXk+TlNIaWdoUmVzb2x1dGlvbkNhcGFibGU8L2tleT4KKwk8dHJ1ZS8+CiA8L2RpY3Q+CiA8L3BsaXN0PgpkaWZmIC0tZ2l0IGEvZ2l0LWd1aS9wby9iZy5wbyBiL2dpdC1ndWkvcG8vYmcucG8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODliM2E0ZQotLS0gL2Rldi9udWxsCisrKyBiL2dpdC1ndWkvcG8vYmcucG8KQEAgLTAsMCArMSwyNjk0IEBACisjIEJ1bGdhcmlhbiB0cmFuc2xhdGlvbiBvZiBnaXQtZ3VpIHBvLWZpbGUuCisjIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBbGV4YW5kZXIgU2hvcG92IDxhc2hAa2FtYmFuYXJpYS5vcmc+LgorIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgZ2l0IHBhY2thZ2UuCisjIEFsZXhhbmRlciBTaG9wb3YgPGFzaEBrYW1iYW5hcmlhLm9yZz4sIDIwMTIsIDIwMTMsIDIwMTQuCisjCisjCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiBnaXQtZ3VpIG1hc3RlclxuIgorIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxNC0wMS0xMyAyMDo0NSswMjAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAxNC0wMS0xMyAyMTozMSswMjAwXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBBbGV4YW5kZXIgU2hvcG92IDxhc2hAa2FtYmFuYXJpYS5vcmc+XG4iCisiTGFuZ3VhZ2UtVGVhbTogQnVsZ2FyaWFuIDxkaWN0QGZzYS1iZy5vcmc+XG4iCisiTGFuZ3VhZ2U6IGJnXG4iCisiTUlNRS1WZXJzaW9uOiAxLjBcbiIKKyJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7XG4iCisKKyM6IGdpdC1ndWkuc2g6ODU5CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBmb250IHNwZWNpZmllZCBpbiAlczoiCittc2dzdHIgItCj0LrQsNC30LDQvSDQtSDQvdC10L/RgNCw0LLQuNC70LXQvSDRiNGA0LjRhNGCINCyICVzOiIKKworIzogZ2l0LWd1aS5zaDo5MTIKK21zZ2lkICJNYWluIEZvbnQiCittc2dzdHIgItCe0YHQvdC+0LLQtdC9INGI0YDQuNGE0YIiCisKKyM6IGdpdC1ndWkuc2g6OTEzCittc2dpZCAiRGlmZi9Db25zb2xlIEZvbnQiCittc2dzdHIgItCo0YDQuNGE0YIg0LfQsCDRgNCw0LfQu9C40LrQuNGC0LUv0LrQvtC90LfQvtC70LDRgtCwIgorCisjOiBnaXQtZ3VpLnNoOjkyOCBnaXQtZ3VpLnNoOjk0MiBnaXQtZ3VpLnNoOjk1NSBnaXQtZ3VpLnNoOjEwNDUKKyM6IGdpdC1ndWkuc2g6MTA2NCBnaXQtZ3VpLnNoOjMxMTUKK21zZ2lkICJnaXQtZ3VpOiBmYXRhbCBlcnJvciIKK21zZ3N0ciAiZ2l0LWd1aTog0YTQsNGC0LDQu9C90LAg0LPRgNC10YjQutCwIgorCisjOiBnaXQtZ3VpLnNoOjkyOQorbXNnaWQgIkNhbm5vdCBmaW5kIGdpdCBpbiBQQVRILiIKK21zZ3N0ciAi0JrQvtC80LDQvdC00LDRgtCwIGdpdCDQu9C40L/RgdCy0LAg0LIg0L/RitGC0Y8gKFBBVEgpLiIKKworIzogZ2l0LWd1aS5zaDo5NTYKK21zZ2lkICJDYW5ub3QgcGFyc2UgR2l0IHZlcnNpb24gc3RyaW5nOiIKK21zZ3N0ciAi0J3QuNC30YrRgiDRgSDQstC10YDRgdC40Y/RgtCwINC90LAgR2l0INC90LUg0LzQvtC20LUg0LTQsCDQsdGK0LTQtSDQuNC90YLQtdGA0L/RgNC10YLQuNGA0LDQvToiCisKKyM6IGdpdC1ndWkuc2g6OTgxCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiIgorIkdpdCB2ZXJzaW9uIGNhbm5vdCBiZSBkZXRlcm1pbmVkLlxuIgorIlxuIgorIiVzIGNsYWltcyBpdCBpcyB2ZXJzaW9uICclcycuXG4iCisiXG4iCisiJXMgcmVxdWlyZXMgYXQgbGVhc3QgR2l0IDEuNS4wIG9yIGxhdGVyLlxuIgorIlxuIgorIkFzc3VtZSAnJXMnIGlzIHZlcnNpb24gMS41LjA/XG4iCittc2dzdHIgIiIKKyLQktC10YDRgdC40Y/RgtCwINC90LAgR2l0INC90LUg0LzQvtC20LUg0LTQsCDQsdGK0LTQtSDQvtC/0YDQtdC00LXQu9C10L3QsC5cbiIKKyJcbiIKKyLQktC10YDRgdC40Y/RgtCwINC90LAgJXMg0LjQt9Cz0LvQtdC20LTQsCwg0YfQtSDQtSDigJ4lc+KAnC5cbiIKKyJcbiIKKyIlcyDQuNC30LjRgdC60LLQsCBHaXQsINCy0LXRgNGB0LjRjyDQv9C+0L3QtSAxLjUuMC5cbiIKKyJcbiIKKyLQlNCwINGB0LUg0L/RgNC40LXQvNC1INC70LgsINGH0LUg4oCeJXPigJwg0LUg0LLQtdGA0YHQuNGPIDEuNS4wP1xuIgorCisjOiBnaXQtZ3VpLnNoOjEyNzgKK21zZ2lkICJHaXQgZGlyZWN0b3J5IG5vdCBmb3VuZDoiCittc2dzdHIgItCU0LjRgNC10LrRgtC+0YDQuNGP0YLQsCDQvdCwIEdpdCDQvdC1INC1INC+0YLQutGA0LjRgtCwOiIKKworIzogZ2l0LWd1aS5zaDoxMzEyCittc2dpZCAiQ2Fubm90IG1vdmUgdG8gdG9wIG9mIHdvcmtpbmcgZGlyZWN0b3J5OiIKK21zZ3N0ciAi0J3QtSDQvNC+0LbQtSDQtNCwINGB0LUg0L/RgNC10LzQuNC90LUg0LrRitC8INGA0L7QtNC40YLQtdC70YHQutCw0YLQsCAg0LTQuNGA0LXQutGC0L7RgNC40Y8uIgorCisjOiBnaXQtZ3VpLnNoOjEzMjAKK21zZ2lkICJDYW5ub3QgdXNlIGJhcmUgcmVwb3NpdG9yeToiCittc2dzdHIgItCT0L7Qu9C+INGF0YDQsNC90LjQu9C40YnQtSDQvdC1INC80L7QttC1INC00LAg0YHQtSDQuNC30L/QvtC70LfQstCwOiIKKworIzogZ2l0LWd1aS5zaDoxMzI4Cittc2dpZCAiTm8gd29ya2luZyBkaXJlY3RvcnkiCittc2dzdHIgItCg0LDQsdC+0YLQvdCw0YLQsCDQtNC40YDQtdC60YLQvtGA0LjRjyDQu9C40L/RgdCy0LAiCisKKyM6IGdpdC1ndWkuc2g6MTUwMCBsaWIvY2hlY2tvdXRfb3AudGNsOjMwNgorbXNnaWQgIlJlZnJlc2hpbmcgZmlsZSBzdGF0dXMuLi4iCittc2dzdHIgItCe0LHQvdC+0LLRj9Cy0LDQvdC1INC90LAg0YHRitGB0YLQvtGP0L3QuNC10YLQviDQvdCwINGE0LDQudC70LDigKYiCisKKyM6IGdpdC1ndWkuc2g6MTU2MAorbXNnaWQgIlNjYW5uaW5nIGZvciBtb2RpZmllZCBmaWxlcyAuLi4iCittc2dzdHIgItCf0YDQvtCy0LXRgNC60LAg0LfQsCDQv9GA0L7QvNC10L3QtdC90Lgg0YTQsNC50LvQvtCy0LXigKYiCisKKyM6IGdpdC1ndWkuc2g6MTYzMgorbXNnaWQgIkNhbGxpbmcgcHJlcGFyZS1jb21taXQtbXNnIGhvb2suLi4iCittc2dzdHIgItCa0YPQutCw0YLQsCBwcmVwYXJlLWNvbW1pdC1tc2cg0YHQtSDQuNC30L/RitC70L3Rj9Cy0LAg0LIg0LzQvtC80LXQvdGC0LDigKYiCisKKyM6IGdpdC1ndWkuc2g6MTY0OQorbXNnaWQgIkNvbW1pdCBkZWNsaW5lZCBieSBwcmVwYXJlLWNvbW1pdC1tc2cgaG9vay4iCittc2dzdHIgItCf0L7QtNCw0LLQsNC90LXRgtC+INC1INC+0YLRhdCy0YrRgNC70LXQvdC+INC+0YIg0LrRg9C60LDRgtCwIHByZXBhcmUtY29tbWl0LW1zZy4iCisKKyM6IGdpdC1ndWkuc2g6MTgwNyBsaWIvYnJvd3Nlci50Y2w6MjUyCittc2dpZCAiUmVhZHkuIgorbXNnc3RyICLQk9C+0YLQvtCy0L4uIgorCisjOiBnaXQtZ3VpLnNoOjE5NjUKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJEaXNwbGF5aW5nIG9ubHkgJXMgb2YgJXMgZmlsZXMuIgorbXNnc3RyICLQn9C+0LrQsNC30LLQsNC90LUg0L3QsCDRgdCw0LzQviAlcyDQvtGCICVzINGE0LDQudC70LAuIgorCisjOiBnaXQtZ3VpLnNoOjIwOTEKK21zZ2lkICJVbm1vZGlmaWVkIgorbXNnc3RyICLQndC10L/RgNC+0LzQtdC90LXQvSIKKworIzogZ2l0LWd1aS5zaDoyMDkzCittc2dpZCAiTW9kaWZpZWQsIG5vdCBzdGFnZWQiCittc2dzdHIgItCf0YDQvtC80LXQvdC10L0sINC90L4g0L3QtSDQtSDQsiDQuNC90LTQtdC60YHQsCIKKworIzogZ2l0LWd1aS5zaDoyMDk0IGdpdC1ndWkuc2g6MjEwNgorbXNnaWQgIlN0YWdlZCBmb3IgY29tbWl0IgorbXNnc3RyICLQkiDQuNC90LTQtdC60YHQsCDQt9CwINC/0L7QtNCw0LLQsNC90LUiCisKKyM6IGdpdC1ndWkuc2g6MjA5NSBnaXQtZ3VpLnNoOjIxMDcKK21zZ2lkICJQb3J0aW9ucyBzdGFnZWQgZm9yIGNvbW1pdCIKK21zZ3N0ciAi0KfQsNGB0YLQuCDRgdCwINCyINC40L3QtNC10LrRgdCwINC30LAg0L/QvtC00LDQstCw0L3QtSIKKworIzogZ2l0LWd1aS5zaDoyMDk2IGdpdC1ndWkuc2g6MjEwOAorbXNnaWQgIlN0YWdlZCBmb3IgY29tbWl0LCBtaXNzaW5nIgorbXNnc3RyICLQkiDQuNC90LTQtdC60YHQsCDQt9CwINC/0L7QtNCw0LLQsNC90LUsINC90L4g0LvQuNC/0YHQstCwIgorCisjOiBnaXQtZ3VpLnNoOjIwOTgKK21zZ2lkICJGaWxlIHR5cGUgY2hhbmdlZCwgbm90IHN0YWdlZCIKK21zZ3N0ciAi0JLQuNC00YrRgiDQvdCwINGE0LDQudC70LAg0LUg0YHQvNC10L3QtdC9LCDQvdC+INC90LUg0LUg0LIg0LjQvdC00LXQutGB0LAiCisKKyM6IGdpdC1ndWkuc2g6MjA5OSBnaXQtZ3VpLnNoOjIxMDAKK21zZ2lkICJGaWxlIHR5cGUgY2hhbmdlZCwgb2xkIHR5cGUgc3RhZ2VkIGZvciBjb21taXQiCittc2dzdHIgItCS0LjQtNGK0YIg0L3QsCDRhNCw0LnQu9CwINC1INGB0LzQtdC90LXQvSwg0LIg0LjQvdC00LXQutGB0LAg0LUg0YHRgtCw0YDQuNGP0YIiCisKKyM6IGdpdC1ndWkuc2g6MjEwMQorbXNnaWQgIkZpbGUgdHlwZSBjaGFuZ2VkLCBzdGFnZWQiCittc2dzdHIgItCS0LjQtNGK0YIg0L3QsCDRhNCw0LnQu9CwINC1INGB0LzQtdC90LXQvSDQuCDQtSDQsiDQuNC90LTQtdC60YHQsCIKKworIzogZ2l0LWd1aS5zaDoyMTAyCittc2dpZCAiRmlsZSB0eXBlIGNoYW5nZSBzdGFnZWQsIG1vZGlmaWNhdGlvbiBub3Qgc3RhZ2VkIgorbXNnc3RyICLQktC40LTRitGCINC90LAg0YTQsNC50LvQsCDQtSDRgdC80LXQvdC10L0sINC/0YDQvtC80Y/QvdCw0YLQsCDQvdC1INC1INCyINC40L3QtNC10LrRgdCwIgorCisjOiBnaXQtZ3VpLnNoOjIxMDMKK21zZ2lkICJGaWxlIHR5cGUgY2hhbmdlIHN0YWdlZCwgZmlsZSBtaXNzaW5nIgorbXNnc3RyICLQktC40LTRitGCINC90LAg0YTQsNC50LvQsCDQtSDRgdC80LXQvdC10L0sINGE0LDQudC70YrRgiDQu9C40L/RgdCy0LAiCisKKyM6IGdpdC1ndWkuc2g6MjEwNQorbXNnaWQgIlVudHJhY2tlZCwgbm90IHN0YWdlZCIKK21zZ3N0ciAi0J3QtdGB0LvQtdC00LXQvSIKKworIzogZ2l0LWd1aS5zaDoyMTEwCittc2dpZCAiTWlzc2luZyIKK21zZ3N0ciAi0JvQuNC/0YHQstCw0YkiCisKKyM6IGdpdC1ndWkuc2g6MjExMQorbXNnaWQgIlN0YWdlZCBmb3IgcmVtb3ZhbCIKK21zZ3N0ciAi0JIg0LjQvdC00LXQutGB0LAg0LfQsCDQuNC30YLRgNC40LLQsNC90LUiCisKKyM6IGdpdC1ndWkuc2g6MjExMgorbXNnaWQgIlN0YWdlZCBmb3IgcmVtb3ZhbCwgc3RpbGwgcHJlc2VudCIKK21zZ3N0ciAi0JIg0LjQvdC00LXQutGB0LAg0LfQsCDQuNC30YLRgNC40LLQsNC90LUsINC90L4g0L7RidC1INCz0L4g0LjQvNCwIgorCisjOiBnaXQtZ3VpLnNoOjIxMTQgZ2l0LWd1aS5zaDoyMTE1IGdpdC1ndWkuc2g6MjExNiBnaXQtZ3VpLnNoOjIxMTcKKyM6IGdpdC1ndWkuc2g6MjExOCBnaXQtZ3VpLnNoOjIxMTkKK21zZ2lkICJSZXF1aXJlcyBtZXJnZSByZXNvbHV0aW9uIgorbXNnc3RyICLQmNC30LjRgdC60LLQsCDQutC+0YDQuNCz0LjRgNCw0L3QtSDQv9GA0Lgg0YHQu9C40LLQsNC90LUiCisKKyM6IGdpdC1ndWkuc2g6MjE1NAorbXNnaWQgIlN0YXJ0aW5nIGdpdGsuLi4gcGxlYXNlIHdhaXQuLi4iCittc2dzdHIgItCh0YLQsNGA0YLQuNGA0LDQvdC1INC90LAgZ2l0a+KApiwg0LjQt9GH0LDQutCw0LnRgtC14oCmIgorCisjOiBnaXQtZ3VpLnNoOjIxNjYKK21zZ2lkICJDb3VsZG4ndCBmaW5kIGdpdGsgaW4gUEFUSCIKK21zZ3N0ciAi0JIg0L/RitGC0LjRidCw0YLQsCwg0L7Qv9GA0LXQtNC10LvQtdC90Lgg0L7RgiDQv9GA0L7QvNC10L3Qu9C40LLQsNGC0LAgUEFUSCwg0LvQuNC/0YHQstCwINC40LfQv9GK0LvQvdC40LwgZ2l0ayIKKworIzogZ2l0LWd1aS5zaDoyMjI1Cittc2dpZCAiQ291bGRuJ3QgZmluZCBnaXQgZ3VpIGluIFBBVEgiCittc2dzdHIgItCSINC/0YrRgtC40YnQsNGC0LAsINC+0L/RgNC10LTQtdC70LXQvdC4INC+0YIg0L/RgNC+0LzQtdC90LvQuNCy0LDRgtCwIFBBVEgsINC70LjQv9GB0LLQsCDQuNC30L/RitC70L3QuNC8IGdpdCBndWkiCisKKyM6IGdpdC1ndWkuc2g6MjY0NCBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjQwCittc2dpZCAiUmVwb3NpdG9yeSIKK21zZ3N0ciAi0KXRgNCw0L3QuNC70LjRidC1IgorCisjOiBnaXQtZ3VpLnNoOjI2NDUKK21zZ2lkICJFZGl0IgorbXNnc3RyICLQoNC10LTQsNC60YLQuNGA0LDQvdC1IgorCisjOiBnaXQtZ3VpLnNoOjI2NDcgbGliL2Nob29zZV9yZXYudGNsOjU2NworbXNnaWQgIkJyYW5jaCIKK21zZ3N0ciAi0JrQu9C+0L0iCisKKyM6IGdpdC1ndWkuc2g6MjY1MCBsaWIvY2hvb3NlX3Jldi50Y2w6NTU0Cittc2dpZCAiQ29tbWl0QEBub3VuIgorbXNnc3RyICLQn9C+0LTQsNCy0LDQvdC1IgorCisjOiBnaXQtZ3VpLnNoOjI2NTMgbGliL21lcmdlLnRjbDoxMjMgbGliL21lcmdlLnRjbDoxNTIgbGliL21lcmdlLnRjbDoxNzAKK21zZ2lkICJNZXJnZSIKK21zZ3N0ciAi0KHQu9C40LLQsNC90LUiCisKKyM6IGdpdC1ndWkuc2g6MjY1NCBsaWIvY2hvb3NlX3Jldi50Y2w6NTYzCittc2dpZCAiUmVtb3RlIgorbXNnc3RyICLQntGC0LTQsNC70LXRh9C10L3QviDRhdGA0LDQvdC40LvQuNGJ0LUiCisKKyM6IGdpdC1ndWkuc2g6MjY1NworbXNnaWQgIlRvb2xzIgorbXNnc3RyICLQmtC+0LzQsNC90LTQuCIKKworIzogZ2l0LWd1aS5zaDoyNjY2Cittc2dpZCAiRXhwbG9yZSBXb3JraW5nIENvcHkiCittc2dzdHIgItCg0LDQt9Cz0LvQtdC20LTQsNC90LUg0L3QsCDRgNCw0LHQvtGC0L3QvtGC0L4g0LrQvtC/0LjQtSIKKworIzogZ2l0LWd1aS5zaDoyNjcyCittc2dpZCAiR2l0IEJhc2giCittc2dzdHIgIkJhc2gg0L3QsCBHaXQiCisKKyM6IGdpdC1ndWkuc2g6MjY4MgorbXNnaWQgIkJyb3dzZSBDdXJyZW50IEJyYW5jaCdzIEZpbGVzIgorbXNnc3RyICLQoNCw0LfQs9C70LXQttC00LDQvdC1INC90LAg0YTQsNC50LvQvtCy0LXRgtC1INCyINGC0LXQutGD0YnQuNGPINC60LvQvtC9IgorCisjOiBnaXQtZ3VpLnNoOjI2ODYKK21zZ2lkICJCcm93c2UgQnJhbmNoIEZpbGVzLi4uIgorbXNnc3RyICLQoNCw0LfQs9C70LXQttC00LDQvdC1INC90LAg0YLQtdC60YPRidC40Y8g0LrQu9C+0L0iCisKKyM6IGdpdC1ndWkuc2g6MjY5MQorbXNnaWQgIlZpc3VhbGl6ZSBDdXJyZW50IEJyYW5jaCdzIEhpc3RvcnkiCittc2dzdHIgItCS0LjQt9GD0LDQu9C40LfQsNGG0LjRjyDQvdCwINC40YHRgtC+0YDQuNGP0YLQsCDQvdCwINGC0LXQutGD0YnQuNGPINC60LvQvtC9IgorCisjOiBnaXQtZ3VpLnNoOjI2OTUKK21zZ2lkICJWaXN1YWxpemUgQWxsIEJyYW5jaCBIaXN0b3J5IgorbXNnc3RyICLQktC40LfRg9Cw0LvQuNC30LDRhtC40Y8g0L3QsCDQuNGB0YLQvtGA0LjRj9GC0LAg0L3QsCDQstGB0LjRh9C60Lgg0LrQu9C+0L3QvtCy0LUiCisKKyM6IGdpdC1ndWkuc2g6MjcwMgorIywgdGNsLWZvcm1hdAorbXNnaWQgIkJyb3dzZSAlcydzIEZpbGVzIgorbXNnc3RyICLQoNCw0LfQs9C70LXQttC00LDQvdC1INC90LAg0YTQsNC50LvQvtCy0LXRgtC1INCyICVzIgorCisjOiBnaXQtZ3VpLnNoOjI3MDQKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJWaXN1YWxpemUgJXMncyBIaXN0b3J5IgorbXNnc3RyICLQktC40LfRg9Cw0LvQuNC30LDRhtC40Y8g0L3QsCDQuNGB0YLQvtGA0LjRj9GC0LAg0L3QsCAlcyIKKworIzogZ2l0LWd1aS5zaDoyNzA5IGxpYi9kYXRhYmFzZS50Y2w6NDAgbGliL2RhdGFiYXNlLnRjbDo2NgorbXNnaWQgIkRhdGFiYXNlIFN0YXRpc3RpY3MiCittc2dzdHIgItCh0YLQsNGC0LjRgdGC0LjQutCwINC90LAg0LHQsNC30LDRgtCwINC+0YIg0LTQsNC90L3QuCIKKworIzogZ2l0LWd1aS5zaDoyNzEyIGxpYi9kYXRhYmFzZS50Y2w6MzMKK21zZ2lkICJDb21wcmVzcyBEYXRhYmFzZSIKK21zZ3N0ciAi0JrQvtC80L/RgNC10YHQuNGA0LDQvdC1INC90LAg0LHQsNC30LDRgtCwINC+0YIg0LTQsNC90L3QuCIKKworIzogZ2l0LWd1aS5zaDoyNzE1Cittc2dpZCAiVmVyaWZ5IERhdGFiYXNlIgorbXNnc3RyICLQn9GA0L7QstC10YDQutCwINC90LAg0LHQsNC30LDRgtCwINC+0YIg0LTQsNC90L3QuCIKKworIzogZ2l0LWd1aS5zaDoyNzIyIGdpdC1ndWkuc2g6MjcyNiBnaXQtZ3VpLnNoOjI3MzAgbGliL3Nob3J0Y3V0LnRjbDo4CisjOiBsaWIvc2hvcnRjdXQudGNsOjQwIGxpYi9zaG9ydGN1dC50Y2w6NzIKK21zZ2lkICJDcmVhdGUgRGVza3RvcCBJY29uIgorbXNnc3RyICLQlNC+0LHQsNCy0Y/QvdC1INC90LAg0LjQutC+0L3QsCDQvdCwINGA0LDQsdC+0YLQvdC40Y8g0L/Qu9C+0YIiCisKKyM6IGdpdC1ndWkuc2g6MjczOCBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjE5MiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjIwMAorbXNnaWQgIlF1aXQiCittc2dzdHIgItCh0L/QuNGA0LDQvdC1INC90LAg0L/RgNC+0LPRgNCw0LzQsNGC0LAiCisKKyM6IGdpdC1ndWkuc2g6Mjc0NgorbXNnaWQgIlVuZG8iCittc2dzdHIgItCe0YLQvNGP0L3QsCIKKworIzogZ2l0LWd1aS5zaDoyNzQ5Cittc2dpZCAiUmVkbyIKK21zZ3N0ciAi0J/QvtCy0YLQvtGA0LXQvdC40LUiCisKKyM6IGdpdC1ndWkuc2g6Mjc1MyBnaXQtZ3VpLnNoOjMzNDgKK21zZ2lkICJDdXQiCittc2dzdHIgItCe0YLRgNGP0LfQstCw0L3QtSIKKworIzogZ2l0LWd1aS5zaDoyNzU2IGdpdC1ndWkuc2g6MzM1MSBnaXQtZ3VpLnNoOjM0MjUgZ2l0LWd1aS5zaDozNTEwCisjOiBsaWIvY29uc29sZS50Y2w6NjkKK21zZ2lkICJDb3B5IgorbXNnc3RyICLQmtC+0L/QuNGA0LDQvdC1IgorCisjOiBnaXQtZ3VpLnNoOjI3NTkgZ2l0LWd1aS5zaDozMzU0Cittc2dpZCAiUGFzdGUiCittc2dzdHIgItCf0L7RgdGC0LDQstGP0L3QtSIKKworIzogZ2l0LWd1aS5zaDoyNzYyIGdpdC1ndWkuc2g6MzM1NyBsaWIvcmVtb3RlX2JyYW5jaF9kZWxldGUudGNsOjM5CisjOiBsaWIvYnJhbmNoX2RlbGV0ZS50Y2w6MjgKK21zZ2lkICJEZWxldGUiCittc2dzdHIgItCY0LfRgtGA0LjQstCw0L3QtSIKKworIzogZ2l0LWd1aS5zaDoyNzY2IGdpdC1ndWkuc2g6MzM2MSBnaXQtZ3VpLnNoOjM1MTQgbGliL2NvbnNvbGUudGNsOjcxCittc2dpZCAiU2VsZWN0IEFsbCIKK21zZ3N0ciAi0JjQt9Cx0LjRgNCw0L3QtSDQvdCwINCy0YHQuNGH0LrQviIKKworIzogZ2l0LWd1aS5zaDoyNzc1Cittc2dpZCAiQ3JlYXRlLi4uIgorbXNnc3RyICLQodGK0LfQtNCw0LLQsNC90LXigKYiCisKKyM6IGdpdC1ndWkuc2g6Mjc4MQorbXNnaWQgIkNoZWNrb3V0Li4uIgorbXNnc3RyICLQmNC30YLQtdCz0LvRj9C90LXigKYiCisKKyM6IGdpdC1ndWkuc2g6Mjc4NworbXNnaWQgIlJlbmFtZS4uLiIKK21zZ3N0ciAi0J/RgNC10LjQvNC10L3Rg9Cy0LDQvdC14oCmIgorCisjOiBnaXQtZ3VpLnNoOjI3OTIKK21zZ2lkICJEZWxldGUuLi4iCittc2dzdHIgItCY0LfRgtGA0LjQstCw0L3QteKApiIKKworIzogZ2l0LWd1aS5zaDoyNzk3Cittc2dpZCAiUmVzZXQuLi4iCittc2dzdHIgItCe0YLQvNGP0L3QsCDQvdCwINC/0YDQvtC80LXQvdC40YLQteKApiIKKworIzogZ2l0LWd1aS5zaDoyODA3Cittc2dpZCAiRG9uZSIKK21zZ3N0ciAi0JPQvtGC0L7QstC+IgorCisjOiBnaXQtZ3VpLnNoOjI4MDkKK21zZ2lkICJDb21taXRAQHZlcmIiCittc2dzdHIgItCf0L7QtNCw0LLQsNC90LUiCisKKyM6IGdpdC1ndWkuc2g6MjgxOCBnaXQtZ3VpLnNoOjMyODkKK21zZ2lkICJOZXcgQ29tbWl0IgorbXNnc3RyICLQn9C+0LTQsNCy0LDQvdC1IgorCisjOiBnaXQtZ3VpLnNoOjI4MjYgZ2l0LWd1aS5zaDozMjk2Cittc2dpZCAiQW1lbmQgTGFzdCBDb21taXQiCittc2dzdHIgItCf0L7Qv9GA0LDQstGP0L3QtSDQvdCwINC/0L7RgdC70LXQtNC90L7RgtC+INC/0L7QtNCw0LLQsNC90LUiCisKKyM6IGdpdC1ndWkuc2g6MjgzNiBnaXQtZ3VpLnNoOjMyNTAgbGliL3JlbW90ZV9icmFuY2hfZGVsZXRlLnRjbDoxMDEKK21zZ2lkICJSZXNjYW4iCittc2dzdHIgItCe0LHQvdC+0LLRj9Cy0LDQvdC1IgorCisjOiBnaXQtZ3VpLnNoOjI4NDIKK21zZ2lkICJTdGFnZSBUbyBDb21taXQiCittc2dzdHIgItCa0YrQvCDQuNC90LTQtdC60YHQsCDQt9CwINC/0L7QtNCw0LLQsNC90LUiCisKKyM6IGdpdC1ndWkuc2g6Mjg0OAorbXNnaWQgIlN0YWdlIENoYW5nZWQgRmlsZXMgVG8gQ29tbWl0IgorbXNnc3RyICLQktGB0LjRh9C60Lgg0L/RgNC+0LzQtdC90LXQvdC4INGE0LDQudC70L7QstC1INC60YrQvCDQuNC90LTQtdC60YHQsCDQt9CwINC/0L7QtNCw0LLQsNC90LUiCisKKyM6IGdpdC1ndWkuc2g6Mjg1NAorbXNnaWQgIlVuc3RhZ2UgRnJvbSBDb21taXQiCittc2dzdHIgItCY0LfQstCw0LbQtNCw0L3QtSDQvtGCINC40L3QtNC10LrRgdCwINC30LAg0L/QvtC00LDQstCw0L3QtSIKKworIzogZ2l0LWd1aS5zaDoyODYwIGxpYi9pbmRleC50Y2w6NDQyCittc2dpZCAiUmV2ZXJ0IENoYW5nZXMiCittc2dzdHIgItCS0YDRitGJ0LDQvdC1INC90LAg0L7RgNC40LPQuNC90LDQu9CwIgorCisjOiBnaXQtZ3VpLnNoOjI4NjggZ2l0LWd1aS5zaDozNTYxIGdpdC1ndWkuc2g6MzU5MgorbXNnaWQgIlNob3cgTGVzcyBDb250ZXh0IgorbXNnc3RyICLQn9C+LdC80LDQu9C60L4g0LrQvtC90YLQtdC60YHRgiIKKworIzogZ2l0LWd1aS5zaDoyODcyIGdpdC1ndWkuc2g6MzU2NSBnaXQtZ3VpLnNoOjM1OTYKK21zZ2lkICJTaG93IE1vcmUgQ29udGV4dCIKK21zZ3N0ciAi0J/QvtCy0LXRh9C1INC60L7QvdGC0LXQutGB0YIiCisKKyM6IGdpdC1ndWkuc2g6Mjg3OSBnaXQtZ3VpLnNoOjMyNjMgZ2l0LWd1aS5zaDozMzcyCittc2dpZCAiU2lnbiBPZmYiCittc2dzdHIgItCf0L7QtNC/0LjRgdCy0LDQvdC1IgorCisjOiBnaXQtZ3VpLnNoOjI4OTUKK21zZ2lkICJMb2NhbCBNZXJnZS4uLiIKK21zZ3N0ciAi0JvQvtC60LDQu9C90L4g0YHQu9C40LLQsNC90LXigKYiCisKKyM6IGdpdC1ndWkuc2g6MjkwMAorbXNnaWQgIkFib3J0IE1lcmdlLi4uIgorbXNnc3RyICLQn9GA0LXRg9GB0YLQsNC90L7QstGP0LLQsNC90LUg0L3QsCDRgdC70LjQstCw0L3QteKApiIKKworIzogZ2l0LWd1aS5zaDoyOTEyIGdpdC1ndWkuc2g6Mjk0MAorbXNnaWQgIkFkZC4uLiIKK21zZ3N0ciAi0JTQvtCx0LDQstGP0L3QteKApiIKKworIzogZ2l0LWd1aS5zaDoyOTE2Cittc2dpZCAiUHVzaC4uLiIKK21zZ3N0ciAi0JjQt9Cx0YPRgtCy0LDQvdC14oCmIgorCisjOiBnaXQtZ3VpLnNoOjI5MjAKK21zZ2lkICJEZWxldGUgQnJhbmNoLi4uIgorbXNnc3RyICLQmNC30YLRgNC40LLQsNC90LUg0L3QsCDQutC70L7QveKApiIKKworIzogZ2l0LWd1aS5zaDoyOTMwIGdpdC1ndWkuc2g6MzU0MworbXNnaWQgIk9wdGlvbnMuLi4iCittc2dzdHIgItCe0L/RhtC40LjigKYiCisKKyM6IGdpdC1ndWkuc2g6Mjk0MQorbXNnaWQgIlJlbW92ZS4uLiIKK21zZ3N0ciAi0J/RgNC10LzQsNGF0LLQsNC90LXigKYiCisKKyM6IGdpdC1ndWkuc2g6Mjk1MCBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjU0Cittc2dpZCAiSGVscCIKK21zZ3N0ciAi0J/QvtC80L7RiSIKKworIzogZ2l0LWd1aS5zaDoyOTU0IGdpdC1ndWkuc2g6Mjk1OCBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjQ4CisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjU3IGxpYi9hYm91dC50Y2w6MTQKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJBYm91dCAlcyIKK21zZ3N0ciAi0J7RgtC90L7RgdC90L4gJXMiCisKKyM6IGdpdC1ndWkuc2g6Mjk4MgorbXNnaWQgIk9ubGluZSBEb2N1bWVudGF0aW9uIgorbXNnc3RyICLQlNC+0LrRg9C80LXQvdGC0LDRhtC40Y8g0LIg0JjQvdGC0LXRgNC90LXRgiIKKworIzogZ2l0LWd1aS5zaDoyOTg1IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NTEgbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo2MAorbXNnaWQgIlNob3cgU1NIIEtleSIKK21zZ3N0ciAi0J/QvtC60LDQt9Cy0LDQvdC1INC90LAg0LrQu9GO0YfQsCDQt9CwIFNTSCIKKworIzogZ2l0LWd1aS5zaDozMDA0IGdpdC1ndWkuc2g6MzEzNgorbXNnaWQgIlVzYWdlIgorbXNnc3RyICLQo9C/0L7RgtGA0LXQsdCwIgorCisjOiBnaXQtZ3VpLnNoOjMwODUgbGliL2JsYW1lLnRjbDo1NzMKK21zZ2lkICJFcnJvciIKK21zZ3N0ciAi0JPRgNC10YjQutCwIgorCisjOiBnaXQtZ3VpLnNoOjMxMTYKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJmYXRhbDogY2Fubm90IHN0YXQgcGF0aCAlczogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSIKK21zZ3N0ciAiIgorItGE0LDRgtCw0LvQvdC+OiDQv9GK0YLRj9GCICVzINC90LUg0LzQvtC20LUg0LTQsCDQsdGK0LTQtSDQvtGC0LrRgNC40YI6INGC0LDQutGK0LIg0YTQsNC50Lsg0LjQu9C4INC00LjRgNC10LrRgtC+0YDQuNGPINC90Y/QvNCwIgorCisjOiBnaXQtZ3VpLnNoOjMxNDkKK21zZ2lkICJDdXJyZW50IEJyYW5jaDoiCittc2dzdHIgItCi0LXQutGD0Ykg0LrQu9C+0L06IgorCisjOiBnaXQtZ3VpLnNoOjMxNzUKK21zZ2lkICJTdGFnZWQgQ2hhbmdlcyAoV2lsbCBDb21taXQpIgorbXNnc3RyICLQn9GA0L7QvNC10L3QuCDQsiDQuNC90LTQtdC60YHQsCAo0LfQsCDQv9C+0LTQsNCy0LDQvdC1KSIKKworIzogZ2l0LWd1aS5zaDozMTk1Cittc2dpZCAiVW5zdGFnZWQgQ2hhbmdlcyIKK21zZ3N0ciAi0J/RgNC+0LzQtdC90Lgg0LjQt9Cy0YrQvSDQuNC90LTQtdC60YHQsCIKKworIzogZ2l0LWd1aS5zaDozMjU2Cittc2dpZCAiU3RhZ2UgQ2hhbmdlZCIKK21zZ3N0ciAi0JjQvdC00LXQutGB0YrRgiDQtSDQv9GA0L7QvNC10L3QtdC9IgorCisjOiBnaXQtZ3VpLnNoOjMyNzUgbGliL3RyYW5zcG9ydC50Y2w6MTM3IGxpYi90cmFuc3BvcnQudGNsOjIyOQorbXNnaWQgIlB1c2giCittc2dzdHIgItCY0LfRgtC70LDRgdC60LLQsNC90LUiCisKKyM6IGdpdC1ndWkuc2g6MzMxMAorbXNnaWQgIkluaXRpYWwgQ29tbWl0IE1lc3NhZ2U6IgorbXNnc3RyICLQn9GK0YDQstC+0L3QsNGH0LDQu9C90L4g0YHRitC+0LHRidC10L3QuNC1INC/0YDQuCDQv9C+0LTQsNCy0LDQvdC1OiIKKworIzogZ2l0LWd1aS5zaDozMzExCittc2dpZCAiQW1lbmRlZCBDb21taXQgTWVzc2FnZToiCittc2dzdHIgItCf0L7Qv9GA0LDQstC10L3QviDRgdGK0L7QsdGJ0LXQvdC40LUg0L/RgNC4INC/0L7QtNCw0LLQsNC90LU6IgorCisjOiBnaXQtZ3VpLnNoOjMzMTIKK21zZ2lkICJBbWVuZGVkIEluaXRpYWwgQ29tbWl0IE1lc3NhZ2U6IgorbXNnc3RyICLQn9C+0L/RgNCw0LLQtdC90L4g0L/RitGA0LLQvtC90LDRh9Cw0LvQvdC+INGB0YrQvtCx0YnQtdC90LjQtSDQv9GA0Lgg0L/QvtC00LDQstCw0L3QtToiCisKKyM6IGdpdC1ndWkuc2g6MzMxMworbXNnaWQgIkFtZW5kZWQgTWVyZ2UgQ29tbWl0IE1lc3NhZ2U6IgorbXNnc3RyICLQn9C+0L/RgNCw0LLQtdC90L4g0YHRitC+0LHRidC10L3QuNC1INC/0YDQuCDQv9C+0LTQsNCy0LDQvdC1INGB0YrRgSDRgdC70LjQstCw0L3QtToiCisKKyM6IGdpdC1ndWkuc2g6MzMxNAorbXNnaWQgIk1lcmdlIENvbW1pdCBNZXNzYWdlOiIKK21zZ3N0ciAi0KHRitC+0LHRidC10L3QuNC1INC/0YDQuCDQv9C+0LTQsNCy0LDQvdC1INGB0YrRgSDRgdC70LjQstCw0L3QtToiCisKKyM6IGdpdC1ndWkuc2g6MzMxNQorbXNnaWQgIkNvbW1pdCBNZXNzYWdlOiIKK21zZ3N0ciAi0KHRitC+0LHRidC10L3QuNC1INC/0YDQuCDQv9C+0LTQsNCy0LDQvdC1OiIKKworIzogZ2l0LWd1aS5zaDozMzY0IGdpdC1ndWkuc2g6MzUxOCBsaWIvY29uc29sZS50Y2w6NzMKK21zZ2lkICJDb3B5IEFsbCIKK21zZ3N0ciAi0JrQvtC/0LjRgNCw0L3QtSDQvdCwINCy0YHQuNGH0LrQviIKKworIzogZ2l0LWd1aS5zaDozMzg4IGxpYi9ibGFtZS50Y2w6MTA1Cittc2dpZCAiRmlsZToiCittc2dzdHIgItCk0LDQudC7OiIKKworIzogZ2l0LWd1aS5zaDozNTA2Cittc2dpZCAiUmVmcmVzaCIKK21zZ3N0ciAi0J7QsdC90L7QstGP0LLQsNC90LUiCisKKyM6IGdpdC1ndWkuc2g6MzUyNworbXNnaWQgIkRlY3JlYXNlIEZvbnQgU2l6ZSIKK21zZ3N0ciAi0J/Qvi3QtdC00YrRgCDRiNGA0LjRhNGCIgorCisjOiBnaXQtZ3VpLnNoOjM1MzEKK21zZ2lkICJJbmNyZWFzZSBGb250IFNpemUiCittc2dzdHIgItCf0L4t0LTRgNC10LHQtdC9INGI0YDQuNGE0YIiCisKKyM6IGdpdC1ndWkuc2g6MzUzOSBsaWIvYmxhbWUudGNsOjI5NAorbXNnaWQgIkVuY29kaW5nIgorbXNnc3RyICLQmtC+0LTQuNGA0LDQvdC1IgorCisjOiBnaXQtZ3VpLnNoOjM1NTAKK21zZ2lkICJBcHBseS9SZXZlcnNlIEh1bmsiCittc2dzdHIgItCf0YDQuNC70LDQs9Cw0L3QtS/QstGA0YrRidCw0L3QtSDQvdCwINC/0LDRgNGH0LUiCisKKyM6IGdpdC1ndWkuc2g6MzU1NQorbXNnaWQgIkFwcGx5L1JldmVyc2UgTGluZSIKK21zZ3N0ciAi0J/RgNC40LvQsNCz0LDQvdC1L9Cy0YDRitGJ0LDQvdC1INC90LAg0YDQtdC0IgorCisjOiBnaXQtZ3VpLnNoOjM1NzQKK21zZ2lkICJSdW4gTWVyZ2UgVG9vbCIKK21zZ3N0ciAi0JjQt9C/0YrQu9C90LXQvdC40LUg0L3QsCDQv9GA0L7Qs9GA0LDQvNCw0YLQsCDQt9CwINGB0LvQuNCy0LDQvdC1IgorCisjOiBnaXQtZ3VpLnNoOjM1NzkKK21zZ2lkICJVc2UgUmVtb3RlIFZlcnNpb24iCittc2dzdHIgItCS0LXRgNGB0LjRjyDQvtGCINC+0YLQtNCw0LvQtdGH0LXQvdC+0YLQviDRhdGA0LDQvdC40LvQuNGJ0LUiCisKKyM6IGdpdC1ndWkuc2g6MzU4MworbXNnaWQgIlVzZSBMb2NhbCBWZXJzaW9uIgorbXNnc3RyICLQm9C+0LrQsNC70L3QsCDQstC10YDRgdC40Y8iCisKKyM6IGdpdC1ndWkuc2g6MzU4NworbXNnaWQgIlJldmVydCBUbyBCYXNlIgorbXNnc3RyICLQktGA0YrRidCw0L3QtSDQutGK0Lwg0YDQvtC00LjRgtC10LvRgdC60LDRgtCwINCy0LXRgNGB0LjRjyIKKworIzogZ2l0LWd1aS5zaDozNjA1Cittc2dpZCAiVmlzdWFsaXplIFRoZXNlIENoYW5nZXMgSW4gVGhlIFN1Ym1vZHVsZSIKK21zZ3N0ciAi0JLQuNC30YPQsNC70LjQt9C40YDQsNC90LUg0L3QsCDQv9GA0L7QvNC10L3QuNGC0LUg0LIg0L/QvtC00LzQvtC00YPQu9CwIgorCisjOiBnaXQtZ3VpLnNoOjM2MDkKK21zZ2lkICJWaXN1YWxpemUgQ3VycmVudCBCcmFuY2ggSGlzdG9yeSBJbiBUaGUgU3VibW9kdWxlIgorbXNnc3RyICLQktC40LfRg9Cw0LvQuNC30LDRhtC40Y8g0L3QsCDQuNGB0YLQvtGA0LjRj9GC0LAg0L3QsCDRgtC10LrRg9GJ0LjRjyDQutC70L7QvSDQsiDQuNGB0YLQvtGA0LjRj9GC0LAg0LfQsCDQv9C+0LTQvNC+0LTRg9C70LAiCisKKyM6IGdpdC1ndWkuc2g6MzYxMworbXNnaWQgIlZpc3VhbGl6ZSBBbGwgQnJhbmNoIEhpc3RvcnkgSW4gVGhlIFN1Ym1vZHVsZSIKK21zZ3N0ciAi0JLQuNC30YPQsNC70LjQt9Cw0YbQuNGPINC90LAg0LjRgdGC0L7RgNC40Y/RgtCwINC90LAg0LLRgdC40YfQutC4INC60LvQvtC90Lgg0LIg0LjRgdGC0L7RgNC40Y/RgtCwINC30LAg0L/QvtC00LzQvtC00YPQu9CwIgorCisjOiBnaXQtZ3VpLnNoOjM2MTgKK21zZ2lkICJTdGFydCBnaXQgZ3VpIEluIFRoZSBTdWJtb2R1bGUiCittc2dzdHIgItCh0YLQsNGA0YLQuNGA0LDQvdC1INC90LAg4oCeZ2l0IGd1aeKAnCDQt9CwINC/0L7QtNC80L7QtNGD0LvQsCIKKworIzogZ2l0LWd1aS5zaDozNjUzCittc2dpZCAiVW5zdGFnZSBIdW5rIEZyb20gQ29tbWl0IgorbXNnc3RyICLQmNC30LLQsNC20LTQsNC90LUg0L3QsCDQv9Cw0YDRh9C10YLQviDQvtGCINC/0L7QtNCw0LLQsNC90LXRgtC+IgorCisjOiBnaXQtZ3VpLnNoOjM2NTUKK21zZ2lkICJVbnN0YWdlIExpbmVzIEZyb20gQ29tbWl0IgorbXNnc3RyICLQmNC30LLQsNC20LTQsNC90LUg0L3QsCDRgNC10LTQvtCy0LXRgtC1INC+0YIg0L/QvtC00LDQstCw0L3QtdGC0L4iCisKKyM6IGdpdC1ndWkuc2g6MzY1NworbXNnaWQgIlVuc3RhZ2UgTGluZSBGcm9tIENvbW1pdCIKK21zZ3N0ciAi0JjQt9Cy0LDQttC00LDQvdC1INC90LAg0YDQtdC00LAg0L7RgiDQv9C+0LTQsNCy0LDQvdC10YLQviIKKworIzogZ2l0LWd1aS5zaDozNjYwCittc2dpZCAiU3RhZ2UgSHVuayBGb3IgQ29tbWl0IgorbXNnc3RyICLQlNC+0LHQsNCy0Y/QvdC1INC90LAg0L/QsNGA0YfQtdGC0L4g0LfQsCDQv9C+0LTQsNCy0LDQvdC1IgorCisjOiBnaXQtZ3VpLnNoOjM2NjIKK21zZ2lkICJTdGFnZSBMaW5lcyBGb3IgQ29tbWl0IgorbXNnc3RyICLQlNC+0LHQsNCy0Y/QvdC1INC90LAg0YDQtdC00L7QstC10YLQtSDQt9CwINC/0L7QtNCw0LLQsNC90LUiCisKKyM6IGdpdC1ndWkuc2g6MzY2NAorbXNnaWQgIlN0YWdlIExpbmUgRm9yIENvbW1pdCIKK21zZ3N0ciAi0JTQvtCx0LDQstGP0L3QtSDQvdCwINGA0LXQtNCwINC30LAg0L/QvtC00LDQstCw0L3QtSIKKworIzogZ2l0LWd1aS5zaDozNjg5Cittc2dpZCAiSW5pdGlhbGl6aW5nLi4uIgorbXNnc3RyICLQmNC90LjRhtC40LDQu9C40LfQuNGA0LDQvdC14oCmIgorCisjOiBnaXQtZ3VpLnNoOjM4MzIKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICIiCisiUG9zc2libGUgZW52aXJvbm1lbnQgaXNzdWVzIGV4aXN0LlxuIgorIlxuIgorIlRoZSBmb2xsb3dpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBwcm9iYWJseVxuIgorImdvaW5nIHRvIGJlIGlnbm9yZWQgYnkgYW55IEdpdCBzdWJwcm9jZXNzIHJ1blxuIgorImJ5ICVzOlxuIgorIlxuIgorbXNnc3RyICIiCisi0JLRitC30LzQvtC20L3QviDQtSDQtNCwINC40LzQsCDQv9GA0L7QsdC70LXQvCDRgdGK0YEg0YHRgNC10LTQsNGC0LAuXG4iCisiXG4iCisi0J3QsNC5LdCy0LXRgNC+0Y/RgtC90L4g0YHQu9C10LTQvdC40YLQtSDQv9GA0L7QvNC10L3Qu9C40LLQuCDQvdGP0LzQsCDQtNCwINCx0YrQtNCw0YJcbiIKKyLQstC30LXRgtC4INC/0L7QtCDQstC90LjQvNCw0L3QuNC1INC+0YIg0L/QvtC00L/RgNC+0YbQtdGB0LjRgtC1IEdpdCDQuNC30L/RitC70L3QtdC90LhcbiIKKyLQvtGCICVzOlxuIgorIlxuIgorCisjOiBnaXQtZ3VpLnNoOjM4NjEKK21zZ2lkICIiCisiXG4iCisiVGhpcyBpcyBkdWUgdG8gYSBrbm93biBpc3N1ZSB3aXRoIHRoZVxuIgorIlRjbCBiaW5hcnkgZGlzdHJpYnV0ZWQgYnkgQ3lnd2luLiIKK21zZ3N0ciAiIgorIlxuIgorItCi0L7QstCwINC1INC/0L7Qt9C90LDRgiDQv9GA0L7QsdC70LXQvCDQuCDRgdC1INC00YrQu9C20Lgg0L3QsFxuIgorItCy0LXRgNGB0LjRj9GC0LAg0L3QsCBUY2wg0LLQutC70Y7Rh9C10L3QsCDQsiBDeWd3aW4uIgorCisjOiBnaXQtZ3VpLnNoOjM4NjYKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXG4iCisiQSBnb29kIHJlcGxhY2VtZW50IGZvciAlc1xuIgorImlzIHBsYWNpbmcgdmFsdWVzIGZvciB0aGUgdXNlci5uYW1lIGFuZFxuIgorInVzZXIuZW1haWwgc2V0dGluZ3MgaW50byB5b3VyIHBlcnNvbmFsXG4iCisifi8uZ2l0Y29uZmlnIGZpbGUuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcbiIKKyLQlNC+0LHRitGAINC30LDQvNC10YHRgtC40YLQtdC7INC90LAgJXNcbiIKKyLQtSDQtNCwINC/0L7RgdGC0LDQstC40YLQtSDQvdCw0YHRgtGA0L7QudC60LjRgtC1IHVzZXIubmFtZSDQuFxuIgorInVzZXIuZW1haWwg0LIg0LvQuNGH0L3QuNGPINGB0Lgg0YTQsNC50Lsgfi8uZ2l0Y29uZmlnLlxuIgorCisjOiBsaWIvc3BlbGxjaGVjay50Y2w6NTcKK21zZ2lkICJVbnN1cHBvcnRlZCBzcGVsbCBjaGVja2VyIgorbXNnc3RyICLQotCw0LfQuCDQv9GA0L7Qs9GA0LDQvNCwINC30LAg0L/RgNC+0LLQtdGA0LrQsCDQvdCwINC/0YDQsNCy0L7Qv9C40YHQsCDQvdC1INGB0LUg0L/QvtC00LTRitGA0LbQsCIKKworIzogbGliL3NwZWxsY2hlY2sudGNsOjY1Cittc2dpZCAiU3BlbGwgY2hlY2tpbmcgaXMgdW5hdmFpbGFibGUiCittc2dzdHIgItCb0LjQv9GB0LLQsCDQv9GA0L7Qs9GA0LDQvNCwINC30LAg0L/RgNC+0LLQtdGA0LrQsCDQvdCwINC/0YDQsNCy0L7Qv9C40YHQsCIKKworIzogbGliL3NwZWxsY2hlY2sudGNsOjY4Cittc2dpZCAiSW52YWxpZCBzcGVsbCBjaGVja2luZyBjb25maWd1cmF0aW9uIgorbXNnc3RyICLQndC10L/RgNCw0LLQuNC70L3QuCDQvdCw0YHRgtGA0L7QudC60Lgg0L3QsCDQv9GA0L7QstC10YDQutCw0YLQsCDQvdCwINC/0YDQsNCy0L7Qv9C40YHQsCIKKworIzogbGliL3NwZWxsY2hlY2sudGNsOjcwCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiUmV2ZXJ0aW5nIGRpY3Rpb25hcnkgdG8gJXMuIgorbXNnc3RyICLQn9C+0LvQt9Cy0LDQvdC1INC90LAg0YDQtdGH0L3QuNC6INC30LAg0LXQt9C40Log4oCeJXPigJwuIgorCisjOiBsaWIvc3BlbGxjaGVjay50Y2w6NzMKK21zZ2lkICJTcGVsbCBjaGVja2VyIHNpbGVudGx5IGZhaWxlZCBvbiBzdGFydHVwIgorbXNnc3RyICLQn9GA0L7Qs9GA0LDQvNCw0YLQsCDQt9CwINC/0YDQsNCy0L7Qv9C40YEg0LTQsNC20LUg0L3QtSDRgdGC0LDRgNGC0LjRgNCwINGD0YHQv9C10YjQvdC+LiIKKworIzogbGliL3NwZWxsY2hlY2sudGNsOjgwCittc2dpZCAiVW5yZWNvZ25pemVkIHNwZWxsIGNoZWNrZXIiCittc2dzdHIgItCd0LXQv9C+0LfQvdCw0YLQsCDQv9GA0L7Qs9GA0LDQvNCwINC30LAg0L/RgNC+0LLQtdGA0LrQsCDQvdCwINC/0YDQsNCy0L7Qv9C40YHQsCIKKworIzogbGliL3NwZWxsY2hlY2sudGNsOjE4NgorbXNnaWQgIk5vIFN1Z2dlc3Rpb25zIgorbXNnc3RyICLQndGP0LzQsCDQv9GA0LXQtNC70L7QttC10L3QuNGPIgorCisjOiBsaWIvc3BlbGxjaGVjay50Y2w6Mzg4Cittc2dpZCAiVW5leHBlY3RlZCBFT0YgZnJvbSBzcGVsbCBjaGVja2VyIgorbXNnc3RyICLQndC10L7Rh9Cw0LrQstCw0L0g0LrRgNCw0Lkg0L3QsCDRhNCw0LnQuyDQvtGCINC/0YDQvtCz0YDQsNC80LDRgtCwINC30LAg0L/RgNC+0LLQtdGA0LrQsCDQvdCwINC/0YDQsNCy0L7Qv9C40YHQsCIKKworIzogbGliL3NwZWxsY2hlY2sudGNsOjM5MgorbXNnaWQgIlNwZWxsIENoZWNrZXIgRmFpbGVkIgorbXNnc3RyICLQk9GA0LXRiNC60LAg0LIg0L/RgNC+0LPRgNCw0LzQsNGC0LAg0LfQsCDQv9GA0L7QstC10YDQutCwINC90LAg0L/RgNCw0LLQvtC/0LjRgdCwIgorCisjOiBsaWIvcmVtb3RlX2FkZC50Y2w6MjAKK21zZ2lkICJBZGQgUmVtb3RlIgorbXNnc3RyICLQlNC+0LHQsNCy0Y/QvdC1INC90LAg0L7RgtC00LDQu9C10YfQtdC90L4g0YXRgNCw0L3QuNC70LjRidC1IgorCisjOiBsaWIvcmVtb3RlX2FkZC50Y2w6MjUKK21zZ2lkICJBZGQgTmV3IFJlbW90ZSIKK21zZ3N0ciAi0JTQvtCx0LDQstGP0L3QtSDQvdCwINC+0YLQtNCw0LvQtdGH0LXQvdC+INGF0YDQsNC90LjQu9C40YnQtSIKKworIzogbGliL3JlbW90ZV9hZGQudGNsOjMwIGxpYi90b29sc19kbGcudGNsOjM3Cittc2dpZCAiQWRkIgorbXNnc3RyICLQlNC+0LHQsNCy0Y/QvdC1IgorCisjOiBsaWIvcmVtb3RlX2FkZC50Y2w6MzQgbGliL2Jyb3dzZXIudGNsOjI5MiBsaWIvYnJhbmNoX2NoZWNrb3V0LnRjbDozMAorIzogbGliL3RyYW5zcG9ydC50Y2w6MTQxIGxpYi9icmFuY2hfcmVuYW1lLnRjbDozMiBsaWIvY2hvb3NlX2ZvbnQudGNsOjQ1CisjOiBsaWIvb3B0aW9uLnRjbDoxMjcgbGliL3Rvb2xzX2RsZy50Y2w6NDEgbGliL3Rvb2xzX2RsZy50Y2w6MjAyCisjOiBsaWIvdG9vbHNfZGxnLnRjbDozNDUgbGliL3JlbW90ZV9icmFuY2hfZGVsZXRlLnRjbDo0MworIzogbGliL2NoZWNrb3V0X29wLnRjbDo1NzkgbGliL2JyYW5jaF9jcmVhdGUudGNsOjM3IGxpYi9icmFuY2hfZGVsZXRlLnRjbDozNAorIzogbGliL21lcmdlLnRjbDoxNzQKK21zZ2lkICJDYW5jZWwiCittc2dzdHIgItCe0YLQutCw0LfQstCw0L3QtSIKKworIzogbGliL3JlbW90ZV9hZGQudGNsOjM5Cittc2dpZCAiUmVtb3RlIERldGFpbHMiCittc2dzdHIgItCU0LDQvdC90Lgg0LfQsCDQvtGC0LTQsNC70LXRh9C10L3QvtGC0L4g0YXRgNCw0L3QuNC70LjRidC1IgorCisjOiBsaWIvcmVtb3RlX2FkZC50Y2w6NDEgbGliL3Rvb2xzX2RsZy50Y2w6NTEgbGliL2JyYW5jaF9jcmVhdGUudGNsOjQ0Cittc2dpZCAiTmFtZToiCittc2dzdHIgItCY0LzQtToiCisKKyM6IGxpYi9yZW1vdGVfYWRkLnRjbDo1MAorbXNnaWQgIkxvY2F0aW9uOiIKK21zZ3N0ciAi0JzQtdGB0YLQvtC/0L7Qu9C+0LbQtdC90LjQtToiCisKKyM6IGxpYi9yZW1vdGVfYWRkLnRjbDo2MAorbXNnaWQgIkZ1cnRoZXIgQWN0aW9uIgorbXNnc3RyICLQodC70LXQtNCy0LDRidC+INC00LXQudGB0YLQstC40LUiCisKKyM6IGxpYi9yZW1vdGVfYWRkLnRjbDo2MworbXNnaWQgIkZldGNoIEltbWVkaWF0ZWx5IgorbXNnc3RyICLQndC10LfQsNCx0LDQstC90L4g0LTQvtGB0YLQsNCy0Y/QvdC1IgorCisjOiBsaWIvcmVtb3RlX2FkZC50Y2w6NjkKK21zZ2lkICJJbml0aWFsaXplIFJlbW90ZSBSZXBvc2l0b3J5IGFuZCBQdXNoIgorbXNnc3RyICLQmNC90LjRhtC40LDQu9C40LfQuNGA0LDQvdC1INC90LAg0L7RgtC00LDQu9C10YfQtdC90L7RgtC+INGF0YDQsNC90LjQu9C40YnQtSDQuCDQuNC30YLQu9Cw0YHQutCy0LDQvdC1INC90LAg0L/RgNC+0LzQtdC90LjRgtC1IgorCisjOiBsaWIvcmVtb3RlX2FkZC50Y2w6NzUKK21zZ2lkICJEbyBOb3RoaW5nIEVsc2UgTm93IgorbXNnc3RyICLQlNCwINC90LUg0YHQtSDQv9GA0LDQstC4INC90LjRidC+IgorCisjOiBsaWIvcmVtb3RlX2FkZC50Y2w6MTAwCittc2dpZCAiUGxlYXNlIHN1cHBseSBhIHJlbW90ZSBuYW1lLiIKK21zZ3N0ciAi0JfQsNC00LDQudGC0LUg0LjQvNC1INC30LAg0L7RgtC00LDQu9C10YfQtdC90L7RgtC+INGF0YDQsNC90LjQu9C40YnQtS4iCisKKyM6IGxpYi9yZW1vdGVfYWRkLnRjbDoxMTMKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICInJXMnIGlzIG5vdCBhbiBhY2NlcHRhYmxlIHJlbW90ZSBuYW1lLiIKK21zZ3N0ciAi0J7RgtC00LDQu9C10YfQtdC90L4g0YXRgNCw0L3QuNC70LjRidC1INC90LUg0LzQvtC20LUg0LTQsCDRgdC1INC60LDQt9Cy0LAg4oCeJXPigJwuIgorCisjOiBsaWIvcmVtb3RlX2FkZC50Y2w6MTI0CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIGFkZCByZW1vdGUgJyVzJyBvZiBsb2NhdGlvbiAnJXMnLiIKK21zZ3N0ciAi0J3QtdGD0YHQv9C10YjQvdC+INC00L7QsdCw0LLRj9C90LUg0L3QsCDQvtGC0LTQsNC70LXRh9C10L3QvtGC0L4g0YXRgNCw0L3QuNC70LjRidC1IOKAniVz4oCcINC+0YIg0LDQtNGA0LXRgSDigJ4lc+KAnC4iCisKKyM6IGxpYi9yZW1vdGVfYWRkLnRjbDoxMzIgbGliL3RyYW5zcG9ydC50Y2w6NgorIywgdGNsLWZvcm1hdAorbXNnaWQgImZldGNoICVzIgorbXNnc3RyICLQtNC+0YHRgtCw0LLRj9C90LUg0L3QsCDigJ4lc+KAnCIKKworIzogbGliL3JlbW90ZV9hZGQudGNsOjEzMworIywgdGNsLWZvcm1hdAorbXNnaWQgIkZldGNoaW5nIHRoZSAlcyIKK21zZ3N0ciAi0JTQvtGB0YLQsNCy0Y/QvdC1INC90LAg4oCeJXPigJwiCisKKyM6IGxpYi9yZW1vdGVfYWRkLnRjbDoxNTYKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJEbyBub3Qga25vdyBob3cgdG8gaW5pdGlhbGl6ZSByZXBvc2l0b3J5IGF0IGxvY2F0aW9uICclcycuIgorbXNnc3RyICLQpdGA0LDQvdC40LvQuNGJ0LXRgtC+INGBINC80LXRgdGC0L7Qv9C+0LvQvtC20LXQvdC40LUg4oCeJXPigJwg0L3QtSDQvNC+0LbQtSDQtNCwINCx0YrQtNC1INC40L3QuNGG0LjQsNC70LjQt9C40YDQsNC90L4uIgorCisjOiBsaWIvcmVtb3RlX2FkZC50Y2w6MTYyIGxpYi90cmFuc3BvcnQudGNsOjU0IGxpYi90cmFuc3BvcnQudGNsOjkyCisjOiBsaWIvdHJhbnNwb3J0LnRjbDoxMTAKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJwdXNoICVzIgorbXNnc3RyICLQuNC30YLQu9Cw0YHQutCy0LDQvdC1INC90LAg4oCeJXPigJwiCisKKyM6IGxpYi9yZW1vdGVfYWRkLnRjbDoxNjMKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIHVwIHRoZSAlcyAoYXQgJXMpIgorbXNnc3RyICLQlNC+0LHQsNCy0Y/QvdC1INC90LAg0YXRgNCw0L3QuNC70LjRidC1IOKAniVz4oCcICjRgSDQsNC00YDQtdGBIOKAniVz4oCcKSIKKworIzogbGliL2Jyb3dzZXIudGNsOjE3Cittc2dpZCAiU3RhcnRpbmcuLi4iCittc2dzdHIgItCh0YLQsNGA0YLQuNGA0LDQvdC14oCmIgorCisjOiBsaWIvYnJvd3Nlci50Y2w6MjcKK21zZ2lkICJGaWxlIEJyb3dzZXIiCittc2dzdHIgItCk0LDQudC70L7QsiDQsdGA0LDRg9C30YrRgCIKKworIzogbGliL2Jyb3dzZXIudGNsOjEzMiBsaWIvYnJvd3Nlci50Y2w6MTQ5CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiTG9hZGluZyAlcy4uLiIKK21zZ3N0ciAi0JfQsNGA0LXQttC00LDQvdC1INC90LAg4oCeJXPigJzigKYiCisKKyM6IGxpYi9icm93c2VyLnRjbDoxOTMKK21zZ2lkICJbVXAgVG8gUGFyZW50XSIKK21zZ3N0ciAiW9Ca0YrQvCDRgNC+0LTQuNGC0LXQu9GPXSIKKworIzogbGliL2Jyb3dzZXIudGNsOjI3NSBsaWIvYnJvd3Nlci50Y2w6MjgyCittc2dpZCAiQnJvd3NlIEJyYW5jaCBGaWxlcyIKK21zZ3N0ciAi0KDQsNC30LPQu9C10LbQtNCw0L3QtSDQvdCwINGE0LDQudC70L7QstC10YLQtSDQsiDQutC70L7QvdCwIgorCisjOiBsaWIvYnJvd3Nlci50Y2w6Mjg4IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NDA2CisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjQ5MyBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjUwMgorIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDoxMDI5Cittc2dpZCAiQnJvd3NlIgorbXNnc3RyICLQoNCw0LfQs9C70LXQttC00LDQvdC1IgorCisjOiBsaWIvYnJvd3Nlci50Y2w6Mjk3IGxpYi9icmFuY2hfY2hlY2tvdXQudGNsOjM1IGxpYi90b29sc19kbGcudGNsOjMyMQorbXNnaWQgIlJldmlzaW9uIgorbXNnc3RyICLQktC10YDRgdC40Y8iCisKKyM6IGxpYi90b29scy50Y2w6NzUKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJSdW5uaW5nICVzIHJlcXVpcmVzIGEgc2VsZWN0ZWQgZmlsZS4iCittc2dzdHIgItCX0LAg0LjQt9C/0YrQu9C90LXQvdC40LXRgtC+INC90LAg4oCeJXPigJwg0YLRgNGP0LHQstCwINC00LAg0LjQt9Cx0LXRgNC10YLQtSDRhNCw0LnQuy4iCisKKyM6IGxpYi90b29scy50Y2w6OTEKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcnVuICUxJHMgb24gZmlsZSBcIiUyJHNcIj8iCittc2dzdHIgItCh0LjQs9GD0YDQvdC4INC70Lgg0YHRgtC1LCDRh9C1INC40YHQutCw0YLQtSDQtNCwINGB0YLQsNGA0YLQuNGA0LDRgtC1IOKAniUxJHPigJwg0LLRitGA0YXRgyDigJ4lMiRz4oCcPyIKKworIzogbGliL3Rvb2xzLnRjbDo5NQorIywgdGNsLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBydW4gJXM/IgorbXNnc3RyICLQodC40LPRg9GA0L3QuCDQu9C4INGB0YLQtSwg0YfQtSDQuNGB0LrQsNGC0LUg0LTQsCDRgdGC0LDRgNGC0LjRgNCw0YLQtSDigJ4lc+KAnD8iCisKKyM6IGxpYi90b29scy50Y2w6MTE2CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiVG9vbDogJXMiCittc2dzdHIgItCa0L7QvNCw0L3QtNCwOiAlcyIKKworIzogbGliL3Rvb2xzLnRjbDoxMTcKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJSdW5uaW5nOiAlcyIKK21zZ3N0ciAi0JjQt9C/0YrQu9C90LXQvdC40LU6ICVzIgorCisjOiBsaWIvdG9vbHMudGNsOjE1NQorIywgdGNsLWZvcm1hdAorbXNnaWQgIlRvb2wgY29tcGxldGVkIHN1Y2Nlc3NmdWxseTogJXMiCittc2dzdHIgItCa0L7QvNCw0L3QtNCw0YLQsCDQt9Cw0LLRitGA0YjQuCDRg9GB0L/QtdGI0L3QvjogJXMiCisKKyM6IGxpYi90b29scy50Y2w6MTU3CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiVG9vbCBmYWlsZWQ6ICVzIgorbXNnc3RyICLQmtC+0LzQsNC90LTQsNGC0LAg0LLRitGA0L3QsCDQs9GA0LXRiNC60LA6ICVzIgorCisjOiBsaWIvYnJhbmNoX2NoZWNrb3V0LnRjbDoxNiBsaWIvYnJhbmNoX2NoZWNrb3V0LnRjbDoyMQorbXNnaWQgIkNoZWNrb3V0IEJyYW5jaCIKK21zZ3N0ciAi0JrQu9C+0L0g0LfQsCDQuNC30YLQtdCz0LvRj9C90LUiCisKKyM6IGxpYi9icmFuY2hfY2hlY2tvdXQudGNsOjI2Cittc2dpZCAiQ2hlY2tvdXQiCittc2dzdHIgItCY0LfRgtC10LPQu9GP0L3QtSIKKworIzogbGliL2JyYW5jaF9jaGVja291dC50Y2w6MzkgbGliL29wdGlvbi50Y2w6MzA5IGxpYi9icmFuY2hfY3JlYXRlLnRjbDo2OQorbXNnaWQgIk9wdGlvbnMiCittc2dzdHIgItCe0L/RhtC40LgiCisKKyM6IGxpYi9icmFuY2hfY2hlY2tvdXQudGNsOjQyIGxpYi9icmFuY2hfY3JlYXRlLnRjbDo5MgorbXNnaWQgIkZldGNoIFRyYWNraW5nIEJyYW5jaCIKK21zZ3N0ciAi0JjQt9GC0LXQs9C70Y/QvdC1INC90LAg0L/RgNC+0LzQtdC90LjRgtC1INC+0YIg0YHQu9C10LTQtdC90LjRjyDQutC70L7QvSIKKworIzogbGliL2JyYW5jaF9jaGVja291dC50Y2w6NDcKK21zZ2lkICJEZXRhY2ggRnJvbSBMb2NhbCBCcmFuY2giCittc2dzdHIgItCY0LfRgtGA0LjQstCw0L3QtSDQvtGCINC70L7QutCw0LvQvdC40Y8g0LrQu9C+0L0iCisKKyM6IGxpYi90cmFuc3BvcnQudGNsOjcKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJGZXRjaGluZyBuZXcgY2hhbmdlcyBmcm9tICVzIgorbXNnc3RyICLQlNC+0YHRgtCw0LLRj9C90LUg0L3QsCDQv9GA0L7QvNC10L3QuNGC0LUg0L7RgiAlcyIKKworIzogbGliL3RyYW5zcG9ydC50Y2w6MTgKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJyZW1vdGUgcHJ1bmUgJXMiCittc2dzdHIgItC+0LrQsNGB0YLRgNGP0L3QtSDQvdCwINGB0LvQtdC00Y/RidC40YLQtSDQutC70L7QvdC4INC60YrQvCDigJ4lc+KAnCIKKworIzogbGliL3RyYW5zcG9ydC50Y2w6MTkKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJQcnVuaW5nIHRyYWNraW5nIGJyYW5jaGVzIGRlbGV0ZWQgZnJvbSAlcyIKK21zZ3N0ciAi0J7QutCw0YHRgtGA0Y/QvdC1INC90LAg0YHQu9C10LTRj9GJ0LjRgtC1INC60LvQvtC90Lgg0L3QsCDQuNC30YLRgNC40YLQuNGC0LUg0LrQu9C+0L3QuCDQvtGCIOKAniVz4oCcIgorCisjOiBsaWIvdHJhbnNwb3J0LnRjbDoyNQorbXNnaWQgImZldGNoIGFsbCByZW1vdGVzIgorbXNnc3RyICLQtNC+0YHRgtCw0LLRj9C90LUg0L3QsCDQstGB0LjRh9C60Lgg0YXRgNCw0L3QuNC70LjRidCwIgorCisjOiBsaWIvdHJhbnNwb3J0LnRjbDoyNgorbXNnaWQgIkZldGNoaW5nIG5ldyBjaGFuZ2VzIGZyb20gYWxsIHJlbW90ZXMiCittc2dzdHIgItCU0L7RgdGC0LDQstGP0L3QtSDQvdCwINC/0YDQvtC80LXQvdC40YLQtSDQvtGCINCy0YHQuNGH0LrQuCDQvtGC0LTQsNC70LXRh9C10L3QuCDRhdGA0LDQvdC40LvQuNGJ0LAiCisKKyM6IGxpYi90cmFuc3BvcnQudGNsOjQwCittc2dpZCAicmVtb3RlIHBydW5lIGFsbCByZW1vdGVzIgorbXNnc3RyICLQvtC60LDRgdGC0YDRj9C90LUg0L3QsCDQstGB0LjRh9C60Lgg0LrQu9C+0L3QuCDRgdC70LXQtNGP0YnQuCDQuNC30YLRgNC40YLQuCDQutC70L7QvdC4IgorCisjOiBsaWIvdHJhbnNwb3J0LnRjbDo0MQorbXNnaWQgIlBydW5pbmcgdHJhY2tpbmcgYnJhbmNoZXMgZGVsZXRlZCBmcm9tIGFsbCByZW1vdGVzIgorbXNnc3RyICIiCisi0J7QutCw0YHRgtGA0Y/QvdC1INC90LAg0YHQu9C10LTRj9GJ0LjRgtC1INC60LvQvtC90Lgg0L3QsCDQuNC30YLRgNC40YLQuNGC0LUg0LrQu9C+0L3QuCDQvtGCINCy0YHQuNGH0LrQuCDQvtGC0LTQsNC70LXRh9C10L3QuCAiCisi0YXRgNCw0L3QuNC70LjRidCwIgorCisjOiBsaWIvdHJhbnNwb3J0LnRjbDo1NQorIywgdGNsLWZvcm1hdAorbXNnaWQgIlB1c2hpbmcgY2hhbmdlcyB0byAlcyIKK21zZ3N0ciAi0JjQt9GC0LvQsNGB0LrQstCw0L3QtSDQvdCwINC/0YDQvtC80LXQvdC40YLQtSDQutGK0LwgJXMiCisKKyM6IGxpYi90cmFuc3BvcnQudGNsOjkzCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiTWlycm9yaW5nIHRvICVzIgorbXNnc3RyICLQmNC30YLQu9Cw0YHQutCy0LDQvdC1INC90LAg0LLRgdC40YfQutC+INC60YrQvCDigJ4lc+KAnCIKKworIzogbGliL3RyYW5zcG9ydC50Y2w6MTExCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiUHVzaGluZyAlcyAlcyB0byAlcyIKK21zZ3N0ciAi0JjQt9GC0LvQsNGB0LrQstCw0L3QtSDQvdCwICVzICVzINC60YrQvCAlcyIKKworIzogbGliL3RyYW5zcG9ydC50Y2w6MTMyCittc2dpZCAiUHVzaCBCcmFuY2hlcyIKK21zZ3N0ciAi0JrQu9C+0L3QuCDQt9CwINC40LfRgtC70LDRgdC60LLQsNC90LUiCisKKyM6IGxpYi90cmFuc3BvcnQudGNsOjE0NworbXNnaWQgIlNvdXJjZSBCcmFuY2hlcyIKK21zZ3N0ciAi0JrQu9C+0L3QuC3QuNC30YLQvtGH0L3QuNGG0LgiCisKKyM6IGxpYi90cmFuc3BvcnQudGNsOjE2MgorbXNnaWQgIkRlc3RpbmF0aW9uIFJlcG9zaXRvcnkiCittc2dzdHIgItCm0LXQu9C10LLQviDRhdGA0LDQvdC40LvQuNGJ0LUiCisKKyM6IGxpYi90cmFuc3BvcnQudGNsOjE2NSBsaWIvcmVtb3RlX2JyYW5jaF9kZWxldGUudGNsOjUxCittc2dpZCAiUmVtb3RlOiIKK21zZ3N0ciAi0J7RgtC00LDQu9C10YfQtdC90L4g0YXRgNCw0L3QuNC70LjRidC1OiIKKworIzogbGliL3RyYW5zcG9ydC50Y2w6MTg3IGxpYi9yZW1vdGVfYnJhbmNoX2RlbGV0ZS50Y2w6NzIKK21zZ2lkICJBcmJpdHJhcnkgTG9jYXRpb246IgorbXNnc3RyICLQn9GA0L7QuNC30LLQvtC70L3QviDQvNC10YHRgtC+0L/QvtC70L7QttC10L3QuNC1OiIKKworIzogbGliL3RyYW5zcG9ydC50Y2w6MjA1Cittc2dpZCAiVHJhbnNmZXIgT3B0aW9ucyIKK21zZ3N0ciAi0J3QsNGB0YLRgNC+0LnQutC4INC/0YDQuCDQv9GA0LXQvdCw0YHRj9C90LXRgtC+IgorCisjOiBsaWIvdHJhbnNwb3J0LnRjbDoyMDcKK21zZ2lkICJGb3JjZSBvdmVyd3JpdGUgZXhpc3RpbmcgYnJhbmNoIChtYXkgZGlzY2FyZCBjaGFuZ2VzKSIKK21zZ3N0ciAiIgorItCY0LfRgNC40YfQvdC+INC/0YDQtdC30LDQv9C40YHQstCw0L3QtSDQvdCwINGB0YrRidC10YHRgtCy0YPQstCw0Ykg0LrQu9C+0L0gKNC90Y/QutC+0Lgg0L/RgNC+0LzQtdC90Lgg0LzQvtC20LUg0LTQsCDQsdGK0LTQsNGCICIKKyLQt9Cw0LPRg9Cx0LXQvdC4KSIKKworIzogbGliL3RyYW5zcG9ydC50Y2w6MjExCittc2dpZCAiVXNlIHRoaW4gcGFjayAoZm9yIHNsb3cgbmV0d29yayBjb25uZWN0aW9ucykiCittc2dzdHIgItCc0LDQutGB0LjQvNCw0LvQvdCwINC60L7QvNC/0YDQtdGB0LjRjyAo0LfQsCDQsdCw0LLQvdC4INC80YDQtdC20L7QstC4INCy0YDRitC30LrQuCkiCisKKyM6IGxpYi90cmFuc3BvcnQudGNsOjIxNQorbXNnaWQgIkluY2x1ZGUgdGFncyIKK21zZ3N0ciAi0JLQutC70Y7Rh9Cy0LDQvdC1INC90LAg0LXRgtC40LrQtdGC0LjRgtC1IgorCisjOiBsaWIvc3RhdHVzX2Jhci50Y2w6ODcKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICIlcyAuLi4gJSppIG9mICUqaSAlcyAoJTNpJSUpIgorbXNnc3RyICIlc+KApiAlKmkg0L7RgiDQvtCx0YnQviAlKmkgJXMgKCUzaSUlKSIKKworIzogbGliL3JlbW90ZS50Y2w6MjAwCittc2dpZCAiUHVzaCB0byIKK21zZ3N0ciAi0JjQt9GC0LvQsNGB0LrQstCw0L3QtSDQutGK0LwiCisKKyM6IGxpYi9yZW1vdGUudGNsOjIxOAorbXNnaWQgIlJlbW92ZSBSZW1vdGUiCittc2dzdHIgItCf0YDQtdC80LDRhdCy0LDQvdC1INC90LAg0L7RgtC00LDQu9C10YfQtdC90L4g0YXRgNCw0L3QuNC70LjRidC1IgorCisjOiBsaWIvcmVtb3RlLnRjbDoyMjMKK21zZ2lkICJQcnVuZSBmcm9tIgorbXNnc3RyICLQntC60LDRgdGC0YDRj9C90LUg0L7RgiIKKworIzogbGliL3JlbW90ZS50Y2w6MjI4Cittc2dpZCAiRmV0Y2ggZnJvbSIKK21zZ3N0ciAi0JTQvtGB0YLQsNCy0Y/QvdC1INC+0YIiCisKKyM6IGxpYi9zc2hrZXkudGNsOjMxCittc2dpZCAiTm8ga2V5cyBmb3VuZC4iCittc2dzdHIgItCd0LUg0YHQsCDQvtGC0LrRgNC40YLQuCDQutC70Y7Rh9C+0LLQtS4iCisKKyM6IGxpYi9zc2hrZXkudGNsOjM0CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiRm91bmQgYSBwdWJsaWMga2V5IGluOiAlcyIKK21zZ3N0ciAi0J7RgtC60YDQuNGCINC1INC/0YPQsdC70LjRh9C10L0g0LrQu9GO0Ycg0LIg4oCeJXPigJwiCisKKyM6IGxpYi9zc2hrZXkudGNsOjQwCittc2dpZCAiR2VuZXJhdGUgS2V5IgorbXNnc3RyICLQk9C10L3QtdGA0LjRgNCw0L3QtSDQvdCwINC60LvRjtGHIgorCisjOiBsaWIvc3Noa2V5LnRjbDo1NSBsaWIvY2hlY2tvdXRfb3AudGNsOjE0NiBsaWIvY29uc29sZS50Y2w6ODEKKyM6IGxpYi9kYXRhYmFzZS50Y2w6MzAKK21zZ2lkICJDbG9zZSIKK21zZ3N0ciAi0JfQsNGC0LLQsNGA0Y/QvdC1IgorCisjOiBsaWIvc3Noa2V5LnRjbDo1OAorbXNnaWQgIkNvcHkgVG8gQ2xpcGJvYXJkIgorbXNnc3RyICLQmtC+0L/QuNGA0LDQvdC1INC60YrQvCDRgdC40YHRgtC10LzQvdC40Y8g0LHRg9GE0LXRgCIKKworIzogbGliL3NzaGtleS50Y2w6NzIKK21zZ2lkICJZb3VyIE9wZW5TU0ggUHVibGljIEtleSIKK21zZ3N0ciAi0J/Rg9Cx0LvQuNGH0L3QuNGP0YIg0LLQuCDQutC70Y7RhyDQt9CwIE9wZW5TU0giCisKKyM6IGxpYi9zc2hrZXkudGNsOjgwCittc2dpZCAiR2VuZXJhdGluZy4uLiIKK21zZ3N0ciAi0JPQtdC90LXRgNC40YDQsNC90LXigKYiCisKKyM6IGxpYi9zc2hrZXkudGNsOjg2CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBzdGFydCBzc2gta2V5Z2VuOlxuIgorIlxuIgorIiVzIgorbXNnc3RyICIiCisi0J/RgNC+0LPRgNCw0LzQsNGC0LAg4oCec3NoLWtleWdlbuKAnCDQvdC1INC80L7QttC1INC00LAg0LHRitC00LUg0YHRgtCw0YDRgtC40YDQsNC90LA6XG4iCisiXG4iCisiJXMiCisKKyM6IGxpYi9zc2hrZXkudGNsOjExMworbXNnaWQgIkdlbmVyYXRpb24gZmFpbGVkLiIKK21zZ3N0ciAi0J3QtdGD0YHQv9C10YjQvdC+INCz0LXQvdC10YDQuNGA0LDQvdC1LiIKKworIzogbGliL3NzaGtleS50Y2w6MTIwCittc2dpZCAiR2VuZXJhdGlvbiBzdWNjZWVkZWQsIGJ1dCBubyBrZXlzIGZvdW5kLiIKK21zZ3N0ciAi0JPQtdC90LXRgNC40YDQsNC90LXRgtC+INC30LDQstGK0YDRiNC4INGD0YHQv9C10YjQvdC+LCDQsCDQvdC1INGB0LAg0L3QsNC80LXRgNC10L3QuCDQutC70Y7Rh9C+0LLQtS4iCisKKyM6IGxpYi9zc2hrZXkudGNsOjEyMworIywgdGNsLWZvcm1hdAorbXNnaWQgIllvdXIga2V5IGlzIGluOiAlcyIKK21zZ3N0ciAi0JrQu9GO0YfRitGCINCy0Lgg0LUg0LIg4oCeJXPigJwiCisKKyM6IGxpYi9icmFuY2hfcmVuYW1lLnRjbDoxNSBsaWIvYnJhbmNoX3JlbmFtZS50Y2w6MjMKK21zZ2lkICJSZW5hbWUgQnJhbmNoIgorbXNnc3RyICLQn9GA0LXQuNC80LXQvdGD0LLQsNC90LUg0L3QsCDQutC70L7QvSIKKworIzogbGliL2JyYW5jaF9yZW5hbWUudGNsOjI4Cittc2dpZCAiUmVuYW1lIgorbXNnc3RyICLQn9GA0LXQuNC80LXQvdGD0LLQsNC90LUiCisKKyM6IGxpYi9icmFuY2hfcmVuYW1lLnRjbDozOAorbXNnaWQgIkJyYW5jaDoiCittc2dzdHIgItCa0LvQvtC9OiIKKworIzogbGliL2JyYW5jaF9yZW5hbWUudGNsOjQ2Cittc2dpZCAiTmV3IE5hbWU6IgorbXNnc3RyICLQndC+0LLQviDQuNC80LU6IgorCisjOiBsaWIvYnJhbmNoX3JlbmFtZS50Y2w6ODEKK21zZ2lkICJQbGVhc2Ugc2VsZWN0IGEgYnJhbmNoIHRvIHJlbmFtZS4iCittc2dzdHIgItCY0LfQsdC10YDQtdGC0LUg0LrQu9C+0L0g0LfQsCDQv9GA0LXQuNC80LXQvdGD0LLQsNC90LUuIgorCisjOiBsaWIvYnJhbmNoX3JlbmFtZS50Y2w6OTIgbGliL2JyYW5jaF9jcmVhdGUudGNsOjE1NAorbXNnaWQgIlBsZWFzZSBzdXBwbHkgYSBicmFuY2ggbmFtZS4iCittc2dzdHIgItCU0LDQudGC0LUg0LjQvNC1INC90LAg0LrQu9C+0L3QsC4iCisKKyM6IGxpYi9icmFuY2hfcmVuYW1lLnRjbDoxMDIgbGliL2NoZWNrb3V0X29wLnRjbDoyMDIKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJCcmFuY2ggJyVzJyBhbHJlYWR5IGV4aXN0cy4iCittc2dzdHIgItCa0LvQvtC90YrRgiDigJ4lc+KAnCDQstC10YfQtSDRgdGK0YnQtdGB0YLQstGD0LLQsC4iCisKKyM6IGxpYi9icmFuY2hfcmVuYW1lLnRjbDoxMTIgbGliL2JyYW5jaF9jcmVhdGUudGNsOjE2NQorIywgdGNsLWZvcm1hdAorbXNnaWQgIiclcycgaXMgbm90IGFuIGFjY2VwdGFibGUgYnJhbmNoIG5hbWUuIgorbXNnc3RyICLigJ4lc+KAnCDQvdC1INC80L7QttC1INC00LAg0YHQtSDQuNC30L/QvtC70LfQstCwINC30LAg0LjQvNC1INC90LAg0LrQu9C+0L0uIgorCisjOiBsaWIvYnJhbmNoX3JlbmFtZS50Y2w6MTIzCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlbmFtZSAnJXMnLiIKK21zZ3N0ciAi0J3QtdGD0YHQv9C10YjQvdC+INC/0YDQtdC40LzQtdC90YPQstCw0L3QtSDQvdCwIOKAniVz4oCcLiIKKworIzogbGliL2Nob29zZV9mb250LnRjbDo0MQorbXNnaWQgIlNlbGVjdCIKK21zZ3N0ciAi0JjQt9Cx0L7RgCIKKworIzogbGliL2Nob29zZV9mb250LnRjbDo1NQorbXNnaWQgIkZvbnQgRmFtaWx5IgorbXNnc3RyICLQqNGA0LjRhNGCIgorCisjOiBsaWIvY2hvb3NlX2ZvbnQudGNsOjc2Cittc2dpZCAiRm9udCBTaXplIgorbXNnc3RyICLQoNCw0LfQvNC10YAiCisKKyM6IGxpYi9jaG9vc2VfZm9udC50Y2w6OTMKK21zZ2lkICJGb250IEV4YW1wbGUiCittc2dzdHIgItCc0L7RgdGC0YDQsCIKKworIzogbGliL2Nob29zZV9mb250LnRjbDoxMDUKK21zZ2lkICIiCisiVGhpcyBpcyBleGFtcGxlIHRleHQuXG4iCisiSWYgeW91IGxpa2UgdGhpcyB0ZXh0LCBpdCBjYW4gYmUgeW91ciBmb250LiIKK21zZ3N0ciAiIgorItCi0L7QstCwINC1INC/0YDQuNC80LXRgNC10L0g0YLQtdC60YHRgi5cbiIKKyLQkNC60L4g0LLQuCDRhdCw0YDQtdGB0LLQsCDQutCw0Log0LjQt9Cz0LvQtdC20LTQsCwg0LjQt9Cx0LXRgNC10YLQtSDRgtC+0LfQuCDRiNGA0LjRhNGCLiIKKworIzogbGliL29wdGlvbi50Y2w6MTEKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGdsb2JhbCBlbmNvZGluZyAnJXMnIgorbXNnc3RyICLQndC10L/RgNCw0LLQuNC70L3QviDQs9C70L7QsdCw0LvQvdC+INC60L7QtNC40YDQsNC90LUg4oCeJXPigJwiCisKKyM6IGxpYi9vcHRpb24udGNsOjE5CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiSW52YWxpZCByZXBvIGVuY29kaW5nICclcyciCittc2dzdHIgItCd0LXQv9GA0LDQstC40LvQvdC+INC60L7QtNC40YDQsNC90LUg4oCeJXPigJwg0L3QsCDRhdGA0LDQvdC40LvQuNGJ0LXRgtC+IgorCisjOiBsaWIvb3B0aW9uLnRjbDoxMTkKK21zZ2lkICJSZXN0b3JlIERlZmF1bHRzIgorbXNnc3RyICLQodGC0LDQvdC00LDRgNGC0L3QuCDQvdCw0YHRgtGA0L7QudC60LgiCisKKyM6IGxpYi9vcHRpb24udGNsOjEyMworbXNnaWQgIlNhdmUiCittc2dzdHIgItCX0LDQv9Cw0LfQstCw0L3QtSIKKworIzogbGliL29wdGlvbi50Y2w6MTMzCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiJXMgUmVwb3NpdG9yeSIKK21zZ3N0ciAi0KXRgNCw0L3QuNC70LjRidC1IOKAniVz4oCcIgorCisjOiBsaWIvb3B0aW9uLnRjbDoxMzQKK21zZ2lkICJHbG9iYWwgKEFsbCBSZXBvc2l0b3JpZXMpIgorbXNnc3RyICLQk9C70L7QsdCw0LvQvdC+ICjQt9CwINCy0YHQuNGH0LrQuCDRhdGA0LDQvdC40LvQuNGJ0LApIgorCisjOiBsaWIvb3B0aW9uLnRjbDoxNDAKK21zZ2lkICJVc2VyIE5hbWUiCittc2dzdHIgItCf0L7RgtGA0LXQsdC40YLQtdC70YHQutC+INC40LzQtSIKKworIzogbGliL29wdGlvbi50Y2w6MTQxCittc2dpZCAiRW1haWwgQWRkcmVzcyIKK21zZ3N0ciAi0JDQtNGA0LXRgSDQvdCwINC1LdC/0L7RidCwIgorCisjOiBsaWIvb3B0aW9uLnRjbDoxNDMKK21zZ2lkICJTdW1tYXJpemUgTWVyZ2UgQ29tbWl0cyIKK21zZ3N0ciAi0J7QsdC+0LHRidCw0LLQsNC90LUg0L3QsCDQv9C+0LTQsNCy0LDQvdC40Y/RgtCwINC/0YDQuCDRgdC70LjQstCw0L3QtSIKKworIzogbGliL29wdGlvbi50Y2w6MTQ0Cittc2dpZCAiTWVyZ2UgVmVyYm9zaXR5IgorbXNnc3RyICLQn9C+0LTRgNC+0LHQvdC+0YHRgtC4INC/0YDQuCDRgdC70LjQstCw0L3QuNGP0YLQsCIKKworIzogbGliL29wdGlvbi50Y2w6MTQ1Cittc2dpZCAiU2hvdyBEaWZmc3RhdCBBZnRlciBNZXJnZSIKK21zZ3N0ciAi0JjQt9Cy0LXQttC00LDQvdC1INC90LAg0YHRgtCw0YLQuNGB0YLQuNC60LAg0YHQu9C10LQg0YHQu9C40LLQsNC90LjRj9GC0LAiCisKKyM6IGxpYi9vcHRpb24udGNsOjE0NgorbXNnaWQgIlVzZSBNZXJnZSBUb29sIgorbXNnc3RyICLQmNC30L/QvtC70LfQstCw0L3QtSDQvdCwINC/0YDQvtCz0YDQsNC80LAg0LfQsCDRgdC70LjQstCw0L3QtSIKKworIzogbGliL29wdGlvbi50Y2w6MTQ4Cittc2dpZCAiVHJ1c3QgRmlsZSBNb2RpZmljYXRpb24gVGltZXN0YW1wcyIKK21zZ3N0ciAi0JTQvtCy0LXRgNC40LUg0LLRitCyINCy0YDQtdC80LXRgtC+INC90LAg0L/RgNC+0LzRj9C90LAg0L3QsCDRhNCw0LnQu9C+0LLQtdGC0LUiCisKKyM6IGxpYi9vcHRpb24udGNsOjE0OQorbXNnaWQgIlBydW5lIFRyYWNraW5nIEJyYW5jaGVzIER1cmluZyBGZXRjaCIKK21zZ3N0ciAi0J7QutCw0YHRgtGA0Y/QvdC1INC90LAg0YHQu9C10LTRj9GJ0LjRgtC1INC60LvQvtC90L7QstC1INC/0YDQuCDQtNC+0YHRgtCw0LLRj9C90LUiCisKKyM6IGxpYi9vcHRpb24udGNsOjE1MAorbXNnaWQgIk1hdGNoIFRyYWNraW5nIEJyYW5jaGVzIgorbXNnc3RyICLQndCw0L/QsNGB0LLQsNC90LUg0L3QsCDRgdC70LXQtNGP0YnQuNGC0LUg0LrQu9C+0L3QvtCy0LUiCisKKyM6IGxpYi9vcHRpb24udGNsOjE1MQorbXNnaWQgIlVzZSBUZXh0Y29udiBGb3IgRGlmZnMgYW5kIEJsYW1lcyIKK21zZ3N0ciAi0JjQt9C/0L7Qu9C30LLQsNC90LUg0L3QsCDigJ50ZXh0Y29uduKAnCDQt9CwINGA0LDQt9C70LjQutC40YLQtSDQuCDQsNC90L7RgtCw0YbQuNC40YLQtSIKKworIzogbGliL29wdGlvbi50Y2w6MTUyCittc2dpZCAiQmxhbWUgQ29weSBPbmx5IE9uIENoYW5nZWQgRmlsZXMiCittc2dzdHIgItCQ0L3QvtGC0LjRgNCw0L3QtSDQvdCwINC60L7Qv9C40LXRgtC+INGB0LDQvNC+INC/0L4g0L/RgNC+0LzQtdC90LXQvdC40YLQtSDRhNCw0LnQu9C+0LLQtSIKKworIzogbGliL29wdGlvbi50Y2w6MTUzCittc2dpZCAiTWF4aW11bSBMZW5ndGggb2YgUmVjZW50IFJlcG9zaXRvcmllcyBMaXN0IgorbXNnc3RyICLQnNCw0LrRgdC40LzQsNC70LXQvSDQsdGA0L7QuSDRgdC60L7RgNC+INC/0L7Qu9C30LLQsNC90Lgg0YXRgNCw0L3QuNC70LjRidCwIgorCisjOiBsaWIvb3B0aW9uLnRjbDoxNTQKK21zZ2lkICJNaW5pbXVtIExldHRlcnMgVG8gQmxhbWUgQ29weSBPbiIKK21zZ3N0ciAi0JzQuNC90LjQvNCw0LvQtdC9INCx0YDQvtC5INC30L3QsNGG0Lgg0LfQsCDQsNC90L7RgtC40YDQsNC90LUg0L3QsCDQutC+0L/QuNC10YLQviIKKworIzogbGliL29wdGlvbi50Y2w6MTU1Cittc2dpZCAiQmxhbWUgSGlzdG9yeSBDb250ZXh0IFJhZGl1cyAoZGF5cykiCittc2dzdHIgItCY0YHRgtC+0YDQuNGH0LXRgdC60Lgg0L7QsdGF0LLQsNGCINC30LAg0LDQvdC+0YLQuNGA0LDQvdC1INCyINC00L3QuCIKKworIzogbGliL29wdGlvbi50Y2w6MTU2Cittc2dpZCAiTnVtYmVyIG9mIERpZmYgQ29udGV4dCBMaW5lcyIKK21zZ3N0ciAi0JHRgNC+0Lkg0YDQtdC00L7QstC1INC30LAg0LrQvtC90YLQtdC60YHRgtCwINC/0YDQuCDQuNC30LLQtdC20LTQsNC90LUg0L3QsCDRgNCw0LfQu9C40LrQuNGC0LUiCisKKyM6IGxpYi9vcHRpb24udGNsOjE1NworbXNnaWQgIkFkZGl0aW9uYWwgRGlmZiBQYXJhbWV0ZXJzIgorbXNnc3RyICLQlNC+0L/RitC70L3QuNGC0LXQu9C90Lgg0L/QsNGA0LDQvNC10YLRgNC4INC30LAg0YDQsNC30LvQuNC60LjRgtC1IgorCisjOiBsaWIvb3B0aW9uLnRjbDoxNTgKK21zZ2lkICJDb21taXQgTWVzc2FnZSBUZXh0IFdpZHRoIgorbXNnc3RyICLQqNC40YDQvtGH0LjQvdCwINC90LAg0YLQtdC60YHRgtCwINC90LAg0YHRitC+0LHRidC10L3QuNC10YLQviDQv9GA0Lgg0L/QvtC00LDQstCw0L3QtSIKKworIzogbGliL29wdGlvbi50Y2w6MTU5Cittc2dpZCAiTmV3IEJyYW5jaCBOYW1lIFRlbXBsYXRlIgorbXNnc3RyICLQqNCw0LHQu9C+0L0g0LfQsCDQuNC80LXRgtC+INC90LAg0L3QvtCy0LjRgtC1INC60LvQvtC90LgiCisKKyM6IGxpYi9vcHRpb24udGNsOjE2MAorbXNnaWQgIkRlZmF1bHQgRmlsZSBDb250ZW50cyBFbmNvZGluZyIKK21zZ3N0ciAi0KHRgtCw0L3QtNCw0YDRgtC90L4g0LrQvtC00LjRgNCw0L3QtSDQvdCwINGE0LDQudC70L7QstC10YLQtSIKKworIzogbGliL29wdGlvbi50Y2w6MTYxCittc2dpZCAiV2FybiBiZWZvcmUgY29tbWl0dGluZyB0byBhIGRldGFjaGVkIGhlYWQiCittc2dzdHIgItCf0YDQtdC00YPQv9GA0LXQttC00LXQvdC40LUg0L/RgNC4INC/0L7QtNCw0LLQsNC90LUg0LrRitC8INC90LXRgdCy0YrRgNC30LDQvSDQstGA0YrRhSIKKworIzogbGliL29wdGlvbi50Y2w6MTYyCittc2dpZCAiU3RhZ2luZyBvZiB1bnRyYWNrZWQgZmlsZXMiCittc2dzdHIgItCU0L7QsdCw0LLRj9C90LUg0L3QsCDQvdC10YHQu9C10LTQtdC90LjRgtC1INGE0LDQudC70L7QstC1INC60YrQvCDQuNC90LTQtdC60YHQsCIKKworIzogbGliL29wdGlvbi50Y2w6MTYzCittc2dpZCAiU2hvdyB1bnRyYWNrZWQgZmlsZXMiCittc2dzdHIgItCf0L7QutCw0LfQstCw0L3QtSDQvdCwINC90LXRgdC70LXQtNC10L3QuNGC0LUg0YTQsNC50LvQvtCy0LUiCisKKyM6IGxpYi9vcHRpb24udGNsOjIwOQorbXNnaWQgIkNoYW5nZSIKK21zZ3N0ciAi0KHQvNGP0L3QsCIKKworIzogbGliL29wdGlvbi50Y2w6MjUzCittc2dpZCAiU3BlbGxpbmcgRGljdGlvbmFyeToiCittc2dzdHIgItCf0YDQsNCy0L7Qv9C40YHQtdC9INGA0LXRh9C90LjQujoiCisKKyM6IGxpYi9vcHRpb24udGNsOjI4MworbXNnaWQgIkNoYW5nZSBGb250IgorbXNnc3RyICLQodC80Y/QvdCwINC90LAg0YjRgNC40YTRgtCwIgorCisjOiBsaWIvb3B0aW9uLnRjbDoyODcKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJDaG9vc2UgJXMiCittc2dzdHIgItCY0LfQsdC+0YAg0L3QsCDigJ4lc+KAnCIKKworIzogbGliL29wdGlvbi50Y2w6MjkzCittc2dpZCAicHQuIgorbXNnc3RyICLRgtGH0LouIgorCisjOiBsaWIvb3B0aW9uLnRjbDozMDcKK21zZ2lkICJQcmVmZXJlbmNlcyIKK21zZ3N0ciAi0J3QsNGB0YLRgNC+0LnQutC4IgorCisjOiBsaWIvb3B0aW9uLnRjbDozNDQKK21zZ2lkICJGYWlsZWQgdG8gY29tcGxldGVseSBzYXZlIG9wdGlvbnM6IgorbXNnc3RyICLQndC10YPRgdC/0LXRiNC90L4g0LfQsNC/0LDQt9Cy0LDQvdC1INC90LAg0L3QsNGB0YLRgNC+0LnQutC40YLQtToiCisKKyM6IGxpYi9tZXJnZXRvb2wudGNsOjgKK21zZ2lkICJGb3JjZSByZXNvbHV0aW9uIHRvIHRoZSBiYXNlIHZlcnNpb24/IgorbXNnc3RyICLQlNCwINGB0LUg0LjQt9C/0L7Qu9C30LLQsCDQsdCw0LfQvtCy0LDRgtCwINCy0LXRgNGB0LjRjyIKKworIzogbGliL21lcmdldG9vbC50Y2w6OQorbXNnaWQgIkZvcmNlIHJlc29sdXRpb24gdG8gdGhpcyBicmFuY2g/IgorbXNnc3RyICLQlNCwINGB0LUg0LjQt9C/0L7Qu9C30LLQsCDQstC10YDRgdC40Y/RgtCwINC+0YIg0YLQvtC30Lgg0LrQu9C+0L0iCisKKyM6IGxpYi9tZXJnZXRvb2wudGNsOjEwCittc2dpZCAiRm9yY2UgcmVzb2x1dGlvbiB0byB0aGUgb3RoZXIgYnJhbmNoPyIKK21zZ3N0ciAi0JTQsCDRgdC1INC40LfQv9C+0LvQt9Cy0LAg0LLQtdGA0YHQuNGP0YLQsCDQvtGCINC00YDRg9Cz0LjRjyDQutC70L7QvSIKKworIzogbGliL21lcmdldG9vbC50Y2w6MTQKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICIiCisiTm90ZSB0aGF0IHRoZSBkaWZmIHNob3dzIG9ubHkgY29uZmxpY3RpbmcgY2hhbmdlcy5cbiIKKyJcbiIKKyIlcyB3aWxsIGJlIG92ZXJ3cml0dGVuLlxuIgorIlxuIgorIlRoaXMgb3BlcmF0aW9uIGNhbiBiZSB1bmRvbmUgb25seSBieSByZXN0YXJ0aW5nIHRoZSBtZXJnZS4iCittc2dzdHIgIiIKKyLQoNCw0LfQu9C40LrQsNGC0LAg0L/QvtC60LDQt9Cy0LAg0YHQsNC80L4g0YDQsNC30LvQuNC60LjRgtC1INGBINC60L7QvdGE0LvQuNC60YIuXG4iCisiXG4iCisi0KTQsNC50LvRitGCIOKAniVz4oCcINGJ0LUg0LHRitC00LUg0L/RgNC10LfQsNC/0LjRgdCw0L0uXG4iCisiXG4iCisi0KLQsNC30Lgg0L7Qv9C10YDQsNGG0LjRjyDQvNC+0LbQtSDQtNCwINCx0YrQtNC1INC+0YLQvNC10L3QtdC90LAg0YHQsNC80L4g0YfRgNC10Lcg0LfQsNC/0L7Rh9Cy0LDQvdC1INC90LAg0YHQu9C40LLQsNC90LXRgtC+INC90LDQvdC+0LLQvi4iCisKKyM6IGxpYi9tZXJnZXRvb2wudGNsOjQ1CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiRmlsZSAlcyBzZWVtcyB0byBoYXZlIHVucmVzb2x2ZWQgY29uZmxpY3RzLCBzdGlsbCBzdGFnZT8iCittc2dzdHIgIiIKKyLQmNC30LPQu9C10LbQtNCwLCDRh9C1INCy0YrQsiDRhNCw0LnQu9CwIOKAniVz4oCcINCy0YHQtSDQvtGJ0LUg0LjQvNCwINC90LXQutC+0YDQuNCz0LjRgNCw0L3QuCDQutC+0L3RhNC70LjQutGC0LguINCU0LAg0YHQtSDQtNC+0LHQsNCy0LggIgorItC70Lgg0YTQsNC50LvRitGCINC60YrQvCDQuNC90LTQtdC60YHQsD8iCisKKyM6IGxpYi9tZXJnZXRvb2wudGNsOjYwCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiQWRkaW5nIHJlc29sdXRpb24gZm9yICVzIgorbXNnc3RyICLQlNC+0LHQsNCy0Y/QvdC1INC90LAg0LrQvtGA0LXQutGG0LjRjyDQvdCwINC60L7QvdGE0LvQuNC60YLQuNGC0LUg0LIg4oCeJXPigJwiCisKKyM6IGxpYi9tZXJnZXRvb2wudGNsOjE0MQorbXNnaWQgIkNhbm5vdCByZXNvbHZlIGRlbGV0aW9uIG9yIGxpbmsgY29uZmxpY3RzIHVzaW5nIGEgdG9vbCIKK21zZ3N0ciAiIgorItCa0L7QvdGE0LvQuNC60YLQuNGC0LUg0L/RgNC4INGB0LjQvNCy0L7Qu9C90Lgg0LLRgNGK0LfQutC4INC40LvQuCDQuNC30YLRgNC40LLQsNC90LUg0L3QtSDQvNC+0LPQsNGCINC00LAg0LHRitC00LDRgiDQutC+0YDQuNCz0LjRgNCw0L3QuCDRgSAiCisi0LLRitC90YjQvdCwINC/0YDQvtCz0YDQsNC80LAuIgorCisjOiBsaWIvbWVyZ2V0b29sLnRjbDoxNDYKK21zZ2lkICJDb25mbGljdCBmaWxlIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICLQpNCw0LnQu9GK0YIsINCyINC60L7QudGC0L4g0LUg0LrQvtC90YTQu9C40LrRgtGK0YIsINC90LUg0YHRitGJ0LXRgdGC0LLRg9Cy0LAiCisKKyM6IGxpYi9tZXJnZXRvb2wudGNsOjI0NgorIywgdGNsLWZvcm1hdAorbXNnaWQgIk5vdCBhIEdVSSBtZXJnZSB0b29sOiAnJXMnIgorbXNnc3RyICLQotC+0LLQsCDQvdC1INC1INCz0YDQsNGE0LjRh9C90LAg0L/RgNC+0LPRgNCw0LzQsCDQt9CwINGB0LvQuNCy0LDQvdC1OiDigJ4lc+KAnCIKKworIzogbGliL21lcmdldG9vbC50Y2w6Mjc1CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiVW5zdXBwb3J0ZWQgbWVyZ2UgdG9vbCAnJXMnIgorbXNnc3RyICLQndC10L/QvtC00LTRitGA0LbQsNC90LAg0L/RgNC+0LPRgNCw0LzQsCDQt9CwINGB0LvQuNCy0LDQvdC1OiDigJ4lc+KAnCIKKworIzogbGliL21lcmdldG9vbC50Y2w6MzEwCittc2dpZCAiTWVyZ2UgdG9vbCBpcyBhbHJlYWR5IHJ1bm5pbmcsIHRlcm1pbmF0ZSBpdD8iCittc2dzdHIgItCf0YDQvtCz0YDQsNC80LDRgtCwINC30LAg0YHQu9C40LLQsNC90LUg0LLQtdGH0LUg0LUg0YHRgtCw0YDRgtC40YDQsNC90LAuINCU0LAg0LHRitC00LUg0LvQuCDQuNC30LrQu9GO0YfQtdC90LA/IgorCisjOiBsaWIvbWVyZ2V0b29sLnRjbDozMzAKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICIiCisiRXJyb3IgcmV0cmlldmluZyB2ZXJzaW9uczpcbiIKKyIlcyIKK21zZ3N0ciAiIgorItCT0YDQtdGI0LrQsCDQv9GA0Lgg0LjQt9GC0LXQs9C70Y/QvdC10YLQviDQvdCwINCy0LXRgNGB0LjQuDpcbiIKKyIlcyIKKworIzogbGliL21lcmdldG9vbC50Y2w6MzUwCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBzdGFydCB0aGUgbWVyZ2UgdG9vbDpcbiIKKyJcbiIKKyIlcyIKK21zZ3N0ciAiIgorItCf0YDQvtCz0YDQsNC80LDRgtCwINC30LAg0YHQu9C40LLQsNC90LUg0L3QtSDQvNC+0LbQtSDQtNCwINCx0YrQtNC1INGB0YLQsNGA0YLQuNGA0LDQvdCwOlxuIgorIlxuIgorIiVzIgorCisjOiBsaWIvbWVyZ2V0b29sLnRjbDozNTQKK21zZ2lkICJSdW5uaW5nIG1lcmdlIHRvb2wuLi4iCittc2dzdHIgItCh0YLQsNGA0YLQuNGA0LDQvdC1INC90LAg0L/RgNC+0LPRgNCw0LzQsNGC0LAg0LfQsCDRgdC70LjQstCw0L3QteKApiIKKworIzogbGliL21lcmdldG9vbC50Y2w6MzgyIGxpYi9tZXJnZXRvb2wudGNsOjM5MAorbXNnaWQgIk1lcmdlIHRvb2wgZmFpbGVkLiIKK21zZ3N0ciAi0JPRgNC10YjQutCwINCyINC/0YDQvtCz0YDQsNC80LDRgtCwINC30LAg0YHQu9C40LLQsNC90LUuIgorCisjOiBsaWIvdG9vbHNfZGxnLnRjbDoyMgorbXNnaWQgIkFkZCBUb29sIgorbXNnc3RyICLQlNC+0LHQsNCy0Y/QvdC1INC90LAg0LrQvtC80LDQvdC00LAiCisKKyM6IGxpYi90b29sc19kbGcudGNsOjI4Cittc2dpZCAiQWRkIE5ldyBUb29sIENvbW1hbmQiCittc2dzdHIgItCU0L7QsdCw0LLRj9C90LUg0L3QsCDQutC+0LzQsNC90LTQsCIKKworIzogbGliL3Rvb2xzX2RsZy50Y2w6MzQKK21zZ2lkICJBZGQgZ2xvYmFsbHkiCittc2dzdHIgItCT0LvQvtCx0LDQu9C90L4g0LTQvtCx0LDQstGP0L3QtSIKKworIzogbGliL3Rvb2xzX2RsZy50Y2w6NDYKK21zZ2lkICJUb29sIERldGFpbHMiCittc2dzdHIgItCf0L7QtNGA0L7QsdC90L7RgdGC0Lgg0LfQsCDQutC+0LzQsNC90LTQsNGC0LAiCisKKyM6IGxpYi90b29sc19kbGcudGNsOjQ5Cittc2dpZCAiVXNlICcvJyBzZXBhcmF0b3JzIHRvIGNyZWF0ZSBhIHN1Ym1lbnUgdHJlZToiCittc2dzdHIgItCX0LAg0YHRitC30LTQsNCy0LDQvdC1INC90LAg0L/QvtC00LzQtdC90Y7RgtCwINC40LfQv9C+0LvQt9Cy0LDQudGC0LUg0LfQsCDRgNCw0LfQtNC10LvQuNGC0LXQuyDQt9C90LDQutCwIOKAni/igJw6IgorCisjOiBsaWIvdG9vbHNfZGxnLnRjbDo2MAorbXNnaWQgIkNvbW1hbmQ6IgorbXNnc3RyICLQmtC+0LzQsNC90LTQsDoiCisKKyM6IGxpYi90b29sc19kbGcudGNsOjcxCittc2dpZCAiU2hvdyBhIGRpYWxvZyBiZWZvcmUgcnVubmluZyIKK21zZ3N0ciAi0J/RgNC10LTQuCDQuNC30L/RitC70L3QtdC90LjQtSDQtNCwINGB0LUg0LjQt9Cy0LXQttC00LAg0LTQuNCw0LvQvtCz0L7QsiDQv9GA0L7Qt9C+0YDQtdGGIgorCisjOiBsaWIvdG9vbHNfZGxnLnRjbDo3NworbXNnaWQgIkFzayB0aGUgdXNlciB0byBzZWxlY3QgYSByZXZpc2lvbiAoc2V0cyAkUkVWSVNJT04pIgorbXNnc3RyICLQn9C+0YLRgNC10LHQuNGC0LXQu9GP0YIg0LTQsCDRg9C60LDQttC1INCy0LXRgNGB0LjRjyAo0LfQsNC00LDQstCw0L3QtSDQvdCwINC/0YDQvtC80LXQvdC70LjQstCw0YLQsCAkUkVWSVNJT04pIgorCisjOiBsaWIvdG9vbHNfZGxnLnRjbDo4MgorbXNnaWQgIkFzayB0aGUgdXNlciBmb3IgYWRkaXRpb25hbCBhcmd1bWVudHMgKHNldHMgJEFSR1MpIgorbXNnc3RyICIiCisi0J/QvtGC0YDQtdCx0LjRgtC10LvRj9GCINC00LAg0YPQutCw0LbQtSDQtNC+0L/RitC70L3QuNGC0LXQu9C90Lgg0LDRgNCz0YPQvNC10L3RgtC4ICjQt9Cw0LTQsNCy0LDQvdC1INC90LAg0L/RgNC+0LzQtdC90LvQuNCy0LDRgtCwICRBUkdTKSIKKworIzogbGliL3Rvb2xzX2RsZy50Y2w6ODkKK21zZ2lkICJEb24ndCBzaG93IHRoZSBjb21tYW5kIG91dHB1dCB3aW5kb3ciCittc2dzdHIgItCR0LXQtyDQv9C+0LrQsNC30LLQsNC90LUg0L3QsCDQv9GA0L7Qt9C+0YDQtdGGINGBINC40LfRhdC+0LTQsCDQvtGCINC60L7QvNCw0L3QtNCw0YLQsCIKKworIzogbGliL3Rvb2xzX2RsZy50Y2w6OTQKK21zZ2lkICJSdW4gb25seSBpZiBhIGRpZmYgaXMgc2VsZWN0ZWQgKCRGSUxFTkFNRSBub3QgZW1wdHkpIgorbXNnc3RyICIiCisi0KHRgtCw0YDRgtC40YDQsNC90LUg0YHQsNC80L4g0YHQu9C10LQg0LjQt9Cx0L7RgCDQvdCwINGA0LDQt9C70LjQutCwICjQv9GA0L7QvNC10L3Qu9C40LLQsNGC0LAgJEZJTEVOQU1FINC90LUg0LUg0L/RgNCw0LfQvdCwKSIKKworIzogbGliL3Rvb2xzX2RsZy50Y2w6MTE4Cittc2dpZCAiUGxlYXNlIHN1cHBseSBhIG5hbWUgZm9yIHRoZSB0b29sLiIKK21zZ3N0ciAi0JfQsNC00LDQudGC0LUg0LjQvNC1INC30LAg0LrQvtC80LDQvdC00LDRgtCwLiIKKworIzogbGliL3Rvb2xzX2RsZy50Y2w6MTI2CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiVG9vbCAnJXMnIGFscmVhZHkgZXhpc3RzLiIKK21zZ3N0ciAi0JrQvtC80LDQvdC00LDRgtCwIOKAniVz4oCcINCy0LXRh9C1INGB0YrRidC10YHRgtCy0YPQstCwLiIKKworIzogbGliL3Rvb2xzX2RsZy50Y2w6MTQ4CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBhZGQgdG9vbDpcbiIKKyIlcyIKK21zZ3N0ciAiIgorItCa0L7QvNCw0L3QtNCw0YLQsCDQvdC1INC80L7QttC1INC00LAg0LHRitC00LUg0LTQvtCx0LDQstC10L3QsDpcbiIKKyIlcyIKKworIzogbGliL3Rvb2xzX2RsZy50Y2w6MTg3Cittc2dpZCAiUmVtb3ZlIFRvb2wiCittc2dzdHIgItCf0YDQtdC80LDRhdCy0LDQvdC1INC90LAg0LrQvtC80LDQvdC00LAiCisKKyM6IGxpYi90b29sc19kbGcudGNsOjE5MworbXNnaWQgIlJlbW92ZSBUb29sIENvbW1hbmRzIgorbXNnc3RyICLQn9GA0LXQvNCw0YXQstCw0L3QtSDQvdCwINC60L7QvNCw0L3QtNC4IgorCisjOiBsaWIvdG9vbHNfZGxnLnRjbDoxOTgKK21zZ2lkICJSZW1vdmUiCittc2dzdHIgItCf0YDQtdC80LDRhdCy0LDQvdC1IgorCisjOiBsaWIvdG9vbHNfZGxnLnRjbDoyMzEKK21zZ2lkICIoQmx1ZSBkZW5vdGVzIHJlcG9zaXRvcnktbG9jYWwgdG9vbHMpIgorbXNnc3RyICIo0LrQvtC80LDQvdC00Lgg0LrRitC8INC70L7QutCw0LvQvdC+0YLQviDRhdGA0LDQvdC40LvQuNGJ0LUg0YHQsCDQvtCx0L7Qt9C90LDRh9C10L3QuCDQsiDRgdC40L3RjNC+KSIKKworIzogbGliL3Rvb2xzX2RsZy50Y2w6MjkyCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiUnVuIENvbW1hbmQ6ICVzIgorbXNnc3RyICLQmNC30L/RitC70L3QtdC90LjQtSDQvdCwINC60L7QvNCw0L3QtNCw0YLQsCDigJ4lc+KAnCIKKworIzogbGliL3Rvb2xzX2RsZy50Y2w6MzA2Cittc2dpZCAiQXJndW1lbnRzIgorbXNnc3RyICLQkNGA0LPRg9C80LXQvdGC0LgiCisKKyM6IGxpYi90b29sc19kbGcudGNsOjMzNiBsaWIvY2hlY2tvdXRfb3AudGNsOjU2NyBsaWIvbWVyZ2UudGNsOjE2NgorbXNnaWQgIlZpc3VhbGl6ZSIKK21zZ3N0ciAi0JLQuNC30YPQsNC70LjQt9Cw0YbQuNGPIgorCisjOiBsaWIvdG9vbHNfZGxnLnRjbDozNDEKK21zZ2lkICJPSyIKK21zZ3N0ciAi0JTQvtCx0YDQtSIKKworIzogbGliL3NlYXJjaC50Y2w6NDgKK21zZ2lkICJGaW5kOiIKK21zZ3N0ciAi0KLRitGA0YHQtdC90LU6IgorCisjOiBsaWIvc2VhcmNoLnRjbDo1MAorbXNnaWQgIk5leHQiCittc2dzdHIgItCh0LvQtdC00LLQsNGJ0LAg0L/QvtGP0LLQsCIKKworIzogbGliL3NlYXJjaC50Y2w6NTEKK21zZ2lkICJQcmV2IgorbXNnc3RyICLQn9GA0LXQtNC40YjQvdCwINC/0L7Rj9Cy0LAiCisKKyM6IGxpYi9zZWFyY2gudGNsOjUyCittc2dpZCAiUmVnRXhwIgorbXNnc3RyICLQoNC10LMuINC40LfRgC4iCisKKyM6IGxpYi9zZWFyY2gudGNsOjU0Cittc2dpZCAiQ2FzZSIKK21zZ3N0ciAi0KDQtdCz0LjRgdGC0YrRgCIKKworIzogbGliL3Nob3J0Y3V0LnRjbDoyMSBsaWIvc2hvcnRjdXQudGNsOjYyCittc2dpZCAiQ2Fubm90IHdyaXRlIHNob3J0Y3V0OiIKK21zZ3N0ciAi0JrQu9Cw0LLQuNGI0L3QsNGC0LAg0LrQvtC80LHQuNC90LDRhtC40Y8g0L3QtSDQvNC+0LbQtSDQtNCwINCx0YrQtNC1INC30LDQv9Cw0LfQtdC90LA6IgorCisjOiBsaWIvc2hvcnRjdXQudGNsOjEzNworbXNnaWQgIkNhbm5vdCB3cml0ZSBpY29uOiIKK21zZ3N0ciAi0JjQutC+0L3QsNGC0LAg0L3QtSDQvNC+0LbQtSDQtNCwINCx0YrQtNC1INC30LDQv9Cw0LfQtdC90LA6IgorCisjOiBsaWIvZGlmZi50Y2w6NjQKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICIiCisiTm8gZGlmZmVyZW5jZXMgZGV0ZWN0ZWQuXG4iCisiXG4iCisiJXMgaGFzIG5vIGNoYW5nZXMuXG4iCisiXG4iCisiVGhlIG1vZGlmaWNhdGlvbiBkYXRlIG9mIHRoaXMgZmlsZSB3YXMgdXBkYXRlZCBieSBhbm90aGVyIGFwcGxpY2F0aW9uLCBidXQgIgorInRoZSBjb250ZW50IHdpdGhpbiB0aGUgZmlsZSB3YXMgbm90IGNoYW5nZWQuXG4iCisiXG4iCisiQSByZXNjYW4gd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHN0YXJ0ZWQgdG8gZmluZCBvdGhlciBmaWxlcyB3aGljaCBtYXkgaGF2ZSAiCisidGhlIHNhbWUgc3RhdGUuIgorbXNnc3RyICIiCisi0J3QtSDRgdCwINC+0YLQutGA0LjRgtC4INGA0LDQt9C70LjQutC4LlxuIgorIlxuIgorItCd0Y/QvNCwINC/0YDQvtC80LXQvdC4INCyIOKAniVz4oCcLlxuIgorIlxuIgorItCS0YDQtdC80LXRgtC+INC90LAg0L/RgNC+0LzRj9C90LAg0L3QsCDRhNCw0LnQu9CwINC1INCx0LjQuyDQt9Cw0LTQsNC00LXQvSDQvtGCINC00YDRg9Cz0LAg0L/RgNC+0LPRgNCw0LzQsCwg0L3QviDRgdGK0LTRitGA0LbQsNC90LjQtdGC0L4gIgorItC80YMg0L3QtSDQtSDQv9GA0L7QvNC10L3QtdC90L4uXG4iCisiXG4iCisi0JDQstGC0L7QvNCw0YLQuNGH0L3QviDRidC1INC30LDQv9C+0YfQvdC1INC90L7QstCwINC/0YDQvtCy0LXRgNC60LAg0LTQsNC70Lgg0L3Rj9C80LAg0LTRgNGD0LPQuCDRhNCw0LnQu9C+0LLQtSDQsiDRgtC+0LLQsCAiCisi0YHRitGB0YLQvtGP0L3QuNC1LiIKKworIzogbGliL2RpZmYudGNsOjEwNAorIywgdGNsLWZvcm1hdAorbXNnaWQgIkxvYWRpbmcgZGlmZiBvZiAlcy4uLiIKK21zZ3N0ciAi0JfQsNGA0LXQttC00LDQvdC1INC90LAg0YDQsNC30LvQuNC60LjRgtC1INCyIOKAniVz4oCc4oCmIgorCisjOiBsaWIvZGlmZi50Y2w6MTI1Cittc2dpZCAiIgorIkxPQ0FMOiBkZWxldGVkXG4iCisiUkVNT1RFOlxuIgorbXNnc3RyICIiCisi0JvQntCa0JDQm9Cd0J46INC40LfRgtGA0LjRglxuIgorItCe0KLQlNCQ0JvQldCn0JXQndCeOlxuIgorCisjOiBsaWIvZGlmZi50Y2w6MTMwCittc2dpZCAiIgorIlJFTU9URTogZGVsZXRlZFxuIgorIkxPQ0FMOlxuIgorbXNnc3RyICIiCisi0J7QotCU0JDQm9CV0KfQldCd0J46INC40LfRgtGA0LjRglxuIgorItCb0J7QmtCQ0JvQndCeOlxuIgorCisjOiBsaWIvZGlmZi50Y2w6MTM3Cittc2dpZCAiTE9DQUw6XG4iCittc2dzdHIgItCb0J7QmtCQ0JvQndCeOlxuIgorCisjOiBsaWIvZGlmZi50Y2w6MTQwCittc2dpZCAiUkVNT1RFOlxuIgorbXNnc3RyICLQntCi0JTQkNCb0JXQp9CV0J3QnjpcbiIKKworIzogbGliL2RpZmYudGNsOjIwMiBsaWIvZGlmZi50Y2w6MzM3CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGRpc3BsYXkgJXMiCittc2dzdHIgItCd0LUg0LzQvtC20LUg0LTQsCDQsdGK0LTQtSDQv9C+0LrQsNC30LDQvSDRhNCw0LnQu9GK0YIg4oCeJXPigJwiCisKKyM6IGxpYi9kaWZmLnRjbDoyMDMKK21zZ2lkICJFcnJvciBsb2FkaW5nIGZpbGU6IgorbXNnc3RyICLQk9GA0LXRiNC60LAg0L/RgNC4INC30LDRgNC10LbQtNCw0L3QtSDQvdCwINGE0LDQudC7OiIKKworIzogbGliL2RpZmYudGNsOjIxMAorbXNnaWQgIkdpdCBSZXBvc2l0b3J5IChzdWJwcm9qZWN0KSIKK21zZ3N0ciAi0KXRgNCw0L3QuNC70LjRidC1INC90LAgR2l0ICjQv9C+0LTQv9GA0L7QtdC60YIpIgorCisjOiBsaWIvZGlmZi50Y2w6MjIyCittc2dpZCAiKiBCaW5hcnkgZmlsZSAobm90IHNob3dpbmcgY29udGVudCkuIgorbXNnc3RyICLigYMg0JTQstC+0LjRh9C10L0g0YTQsNC50LsgKNGB0YrQtNGK0YDQttCw0L3QuNC10YLQviDQvdC1INGB0LUg0L/QvtC60LDQt9Cy0LApLiIKKworIzogbGliL2RpZmYudGNsOjIyNworIywgdGNsLWZvcm1hdAorbXNnaWQgIiIKKyIqIFVudHJhY2tlZCBmaWxlIGlzICVkIGJ5dGVzLlxuIgorIiogU2hvd2luZyBvbmx5IGZpcnN0ICVkIGJ5dGVzLlxuIgorbXNnc3RyICIiCisi4oGDINCd0LXRgdC70LXQtNC10L3QuNGP0YIg0YTQsNC50Lsg0LUgJWQg0LHQsNC50YLQsC5cbiIKKyLigYMg0J/QvtC60LDQt9Cy0LDRgiDRgdC1INGB0LDQvNC+INC/0YrRgNCy0LjRgtC1ICVkINCx0LDQudGC0LAuXG4iCisKKyM6IGxpYi9kaWZmLnRjbDoyMzMKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKiBVbnRyYWNrZWQgZmlsZSBjbGlwcGVkIGhlcmUgYnkgJXMuXG4iCisiKiBUbyBzZWUgdGhlIGVudGlyZSBmaWxlLCB1c2UgYW4gZXh0ZXJuYWwgZWRpdG9yLlxuIgorbXNnc3RyICIiCisiXG4iCisi4oGDINCd0LXRgdC70LXQtNC10L3QuNGP0YIg0YTQsNC50Lsg0LUg0L7RgtGA0Y/Qt9Cw0L0g0LTQvtGC0YPQuiAlcy5cbiIKKyLigYMg0JjQt9C/0L7Qu9C30LLQsNC50YLQtSDQstGK0L3RiNC10L0g0YDQtdC00LDQutGC0L7RgCwg0LfQsCDQtNCwINCy0LjQtNC40YLQtSDRhtC10LvQuNGPINGE0LDQudC7LlxuIgorCisjOiBsaWIvZGlmZi50Y2w6MzM4IGxpYi9ibGFtZS50Y2w6MTEyOAorbXNnaWQgIkVycm9yIGxvYWRpbmcgZGlmZjoiCittc2dzdHIgItCT0YDQtdGI0LrQsCDQv9GA0Lgg0LfQsNGA0LXQttC00LDQvdC1INC90LAg0YDQsNC30LvQuNC60LA6IgorCisjOiBsaWIvZGlmZi50Y2w6NTU3Cittc2dpZCAiRmFpbGVkIHRvIHVuc3RhZ2Ugc2VsZWN0ZWQgaHVuay4iCittc2dzdHIgItCY0LfQsdGA0LDQvdC+0YLQviDQv9Cw0YDRh9C1INC90LUg0LzQvtC20LUg0LTQsCDQsdGK0LTQtSDQuNC30LLQsNC00LXQvdC+INC+0YIg0LjQvdC00LXQutGB0LAuIgorCisjOiBsaWIvZGlmZi50Y2w6NTY0Cittc2dpZCAiRmFpbGVkIHRvIHN0YWdlIHNlbGVjdGVkIGh1bmsuIgorbXNnc3RyICLQmNC30LHRgNCw0L3QvtGC0L4g0L/QsNGA0YfQtSDQvdC1INC80L7QttC1INC00LAg0LHRitC00LUg0LTQvtCx0LDQstC10L0g0LrRitC8INC40L3QtNC10LrRgdCwLiIKKworIzogbGliL2RpZmYudGNsOjY0MworbXNnaWQgIkZhaWxlZCB0byB1bnN0YWdlIHNlbGVjdGVkIGxpbmUuIgorbXNnc3RyICLQmNC30LHRgNCw0L3QuNGP0YIg0YDQtdC0INC90LUg0LzQvtC20LUg0LTQsCDQsdGK0LTQtSDQuNC30LLQsNC00LXQvSDQvtGCINC40L3QtNC10LrRgdCwLiIKKworIzogbGliL2RpZmYudGNsOjY1MQorbXNnaWQgIkZhaWxlZCB0byBzdGFnZSBzZWxlY3RlZCBsaW5lLiIKK21zZ3N0ciAi0JjQt9Cx0YDQsNC90LjRj9GCINGA0LXQtCDQvdC1INC80L7QttC1INC00LAg0LHRitC00LUg0LTQvtCx0LDQstC10L0g0LrRitC8INC40L3QtNC10LrRgdCwLiIKKworIzogbGliL3JlbW90ZV9icmFuY2hfZGVsZXRlLnRjbDoyOSBsaWIvcmVtb3RlX2JyYW5jaF9kZWxldGUudGNsOjM0Cittc2dpZCAiRGVsZXRlIEJyYW5jaCBSZW1vdGVseSIKK21zZ3N0ciAi0JjQt9GC0YDQuNCy0LDQvdC1INC90LAg0L7RgtC00LDQu9C10YfQtdC90LjRjyDQutC70L7QvSIKKworIzogbGliL3JlbW90ZV9icmFuY2hfZGVsZXRlLnRjbDo0OAorbXNnaWQgIkZyb20gUmVwb3NpdG9yeSIKK21zZ3N0ciAi0J7RgiDRhdGA0LDQvdC40LvQuNGJ0LUiCisKKyM6IGxpYi9yZW1vdGVfYnJhbmNoX2RlbGV0ZS50Y2w6ODgKK21zZ2lkICJCcmFuY2hlcyIKK21zZ3N0ciAi0JrQu9C+0L3QvtCy0LUiCisKKyM6IGxpYi9yZW1vdGVfYnJhbmNoX2RlbGV0ZS50Y2w6MTEwCittc2dpZCAiRGVsZXRlIE9ubHkgSWYiCittc2dzdHIgItCY0LfRgtGA0LjQstCw0L3QtSwg0YHQsNC80L4g0LDQutC+IgorCisjOiBsaWIvcmVtb3RlX2JyYW5jaF9kZWxldGUudGNsOjExMgorbXNnaWQgIk1lcmdlZCBJbnRvOiIKK21zZ3N0ciAi0KHQu9GP0YIg0LI6IgorCisjOiBsaWIvcmVtb3RlX2JyYW5jaF9kZWxldGUudGNsOjEyMCBsaWIvYnJhbmNoX2RlbGV0ZS50Y2w6NTMKK21zZ2lkICJBbHdheXMgKERvIG5vdCBwZXJmb3JtIG1lcmdlIGNoZWNrcykiCittc2dzdHIgItCS0LjQvdCw0LPQuCAo0LHQtdC3INC/0YDQvtCy0LXRgNC60LAg0LfQsCDRgdC70LjQstCw0L3QtSkiCisKKyM6IGxpYi9yZW1vdGVfYnJhbmNoX2RlbGV0ZS50Y2w6MTUzCittc2dpZCAiQSBicmFuY2ggaXMgcmVxdWlyZWQgZm9yICdNZXJnZWQgSW50bycuIgorbXNnc3RyICLQl9CwINC00LDQvdC90LjRgtC1IOKAntCh0LvRj9GCINCy4oCcINC1INC90LXQvtCx0YXQvtC00LjQvNC+INC00LAg0LfQsNC00LDQtNC10YLQtSDQutC70L7QvS4iCisKKyM6IGxpYi9yZW1vdGVfYnJhbmNoX2RlbGV0ZS50Y2w6MTg1CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBmb2xsb3dpbmcgYnJhbmNoZXMgYXJlIG5vdCBjb21wbGV0ZWx5IG1lcmdlZCBpbnRvICVzOlxuIgorIlxuIgorIiAtICVzIgorbXNnc3RyICIiCisi0KHQu9C10LTQvdC40YLQtSDQutC70L7QvdC4INC90LUg0YHQsCDRgdC70LXRgtC4INC90LDQv9GK0LvQvdC+INCyIOKAniVz4oCcOlxuIgorIlxuIgorIiDigYMgJXMiCisKKyM6IGxpYi9yZW1vdGVfYnJhbmNoX2RlbGV0ZS50Y2w6MTkwCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiIgorIk9uZSBvciBtb3JlIG9mIHRoZSBtZXJnZSB0ZXN0cyBmYWlsZWQgYmVjYXVzZSB5b3UgaGF2ZSBub3QgZmV0Y2hlZCB0aGUgIgorIm5lY2Vzc2FyeSBjb21taXRzLiAgVHJ5IGZldGNoaW5nIGZyb20gJXMgZmlyc3QuIgorbXNnc3RyICIiCisi0J/QvtC90LUg0LXQtNC90LAg0L7RgiDQv9GA0L7QsdC40YLQtSDQt9CwINGB0LvQuNCy0LDQvdC1INC1INC90LXRg9GB0L/QtdGI0L3QsCwg0LfQsNGJ0L7RgtC+INC90LUg0YHRgtC1INC00L7RgdGC0LDQstC40LvQuCDQstGB0LjRh9C60LggIgorItC90LXQvtCx0YXQvtC00LjQvNC4INC/0L7QtNCw0LLQsNC90LjRjy4g0J/RgNC+0LHQstCw0LnRgtC1INC/0YrRgNCy0L4g0LTQsCDQtNC+0YHRgtCw0LLQuNGC0LUg0L/QvtC00LDQstCw0L3QuNGP0YLQsCDQvtGCIOKAniVz4oCcLiIKKworIzogbGliL3JlbW90ZV9icmFuY2hfZGVsZXRlLnRjbDoyMDgKK21zZ2lkICJQbGVhc2Ugc2VsZWN0IG9uZSBvciBtb3JlIGJyYW5jaGVzIHRvIGRlbGV0ZS4iCittc2dzdHIgItCY0LfQsdC10YDQtdGC0LUg0L/QvtC90LUg0LXQtNC40L0g0LrQu9C+0L0g0LfQsCDQuNC30YLRgNC40LLQsNC90LUuIgorCisjOiBsaWIvcmVtb3RlX2JyYW5jaF9kZWxldGUudGNsOjIxOCBsaWIvYnJhbmNoX2RlbGV0ZS50Y2w6MTE1Cittc2dpZCAiIgorIlJlY292ZXJpbmcgZGVsZXRlZCBicmFuY2hlcyBpcyBkaWZmaWN1bHQuXG4iCisiXG4iCisiRGVsZXRlIHRoZSBzZWxlY3RlZCBicmFuY2hlcz8iCittc2dzdHIgIiIKKyLQktGK0LfRgdGC0LDQvdC+0LLRj9Cy0LDQvdC10YLQviDQvdCwINC40LfRgtGA0LjRgtC4INC60LvQvtC90Lgg0LzQvtC20LUg0LTQsCDQtSDRgtGA0YPQtNC90L4uXG4iCisiXG4iCisi0KHQuNCz0YPRgNC90Lgg0LvQuCDRgdGC0LUsINGH0LUg0LjRgdC60LDRgtC1INC00LAg0YLRgNC40LXRgtC1PyIKKworIzogbGliL3JlbW90ZV9icmFuY2hfZGVsZXRlLnRjbDoyMjcKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJEZWxldGluZyBicmFuY2hlcyBmcm9tICVzIgorbXNnc3RyICLQmNC30YLRgNC40LLQsNC90LUg0L3QsCDQutC70L7QvdC4INC+0YIg4oCeJXPigJwiCisKKyM6IGxpYi9yZW1vdGVfYnJhbmNoX2RlbGV0ZS50Y2w6MzAwCittc2dpZCAiTm8gcmVwb3NpdG9yeSBzZWxlY3RlZC4iCittc2dzdHIgItCd0LUg0LUg0LjQt9Cx0YDQsNC90L4g0YXRgNCw0L3QuNC70LjRidC1LiIKKworIzogbGliL3JlbW90ZV9icmFuY2hfZGVsZXRlLnRjbDozMDUKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJTY2FubmluZyAlcy4uLiIKK21zZ3N0ciAi0J/RgNC10YLRitGA0YHQstCw0L3QtSDQvdCwIOKAniVz4oCc4oCmIgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjMyCittc2dpZCAiR2l0IEd1aSIKK21zZ3N0ciAi0JPQn9CYINC90LAgR2l0IgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjkxIGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6Mzk2Cittc2dpZCAiQ3JlYXRlIE5ldyBSZXBvc2l0b3J5IgorbXNnc3RyICLQodGK0LfQtNCw0LLQsNC90LUg0L3QsCDQvdC+0LLQviDRhdGA0LDQvdC40LvQuNGJ0LUiCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6OTcKK21zZ2lkICJOZXcuLi4iCittc2dzdHIgItCd0L7QstC+4oCmIgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjEwNCBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjQ4MAorbXNnaWQgIkNsb25lIEV4aXN0aW5nIFJlcG9zaXRvcnkiCittc2dzdHIgItCa0LvQvtC90LjRgNCw0L3QtSDQvdCwINGB0YrRidC10YHRgtCy0YPQstCw0YnQviDRhdGA0LDQvdC40LvQuNGJ0LUiCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6MTE1Cittc2dpZCAiQ2xvbmUuLi4iCittc2dzdHIgItCa0LvQvtC90LjRgNCw0L3QteKApiIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDoxMjIgbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDoxMDE5Cittc2dpZCAiT3BlbiBFeGlzdGluZyBSZXBvc2l0b3J5IgorbXNnc3RyICLQntGC0LLQsNGA0Y/QvdC1INC90LAg0YHRitGJ0LXRgdGC0LLRg9Cy0LDRidC+INGF0YDQsNC90LjQu9C40YnQtSIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDoxMjgKK21zZ2lkICJPcGVuLi4uIgorbXNnc3RyICLQntGC0LLQsNGA0Y/QvdC14oCmIgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjE0MQorbXNnaWQgIlJlY2VudCBSZXBvc2l0b3JpZXMiCittc2dzdHIgItCh0LrQvtGA0L4g0L/QvtC70LfQstCw0L3QuCIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDoxNDcKK21zZ2lkICJPcGVuIFJlY2VudCBSZXBvc2l0b3J5OiIKK21zZ3N0ciAi0J7RgtCy0LDRgNGP0L3QtSDQvdCwINGF0YDQsNC90LjQu9C40YnQtSDQv9C+0LvQt9Cy0LDQvdC+INC90LDRgdC60L7RgNC+OiIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDozMTUgbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDozMjIKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6MzI5CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIGNyZWF0ZSByZXBvc2l0b3J5ICVzOiIKK21zZ3N0ciAi0J3QtdGD0YHQv9C10YjQvdC+INGB0YrQt9C00LDQstCw0L3QtSDQvdCwINGF0YDQsNC90LjQu9C40YnQtdGC0L4g4oCeJXPigJw6IgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjM5MSBsaWIvYnJhbmNoX2NyZWF0ZS50Y2w6MzMKK21zZ2lkICJDcmVhdGUiCittc2dzdHIgItCh0YrQt9C00LDQstCw0L3QtSIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo0MDEKK21zZ2lkICJEaXJlY3Rvcnk6IgorbXNnc3RyICLQlNC40YDQtdC60YLQvtGA0LjRjzoiCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NDMxIGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NTUyCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjEwNTMKK21zZ2lkICJHaXQgUmVwb3NpdG9yeSIKK21zZ3N0ciAi0KXRgNCw0L3QuNC70LjRidC1INC90LAgR2l0IgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjQ1NgorIywgdGNsLWZvcm1hdAorbXNnaWQgIkRpcmVjdG9yeSAlcyBhbHJlYWR5IGV4aXN0cy4iCittc2dzdHIgItCS0LXRh9C1INGB0YrRidC10YHRgtCy0YPQstCwINC00LjRgNC10LrRgtC+0YDQuNGPIOKAniVz4oCcLiIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo0NjAKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJGaWxlICVzIGFscmVhZHkgZXhpc3RzLiIKK21zZ3N0ciAi0JLQtdGH0LUg0YHRitGJ0LXRgdGC0LLRg9Cy0LAg0YTQsNC50Lsg4oCeJXPigJwuIgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjQ3NQorbXNnaWQgIkNsb25lIgorbXNnc3RyICLQmtC70L7QvdC40YDQsNC90LUiCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NDg4Cittc2dpZCAiU291cmNlIExvY2F0aW9uOiIKK21zZ3N0ciAi0JDQtNGA0LXRgSDQvdCwINC40LfRgtC+0YfQvdC40LrQsDoiCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NDk3Cittc2dpZCAiVGFyZ2V0IERpcmVjdG9yeToiCittc2dzdHIgItCm0LXQu9C10LLQsCDQtNC40YDQtdC60YLQvtGA0LjRjzoiCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NTA3Cittc2dpZCAiQ2xvbmUgVHlwZToiCittc2dzdHIgItCS0LjQtCDQutC70L7QvdC40YDQsNC90LU6IgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjUxMgorbXNnaWQgIlN0YW5kYXJkIChGYXN0LCBTZW1pLVJlZHVuZGFudCwgSGFyZGxpbmtzKSIKK21zZ3N0ciAi0KHRgtCw0L3QtNCw0YDRgtC90L4gKNCx0YrRgNC30L4sINGH0LDRgdGC0LjRh9C90L4g0YHQv9C+0LTQtdC70Y/QvdC1INC90LAg0YTQsNC50LvQvtCy0LUsINGC0LLRitGA0LTQuCDQstGA0YrQt9C60LgpIgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjUxNworbXNnaWQgIkZ1bGwgQ29weSAoU2xvd2VyLCBSZWR1bmRhbnQgQmFja3VwKSIKK21zZ3N0ciAi0J/RitC70L3QviAo0LHQsNCy0L3Qviwg0L/RitC70L3QvtGG0LXQvdC90L4g0YDQtdC30LXRgNCy0L3QviDQutC+0L/QuNC1KSIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo1MjIKK21zZ2lkICJTaGFyZWQgKEZhc3Rlc3QsIE5vdCBSZWNvbW1lbmRlZCwgTm8gQmFja3VwKSIKK21zZ3N0ciAi0KHQv9C+0LTQtdC70LXQvdC+ICjQvdCw0Lkt0LHRitGA0LfQviwg0L3QtSDRgdC1INC/0YDQtdC/0L7RgNGK0YfQstCwLCDQvdC1INC/0YDQsNCy0Lgg0YDQtdC30LXRgNCy0L3QviDQutC+0L/QuNC1KSIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo1NTggbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo2MDUKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NzUxIGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6ODIxCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjEwNTkgbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDoxMDY3CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiTm90IGEgR2l0IHJlcG9zaXRvcnk6ICVzIgorbXNnc3RyICLQotC+0LLQsCDQvdC1INC1INGF0YDQsNC90LjQu9C40YnQtSDQvdCwIEdpdDogJXMiCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NTk0Cittc2dpZCAiU3RhbmRhcmQgb25seSBhdmFpbGFibGUgZm9yIGxvY2FsIHJlcG9zaXRvcnkuIgorbXNnc3RyICLQodCw0LzQviDQu9C+0LrQsNC70L3QuCDRhdGA0LDQvdC40LvQuNGJ0LAg0LzQvtCz0LDRgiDQtNCwINGB0LUg0LrQu9C+0L3QuNGA0LDRgiDRgdGC0LDQvdC00LDRgNGC0L3QviIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo1OTgKK21zZ2lkICJTaGFyZWQgb25seSBhdmFpbGFibGUgZm9yIGxvY2FsIHJlcG9zaXRvcnkuIgorbXNnc3RyICLQodCw0LzQviDQu9C+0LrQsNC70L3QuCDRhdGA0LDQvdC40LvQuNGJ0LAg0LzQvtCz0LDRgiDQtNCwINGB0LUg0LrQu9C+0L3QuNGA0LDRgiDRgdC/0L7QtNC10LvQtdC90L4iCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NjE5CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiTG9jYXRpb24gJXMgYWxyZWFkeSBleGlzdHMuIgorbXNnc3RyICLQktC10YfQtSDRgdGK0YnQtdGB0YLQstGD0LLQsCDQvNC10YHRgtC+0L/QvtC70L7QttC10L3QuNC10YLQviDigJ4lc+KAnC4iCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NjMwCittc2dpZCAiRmFpbGVkIHRvIGNvbmZpZ3VyZSBvcmlnaW4iCittc2dzdHIgItCd0LXRg9GB0L/QtdGI0L3QviDQvdCw0YHRgtGA0L7QudCy0LDQvdC1INC90LAg0YXRgNCw0L3QuNC70LjRidC10YLQvi3QuNC30YLQvtGH0L3QuNC6IgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjY0MgorbXNnaWQgIkNvdW50aW5nIG9iamVjdHMiCittc2dzdHIgItCf0YDQtdCx0YDQvtGP0LLQsNC90LUg0L3QsCDQvtCx0LXQutGC0LgiCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NjQzCittc2dpZCAiYnVja2V0cyIKK21zZ3N0ciAi0LrQu9C10YLQutC4IgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjY2NworIywgdGNsLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBjb3B5IG9iamVjdHMvaW5mby9hbHRlcm5hdGVzOiAlcyIKK21zZ3N0ciAi0J7QsdC10LrRgtC40YLQtS/QuNC90YTQvtGA0LzQsNGG0LjRj9GC0LAv0YHQuNC90L7QvdC40LzQuNGC0LUg0L3QtSDQvNC+0LPQsNGCINC00LAg0LHRitC00LDRgiDQutC+0L/QuNGA0LDQvdC4OiAlcyIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo3MDMKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJOb3RoaW5nIHRvIGNsb25lIGZyb20gJXMuIgorbXNnc3RyICLQndGP0LzQsCDQutCw0LrQstC+INC00LAg0YHQtSDQutC70L7QvdC40YDQsCDQvtGCIOKAniVz4oCcLiIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo3MDUgbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo5MTkKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6OTMxCittc2dpZCAiVGhlICdtYXN0ZXInIGJyYW5jaCBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQuIgorbXNnc3RyICLQntGB0L3QvtCy0L3QuNGP0YIg0LrQu9C+0L0g4oCUIOKAnm1hc3RlcuKAnCDQvdC1INC1INC40L3QuNGG0LjQsNC70LjQt9C40YDQsNC9LiIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo3MTgKK21zZ2lkICJIYXJkbGlua3MgYXJlIHVuYXZhaWxhYmxlLiAgRmFsbGluZyBiYWNrIHRvIGNvcHlpbmcuIgorbXNnc3RyICLQndC1INGB0LUg0L/QvtC00LTRitGA0LbQsNGCINGC0LLRitGA0LTQuCDQstGA0YrQt9C60LguINCf0YDQtdC80LjQvdCw0LLQsCDRgdC1INC60YrQvCDQutC+0L/QuNGA0LDQvdC1LiIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo3MzAKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJDbG9uaW5nIGZyb20gJXMiCittc2dzdHIgItCa0LvQvtC90LjRgNCw0L3QtSDQvdCwIOKAniVz4oCcIgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjc2MQorbXNnaWQgIkNvcHlpbmcgb2JqZWN0cyIKK21zZ3N0ciAi0JrQvtC/0LjRgNCw0L3QtSDQvdCwINC+0LHQtdC60YLQuCIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo3NjIKK21zZ2lkICJLaUIiCittc2dzdHIgIktpQiIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo3ODYKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gY29weSBvYmplY3Q6ICVzIgorbXNnc3RyICLQndC10YPRgdC/0LXRiNC90L4g0LrQvtC/0LjRgNCw0L3QtSDQvdCwINC+0LHQtdC60YI6ICVzIgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjc5NgorbXNnaWQgIkxpbmtpbmcgb2JqZWN0cyIKK21zZ3N0ciAi0KHRitC30LTQsNCy0LDQvdC1INC90LAg0LLRgNGK0LfQutC4INC60YrQvCDQvtCx0LXQutGC0LjRgtC1IgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjc5NworbXNnaWQgIm9iamVjdHMiCittc2dzdHIgItC+0LHQtdC60YLQuCIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo4MDUKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gaGFyZGxpbmsgb2JqZWN0OiAlcyIKK21zZ3N0ciAi0J3QtdGD0YHQv9C10YjQvdC+INGB0YrQt9C00LDQstCw0L3QtSDQvdCwINGC0LLRitGA0LTQsCDQstGA0YrQt9C60LAg0LrRitC8INC+0LHQtdC60YI6ICVzIgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjg2MAorbXNnaWQgIkNhbm5vdCBmZXRjaCBicmFuY2hlcyBhbmQgb2JqZWN0cy4gIFNlZSBjb25zb2xlIG91dHB1dCBmb3IgZGV0YWlscy4iCittc2dzdHIgIiIKKyLQmtC70L7QvdC40YLQtSDQuCDQvtCx0LXQutGC0LjRgtC1INC90LUg0LzQvtCz0LDRgiDQtNCwINCx0YrQtNCw0YIg0LjQt9GC0LXQs9C70LXQvdC4LiDQl9CwINC/0L7QstC10YfQtSDQuNC90YTQvtGA0LzQsNGG0LjRjyAiCisi0L/QvtCz0LvQtdC00L3QtdGC0LUg0LjQt9GF0L7QtNCwINC90LAg0LrQvtC90LfQvtC70LDRgtCwLiIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo4NzEKK21zZ2lkICJDYW5ub3QgZmV0Y2ggdGFncy4gIFNlZSBjb25zb2xlIG91dHB1dCBmb3IgZGV0YWlscy4iCittc2dzdHIgIiIKKyLQldGC0LjQutC10YLQuNGC0LUg0L3QtSDQvNC+0LPQsNGCINC00LAg0LHRitC00LDRgiDQuNC30YLQtdCz0LvQtdC90LguINCX0LAg0L/QvtCy0LXRh9C1INC40L3RhNC+0YDQvNCw0YbQuNGPINC/0L7Qs9C70LXQtNC90LXRgtC1ICIKKyLQuNC30YXQvtC00LAg0L3QsCDQutC+0L3Qt9C+0LvQsNGC0LAuIgorCisjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjg5NQorbXNnaWQgIkNhbm5vdCBkZXRlcm1pbmUgSEVBRC4gIFNlZSBjb25zb2xlIG91dHB1dCBmb3IgZGV0YWlscy4iCittc2dzdHIgIiIKKyLQktGK0YDRhdGK0YIgSEVBRCDQvdC1INC80L7QttC1INC00LAg0LHRitC00LUg0L7Qv9GA0LXQtNC10LvQtdC9LiDQl9CwINC/0L7QstC10YfQtSDQuNC90YTQvtGA0LzQsNGG0LjRjyDQv9C+0LPQu9C10LTQvdC10YLQtSAiCisi0LjQt9GF0L7QtNCwINC90LAg0LrQvtC90LfQvtC70LDRgtCwLiIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo5MDQKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gY2xlYW51cCAlcyIKK21zZ3N0ciAi0J3QtSDQvNC+0LbQtSDQtNCwINGB0LUg0LfQsNGH0LjRgdGC0Lgg4oCeJXPigJwiCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6OTEwCittc2dpZCAiQ2xvbmUgZmFpbGVkLiIKK21zZ3N0ciAi0J3QtdGD0YHQv9C10YjQvdC+INC60LvQvtC90LjRgNCw0L3QtS4iCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6OTE3Cittc2dpZCAiTm8gZGVmYXVsdCBicmFuY2ggb2J0YWluZWQuIgorbXNnc3RyICLQndC1INC1INC/0L7Qu9GD0YfQtdC9INC60LvQvtC9INC/0L4g0L/QvtC00YDQsNC30LHQuNGA0LDQvdC1LiIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo5MjgKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJDYW5ub3QgcmVzb2x2ZSAlcyBhcyBhIGNvbW1pdC4iCittc2dzdHIgItCd0Y/QvNCwINC/0L7QtNCw0LLQsNC90LUg0L7RgtCz0L7QstCw0YDRj9GJ0L4g0L3QsCDigJ4lc+KAnC4iCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6OTQwCittc2dpZCAiQ3JlYXRpbmcgd29ya2luZyBkaXJlY3RvcnkiCittc2dzdHIgItCh0YrQt9C00LDQstCw0L3QtSDQvdCwINGA0LDQsdC+0YLQvdCw0YLQsCDQtNC40YDQtdC60YLQvtGA0LjRjyIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo5NDEgbGliL2luZGV4LnRjbDo3MCBsaWIvaW5kZXgudGNsOjEzNgorIzogbGliL2luZGV4LnRjbDoyMDcKK21zZ2lkICJmaWxlcyIKK21zZ3N0ciAi0YTQsNC50LvQvtCy0LUiCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6OTcwCittc2dpZCAiSW5pdGlhbCBmaWxlIGNoZWNrb3V0IGZhaWxlZC4iCittc2dzdHIgItCd0LXRg9GB0L/QtdGI0L3QviDQv9GK0YDQstC+0L3QsNGH0LDQu9C90L4g0LjQt9GC0LXQs9C70Y/QvdC1LiIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDoxMDE0Cittc2dpZCAiT3BlbiIKK21zZ3N0ciAi0J7RgtCy0LDRgNGP0L3QtSIKKworIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDoxMDI0Cittc2dpZCAiUmVwb3NpdG9yeToiCittc2dzdHIgItCl0YDQsNC90LjQu9C40YnQtToiCisKKyM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6MTA3MworIywgdGNsLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBvcGVuIHJlcG9zaXRvcnkgJXM6IgorbXNnc3RyICLQndC10YPRgdC/0LXRiNC90L4g0L7RgtCy0LDRgNGP0L3QtSDQvdCwINGF0YDQsNC90LjQu9C40YnQtdGC0L4g4oCeJXPigJw6IgorCisjOiBsaWIvYWJvdXQudGNsOjI2Cittc2dpZCAiZ2l0LWd1aSAtIGEgZ3JhcGhpY2FsIHVzZXIgaW50ZXJmYWNlIGZvciBHaXQuIgorbXNnc3RyICJnaXQtZ3VpIOKAlCDQs9GA0LDRhNC40YfQtdC9INC40L3RgtC10YDRhNC10LnRgSDQt9CwIEdpdC4iCisKKyM6IGxpYi9jaGVja291dF9vcC50Y2w6ODUKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJGZXRjaGluZyAlcyBmcm9tICVzIgorbXNnc3RyICLQlNC+0YHRgtCw0LLRj9C90LUg0L3QsCDigJ4lc+KAnCDQvtGCIOKAniVz4oCcIgorCisjOiBsaWIvY2hlY2tvdXRfb3AudGNsOjEzMworIywgdGNsLWZvcm1hdAorbXNnaWQgImZhdGFsOiBDYW5ub3QgcmVzb2x2ZSAlcyIKK21zZ3N0ciAi0YTQsNGC0LDQu9C90LAg0LPRgNC10YjQutCwOiDigJ4lc+KAnCDQvdC1INC80L7QttC1INC00LAg0YHQtSDQvtGC0LrRgNC40LUiCisKKyM6IGxpYi9jaGVja291dF9vcC50Y2w6MTc1CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiQnJhbmNoICclcycgZG9lcyBub3QgZXhpc3QuIgorbXNnc3RyICLQmtC70L7QvdGK0YIg4oCeJXPigJwg0L3QtSDRgdGK0YnQtdGB0YLQstGD0LLQsC4iCisKKyM6IGxpYi9jaGVja291dF9vcC50Y2w6MTk0CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIGNvbmZpZ3VyZSBzaW1wbGlmaWVkIGdpdC1wdWxsIGZvciAnJXMnLiIKK21zZ3N0ciAi0J3QtdGD0YHQv9C10YjQvdC+INC90LDRgdGC0YDQvtC50LLQsNC90LUg0L3QsCDQvtC/0YDQvtGB0YLQtdC9IGdpdC1wdWxsINC30LAg4oCeJXPigJwuIgorCisjOiBsaWIvY2hlY2tvdXRfb3AudGNsOjIyOQorIywgdGNsLWZvcm1hdAorbXNnaWQgIiIKKyJCcmFuY2ggJyVzJyBhbHJlYWR5IGV4aXN0cy5cbiIKKyJcbiIKKyJJdCBjYW5ub3QgZmFzdC1mb3J3YXJkIHRvICVzLlxuIgorIkEgbWVyZ2UgaXMgcmVxdWlyZWQuIgorbXNnc3RyICIiCisi0JrQu9C+0L3RitGCIOKAniVz4oCcINGB0YrRidC10YHRgtCy0YPQstCwLlxuIgorIlxuIgorItCi0L7QuSDQvdC1INC80L7QttC1INC00LAg0LHRitC00LUg0YLRgNC40LLQuNCw0LvQvdC+INC/0YDQtdCy0YrRgNGC0Y/QvSDQtNC+ICVzLlxuIgorItCd0LXQvtCx0YXQvtC00LjQvNC+INC1INGB0LvQuNCy0LDQvdC1LiIKKworIzogbGliL2NoZWNrb3V0X29wLnRjbDoyNDMKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJNZXJnZSBzdHJhdGVneSAnJXMnIG5vdCBzdXBwb3J0ZWQuIgorbXNnc3RyICLQodGC0YDQsNGC0LXQs9C40Y8g0LfQsCDRgdC70LjQstCw0L3QtSAg4oCeJXPigJwg0L3QtSDRgdC1INC/0L7QtNC00YrRgNC20LAuIgorCisjOiBsaWIvY2hlY2tvdXRfb3AudGNsOjI2MgorIywgdGNsLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byB1cGRhdGUgJyVzJy4iCittc2dzdHIgItCd0LXRg9GB0L/QtdGI0L3QviDQvtCx0L3QvtCy0Y/QstCw0L3QtSDQvdCwIOKAniVz4oCcLiIKKworIzogbGliL2NoZWNrb3V0X29wLnRjbDoyNzQKK21zZ2lkICJTdGFnaW5nIGFyZWEgKGluZGV4KSBpcyBhbHJlYWR5IGxvY2tlZC4iCittc2dzdHIgItCY0L3QtNC10LrRgdGK0YIg0LLQtdGH0LUg0LUg0LfQsNC60LvRjtGH0LXQvS4iCisKKyM6IGxpYi9jaGVja291dF9vcC50Y2w6Mjg5Cittc2dpZCAiIgorIkxhc3Qgc2Nhbm5lZCBzdGF0ZSBkb2VzIG5vdCBtYXRjaCByZXBvc2l0b3J5IHN0YXRlLlxuIgorIlxuIgorIkFub3RoZXIgR2l0IHByb2dyYW0gaGFzIG1vZGlmaWVkIHRoaXMgcmVwb3NpdG9yeSBzaW5jZSB0aGUgbGFzdCBzY2FuLiAgQSAiCisicmVzY2FuIG11c3QgYmUgcGVyZm9ybWVkIGJlZm9yZSB0aGUgY3VycmVudCBicmFuY2ggY2FuIGJlIGNoYW5nZWQuXG4iCisiXG4iCisiVGhlIHJlc2NhbiB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgc3RhcnRlZCBub3cuXG4iCittc2dzdHIgIiIKKyLQodGK0YHRgtC+0Y/QvdC40LXRgtC+INC/0YDQuCDQv9C+0YHQu9C10LTQvdCw0YLQsCDQv9GA0L7QstC10YDQutCwINC90LUg0L7RgtCz0L7QstCw0YDRjyDQvdCwINGB0YrRgdGC0L7Rj9C90LjQtdGC0L4g0L3QsCAiCisi0YXRgNCw0L3QuNC70LjRidC10YLQvi5cbiIKKyJcbiIKKyLQndGP0LrQvtC5INC00YDRg9CzINC/0YDQvtGG0LXRgSDQt9CwIEdpdCDQtSDQv9GA0L7QvNC10L3QuNC7INGF0YDQsNC90LjQu9C40YnQtdGC0L4g0LzQtdC20LTRg9Cy0YDQtdC80LXQvdC90L4uINCh0YrRgdGC0L7Rj9C90LjQtdGC0L4gIgorItGC0YDRj9Cx0LLQsCDQtNCwINCx0YrQtNC1INC/0YDQvtCy0LXRgNC10L3Qviwg0L/RgNC10LTQuCDQtNCwINGB0LUg0L/RgNC10LzQuNC90LUg0LrRitC8INC90L7QsiDQutC70L7QvS5cbiIKKyJcbiIKKyLQkNCy0YLQvtC80LDRgtC40YfQvdC+INGJ0LUg0LfQsNC/0L7Rh9C90LUg0L3QvtCy0LAg0L/RgNC+0LLQtdGA0LrQsC5cbiIKKworIzogbGliL2NoZWNrb3V0X29wLnRjbDozNDUKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJVcGRhdGluZyB3b3JraW5nIGRpcmVjdG9yeSB0byAnJXMnLi4uIgorbXNnc3RyICLQoNCw0LHQvtGC0L3QsNGC0LAg0LTQuNGA0LXQutGC0L7RgNC40Y8g0YHQtSDQv9GA0LjQstC10LbQtNCwINC60YrQvCDigJ4lc+KAnOKApiIKKworIzogbGliL2NoZWNrb3V0X29wLnRjbDozNDYKK21zZ2lkICJmaWxlcyBjaGVja2VkIG91dCIKK21zZ3N0ciAi0YTQsNC50LvQsCDRgdCwINC40LfRgtC10LPQu9C10L3QuCIKKworIzogbGliL2NoZWNrb3V0X29wLnRjbDozNzYKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJBYm9ydGVkIGNoZWNrb3V0IG9mICclcycgKGZpbGUgbGV2ZWwgbWVyZ2luZyBpcyByZXF1aXJlZCkuIgorbXNnc3RyICIiCisi0J/RgNC10YPRgdGC0LDQvdC+0LLRj9Cy0LDQvdC1INC90LAg0LjQt9GC0LXQs9C70Y/QvdC10YLQviDQvdCwIOKAniVz4oCcICjQvdC10L7QsdGF0L7QtNC40LzQviDQtSDQv9C+0YTQsNC50LvQvtCy0L4g0YHQu9C40LLQsNC90LUpLiIKKworIzogbGliL2NoZWNrb3V0X29wLnRjbDozNzcKK21zZ2lkICJGaWxlIGxldmVsIG1lcmdlIHJlcXVpcmVkLiIKK21zZ3N0ciAi0J3QtdC+0LHRhdC+0LTQuNC80L4g0LUg0L/QvtGE0LDQudC70L7QstC+INGB0LvQuNCy0LDQvdC1LiIKKworIzogbGliL2NoZWNrb3V0X29wLnRjbDozODEKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJTdGF5aW5nIG9uIGJyYW5jaCAnJXMnLiIKK21zZ3N0ciAi0J7RgdGC0LDQstCw0L3QtSDQstGK0YDRhdGDINC60LvQvtC90LAg4oCeJXPigJwuIgorCisjOiBsaWIvY2hlY2tvdXRfb3AudGNsOjQ1MgorbXNnaWQgIiIKKyJZb3UgYXJlIG5vIGxvbmdlciBvbiBhIGxvY2FsIGJyYW5jaC5cbiIKKyJcbiIKKyJJZiB5b3Ugd2FudGVkIHRvIGJlIG9uIGEgYnJhbmNoLCBjcmVhdGUgb25lIG5vdyBzdGFydGluZyBmcm9tICdUaGlzIERldGFjaGVkICIKKyJDaGVja291dCcuIgorbXNnc3RyICIiCisi0JLQtdGH0LUg0L3QtSDRgdGC0LUg0L3QsCDQu9C+0LrQsNC70LXQvSDQutC70L7QvS5cbiIKKyJcbiIKKyLQkNC60L4g0LjRgdC60LDRgtC1INC00LAg0YHRgtC1INC90LAg0LrQu9C+0L0sINGB0YrQt9C00LDQudGC0LUg0LHQsNC30LjRgNCw0L0g0L3QsCDigJ7QotC+0LLQsCDQvdC10YHQstGK0YDQt9Cw0L3QviDQuNC30YLQtdCz0LvRj9C90LXigJwuIgorCisjOiBsaWIvY2hlY2tvdXRfb3AudGNsOjUwMyBsaWIvY2hlY2tvdXRfb3AudGNsOjUwNworIywgdGNsLWZvcm1hdAorbXNnaWQgIkNoZWNrZWQgb3V0ICclcycuIgorbXNnc3RyICLigJ4lc+KAnCDQtSDQuNC30YLQtdCz0LvQtdC9LiIKKworIzogbGliL2NoZWNrb3V0X29wLnRjbDo1MzUKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJSZXNldHRpbmcgJyVzJyB0byAnJXMnIHdpbGwgbG9zZSB0aGUgZm9sbG93aW5nIGNvbW1pdHM6IgorbXNnc3RyICIiCisi0JfQsNC90YPQu9GP0LLQsNC90LXRgtC+INC90LAg4oCeJXPigJwg0LrRitC8IOKAniVz4oCcINGJ0LUg0LTQvtCy0LXQtNC1INC00L4g0LfQsNCz0YPQsdCy0LDQvdC10YLQviDQvdCwINGB0LvQtdC00L3QuNGC0LUg0L/QvtC00LDQstCw0L3QuNGPOiIKKworIzogbGliL2NoZWNrb3V0X29wLnRjbDo1NTcKK21zZ2lkICJSZWNvdmVyaW5nIGxvc3QgY29tbWl0cyBtYXkgbm90IGJlIGVhc3kuIgorbXNnc3RyICLQktGK0LfRgdGC0LDQvdC+0LLRj9Cy0LDQvdC10YLQviDQvdCwINC30LDQs9GD0LHQtdC90LjRgtC1INC/0L7QtNCw0LLQsNC90LjRjyDQvNC+0LbQtSDQtNCwINC1INGC0YDRg9C00L3Qvi4iCisKKyM6IGxpYi9jaGVja291dF9vcC50Y2w6NTYyCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiUmVzZXQgJyVzJz8iCittc2dzdHIgItCX0LDQvdGD0LvRj9Cy0LDQvdC1INC90LAg4oCeJXPigJw/IgorCisjOiBsaWIvY2hlY2tvdXRfb3AudGNsOjU3MSBsaWIvYnJhbmNoX2NyZWF0ZS50Y2w6ODUKK21zZ2lkICJSZXNldCIKK21zZ3N0ciAi0J7RgtC90LDRh9Cw0LvQviIKKworIzogbGliL2NoZWNrb3V0X29wLnRjbDo2MzUKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICIiCisiRmFpbGVkIHRvIHNldCBjdXJyZW50IGJyYW5jaC5cbiIKKyJcbiIKKyJUaGlzIHdvcmtpbmcgZGlyZWN0b3J5IGlzIG9ubHkgcGFydGlhbGx5IHN3aXRjaGVkLiAgV2Ugc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQgIgorInlvdXIgZmlsZXMsIGJ1dCBmYWlsZWQgdG8gdXBkYXRlIGFuIGludGVybmFsIEdpdCBmaWxlLlxuIgorIlxuIgorIlRoaXMgc2hvdWxkIG5vdCBoYXZlIG9jY3VycmVkLiAgJXMgd2lsbCBub3cgY2xvc2UgYW5kIGdpdmUgdXAuIgorbXNnc3RyICIiCisi0J3QtdGD0YHQv9C10YjQvdC+INC30LDQtNCw0LLQsNC90LUg0L3QsCDRgtC10LrRg9GJ0LjRjyDQutC70L7QvS5cbiIKKyJcbiIKKyLQoNCw0LHQvtGC0L3QsNGC0LAg0LTQuNGA0LXQutGC0L7RgNC40Y8g0LUg0YHQsNC80L4g0YfQsNGB0YLQuNGH0L3QviDQvtCx0L3QvtCy0LXQvdCwOiDRhNCw0LnQu9C+0LLQtdGC0LUg0YHQsCDQvtCx0L3QvtCy0LXQvdC4ICIKKyLRg9GB0L/QtdGI0L3Qviwg0L3QviDQvdGP0LrQvtC5INC+0YIg0LLRitGC0YDQtdGI0L3QuNGC0LUsINGB0LvRg9C20LXQsdC90Lgg0YTQsNC50LvQvtCy0LUg0L3QsCBHaXQg0L3QtSDQtSDQsdC40LsuXG4iCisiXG4iCisi0KLQvtCy0LAg0YHRitGB0YLQvtGP0L3QuNC1INC1INCw0LLQsNGA0LjQudC90L4g0Lgg0L3QtSDRgtGA0Y/QsdCy0LAg0LTQsCDRgdC1INGB0LvRg9GH0LLQsC4g0J/RgNC+0LPRgNCw0LzQsNGC0LAg4oCeJXPigJwg0YnQtSAiCisi0L/RgNC10YPRgdGC0LDQvdC+0LLQuCDRgNCw0LHQvtGC0LAuIgorCisjOiBsaWIvYnJhbmNoX2NyZWF0ZS50Y2w6MjMKK21zZ2lkICJDcmVhdGUgQnJhbmNoIgorbXNnc3RyICLQodGK0LfQtNCw0LLQsNC90LUg0L3QsCDQutC70L7QvSIKKworIzogbGliL2JyYW5jaF9jcmVhdGUudGNsOjI4Cittc2dpZCAiQ3JlYXRlIE5ldyBCcmFuY2giCittc2dzdHIgItCh0YrQt9C00LDQstCw0L3QtSDQvdCwINC90L7QsiDQutC70L7QvSIKKworIzogbGliL2JyYW5jaF9jcmVhdGUudGNsOjQyCittc2dpZCAiQnJhbmNoIE5hbWUiCittc2dzdHIgItCY0LzQtSDQvdCwINC60LvQvtC90LAiCisKKyM6IGxpYi9icmFuY2hfY3JlYXRlLnRjbDo1NworbXNnaWQgIk1hdGNoIFRyYWNraW5nIEJyYW5jaCBOYW1lIgorbXNnc3RyICLQodGK0LLQv9Cw0LTQsNC90LUg0L/QviDQuNC80LXRgtC+INC90LAg0YHQu9C10LTQtdC90LjRjyDQutC70L7QvSIKKworIzogbGliL2JyYW5jaF9jcmVhdGUudGNsOjY2Cittc2dpZCAiU3RhcnRpbmcgUmV2aXNpb24iCittc2dzdHIgItCd0LDRh9Cw0LvQvdCwINCy0LXRgNGB0LjRjyIKKworIzogbGliL2JyYW5jaF9jcmVhdGUudGNsOjcyCittc2dpZCAiVXBkYXRlIEV4aXN0aW5nIEJyYW5jaDoiCittc2dzdHIgItCe0LHQvdC+0LLRj9Cy0LDQvdC1INC90LAg0YHRitGJ0LXRgdGC0LLRg9Cy0LDRiSDQutC70L7QvToiCisKKyM6IGxpYi9icmFuY2hfY3JlYXRlLnRjbDo3NQorbXNnaWQgIk5vIgorbXNnc3RyICLQndC1IgorCisjOiBsaWIvYnJhbmNoX2NyZWF0ZS50Y2w6ODAKK21zZ2lkICJGYXN0IEZvcndhcmQgT25seSIKK21zZ3N0ciAi0KHQsNC80L4g0YLRgNC40LLQuNCw0LvQvdC+INC/0YDQtdCy0YrRgNGC0LDRidC+INGB0LvQuNCy0LDQvdC1IgorCisjOiBsaWIvYnJhbmNoX2NyZWF0ZS50Y2w6OTcKK21zZ2lkICJDaGVja291dCBBZnRlciBDcmVhdGlvbiIKK21zZ3N0ciAi0J/RgNC10LzQuNC90LDQstCw0L3QtSDQutGK0Lwg0LrQu9C+0L3QsCDRgdC70LXQtCDRgdGK0LfQtNCw0LLQsNC90LXRgtC+INC80YMiCisKKyM6IGxpYi9icmFuY2hfY3JlYXRlLnRjbDoxMzIKK21zZ2lkICJQbGVhc2Ugc2VsZWN0IGEgdHJhY2tpbmcgYnJhbmNoLiIKK21zZ3N0ciAi0JjQt9Cx0LXRgNC10YLQtSDQutC70L7QvSDQt9CwINGB0LvQtdC00LXQvdC4LiIKKworIzogbGliL2JyYW5jaF9jcmVhdGUudGNsOjE0MQorIywgdGNsLWZvcm1hdAorbXNnaWQgIlRyYWNraW5nIGJyYW5jaCAlcyBpcyBub3QgYSBicmFuY2ggaW4gdGhlIHJlbW90ZSByZXBvc2l0b3J5LiIKK21zZ3N0ciAi0JrQu9C+0L3RitGCLCDQutC+0LnRgtC+INGB0LUg0YHQu9C10LTQuCDigJ4lc+KAnCDQvdC1INGB0YrRidC10YHRgtCy0YPQstCwINCyINC+0YLQtNCw0LvQtdGH0LXQvdC+0YLQviDRhdGA0LDQvdC40LvQuNGJ0LUuIgorCisjOiBsaWIvY29uc29sZS50Y2w6NTkKK21zZ2lkICJXb3JraW5nLi4uIHBsZWFzZSB3YWl0Li4uIgorbXNnc3RyICLQkiDQvNC+0LzQtdC90YLQsCDRgdC1INC40LfQstGK0YDRiNCy0LAg0LTQtdC50YHRgtCy0LjQtSwg0LjQt9GH0LDQutCw0LnRgtC14oCmIgorCisjOiBsaWIvY29uc29sZS50Y2w6MTg2Cittc2dpZCAiU3VjY2VzcyIKK21zZ3N0ciAi0KPRgdC/0LXRhSIKKworIzogbGliL2NvbnNvbGUudGNsOjIwMAorbXNnaWQgIkVycm9yOiBDb21tYW5kIEZhaWxlZCIKK21zZ3N0ciAi0JPRgNC10YjQutCwOiDQvdC10YPRgdC/0LXRiNC90L4g0LjQt9C/0YrQu9C90LXQvdC40LUg0L3QsCDQutC+0LzQsNC90LTQsCIKKworIzogbGliL2Nob29zZV9yZXYudGNsOjUyCittc2dpZCAiVGhpcyBEZXRhY2hlZCBDaGVja291dCIKK21zZ3N0ciAi0KLQvtCy0LAg0L3QtdGB0LLRitGA0LfQsNC90L4g0LjQt9GC0LXQs9C70Y/QvdC1IgorCisjOiBsaWIvY2hvb3NlX3Jldi50Y2w6NjAKK21zZ2lkICJSZXZpc2lvbiBFeHByZXNzaW9uOiIKK21zZ3N0ciAi0JjQt9GA0LDQtyDQt9CwINCy0LXRgNGB0LjRjyIKKworIzogbGliL2Nob29zZV9yZXYudGNsOjcyCittc2dpZCAiTG9jYWwgQnJhbmNoIgorbXNnc3RyICLQm9C+0LrQsNC70LXQvSDQutC70L7QvSIKKworIzogbGliL2Nob29zZV9yZXYudGNsOjc3Cittc2dpZCAiVHJhY2tpbmcgQnJhbmNoIgorbXNnc3RyICLQodC70LXQtNGP0Ykg0LrQu9C+0L0iCisKKyM6IGxpYi9jaG9vc2VfcmV2LnRjbDo4MiBsaWIvY2hvb3NlX3Jldi50Y2w6NTQ0Cittc2dpZCAiVGFnIgorbXNnc3RyICLQldGC0LjQutC10YIiCisKKyM6IGxpYi9jaG9vc2VfcmV2LnRjbDozMjEKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHJldmlzaW9uOiAlcyIKK21zZ3N0ciAi0J3QtdC/0YDQsNCy0LjQu9C90LAg0LLQtdGA0YHQuNGPOiAlcyIKKworIzogbGliL2Nob29zZV9yZXYudGNsOjM0MgorbXNnaWQgIk5vIHJldmlzaW9uIHNlbGVjdGVkLiIKK21zZ3N0ciAi0J3QtSDQtSDQuNC30LHRgNCw0L3QsCDQstC10YDRgdC40Y8uIgorCisjOiBsaWIvY2hvb3NlX3Jldi50Y2w6MzUwCittc2dpZCAiUmV2aXNpb24gZXhwcmVzc2lvbiBpcyBlbXB0eS4iCittc2dzdHIgItCY0LfRgNCw0LfRitGCINC30LAg0LLQtdGA0YHQuNGPINC1INC/0YDQsNC30LXQvS4iCisKKyM6IGxpYi9jaG9vc2VfcmV2LnRjbDo1MzcKK21zZ2lkICJVcGRhdGVkIgorbXNnc3RyICLQntCx0L3QvtCy0LXQvSIKKworIzogbGliL2Nob29zZV9yZXYudGNsOjU2NQorbXNnaWQgIlVSTCIKK21zZ3N0ciAi0JDQtNGA0LXRgSIKKworIzogbGliL2xpbmUudGNsOjE3Cittc2dpZCAiR290byBMaW5lOiIKK21zZ3N0ciAi0JrRitC8INGA0LXQtDoiCisKKyM6IGxpYi9saW5lLnRjbDoyMworbXNnaWQgIkdvIgorbXNnc3RyICLQn9GA0LjQtNCy0LjQttCy0LDQvdC1IgorCisjOiBsaWIvY29tbWl0LnRjbDo5Cittc2dpZCAiIgorIlRoZXJlIGlzIG5vdGhpbmcgdG8gYW1lbmQuXG4iCisiXG4iCisiWW91IGFyZSBhYm91dCB0byBjcmVhdGUgdGhlIGluaXRpYWwgY29tbWl0LiAgVGhlcmUgaXMgbm8gY29tbWl0IGJlZm9yZSB0aGlzICIKKyJ0byBhbWVuZC5cbiIKK21zZ3N0ciAiIgorItCd0Y/QvNCwINC60LDQutCy0L4g0LTQsCDRgdC1INC/0L7Qv9GA0LDQstC4LlxuIgorIlxuIgorItCp0LUg0YHRitC30LTQsNC00LXRgtC1INC/0YrRgNCy0L7QvdCw0YfQsNC70L3QvtGC0L4g0L/QvtC00LDQstCw0L3QtS4g0J/RgNC10LTQuCDQvdC10LPQviDQvdGP0LzQsCDQtNGA0YPQs9C4INC/0L7QtNCw0LLQsNC90LjRjywg0LrQvtC40YLQviAiCisi0LTQsCDQv9C+0L/RgNCw0LLQuNGC0LUuXG4iCisKKyM6IGxpYi9jb21taXQudGNsOjE4Cittc2dpZCAiIgorIkNhbm5vdCBhbWVuZCB3aGlsZSBtZXJnaW5nLlxuIgorIlxuIgorIllvdSBhcmUgY3VycmVudGx5IGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZSB0aGF0IGhhcyBub3QgYmVlbiBmdWxseSAiCisiY29tcGxldGVkLiAgWW91IGNhbm5vdCBhbWVuZCB0aGUgcHJpb3IgY29tbWl0IHVubGVzcyB5b3UgZmlyc3QgYWJvcnQgdGhlICIKKyJjdXJyZW50IG1lcmdlIGFjdGl2aXR5LlxuIgorbXNnc3RyICIiCisi0J/QviDQstGA0LXQvNC1INC90LAg0YHQu9C40LLQsNC90LUg0L3QtSDQvNC+0LbQtSDQtNCwINC/0L7Qv9GA0LDQstGP0YLQtS5cbiIKKyJcbiIKKyLQkiDQvNC+0LzQtdC90YLQsCDQstGB0LUg0L7RidC1INC90LUg0YHRgtC1INC30LDQstGK0YDRiNC40LvQuCDQvtC/0LXRgNCw0YbQuNGPINC/0L4g0YHQu9C40LLQsNC90LUuINCd0LUg0LzQvtC20LUg0LTQsCDQv9C+0L/RgNCw0LLQuNGC0LUgIgorItC/0YDQtdC00LjRiNC90L7RgtC+INC/0L7QtNCw0LLQsNC90LUsINC+0YHQstC10L0g0LDQutC+INC/0YrRgNCy0L4g0L3QtSDQv9GA0LXRg9GB0YLQsNC90L7QstC40YLQtSDRgtC10LrRg9GJ0L7RgtC+INGB0LvQuNCy0LDQvdC1LlxuIgorCisjOiBsaWIvY29tbWl0LnRjbDo0OAorbXNnaWQgIkVycm9yIGxvYWRpbmcgY29tbWl0IGRhdGEgZm9yIGFtZW5kOiIKK21zZ3N0ciAi0JPRgNC10YjQutCwINC/0YDQuCDQt9Cw0YDQtdC20LTQsNC90LUg0L3QsCDQtNCw0L3QvdC40YLQtSDQvtGCINC/0L7QtNCw0LLQsNC90LUsINC60L7QuNGC0L4g0LTQsCDRgdC1INC/0L7Qv9GA0LDQstGP0YI6IgorCisjOiBsaWIvY29tbWl0LnRjbDo3NQorbXNnaWQgIlVuYWJsZSB0byBvYnRhaW4geW91ciBpZGVudGl0eToiCittc2dzdHIgItCY0LTQtdC90YLQuNGE0LjQutCw0YbQuNGP0YLQsCDQstC4INC90LUg0LzQvtC20LUg0LTQsCDQsdGK0LTQtSDQvtC/0YDQtdC00LXQu9C10L3QsDoiCisKKyM6IGxpYi9jb21taXQudGNsOjgwCittc2dpZCAiSW52YWxpZCBHSVRfQ09NTUlUVEVSX0lERU5UOiIKK21zZ3N0ciAi0J3QtdC/0YDQsNCy0LjQu9C90L4g0L/QvtC70LUgR0lUX0NPTU1JVFRFUl9JREVOVDoiCisKKyM6IGxpYi9jb21taXQudGNsOjEyOQorIywgdGNsLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IFRjbCBkb2VzIG5vdCBzdXBwb3J0IGVuY29kaW5nICclcycuIgorbXNnc3RyICLQv9GA0LXQtNGD0L/RgNC10LbQtNC10L3QuNC1OiBUY2wg0L3QtSDQv9C+0LTQtNGK0YDQttCwINC60L7QtNC40YDQsNC90LXRgtC+IOKAniVz4oCcLiIKKworIzogbGliL2NvbW1pdC50Y2w6MTQ5Cittc2dpZCAiIgorIkxhc3Qgc2Nhbm5lZCBzdGF0ZSBkb2VzIG5vdCBtYXRjaCByZXBvc2l0b3J5IHN0YXRlLlxuIgorIlxuIgorIkFub3RoZXIgR2l0IHByb2dyYW0gaGFzIG1vZGlmaWVkIHRoaXMgcmVwb3NpdG9yeSBzaW5jZSB0aGUgbGFzdCBzY2FuLiAgQSAiCisicmVzY2FuIG11c3QgYmUgcGVyZm9ybWVkIGJlZm9yZSBhbm90aGVyIGNvbW1pdCBjYW4gYmUgY3JlYXRlZC5cbiIKKyJcbiIKKyJUaGUgcmVzY2FuIHdpbGwgYmUgYXV0b21hdGljYWxseSBzdGFydGVkIG5vdy5cbiIKK21zZ3N0ciAiIgorItCh0YrRgdGC0L7Rj9C90LjQtdGC0L4g0L/RgNC4INC/0L7RgdC70LXQtNC90LDRgtCwINC/0YDQvtCy0LXRgNC60LAg0L3QtSDQvtGC0LPQvtCy0LDRgNGPINC90LAg0YHRitGB0YLQvtGP0L3QuNC10YLQviDQvdCwICIKKyLRhdGA0LDQvdC40LvQuNGJ0LXRgtC+LlxuIgorIlxuIgorItCd0Y/QutC+0Lkg0LTRgNGD0LMg0L/RgNC+0YbQtdGBINC30LAgR2l0INC1INC/0YDQvtC80LXQvdC40Lsg0YXRgNCw0L3QuNC70LjRidC10YLQviDQvNC10LbQtNGD0LLRgNC10LzQtdC90L3Qvi4g0KHRitGB0YLQvtGP0L3QuNC10YLQviAiCisi0YLRgNGP0LHQstCwINC00LAg0LHRitC00LUg0L/RgNC+0LLQtdGA0LXQvdC+INC/0YDQtdC00Lgg0L3QvtCy0L4g0L/QvtC00LDQstCw0L3QtS5cbiIKKyJcbiIKKyLQkNCy0YLQvtC80LDRgtC40YfQvdC+INGJ0LUg0LfQsNC/0L7Rh9C90LUg0L3QvtCy0LAg0L/RgNC+0LLQtdGA0LrQsC5cbiIKKworIzogbGliL2NvbW1pdC50Y2w6MTczCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiIgorIlVubWVyZ2VkIGZpbGVzIGNhbm5vdCBiZSBjb21taXR0ZWQuXG4iCisiXG4iCisiRmlsZSAlcyBoYXMgbWVyZ2UgY29uZmxpY3RzLiAgWW91IG11c3QgcmVzb2x2ZSB0aGVtIGFuZCBzdGFnZSB0aGUgZmlsZSAiCisiYmVmb3JlIGNvbW1pdHRpbmcuXG4iCittc2dzdHIgIiIKKyLQndC10YHQu9C10YLQuNGC0LUg0YTQsNC50LvQvtCy0LUg0L3QtSDQvNC+0LPQsNGCINC00LAg0LHRitC00LDRgiDQv9C+0LTQsNCy0LDQvdC4LlxuIgorIlxuIgorItCS0YrQsiDRhNCw0LnQu9CwIOKAniVz4oCcINC40LzQsCDQutC+0L3RhNC70LjQutGC0Lgg0L/RgNC4INGB0LvQuNCy0LDQvdC1LiDQl9CwINC00LAg0LPQviDQv9C+0LTQsNC00LXRgtC1LCDRgtGA0Y/QsdCy0LAg0L/RitGA0LLQviDQtNCwICIKKyLQutC+0YDQuNCz0LjRgNCw0YLQtSDQutC+0L3RhNC70LjQutGC0LjRgtC1INC4INC00LAg0LTQvtCx0LDQstC40YLQtSDRhNCw0LnQu9CwINC60YrQvCDQuNC90LTQtdC60YHQsCDQt9CwINC/0L7QtNCw0LLQsNC90LUuXG4iCisKKyM6IGxpYi9jb21taXQudGNsOjE4MQorIywgdGNsLWZvcm1hdAorbXNnaWQgIiIKKyJVbmtub3duIGZpbGUgc3RhdGUgJXMgZGV0ZWN0ZWQuXG4iCisiXG4iCisiRmlsZSAlcyBjYW5ub3QgYmUgY29tbWl0dGVkIGJ5IHRoaXMgcHJvZ3JhbS5cbiIKK21zZ3N0ciAiIgorItCd0LXQv9C+0LfQvdCw0YLQviDRgdGK0YHRgtC+0Y/QvdC40LUg0L3QsCDRhNCw0LnQuyDigJ4lc+KAnC5cbiIKKyJcbiIKKyLQpNCw0LnQu9GK0YIg4oCeJXPigJwg0L3QtSDQvNC+0LbQtSDQtNCwINCx0YrQtNC1INC/0L7QtNCw0LTQtdC9INGH0YDQtdC3INGC0LXQutGD0YnQsNGC0LAg0L/RgNC+0LPRgNCw0LzQsC5cbiIKKworIzogbGliL2NvbW1pdC50Y2w6MTg5Cittc2dpZCAiIgorIk5vIGNoYW5nZXMgdG8gY29tbWl0LlxuIgorIlxuIgorIllvdSBtdXN0IHN0YWdlIGF0IGxlYXN0IDEgZmlsZSBiZWZvcmUgeW91IGNhbiBjb21taXQuXG4iCittc2dzdHIgIiIKKyLQndGP0LzQsCDQv9GA0L7QvNC10L3QuCDQt9CwINC/0L7QtNCw0LLQsNC90LUuXG4iCisiXG4iCisi0KLRgNGP0LHQstCwINC00LAg0LTQvtCx0LDQstC40YLQtSDQv9C+0L3QtSAxINGE0LDQudC7INC60YrQvCDQuNC90LTQtdC60YHQsCwg0L/RgNC10LTQuCDQtNCwINC/0L7QtNCw0LTQtdGC0LUuXG4iCisKKyM6IGxpYi9jb21taXQudGNsOjIwNAorbXNnaWQgIiIKKyJQbGVhc2Ugc3VwcGx5IGEgY29tbWl0IG1lc3NhZ2UuXG4iCisiXG4iCisiQSBnb29kIGNvbW1pdCBtZXNzYWdlIGhhcyB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiIKKyJcbiIKKyItIEZpcnN0IGxpbmU6IERlc2NyaWJlIGluIG9uZSBzZW50ZW5jZSB3aGF0IHlvdSBkaWQuXG4iCisiLSBTZWNvbmQgbGluZTogQmxhbmtcbiIKKyItIFJlbWFpbmluZyBsaW5lczogRGVzY3JpYmUgd2h5IHRoaXMgY2hhbmdlIGlzIGdvb2QuXG4iCittc2dzdHIgIiIKKyLQl9Cw0LTQsNC50YLQtSDQtNC+0LHRgNC+INGB0YrQvtCx0YnQtdC90LjQtSDQv9GA0Lgg0L/QvtC00LDQstCw0L3QtS5cbiIKKyJcbiIKKyLQmNC30L/QvtC70LfQstCw0LnRgtC1INGB0LvQtdC00L3QuNGPINGE0L7RgNC80LDRgjpcbiIKKyJcbiIKKyLigYMg0J/RitGA0LLQuCDRgNC10LQ6INC+0L/QuNGB0LDQvdC40LUg0LIg0LXQtNC90L4g0LjQt9GA0LXRh9C10L3QuNC1INC90LAg0L/RgNC+0LzRj9C90LDRgtCwLlxuIgorIuKBgyDQktGC0L7RgNC4INGA0LXQtDog0L/RgNCw0LfQtdC9LlxuIgorIuKBgyDQntGB0YLQsNC90LDQu9C40YLQtSDRgNC10LTQvtCy0LU6INC+0L/QuNGI0LXRgtC1INC30LDRidC+INGB0LUg0L3QsNC70LDQs9CwINGC0LDQt9C4INC/0YDQvtC80Y/QvdCwLlxuIgorCisjOiBsaWIvY29tbWl0LnRjbDoyMzUKK21zZ2lkICJDYWxsaW5nIHByZS1jb21taXQgaG9vay4uLiIKK21zZ3N0ciAi0JjQt9C/0YrQu9C90Y/QstCw0L3QtSDQvdCwINC60YPQutCw0YLQsCDQv9GA0LXQtNC4INC/0L7QtNCw0LLQsNC90LXigKYiCisKKyM6IGxpYi9jb21taXQudGNsOjI1MAorbXNnaWQgIkNvbW1pdCBkZWNsaW5lZCBieSBwcmUtY29tbWl0IGhvb2suIgorbXNnc3RyICLQn9C+0LTQsNCy0LDQvdC10YLQviDQtSDQvtGC0YXQstGK0YDQu9C10L3QviDQvtGCINC60YPQutCw0YLQsCDQv9GA0LXQtNC4INC/0L7QtNCw0LLQsNC90LUuIgorCisjOiBsaWIvY29tbWl0LnRjbDoyNjkKK21zZ2lkICIiCisiWW91IGFyZSBhYm91dCB0byBjb21taXQgb24gYSBkZXRhY2hlZCBoZWFkLiBUaGlzIGlzIGEgcG90ZW50aWFsbHkgZGFuZ2Vyb3VzICIKKyJ0aGluZyB0byBkbyBiZWNhdXNlIGlmIHlvdSBzd2l0Y2ggdG8gYW5vdGhlciBicmFuY2ggeW91IHdpbGwgbG9zZSB5b3VyICIKKyJjaGFuZ2VzIGFuZCBpdCBjYW4gYmUgZGlmZmljdWx0IHRvIHJldHJpZXZlIHRoZW0gbGF0ZXIgZnJvbSB0aGUgcmVmbG9nLiBZb3UgIgorInNob3VsZCBwcm9iYWJseSBjYW5jZWwgdGhpcyBjb21taXQgYW5kIGNyZWF0ZSBhIG5ldyBicmFuY2ggdG8gY29udGludWUuXG4iCisiIFxuIgorIiBEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcHJvY2VlZCB3aXRoIHlvdXIgQ29tbWl0PyIKK21zZ3N0ciAiIgorItCp0LUg0L/QvtC00LDQtNC10YLQtSDQutGK0Lwg0L3QtdGB0LLRitGA0LfQsNC9INCy0YDRitGFLiDQotC+0LLQsCDQtNC10LnRgdGC0LLQuNC1INC1INC+0L/QsNGB0L3Qviwg0LfQsNGJ0L7RgtC+INC/0YDQuCAiCisi0L/RgNC10LzQuNC90LDQstCw0L3QtdGC0L4g0LrRitC8INC60L7QudGC0L4g0Lgg0LTQsCDQtSDQutC70L7QvSDRidC1INC30LDQs9GD0LHQuNGC0LUg0L/RgNC+0LzQtdC90LjRgtC1INGB0Lgg0Lgg0L3QtSDQtSDRgdC40LPRg9GA0L3QviwgIgorItGH0LUg0YnQtSDQvNC+0LbQtdGC0LUg0L/Qvi3QutGK0YHQvdC+INC00LAg0LPQuCDQstGK0LfRgdGC0LDQvdC+0LLQuNGC0LUg0YfRgNC10Lcg0LbRg9GA0L3QsNC70LAg0L3QsCDRg9C60LDQt9Cw0YLQtdC70LjRgtC1LiDQndCw0LktIgorItCy0LXRgNC+0Y/RgtC90L4g0YLRgNGP0LHQstCwINC/0YrRgNCy0L4g0LTQsCDRgdGK0LfQtNCw0LTQtdGC0LUg0LrQu9C+0L0g0LHQsNC30LjRgNCw0L0g0L3QsCDRgtC10LrRg9GJ0L7RgtC+INGB0YrRgdGC0L7Rj9C90LjQtSDQuCDQtNCwICIKKyLQv9C+0LTQsNC00LXRgtC1INC60YrQvCDQvdC10LPQvi5cbiIKKyIgXG4iCisi0KHQuNCz0YPRgNC90Lgg0LvQuCDRgdGC0LUsINGH0LUg0LjRgdC60LDRgtC1INC00LAg0L/QvtC00LDQtNC10YLQtSDRgtC+0YfQvdC+INGB0LXQs9CwPyIKKworIzogbGliL2NvbW1pdC50Y2w6MjkwCittc2dpZCAiQ2FsbGluZyBjb21taXQtbXNnIGhvb2suLi4iCittc2dzdHIgItCY0LfQv9GK0LvQvdGP0LLQsNC90LUg0L3QsCDQutGD0LrQsNGC0LAg0LfQsCDRgdGK0L7QsdGJ0LXQvdC40LXRgtC+INC/0YDQuCDQv9C+0LTQsNCy0LDQvdC14oCmIgorCisjOiBsaWIvY29tbWl0LnRjbDozMDUKK21zZ2lkICJDb21taXQgZGVjbGluZWQgYnkgY29tbWl0LW1zZyBob29rLiIKK21zZ3N0ciAi0J/QvtC00LDQstCw0L3QtdGC0L4g0LUg0L7RgtGF0LLRitGA0LvQtdC90L4g0L7RgiDQutGD0LrQsNGC0LAg0LfQsCDRgdGK0L7QsdGJ0LXQvdC40LXRgtC+INC/0YDQuCDQv9C+0LTQsNCy0LDQvdC1LiIKKworIzogbGliL2NvbW1pdC50Y2w6MzE4Cittc2dpZCAiQ29tbWl0dGluZyBjaGFuZ2VzLi4uIgorbXNnc3RyICLQn9C+0LTQsNCy0LDQvdC1INC90LAg0L/RgNC+0LzQtdC90LjRgtC1LiIKKworIzogbGliL2NvbW1pdC50Y2w6MzM0Cittc2dpZCAid3JpdGUtdHJlZSBmYWlsZWQ6IgorbXNnc3RyICLQvdC10YPRgdC/0LXRiNC90L4g0LfQsNC/0LDQt9Cy0LDQvdC1INC90LAg0LTRitGA0LLQvtGC0L4gKHdyaXRlLXRyZWUpOiIKKworIzogbGliL2NvbW1pdC50Y2w6MzM1IGxpYi9jb21taXQudGNsOjM3OSBsaWIvY29tbWl0LnRjbDo0MDAKK21zZ2lkICJDb21taXQgZmFpbGVkLiIKK21zZ3N0ciAi0J3QtdGD0YHQv9C10YjQvdC+INC/0L7QtNCw0LLQsNC90LUuIgorCisjOiBsaWIvY29tbWl0LnRjbDozNTIKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJDb21taXQgJXMgYXBwZWFycyB0byBiZSBjb3JydXB0IgorbXNnc3RyICLQn9C+0LTQsNCy0LDQvdC10YLQviDigJ4lc+KAnCDQuNC30LPQu9C10LbQtNCwINC/0L7QstGA0LXQtNC10L3QviIKKworIzogbGliL2NvbW1pdC50Y2w6MzU3Cittc2dpZCAiIgorIk5vIGNoYW5nZXMgdG8gY29tbWl0LlxuIgorIlxuIgorIk5vIGZpbGVzIHdlcmUgbW9kaWZpZWQgYnkgdGhpcyBjb21taXQgYW5kIGl0IHdhcyBub3QgYSBtZXJnZSBjb21taXQuXG4iCisiXG4iCisiQSByZXNjYW4gd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHN0YXJ0ZWQgbm93LlxuIgorbXNnc3RyICIiCisi0J3Rj9C80LAg0L/RgNC+0LzQtdC90Lgg0LfQsCDQv9C+0LTQsNCy0LDQvdC1LlxuIgorIlxuIgorItCSINGC0L7QstCwINC/0L7QtNCw0LLQsNC90LUg0L3QtSDRgdCwINC/0YDQvtC80LXQvdGP0L3QuCDQvdC40LrQsNC60LLQuCDRhNCw0LnQu9C+0LLQtSwg0LAg0Lgg0L3QtSDQtSDQv9C+0LTQsNCy0LDQvdC1INGB0YrRgSAiCisi0YHQu9C40LLQsNC90LUuXG4iCisiXG4iCisi0JDQstGC0L7QvNCw0YLQuNGH0L3QviDRidC1INC30LDQv9C+0YfQvdC1INC90L7QstCwINC/0YDQvtCy0LXRgNC60LAuXG4iCisKKyM6IGxpYi9jb21taXQudGNsOjM2NAorbXNnaWQgIk5vIGNoYW5nZXMgdG8gY29tbWl0LiIKK21zZ3N0ciAi0J3Rj9C80LAg0L/RgNC+0LzQtdC90Lgg0LfQsCDQv9C+0LTQsNCy0LDQvdC1LiIKKworIzogbGliL2NvbW1pdC50Y2w6Mzc4Cittc2dpZCAiY29tbWl0LXRyZWUgZmFpbGVkOiIKK21zZ3N0ciAi0L3QtdGD0YHQv9C10YjQvdC+INC/0L7QtNCw0LLQsNC90LUg0L3QsCDQtNGK0YDQstC+0YLQviAoY29tbWl0LXRyZWUpOiIKKworIzogbGliL2NvbW1pdC50Y2w6Mzk5Cittc2dpZCAidXBkYXRlLXJlZiBmYWlsZWQ6IgorbXNnc3RyICLQvdC10YPRgdC/0LXRiNC90L4g0L7QsdC90L7QstGP0LLQsNC90LUg0L3QsCDRg9C60LDQt9Cw0YLQtdC70LjRgtC1ICh1cGRhdGUtcmVmKToiCisKKyM6IGxpYi9jb21taXQudGNsOjQ5MgorIywgdGNsLWZvcm1hdAorbXNnaWQgIkNyZWF0ZWQgY29tbWl0ICVzOiAlcyIKK21zZ3N0ciAi0KPRgdC/0LXRiNC90L4g0L/QvtC00LDQstCw0L3QtSAlczogJXMiCisKKyM6IGxpYi9icmFuY2hfZGVsZXRlLnRjbDoxNgorbXNnaWQgIkRlbGV0ZSBCcmFuY2giCittc2dzdHIgItCY0LfRgtGA0LjQstCw0L3QtSDQvdCwINC60LvQvtC9IgorCisjOiBsaWIvYnJhbmNoX2RlbGV0ZS50Y2w6MjEKK21zZ2lkICJEZWxldGUgTG9jYWwgQnJhbmNoIgorbXNnc3RyICLQmNC30YLRgNC40LLQsNC90LUg0L3QsCDQu9C+0LrQsNC70LXQvSDQutC70L7QvSIKKworIzogbGliL2JyYW5jaF9kZWxldGUudGNsOjM5Cittc2dpZCAiTG9jYWwgQnJhbmNoZXMiCittc2dzdHIgItCb0L7QutCw0LvQvdC4INC60LvQvtC90LgiCisKKyM6IGxpYi9icmFuY2hfZGVsZXRlLnRjbDo1MQorbXNnaWQgIkRlbGV0ZSBPbmx5IElmIE1lcmdlZCBJbnRvIgorbXNnc3RyICLQmNC30YLRgNC40LLQsNC90LUsINGB0LDQvNC+INCw0LrQviDQv9GA0L7QvNC10L3QuNGC0LUg0YHQsCDRgdC70LXRgtC4INC4INC00YDRg9Cz0LDQtNC1IgorCisjOiBsaWIvYnJhbmNoX2RlbGV0ZS50Y2w6MTAzCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiVGhlIGZvbGxvd2luZyBicmFuY2hlcyBhcmUgbm90IGNvbXBsZXRlbHkgbWVyZ2VkIGludG8gJXM6IgorbXNnc3RyICLQndC1INCy0YHQuNGH0LrQuCDQv9GA0L7QvNC10L3QuCDQsiDQutC70L7QvdC40YLQtSDRgdCwINGB0LvQtdGC0Lgg0LIgJXM6IgorCisjOiBsaWIvYnJhbmNoX2RlbGV0ZS50Y2w6MTQxCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiIgorIkZhaWxlZCB0byBkZWxldGUgYnJhbmNoZXM6XG4iCisiJXMiCittc2dzdHIgIiIKKyLQndC10YPRgdC/0LXRiNC90L4g0YLRgNC40LXQvdC1INC90LAg0LrQu9C+0L3QuDpcbiIKKyIlcyIKKworIzogbGliL2JsYW1lLnRjbDo3MworbXNnaWQgIkZpbGUgVmlld2VyIgorbXNnc3RyICLQn9GA0LXQs9C70LXQtCDQvdCwINGE0LDQudC70L7QstC1IgorCisjOiBsaWIvYmxhbWUudGNsOjc5Cittc2dpZCAiQ29tbWl0OiIKK21zZ3N0ciAi0J/QvtC00LDQstCw0L3QtToiCisKKyM6IGxpYi9ibGFtZS50Y2w6MjgwCittc2dpZCAiQ29weSBDb21taXQiCittc2dzdHIgItCa0L7Qv9C40YDQsNC90LUg0L3QsCDQv9C+0LTQsNCy0LDQvdC1IgorCisjOiBsaWIvYmxhbWUudGNsOjI4NAorbXNnaWQgIkZpbmQgVGV4dC4uLiIKK21zZ3N0ciAi0KLRitGA0YHQtdC90LUg0L3QsCDRgtC10LrRgdGC4oCmIgorCisjOiBsaWIvYmxhbWUudGNsOjI4OAorbXNnaWQgIkdvdG8gTGluZS4uLiIKK21zZ3N0ciAi0JrRitC8INGA0LXQtOKApiIKKworIzogbGliL2JsYW1lLnRjbDoyOTcKK21zZ2lkICJEbyBGdWxsIENvcHkgRGV0ZWN0aW9uIgorbXNnc3RyICLQn9GK0LvQvdC+INGC0YrRgNGB0LXQvdC1INC90LAg0LrQvtC/0LjRgNCw0L3QtSIKKworIzogbGliL2JsYW1lLnRjbDozMDEKK21zZ2lkICJTaG93IEhpc3RvcnkgQ29udGV4dCIKK21zZ3N0ciAi0J/QvtC60LDQt9Cy0LDQvdC1INC90LAg0LrQvtC90YLQtdC60YHRgtCwINC+0YIg0LjRgdGC0L7RgNC40Y/RgtCwIgorCisjOiBsaWIvYmxhbWUudGNsOjMwNAorbXNnaWQgIkJsYW1lIFBhcmVudCBDb21taXQiCittc2dzdHIgItCQ0L3QvtGC0LjRgNCw0L3QtSDQvdCwINGA0L7QtNC40YLQtdC70YHQutC+0YLQviDQv9C+0LTQsNCy0LDQvdC1IgorCisjOiBsaWIvYmxhbWUudGNsOjQ2NgorIywgdGNsLWZvcm1hdAorbXNnaWQgIlJlYWRpbmcgJXMuLi4iCittc2dzdHIgIiVzINGB0LUg0YfQtdGC0LXigKYiCisKKyM6IGxpYi9ibGFtZS50Y2w6NTk0Cittc2dpZCAiTG9hZGluZyBjb3B5L21vdmUgdHJhY2tpbmcgYW5ub3RhdGlvbnMuLi4iCittc2dzdHIgItCX0LDRgNC10LbQtNCw0L3QtSDQvdCwINCw0L3QvtGC0LDRhtC40LjRgtC1INC30LAg0L/RgNC+0YHQu9C10LTRj9Cy0LDQvdC1INC90LAg0LrQvtC/0LjRgNCw0L3QtdGC0L4v0L/RgNC10LzQtdGB0YLQstCw0L3QtdGC0L7igKYiCisKKyM6IGxpYi9ibGFtZS50Y2w6NjE0Cittc2dpZCAibGluZXMgYW5ub3RhdGVkIgorbXNnc3RyICLRgNC10LTQsCDQsNC90L7RgtC40YDQsNC90LgiCisKKyM6IGxpYi9ibGFtZS50Y2w6ODA2Cittc2dpZCAiTG9hZGluZyBvcmlnaW5hbCBsb2NhdGlvbiBhbm5vdGF0aW9ucy4uLiIKK21zZ3N0ciAi0JfQsNGA0LXQttC00LDQvdC1INC90LAg0LDQvdC+0YLQsNGG0LjQuNGC0LUg0LfQsCDQv9GK0YDQstC+0L3QsNGH0LDQu9C90L7RgtC+INC80LXRgdGC0L7Qv9C+0LvQvtC20LXQvdC40LXigKYiCisKKyM6IGxpYi9ibGFtZS50Y2w6ODA5Cittc2dpZCAiQW5ub3RhdGlvbiBjb21wbGV0ZS4iCittc2dzdHIgItCQ0L3QvtGC0LjRgNCw0L3QtdGC0L4g0LfQsNCy0YrRgNGI0LguIgorCisjOiBsaWIvYmxhbWUudGNsOjgzOQorbXNnaWQgIkJ1c3kiCittc2dzdHIgItCe0L/QtdGA0LDRhtC40Y/RgtCwINC90LUg0LUg0LfQsNCy0YrRgNGI0LjQu9CwIgorCisjOiBsaWIvYmxhbWUudGNsOjg0MAorbXNnaWQgIkFubm90YXRpb24gcHJvY2VzcyBpcyBhbHJlYWR5IHJ1bm5pbmcuIgorbXNnc3RyICLQkiDQvNC+0LzQtdC90YLQsCDRgtC10YfQtSDQv9GA0L7RhtC10YEg0L3QsCDQsNC90L7RgtC40YDQsNC90LUuIgorCisjOiBsaWIvYmxhbWUudGNsOjg3OQorbXNnaWQgIlJ1bm5pbmcgdGhvcm91Z2ggY29weSBkZXRlY3Rpb24uLi4iCittc2dzdHIgItCY0LfQv9GK0LvQvdGP0LLQsCDRgdC1INGG0Y/Qu9C+0YHRgtC10L0g0L/RgNC+0YbQtdGBINC90LAg0L7RgtC60YDQuNCy0LDQvdC1INC90LAg0LrQvtC/0LjRgNCw0L3QteKApiIKKworIzogbGliL2JsYW1lLnRjbDo5NDcKK21zZ2lkICJMb2FkaW5nIGFubm90YXRpb24uLi4iCittc2dzdHIgItCX0LDRgNC10LbQtNCw0L3QtSDQvdCwINCw0L3QvtGC0LDRhtC40LjigKYiCisKKyM6IGxpYi9ibGFtZS50Y2w6MTAwMAorbXNnaWQgIkF1dGhvcjoiCittc2dzdHIgItCQ0LLRgtC+0YA6IgorCisjOiBsaWIvYmxhbWUudGNsOjEwMDQKK21zZ2lkICJDb21taXR0ZXI6IgorbXNnc3RyICLQn9C+0LTQsNC7OiIKKworIzogbGliL2JsYW1lLnRjbDoxMDA5Cittc2dpZCAiT3JpZ2luYWwgRmlsZToiCittc2dzdHIgItCf0YrRgNCy0L7QvdCw0YfQsNC70LXQvSDRhNCw0LnQuzoiCisKKyM6IGxpYi9ibGFtZS50Y2w6MTA1NworbXNnaWQgIkNhbm5vdCBmaW5kIEhFQUQgY29tbWl0OiIKK21zZ3N0ciAi0J/QvtC00LDQstCw0L3QtdGC0L4g0LfQsCDQstGA0YrRhSBIRUFEINC90LUg0LzQvtC20LUg0LTQsCDRgdC1INC+0YLQutGA0LjQtToiCisKKyM6IGxpYi9ibGFtZS50Y2w6MTExMgorbXNnaWQgIkNhbm5vdCBmaW5kIHBhcmVudCBjb21taXQ6IgorbXNnc3RyICLQoNC+0LTQuNGC0LXQu9GB0LrQvtGC0L4g0L/QvtC00LDQstCw0L3QtSDQvdC1INC80L7QttC1INC00LAg0LHRitC00LUg0L7RgtC60YDQuNGC0L4iCisKKyM6IGxpYi9ibGFtZS50Y2w6MTEyNworbXNnaWQgIlVuYWJsZSB0byBkaXNwbGF5IHBhcmVudCIKK21zZ3N0ciAi0KDQvtC00LjRgtC10LvRj9GCINC90LUg0LzQvtC20LUg0LTQsCDQsdGK0LTQtSDQv9C+0LrQsNC30LDQvSIKKworIzogbGliL2JsYW1lLnRjbDoxMjY5Cittc2dpZCAiT3JpZ2luYWxseSBCeToiCittc2dzdHIgItCf0YrRgNCy0L7QvdCw0YfQsNC70L3QviDQvtGCOiIKKworIzogbGliL2JsYW1lLnRjbDoxMjc1Cittc2dpZCAiSW4gRmlsZToiCittc2dzdHIgItCS0YrQsiDRhNCw0LnQuzoiCisKKyM6IGxpYi9ibGFtZS50Y2w6MTI4MAorbXNnaWQgIkNvcGllZCBPciBNb3ZlZCBIZXJlIEJ5OiIKK21zZ3N0ciAi0JrQvtC/0LjRgNCw0L3QviDQuNC70Lgg0L/RgNC10LzQtdGB0YLQtdC90L4g0YLRg9C6INC+0YI6IgorCisjOiBsaWIvaW5kZXgudGNsOjYKK21zZ2lkICJVbmFibGUgdG8gdW5sb2NrIHRoZSBpbmRleC4iCittc2dzdHIgItCY0L3QtNC10LrRgdGK0YIg0L3QtSDQvNC+0LbQtSDQtNCwINCx0YrQtNC1INC+0YLQutC70Y7Rh9C10L0uIgorCisjOiBsaWIvaW5kZXgudGNsOjE3Cittc2dpZCAiSW5kZXggRXJyb3IiCittc2dzdHIgItCT0YDQtdGI0LrQsCDQsiDQuNC90LTQtdC60YHQsCIKKworIzogbGliL2luZGV4LnRjbDoxOQorbXNnaWQgIiIKKyJVcGRhdGluZyB0aGUgR2l0IGluZGV4IGZhaWxlZC4gIEEgcmVzY2FuIHdpbGwgYmUgYXV0b21hdGljYWxseSBzdGFydGVkIHRvICIKKyJyZXN5bmNocm9uaXplIGdpdC1ndWkuIgorbXNnc3RyICIiCisi0J3QtdGD0YHQv9C10YjQvdC+INC+0LHQvdC+0LLRj9Cy0LDQvdC1INC90LAg0LjQvdC00LXQutGB0LAg0L3QsCBHaXQuINCQ0LLRgtC+0LzQsNGC0LjRh9C90L4g0YnQtSDQt9Cw0L/QvtGH0L3QtSDQvdC+0LLQsCDQv9GA0L7QstC10YDQutCwICIKKyLQt9CwINGB0LjQvdGF0YDQvtC90LjQt9C40YDQsNC90LXRgtC+INC90LAgZ2l0LWd1aS4iCisKKyM6IGxpYi9pbmRleC50Y2w6MzAKK21zZ2lkICJDb250aW51ZSIKK21zZ3N0ciAi0J/RgNC+0LTRitC70LbQsNCy0LDQvdC1IgorCisjOiBsaWIvaW5kZXgudGNsOjMzCittc2dpZCAiVW5sb2NrIEluZGV4IgorbXNnc3RyICLQntGC0LrQu9GO0YfQstCw0L3QtSDQvdCwINC40L3QtNC10LrRgdCwIgorCisjOiBsaWIvaW5kZXgudGNsOjI5OAorIywgdGNsLWZvcm1hdAorbXNnaWQgIlVuc3RhZ2luZyAlcyBmcm9tIGNvbW1pdCIKK21zZ3N0ciAi0JjQt9Cy0LDQttC00LDQvdC1INC90LAgJXMg0L7RgiDQv9C+0LTQsNCy0LDQvdC10YLQviIKKworIzogbGliL2luZGV4LnRjbDozMzcKK21zZ2lkICJSZWFkeSB0byBjb21taXQuIgorbXNnc3RyICLQk9C+0YLQvtCy0L3QvtGB0YIg0LfQsCDQv9C+0LTQsNCy0LDQvdC1LiIKKworIzogbGliL2luZGV4LnRjbDozNTAKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJBZGRpbmcgJXMiCittc2dzdHIgItCU0L7QsdCw0LLRj9C90LUg0L3QsCDigJ4lc+KAnCIKKworIzogbGliL2luZGV4LnRjbDozODAKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJTdGFnZSAlZCB1bnRyYWNrZWQgZmlsZXM/IgorbXNnc3RyICLQlNCwINGB0LUg0LTQvtCx0LDQstGP0YIg0LvQuCAlZCDQvdCwINCx0YDQvtC5INC90LXRgdC70LXQtNC10L3QuCDRhNCw0LnQu9CwINC60YrQvCDQuNC90LTQtdC60YHQsD8iCisKKyM6IGxpYi9pbmRleC50Y2w6NDI4CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiUmV2ZXJ0IGNoYW5nZXMgaW4gZmlsZSAlcz8iCittc2dzdHIgItCU0LAg0YHQtSDQvNCw0YXQvdCw0YIg0LvQuCDQv9GA0L7QvNC10L3QuNGC0LUg0LLRitCyINGE0LDQudC70LAg4oCeJXPigJw/IgorCisjOiBsaWIvaW5kZXgudGNsOjQzMAorIywgdGNsLWZvcm1hdAorbXNnaWQgIlJldmVydCBjaGFuZ2VzIGluIHRoZXNlICVpIGZpbGVzPyIKK21zZ3N0ciAi0JTQsCDRgdC1INC80LDRhdC90LDRgiDQu9C4INC/0YDQvtC80LXQvdC40YLQtSDQsiDRgtC10LfQuCAlaSDRhNCw0LnQu9CwPyIKKworIzogbGliL2luZGV4LnRjbDo0MzgKK21zZ2lkICJBbnkgdW5zdGFnZWQgY2hhbmdlcyB3aWxsIGJlIHBlcm1hbmVudGx5IGxvc3QgYnkgdGhlIHJldmVydC4iCittc2dzdHIgIiIKKyLQktGB0LjRh9C60Lgg0L/RgNC+0LzQtdC90LgsINC60L7QuNGC0L4g0L3QtSDRgdCwINCx0LjQu9C4INCy0LrQsNGA0LDQvdC4INCyINC40L3QtNC10LrRgdCwLCDRidC1INCx0YrQtNCw0YIg0LHQtdC30LLRitC30LLRgNCw0YLQvdC+ICIKKyLQt9Cw0LPRg9Cx0LXQvdC4LiIKKworIzogbGliL2luZGV4LnRjbDo0NDEKK21zZ2lkICJEbyBOb3RoaW5nIgorbXNnc3RyICLQndC40YnQviDQtNCwINC90LUg0YHQtSDQv9GA0LDQstC4IgorCisjOiBsaWIvaW5kZXgudGNsOjQ1OQorbXNnaWQgIlJldmVydGluZyBzZWxlY3RlZCBmaWxlcyIKK21zZ3N0ciAi0JzQsNGF0LDQvdC1INC90LAg0L/RgNC+0LzQtdC90LjRgtC1INCyINC40LfQsdGA0LDQvdC40YLQtSDRhNCw0LnQu9C+0LLQtSIKKworIzogbGliL2luZGV4LnRjbDo0NjMKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJSZXZlcnRpbmcgJXMiCittc2dzdHIgItCc0LDRhdCw0L3QtSDQvdCwINC/0YDQvtC80LXQvdC40YLQtSDQsiDigJ4lc+KAnCIKKworIzogbGliL2VuY29kaW5nLnRjbDo0NDMKK21zZ2lkICJEZWZhdWx0IgorbXNnc3RyICLQodGC0LDQvdC00LDRgNGC0L3QvtGC0L4iCisKKyM6IGxpYi9lbmNvZGluZy50Y2w6NDQ4CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiU3lzdGVtICglcykiCittc2dzdHIgItCh0LjRgdGC0LXQvNC90L7RgtC+ICglcykiCisKKyM6IGxpYi9lbmNvZGluZy50Y2w6NDU5IGxpYi9lbmNvZGluZy50Y2w6NDY1Cittc2dpZCAiT3RoZXIiCittc2dzdHIgItCU0YDRg9Cz0L4iCisKKyM6IGxpYi9kYXRlLnRjbDoyNQorIywgdGNsLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGF0ZSBmcm9tIEdpdDogJXMiCittc2dzdHIgItCd0LXQv9GA0LDQstC40LvQvdC4INC00LDQvdC90Lgg0L7RgiBHaXQ6ICVzIgorCisjOiBsaWIvZGF0YWJhc2UudGNsOjQyCittc2dpZCAiTnVtYmVyIG9mIGxvb3NlIG9iamVjdHMiCittc2dzdHIgItCR0YDQvtC5INC90LXQv9Cw0LrQtdGC0LjRgNCw0L3QuCDQvtCx0LXQutGC0LgiCisKKyM6IGxpYi9kYXRhYmFzZS50Y2w6NDMKK21zZ2lkICJEaXNrIHNwYWNlIHVzZWQgYnkgbG9vc2Ugb2JqZWN0cyIKK21zZ3N0ciAi0JTQuNGB0LrQvtCy0L4g0L/RgNC+0YHRgtGA0LDQvdGB0YLQstC+INC30LDQtdGC0L4g0L7RgiDQvdC10L/QsNC60LXRgtC40YDQsNC90Lgg0L7QsdC10LrRgtC4IgorCisjOiBsaWIvZGF0YWJhc2UudGNsOjQ0Cittc2dpZCAiTnVtYmVyIG9mIHBhY2tlZCBvYmplY3RzIgorbXNnc3RyICLQkdGA0L7QuSDQv9Cw0LrQtdGC0LjRgNCw0L3QuCDQvtCx0LXQutGC0LgiCisKKyM6IGxpYi9kYXRhYmFzZS50Y2w6NDUKK21zZ2lkICJOdW1iZXIgb2YgcGFja3MiCittc2dzdHIgItCR0YDQvtC5INC/0LDQutC10YLQuCIKKworIzogbGliL2RhdGFiYXNlLnRjbDo0NgorbXNnaWQgIkRpc2sgc3BhY2UgdXNlZCBieSBwYWNrZWQgb2JqZWN0cyIKK21zZ3N0ciAi0JTQuNGB0LrQvtCy0L4g0L/RgNC+0YHRgtGA0LDQvdGB0YLQstC+INC30LDQtdGC0L4g0L7RgiDQv9Cw0LrQtdGC0LjRgNCw0L3QuCDQvtCx0LXQutGC0LgiCisKKyM6IGxpYi9kYXRhYmFzZS50Y2w6NDcKK21zZ2lkICJQYWNrZWQgb2JqZWN0cyB3YWl0aW5nIGZvciBwcnVuaW5nIgorbXNnc3RyICLQn9Cw0LrQtdGC0LjRgNCw0L3QuCDQvtCx0LXQutGC0Lgg0LfQsCDQvtC60LDRgdGC0YDRj9C90LUiCisKKyM6IGxpYi9kYXRhYmFzZS50Y2w6NDgKK21zZ2lkICJHYXJiYWdlIGZpbGVzIgorbXNnc3RyICLQpNCw0LnQu9C+0LLQtSDQt9CwINCx0L7QutC70YPQutCwIgorCisjOiBsaWIvZGF0YWJhc2UudGNsOjcyCittc2dpZCAiQ29tcHJlc3NpbmcgdGhlIG9iamVjdCBkYXRhYmFzZSIKK21zZ3N0ciAi0JrQvtC80L/RgNC10YHQuNGA0LDQvdC1INC90LAg0LHQsNC30LDRgtCwINGBINC00LDQvdC90Lgg0LfQsCDQvtCx0LXQutGC0LjRgtC1IgorCisjOiBsaWIvZGF0YWJhc2UudGNsOjgzCittc2dpZCAiVmVyaWZ5aW5nIHRoZSBvYmplY3QgZGF0YWJhc2Ugd2l0aCBmc2NrLW9iamVjdHMiCittc2dzdHIgItCf0YDQvtCy0LXRgNC60LAg0L3QsCDQsdCw0LfQsNGC0LAg0YEg0LTQsNC90L3QuCDQt9CwINC+0LHQtdC60YLQuNGC0LUg0YEg0L/RgNC+0LPRgNCw0LzQsNGC0LAgZnNjay1vYmplY3RzIgorCisjOiBsaWIvZGF0YWJhc2UudGNsOjEwNworIywgdGNsLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIHJlcG9zaXRvcnkgY3VycmVudGx5IGhhcyBhcHByb3hpbWF0ZWx5ICVpIGxvb3NlIG9iamVjdHMuXG4iCisiXG4iCisiVG8gbWFpbnRhaW4gb3B0aW1hbCBwZXJmb3JtYW5jZSBpdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0aGF0IHlvdSBjb21wcmVzcyAiCisidGhlIGRhdGFiYXNlLlxuIgorIlxuIgorIkNvbXByZXNzIHRoZSBkYXRhYmFzZSBub3c/IgorbXNnc3RyICIiCisi0JIg0YLQvtCy0LAg0YXRgNCw0L3QuNC70LjRidC1INCyINC80L7QvNC10L3RgtCwINC40LzQsCDQutGK0LwgJWkg0L3QtdC/0LDQutC10YLQuNGA0LDQvdC4INC+0LHQtdC60YLQuC5cbiIKKyJcbiIKKyLQl2Qg0LTQvtCx0YDQsCDQv9GA0L7QuNC30LLQvtC00LjRgtC10LvQvdC+0YHRgiDRgdC1INC/0YDQtdC/0L7RgNGK0YfQstCwINC00LAg0LrQvtC80L/RgNC10YHQuNGA0LDRgtC1INCx0LDQt9Cw0YLQsCDRgSDQtNCw0L3QvdC4INC30LAgIgorItC+0LHQtdC60YLQuNGC0LUuXG4iCisiXG4iCisi0JTQsCDRgdC1INC30LDQv9C+0YfQvdC1INC70Lgg0LrQvtC80L/RgNC10YHQuNGA0LDQvdC10YLQvj8iCisKKyM6IGxpYi9lcnJvci50Y2w6MjAgbGliL2Vycm9yLnRjbDoxMTYKK21zZ2lkICJlcnJvciIKK21zZ3N0ciAi0LPRgNC10YjQutCwIgorCisjOiBsaWIvZXJyb3IudGNsOjM2Cittc2dpZCAid2FybmluZyIKK21zZ3N0ciAi0L/RgNC10LTRg9C/0YDQtdC20LTQtdC90LjQtSIKKworIzogbGliL2Vycm9yLnRjbDo5NgorbXNnaWQgIllvdSBtdXN0IGNvcnJlY3QgdGhlIGFib3ZlIGVycm9ycyBiZWZvcmUgY29tbWl0dGluZy4iCittc2dzdHIgItCf0YDQtdC00Lgg0LTQsCDQvNC+0LbQtdGC0LUg0LTQsCDQv9C+0LTQsNC00LXRgtC1LCDQvtC/0YDQsNCy0LXRgtC1INCz0L7RgNC90LjRgtC1INCz0YDQtdGI0LrQuC4iCisKKyM6IGxpYi9tZXJnZS50Y2w6MTMKK21zZ2lkICIiCisiQ2Fubm90IG1lcmdlIHdoaWxlIGFtZW5kaW5nLlxuIgorIlxuIgorIllvdSBtdXN0IGZpbmlzaCBhbWVuZGluZyB0aGlzIGNvbW1pdCBiZWZvcmUgc3RhcnRpbmcgYW55IHR5cGUgb2YgbWVyZ2UuXG4iCittc2dzdHIgIiIKKyLQn9C+INCy0YDQtdC80LUg0L3QsCDQv9C+0L/RgNCw0LLRj9C90LUg0L3QtSDQvNC+0LbQtSDQtNCwINGB0LvQuNCy0LDQvdC1LlxuIgorIlxuIgorItCi0YDRj9Cx0LLQsCDQtNCwINC30LDQstGK0YDRiNC40YLQtSDQv9C+0L/RgNCw0LLRj9C90LXRgtC+INC90LAg0YLQtdC60YPRidC+0YLQviDQv9C+0LTQsNCy0LDQvdC1LCDQv9GA0LXQtNC4INC00LAg0LfQsNC/0L7Rh9C90LXRgtC1ICIKKyLRgdC70LjQstCw0L3QtS5cbiIKKworIzogbGliL21lcmdlLnRjbDoyNworbXNnaWQgIiIKKyJMYXN0IHNjYW5uZWQgc3RhdGUgZG9lcyBub3QgbWF0Y2ggcmVwb3NpdG9yeSBzdGF0ZS5cbiIKKyJcbiIKKyJBbm90aGVyIEdpdCBwcm9ncmFtIGhhcyBtb2RpZmllZCB0aGlzIHJlcG9zaXRvcnkgc2luY2UgdGhlIGxhc3Qgc2Nhbi4gIEEgIgorInJlc2NhbiBtdXN0IGJlIHBlcmZvcm1lZCBiZWZvcmUgYSBtZXJnZSBjYW4gYmUgcGVyZm9ybWVkLlxuIgorIlxuIgorIlRoZSByZXNjYW4gd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHN0YXJ0ZWQgbm93LlxuIgorbXNnc3RyICIiCisi0J/QvtGB0LvQtdC00L3QviDRg9GB0YLQsNC90L7QstC10L3QvtGC0L4g0YHRitGB0YLQvtGP0L3QuNC1INC90LUg0L7RgtCz0L7QstCw0YDRjyDQvdCwINGC0L7QstCwINCyINGF0YDQsNC90LjQu9C40YnQtdGC0L4uXG4iCisiXG4iCisi0J3Rj9C60L7QuSDQtNGA0YPQsyDQv9GA0L7RhtC10YEg0LfQsCBHaXQg0LUg0L/RgNC+0LzQtdC90LjQuyDRhdGA0LDQvdC40LvQuNGJ0LXRgtC+INC80LXQttC00YPQstGA0LXQvNC10L3QvdC+LiDQodGK0YHRgtC+0Y/QvdC40LXRgtC+ICIKKyLRgtGA0Y/QsdCy0LAg0LTQsCDQsdGK0LTQtSDQv9GA0L7QstC10YDQtdC90L4sINC/0YDQtdC00Lgg0LTQsCDRgdC1INC40LfQstGK0YDRiNC4INGB0LvQuNCy0LDQvdC1LlxuIgorIlxuIgorItCQ0LLRgtC+0LzQsNGC0LjRh9C90L4g0YnQtSDQt9Cw0L/QvtGH0L3QtSDQvdC+0LLQsCDQv9GA0L7QstC10YDQutCwLlxuIgorIlxuIgorCisjOiBsaWIvbWVyZ2UudGNsOjQ1CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiIgorIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbmZsaWN0ZWQgbWVyZ2UuXG4iCisiXG4iCisiRmlsZSAlcyBoYXMgbWVyZ2UgY29uZmxpY3RzLlxuIgorIlxuIgorIllvdSBtdXN0IHJlc29sdmUgdGhlbSwgc3RhZ2UgdGhlIGZpbGUsIGFuZCBjb21taXQgdG8gY29tcGxldGUgdGhlIGN1cnJlbnQgIgorIm1lcmdlLiAgT25seSB0aGVuIGNhbiB5b3UgYmVnaW4gYW5vdGhlciBtZXJnZS5cbiIKK21zZ3N0ciAiIgorItCSINC80L7QvNC10L3RgtCwINGC0LXRh9C1INGB0LvQuNCy0LDQvdC1LCDQvdC+INC40LzQsCDQutC+0L3RhNC70LjQutGC0LguXG4iCisiXG4iCisi0J/QvtCz0LvQtdC00L3QtdGC0LUg0YTQsNC50LvQsCDigJ4lc+KAnC5cbiIKKyJcbiIKKyLQotGA0Y/QsdCy0LAg0LTQsCDQutC+0YDQuNCz0LjRgNCw0YLQtSDQutC+0L3RhNC70LjQutGC0LjRgtC1INCyINC90LXQs9C+LCDQtNCwINCz0L4g0LTQvtCx0LDQstC40YLQtSDQutGK0Lwg0LjQvdC00LXQutGB0LAg0Lgg0LTQsCAiCisi0LfQsNCy0YrRgNGI0LjRgtC1INGC0LXQutGD0YnQvtGC0L4g0YHQu9C40LLQsNC90LUg0YfRgNC10Lcg0L/QvtC00LDQstCw0L3QtS4g0KfQsNC6INGC0L7Qs9Cw0LLQsCDQvNC+0LbQtSDQtNCwINC30LDQv9C+0YfQvdC10YLQtSDQvdC+0LLQviAiCisi0YHQu9C40LLQsNC90LUuXG4iCisKKyM6IGxpYi9tZXJnZS50Y2w6NTUKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICIiCisiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgY2hhbmdlLlxuIgorIlxuIgorIkZpbGUgJXMgaXMgbW9kaWZpZWQuXG4iCisiXG4iCisiWW91IHNob3VsZCBjb21wbGV0ZSB0aGUgY3VycmVudCBjb21taXQgYmVmb3JlIHN0YXJ0aW5nIGEgbWVyZ2UuICBEb2luZyBzbyAiCisid2lsbCBoZWxwIHlvdSBhYm9ydCBhIGZhaWxlZCBtZXJnZSwgc2hvdWxkIHRoZSBuZWVkIGFyaXNlLlxuIgorbXNnc3RyICIiCisi0JIg0LzQvtC80LXQvdGC0LAg0YLQtdGH0LUg0L/QvtC00LDQstCw0L3QtS5cbiIKKyJcbiIKKyLQpNCw0LnQu9GK0YIg4oCeJXPigJwg0LUg0L/RgNC+0LzQtdC90LXQvS5cbiIKKyJcbiIKKyLQotGA0Y/QsdCy0LAg0LTQsCDQt9Cw0LLRitGA0YjQuNGC0LUg0YLQtdC60YPRidC+0YLQviDQv9C+0LTQsNCy0LDQvdC1LCDQv9GA0LXQtNC4INC00LAg0LfQsNC/0L7Rh9C90LXRgtC1INGB0LvQuNCy0LDQvdC1LiDQotCw0LrQsCDRidC1ICIKKyLQvNC+0LbQtdGC0LUg0LvQtdGB0L3QviDQtNCwINC/0YDQtdGD0YHRgtCw0L3QvtCy0LjRgtC1INGB0LvQuNCy0LDQvdC10YLQviwg0LDQutC+INCy0YrQt9C90LjQutC90LUg0L3Rg9C20LTQsC5cbiIKKworIzogbGliL21lcmdlLnRjbDoxMDgKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICIlcyBvZiAlcyIKK21zZ3N0ciAiJXMg0L7RgiDQvtCx0YnQviAlcyIKKworIzogbGliL21lcmdlLnRjbDoxMjIKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJNZXJnaW5nICVzIGFuZCAlcy4uLiIKK21zZ3N0ciAi0KHQu9C40LLQsNC90LUg0L3QsCDigJ4lc+KAnCDQuCDigJ4lc+KAnOKApiIKKworIzogbGliL21lcmdlLnRjbDoxMzMKK21zZ2lkICJNZXJnZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LiIKK21zZ3N0ciAi0KHQu9C40LLQsNC90LXRgtC+INC30LDQstGK0YDRiNC4INGD0YHQv9C10YjQvdC+LiIKKworIzogbGliL21lcmdlLnRjbDoxMzUKK21zZ2lkICJNZXJnZSBmYWlsZWQuICBDb25mbGljdCByZXNvbHV0aW9uIGlzIHJlcXVpcmVkLiIKK21zZ3N0ciAi0J3QtdGD0YHQv9C10YjQvdC+INGB0LvQuNCy0LDQvdC1IOKAlCDQuNC80LAg0LrQvtC90YTQu9C40LrRgtC4INC30LAg0LrQvtGA0LjQs9C40YDQsNC90LUuIgorCisjOiBsaWIvbWVyZ2UudGNsOjE2MAorIywgdGNsLWZvcm1hdAorbXNnaWQgIk1lcmdlIEludG8gJXMiCittc2dzdHIgItCh0LvQuNCy0LDQvdC1INCyIOKAniVz4oCcIgorCisjOiBsaWIvbWVyZ2UudGNsOjE3OQorbXNnaWQgIlJldmlzaW9uIFRvIE1lcmdlIgorbXNnc3RyICLQktC10YDRgdC40Y8g0LfQsCDRgdC70LjQstCw0L3QtSIKKworIzogbGliL21lcmdlLnRjbDoyMTQKK21zZ2lkICIiCisiQ2Fubm90IGFib3J0IHdoaWxlIGFtZW5kaW5nLlxuIgorIlxuIgorIllvdSBtdXN0IGZpbmlzaCBhbWVuZGluZyB0aGlzIGNvbW1pdC5cbiIKK21zZ3N0ciAiIgorItCf0L7Qv9GA0LDQstGP0L3QtdGC0L4g0L3QtSDQvNC+0LbQtSDQtNCwINCx0YrQtNC1INC/0YDQtdGD0YHRgtCw0L3QvtCy0LXQvdC+LlxuIgorIlxuIgorItCi0YDRj9Cx0LLQsCDQtNCwINC30LDQstGK0YDRiNC40YLQtSDQv9C+0L/RgNCw0LLQutCw0YLQsCDQvdCwINGC0L7QstCwINC/0L7QtNCw0LLQsNC90LUuXG4iCisKKyM6IGxpYi9tZXJnZS50Y2w6MjI0Cittc2dpZCAiIgorIkFib3J0IG1lcmdlP1xuIgorIlxuIgorIkFib3J0aW5nIHRoZSBjdXJyZW50IG1lcmdlIHdpbGwgY2F1c2UgKkFMTCogdW5jb21taXR0ZWQgY2hhbmdlcyB0byBiZSBsb3N0LlxuIgorIlxuIgorIkNvbnRpbnVlIHdpdGggYWJvcnRpbmcgdGhlIGN1cnJlbnQgbWVyZ2U/IgorbXNnc3RyICIiCisi0JTQsCDRgdC1INC/0YDQtdGD0YHRgtCw0L3QvtCy0Lgg0LvQuCDRgdC70LjQstCw0L3QtdGC0L4/XG4iCisiXG4iCisi0JIg0YLQsNC60YrQsiDRgdC70YPRh9Cw0LkgKtCS0KHQmNCn0JrQmCog0L3QtdC/0L7QtNCw0LTQtdC90Lgg0L/RgNC+0LzQtdC90Lgg0YnQtSDQsdGK0LTQsNGCINCx0LXQt9Cy0YrQt9Cy0YDQsNGC0L3QviDQt9Cw0LPRg9Cx0LXQvdC4LlxuIgorIlxuIgorItCd0LDQuNGB0YLQuNC90LAg0LvQuCDQtNCwINGB0LUg0L/RgNC10YPRgdGC0LDQvdC+0LLQuCDRgdC70LjQstCw0L3QtdGC0L4/IgorCisjOiBsaWIvbWVyZ2UudGNsOjIzMAorbXNnaWQgIiIKKyJSZXNldCBjaGFuZ2VzP1xuIgorIlxuIgorIlJlc2V0dGluZyB0aGUgY2hhbmdlcyB3aWxsIGNhdXNlICpBTEwqIHVuY29tbWl0dGVkIGNoYW5nZXMgdG8gYmUgbG9zdC5cbiIKKyJcbiIKKyJDb250aW51ZSB3aXRoIHJlc2V0dGluZyB0aGUgY3VycmVudCBjaGFuZ2VzPyIKK21zZ3N0ciAiIgorItCU0LAg0YHQtSDQt9Cw0L3Rg9C70Y/RgiDQu9C4INC/0YDQvtC80LXQvdC40YLQtT9cbiIKKyJcbiIKKyLQkiDRgtCw0LrRitCyINGB0LvRg9GH0LDQuSAq0JLQodCY0KfQmtCYKiDQvdC10L/QvtC00LDQtNC10L3QuCDQv9GA0L7QvNC10L3QuCDRidC1INCx0YrQtNCw0YIg0LHQtdC30LLRitC30LLRgNCw0YLQvdC+INC30LDQs9GD0LHQtdC90LguXG4iCisiXG4iCisi0J3QsNC40YHRgtC40L3QsCDQu9C4INC00LAg0YHQtSDQt9Cw0L3Rg9C70Y/RgiDQv9GA0L7QvNC10L3QuNGC0LU/IgorCisjOiBsaWIvbWVyZ2UudGNsOjI0MQorbXNnaWQgIkFib3J0aW5nIgorbXNnc3RyICLQn9GA0LXRg9GB0YLQsNC90L7QstGP0LLQsNC90LUiCisKKyM6IGxpYi9tZXJnZS50Y2w6MjQxCittc2dpZCAiZmlsZXMgcmVzZXQiCittc2dzdHIgItGE0LDQudC70LAg0YHRitGBINC30LDQvdGD0LvQtdC90Lgg0L/RgNC+0LzQtdC90LgiCisKKyM6IGxpYi9tZXJnZS50Y2w6MjY5Cittc2dpZCAiQWJvcnQgZmFpbGVkLiIKK21zZ3N0ciAi0J3QtdGD0YHQv9C10YjQvdC+INC/0YDQtdGD0YHRgtCw0L3QvtCy0Y/QstCw0L3QtS4iCisKKyM6IGxpYi9tZXJnZS50Y2w6MjcxCittc2dpZCAiQWJvcnQgY29tcGxldGVkLiAgUmVhZHkuIgorbXNnc3RyICLQo9GB0L/QtdGI0L3QviDQv9GA0LXRg9GB0YLQsNC90L7QstGP0LLQsNC90LUuINCT0L7RgtC+0LLQvdC+0YHRgiDQt9CwINGB0LvQtdC00LLQsNGJ0L4g0LTQtdC50YHRgtCy0LjQtS4iCmRpZmYgLS1naXQgYS9naXQtZ3VpL3BvL2dsb3NzYXJ5L2JnLnBvIGIvZ2l0LWd1aS9wby9nbG9zc2FyeS9iZy5wbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjcxZmFkCi0tLSAvZGV2L251bGwKKysrIGIvZ2l0LWd1aS9wby9nbG9zc2FyeS9iZy5wbwpAQCAtMCwwICsxLDI4NyBAQAorIyBCdWxnYXJpYW4gdHJhbnNsYXRpb24gb2YgZ2l0LWd1aS1nbG9zc2FyeSBwby1maWxlLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQWxleGFuZGVyIFNob3BvdiA8YXNoQGthbWJhbmFyaWEub3JnPi4KKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIGdpdCBwYWNrYWdlLgorIyBBbGV4YW5kZXIgU2hvcG92IDxhc2hAa2FtYmFuYXJpYS5vcmc+LCAyMDEyLCAyMDEzLCAyMDE0LgorIworIworbXNnaWQgIiIKK21zZ3N0ciAiIgorIlByb2plY3QtSWQtVmVyc2lvbjogZ2l0LWd1aS1nbG9zc2FyeSBtYXN0ZXJcbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxNC0wMS0xMyAyMTozOSswMjAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAxNC0wMS0xMyAyMTozOSswMjAwXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBBbGV4YW5kZXIgU2hvcG92IDxhc2hAa2FtYmFuYXJpYS5vcmc+XG4iCisiTGFuZ3VhZ2UtVGVhbTogQnVsZ2FyaWFuIDxkaWN0QGZzYS1iZy5vcmc+XG4iCisiTGFuZ3VhZ2U6IGJnXG4iCisiTUlNRS1WZXJzaW9uOiAxLjBcbiIKKyJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7XG4iCisKKyMuICJFbmdsaXNoIERlZmluaXRpb24gKERlYXIgdHJhbnNsYXRvcjogVGhpcyBmaWxlIHdpbGwgbmV2ZXIgYmUgdmlzaWJsZSB0byB0aGUgdXNlciEgSXQgc2hvdWxkIG9ubHkgc2VydmUgYXMgYSB0b29sIGZvciB5b3UsIHRoZSB0cmFuc2xhdG9yLiBOb3RoaW5nIG1vcmUuKSIKK21zZ2lkICIiCisiRW5nbGlzaCBUZXJtIChEZWFyIHRyYW5zbGF0b3I6IFRoaXMgZmlsZSB3aWxsIG5ldmVyIGJlIHZpc2libGUgdG8gdGhlIHVzZXIhKSIKK21zZ3N0ciAi0KLQtdGA0LzQuNC9IgorCisjLiAiIgorbXNnaWQgImFtZW5kIgorbXNnc3RyICLQv9C+0L/RgNCw0LLRj9C8IgorCisjLiAiIgorbXNnaWQgImFubm90YXRlIgorbXNnc3RyICLQsNC90L7RgtC40YDQsNC8IgorCisjLiAiQSAnYnJhbmNoJyBpcyBhbiBhY3RpdmUgbGluZSBvZiBkZXZlbG9wbWVudC4iCittc2dpZCAiYnJhbmNoIFtub3VuXSIKK21zZ3N0ciAi0LrQu9C+0L0sINGA0LDQt9C60LvQvtC90LXQvdC40LUgW9GB0YrRidC10YHRgtCy0LjRgtC10LvQvdC+XSIKKworIy4gIiIKK21zZ2lkICJicmFuY2ggW3ZlcmJdIgorbXNnc3RyICLRgNCw0LfQutC70L7QvdGP0LLQsNC8IFvQs9C70LDQs9C+0LtdIgorCisjLiAiIgorbXNnaWQgImNoZWNrb3V0IFtub3VuXSIKK21zZ3N0ciAi0LjQt9GC0LXQs9C70Y/QvdC1IFvRgdGK0YnQtdGB0YLQstC40YLQtdC70L3Qvl0iCisKKyMuICJUaGUgYWN0aW9uIG9mIHVwZGF0aW5nIHRoZSB3b3JraW5nIHRyZWUgdG8gYSByZXZpc2lvbiB3aGljaCB3YXMgc3RvcmVkIGluIHRoZSBvYmplY3QgZGF0YWJhc2UuIgorbXNnaWQgImNoZWNrb3V0IFt2ZXJiXSIKK21zZ3N0ciAi0LjQt9GC0LXQs9C70Y/QvdC1IFvQs9C70LDQs9C+0LtdIgorCisjLiAiIgorbXNnaWQgImNsb25lIFt2ZXJiXSIKK21zZ3N0ciAi0LrQu9C+0L3QuNGA0LDQvCBb0LPQu9Cw0LPQvtC7XSIKKworIy4gIkEgc2luZ2xlIHBvaW50IGluIHRoZSBnaXQgaGlzdG9yeS4iCittc2dpZCAiY29tbWl0IFtub3VuXSIKK21zZ3N0ciAi0L/QvtC00LDQstCw0L3QtSBb0YHRitGJ0LXRgdGC0LLQuNGC0LXQu9C90L5dIgorCisjLiAiVGhlIGFjdGlvbiBvZiBzdG9yaW5nIGEgbmV3IHNuYXBzaG90IG9mIHRoZSBwcm9qZWN0J3Mgc3RhdGUgaW4gdGhlIGdpdCBoaXN0b3J5LiIKK21zZ2lkICJjb21taXQgW3ZlcmJdIgorbXNnc3RyICLQv9C+0LTQsNCy0LDQvCBb0YHRitGJ0LXRgdGC0LLQuNGC0LXQu9C90L5dIgorCisjLiAiIgorbXNnaWQgImRpZmYgW25vdW5dIgorbXNnc3RyICLRgNCw0LfQu9C40LrQsC/Qv9GA0L7QvNC10L3QuCBb0YHRitGJ0LXRgdGC0LLQuNGC0LXQu9C90L5dIgorCisjLiAiIgorbXNnaWQgImRpZmYgW3ZlcmJdIgorbXNnc3RyICLQuNC30YfQuNGB0LvRj9Cy0LDQvCDRgNCw0LfQu9C40LrQsC/Qv9GA0L7QvNC10L3QuCBb0LPQu9Cw0LPQvtC7XSIKKworIy4gIkEgZmFzdC1mb3J3YXJkIGlzIGEgc3BlY2lhbCB0eXBlIG9mIG1lcmdlIHdoZXJlIHlvdSBoYXZlIGEgcmV2aXNpb24gYW5kIHlvdSBhcmUgbWVyZ2luZyBhbm90aGVyIGJyYW5jaCdzIGNoYW5nZXMgdGhhdCBoYXBwZW4gdG8gYmUgYSBkZXNjZW5kYW50IG9mIHdoYXQgeW91IGhhdmUuIgorbXNnaWQgImZhc3QgZm9yd2FyZCBtZXJnZSIKK21zZ3N0ciAi0L/RgNC10LLRitGA0YLQsNGJ0L4v0LTQuNGA0LXQutGC0L3Qvi/RgtGA0LjQstC40LDQu9C90L4g0YHQu9C40LLQsNC90LUiCisKKyMuICJGZXRjaGluZyBhIGJyYW5jaCBtZWFucyB0byBnZXQgdGhlIGJyYW5jaCdzIGhlYWQgZnJvbSBhIHJlbW90ZSByZXBvc2l0b3J5LCB0byBmaW5kIG91dCB3aGljaCBvYmplY3RzIGFyZSBtaXNzaW5nIGZyb20gdGhlIGxvY2FsIG9iamVjdCBkYXRhYmFzZSwgYW5kIHRvIGdldCB0aGVtLCB0b28uIgorbXNnaWQgImZldGNoIgorbXNnc3RyICLQtNC+0YHRgtCw0LLRj9C90LUiCisKKyMuICJPbmUgY29udGV4dCBvZiBjb25zZWN1dGl2ZSBsaW5lcyBpbiBhIHdob2xlIHBhdGNoLCB3aGljaCBjb25zaXN0cyBvZiBtYW55IHN1Y2ggaHVua3MiCittc2dpZCAiaHVuayIKK21zZ3N0ciAi0L/QsNGA0YfQtSIKKworIy4gIkEgY29sbGVjdGlvbiBvZiBmaWxlcy4gVGhlIGluZGV4IGlzIGEgc3RvcmVkIHZlcnNpb24gb2YgeW91ciB3b3JraW5nIHRyZWUuIgorbXNnaWQgImluZGV4IChpbiBnaXQtZ3VpOiBzdGFnaW5nIGFyZWEpIgorbXNnc3RyICLRgdC60LXQu9C1L9C40L3QtNC10LrRgS/QuNC30LHQsCIKKworIy4gIkEgc3VjY2Vzc2Z1bCBtZXJnZSByZXN1bHRzIGluIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBjb21taXQgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgdGhlIG1lcmdlLiIKK21zZ2lkICJtZXJnZSBbbm91bl0iCittc2dzdHIgItGB0LvQuNCy0LDQvdC1L9C+0LHQtdC00LjQvdGP0LLQsNC90LUgW9GB0YrRidC10YHRgtCy0LjRgtC10LvQvdC+XSIKKworIy4gIlRvIGJyaW5nIHRoZSBjb250ZW50cyBvZiBhbm90aGVyIGJyYW5jaCBpbnRvIHRoZSBjdXJyZW50IGJyYW5jaC4iCittc2dpZCAibWVyZ2UgW3ZlcmJdIgorbXNnc3RyICLRgdC70LjQstCw0Lwv0L7QsdC10LTQuNC90Y/QstCw0LwgW9Cz0LvQsNCz0L7Qu10iCisKKyMuICIiCittc2dpZCAibWVzc2FnZSIKK21zZ3N0ciAi0YHRitC+0LHRidC10L3QuNC1IgorCisjLiAiRGVsZXRlcyBhbGwgc3RhbGUgdHJhY2tpbmcgYnJhbmNoZXMgdW5kZXIgPG5hbWU+LiBUaGVzZSBzdGFsZSBicmFuY2hlcyBoYXZlIGFscmVhZHkgYmVlbiByZW1vdmVkIGZyb20gdGhlIHJlbW90ZSByZXBvc2l0b3J5IHJlZmVyZW5jZWQgYnkgPG5hbWU+LCBidXQgYXJlIHN0aWxsIGxvY2FsbHkgYXZhaWxhYmxlIGluICdyZW1vdGVzLzxuYW1lPicuIgorbXNnaWQgInBydW5lIgorbXNnc3RyICLQvtC60LDRgdGC0YDRj9C8IgorCisjLiAiUHVsbGluZyBhIGJyYW5jaCBtZWFucyB0byBmZXRjaCBpdCBhbmQgbWVyZ2UgaXQuIgorbXNnaWQgInB1bGwiCittc2dzdHIgItC40LfQtNGK0YDQv9Cy0LDQvCIKKworIy4gIlB1c2hpbmcgYSBicmFuY2ggbWVhbnMgdG8gZ2V0IHRoZSBicmFuY2gncyBoZWFkIHJlZiBmcm9tIGEgcmVtb3RlIHJlcG9zaXRvcnksIGFuZCAuLi4gKHdlbGwsIGNhbiBzb21lb25lIHBsZWFzZSBleHBsYWluIGl0IGZvciBtZXJlIG1vcnRhbHM/KSIKK21zZ2lkICJwdXNoIgorbXNnc3RyICLQuNC30YLQu9Cw0YHQutCy0LDQvCIKKworIy4gIiIKK21zZ2lkICJyZWRvIgorbXNnc3RyICLQv9C+0LLRgtCw0YDRj9C8L9C/0YDQsNCy0Y8g0L3QsNC90L7QstC+IgorCisjLiAiQW4gb3RoZXIgcmVwb3NpdG9yeSAoJ3JlbW90ZScpLiBPbmUgbWlnaHQgaGF2ZSBhIHNldCBvZiByZW1vdGVzIHdob3NlIGJyYW5jaGVzIG9uZSB0cmFja3MuIgorbXNnaWQgInJlbW90ZSIKK21zZ3N0ciAi0L7RgtC00LDQu9C10YfQtdC90L4g0YXRgNCw0L3QuNC70LjRidC1IgorCisjLiAiQSBjb2xsZWN0aW9uIG9mIHJlZnMgKD8pIHRvZ2V0aGVyIHdpdGggYW4gb2JqZWN0IGRhdGFiYXNlIGNvbnRhaW5pbmcgYWxsIG9iamVjdHMgd2hpY2ggYXJlIHJlYWNoYWJsZSBmcm9tIHRoZSByZWZzLi4uIChvb3BzLCB5b3UndmUgbG9zdCBtZSBoZXJlLiBBZ2FpbiwgcGxlYXNlIGFuIGV4cGxhbmF0aW9uIGZvciBtZXJlIG1vcnRhbHM/KSIKK21zZ2lkICJyZXBvc2l0b3J5IgorbXNnc3RyICLRhdGA0LDQvdC40LvQuNGJ0LUiCisKKyMuICIiCittc2dpZCAicmVzZXQiCittc2dzdHIgItC30LDQvdGD0LvRj9Cy0LDQvC/QvtGC0LzQtdC90Y/QvCIKKworIy4gIiIKK21zZ2lkICJyZXZlcnQiCittc2dzdHIgItCy0YDRitGJ0LDQvC/QvtGC0LzQtdC90Y/QvCIKKworIy4gIkEgcGFydGljdWxhciBzdGF0ZSBvZiBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgd2hpY2ggd2FzIHN0b3JlZCBpbiB0aGUgb2JqZWN0IGRhdGFiYXNlLiIKK21zZ2lkICJyZXZpc2lvbiIKK21zZ3N0ciAi0LLQtdGA0YHQuNGPIgorCisjLiAiIgorbXNnaWQgInNpZ24gb2ZmIgorbXNnc3RyICLQv9C+0LTQv9C40YHQstCw0LwiCisKKyMuICIiCittc2dpZCAic3RhZ2luZyBhcmVhIgorbXNnc3RyICLRgdC60LXQu9C1L9C40L3QtNC10LrRgS/QuNC30LHQsCIKKworIy4gIiIKK21zZ2lkICJzdGF0dXMiCittc2dzdHIgItGB0YrRgdGC0L7Rj9C90LjQtSIKKworIy4gIkEgcmVmIHBvaW50aW5nIHRvIGEgdGFnIG9yIGNvbW1pdCBvYmplY3QiCittc2dpZCAidGFnIFtub3VuXSIKK21zZ3N0ciAi0LXRgtC40LrQtdGCIFvRgdGK0YnQtdGB0YLQstC40YLQtdC70L3Qvl0iCisKKyMuICIiCittc2dpZCAidGFnIFt2ZXJiXSIKK21zZ3N0ciAi0LfQsNC00LDQstCw0Lwg0LXRgtC40LrQtdGCIFvQs9C70LDQs9C+0LtdIgorCisjLiAiQSByZWd1bGFyIGdpdCBicmFuY2ggdGhhdCBpcyB1c2VkIHRvIGZvbGxvdyBjaGFuZ2VzIGZyb20gYW5vdGhlciByZXBvc2l0b3J5LiIKK21zZ2lkICJ0cmFja2luZyBicmFuY2giCittc2dzdHIgItGB0LvQtdC00Y/RiSDQutC70L7QvSIKKworIy4gIiIKK21zZ2lkICJ1bmRvIgorbXNnc3RyICLQvtGC0LzQtdC90Y/QvCIKKworIy4gIiIKK21zZ2lkICJ1cGRhdGUiCittc2dzdHIgItC+0LHQvdC+0LLRj9Cy0LDQvCIKKworIy4gIiIKK21zZ2lkICJ2ZXJpZnkiCittc2dzdHIgItC/0YDQvtCy0LXRgNGP0LLQsNC8IgorCisjLiAiVGhlIHRyZWUgb2YgYWN0dWFsIGNoZWNrZWQgb3V0IGZpbGVzLiIKK21zZ2lkICJ3b3JraW5nIGNvcHksIHdvcmtpbmcgdHJlZSIKK21zZ3N0ciAi0YDQsNCx0L7RgtC90L4g0LrQvtC/0LjQtS/RgNCw0LHQvtGC0L3QviDQtNGK0YDQstC+IgorCisjLiAiYSBjb21taXQgdGhhdCBzdWNjZWVkcyB0aGUgY3VycmVudCBvbmUgaW4gZ2l0J3MgZ3JhcGggb2YgY29tbWl0cyAobm90IG5lY2Vzc2FyaWx5IGRpcmVjdGx5KSIKK21zZ2lkICJhbmNlc3RvciIKK21zZ3N0ciAi0L/RgNC10LTRiNC10YHRgtCy0LXQvdC40LoiCisKKyMuICJwcmVtYXR1cmVseSBzdG9wIGFuZCBhYmFuZG9uIGFuIG9wZXJhdGlvbiIKK21zZ2lkICJhYm9ydCIKK21zZ3N0ciAi0L/RgNC10YPRgdGC0LDQvdC+0LLRj9Cy0LDQvCIKKworIy4gImEgcmVwb3NpdG9yeSB3aXRoIG9ubHkgLmdpdCBkaXJlY3RvcnksIHdpdGhvdXQgd29ya2luZyBkaXJlY3RvcnkiCittc2dpZCAiYmFyZSByZXBvc2l0b3J5IgorbXNnc3RyICLQs9C+0LvQviDRhdGA0LDQvdC40LvQuNGJ0LUiCisKKyMuICJhIHBhcmVudCB2ZXJzaW9uIG9mIHRoZSBjdXJyZW50IGZpbGUiCittc2dpZCAiYmFzZSIKK21zZ3N0ciAi0YDQvtC00LjRgtC10LvRgdC60LAg0LLQtdGA0YHQuNGPIgorCisjLiAiZ2V0IHRoZSBhdXRob3JzIHJlc3BvbnNpYmxlIGZvciBlYWNoIGxpbmUgaW4gYSBmaWxlIgorbXNnaWQgImJsYW1lIgorbXNnc3RyICLQsNC90L7RgtC40YDQsNC8L9Cw0L3QvtGC0LjRgNCw0L3QtSIKKworIy4gInRvIHNlbGVjdCBhbmQgYXBwbHkgYSBzaW5nbGUgY29tbWl0IHdpdGhvdXQgbWVyZ2luZyIKK21zZ2lkICJjaGVycnktcGljayIKK21zZ3N0ciAi0L7RgtCx0LjRgNCw0LwiCisKKyMuICJhIGNvbW1pdCB0aGF0IGRpcmVjdGx5IHN1Y2NlZWRzIHRoZSBjdXJyZW50IG9uZSBpbiBnaXQncyBncmFwaCBvZiBjb21taXRzIgorbXNnaWQgImNoaWxkIgorbXNnc3RyICLQtNC10YLQtSIKKworIy4gImNsZWFuIHRoZSBzdGF0ZSBvZiB0aGUgZ2l0IHJlcG9zaXRvcnksIG9mdGVuIGFmdGVyIG1hbnVhbGx5IHN0b3BwZWQgb3BlcmF0aW9uIgorbXNnaWQgImNsZWFudXAiCittc2dzdHIgItC30LDRh9C40YHRgtCy0LDQvCIKKworIy4gImEgbWVzc2FnZSB0aGF0IGdldHMgYXR0YWNoZWQgd2l0aCBhbnkgY29tbWl0IgorbXNnaWQgImNvbW1pdCBtZXNzYWdlIgorbXNnc3RyICLRgdGK0L7QsdGJ0LXQvdC40LUg0L/RgNC4INC/0L7QtNCw0LLQsNC90LUiCisKKyMuICJhIGNvbW1pdCB0aGF0IHByZWNlZGVzIHRoZSBjdXJyZW50IG9uZSBpbiBnaXQncyBncmFwaCBvZiBjb21taXRzIChub3QgbmVjZXNzYXJpbHkgZGlyZWN0bHkpIgorbXNnaWQgImRlc2NlbmRhbnQiCittc2dzdHIgItC90LDRgdC70LXQtNC90LjQuiIKKworIy4gImNoZWNrb3V0IG9mIGEgcmV2aXNpb24gcmF0aGVyIHRoYW4gYSBzb21lIGhlYWQiCittc2dpZCAiZGV0YWNoZWQgY2hlY2tvdXQiCittc2dzdHIgItC90LXRgdCy0YrRgNC30LDQvdC+INC40LfRgtC10LPQu9GP0L3QtSIKKworIy4gImFueSBtZXJnZSBzdHJhdGVneSB0aGF0IHdvcmtzIG9uIGEgZmlsZSBieSBmaWxlIGJhc2lzIgorbXNnaWQgImZpbGUgbGV2ZWwgbWVyZ2luZyIKK21zZ3N0ciAi0L/QvtGE0LDQudC70L7QstC+INGB0LvQuNCy0LDQvdC1IgorCisjLiAidGhlIGxhc3QgcmV2aXNpb24gaW4gYSBicmFuY2giCittc2dpZCAiaGVhZCIKK21zZ3N0ciAi0LPQu9Cw0LLQsC/QstGA0YrRhSAo0L3QsCDQutC70L7QvSwg0YDQsNC30YDQsNCx0L7RgtC60LApIgorCisjLiAic2NyaXB0IHRoYXQgZ2V0cyBleGVjdXRlZCBhdXRvbWF0aWNhbGx5IG9uIHNvbWUgZXZlbnQiCittc2dpZCAiaG9vayIKK21zZ3N0ciAi0LrRg9C60LAv0LDQstGC0L7QvNCw0YLQuNGH0LXQvSDRgdC60YDQuNC/0YIiCisKKyMuICJ0aGUgZmlyc3QgY2hlY2tvdXQgZHVyaW5nIGEgY2xvbmUgb3BlcmF0aW9uIgorbXNnaWQgImluaXRpYWwgY2hlY2tvdXQiCittc2dzdHIgItC/0YrRgNCy0L7QvdCw0YfQsNC70L3QviDQuNC30YLQtdCz0LvRj9C90LUiCisKKyMuICJhIGJyYW5jaCB0aGF0IHJlc2lkZXMgaW4gdGhlIGxvY2FsIGdpdCByZXBvc2l0b3J5IgorbXNnaWQgImxvY2FsIGJyYW5jaCIKK21zZ3N0ciAi0LvQvtC60LDQu9C10L0g0LrQu9C+0L0iCisKKyMuICJhIEdpdCBvYmplY3QgdGhhdCBpcyBub3QgcGFydCBvZiBhbnkgcGFjayIKK21zZ2lkICJsb29zZSBvYmplY3QiCittc2dzdHIgItC90LXQv9Cw0LrQtdGC0LjRgNCw0L0g0L7QsdC10LrRgiIKKworIy4gImEgYnJhbmNoIGNhbGxlZCBieSBjb252ZW50aW9uICdtYXN0ZXInIHRoYXQgZXhpc3RzIGluIGEgbmV3bHkgY3JlYXRlZCBnaXQgcmVwb3NpdG9yeSIKK21zZ2lkICJtYXN0ZXIgYnJhbmNoIgorbXNnc3RyICLQvtGB0L3QvtCy0LXQvSDQutC70L7QvSIKKworIy4gImEgcmVtb3RlIGNhbGxlZCBieSBjb252ZW50aW9uICdvcmlnaW4nIHRoYXQgdGhlIGN1cnJlbnQgZ2l0IHJlcG9zaXRvcnkgaGFzIGJlZW4gY2xvbmVkIGZyb20iCittc2dpZCAib3JpZ2luIgorbXNnc3RyICLRhdGA0LDQvdC40LvQuNGJ0LUt0LjQt9GC0L7Rh9C90LjQuiIKKworIy4gImEgZmlsZSBjb250YWluaW5nIG1hbnkgZ2l0IG9iamVjdHMgcGFja2VkIHRvZ2V0aGVyIgorbXNnaWQgInBhY2sgW25vdW5dIgorbXNnc3RyICLQtdGC0LjQutC10YIiCisKKyMuICJhIEdpdCBvYmplY3QgcGFydCBvZiBzb21lIHBhY2siCittc2dpZCAicGFja2VkIG9iamVjdCIKK21zZ3N0ciAi0L/QsNC60LXRgtC40YDQsNC9INC+0LHQtdC60YIiCisKKyMuICJhIGNvbW1pdCB0aGF0IGRpcmVjdGx5IHByZWNlZGVzIHRoZSBjdXJyZW50IG9uZSBpbiBnaXQncyBncmFwaCBvZiBjb21taXRzIgorbXNnaWQgInBhcmVudCIKK21zZ3N0ciAi0YDQvtC00LjRgtC10LsiCisKKyMuICJ0aGUgbG9nIGZpbGUgY29udGFpbmluZyBhbGwgc3RhdGVzIG9mIHRoZSBIRUFEIHJlZmVyZW5jZSAoaW4gb3RoZXIgd29yZHMgcGFzdCBwcmlzdGluZSBzdGF0ZXMgb2YgdGhlIHdvcmtpbmcgY29weSkiCittc2dpZCAicmVmbG9nIgorbXNnc3RyICLQttGD0YDQvdCw0Lsg0L3QsCDRg9C60LDQt9Cw0YLQtdC70LjRgtC1IgorCisjLiAiZGVjaWRlIHdoaWNoIGNoYW5nZXMgZnJvbSBhbHRlcm5hdGl2ZSB2ZXJzaW9ucyBvZiBhIGZpbGUgc2hvdWxkIHBlcnNpc3QgaW4gR2l0IgorbXNnaWQgInJlc29sdmUgKGEgY29uZmxpY3QpIgorbXNnc3RyICLQutC+0YDQuNCz0LjRgNCw0LwgKNC60L7QvdGE0LvQuNC60YIpIgorCisjLiAiYWJhbmRvbiBjaGFuZ2VzIGFuZCBnbyB0byBwcmlzdGluZSB2ZXJzaW9uIgorbXNnaWQgInJldmVydCBjaGFuZ2VzIgorbXNnc3RyICLQstGA0YrRidCw0L3QtSDQvdCwINC+0YDQuNCz0LjQvdCw0LvQsCIKKworIy4gImV4cHJlc3Npb24gdGhhdCBzaWduaWZpZXMgYSByZXZpc2lvbiBpbiBnaXQiCittc2dpZCAicmV2aXNpb24gZXhwcmVzc2lvbiIKK21zZ3N0ciAi0LjQt9GA0LDQtyDQt9CwINCy0LXRgNGB0LjRjyIKKworIy4gImFkZCBzb21lIGNvbnRlbnQgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvIHRoZSBzdGFnaW5nIGFyZWEgaW4gcHJlcGFyYXRpb24gZm9yIGEgY29tbWl0IgorbXNnaWQgInN0YWdlL3Vuc3RhZ2UiCittc2dzdHIgIijQtNC+0LHQsNCy0Y/QvdC1KSDQutGK0Lwg0YHQutC10LvQtdGC0L4g0LfQsCDQv9C+0LTQsNCy0LDQvdC1L9C40LfQstCw0LbQtNCw0L3QtSDQvtGCINGB0LrQtdC70LXRgtC+INC30LAg0L/QvtC00LDQstCw0L3QtSIKKworIy4gInRlbXBvcmFyaWx5IHNhdmUgY2hhbmdlcyBpbiBhIHN0YWNrIHdpdGhvdXQgY29tbWl0dGluZyIKK21zZ2lkICJzdGFzaCIKK21zZ3N0ciAi0YHQutCw0YLQsNCy0LDQvCDQv9GA0L7QvNC10L3QuCIKKworIy4gImZpbGUgd2hvc2UgY29udGVudCBpcyB0cmFja2VkL25vdCB0cmFja2VkIGJ5IGdpdCIKK21zZ2lkICJ0cmFja2VkL3VudHJhY2tlZCIKK21zZ3N0ciAi0YHQu9C10LTQtdC9L9C90LXRgdC70LXQtNC10L0iCmRpZmYgLS1naXQgYS9naXQtZ3VpL3BvL2dsb3NzYXJ5L2dpdC1ndWktZ2xvc3NhcnkudHh0IGIvZ2l0LWd1aS9wby9nbG9zc2FyeS9naXQtZ3VpLWdsb3NzYXJ5LnR4dAppbmRleCA5YjMxZjY5Li40MDkzMDQ2IDEwMDY0NAotLS0gYS9naXQtZ3VpL3BvL2dsb3NzYXJ5L2dpdC1ndWktZ2xvc3NhcnkudHh0CisrKyBiL2dpdC1ndWkvcG8vZ2xvc3NhcnkvZ2l0LWd1aS1nbG9zc2FyeS50eHQKQEAgLTM2LDMgKzM2LDMyIEBACiAidXBkYXRlIgkiIgogInZlcmlmeSIJIiIKICJ3b3JraW5nIGNvcHksIHdvcmtpbmcgdHJlZSIJIlRoZSB0cmVlIG9mIGFjdHVhbCBjaGVja2VkIG91dCBmaWxlcy4iCisiYW5jZXN0b3IiCSJhIGNvbW1pdCB0aGF0IHN1Y2NlZWRzIHRoZSBjdXJyZW50IG9uZSBpbiBnaXQncyBncmFwaCBvZiBjb21taXRzIChub3QgbmVjZXNzYXJpbHkgZGlyZWN0bHkpIgorImFib3J0IgkicHJlbWF0dXJlbHkgc3RvcCBhbmQgYWJhbmRvbiBhbiBvcGVyYXRpb24iCisiYmFyZSByZXBvc2l0b3J5IgkiYSByZXBvc2l0b3J5IHdpdGggb25seSAuZ2l0IGRpcmVjdG9yeSwgd2l0aG91dCB3b3JraW5nIGRpcmVjdG9yeSIKKyJiYXNlIgkiYSBwYXJlbnQgdmVyc2lvbiBvZiB0aGUgY3VycmVudCBmaWxlIgorImJsYW1lIgkiZ2V0IHRoZSBhdXRob3JzIHJlc3BvbnNpYmxlIGZvciBlYWNoIGxpbmUgaW4gYSBmaWxlIgorImNoZXJyeS1waWNrIgkidG8gc2VsZWN0IGFuZCBhcHBseSBhIHNpbmdsZSBjb21taXQgd2l0aG91dCBtZXJnaW5nIgorImNoaWxkIgkiYSBjb21taXQgdGhhdCBkaXJlY3RseSBzdWNjZWVkcyB0aGUgY3VycmVudCBvbmUgaW4gZ2l0J3MgZ3JhcGggb2YgY29tbWl0cyIKKyJjbGVhbnVwIgkiY2xlYW4gdGhlIHN0YXRlIG9mIHRoZSBnaXQgcmVwb3NpdG9yeSwgb2Z0ZW4gYWZ0ZXIgbWFudWFsbHkgc3RvcHBlZCBvcGVyYXRpb24iCisiY29tbWl0IG1lc3NhZ2UiCSJhIG1lc3NhZ2UgdGhhdCBnZXRzIGF0dGFjaGVkIHdpdGggYW55IGNvbW1pdCIKKyJkZXNjZW5kYW50IgkiYSBjb21taXQgdGhhdCBwcmVjZWRlcyB0aGUgY3VycmVudCBvbmUgaW4gZ2l0J3MgZ3JhcGggb2YgY29tbWl0cyAobm90IG5lY2Vzc2FyaWx5IGRpcmVjdGx5KSIKKyJkZXRhY2hlZCBjaGVja291dCIJImNoZWNrb3V0IG9mIGEgcmV2aXNpb24gcmF0aGVyIHRoYW4gYSBzb21lIGhlYWQiCisiZmlsZSBsZXZlbCBtZXJnaW5nIgkiYW55IG1lcmdlIHN0cmF0ZWd5IHRoYXQgd29ya3Mgb24gYSBmaWxlIGJ5IGZpbGUgYmFzaXMiCisiaGVhZCIJInRoZSBsYXN0IHJldmlzaW9uIGluIGEgYnJhbmNoIgorImhvb2siCSJzY3JpcHQgdGhhdCBnZXRzIGV4ZWN1dGVkIGF1dG9tYXRpY2FsbHkgb24gc29tZSBldmVudCIKKyJpbml0aWFsIGNoZWNrb3V0IgkidGhlIGZpcnN0IGNoZWNrb3V0IGR1cmluZyBhIGNsb25lIG9wZXJhdGlvbiIKKyJsb2NhbCBicmFuY2giCSJhIGJyYW5jaCB0aGF0IHJlc2lkZXMgaW4gdGhlIGxvY2FsIGdpdCByZXBvc2l0b3J5IgorImxvb3NlIG9iamVjdCIJImEgR2l0IG9iamVjdCB0aGF0IGlzIG5vdCBwYXJ0IG9mIGFueSBwYWNrIgorIm1hc3RlciBicmFuY2giCSJhIGJyYW5jaCBjYWxsZWQgYnkgY29udmVudGlvbiAnbWFzdGVyJyB0aGF0IGV4aXN0cyBpbiBhIG5ld2x5IGNyZWF0ZWQgZ2l0IHJlcG9zaXRvcnkiCisib3JpZ2luIgkiYSByZW1vdGUgY2FsbGVkIGJ5IGNvbnZlbnRpb24gJ29yaWdpbicgdGhhdCB0aGUgY3VycmVudCBnaXQgcmVwb3NpdG9yeSBoYXMgYmVlbiBjbG9uZWQgZnJvbSIKKyJwYWNrIFtub3VuXSIJImEgZmlsZSBjb250YWluaW5nIG1hbnkgZ2l0IG9iamVjdHMgcGFja2VkIHRvZ2V0aGVyIgorInBhY2tlZCBvYmplY3QiCSJhIEdpdCBvYmplY3QgcGFydCBvZiBzb21lIHBhY2siCisicGFyZW50IgkiYSBjb21taXQgdGhhdCBkaXJlY3RseSBwcmVjZWRlcyB0aGUgY3VycmVudCBvbmUgaW4gZ2l0J3MgZ3JhcGggb2YgY29tbWl0cyIKKyJyZWZsb2ciCSJ0aGUgbG9nIGZpbGUgY29udGFpbmluZyBhbGwgc3RhdGVzIG9mIHRoZSBIRUFEIHJlZmVyZW5jZSAoaW4gb3RoZXIgd29yZHMgcGFzdCBwcmlzdGluZSBzdGF0ZXMgb2YgdGhlIHdvcmtpbmcgY29weSkiCisicmVzb2x2ZSAoYSBjb25mbGljdCkiCSJkZWNpZGUgd2hpY2ggY2hhbmdlcyBmcm9tIGFsdGVybmF0aXZlIHZlcnNpb25zIG9mIGEgZmlsZSBzaG91bGQgcGVyc2lzdCBpbiBHaXQiCisicmV2ZXJ0IGNoYW5nZXMiCSJhYmFuZG9uIGNoYW5nZXMgYW5kIGdvIHRvIHByaXN0aW5lIHZlcnNpb24iCisicmV2aXNpb24gZXhwcmVzc2lvbiIJImV4cHJlc3Npb24gdGhhdCBzaWduaWZpZXMgYSByZXZpc2lvbiBpbiBnaXQiCisic3RhZ2UvdW5zdGFnZSIJImFkZCBzb21lIGNvbnRlbnQgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvIHRoZSBzdGFnaW5nIGFyZWEgaW4gcHJlcGFyYXRpb24gZm9yIGEgY29tbWl0IgorInN0YXNoIgkidGVtcG9yYXJpbHkgc2F2ZSBjaGFuZ2VzIGluIGEgc3RhY2sgd2l0aG91dCBjb21taXR0aW5nIgorInRyYWNrZWQvdW50cmFja2VkIgkiZmlsZSB3aG9zZSBjb250ZW50IGlzIHRyYWNrZWQvbm90IHRyYWNrZWQgYnkgZ2l0IgpkaWZmIC0tZ2l0IGEvZ2l0LWd1aS9wby9wbzJtc2cuc2ggYi9naXQtZ3VpL3BvL3BvMm1zZy5zaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9naXQtZ3VpL3dpbmRvd3MvZ2l0LWd1aS5zaCBiL2dpdC1ndWkvd2luZG93cy9naXQtZ3VpLnNoCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL2dpdC1pbnN0YXdlYi5zaCBiL2dpdC1pbnN0YXdlYi5zaAppbmRleCAwMWExYjA1Li5lOTNhMjM4IDEwMDc1NQotLS0gYS9naXQtaW5zdGF3ZWIuc2gKKysrIGIvZ2l0LWluc3Rhd2ViLnNoCkBAIC01ODEsNyArNTgxLDcgQEAKIAogZ2l0d2ViX2NvbmYoKSB7CiAJY2F0ID4gIiRmcWdpdGRpci9naXR3ZWIvZ2l0d2ViX2NvbmZpZy5wZXJsIiA8PEVPRgotIyEvdXNyL2Jpbi9wZXJsCisjIUBAUEVSTEBACiBvdXIgXCRwcm9qZWN0cm9vdCA9ICIkKGRpcm5hbWUgIiRmcWdpdGRpciIpIjsKIG91ciBcJGdpdF90ZW1wID0gIiRmcWdpdGRpci9naXR3ZWIvdG1wIjsKIG91ciBcJHByb2plY3RzX2xpc3QgPSBcJHByb2plY3Ryb290OwpkaWZmIC0tZ2l0IGEvZ2l0LWxvc3QtZm91bmQuc2ggYi9naXQtbG9zdC1mb3VuZC5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMGIzZThjNy4uMDAwMDAwMAotLS0gYS9naXQtbG9zdC1mb3VuZC5zaAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLSMhL2Jpbi9zaAotCi1VU0FHRT0nJwotU1VCRElSRUNUT1JZX09LPSdZZXMnCi1PUFRJT05TX1NQRUM9Ci0uIGdpdC1zaC1zZXR1cAotCi1lY2hvICJXQVJOSU5HOiAnJDAnIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgJ2dpdCBmc2NrIC0tbG9zdC1mb3VuZCciID4mMgotCi1pZiBbICIkIyIgIT0gIjAiIF0KLXRoZW4KLSAgICB1c2FnZQotZmkKLQotbGFmPSIkR0lUX0RJUi9sb3N0LWZvdW5kIgotcm0gLWZyICIkbGFmIiAmJiBta2RpciAtcCAiJGxhZi9jb21taXQiICIkbGFmL290aGVyIiB8fCBleGl0Ci0KLWdpdCBmc2NrIC0tZnVsbCAtLW5vLXJlZmxvZ3MgfAotd2hpbGUgcmVhZCBkYW5nbGluZyB0eXBlIHNoYTEKLWRvCi0JY2FzZSAiJGRhbmdsaW5nIiBpbgotCWRhbmdsaW5nKQotCQlpZiBnaXQgcmV2LXBhcnNlIC1xIC0tdmVyaWZ5ICIkc2hhMV4wIiA+L2Rldi9udWxsCi0JCXRoZW4KLQkJCWRpcj0iJGxhZi9jb21taXQiCi0JCQlnaXQgc2hvdy1icmFuY2ggIiRzaGExIgotCQllbHNlCi0JCQlkaXI9IiRsYWYvb3RoZXIiCi0JCWZpCi0JCWVjaG8gIiRzaGExIiA+IiRkaXIvJHNoYTEiCi0JCTs7Ci0JZXNhYwotZG9uZQpkaWZmIC0tZ2l0IGEvZ2l0LW1lcmdldG9vbC0tbGliLnNoIGIvZ2l0LW1lcmdldG9vbC0tbGliLnNoCmluZGV4IGZlZWU2YTQuLmM0NWEwMjAgMTAwNjQ0Ci0tLSBhL2dpdC1tZXJnZXRvb2wtLWxpYi5zaAorKysgYi9naXQtbWVyZ2V0b29sLS1saWIuc2gKQEAgLTEsNSArMSw0IEBACi0jIS9iaW4vc2gKLSMgZ2l0LW1lcmdldG9vbC0tbGliIGlzIGEgbGlicmFyeSBmb3IgY29tbW9uIG1lcmdlIHRvb2wgZnVuY3Rpb25zCisjIGdpdC1tZXJnZXRvb2wtLWxpYiBpcyBhIHNoZWxsIGxpYnJhcnkgZm9yIGNvbW1vbiBtZXJnZSB0b29sIGZ1bmN0aW9ucwogCiA6ICR7TUVSR0VfVE9PTFNfRElSPSQoZ2l0IC0tZXhlYy1wYXRoKS9tZXJnZXRvb2xzfQogCkBAIC0yNTAsNyArMjQ5LDggQEAKIAkJZWxzZQogCQkJdG9vbHM9Im9wZW5kaWZmIGtkaWZmMyB0a2RpZmYgeHhkaWZmIG1lbGQgJHRvb2xzIgogCQlmaQotCQl0b29scz0iJHRvb2xzIGd2aW1kaWZmIGRpZmZ1c2UgZWNtZXJnZSBwNG1lcmdlIGFyYXhpcyBiYzMgY29kZWNvbXBhcmUiCisJCXRvb2xzPSIkdG9vbHMgZ3ZpbWRpZmYgZGlmZnVzZSBkaWZmbWVyZ2UgZWNtZXJnZSIKKwkJdG9vbHM9IiR0b29scyBwNG1lcmdlIGFyYXhpcyBiYzMgY29kZWNvbXBhcmUiCiAJZmkKIAljYXNlICIke1ZJU1VBTDotJEVESVRPUn0iIGluCiAJKnZpbSopCkBAIC0yNjMsNyArMjYzLDcgQEAKIH0KIAogc2hvd190b29sX2hlbHAgKCkgewotCXRvb2xfb3B0PSInZ2l0ICR7VE9PTF9NT0RFfXRvb2wgLS10b29sLTx0b29sPiciCisJdG9vbF9vcHQ9IidnaXQgJHtUT09MX01PREV9dG9vbCAtLXRvb2w9PHRvb2w+JyIKIAogCXRhYj0nCScKIAlMRj0nCmRpZmYgLS1naXQgYS9naXQtcDQucHkgYi9naXQtcDQucHkKaW5kZXggMzFlNzFmZi4uY2RmYTJkZiAxMDA3NTUKLS0tIGEvZ2l0LXA0LnB5CisrKyBiL2dpdC1wNC5weQpAQCAtMzEwLDggKzMxMCw4IEBACiAjCiAjIHJldHVybiB0aGUgcmF3IHA0IHR5cGUgb2YgYSBmaWxlICh0ZXh0LCB0ZXh0K2tvLCBldGMpCiAjCi1kZWYgcDRfdHlwZShmaWxlKToKLSAgICByZXN1bHRzID0gcDRDbWRMaXN0KFsiZnN0YXQiLCAiLVQiLCAiaGVhZFR5cGUiLCBmaWxlXSkKK2RlZiBwNF90eXBlKGYpOgorICAgIHJlc3VsdHMgPSBwNENtZExpc3QoWyJmc3RhdCIsICItVCIsICJoZWFkVHlwZSIsIHdpbGRjYXJkX2VuY29kZShmKV0pCiAgICAgcmV0dXJuIHJlc3VsdHNbMF1bJ2hlYWRUeXBlJ10KIAogIwpAQCAtNzgwLDExICs3ODAsMTQgQEAKICAgICAjIGRpY3Rpb25hcnkgb2YgYWxsIGNsaWVudCBwYXJhbWV0ZXJzCiAgICAgZW50cnkgPSBzcGVjTGlzdFswXQogCisgICAgIyB0aGUgLy9jbGllbnQvIG5hbWUKKyAgICBjbGllbnRfbmFtZSA9IGVudHJ5WyJDbGllbnQiXQorCiAgICAgIyBqdXN0IHRoZSBrZXlzIHRoYXQgc3RhcnQgd2l0aCAiVmlldyIKICAgICB2aWV3X2tleXMgPSBbIGsgZm9yIGsgaW4gZW50cnkua2V5cygpIGlmIGsuc3RhcnRzd2l0aCgiVmlldyIpIF0KIAogICAgICMgaG9sZCB0aGlzIG5ldyBWaWV3Ci0gICAgdmlldyA9IFZpZXcoKQorICAgIHZpZXcgPSBWaWV3KGNsaWVudF9uYW1lKQogCiAgICAgIyBhcHBlbmQgdGhlIGxpbmVzLCBpbiBvcmRlciwgdG8gdGhlIHZpZXcKICAgICBmb3Igdmlld19udW0gaW4gcmFuZ2UobGVuKHZpZXdfa2V5cykpOgpAQCAtMTIxNyw3ICsxMjIwLDcgQEAKICAgICAgICAgICAgIGVkaXRvciA9IG9zLmVudmlyb24uZ2V0KCJQNEVESVRPUiIpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBlZGl0b3IgPSByZWFkX3BpcGUoImdpdCB2YXIgR0lUX0VESVRPUiIpLnN0cmlwKCkKLSAgICAgICAgc3lzdGVtKGVkaXRvciArICIgIiArIHRlbXBsYXRlX2ZpbGUpCisgICAgICAgIHN5c3RlbShbZWRpdG9yLCB0ZW1wbGF0ZV9maWxlXSkKIAogICAgICAgICAjIElmIHRoZSBmaWxlIHdhcyBub3Qgc2F2ZWQsIHByb21wdCB0byBzZWUgaWYgdGhpcyBwYXRjaCBzaG91bGQKICAgICAgICAgIyBiZSBza2lwcGVkLiAgQnV0IHNraXAgdGhpcyB2ZXJpZmljYXRpb24gc3RlcCBpZiBjb25maWd1cmVkIHNvLgpAQCAtMTMwOCw3ICsxMzExLDcgQEAKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgZGllKCJ1bmtub3duIG1vZGlmaWVyICVzIGZvciAlcyIgJSAobW9kaWZpZXIsIHBhdGgpKQogCi0gICAgICAgIGRpZmZjbWQgPSAiZ2l0IGZvcm1hdC1wYXRjaCAtayAtLXN0ZG91dCBcIiVzXlwiLi5cIiVzXCIiICUgKGlkLCBpZCkKKyAgICAgICAgZGlmZmNtZCA9ICJnaXQgZGlmZi10cmVlIC1wIFwiJXNcIiIgJSAoaWQpCiAgICAgICAgIHBhdGNoY21kID0gZGlmZmNtZCArICIgfCBnaXQgYXBwbHkgIgogICAgICAgICB0cnlQYXRjaENtZCA9IHBhdGNoY21kICsgIi0tY2hlY2sgLSIKICAgICAgICAgYXBwbHlQYXRjaENtZCA9IHBhdGNoY21kICsgIi0tY2hlY2sgLS1hcHBseSAtIgpAQCAtMTU1NSw4ICsxNTU4LDggQEAKICAgICAgICAgICAgIGZvciBiIGluIGJvZHk6CiAgICAgICAgICAgICAgICAgbGFiZWxUZW1wbGF0ZSArPSAiXHQiICsgYiArICJcbiIKICAgICAgICAgICAgIGxhYmVsVGVtcGxhdGUgKz0gIlZpZXc6XG4iCi0gICAgICAgICAgICBmb3IgbWFwcGluZyBpbiBjbGllbnRTcGVjLm1hcHBpbmdzOgotICAgICAgICAgICAgICAgIGxhYmVsVGVtcGxhdGUgKz0gIlx0JXNcbiIgJSBtYXBwaW5nLmRlcG90X3NpZGUucGF0aAorICAgICAgICAgICAgZm9yIGRlcG90X3NpZGUgaW4gY2xpZW50U3BlYy5tYXBwaW5nczoKKyAgICAgICAgICAgICAgICBsYWJlbFRlbXBsYXRlICs9ICJcdCVzXG4iICUgZGVwb3Rfc2lkZQogCiAgICAgICAgICAgICBpZiBzZWxmLmRyeV9ydW46CiAgICAgICAgICAgICAgICAgcHJpbnQgIldvdWxkIGNyZWF0ZSBwNCBsYWJlbCAlcyBmb3IgdGFnIiAlIG5hbWUKQEAgLTE1NjgsNyArMTU3MSw3IEBACiAKICAgICAgICAgICAgICAgICAjIFVzZSB0aGUgbGFiZWwKICAgICAgICAgICAgICAgICBwNF9zeXN0ZW0oWyJ0YWciLCAiLWwiLCBuYW1lXSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFsiJXNAJXMiICUgKG1hcHBpbmcuZGVwb3Rfc2lkZS5wYXRoLCBjaGFuZ2VsaXN0KSBmb3IgbWFwcGluZyBpbiBjbGllbnRTcGVjLm1hcHBpbmdzXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgWyIlc0AlcyIgJSAoZGVwb3Rfc2lkZSwgY2hhbmdlbGlzdCkgZm9yIGRlcG90X3NpZGUgaW4gY2xpZW50U3BlYy5tYXBwaW5nc10pCiAKICAgICAgICAgICAgICAgICBpZiB2ZXJib3NlOgogICAgICAgICAgICAgICAgICAgICBwcmludCAiY3JlYXRlZCBwNCBsYWJlbCBmb3IgdGFnICVzIiAlIG5hbWUKQEAgLTE3OTYsMTE3ICsxNzk5LDE2IEBACiAgICAgIiIiUmVwcmVzZW50IGEgcDQgdmlldyAoInA0IGhlbHAgdmlld3MiKSwgYW5kIG1hcCBmaWxlcyBpbiBhCiAgICAgICAgcmVwbyBhY2NvcmRpbmcgdG8gdGhlIHZpZXcuIiIiCiAKLSAgICBjbGFzcyBQYXRoKG9iamVjdCk6Ci0gICAgICAgICIiIkEgZGVwb3Qgb3IgY2xpZW50IHBhdGgsIHBvc3NpYmx5IGNvbnRhaW5pbmcgd2lsZGNhcmRzLgotICAgICAgICAgICBUaGUgb25seSBvbmUgc3VwcG9ydGVkIGlzIC4uLiBhdCB0aGUgZW5kLCBjdXJyZW50bHkuCi0gICAgICAgICAgIEluaXRpYWxpemUgd2l0aCB0aGUgZnVsbCBwYXRoLCB3aXRoIC8vZGVwb3Qgb3IgLy9jbGllbnQuIiIiCi0KLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIGlzX2RlcG90KToKLSAgICAgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKLSAgICAgICAgICAgIHNlbGYuaXNfZGVwb3QgPSBpc19kZXBvdAotICAgICAgICAgICAgc2VsZi5maW5kX3dpbGRjYXJkcygpCi0gICAgICAgICAgICAjIHJlbWVtYmVyIHRoZSBwcmVmaXggYml0LCB1c2VmdWwgZm9yIHJlbGF0aXZlIG1hcHBpbmdzCi0gICAgICAgICAgICBtID0gcmUubWF0Y2goIigvL1teL10rLykiLCBzZWxmLnBhdGgpCi0gICAgICAgICAgICBpZiBub3QgbToKLSAgICAgICAgICAgICAgICBkaWUoIlBhdGggJXMgZG9lcyBub3Qgc3RhcnQgd2l0aCAvL3ByZWZpeC8iICUgc2VsZi5wYXRoKQotICAgICAgICAgICAgcHJlZml4ID0gbS5ncm91cCgxKQotICAgICAgICAgICAgaWYgbm90IHNlbGYuaXNfZGVwb3Q6Ci0gICAgICAgICAgICAgICAgIyBzdHJpcCAvL2NsaWVudC8gb24gY2xpZW50IHBhdGhzCi0gICAgICAgICAgICAgICAgc2VsZi5wYXRoID0gc2VsZi5wYXRoW2xlbihwcmVmaXgpOl0KLQotICAgICAgICBkZWYgZmluZF93aWxkY2FyZHMoc2VsZik6Ci0gICAgICAgICAgICAiIiJNYWtlIHN1cmUgd2lsZGNhcmRzIGFyZSB2YWxpZCwgYW5kIHNldCB1cCBpbnRlcm5hbAotICAgICAgICAgICAgICAgdmFyaWFibGVzLiIiIgotCi0gICAgICAgICAgICBzZWxmLmVuZHNfdHJpcGxlX2RvdCA9IEZhbHNlCi0gICAgICAgICAgICAjIFRoZXJlIGFyZSB0aHJlZSB3aWxkY2FyZHMgYWxsb3dlZCBpbiBwNCB2aWV3cwotICAgICAgICAgICAgIyAoc2VlICJwNCBoZWxwIHZpZXdzIikuICBUaGlzIGNvZGUga25vd3MgaG93IHRvCi0gICAgICAgICAgICAjIGhhbmRsZSAiLi4uIiAob25seSBhdCB0aGUgZW5kKSwgYnV0IGNhbm5vdCBkZWFsIHdpdGgKLSAgICAgICAgICAgICMgIiUlbiIgb3IgIioiLiAgT25seSBjaGVjayB0aGUgZGVwb3Rfc2lkZSwgYXMgcDQgc2hvdWxkCi0gICAgICAgICAgICAjIHZhbGlkYXRlIHRoYXQgdGhlIGNsaWVudF9zaWRlIG1hdGNoZXMgdG9vLgotICAgICAgICAgICAgaWYgcmUuc2VhcmNoKHInJSVbMS05XScsIHNlbGYucGF0aCk6Ci0gICAgICAgICAgICAgICAgZGllKCJDYW4ndCBoYW5kbGUgJSVuIHdpbGRjYXJkcyBpbiB2aWV3OiAlcyIgJSBzZWxmLnBhdGgpCi0gICAgICAgICAgICBpZiBzZWxmLnBhdGguZmluZCgiKiIpID49IDA6Ci0gICAgICAgICAgICAgICAgZGllKCJDYW4ndCBoYW5kbGUgKiB3aWxkY2FyZHMgaW4gdmlldzogJXMiICUgc2VsZi5wYXRoKQotICAgICAgICAgICAgdHJpcGxlX2RvdF9pbmRleCA9IHNlbGYucGF0aC5maW5kKCIuLi4iKQotICAgICAgICAgICAgaWYgdHJpcGxlX2RvdF9pbmRleCA+PSAwOgotICAgICAgICAgICAgICAgIGlmIHRyaXBsZV9kb3RfaW5kZXggIT0gbGVuKHNlbGYucGF0aCkgLSAzOgotICAgICAgICAgICAgICAgICAgICBkaWUoIkNhbiBoYW5kbGUgb25seSBzaW5nbGUgLi4uIHdpbGRjYXJkLCBhdCBlbmQ6ICVzIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBhdGgpCi0gICAgICAgICAgICAgICAgc2VsZi5lbmRzX3RyaXBsZV9kb3QgPSBUcnVlCi0KLSAgICAgICAgZGVmIGVuc3VyZV9jb21wYXRpYmxlKHNlbGYsIG90aGVyX3BhdGgpOgotICAgICAgICAgICAgIiIiTWFrZSBzdXJlIHRoZSB3aWxkY2FyZHMgYWdyZWUuIiIiCi0gICAgICAgICAgICBpZiBzZWxmLmVuZHNfdHJpcGxlX2RvdCAhPSBvdGhlcl9wYXRoLmVuZHNfdHJpcGxlX2RvdDoKLSAgICAgICAgICAgICAgICAgZGllKCJCb3RoIHBhdGhzIG11c3QgZW5kIHdpdGggLi4uIGlmIGVpdGhlciBkb2VzO1xuIiArCi0gICAgICAgICAgICAgICAgICAgICAicGF0aHM6ICVzICVzIiAlIChzZWxmLnBhdGgsIG90aGVyX3BhdGgucGF0aCkpCi0KLSAgICAgICAgZGVmIG1hdGNoX3dpbGRjYXJkcyhzZWxmLCB0ZXN0X3BhdGgpOgotICAgICAgICAgICAgIiIiU2VlIGlmIHRoaXMgdGVzdF9wYXRoIG1hdGNoZXMgdXMsIGFuZCBmaWxsIGluIHRoZSB2YWx1ZQotICAgICAgICAgICAgICAgb2YgdGhlIHdpbGRjYXJkcyBpZiBzby4gIFJldHVybnMgYSB0dXBsZSBvZgotICAgICAgICAgICAgICAgKFRydWV8RmFsc2UsIHdpbGRjYXJkc1tdKS4gIEZvciBub3csIG9ubHkgdGhlIC4uLiBhdCBlbmQKLSAgICAgICAgICAgICAgIGlzIHN1cHBvcnRlZCwgc28gYXQgbW9zdCBvbmUgd2lsZGNhcmQuIiIiCi0gICAgICAgICAgICBpZiBzZWxmLmVuZHNfdHJpcGxlX2RvdDoKLSAgICAgICAgICAgICAgICBkb3RsZXNzID0gc2VsZi5wYXRoWzotM10KLSAgICAgICAgICAgICAgICBpZiB0ZXN0X3BhdGguc3RhcnRzd2l0aChkb3RsZXNzKToKLSAgICAgICAgICAgICAgICAgICAgd2lsZGNhcmQgPSB0ZXN0X3BhdGhbbGVuKGRvdGxlc3MpOl0KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChUcnVlLCBbIHdpbGRjYXJkIF0pCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIHRlc3RfcGF0aCA9PSBzZWxmLnBhdGg6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAoVHJ1ZSwgW10pCi0gICAgICAgICAgICByZXR1cm4gKEZhbHNlLCBbXSkKLQotICAgICAgICBkZWYgbWF0Y2goc2VsZiwgdGVzdF9wYXRoKToKLSAgICAgICAgICAgICIiIkp1c3QgcmV0dXJuIGlmIGl0IG1hdGNoZXM7IGRvbid0IGJvdGhlciB3aXRoIHRoZSB3aWxkY2FyZHMuIiIiCi0gICAgICAgICAgICBiLCBfID0gc2VsZi5tYXRjaF93aWxkY2FyZHModGVzdF9wYXRoKQotICAgICAgICAgICAgcmV0dXJuIGIKLQotICAgICAgICBkZWYgZmlsbF9pbl93aWxkY2FyZHMoc2VsZiwgd2lsZGNhcmRzKToKLSAgICAgICAgICAgICIiIlJldHVybiB0aGUgcmVsYXRpdmUgcGF0aCwgd2l0aCB0aGUgd2lsZGNhcmRzIGZpbGxlZCBpbgotICAgICAgICAgICAgICAgaWYgdGhlcmUgYXJlIGFueS4iIiIKLSAgICAgICAgICAgIGlmIHNlbGYuZW5kc190cmlwbGVfZG90OgotICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnBhdGhbOi0zXSArIHdpbGRjYXJkc1swXQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXRoCi0KLSAgICBjbGFzcyBNYXBwaW5nKG9iamVjdCk6Ci0gICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkZXBvdF9zaWRlLCBjbGllbnRfc2lkZSwgb3ZlcmxheSwgZXhjbHVkZSk6Ci0gICAgICAgICAgICAjIGRlcG90X3NpZGUgaXMgd2l0aG91dCB0aGUgdHJhaWxpbmcgLy4uLiBpZiBpdCBoYWQgb25lCi0gICAgICAgICAgICBzZWxmLmRlcG90X3NpZGUgPSBWaWV3LlBhdGgoZGVwb3Rfc2lkZSwgaXNfZGVwb3Q9VHJ1ZSkKLSAgICAgICAgICAgIHNlbGYuY2xpZW50X3NpZGUgPSBWaWV3LlBhdGgoY2xpZW50X3NpZGUsIGlzX2RlcG90PUZhbHNlKQotICAgICAgICAgICAgc2VsZi5vdmVybGF5ID0gb3ZlcmxheSAgIyBzdGFydGVkIHdpdGggIisiCi0gICAgICAgICAgICBzZWxmLmV4Y2x1ZGUgPSBleGNsdWRlICAjIHN0YXJ0ZWQgd2l0aCAiLSIKLSAgICAgICAgICAgIGFzc2VydCBub3QgKHNlbGYub3ZlcmxheSBhbmQgc2VsZi5leGNsdWRlKQotICAgICAgICAgICAgc2VsZi5kZXBvdF9zaWRlLmVuc3VyZV9jb21wYXRpYmxlKHNlbGYuY2xpZW50X3NpZGUpCi0KLSAgICAgICAgZGVmIF9fc3RyX18oc2VsZik6Ci0gICAgICAgICAgICBjID0gIiAiCi0gICAgICAgICAgICBpZiBzZWxmLm92ZXJsYXk6Ci0gICAgICAgICAgICAgICAgYyA9ICIrIgotICAgICAgICAgICAgaWYgc2VsZi5leGNsdWRlOgotICAgICAgICAgICAgICAgIGMgPSAiLSIKLSAgICAgICAgICAgIHJldHVybiAiVmlldy5NYXBwaW5nOiAlcyVzIC0+ICVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAoYywgc2VsZi5kZXBvdF9zaWRlLnBhdGgsIHNlbGYuY2xpZW50X3NpZGUucGF0aCkKLQotICAgICAgICBkZWYgbWFwX2RlcG90X3RvX2NsaWVudChzZWxmLCBkZXBvdF9wYXRoKToKLSAgICAgICAgICAgICIiIkNhbGN1bGF0ZSB0aGUgY2xpZW50IHBhdGggaWYgdXNpbmcgdGhpcyBtYXBwaW5nIG9uIHRoZQotICAgICAgICAgICAgICAgZ2l2ZW4gZGVwb3QgcGF0aDsgZG9lcyBub3QgY29uc2lkZXIgdGhlIGVmZmVjdCBvZiBvdGhlcgotICAgICAgICAgICAgICAgbWFwcGluZ3MgaW4gYSB2aWV3LiAgRXZlbiBleGNsdWRlZCBtYXBwaW5ncyBhcmUgcmV0dXJuZWQuIiIiCi0gICAgICAgICAgICBtYXRjaGVzLCB3aWxkY2FyZHMgPSBzZWxmLmRlcG90X3NpZGUubWF0Y2hfd2lsZGNhcmRzKGRlcG90X3BhdGgpCi0gICAgICAgICAgICBpZiBub3QgbWF0Y2hlczoKLSAgICAgICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgICAgIGNsaWVudF9wYXRoID0gc2VsZi5jbGllbnRfc2lkZS5maWxsX2luX3dpbGRjYXJkcyh3aWxkY2FyZHMpCi0gICAgICAgICAgICByZXR1cm4gY2xpZW50X3BhdGgKLQotICAgICMKLSAgICAjIFZpZXcgbWV0aG9kcwotICAgICMKLSAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNsaWVudF9uYW1lKToKICAgICAgICAgc2VsZi5tYXBwaW5ncyA9IFtdCisgICAgICAgIHNlbGYuY2xpZW50X3ByZWZpeCA9ICIvLyVzLyIgJSBjbGllbnRfbmFtZQorICAgICAgICAjIGNhY2hlIHJlc3VsdHMgb2YgInA0IHdoZXJlIiB0byBsb29rdXAgY2xpZW50IGZpbGUgbG9jYXRpb25zCisgICAgICAgIHNlbGYuY2xpZW50X3NwZWNfcGF0aF9jYWNoZSA9IHt9CiAKICAgICBkZWYgYXBwZW5kKHNlbGYsIHZpZXdfbGluZSk6CiAgICAgICAgICIiIlBhcnNlIGEgdmlldyBsaW5lLCBzcGxpdHRpbmcgaXQgaW50byBkZXBvdCBhbmQgY2xpZW50Ci0gICAgICAgICAgIHNpZGVzLiAgQXBwZW5kIHRvIHNlbGYubWFwcGluZ3MsIHByZXNlcnZpbmcgb3JkZXIuIiIiCisgICAgICAgICAgIHNpZGVzLiAgQXBwZW5kIHRvIHNlbGYubWFwcGluZ3MsIHByZXNlcnZpbmcgb3JkZXIuICBUaGlzCisgICAgICAgICAgIGlzIG9ubHkgbmVlZGVkIGZvciB0YWcgY3JlYXRpb24uIiIiCiAKICAgICAgICAgIyBTcGxpdCB0aGUgdmlldyBsaW5lIGludG8gZXhhY3RseSB0d28gd29yZHMuICBQNCBlbmZvcmNlcwogICAgICAgICAjIHN0cnVjdHVyZSBvbiB0aGVzZSBsaW5lcyB0aGF0IHNpbXBsaWZpZXMgdGhpcyBxdWl0ZSBhIGJpdC4KQEAgLTE5MzQsNzYgKzE4MzYsNjIgQEAKICAgICAgICAgICAgIGRlcG90X3NpZGUgPSB2aWV3X2xpbmVbMDpzcGFjZV9pbmRleF0KICAgICAgICAgICAgIHJoc19pbmRleCA9IHNwYWNlX2luZGV4ICsgMQogCi0gICAgICAgIGlmIHZpZXdfbGluZVtyaHNfaW5kZXhdID09ICciJzoKLSAgICAgICAgICAgICMgU2Vjb25kIHdvcmQgaXMgZG91YmxlIHF1b3RlZC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBhCi0gICAgICAgICAgICAjIGRvdWJsZSBxdW90ZSBhdCB0aGUgZW5kIHRvby4KLSAgICAgICAgICAgIGlmIG5vdCB2aWV3X2xpbmUuZW5kc3dpdGgoJyInKToKLSAgICAgICAgICAgICAgICBkaWUoIlZpZXcgbGluZSB3aXRoIHJocyBxdW90ZSBzaG91bGQgZW5kIHdpdGggb25lOiAlcyIgJQotICAgICAgICAgICAgICAgICAgICB2aWV3X2xpbmUpCi0gICAgICAgICAgICAjIHNraXAgdGhlIHF1b3RlcwotICAgICAgICAgICAgY2xpZW50X3NpZGUgPSB2aWV3X2xpbmVbcmhzX2luZGV4KzE6LTFdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBjbGllbnRfc2lkZSA9IHZpZXdfbGluZVtyaHNfaW5kZXg6XQotCiAgICAgICAgICMgcHJlZml4ICsgbWVhbnMgb3ZlcmxheSBvbiBwcmV2aW91cyBtYXBwaW5nCi0gICAgICAgIG92ZXJsYXkgPSBGYWxzZQogICAgICAgICBpZiBkZXBvdF9zaWRlLnN0YXJ0c3dpdGgoIisiKToKLSAgICAgICAgICAgIG92ZXJsYXkgPSBUcnVlCiAgICAgICAgICAgICBkZXBvdF9zaWRlID0gZGVwb3Rfc2lkZVsxOl0KIAotICAgICAgICAjIHByZWZpeCAtIG1lYW5zIGV4Y2x1ZGUgdGhpcyBwYXRoCisgICAgICAgICMgcHJlZml4IC0gbWVhbnMgZXhjbHVkZSB0aGlzIHBhdGgsIGxlYXZlIG91dCBvZiBtYXBwaW5ncwogICAgICAgICBleGNsdWRlID0gRmFsc2UKICAgICAgICAgaWYgZGVwb3Rfc2lkZS5zdGFydHN3aXRoKCItIik6CiAgICAgICAgICAgICBleGNsdWRlID0gVHJ1ZQogICAgICAgICAgICAgZGVwb3Rfc2lkZSA9IGRlcG90X3NpZGVbMTpdCiAKLSAgICAgICAgbSA9IFZpZXcuTWFwcGluZyhkZXBvdF9zaWRlLCBjbGllbnRfc2lkZSwgb3ZlcmxheSwgZXhjbHVkZSkKLSAgICAgICAgc2VsZi5tYXBwaW5ncy5hcHBlbmQobSkKKyAgICAgICAgaWYgbm90IGV4Y2x1ZGU6CisgICAgICAgICAgICBzZWxmLm1hcHBpbmdzLmFwcGVuZChkZXBvdF9zaWRlKQorCisgICAgZGVmIGNvbnZlcnRfY2xpZW50X3BhdGgoc2VsZiwgY2xpZW50RmlsZSk6CisgICAgICAgICMgY2hvcCBvZmYgLy9jbGllbnQvIHBhcnQgdG8gbWFrZSBpdCByZWxhdGl2ZQorICAgICAgICBpZiBub3QgY2xpZW50RmlsZS5zdGFydHN3aXRoKHNlbGYuY2xpZW50X3ByZWZpeCk6CisgICAgICAgICAgICBkaWUoIk5vIHByZWZpeCAnJXMnIG9uIGNsaWVudEZpbGUgJyVzJyIgJQorICAgICAgICAgICAgICAgIChzZWxmLmNsaWVudF9wcmVmaXgsIGNsaWVudEZpbGUpKQorICAgICAgICByZXR1cm4gY2xpZW50RmlsZVtsZW4oc2VsZi5jbGllbnRfcHJlZml4KTpdCisKKyAgICBkZWYgdXBkYXRlX2NsaWVudF9zcGVjX3BhdGhfY2FjaGUoc2VsZiwgZmlsZXMpOgorICAgICAgICAiIiIgQ2FjaGluZyBmaWxlIHBhdGhzIGJ5ICJwNCB3aGVyZSIgYmF0Y2ggcXVlcnkgIiIiCisKKyAgICAgICAgIyBMaXN0IGRlcG90IGZpbGUgcGF0aHMgZXhjbHVkZSB0aGF0IGFscmVhZHkgY2FjaGVkCisgICAgICAgIGZpbGVBcmdzID0gW2ZbJ3BhdGgnXSBmb3IgZiBpbiBmaWxlcyBpZiBmWydwYXRoJ10gbm90IGluIHNlbGYuY2xpZW50X3NwZWNfcGF0aF9jYWNoZV0KKworICAgICAgICBpZiBsZW4oZmlsZUFyZ3MpID09IDA6CisgICAgICAgICAgICByZXR1cm4gICMgQWxsIGZpbGVzIGluIGNhY2hlCisKKyAgICAgICAgd2hlcmVfcmVzdWx0ID0gcDRDbWRMaXN0KFsiLXgiLCAiLSIsICJ3aGVyZSJdLCBzdGRpbj1maWxlQXJncykKKyAgICAgICAgZm9yIHJlcyBpbiB3aGVyZV9yZXN1bHQ6CisgICAgICAgICAgICBpZiAiY29kZSIgaW4gcmVzIGFuZCByZXNbImNvZGUiXSA9PSAiZXJyb3IiOgorICAgICAgICAgICAgICAgICMgYXNzdW1lIGVycm9yIGlzICIuLi4gZmlsZShzKSBub3QgaW4gY2xpZW50IHZpZXciCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmICJjbGllbnRGaWxlIiBub3QgaW4gcmVzOgorICAgICAgICAgICAgICAgIGRpZSgiTm8gY2xpZW50RmlsZSBpbiAncDQgd2hlcmUnIG91dHB1dCIpCisgICAgICAgICAgICBpZiAidW5tYXAiIGluIHJlczoKKyAgICAgICAgICAgICAgICAjIGl0IHdpbGwgbGlzdCBhbGwgb2YgdGhlbSwgYnV0IG9ubHkgb25lIG5vdCB1bm1hcC1wZWQKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgc2VsZi5jbGllbnRfc3BlY19wYXRoX2NhY2hlW3Jlc1snZGVwb3RGaWxlJ11dID0gc2VsZi5jb252ZXJ0X2NsaWVudF9wYXRoKHJlc1siY2xpZW50RmlsZSJdKQorCisgICAgICAgICMgbm90IGZvdW5kIGZpbGVzIG9yIHVubWFwIGZpbGVzIHNldCB0byAiIgorICAgICAgICBmb3IgZGVwb3RGaWxlIGluIGZpbGVBcmdzOgorICAgICAgICAgICAgaWYgZGVwb3RGaWxlIG5vdCBpbiBzZWxmLmNsaWVudF9zcGVjX3BhdGhfY2FjaGU6CisgICAgICAgICAgICAgICAgc2VsZi5jbGllbnRfc3BlY19wYXRoX2NhY2hlW2RlcG90RmlsZV0gPSAiIgogCiAgICAgZGVmIG1hcF9pbl9jbGllbnQoc2VsZiwgZGVwb3RfcGF0aCk6CiAgICAgICAgICIiIlJldHVybiB0aGUgcmVsYXRpdmUgbG9jYXRpb24gaW4gdGhlIGNsaWVudCB3aGVyZSB0aGlzCiAgICAgICAgICAgIGRlcG90IGZpbGUgc2hvdWxkIGxpdmUuICBSZXR1cm5zICIiIGlmIHRoZSBmaWxlIHNob3VsZAogICAgICAgICAgICBub3QgYmUgbWFwcGVkIGluIHRoZSBjbGllbnQuIiIiCiAKLSAgICAgICAgcGF0aHNfZmlsbGVkID0gW10KLSAgICAgICAgY2xpZW50X3BhdGggPSAiIgorICAgICAgICBpZiBkZXBvdF9wYXRoIGluIHNlbGYuY2xpZW50X3NwZWNfcGF0aF9jYWNoZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmNsaWVudF9zcGVjX3BhdGhfY2FjaGVbZGVwb3RfcGF0aF0KIAotICAgICAgICAjIGxvb2sgYXQgbGF0ZXIgZW50cmllcyBmaXJzdAotICAgICAgICBmb3IgbSBpbiBzZWxmLm1hcHBpbmdzWzo6LTFdOgotCi0gICAgICAgICAgICAjIHNlZSB3aGVyZSB3aWxsIHRoaXMgcGF0aCBlbmQgdXAgaW4gdGhlIGNsaWVudAotICAgICAgICAgICAgcCA9IG0ubWFwX2RlcG90X3RvX2NsaWVudChkZXBvdF9wYXRoKQotCi0gICAgICAgICAgICBpZiBwID09ICIiOgotICAgICAgICAgICAgICAgICMgRGVwb3QgcGF0aCBkb2VzIG5vdCBiZWxvbmcgaW4gY2xpZW50LiAgTXVzdCByZW1lbWJlcgotICAgICAgICAgICAgICAgICMgdGhpcywgYXMgcHJldmlvdXMgaXRlbXMgc2hvdWxkIG5vdCBjYXVzZSBmaWxlcyB0bwotICAgICAgICAgICAgICAgICMgZXhpc3QgaW4gdGhpcyBwYXRoIGVpdGhlci4gIFJlbWVtYmVyIHRoYXQgdGhlIGxpc3QgaXMKLSAgICAgICAgICAgICAgICAjIGJlaW5nIHdhbGtlZCBmcm9tIHRoZSBlbmQsIHdoaWNoIGhhcyBoaWdoZXIgcHJlY2VkZW5jZS4KLSAgICAgICAgICAgICAgICAjIE92ZXJsYXAgbWFwcGluZ3MgZG8gbm90IGV4Y2x1ZGUgcHJldmlvdXMgbWFwcGluZ3MuCi0gICAgICAgICAgICAgICAgaWYgbm90IG0ub3ZlcmxheToKLSAgICAgICAgICAgICAgICAgICAgcGF0aHNfZmlsbGVkLmFwcGVuZChtLmNsaWVudF9zaWRlKQotCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgVGhpcyBtYXBwaW5nIG1hdGNoZWQ7IG5vIG5lZWQgdG8gc2VhcmNoIGFueSBmdXJ0aGVyLgotICAgICAgICAgICAgICAgICMgQnV0LCB0aGUgbWFwcGluZyBjb3VsZCBiZSByZWplY3RlZCBpZiB0aGUgY2xpZW50IHBhdGgKLSAgICAgICAgICAgICAgICAjIGhhcyBhbHJlYWR5IGJlZW4gY2xhaW1lZCBieSBhbiBlYXJsaWVyIG1hcHBpbmcgKGkuZS4KLSAgICAgICAgICAgICAgICAjIG9uZSBsYXRlciBpbiB0aGUgbGlzdCwgd2hpY2ggd2UgYXJlIHdhbGtpbmcgYmFja3dhcmRzKS4KLSAgICAgICAgICAgICAgICBhbHJlYWR5X21hcHBlZF9pbl9jbGllbnQgPSBGYWxzZQotICAgICAgICAgICAgICAgIGZvciBmIGluIHBhdGhzX2ZpbGxlZDoKLSAgICAgICAgICAgICAgICAgICAgIyB0aGlzIGlzIFZpZXcuUGF0aC5tYXRjaAotICAgICAgICAgICAgICAgICAgICBpZiBmLm1hdGNoKHApOgotICAgICAgICAgICAgICAgICAgICAgICAgYWxyZWFkeV9tYXBwZWRfaW5fY2xpZW50ID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBpZiBub3QgYWxyZWFkeV9tYXBwZWRfaW5fY2xpZW50OgotICAgICAgICAgICAgICAgICAgICAjIEluY2x1ZGUgdGhpcyBmaWxlLCB1bmxlc3MgaXQgaXMgZnJvbSBhIGxpbmUgdGhhdAotICAgICAgICAgICAgICAgICAgICAjIGV4cGxpY2l0bHkgc2FpZCB0byBleGNsdWRlIGl0LgotICAgICAgICAgICAgICAgICAgICBpZiBub3QgbS5leGNsdWRlOgotICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X3BhdGggPSBwCi0KLSAgICAgICAgICAgICAgICAjIGEgbWF0Y2gsIGV2ZW4gaWYgcmVqZWN0ZWQsIGFsd2F5cyBzdG9wcyB0aGUgc2VhcmNoCi0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICByZXR1cm4gY2xpZW50X3BhdGgKKyAgICAgICAgZGllKCAiRXJyb3I6ICVzIGlzIG5vdCBmb3VuZCBpbiBjbGllbnQgc3BlYyBwYXRoIiAlIGRlcG90X3BhdGggKQorICAgICAgICByZXR1cm4gIiIKIAogY2xhc3MgUDRTeW5jKENvbW1hbmQsIFA0VXNlck1hcCk6CiAgICAgZGVsZXRlX2FjdGlvbnMgPSAoICJkZWxldGUiLCAibW92ZS9kZWxldGUiLCAicHVyZ2UiICkKQEAgLTIxMzAsNiArMjAxOCwxMCBAQAogICAgICAgICAiIiJMb29rIGF0IGVhY2ggZGVwb3RGaWxlIGluIHRoZSBjb21taXQgdG8gZmlndXJlIG91dCB0byB3aGF0CiAgICAgICAgICAgIGJyYW5jaCBpdCBiZWxvbmdzLiIiIgogCisgICAgICAgIGlmIHNlbGYuY2xpZW50U3BlY0RpcnM6CisgICAgICAgICAgICBmaWxlcyA9IHNlbGYuZXh0cmFjdEZpbGVzRnJvbUNvbW1pdChjb21taXQpCisgICAgICAgICAgICBzZWxmLmNsaWVudFNwZWNEaXJzLnVwZGF0ZV9jbGllbnRfc3BlY19wYXRoX2NhY2hlKGZpbGVzKQorCiAgICAgICAgIGJyYW5jaGVzID0ge30KICAgICAgICAgZm51bSA9IDAKICAgICAgICAgd2hpbGUgY29tbWl0Lmhhc19rZXkoImRlcG90RmlsZSVzIiAlIGZudW0pOgpAQCAtMjE4MCw5ICsyMDcyLDIwIEBACiAgICAgICAgICAgICBnaXRfbW9kZSA9ICIxMDA3NTUiCiAgICAgICAgIGlmIHR5cGVfYmFzZSA9PSAic3ltbGluayI6CiAgICAgICAgICAgICBnaXRfbW9kZSA9ICIxMjAwMDAiCi0gICAgICAgICAgICAjIHA0IHByaW50IG9uIGEgc3ltbGluayBjb250YWlucyAidGFyZ2V0XG4iOyByZW1vdmUgdGhlIG5ld2xpbmUKKyAgICAgICAgICAgICMgcDQgcHJpbnQgb24gYSBzeW1saW5rIHNvbWV0aW1lcyBjb250YWlucyAidGFyZ2V0XG4iOworICAgICAgICAgICAgIyBpZiBpdCBkb2VzLCByZW1vdmUgdGhlIG5ld2xpbmUKICAgICAgICAgICAgIGRhdGEgPSAnJy5qb2luKGNvbnRlbnRzKQotICAgICAgICAgICAgY29udGVudHMgPSBbZGF0YVs6LTFdXQorICAgICAgICAgICAgaWYgbm90IGRhdGE6CisgICAgICAgICAgICAgICAgIyBTb21lIHZlcnNpb24gb2YgcDQgYWxsb3dlZCBjcmVhdGluZyBhIHN5bWxpbmsgdGhhdCBwb2ludGVkCisgICAgICAgICAgICAgICAgIyB0byBub3RoaW5nLiAgVGhpcyBjYXVzZXMgcDQgZXJyb3JzIHdoZW4gY2hlY2tpbmcgb3V0IHN1Y2gKKyAgICAgICAgICAgICAgICAjIGEgY2hhbmdlLCBhbmQgZXJyb3JzIGhlcmUgdG9vLiAgV29yayBhcm91bmQgaXQgYnkgaWdub3JpbmcKKyAgICAgICAgICAgICAgICAjIHRoZSBiYWQgc3ltbGluazsgaG9wZWZ1bGx5IGEgZnV0dXJlIGNoYW5nZSBmaXhlcyBpdC4KKyAgICAgICAgICAgICAgICBwcmludCAiXG5JZ25vcmluZyBlbXB0eSBzeW1saW5rIGluICVzIiAlIGZpbGVbJ2RlcG90RmlsZSddCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBlbGlmIGRhdGFbLTFdID09ICdcbic6CisgICAgICAgICAgICAgICAgY29udGVudHMgPSBbZGF0YVs6LTFdXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBjb250ZW50cyA9IFtkYXRhXQogCiAgICAgICAgIGlmIHR5cGVfYmFzZSA9PSAidXRmMTYiOgogICAgICAgICAgICAgIyBwNCBkZWxpdmVycyBkaWZmZXJlbnQgdGV4dCBpbiB0aGUgcHl0aG9uIG91dHB1dCB0byAtRwpAQCAtMjM3OSw2ICsyMjgyLDkgQEAKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiSWdub3JpbmcgZmlsZSBvdXRzaWRlIG9mIHByZWZpeDogJXNcbiIgJSBmWydwYXRoJ10pCiAKKyAgICAgICAgaWYgc2VsZi5jbGllbnRTcGVjRGlyczoKKyAgICAgICAgICAgIHNlbGYuY2xpZW50U3BlY0RpcnMudXBkYXRlX2NsaWVudF9zcGVjX3BhdGhfY2FjaGUoZmlsZXMpCisKICAgICAgICAgc2VsZi5naXRTdHJlYW0ud3JpdGUoImNvbW1pdCAlc1xuIiAlIGJyYW5jaCkKICMgICAgICAgIGdpdFN0cmVhbS53cml0ZSgibWFyayA6JXNcbiIgJSBkZXRhaWxzWyJjaGFuZ2UiXSkKICAgICAgICAgc2VsZi5jb21taXR0ZWRDaGFuZ2VzLmFkZChpbnQoZGV0YWlsc1siY2hhbmdlIl0pKQpkaWZmIC0tZ2l0IGEvZ2l0LXBhcnNlLXJlbW90ZS5zaCBiL2dpdC1wYXJzZS1yZW1vdGUuc2gKaW5kZXggMGU4N2UwOS4uNTVmZThkNSAxMDA2NDQKLS0tIGEvZ2l0LXBhcnNlLXJlbW90ZS5zaAorKysgYi9naXQtcGFyc2UtcmVtb3RlLnNoCkBAIC0xLDQgKzEsNiBAQAotIyEvYmluL3NoCisjIFRoaXMgaXMgYSBzaGVsbCBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSB0aGUgcmVtb3RlIHJlcG9zaXRvcnkgYW5kCisjIHVwc3RyZWFtIGJyYW5jaCB0aGF0IHNob3VsZCBiZSBwdWxsZWQgYnkgImdpdCBwdWxsIiBmcm9tIHRoZSBjdXJyZW50CisjIGJyYW5jaC4KIAogIyBnaXQtbHMtcmVtb3RlIGNvdWxkIGJlIGNhbGxlZCBmcm9tIG91dHNpZGUgYSBnaXQgbWFuYWdlZCByZXBvc2l0b3J5OwogIyB0aGlzIHdvdWxkIGZhaWwgaW4gdGhhdCBjYXNlIGFuZCB3b3VsZCBpc3N1ZSBhbiBlcnJvciBtZXNzYWdlLgpkaWZmIC0tZ2l0IGEvZ2l0LXB1bGwuc2ggYi9naXQtcHVsbC5zaAppbmRleCBmMGRmNDFjLi4wYTVhYTJjIDEwMDc1NQotLS0gYS9naXQtcHVsbC5zaAorKysgYi9naXQtcHVsbC5zaApAQCAtNCw3ICs0LDcgQEAKICMKICMgRmV0Y2ggb25lIG9yIG1vcmUgcmVtb3RlIHJlZnMgYW5kIG1lcmdlIGl0L3RoZW0gaW50byB0aGUgY3VycmVudCBIRUFELgogCi1VU0FHRT0nWy1uIHwgLS1uby1zdGF0XSBbLS1bbm8tXWNvbW1pdF0gWy0tW25vLV1zcXVhc2hdIFstLVtuby1dZmZdIFstcyBzdHJhdGVneV0uLi4gWzxmZXRjaC1vcHRpb25zPl0gPHJlcG8+IDxoZWFkPi4uLicKK1VTQUdFPSdbLW4gfCAtLW5vLXN0YXRdIFstLVtuby1dY29tbWl0XSBbLS1bbm8tXXNxdWFzaF0gWy0tW25vLV1mZl0gWy0tW25vLV1yZWJhc2V8LS1yZWJhc2U9cHJlc2VydmVdIFstcyBzdHJhdGVneV0uLi4gWzxmZXRjaC1vcHRpb25zPl0gPHJlcG8+IDxoZWFkPi4uLicKIExPTkdfVVNBR0U9J0ZldGNoIG9uZSBvciBtb3JlIHJlbW90ZSByZWZzIGFuZCBpbnRlZ3JhdGUgaXQvdGhlbSB3aXRoIHRoZSBjdXJyZW50IEhFQUQuJwogU1VCRElSRUNUT1JZX09LPVllcwogT1BUSU9OU19TUEVDPQpAQCAtMzgsMTUgKzM4LDE5IEBACiB0ZXN0IC16ICIkKGdpdCBscy1maWxlcyAtdSkiIHx8IGRpZV9jb25mbGljdAogdGVzdCAtZiAiJEdJVF9ESVIvTUVSR0VfSEVBRCIgJiYgZGllX21lcmdlCiAKK2Jvb2xfb3Jfc3RyaW5nX2NvbmZpZyAoKSB7CisJZ2l0IGNvbmZpZyAtLWJvb2wgIiQxIiAyPi9kZXYvbnVsbCB8fCBnaXQgY29uZmlnICIkMSIKK30KKwogc3RyYXRlZ3lfYXJncz0gZGlmZnN0YXQ9IG5vX2NvbW1pdD0gc3F1YXNoPSBub19mZj0gZmZfb25seT0KIGxvZ19hcmc9IHZlcmJvc2l0eT0gcHJvZ3Jlc3M9IHJlY3Vyc2Vfc3VibW9kdWxlcz0gdmVyaWZ5X3NpZ25hdHVyZXM9Ci1tZXJnZV9hcmdzPSBlZGl0PQorbWVyZ2VfYXJncz0gZWRpdD0gcmViYXNlX2FyZ3M9CiBjdXJyX2JyYW5jaD0kKGdpdCBzeW1ib2xpYy1yZWYgLXEgSEVBRCkKIGN1cnJfYnJhbmNoX3Nob3J0PSIke2N1cnJfYnJhbmNoI3JlZnMvaGVhZHMvfSIKLXJlYmFzZT0kKGdpdCBjb25maWcgLS1ib29sIGJyYW5jaC4kY3Vycl9icmFuY2hfc2hvcnQucmViYXNlKQorcmViYXNlPSQoYm9vbF9vcl9zdHJpbmdfY29uZmlnIGJyYW5jaC4kY3Vycl9icmFuY2hfc2hvcnQucmViYXNlKQogaWYgdGVzdCAteiAiJHJlYmFzZSIKIHRoZW4KLQlyZWJhc2U9JChnaXQgY29uZmlnIC0tYm9vbCBwdWxsLnJlYmFzZSkKKwlyZWJhc2U9JChib29sX29yX3N0cmluZ19jb25maWcgcHVsbC5yZWJhc2UpCiBmaQogZHJ5X3J1bj0KIHdoaWxlIDoKQEAgLTExMCw2ICsxMTQsOSBAQAogCQllc2FjCiAJCW1lcmdlX2FyZ3M9IiRtZXJnZV9hcmdzJHh4ICIKIAkJOzsKKwktcj0qfC0tcj0qfC0tcmU9KnwtLXJlYj0qfC0tcmViYT0qfC0tcmViYXM9KnwtLXJlYmFzZT0qKQorCQlyZWJhc2U9IiR7MSMqPX0iCisJCTs7CiAJLXJ8LS1yfC0tcmV8LS1yZWJ8LS1yZWJhfC0tcmViYXN8LS1yZWJhc2UpCiAJCXJlYmFzZT10cnVlCiAJCTs7CkBAIC0xNDUsMTMgKzE1MiwyNyBAQAogCXNoaWZ0CiBkb25lCiAKK2Nhc2UgIiRyZWJhc2UiIGluCitwcmVzZXJ2ZSkKKwlyZWJhc2U9dHJ1ZQorCXJlYmFzZV9hcmdzPS0tcHJlc2VydmUtbWVyZ2VzCisJOzsKK3RydWV8ZmFsc2V8JycpCisJOzsKKyopCisJZWNobyAiSW52YWxpZCB2YWx1ZSBmb3IgLS1yZWJhc2UsIHNob3VsZCBiZSB0cnVlLCBmYWxzZSwgb3IgcHJlc2VydmUiCisJdXNhZ2UKKwlleGl0IDEKKwk7OworZXNhYworCiBlcnJvcl9vbl9ub19tZXJnZV9jYW5kaWRhdGVzICgpIHsKIAlleGVjID4mMgogCWZvciBvcHQKIAlkbwogCQljYXNlICIkb3B0IiBpbgogCQktdHwtLXR8LS10YXwtLXRhZ3wtLXRhZ3MpCi0JCQllY2hvICJGZXRjaGluZyB0YWdzIG9ubHksIHlvdSBwcm9iYWJseSBtZWFudDoiCisJCQllY2hvICJJdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gcHVsbCBhbGwgdGFnczsgeW91IHByb2JhYmx5IG1lYW50OiIKIAkJCWVjaG8gIiAgZ2l0IGZldGNoIC0tdGFncyIKIAkJCWV4aXQgMQogCQllc2FjCkBAIC0xNjYsOSArMTg3LDggQEAKIAkJb3BfcHJlcD13aXRoCiAJZmkKIAotCWN1cnJfYnJhbmNoPSR7Y3Vycl9icmFuY2gjcmVmcy9oZWFkcy99Ci0JdXBzdHJlYW09JChnaXQgY29uZmlnICJicmFuY2guJGN1cnJfYnJhbmNoLm1lcmdlIikKLQlyZW1vdGU9JChnaXQgY29uZmlnICJicmFuY2guJGN1cnJfYnJhbmNoLnJlbW90ZSIpCisJdXBzdHJlYW09JChnaXQgY29uZmlnICJicmFuY2guJGN1cnJfYnJhbmNoX3Nob3J0Lm1lcmdlIikKKwlyZW1vdGU9JChnaXQgY29uZmlnICJicmFuY2guJGN1cnJfYnJhbmNoX3Nob3J0LnJlbW90ZSIpCiAKIAlpZiBbICQjIC1ndCAxIF07IHRoZW4KIAkJaWYgWyAiJHJlYmFzZSIgPSB0cnVlIF07IHRoZW4KQEAgLTIwOSwxNSArMjI5LDcgQEAKIAl0ZXN0IC1uICIkY3Vycl9icmFuY2giICYmCiAJLiBnaXQtcGFyc2UtcmVtb3RlICYmCiAJcmVtb3RlcmVmPSIkKGdldF9yZW1vdGVfbWVyZ2VfYnJhbmNoICIkQCIgMj4vZGV2L251bGwpIiAmJgotCW9sZHJlbW90ZXJlZj0iJChnaXQgcmV2LXBhcnNlIC1xIC0tdmVyaWZ5ICIkcmVtb3RlcmVmIikiICYmCi0JZm9yIHJlZmxvZyBpbiAkKGdpdCByZXYtbGlzdCAtZyAkcmVtb3RlcmVmIDI+L2Rldi9udWxsKQotCWRvCi0JCWlmIHRlc3QgIiRyZWZsb2ciID0gIiQoZ2l0IG1lcmdlLWJhc2UgJHJlZmxvZyAkY3Vycl9icmFuY2gpIgotCQl0aGVuCi0JCQlvbGRyZW1vdGVyZWY9IiRyZWZsb2ciCi0JCQlicmVhawotCQlmaQotCWRvbmUKKwlvbGRyZW1vdGVyZWY9JChnaXQgbWVyZ2UtYmFzZSAtLWZvcmstcG9pbnQgIiRyZW1vdGVyZWYiICRjdXJyX2JyYW5jaCAyPi9kZXYvbnVsbCkKIH0KIG9yaWdfaGVhZD0kKGdpdCByZXYtcGFyc2UgLXEgLS12ZXJpZnkgSEVBRCkKIGdpdCBmZXRjaCAkdmVyYm9zaXR5ICRwcm9ncmVzcyAkZHJ5X3J1biAkcmVjdXJzZV9zdWJtb2R1bGVzIC0tdXBkYXRlLWhlYWQtb2sgIiRAIiB8fCBleGl0IDEKQEAgLTI5Miw3ICszMDQsNyBAQAogbWVyZ2VfbmFtZT0kKGdpdCBmbXQtbWVyZ2UtbXNnICRsb2dfYXJnIDwiJEdJVF9ESVIvRkVUQ0hfSEVBRCIpIHx8IGV4aXQKIGNhc2UgIiRyZWJhc2UiIGluCiB0cnVlKQotCWV2YWw9ImdpdC1yZWJhc2UgJGRpZmZzdGF0ICRzdHJhdGVneV9hcmdzICRtZXJnZV9hcmdzICR2ZXJib3NpdHkiCisJZXZhbD0iZ2l0LXJlYmFzZSAkZGlmZnN0YXQgJHN0cmF0ZWd5X2FyZ3MgJG1lcmdlX2FyZ3MgJHJlYmFzZV9hcmdzICR2ZXJib3NpdHkiCiAJZXZhbD0iJGV2YWwgLS1vbnRvICRtZXJnZV9oZWFkICR7b2xkcmVtb3RlcmVmOi0kbWVyZ2VfaGVhZH0iCiAJOzsKICopCmRpZmYgLS1naXQgYS9naXQtcmViYXNlLS1hbS5zaCBiL2dpdC1yZWJhc2UtLWFtLnNoCmluZGV4IDM0ZTMxMDIuLmE0ZjY4M2EgMTAwNjQ0Ci0tLSBhL2dpdC1yZWJhc2UtLWFtLnNoCisrKyBiL2dpdC1yZWJhc2UtLWFtLnNoCkBAIC0xLDQgKzEsNSBAQAotIyEvYmluL3NoCisjIFRoaXMgc2hlbGwgc2NyaXB0IGZyYWdtZW50IGlzIHNvdXJjZWQgYnkgZ2l0LXJlYmFzZSB0byBpbXBsZW1lbnQKKyMgaXRzIGRlZmF1bHQsIGZhc3QsIHBhdGNoLWJhc2VkLCBub24taW50ZXJhY3RpdmUgbW9kZS4KICMKICMgQ29weXJpZ2h0IChjKSAyMDEwIEp1bmlvIEMgSGFtYW5vLgogIwpkaWZmIC0tZ2l0IGEvZ2l0LXJlYmFzZS0taW50ZXJhY3RpdmUuc2ggYi9naXQtcmViYXNlLS1pbnRlcmFjdGl2ZS5zaAppbmRleCAxMGJmMzE4Li40M2MxOWUwIDEwMDY0NAotLS0gYS9naXQtcmViYXNlLS1pbnRlcmFjdGl2ZS5zaAorKysgYi9naXQtcmViYXNlLS1pbnRlcmFjdGl2ZS5zaApAQCAtMSwxMSArMSw4IEBACi0jIS9iaW4vc2gKKyMgVGhpcyBzaGVsbCBzY3JpcHQgZnJhZ21lbnQgaXMgc291cmNlZCBieSBnaXQtcmViYXNlIHRvIGltcGxlbWVudAorIyBpdHMgaW50ZXJhY3RpdmUgbW9kZS4gICJnaXQgcmViYXNlIC0taW50ZXJhY3RpdmUiIG1ha2VzIGl0IGVhc3kKKyMgdG8gZml4IHVwIGNvbW1pdHMgaW4gdGhlIG1pZGRsZSBvZiBhIHNlcmllcyBhbmQgcmVhcnJhbmdlIGNvbW1pdHMuCiAjCiAjIENvcHlyaWdodCAoYykgMjAwNiBKb2hhbm5lcyBFLiBTY2hpbmRlbGluCi0KLSMgU0hPUlQgREVTQ1JJUFRJT04KLSMKLSMgVGhpcyBzY3JpcHQgbWFrZXMgaXQgZWFzeSB0byBmaXggdXAgY29tbWl0cyBpbiB0aGUgbWlkZGxlIG9mIGEgc2VyaWVzLAotIyBhbmQgcmVhcnJhbmdlIGNvbW1pdHMuCiAjCiAjIFRoZSBvcmlnaW5hbCBpZGVhIGNvbWVzIGZyb20gRXJpYyBXLiBCaWVkZXJtYW4sIGluCiAjIGh0dHA6Ly9hcnRpY2xlLmdtYW5lLm9yZy9nbWFuZS5jb21wLnZlcnNpb24tY29udHJvbC5naXQvMjI0MDcKQEAgLTcxMyw3ICs3MTAsNyBAQAogfQogCiBjb2xsYXBzZV90b2RvX2lkcygpIHsKLQl0cmFuc2Zvcm1fdG9kb19pZHMgLS1zaG9ydD03CisJdHJhbnNmb3JtX3RvZG9faWRzIC0tc2hvcnQKIH0KIAogIyBSZWFycmFuZ2UgdGhlIHRvZG8gbGlzdCB0aGF0IGhhcyBib3RoICJwaWNrIHNoYTEgbXNnIiBhbmQKZGlmZiAtLWdpdCBhL2dpdC1yZWJhc2UtLW1lcmdlLnNoIGIvZ2l0LXJlYmFzZS0tbWVyZ2Uuc2gKaW5kZXggMTZkMTgxNy4uZTdkOTZkZSAxMDA2NDQKLS0tIGEvZ2l0LXJlYmFzZS0tbWVyZ2Uuc2gKKysrIGIvZ2l0LXJlYmFzZS0tbWVyZ2Uuc2gKQEAgLTEsNCArMSw2IEBACi0jIS9iaW4vc2gKKyMgVGhpcyBzaGVsbCBzY3JpcHQgZnJhZ21lbnQgaXMgc291cmNlZCBieSBnaXQtcmViYXNlIHRvIGltcGxlbWVudAorIyBpdHMgbWVyZ2UtYmFzZWQgbm9uLWludGVyYWN0aXZlIG1vZGUgdGhhdCBjb3BlcyB3ZWxsIHdpdGggcmVuYW1lZAorIyBmaWxlcy4KICMKICMgQ29weXJpZ2h0IChjKSAyMDEwIEp1bmlvIEMgSGFtYW5vLgogIwpkaWZmIC0tZ2l0IGEvZ2l0LXJlYmFzZS5zaCBiL2dpdC1yZWJhc2Uuc2gKaW5kZXggMjI2NzUyZi4uOGEzZWZhMiAxMDA3NTUKLS0tIGEvZ2l0LXJlYmFzZS5zaAorKysgYi9naXQtcmViYXNlLnNoCkBAIC0xNCw2ICsxNCw3IEBACiB2LHZlcmJvc2UhICAgICAgICAgZGlzcGxheSBhIGRpZmZzdGF0IG9mIHdoYXQgY2hhbmdlZCB1cHN0cmVhbQogcSxxdWlldCEgICAgICAgICAgIGJlIHF1aWV0LiBpbXBsaWVzIC0tbm8tc3RhdAogYXV0b3N0YXNoISAgICAgICAgIGF1dG9tYXRpY2FsbHkgc3Rhc2gvc3Rhc2ggcG9wIGJlZm9yZSBhbmQgYWZ0ZXIKK2ZvcmstcG9pbnQgICAgICAgICB1c2UgJ21lcmdlLWJhc2UgLS1mb3JrLXBvaW50JyB0byByZWZpbmUgdXBzdHJlYW0KIG9udG89ISAgICAgICAgICAgICByZWJhc2Ugb250byBnaXZlbiBicmFuY2ggaW5zdGVhZCBvZiB1cHN0cmVhbQogcCxwcmVzZXJ2ZS1tZXJnZXMhIHRyeSB0byByZWNyZWF0ZSBtZXJnZXMgaW5zdGVhZCBvZiBpZ25vcmluZyB0aGVtCiBzLHN0cmF0ZWd5PSEgICAgICAgdXNlIHRoZSBnaXZlbiBtZXJnZSBzdHJhdGVneQpAQCAtNjYsNiArNjcsNyBAQAogZGlmZnN0YXQ9CiB0ZXN0ICIkKGdpdCBjb25maWcgLS1ib29sIHJlYmFzZS5zdGF0KSIgPSB0cnVlICYmIGRpZmZzdGF0PXQKIGF1dG9zdGFzaD0iJChnaXQgY29uZmlnIC0tYm9vbCByZWJhc2UuYXV0b3N0YXNoIHx8IGVjaG8gZmFsc2UpIgorZm9ya19wb2ludD1hdXRvCiBnaXRfYW1fb3B0PQogcmViYXNlX3Jvb3Q9CiBmb3JjZV9yZWJhc2U9CkBAIC0yNjAsNiArMjYyLDEyIEBACiAJLS1uby1hdXRvc3F1YXNoKQogCQlhdXRvc3F1YXNoPQogCQk7OworCS0tZm9yay1wb2ludCkKKwkJZm9ya19wb2ludD10CisJCTs7CisJLS1uby1mb3JrLXBvaW50KQorCQlmb3JrX3BvaW50PQorCQk7OwogCS1NfC1tKQogCQlkb19tZXJnZT10CiAJCTs7CkBAIC00MzcsNiArNDQ1LDggQEAKIAkJCWVycm9yX29uX21pc3NpbmdfZGVmYXVsdF91cHN0cmVhbSAicmViYXNlIiAicmViYXNlIiBcCiAJCQkJImFnYWluc3QiICJnaXQgcmViYXNlIDxicmFuY2g+IgogCQlmaQorCisJCXRlc3QgIiRmb3JrX3BvaW50IiA9IGF1dG8gJiYgZm9ya19wb2ludD10CiAJCTs7CiAJKikJdXBzdHJlYW1fbmFtZT0iJDEiCiAJCXNoaWZ0CkBAIC01MjIsNiArNTMyLDE2IEBACiAJOzsKIGVzYWMKIAoraWYgdGVzdCAiJGZvcmtfcG9pbnQiID0gdAordGhlbgorCW5ld191cHN0cmVhbT0kKGdpdCBtZXJnZS1iYXNlIC0tZm9yay1wb2ludCAiJHVwc3RyZWFtX25hbWUiIFwKKwkJCSIke3N3aXRjaF90bzotSEVBRH0iKQorCWlmIHRlc3QgLW4gIiRuZXdfdXBzdHJlYW0iCisJdGhlbgorCQl1cHN0cmVhbT0kbmV3X3Vwc3RyZWFtCisJZmkKK2ZpCisKIGlmIHRlc3QgIiRhdXRvc3Rhc2giID0gdHJ1ZSAmJiAhIChyZXF1aXJlX2NsZWFuX3dvcmtfdHJlZSkgMj4vZGV2L251bGwKIHRoZW4KIAlzdGFzaF9zaGExPSQoZ2l0IHN0YXNoIGNyZWF0ZSAiYXV0b3N0YXNoIikgfHwKZGlmZiAtLWdpdCBhL2dpdC1yZW1vdGUtdGVzdGdpdC5zaCBiL2dpdC1yZW1vdGUtdGVzdGdpdC5zaAppbmRleCAyMTA5MDcwLi42ZDJmMjgyIDEwMDc1NQotLS0gYS9naXQtcmVtb3RlLXRlc3RnaXQuc2gKKysrIGIvZ2l0LXJlbW90ZS10ZXN0Z2l0LnNoCkBAIC0zOCw2ICszOCw3IEBACiAJCQllY2hvICIqZXhwb3J0LW1hcmtzICRnaXRtYXJrcyIKIAkJZmkKIAkJdGVzdCAtbiAiJEdJVF9SRU1PVEVfVEVTVEdJVF9TSUdORURfVEFHUyIgJiYgZWNobyAic2lnbmVkLXRhZ3MiCisJCXRlc3QgLW4gIiRHSVRfUkVNT1RFX1RFU1RHSVRfTk9fUFJJVkFURV9VUERBVEUiICYmIGVjaG8gIm5vLXByaXZhdGUtdXBkYXRlIgogCQllY2hvCiAJCTs7CiAJbGlzdCkKZGlmZiAtLWdpdCBhL2dpdC1yZW1vdGUtdGVzdHB5LnB5IGIvZ2l0LXJlbW90ZS10ZXN0cHkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhNjc4OTkuLjAwMDAwMDAKLS0tIGEvZ2l0LXJlbW90ZS10ZXN0cHkucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMDUgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0KLSMgVGhpcyBjb21tYW5kIGlzIGEgc2ltcGxlIHJlbW90ZS1oZWxwZXIsIHRoYXQgaXMgdXNlZCBib3RoIGFzIGEKLSMgdGVzdGNhc2UgZm9yIHRoZSByZW1vdGUtaGVscGVyIGZ1bmN0aW9uYWxpdHksIGFuZCBhcyBhbiBleGFtcGxlIHRvCi0jIHNob3cgcmVtb3RlLWhlbHBlciBhdXRob3JzIG9uZSBwb3NzaWJsZSBpbXBsZW1lbnRhdGlvbi4KLSMKLSMgVGhpcyBpcyBhIEdpdCA8LT4gR2l0IGltcG9ydGVyL2V4cG9ydGVyLCB0aGF0IHNpbXBseSB1c2VzIGdpdAotIyBmYXN0LWltcG9ydCBhbmQgZ2l0IGZhc3QtZXhwb3J0IHRvIGNvbnN1bWUgYW5kIHByb2R1Y2UgZmFzdC1pbXBvcnQKLSMgc3RyZWFtcy4KLSMKLSMgVG8gdW5kZXJzdGFuZCBiZXR0ZXIgdGhlIHdheSB0aGluZ3Mgd29yaywgb25lIGNhbiBhY3RpdmF0ZSBkZWJ1ZwotIyB0cmFjZXMgYnkgc2V0dGluZyAodG8gYW55IHZhbHVlKSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzCi0jIEdJVF9UUkFOU1BPUlRfSEVMUEVSX0RFQlVHIGFuZCBHSVRfREVCVUdfVEVTVEdJVCwgdG8gc2VlIG1lc3NhZ2VzCi0jIGZyb20gdGhlIHRyYW5zcG9ydC1oZWxwZXIgc2lkZSwgb3IgZnJvbSB0aGlzIGV4YW1wbGUgcmVtb3RlLWhlbHBlci4KLQotIyBoYXNobGliIGlzIG9ubHkgYXZhaWxhYmxlIGluIHB5dGhvbiA+PSAyLjUKLXRyeToKLSAgICBpbXBvcnQgaGFzaGxpYgotICAgIF9kaWdlc3QgPSBoYXNobGliLnNoYTEKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBpbXBvcnQgc2hhCi0gICAgX2RpZ2VzdCA9IHNoYS5uZXcKLWltcG9ydCBzeXMKLWltcG9ydCBvcwotaW1wb3J0IHRpbWUKLXN5cy5wYXRoLmluc2VydCgwLCBvcy5nZXRlbnYoIkdJVFBZVEhPTkxJQiIsIi4iKSkKLQotZnJvbSBnaXRfcmVtb3RlX2hlbHBlcnMudXRpbCBpbXBvcnQgZGllLCBkZWJ1Zywgd2FybgotZnJvbSBnaXRfcmVtb3RlX2hlbHBlcnMuZ2l0LnJlcG8gaW1wb3J0IEdpdFJlcG8KLWZyb20gZ2l0X3JlbW90ZV9oZWxwZXJzLmdpdC5leHBvcnRlciBpbXBvcnQgR2l0RXhwb3J0ZXIKLWZyb20gZ2l0X3JlbW90ZV9oZWxwZXJzLmdpdC5pbXBvcnRlciBpbXBvcnQgR2l0SW1wb3J0ZXIKLWZyb20gZ2l0X3JlbW90ZV9oZWxwZXJzLmdpdC5ub25fbG9jYWwgaW1wb3J0IE5vbkxvY2FsR2l0Ci0KLWlmIHN5cy5oZXh2ZXJzaW9uIDwgMHgwMjAwMDAwMDoKLSAgICAjIHN0cmluZy5lbmNvZGUoKSBpcyB0aGUgbGltaXRlcgotICAgIHN5cy5zdGRlcnIud3JpdGUoImdpdC1yZW1vdGUtdGVzdGdpdDogcmVxdWlyZXMgUHl0aG9uIDIuMCBvciBsYXRlci5cbiIpCi0gICAgc3lzLmV4aXQoMSkKLQotCi1kZWYgZW5jb2RlX2ZpbGVwYXRoKHBhdGgpOgotICAgICIiIkVuY29kZXMgYSBVbmljb2RlIGZpbGUgcGF0aCB0byBhIGJ5dGUgc3RyaW5nLgotCi0gICAgT24gUHl0aG9uIDIgdGhpcyBpcyBhIG5vLW9wOyBvbiBQeXRob24gMyB3ZSBlbmNvZGUgdGhlIHN0cmluZyBhcwotICAgIHN1Z2dlc3RlZCBieSBbMV0gd2hpY2ggYWxsb3dzIGFuIGV4YWN0IHJvdW5kLXRyaXAgZnJvbSB0aGUgY29tbWFuZCBsaW5lCi0gICAgdG8gdGhlIGZpbGVzeXN0ZW0uCi0KLSAgICBbMV0gaHR0cDovL2RvY3MucHl0aG9uLm9yZy8zL2MtYXBpL3VuaWNvZGUuaHRtbCNmaWxlLXN5c3RlbS1lbmNvZGluZwotCi0gICAgIiIiCi0gICAgaWYgc3lzLmhleHZlcnNpb24gPCAweDAzMDAwMDAwOgotICAgICAgICByZXR1cm4gcGF0aAotICAgIHJldHVybiBwYXRoLmVuY29kZShzeXMuZ2V0ZmlsZXN5c3RlbWVuY29kaW5nKCksICdzdXJyb2dhdGVlc2NhcGUnKQotCi0KLWRlZiBnZXRfcmVwbyhhbGlhcywgdXJsKToKLSAgICAiIiJSZXR1cm5zIGEgZ2l0IHJlcG9zaXRvcnkgb2JqZWN0IGluaXRpYWxpemVkIGZvciB1c2FnZS4KLSAgICAiIiIKLQotICAgIHJlcG8gPSBHaXRSZXBvKHVybCkKLSAgICByZXBvLmdldF9yZXZzKCkKLSAgICByZXBvLmdldF9oZWFkKCkKLQotICAgIGhhc2hlciA9IF9kaWdlc3QoKQotICAgIGhhc2hlci51cGRhdGUoZW5jb2RlX2ZpbGVwYXRoKHJlcG8ucGF0aCkpCi0gICAgcmVwby5oYXNoID0gaGFzaGVyLmhleGRpZ2VzdCgpCi0KLSAgICByZXBvLmdldF9iYXNlX3BhdGggPSBsYW1iZGEgYmFzZTogb3MucGF0aC5qb2luKAotICAgICAgICBiYXNlLCAnaW5mbycsICdmYXN0LWltcG9ydCcsIHJlcG8uaGFzaCkKLQotICAgIHByZWZpeCA9ICdyZWZzL3Rlc3RnaXQvJXMvJyAlIGFsaWFzCi0gICAgZGVidWcoInByZWZpeDogJyVzJyIsIHByZWZpeCkKLQotICAgIHJlcG8uZ2l0ZGlyID0gb3MuZW52aXJvblsiR0lUX0RJUiJdCi0gICAgcmVwby5hbGlhcyA9IGFsaWFzCi0gICAgcmVwby5wcmVmaXggPSBwcmVmaXgKLQotICAgIHJlcG8uZXhwb3J0ZXIgPSBHaXRFeHBvcnRlcihyZXBvKQotICAgIHJlcG8uaW1wb3J0ZXIgPSBHaXRJbXBvcnRlcihyZXBvKQotICAgIHJlcG8ubm9uX2xvY2FsID0gTm9uTG9jYWxHaXQocmVwbykKLQotICAgIHJldHVybiByZXBvCi0KLQotZGVmIGxvY2FsX3JlcG8ocmVwbywgcGF0aCk6Ci0gICAgIiIiUmV0dXJucyBhIGdpdCByZXBvc2l0b3J5IG9iamVjdCBpbml0YWxpemVkIGZvciB1c2FnZS4KLSAgICAiIiIKLQotICAgIGxvY2FsID0gR2l0UmVwbyhwYXRoKQotCi0gICAgbG9jYWwubm9uX2xvY2FsID0gTm9uZQotICAgIGxvY2FsLmdpdGRpciA9IHJlcG8uZ2l0ZGlyCi0gICAgbG9jYWwuYWxpYXMgPSByZXBvLmFsaWFzCi0gICAgbG9jYWwucHJlZml4ID0gcmVwby5wcmVmaXgKLSAgICBsb2NhbC5oYXNoID0gcmVwby5oYXNoCi0gICAgbG9jYWwuZ2V0X2Jhc2VfcGF0aCA9IHJlcG8uZ2V0X2Jhc2VfcGF0aAotICAgIGxvY2FsLmV4cG9ydGVyID0gR2l0RXhwb3J0ZXIobG9jYWwpCi0gICAgbG9jYWwuaW1wb3J0ZXIgPSBHaXRJbXBvcnRlcihsb2NhbCkKLQotICAgIHJldHVybiBsb2NhbAotCi0KLWRlZiBkb19jYXBhYmlsaXRpZXMocmVwbywgYXJncyk6Ci0gICAgIiIiUHJpbnRzIHRoZSBzdXBwb3J0ZWQgY2FwYWJpbGl0aWVzLgotICAgICIiIgotCi0gICAgcHJpbnQoImltcG9ydCIpCi0gICAgcHJpbnQoImV4cG9ydCIpCi0gICAgcHJpbnQoInJlZnNwZWMgcmVmcy9oZWFkcy8qOiVzKiIgJSByZXBvLnByZWZpeCkKLQotICAgIGRpcm5hbWUgPSByZXBvLmdldF9iYXNlX3BhdGgocmVwby5naXRkaXIpCi0KLSAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZGlybmFtZSk6Ci0gICAgICAgIG9zLm1ha2VkaXJzKGRpcm5hbWUpCi0KLSAgICBwYXRoID0gb3MucGF0aC5qb2luKGRpcm5hbWUsICdnaXQubWFya3MnKQotCi0gICAgcHJpbnQoIipleHBvcnQtbWFya3MgJXMiICUgcGF0aCkKLSAgICBpZiBvcy5wYXRoLmV4aXN0cyhwYXRoKToKLSAgICAgICAgcHJpbnQoIippbXBvcnQtbWFya3MgJXMiICUgcGF0aCkKLQotICAgIHByaW50KCcnKSAjIGVuZCBjYXBhYmlsaXRpZXMKLQotCi1kZWYgZG9fbGlzdChyZXBvLCBhcmdzKToKLSAgICAiIiJMaXN0cyBhbGwga25vd24gcmVmZXJlbmNlcy4KLQotICAgIEJ1ZzogVGhpcyB3aWxsIGFsd2F5cyBzZXQgdGhlIHJlbW90ZSBoZWFkIHRvIG1hc3RlciBmb3Igbm9uLWxvY2FsCi0gICAgcmVwb3NpdG9yaWVzLCBzaW5jZSB3ZSBoYXZlIG5vIHdheSBvZiBkZXRlcm1pbmluZyB3aGF0IHRoZSByZW1vdGUKLSAgICBoZWFkIGlzIGF0IGNsb25lIHRpbWUuCi0gICAgIiIiCi0KLSAgICBmb3IgcmVmIGluIHJlcG8ucmV2czoKLSAgICAgICAgZGVidWcoIj8gcmVmcy9oZWFkcy8lcyIsIHJlZikKLSAgICAgICAgcHJpbnQoIj8gcmVmcy9oZWFkcy8lcyIgJSByZWYpCi0KLSAgICBpZiByZXBvLmhlYWQ6Ci0gICAgICAgIGRlYnVnKCJAcmVmcy9oZWFkcy8lcyBIRUFEIiAlIHJlcG8uaGVhZCkKLSAgICAgICAgcHJpbnQoIkByZWZzL2hlYWRzLyVzIEhFQUQiICUgcmVwby5oZWFkKQotICAgIGVsc2U6Ci0gICAgICAgIGRlYnVnKCJAcmVmcy9oZWFkcy9tYXN0ZXIgSEVBRCIpCi0gICAgICAgIHByaW50KCJAcmVmcy9oZWFkcy9tYXN0ZXIgSEVBRCIpCi0KLSAgICBwcmludCgnJykgIyBlbmQgbGlzdAotCi0KLWRlZiB1cGRhdGVfbG9jYWxfcmVwbyhyZXBvKToKLSAgICAiIiJVcGRhdGVzIChvciBjbG9uZXMpIGEgbG9jYWwgcmVwby4KLSAgICAiIiIKLQotICAgIGlmIHJlcG8ubG9jYWw6Ci0gICAgICAgIHJldHVybiByZXBvCi0KLSAgICBwYXRoID0gcmVwby5ub25fbG9jYWwuY2xvbmUocmVwby5naXRkaXIpCi0gICAgcmVwby5ub25fbG9jYWwudXBkYXRlKHJlcG8uZ2l0ZGlyKQotICAgIHJlcG8gPSBsb2NhbF9yZXBvKHJlcG8sIHBhdGgpCi0gICAgcmV0dXJuIHJlcG8KLQotCi1kZWYgZG9faW1wb3J0KHJlcG8sIGFyZ3MpOgotICAgICIiIkV4cG9ydHMgYSBmYXN0LWltcG9ydCBzdHJlYW0gZnJvbSB0ZXN0Z2l0IGZvciBnaXQgdG8gaW1wb3J0LgotICAgICIiIgotCi0gICAgaWYgbGVuKGFyZ3MpICE9IDE6Ci0gICAgICAgIGRpZSgiSW1wb3J0IG5lZWRzIGV4YWN0bHkgb25lIHJlZiIpCi0KLSAgICBpZiBub3QgcmVwby5naXRkaXI6Ci0gICAgICAgIGRpZSgiTmVlZCBnaXRkaXIgdG8gaW1wb3J0IikKLQotICAgIHJlZiA9IGFyZ3NbMF0KLSAgICByZWZzID0gW3JlZl0KLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGxpbmUgPSBzeXMuc3RkaW4ucmVhZGxpbmUoKS5kZWNvZGUoKQotICAgICAgICBpZiBsaW5lID09ICdcbic6Ci0gICAgICAgICAgICBicmVhawotICAgICAgICBpZiBub3QgbGluZS5zdGFydHN3aXRoKCdpbXBvcnQgJyk6Ci0gICAgICAgICAgICBkaWUoIkV4cGVjdGVkIGltcG9ydCBsaW5lLiIpCi0KLSAgICAgICAgIyBzdHJpcCBvZiBsZWFkaW5nICdpbXBvcnQgJwotICAgICAgICByZWYgPSBsaW5lWzc6XS5zdHJpcCgpCi0gICAgICAgIHJlZnMuYXBwZW5kKHJlZikKLQotICAgIHByaW50KCJmZWF0dXJlIGRvbmUiKQotCi0gICAgaWYgb3MuZW52aXJvbi5nZXQoIkdJVF9SRU1PVEVfVEVTVEdJVF9GQUlMVVJFIik6Ci0gICAgICAgIGRpZSgnVG9sZCB0byBmYWlsJykKLQotICAgIHJlcG8gPSB1cGRhdGVfbG9jYWxfcmVwbyhyZXBvKQotICAgIHJlcG8uZXhwb3J0ZXIuZXhwb3J0X3JlcG8ocmVwby5naXRkaXIsIHJlZnMpCi0KLSAgICBwcmludCgiZG9uZSIpCi0KLQotZGVmIGRvX2V4cG9ydChyZXBvLCBhcmdzKToKLSAgICAiIiJJbXBvcnRzIGEgZmFzdC1pbXBvcnQgc3RyZWFtIGZyb20gZ2l0IHRvIHRlc3RnaXQuCi0gICAgIiIiCi0KLSAgICBpZiBub3QgcmVwby5naXRkaXI6Ci0gICAgICAgIGRpZSgiTmVlZCBnaXRkaXIgdG8gZXhwb3J0IikKLQotICAgIGlmIG9zLmVudmlyb24uZ2V0KCJHSVRfUkVNT1RFX1RFU1RHSVRfRkFJTFVSRSIpOgotICAgICAgICBkaWUoJ1RvbGQgdG8gZmFpbCcpCi0KLSAgICB1cGRhdGVfbG9jYWxfcmVwbyhyZXBvKQotICAgIGNoYW5nZWQgPSByZXBvLmltcG9ydGVyLmRvX2ltcG9ydChyZXBvLmdpdGRpcikKLQotICAgIGlmIG5vdCByZXBvLmxvY2FsOgotICAgICAgICByZXBvLm5vbl9sb2NhbC5wdXNoKHJlcG8uZ2l0ZGlyKQotCi0gICAgZm9yIHJlZiBpbiBjaGFuZ2VkOgotICAgICAgICBwcmludCgib2sgJXMiICUgcmVmKQotICAgIHByaW50KCcnKQotCi0KLUNPTU1BTkRTID0gewotICAgICdjYXBhYmlsaXRpZXMnOiBkb19jYXBhYmlsaXRpZXMsCi0gICAgJ2xpc3QnOiBkb19saXN0LAotICAgICdpbXBvcnQnOiBkb19pbXBvcnQsCi0gICAgJ2V4cG9ydCc6IGRvX2V4cG9ydCwKLX0KLQotCi1kZWYgc2FuaXRpemUodmFsdWUpOgotICAgICIiIkNsZWFucyB1cCB0aGUgdXJsLgotICAgICIiIgotCi0gICAgaWYgdmFsdWUuc3RhcnRzd2l0aCgndGVzdGdpdDo6Jyk6Ci0gICAgICAgIHZhbHVlID0gdmFsdWVbOTpdCi0KLSAgICByZXR1cm4gdmFsdWUKLQotCi1kZWYgcmVhZF9vbmVfbGluZShyZXBvKToKLSAgICAiIiJSZWFkcyBhbmQgcHJvY2Vzc2VzIG9uZSBjb21tYW5kLgotICAgICIiIgotCi0gICAgc2xlZXB5ID0gb3MuZW52aXJvbi5nZXQoIkdJVF9SRU1PVEVfVEVTVEdJVF9TTEVFUFkiKQotICAgIGlmIHNsZWVweToKLSAgICAgICAgZGVidWcoIlNsZWVwaW5nICVkIHNlYyBiZWZvcmUgcmVhZGxpbmUiICUgaW50KHNsZWVweSkpCi0gICAgICAgIHRpbWUuc2xlZXAoaW50KHNsZWVweSkpCi0KLSAgICBsaW5lID0gc3lzLnN0ZGluLnJlYWRsaW5lKCkKLQotICAgIGNtZGxpbmUgPSBsaW5lLmRlY29kZSgpCi0KLSAgICBpZiBub3QgY21kbGluZToKLSAgICAgICAgd2FybigiVW5leHBlY3RlZCBFT0YiKQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGNtZGxpbmUgPSBjbWRsaW5lLnN0cmlwKCkuc3BsaXQoKQotICAgIGlmIG5vdCBjbWRsaW5lOgotICAgICAgICAjIEJsYW5rIGxpbmUgbWVhbnMgd2UncmUgYWJvdXQgdG8gcXVpdAotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGNtZCA9IGNtZGxpbmUucG9wKDApCi0gICAgZGVidWcoIkdvdCBjb21tYW5kICclcycgd2l0aCBhcmdzICclcyciLCBjbWQsICcgJy5qb2luKGNtZGxpbmUpKQotCi0gICAgaWYgY21kIG5vdCBpbiBDT01NQU5EUzoKLSAgICAgICAgZGllKCJVbmtub3duIGNvbW1hbmQsICVzIiwgY21kKQotCi0gICAgZnVuYyA9IENPTU1BTkRTW2NtZF0KLSAgICBmdW5jKHJlcG8sIGNtZGxpbmUpCi0gICAgc3lzLnN0ZG91dC5mbHVzaCgpCi0KLSAgICByZXR1cm4gVHJ1ZQotCi0KLWRlZiBtYWluKGFyZ3MpOgotICAgICIiIlN0YXJ0cyBhIG5ldyByZW1vdGUgaGVscGVyIGZvciB0aGUgc3BlY2lmaWVkIHJlcG9zaXRvcnkuCi0gICAgIiIiCi0KLSAgICBpZiBsZW4oYXJncykgIT0gMzoKLSAgICAgICAgZGllKCJFeHBlY3RpbmcgZXhhY3RseSB0aHJlZSBhcmd1bWVudHMuIikKLSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGlmIG9zLmdldGVudigiR0lUX0RFQlVHX1RFU1RHSVQiKToKLSAgICAgICAgaW1wb3J0IGdpdF9yZW1vdGVfaGVscGVycy51dGlsCi0gICAgICAgIGdpdF9yZW1vdGVfaGVscGVycy51dGlsLkRFQlVHID0gVHJ1ZQotCi0gICAgYWxpYXMgPSBzYW5pdGl6ZShhcmdzWzFdKQotICAgIHVybCA9IHNhbml0aXplKGFyZ3NbMl0pCi0KLSAgICBpZiBub3QgYWxpYXMuaXNhbG51bSgpOgotICAgICAgICB3YXJuKCJub24tYWxudW0gYWxpYXMgJyVzJyIsIGFsaWFzKQotICAgICAgICBhbGlhcyA9ICJ0bXAiCi0KLSAgICBhcmdzWzFdID0gYWxpYXMKLSAgICBhcmdzWzJdID0gdXJsCi0KLSAgICByZXBvID0gZ2V0X3JlcG8oYWxpYXMsIHVybCkKLQotICAgIGRlYnVnKCJHb3QgYXJndW1lbnRzICVzIiwgYXJnc1sxOl0pCi0KLSAgICBtb3JlID0gVHJ1ZQotCi0gICAgIyBVc2UgYmluYXJ5IG1vZGUgc2luY2UgUHl0aG9uIDMgZG9lcyBub3QgcGVybWl0IHVuYnVmZmVyZWQgSS9PIGluIHRleHQKLSAgICAjIG1vZGUuICBVbmJ1ZmZlcmVkIEkvTyBpcyByZXF1aXJlZCB0byBhdm9pZCBkYXRhIHRoYXQgc2hvdWxkIGJlIGdvaW5nCi0gICAgIyB0byBnaXQtZmFzdC1pbXBvcnQgYWZ0ZXIgYW4gImV4cG9ydCIgY29tbWFuZCBnZXR0aW5nIGNhdWdodCBpbiBvdXIKLSAgICAjIHN0ZGluIGJ1ZmZlciBpbnN0ZWFkLgotICAgIHN5cy5zdGRpbiA9IG9zLmZkb3BlbihzeXMuc3RkaW4uZmlsZW5vKCksICdyYicsIDApCi0gICAgd2hpbGUgKG1vcmUpOgotICAgICAgICBtb3JlID0gcmVhZF9vbmVfbGluZShyZXBvKQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHN5cy5leGl0KG1haW4oc3lzLmFyZ3YpKQpkaWZmIC0tZ2l0IGEvZ2l0LXJlcXVlc3QtcHVsbC5zaCBiL2dpdC1yZXF1ZXN0LXB1bGwuc2gKaW5kZXggZWJmMTI2OS4uZmUyMWQ1ZCAxMDA3NTUKLS0tIGEvZ2l0LXJlcXVlc3QtcHVsbC5zaAorKysgYi9naXQtcmVxdWVzdC1wdWxsLnNoCkBAIC0xMDYsNyArMTA2LDcgQEAKIAl9CiAnCiAKLXJlZj0kKGdpdCBscy1yZW1vdGUgIiR1cmwiIHwgcGVybCAtZSAiJGZpbmRfbWF0Y2hpbmdfcmVmIiAiJGhlYWQiICIkaGVhZHJldiIgIiR0YWdfbmFtZSIpCityZWY9JChnaXQgbHMtcmVtb3RlICIkdXJsIiB8IEBAUEVSTEBAIC1lICIkZmluZF9tYXRjaGluZ19yZWYiICIkaGVhZCIgIiRoZWFkcmV2IiAiJHRhZ19uYW1lIikKIAogdXJsPSQoZ2l0IGxzLXJlbW90ZSAtLWdldC11cmwgIiR1cmwiKQogCmRpZmYgLS1naXQgYS9naXQtc2VuZC1lbWFpbC5wZXJsIGIvZ2l0LXNlbmQtZW1haWwucGVybAppbmRleCAzNzgyYzNiLi5mZGIwMDI5IDEwMDc1NQotLS0gYS9naXQtc2VuZC1lbWFpbC5wZXJsCisrKyBiL2dpdC1zZW5kLWVtYWlsLnBlcmwKQEAgLTI5MSw3ICsyOTEsNyBAQAogCQkgICAgInNtdHAtcGFzczpzIiA9PiBcJHNtdHBfYXV0aHBhc3MsCiAJCSAgICAic210cC1zc2wiID0+IHN1YiB7ICRzbXRwX2VuY3J5cHRpb24gPSAnc3NsJyB9LAogCQkgICAgInNtdHAtZW5jcnlwdGlvbj1zIiA9PiBcJHNtdHBfZW5jcnlwdGlvbiwKLQkJICAgICJzbXRwLXNzbC1jZXJ0LXBhdGgiID0+IFwkc210cF9zc2xfY2VydF9wYXRoLAorCQkgICAgInNtdHAtc3NsLWNlcnQtcGF0aD1zIiA9PiBcJHNtdHBfc3NsX2NlcnRfcGF0aCwKIAkJICAgICJzbXRwLWRlYnVnOmkiID0+IFwkZGVidWdfbmV0X3NtdHAsCiAJCSAgICAic210cC1kb21haW46cyIgPT4gXCRzbXRwX2RvbWFpbiwKIAkJICAgICJpZGVudGl0eT1zIiA9PiBcJGlkZW50aXR5LApAQCAtMTA5NSw3ICsxMDk1LDggQEAKIAl9CiAKIAlpZiAoIWRlZmluZWQgJHNtdHBfc3NsX2NlcnRfcGF0aCkgewotCQkkc210cF9zc2xfY2VydF9wYXRoID0gIi9ldGMvc3NsL2NlcnRzIjsKKwkJIyB1c2UgdGhlIE9wZW5TU0wgZGVmYXVsdHMKKwkJcmV0dXJuIChTU0xfdmVyaWZ5X21vZGUgPT4gU1NMX1ZFUklGWV9QRUVSKCkpOwogCX0KIAogCWlmICgkc210cF9zc2xfY2VydF9wYXRoIGVxICIiKSB7CkBAIC0xMjE0LDEwICsxMjE1LDE0IEBACiAJCQkkc210cF9zZXJ2ZXJfcG9ydCB8fD0gNDY1OyAjIHNzbXRwCiAJCQlyZXF1aXJlIE5ldDo6U01UUDo6U1NMOwogCQkJJHNtdHBfZG9tYWluIHx8PSBtYWlsZG9tYWluKCk7CisJCQlyZXF1aXJlIElPOjpTb2NrZXQ6OlNTTDsKKwkJCSMgTmV0OjpTTVRQOjpTU0wtPm5ldygpIGRvZXMgbm90IGZvcndhcmQgYW55IFNTTCBvcHRpb25zCisJCQlJTzo6U29ja2V0OjpTU0w6OnNldF9jbGllbnRfZGVmYXVsdHMoCisJCQkJc3NsX3ZlcmlmeV9wYXJhbXMoKSk7CiAJCQkkc210cCB8fD0gTmV0OjpTTVRQOjpTU0wtPm5ldygkc210cF9zZXJ2ZXIsCiAJCQkJCQkgICAgICBIZWxsbyA9PiAkc210cF9kb21haW4sCiAJCQkJCQkgICAgICBQb3J0ID0+ICRzbXRwX3NlcnZlcl9wb3J0LAotCQkJCQkJICAgICAgc3NsX3ZlcmlmeV9wYXJhbXMoKSk7CisJCQkJCQkgICAgICBEZWJ1ZyA9PiAkZGVidWdfbmV0X3NtdHApOwogCQl9CiAJCWVsc2UgewogCQkJcmVxdWlyZSBOZXQ6OlNNVFA7CmRpZmYgLS1naXQgYS9naXQtc2gtaTE4bi5zaCBiL2dpdC1zaC1pMThuLnNoCmluZGV4IDZhMjdmNjguLmU2YzMxMTYgMTAwNjQ0Ci0tLSBhL2dpdC1zaC1pMThuLnNoCisrKyBiL2dpdC1zaC1pMThuLnNoCkBAIC0xLDkgKzEsOCBAQAotIyEvYmluL3NoCisjIFRoaXMgc2hlbGwgbGlicmFyeSBpcyBHaXQncyBpbnRlcmZhY2UgdG8gZ2V0dGV4dC5zaC4gU2VlIHBvL1JFQURNRQorIyBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zLgogIwogIyBDb3B5cmlnaHQgKGMpIDIwMTAgw4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24KICMKLSMgVGhpcyBpcyBHaXQncyBpbnRlcmZhY2UgdG8gZ2V0dGV4dC5zaC4gU2VlIHBvL1JFQURNRSBmb3IgdXNhZ2UKLSMgaW5zdHJ1Y3Rpb25zLgogCiAjIEV4cG9ydCB0aGUgVEVYVERPTUFJTiogZGF0YSB0aGF0IHdlIG5lZWQgZm9yIEdpdAogVEVYVERPTUFJTj1naXQKZGlmZiAtLWdpdCBhL2dpdC1zaC1zZXR1cC5zaCBiL2dpdC1zaC1zZXR1cC5zaAppbmRleCBlMTViZTUxLi5mZmZhM2M3IDEwMDY0NAotLS0gYS9naXQtc2gtc2V0dXAuc2gKKysrIGIvZ2l0LXNoLXNldHVwLnNoCkBAIC0xLDkgKzEsNiBAQAotIyEvYmluL3NoCi0jCi0jIFRoaXMgaXMgaW5jbHVkZWQgaW4gY29tbWFuZHMgdGhhdCBlaXRoZXIgaGF2ZSB0byBiZSBydW4gZnJvbSB0aGUgdG9wbGV2ZWwKLSMgb2YgdGhlIHJlcG9zaXRvcnksIG9yIHdpdGggR0lUX0RJUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBwcm9wZXJseS4KLSMgSWYgdGhlIEdJVF9ESVIgZG9lcyBub3QgbG9vayBsaWtlIHRoZSByaWdodCBjb3JyZWN0IGdpdC1yZXBvc2l0b3J5LAotIyBpdCBkaWVzLgorIyBUaGlzIHNoZWxsIHNjcmlwbGV0IGlzIG1lYW50IHRvIGJlIGluY2x1ZGVkIGJ5IG90aGVyIHNoZWxsIHNjcmlwdHMKKyMgdG8gc2V0IHVwIHNvbWUgdmFyaWFibGVzIHBvaW50aW5nIGF0IHRoZSBub3JtYWwgZ2l0IGRpcmVjdG9yaWVzIGFuZAorIyBhIGZldyBoZWxwZXIgc2hlbGwgZnVuY3Rpb25zLgogCiAjIEhhdmluZyB0aGlzIHZhcmlhYmxlIGluIHlvdXIgZW52aXJvbm1lbnQgd291bGQgYnJlYWsgc2NyaXB0cyBiZWNhdXNlCiAjIHlvdSB3b3VsZCBjYXVzZSAiY2QiIHRvIGJlIHRha2VuIHRvIHVuZXhwZWN0ZWQgcGxhY2VzLiAgSWYgeW91CkBAIC0xMDMsNiArMTAwLDQwIEBACiAJZXNhYwogZmkKIAorIyBTZXQgdGhlIG5hbWUgb2YgdGhlIGVuZC11c2VyIGZhY2luZyBjb21tYW5kIGluIHRoZSByZWZsb2cgd2hlbiB0aGUKKyMgc2NyaXB0IG1heSB1cGRhdGUgcmVmcy4gIFdoZW4gR0lUX1JFRkxPR19BQ1RJT04gaXMgYWxyZWFkeSBzZXQsIHRoaXMKKyMgd2lsbCBub3Qgb3ZlcndyaXRlIGl0LCBzbyB0aGF0IGEgc2NyaXB0ZWQgUG9yY2VsYWluIChlLmcuICJnaXQKKyMgcmViYXNlIikgY2FuIHNldCBpdCB0byBpdHMgb3duIG5hbWUgKGUuZy4gInJlYmFzZSIpIGFuZCB0aGVuIGNhbGwKKyMgYW5vdGhlciBzY3JpcHRlZCBQb3JjZWxhaW4gKGUuZy4gImdpdCBhbSIpIGFuZCBhIGNhbGwgdG8gdGhpcworIyBmdW5jdGlvbiBpbiB0aGUgbGF0dGVyIHdpbGwga2VlcCB0aGUgbmFtZSBvZiB0aGUgZW5kLXVzZXIgZmFjaW5nCisjIHByb2dyYW0gKGUuZy4gInJlYmFzZSIpIGluIEdJVF9SRUZMT0dfQUNUSU9OLCBlbnN1cmluZyB3aGF0ZXZlciBpdAorIyBkb2VzIHdpbGwgYmUgcmVjb3JkIGFzIGFjdGlvbnMgZG9uZSBhcyBwYXJ0IG9mIHRoZSBlbmQtdXNlciBmYWNpbmcKKyMgb3BlcmF0aW9uIChlLmcuICJyZWJhc2UiKS4KKyMKKyMgTk9URSBOT1RFIE5PVEU6IGNvbnNlcXVlbnRseSwgYWZ0ZXIgYXNzaWduaW5nIGEgc3BlY2lmaWMgbWVzc2FnZSB0bworIyBHSVRfUkVGTE9HX0FDVElPTiB3aGVuIGNhbGxpbmcgYSAiZ2l0IiBjb21tYW5kIHRvIHJlY29yZCBhIGN1c3RvbQorIyByZWZsb2cgbWVzc2FnZSwgZG8gbm90IGxlYXZlIHRoYXQgY3VzdG9tIHZhbHVlIGluIEdJVF9SRUZMT0dfQUNUSU9OLAorIyBhZnRlciB5b3UgYXJlIGRvbmUuICBPdGhlciBjYWxsZXJzIG9mICJnaXQiIGNvbW1hbmRzIHRoYXQgcmVseSBvbgorIyB3cml0aW5nIHRoZSBkZWZhdWx0ICJwcm9ncmFtIG5hbWUiIGluIHJlZmxvZyBleHBlY3QgdGhlIHZhcmlhYmxlIHRvCisjIGNvbnRhaW4gdGhlIHZhbHVlIHNldCBieSB0aGlzIGZ1bmN0aW9uLgorIworIyBUbyB1c2UgYSBjdXN0b20gcmVmbG9nIG1lc3NhZ2UsIGRvIGVpdGhlciBvbmUgb2YgdGhlc2UgdGhyZWU6CisjCisjIChhKSB1c2UgYSBzaW5nbGUtc2hvdCBleHBvcnQgZm9ybToKKyMgICAgIEdJVF9SRUZMT0dfQUNUSU9OPSIkR0lUX1JFRkxPR19BQ1RJT046IHByZXBhcmluZyBmcm90eiIgXAorIyAgICAgICAgIGdpdCBjb21tYW5kLXRoYXQtdXBkYXRlcy1hLXJlZgorIworIyAoYikgc2F2ZSB0aGUgb3JpZ2luYWwgYXdheSBhbmQgcmVzdG9yZToKKyMgICAgIFNBVkVEX0FDVElPTj0kR0lUX1JFRkxPR19BQ1RJT04KKyMgICAgIEdJVF9SRUZMT0dfQUNUSU9OPSIkR0lUX1JFRkxPR19BQ1RJT046IHByZXBhcmluZyBmcm90eiIKKyMgICAgIGdpdCBjb21tYW5kLXRoYXQtdXBkYXRlcy1hLXJlZgorIyAgICAgR0lUX1JFRkxPR19BQ0lUT049JFNBVkVEX0FDVElPTgorIworIyAoYykgYXNzaWduIHRoZSB2YXJpYWJsZSBpbiBhIHN1YnNoZWxsOgorIyAgICAgKAorIyAgICAgICAgIEdJVF9SRUZMT0dfQUNUSU9OPSIkR0lUX1JFRkxPR19BQ1RJT046IHByZXBhcmluZyBmcm90eiIKKyMgICAgICAgICBnaXQgY29tbWFuZC10aGF0LXVwZGF0ZXMtYS1yZWYKKyMgICAgICkKIHNldF9yZWZsb2dfYWN0aW9uKCkgewogCWlmIFsgLXogIiR7R0lUX1JFRkxPR19BQ1RJT046K3NldH0iIF0KIAl0aGVuCkBAIC0xMjgsNyArMTU5LDggQEAKIAkJR0lUX1BBR0VSPWNhdAogCWZpCiAJOiAke0xFU1M9LUZSU1h9Ci0JZXhwb3J0IExFU1MKKwk6ICR7TFY9LWN9CisJZXhwb3J0IExFU1MgTFYKIAogCWV2YWwgIiRHSVRfUEFHRVIiICciJEAiJwogfQpkaWZmIC0tZ2l0IGEvZ2l0LXN0YXNoLnNoIGIvZ2l0LXN0YXNoLnNoCmluZGV4IDFlNTQxYTIuLmYwYTk0YWIgMTAwNzU1Ci0tLSBhL2dpdC1zdGFzaC5zaAorKysgYi9naXQtc3Rhc2guc2gKQEAgLTM1OCw3ICszNTgsNyBAQAogCWlfdHJlZT0KIAl1X3RyZWU9CiAKLQlSRVY9JChnaXQgcmV2LXBhcnNlIC0tbm8tZmxhZ3MgLS1zeW1ib2xpYyAiJEAiKSB8fCBleGl0IDEKKwlSRVY9JChnaXQgcmV2LXBhcnNlIC0tbm8tZmxhZ3MgLS1zeW1ib2xpYyAtLXNxICIkQCIpIHx8IGV4aXQgMQogCiAJRkxBR1M9CiAJZm9yIG9wdApAQCAtMzc2LDcgKzM3Niw3IEBACiAJCWVzYWMKIAlkb25lCiAKLQlzZXQgLS0gJFJFVgorCWV2YWwgc2V0IC0tICRSRVYKIAogCWNhc2UgJCMgaW4KIAkJMCkKQEAgLTM5MSwxMyArMzkxLDEzIEBACiAJCTs7CiAJZXNhYwogCi0JUkVWPSQoZ2l0IHJldi1wYXJzZSAtLXF1aWV0IC0tc3ltYm9saWMgLS12ZXJpZnkgJDEgMj4vZGV2L251bGwpIHx8IHsKKwlSRVY9JChnaXQgcmV2LXBhcnNlIC0tcXVpZXQgLS1zeW1ib2xpYyAtLXZlcmlmeSAiJDEiIDI+L2Rldi9udWxsKSB8fCB7CiAJCXJlZmVyZW5jZT0iJDEiCiAJCWRpZSAiJChldmFsX2dldHRleHQgIlwkcmVmZXJlbmNlIGlzIG5vdCB2YWxpZCByZWZlcmVuY2UiKSIKIAl9CiAKLQlpX2NvbW1pdD0kKGdpdCByZXYtcGFyc2UgLS1xdWlldCAtLXZlcmlmeSAkUkVWXjIgMj4vZGV2L251bGwpICYmCi0Jc2V0IC0tICQoZ2l0IHJldi1wYXJzZSAkUkVWICRSRVZeMSAkUkVWOiAkUkVWXjE6ICRSRVZeMjogMj4vZGV2L251bGwpICYmCisJaV9jb21taXQ9JChnaXQgcmV2LXBhcnNlIC0tcXVpZXQgLS12ZXJpZnkgIiRSRVZeMiIgMj4vZGV2L251bGwpICYmCisJc2V0IC0tICQoZ2l0IHJldi1wYXJzZSAiJFJFViIgIiRSRVZeMSIgIiRSRVY6IiAiJFJFVl4xOiIgIiRSRVZeMjoiIDI+L2Rldi9udWxsKSAmJgogCXM9JDEgJiYKIAl3X2NvbW1pdD0kMSAmJgogCWJfY29tbWl0PSQyICYmCkBAIC00MDgsOCArNDA4LDggQEAKIAl0ZXN0ICIkcmVmX3N0YXNoIiA9ICIkKGdpdCByZXYtcGFyc2UgLS1zeW1ib2xpYy1mdWxsLW5hbWUgIiR7UkVWJUAqfSIpIiAmJgogCUlTX1NUQVNIX1JFRj10CiAKLQl1X2NvbW1pdD0kKGdpdCByZXYtcGFyc2UgLS1xdWlldCAtLXZlcmlmeSAkUkVWXjMgMj4vZGV2L251bGwpICYmCi0JdV90cmVlPSQoZ2l0IHJldi1wYXJzZSAkUkVWXjM6IDI+L2Rldi9udWxsKQorCXVfY29tbWl0PSQoZ2l0IHJldi1wYXJzZSAtLXF1aWV0IC0tdmVyaWZ5ICIkUkVWXjMiIDI+L2Rldi9udWxsKSAmJgorCXVfdHJlZT0kKGdpdCByZXYtcGFyc2UgIiRSRVZeMzoiIDI+L2Rldi9udWxsKQogfQogCiBpc19zdGFzaF9saWtlKCkKZGlmZiAtLWdpdCBhL2dpdC1zdWJtb2R1bGUuc2ggYi9naXQtc3VibW9kdWxlLnNoCmluZGV4IDgzOTE3ZDguLjRhMzAwODcgMTAwNzU1Ci0tLSBhL2dpdC1zdWJtb2R1bGUuc2gKKysrIGIvZ2l0LXN1Ym1vZHVsZS5zaApAQCAtMTU2LDcgKzE1Niw3IEBACiAJCWdpdCBscy1maWxlcyAteiAtLWVycm9yLXVubWF0Y2ggLS1zdGFnZSAtLSAiJEAiIHx8CiAJCWVjaG8gInVubWF0Y2hlZCBwYXRoc3BlYyBleGlzdHMiCiAJKSB8Ci0JcGVybCAtZSAnCisJQEBQRVJMQEAgLWUgJwogCW15ICV1bm1lcmdlZCA9ICgpOwogCW15ICgkbnVsbF9zaGExKSA9ICgiMCIgeCA0MCk7CiAJbXkgQG91dCA9ICgpOwpAQCAtNTQ1LDcgKzU0NSwxMiBAQAogCQkJCXNtX3BhdGg9JChyZWxhdGl2ZV9wYXRoICIkc21fcGF0aCIpICYmCiAJCQkJIyB3ZSBtYWtlICRwYXRoIGF2YWlsYWJsZSB0byBzY3JpcHRzIC4uLgogCQkJCXBhdGg9JHNtX3BhdGggJiYKLQkJCQlldmFsICIkQCIgJiYKKwkJCQlpZiB0ZXN0ICQjIC1lcSAxCisJCQkJdGhlbgorCQkJCQlldmFsICIkMSIKKwkJCQllbHNlCisJCQkJCSIkQCIKKwkJCQlmaSAmJgogCQkJCWlmIHRlc3QgLW4gIiRyZWN1cnNpdmUiCiAJCQkJdGhlbgogCQkJCQljbWRfZm9yZWFjaCAiLS1yZWN1cnNpdmUiICIkQCIKQEAgLTYxNyw3ICs2MjIsNyBAQAogCQkgICB0ZXN0IC16ICIkKGdpdCBjb25maWcgc3VibW9kdWxlLiIkbmFtZSIudXBkYXRlKSIKIAkJdGhlbgogCQkJY2FzZSAiJHVwZCIgaW4KLQkJCXJlYmFzZSB8IG1lcmdlIHwgbm9uZSkKKwkJCWNoZWNrb3V0IHwgcmViYXNlIHwgbWVyZ2UgfCBub25lKQogCQkJCTs7ICMga25vd24gbW9kZXMgb2YgdXBkYXRpbmcKIAkJCSopCiAJCQkJZWNobyA+JjIgIndhcm5pbmc6IHVua25vd24gdXBkYXRlIG1vZGUgJyR1cGQnIHN1Z2dlc3RlZCBmb3Igc3VibW9kdWxlICckbmFtZSciCkBAIC03MTYsNyArNzIxLDYgQEAKIGNtZF91cGRhdGUoKQogewogCSMgcGFyc2UgJGFyZ3MgYWZ0ZXIgInN1Ym1vZHVsZSAuLi4gdXBkYXRlIi4KLQlvcmlnX2ZsYWdzPQogCXdoaWxlIHRlc3QgJCMgLW5lIDAKIAlkbwogCQljYXNlICIkMSIgaW4KQEAgLTc0MSw3ICs3NDUsNiBAQAogCQktLXJlZmVyZW5jZSkKIAkJCWNhc2UgIiQyIiBpbiAnJykgdXNhZ2UgOzsgZXNhYwogCQkJcmVmZXJlbmNlPSItLXJlZmVyZW5jZT0kMiIKLQkJCW9yaWdfZmxhZ3M9IiRvcmlnX2ZsYWdzICQoZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlICIkMSIpIgogCQkJc2hpZnQKIAkJCTs7CiAJCS0tcmVmZXJlbmNlPSopCkBAIC03NzUsNyArNzc4LDYgQEAKIAkJCWJyZWFrCiAJCQk7OwogCQllc2FjCi0JCW9yaWdfZmxhZ3M9IiRvcmlnX2ZsYWdzICQoZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlICIkMSIpIgogCQlzaGlmdAogCWRvbmUKIApAQCAtODAzLDYgKzgwNSwxNyBAQAogCQkJdXBkYXRlX21vZHVsZT0kdXBkYXRlCiAJCWVsc2UKIAkJCXVwZGF0ZV9tb2R1bGU9JChnaXQgY29uZmlnIHN1Ym1vZHVsZS4iJG5hbWUiLnVwZGF0ZSkKKwkJCWNhc2UgIiR1cGRhdGVfbW9kdWxlIiBpbgorCQkJJycpCisJCQkJOzsgIyBVbnNldCB1cGRhdGUgbW9kZQorCQkJY2hlY2tvdXQgfCByZWJhc2UgfCBtZXJnZSB8IG5vbmUpCisJCQkJOzsgIyBLbm93biB1cGRhdGUgbW9kZXMKKwkJCSEqKQorCQkJCTs7ICMgQ3VzdG9tIHVwZGF0ZSBjb21tYW5kCisJCQkqKQorCQkJCWRpZSAiJChldmFsX2dldHRleHQgIkludmFsaWQgdXBkYXRlIG1vZGUgJyR1cGRhdGVfbW9kdWxlJyBmb3Igc3VibW9kdWxlICckbmFtZSciKSIKKwkJCQk7OworCQkJZXNhYwogCQlmaQogCiAJCWRpc3BsYXlwYXRoPSQocmVsYXRpdmVfcGF0aCAiJHByZWZpeCRzbV9wYXRoIikKQEAgLTkxOSw3ICs5MzIsNyBAQAogCQkJCXByZWZpeD0iJHByZWZpeCRzbV9wYXRoLyIKIAkJCQljbGVhcl9sb2NhbF9naXRfZW52CiAJCQkJY2QgIiRzbV9wYXRoIiAmJgotCQkJCWV2YWwgY21kX3VwZGF0ZSAiJG9yaWdfZmxhZ3MiCisJCQkJZXZhbCBjbWRfdXBkYXRlCiAJCQkpCiAJCQlyZXM9JD8KIAkJCWlmIHRlc3QgJHJlcyAtZ3QgMApAQCAtMTA0MiwxMyArMTA1NSwyMCBAQAogCSMgR2V0IG1vZGlmaWVkIG1vZHVsZXMgY2FyZWQgYnkgdXNlcgogCW1vZHVsZXM9JChnaXQgJGRpZmZfY21kICRjYWNoZWQgLS1pZ25vcmUtc3VibW9kdWxlcz1kaXJ0eSAtLXJhdyAkaGVhZCAtLSAiJEAiIHwKIAkJc2FuZV9lZ3JlcCAnXjooWzAtN10qICk/MTYwMDAwJyB8Ci0JCXdoaWxlIHJlYWQgbW9kX3NyYyBtb2RfZHN0IHNoYTFfc3JjIHNoYTFfZHN0IHN0YXR1cyBuYW1lCisJCXdoaWxlIHJlYWQgbW9kX3NyYyBtb2RfZHN0IHNoYTFfc3JjIHNoYTFfZHN0IHN0YXR1cyBzbV9wYXRoCiAJCWRvCiAJCQkjIEFsd2F5cyBzaG93IG1vZHVsZXMgZGVsZXRlZCBvciB0eXBlLWNoYW5nZWQgKGJsb2I8LT5tb2R1bGUpCi0JCQl0ZXN0ICRzdGF0dXMgPSBEIC1vICRzdGF0dXMgPSBUICYmIGVjaG8gIiRuYW1lIiAmJiBjb250aW51ZQorCQkJdGVzdCAkc3RhdHVzID0gRCAtbyAkc3RhdHVzID0gVCAmJiBlY2hvICIkc21fcGF0aCIgJiYgY29udGludWUKKwkJCSMgUmVzcGVjdCB0aGUgaWdub3JlIHNldHRpbmcgZm9yIC0tZm9yLXN0YXR1cy4KKwkJCWlmIHRlc3QgLW4gIiRmb3Jfc3RhdHVzIgorCQkJdGhlbgorCQkJCW5hbWU9JChtb2R1bGVfbmFtZSAiJHNtX3BhdGgiKQorCQkJCWlnbm9yZV9jb25maWc9JChnZXRfc3VibW9kdWxlX2NvbmZpZyAiJG5hbWUiIGlnbm9yZSBub25lKQorCQkJCXRlc3QgJHN0YXR1cyAhPSBBIC1hICRpZ25vcmVfY29uZmlnID0gYWxsICYmIGNvbnRpbnVlCisJCQlmaQogCQkJIyBBbHNvIHNob3cgYWRkZWQgb3IgbW9kaWZpZWQgbW9kdWxlcyB3aGljaCBhcmUgY2hlY2tlZCBvdXQKLQkJCUdJVF9ESVI9IiRuYW1lLy5naXQiIGdpdC1yZXYtcGFyc2UgLS1naXQtZGlyID4vZGV2L251bGwgMj4mMSAmJgotCQkJZWNobyAiJG5hbWUiCisJCQlHSVRfRElSPSIkc21fcGF0aC8uZ2l0IiBnaXQtcmV2LXBhcnNlIC0tZ2l0LWRpciA+L2Rldi9udWxsIDI+JjEgJiYKKwkJCWVjaG8gIiRzbV9wYXRoIgogCQlkb25lCiAJKQogCkBAIC0xMTU5LDE4ICsxMTc5LDcgQEAKIAkJCWVjaG8KIAkJZmkKIAkJZWNobwotCWRvbmUgfAotCWlmIHRlc3QgLW4gIiRmb3Jfc3RhdHVzIjsgdGhlbgotCQlpZiBbIC1uICIkZmlsZXMiIF07IHRoZW4KLQkJCWdldHRleHRsbiAiU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiIHwgZ2l0IHN0cmlwc3BhY2UgLWMKLQkJZWxzZQotCQkJZ2V0dGV4dGxuICJTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IiB8IGdpdCBzdHJpcHNwYWNlIC1jCi0JCWZpCi0JCXByaW50ZiAiXG4iIHwgZ2l0IHN0cmlwc3BhY2UgLWMKLQkJZ2l0IHN0cmlwc3BhY2UgLWMKLQllbHNlCi0JCWNhdAotCWZpCisJZG9uZQogfQogIwogIyBMaXN0IGFsbCBzdWJtb2R1bGVzLCBwcmVmaXhlZCB3aXRoOgpkaWZmIC0tZ2l0IGEvZ2l0LXN2bi5wZXJsIGIvZ2l0LXN2bi5wZXJsCmluZGV4IGZmMWNlM2QuLjczNDlmZmUgMTAwNzU1Ci0tLSBhL2dpdC1zdm4ucGVybAorKysgYi9naXQtc3ZuLnBlcmwKQEAgLTEzODksNyArMTM4OSwxNyBAQAogCQl1c2FnZSgxKTsKIAl9CiAKLQkkX3ByZWZpeCA9ICcnIHVubGVzcyBkZWZpbmVkICRfcHJlZml4OworCXVubGVzcyAoZGVmaW5lZCAkX3ByZWZpeCkgeworCQkkX3ByZWZpeCA9ICcnOworCQl3YXJuIDw8RU9GCitXQVJOSU5HOiAtLXByZWZpeCBpcyBub3QgZ2l2ZW4sIGRlZmF1bHRpbmcgdG8gZW1wdHkgcHJlZml4LgorICAgICAgICAgVGhpcyBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudCEgSW4gb3JkZXIgdG8gc3RheSBjb21wYXRpYmxlCisgICAgICAgICB3aXRoIHJlZ3VsYXIgcmVtb3RlLXRyYWNraW5nIHJlZnMsIHByb3ZpZGUgYSBwcmVmaXggbGlrZQorICAgICAgICAgLS1wcmVmaXg9b3JpZ2luLyAocmVtZW1iZXIgdGhlIHRyYWlsaW5nIHNsYXNoKSwgd2hpY2ggd2lsbCBjYXVzZQorICAgICAgICAgdGhlIFNWTi10cmFja2luZyByZWZzIHRvIGJlIHBsYWNlZCBhdCByZWZzL3JlbW90ZXMvb3JpZ2luLyouCitOT1RFOiBJbiBHaXQgdjIuMCwgdGhlIGRlZmF1bHQgcHJlZml4IHdpbGwgY2hhbmdlIGZyb20gZW1wdHkgdG8gJ29yaWdpbi8nLgorRU9GCisJfQogCWlmIChkZWZpbmVkICR1cmwpIHsKIAkJJHVybCA9IGNhbm9uaWNhbGl6ZV91cmwoJHVybCk7CiAJCWluaXRfc3ViZGlyKEBfKTsKQEAgLTE3NTksNyArMTc2OSw3IEBACiAJCW15ICRtc2didWYgPSAiIjsKIAkJd2hpbGUgKDwkbXNnX2ZoPikgewogCQkJaWYgKCEkaW5fbXNnKSB7Ci0JCQkJJGluX21zZyA9IDEgaWYgKC9eXHMqJC8pOworCQkJCSRpbl9tc2cgPSAxIGlmICgvXiQvKTsKIAkJCQkkYXV0aG9yID0gJDEgaWYgKC9eYXV0aG9yICguKj4pLyk7CiAJCQl9IGVsc2lmICgvXmdpdC1zdm4taWQ6IC8pIHsKIAkJCQkjIHNraXAgdGhpcyBmb3Igbm93LCB3ZSByZWdlbmVyYXRlIHRoZQpkaWZmIC0tZ2l0IGEvZ2l0LXdlYi0tYnJvd3NlLnNoIGIvZ2l0LXdlYi0tYnJvd3NlLnNoCmluZGV4IDFkNzJlYzcuLmViZGZiYTYgMTAwNzU1Ci0tLSBhL2dpdC13ZWItLWJyb3dzZS5zaAorKysgYi9naXQtd2ViLS1icm93c2Uuc2gKQEAgLTM0LDcgKzM0LDcgQEAKIAlmaXJlZm94IHwgaWNld2Vhc2VsIHwgc2VhbW9ua2V5IHwgaWNlYXBlIHwgXAogCWNocm9tZSB8IGdvb2dsZS1jaHJvbWUgfCBjaHJvbWl1bSB8IGNocm9taXVtLWJyb3dzZXIgfCBcCiAJa29ucXVlcm9yIHwgb3BlcmEgfCB3M20gfCBlbGlua3MgfCBsaW5rcyB8IGx5bnggfCBkaWxsbyB8IG9wZW4gfCBcCi0Jc3RhcnQgfCBjeWdzdGFydCkKKwlzdGFydCB8IGN5Z3N0YXJ0IHwgeGRnLW9wZW4pCiAJCTs7ICMgaGFwcHkKIAkqKQogCQl2YWxpZF9jdXN0b21fdG9vbCAiJDEiIHx8IHJldHVybiAxCkBAIC0xMTIsNyArMTEyLDcgQEAKIAogaWYgdGVzdCAteiAiJGJyb3dzZXIiIDsgdGhlbgogCWlmIHRlc3QgLW4gIiRESVNQTEFZIjsgdGhlbgotCQlicm93c2VyX2NhbmRpZGF0ZXM9ImZpcmVmb3ggaWNld2Vhc2VsIGdvb2dsZS1jaHJvbWUgY2hyb21lIGNocm9taXVtIGNocm9taXVtLWJyb3dzZXIga29ucXVlcm9yIG9wZXJhIHNlYW1vbmtleSBpY2VhcGUgdzNtIGVsaW5rcyBsaW5rcyBseW54IGRpbGxvIgorCQlicm93c2VyX2NhbmRpZGF0ZXM9ImZpcmVmb3ggaWNld2Vhc2VsIGdvb2dsZS1jaHJvbWUgY2hyb21lIGNocm9taXVtIGNocm9taXVtLWJyb3dzZXIga29ucXVlcm9yIG9wZXJhIHNlYW1vbmtleSBpY2VhcGUgdzNtIGVsaW5rcyBsaW5rcyBseW54IGRpbGxvIHhkZy1vcGVuIgogCQlpZiB0ZXN0ICIkS0RFX0ZVTExfU0VTU0lPTiIgPSAidHJ1ZSI7IHRoZW4KIAkJCWJyb3dzZXJfY2FuZGlkYXRlcz0ia29ucXVlcm9yICRicm93c2VyX2NhbmRpZGF0ZXMiCiAJCWZpCkBAIC0xNzksNyArMTc5LDcgQEAKIAkJOzsKIAllc2FjCiAJOzsKLXczbXxlbGlua3N8bGlua3N8bHlueHxvcGVufGN5Z3N0YXJ0KQordzNtfGVsaW5rc3xsaW5rc3xseW54fG9wZW58Y3lnc3RhcnR8eGRnLW9wZW4pCiAJIiRicm93c2VyX3BhdGgiICIkQCIKIAk7Owogc3RhcnQpCmRpZmYgLS1naXQgYS9naXQuYyBiL2dpdC5jCmluZGV4IDIwMjVmNzcuLjdjZjI5NTMgMTAwNjQ0Ci0tLSBhL2dpdC5jCisrKyBiL2dpdC5jCkBAIC03LDcgKzcsNyBAQAogI2luY2x1ZGUgImNvbW1pdC5oIgogCiBjb25zdCBjaGFyIGdpdF91c2FnZV9zdHJpbmdbXSA9Ci0JImdpdCBbLS12ZXJzaW9uXSBbLS1oZWxwXSBbLWMgbmFtZT12YWx1ZV1cbiIKKwkiZ2l0IFstLXZlcnNpb25dIFstLWhlbHBdIFstQyA8cGF0aD5dIFstYyBuYW1lPXZhbHVlXVxuIgogCSIgICAgICAgICAgIFstLWV4ZWMtcGF0aFs9PHBhdGg+XV0gWy0taHRtbC1wYXRoXSBbLS1tYW4tcGF0aF0gWy0taW5mby1wYXRoXVxuIgogCSIgICAgICAgICAgIFstcHwtLXBhZ2luYXRlfC0tbm8tcGFnZXJdIFstLW5vLXJlcGxhY2Utb2JqZWN0c10gWy0tYmFyZV1cbiIKIAkiICAgICAgICAgICBbLS1naXQtZGlyPTxwYXRoPl0gWy0td29yay10cmVlPTxwYXRoPl0gWy0tbmFtZXNwYWNlPTxuYW1lPl1cbiIKQEAgLTU0LDcgKzU0LDcgQEAKIAkJLyoKIAkJICogQ2hlY2sgcmVtYWluaW5nIGZsYWdzLgogCQkgKi8KLQkJaWYgKCFwcmVmaXhjbXAoY21kLCAiLS1leGVjLXBhdGgiKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoY21kLCAiLS1leGVjLXBhdGgiKSkgewogCQkJY21kICs9IDExOwogCQkJaWYgKCpjbWQgPT0gJz0nKQogCQkJCWdpdF9zZXRfYXJndl9leGVjX3BhdGgoY21kICsgMSk7CkBAIC05Miw3ICs5Miw3IEBACiAJCQkJKmVudmNoYW5nZWQgPSAxOwogCQkJKCphcmd2KSsrOwogCQkJKCphcmdjKS0tOwotCQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoY21kLCAiLS1naXQtZGlyPSIpKSB7CisJCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgoY21kLCAiLS1naXQtZGlyPSIpKSB7CiAJCQlzZXRlbnYoR0lUX0RJUl9FTlZJUk9OTUVOVCwgY21kICsgMTAsIDEpOwogCQkJaWYgKGVudmNoYW5nZWQpCiAJCQkJKmVudmNoYW5nZWQgPSAxOwpAQCAtMTA2LDcgKzEwNiw3IEBACiAJCQkJKmVudmNoYW5nZWQgPSAxOwogCQkJKCphcmd2KSsrOwogCQkJKCphcmdjKS0tOwotCQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoY21kLCAiLS1uYW1lc3BhY2U9IikpIHsKKwkJfSBlbHNlIGlmIChzdGFydHNfd2l0aChjbWQsICItLW5hbWVzcGFjZT0iKSkgewogCQkJc2V0ZW52KEdJVF9OQU1FU1BBQ0VfRU5WSVJPTk1FTlQsIGNtZCArIDEyLCAxKTsKIAkJCWlmIChlbnZjaGFuZ2VkKQogCQkJCSplbnZjaGFuZ2VkID0gMTsKQEAgLTEyMCw3ICsxMjAsNyBAQAogCQkJCSplbnZjaGFuZ2VkID0gMTsKIAkJCSgqYXJndikrKzsKIAkJCSgqYXJnYyktLTsKLQkJfSBlbHNlIGlmICghcHJlZml4Y21wKGNtZCwgIi0td29yay10cmVlPSIpKSB7CisJCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgoY21kLCAiLS13b3JrLXRyZWU9IikpIHsKIAkJCXNldGVudihHSVRfV09SS19UUkVFX0VOVklST05NRU5ULCBjbWQgKyAxMiwgMSk7CiAJCQlpZiAoZW52Y2hhbmdlZCkKIAkJCQkqZW52Y2hhbmdlZCA9IDE7CkBAIC0xNDcsMTIgKzE0NywzNSBAQAogCQkJc2V0ZW52KEdJVF9MSVRFUkFMX1BBVEhTUEVDU19FTlZJUk9OTUVOVCwgIjAiLCAxKTsKIAkJCWlmIChlbnZjaGFuZ2VkKQogCQkJCSplbnZjaGFuZ2VkID0gMTsKKwkJfSBlbHNlIGlmICghc3RyY21wKGNtZCwgIi0tZ2xvYi1wYXRoc3BlY3MiKSkgeworCQkJc2V0ZW52KEdJVF9HTE9CX1BBVEhTUEVDU19FTlZJUk9OTUVOVCwgIjEiLCAxKTsKKwkJCWlmIChlbnZjaGFuZ2VkKQorCQkJCSplbnZjaGFuZ2VkID0gMTsKKwkJfSBlbHNlIGlmICghc3RyY21wKGNtZCwgIi0tbm9nbG9iLXBhdGhzcGVjcyIpKSB7CisJCQlzZXRlbnYoR0lUX05PR0xPQl9QQVRIU1BFQ1NfRU5WSVJPTk1FTlQsICIxIiwgMSk7CisJCQlpZiAoZW52Y2hhbmdlZCkKKwkJCQkqZW52Y2hhbmdlZCA9IDE7CisJCX0gZWxzZSBpZiAoIXN0cmNtcChjbWQsICItLWljYXNlLXBhdGhzcGVjcyIpKSB7CisJCQlzZXRlbnYoR0lUX0lDQVNFX1BBVEhTUEVDU19FTlZJUk9OTUVOVCwgIjEiLCAxKTsKKwkJCWlmIChlbnZjaGFuZ2VkKQorCQkJCSplbnZjaGFuZ2VkID0gMTsKIAkJfSBlbHNlIGlmICghc3RyY21wKGNtZCwgIi0tc2hhbGxvdy1maWxlIikpIHsKIAkJCSgqYXJndikrKzsKIAkJCSgqYXJnYyktLTsKLQkJCXNldF9hbHRlcm5hdGVfc2hhbGxvd19maWxlKCgqYXJndilbMF0pOworCQkJc2V0X2FsdGVybmF0ZV9zaGFsbG93X2ZpbGUoKCphcmd2KVswXSwgMSk7CiAJCQlpZiAoZW52Y2hhbmdlZCkKIAkJCQkqZW52Y2hhbmdlZCA9IDE7CisJCX0gZWxzZSBpZiAoIXN0cmNtcChjbWQsICItQyIpKSB7CisJCQlpZiAoKmFyZ2MgPCAyKSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJObyBkaXJlY3RvcnkgZ2l2ZW4gZm9yIC1DLlxuIiApOworCQkJCXVzYWdlKGdpdF91c2FnZV9zdHJpbmcpOworCQkJfQorCQkJaWYgKGNoZGlyKCgqYXJndilbMV0pKQorCQkJCWRpZV9lcnJubygiQ2Fubm90IGNoYW5nZSB0byAnJXMnIiwgKCphcmd2KVsxXSk7CisJCQlpZiAoZW52Y2hhbmdlZCkKKwkJCQkqZW52Y2hhbmdlZCA9IDE7CisJCQkoKmFyZ3YpKys7CisJCQkoKmFyZ2MpLS07CiAJCX0gZWxzZSB7CiAJCQlmcHJpbnRmKHN0ZGVyciwgIlVua25vd24gb3B0aW9uOiAlc1xuIiwgY21kKTsKIAkJCXVzYWdlKGdpdF91c2FnZV9zdHJpbmcpOwpAQCAtMzA5LDEyNiArMzMyLDEzNiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBoYW5kbGVfaW50ZXJuYWxfY29tbWFuZChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCitzdGF0aWMgc3RydWN0IGNtZF9zdHJ1Y3QgY29tbWFuZHNbXSA9IHsKKwl7ICJhZGQiLCBjbWRfYWRkLCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAorCXsgImFubm90YXRlIiwgY21kX2Fubm90YXRlLCBSVU5fU0VUVVAgfSwKKwl7ICJhcHBseSIsIGNtZF9hcHBseSwgUlVOX1NFVFVQX0dFTlRMWSB9LAorCXsgImFyY2hpdmUiLCBjbWRfYXJjaGl2ZSB9LAorCXsgImJpc2VjdC0taGVscGVyIiwgY21kX2Jpc2VjdF9faGVscGVyLCBSVU5fU0VUVVAgfSwKKwl7ICJibGFtZSIsIGNtZF9ibGFtZSwgUlVOX1NFVFVQIH0sCisJeyAiYnJhbmNoIiwgY21kX2JyYW5jaCwgUlVOX1NFVFVQIH0sCisJeyAiYnVuZGxlIiwgY21kX2J1bmRsZSwgUlVOX1NFVFVQX0dFTlRMWSB9LAorCXsgImNhdC1maWxlIiwgY21kX2NhdF9maWxlLCBSVU5fU0VUVVAgfSwKKwl7ICJjaGVjay1hdHRyIiwgY21kX2NoZWNrX2F0dHIsIFJVTl9TRVRVUCB9LAorCXsgImNoZWNrLWlnbm9yZSIsIGNtZF9jaGVja19pZ25vcmUsIFJVTl9TRVRVUCB8IE5FRURfV09SS19UUkVFIH0sCisJeyAiY2hlY2stbWFpbG1hcCIsIGNtZF9jaGVja19tYWlsbWFwLCBSVU5fU0VUVVAgfSwKKwl7ICJjaGVjay1yZWYtZm9ybWF0IiwgY21kX2NoZWNrX3JlZl9mb3JtYXQgfSwKKwl7ICJjaGVja291dCIsIGNtZF9jaGVja291dCwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKKwl7ICJjaGVja291dC1pbmRleCIsIGNtZF9jaGVja291dF9pbmRleCwKKwkJUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUV9LAorCXsgImNoZXJyeSIsIGNtZF9jaGVycnksIFJVTl9TRVRVUCB9LAorCXsgImNoZXJyeS1waWNrIiwgY21kX2NoZXJyeV9waWNrLCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAorCXsgImNsZWFuIiwgY21kX2NsZWFuLCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAorCXsgImNsb25lIiwgY21kX2Nsb25lIH0sCisJeyAiY29sdW1uIiwgY21kX2NvbHVtbiwgUlVOX1NFVFVQX0dFTlRMWSB9LAorCXsgImNvbW1pdCIsIGNtZF9jb21taXQsIFJVTl9TRVRVUCB8IE5FRURfV09SS19UUkVFIH0sCisJeyAiY29tbWl0LXRyZWUiLCBjbWRfY29tbWl0X3RyZWUsIFJVTl9TRVRVUCB9LAorCXsgImNvbmZpZyIsIGNtZF9jb25maWcsIFJVTl9TRVRVUF9HRU5UTFkgfSwKKwl7ICJjb3VudC1vYmplY3RzIiwgY21kX2NvdW50X29iamVjdHMsIFJVTl9TRVRVUCB9LAorCXsgImNyZWRlbnRpYWwiLCBjbWRfY3JlZGVudGlhbCwgUlVOX1NFVFVQX0dFTlRMWSB9LAorCXsgImRlc2NyaWJlIiwgY21kX2Rlc2NyaWJlLCBSVU5fU0VUVVAgfSwKKwl7ICJkaWZmIiwgY21kX2RpZmYgfSwKKwl7ICJkaWZmLWZpbGVzIiwgY21kX2RpZmZfZmlsZXMsIFJVTl9TRVRVUCB8IE5FRURfV09SS19UUkVFIH0sCisJeyAiZGlmZi1pbmRleCIsIGNtZF9kaWZmX2luZGV4LCBSVU5fU0VUVVAgfSwKKwl7ICJkaWZmLXRyZWUiLCBjbWRfZGlmZl90cmVlLCBSVU5fU0VUVVAgfSwKKwl7ICJmYXN0LWV4cG9ydCIsIGNtZF9mYXN0X2V4cG9ydCwgUlVOX1NFVFVQIH0sCisJeyAiZmV0Y2giLCBjbWRfZmV0Y2gsIFJVTl9TRVRVUCB9LAorCXsgImZldGNoLXBhY2siLCBjbWRfZmV0Y2hfcGFjaywgUlVOX1NFVFVQIH0sCisJeyAiZm10LW1lcmdlLW1zZyIsIGNtZF9mbXRfbWVyZ2VfbXNnLCBSVU5fU0VUVVAgfSwKKwl7ICJmb3ItZWFjaC1yZWYiLCBjbWRfZm9yX2VhY2hfcmVmLCBSVU5fU0VUVVAgfSwKKwl7ICJmb3JtYXQtcGF0Y2giLCBjbWRfZm9ybWF0X3BhdGNoLCBSVU5fU0VUVVAgfSwKKwl7ICJmc2NrIiwgY21kX2ZzY2ssIFJVTl9TRVRVUCB9LAorCXsgImZzY2stb2JqZWN0cyIsIGNtZF9mc2NrLCBSVU5fU0VUVVAgfSwKKwl7ICJnYyIsIGNtZF9nYywgUlVOX1NFVFVQIH0sCisJeyAiZ2V0LXRhci1jb21taXQtaWQiLCBjbWRfZ2V0X3Rhcl9jb21taXRfaWQgfSwKKwl7ICJncmVwIiwgY21kX2dyZXAsIFJVTl9TRVRVUF9HRU5UTFkgfSwKKwl7ICJoYXNoLW9iamVjdCIsIGNtZF9oYXNoX29iamVjdCB9LAorCXsgImhlbHAiLCBjbWRfaGVscCB9LAorCXsgImluZGV4LXBhY2siLCBjbWRfaW5kZXhfcGFjaywgUlVOX1NFVFVQX0dFTlRMWSB9LAorCXsgImluaXQiLCBjbWRfaW5pdF9kYiB9LAorCXsgImluaXQtZGIiLCBjbWRfaW5pdF9kYiB9LAorCXsgImxvZyIsIGNtZF9sb2csIFJVTl9TRVRVUCB9LAorCXsgImxzLWZpbGVzIiwgY21kX2xzX2ZpbGVzLCBSVU5fU0VUVVAgfSwKKwl7ICJscy1yZW1vdGUiLCBjbWRfbHNfcmVtb3RlLCBSVU5fU0VUVVBfR0VOVExZIH0sCisJeyAibHMtdHJlZSIsIGNtZF9sc190cmVlLCBSVU5fU0VUVVAgfSwKKwl7ICJtYWlsaW5mbyIsIGNtZF9tYWlsaW5mbyB9LAorCXsgIm1haWxzcGxpdCIsIGNtZF9tYWlsc3BsaXQgfSwKKwl7ICJtZXJnZSIsIGNtZF9tZXJnZSwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKKwl7ICJtZXJnZS1iYXNlIiwgY21kX21lcmdlX2Jhc2UsIFJVTl9TRVRVUCB9LAorCXsgIm1lcmdlLWZpbGUiLCBjbWRfbWVyZ2VfZmlsZSwgUlVOX1NFVFVQX0dFTlRMWSB9LAorCXsgIm1lcmdlLWluZGV4IiwgY21kX21lcmdlX2luZGV4LCBSVU5fU0VUVVAgfSwKKwl7ICJtZXJnZS1vdXJzIiwgY21kX21lcmdlX291cnMsIFJVTl9TRVRVUCB9LAorCXsgIm1lcmdlLXJlY3Vyc2l2ZSIsIGNtZF9tZXJnZV9yZWN1cnNpdmUsIFJVTl9TRVRVUCB8IE5FRURfV09SS19UUkVFIH0sCisJeyAibWVyZ2UtcmVjdXJzaXZlLW91cnMiLCBjbWRfbWVyZ2VfcmVjdXJzaXZlLCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAorCXsgIm1lcmdlLXJlY3Vyc2l2ZS10aGVpcnMiLCBjbWRfbWVyZ2VfcmVjdXJzaXZlLCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAorCXsgIm1lcmdlLXN1YnRyZWUiLCBjbWRfbWVyZ2VfcmVjdXJzaXZlLCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAorCXsgIm1lcmdlLXRyZWUiLCBjbWRfbWVyZ2VfdHJlZSwgUlVOX1NFVFVQIH0sCisJeyAibWt0YWciLCBjbWRfbWt0YWcsIFJVTl9TRVRVUCB9LAorCXsgIm1rdHJlZSIsIGNtZF9ta3RyZWUsIFJVTl9TRVRVUCB9LAorCXsgIm12IiwgY21kX212LCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAorCXsgIm5hbWUtcmV2IiwgY21kX25hbWVfcmV2LCBSVU5fU0VUVVAgfSwKKwl7ICJub3RlcyIsIGNtZF9ub3RlcywgUlVOX1NFVFVQIH0sCisJeyAicGFjay1vYmplY3RzIiwgY21kX3BhY2tfb2JqZWN0cywgUlVOX1NFVFVQIH0sCisJeyAicGFjay1yZWR1bmRhbnQiLCBjbWRfcGFja19yZWR1bmRhbnQsIFJVTl9TRVRVUCB9LAorCXsgInBhY2stcmVmcyIsIGNtZF9wYWNrX3JlZnMsIFJVTl9TRVRVUCB9LAorCXsgInBhdGNoLWlkIiwgY21kX3BhdGNoX2lkIH0sCisJeyAicGlja2F4ZSIsIGNtZF9ibGFtZSwgUlVOX1NFVFVQIH0sCisJeyAicHJ1bmUiLCBjbWRfcHJ1bmUsIFJVTl9TRVRVUCB9LAorCXsgInBydW5lLXBhY2tlZCIsIGNtZF9wcnVuZV9wYWNrZWQsIFJVTl9TRVRVUCB9LAorCXsgInB1c2giLCBjbWRfcHVzaCwgUlVOX1NFVFVQIH0sCisJeyAicmVhZC10cmVlIiwgY21kX3JlYWRfdHJlZSwgUlVOX1NFVFVQIH0sCisJeyAicmVjZWl2ZS1wYWNrIiwgY21kX3JlY2VpdmVfcGFjayB9LAorCXsgInJlZmxvZyIsIGNtZF9yZWZsb2csIFJVTl9TRVRVUCB9LAorCXsgInJlbW90ZSIsIGNtZF9yZW1vdGUsIFJVTl9TRVRVUCB9LAorCXsgInJlbW90ZS1leHQiLCBjbWRfcmVtb3RlX2V4dCB9LAorCXsgInJlbW90ZS1mZCIsIGNtZF9yZW1vdGVfZmQgfSwKKwl7ICJyZXBhY2siLCBjbWRfcmVwYWNrLCBSVU5fU0VUVVAgfSwKKwl7ICJyZXBsYWNlIiwgY21kX3JlcGxhY2UsIFJVTl9TRVRVUCB9LAorCXsgInJlcmVyZSIsIGNtZF9yZXJlcmUsIFJVTl9TRVRVUCB9LAorCXsgInJlc2V0IiwgY21kX3Jlc2V0LCBSVU5fU0VUVVAgfSwKKwl7ICJyZXYtbGlzdCIsIGNtZF9yZXZfbGlzdCwgUlVOX1NFVFVQIH0sCisJeyAicmV2LXBhcnNlIiwgY21kX3Jldl9wYXJzZSB9LAorCXsgInJldmVydCIsIGNtZF9yZXZlcnQsIFJVTl9TRVRVUCB8IE5FRURfV09SS19UUkVFIH0sCisJeyAicm0iLCBjbWRfcm0sIFJVTl9TRVRVUCB9LAorCXsgInNlbmQtcGFjayIsIGNtZF9zZW5kX3BhY2ssIFJVTl9TRVRVUCB9LAorCXsgInNob3J0bG9nIiwgY21kX3Nob3J0bG9nLCBSVU5fU0VUVVBfR0VOVExZIHwgVVNFX1BBR0VSIH0sCisJeyAic2hvdyIsIGNtZF9zaG93LCBSVU5fU0VUVVAgfSwKKwl7ICJzaG93LWJyYW5jaCIsIGNtZF9zaG93X2JyYW5jaCwgUlVOX1NFVFVQIH0sCisJeyAic2hvdy1yZWYiLCBjbWRfc2hvd19yZWYsIFJVTl9TRVRVUCB9LAorCXsgInN0YWdlIiwgY21kX2FkZCwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKKwl7ICJzdGF0dXMiLCBjbWRfc3RhdHVzLCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAorCXsgInN0cmlwc3BhY2UiLCBjbWRfc3RyaXBzcGFjZSB9LAorCXsgInN5bWJvbGljLXJlZiIsIGNtZF9zeW1ib2xpY19yZWYsIFJVTl9TRVRVUCB9LAorCXsgInRhZyIsIGNtZF90YWcsIFJVTl9TRVRVUCB9LAorCXsgInVucGFjay1maWxlIiwgY21kX3VucGFja19maWxlLCBSVU5fU0VUVVAgfSwKKwl7ICJ1bnBhY2stb2JqZWN0cyIsIGNtZF91bnBhY2tfb2JqZWN0cywgUlVOX1NFVFVQIH0sCisJeyAidXBkYXRlLWluZGV4IiwgY21kX3VwZGF0ZV9pbmRleCwgUlVOX1NFVFVQIH0sCisJeyAidXBkYXRlLXJlZiIsIGNtZF91cGRhdGVfcmVmLCBSVU5fU0VUVVAgfSwKKwl7ICJ1cGRhdGUtc2VydmVyLWluZm8iLCBjbWRfdXBkYXRlX3NlcnZlcl9pbmZvLCBSVU5fU0VUVVAgfSwKKwl7ICJ1cGxvYWQtYXJjaGl2ZSIsIGNtZF91cGxvYWRfYXJjaGl2ZSB9LAorCXsgInVwbG9hZC1hcmNoaXZlLS13cml0ZXIiLCBjbWRfdXBsb2FkX2FyY2hpdmVfd3JpdGVyIH0sCisJeyAidmFyIiwgY21kX3ZhciwgUlVOX1NFVFVQX0dFTlRMWSB9LAorCXsgInZlcmlmeS1wYWNrIiwgY21kX3ZlcmlmeV9wYWNrIH0sCisJeyAidmVyaWZ5LXRhZyIsIGNtZF92ZXJpZnlfdGFnLCBSVU5fU0VUVVAgfSwKKwl7ICJ2ZXJzaW9uIiwgY21kX3ZlcnNpb24gfSwKKwl7ICJ3aGF0Y2hhbmdlZCIsIGNtZF93aGF0Y2hhbmdlZCwgUlVOX1NFVFVQIH0sCisJeyAid3JpdGUtdHJlZSIsIGNtZF93cml0ZV90cmVlLCBSVU5fU0VUVVAgfSwKK307CisKK2ludCBpc19idWlsdGluKGNvbnN0IGNoYXIgKnMpCit7CisJaW50IGk7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29tbWFuZHMpOyBpKyspIHsKKwkJc3RydWN0IGNtZF9zdHJ1Y3QgKnAgPSBjb21tYW5kcytpOworCQlpZiAoIXN0cmNtcChzLCBwLT5jbWQpKQorCQkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVfYnVpbHRpbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiB7CiAJY29uc3QgY2hhciAqY21kID0gYXJndlswXTsKLQlzdGF0aWMgc3RydWN0IGNtZF9zdHJ1Y3QgY29tbWFuZHNbXSA9IHsKLQkJeyAiYWRkIiwgY21kX2FkZCwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKLQkJeyAiYW5ub3RhdGUiLCBjbWRfYW5ub3RhdGUsIFJVTl9TRVRVUCB9LAotCQl7ICJhcHBseSIsIGNtZF9hcHBseSwgUlVOX1NFVFVQX0dFTlRMWSB9LAotCQl7ICJhcmNoaXZlIiwgY21kX2FyY2hpdmUgfSwKLQkJeyAiYmlzZWN0LS1oZWxwZXIiLCBjbWRfYmlzZWN0X19oZWxwZXIsIFJVTl9TRVRVUCB9LAotCQl7ICJibGFtZSIsIGNtZF9ibGFtZSwgUlVOX1NFVFVQIH0sCi0JCXsgImJyYW5jaCIsIGNtZF9icmFuY2gsIFJVTl9TRVRVUCB9LAotCQl7ICJidW5kbGUiLCBjbWRfYnVuZGxlLCBSVU5fU0VUVVBfR0VOVExZIH0sCi0JCXsgImNhdC1maWxlIiwgY21kX2NhdF9maWxlLCBSVU5fU0VUVVAgfSwKLQkJeyAiY2hlY2stYXR0ciIsIGNtZF9jaGVja19hdHRyLCBSVU5fU0VUVVAgfSwKLQkJeyAiY2hlY2staWdub3JlIiwgY21kX2NoZWNrX2lnbm9yZSwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKLQkJeyAiY2hlY2stbWFpbG1hcCIsIGNtZF9jaGVja19tYWlsbWFwLCBSVU5fU0VUVVAgfSwKLQkJeyAiY2hlY2stcmVmLWZvcm1hdCIsIGNtZF9jaGVja19yZWZfZm9ybWF0IH0sCi0JCXsgImNoZWNrb3V0IiwgY21kX2NoZWNrb3V0LCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAotCQl7ICJjaGVja291dC1pbmRleCIsIGNtZF9jaGVja291dF9pbmRleCwKLQkJCVJVTl9TRVRVUCB8IE5FRURfV09SS19UUkVFfSwKLQkJeyAiY2hlcnJ5IiwgY21kX2NoZXJyeSwgUlVOX1NFVFVQIH0sCi0JCXsgImNoZXJyeS1waWNrIiwgY21kX2NoZXJyeV9waWNrLCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAotCQl7ICJjbGVhbiIsIGNtZF9jbGVhbiwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKLQkJeyAiY2xvbmUiLCBjbWRfY2xvbmUgfSwKLQkJeyAiY29sdW1uIiwgY21kX2NvbHVtbiwgUlVOX1NFVFVQX0dFTlRMWSB9LAotCQl7ICJjb21taXQiLCBjbWRfY29tbWl0LCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAotCQl7ICJjb21taXQtdHJlZSIsIGNtZF9jb21taXRfdHJlZSwgUlVOX1NFVFVQIH0sCi0JCXsgImNvbmZpZyIsIGNtZF9jb25maWcsIFJVTl9TRVRVUF9HRU5UTFkgfSwKLQkJeyAiY291bnQtb2JqZWN0cyIsIGNtZF9jb3VudF9vYmplY3RzLCBSVU5fU0VUVVAgfSwKLQkJeyAiY3JlZGVudGlhbCIsIGNtZF9jcmVkZW50aWFsLCBSVU5fU0VUVVBfR0VOVExZIH0sCi0JCXsgImRlc2NyaWJlIiwgY21kX2Rlc2NyaWJlLCBSVU5fU0VUVVAgfSwKLQkJeyAiZGlmZiIsIGNtZF9kaWZmIH0sCi0JCXsgImRpZmYtZmlsZXMiLCBjbWRfZGlmZl9maWxlcywgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKLQkJeyAiZGlmZi1pbmRleCIsIGNtZF9kaWZmX2luZGV4LCBSVU5fU0VUVVAgfSwKLQkJeyAiZGlmZi10cmVlIiwgY21kX2RpZmZfdHJlZSwgUlVOX1NFVFVQIH0sCi0JCXsgImZhc3QtZXhwb3J0IiwgY21kX2Zhc3RfZXhwb3J0LCBSVU5fU0VUVVAgfSwKLQkJeyAiZmV0Y2giLCBjbWRfZmV0Y2gsIFJVTl9TRVRVUCB9LAotCQl7ICJmZXRjaC1wYWNrIiwgY21kX2ZldGNoX3BhY2ssIFJVTl9TRVRVUCB9LAotCQl7ICJmbXQtbWVyZ2UtbXNnIiwgY21kX2ZtdF9tZXJnZV9tc2csIFJVTl9TRVRVUCB9LAotCQl7ICJmb3ItZWFjaC1yZWYiLCBjbWRfZm9yX2VhY2hfcmVmLCBSVU5fU0VUVVAgfSwKLQkJeyAiZm9ybWF0LXBhdGNoIiwgY21kX2Zvcm1hdF9wYXRjaCwgUlVOX1NFVFVQIH0sCi0JCXsgImZzY2siLCBjbWRfZnNjaywgUlVOX1NFVFVQIH0sCi0JCXsgImZzY2stb2JqZWN0cyIsIGNtZF9mc2NrLCBSVU5fU0VUVVAgfSwKLQkJeyAiZ2MiLCBjbWRfZ2MsIFJVTl9TRVRVUCB9LAotCQl7ICJnZXQtdGFyLWNvbW1pdC1pZCIsIGNtZF9nZXRfdGFyX2NvbW1pdF9pZCB9LAotCQl7ICJncmVwIiwgY21kX2dyZXAsIFJVTl9TRVRVUF9HRU5UTFkgfSwKLQkJeyAiaGFzaC1vYmplY3QiLCBjbWRfaGFzaF9vYmplY3QgfSwKLQkJeyAiaGVscCIsIGNtZF9oZWxwIH0sCi0JCXsgImluZGV4LXBhY2siLCBjbWRfaW5kZXhfcGFjaywgUlVOX1NFVFVQX0dFTlRMWSB9LAotCQl7ICJpbml0IiwgY21kX2luaXRfZGIgfSwKLQkJeyAiaW5pdC1kYiIsIGNtZF9pbml0X2RiIH0sCi0JCXsgImxvZyIsIGNtZF9sb2csIFJVTl9TRVRVUCB9LAotCQl7ICJscy1maWxlcyIsIGNtZF9sc19maWxlcywgUlVOX1NFVFVQIH0sCi0JCXsgImxzLXJlbW90ZSIsIGNtZF9sc19yZW1vdGUsIFJVTl9TRVRVUF9HRU5UTFkgfSwKLQkJeyAibHMtdHJlZSIsIGNtZF9sc190cmVlLCBSVU5fU0VUVVAgfSwKLQkJeyAibWFpbGluZm8iLCBjbWRfbWFpbGluZm8gfSwKLQkJeyAibWFpbHNwbGl0IiwgY21kX21haWxzcGxpdCB9LAotCQl7ICJtZXJnZSIsIGNtZF9tZXJnZSwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKLQkJeyAibWVyZ2UtYmFzZSIsIGNtZF9tZXJnZV9iYXNlLCBSVU5fU0VUVVAgfSwKLQkJeyAibWVyZ2UtZmlsZSIsIGNtZF9tZXJnZV9maWxlLCBSVU5fU0VUVVBfR0VOVExZIH0sCi0JCXsgIm1lcmdlLWluZGV4IiwgY21kX21lcmdlX2luZGV4LCBSVU5fU0VUVVAgfSwKLQkJeyAibWVyZ2Utb3VycyIsIGNtZF9tZXJnZV9vdXJzLCBSVU5fU0VUVVAgfSwKLQkJeyAibWVyZ2UtcmVjdXJzaXZlIiwgY21kX21lcmdlX3JlY3Vyc2l2ZSwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKLQkJeyAibWVyZ2UtcmVjdXJzaXZlLW91cnMiLCBjbWRfbWVyZ2VfcmVjdXJzaXZlLCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAotCQl7ICJtZXJnZS1yZWN1cnNpdmUtdGhlaXJzIiwgY21kX21lcmdlX3JlY3Vyc2l2ZSwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKLQkJeyAibWVyZ2Utc3VidHJlZSIsIGNtZF9tZXJnZV9yZWN1cnNpdmUsIFJVTl9TRVRVUCB8IE5FRURfV09SS19UUkVFIH0sCi0JCXsgIm1lcmdlLXRyZWUiLCBjbWRfbWVyZ2VfdHJlZSwgUlVOX1NFVFVQIH0sCi0JCXsgIm1rdGFnIiwgY21kX21rdGFnLCBSVU5fU0VUVVAgfSwKLQkJeyAibWt0cmVlIiwgY21kX21rdHJlZSwgUlVOX1NFVFVQIH0sCi0JCXsgIm12IiwgY21kX212LCBSVU5fU0VUVVAgfCBORUVEX1dPUktfVFJFRSB9LAotCQl7ICJuYW1lLXJldiIsIGNtZF9uYW1lX3JldiwgUlVOX1NFVFVQIH0sCi0JCXsgIm5vdGVzIiwgY21kX25vdGVzLCBSVU5fU0VUVVAgfSwKLQkJeyAicGFjay1vYmplY3RzIiwgY21kX3BhY2tfb2JqZWN0cywgUlVOX1NFVFVQIH0sCi0JCXsgInBhY2stcmVkdW5kYW50IiwgY21kX3BhY2tfcmVkdW5kYW50LCBSVU5fU0VUVVAgfSwKLQkJeyAicGFjay1yZWZzIiwgY21kX3BhY2tfcmVmcywgUlVOX1NFVFVQIH0sCi0JCXsgInBhdGNoLWlkIiwgY21kX3BhdGNoX2lkIH0sCi0JCXsgInBlZWstcmVtb3RlIiwgY21kX2xzX3JlbW90ZSwgUlVOX1NFVFVQX0dFTlRMWSB9LAotCQl7ICJwaWNrYXhlIiwgY21kX2JsYW1lLCBSVU5fU0VUVVAgfSwKLQkJeyAicHJ1bmUiLCBjbWRfcHJ1bmUsIFJVTl9TRVRVUCB9LAotCQl7ICJwcnVuZS1wYWNrZWQiLCBjbWRfcHJ1bmVfcGFja2VkLCBSVU5fU0VUVVAgfSwKLQkJeyAicHVzaCIsIGNtZF9wdXNoLCBSVU5fU0VUVVAgfSwKLQkJeyAicmVhZC10cmVlIiwgY21kX3JlYWRfdHJlZSwgUlVOX1NFVFVQIH0sCi0JCXsgInJlY2VpdmUtcGFjayIsIGNtZF9yZWNlaXZlX3BhY2sgfSwKLQkJeyAicmVmbG9nIiwgY21kX3JlZmxvZywgUlVOX1NFVFVQIH0sCi0JCXsgInJlbW90ZSIsIGNtZF9yZW1vdGUsIFJVTl9TRVRVUCB9LAotCQl7ICJyZW1vdGUtZXh0IiwgY21kX3JlbW90ZV9leHQgfSwKLQkJeyAicmVtb3RlLWZkIiwgY21kX3JlbW90ZV9mZCB9LAotCQl7ICJyZXBsYWNlIiwgY21kX3JlcGxhY2UsIFJVTl9TRVRVUCB9LAotCQl7ICJyZXBvLWNvbmZpZyIsIGNtZF9yZXBvX2NvbmZpZywgUlVOX1NFVFVQX0dFTlRMWSB9LAotCQl7ICJyZXJlcmUiLCBjbWRfcmVyZXJlLCBSVU5fU0VUVVAgfSwKLQkJeyAicmVzZXQiLCBjbWRfcmVzZXQsIFJVTl9TRVRVUCB9LAotCQl7ICJyZXYtbGlzdCIsIGNtZF9yZXZfbGlzdCwgUlVOX1NFVFVQIH0sCi0JCXsgInJldi1wYXJzZSIsIGNtZF9yZXZfcGFyc2UgfSwKLQkJeyAicmV2ZXJ0IiwgY21kX3JldmVydCwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKLQkJeyAicm0iLCBjbWRfcm0sIFJVTl9TRVRVUCB9LAotCQl7ICJzZW5kLXBhY2siLCBjbWRfc2VuZF9wYWNrLCBSVU5fU0VUVVAgfSwKLQkJeyAic2hvcnRsb2ciLCBjbWRfc2hvcnRsb2csIFJVTl9TRVRVUF9HRU5UTFkgfCBVU0VfUEFHRVIgfSwKLQkJeyAic2hvdyIsIGNtZF9zaG93LCBSVU5fU0VUVVAgfSwKLQkJeyAic2hvdy1icmFuY2giLCBjbWRfc2hvd19icmFuY2gsIFJVTl9TRVRVUCB9LAotCQl7ICJzaG93LXJlZiIsIGNtZF9zaG93X3JlZiwgUlVOX1NFVFVQIH0sCi0JCXsgInN0YWdlIiwgY21kX2FkZCwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKLQkJeyAic3RhdHVzIiwgY21kX3N0YXR1cywgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKLQkJeyAic3RyaXBzcGFjZSIsIGNtZF9zdHJpcHNwYWNlIH0sCi0JCXsgInN5bWJvbGljLXJlZiIsIGNtZF9zeW1ib2xpY19yZWYsIFJVTl9TRVRVUCB9LAotCQl7ICJ0YWciLCBjbWRfdGFnLCBSVU5fU0VUVVAgfSwKLQkJeyAidGFyLXRyZWUiLCBjbWRfdGFyX3RyZWUgfSwKLQkJeyAidW5wYWNrLWZpbGUiLCBjbWRfdW5wYWNrX2ZpbGUsIFJVTl9TRVRVUCB9LAotCQl7ICJ1bnBhY2stb2JqZWN0cyIsIGNtZF91bnBhY2tfb2JqZWN0cywgUlVOX1NFVFVQIH0sCi0JCXsgInVwZGF0ZS1pbmRleCIsIGNtZF91cGRhdGVfaW5kZXgsIFJVTl9TRVRVUCB9LAotCQl7ICJ1cGRhdGUtcmVmIiwgY21kX3VwZGF0ZV9yZWYsIFJVTl9TRVRVUCB9LAotCQl7ICJ1cGRhdGUtc2VydmVyLWluZm8iLCBjbWRfdXBkYXRlX3NlcnZlcl9pbmZvLCBSVU5fU0VUVVAgfSwKLQkJeyAidXBsb2FkLWFyY2hpdmUiLCBjbWRfdXBsb2FkX2FyY2hpdmUgfSwKLQkJeyAidXBsb2FkLWFyY2hpdmUtLXdyaXRlciIsIGNtZF91cGxvYWRfYXJjaGl2ZV93cml0ZXIgfSwKLQkJeyAidmFyIiwgY21kX3ZhciwgUlVOX1NFVFVQX0dFTlRMWSB9LAotCQl7ICJ2ZXJpZnktcGFjayIsIGNtZF92ZXJpZnlfcGFjayB9LAotCQl7ICJ2ZXJpZnktdGFnIiwgY21kX3ZlcmlmeV90YWcsIFJVTl9TRVRVUCB9LAotCQl7ICJ2ZXJzaW9uIiwgY21kX3ZlcnNpb24gfSwKLQkJeyAid2hhdGNoYW5nZWQiLCBjbWRfd2hhdGNoYW5nZWQsIFJVTl9TRVRVUCB9LAotCQl7ICJ3cml0ZS10cmVlIiwgY21kX3dyaXRlX3RyZWUsIFJVTl9TRVRVUCB9LAotCX07CiAJaW50IGk7CiAJc3RhdGljIGNvbnN0IGNoYXIgZXh0W10gPSBTVFJJUF9FWFRFTlNJT047CiAKQEAgLTQ5Niw4ICs1MjksOCBAQAogCWludCBkb25lX2FsaWFzID0gMDsKIAogCXdoaWxlICgxKSB7Ci0JCS8qIFNlZSBpZiBpdCdzIGFuIGludGVybmFsIGNvbW1hbmQgKi8KLQkJaGFuZGxlX2ludGVybmFsX2NvbW1hbmQoKmFyZ2NwLCAqYXJndik7CisJCS8qIFNlZSBpZiBpdCdzIGEgYnVpbHRpbiAqLworCQloYW5kbGVfYnVpbHRpbigqYXJnY3AsICphcmd2KTsKIAogCQkvKiAuLiB0aGVuIHRyeSB0aGUgZXh0ZXJuYWwgb25lcyAqLwogCQlleGVjdl9kYXNoZWRfZXh0ZXJuYWwoKmFyZ3YpOwpAQCAtNTQyLDE0ICs1NzUsMTQgQEAKIAkgKiAgLSBjYW5ub3QgZXhlY3V0ZSBpdCBleHRlcm5hbGx5IChzaW5jZSBpdCB3b3VsZCBqdXN0IGRvCiAJICogICAgdGhlIHNhbWUgdGhpbmcgb3ZlciBhZ2FpbikKIAkgKgotCSAqIFNvIHdlIGp1c3QgZGlyZWN0bHkgY2FsbCB0aGUgaW50ZXJuYWwgY29tbWFuZCBoYW5kbGVyLCBhbmQKLQkgKiBkaWUgaWYgdGhhdCBvbmUgY2Fubm90IGhhbmRsZSBpdC4KKwkgKiBTbyB3ZSBqdXN0IGRpcmVjdGx5IGNhbGwgdGhlIGJ1aWx0aW4gaGFuZGxlciwgYW5kIGRpZSBpZgorCSAqIHRoYXQgb25lIGNhbm5vdCBoYW5kbGUgaXQuCiAJICovCi0JaWYgKCFwcmVmaXhjbXAoY21kLCAiZ2l0LSIpKSB7CisJaWYgKHN0YXJ0c193aXRoKGNtZCwgImdpdC0iKSkgewogCQljbWQgKz0gNDsKIAkJYXJndlswXSA9IGNtZDsKLQkJaGFuZGxlX2ludGVybmFsX2NvbW1hbmQoYXJnYywgYXJndik7Ci0JCWRpZSgiY2Fubm90IGhhbmRsZSAlcyBpbnRlcm5hbGx5IiwgY21kKTsKKwkJaGFuZGxlX2J1aWx0aW4oYXJnYywgYXJndik7CisJCWRpZSgiY2Fubm90IGhhbmRsZSAlcyBhcyBhIGJ1aWx0aW4iLCBjbWQpOwogCX0KIAogCS8qIExvb2sgZm9yIGZsYWdzLi4gKi8KQEAgLTU1Nyw3ICs1OTAsNyBAQAogCWFyZ2MtLTsKIAloYW5kbGVfb3B0aW9ucygmYXJndiwgJmFyZ2MsIE5VTEwpOwogCWlmIChhcmdjID4gMCkgewotCQlpZiAoIXByZWZpeGNtcChhcmd2WzBdLCAiLS0iKSkKKwkJaWYgKHN0YXJ0c193aXRoKGFyZ3ZbMF0sICItLSIpKQogCQkJYXJndlswXSArPSAyOwogCX0gZWxzZSB7CiAJCS8qIFRoZSB1c2VyIGRpZG4ndCBzcGVjaWZ5IGEgY29tbWFuZDsgZ2l2ZSB0aGVtIGhlbHAgKi8KZGlmZiAtLWdpdCBhL2dpdC5yYyBiL2dpdC5yYwppbmRleCBiY2U2ZGI5Li4zM2FhZmI3IDEwMDY0NAotLS0gYS9naXQucmMKKysrIGIvZ2l0LnJjCkBAIC0xLDYgKzEsNiBAQAogMSBWRVJTSU9OSU5GTwotRklMRVZFUlNJT04gICAgIE1BSk9SLE1JTk9SLFBBVENILDAKLVBST0RVQ1RWRVJTSU9OICBNQUpPUixNSU5PUixQQVRDSCwwCitGSUxFVkVSU0lPTiAgICAgTUFKT1IsTUlOT1IsMCwwCitQUk9EVUNUVkVSU0lPTiAgTUFKT1IsTUlOT1IsMCwwCiBCRUdJTgogICBCTE9DSyAiU3RyaW5nRmlsZUluZm8iCiAgIEJFR0lOCmRpZmYgLS1naXQgYS9naXRfcmVtb3RlX2hlbHBlcnMvLmdpdGlnbm9yZSBiL2dpdF9yZW1vdGVfaGVscGVycy8uZ2l0aWdub3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjA0MGFmLi4wMDAwMDAwCi0tLSBhL2dpdF9yZW1vdGVfaGVscGVycy8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0vR0lULVBZVEhPTi1WRVJTSU9OCi0vYnVpbGQKLS9kaXN0CmRpZmYgLS1naXQgYS9naXRfcmVtb3RlX2hlbHBlcnMvTWFrZWZpbGUgYi9naXRfcmVtb3RlX2hlbHBlcnMvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkMTIyMzIuLjAwMDAwMDAKLS0tIGEvZ2l0X3JlbW90ZV9oZWxwZXJzL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotIwotIyBNYWtlZmlsZSBmb3IgdGhlIGdpdF9yZW1vdGVfaGVscGVycyBweXRob24gc3VwcG9ydCBtb2R1bGVzCi0jCi1weXNldHVwZmlsZTo9c2V0dXAucHkKLQotIyBTaGVsbCBxdW90ZSAoZG8gbm90IHVzZSAkKGNhbGwpIHRvIGFjY29tbW9kYXRlIGFuY2llbnQgc2V0dXBzKTsKLURFU1RESVJfU1EgPSAkKHN1YnN0ICcsJ1wnJywkKERFU1RESVIpKQotCi1pZm5kZWYgUFlUSE9OX1BBVEgKLQlpZmVxICgkKHVuYW1lX1MpLEZyZWVCU0QpCi0JCVBZVEhPTl9QQVRIID0gL3Vzci9sb2NhbC9iaW4vcHl0aG9uCi0JZWxzZQotCQlQWVRIT05fUEFUSCA9IC91c3IvYmluL3B5dGhvbgotCWVuZGlmCi1lbmRpZgotaWZuZGVmIHByZWZpeAotCXByZWZpeCA9ICQoSE9NRSkKLWVuZGlmCi1pZm5kZWYgVgotCVFVSUVUID0gQAotCVFVSUVUU0VUVVAgPSAtLXF1aWV0Ci1lbmRpZgotCi1QWUxJQkRJUj0kKHNoZWxsICQoUFlUSE9OX1BBVEgpIC1jIFwKLQkgImltcG9ydCBzeXM7IFwKLQkgcHJpbnQoJ2xpYi9weXRob24laS4laS9zaXRlLXBhY2thZ2VzJyAlIHN5cy52ZXJzaW9uX2luZm9bOjJdKSIpCi0KLXB5X3ZlcnNpb249JChzaGVsbCAkKFBZVEhPTl9QQVRIKSAtYyBcCi0JJ2ltcG9ydCBzeXM7IHByaW50KCIlaS4laSIgJSBzeXMudmVyc2lvbl9pbmZvWzoyXSknKQotCi1hbGw6ICQocHlzZXR1cGZpbGUpCi0JJChRVUlFVCl0ZXN0ICIkJChjYXQgR0lULVBZVEhPTi1WRVJTSU9OIDI+L2Rldi9udWxsKSIgPSAiJChweV92ZXJzaW9uKSIgfHwgXAotCWZsYWdzPS0tZm9yY2U7IFwKLQkkKFBZVEhPTl9QQVRIKSAkKHB5c2V0dXBmaWxlKSAkKFFVSUVUU0VUVVApIGJ1aWxkICQkZmxhZ3MKLQkkKFFVSUVUKWVjaG8gIiQocHlfdmVyc2lvbikiID5HSVQtUFlUSE9OLVZFUlNJT04KLQotaW5zdGFsbDogJChweXNldHVwZmlsZSkKLQkkKFBZVEhPTl9QQVRIKSAkKHB5c2V0dXBmaWxlKSBpbnN0YWxsIC0tcHJlZml4ICQoREVTVERJUl9TUSkkKHByZWZpeCkKLQotaW5zdGxpYmRpcjogJChweXNldHVwZmlsZSkKLQlAZWNobyAiJChERVNURElSX1NRKSQocHJlZml4KS8kKFBZTElCRElSKSIKLQotY2xlYW46Ci0JJChRVUlFVCkkKFBZVEhPTl9QQVRIKSAkKHB5c2V0dXBmaWxlKSAkKFFVSUVUU0VUVVApIGNsZWFuIC1hCi0JJChSTSkgKi5weW8gKi5weWMgR0lULVBZVEhPTi1WRVJTSU9OCmRpZmYgLS1naXQgYS9naXRfcmVtb3RlX2hlbHBlcnMvX19pbml0X18ucHkgYi9naXRfcmVtb3RlX2hlbHBlcnMvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwZjY5Y2IuLjAwMDAwMDAKLS0tIGEvZ2l0X3JlbW90ZV9oZWxwZXJzL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0KLSIiIlN1cHBvcnQgbGlicmFyeSBwYWNrYWdlIGZvciBnaXQgcmVtb3RlIGhlbHBlcnMuCi0KLUdpdCByZW1vdGUgaGVscGVycyBhcmUgaGVscGVyIGNvbW1hbmRzIHRoYXQgaW50ZXJmYWNlcyB3aXRoIGEgbm9uLWdpdAotcmVwb3NpdG9yeSB0byBwcm92aWRlIGF1dG9tYXRpYyBpbXBvcnQgb2Ygbm9uLWdpdCBoaXN0b3J5IGludG8gYSBHaXQKLXJlcG9zaXRvcnkuCi0KLVRoaXMgcGFja2FnZSBwcm92aWRlcyB0aGUgc3VwcG9ydCBsaWJyYXJ5IG5lZWRlZCBieSB0aGVzZSBoZWxwZXJzLi4KLVRoZSBmb2xsb3dpbmcgbW9kdWxlcyBhcmUgaW5jbHVkZWQ6Ci0KLS0gZ2l0LmdpdCAtIEludGVyYWN0aW9uIHdpdGggR2l0IHJlcG9zaXRvcmllcwotCi0tIHV0aWwgLSBHZW5lcmFsIHV0aWxpdHkgZnVuY3Rpb25hbGl0eSB1c2UgYnkgdGhlIG90aGVyIG1vZHVsZXMgaW4KLSAgICAgICAgIHRoaXMgcGFja2FnZSwgYW5kIGFsc28gdXNlZCBkaXJlY3RseSBieSB0aGUgaGVscGVycy4KLSIiIgpkaWZmIC0tZ2l0IGEvZ2l0X3JlbW90ZV9oZWxwZXJzL2dpdC9fX2luaXRfXy5weSBiL2dpdF9yZW1vdGVfaGVscGVycy9naXQvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkYmIxYjAuLjAwMDAwMDAKLS0tIGEvZ2l0X3JlbW90ZV9oZWxwZXJzL2dpdC9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotaW1wb3J0IHN5cwotaWYgc3lzLmhleHZlcnNpb24gPCAweDAyMDQwMDAwOgotICAgICMgVGhlIGxpbWl0ZXIgaXMgdGhlIHN1YnByb2Nlc3MgbW9kdWxlCi0gICAgc3lzLnN0ZGVyci53cml0ZSgiZ2l0X3JlbW90ZV9oZWxwZXJzOiByZXF1aXJlcyBQeXRob24gMi40IG9yIGxhdGVyLlxuIikKLSAgICBzeXMuZXhpdCgxKQpkaWZmIC0tZ2l0IGEvZ2l0X3JlbW90ZV9oZWxwZXJzL2dpdC9leHBvcnRlci5weSBiL2dpdF9yZW1vdGVfaGVscGVycy9naXQvZXhwb3J0ZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllZTVmOTYuLjAwMDAwMDAKLS0tIGEvZ2l0X3JlbW90ZV9oZWxwZXJzL2dpdC9leHBvcnRlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLWltcG9ydCBvcwotaW1wb3J0IHN1YnByb2Nlc3MKLWltcG9ydCBzeXMKLQotZnJvbSBnaXRfcmVtb3RlX2hlbHBlcnMudXRpbCBpbXBvcnQgY2hlY2tfY2FsbAotCi0KLWNsYXNzIEdpdEV4cG9ydGVyKG9iamVjdCk6Ci0gICAgIiIiQW4gZXhwb3J0ZXIgZm9yIHRlc3RnaXQgcmVwb3NpdG9yaWVzLgotCi0gICAgVGhlIGV4cG9ydGVyIHNpbXBseSBkZWxlZ2F0ZXMgdG8gZ2l0IGZhc3QtZXhwb3J0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcG8pOgotICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IGV4cG9ydGVyIGZvciB0aGUgc3BlY2lmaWVkIHJlcG8uCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYucmVwbyA9IHJlcG8KLQotICAgIGRlZiBleHBvcnRfcmVwbyhzZWxmLCBiYXNlLCByZWZzPU5vbmUpOgotICAgICAgICAiIiJFeHBvcnRzIGEgZmFzdC1leHBvcnQgc3RyZWFtIGZvciB0aGUgZ2l2ZW4gZGlyZWN0b3J5LgotCi0gICAgICAgIFNpbXBseSBkZWxlZ2F0ZXMgdG8gZ2l0IGZhc3QtZXB4b3J0IGFuZCBwaXBlcyBpdCB0aHJvdWdoIHNlZAotICAgICAgICB0byBtYWtlIHRoZSByZWZzIHNob3cgdXAgdW5kZXIgdGhlIHByZWZpeCByYXRoZXIgdGhhbiB0aGUKLSAgICAgICAgZGVmYXVsdCByZWZzL2hlYWRzLiBUaGlzIGlzIHRvIGRlbW9uc3RyYXRlIGhvdyB0aGUgZXhwb3J0Ci0gICAgICAgIGRhdGEgY2FuIGJlIHN0b3JlZCB1bmRlciBpdCdzIG93biByZWYgKHVzaW5nIHRoZSByZWZzcGVjCi0gICAgICAgIGNhcGFiaWxpdHkpLgotCi0gICAgICAgIElmIE5vbmUsIHJlZnMgZGVmYXVsdHMgdG8gWyJIRUFEIl0uCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIG5vdCByZWZzOgotICAgICAgICAgICAgcmVmcyA9IFsiSEVBRCJdCi0KLSAgICAgICAgZGlybmFtZSA9IHNlbGYucmVwby5nZXRfYmFzZV9wYXRoKGJhc2UpCi0gICAgICAgIHBhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGRpcm5hbWUsICd0ZXN0Z2l0Lm1hcmtzJykpCi0KLSAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRpcm5hbWUpOgotICAgICAgICAgICAgb3MubWFrZWRpcnMoZGlybmFtZSkKLQotICAgICAgICBwcmludCAiZmVhdHVyZSByZWxhdGl2ZS1tYXJrcyIKLSAgICAgICAgaWYgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKGRpcm5hbWUsICdnaXQubWFya3MnKSk6Ci0gICAgICAgICAgICBwcmludCAiZmVhdHVyZSBpbXBvcnQtbWFya3M9JXMvZ2l0Lm1hcmtzIiAlIHNlbGYucmVwby5oYXNoCi0gICAgICAgIHByaW50ICJmZWF0dXJlIGV4cG9ydC1tYXJrcz0lcy9naXQubWFya3MiICUgc2VsZi5yZXBvLmhhc2gKLSAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCi0KLSAgICAgICAgYXJncyA9IFsiZ2l0IiwgIi0tZ2l0LWRpcj0iICsgc2VsZi5yZXBvLmdpdHBhdGgsICJmYXN0LWV4cG9ydCIsICItLWV4cG9ydC1tYXJrcz0iICsgcGF0aF0KLQotICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwYXRoKToKLSAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWltcG9ydC1tYXJrcz0iICsgcGF0aCkKLQotICAgICAgICBhcmdzLmV4dGVuZChyZWZzKQotCi0gICAgICAgIHAxID0gc3VicHJvY2Vzcy5Qb3BlbihhcmdzLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQotCi0gICAgICAgIGFyZ3MgPSBbInNlZCIsICJzX3JlZnMvaGVhZHMvXyIgKyBzZWxmLnJlcG8ucHJlZml4ICsgIl9nIl0KLQotICAgICAgICBjaGVja19jYWxsKGFyZ3MsIHN0ZGluPXAxLnN0ZG91dCkKZGlmZiAtLWdpdCBhL2dpdF9yZW1vdGVfaGVscGVycy9naXQvZ2l0LnB5IGIvZ2l0X3JlbW90ZV9oZWxwZXJzL2dpdC9naXQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwN2ExYmYuLjAwMDAwMDAKLS0tIGEvZ2l0X3JlbW90ZV9oZWxwZXJzL2dpdC9naXQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2NzggKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0KLSIiIkZ1bmN0aW9uYWxpdHkgZm9yIGludGVyYWN0aW5nIHdpdGggR2l0IHJlcG9zaXRvcmllcy4KLQotVGhpcyBtb2R1bGUgcHJvdmlkZXMgY2xhc3NlcyBmb3IgaW50ZXJmYWNpbmcgd2l0aCBhIEdpdCByZXBvc2l0b3J5LgotIiIiCi0KLWltcG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgdGltZQotZnJvbSBiaW5hc2NpaSBpbXBvcnQgaGV4bGlmeQotZnJvbSBjU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCi1pbXBvcnQgdW5pdHRlc3QKLQotZnJvbSBnaXRfcmVtb3RlX2hlbHBlcnMudXRpbCBpbXBvcnQgZGVidWcsIGVycm9yLCBkaWUsIHN0YXJ0X2NvbW1hbmQsIHJ1bl9jb21tYW5kCi0KLQotZGVmIGdldF9naXRfZGlyICgpOgotICAgICIiIlJldHVybiB0aGUgcGF0aCB0byB0aGUgR0lUX0RJUiBmb3IgdGhpcyByZXBvLiIiIgotICAgIGFyZ3MgPSAoImdpdCIsICJyZXYtcGFyc2UiLCAiLS1naXQtZGlyIikKLSAgICBleGl0X2NvZGUsIG91dHB1dCwgZXJyb3JzID0gcnVuX2NvbW1hbmQoYXJncykKLSAgICBpZiBleGl0X2NvZGU6Ci0gICAgICAgIGRpZSgiRmFpbGVkIHRvIHJldHJpZXZlIGdpdCBkaXIiKQotICAgIGFzc2VydCBub3QgZXJyb3JzCi0gICAgcmV0dXJuIG91dHB1dC5zdHJpcCgpCi0KLQotZGVmIHBhcnNlX2dpdF9jb25maWcgKCk6Ci0gICAgIiIiUmV0dXJuIGEgZGljdCBjb250YWluaW5nIHRoZSBwYXJzZWQgdmVyc2lvbiBvZiAnZ2l0IGNvbmZpZyAtbCcuIiIiCi0gICAgZXhpdF9jb2RlLCBvdXRwdXQsIGVycm9ycyA9IHJ1bl9jb21tYW5kKCgiZ2l0IiwgImNvbmZpZyIsICIteiIsICItbCIpKQotICAgIGlmIGV4aXRfY29kZToKLSAgICAgICAgZGllKCJGYWlsZWQgdG8gcmV0cmlldmUgZ2l0IGNvbmZpZ3VyYXRpb24iKQotICAgIGFzc2VydCBub3QgZXJyb3JzCi0gICAgcmV0dXJuIGRpY3QoW2Uuc3BsaXQoJ1xuJywgMSkgZm9yIGUgaW4gb3V0cHV0LnNwbGl0KCJcMCIpIGlmIGVdKQotCi0KLWRlZiBnaXRfY29uZmlnX2Jvb2wgKHZhbHVlKToKLSAgICAiIiJDb252ZXJ0IHRoZSBnaXZlbiBnaXQgY29uZmlnIHN0cmluZyB2YWx1ZSB0byBUcnVlIG9yIEZhbHNlLgotCi0gICAgUmFpc2UgVmFsdWVFcnJvciBpZiB0aGUgZ2l2ZW4gc3RyaW5nIHdhcyBub3QgcmVjb2duaXplZCBhcyBhCi0gICAgYm9vbGVhbiB2YWx1ZS4KLQotICAgICIiIgotICAgIG5vcm1fdmFsdWUgPSBzdHIodmFsdWUpLnN0cmlwKCkubG93ZXIoKQotICAgIGlmIG5vcm1fdmFsdWUgaW4gKCJ0cnVlIiwgIjEiLCAieWVzIiwgIm9uIiwgIiIpOgotICAgICAgICByZXR1cm4gVHJ1ZQotICAgIGlmIG5vcm1fdmFsdWUgaW4gKCJmYWxzZSIsICIwIiwgIm5vIiwgIm9mZiIsICJub25lIik6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgIHJhaXNlIFZhbHVlRXJyb3IoIkZhaWxlZCB0byBwYXJzZSAnJXMnIGludG8gYSBib29sZWFuIHZhbHVlIiAlICh2YWx1ZSkpCi0KLQotZGVmIHZhbGlkX2dpdF9yZWYgKHJlZl9uYW1lKToKLSAgICAiIiJSZXR1cm4gVHJ1ZSBpZmYgdGhlIGdpdmVuIHJlZiBuYW1lIGlzIGEgdmFsaWQgZ2l0IHJlZiBuYW1lLiIiIgotICAgICMgVGhlIGZvbGxvd2luZyBpcyBhIHJlaW1wbGVtZW50YXRpb24gb2YgdGhlIGdpdCBjaGVjay1yZWYtZm9ybWF0Ci0gICAgIyBjb21tYW5kLiAgVGhlIHJ1bGVzIHdlcmUgZGVyaXZlZCBmcm9tIHRoZSBnaXQgY2hlY2stcmVmLWZvcm1hdCgxKQotICAgICMgbWFudWFsIHBhZ2UuICBUaGlzIGNvZGUgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGEgY2FsbCB0bwotICAgICMgY2hlY2tfcmVmbmFtZV9mb3JtYXQoKSBpbiB0aGUgZ2l0IGxpYnJhcnksIHdoZW4gc3VjaCBpcyBhdmFpbGFibGUuCi0gICAgaWYgcmVmX25hbWUuZW5kc3dpdGgoJy8nKSBvciBcCi0gICAgICAgcmVmX25hbWUuc3RhcnRzd2l0aCgnLicpIG9yIFwKLSAgICAgICByZWZfbmFtZS5jb3VudCgnLy4nKSBvciBcCi0gICAgICAgcmVmX25hbWUuY291bnQoJy4uJykgb3IgXAotICAgICAgIHJlZl9uYW1lLmVuZHN3aXRoKCcubG9jaycpOgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICBmb3IgYyBpbiByZWZfbmFtZToKLSAgICAgICAgaWYgb3JkKGMpIDwgMHgyMCBvciBvcmQoYykgPT0gMHg3ZiBvciBjIGluICIgfl46PypbIjoKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgIHJldHVybiBUcnVlCi0KLQotY2xhc3MgR2l0T2JqZWN0RmV0Y2hlcihvYmplY3QpOgotCi0gICAgIiIiUHJvdmlkZSBwYXJzZWQgYWNjZXNzIHRvICdnaXQgY2F0LWZpbGUgLS1iYXRjaCcuCi0KLSAgICBUaGlzIHByb3ZpZGVzIGEgcmVhZC1vbmx5IGludGVyZmFjZSB0byB0aGUgR2l0IG9iamVjdCBkYXRhYmFzZS4KLQotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fIChzZWxmKToKLSAgICAgICAgIiIiSW5pdGlhdGUgYSAnZ2l0IGNhdC1maWxlIC0tYmF0Y2gnIHNlc3Npb24uIiIiCi0gICAgICAgIHNlbGYucXVldWUgPSBbXSAgIyBMaXN0IG9mIG9iamVjdCBuYW1lcyB0byBiZSBzdWJtaXR0ZWQKLSAgICAgICAgc2VsZi5pbl90cmFuc2l0ID0gTm9uZSAgIyBPYmplY3QgbmFtZSBjdXJyZW50bHkgaW4gdHJhbnNpdAotCi0gICAgICAgICMgJ2dpdCBjYXQtZmlsZSAtLWJhdGNoJyBwcm9kdWNlcyBiaW5hcnkgb3V0cHV0IHdoaWNoIGlzIGxpa2VseQotICAgICAgICAjIHRvIGJlIGNvcnJ1cHRlZCBieSB0aGUgZGVmYXVsdCAiclUiLW1vZGUgcGlwZSBvcGVuZWQgYnkKLSAgICAgICAgIyBzdGFydF9jb21tYW5kLiAgKE1vZGUgPT0gInJVIiBkb2VzIHVuaXZlcnNhbCBuZXctbGluZQotICAgICAgICAjIGNvbnZlcnNpb24sIHdoaWNoIG1hbmdsZXMgY2FycmlhZ2UgcmV0dXJucy4pIFRoZXJlZm9yZSwgd2UKLSAgICAgICAgIyBvcGVuIGFuIGV4cGxpY2l0bHkgYmluYXJ5LXNhZmUgcGlwZSBmb3IgdHJhbnNmZXJyaW5nIHRoZQotICAgICAgICAjIG91dHB1dCBmcm9tICdnaXQgY2F0LWZpbGUgLS1iYXRjaCcuCi0gICAgICAgIHBpcGVfcl9mZCwgcGlwZV93X2ZkID0gb3MucGlwZSgpCi0gICAgICAgIHBpcGVfciA9IG9zLmZkb3BlbihwaXBlX3JfZmQsICJyYiIpCi0gICAgICAgIHBpcGVfdyA9IG9zLmZkb3BlbihwaXBlX3dfZmQsICJ3YiIpCi0gICAgICAgIHNlbGYucHJvYyA9IHN0YXJ0X2NvbW1hbmQoKCJnaXQiLCAiY2F0LWZpbGUiLCAiLS1iYXRjaCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dCA9IHBpcGVfdykKLSAgICAgICAgc2VsZi5mID0gcGlwZV9yCi0KLSAgICBkZWYgX19kZWxfXyAoc2VsZik6Ci0gICAgICAgICIiIlZlcmlmeSBjb21wbGV0ZWQgY29tbXVuaWNhdGlvbiB3aXRoICdnaXQgY2F0LWZpbGUgLS1iYXRjaCcuIiIiCi0gICAgICAgIGFzc2VydCBub3Qgc2VsZi5xdWV1ZQotICAgICAgICBhc3NlcnQgc2VsZi5pbl90cmFuc2l0IGlzIE5vbmUKLSAgICAgICAgc2VsZi5wcm9jLnN0ZGluLmNsb3NlKCkKLSAgICAgICAgYXNzZXJ0IHNlbGYucHJvYy53YWl0KCkgPT0gMCAgIyBaZXJvIGV4aXQgY29kZQotICAgICAgICBhc3NlcnQgc2VsZi5mLnJlYWQoKSA9PSAiIiAgIyBObyByZW1haW5pbmcgb3V0cHV0Ci0KLSAgICBkZWYgX3N1Ym1pdF9uZXh0X29iamVjdCAoc2VsZik6Ci0gICAgICAgICIiIlN1Ym1pdCBxdWV1ZSBpdGVtcyB0byB0aGUgJ2dpdCBjYXQtZmlsZSAtLWJhdGNoJyBwcm9jZXNzLgotCi0gICAgICAgIElmIHRoZXJlIGFyZSBpdGVtcyBpbiB0aGUgcXVldWUsIGFuZCB0aGVyZSBpcyBjdXJyZW50bHkgbm8gaXRlbQotICAgICAgICBjdXJyZW50bHkgaW4gJ3RyYW5zaXQnLCB0aGVuIHBvcCB0aGUgZmlyc3QgaXRlbSBvZmYgdGhlIHF1ZXVlLAotICAgICAgICBhbmQgc3VibWl0IGl0LgotCi0gICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLnF1ZXVlIGFuZCBzZWxmLmluX3RyYW5zaXQgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuaW5fdHJhbnNpdCA9IHNlbGYucXVldWUucG9wKDApCi0gICAgICAgICAgICBwcmludCA+PiBzZWxmLnByb2Muc3RkaW4sIHNlbGYuaW5fdHJhbnNpdFswXQotCi0gICAgZGVmIHB1c2ggKHNlbGYsIG9iaiwgY2FsbGJhY2spOgotICAgICAgICAiIiJQdXNoIHRoZSBnaXZlbiBvYmplY3QgbmFtZSBvbnRvIHRoZSBxdWV1ZS4KLQotICAgICAgICBUaGUgZ2l2ZW4gY2FsbGJhY2sgZnVuY3Rpb24gd2lsbCBhdCBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUKLSAgICAgICAgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSB3aXRoIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOgotICAgICAgICAtIHNlbGYgLSB0aGlzIEdpdE9iamVjdEZldGNoZXIgaW5zdGFuY2UKLSAgICAgICAgLSBvYmogIC0gdGhlIG9iamVjdCBuYW1lIHByb3ZpZGVkIHRvIHB1c2goKQotICAgICAgICAtIHNoYTEgLSB0aGUgU0hBMSBvZiB0aGUgb2JqZWN0LCBpZiAnTm9uZScgb2JqIGlzIG1pc3NpbmcKLSAgICAgICAgLSB0ICAgIC0gdGhlIHR5cGUgb2YgdGhlIG9iamVjdCAodGFnL2NvbW1pdC90cmVlL2Jsb2IpCi0gICAgICAgIC0gc2l6ZSAtIHRoZSBzaXplIG9mIHRoZSBvYmplY3QgaW4gYnl0ZXMKLSAgICAgICAgLSBkYXRhIC0gdGhlIG9iamVjdCBjb250ZW50cwotCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLnF1ZXVlLmFwcGVuZCgob2JqLCBjYWxsYmFjaykpCi0gICAgICAgIHNlbGYuX3N1Ym1pdF9uZXh0X29iamVjdCgpICAjIChSZSlzdGFydCBxdWV1ZSBwcm9jZXNzaW5nCi0KLSAgICBkZWYgcHJvY2Vzc19uZXh0X2VudHJ5IChzZWxmKToKLSAgICAgICAgIiIiUmVhZCB0aGUgbmV4dCBlbnRyeSBvZmYgdGhlIHF1ZXVlIGFuZCBpbnZva2UgY2FsbGJhY2suIiIiCi0gICAgICAgIG9iaiwgY2IgPSBzZWxmLmluX3RyYW5zaXQKLSAgICAgICAgc2VsZi5pbl90cmFuc2l0ID0gTm9uZQotICAgICAgICBoZWFkZXIgPSBzZWxmLmYucmVhZGxpbmUoKQotICAgICAgICBpZiBoZWFkZXIgPT0gIiVzIG1pc3NpbmdcbiIgJSAob2JqKToKLSAgICAgICAgICAgIGNiKHNlbGYsIG9iaiwgTm9uZSwgTm9uZSwgTm9uZSwgTm9uZSkKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBzaGExLCB0LCBzaXplID0gaGVhZGVyLnNwbGl0KCIgIikKLSAgICAgICAgYXNzZXJ0IGxlbihzaGExKSA9PSA0MAotICAgICAgICBhc3NlcnQgdCBpbiAoInRhZyIsICJjb21taXQiLCAidHJlZSIsICJibG9iIikKLSAgICAgICAgYXNzZXJ0IHNpemUuZW5kc3dpdGgoIlxuIikKLSAgICAgICAgc2l6ZSA9IGludChzaXplLnN0cmlwKCkpCi0gICAgICAgIGRhdGEgPSBzZWxmLmYucmVhZChzaXplKQotICAgICAgICBhc3NlcnQgc2VsZi5mLnJlYWQoMSkgPT0gIlxuIgotICAgICAgICBjYihzZWxmLCBvYmosIHNoYTEsIHQsIHNpemUsIGRhdGEpCi0gICAgICAgIHNlbGYuX3N1Ym1pdF9uZXh0X29iamVjdCgpCi0KLSAgICBkZWYgcHJvY2VzcyAoc2VsZik6Ci0gICAgICAgICIiIlByb2Nlc3MgdGhlIGN1cnJlbnQgcXVldWUgdW50aWwgZW1wdHkuIiIiCi0gICAgICAgIHdoaWxlIHNlbGYuaW5fdHJhbnNpdCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYucHJvY2Vzc19uZXh0X2VudHJ5KCkKLQotICAgICMgSGlnaC1sZXZlbCBjb252ZW5pZW5jZSBtZXRob2RzOgotCi0gICAgZGVmIGdldF9zaGExIChzZWxmLCBvYmpzcGVjKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBTSEExIG9mIHRoZSBvYmplY3Qgc3BlY2lmaWVkIGJ5ICdvYmpzcGVjJy4KLQotICAgICAgICBSZXR1cm4gTm9uZSBpZiAnb2Jqc3BlYycgZG9lcyBub3Qgc3BlY2lmeSBhbiBleGlzdGluZyBvYmplY3QuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGNsYXNzIF9PYmpIYW5kbGVyKG9iamVjdCk6Ci0gICAgICAgICAgICAiIiJIZWxwZXIgY2xhc3MgZm9yIGdldHRpbmcgdGhlIHJldHVybmVkIFNIQTEuIiIiCi0gICAgICAgICAgICBkZWYgX19pbml0X18gKHNlbGYsIHBhcnNlcik6Ci0gICAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIKLSAgICAgICAgICAgICAgICBzZWxmLnNoYTEgPSBOb25lCi0KLSAgICAgICAgICAgIGRlZiBfX2NhbGxfXyAoc2VsZiwgcGFyc2VyLCBvYmosIHNoYTEsIHQsIHNpemUsIGRhdGEpOgotICAgICAgICAgICAgICAgICMgRklYTUU6IE1hbnkgdW51c2VkIGFyZ3VtZW50cy4gQ291bGQgdGhpcyBiZSBjaGVhcGVyPwotICAgICAgICAgICAgICAgIGFzc2VydCBwYXJzZXIgPT0gc2VsZi5wYXJzZXIKLSAgICAgICAgICAgICAgICBzZWxmLnNoYTEgPSBzaGExCi0KLSAgICAgICAgaGFuZGxlciA9IF9PYmpIYW5kbGVyKHNlbGYpCi0gICAgICAgIHNlbGYucHVzaChvYmpzcGVjLCBoYW5kbGVyKQotICAgICAgICBzZWxmLnByb2Nlc3MoKQotICAgICAgICByZXR1cm4gaGFuZGxlci5zaGExCi0KLSAgICBkZWYgb3Blbl9vYmogKHNlbGYsIG9ianNwZWMpOgotICAgICAgICAiIiJSZXR1cm4gYSBmaWxlIG9iamVjdCB3cmFwcGluZyB0aGUgY29udGVudHMgb2YgYSBuYW1lZCBvYmplY3QuCi0KLSAgICAgICAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyAuY2xvc2UoKSBvbiB0aGUgcmV0dXJuZWQKLSAgICAgICAgZmlsZSBvYmplY3QuCi0KLSAgICAgICAgUmFpc2UgS2V5RXJyb3IgaWYgJ29ianNwZWMnIGRvZXMgbm90IGV4aXN0IGluIHRoZSByZXBvLgotCi0gICAgICAgICIiIgotICAgICAgICBjbGFzcyBfT2JqSGFuZGxlcihvYmplY3QpOgotICAgICAgICAgICAgIiIiSGVscGVyIGNsYXNzIGZvciBwYXJzaW5nIHRoZSByZXR1cm5lZCBnaXQgb2JqZWN0LiIiIgotICAgICAgICAgICAgZGVmIF9faW5pdF9fIChzZWxmLCBwYXJzZXIpOgotICAgICAgICAgICAgICAgICIiIlNldCB1cCBoZWxwZXIuIiIiCi0gICAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIKLSAgICAgICAgICAgICAgICBzZWxmLmNvbnRlbnRzID0gU3RyaW5nSU8oKQotICAgICAgICAgICAgICAgIHNlbGYuZXJyID0gTm9uZQotCi0gICAgICAgICAgICBkZWYgX19jYWxsX18gKHNlbGYsIHBhcnNlciwgb2JqLCBzaGExLCB0LCBzaXplLCBkYXRhKToKLSAgICAgICAgICAgICAgICAiIiJHaXQgb2JqZWN0IGNhbGxiYWNrIChzZWUgR2l0T2JqZWN0RmV0Y2hlciBkb2N1bWVudGF0aW9uKS4iIiIKLSAgICAgICAgICAgICAgICBhc3NlcnQgcGFyc2VyID09IHNlbGYucGFyc2VyCi0gICAgICAgICAgICAgICAgaWYgbm90IHNoYTE6ICAjIE1pc3Npbmcgb2JqZWN0Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXJyID0gIk1pc3Npbmcgb2JqZWN0ICclcyciICUgb2JqCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNpemUgPT0gbGVuKGRhdGEpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuY29udGVudHMud3JpdGUoZGF0YSkKLQotICAgICAgICBoYW5kbGVyID0gX09iakhhbmRsZXIoc2VsZikKLSAgICAgICAgc2VsZi5wdXNoKG9ianNwZWMsIGhhbmRsZXIpCi0gICAgICAgIHNlbGYucHJvY2VzcygpCi0gICAgICAgIGlmIGhhbmRsZXIuZXJyOgotICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoaGFuZGxlci5lcnIpCi0gICAgICAgIGhhbmRsZXIuY29udGVudHMuc2VlaygwKQotICAgICAgICByZXR1cm4gaGFuZGxlci5jb250ZW50cwotCi0gICAgZGVmIHdhbGtfdHJlZSAoc2VsZiwgdHJlZV9vYmpzcGVjLCBjYWxsYmFjaywgcHJlZml4ID0gIiIpOgotICAgICAgICAiIiJSZWN1cnNpdmVseSB3YWxrIHRoZSBnaXZlbiBHaXQgdHJlZSBvYmplY3QuCi0KLSAgICAgICAgUmVjdXJzaXZlbHkgd2FsayBhbGwgc3VidHJlZXMgb2YgdGhlIGdpdmVuIHRyZWUgb2JqZWN0LCBhbmQKLSAgICAgICAgaW52b2tlIHRoZSBnaXZlbiBjYWxsYmFjayBwYXNzaW5nIHRocmVlIGFyZ3VtZW50czoKLSAgICAgICAgKHBhdGgsIG1vZGUsIGRhdGEpIHdpdGggdGhlIHBhdGgsIHBlcm1pc3Npb24gYml0cywgYW5kIGNvbnRlbnRzCi0gICAgICAgIG9mIGFsbCB0aGUgYmxvYnMgZm91bmQgaW4gdGhlIGVudGlyZSB0cmVlIHN0cnVjdHVyZS4KLQotICAgICAgICAiIiIKLSAgICAgICAgY2xhc3MgX09iakhhbmRsZXIob2JqZWN0KToKLSAgICAgICAgICAgICIiIkhlbHBlciBjbGFzcyBmb3Igd2Fsa2luZyBhIGdpdCB0cmVlIHN0cnVjdHVyZS4iIiIKLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyAoc2VsZiwgcGFyc2VyLCBjYiwgcGF0aCwgbW9kZSA9IE5vbmUpOgotICAgICAgICAgICAgICAgICIiIlNldCB1cCBoZWxwZXIuIiIiCi0gICAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIKLSAgICAgICAgICAgICAgICBzZWxmLmNiID0gY2IKLSAgICAgICAgICAgICAgICBzZWxmLnBhdGggPSBwYXRoCi0gICAgICAgICAgICAgICAgc2VsZi5tb2RlID0gbW9kZQotICAgICAgICAgICAgICAgIHNlbGYuZXJyID0gTm9uZQotCi0gICAgICAgICAgICBkZWYgcGFyc2VfdHJlZSAoc2VsZiwgdHJlZWRhdGEpOgotICAgICAgICAgICAgICAgICIiIlBhcnNlIHRyZWUgb2JqZWN0IGRhdGEsIHlpZWxkIHRyZWUgZW50cmllcy4KLQotICAgICAgICAgICAgICAgIEVhY2ggdHJlZSBlbnRyeSBpcyBhIDMtdHVwbGUgKG1vZGUsIHNoYTEsIHBhdGgpCi0KLSAgICAgICAgICAgICAgICBzZWxmLnBhdGggaXMgcHJlcGVuZGVkIHRvIGFsbCBwYXRocyB5aWVsZGVkCi0gICAgICAgICAgICAgICAgZnJvbSB0aGlzIG1ldGhvZC4KLQotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgICAgIHdoaWxlIHRyZWVkYXRhOgotICAgICAgICAgICAgICAgICAgICBtb2RlID0gaW50KHRyZWVkYXRhWzo2XSwgMTApCi0gICAgICAgICAgICAgICAgICAgICMgVHVybiAxMDB4eHggaW50byB4eHgKLSAgICAgICAgICAgICAgICAgICAgaWYgbW9kZSA+IDEwMDAwMDoKLSAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgLT0gMTAwMDAwCi0gICAgICAgICAgICAgICAgICAgIGFzc2VydCB0cmVlZGF0YVs2XSA9PSAiICIKLSAgICAgICAgICAgICAgICAgICAgaSA9IHRyZWVkYXRhLmZpbmQoIlwwIiwgNykKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGkgPiAwCi0gICAgICAgICAgICAgICAgICAgIHBhdGggPSB0cmVlZGF0YVs3OmldCi0gICAgICAgICAgICAgICAgICAgIHNoYTEgPSBoZXhsaWZ5KHRyZWVkYXRhW2kgKyAxOiBpICsgMjFdKQotICAgICAgICAgICAgICAgICAgICB5aWVsZCAobW9kZSwgc2hhMSwgc2VsZi5wYXRoICsgcGF0aCkKLSAgICAgICAgICAgICAgICAgICAgdHJlZWRhdGEgPSB0cmVlZGF0YVtpICsgMjE6XQotCi0gICAgICAgICAgICBkZWYgX19jYWxsX18gKHNlbGYsIHBhcnNlciwgb2JqLCBzaGExLCB0LCBzaXplLCBkYXRhKToKLSAgICAgICAgICAgICAgICAiIiJHaXQgb2JqZWN0IGNhbGxiYWNrIChzZWUgR2l0T2JqZWN0RmV0Y2hlciBkb2N1bWVudGF0aW9uKS4iIiIKLSAgICAgICAgICAgICAgICBhc3NlcnQgcGFyc2VyID09IHNlbGYucGFyc2VyCi0gICAgICAgICAgICAgICAgaWYgbm90IHNoYTE6ICAjIE1pc3Npbmcgb2JqZWN0Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXJyID0gIk1pc3Npbmcgb2JqZWN0ICclcyciICUgKG9iaikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICAgICAgYXNzZXJ0IHNpemUgPT0gbGVuKGRhdGEpCi0gICAgICAgICAgICAgICAgaWYgdCA9PSAidHJlZSI6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYucGF0aDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGF0aCArPSAiLyIKLSAgICAgICAgICAgICAgICAgICAgIyBSZWN1cnNlIGludG8gYWxsIGJsb2JzIGFuZCBzdWJ0cmVlcwotICAgICAgICAgICAgICAgICAgICBmb3IgbSwgcywgcCBpbiBzZWxmLnBhcnNlX3RyZWUoZGF0YSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXIucHVzaChzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18oc2VsZi5wYXJzZXIsIHNlbGYuY2IsIHAsIG0pKQotICAgICAgICAgICAgICAgIGVsaWYgdCA9PSAiYmxvYiI6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuY2Ioc2VsZi5wYXRoLCBzZWxmLm1vZGUsIGRhdGEpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5rbm93biBvYmplY3QgdHlwZSAnJXMnIiAlICh0KSkKLQotICAgICAgICBzZWxmLnB1c2godHJlZV9vYmpzcGVjLCBfT2JqSGFuZGxlcihzZWxmLCBjYWxsYmFjaywgcHJlZml4KSkKLSAgICAgICAgc2VsZi5wcm9jZXNzKCkKLQotCi1jbGFzcyBHaXRSZWZNYXAob2JqZWN0KToKLQotICAgICIiIk1hcCBHaXQgcmVmIG5hbWVzIHRvIHRoZSBHaXQgb2JqZWN0IG5hbWVzIHRoZXkgY3VycmVudGx5IHBvaW50IHRvLgotCi0gICAgQmVoYXZlcyBsaWtlIGEgZGljdGlvbmFyeSBvZiBHaXQgcmVmIG5hbWVzIC0+IEdpdCBvYmplY3QgbmFtZXMuCi0KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyAoc2VsZiwgb2JqX2ZldGNoZXIpOgotICAgICAgICAiIiJDcmVhdGUgYSBuZXcgR2l0IHJlZiAtPiBvYmplY3QgbWFwLiIiIgotICAgICAgICBzZWxmLm9ial9mZXRjaGVyID0gb2JqX2ZldGNoZXIKLSAgICAgICAgc2VsZi5fY2FjaGUgPSB7fSAgIyBkaWN0OiByZWZuYW1lIC0+IG9iam5hbWUKLQotICAgIGRlZiBfbG9hZCAoc2VsZiwgcmVmKToKLSAgICAgICAgIiIiUmV0cmlldmUgdGhlIG9iamVjdCBjdXJyZW50bHkgYm91bmQgdG8gdGhlIGdpdmVuIHJlZi4KLQotICAgICAgICBUaGUgbmFtZSBvZiB0aGUgb2JqZWN0IHBvaW50ZWQgdG8gYnkgdGhlIGdpdmVuIHJlZiBpcyBzdG9yZWQKLSAgICAgICAgaW50byB0aGlzIG1hcHBpbmcsIGFuZCBhbHNvIHJldHVybmVkLgotCi0gICAgICAgICIiIgotICAgICAgICBpZiByZWYgbm90IGluIHNlbGYuX2NhY2hlOgotICAgICAgICAgICAgc2VsZi5fY2FjaGVbcmVmXSA9IHNlbGYub2JqX2ZldGNoZXIuZ2V0X3NoYTEocmVmKQotICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGVbcmVmXQotCi0gICAgZGVmIF9fY29udGFpbnNfXyAoc2VsZiwgcmVmbmFtZSk6Ci0gICAgICAgICIiIlJldHVybiBUcnVlIGlmIHRoZSBnaXZlbiByZWZuYW1lIGlzIHByZXNlbnQgaW4gdGhpcyBjYWNoZS4iIiIKLSAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5fbG9hZChyZWZuYW1lKSkKLQotICAgIGRlZiBfX2dldGl0ZW1fXyAoc2VsZiwgcmVmbmFtZSk6Ci0gICAgICAgICIiIlJldHVybiB0aGUgZ2l0IG9iamVjdCBuYW1lIHBvaW50ZWQgdG8gYnkgdGhlIGdpdmVuIHJlZm5hbWUuIiIiCi0gICAgICAgIGNvbW1pdCA9IHNlbGYuX2xvYWQocmVmbmFtZSkKLSAgICAgICAgaWYgY29tbWl0IGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBLZXlFcnJvcigiVW5rbm93biByZWYgJyVzJyIgJSAocmVmbmFtZSkpCi0gICAgICAgIHJldHVybiBjb21taXQKLQotICAgIGRlZiBnZXQgKHNlbGYsIHJlZm5hbWUsIGRlZmF1bHQgPSBOb25lKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBnaXQgb2JqZWN0IG5hbWUgcG9pbnRlZCB0byBieSB0aGUgZ2l2ZW4gcmVmbmFtZS4iIiIKLSAgICAgICAgY29tbWl0ID0gc2VsZi5fbG9hZChyZWZuYW1lKQotICAgICAgICBpZiBjb21taXQgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Ci0gICAgICAgIHJldHVybiBjb21taXQKLQotCi1jbGFzcyBHaXRGSUNvbW1pdChvYmplY3QpOgotCi0gICAgIiIiRW5jYXBzdWxhdGUgdGhlIGRhdGEgaW4gYSBHaXQgZmFzdC1pbXBvcnQgY29tbWl0IGNvbW1hbmQuIiIiCi0KLSAgICBTSEExUkUgPSByZS5jb21waWxlKHInXlswLTlhLWZdezQwfSQnKQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHBhcnNlX21vZGUgKGNscywgbW9kZSk6Ci0gICAgICAgICIiIlZlcmlmeSB0aGUgZ2l2ZW4gZ2l0IGZpbGUgbW9kZSwgYW5kIHJldHVybiBpdCBhcyBhIHN0cmluZy4iIiIKLSAgICAgICAgYXNzZXJ0IG1vZGUgaW4gKDY0NCwgNzU1LCAxMDA2NDQsIDEwMDc1NSwgMTIwMDAwKQotICAgICAgICByZXR1cm4gIiVpIiAlIChtb2RlKQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHBhcnNlX29iam5hbWUgKGNscywgb2JqbmFtZSk6Ci0gICAgICAgICIiIlJldHVybiB0aGUgZ2l2ZW4gb2JqZWN0IG5hbWUgKG9yIG1hcmsgbnVtYmVyKSBhcyBhIHN0cmluZy4iIiIKLSAgICAgICAgaWYgaXNpbnN0YW5jZShvYmpuYW1lLCBpbnQpOiAgIyBPYmplY3QgbmFtZSBpcyBhIG1hcmsgbnVtYmVyCi0gICAgICAgICAgICBhc3NlcnQgb2JqbmFtZSA+IDAKLSAgICAgICAgICAgIHJldHVybiAiOiVpIiAlIChvYmpuYW1lKQotCi0gICAgICAgICMgTm8gZXhpc3RlbmNlIGNoZWNrIGlzIGRvbmUsIG9ubHkgY2hlY2tzIGZvciB2YWxpZCBmb3JtYXQKLSAgICAgICAgYXNzZXJ0IGNscy5TSEExUkUubWF0Y2gob2JqbmFtZSkgICMgT2JqZWN0IG5hbWUgaXMgdmFsaWQgU0hBMQotICAgICAgICByZXR1cm4gb2JqbmFtZQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHF1b3RlX3BhdGggKGNscywgcGF0aCk6Ci0gICAgICAgICIiIlJldHVybiBhIHF1b3RlZCB2ZXJzaW9uIG9mIHRoZSBnaXZlbiBwYXRoLiIiIgotICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKCJcXCIsICJcXFxcIikKLSAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSgiXG4iLCAiXFxuIikKLSAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSgnIicsICdcXCInKQotICAgICAgICByZXR1cm4gJyIlcyInICUgKHBhdGgpCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgcGFyc2VfcGF0aCAoY2xzLCBwYXRoKToKLSAgICAgICAgIiIiVmVyaWZ5IHRoYXQgdGhlIGdpdmVuIHBhdGggaXMgdmFsaWQsIGFuZCBxdW90ZSBpdCwgaWYgbmVlZGVkLiIiIgotICAgICAgICBhc3NlcnQgbm90IGlzaW5zdGFuY2UocGF0aCwgaW50KSAgIyBDYW5ub3QgYmUgYSBtYXJrIG51bWJlcgotCi0gICAgICAgICMgVGhlc2UgY2hlY2tzIHZlcmlmeSB0aGUgcnVsZXMgb24gdGhlIGZhc3QtaW1wb3J0IG1hbiBwYWdlCi0gICAgICAgIGFzc2VydCBub3QgcGF0aC5jb3VudCgiLy8iKQotICAgICAgICBhc3NlcnQgbm90IHBhdGguZW5kc3dpdGgoIi8iKQotICAgICAgICBhc3NlcnQgbm90IHBhdGguc3RhcnRzd2l0aCgiLyIpCi0gICAgICAgIGFzc2VydCBub3QgcGF0aC5jb3VudCgiLy4vIikKLSAgICAgICAgYXNzZXJ0IG5vdCBwYXRoLmNvdW50KCIvLi4vIikKLSAgICAgICAgYXNzZXJ0IG5vdCBwYXRoLmVuZHN3aXRoKCIvLiIpCi0gICAgICAgIGFzc2VydCBub3QgcGF0aC5lbmRzd2l0aCgiLy4uIikKLSAgICAgICAgYXNzZXJ0IG5vdCBwYXRoLnN0YXJ0c3dpdGgoIi4vIikKLSAgICAgICAgYXNzZXJ0IG5vdCBwYXRoLnN0YXJ0c3dpdGgoIi4uLyIpCi0KLSAgICAgICAgaWYgcGF0aC5jb3VudCgnIicpICsgcGF0aC5jb3VudCgnXG4nKSArIHBhdGguY291bnQoJ1xcJyk6Ci0gICAgICAgICAgICByZXR1cm4gY2xzLnF1b3RlX3BhdGgocGF0aCkKLSAgICAgICAgcmV0dXJuIHBhdGgKLQotICAgIGRlZiBfX2luaXRfXyAoc2VsZiwgbmFtZSwgZW1haWwsIHRpbWVzdGFtcCwgdGltZXpvbmUsIG1lc3NhZ2UpOgotICAgICAgICAiIiJDcmVhdGUgYSBuZXcgR2l0IGZhc3QtaW1wb3J0IGNvbW1pdCwgd2l0aCB0aGUgZ2l2ZW4gbWV0YWRhdGEuIiIiCi0gICAgICAgIHNlbGYubmFtZSA9IG5hbWUKLSAgICAgICAgc2VsZi5lbWFpbCA9IGVtYWlsCi0gICAgICAgIHNlbGYudGltZXN0YW1wID0gdGltZXN0YW1wCi0gICAgICAgIHNlbGYudGltZXpvbmUgPSB0aW1lem9uZQotICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCi0gICAgICAgIHNlbGYucGF0aG9wcyA9IFtdICAjIExpc3Qgb2YgcGF0aCBvcGVyYXRpb25zIGluIHRoaXMgY29tbWl0Ci0KLSAgICBkZWYgbW9kaWZ5IChzZWxmLCBtb2RlLCBibG9ibmFtZSwgcGF0aCk6Ci0gICAgICAgICIiIkFkZCBhIGZpbGUgbW9kaWZpY2F0aW9uIHRvIHRoaXMgR2l0IGZhc3QtaW1wb3J0IGNvbW1pdC4iIiIKLSAgICAgICAgc2VsZi5wYXRob3BzLmFwcGVuZCgoIk0iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBhcnNlX21vZGUobW9kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGFyc2Vfb2JqbmFtZShibG9ibmFtZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGFyc2VfcGF0aChwYXRoKSkpCi0KLSAgICBkZWYgZGVsZXRlIChzZWxmLCBwYXRoKToKLSAgICAgICAgIiIiQWRkIGEgZmlsZSBkZWxldGlvbiB0byB0aGlzIEdpdCBmYXN0LWltcG9ydCBjb21taXQuIiIiCi0gICAgICAgIHNlbGYucGF0aG9wcy5hcHBlbmQoKCJEIiwgc2VsZi5wYXJzZV9wYXRoKHBhdGgpKSkKLQotICAgIGRlZiBjb3B5IChzZWxmLCBwYXRoLCBuZXdwYXRoKToKLSAgICAgICAgIiIiQWRkIGEgZmlsZSBjb3B5IHRvIHRoaXMgR2l0IGZhc3QtaW1wb3J0IGNvbW1pdC4iIiIKLSAgICAgICAgc2VsZi5wYXRob3BzLmFwcGVuZCgoIkMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBhcnNlX3BhdGgocGF0aCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGFyc2VfcGF0aChuZXdwYXRoKSkpCi0KLSAgICBkZWYgcmVuYW1lIChzZWxmLCBwYXRoLCBuZXdwYXRoKToKLSAgICAgICAgIiIiQWRkIGEgZmlsZSByZW5hbWUgdG8gdGhpcyBHaXQgZmFzdC1pbXBvcnQgY29tbWl0LiIiIgotICAgICAgICBzZWxmLnBhdGhvcHMuYXBwZW5kKCgiUiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGFyc2VfcGF0aChwYXRoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXJzZV9wYXRoKG5ld3BhdGgpKSkKLQotICAgIGRlZiBub3RlIChzZWxmLCBibG9ibmFtZSwgY29tbWl0KToKLSAgICAgICAgIiIiQWRkIGEgbm90ZSBvYmplY3QgdG8gdGhpcyBHaXQgZmFzdC1pbXBvcnQgY29tbWl0LiIiIgotICAgICAgICBzZWxmLnBhdGhvcHMuYXBwZW5kKCgiTiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGFyc2Vfb2JqbmFtZShibG9ibmFtZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGFyc2Vfb2JqbmFtZShjb21taXQpKSkKLQotICAgIGRlZiBkZWxldGVhbGwgKHNlbGYpOgotICAgICAgICAiIiJEZWxldGUgYWxsIGZpbGVzIGluIHRoaXMgR2l0IGZhc3QtaW1wb3J0IGNvbW1pdC4iIiIKLSAgICAgICAgc2VsZi5wYXRob3BzLmFwcGVuZCgiZGVsZXRlYWxsIikKLQotCi1jbGFzcyBUZXN0R2l0RklDb21taXQodW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgIiIiR2l0RklDb21taXQgc2VsZnRlc3RzLiIiIgotCi0gICAgZGVmIHRlc3RfYmFzaWMgKHNlbGYpOgotICAgICAgICAiIiJHaXRGSUNvbW1pdCBiYXNpYyBzZWxmdGVzdHMuIiIiCi0KLSAgICAgICAgZGVmIGV4cGVjdF9mYWlsIChtZXRob2QsIGRhdGEpOgotICAgICAgICAgICAgIiIiVmVyaWZ5IHRoYXQgdGhlIG1ldGhvZChkYXRhKSByYWlzZXMgYW4gQXNzZXJ0aW9uRXJyb3IuIiIiCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbWV0aG9kKGRhdGEpCi0gICAgICAgICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiRmFpbGVkIHRlc3QgZm9yIGludmFsaWQgZGF0YSAnJXMoJXMpJyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1ldGhvZC5fX25hbWVfXywgcmVwcihkYXRhKSkpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9tb2RlIChzZWxmKToKLSAgICAgICAgIiIiR2l0RklDb21taXQucGFyc2VfbW9kZSgpIHNlbGZ0ZXN0cy4iIiIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChHaXRGSUNvbW1pdC5wYXJzZV9tb2RlKDY0NCksICI2NDQiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEdpdEZJQ29tbWl0LnBhcnNlX21vZGUoNzU1KSwgIjc1NSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoR2l0RklDb21taXQucGFyc2VfbW9kZSgxMDA2NDQpLCAiMTAwNjQ0IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChHaXRGSUNvbW1pdC5wYXJzZV9tb2RlKDEwMDc1NSksICIxMDA3NTUiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEdpdEZJQ29tbWl0LnBhcnNlX21vZGUoMTIwMDAwKSwgIjEyMDAwMCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBHaXRGSUNvbW1pdC5wYXJzZV9tb2RlLCAwKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgR2l0RklDb21taXQucGFyc2VfbW9kZSwgMTIzKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgR2l0RklDb21taXQucGFyc2VfbW9kZSwgNjAwKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgR2l0RklDb21taXQucGFyc2VfbW9kZSwgIjY0NCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBHaXRGSUNvbW1pdC5wYXJzZV9tb2RlLCAiYWJjIikKLQotICAgIGRlZiB0ZXN0X3BhcnNlX29iam5hbWUgKHNlbGYpOgotICAgICAgICAiIiJHaXRGSUNvbW1pdC5wYXJzZV9vYmpuYW1lKCkgc2VsZnRlc3RzLiIiIgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEdpdEZJQ29tbWl0LnBhcnNlX29iam5hbWUoMSksICI6MSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBHaXRGSUNvbW1pdC5wYXJzZV9vYmpuYW1lLCAwKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgR2l0RklDb21taXQucGFyc2Vfb2JqbmFtZSwgLTEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoR2l0RklDb21taXQucGFyc2Vfb2JqbmFtZSgiMDEyMzQ1Njc4OSIgKiA0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiMDEyMzQ1Njc4OSIgKiA0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEdpdEZJQ29tbWl0LnBhcnNlX29iam5hbWUoIjI0NjhhYmNkZWYiICogNCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIjI0NjhhYmNkZWYiICogNCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIEdpdEZJQ29tbWl0LnBhcnNlX29iam5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJhYmNkZWZnaGlqIiAqIDQpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9wYXRoIChzZWxmKToKLSAgICAgICAgIiIiR2l0RklDb21taXQucGFyc2VfcGF0aCgpIHNlbGZ0ZXN0cy4iIiIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChHaXRGSUNvbW1pdC5wYXJzZV9wYXRoKCJmb28vYmFyIiksICJmb28vYmFyIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChHaXRGSUNvbW1pdC5wYXJzZV9wYXRoKCJwYXRoL3dpdGhcbiBhbmQgXCIgaW4gaXQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAnInBhdGgvd2l0aFxcbiBhbmQgXFwiIGluIGl0IicpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBHaXRGSUNvbW1pdC5wYXJzZV9wYXRoLCAxKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgR2l0RklDb21taXQucGFyc2VfcGF0aCwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIEdpdEZJQ29tbWl0LnBhcnNlX3BhdGgsIC0xKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgR2l0RklDb21taXQucGFyc2VfcGF0aCwgImZvby8vYmFyIikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIEdpdEZJQ29tbWl0LnBhcnNlX3BhdGgsICJmb28vYmFyLyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBHaXRGSUNvbW1pdC5wYXJzZV9wYXRoLCAiL2Zvby9iYXIiKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgR2l0RklDb21taXQucGFyc2VfcGF0aCwgImZvby8uL2JhciIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBHaXRGSUNvbW1pdC5wYXJzZV9wYXRoLCAiZm9vLy4uL2JhciIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBHaXRGSUNvbW1pdC5wYXJzZV9wYXRoLCAiZm9vL2Jhci8uIikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIEdpdEZJQ29tbWl0LnBhcnNlX3BhdGgsICJmb28vYmFyLy4uIikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIEdpdEZJQ29tbWl0LnBhcnNlX3BhdGgsICIuL2Zvby9iYXIiKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgR2l0RklDb21taXQucGFyc2VfcGF0aCwgIi4uL2Zvby9iYXIiKQotCi0KLWNsYXNzIEdpdEZhc3RJbXBvcnQob2JqZWN0KToKLQotICAgICIiIkVuY2Fwc3VsYXRlIGNvbW11bmljYXRpb24gd2l0aCBnaXQgZmFzdC1pbXBvcnQuIiIiCi0KLSAgICBkZWYgX19pbml0X18gKHNlbGYsIGYsIG9ial9mZXRjaGVyLCBsYXN0X21hcmsgPSAwKToKLSAgICAgICAgIiIiU2V0IHVwIHNlbGYgdG8gY29tbXVuaWNhdGUgd2l0aCBhIGZhc3QtaW1wb3J0IHByb2Nlc3MgdGhyb3VnaCBmLiIiIgotICAgICAgICBzZWxmLmYgPSBmICAjIEZpbGUgb2JqZWN0IHdoZXJlIGZhc3QtaW1wb3J0IHN0cmVhbSBpcyB3cml0dGVuCi0gICAgICAgIHNlbGYub2JqX2ZldGNoZXIgPSBvYmpfZmV0Y2hlciAgIyBHaXRPYmplY3RGZXRjaGVyIGluc3RhbmNlCi0gICAgICAgIHNlbGYubmV4dF9tYXJrID0gbGFzdF9tYXJrICsgMSAgIyBOZXh0IG1hcmsgbnVtYmVyCi0gICAgICAgIHNlbGYucmVmcyA9IHNldCgpICAjIEtlZXAgdHJhY2sgb2YgdGhlIHJlZm5hbWVzIHdlJ3ZlIHNlZW4KLQotICAgIGRlZiBjb21tZW50IChzZWxmLCBzKToKLSAgICAgICAgIiIiV3JpdGUgdGhlIGdpdmVuIGNvbW1lbnQgaW4gdGhlIGZhc3QtaW1wb3J0IHN0cmVhbS4iIiIKLSAgICAgICAgYXNzZXJ0ICJcbiIgbm90IGluIHMsICJNYWxmb3JtZWQgY29tbWVudDogJyVzJyIgJSAocykKLSAgICAgICAgc2VsZi5mLndyaXRlKCIjICVzXG4iICUgKHMpKQotCi0gICAgZGVmIGNvbW1pdCAoc2VsZiwgcmVmLCBjb21taXRkYXRhKToKLSAgICAgICAgIiIiTWFrZSBhIGNvbW1pdCBvbiB0aGUgZ2l2ZW4gcmVmLCB3aXRoIHRoZSBnaXZlbiBHaXRGSUNvbW1pdC4KLQotICAgICAgICBSZXR1cm4gdGhlIG1hcmsgbnVtYmVyIGlkZW50aWZ5aW5nIHRoaXMgY29tbWl0LgotCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLmYud3JpdGUoIiIiXAotY29tbWl0ICUocmVmKXMKLW1hcmsgOiUobWFyaylpCi1jb21taXR0ZXIgJShuYW1lKXMgPCUoZW1haWwpcz4gJSh0aW1lc3RhbXApaSAlKHRpbWV6b25lKXMKLWRhdGEgJShtc2dMZW5ndGgpaQotJShtc2cpcwotIiIiICUgewotICAgICdyZWYnOiByZWYsCi0gICAgJ21hcmsnOiBzZWxmLm5leHRfbWFyaywKLSAgICAnbmFtZSc6IGNvbW1pdGRhdGEubmFtZSwKLSAgICAnZW1haWwnOiBjb21taXRkYXRhLmVtYWlsLAotICAgICd0aW1lc3RhbXAnOiBjb21taXRkYXRhLnRpbWVzdGFtcCwKLSAgICAndGltZXpvbmUnOiBjb21taXRkYXRhLnRpbWV6b25lLAotICAgICdtc2dMZW5ndGgnOiBsZW4oY29tbWl0ZGF0YS5tZXNzYWdlKSwKLSAgICAnbXNnJzogY29tbWl0ZGF0YS5tZXNzYWdlLAotfSkKLQotICAgICAgICBpZiByZWYgbm90IGluIHNlbGYucmVmczoKLSAgICAgICAgICAgIHNlbGYucmVmcy5hZGQocmVmKQotICAgICAgICAgICAgcGFyZW50ID0gcmVmICsgIl4wIgotICAgICAgICAgICAgaWYgc2VsZi5vYmpfZmV0Y2hlci5nZXRfc2hhMShwYXJlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuZi53cml0ZSgiZnJvbSAlc1xuIiAlIChwYXJlbnQpKQotCi0gICAgICAgIGZvciBvcCBpbiBjb21taXRkYXRhLnBhdGhvcHM6Ci0gICAgICAgICAgICBzZWxmLmYud3JpdGUoIiAiLmpvaW4ob3ApKQotICAgICAgICAgICAgc2VsZi5mLndyaXRlKCJcbiIpCi0gICAgICAgIHNlbGYuZi53cml0ZSgiXG4iKQotICAgICAgICByZXR2YWwgPSBzZWxmLm5leHRfbWFyawotICAgICAgICBzZWxmLm5leHRfbWFyayArPSAxCi0gICAgICAgIHJldHVybiByZXR2YWwKLQotICAgIGRlZiBibG9iIChzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiSW1wb3J0IHRoZSBnaXZlbiBibG9iLgotCi0gICAgICAgIFJldHVybiB0aGUgbWFyayBudW1iZXIgaWRlbnRpZnlpbmcgdGhpcyBibG9iLgotCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLmYud3JpdGUoImJsb2Jcbm1hcmsgOiVpXG5kYXRhICVpXG4lc1xuIiAlCi0gICAgICAgICAgICAgICAgICAgICAoc2VsZi5uZXh0X21hcmssIGxlbihkYXRhKSwgZGF0YSkpCi0gICAgICAgIHJldHZhbCA9IHNlbGYubmV4dF9tYXJrCi0gICAgICAgIHNlbGYubmV4dF9tYXJrICs9IDEKLSAgICAgICAgcmV0dXJuIHJldHZhbAotCi0gICAgZGVmIHJlc2V0IChzZWxmLCByZWYsIG9iam5hbWUpOgotICAgICAgICAiIiJSZXNldCB0aGUgZ2l2ZW4gcmVmIHRvIHBvaW50IGF0IHRoZSBnaXZlbiBHaXQgb2JqZWN0LiIiIgotICAgICAgICBzZWxmLmYud3JpdGUoInJlc2V0ICVzXG5mcm9tICVzXG5cbiIgJQotICAgICAgICAgICAgICAgICAgICAgKHJlZiwgR2l0RklDb21taXQucGFyc2Vfb2JqbmFtZShvYmpuYW1lKSkpCi0gICAgICAgIGlmIHJlZiBub3QgaW4gc2VsZi5yZWZzOgotICAgICAgICAgICAgc2VsZi5yZWZzLmFkZChyZWYpCi0KLQotY2xhc3MgR2l0Tm90ZXMob2JqZWN0KToKLQotICAgICIiIkVuY2Fwc3VsYXRlIGFjY2VzcyB0byBHaXQgbm90ZXMuCi0KLSAgICBTaW11bGF0ZXMgYSBkaWN0aW9uYXJ5IG9mIG9iamVjdCBuYW1lIChTSEExKSAtPiBHaXQgbm90ZSBtYXBwaW5ncy4KLQotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fIChzZWxmLCBub3Rlc19yZWYsIG9ial9mZXRjaGVyKToKLSAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IEdpdCBub3RlcyBpbnRlcmZhY2UsIGJvdW5kIHRvIHRoZSBnaXZlbiBub3RlcyByZWYuIiIiCi0gICAgICAgIHNlbGYubm90ZXNfcmVmID0gbm90ZXNfcmVmCi0gICAgICAgIHNlbGYub2JqX2ZldGNoZXIgPSBvYmpfZmV0Y2hlciAgIyBVc2VkIHRvIGdldCBvYmplY3RzIGZyb20gcmVwbwotICAgICAgICBzZWxmLmltcG9ydHMgPSBbXSAgIyBsaXN0OiAob2JqbmFtZSwgbm90ZSBkYXRhIGJsb2IgbmFtZSkgdHVwbGVzCi0KLSAgICBkZWYgX19kZWxfXyAoc2VsZik6Ci0gICAgICAgICIiIlZlcmlmeSB0aGF0IHNlbGYuY29tbWl0X25vdGVzKCkgd2FzIGNhbGxlZCBiZWZvcmUgZGVzdHJ1Y3Rpb24uIiIiCi0gICAgICAgIGlmIHNlbGYuaW1wb3J0czoKLSAgICAgICAgICAgIGVycm9yKCJNaXNzaW5nIGNhbGwgdG8gc2VsZi5jb21taXRfbm90ZXMoKS4iKQotICAgICAgICAgICAgZXJyb3IoIiVpIG5vdGVzIGFyZSBub3QgY29tbWl0dGVkISIsIGxlbihzZWxmLmltcG9ydHMpKQotCi0gICAgZGVmIF9sb2FkIChzZWxmLCBvYmpuYW1lKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBub3RlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBnaXQgb2JqZWN0LgotCi0gICAgICAgIFRoZSBub3RlIGRhdGEgaXMgcmV0dXJuZWQgaW4gc3RyaW5nIGZvcm0uIElmIG5vIG5vdGUgaXMgZm91bmQKLSAgICAgICAgZm9yIHRoZSBnaXZlbiBvYmplY3QsIE5vbmUgaXMgcmV0dXJuZWQuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGYgPSBzZWxmLm9ial9mZXRjaGVyLm9wZW5fb2JqKCIlczolcyIgJSAoc2VsZi5ub3Rlc19yZWYsIG9iam5hbWUpKQotICAgICAgICAgICAgcmV0ID0gZi5yZWFkKCkKLSAgICAgICAgICAgIGYuY2xvc2UoKQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICByZXQgPSBOb25lCi0gICAgICAgIHJldHVybiByZXQKLQotICAgIGRlZiBfX2dldGl0ZW1fXyAoc2VsZiwgb2JqbmFtZSk6Ci0gICAgICAgICIiIlJldHVybiB0aGUgbm90ZSBjb250ZW50cyBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIG9iamVjdC4KLQotICAgICAgICBSYWlzZSBLZXlFcnJvciBpZiBnaXZlbiBvYmplY3QgaGFzIG5vIGFzc29jaWF0ZWQgbm90ZS4KLQotICAgICAgICAiIiIKLSAgICAgICAgYmxvYmRhdGEgPSBzZWxmLl9sb2FkKG9iam5hbWUpCi0gICAgICAgIGlmIGJsb2JkYXRhIGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBLZXlFcnJvcigiT2JqZWN0ICclcycgaGFzIG5vIG5vdGUiICUgKG9iam5hbWUpKQotICAgICAgICByZXR1cm4gYmxvYmRhdGEKLQotICAgIGRlZiBnZXQgKHNlbGYsIG9iam5hbWUsIGRlZmF1bHQgPSBOb25lKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBub3RlIGNvbnRlbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gb2JqZWN0LgotCi0gICAgICAgIFJldHVybiBnaXZlbiBkZWZhdWx0IGlmIGdpdmVuIG9iamVjdCBoYXMgbm8gYXNzb2NpYXRlZCBub3RlLgotCi0gICAgICAgICIiIgotICAgICAgICBibG9iZGF0YSA9IHNlbGYuX2xvYWQob2JqbmFtZSkKLSAgICAgICAgaWYgYmxvYmRhdGEgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Ci0gICAgICAgIHJldHVybiBibG9iZGF0YQotCi0gICAgZGVmIGltcG9ydF9ub3RlIChzZWxmLCBvYmpuYW1lLCBkYXRhLCBnZmkpOgotICAgICAgICAiIiJUZWxsIGdpdCBmYXN0LWltcG9ydCB0byBzdG9yZSBkYXRhIGFzIGEgbm90ZSBmb3Igb2JqbmFtZS4KLQotICAgICAgICBUaGlzIG1ldGhvZCB1c2VzIHRoZSBnaXZlbiBHaXRGYXN0SW1wb3J0IG9iamVjdCB0byBjcmVhdGUgYQotICAgICAgICBibG9iIGNvbnRhaW5pbmcgdGhlIGdpdmVuIG5vdGUgZGF0YS4gIEFsc28gYW4gZW50cnkgbWFwcGluZyB0aGUKLSAgICAgICAgZ2l2ZW4gb2JqZWN0IG5hbWUgdG8gdGhlIGNyZWF0ZWQgYmxvYiBpcyBzdG9yZWQgdW50aWwKLSAgICAgICAgY29tbWl0X25vdGVzKCkgaXMgY2FsbGVkLgotCi0gICAgICAgIE5vdGUgdGhhdCB0aGlzIG1ldGhvZCBvbmx5IHdvcmtzIGlmIGl0IGlzIGxhdGVyIGZvbGxvd2VkIGJ5IGEKLSAgICAgICAgY2FsbCB0byBzZWxmLmNvbW1pdF9ub3RlcygpICh3aGljaCBwcm9kdWNlcyB0aGUgbm90ZSBjb21taXQKLSAgICAgICAgdGhhdCByZWZlcnMgdG8gdGhlIGJsb2IgcHJvZHVjZWQgaGVyZSkuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIG5vdCBkYXRhLmVuZHN3aXRoKCJcbiIpOgotICAgICAgICAgICAgZGF0YSArPSAiXG4iCi0gICAgICAgIGdmaS5jb21tZW50KCJJbXBvcnRpbmcgbm90ZSBmb3Igb2JqZWN0ICVzIiAlIChvYmpuYW1lKSkKLSAgICAgICAgbWFyayA9IGdmaS5ibG9iKGRhdGEpCi0gICAgICAgIHNlbGYuaW1wb3J0cy5hcHBlbmQoKG9iam5hbWUsIG1hcmspKQotCi0gICAgZGVmIGNvbW1pdF9ub3RlcyAoc2VsZiwgZ2ZpLCBhdXRob3IsIG1lc3NhZ2UpOgotICAgICAgICAiIiJQcm9kdWNlIGEgZ2l0IGZhc3QtaW1wb3J0IG5vdGUgY29tbWl0IGZvciB0aGUgaW1wb3J0ZWQgbm90ZXMuCi0KLSAgICAgICAgVGhpcyBtZXRob2QgdXNlcyB0aGUgZ2l2ZW4gR2l0RmFzdEltcG9ydCBvYmplY3QgdG8gY3JlYXRlIGEKLSAgICAgICAgY29tbWl0IG9uIHRoZSBub3RlcyByZWYsIGludHJvZHVjaW5nIHRoZSBub3RlcyBwcmV2aW91c2x5Ci0gICAgICAgIHN1Ym1pdHRlZCB0byBpbXBvcnRfbm90ZSgpLgotCi0gICAgICAgICIiIgotICAgICAgICBpZiBub3Qgc2VsZi5pbXBvcnRzOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGNvbW1pdGRhdGEgPSBHaXRGSUNvbW1pdChhdXRob3JbMF0sIGF1dGhvclsxXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUudGltZSgpLCAiMDAwMCIsIG1lc3NhZ2UpCi0gICAgICAgIGZvciBvYmpuYW1lLCBibG9ibmFtZSBpbiBzZWxmLmltcG9ydHM6Ci0gICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShvYmpuYW1lLCBpbnQpIGFuZCBvYmpuYW1lID4gMAotICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYmxvYm5hbWUsIGludCkgYW5kIGJsb2JuYW1lID4gMAotICAgICAgICAgICAgY29tbWl0ZGF0YS5ub3RlKGJsb2JuYW1lLCBvYmpuYW1lKQotICAgICAgICBnZmkuY29tbWl0KHNlbGYubm90ZXNfcmVmLCBjb21taXRkYXRhKQotICAgICAgICBzZWxmLmltcG9ydHMgPSBbXQotCi0KLWNsYXNzIEdpdENhY2hlZE5vdGVzKEdpdE5vdGVzKToKLQotICAgICIiIkVuY2Fwc3VsYXRlIGFjY2VzcyB0byBHaXQgbm90ZXMgKGNhY2hlZCB2ZXJzaW9uKS4KLQotICAgIE9ubHkgdXNlIHRoaXMgY2xhc3MgaWYgbm8gY2FjaGluZyBpcyBkb25lIGF0IGEgaGlnaGVyIGxldmVsLgotCi0gICAgU2ltdWxhdGVzIGEgZGljdGlvbmFyeSBvZiBvYmplY3QgbmFtZSAoU0hBMSkgLT4gR2l0IG5vdGUgbWFwcGluZ3MuCi0KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyAoc2VsZiwgbm90ZXNfcmVmLCBvYmpfZmV0Y2hlcik6Ci0gICAgICAgICIiIlNldCB1cCBhIGNhY2hpbmcgd3JhcHBlciBhcm91bmQgR2l0Tm90ZXMuIiIiCi0gICAgICAgIEdpdE5vdGVzLl9faW5pdF9fKHNlbGYsIG5vdGVzX3JlZiwgb2JqX2ZldGNoZXIpCi0gICAgICAgIHNlbGYuX2NhY2hlID0ge30gICMgQ2FjaGU6IG9iamVjdCBuYW1lIC0+IG5vdGUgZGF0YQotCi0gICAgZGVmIF9fZGVsX18gKHNlbGYpOgotICAgICAgICAiIiJWZXJpZnkgdGhhdCBHaXROb3RlcycgZGVzdHJ1Y3RvciBpcyBjYWxsZWQuIiIiCi0gICAgICAgIEdpdE5vdGVzLl9fZGVsX18oc2VsZikKLQotICAgIGRlZiBfbG9hZCAoc2VsZiwgb2JqbmFtZSk6Ci0gICAgICAgICIiIkV4dGVuZCBHaXROb3Rlcy5fbG9hZCgpIHdpdGggYSBsb2NhbCBvYmpuYW1lIC0+IG5vdGUgY2FjaGUuIiIiCi0gICAgICAgIGlmIG9iam5hbWUgbm90IGluIHNlbGYuX2NhY2hlOgotICAgICAgICAgICAgc2VsZi5fY2FjaGVbb2JqbmFtZV0gPSBHaXROb3Rlcy5fbG9hZChzZWxmLCBvYmpuYW1lKQotICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGVbb2JqbmFtZV0KLQotICAgIGRlZiBpbXBvcnRfbm90ZSAoc2VsZiwgb2JqbmFtZSwgZGF0YSwgZ2ZpKToKLSAgICAgICAgIiIiRXh0ZW5kIEdpdE5vdGVzLmltcG9ydF9ub3RlKCkgd2l0aCBhIGxvY2FsIG9iam5hbWUgLT4gbm90ZSBjYWNoZS4iIiIKLSAgICAgICAgaWYgbm90IGRhdGEuZW5kc3dpdGgoIlxuIik6Ci0gICAgICAgICAgICBkYXRhICs9ICJcbiIKLSAgICAgICAgYXNzZXJ0IG9iam5hbWUgbm90IGluIHNlbGYuX2NhY2hlCi0gICAgICAgIHNlbGYuX2NhY2hlW29iam5hbWVdID0gZGF0YQotICAgICAgICBHaXROb3Rlcy5pbXBvcnRfbm90ZShzZWxmLCBvYmpuYW1lLCBkYXRhLCBnZmkpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL2dpdF9yZW1vdGVfaGVscGVycy9naXQvaW1wb3J0ZXIucHkgYi9naXRfcmVtb3RlX2hlbHBlcnMvZ2l0L2ltcG9ydGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2Y5MGUxLi4wMDAwMDAwCi0tLSBhL2dpdF9yZW1vdGVfaGVscGVycy9naXQvaW1wb3J0ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi1pbXBvcnQgb3MKLWltcG9ydCBzdWJwcm9jZXNzCi0KLWZyb20gZ2l0X3JlbW90ZV9oZWxwZXJzLnV0aWwgaW1wb3J0IGNoZWNrX2NhbGwsIGNoZWNrX291dHB1dAotCi0KLWNsYXNzIEdpdEltcG9ydGVyKG9iamVjdCk6Ci0gICAgIiIiQW4gaW1wb3J0ZXIgZm9yIHRlc3RnaXQgcmVwb3NpdG9yaWVzLgotCi0gICAgVGhpcyBpbXBvcnRlciBzaW1wbHkgZGVsZWdhdGVzIHRvIGdpdCBmYXN0LWltcG9ydC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBvKToKLSAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyBpbXBvcnRlciBmb3IgdGhlIHNwZWNpZmllZCByZXBvLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLnJlcG8gPSByZXBvCi0KLSAgICBkZWYgZ2V0X3JlZnMoc2VsZiwgZ2l0ZGlyKToKLSAgICAgICAgIiIiUmV0dXJucyBhIGRpY3Rpb25hcnkgd2l0aCByZWZzLgotCi0gICAgICAgIE5vdGUgdGhhdCB0aGUga2V5cyBpbiB0aGUgcmV0dXJuZWQgZGljdGlvbmFyeSBhcmUgYnl0ZSBzdHJpbmdzIGFzCi0gICAgICAgIHJlYWQgZnJvbSBnaXQuCi0gICAgICAgICIiIgotICAgICAgICBhcmdzID0gWyJnaXQiLCAiLS1naXQtZGlyPSIgKyBnaXRkaXIsICJmb3ItZWFjaC1yZWYiLCAicmVmcy9oZWFkcyJdCi0gICAgICAgIGxpbmVzID0gY2hlY2tfb3V0cHV0KGFyZ3MpLnN0cmlwKCkuc3BsaXQoJ1xuJy5lbmNvZGUoJ2FzY2lpJykpCi0gICAgICAgIHJlZnMgPSB7fQotICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKLSAgICAgICAgICAgIHZhbHVlLCBuYW1lID0gbGluZS5zcGxpdCgnICcuZW5jb2RlKCdhc2NpaScpKQotICAgICAgICAgICAgbmFtZSA9IG5hbWUuc3RyaXAoJ2NvbW1pdFx0Jy5lbmNvZGUoJ2FzY2lpJykpCi0gICAgICAgICAgICByZWZzW25hbWVdID0gdmFsdWUKLSAgICAgICAgcmV0dXJuIHJlZnMKLQotICAgIGRlZiBkb19pbXBvcnQoc2VsZiwgYmFzZSk6Ci0gICAgICAgICIiIkltcG9ydHMgYSBmYXN0LWltcG9ydCBzdHJlYW0gdG8gdGhlIGdpdmVuIGRpcmVjdG9yeS4KLQotICAgICAgICBTaW1wbHkgZGVsZWdhdGVzIHRvIGdpdCBmYXN0LWltcG9ydC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZGlybmFtZSA9IHNlbGYucmVwby5nZXRfYmFzZV9wYXRoKGJhc2UpCi0gICAgICAgIGlmIHNlbGYucmVwby5sb2NhbDoKLSAgICAgICAgICAgIGdpdGRpciA9IHNlbGYucmVwby5naXRwYXRoCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBnaXRkaXIgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGRpcm5hbWUsICcuZ2l0JykpCi0gICAgICAgIHBhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGRpcm5hbWUsICd0ZXN0Z2l0Lm1hcmtzJykpCi0KLSAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRpcm5hbWUpOgotICAgICAgICAgICAgb3MubWFrZWRpcnMoZGlybmFtZSkKLQotICAgICAgICByZWZzX2JlZm9yZSA9IHNlbGYuZ2V0X3JlZnMoZ2l0ZGlyKQotCi0gICAgICAgIGFyZ3MgPSBbImdpdCIsICItLWdpdC1kaXI9IiArIGdpdGRpciwgImZhc3QtaW1wb3J0IiwgIi0tcXVpZXQiLCAiLS1leHBvcnQtbWFya3M9IiArIHBhdGhdCi0KLSAgICAgICAgaWYgb3MucGF0aC5leGlzdHMocGF0aCk6Ci0gICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1pbXBvcnQtbWFya3M9IiArIHBhdGgpCi0KLSAgICAgICAgY2hlY2tfY2FsbChhcmdzKQotCi0gICAgICAgIHJlZnNfYWZ0ZXIgPSBzZWxmLmdldF9yZWZzKGdpdGRpcikKLQotICAgICAgICBjaGFuZ2VkID0ge30KLQotICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gcmVmc19hZnRlci5pdGVyaXRlbXMoKToKLSAgICAgICAgICAgIGlmIHJlZnNfYmVmb3JlLmdldChuYW1lKSA9PSB2YWx1ZToKLSAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICBjaGFuZ2VkW25hbWVdID0gdmFsdWUKLQotICAgICAgICByZXR1cm4gY2hhbmdlZApkaWZmIC0tZ2l0IGEvZ2l0X3JlbW90ZV9oZWxwZXJzL2dpdC9ub25fbG9jYWwucHkgYi9naXRfcmVtb3RlX2hlbHBlcnMvZ2l0L25vbl9sb2NhbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTcwMDI1MC4uMDAwMDAwMAotLS0gYS9naXRfcmVtb3RlX2hlbHBlcnMvZ2l0L25vbl9sb2NhbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLWltcG9ydCBvcwotaW1wb3J0IHN1YnByb2Nlc3MKLQotZnJvbSBnaXRfcmVtb3RlX2hlbHBlcnMudXRpbCBpbXBvcnQgY2hlY2tfY2FsbCwgZGllLCB3YXJuCi0KLQotY2xhc3MgTm9uTG9jYWxHaXQob2JqZWN0KToKLSAgICAiIiJIYW5kbGVyIHRvIGludGVyYWN0IHdpdGggbm9uLWxvY2FsIHJlcG9zLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcG8pOgotICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IG5vbi1sb2NhbCBoYW5kbGVyIGZvciB0aGUgc3BlY2lmaWVkIHJlcG8uCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYucmVwbyA9IHJlcG8KLQotICAgIGRlZiBjbG9uZShzZWxmLCBiYXNlKToKLSAgICAgICAgIiIiQ2xvbmVzIHRoZSBub24tbG9jYWwgcmVwbyB0byBiYXNlLgotCi0gICAgICAgIERvZXMgbm90aGluZyBpZiBhIGNsb25lIGFscmVhZHkgZXhpc3RzLgotICAgICAgICAiIiIKLQotICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHNlbGYucmVwby5nZXRfYmFzZV9wYXRoKGJhc2UpLCAnLmdpdCcpCi0KLSAgICAgICAgIyBhbHJlYWR5IGNsb25lZAotICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwYXRoKToKLSAgICAgICAgICAgIHJldHVybiBwYXRoCi0KLSAgICAgICAgb3MubWFrZWRpcnMocGF0aCkKLSAgICAgICAgYXJncyA9IFsiZ2l0IiwgImNsb25lIiwgIi0tYmFyZSIsICItLXF1aWV0Iiwgc2VsZi5yZXBvLmdpdHBhdGgsIHBhdGhdCi0KLSAgICAgICAgY2hlY2tfY2FsbChhcmdzKQotCi0gICAgICAgIHJldHVybiBwYXRoCi0KLSAgICBkZWYgdXBkYXRlKHNlbGYsIGJhc2UpOgotICAgICAgICAiIiJVcGRhdGVzIGNoZWNrb3V0IG9mIHRoZSBub24tbG9jYWwgcmVwbyBpbiBiYXNlLgotICAgICAgICAiIiIKLQotICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHNlbGYucmVwby5nZXRfYmFzZV9wYXRoKGJhc2UpLCAnLmdpdCcpCi0KLSAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHBhdGgpOgotICAgICAgICAgICAgZGllKCJjb3VsZCBub3QgZmluZCByZXBvIGF0ICVzIiwgcGF0aCkKLQotICAgICAgICBhcmdzID0gWyJnaXQiLCAiLS1naXQtZGlyPSIgKyBwYXRoLCAiZmV0Y2giLCAiLS1xdWlldCIsIHNlbGYucmVwby5naXRwYXRoXQotICAgICAgICBjaGVja19jYWxsKGFyZ3MpCi0KLSAgICAgICAgYXJncyA9IFsiZ2l0IiwgIi0tZ2l0LWRpcj0iICsgcGF0aCwgInVwZGF0ZS1yZWYiLCAicmVmcy9oZWFkcy9tYXN0ZXIiLCAiRkVUQ0hfSEVBRCJdCi0gICAgICAgIGNoaWxkID0gY2hlY2tfY2FsbChhcmdzKQotCi0gICAgZGVmIHB1c2goc2VsZiwgYmFzZSk6Ci0gICAgICAgICIiIlB1c2hlcyBmcm9tIHRoZSBub24tbG9jYWwgcmVwbyB0byBiYXNlLgotICAgICAgICAiIiIKLQotICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHNlbGYucmVwby5nZXRfYmFzZV9wYXRoKGJhc2UpLCAnLmdpdCcpCi0KLSAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHBhdGgpOgotICAgICAgICAgICAgZGllKCJjb3VsZCBub3QgZmluZCByZXBvIGF0ICVzIiwgcGF0aCkKLQotICAgICAgICBhcmdzID0gWyJnaXQiLCAiLS1naXQtZGlyPSIgKyBwYXRoLCAicHVzaCIsICItLXF1aWV0Iiwgc2VsZi5yZXBvLmdpdHBhdGgsICItLWFsbCJdCi0gICAgICAgIGNoaWxkID0gY2hlY2tfY2FsbChhcmdzKQpkaWZmIC0tZ2l0IGEvZ2l0X3JlbW90ZV9oZWxwZXJzL2dpdC9yZXBvLnB5IGIvZ2l0X3JlbW90ZV9oZWxwZXJzL2dpdC9yZXBvLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2JmOGQ3Li4wMDAwMDAwCi0tLSBhL2dpdF9yZW1vdGVfaGVscGVycy9naXQvcmVwby5weQorKysgL2Rldi9udWxsCkBAIC0xLDc2ICswLDAgQEAKLWltcG9ydCBvcwotaW1wb3J0IHN1YnByb2Nlc3MKLQotZnJvbSBnaXRfcmVtb3RlX2hlbHBlcnMudXRpbCBpbXBvcnQgY2hlY2tfY2FsbAotCi0KLWRlZiBzYW5pdGl6ZShyZXYsIHNlcD0nXHQnKToKLSAgICAiIiJDb252ZXJ0cyBhIGZvci1lYWNoLXJlZiBsaW5lIHRvIGEgbmFtZS92YWx1ZSBwYWlyLgotICAgICIiIgotCi0gICAgc3BsaXRyZXYgPSByZXYuc3BsaXQoc2VwKQotICAgIGJyYW5jaHZhbCA9IHNwbGl0cmV2WzBdCi0gICAgYnJhbmNobmFtZSA9IHNwbGl0cmV2WzFdLnN0cmlwKCkKLSAgICBpZiBicmFuY2huYW1lLnN0YXJ0c3dpdGgoInJlZnMvaGVhZHMvIik6Ci0gICAgICAgIGJyYW5jaG5hbWUgPSBicmFuY2huYW1lWzExOl0KLQotICAgIHJldHVybiBicmFuY2huYW1lLCBicmFuY2h2YWwKLQotZGVmIGlzX3JlbW90ZSh1cmwpOgotICAgICIiIkNoZWNrcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgdmFsdWUgaXMgYSByZW1vdGUgdXJsLgotICAgICIiIgotCi0gICAgcHJlZml4ZXMgPSBbImh0dHAiLCAiZmlsZSIsICJnaXQiXQotCi0gICAgZm9yIHByZWZpeCBpbiBwcmVmaXhlczoKLSAgICAgICAgaWYgdXJsLnN0YXJ0c3dpdGgocHJlZml4KToKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgcmV0dXJuIEZhbHNlCi0KLWNsYXNzIEdpdFJlcG8ob2JqZWN0KToKLSAgICAiIiJSZXBvIG9iamVjdCByZXByZXNlbnRpbmcgYSByZXBvLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgotICAgICAgICAiIiJJbml0aWFsaXplcyBhIG5ldyByZXBvIGF0IHRoZSBnaXZlbiBwYXRoLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLnBhdGggPSBwYXRoCi0gICAgICAgIHNlbGYuaGVhZCA9IE5vbmUKLSAgICAgICAgc2VsZi5yZXZtYXAgPSB7fQotICAgICAgICBzZWxmLmxvY2FsID0gbm90IGlzX3JlbW90ZShzZWxmLnBhdGgpCi0KLSAgICAgICAgaWYoc2VsZi5wYXRoLmVuZHN3aXRoKCcuZ2l0JykpOgotICAgICAgICAgICAgc2VsZi5naXRwYXRoID0gc2VsZi5wYXRoCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmdpdHBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAnLmdpdCcpCi0KLSAgICAgICAgaWYgc2VsZi5sb2NhbCBhbmQgbm90IG9zLnBhdGguZXhpc3RzKHNlbGYuZ2l0cGF0aCk6Ci0gICAgICAgICAgICBvcy5tYWtlZGlycyhzZWxmLmdpdHBhdGgpCi0KLSAgICBkZWYgZ2V0X3JldnMoc2VsZik6Ci0gICAgICAgICIiIkZldGNoZXMgYWxsIHJldnMgZnJvbSB0aGUgcmVtb3RlLgotICAgICAgICAiIiIKLQotICAgICAgICBhcmdzID0gWyJnaXQiLCAibHMtcmVtb3RlIiwgc2VsZi5naXRwYXRoXQotICAgICAgICBwYXRoID0gIi5jYWNoZWRfcmV2cyIKLSAgICAgICAgb2ZpbGUgPSBvcGVuKHBhdGgsICJ3IikKLQotICAgICAgICBjaGVja19jYWxsKGFyZ3MsIHN0ZG91dD1vZmlsZSkKLSAgICAgICAgb3V0cHV0ID0gb3BlbihwYXRoKS5yZWFkbGluZXMoKQotICAgICAgICBzZWxmLnJldm1hcCA9IGRpY3Qoc2FuaXRpemUoaSkgZm9yIGkgaW4gb3V0cHV0KQotICAgICAgICBpZiAiSEVBRCIgaW4gc2VsZi5yZXZtYXA6Ci0gICAgICAgICAgICBkZWwgc2VsZi5yZXZtYXBbIkhFQUQiXQotICAgICAgICBzZWxmLnJldnMgPSBzZWxmLnJldm1hcC5rZXlzKCkKLSAgICAgICAgb2ZpbGUuY2xvc2UoKQotCi0gICAgZGVmIGdldF9oZWFkKHNlbGYpOgotICAgICAgICAiIiJEZXRlcm1pbmVzIHRoZSBoZWFkIG9mIGEgbG9jYWwgcmVwby4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgbm90IHNlbGYubG9jYWw6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHNlbGYuZ2l0cGF0aCwgIkhFQUQiKQotICAgICAgICBoZWFkID0gb3BlbihwYXRoKS5yZWFkbGluZSgpCi0gICAgICAgIHNlbGYuaGVhZCwgXyA9IHNhbml0aXplKGhlYWQsICcgJykKZGlmZiAtLWdpdCBhL2dpdF9yZW1vdGVfaGVscGVycy9zZXR1cC5jZmcgYi9naXRfcmVtb3RlX2hlbHBlcnMvc2V0dXAuY2ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmZmODg3Li4wMDAwMDAwCi0tLSBhL2dpdF9yZW1vdGVfaGVscGVycy9zZXR1cC5jZmcKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVtidWlsZF0KLWJ1aWxkX3B1cmVsaWIgPSBidWlsZC9saWIKLWJ1aWxkX3BsYXRsaWIgPSBidWlsZC9saWIKZGlmZiAtLWdpdCBhL2dpdF9yZW1vdGVfaGVscGVycy9zZXR1cC5weSBiL2dpdF9yZW1vdGVfaGVscGVycy9zZXR1cC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmRlNDFkZS4uMDAwMDAwMAotLS0gYS9naXRfcmVtb3RlX2hlbHBlcnMvc2V0dXAucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLQotIiIiRGlzdHV0aWxzIGJ1aWxkL2luc3RhbGwgc2NyaXB0IGZvciB0aGUgZ2l0X3JlbW90ZV9oZWxwZXJzIHBhY2thZ2UuIiIiCi0KLWZyb20gZGlzdHV0aWxzLmNvcmUgaW1wb3J0IHNldHVwCi0KLSMgSWYgYnVpbGRpbmcgdW5kZXIgUHl0aG9uMyB3ZSBuZWVkIHRvIHJ1biAydG8zIG9uIHRoZSBjb2RlLCBkbyB0aGlzIGJ5Ci0jIHRyeWluZyB0byBpbXBvcnQgZGlzdHV0aWxzJyAydG8zIGJ1aWxkZXIsIHdoaWNoIGlzIG9ubHkgYXZhaWxhYmxlIGluCi0jIFB5dGhvbjMuCi10cnk6Ci0gICAgZnJvbSBkaXN0dXRpbHMuY29tbWFuZC5idWlsZF9weSBpbXBvcnQgYnVpbGRfcHlfMnRvMyBhcyBidWlsZF9weQotZXhjZXB0IEltcG9ydEVycm9yOgotICAgICMgMi54Ci0gICAgZnJvbSBkaXN0dXRpbHMuY29tbWFuZC5idWlsZF9weSBpbXBvcnQgYnVpbGRfcHkKLQotc2V0dXAoCi0gICAgbmFtZSA9ICdnaXRfcmVtb3RlX2hlbHBlcnMnLAotICAgIHZlcnNpb24gPSAnMC4xLjAnLAotICAgIGRlc2NyaXB0aW9uID0gJ0dpdCByZW1vdGUgaGVscGVyIHByb2dyYW0gZm9yIG5vbi1naXQgcmVwb3NpdG9yaWVzJywKLSAgICBsaWNlbnNlID0gJ0dQTHYyJywKLSAgICBhdXRob3IgPSAnVGhlIEdpdCBDb21tdW5pdHknLAotICAgIGF1dGhvcl9lbWFpbCA9ICdnaXRAdmdlci5rZXJuZWwub3JnJywKLSAgICB1cmwgPSAnaHR0cDovL3d3dy5naXQtc2NtLmNvbS8nLAotICAgIHBhY2thZ2VfZGlyID0geydnaXRfcmVtb3RlX2hlbHBlcnMnOiAnJ30sCi0gICAgcGFja2FnZXMgPSBbJ2dpdF9yZW1vdGVfaGVscGVycycsICdnaXRfcmVtb3RlX2hlbHBlcnMuZ2l0J10sCi0gICAgY21kY2xhc3MgPSB7J2J1aWxkX3B5JzogYnVpbGRfcHl9LAotKQpkaWZmIC0tZ2l0IGEvZ2l0X3JlbW90ZV9oZWxwZXJzL3V0aWwucHkgYi9naXRfcmVtb3RlX2hlbHBlcnMvdXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmJiYjAxYi4uMDAwMDAwMAotLS0gYS9naXRfcmVtb3RlX2hlbHBlcnMvdXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI3NSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLQotIiIiTWlzYy4gdXNlZnVsIGZ1bmN0aW9uYWxpdHkgdXNlZCBieSB0aGUgcmVzdCBvZiB0aGlzIHBhY2thZ2UuCi0KLVRoaXMgbW9kdWxlIHByb3ZpZGVzIGNvbW1vbiBmdW5jdGlvbmFsaXR5IHVzZWQgYnkgdGhlIG90aGVyIG1vZHVsZXMgaW4KLXRoaXMgcGFja2FnZS4KLQotIiIiCi0KLWltcG9ydCBzeXMKLWltcG9ydCBvcwotaW1wb3J0IHN1YnByb2Nlc3MKLQotdHJ5OgotICAgIGZyb20gc3VicHJvY2VzcyBpbXBvcnQgQ2FsbGVkUHJvY2Vzc0Vycm9yCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgIyBmcm9tIHB5dGhvbjIuNzpzdWJwcm9jZXNzLnB5Ci0gICAgIyBFeGNlcHRpb24gY2xhc3NlcyB1c2VkIGJ5IHRoaXMgbW9kdWxlLgotICAgIGNsYXNzIENhbGxlZFByb2Nlc3NFcnJvcihFeGNlcHRpb24pOgotICAgICAgICAiIiJUaGlzIGV4Y2VwdGlvbiBpcyByYWlzZWQgd2hlbiBhIHByb2Nlc3MgcnVuIGJ5IGNoZWNrX2NhbGwoKSByZXR1cm5zCi0gICAgICAgIGEgbm9uLXplcm8gZXhpdCBzdGF0dXMuICBUaGUgZXhpdCBzdGF0dXMgd2lsbCBiZSBzdG9yZWQgaW4gdGhlCi0gICAgICAgIHJldHVybmNvZGUgYXR0cmlidXRlLiIiIgotICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcmV0dXJuY29kZSwgY21kKToKLSAgICAgICAgICAgIHNlbGYucmV0dXJuY29kZSA9IHJldHVybmNvZGUKLSAgICAgICAgICAgIHNlbGYuY21kID0gY21kCi0gICAgICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotICAgICAgICAgICAgcmV0dXJuICJDb21tYW5kICclcycgcmV0dXJuZWQgbm9uLXplcm8gZXhpdCBzdGF0dXMgJWQiICUgKHNlbGYuY21kLCBzZWxmLnJldHVybmNvZGUpCi0KLQotIyBXaGV0aGVyIG9yIG5vdCB0byBzaG93IGRlYnVnIG1lc3NhZ2VzCi1ERUJVRyA9IEZhbHNlCi0KLWRlZiBub3RpZnkobXNnLCAqYXJncyk6Ci0gICAgIiIiUHJpbnQgYSBtZXNzYWdlIHRvIHN0ZGVyci4iIiIKLSAgICBwcmludCA+PiBzeXMuc3RkZXJyLCBtc2cgJSBhcmdzCi0KLWRlZiBkZWJ1ZyAobXNnLCAqYXJncyk6Ci0gICAgIiIiUHJpbnQgYSBkZWJ1ZyBtZXNzYWdlIHRvIHN0ZGVyciB3aGVuIERFQlVHIGlzIGVuYWJsZWQuIiIiCi0gICAgaWYgREVCVUc6Ci0gICAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsIG1zZyAlIGFyZ3MKLQotZGVmIGVycm9yIChtc2csICphcmdzKToKLSAgICAiIiJQcmludCBhbiBlcnJvciBtZXNzYWdlIHRvIHN0ZGVyci4iIiIKLSAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAiRVJST1I6IiwgbXNnICUgYXJncwotCi1kZWYgd2Fybihtc2csICphcmdzKToKLSAgICAiIiJQcmludCBhIHdhcm5pbmcgbWVzc2FnZSB0byBzdGRlcnIuIiIiCi0gICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgIndhcm5pbmc6IiwgbXNnICUgYXJncwotCi1kZWYgZGllIChtc2csICphcmdzKToKLSAgICAiIiJQcmludCBhcyBlcnJvciBtZXNzYWdlIHRvIHN0ZGVyciBhbmQgZXhpdCB0aGUgcHJvZ3JhbS4iIiIKLSAgICBlcnJvcihtc2csICphcmdzKQotICAgIHN5cy5leGl0KDEpCi0KLQotY2xhc3MgUHJvZ3Jlc3NJbmRpY2F0b3Iob2JqZWN0KToKLQotICAgICIiIlNpbXBsZSBwcm9ncmVzcyBpbmRpY2F0b3IuCi0KLSAgICBEaXNwbGF5ZWQgYXMgYSBzcGlubmluZyBjaGFyYWN0ZXIgYnkgZGVmYXVsdCwgYnV0IGNhbiBiZSBjdXN0b21pemVkCi0gICAgYnkgcGFzc2luZyBjdXN0b20gbWVzc2FnZXMgdGhhdCBvdmVycmlkZXMgdGhlIHNwaW5uaW5nIGNoYXJhY3Rlci4KLQotICAgICIiIgotCi0gICAgU3RhdGVzID0gKCJ8IiwgIi8iLCAiLSIsICJcXCIpCi0KLSAgICBkZWYgX19pbml0X18gKHNlbGYsIHByZWZpeCA9ICIiLCBmID0gc3lzLnN0ZG91dCk6Ci0gICAgICAgICIiIkNyZWF0ZSBhIG5ldyBQcm9ncmVzc0luZGljYXRvciwgYm91bmQgdG8gdGhlIGdpdmVuIGZpbGUgb2JqZWN0LiIiIgotICAgICAgICBzZWxmLm4gPSAwICAjIFNpbXBsZSBwcm9ncmVzcyBjb3VudGVyCi0gICAgICAgIHNlbGYuZiA9IGYgICMgUHJvZ3Jlc3MgaXMgd3JpdHRlbiB0byB0aGlzIGZpbGUgb2JqZWN0Ci0gICAgICAgIHNlbGYucHJldl9sZW4gPSAwICAjIExlbmd0aCBvZiBwcmV2aW91cyBtc2cgKHRvIGJlIG92ZXJ3cml0dGVuKQotICAgICAgICBzZWxmLnByZWZpeCA9IHByZWZpeCAgIyBQcmVmaXggcHJlcGVuZGVkIHRvIGVhY2ggcHJvZ3Jlc3MgbWVzc2FnZQotICAgICAgICBzZWxmLnByZWZpeF9sZW5zID0gW10gIyBTdGFjayBvZiBwcmVmaXggc3RyaW5nIGxlbmd0aHMKLQotICAgIGRlZiBwdXNocHJlZml4IChzZWxmLCBwcmVmaXgpOgotICAgICAgICAiIiJBcHBlbmQgdGhlIGdpdmVuIHByZWZpeCBvbnRvIHRoZSBwcmVmaXggc3RhY2suIiIiCi0gICAgICAgIHNlbGYucHJlZml4X2xlbnMuYXBwZW5kKGxlbihzZWxmLnByZWZpeCkpCi0gICAgICAgIHNlbGYucHJlZml4ICs9IHByZWZpeAotCi0gICAgZGVmIHBvcHByZWZpeCAoc2VsZik6Ci0gICAgICAgICIiIlJlbW92ZSB0aGUgbGFzdCBwcmVmaXggZnJvbSB0aGUgcHJlZml4IHN0YWNrLiIiIgotICAgICAgICBwcmV2X2xlbiA9IHNlbGYucHJlZml4X2xlbnMucG9wKCkKLSAgICAgICAgc2VsZi5wcmVmaXggPSBzZWxmLnByZWZpeFs6cHJldl9sZW5dCi0KLSAgICBkZWYgX19jYWxsX18gKHNlbGYsIG1zZyA9IE5vbmUsIGxmID0gRmFsc2UpOgotICAgICAgICAiIiJJbmRpY2F0ZSBwcm9ncmVzcywgcG9zc2libHkgd2l0aCBhIGN1c3RvbSBtZXNzYWdlLiIiIgotICAgICAgICBpZiBtc2cgaXMgTm9uZToKLSAgICAgICAgICAgIG1zZyA9IHNlbGYuU3RhdGVzW3NlbGYubiAlIGxlbihzZWxmLlN0YXRlcyldCi0gICAgICAgIG1zZyA9IHNlbGYucHJlZml4ICsgbXNnCi0gICAgICAgIHByaW50ID4+IHNlbGYuZiwgIlxyJS0qcyIgJSAoc2VsZi5wcmV2X2xlbiwgbXNnKSwKLSAgICAgICAgc2VsZi5wcmV2X2xlbiA9IGxlbihtc2cuZXhwYW5kdGFicygpKQotICAgICAgICBpZiBsZjoKLSAgICAgICAgICAgIHByaW50ID4+IHNlbGYuZgotICAgICAgICAgICAgc2VsZi5wcmV2X2xlbiA9IDAKLSAgICAgICAgc2VsZi5uICs9IDEKLQotICAgIGRlZiBmaW5pc2ggKHNlbGYsIG1zZyA9ICJkb25lIiwgbm9wcmVmaXggPSBGYWxzZSk6Ci0gICAgICAgICIiIkZpbmFsaXplIHByb2dyZXNzIGluZGljYXRpb24gd2l0aCB0aGUgZ2l2ZW4gbWVzc2FnZS4iIiIKLSAgICAgICAgaWYgbm9wcmVmaXg6Ci0gICAgICAgICAgICBzZWxmLnByZWZpeCA9ICIiCi0gICAgICAgIHNlbGYobXNnLCBUcnVlKQotCi0KLWRlZiBzdGFydF9jb21tYW5kIChhcmdzLCBjd2QgPSBOb25lLCBzaGVsbCA9IEZhbHNlLCBhZGRfZW52ID0gTm9uZSwKLSAgICAgICAgICAgICAgICAgICBzdGRpbiA9IHN1YnByb2Nlc3MuUElQRSwgc3Rkb3V0ID0gc3VicHJvY2Vzcy5QSVBFLAotICAgICAgICAgICAgICAgICAgIHN0ZGVyciA9IHN1YnByb2Nlc3MuUElQRSk6Ci0gICAgIiIiU3RhcnQgdGhlIGdpdmVuIGNvbW1hbmQsIGFuZCByZXR1cm4gYSBzdWJwcm9jZXNzIG9iamVjdC4KLQotICAgIFRoaXMgcHJvdmlkZXMgYSBzaW1wbGVyIGludGVyZmFjZSB0byB0aGUgc3VicHJvY2VzcyBtb2R1bGUuCi0KLSAgICAiIiIKLSAgICBlbnYgPSBOb25lCi0gICAgaWYgYWRkX2VudiBpcyBub3QgTm9uZToKLSAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKLSAgICAgICAgZW52LnVwZGF0ZShhZGRfZW52KQotICAgIHJldHVybiBzdWJwcm9jZXNzLlBvcGVuKGFyZ3MsIGJ1ZnNpemUgPSAxLCBzdGRpbiA9IHN0ZGluLCBzdGRvdXQgPSBzdGRvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyID0gc3RkZXJyLCBjd2QgPSBjd2QsIHNoZWxsID0gc2hlbGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52ID0gZW52LCB1bml2ZXJzYWxfbmV3bGluZXMgPSBUcnVlKQotCi0KLWRlZiBydW5fY29tbWFuZCAoYXJncywgY3dkID0gTm9uZSwgc2hlbGwgPSBGYWxzZSwgYWRkX2VudiA9IE5vbmUsCi0gICAgICAgICAgICAgICAgIGZsYWdfZXJyb3IgPSBUcnVlKToKLSAgICAiIiJSdW4gdGhlIGdpdmVuIGNvbW1hbmQgdG8gY29tcGxldGlvbiwgYW5kIHJldHVybiBpdHMgcmVzdWx0cy4KLQotICAgIFRoaXMgcHJvdmlkZXMgYSBzaW1wbGVyIGludGVyZmFjZSB0byB0aGUgc3VicHJvY2VzcyBtb2R1bGUuCi0KLSAgICBUaGUgcmVzdWx0cyBhcmUgZm9ybWF0dGVkIGFzIGEgMy10dXBsZTogKGV4aXRfY29kZSwgb3V0cHV0LCBlcnJvcnMpCi0KLSAgICBJZiBmbGFnX2Vycm9yIGlzIGVuYWJsZWQsIEVycm9yIG1lc3NhZ2VzIHdpbGwgYmUgcHJvZHVjZWQgaWYgdGhlCi0gICAgc3VicHJvY2VzcyB0ZXJtaW5hdGVkIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kL29yIHN0ZGVycgotICAgIG91dHB1dC4KLQotICAgIFRoZSBvdGhlciBhcmd1bWVudHMgYXJlIHBhc3NlZCBvbiB0byBzdGFydF9jb21tYW5kKCkuCi0KLSAgICAiIiIKLSAgICBwcm9jZXNzID0gc3RhcnRfY29tbWFuZChhcmdzLCBjd2QsIHNoZWxsLCBhZGRfZW52KQotICAgIChvdXRwdXQsIGVycm9ycykgPSBwcm9jZXNzLmNvbW11bmljYXRlKCkKLSAgICBleGl0X2NvZGUgPSBwcm9jZXNzLnJldHVybmNvZGUKLSAgICBpZiBmbGFnX2Vycm9yIGFuZCBlcnJvcnM6Ci0gICAgICAgIGVycm9yKCInJXMnIHJldHVybmVkIGVycm9yczpcbi0tLVxuJXMtLS0iLCAiICIuam9pbihhcmdzKSwgZXJyb3JzKQotICAgIGlmIGZsYWdfZXJyb3IgYW5kIGV4aXRfY29kZToKLSAgICAgICAgZXJyb3IoIiclcycgcmV0dXJuZWQgZXhpdCBjb2RlICVpIiwgIiAiLmpvaW4oYXJncyksIGV4aXRfY29kZSkKLSAgICByZXR1cm4gKGV4aXRfY29kZSwgb3V0cHV0LCBlcnJvcnMpCi0KLQotIyBmcm9tIHB5dGhvbjIuNzpzdWJwcm9jZXNzLnB5Ci1kZWYgY2FsbCgqcG9wZW5hcmdzLCAqKmt3YXJncyk6Ci0gICAgIiIiUnVuIGNvbW1hbmQgd2l0aCBhcmd1bWVudHMuICBXYWl0IGZvciBjb21tYW5kIHRvIGNvbXBsZXRlLCB0aGVuCi0gICAgcmV0dXJuIHRoZSByZXR1cm5jb2RlIGF0dHJpYnV0ZS4KLQotICAgIFRoZSBhcmd1bWVudHMgYXJlIHRoZSBzYW1lIGFzIGZvciB0aGUgUG9wZW4gY29uc3RydWN0b3IuICBFeGFtcGxlOgotCi0gICAgcmV0Y29kZSA9IGNhbGwoWyJscyIsICItbCJdKQotICAgICIiIgotICAgIHJldHVybiBzdWJwcm9jZXNzLlBvcGVuKCpwb3BlbmFyZ3MsICoqa3dhcmdzKS53YWl0KCkKLQotCi0jIGZyb20gcHl0aG9uMi43OnN1YnByb2Nlc3MucHkKLWRlZiBjaGVja19jYWxsKCpwb3BlbmFyZ3MsICoqa3dhcmdzKToKLSAgICAiIiJSdW4gY29tbWFuZCB3aXRoIGFyZ3VtZW50cy4gIFdhaXQgZm9yIGNvbW1hbmQgdG8gY29tcGxldGUuICBJZgotICAgIHRoZSBleGl0IGNvZGUgd2FzIHplcm8gdGhlbiByZXR1cm4sIG90aGVyd2lzZSByYWlzZQotICAgIENhbGxlZFByb2Nlc3NFcnJvci4gIFRoZSBDYWxsZWRQcm9jZXNzRXJyb3Igb2JqZWN0IHdpbGwgaGF2ZSB0aGUKLSAgICByZXR1cm4gY29kZSBpbiB0aGUgcmV0dXJuY29kZSBhdHRyaWJ1dGUuCi0KLSAgICBUaGUgYXJndW1lbnRzIGFyZSB0aGUgc2FtZSBhcyBmb3IgdGhlIFBvcGVuIGNvbnN0cnVjdG9yLiAgRXhhbXBsZToKLQotICAgIGNoZWNrX2NhbGwoWyJscyIsICItbCJdKQotICAgICIiIgotICAgIHJldGNvZGUgPSBjYWxsKCpwb3BlbmFyZ3MsICoqa3dhcmdzKQotICAgIGlmIHJldGNvZGU6Ci0gICAgICAgIGNtZCA9IGt3YXJncy5nZXQoImFyZ3MiKQotICAgICAgICBpZiBjbWQgaXMgTm9uZToKLSAgICAgICAgICAgIGNtZCA9IHBvcGVuYXJnc1swXQotICAgICAgICByYWlzZSBDYWxsZWRQcm9jZXNzRXJyb3IocmV0Y29kZSwgY21kKQotICAgIHJldHVybiAwCi0KLQotIyBmcm9tIHB5dGhvbjIuNzpzdWJwcm9jZXNzLnB5Ci1kZWYgY2hlY2tfb3V0cHV0KCpwb3BlbmFyZ3MsICoqa3dhcmdzKToKLSAgICByIiIiUnVuIGNvbW1hbmQgd2l0aCBhcmd1bWVudHMgYW5kIHJldHVybiBpdHMgb3V0cHV0IGFzIGEgYnl0ZSBzdHJpbmcuCi0KLSAgICBJZiB0aGUgZXhpdCBjb2RlIHdhcyBub24temVybyBpdCByYWlzZXMgYSBDYWxsZWRQcm9jZXNzRXJyb3IuICBUaGUKLSAgICBDYWxsZWRQcm9jZXNzRXJyb3Igb2JqZWN0IHdpbGwgaGF2ZSB0aGUgcmV0dXJuIGNvZGUgaW4gdGhlIHJldHVybmNvZGUKLSAgICBhdHRyaWJ1dGUgYW5kIG91dHB1dCBpbiB0aGUgb3V0cHV0IGF0dHJpYnV0ZS4KLQotICAgIFRoZSBhcmd1bWVudHMgYXJlIHRoZSBzYW1lIGFzIGZvciB0aGUgUG9wZW4gY29uc3RydWN0b3IuICBFeGFtcGxlOgotCi0gICAgPj4+IGNoZWNrX291dHB1dChbImxzIiwgIi1sIiwgIi9kZXYvbnVsbCJdKQotICAgICdjcnctcnctcnctIDEgcm9vdCByb290IDEsIDMgT2N0IDE4ICAyMDA3IC9kZXYvbnVsbFxuJwotCi0gICAgVGhlIHN0ZG91dCBhcmd1bWVudCBpcyBub3QgYWxsb3dlZCBhcyBpdCBpcyB1c2VkIGludGVybmFsbHkuCi0gICAgVG8gY2FwdHVyZSBzdGFuZGFyZCBlcnJvciBpbiB0aGUgcmVzdWx0LCB1c2Ugc3RkZXJyPVNURE9VVC4KLQotICAgID4+PiBjaGVja19vdXRwdXQoWyIvYmluL3NoIiwgIi1jIiwKLSAgICAuLi4gICAgICAgICAgICAgICAibHMgLWwgbm9uX2V4aXN0ZW50X2ZpbGUgOyBleGl0IDAiXSwKLSAgICAuLi4gICAgICAgICAgICAgIHN0ZGVycj1TVERPVVQpCi0gICAgJ2xzOiBub25fZXhpc3RlbnRfZmlsZTogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVxuJwotICAgICIiIgotICAgIGlmICdzdGRvdXQnIGluIGt3YXJnczoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignc3Rkb3V0IGFyZ3VtZW50IG5vdCBhbGxvd2VkLCBpdCB3aWxsIGJlIG92ZXJyaWRkZW4uJykKLSAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCAqcG9wZW5hcmdzLCAqKmt3YXJncykKLSAgICBvdXRwdXQsIHVudXNlZF9lcnIgPSBwcm9jZXNzLmNvbW11bmljYXRlKCkKLSAgICByZXRjb2RlID0gcHJvY2Vzcy5wb2xsKCkKLSAgICBpZiByZXRjb2RlOgotICAgICAgICBjbWQgPSBrd2FyZ3MuZ2V0KCJhcmdzIikKLSAgICAgICAgaWYgY21kIGlzIE5vbmU6Ci0gICAgICAgICAgICBjbWQgPSBwb3BlbmFyZ3NbMF0KLSAgICAgICAgcmFpc2Ugc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IocmV0Y29kZSwgY21kKQotICAgIHJldHVybiBvdXRwdXQKLQotCi1kZWYgZmlsZV9yZWFkZXJfbWV0aG9kIChtaXNzaW5nX29rID0gRmFsc2UpOgotICAgICIiIkRlY29yYXRvciBmb3Igc2ltcGxpZnlpbmcgcmVhZGluZyBvZiBmaWxlcy4KLQotICAgIElmIG1pc3Npbmdfb2sgaXMgVHJ1ZSwgYSBmYWlsdXJlIHRvIG9wZW4gYSBmaWxlIGZvciByZWFkaW5nIHdpbGwKLSAgICBub3QgcmFpc2UgdGhlIHVzdWFsIElPRXJyb3IsIGJ1dCBpbnN0ZWFkIHRoZSB3cmFwcGVkIG1ldGhvZCB3aWxsIGJlCi0gICAgY2FsbGVkIHdpdGggZiA9PSBOb25lLiAgVGhlIG1ldGhvZCBtdXN0IGluIHRoaXMgY2FzZSBwcm9wZXJseQotICAgIGhhbmRsZSBmID09IE5vbmUuCi0KLSAgICAiIiIKLSAgICBkZWYgX3dyYXAgKG1ldGhvZCk6Ci0gICAgICAgICIiIlRlYWNoIGdpdmVuIG1ldGhvZCB0byBoYW5kbGUgYm90aCBmaWxlbmFtZXMgYW5kIGZpbGUgb2JqZWN0cy4KLQotICAgICAgICBUaGUgZ2l2ZW4gbWV0aG9kIG11c3QgdGFrZSBhIGZpbGUgb2JqZWN0IGFzIGl0cyBzZWNvbmQgYXJndW1lbnQKLSAgICAgICAgKHRoZSBmaXJzdCBhcmd1bWVudCBiZWluZyAnc2VsZicsIG9mIGNvdXJzZSkuICBUaGlzIGRlY29yYXRvcgotICAgICAgICB3aWxsIHRha2UgYSBmaWxlbmFtZSBnaXZlbiBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IGFuZCBwcm9tb3RlCi0gICAgICAgIGl0IHRvIGEgZmlsZSBvYmplY3QuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGRlZiBfd3JhcHBlZF9tZXRob2QgKHNlbGYsIGZpbGVuYW1lLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShmaWxlbmFtZSwgZmlsZSk6Ci0gICAgICAgICAgICAgICAgZiA9IGZpbGVuYW1lCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWUsICdyJykKLSAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgaWYgbWlzc2luZ19vazoKLSAgICAgICAgICAgICAgICAgICAgICAgIGYgPSBOb25lCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHJldHVybiBtZXRob2Qoc2VsZiwgZiwgKmFyZ3MsICoqa3dhcmdzKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShmaWxlbmFtZSwgZmlsZSkgYW5kIGY6Ci0gICAgICAgICAgICAgICAgICAgIGYuY2xvc2UoKQotICAgICAgICByZXR1cm4gX3dyYXBwZWRfbWV0aG9kCi0gICAgcmV0dXJuIF93cmFwCi0KLQotZGVmIGZpbGVfd3JpdGVyX21ldGhvZCAobWV0aG9kKToKLSAgICAiIiJEZWNvcmF0b3IgZm9yIHNpbXBsaWZ5aW5nIHdyaXRpbmcgb2YgZmlsZXMuCi0KLSAgICBFbmFibGVzIHRoZSBnaXZlbiBtZXRob2QgdG8gaGFuZGxlIGJvdGggZmlsZW5hbWVzIGFuZCBmaWxlIG9iamVjdHMuCi0KLSAgICBUaGUgZ2l2ZW4gbWV0aG9kIG11c3QgdGFrZSBhIGZpbGUgb2JqZWN0IGFzIGl0cyBzZWNvbmQgYXJndW1lbnQKLSAgICAodGhlIGZpcnN0IGFyZ3VtZW50IGJlaW5nICdzZWxmJywgb2YgY291cnNlKS4gIFRoaXMgZGVjb3JhdG9yIHdpbGwKLSAgICB0YWtlIGEgZmlsZW5hbWUgZ2l2ZW4gYXMgdGhlIHNlY29uZCBhcmd1bWVudCBhbmQgcHJvbW90ZSBpdCB0byBhCi0gICAgZmlsZSBvYmplY3QuCi0KLSAgICAiIiIKLSAgICBkZWYgX25ld19tZXRob2QgKHNlbGYsIGZpbGVuYW1lLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBpZiBpc2luc3RhbmNlKGZpbGVuYW1lLCBmaWxlKToKLSAgICAgICAgICAgIGYgPSBmaWxlbmFtZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGNvbnRhaW5pbmcgZGlyZWN0b3J5IGV4aXN0cwotICAgICAgICAgICAgcGFyZW50X2RpciA9IG9zLnBhdGguZGlybmFtZShmaWxlbmFtZSkKLSAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKHBhcmVudF9kaXIpOgotICAgICAgICAgICAgICAgIG9zLm1ha2VkaXJzKHBhcmVudF9kaXIpCi0gICAgICAgICAgICBmID0gb3BlbihmaWxlbmFtZSwgJ3cnKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gbWV0aG9kKHNlbGYsIGYsICphcmdzLCAqKmt3YXJncykKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGZpbGVuYW1lLCBmaWxlKToKLSAgICAgICAgICAgICAgICBmLmNsb3NlKCkKLSAgICByZXR1cm4gX25ld19tZXRob2QKZGlmZiAtLWdpdCBhL2dpdGstZ2l0L2dpdGsgYi9naXRrLWdpdC9naXRrCmluZGV4IDVjZDAwZDguLjkwNzY0ZTggMTAwNzU1Ci0tLSBhL2dpdGstZ2l0L2dpdGsKKysrIGIvZ2l0ay1naXQvZ2l0awpAQCAtMiw3ICsyLDcgQEAKICMgVGNsIGlnbm9yZXMgdGhlIG5leHQgbGluZSAtKi0gdGNsIC0qLSBcCiBleGVjIHdpc2ggIiQwIiAtLSAiJEAiCiAKLSMgQ29weXJpZ2h0IMKpIDIwMDUtMjAxMSBQYXVsIE1hY2tlcnJhcy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCDCqSAyMDA1LTIwMTQgUGF1bCBNYWNrZXJyYXMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgaXQgbWF5IGJlIHVzZWQsIGNvcGllZCwgbW9kaWZpZWQKICMgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2VuY2UsCiAjIGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCkBAIC0xNTYsMTAgKzE1NiwxMiBAQAogCiBwcm9jIHBhcnNldmlld2FyZ3Mge24gYXJnbGlzdH0gewogICAgIGdsb2JhbCB2ZGF0ZW1vZGUgdm1lcmdlb25seSB2ZmxhZ3MgdmRmbGFncyB2cmV2cyB2ZmlsdGVyZWQgdm9yaWdhcmdzIGVudgorICAgIGdsb2JhbCB2aW5saW5lZGlmZgogICAgIGdsb2JhbCB3b3JkZGlmZiBnaXRfdmVyc2lvbgogCiAgICAgc2V0IHZkYXRlbW9kZSgkbikgMAogICAgIHNldCB2bWVyZ2Vvbmx5KCRuKSAwCisgICAgc2V0IHZpbmxpbmVkaWZmKCRuKSAwCiAgICAgc2V0IGdsZmxhZ3Mge30KICAgICBzZXQgZGlmZmFyZ3Mge30KICAgICBzZXQgbmV4dGlzdmFsIDAKQEAgLTIyNywxMiArMjI5LDIwIEBACiAJICAgICItLXVudGlsPSoiIC0gIi0tYmVmb3JlPSoiIC0gIi0tbWF4LWFnZT0qIiAtICItLW1pbi1hZ2U9KiIgLQogCSAgICAiLS1hdXRob3I9KiIgLSAiLS1jb21taXR0ZXI9KiIgLSAiLS1ncmVwPSoiIC0gIi1baUVdIiAtCiAJICAgICItLXJlbW92ZS1lbXB0eSIgLSAiLS1maXJzdC1wYXJlbnQiIC0gIi0tY2hlcnJ5LXBpY2siIC0KLQkgICAgIi1TKiIgLSAiLS1waWNrYXhlLWFsbCIgLSAiLS1waWNrYXhlLXJlZ2V4IiAtCisJICAgICItUyoiIC0gIi1HKiIgLSAiLS1waWNrYXhlLWFsbCIgLSAiLS1waWNrYXhlLXJlZ2V4IiAtCiAJICAgICItLXNpbXBsaWZ5LWJ5LWRlY29yYXRpb24iIHsKIAkJIyBUaGVzZSBtZWFuIHRoYXQgd2UgZ2V0IGEgc3Vic2V0IG9mIHRoZSBjb21taXRzCiAJCXNldCBmaWx0ZXJlZCAxCiAJCWxhcHBlbmQgZ2xmbGFncyAkYXJnCiAJICAgIH0KKwkgICAgIi1MKiIgeworCQkjIExpbmUtbG9nIHdpdGggJ3N0dWNrJyBhcmd1bWVudCAodW5zdHVjayBmb3JtIGlzCisJCSMgbm90IHN1cHBvcnRlZCkKKwkJc2V0IGZpbHRlcmVkIDEKKwkJc2V0IHZpbmxpbmVkaWZmKCRuKSAxCisJCXNldCBhbGxrbm93biAwCisJCWxhcHBlbmQgZ2xmbGFncyAkYXJnCisJICAgIH0KIAkgICAgIi1uIiB7CiAJCSMgVGhpcyBhcHBlYXJzIHRvIGJlIHRoZSBvbmx5IG9uZSB0aGF0IGhhcyBhIHZhbHVlIGFzIGEKIAkJIyBzZXBhcmF0ZSB3b3JkIGZvbGxvd2luZyBpdApAQCAtMTcwNCw4ICsxNzE0LDE3IEBACiAJc2V0IGNvbW1lbnQgJG5ld2NvbW1lbnQKICAgICB9CiAgICAgc2V0IGhhc25vdGUgW3N0cmluZyBmaXJzdCAiXG5Ob3RlczpcbiIgJGNvbnRlbnRzXQorICAgIHNldCBkaWZmICIiCisgICAgIyBJZiB0aGVyZSBpcyBkaWZmIG91dHB1dCBzaG93biBpbiB0aGUgZ2l0LWxvZyBzdHJlYW0sIHNwbGl0IGl0CisgICAgIyBvdXQuICBCdXQgZ2V0IHJpZCBvZiB0aGUgZW1wdHkgbGluZSB0aGF0IGFsd2F5cyBwcmVjZWRlcyB0aGUKKyAgICAjIGRpZmYuCisgICAgc2V0IGkgW3N0cmluZyBmaXJzdCAiXG5cbmRpZmYiICRjb21tZW50XQorICAgIGlmIHskaSA+PSAwfSB7CisJc2V0IGRpZmYgW3N0cmluZyByYW5nZSAkY29tbWVudCAkaSsxIGVuZF0KKwlzZXQgY29tbWVudCBbc3RyaW5nIHJhbmdlICRjb21tZW50IDAgJGktMV0KKyAgICB9CiAgICAgc2V0IGNvbW1pdGluZm8oJGlkKSBbbGlzdCAkaGVhZGxpbmUgJGF1bmFtZSAkYXVkYXRlIFwKLQkJCSAgICAgJGNvbW5hbWUgJGNvbWRhdGUgJGNvbW1lbnQgJGhhc25vdGVdCisJCQkgICAgICRjb21uYW1lICRjb21kYXRlICRjb21tZW50ICRoYXNub3RlICRkaWZmXQogfQogCiBwcm9jIGdldGNvbW1pdCB7aWR9IHsKQEAgLTIyNDQsOSArMjI2MywzNSBAQAogCiAgICAgIyBidWlsZCB1cCB0aGUgYm90dG9tIGJhciBvZiB1cHBlciB3aW5kb3cKICAgICAke05TfTo6bGFiZWwgLnRmLmxiYXIuZmxhYmVsIC10ZXh0ICJbbWMgIkZpbmQiXSAiCi0gICAgJHtOU306OmJ1dHRvbiAudGYubGJhci5mbmV4dCAtdGV4dCBbbWMgIm5leHQiXSAtY29tbWFuZCB7ZG9maW5kIDEgMX0KLSAgICAke05TfTo6YnV0dG9uIC50Zi5sYmFyLmZwcmV2IC10ZXh0IFttYyAicHJldiJdIC1jb21tYW5kIHtkb2ZpbmQgLTEgMX0KKworICAgIHNldCBibV9kb3duX2RhdGEgeworCSNkZWZpbmUgZG93bl93aWR0aCAxNgorCSNkZWZpbmUgZG93bl9oZWlnaHQgMTYKKwlzdGF0aWMgdW5zaWduZWQgY2hhciBkb3duX2JpdHNbXSA9IHsKKwkweDgwLCAweDAxLCAweDgwLCAweDAxLCAweDgwLCAweDAxLCAweDgwLCAweDAxLAorCTB4ODAsIDB4MDEsIDB4ODAsIDB4MDEsIDB4ODAsIDB4MDEsIDB4ODAsIDB4MDEsCisJMHg4NywgMHhlMSwgMHg4ZSwgMHg3MSwgMHg5YywgMHgzOSwgMHhiOCwgMHgxZCwKKwkweGYwLCAweDBmLCAweGUwLCAweDA3LCAweGMwLCAweDAzLCAweDgwLCAweDAxfTsKKyAgICB9CisgICAgaW1hZ2UgY3JlYXRlIGJpdG1hcCBibS1kb3duIC1kYXRhICRibV9kb3duX2RhdGEgLWZvcmVncm91bmQgJHVpZmdjb2xvcgorICAgICR7TlN9OjpidXR0b24gLnRmLmxiYXIuZm5leHQgLXdpZHRoIDI2IC1jb21tYW5kIHtkb2ZpbmQgMSAxfQorICAgIC50Zi5sYmFyLmZuZXh0IGNvbmZpZ3VyZSAtaW1hZ2UgYm0tZG93bgorCisgICAgc2V0IGJtX3VwX2RhdGEgeworCSNkZWZpbmUgdXBfd2lkdGggMTYKKwkjZGVmaW5lIHVwX2hlaWdodCAxNgorCXN0YXRpYyB1bnNpZ25lZCBjaGFyIHVwX2JpdHNbXSA9IHsKKwkweDgwLCAweDAxLCAweGMwLCAweDAzLCAweGUwLCAweDA3LCAweGYwLCAweDBmLAorCTB4YjgsIDB4MWQsIDB4OWMsIDB4MzksIDB4OGUsIDB4NzEsIDB4ODcsIDB4ZTEsCisJMHg4MCwgMHgwMSwgMHg4MCwgMHgwMSwgMHg4MCwgMHgwMSwgMHg4MCwgMHgwMSwKKwkweDgwLCAweDAxLCAweDgwLCAweDAxLCAweDgwLCAweDAxLCAweDgwLCAweDAxfTsKKyAgICB9CisgICAgaW1hZ2UgY3JlYXRlIGJpdG1hcCBibS11cCAtZGF0YSAkYm1fdXBfZGF0YSAtZm9yZWdyb3VuZCAkdWlmZ2NvbG9yCisgICAgJHtOU306OmJ1dHRvbiAudGYubGJhci5mcHJldiAtd2lkdGggMjYgLWNvbW1hbmQge2RvZmluZCAtMSAxfQorICAgIC50Zi5sYmFyLmZwcmV2IGNvbmZpZ3VyZSAtaW1hZ2UgYm0tdXAKKwogICAgICR7TlN9OjpsYWJlbCAudGYubGJhci5mbGFiMiAtdGV4dCAiIFttYyAiY29tbWl0Il0gIgorCiAgICAgcGFjayAudGYubGJhci5mbGFiZWwgLnRmLmxiYXIuZm5leHQgLnRmLmxiYXIuZnByZXYgLnRmLmxiYXIuZmxhYjIgXAogCS1zaWRlIGxlZnQgLWZpbGwgeQogICAgIHNldCBnZHR0eXBlIFttYyAiY29udGFpbmluZzoiXQpAQCAtMjM4NCw3ICsyNDI5LDggQEAKICAgICAkY3RleHQgdGFnIGNvbmYgbXNlcCAtZm9udCB0ZXh0Zm9udGJvbGQKICAgICAkY3RleHQgdGFnIGNvbmYgZm91bmQgLWJhY2sgJGZvdW5kYmdjb2xvcgogICAgICRjdGV4dCB0YWcgY29uZiBjdXJyZW50c2VhcmNoaGl0IC1iYWNrICRjdXJyZW50c2VhcmNoaGl0Ymdjb2xvcgotICAgICRjdGV4dCB0YWcgY29uZiB3d3JhcCAtd3JhcCB3b3JkCisgICAgJGN0ZXh0IHRhZyBjb25mIHd3cmFwIC13cmFwIHdvcmQgLWxtYXJnaW4yIDFjCisgICAgJGN0ZXh0IHRhZyBjb25mIGJvbGQgLWZvbnQgdGV4dGZvbnRib2xkCiAKICAgICAucHdib3R0b20gYWRkIC5ibGVmdAogICAgIGlmIHshJHVzZV90dGt9IHsKQEAgLTI3NDEsMTQgKzI3ODcsMTcgQEAKICAgICBnbG9iYWwgbGlua2ZnY29sb3IgY2lyY2xlb3V0bGluZWNvbG9yCiAgICAgZ2xvYmFsIGF1dG9zZWxlY3QgYXV0b3NlbGxlbiBleHRkaWZmdG9vbCBwZXJmaWxlX2F0dHJzIG1hcmtiZ2NvbG9yIHVzZV90dGsKICAgICBnbG9iYWwgaGlkZXJlbW90ZXMgd2FudF90dGsgbWF4cmVmcworICAgIGdsb2JhbCBjb25maWdfZmlsZSBjb25maWdfZmlsZV90bXAKIAogICAgIGlmIHskc3R1ZmZzYXZlZH0gcmV0dXJuCiAgICAgaWYgeyFbd2luZm8gdmlld2FibGUgLl19IHJldHVybgogICAgIGNhdGNoIHsKLQlpZiB7W2ZpbGUgZXhpc3RzIH4vLmdpdGstbmV3XX0ge2ZpbGUgZGVsZXRlIC1mb3JjZSB+Ly5naXRrLW5ld30KLQlzZXQgZiBbb3BlbiAifi8uZ2l0ay1uZXciIHddCisJaWYge1tmaWxlIGV4aXN0cyAkY29uZmlnX2ZpbGVfdG1wXX0geworCSAgICBmaWxlIGRlbGV0ZSAtZm9yY2UgJGNvbmZpZ19maWxlX3RtcAorCX0KKwlzZXQgZiBbb3BlbiAkY29uZmlnX2ZpbGVfdG1wIHddCiAJaWYgeyQ6OnRjbF9wbGF0Zm9ybShwbGF0Zm9ybSkgZXEge3dpbmRvd3N9fSB7Ci0JICAgIGZpbGUgYXR0cmlidXRlcyAifi8uZ2l0ay1uZXciIC1oaWRkZW4gdHJ1ZQorCSAgICBmaWxlIGF0dHJpYnV0ZXMgJGNvbmZpZ19maWxlX3RtcCAtaGlkZGVuIHRydWUKIAl9CiAJcHV0cyAkZiBbbGlzdCBzZXQgbWFpbmZvbnQgJG1haW5mb250XQogCXB1dHMgJGYgW2xpc3Qgc2V0IHRleHRmb250ICR0ZXh0Zm9udF0KQEAgLTI4MjUsNyArMjg3NCw3IEBACiAJfQogCXB1dHMgJGYgIn0iCiAJY2xvc2UgJGYKLQlmaWxlIHJlbmFtZSAtZm9yY2UgIn4vLmdpdGstbmV3IiAifi8uZ2l0ayIKKwlmaWxlIHJlbmFtZSAtZm9yY2UgJGNvbmZpZ19maWxlX3RtcCAkY29uZmlnX2ZpbGUKICAgICB9CiAgICAgc2V0IHN0dWZmc2F2ZWQgMQogfQpAQCAtMjkyNyw3ICsyOTc2LDcgQEAKICAgICBtZXNzYWdlICR3Lm0gLXRleHQgW21jICIKIEdpdGsgLSBhIGNvbW1pdCB2aWV3ZXIgZm9yIGdpdAogCi1Db3B5cmlnaHQgXHUwMGE5IDIwMDUtMjAxMSBQYXVsIE1hY2tlcnJhcworQ29weXJpZ2h0IFx1MDBhOSAyMDA1LTIwMTQgUGF1bCBNYWNrZXJyYXMKIAogVXNlIGFuZCByZWRpc3RyaWJ1dGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSJdIFwKIAkgICAgLWp1c3RpZnkgY2VudGVyIC1hc3BlY3QgNDAwIC1ib3JkZXIgMiAtYmcgd2hpdGUgLXJlbGllZiBncm9vdmUKQEAgLTYzODcsNiArNjQzNiwyNSBAQAogICAgICRjYW52IGJpbmQgJHQgPEJ1dHRvbi0xPiAibGluZWNsaWNrICV4ICV5ICRpZCAxIgogfQogCitwcm9jIGdyYXBoX3BhbmVfd2lkdGgge30geworICAgIGdsb2JhbCB1c2VfdHRrCisKKyAgICBpZiB7JHVzZV90dGt9IHsKKwlzZXQgZyBbLnRmLmhpc3RmcmFtZS5wd2NsaXN0IHNhc2hwb3MgMF0KKyAgICB9IGVsc2UgeworCXNldCBnIFsudGYuaGlzdGZyYW1lLnB3Y2xpc3Qgc2FzaCBjb29yZCAwXQorICAgIH0KKyAgICByZXR1cm4gW2xpbmRleCAkZyAwXQorfQorCitwcm9jIHRvdGFsd2lkdGgge2wgZm9udCBleHRyYX0geworICAgIHNldCB0b3QgMAorICAgIGZvcmVhY2ggc3RyICRsIHsKKwlzZXQgdG90IFtleHByIHskdG90ICsgW2ZvbnQgbWVhc3VyZSAkZm9udCAkc3RyXSArICRleHRyYX1dCisgICAgfQorICAgIHJldHVybiAkdG90Cit9CisKIHByb2MgZHJhd3RhZ3Mge2lkIHggeHQgeTF9IHsKICAgICBnbG9iYWwgaWR0YWdzIGlkaGVhZHMgaWRvdGhlcnJlZnMgbWFpbmhlYWQKICAgICBnbG9iYWwgbGluZXNwYyBsdGhpY2tuZXNzCkBAIC02Mzk4LDkgKzY0NjYsMjcgQEAKICAgICBzZXQgbWFya3Mge30KICAgICBzZXQgbnRhZ3MgMAogICAgIHNldCBuaGVhZHMgMAorICAgIHNldCBzaW5nbGV0YWcgMAorICAgIHNldCBtYXh0YWdzIDMKKyAgICBzZXQgbWF4dGFncGN0IDI1CisgICAgc2V0IG1heHdpZHRoIFtleHByIHtbZ3JhcGhfcGFuZV93aWR0aF0gKiAkbWF4dGFncGN0IC8gMTAwfV0KKyAgICBzZXQgZGVsdGEgW2V4cHIge2ludCgwLjUgKiAoJGxpbmVzcGMgLSAkbHRoaWNrbmVzcykpfV0KKyAgICBzZXQgZXh0cmEgW2V4cHIgeyRkZWx0YSArICRsdGhpY2tuZXNzICsgJGxpbmVzcGN9XQorCiAgICAgaWYge1tpbmZvIGV4aXN0cyBpZHRhZ3MoJGlkKV19IHsKIAlzZXQgbWFya3MgJGlkdGFncygkaWQpCiAJc2V0IG50YWdzIFtsbGVuZ3RoICRtYXJrc10KKwlpZiB7JG50YWdzID4gJG1heHRhZ3MgfHwKKwkgICAgW3RvdGFsd2lkdGggJG1hcmtzIG1haW5mb250ICRleHRyYV0gPiAkbWF4d2lkdGh9IHsKKwkgICAgIyBzaG93IGp1c3QgYSBzaW5nbGUgIm4gdGFncy4uLiIgdGFnCisJICAgIHNldCBzaW5nbGV0YWcgMQorCSAgICBpZiB7JG50YWdzID09IDF9IHsKKwkJc2V0IG1hcmtzIFtsaXN0ICJ0YWcuLi4iXQorCSAgICB9IGVsc2UgeworCQlzZXQgbWFya3MgW2xpc3QgW2Zvcm1hdCAiJWQgdGFncy4uLiIgJG50YWdzXV0KKwkgICAgfQorCSAgICBzZXQgbnRhZ3MgMQorCX0KICAgICB9CiAgICAgaWYge1tpbmZvIGV4aXN0cyBpZGhlYWRzKCRpZCldfSB7CiAJc2V0IG1hcmtzIFtjb25jYXQgJG1hcmtzICRpZGhlYWRzKCRpZCldCkBAIC02NDEzLDcgKzY0OTksNiBAQAogCXJldHVybiAkeHQKICAgICB9CiAKLSAgICBzZXQgZGVsdGEgW2V4cHIge2ludCgwLjUgKiAoJGxpbmVzcGMgLSAkbHRoaWNrbmVzcykpfV0KICAgICBzZXQgeXQgW2V4cHIgeyR5MSAtIDAuNSAqICRsaW5lc3BjfV0KICAgICBzZXQgeWIgW2V4cHIgeyR5dCArICRsaW5lc3BjIC0gMX1dCiAgICAgc2V0IHh2YWxzIHt9CkBAIC02NDI4LDcgKzY1MTMsNyBAQAogCX0KIAlsYXBwZW5kIHh2YWxzICR4dAogCWxhcHBlbmQgd3ZhbHMgJHdpZAotCXNldCB4dCBbZXhwciB7JHh0ICsgJGRlbHRhICsgJHdpZCArICRsdGhpY2tuZXNzICsgJGxpbmVzcGN9XQorCXNldCB4dCBbZXhwciB7JHh0ICsgJHdpZCArICRleHRyYX1dCiAgICAgfQogICAgIHNldCB0IFskY2FudiBjcmVhdGUgbGluZSAkeCAkeTEgW2xpbmRleCAkeHZhbHMgZW5kXSAkeTEgXAogCSAgICAgICAtd2lkdGggJGx0aGlja25lc3MgLWZpbGwgJHJlZmxpbmVjb2xvciAtdGFncyB0YWcuJGlkXQpAQCAtNjQ0NCw3ICs2NTI5LDEyIEBACiAJCSAgICAgICAkeHIgJHl0ICR4ciAkeWIgJHhsICR5YiAkeCBbZXhwciB7JHliIC0gJGRlbHRhfV0gXAogCQkgICAgICAgLXdpZHRoIDEgLW91dGxpbmUgJHRhZ291dGxpbmVjb2xvciAtZmlsbCAkdGFnYmdjb2xvciBcCiAJCSAgICAgICAtdGFncyB0YWcuJGlkXQotCSAgICAkY2FudiBiaW5kICR0IDwxPiBbbGlzdCBzaG93dGFnICR0YWdfcXVvdGVkIDFdCisJICAgIGlmIHskc2luZ2xldGFnfSB7CisJCXNldCB0YWdjbGljayBbbGlzdCBzaG93dGFncyAkaWQgMV0KKwkgICAgfSBlbHNlIHsKKwkJc2V0IHRhZ2NsaWNrIFtsaXN0IHNob3d0YWcgJHRhZ19xdW90ZWQgMV0KKwkgICAgfQorCSAgICAkY2FudiBiaW5kICR0IDwxPiAkdGFnY2xpY2sKIAkgICAgc2V0IHJvd3RleHR4KFtyb3dvZmNvbW1pdCAkaWRdKSBbZXhwciB7JHhyICsgJGxpbmVzcGN9XQogCX0gZWxzZSB7CiAJICAgICMgZHJhdyBhIGhlYWQgb3Igb3RoZXIgcmVmCkBAIC02NDcxLDcgKzY1NjEsNyBAQAogCXNldCB0IFskY2FudiBjcmVhdGUgdGV4dCAkeGwgJHkxIC1hbmNob3IgdyAtdGV4dCAkdGFnIC1maWxsICRoZWFkZmdjb2xvciBcCiAJCSAgIC1mb250ICRmb250IC10YWdzIFtsaXN0IHRhZy4kaWQgdGV4dF1dCiAJaWYgeyRudGFncyA+PSAwfSB7Ci0JICAgICRjYW52IGJpbmQgJHQgPDE+IFtsaXN0IHNob3d0YWcgJHRhZ19xdW90ZWQgMV0KKwkgICAgJGNhbnYgYmluZCAkdCA8MT4gJHRhZ2NsaWNrCiAJfSBlbHNlaWYgeyRuaGVhZHMgPj0gMH0gewogCSAgICAkY2FudiBiaW5kICR0ICRjdHhidXQgW2xpc3QgaGVhZG1lbnUgJVggJVkgJGlkICR0YWdfcXVvdGVkXQogCX0KQEAgLTcwODAsNiArNzE3MCw3IEBACiAgICAgZ2xvYmFsIGNtaXRtb2RlIHNob3duZWFydGFncyBhbGxjb21taXRzCiAgICAgZ2xvYmFsIHRhcmdldHJvdyB0YXJnZXRpZCBsYXN0c2Nyb2xscm93cwogICAgIGdsb2JhbCBhdXRvc2VsZWN0IGF1dG9zZWxsZW4ganVtcF90b19oZXJlCisgICAgZ2xvYmFsIHZpbmxpbmVkaWZmCiAKICAgICBjYXRjaCB7dW5zZXQgcGVuZGluZ19zZWxlY3R9CiAgICAgJGNhbnYgZGVsZXRlIGhvdmVyCkBAIC03MjIxLDYgKzczMTIsOCBAQAogICAgIGluaXRfZmxpc3QgW21jICJDb21tZW50cyJdCiAgICAgaWYgeyRjbWl0bW9kZSBlcSAidHJlZSJ9IHsKIAlnZXR0cmVlICRpZAorICAgIH0gZWxzZWlmIHskdmlubGluZWRpZmYoJGN1cnZpZXcpID09IDF9IHsKKwlzaG93aW5saW5lZGlmZiAkaWQKICAgICB9IGVsc2VpZiB7W2xsZW5ndGggJG9sZHNdIDw9IDF9IHsKIAlzdGFydGRpZmYgJGlkCiAgICAgfSBlbHNlIHsKQEAgLTc1NTcsNiArNzY1MCwzOSBAQAogICAgIH0KIH0KIAorcHJvYyBzaG93aW5saW5lZGlmZiB7aWRzfSB7CisgICAgZ2xvYmFsIGNvbW1pdGluZm8gY29tbWl0ZGF0YSBjdGV4dAorICAgIGdsb2JhbCB0cmVlZGlmZnMKKworICAgIHNldCBpbmZvICRjb21taXRpbmZvKCRpZHMpCisgICAgc2V0IGRpZmYgW2xpbmRleCAkaW5mbyA3XQorICAgIHNldCBkaWZmbGluZXMgW3NwbGl0ICRkaWZmICJcbiJdCisKKyAgICBpbml0YmxvYmRpZmZ2YXJzCisgICAgc2V0IHRyZWVkaWZmIHt9CisKKyAgICBzZXQgaW5oZHIgMAorICAgIGZvcmVhY2ggbGluZSAkZGlmZmxpbmVzIHsKKwlpZiB7IVtzdHJpbmcgY29tcGFyZSAtbGVuZ3RoIDUgImRpZmYgIiAkbGluZV19IHsKKwkgICAgc2V0IGluaGRyIDEKKwl9IGVsc2VpZiB7JGluaGRyICYmICFbc3RyaW5nIGNvbXBhcmUgLWxlbmd0aCA0ICIrKysgIiAkbGluZV19IHsKKwkgICAgIyBvZmZzZXQgYWxzbyBhY2NvdW50cyBmb3IgdGhlIGIvIHByZWZpeAorCSAgICBsYXBwZW5kIHRyZWVkaWZmIFtzdHJpbmcgcmFuZ2UgJGxpbmUgNiBlbmRdCisJICAgIHNldCBpbmhkciAwCisJfQorICAgIH0KKworICAgIHNldCB0cmVlZGlmZnMoJGlkcykgJHRyZWVkaWZmCisgICAgYWRkX2ZsaXN0ICR0cmVlZGlmZgorCisgICAgJGN0ZXh0IGNvbmYgLXN0YXRlIG5vcm1hbAorICAgIGZvcmVhY2ggbGluZSAkZGlmZmxpbmVzIHsKKwlwYXJzZWJsb2JkaWZmbGluZSAkaWRzICRsaW5lCisgICAgfQorICAgIG1heWJlX3Njcm9sbF9jdGV4dCAxCisgICAgJGN0ZXh0IGNvbmYgLXN0YXRlIGRpc2FibGVkCit9CisKICMgSWYgdGhlIGZpbGVuYW1lIChuYW1lKSBpcyB1bmRlciBhbnkgb2YgdGhlIHBhc3NlZCBmaWx0ZXIgcGF0aHMKICMgdGhlbiByZXR1cm4gdHJ1ZSB0byBpbmNsdWRlIHRoZSBmaWxlIGluIHRoZSBsaXN0aW5nLgogcHJvYyBwYXRoX2ZpbHRlciB7ZmlsdGVyIG5hbWV9IHsKQEAgLTc3MTAsMTUgKzc4MzYsMjUgQEAKICAgICByZXNlbGVjdGxpbmUKIH0KIAorcHJvYyBpbml0YmxvYmRpZmZ2YXJzIHt9IHsKKyAgICBnbG9iYWwgZGlmZmVuY29kaW5nIHRhcmdldGxpbmUgZGlmZm5wYXJlbnRzCisgICAgZ2xvYmFsIGRpZmZpbmhkciBjdXJyZGlmZnN1Ym1vZCBkaWZmc2VlaGVyZQorICAgIHNldCB0YXJnZXRsaW5lIHt9CisgICAgc2V0IGRpZmZucGFyZW50cyAwCisgICAgc2V0IGRpZmZpbmhkciAwCisgICAgc2V0IGRpZmZlbmNvZGluZyBbZ2V0X3BhdGhfZW5jb2Rpbmcge31dCisgICAgc2V0IGN1cnJkaWZmc3VibW9kICIiCisgICAgc2V0IGRpZmZzZWVoZXJlIC0xCit9CisKIHByb2MgZ2V0YmxvYmRpZmZzIHtpZHN9IHsKICAgICBnbG9iYWwgYmxvYmRpZmZmZCBkaWZmaWRzIGVudgotICAgIGdsb2JhbCBkaWZmaW5oZHIgdHJlZWRpZmZzCisgICAgZ2xvYmFsIHRyZWVkaWZmcwogICAgIGdsb2JhbCBkaWZmY29udGV4dAogICAgIGdsb2JhbCBpZ25vcmVzcGFjZQogICAgIGdsb2JhbCB3b3JkZGlmZgogICAgIGdsb2JhbCBsaW1pdGRpZmZzIHZmaWxlbGltaXQgY3VydmlldwotICAgIGdsb2JhbCBkaWZmZW5jb2RpbmcgdGFyZ2V0bGluZSBkaWZmbnBhcmVudHMKLSAgICBnbG9iYWwgZ2l0X3ZlcnNpb24gY3VycmRpZmZzdWJtb2QKKyAgICBnbG9iYWwgZ2l0X3ZlcnNpb24KIAogICAgIHNldCB0ZXh0Y29udiB7fQogICAgIGlmIHtbcGFja2FnZSB2Y29tcGFyZSAkZ2l0X3ZlcnNpb24gIjEuNi4xIl0gPj0gMH0gewpAQCAtNzc0MiwxMyArNzg3OCw5IEBACiAJZXJyb3JfcG9wdXAgW21jICJFcnJvciBnZXR0aW5nIGRpZmZzOiAlcyIgJGVycl0KIAlyZXR1cm4KICAgICB9Ci0gICAgc2V0IHRhcmdldGxpbmUge30KLSAgICBzZXQgZGlmZm5wYXJlbnRzIDAKLSAgICBzZXQgZGlmZmluaGRyIDAKLSAgICBzZXQgZGlmZmVuY29kaW5nIFtnZXRfcGF0aF9lbmNvZGluZyB7fV0KICAgICBmY29uZmlndXJlICRiZGYgLWJsb2NraW5nIDAgLWVuY29kaW5nIGJpbmFyeSAtZW9mY2hhciB7fQogICAgIHNldCBibG9iZGlmZmZkKCRpZHMpICRiZGYKLSAgICBzZXQgY3VycmRpZmZzdWJtb2QgIiIKKyAgICBpbml0YmxvYmRpZmZ2YXJzCiAgICAgZmlsZXJ1biAkYmRmIFtsaXN0IGdldGJsb2JkaWZmbGluZSAkYmRmICRkaWZmaWRzXQogfQogCkBAIC03ODE0LDEzICs3OTQ2LDE3IEBACiAgICAgc2V0IGRpZmZsaW5lIDAKIH0KIAorcHJvYyBibG9iZGlmZm1heWJlc2VlaGVyZSB7YXRlb2Z9IHsKKyAgICBnbG9iYWwgZGlmZnNlZWhlcmUKKyAgICBpZiB7JGRpZmZzZWVoZXJlID49IDB9IHsKKwltYXJrX2N0ZXh0X2xpbmUgW2xpbmRleCBbc3BsaXQgJGRpZmZzZWVoZXJlIC5dIDBdCisgICAgfQorICAgIG1heWJlX3Njcm9sbF9jdGV4dCAkYXRlb2YKK30KKwogcHJvYyBnZXRibG9iZGlmZmxpbmUge2JkZiBpZHN9IHsKLSAgICBnbG9iYWwgZGlmZmlkcyBibG9iZGlmZmZkIGN0ZXh0IGN1cmRpZmZzdGFydAotICAgIGdsb2JhbCBkaWZmbmV4dGhlYWQgZGlmZm5leHRub3RlIGRpZmZmaWxlc3RhcnQKLSAgICBnbG9iYWwgY3RleHRfZmlsZV9uYW1lcyBjdGV4dF9maWxlX2xpbmVzCi0gICAgZ2xvYmFsIGRpZmZpbmhkciB0cmVlZGlmZnMgbWVyZ2VtYXggZGlmZm5wYXJlbnRzCi0gICAgZ2xvYmFsIGRpZmZlbmNvZGluZyBqdW1wX3RvX2hlcmUgdGFyZ2V0bGluZSBkaWZmbGluZSBjdXJyZGlmZnN1Ym1vZAotICAgIGdsb2JhbCB3b3JkZGlmZgorICAgIGdsb2JhbCBkaWZmaWRzIGJsb2JkaWZmZmQKKyAgICBnbG9iYWwgY3RleHQKIAogICAgIHNldCBuciAwCiAgICAgJGN0ZXh0IGNvbmYgLXN0YXRlIG5vcm1hbApAQCAtNzgyOSwyMDcgKzc5NjUsMTAgQEAKIAkgICAgY2F0Y2gge2Nsb3NlICRiZGZ9CiAJICAgIHJldHVybiAwCiAJfQotCWlmIHshW3N0cmluZyBjb21wYXJlIC1sZW5ndGggNSAiZGlmZiAiICRsaW5lXX0gewotCSAgICBpZiB7IVtyZWdleHAge15kaWZmICgtLWNjfC0tZ2l0KSB9ICRsaW5lIG0gdHlwZV19IHsKLQkJc2V0IGxpbmUgW2VuY29kaW5nIGNvbnZlcnRmcm9tICRsaW5lXQotCQkkY3RleHQgaW5zZXJ0IGVuZCAiJGxpbmVcbiIgaHVua3NlcAotCQljb250aW51ZQotCSAgICB9Ci0JICAgICMgc3RhcnQgb2YgYSBuZXcgZmlsZQotCSAgICBzZXQgZGlmZmluaGRyIDEKLQkgICAgJGN0ZXh0IGluc2VydCBlbmQgIlxuIgotCSAgICBzZXQgY3VyZGlmZnN0YXJ0IFskY3RleHQgaW5kZXggImVuZCAtIDFjIl0KLQkgICAgbGFwcGVuZCBjdGV4dF9maWxlX25hbWVzICIiCi0JICAgIGxhcHBlbmQgY3RleHRfZmlsZV9saW5lcyBbbGluZGV4IFtzcGxpdCAkY3VyZGlmZnN0YXJ0ICIuIl0gMF0KLQkgICAgJGN0ZXh0IGluc2VydCBlbmQgIlxuIiBmaWxlc2VwCi0KLQkgICAgaWYgeyR0eXBlIGVxICItLWNjIn0gewotCQkjIHN0YXJ0IG9mIGEgbmV3IGZpbGUgaW4gYSBtZXJnZSBkaWZmCi0JCXNldCBmbmFtZSBbc3RyaW5nIHJhbmdlICRsaW5lIDEwIGVuZF0KLQkJaWYge1tsc2VhcmNoIC1leGFjdCAkdHJlZWRpZmZzKCRpZHMpICRmbmFtZV0gPCAwfSB7Ci0JCSAgICBsYXBwZW5kIHRyZWVkaWZmcygkaWRzKSAkZm5hbWUKLQkJICAgIGFkZF9mbGlzdCBbbGlzdCAkZm5hbWVdCi0JCX0KLQotCSAgICB9IGVsc2UgewotCQlzZXQgbGluZSBbc3RyaW5nIHJhbmdlICRsaW5lIDExIGVuZF0KLQkJIyBJZiB0aGUgbmFtZSBoYXNuJ3QgY2hhbmdlZCB0aGUgbGVuZ3RoIHdpbGwgYmUgb2RkLAotCQkjIHRoZSBtaWRkbGUgY2hhciB3aWxsIGJlIGEgc3BhY2UsIGFuZCB0aGUgdHdvIGJpdHMgZWl0aGVyCi0JCSMgc2lkZSB3aWxsIGJlIGEvbmFtZSBhbmQgYi9uYW1lLCBvciAiYS9uYW1lIiBhbmQgImIvbmFtZSIuCi0JCSMgSWYgdGhlIG5hbWUgaGFzIGNoYW5nZWQgd2UnbGwgZ2V0ICJyZW5hbWUgZnJvbSIgYW5kCi0JCSMgInJlbmFtZSB0byIgb3IgImNvcHkgZnJvbSIgYW5kICJjb3B5IHRvIiBsaW5lcyBmb2xsb3dpbmcKLQkJIyB0aGlzLCBhbmQgd2UnbGwgdXNlIHRoZW0gdG8gZ2V0IHRoZSBmaWxlbmFtZXMuCi0JCSMgVGhpcyBjb21wbGV4aXR5IGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHNwYWNlcyBpbiB0aGUKLQkJIyBmaWxlbmFtZShzKSBkb24ndCBnZXQgZXNjYXBlZC4KLQkJc2V0IGwgW3N0cmluZyBsZW5ndGggJGxpbmVdCi0JCXNldCBpIFtleHByIHskbCAvIDJ9XQotCQlpZiB7ISgoJGwgJiAxKSAmJiBbc3RyaW5nIGluZGV4ICRsaW5lICRpXSBlcSAiICIgJiYKLQkJICAgICAgW3N0cmluZyByYW5nZSAkbGluZSAyIFtleHByIHskaSAtIDF9XV0gZXEgXAotCQkJICBbc3RyaW5nIHJhbmdlICRsaW5lIFtleHByIHskaSArIDN9XSBlbmRdKX0gewotCQkgICAgY29udGludWUKLQkJfQotCQkjIHVuZXNjYXBlIGlmIHF1b3RlZCBhbmQgY2hvcCBvZmYgdGhlIGEvIGZyb20gdGhlIGZyb250Ci0JCWlmIHtbc3RyaW5nIGluZGV4ICRsaW5lIDBdIGVxICJcIiJ9IHsKLQkJICAgIHNldCBmbmFtZSBbc3RyaW5nIHJhbmdlIFtsaW5kZXggJGxpbmUgMF0gMiBlbmRdCi0JCX0gZWxzZSB7Ci0JCSAgICBzZXQgZm5hbWUgW3N0cmluZyByYW5nZSAkbGluZSAyIFtleHByIHskaSAtIDF9XV0KLQkJfQotCSAgICB9Ci0JICAgIG1ha2VkaWZmaGRyICRmbmFtZSAkaWRzCi0KLQl9IGVsc2VpZiB7IVtzdHJpbmcgY29tcGFyZSAtbGVuZ3RoIDE2ICIqIFVubWVyZ2VkIHBhdGggIiAkbGluZV19IHsKLQkgICAgc2V0IGZuYW1lIFtlbmNvZGluZyBjb252ZXJ0ZnJvbSBbc3RyaW5nIHJhbmdlICRsaW5lIDE2IGVuZF1dCi0JICAgICRjdGV4dCBpbnNlcnQgZW5kICJcbiIKLQkgICAgc2V0IGN1cmRpZmZzdGFydCBbJGN0ZXh0IGluZGV4ICJlbmQgLSAxYyJdCi0JICAgIGxhcHBlbmQgY3RleHRfZmlsZV9uYW1lcyAkZm5hbWUKLQkgICAgbGFwcGVuZCBjdGV4dF9maWxlX2xpbmVzIFtsaW5kZXggW3NwbGl0ICRjdXJkaWZmc3RhcnQgIi4iXSAwXQotCSAgICAkY3RleHQgaW5zZXJ0IGVuZCAiJGxpbmVcbiIgZmlsZXNlcAotCSAgICBzZXQgaSBbbHNlYXJjaCAtZXhhY3QgJHRyZWVkaWZmcygkaWRzKSAkZm5hbWVdCi0JICAgIGlmIHskaSA+PSAwfSB7Ci0JCXNldGlubGlzdCBkaWZmZmlsZXN0YXJ0ICRpICRjdXJkaWZmc3RhcnQKLQkgICAgfQotCi0JfSBlbHNlaWYgeyFbc3RyaW5nIGNvbXBhcmUgLWxlbmd0aCAyICJAQCIgJGxpbmVdfSB7Ci0JICAgIHJlZ2V4cCB7XkBAK30gJGxpbmUgYXRzCi0JICAgIHNldCBsaW5lIFtlbmNvZGluZyBjb252ZXJ0ZnJvbSAkZGlmZmVuY29kaW5nICRsaW5lXQotCSAgICAkY3RleHQgaW5zZXJ0IGVuZCAiJGxpbmVcbiIgaHVua3NlcAotCSAgICBpZiB7W3JlZ2V4cCB7IFwrKFxkKyksXGQrIEBAfSAkbGluZSBtIG5sXX0gewotCQlzZXQgZGlmZmxpbmUgJG5sCi0JICAgIH0KLQkgICAgc2V0IGRpZmZucGFyZW50cyBbZXhwciB7W3N0cmluZyBsZW5ndGggJGF0c10gLSAxfV0KLQkgICAgc2V0IGRpZmZpbmhkciAwCi0KLQl9IGVsc2VpZiB7IVtzdHJpbmcgY29tcGFyZSAtbGVuZ3RoIDEwICJTdWJtb2R1bGUgIiAkbGluZV19IHsKLQkgICAgIyBzdGFydCBvZiBhIG5ldyBzdWJtb2R1bGUKLQkgICAgaWYge1tyZWdleHAgLWluZGljZXMgIlxbMC05YS1mXF0rXFwuXFwuIiAkbGluZSBuYW1lZW5kXX0gewotCQlzZXQgZm5hbWUgW3N0cmluZyByYW5nZSAkbGluZSAxMCBbZXhwciBbbGluZGV4ICRuYW1lZW5kIDBdIC0gMl1dCi0JICAgIH0gZWxzZSB7Ci0JCXNldCBmbmFtZSBbc3RyaW5nIHJhbmdlICRsaW5lIDEwIFtleHByIFtzdHJpbmcgZmlyc3QgImNvbnRhaW5zICIgJGxpbmVdIC0gMl1dCi0JICAgIH0KLQkgICAgaWYgeyRjdXJyZGlmZnN1Ym1vZCAhPSAkZm5hbWV9IHsKLQkJJGN0ZXh0IGluc2VydCBlbmQgIlxuIjsgICAgICMgQWRkIG5ld2xpbmUgYWZ0ZXIgY29tbWl0IG1lc3NhZ2UKLQkgICAgfQotCSAgICBzZXQgY3VyZGlmZnN0YXJ0IFskY3RleHQgaW5kZXggImVuZCAtIDFjIl0KLQkgICAgbGFwcGVuZCBjdGV4dF9maWxlX25hbWVzICIiCi0JICAgIGlmIHskY3VycmRpZmZzdWJtb2QgIT0gJGZuYW1lfSB7Ci0JCWxhcHBlbmQgY3RleHRfZmlsZV9saW5lcyAkZm5hbWUKLQkJbWFrZWRpZmZoZHIgJGZuYW1lICRpZHMKLQkJc2V0IGN1cnJkaWZmc3VibW9kICRmbmFtZQotCQkkY3RleHQgaW5zZXJ0IGVuZCAiXG4kbGluZVxuIiBmaWxlc2VwCi0JICAgIH0gZWxzZSB7Ci0JCSRjdGV4dCBpbnNlcnQgZW5kICIkbGluZVxuIiBmaWxlc2VwCi0JICAgIH0KLQl9IGVsc2VpZiB7IVtzdHJpbmcgY29tcGFyZSAtbGVuZ3RoIDMgIiAgPiIgJGxpbmVdfSB7Ci0JICAgIHNldCAkY3VycmRpZmZzdWJtb2QgIiIKLQkgICAgc2V0IGxpbmUgW2VuY29kaW5nIGNvbnZlcnRmcm9tICRkaWZmZW5jb2RpbmcgJGxpbmVdCi0JICAgICRjdGV4dCBpbnNlcnQgZW5kICIkbGluZVxuIiBkcmVzdWx0Ci0JfSBlbHNlaWYgeyFbc3RyaW5nIGNvbXBhcmUgLWxlbmd0aCAzICIgIDwiICRsaW5lXX0gewotCSAgICBzZXQgJGN1cnJkaWZmc3VibW9kICIiCi0JICAgIHNldCBsaW5lIFtlbmNvZGluZyBjb252ZXJ0ZnJvbSAkZGlmZmVuY29kaW5nICRsaW5lXQotCSAgICAkY3RleHQgaW5zZXJ0IGVuZCAiJGxpbmVcbiIgZDAKLQl9IGVsc2VpZiB7JGRpZmZpbmhkcn0gewotCSAgICBpZiB7IVtzdHJpbmcgY29tcGFyZSAtbGVuZ3RoIDEyICJyZW5hbWUgZnJvbSAiICRsaW5lXX0gewotCQlzZXQgZm5hbWUgW3N0cmluZyByYW5nZSAkbGluZSBbZXhwciA2ICsgW3N0cmluZyBmaXJzdCAiIGZyb20gIiAkbGluZV0gXSBlbmRdCi0JCWlmIHtbc3RyaW5nIGluZGV4ICRmbmFtZSAwXSBlcSAiXCIifSB7Ci0JCSAgICBzZXQgZm5hbWUgW2xpbmRleCAkZm5hbWUgMF0KLQkJfQotCQlzZXQgZm5hbWUgW2VuY29kaW5nIGNvbnZlcnRmcm9tICRmbmFtZV0KLQkJc2V0IGkgW2xzZWFyY2ggLWV4YWN0ICR0cmVlZGlmZnMoJGlkcykgJGZuYW1lXQotCQlpZiB7JGkgPj0gMH0gewotCQkgICAgc2V0aW5saXN0IGRpZmZmaWxlc3RhcnQgJGkgJGN1cmRpZmZzdGFydAotCQl9Ci0JICAgIH0gZWxzZWlmIHshW3N0cmluZyBjb21wYXJlIC1sZW5ndGggMTAgJGxpbmUgInJlbmFtZSB0byAiXSB8fAotCQkgICAgICAhW3N0cmluZyBjb21wYXJlIC1sZW5ndGggOCAkbGluZSAiY29weSB0byAiXX0gewotCQlzZXQgZm5hbWUgW3N0cmluZyByYW5nZSAkbGluZSBbZXhwciA0ICsgW3N0cmluZyBmaXJzdCAiIHRvICIgJGxpbmVdIF0gZW5kXQotCQlpZiB7W3N0cmluZyBpbmRleCAkZm5hbWUgMF0gZXEgIlwiIn0gewotCQkgICAgc2V0IGZuYW1lIFtsaW5kZXggJGZuYW1lIDBdCi0JCX0KLQkJbWFrZWRpZmZoZHIgJGZuYW1lICRpZHMKLQkgICAgfSBlbHNlaWYge1tzdHJpbmcgY29tcGFyZSAtbGVuZ3RoIDMgJGxpbmUgIi0tLSJdID09IDB9IHsKLQkJIyBkbyBub3RoaW5nCi0JCWNvbnRpbnVlCi0JICAgIH0gZWxzZWlmIHtbc3RyaW5nIGNvbXBhcmUgLWxlbmd0aCAzICRsaW5lICIrKysiXSA9PSAwfSB7Ci0JCXNldCBkaWZmaW5oZHIgMAotCQljb250aW51ZQotCSAgICB9Ci0JICAgICRjdGV4dCBpbnNlcnQgZW5kICIkbGluZVxuIiBmaWxlc2VwCi0KLQl9IGVsc2UgewotCSAgICBzZXQgbGluZSBbc3RyaW5nIG1hcCB7XHgxQSBeWn0gXAotICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5jb2RpbmcgY29udmVydGZyb20gJGRpZmZlbmNvZGluZyAkbGluZV1dCi0JICAgICMgcGFyc2UgdGhlIHByZWZpeCAtIG9uZSAnICcsICctJyBvciAnKycgZm9yIGVhY2ggcGFyZW50Ci0JICAgIHNldCBwcmVmaXggW3N0cmluZyByYW5nZSAkbGluZSAwIFtleHByIHskZGlmZm5wYXJlbnRzIC0gMX1dXQotCSAgICBzZXQgdGFnIFtleHByIHskZGlmZm5wYXJlbnRzID4gMT8gIm0iOiAiZCJ9XQotCSAgICBzZXQgZG93b3JkcyBbZXhwciB7JHdvcmRkaWZmIG5lIFttYyAiTGluZSBkaWZmIl0gJiYgJGRpZmZucGFyZW50cyA9PSAxfV0KLQkgICAgc2V0IHdvcmRzX3ByZV9tYXJrdXAgIiIKLQkgICAgc2V0IHdvcmRzX3Bvc3RfbWFya3VwICIiCi0JICAgIGlmIHtbc3RyaW5nIHRyaW0gJHByZWZpeCAiIC0rIl0gZXEge319IHsKLQkJIyBwcmVmaXggb25seSBoYXMgIiAiLCAiLSIgYW5kICIrIiBpbiBpdDogbm9ybWFsIGRpZmYgbGluZQotCQlzZXQgbnVtIFtzdHJpbmcgZmlyc3QgIi0iICRwcmVmaXhdCi0JCWlmIHskZG93b3Jkc30gewotCQkgICAgc2V0IGxpbmUgW3N0cmluZyByYW5nZSAkbGluZSAxIGVuZF0KLQkJfQotCQlpZiB7JG51bSA+PSAwfSB7Ci0JCSAgICAjIHJlbW92ZWQgbGluZSwgZmlyc3QgcGFyZW50IHdpdGggbGluZSBpcyAkbnVtCi0JCSAgICBpZiB7JG51bSA+PSAkbWVyZ2VtYXh9IHsKLQkJCXNldCBudW0gIm1heCIKLQkJICAgIH0KLQkJICAgIGlmIHskZG93b3JkcyAmJiAkd29yZGRpZmYgZXEgW21jICJNYXJrdXAgd29yZHMiXX0gewotCQkJJGN0ZXh0IGluc2VydCBlbmQgIlxbLSRsaW5lLVxdIiAkdGFnJG51bQotCQkgICAgfSBlbHNlIHsKLQkJCSRjdGV4dCBpbnNlcnQgZW5kICIkbGluZSIgJHRhZyRudW0KLQkJICAgIH0KLQkJICAgIGlmIHshJGRvd29yZHN9IHsKLQkJCSRjdGV4dCBpbnNlcnQgZW5kICJcbiIgJHRhZyRudW0KLQkJICAgIH0KLQkJfSBlbHNlIHsKLQkJICAgIHNldCB0YWdzIHt9Ci0JCSAgICBpZiB7W3N0cmluZyBmaXJzdCAiKyIgJHByZWZpeF0gPj0gMH0gewotCQkJIyBhZGRlZCBsaW5lCi0JCQlsYXBwZW5kIHRhZ3MgJHt0YWd9cmVzdWx0Ci0JCQlpZiB7JGRpZmZucGFyZW50cyA+IDF9IHsKLQkJCSAgICBzZXQgbnVtIFtzdHJpbmcgZmlyc3QgIiAiICRwcmVmaXhdCi0JCQkgICAgaWYgeyRudW0gPj0gMH0gewotCQkJCWlmIHskbnVtID49ICRtZXJnZW1heH0gewotCQkJCSAgICBzZXQgbnVtICJtYXgiCi0JCQkJfQotCQkJCWxhcHBlbmQgdGFncyBtJG51bQotCQkJICAgIH0KLQkJCX0KLQkJCXNldCB3b3Jkc19wcmVfbWFya3VwICJ7KyIKLQkJCXNldCB3b3Jkc19wb3N0X21hcmt1cCAiK30iCi0JCSAgICB9Ci0JCSAgICBpZiB7JHRhcmdldGxpbmUgbmUge319IHsKLQkJCWlmIHskZGlmZmxpbmUgPT0gJHRhcmdldGxpbmV9IHsKLQkJCSAgICBzZXQgc2VlaGVyZSBbJGN0ZXh0IGluZGV4ICJlbmQgLSAxIGNoYXJzIl0KLQkJCSAgICBzZXQgdGFyZ2V0bGluZSB7fQotCQkJfSBlbHNlIHsKLQkJCSAgICBpbmNyIGRpZmZsaW5lCi0JCQl9Ci0JCSAgICB9Ci0JCSAgICBpZiB7JGRvd29yZHMgJiYgJHdvcmRkaWZmIGVxIFttYyAiTWFya3VwIHdvcmRzIl19IHsKLQkJCSRjdGV4dCBpbnNlcnQgZW5kICIkd29yZHNfcHJlX21hcmt1cCRsaW5lJHdvcmRzX3Bvc3RfbWFya3VwIiAkdGFncwotCQkgICAgfSBlbHNlIHsKLQkJCSRjdGV4dCBpbnNlcnQgZW5kICIkbGluZSIgJHRhZ3MKLQkJICAgIH0KLQkJICAgIGlmIHshJGRvd29yZHN9IHsKLQkJCSRjdGV4dCBpbnNlcnQgZW5kICJcbiIgJHRhZ3MKLQkJICAgIH0KLQkJfQotCSAgICB9IGVsc2VpZiB7JGRvd29yZHMgJiYgJHByZWZpeCBlcSAifiJ9IHsKLQkJJGN0ZXh0IGluc2VydCBlbmQgIlxuIiB7fQotCSAgICB9IGVsc2UgewotCQkjICJcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUiLAotCQkjIG9yIHNvbWV0aGluZyBlbHNlIHdlIGRvbid0IHJlY29nbml6ZQotCQkkY3RleHQgaW5zZXJ0IGVuZCAiJGxpbmVcbiIgaHVua3NlcAotCSAgICB9Ci0JfQorCXBhcnNlYmxvYmRpZmZsaW5lICRpZHMgJGxpbmUKICAgICB9Ci0gICAgaWYge1tpbmZvIGV4aXN0cyBzZWVoZXJlXX0gewotCW1hcmtfY3RleHRfbGluZSBbbGluZGV4IFtzcGxpdCAkc2VlaGVyZSAuXSAwXQotICAgIH0KLSAgICBtYXliZV9zY3JvbGxfY3RleHQgW2VvZiAkYmRmXQogICAgICRjdGV4dCBjb25mIC1zdGF0ZSBkaXNhYmxlZAorICAgIGJsb2JkaWZmbWF5YmVzZWVoZXJlIFtlb2YgJGJkZl0KICAgICBpZiB7W2VvZiAkYmRmXX0gewogCWNhdGNoIHtjbG9zZSAkYmRmfQogCXJldHVybiAwCkBAIC04MDM3LDYgKzc5NzYsMjExIEBACiAgICAgcmV0dXJuIFtleHByIHskbnIgPj0gMTAwMD8gMjogMX1dCiB9CiAKK3Byb2MgcGFyc2VibG9iZGlmZmxpbmUge2lkcyBsaW5lfSB7CisgICAgZ2xvYmFsIGN0ZXh0IGN1cmRpZmZzdGFydAorICAgIGdsb2JhbCBkaWZmbmV4dGhlYWQgZGlmZm5leHRub3RlIGRpZmZmaWxlc3RhcnQKKyAgICBnbG9iYWwgY3RleHRfZmlsZV9uYW1lcyBjdGV4dF9maWxlX2xpbmVzCisgICAgZ2xvYmFsIGRpZmZpbmhkciB0cmVlZGlmZnMgbWVyZ2VtYXggZGlmZm5wYXJlbnRzCisgICAgZ2xvYmFsIGRpZmZlbmNvZGluZyBqdW1wX3RvX2hlcmUgdGFyZ2V0bGluZSBkaWZmbGluZSBjdXJyZGlmZnN1Ym1vZAorICAgIGdsb2JhbCB3b3JkZGlmZiBkaWZmc2VlaGVyZQorCisgICAgaWYgeyFbc3RyaW5nIGNvbXBhcmUgLWxlbmd0aCA1ICJkaWZmICIgJGxpbmVdfSB7CisJaWYgeyFbcmVnZXhwIHteZGlmZiAoLS1jY3wtLWdpdCkgfSAkbGluZSBtIHR5cGVdfSB7CisJICAgIHNldCBsaW5lIFtlbmNvZGluZyBjb252ZXJ0ZnJvbSAkbGluZV0KKwkgICAgJGN0ZXh0IGluc2VydCBlbmQgIiRsaW5lXG4iIGh1bmtzZXAKKwkgICAgY29udGludWUKKwl9CisJIyBzdGFydCBvZiBhIG5ldyBmaWxlCisJc2V0IGRpZmZpbmhkciAxCisJJGN0ZXh0IGluc2VydCBlbmQgIlxuIgorCXNldCBjdXJkaWZmc3RhcnQgWyRjdGV4dCBpbmRleCAiZW5kIC0gMWMiXQorCWxhcHBlbmQgY3RleHRfZmlsZV9uYW1lcyAiIgorCWxhcHBlbmQgY3RleHRfZmlsZV9saW5lcyBbbGluZGV4IFtzcGxpdCAkY3VyZGlmZnN0YXJ0ICIuIl0gMF0KKwkkY3RleHQgaW5zZXJ0IGVuZCAiXG4iIGZpbGVzZXAKKworCWlmIHskdHlwZSBlcSAiLS1jYyJ9IHsKKwkgICAgIyBzdGFydCBvZiBhIG5ldyBmaWxlIGluIGEgbWVyZ2UgZGlmZgorCSAgICBzZXQgZm5hbWUgW3N0cmluZyByYW5nZSAkbGluZSAxMCBlbmRdCisJICAgIGlmIHtbbHNlYXJjaCAtZXhhY3QgJHRyZWVkaWZmcygkaWRzKSAkZm5hbWVdIDwgMH0geworCQlsYXBwZW5kIHRyZWVkaWZmcygkaWRzKSAkZm5hbWUKKwkJYWRkX2ZsaXN0IFtsaXN0ICRmbmFtZV0KKwkgICAgfQorCisJfSBlbHNlIHsKKwkgICAgc2V0IGxpbmUgW3N0cmluZyByYW5nZSAkbGluZSAxMSBlbmRdCisJICAgICMgSWYgdGhlIG5hbWUgaGFzbid0IGNoYW5nZWQgdGhlIGxlbmd0aCB3aWxsIGJlIG9kZCwKKwkgICAgIyB0aGUgbWlkZGxlIGNoYXIgd2lsbCBiZSBhIHNwYWNlLCBhbmQgdGhlIHR3byBiaXRzIGVpdGhlcgorCSAgICAjIHNpZGUgd2lsbCBiZSBhL25hbWUgYW5kIGIvbmFtZSwgb3IgImEvbmFtZSIgYW5kICJiL25hbWUiLgorCSAgICAjIElmIHRoZSBuYW1lIGhhcyBjaGFuZ2VkIHdlJ2xsIGdldCAicmVuYW1lIGZyb20iIGFuZAorCSAgICAjICJyZW5hbWUgdG8iIG9yICJjb3B5IGZyb20iIGFuZCAiY29weSB0byIgbGluZXMgZm9sbG93aW5nCisJICAgICMgdGhpcywgYW5kIHdlJ2xsIHVzZSB0aGVtIHRvIGdldCB0aGUgZmlsZW5hbWVzLgorCSAgICAjIFRoaXMgY29tcGxleGl0eSBpcyBuZWNlc3NhcnkgYmVjYXVzZSBzcGFjZXMgaW4gdGhlCisJICAgICMgZmlsZW5hbWUocykgZG9uJ3QgZ2V0IGVzY2FwZWQuCisJICAgIHNldCBsIFtzdHJpbmcgbGVuZ3RoICRsaW5lXQorCSAgICBzZXQgaSBbZXhwciB7JGwgLyAyfV0KKwkgICAgaWYgeyEoKCRsICYgMSkgJiYgW3N0cmluZyBpbmRleCAkbGluZSAkaV0gZXEgIiAiICYmCisJCSAgW3N0cmluZyByYW5nZSAkbGluZSAyIFtleHByIHskaSAtIDF9XV0gZXEgXAorCQkgICAgICBbc3RyaW5nIHJhbmdlICRsaW5lIFtleHByIHskaSArIDN9XSBlbmRdKX0geworCQlyZXR1cm4KKwkgICAgfQorCSAgICAjIHVuZXNjYXBlIGlmIHF1b3RlZCBhbmQgY2hvcCBvZmYgdGhlIGEvIGZyb20gdGhlIGZyb250CisJICAgIGlmIHtbc3RyaW5nIGluZGV4ICRsaW5lIDBdIGVxICJcIiJ9IHsKKwkJc2V0IGZuYW1lIFtzdHJpbmcgcmFuZ2UgW2xpbmRleCAkbGluZSAwXSAyIGVuZF0KKwkgICAgfSBlbHNlIHsKKwkJc2V0IGZuYW1lIFtzdHJpbmcgcmFuZ2UgJGxpbmUgMiBbZXhwciB7JGkgLSAxfV1dCisJICAgIH0KKwl9CisJbWFrZWRpZmZoZHIgJGZuYW1lICRpZHMKKworICAgIH0gZWxzZWlmIHshW3N0cmluZyBjb21wYXJlIC1sZW5ndGggMTYgIiogVW5tZXJnZWQgcGF0aCAiICRsaW5lXX0geworCXNldCBmbmFtZSBbZW5jb2RpbmcgY29udmVydGZyb20gW3N0cmluZyByYW5nZSAkbGluZSAxNiBlbmRdXQorCSRjdGV4dCBpbnNlcnQgZW5kICJcbiIKKwlzZXQgY3VyZGlmZnN0YXJ0IFskY3RleHQgaW5kZXggImVuZCAtIDFjIl0KKwlsYXBwZW5kIGN0ZXh0X2ZpbGVfbmFtZXMgJGZuYW1lCisJbGFwcGVuZCBjdGV4dF9maWxlX2xpbmVzIFtsaW5kZXggW3NwbGl0ICRjdXJkaWZmc3RhcnQgIi4iXSAwXQorCSRjdGV4dCBpbnNlcnQgZW5kICIkbGluZVxuIiBmaWxlc2VwCisJc2V0IGkgW2xzZWFyY2ggLWV4YWN0ICR0cmVlZGlmZnMoJGlkcykgJGZuYW1lXQorCWlmIHskaSA+PSAwfSB7CisJICAgIHNldGlubGlzdCBkaWZmZmlsZXN0YXJ0ICRpICRjdXJkaWZmc3RhcnQKKwl9CisKKyAgICB9IGVsc2VpZiB7IVtzdHJpbmcgY29tcGFyZSAtbGVuZ3RoIDIgIkBAIiAkbGluZV19IHsKKwlyZWdleHAge15AQCt9ICRsaW5lIGF0cworCXNldCBsaW5lIFtlbmNvZGluZyBjb252ZXJ0ZnJvbSAkZGlmZmVuY29kaW5nICRsaW5lXQorCSRjdGV4dCBpbnNlcnQgZW5kICIkbGluZVxuIiBodW5rc2VwCisJaWYge1tyZWdleHAgeyBcKyhcZCspLFxkKyBAQH0gJGxpbmUgbSBubF19IHsKKwkgICAgc2V0IGRpZmZsaW5lICRubAorCX0KKwlzZXQgZGlmZm5wYXJlbnRzIFtleHByIHtbc3RyaW5nIGxlbmd0aCAkYXRzXSAtIDF9XQorCXNldCBkaWZmaW5oZHIgMAorCisgICAgfSBlbHNlaWYgeyFbc3RyaW5nIGNvbXBhcmUgLWxlbmd0aCAxMCAiU3VibW9kdWxlICIgJGxpbmVdfSB7CisJIyBzdGFydCBvZiBhIG5ldyBzdWJtb2R1bGUKKwlpZiB7W3JlZ2V4cCAtaW5kaWNlcyAiXFswLTlhLWZcXStcXC5cXC4iICRsaW5lIG5hbWVlbmRdfSB7CisJICAgIHNldCBmbmFtZSBbc3RyaW5nIHJhbmdlICRsaW5lIDEwIFtleHByIFtsaW5kZXggJG5hbWVlbmQgMF0gLSAyXV0KKwl9IGVsc2UgeworCSAgICBzZXQgZm5hbWUgW3N0cmluZyByYW5nZSAkbGluZSAxMCBbZXhwciBbc3RyaW5nIGZpcnN0ICJjb250YWlucyAiICRsaW5lXSAtIDJdXQorCX0KKwlpZiB7JGN1cnJkaWZmc3VibW9kICE9ICRmbmFtZX0geworCSAgICAkY3RleHQgaW5zZXJ0IGVuZCAiXG4iOyAgICAgIyBBZGQgbmV3bGluZSBhZnRlciBjb21taXQgbWVzc2FnZQorCX0KKwlzZXQgY3VyZGlmZnN0YXJ0IFskY3RleHQgaW5kZXggImVuZCAtIDFjIl0KKwlsYXBwZW5kIGN0ZXh0X2ZpbGVfbmFtZXMgIiIKKwlpZiB7JGN1cnJkaWZmc3VibW9kICE9ICRmbmFtZX0geworCSAgICBsYXBwZW5kIGN0ZXh0X2ZpbGVfbGluZXMgJGZuYW1lCisJICAgIG1ha2VkaWZmaGRyICRmbmFtZSAkaWRzCisJICAgIHNldCBjdXJyZGlmZnN1Ym1vZCAkZm5hbWUKKwkgICAgJGN0ZXh0IGluc2VydCBlbmQgIlxuJGxpbmVcbiIgZmlsZXNlcAorCX0gZWxzZSB7CisJICAgICRjdGV4dCBpbnNlcnQgZW5kICIkbGluZVxuIiBmaWxlc2VwCisJfQorICAgIH0gZWxzZWlmIHshW3N0cmluZyBjb21wYXJlIC1sZW5ndGggMyAiICA+IiAkbGluZV19IHsKKwlzZXQgJGN1cnJkaWZmc3VibW9kICIiCisJc2V0IGxpbmUgW2VuY29kaW5nIGNvbnZlcnRmcm9tICRkaWZmZW5jb2RpbmcgJGxpbmVdCisJJGN0ZXh0IGluc2VydCBlbmQgIiRsaW5lXG4iIGRyZXN1bHQKKyAgICB9IGVsc2VpZiB7IVtzdHJpbmcgY29tcGFyZSAtbGVuZ3RoIDMgIiAgPCIgJGxpbmVdfSB7CisJc2V0ICRjdXJyZGlmZnN1Ym1vZCAiIgorCXNldCBsaW5lIFtlbmNvZGluZyBjb252ZXJ0ZnJvbSAkZGlmZmVuY29kaW5nICRsaW5lXQorCSRjdGV4dCBpbnNlcnQgZW5kICIkbGluZVxuIiBkMAorICAgIH0gZWxzZWlmIHskZGlmZmluaGRyfSB7CisJaWYgeyFbc3RyaW5nIGNvbXBhcmUgLWxlbmd0aCAxMiAicmVuYW1lIGZyb20gIiAkbGluZV19IHsKKwkgICAgc2V0IGZuYW1lIFtzdHJpbmcgcmFuZ2UgJGxpbmUgW2V4cHIgNiArIFtzdHJpbmcgZmlyc3QgIiBmcm9tICIgJGxpbmVdIF0gZW5kXQorCSAgICBpZiB7W3N0cmluZyBpbmRleCAkZm5hbWUgMF0gZXEgIlwiIn0geworCQlzZXQgZm5hbWUgW2xpbmRleCAkZm5hbWUgMF0KKwkgICAgfQorCSAgICBzZXQgZm5hbWUgW2VuY29kaW5nIGNvbnZlcnRmcm9tICRmbmFtZV0KKwkgICAgc2V0IGkgW2xzZWFyY2ggLWV4YWN0ICR0cmVlZGlmZnMoJGlkcykgJGZuYW1lXQorCSAgICBpZiB7JGkgPj0gMH0geworCQlzZXRpbmxpc3QgZGlmZmZpbGVzdGFydCAkaSAkY3VyZGlmZnN0YXJ0CisJICAgIH0KKwl9IGVsc2VpZiB7IVtzdHJpbmcgY29tcGFyZSAtbGVuZ3RoIDEwICRsaW5lICJyZW5hbWUgdG8gIl0gfHwKKwkJICAhW3N0cmluZyBjb21wYXJlIC1sZW5ndGggOCAkbGluZSAiY29weSB0byAiXX0geworCSAgICBzZXQgZm5hbWUgW3N0cmluZyByYW5nZSAkbGluZSBbZXhwciA0ICsgW3N0cmluZyBmaXJzdCAiIHRvICIgJGxpbmVdIF0gZW5kXQorCSAgICBpZiB7W3N0cmluZyBpbmRleCAkZm5hbWUgMF0gZXEgIlwiIn0geworCQlzZXQgZm5hbWUgW2xpbmRleCAkZm5hbWUgMF0KKwkgICAgfQorCSAgICBtYWtlZGlmZmhkciAkZm5hbWUgJGlkcworCX0gZWxzZWlmIHtbc3RyaW5nIGNvbXBhcmUgLWxlbmd0aCAzICRsaW5lICItLS0iXSA9PSAwfSB7CisJICAgICMgZG8gbm90aGluZworCSAgICByZXR1cm4KKwl9IGVsc2VpZiB7W3N0cmluZyBjb21wYXJlIC1sZW5ndGggMyAkbGluZSAiKysrIl0gPT0gMH0geworCSAgICBzZXQgZGlmZmluaGRyIDAKKwkgICAgcmV0dXJuCisJfQorCSRjdGV4dCBpbnNlcnQgZW5kICIkbGluZVxuIiBmaWxlc2VwCisKKyAgICB9IGVsc2UgeworCXNldCBsaW5lIFtzdHJpbmcgbWFwIHtceDFBIF5afSBcCisJCSAgICAgIFtlbmNvZGluZyBjb252ZXJ0ZnJvbSAkZGlmZmVuY29kaW5nICRsaW5lXV0KKwkjIHBhcnNlIHRoZSBwcmVmaXggLSBvbmUgJyAnLCAnLScgb3IgJysnIGZvciBlYWNoIHBhcmVudAorCXNldCBwcmVmaXggW3N0cmluZyByYW5nZSAkbGluZSAwIFtleHByIHskZGlmZm5wYXJlbnRzIC0gMX1dXQorCXNldCB0YWcgW2V4cHIgeyRkaWZmbnBhcmVudHMgPiAxPyAibSI6ICJkIn1dCisJc2V0IGRvd29yZHMgW2V4cHIgeyR3b3JkZGlmZiBuZSBbbWMgIkxpbmUgZGlmZiJdICYmICRkaWZmbnBhcmVudHMgPT0gMX1dCisJc2V0IHdvcmRzX3ByZV9tYXJrdXAgIiIKKwlzZXQgd29yZHNfcG9zdF9tYXJrdXAgIiIKKwlpZiB7W3N0cmluZyB0cmltICRwcmVmaXggIiAtKyJdIGVxIHt9fSB7CisJICAgICMgcHJlZml4IG9ubHkgaGFzICIgIiwgIi0iIGFuZCAiKyIgaW4gaXQ6IG5vcm1hbCBkaWZmIGxpbmUKKwkgICAgc2V0IG51bSBbc3RyaW5nIGZpcnN0ICItIiAkcHJlZml4XQorCSAgICBpZiB7JGRvd29yZHN9IHsKKwkJc2V0IGxpbmUgW3N0cmluZyByYW5nZSAkbGluZSAxIGVuZF0KKwkgICAgfQorCSAgICBpZiB7JG51bSA+PSAwfSB7CisJCSMgcmVtb3ZlZCBsaW5lLCBmaXJzdCBwYXJlbnQgd2l0aCBsaW5lIGlzICRudW0KKwkJaWYgeyRudW0gPj0gJG1lcmdlbWF4fSB7CisJCSAgICBzZXQgbnVtICJtYXgiCisJCX0KKwkJaWYgeyRkb3dvcmRzICYmICR3b3JkZGlmZiBlcSBbbWMgIk1hcmt1cCB3b3JkcyJdfSB7CisJCSAgICAkY3RleHQgaW5zZXJ0IGVuZCAiXFstJGxpbmUtXF0iICR0YWckbnVtCisJCX0gZWxzZSB7CisJCSAgICAkY3RleHQgaW5zZXJ0IGVuZCAiJGxpbmUiICR0YWckbnVtCisJCX0KKwkJaWYgeyEkZG93b3Jkc30geworCQkgICAgJGN0ZXh0IGluc2VydCBlbmQgIlxuIiAkdGFnJG51bQorCQl9CisJICAgIH0gZWxzZSB7CisJCXNldCB0YWdzIHt9CisJCWlmIHtbc3RyaW5nIGZpcnN0ICIrIiAkcHJlZml4XSA+PSAwfSB7CisJCSAgICAjIGFkZGVkIGxpbmUKKwkJICAgIGxhcHBlbmQgdGFncyAke3RhZ31yZXN1bHQKKwkJICAgIGlmIHskZGlmZm5wYXJlbnRzID4gMX0geworCQkJc2V0IG51bSBbc3RyaW5nIGZpcnN0ICIgIiAkcHJlZml4XQorCQkJaWYgeyRudW0gPj0gMH0geworCQkJICAgIGlmIHskbnVtID49ICRtZXJnZW1heH0geworCQkJCXNldCBudW0gIm1heCIKKwkJCSAgICB9CisJCQkgICAgbGFwcGVuZCB0YWdzIG0kbnVtCisJCQl9CisJCSAgICB9CisJCSAgICBzZXQgd29yZHNfcHJlX21hcmt1cCAieysiCisJCSAgICBzZXQgd29yZHNfcG9zdF9tYXJrdXAgIit9IgorCQl9CisJCWlmIHskdGFyZ2V0bGluZSBuZSB7fX0geworCQkgICAgaWYgeyRkaWZmbGluZSA9PSAkdGFyZ2V0bGluZX0geworCQkJc2V0IGRpZmZzZWVoZXJlIFskY3RleHQgaW5kZXggImVuZCAtIDEgY2hhcnMiXQorCQkJc2V0IHRhcmdldGxpbmUge30KKwkJICAgIH0gZWxzZSB7CisJCQlpbmNyIGRpZmZsaW5lCisJCSAgICB9CisJCX0KKwkJaWYgeyRkb3dvcmRzICYmICR3b3JkZGlmZiBlcSBbbWMgIk1hcmt1cCB3b3JkcyJdfSB7CisJCSAgICAkY3RleHQgaW5zZXJ0IGVuZCAiJHdvcmRzX3ByZV9tYXJrdXAkbGluZSR3b3Jkc19wb3N0X21hcmt1cCIgJHRhZ3MKKwkJfSBlbHNlIHsKKwkJICAgICRjdGV4dCBpbnNlcnQgZW5kICIkbGluZSIgJHRhZ3MKKwkJfQorCQlpZiB7ISRkb3dvcmRzfSB7CisJCSAgICAkY3RleHQgaW5zZXJ0IGVuZCAiXG4iICR0YWdzCisJCX0KKwkgICAgfQorCX0gZWxzZWlmIHskZG93b3JkcyAmJiAkcHJlZml4IGVxICJ+In0geworCSAgICAkY3RleHQgaW5zZXJ0IGVuZCAiXG4iIHt9CisJfSBlbHNlIHsKKwkgICAgIyAiXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlIiwKKwkgICAgIyBvciBzb21ldGhpbmcgZWxzZSB3ZSBkb24ndCByZWNvZ25pemUKKwkgICAgJGN0ZXh0IGluc2VydCBlbmQgIiRsaW5lXG4iIGh1bmtzZXAKKwl9CisgICAgfQorfQorCiBwcm9jIGNoYW5nZWRpZmZkaXNwIHt9IHsKICAgICBnbG9iYWwgY3RleHQgZGlmZmVsaWRlCiAKQEAgLTEwODc4LDYgKzExMDIyLDIzIEBACiAgICAgcmV0dXJuIFtsaXN0ICR4ICR5ICR6XQogfQogCitwcm9jIGFkZF90YWdfY3RleHQge3RhZ30geworICAgIGdsb2JhbCBjdGV4dCBjYWNoZWRfdGFnY29udGVudCB0YWdpZHMKKworICAgIGlmIHshW2luZm8gZXhpc3RzIGNhY2hlZF90YWdjb250ZW50KCR0YWcpXX0geworCWNhdGNoIHsKKwkgICAgc2V0IGNhY2hlZF90YWdjb250ZW50KCR0YWcpIFtleGVjIGdpdCBjYXQtZmlsZSAtcCAkdGFnXQorCX0KKyAgICB9CisgICAgJGN0ZXh0IGluc2VydCBlbmQgIlttYyAiVGFnIl06ICR0YWdcbiIgYm9sZAorICAgIGlmIHtbaW5mbyBleGlzdHMgY2FjaGVkX3RhZ2NvbnRlbnQoJHRhZyldfSB7CisJc2V0IHRleHQgJGNhY2hlZF90YWdjb250ZW50KCR0YWcpCisgICAgfSBlbHNlIHsKKwlzZXQgdGV4dCAiW21jICJJZCJdOiAgJHRhZ2lkcygkdGFnKSIKKyAgICB9CisgICAgYXBwZW5kd2l0aGxpbmtzICR0ZXh0IHt9Cit9CisKIHByb2Mgc2hvd3RhZyB7dGFnIGlzbmV3fSB7CiAgICAgZ2xvYmFsIGN0ZXh0IGNhY2hlZF90YWdjb250ZW50IHRhZ2lkcyBsaW5rbnVtIHRhZ29iamlkCiAKQEAgLTEwODg4LDE3ICsxMTA0OSwyOCBAQAogICAgIGNsZWFyX2N0ZXh0CiAgICAgc2V0dGFicyAwCiAgICAgc2V0IGxpbmtudW0gMAotICAgIGlmIHshW2luZm8gZXhpc3RzIGNhY2hlZF90YWdjb250ZW50KCR0YWcpXX0gewotCWNhdGNoIHsKLSAgICAgICAgICAgc2V0IGNhY2hlZF90YWdjb250ZW50KCR0YWcpIFtleGVjIGdpdCBjYXQtZmlsZSAtcCAkdGFnXQotCX0KKyAgICBhZGRfdGFnX2N0ZXh0ICR0YWcKKyAgICBtYXliZV9zY3JvbGxfY3RleHQgMQorICAgICRjdGV4dCBjb25mIC1zdGF0ZSBkaXNhYmxlZAorICAgIGluaXRfZmxpc3Qge30KK30KKworcHJvYyBzaG93dGFncyB7aWQgaXNuZXd9IHsKKyAgICBnbG9iYWwgaWR0YWdzIGN0ZXh0IGxpbmtudW0KKworICAgIGlmIHskaXNuZXd9IHsKKwlhZGR0b2hpc3RvcnkgW2xpc3Qgc2hvd3RhZ3MgJGlkIDBdIHNhdmVjdGV4dHBvcwogICAgIH0KLSAgICBpZiB7W2luZm8gZXhpc3RzIGNhY2hlZF90YWdjb250ZW50KCR0YWcpXX0gewotCXNldCB0ZXh0ICRjYWNoZWRfdGFnY29udGVudCgkdGFnKQotICAgIH0gZWxzZSB7Ci0Jc2V0IHRleHQgIlttYyAiVGFnIl06ICR0YWdcblttYyAiSWQiXTogICR0YWdpZHMoJHRhZykiCisgICAgJGN0ZXh0IGNvbmYgLXN0YXRlIG5vcm1hbAorICAgIGNsZWFyX2N0ZXh0CisgICAgc2V0dGFicyAwCisgICAgc2V0IGxpbmtudW0gMAorICAgIHNldCBzZXAge30KKyAgICBmb3JlYWNoIHRhZyAkaWR0YWdzKCRpZCkgeworCSRjdGV4dCBpbnNlcnQgZW5kICRzZXAKKwlhZGRfdGFnX2N0ZXh0ICR0YWcKKwlzZXQgc2VwICJcblxuIgogICAgIH0KLSAgICBhcHBlbmR3aXRobGlua3MgJHRleHQge30KICAgICBtYXliZV9zY3JvbGxfY3RleHQgMQogICAgICRjdGV4dCBjb25mIC1zdGF0ZSBkaXNhYmxlZAogICAgIGluaXRfZmxpc3Qge30KQEAgLTExOTE1LDcgKzEyMDg3LDI5IEBACiAjIyBBbmQgZXZlbnR1YWxseSBsb2FkIHRoZSBhY3R1YWwgbWVzc2FnZSBjYXRhbG9nCiA6Om1zZ2NhdDo6bWNsb2FkICRnaXRrX21zZ3NkaXIKIAotY2F0Y2gge3NvdXJjZSB+Ly5naXRrfQorY2F0Y2ggeworICAgICMgZm9sbG93IHRoZSBYREcgYmFzZSBkaXJlY3Rvcnkgc3BlY2lmaWNhdGlvbiBieSBkZWZhdWx0LiBTZWUKKyAgICAjIGh0dHA6Ly9zdGFuZGFyZHMuZnJlZWRlc2t0b3Aub3JnL2Jhc2VkaXItc3BlYy9iYXNlZGlyLXNwZWMtbGF0ZXN0Lmh0bWwKKyAgICBpZiB7W2luZm8gZXhpc3RzIGVudihYREdfQ09ORklHX0hPTUUpXSAmJiAkZW52KFhER19DT05GSUdfSE9NRSkgbmUgIiJ9IHsKKwkjIFhER19DT05GSUdfSE9NRSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQKKwlzZXQgY29uZmlnX2ZpbGUgW2ZpbGUgam9pbiAkZW52KFhER19DT05GSUdfSE9NRSkgZ2l0IGdpdGtdCisJc2V0IGNvbmZpZ19maWxlX3RtcCBbZmlsZSBqb2luICRlbnYoWERHX0NPTkZJR19IT01FKSBnaXQgZ2l0ay10bXBdCisgICAgfSBlbHNlIHsKKwkjIGRlZmF1bHQgWERHX0NPTkZJR19IT01FCisJc2V0IGNvbmZpZ19maWxlICJ+Ly5jb25maWcvZ2l0L2dpdGsiCisJc2V0IGNvbmZpZ19maWxlX3RtcCAifi8uY29uZmlnL2dpdC9naXRrLXRtcCIKKyAgICB9CisgICAgaWYgeyFbZmlsZSBleGlzdHMgJGNvbmZpZ19maWxlXX0geworCSMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgdXNlIHRoZSBvbGQgY29uZmlnIGZpbGUgaWYgaXQgZXhpc3RzCisJaWYge1tmaWxlIGV4aXN0cyAifi8uZ2l0ayJdfSB7CisJICAgIHNldCBjb25maWdfZmlsZSAifi8uZ2l0ayIKKwkgICAgc2V0IGNvbmZpZ19maWxlX3RtcCAifi8uZ2l0ay10bXAiCisJfSBlbHNlaWYgeyFbZmlsZSBleGlzdHMgW2ZpbGUgZGlybmFtZSAkY29uZmlnX2ZpbGVdXX0geworCSAgICBmaWxlIG1rZGlyIFtmaWxlIGRpcm5hbWUgJGNvbmZpZ19maWxlXQorCX0KKyAgICB9CisgICAgc291cmNlICRjb25maWdfZmlsZQorfQogCiBwYXJzZWZvbnQgbWFpbmZvbnQgJG1haW5mb250CiBldmFsIGZvbnQgY3JlYXRlIG1haW5mb250IFtmb250ZmxhZ3MgbWFpbmZvbnRdCmRpZmYgLS1naXQgYS9naXRrLWdpdC9wby9iZy5wbyBiL2dpdGstZ2l0L3BvL2JnLnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4MjM5N2UKLS0tIC9kZXYvbnVsbAorKysgYi9naXRrLWdpdC9wby9iZy5wbwpAQCAtMCwwICsxLDEzMzQgQEAKKyMgQnVsZ2FyaWFuIHRyYW5zbGF0aW9uIG9mIGdpdGsgcG8tZmlsZS4KKyMgQ29weXJpZ2h0IChDKSAyMDE0IEFsZXhhbmRlciBTaG9wb3YgPGFzaEBrYW1iYW5hcmlhLm9yZz4uCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgc2FtZSBsaWNlbnNlIGFzIHRoZSBnaXQgcGFja2FnZS4KKyMgQWxleGFuZGVyIFNob3BvdiA8YXNoQGthbWJhbmFyaWEub3JnPiwgMjAxNC4KKyMKKyMKK21zZ2lkICIiCittc2dzdHIgIiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IGdpdGsgbWFzdGVyXG4iCisiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEwLTAxLTI2IDE1OjQ3LTA4MDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDE0LTAxLTA4IDA4OjAzKzAyMDBcbiIKKyJMYXN0LVRyYW5zbGF0b3I6IEFsZXhhbmRlciBTaG9wb3YgPGFzaEBrYW1iYW5hcmlhLm9yZz5cbiIKKyJMYW5ndWFnZS1UZWFtOiBCdWxnYXJpYW4gPGRpY3RAZnNhLWJnLm9yZz5cbiIKKyJMYW5ndWFnZTogYmdcbiIKKyJNSU1FLVZlcnNpb246IDEuMFxuIgorIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOFxuIgorIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKKyJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKKworIzogZ2l0azoxNDAKK21zZ2lkICJDb3VsZG4ndCBnZXQgbGlzdCBvZiB1bm1lcmdlZCBmaWxlczoiCittc2dzdHIgItCh0L/QuNGB0YrQutGK0YIg0YEg0L3QtdGB0LvQtdGC0Lgg0YTQsNC50LvQvtCy0LUg0L3QtSDQvNC+0LbQtSDQtNCwINCx0YrQtNC1INC/0L7Qu9GD0YfQtdC9OiIKKworIzogZ2l0azoyMTIgZ2l0azoyMzUzCittc2dpZCAiQ29sb3Igd29yZHMiCittc2dzdHIgItCe0YbQstC10YLRj9Cy0LDQvdC1INC90LAg0LTRg9C80LjRgtC1IgorCisjOiBnaXRrOjIxNyBnaXRrOjIzNTMgZ2l0azo4MTAzIGdpdGs6ODEzNgorbXNnaWQgIk1hcmt1cCB3b3JkcyIKK21zZ3N0ciAi0J7RgtCx0LXQu9GP0LfQstCw0L3QtSDQvdCwINC00YPQvNC40YLQtSIKKworIzogZ2l0azozMjIKK21zZ2lkICJFcnJvciBwYXJzaW5nIHJldmlzaW9uczoiCittc2dzdHIgItCT0YDQtdGI0LrQsCDQv9GA0Lgg0YDQsNC30LHQvtGAINC90LAg0LLQtdGA0YHQuNC40YLQtToiCisKKyM6IGdpdGs6Mzc4Cittc2dpZCAiRXJyb3IgZXhlY3V0aW5nIC0tYXJnc2NtZCBjb21tYW5kOiIKK21zZ3N0ciAi0JPRgNC10YjQutCwINC/0YDQuCDQuNC30L/RitC70L3QtdC90LjQtSDQvdCwINC60L7QvNCw0L3QtNCw0YLQsCDRgSDigJ4tLWFyZ3NjbWTigJwuIgorCisjOiBnaXRrOjM5MQorbXNnaWQgIk5vIGZpbGVzIHNlbGVjdGVkOiAtLW1lcmdlIHNwZWNpZmllZCBidXQgbm8gZmlsZXMgYXJlIHVubWVyZ2VkLiIKK21zZ3N0ciAi0J3QtSDRgdCwINC40LfQsdGA0LDQvdC4INGE0LDQudC70L7QstC1IOKAlCDRg9C60LDQt9Cw0L3QsCDQtSDQvtC/0YbQuNGP0YLQsCDigJ4tLW1lcmdl4oCcLCDQvdC+INC90Y/QvNCwINC90LXRgdC70LXRgtC4INGE0LDQudC70L7QstC1LiIKKworIzogZ2l0azozOTQKK21zZ2lkICIiCisiTm8gZmlsZXMgc2VsZWN0ZWQ6IC0tbWVyZ2Ugc3BlY2lmaWVkIGJ1dCBubyB1bm1lcmdlZCBmaWxlcyBhcmUgd2l0aGluIGZpbGUgIgorImxpbWl0LiIKK21zZ3N0ciAi0J3QtSDRgdCwINC40LfQsdGA0LDQvdC4INGE0LDQudC70L7QstC1IOKAlCDRg9C60LDQt9Cw0L3QsCDQtSDQvtC/0YbQuNGP0YLQsCDigJ4tLW1lcmdl4oCcLCDQvdC+INC90Y/QvNCwINC90LXRgdC70LXRgtC4INGE0LDQudC70L7QstC1INCyINC+0LPRgNCw0L3QuNGH0LXQvdC40Y/RgtCwLiIKKworIzogZ2l0azo0MTYgZ2l0azo1NjQKK21zZ2lkICJFcnJvciBleGVjdXRpbmcgZ2l0IGxvZzoiCittc2dzdHIgItCT0YDQtdGI0LrQsCDQv9GA0Lgg0LjQt9C/0YrQu9C90LXQvdC40LUg0L3QsCDigJ5naXQgbG9n4oCcOiIKKworIzogZ2l0azo0MzQgZ2l0azo1ODAKK21zZ2lkICJSZWFkaW5nIgorbXNnc3RyICLQn9GA0L7Rh9C40YLQsNC90LUiCisKKyM6IGdpdGs6NDk0IGdpdGs6NDQyOQorbXNnaWQgIlJlYWRpbmcgY29tbWl0cy4uLiIKK21zZ3N0ciAi0J/RgNC+0YfQuNGC0LDQvdC1INC90LAg0L/QvtC00LDQstCw0L3QuNGP0YLQsOKApiIKKworIzogZ2l0azo0OTcgZ2l0azoxNjM1IGdpdGs6NDQzMgorbXNnaWQgIk5vIGNvbW1pdHMgc2VsZWN0ZWQiCittc2dzdHIgItCd0LUg0YHQsCDQuNC30LHRgNCw0L3QuCDQv9C+0LTQsNCy0LDQvdC40Y8iCisKKyM6IGdpdGs6MTUwOQorbXNnaWQgIkNhbid0IHBhcnNlIGdpdCBsb2cgb3V0cHV0OiIKK21zZ3N0ciAi0JjQt9GF0L7QtNGK0YIg0L7RgiDigJ5naXQgbG9n4oCcINC90LUg0LzQvtC20LUg0LTQsCDRgdC1INCw0L3QsNC70LjQt9C40YDQsDoiCisKKyM6IGdpdGs6MTczOAorbXNnaWQgIk5vIGNvbW1pdCBpbmZvcm1hdGlvbiBhdmFpbGFibGUiCittc2dzdHIgItCb0LjQv9GB0LLQsCDQuNC90YTQvtGA0LzQsNGG0LjRjyDQt9CwINC/0L7QtNCw0LLQsNC90LjRjyIKKworIzogZ2l0azoxODk1Cittc2dpZCAibWMiCittc2dzdHIgIm1jIgorCisjOiBnaXRrOjE5MzAgZ2l0azo0MjIyIGdpdGs6OTU1MiBnaXRrOjExMTIyIGdpdGs6MTE0MDEKK21zZ2lkICJPSyIKK21zZ3N0ciAi0JTQvtCx0YDQtSIKKworIzogZ2l0azoxOTMyIGdpdGs6NDIyNCBnaXRrOjkwNzkgZ2l0azo5MTU4IGdpdGs6OTI3NCBnaXRrOjkzMjMgZ2l0azo5NTU0CisjOiBnaXRrOjExMTIzIGdpdGs6MTE0MDIKK21zZ2lkICJDYW5jZWwiCittc2dzdHIgItCe0YLQutCw0LciCisKKyM6IGdpdGs6MjA2NworbXNnaWQgIlVwZGF0ZSIKK21zZ3N0ciAi0J7QsdC90L7QstGP0LLQsNC90LUiCisKKyM6IGdpdGs6MjA2OAorbXNnaWQgIlJlbG9hZCIKK21zZ3N0ciAi0J/RgNC10LfQsNGA0LXQttC00LDQvdC1IgorCisjOiBnaXRrOjIwNjkKK21zZ2lkICJSZXJlYWQgcmVmZXJlbmNlcyIKK21zZ3N0ciAi0J3QsNC90L7QstC+INC/0YDQvtGH0LjRgtCw0L3QtSDQvdCwINC90LDRgdGC0YDQvtC50LrQuNGC0LUiCisKKyM6IGdpdGs6MjA3MAorbXNnaWQgIkxpc3QgcmVmZXJlbmNlcyIKK21zZ3N0ciAi0JjQt9Cx0YDQvtGP0LLQsNC90LUg0L3QsCDRg9C60LDQt9Cw0YLQtdC70LjRgtC1IgorCisjOiBnaXRrOjIwNzIKK21zZ2lkICJTdGFydCBnaXQgZ3VpIgorbXNnc3RyICLQodGC0LDRgNGC0LjRgNCw0L3QtSDQvdCwIGdpdCBndWkiCisKKyM6IGdpdGs6MjA3NAorbXNnaWQgIlF1aXQiCittc2dzdHIgItCh0L/QuNGA0LDQvdC1INC90LAg0L/RgNC+0LPRgNCw0LzQsNGC0LAiCisKKyM6IGdpdGs6MjA2NgorbXNnaWQgIkZpbGUiCittc2dzdHIgItCk0LDQudC7IgorCisjOiBnaXRrOjIwNzgKK21zZ2lkICJQcmVmZXJlbmNlcyIKK21zZ3N0ciAi0J3QsNGB0YLRgNC+0LnQutC4IgorCisjOiBnaXRrOjIwNzcKK21zZ2lkICJFZGl0IgorbXNnc3RyICLQoNC10LTQsNC60YLQuNGA0LDQvdC1IgorCisjOiBnaXRrOjIwODIKK21zZ2lkICJOZXcgdmlldy4uLiIKK21zZ3N0ciAi0J3QvtCyINC40LfQs9C70LXQtOKApiIKKworIzogZ2l0azoyMDgzCittc2dpZCAiRWRpdCB2aWV3Li4uIgorbXNnc3RyICLQoNC10LTQsNC60YLQuNGA0LDQvdC1INC90LAg0LjQt9Cz0LvQtdC00LDigKYiCisKKyM6IGdpdGs6MjA4NAorbXNnaWQgIkRlbGV0ZSB2aWV3IgorbXNnc3RyICLQmNC30YLRgNC40LLQsNC90LUg0L3QsCDQuNC30LPQu9C10LTQsCIKKworIzogZ2l0azoyMDg2Cittc2dpZCAiQWxsIGZpbGVzIgorbXNnc3RyICLQktGB0LjRh9C60Lgg0YTQsNC50LvQvtCy0LUiCisKKyM6IGdpdGs6MjA4MSBnaXRrOjM5NzUKK21zZ2lkICJWaWV3IgorbXNnc3RyICLQmNC30LPQu9C10LQiCisKKyM6IGdpdGs6MjA5MSBnaXRrOjIxMDEgZ2l0azoyOTQ1Cittc2dpZCAiQWJvdXQgZ2l0ayIKK21zZ3N0ciAi0J7RgtC90L7RgdC90L4gZ2l0ayIKKworIzogZ2l0azoyMDkyIGdpdGs6MjEwNgorbXNnaWQgIktleSBiaW5kaW5ncyIKK21zZ3N0ciAi0JrQu9Cw0LLQuNGI0L3QuCDQutC+0LzQsdC40L3QsNGG0LjQuCIKKworIzogZ2l0azoyMDkwIGdpdGs6MjEwNQorbXNnaWQgIkhlbHAiCittc2dzdHIgItCf0L7QvNC+0YkiCisKKyM6IGdpdGs6MjE4MyBnaXRrOjg1MzUKK21zZ2lkICJTSEExIElEOiIKK21zZ3N0ciAiU0hBMToiCisKKyM6IGdpdGs6MjIyNworbXNnaWQgIlJvdyIKK21zZ3N0ciAi0KDQtdC0IgorCisjOiBnaXRrOjIyNjUKK21zZ2lkICJGaW5kIgorbXNnc3RyICLQotGK0YDRgdC10L3QtSIKKworIzogZ2l0azoyMjY2Cittc2dpZCAibmV4dCIKK21zZ3N0ciAi0YHQu9C10LTQstCw0YnQviIKKworIzogZ2l0azoyMjY3Cittc2dpZCAicHJldiIKK21zZ3N0ciAi0L/RgNC10LTQuNGI0L3QviIKKworIzogZ2l0azoyMjY4Cittc2dpZCAiY29tbWl0IgorbXNnc3RyICLQv9C+0LTQsNCy0LDQvdC1IgorCisjOiBnaXRrOjIyNzEgZ2l0azoyMjczIGdpdGs6NDU5MCBnaXRrOjQ2MTMgZ2l0azo0NjM3IGdpdGs6NjY1MyBnaXRrOjY3MjUKKyM6IGdpdGs6NjgxMAorbXNnaWQgImNvbnRhaW5pbmc6IgorbXNnc3RyICLRgdGK0LTRitGA0LbQsNGJ0L46IgorCisjOiBnaXRrOjIyNzQgZ2l0azozNDU3IGdpdGs6MzQ2MiBnaXRrOjQ2NjYKK21zZ2lkICJ0b3VjaGluZyBwYXRoczoiCittc2dzdHIgItC30LDRgdGP0LPQsNGJ0L4g0L/RitGC0LjRidCw0YLQsDoiCisKKyM6IGdpdGs6MjI3NSBnaXRrOjQ2ODAKK21zZ2lkICJhZGRpbmcvcmVtb3Zpbmcgc3RyaW5nOiIKK21zZ3N0ciAi0LTQvtCx0LDQstGP0YnQvi/Qv9GA0LXQvNCw0YXQstCw0YnQviDQvdC40LciCisKKyM6IGdpdGs6MjI3NiBnaXRrOjQ2ODIKK21zZ2lkICJjaGFuZ2luZyBsaW5lcyBtYXRjaGluZzoiCittc2dzdHIgItC/0YDQvtC80LXQvdGP0YnQviDRgNC10LTQvtCy0LUg0L3QsNC/0LDRgdCy0LDRidC4OiIKKworIzogZ2l0azoyMjg1IGdpdGs6MjI4NyBnaXRrOjQ2NjkKK21zZ2lkICJFeGFjdCIKK21zZ3N0ciAi0KLQvtGH0L3QviIKKworIzogZ2l0azoyMjg3IGdpdGs6NDc1NyBnaXRrOjY2MjEKK21zZ2lkICJJZ25DYXNlIgorbXNnc3RyICLQkdC10Lcg0YDQtdCz0LjRgdGC0YrRgCIKKworIzogZ2l0azoyMjg3IGdpdGs6NDYzOSBnaXRrOjQ3NTUgZ2l0azo2NjE3Cittc2dpZCAiUmVnZXhwIgorbXNnc3RyICLQoNC10LMuINC40LfRgC4iCisKKyM6IGdpdGs6MjI4OSBnaXRrOjIyOTAgZ2l0azo0Nzc3IGdpdGs6NDgwNyBnaXRrOjQ4MTQgZ2l0azo2NzQ2IGdpdGs6NjgxNAorbXNnaWQgIkFsbCBmaWVsZHMiCittc2dzdHIgItCS0YHQuNGH0LrQuCDQv9C+0LvQtdGC0LAiCisKKyM6IGdpdGs6MjI5MCBnaXRrOjQ3NzQgZ2l0azo0ODA3IGdpdGs6NjY4NAorbXNnaWQgIkhlYWRsaW5lIgorbXNnc3RyICLQn9GK0YDQstC4INGA0LXQtCIKKworIzogZ2l0azoyMjkxIGdpdGs6NDc3NCBnaXRrOjY2ODQgZ2l0azo2ODE0IGdpdGs6NzI4MworbXNnaWQgIkNvbW1lbnRzIgorbXNnc3RyICLQmtC+0LzQtdC90YLQsNGA0LgiCisKKyM6IGdpdGs6MjI5MSBnaXRrOjQ3NzQgZ2l0azo0Nzc5IGdpdGs6NDgxNCBnaXRrOjY2ODQgZ2l0azo3MjE4IGdpdGs6ODcxMworIzogZ2l0azo4NzI4Cittc2dpZCAiQXV0aG9yIgorbXNnc3RyICLQkNCy0YLQvtGAIgorCisjOiBnaXRrOjIyOTEgZ2l0azo0Nzc0IGdpdGs6NjY4NCBnaXRrOjcyMjAKK21zZ2lkICJDb21taXR0ZXIiCittc2dzdHIgItCf0L7QtNCw0LLQsNGJIgorCisjOiBnaXRrOjIzMjIKK21zZ2lkICJTZWFyY2giCittc2dzdHIgItCi0YrRgNGB0LXQvdC1IgorCisjOiBnaXRrOjIzMzAKK21zZ2lkICJEaWZmIgorbXNnc3RyICLQoNCw0LfQu9C40LrQuCIKKworIzogZ2l0azoyMzMyCittc2dpZCAiT2xkIHZlcnNpb24iCittc2dzdHIgItCh0YLQsNGA0LAg0LLQtdGA0YHQuNGPIgorCisjOiBnaXRrOjIzMzQKK21zZ2lkICJOZXcgdmVyc2lvbiIKK21zZ3N0ciAi0J3QvtCy0LAg0LLQtdGA0YHQuNGPIgorCisjOiBnaXRrOjIzMzYKK21zZ2lkICJMaW5lcyBvZiBjb250ZXh0IgorbXNnc3RyICLQmtC+0L3RgtC10LrRgdGCINCyINGA0LXQtNC+0LLQtSIKKworIzogZ2l0azoyMzQ2Cittc2dpZCAiSWdub3JlIHNwYWNlIGNoYW5nZSIKK21zZ3N0ciAi0J/RgNCw0LfQvdC40YLQtSDQt9C90LDRhtC4INCx0LXQtyDQt9C90LDRh9C10L3QuNC1IgorCisjOiBnaXRrOjIzNTAgZ2l0azoyMzUyIGdpdGs6Nzg0MiBnaXRrOjgwODkKK21zZ2lkICJMaW5lIGRpZmYiCittc2dzdHIgItCf0L7RgNC10LTQvtCy0Lgg0YDQsNC30LvQuNC60LgiCisKKyM6IGdpdGs6MjQxNworbXNnaWQgIlBhdGNoIgorbXNnc3RyICLQmtGA0YrQv9C60LAiCisKKyM6IGdpdGs6MjQxOQorbXNnaWQgIlRyZWUiCittc2dzdHIgItCU0YrRgNCy0L4iCisKKyM6IGdpdGs6MjU3NyBnaXRrOjI1OTcKK21zZ2lkICJEaWZmIHRoaXMgLT4gc2VsZWN0ZWQiCittc2dzdHIgItCg0LDQt9C70LjQutC4INC80LXQttC00YMg0YLQvtCy0LAg0Lgg0LjQt9Cx0YDQsNC90L7RgtC+IgorCisjOiBnaXRrOjI1NzggZ2l0azoyNTk4Cittc2dpZCAiRGlmZiBzZWxlY3RlZCAtPiB0aGlzIgorbXNnc3RyICLQoNCw0LfQu9C40LrQuCDQvNC10LbQtNGDINC40LfQsdGA0LDQvdC+0YLQviDQuCDRgtC+0LLQsCIKKworIzogZ2l0azoyNTc5IGdpdGs6MjU5OQorbXNnaWQgIk1ha2UgcGF0Y2giCittc2dzdHIgItCh0YrQt9C00LDQstCw0L3QtSDQvdCwINC60YDRitC/0LrQsCIKKworIzogZ2l0azoyNTgwIGdpdGs6OTEzNworbXNnaWQgIkNyZWF0ZSB0YWciCittc2dzdHIgItCh0YrQt9C00LDQstCw0L3QtSDQvdCwINC10YLQuNC60LXRgiIKKworIzogZ2l0azoyNTgxIGdpdGs6OTI1NAorbXNnaWQgIldyaXRlIGNvbW1pdCB0byBmaWxlIgorbXNnc3RyICLQl9Cw0L/QsNC30LLQsNC90LUg0L3QsCDQv9C+0LTQsNCy0LDQvdC10YLQviDQstGK0LIg0YTQsNC50LsiCisKKyM6IGdpdGs6MjU4MiBnaXRrOjkzMTEKK21zZ2lkICJDcmVhdGUgbmV3IGJyYW5jaCIKK21zZ3N0ciAi0KHRitC30LTQsNCy0LDQvdC1INC90LAg0L3QvtCyINC60LvQvtC9IgorCisjOiBnaXRrOjI1ODMKK21zZ2lkICJDaGVycnktcGljayB0aGlzIGNvbW1pdCIKK21zZ3N0ciAi0J7RgtCx0LjRgNCw0L3QtSDQvdCwINGC0L7QstCwINC/0L7QtNCw0LLQsNC90LUiCisKKyM6IGdpdGs6MjU4NAorbXNnaWQgIlJlc2V0IEhFQUQgYnJhbmNoIHRvIGhlcmUiCittc2dzdHIgItCf0YDQuNCy0LXQttC00LDQvdC1INC90LAg0LLRitGA0YXQsCDQvdCwINC60LvQvtC90LAg0LrRitC8INGC0LXQutGD0YnQvtGC0L4g0L/QvtC00LDQstCw0L3QtSIKKworIzogZ2l0azoyNTg1Cittc2dpZCAiTWFyayB0aGlzIGNvbW1pdCIKK21zZ3N0ciAi0J7RgtCx0LXQu9GP0LfQstCw0L3QtSDQvdCwINGC0L7QstCwINC/0L7QtNCw0LLQsNC90LUiCisKKyM6IGdpdGs6MjU4NgorbXNnaWQgIlJldHVybiB0byBtYXJrIgorbXNnc3RyICLQktGA0YrRidCw0L3QtSDQutGK0Lwg0L7RgtCx0LXQu9GP0LfQsNC90L7RgtC+INC/0L7QtNCw0LLQsNC90LUiCisKKyM6IGdpdGs6MjU4NworbXNnaWQgIkZpbmQgZGVzY2VuZGFudCBvZiB0aGlzIGFuZCBtYXJrIgorbXNnc3RyICLQntGC0LrRgNC40LLQsNC90LUg0Lgg0L7RgtCx0LXQu9GP0LfQstCw0L3QtSDQvdCwINC90LDRgdC70LXQtNC90LjRhtC40YLQtSIKKworIzogZ2l0azoyNTg4Cittc2dpZCAiQ29tcGFyZSB3aXRoIG1hcmtlZCBjb21taXQiCittc2dzdHIgItCh0YDQsNCy0L3QtdC90LjQtSDRgSDQvtGC0LHQtdC70Y/Qt9Cw0L3QvtGC0L4g0L/QvtC00LDQstCw0L3QtSIKKworIzogZ2l0azoyNTg5IGdpdGs6MjYwMAorbXNnaWQgIkRpZmYgdGhpcyAtPiBtYXJrZWQgY29tbWl0IgorbXNnc3RyICLQoNCw0LfQu9C40LrQuCDQvNC10LbQtNGDINGC0L7QstCwINC4INC+0YLQsdC10LvRj9C30LDQvdC+0YLQviIKKworIzogZ2l0azoyNTkwIGdpdGs6MjYwMQorbXNnaWQgIkRpZmYgbWFya2VkIGNvbW1pdCAtPiB0aGlzIgorbXNnc3RyICLQoNCw0LfQu9C40LrQuCDQvNC10LbQtNGDINC+0YLQsdC10LvRj9C30LDQvdC+0YLQviDQuCDRgtC+0LLQsCIKKworIzogZ2l0azoyNTkxCittc2dpZCAiUmV2ZXJ0IHRoaXMgY29tbWl0IgorbXNnc3RyICLQntGC0LzRj9C90LAg0L3QsCDRgtC+0LLQsCDQv9C+0LTQsNCy0LDQvdC1IgorCisjOiBnaXRrOjI2MDcKK21zZ2lkICJDaGVjayBvdXQgdGhpcyBicmFuY2giCittc2dzdHIgItCY0LfRgtC10LPQu9GP0L3QtSDQvdCwINGC0L7Qt9C4INC60LvQvtC9IgorCisjOiBnaXRrOjI2MDgKK21zZ2lkICJSZW1vdmUgdGhpcyBicmFuY2giCittc2dzdHIgItCY0LfRgtGA0LjQstCw0L3QtSDQvdCwINGC0L7Qt9C4INC60LvQvtC9IgorCisjOiBnaXRrOjI2MTUKK21zZ2lkICJIaWdobGlnaHQgdGhpcyB0b28iCittc2dzdHIgItCe0YLQsdC10LvRj9C30LLQsNC90LUg0Lgg0L3QsCDRgtC+0LLQsCIKKworIzogZ2l0azoyNjE2Cittc2dpZCAiSGlnaGxpZ2h0IHRoaXMgb25seSIKK21zZ3N0ciAi0J7RgtCx0LXQu9GP0LfQstCw0L3QtSDRgdCw0LzQviDQvdCwINGC0L7QstCwIgorCisjOiBnaXRrOjI2MTcKK21zZ2lkICJFeHRlcm5hbCBkaWZmIgorbXNnc3RyICLQktGK0L3RiNC90LAg0L/RgNC+0LPRgNCw0LzQsCDQt9CwINGA0LDQt9C70LjQutC4IgorCisjOiBnaXRrOjI2MTgKK21zZ2lkICJCbGFtZSBwYXJlbnQgY29tbWl0IgorbXNnc3RyICLQkNC90L7RgtC40YDQsNC90LUg0L3QsCDRgNC+0LTQuNGC0LXQu9GB0LrQvtGC0L4g0L/QvtC00LDQstCw0L3QtSIKKworIzogZ2l0azoyNjI1Cittc2dpZCAiU2hvdyBvcmlnaW4gb2YgdGhpcyBsaW5lIgorbXNnc3RyICLQn9C+0LrQsNC30LLQsNC90LUg0L3QsCDQv9GA0L7QuNC30YXQvtC00LAg0L3QsCDRgtC+0LfQuCDRgNC10LQiCisKKyM6IGdpdGs6MjYyNgorbXNnaWQgIlJ1biBnaXQgZ3VpIGJsYW1lIG9uIHRoaXMgbGluZSIKK21zZ3N0ciAi0JjQt9C/0YrQu9C90LXQvdC40LUg0L3QsCDigJ5naXQgZ3VpIGJsYW1l4oCcINCy0YrRgNGF0YMg0YLQvtC30Lgg0YDQtdC0IgorCisjOiBnaXRrOjI5NDcKK21zZ2lkICIiCisiXG4iCisiR2l0ayAtIGEgY29tbWl0IHZpZXdlciBmb3IgZ2l0XG4iCisiXG4iCisiQ29weXJpZ2h0IMKpIDIwMDUtMjAxMSBQYXVsIE1hY2tlcnJhc1xuIgorIlxuIgorIlVzZSBhbmQgcmVkaXN0cmlidXRlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UiCittc2dzdHIgIiIKKyJcbiIKKyJHaXRrIOKAlCDQstC40LfRg9Cw0LvQuNC30LDRhtC40Y8g0L3QsCDQv9C+0LTQsNCy0LDQvdC40Y/RgtCwINCyIEdpdFxuIgorIlxuIgorItCQ0LLRgtC+0YDRgdC60Lgg0L/RgNCw0LLQsDogwqkgMjAwNS0yMDExIFBhdWwgTWFja2VycmFzXG4iCisiXG4iCisi0JjQt9C/0L7Qu9C30LLQsNC50YLQtSDQuCDRgNCw0LfQv9GA0L7RgdGC0YDQsNC90Y/QstCw0LnRgtC1INC/0YDQuCDRg9GB0LvQvtCy0LjRj9GC0LAg0L3QsCDQntCf0Jsg0L3QsCDQk9Cd0KMiCisKKyM6IGdpdGs6Mjk1NSBnaXRrOjMwMjAgZ2l0azo5NzM4Cittc2dpZCAiQ2xvc2UiCittc2dzdHIgItCX0LDRgtCy0LDRgNGP0L3QtSIKKworIzogZ2l0azoyOTc2Cittc2dpZCAiR2l0ayBrZXkgYmluZGluZ3MiCittc2dzdHIgItCa0LvQsNCy0LjRiNC90Lgg0LrQvtC80LHQuNC90LDRhtC40LgiCisKKyM6IGdpdGs6Mjk3OQorbXNnaWQgIkdpdGsga2V5IGJpbmRpbmdzOiIKK21zZ3N0ciAi0JrQu9Cw0LLQuNGI0L3QuCDQutC+0LzQsdC40L3QsNGG0LjQuDoiCisKKyM6IGdpdGs6Mjk4MQorIywgdGNsLWZvcm1hdAorbXNnaWQgIjwlcy1RPlx0XHRRdWl0IgorbXNnc3RyICI8JXMtUT5cdFx00KHQv9C40YDQsNC90LUg0L3QsCDQv9GA0L7Qs9GA0LDQvNCw0YLQsCIKKworIzogZ2l0azoyOTgyCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiPCVzLVc+XHRcdENsb3NlIHdpbmRvdyIKK21zZ3N0ciAiPCVzLVc+XHRcdNCX0LDRgtCy0LDRgNGP0L3QtSDQvdCwINC/0YDQvtC30L7RgNC10YbQsCIKKworIzogZ2l0azoyOTgzCittc2dpZCAiPEhvbWU+XHRcdE1vdmUgdG8gZmlyc3QgY29tbWl0IgorbXNnc3RyICI8SG9tZT5cdFx00JrRitC8INC/0YrRgNCy0L7RgtC+INC/0L7QtNCw0LLQsNC90LUiCisKKyM6IGdpdGs6Mjk4NAorbXNnaWQgIjxFbmQ+XHRcdE1vdmUgdG8gbGFzdCBjb21taXQiCittc2dzdHIgIjxFbmQ+XHRcdNCa0YrQvCDQv9C+0YHQu9C10LTQvdC+0YLQviDQv9C+0LTQsNCy0LDQvdC1IgorCisjOiBnaXRrOjI5ODUKK21zZ2lkICI8VXA+LCBwLCBrXHRNb3ZlIHVwIG9uZSBjb21taXQiCittc2dzdHIgIjxVcD4sIHAsIGtcdNCV0LTQvdC+INC/0L7QtNCw0LLQsNC90LUg0L3QsNCz0L7RgNC1IgorCisjOiBnaXRrOjI5ODYKK21zZ2lkICI8RG93bj4sIG4sIGpcdE1vdmUgZG93biBvbmUgY29tbWl0IgorbXNnc3RyICI8RG93bj4sIG4sIGpcdNCV0LTQvdC+INC/0L7QtNCw0LLQsNC90LUg0L3QsNC00L7Qu9GDIgorCisjOiBnaXRrOjI5ODcKK21zZ2lkICI8TGVmdD4sIHosIGhcdEdvIGJhY2sgaW4gaGlzdG9yeSBsaXN0IgorbXNnc3RyICI8TGVmdD4sIHosIGhcdNCd0LDQt9Cw0LQg0LIg0LjRgdGC0L7RgNC40Y/RgtCwIgorCisjOiBnaXRrOjI5ODgKK21zZ2lkICI8UmlnaHQ+LCB4LCBsXHRHbyBmb3J3YXJkIGluIGhpc3RvcnkgbGlzdCIKK21zZ3N0ciAiPFJpZ2h0PiwgeCwgbFx00J3QsNC/0YDQtdC0INCyINC40YHRgtC+0YDQuNGP0YLQsCIKKworIzogZ2l0azoyOTg5Cittc2dpZCAiPFBhZ2VVcD5cdE1vdmUgdXAgb25lIHBhZ2UgaW4gY29tbWl0IGxpc3QiCittc2dzdHIgIjxQYWdlVXA+XHTQldC00L3QsCDRgdGC0YDQsNC90LjRhtCwINC90LDQs9C+0YDQtSDQsiDRgdC/0LjRgdGK0LrQsCDRgSDQv9C+0LTQsNCy0LDQvdC40Y/RgtCwIgorCisjOiBnaXRrOjI5OTAKK21zZ2lkICI8UGFnZURvd24+XHRNb3ZlIGRvd24gb25lIHBhZ2UgaW4gY29tbWl0IGxpc3QiCittc2dzdHIgIjxQYWdlRG93bj5cdNCV0LTQvdCwINGB0YLRgNCw0L3QuNGG0LAg0L3QsNC00L7Qu9GDINCyINGB0L/QuNGB0YrQutCwINGBINC/0L7QtNCw0LLQsNC90LjRj9GC0LAiCisKKyM6IGdpdGs6Mjk5MQorIywgdGNsLWZvcm1hdAorbXNnaWQgIjwlcy1Ib21lPlx0U2Nyb2xsIHRvIHRvcCBvZiBjb21taXQgbGlzdCIKK21zZ3N0ciAiPCVzLUhvbWU+XHTQmtGK0Lwg0L3QsNGH0LDQu9C+0YLQviDQvdCwINGB0L/QuNGB0YrQutCwINGBINC/0L7QtNCw0LLQsNC90LjRj9GC0LAiCisKKyM6IGdpdGs6Mjk5MgorIywgdGNsLWZvcm1hdAorbXNnaWQgIjwlcy1FbmQ+XHRTY3JvbGwgdG8gYm90dG9tIG9mIGNvbW1pdCBsaXN0IgorbXNnc3RyICI8JXMtRW5kPlx00JrRitC8INC60YDQsNGPINC90LAg0YHQv9C40YHRitC60LAg0YEg0L/QvtC00LDQstCw0L3QuNGP0YLQsCIKKworIzogZ2l0azoyOTkzCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiPCVzLVVwPlx0U2Nyb2xsIGNvbW1pdCBsaXN0IHVwIG9uZSBsaW5lIgorbXNnc3RyICI8JXMtVXA+XHTQn9GA0LjQtNCy0LjQttCy0LDQvdC1INC90LAg0YHQv9C40YHRitC60LAg0YEg0L/QvtC00LDQstCw0L3QuNGPINGBINC10LTQuNC9INGA0LXQtCDQvdCw0LPQvtGA0LUiCisKKyM6IGdpdGs6Mjk5NAorIywgdGNsLWZvcm1hdAorbXNnaWQgIjwlcy1Eb3duPlx0U2Nyb2xsIGNvbW1pdCBsaXN0IGRvd24gb25lIGxpbmUiCittc2dzdHIgIjwlcy1Eb3duPlx00J/RgNC40LTQstC40LbQstCw0L3QtSDQvdCwINGB0L/QuNGB0YrQutCwINGBINC/0L7QtNCw0LLQsNC90LjRjyDRgSDQtdC00LjQvSDRgNC10LQg0L3QsNC00L7Qu9GDIgorCisjOiBnaXRrOjI5OTUKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICI8JXMtUGFnZVVwPlx0U2Nyb2xsIGNvbW1pdCBsaXN0IHVwIG9uZSBwYWdlIgorbXNnc3RyICI8JXMtUGFnZVVwPlx00J/RgNC40LTQstC40LbQstCw0L3QtSDQvdCwINGB0L/QuNGB0YrQutCwINGBINC/0L7QtNCw0LLQsNC90LjRjyDRgSDQtdC00L3QsCDRgdGC0YDQsNC90LjRhtCwINC90LDQs9C+0YDQtSIKKworIzogZ2l0azoyOTk2CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiPCVzLVBhZ2VEb3duPlx0U2Nyb2xsIGNvbW1pdCBsaXN0IGRvd24gb25lIHBhZ2UiCittc2dzdHIgIjwlcy1QYWdlRG93bj5cdNCf0YDQuNC00LLQuNC20LLQsNC90LUg0L3QsCDRgdC/0LjRgdGK0LrQsCDRgSDQv9C+0LTQsNCy0LDQvdC40Y8g0YEg0LXQtNC90LAg0YHRgtGA0LDQvdC40YbQsCDQvdCw0LTQvtC70YMiCisKKyM6IGdpdGs6Mjk5NworbXNnaWQgIjxTaGlmdC1VcD5cdEZpbmQgYmFja3dhcmRzICh1cHdhcmRzLCBsYXRlciBjb21taXRzKSIKK21zZ3N0ciAiPFNoaWZ0LVVwPlx00KLRitGA0YHQtdC90LUg0L3QsNC30LDQtCAo0LLQuNC30YPQsNC70L3QviDQvdCw0LPQvtGA0LUsINC40YHRgtC+0YDQuNGH0LXRgdC60Lgg4oCUINC/0L7RgdC70LXQtNCy0LDRidC4KSIKKworIzogZ2l0azoyOTk4Cittc2dpZCAiPFNoaWZ0LURvd24+XHRGaW5kIGZvcndhcmRzIChkb3dud2FyZHMsIGVhcmxpZXIgY29tbWl0cykiCittc2dzdHIgIjxTaGlmdC1Eb3duPlx00KLRitGA0YHQtdC90LUg0L3QsNC/0YDQtdC0ICjQstC40LfRg9Cw0LvQvdC+INC90LDQtNC+0LvRgywg0LjRgdGC0L7RgNC40YfQtdGB0LrQuCDigJQg0L/RgNC10LTRhdC+0LbQtNCw0YnQuCkiCisKKyM6IGdpdGs6Mjk5OQorbXNnaWQgIjxEZWxldGU+LCBiXHRTY3JvbGwgZGlmZiB2aWV3IHVwIG9uZSBwYWdlIgorbXNnc3RyICI8RGVsZXRlPiwgYlx00J/RgNC40LTQstC40LbQstCw0L3QtSDQvdCwINC40LfQs9C70LXQtNCwINC30LAg0YDQsNC30LvQuNC60Lgg0LXQtNC90LAg0YHRgtGA0LDQvdC40YbQsCDQvdCw0LPQvtGA0LUiCisKKyM6IGdpdGs6MzAwMAorbXNnaWQgIjxCYWNrc3BhY2U+XHRTY3JvbGwgZGlmZiB2aWV3IHVwIG9uZSBwYWdlIgorbXNnc3RyICI8QmFja3NwYWNlPlx00J/RgNC40LTQstC40LbQstCw0L3QtSDQvdCwINC40LfQs9C70LXQtNCwINC30LAg0YDQsNC30LvQuNC60Lgg0LXQtNC90LAg0YHRgtGA0LDQvdC40YbQsCDQvdCw0LPQvtGA0LUiCisKKyM6IGdpdGs6MzAwMQorbXNnaWQgIjxTcGFjZT5cdFx0U2Nyb2xsIGRpZmYgdmlldyBkb3duIG9uZSBwYWdlIgorbXNnc3RyICI8U3BhY2U+XHRcdNCf0YDQuNC00LLQuNC20LLQsNC90LUg0L3QsCDQuNC30LPQu9C10LTQsCDQt9CwINGA0LDQt9C70LjQutC4INC10LTQvdCwINGB0YLRgNCw0L3QuNGG0LAg0L3QsNC00L7Qu9GDIgorCisjOiBnaXRrOjMwMDIKK21zZ2lkICJ1XHRcdFNjcm9sbCBkaWZmIHZpZXcgdXAgMTggbGluZXMiCittc2dzdHIgInVcdFx00J/RgNC40LTQstC40LbQstCw0L3QtSDQvdCwINC40LfQs9C70LXQtNCwINC30LAg0YDQsNC30LvQuNC60LggMTgg0YDQtdC00LAg0L3QsNCz0L7RgNC1IgorCisjOiBnaXRrOjMwMDMKK21zZ2lkICJkXHRcdFNjcm9sbCBkaWZmIHZpZXcgZG93biAxOCBsaW5lcyIKK21zZ3N0ciAiZFx0XHTQn9GA0LjQtNCy0LjQttCy0LDQvdC1INC90LAg0LjQt9Cz0LvQtdC00LAg0LfQsCDRgNCw0LfQu9C40LrQuCAxOCDRgNC10LTQsCDQvdCw0LTQvtC70YMiCisKKyM6IGdpdGs6MzAwNAorIywgdGNsLWZvcm1hdAorbXNnaWQgIjwlcy1GPlx0XHRGaW5kIgorbXNnc3RyICI8JXMtRj5cdFx00KLRitGA0YHQtdC90LUiCisKKyM6IGdpdGs6MzAwNQorIywgdGNsLWZvcm1hdAorbXNnaWQgIjwlcy1HPlx0XHRNb3ZlIHRvIG5leHQgZmluZCBoaXQiCittc2dzdHIgIjwlcy1HPlx0XHTQmtGK0Lwg0YHQu9C10LTQstCw0YnQsNGC0LAg0L/QvtGP0LLQsCIKKworIzogZ2l0azozMDA2Cittc2dpZCAiPFJldHVybj5cdE1vdmUgdG8gbmV4dCBmaW5kIGhpdCIKK21zZ3N0ciAiPFJldHVybj5cdNCa0YrQvCDRgdC70LXQtNCy0LDRidCw0YLQsCDQv9C+0Y/QstCwIgorCisjOiBnaXRrOjMwMDcKK21zZ2lkICIvXHRcdEZvY3VzIHRoZSBzZWFyY2ggYm94IgorbXNnc3RyICIvXHRcdNCk0L7QutGD0YEg0LLRitGA0YXRgyDQv9C+0LvQtdGC0L4g0LfQsCDRgtGK0YDRgdC10L3QtSIKKworIzogZ2l0azozMDA4Cittc2dpZCAiP1x0XHRNb3ZlIHRvIHByZXZpb3VzIGZpbmQgaGl0IgorbXNnc3RyICI/XHRcdNCa0YrQvCDQv9GA0LXQtNC40YjQvdCw0YLQsCDQv9C+0Y/QstCwIgorCisjOiBnaXRrOjMwMDkKK21zZ2lkICJmXHRcdFNjcm9sbCBkaWZmIHZpZXcgdG8gbmV4dCBmaWxlIgorbXNnc3RyICJmXHRcdNCf0YDQuNC00LLQuNC20LLQsNC90LUg0L3QsCDQuNC30LPQu9C10LTQsCDQt9CwINGA0LDQt9C70LjQutC4INC60YrQvCDRgdC70LXQtNCy0LDRidC40Y8g0YDQtdC0IgorCisjOiBnaXRrOjMwMTAKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICI8JXMtUz5cdFx0U2VhcmNoIGZvciBuZXh0IGhpdCBpbiBkaWZmIHZpZXciCittc2dzdHIgIjwlcy1TPlx0XHTQotGK0YDRgdC10L3QtSDQvdCwINGB0LvQtdC00LLQsNGJ0LDRgtCwINC/0L7Rj9Cy0LAg0LIg0LjQt9Cz0LvQtdC00LAg0LfQsCDRgNCw0LfQu9C40LrQuCIKKworIzogZ2l0azozMDExCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiPCVzLVI+XHRcdFNlYXJjaCBmb3IgcHJldmlvdXMgaGl0IGluIGRpZmYgdmlldyIKK21zZ3N0ciAiPCVzLVI+XHRcdNCi0YrRgNGB0LXQvdC1INC90LAg0L/RgNC10LTQuNGI0L3QsNGC0LAg0L/QvtGP0LLQsCDQsiDQuNC30LPQu9C10LTQsCDQt9CwINGA0LDQt9C70LjQutC4IgorCisjOiBnaXRrOjMwMTIKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICI8JXMtS1ArPlx0SW5jcmVhc2UgZm9udCBzaXplIgorbXNnc3RyICI8JXMtS1ArPlx00J/Qvi3Qs9C+0LvRj9C8INGA0LDQt9C80LXRgCDQvdCwINGI0YDQuNGE0YLQsCIKKworIzogZ2l0azozMDEzCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiPCVzLXBsdXM+XHRJbmNyZWFzZSBmb250IHNpemUiCittc2dzdHIgIjwlcy1wbHVzPlx00J/Qvi3Qs9C+0LvRj9C8INGA0LDQt9C80LXRgCDQvdCwINGI0YDQuNGE0YLQsCIKKworIzogZ2l0azozMDE0CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiPCVzLUtQLT5cdERlY3JlYXNlIGZvbnQgc2l6ZSIKK21zZ3N0ciAiPCVzLUtQLT5cdNCf0L4t0LzQsNC70YrQuiDRgNCw0LfQvNC10YAg0L3QsCDRiNGA0LjRhNGC0LAiCisKKyM6IGdpdGs6MzAxNQorIywgdGNsLWZvcm1hdAorbXNnaWQgIjwlcy1taW51cz5cdERlY3JlYXNlIGZvbnQgc2l6ZSIKK21zZ3N0ciAiPCVzLW1pbnVzPlx00J/Qvi3QvNCw0LvRitC6INGA0LDQt9C80LXRgCDQvdCwINGI0YDQuNGE0YLQsCIKKworIzogZ2l0azozMDE2Cittc2dpZCAiPEY1Plx0XHRVcGRhdGUiCittc2dzdHIgIjxGNT5cdFx00J7QsdC90L7QstGP0LLQsNC90LUiCisKKyM6IGdpdGs6MzQ3MSBnaXRrOjM0ODAKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJFcnJvciBjcmVhdGluZyB0ZW1wb3JhcnkgZGlyZWN0b3J5ICVzOiIKK21zZ3N0ciAi0JPRgNC10YjQutCwINC/0YDQuCDRgdGK0LfQtNCw0LLQsNC90LXRgtC+INC90LAg0LLRgNC10LzQtdC90L3QsNGC0LAg0LTQuNGA0LXQutGC0L7RgNC40Y8g4oCeJXPigJw6IgorCisjOiBnaXRrOjM0OTMKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJFcnJvciBnZXR0aW5nIFwiJXNcIiBmcm9tICVzOiIKK21zZ3N0ciAi0JPRgNC10YjQutCwINC/0YDQuCDQv9C+0LvRg9GH0LDQstCw0L3QtdGC0L4g0L3QsCDigJ4lc+KAnCDQvtGCICVzOiIKKworIzogZ2l0azozNTU2Cittc2dpZCAiY29tbWFuZCBmYWlsZWQ6IgorbXNnc3RyICLQvdC10YPRgdC/0LXRiNC90L4g0LjQt9C/0YrQu9C90LXQvdC40LUg0L3QsCDQutC+0LzQsNC90LTQsDoiCisKKyM6IGdpdGs6MzcwNQorbXNnaWQgIk5vIHN1Y2ggY29tbWl0IgorbXNnc3RyICLQotCw0LrQvtCy0LAg0L/QvtC00LDQstCw0L3QtSDQvdGP0LzQsCIKKworIzogZ2l0azozNzE5Cittc2dpZCAiZ2l0IGd1aSBibGFtZTogY29tbWFuZCBmYWlsZWQ6IgorbXNnc3RyICJnaXQgZ3VpIGJsYW1lOiDQvdC10YPRgdC/0LXRiNC90L4g0LjQt9C/0YrQu9C90LXQvdC40LUg0L3QsCDQutC+0LzQsNC90LTQsDoiCisKKyM6IGdpdGs6Mzc1MAorIywgdGNsLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IHJlYWQgbWVyZ2UgaGVhZDogJXMiCittc2dzdHIgItCS0YrRgNGF0YrRgiDQt9CwINGB0LvQuNCy0LDQvdC1INC90LUg0LzQvtC20LUg0LTQsCDQsdGK0LTQtSDQv9GA0L7Rh9C10YLQtdC9OiAlcyIKKworIzogZ2l0azozNzU4CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiRXJyb3IgcmVhZGluZyBpbmRleDogJXMiCittc2dzdHIgItCT0YDQtdGI0LrQsCDQv9GA0Lgg0L/RgNC+0YfQuNGC0LDQvdC1INC90LAg0LjQvdC00LXQutGB0LA6ICVzIgorCisjOiBnaXRrOjM3ODMKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBzdGFydCBnaXQgYmxhbWU6ICVzIgorbXNnc3RyICLQmtC+0LzQsNC90LTQsNGC0LAg4oCeZ2l0IGJsYW1l4oCcINC90LUg0LzQvtC20LUg0LTQsCDQsdGK0LTQtSDRgdGC0LDRgNGC0LjRgNCw0L3QsDogJXMiCisKKyM6IGdpdGs6Mzc4NiBnaXRrOjY2NTIKK21zZ2lkICJTZWFyY2hpbmciCittc2dzdHIgItCi0YrRgNGB0LXQvdC1IgorCisjOiBnaXRrOjM4MTgKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJFcnJvciBydW5uaW5nIGdpdCBibGFtZTogJXMiCittc2dzdHIgItCT0YDQtdGI0LrQsCDQv9GA0Lgg0LjQt9C/0YrQu9C90LXQvdC40LXRgtC+INC90LAg4oCeZ2l0IGJsYW1l4oCcOiAlcyIKKworIzogZ2l0azozODQ2CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiVGhhdCBsaW5lIGNvbWVzIGZyb20gY29tbWl0ICVzLCAgd2hpY2ggaXMgbm90IGluIHRoaXMgdmlldyIKK21zZ3N0ciAi0KLQvtC30Lgg0YDQtdC0INC40LTQstCwINC+0YIg0L/QvtC00LDQstCw0L3QtdGC0L4gJXMsICDQutC+0LXRgtC+INC90LUg0LUg0LIg0LjQt9Cz0LvQtdC00LAiCisKKyM6IGdpdGs6Mzg2MAorbXNnaWQgIkV4dGVybmFsIGRpZmYgdmlld2VyIGZhaWxlZDoiCittc2dzdHIgItCd0LXRg9GB0L/QtdGI0L3QviDQuNC30L/RitC70L3QtdC90LjQtSDQvdCwINCy0YrQvdGI0L3QsNGC0LAg0L/RgNC+0LPRgNCw0LzQsCDQt9CwINGA0LDQt9C70LjQutC4OiIKKworIzogZ2l0azozOTc4Cittc2dpZCAiR2l0ayB2aWV3IGRlZmluaXRpb24iCittc2dzdHIgItCU0LXRhNC40L3QuNGG0LjRjyDQvdCwINC40LfQs9C70LXQtCDQsiBHaXRrIgorCisjOiBnaXRrOjM5ODIKK21zZ2lkICJSZW1lbWJlciB0aGlzIHZpZXciCittc2dzdHIgItCX0LDQv9Cw0LfQstCw0L3QtSDQvdCwINGC0L7Qt9C4INC40LfQs9C70LXQtCIKKworIzogZ2l0azozOTgzCittc2dpZCAiUmVmZXJlbmNlcyAoc3BhY2Ugc2VwYXJhdGVkIGxpc3QpOiIKK21zZ3N0ciAi0KPQutCw0LfQsNGC0LXQu9C4ICjRgdC/0LjRgdGK0Log0YEg0YDQsNC30LTQtdC70LjRgtC10Lsg0LjQvdGC0LXRgNCy0LDQuyk6IgorCisjOiBnaXRrOjM5ODQKK21zZ2lkICJCcmFuY2hlcyAmIHRhZ3M6IgorbXNnc3RyICLQmtC70L7QvdC4INC4INC10YLQuNC60LXRgtC4OiIKKworIzogZ2l0azozOTg1Cittc2dpZCAiQWxsIHJlZnMiCittc2dzdHIgItCS0YHQuNGH0LrQuCDRg9C60LDQt9Cw0YLQtdC70LgiCisKKyM6IGdpdGs6Mzk4NgorbXNnaWQgIkFsbCAobG9jYWwpIGJyYW5jaGVzIgorbXNnc3RyICLQktGB0LjRh9C60LggKNC70L7QutCw0LvQvdC4KSDQutC70L7QvdC4IgorCisjOiBnaXRrOjM5ODcKK21zZ2lkICJBbGwgdGFncyIKK21zZ3N0ciAi0JLRgdC40YfQutC4INC10YLQuNC60LXRgtC4IgorCisjOiBnaXRrOjM5ODgKK21zZ2lkICJBbGwgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIgorbXNnc3RyICLQktGB0LjRh9C60Lgg0YHQu9C10LTRj9GJ0Lgg0LrQu9C+0L3QuCIKKworIzogZ2l0azozOTg5Cittc2dpZCAiQ29tbWl0IEluZm8gKHJlZ3VsYXIgZXhwcmVzc2lvbnMpOiIKK21zZ3N0ciAi0JjQvdGE0L7RgNC80LDRhtC40Y8g0LfQsCDQv9C+0LTQsNCy0LDQvdC1ICjRgNC10LMuINC40LfRgC4pOiIKKworIzogZ2l0azozOTkwCittc2dpZCAiQXV0aG9yOiIKK21zZ3N0ciAi0JDQstGC0L7RgDoiCisKKyM6IGdpdGs6Mzk5MQorbXNnaWQgIkNvbW1pdHRlcjoiCittc2dzdHIgItCf0L7QtNCw0Ls6IgorCisjOiBnaXRrOjM5OTIKK21zZ2lkICJDb21taXQgTWVzc2FnZToiCittc2dzdHIgItCh0YrQvtCx0YnQtdC90LjQtSDQv9GA0Lgg0L/QvtC00LDQstCw0L3QtToiCisKKyM6IGdpdGs6Mzk5MworbXNnaWQgIk1hdGNoZXMgYWxsIENvbW1pdCBJbmZvIGNyaXRlcmlhIgorbXNnc3RyICLQodGK0LLQv9Cw0LTQtdC90LjQtSDQv9C+INC60L7RjyDQtNCwINC1INC40L3RhNC+0YDQvNCw0YbQuNGPINC30LAg0L/QvtC00LDQstCw0L3QtdGC0L4iCisKKyM6IGdpdGs6Mzk5NAorbXNnaWQgIkNoYW5nZXMgdG8gRmlsZXM6IgorbXNnc3RyICLQn9GA0L7QvNC10L3QuCDQv9C+INGE0LDQudC70L7QstC10YLQtToiCisKKyM6IGdpdGs6Mzk5NQorbXNnaWQgIkZpeGVkIFN0cmluZyIKK21zZ3N0ciAi0JTQvtGB0LvQvtCy0LXQvSDQvdC40LciCisKKyM6IGdpdGs6Mzk5NgorbXNnaWQgIlJlZ3VsYXIgRXhwcmVzc2lvbiIKK21zZ3N0ciAi0KDQtdCz0YPQu9GP0YDQtdC9INC40LfRgNCw0LciCisKKyM6IGdpdGs6Mzk5NworbXNnaWQgIlNlYXJjaCBzdHJpbmc6IgorbXNnc3RyICLQndC40Lcg0LfQsCDRgtGK0YDRgdC10L3QtToiCisKKyM6IGdpdGs6Mzk5OAorbXNnaWQgIiIKKyJDb21taXQgRGF0ZXMgKFwiMiB3ZWVrcyBhZ29cIiwgXCIyMDA5LTAzLTE3IDE1OjI3OjM4XCIsIFwiTWFyY2ggMTcsIDIwMDkgIgorIjE1OjI3OjM4XCIpOiIKK21zZ3N0ciAi0JTQsNGC0LAg0L3QsCDQv9C+0LTQsNCy0LDQvdC1ICjigJ4yIHdlZWtzIGFnb+KAnCAo0L/RgNC10LTQuCAyINGB0LXQtNC80LjRhtC4KSwg4oCeMjAwOS0wMy0xNyAxNToyNzozOOKAnCwg4oCeTWFyY2ggMTcsIDIwMDkgMTU6Mjc6MzjigJwpOiIKKworIzogZ2l0azozOTk5Cittc2dpZCAiU2luY2U6IgorbXNnc3RyICLQntGCOiIKKworIzogZ2l0azo0MDAwCittc2dpZCAiVW50aWw6IgorbXNnc3RyICLQlNC+OiIKKworIzogZ2l0azo0MDAxCittc2dpZCAiTGltaXQgYW5kL29yIHNraXAgYSBudW1iZXIgb2YgcmV2aXNpb25zIChwb3NpdGl2ZSBpbnRlZ2VyKToiCittc2dzdHIgItCe0LPRgNCw0L3QuNGH0LDQstCw0L3QtSDQuC/QuNC70Lgg0L/RgNC10YHQutCw0YfQsNC90LUg0L3QsCDQvtC/0YDQtdC00LXQu9C10L0g0LHRgNC+0Lkg0LLQtdGA0YHQuNC4ICjQvdC10L7RgtGA0LjRhtCw0YLQtdC70L3QviDRhtGP0LvQviDRh9C40YHQu9C+KToiCisKKyM6IGdpdGs6NDAwMgorbXNnaWQgIk51bWJlciB0byBzaG93OiIKK21zZ3N0ciAi0JHRgNC+0Lkg0L/QvtC60LDQt9Cw0L3QuDoiCisKKyM6IGdpdGs6NDAwMworbXNnaWQgIk51bWJlciB0byBza2lwOiIKK21zZ3N0ciAi0JHRgNC+0Lkg0L/RgNC10YHQutC+0YfQtdC90Lg6IgorCisjOiBnaXRrOjQwMDQKK21zZ2lkICJNaXNjZWxsYW5lb3VzIG9wdGlvbnM6IgorbXNnc3RyICLQoNCw0LfQvdC4OiIKKworIzogZ2l0azo0MDA1Cittc2dpZCAiU3RyaWN0bHkgc29ydCBieSBkYXRlIgorbXNnc3RyICLQn9C+0LTRgNC10LbQtNCw0L3QtSDQv9C+INC00LDRgtCwIgorCisjOiBnaXRrOjQwMDYKK21zZ2lkICJNYXJrIGJyYW5jaCBzaWRlcyIKK21zZ3N0ciAi0J7RgtCx0LXQu9GP0LfQstCw0L3QtSDQvdCwINGB0YLRgNCw0L3QuNGC0LUg0L/QviDQutC70L7QvdCwIgorCisjOiBnaXRrOjQwMDcKK21zZ2lkICJMaW1pdCB0byBmaXJzdCBwYXJlbnQiCittc2dzdHIgItCh0LDQvNC+INC/0YrRgNCy0LjRj9GCINGA0L7QtNC40YLQtdC7IgorCisjOiBnaXRrOjQwMDgKK21zZ2lkICJTaW1wbGUgaGlzdG9yeSIKK21zZ3N0ciAi0J7Qv9GA0L7RgdGC0LXQvdCwINC40YHRgtC+0YDQuNGPIgorCisjOiBnaXRrOjQwMDkKK21zZ2lkICJBZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBnaXQgbG9nOiIKK21zZ3N0ciAi0JTQvtC/0YrQu9C90LjRgtC10LvQvdC4INCw0YDQs9GD0LzQtdC90YLQuCDQutGK0Lwg4oCeZ2l0IGxvZ+KAnDoiCisKKyM6IGdpdGs6NDAxMAorbXNnaWQgIkVudGVyIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB0byBpbmNsdWRlLCBvbmUgcGVyIGxpbmU6IgorbXNnc3RyICLQktGK0LLQtdC00LXRgtC1INGE0LDQudC70L7QstC10YLQtSDQuCDQtNC40YDQtdC60YLQvtGA0LjQuNGC0LUg0LfQsCDQstC60LvRjtGH0LLQsNC90LUsINC/0L4g0LXQu9C10LzQtdC90YIg0L3QsCDRgNC10LQiCisKKyM6IGdpdGs6NDAxMQorbXNnaWQgIkNvbW1hbmQgdG8gZ2VuZXJhdGUgbW9yZSBjb21taXRzIHRvIGluY2x1ZGU6IgorbXNnc3RyICLQmtC+0LzQsNC90LTQsCDQt9CwINCz0LXQvdC10YDQuNGA0LDQvdC10YLQviDQvdCwINC00L7Qv9GK0LvQvdC40YLQtdC70L3QuCDQv9C+0LTQsNCy0LDQvdC40Y8sINC60L7QuNGC0L4g0LTQsCDQsdGK0LTQsNGCINCy0LrQu9GO0YfQtdC90Lg6IgorCisjOiBnaXRrOjQxMzUKK21zZ2lkICJHaXRrOiBlZGl0IHZpZXciCittc2dzdHIgIkdpdGs6INGA0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQuNC30LPQu9C10LQiCisKKyM6IGdpdGs6NDE0MworbXNnaWQgIi0tIGNyaXRlcmlhIGZvciBzZWxlY3RpbmcgcmV2aXNpb25zIgorbXNnc3RyICLigJQg0LrRgNC40YLQtdGA0LjQuCDQt9CwINC40LfQsdC+0YAg0L3QsCDQstC10YDRgdC40LgiCisKKyM6IGdpdGs6NDE0OAorbXNnaWQgIlZpZXcgTmFtZSIKK21zZ3N0ciAi0JjQvNC1INC90LAg0LjQt9Cz0LvQtdC0IgorCisjOiBnaXRrOjQyMjMKK21zZ2lkICJBcHBseSAoRjUpIgorbXNnc3RyICLQn9GA0LjQu9Cw0LPQsNC90LUgKEY1KSIKKworIzogZ2l0azo0MjYxCittc2dpZCAiRXJyb3IgaW4gY29tbWl0IHNlbGVjdGlvbiBhcmd1bWVudHM6IgorbXNnc3RyICLQk9GA0LXRiNC60LAg0LIg0LDRgNCz0YPQvNC10L3RgtC40YLQtSDQt9CwINC40LfQsdC+0YAg0L3QsCDQv9C+0LTQsNCy0LDQvdC40Y86IgorCisjOiBnaXRrOjQzMTQgZ2l0azo0MzY2IGdpdGs6NDgyNyBnaXRrOjQ4NDEgZ2l0azo2MTA3IGdpdGs6MTIxODQgZ2l0azoxMjE4NQorbXNnaWQgIk5vbmUiCittc2dzdHIgItCd0Y/QvNCwIgorCisjOiBnaXRrOjQ5MjQgZ2l0azo0OTI5Cittc2dpZCAiRGVzY2VuZGFudCIKK21zZ3N0ciAi0J3QsNGB0LvQtdC00L3QuNC6IgorCisjOiBnaXRrOjQ5MjUKK21zZ2lkICJOb3QgZGVzY2VuZGFudCIKK21zZ3N0ciAi0J3QtSDQtSDQvdCw0YHQu9C10LTQvdC40LoiCisKKyM6IGdpdGs6NDkzMiBnaXRrOjQ5MzcKK21zZ2lkICJBbmNlc3RvciIKK21zZ3N0ciAi0J/RgNC10LTRiNC10YHRgtCy0LXQvdC40LoiCisKKyM6IGdpdGs6NDkzMworbXNnaWQgIk5vdCBhbmNlc3RvciIKK21zZ3N0ciAi0J3QtSDQtSDQv9GA0LXQtNGI0LXRgdGC0LLQtdC90LjQuiIKKworIzogZ2l0azo1MjIzCittc2dpZCAiTG9jYWwgY2hhbmdlcyBjaGVja2VkIGluIHRvIGluZGV4IGJ1dCBub3QgY29tbWl0dGVkIgorbXNnc3RyICLQm9C+0LrQsNC70L3QuCDQv9GA0L7QvNC10L3QuCDQtNC+0LHQsNCy0LXQvdC4INC60YrQvCDQuNC90LTQtdC60YHQsCwg0L3QviDQvdC10L/QvtC00LDQtNC10L3QuCIKKworIzogZ2l0azo1MjU5Cittc2dpZCAiTG9jYWwgdW5jb21taXR0ZWQgY2hhbmdlcywgbm90IGNoZWNrZWQgaW4gdG8gaW5kZXgiCittc2dzdHIgItCb0L7QutCw0LvQvdC4INC/0YDQvtC80LXQvdC4INC40LfQstGK0L0g0LjQvdC00LXQutGB0LAiCisKKyM6IGdpdGs6NzAzMgorbXNnaWQgImFuZCBtYW55IG1vcmUiCittc2dzdHIgItC4INC+0YnQtSDQvNC90L7Qs9C+IgorCisjOiBnaXRrOjcwMzUKK21zZ2lkICJtYW55IgorbXNnc3RyICLQvNC90L7Qs9C+IgorCisjOiBnaXRrOjcyMjIKK21zZ2lkICJUYWdzOiIKK21zZ3N0ciAi0JXRgtC40LrQtdGC0Lg6IgorCisjOiBnaXRrOjcyMzkgZ2l0azo3MjQ1IGdpdGs6ODcwOAorbXNnaWQgIlBhcmVudCIKK21zZ3N0ciAi0KDQvtC00LjRgtC10LsiCisKKyM6IGdpdGs6NzI1MAorbXNnaWQgIkNoaWxkIgorbXNnc3RyICLQlNC10YLQtSIKKworIzogZ2l0azo3MjU5Cittc2dpZCAiQnJhbmNoIgorbXNnc3RyICLQmtC70L7QvSIKKworIzogZ2l0azo3MjYyCittc2dpZCAiRm9sbG93cyIKK21zZ3N0ciAi0KHQu9C10LTQstCwIgorCisjOiBnaXRrOjcyNjUKK21zZ2lkICJQcmVjZWRlcyIKK21zZ3N0ciAi0J/RgNC10LTRiNC10YHRgtCy0LAiCisKKyM6IGdpdGs6Nzg0OQorIywgdGNsLWZvcm1hdAorbXNnaWQgIkVycm9yIGdldHRpbmcgZGlmZnM6ICVzIgorbXNnc3RyICLQk9GA0LXRiNC60LAg0L/RgNC4INC/0L7Qu9GD0YfQsNCy0LDQvdC10YLQviDQvdCwINGA0LDQt9C70LjQutC40YLQtTogJXMiCisKKyM6IGdpdGs6ODUzMworbXNnaWQgIkdvdG86IgorbXNnc3RyICLQmtGK0Lwg0YDQtdC0OiIKKworIzogZ2l0azo4NTU0CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiU2hvcnQgU0hBMSBpZCAlcyBpcyBhbWJpZ3VvdXMiCittc2dzdHIgItCh0YrQutGA0LDRgtC10L3QsNGC0LAgU0hBMSAlcyDQvdC1INC1INC10LTQvdC+0LfQvdCw0YfQvdCwIgorCisjOiBnaXRrOjg1NjEKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJSZXZpc2lvbiAlcyBpcyBub3Qga25vd24iCittc2dzdHIgItCd0LXQv9C+0LfQvdCw0YLQsCDQstC10YDRgdC40Y8gJXMiCisKKyM6IGdpdGs6ODU3MQorIywgdGNsLWZvcm1hdAorbXNnaWQgIlNIQTEgaWQgJXMgaXMgbm90IGtub3duIgorbXNnc3RyICLQndC10L/QvtC30L3QsNGC0LAgU0hBMSAlcyIKKworIzogZ2l0azo4NTczCisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiUmV2aXNpb24gJXMgaXMgbm90IGluIHRoZSBjdXJyZW50IHZpZXciCittc2dzdHIgItCS0LXRgNGB0LjRjyAlcyDQvdC1INC1INCyINGC0LXQutGD0YnQuNGPINC40LfQs9C70LXQtCIKKworIzogZ2l0azo4NzE1IGdpdGs6ODczMAorbXNnaWQgIkRhdGUiCittc2dzdHIgItCU0LDRgtCwIgorCisjOiBnaXRrOjg3MTgKK21zZ2lkICJDaGlsZHJlbiIKK21zZ3N0ciAi0JTQtdGG0LAiCisKKyM6IGdpdGs6ODc4MQorIywgdGNsLWZvcm1hdAorbXNnaWQgIlJlc2V0ICVzIGJyYW5jaCB0byBoZXJlIgorbXNnc3RyICLQl9Cw0L3Rg9C70Y/QstCw0L3QtSDQvdCwINC60LvQvtC90LAg4oCeJXPigJwg0LrRitC8INGC0LXQutGD0YnQvtGC0L4g0L/QvtC00LDQstCw0L3QtSIKKworIzogZ2l0azo4NzgzCittc2dpZCAiRGV0YWNoZWQgaGVhZDogY2FuJ3QgcmVzZXQiCittc2dzdHIgItCd0LXRgdCy0YrRgNC30LDQvSDQstGA0YrRhTog0L3QtdCy0YrQt9C80L7QttC90L4g0LfQsNC90YPQu9GP0LLQsNC90LUiCisKKyM6IGdpdGs6ODg4OCBnaXRrOjg4OTQKK21zZ2lkICJTa2lwcGluZyBtZXJnZSBjb21taXQgIgorbXNnc3RyICLQn9GA0L7Qv9GD0YHQutCw0L3QtSDQvdCwINC/0L7QtNCw0LLQsNC90LXRgtC+INC90LAg0YHQu9C40LLQsNC90LXRgtC+IgorCisjOiBnaXRrOjg5MDMgZ2l0azo4OTA4Cittc2dpZCAiRXJyb3IgZ2V0dGluZyBwYXRjaCBJRCBmb3IgIgorbXNnc3RyICLQk9GA0LXRiNC60LAg0L/RgNC4INC/0L7Qu9GD0YfQsNCy0LDQvdC10YLQviDQvdCwINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0LAg0L3QsCAiCisKKyM6IGdpdGs6ODkwNCBnaXRrOjg5MDkKK21zZ2lkICIgLSBzdG9wcGluZ1xuIgorbXNnc3RyICIg4oCUINGB0L/QuNGA0LDQvdC1XG4iCisKKyM6IGdpdGs6ODkxNCBnaXRrOjg5MTcgZ2l0azo4OTI1IGdpdGs6ODkzOSBnaXRrOjg5NDgKK21zZ2lkICJDb21taXQgIgorbXNnc3RyICLQn9C+0LTQsNCy0LDQvdC1IgorCisjOiBnaXRrOjg5MTgKK21zZ2lkICIiCisiIGlzIHRoZSBzYW1lIHBhdGNoIGFzXG4iCisiICAgICAgICIKK21zZ3N0ciAiIgorIiDQtSDRgdGK0YnQsNGC0LAg0LrRgNGK0L/QutCwINC60LDRgtC+XG4iCisiICAgICAgICIKKworIzogZ2l0azo4OTI2Cittc2dpZCAiIgorIiBkaWZmZXJzIGZyb21cbiIKKyIgICAgICAgIgorbXNnc3RyICIiCisiINGB0LUg0YDQsNC30LvQuNGH0LDQstCwINC+0YJcbiIKKyIgICAgICAgIgorCisjOiBnaXRrOjg5MjgKK21zZ2lkICIiCisiRGlmZiBvZiBjb21taXRzOlxuIgorIlxuIgorbXNnc3RyICLQoNCw0LfQu9C40LrQsCDQvNC10LbQtNGDINC/0L7QtNCw0LLQsNC90LjRj9GC0LA6XG5cbiIKKworIzogZ2l0azo4OTQwIGdpdGs6ODk0OQorIywgdGNsLWZvcm1hdAorbXNnaWQgIiBoYXMgJXMgY2hpbGRyZW4gLSBzdG9wcGluZ1xuIgorbXNnc3RyICIg0LjQvNCwICVzINC00LXRhtCwIOKAlCDRgdC/0LjRgNCw0L3QtVxuIgorCisjOiBnaXRrOjg5NjgKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJFcnJvciB3cml0aW5nIGNvbW1pdCB0byBmaWxlOiAlcyIKK21zZ3N0ciAi0JPRgNC10YjQutCwINC/0YDQuCDQt9Cw0L/QsNC30LLQsNC90LXRgtC+INC90LAg0L/QvtC00LDQstCw0L3QtdGC0L4g0LLRitCyINGE0LDQudC7OiAlcyIKKworIzogZ2l0azo4OTc0CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiRXJyb3IgZGlmZmluZyBjb21taXRzOiAlcyIKK21zZ3N0ciAi0JPRgNC10YjQutCwINC/0YDQuCDQuNC30YfQuNGB0LvRj9Cy0LDQvdC10YLQviDQvdCwINGA0LDQt9C70LjQutC40YLQtSDQvNC10LbQtNGDINC/0L7QtNCw0LLQsNC90LjRj9GC0LA6ICVzIgorCisjOiBnaXRrOjkwMjAKK21zZ2lkICJUb3AiCittc2dzdHIgItCd0LDQuS3Qs9C+0YDQtSIKKworIzogZ2l0azo5MDIxCittc2dpZCAiRnJvbSIKK21zZ3N0ciAi0J7RgiIKKworIzogZ2l0azo5MDI2Cittc2dpZCAiVG8iCittc2dzdHIgItCU0L4iCisKKyM6IGdpdGs6OTA1MAorbXNnaWQgIkdlbmVyYXRlIHBhdGNoIgorbXNnc3RyICLQk9C10L3QtdGA0LjRgNCw0L3QtSDQvdCwINC60YDRitC/0LrQsCIKKworIzogZ2l0azo5MDUyCittc2dpZCAiRnJvbToiCittc2dzdHIgItCe0YI6IgorCisjOiBnaXRrOjkwNjEKK21zZ2lkICJUbzoiCittc2dzdHIgItCU0L46IgorCisjOiBnaXRrOjkwNzAKK21zZ2lkICJSZXZlcnNlIgorbXNnc3RyICLQntCx0YDRitGJ0LDQvdC1IgorCisjOiBnaXRrOjkwNzIgZ2l0azo5MjY4Cittc2dpZCAiT3V0cHV0IGZpbGU6IgorbXNnc3RyICLQl9Cw0L/QsNC30LLQsNC90LUg0LLRitCyINGE0LDQudC70LA6IgorCisjOiBnaXRrOjkwNzgKK21zZ2lkICJHZW5lcmF0ZSIKK21zZ3N0ciAi0JPQtdC90LXRgNC40YDQsNC90LUiCisKKyM6IGdpdGs6OTExNgorbXNnaWQgIkVycm9yIGNyZWF0aW5nIHBhdGNoOiIKK21zZ3N0ciAi0JPRgNC10YjQutCwINC/0YDQuCDRgdGK0LfQtNCw0LLQsNC90LXRgtC+INC90LAg0LrRgNGK0L/QutCwOiIKKworIzogZ2l0azo5MTM5IGdpdGs6OTI1NiBnaXRrOjkzMTMKK21zZ2lkICJJRDoiCittc2dzdHIgItCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAOiIKKworIzogZ2l0azo5MTQ4Cittc2dpZCAiVGFnIG5hbWU6IgorbXNnc3RyICLQmNC80LUg0L3QsCDQtdGC0LjQutC10YI6IgorCisjOiBnaXRrOjkxNTEKK21zZ2lkICJUYWcgbWVzc2FnZSBpcyBvcHRpb25hbCIKK21zZ3N0ciAi0KHRitC+0LHRidC10L3QuNC10YLQviDQt9CwINC10YLQuNC60LXRgiDQtSDQvdC10LfQsNC00YrQu9C20LjRgtC10LvQvdC+IgorCisjOiBnaXRrOjkxNTMKK21zZ2lkICJUYWcgbWVzc2FnZToiCittc2dzdHIgItCh0YrQvtCx0YnQtdC90LjQtSDQt9CwINC10YLQuNC60LXRgjoiCisKKyM6IGdpdGs6OTE1NyBnaXRrOjkzMjIKK21zZ2lkICJDcmVhdGUiCittc2dzdHIgItCh0YrQt9C00LDQstCw0L3QtSIKKworIzogZ2l0azo5MTc1Cittc2dpZCAiTm8gdGFnIG5hbWUgc3BlY2lmaWVkIgorbXNnc3RyICLQm9C40L/RgdCy0LAg0LjQvNC1INC90LAg0LXRgtC40LrQtdGCIgorCisjOiBnaXRrOjkxNzkKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJUYWcgXCIlc1wiIGFscmVhZHkgZXhpc3RzIgorbXNnc3RyICLQldGC0LjQutC10YLRitGCIOKAniVz4oCcINCy0LXRh9C1INGB0YrRidC10YHRgtCy0YPQstCwIgorCisjOiBnaXRrOjkxODkKK21zZ2lkICJFcnJvciBjcmVhdGluZyB0YWc6IgorbXNnc3RyICLQk9GA0LXRiNC60LAg0L/RgNC4INGB0YrQt9C00LDQstCw0L3QtdGC0L4g0L3QsCDQtdGC0LjQutC10YI6IgorCisjOiBnaXRrOjkyNjUKK21zZ2lkICJDb21tYW5kOiIKK21zZ3N0ciAi0JrQvtC80LDQvdC00LA6IgorCisjOiBnaXRrOjkyNzMKK21zZ2lkICJXcml0ZSIKK21zZ3N0ciAiUGRtZHBsZGtlIgorCisjOiBnaXRrOjkyOTEKK21zZ2lkICJFcnJvciB3cml0aW5nIGNvbW1pdDoiCittc2dzdHIgItCT0YDQtdGI0LrQsCDQv9GA0Lgg0LfQsNC/0LDQt9Cy0LDQvdC10YLQviDQvdCwINC/0L7QtNCw0LLQsNC90LXRgtC+OiIKKworIzogZ2l0azo5MzE4Cittc2dpZCAiTmFtZToiCittc2dzdHIgItCY0LzQtToiCisKKyM6IGdpdGs6OTM0MQorbXNnaWQgIlBsZWFzZSBzcGVjaWZ5IGEgbmFtZSBmb3IgdGhlIG5ldyBicmFuY2giCittc2dzdHIgItCj0LrQsNC20LXRgtC1INC40LzQtSDQt9CwINC90L7QstC40Y8g0LrQu9C+0L0iCisKKyM6IGdpdGs6OTM0NgorIywgdGNsLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAnJXMnIGFscmVhZHkgZXhpc3RzLiBPdmVyd3JpdGU/IgorbXNnc3RyICLQmtC70L7QvdGK0YIg4oCeJXPigJwg0LLQtdGH0LUg0YHRitGJ0LXRgdGC0LLRg9Cy0LAuINCU0LAg0LHRitC00LUg0LvQuCDQv9GA0LXQt9Cw0L/QuNGB0LDQvT8iCisKKyM6IGdpdGs6OTQxMworIywgdGNsLWZvcm1hdAorbXNnaWQgIkNvbW1pdCAlcyBpcyBhbHJlYWR5IGluY2x1ZGVkIGluIGJyYW5jaCAlcyAtLSByZWFsbHkgcmUtYXBwbHkgaXQ/IgorbXNnc3RyICLQn9C+0LTQsNCy0LDQvdC10YLQviDigJ4lc+KAnCDQstC10YfQtSDQtSDQstC60LvRjtGH0LXQvdC+INCyINC60LvQvtC90LAg4oCeJXPigJwg4oCUINC00LAg0LHRitC00LUg0LvQuCDQv9GA0LjQu9C+0LbQtdC90L4g0L7RgtC90L7QstC+PyIKKworIzogZ2l0azo5NDE4Cittc2dpZCAiQ2hlcnJ5LXBpY2tpbmciCittc2dzdHIgItCe0YLQsdC40YDQsNC90LUiCisKKyM6IGdpdGs6OTQyNworIywgdGNsLWZvcm1hdAorbXNnaWQgIiIKKyJDaGVycnktcGljayBmYWlsZWQgYmVjYXVzZSBvZiBsb2NhbCBjaGFuZ2VzIHRvIGZpbGUgJyVzJy5cbiIKKyJQbGVhc2UgY29tbWl0LCByZXNldCBvciBzdGFzaCB5b3VyIGNoYW5nZXMgYW5kIHRyeSBhZ2Fpbi4iCittc2dzdHIgIiIKKyLQndC10YPRgdC/0LXRiNC90L4g0L7RgtCx0LjRgNCw0L3QtSwg0LfQsNGJ0L7RgtC+INCy0YrQsiDRhNCw0LnQu9CwIOKAniVz4oCcINC40LzQsCDQu9C+0LrQsNC70L3QuCDQv9GA0L7QvNC10L3QuC5cbiIKKyLQn9C+0LTQsNC50YLQtSwg0LfQsNC90YPQu9C10YLQtSDQuNC70Lgg0LPQuCDRgdC60LDRgtCw0LnRgtC1INC4INC/0YDQvtCx0LLQsNC50YLQtSDQvtGC0L3QvtCy0L4uIgorCisjOiBnaXRrOjk0MzMKK21zZ2lkICIiCisiQ2hlcnJ5LXBpY2sgZmFpbGVkIGJlY2F1c2Ugb2YgbWVyZ2UgY29uZmxpY3QuXG4iCisiRG8geW91IHdpc2ggdG8gcnVuIGdpdCBjaXRvb2wgdG8gcmVzb2x2ZSBpdD8iCittc2dzdHIgIiIKKyLQndC10YPRgdC/0LXRiNC90L4g0L7RgtCx0LjRgNCw0L3QtSDQv9C+0YDQsNC00Lgg0LrQvtC90YTQu9C40LrRgtC4INC/0YDQuCDRgdC70LjQstCw0L3QtS5cbiIKKyLQmNGB0LrQsNGC0LUg0LvQuCDQtNCwINCz0Lgg0LrQvtGA0LjQs9C40YDQsNGC0LUg0YfRgNC10Lcg4oCeZ2l0IGNpdG9vbOKAnD8iCisKKyM6IGdpdGs6OTQ0OSBnaXRrOjk1MDcKK21zZ2lkICJObyBjaGFuZ2VzIGNvbW1pdHRlZCIKK21zZ3N0ciAi0J3QtSDRgdCwINC/0L7QtNCw0LTQtdC90Lgg0L/RgNC+0LzQtdC90LgiCisKKyM6IGdpdGs6OTQ3NgorIywgdGNsLWZvcm1hdAorbXNnaWQgIkNvbW1pdCAlcyBpcyBub3QgaW5jbHVkZWQgaW4gYnJhbmNoICVzIC0tIHJlYWxseSByZXZlcnQgaXQ/IgorbXNnc3RyICLQn9C+0LTQsNCy0LDQvdC10YLQviDigJ4lc+KAnCDQvdC1INC1INCy0LrQu9GO0YfQtdC90L4g0LIg0LrQu9C+0L3QsCDigJ4lc+KAnC4g0JTQsCDQsdGK0LTQtSDQu9C4INC+0YLQvNC10L3QtdC90L4/IgorCisjOiBnaXRrOjk0ODEKK21zZ2lkICJSZXZlcnRpbmciCittc2dzdHIgItCe0YLQvNGP0L3QsCIKKworIzogZ2l0azo5NDg5CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiIgorIlJldmVydCBmYWlsZWQgYmVjYXVzZSBvZiBsb2NhbCBjaGFuZ2VzIHRvIHRoZSBmb2xsb3dpbmcgZmlsZXM6JXMgUGxlYXNlICIKKyJjb21taXQsIHJlc2V0IG9yIHN0YXNoICB5b3VyIGNoYW5nZXMgYW5kIHRyeSBhZ2Fpbi4iCittc2dzdHIgIiIKKyLQndC10YPRgdC/0LXRiNC90LAg0L7RgtC80Y/QvdCwLCDQt9Cw0YnQvtGC0L4g0LLRitCyINGE0LDQudC70LAg4oCeJXPigJwg0LjQvNCwINC70L7QutCw0LvQvdC4INC/0YDQvtC80LXQvdC4LlxuIgorItCf0L7QtNCw0LnRgtC1LCDQt9Cw0L3Rg9C70LXRgtC1INC40LvQuCDQs9C4INGB0LrQsNGC0LDQudGC0LUg0Lgg0L/RgNC+0LHQstCw0LnRgtC1INC+0YLQvdC+0LLQvi48IgorCisjOiBnaXRrOjk0OTMKK21zZ2lkICIiCisiUmV2ZXJ0IGZhaWxlZCBiZWNhdXNlIG9mIG1lcmdlIGNvbmZsaWN0LlxuIgorIiBEbyB5b3Ugd2lzaCB0byBydW4gZ2l0IGNpdG9vbCB0byByZXNvbHZlIGl0PyIKK21zZ3N0ciAiIgorItCd0LXRg9GB0L/QtdGI0L3QviDQvtGC0LzRj9C90LAg0L/QvtGA0LDQtNC4INC60L7QvdGE0LvQuNC60YLQuCDQv9GA0Lgg0YHQu9C40LLQsNC90LUuXG4iCisi0JjRgdC60LDRgtC1INC70Lgg0LTQsCDQs9C4INC60L7RgNC40LPQuNGA0LDRgtC1INGH0YDQtdC3IOKAnmdpdCBjaXRvb2zigJw/IgorCisjOiBnaXRrOjk1MzYKK21zZ2lkICJDb25maXJtIHJlc2V0IgorbXNnc3RyICLQn9C+0YLQstGK0YDQttC00LDQstCw0L3QtSDQvdCwINC30LDQvdGD0LvRj9Cy0LDQvdC10YLQviIKKworIzogZ2l0azo5NTM4CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiUmVzZXQgYnJhbmNoICVzIHRvICVzPyIKK21zZ3N0ciAi0JTQsCDRgdC1INC30LDQvdGD0LvQuCDQu9C4INC60LvQvtC90LAg4oCeJXPigJwg0LrRitC8IOKAniVz4oCcPyIKKworIzogZ2l0azo5NTQwCittc2dpZCAiUmVzZXQgdHlwZToiCittc2dzdHIgItCS0LjQtCDQt9Cw0L3Rg9C70Y/QstCw0L3QtToiCisKKyM6IGdpdGs6OTU0MworbXNnaWQgIlNvZnQ6IExlYXZlIHdvcmtpbmcgdHJlZSBhbmQgaW5kZXggdW50b3VjaGVkIgorbXNnc3RyICLQodC70LDQsdC+OiDRgNCw0LHQvtGC0L3QvtGC0L4g0LTRitGA0LLQviDQuCDQuNC90LTQtdC60YHQsCDQvtGB0YLQsNCy0LDRgiDRgdGK0YnQuNGC0LUiCisKKyM6IGdpdGs6OTU0NgorbXNnaWQgIk1peGVkOiBMZWF2ZSB3b3JraW5nIHRyZWUgdW50b3VjaGVkLCByZXNldCBpbmRleCIKK21zZ3N0ciAi0KHQvNC10YHQtdC90L46INGA0LDQsdC+0YLQvdC+0YLQviDQtNGK0YDQstC+INC+0YHRgtCw0LLQsCDRgdGK0YnQvtGC0L4sINC40L3QtNC10LrRgdGK0YIg0YHQtSDQt9Cw0L3Rg9C70Y/QstCwIgorCisjOiBnaXRrOjk1NDkKK21zZ2lkICIiCisiSGFyZDogUmVzZXQgd29ya2luZyB0cmVlIGFuZCBpbmRleFxuIgorIihkaXNjYXJkIEFMTCBsb2NhbCBjaGFuZ2VzKSIKK21zZ3N0ciAiIgorItCh0LjQu9C90L46INC30LDQvdGD0LvRj9Cy0LDQvdC1INC4INC90LAg0YDQsNCx0L7RgtC90L7RgtC+INC00YrRgNCy0L4sINC4INC90LAg0LjQvdC00LXQutGB0LBcbiIKKyIoKtCS0KHQmNCn0JrQmCog0LvQvtC60LDQu9C90Lgg0L/RgNC+0LzQtdC90Lgg0YnQtSDQsdGK0LTQsNGCINCx0LXQt9Cy0YrQt9Cy0YDQsNGC0L3QviDQt9Cw0LPRg9Cx0LXQvdC4KSIKKworIzogZ2l0azo5NTY2Cittc2dpZCAiUmVzZXR0aW5nIgorbXNnc3RyICLQl9Cw0L3Rg9C70Y/QstCw0L3QtSIKKworIzogZ2l0azo5NjI2Cittc2dpZCAiQ2hlY2tpbmcgb3V0IgorbXNnc3RyICLQmNC30YLQtdCz0LvRj9C90LUiCisKKyM6IGdpdGs6OTY3OQorbXNnaWQgIkNhbm5vdCBkZWxldGUgdGhlIGN1cnJlbnRseSBjaGVja2VkLW91dCBicmFuY2giCittc2dzdHIgItCi0LXQutGD0YnQviDQuNC30YLQtdCz0LvQtdC90LjRj9GCINC60LvQvtC9INC90LUg0LzQvtC20LUg0LTQsCDQsdGK0LTQtSDQuNC30YLRgNC40YIiCisKKyM6IGdpdGs6OTY4NQorIywgdGNsLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgY29tbWl0cyBvbiBicmFuY2ggJXMgYXJlbid0IG9uIGFueSBvdGhlciBicmFuY2guXG4iCisiUmVhbGx5IGRlbGV0ZSBicmFuY2ggJXM/IgorbXNnc3RyICIiCisi0J/QvtC00LDQstCw0L3QuNGP0YLQsCDQvdCwINC60LvQvtC90LAg4oCeJXPigJwg0L3QtSDRgdCwINC90LAg0L3QuNC60L7QuSDQtNGA0YPQsyDQutC70L7QvS5cbiIKKyLQndCw0LjRgdGC0LjQvdCwINC70Lgg0LTQsCDRgdC1INC40LfRgtGA0LjQtSDQutC70L7QvdCwIOKAniVz4oCcPyIKKworIzogZ2l0azo5NzE2CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiVGFncyBhbmQgaGVhZHM6ICVzIgorbXNnc3RyICLQldGC0LjQutC10YLQuCDQuCDQstGK0YDRhdC+0LLQtTogJXMiCisKKyM6IGdpdGs6OTczMQorbXNnaWQgIkZpbHRlciIKK21zZ3N0ciAi0KTQuNC70YLRgNC40YDQsNC90LUiCisKKyM6IGdpdGs6MTAwMjcKK21zZ2lkICIiCisiRXJyb3IgcmVhZGluZyBjb21taXQgdG9wb2xvZ3kgaW5mb3JtYXRpb247IGJyYW5jaCBhbmQgcHJlY2VkaW5nL2ZvbGxvd2luZyAiCisidGFnIGluZm9ybWF0aW9uIHdpbGwgYmUgaW5jb21wbGV0ZS4iCittc2dzdHIgItCT0YDQtdGI0LrQsCDQv9GA0Lgg0L/RgNC+0YfQuNGC0LDQvdC10YLQviDQvdCwINGC0L7Qv9C+0LvQvtCz0LjRj9GC0LAg0L3QsCDQv9C+0LTQsNCy0LDQvdC40Y/RgtCwLiDQmNC90YTQvtGA0LzQsNGG0LjRj9GC0LAg0LfQsCDQutC70L7QvdCwINC4INC/0YDQtdC00YjQtdGB0YLQstCw0YnQuNGC0LUv0YHQu9C10LTQstCw0YnQuNGC0LUg0LXRgtC40LrQtdGC0Lgg0YnQtSDQtSDQvdC10L/RitC70L3QsC4iCisKKyM6IGdpdGs6MTEwMDQKK21zZ2lkICJUYWciCittc2dzdHIgItCV0YLQuNC60LXRgiIKKworIzogZ2l0azoxMTAwOAorbXNnaWQgIklkIgorbXNnc3RyICLQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCIKKworIzogZ2l0azoxMTA5MQorbXNnaWQgIkdpdGsgZm9udCBjaG9vc2VyIgorbXNnc3RyICLQmNC30LHQvtGAINC90LAg0YjRgNC40YTRgiDQt9CwIEdpdGsiCisKKyM6IGdpdGs6MTExMDgKK21zZ2lkICJCIgorbXNnc3RyICLQpyIKKworIzogZ2l0azoxMTExMQorbXNnaWQgIkkiCittc2dzdHIgItCaIgorCisjOiBnaXRrOjExMjI5Cittc2dpZCAiQ29tbWl0IGxpc3QgZGlzcGxheSBvcHRpb25zIgorbXNnc3RyICLQndCw0YHRgtGA0L7QudC60Lgg0L3QsCDRgdC/0LjRgdGK0LrQsCDRgSDQv9C+0LTQsNCy0LDQvdC40Y8iCisKKyM6IGdpdGs6MTEyMzIKK21zZ2lkICJNYXhpbXVtIGdyYXBoIHdpZHRoIChsaW5lcykiCittc2dzdHIgItCc0LDQutGB0LjQvNCw0LvQvdCwINGI0LjRgNC+0YfQuNC90LAg0L3QsCDQs9GA0LDRhNCwICjQsiDRgNC10LTQvtCy0LUpIgorCisjOiBnaXRrOjExMjM1CisjLCB0Y2wtZm9ybWF0Cittc2dpZCAiTWF4aW11bSBncmFwaCB3aWR0aCAoJSBvZiBwYW5lKSIKK21zZ3N0ciAi0JzQsNC60YHQuNC80LDQu9C90LAg0YjQuNGA0L7Rh9C40L3QsCDQvdCwINCz0YDQsNGE0LAgKCUg0L7RgiDQv9Cw0L3QtdC70LApIgorCisjOiBnaXRrOjExMjM4Cittc2dpZCAiU2hvdyBsb2NhbCBjaGFuZ2VzIgorbXNnc3RyICLQn9C+0LrQsNC30LLQsNC90LUg0L3QsCDQu9C+0LrQsNC70L3QuNGC0LUg0L/RgNC+0LzQtdC90LgiCisKKyM6IGdpdGs6MTEyNDEKK21zZ2lkICJBdXRvLXNlbGVjdCBTSEExIChsZW5ndGgpIgorbXNnc3RyICLQkNCy0YLQvtC80LDRgtC40YfQvdC+INC40LfQsdC40YDQsNC90LUg0L3QsCBTSEExICjQtNGK0LvQttC40L3QsCkiCisKKyM6IGdpdGs6MTEyNDUKK21zZ2lkICJIaWRlIHJlbW90ZSByZWZzIgorbXNnc3RyICLQodC60YDQuNCy0LDQvdC1INC90LAg0L7RgtC00LDQu9C10YfQtdC90LjRgtC1INGD0LrQsNC30LDRgtC10LvQuCIKKworIzogZ2l0azoxMTI0OQorbXNnaWQgIkRpZmYgZGlzcGxheSBvcHRpb25zIgorbXNnc3RyICLQndCw0YHRgtGA0L7QudC60Lgg0L3QsCDQv9C+0LrQsNC30LLQsNC90LXRgtC+INC90LAg0YDQsNC30LvQuNC60LjRgtC1IgorCisjOiBnaXRrOjExMjUxCittc2dpZCAiVGFiIHNwYWNpbmciCittc2dzdHIgItCo0LjRgNC+0YfQuNC90LAg0L3QsCDRgtCw0LHRg9C70LDRgtC+0YDQsCIKKworIzogZ2l0azoxMTI1NAorbXNnaWQgIkRpc3BsYXkgbmVhcmJ5IHRhZ3MvaGVhZHMiCittc2dzdHIgItCY0LfQstC10LbQtNCw0L3QtSDQvdCwINCx0LvQuNC30LrQuNGC0LUg0LXRgtC40LrQtdGC0Lgg0Lgg0LLRitGA0YXQvtCy0LUiCisKKyM6IGdpdGs6MTEyNTcKK21zZ2lkICJNYXhpbXVtICMgdGFncy9oZWFkcyB0byBzaG93IgorbXNnc3RyICLQnNCw0LrRgdC40LzQsNC70LXQvSDQsdGA0L7QuSDQtdGC0LjQutC10YLQuC/QstGK0YDRhdC+0LLQtSDQt9CwINC/0L7QutCw0LfQstCw0L3QtSIKKworIzogZ2l0azoxMTI2MAorbXNnaWQgIkxpbWl0IGRpZmZzIHRvIGxpc3RlZCBwYXRocyIKK21zZ3N0ciAi0KDQsNC30LvQuNC60LAg0YHQsNC80L4g0LIg0LjQt9Cx0YDQsNC90LjRgtC1INC/0YrRgtC40YnQsCIKKworIzogZ2l0azoxMTI2MworbXNnaWQgIlN1cHBvcnQgcGVyLWZpbGUgZW5jb2RpbmdzIgorbXNnc3RyICLQn9C+0LTQtNGA0YrQttC60LAg0L3QsCDRgNCw0LfQu9C40YfQvdC4INC60L7QtNC40YDQsNC90LjRjyDQt9CwINCy0YHQtdC60Lgg0YTQsNC50LsiCisKKyM6IGdpdGs6MTEyNjkgZ2l0azoxMTQxNgorbXNnaWQgIkV4dGVybmFsIGRpZmYgdG9vbCIKK21zZ3N0ciAi0JLRitC90YjQtdC9INC40L3RgdGC0YDRg9C80LXQvdGCINC30LAg0YDQsNC30LvQuNC60LgiCisKKyM6IGdpdGs6MTEyNzAKK21zZ2lkICJDaG9vc2UuLi4iCittc2dzdHIgItCY0LfQsdC+0YDigKYiCisKKyM6IGdpdGs6MTEyNzUKK21zZ2lkICJHZW5lcmFsIG9wdGlvbnMiCittc2dzdHIgItCe0LHRidC4INC90LDRgdGC0YDQvtC50LrQuCIKKworIzogZ2l0azoxMTI3OAorbXNnaWQgIlVzZSB0aGVtZWQgd2lkZ2V0cyIKK21zZ3N0ciAi0JjQt9C/0L7Qu9C30LLQsNC90LUg0L3QsCDRgtC10LzQsCDQt9CwINCz0YDQsNGE0LjRh9C90LjRgtC1INC+0LHQtdC60YLQuCIKKworIzogZ2l0azoxMTI4MAorbXNnaWQgIihjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkiCittc2dzdHIgIijQv9GA0L7QvNGP0L3QsNGC0LAg0LjQt9C40YHQutCy0LAg0YDQtdGB0YLQsNGA0YLQuNGA0LDQvdC1INC90LAgR2l0aykiCisKKyM6IGdpdGs6MTEyODIKK21zZ2lkICIoY3VycmVudGx5IHVuYXZhaWxhYmxlKSIKK21zZ3N0ciAiKNCyINC80L7QvNC10L3RgtCwINC90LXQtNC+0YHRgtGK0L/QvdC+KSIKKworIzogZ2l0azoxMTI5MworbXNnaWQgIkNvbG9yczogcHJlc3MgdG8gY2hvb3NlIgorbXNnc3RyICLQptCy0LXRgtC+0LLQtTog0LjQt9Cx0LjRgNCwINGB0LUg0YEg0L3QsNGC0LjRgdC60LDQvdC1IgorCisjOiBnaXRrOjExMjk2Cittc2dpZCAiSW50ZXJmYWNlIgorbXNnc3RyICLQmNC90YLQtdGA0YTQtdC50YEiCisKKyM6IGdpdGs6MTEyOTcKK21zZ2lkICJpbnRlcmZhY2UiCittc2dzdHIgItC40L3RgtC10YDRhNC10LnRgSIKKworIzogZ2l0azoxMTMwMAorbXNnaWQgIkJhY2tncm91bmQiCittc2dzdHIgItCk0L7QvSIKKworIzogZ2l0azoxMTMwMSBnaXRrOjExMzMxCittc2dpZCAiYmFja2dyb3VuZCIKK21zZ3N0ciAi0KTQvtC9IgorCisjOiBnaXRrOjExMzA0Cittc2dpZCAiRm9yZWdyb3VuZCIKK21zZ3N0ciAi0JfQvdCw0YbQuCIKKworIzogZ2l0azoxMTMwNQorbXNnaWQgImZvcmVncm91bmQiCittc2dzdHIgItC30L3QsNGG0LgiCisKKyM6IGdpdGs6MTEzMDgKK21zZ2lkICJEaWZmOiBvbGQgbGluZXMiCittc2dzdHIgItCg0LDQt9C70LjQutCwOiDRgdGC0LDRgNC4INGA0LXQtNC+0LLQtSIKKworIzogZ2l0azoxMTMwOQorbXNnaWQgImRpZmYgb2xkIGxpbmVzIgorbXNnc3RyICLRgNCw0LfQu9C40LrQsCwg0YHRgtCw0YDQuCDRgNC10LTQvtCy0LUiCisKKyM6IGdpdGs6MTEzMTMKK21zZ2lkICJEaWZmOiBuZXcgbGluZXMiCittc2dzdHIgItCg0LDQt9C70LjQutCwOiDQvdC+0LLQuCDRgNC10LTQvtCy0LUiCisKKyM6IGdpdGs6MTEzMTQKK21zZ2lkICJkaWZmIG5ldyBsaW5lcyIKK21zZ3N0ciAi0YDQsNC30LvQuNC60LAsINC90L7QstC4INGA0LXQtNC+0LLQtSIKKworIzogZ2l0azoxMTMxOAorbXNnaWQgIkRpZmY6IGh1bmsgaGVhZGVyIgorbXNnc3RyICLQoNCw0LfQu9C40LrQsDog0L3QsNGH0LDQu9C+INC90LAg0L/QsNGA0YfQtSIKKworIzogZ2l0azoxMTMyMAorbXNnaWQgImRpZmYgaHVuayBoZWFkZXIiCittc2dzdHIgItGA0LDQt9C70LjQutCwLCDQvdCw0YfQsNC70L4g0L3QsCDQv9Cw0YDRh9C1IgorCisjOiBnaXRrOjExMzI0Cittc2dpZCAiTWFya2VkIGxpbmUgYmciCittc2dzdHIgItCk0L7QvSDQvdCwINC+0YLQsdC10LvRj9C30LDQvSDRgNC10LQiCisKKyM6IGdpdGs6MTEzMjYKK21zZ2lkICJtYXJrZWQgbGluZSBiYWNrZ3JvdW5kIgorbXNnc3RyICLQpNC+0L0g0L3QsCDQvtGC0LHQtdC70Y/Qt9Cw0L0g0YDQtdC0IgorCisjOiBnaXRrOjExMzMwCittc2dpZCAiU2VsZWN0IGJnIgorbXNnc3RyICLQmNC30LHQvtGAINC90LAg0YTQvtC9IgorCisjOiBnaXRrOjExMzM5Cittc2dpZCAiRm9udHM6IHByZXNzIHRvIGNob29zZSIKK21zZ3N0ciAi0KjRgNC40YTRgtC+0LLQtTog0LjQt9Cx0LjRgNCwINGB0LUg0YEg0L3QsNGC0LjRgdC60LDQvdC1IgorCisjOiBnaXRrOjExMzQxCittc2dpZCAiTWFpbiBmb250IgorbXNnc3RyICLQntGB0L3QvtCy0LXQvSDRiNGA0LjRhNGCIgorCisjOiBnaXRrOjExMzQyCittc2dpZCAiRGlmZiBkaXNwbGF5IGZvbnQiCittc2dzdHIgItCo0YDQuNGE0YIg0LfQsCDRgNCw0LfQu9C40LrQuNGC0LUiCisKKyM6IGdpdGs6MTEzNDMKK21zZ2lkICJVc2VyIGludGVyZmFjZSBmb250IgorbXNnc3RyICLQqNGA0LjRhNGCINC90LAg0LjQvdGC0LXRgNGE0LXQudGB0LAiCisKKyM6IGdpdGs6MTEzNjUKK21zZ2lkICJHaXRrIHByZWZlcmVuY2VzIgorbXNnc3RyICLQndCw0YHRgtGA0L7QudC60Lgg0L3QsCBHaXRrIgorCisjOiBnaXRrOjExMzc0Cittc2dpZCAiR2VuZXJhbCIKK21zZ3N0ciAi0J7QsdGJ0LgiCisKKyM6IGdpdGs6MTEzNzUKK21zZ2lkICJDb2xvcnMiCittc2dzdHIgItCm0LLQtdGC0L7QstC1IgorCisjOiBnaXRrOjExMzc2Cittc2dpZCAiRm9udHMiCittc2dzdHIgItCo0YDQuNGE0YLQvtCy0LUiCisKKyM6IGdpdGs6MTE0MjYKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJHaXRrOiBjaG9vc2UgY29sb3IgZm9yICVzIgorbXNnc3RyICJHaXRrOiDQuNC30LHQvtGAINC90LAg0YbQstGP0YIg0L3QsCAlcyIKKworIzogZ2l0azoxMjA4MAorbXNnaWQgIkNhbm5vdCBmaW5kIGEgZ2l0IHJlcG9zaXRvcnkgaGVyZS4iCittc2dzdHIgItCi0YPQuiDQu9C40L/RgdCy0LAg0YXRgNCw0L3QuNC70LjRidC1INC90LAgR2l0LiIKKworIzogZ2l0azoxMjEyNworIywgdGNsLWZvcm1hdAorbXNnaWQgIkFtYmlndW91cyBhcmd1bWVudCAnJXMnOiBib3RoIHJldmlzaW9uIGFuZCBmaWxlbmFtZSIKK21zZ3N0ciAi0J3QtdC10LTQvdC+0LfQvdCw0YfQtdC9INCw0YDQs9GD0LzQtdC90YIg4oCeJXPigJw6INC40LzQsCDQuCDRgtCw0LrQsNCy0LAg0LLQtdGA0YHQuNGPLCDQuCDRgtCw0LrRitCyINGE0LDQudC7IgorCisjOiBnaXRrOjEyMTM5Cittc2dpZCAiQmFkIGFyZ3VtZW50cyB0byBnaXRrOiIKK21zZ3N0ciAi0J3QtdC/0YDQsNCy0LjQu9C90Lgg0LDRgNCz0YPQvNC10L3RgtC4INC90LAgZ2l0azoiCisKKyM6IGdpdGs6MTIyNDIKK21zZ2lkICJDb21tYW5kIGxpbmUiCittc2dzdHIgItCa0L7QvNCw0L3QtNC10L0g0YDQtdC0IgpkaWZmIC0tZ2l0IGEvZ2l0ay1naXQvcG8vcG8ybXNnLnNoIGIvZ2l0ay1naXQvcG8vcG8ybXNnLnNoCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL2dpdHdlYi9naXR3ZWIucGVybCBiL2dpdHdlYi9naXR3ZWIucGVybAppbmRleCBmNDI5Zjc1Li4zYmMwZjBiIDEwMDc1NQotLS0gYS9naXR3ZWIvZ2l0d2ViLnBlcmwKKysrIGIvZ2l0d2ViL2dpdHdlYi5wZXJsCkBAIC01NDgsNiArNTQ4LDIwIEBACiAJCSdzdWInID0+IHN1YiB7IGZlYXR1cmVfYm9vbCgncmVtb3RlX2hlYWRzJywgQF8pIH0sCiAJCSdvdmVycmlkZScgPT4gMCwKIAkJJ2RlZmF1bHQnID0+IFswXX0sCisKKwkjIEVuYWJsZSBzaG93aW5nIGJyYW5jaGVzIHVuZGVyIG90aGVyIHJlZnMgaW4gYWRkaXRpb24gdG8gaGVhZHMKKworCSMgVG8gc2V0IHN5c3RlbSB3aWRlIGV4dHJhIGJyYW5jaCByZWZzIGhhdmUgaW4gJEdJVFdFQl9DT05GSUcKKwkjICRmZWF0dXJleydleHRyYS1icmFuY2gtcmVmcyd9eydkZWZhdWx0J30gPSBbJ2RpcnMnLCAnb2YnLCAnY2hvaWNlJ107CisJIyBUbyBoYXZlIHByb2plY3Qgc3BlY2lmaWMgY29uZmlnIGVuYWJsZSBvdmVycmlkZSBpbiAkR0lUV0VCX0NPTkZJRworCSMgJGZlYXR1cmV7J2V4dHJhLWJyYW5jaC1yZWZzJ317J292ZXJyaWRlJ30gPSAxOworCSMgYW5kIGluIHByb2plY3QgY29uZmlnIGdpdHdlYi5leHRyYWJyYW5jaHJlZnMgPSBkaXJzIG9mIGNob2ljZQorCSMgRXZlcnkgZGlyZWN0b3J5IGlzIHNlcGFyYXRlZCB3aXRoIHdoaXRlc3BhY2UuCisKKwknZXh0cmEtYnJhbmNoLXJlZnMnID0+IHsKKwkJJ3N1YicgPT4gXCZmZWF0dXJlX2V4dHJhX2JyYW5jaF9yZWZzLAorCQknb3ZlcnJpZGUnID0+IDAsCisJCSdkZWZhdWx0JyA9PiBbXX0sCiApOwogCiBzdWIgZ2l0d2ViX2dldF9mZWF0dXJlIHsKQEAgLTYyNiw2ICs2NDAsMjEgQEAKIAlyZXR1cm4gQHZhbCA/IEB2YWwgOiBAXzsKIH0KIAorc3ViIGZlYXR1cmVfZXh0cmFfYnJhbmNoX3JlZnMgeworCW15IChAYnJhbmNoX3JlZnMpID0gQF87CisJbXkgJHZhbHVlcyA9IGdpdF9nZXRfcHJvamVjdF9jb25maWcoJ2V4dHJhYnJhbmNocmVmcycpOworCisJaWYgKCR2YWx1ZXMpIHsKKwkJJHZhbHVlcyA9IGNvbmZpZ190b19tdWx0aSAoJHZhbHVlcyk7CisJCUBicmFuY2hfcmVmcyA9ICgpOworCQlmb3JlYWNoIG15ICR2YWx1ZSAoQHskdmFsdWVzfSkgeworCQkJcHVzaCBAYnJhbmNoX3JlZnMsIHNwbGl0IC9ccysvLCAkdmFsdWU7CisJCX0KKwl9CisKKwlyZXR1cm4gQGJyYW5jaF9yZWZzOworfQorCiAjIGNoZWNraW5nIEhFQUQgZmlsZSB3aXRoIC1lIGlzIGZyYWdpbGUgaWYgdGhlIHJlcG9zaXRvcnkgd2FzCiAjIGluaXRpYWxpemVkIGxvbmcgdGltZSBhZ28gKGkuZS4gc3ltbGluayBIRUFEKSBhbmQgd2FzIHBhY2stcmVmJ2VkCiAjIGFuZCB0aGVuIHBydW5lZC4KQEAgLTY1Niw2ICs2ODUsMTggQEAKIAkJISRrbm93bl9zbmFwc2hvdF9mb3JtYXRzeyRffXsnZGlzYWJsZWQnfX0gQGZtdHM7CiB9CiAKK3N1YiBmaWx0ZXJfYW5kX3ZhbGlkYXRlX3JlZnMgeworCW15IEByZWZzID0gQF87CisJbXkgJXVuaXF1ZV9yZWZzID0gKCk7CisKKwlmb3JlYWNoIG15ICRyZWYgKEByZWZzKSB7CisJCWRpZV9lcnJvcig1MDAsICJJbnZhbGlkIHJlZiAnJHJlZicgaW4gJ2V4dHJhLWJyYW5jaC1yZWZzJyBmZWF0dXJlIikgdW5sZXNzIChpc192YWxpZF9yZWZfZm9ybWF0KCRyZWYpKTsKKwkJIyAnaGVhZHMnIGFyZSBhZGRlZCBpbXBsaWNpdGx5IGluIGdldF9icmFuY2hfcmVmcygpLgorCQkkdW5pcXVlX3JlZnN7JHJlZn0gPSAxIGlmICgkcmVmIG5lICdoZWFkcycpOworCX0KKwlyZXR1cm4gc29ydCBrZXlzICV1bmlxdWVfcmVmczsKK30KKwogIyBJZiBpdCBpcyBzZXQgdG8gY29kZSByZWZlcmVuY2UsIGl0IGlzIGNvZGUgdGhhdCBpdCBpcyB0byBiZSBydW4gb25jZSBwZXIKICMgcmVxdWVzdCwgYWxsb3dpbmcgdXBkYXRpbmcgY29uZmlndXJhdGlvbnMgdGhhdCBjaGFuZ2Ugd2l0aCBlYWNoIHJlcXVlc3QsCiAjIHdoaWxlIHJ1bm5pbmcgb3RoZXIgY29kZSBpbiBjb25maWcgZmlsZSBvbmx5IG9uY2UuCkBAIC05OTQsNyArMTAzNSw3IEBACiBzdWIgZXZhbHVhdGVfYW5kX3ZhbGlkYXRlX3BhcmFtcyB7CiAJb3VyICRhY3Rpb24gPSAkaW5wdXRfcGFyYW1zeydhY3Rpb24nfTsKIAlpZiAoZGVmaW5lZCAkYWN0aW9uKSB7Ci0JCWlmICghdmFsaWRhdGVfYWN0aW9uKCRhY3Rpb24pKSB7CisJCWlmICghaXNfdmFsaWRfYWN0aW9uKCRhY3Rpb24pKSB7CiAJCQlkaWVfZXJyb3IoNDAwLCAiSW52YWxpZCBhY3Rpb24gcGFyYW1ldGVyIik7CiAJCX0KIAl9CkBAIC0xMDAyLDcgKzEwNDMsNyBAQAogCSMgcGFyYW1ldGVycyB3aGljaCBhcmUgcGF0aG5hbWVzCiAJb3VyICRwcm9qZWN0ID0gJGlucHV0X3BhcmFtc3sncHJvamVjdCd9OwogCWlmIChkZWZpbmVkICRwcm9qZWN0KSB7Ci0JCWlmICghdmFsaWRhdGVfcHJvamVjdCgkcHJvamVjdCkpIHsKKwkJaWYgKCFpc192YWxpZF9wcm9qZWN0KCRwcm9qZWN0KSkgewogCQkJdW5kZWYgJHByb2plY3Q7CiAJCQlkaWVfZXJyb3IoNDA0LCAiTm8gc3VjaCBwcm9qZWN0Iik7CiAJCX0KQEAgLTEwMTAsMjEgKzEwNTEsMjEgQEAKIAogCW91ciAkcHJvamVjdF9maWx0ZXIgPSAkaW5wdXRfcGFyYW1zeydwcm9qZWN0X2ZpbHRlcid9OwogCWlmIChkZWZpbmVkICRwcm9qZWN0X2ZpbHRlcikgewotCQlpZiAoIXZhbGlkYXRlX3BhdGhuYW1lKCRwcm9qZWN0X2ZpbHRlcikpIHsKKwkJaWYgKCFpc192YWxpZF9wYXRobmFtZSgkcHJvamVjdF9maWx0ZXIpKSB7CiAJCQlkaWVfZXJyb3IoNDA0LCAiSW52YWxpZCBwcm9qZWN0X2ZpbHRlciBwYXJhbWV0ZXIiKTsKIAkJfQogCX0KIAogCW91ciAkZmlsZV9uYW1lID0gJGlucHV0X3BhcmFtc3snZmlsZV9uYW1lJ307CiAJaWYgKGRlZmluZWQgJGZpbGVfbmFtZSkgewotCQlpZiAoIXZhbGlkYXRlX3BhdGhuYW1lKCRmaWxlX25hbWUpKSB7CisJCWlmICghaXNfdmFsaWRfcGF0aG5hbWUoJGZpbGVfbmFtZSkpIHsKIAkJCWRpZV9lcnJvcig0MDAsICJJbnZhbGlkIGZpbGUgcGFyYW1ldGVyIik7CiAJCX0KIAl9CiAKIAlvdXIgJGZpbGVfcGFyZW50ID0gJGlucHV0X3BhcmFtc3snZmlsZV9wYXJlbnQnfTsKIAlpZiAoZGVmaW5lZCAkZmlsZV9wYXJlbnQpIHsKLQkJaWYgKCF2YWxpZGF0ZV9wYXRobmFtZSgkZmlsZV9wYXJlbnQpKSB7CisJCWlmICghaXNfdmFsaWRfcGF0aG5hbWUoJGZpbGVfcGFyZW50KSkgewogCQkJZGllX2Vycm9yKDQwMCwgIkludmFsaWQgZmlsZSBwYXJlbnQgcGFyYW1ldGVyIik7CiAJCX0KIAl9CkBAIC0xMDMyLDIxICsxMDczLDIxIEBACiAJIyBwYXJhbWV0ZXJzIHdoaWNoIGFyZSByZWZuYW1lcwogCW91ciAkaGFzaCA9ICRpbnB1dF9wYXJhbXN7J2hhc2gnfTsKIAlpZiAoZGVmaW5lZCAkaGFzaCkgewotCQlpZiAoIXZhbGlkYXRlX3JlZm5hbWUoJGhhc2gpKSB7CisJCWlmICghaXNfdmFsaWRfcmVmbmFtZSgkaGFzaCkpIHsKIAkJCWRpZV9lcnJvcig0MDAsICJJbnZhbGlkIGhhc2ggcGFyYW1ldGVyIik7CiAJCX0KIAl9CiAKIAlvdXIgJGhhc2hfcGFyZW50ID0gJGlucHV0X3BhcmFtc3snaGFzaF9wYXJlbnQnfTsKIAlpZiAoZGVmaW5lZCAkaGFzaF9wYXJlbnQpIHsKLQkJaWYgKCF2YWxpZGF0ZV9yZWZuYW1lKCRoYXNoX3BhcmVudCkpIHsKKwkJaWYgKCFpc192YWxpZF9yZWZuYW1lKCRoYXNoX3BhcmVudCkpIHsKIAkJCWRpZV9lcnJvcig0MDAsICJJbnZhbGlkIGhhc2ggcGFyZW50IHBhcmFtZXRlciIpOwogCQl9CiAJfQogCiAJb3VyICRoYXNoX2Jhc2UgPSAkaW5wdXRfcGFyYW1zeydoYXNoX2Jhc2UnfTsKIAlpZiAoZGVmaW5lZCAkaGFzaF9iYXNlKSB7Ci0JCWlmICghdmFsaWRhdGVfcmVmbmFtZSgkaGFzaF9iYXNlKSkgeworCQlpZiAoIWlzX3ZhbGlkX3JlZm5hbWUoJGhhc2hfYmFzZSkpIHsKIAkJCWRpZV9lcnJvcig0MDAsICJJbnZhbGlkIGhhc2ggYmFzZSBwYXJhbWV0ZXIiKTsKIAkJfQogCX0KQEAgLTEwNjYsNyArMTEwNyw3IEBACiAKIAlvdXIgJGhhc2hfcGFyZW50X2Jhc2UgPSAkaW5wdXRfcGFyYW1zeydoYXNoX3BhcmVudF9iYXNlJ307CiAJaWYgKGRlZmluZWQgJGhhc2hfcGFyZW50X2Jhc2UpIHsKLQkJaWYgKCF2YWxpZGF0ZV9yZWZuYW1lKCRoYXNoX3BhcmVudF9iYXNlKSkgeworCQlpZiAoIWlzX3ZhbGlkX3JlZm5hbWUoJGhhc2hfcGFyZW50X2Jhc2UpKSB7CiAJCQlkaWVfZXJyb3IoNDAwLCAiSW52YWxpZCBoYXNoIHBhcmVudCBiYXNlIHBhcmFtZXRlciIpOwogCQl9CiAJfQpAQCAtMTExMyw3ICsxMTU0LDcgQEAKIAlvdXIgJGdpdF9kaXIgPSAiJHByb2plY3Ryb290LyRwcm9qZWN0IiBpZiAkcHJvamVjdDsKIH0KIAotb3VyIChAc25hcHNob3RfZm10cywgJGdpdF9hdmF0YXIpOworb3VyIChAc25hcHNob3RfZm10cywgJGdpdF9hdmF0YXIsIEBleHRyYV9icmFuY2hfcmVmcyk7CiBzdWIgY29uZmlndXJlX2dpdHdlYl9mZWF0dXJlcyB7CiAJIyBsaXN0IG9mIHN1cHBvcnRlZCBzbmFwc2hvdCBmb3JtYXRzCiAJb3VyIEBzbmFwc2hvdF9mbXRzID0gZ2l0d2ViX2dldF9mZWF0dXJlKCdzbmFwc2hvdCcpOwpAQCAtMTEzMSw2ICsxMTcyLDEzIEBACiAJfSBlbHNlIHsKIAkJJGdpdF9hdmF0YXIgPSAnJzsKIAl9CisKKwlvdXIgQGV4dHJhX2JyYW5jaF9yZWZzID0gZ2l0d2ViX2dldF9mZWF0dXJlKCdleHRyYS1icmFuY2gtcmVmcycpOworCUBleHRyYV9icmFuY2hfcmVmcyA9IGZpbHRlcl9hbmRfdmFsaWRhdGVfcmVmcyAoQGV4dHJhX2JyYW5jaF9yZWZzKTsKK30KKworc3ViIGdldF9icmFuY2hfcmVmcyB7CisJcmV0dXJuICgnaGVhZHMnLCBAZXh0cmFfYnJhbmNoX3JlZnMpOwogfQogCiAjIGN1c3RvbSBlcnJvciBoYW5kbGVyOiAnZGllIDxtZXNzYWdlPicgaXMgSW50ZXJuYWwgU2VydmVyIEVycm9yCkBAIC0xNDE4LDI3ICsxNDY2LDMwIEBACiAjIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAjIyB2YWxpZGF0aW9uLCBxdW90aW5nL3VucXVvdGluZyBhbmQgZXNjYXBpbmcKIAotc3ViIHZhbGlkYXRlX2FjdGlvbiB7Ci0JbXkgJGlucHV0ID0gc2hpZnQgfHwgcmV0dXJuIHVuZGVmOworc3ViIGlzX3ZhbGlkX2FjdGlvbiB7CisJbXkgJGlucHV0ID0gc2hpZnQ7CiAJcmV0dXJuIHVuZGVmIHVubGVzcyBleGlzdHMgJGFjdGlvbnN7JGlucHV0fTsKLQlyZXR1cm4gJGlucHV0OworCXJldHVybiAxOwogfQogCi1zdWIgdmFsaWRhdGVfcHJvamVjdCB7Ci0JbXkgJGlucHV0ID0gc2hpZnQgfHwgcmV0dXJuIHVuZGVmOwotCWlmICghdmFsaWRhdGVfcGF0aG5hbWUoJGlucHV0KSB8fAorc3ViIGlzX3ZhbGlkX3Byb2plY3QgeworCW15ICRpbnB1dCA9IHNoaWZ0OworCisJcmV0dXJuIHVubGVzcyBkZWZpbmVkICRpbnB1dDsKKwlpZiAoIWlzX3ZhbGlkX3BhdGhuYW1lKCRpbnB1dCkgfHwKIAkJISgtZCAiJHByb2plY3Ryb290LyRpbnB1dCIpIHx8CiAJCSFjaGVja19leHBvcnRfb2soIiRwcm9qZWN0cm9vdC8kaW5wdXQiKSB8fAogCQkoJHN0cmljdF9leHBvcnQgJiYgIXByb2plY3RfaW5fbGlzdCgkaW5wdXQpKSkgewogCQlyZXR1cm4gdW5kZWY7CiAJfSBlbHNlIHsKLQkJcmV0dXJuICRpbnB1dDsKKwkJcmV0dXJuIDE7CiAJfQogfQogCi1zdWIgdmFsaWRhdGVfcGF0aG5hbWUgewotCW15ICRpbnB1dCA9IHNoaWZ0IHx8IHJldHVybiB1bmRlZjsKK3N1YiBpc192YWxpZF9wYXRobmFtZSB7CisJbXkgJGlucHV0ID0gc2hpZnQ7CiAKKwlyZXR1cm4gdW5kZWYgdW5sZXNzIGRlZmluZWQgJGlucHV0OwogCSMgbm8gJy4nIG9yICcuLicgYXMgZWxlbWVudHMgb2YgcGF0aCwgaS5lLiBubyAnLicgbm9yICcuLicKIAkjIGF0IHRoZSBiZWdpbm5pbmcsIGF0IHRoZSBlbmQsIGFuZCBiZXR3ZWVuIHNsYXNoZXMuCiAJIyBhbHNvIHRoaXMgY2F0Y2hlcyBkb3VibGVkIHNsYXNoZXMKQEAgLTE0NDksMjQgKzE1MDAsMzMgQEAKIAlpZiAoJGlucHV0ID1+IG0hXDAhKSB7CiAJCXJldHVybiB1bmRlZjsKIAl9Ci0JcmV0dXJuICRpbnB1dDsKKwlyZXR1cm4gMTsKIH0KIAotc3ViIHZhbGlkYXRlX3JlZm5hbWUgewotCW15ICRpbnB1dCA9IHNoaWZ0IHx8IHJldHVybiB1bmRlZjsKK3N1YiBpc192YWxpZF9yZWZfZm9ybWF0IHsKKwlteSAkaW5wdXQgPSBzaGlmdDsKIAotCSMgdGV4dHVhbCBoYXNoZXMgYXJlIE8uSy4KLQlpZiAoJGlucHV0ID1+IG0vXlswLTlhLWZBLUZdezQwfSQvKSB7Ci0JCXJldHVybiAkaW5wdXQ7Ci0JfQotCSMgaXQgbXVzdCBiZSBjb3JyZWN0IHBhdGhuYW1lCi0JJGlucHV0ID0gdmFsaWRhdGVfcGF0aG5hbWUoJGlucHV0KQotCQlvciByZXR1cm4gdW5kZWY7CisJcmV0dXJuIHVuZGVmIHVubGVzcyBkZWZpbmVkICRpbnB1dDsKIAkjIHJlc3RyaWN0aW9ucyBvbiByZWYgbmFtZSBhY2NvcmRpbmcgdG8gZ2l0LWNoZWNrLXJlZi1mb3JtYXQKIAlpZiAoJGlucHV0ID1+IG0hKC9cLnxcLlwufFtcMDAwLVwwNDBcMTc3IH5eOj8qXFtdfC8kKSEpIHsKIAkJcmV0dXJuIHVuZGVmOwogCX0KLQlyZXR1cm4gJGlucHV0OworCXJldHVybiAxOworfQorCitzdWIgaXNfdmFsaWRfcmVmbmFtZSB7CisJbXkgJGlucHV0ID0gc2hpZnQ7CisKKwlyZXR1cm4gdW5kZWYgdW5sZXNzIGRlZmluZWQgJGlucHV0OworCSMgdGV4dHVhbCBoYXNoZXMgYXJlIE8uSy4KKwlpZiAoJGlucHV0ID1+IG0vXlswLTlhLWZBLUZdezQwfSQvKSB7CisJCXJldHVybiAxOworCX0KKwkjIGl0IG11c3QgYmUgY29ycmVjdCBwYXRobmFtZQorCWlzX3ZhbGlkX3BhdGhuYW1lKCRpbnB1dCkgb3IgcmV0dXJuIHVuZGVmOworCSMgY2hlY2sgZ2l0LWNoZWNrLXJlZi1mb3JtYXQgcmVzdHJpY3Rpb25zCisJaXNfdmFsaWRfcmVmX2Zvcm1hdCgkaW5wdXQpIG9yIHJldHVybiB1bmRlZjsKKwlyZXR1cm4gMTsKIH0KIAogIyBkZWNvZGUgc2VxdWVuY2VzIG9mIG9jdGV0cyBpbiB1dGY4IGludG8gUGVybCdzIGludGVybmFsIGZvcm0sCkBAIC0yNTE1LDYgKzI1NzUsNyBAQAogc3ViIGdldF9mZWVkX2luZm8gewogCW15ICRmb3JtYXQgPSBzaGlmdCB8fCAnQXRvbSc7CiAJbXkgJXJlcyA9IChhY3Rpb24gPT4gbGMoJGZvcm1hdCkpOworCW15ICRtYXRjaGVkX3JlZiA9IDA7CiAKIAkjIGZlZWQgbGlua3MgYXJlIHBvc3NpYmxlIG9ubHkgZm9yIHByb2plY3Qgdmlld3MKIAlyZXR1cm4gdW5sZXNzIChkZWZpbmVkICRwcm9qZWN0KTsKQEAgLTI1MjIsMTIgKzI1ODMsMTcgQEAKIAkjIG9yIGRvbid0IGhhdmUgc3BlY2lmaWMgZmVlZCB5ZXQgKHNvIHRoZXkgc2hvdWxkIHVzZSBnZW5lcmljKQogCXJldHVybiBpZiAoISRhY3Rpb24gfHwgJGFjdGlvbiA9fiAvXig/OnRhZ3N8aGVhZHN8Zm9ya3N8dGFnfHNlYXJjaCkkL3gpOwogCi0JbXkgJGJyYW5jaDsKLQkjIGJyYW5jaGVzIHJlZnMgdXNlcyAncmVmcy9oZWFkcy8nIHByZWZpeCAoZnVsbG5hbWUpIHRvIGRpZmZlcmVudGlhdGUKLQkjIGZyb20gdGFnIGxpbmtzOyB0aGlzIGFsc28gbWFrZXMgcG9zc2libGUgdG8gZGV0ZWN0IGJyYW5jaCBsaW5rcwotCWlmICgoZGVmaW5lZCAkaGFzaF9iYXNlICYmICRoYXNoX2Jhc2UgPX4gbSFecmVmcy9oZWFkcy8oLiopJCEpIHx8Ci0JICAgIChkZWZpbmVkICRoYXNoICAgICAgJiYgJGhhc2ggICAgICA9fiBtIV5yZWZzL2hlYWRzLyguKikkISkpIHsKLQkJJGJyYW5jaCA9ICQxOworCW15ICRicmFuY2ggPSB1bmRlZjsKKwkjIGJyYW5jaGVzIHJlZnMgdXNlcyAncmVmcy8nICsgJGdldF9icmFuY2hfcmVmcygpW3hdICsgJy8nIHByZWZpeAorCSMgKGZ1bGxuYW1lKSB0byBkaWZmZXJlbnRpYXRlIGZyb20gdGFnIGxpbmtzOyB0aGlzIGFsc28gbWFrZXMKKwkjIHBvc3NpYmxlIHRvIGRldGVjdCBicmFuY2ggbGlua3MKKwlmb3IgbXkgJHJlZiAoZ2V0X2JyYW5jaF9yZWZzKCkpIHsKKwkJaWYgKChkZWZpbmVkICRoYXNoX2Jhc2UgJiYgJGhhc2hfYmFzZSA9fiBtIV5yZWZzL1xRJHJlZlxFLyguKikkISkgfHwKKwkJICAgIChkZWZpbmVkICRoYXNoICAgICAgJiYgJGhhc2ggICAgICA9fiBtIV5yZWZzL1xRJHJlZlxFLyguKikkISkpIHsKKwkJCSRicmFuY2ggPSAkMTsKKwkJCSRtYXRjaGVkX3JlZiA9ICRyZWY7CisJCQlsYXN0OworCQl9CiAJfQogCSMgZmluZCBsb2cgdHlwZSBmb3IgZmVlZCBkZXNjcmlwdGlvbiAodGl0bGUpCiAJbXkgJHR5cGUgPSAnbG9nJzsKQEAgLTI1NDAsNyArMjYwNiw3IEBACiAJfQogCiAJJHJlc3stdGl0bGV9ID0gJHR5cGU7Ci0JJHJlc3snaGFzaCd9ID0gKGRlZmluZWQgJGJyYW5jaCA/ICJyZWZzL2hlYWRzLyRicmFuY2giIDogdW5kZWYpOworCSRyZXN7J2hhc2gnfSA9IChkZWZpbmVkICRicmFuY2ggPyAicmVmcy8kbWF0Y2hlZF9yZWYvJGJyYW5jaCIgOiB1bmRlZik7CiAJJHJlc3snZmlsZV9uYW1lJ30gPSAkZmlsZV9uYW1lOwogCiAJcmV0dXJuICVyZXM7CkBAIC0zMTkzLDcgKzMyNTksNyBAQAogCSAgICAgJy0tZm9ybWF0PSUoY29tbWl0dGVyKScsCiAJICAgICAnLS1zb3J0PS1jb21taXR0ZXJkYXRlJywKIAkgICAgICctLWNvdW50PTEnLAotCSAgICAgJ3JlZnMvaGVhZHMnKSBvciByZXR1cm47CisJICAgICBtYXAgeyAicmVmcy8kXyIgfSBnZXRfYnJhbmNoX3JlZnMgKCkpIG9yIHJldHVybjsKIAlteSAkbW9zdF9yZWNlbnQgPSA8JGZkPjsKIAljbG9zZSAkZmQgb3IgcmV0dXJuOwogCWlmIChkZWZpbmVkICRtb3N0X3JlY2VudCAmJgpAQCAtMzY0NCw3ICszNzEwLDcgQEAKIAogc3ViIGdpdF9nZXRfaGVhZHNfbGlzdCB7CiAJbXkgKCRsaW1pdCwgQGNsYXNzZXMpID0gQF87Ci0JQGNsYXNzZXMgPSAoJ2hlYWRzJykgdW5sZXNzIEBjbGFzc2VzOworCUBjbGFzc2VzID0gZ2V0X2JyYW5jaF9yZWZzKCkgdW5sZXNzIEBjbGFzc2VzOwogCW15IEBwYXR0ZXJucyA9IG1hcCB7ICJyZWZzLyRfIiB9IEBjbGFzc2VzOwogCW15IEBoZWFkc2xpc3Q7CiAKQEAgLTM2NjIsOSArMzcyOCwxNiBAQAogCQlteSAoJGNvbW1pdHRlciwgJGVwb2NoLCAkdHopID0KIAkJCSgkY29tbWl0dGVyaW5mbyA9fiAvXiguKikgKFswLTldKykgKC4qKSQvKTsKIAkJJHJlZl9pdGVteydmdWxsbmFtZSd9ICA9ICRuYW1lOwotCQkkbmFtZSA9fiBzIV5yZWZzLyg/OmhlYWR8cmVtb3RlKXMvISE7CisJCW15ICRzdHJpcF9yZWZzID0gam9pbiAnfCcsIG1hcCB7IHF1b3RlbWV0YSB9IGdldF9icmFuY2hfcmVmcygpOworCQkkbmFtZSA9fiBzIV5yZWZzLygkc3RyaXBfcmVmc3xyZW1vdGVzKS8hITsKKwkJJHJlZl9pdGVteyduYW1lJ30gPSAkbmFtZTsKKwkJIyBmb3IgcmVmcyBuZWl0aGVyIGluICdoZWFkcycgbm9yICdyZW1vdGVzJyB3ZSB3YW50IHRvCisJCSMgc2hvdyB0aGVpciByZWYgZGlyCisJCW15ICRyZWZfZGlyID0gKGRlZmluZWQgJDEpID8gJDEgOiAnJzsKKwkJaWYgKCRyZWZfZGlyIG5lICcnIGFuZCAkcmVmX2RpciBuZSAnaGVhZHMnIGFuZCAkcmVmX2RpciBuZSAncmVtb3RlcycpIHsKKwkJICAgICRyZWZfaXRlbXsnbmFtZSd9IC49ICcgKCcgLiAkcmVmX2RpciAuICcpJzsKKwkJfQogCi0JCSRyZWZfaXRlbXsnbmFtZSd9ICA9ICRuYW1lOwogCQkkcmVmX2l0ZW17J2lkJ30gICAgPSAkaGFzaDsKIAkJJHJlZl9pdGVteyd0aXRsZSd9ID0gJHRpdGxlIHx8ICcobm8gY29tbWl0IG1lc3NhZ2UpJzsKIAkJJHJlZl9pdGVteydlcG9jaCd9ID0gJGVwb2NoOwpAQCAtNDAzNSw4ICs0MTA4LDggQEAKIAkgICAgICAkY2dpLT5pbnB1dCh7LW5hbWU9PiJoIiwgLXZhbHVlPT4kc2VhcmNoX2hhc2gsIC10eXBlPT4iaGlkZGVuIn0pIC4gIlxuIiAuCiAJICAgICAgJGNnaS0+cG9wdXBfbWVudSgtbmFtZSA9PiAnc3QnLCAtZGVmYXVsdCA9PiAnY29tbWl0JywKIAkgICAgICAgICAgICAgICAgICAgICAgIC12YWx1ZXMgPT4gWydjb21taXQnLCAnZ3JlcCcsICdhdXRob3InLCAnY29tbWl0dGVyJywgJ3BpY2theGUnXSkgLgotCSAgICAgICRjZ2ktPnN1cCgkY2dpLT5hKHstaHJlZiA9PiBocmVmKGFjdGlvbj0+InNlYXJjaF9oZWxwIil9LCAiPyIpKSAuCi0JICAgICAgIiBzZWFyY2g6XG4iLAorCSAgICAgICIgIiAuICRjZ2ktPmEoey1ocmVmID0+IGhyZWYoYWN0aW9uPT4ic2VhcmNoX2hlbHAiKSwKKwkJCSAgICAgLXRpdGxlID0+ICJzZWFyY2ggaGVscCIgfSwgIj8iKSAuICIgc2VhcmNoOlxuIiwKIAkgICAgICAkY2dpLT50ZXh0ZmllbGQoLW5hbWUgPT4gInMiLCAtdmFsdWUgPT4gJHNlYXJjaHRleHQsIC1vdmVycmlkZSA9PiAxKSAuICJcbiIgLgogCSAgICAgICI8c3BhbiB0aXRsZT1cIkV4dGVuZGVkIHJlZ3VsYXIgZXhwcmVzc2lvblwiPiIgLgogCSAgICAgICRjZ2ktPmNoZWNrYm94KC1uYW1lID0+ICdzcicsIC12YWx1ZSA9PiAxLCAtbGFiZWwgPT4gJ3JlJywKQEAgLTY0NjgsNyArNjU0MSw3IEBACiAJcHJpbnQgIjxkaXYgY2xhc3M9XCJ0aXRsZVwiPiZuYnNwOzwvZGl2PlxuIjsKIAlwcmludCAiPHRhYmxlIGNsYXNzPVwicHJvamVjdHNfbGlzdFwiPlxuIiAuCiAJICAgICAgIjx0ciBpZD1cIm1ldGFkYXRhX2Rlc2NcIj48dGQ+ZGVzY3JpcHRpb248L3RkPjx0ZD4iIC4gZXNjX2h0bWwoJGRlc2NyKSAuICI8L3RkPjwvdHI+XG4iOwotICAgICAgICB1bmxlc3MgKCRvbWl0X293bmVyKSB7CisgICAgICAgIGlmICgkb3duZXIgYW5kIG5vdCAkb21pdF9vd25lcikgewogCSAgICAgICAgcHJpbnQgICI8dHIgaWQ9XCJtZXRhZGF0YV9vd25lclwiPjx0ZD5vd25lcjwvdGQ+PHRkPiIgLiBlc2NfaHRtbCgkb3duZXIpIC4gIjwvdGQ+PC90cj5cbiI7CiAgICAgICAgIH0KIAlpZiAoZGVmaW5lZCAkY2R7J3JmYzI4MjInfSkgewpAQCAtNjYzMSw2ICs2NzA0LDcgQEAKIAkJCSRoYXNoX2Jhc2UsICctLScsICRmaWxlX25hbWUKIAkJCW9yIGRpZV9lcnJvcig1MDAsICJPcGVuIGdpdC1ibGFtZSAtLXBvcmNlbGFpbiBmYWlsZWQiKTsKIAl9CisJYmlubW9kZSAkZmQsICc6dXRmOCc7CiAKIAkjIGluY3JlbWVudGFsIGJsYW1lIGRhdGEgcmV0dXJucyBlYXJseQogCWlmICgkZm9ybWF0IGVxICdkYXRhJykgewpAQCAtNzE1NSw2ICs3MjI5LDE1IEBACiAJZ2l0X2Zvb3Rlcl9odG1sKCk7CiB9CiAKK3N1YiBzYW5pdGl6ZV9mb3JfZmlsZW5hbWUgeworICAgIG15ICRuYW1lID0gc2hpZnQ7CisKKyAgICAkbmFtZSA9fiBzIS8hLSFnOworICAgICRuYW1lID1+IHMvW15bOmFsbnVtOl1fLi1dLy9nOworCisgICAgcmV0dXJuICRuYW1lOworfQorCiBzdWIgc25hcHNob3RfbmFtZSB7CiAJbXkgKCRwcm9qZWN0LCAkaGFzaCkgPSBAXzsKIApAQCAtNzE2Miw5ICs3MjQ1LDcgQEAKIAkjIHBhdGgvdG8vcHJvamVjdC8uZ2l0IC0+IHByb2plY3QKIAlteSAkbmFtZSA9IHRvX3V0ZjgoJHByb2plY3QpOwogCSRuYW1lID1+IHMsKFteL10pLypcLmdpdCQsJDEsOwotCSRuYW1lID0gYmFzZW5hbWUoJG5hbWUpOwotCSMgc2FuaXRpemUgbmFtZQotCSRuYW1lID1+IHMvW1s6Y250cmw6XV0vPy9nOworCSRuYW1lID0gc2FuaXRpemVfZm9yX2ZpbGVuYW1lKGJhc2VuYW1lKCRuYW1lKSk7CiAKIAlteSAkdmVyID0gJGhhc2g7CiAJaWYgKCRoYXNoID1+IC9eWzAtOWEtZkEtRl0rJC8pIHsKQEAgLTcxNzgsMTMgKzcyNTksMjUgQEAKIAkJJHZlciA9ICQxOwogCX0gZWxzZSB7CiAJCSMgYnJhbmNoZXMgYW5kIG90aGVyIG5lZWQgc2hvcnRlbmVkIFNIQS0xIGhhc2gKLQkJaWYgKCRoYXNoID1+IG0hXnJlZnMvKD86aGVhZHN8cmVtb3RlcykvKC4qKSQhKSB7Ci0JCQkkdmVyID0gJDE7CisJCW15ICRzdHJpcF9yZWZzID0gam9pbiAnfCcsIG1hcCB7IHF1b3RlbWV0YSB9IGdldF9icmFuY2hfcmVmcygpOworCQlpZiAoJGhhc2ggPX4gbSFecmVmcy8oJHN0cmlwX3JlZnN8cmVtb3RlcykvKC4qKSQhKSB7CisJCQlteSAkcmVmX2RpciA9IChkZWZpbmVkICQxKSA/ICQxIDogJyc7CisJCQkkdmVyID0gJDI7CisKKwkJCSRyZWZfZGlyID0gc2FuaXRpemVfZm9yX2ZpbGVuYW1lKCRyZWZfZGlyKTsKKwkJCSMgZm9yIHJlZnMgbmVpdGhlciBpbiBoZWFkcyBub3IgcmVtb3RlcyB3ZSB3YW50IHRvCisJCQkjIGFkZCBhIHJlZiBkaXIgdG8gYXJjaGl2ZSBuYW1lCisJCQlpZiAoJHJlZl9kaXIgbmUgJycgYW5kICRyZWZfZGlyIG5lICdoZWFkcycgYW5kICRyZWZfZGlyIG5lICdyZW1vdGVzJykgeworCQkJCSR2ZXIgPSAkcmVmX2RpciAuICctJyAuICR2ZXI7CisJCQl9CiAJCX0KIAkJJHZlciAuPSAnLScgLiBnaXRfZ2V0X3Nob3J0X2hhc2goJHByb2plY3QsICRoYXNoKTsKIAl9CisJIyBzcGVjaWFsIGNhc2Ugb2Ygc2FuaXRpemF0aW9uIGZvciBmaWxlbmFtZSAtIHdlIGNoYW5nZQorCSMgc2xhc2hlcyB0byBkb3RzIGluc3RlYWQgb2YgZGFzaGVzCiAJIyBpbiBjYXNlIG9mIGhpZXJhcmNoaWNhbCBicmFuY2ggbmFtZXMKIAkkdmVyID1+IHMhLyEuIWc7CisJJHZlciA9fiBzL1teWzphbG51bTpdXy4tXS8vZzsKIAogCSMgbmFtZSA9IHByb2plY3QtdmVyc2lvbl9zdHJpbmcKIAkkbmFtZSA9ICIkbmFtZS0kdmVyIjsKZGlmZiAtLWdpdCBhL2dpdHdlYi9zdGF0aWMvZ2l0d2ViLmNzcyBiL2dpdHdlYi9zdGF0aWMvZ2l0d2ViLmNzcwppbmRleCBjYjg2ZDJkLi4zYjRkODMzIDEwMDY0NAotLS0gYS9naXR3ZWIvc3RhdGljL2dpdHdlYi5jc3MKKysrIGIvZ2l0d2ViL3N0YXRpYy9naXR3ZWIuY3NzCkBAIC02OCwxMiArNjgsMTMgQEAKIH0KIAogZGl2LnBhZ2VfZm9vdGVyIHsKLQloZWlnaHQ6IDE3cHg7CisJaGVpZ2h0OiAyMnB4OwogCXBhZGRpbmc6IDRweCA4cHg7CiAJYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDhkMTsKIH0KIAogZGl2LnBhZ2VfZm9vdGVyX3RleHQgeworCWxpbmUtaGVpZ2h0OiAyMnB4OwogCWZsb2F0OiBsZWZ0OwogCWNvbG9yOiAjNTU1NTU1OwogCWZvbnQtc3R5bGU6IGl0YWxpYzsKQEAgLTU0OCw4ICs1NDksNyBAQAogCiBhLnJzc19sb2dvIHsKIAlmbG9hdDogcmlnaHQ7Ci0JcGFkZGluZzogM3B4IDBweDsKLQl3aWR0aDogMzVweDsKKwlwYWRkaW5nOiAzcHggNXB4OwogCWxpbmUtaGVpZ2h0OiAxMHB4OwogCWJvcmRlcjogMXB4IHNvbGlkOwogCWJvcmRlci1jb2xvcjogI2ZjYzdhNSAjN2QzMzAyICMzZTFhMDEgI2ZmOTU0ZTsKZGlmZiAtLWdpdCBhL2dyZXAuYyBiL2dyZXAuYwppbmRleCBiYjU0OGNhLi5jNjY4MDM0IDEwMDY0NAotLS0gYS9ncmVwLmMKKysrIGIvZ3JlcC5jCkBAIC0yLDYgKzIsOCBAQAogI2luY2x1ZGUgImdyZXAuaCIKICNpbmNsdWRlICJ1c2VyZGlmZi5oIgogI2luY2x1ZGUgInhkaWZmLWludGVyZmFjZS5oIgorI2luY2x1ZGUgImRpZmYuaCIKKyNpbmNsdWRlICJkaWZmY29yZS5oIgogCiBzdGF0aWMgaW50IGdyZXBfc291cmNlX2xvYWQoc3RydWN0IGdyZXBfc291cmNlICpncyk7CiBzdGF0aWMgaW50IGdyZXBfc291cmNlX2lzX2JpbmFyeShzdHJ1Y3QgZ3JlcF9zb3VyY2UgKmdzKTsKQEAgLTEzMjIsNiArMTMyNCw1OCBAQAogCWZ3cml0ZShidWYsIHNpemUsIDEsIHN0ZG91dCk7CiB9CiAKK3N0YXRpYyBpbnQgZmlsbF90ZXh0Y29udl9ncmVwKHN0cnVjdCB1c2VyZGlmZl9kcml2ZXIgKmRyaXZlciwKKwkJCSAgICAgIHN0cnVjdCBncmVwX3NvdXJjZSAqZ3MpCit7CisJc3RydWN0IGRpZmZfZmlsZXNwZWMgKmRmOworCWNoYXIgKmJ1ZjsKKwlzaXplX3Qgc2l6ZTsKKworCWlmICghZHJpdmVyIHx8ICFkcml2ZXItPnRleHRjb252KQorCQlyZXR1cm4gZ3JlcF9zb3VyY2VfbG9hZChncyk7CisKKwkvKgorCSAqIFRoZSB0ZXh0Y29udiBpbnRlcmZhY2UgaXMgaW50aW1hdGVseSB0aWVkIHRvIGRpZmZfZmlsZXNwZWNzLCBzbyB3ZQorCSAqIGhhdmUgdG8gcHJldGVuZCB0byBiZSBvbmUuIElmIHdlIGNvdWxkIHVuaWZ5IHRoZSBncmVwX3NvdXJjZQorCSAqIGFuZCBkaWZmX2ZpbGVzcGVjIHN0cnVjdHMsIHRoaXMgbWVzcyBjb3VsZCBqdXN0IGdvIGF3YXkuCisJICovCisJZGYgPSBhbGxvY19maWxlc3BlYyhncy0+cGF0aCk7CisJc3dpdGNoIChncy0+dHlwZSkgeworCWNhc2UgR1JFUF9TT1VSQ0VfU0hBMToKKwkJZmlsbF9maWxlc3BlYyhkZiwgZ3MtPmlkZW50aWZpZXIsIDEsIDAxMDA2NDQpOworCQlicmVhazsKKwljYXNlIEdSRVBfU09VUkNFX0ZJTEU6CisJCWZpbGxfZmlsZXNwZWMoZGYsIG51bGxfc2hhMSwgMCwgMDEwMDY0NCk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRpZSgiQlVHOiBhdHRlbXB0IHRvIHRleHRjb252IHNvbWV0aGluZyB3aXRob3V0IGEgcGF0aD8iKTsKKwl9CisKKwkvKgorCSAqIGZpbGxfdGV4dGNvbnYgaXMgbm90IHJlbW90ZWx5IHRocmVhZC1zYWZlOyBpdCBtYXkgbG9hZCBvYmplY3RzCisJICogYmVoaW5kIHRoZSBzY2VuZXMsIGFuZCBpdCBtb2RpZmllcyB0aGUgZ2xvYmFsIGRpZmYgdGVtcGZpbGUKKwkgKiBzdHJ1Y3R1cmUuCisJICovCisJZ3JlcF9yZWFkX2xvY2soKTsKKwlzaXplID0gZmlsbF90ZXh0Y29udihkcml2ZXIsIGRmLCAmYnVmKTsKKwlncmVwX3JlYWRfdW5sb2NrKCk7CisJZnJlZV9maWxlc3BlYyhkZik7CisKKwkvKgorCSAqIFRoZSBub3JtYWwgZmlsbF90ZXh0Y29udiB1c2FnZSBieSB0aGUgZGlmZiBtYWNoaW5lcnkgd291bGQganVzdCBrZWVwCisJICogdGhlIHRleHRjb252J2QgYnVmIHNlcGFyYXRlIGZyb20gdGhlIGRpZmZfZmlsZXNwZWMuIEJ1dCBtdWNoIG9mIHRoZQorCSAqIGdyZXAgY29kZSBwYXNzZXMgYXJvdW5kIGEgZ3JlcF9zb3VyY2UgYW5kIGFzc3VtZXMgdGhhdCBpdHMgImJ1ZiIKKwkgKiBwb2ludGVyIGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRoaW5nIHdlIGFyZSBzZWFyY2hpbmcuIFNvIGxldCdzCisJICogaW5zdGFsbCBvdXIgdGV4dGNvbnYnZCB2ZXJzaW9uIGludG8gdGhlIGdyZXBfc291cmNlLCB0YWtpbmcgY2FyZSBub3QKKwkgKiB0byBsZWFrIGFueSBleGlzdGluZyBidWZmZXIuCisJICovCisJZ3JlcF9zb3VyY2VfY2xlYXJfZGF0YShncyk7CisJZ3MtPmJ1ZiA9IGJ1ZjsKKwlncy0+c2l6ZSA9IHNpemU7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBncmVwX3NvdXJjZV8xKHN0cnVjdCBncmVwX29wdCAqb3B0LCBzdHJ1Y3QgZ3JlcF9zb3VyY2UgKmdzLCBpbnQgY29sbGVjdF9oaXRzKQogewogCWNoYXIgKmJvbDsKQEAgLTEzMzIsNiArMTM4Niw3IEBACiAJdW5zaWduZWQgY291bnQgPSAwOwogCWludCB0cnlfbG9va2FoZWFkID0gMDsKIAlpbnQgc2hvd19mdW5jdGlvbiA9IDA7CisJc3RydWN0IHVzZXJkaWZmX2RyaXZlciAqdGV4dGNvbnYgPSBOVUxMOwogCWVudW0gZ3JlcF9jb250ZXh0IGN0eCA9IEdSRVBfQ09OVEVYVF9IRUFEOwogCXhkZW1pdGNvbmZfdCB4ZWNmZzsKIApAQCAtMTM1MywxOSArMTQwOCwzNiBAQAogCX0KIAlvcHQtPmxhc3Rfc2hvd24gPSAwOwogCi0Jc3dpdGNoIChvcHQtPmJpbmFyeSkgewotCWNhc2UgR1JFUF9CSU5BUllfREVGQVVMVDoKLQkJaWYgKGdyZXBfc291cmNlX2lzX2JpbmFyeShncykpCi0JCQliaW5hcnlfbWF0Y2hfb25seSA9IDE7Ci0JCWJyZWFrOwotCWNhc2UgR1JFUF9CSU5BUllfTk9NQVRDSDoKLQkJaWYgKGdyZXBfc291cmNlX2lzX2JpbmFyeShncykpCi0JCQlyZXR1cm4gMDsgLyogQXNzdW1lIHVubWF0Y2ggKi8KLQkJYnJlYWs7Ci0JY2FzZSBHUkVQX0JJTkFSWV9URVhUOgotCQlicmVhazsKLQlkZWZhdWx0OgotCQlkaWUoImJ1ZzogdW5rbm93biBiaW5hcnkgaGFuZGxpbmcgbW9kZSIpOworCWlmIChvcHQtPmFsbG93X3RleHRjb252KSB7CisJCWdyZXBfc291cmNlX2xvYWRfZHJpdmVyKGdzKTsKKwkJLyoKKwkJICogV2UgbWlnaHQgc2V0IHVwIHRoZSBzaGFyZWQgdGV4dGNvbnYgY2FjaGUgZGF0YSBoZXJlLCB3aGljaAorCQkgKiBpcyBub3QgdGhyZWFkLXNhZmUuCisJCSAqLworCQlncmVwX2F0dHJfbG9jaygpOworCQl0ZXh0Y29udiA9IHVzZXJkaWZmX2dldF90ZXh0Y29udihncy0+ZHJpdmVyKTsKKwkJZ3JlcF9hdHRyX3VubG9jaygpOworCX0KKworCS8qCisJICogV2Uga25vdyB0aGUgcmVzdWx0IG9mIGEgdGV4dGNvbnYgaXMgdGV4dCwgc28gd2Ugb25seSBoYXZlIHRvIGNhcmUKKwkgKiBhYm91dCBiaW5hcnkgaGFuZGxpbmcgaWYgd2UgYXJlIG5vdCB1c2luZyBpdC4KKwkgKi8KKwlpZiAoIXRleHRjb252KSB7CisJCXN3aXRjaCAob3B0LT5iaW5hcnkpIHsKKwkJY2FzZSBHUkVQX0JJTkFSWV9ERUZBVUxUOgorCQkJaWYgKGdyZXBfc291cmNlX2lzX2JpbmFyeShncykpCisJCQkJYmluYXJ5X21hdGNoX29ubHkgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgR1JFUF9CSU5BUllfTk9NQVRDSDoKKwkJCWlmIChncmVwX3NvdXJjZV9pc19iaW5hcnkoZ3MpKQorCQkJCXJldHVybiAwOyAvKiBBc3N1bWUgdW5tYXRjaCAqLworCQkJYnJlYWs7CisJCWNhc2UgR1JFUF9CSU5BUllfVEVYVDoKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJZGllKCJidWc6IHVua25vd24gYmluYXJ5IGhhbmRsaW5nIG1vZGUiKTsKKwkJfQogCX0KIAogCW1lbXNldCgmeGVjZmcsIDAsIHNpemVvZih4ZWNmZykpOwpAQCAtMTM3Myw3ICsxNDQ1LDcgQEAKIAogCXRyeV9sb29rYWhlYWQgPSBzaG91bGRfbG9va2FoZWFkKG9wdCk7CiAKLQlpZiAoZ3JlcF9zb3VyY2VfbG9hZChncykgPCAwKQorCWlmIChmaWxsX3RleHRjb252X2dyZXAodGV4dGNvbnYsIGdzKSA8IDApCiAJCXJldHVybiAwOwogCiAJYm9sID0gZ3MtPmJ1ZjsKZGlmZiAtLWdpdCBhL2dyZXAuaCBiL2dyZXAuaAppbmRleCBlNGExZGY1Li5lYWFjZWQxIDEwMDY0NAotLS0gYS9ncmVwLmgKKysrIGIvZ3JlcC5oCkBAIC0xMDcsNiArMTA3LDcgQEAKICNkZWZpbmUgR1JFUF9CSU5BUllfTk9NQVRDSAkxCiAjZGVmaW5lIEdSRVBfQklOQVJZX1RFWFQJMgogCWludCBiaW5hcnk7CisJaW50IGFsbG93X3RleHRjb252OwogCWludCBleHRlbmRlZDsKIAlpbnQgdXNlX3JlZmxvZ19maWx0ZXI7CiAJaW50IHBjcmU7CmRpZmYgLS1naXQgYS9oZWxwLmMgYi9oZWxwLmMKaW5kZXggZjA2ODkyNS4uZGY3ZDE2ZCAxMDA2NDQKLS0tIGEvaGVscC5jCisrKyBiL2hlbHAuYwpAQCAtMTQ4LDcgKzE0OCw3IEBACiAJd2hpbGUgKChkZSA9IHJlYWRkaXIoZGlyKSkgIT0gTlVMTCkgewogCQlpbnQgZW50bGVuOwogCi0JCWlmIChwcmVmaXhjbXAoZGUtPmRfbmFtZSwgcHJlZml4KSkKKwkJaWYgKCFzdGFydHNfd2l0aChkZS0+ZF9uYW1lLCBwcmVmaXgpKQogCQkJY29udGludWU7CiAKIAkJc3RyYnVmX3NldGxlbigmYnVmLCBsZW4pOwpAQCAtMjU1LDcgKzI1NSw3IEBACiAJaWYgKCFzdHJjbXAodmFyLCAiaGVscC5hdXRvY29ycmVjdCIpKQogCQlhdXRvY29ycmVjdCA9IGdpdF9jb25maWdfaW50KHZhcix2YWx1ZSk7CiAJLyogQWxzbyB1c2UgYWxpYXNlcyBmb3IgY29tbWFuZCBsb29rdXAgKi8KLQlpZiAoIXByZWZpeGNtcCh2YXIsICJhbGlhcy4iKSkKKwlpZiAoc3RhcnRzX3dpdGgodmFyLCAiYWxpYXMuIikpCiAJCWFkZF9jbWRuYW1lKCZhbGlhc2VzLCB2YXIgKyA2LCBzdHJsZW4odmFyICsgNikpOwogCiAJcmV0dXJuIGdpdF9kZWZhdWx0X2NvbmZpZyh2YXIsIHZhbHVlLCBjYik7CkBAIC0zMjksNyArMzI5LDcgQEAKIAkJaWYgKChuIDwgQVJSQVlfU0laRShjb21tb25fY21kcykpICYmICFjbXApIHsKIAkJCS8qIFllcywgdGhpcyBpcyBvbmUgb2YgdGhlIGNvbW1vbiBjb21tYW5kcyAqLwogCQkJbisrOyAvKiB1c2UgdGhlIGVudHJ5IGZyb20gY29tbW9uX2NtZHNbXSAqLwotCQkJaWYgKCFwcmVmaXhjbXAoY2FuZGlkYXRlLCBjbWQpKSB7CisJCQlpZiAoc3RhcnRzX3dpdGgoY2FuZGlkYXRlLCBjbWQpKSB7CiAJCQkJLyogR2l2ZSBwcmVmaXggbWF0Y2ggYSB2ZXJ5IGdvb2Qgc2NvcmUgKi8KIAkJCQltYWluX2NtZHMubmFtZXNbaV0tPmxlbiA9IDA7CiAJCQkJY29udGludWU7CkBAIC00MTQsNyArNDE0LDcgQEAKIAlzdHJ1Y3Qgc2ltaWxhcl9yZWZfY2IgKmNiID0gKHN0cnVjdCBzaW1pbGFyX3JlZl9jYiAqKShjYl9kYXRhKTsKIAljaGFyICpicmFuY2ggPSBzdHJyY2hyKHJlZm5hbWUsICcvJykgKyAxOwogCS8qIEEgcmVtb3RlIGJyYW5jaCBvZiB0aGUgc2FtZSBuYW1lIGlzIGRlZW1lZCBzaW1pbGFyICovCi0JaWYgKCFwcmVmaXhjbXAocmVmbmFtZSwgInJlZnMvcmVtb3Rlcy8iKSAmJgorCWlmIChzdGFydHNfd2l0aChyZWZuYW1lLCAicmVmcy9yZW1vdGVzLyIpICYmCiAJICAgICFzdHJjbXAoYnJhbmNoLCBjYi0+YmFzZV9yZWYpKQogCQlzdHJpbmdfbGlzdF9hcHBlbmQoY2ItPnNpbWlsYXJfcmVmcywKIAkJCQkgICByZWZuYW1lICsgc3RybGVuKCJyZWZzL3JlbW90ZXMvIikpOwpkaWZmIC0tZ2l0IGEvaHR0cC1iYWNrZW5kLmMgYi9odHRwLWJhY2tlbmQuYwppbmRleCA4YzQ2NGJkLi5kMmMwYTYyIDEwMDY0NAotLS0gYS9odHRwLWJhY2tlbmQuYworKysgYi9odHRwLWJhY2tlbmQuYwpAQCAtMjI2LDcgKzIyNiw3IEBACiAJCXJldHVybiAwOwogCX0KIAotCWlmICghcHJlZml4Y21wKHZhciwgImh0dHAuIikpIHsKKwlpZiAoc3RhcnRzX3dpdGgodmFyLCAiaHR0cC4iKSkgewogCQlpbnQgaTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShycGNfc2VydmljZSk7IGkrKykgewpAQCAtMjQ3LDcgKzI0Nyw3IEBACiAJc3RydWN0IHJwY19zZXJ2aWNlICpzdmMgPSBOVUxMOwogCWludCBpOwogCi0JaWYgKHByZWZpeGNtcChuYW1lLCAiZ2l0LSIpKQorCWlmICghc3RhcnRzX3dpdGgobmFtZSwgImdpdC0iKSkKIAkJZm9yYmlkZGVuKCJVbnN1cHBvcnRlZCBzZXJ2aWNlOiAnJXMnIiwgbmFtZSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShycGNfc2VydmljZSk7IGkrKykgewpkaWZmIC0tZ2l0IGEvaHR0cC1wdXNoLmMgYi9odHRwLXB1c2guYwppbmRleCBiMWU3NGQyLi5kNGI0MGM5IDEwMDY0NAotLS0gYS9odHRwLXB1c2guYworKysgYi9odHRwLXB1c2guYwpAQCAtNzcxLDcgKzc3MSw3IEBACiAJCQlsb2NrLT5vd25lciA9IHhtYWxsb2Moc3RybGVuKGN0eC0+Y2RhdGEpICsgMSk7CiAJCQlzdHJjcHkobG9jay0+b3duZXIsIGN0eC0+Y2RhdGEpOwogCQl9IGVsc2UgaWYgKCFzdHJjbXAoY3R4LT5uYW1lLCBEQVZfQUNUSVZFTE9DS19USU1FT1VUKSkgewotCQkJaWYgKCFwcmVmaXhjbXAoY3R4LT5jZGF0YSwgIlNlY29uZC0iKSkKKwkJCWlmIChzdGFydHNfd2l0aChjdHgtPmNkYXRhLCAiU2Vjb25kLSIpKQogCQkJCWxvY2stPnRpbWVvdXQgPQogCQkJCQlzdHJ0b2woY3R4LT5jZGF0YSArIDcsIE5VTEwsIDEwKTsKIAkJfSBlbHNlIGlmICghc3RyY21wKGN0eC0+bmFtZSwgREFWX0FDVElWRUxPQ0tfVE9LRU4pKSB7CkBAIC0xMzMwLDggKzEzMzAsNyBAQAogCQkJYnJlYWs7CiAJCX0KIAotCWZyZWUodHJlZS0+YnVmZmVyKTsKLQl0cmVlLT5idWZmZXIgPSBOVUxMOworCWZyZWVfdHJlZV9idWZmZXIodHJlZSk7CiAJcmV0dXJuIHA7CiB9CiAKQEAgLTE1ODAsNyArMTU3OSw3IEBACiAJCXJldHVybjsKIAogCS8qIElmIGl0J3MgYSBzeW1yZWYsIHNldCB0aGUgcmVmbmFtZTsgb3RoZXJ3aXNlIHRyeSBmb3IgYSBzaGExICovCi0JaWYgKCFwcmVmaXhjbXAoKGNoYXIgKilidWZmZXIuYnVmLCAicmVmOiAiKSkgeworCWlmIChzdGFydHNfd2l0aCgoY2hhciAqKWJ1ZmZlci5idWYsICJyZWY6ICIpKSB7CiAJCSpzeW1yZWYgPSB4bWVtZHVweigoY2hhciAqKWJ1ZmZlci5idWYgKyA1LCBidWZmZXIubGVuIC0gNik7CiAJfSBlbHNlIHsKIAkJZ2V0X3NoYTFfaGV4KGJ1ZmZlci5idWYsIHNoYTEpOwpkaWZmIC0tZ2l0IGEvaHR0cC5jIGIvaHR0cC5jCmluZGV4IDM0NDc5NDUuLjcwZWFhMjYgMTAwNjQ0Ci0tLSBhL2h0dHAuYworKysgYi9odHRwLmMKQEAgLTMsNiArMyw3IEBACiAjaW5jbHVkZSAic2lkZWJhbmQuaCIKICNpbmNsdWRlICJydW4tY29tbWFuZC5oIgogI2luY2x1ZGUgInVybC5oIgorI2luY2x1ZGUgInVybG1hdGNoLmgiCiAjaW5jbHVkZSAiY3JlZGVudGlhbC5oIgogI2luY2x1ZGUgInZlcnNpb24uaCIKICNpbmNsdWRlICJwa3QtbGluZS5oIgpAQCAtNDUsNiArNDYsNyBAQAogc3RhdGljIGludCBjdXJsX2Z0cF9ub19lcHN2Owogc3RhdGljIGNvbnN0IGNoYXIgKmN1cmxfaHR0cF9wcm94eTsKIHN0YXRpYyBjb25zdCBjaGFyICpjdXJsX2Nvb2tpZV9maWxlOworc3RhdGljIGludCBjdXJsX3NhdmVfY29va2llczsKIHN0cnVjdCBjcmVkZW50aWFsIGh0dHBfYXV0aCA9IENSRURFTlRJQUxfSU5JVDsKIHN0YXRpYyBpbnQgaHR0cF9wcm9hY3RpdmVfYXV0aDsKIHN0YXRpYyBjb25zdCBjaGFyICp1c2VyX2FnZW50OwpAQCAtMTYwLDggKzE2Miw3IEBACiAJaWYgKCFzdHJjbXAoImh0dHAuc3NsY2FpbmZvIiwgdmFyKSkKIAkJcmV0dXJuIGdpdF9jb25maWdfc3RyaW5nKCZzc2xfY2FpbmZvLCB2YXIsIHZhbHVlKTsKIAlpZiAoIXN0cmNtcCgiaHR0cC5zc2xjZXJ0cGFzc3dvcmRwcm90ZWN0ZWQiLCB2YXIpKSB7Ci0JCWlmIChnaXRfY29uZmlnX2Jvb2wodmFyLCB2YWx1ZSkpCi0JCQlzc2xfY2VydF9wYXNzd29yZF9yZXF1aXJlZCA9IDE7CisJCXNzbF9jZXJ0X3Bhc3N3b3JkX3JlcXVpcmVkID0gZ2l0X2NvbmZpZ19ib29sKHZhciwgdmFsdWUpOwogCQlyZXR1cm4gMDsKIAl9CiAJaWYgKCFzdHJjbXAoImh0dHAuc3NsdHJ5IiwgdmFyKSkgewpAQCAtMjAwLDYgKzIwMSwxMCBAQAogCiAJaWYgKCFzdHJjbXAoImh0dHAuY29va2llZmlsZSIsIHZhcikpCiAJCXJldHVybiBnaXRfY29uZmlnX3N0cmluZygmY3VybF9jb29raWVfZmlsZSwgdmFyLCB2YWx1ZSk7CisJaWYgKCFzdHJjbXAoImh0dHAuc2F2ZWNvb2tpZXMiLCB2YXIpKSB7CisJCWN1cmxfc2F2ZV9jb29raWVzID0gZ2l0X2NvbmZpZ19ib29sKHZhciwgdmFsdWUpOworCQlyZXR1cm4gMDsKKwl9CiAKIAlpZiAoIXN0cmNtcCgiaHR0cC5wb3N0YnVmZmVyIiwgdmFyKSkgewogCQlodHRwX3Bvc3RfYnVmZmVyID0gZ2l0X2NvbmZpZ19pbnQodmFyLCB2YWx1ZSk7CkBAIC0yNTUsNiArMjYwLDQyIEBACiAJcmV0dXJuIDE7CiB9CiAKKyNpZiBMSUJDVVJMX1ZFUlNJT05fTlVNID49IDB4MDcxOTAwCitzdGF0aWMgdm9pZCBzZXRfY3VybF9rZWVwYWxpdmUoQ1VSTCAqYykKK3sKKwljdXJsX2Vhc3lfc2V0b3B0KGMsIENVUkxPUFRfVENQX0tFRVBBTElWRSwgMSk7Cit9CisKKyNlbGlmIExJQkNVUkxfVkVSU0lPTl9OVU0gPj0gMHgwNzEwMDAKK3N0YXRpYyBpbnQgc29ja29wdF9jYWxsYmFjayh2b2lkICpjbGllbnQsIGN1cmxfc29ja2V0X3QgZmQsIGN1cmxzb2NrdHlwZSB0eXBlKQoreworCWludCBrYSA9IDE7CisJaW50IHJjOworCXNvY2tsZW5fdCBsZW4gPSAoc29ja2xlbl90KXNpemVvZihrYSk7CisKKwlpZiAodHlwZSAhPSBDVVJMU09DS1RZUEVfSVBDWE4pCisJCXJldHVybiAwOworCisJcmMgPSBzZXRzb2Nrb3B0KGZkLCBTT0xfU09DS0VULCBTT19LRUVQQUxJVkUsICh2b2lkICopJmthLCBsZW4pOworCWlmIChyYyA8IDApCisJCXdhcm5pbmcoInVuYWJsZSB0byBzZXQgU09fS0VFUEFMSVZFIG9uIHNvY2tldCAlcyIsCisJCQlzdHJlcnJvcihlcnJubykpOworCisJcmV0dXJuIDA7IC8qIENVUkxfU09DS09QVF9PSyBvbmx5IGV4aXN0cyBzaW5jZSBjdXJsIDcuMjEuNSAqLworfQorCitzdGF0aWMgdm9pZCBzZXRfY3VybF9rZWVwYWxpdmUoQ1VSTCAqYykKK3sKKwljdXJsX2Vhc3lfc2V0b3B0KGMsIENVUkxPUFRfU09DS09QVEZVTkNUSU9OLCBzb2Nrb3B0X2NhbGxiYWNrKTsKK30KKworI2Vsc2UKK3N0YXRpYyB2b2lkIHNldF9jdXJsX2tlZXBhbGl2ZShDVVJMICpjKQoreworCS8qIG5vdCBzdXBwb3J0ZWQgb24gb2xkZXIgY3VybCB2ZXJzaW9ucyAqLworfQorI2VuZGlmCisKIHN0YXRpYyBDVVJMICpnZXRfY3VybF9oYW5kbGUodm9pZCkKIHsKIAlDVVJMICpyZXN1bHQgPSBjdXJsX2Vhc3lfaW5pdCgpOwpAQCAtMzI3LDYgKzM2OCw4IEBACiAJCWN1cmxfZWFzeV9zZXRvcHQocmVzdWx0LCBDVVJMT1BUX1BST1hZQVVUSCwgQ1VSTEFVVEhfQU5ZKTsKIAl9CiAKKwlzZXRfY3VybF9rZWVwYWxpdmUocmVzdWx0KTsKKwogCXJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTM0MSwxMCArMzg0LDIwIEBACiB7CiAJY2hhciAqbG93X3NwZWVkX2xpbWl0OwogCWNoYXIgKmxvd19zcGVlZF90aW1lOworCWNoYXIgKm5vcm1hbGl6ZWRfdXJsOworCXN0cnVjdCB1cmxtYXRjaF9jb25maWcgY29uZmlnID0geyBTVFJJTkdfTElTVF9JTklUX0RVUCB9OworCisJY29uZmlnLnNlY3Rpb24gPSAiaHR0cCI7CisJY29uZmlnLmtleSA9IE5VTEw7CisJY29uZmlnLmNvbGxlY3RfZm4gPSBodHRwX29wdGlvbnM7CisJY29uZmlnLmNhc2NhZGVfZm4gPSBnaXRfZGVmYXVsdF9jb25maWc7CisJY29uZmlnLmNiID0gTlVMTDsKIAogCWh0dHBfaXNfdmVyYm9zZSA9IDA7CisJbm9ybWFsaXplZF91cmwgPSB1cmxfbm9ybWFsaXplKHVybCwgJmNvbmZpZy51cmwpOwogCi0JZ2l0X2NvbmZpZyhodHRwX29wdGlvbnMsIE5VTEwpOworCWdpdF9jb25maWcodXJsbWF0Y2hfY29uZmlnX2VudHJ5LCAmY29uZmlnKTsKKwlmcmVlKG5vcm1hbGl6ZWRfdXJsKTsKIAogCWN1cmxfZ2xvYmFsX2luaXQoQ1VSTF9HTE9CQUxfQUxMKTsKIApAQCAtNDA3LDcgKzQ2MCw3IEBACiAJCWNyZWRlbnRpYWxfZnJvbV91cmwoJmh0dHBfYXV0aCwgdXJsKTsKIAkJaWYgKCFzc2xfY2VydF9wYXNzd29yZF9yZXF1aXJlZCAmJgogCQkgICAgZ2V0ZW52KCJHSVRfU1NMX0NFUlRfUEFTU1dPUkRfUFJPVEVDVEVEIikgJiYKLQkJICAgICFwcmVmaXhjbXAodXJsLCAiaHR0cHM6Ly8iKSkKKwkJICAgIHN0YXJ0c193aXRoKHVybCwgImh0dHBzOi8vIikpCiAJCQlzc2xfY2VydF9wYXNzd29yZF9yZXF1aXJlZCA9IDE7CiAJfQogCkBAIC01MTMsNiArNTY2LDggQEAKIAlzbG90LT5jYWxsYmFja19kYXRhID0gTlVMTDsKIAlzbG90LT5jYWxsYmFja19mdW5jID0gTlVMTDsKIAljdXJsX2Vhc3lfc2V0b3B0KHNsb3QtPmN1cmwsIENVUkxPUFRfQ09PS0lFRklMRSwgY3VybF9jb29raWVfZmlsZSk7CisJaWYgKGN1cmxfc2F2ZV9jb29raWVzKQorCQljdXJsX2Vhc3lfc2V0b3B0KHNsb3QtPmN1cmwsIENVUkxPUFRfQ09PS0lFSkFSLCBjdXJsX2Nvb2tpZV9maWxlKTsKIAljdXJsX2Vhc3lfc2V0b3B0KHNsb3QtPmN1cmwsIENVUkxPUFRfSFRUUEhFQURFUiwgcHJhZ21hX2hlYWRlcik7CiAJY3VybF9lYXN5X3NldG9wdChzbG90LT5jdXJsLCBDVVJMT1BUX0VSUk9SQlVGRkVSLCBjdXJsX2Vycm9yc3RyKTsKIAljdXJsX2Vhc3lfc2V0b3B0KHNsb3QtPmN1cmwsIENVUkxPUFRfQ1VTVE9NUkVRVUVTVCwgTlVMTCk7CkBAIC03MDYsNiArNzYxLDEyIEBACiAJaWYgKHNsb3QtPnJlc3VsdHMgIT0gTlVMTCkgewogCQlzbG90LT5yZXN1bHRzLT5jdXJsX3Jlc3VsdCA9IHNsb3QtPmN1cmxfcmVzdWx0OwogCQlzbG90LT5yZXN1bHRzLT5odHRwX2NvZGUgPSBzbG90LT5odHRwX2NvZGU7CisjaWYgTElCQ1VSTF9WRVJTSU9OX05VTSA+PSAweDA3MGEwOAorCQljdXJsX2Vhc3lfZ2V0aW5mbyhzbG90LT5jdXJsLCBDVVJMSU5GT19IVFRQQVVUSF9BVkFJTCwKKwkJCQkgICZzbG90LT5yZXN1bHRzLT5hdXRoX2F2YWlsKTsKKyNlbHNlCisJCXNsb3QtPnJlc3VsdHMtPmF1dGhfYXZhaWwgPSAwOworI2VuZGlmCiAJfQogCiAJLyogUnVuIGNhbGxiYWNrIGlmIGFwcHJvcHJpYXRlICovCkBAIC05MzksNyArMTAwMCw3IEBACiAJaWYgKCFzdHJjbXAoYXNrZWQsIGdvdC0+YnVmKSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAocHJlZml4Y21wKGFza2VkLCBiYXNlLT5idWYpKQorCWlmICghc3RhcnRzX3dpdGgoYXNrZWQsIGJhc2UtPmJ1ZikpCiAJCWRpZSgiQlVHOiB1cGRhdGVfdXJsX2Zyb21fcmVkaXJlY3Q6ICVzIGlzIG5vdCBhIHN1cGVyc2V0IG9mICVzIiwKIAkJICAgIGFza2VkLCBiYXNlLT5idWYpOwogCkBAIC0xMDQ1LDcgKzExMDYsNyBAQAogCQlzdHJidWZfcnRyaW0oJmJ1ZmZlcik7CiAJCWlmIChidWZmZXIubGVuID09IDQwKQogCQkJcmV0ID0gZ2V0X3NoYTFfaGV4KGJ1ZmZlci5idWYsIHJlZi0+b2xkX3NoYTEpOwotCQllbHNlIGlmICghcHJlZml4Y21wKGJ1ZmZlci5idWYsICJyZWY6ICIpKSB7CisJCWVsc2UgaWYgKHN0YXJ0c193aXRoKGJ1ZmZlci5idWYsICJyZWY6ICIpKSB7CiAJCQlyZWYtPnN5bXJlZiA9IHhzdHJkdXAoYnVmZmVyLmJ1ZiArIDUpOwogCQkJcmV0ID0gMDsKIAkJfQpAQCAtMTE0Niw4ICsxMjA3LDggQEAKIAkJY2FzZSAnUCc6CiAJCQlpKys7CiAJCQlpZiAoaSArIDUyIDw9IGJ1Zi5sZW4gJiYKLQkJCSAgICAhcHJlZml4Y21wKGRhdGEgKyBpLCAiIHBhY2stIikgJiYKLQkJCSAgICAhcHJlZml4Y21wKGRhdGEgKyBpICsgNDYsICIucGFja1xuIikpIHsKKwkJCSAgICBzdGFydHNfd2l0aChkYXRhICsgaSwgIiBwYWNrLSIpICYmCisJCQkgICAgc3RhcnRzX3dpdGgoZGF0YSArIGkgKyA0NiwgIi5wYWNrXG4iKSkgewogCQkJCWdldF9zaGExX2hleChkYXRhICsgaSArIDYsIHNoYTEpOwogCQkJCWZldGNoX2FuZF9zZXR1cF9wYWNrX2luZGV4KHBhY2tzX2hlYWQsIHNoYTEsCiAJCQkJCQkgICAgICBiYXNlX3VybCk7CmRpZmYgLS1naXQgYS9odHRwLmggYi9odHRwLmgKaW5kZXggMTJjYTVjOC4uY2QzN2Q1OCAxMDA2NDQKLS0tIGEvaHR0cC5oCisrKyBiL2h0dHAuaApAQCAtNTQsNiArNTQsNyBAQAogc3RydWN0IHNsb3RfcmVzdWx0cyB7CiAJQ1VSTGNvZGUgY3VybF9yZXN1bHQ7CiAJbG9uZyBodHRwX2NvZGU7CisJbG9uZyBhdXRoX2F2YWlsOwogfTsKIAogc3RydWN0IGFjdGl2ZV9yZXF1ZXN0X3Nsb3QgewpkaWZmIC0tZ2l0IGEvaW1hcC1zZW5kLmMgYi9pbWFwLXNlbmQuYwppbmRleCBkNmI2NWUyLi4wYmM2ZjdmIDEwMDY0NAotLS0gYS9pbWFwLXNlbmQuYworKysgYi9pbWFwLXNlbmQuYwpAQCAtMjgsMjAgKzI4LDYgQEAKICNpbmNsdWRlICJwcm9tcHQuaCIKICNpZmRlZiBOT19PUEVOU1NMCiB0eXBlZGVmIHZvaWQgKlNTTDsKLSNlbHNlCi0jaWZkZWYgQVBQTEVfQ09NTU9OX0NSWVBUTwotI2luY2x1ZGUgPENvbW1vbkNyeXB0by9Db21tb25ITUFDLmg+Ci0jZGVmaW5lIEhNQUNfQ1RYIENDSG1hY0NvbnRleHQKLSNkZWZpbmUgSE1BQ19Jbml0KGhtYWMsIGtleSwgbGVuLCBhbGdvKSBDQ0htYWNJbml0KGhtYWMsIGFsZ28sIGtleSwgbGVuKQotI2RlZmluZSBITUFDX1VwZGF0ZSBDQ0htYWNVcGRhdGUKLSNkZWZpbmUgSE1BQ19GaW5hbChobWFjLCBoYXNoLCBwdHIpIENDSG1hY0ZpbmFsKGhtYWMsIGhhc2gpCi0jZGVmaW5lIEhNQUNfQ1RYX2NsZWFudXAoaWdub3JlKQotI2RlZmluZSBFVlBfbWQ1KCkga0NDSG1hY0FsZ01ENQotI2Vsc2UKLSNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgotI2luY2x1ZGUgPG9wZW5zc2wvaG1hYy5oPgotI2VuZGlmCi0jaW5jbHVkZSA8b3BlbnNzbC94NTA5djMuaD4KICNlbmRpZgogCiBzdGF0aWMgY29uc3QgY2hhciBpbWFwX3NlbmRfdXNhZ2VbXSA9ICJnaXQgaW1hcC1zZW5kIDwgPG1ib3g+IjsKQEAgLTEyNzcsNyArMTI2Myw3IEBACiAJY2hhciAqcCA9IGFsbF9tc2dzLT5idWY7CiAKIAl3aGlsZSAoMSkgewotCQlpZiAoIXByZWZpeGNtcChwLCAiRnJvbSAiKSkgeworCQlpZiAoc3RhcnRzX3dpdGgocCwgIkZyb20gIikpIHsKIAkJCXAgPSBzdHJzdHIocCs1LCAiXG5Gcm9tOiAiKTsKIAkJCWlmICghcCkgYnJlYWs7CiAJCQlwID0gc3Ryc3RyKHArNywgIlxuRGF0ZTogIik7CkBAIC0xMzExLDcgKzEyOTcsNyBAQAogCWRhdGEgPSAmYWxsX21zZ3MtPmJ1Zlsqb2ZzXTsKIAlsZW4gPSBhbGxfbXNncy0+bGVuIC0gKm9mczsKIAotCWlmIChsZW4gPCA1IHx8IHByZWZpeGNtcChkYXRhLCAiRnJvbSAiKSkKKwlpZiAobGVuIDwgNSB8fCAhc3RhcnRzX3dpdGgoZGF0YSwgIkZyb20gIikpCiAJCXJldHVybiAwOwogCiAJcCA9IHN0cmNocihkYXRhLCAnXG4nKTsKQEAgLTEzNTMsMTMgKzEzMzksMTMgQEAKIAlpZiAoIXN0cmNtcCgiZm9sZGVyIiwga2V5KSkgewogCQlpbWFwX2ZvbGRlciA9IHhzdHJkdXAodmFsKTsKIAl9IGVsc2UgaWYgKCFzdHJjbXAoImhvc3QiLCBrZXkpKSB7Ci0JCWlmICghcHJlZml4Y21wKHZhbCwgImltYXA6IikpCisJCWlmIChzdGFydHNfd2l0aCh2YWwsICJpbWFwOiIpKQogCQkJdmFsICs9IDU7Ci0JCWVsc2UgaWYgKCFwcmVmaXhjbXAodmFsLCAiaW1hcHM6IikpIHsKKwkJZWxzZSBpZiAoc3RhcnRzX3dpdGgodmFsLCAiaW1hcHM6IikpIHsKIAkJCXZhbCArPSA2OwogCQkJc2VydmVyLnVzZV9zc2wgPSAxOwogCQl9Ci0JCWlmICghcHJlZml4Y21wKHZhbCwgIi8vIikpCisJCWlmIChzdGFydHNfd2l0aCh2YWwsICIvLyIpKQogCQkJdmFsICs9IDI7CiAJCXNlcnZlci5ob3N0ID0geHN0cmR1cCh2YWwpOwogCX0gZWxzZSBpZiAoIXN0cmNtcCgidXNlciIsIGtleSkpCmRpZmYgLS1naXQgYS9saW5lLWxvZy5jIGIvbGluZS1sb2cuYwppbmRleCBjMmQwMWRjLi43MTc2MzhiIDEwMDY0NAotLS0gYS9saW5lLWxvZy5jCisrKyBiL2xpbmUtbG9nLmMKQEAgLTIzLDcgKzIzLDcgQEAKIC8qIEVpdGhlciBpbml0aWFsaXphdGlvbiB3b3VsZCBiZSBmaW5lICovCiAjZGVmaW5lIFJBTkdFX1NFVF9JTklUIHswfQogCi1zdGF0aWMgdm9pZCByYW5nZV9zZXRfaW5pdChzdHJ1Y3QgcmFuZ2Vfc2V0ICpycywgc2l6ZV90IHByZWFsbG9jKQordm9pZCByYW5nZV9zZXRfaW5pdChzdHJ1Y3QgcmFuZ2Vfc2V0ICpycywgc2l6ZV90IHByZWFsbG9jKQogewogCXJzLT5hbGxvYyA9IHJzLT5uciA9IDA7CiAJcnMtPnJhbmdlcyA9IE5VTEw7CkBAIC0zMSw3ICszMSw3IEBACiAJCXJhbmdlX3NldF9ncm93KHJzLCBwcmVhbGxvYyk7CiB9CiAKLXN0YXRpYyB2b2lkIHJhbmdlX3NldF9yZWxlYXNlKHN0cnVjdCByYW5nZV9zZXQgKnJzKQordm9pZCByYW5nZV9zZXRfcmVsZWFzZShzdHJ1Y3QgcmFuZ2Vfc2V0ICpycykKIHsKIAlmcmVlKHJzLT5yYW5nZXMpOwogCXJzLT5hbGxvYyA9IHJzLT5uciA9IDA7CkBAIC01Niw3ICs1Niw3IEBACiB9CiAKIC8qIHRhY2sgb24gYSBfbmV3XyByYW5nZSBfYXQgdGhlIGVuZF8gKi8KLXN0YXRpYyB2b2lkIHJhbmdlX3NldF9hcHBlbmRfdW5zYWZlKHN0cnVjdCByYW5nZV9zZXQgKnJzLCBsb25nIGEsIGxvbmcgYikKK3ZvaWQgcmFuZ2Vfc2V0X2FwcGVuZF91bnNhZmUoc3RydWN0IHJhbmdlX3NldCAqcnMsIGxvbmcgYSwgbG9uZyBiKQogewogCWFzc2VydChhIDw9IGIpOwogCXJhbmdlX3NldF9ncm93KHJzLCAxKTsKQEAgLTY1LDcgKzY1LDcgQEAKIAlycy0+bnIrKzsKIH0KIAotc3RhdGljIHZvaWQgcmFuZ2Vfc2V0X2FwcGVuZChzdHJ1Y3QgcmFuZ2Vfc2V0ICpycywgbG9uZyBhLCBsb25nIGIpCit2b2lkIHJhbmdlX3NldF9hcHBlbmQoc3RydWN0IHJhbmdlX3NldCAqcnMsIGxvbmcgYSwgbG9uZyBiKQogewogCWFzc2VydChycy0+bnIgPT0gMCB8fCBycy0+cmFuZ2VzW3JzLT5uci0xXS5lbmQgPD0gYSk7CiAJcmFuZ2Vfc2V0X2FwcGVuZF91bnNhZmUocnMsIGEsIGIpOwpAQCAtMTA3LDcgKzEwNyw3IEBACiAgKiBJbi1wbGFjZSBwYXNzIG9mIHNvcnRpbmcgYW5kIG1lcmdpbmcgdGhlIHJhbmdlcyBpbiB0aGUgcmFuZ2Ugc2V0LAogICogdG8gZXN0YWJsaXNoIHRoZSBpbnZhcmlhbnRzIHdoZW4gd2UgZ2V0IHRoZSByYW5nZXMgZnJvbSB0aGUgdXNlcgogICovCi1zdGF0aWMgdm9pZCBzb3J0X2FuZF9tZXJnZV9yYW5nZV9zZXQoc3RydWN0IHJhbmdlX3NldCAqcnMpCit2b2lkIHNvcnRfYW5kX21lcmdlX3JhbmdlX3NldChzdHJ1Y3QgcmFuZ2Vfc2V0ICpycykKIHsKIAlpbnQgaTsKIAlpbnQgbyA9IDA7IC8qIG91dHB1dCBjdXJzb3IgKi8KQEAgLTI5MSw3ICsyOTEsNiBAQAogCiAJaWYgKHApIHsKIAkJcmFuZ2Vfc2V0X2FwcGVuZF91bnNhZmUoJnAtPnJhbmdlcywgYmVnaW4sIGVuZCk7Ci0JCXNvcnRfYW5kX21lcmdlX3JhbmdlX3NldCgmcC0+cmFuZ2VzKTsKIAkJZnJlZShwYXRoKTsKIAkJcmV0dXJuOwogCX0KQEAgLTI5OSw3ICsyOTgsNiBAQAogCXAgPSB4Y2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgbGluZV9sb2dfZGF0YSkpOwogCXAtPnBhdGggPSBwYXRoOwogCXJhbmdlX3NldF9hcHBlbmQoJnAtPnJhbmdlcywgYmVnaW4sIGVuZCk7Ci0Jc29ydF9hbmRfbWVyZ2VfcmFuZ2Vfc2V0KCZwLT5yYW5nZXMpOwogCWlmIChpcCkgewogCQlwLT5uZXh0ID0gaXAtPm5leHQ7CiAJCWlwLT5uZXh0ID0gcDsKQEAgLTU2NiwxMiArNTY0LDE0IEBACiAJc3RydWN0IG50aF9saW5lX2NiIGNiX2RhdGE7CiAJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW07CiAJc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJhbmdlcyA9IE5VTEw7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKnA7CiAKIAlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKGl0ZW0sIGFyZ3MpIHsKIAkJY29uc3QgY2hhciAqbmFtZV9wYXJ0LCAqcmFuZ2VfcGFydDsKIAkJY2hhciAqZnVsbF9uYW1lOwogCQlzdHJ1Y3QgZGlmZl9maWxlc3BlYyAqc3BlYzsKIAkJbG9uZyBiZWdpbiA9IDAsIGVuZCA9IDA7CisJCWxvbmcgYW5jaG9yOwogCiAJCW5hbWVfcGFydCA9IHNraXBfcmFuZ2VfYXJnKGl0ZW0tPnN0cmluZyk7CiAJCWlmICghbmFtZV9wYXJ0IHx8ICpuYW1lX3BhcnQgIT0gJzonIHx8ICFuYW1lX3BhcnRbMV0pCkBAIC01OTAsMTcgKzU5MCwyMyBAQAogCQljYl9kYXRhLmxpbmVzID0gbGluZXM7CiAJCWNiX2RhdGEubGluZV9lbmRzID0gZW5kczsKIAorCQlwID0gc2VhcmNoX2xpbmVfbG9nX2RhdGEocmFuZ2VzLCBmdWxsX25hbWUsIE5VTEwpOworCQlpZiAocCAmJiBwLT5yYW5nZXMubnIpCisJCQlhbmNob3IgPSBwLT5yYW5nZXMucmFuZ2VzW3AtPnJhbmdlcy5uciAtIDFdLmVuZCArIDE7CisJCWVsc2UKKwkJCWFuY2hvciA9IDE7CisKIAkJaWYgKHBhcnNlX3JhbmdlX2FyZyhyYW5nZV9wYXJ0LCBudGhfbGluZSwgJmNiX2RhdGEsCi0JCQkJICAgIGxpbmVzLCAmYmVnaW4sICZlbmQsCisJCQkJICAgIGxpbmVzLCBhbmNob3IsICZiZWdpbiwgJmVuZCwKIAkJCQkgICAgZnVsbF9uYW1lKSkKIAkJCWRpZSgibWFsZm9ybWVkIC1MIGFyZ3VtZW50ICclcyciLCByYW5nZV9wYXJ0KTsKKwkJaWYgKGxpbmVzIDwgZW5kIHx8ICgobGluZXMgfHwgYmVnaW4pICYmIGxpbmVzIDwgYmVnaW4pKQorCQkJZGllKCJmaWxlICVzIGhhcyBvbmx5ICVsdSBsaW5lcyIsIG5hbWVfcGFydCwgbGluZXMpOwogCQlpZiAoYmVnaW4gPCAxKQogCQkJYmVnaW4gPSAxOwogCQlpZiAoZW5kIDwgMSkKIAkJCWVuZCA9IGxpbmVzOwogCQliZWdpbi0tOwotCQlpZiAobGluZXMgPCBlbmQgfHwgbGluZXMgPCBiZWdpbikKLQkJCWRpZSgiZmlsZSAlcyBoYXMgb25seSAlbGQgbGluZXMiLCBuYW1lX3BhcnQsIGxpbmVzKTsKIAkJbGluZV9sb2dfZGF0YV9pbnNlcnQoJnJhbmdlcywgZnVsbF9uYW1lLCBiZWdpbiwgZW5kKTsKIAogCQlmcmVlX2ZpbGVzcGVjKHNwZWMpOwpAQCAtNjA4LDYgKzYxNCw5IEBACiAJCWVuZHMgPSBOVUxMOwogCX0KIAorCWZvciAocCA9IHJhbmdlczsgcDsgcCA9IHAtPm5leHQpCisJCXNvcnRfYW5kX21lcmdlX3JhbmdlX3NldCgmcC0+cmFuZ2VzKTsKKwogCXJldHVybiByYW5nZXM7CiB9CiAKQEAgLTc1MSw3ICs3NjAsOCBAQAogCQkJciA9IHItPm5leHQ7CiAJCX0KIAkJcGF0aHNbY291bnRdID0gTlVMTDsKLQkJaW5pdF9wYXRoc3BlYygmcmV2LT5kaWZmb3B0LnBhdGhzcGVjLCBwYXRocyk7CisJCXBhcnNlX3BhdGhzcGVjKCZyZXYtPmRpZmZvcHQucGF0aHNwZWMsIDAsCisJCQkgICAgICAgUEFUSFNQRUNfUFJFRkVSX0ZVTEwsICIiLCBwYXRocyk7CiAJCWZyZWUocGF0aHMpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2xpbmUtbG9nLmggYi9saW5lLWxvZy5oCmluZGV4IDhiZWE0NWYuLmE5MjEyZDggMTAwNjQ0Ci0tLSBhL2xpbmUtbG9nLmgKKysrIGIvbGluZS1sb2cuaApAQCAtMjUsNiArMjUsMTggQEAKIAlzdHJ1Y3QgcmFuZ2Vfc2V0IHRhcmdldDsKIH07CiAKK2V4dGVybiB2b2lkIHJhbmdlX3NldF9pbml0KHN0cnVjdCByYW5nZV9zZXQgKiwgc2l6ZV90IHByZWFsbG9jKTsKK2V4dGVybiB2b2lkIHJhbmdlX3NldF9yZWxlYXNlKHN0cnVjdCByYW5nZV9zZXQgKik7CisvKiBSYW5nZSBpbmNsdWRlcyBzdGFydDsgZXhjbHVkZXMgZW5kICovCitleHRlcm4gdm9pZCByYW5nZV9zZXRfYXBwZW5kX3Vuc2FmZShzdHJ1Y3QgcmFuZ2Vfc2V0ICosIGxvbmcgc3RhcnQsIGxvbmcgZW5kKTsKKy8qIE5ldyByYW5nZSBtdXN0IGJlZ2luIGF0IG9yIGFmdGVyIGVuZCBvZiBsYXN0IGFkZGVkIHJhbmdlICovCitleHRlcm4gdm9pZCByYW5nZV9zZXRfYXBwZW5kKHN0cnVjdCByYW5nZV9zZXQgKiwgbG9uZyBzdGFydCwgbG9uZyBlbmQpOworLyoKKyAqIEluLXBsYWNlIHBhc3Mgb2Ygc29ydGluZyBhbmQgbWVyZ2luZyB0aGUgcmFuZ2VzIGluIHRoZSByYW5nZSBzZXQsCisgKiB0byBzb3J0IGFuZCBtYWtlIHRoZSByYW5nZXMgZGlzam9pbnQuCisgKi8KK2V4dGVybiB2b2lkIHNvcnRfYW5kX21lcmdlX3JhbmdlX3NldChzdHJ1Y3QgcmFuZ2Vfc2V0ICopOworCiAvKiBMaW5rZWQgbGlzdCBvZiBpbnRlcmVzdGluZyBmaWxlcyBhbmQgdGhlaXIgYXNzb2NpYXRlZCByYW5nZXMuICBUaGUKICAqIGxpc3QgbXVzdCBiZSBrZXB0IHNvcnRlZCBieSBwYXRoLgogICoKZGlmZiAtLWdpdCBhL2xpbmUtcmFuZ2UuYyBiL2xpbmUtcmFuZ2UuYwppbmRleCAzOTQyNDc1Li5kZTRlMzJmIDEwMDY0NAotLS0gYS9saW5lLXJhbmdlLmMKKysrIGIvbGluZS1yYW5nZS5jCkBAIC02LDYgKzYsMTggQEAKIAogLyoKICAqIFBhcnNlIG9uZSBpdGVtIGluIHRoZSAtTCBvcHRpb24KKyAqCisgKiAnYmVnaW4nIGlzIGFwcGxpY2FibGUgb25seSB0byByZWxhdGl2ZSByYW5nZSBhbmNob3JzLiBBYnNvbHV0ZSBhbmNob3JzCisgKiBpZ25vcmUgdGhpcyB2YWx1ZS4KKyAqCisgKiBXaGVuIHBhcnNpbmcgIi1MIEEsQiIsIHBhcnNlX2xvYygpIGlzIGNhbGxlZCBvbmNlIGZvciBBIGFuZCBvbmNlIGZvciBCLgorICoKKyAqIFdoZW4gcGFyc2luZyBBLCAnYmVnaW4nIG11c3QgYmUgYSBuZWdhdGl2ZSBudW1iZXIsIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZgorICogd2hpY2ggaXMgdGhlIGxpbmUgYXQgd2hpY2ggcmVsYXRpdmUgc3RhcnQtb2YtcmFuZ2UgYW5jaG9ycyBzaG91bGQgYmUKKyAqIGJhc2VkLiBCZWdpbm5pbmcgb2YgZmlsZSBpcyByZXByZXNlbnRlZCBieSAtMS4KKyAqCisgKiBXaGVuIHBhcnNpbmcgQiwgJ2JlZ2luJyBtdXN0IGJlIHRoZSBwb3NpdGl2ZSBsaW5lIG51bWJlciBpbW1lZGlhdGVseQorICogZm9sbG93aW5nIHRoZSBsaW5lIGNvbXB1dGVkIGZvciAnQScuCiAgKi8KIHN0YXRpYyBjb25zdCBjaGFyICpwYXJzZV9sb2MoY29uc3QgY2hhciAqc3BlYywgbnRoX2xpbmVfZm5fdCBudGhfbGluZSwKIAkJCSAgICAgdm9pZCAqZGF0YSwgbG9uZyBsaW5lcywgbG9uZyBiZWdpbiwgbG9uZyAqcmV0KQpAQCAtMjEsMTEgKzMzLDEzIEBACiAJICogZm9yIDIwIGxpbmVzLCBvciAiLUwgPHNvbWV0aGluZz4sLTUiIGZvciA1IGxpbmVzIGVuZGluZyBhdAogCSAqIDxzb21ldGhpbmc+LgogCSAqLwotCWlmICgxIDwgYmVnaW4gJiYgKHNwZWNbMF0gPT0gJysnIHx8IHNwZWNbMF0gPT0gJy0nKSkgeworCWlmICgxIDw9IGJlZ2luICYmIChzcGVjWzBdID09ICcrJyB8fCBzcGVjWzBdID09ICctJykpIHsKIAkJbnVtID0gc3RydG9sKHNwZWMgKyAxLCAmdGVybSwgMTApOwogCQlpZiAodGVybSAhPSBzcGVjICsgMSkgewogCQkJaWYgKCFyZXQpCiAJCQkJcmV0dXJuIHRlcm07CisJCQlpZiAobnVtID09IDApCisJCQkJZGllKCItTCBpbnZhbGlkIGVtcHR5IHJhbmdlIik7CiAJCQlpZiAoc3BlY1swXSA9PSAnLScpCiAJCQkJbnVtID0gMCAtIG51bTsKIAkJCWlmICgwIDwgbnVtKQpAQCAtNDAsMTAgKzU0LDIzIEBACiAJfQogCW51bSA9IHN0cnRvbChzcGVjLCAmdGVybSwgMTApOwogCWlmICh0ZXJtICE9IHNwZWMpIHsKLQkJaWYgKHJldCkKKwkJaWYgKHJldCkgeworCQkJaWYgKG51bSA8PSAwKQorCQkJCWRpZSgiLUwgaW52YWxpZCBsaW5lIG51bWJlcjogJWxkIiwgbnVtKTsKIAkJCSpyZXQgPSBudW07CisJCX0KIAkJcmV0dXJuIHRlcm07CiAJfQorCisJaWYgKGJlZ2luIDwgMCkgeworCQlpZiAoc3BlY1swXSAhPSAnXicpCisJCQliZWdpbiA9IC1iZWdpbjsKKwkJZWxzZSB7CisJCQliZWdpbiA9IDE7CisJCQlzcGVjKys7CisJCX0KKwl9CisKIAlpZiAoc3BlY1swXSAhPSAnLycpCiAJCXJldHVybiBzcGVjOwogCkBAIC04Myw3ICsxMTAsOCBAQAogCWVsc2UgewogCQljaGFyIGVycmJ1ZlsxMDI0XTsKIAkJcmVnZXJyb3IocmVnX2Vycm9yLCAmcmVnZXhwLCBlcnJidWYsIDEwMjQpOwotCQlkaWUoIi1MIHBhcmFtZXRlciAnJXMnOiAlcyIsIHNwZWMgKyAxLCBlcnJidWYpOworCQlkaWUoIi1MIHBhcmFtZXRlciAnJXMnIHN0YXJ0aW5nIGF0IGxpbmUgJWxkOiAlcyIsCisJCSAgICBzcGVjICsgMSwgYmVnaW4gKyAxLCBlcnJidWYpOwogCX0KIH0KIApAQCAtMTM2LDcgKzE2NCw3IEBACiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyICpwYXJzZV9yYW5nZV9mdW5jbmFtZShjb25zdCBjaGFyICphcmcsIG50aF9saW5lX2ZuX3QgbnRoX2xpbmVfY2IsCi0JCQkJCXZvaWQgKmNiX2RhdGEsIGxvbmcgbGluZXMsIGxvbmcgKmJlZ2luLCBsb25nICplbmQsCisJCQkJCXZvaWQgKmNiX2RhdGEsIGxvbmcgbGluZXMsIGxvbmcgYW5jaG9yLCBsb25nICpiZWdpbiwgbG9uZyAqZW5kLAogCQkJCQljb25zdCBjaGFyICpwYXRoKQogewogCWNoYXIgKnBhdHRlcm47CkBAIC0xNDgsNiArMTc2LDExIEBACiAJaW50IHJlZ19lcnJvcjsKIAlyZWdleF90IHJlZ2V4cDsKIAorCWlmICgqYXJnID09ICdeJykgeworCQlhbmNob3IgPSAxOworCQlhcmcrKzsKKwl9CisKIAlhc3NlcnQoKmFyZyA9PSAnOicpOwogCXRlcm0gPSBhcmcrMTsKIAl3aGlsZSAoKnRlcm0gJiYgKnRlcm0gIT0gJzonKSB7CkBAIC0xNjIsNyArMTk1LDggQEAKIAogCXBhdHRlcm4gPSB4c3RybmR1cChhcmcrMSwgdGVybS0oYXJnKzEpKTsKIAotCXN0YXJ0ID0gbnRoX2xpbmVfY2IoY2JfZGF0YSwgMCk7CisJYW5jaG9yLS07IC8qIGlucHV0IGlzIGluIGh1bWFuIHRlcm1zICovCisJc3RhcnQgPSBudGhfbGluZV9jYihjYl9kYXRhLCBhbmNob3IpOwogCiAJZHJ2ID0gdXNlcmRpZmZfZmluZF9ieV9wYXRoKHBhdGgpOwogCWlmIChkcnYgJiYgZHJ2LT5mdW5jbmFtZS5wYXR0ZXJuKSB7CkBAIC0xODAsNyArMjE0LDggQEAKIAogCXAgPSBmaW5kX2Z1bmNuYW1lX21hdGNoaW5nX3JlZ2V4cCh4ZWNmZywgKGNoYXIqKSBzdGFydCwgJnJlZ2V4cCk7CiAJaWYgKCFwKQotCQlkaWUoIi1MIHBhcmFtZXRlciAnJXMnOiBubyBtYXRjaCIsIHBhdHRlcm4pOworCQlkaWUoIi1MIHBhcmFtZXRlciAnJXMnIHN0YXJ0aW5nIGF0IGxpbmUgJWxkOiBubyBtYXRjaCIsCisJCSAgICBwYXR0ZXJuLCBhbmNob3IgKyAxKTsKIAkqYmVnaW4gPSAwOwogCXdoaWxlIChwID4gbnRoX2xpbmVfY2IoY2JfZGF0YSwgKmJlZ2luKSkKIAkJKCpiZWdpbikrKzsKQEAgLTIwOCwxOSArMjQzLDI0IEBACiB9CiAKIGludCBwYXJzZV9yYW5nZV9hcmcoY29uc3QgY2hhciAqYXJnLCBudGhfbGluZV9mbl90IG50aF9saW5lX2NiLAotCQkgICAgdm9pZCAqY2JfZGF0YSwgbG9uZyBsaW5lcywgbG9uZyAqYmVnaW4sIGxvbmcgKmVuZCwKLQkJICAgIGNvbnN0IGNoYXIgKnBhdGgpCisJCSAgICB2b2lkICpjYl9kYXRhLCBsb25nIGxpbmVzLCBsb25nIGFuY2hvciwKKwkJICAgIGxvbmcgKmJlZ2luLCBsb25nICplbmQsIGNvbnN0IGNoYXIgKnBhdGgpCiB7CiAJKmJlZ2luID0gKmVuZCA9IDA7CiAKLQlpZiAoKmFyZyA9PSAnOicpIHsKLQkJYXJnID0gcGFyc2VfcmFuZ2VfZnVuY25hbWUoYXJnLCBudGhfbGluZV9jYiwgY2JfZGF0YSwgbGluZXMsIGJlZ2luLCBlbmQsIHBhdGgpOworCWlmIChhbmNob3IgPCAxKQorCQlhbmNob3IgPSAxOworCWlmIChhbmNob3IgPiBsaW5lcykKKwkJYW5jaG9yID0gbGluZXMgKyAxOworCisJaWYgKCphcmcgPT0gJzonIHx8ICgqYXJnID09ICdeJyAmJiAqKGFyZyArIDEpID09ICc6JykpIHsKKwkJYXJnID0gcGFyc2VfcmFuZ2VfZnVuY25hbWUoYXJnLCBudGhfbGluZV9jYiwgY2JfZGF0YSwgbGluZXMsIGFuY2hvciwgYmVnaW4sIGVuZCwgcGF0aCk7CiAJCWlmICghYXJnIHx8ICphcmcpCiAJCQlyZXR1cm4gLTE7CiAJCXJldHVybiAwOwogCX0KIAotCWFyZyA9IHBhcnNlX2xvYyhhcmcsIG50aF9saW5lX2NiLCBjYl9kYXRhLCBsaW5lcywgMSwgYmVnaW4pOworCWFyZyA9IHBhcnNlX2xvYyhhcmcsIG50aF9saW5lX2NiLCBjYl9kYXRhLCBsaW5lcywgLWFuY2hvciwgYmVnaW4pOwogCiAJaWYgKCphcmcgPT0gJywnKQogCQlhcmcgPSBwYXJzZV9sb2MoYXJnICsgMSwgbnRoX2xpbmVfY2IsIGNiX2RhdGEsIGxpbmVzLCAqYmVnaW4gKyAxLCBlbmQpOwpAQCAtMjM4LDggKzI3OCw4IEBACiAKIGNvbnN0IGNoYXIgKnNraXBfcmFuZ2VfYXJnKGNvbnN0IGNoYXIgKmFyZykKIHsKLQlpZiAoKmFyZyA9PSAnOicpCi0JCXJldHVybiBwYXJzZV9yYW5nZV9mdW5jbmFtZShhcmcsIE5VTEwsIE5VTEwsIDAsIE5VTEwsIE5VTEwsIE5VTEwpOworCWlmICgqYXJnID09ICc6JyB8fCAoKmFyZyA9PSAnXicgJiYgKihhcmcgKyAxKSA9PSAnOicpKQorCQlyZXR1cm4gcGFyc2VfcmFuZ2VfZnVuY25hbWUoYXJnLCBOVUxMLCBOVUxMLCAwLCAwLCBOVUxMLCBOVUxMLCBOVUxMKTsKIAogCWFyZyA9IHBhcnNlX2xvYyhhcmcsIE5VTEwsIE5VTEwsIDAsIC0xLCBOVUxMKTsKIApkaWZmIC0tZ2l0IGEvbGluZS1yYW5nZS5oIGIvbGluZS1yYW5nZS5oCmluZGV4IGFlM2QwMTIuLjgzYmEzYzIgMTAwNjQ0Ci0tLSBhL2xpbmUtcmFuZ2UuaAorKysgYi9saW5lLXJhbmdlLmgKQEAgLTksNiArOSw5IEBACiAgKiBsaW5lICdsbm8nIGluc2lkZSB0aGUgJ2NiX2RhdGEnLiAgVGhlIGNhbGxlciBpcyBleHBlY3RlZCB0byBhbHJlYWR5CiAgKiBoYXZlIGEgc3VpdGFibGUgbWFwIGF0IGhhbmQgdG8gbWFrZSB0aGlzIGEgY29uc3RhbnQtdGltZSBsb29rdXAuCiAgKgorICogJ2FuY2hvcicgaXMgdGhlIDEtYmFzZWQgbGluZSBhdCB3aGljaCByZWxhdGl2ZSByYW5nZSBzcGVjaWZpY2F0aW9ucworICogc2hvdWxkIGJlIGFuY2hvcmVkLiBBYnNvbHV0ZSByYW5nZXMgYXJlIHVuYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZS4KKyAqCiAgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpZiB0aGVyZSB3YXMgYW4gZXJyb3IuICBUaGUKICAqIGFjdHVhbCByYW5nZSBpcyBzdG9yZWQgaW4gKmJlZ2luIGFuZCAqZW5kLiAgVGhlIGNvdW50aW5nIHN0YXJ0cwogICogYXQgMSEgIEluIGNhc2Ugb2YgZXJyb3IsIHRoZSBjYWxsZXIgc2hvdWxkIHNob3cgdXNhZ2UgbWVzc2FnZS4KQEAgLTE4LDcgKzIxLDcgQEAKIAogZXh0ZXJuIGludCBwYXJzZV9yYW5nZV9hcmcoY29uc3QgY2hhciAqYXJnLAogCQkJICAgbnRoX2xpbmVfZm5fdCBudGhfbGluZV9jYiwKLQkJCSAgIHZvaWQgKmNiX2RhdGEsIGxvbmcgbGluZXMsCisJCQkgICB2b2lkICpjYl9kYXRhLCBsb25nIGxpbmVzLCBsb25nIGFuY2hvciwKIAkJCSAgIGxvbmcgKmJlZ2luLCBsb25nICplbmQsCiAJCQkgICBjb25zdCBjaGFyICpwYXRoKTsKIApkaWZmIC0tZ2l0IGEvbGlzdC1vYmplY3RzLmMgYi9saXN0LW9iamVjdHMuYwppbmRleCAwNWM4YzVjLi4yMDY4MTZmIDEwMDY0NAotLS0gYS9saXN0LW9iamVjdHMuYworKysgYi9saXN0LW9iamVjdHMuYwpAQCAtMTIzLDggKzEyMyw3IEBACiAJCQkJICAgICBjYl9kYXRhKTsKIAl9CiAJc3RyYnVmX3NldGxlbihiYXNlLCBiYXNlbGVuKTsKLQlmcmVlKHRyZWUtPmJ1ZmZlcik7Ci0JdHJlZS0+YnVmZmVyID0gTlVMTDsKKwlmcmVlX3RyZWVfYnVmZmVyKHRyZWUpOwogfQogCiBzdGF0aWMgdm9pZCBtYXJrX2VkZ2VfcGFyZW50c191bmludGVyZXN0aW5nKHN0cnVjdCBjb21taXQgKmNvbW1pdCwKQEAgLTE2MywxNSArMTYyLDE3IEBACiAJCX0KIAkJbWFya19lZGdlX3BhcmVudHNfdW5pbnRlcmVzdGluZyhjb21taXQsIHJldnMsIHNob3dfZWRnZSk7CiAJfQotCWZvciAoaSA9IDA7IGkgPCByZXZzLT5jbWRsaW5lLm5yOyBpKyspIHsKLQkJc3RydWN0IG9iamVjdCAqb2JqID0gcmV2cy0+Y21kbGluZS5yZXZbaV0uaXRlbTsKLQkJc3RydWN0IGNvbW1pdCAqY29tbWl0ID0gKHN0cnVjdCBjb21taXQgKilvYmo7Ci0JCWlmIChvYmotPnR5cGUgIT0gT0JKX0NPTU1JVCB8fCAhKG9iai0+ZmxhZ3MgJiBVTklOVEVSRVNUSU5HKSkKLQkJCWNvbnRpbnVlOwotCQltYXJrX3RyZWVfdW5pbnRlcmVzdGluZyhjb21taXQtPnRyZWUpOwotCQlpZiAocmV2cy0+ZWRnZV9oaW50ICYmICEob2JqLT5mbGFncyAmIFNIT1dOKSkgewotCQkJb2JqLT5mbGFncyB8PSBTSE9XTjsKLQkJCXNob3dfZWRnZShjb21taXQpOworCWlmIChyZXZzLT5lZGdlX2hpbnQpIHsKKwkJZm9yIChpID0gMDsgaSA8IHJldnMtPmNtZGxpbmUubnI7IGkrKykgeworCQkJc3RydWN0IG9iamVjdCAqb2JqID0gcmV2cy0+Y21kbGluZS5yZXZbaV0uaXRlbTsKKwkJCXN0cnVjdCBjb21taXQgKmNvbW1pdCA9IChzdHJ1Y3QgY29tbWl0ICopb2JqOworCQkJaWYgKG9iai0+dHlwZSAhPSBPQkpfQ09NTUlUIHx8ICEob2JqLT5mbGFncyAmIFVOSU5URVJFU1RJTkcpKQorCQkJCWNvbnRpbnVlOworCQkJbWFya190cmVlX3VuaW50ZXJlc3RpbmcoY29tbWl0LT50cmVlKTsKKwkJCWlmICghKG9iai0+ZmxhZ3MgJiBTSE9XTikpIHsKKwkJCQlvYmotPmZsYWdzIHw9IFNIT1dOOworCQkJCXNob3dfZWRnZShjb21taXQpOworCQkJfQogCQl9CiAJfQogfQpkaWZmIC0tZ2l0IGEvbG9nLXRyZWUuYyBiL2xvZy10cmVlLmMKaW5kZXggODUzNGQ5MS4uMDg5NzBiZiAxMDA2NDQKLS0tIGEvbG9nLXRyZWUuYworKysgYi9sb2ctdHJlZS5jCkBAIC05OCw3ICs5OCw3IEBACiAJc3RydWN0IG9iamVjdCAqb2JqOwogCWVudW0gZGVjb3JhdGlvbl90eXBlIHR5cGUgPSBERUNPUkFUSU9OX05PTkU7CiAKLQlpZiAoIXByZWZpeGNtcChyZWZuYW1lLCAicmVmcy9yZXBsYWNlLyIpKSB7CisJaWYgKHN0YXJ0c193aXRoKHJlZm5hbWUsICJyZWZzL3JlcGxhY2UvIikpIHsKIAkJdW5zaWduZWQgY2hhciBvcmlnaW5hbF9zaGExWzIwXTsKIAkJaWYgKCFyZWFkX3JlcGxhY2VfcmVmcykKIAkJCXJldHVybiAwOwpAQCAtMTE2LDExICsxMTYsMTEgQEAKIAlpZiAoIW9iaikKIAkJcmV0dXJuIDA7CiAKLQlpZiAoIXByZWZpeGNtcChyZWZuYW1lLCAicmVmcy9oZWFkcy8iKSkKKwlpZiAoc3RhcnRzX3dpdGgocmVmbmFtZSwgInJlZnMvaGVhZHMvIikpCiAJCXR5cGUgPSBERUNPUkFUSU9OX1JFRl9MT0NBTDsKLQllbHNlIGlmICghcHJlZml4Y21wKHJlZm5hbWUsICJyZWZzL3JlbW90ZXMvIikpCisJZWxzZSBpZiAoc3RhcnRzX3dpdGgocmVmbmFtZSwgInJlZnMvcmVtb3Rlcy8iKSkKIAkJdHlwZSA9IERFQ09SQVRJT05fUkVGX1JFTU9URTsKLQllbHNlIGlmICghcHJlZml4Y21wKHJlZm5hbWUsICJyZWZzL3RhZ3MvIikpCisJZWxzZSBpZiAoc3RhcnRzX3dpdGgocmVmbmFtZSwgInJlZnMvdGFncy8iKSkKIAkJdHlwZSA9IERFQ09SQVRJT05fUkVGX1RBRzsKIAllbHNlIGlmICghc3RyY21wKHJlZm5hbWUsICJyZWZzL3N0YXNoIikpCiAJCXR5cGUgPSBERUNPUkFUSU9OX1JFRl9TVEFTSDsKQEAgLTEzNCw2ICsxMzQsOCBAQAogCQlvYmogPSAoKHN0cnVjdCB0YWcgKilvYmopLT50YWdnZWQ7CiAJCWlmICghb2JqKQogCQkJYnJlYWs7CisJCWlmICghb2JqLT5wYXJzZWQpCisJCQlwYXJzZV9vYmplY3Qob2JqLT5zaGExKTsKIAkJYWRkX25hbWVfZGVjb3JhdGlvbihERUNPUkFUSU9OX1JFRl9UQUcsIHJlZm5hbWUsIG9iaik7CiAJfQogCXJldHVybiAwOwpAQCAtNzM0LDcgKzczNiw3IEBACiAJaWYgKCFvcHQtPmRpZmYgJiYgIURJRkZfT1BUX1RTVCgmb3B0LT5kaWZmb3B0LCBFWElUX1dJVEhfU1RBVFVTKSkKIAkJcmV0dXJuIDA7CiAKLQlwYXJzZV9jb21taXQoY29tbWl0KTsKKwlwYXJzZV9jb21taXRfb3JfZGllKGNvbW1pdCk7CiAJc2hhMSA9IGNvbW1pdC0+dHJlZS0+b2JqZWN0LnNoYTE7CiAKIAkvKiBSb290IGNvbW1pdD8gKi8KQEAgLTc1OSw3ICs3NjEsNyBAQAogCQkJICogcGFyZW50LCBzaG93aW5nIHN1bW1hcnkgZGlmZiBvZiB0aGUgb3RoZXJzCiAJCQkgKiB3ZSBtZXJnZWQgX2luXy4KIAkJCSAqLwotCQkJcGFyc2VfY29tbWl0KHBhcmVudHMtPml0ZW0pOworCQkJcGFyc2VfY29tbWl0X29yX2RpZShwYXJlbnRzLT5pdGVtKTsKIAkJCWRpZmZfdHJlZV9zaGExKHBhcmVudHMtPml0ZW0tPnRyZWUtPm9iamVjdC5zaGExLAogCQkJCSAgICAgICBzaGExLCAiIiwgJm9wdC0+ZGlmZm9wdCk7CiAJCQlsb2dfdHJlZV9kaWZmX2ZsdXNoKG9wdCk7CkBAIC03NzQsNyArNzc2LDcgQEAKIAlmb3IgKDs7KSB7CiAJCXN0cnVjdCBjb21taXQgKnBhcmVudCA9IHBhcmVudHMtPml0ZW07CiAKLQkJcGFyc2VfY29tbWl0KHBhcmVudCk7CisJCXBhcnNlX2NvbW1pdF9vcl9kaWUocGFyZW50KTsKIAkJZGlmZl90cmVlX3NoYTEocGFyZW50LT50cmVlLT5vYmplY3Quc2hhMSwKIAkJCSAgICAgICBzaGExLCAiIiwgJm9wdC0+ZGlmZm9wdCk7CiAJCWxvZ190cmVlX2RpZmZfZmx1c2gob3B0KTsKZGlmZiAtLWdpdCBhL21haWxtYXAuYyBiL21haWxtYXAuYwppbmRleCAzMDYxNDM0Li44MTg5MGE2IDEwMDY0NAotLS0gYS9tYWlsbWFwLmMKKysrIGIvbWFpbG1hcC5jCkBAIC01Miw2ICs1MiwyMCBAQAogCXN0cmluZ19saXN0X2NsZWFyX2Z1bmMoJm1lLT5uYW1lbWFwLCBmcmVlX21haWxtYXBfaW5mbyk7CiB9CiAKKy8qCisgKiBPbiBzb21lIHN5c3RlbXMgKGUuZy4gTWluR1cgNC4wKSwgc3RyaW5nLmggaGFzIF9vbmx5XyBpbmxpbmUKKyAqIGRlZmluaXRpb24gb2Ygc3RyY2FzZWNtcCBhbmQgbm8gbm9uLWlubGluZSBpbXBsZW1lbnRhdGlvbiBpcworICogc3VwcGxpZWQgYW55d2hlcmUsIHdoaWNoIGlzLCBlaCwgInVudXN1YWwiOyB3ZSBjYW5ub3QgdGFrZSBhbgorICogYWRkcmVzcyBvZiBzdWNoIGEgZnVuY3Rpb24gdG8gc3RvcmUgaXQgaW4gbmFtZW1hcC5jbXAuICBUaGlzIGlzCisgKiBoZXJlIGFzIGEgd29ya2Fyb3VuZC0tLWRvIG5vdCBhc3NpZ24gc3RyY2FzZWNtcCBkaXJlY3RseSB0bworICogbmFtZW1hcC5jbXAgdW50aWwgd2Uga25vdyBubyBzeXN0ZW1zIHRoYXQgbWF0dGVyIGhhdmUgc3VjaCBhbgorICogInVudXN1YWwiIHN0cmluZy5oLgorICovCitzdGF0aWMgaW50IG5hbWVtYXBfY21wKGNvbnN0IGNoYXIgKmEsIGNvbnN0IGNoYXIgKmIpCit7CisJcmV0dXJuIHN0cmNhc2VjbXAoYSwgYik7Cit9CisKIHN0YXRpYyB2b2lkIGFkZF9tYXBwaW5nKHN0cnVjdCBzdHJpbmdfbGlzdCAqbWFwLAogCQkJY2hhciAqbmV3X25hbWUsIGNoYXIgKm5ld19lbWFpbCwKIAkJCWNoYXIgKm9sZF9uYW1lLCBjaGFyICpvbGRfZW1haWwpCkBAIC03NSw3ICs4OSw3IEBACiAJCWl0ZW0gPSBzdHJpbmdfbGlzdF9pbnNlcnRfYXRfaW5kZXgobWFwLCBpbmRleCwgb2xkX2VtYWlsKTsKIAkJbWUgPSB4Y2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgbWFpbG1hcF9lbnRyeSkpOwogCQltZS0+bmFtZW1hcC5zdHJkdXBfc3RyaW5ncyA9IDE7Ci0JCW1lLT5uYW1lbWFwLmNtcCA9IHN0cmNhc2VjbXA7CisJCW1lLT5uYW1lbWFwLmNtcCA9IG5hbWVtYXBfY21wOwogCQlpdGVtLT51dGlsID0gbWU7CiAJfQogCkBAIC0xNTMsOCArMTY3LDcgQEAKIAkJaWYgKCFzdHJuY21wKGJ1ZmZlciwgYWJicmV2LCBhYmJsZW4pKSB7CiAJCQljaGFyICpjcDsKIAotCQkJaWYgKHJlcG9fYWJicmV2KQotCQkJCWZyZWUoKnJlcG9fYWJicmV2KTsKKwkJCWZyZWUoKnJlcG9fYWJicmV2KTsKIAkJCSpyZXBvX2FiYnJldiA9IHhtYWxsb2MobGVuKTsKIAogCQkJZm9yIChjcCA9IGJ1ZmZlciArIGFiYmxlbjsgaXNzcGFjZSgqY3ApOyBjcCsrKQpAQCAtMjM4LDcgKzI1MSw3IEBACiAJaW50IGVyciA9IDA7CiAKIAltYXAtPnN0cmR1cF9zdHJpbmdzID0gMTsKLQltYXAtPmNtcCA9IHN0cmNhc2VjbXA7CisJbWFwLT5jbXAgPSBuYW1lbWFwX2NtcDsKIAogCWlmICghZ2l0X21haWxtYXBfYmxvYiAmJiBpc19iYXJlX3JlcG9zaXRvcnkoKSkKIAkJZ2l0X21haWxtYXBfYmxvYiA9ICJIRUFEOi5tYWlsbWFwIjsKZGlmZiAtLWdpdCBhL21lcmdlLXJlY3Vyc2l2ZS5jIGIvbWVyZ2UtcmVjdXJzaXZlLmMKaW5kZXggZmMyZjAwMS4uODQwMGE4ZSAxMDA2NDQKLS0tIGEvbWVyZ2UtcmVjdXJzaXZlLmMKKysrIGIvbWVyZ2UtcmVjdXJzaXZlLmMKQEAgLTI5OCw3ICsyOTgsNyBAQAogewogCWludCBuOwogCXN0cnVjdCBwYXRoc3BlYyBtYXRjaF9hbGw7Ci0JaW5pdF9wYXRoc3BlYygmbWF0Y2hfYWxsLCBOVUxMKTsKKwltZW1zZXQoJm1hdGNoX2FsbCwgMCwgc2l6ZW9mKG1hdGNoX2FsbCkpOwogCWlmIChyZWFkX3RyZWVfcmVjdXJzaXZlKHRyZWUsICIiLCAwLCAwLCAmbWF0Y2hfYWxsLCBzYXZlX2ZpbGVzX2RpcnMsIG8pKQogCQlyZXR1cm4gMDsKIAluID0gby0+Y3VycmVudF9maWxlX3NldC5uciArIG8tPmN1cnJlbnRfZGlyZWN0b3J5X3NldC5ucjsKQEAgLTY5Myw3ICs2OTMsNyBAQAogCS8qIE1ha2Ugc3VyZSBsZWFkaW5nIGRpcmVjdG9yaWVzIGFyZSBjcmVhdGVkICovCiAJc3RhdHVzID0gc2FmZV9jcmVhdGVfbGVhZGluZ19kaXJlY3Rvcmllc19jb25zdChwYXRoKTsKIAlpZiAoc3RhdHVzKSB7Ci0JCWlmIChzdGF0dXMgPT0gLTMpIHsKKwkJaWYgKHN0YXR1cyA9PSBTQ0xEX0VYSVNUUykgewogCQkJLyogc29tZXRoaW5nIGVsc2UgZXhpc3RzICovCiAJCQllcnJvcihtc2csIHBhdGgsIF8oIjogcGVyaGFwcyBhIEQvRiBjb25mbGljdD8iKSk7CiAJCQlyZXR1cm4gLTE7CkBAIC0yMDYzLDEzICsyMDYzLDEzIEBACiAJCW8tPnJlY3Vyc2l2ZV92YXJpYW50ID0gTUVSR0VfUkVDVVJTSVZFX1RIRUlSUzsKIAllbHNlIGlmICghc3RyY21wKHMsICJzdWJ0cmVlIikpCiAJCW8tPnN1YnRyZWVfc2hpZnQgPSAiIjsKLQllbHNlIGlmICghcHJlZml4Y21wKHMsICJzdWJ0cmVlPSIpKQorCWVsc2UgaWYgKHN0YXJ0c193aXRoKHMsICJzdWJ0cmVlPSIpKQogCQlvLT5zdWJ0cmVlX3NoaWZ0ID0gcyArIHN0cmxlbigic3VidHJlZT0iKTsKIAllbHNlIGlmICghc3RyY21wKHMsICJwYXRpZW5jZSIpKQogCQlvLT54ZGxfb3B0cyA9IERJRkZfV0lUSF9BTEcobywgUEFUSUVOQ0VfRElGRik7CiAJZWxzZSBpZiAoIXN0cmNtcChzLCAiaGlzdG9ncmFtIikpCiAJCW8tPnhkbF9vcHRzID0gRElGRl9XSVRIX0FMRyhvLCBISVNUT0dSQU1fRElGRik7Ci0JZWxzZSBpZiAoIXByZWZpeGNtcChzLCAiZGlmZi1hbGdvcml0aG09IikpIHsKKwllbHNlIGlmIChzdGFydHNfd2l0aChzLCAiZGlmZi1hbGdvcml0aG09IikpIHsKIAkJbG9uZyB2YWx1ZSA9IHBhcnNlX2FsZ29yaXRobV92YWx1ZShzICsgc3RybGVuKCJkaWZmLWFsZ29yaXRobT0iKSk7CiAJCWlmICh2YWx1ZSA8IDApCiAJCQlyZXR1cm4gLTE7CkBAIC0yMDg4LDcgKzIwODgsNyBAQAogCQlvLT5yZW5vcm1hbGl6ZSA9IDE7CiAJZWxzZSBpZiAoIXN0cmNtcChzLCAibm8tcmVub3JtYWxpemUiKSkKIAkJby0+cmVub3JtYWxpemUgPSAwOwotCWVsc2UgaWYgKCFwcmVmaXhjbXAocywgInJlbmFtZS10aHJlc2hvbGQ9IikpIHsKKwllbHNlIGlmIChzdGFydHNfd2l0aChzLCAicmVuYW1lLXRocmVzaG9sZD0iKSkgewogCQljb25zdCBjaGFyICpzY29yZSA9IHMgKyBzdHJsZW4oInJlbmFtZS10aHJlc2hvbGQ9Iik7CiAJCWlmICgoby0+cmVuYW1lX3Njb3JlID0gcGFyc2VfcmVuYW1lX3Njb3JlKCZzY29yZSkpID09IC0xIHx8ICpzY29yZSAhPSAwKQogCQkJcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvbWVyZ2V0b29scy9kaWZmbWVyZ2UgYi9tZXJnZXRvb2xzL2RpZmZtZXJnZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWFjNzIwCi0tLSAvZGV2L251bGwKKysrIGIvbWVyZ2V0b29scy9kaWZmbWVyZ2UKQEAgLTAsMCArMSwxNSBAQAorZGlmZl9jbWQgKCkgeworCSIkbWVyZ2VfdG9vbF9wYXRoIiAiJExPQ0FMIiAiJFJFTU9URSIgPi9kZXYvbnVsbCAyPiYxCit9CisKK21lcmdlX2NtZCAoKSB7CisJaWYgJGJhc2VfcHJlc2VudAorCXRoZW4KKwkJIiRtZXJnZV90b29sX3BhdGgiIC0tbWVyZ2UgLS1yZXN1bHQ9IiRNRVJHRUQiIFwKKwkJCSIkTE9DQUwiICIkQkFTRSIgIiRSRU1PVEUiCisJZWxzZQorCQkiJG1lcmdlX3Rvb2xfcGF0aCIgLS1tZXJnZSBcCisJCQktLXJlc3VsdD0iJE1FUkdFRCIgIiRMT0NBTCIgIiRSRU1PVEUiCisJZmkKKwlzdGF0dXM9JD8KK30KZGlmZiAtLWdpdCBhL25hbWUtaGFzaC5jIGIvbmFtZS1oYXNoLmMKaW5kZXggNjE3Yzg2Yy4uZTViNmUxYSAxMDA2NDQKLS0tIGEvbmFtZS1oYXNoLmMKKysrIGIvbmFtZS1oYXNoLmMKQEAgLTU4LDkgKzU4LDkgQEAKIHsKIAkvKgogCSAqIFRocm93IGVhY2ggZGlyZWN0b3J5IGNvbXBvbmVudCBpbiB0aGUgaGFzaCBmb3IgcXVpY2sgbG9va3VwCi0JICogZHVyaW5nIGEgZ2l0IHN0YXR1cy4gRGlyZWN0b3J5IGNvbXBvbmVudHMgYXJlIHN0b3JlZCB3aXRoIHRoZWlyCisJICogZHVyaW5nIGEgZ2l0IHN0YXR1cy4gRGlyZWN0b3J5IGNvbXBvbmVudHMgYXJlIHN0b3JlZCB3aXRob3V0IHRoZWlyCiAJICogY2xvc2luZyBzbGFzaC4gIERlc3BpdGUgc3VibW9kdWxlcyBiZWluZyBhIGRpcmVjdG9yeSwgdGhleSBuZXZlcgotCSAqIHJlYWNoIHRoaXMgcG9pbnQsIGJlY2F1c2UgdGhleSBhcmUgc3RvcmVkIHdpdGhvdXQgYSBjbG9zaW5nIHNsYXNoCisJICogcmVhY2ggdGhpcyBwb2ludCwgYmVjYXVzZSB0aGV5IGFyZSBzdG9yZWQKIAkgKiBpbiBpbmRleF9zdGF0ZS5uYW1lX2hhc2ggKGFzIG9yZGluYXJ5IGNhY2hlX2VudHJpZXMpLgogCSAqCiAJICogTm90ZSB0aGF0IHRoZSBjYWNoZV9lbnRyeSBzdG9yZWQgd2l0aCB0aGUgZGlyX2VudHJ5IG1lcmVseQpAQCAtNzgsNiArNzgsNyBAQAogCQluYW1lbGVuLS07CiAJaWYgKG5hbWVsZW4gPD0gMCkKIAkJcmV0dXJuIE5VTEw7CisJbmFtZWxlbi0tOwogCiAJLyogbG9va3VwIGV4aXN0aW5nIGVudHJ5IGZvciB0aGF0IGRpcmVjdG9yeSAqLwogCWRpciA9IGZpbmRfZGlyX2VudHJ5KGlzdGF0ZSwgY2UtPm5hbWUsIG5hbWVsZW4pOwpAQCAtOTcsNyArOTgsNyBAQAogCQl9CiAKIAkJLyogcmVjdXJzaXZlbHkgYWRkIG1pc3NpbmcgcGFyZW50IGRpcmVjdG9yaWVzICovCi0JCWRpci0+cGFyZW50ID0gaGFzaF9kaXJfZW50cnkoaXN0YXRlLCBjZSwgbmFtZWxlbiAtIDEpOworCQlkaXItPnBhcmVudCA9IGhhc2hfZGlyX2VudHJ5KGlzdGF0ZSwgY2UsIG5hbWVsZW4pOwogCX0KIAlyZXR1cm4gZGlyOwogfQpAQCAtMjIyLDcgKzIyMywyOSBAQAogCXJldHVybiBzbG93X3NhbWVfbmFtZShuYW1lLCBuYW1lbGVuLCBjZS0+bmFtZSwgbGVuKTsKIH0KIAotc3RydWN0IGNhY2hlX2VudHJ5ICppbmRleF9uYW1lX2V4aXN0cyhzdHJ1Y3QgaW5kZXhfc3RhdGUgKmlzdGF0ZSwgY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVsZW4sIGludCBpY2FzZSkKK3N0cnVjdCBjYWNoZV9lbnRyeSAqaW5kZXhfZGlyX2V4aXN0cyhzdHJ1Y3QgaW5kZXhfc3RhdGUgKmlzdGF0ZSwgY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVsZW4pCit7CisJc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKKwlzdHJ1Y3QgZGlyX2VudHJ5ICpkaXI7CisKKwlsYXp5X2luaXRfbmFtZV9oYXNoKGlzdGF0ZSk7CisJZGlyID0gZmluZF9kaXJfZW50cnkoaXN0YXRlLCBuYW1lLCBuYW1lbGVuKTsKKwlpZiAoZGlyICYmIGRpci0+bnIpCisJCXJldHVybiBkaXItPmNlOworCisJLyoKKwkgKiBJdCBtaWdodCBiZSBhIHN1Ym1vZHVsZS4gVW5saWtlIHBsYWluIGRpcmVjdG9yaWVzLCB3aGljaCBhcmUgc3RvcmVkCisJICogaW4gdGhlIGRpci1oYXNoLCBzdWJtb2R1bGVzIGFyZSBzdG9yZWQgaW4gdGhlIG5hbWUtaGFzaCwgc28gY2hlY2sKKwkgKiB0aGVyZSwgYXMgd2VsbC4KKwkgKi8KKwljZSA9IGluZGV4X2ZpbGVfZXhpc3RzKGlzdGF0ZSwgbmFtZSwgbmFtZWxlbiwgMSk7CisJaWYgKGNlICYmIFNfSVNHSVRMSU5LKGNlLT5jZV9tb2RlKSkKKwkJcmV0dXJuIGNlOworCisJcmV0dXJuIE5VTEw7Cit9CisKK3N0cnVjdCBjYWNoZV9lbnRyeSAqaW5kZXhfZmlsZV9leGlzdHMoc3RydWN0IGluZGV4X3N0YXRlICppc3RhdGUsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuYW1lbGVuLCBpbnQgaWNhc2UpCiB7CiAJdW5zaWduZWQgaW50IGhhc2ggPSBoYXNoX25hbWUobmFtZSwgbmFtZWxlbik7CiAJc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKQEAgLTIzNywzMiArMjYwLDE2IEBACiAJCX0KIAkJY2UgPSBjZS0+bmV4dDsKIAl9Ci0KLQkvKgotCSAqIFdoZW4gbG9va2luZyBmb3IgYSBkaXJlY3RvcnkgKHRyYWlsaW5nICcvJyksIGl0IG1pZ2h0IGJlIGEKLQkgKiBzdWJtb2R1bGUgb3IgYSBkaXJlY3RvcnkuIERlc3BpdGUgc3VibW9kdWxlcyBiZWluZyBkaXJlY3RvcmllcywKLQkgKiB0aGV5IGFyZSBzdG9yZWQgaW4gdGhlIG5hbWUgaGFzaCB3aXRob3V0IGEgY2xvc2luZyBzbGFzaC4KLQkgKiBXaGVuIGlnbm9yZV9jYXNlIGlzIDEsIGRpcmVjdG9yaWVzIGFyZSBzdG9yZWQgaW4gYSBzZXBhcmF0ZSBoYXNoCi0JICogdGFibGUgKndpdGgqIHRoZWlyIGNsb3Npbmcgc2xhc2guCi0JICoKLQkgKiBUaGUgc2lkZSBlZmZlY3Qgb2YgdGhpcyBzdG9yYWdlIHRlY2huaXF1ZSBpcyB3ZSBoYXZlIG5lZWQgdG8KLQkgKiBsb29rdXAgdGhlIGRpcmVjdG9yeSBpbiBhIHNlcGFyYXRlIGhhc2ggdGFibGUsIGFuZCBpZiBub3QgZm91bmQKLQkgKiByZW1vdmUgdGhlIHNsYXNoIGZyb20gbmFtZSBhbmQgcGVyZm9ybSB0aGUgbG9va3VwIGFnYWluIHdpdGhvdXQKLQkgKiB0aGUgc2xhc2guICBJZiBhIG1hdGNoIGlzIG1hZGUsIFNfSVNHSVRMSU5LKGNlLT5tb2RlKSB3aWxsIGJlCi0JICogdHJ1ZS4KLQkgKi8KLQlpZiAoaWNhc2UgJiYgbmFtZVtuYW1lbGVuIC0gMV0gPT0gJy8nKSB7Ci0JCXN0cnVjdCBkaXJfZW50cnkgKmRpciA9IGZpbmRfZGlyX2VudHJ5KGlzdGF0ZSwgbmFtZSwgbmFtZWxlbik7Ci0JCWlmIChkaXIgJiYgZGlyLT5ucikKLQkJCXJldHVybiBkaXItPmNlOwotCi0JCWNlID0gaW5kZXhfbmFtZV9leGlzdHMoaXN0YXRlLCBuYW1lLCBuYW1lbGVuIC0gMSwgaWNhc2UpOwotCQlpZiAoY2UgJiYgU19JU0dJVExJTksoY2UtPmNlX21vZGUpKQotCQkJcmV0dXJuIGNlOwotCX0KIAlyZXR1cm4gTlVMTDsKIH0KIAorc3RydWN0IGNhY2hlX2VudHJ5ICppbmRleF9uYW1lX2V4aXN0cyhzdHJ1Y3QgaW5kZXhfc3RhdGUgKmlzdGF0ZSwgY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVsZW4sIGludCBpY2FzZSkKK3sKKwlpZiAobmFtZWxlbiA+IDAgJiYgbmFtZVtuYW1lbGVuIC0gMV0gPT0gJy8nKQorCQlyZXR1cm4gaW5kZXhfZGlyX2V4aXN0cyhpc3RhdGUsIG5hbWUsIG5hbWVsZW4gLSAxKTsKKwlyZXR1cm4gaW5kZXhfZmlsZV9leGlzdHMoaXN0YXRlLCBuYW1lLCBuYW1lbGVuLCBpY2FzZSk7Cit9CisKIHN0YXRpYyBpbnQgZnJlZV9kaXJfZW50cnkodm9pZCAqZW50cnksIHZvaWQgKnVudXNlZCkKIHsKIAlzdHJ1Y3QgZGlyX2VudHJ5ICpkaXIgPSBlbnRyeTsKZGlmZiAtLWdpdCBhL25vdGVzLW1lcmdlLmMgYi9ub3Rlcy1tZXJnZS5jCmluZGV4IGFiMTg4NTcuLjk0YTFhOGEgMTAwNjQ0Ci0tLSBhL25vdGVzLW1lcmdlLmMKKysrIGIvbm90ZXMtbWVyZ2UuYwpAQCAtMTcwLDcgKzE3MCw3IEBACiAJCSAgICAgICBzaGExX3RvX2hleChtcC0+cmVtb3RlKSk7CiAJfQogCWRpZmZfZmx1c2goJm9wdCk7Ci0JZGlmZl90cmVlX3JlbGVhc2VfcGF0aHMoJm9wdCk7CisJZnJlZV9wYXRoc3BlYygmb3B0LnBhdGhzcGVjKTsKIAogCSpudW1fY2hhbmdlcyA9IGxlbjsKIAlyZXR1cm4gY2hhbmdlczsKQEAgLTI1Niw3ICsyNTYsNyBAQAogCQkgICAgICAgc2hhMV90b19oZXgobXAtPmxvY2FsKSk7CiAJfQogCWRpZmZfZmx1c2goJm9wdCk7Ci0JZGlmZl90cmVlX3JlbGVhc2VfcGF0aHMoJm9wdCk7CisJZnJlZV9wYXRoc3BlYygmb3B0LnBhdGhzcGVjKTsKIH0KIAogc3RhdGljIHZvaWQgY2hlY2tfbm90ZXNfbWVyZ2Vfd29ya3RyZWUoc3RydWN0IG5vdGVzX21lcmdlX29wdGlvbnMgKm8pCmRpZmYgLS1naXQgYS9ub3Rlcy11dGlscy5jIGIvbm90ZXMtdXRpbHMuYwppbmRleCA5MTA3YzM3Li4yOTc1ZGNkIDEwMDY0NAotLS0gYS9ub3Rlcy11dGlscy5jCisrKyBiL25vdGVzLXV0aWxzLmMKQEAgLTE4LDcgKzE4LDcgQEAKIAkJdW5zaWduZWQgY2hhciBwYXJlbnRfc2hhMVsyMF07CiAJCWlmICghcmVhZF9yZWYodC0+cmVmLCBwYXJlbnRfc2hhMSkpIHsKIAkJCXN0cnVjdCBjb21taXQgKnBhcmVudCA9IGxvb2t1cF9jb21taXQocGFyZW50X3NoYTEpOwotCQkJaWYgKCFwYXJlbnQgfHwgcGFyc2VfY29tbWl0KHBhcmVudCkpCisJCQlpZiAocGFyc2VfY29tbWl0KHBhcmVudCkpCiAJCQkJZGllKCJGYWlsZWQgdG8gZmluZC9wYXJzZSBjb21taXQgJXMiLCB0LT5yZWYpOwogCQkJY29tbWl0X2xpc3RfaW5zZXJ0KHBhcmVudCwgJnBhcmVudHMpOwogCQl9CkBAIC03MCw3ICs3MCw3IEBACiBzdGF0aWMgaW50IG5vdGVzX3Jld3JpdGVfY29uZmlnKGNvbnN0IGNoYXIgKmssIGNvbnN0IGNoYXIgKnYsIHZvaWQgKmNiKQogewogCXN0cnVjdCBub3Rlc19yZXdyaXRlX2NmZyAqYyA9IGNiOwotCWlmICghcHJlZml4Y21wKGssICJub3Rlcy5yZXdyaXRlLiIpICYmICFzdHJjbXAoaysxNCwgYy0+Y21kKSkgeworCWlmIChzdGFydHNfd2l0aChrLCAibm90ZXMucmV3cml0ZS4iKSAmJiAhc3RyY21wKGsrMTQsIGMtPmNtZCkpIHsKIAkJYy0+ZW5hYmxlZCA9IGdpdF9jb25maWdfYm9vbChrLCB2KTsKIAkJcmV0dXJuIDA7CiAJfSBlbHNlIGlmICghYy0+bW9kZV9mcm9tX2VudiAmJiAhc3RyY21wKGssICJub3Rlcy5yZXdyaXRlbW9kZSIpKSB7CkBAIC04NSw3ICs4NSw3IEBACiAJfSBlbHNlIGlmICghYy0+cmVmc19mcm9tX2VudiAmJiAhc3RyY21wKGssICJub3Rlcy5yZXdyaXRlcmVmIikpIHsKIAkJLyogbm90ZSB0aGF0IGEgcmVmcy8gcHJlZml4IGlzIGltcGxpZWQgaW4gdGhlCiAJCSAqIHVuZGVybHlpbmcgZm9yX2VhY2hfZ2xvYl9yZWYgKi8KLQkJaWYgKCFwcmVmaXhjbXAodiwgInJlZnMvbm90ZXMvIikpCisJCWlmIChzdGFydHNfd2l0aCh2LCAicmVmcy9ub3Rlcy8iKSkKIAkJCXN0cmluZ19saXN0X2FkZF9yZWZzX2J5X2dsb2IoYy0+cmVmcywgdik7CiAJCWVsc2UKIAkJCXdhcm5pbmcoXygiUmVmdXNpbmcgdG8gcmV3cml0ZSBub3RlcyBpbiAlcyIKZGlmZiAtLWdpdCBhL25vdGVzLXV0aWxzLmggYi9ub3Rlcy11dGlscy5oCmluZGV4IGI0Y2IxYmYuLjU2NGUzMGMgMTAwNjQ0Ci0tLSBhL25vdGVzLXV0aWxzLmgKKysrIGIvbm90ZXMtdXRpbHMuaApAQCAtOSw3ICs5LDcgQEAKICAqIFByb3BlcnRpZXMgb2YgdGhlIGNyZWF0ZWQgY29tbWl0OgogICogLSB0cmVlOiB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgdCB0byBhIHRyZWUgb2JqZWN0IHdpdGggd3JpdGVfbm90ZXNfdHJlZSgpLgogICogLSBwYXJlbnRzOiB0aGUgZ2l2ZW4gcGFyZW50cyBPUiAoaWYgTlVMTCkgdGhlIGNvbW1pdCByZWZlcmVuY2VkIGJ5IHQtPnJlZi4KLSAqIC0gYXV0aG9yL2NvbW1pdHRlcjogdGhlIGRlZmF1bHQgZGV0ZXJtaW5lZCBieSBjb21tbWl0X3RyZWUoKS4KKyAqIC0gYXV0aG9yL2NvbW1pdHRlcjogdGhlIGRlZmF1bHQgZGV0ZXJtaW5lZCBieSBjb21taXRfdHJlZSgpLgogICogLSBjb21taXQgbWVzc2FnZTogbXNnCiAgKgogICogVGhlIHJlc3VsdGluZyBjb21taXQgU0hBMSBpcyBzdG9yZWQgaW4gcmVzdWx0X3NoYTEuCmRpZmYgLS1naXQgYS9ub3Rlcy5jIGIvbm90ZXMuYwppbmRleCBiNjljMGI4Li41ZjA3YzBiIDEwMDY0NAotLS0gYS9ub3Rlcy5jCisrKyBiL25vdGVzLmMKQEAgLTEyNDMsOSArMTI0Myw5IEBACiAJCWlmICghcmVmIHx8ICFzdHJjbXAocmVmLCBHSVRfTk9URVNfREVGQVVMVF9SRUYpKSB7CiAJCQlzdHJidWZfYWRkc3RyKHNiLCAiXG5Ob3RlczpcbiIpOwogCQl9IGVsc2UgewotCQkJaWYgKCFwcmVmaXhjbXAocmVmLCAicmVmcy8iKSkKKwkJCWlmIChzdGFydHNfd2l0aChyZWYsICJyZWZzLyIpKQogCQkJCXJlZiArPSA1OwotCQkJaWYgKCFwcmVmaXhjbXAocmVmLCAibm90ZXMvIikpCisJCQlpZiAoc3RhcnRzX3dpdGgocmVmLCAibm90ZXMvIikpCiAJCQkJcmVmICs9IDY7CiAJCQlzdHJidWZfYWRkZihzYiwgIlxuTm90ZXMgKCVzKTpcbiIsIHJlZik7CiAJCX0KQEAgLTEyOTMsOSArMTI5Myw5IEBACiAKIHZvaWQgZXhwYW5kX25vdGVzX3JlZihzdHJ1Y3Qgc3RyYnVmICpzYikKIHsKLQlpZiAoIXByZWZpeGNtcChzYi0+YnVmLCAicmVmcy9ub3Rlcy8iKSkKKwlpZiAoc3RhcnRzX3dpdGgoc2ItPmJ1ZiwgInJlZnMvbm90ZXMvIikpCiAJCXJldHVybjsgLyogd2UncmUgaGFwcHkgKi8KLQllbHNlIGlmICghcHJlZml4Y21wKHNiLT5idWYsICJub3Rlcy8iKSkKKwllbHNlIGlmIChzdGFydHNfd2l0aChzYi0+YnVmLCAibm90ZXMvIikpCiAJCXN0cmJ1Zl9pbnNlcnQoc2IsIDAsICJyZWZzLyIsIDUpOwogCWVsc2UKIAkJc3RyYnVmX2luc2VydChzYiwgMCwgInJlZnMvbm90ZXMvIiwgMTEpOwpkaWZmIC0tZ2l0IGEvb2JqZWN0LmMgYi9vYmplY3QuYwppbmRleCBkOGE0YjFmLi41ODRmN2FjIDEwMDY0NAotLS0gYS9vYmplY3QuYworKysgYi9vYmplY3QuYwpAQCAtNDMsMTYgKzQzLDE3IEBACiAJZGllKCJpbnZhbGlkIG9iamVjdCB0eXBlIFwiJXNcIiIsIHN0cik7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgaGFzaF9vYmooc3RydWN0IG9iamVjdCAqb2JqLCB1bnNpZ25lZCBpbnQgbikKK3N0YXRpYyB1bnNpZ25lZCBpbnQgaGFzaF9vYmooY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgdW5zaWduZWQgaW50IG4pCiB7CiAJdW5zaWduZWQgaW50IGhhc2g7Ci0JbWVtY3B5KCZoYXNoLCBvYmotPnNoYTEsIHNpemVvZih1bnNpZ25lZCBpbnQpKTsKLQlyZXR1cm4gaGFzaCAlIG47CisJbWVtY3B5KCZoYXNoLCBzaGExLCBzaXplb2YodW5zaWduZWQgaW50KSk7CisJLyogQXNzdW1lcyBwb3dlci1vZi0yIGhhc2ggc2l6ZXMgaW4gZ3Jvd19vYmplY3RfaGFzaCAqLworCXJldHVybiBoYXNoICYgKG4gLSAxKTsKIH0KIAogc3RhdGljIHZvaWQgaW5zZXJ0X29ial9oYXNoKHN0cnVjdCBvYmplY3QgKm9iaiwgc3RydWN0IG9iamVjdCAqKmhhc2gsIHVuc2lnbmVkIGludCBzaXplKQogewotCXVuc2lnbmVkIGludCBqID0gaGFzaF9vYmoob2JqLCBzaXplKTsKKwl1bnNpZ25lZCBpbnQgaiA9IGhhc2hfb2JqKG9iai0+c2hhMSwgc2l6ZSk7CiAKIAl3aGlsZSAoaGFzaFtqXSkgewogCQlqKys7CkBAIC02MiwxMyArNjMsNiBAQAogCWhhc2hbal0gPSBvYmo7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgaGFzaHRhYmxlX2luZGV4KGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEpCi17Ci0JdW5zaWduZWQgaW50IGk7Ci0JbWVtY3B5KCZpLCBzaGExLCBzaXplb2YodW5zaWduZWQgaW50KSk7Ci0JcmV0dXJuIGkgJSBvYmpfaGFzaF9zaXplOwotfQotCiBzdHJ1Y3Qgb2JqZWN0ICpsb29rdXBfb2JqZWN0KGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEpCiB7CiAJdW5zaWduZWQgaW50IGksIGZpcnN0OwpAQCAtNzcsNyArNzEsNyBAQAogCWlmICghb2JqX2hhc2gpCiAJCXJldHVybiBOVUxMOwogCi0JZmlyc3QgPSBpID0gaGFzaHRhYmxlX2luZGV4KHNoYTEpOworCWZpcnN0ID0gaSA9IGhhc2hfb2JqKHNoYTEsIG9ial9oYXNoX3NpemUpOwogCXdoaWxlICgob2JqID0gb2JqX2hhc2hbaV0pICE9IE5VTEwpIHsKIAkJaWYgKCFoYXNoY21wKHNoYTEsIG9iai0+c2hhMSkpCiAJCQlicmVhazsKQEAgLTEwMSw2ICs5NSwxMCBAQAogc3RhdGljIHZvaWQgZ3Jvd19vYmplY3RfaGFzaCh2b2lkKQogewogCWludCBpOworCS8qCisJICogTm90ZSB0aGF0IHRoaXMgc2l6ZSBtdXN0IGFsd2F5cyBiZSBwb3dlci1vZi0yIHRvIG1hdGNoIGhhc2hfb2JqCisJICogYWJvdmUuCisJICovCiAJaW50IG5ld19oYXNoX3NpemUgPSBvYmpfaGFzaF9zaXplIDwgMzIgPyAzMiA6IDIgKiBvYmpfaGFzaF9zaXplOwogCXN0cnVjdCBvYmplY3QgKipuZXdfaGFzaDsKIApAQCAtMjY0LDE4ICsyNjIsMTYgQEAKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCBhZGRfb2JqZWN0X2FycmF5KHN0cnVjdCBvYmplY3QgKm9iaiwgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamVjdF9hcnJheSAqYXJyYXkpCi17Ci0JYWRkX29iamVjdF9hcnJheV93aXRoX21vZGUob2JqLCBuYW1lLCBhcnJheSwgU19JRklOVkFMSUQpOwotfQotCiAvKgogICogQSB6ZXJvLWxlbmd0aCBzdHJpbmcgdG8gd2hpY2ggb2JqZWN0X2FycmF5X2VudHJ5OjpuYW1lIGNhbiBiZQogICogaW5pdGlhbGl6ZWQgd2l0aG91dCByZXF1aXJpbmcgYSBtYWxsb2MvZnJlZS4KICAqLwogc3RhdGljIGNoYXIgb2JqZWN0X2FycmF5X3Nsb3BidWZbMV07CiAKLXZvaWQgYWRkX29iamVjdF9hcnJheV93aXRoX21vZGUoc3RydWN0IG9iamVjdCAqb2JqLCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphcnJheSwgdW5zaWduZWQgbW9kZSkKK3N0YXRpYyB2b2lkIGFkZF9vYmplY3RfYXJyYXlfd2l0aF9tb2RlX2NvbnRleHQoc3RydWN0IG9iamVjdCAqb2JqLCBjb25zdCBjaGFyICpuYW1lLAorCQkJCQkgICAgICAgc3RydWN0IG9iamVjdF9hcnJheSAqYXJyYXksCisJCQkJCSAgICAgICB1bnNpZ25lZCBtb2RlLAorCQkJCQkgICAgICAgc3RydWN0IG9iamVjdF9jb250ZXh0ICpjb250ZXh0KQogewogCXVuc2lnbmVkIG5yID0gYXJyYXktPm5yOwogCXVuc2lnbmVkIGFsbG9jID0gYXJyYXktPmFsbG9jOwpAQCAtMjk4LDkgKzI5NCwyOCBAQAogCWVsc2UKIAkJZW50cnktPm5hbWUgPSB4c3RyZHVwKG5hbWUpOwogCWVudHJ5LT5tb2RlID0gbW9kZTsKKwllbnRyeS0+Y29udGV4dCA9IGNvbnRleHQ7CiAJYXJyYXktPm5yID0gKytucjsKIH0KIAordm9pZCBhZGRfb2JqZWN0X2FycmF5KHN0cnVjdCBvYmplY3QgKm9iaiwgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamVjdF9hcnJheSAqYXJyYXkpCit7CisJYWRkX29iamVjdF9hcnJheV93aXRoX21vZGUob2JqLCBuYW1lLCBhcnJheSwgU19JRklOVkFMSUQpOworfQorCit2b2lkIGFkZF9vYmplY3RfYXJyYXlfd2l0aF9tb2RlKHN0cnVjdCBvYmplY3QgKm9iaiwgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamVjdF9hcnJheSAqYXJyYXksIHVuc2lnbmVkIG1vZGUpCit7CisJYWRkX29iamVjdF9hcnJheV93aXRoX21vZGVfY29udGV4dChvYmosIG5hbWUsIGFycmF5LCBtb2RlLCBOVUxMKTsKK30KKwordm9pZCBhZGRfb2JqZWN0X2FycmF5X3dpdGhfY29udGV4dChzdHJ1Y3Qgb2JqZWN0ICpvYmosIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBvYmplY3RfYXJyYXkgKmFycmF5LCBzdHJ1Y3Qgb2JqZWN0X2NvbnRleHQgKmNvbnRleHQpCit7CisJaWYgKGNvbnRleHQpCisJCWFkZF9vYmplY3RfYXJyYXlfd2l0aF9tb2RlX2NvbnRleHQob2JqLCBuYW1lLCBhcnJheSwgY29udGV4dC0+bW9kZSwgY29udGV4dCk7CisJZWxzZQorCQlhZGRfb2JqZWN0X2FycmF5X3dpdGhfbW9kZV9jb250ZXh0KG9iaiwgbmFtZSwgYXJyYXksIFNfSUZJTlZBTElELCBjb250ZXh0KTsKK30KKwogdm9pZCBvYmplY3RfYXJyYXlfZmlsdGVyKHN0cnVjdCBvYmplY3RfYXJyYXkgKmFycmF5LAogCQkJIG9iamVjdF9hcnJheV9lYWNoX2Z1bmNfdCB3YW50LCB2b2lkICpjYl9kYXRhKQogewpkaWZmIC0tZ2l0IGEvb2JqZWN0LmggYi9vYmplY3QuaAppbmRleCAyZmY2OGM1Li5kYzVkZjhjIDEwMDY0NAotLS0gYS9vYmplY3QuaAorKysgYi9vYmplY3QuaApAQCAtMTksNiArMTksNyBAQAogCQkgKi8KIAkJY2hhciAqbmFtZTsKIAkJdW5zaWduZWQgbW9kZTsKKwkJc3RydWN0IG9iamVjdF9jb250ZXh0ICpjb250ZXh0OwogCX0gKm9iamVjdHM7CiB9OwogCkBAIC05MSw2ICs5Miw3IEBACiAvKiBPYmplY3QgYXJyYXkgaGFuZGxpbmcgLi4gKi8KIHZvaWQgYWRkX29iamVjdF9hcnJheShzdHJ1Y3Qgb2JqZWN0ICpvYmosIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBvYmplY3RfYXJyYXkgKmFycmF5KTsKIHZvaWQgYWRkX29iamVjdF9hcnJheV93aXRoX21vZGUoc3RydWN0IG9iamVjdCAqb2JqLCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphcnJheSwgdW5zaWduZWQgbW9kZSk7Cit2b2lkIGFkZF9vYmplY3RfYXJyYXlfd2l0aF9jb250ZXh0KHN0cnVjdCBvYmplY3QgKm9iaiwgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamVjdF9hcnJheSAqYXJyYXksIHN0cnVjdCBvYmplY3RfY29udGV4dCAqY29udGV4dCk7CiAKIHR5cGVkZWYgaW50ICgqb2JqZWN0X2FycmF5X2VhY2hfZnVuY190KShzdHJ1Y3Qgb2JqZWN0X2FycmF5X2VudHJ5ICosIHZvaWQgKik7CiAKZGlmZiAtLWdpdCBhL3BhY2std3JpdGUuYyBiL3BhY2std3JpdGUuYwppbmRleCBjYTllNjNiLi42MDVkMDFiIDEwMDY0NAotLS0gYS9wYWNrLXdyaXRlLmMKKysrIGIvcGFjay13cml0ZS5jCkBAIC00NCwxNCArNDQsMTMgQEAKICAqLwogY29uc3QgY2hhciAqd3JpdGVfaWR4X2ZpbGUoY29uc3QgY2hhciAqaW5kZXhfbmFtZSwgc3RydWN0IHBhY2tfaWR4X2VudHJ5ICoqb2JqZWN0cywKIAkJCSAgIGludCBucl9vYmplY3RzLCBjb25zdCBzdHJ1Y3QgcGFja19pZHhfb3B0aW9uICpvcHRzLAotCQkJICAgdW5zaWduZWQgY2hhciAqc2hhMSkKKwkJCSAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEpCiB7CiAJc3RydWN0IHNoYTFmaWxlICpmOwogCXN0cnVjdCBwYWNrX2lkeF9lbnRyeSAqKnNvcnRlZF9ieV9zaGEsICoqbGlzdCwgKipsYXN0OwogCW9mZl90IGxhc3Rfb2JqX29mZnNldCA9IDA7CiAJdWludDMyX3QgYXJyYXlbMjU2XTsKIAlpbnQgaSwgZmQ7Ci0JZ2l0X1NIQV9DVFggY3R4OwogCXVpbnQzMl90IGluZGV4X3ZlcnNpb247CiAKIAlpZiAobnJfb2JqZWN0cykgewpAQCAtMTE0LDkgKzExMyw2IEBACiAJfQogCXNoYTF3cml0ZShmLCBhcnJheSwgMjU2ICogNCk7CiAKLQkvKiBjb21wdXRlIHRoZSBTSEExIGhhc2ggb2Ygc29ydGVkIG9iamVjdCBuYW1lcy4gKi8KLQlnaXRfU0hBMV9Jbml0KCZjdHgpOwotCiAJLyoKIAkgKiBXcml0ZSB0aGUgYWN0dWFsIFNIQTEgZW50cmllcy4uCiAJICovCkBAIC0xMjgsNyArMTI0LDYgQEAKIAkJCXNoYTF3cml0ZShmLCAmb2Zmc2V0LCA0KTsKIAkJfQogCQlzaGExd3JpdGUoZiwgb2JqLT5zaGExLCAyMCk7Ci0JCWdpdF9TSEExX1VwZGF0ZSgmY3R4LCBvYmotPnNoYTEsIDIwKTsKIAkJaWYgKChvcHRzLT5mbGFncyAmIFdSSVRFX0lEWF9TVFJJQ1QpICYmCiAJCSAgICAoaSAmJiAhaGFzaGNtcChsaXN0Wy0yXS0+c2hhMSwgb2JqLT5zaGExKSkpCiAJCQlkaWUoIlRoZSBzYW1lIG9iamVjdCAlcyBhcHBlYXJzIHR3aWNlIGluIHRoZSBwYWNrIiwKQEAgLTE3OCw3ICsxNzMsNiBAQAogCXNoYTF3cml0ZShmLCBzaGExLCAyMCk7CiAJc2hhMWNsb3NlKGYsIE5VTEwsICgob3B0cy0+ZmxhZ3MgJiBXUklURV9JRFhfVkVSSUZZKQogCQkJICAgID8gQ1NVTV9DTE9TRSA6IENTVU1fRlNZTkMpKTsKLQlnaXRfU0hBMV9GaW5hbChzaGExLCAmY3R4KTsKIAlyZXR1cm4gaW5kZXhfbmFtZTsKIH0KIApAQCAtMTg5LDggKzE4Myw3IEBACiAJaGRyLmhkcl9zaWduYXR1cmUgPSBodG9ubChQQUNLX1NJR05BVFVSRSk7CiAJaGRyLmhkcl92ZXJzaW9uID0gaHRvbmwoUEFDS19WRVJTSU9OKTsKIAloZHIuaGRyX2VudHJpZXMgPSBodG9ubChucl9lbnRyaWVzKTsKLQlpZiAoc2hhMXdyaXRlKGYsICZoZHIsIHNpemVvZihoZHIpKSkKLQkJcmV0dXJuIDA7CisJc2hhMXdyaXRlKGYsICZoZHIsIHNpemVvZihoZHIpKTsKIAlyZXR1cm4gc2l6ZW9mKGhkcik7CiB9CiAKZGlmZiAtLWdpdCBhL3BhY2suaCBiL3BhY2suaAppbmRleCBhYTZlZTdkLi4xMmQ5NTE2IDEwMDY0NAotLS0gYS9wYWNrLmgKKysrIGIvcGFjay5oCkBAIC03Niw3ICs3Niw3IEBACiBzdHJ1Y3QgcHJvZ3Jlc3M7CiB0eXBlZGVmIGludCAoKnZlcmlmeV9mbikoY29uc3QgdW5zaWduZWQgY2hhciosIGVudW0gb2JqZWN0X3R5cGUsIHVuc2lnbmVkIGxvbmcsIHZvaWQqLCBpbnQqKTsKIAotZXh0ZXJuIGNvbnN0IGNoYXIgKndyaXRlX2lkeF9maWxlKGNvbnN0IGNoYXIgKmluZGV4X25hbWUsIHN0cnVjdCBwYWNrX2lkeF9lbnRyeSAqKm9iamVjdHMsIGludCBucl9vYmplY3RzLCBjb25zdCBzdHJ1Y3QgcGFja19pZHhfb3B0aW9uICosIHVuc2lnbmVkIGNoYXIgKnNoYTEpOworZXh0ZXJuIGNvbnN0IGNoYXIgKndyaXRlX2lkeF9maWxlKGNvbnN0IGNoYXIgKmluZGV4X25hbWUsIHN0cnVjdCBwYWNrX2lkeF9lbnRyeSAqKm9iamVjdHMsIGludCBucl9vYmplY3RzLCBjb25zdCBzdHJ1Y3QgcGFja19pZHhfb3B0aW9uICosIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEpOwogZXh0ZXJuIGludCBjaGVja19wYWNrX2NyYyhzdHJ1Y3QgcGFja2VkX2dpdCAqcCwgc3RydWN0IHBhY2tfd2luZG93ICoqd19jdXJzLCBvZmZfdCBvZmZzZXQsIG9mZl90IGxlbiwgdW5zaWduZWQgaW50IG5yKTsKIGV4dGVybiBpbnQgdmVyaWZ5X3BhY2tfaW5kZXgoc3RydWN0IHBhY2tlZF9naXQgKik7CiBleHRlcm4gaW50IHZlcmlmeV9wYWNrKHN0cnVjdCBwYWNrZWRfZ2l0ICosIHZlcmlmeV9mbiBmbiwgc3RydWN0IHByb2dyZXNzICosIHVpbnQzMl90KTsKZGlmZiAtLWdpdCBhL3BhZ2VyLmMgYi9wYWdlci5jCmluZGV4IGMxZWNmNjUuLjBjYzc1YTggMTAwNjQ0Ci0tLSBhL3BhZ2VyLmMKKysrIGIvcGFnZXIuYwpAQCAtNTQsNyArNTQsNyBAQAogCQlwYWdlciA9IGdldGVudigiUEFHRVIiKTsKIAlpZiAoIXBhZ2VyKQogCQlwYWdlciA9IERFRkFVTFRfUEFHRVI7Ci0JZWxzZSBpZiAoISpwYWdlciB8fCAhc3RyY21wKHBhZ2VyLCAiY2F0IikpCisJaWYgKCEqcGFnZXIgfHwgIXN0cmNtcChwYWdlciwgImNhdCIpKQogCQlwYWdlciA9IE5VTEw7CiAKIAlyZXR1cm4gcGFnZXI7CkBAIC04MCw4ICs4MCwxNSBAQAogCXBhZ2VyX3Byb2Nlc3MudXNlX3NoZWxsID0gMTsKIAlwYWdlcl9wcm9jZXNzLmFyZ3YgPSBwYWdlcl9hcmd2OwogCXBhZ2VyX3Byb2Nlc3MuaW4gPSAtMTsKLQlpZiAoIWdldGVudigiTEVTUyIpKSB7Ci0JCXN0YXRpYyBjb25zdCBjaGFyICplbnZbXSA9IHsgIkxFU1M9RlJTWCIsIE5VTEwgfTsKKwlpZiAoIWdldGVudigiTEVTUyIpIHx8ICFnZXRlbnYoIkxWIikpIHsKKwkJc3RhdGljIGNvbnN0IGNoYXIgKmVudlszXTsKKwkJaW50IGkgPSAwOworCisJCWlmICghZ2V0ZW52KCJMRVNTIikpCisJCQllbnZbaSsrXSA9ICJMRVNTPUZSU1giOworCQlpZiAoIWdldGVudigiTFYiKSkKKwkJCWVudltpKytdID0gIkxWPS1jIjsKKwkJZW52W2ldID0gTlVMTDsKIAkJcGFnZXJfcHJvY2Vzcy5lbnYgPSBlbnY7CiAJfQogCWlmIChzdGFydF9jb21tYW5kKCZwYWdlcl9wcm9jZXNzKSkKQEAgLTE1MSw3ICsxNTgsNyBAQAogc3RhdGljIGludCBwYWdlcl9jb21tYW5kX2NvbmZpZyhjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBwYWdlcl9jb25maWcgKmMgPSBkYXRhOwotCWlmICghcHJlZml4Y21wKHZhciwgInBhZ2VyLiIpICYmICFzdHJjbXAodmFyICsgNiwgYy0+Y21kKSkgeworCWlmIChzdGFydHNfd2l0aCh2YXIsICJwYWdlci4iKSAmJiAhc3RyY21wKHZhciArIDYsIGMtPmNtZCkpIHsKIAkJaW50IGIgPSBnaXRfY29uZmlnX21heWJlX2Jvb2wodmFyLCB2YWx1ZSk7CiAJCWlmIChiID49IDApCiAJCQljLT53YW50ID0gYjsKZGlmZiAtLWdpdCBhL3BhcnNlLW9wdGlvbnMuYyBiL3BhcnNlLW9wdGlvbnMuYwppbmRleCBjMmNiY2EyLi43YjhkM2ZhIDEwMDY0NAotLS0gYS9wYXJzZS1vcHRpb25zLmMKKysrIGIvcGFyc2Utb3B0aW9ucy5jCkBAIC00Myw4ICs0Myw0MiBAQAogCSpmaWxlID0geHN0cmR1cChwcmVmaXhfZmlsZW5hbWUocHJlZml4LCBzdHJsZW4ocHJlZml4KSwgKmZpbGUpKTsKIH0KIAorc3RhdGljIGludCBvcHRfY29tbWFuZF9tb2RlX2Vycm9yKGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdCwKKwkJCQkgIGNvbnN0IHN0cnVjdCBvcHRpb24gKmFsbF9vcHRzLAorCQkJCSAgaW50IGZsYWdzKQoreworCWNvbnN0IHN0cnVjdCBvcHRpb24gKnRoYXQ7CisJc3RydWN0IHN0cmJ1ZiBtZXNzYWdlID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IHN0cmJ1ZiB0aGF0X25hbWUgPSBTVFJCVUZfSU5JVDsKKworCS8qCisJICogRmluZCB0aGUgb3RoZXIgb3B0aW9uIHRoYXQgd2FzIHVzZWQgdG8gc2V0IHRoZSB2YXJpYWJsZQorCSAqIGFscmVhZHksIGFuZCByZXBvcnQgdGhhdCB0aGlzIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggaXQuCisJICovCisJZm9yICh0aGF0ID0gYWxsX29wdHM7IHRoYXQtPnR5cGUgIT0gT1BUSU9OX0VORDsgdGhhdCsrKSB7CisJCWlmICh0aGF0ID09IG9wdCB8fAorCQkgICAgdGhhdC0+dHlwZSAhPSBPUFRJT05fQ01ETU9ERSB8fAorCQkgICAgdGhhdC0+dmFsdWUgIT0gb3B0LT52YWx1ZSB8fAorCQkgICAgdGhhdC0+ZGVmdmFsICE9ICooaW50ICopb3B0LT52YWx1ZSkKKwkJCWNvbnRpbnVlOworCisJCWlmICh0aGF0LT5sb25nX25hbWUpCisJCQlzdHJidWZfYWRkZigmdGhhdF9uYW1lLCAiLS0lcyIsIHRoYXQtPmxvbmdfbmFtZSk7CisJCWVsc2UKKwkJCXN0cmJ1Zl9hZGRmKCZ0aGF0X25hbWUsICItJWMiLCB0aGF0LT5zaG9ydF9uYW1lKTsKKwkJc3RyYnVmX2FkZGYoJm1lc3NhZ2UsICI6IGluY29tcGF0aWJsZSB3aXRoICVzIiwgdGhhdF9uYW1lLmJ1Zik7CisJCXN0cmJ1Zl9yZWxlYXNlKCZ0aGF0X25hbWUpOworCQlvcHRlcnJvcihvcHQsIG1lc3NhZ2UuYnVmLCBmbGFncyk7CisJCXN0cmJ1Zl9yZWxlYXNlKCZtZXNzYWdlKTsKKwkJcmV0dXJuIC0xOworCX0KKwlyZXR1cm4gb3B0ZXJyb3Iob3B0LCAiOiBpbmNvbXBhdGlibGUgd2l0aCBzb21ldGhpbmcgZWxzZSIsIGZsYWdzKTsKK30KKwogc3RhdGljIGludCBnZXRfdmFsdWUoc3RydWN0IHBhcnNlX29wdF9jdHhfdCAqcCwKLQkJICAgICBjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsIGludCBmbGFncykKKwkJICAgICBjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsCisJCSAgICAgY29uc3Qgc3RydWN0IG9wdGlvbiAqYWxsX29wdHMsCisJCSAgICAgaW50IGZsYWdzKQogewogCWNvbnN0IGNoYXIgKnMsICphcmc7CiAJY29uc3QgaW50IHVuc2V0ID0gZmxhZ3MgJiBPUFRfVU5TRVQ7CkBAIC04Myw2ICsxMTcsMTYgQEAKIAkJKihpbnQgKilvcHQtPnZhbHVlID0gdW5zZXQgPyAwIDogb3B0LT5kZWZ2YWw7CiAJCXJldHVybiAwOwogCisJY2FzZSBPUFRJT05fQ01ETU9ERToKKwkJLyoKKwkJICogR2l2aW5nIHRoZSBzYW1lIG1vZGUgb3B0aW9uIHR3aWNlLCBhbHRob3VnaCBpcyB1bm5lY2Vzc2FyeSwKKwkJICogaXMgbm90IGEgZ3JhdmUgZXJyb3IsIHNvIGxldCBpdCBwYXNzLgorCQkgKi8KKwkJaWYgKCooaW50ICopb3B0LT52YWx1ZSAmJiAqKGludCAqKW9wdC0+dmFsdWUgIT0gb3B0LT5kZWZ2YWwpCisJCQlyZXR1cm4gb3B0X2NvbW1hbmRfbW9kZV9lcnJvcihvcHQsIGFsbF9vcHRzLCBmbGFncyk7CisJCSooaW50ICopb3B0LT52YWx1ZSA9IG9wdC0+ZGVmdmFsOworCQlyZXR1cm4gMDsKKwogCWNhc2UgT1BUSU9OX1NFVF9QVFI6CiAJCSoodm9pZCAqKilvcHQtPnZhbHVlID0gdW5zZXQgPyBOVUxMIDogKHZvaWQgKilvcHQtPmRlZnZhbDsKIAkJcmV0dXJuIDA7CkBAIC0xNDMsMTIgKzE4NywxMyBAQAogCiBzdGF0aWMgaW50IHBhcnNlX3Nob3J0X29wdChzdHJ1Y3QgcGFyc2Vfb3B0X2N0eF90ICpwLCBjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHRpb25zKQogeworCWNvbnN0IHN0cnVjdCBvcHRpb24gKmFsbF9vcHRzID0gb3B0aW9uczsKIAljb25zdCBzdHJ1Y3Qgb3B0aW9uICpudW1vcHQgPSBOVUxMOwogCiAJZm9yICg7IG9wdGlvbnMtPnR5cGUgIT0gT1BUSU9OX0VORDsgb3B0aW9ucysrKSB7CiAJCWlmIChvcHRpb25zLT5zaG9ydF9uYW1lID09ICpwLT5vcHQpIHsKIAkJCXAtPm9wdCA9IHAtPm9wdFsxXSA/IHAtPm9wdCArIDEgOiBOVUxMOwotCQkJcmV0dXJuIGdldF92YWx1ZShwLCBvcHRpb25zLCBPUFRfU0hPUlQpOworCQkJcmV0dXJuIGdldF92YWx1ZShwLCBvcHRpb25zLCBhbGxfb3B0cywgT1BUX1NIT1JUKTsKIAkJfQogCiAJCS8qCkBAIC0xNzcsNiArMjIyLDcgQEAKIHN0YXRpYyBpbnQgcGFyc2VfbG9uZ19vcHQoc3RydWN0IHBhcnNlX29wdF9jdHhfdCAqcCwgY29uc3QgY2hhciAqYXJnLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHRpb25zKQogeworCWNvbnN0IHN0cnVjdCBvcHRpb24gKmFsbF9vcHRzID0gb3B0aW9uczsKIAljb25zdCBjaGFyICphcmdfZW5kID0gc3RyY2hyKGFyZywgJz0nKTsKIAljb25zdCBzdHJ1Y3Qgb3B0aW9uICphYmJyZXZfb3B0aW9uID0gTlVMTCwgKmFtYmlndW91c19vcHRpb24gPSBOVUxMOwogCWludCBhYmJyZXZfZmxhZ3MgPSAwLCBhbWJpZ3VvdXNfZmxhZ3MgPSAwOwpAQCAtMjI3LDEzICsyNzMsMTMgQEAKIAkJCWlmIChvcHRpb25zLT5mbGFncyAmIFBBUlNFX09QVF9OT05FRykKIAkJCQljb250aW51ZTsKIAkJCS8qIG5lZ2F0ZWQgYW5kIGFiYnJldmlhdGVkIHZlcnkgbXVjaD8gKi8KLQkJCWlmICghcHJlZml4Y21wKCJuby0iLCBhcmcpKSB7CisJCQlpZiAoc3RhcnRzX3dpdGgoIm5vLSIsIGFyZykpIHsKIAkJCQlmbGFncyB8PSBPUFRfVU5TRVQ7CiAJCQkJZ290byBpc19hYmJyZXZpYXRlZDsKIAkJCX0KIAkJCS8qIG5lZ2F0ZWQ/ICovCi0JCQlpZiAocHJlZml4Y21wKGFyZywgIm5vLSIpKSB7Ci0JCQkJaWYgKCFwcmVmaXhjbXAobG9uZ19uYW1lLCAibm8tIikpIHsKKwkJCWlmICghc3RhcnRzX3dpdGgoYXJnLCAibm8tIikpIHsKKwkJCQlpZiAoc3RhcnRzX3dpdGgobG9uZ19uYW1lLCAibm8tIikpIHsKIAkJCQkJbG9uZ19uYW1lICs9IDM7CiAJCQkJCW9wdF9mbGFncyB8PSBPUFRfVU5TRVQ7CiAJCQkJCWdvdG8gYWdhaW47CkBAIC0yNDMsNyArMjg5LDcgQEAKIAkJCWZsYWdzIHw9IE9QVF9VTlNFVDsKIAkJCXJlc3QgPSBza2lwX3ByZWZpeChhcmcgKyAzLCBsb25nX25hbWUpOwogCQkJLyogYWJicmV2aWF0ZWQgYW5kIG5lZ2F0ZWQ/ICovCi0JCQlpZiAoIXJlc3QgJiYgIXByZWZpeGNtcChsb25nX25hbWUsIGFyZyArIDMpKQorCQkJaWYgKCFyZXN0ICYmIHN0YXJ0c193aXRoKGxvbmdfbmFtZSwgYXJnICsgMykpCiAJCQkJZ290byBpc19hYmJyZXZpYXRlZDsKIAkJCWlmICghcmVzdCkKIAkJCQljb250aW51ZTsKQEAgLTI1Myw3ICsyOTksNyBAQAogCQkJCWNvbnRpbnVlOwogCQkJcC0+b3B0ID0gcmVzdCArIDE7CiAJCX0KLQkJcmV0dXJuIGdldF92YWx1ZShwLCBvcHRpb25zLCBmbGFncyBeIG9wdF9mbGFncyk7CisJCXJldHVybiBnZXRfdmFsdWUocCwgb3B0aW9ucywgYWxsX29wdHMsIGZsYWdzIF4gb3B0X2ZsYWdzKTsKIAl9CiAKIAlpZiAoYW1iaWd1b3VzX29wdGlvbikKQEAgLTI2NSwxOCArMzExLDIwIEBACiAJCQkoYWJicmV2X2ZsYWdzICYgT1BUX1VOU0VUKSA/ICAibm8tIiA6ICIiLAogCQkJYWJicmV2X29wdGlvbi0+bG9uZ19uYW1lKTsKIAlpZiAoYWJicmV2X29wdGlvbikKLQkJcmV0dXJuIGdldF92YWx1ZShwLCBhYmJyZXZfb3B0aW9uLCBhYmJyZXZfZmxhZ3MpOworCQlyZXR1cm4gZ2V0X3ZhbHVlKHAsIGFiYnJldl9vcHRpb24sIGFsbF9vcHRzLCBhYmJyZXZfZmxhZ3MpOwogCXJldHVybiAtMjsKIH0KIAogc3RhdGljIGludCBwYXJzZV9ub2Rhc2hfb3B0KHN0cnVjdCBwYXJzZV9vcHRfY3R4X3QgKnAsIGNvbnN0IGNoYXIgKmFyZywKIAkJCSAgICBjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHRpb25zKQogeworCWNvbnN0IHN0cnVjdCBvcHRpb24gKmFsbF9vcHRzID0gb3B0aW9uczsKKwogCWZvciAoOyBvcHRpb25zLT50eXBlICE9IE9QVElPTl9FTkQ7IG9wdGlvbnMrKykgewogCQlpZiAoIShvcHRpb25zLT5mbGFncyAmIFBBUlNFX09QVF9OT0RBU0gpKQogCQkJY29udGludWU7CiAJCWlmIChvcHRpb25zLT5zaG9ydF9uYW1lID09IGFyZ1swXSAmJiBhcmdbMV0gPT0gJ1wwJykKLQkJCXJldHVybiBnZXRfdmFsdWUocCwgb3B0aW9ucywgT1BUX1NIT1JUKTsKKwkJCXJldHVybiBnZXRfdmFsdWUocCwgb3B0aW9ucywgYWxsX29wdHMsIE9QVF9TSE9SVCk7CiAJfQogCXJldHVybiAtMjsKIH0KQEAgLTI4Niw3ICszMzQsNyBAQAogCWlmIChzdHJsZW4oYXJnKSA8IDMpCiAJCXJldHVybjsKIAotCWlmICghcHJlZml4Y21wKGFyZywgIm5vLSIpKSB7CisJaWYgKHN0YXJ0c193aXRoKGFyZywgIm5vLSIpKSB7CiAJCWVycm9yICgiZGlkIHlvdSBtZWFuIGAtLSVzYCAod2l0aCB0d28gZGFzaGVzID8pIiwgYXJnKTsKIAkJZXhpdCgxMjkpOwogCX0KQEAgLTI5NCw3ICszNDIsNyBAQAogCWZvciAoOyBvcHRpb25zLT50eXBlICE9IE9QVElPTl9FTkQ7IG9wdGlvbnMrKykgewogCQlpZiAoIW9wdGlvbnMtPmxvbmdfbmFtZSkKIAkJCWNvbnRpbnVlOwotCQlpZiAoIXByZWZpeGNtcChvcHRpb25zLT5sb25nX25hbWUsIGFyZykpIHsKKwkJaWYgKHN0YXJ0c193aXRoKG9wdGlvbnMtPmxvbmdfbmFtZSwgYXJnKSkgewogCQkJZXJyb3IgKCJkaWQgeW91IG1lYW4gYC0tJXNgICh3aXRoIHR3byBkYXNoZXMgPykiLCBhcmcpOwogCQkJZXhpdCgxMjkpOwogCQl9CmRpZmYgLS1naXQgYS9wYXJzZS1vcHRpb25zLmggYi9wYXJzZS1vcHRpb25zLmgKaW5kZXggOWI5NDU5Ni4uZDY3MGNiOSAxMDA2NDQKLS0tIGEvcGFyc2Utb3B0aW9ucy5oCisrKyBiL3BhcnNlLW9wdGlvbnMuaApAQCAtMTMsNiArMTMsNyBAQAogCU9QVElPTl9DT1VOVFVQLAogCU9QVElPTl9TRVRfSU5ULAogCU9QVElPTl9TRVRfUFRSLAorCU9QVElPTl9DTURNT0RFLAogCS8qIG9wdGlvbnMgd2l0aCBhcmd1bWVudHMgKHVzdWFsbHkpICovCiAJT1BUSU9OX1NUUklORywKIAlPUFRJT05fSU5URUdFUiwKQEAgLTIxLDkgKzIyLDYgQEAKIAlPUFRJT05fRklMRU5BTUUKIH07CiAKLS8qIERlcHJlY2F0ZWQgc3lub255bSAqLwotI2RlZmluZSBPUFRJT05fQk9PTEVBTiBPUFRJT05fQ09VTlRVUAotCiBlbnVtIHBhcnNlX29wdF9mbGFncyB7CiAJUEFSU0VfT1BUX0tFRVBfREFTSERBU0ggPSAxLAogCVBBUlNFX09QVF9TVE9QX0FUX05PTl9PUFRJT04gPSAyLApAQCAtMTI4LDggKzEyNiwxMiBAQAogI2RlZmluZSBPUFRfU0VUX0lOVChzLCBsLCB2LCBoLCBpKSAgeyBPUFRJT05fU0VUX0lOVCwgKHMpLCAobCksICh2KSwgTlVMTCwgXAogCQkJCSAgICAgIChoKSwgUEFSU0VfT1BUX05PQVJHLCBOVUxMLCAoaSkgfQogI2RlZmluZSBPUFRfQk9PTChzLCBsLCB2LCBoKSAgICAgICAgT1BUX1NFVF9JTlQocywgbCwgdiwgaCwgMSkKKyNkZWZpbmUgT1BUX0hJRERFTl9CT09MKHMsIGwsIHYsIGgpIHsgT1BUSU9OX1NFVF9JTlQsIChzKSwgKGwpLCAodiksIE5VTEwsIFwKKwkJCQkgICAgICAoaCksIFBBUlNFX09QVF9OT0FSRyB8IFBBUlNFX09QVF9ISURERU4sIE5VTEwsIDF9CiAjZGVmaW5lIE9QVF9TRVRfUFRSKHMsIGwsIHYsIGgsIHApICB7IE9QVElPTl9TRVRfUFRSLCAocyksIChsKSwgKHYpLCBOVUxMLCBcCiAJCQkJICAgICAgKGgpLCBQQVJTRV9PUFRfTk9BUkcsIE5VTEwsIChwKSB9CisjZGVmaW5lIE9QVF9DTURNT0RFKHMsIGwsIHYsIGgsIGkpIHsgT1BUSU9OX0NNRE1PREUsIChzKSwgKGwpLCAodiksIE5VTEwsIFwKKwkJCQkgICAgICAoaCksIFBBUlNFX09QVF9OT0FSR3xQQVJTRV9PUFRfTk9ORUcsIE5VTEwsIChpKSB9CiAjZGVmaW5lIE9QVF9JTlRFR0VSKHMsIGwsIHYsIGgpICAgICB7IE9QVElPTl9JTlRFR0VSLCAocyksIChsKSwgKHYpLCBOXygibiIpLCAoaCkgfQogI2RlZmluZSBPUFRfU1RSSU5HKHMsIGwsIHYsIGEsIGgpICAgeyBPUFRJT05fU1RSSU5HLCAgKHMpLCAobCksICh2KSwgKGEpLCAoaCkgfQogI2RlZmluZSBPUFRfU1RSSU5HX0xJU1QocywgbCwgdiwgYSwgaCkgXApAQCAtMTU5LDkgKzE2MSw2IEBACiAJICBOXygibm8tb3AgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpIiksCQlcCiAJICBQQVJTRV9PUFRfSElEREVOIHwgUEFSU0VfT1BUX05PQVJHLCBwYXJzZV9vcHRfbm9vcF9jYiB9CiAKLS8qIERlcHJlY2F0ZWQgc3lub255bSAqLwotI2RlZmluZSBPUFRfQk9PTEVBTiBPUFRfQ09VTlRVUAotCiAvKiBwYXJzZV9vcHRpb25zKCkgd2lsbCBmaWx0ZXIgb3V0IHRoZSBwcm9jZXNzZWQgb3B0aW9ucyBhbmQgbGVhdmUgdGhlCiAgKiBub24tb3B0aW9uIGFyZ3VtZW50cyBpbiBhcmd2W10uIHVzYWdlc3RyIHN0cmluZ3Mgc2hvdWxkIGJlIG1hcmtlZAogICogZm9yIHRyYW5zbGF0aW9uIHdpdGggTl8oKS4KQEAgLTIzMCwxNSArMjI5LDE1IEBACiBleHRlcm4gaW50IHBhcnNlX29wdF9zdHJpbmdfbGlzdChjb25zdCBzdHJ1Y3Qgb3B0aW9uICosIGNvbnN0IGNoYXIgKiwgaW50KTsKIGV4dGVybiBpbnQgcGFyc2Vfb3B0X25vb3BfY2IoY29uc3Qgc3RydWN0IG9wdGlvbiAqLCBjb25zdCBjaGFyICosIGludCk7CiAKLSNkZWZpbmUgT1BUX19WRVJCT1NFKHZhciwgaCkgIE9QVF9CT09MRUFOKCd2JywgInZlcmJvc2UiLCAodmFyKSwgKGgpKQotI2RlZmluZSBPUFRfX1FVSUVUKHZhciwgaCkgICAgT1BUX0JPT0xFQU4oJ3EnLCAicXVpZXQiLCAgICh2YXIpLCAoaCkpCisjZGVmaW5lIE9QVF9fVkVSQk9TRSh2YXIsIGgpICBPUFRfQ09VTlRVUCgndicsICJ2ZXJib3NlIiwgKHZhciksIChoKSkKKyNkZWZpbmUgT1BUX19RVUlFVCh2YXIsIGgpICAgIE9QVF9DT1VOVFVQKCdxJywgInF1aWV0IiwgICAodmFyKSwgKGgpKQogI2RlZmluZSBPUFRfX1ZFUkJPU0lUWSh2YXIpIFwKIAl7IE9QVElPTl9DQUxMQkFDSywgJ3YnLCAidmVyYm9zZSIsICh2YXIpLCBOVUxMLCBOXygiYmUgbW9yZSB2ZXJib3NlIiksIFwKIAkgIFBBUlNFX09QVF9OT0FSRywgJnBhcnNlX29wdF92ZXJib3NpdHlfY2IsIDAgfSwgXAogCXsgT1BUSU9OX0NBTExCQUNLLCAncScsICJxdWlldCIsICh2YXIpLCBOVUxMLCBOXygiYmUgbW9yZSBxdWlldCIpLCBcCiAJICBQQVJTRV9PUFRfTk9BUkcsICZwYXJzZV9vcHRfdmVyYm9zaXR5X2NiLCAwIH0KLSNkZWZpbmUgT1BUX19EUllfUlVOKHZhciwgaCkgIE9QVF9CT09MRUFOKCduJywgImRyeS1ydW4iLCAodmFyKSwgKGgpKQotI2RlZmluZSBPUFRfX0ZPUkNFKHZhciwgaCkgICAgT1BUX0JPT0xFQU4oJ2YnLCAiZm9yY2UiLCAgICh2YXIpLCAoaCkpCisjZGVmaW5lIE9QVF9fRFJZX1JVTih2YXIsIGgpICBPUFRfQk9PTCgnbicsICJkcnktcnVuIiwgKHZhciksIChoKSkKKyNkZWZpbmUgT1BUX19GT1JDRSh2YXIsIGgpICAgIE9QVF9DT1VOVFVQKCdmJywgImZvcmNlIiwgICAodmFyKSwgKGgpKQogI2RlZmluZSBPUFRfX0FCQlJFVih2YXIpICBcCiAJeyBPUFRJT05fQ0FMTEJBQ0ssIDAsICJhYmJyZXYiLCAodmFyKSwgTl8oIm4iKSwJXAogCSAgTl8oInVzZSA8bj4gZGlnaXRzIHRvIGRpc3BsYXkgU0hBLTFzIiksCVwKZGlmZiAtLWdpdCBhL3BhdGguYyBiL3BhdGguYwppbmRleCAzZDI0NGQzLi4yNDU5NGM0IDEwMDY0NAotLS0gYS9wYXRoLmMKKysrIGIvcGF0aC5jCkBAIC00MzQsNiArNDM0LDE2IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgaGF2ZV9zYW1lX3Jvb3QoY29uc3QgY2hhciAqcGF0aDEsIGNvbnN0IGNoYXIgKnBhdGgyKQoreworCWludCBpc19hYnMxLCBpc19hYnMyOworCisJaXNfYWJzMSA9IGlzX2Fic29sdXRlX3BhdGgocGF0aDEpOworCWlzX2FiczIgPSBpc19hYnNvbHV0ZV9wYXRoKHBhdGgyKTsKKwlyZXR1cm4gKGlzX2FiczEgJiYgaXNfYWJzMiAmJiB0b2xvd2VyKHBhdGgxWzBdKSA9PSB0b2xvd2VyKHBhdGgyWzBdKSkgfHwKKwkgICAgICAgKCFpc19hYnMxICYmICFpc19hYnMyKTsKK30KKwogLyoKICAqIEdpdmUgcGF0aCBhcyByZWxhdGl2ZSB0byBwcmVmaXguCiAgKgpAQCAtNDU0LDYgKzQ2NCwxNiBAQAogCWVsc2UgaWYgKCFwcmVmaXhfbGVuKQogCQlyZXR1cm4gaW47CiAKKwlpZiAoaGF2ZV9zYW1lX3Jvb3QoaW4sIHByZWZpeCkpIHsKKwkJLyogYnlwYXNzIGRvc19kcml2ZSwgZm9yICJjOiIgaXMgaWRlbnRpY2FsIHRvICJDOiIgKi8KKwkJaWYgKGhhc19kb3NfZHJpdmVfcHJlZml4KGluKSkgeworCQkJaSA9IDI7CisJCQlqID0gMjsKKwkJfQorCX0gZWxzZSB7CisJCXJldHVybiBpbjsKKwl9CisKIAl3aGlsZSAoaSA8IHByZWZpeF9sZW4gJiYgaiA8IGluX2xlbiAmJiBwcmVmaXhbaV0gPT0gaW5bal0pIHsKIAkJaWYgKGlzX2Rpcl9zZXAocHJlZml4W2ldKSkgewogCQkJd2hpbGUgKGlzX2Rpcl9zZXAocHJlZml4W2ldKSkKQEAgLTUzMSw2ICs1NTEsNTEgQEAKIH0KIAogLyoKKyAqIEEgc2ltcGxlciBpbXBsZW1lbnRhdGlvbiBvZiByZWxhdGl2ZV9wYXRoCisgKgorICogR2V0IHJlbGF0aXZlIHBhdGggYnkgcmVtb3ZpbmcgInByZWZpeCIgZnJvbSAiaW4iLiBUaGlzIGZ1bmN0aW9uCisgKiBmaXJzdCBhcHBlYXJzIGluIHYxLjUuNi0xLWcwNDRiYmJjLCBhbmQgbWFrZXMgZ2l0X2RpciBzaG9ydGVyCisgKiB0byBpbmNyZWFzZSBwZXJmb3JtYW5jZSB3aGVuIHRyYXZlcnNpbmcgdGhlIHBhdGggdG8gd29ya190cmVlLgorICovCitjb25zdCBjaGFyICpyZW1vdmVfbGVhZGluZ19wYXRoKGNvbnN0IGNoYXIgKmluLCBjb25zdCBjaGFyICpwcmVmaXgpCit7CisJc3RhdGljIGNoYXIgYnVmW1BBVEhfTUFYICsgMV07CisJaW50IGkgPSAwLCBqID0gMDsKKworCWlmICghcHJlZml4IHx8ICFwcmVmaXhbMF0pCisJCXJldHVybiBpbjsKKwl3aGlsZSAocHJlZml4W2ldKSB7CisJCWlmIChpc19kaXJfc2VwKHByZWZpeFtpXSkpIHsKKwkJCWlmICghaXNfZGlyX3NlcChpbltqXSkpCisJCQkJcmV0dXJuIGluOworCQkJd2hpbGUgKGlzX2Rpcl9zZXAocHJlZml4W2ldKSkKKwkJCQlpKys7CisJCQl3aGlsZSAoaXNfZGlyX3NlcChpbltqXSkpCisJCQkJaisrOworCQkJY29udGludWU7CisJCX0gZWxzZSBpZiAoaW5bal0gIT0gcHJlZml4W2ldKSB7CisJCQlyZXR1cm4gaW47CisJCX0KKwkJaSsrOworCQlqKys7CisJfQorCWlmICgKKwkgICAgLyogIi9mb28iIGlzIGEgcHJlZml4IG9mICIvZm9vIiAqLworCSAgICBpbltqXSAmJgorCSAgICAvKiAiL2ZvbyIgaXMgbm90IGEgcHJlZml4IG9mICIvZm9vYmFyIiAqLworCSAgICAhaXNfZGlyX3NlcChwcmVmaXhbaS0xXSkgJiYgIWlzX2Rpcl9zZXAoaW5bal0pCisJICAgKQorCQlyZXR1cm4gaW47CisJd2hpbGUgKGlzX2Rpcl9zZXAoaW5bal0pKQorCQlqKys7CisJaWYgKCFpbltqXSkKKwkJc3RyY3B5KGJ1ZiwgIi4iKTsKKwllbHNlCisJCXN0cmNweShidWYsIGluICsgaik7CisJcmV0dXJuIGJ1ZjsKK30KKworLyoKICAqIEl0IGlzIG9rYXkgaWYgZHN0ID09IHNyYywgYnV0IHRoZXkgc2hvdWxkIG5vdCBvdmVybGFwIG90aGVyd2lzZS4KICAqCiAgKiBQZXJmb3JtcyB0aGUgZm9sbG93aW5nIG5vcm1hbGl6YXRpb25zIG9uIHNyYywgc3RvcmluZyB0aGUgcmVzdWx0IGluIGRzdDoKQEAgLTU0Myw4ICs2MDgsMTQgQEAKICAqCiAgKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBwdXJlbHkgdGV4dHVhbC4gIEl0IGRvZXMgbm90IGZvbGxvdyBzeW1saW5rcywKICAqIHZlcmlmeSB0aGUgZXhpc3RlbmNlIG9mIHRoZSBwYXRoLCBvciBtYWtlIGFueSBzeXN0ZW0gY2FsbHMuCisgKgorICogcHJlZml4X2xlbiAhPSBOVUxMIGlzIGZvciBhIHNwZWNpZmljIGNhc2Ugb2YgcHJlZml4X3BhdGhzcGVjKCk6CisgKiBhc3N1bWUgdGhhdCBzcmMgPT0gZHN0IGFuZCBzcmNbMC4ucHJlZml4X2xlbi0xXSBpcyBhbHJlYWR5CisgKiBub3JtYWxpemVkLCBhbnkgdGltZSAiLi4vIiBlYXRzIHVwIHRvIHRoZSBwcmVmaXhfbGVuIHBhcnQsCisgKiBwcmVmaXhfbGVuIGlzIHJlZHVjZWQuIEluIHRoZSBlbmQgcHJlZml4X2xlbiBpcyB0aGUgcmVtYWluaW5nCisgKiBwcmVmaXggdGhhdCBoYXMgbm90IGJlZW4gb3ZlcnJpZGRlbiBieSB1c2VyIHBhdGhzcGVjLgogICovCi1pbnQgbm9ybWFsaXplX3BhdGhfY29weShjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYykKK2ludCBub3JtYWxpemVfcGF0aF9jb3B5X2xlbihjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYywgaW50ICpwcmVmaXhfbGVuKQogewogCWNoYXIgKmRzdDA7CiAKQEAgLTYxOSwxMSArNjkwLDE4IEBACiAJCS8qIFdpbmRvd3M6IGRzdFstMV0gY2Fubm90IGJlIGJhY2tzbGFzaCBhbnltb3JlICovCiAJCXdoaWxlIChkc3QwIDwgZHN0ICYmIGRzdFstMV0gIT0gJy8nKQogCQkJZHN0LS07CisJCWlmIChwcmVmaXhfbGVuICYmICpwcmVmaXhfbGVuID4gZHN0IC0gZHN0MCkKKwkJCSpwcmVmaXhfbGVuID0gZHN0IC0gZHN0MDsKIAl9CiAJKmRzdCA9ICdcMCc7CiAJcmV0dXJuIDA7CiB9CiAKK2ludCBub3JtYWxpemVfcGF0aF9jb3B5KGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjKQoreworCXJldHVybiBub3JtYWxpemVfcGF0aF9jb3B5X2xlbihkc3QsIHNyYywgTlVMTCk7Cit9CisKIC8qCiAgKiBwYXRoID0gQ2Fub25pY2FsIGFic29sdXRlIHBhdGgKICAqIHByZWZpeGVzID0gc3RyaW5nX2xpc3QgY29udGFpbmluZyBub3JtYWxpemVkLCBhYnNvbHV0ZSBwYXRocyB3aXRob3V0CmRpZmYgLS1naXQgYS9wYXRoc3BlYy5jIGIvcGF0aHNwZWMuYwppbmRleCA2ZWEwODY3Li42Y2I5ZmQzIDEwMDY0NAotLS0gYS9wYXRoc3BlYy5jCisrKyBiL3BhdGhzcGVjLmMKQEAgLTE1LDggKzE1LDggQEAKICAqIElmIHNlZW5bXSBoYXMgbm90IGFscmVhZHkgYmVlbiB3cml0dGVuIHRvLCBpdCBtYXkgbWFrZSBzZW5zZQogICogdG8gdXNlIGZpbmRfcGF0aHNwZWNzX21hdGNoaW5nX2FnYWluc3RfaW5kZXgoKSBpbnN0ZWFkLgogICovCi12b2lkIGFkZF9wYXRoc3BlY19tYXRjaGVzX2FnYWluc3RfaW5kZXgoY29uc3QgY2hhciAqKnBhdGhzcGVjLAotCQkJCQljaGFyICpzZWVuLCBpbnQgc3BlY3MpCit2b2lkIGFkZF9wYXRoc3BlY19tYXRjaGVzX2FnYWluc3RfaW5kZXgoY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYywKKwkJCQkJY2hhciAqc2VlbikKIHsKIAlpbnQgbnVtX3VubWF0Y2hlZCA9IDAsIGk7CiAKQEAgLTI2LDE0ICsyNiwxNCBAQAogCSAqIG1pc3Rha2VubHkgdGhpbmsgdGhhdCB0aGUgdXNlciBnYXZlIGEgcGF0aHNwZWMgdGhhdCBkaWQgbm90IG1hdGNoCiAJICogYW55dGhpbmcuCiAJICovCi0JZm9yIChpID0gMDsgaSA8IHNwZWNzOyBpKyspCisJZm9yIChpID0gMDsgaSA8IHBhdGhzcGVjLT5ucjsgaSsrKQogCQlpZiAoIXNlZW5baV0pCiAJCQludW1fdW5tYXRjaGVkKys7CiAJaWYgKCFudW1fdW5tYXRjaGVkKQogCQlyZXR1cm47CiAJZm9yIChpID0gMDsgaSA8IGFjdGl2ZV9ucjsgaSsrKSB7CiAJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07Ci0JCW1hdGNoX3BhdGhzcGVjKHBhdGhzcGVjLCBjZS0+bmFtZSwgY2VfbmFtZWxlbihjZSksIDAsIHNlZW4pOworCQltYXRjaF9wYXRoc3BlY19kZXB0aChwYXRoc3BlYywgY2UtPm5hbWUsIGNlX25hbWVsZW4oY2UpLCAwLCBzZWVuKTsKIAl9CiB9CiAKQEAgLTQ1LDU3ICs0NSw0NTIgQEAKICAqIG5hdHVyZSBvZiB0aGUgImNsb3Nlc3QiIChpLmUuIG1vc3Qgc3BlY2lmaWMpIG1hdGNoZXMgd2hpY2ggZWFjaCBvZiB0aGUKICAqIGdpdmVuIHBhdGhzcGVjcyBhY2hpZXZlcyBhZ2FpbnN0IGFsbCBpdGVtcyBpbiB0aGUgaW5kZXguCiAgKi8KLWNoYXIgKmZpbmRfcGF0aHNwZWNzX21hdGNoaW5nX2FnYWluc3RfaW5kZXgoY29uc3QgY2hhciAqKnBhdGhzcGVjKQorY2hhciAqZmluZF9wYXRoc3BlY3NfbWF0Y2hpbmdfYWdhaW5zdF9pbmRleChjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjKQogewotCWNoYXIgKnNlZW47Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBwYXRoc3BlY1tpXTsgIGkrKykKLQkJOyAvKiBqdXN0IGNvdW50aW5nICovCi0Jc2VlbiA9IHhjYWxsb2MoaSwgMSk7Ci0JYWRkX3BhdGhzcGVjX21hdGNoZXNfYWdhaW5zdF9pbmRleChwYXRoc3BlYywgc2VlbiwgaSk7CisJY2hhciAqc2VlbiA9IHhjYWxsb2MocGF0aHNwZWMtPm5yLCAxKTsKKwlhZGRfcGF0aHNwZWNfbWF0Y2hlc19hZ2FpbnN0X2luZGV4KHBhdGhzcGVjLCBzZWVuKTsKIAlyZXR1cm4gc2VlbjsKIH0KIAogLyoKLSAqIENoZWNrIHRoZSBpbmRleCB0byBzZWUgd2hldGhlciBwYXRoIHJlZmVycyB0byBhIHN1Ym1vZHVsZSwgb3IKLSAqIHNvbWV0aGluZyBpbnNpZGUgYSBzdWJtb2R1bGUuICBJZiB0aGUgZm9ybWVyLCByZXR1cm5zIHRoZSBwYXRoIHdpdGgKLSAqIGFueSB0cmFpbGluZyBzbGFzaCBzdHJpcHBlZC4gIElmIHRoZSBsYXR0ZXIsIGRpZXMgd2l0aCBhbiBlcnJvcgotICogbWVzc2FnZS4KKyAqIE1hZ2ljIHBhdGhzcGVjCisgKgorICogUG9zc2libGUgZnV0dXJlIG1hZ2ljIHNlbWFudGljcyBpbmNsdWRlIHN0dWZmIGxpa2U6CisgKgorICoJeyBQQVRIU1BFQ19SRUNVUlNJVkUsICcqJywgInJlY3Vyc2l2ZSIgfSwKKyAqCXsgUEFUSFNQRUNfUkVHRVhQLCAnXDAnLCAicmVnZXhwIiB9LAorICoKICAqLwotY29uc3QgY2hhciAqY2hlY2tfcGF0aF9mb3JfZ2l0bGluayhjb25zdCBjaGFyICpwYXRoKQorCitzdGF0aWMgc3RydWN0IHBhdGhzcGVjX21hZ2ljIHsKKwl1bnNpZ25lZCBiaXQ7CisJY2hhciBtbmVtb25pYzsgLyogdGhpcyBjYW5ub3QgYmUgJzonISAqLworCWNvbnN0IGNoYXIgKm5hbWU7Cit9IHBhdGhzcGVjX21hZ2ljW10gPSB7CisJeyBQQVRIU1BFQ19GUk9NVE9QLCAnLycsICJ0b3AiIH0sCisJeyBQQVRIU1BFQ19MSVRFUkFMLCAgIDAsICJsaXRlcmFsIiB9LAorCXsgUEFUSFNQRUNfR0xPQiwgICAnXDAnLCAiZ2xvYiIgfSwKKwl7IFBBVEhTUEVDX0lDQVNFLCAgJ1wwJywgImljYXNlIiB9LAorCXsgUEFUSFNQRUNfRVhDTFVERSwgJyEnLCAiZXhjbHVkZSIgfSwKK307CisKK3N0YXRpYyB2b2lkIHByZWZpeF9zaG9ydF9tYWdpYyhzdHJ1Y3Qgc3RyYnVmICpzYiwgaW50IHByZWZpeGxlbiwKKwkJCSAgICAgICB1bnNpZ25lZCBzaG9ydF9tYWdpYykKIHsKLQlpbnQgaSwgcGF0aF9sZW4gPSBzdHJsZW4ocGF0aCk7Ci0JZm9yIChpID0gMDsgaSA8IGFjdGl2ZV9ucjsgaSsrKSB7Ci0JCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07Ci0JCWlmIChTX0lTR0lUTElOSyhjZS0+Y2VfbW9kZSkpIHsKLQkJCWludCBjZV9sZW4gPSBjZV9uYW1lbGVuKGNlKTsKLQkJCWlmIChwYXRoX2xlbiA8PSBjZV9sZW4gfHwgcGF0aFtjZV9sZW5dICE9ICcvJyB8fAotCQkJICAgIG1lbWNtcChjZS0+bmFtZSwgcGF0aCwgY2VfbGVuKSkKLQkJCQkvKiBwYXRoIGRvZXMgbm90IHJlZmVyIHRvIHRoaXMKLQkJCQkgKiBzdWJtb2R1bGUgb3IgYW55dGhpbmcgaW5zaWRlIGl0ICovCi0JCQkJY29udGludWU7Ci0JCQlpZiAocGF0aF9sZW4gPT0gY2VfbGVuICsgMSkgewotCQkJCS8qIHBhdGggcmVmZXJzIHRvIHN1Ym1vZHVsZTsKLQkJCQkgKiBzdHJpcCB0cmFpbGluZyBzbGFzaCAqLwotCQkJCXJldHVybiB4c3RybmR1cChjZS0+bmFtZSwgY2VfbGVuKTsKLQkJCX0gZWxzZSB7Ci0JCQkJZGllIChfKCJQYXRoICclcycgaXMgaW4gc3VibW9kdWxlICclLipzJyIpLAotCQkJCSAgICAgcGF0aCwgY2VfbGVuLCBjZS0+bmFtZSk7Ci0JCQl9CisJaW50IGk7CisJc3RyYnVmX2FkZHN0cihzYiwgIjooIik7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocGF0aHNwZWNfbWFnaWMpOyBpKyspCisJCWlmIChzaG9ydF9tYWdpYyAmIHBhdGhzcGVjX21hZ2ljW2ldLmJpdCkgeworCQkJaWYgKHNiLT5idWZbc2ItPmxlbiAtIDFdICE9ICcoJykKKwkJCQlzdHJidWZfYWRkY2goc2IsICcsJyk7CisJCQlzdHJidWZfYWRkc3RyKHNiLCBwYXRoc3BlY19tYWdpY1tpXS5uYW1lKTsKIAkJfQotCX0KLQlyZXR1cm4gcGF0aDsKKwlzdHJidWZfYWRkZihzYiwgIixwcmVmaXg6JWQpIiwgcHJlZml4bGVuKTsKIH0KIAogLyoKLSAqIERpZXMgaWYgdGhlIGdpdmVuIHBhdGggcmVmZXJzIHRvIGEgZmlsZSBpbnNpZGUgYSBzeW1saW5rZWQKLSAqIGRpcmVjdG9yeSBpbiB0aGUgaW5kZXguCisgKiBUYWtlIGFuIGVsZW1lbnQgb2YgYSBwYXRoc3BlYyBhbmQgY2hlY2sgZm9yIG1hZ2ljIHNpZ25hdHVyZXMuCisgKiBBcHBlbmQgdGhlIHJlc3VsdCB0byB0aGUgcHJlZml4LiBSZXR1cm4gdGhlIG1hZ2ljIGJpdG1hcC4KKyAqCisgKiBGb3Igbm93LCB3ZSBvbmx5IHBhcnNlIHRoZSBzeW50YXggYW5kIHRocm93IG91dCBhbnl0aGluZyBvdGhlciB0aGFuCisgKiAidG9wIiBtYWdpYy4KKyAqCisgKiBORUVEU1dPUks6IFRoaXMgbmVlZHMgdG8gYmUgcmV3cml0dGVuIHdoZW4gd2Ugc3RhcnQgbWlncmF0aW5nCisgKiBnZXRfcGF0aHNwZWMoKSB1c2VycyB0byB1c2UgdGhlICJzdHJ1Y3QgcGF0aHNwZWMiIGludGVyZmFjZS4gIEZvcgorICogZXhhbXBsZSwgYSBwYXRoc3BlYyBlbGVtZW50IG1heSBiZSBtYXJrZWQgYXMgY2FzZS1pbnNlbnNpdGl2ZSwgYnV0CisgKiB0aGUgcHJlZml4IHBhcnQgbXVzdCBhbHdheXMgbWF0Y2ggbGl0ZXJhbGx5LCBhbmQgYSBzaW5nbGUgc3R1cGlkCisgKiBzdHJpbmcgY2Fubm90IGV4cHJlc3Mgc3VjaCBhIGNhc2UuCiAgKi8KLXZvaWQgZGllX2lmX3BhdGhfYmV5b25kX3N5bWxpbmsoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqcHJlZml4KQorc3RhdGljIHVuc2lnbmVkIHByZWZpeF9wYXRoc3BlYyhzdHJ1Y3QgcGF0aHNwZWNfaXRlbSAqaXRlbSwKKwkJCQl1bnNpZ25lZCAqcF9zaG9ydF9tYWdpYywKKwkJCQljb25zdCBjaGFyICoqcmF3LCB1bnNpZ25lZCBmbGFncywKKwkJCQljb25zdCBjaGFyICpwcmVmaXgsIGludCBwcmVmaXhsZW4sCisJCQkJY29uc3QgY2hhciAqZWx0KQogewotCWlmIChoYXNfc3ltbGlua19sZWFkaW5nX3BhdGgocGF0aCwgc3RybGVuKHBhdGgpKSkgewotCQlpbnQgbGVuID0gcHJlZml4ID8gc3RybGVuKHByZWZpeCkgOiAwOwotCQlkaWUoXygiJyVzJyBpcyBiZXlvbmQgYSBzeW1ib2xpYyBsaW5rIiksIHBhdGggKyBsZW4pOworCXN0YXRpYyBpbnQgbGl0ZXJhbF9nbG9iYWwgPSAtMTsKKwlzdGF0aWMgaW50IGdsb2JfZ2xvYmFsID0gLTE7CisJc3RhdGljIGludCBub2dsb2JfZ2xvYmFsID0gLTE7CisJc3RhdGljIGludCBpY2FzZV9nbG9iYWwgPSAtMTsKKwl1bnNpZ25lZCBtYWdpYyA9IDAsIHNob3J0X21hZ2ljID0gMCwgZ2xvYmFsX21hZ2ljID0gMDsKKwljb25zdCBjaGFyICpjb3B5ZnJvbSA9IGVsdCwgKmxvbmdfbWFnaWNfZW5kID0gTlVMTDsKKwljaGFyICptYXRjaDsKKwlpbnQgaSwgcGF0aHNwZWNfcHJlZml4ID0gLTE7CisKKwlpZiAobGl0ZXJhbF9nbG9iYWwgPCAwKQorCQlsaXRlcmFsX2dsb2JhbCA9IGdpdF9lbnZfYm9vbChHSVRfTElURVJBTF9QQVRIU1BFQ1NfRU5WSVJPTk1FTlQsIDApOworCWlmIChsaXRlcmFsX2dsb2JhbCkKKwkJZ2xvYmFsX21hZ2ljIHw9IFBBVEhTUEVDX0xJVEVSQUw7CisKKwlpZiAoZ2xvYl9nbG9iYWwgPCAwKQorCQlnbG9iX2dsb2JhbCA9IGdpdF9lbnZfYm9vbChHSVRfR0xPQl9QQVRIU1BFQ1NfRU5WSVJPTk1FTlQsIDApOworCWlmIChnbG9iX2dsb2JhbCkKKwkJZ2xvYmFsX21hZ2ljIHw9IFBBVEhTUEVDX0dMT0I7CisKKwlpZiAobm9nbG9iX2dsb2JhbCA8IDApCisJCW5vZ2xvYl9nbG9iYWwgPSBnaXRfZW52X2Jvb2woR0lUX05PR0xPQl9QQVRIU1BFQ1NfRU5WSVJPTk1FTlQsIDApOworCisJaWYgKGdsb2JfZ2xvYmFsICYmIG5vZ2xvYl9nbG9iYWwpCisJCWRpZShfKCJnbG9iYWwgJ2dsb2InIGFuZCAnbm9nbG9iJyBwYXRoc3BlYyBzZXR0aW5ncyBhcmUgaW5jb21wYXRpYmxlIikpOworCisKKwlpZiAoaWNhc2VfZ2xvYmFsIDwgMCkKKwkJaWNhc2VfZ2xvYmFsID0gZ2l0X2Vudl9ib29sKEdJVF9JQ0FTRV9QQVRIU1BFQ1NfRU5WSVJPTk1FTlQsIDApOworCWlmIChpY2FzZV9nbG9iYWwpCisJCWdsb2JhbF9tYWdpYyB8PSBQQVRIU1BFQ19JQ0FTRTsKKworCWlmICgoZ2xvYmFsX21hZ2ljICYgUEFUSFNQRUNfTElURVJBTCkgJiYKKwkgICAgKGdsb2JhbF9tYWdpYyAmIH5QQVRIU1BFQ19MSVRFUkFMKSkKKwkJZGllKF8oImdsb2JhbCAnbGl0ZXJhbCcgcGF0aHNwZWMgc2V0dGluZyBpcyBpbmNvbXBhdGlibGUgIgorCQkgICAgICAid2l0aCBhbGwgb3RoZXIgZ2xvYmFsIHBhdGhzcGVjIHNldHRpbmdzIikpOworCisJaWYgKGZsYWdzICYgUEFUSFNQRUNfTElURVJBTF9QQVRIKQorCQlnbG9iYWxfbWFnaWMgPSAwOworCisJaWYgKGVsdFswXSAhPSAnOicgfHwgbGl0ZXJhbF9nbG9iYWwgfHwKKwkgICAgKGZsYWdzICYgUEFUSFNQRUNfTElURVJBTF9QQVRIKSkgeworCQk7IC8qIG5vdGhpbmcgdG8gZG8gKi8KKwl9IGVsc2UgaWYgKGVsdFsxXSA9PSAnKCcpIHsKKwkJLyogbG9uZ2hhbmQgKi8KKwkJY29uc3QgY2hhciAqbmV4dGF0OworCQlmb3IgKGNvcHlmcm9tID0gZWx0ICsgMjsKKwkJICAgICAqY29weWZyb20gJiYgKmNvcHlmcm9tICE9ICcpJzsKKwkJICAgICBjb3B5ZnJvbSA9IG5leHRhdCkgeworCQkJc2l6ZV90IGxlbiA9IHN0cmNzcG4oY29weWZyb20sICIsKSIpOworCQkJaWYgKGNvcHlmcm9tW2xlbl0gPT0gJywnKQorCQkJCW5leHRhdCA9IGNvcHlmcm9tICsgbGVuICsgMTsKKwkJCWVsc2UKKwkJCQkvKiBoYW5kbGUgJyknIGFuZCAnXDAnICovCisJCQkJbmV4dGF0ID0gY29weWZyb20gKyBsZW47CisJCQlpZiAoIWxlbikKKwkJCQljb250aW51ZTsKKwkJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBhdGhzcGVjX21hZ2ljKTsgaSsrKSB7CisJCQkJaWYgKHN0cmxlbihwYXRoc3BlY19tYWdpY1tpXS5uYW1lKSA9PSBsZW4gJiYKKwkJCQkgICAgIXN0cm5jbXAocGF0aHNwZWNfbWFnaWNbaV0ubmFtZSwgY29weWZyb20sIGxlbikpIHsKKwkJCQkJbWFnaWMgfD0gcGF0aHNwZWNfbWFnaWNbaV0uYml0OworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJaWYgKHN0YXJ0c193aXRoKGNvcHlmcm9tLCAicHJlZml4OiIpKSB7CisJCQkJCWNoYXIgKmVuZHB0cjsKKwkJCQkJcGF0aHNwZWNfcHJlZml4ID0gc3RydG9sKGNvcHlmcm9tICsgNywKKwkJCQkJCQkJICZlbmRwdHIsIDEwKTsKKwkJCQkJaWYgKGVuZHB0ciAtIGNvcHlmcm9tICE9IGxlbikKKwkJCQkJCWRpZShfKCJpbnZhbGlkIHBhcmFtZXRlciBmb3IgcGF0aHNwZWMgbWFnaWMgJ3ByZWZpeCciKSk7CisJCQkJCS8qICJpIiB3b3VsZCBiZSB3cm9uZywgYnV0IGl0IGRvZXMgbm90IG1hdHRlciAqLworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisJCQlpZiAoQVJSQVlfU0laRShwYXRoc3BlY19tYWdpYykgPD0gaSkKKwkJCQlkaWUoXygiSW52YWxpZCBwYXRoc3BlYyBtYWdpYyAnJS4qcycgaW4gJyVzJyIpLAorCQkJCSAgICAoaW50KSBsZW4sIGNvcHlmcm9tLCBlbHQpOworCQl9CisJCWlmICgqY29weWZyb20gIT0gJyknKQorCQkJZGllKF8oIk1pc3NpbmcgJyknIGF0IHRoZSBlbmQgb2YgcGF0aHNwZWMgbWFnaWMgaW4gJyVzJyIpLCBlbHQpOworCQlsb25nX21hZ2ljX2VuZCA9IGNvcHlmcm9tOworCQljb3B5ZnJvbSsrOworCX0gZWxzZSB7CisJCS8qIHNob3J0aGFuZCAqLworCQlmb3IgKGNvcHlmcm9tID0gZWx0ICsgMTsKKwkJICAgICAqY29weWZyb20gJiYgKmNvcHlmcm9tICE9ICc6JzsKKwkJICAgICBjb3B5ZnJvbSsrKSB7CisJCQljaGFyIGNoID0gKmNvcHlmcm9tOworCisJCQlpZiAoIWlzX3BhdGhzcGVjX21hZ2ljKGNoKSkKKwkJCQlicmVhazsKKwkJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBhdGhzcGVjX21hZ2ljKTsgaSsrKQorCQkJCWlmIChwYXRoc3BlY19tYWdpY1tpXS5tbmVtb25pYyA9PSBjaCkgeworCQkJCQlzaG9ydF9tYWdpYyB8PSBwYXRoc3BlY19tYWdpY1tpXS5iaXQ7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCWlmIChBUlJBWV9TSVpFKHBhdGhzcGVjX21hZ2ljKSA8PSBpKQorCQkJCWRpZShfKCJVbmltcGxlbWVudGVkIHBhdGhzcGVjIG1hZ2ljICclYycgaW4gJyVzJyIpLAorCQkJCSAgICBjaCwgZWx0KTsKKwkJfQorCQlpZiAoKmNvcHlmcm9tID09ICc6JykKKwkJCWNvcHlmcm9tKys7CiAJfQorCisJbWFnaWMgfD0gc2hvcnRfbWFnaWM7CisJKnBfc2hvcnRfbWFnaWMgPSBzaG9ydF9tYWdpYzsKKworCS8qIC0tbm9nbG9iLXBhdGhzcGVjIGFkZHMgOihsaXRlcmFsKSBfdW5sZXNzXyA6KGdsb2IpIGlzIHNwZWNpZmllZCAqLworCWlmIChub2dsb2JfZ2xvYmFsICYmICEobWFnaWMgJiBQQVRIU1BFQ19HTE9CKSkKKwkJZ2xvYmFsX21hZ2ljIHw9IFBBVEhTUEVDX0xJVEVSQUw7CisKKwkvKiAtLWdsb2ItcGF0aHNwZWMgaXMgb3ZlcnJpZGRlbiBieSA6KGxpdGVyYWwpICovCisJaWYgKChnbG9iYWxfbWFnaWMgJiBQQVRIU1BFQ19HTE9CKSAmJiAobWFnaWMgJiBQQVRIU1BFQ19MSVRFUkFMKSkKKwkJZ2xvYmFsX21hZ2ljICY9IH5QQVRIU1BFQ19HTE9COworCisJbWFnaWMgfD0gZ2xvYmFsX21hZ2ljOworCisJaWYgKHBhdGhzcGVjX3ByZWZpeCA+PSAwICYmCisJICAgIChwcmVmaXhsZW4gfHwgKHByZWZpeCAmJiAqcHJlZml4KSkpCisJCWRpZSgiQlVHOiAncHJlZml4JyBtYWdpYyBpcyBzdXBwb3NlZCB0byBiZSB1c2VkIGF0IHdvcmt0cmVlJ3Mgcm9vdCIpOworCisJaWYgKChtYWdpYyAmIFBBVEhTUEVDX0xJVEVSQUwpICYmIChtYWdpYyAmIFBBVEhTUEVDX0dMT0IpKQorCQlkaWUoXygiJXM6ICdsaXRlcmFsJyBhbmQgJ2dsb2InIGFyZSBpbmNvbXBhdGlibGUiKSwgZWx0KTsKKworCWlmIChwYXRoc3BlY19wcmVmaXggPj0gMCkgeworCQltYXRjaCA9IHhzdHJkdXAoY29weWZyb20pOworCQlwcmVmaXhsZW4gPSBwYXRoc3BlY19wcmVmaXg7CisJfSBlbHNlIGlmIChtYWdpYyAmIFBBVEhTUEVDX0ZST01UT1ApIHsKKwkJbWF0Y2ggPSB4c3RyZHVwKGNvcHlmcm9tKTsKKwkJcHJlZml4bGVuID0gMDsKKwl9IGVsc2UgeworCQltYXRjaCA9IHByZWZpeF9wYXRoX2dlbnRseShwcmVmaXgsIHByZWZpeGxlbiwgJnByZWZpeGxlbiwgY29weWZyb20pOworCQlpZiAoIW1hdGNoKQorCQkJZGllKF8oIiVzOiAnJXMnIGlzIG91dHNpZGUgcmVwb3NpdG9yeSIpLCBlbHQsIGNvcHlmcm9tKTsKKwl9CisJKnJhdyA9IGl0ZW0tPm1hdGNoID0gbWF0Y2g7CisJLyoKKwkgKiBQcmVmaXggdGhlIHBhdGhzcGVjIChrZWVwIGFsbCBtYWdpYykgYW5kIGFzc2lnbiB0bworCSAqIG9yaWdpbmFsLiBVc2VmdWwgZm9yIHBhc3NpbmcgdG8gYW5vdGhlciBjb21tYW5kLgorCSAqLworCWlmIChmbGFncyAmIFBBVEhTUEVDX1BSRUZJWF9PUklHSU4pIHsKKwkJc3RydWN0IHN0cmJ1ZiBzYiA9IFNUUkJVRl9JTklUOworCQlpZiAocHJlZml4bGVuICYmICFsaXRlcmFsX2dsb2JhbCkgeworCQkJLyogUHJlc2VydmUgdGhlIGFjdHVhbCBwcmVmaXggbGVuZ3RoIG9mIGVhY2ggcGF0dGVybiAqLworCQkJaWYgKHNob3J0X21hZ2ljKQorCQkJCXByZWZpeF9zaG9ydF9tYWdpYygmc2IsIHByZWZpeGxlbiwgc2hvcnRfbWFnaWMpOworCQkJZWxzZSBpZiAobG9uZ19tYWdpY19lbmQpIHsKKwkJCQlzdHJidWZfYWRkKCZzYiwgZWx0LCBsb25nX21hZ2ljX2VuZCAtIGVsdCk7CisJCQkJc3RyYnVmX2FkZGYoJnNiLCAiLHByZWZpeDolZCkiLCBwcmVmaXhsZW4pOworCQkJfSBlbHNlCisJCQkJc3RyYnVmX2FkZGYoJnNiLCAiOihwcmVmaXg6JWQpIiwgcHJlZml4bGVuKTsKKwkJfQorCQlzdHJidWZfYWRkc3RyKCZzYiwgbWF0Y2gpOworCQlpdGVtLT5vcmlnaW5hbCA9IHN0cmJ1Zl9kZXRhY2goJnNiLCBOVUxMKTsKKwl9IGVsc2UKKwkJaXRlbS0+b3JpZ2luYWwgPSBlbHQ7CisJaXRlbS0+bGVuID0gc3RybGVuKGl0ZW0tPm1hdGNoKTsKKwlpdGVtLT5wcmVmaXggPSBwcmVmaXhsZW47CisKKwlpZiAoKGZsYWdzICYgUEFUSFNQRUNfU1RSSVBfU1VCTU9EVUxFX1NMQVNIX0NIRUFQKSAmJgorCSAgICAoaXRlbS0+bGVuID49IDEgJiYgaXRlbS0+bWF0Y2hbaXRlbS0+bGVuIC0gMV0gPT0gJy8nKSAmJgorCSAgICAoaSA9IGNhY2hlX25hbWVfcG9zKGl0ZW0tPm1hdGNoLCBpdGVtLT5sZW4gLSAxKSkgPj0gMCAmJgorCSAgICBTX0lTR0lUTElOSyhhY3RpdmVfY2FjaGVbaV0tPmNlX21vZGUpKSB7CisJCWl0ZW0tPmxlbi0tOworCQltYXRjaFtpdGVtLT5sZW5dID0gJ1wwJzsKKwl9CisKKwlpZiAoZmxhZ3MgJiBQQVRIU1BFQ19TVFJJUF9TVUJNT0RVTEVfU0xBU0hfRVhQRU5TSVZFKQorCQlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKKwkJCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CisJCQlpbnQgY2VfbGVuID0gY2VfbmFtZWxlbihjZSk7CisKKwkJCWlmICghU19JU0dJVExJTksoY2UtPmNlX21vZGUpKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAoaXRlbS0+bGVuIDw9IGNlX2xlbiB8fCBtYXRjaFtjZV9sZW5dICE9ICcvJyB8fAorCQkJICAgIG1lbWNtcChjZS0+bmFtZSwgbWF0Y2gsIGNlX2xlbikpCisJCQkJY29udGludWU7CisJCQlpZiAoaXRlbS0+bGVuID09IGNlX2xlbiArIDEpIHsKKwkJCQkvKiBzdHJpcCB0cmFpbGluZyBzbGFzaCAqLworCQkJCWl0ZW0tPmxlbi0tOworCQkJCW1hdGNoW2l0ZW0tPmxlbl0gPSAnXDAnOworCQkJfSBlbHNlCisJCQkJZGllIChfKCJQYXRoc3BlYyAnJXMnIGlzIGluIHN1Ym1vZHVsZSAnJS4qcyciKSwKKwkJCQkgICAgIGVsdCwgY2VfbGVuLCBjZS0+bmFtZSk7CisJCX0KKworCWlmIChtYWdpYyAmIFBBVEhTUEVDX0xJVEVSQUwpCisJCWl0ZW0tPm5vd2lsZGNhcmRfbGVuID0gaXRlbS0+bGVuOworCWVsc2UgeworCQlpdGVtLT5ub3dpbGRjYXJkX2xlbiA9IHNpbXBsZV9sZW5ndGgoaXRlbS0+bWF0Y2gpOworCQlpZiAoaXRlbS0+bm93aWxkY2FyZF9sZW4gPCBwcmVmaXhsZW4pCisJCQlpdGVtLT5ub3dpbGRjYXJkX2xlbiA9IHByZWZpeGxlbjsKKwl9CisJaXRlbS0+ZmxhZ3MgPSAwOworCWlmIChtYWdpYyAmIFBBVEhTUEVDX0dMT0IpIHsKKwkJLyoKKwkJICogRklYTUU6IHNob3VsZCB3ZSBlbmFibGUgT05FU1RBUiBpbiBfR0xPQiBmb3IKKwkJICogcGF0dGVybiAiKiAqIC8gKiAuIGMiPworCQkgKi8KKwl9IGVsc2UgeworCQlpZiAoaXRlbS0+bm93aWxkY2FyZF9sZW4gPCBpdGVtLT5sZW4gJiYKKwkJICAgIGl0ZW0tPm1hdGNoW2l0ZW0tPm5vd2lsZGNhcmRfbGVuXSA9PSAnKicgJiYKKwkJICAgIG5vX3dpbGRjYXJkKGl0ZW0tPm1hdGNoICsgaXRlbS0+bm93aWxkY2FyZF9sZW4gKyAxKSkKKwkJCWl0ZW0tPmZsYWdzIHw9IFBBVEhTUEVDX09ORVNUQVI7CisJfQorCisJLyogc2FuaXR5IGNoZWNrcywgcGF0aHNwZWMgbWF0Y2hlcnMgYXNzdW1lIHRoZXNlIGFyZSBzYW5lICovCisJYXNzZXJ0KGl0ZW0tPm5vd2lsZGNhcmRfbGVuIDw9IGl0ZW0tPmxlbiAmJgorCSAgICAgICBpdGVtLT5wcmVmaXggICAgICAgICA8PSBpdGVtLT5sZW4pOworCXJldHVybiBtYWdpYzsKK30KKworc3RhdGljIGludCBwYXRoc3BlY19pdGVtX2NtcChjb25zdCB2b2lkICphXywgY29uc3Qgdm9pZCAqYl8pCit7CisJc3RydWN0IHBhdGhzcGVjX2l0ZW0gKmEsICpiOworCisJYSA9IChzdHJ1Y3QgcGF0aHNwZWNfaXRlbSAqKWFfOworCWIgPSAoc3RydWN0IHBhdGhzcGVjX2l0ZW0gKiliXzsKKwlyZXR1cm4gc3RyY21wKGEtPm1hdGNoLCBiLT5tYXRjaCk7Cit9CisKK3N0YXRpYyB2b2lkIE5PUkVUVVJOIHVuc3VwcG9ydGVkX21hZ2ljKGNvbnN0IGNoYXIgKnBhdHRlcm4sCisJCQkJICAgICAgIHVuc2lnbmVkIG1hZ2ljLAorCQkJCSAgICAgICB1bnNpZ25lZCBzaG9ydF9tYWdpYykKK3sKKwlzdHJ1Y3Qgc3RyYnVmIHNiID0gU1RSQlVGX0lOSVQ7CisJaW50IGksIG47CisJZm9yIChuID0gaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBhdGhzcGVjX21hZ2ljKTsgaSsrKSB7CisJCWNvbnN0IHN0cnVjdCBwYXRoc3BlY19tYWdpYyAqbSA9IHBhdGhzcGVjX21hZ2ljICsgaTsKKwkJaWYgKCEobWFnaWMgJiBtLT5iaXQpKQorCQkJY29udGludWU7CisJCWlmIChzYi5sZW4pCisJCQlzdHJidWZfYWRkc3RyKCZzYiwgIiAiKTsKKwkJaWYgKHNob3J0X21hZ2ljICYgbS0+Yml0KQorCQkJc3RyYnVmX2FkZGYoJnNiLCAiJyVjJyIsIG0tPm1uZW1vbmljKTsKKwkJZWxzZQorCQkJc3RyYnVmX2FkZGYoJnNiLCAiJyVzJyIsIG0tPm5hbWUpOworCQluKys7CisJfQorCS8qCisJICogV2UgbWF5IHdhbnQgdG8gc3Vic3RpdHV0ZSAidGhpcyBjb21tYW5kIiB3aXRoIGEgY29tbWFuZAorCSAqIG5hbWUuIEUuZy4gd2hlbiBhZGQtLWludGVyYWN0aXZlIGRpZXMgd2hlbiBydW5uaW5nCisJICogImNoZWNrb3V0IC1wIgorCSAqLworCWRpZShfKCIlczogcGF0aHNwZWMgbWFnaWMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGNvbW1hbmQ6ICVzIiksCisJICAgIHBhdHRlcm4sIHNiLmJ1Zik7Cit9CisKKy8qCisgKiBHaXZlbiBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGFuZCBhIHByZWZpeCwgY29udmVydCB0aGUgaW5wdXQgdG8KKyAqIHBhdGhzcGVjLiBkaWUoKSBpZiBhbnkgbWFnaWMgaW4gbWFnaWNfbWFzayBpcyB1c2VkLgorICovCit2b2lkIHBhcnNlX3BhdGhzcGVjKHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMsCisJCSAgICB1bnNpZ25lZCBtYWdpY19tYXNrLCB1bnNpZ25lZCBmbGFncywKKwkJICAgIGNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqKmFyZ3YpCit7CisJc3RydWN0IHBhdGhzcGVjX2l0ZW0gKml0ZW07CisJY29uc3QgY2hhciAqZW50cnkgPSBhcmd2ID8gKmFyZ3YgOiBOVUxMOworCWludCBpLCBuLCBwcmVmaXhsZW4sIG5yX2V4Y2x1ZGUgPSAwOworCisJbWVtc2V0KHBhdGhzcGVjLCAwLCBzaXplb2YoKnBhdGhzcGVjKSk7CisKKwlpZiAoZmxhZ3MgJiBQQVRIU1BFQ19NQVhERVBUSF9WQUxJRCkKKwkJcGF0aHNwZWMtPm1hZ2ljIHw9IFBBVEhTUEVDX01BWERFUFRIOworCisJLyogTm8gYXJndW1lbnRzLCBubyBwcmVmaXggLT4gbm8gcGF0aHNwZWMgKi8KKwlpZiAoIWVudHJ5ICYmICFwcmVmaXgpCisJCXJldHVybjsKKworCWlmICgoZmxhZ3MgJiBQQVRIU1BFQ19QUkVGRVJfQ1dEKSAmJgorCSAgICAoZmxhZ3MgJiBQQVRIU1BFQ19QUkVGRVJfRlVMTCkpCisJCWRpZSgiQlVHOiBQQVRIU1BFQ19QUkVGRVJfQ1dEIGFuZCBQQVRIU1BFQ19QUkVGRVJfRlVMTCBhcmUgaW5jb21wYXRpYmxlIik7CisKKwkvKiBObyBhcmd1bWVudHMgd2l0aCBwcmVmaXggLT4gcHJlZml4IHBhdGhzcGVjICovCisJaWYgKCFlbnRyeSkgeworCQlzdGF0aWMgY29uc3QgY2hhciAqcmF3WzJdOworCisJCWlmIChmbGFncyAmIFBBVEhTUEVDX1BSRUZFUl9GVUxMKQorCQkJcmV0dXJuOworCisJCWlmICghKGZsYWdzICYgUEFUSFNQRUNfUFJFRkVSX0NXRCkpCisJCQlkaWUoIkJVRzogUEFUSFNQRUNfUFJFRkVSX0NXRCByZXF1aXJlcyBhcmd1bWVudHMiKTsKKworCQlwYXRoc3BlYy0+aXRlbXMgPSBpdGVtID0geG1hbGxvYyhzaXplb2YoKml0ZW0pKTsKKwkJbWVtc2V0KGl0ZW0sIDAsIHNpemVvZigqaXRlbSkpOworCQlpdGVtLT5tYXRjaCA9IHByZWZpeDsKKwkJaXRlbS0+b3JpZ2luYWwgPSBwcmVmaXg7CisJCWl0ZW0tPm5vd2lsZGNhcmRfbGVuID0gaXRlbS0+bGVuID0gc3RybGVuKHByZWZpeCk7CisJCWl0ZW0tPnByZWZpeCA9IGl0ZW0tPmxlbjsKKwkJcmF3WzBdID0gcHJlZml4OworCQlyYXdbMV0gPSBOVUxMOworCQlwYXRoc3BlYy0+bnIgPSAxOworCQlwYXRoc3BlYy0+X3JhdyA9IHJhdzsKKwkJcmV0dXJuOworCX0KKworCW4gPSAwOworCXdoaWxlIChhcmd2W25dKQorCQluKys7CisKKwlwYXRoc3BlYy0+bnIgPSBuOworCXBhdGhzcGVjLT5pdGVtcyA9IGl0ZW0gPSB4bWFsbG9jKHNpemVvZigqaXRlbSkgKiBuKTsKKwlwYXRoc3BlYy0+X3JhdyA9IGFyZ3Y7CisJcHJlZml4bGVuID0gcHJlZml4ID8gc3RybGVuKHByZWZpeCkgOiAwOworCisJZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworCQl1bnNpZ25lZCBzaG9ydF9tYWdpYzsKKwkJZW50cnkgPSBhcmd2W2ldOworCisJCWl0ZW1baV0ubWFnaWMgPSBwcmVmaXhfcGF0aHNwZWMoaXRlbSArIGksICZzaG9ydF9tYWdpYywKKwkJCQkJCWFyZ3YgKyBpLCBmbGFncywKKwkJCQkJCXByZWZpeCwgcHJlZml4bGVuLCBlbnRyeSk7CisJCWlmICgoZmxhZ3MgJiBQQVRIU1BFQ19MSVRFUkFMX1BBVEgpICYmCisJCSAgICAhKG1hZ2ljX21hc2sgJiBQQVRIU1BFQ19MSVRFUkFMKSkKKwkJCWl0ZW1baV0ubWFnaWMgfD0gUEFUSFNQRUNfTElURVJBTDsKKwkJaWYgKGl0ZW1baV0ubWFnaWMgJiBQQVRIU1BFQ19FWENMVURFKQorCQkJbnJfZXhjbHVkZSsrOworCQlpZiAoaXRlbVtpXS5tYWdpYyAmIG1hZ2ljX21hc2spCisJCQl1bnN1cHBvcnRlZF9tYWdpYyhlbnRyeSwKKwkJCQkJICBpdGVtW2ldLm1hZ2ljICYgbWFnaWNfbWFzaywKKwkJCQkJICBzaG9ydF9tYWdpYyk7CisKKwkJaWYgKChmbGFncyAmIFBBVEhTUEVDX1NZTUxJTktfTEVBRElOR19QQVRIKSAmJgorCQkgICAgaGFzX3N5bWxpbmtfbGVhZGluZ19wYXRoKGl0ZW1baV0ubWF0Y2gsIGl0ZW1baV0ubGVuKSkgeworCQkJZGllKF8oInBhdGhzcGVjICclcycgaXMgYmV5b25kIGEgc3ltYm9saWMgbGluayIpLCBlbnRyeSk7CisJCX0KKworCQlpZiAoaXRlbVtpXS5ub3dpbGRjYXJkX2xlbiA8IGl0ZW1baV0ubGVuKQorCQkJcGF0aHNwZWMtPmhhc193aWxkY2FyZCA9IDE7CisJCXBhdGhzcGVjLT5tYWdpYyB8PSBpdGVtW2ldLm1hZ2ljOworCX0KKworCWlmIChucl9leGNsdWRlID09IG4pCisJCWRpZShfKCJUaGVyZSBpcyBub3RoaW5nIHRvIGV4Y2x1ZGUgZnJvbSBieSA6KGV4Y2x1ZGUpIHBhdHRlcm5zLlxuIgorCQkgICAgICAiUGVyaGFwcyB5b3UgZm9yZ290IHRvIGFkZCBlaXRoZXIgJzovJyBvciAnLicgPyIpKTsKKworCisJaWYgKHBhdGhzcGVjLT5tYWdpYyAmIFBBVEhTUEVDX01BWERFUFRIKSB7CisJCWlmIChmbGFncyAmIFBBVEhTUEVDX0tFRVBfT1JERVIpCisJCQlkaWUoIkJVRzogUEFUSFNQRUNfTUFYREVQVEhfVkFMSUQgYW5kIFBBVEhTUEVDX0tFRVBfT1JERVIgYXJlIGluY29tcGF0aWJsZSIpOworCQlxc29ydChwYXRoc3BlYy0+aXRlbXMsIHBhdGhzcGVjLT5uciwKKwkJICAgICAgc2l6ZW9mKHN0cnVjdCBwYXRoc3BlY19pdGVtKSwgcGF0aHNwZWNfaXRlbV9jbXApOworCX0KK30KKworLyoKKyAqIE4uQi4gZ2V0X3BhdGhzcGVjKCkgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB0aGUgInN0cnVjdCBwYXRoc3BlYyIKKyAqIGJhc2VkIGludGVyZmFjZSAtIHNlZSBwYXRoc3BlYy5jOnBhcnNlX3BhdGhzcGVjKCkuCisgKgorICogQXJndW1lbnRzOgorICogIC0gcHJlZml4IC0gYSBwYXRoIHJlbGF0aXZlIHRvIHRoZSByb290IG9mIHRoZSB3b3JraW5nIHRyZWUKKyAqICAtIHBhdGhzcGVjIC0gYSBsaXN0IG9mIHBhdGhzIHVuZGVybmVhdGggdGhlIHByZWZpeCBwYXRoCisgKgorICogSXRlcmF0ZXMgb3ZlciBwYXRoc3BlYywgcHJlcGVuZGluZyBlYWNoIHBhdGggd2l0aCBwcmVmaXgsCisgKiBhbmQgcmV0dXJuIHRoZSByZXN1bHRpbmcgbGlzdC4KKyAqCisgKiBJZiBwYXRoc3BlYyBpcyBlbXB0eSwgcmV0dXJuIGEgc2luZ2xldG9uIGxpc3QgY29udGFpbmluZyBwcmVmaXguCisgKgorICogSWYgcGF0aHNwZWMgYW5kIHByZWZpeCBhcmUgYm90aCBlbXB0eSwgcmV0dXJuIGFuIGVtcHR5IGxpc3QuCisgKgorICogVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCBieSBidWlsdC1pbiBjb21tYW5kcyBzdWNoIGFzIGFkZC5jLCBpbiBvcmRlcgorICogdG8gbm9ybWFsaXplIGFyZ3YgYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZSBidWlsdC1pbiBpbnRvIGEgbGlzdCBvZgorICogcGF0aHMgdG8gcHJvY2VzcywgYWxsIHJlbGF0aXZlIHRvIHRoZSByb290IG9mIHRoZSB3b3JraW5nIHRyZWUuCisgKi8KK2NvbnN0IGNoYXIgKipnZXRfcGF0aHNwZWMoY29uc3QgY2hhciAqcHJlZml4LCBjb25zdCBjaGFyICoqcGF0aHNwZWMpCit7CisJc3RydWN0IHBhdGhzcGVjIHBzOworCXBhcnNlX3BhdGhzcGVjKCZwcywKKwkJICAgICAgIFBBVEhTUEVDX0FMTF9NQUdJQyAmCisJCSAgICAgICB+KFBBVEhTUEVDX0ZST01UT1AgfCBQQVRIU1BFQ19MSVRFUkFMKSwKKwkJICAgICAgIFBBVEhTUEVDX1BSRUZFUl9DV0QsCisJCSAgICAgICBwcmVmaXgsIHBhdGhzcGVjKTsKKwlyZXR1cm4gcHMuX3JhdzsKK30KKwordm9pZCBjb3B5X3BhdGhzcGVjKHN0cnVjdCBwYXRoc3BlYyAqZHN0LCBjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnNyYykKK3sKKwkqZHN0ID0gKnNyYzsKKwlkc3QtPml0ZW1zID0geG1hbGxvYyhzaXplb2Yoc3RydWN0IHBhdGhzcGVjX2l0ZW0pICogZHN0LT5ucik7CisJbWVtY3B5KGRzdC0+aXRlbXMsIHNyYy0+aXRlbXMsCisJICAgICAgIHNpemVvZihzdHJ1Y3QgcGF0aHNwZWNfaXRlbSkgKiBkc3QtPm5yKTsKK30KKwordm9pZCBmcmVlX3BhdGhzcGVjKHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMpCit7CisJZnJlZShwYXRoc3BlYy0+aXRlbXMpOworCXBhdGhzcGVjLT5pdGVtcyA9IE5VTEw7CiB9CmRpZmYgLS1naXQgYS9wYXRoc3BlYy5oIGIvcGF0aHNwZWMuaAppbmRleCBkYjAxODRhLi4wYzExMjYyIDEwMDY0NAotLS0gYS9wYXRoc3BlYy5oCisrKyBiL3BhdGhzcGVjLmgKQEAgLTEsOCArMSwxMDEgQEAKICNpZm5kZWYgUEFUSFNQRUNfSAogI2RlZmluZSBQQVRIU1BFQ19ICiAKLWV4dGVybiBjaGFyICpmaW5kX3BhdGhzcGVjc19tYXRjaGluZ19hZ2FpbnN0X2luZGV4KGNvbnN0IGNoYXIgKipwYXRoc3BlYyk7Ci1leHRlcm4gdm9pZCBhZGRfcGF0aHNwZWNfbWF0Y2hlc19hZ2FpbnN0X2luZGV4KGNvbnN0IGNoYXIgKipwYXRoc3BlYywgY2hhciAqc2VlbiwgaW50IHNwZWNzKTsKKy8qIFBhdGhzcGVjIG1hZ2ljICovCisjZGVmaW5lIFBBVEhTUEVDX0ZST01UT1AJKDE8PDApCisjZGVmaW5lIFBBVEhTUEVDX01BWERFUFRICSgxPDwxKQorI2RlZmluZSBQQVRIU1BFQ19MSVRFUkFMCSgxPDwyKQorI2RlZmluZSBQQVRIU1BFQ19HTE9CCQkoMTw8MykKKyNkZWZpbmUgUEFUSFNQRUNfSUNBU0UJCSgxPDw0KQorI2RlZmluZSBQQVRIU1BFQ19FWENMVURFCSgxPDw1KQorI2RlZmluZSBQQVRIU1BFQ19BTExfTUFHSUMJICBcCisJKFBBVEhTUEVDX0ZST01UT1AJfCBcCisJIFBBVEhTUEVDX01BWERFUFRICXwgXAorCSBQQVRIU1BFQ19MSVRFUkFMCXwgXAorCSBQQVRIU1BFQ19HTE9CCQl8IFwKKwkgUEFUSFNQRUNfSUNBU0UJCXwgXAorCSBQQVRIU1BFQ19FWENMVURFKQorCisjZGVmaW5lIFBBVEhTUEVDX09ORVNUQVIgMQkvKiB0aGUgcGF0aHNwZWMgcGF0dGVybiBzYXRpc2ZpZXMgR0ZOTV9PTkVTVEFSICovCisKK3N0cnVjdCBwYXRoc3BlYyB7CisJY29uc3QgY2hhciAqKl9yYXc7IC8qIGdldF9wYXRoc3BlYygpIHJlc3VsdCwgbm90IGZyZWVkIGJ5IGZyZWVfcGF0aHNwZWMoKSAqLworCWludCBucjsKKwl1bnNpZ25lZCBpbnQgaGFzX3dpbGRjYXJkOjE7CisJdW5zaWduZWQgaW50IHJlY3Vyc2l2ZToxOworCXVuc2lnbmVkIG1hZ2ljOworCWludCBtYXhfZGVwdGg7CisJc3RydWN0IHBhdGhzcGVjX2l0ZW0geworCQljb25zdCBjaGFyICptYXRjaDsKKwkJY29uc3QgY2hhciAqb3JpZ2luYWw7CisJCXVuc2lnbmVkIG1hZ2ljOworCQlpbnQgbGVuLCBwcmVmaXg7CisJCWludCBub3dpbGRjYXJkX2xlbjsKKwkJaW50IGZsYWdzOworCX0gKml0ZW1zOworfTsKKworI2RlZmluZSBHVUFSRF9QQVRIU1BFQyhwcywgbWFzaykgXAorCWRvIHsgXAorCQlpZiAoKHBzKS0+bWFnaWMgJiB+KG1hc2spKQkgICAgICAgXAorCQkJZGllKCJCVUc6JXM6JWQ6IHVuc3VwcG9ydGVkIG1hZ2ljICV4IiwJXAorCQkJICAgIF9fRklMRV9fLCBfX0xJTkVfXywgKHBzKS0+bWFnaWMgJiB+KG1hc2spKTsgXAorCX0gd2hpbGUgKDApCisKKy8qIHBhcnNlX3BhdGhzcGVjIGZsYWdzICovCisjZGVmaW5lIFBBVEhTUEVDX1BSRUZFUl9DV0QgKDE8PDApIC8qIE5vIGFyZ3MgbWVhbnMgbWF0Y2ggY3dkICovCisjZGVmaW5lIFBBVEhTUEVDX1BSRUZFUl9GVUxMICgxPDwxKSAvKiBObyBhcmdzIG1lYW5zIG1hdGNoIGV2ZXJ5dGhpbmcgKi8KKyNkZWZpbmUgUEFUSFNQRUNfTUFYREVQVEhfVkFMSUQgKDE8PDIpIC8qIG1heF9kZXB0aCBmaWVsZCBpcyB2YWxpZCAqLworLyogc3RyaXAgdGhlIHRyYWlsaW5nIHNsYXNoIGlmIHRoZSBnaXZlbiBwYXRoIGlzIGEgZ2l0bGluayAqLworI2RlZmluZSBQQVRIU1BFQ19TVFJJUF9TVUJNT0RVTEVfU0xBU0hfQ0hFQVAgKDE8PDMpCisvKiBkaWUgaWYgYSBzeW1saW5rIGlzIHBhcnQgb2YgdGhlIGdpdmVuIHBhdGgncyBkaXJlY3RvcnkgKi8KKyNkZWZpbmUgUEFUSFNQRUNfU1lNTElOS19MRUFESU5HX1BBVEggKDE8PDQpCisvKgorICogVGhpcyBpcyBsaWtlIGEgY29tYmluYXRpb24gb2YgLi5MRUFESU5HX1BBVEggYW5kIC4uX1NMQVNIX0NIRUFQCisgKiAoYnV0IG5vdCB0aGUgc2FtZSk6IGl0IHN0cmlwcyB0aGUgdHJhaWxpbmcgc2xhc2ggaWYgdGhlIGdpdmVuIHBhdGgKKyAqIGlzIGEgZ2l0bGluayBidXQgYWxzbyBjaGVja3MgYW5kIGRpZXMgaWYgZ2l0bGluayBpcyBwYXJ0IG9mIHRoZQorICogbGVhZGluZyBwYXRoIChpLmUuIHRoZSBnaXZlbiBwYXRoIGdvZXMgYmV5b25kIGEgc3VibW9kdWxlKS4gSXQncworICogc2FmZXIgdGhhbiBfU0xBU0hfQ0hFQVAgYW5kIGFsc28gbW9yZSBleHBlbnNpdmUuCisgKi8KKyNkZWZpbmUgUEFUSFNQRUNfU1RSSVBfU1VCTU9EVUxFX1NMQVNIX0VYUEVOU0lWRSAoMTw8NSkKKyNkZWZpbmUgUEFUSFNQRUNfUFJFRklYX09SSUdJTiAoMTw8NikKKyNkZWZpbmUgUEFUSFNQRUNfS0VFUF9PUkRFUiAoMTw8NykKKy8qCisgKiBGb3IgdGhlIGNhbGxlcnMgdGhhdCBqdXN0IG5lZWQgcHVyZSBwYXRocyBmcm9tIHNvbWV3aGVyZSBlbHNlLCBub3QKKyAqIGZyb20gY29tbWFuZCBsaW5lLiBHbG9iYWwgLS0qLXBhdGhzcGVjcyBvcHRpb25zIGFyZSBpZ25vcmVkLiBObworICogbWFnaWMgaXMgcGFyc2VkIGluIGVhY2ggcGF0aHNwZWMgZWl0aGVyLiBJZiBQQVRIU1BFQ19MSVRFUkFMIGlzCisgKiBhbGxvd2VkLCB0aGVuIGl0IHdpbGwgYXV0b21hdGljYWxseSBzZXQgZm9yIGV2ZXJ5IHBhdGhzcGVjLgorICovCisjZGVmaW5lIFBBVEhTUEVDX0xJVEVSQUxfUEFUSCAoMTw8OCkKKworZXh0ZXJuIHZvaWQgcGFyc2VfcGF0aHNwZWMoc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYywKKwkJCSAgIHVuc2lnbmVkIG1hZ2ljX21hc2ssCisJCQkgICB1bnNpZ25lZCBmbGFncywKKwkJCSAgIGNvbnN0IGNoYXIgKnByZWZpeCwKKwkJCSAgIGNvbnN0IGNoYXIgKiphcmdzKTsKK2V4dGVybiB2b2lkIGNvcHlfcGF0aHNwZWMoc3RydWN0IHBhdGhzcGVjICpkc3QsIGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqc3JjKTsKK2V4dGVybiB2b2lkIGZyZWVfcGF0aHNwZWMoc3RydWN0IHBhdGhzcGVjICopOworCitzdGF0aWMgaW5saW5lIGludCBwc19zdHJuY21wKGNvbnN0IHN0cnVjdCBwYXRoc3BlY19pdGVtICppdGVtLAorCQkJICAgICBjb25zdCBjaGFyICpzMSwgY29uc3QgY2hhciAqczIsIHNpemVfdCBuKQoreworCWlmIChpdGVtLT5tYWdpYyAmIFBBVEhTUEVDX0lDQVNFKQorCQlyZXR1cm4gc3RybmNhc2VjbXAoczEsIHMyLCBuKTsKKwllbHNlCisJCXJldHVybiBzdHJuY21wKHMxLCBzMiwgbik7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHBzX3N0cmNtcChjb25zdCBzdHJ1Y3QgcGF0aHNwZWNfaXRlbSAqaXRlbSwKKwkJCSAgICBjb25zdCBjaGFyICpzMSwgY29uc3QgY2hhciAqczIpCit7CisJaWYgKGl0ZW0tPm1hZ2ljICYgUEFUSFNQRUNfSUNBU0UpCisJCXJldHVybiBzdHJjYXNlY21wKHMxLCBzMik7CisJZWxzZQorCQlyZXR1cm4gc3RyY21wKHMxLCBzMik7Cit9CisKK2V4dGVybiBjaGFyICpmaW5kX3BhdGhzcGVjc19tYXRjaGluZ19hZ2FpbnN0X2luZGV4KGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMpOworZXh0ZXJuIHZvaWQgYWRkX3BhdGhzcGVjX21hdGNoZXNfYWdhaW5zdF9pbmRleChjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjLCBjaGFyICpzZWVuKTsKIGV4dGVybiBjb25zdCBjaGFyICpjaGVja19wYXRoX2Zvcl9naXRsaW5rKGNvbnN0IGNoYXIgKnBhdGgpOwogZXh0ZXJuIHZvaWQgZGllX2lmX3BhdGhfYmV5b25kX3N5bWxpbmsoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqcHJlZml4KTsKIApkaWZmIC0tZ2l0IGEvcGVybC9HaXQvU1ZOLnBtIGIvcGVybC9HaXQvU1ZOLnBtCmluZGV4IDUyNzNlZTguLjZlODA0YTIgMTAwNjQ0Ci0tLSBhL3BlcmwvR2l0L1NWTi5wbQorKysgYi9wZXJsL0dpdC9TVk4ucG0KQEAgLTE1OTksNiArMTU5OSw3IEBACiAJCW15ICVsb29rdXBfc3ZuX21lcmdlX2NhY2hlOwogCQlteSAlY2hlY2tfY2hlcnJ5X3BpY2tfY2FjaGU7CiAJCW15ICVoYXNfbm9fY2hhbmdlc19jYWNoZTsKKwkJbXkgJV9yZXZfbGlzdF9jYWNoZTsKIAogCQl0aWVfZm9yX3BlcnNpc3RlbnRfbWVtb2l6YXRpb24oXCVsb29rdXBfc3ZuX21lcmdlX2NhY2hlLAogCQkgICAgIiRjYWNoZV9wYXRoL2xvb2t1cF9zdm5fbWVyZ2UiKTsKQEAgLTE2MjAsNiArMTYyMSwxNCBAQAogCQkJU0NBTEFSX0NBQ0hFID0+IFsnSEFTSCcgPT4gXCVoYXNfbm9fY2hhbmdlc19jYWNoZV0sCiAJCQlMSVNUX0NBQ0hFID0+ICdGQVVMVCcsCiAJCTsKKworCQl0aWVfZm9yX3BlcnNpc3RlbnRfbWVtb2l6YXRpb24oXCVfcmV2X2xpc3RfY2FjaGUsCisJCSAgICAiJGNhY2hlX3BhdGgvX3Jldl9saXN0Iik7CisJCW1lbW9pemUgJ19yZXZfbGlzdCcsCisJCQlTQ0FMQVJfQ0FDSEUgPT4gJ0ZBVUxUJywKKwkJCUxJU1RfQ0FDSEUgPT4gWydIQVNIJyA9PiBcJV9yZXZfbGlzdF9jYWNoZV0sCisJCTsKKwogCX0KIAogCXN1YiB1bm1lbW9pemVfc3ZuX21lcmdlaW5mb19mdW5jdGlvbnMgewpAQCAtMTYyOSw2ICsxNjM4LDcgQEAKIAkJTWVtb2l6ZTo6dW5tZW1vaXplICdsb29rdXBfc3ZuX21lcmdlJzsKIAkJTWVtb2l6ZTo6dW5tZW1vaXplICdjaGVja19jaGVycnlfcGljayc7CiAJCU1lbW9pemU6OnVubWVtb2l6ZSAnaGFzX25vX2NoYW5nZXMnOworCQlNZW1vaXplOjp1bm1lbW9pemUgJ19yZXZfbGlzdCc7CiAJfQogCiAJc3ViIGNsZWFyX21lbW9pemVkX21lcmdlaW5mb19jYWNoZXMgewpAQCAtMTk1OSwxMSArMTk2OSwyNSBAQAogCXVubGluayAkcGF0aCBvciBjcm9hayAidW5saW5rOiAkISI7CiB9CiAKKyNkZWZpbmUgYSBnbG9iYWwgYXNzb2NpYXRlIG1hcCB0byByZWNvcmQgcmVidWlsZCBzdGF0dXMKK215ICVyZWJ1aWxkX3N0YXR1czsKKyNkZWZpbmUgYSBnbG9iYWwgYXNzb2NpYXRlIG1hcCB0byByZWNvcmQgcmVidWlsZCB2ZXJpZnkgc3RhdHVzCitteSAlcmVidWlsZF92ZXJpZnlfc3RhdHVzOworCiBzdWIgcmVidWlsZCB7CiAJbXkgKCRzZWxmKSA9IEBfOwogCW15ICRtYXBfcGF0aCA9ICRzZWxmLT5tYXBfcGF0aDsKIAlteSAkcGFydGlhbCA9ICgtZSAkbWFwX3BhdGggJiYgISAteiAkbWFwX3BhdGgpOwotCXJldHVybiB1bmxlc3MgOjp2ZXJpZnlfcmVmKCRzZWxmLT5yZWZuYW1lLideMCcpOworCW15ICR2ZXJpZnlfa2V5ID0gJHNlbGYtPnJlZm5hbWUuJ14wJzsKKwlpZiAoISRyZWJ1aWxkX3ZlcmlmeV9zdGF0dXN7JHZlcmlmeV9rZXl9KSB7CisJCW15ICR2ZXJpZnlfcmVzdWx0ID0gOjp2ZXJpZnlfcmVmKCR2ZXJpZnlfa2V5KTsKKwkJaWYgKCR2ZXJpZnlfcmVzdWx0KSB7CisJCQkkcmVidWlsZF92ZXJpZnlfc3RhdHVzeyR2ZXJpZnlfa2V5fSA9IDE7CisJCX0KKwl9CisJaWYgKCEkcmVidWlsZF92ZXJpZnlfc3RhdHVzeyR2ZXJpZnlfa2V5fSkgeworCQlyZXR1cm47CisJfQogCWlmICghJHBhcnRpYWwgJiYgKCRzZWxmLT51c2Vfc3ZtX3Byb3BzIHx8ICRzZWxmLT5ub19tZXRhZGF0YSkpIHsKIAkJbXkgJHJldl9kYiA9ICRzZWxmLT5yZXZfZGJfcGF0aDsKIAkJJHNlbGYtPnJlYnVpbGRfZnJvbV9yZXZfZGIoJHJldl9kYik7CkBAIC0xOTc3LDEwICsyMDAxLDIxIEBACiAJcHJpbnQgIlJlYnVpbGRpbmcgJG1hcF9wYXRoIC4uLlxuIiBpZiAoISRwYXJ0aWFsKTsKIAlteSAoJGJhc2VfcmV2LCAkaGVhZCkgPSAoJHBhcnRpYWwgPyAkc2VsZi0+cmV2X21hcF9tYXhfbm9yZWJ1aWxkKDEpIDoKIAkJKHVuZGVmLCB1bmRlZikpOworCW15ICRrZXlfdmFsdWUgPSAoJGhlYWQgPyAiJGhlYWQuLiIgOiAiIikgLiAkc2VsZi0+cmVmbmFtZTsKKwlpZiAoZXhpc3RzICRyZWJ1aWxkX3N0YXR1c3ska2V5X3ZhbHVlfSkgeworCQlwcmludCAiRG9uZSByZWJ1aWxkaW5nICRtYXBfcGF0aFxuIiBpZiAoISRwYXJ0aWFsIHx8ICEkaGVhZCk7CisJCW15ICRyZXZfZGJfcGF0aCA9ICRzZWxmLT5yZXZfZGJfcGF0aDsKKwkJaWYgKC1mICRzZWxmLT5yZXZfZGJfcGF0aCkgeworCQkJdW5saW5rICRzZWxmLT5yZXZfZGJfcGF0aCBvciBjcm9hayAidW5saW5rOiAkISI7CisJCX0KKwkJJHNlbGYtPnVubGlua19yZXZfZGJfc3ltbGluazsKKwkJcmV0dXJuOworCX0KIAlteSAoJGxvZywgJGN0eCkgPQotCSAgICBjb21tYW5kX291dHB1dF9waXBlKHF3L3Jldi1saXN0IC0tcHJldHR5PXJhdyAtLXJldmVyc2UvLAotCQkJCSgkaGVhZCA/ICIkaGVhZC4uIiA6ICIiKSAuICRzZWxmLT5yZWZuYW1lLAorCQljb21tYW5kX291dHB1dF9waXBlKHF3L3Jldi1saXN0IC0tcHJldHR5PXJhdyAtLXJldmVyc2UvLAorCQkJCSRrZXlfdmFsdWUsCiAJCQkJJy0tJyk7CisJJHJlYnVpbGRfc3RhdHVzeyRrZXlfdmFsdWV9ID0gMTsKIAlteSAkbWV0YWRhdGFfdXJsID0gJHNlbGYtPm1ldGFkYXRhX3VybDsKIAlyZW1vdmVfdXNlcm5hbWUoJG1ldGFkYXRhX3VybCk7CiAJbXkgJHN2bl91dWlkID0gJHNlbGYtPnJld3JpdGVfdXVpZCB8fCAkc2VsZi0+cmFfdXVpZDsKZGlmZiAtLWdpdCBhL3BlcmwvR2l0L1NWTi9FZGl0b3IucG0gYi9wZXJsL0dpdC9TVk4vRWRpdG9yLnBtCmluZGV4IGIzYmNkNDcuLjM0ZThhZjkgMTAwNjQ0Ci0tLSBhL3BlcmwvR2l0L1NWTi9FZGl0b3IucG0KKysrIGIvcGVybC9HaXQvU1ZOL0VkaXRvci5wbQpAQCAtMzA0LDggKzMwNCwxMiBAQAogCW15ICgkc2VsZiwgJG0sICRkZWxldGlvbnMpID0gQF87CiAJbXkgKCRkaXIsICRmaWxlKSA9IHNwbGl0X3BhdGgoJG0tPntmaWxlX2J9KTsKIAlteSAkcGJhdCA9ICRzZWxmLT5lbnN1cmVfcGF0aCgkZGlyLCAkZGVsZXRpb25zKTsKKwkjIHdvcmthcm91bmQgZm9yIGEgYnVnIGluIHN2biBzZXJmIGJhY2tlbmQgKHYxLjguNSBhbmQgYmVsb3cpOgorCSMgc3RvcmUgdGhpcmQgYXJndW1lbnQgdG8gLT5hZGRfZmlsZSgpIGluIGEgbG9jYWwgdmFyaWFibGUsIHRvIG1ha2UgaXQKKwkjIGhhdmUgdGhlIHNhbWUgbGlmZXRpbWUgYXMgJGZiYXQKKwlteSAkdXBhID0gJHNlbGYtPnVybF9wYXRoKCRtLT57ZmlsZV9hfSk7CiAJbXkgJGZiYXQgPSAkc2VsZi0+YWRkX2ZpbGUoJHNlbGYtPnJlcG9fcGF0aCgkbS0+e2ZpbGVfYn0pLCAkcGJhdCwKLQkJCQkkc2VsZi0+dXJsX3BhdGgoJG0tPntmaWxlX2F9KSwgJHNlbGYtPntyfSk7CisJCQkJJHVwYSwgJHNlbGYtPntyfSk7CiAJcHJpbnQgIlx0Q1x0JG0tPntmaWxlX2F9ID0+ICRtLT57ZmlsZV9ifVxuIiB1bmxlc3MgJDo6X3E7CiAJJHNlbGYtPmNoZ19maWxlKCRmYmF0LCAkbSk7CiAJJHNlbGYtPmNsb3NlX2ZpbGUoJGZiYXQsdW5kZWYsJHNlbGYtPntwb29sfSk7CkBAIC0zMjMsOCArMzI3LDEwIEBACiAJbXkgKCRzZWxmLCAkbSwgJGRlbGV0aW9ucykgPSBAXzsKIAlteSAoJGRpciwgJGZpbGUpID0gc3BsaXRfcGF0aCgkbS0+e2ZpbGVfYn0pOwogCW15ICRwYmF0ID0gJHNlbGYtPmVuc3VyZV9wYXRoKCRkaXIsICRkZWxldGlvbnMpOworCSMgd29ya2Fyb3VuZCBmb3IgYSBidWcgaW4gc3ZuIHNlcmYgYmFja2VuZCwgc2VlIGNvbW1lbnQgaW4gQygpIGFib3ZlCisJbXkgJHVwYSA9ICRzZWxmLT51cmxfcGF0aCgkbS0+e2ZpbGVfYX0pOwogCW15ICRmYmF0ID0gJHNlbGYtPmFkZF9maWxlKCRzZWxmLT5yZXBvX3BhdGgoJG0tPntmaWxlX2J9KSwgJHBiYXQsCi0JCQkJJHNlbGYtPnVybF9wYXRoKCRtLT57ZmlsZV9hfSksICRzZWxmLT57cn0pOworCQkJCSR1cGEsICRzZWxmLT57cn0pOwogCXByaW50ICJcdFJcdCRtLT57ZmlsZV9hfSA9PiAkbS0+e2ZpbGVfYn1cbiIgdW5sZXNzICQ6Ol9xOwogCSRzZWxmLT5hcHBseV9hdXRvcHJvcHMoJGZpbGUsICRmYmF0KTsKIAkkc2VsZi0+Y2hnX2ZpbGUoJGZiYXQsICRtKTsKZGlmZiAtLWdpdCBhL3BlcmwvR2l0L1NWTi9Mb2cucG0gYi9wZXJsL0dpdC9TVk4vTG9nLnBtCmluZGV4IDNmODM1MGEuLjM0ZjI4NjkgMTAwNjQ0Ci0tLSBhL3BlcmwvR2l0L1NWTi9Mb2cucG0KKysrIGIvcGVybC9HaXQvU1ZOL0xvZy5wbQpAQCAtMTE3LDYgKzExNyw3IEBACiAJfQogCW9wZW4gU1RESU4sICc8JicsICRyZmQgb3IgZmF0YWwgIkNhbid0IHJlZGlyZWN0IHN0ZGluOiAkISI7CiAJJEVOVntMRVNTfSB8fD0gJ0ZSU1gnOworCSRFTlZ7TFZ9IHx8PSAnLWMnOwogCWV4ZWMgJHBhZ2VyIG9yIGZhdGFsICJDYW4ndCBydW4gcGFnZXI6ICQhICgkcGFnZXIpIjsKIH0KIApkaWZmIC0tZ2l0IGEvcGVybC9HaXQvU1ZOL1JhLnBtIGIvcGVybC9HaXQvU1ZOL1JhLnBtCmluZGV4IDc1ZWNjNDIuLmE3YjAxMTkgMTAwNjQ0Ci0tLSBhL3BlcmwvR2l0L1NWTi9SYS5wbQorKysgYi9wZXJsL0dpdC9TVk4vUmEucG0KQEAgLTMyLDYgKzMyLDE0IEBACiAJfQogfQogCisjIHNlcmYgaGFzIGEgYnVnIHRoYXQgbGVhZHMgdG8gYSBjb3JlZHVtcCB1cG9uIHRlcm1pbmF0aW9uIGlmIHRoZQorIyByZW1vdGUgYWNjZXNzIG9iamVjdCBpcyBsZWZ0IGFyb3VuZCAobm90IGZpeGVkIHlldCBpbiBzZXJmIDEuMy4xKS4KKyMgRXhwbGljaXRseSBmcmVlIGl0IHRvIHdvcmsgYXJvdW5kIHRoZSBpc3N1ZS4KK0VORCB7CisJJFJBID0gdW5kZWY7CisJJHJhX2ludmFsaWQgPSAxOworfQorCiBzdWIgX2F1dGhfcHJvdmlkZXJzICgpIHsKIAlteSBAcnYgPSAoCiAJICBTVk46OkNsaWVudDo6Z2V0X3NpbXBsZV9wcm92aWRlcigpLApkaWZmIC0tZ2l0IGEvcGt0LWxpbmUuYyBiL3BrdC1saW5lLmMKaW5kZXggNzBmMTk1MC4uYmM2M2IzYiAxMDA2NDQKLS0tIGEvcGt0LWxpbmUuYworKysgYi9wa3QtbGluZS5jCkBAIC0yNCw4ICsyNCw4IEBACiAJc3RyYnVmX2FkZGYoJm91dCwgInBhY2tldDogJTEycyVjICIsCiAJCSAgICBwYWNrZXRfdHJhY2VfcHJlZml4LCB3cml0ZSA/ICc+JyA6ICc8Jyk7CiAKLQlpZiAoKGxlbiA+PSA0ICYmICFwcmVmaXhjbXAoYnVmLCAiUEFDSyIpKSB8fAotCSAgICAobGVuID49IDUgJiYgIXByZWZpeGNtcChidWYrMSwgIlBBQ0siKSkpIHsKKwlpZiAoKGxlbiA+PSA0ICYmIHN0YXJ0c193aXRoKGJ1ZiwgIlBBQ0siKSkgfHwKKwkgICAgKGxlbiA+PSA1ICYmIHN0YXJ0c193aXRoKGJ1ZisxLCAiUEFDSyIpKSkgewogCQlzdHJidWZfYWRkc3RyKCZvdXQsICJQQUNLIC4uLiIpOwogCQl1bnNldGVudih0cmFjZV9rZXkpOwogCX0KZGlmZiAtLWdpdCBhL3BvL1RFQU1TIGIvcG8vVEVBTVMKaW5kZXggMTA3YWE1OS4uZjlhOTllZCAxMDA2NDQKLS0tIGEvcG8vVEVBTVMKKysrIGIvcG8vVEVBTVMKQEAgLTgsNyArOCw3IEBACiBMYW5ndWFnZToJZGUgKEdlcm1hbikKIFJlcG9zaXRvcnk6CWh0dHBzOi8vZ2l0aHViLmNvbS9yYWxmdGgvZ2l0LXBvLWRlCiBMZWFkZXI6CQlSYWxmIFRoaWVsb3cgPHJhbGYudGhpZWxvd0Bnb29nbGVtYWlsLmNvbT4KLU1lbWJlcnM6CVRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitNZW1iZXJzOglUaG9tYXMgUmFzdCA8dHJAdGhvbWFzcmFzdC5jaD4KIAkJSmFuIEtyw7xnZXIgPGprQGprLmdzPgogCQlDaHJpc3RpYW4gU3RpbW1pbmcgPHN0aW1taW5nQHR1aGguZGU+CiAKZGlmZiAtLWdpdCBhL3BvL2RhLnBvIGIvcG8vZGEucG8KaW5kZXggMjBhODhlYS4uODk4YjE4ZCAxMDA2NDQKLS0tIGEvcG8vZGEucG8KKysrIGIvcG8vZGEucG8KQEAgLTE2NzQsNyArMTY3NCw3IEBACiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ4MgotbXNnaWQgIi0tZGlydHkgaXMgaW5jb21wYXRpYmxlIHdpdGggY29tbWl0dGlzaGVzIgorbXNnaWQgIi0tZGlydHkgaXMgaW5jb21wYXRpYmxlIHdpdGggY29tbWl0LWlzaGVzIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vZGlmZi5jOjc3CmRpZmYgLS1naXQgYS9wby9kZS5wbyBiL3BvL2RlLnBvCmluZGV4IGY0MDc2ZmIuLmMwYmJiNjUgMTAwNjQ0Ci0tLSBhL3BvL2RlLnBvCisrKyBiL3BvL2RlLnBvCkBAIC01LDkgKzUsOSBAQAogIwogbXNnaWQgIiIKIG1zZ3N0ciAiIgotIlByb2plY3QtSWQtVmVyc2lvbjogZ2l0IDEuOC40XG4iCisiUHJvamVjdC1JZC1WZXJzaW9uOiBnaXQgMS44LjVcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogR2l0IE1haWxpbmcgTGlzdCA8Z2l0QHZnZXIua2VybmVsLm9yZz5cbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0wOC0wNiAxNDoxMCswODAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMTEtMDIgMDg6MDYrMDgwMFxuIgogIlBPLVJldmlzaW9uLURhdGU6IDIwMTMtMDctMjggMTg6NDIrMDIwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogUmFsZiBUaGllbG93IDxyYWxmLnRoaWVsb3dAZ21haWwuY29tPlxuIgogIkxhbmd1YWdlLVRlYW06IEdlcm1hbiA8PlxuIgpAQCAtNTcsNzEgKzU3LDc2IEBACiBtc2dpZCAiZ2l0IGFyY2hpdmUgLS1yZW1vdGUgPHJlcG8+IFstLWV4ZWMgPGNtZD5dIC0tbGlzdCIKIG1zZ3N0ciAiZ2l0IGFyY2hpdmUgLS1yZW1vdGUgPFJlcG9zaXRvcnk+IFstLWV4ZWMgPFByb2dyYW1tPl0gLS1saXN0IgogCi0jOiBhcmNoaXZlLmM6MzIzCisjOiBhcmNoaXZlLmM6MjQyIGJ1aWx0aW4vYWRkLmM6MjQwIGJ1aWx0aW4vYWRkLmM6NTU2IGJ1aWx0aW4vcm0uYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0aHNwZWMgJyVzJyBkaWQgbm90IG1hdGNoIGFueSBmaWxlcyIKK21zZ3N0ciAiUGZhZHNwZXppZmlrYXRpb24gJyVzJyBzdGltbXQgbWl0IGtlaW5lbiBEYXRlaWVuIMO8YmVyZWluIgorCisjOiBhcmNoaXZlLmM6MzI3CiBtc2dpZCAiZm10IgogbXNnc3RyICJGb3JtYXQiCiAKLSM6IGFyY2hpdmUuYzozMjMKKyM6IGFyY2hpdmUuYzozMjcKIG1zZ2lkICJhcmNoaXZlIGZvcm1hdCIKIG1zZ3N0ciAiQXJjaGl2Zm9ybWF0IgogCi0jOiBhcmNoaXZlLmM6MzI0IGJ1aWx0aW4vbG9nLmM6MTE3MworIzogYXJjaGl2ZS5jOjMyOCBidWlsdGluL2xvZy5jOjExOTMKIG1zZ2lkICJwcmVmaXgiCi1tc2dzdHIgIlByZWZpeCIKK21zZ3N0ciAiUHLDpGZpeCIKIAotIzogYXJjaGl2ZS5jOjMyNQorIzogYXJjaGl2ZS5jOjMyOQogbXNnaWQgInByZXBlbmQgcHJlZml4IHRvIGVhY2ggcGF0aG5hbWUgaW4gdGhlIGFyY2hpdmUiCiBtc2dzdHIgInN0ZWxsdCBlaW5lbiBQcsOkZml4IHZvciBqZWRlbiBQZmFkbmFtZW4gaW4gZGVtIEFyY2hpdiIKIAotIzogYXJjaGl2ZS5jOjMyNiBidWlsdGluL2FyY2hpdmUuYzo4OCBidWlsdGluL2JsYW1lLmM6MjI5MgotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTMgYnVpbHRpbi9jb25maWcuYzo1NiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjczCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc1IGJ1aWx0aW4vZ3JlcC5jOjcxNCBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTYgYnVpbHRpbi9scy1maWxlcy5jOjQ5OSBidWlsdGluL25vdGVzLmM6NDA4Ci0jOiBidWlsdGluL25vdGVzLmM6NTY1IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA4IHBhcnNlLW9wdGlvbnMuaDoxNTIKKyM6IGFyY2hpdmUuYzozMzAgYnVpbHRpbi9hcmNoaXZlLmM6ODggYnVpbHRpbi9ibGFtZS5jOjIyNjQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY1IGJ1aWx0aW4vY29uZmlnLmM6NTggYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MiBidWlsdGluL2dyZXAuYzo3MTYgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg2IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODkgYnVpbHRpbi9ub3Rlcy5jOjQwOAorIzogYnVpbHRpbi9ub3Rlcy5jOjU2NSBidWlsdGluL3JlYWQtdHJlZS5jOjEwOCBwYXJzZS1vcHRpb25zLmg6MTU0CiBtc2dpZCAiZmlsZSIKIG1zZ3N0ciAiRGF0ZWkiCiAKLSM6IGFyY2hpdmUuYzozMjcgYnVpbHRpbi9hcmNoaXZlLmM6ODkKKyM6IGFyY2hpdmUuYzozMzEgYnVpbHRpbi9hcmNoaXZlLmM6ODkKIG1zZ2lkICJ3cml0ZSB0aGUgYXJjaGl2ZSB0byB0aGlzIGZpbGUiCiBtc2dzdHIgInNjaHJlaWJ0IGRhcyBBcmNoaXYgaW4gZGllc2UgRGF0ZWkiCiAKLSM6IGFyY2hpdmUuYzozMjkKKyM6IGFyY2hpdmUuYzozMzMKIG1zZ2lkICJyZWFkIC5naXRhdHRyaWJ1dGVzIGluIHdvcmtpbmcgZGlyZWN0b3J5IgogbXNnc3RyICJsaWVzdCAuZ2l0YXR0cmlidXRlcyBhdXMgZGVtIEFyYmVpdHN2ZXJ6ZWljaG5pcyIKIAotIzogYXJjaGl2ZS5jOjMzMAorIzogYXJjaGl2ZS5jOjMzNAogbXNnaWQgInJlcG9ydCBhcmNoaXZlZCBmaWxlcyBvbiBzdGRlcnIiCiBtc2dzdHIgImdpYnQgYXJjaGl2aWVydGUgRGF0ZWllbiBpbiBkZXIgU3RhbmRhcmQtRmVobGVyYXVzZ2FiZSBhdXMiCiAKLSM6IGFyY2hpdmUuYzozMzEKKyM6IGFyY2hpdmUuYzozMzUKIG1zZ2lkICJzdG9yZSBvbmx5IgogbXNnc3RyICJudXIgc3BlaWNoZXJuIgogCi0jOiBhcmNoaXZlLmM6MzMyCisjOiBhcmNoaXZlLmM6MzM2CiBtc2dpZCAiY29tcHJlc3MgZmFzdGVyIgogbXNnc3RyICJzY2huZWxsZXIga29tcHJpbWllcmVuIgogCi0jOiBhcmNoaXZlLmM6MzQwCisjOiBhcmNoaXZlLmM6MzQ0CiBtc2dpZCAiY29tcHJlc3MgYmV0dGVyIgogbXNnc3RyICJiZXNzZXIga29tcHJpbWllcmVuIgogCi0jOiBhcmNoaXZlLmM6MzQzCisjOiBhcmNoaXZlLmM6MzQ3CiBtc2dpZCAibGlzdCBzdXBwb3J0ZWQgYXJjaGl2ZSBmb3JtYXRzIgogbXNnc3RyICJsaXN0ZXQgdW50ZXJzdMO8dHp0ZSBBcmNoaXZmb3JtYXRlIGF1ZiIKIAotIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODUKKyM6IGFyY2hpdmUuYzozNDkgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg0CiBtc2dpZCAicmVwbyIKIG1zZ3N0ciAiUmVwb3NpdG9yeSIKIAotIzogYXJjaGl2ZS5jOjM0NiBidWlsdGluL2FyY2hpdmUuYzo5MQorIzogYXJjaGl2ZS5jOjM1MCBidWlsdGluL2FyY2hpdmUuYzo5MQogbXNnaWQgInJldHJpZXZlIHRoZSBhcmNoaXZlIGZyb20gcmVtb3RlIHJlcG9zaXRvcnkgPHJlcG8+IgogbXNnc3RyICJydWZ0IGRhcyBBcmNoaXYgdm9uIFJlbW90ZS1SZXBvc2l0b3J5IDxSZXBvc2l0b3J5PiBhYiIKIAotIzogYXJjaGl2ZS5jOjM0NyBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NDg3CisjOiBhcmNoaXZlLmM6MzUxIGJ1aWx0aW4vYXJjaGl2ZS5jOjkyIGJ1aWx0aW4vbm90ZXMuYzo0ODcKIG1zZ2lkICJjb21tYW5kIgogbXNnc3RyICJQcm9ncmFtbSIKIAotIzogYXJjaGl2ZS5jOjM0OCBidWlsdGluL2FyY2hpdmUuYzo5MworIzogYXJjaGl2ZS5jOjM1MiBidWlsdGluL2FyY2hpdmUuYzo5MwogbXNnaWQgInBhdGggdG8gdGhlIHJlbW90ZSBnaXQtdXBsb2FkLWFyY2hpdmUgY29tbWFuZCIKIG1zZ3N0ciAiUGZhZCB6dW0gZXh0ZXJuZW4gXCJnaXQtdXBsb2FkLWFyY2hpdmVcIi1Qcm9ncmFtbSIKIApAQCAtMjA3LDE5ICsyMTIsMTkgQEAKIG1zZ2lkICJDYW5ub3QgZm9yY2UgdXBkYXRlIHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIkthbm4gQWt0dWFsaXNpZXJ1bmcgZGVzIGFrdHVlbGxlbiBCcmFuY2hlcyBuaWNodCBlcnp3aW5nZW4uIgogCi0jOiBicmFuY2guYzoyMTYKKyM6IGJyYW5jaC5jOjIxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgc2V0dXAgdHJhY2tpbmcgaW5mb3JtYXRpb247IHN0YXJ0aW5nIHBvaW50ICclcycgaXMgbm90IGEgYnJhbmNoLiIKIG1zZ3N0ciAiIgogIkthbm4gVHJhY2tpbmctSW5mb3JtYXRpb25lbiBuaWNodCBlaW5yaWNodGVuOyBTdGFydHB1bmt0ICclcycgaXN0IGtlaW4gIgogIkJyYW5jaC4iCiAKLSM6IGJyYW5jaC5jOjIxOAorIzogYnJhbmNoLmM6MjE3CiAjLCBjLWZvcm1hdAogbXNnaWQgInRoZSByZXF1ZXN0ZWQgdXBzdHJlYW0gYnJhbmNoICclcycgZG9lcyBub3QgZXhpc3QiCiBtc2dzdHIgImRlciBhbmdlZm9yZGVydGUgVXBzdHJlYW0tQnJhbmNoICclcycgZXhpc3RpZXJ0IG5pY2h0IgogCi0jOiBicmFuY2guYzoyMjAKKyM6IGJyYW5jaC5jOjIxOQogbXNnaWQgIiIKICJcbiIKICJJZiB5b3UgYXJlIHBsYW5uaW5nIG9uIGJhc2luZyB5b3VyIHdvcmsgb24gYW4gdXBzdHJlYW1cbiIKQEAgLTI0MCwyNiArMjQ1LDI2IEBACiAiXCJnaXQgcHVzaCAtdVwiIHZlcndlbmRlbiwgdW0gZGVuIFVwc3RyZWFtLUJyYW5jaCBiZWltIFwicHVzaFwiXG4iCiAienUga29uZmlndXJpZXJlbi4iCiAKLSM6IGJyYW5jaC5jOjI2NQorIzogYnJhbmNoLmM6MjY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhIHZhbGlkIG9iamVjdCBuYW1lOiAnJXMnLiIKIG1zZ3N0ciAiVW5nw7xsdGlnZXIgT2JqZWt0LU5hbWU6ICclcyciCiAKLSM6IGJyYW5jaC5jOjI4NQorIzogYnJhbmNoLmM6Mjg0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFtYmlndW91cyBvYmplY3QgbmFtZTogJyVzJy4iCiBtc2dzdHIgIm1laHJkZXV0aWdlciBPYmpla3QtTmFtZTogJyVzJyIKIAotIzogYnJhbmNoLmM6MjkwCisjOiBicmFuY2guYzoyODkKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGEgdmFsaWQgYnJhbmNoIHBvaW50OiAnJXMnLiIKIG1zZ3N0ciAiVW5nw7xsdGlnZXIgQnJhbmNocHVua3Q6ICclcyciCiAKLSM6IGJyYW5jaC5jOjI5NgorIzogYnJhbmNoLmM6Mjk1CiBtc2dpZCAiRmFpbGVkIHRvIGxvY2sgcmVmIGZvciB1cGRhdGUiCiBtc2dzdHIgIkZlaGxlciBiZWltIFNwZXJyZW4gZGVyIFJlZmVyZW56IHp1ciBBa3R1YWxpc2llcnVuZy4iCiAKLSM6IGJyYW5jaC5jOjMxNAorIzogYnJhbmNoLmM6MzEzCiBtc2dpZCAiRmFpbGVkIHRvIHdyaXRlIHJlZiIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gU2NocmVpYmVuIGRlciBSZWZlcmVuei4iCiAKQEAgLTI3Myw3ICsyNzgsNyBAQAogbXNnaWQgInVucmVjb2duaXplZCBoZWFkZXI6ICVzJXMgKCVkKSIKIG1zZ3N0ciAibmljaHQgZXJrYW5udGVyIEtvcGZiZXJlaWNoOiAlcyVzICglZCkiCiAKLSM6IGJ1bmRsZS5jOjg5IGJ1aWx0aW4vY29tbWl0LmM6Njk3CisjOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjcwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIgogbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCDDtmZmbmVuIgpAQCAtMjgyLDkgKzI4Nyw5IEBACiBtc2dpZCAiUmVwb3NpdG9yeSBsYWNrcyB0aGVzZSBwcmVyZXF1aXNpdGUgY29tbWl0czoiCiBtc2dzdHIgIkRlbSBSZXBvc2l0b3J5IGZlaGxlbiBmb2xnZW5kZSB2b3JhdXNnZXNldHp0ZSBDb21taXRzOiIKIAotIzogYnVuZGxlLmM6MTY0IHNlcXVlbmNlci5jOjY2MSBzZXF1ZW5jZXIuYzoxMTExIGJ1aWx0aW4vbG9nLmM6MzMxCi0jOiBidWlsdGluL2xvZy5jOjgwMSBidWlsdGluL2xvZy5jOjEzOTkgYnVpbHRpbi9sb2cuYzoxNjI1IGJ1aWx0aW4vbWVyZ2UuYzozNjQKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxNTYKKyM6IGJ1bmRsZS5jOjE2NCBzZXF1ZW5jZXIuYzo2NjIgc2VxdWVuY2VyLmM6MTExMiBidWlsdGluL2xvZy5jOjMzMgorIzogYnVpbHRpbi9sb2cuYzo4MjEgYnVpbHRpbi9sb2cuYzoxNDE4IGJ1aWx0aW4vbG9nLmM6MTY0NCBidWlsdGluL21lcmdlLmM6MzY0CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MTU4CiBtc2dpZCAicmV2aXNpb24gd2FsayBzZXR1cCBmYWlsZWQiCiBtc2dzdHIgIkVpbnJpY2h0dW5nIGRlcyBSZXZpc2lvbnNnYW5ncyBmZWhsZ2VzY2hsYWdlbiIKIApAQCAtMzEwLDcgKzMxNSw3IEBACiBtc2dpZCAicmV2LWxpc3QgZGllZCIKIG1zZ3N0ciAiXCJyZXYtbGlzdFwiIGFiZ2Vicm9jaGVuIgogCi0jOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMzEwIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNTkKKyM6IGJ1bmRsZS5jOjMwMCBidWlsdGluL2xvZy5jOjEzMjkgYnVpbHRpbi9zaG9ydGxvZy5jOjI2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnJlY29nbml6ZWQgYXJndW1lbnQ6ICVzIgogbXNnc3RyICJuaWNodCBlcmthbm50ZXMgQXJndW1lbnQ6ICVzIgpAQCAtNDYxLDcgKzQ2Niw3IEBACiAiRmVobGVyIGluICdkaWZmLmRpcnN0YXQnIEtvbmZpZ3VyYXRpb25zdmFyaWFibGUgZ2VmdW5kZW46XG4iCiAiJXMiCiAKLSM6IGRpZmYuYzozNDg3CisjOiBkaWZmLmM6MzQ5MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiRmFpbGVkIHRvIHBhcnNlIC0tZGlyc3RhdC8tWCBvcHRpb24gcGFyYW1ldGVyOlxuIgpAQCAtNDcwLDcgKzQ3NSw3IEBACiAiRmVobGVyIGJlaW0gUGFyc2VuIGRlcyAtLWRpcnN0YXQvLVggT3B0aW9uc3BhcmFtZXRlcnM6XG4iCiAiJXMiCiAKLSM6IGRpZmYuYzozNTAxCisjOiBkaWZmLmM6MzUwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcGFyc2UgLS1zdWJtb2R1bGUgb3B0aW9uIHBhcmFtZXRlcjogJyVzJyIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gUGFyc2VuIGRlcyAtLXN1Ym1vZHVsZSBPcHRpb25zcGFyYW1ldGVyczogJyVzJyIKQEAgLTQ5NywxNyArNTAyLDE3IEBACiBtc2dpZCAiZmFpbGVkIHdyaXRpbmcgZGV0YWNoZWQgc2lnbmF0dXJlIHRvICclcyc6ICVzIgogbXNnc3RyICJGZWhsZXIgYmVpbSBTY2hyZWliZW4gZGVyIFNpZ25hdHVyIG5hY2ggJyVzJzogJXMiCiAKLSM6IGdyZXAuYzoxNjIzCisjOiBncmVwLmM6MTY5NQogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnOiB1bmFibGUgdG8gcmVhZCAlcyIKIG1zZ3N0ciAiJyVzJzoga29ubnRlIG5pY2h0IGxlc2VuICVzIgogCi0jOiBncmVwLmM6MTY0MAorIzogZ3JlcC5jOjE3MTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJzogJXMiCiBtc2dzdHIgIiclcyc6ICVzIgogCi0jOiBncmVwLmM6MTY1MQorIzogZ3JlcC5jOjE3MjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJzogc2hvcnQgcmVhZCAlcyIKIG1zZ3N0ciAiJyVzJzogcmVhZCgpIHp1IGt1cnogJXMiCkBAIC01ODAsOCArNTg1LDggQEAKIG1zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aGUgY2FjaGUiCiBtc2dzdHIgIkxlc2VuIGRlcyBad2lzY2hlbnNwZWljaGVycyBmZWhsZ2VzY2hsYWdlbiIKIAotIzogbWVyZ2UuYzoxMTAgYnVpbHRpbi9jaGVja291dC5jOjM2NSBidWlsdGluL2NoZWNrb3V0LmM6NTY2Ci0jOiBidWlsdGluL2Nsb25lLmM6NjU2CisjOiBtZXJnZS5jOjExMCBidWlsdGluL2NoZWNrb3V0LmM6MzU4IGJ1aWx0aW4vY2hlY2tvdXQuYzo1NTkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NTUKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIktvbm50ZSBuZXVlIFN0YWdpbmctQXJlYS1EYXRlaSBuaWNodCBzY2hyZWliZW4uIgogCkBAIC02MzAsNyArNjM1LDcgQEAKIG1zZ2lkICJibG9iIGV4cGVjdGVkIGZvciAlcyAnJXMnIgogbXNnc3RyICJCbG9iIGVyd2FydGV0IGbDvHIgJXMgJyVzJyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzc0IGJ1aWx0aW4vY2xvbmUuYzozMTIKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc3NCBidWlsdGluL2Nsb25lLmM6MzExCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBvcGVuICclcyciCiBtc2dzdHIgIkZlaGxlciBiZWltIMOWZmZuZW4gdm9uICclcyciCkBAIC03NjcsNyArNzcyLDcgQEAKIG1zZ2lkICJBdXRvLW1lcmdpbmcgJXMiCiBtc2dzdHIgImF1dG9tYXRpc2NoZXIgTWVyZ2Ugdm9uICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM0IGdpdC1zdWJtb2R1bGUuc2g6MTExOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNCBnaXQtc3VibW9kdWxlLnNoOjExMjUKIG1zZ2lkICJzdWJtb2R1bGUiCiBtc2dzdHIgIlN1Ym1vZHVsIgogCkBAIC04NjYsNTggKzg3MSwxMjIgQEAKIG1zZ2lkICJCYWQgJXMgdmFsdWU6ICclcyciCiBtc2dzdHIgIlVuZ8O8bHRpZ2VyICVzIFdlcnQ6ICclcyciCiAKLSM6IG9iamVjdC5jOjIwNAorIzogb2JqZWN0LmM6MjAyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBwYXJzZSBvYmplY3Q6ICVzIgogbXNnc3RyICJLb25udGUgT2JqZWt0ICclcycgbmljaHQgcGFyc2VuLiIKIAotIzogcGFyc2Utb3B0aW9ucy5jOjQ4OQorIzogcGFyc2Utb3B0aW9ucy5jOjUzNwogbXNnaWQgIi4uLiIKIG1zZ3N0ciAiLi4uIgogCi0jOiBwYXJzZS1vcHRpb25zLmM6NTA3CisjOiBwYXJzZS1vcHRpb25zLmM6NTU1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVzYWdlOiAlcyIKIG1zZ3N0ciAiVmVyd2VuZHVuZzogJXMiCiAKICMuIFRSQU5TTEFUT1JTOiB0aGUgY29sb24gaGVyZSBzaG91bGQgYWxpZ24gd2l0aCB0aGUKICMuIG9uZSBpbiAidXNhZ2U6ICVzIiB0cmFuc2xhdGlvbgotIzogcGFyc2Utb3B0aW9ucy5jOjUxMQorIzogcGFyc2Utb3B0aW9ucy5jOjU1OQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICBvcjogJXMiCiBtc2dzdHIgIiAgICAgIG9kZXI6ICVzIgogCi0jOiBwYXJzZS1vcHRpb25zLmM6NTE0CisjOiBwYXJzZS1vcHRpb25zLmM6NTYyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICAlcyIKIG1zZ3N0ciAiICAgICVzIgogCi0jOiBwYXJzZS1vcHRpb25zLmM6NTQ4CisjOiBwYXJzZS1vcHRpb25zLmM6NTk2CiBtc2dpZCAiLU5VTSIKIG1zZ3N0ciAiLU5VTSIKIAotIzogcGF0aHNwZWMuYzo4MwotIywgYy1mb3JtYXQKLW1zZ2lkICJQYXRoICclcycgaXMgaW4gc3VibW9kdWxlICclLipzJyIKLW1zZ3N0ciAiUGZhZCAnJXMnIGJlZmluZGV0IHNpY2ggaW4gU3VibW9kdWwgJyUuKnMnIgorIzogcGF0aHNwZWMuYzoxMTgKK21zZ2lkICJnbG9iYWwgJ2dsb2InIGFuZCAnbm9nbG9iJyBwYXRoc3BlYyBzZXR0aW5ncyBhcmUgaW5jb21wYXRpYmxlIgorbXNnc3RyICJHbG9iYWxlIEVpbnN0ZWxsdW5nZW4genVyIFBmYWRzcGV6aWZpa2F0aW9uICdnbG9iJyB1bmQgJ25vZ2xvYicgc2luZCBpbmtvbXBhdGliZWwuIgogCi0jOiBwYXRoc3BlYy5jOjk5Ci0jLCBjLWZvcm1hdAotbXNnaWQgIiclcycgaXMgYmV5b25kIGEgc3ltYm9saWMgbGluayIKLW1zZ3N0ciAiJyVzJyBpc3QgaGludGVyIGVpbmVtIHN5bWJvbGlzY2hlbiBWZXJ3ZWlzIgorIzogcGF0aHNwZWMuYzoxMjgKK21zZ2lkICIiCisiZ2xvYmFsICdsaXRlcmFsJyBwYXRoc3BlYyBzZXR0aW5nIGlzIGluY29tcGF0aWJsZSB3aXRoIGFsbCBvdGhlciBnbG9iYWwgIgorInBhdGhzcGVjIHNldHRpbmdzIgorbXNnc3RyICJHbG9iYWxlIEVpbnN0ZWxsdW5nIHp1ciBQZmFkc3BlemlmaWthdGlvbiAnbGl0ZXJhbCcgaXN0IGlua29tcGF0aWJlbFxuIgorIm1pdCBhbGxlbiBhbmRlcmVuIE9wdGlvbmVuLiIKIAotIzogcmVtb3RlLmM6MTc4OAorIzogcGF0aHNwZWMuYzoxNTgKK21zZ2lkICJpbnZhbGlkIHBhcmFtZXRlciBmb3IgcGF0aHNwZWMgbWFnaWMgJ3ByZWZpeCciCittc2dzdHIgInVuZ8O8bHRpZ2VyIFBhcmFtZXRlciBmw7xyIFBmYWRzcGV6aWZpa2F0aW9uc2FuZ2FiZSAncHJlZml4JyIKKworIzogcGF0aHNwZWMuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBwYXRoc3BlYyBtYWdpYyAnJS4qcycgaW4gJyVzJyIKK21zZ3N0ciAidW5nw7xsdGlnZSBQZmFkc3BlemlmaWthdGlvbnNhbmdhYmUgJyUuKnMnIGluICclcyciCisKKyM6IHBhdGhzcGVjLmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIk1pc3NpbmcgJyknIGF0IHRoZSBlbmQgb2YgcGF0aHNwZWMgbWFnaWMgaW4gJyVzJyIKK21zZ3N0ciAiRmVobGVuZGVzICcpJyBhbSBFbmRlIGRlciBQZmFkc3BlemlmaWthdGlvbnNhbmdhYmUgaW4gJyVzJyIKKworIzogcGF0aHNwZWMuYzoxODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5pbXBsZW1lbnRlZCBwYXRoc3BlYyBtYWdpYyAnJWMnIGluICclcyciCittc2dzdHIgIm5pY2h0IHVudGVyc3TDvHR6dGUgUGZhZHNwZXppZmlrYXRpb25zYW5nYWJlICclYycgaW4gJyVzJyIKKworIzogcGF0aHNwZWMuYzoyMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICdsaXRlcmFsJyBhbmQgJ2dsb2InIGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgIiVzOiAnbGl0ZXJhbCcgdW5kICdnbG9iJyBzaW5kIGlua29tcGF0aWJlbCIKKworIzogcGF0aHNwZWMuYzoyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICclcycgaXMgb3V0c2lkZSByZXBvc2l0b3J5IgorbXNnc3RyICIlczogJyVzJyBsaWVndCBhdcOfZXJoYWxiIGRlcyBSZXBvc2l0b3JpZXMiCisKKyM6IHBhdGhzcGVjLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhdGhzcGVjICclcycgaXMgaW4gc3VibW9kdWxlICclLipzJyIKK21zZ3N0ciAiUGZhZHNwZXppZmlrYXRpb24gJyVzJyBiZWZpbmRldCBzaWNoIGluIFN1Ym1vZHVsICclLipzJyIKKworIy4KKyMuICogV2UgbWF5IHdhbnQgdG8gc3Vic3RpdHV0ZSAidGhpcyBjb21tYW5kIiB3aXRoIGEgY29tbWFuZAorIy4gKiBuYW1lLiBFLmcuIHdoZW4gYWRkLS1pbnRlcmFjdGl2ZSBkaWVzIHdoZW4gcnVubmluZworIy4gKiAiY2hlY2tvdXQgLXAiCisjLgorIzogcGF0aHNwZWMuYzozNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHBhdGhzcGVjIG1hZ2ljIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBjb21tYW5kOiAlcyIKK21zZ3N0ciAiJXM6IFBmYWRzcGV6aWZpa2F0aW9uc2FuZ2FiZSB3aXJkIHZvbiBkaWVzZW0gS29tbWFuZG8gbmljaHQgdW50ZXJzdMO8dHp0OiAlcyIKKworIzogcGF0aHNwZWMuYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0aHNwZWMgJyVzJyBpcyBiZXlvbmQgYSBzeW1ib2xpYyBsaW5rIgorbXNnc3RyICJQZmFkc3BlemlmaWthdGlvbiAnJXMnIGlzdCBoaW50ZXIgZWluZW0gc3ltYm9saXNjaGVuIFZlcndlaXMiCisKKyM6IHJlbW90ZS5jOjE4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91ciBicmFuY2ggaXMgYmFzZWQgb24gJyVzJywgYnV0IHRoZSB1cHN0cmVhbSBpcyBnb25lLlxuIgorbXNnc3RyICJJaHIgQnJhbmNoIGJhc2llcnQgYXVmICclcycsIGFiZXIgVXBzdHJlYW0tQnJhbmNoIHd1cmRlIGVudGZlcm50LlxuIgorCisjOiByZW1vdGUuYzoxODM3Cittc2dpZCAiICAodXNlIFwiZ2l0IGJyYW5jaCAtLXVuc2V0LXVwc3RyZWFtXCIgdG8gZml4dXApXG4iCittc2dzdHIgIiAgKGJlbnV0emVuIFNpZSBcImdpdCBicmFuY2ggLS11bnNldC11cHN0cmVhbVwiIHp1bSBCZWhlYmVuKVxuIgorCisjOiByZW1vdGUuYzoxODQwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdXIgYnJhbmNoIGlzIHVwLXRvLWRhdGUgd2l0aCAnJXMnLlxuIgorbXNnc3RyICJJaHIgQnJhbmNoIGlzdCBhdWYgZGVtIHNlbGJlbiBTdGFuZCB3aWUgJyVzJy5cbiIKKworIzogcmVtb3RlLmM6MTg0NAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdC5cbiIKIG1zZ2lkX3BsdXJhbCAiWW91ciBicmFuY2ggaXMgYWhlYWQgb2YgJyVzJyBieSAlZCBjb21taXRzLlxuIgogbXNnc3RyWzBdICJJaHIgQnJhbmNoIGlzdCB2b3IgJyVzJyB1bSAlZCBDb21taXQuXG4iCiBtc2dzdHJbMV0gIklociBCcmFuY2ggaXN0IHZvciAnJXMnIHVtICVkIENvbW1pdHMuXG4iCiAKLSM6IHJlbW90ZS5jOjE3OTQKKyM6IHJlbW90ZS5jOjE4NTAKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVzaFwiIHRvIHB1Ymxpc2ggeW91ciBsb2NhbCBjb21taXRzKVxuIgogbXNnc3RyICIgIChiZW51dHplbiBTaWUgXCJnaXQgcHVzaFwiIHVtIGxva2FsZSBDb21taXRzIHp1IHB1YmxpemllcmVuKVxuIgogCi0jOiByZW1vdGUuYzoxNzk3CisjOiByZW1vdGUuYzoxODUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGJlaGluZCAnJXMnIGJ5ICVkIGNvbW1pdCwgYW5kIGNhbiBiZSBmYXN0LWZvcndhcmRlZC5cbiIKIG1zZ2lkX3BsdXJhbCAiIgpAQCAtOTI3LDEyICs5OTYsMTIgQEAKIG1zZ3N0clsxXSAiIgogIklociBCcmFuY2ggaXN0IHp1ICclcycgdW0gJWQgQ29tbWl0cyBoaW50ZXJoZXIsIHVuZCBrYW5uIHZvcmdlc3B1bHQgd2VyZGVuLlxuIgogCi0jOiByZW1vdGUuYzoxODA1CisjOiByZW1vdGUuYzoxODYxCiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1bGxcIiB0byB1cGRhdGUgeW91ciBsb2NhbCBicmFuY2gpXG4iCiBtc2dzdHIgIiIKICIgIChiZW51dHplbiBTaWUgXCJnaXQgcHVsbFwiIHVtIElocmVuIGxva2FsZW4gQnJhbmNoIHp1IGFrdHVhbGlzaWVyZW4pXG4iCiAKLSM6IHJlbW90ZS5jOjE4MDgKKyM6IHJlbW90ZS5jOjE4NjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdXIgYnJhbmNoIGFuZCAnJXMnIGhhdmUgZGl2ZXJnZWQsXG4iCkBAIC05NDcsNyArMTAxNiw3IEBACiAiSWhyIEJyYW5jaCB1bmQgJyVzJyBzaW5kIGRpdmVyZ2llcnQsXG4iCiAidW5kIGhhYmVuIGpld2VpbHMgJWQgdW5kICVkIHVudGVyc2NoaWVkbGljaGUgQ29tbWl0cy5cbiIKIAotIzogcmVtb3RlLmM6MTgxOAorIzogcmVtb3RlLmM6MTg3NAogbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gbWVyZ2UgdGhlIHJlbW90ZSBicmFuY2ggaW50byB5b3VycylcbiIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCBwdWxsXCIgdW0gSWhyZW4gQnJhbmNoIG1pdCBkZW0gUmVtb3RlLUJyYW5jaCAiCkBAIC05OTIsNyArMTA2MSw3IEBACiAibWl0ICdnaXQgYWRkIDxQZmFkZT4nIG9kZXIgJ2dpdCBybSA8UGZhZGU+J3VuZCB0cmFnZW4gU2llIGRhcyBFcmdlYm5pcyBtaXRcbiIKICInZ2l0IGNvbW1pdCcgZWluIgogCi0jOiBzZXF1ZW5jZXIuYzoyNDUgc2VxdWVuY2VyLmM6ODY5IHNlcXVlbmNlci5jOjk1MgorIzogc2VxdWVuY2VyLmM6MjQ1IHNlcXVlbmNlci5jOjg3MCBzZXF1ZW5jZXIuYzo5NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIHRvICVzIgogbXNnc3RyICJLb25udGUgbmljaHQgbmFjaCAlcyBzY2hyZWliZW4iCkBAIC0xMDE3LDE5NyArMTA4NiwxOTcgQEAKICJUcmFnZW4gU2llIElocmUgw4RuZGVydW5nZW4gZWluIG9kZXIgYmVudXR6ZW4gU2llIFwic3Rhc2hcIiB1bSBmb3J0enVmYWhyZW4uIgogCiAjLiBUUkFOU0xBVE9SUzogJXMgd2lsbCBiZSAicmV2ZXJ0IiBvciAiY2hlcnJ5LXBpY2siCi0jOiBzZXF1ZW5jZXIuYzozMjQKKyM6IHNlcXVlbmNlci5jOjMyNQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICIlczogS29ubnRlIG5ldWUgU3RhZ2luZy1BcmVhLURhdGVpIG5pY2h0IHNjaHJlaWJlbiIKIAotIzogc2VxdWVuY2VyLmM6MzU1CisjOiBzZXF1ZW5jZXIuYzozNTYKIG1zZ2lkICJDb3VsZCBub3QgcmVzb2x2ZSBIRUFEIGNvbW1pdFxuIgogbXNnc3RyICJLb25udGUgQ29tbWl0IHZvbiBIRUFEIG5pY2h0IGF1ZmzDtnNlblxuIgogCi0jOiBzZXF1ZW5jZXIuYzozNzcKKyM6IHNlcXVlbmNlci5jOjM3OAogbXNnaWQgIlVuYWJsZSB0byB1cGRhdGUgY2FjaGUgdHJlZVxuIgogbXNnc3RyICJLb25udGUgQ2FjaGUtVmVyemVpY2huaXMgbmljaHQgYWt0dWFsaXNpZXJlblxuIgogCi0jOiBzZXF1ZW5jZXIuYzo0MjIKKyM6IHNlcXVlbmNlci5jOjQyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgY29tbWl0ICVzXG4iCiBtc2dzdHIgIktvbm50ZSBDb21taXQgJXMgbmljaHQgcGFyc2VuXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQyNworIzogc2VxdWVuY2VyLmM6NDI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzXG4iCiBtc2dzdHIgIktvbm50ZSBFbHRlcm4tQ29tbWl0ICVzIG5pY2h0IHBhcnNlblxuIgogCi0jOiBzZXF1ZW5jZXIuYzo0OTMKKyM6IHNlcXVlbmNlci5jOjQ5NAogbXNnaWQgIllvdXIgaW5kZXggZmlsZSBpcyB1bm1lcmdlZC4iCiBtc2dzdHIgIklocmUgU3RhZ2luZy1BcmVhLURhdGVpIGlzdCBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0LiIKIAotIzogc2VxdWVuY2VyLmM6NTEyCisjOiBzZXF1ZW5jZXIuYzo1MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGlzIGEgbWVyZ2UgYnV0IG5vIC1tIG9wdGlvbiB3YXMgZ2l2ZW4uIgogbXNnc3RyICJDb21taXQgJXMgaXN0IGVpbiBNZXJnZSwgYWJlciBkaWUgT3B0aW9uIC1tIHd1cmRlIG5pY2h0IGFuZ2VnZWJlbi4iCiAKLSM6IHNlcXVlbmNlci5jOjUyMAorIzogc2VxdWVuY2VyLmM6NTIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBkb2VzIG5vdCBoYXZlIHBhcmVudCAlZCIKIG1zZ3N0ciAiQ29tbWl0ICVzIGhhdCBrZWluZW4gRWx0ZXJudGVpbCAlZCIKIAotIzogc2VxdWVuY2VyLmM6NTI0CisjOiBzZXF1ZW5jZXIuYzo1MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFpbmxpbmUgd2FzIHNwZWNpZmllZCBidXQgY29tbWl0ICVzIGlzIG5vdCBhIG1lcmdlLiIKIG1zZ3N0ciAiSGF1cHRsaW5pZSB3dXJkZSBzcGV6aWZpemllcnQsIGFiZXIgQ29tbWl0ICVzIGlzdCBrZWluIE1lcmdlLiIKIAogIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyB3aWxsIGJlICJyZXZlcnQiIG9yCiAjLiAiY2hlcnJ5LXBpY2siLCB0aGUgc2Vjb25kICVzIGEgU0hBMQotIzogc2VxdWVuY2VyLmM6NTM3CisjOiBzZXF1ZW5jZXIuYzo1MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbm5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzIgogbXNnc3RyICIlczoga2FubiBFbHRlcm4tQ29tbWl0ICVzIG5pY2h0IHBhcnNlbiIKIAotIzogc2VxdWVuY2VyLmM6NTQxCisjOiBzZXF1ZW5jZXIuYzo1NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGdldCBjb21taXQgbWVzc2FnZSBmb3IgJXMiCiBtc2dzdHIgIkthbm4ga2VpbmUgQ29tbWl0LUJlc2NocmVpYnVuZyBmw7xyICVzIGJla29tbWVuIgogCi0jOiBzZXF1ZW5jZXIuYzo2MjcKKyM6IHNlcXVlbmNlci5jOjYyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmV2ZXJ0ICVzLi4uICVzIgogbXNnc3RyICJLb25udGUgXCJyZXZlcnRcIiBuaWNodCBhdWYgJXMgYXVzZsO8aHJlbi4uLiAlcyIKIAotIzogc2VxdWVuY2VyLmM6NjI4CisjOiBzZXF1ZW5jZXIuYzo2MjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGFwcGx5ICVzLi4uICVzIgogbXNnc3RyICJLb25udGUgJXMgbmljaHQgYW53ZW5kZW4uLi4gJXMiCiAKLSM6IHNlcXVlbmNlci5jOjY2NAorIzogc2VxdWVuY2VyLmM6NjY1CiBtc2dpZCAiZW1wdHkgY29tbWl0IHNldCBwYXNzZWQiCiBtc2dzdHIgImxlZXJlIE1lbmdlIHZvbiBDb21taXRzIMO8YmVyZ2ViZW4iCiAKLSM6IHNlcXVlbmNlci5jOjY3MgorIzogc2VxdWVuY2VyLmM6NjczCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICJnaXQgJXM6IEZlaGxlciBiZWltIExlc2VuIGRlciBTdGFnaW5nLUFyZWEiCiAKLSM6IHNlcXVlbmNlci5jOjY3NworIzogc2VxdWVuY2VyLmM6Njc4CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlZnJlc2ggdGhlIGluZGV4IgogbXNnc3RyICJnaXQgJXM6IEZlaGxlciBiZWltIEFrdHVhbGlzaWVyZW4gZGVyIFN0YWdpbmctQXJlYSIKIAotIzogc2VxdWVuY2VyLmM6NzM1CisjOiBzZXF1ZW5jZXIuYzo3MzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90ICVzIGR1cmluZyBhICVzIgogbXNnc3RyICJLYW5uICVzIG5pY2h0IHfDpGhyZW5kIGVpbmVzICVzIGR1cmNoZsO8aHJlbiIKIAotIzogc2VxdWVuY2VyLmM6NzU3CisjOiBzZXF1ZW5jZXIuYzo3NTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIGxpbmUgJWQuIgogbXNnc3RyICJLb25udGUgWmVpbGUgJWQgbmljaHQgcGFyc2VuLiIKIAotIzogc2VxdWVuY2VyLmM6NzYyCisjOiBzZXF1ZW5jZXIuYzo3NjMKIG1zZ2lkICJObyBjb21taXRzIHBhcnNlZC4iCiBtc2dzdHIgIktlaW5lIENvbW1pdHMgZ2VwYXJzdC4iCiAKLSM6IHNlcXVlbmNlci5jOjc3NQorIzogc2VxdWVuY2VyLmM6Nzc2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBvcGVuICVzIgogbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lbiIKIAotIzogc2VxdWVuY2VyLmM6Nzc5CisjOiBzZXF1ZW5jZXIuYzo3ODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgJXMuIgogbXNnc3RyICJLb25udGUgJXMgbmljaHQgbGVzZW4uIgogCi0jOiBzZXF1ZW5jZXIuYzo3ODYKKyM6IHNlcXVlbmNlci5jOjc4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnVzYWJsZSBpbnN0cnVjdGlvbiBzaGVldDogJXMiCiBtc2dzdHIgIlVuYmVudXR6YmFyZXMgSW5zdHJ1a3Rpb25zYmxhdHQ6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MTQKKyM6IHNlcXVlbmNlci5jOjgxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGtleTogJXMiCiBtc2dzdHIgIlVuZ8O8bHRpZ2VyIFNjaGzDvHNzZWw6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MTcKKyM6IHNlcXVlbmNlci5jOjgxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciAlczogJXMiCiBtc2dzdHIgIlVuZ8O8bHRpZ2VyIFdlcnQgZsO8ciAlczogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgyOQorIzogc2VxdWVuY2VyLmM6ODMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBvcHRpb25zIHNoZWV0OiAlcyIKIG1zZ3N0ciAiRmVobGVyaGFmdGVzIE9wdGlvbnNibGF0dDogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjg1MAorIzogc2VxdWVuY2VyLmM6ODUxCiBtc2dpZCAiYSBjaGVycnktcGljayBvciByZXZlcnQgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcyIKIG1zZ3N0ciAiXCJjaGVycnktcGlja1wiIG9kZXIgXCJyZXZlcnRcIiBpc3QgYmVyZWl0cyBpbSBHYW5nIgogCi0jOiBzZXF1ZW5jZXIuYzo4NTEKKyM6IHNlcXVlbmNlci5jOjg1MgogbXNnaWQgInRyeSBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZSB8IC0tcXVpdCB8IC0tYWJvcnQpXCIiCiBtc2dzdHIgInZlcnN1Y2hlbiBTaWUgXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogCi0jOiBzZXF1ZW5jZXIuYzo4NTUKKyM6IHNlcXVlbmNlci5jOjg1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIHNlcXVlbmNlciBkaXJlY3RvcnkgJXMiCiBtc2dzdHIgIktvbm50ZSBcInNlcXVlbmNlclwiLVZlcnplaWNobmlzICVzIG5pY2h0IGVyc3RlbGxlbiIKIAotIzogc2VxdWVuY2VyLmM6ODcxIHNlcXVlbmNlci5jOjk1NgorIzogc2VxdWVuY2VyLmM6ODcyIHNlcXVlbmNlci5jOjk1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJFcnJvciB3cmFwcGluZyB1cCAlcy4iCiBtc2dzdHIgIkZlaGxlciBiZWltIEVpbnBhY2tlbiB2b24gJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzo4OTAgc2VxdWVuY2VyLmM6MTAyNAorIzogc2VxdWVuY2VyLmM6ODkxIHNlcXVlbmNlci5jOjEwMjUKIG1zZ2lkICJubyBjaGVycnktcGljayBvciByZXZlcnQgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgImtlaW4gXCJjaGVycnktcGlja1wiIG9kZXIgXCJyZXZlcnRcIiBpbSBHYW5nIgogCi0jOiBzZXF1ZW5jZXIuYzo4OTIKKyM6IHNlcXVlbmNlci5jOjg5MwogbXNnaWQgImNhbm5vdCByZXNvbHZlIEhFQUQiCiBtc2dzdHIgImthbm4gSEVBRCBuaWNodCBhdWZsw7ZzZW4iCiAKLSM6IHNlcXVlbmNlci5jOjg5NAorIzogc2VxdWVuY2VyLmM6ODk1CiBtc2dpZCAiY2Fubm90IGFib3J0IGZyb20gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgImthbm4gbmljaHQgYWJicmVjaGVuOiBiaW4gYXVmIGVpbmVtIEJyYW5jaCwgZGVyIG5vY2ggZ2Vib3JlbiB3aXJkIgogCi0jOiBzZXF1ZW5jZXIuYzo5MTYgYnVpbHRpbi9hcHBseS5jOjQwNjEKKyM6IHNlcXVlbmNlci5jOjkxNyBidWlsdGluL2FwcGx5LmM6NDA2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAlczogJXMiCiBtc2dzdHIgIkthbm4gJXMgbmljaHQgw7ZmZm5lbjogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjkxOQorIzogc2VxdWVuY2VyLmM6OTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICVzOiAlcyIKIG1zZ3N0ciAiS2FubiAlcyBuaWNodCBsZXNlbjogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjkyMAorIzogc2VxdWVuY2VyLmM6OTIxCiBtc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSIKIG1zZ3N0ciAiVW5lcndhcnRldGVzIERhdGVpZW5kZSIKIAotIzogc2VxdWVuY2VyLmM6OTI2CisjOiBzZXF1ZW5jZXIuYzo5MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAic3RvcmVkIHByZS1jaGVycnktcGljayBIRUFEIGZpbGUgJyVzJyBpcyBjb3JydXB0IgogbXNnc3RyICJnZXNwZWljaGVydGUgXCJwcmUtY2hlcnJ5LXBpY2tcIiBIRUFEIERhdGVpICclcycgaXN0IGJlc2Now6RkaWd0IgogCi0jOiBzZXF1ZW5jZXIuYzo5NDkKKyM6IHNlcXVlbmNlci5jOjk1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZm9ybWF0ICVzLiIKIG1zZ3N0ciAiS29ubnRlICVzIG5pY2h0IGZvcm1hdGllcmVuLiIKIAotIzogc2VxdWVuY2VyLmM6MTA5MgorIzogc2VxdWVuY2VyLmM6MTA5MwogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2FuJ3QgY2hlcnJ5LXBpY2sgYSAlcyIKIG1zZ3N0ciAiJXM6ICVzIGthbm4gbmljaHQgaW4gXCJjaGVycnktcGlja1wiIGJlbnV0enQgd2VyZGVuIgogCi0jOiBzZXF1ZW5jZXIuYzoxMDk1CisjOiBzZXF1ZW5jZXIuYzoxMDk2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBiYWQgcmV2aXNpb24iCiBtc2dzdHIgIiVzOiB1bmfDvGx0aWdlciBDb21taXQiCiAKLSM6IHNlcXVlbmNlci5jOjExMjkKKyM6IHNlcXVlbmNlci5jOjExMzAKIG1zZ2lkICJDYW4ndCByZXZlcnQgYXMgaW5pdGlhbCBjb21taXQiCiBtc2dzdHIgIkthbm4gbmljaHQgYWxzIGFsbGVyZXJzdGVuIENvbW1pdCBlaW5lbiBSZXZlcnQgYXVzZsO8aHJlbi4iCiAKLSM6IHNlcXVlbmNlci5jOjExMzAKKyM6IHNlcXVlbmNlci5jOjExMzEKIG1zZ2lkICJDYW4ndCBjaGVycnktcGljayBpbnRvIGVtcHR5IGhlYWQiCiBtc2dzdHIgIkthbm4gbmljaHQgYWxzIGFsbGVyZXJzdGVuIENvbW1pdCBlaW5lbiBDaGVycnktUGljayBhdXNmw7xocmVuLiIKIApAQCAtMTIzNiwyNzUgKzEzMDUsMzY4IEBACiAiaW5kZW0gU2llIFwiZ2l0IGNvbmZpZyBhZHZpY2Uub2JqZWN0TmFtZVdhcm5pbmcgZmFsc2VcIlxuIgogImF1c2bDvGhyZW4uIgogCi0jOiBzaGExX25hbWUuYzoxMDk3CisjOiBzaGExX25hbWUuYzoxMTEyCiBtc2dpZCAiSEVBRCBkb2VzIG5vdCBwb2ludCB0byBhIGJyYW5jaCIKIG1zZ3N0ciAiSEVBRCB6ZWlndCBhdWYga2VpbmVuIEJyYW5jaCIKIAotIzogc2hhMV9uYW1lLmM6MTEwMAorIzogc2hhMV9uYW1lLmM6MTExNQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIGJyYW5jaDogJyVzJyIKIG1zZ3N0ciAiS2VpbiBzb2xjaGVyIEJyYW5jaCAnJXMnIgogCi0jOiBzaGExX25hbWUuYzoxMTAyCisjOiBzaGExX25hbWUuYzoxMTE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAnJXMnIgogbXNnc3RyICJLZWluIFVwc3RyZWFtLUJyYW5jaCBmw7xyIEJyYW5jaCAnJXMnIGtvbmZpZ3VyaWVydC4iCiAKLSM6IHNoYTFfbmFtZS5jOjExMDYKKyM6IHNoYTFfbmFtZS5jOjExMjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBzdHJlYW0gYnJhbmNoICclcycgbm90IHN0b3JlZCBhcyBhIHJlbW90ZS10cmFja2luZyBicmFuY2giCiBtc2dzdHIgIlVwc3RyZWFtLUJyYW5jaCAnJXMnIGlzdCBuaWNodCBhbHMgUmVtb3RlLVRyYWNraW5nLUJyYW5jaCBnZXNwZWljaGVydCIKIAotIzogd3JhcHBlci5jOjQwOAorIzogc3VibW9kdWxlLmM6NjQgc3VibW9kdWxlLmM6OTgKK21zZ2lkICJDYW5ub3QgY2hhbmdlIHVubWVyZ2VkIC5naXRtb2R1bGVzLCByZXNvbHZlIG1lcmdlIGNvbmZsaWN0cyBmaXJzdCIKK21zZ3N0ciAiS2FubiBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0ZSAuZ2l0bW9kdWxlcy1EYXRlaSBuaWNodCDDpG5kZXJuLCBsw7ZzZW5cbiIKKyJTaWUgenVlcnN0IGRpZSBLb25mbGlrdGUgYXVmIgorCisjOiBzdWJtb2R1bGUuYzo2OCBzdWJtb2R1bGUuYzoxMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgc2VjdGlvbiBpbiAuZ2l0bW9kdWxlcyB3aGVyZSBwYXRoPSVzIgorbXNnc3RyICJLb25udGUga2VpbmUgU2VrdGlvbiBpbiAuZ2l0bW9kdWxlcyBtaXQgUGZhZCBcIiVzXCIgZmluZGVuIgorCisjLiBNYXliZSB0aGUgdXNlciBhbHJlYWR5IGRpZCB0aGF0LCBkb24ndCBlcnJvciBvdXQgaGVyZQorIzogc3VibW9kdWxlLmM6NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHVwZGF0ZSAuZ2l0bW9kdWxlcyBlbnRyeSAlcyIKK21zZ3N0ciAiS29ubnRlIEVpbnRyYWcgJyVzJyBpbiAuZ2l0bW9kdWxlcyBuaWNodCBha3R1YWxpc2llcmVuIgorCisjLiBNYXliZSB0aGUgdXNlciBhbHJlYWR5IGRpZCB0aGF0LCBkb24ndCBlcnJvciBvdXQgaGVyZQorIzogc3VibW9kdWxlLmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgLmdpdG1vZHVsZXMgZW50cnkgZm9yICVzIgorbXNnc3RyICJLb25udGUgRWludHJhZyAnJXMnIG5pY2h0IGF1cyAuZ2l0bW9kdWxlcyBlbnRmZXJuZW4iCisKKyM6IHN1Ym1vZHVsZS5jOjEyNworbXNnaWQgImNvdWxkIG5vdCBmaW5kIC5naXRtb2R1bGVzIGluIGluZGV4IgorbXNnc3RyICJLb25udGUgLmdpdG1vZHVsZXMgbmljaHQgaW4gZGVyIFN0YWdpbmctQXJlYSBmaW5kZW4iCisKKyM6IHN1Ym1vZHVsZS5jOjEzMworbXNnaWQgInJlYWRpbmcgdXBkYXRlZCAuZ2l0bW9kdWxlcyBmYWlsZWQiCittc2dzdHIgIkxlc2VuIGRlciBha3R1YWxpc2llcnRlbiAuZ2l0bW9kdWxlcy1EYXRlaSBmZWhsZ2VzY2hsYWdlbiIKKworIzogc3VibW9kdWxlLmM6MTM1Cittc2dpZCAidW5hYmxlIHRvIHN0YXQgdXBkYXRlZCAuZ2l0bW9kdWxlcyIKK21zZ3N0ciAiS29ubnRlIGFrdHVhbGlzaWVydGUgLmdpdG1vZHVsZXMtRGF0ZWkgbmljaHQgbGVzZW4iCisKKyM6IHN1Ym1vZHVsZS5jOjEzOQorbXNnaWQgInVuYWJsZSB0byByZW1vdmUgLmdpdG1vZHVsZXMgZnJvbSBpbmRleCIKK21zZ3N0ciAiS29ubnRlIC5naXRtb2R1bGVzIG5pY2h0IGF1cyBkZXIgU3RhZ2luZy1BcmVhIGVudGZlcm5lbiIKKworIzogc3VibW9kdWxlLmM6MTQxCittc2dpZCAiYWRkaW5nIHVwZGF0ZWQgLmdpdG1vZHVsZXMgZmFpbGVkIgorbXNnc3RyICJLb25udGUgYWt0dWFsaXNpZXJ0ZSAuZ2l0bW9kdWxlcy1EYXRlaSBuaWNodCBoaW56dWbDvGdlbiIKKworIzogc3VibW9kdWxlLmM6MTQzCittc2dpZCAic3RhZ2luZyB1cGRhdGVkIC5naXRtb2R1bGVzIGZhaWxlZCIKK21zZ3N0ciAiS29ubnRlIGFrdHVhbGlzaWVydGUgLmdpdG1vZHVsZXMtRGF0ZWkgbmljaHQgenVtIENvbW1pdCB2b3JtZXJrZW4iCisKKyM6IHN1Ym1vZHVsZS5jOjExNDQgYnVpbHRpbi9pbml0LWRiLmM6MzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZ2l0IGxpbmsgJXMiCittc2dzdHIgIktvbm50ZSBnaXQtVmVyd2VpcyAlcyBuaWNodCBlcnN0ZWxsZW4iCisKKyM6IHN1Ym1vZHVsZS5jOjExNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHNldCBjb3JlLndvcmt0cmVlIGluICVzIgorbXNnc3RyICJLb25udGUgY29yZS53b3JrdHJlZSBpbiAnJXMnIG5pY2h0IHNldHplbi4iCisKKyM6IHVybG1hdGNoLmM6MTIwCittc2dpZCAiaW52YWxpZCBVUkwgc2NoZW1lIG5hbWUgb3IgbWlzc2luZyAnOi8vJyBzdWZmaXgiCittc2dzdHIgIlVuZ8O8bHRpZ2VzIFVSTC1TY2hlbWEgb2RlciBTdWZmaXggJzovLycgZmVobHQiCisKKyM6IHVybG1hdGNoLmM6MTQ0IHVybG1hdGNoLmM6Mjk3IHVybG1hdGNoLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgJVhYIGVzY2FwZSBzZXF1ZW5jZSIKK21zZ3N0ciAidW5nw7xsdGlnZSBFc2NhcGUtU2VxdWVueiAlWFgiCisKKyM6IHVybG1hdGNoLmM6MTcyCittc2dpZCAibWlzc2luZyBob3N0IGFuZCBzY2hlbWUgaXMgbm90ICdmaWxlOiciCittc2dzdHIgImZlaGxlbmRlciBIb3N0IHVuZCBTY2hlbWEgaXN0IG5pY2h0ICdmaWxlOiciCisKKyM6IHVybG1hdGNoLmM6MTg5Cittc2dpZCAiYSAnZmlsZTonIFVSTCBtYXkgbm90IGhhdmUgYSBwb3J0IG51bWJlciIKK21zZ3N0ciAiZWluZSAnZmlsZTonIFVSTCBkYXJmIGtlaW5lIFBvcnRudW1tZXIgZW50aGFsdGVuIgorCisjOiB1cmxtYXRjaC5jOjE5OQorbXNnaWQgImludmFsaWQgY2hhcmFjdGVycyBpbiBob3N0IG5hbWUiCittc2dzdHIgIkhvc3RuYW1lIGVudGjDpGx0IHVuZ8O8bHRpZ2UgWmVpY2hlbiIKKworIzogdXJsbWF0Y2guYzoyNDQgdXJsbWF0Y2guYzoyNTUKK21zZ2lkICJpbnZhbGlkIHBvcnQgbnVtYmVyIgorbXNnc3RyICJ1bmfDvGx0aWdlIFBvcnRudW1tZXIiCisKKyM6IHVybG1hdGNoLmM6MzIyCittc2dpZCAiaW52YWxpZCAnLi4nIHBhdGggc2VnbWVudCIKK21zZ3N0ciAidW5nw7xsdGlnZXMgJy4uJyBQZmFkc2VnbWVudCIKKworIzogd3JhcHBlci5jOjQyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyc6ICVzIgogbXNnc3RyICJrb25udGUgbmljaHQgYXVmICclcycgenVncmVpZmVuOiAlcyIKIAotIzogd3JhcHBlci5jOjQyOQorIzogd3JhcHBlci5jOjQ0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyciCiBtc2dzdHIgImtvbm50ZSBuaWNodCBhdWYgJyVzJyB6dWdyZWlmZW4iCiAKLSM6IHdyYXBwZXIuYzo0NDAKKyM6IHdyYXBwZXIuYzo0NTQKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGxvb2sgdXAgY3VycmVudCB1c2VyIGluIHRoZSBwYXNzd2QgZmlsZTogJXMiCiBtc2dzdHIgImtvbm50ZSBha3R1ZWxsZW4gQmVudXR6ZXIgbmljaHQgaW4gUGFzc3dvcnQtRGF0ZWkgZmluZGVuOiAlcyIKIAotIzogd3JhcHBlci5jOjQ0MQorIzogd3JhcHBlci5jOjQ1NQogbXNnaWQgIm5vIHN1Y2ggdXNlciIKIG1zZ3N0ciAia2VpbiBzb2xjaGVyIEJlbnV0emVyIgogCi0jOiB3dC1zdGF0dXMuYzoxNDEKKyM6IHd0LXN0YXR1cy5jOjE0NgogbXNnaWQgIlVubWVyZ2VkIHBhdGhzOiIKIG1zZ3N0ciAiTmljaHQgenVzYW1tZW5nZWbDvGhydGUgUGZhZGU6IgogCi0jOiB3dC1zdGF0dXMuYzoxNjggd3Qtc3RhdHVzLmM6MTk1CisjOiB3dC1zdGF0dXMuYzoxNzMgd3Qtc3RhdHVzLmM6MjAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgKHVzZSBcImdpdCByZXNldCAlcyA8ZmlsZT4uLi5cIiB0byB1bnN0YWdlKSIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCByZXNldCAlcyA8RGF0ZWk+Li4uXCIgenVtIEVudGZlcm5lbiBhdXMgZGVyIFN0YWdpbmctIgogIkFyZWEpIgogCi0jOiB3dC1zdGF0dXMuYzoxNzAgd3Qtc3RhdHVzLmM6MTk3CisjOiB3dC1zdGF0dXMuYzoxNzUgd3Qtc3RhdHVzLmM6MjAyCiBtc2dpZCAiICAodXNlIFwiZ2l0IHJtIC0tY2FjaGVkIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIiCiAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IHJtIC0tY2FjaGVkIDxEYXRlaT4uLi5cIiB6dW0gRW50ZmVybmVuIGF1cyBkZXIgU3RhZ2luZy0iCiAiQXJlYSkiCiAKLSM6IHd0LXN0YXR1cy5jOjE3NAorIzogd3Qtc3RhdHVzLmM6MTc5CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIiCiAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IGFkZC9ybSA8RGF0ZWk+Li4uXCIgdW0gZGllIEF1ZmzDtnN1bmcgenUgbWFya2llcmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6MTc2IHd0LXN0YXR1cy5jOjE4MAorIzogd3Qtc3RhdHVzLmM6MTgxIHd0LXN0YXR1cy5jOjE4NQogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCBhZGQvcm0gPERhdGVpPi4uLlwiIHVtIGRpZSBBdWZsw7ZzdW5nIGVudHNwcmVjaGVuZCB6dSAiCiAibWFya2llcmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6MTc4CisjOiB3dC1zdGF0dXMuYzoxODMKIG1zZ2lkICIgICh1c2UgXCJnaXQgcm0gPGZpbGU+Li4uXCIgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCBhZGQvcm0gPERhdGVpPi4uLlwiIHVtIGRpZSBBdWZsw7ZzdW5nIHp1IG1hcmtpZXJlbikiCiAKLSM6IHd0LXN0YXR1cy5jOjE4OQorIzogd3Qtc3RhdHVzLmM6MTk0CiBtc2dpZCAiQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgogbXNnc3RyICJ6dW0gQ29tbWl0IHZvcmdlbWVya3RlIMOEbmRlcnVuZ2VuOiIKIAotIzogd3Qtc3RhdHVzLmM6MjA3CisjOiB3dC1zdGF0dXMuYzoyMTIKIG1zZ2lkICJDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoiCiBtc2dzdHIgIsOEbmRlcnVuZ2VuLCBkaWUgbmljaHQgenVtIENvbW1pdCB2b3JnZW1lcmt0IHNpbmQ6IgogCi0jOiB3dC1zdGF0dXMuYzoyMTEKKyM6IHd0LXN0YXR1cy5jOjIxNgogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQgPGZpbGU+Li4uXCIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIiCiAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IGFkZCA8RGF0ZWk+Li4uXCIgdW0gZGllIMOEbmRlcnVuZ2VuIHp1bSBDb21taXQgIgogInZvcnp1bWVya2VuKSIKIAotIzogd3Qtc3RhdHVzLmM6MjEzCisjOiB3dC1zdGF0dXMuYzoyMTgKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCBhZGQvcm0gPERhdGVpPi4uLlwiIHVtIGRpZSDDhG5kZXJ1bmdlbiB6dW0gQ29tbWl0ICIKICJ2b3J6dW1lcmtlbikiCiAKLSM6IHd0LXN0YXR1cy5jOjIxNAorIzogd3Qtc3RhdHVzLmM6MjE5CiBtc2dpZCAiIgogIiAgKHVzZSBcImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi5cIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpIgogbXNnc3RyICIiCiAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IGNoZWNrb3V0IC0tIDxEYXRlaT4uLi5cIiB1bSBkaWUgw4RuZGVydW5nZW4gaW0gIgogIkFyYmVpdHN2ZXJ6ZWljaG5pcyB6dSB2ZXJ3ZXJmZW4pIgogCi0jOiB3dC1zdGF0dXMuYzoyMTYKKyM6IHd0LXN0YXR1cy5jOjIyMQogbXNnaWQgIiAgKGNvbW1pdCBvciBkaXNjYXJkIHRoZSB1bnRyYWNrZWQgb3IgbW9kaWZpZWQgY29udGVudCBpbiBzdWJtb2R1bGVzKSIKIG1zZ3N0ciAiIgogIiAgKGNvbW1pdHRlbiBvZGVyIHZlcndlcmZlbiBTaWUgZGVuIHVuYmVvYmFjaHRldGVuIG9kZXIgZ2XDpG5kZXJ0ZW4gSW5oYWx0IGluICIKICJkZW4gU3VibW9kdWxlbikiCiAKLSM6IHd0LXN0YXR1cy5jOjIyOAorIzogd3Qtc3RhdHVzLmM6MjMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgKHVzZSBcImdpdCAlcyA8ZmlsZT4uLi5cIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIiCiAiICAoYmVudXR6ZW4gU2llIFwiZ2l0ICVzIDxEYXRlaT4uLi5cIiB1bSBkaWUgw4RuZGVydW5nZW4genVtIENvbW1pdCAiCiAidm9yenVtZXJrZW4pIgogCi0jOiB3dC1zdGF0dXMuYzoyNDUKKyM6IHd0LXN0YXR1cy5jOjI1MAogbXNnaWQgImJ1ZyIKIG1zZ3N0ciAiRmVobGVyIgogCi0jOiB3dC1zdGF0dXMuYzoyNTAKKyM6IHd0LXN0YXR1cy5jOjI1NQogbXNnaWQgImJvdGggZGVsZXRlZDoiCiBtc2dzdHIgImJlaWRlIGdlbMO2c2NodDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MQorIzogd3Qtc3RhdHVzLmM6MjU2CiBtc2dpZCAiYWRkZWQgYnkgdXM6IgogbXNnc3RyICJ2b24gdW5zIGhpbnp1Z2Vmw7xndDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MgorIzogd3Qtc3RhdHVzLmM6MjU3CiBtc2dpZCAiZGVsZXRlZCBieSB0aGVtOiIKIG1zZ3N0ciAidm9uIGRlbmVuIGdlbMO2c2NodDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MworIzogd3Qtc3RhdHVzLmM6MjU4CiBtc2dpZCAiYWRkZWQgYnkgdGhlbToiCiBtc2dzdHIgInZvbiBkZW5lbiBoaW56dWdlZsO8Z3Q6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTQKKyM6IHd0LXN0YXR1cy5jOjI1OQogbXNnaWQgImRlbGV0ZWQgYnkgdXM6IgogbXNnc3RyICJ2b24gdW5zIGdlbMO2c2NodDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1NQorIzogd3Qtc3RhdHVzLmM6MjYwCiBtc2dpZCAiYm90aCBhZGRlZDoiCiBtc2dzdHIgInZvbiBiZWlkZW4gaGluenVnZWbDvGd0OiIKIAotIzogd3Qtc3RhdHVzLmM6MjU2CisjOiB3dC1zdGF0dXMuYzoyNjEKIG1zZ2lkICJib3RoIG1vZGlmaWVkOiIKIG1zZ3N0ciAidm9uIGJlaWRlbiBnZcOkbmRlcnQ6IgogCi0jOiB3dC1zdGF0dXMuYzoyODYKKyM6IHd0LXN0YXR1cy5jOjI5MQogbXNnaWQgIm5ldyBjb21taXRzLCAiCiBtc2dzdHIgIm5ldWUgQ29tbWl0cywgIgogCi0jOiB3dC1zdGF0dXMuYzoyODgKKyM6IHd0LXN0YXR1cy5jOjI5MwogbXNnaWQgIm1vZGlmaWVkIGNvbnRlbnQsICIKIG1zZ3N0ciAiZ2XDpG5kZXJ0ZXIgSW5oYWx0LCAiCiAKLSM6IHd0LXN0YXR1cy5jOjI5MAorIzogd3Qtc3RhdHVzLmM6Mjk1CiBtc2dpZCAidW50cmFja2VkIGNvbnRlbnQsICIKIG1zZ3N0ciAidW5iZW9iYWNodGV0ZXIgSW5oYWx0LCAiCiAKLSM6IHd0LXN0YXR1cy5jOjMwNworIzogd3Qtc3RhdHVzLmM6MzEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBmaWxlOiAgICVzIgogbXNnc3RyICJuZXVlIERhdGVpOiAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMTAKKyM6IHd0LXN0YXR1cy5jOjMxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3BpZWQ6ICAgICAlcyAtPiAlcyIKIG1zZ3N0ciAia29waWVydDogICAgICVzIC0+ICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMTMKKyM6IHd0LXN0YXR1cy5jOjMxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJkZWxldGVkOiAgICAlcyIKIG1zZ3N0ciAiZ2Vsw7ZzY2h0OiAgICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzE2CisjOiB3dC1zdGF0dXMuYzozMjEKICMsIGMtZm9ybWF0CiBtc2dpZCAibW9kaWZpZWQ6ICAgJXMiCiBtc2dzdHIgImdlw6RuZGVydDogICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzE5CisjOiB3dC1zdGF0dXMuYzozMjQKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVuYW1lZDogICAgJXMgLT4gJXMiCiBtc2dzdHIgInVtYmVuYW5udDogICAgJXMgLT4gJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMyMgorIzogd3Qtc3RhdHVzLmM6MzI3CiAjLCBjLWZvcm1hdAogbXNnaWQgInR5cGVjaGFuZ2U6ICVzIgogbXNnc3RyICJUeXDDpG5kZXJ1bmc6ICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMjUKKyM6IHd0LXN0YXR1cy5jOjMzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duOiAgICAlcyIKIG1zZ3N0ciAidW5iZWthbm50OiAgICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzI4CisjOiB3dC1zdGF0dXMuYzozMzMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5tZXJnZWQ6ICAgJXMiCiBtc2dzdHIgIm5pY2h0IHp1c2FtbWVuZ2Vmw7xocnQ6ICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMzMQorIzogd3Qtc3RhdHVzLmM6MzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgImJ1ZzogdW5oYW5kbGVkIGRpZmYgc3RhdHVzICVjIgogbXNnc3RyICJGZWhsZXI6IHVuYmVoYW5kZWx0ZXIgRGlmZmVyZW56LVN0YXR1cyAlYyIKIAotIzogd3Qtc3RhdHVzLmM6ODAzCisjOiB3dC1zdGF0dXMuYzo3MDMKK21zZ2lkICJTdWJtb2R1bGVzIGNoYW5nZWQgYnV0IG5vdCB1cGRhdGVkOiIKK21zZ3N0ciAiU3VibW9kdWxlIGdlw6RuZGVydCwgYWJlciBuaWNodCBha3R1YWxpc2llcnQ6IgorCisjOiB3dC1zdGF0dXMuYzo3MDUKK21zZ2lkICJTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgorbXNnc3RyICLDhG5kZXJ1bmdlbiBpbiBTdWJtb2R1bCB6dW0gQ29tbWl0dGVuOiIKKworIzogd3Qtc3RhdHVzLmM6ODQ4CiBtc2dpZCAiWW91IGhhdmUgdW5tZXJnZWQgcGF0aHMuIgogbXNnc3RyICJTaWUgaGFiZW4gbmljaHQgenVzYW1tZW5nZWbDvGhydGUgUGZhZGUuIgogCi0jOiB3dC1zdGF0dXMuYzo4MDYKKyM6IHd0LXN0YXR1cy5jOjg1MQogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjb21taXRcIikiCiBtc2dzdHIgIiAoYmVoZWJlbiBTaWUgZGllIEtvbmZsaWt0ZSB1bmQgZsO8aHJlbiBTaWUgXCJnaXQgY29tbWl0XCIgYXVzKSIKIAotIzogd3Qtc3RhdHVzLmM6ODA5CisjOiB3dC1zdGF0dXMuYzo4NTQKIG1zZ2lkICJBbGwgY29uZmxpY3RzIGZpeGVkIGJ1dCB5b3UgYXJlIHN0aWxsIG1lcmdpbmcuIgogbXNnc3RyICJBbGxlIEtvbmZsaWt0ZSBzaW5kIGJlaG9iZW4sIGFiZXIgU2llIHNpbmQgaW1tZXIgbm9jaCBiZWltIE1lcmdlLiIKIAotIzogd3Qtc3RhdHVzLmM6ODEyCisjOiB3dC1zdGF0dXMuYzo4NTcKIG1zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0XCIgdG8gY29uY2x1ZGUgbWVyZ2UpIgogbXNnc3RyICIgIChiZW51dHplbiBTaWUgXCJnaXQgY29tbWl0XCIgdW0gZGVuIE1lcmdlIGFienVzY2hsaWXDn2VuKSIKIAotIzogd3Qtc3RhdHVzLmM6ODIyCisjOiB3dC1zdGF0dXMuYzo4NjcKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYW4gYW0gc2Vzc2lvbi4iCiBtc2dzdHIgIkVpbmUgXCJhbVwiLVNpdHp1bmcgaXN0IGltIEdhbmdlLiIKIAotIzogd3Qtc3RhdHVzLmM6ODI1CisjOiB3dC1zdGF0dXMuYzo4NzAKIG1zZ2lkICJUaGUgY3VycmVudCBwYXRjaCBpcyBlbXB0eS4iCiBtc2dzdHIgIkRlciBha3R1ZWxsZSBQYXRjaCBpc3QgbGVlci4iCiAKLSM6IHd0LXN0YXR1cy5jOjgyOQorIzogd3Qtc3RhdHVzLmM6ODc0CiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogIiAgKGJlaGViZW4gU2llIGRpZSBLb25mbGlrdGUgdW5kIGbDvGhyZW4gU2llIGRhbm4gXCJnaXQgYW0gLS1jb250aW51ZVwiIGF1cykiCiAKLSM6IHd0LXN0YXR1cy5jOjgzMQorIzogd3Qtc3RhdHVzLmM6ODc2CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFtIC0tc2tpcFwiIHRvIHNraXAgdGhpcyBwYXRjaCkiCiBtc2dzdHIgIiAgKGJlbnV0emVuIFNpZSBcImdpdCBhbSAtLXNraXBcIiB1bSBkaWVzZW4gUGF0Y2ggYXVzenVsYXNzZW4pIgogCi0jOiB3dC1zdGF0dXMuYzo4MzMKKyM6IHd0LXN0YXR1cy5jOjg3OAogbXNnaWQgIiAgKHVzZSBcImdpdCBhbSAtLWFib3J0XCIgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCBhbSAtLWFib3J0XCIgdW0gZGVuIHVyc3Byw7xuZ2xpY2hlbiBCcmFuY2ggIgogIndpZWRlcmhlcnp1c3RlbGxlbikiCiAKLSM6IHd0LXN0YXR1cy5jOjg5MyB3dC1zdGF0dXMuYzo5MTAKKyM6IHd0LXN0YXR1cy5jOjkzOCB3dC1zdGF0dXMuYzo5NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgcmViYXNpbmcgYnJhbmNoICclcycgb24gJyVzJy4iCiBtc2dzdHIgIlNpZSBzaW5kIGdlcmFkZSBiZWltIFJlYmFzZSB2b24gQnJhbmNoICclcycgYXVmICclcycuIgogCi0jOiB3dC1zdGF0dXMuYzo4OTggd3Qtc3RhdHVzLmM6OTE1CisjOiB3dC1zdGF0dXMuYzo5NDMgd3Qtc3RhdHVzLmM6OTYwCiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgcmViYXNpbmcuIgogbXNnc3RyICJTaWUgc2luZCBnZXJhZGUgYmVpbSBSZWJhc2UuIgogCi0jOiB3dC1zdGF0dXMuYzo5MDEKKyM6IHd0LXN0YXR1cy5jOjk0NgogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIiCiAiICAoYmVoZWJlbiBTaWUgZGllIEtvbmZsaWt0ZSB1bmQgZsO8aHJlbiBTaWUgZGFubiBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiICIKICJhdXMpIgogCi0jOiB3dC1zdGF0dXMuYzo5MDMKKyM6IHd0LXN0YXR1cy5jOjk0OAogbXNnaWQgIiAgKHVzZSBcImdpdCByZWJhc2UgLS1za2lwXCIgdG8gc2tpcCB0aGlzIHBhdGNoKSIKIG1zZ3N0ciAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiB1bSBkaWVzZW4gUGF0Y2ggYXVzenVsYXNzZW4pIgogCi0jOiB3dC1zdGF0dXMuYzo5MDUKKyM6IHd0LXN0YXR1cy5jOjk1MAogbXNnaWQgIiAgKHVzZSBcImdpdCByZWJhc2UgLS1hYm9ydFwiIHRvIGNoZWNrIG91dCB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCByZWJhc2UgLS1hYm9ydFwiIHVtIGRlbiB1cnNwcsO8bmdsaWNoZW4gQnJhbmNoICIKICJhdXN6dWNoZWNrZW4pIgogCi0jOiB3dC1zdGF0dXMuYzo5MTgKKyM6IHd0LXN0YXR1cy5jOjk2MwogbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICAoYWxsZSBLb25mbGlrdGUgYmVob2JlbjogZsO8aHJlbiBTaWUgXCJnaXQgcmViYXNlIC0tY29udGludWVcIiBhdXMpIgogCi0jOiB3dC1zdGF0dXMuYzo5MjIKKyM6IHd0LXN0YXR1cy5jOjk2NwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgpAQCAtMTUxMiwxMjggKzE2NzQsMTI5IEBACiAiU2llIHRlaWxlbiBnZXJhZGUgZWluZW4gQ29tbWl0IGF1Ziwgd8OkaHJlbmQgZWluIFJlYmFzZSB2b24gQnJhbmNoICclcycgYXVmICIKICInJXMnIGltIEdhbmdlIGlzdC4iCiAKLSM6IHd0LXN0YXR1cy5jOjkyNworIzogd3Qtc3RhdHVzLmM6OTcyCiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IGR1cmluZyBhIHJlYmFzZS4iCiBtc2dzdHIgIlNpZSB0ZWlsZW4gZ2VyYWRlIGVpbmVuIENvbW1pdCB3w6RocmVuZCBlaW5lcyBSZWJhc2UgYXVmLiIKIAotIzogd3Qtc3RhdHVzLmM6OTMwCisjOiB3dC1zdGF0dXMuYzo5NzUKIG1zZ2lkICIgIChPbmNlIHlvdXIgd29ya2luZyBkaXJlY3RvcnkgaXMgY2xlYW4sIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogIiAgKFNvYmFsZCBJaHIgQXJiZWl0c3ZlcnplaWNobmlzIHVudmVyw6RuZGVydCBpc3QsIGbDvGhyZW4gU2llIFwiZ2l0IHJlYmFzZSAtLSIKICJjb250aW51ZVwiIGF1cykiCiAKLSM6IHd0LXN0YXR1cy5jOjkzNAorIzogd3Qtc3RhdHVzLmM6OTc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICclcycgb24gJyVzJy4iCiBtc2dzdHIgIiIKICJTaWUgZWRpdGllcmVuIGdlcmFkZSBlaW5lbiBDb21taXQgd8OkaHJlbmQgZWluZXMgUmViYXNlIHZvbiBCcmFuY2ggJyVzJyBhdWYgIgogIiclcycuIgogCi0jOiB3dC1zdGF0dXMuYzo5MzkKKyM6IHd0LXN0YXR1cy5jOjk4NAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIKIG1zZ3N0ciAiU2llIGVkaXRpZXJlbiBnZXJhZGUgZWluZW4gQ29tbWl0IHfDpGhyZW5kIGVpbmVzIFJlYmFzZS4iCiAKLSM6IHd0LXN0YXR1cy5jOjk0MgorIzogd3Qtc3RhdHVzLmM6OTg3CiBtc2dpZCAiICAodXNlIFwiZ2l0IGNvbW1pdCAtLWFtZW5kXCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KSIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCBjb21taXQgLS1hbWVuZFwiIHVtIGRlbiBha3R1ZWxsZW4gQ29tbWl0IG5hY2h6dWJlc3Nlcm4pIgogCi0jOiB3dC1zdGF0dXMuYzo5NDQKKyM6IHd0LXN0YXR1cy5jOjk4OQogbXNnaWQgIiIKICIgICh1c2UgXCJnaXQgcmViYXNlIC0tY29udGludWVcIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKSIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiIHNvYmFsZCBJaHJlIMOEbmRlcnVuZ2VuICIKICJhYmdlc2NobG9zc2VuIHNpbmQpIgogCi0jOiB3dC1zdGF0dXMuYzo5NTQKLW1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZy4iCi1tc2dzdHIgIlNpZSBmw7xocmVuIGdlcmFkZSBcImNoZXJyeS1waWNrXCIgYXVzLiIKKyM6IHd0LXN0YXR1cy5jOjk5OQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZyBjb21taXQgJXMuIgorbXNnc3RyICJTaWUgZsO8aHJlbiBnZXJhZGUgXCJjaGVycnktcGlja1wiIHZvbiBDb21taXQgJXMgYXVzLiIKIAotIzogd3Qtc3RhdHVzLmM6OTU4CisjOiB3dC1zdGF0dXMuYzoxMDA0CiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIikiCiBtc2dzdHIgIiIKICIgIChiZWhlYmVuIFNpZSBkaWUgS29uZmxpa3RlIHVuZCBmw7xocmVuIFNpZSBkYW5uIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWUiCiAiXCIgYXVzKSIKIAotIzogd3Qtc3RhdHVzLmM6OTYxCisjOiB3dC1zdGF0dXMuYzoxMDA3CiBtc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIikiCiBtc2dzdHIgIiIKICIgIChhbGxlIEtvbmZsaWt0ZSBiZWhvYmVuOiBmw7xocmVuIFNpZSBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIgYXVzKSIKIAotIzogd3Qtc3RhdHVzLmM6OTYzCisjOiB3dC1zdGF0dXMuYzoxMDA5CiBtc2dpZCAiICAodXNlIFwiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnRcIiB0byBjYW5jZWwgdGhlIGNoZXJyeS1waWNrIG9wZXJhdGlvbikiCiBtc2dzdHIgIiIKICIgIChiZW51dHplbiBTaWUgXCJnaXQgY2hlcnJ5LXBpY2sgLS1hYm9ydFwiIHVtIGRpZSBDaGVycnktUGljay1PcGVyYXRpb24gIgogImFienVicmVjaGVuKSIKIAotIzogd3Qtc3RhdHVzLmM6OTcyCisjOiB3dC1zdGF0dXMuYzoxMDE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJldmVydGluZyBjb21taXQgJXMuIgogbXNnc3RyICJTaWUgc2luZCBnZXJhZGUgYW4gZWluZW0gUmV2ZXJ0IHZvbiBDb21taXQgJyVzJy4iCiAKLSM6IHd0LXN0YXR1cy5jOjk3NworIzogd3Qtc3RhdHVzLmM6MTAyMwogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogIiAgKGJlaGViZW4gU2llIGRpZSBLb25mbGlrdGUgdW5kIGbDvGhyZW4gU2llIGRhbm4gXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIiAiCiAiYXVzKSIKIAotIzogd3Qtc3RhdHVzLmM6OTgwCisjOiB3dC1zdGF0dXMuYzoxMDI2CiBtc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIgIChhbGxlIEtvbmZsaWt0ZSBiZWhvYmVuOiBmw7xocmVuIFNpZSBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiIGF1cykiCiAKLSM6IHd0LXN0YXR1cy5jOjk4MgorIzogd3Qtc3RhdHVzLmM6MTAyOAogbXNnaWQgIiAgKHVzZSBcImdpdCByZXZlcnQgLS1hYm9ydFwiIHRvIGNhbmNlbCB0aGUgcmV2ZXJ0IG9wZXJhdGlvbikiCiBtc2dzdHIgIiIKICIgIChiZW51dHplbiBTaWUgXCJnaXQgcmV2ZXJ0IC0tYWJvcnRcIiB1bSBkaWUgUmV2ZXJ0LU9wZXJhdGlvbiBhYnp1YnJlY2hlbikiCiAKLSM6IHd0LXN0YXR1cy5jOjk5MworIzogd3Qtc3RhdHVzLmM6MTAzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBiaXNlY3RpbmcsIHN0YXJ0ZWQgZnJvbSBicmFuY2ggJyVzJy4iCiBtc2dzdHIgIlNpZSBzaW5kIGdlcmFkZSBiZWkgZWluZXIgYmluw6RyZW4gU3VjaGUsIGdlc3RhcnRldCB2b24gQnJhbmNoICclcycuIgogCi0jOiB3dC1zdGF0dXMuYzo5OTcKKyM6IHd0LXN0YXR1cy5jOjEwNDMKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBiaXNlY3RpbmcuIgogbXNnc3RyICJTaWUgc2luZCBnZXJhZGUgYmVpIGVpbmVyIGJpbsOkcmVuIFN1Y2hlLiIKIAotIzogd3Qtc3RhdHVzLmM6MTAwMAorIzogd3Qtc3RhdHVzLmM6MTA0NgogbXNnaWQgIiAgKHVzZSBcImdpdCBiaXNlY3QgcmVzZXRcIiB0byBnZXQgYmFjayB0byB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCBiaXNlY3QgcmVzZXRcIiB1bSB6dW0gdXJzcHLDvG5nbGljaGVuIEJyYW5jaCAiCiAienVyw7xja3p1a2VocmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6MTE3MworIzogd3Qtc3RhdHVzLmM6MTIyMQogbXNnaWQgIk9uIGJyYW5jaCAiCiBtc2dzdHIgIkF1ZiBCcmFuY2ggIgogCi0jOiB3dC1zdGF0dXMuYzoxMTgwCisjOiB3dC1zdGF0dXMuYzoxMjI4CiBtc2dpZCAicmViYXNlIGluIHByb2dyZXNzOyBvbnRvICIKIG1zZ3N0ciAiUmViYXNlIGltIEdhbmdlOyBhdWYgIgogCi0jOiB3dC1zdGF0dXMuYzoxMTg3CisjOiB3dC1zdGF0dXMuYzoxMjM1CiBtc2dpZCAiSEVBRCBkZXRhY2hlZCBhdCAiCiBtc2dzdHIgIkhFQUQgbG9zZ2Vsw7ZzdCBiZWkgIgogCi0jOiB3dC1zdGF0dXMuYzoxMTg5CisjOiB3dC1zdGF0dXMuYzoxMjM3CiBtc2dpZCAiSEVBRCBkZXRhY2hlZCBmcm9tICIKIG1zZ3N0ciAiSEVBRCBsb3NnZWzDtnN0IHZvbiAiCiAKLSM6IHd0LXN0YXR1cy5jOjExOTIKKyM6IHd0LXN0YXR1cy5jOjEyNDAKIG1zZ2lkICJOb3QgY3VycmVudGx5IG9uIGFueSBicmFuY2guIgogbXNnc3RyICJJbSBNb21lbnQgYXVmIGtlaW5lbSBCcmFuY2guIgogCi0jOiB3dC1zdGF0dXMuYzoxMjA5CisjOiB3dC1zdGF0dXMuYzoxMjU3CiBtc2dpZCAiSW5pdGlhbCBjb21taXQiCiBtc2dzdHIgIkluaXRpYWxlciBDb21taXQiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjMKKyM6IHd0LXN0YXR1cy5jOjEyNzEKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgIlVuYmVvYmFjaHRldGUgRGF0ZWllbiIKIAotIzogd3Qtc3RhdHVzLmM6MTIyNQorIzogd3Qtc3RhdHVzLmM6MTI3MwogbXNnaWQgIklnbm9yZWQgZmlsZXMiCiBtc2dzdHIgIklnbm9yaWVydGUgRGF0ZWllbiIKIAotIzogd3Qtc3RhdHVzLmM6MTIyOQorIzogd3Qtc3RhdHVzLmM6MTI3NwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gJ3N0YXR1cyAtdW5vJ1xuIgpAQCAtMTY0NCwzMiArMTgwNywzMiBAQAogIidzdGF0dXMgLXVubycga8O2bm50ZSBkYXMgYmVzY2hsZXVuaWdlbiwgYWJlciBTaWUgbcO8c3NlbiBkYXJhdWYgYWNodGVuLFxuIgogIm5ldWUgRGF0ZWllbiBzZWxic3RzdMOkbmRpZyBoaW56dXp1ZsO8Z2VuIChzaWVoZSAnZ2l0IGhlbHAgc3RhdHVzJykuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjM1CisjOiB3dC1zdGF0dXMuYzoxMjgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkJXMiCiBtc2dzdHIgIlVuYmVvYmFjaHRldGUgRGF0ZWllbiBuaWNodCBhdWZnZWxpc3RldCVzIgogCi0jOiB3dC1zdGF0dXMuYzoxMjM3CisjOiB3dC1zdGF0dXMuYzoxMjg1CiBtc2dpZCAiICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKSIKIG1zZ3N0ciAiIChiZW51dHplbiBTaWUgZGllIE9wdGlvbiAtdSB1bSB1bmJlb2JhY2h0ZXRlbiBEYXRlaWVuIGFuenV6ZWlnZW4pIgogCi0jOiB3dC1zdGF0dXMuYzoxMjQzCisjOiB3dC1zdGF0dXMuYzoxMjkxCiBtc2dpZCAiTm8gY2hhbmdlcyIKIG1zZ3N0ciAiS2VpbmUgw4RuZGVydW5nZW4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNDgKKyM6IHd0LXN0YXR1cy5jOjEyOTYKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSBcImdpdCBhZGRcIiBhbmQvb3IgXCJnaXQgY29tbWl0IC1hXCIpXG4iCiBtc2dzdHIgIiIKICJrZWluZSDDhG5kZXJ1bmdlbiB6dW0gQ29tbWl0IHZvcmdlbWVya3QgKGJlbnV0emVuIFNpZSBcImdpdCBhZGRcIiB1bmQvb2RlciAiCiAiXCJnaXQgY29tbWl0IC1hXCIpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTEKKyM6IHd0LXN0YXR1cy5jOjEyOTkKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcbiIKIG1zZ3N0ciAia2VpbmUgw4RuZGVydW5nZW4genVtIENvbW1pdCB2b3JnZW1lcmt0XG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTQKKyM6IHd0LXN0YXR1cy5jOjEzMDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudCAodXNlIFwiZ2l0IGFkZFwiIHRvICIKQEAgLTE2NzgsNTYgKzE4NDEsNjAgQEAKICJuaWNodHMgenVtIENvbW1pdCB2b3JnZW1lcmt0LCBhYmVyIGVzIGdpYnQgdW5iZW9iYWNodGV0ZSBEYXRlaWVuIChiZW51dHplbiAiCiAiU2llIFwiZ2l0IGFkZFwiIHp1bSBCZW9iYWNodGVuKVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjU3CisjOiB3dC1zdGF0dXMuYzoxMzA1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudFxuIgogbXNnc3RyICJuaWNodHMgenVtIENvbW1pdCB2b3JnZW1lcmt0LCBhYmVyIGVzIGdpYnQgdW5iZW9iYWNodGV0ZSBEYXRlaWVuXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjAKKyM6IHd0LXN0YXR1cy5jOjEzMDgKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQgKGNyZWF0ZS9jb3B5IGZpbGVzIGFuZCB1c2UgXCJnaXQgYWRkXCIgdG8gdHJhY2spXG4iCiBtc2dzdHIgIiIKICJuaWNodHMgenUgY29tbWl0dGVuIChFcnN0ZWxsZW4vS29waWVyZW4gU2llIERhdGVpZW4gdW5kIGJlbnV0emVuIFNpZSBcImdpdCAiCiAiYWRkXCIgenVtIEJlb2JhY2h0ZW4pXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjMgd3Qtc3RhdHVzLmM6MTI2OAorIzogd3Qtc3RhdHVzLmM6MTMxMSB3dC1zdGF0dXMuYzoxMzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0XG4iCiBtc2dzdHIgIm5pY2h0cyB6dSBjb21taXR0ZW5cbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2NgorIzogd3Qtc3RhdHVzLmM6MTMxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKVxuIgogbXNnc3RyICIiCiAibmljaHRzIHp1IGNvbW1pdHRlbiAoYmVudXR6ZW4gU2llIGRpZSBPcHRpb24gLXUsIHVtIHVuYmVvYmFjaHRldGUgRGF0ZWllbiAiCiAiYW56dXplaWdlbilcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI3MAorIzogd3Qtc3RhdHVzLmM6MTMxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCwgd29ya2luZyBkaXJlY3RvcnkgY2xlYW5cbiIKIG1zZ3N0ciAibmljaHRzIHp1IGNvbW1pdHRlbiwgQXJiZWl0c3ZlcnplaWNobmlzIHVudmVyw6RuZGVydFxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMzc4CisjOiB3dC1zdGF0dXMuYzoxNDI3CiBtc2dpZCAiSEVBRCAobm8gYnJhbmNoKSIKIG1zZ3N0ciAiSEVBRCAoa2VpbiBCcmFuY2gpIgogCi0jOiB3dC1zdGF0dXMuYzoxMzg0CisjOiB3dC1zdGF0dXMuYzoxNDMzCiBtc2dpZCAiSW5pdGlhbCBjb21taXQgb24gIgogbXNnc3RyICJJbml0aWFsZXIgQ29tbWl0IGF1ZiAiCiAKLSM6IHd0LXN0YXR1cy5jOjEzOTkKKyM6IHd0LXN0YXR1cy5jOjE0NjMKK21zZ2lkICJnb25lIgorbXNnc3RyICJlbnRmZXJudCIKKworIzogd3Qtc3RhdHVzLmM6MTQ2NQogbXNnaWQgImJlaGluZCAiCiBtc2dzdHIgImhpbnRlcmhlciAiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MDIgd3Qtc3RhdHVzLmM6MTQwNQorIzogd3Qtc3RhdHVzLmM6MTQ2OCB3dC1zdGF0dXMuYzoxNDcxCiBtc2dpZCAiYWhlYWQgIgogbXNnc3RyICJ2b3JhdXMgIgogCi0jOiB3dC1zdGF0dXMuYzoxNDA3CisjOiB3dC1zdGF0dXMuYzoxNDczCiBtc2dpZCAiLCBiZWhpbmQgIgogbXNnc3RyICIsIGhpbnRlcmhlciAiCiAKLSM6IGNvbXBhdC9wcmVjb21wb3NlX3V0ZjguYzo1OCBidWlsdGluL2Nsb25lLmM6MzUxCisjOiBjb21wYXQvcHJlY29tcG9zZV91dGY4LmM6NTUgYnVpbHRpbi9jbG9uZS5jOjM1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gdW5saW5rICclcyciCiBtc2dzdHIgIktvbm50ZSAnJXMnIG5pY2h0IGVudGZlcm5lbi4iCkBAIC0xODEzLDcgKzE5ODAsNyBAQAogbXNnaWQgInVuZXhwZWN0ZWQgZGlmZiBzdGF0dXMgJWMiCiBtc2dzdHIgInVuZXJ3YXJ0ZXRlciBEaWZmZXJlbnotU3RhdHVzICVjIgogCi0jOiBidWlsdGluL2FkZC5jOjE0OSBidWlsdGluL2NvbW1pdC5jOjI1MgorIzogYnVpbHRpbi9hZGQuYzoxNDkgYnVpbHRpbi9jb21taXQuYzoyNjAKIG1zZ2lkICJ1cGRhdGluZyBmaWxlcyBmYWlsZWQiCiBtc2dzdHIgIkFrdHVhbGlzaWVydW5nIGRlciBEYXRlaWVuIGZlaGxnZXNjaGxhZ2VuIgogCkBAIC0xODIyLDE0NyArMTk4OSwxNDIgQEAKIG1zZ2lkICJyZW1vdmUgJyVzJ1xuIgogbXNnc3RyICJsw7ZzY2hlICclcydcbiIKIAotIzogYnVpbHRpbi9hZGQuYzoyNTMKKyM6IGJ1aWx0aW4vYWRkLmM6MjM3CiBtc2dpZCAiVW5zdGFnZWQgY2hhbmdlcyBhZnRlciByZWZyZXNoaW5nIHRoZSBpbmRleDoiCiBtc2dzdHIgIiIKICJOaWNodCB6dW0gQ29tbWl0IHZvcmdlbWVya3RlIMOEbmRlcnVuZ2VuIG5hY2ggQWt0dWFsaXNpZXJ1bmcgZGVyIFN0YWdpbmctQXJlYToiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MjU2IGJ1aWx0aW4vYWRkLmM6NTczIGJ1aWx0aW4vcm0uYzozMzcKLSMsIGMtZm9ybWF0Ci1tc2dpZCAicGF0aHNwZWMgJyVzJyBkaWQgbm90IG1hdGNoIGFueSBmaWxlcyIKLW1zZ3N0ciAiUGZhZHNwZXppZmlrYXRpb24gJyVzJyBzdGltbXQgbWl0IGtlaW5lbiBEYXRlaWVuIMO8YmVyZWluIgotCi0jOiBidWlsdGluL2FkZC5jOjMzOQorIzogYnVpbHRpbi9hZGQuYzoyOTkKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCB0aGUgaW5kZXgiCiBtc2dzdHIgIktvbm50ZSBkaWUgU3RhZ2luZy1BcmVhIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL2FkZC5jOjM1MAorIzogYnVpbHRpbi9hZGQuYzozMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZy4iCiBtc2dzdHIgIktvbm50ZSAnJXMnIG5pY2h0IHp1bSBTY2hyZWliZW4gw7ZmZm5lbi4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzU0CisjOiBidWlsdGluL2FkZC5jOjMxNAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBwYXRjaCIKIG1zZ3N0ciAiS29ubnRlIFBhdGNoIG5pY2h0IHNjaHJlaWJlbiIKIAotIzogYnVpbHRpbi9hZGQuYzozNTkKKyM6IGJ1aWx0aW4vYWRkLmM6MzE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBzdGF0ICclcyciCiBtc2dzdHIgIktvbm50ZSBWZXJ6ZWljaG5pcyAnJXMnIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL2FkZC5jOjM2MQorIzogYnVpbHRpbi9hZGQuYzozMjEKIG1zZ2lkICJFbXB0eSBwYXRjaC4gQWJvcnRlZC4iCiBtc2dzdHIgIkxlZXJlciBQYXRjaC4gQWJnZWJyb2NoZW4uIgogCi0jOiBidWlsdGluL2FkZC5jOjM2NworIzogYnVpbHRpbi9hZGQuYzozMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGFwcGx5ICclcyciCiBtc2dzdHIgIktvbm50ZSAnJXMnIG5pY2h0IGFud2VuZGVuLiIKIAotIzogYnVpbHRpbi9hZGQuYzozNzcKKyM6IGJ1aWx0aW4vYWRkLmM6MzM3CiBtc2dpZCAiVGhlIGZvbGxvd2luZyBwYXRocyBhcmUgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgogbXNnc3RyICIiCiAiRGllIGZvbGdlbmRlbiBQZmFkZSB3ZXJkZW4gZHVyY2ggZWluZSBJaHJlciBcIi5naXRpZ25vcmVcIiBEYXRlaWVuICIKICJpZ25vcmllcnQ6XG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk0IGJ1aWx0aW4vY2xlYW4uYzo4NzUgYnVpbHRpbi9mZXRjaC5jOjc4IGJ1aWx0aW4vbXYuYzo2MwotIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3MyBidWlsdGluL3B1c2guYzo0NTEgYnVpbHRpbi9yZW1vdGUuYzoxMjUzCi0jOiBidWlsdGluL3JtLmM6MjY4CisjOiBidWlsdGluL2FkZC5jOjM1NCBidWlsdGluL2NsZWFuLmM6ODc1IGJ1aWx0aW4vZmV0Y2guYzo5MiBidWlsdGluL212LmM6NjYKKyM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzMgYnVpbHRpbi9wdXNoLmM6NDU5IGJ1aWx0aW4vcmVtb3RlLmM6MTI1MworIzogYnVpbHRpbi9ybS5jOjI2OQogbXNnaWQgImRyeSBydW4iCiBtc2dzdHIgIlByb2JlbGF1ZiIKIAotIzogYnVpbHRpbi9hZGQuYzozOTUgYnVpbHRpbi9hcHBseS5jOjQ0MTAgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOQotIzogYnVpbHRpbi9jb21taXQuYzoxMjIwIGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjk1IGJ1aWx0aW4vZnNjay5jOjYxMwotIzogYnVpbHRpbi9sb2cuYzoxNTczIGJ1aWx0aW4vbXYuYzo2MiBidWlsdGluL3JlYWQtdHJlZS5jOjExMworIzogYnVpbHRpbi9hZGQuYzozNTUgYnVpbHRpbi9hcHBseS5jOjQ0MTAgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOQorIzogYnVpbHRpbi9jb21taXQuYzoxMjQ5IGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjk1IGJ1aWx0aW4vZnNjay5jOjYxMgorIzogYnVpbHRpbi9sb2cuYzoxNTkyIGJ1aWx0aW4vbXYuYzo2NSBidWlsdGluL3JlYWQtdHJlZS5jOjExMwogbXNnaWQgImJlIHZlcmJvc2UiCiBtc2dzdHIgImVyd2VpdGVydGUgQXVzZ2FiZW4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk3CisjOiBidWlsdGluL2FkZC5jOjM1NwogbXNnaWQgImludGVyYWN0aXZlIHBpY2tpbmciCiBtc2dzdHIgImludGVyYWt0aXZlcyBBdXN3w6RobGVuIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OCBidWlsdGluL2NoZWNrb3V0LmM6MTA3MyBidWlsdGluL3Jlc2V0LmM6MjYxCisjOiBidWlsdGluL2FkZC5jOjM1OCBidWlsdGluL2NoZWNrb3V0LmM6MTEwOSBidWlsdGluL3Jlc2V0LmM6MjcyCiBtc2dpZCAic2VsZWN0IGh1bmtzIGludGVyYWN0aXZlbHkiCiBtc2dzdHIgIkJsw7Zja2UgaW50ZXJha3RpdiBhdXN3w6RobGVuIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OQorIzogYnVpbHRpbi9hZGQuYzozNTkKIG1zZ2lkICJlZGl0IGN1cnJlbnQgZGlmZiBhbmQgYXBwbHkiCiBtc2dzdHIgImFrdHVlbGxlIFVudGVyc2NoaWVkZSBlZGl0aWVyZW4gdW5kIGFud2VuZGVuIgogCi0jOiBidWlsdGluL2FkZC5jOjQwMAorIzogYnVpbHRpbi9hZGQuYzozNjAKIG1zZ2lkICJhbGxvdyBhZGRpbmcgb3RoZXJ3aXNlIGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgImVybGF1YnQgZGFzIEhpbnp1ZsO8Z2VuIGFuZGVybmZhbGxzIGlnbm9yaWVydGVyIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAxCisjOiBidWlsdGluL2FkZC5jOjM2MQogbXNnaWQgInVwZGF0ZSB0cmFja2VkIGZpbGVzIgogbXNnc3RyICJha3R1YWxpc2llcnQgYmVvYmFjaHRldGUgRGF0ZWllbiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDIKKyM6IGJ1aWx0aW4vYWRkLmM6MzYyCiBtc2dpZCAicmVjb3JkIG9ubHkgdGhlIGZhY3QgdGhhdCB0aGUgcGF0aCB3aWxsIGJlIGFkZGVkIGxhdGVyIgogbXNnc3RyICJzcGVpY2hlcnQgbnVyLCBkYXNzIGRlciBQZmFkIHNww6R0ZXIgaGluenVnZWbDvGd0IHdlcmRlbiBzb2xsIgogCi0jOiBidWlsdGluL2FkZC5jOjQwMworIzogYnVpbHRpbi9hZGQuYzozNjMKIG1zZ2lkICJhZGQgY2hhbmdlcyBmcm9tIGFsbCB0cmFja2VkIGFuZCB1bnRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgIiIKICJmw7xndCDDhG5kZXJ1bmdlbiB2b24gYWxsZW4gYmVvYmFjaHRldGVuIHVuZCB1bmJlb2JhY2h0ZXRlbiBEYXRlaWVuIGhpbnp1IgogCiAjLiB0YWtlcyBubyBhcmd1bWVudHMKLSM6IGJ1aWx0aW4vYWRkLmM6NDA2CisjOiBidWlsdGluL2FkZC5jOjM2NgogbXNnaWQgImlnbm9yZSBwYXRocyByZW1vdmVkIGluIHRoZSB3b3JraW5nIHRyZWUgKHNhbWUgYXMgLS1uby1hbGwpIgogbXNnc3RyICJpZ25vcmllcnQgZ2Vsw7ZzY2h0ZSBQZmFkZSBpbSBBcmJlaXRzdmVyemVpY2huaXMgKGdlbmF1IHdpZSAtLW5vLWFsbCkiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDA4CisjOiBidWlsdGluL2FkZC5jOjM2OAogbXNnaWQgImRvbid0IGFkZCwgb25seSByZWZyZXNoIHRoZSBpbmRleCIKIG1zZ3N0ciAiZsO8Z3QgbmljaHRzIGhpbnp1LCBha3R1YWxpc2llcnQgbnVyIGRpZSBTdGFnaW5nLUFyZWEiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDA5CisjOiBidWlsdGluL2FkZC5jOjM2OQogbXNnaWQgImp1c3Qgc2tpcCBmaWxlcyB3aGljaCBjYW5ub3QgYmUgYWRkZWQgYmVjYXVzZSBvZiBlcnJvcnMiCiBtc2dzdHIgIiIKICLDvGJlcnNwcmluZ3QgRGF0ZWllbiwgZGllIGF1ZmdydW5kIHZvbiBGZWhsZXJuIG5pY2h0IGhpbnp1Z2Vmw7xndCB3ZXJkZW4gIgogImtvbm50ZW4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDEwCisjOiBidWlsdGluL2FkZC5jOjM3MAogbXNnaWQgImNoZWNrIGlmIC0gZXZlbiBtaXNzaW5nIC0gZmlsZXMgYXJlIGlnbm9yZWQgaW4gZHJ5IHJ1biIKIG1zZ3N0ciAicHLDvGZ0IG9iIC0gYXVjaCBmZWhsZW5kZSAtIERhdGVpZW4gaW0gUHJvYmVsYXVmIGlnbm9yaWVydCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDMyCisjOiBidWlsdGluL2FkZC5jOjM5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2UgLWYgaWYgeW91IHJlYWxseSB3YW50IHRvIGFkZCB0aGVtLlxuIgogbXNnc3RyICJWZXJ3ZW5kZW4gU2llIC1mIHdlbm4gU2llIGRpZXNlIHdpcmtsaWNoIGhpbnp1ZsO8Z2VuIG3DtmNodGVuLlxuIgogCi0jOiBidWlsdGluL2FkZC5jOjQzMworIzogYnVpbHRpbi9hZGQuYzozOTMKIG1zZ2lkICJubyBmaWxlcyBhZGRlZCIKIG1zZ3N0ciAia2VpbmUgRGF0ZWllbiBoaW56dWdlZsO8Z3QiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDM5CisjOiBidWlsdGluL2FkZC5jOjM5OQogbXNnaWQgImFkZGluZyBmaWxlcyBmYWlsZWQiCiBtc2dzdHIgIkhpbnp1ZsO8Z2VuIHZvbiBEYXRlaWVuIGZlaGxnZXNjaGxhZ2VuIgogCi0jOiBidWlsdGluL2FkZC5jOjQ3OAorIzogYnVpbHRpbi9hZGQuYzo0MzgKIG1zZ2lkICItQSBhbmQgLXUgYXJlIG11dHVhbGx5IGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiRGllIE9wdGlvbmVuIC1BIHVuZCAtdSBzaW5kIHp1ZWluYW5kZXIgaW5rb21wYXRpYmVsLiIKIAotIzogYnVpbHRpbi9hZGQuYzo0OTYKKyM6IGJ1aWx0aW4vYWRkLmM6NDU2CiBtc2dpZCAiT3B0aW9uIC0taWdub3JlLW1pc3NpbmcgY2FuIG9ubHkgYmUgdXNlZCB0b2dldGhlciB3aXRoIC0tZHJ5LXJ1biIKIG1zZ3N0ciAiIgogIkRpZSBPcHRpb24gLS1pZ25vcmUtbWlzc2luZyBrYW5uIG51ciB6dXNhbW1lbiBtaXQgLS1kcnktcnVuIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2FkZC5jOjUyNgorIzogYnVpbHRpbi9hZGQuYzo0ODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90aGluZyBzcGVjaWZpZWQsIG5vdGhpbmcgYWRkZWQuXG4iCiBtc2dzdHIgIk5pY2h0cyBzcGV6aWZpemllcnQsIG5pY2h0cyBoaW56dWdlZsO8Z3QuXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NTI3CisjOiBidWlsdGluL2FkZC5jOjQ4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJNYXliZSB5b3Ugd2FudGVkIHRvIHNheSAnZ2l0IGFkZCAuJz9cbiIKIG1zZ3N0ciAiV29sbHRlbiBTaWUgdmllbGxlaWNodCAnZ2l0IGFkZCAuJyBzYWdlbj9cbiIKIAotIzogYnVpbHRpbi9hZGQuYzo1MzMgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjEgYnVpbHRpbi9jbGVhbi5jOjkxOQotIzogYnVpbHRpbi9jb21taXQuYzozMTIgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyOTcKKyM6IGJ1aWx0aW4vYWRkLmM6NDkyIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTcyIGJ1aWx0aW4vY2xlYW4uYzo5MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzIwIGJ1aWx0aW4vbXYuYzo4NiBidWlsdGluL3Jlc2V0LmM6MjI0IGJ1aWx0aW4vcm0uYzoyOTkKIG1zZ2lkICJpbmRleCBmaWxlIGNvcnJ1cHQiCiBtc2dzdHIgIlN0YWdpbmctQXJlYS1EYXRlaSBiZXNjaMOkZGlndCIKIAotIzogYnVpbHRpbi9hZGQuYzo2MDUgYnVpbHRpbi9hcHBseS5jOjQ1MDYgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6NDMyCisjOiBidWlsdGluL2FkZC5jOjU4OSBidWlsdGluL2FwcGx5LmM6NDUwNiBidWlsdGluL212LmM6MjU5IGJ1aWx0aW4vcm0uYzo0MzIKIG1zZ2lkICJVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIktvbm50ZSBuZXVlIFN0YWdpbmctQXJlYS1EYXRlaSBuaWNodCBzY2hyZWliZW4uIgogCkBAIC0yMjIwLDcgKzIzODIsNyBAQAogbXNnaWQgIkNoZWNraW5nIHBhdGNoICVzLi4uIgogbXNnc3RyICJQcsO8ZmUgUGF0Y2ggJXMuLi4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNjgwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTYgYnVpbHRpbi9yZXNldC5jOjEyNworIzogYnVpbHRpbi9hcHBseS5jOjM2ODAgYnVpbHRpbi9jaGVja291dC5jOjIxMyBidWlsdGluL3Jlc2V0LmM6MTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1ha2VfY2FjaGVfZW50cnkgZmFpbGVkIGZvciBwYXRoICclcyciCiBtc2dzdHIgIm1ha2VfY2FjaGVfZW50cnkgZsO8ciBQZmFkICclcycgZmVobGdlc2NobGFnZW4iCkBAIC0yMzAwLDggKzI0NjIsOCBAQAogbXNnaWQgInVuYWJsZSB0byByZWFkIGluZGV4IGZpbGUiCiBtc2dzdHIgIktvbm50ZSBTdGFnaW5nLUFyZWEtRGF0ZWkgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU3IGJ1aWx0aW4vYXBwbHkuYzo0MzYwIGJ1aWx0aW4vY2xvbmUuYzo5MQotIzogYnVpbHRpbi9mZXRjaC5jOjYzCisjOiBidWlsdGluL2FwcGx5LmM6NDM1NyBidWlsdGluL2FwcGx5LmM6NDM2MCBidWlsdGluL2Nsb25lLmM6OTAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3NwogbXNnaWQgInBhdGgiCiBtc2dzdHIgIlBmYWQiCiAKQEAgLTIzNzQsNyArMjUzNiw3IEBACiAiZXJzdGVsbHQgZWluZSB0ZW1wb3LDpHJlIFN0YWdpbmctQXJlYSBiYXNpZXJlbmQgYXVmIGRlbiBpbnRlZ3JpZXJ0ZW4gU3RhZ2luZy0iCiAiQXJlYS1JbmZvcm1hdGlvbmVuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4OSBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTk3IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg5IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTcgYnVpbHRpbi9scy1maWxlcy5jOjQ1MgogbXNnaWQgInBhdGhzIGFyZSBzZXBhcmF0ZWQgd2l0aCBOVUwgY2hhcmFjdGVyIgogbXNnc3RyICJQZmFkZSBzaW5kIGdldHJlbm50IGR1cmNoIE5VTCBaZWljaGVuIgogCkBAIC0yNTA4LDEwNCArMjY3MCwxMDQgQEAKIG1zZ2lkICJ1cGRhdGUgQklTRUNUX0hFQUQgaW5zdGVhZCBvZiBjaGVja2luZyBvdXQgdGhlIGN1cnJlbnQgY29tbWl0IgogbXNnc3RyICJha3R1YWxpc2llcnQgQklTRUNUX0hFQUQsIGFuc3RhdHQgZGVuIGFrdHVlbGxlbiBDb21taXQgYXVzenVjaGVja2VuIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyNwogbXNnaWQgImdpdCBibGFtZSBbb3B0aW9uc10gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIGZpbGUiCiBtc2dzdHIgImdpdCBibGFtZSBbT3B0aW9uZW5dIFtyZXYtb3B0c10gW3Jldl0gWy0tXSBEYXRlaSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjMxCisjOiBidWlsdGluL2JsYW1lLmM6MzIKIG1zZ2lkICJbcmV2LW9wdHNdIGFyZSBkb2N1bWVudGVkIGluIGdpdC1yZXYtbGlzdCgxKSIKIG1zZ3N0ciAiW3Jldi1vcHRzXSBzaW5kIGRva3VtZW50aWVydCBpbiBnaXQtcmV2LWxpc3QoMSkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc2CisjOiBidWlsdGluL2JsYW1lLmM6MjI0OAogbXNnaWQgIlNob3cgYmxhbWUgZW50cmllcyBhcyB3ZSBmaW5kIHRoZW0sIGluY3JlbWVudGFsbHkiCiBtc2dzdHIgIlplaWd0IFwiYmxhbWVcIi1FaW50csOkZ2Ugc2Nocml0dHdlaXNlLCB3w6RocmVuZCB3aXIgc2llIGdlbmVyaWVyZW4iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc3CisjOiBidWlsdGluL2JsYW1lLmM6MjI0OQogbXNnaWQgIlNob3cgYmxhbmsgU0hBLTEgZm9yIGJvdW5kYXJ5IGNvbW1pdHMgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIlplaWd0IGxlZXJlIFNIQS0xIGbDvHIgR3JlbnotQ29tbWl0cyAoU3RhbmRhcmQ6IGF1cykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc4CisjOiBidWlsdGluL2JsYW1lLmM6MjI1MAogbXNnaWQgIkRvIG5vdCB0cmVhdCByb290IGNvbW1pdHMgYXMgYm91bmRhcmllcyAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiQmVoYW5kZWx0IFVyc3BydW5ncy1Db21taXQgbmljaHQgYWxzIEdyZW56ZW4gKFN0YW5kYXJkOiBhdXMpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI3OQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNTEKIG1zZ2lkICJTaG93IHdvcmsgY29zdCBzdGF0aXN0aWNzIgogbXNnc3RyICJaZWlndCBTdGF0aXN0aWtlbiB6dW0gQXJiZWl0c2F1ZndhbmQiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgwCisjOiBidWlsdGluL2JsYW1lLmM6MjI1MgogbXNnaWQgIlNob3cgb3V0cHV0IHNjb3JlIGZvciBibGFtZSBlbnRyaWVzIgogbXNnc3RyICJaZWlndCBBdXNnYWJlYmV3ZXJ0dW5nIGbDvHIgXCJibGFtZVwiLUVpbnRyw6RnZSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODEKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjUzCiBtc2dpZCAiU2hvdyBvcmlnaW5hbCBmaWxlbmFtZSAoRGVmYXVsdDogYXV0bykiCiBtc2dzdHIgIlplaWd0IHVyc3Byw7xuZ2xpY2hlbiBEYXRlaW5hbWVuIChTdGFuZGFyZDogYXV0bykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgyCisjOiBidWlsdGluL2JsYW1lLmM6MjI1NAogbXNnaWQgIlNob3cgb3JpZ2luYWwgbGluZW51bWJlciAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiWmVpZ3QgdXJzcHLDvG5nbGljaGUgWmVpbGVubnVtbWVyIChTdGFuZGFyZDogYXVzKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjU1CiBtc2dpZCAiU2hvdyBpbiBhIGZvcm1hdCBkZXNpZ25lZCBmb3IgbWFjaGluZSBjb25zdW1wdGlvbiIKIG1zZ3N0ciAiQW56ZWlnZSBpbiBlaW5lbSBGb3JtYXQgZsO8ciBtYXNjaGluZWxsZSBBdXN3ZXJ0dW5nIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI4NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNTYKIG1zZ2lkICJTaG93IHBvcmNlbGFpbiBmb3JtYXQgd2l0aCBwZXItbGluZSBjb21taXQgaW5mb3JtYXRpb24iCiBtc2dzdHIgIiIKICJBbnplaWdlIGluIEZvcm1hdCBmw7xyIEZyZW1kcHJvZ3JhbW1lIG1pdCBDb21taXQtSW5mb3JtYXRpb25lbiBwcm8gWmVpbGUiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg1CisjOiBidWlsdGluL2JsYW1lLmM6MjI1NwogbXNnaWQgIlVzZSB0aGUgc2FtZSBvdXRwdXQgbW9kZSBhcyBnaXQtYW5ub3RhdGUgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIkJlbnV0enQgZGVuIGdsZWljaGVuIEF1c2dhYmVtb2R1cyB3aWUgXCJnaXQtYW5ub3RhdGVcIiAoU3RhbmRhcmQ6IGF1cykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg2CisjOiBidWlsdGluL2JsYW1lLmM6MjI1OAogbXNnaWQgIlNob3cgcmF3IHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiWmVpZ3QgdW5iZWFyYmVpdGV0ZW4gWmVpdHN0ZW1wZWwgKFN0YW5kYXJkOiBhdXMpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI4NworIzogYnVpbHRpbi9ibGFtZS5jOjIyNTkKIG1zZ2lkICJTaG93IGxvbmcgY29tbWl0IFNIQTEgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIlplaWd0IGxhbmdlbiBDb21taXQtU0hBMSAoU3RhbmRhcmQ6IGF1cykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg4CisjOiBidWlsdGluL2JsYW1lLmM6MjI2MAogbXNnaWQgIlN1cHByZXNzIGF1dGhvciBuYW1lIGFuZCB0aW1lc3RhbXAgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIlVudGVyZHLDvGNrdCBkZW4gTmFtZW4gZGVzIEF1dG9ycyB1bmQgZGVuIFplaXRzdGVtcGVsIChTdGFuZGFyZDogYXVzKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjYxCiBtc2dpZCAiU2hvdyBhdXRob3IgZW1haWwgaW5zdGVhZCBvZiBuYW1lIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJaZWlndCBhbnN0YXR0IGRlcyBOYW1lbnMgZGllIEVtYWlsLUFkcmVzc2UgZGVzIEF1dG9ycyAoU3RhbmRhcmQ6IGF1cykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkwCisjOiBidWlsdGluL2JsYW1lLmM6MjI2MgogbXNnaWQgIklnbm9yZSB3aGl0ZXNwYWNlIGRpZmZlcmVuY2VzIgogbXNnc3RyICJJZ25vcmllcnQgVW50ZXJzY2hpZWRlIGltIFdoaXRlc3BhY2UiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkxCisjOiBidWlsdGluL2JsYW1lLmM6MjI2MwogbXNnaWQgIlNwZW5kIGV4dHJhIGN5Y2xlcyB0byBmaW5kIGJldHRlciBtYXRjaCIKIG1zZ3N0ciAiYXJiZWl0ZSBsw6RuZ2VyLCB1bSBiZXNzZXJlIMOcYmVyZWluc3RpbW11bmdlbiB6dSBmaW5kZW4iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkyCisjOiBidWlsdGluL2JsYW1lLmM6MjI2NAogbXNnaWQgIlVzZSByZXZpc2lvbnMgZnJvbSA8ZmlsZT4gaW5zdGVhZCBvZiBjYWxsaW5nIGdpdC1yZXYtbGlzdCIKIG1zZ3N0ciAiQmVudXR6dCBDb21taXRzIHZvbiA8RGF0ZWk+IGFuc3RhdHQgXCJnaXQtcmV2LWxpc3RcIiBhdWZ6dXJ1ZmVuIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5MworIzogYnVpbHRpbi9ibGFtZS5jOjIyNjUKIG1zZ2lkICJVc2UgPGZpbGU+J3MgY29udGVudHMgYXMgdGhlIGZpbmFsIGltYWdlIgogbXNnc3RyICJCZW51dHp0IEluaGFsdGUgZGVyIDxEYXRlaT5lbiBhbHMgZW50Z8O8bHRpZ2VzIEFiYmlsZCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTQgYnVpbHRpbi9ibGFtZS5jOjIyOTUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY2IGJ1aWx0aW4vYmxhbWUuYzoyMjY3CiBtc2dpZCAic2NvcmUiCiBtc2dzdHIgIkJld2VydHVuZyIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY2CiBtc2dpZCAiRmluZCBsaW5lIGNvcGllcyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIKIG1zZ3N0ciAiRmluZGV0IGtvcGllcnRlIFplaWxlbiBpbm5lcmhhbGIgb2RlciB6d2lzY2hlbiBEYXRlaWVuIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjcKIG1zZ2lkICJGaW5kIGxpbmUgbW92ZW1lbnRzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgogbXNnc3RyICJGaW5kZXQgdmVyc2Nob2JlbmUgWmVpbGVuIGlubmVyaGFsYiBvZGVyIHp3aXNjaGVuIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk2CisjOiBidWlsdGluL2JsYW1lLmM6MjI2OAogbXNnaWQgIm4sbSIKIG1zZ3N0ciAibixtIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjgKIG1zZ2lkICJQcm9jZXNzIG9ubHkgbGluZSByYW5nZSBuLG0sIGNvdW50aW5nIGZyb20gMSIKIG1zZ3N0ciAiVmVyYXJiZWl0ZXQgbnVyIFplaWxlbiBpbSBCZXJlaWNoIG4sbSwgZ2V6w6RobHQgdm9uIDEiCiAKQEAgLTI3MTMsMjQwICsyODc1LDI1MCBAQAogCiAjOiBidWlsdGluL2JyYW5jaC5jOjQ1MwogIywgYy1mb3JtYXQKK21zZ2lkICJbJXM6IGdvbmVdIgorbXNnc3RyICJbJXM6IGVudGZlcm50XSIKKworIzogYnVpbHRpbi9icmFuY2guYzo0NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyVzXSIKK21zZ3N0ciAiWyVzXSIKKworIzogYnVpbHRpbi9icmFuY2guYzo0NTkKKyMsIGMtZm9ybWF0CiBtc2dpZCAiWyVzOiBiZWhpbmQgJWRdIgogbXNnc3RyICJbJXM6ICVkIGhpbnRlcmhlcl0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU1CisjOiBidWlsdGluL2JyYW5jaC5jOjQ2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJbYmVoaW5kICVkXSIKIG1zZ3N0ciAiWyVkIGhpbnRlcmhlcl0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU5CisjOiBidWlsdGluL2JyYW5jaC5jOjQ2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJbJXM6IGFoZWFkICVkXSIKIG1zZ3N0ciAiWyVzOiAlZCB2b3JhdXNdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ2MQorIzogYnVpbHRpbi9icmFuY2guYzo0NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiW2FoZWFkICVkXSIKIG1zZ3N0ciAiWyVkIHZvcmF1c10iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDY0CisjOiBidWlsdGluL2JyYW5jaC5jOjQ3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJbJXM6IGFoZWFkICVkLCBiZWhpbmQgJWRdIgogbXNnc3RyICJbJXM6ICVkIHZvcmF1cywgJWQgaGludGVyaGVyXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NjcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDczCiAjLCBjLWZvcm1hdAogbXNnaWQgIlthaGVhZCAlZCwgYmVoaW5kICVkXSIKIG1zZ3N0ciAiWyVkIHZvcmF1cywgJWQgaGludGVyaGVyXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0OTAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDk2CiBtc2dpZCAiICoqKiogaW52YWxpZCByZWYgKioqKiIKIG1zZ3N0ciAiICoqKiogdW5nw7xsdGlnZSBSZWZlcmVueiAqKioqIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU4MgorIzogYnVpbHRpbi9icmFuY2guYzo1ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiKG5vIGJyYW5jaCwgcmViYXNpbmcgJXMpIgogbXNnc3RyICIoa2VpbiBCcmFuY2gsIFJlYmFzZSB2b24gQnJhbmNoICVzIGltIEdhbmdlKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo1ODUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTkxCiAjLCBjLWZvcm1hdAogbXNnaWQgIihubyBicmFuY2gsIGJpc2VjdCBzdGFydGVkIG9uICVzKSIKIG1zZ3N0ciAiKGtlaW4gQnJhbmNoLCBiaW7DpHJlIFN1Y2hlIGJlZ29ubmVuIGJlaSAlcykiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTg4CisjOiBidWlsdGluL2JyYW5jaC5jOjU5NAogIywgYy1mb3JtYXQKIG1zZ2lkICIoZGV0YWNoZWQgZnJvbSAlcykiCiBtc2dzdHIgIihsb3NnZWzDtnN0IHZvbiAlcykiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTkxCisjOiBidWlsdGluL2JyYW5jaC5jOjU5NwogbXNnaWQgIihubyBicmFuY2gpIgogbXNnc3RyICIoa2VpbiBCcmFuY2gpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjYzNworIzogYnVpbHRpbi9icmFuY2guYzo2NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0ICclcycgZG9lcyBub3QgcG9pbnQgdG8gYSBjb21taXQiCiBtc2dzdHIgIk9iamVrdCAnJXMnIHplaWd0IGF1ZiBrZWluZW4gQ29tbWl0IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY2OQorIzogYnVpbHRpbi9icmFuY2guYzo2NzUKIG1zZ2lkICJzb21lIHJlZnMgY291bGQgbm90IGJlIHJlYWQiCiBtc2dzdHIgIktvbm50ZSBlaW5pZ2UgUmVmZXJlbnplbiBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2ODIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Njg4CiBtc2dpZCAiY2Fubm90IHJlbmFtZSB0aGUgY3VycmVudCBicmFuY2ggd2hpbGUgbm90IG9uIGFueS4iCiBtc2dzdHIgIiIKICJLYW5uIGFrdHVlbGxlbiBCcmFuY2ggbmljaHQgdW1iZW5lbm5lbiwgc29sYW5nZSBTaWUgc2ljaCBhdWYga2VpbmVtIGJlZmluZGVuLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2OTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Njk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgYnJhbmNoIG5hbWU6ICclcyciCiBtc2dzdHIgIlVuZ8O8bHRpZ2VyIEJyYW5jaG5hbWU6ICclcyciCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzA3CisjOiBidWlsdGluL2JyYW5jaC5jOjcxMwogbXNnaWQgIkJyYW5jaCByZW5hbWUgZmFpbGVkIgogbXNnc3RyICJVbWJlbmVubnVuZyBkZXMgQnJhbmNoZXMgZmVobGdlc2NobGFnZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzExCisjOiBidWlsdGluL2JyYW5jaC5jOjcxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWVkIGEgbWlzbmFtZWQgYnJhbmNoICclcycgYXdheSIKIG1zZ3N0ciAiZmFsc2NoIGJlbmFubnRlbiBCcmFuY2ggJyVzJyB1bWJlbmFubnQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzE1CisjOiBidWlsdGluL2JyYW5jaC5jOjcyMQogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggcmVuYW1lZCB0byAlcywgYnV0IEhFQUQgaXMgbm90IHVwZGF0ZWQhIgogbXNnc3RyICJCcmFuY2ggdW1iZW5hbm50IHp1ICVzLCBhYmVyIEhFQUQgaXN0IG5pY2h0IGFrdHVhbGlzaWVydCEiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzIyCisjOiBidWlsdGluL2JyYW5jaC5jOjcyOAogbXNnaWQgIkJyYW5jaCBpcyByZW5hbWVkLCBidXQgdXBkYXRlIG9mIGNvbmZpZy1maWxlIGZhaWxlZCIKIG1zZ3N0ciAiIgogIkJyYW5jaCBpc3QgdW1iZW5hbm50LCBhYmVyIGRpZSBBa3R1YWxpc2llcnVuZyBkZXIgS29uZmlndXJhdGlvbnNkYXRlaSBpc3QgIgogImZlaGxnZXNjaGxhZ2VuLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3MzcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIm1hbGZvcm1lZCBvYmplY3QgbmFtZSAlcyIKIG1zZ3N0ciAiTWlzc2dlYmlsZGV0ZXIgT2JqZWt0bmFtZSAlcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NjEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCB3cml0ZSBicmFuY2ggZGVzY3JpcHRpb24gdGVtcGxhdGU6ICVzIgogbXNnc3RyICJLb25udGUgQmVzY2hyZWlidW5nc3ZvcmxhZ2UgZsO8ciBCcmFuY2ggbmljaHQgc2NocmVpYmVuOiAlcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk3CiBtc2dpZCAiR2VuZXJpYyBvcHRpb25zIgogbXNnc3RyICJBbGxnZW1laW5lIE9wdGlvbmVuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5MworIzogYnVpbHRpbi9icmFuY2guYzo3OTkKIG1zZ2lkICJzaG93IGhhc2ggYW5kIHN1YmplY3QsIGdpdmUgdHdpY2UgZm9yIHVwc3RyZWFtIGJyYW5jaCIKIG1zZ3N0ciAiWmVpZ3QgSGFzaCB1bmQgQmV0cmVmZjsgLXZ2OiB6dXPDpHR6bGljaCBVcHN0cmVhbS1CcmFuY2giCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk0CisjOiBidWlsdGluL2JyYW5jaC5jOjgwMAogbXNnaWQgInN1cHByZXNzIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMiCiBtc2dzdHIgInVudGVyZHLDvGNrdCBJbmZvcm1hdGlvbnNtZWxkdW5nZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk1CisjOiBidWlsdGluL2JyYW5jaC5jOjgwMQogbXNnaWQgInNldCB1cCB0cmFja2luZyBtb2RlIChzZWUgZ2l0LXB1bGwoMSkpIgogbXNnc3RyICJzdGVsbHQgZGVuIMOcYmVybmFobWVtb2R1cyBlaW4gKHNpZWhlIGdpdC1wdWxsKDEpKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAzCiBtc2dpZCAiY2hhbmdlIHVwc3RyZWFtIGluZm8iCiBtc2dzdHIgIsOkbmRlcnQgSW5mb3JtYXRpb25lbiB6dW0gVXBzdHJlYW0tQnJhbmNoIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwMQorIzogYnVpbHRpbi9icmFuY2guYzo4MDcKIG1zZ2lkICJ1c2UgY29sb3JlZCBvdXRwdXQiCiBtc2dzdHIgInZlcndlbmRldCBmYXJibGljaGUgQXVzZ2FiZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAyCisjOiBidWlsdGluL2JyYW5jaC5jOjgwOAogbXNnaWQgImFjdCBvbiByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMiCiBtc2dzdHIgIndpcmt0IGF1ZiBSZW1vdGUtVHJhY2tpbmctQnJhbmNoZXMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA1IGJ1aWx0aW4vYnJhbmNoLmM6ODExIGJ1aWx0aW4vYnJhbmNoLmM6ODMyCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzOCBidWlsdGluL2NvbW1pdC5jOjE0MzMgYnVpbHRpbi9jb21taXQuYzoxNDM0Ci0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzUgYnVpbHRpbi9jb21taXQuYzoxNDM2IGJ1aWx0aW4vdGFnLmM6NDY4CisjOiBidWlsdGluL2JyYW5jaC5jOjgxMSBidWlsdGluL2JyYW5jaC5jOjgxNyBidWlsdGluL2JyYW5jaC5jOjgzOAorIzogYnVpbHRpbi9icmFuY2guYzo4NDQgYnVpbHRpbi9jb21taXQuYzoxNDYwIGJ1aWx0aW4vY29tbWl0LmM6MTQ2MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDYyIGJ1aWx0aW4vY29tbWl0LmM6MTQ2MyBidWlsdGluL3RhZy5jOjQ2OAogbXNnaWQgImNvbW1pdCIKIG1zZ3N0ciAiQ29tbWl0IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNiBidWlsdGluL2JyYW5jaC5jOjgxMgorIzogYnVpbHRpbi9icmFuY2guYzo4MTIgYnVpbHRpbi9icmFuY2guYzo4MTgKIG1zZ2lkICJwcmludCBvbmx5IGJyYW5jaGVzIHRoYXQgY29udGFpbiB0aGUgY29tbWl0IgogbXNnc3RyICJnaWJ0IG51ciBCcmFuY2hlcyBhdXMsIHdlbGNoZSBkaWVzZW4gQ29tbWl0IGJlaW5oYWx0ZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE4CisjOiBidWlsdGluL2JyYW5jaC5jOjgyNAogbXNnaWQgIlNwZWNpZmljIGdpdC1icmFuY2ggYWN0aW9uczoiCiBtc2dzdHIgInNwZXppZmlzY2hlIEFrdGlvbmVuIGbDvHIgXCJnaXQtYnJhbmNoXCI6IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgxOQorIzogYnVpbHRpbi9icmFuY2guYzo4MjUKIG1zZ2lkICJsaXN0IGJvdGggcmVtb3RlLXRyYWNraW5nIGFuZCBsb2NhbCBicmFuY2hlcyIKIG1zZ3N0ciAibGlzdGV0IFJlbW90ZS1UcmFja2luZyB1bmQgbG9rYWxlIEJyYW5jaGVzIGF1ZiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI3CiBtc2dpZCAiZGVsZXRlIGZ1bGx5IG1lcmdlZCBicmFuY2giCiBtc2dzdHIgImVudGZlcm50IHZvbGxzdMOkbmRpZyB6dXNhbW1lbmdlZsO8aHJ0ZW4gQnJhbmNoIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyMgorIzogYnVpbHRpbi9icmFuY2guYzo4MjgKIG1zZ2lkICJkZWxldGUgYnJhbmNoIChldmVuIGlmIG5vdCBtZXJnZWQpIgogbXNnc3RyICJsw7ZzY2h0IEJyYW5jaCAoYXVjaCB3ZW5uIG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnQpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyMworIzogYnVpbHRpbi9icmFuY2guYzo4MjkKIG1zZ2lkICJtb3ZlL3JlbmFtZSBhIGJyYW5jaCBhbmQgaXRzIHJlZmxvZyIKIG1zZ3N0ciAidmVyc2NoaWVidC9iZW5lbm50IGVpbmVuIEJyYW5jaCB1bmQgZGVzc2VuIFJlZmxvZyB1bSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMwCiBtc2dpZCAibW92ZS9yZW5hbWUgYSBicmFuY2gsIGV2ZW4gaWYgdGFyZ2V0IGV4aXN0cyIKIG1zZ3N0ciAiIgogInZlcnNjaGllYnQvYmVuZW5udCBlaW5lbiBCcmFuY2ggdW0sIGF1Y2ggd2VubiBkYXMgWmllbCBiZXJlaXRzIGV4aXN0aWVydCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMxCiBtc2dpZCAibGlzdCBicmFuY2ggbmFtZXMiCiBtc2dzdHIgImxpc3RldCBCcmFuY2huYW1lbiBhdWYiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI2CisjOiBidWlsdGluL2JyYW5jaC5jOjgzMgogbXNnaWQgImNyZWF0ZSB0aGUgYnJhbmNoJ3MgcmVmbG9nIgogbXNnc3RyICJlcnpldWd0IGRhcyBSZWZsb2cgZGVzIEJyYW5jaGVzIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyOAorIzogYnVpbHRpbi9icmFuY2guYzo4MzQKIG1zZ2lkICJlZGl0IHRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIGJyYW5jaCIKIG1zZ3N0ciAiYmVhcmJlaXRldCBkaWUgQmVzY2hyZWlidW5nIGbDvHIgZGVuIEJyYW5jaCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM1CiBtc2dpZCAiZm9yY2UgY3JlYXRpb24gKHdoZW4gYWxyZWFkeSBleGlzdHMpIgogbXNnc3RyICJlcnpldWdlIGF1Y2gsIHdlbm4gZGVyIEJyYW5jaCBiZXJlaXRzIGV4aXN0aWVydCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MzIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM4CiBtc2dpZCAicHJpbnQgb25seSBub3QgbWVyZ2VkIGJyYW5jaGVzIgogbXNnc3RyICJnaWJ0IG51ciBCcmFuY2hlcyBhdXMsIGRpZSBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0IHNpbmQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM4CisjOiBidWlsdGluL2JyYW5jaC5jOjg0NAogbXNnaWQgInByaW50IG9ubHkgbWVyZ2VkIGJyYW5jaGVzIgogbXNnc3RyICJnaWJ0IG51ciBCcmFuY2hlcyBhdXMsIGRpZSB6dXNhbW1lbmdlZsO8aHJ0IHNpbmQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODQyCisjOiBidWlsdGluL2JyYW5jaC5jOjg0OAogbXNnaWQgImxpc3QgYnJhbmNoZXMgaW4gY29sdW1ucyIKIG1zZ3N0ciAibGlzdGV0IEJyYW5jaGVzIGluIFNwYWx0ZW4gYXVmIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg1NQorIzogYnVpbHRpbi9icmFuY2guYzo4NjEKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSBIRUFEIGFzIGEgdmFsaWQgcmVmLiIKIG1zZ3N0ciAiS29ubnRlIEhFQUQgbmljaHQgYWxzIGfDvGx0aWdlIFJlZmVyZW56IGF1ZmzDtnNlbi4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYwIGJ1aWx0aW4vY2xvbmUuYzo2MzAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODY2IGJ1aWx0aW4vY2xvbmUuYzo2MjkKIG1zZ2lkICJIRUFEIG5vdCBmb3VuZCBiZWxvdyByZWZzL2hlYWRzISIKIG1zZ3N0ciAiSEVBRCB3dXJkZSBuaWNodCB1bnRlciBcInJlZnMvaGVhZHNcIiBnZWZ1bmRlbiEiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODgzCisjOiBidWlsdGluL2JyYW5jaC5jOjg5MAogbXNnaWQgIi0tY29sdW1uIGFuZCAtLXZlcmJvc2UgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiRGllIE9wdGlvbmVuIC0tY29sdW1uIHVuZCAtLXZlcmJvc2Ugc2luZCBpbmtvbXBhdGliZWwuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg4OSBidWlsdGluL2JyYW5jaC5jOjkyOAorIzogYnVpbHRpbi9icmFuY2guYzo4OTYgYnVpbHRpbi9icmFuY2guYzo5MzUKIG1zZ2lkICJicmFuY2ggbmFtZSByZXF1aXJlZCIKIG1zZ3N0ciAiQnJhbmNobmFtZSBlcmZvcmRlcmxpY2giCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA0CisjOiBidWlsdGluL2JyYW5jaC5jOjkxMQogbXNnaWQgIkNhbm5vdCBnaXZlIGRlc2NyaXB0aW9uIHRvIGRldGFjaGVkIEhFQUQiCiBtc2dzdHIgInp1IGxvc2dlbMO2c3RlbSBIRUFEIGthbm4ga2VpbmUgQmVzY2hyZWlidW5nIGhpbnRlcmxlZ3Qgd2VyZGVuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkwOQorIzogYnVpbHRpbi9icmFuY2guYzo5MTYKIG1zZ2lkICJjYW5ub3QgZWRpdCBkZXNjcmlwdGlvbiBvZiBtb3JlIHRoYW4gb25lIGJyYW5jaCIKIG1zZ3N0ciAiQmVzY2hyZWlidW5nIHZvbiBtZWhyIGFscyBlaW5lbSBCcmFuY2gga2FubiBuaWNodCBiZWFyYmVpdGV0IHdlcmRlbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MTYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGNvbW1pdCBvbiBicmFuY2ggJyVzJyB5ZXQuIgogbXNnc3RyICJOb2NoIGtlaW4gQ29tbWl0IGluIEJyYW5jaCAnJXMnLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MTkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTI2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGJyYW5jaCBuYW1lZCAnJXMnLiIKIG1zZ3N0ciAiQnJhbmNoICclcycgbmljaHQgdm9yaGFuZGVuLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MzQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQxCiBtc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgZm9yIGEgcmVuYW1lIG9wZXJhdGlvbiIKIG1zZ3N0ciAienUgdmllbGUgQnJhbmNoZXMgZsO8ciBlaW5lIFVtYmVuZW5uZW4tT3BlcmF0aW9uIGFuZ2VnZWJlbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MzkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQ2CiBtc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgdG8gc2V0IG5ldyB1cHN0cmVhbSIKIG1zZ3N0ciAienUgdmllbGUgQnJhbmNoZXMgYW5nZWdlYmVuIHVtIFVwc3RyZWFtLUJyYW5jaCB6dSBzZXR6ZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQzCisjOiBidWlsdGluL2JyYW5jaC5jOjk1MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiY291bGQgbm90IHNldCB1cHN0cmVhbSBvZiBIRUFEIHRvICVzIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCkBAIC0yOTU0LDQzICszMTI2LDQzIEBACiAiS29ubnRlIGtlaW5lbiBuZXVlbiBVcHN0cmVhbS1CcmFuY2ggdm9uIEhFQUQgenUgJXMgc2V0emVuLCBkYSBkaWVzZXIgYXVmXG4iCiAia2VpbmVuIEJyYW5jaCB6ZWlndC4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQ2IGJ1aWx0aW4vYnJhbmNoLmM6OTY4IGJ1aWx0aW4vYnJhbmNoLmM6OTkwCisjOiBidWlsdGluL2JyYW5jaC5jOjk1MyBidWlsdGluL2JyYW5jaC5jOjk3NSBidWlsdGluL2JyYW5jaC5jOjk5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBzdWNoIGJyYW5jaCAnJXMnIgogbXNnc3RyICJLZWluIHNvbGNoZXIgQnJhbmNoICclcyciCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTUwCisjOiBidWlsdGluL2JyYW5jaC5jOjk1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJicmFuY2ggJyVzJyBkb2VzIG5vdCBleGlzdCIKIG1zZ3N0ciAiQnJhbmNoICclcycgZXhpc3RpZXJ0IG5pY2h0IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk2MgorIzogYnVpbHRpbi9icmFuY2guYzo5NjkKIG1zZ2lkICJ0b28gbWFueSBicmFuY2hlcyB0byB1bnNldCB1cHN0cmVhbSIKIG1zZ3N0ciAiIgogInp1IHZpZWxlIEJyYW5jaGVzIGFuZ2VnZWJlbiB1bSBLb25maWd1cmF0aW9uIHp1IFVwc3RyZWFtLUJyYW5jaCB6dSBlbnRmZXJuZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTY2CisjOiBidWlsdGluL2JyYW5jaC5jOjk3MwogbXNnaWQgImNvdWxkIG5vdCB1bnNldCB1cHN0cmVhbSBvZiBIRUFEIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCiBtc2dzdHIgIiIKICJLb25udGUgS29uZmlndXJhdGlvbiB6dSBVcHN0cmVhbS1CcmFuY2ggdm9uIEhFQUQgbmljaHQgZW50ZmVybmVuLCBkYSBkaWVzZXJcbiIKICJhdWYga2VpbmVuIEJyYW5jaCB6ZWlndC4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTcyCisjOiBidWlsdGluL2JyYW5jaC5jOjk3OQogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggJyVzJyBoYXMgbm8gdXBzdHJlYW0gaW5mb3JtYXRpb24iCiBtc2dzdHIgIkJyYW5jaCAnJXMnIGhhdCBrZWluZW4gVXBzdHJlYW0tQnJhbmNoIGdlc2V0enQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTg3CisjOiBidWlsdGluL2JyYW5jaC5jOjk5NAogbXNnaWQgIml0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gY3JlYXRlICdIRUFEJyBtYW51YWxseSIKIG1zZ3N0ciAiJ0hFQUQnIGRhcmYgbmljaHQgbWFudWVsbCBlcnN0ZWxsdCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTkzCisjOiBidWlsdGluL2JyYW5jaC5jOjEwMDAKIG1zZ2lkICItYSBhbmQgLXIgb3B0aW9ucyB0byAnZ2l0IGJyYW5jaCcgZG8gbm90IG1ha2Ugc2Vuc2Ugd2l0aCBhIGJyYW5jaCBuYW1lIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbmVuIC1hIHVuZCAtciBiZWkgJ2dpdCBicmFuY2gnIGvDtm5uZW4gbmljaHQgZ2VtZWltc2FtIG1pdCBlaW5lbSAiCiAiQnJhbmNobmFtZW4gdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTk2CisjOiBidWlsdGluL2JyYW5jaC5jOjEwMDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSAtLXNldC11cHN0cmVhbSBmbGFnIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gQ29uc2lkZXIgdXNpbmcgLS0iCkBAIC0yOTk5LDcgKzMxNzEsNyBAQAogIkRpZSAtLXNldC11cHN0cmVhbSBPcHRpb24gaXN0IHZlcmFsdGV0IHVuZCB3aXJkIGVudGZlcm50LiBCZW51dHplbiBTaWUgLS0iCiAidHJhY2sgb2RlciAtLXNldC11cHN0cmVhbS10b1xuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjEwMTMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAyMAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC0zMDEwLDEyICszMTgyLDEyIEBACiAiV2VubiBTaWUgd29sbHRlbiwgZGFzcyAnJXMnIGRlbiBCcmFuY2ggJyVzJyBhbHMgVXBzdHJlYW0tQnJhbmNoIGhhdCwgZsO8aHJlbiAiCiAiU2llIGF1czpcbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxMDE0CisjOiBidWlsdGluL2JyYW5jaC5jOjEwMjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgIGdpdCBicmFuY2ggLWQgJXNcbiIKIG1zZ3N0ciAiICAgIGdpdCBicmFuY2ggLWQgJXNcbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxMDE1CisjOiBidWlsdGluL2JyYW5jaC5jOjEwMjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgIGdpdCBicmFuY2ggLS1zZXQtdXBzdHJlYW0tdG8gJXNcbiIKIG1zZ3N0ciAiICAgIGdpdCBicmFuY2ggLS1zZXQtdXBzdHJlYW0tdG8gJXNcbiIKQEAgLTMwMzMsNDUgKzMyMDUsNDUgQEAKIG1zZ2lkICJOZWVkIGEgcmVwb3NpdG9yeSB0byB1bmJ1bmRsZS4iCiBtc2dzdHIgIlp1bSBFbnRwYWNrZW4gd2lyZCBlaW4gUmVwb3NpdG9yeSBiZW7DtnRpZ3QuIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6Mjg1CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzEyCiBtc2dpZCAiZ2l0IGNhdC1maWxlICgtdHwtc3wtZXwtcHw8dHlwZT58LS10ZXh0Y29udikgPG9iamVjdD4iCiBtc2dzdHIgImdpdCBjYXQtZmlsZSAoLXR8LXN8LWV8LXB8PEFydD58LS10ZXh0Y29udikgPE9iamVrdD4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyODYKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMTMKIG1zZ2lkICJnaXQgY2F0LWZpbGUgKC0tYmF0Y2h8LS1iYXRjaC1jaGVjaykgPCA8bGlzdF9vZl9vYmplY3RzPiIKIG1zZ3N0ciAiZ2l0IGNhdC1maWxlICgtLWJhdGNofC0tYmF0Y2gtY2hlY2spIDwgPExpc3RlX3Zvbl9PYmpla3Rlbj4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjMKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTAKIG1zZ2lkICI8dHlwZT4gY2FuIGJlIG9uZSBvZjogYmxvYiwgdHJlZSwgY29tbWl0LCB0YWciCiBtc2dzdHIgIjxBcnQ+IGthbm4gc2VpbjogYmxvYiwgdHJlZSwgY29tbWl0LCB0YWciCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjQKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTEKIG1zZ2lkICJzaG93IG9iamVjdCB0eXBlIgogbXNnc3RyICJ6ZWlndCBPYmpla3RhcnQiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjUKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTIKIG1zZ2lkICJzaG93IG9iamVjdCBzaXplIgogbXNnc3RyICJ6ZWlndCBPYmpla3RncsO2w59lIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MzI3CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzU0CiBtc2dpZCAiZXhpdCB3aXRoIHplcm8gd2hlbiB0aGVyZSdzIG5vIGVycm9yIgogbXNnc3RyICJiZWVuZGV0IG1pdCBSw7xja2dhYmV3ZXJ0IDAsIHdlbm4ga2VpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4gaXN0IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MzI4CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzU1CiBtc2dpZCAicHJldHR5LXByaW50IG9iamVjdCdzIGNvbnRlbnQiCiBtc2dzdHIgImFuc3ByZWNoZW5kZSBBbnplaWdlIGRlcyBPYmpla3RpbmhhbHRlcyIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzMAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1NwogbXNnaWQgImZvciBibG9iIG9iamVjdHMsIHJ1biB0ZXh0Y29udiBvbiBvYmplY3QncyBjb250ZW50IgogbXNnc3RyICJmw7xocnQgZWluZSBUZXh0a29udmVydGllcnVuZyBhdWYgZGVuIEluaGFsdCB2b24gQmxvYi1PYmpla3RlbiBhdXMiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzIKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTkKIG1zZ2lkICJzaG93IGluZm8gYW5kIGNvbnRlbnQgb2Ygb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgIiIKICJBbnplaWdlIHZvbiBJbmZvcm1hdGlvbmVuIHVuZCBJbmhhbHQgdm9uIE9iamVrdGVuLCBnZWxlc2VuIHZvbiBkZXIgU3RhbmRhcmQtIgogIkVpbmdhYmUiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzUKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNjIKIG1zZ2lkICJzaG93IGluZm8gYWJvdXQgb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgIiIKICJBbnplaWdlIHZvbiBJbmZvcm1hdGlvbmVuIMO8YmVyIE9iamVrdGUsIGdlbGVzZW4gdm9uIGRlciBTdGFuZGFyZC1FaW5nYWJlIgpAQCAtMzA5OCwxMCArMzI3MCwxMCBAQAogbXNnc3RyICJsaWVzdCBEYXRlaW5hbWVuIHZvbiBkZXIgU3RhbmRhcmQtRWluZ2FiZSIKIAogIzogYnVpbHRpbi9jaGVjay1hdHRyLmM6MjMgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoyNAotbXNnaWQgImlucHV0IHBhdGhzIGFyZSB0ZXJtaW5hdGVkIGJ5IGEgbnVsbCBjaGFyYWN0ZXIiCi1tc2dzdHIgIkVpbmdhYmVwZmFkZSBzaW5kIGR1cmNoIGVpbiBOVUwgWmVpY2hlbiBhYmdlc2NobG9zc2VuIgorbXNnaWQgInRlcm1pbmF0ZSBpbnB1dCBhbmQgb3V0cHV0IHJlY29yZHMgYnkgYSBOVUwgY2hhcmFjdGVyIgorbXNnc3RyICJzY2hsaWXDn3QgRWludHLDpGdlIHZvbiBFaW4tIHVuZCBBdXNnYWJlIG1pdCBOVUwtWmVpY2hlbiBhYiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOCBidWlsdGluL2NoZWNrb3V0LmM6MTA1NCBidWlsdGluL2djLmM6MTc3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDkwIGJ1aWx0aW4vZ2MuYzoyNTkKIG1zZ2lkICJzdXBwcmVzcyBwcm9ncmVzcyByZXBvcnRpbmciCiBtc2dzdHIgInVudGVyZHLDvGNrdCBGb3J0c2Nocml0dHNhbnplaWdlIgogCkBAIC0zMTA5LDI4ICszMjgxLDMyIEBACiBtc2dpZCAic2hvdyBub24tbWF0Y2hpbmcgaW5wdXQgcGF0aHMiCiBtc2dzdHIgInplaWd0IEVpbmdhYmUtUGZhZGUgb2huZSDDnGJlcmVpbnN0aW1tdW5nZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQzCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjI4Cittc2dpZCAiaWdub3JlIGluZGV4IHdoZW4gY2hlY2tpbmciCittc2dzdHIgImlnbm9yaWVydCBTdGFnaW5nLUFyZWEgYmVpIGRlciBQcsO8ZnVuZyIKKworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTQKIG1zZ2lkICJjYW5ub3Qgc3BlY2lmeSBwYXRobmFtZXMgd2l0aCAtLXN0ZGluIgogbXNnc3RyICJBbmdhYmUgdm9uIFBmYWRuYW1lbiBrYW5uIG5pY2h0IGdlbWVpbnNhbSBtaXQgLS1zdGRpbiB2ZXJ3ZW5kZXQgd2VyZGVuIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0NgorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTcKIG1zZ2lkICIteiBvbmx5IG1ha2VzIHNlbnNlIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAiRGllIE9wdGlvbiAteiBrYW5uIG51ciBtaXQgLS1zdGRpbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDgKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU5CiBtc2dpZCAibm8gcGF0aCBzcGVjaWZpZWQiCiBtc2dzdHIgImtlaW4gUGZhZCBhbmdlZ2ViZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTUyCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2MwogbXNnaWQgIi0tcXVpZXQgaXMgb25seSB2YWxpZCB3aXRoIGEgc2luZ2xlIHBhdGhuYW1lIgogbXNnc3RyICJEaWUgT3B0aW9uIC0tcXVpZXQgaXN0IG51ciBtaXQgZWluZW0gZWluemVsbmVuIFBmYWRuYW1lbiBnw7xsdGlnLiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTQKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTY1CiBtc2dpZCAiY2Fubm90IGhhdmUgYm90aCAtLXF1aWV0IGFuZCAtLXZlcmJvc2UiCiBtc2dzdHIgIiIKICJEaWUgT3B0aW9uZW4gLS1xdWlldCB1bmQgLS12ZXJib3NlIGvDtm5uZW4gbmljaHQgZ2VtZWluc2FtIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjgKIG1zZ2lkICItLW5vbi1tYXRjaGluZyBpcyBvbmx5IHZhbGlkIHdpdGggLS12ZXJib3NlIgogbXNnc3RyICItLW5vbi1tYXRjaGluZyBpc3QgbnVyIG1pdCAtLXZlcmJvc2UgenVsw6Rzc2lnIgogCkBAIC0zMjA2LDEwNyArMzM4MiwxMDcgQEAKIG1zZ2lkICJnaXQgY2hlY2tvdXQgW29wdGlvbnNdIFs8YnJhbmNoPl0gLS0gPGZpbGU+Li4uIgogbXNnc3RyICJnaXQgY2hlY2tvdXQgW09wdGlvbmVuXSBbPEJyYW5jaD5dIC0tIDxEYXRlaT4uLi4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTcgYnVpbHRpbi9jaGVja291dC5jOjE1MAorIzogYnVpbHRpbi9jaGVja291dC5jOjExNCBidWlsdGluL2NoZWNrb3V0LmM6MTQ3CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIG91ciB2ZXJzaW9uIgogbXNnc3RyICJQZmFkICclcycgaGF0IG5pY2h0IHVuc2VyZSBWZXJzaW9uLiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExOSBidWlsdGluL2NoZWNrb3V0LmM6MTUyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgdGhlaXIgdmVyc2lvbiIKIG1zZ3N0ciAiUGZhZCAnJXMnIGhhdCBuaWNodCBkZXJlbiBWZXJzaW9uLiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEzNQorIzogYnVpbHRpbi9jaGVja291dC5jOjEzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBhbGwgbmVjZXNzYXJ5IHZlcnNpb25zIgogbXNnc3RyICJQZmFkICclcycgaGF0IG5pY2h0IGFsbGUgbm90d2VuZGlnZW4gVmVyc2lvbmVuLiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjE3OQorIzogYnVpbHRpbi9jaGVja291dC5jOjE3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBuZWNlc3NhcnkgdmVyc2lvbnMiCiBtc2dzdHIgIlBmYWQgJyVzJyBoYXQgbmljaHQgZGllIG5vdHdlbmRpZ2VuIFZlcnNpb25lbi4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxOTYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxOTMKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnOiBjYW5ub3QgbWVyZ2UiCiBtc2dzdHIgIlBmYWQgJyVzJzoga2FubiBuaWNodCB6dXNhbW1lbmbDvGhyZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGFkZCBtZXJnZSByZXN1bHQgZm9yICclcyciCiBtc2dzdHIgIktvbm50ZSBNZXJnZS1FcmdlYm5pcyB2b24gJyVzJyBuaWNodCBoaW56dWbDvGdlbi4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzcgYnVpbHRpbi9jaGVja291dC5jOjI0MCBidWlsdGluL2NoZWNrb3V0LmM6MjQzCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjMyIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzUgYnVpbHRpbi9jaGVja291dC5jOjIzOAorIzogYnVpbHRpbi9jaGVja291dC5jOjI0MQogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggdXBkYXRpbmcgcGF0aHMiCiBtc2dzdHIgIiclcycga2FubiBuaWNodCBtaXQgUGZhZGVuIHZlcndlbmRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDkgYnVpbHRpbi9jaGVja291dC5jOjI1MgorIzogYnVpbHRpbi9jaGVja291dC5jOjI0NCBidWlsdGluL2NoZWNrb3V0LmM6MjQ3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAlcyIKIG1zZ3N0ciAiJyVzJyBrYW5uIG5pY2h0IG1pdCAnJXMnIHZlcndlbmRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHVwZGF0ZSBwYXRocyBhbmQgc3dpdGNoIHRvIGJyYW5jaCAnJXMnIGF0IHRoZSBzYW1lIHRpbWUuIgogbXNnc3RyICIiCiAiS2FubiBuaWNodCBnbGVpY2h6ZWl0aWcgUGZhZGUgYWt0dWFsaXNpZXJlbiB1bmQgenUgQnJhbmNoICclcycgd2VjaHNlbG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNjYgYnVpbHRpbi9jaGVja291dC5jOjQ1OAorIzogYnVpbHRpbi9jaGVja291dC5jOjI2MSBidWlsdGluL2NoZWNrb3V0LmM6NDUxCiBtc2dpZCAiY29ycnVwdCBpbmRleCBmaWxlIgogbXNnc3RyICJiZXNjaMOkZGlndGUgU3RhZ2luZy1BcmVhLURhdGVpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MzI5IGJ1aWx0aW4vY2hlY2tvdXQuYzozMzYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzozMjIgYnVpbHRpbi9jaGVja291dC5jOjMyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgaXMgdW5tZXJnZWQiCiBtc2dzdHIgIlBmYWQgJyVzJyBpc3QgbmljaHQgenVzYW1tZW5nZWbDvGhydC4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo0ODAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo0NzMKIG1zZ2lkICJ5b3UgbmVlZCB0byByZXNvbHZlIHlvdXIgY3VycmVudCBpbmRleCBmaXJzdCIKIG1zZ3N0ciAiU2llIG3DvHNzZW4genVlcnN0IElocmUgYWt0dWVsbGUgU3RhZ2luZy1BcmVhIGF1ZmzDtnNlbi4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MDEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo1OTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2FuIG5vdCBkbyByZWZsb2cgZm9yICclcydcbiIKIG1zZ3N0ciAiS29ubnRlIFwicmVmbG9nXCIgZsO8ciAnJXMnIG5pY2h0IGR1cmNoZsO8aHJlblxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjM5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjMyCiBtc2dpZCAiSEVBRCBpcyBub3cgYXQiCiBtc2dzdHIgIkhFQUQgaXN0IGpldHp0IGJlaSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0NgorIzogYnVpbHRpbi9jaGVja291dC5jOjYzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZXNldCBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICJTZXR6ZSBCcmFuY2ggJyVzJyBuZXVcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0OQorIzogYnVpbHRpbi9jaGVja291dC5jOjY0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJBbHJlYWR5IG9uICclcydcbiIKIG1zZ3N0ciAiQmVyZWl0cyBhdWYgJyVzJ1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGFuZCByZXNldCBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICJHZXdlY2hzZWx0IHp1IHVtZ2VzZXR6dGVuIEJyYW5jaCAnJXMnXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTUgYnVpbHRpbi9jaGVja291dC5jOjk5NworIzogYnVpbHRpbi9jaGVja291dC5jOjY0OCBidWlsdGluL2NoZWNrb3V0LmM6MTAzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBhIG5ldyBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICJHZXdlY2hzZWx0IHp1IGVpbmVtIG5ldWVtIEJyYW5jaCAnJXMnXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYnJhbmNoICclcydcbiIKIG1zZ3N0ciAiR2V3ZWNoc2VsdCB6dSBCcmFuY2ggJyVzJ1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzEzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzA2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAuLi4gYW5kICVkIG1vcmUuXG4iCiBtc2dzdHIgIiAuLi4gdW5kICVkIHdlaXRlcmUuXG4iCiAKICMuIFRoZSBzaW5ndWxhciB2ZXJzaW9uCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzE5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJXYXJuaW5nOiB5b3UgYXJlIGxlYXZpbmcgJWQgY29tbWl0IGJlaGluZCwgbm90IGNvbm5lY3RlZCB0b1xuIgpAQCAtMzMyOSw3ICszNTA1LDcgQEAKICJcbiIKICIlc1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzM3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJJZiB5b3Ugd2FudCB0byBrZWVwIHRoZW0gYnkgY3JlYXRpbmcgYSBuZXcgYnJhbmNoLCB0aGlzIG1heSBiZSBhIGdvb2QgdGltZVxuIgpAQCAtMzM0NCwxMzYgKzM1MjAsMTQwIEBACiAiIGdpdCBicmFuY2ggbmV1ZXJfYnJhbmNoX25hbWUgJXNcbiIKICJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc2NworIzogYnVpbHRpbi9jaGVja291dC5jOjc2MAogbXNnaWQgImludGVybmFsIGVycm9yIGluIHJldmlzaW9uIHdhbGsiCiBtc2dzdHIgImludGVybmVyIEZlaGxlciBpbSBSZXZpc2lvbnNnYW5nIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzcxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzY0CiBtc2dpZCAiUHJldmlvdXMgSEVBRCBwb3NpdGlvbiB3YXMiCiBtc2dzdHIgIlZvcmhlcmlnZSBQb3NpdGlvbiB2b24gSEVBRCB3YXIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTggYnVpbHRpbi9jaGVja291dC5jOjk5MgorIzogYnVpbHRpbi9jaGVja291dC5jOjc5MSBidWlsdGluL2NoZWNrb3V0LmM6MTAyOAogbXNnaWQgIllvdSBhcmUgb24gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgIlNpZSBzaW5kIGF1ZiBlaW5lbSBCcmFuY2gsIGRlciBub2NoIGdlYm9yZW4gd2lyZCIKIAotIy4gY2FzZSAoMSkKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MjgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAib25seSBvbmUgcmVmZXJlbmNlIGV4cGVjdGVkLCAlZCBnaXZlbi4iCittc2dzdHIgIm51ciBlaW5lIFJlZmVyZW56IGVyd2FydGV0LCAlZCBnZWdlYmVuLiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjk3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHJlZmVyZW5jZTogJXMiCiBtc2dzdHIgIlVuZ8O8bHRpZ2UgUmVmZXJlbno6ICVzIgogCiAjLiBjYXNlICgxKTogd2FudCBhIHRyZWUKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5NjcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSBpcyBub3QgYSB0cmVlOiAlcyIKIG1zZ3N0ciAiUmVmZXJlbnogaXN0IGtlaW4gXCJUcmVlXCItT2JqZWt0OiAlcyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQyCiBtc2dpZCAicGF0aHMgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCiBtc2dzdHIgIlBmYWRlIGvDtm5uZW4gbmljaHQgYmVpbSBXZWNoc2VsbiB2b24gQnJhbmNoZXMgdmVyd2VuZGV0IHdlcmRlbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDkgYnVpbHRpbi9jaGVja291dC5jOjEwMTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCiBtc2dzdHIgIiclcycga2FubiBuaWNodCBiZWltIFdlY2hzZWxuIHZvbiBCcmFuY2hlcyB2ZXJ3ZW5kZXQgd2VyZGVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAxNyBidWlsdGluL2NoZWNrb3V0LmM6MTAyMCBidWlsdGluL2NoZWNrb3V0LmM6MTAyNQotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMjgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU2IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NAogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggJyVzJyIKIG1zZ3N0ciAiJyVzJyBrYW5uIG5pY2h0IG1pdCAnJXMnIHZlcndlbmRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDMzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgc3dpdGNoIGJyYW5jaCB0byBhIG5vbi1jb21taXQgJyVzJyIKIG1zZ3N0ciAiS2FubiBCcmFuY2ggbmljaHQgenUgTmljaHQtQ29tbWl0ICclcycgd2VjaHNlbG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU3IGJ1aWx0aW4vY2xvbmUuYzo4OQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTEgYnVpbHRpbi9jaGVja291dC5jOjEwOTMgYnVpbHRpbi9jbG9uZS5jOjg4CiAjOiBidWlsdGluL3JlbW90ZS5jOjE2OSBidWlsdGluL3JlbW90ZS5jOjE3MQogbXNnaWQgImJyYW5jaCIKIG1zZ3N0ciAiQnJhbmNoIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTIKIG1zZ2lkICJjcmVhdGUgYW5kIGNoZWNrb3V0IGEgbmV3IGJyYW5jaCIKIG1zZ3N0ciAiZXJ6ZXVndCB1bmQgY2hlY2t0IGVpbmVuIG5ldWVuIEJyYW5jaCBhdXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5NAogbXNnaWQgImNyZWF0ZS9yZXNldCBhbmQgY2hlY2tvdXQgYSBicmFuY2giCiBtc2dzdHIgImVyemV1Z3Qvc2V0enQgdW0gdW5kIGNoZWNrdCBlaW5lbiBCcmFuY2ggYXVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTUKIG1zZ2lkICJjcmVhdGUgcmVmbG9nIGZvciBuZXcgYnJhbmNoIgogbXNnc3RyICJlcnpldWd0IGRhcyBSZWZsb2cgZsO8ciBkZW4gbmV1ZW4gQnJhbmNoIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTYKIG1zZ2lkICJkZXRhY2ggdGhlIEhFQUQgYXQgbmFtZWQgY29tbWl0IgogbXNnc3RyICJzZXR6dCBIRUFEIHp1IGJlbmFubnRlbSBDb21taXQiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5NwogbXNnaWQgInNldCB1cHN0cmVhbSBpbmZvIGZvciBuZXcgYnJhbmNoIgogbXNnc3RyICJzZXR6dCBJbmZvcm1hdGlvbmVuIHp1bSBVcHN0cmVhbS1CcmFuY2ggZsO8ciBkZW4gbmV1ZW4gQnJhbmNoIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTkKIG1zZ2lkICJuZXcgYnJhbmNoIgogbXNnc3RyICJuZXVlciBCcmFuY2giCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5OQogbXNnaWQgIm5ldyB1bnBhcmVudGVkIGJyYW5jaCIKIG1zZ3N0ciAibmV1ZXIgQnJhbmNoIG9obmUgRWx0ZXJuLUNvbW1pdCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAwCiBtc2dpZCAiY2hlY2tvdXQgb3VyIHZlcnNpb24gZm9yIHVubWVyZ2VkIGZpbGVzIgogbXNnc3RyICJjaGVja3QgdW5zZXJlIFZhcmlhbnRlIGbDvHIgbmljaHQgenVzYW1tZW5nZWbDvGhydGUgRGF0ZWllbiBhdXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwMgogbXNnaWQgImNoZWNrb3V0IHRoZWlyIHZlcnNpb24gZm9yIHVubWVyZ2VkIGZpbGVzIgogbXNnc3RyICJjaGVja3QgaWhyZSBWYXJpYW50ZSBmw7xyIG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnRlIERhdGVpZW4gYXVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2OAorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDQKIG1zZ2lkICJmb3JjZSBjaGVja291dCAodGhyb3cgYXdheSBsb2NhbCBtb2RpZmljYXRpb25zKSIKIG1zZ3N0ciAiZXJ6d2luZ3QgQXVzY2hlY2tlbiAodmVyd2lyZnQgbG9rYWxlIMOEbmRlcnVuZ2VuKSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTA1CiBtc2dpZCAicGVyZm9ybSBhIDMtd2F5IG1lcmdlIHdpdGggdGhlIG5ldyBicmFuY2giCiBtc2dzdHIgImbDvGhydCBlaW5lbiAzLVdlZ2UtTWVyZ2UgbWl0IGRlbSBuZXVlbiBCcmFuY2ggYXVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MCBidWlsdGluL21lcmdlLmM6MjMyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwNiBidWlsdGluL21lcmdlLmM6MjMyCiBtc2dpZCAidXBkYXRlIGlnbm9yZWQgZmlsZXMgKGRlZmF1bHQpIgogbXNnc3RyICJha3R1YWxpc2llcnQgaWdub3JpZXJ0ZSBEYXRlaWVuIChTdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcxIGJ1aWx0aW4vbG9nLmM6MTIwOCBwYXJzZS1vcHRpb25zLmg6MjQ5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwNyBidWlsdGluL2xvZy5jOjEyMjggcGFyc2Utb3B0aW9ucy5oOjI1MQogbXNnaWQgInN0eWxlIgogbXNnc3RyICJTdGlsIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MgorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDgKIG1zZ2lkICJjb25mbGljdCBzdHlsZSAobWVyZ2Ugb3IgZGlmZjMpIgogbXNnc3RyICJLb25mbGlrdHN0aWwgKG1lcmdlIG9kZXIgZGlmZjMpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3NQorIzogYnVpbHRpbi9jaGVja291dC5jOjExMTEKIG1zZ2lkICJkbyBub3QgbGltaXQgcGF0aHNwZWNzIHRvIHNwYXJzZSBlbnRyaWVzIG9ubHkiCiBtc2dzdHIgIlBmYWRzcGV6aWZpa2F0aW9uZW4gaWdub3JpZXJlbiBFaW5zdGVsbHVuZ2VuIHp1bSBwYXJ0aWVsbGVuIEF1c2NoZWNrZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDc3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTExMwogbXNnaWQgInNlY29uZCBndWVzcyAnZ2l0IGNoZWNrb3V0IG5vLXN1Y2gtYnJhbmNoJyIKIG1zZ3N0ciAic2Vjb25kIGd1ZXNzICdnaXQgY2hlY2tvdXQgbm8tc3VjaC1icmFuY2gnIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwMQorIzogYnVpbHRpbi9jaGVja291dC5jOjExMzYKIG1zZ2lkICItYiwgLUIgYW5kIC0tb3JwaGFuIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtYiwgLUIgdW5kIC0tb3JwaGFuIHNjaGxpZcOfZW4gc2ljaCBnZWdlbnNlaXRpZyBhdXMuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTExOAorIzogYnVpbHRpbi9jaGVja291dC5jOjExNTMKIG1zZ2lkICItLXRyYWNrIG5lZWRzIGEgYnJhbmNoIG5hbWUiCiBtc2dzdHIgIkJlaSBkZXIgT3B0aW9uIC0tdHJhY2sgbXVzcyBlaW4gQnJhbmNobmFtZSBhbmdlZ2ViZW4gd2VyZGVuLiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMjUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYwCiBtc2dpZCAiTWlzc2luZyBicmFuY2ggbmFtZTsgdHJ5IC1iIgogbXNnc3RyICJWZXJtaXNzZSBCcmFuY2huYW1lbjsgdmVyc3VjaGVuIFNpZSAtYiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNjAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTk3CiBtc2dpZCAiaW52YWxpZCBwYXRoIHNwZWNpZmljYXRpb24iCiBtc2dzdHIgInVuZ8O8bHRpZ2UgUGZhZHNwZXppZmlrYXRpb24iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTY3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTIwNAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IHVwZGF0ZSBwYXRocyBhbmQgc3dpdGNoIHRvIGJyYW5jaCAnJXMnIGF0IHRoZSBzYW1lIHRpbWUuXG4iCkBAIC0zNDgzLDEyICszNjYzLDEyIEBACiAiSGFiZW4gU2llIGJlYWJzaWNodGlndCAnJXMnIGF1c3p1Y2hlY2tlbiwgd2VsY2hlciBuaWNodCBhbHMgQ29tbWl0IGF1ZmdlbMO2c3QgIgogIndlcmRlbiBrYW5uPyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNzIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMjA5CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCBjaGVja291dDogLS1kZXRhY2ggZG9lcyBub3QgdGFrZSBhIHBhdGggYXJndW1lbnQgJyVzJyIKIG1zZ3N0ciAiZ2l0IGNoZWNrb3V0OiAtLWRldGFjaCBuaW1tdCBrZWluIFBmYWQtQXJndW1lbnQgJyVzJyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNzYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMjEzCiBtc2dpZCAiIgogImdpdCBjaGVja291dDogLS1vdXJzLy0tdGhlaXJzLCAtLWZvcmNlIGFuZCAtLW1lcmdlIGFyZSBpbmNvbXBhdGlibGUgd2hlblxuIgogImNoZWNraW5nIG91dCBvZiB0aGUgaW5kZXguIgpAQCAtMzQ5NiwzOCArMzY3NiwzOCBAQAogImdpdCBjaGVja291dDogLS1vdXJzLy0tdGhlaXJzLCAtLWZvcmNlIHVuZCAtLW1lcmdlIHNpbmQgaW5rb21wYXRpYmVsIHdlbm5cbiIKICJTaWUgYXVzIGRlciBTdGFnaW5nLUFyZWEgYXVzY2hlY2tlbi4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNQorIzogYnVpbHRpbi9jbGVhbi5jOjI2CiBtc2dpZCAiIgogImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIKIG1zZ3N0ciAiIgogImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxNdXN0ZXI+XSBbLXggfCAtWF0gWy0tXSA8UGZhZGU+Li4uIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjkKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlc1xuIgogbXNnc3RyICJMw7ZzY2hlICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzozMAorIzogYnVpbHRpbi9jbGVhbi5jOjMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvdWxkIHJlbW92ZSAlc1xuIgogbXNnc3RyICJXw7xyZGUgJXMgbMO2c2NoZW5cbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjMxCisjOiBidWlsdGluL2NsZWFuLmM6MzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiU2tpcHBpbmcgcmVwb3NpdG9yeSAlc1xuIgogbXNnc3RyICLDnGJlcnNwcmluZ2UgUmVwb3NpdG9yeSAlc1xuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MzIKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMwogIywgYy1mb3JtYXQKIG1zZ2lkICJXb3VsZCBza2lwIHJlcG9zaXRvcnkgJXNcbiIKIG1zZ3N0ciAiV8O8cmRlIFJlcG9zaXRvcnkgJXMgw7xiZXJzcHJpbmdlblxuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MzMKKyM6IGJ1aWx0aW4vY2xlYW4uYzozNAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcmVtb3ZlICVzIgogbXNnc3RyICJGZWhsZXIgYmVpbSBMw7ZzY2hlbiB2b24gJXMiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyOTMKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTQKIG1zZ2lkICIiCiAiUHJvbXB0IGhlbHA6XG4iCiAiMSAgICAgICAgICAtIHNlbGVjdCBhIG51bWJlcmVkIGl0ZW1cbiIKQEAgLTM1MzYsMTAgKzM3MTYsMTAgQEAKIG1zZ3N0ciAiIgogIkVpbmdhYmVoaWxmZTpcbiIKICIxICAgICAgICAgIC0gbnVtbWVyaWVydGVzIEVsZW1lbnQgYXVzd8OkaGxlblxuIgotImZvbyAgICAgICAgLSBFbGVtZW50IGFuaGFuZCBlaW5lcyBlaW5kZXV0aWdlbiBQcmVmaXggYXVzd8OkaGxlblxuIgorImZvbyAgICAgICAgLSBFbGVtZW50IGFuaGFuZCBlaW5lcyBlaW5kZXV0aWdlbiBQcsOkZml4IGF1c3fDpGhsZW5cbiIKICIgICAgICAgICAgIC0gKGxlZXIpIG5pY2h0cyBhdXN3w6RobGVuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6Mjk3CisjOiBidWlsdGluL2NsZWFuLmM6Mjk4CiBtc2dpZCAiIgogIlByb21wdCBoZWxwOlxuIgogIjEgICAgICAgICAgLSBzZWxlY3QgYSBzaW5nbGUgaXRlbVxuIgpAQCAtMzU1NCw0MCArMzczNCw0MCBAQAogIjEgICAgICAgICAgLSBlaW56ZWxuZXMgRWxlbWVudCBhdXN3w6RobGVuXG4iCiAiMy01ICAgICAgICAtIEJlcmVpY2ggdm9uIEVsZW1lbnRlbiBhdXN3w6RobGVuXG4iCiAiMi0zLDYtOSAgICAtIG1laHJlcmUgQmVyZWljaGUgYXVzd8OkaGxlblxuIgotImZvbyAgICAgICAgLSBFbGVtZW50IGFuaGFuZCBlaW5lcyBlaW5kZXV0aWdlbiBQcmVmaXggYXVzd8OkaGxlblxuIgorImZvbyAgICAgICAgLSBFbGVtZW50IGFuaGFuZCBlaW5lcyBlaW5kZXV0aWdlbiBQcsOkZml4IGF1c3fDpGhsZW5cbiIKICItLi4uICAgICAgIC0gYW5nZWdlYmVuZXMgRWxlbWVudCBhYnfDpGhsZW5cbiIKICIqICAgICAgICAgIC0gYWxsZSBFbGVtZW50ZSBhdXN3w6RobGVuXG4iCiAiICAgICAgICAgICAtIChsZWVyKSBBdXN3YWhsIGJlZW5kZW4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo1MTUKKyM6IGJ1aWx0aW4vY2xlYW4uYzo1MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiSHVoICglcyk/IgogbXNnc3RyICJXaWUgYml0dGUgKCVzKT8iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo2NTgKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2NTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW5wdXQgaWdub3JlIHBhdHRlcm5zPj4gIgogbXNnc3RyICJJZ25vcmllci1NdXN0ZXIgZWluZ2ViZW4+PiAiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo2OTUKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2OTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiV0FSTklORzogQ2Fubm90IGZpbmQgaXRlbXMgbWF0Y2hlZCBieTogJXMiCiBtc2dzdHIgIldBUk5VTkc6IEthbm4ga2VpbmUgRWludHLDpGdlIGZpbmRlbiBkaWUgTXVzdGVyIGVudHNwcmVjaGVuOiAlcyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjcxNgorIzogYnVpbHRpbi9jbGVhbi5jOjcxNwogbXNnaWQgIlNlbGVjdCBpdGVtcyB0byBkZWxldGUiCiBtc2dzdHIgIlfDpGhsZW4gU2llIEVpbnRyw6RnZSB6dW0gTMO2c2NoZW4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo3NTYKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVtb3ZlICVzPyAiCiBtc2dzdHIgIiclcycgbMO2c2NoZW4/ICIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjc4MQorIzogYnVpbHRpbi9jbGVhbi5jOjc4MgogbXNnaWQgIkJ5ZS4iCiBtc2dzdHIgIlRzY2jDvHNzLiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjc4OQorIzogYnVpbHRpbi9jbGVhbi5jOjc5MAogbXNnaWQgIiIKICJjbGVhbiAgICAgICAgICAgICAgIC0gc3RhcnQgY2xlYW5pbmdcbiIKICJmaWx0ZXIgYnkgcGF0dGVybiAgIC0gZXhjbHVkZSBpdGVtcyBmcm9tIGRlbGV0aW9uXG4iCkBAIC0zNjA1LDIxICszNzg1LDIxIEBACiAiaGVscCAgICAgICAgICAgICAgICAtIGRpZXNlIE1lbGR1bmcgYW56ZWlnZW5cbiIKICI/ICAgICAgICAgICAgICAgICAgIC0gSGlsZmUgenVyIEF1c3dhaGwgbWl0dGVscyBFaW5nYWJlIGFuemVpZ2VuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6ODE2CisjOiBidWlsdGluL2NsZWFuLmM6ODE3CiBtc2dpZCAiKioqIENvbW1hbmRzICoqKiIKIG1zZ3N0ciAiKioqIEtvbW1hbmRvcyAqKioiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo4MTcKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4MTgKIG1zZ2lkICJXaGF0IG5vdyIKIG1zZ3N0ciAiV2FzIG51biIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjgyNQorIzogYnVpbHRpbi9jbGVhbi5jOjgyNgogbXNnaWQgIldvdWxkIHJlbW92ZSB0aGUgZm9sbG93aW5nIGl0ZW06IgogbXNnaWRfcGx1cmFsICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtczoiCiBtc2dzdHJbMF0gIlfDvHJkZSBkYXMgZm9sZ2VuZGUgRWxlbWVudCBlbnRmZXJuZW46IgogbXNnc3RyWzFdICJXw7xyZGUgZGllIGZvbGdlbmRlbiBFbGVtZW50ZSBlbnRmZXJuZW46IgogCi0jOiBidWlsdGluL2NsZWFuLmM6ODQyCisjOiBidWlsdGluL2NsZWFuLmM6ODQzCiBtc2dpZCAiTm8gbW9yZSBmaWxlcyB0byBjbGVhbiwgZXhpdGluZy4iCiBtc2dzdHIgIktlaW5lIERhdGVpZW4gbWVociB6dW0gTMO2c2NoZW4sIGJlZW5kZS4iCiAKQEAgLTM2MzksOCArMzgxOSw4IEBACiBtc2dpZCAicmVtb3ZlIHdob2xlIGRpcmVjdG9yaWVzIgogbXNnc3RyICJsw7ZzY2h0IGdhbnplIFZlcnplaWNobmlzc2UiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo4ODAgYnVpbHRpbi9kZXNjcmliZS5jOjQyMCBidWlsdGluL2dyZXAuYzo3MTYKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMgYnVpbHRpbi9uYW1lLXJldi5jOjMxNSBidWlsdGluL3Nob3ctcmVmLmM6MTg2CisjOiBidWlsdGluL2NsZWFuLmM6ODgwIGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjAgYnVpbHRpbi9ncmVwLmM6NzE4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgzIGJ1aWx0aW4vbmFtZS1yZXYuYzozMTUgYnVpbHRpbi9zaG93LXJlZi5jOjE4NQogbXNnaWQgInBhdHRlcm4iCiBtc2dzdHIgIk11c3RlciIKIApAQCAtMzY4MCw4ICszODYwLDggQEAKIG1zZ2lkICJnaXQgY2xvbmUgW29wdGlvbnNdIFstLV0gPHJlcG8+IFs8ZGlyPl0iCiBtc2dzdHIgImdpdCBjbG9uZSBbT3B0aW9uZW5dIFstLV0gPFJlcG9zaXRvcnk+IFs8VmVyemVpY2huaXM+XSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY0IGJ1aWx0aW4vZmV0Y2guYzo4MiBidWlsdGluL21lcmdlLmM6MjI5Ci0jOiBidWlsdGluL3B1c2guYzo0NjIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NCBidWlsdGluL2ZldGNoLmM6OTYgYnVpbHRpbi9tZXJnZS5jOjIyOQorIzogYnVpbHRpbi9wdXNoLmM6NDc0CiBtc2dpZCAiZm9yY2UgcHJvZ3Jlc3MgcmVwb3J0aW5nIgogbXNnc3RyICJlcnp3aW5ndCBGb3J0c2Nocml0dHNhbnplaWdlIgogCkBAIC0zNjkzLDEyMyArMzg3MywxMjMgQEAKIG1zZ2lkICJjcmVhdGUgYSBiYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgImVyc3RlbGx0IGVpbiBCYXJlLVJlcG9zaXRvcnkiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3MgorIzogYnVpbHRpbi9jbG9uZS5jOjcxCiBtc2dpZCAiY3JlYXRlIGEgbWlycm9yIHJlcG9zaXRvcnkgKGltcGxpZXMgYmFyZSkiCiBtc2dzdHIgImVyc3RlbGx0IGVpbiBTcGllZ2VsYXJjaGl2IChpbXBsaXppZXJ0IC0tYmFyZSkiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NAorIzogYnVpbHRpbi9jbG9uZS5jOjczCiBtc2dpZCAidG8gY2xvbmUgZnJvbSBhIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgInVtIHZvbiBlaW5lbSBsb2thbGVuIFJlcG9zaXRvcnkgenUga2xvbmVuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NQogbXNnaWQgImRvbid0IHVzZSBsb2NhbCBoYXJkbGlua3MsIGFsd2F5cyBjb3B5IgogbXNnc3RyICJ2ZXJ3ZW5kZXQgbG9rYWwga2VpbmUgaGFydGVuIFZlcndlaXNlLCBpbW1lciBLb3BpZW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OAorIzogYnVpbHRpbi9jbG9uZS5jOjc3CiBtc2dpZCAic2V0dXAgYXMgc2hhcmVkIHJlcG9zaXRvcnkiCiBtc2dzdHIgIkVpbnJpY2h0dW5nIGFscyB2ZXJ0ZWlsdGVzIFJlcG9zaXRvcnkiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MCBidWlsdGluL2Nsb25lLmM6ODIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OSBidWlsdGluL2Nsb25lLmM6ODEKIG1zZ2lkICJpbml0aWFsaXplIHN1Ym1vZHVsZXMgaW4gdGhlIGNsb25lIgogbXNnc3RyICJpbml0aWFsaXNpZXJ0IFN1Ym1vZHVsZSBpbSBLbG9uIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODMgYnVpbHRpbi9pbml0LWRiLmM6NDg1CisjOiBidWlsdGluL2Nsb25lLmM6ODIgYnVpbHRpbi9pbml0LWRiLmM6NDg1CiBtc2dpZCAidGVtcGxhdGUtZGlyZWN0b3J5IgogbXNnc3RyICJWb3JsYWdlbnZlcnplaWNobmlzIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODQgYnVpbHRpbi9pbml0LWRiLmM6NDg2CisjOiBidWlsdGluL2Nsb25lLmM6ODMgYnVpbHRpbi9pbml0LWRiLmM6NDg2CiBtc2dpZCAiZGlyZWN0b3J5IGZyb20gd2hpY2ggdGVtcGxhdGVzIHdpbGwgYmUgdXNlZCIKIG1zZ3N0ciAiVmVyemVpY2huaXMsIHZvbiB3ZWxjaGVtIGRpZSBWb3JsYWdlbiB2ZXJ3ZW5kZXQgd2VyZGVuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NQogbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5IgogbXNnc3RyICJyZWZlcmVuemllcnQgUmVwb3NpdG9yeSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg3IGJ1aWx0aW4vY29sdW1uLmM6MjYgYnVpbHRpbi9tZXJnZS1maWxlLmM6NDQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NiBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0CiBtc2dpZCAibmFtZSIKIG1zZ3N0ciAiTmFtZSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg4CisjOiBidWlsdGluL2Nsb25lLmM6ODcKIG1zZ2lkICJ1c2UgPG5hbWU+IGluc3RlYWQgb2YgJ29yaWdpbicgdG8gdHJhY2sgdXBzdHJlYW0iCiBtc2dzdHIgInZlcndlbmRldCA8TmFtZT4gc3RhdHQgJ29yaWdpbicgZsO8ciBVcHN0cmVhbS1SZXBvc2l0b3J5IgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4OQogbXNnaWQgImNoZWNrb3V0IDxicmFuY2g+IGluc3RlYWQgb2YgdGhlIHJlbW90ZSdzIEhFQUQiCiBtc2dzdHIgImNoZWNrdCA8QnJhbmNoPiBhdXMsIGFuc3RhdHQgSEVBRCBkZXMgUmVtb3RlLVJlcG9zaXRvcmllcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkyCisjOiBidWlsdGluL2Nsb25lLmM6OTEKIG1zZ2lkICJwYXRoIHRvIGdpdC11cGxvYWQtcGFjayBvbiB0aGUgcmVtb3RlIgogbXNnc3RyICJQZmFkIHp1IFwiZ2l0LXVwbG9hZC1wYWNrXCIgYXVmIGRlciBHZWdlbnNlaXRlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTMgYnVpbHRpbi9mZXRjaC5jOjgzIGJ1aWx0aW4vZ3JlcC5jOjY2MQorIzogYnVpbHRpbi9jbG9uZS5jOjkyIGJ1aWx0aW4vZmV0Y2guYzo5NyBidWlsdGluL2dyZXAuYzo2NjMKIG1zZ2lkICJkZXB0aCIKIG1zZ3N0ciAiVGllZmUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NAorIzogYnVpbHRpbi9jbG9uZS5jOjkzCiBtc2dpZCAiY3JlYXRlIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGF0IGRlcHRoIgogbXNnc3RyICJlcnN0ZWxsdCBlaW5lbiBmbGFjaGVuIEtsb24gbWl0IGRpZXNlciBUaWVmZSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk2CisjOiBidWlsdGluL2Nsb25lLmM6OTUKIG1zZ2lkICJjbG9uZSBvbmx5IG9uZSBicmFuY2gsIEhFQUQgb3IgLS1icmFuY2giCiBtc2dzdHIgImtsb250IG51ciBlaW5lbiBCcmFuY2gsIEhFQUQgb2RlciAtLWJyYW5jaCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk3IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAorIzogYnVpbHRpbi9jbG9uZS5jOjk2IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAogbXNnaWQgImdpdGRpciIKIG1zZ3N0ciAiLmdpdC1WZXJ6ZWljaG5pcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk4IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NQorIzogYnVpbHRpbi9jbG9uZS5jOjk3IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NQogbXNnaWQgInNlcGFyYXRlIGdpdCBkaXIgZnJvbSB3b3JraW5nIHRyZWUiCiBtc2dzdHIgInNlcGFyaWVydCBHaXQtVmVyemVpY2huaXMgdm9tIEFyYmVpdHN2ZXJ6ZWljaG5pcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk5CisjOiBidWlsdGluL2Nsb25lLmM6OTgKIG1zZ2lkICJrZXk9dmFsdWUiCiBtc2dzdHIgIlNjaGzDvHNzZWw9V2VydCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjEwMAorIzogYnVpbHRpbi9jbG9uZS5jOjk5CiBtc2dpZCAic2V0IGNvbmZpZyBpbnNpZGUgdGhlIG5ldyByZXBvc2l0b3J5IgogbXNnc3RyICJzZXR6dCBLb25maWd1cmF0aW9uIGlubmVyaGFsYiBkZXMgbmV1ZW4gUmVwb3NpdG9yaWVzIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MjUzCisjOiBidWlsdGluL2Nsb25lLmM6MjUyCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5ICclcycgaXMgbm90IGEgbG9jYWwgcmVwb3NpdG9yeS4iCiBtc2dzdHIgIlJlZmVyZW56aWVydGVzIFJlcG9zaXRvcnkgJyVzJyBpc3Qga2VpbiBsb2thbGVzIFJlcG9zaXRvcnkuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzE2CisjOiBidWlsdGluL2Nsb25lLmM6MzE1CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgZGlyZWN0b3J5ICclcyciCiBtc2dzdHIgIkZlaGxlciBiZWltIEVyc3RlbGxlbiB2b24gVmVyemVpY2huaXMgJyVzJyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMxOCBidWlsdGluL2RpZmYuYzo3NworIzogYnVpbHRpbi9jbG9uZS5jOjMxNyBidWlsdGluL2RpZmYuYzo3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc3RhdCAnJXMnIgogbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMyMAorIzogYnVpbHRpbi9jbG9uZS5jOjMxOQogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBleGlzdHMgYW5kIGlzIG5vdCBhIGRpcmVjdG9yeSIKIG1zZ3N0ciAiJXMgZXhpc3RpZXJ0IHVuZCBpc3Qga2VpbiBWZXJ6ZWljaG5pcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMzNAorIzogYnVpbHRpbi9jbG9uZS5jOjMzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc3RhdCAlc1xuIgogbXNnc3RyICJLb25udGUgJXMgbmljaHQgbGVzZW5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM1NgorIzogYnVpbHRpbi9jbG9uZS5jOjM1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGxpbmsgJyVzJyIKIG1zZ3N0ciAiS29ubnRlIFZlcndlaXMgJyVzJyBuaWNodCBlcnN0ZWxsZW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNjAKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNvcHkgZmlsZSB0byAnJXMnIgogbXNnc3RyICJLb25udGUgRGF0ZWkgbmljaHQgbmFjaCAnJXMnIGtvcGllcmVuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzgzCisjOiBidWlsdGluL2Nsb25lLmM6MzgyIGJ1aWx0aW4vY2xvbmUuYzo1NTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZG9uZS5cbiIKIG1zZ3N0ciAiRmVydGlnLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Mzk2CisjOiBidWlsdGluL2Nsb25lLmM6Mzk1CiBtc2dpZCAiIgogIkNsb25lIHN1Y2NlZWRlZCwgYnV0IGNoZWNrb3V0IGZhaWxlZC5cbiIKICJZb3UgY2FuIGluc3BlY3Qgd2hhdCB3YXMgY2hlY2tlZCBvdXQgd2l0aCAnZ2l0IHN0YXR1cydcbiIKQEAgLTM4MTksMTA4ICszOTk5LDEwMyBAQAogIlNpZSBrw7ZubmVuIG1pdCAnZ2l0IHN0YXR1cycgcHLDvGZlbiwgd2FzIGF1c2dlY2hlY2t0IHdvcmRlbiBpc3RcbiIKICJ1bmQgZGFzIEF1c2NoZWNrZW4gbWl0ICdnaXQgY2hlY2tvdXQgLWYgSEVBRCcgZXJuZXV0IHZlcnN1Y2hlbi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjQ3NQorIzogYnVpbHRpbi9jbG9uZS5jOjQ3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmluZCByZW1vdGUgYnJhbmNoICVzIHRvIGNsb25lLiIKIG1zZ3N0ciAiS29ubnRlIHp1IGtsb25lbmRlbiBSZW1vdGUtQnJhbmNoICVzIG5pY2h0IGZpbmRlbi4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo1NTUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2hlY2tpbmcgY29ubmVjdGl2aXR5Li4uICIKIG1zZ3N0ciAiUHLDvGZlIEtvbm5la3Rpdml0w6R0Li4uICIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjU1OAorIzogYnVpbHRpbi9jbG9uZS5jOjU1NwogbXNnaWQgInJlbW90ZSBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzIgogbXNnc3RyICJSZW1vdGUtUmVwb3NpdG9yeSBoYXQgbmljaHQgYWxsZSBlcmZvcmRlcmxpY2hlbiBPYmpla3RlIGdlc2VuZGV0LiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjU2MAotIywgYy1mb3JtYXQKLW1zZ2lkICJkb25lXG4iCi1tc2dzdHIgIkZlcnRpZ1xuIgotCi0jOiBidWlsdGluL2Nsb25lLmM6NjIxCisjOiBidWlsdGluL2Nsb25lLmM6NjIwCiBtc2dpZCAicmVtb3RlIEhFQUQgcmVmZXJzIHRvIG5vbmV4aXN0ZW50IHJlZiwgdW5hYmxlIHRvIGNoZWNrb3V0LlxuIgogbXNnc3RyICIiCiAiRXh0ZXJuZXIgSEVBRCBiZXppZWh0IHNpY2ggYXVmIGVpbmUgbmljaHQgZXhpc3RpZXJlbmRlIFJlZmVyZW56IHVuZCBrYW5uICIKICJuaWNodCBhdXNnZWNoZWNrdCB3ZXJkZW4uXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NTIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NTEKIG1zZ2lkICJ1bmFibGUgdG8gY2hlY2tvdXQgd29ya2luZyB0cmVlIgogbXNnc3RyICJBcmJlaXRzdmVyemVpY2huaXMga29ubnRlIG5pY2h0IGF1c2dlY2hlY2t0IHdlcmRlbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc2MAorIzogYnVpbHRpbi9jbG9uZS5jOjc1OQogbXNnaWQgIlRvbyBtYW55IGFyZ3VtZW50cy4iCiBtc2dzdHIgIlp1IHZpZWxlIEFyZ3VtZW50ZS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NjQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NjMKIG1zZ2lkICJZb3UgbXVzdCBzcGVjaWZ5IGEgcmVwb3NpdG9yeSB0byBjbG9uZS4iCiBtc2dzdHIgIlNpZSBtw7xzc2VuIGVpbiBSZXBvc2l0b3J5IHp1bSBLbG9uZW4gYW5nZWJlbi4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NzUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiLS1iYXJlIGFuZCAtLW9yaWdpbiAlcyBvcHRpb25zIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICJEaWUgT3B0aW9uZW4gLS1iYXJlIHVuZCAtLW9yaWdpbiAlcyBzaW5kIGlua29tcGF0aWJlbC4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NzgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NzcKIG1zZ2lkICItLWJhcmUgYW5kIC0tc2VwYXJhdGUtZ2l0LWRpciBhcmUgaW5jb21wYXRpYmxlLiIKIG1zZ3N0ciAiRGllIE9wdGlvbmVuIC0tYmFyZSB1bmQgLS1zZXBhcmF0ZS1naXQtZGlyIHNpbmQgaW5rb21wYXRpYmVsLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc5MQorIzogYnVpbHRpbi9jbG9uZS5jOjc5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZXBvc2l0b3J5ICclcycgZG9lcyBub3QgZXhpc3QiCiBtc2dzdHIgIlJlcG9zaXRvcnkgJyVzJyBleGlzdGllcnQgbmljaHQuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzk2CisjOiBidWlsdGluL2Nsb25lLmM6Nzk1CiBtc2dpZCAiLS1kZXB0aCBpcyBpZ25vcmVkIGluIGxvY2FsIGNsb25lczsgdXNlIGZpbGU6Ly8gaW5zdGVhZC4iCiBtc2dzdHIgIiIKICJEaWUgT3B0aW9uIC0tZGVwdGggd2lyZCBpbiBsb2thbGVuIEtsb25lbiBpZ25vcmllcnQ7IGJlbnV0emVuIFNpZSAiCiAic3RhdHRkZXNzZW4gZmlsZTovLyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc5OAorIzogYnVpbHRpbi9jbG9uZS5jOjc5NwogbXNnaWQgIi0tbG9jYWwgaXMgaWdub3JlZCIKIG1zZ3N0ciAiLS1sb2NhbCB3aXJkIGlnbm9yaWVydCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgwOAorIzogYnVpbHRpbi9jbG9uZS5jOjgwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJkZXN0aW5hdGlvbiBwYXRoICclcycgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhbiBlbXB0eSBkaXJlY3RvcnkuIgogbXNnc3RyICJaaWVscGZhZCAnJXMnIGV4aXN0aWVydCBiZXJlaXRzIHVuZCBpc3Qga2VpbiBsZWVyZXMgVmVyemVpY2huaXMuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODE4CisjOiBidWlsdGluL2Nsb25lLmM6ODE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIndvcmtpbmcgdHJlZSAnJXMnIGFscmVhZHkgZXhpc3RzLiIKIG1zZ3N0ciAiQXJiZWl0c3ZlcnplaWNobmlzICclcycgZXhpc3RpZXJ0IGJlcmVpdHMuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODMxIGJ1aWx0aW4vY2xvbmUuYzo4NDMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MzAgYnVpbHRpbi9jbG9uZS5jOjg0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIGxlYWRpbmcgZGlyZWN0b3JpZXMgb2YgJyVzJyIKIG1zZ3N0ciAiS29ubnRlIGbDvGhyZW5kZSBWZXJ6ZWljaG5pc3NlIHZvbiAnJXMnIG5pY2h0IGVyc3RlbGxlbi4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MzQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSB3b3JrIHRyZWUgZGlyICclcycuIgogbXNnc3RyICJLb25udGUgQXJiZWl0c3ZlcnplaWNobmlzICclcycgbmljaHQgZXJzdGVsbGVuLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg1MworIzogYnVpbHRpbi9jbG9uZS5jOjg1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gYmFyZSByZXBvc2l0b3J5ICclcycuLi5cbiIKIG1zZ3N0ciAiS2xvbmUgaW4gQmFyZS1SZXBvc2l0b3J5ICclcycuLi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg1NQorIzogYnVpbHRpbi9jbG9uZS5jOjg1NAogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gJyVzJy4uLlxuIgogbXNnc3RyICJLbG9uZSBuYWNoICclcycuLi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg5MAorIzogYnVpbHRpbi9jbG9uZS5jOjg4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBjbG9uZSAlcyIKIG1zZ3N0ciAiV2Vpw58gbmljaHQgd2llICVzIHp1IGtsb25lbiBpc3QuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTQyCisjOiBidWlsdGluL2Nsb25lLmM6OTM5IGJ1aWx0aW4vY2xvbmUuYzo5NDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3RlIGJyYW5jaCAlcyBub3QgZm91bmQgaW4gdXBzdHJlYW0gJXMiCiBtc2dzdHIgIlJlbW90ZS1CcmFuY2ggJXMgbmljaHQgaW0gVXBzdHJlYW0tUmVwb3NpdG9yeSAlcyBnZWZ1bmRlbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk0OQorIzogYnVpbHRpbi9jbG9uZS5jOjk1MAogbXNnaWQgIllvdSBhcHBlYXIgdG8gaGF2ZSBjbG9uZWQgYW4gZW1wdHkgcmVwb3NpdG9yeS4iCiBtc2dzdHIgIlNpZSBzY2hlaW5lbiBlaW4gbGVlcmVzIFJlcG9zaXRvcnkgZ2VrbG9udCB6dSBoYWJlbi4iCiAKQEAgLTM5NTYsMTUgKzQxMzEsMTUgQEAKIG1zZ2lkICItLWNvbW1hbmQgbXVzdCBiZSB0aGUgZmlyc3QgYXJndW1lbnQiCiBtc2dzdHIgIkRpZSBPcHRpb24gLS1jb21tYW5kIG11c3MgYW4gZXJzdGVyIFN0ZWxsZSBzdGVoZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM1CisjOiBidWlsdGluL2NvbW1pdC5jOjM2CiBtc2dpZCAiZ2l0IGNvbW1pdCBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICJnaXQgY29tbWl0IFtPcHRpb25lbl0gWy0tXSA8UGZhZHNwZXppZmlrYXRpb24+Li4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQwCisjOiBidWlsdGluL2NvbW1pdC5jOjQxCiBtc2dpZCAiZ2l0IHN0YXR1cyBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICJnaXQgc3RhdHVzIFtPcHRpb25lbl0gWy0tXSA8UGZhZHNwZXppZmlrYXRpb24+Li4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQ1CisjOiBidWlsdGluL2NvbW1pdC5jOjQ2CiBtc2dpZCAiIgogIllvdXIgbmFtZSBhbmQgZW1haWwgYWRkcmVzcyB3ZXJlIGNvbmZpZ3VyZWQgYXV0b21hdGljYWxseSBiYXNlZFxuIgogIm9uIHlvdXIgdXNlcm5hbWUgYW5kIGhvc3RuYW1lLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGV5IGFyZSBhY2N1cmF0ZS5cbiIKQEAgLTM5OTAsNyArNDE2NSw3IEBACiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbWVuZCAtLXJlc2V0LWF1dGhvclxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU3CisjOiBidWlsdGluL2NvbW1pdC5jOjU4CiBtc2dpZCAiIgogIllvdSBhc2tlZCB0byBhbWVuZCB0aGUgbW9zdCByZWNlbnQgY29tbWl0LCBidXQgZG9pbmcgc28gd291bGQgbWFrZVxuIgogIml0IGVtcHR5LiBZb3UgY2FuIHJlcGVhdCB5b3VyIGNvbW1hbmQgd2l0aCAtLWFsbG93LWVtcHR5LCBvciB5b3UgY2FuXG4iCkBAIC00MDAwLDcgKzQxNzUsNyBAQAogIm1hY2hlbi4gU2llIGvDtm5uZW4gSWhyIEtvbW1hbmRvIG1pdCAtLWFsbG93LWVtcHR5IHdpZWRlcmhvbGVuLCBvZGVyIGRpZXNlblxuIgogIkNvbW1pdCBtaXQgXCJnaXQgcmVzZXQgSEVBRF5cIiB2b2xsc3TDpG5kaWcgZW50ZmVybmVuLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYyCisjOiBidWlsdGluL2NvbW1pdC5jOjYzCiBtc2dpZCAiIgogIlRoZSBwcmV2aW91cyBjaGVycnktcGljayBpcyBub3cgZW1wdHksIHBvc3NpYmx5IGR1ZSB0byBjb25mbGljdCByZXNvbHV0aW9uLlxuIgogIklmIHlvdSB3aXNoIHRvIGNvbW1pdCBpdCBhbnl3YXksIHVzZTpcbiIKQEAgLTQwMTUsMTEgKzQxOTAsMTEgQEAKICIgICAgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5XG4iCiAiXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzAKIG1zZ2lkICJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIKIG1zZ3N0ciAiQW5kZXJuZmFsbHMgYmVudXR6ZW4gU2llIGJpdHRlICdnaXQgcmVzZXQnXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzMKIG1zZ2lkICIiCiAiSWYgeW91IHdpc2ggdG8gc2tpcCB0aGlzIGNvbW1pdCwgdXNlOlxuIgogIlxuIgpAQCAtNDAzNSw5NCArNDIxMCw5NCBAQAogIkJlbnV0emVuIFNpZSBhbnNjaGxpZcOfZW5kIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIiwgdW0gZGllXG4iCiAiQ2hlcnJ5LVBpY2stT3BlcmF0aW9uIG1pdCBkZW4gdmVyYmxlaWJlbmRlbiBDb21taXRzIGZvcnR6dXNldHplbi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoyNzkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Mjg3CiBtc2dpZCAiZmFpbGVkIHRvIHVucGFjayBIRUFEIHRyZWUgb2JqZWN0IgogbXNnc3RyICJGZWhsZXIgYmVpbSBFbnRwYWNrZW4gZGVzIFwiVHJlZVwiLU9iamVrdGVzIHZvbiBIRUFELiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozMjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzI5CiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgaW5kZXgiCiBtc2dzdHIgIktvbm50ZSB0ZW1wb3LDpHJlIFN0YWdpbmctQXJlYSBuaWNodCBlcnN0ZWxsZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMyNworIzogYnVpbHRpbi9jb21taXQuYzozMzUKIG1zZ2lkICJpbnRlcmFjdGl2ZSBhZGQgZmFpbGVkIgogbXNnc3RyICJpbnRlcmFrdGl2ZXMgSGluenVmw7xnZW4gZmVobGdlc2NobGFnZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzYwIGJ1aWx0aW4vY29tbWl0LmM6MzgxIGJ1aWx0aW4vY29tbWl0LmM6NDMxCisjOiBidWlsdGluL2NvbW1pdC5jOjM2OCBidWlsdGluL2NvbW1pdC5jOjM4OSBidWlsdGluL2NvbW1pdC5jOjQzOQogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBuZXdfaW5kZXggZmlsZSIKIG1zZ3N0ciAiS29ubnRlIG5ld19pbmRleCBEYXRlaSBuaWNodCBzY2hyZWliZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDEyCisjOiBidWlsdGluL2NvbW1pdC5jOjQyMAogbXNnaWQgImNhbm5vdCBkbyBhIHBhcnRpYWwgY29tbWl0IGR1cmluZyBhIG1lcmdlLiIKIG1zZ3N0ciAiS2FubiBrZWluZW4gVGVpbC1Db21taXQgZHVyY2hmw7xocmVuLCB3w6RocmVuZCBlaW4gTWVyZ2UgaW0gR2FuZ2UgaXN0LiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MTQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDIyCiBtc2dpZCAiY2Fubm90IGRvIGEgcGFydGlhbCBjb21taXQgZHVyaW5nIGEgY2hlcnJ5LXBpY2suIgogbXNnc3RyICIiCiAiS2FubiBrZWluZW4gVGVpbC1Db21taXQgZHVyY2hmw7xocmVuLCB3w6RocmVuZCBcImNoZXJyeS1waWNrXCIgaW0gR2FuZ2UgaXN0LiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MjQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDMyCiBtc2dpZCAiY2Fubm90IHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICJLYW5uIFN0YWdpbmctQXJlYSBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0NDQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDUyCiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIHRlbXBvcmFyeSBpbmRleCBmaWxlIgogbXNnc3RyICJLb25udGUgdGVtcG9yw6RyZSBTdGFnaW5nLUFyZWEtRGF0ZWkgbmljaHQgc2NocmVpYmVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1MzUgYnVpbHRpbi9jb21taXQuYzo1NDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTQzIGJ1aWx0aW4vY29tbWl0LmM6NTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgY29tbWl0OiAlcyIKIG1zZ3N0ciAiVW5nw7xsdGlnZXIgQ29tbWl0OiAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NjMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTcxCiBtc2dpZCAibWFsZm9ybWVkIC0tYXV0aG9yIHBhcmFtZXRlciIKIG1zZ3N0ciAiRmVobGVyaGFmdGVyIC0tYXV0aG9yIFBhcmFtZXRlciIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1ODMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTkxCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBpZGVudCBzdHJpbmc6ICclcyciCiBtc2dzdHIgIkZlaGxlcmhhZnRlciBJZGVudC1TdHJpbmc6ICclcyciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjIxIGJ1aWx0aW4vY29tbWl0LmM6NjU0IGJ1aWx0aW4vY29tbWl0LmM6OTgyCisjOiBidWlsdGluL2NvbW1pdC5jOjYzMCBidWlsdGluL2NvbW1pdC5jOjY2MyBidWlsdGluL2NvbW1pdC5jOjEwMDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGxvb2t1cCBjb21taXQgJXMiCiBtc2dzdHIgIktvbm50ZSBDb21taXQgJXMgbmljaHQgbmFjaHNjaGxhZ2VuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYzMyBidWlsdGluL3Nob3J0bG9nLmM6MjcxCisjOiBidWlsdGluL2NvbW1pdC5jOjY0MiBidWlsdGluL3Nob3J0bG9nLmM6MjczCiAjLCBjLWZvcm1hdAogbXNnaWQgIihyZWFkaW5nIGxvZyBtZXNzYWdlIGZyb20gc3RhbmRhcmQgaW5wdXQpXG4iCiBtc2dzdHIgIihsZXNlIExvZy1OYWNocmljaHQgdm9uIFN0YW5kYXJkLUVpbmdhYmUpXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjM1CisjOiBidWlsdGluL2NvbW1pdC5jOjY0NAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJLb25udGUgTG9nIG5pY2h0IHZvbiBTdGFuZGFyZC1FaW5nYWJlIGxlc2VuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MzkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmaWxlICclcyciCiBtc2dzdHIgIktvbm50ZSBMb2ctRGF0ZWkgJyVzJyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjU0CiBtc2dpZCAiY29tbWl0IGhhcyBlbXB0eSBtZXNzYWdlIgogbXNnc3RyICJDb21taXQgaGF0IGVpbmUgbGVlcmUgQmVzY2hyZWlidW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY2MQorIzogYnVpbHRpbi9jb21taXQuYzo2NzAKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NU0ciCiBtc2dzdHIgIktvbm50ZSBNRVJHRV9NU0cgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjY1CisjOiBidWlsdGluL2NvbW1pdC5jOjY3NAogbXNnaWQgImNvdWxkIG5vdCByZWFkIFNRVUFTSF9NU0ciCiBtc2dzdHIgIktvbm50ZSBTUVVBU0hfTVNHIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY2OQorIzogYnVpbHRpbi9jb21taXQuYzo2NzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgJyVzJyIKIG1zZ3N0ciAiS29ubnRlICclcycgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzMwCisjOiBidWlsdGluL2NvbW1pdC5jOjc0OQogbXNnaWQgImNvdWxkIG5vdCB3cml0ZSBjb21taXQgdGVtcGxhdGUiCiBtc2dzdHIgIktvbm50ZSBDb21taXQtVm9ybGFnZSBuaWNodCBzY2hyZWliZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzQxCisjOiBidWlsdGluL2NvbW1pdC5jOjc2MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC00MTM3LDcgKzQzMTIsNyBAQAogIlx0JXNcbiIKICJ1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzQ2CisjOiBidWlsdGluL2NvbW1pdC5jOjc2NQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC00MTUyLDcgKzQzMjcsNyBAQAogIlx0JXNcbiIKICJ1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzU4CisjOiBidWlsdGluL2NvbW1pdC5jOjc3NwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgpAQCAtNDE2Miw3ICs0MzM3LDcgQEAKICJkaWUgbWl0ICclYycgYmVnaW5uZW4sIHdlcmRlbiBpZ25vcmllcnQsIHVuZCBlaW5lIGxlZXJlIEJlc2NocmVpYnVuZ1xuIgogImJyaWNodCBkZW4gQ29tbWl0IGFiLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc2MworIzogYnVpbHRpbi9jb21taXQuYzo3ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKQEAgLTQxNzUsMTUyICs0MzUwLDE1MiBAQAogImVudGZlcm5lbi5cbiIKICJFaW5lIGxlZXJlIEJlc2NocmVpYnVuZyBicmljaHQgZGVuIENvbW1pdCBhYi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Nzk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzQXV0aG9yOiAgICAlcyIKIG1zZ3N0ciAiJXNBdXRvcjogICAgJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzgzCisjOiBidWlsdGluL2NvbW1pdC5jOjgwMgogIywgYy1mb3JtYXQKIG1zZ2lkICIlc0NvbW1pdHRlcjogJXMiCiBtc2dzdHIgIiVzQ29tbWl0LUVyc3RlbGxlcjogJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODAzCisjOiBidWlsdGluL2NvbW1pdC5jOjgyMgogbXNnaWQgIkNhbm5vdCByZWFkIGluZGV4IgogbXNnc3RyICJLYW5uIFN0YWdpbmctQXJlYSBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4NDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODY1CiBtc2dpZCAiRXJyb3IgYnVpbGRpbmcgdHJlZXMiCiBtc2dzdHIgIkZlaGxlciBiZWltIEVyemV1Z2VuIGRlciBcIlRyZWVcIi1PYmpla3RlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjg2MCBidWlsdGluL3RhZy5jOjM1OQorIzogYnVpbHRpbi9jb21taXQuYzo4ODAgYnVpbHRpbi90YWcuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUGxlYXNlIHN1cHBseSB0aGUgbWVzc2FnZSB1c2luZyBlaXRoZXIgLW0gb3IgLUYgb3B0aW9uLlxuIgogbXNnc3RyICIiCiAiQml0dGUgbGllZmVybiBTaWUgZWluZSBCZXNjaHJlaWJ1bmcgZW50d2VkZXIgbWl0IGRlciBPcHRpb24gLW0gb2RlciAtRi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5NTcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGV4aXN0aW5nIGF1dGhvciBmb3VuZCB3aXRoICclcyciCiBtc2dzdHIgIktlaW4gZXhpc3RpZXJlbmRlciBBdXRvciBtaXQgJyVzJyBnZWZ1bmRlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTcyIGJ1aWx0aW4vY29tbWl0LmM6MTIwOAorIzogYnVpbHRpbi9jb21taXQuYzo5OTcgYnVpbHRpbi9jb21taXQuYzoxMjM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgdW50cmFja2VkIGZpbGVzIG1vZGUgJyVzJyIKIG1zZ3N0ciAiVW5nw7xsdGlnZXIgTW9kdXMgJyVzJyBmw7xyIHVuYmVvYmFjaHRldGUgRGF0ZWllbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDA5CisjOiBidWlsdGluL2NvbW1pdC5jOjEwMzQKIG1zZ2lkICItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtLWxvbmcgdW5kIC16IHNpbmQgaW5rb21wYXRpYmVsLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDM5CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNjQKIG1zZ2lkICJVc2luZyBib3RoIC0tcmVzZXQtYXV0aG9yIGFuZCAtLWF1dGhvciBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbmVuIC0tcmVzZXQtYXV0aG9yIHVuZCAtLWF1dGhvciBrw7ZubmVuIG5pY2h0IGdlbWVpbnNhbSB2ZXJ3ZW5kZXQgIgogIndlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MAorIzogYnVpbHRpbi9jb21taXQuYzoxMDc1CiBtc2dpZCAiWW91IGhhdmUgbm90aGluZyB0byBhbWVuZC4iCiBtc2dzdHIgIlNpZSBoYWJlbiBuaWNodHMgZsO8ciBcIi0tYW1lbmRcIi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MworIzogYnVpbHRpbi9jb21taXQuYzoxMDc4CiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UgLS0gY2Fubm90IGFtZW5kLiIKIG1zZ3N0ciAiRWluIE1lcmdlIGlzdCBpbSBHYW5nZSAtLSBrYW5uIFwiLS1hbWVuZFwiIG5pY2h0IGF1c2bDvGhyZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA4MAogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGNoZXJyeS1waWNrIC0tIGNhbm5vdCBhbWVuZC4iCiBtc2dzdHIgIlwiY2hlcnJ5LXBpY2tcIiBpc3QgaW0gR2FuZ2UgLS0ga2FubiBcIi0tYW1lbmRcIiBuaWNodCBhdXNmw7xocmVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDU4CisjOiBidWlsdGluL2NvbW1pdC5jOjEwODMKIG1zZ2lkICJPcHRpb25zIC0tc3F1YXNoIGFuZCAtLWZpeHVwIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbmVuIC0tc3F1YXNoIHVuZCAtLWZpeHVwIGvDtm5uZW4gbmljaHQgZ2VtZWluc2FtIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNjgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5MwogbXNnaWQgIk9ubHkgb25lIG9mIC1jLy1DLy1GLy0tZml4dXAgY2FuIGJlIHVzZWQuIgogbXNnc3RyICJFcyBrYW5uIG51ciBlaW5lIE9wdGlvbiB2b24gLWMvLUMvLUYvLS1maXh1cCB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDcwCisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTUKIG1zZ2lkICJPcHRpb24gLW0gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggLWMvLUMvLUYvLS1maXh1cC4iCiBtc2dzdHIgIkRpZSBPcHRpb24gLW0ga2FubiBuaWNodCBtaXQgLWMvLUMvLUYvLS1maXh1cCBrb21iaW5pZXJ0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3OAorIzogYnVpbHRpbi9jb21taXQuYzoxMTAzCiBtc2dpZCAiLS1yZXNldC1hdXRob3IgY2FuIGJlIHVzZWQgb25seSB3aXRoIC1DLCAtYyBvciAtLWFtZW5kLiIKIG1zZ3N0ciAiIgogIkRpZSBPcHRpb24gLS1yZXNldC0tYXV0aG9yIGthbm4gbnVyIG1pdCAtQywgLWMgb2RlciAtLWFtZW5kIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwOTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTEyMAogbXNnaWQgIk9ubHkgb25lIG9mIC0taW5jbHVkZS8tLW9ubHkvLS1hbGwvLS1pbnRlcmFjdGl2ZS8tLXBhdGNoIGNhbiBiZSB1c2VkLiIKIG1zZ3N0ciAiIgogIkVzIGthbm4gbnVyIGVpbmUgT3B0aW9uIHZvbiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCAiCiAidmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NworIzogYnVpbHRpbi9jb21taXQuYzoxMTIyCiBtc2dpZCAiTm8gcGF0aHMgd2l0aCAtLWluY2x1ZGUvLS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbmVuIC0taW5jbHVkZSB1bmQgLS1vbmx5IGvDtm5uZW4gbnVyIG1pdCBkZXIgQW5nYWJlIHZvbiBQZmFkZW4gIgogInZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwOTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTEyNAogbXNnaWQgIkNsZXZlci4uLiBhbWVuZGluZyB0aGUgbGFzdCBvbmUgd2l0aCBkaXJ0eSBpbmRleC4iCiBtc2dzdHIgIiIKICJLbHVnLi4uIGRlbiBsZXR6dGVuIENvbW1pdCBtaXQgZWluZXIgZ2XDpG5kZXJ0ZW4gU3RhZ2luZy1BcmVhIG5hY2hiZXNzZXJuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTAxCisjOiBidWlsdGluL2NvbW1pdC5jOjExMjYKIG1zZ2lkICJFeHBsaWNpdCBwYXRocyBzcGVjaWZpZWQgd2l0aG91dCAtaSBub3IgLW87IGFzc3VtaW5nIC0tb25seSBwYXRocy4uLiIKIG1zZ3N0ciAiIgogIkV4cGxpeml0ZSBQZmFkZSBvaG5lIC1pIG9kZXIgLW8gYW5nZWdlYmVuOyB1bnRlciBkZXIgQW5uYWhtZSB2b24gLS1vbmx5ICIKICJQZmFkZW4uLi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTExMSBidWlsdGluL3RhZy5jOjU3NQorIzogYnVpbHRpbi9jb21taXQuYzoxMTM2IGJ1aWx0aW4vdGFnLmM6NTcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgY2xlYW51cCBtb2RlICVzIgogbXNnc3RyICJVbmfDvGx0aWdlciBcImNsZWFudXBcIiBNb2R1cyAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTE2CisjOiBidWlsdGluL2NvbW1pdC5jOjExNDEKIG1zZ2lkICJQYXRocyB3aXRoIC1hIGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICJEaWUgT3B0aW9uIC1hIGthbm4gbnVyIG1pdCBkZXIgQW5nYWJlIHZvbiBQZmFkZW4gdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyMiBidWlsdGluL2NvbW1pdC5jOjE0NTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI1MSBidWlsdGluL2NvbW1pdC5jOjE0ODIKIG1zZ2lkICJzaG93IHN0YXR1cyBjb25jaXNlbHkiCiBtc2dzdHIgInplaWd0IFN0YXR1cyBpbSBLdXJ6Zm9ybWF0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyMjQgYnVpbHRpbi9jb21taXQuYzoxNDU3CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNTMgYnVpbHRpbi9jb21taXQuYzoxNDg0CiBtc2dpZCAic2hvdyBicmFuY2ggaW5mb3JtYXRpb24iCiBtc2dzdHIgInplaWd0IEJyYW5jaGluZm9ybWF0aW9uZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyNiBidWlsdGluL2NvbW1pdC5jOjE0NTkgYnVpbHRpbi9wdXNoLmM6NDUyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNTUgYnVpbHRpbi9jb21taXQuYzoxNDg2IGJ1aWx0aW4vcHVzaC5jOjQ2MAogbXNnaWQgIm1hY2hpbmUtcmVhZGFibGUgb3V0cHV0IgogbXNnc3RyICJtYXNjaGluZW5sZXNiYXJlIEF1c2dhYmUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyOSBidWlsdGluL2NvbW1pdC5jOjE0NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI1OCBidWlsdGluL2NvbW1pdC5jOjE0ODgKIG1zZ2lkICJzaG93IHN0YXR1cyBpbiBsb25nIGZvcm1hdCAoZGVmYXVsdCkiCiBtc2dzdHIgInplaWd0IFN0YXR1cyBpbSBMYW5nZm9ybWF0IChTdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzMiBidWlsdGluL2NvbW1pdC5jOjE0NjQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2MSBidWlsdGluL2NvbW1pdC5jOjE0OTEKIG1zZ2lkICJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCIKIG1zZ3N0ciAic2NobGllw590IEVpbnRyw6RnZSBtaXQgTlVMLVplaWNoZW4gYWIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNCBidWlsdGluL2NvbW1pdC5jOjE0NjcgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NwotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MCBidWlsdGluL3RhZy5jOjQ1OQorIzogYnVpbHRpbi9jb21taXQuYzoxMjYzIGJ1aWx0aW4vY29tbWl0LmM6MTQ5NCBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc3IGJ1aWx0aW4vdGFnLmM6NDU5CiBtc2dpZCAibW9kZSIKIG1zZ3N0ciAiTW9kdXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNSBidWlsdGluL2NvbW1pdC5jOjE0NjcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2NCBidWlsdGluL2NvbW1pdC5jOjE0OTQKIG1zZ2lkICJzaG93IHVudHJhY2tlZCBmaWxlcywgb3B0aW9uYWwgbW9kZXM6IGFsbCwgbm9ybWFsLCBuby4gKERlZmF1bHQ6IGFsbCkiCiBtc2dzdHIgIiIKICJ6ZWlndCBuaWNodCBiZW9iYWNodGV0ZSBEYXRlaWVuLCBvcHRpb25hbGUgTW9kaTogYWxsLCBub3JtYWwsIG5vLiAoU3RhbmRhcmQ6ICIKICJhbGwpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyMzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2NwogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAiemVpZ3QgaWdub3JpZXJ0ZSBEYXRlaWVuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyMzkgcGFyc2Utb3B0aW9ucy5oOjE1NAorIzogYnVpbHRpbi9jb21taXQuYzoxMjY4IHBhcnNlLW9wdGlvbnMuaDoxNTYKIG1zZ2lkICJ3aGVuIgogbXNnc3RyICJ3YW5uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2OQogbXNnaWQgIiIKICJpZ25vcmUgY2hhbmdlcyB0byBzdWJtb2R1bGVzLCBvcHRpb25hbCB3aGVuOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKICIoRGVmYXVsdDogYWxsKSIKQEAgLTQzMjgsMjE5ICs0NTAzLDIxOSBAQAogImlnbm9yaWVydCDDhG5kZXJ1bmdlbiBpbiBTdWJtb2R1bGVuLCBvcHRpb25hbCB3ZW5uOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKICIoU3RhbmRhcmQ6IGFsbCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTI0MgorIzogYnVpbHRpbi9jb21taXQuYzoxMjcxCiBtc2dpZCAibGlzdCB1bnRyYWNrZWQgZmlsZXMgaW4gY29sdW1ucyIKIG1zZ3N0ciAibGlzdGV0IHVuYmVvYmFjaHRldGUgRGF0ZWllbiBpbiBTcGFsdGVuIGF1ZiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzEzCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNDAKIG1zZ2lkICJjb3VsZG4ndCBsb29rIHVwIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgogbXNnc3RyICJLb25udGUgbmV1IGVyc3RlbGx0ZW4gQ29tbWl0IG5pY2h0IG5hY2hzY2hsYWdlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxNQorIzogYnVpbHRpbi9jb21taXQuYzoxMzQyCiBtc2dpZCAiY291bGQgbm90IHBhcnNlIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgogbXNnc3RyICJLb25udGUgbmV1bGljaCBlcnN0ZWxsdGVuIENvbW1pdCBuaWNodCBhbmFseXNpZXJlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1NgorIzogYnVpbHRpbi9jb21taXQuYzoxMzgzCiBtc2dpZCAiZGV0YWNoZWQgSEVBRCIKIG1zZ3N0ciAibG9zZ2Vsw7ZzdGVyIEhFQUQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1OAorIzogYnVpbHRpbi9jb21taXQuYzoxMzg1CiBtc2dpZCAiIChyb290LWNvbW1pdCkiCiBtc2dzdHIgIiAoQmFzaXMtQ29tbWl0KSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDI1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTIKIG1zZ2lkICJzdXBwcmVzcyBzdW1tYXJ5IGFmdGVyIHN1Y2Nlc3NmdWwgY29tbWl0IgogbXNnc3RyICJ1bnRlcmRyw7xja3QgWnVzYW1tZW5mYXNzdW5nIG5hY2ggZXJmb2xncmVpY2hlbSBDb21taXQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyNgorIzogYnVpbHRpbi9jb21taXQuYzoxNDUzCiBtc2dpZCAic2hvdyBkaWZmIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgogbXNnc3RyICJ6ZWlndCBVbnRlcnNjaGllZGUgaW4gQ29tbWl0LUJlc2NocmVpYnVuZ3N2b3JsYWdlIGFuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MjgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NQogbXNnaWQgIkNvbW1pdCBtZXNzYWdlIG9wdGlvbnMiCiBtc2dzdHIgIk9wdGlvbmVuIGbDvHIgQ29tbWl0LUJlc2NocmVpYnVuZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDI5IGJ1aWx0aW4vdGFnLmM6NDU3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTYgYnVpbHRpbi90YWcuYzo0NTcKIG1zZ2lkICJyZWFkIG1lc3NhZ2UgZnJvbSBmaWxlIgogbXNnc3RyICJsaWVzdCBCZXNjaHJlaWJ1bmcgdm9uIERhdGVpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NwogbXNnaWQgImF1dGhvciIKIG1zZ3N0ciAiQXV0b3IiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMAorIzogYnVpbHRpbi9jb21taXQuYzoxNDU3CiBtc2dpZCAib3ZlcnJpZGUgYXV0aG9yIGZvciBjb21taXQiCiBtc2dzdHIgIsO8YmVyc2NocmVpYnQgQXV0b3IgZWluZXMgQ29tbWl0cyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMxIGJ1aWx0aW4vZ2MuYzoxNzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1OCBidWlsdGluL2djLmM6MjYwCiBtc2dpZCAiZGF0ZSIKIG1zZ3N0ciAiRGF0dW0iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNDU4CiBtc2dpZCAib3ZlcnJpZGUgZGF0ZSBmb3IgY29tbWl0IgogbXNnc3RyICLDvGJlcnNjaHJlaWJ0IERhdHVtIGVpbmVzIENvbW1pdHMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMiBidWlsdGluL21lcmdlLmM6MjIzIGJ1aWx0aW4vbm90ZXMuYzo0MDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1OSBidWlsdGluL21lcmdlLmM6MjIzIGJ1aWx0aW4vbm90ZXMuYzo0MDUKICM6IGJ1aWx0aW4vbm90ZXMuYzo1NjIgYnVpbHRpbi90YWcuYzo0NTUKIG1zZ2lkICJtZXNzYWdlIgogbXNnc3RyICJCZXNjaHJlaWJ1bmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMgorIzogYnVpbHRpbi9jb21taXQuYzoxNDU5CiBtc2dpZCAiY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgIkNvbW1pdC1CZXNjaHJlaWJ1bmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMworIzogYnVpbHRpbi9jb21taXQuYzoxNDYwCiBtc2dpZCAicmV1c2UgYW5kIGVkaXQgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgInZlcndlbmRldCB3aWVkZXIgdW5kIGVkaXRpZXJ0IEJlc2NocmVpYnVuZyBkZXMgYW5nZWdlYmVuZW4gQ29tbWl0cyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDM0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjEKIG1zZ2lkICJyZXVzZSBtZXNzYWdlIGZyb20gc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAidmVyd2VuZGV0IEJlc2NocmVpYnVuZyBkZXMgYW5nZWdlYmVuZW4gQ29tbWl0cyB3aWVkZXIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNQorIzogYnVpbHRpbi9jb21taXQuYzoxNDYyCiBtc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gZml4dXAgc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogInZlcndlbmRldCBlaW5lIGF1dG9tYXRpc2NoIHp1c2FtbWVuZ2VzZXR6dGUgQmVzY2hyZWlidW5nIHp1bSBOYWNoYmVzc2VybiBkZXMgIgogImFuZ2VnZWJlbmVuIENvbW1pdHMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNgorIzogYnVpbHRpbi9jb21taXQuYzoxNDYzCiBtc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gc3F1YXNoIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIiIKICJ2ZXJ3ZW5kZXQgZWluZSBhdXRvbWF0aXNjaCB6dXNhbW1lbmdlc2V0enRlIEJlc2NocmVpYnVuZyBiZWltIFwic3F1YXNoXCIgZGVzICIKICJhbmdlZ2ViZW5lbiBDb21taXRzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NAogbXNnaWQgInRoZSBjb21taXQgaXMgYXV0aG9yZWQgYnkgbWUgbm93ICh1c2VkIHdpdGggLUMvLWMvLS1hbWVuZCkiCiBtc2dzdHIgIlNldHp0IFNpZSBhbHMgQXV0b3IgZGVzIENvbW1pdHMgKHZlcndlbmRldCBtaXQgLUMvLWMvLS1hbWVuZCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzOCBidWlsdGluL2xvZy5jOjExNjAgYnVpbHRpbi9yZXZlcnQuYzoxMTEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NSBidWlsdGluL2xvZy5jOjExODAgYnVpbHRpbi9yZXZlcnQuYzo4NgogbXNnaWQgImFkZCBTaWduZWQtb2ZmLWJ5OiIKIG1zZ3N0ciAiZsO8Z3QgJ1NpZ25lZC1vZmYtYnk6Jy1aZWlsZSBoaW56dSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDM5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjYKIG1zZ2lkICJ1c2Ugc3BlY2lmaWVkIHRlbXBsYXRlIGZpbGUiCiBtc2dzdHIgInZlcndlbmRldCBhbmdlZ2ViZW5lIFZvcmxhZ2VuZGF0ZWkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDY3CiBtc2dpZCAiZm9yY2UgZWRpdCBvZiBjb21taXQiCiBtc2dzdHIgImVyendpbmd0IEJlYXJiZWl0dW5nIGRlcyBDb21taXRzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2OAogbXNnaWQgImRlZmF1bHQiCiBtc2dzdHIgIlN0YW5kYXJkIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDEgYnVpbHRpbi90YWcuYzo0NjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2OCBidWlsdGluL3RhZy5jOjQ2MAogbXNnaWQgImhvdyB0byBzdHJpcCBzcGFjZXMgYW5kICNjb21tZW50cyBmcm9tIG1lc3NhZ2UiCiBtc2dzdHIgIiIKICJ3aWUgTGVlcnplaWNoZW4gdW5kICNLb21tZW50YXJlIHZvbiBkZXIgQmVzY2hyZWlidW5nIGdldHJlbm50IHdlcmRlbiBzb2xsZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MgorIzogYnVpbHRpbi9jb21taXQuYzoxNDY5CiBtc2dpZCAiaW5jbHVkZSBzdGF0dXMgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCiBtc2dzdHIgImbDvGd0IFN0YXR1cyBpbiBkaWUgQ29tbWl0LUJlc2NocmVpYnVuZ3N2b3JsYWdlIGVpbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDQzIGJ1aWx0aW4vbWVyZ2UuYzoyMzAgYnVpbHRpbi90YWcuYzo0NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3MCBidWlsdGluL21lcmdlLmM6MjMwIGJ1aWx0aW4vdGFnLmM6NDYxCiBtc2dpZCAia2V5IGlkIgogbXNnc3RyICJTY2hsw7xzc2VsLUlEIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDQgYnVpbHRpbi9tZXJnZS5jOjIzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNDcxIGJ1aWx0aW4vbWVyZ2UuYzoyMzEKIG1zZ2lkICJHUEcgc2lnbiBjb21taXQiCiBtc2dzdHIgInNpZ25pZXJ0IENvbW1pdCBtaXQgR1BHIgogCiAjLiBlbmQgY29tbWl0IG1lc3NhZ2Ugb3B0aW9ucwotIzogYnVpbHRpbi9jb21taXQuYzoxNDQ3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzQKIG1zZ2lkICJDb21taXQgY29udGVudHMgb3B0aW9ucyIKIG1zZ3N0ciAiT3B0aW9uZW4gZsO8ciBDb21taXQtSW5oYWx0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3NQogbXNnaWQgImNvbW1pdCBhbGwgY2hhbmdlZCBmaWxlcyIKIG1zZ3N0ciAiY29tbWl0dGV0IGFsbGUgZ2XDpG5kZXJ0ZW4gRGF0ZWllbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDQ5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzYKIG1zZ2lkICJhZGQgc3BlY2lmaWVkIGZpbGVzIHRvIGluZGV4IGZvciBjb21taXQiCiBtc2dzdHIgIm1lcmt0IGRpZSBhbmdlZ2ViZW5lbiBEYXRlaWVuIHp1c8OkdHpsaWNoIHp1bSBDb21taXQgdm9yIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3NwogbXNnaWQgImludGVyYWN0aXZlbHkgYWRkIGZpbGVzIgogbXNnc3RyICJpbnRlcmFrdGl2ZXMgSGluenVmw7xnZW4gdm9uIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDc4CiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgY2hhbmdlcyIKIG1zZ3N0ciAiaW50ZXJha3RpdmVzIEhpbnp1ZsO8Z2VuIHZvbiDDhG5kZXJ1bmdlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDUyCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzkKIG1zZ2lkICJjb21taXQgb25seSBzcGVjaWZpZWQgZmlsZXMiCiBtc2dzdHIgImNvbW1pdHRldCBudXIgZGllIGFuZ2VnZWJlbmVuIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MworIzogYnVpbHRpbi9jb21taXQuYzoxNDgwCiBtc2dpZCAiYnlwYXNzIHByZS1jb21taXQgaG9vayIKIG1zZ3N0ciAidW1nZWh0IFwicHJlLWNvbW1pdCBob29rXCIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NAorIzogYnVpbHRpbi9jb21taXQuYzoxNDgxCiBtc2dpZCAic2hvdyB3aGF0IHdvdWxkIGJlIGNvbW1pdHRlZCIKIG1zZ3N0ciAiemVpZ3QgYW4sIHdhcyBjb21taXR0ZXQgd2VyZGVuIHfDvHJkZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDY1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0OTIKIG1zZ2lkICJhbWVuZCBwcmV2aW91cyBjb21taXQiCiBtc2dzdHIgIsOkbmRlcnQgdm9yaGVyaWdlbiBDb21taXQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NgorIzogYnVpbHRpbi9jb21taXQuYzoxNDkzCiBtc2dpZCAiYnlwYXNzIHBvc3QtcmV3cml0ZSBob29rIgogbXNnc3RyICJ1bWdlaHQgXCJwb3N0LXJld3JpdGUgaG9va1wiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ5OAogbXNnaWQgIm9rIHRvIHJlY29yZCBhbiBlbXB0eSBjaGFuZ2UiCiBtc2dzdHIgImVybGF1YnQgQXVmemVpY2hudW5nIGVpbmVyIGxlZXJlbiDDhG5kZXJ1bmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3NAorIzogYnVpbHRpbi9jb21taXQuYzoxNTAwCiBtc2dpZCAib2sgdG8gcmVjb3JkIGEgY2hhbmdlIHdpdGggYW4gZW1wdHkgbWVzc2FnZSIKIG1zZ3N0ciAiZXJsYXVidCBBdWZ6ZWljaG51bmcgZWluZXIgw4RuZGVydW5nIG1pdCBlaW5lciBsZWVyZW4gQmVzY2hyZWlidW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1MDcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTUyOQogbXNnaWQgImNvdWxkIG5vdCBwYXJzZSBIRUFEIGNvbW1pdCIKIG1zZ3N0ciAiS29ubnRlIENvbW1pdCB2b24gSEVBRCBuaWNodCBhbmFseXNpZXJlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU0NSBidWlsdGluL21lcmdlLmM6NTI1CisjOiBidWlsdGluL2NvbW1pdC5jOjE1NjcgYnVpbHRpbi9tZXJnZS5jOjUyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIGZvciByZWFkaW5nIgogbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCB6dW0gTGVzZW4gw7ZmZm5lbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU1MgorIzogYnVpbHRpbi9jb21taXQuYzoxNTc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvcnJ1cHQgTUVSR0VfSEVBRCBmaWxlICglcykiCiBtc2dzdHIgIkJlc2Now6RkaWd0ZSBNRVJHRV9IRUFELURhdGVpICglcykiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU1OQorIzogYnVpbHRpbi9jb21taXQuYzoxNTgxCiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTU9ERSIKIG1zZ3N0ciAiS29ubnRlIE1FUkdFX01PREUgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU3OAorIzogYnVpbHRpbi9jb21taXQuYzoxNjAwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGNvbW1pdCBtZXNzYWdlOiAlcyIKIG1zZ3N0ciAiS29ubnRlIENvbW1pdC1CZXNjaHJlaWJ1bmcgbmljaHQgbGVzZW46ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1OTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJBYm9ydGluZyBjb21taXQ7IHlvdSBkaWQgbm90IGVkaXQgdGhlIG1lc3NhZ2UuXG4iCiBtc2dzdHIgIkNvbW1pdCBhYmdlYnJvY2hlbjsgU2llIGhhYmVuIGRpZSBCZXNjaHJlaWJ1bmcgbmljaHQgZWRpdGllcnQuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU5NworIzogYnVpbHRpbi9jb21taXQuYzoxNjE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdCBkdWUgdG8gZW1wdHkgY29tbWl0IG1lc3NhZ2UuXG4iCiBtc2dzdHIgIkNvbW1pdCBhdWZncnVuZCBsZWVyZXIgQmVzY2hyZWlidW5nIGFiZ2Vicm9jaGVuLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE2MTIgYnVpbHRpbi9tZXJnZS5jOjg2MSBidWlsdGluL21lcmdlLmM6ODg2CisjOiBidWlsdGluL2NvbW1pdC5jOjE2MzQgYnVpbHRpbi9tZXJnZS5jOjg2MSBidWlsdGluL21lcmdlLmM6ODg2CiBtc2dpZCAiZmFpbGVkIHRvIHdyaXRlIGNvbW1pdCBvYmplY3QiCiBtc2dzdHIgIkZlaGxlciBiZWltIFNjaHJlaWJlbiBkZXMgQ29tbWl0LU9iamVrdGVzLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNjMzCisjOiBidWlsdGluL2NvbW1pdC5jOjE2NTUKIG1zZ2lkICJjYW5ub3QgbG9jayBIRUFEIHJlZiIKIG1zZ3N0ciAiS2FubiBSZWZlcmVueiB2b24gSEVBRCBuaWNodCBzcGVycmVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNjM3CisjOiBidWlsdGluL2NvbW1pdC5jOjE2NTkKIG1zZ2lkICJjYW5ub3QgdXBkYXRlIEhFQUQgcmVmIgogbXNnc3RyICJLYW5uIFJlZmVyZW56IHZvbiBIRUFEIG5pY2h0IGFrdHVhbGlzaWVyZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE2NDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTY3MAogbXNnaWQgIiIKICJSZXBvc2l0b3J5IGhhcyBiZWVuIHVwZGF0ZWQsIGJ1dCB1bmFibGUgdG8gd3JpdGVcbiIKICJuZXdfaW5kZXggZmlsZS4gQ2hlY2sgdGhhdCBkaXNrIGlzIG5vdCBmdWxsIG9yIHF1b3RhIGlzXG4iCkBAIC00NTUxLDEyNyArNDcyNiwxMzEgQEAKICJ2b2xsIHVuZCBJaHIgS29udGluZ2VudCBuaWNodCBhdWZnZWJyYXVjaHQgaXN0IHVuZCBmw7xocmVuIFNpZVxuIgogImFuc2NobGllw59lbmQgXCJnaXQgcmVzZXQgSEVBRFwiIHp1IFdpZWRlcmhlcnN0ZWxsdW5nIGF1cy4iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NworIzogYnVpbHRpbi9jb25maWcuYzo4CiBtc2dpZCAiZ2l0IGNvbmZpZyBbb3B0aW9uc10iCiBtc2dzdHIgImdpdCBjb25maWcgW09wdGlvbmVuXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1MgorIzogYnVpbHRpbi9jb25maWcuYzo1NAogbXNnaWQgIkNvbmZpZyBmaWxlIGxvY2F0aW9uIgogbXNnc3RyICJPcnQgZGVyIEtvbmZpZ3VyYXRpb25zZGF0ZWkiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKIG1zZ2lkICJ1c2UgZ2xvYmFsIGNvbmZpZyBmaWxlIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgZ2xvYmFsZSBLb25maWd1cmF0aW9uc2RhdGVpIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU0CisjOiBidWlsdGluL2NvbmZpZy5jOjU2CiBtc2dpZCAidXNlIHN5c3RlbSBjb25maWcgZmlsZSIKIG1zZ3N0ciAidmVyd2VuZGV0IHN5c3RlbXdlaXRlIEtvbmZpZ3VyYXRpb25zZGF0ZWkiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKIG1zZ2lkICJ1c2UgcmVwb3NpdG9yeSBjb25maWcgZmlsZSIKIG1zZ3N0ciAidmVyd2VuZGV0IEtvbmZpZ3VyYXRpb25zZGF0ZWkgZGVzIFJlcG9zaXRvcmllcyIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NgorIzogYnVpbHRpbi9jb25maWcuYzo1OAogbXNnaWQgInVzZSBnaXZlbiBjb25maWcgZmlsZSIKIG1zZ3N0ciAidmVyd2VuZGV0IGRpZSBhbmdlZ2ViZW5lIEtvbmZpZ3VyYXRpb25zZGF0ZWkiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTkKIG1zZ2lkICJibG9iLWlkIgogbXNnc3RyICJCbG9iLUlkIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU3CisjOiBidWlsdGluL2NvbmZpZy5jOjU5CiBtc2dpZCAicmVhZCBjb25maWcgZnJvbSBnaXZlbiBibG9iIG9iamVjdCIKIG1zZ3N0ciAibGllc3QgS29uZmlndXJhdGlvbiB2b24gYW5nZWdlYmVuZW0gQmxvYi1PYmpla3QiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTgKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjAKIG1zZ2lkICJBY3Rpb24iCiBtc2dzdHIgIkFrdGlvbiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1OQorIzogYnVpbHRpbi9jb25maWcuYzo2MQogbXNnaWQgImdldCB2YWx1ZTogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJnaWJ0IFdlcnQgenVyw7xjazogTmFtZSBbV2VydC1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjAKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjIKIG1zZ2lkICJnZXQgYWxsIHZhbHVlczoga2V5IFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImdpYnQgYWxsZSBXZXJ0ZSB6dXLDvGNrOiBTY2hsw7xzc2VsIFtXZXJ0LXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MQorIzogYnVpbHRpbi9jb25maWcuYzo2MwogbXNnaWQgImdldCB2YWx1ZXMgZm9yIHJlZ2V4cDogbmFtZS1yZWdleCBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJnaWJ0IFdlcnRlIGbDvHIgZGVuIHJlZ3Vsw6RyZW4gQXVzZHJ1Y2sgenVyw7xjazogTmFtZS1yZWdleCBbV2VydC1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjIKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKK21zZ2lkICJnZXQgdmFsdWUgc3BlY2lmaWMgZm9yIHRoZSBVUkw6IHNlY3Rpb25bLnZhcl0gVVJMIgorbXNnc3RyICJnaWJ0IFdlcnQgc3BlemlmaXNjaCBmw7xyIGVpbmUgVVJMIHp1csO8Y2s6IHNlY3Rpb25bLnZhcl0gVVJMIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjY1CiBtc2dpZCAicmVwbGFjZSBhbGwgbWF0Y2hpbmcgdmFyaWFibGVzOiBuYW1lIHZhbHVlIFt2YWx1ZV9yZWdleF0iCiBtc2dzdHIgImVyc2V0enQgYWxsZSBwYXNzZW5kZW4gVmFyaWFibGVuOiBOYW1lIFdlcnQgW1dlcnQtcmVnZXhdICIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MworIzogYnVpbHRpbi9jb25maWcuYzo2NgogbXNnaWQgImFkZCBhIG5ldyB2YXJpYWJsZTogbmFtZSB2YWx1ZSIKIG1zZ3N0ciAiZsO8Z3QgbmV1ZSBWYXJpYWJsZSBoaW56dTogTmFtZSBXZXJ0IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY0CisjOiBidWlsdGluL2NvbmZpZy5jOjY3CiBtc2dpZCAicmVtb3ZlIGEgdmFyaWFibGU6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiZW50ZmVybnQgZWluZSBWYXJpYWJsZTogTmFtZSBbV2VydC1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjgKIG1zZ2lkICJyZW1vdmUgYWxsIG1hdGNoZXM6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiZW50ZmVybnQgYWxsZSDDnGJlcmVpbnN0aW1tdW5nZW46IE5hbWUgW1dlcnQtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY2CisjOiBidWlsdGluL2NvbmZpZy5jOjY5CiBtc2dpZCAicmVuYW1lIHNlY3Rpb246IG9sZC1uYW1lIG5ldy1uYW1lIgogbXNnc3RyICJiZW5lbm50IGVpbmUgU2VrdGlvbiB1bTogYWx0ZXItTmFtZSBuZXVlci1OYW1lIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY3CisjOiBidWlsdGluL2NvbmZpZy5jOjcwCiBtc2dpZCAicmVtb3ZlIGEgc2VjdGlvbjogbmFtZSIKIG1zZ3N0ciAiZW50ZmVybnQgZWluZSBTZWt0aW9uOiBOYW1lIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY4CisjOiBidWlsdGluL2NvbmZpZy5jOjcxCiBtc2dpZCAibGlzdCBhbGwiCiBtc2dzdHIgImxpc3RldCBhbGxlcyBhdWYiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzIKIG1zZ2lkICJvcGVuIGFuIGVkaXRvciIKIG1zZ3N0ciAiw7ZmZm5ldCBlaW5lbiBFZGl0b3IiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzAgYnVpbHRpbi9jb25maWcuYzo3MQorIzogYnVpbHRpbi9jb25maWcuYzo3MyBidWlsdGluL2NvbmZpZy5jOjc0CiBtc2dpZCAic2xvdCIKIG1zZ3N0ciAiU2xvdCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MAorIzogYnVpbHRpbi9jb25maWcuYzo3MwogbXNnaWQgImZpbmQgdGhlIGNvbG9yIGNvbmZpZ3VyZWQ6IFtkZWZhdWx0XSIKIG1zZ3N0ciAiZmluZGV0IGRpZSBrb25maWd1cmllcnRlIEZhcmJlOiBbU3RhbmRhcmRdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcxCisjOiBidWlsdGluL2NvbmZpZy5jOjc0CiBtc2dpZCAiZmluZCB0aGUgY29sb3Igc2V0dGluZzogW3N0ZG91dC1pcy10dHldIgogbXNnc3RyICJmaW5kZXQgZGllIEZhcmJlaW5zdGVsbHVuZzogW1N0YW5kYXJkLUF1c2dhYmUtaXN0LVRlcm1pbmFsXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MgorIzogYnVpbHRpbi9jb25maWcuYzo3NQogbXNnaWQgIlR5cGUiCiBtc2dzdHIgIlR5cCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MworIzogYnVpbHRpbi9jb25maWcuYzo3NgogbXNnaWQgInZhbHVlIGlzIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiIKIG1zZ3N0ciAiV2VydCBpc3QgXCJ0cnVlXCIgb2RlciBcImZhbHNlXCIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzQKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzcKIG1zZ2lkICJ2YWx1ZSBpcyBkZWNpbWFsIG51bWJlciIKIG1zZ3N0ciAiV2VydCBpc3QgZWluZSBEZXppbWFsemFobCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NQorIzogYnVpbHRpbi9jb25maWcuYzo3OAogbXNnaWQgInZhbHVlIGlzIC0tYm9vbCBvciAtLWludCIKIG1zZ3N0ciAiV2VydCBpc3QgLS1ib29sIG9kZXIgLS1pbnQiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzYKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzkKIG1zZ2lkICJ2YWx1ZSBpcyBhIHBhdGggKGZpbGUgb3IgZGlyZWN0b3J5IG5hbWUpIgogbXNnc3RyICJXZXJ0IGlzdCBlaW4gUGZhZCAoRGF0ZWkgb2RlciBWZXJ6ZWljaG5pc25hbWUpIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc3CisjOiBidWlsdGluL2NvbmZpZy5jOjgwCiBtc2dpZCAiT3RoZXIiCiBtc2dzdHIgIlNvbnN0aWdlcyIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3OAorIzogYnVpbHRpbi9jb25maWcuYzo4MQogbXNnaWQgInRlcm1pbmF0ZSB2YWx1ZXMgd2l0aCBOVUwgYnl0ZSIKIG1zZ3N0ciAic2NobGllw590IFdlcnRlIG1pdCBOVUwtQnl0ZSBhYiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3OQorIzogYnVpbHRpbi9jb25maWcuYzo4MgogbXNnaWQgInJlc3BlY3QgaW5jbHVkZSBkaXJlY3RpdmVzIG9uIGxvb2t1cCIKIG1zZ3N0ciAiYmVhY2h0ZXQgXCJpbmNsdWRlXCItRGlyZWt0aXZlbiBiZWltIE5hY2hzY2hsYWdlbiIKIApAQCAtNDY4NCw4ICs0ODYzLDggQEAKIG1zZ3N0ciAiZ2lidCBHcsO2w59lbmFuZ2FiZW4gaW4gbWVuc2NoZW5sZXNiYXJlbiBGb3JtYXQgYXVzIgogCiAjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKLW1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIDxjb21taXR0aXNoPioiCi1tc2dzdHIgImdpdCBkZXNjcmliZSBbT3B0aW9uZW5dIDxjb21taXR0aXNoPioiCittc2dpZCAiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSA8Y29tbWl0LWlzaD4qIgorbXNnc3RyICJnaXQgZGVzY3JpYmUgW09wdGlvbmVuXSA8Y29tbWl0LWlzaD4qIgogCiAjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTcKIG1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIC0tZGlydHkiCkBAIC00ODIyLDcgKzUwMDEsNyBAQAogbXNnc3RyICJLZWluZSBOYW1lbiBnZWZ1bmRlbiwga2FubiBuaWNodHMgYmVzY2hyZWliZW4uIgogCiAjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDg5Ci1tc2dpZCAiLS1kaXJ0eSBpcyBpbmNvbXBhdGlibGUgd2l0aCBjb21taXR0aXNoZXMiCittc2dpZCAiLS1kaXJ0eSBpcyBpbmNvbXBhdGlibGUgd2l0aCBjb21taXQtaXNoZXMiCiBtc2dzdHIgIkRpZSBPcHRpb24gLS1kaXJ0eSBrYW5uIG5pY2h0IG1pdCBDb21taXRzIHZlcndlbmRldCB3ZXJkZW4uIgogCiAjOiBidWlsdGluL2RpZmYuYzo3OQpAQCAtNDg1OCwzOSArNTAzNywzOSBAQAogbXNnaWQgImdpdCBmYXN0LWV4cG9ydCBbcmV2LWxpc3Qtb3B0c10iCiBtc2dzdHIgImdpdCBmYXN0LWV4cG9ydCBbcmV2LWxpc3Qtb3B0c10iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjYKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzMKIG1zZ2lkICJzaG93IHByb2dyZXNzIGFmdGVyIDxuPiBvYmplY3RzIgogbXNnc3RyICJ6ZWlndCBGb3J0c2Nocml0dCBuYWNoIDxuPiBPYmpla3RlbiBhbiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2OAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NQogbXNnaWQgInNlbGVjdCBoYW5kbGluZyBvZiBzaWduZWQgdGFncyIKIG1zZ3N0ciAid8OkaGx0IEJlaGFuZGx1bmcgdm9uIHNpZ25pZXJ0ZW4gVGFncyIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MQorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3OAogbXNnaWQgInNlbGVjdCBoYW5kbGluZyBvZiB0YWdzIHRoYXQgdGFnIGZpbHRlcmVkIG9iamVjdHMiCiBtc2dzdHIgInfDpGhsdCBCZWhhbmRsdW5nIHZvbiBUYWdzLCBkaWUgZ2VmaWx0ZXJ0ZSBPYmpla3RlIG1hcmtpZXJlbiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MQogbXNnaWQgIkR1bXAgbWFya3MgdG8gdGhpcyBmaWxlIgogbXNnc3RyICJTY2hyZWlidCBLZW5uemVpY2hlbiBpbiBkaWVzZSBEYXRlaSIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NgorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MwogbXNnaWQgIkltcG9ydCBtYXJrcyBmcm9tIHRoaXMgZmlsZSIKIG1zZ3N0ciAiSW1wb3J0aWVydCBLZW5uemVpY2hlbiB2b24gZGllc2VyIERhdGVpIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc4CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njg1CiBtc2dpZCAiRmFrZSBhIHRhZ2dlciB3aGVuIHRhZ3MgbGFjayBvbmUiCiBtc2dzdHIgImVyemV1Z3Qga8O8bnN0bGljaCBlaW5lbiBUYWctRXJzdGVsbGVyLCB3ZW5uIGRhcyBUYWcga2VpbmVuIGhhdCIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4NwogbXNnaWQgIk91dHB1dCBmdWxsIHRyZWUgZm9yIGVhY2ggY29tbWl0IgogbXNnc3RyICJnaWJ0IGbDvHIgamVkZW4gQ29tbWl0IGRhcyBnZXNhbXRlIFZlcnplaWNobmlzIGF1cyIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MgorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4OQogbXNnaWQgIlVzZSB0aGUgZG9uZSBmZWF0dXJlIHRvIHRlcm1pbmF0ZSB0aGUgc3RyZWFtIgogbXNnc3RyICJCZW51dHp0IGRpZSBcImRvbmVcIi1GdW5rdGlvbiB1bSBkZW4gU3Ryb20gYWJ6dXNjaGxpZcOfZW4iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODMKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2OTAKIG1zZ2lkICJTa2lwIG91dHB1dCBvZiBibG9iIGRhdGEiCiBtc2dzdHIgIsOcYmVyc3ByaW5ndCBBdXNnYWJlIHZvbiBCbG9iLURhdGVuIgogCkBAIC00OTEwLDE0NyArNTA4OSwxNDcgQEAKIG1zZ2lkICJnaXQgZmV0Y2ggLS1hbGwgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBmZXRjaCAtLWFsbCBbPE9wdGlvbmVuPl0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2MAorIzogYnVpbHRpbi9mZXRjaC5jOjc0CiBtc2dpZCAiZmV0Y2ggZnJvbSBhbGwgcmVtb3RlcyIKIG1zZ3N0ciAiZm9yZGVydCB2b24gYWxsZW4gUmVtb3RlLVJlcG9zaXRvcmllcyBhbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjYyCisjOiBidWlsdGluL2ZldGNoLmM6NzYKIG1zZ2lkICJhcHBlbmQgdG8gLmdpdC9GRVRDSF9IRUFEIGluc3RlYWQgb2Ygb3ZlcndyaXRpbmciCiBtc2dzdHIgImjDpG5ndCBhbiAuZ2l0L0ZFVENIX0hFQUQgYW4sIGFuc3RhdHQgenUgw7xiZXJzY2hyZWliZW4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2NAorIzogYnVpbHRpbi9mZXRjaC5jOjc4CiBtc2dpZCAicGF0aCB0byB1cGxvYWQgcGFjayBvbiByZW1vdGUgZW5kIgogbXNnc3RyICJQZmFkIGRlcyBQcm9ncmFtbXMgenVtIEhvY2hsYWRlbiB2b24gUGFrZXRlbiBhdWYgZGVyIEdlZ2Vuc2VpdGUiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2NQorIzogYnVpbHRpbi9mZXRjaC5jOjc5CiBtc2dpZCAiZm9yY2Ugb3ZlcndyaXRlIG9mIGxvY2FsIGJyYW5jaCIKIG1zZ3N0ciAiZXJ6d2luZ3QgZGFzIMOcYmVyc2NocmVpYmVuIHZvbiBsb2thbGVuIEJyYW5jaGVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NjcKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4MQogbXNnaWQgImZldGNoIGZyb20gbXVsdGlwbGUgcmVtb3RlcyIKIG1zZ3N0ciAiZm9yZGVydCB2b24gbWVocmVyZW4gUmVtb3RlLVJlcG9zaXRvcmllcyBhbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjY5CisjOiBidWlsdGluL2ZldGNoLmM6ODMKIG1zZ2lkICJmZXRjaCBhbGwgdGFncyBhbmQgYXNzb2NpYXRlZCBvYmplY3RzIgogbXNnc3RyICJmb3JkZXJ0IGFsbGUgVGFncyB1bmQgdmVyYnVuZGVuZSBPYmpla3RlIGFuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NzEKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4NQogbXNnaWQgImRvIG5vdCBmZXRjaCBhbGwgdGFncyAoLS1uby10YWdzKSIKIG1zZ3N0ciAiZm9yZGVydCBuaWNodCBhbGxlIFRhZ3MgYW4gKC0tbm8tdGFncykiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3MworIzogYnVpbHRpbi9mZXRjaC5jOjg3CiBtc2dpZCAicHJ1bmUgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIG5vIGxvbmdlciBvbiByZW1vdGUiCiBtc2dzdHIgIiIKICJlbnRmZXJudCBSZW1vdGUtVHJhY2tpbmctQnJhbmNoZXMsIGRpZSBzaWNoIG5pY2h0IG1laHIgaW0gUmVtb3RlLVJlcG9zaXRvcnkgIgogImJlZmluZGVuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NzQKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4OAogbXNnaWQgIm9uLWRlbWFuZCIKIG1zZ3N0ciAiYmVpLUJlZGFyZiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc1CisjOiBidWlsdGluL2ZldGNoLmM6ODkKIG1zZ2lkICJjb250cm9sIHJlY3Vyc2l2ZSBmZXRjaGluZyBvZiBzdWJtb2R1bGVzIgogbXNnc3RyICJrb250cm9sbGllcnQgcmVrdXJzaXZlIEFuZm9yZGVydW5nZW4gdm9uIFN1Ym1vZHVsZW4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3OQorIzogYnVpbHRpbi9mZXRjaC5jOjkzCiBtc2dpZCAia2VlcCBkb3dubG9hZGVkIHBhY2siCiBtc2dzdHIgImJlaMOkbHQgaGVydW50ZXJnZWxhZGVuZXMgUGFrZXQiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4MQorIzogYnVpbHRpbi9mZXRjaC5jOjk1CiBtc2dpZCAiYWxsb3cgdXBkYXRpbmcgb2YgSEVBRCByZWYiCiBtc2dzdHIgImVybGF1YnQgQWt0dWFsaXNpZXJ1bmcgZGVyIFwiSEVBRFwiLVJlZmVyZW56IgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODQKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5OAogbXNnaWQgImRlZXBlbiBoaXN0b3J5IG9mIHNoYWxsb3cgY2xvbmUiCiBtc2dzdHIgInZlcnRpZWZ0IGRpZSBIaXN0b3JpZSBlaW5lcyBmbGFjaGVuIEtsb25zIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODYKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDAKIG1zZ2lkICJjb252ZXJ0IHRvIGEgY29tcGxldGUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAia29udmVydGllcnQgenUgZWluZW0gdm9sbHN0w6RuZGlnZW4gUmVwb3NpdG9yeSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg4IGJ1aWx0aW4vbG9nLmM6MTE3NworIzogYnVpbHRpbi9mZXRjaC5jOjEwMiBidWlsdGluL2xvZy5jOjExOTcKIG1zZ2lkICJkaXIiCiBtc2dzdHIgIlZlcnplaWNobmlzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODkKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDMKIG1zZ2lkICJwcmVwZW5kIHRoaXMgdG8gc3VibW9kdWxlIHBhdGggb3V0cHV0IgogbXNnc3RyICJzdGVsbHQgZGllcyBhbiBkaWUgQXVzZ2FiZSBkZXIgU3VibW9kdWwtUGZhZGUgdm9yYW4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MgorIzogYnVpbHRpbi9mZXRjaC5jOjEwNgogbXNnaWQgImRlZmF1bHQgbW9kZSBmb3IgcmVjdXJzaW9uIgogbXNnc3RyICJTdGFuZGFyZC1Nb2R1cyBmw7xyIFJla3Vyc2lvbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjIyMAorIzogYnVpbHRpbi9mZXRjaC5jOjIzNgogbXNnaWQgIkNvdWxkbid0IGZpbmQgcmVtb3RlIHJlZiBIRUFEIgogbXNnc3RyICJLb25udGUgUmVtb3RlLVJlZmVyZW56IHZvbiBIRUFEIG5pY2h0IGZpbmRlbi4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyNzMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyOTAKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0ICVzIG5vdCBmb3VuZCIKIG1zZ3N0ciAiT2JqZWt0ICVzIG5pY2h0IGdlZnVuZGVuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mjc4CisjOiBidWlsdGluL2ZldGNoLmM6Mjk1CiBtc2dpZCAiW3VwIHRvIGRhdGVdIgogbXNnc3RyICJbYWt0dWVsbF0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyOTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiISAlLSpzICUtKnMgLT4gJXMgIChjYW4ndCBmZXRjaCBpbiBjdXJyZW50IGJyYW5jaCkiCiBtc2dzdHIgIiIKICIhICUtKnMgJS0qcyAtPiAlcyAgKGthbm4gXCJmZXRjaFwiIGltIGFrdHVlbGxlbiBCcmFuY2ggbmljaHQgYXVzZsO8aHJlbikiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyOTMgYnVpbHRpbi9mZXRjaC5jOjM3OQorIzogYnVpbHRpbi9mZXRjaC5jOjMxMCBidWlsdGluL2ZldGNoLmM6Mzk2CiBtc2dpZCAiW3JlamVjdGVkXSIKIG1zZ3N0ciAiW3p1csO8Y2tnZXdpZXNlbl0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMDQKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjEKIG1zZ2lkICJbdGFnIHVwZGF0ZV0iCiBtc2dzdHIgIltUYWcgQWt0dWFsaXNpZXJ1bmddIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzA2IGJ1aWx0aW4vZmV0Y2guYzozNDEgYnVpbHRpbi9mZXRjaC5jOjM1OQorIzogYnVpbHRpbi9mZXRjaC5jOjMyMyBidWlsdGluL2ZldGNoLmM6MzU4IGJ1aWx0aW4vZmV0Y2guYzozNzYKIG1zZ2lkICIgICh1bmFibGUgdG8gdXBkYXRlIGxvY2FsIHJlZikiCiBtc2dzdHIgIiAgKGthbm4gbG9rYWxlIFJlZmVyZW56IG5pY2h0IGFrdHVhbGlzaWVyZW4pIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzI0CisjOiBidWlsdGluL2ZldGNoLmM6MzQxCiBtc2dpZCAiW25ldyB0YWddIgogbXNnc3RyICJbbmV1ZXMgVGFnXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMyNworIzogYnVpbHRpbi9mZXRjaC5jOjM0NAogbXNnaWQgIltuZXcgYnJhbmNoXSIKIG1zZ3N0ciAiW25ldWVyIEJyYW5jaF0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMzAKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNDcKIG1zZ2lkICJbbmV3IHJlZl0iCiBtc2dzdHIgIltuZXVlIFJlZmVyZW56XSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM3NQorIzogYnVpbHRpbi9mZXRjaC5jOjM5MgogbXNnaWQgInVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmIgogbXNnc3RyICJrYW5uIGxva2FsZSBSZWZlcmVueiBuaWNodCBha3R1YWxpc2llcmVuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mzc1CisjOiBidWlsdGluL2ZldGNoLmM6MzkyCiBtc2dpZCAiZm9yY2VkIHVwZGF0ZSIKIG1zZ3N0ciAiQWt0dWFsaXNpZXJ1bmcgZXJ6d3VuZ2VuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzgxCisjOiBidWlsdGluL2ZldGNoLmM6Mzk4CiBtc2dpZCAiKG5vbi1mYXN0LWZvcndhcmQpIgogbXNnc3RyICIoa2VpbiBWb3JzcHVsZW4pIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDEyIGJ1aWx0aW4vZmV0Y2guYzo3MTgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo0MjkgYnVpbHRpbi9mZXRjaC5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAlczogJXNcbiIKIG1zZ3N0ciAia2FubiAlcyBuaWNodCDDtmZmbmVuOiAlc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDIxCisjOiBidWlsdGluL2ZldGNoLmM6NDM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHNcbiIKIG1zZ3N0ciAiJXMgaGF0IG5pY2h0IGFsbGUgZXJmb3JkZXJsaWNoZW4gT2JqZWt0ZSBnZXNlbmRldFxuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTIwCisjOiBidWlsdGluL2ZldGNoLmM6NTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZyb20gJS4qc1xuIgogbXNnc3RyICJWb24gJS4qc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTMxCisjOiBidWlsdGluL2ZldGNoLmM6NTQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJzb21lIGxvY2FsIHJlZnMgY291bGQgbm90IGJlIHVwZGF0ZWQ7IHRyeSBydW5uaW5nXG4iCkBAIC01MDU5LDU3ICs1MjM4LDU3IEBACiAiRWluaWdlIGxva2FsZSBSZWZlcmVuemVuIGtvbm50ZW4gbmljaHQgYWt0dWFsaXNpZXJ0IHdlcmRlbjsgdmVyc3VjaGVuIFNpZVxuIgogIidnaXQgcmVtb3RlIHBydW5lICVzJyB1bSBqZWRlbiDDpGx0ZXJlbiwgd2lkZXJzcHLDvGNobGljaGVuIEJyYW5jaCB6dSBsw7ZzY2hlbi4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1ODEKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1OTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgKCVzIHdpbGwgYmVjb21lIGRhbmdsaW5nKSIKIG1zZ3N0ciAiICAgKCVzIHdpcmQgdW5yZWZlcmVuemllcnQpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTgyCisjOiBidWlsdGluL2ZldGNoLmM6NTk5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICglcyBoYXMgYmVjb21lIGRhbmdsaW5nKSIKIG1zZ3N0ciAiICAgKCVzIHd1cmRlIHVucmVmZXJlbnppZXJ0KSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU4OQorIzogYnVpbHRpbi9mZXRjaC5jOjYwNgogbXNnaWQgIltkZWxldGVkXSIKIG1zZ3N0ciAiW2dlbMO2c2NodF0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1OTAgYnVpbHRpbi9yZW1vdGUuYzoxMDU1CisjOiBidWlsdGluL2ZldGNoLmM6NjA3IGJ1aWx0aW4vcmVtb3RlLmM6MTA1NQogbXNnaWQgIihub25lKSIKIG1zZ3N0ciAiKG5pY2h0cykiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3MDgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVmdXNpbmcgdG8gZmV0Y2ggaW50byBjdXJyZW50IGJyYW5jaCAlcyBvZiBub24tYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAiRGVyIFwiZmV0Y2hcIiBpbiBkZW4gYWt0dWVsbGVuIEJyYW5jaCAlcyB2b24gZWluZW0gbmljaHQtQmFyZS1SZXBvc2l0b3J5ICIKICJ3dXJkZSB2ZXJ3ZWlnZXJ0LiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc0MgotIywgYy1mb3JtYXQKLW1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBmZXRjaCBmcm9tICVzIgotbXNnc3RyICJXZWnDnyBuaWNodCB3aWUgdm9uICVzIGFuZ2Vmb3JkZXJ0IHdpcmQuIgotCi0jOiBidWlsdGluL2ZldGNoLmM6ODIzCisjOiBidWlsdGluL2ZldGNoLmM6NzQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiCiBtc2dzdHIgIk9wdGlvbiBcIiVzXCIgV2VydCBcIiVzXCIgaXN0IG5pY2h0IGfDvGx0aWcgZsO8ciAlcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjgyNgorIzogYnVpbHRpbi9mZXRjaC5jOjc0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJPcHRpb24gXCIlc1wiIGlzIGlnbm9yZWQgZm9yICVzXG4iCiBtc2dzdHIgIk9wdGlvbiBcIiVzXCIgd2lyZCBpZ25vcmllcnQgZsO8ciAlc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTI4CisjOiBidWlsdGluL2ZldGNoLmM6ODAxCisjLCBjLWZvcm1hdAorbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGZldGNoIGZyb20gJXMiCittc2dzdHIgIldlacOfIG5pY2h0IHdpZSB2b24gJXMgYW5nZWZvcmRlcnQgd2lyZC4iCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmV0Y2hpbmcgJXNcbiIKIG1zZ3N0ciAiRm9yZGVyZSBhbiB2b24gJXNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkzMCBidWlsdGluL3JlbW90ZS5jOjEwMAorIzogYnVpbHRpbi9mZXRjaC5jOjk3OCBidWlsdGluL3JlbW90ZS5jOjEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmV0Y2ggJXMiCiBtc2dzdHIgIktvbm50ZSBuaWNodCB2b24gJXMgYW5mb3JkZXJuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTQ5CisjOiBidWlsdGluL2ZldGNoLmM6OTk3CiBtc2dpZCAiIgogIk5vIHJlbW90ZSByZXBvc2l0b3J5IHNwZWNpZmllZC4gIFBsZWFzZSwgc3BlY2lmeSBlaXRoZXIgYSBVUkwgb3IgYVxuIgogInJlbW90ZSBuYW1lIGZyb20gd2hpY2ggbmV3IHJldmlzaW9ucyBzaG91bGQgYmUgZmV0Y2hlZC4iCkBAIC01MTE4LDM1ICs1Mjk3LDM1IEBACiAib2RlciBkZW4gTmFtZW4gZGVzIFJlbW90ZS1SZXBvc2l0b3JpZXMgYW4sIHZvbiB3ZWxjaGVtIG5ldWVcbiIKICJDb21taXRzIGFuZ2Vmb3JkZXJ0IHdlcmRlbiBzb2xsZW4uIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTY5CisjOiBidWlsdGluL2ZldGNoLmM6MTAyMAogbXNnaWQgIllvdSBuZWVkIHRvIHNwZWNpZnkgYSB0YWcgbmFtZS4iCiBtc2dzdHIgIlNpZSBtw7xzc2VuIGRlbiBOYW1lbiBkZXMgVGFncyBhbmdlYmVuLiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDY4CiBtc2dpZCAiLS1kZXB0aCBhbmQgLS11bnNoYWxsb3cgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIiIKICJEaWUgT3B0aW9uZW4gLS1kZXB0aCB1bmQgLS11bnNoYWxsb3cga8O2bm5lbiBuaWNodCBnZW1laW5zYW0gdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE3CisjOiBidWlsdGluL2ZldGNoLmM6MTA3MAogbXNnaWQgIi0tdW5zaGFsbG93IG9uIGEgY29tcGxldGUgcmVwb3NpdG9yeSBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbiAtLXVuc2hhbGxvdyBrYW5uIG5pY2h0IGluIGVpbmVtIHZvbGxzdMOkbmRpZ2VuIFJlcG9zaXRvcnkgIgogInZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAzNgorIzogYnVpbHRpbi9mZXRjaC5jOjEwODkKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCB0YWtlIGEgcmVwb3NpdG9yeSBhcmd1bWVudCIKIG1zZ3N0ciAiZmV0Y2ggLS1hbGwgYWt6ZXB0aWVydCBrZWluIFJlcG9zaXRvcnkgYWxzIEFyZ3VtZW50IgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAzOAorIzogYnVpbHRpbi9mZXRjaC5jOjEwOTEKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCBtYWtlIHNlbnNlIHdpdGggcmVmc3BlY3MiCiBtc2dzdHIgImZldGNoIC0tYWxsIGthbm4gbmljaHQgbWl0IFJlZnNwZWNzIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTA0OQorIzogYnVpbHRpbi9mZXRjaC5jOjExMDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gc3VjaCByZW1vdGUgb3IgcmVtb3RlIGdyb3VwOiAlcyIKIG1zZ3N0ciAiS2VpbiBSZW1vdGUtUmVwb3NpdG9yeSAoZWluemVsbiBvZGVyIEdydXBwZSk6ICVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTA1NworIzogYnVpbHRpbi9mZXRjaC5jOjExMTAKIG1zZ2lkICJGZXRjaGluZyBhIGdyb3VwIGFuZCBzcGVjaWZ5aW5nIHJlZnNwZWNzIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIiIKICJEYXMgQWJob2xlbiBlaW5lciBHcnVwcGUgdm9uIFJlbW90ZS1SZXBvc2l0b3JpZXMga2FubiBuaWNodCBtaXQgZGVyIEFuZ2FiZVxuIgpAQCAtNTE1Nyw5ICs1MzM2LDkgQEAKIG1zZ3N0ciAiIgogImdpdCBmbXQtbWVyZ2UtbXNnIFstbSA8QmVzY2hyZWlidW5nPl0gWy0tbG9nWz08bj5dfC0tbm8tbG9nXSBbLS1maWxlIDxEYXRlaT5dIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjMgYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY2IGJ1aWx0aW4vZ3JlcC5jOjcwMAotIzogYnVpbHRpbi9tZXJnZS5jOjIwMyBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzkKLSM6IGJ1aWx0aW4vdGFnLmM6NDQ2IHBhcnNlLW9wdGlvbnMuaDoxMzMgcGFyc2Utb3B0aW9ucy5oOjI0MworIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzIGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NiBidWlsdGluL2dyZXAuYzo3MDIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMgYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NSBidWlsdGluL3Nob3ctcmVmLmM6MTc4CisjOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTM1IHBhcnNlLW9wdGlvbnMuaDoyNDUKIG1zZ2lkICJuIgogbXNnc3RyICJBbnphaGwiCiAKQEAgLTUxODMsMTE3ICs1MzYyLDEyMiBAQAogbXNnaWQgImZpbGUgdG8gcmVhZCBmcm9tIgogbXNnc3RyICJEYXRlaSB6dW0gRWlubGVzZW4iCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTc5CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjk5NQogbXNnaWQgImdpdCBmb3ItZWFjaC1yZWYgW29wdGlvbnNdIFs8cGF0dGVybj5dIgogbXNnc3RyICJnaXQgZm9yLWVhY2gtcmVmIFtPcHRpb25lbl0gWzxNdXN0ZXI+XSIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5OTQKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAxMAogbXNnaWQgInF1b3RlIHBsYWNlaG9sZGVycyBzdWl0YWJseSBmb3Igc2hlbGxzIgogbXNnc3RyICJmb3JtYXRpZXJ0IFBsYXR6aGFsdGVyIGFscyBTaGVsbC1TdHJpbmciCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTk2CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMTIKIG1zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHBlcmwiCiBtc2dzdHIgImZvcm1hdGllcnQgUGxhdHpoYWx0ZXIgYWxzIFBlcmwtU3RyaW5nIgogCi0jOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjk5OAorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDE0CiBtc2dpZCAicXVvdGUgcGxhY2Vob2xkZXJzIHN1aXRhYmx5IGZvciBweXRob24iCiBtc2dzdHIgImZvcm1hdGllcnQgUGxhdHpoYWx0ZXIgYWxzIFB5dGhvbi1TdHJpbmciCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwMAorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDE2CiBtc2dpZCAicXVvdGUgcGxhY2Vob2xkZXJzIHN1aXRhYmx5IGZvciB0Y2wiCiBtc2dzdHIgImZvcm1hdGllcnQgUGxhdHpoYWx0ZXIgYWxzIFRDTC1TdHJpbmciCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwMworIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDE5CiBtc2dpZCAic2hvdyBvbmx5IDxuPiBtYXRjaGVkIHJlZnMiCiBtc2dzdHIgInplaWd0IG51ciA8bj4gcGFzc2VuZGUgUmVmZXJlbnplbiIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA0CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMjAKIG1zZ2lkICJmb3JtYXQiCiBtc2dzdHIgIkZvcm1hdCIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA0CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMjAKIG1zZ2lkICJmb3JtYXQgdG8gdXNlIGZvciB0aGUgb3V0cHV0IgogbXNnc3RyICJmw7xyIGRpZSBBdXNnYWJlIHp1IHZlcndlbmRlbmRlcyBGb3JtYXQiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwNQorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDIxCiBtc2dpZCAia2V5IgogbXNnc3RyICJTY2jDvHNzZWwiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwNgorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDIyCiBtc2dpZCAiZmllbGQgbmFtZSB0byBzb3J0IG9uIgogbXNnc3RyICJzb3J0aWVyZSBuYWNoIGRpZXNlbSBGZWxkIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MDgKKyM6IGJ1aWx0aW4vZnNjay5jOjYwNwogbXNnaWQgImdpdCBmc2NrIFtvcHRpb25zXSBbPG9iamVjdD4uLi5dIgogbXNnc3RyICJnaXQgZnNjayBbT3B0aW9uZW5dIFs8T2JqZWt0Pi4uLl0iCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYxNAorIzogYnVpbHRpbi9mc2NrLmM6NjEzCiBtc2dpZCAic2hvdyB1bnJlYWNoYWJsZSBvYmplY3RzIgogbXNnc3RyICJ6ZWlndCB1bmVycmVpY2hiYXJlIE9iamVrdGUiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYxNQorIzogYnVpbHRpbi9mc2NrLmM6NjE0CiBtc2dpZCAic2hvdyBkYW5nbGluZyBvYmplY3RzIgogbXNnc3RyICJ6ZWlndCB1bnJlZmVyZW56aWVydGUgT2JqZWt0ZSIKIAotIzogYnVpbHRpbi9mc2NrLmM6NjE2CisjOiBidWlsdGluL2ZzY2suYzo2MTUKIG1zZ2lkICJyZXBvcnQgdGFncyIKIG1zZ3N0ciAibWVsZGV0IFRhZ3MiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYxNworIzogYnVpbHRpbi9mc2NrLmM6NjE2CiBtc2dpZCAicmVwb3J0IHJvb3Qgbm9kZXMiCiBtc2dzdHIgIm1lbGRldCBIYXVwdHd1cnplbG4iCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYxOAorIzogYnVpbHRpbi9mc2NrLmM6NjE3CiBtc2dpZCAibWFrZSBpbmRleCBvYmplY3RzIGhlYWQgbm9kZXMiCiBtc2dzdHIgInByw7xmdCBPYmpla3RlIGluIGRlciBTdGFnaW5nLUFyZWEiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYxOQorIzogYnVpbHRpbi9mc2NrLmM6NjE4CiBtc2dpZCAibWFrZSByZWZsb2dzIGhlYWQgbm9kZXMgKGRlZmF1bHQpIgogbXNnc3RyICJwcsO8ZnQgZGllIFJlZmxvZ3MgKFN0YW5kYXJkKSIKIAotIzogYnVpbHRpbi9mc2NrLmM6NjIwCisjOiBidWlsdGluL2ZzY2suYzo2MTkKIG1zZ2lkICJhbHNvIGNvbnNpZGVyIHBhY2tzIGFuZCBhbHRlcm5hdGUgb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MjEKKyM6IGJ1aWx0aW4vZnNjay5jOjYyMAogbXNnaWQgImVuYWJsZSBtb3JlIHN0cmljdCBjaGVja2luZyIKIG1zZ3N0ciAiYWt0aXZpZXJ0IGdlbmF1ZXJlIFByw7xmdW5nIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MjMKKyM6IGJ1aWx0aW4vZnNjay5jOjYyMgogbXNnaWQgIndyaXRlIGRhbmdsaW5nIG9iamVjdHMgaW4gLmdpdC9sb3N0LWZvdW5kIgogbXNnc3RyICJzY2hyZWlidCB1bnJlZmVyZW56aWVydGUgT2JqZWt0ZSBuYWNoIC5naXQvbG9zdC1mb3VuZCIKIAotIzogYnVpbHRpbi9mc2NrLmM6NjI0IGJ1aWx0aW4vcHJ1bmUuYzoxMzQKKyM6IGJ1aWx0aW4vZnNjay5jOjYyMyBidWlsdGluL3BydW5lLmM6MTM0CiBtc2dpZCAic2hvdyBwcm9ncmVzcyIKIG1zZ3N0ciAiemVpZ3QgRm9ydHNjaHJpdHRzYW56ZWlnZSIKIAotIzogYnVpbHRpbi9nYy5jOjIyCisjOiBidWlsdGluL2djLmM6MjMKIG1zZ2lkICJnaXQgZ2MgW29wdGlvbnNdIgogbXNnc3RyICJnaXQgZ2MgW09wdGlvbmVuXSIKIAotIzogYnVpbHRpbi9nYy5jOjYzCisjOiBidWlsdGluL2djLmM6NzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCAlczogJyVzJyIKIG1zZ3N0ciAiVW5nw7xsdGlnZXIgJXM6ICclcyciCiAKLSM6IGJ1aWx0aW4vZ2MuYzo5MAorIzogYnVpbHRpbi9nYy5jOjEwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnNhbmVseSBsb25nIG9iamVjdCBkaXJlY3RvcnkgJS4qcyIKIG1zZ3N0ciAienUgbGFuZ2VzIE9iamVrdC1WZXJ6ZWljaG5pcyAlLipzIgogCi0jOiBidWlsdGluL2djLmM6MTc5CisjOiBidWlsdGluL2djLmM6MjYxCiBtc2dpZCAicHJ1bmUgdW5yZWZlcmVuY2VkIG9iamVjdHMiCiBtc2dzdHIgImVudGZlcm50IHVucmVmZXJlbnppZXJ0ZSBPYmpla3RlIgogCi0jOiBidWlsdGluL2djLmM6MTgxCisjOiBidWlsdGluL2djLmM6MjYzCiBtc2dpZCAiYmUgbW9yZSB0aG9yb3VnaCAoaW5jcmVhc2VkIHJ1bnRpbWUpIgogbXNnc3RyICJtZWhyIEdyw7xuZGxpY2hrZWl0IChlcmjDtmh0IExhdWZ6ZWl0KSIKIAotIzogYnVpbHRpbi9nYy5jOjE4MgorIzogYnVpbHRpbi9nYy5jOjI2NAogbXNnaWQgImVuYWJsZSBhdXRvLWdjIG1vZGUiCiBtc2dzdHIgImFrdGl2aWVydCBcImF1dG8tZ2NcIiBNb2R1cyIKIAotIzogYnVpbHRpbi9nYy5jOjIyMgorIzogYnVpbHRpbi9nYy5jOjI2NQorbXNnaWQgImZvcmNlIHJ1bm5pbmcgZ2MgZXZlbiBpZiB0aGVyZSBtYXkgYmUgYW5vdGhlciBnYyBydW5uaW5nIgorbXNnc3RyICJlcnp3aW5ndCBBdXNmw7xocnVuZyB2b24gXCJnaXQgZ2NcIiBzZWxic3Qgd2VubiBlaW4gYW5kZXJlc1xuIgorIlwiZ2l0IGdjXCIgYmVyZWl0cyBhdXNnZWbDvGhydCB3aXJkIgorCisjOiBidWlsdGluL2djLmM6MzA1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJBdXRvIHBhY2tpbmcgdGhlIHJlcG9zaXRvcnkgZm9yIG9wdGltdW0gcGVyZm9ybWFuY2UuIFlvdSBtYXkgYWxzb1xuIgpAQCAtNTMwMyw0MyArNTQ4Nyw1MiBAQAogImtvbXByaW1pZXJ0LiBTaWUga8O2bm5lbiBhdWNoIFwiZ2l0IGdjXCIgbWFudWVsbCBhdXNmw7xocmVuLlxuIgogIlNpZWhlIFwiZ2l0IGhlbHAgZ2NcIiBmw7xyIHdlaXRlcmUgSW5mb3JtYXRpb25lbi5cbiIKIAotIzogYnVpbHRpbi9nYy5jOjI0OQorIy4gYmUgcXVpZXQgb24gLS1hdXRvCisjOiBidWlsdGluL2djLmM6MzE1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJnYyBpcyBhbHJlYWR5IHJ1bm5pbmcgb24gbWFjaGluZSAnJXMnIHBpZCAlPFBSSXVNQVg+ICh1c2UgLS1mb3JjZSBpZiBub3QpIgorbXNnc3RyICIiCisiXCJnaXQgZ2NcIiB3aXJkIGJlcmVpdHMgYXVmIE1hc2NoaW5lICclcycgcGlkICU8UFJJdU1BWD4gYXVzZ2Vmw7xocnRcbiIKKyIoYmVudXR6ZW4gU2llIC0tZm9yY2UgZmFsbHMgbmljaHQpIgorCisjOiBidWlsdGluL2djLmM6MzQwCiBtc2dpZCAiIgogIlRoZXJlIGFyZSB0b28gbWFueSB1bnJlYWNoYWJsZSBsb29zZSBvYmplY3RzOyBydW4gJ2dpdCBwcnVuZScgdG8gcmVtb3ZlIHRoZW0uIgogbXNnc3RyICIiCiAiRXMgZ2lidCB6dSB2aWVsZSB1bmVycmVpY2hiYXJlIGxvc2UgT2JqZWt0ZTsgZsO8aHJlbiBTaWUgJ2dpdCBwcnVuZScgYXVzLCB1bSAiCiAiZGllc2UgenUgbMO2c2NoZW4uIgogCi0jOiBidWlsdGluL2dyZXAuYzoyMgorIzogYnVpbHRpbi9ncmVwLmM6MjMKIG1zZ2lkICJnaXQgZ3JlcCBbb3B0aW9uc10gWy1lXSA8cGF0dGVybj4gWzxyZXY+Li4uXSBbWy0tXSA8cGF0aD4uLi5dIgogbXNnc3RyICJnaXQgZ3JlcCBbT3B0aW9uZW5dIFstZV0gPE11c3Rlcj4gWzxDb21taXQ+Li4uXSBbWy0tXSA8UGZhZD4uLi5dIgogCi0jOiBidWlsdGluL2dyZXAuYzoyMTcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjIxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJncmVwOiBmYWlsZWQgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgImdyZXA6IEZlaGxlciBiZWltIEVyemV1Z2VuIGVpbmVzIFRocmVhZDogJXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjM2NAorIzogYnVpbHRpbi9ncmVwLmM6MzY1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBjaGRpcjogJXMiCiBtc2dzdHIgIkZlaGxlciBiZWltIFZlcnplaWNobmlzd2VjaHNlbDogJXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjQ0MiBidWlsdGluL2dyZXAuYzo0NzcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjQ0MyBidWlsdGluL2dyZXAuYzo0NzgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgdHJlZSAoJXMpIgogbXNnc3RyICJrb25udGUgXCJUcmVlXCItT2JqZWt0ICglcykgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjQ5MgorIzogYnVpbHRpbi9ncmVwLmM6NDkzCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBncmVwIGZyb20gb2JqZWN0IG9mIHR5cGUgJXMiCiBtc2dzdHIgImthbm4gXCJncmVwXCIgbmljaHQgbWl0IE9iamVrdGVuIGRlcyBUeXBzICVzIGR1cmNoZsO8aHJlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NTUwCisjOiBidWlsdGluL2dyZXAuYzo1NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAic3dpdGNoIGAlYycgZXhwZWN0cyBhIG51bWVyaWNhbCB2YWx1ZSIKIG1zZ3N0ciAiU2NoYWx0ZXIgJyVjJyBlcndhcnRldCBlaW5lbiBudW1lcmlzY2hlbiBXZXJ0IgogCi0jOiBidWlsdGluL2dyZXAuYzo1NjcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjU2OAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAnJXMnIgogbXNnc3RyICJrYW5uICclcycgbmljaHQgw7ZmZm5lbiIKQEAgLTUzODEsMTY5ICs1NTc0LDE3MyBAQAogbXNnc3RyICJmaW5kZXQga2VpbmUgTXVzdGVyIGluIEJpbsOkcmRhdGVpZW4iCiAKICM6IGJ1aWx0aW4vZ3JlcC5jOjY2MgorbXNnaWQgInByb2Nlc3MgYmluYXJ5IGZpbGVzIHdpdGggdGV4dGNvbnYgZmlsdGVycyIKK21zZ3N0ciAidmVyYXJiZWl0ZXQgYmluw6RyZSBEYXRlaWVuIG1pdCBcInRleHRjb252XCItRmlsdGVybiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjY0CiBtc2dpZCAiZGVzY2VuZCBhdCBtb3N0IDxkZXB0aD4gbGV2ZWxzIgogbXNnc3RyICJkdXJjaGzDpHVmdCBow7ZjaHN0ZW5zIDxUaWVmZT4gRWJlbmVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2OAogbXNnaWQgInVzZSBleHRlbmRlZCBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgZXJ3ZWl0ZXJ0ZSByZWd1bMOkcmUgQXVzZHLDvGNrZSBhdXMgUE9TSVgiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2OQorIzogYnVpbHRpbi9ncmVwLmM6NjcxCiBtc2dpZCAidXNlIGJhc2ljIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbnMgKGRlZmF1bHQpIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgZ3J1bmRsZWdlbmRlIHJlZ3Vsw6RyZSBBdXNkcsO8Y2tlIGF1cyBQT1NJWCAoU3RhbmRhcmQpIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3NAogbXNnaWQgImludGVycHJldCBwYXR0ZXJucyBhcyBmaXhlZCBzdHJpbmdzIgogbXNnc3RyICJpbnRlcnByZXRpZXJ0IE11c3RlciBhbHMgZmVzdGUgWmVpY2hlbmtldHRlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njc1CisjOiBidWlsdGluL2dyZXAuYzo2NzcKIG1zZ2lkICJ1c2UgUGVybC1jb21wYXRpYmxlIHJlZ3VsYXIgZXhwcmVzc2lvbnMiCiBtc2dzdHIgInZlcndlbmRldCBQZXJsLWtvbXBhdGlibGUgcmVndWzDpHJlIEF1c2Ryw7xja2UiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3OAorIzogYnVpbHRpbi9ncmVwLmM6NjgwCiBtc2dpZCAic2hvdyBsaW5lIG51bWJlcnMiCiBtc2dzdHIgInplaWd0IFplaWxlbm51bW1lcm4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3OQorIzogYnVpbHRpbi9ncmVwLmM6NjgxCiBtc2dpZCAiZG9uJ3Qgc2hvdyBmaWxlbmFtZXMiCiBtc2dzdHIgInplaWd0IGtlaW5lIERhdGVpbmFtZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MAorIzogYnVpbHRpbi9ncmVwLmM6NjgyCiBtc2dpZCAic2hvdyBmaWxlbmFtZXMiCiBtc2dzdHIgInplaWd0IERhdGVpbmFtZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MgorIzogYnVpbHRpbi9ncmVwLmM6Njg0CiBtc2dpZCAic2hvdyBmaWxlbmFtZXMgcmVsYXRpdmUgdG8gdG9wIGRpcmVjdG9yeSIKIG1zZ3N0ciAiemVpZ3QgRGF0ZWluYW1lbiByZWxhdGl2IHp1bSBQcm9qZWt0dmVyemVpY2huaXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4NAorIzogYnVpbHRpbi9ncmVwLmM6Njg2CiBtc2dpZCAic2hvdyBvbmx5IGZpbGVuYW1lcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICJ6ZWlndCBudXIgRGF0ZWluYW1lbiBhbnN0YXR0IMO8YmVyZWluc3RpbW1lbmRlIFplaWxlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njg2CisjOiBidWlsdGluL2dyZXAuYzo2ODgKIG1zZ2lkICJzeW5vbnltIGZvciAtLWZpbGVzLXdpdGgtbWF0Y2hlcyIKIG1zZ3N0ciAiU3lub255bSBmw7xyIC0tZmlsZXMtd2l0aC1tYXRjaGVzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5MQogbXNnaWQgInNob3cgb25seSB0aGUgbmFtZXMgb2YgZmlsZXMgd2l0aG91dCBtYXRjaCIKIG1zZ3N0ciAiemVpZ3QgbnVyIGRpZSBEYXRlaW5hbWVuIG9obmUgw5xiZXJlaW5zdGltbXVuZ2VuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5MwogbXNnaWQgInByaW50IE5VTCBhZnRlciBmaWxlbmFtZXMiCiBtc2dzdHIgImdpYnQgTlVMLVplaWNoZW4gbmFjaCBEYXRlaW5hbWVuIGF1cyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjkzCisjOiBidWlsdGluL2dyZXAuYzo2OTUKIG1zZ2lkICJzaG93IHRoZSBudW1iZXIgb2YgbWF0Y2hlcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICJ6ZWlndCwgYW5zdGF0dCBkZXIgWmVpbGVuLCBkaWUgQW56YWhsIGRlciDDvGJlcmVpbnN0aW1tZW5kZW4gWmVpbGVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NgogbXNnaWQgImhpZ2hsaWdodCBtYXRjaGVzIgogbXNnc3RyICJoZWJ0IMOcYmVyZWluc3RpbW11bmdlbiBoZXJ2b3IiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NgorIzogYnVpbHRpbi9ncmVwLmM6Njk4CiBtc2dpZCAicHJpbnQgZW1wdHkgbGluZSBiZXR3ZWVuIG1hdGNoZXMgZnJvbSBkaWZmZXJlbnQgZmlsZXMiCiBtc2dzdHIgIiIKICJnaWJ0IGVpbmUgTGVlcnplaWxlIHp3aXNjaGVuIMOcYmVyZWluc3RpbW11bmdlbiBpbiB2ZXJzY2hpZWRlbmVuIERhdGVpZW4gYXVzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwMAogbXNnaWQgInNob3cgZmlsZW5hbWUgb25seSBvbmNlIGFib3ZlIG1hdGNoZXMgZnJvbSBzYW1lIGZpbGUiCiBtc2dzdHIgIiIKICJ6ZWlndCBkZW4gRGF0ZWluYW1lbiBudXIgZWlubWFsIG9iZXJoYWxiIGRlciDDnGJlcmVpbnN0aW1tdW5nZW4gYXVzIGRpZXNlciAiCiAiRGF0ZWkgYW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwMQorIzogYnVpbHRpbi9ncmVwLmM6NzAzCiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgYW5kIGFmdGVyIG1hdGNoZXMiCiBtc2dzdHIgInplaWd0IDxuPiBaZWlsZW4gdm9yIHVuZCBuYWNoIGRlbiDDnGJlcmVpbnN0aW1tdW5nZW4gYW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwNAorIzogYnVpbHRpbi9ncmVwLmM6NzA2CiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgbWF0Y2hlcyIKIG1zZ3N0ciAiemVpZ3QgPG4+IFplaWxlbiB2b3IgZGVuIMOcYmVyZWluc3RpbW11bmdlbiBhbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA2CisjOiBidWlsdGluL2dyZXAuYzo3MDgKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGFmdGVyIG1hdGNoZXMiCiBtc2dzdHIgInplaWd0IDxuPiBaZWlsZW4gbmFjaCBkZW4gw5xiZXJlaW5zdGltbXVuZ2VuIGFuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwOQogbXNnaWQgInNob3J0Y3V0IGZvciAtQyBOVU0iCiBtc2dzdHIgIkt1cnpmb3JtIGbDvHIgLUMgTlVNIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxMgogbXNnaWQgInNob3cgYSBsaW5lIHdpdGggdGhlIGZ1bmN0aW9uIG5hbWUgYmVmb3JlIG1hdGNoZXMiCiBtc2dzdHIgInplaWd0IGVpbmUgWmVpbGUgbWl0IGRlbSBGdW5rdGlvbnNuYW1lbiB2b3Igw5xiZXJlaW5zdGltbXVuZ2VuIGFuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxNAogbXNnaWQgInNob3cgdGhlIHN1cnJvdW5kaW5nIGZ1bmN0aW9uIgogbXNnc3RyICJ6ZWlndCBkaWUgdW1nZWJlbmRlIEZ1bmt0aW9uIGFuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxNwogbXNnaWQgInJlYWQgcGF0dGVybnMgZnJvbSBmaWxlIgogbXNnc3RyICJsaWVzdCBNdXN0ZXIgdm9uIGVpbmVyIERhdGVpIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxOQogbXNnaWQgIm1hdGNoIDxwYXR0ZXJuPiIKIG1zZ3N0ciAiZmluZGV0IDxNdXN0ZXI+IgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcyMQogbXNnaWQgImNvbWJpbmUgcGF0dGVybnMgc3BlY2lmaWVkIHdpdGggLWUiCiBtc2dzdHIgImtvbWJpbmllcnQgTXVzdGVyLCBkaWUgbWl0IC1lIGFuZ2VnZWJlbiB3dXJkZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczMQorIzogYnVpbHRpbi9ncmVwLmM6NzMzCiBtc2dpZCAiaW5kaWNhdGUgaGl0IHdpdGggZXhpdCBzdGF0dXMgd2l0aG91dCBvdXRwdXQiCiBtc2dzdHIgInplaWd0IMOcYmVyZWluc3RpbW11bmdlbiBudXIgZHVyY2ggQmVlbmRpZ3VuZ3NzdGF0dXMgYW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczMworIzogYnVpbHRpbi9ncmVwLmM6NzM1CiBtc2dpZCAic2hvdyBvbmx5IG1hdGNoZXMgZnJvbSBmaWxlcyB0aGF0IG1hdGNoIGFsbCBwYXR0ZXJucyIKIG1zZ3N0ciAiemVpZ3QgbnVyIMOcYmVyZWluc3RpbW11bmdlbiB2b24gRGF0ZWllbiwgZGllIGFsbGVuIE11c3Rlcm4gZW50c3ByZWNoZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczNQorIzogYnVpbHRpbi9ncmVwLmM6NzM3CiBtc2dpZCAic2hvdyBwYXJzZSB0cmVlIGZvciBncmVwIGV4cHJlc3Npb24iCiBtc2dzdHIgInplaWd0IGdlcGFyc3RlcyBWZXJ6ZWljaG5pcyBmw7xyIFwiZ3JlcFwiLUF1c2RydWNrIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0MQogbXNnaWQgInBhZ2VyIgogbXNnc3RyICJBbnplaWdlcHJvZ3JhbW0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczOQorIzogYnVpbHRpbi9ncmVwLmM6NzQxCiBtc2dpZCAic2hvdyBtYXRjaGluZyBmaWxlcyBpbiB0aGUgcGFnZXIiCiBtc2dzdHIgInplaWd0IERhdGVpZW4gbWl0IMOcYmVyZWluc3RpbW11bmdlbiBpbSBBbnplaWdlcHJvZ3JhbW0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MgorIzogYnVpbHRpbi9ncmVwLmM6NzQ0CiBtc2dpZCAiYWxsb3cgY2FsbGluZyBvZiBncmVwKDEpIChpZ25vcmVkIGJ5IHRoaXMgYnVpbGQpIgogbXNnc3RyICJlcmxhdWJ0IGRlbiBBdWZydWYgdm9uIGdyZXAoMSkgKHZvbiBkaWVzZXIgUHJvZ3JhbW12ZXJzaW9uIGlnbm9yaWVydCkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MyBidWlsdGluL3Nob3ctcmVmLmM6MTg4CisjOiBidWlsdGluL2dyZXAuYzo3NDUgYnVpbHRpbi9zaG93LXJlZi5jOjE4NwogbXNnaWQgInNob3cgdXNhZ2UiCiBtc2dzdHIgInplaWd0IFZlcndlbmR1bmciCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjgxMAorIzogYnVpbHRpbi9ncmVwLmM6ODEyCiBtc2dpZCAibm8gcGF0dGVybiBnaXZlbi4iCiBtc2dzdHIgImtlaW5lIE11c3RlciBhbmdlZ2ViZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg2NQorIzogYnVpbHRpbi9ncmVwLmM6ODcwCiBtc2dpZCAiLS1vcGVuLWZpbGVzLWluLXBhZ2VyIG9ubHkgd29ya3Mgb24gdGhlIHdvcmt0cmVlIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbiAtLW9wZW4tZmlsZXMtaW4tcGFnZXIga2FubiBudXIgaW5uZXJoYWxiIGRlcyAiCiAiQXJiZWl0c3ZlcnplaWNobmlzc2VzIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2dyZXAuYzo4ODgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg5MwogbXNnaWQgIi0tY2FjaGVkIG9yIC0tdW50cmFja2VkIGNhbm5vdCBiZSB1c2VkIHdpdGggLS1uby1pbmRleC4iCiBtc2dzdHIgIiIKICJEaWUgT3B0aW9uZW4gLS1jYWNoZWQgdW5kIC0tdW50cmFja2VkIGvDtm5uZW4gbmljaHQgbWl0IC0tbm8taW5kZXggdmVyd2VuZGV0ICIKICJ3ZXJkZW4uIgogCi0jOiBidWlsdGluL2dyZXAuYzo4OTMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg5OAogbXNnaWQgIi0tbm8taW5kZXggb3IgLS11bnRyYWNrZWQgY2Fubm90IGJlIHVzZWQgd2l0aCByZXZzLiIKIG1zZ3N0ciAiIgogIkRpZSBPcHRpb25lbiAtLW5vLWluZGV4IHVuZCAtLXVudHJhY2tlZCBrw7ZubmVuIG5pY2h0IG1pdCBDb21taXRzIHZlcndlbmRldCAiCiAid2VyZGVuLiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODk2CisjOiBidWlsdGluL2dyZXAuYzo5MDEKIG1zZ2lkICItLVtuby1dZXhjbHVkZS1zdGFuZGFyZCBjYW5ub3QgYmUgdXNlZCBmb3IgdHJhY2tlZCBjb250ZW50cy4iCiBtc2dzdHIgIiIKICJEaWUgT3B0aW9uIC0tW25vLV1leGNsdWRlLXN0YW5kYXJkIGthbm4gbmljaHQgbWl0IGJlb2JhY2h0ZXRlbiBJbmhhbHRlbiAiCiAidmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjkwNAorIzogYnVpbHRpbi9ncmVwLmM6OTA5CiBtc2dpZCAiYm90aCAtLWNhY2hlZCBhbmQgdHJlZXMgYXJlIGdpdmVuLiIKIG1zZ3N0ciAiRGllIE9wdGlvbiAtLWNhY2hlZCBrYW5uIG5pY2h0IG1pdCBcIlRyZWVcIi1PYmpla3RlbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIApAQCAtNTc5OSw4ICs1OTk2LDggQEAKIG1zZ2lkICJTSEExIENPTExJU0lPTiBGT1VORCBXSVRIICVzICEiCiBtc2dzdHIgIlNIQTEgS09MTElTSU9OIE1JVCAlcyBHRUZVTkRFTiAhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjkgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjYyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjkgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjYzCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkICVzIgogbXNnc3RyICJrYW5uICVzIG5pY2h0IGxlc2VuIgpAQCAtNTgyOSwxNTUgKzYwMjYsMTU1IEBACiBtc2dpZCAiTm90IGFsbCBjaGlsZCBvYmplY3RzIG9mICVzIGFyZSByZWFjaGFibGUiCiBtc2dzdHIgIk5pY2h0IGFsbGUgS2luZC1PYmpla3RlIHZvbiAlcyBzaW5kIGVycmVpY2hiYXIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjgzOCBidWlsdGluL2luZGV4LXBhY2suYzo4NjgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjgzOSBidWlsdGluL2luZGV4LXBhY2suYzo4NjkKIG1zZ2lkICJmYWlsZWQgdG8gYXBwbHkgZGVsdGEiCiBtc2dzdHIgIktvbm50ZSBEYXRlaXVudGVyc2NoaWVkIG5pY2h0IGFud2VuZGVuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDEwCiBtc2dpZCAiUmVjZWl2aW5nIG9iamVjdHMiCiBtc2dzdHIgIkVtcGZhbmdlIE9iamVrdGUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMTAKIG1zZ2lkICJJbmRleGluZyBvYmplY3RzIgogbXNnc3RyICJJbmRpemllcmUgT2JqZWt0ZSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzNQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzNgogbXNnaWQgInBhY2sgaXMgY29ycnVwdGVkIChTSEExIG1pc21hdGNoKSIKIG1zZ3N0ciAiUGFrZXQgaXN0IGJlc2Now6RkaWd0IChTSEExIHVudGVyc2NoaWVkbGljaCkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDEKIG1zZ2lkICJjYW5ub3QgZnN0YXQgcGFja2ZpbGUiCiBtc2dzdHIgImthbm4gUGFrZXRkYXRlaSBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0MworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0NAogbXNnaWQgInBhY2sgaGFzIGp1bmsgYXQgdGhlIGVuZCIKIG1zZ3N0ciAiUGFrZXRlbmRlIGVudGjDpGx0IG5pY2h0IHZlcndlbmRiYXJlbiBJbmhhbHQiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNTQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNTUKIG1zZ2lkICJjb25mdXNpb24gYmV5b25kIGluc2FuaXR5IGluIHBhcnNlX3BhY2tfb2JqZWN0cygpIgogbXNnc3RyICJGZWhsZXIgYmVpbSBBdXNmw7xocmVuIHZvbiBcInBhcnNlX3BhY2tfb2JqZWN0cygpXCIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNzcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNzgKIG1zZ2lkICJSZXNvbHZpbmcgZGVsdGFzIgogbXNnc3RyICJMw7ZzZSBVbnRlcnNjaGllZGUgYXVmIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDg3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDg4CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgdGhyZWFkOiAlcyIKIG1zZ3N0ciAia2FubiBUaHJlYWQgbmljaHQgZXJ6ZXVnZW46ICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTI5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTMwCiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gQXVmbMO2c2VuIGRlciBVbnRlcnNjaGllZGUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExMzcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExMzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY29tcGxldGVkIHdpdGggJWQgbG9jYWwgb2JqZWN0cyIKIG1zZ3N0ciAidmVydm9sbHN0w6RuZGlndCBtaXQgJWQgbG9rYWxlbiBPYmpla3RlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmV4cGVjdGVkIHRhaWwgY2hlY2tzdW0gZm9yICVzIChkaXNrIGNvcnJ1cHRpb24/KSIKIG1zZ3N0ciAiVW5lcndhcnRldGUgUHLDvGZzdW1tZSBmw7xyICVzIChGZXN0cGxhdHRlbmZlaGxlcj8pIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTUxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGEiCiBtc2dpZF9wbHVyYWwgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGFzIgogbXNnc3RyWzBdICJQYWtldCBoYXQgJWQgdW5hdWZnZWzDtnN0ZSBVbnRlcnNjaGllZCIKIG1zZ3N0clsxXSAiUGFrZXQgaGF0ICVkIHVuYXVmZ2Vsw7ZzdGUgVW50ZXJzY2hpZWRlIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTc2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTc3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBkZWZsYXRlIGFwcGVuZGVkIG9iamVjdCAoJWQpIgogbXNnc3RyICJLb25udGUgYW5nZWjDpG5ndGVzIE9iamVrdCAoJWQpIG5pY2h0IGtvbXByaW1pZXJlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJsb2NhbCBvYmplY3QgJXMgaXMgY29ycnVwdCIKIG1zZ3N0ciAibG9rYWxlcyBPYmpla3QgJXMgaXN0IGJlc2Now6RkaWd0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjc5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjgwCiBtc2dpZCAiZXJyb3Igd2hpbGUgY2xvc2luZyBwYWNrIGZpbGUiCiBtc2dzdHIgIkZlaGxlciBiZWltIFNjaGxpZcOfZW4gZGVyIFBha2V0ZGF0ZWkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyOTIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyOTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHdyaXRlIGtlZXAgZmlsZSAnJXMnIgogbXNnc3RyICJLYW5uIFBha2V0YmVzY2hyZWlidW5nc2RhdGVpICclcycgbmljaHQgc2NocmVpYmVuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzAwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzAxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjbG9zZSB3cml0dGVuIGtlZXAgZmlsZSAnJXMnIgogbXNnc3RyICJLYW5uIGViZW4gZXJzdGVsbHRlIFBha2V0YmVzY2hyZWlidW5nc2RhdGVpICclcycgbmljaHQgc2NobGllw59lbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMxMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMxNAogbXNnaWQgImNhbm5vdCBzdG9yZSBwYWNrIGZpbGUiCiBtc2dzdHIgIkthbm4gUGFrZXRkYXRlaSBuaWNodCBzcGVpY2hlcm4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMjQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMjUKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgaW5kZXggZmlsZSIKIG1zZ3N0ciAiS2FubiBJbmRleGRhdGVpIG5pY2h0IHNwZWljaGVybiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1NworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1OAogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgcGFjay5pbmRleHZlcnNpb249JTxQUkl1MzI+IgogbXNnc3RyICJcInBhY2suaW5kZXh2ZXJzaW9uPSU8UFJJdTMyPlwiIGlzdCB1bmfDvGx0aWciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgdGhyZWFkcyBzcGVjaWZpZWQgKCVkKSIKIG1zZ3N0ciAidW5nw7xsdGlnZSBBbnphaGwgdm9uIFRocmVhZHMgYW5nZWdlYmVuICglZCkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2OCBidWlsdGluL2luZGV4LXBhY2suYzoxNTQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHRocmVhZHMgc3VwcG9ydCwgaWdub3JpbmcgJXMiCiBtc2dzdHIgImtlaW5lIFVudGVyc3TDvHR6dW5nIHZvbiBUaHJlYWRzLCAnJXMnIHdpcmQgaWdub3JpZXJ0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDI1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDI2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIGV4aXN0aW5nIHBhY2sgZmlsZSAnJXMnIgogbXNnc3RyICJLYW5uIGV4aXN0aWVyZW5kZSBQYWtldGRhdGVpICclcycgbmljaHQgw7ZmZm5lbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGlkeCBmaWxlIGZvciAnJXMnIgogbXNnc3RyICJLYW5uIGV4aXN0aWVyZW5kZSBJbmRleGRhdGVpIGbDvHIgUGFrZXQgJyVzJyBuaWNodCDDtmZmbmVuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDc0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vbiBkZWx0YTogJWQgb2JqZWN0IgogbXNnaWRfcGx1cmFsICJub24gZGVsdGE6ICVkIG9iamVjdHMiCiBtc2dzdHJbMF0gImtlaW4gVW50ZXJzY2hpZWQ6ICVkIE9iamVrdCIKIG1zZ3N0clsxXSAia2VpbiBVbnRlcnNjaGllZDogJWQgT2JqZWt0ZSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ4MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGFpbiBsZW5ndGggPSAlZDogJWx1IG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3RzIgogbXNnc3RyWzBdICJMw6RuZ2UgZGVyIE9iamVrdC1MaXN0ZSA9ICVkOiAlbHUgT2JqZWt0IgogbXNnc3RyWzFdICJMw6RuZ2UgZGVyIE9iamVrdC1MaXN0ZSA9ICVkOiAlbHUgT2JqZWt0ZSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUwOQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUxMAogbXNnaWQgIkNhbm5vdCBjb21lIGJhY2sgdG8gY3dkIgogbXNnc3RyICJLYW5uIG5pY2h0IHp1csO8Y2sgenUgQXJiZWl0c3ZlcnplaWNobmlzIHdlY2hzZWxuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTU3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU1OCBidWlsdGluL2luZGV4LXBhY2suYzoxNTYxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTczIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkICVzIgogbXNnc3RyICIlcyBpc3QgdW5nw7xsdGlnIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTkwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTkxCiBtc2dpZCAiLS1maXgtdGhpbiBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IC0tc3RkaW4iCiBtc2dzdHIgIkRpZSBPcHRpb24gLS1maXgtdGhpbiBrYW5uIG5pY2h0IG9obmUgLS1zdGRpbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5NCBidWlsdGluL2luZGV4LXBhY2suYzoxNjA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTk1IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MDUKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFja2ZpbGUgbmFtZSAnJXMnIGRvZXMgbm90IGVuZCB3aXRoICcucGFjayciCiBtc2dzdHIgIk5hbWUgZGVyIFBha2V0ZGF0ZWkgJyVzJyBlbmRldCBuaWNodCBtaXQgJy5wYWNrJyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYxMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYxNAogbXNnaWQgIi0tdmVyaWZ5IHdpdGggbm8gcGFja2ZpbGUgbmFtZSBnaXZlbiIKIG1zZ3N0ciAiRGllIE9wdGlvbiAtLXZlcmlmeSB3dXJkZSBvaG5lIE5hbWVuIGRlciBQYWtldGRhdGVpIGFuZ2VnZWJlbi4iCiAKQEAgLTYwNjYsMTEgKzYyNjMsNiBAQAogbXNnaWQgInVuYWJsZSB0byBtb3ZlICVzIHRvICVzIgogbXNnc3RyICJLb25udGUgJXMgbmljaHQgbmFjaCAlcyB2ZXJzY2hpZWJlbiIKIAotIzogYnVpbHRpbi9pbml0LWRiLmM6MzYzCi0jLCBjLWZvcm1hdAotbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZ2l0IGxpbmsgJXMiCi1tc2dzdHIgIktvbm50ZSBnaXQtVmVyd2VpcyAlcyBuaWNodCBlcnN0ZWxsZW4iCi0KICMuCiAjLiAqIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJyVzJyBpcyBlaXRoZXIgIlJlaW5pdGlhbGl6ZWQKICMuICogZXhpc3RpbmciIG9yICJJbml0aWFsaXplZCBlbXB0eSIsIHRoZSBzZWNvbmQgIiBzaGFyZWQiIG9yCkBAIC02MTEzLDcgKzYzMDUsNyBAQAogbXNnaWQgInNwZWNpZnkgdGhhdCB0aGUgZ2l0IHJlcG9zaXRvcnkgaXMgdG8gYmUgc2hhcmVkIGFtb25nc3Qgc2V2ZXJhbCB1c2VycyIKIG1zZ3N0ciAiZ2lidCBhbiwgZGFzcyBkYXMgR2l0LVJlcG9zaXRvcnkgbWl0IG1laHJlcmVuIEJlbnV0emVybiBnZXRlaWx0IHdpcmQiCiAKLSM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc1CisjOiBidWlsdGluL2luaXQtZGIuYzo0OTMgYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NSBidWlsdGluL3JlcGFjay5jOjE1NQogbXNnaWQgImJlIHF1aWV0IgogbXNnc3RyICJ3ZW5pZ2VyIEF1c2dhYmVuIgogCkBAIC02MTUzLDI0OSArNjM0NSwyNDkgQEAKIG1zZ2lkICIgICBvcjogZ2l0IHNob3cgW29wdGlvbnNdIDxvYmplY3Q+Li4uIgogbXNnc3RyICIgICBvZGVyOiBnaXQgc2hvdyBbT3B0aW9uZW5dIDxPYmpla3Q+Li4uIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNAorIzogYnVpbHRpbi9sb2cuYzoxMjUKIG1zZ2lkICJzdXBwcmVzcyBkaWZmIG91dHB1dCIKIG1zZ3N0ciAidW50ZXJkcsO8Y2t0IEF1c2dhYmUgZGVyIFVudGVyc2NoaWVkZSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjUKKyM6IGJ1aWx0aW4vbG9nLmM6MTI2CiBtc2dpZCAic2hvdyBzb3VyY2UiCiBtc2dzdHIgInplaWd0IFF1ZWxsZSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjYKKyM6IGJ1aWx0aW4vbG9nLmM6MTI3CiBtc2dpZCAiVXNlIG1haWwgbWFwIGZpbGUiCiBtc2dzdHIgInZlcndlbmRldCBcIm1haWxtYXBcIi1EYXRlaSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjcKKyM6IGJ1aWx0aW4vbG9nLmM6MTI4CiBtc2dpZCAiZGVjb3JhdGUgb3B0aW9ucyIKIG1zZ3N0ciAiZGVjb3JhdGUtT3B0aW9uZW4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MjMwCisjOiBidWlsdGluL2xvZy5jOjIzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJGaW5hbCBvdXRwdXQ6ICVkICVzXG4iCiBtc2dzdHIgImxldHp0ZSBBdXNnYWJlOiAlZCAlc1xuIgogCi0jOiBidWlsdGluL2xvZy5jOjQ1MyBidWlsdGluL2xvZy5jOjU0NQorIzogYnVpbHRpbi9sb2cuYzo0NzMgYnVpbHRpbi9sb2cuYzo1NjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgb2JqZWN0ICVzIgogbXNnc3RyICJLYW5uIE9iamVrdCAlcyBuaWNodCBsZXNlbi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NTY5CisjOiBidWlsdGluL2xvZy5jOjU4OQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIHR5cGU6ICVkIgogbXNnc3RyICJVbmJla2FubnRlciBUeXA6ICVkIgogCi0jOiBidWlsdGluL2xvZy5jOjY2OQorIzogYnVpbHRpbi9sb2cuYzo2ODkKIG1zZ2lkICJmb3JtYXQuaGVhZGVycyB3aXRob3V0IHZhbHVlIgogbXNnc3RyICJmb3JtYXQuaGVhZGVycyBvaG5lIFdlcnQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzUxCisjOiBidWlsdGluL2xvZy5jOjc3MQogbXNnaWQgIm5hbWUgb2Ygb3V0cHV0IGRpcmVjdG9yeSBpcyB0b28gbG9uZyIKIG1zZ3N0ciAiTmFtZSBkZXMgQXVzZ2FiZXZlcnplaWNobmlzc2VzIGlzdCB6dSBsYW5nLiIKIAotIzogYnVpbHRpbi9sb2cuYzo3NjcKKyM6IGJ1aWx0aW4vbG9nLmM6Nzg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIHBhdGNoIGZpbGUgJXMiCiBtc2dzdHIgIkthbm4gUGF0Y2gtRGF0ZWkgJXMgbmljaHQgw7ZmZm5lbiIKIAotIzogYnVpbHRpbi9sb2cuYzo3ODEKKyM6IGJ1aWx0aW4vbG9nLmM6ODAxCiBtc2dpZCAiTmVlZCBleGFjdGx5IG9uZSByYW5nZS4iCiBtc2dzdHIgIkJyYXVjaGUgZ2VuYXUgZWluZW4gQ29tbWl0LUJlcmVpY2guIgogCi0jOiBidWlsdGluL2xvZy5jOjc4OQorIzogYnVpbHRpbi9sb2cuYzo4MDkKIG1zZ2lkICJOb3QgYSByYW5nZS4iCiBtc2dzdHIgIktlaW4gQ29tbWl0LUJlcmVpY2guIgogCi0jOiBidWlsdGluL2xvZy5jOjg5MQorIzogYnVpbHRpbi9sb2cuYzo5MTEKIG1zZ2lkICJDb3ZlciBsZXR0ZXIgbmVlZHMgZW1haWwgZm9ybWF0IgogbXNnc3RyICJBbnNjaHJlaWJlbiBiZW7DtnRpZ3QgRS1NYWlsLUZvcm1hdCIKIAotIzogYnVpbHRpbi9sb2cuYzo5NjcKKyM6IGJ1aWx0aW4vbG9nLmM6OTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgImluc2FuZSBpbi1yZXBseS10bzogJXMiCiBtc2dzdHIgInVuZ8O8bHRpZ2VzIGluLXJlcGx5LXRvOiAlcyIKIAotIzogYnVpbHRpbi9sb2cuYzo5OTUKKyM6IGJ1aWx0aW4vbG9nLmM6MTAxNQogbXNnaWQgImdpdCBmb3JtYXQtcGF0Y2ggW29wdGlvbnNdIFs8c2luY2U+IHwgPHJldmlzaW9uIHJhbmdlPl0iCiBtc2dzdHIgImdpdCBmb3JtYXQtcGF0Y2ggW09wdGlvbmVuXSBbPHNlaXQ+IHwgPENvbW1pdGJlcmVpY2g+XSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDQwCisjOiBidWlsdGluL2xvZy5jOjEwNjAKIG1zZ2lkICJUd28gb3V0cHV0IGRpcmVjdG9yaWVzPyIKIG1zZ3N0ciAiWndlaSBBdXNnYWJldmVyemVpY2huaXNzZT8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1NQorIzogYnVpbHRpbi9sb2cuYzoxMTc1CiBtc2dpZCAidXNlIFtQQVRDSCBuL21dIGV2ZW4gd2l0aCBhIHNpbmdsZSBwYXRjaCIKIG1zZ3N0ciAidmVyd2VuZGV0IFtQQVRDSCBuL21dIGF1Y2ggbWl0IGVpbnplbG5lbSBQYXRjaCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTU4CisjOiBidWlsdGluL2xvZy5jOjExNzgKIG1zZ2lkICJ1c2UgW1BBVENIXSBldmVuIHdpdGggbXVsdGlwbGUgcGF0Y2hlcyIKIG1zZ3N0ciAidmVyd2VuZGV0IFtQQVRDSF0gYXVjaCBtaXQgbWVocmVyZW4gUGF0Y2hlcyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTYyCisjOiBidWlsdGluL2xvZy5jOjExODIKIG1zZ2lkICJwcmludCBwYXRjaGVzIHRvIHN0YW5kYXJkIG91dCIKIG1zZ3N0ciAiQXVzZ2FiZSBkZXIgUGF0Y2hlcyBpbiBTdGFuZGFyZC1BdXNnYWJlIgogCi0jOiBidWlsdGluL2xvZy5jOjExNjQKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4NAogbXNnaWQgImdlbmVyYXRlIGEgY292ZXIgbGV0dGVyIgogbXNnc3RyICJlcnpldWd0IGVpbiBEZWNrYmxhdHQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE2NgorIzogYnVpbHRpbi9sb2cuYzoxMTg2CiBtc2dpZCAidXNlIHNpbXBsZSBudW1iZXIgc2VxdWVuY2UgZm9yIG91dHB1dCBmaWxlIG5hbWVzIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgZWluZmFjaGUgTnVtbWVybmZvbGdlIGbDvHIgZGllIE5hbWVuIGRlciBBdXNnYWJlZGF0ZWllbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTY3CisjOiBidWlsdGluL2xvZy5jOjExODcKIG1zZ2lkICJzZngiCiBtc2dzdHIgIkRhdGVpZW5kdW5nIgogCi0jOiBidWlsdGluL2xvZy5jOjExNjgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4OAogbXNnaWQgInVzZSA8c2Z4PiBpbnN0ZWFkIG9mICcucGF0Y2gnIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgPERhdGVpZW5kdW5nPiBhbnN0YXR0ICcucGF0Y2gnIgogCi0jOiBidWlsdGluL2xvZy5jOjExNzAKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MAogbXNnaWQgInN0YXJ0IG51bWJlcmluZyBwYXRjaGVzIGF0IDxuPiBpbnN0ZWFkIG9mIDEiCiBtc2dzdHIgImJlZ2lubnQgZGllIE51bW1lcmllcnVuZyBkZXIgUGF0Y2hlcyBiZWkgPG4+IGFuc3RhdHQgYmVpIDEiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE3MgorIzogYnVpbHRpbi9sb2cuYzoxMTkyCiBtc2dpZCAibWFyayB0aGUgc2VyaWVzIGFzIE50aCByZS1yb2xsIgogbXNnc3RyICJrZW5uemVpY2huZXQgZGllIFNlcmllIGFscyBuLXRlIEZhc3N1bmciCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE3NAorIzogYnVpbHRpbi9sb2cuYzoxMTk0CiBtc2dpZCAiVXNlIFs8cHJlZml4Pl0gaW5zdGVhZCBvZiBbUEFUQ0hdIgotbXNnc3RyICJ2ZXJ3ZW5kZXQgWzxQcmVmaXg+XSBhbnN0YXR0IFtQQVRDSF0iCittc2dzdHIgInZlcndlbmRldCBbPFByw6RmaXg+XSBhbnN0YXR0IFtQQVRDSF0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE3NworIzogYnVpbHRpbi9sb2cuYzoxMTk3CiBtc2dpZCAic3RvcmUgcmVzdWx0aW5nIGZpbGVzIGluIDxkaXI+IgogbXNnc3RyICJzcGVpY2hlcnQgZXJ6ZXVndGUgRGF0ZWllbiBpbiA8VmVyemVpY2huaXM+IgogCi0jOiBidWlsdGluL2xvZy5jOjExODAKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMAogbXNnaWQgImRvbid0IHN0cmlwL2FkZCBbUEFUQ0hdIgogbXNnc3RyICJbUEFUQ0hdIHdpcmQgbmljaHQgZW50ZmVybnQvaGluenVnZWbDvGd0IgogCi0jOiBidWlsdGluL2xvZy5jOjExODMKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMwogbXNnaWQgImRvbid0IG91dHB1dCBiaW5hcnkgZGlmZnMiCiBtc2dzdHIgImdpYnQga2VpbmUgYmluw6RyZW4gVW50ZXJzY2hpZWRlIGF1cyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTg1CisjOiBidWlsdGluL2xvZy5jOjEyMDUKIG1zZ2lkICJkb24ndCBpbmNsdWRlIGEgcGF0Y2ggbWF0Y2hpbmcgYSBjb21taXQgdXBzdHJlYW0iCiBtc2dzdHIgIiIKICJzY2hsaWXDn3Qga2VpbmUgUGF0Y2hlcyBlaW4sIGRpZSBlaW5lbSBDb21taXQgaW0gVXBzdHJlYW0tQnJhbmNoIGVudHNwcmVjaGVuIgogCi0jOiBidWlsdGluL2xvZy5jOjExODcKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwNwogbXNnaWQgInNob3cgcGF0Y2ggZm9ybWF0IGluc3RlYWQgb2YgZGVmYXVsdCAocGF0Y2ggKyBzdGF0KSIKIG1zZ3N0ciAiemVpZ3QgUGF0Y2hmb3JtYXQgYW5zdGF0dCBkZXMgU3RhbmRhcmRzIChQYXRjaCArIFp1c2FtbWVuZmFzc3VuZykiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE4OQorIzogYnVpbHRpbi9sb2cuYzoxMjA5CiBtc2dpZCAiTWVzc2FnaW5nIgogbXNnc3RyICJFbWFpbC1FaW5zdGVsbHVuZ2VuIgogCi0jOiBidWlsdGluL2xvZy5jOjExOTAKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMAogbXNnaWQgImhlYWRlciIKIG1zZ3N0ciAiSGVhZGVyIgogCi0jOiBidWlsdGluL2xvZy5jOjExOTEKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMQogbXNnaWQgImFkZCBlbWFpbCBoZWFkZXIiCiBtc2dzdHIgImbDvGd0IEVtYWlsLUhlYWRlciBoaW56dSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTkyIGJ1aWx0aW4vbG9nLmM6MTE5NAorIzogYnVpbHRpbi9sb2cuYzoxMjEyIGJ1aWx0aW4vbG9nLmM6MTIxNAogbXNnaWQgImVtYWlsIgogbXNnc3RyICJFbWFpbCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTkyCisjOiBidWlsdGluL2xvZy5jOjEyMTIKIG1zZ2lkICJhZGQgVG86IGhlYWRlciIKIG1zZ3N0ciAiZsO8Z3QgIFwiVG86XCItSGVhZGVyIGhpbnp1IgogCi0jOiBidWlsdGluL2xvZy5jOjExOTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxNAogbXNnaWQgImFkZCBDYzogaGVhZGVyIgogbXNnc3RyICJmw7xndCBcIkNjOlwiLUhlYWRlciBoaW56dSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTk2CisjOiBidWlsdGluL2xvZy5jOjEyMTYKIG1zZ2lkICJpZGVudCIKIG1zZ3N0ciAiSWRlbnQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5NworIzogYnVpbHRpbi9sb2cuYzoxMjE3CiBtc2dpZCAic2V0IEZyb20gYWRkcmVzcyB0byA8aWRlbnQ+IChvciBjb21taXR0ZXIgaWRlbnQgaWYgYWJzZW50KSIKIG1zZ3N0ciAiIgogInNldHp0IFwiRnJvbVwiLUFkcmVzc2UgYXVmIDxJZGVudD4gKG9kZXIgSWRlbnQgZGVzIENvbW1pdC1FcnN0ZWxsZXJzLHdlbm4gIgogImZlaGxlbmQpIgogCi0jOiBidWlsdGluL2xvZy5jOjExOTkKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxOQogbXNnaWQgIm1lc3NhZ2UtaWQiCiBtc2dzdHIgIm1lc3NhZ2UtaWQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTIwMAorIzogYnVpbHRpbi9sb2cuYzoxMjIwCiBtc2dpZCAibWFrZSBmaXJzdCBtYWlsIGEgcmVwbHkgdG8gPG1lc3NhZ2UtaWQ+IgogbXNnc3RyICJtYWNodCBhdXMgZXJzdGVyIEVtYWlsIGVpbmUgQW50d29ydCB6dSA8bWVzc2FnZS1pZD4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTIwMSBidWlsdGluL2xvZy5jOjEyMDQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyMSBidWlsdGluL2xvZy5jOjEyMjQKIG1zZ2lkICJib3VuZGFyeSIKIG1zZ3N0ciAiR3JlbnplIgogCi0jOiBidWlsdGluL2xvZy5jOjEyMDIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyMgogbXNnaWQgImF0dGFjaCB0aGUgcGF0Y2giCiBtc2dzdHIgImjDpG5ndCBlaW5lbiBQYXRjaCBhbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjA1CisjOiBidWlsdGluL2xvZy5jOjEyMjUKIG1zZ2lkICJpbmxpbmUgdGhlIHBhdGNoIgogbXNnc3RyICJmw7xndCBkZW4gUGF0Y2ggZGlyZWt0IGluIGRpZSBOYWNocmljaHQgZWluIgogCi0jOiBidWlsdGluL2xvZy5jOjEyMDkKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyOQogbXNnaWQgImVuYWJsZSBtZXNzYWdlIHRocmVhZGluZywgc3R5bGVzOiBzaGFsbG93LCBkZWVwIgogbXNnc3RyICJha3RpdmllcnQgTmFjaHJpY2h0ZW52ZXJrZXR0dW5nLCBTdGlsZTogc2hhbGxvdywgZGVlcCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjExCisjOiBidWlsdGluL2xvZy5jOjEyMzEKIG1zZ2lkICJzaWduYXR1cmUiCiBtc2dzdHIgIlNpZ25hdHVyIgogCi0jOiBidWlsdGluL2xvZy5jOjEyMTIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIzMgogbXNnaWQgImFkZCBhIHNpZ25hdHVyZSIKIG1zZ3N0ciAiZsO8Z3QgZWluZSBTaWduYXR1ciBoaW56dSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjE0CisjOiBidWlsdGluL2xvZy5jOjEyMzMKIG1zZ2lkICJkb24ndCBwcmludCB0aGUgcGF0Y2ggZmlsZW5hbWVzIgogbXNnc3RyICJ6ZWlndCBrZWluZSBEYXRlaW5hbWVuIGRlciBQYXRjaGVzIgogCi0jOiBidWlsdGluL2xvZy5jOjEyODgKKyM6IGJ1aWx0aW4vbG9nLmM6MTMwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIGlkZW50IGxpbmU6ICVzIgogbXNnc3RyICJVbmfDvGx0aWdlIElkZW50aWZpa2F0aW9uc3plaWxlOiAlcyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzAzCisjOiBidWlsdGluL2xvZy5jOjEzMjIKIG1zZ2lkICItbiBhbmQgLWsgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtbiB1bmQgLWsgc2NobGllw59lbiBzaWNoIGdlZ2Vuc2VpdGlnIGF1cy4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTMwNQorIzogYnVpbHRpbi9sb2cuYzoxMzI0CiBtc2dpZCAiLS1zdWJqZWN0LXByZWZpeCBhbmQgLWsgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtLXN1YmplY3QtcHJlZml4IHVuZCAtayBzY2hsaWXDn2VuIHNpY2ggZ2VnZW5zZWl0aWcgYXVzLiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzEzCisjOiBidWlsdGluL2xvZy5jOjEzMzIKIG1zZ2lkICItLW5hbWUtb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICJEaWUgT3B0aW9uIC0tbmFtZS1vbmx5IGthbm4gbmljaHQgdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTMxNQorIzogYnVpbHRpbi9sb2cuYzoxMzM0CiBtc2dpZCAiLS1uYW1lLXN0YXR1cyBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICJEaWUgT3B0aW9uIC0tbmFtZS1zdGF0dXMga2FubiBuaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzE3CisjOiBidWlsdGluL2xvZy5jOjEzMzYKIG1zZ2lkICItLWNoZWNrIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIkRpZSBPcHRpb24gLS1jaGVjayBrYW5uIG5pY2h0IHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2xvZy5jOjEzNDAKKyM6IGJ1aWx0aW4vbG9nLmM6MTM1OQogbXNnaWQgInN0YW5kYXJkIG91dHB1dCwgb3IgZGlyZWN0b3J5LCB3aGljaCBvbmU/IgogbXNnc3RyICJTdGFuZGFyZC1BdXNnYWJlIG9kZXIgVmVyemVpY2huaXMsIHdlbGNoZXMgdm9uIGJlaWRlbT8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTM0MgorIzogYnVpbHRpbi9sb2cuYzoxMzYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5ICclcyciCiBtc2dzdHIgIktvbm50ZSBWZXJ6ZWljaG5pcyAnJXMnIG5pY2h0IGVyc3RlbGxlbi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQ5MAorIzogYnVpbHRpbi9sb2cuYzoxNTA5CiBtc2dpZCAiRmFpbGVkIHRvIGNyZWF0ZSBvdXRwdXQgZmlsZXMiCiBtc2dzdHIgIkZlaGxlciBiZWltIEVyc3RlbGxlbiBkZXIgQXVzZ2FiZWRhdGVpZW4uIgogCi0jOiBidWlsdGluL2xvZy5jOjE1MzkKKyM6IGJ1aWx0aW4vbG9nLmM6MTU1OAogbXNnaWQgImdpdCBjaGVycnkgWy12XSBbPHVwc3RyZWFtPiBbPGhlYWQ+IFs8bGltaXQ+XV1dIgogbXNnc3RyICJnaXQgY2hlcnJ5IFstdl0gWzxVcHN0cmVhbT4gWzxCcmFuY2g+IFs8TGltaXQ+XV1dIgogCi0jOiBidWlsdGluL2xvZy5jOjE1OTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTYxMwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ291bGQgbm90IGZpbmQgYSB0cmFja2VkIHJlbW90ZSBicmFuY2gsIHBsZWFzZSBzcGVjaWZ5IDx1cHN0cmVhbT4gbWFudWFsbHkuXG4iCkBAIC02NDAzLDE0MyArNjU5NSwxNDMgQEAKICJLb25udGUgZ2Vmb2xndGVuIFJlbW90ZS1CcmFuY2ggbmljaHQgZmluZGVuLCBiaXR0ZSBnZWJlbiBTaWUgPFVwc3RyZWFtPiAiCiAibWFudWVsbCBhbi5cbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxNjA3IGJ1aWx0aW4vbG9nLmM6MTYwOSBidWlsdGluL2xvZy5jOjE2MjEKKyM6IGJ1aWx0aW4vbG9nLmM6MTYyNiBidWlsdGluL2xvZy5jOjE2MjggYnVpbHRpbi9sb2cuYzoxNjQwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gY29tbWl0ICVzIgogbXNnc3RyICJVbmJla2FubnRlciBDb21taXQgJXMiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0MDgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzozOTgKIG1zZ2lkICJnaXQgbHMtZmlsZXMgW29wdGlvbnNdIFs8ZmlsZT4uLi5dIgogbXNnc3RyICJnaXQgbHMtZmlsZXMgW09wdGlvbmVuXSBbPERhdGVpPi4uLl0iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjUKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTUKIG1zZ2lkICJpZGVudGlmeSB0aGUgZmlsZSBzdGF0dXMgd2l0aCB0YWdzIgogbXNnc3RyICJ6ZWlndCBkZW4gRGF0ZWlzdGF0dXMgbWl0IFRhZ3MiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTcKIG1zZ2lkICJ1c2UgbG93ZXJjYXNlIGxldHRlcnMgZm9yICdhc3N1bWUgdW5jaGFuZ2VkJyBmaWxlcyIKIG1zZ3N0ciAiIgogInZlcndlbmRldCBLbGVpbmJ1Y2hzdGFiZW4gZsO8ciBEYXRlaWVuIG1pdCAnYXNzdW1lIHVuY2hhbmdlZCcgTWFya2llcnVuZyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2OQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ1OQogbXNnaWQgInNob3cgY2FjaGVkIGZpbGVzIGluIHRoZSBvdXRwdXQgKGRlZmF1bHQpIgogbXNnc3RyICJ6ZWlndCB6d2lzY2hlbmdlc3BlaWNoZXJ0ZW4gRGF0ZWllbiBpbiBkZXIgQXVzZ2FiZSBhbiAoU3RhbmRhcmQpIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDcxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDYxCiBtc2dpZCAic2hvdyBkZWxldGVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgInplaWd0IGVudGZlcm50ZSBEYXRlaWVuIGluIGRlciBBdXNnYWJlIGFuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDczCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDYzCiBtc2dpZCAic2hvdyBtb2RpZmllZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ6ZWlndCBnZcOkbmRlcnRlIERhdGVpZW4gaW4gZGVyIEF1c2dhYmUgYW4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzUKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjUKIG1zZ2lkICJzaG93IG90aGVyIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgInplaWd0IHNvbnN0aWdlIERhdGVpZW4gaW4gZGVyIEF1c2dhYmUgYW4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjcKIG1zZ2lkICJzaG93IGlnbm9yZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiemVpZ3QgaWdub3JpZXJ0ZSBEYXRlaWVuIGluIGRlciBBdXNnYWJlIGFuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDgwCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDcwCiBtc2dpZCAic2hvdyBzdGFnZWQgY29udGVudHMnIG9iamVjdCBuYW1lIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgIiIKICJ6ZWlndCBPYmpla3RuYW1lbiB2b24gSW5oYWx0ZW4sIGRpZSB6dW0gQ29tbWl0IHZvcmdlbWVya3Qgc2luZCwgaW4gZGVyICIKICJBdXNnYWJlIGFuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDgyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDcyCiBtc2dpZCAic2hvdyBmaWxlcyBvbiB0aGUgZmlsZXN5c3RlbSB0aGF0IG5lZWQgdG8gYmUgcmVtb3ZlZCIKIG1zZ3N0ciAiemVpZ3QgRGF0ZWllbiBpbSBEYXRlaXN5c3RlbSwgZGllIGdlbMO2c2NodCB3ZXJkZW4gbcO8c3NlbiwgYW4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzQKIG1zZ2lkICJzaG93ICdvdGhlcicgZGlyZWN0b3JpZXMnIG5hbWUgb25seSIKIG1zZ3N0ciAiemVpZ3QgbnVyIE5hbWVuIHZvbiAnc29uc3RpZ2VuJyBWZXJ6ZWljaG5pc3NlbiBhbiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NwogbXNnaWQgImRvbid0IHNob3cgZW1wdHkgZGlyZWN0b3JpZXMiCiBtc2dzdHIgInplaWd0IGtlaW5lIGxlZXJlbiBWZXJ6ZWljaG5pc3NlIGFuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkwCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgwCiBtc2dpZCAic2hvdyB1bm1lcmdlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ6ZWlndCBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0ZSBEYXRlaWVuIGluIGRlciBBdXNnYWJlIGFuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgyCiBtc2dpZCAic2hvdyByZXNvbHZlLXVuZG8gaW5mb3JtYXRpb24iCiBtc2dzdHIgInplaWd0ICdyZXNvbHZlLXVuZG8nIEluZm9ybWF0aW9uZW4gYW4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODQKIG1zZ2lkICJza2lwIGZpbGVzIG1hdGNoaW5nIHBhdHRlcm4iCiBtc2dzdHIgImzDpHNzdCBEYXRlaWVuIGF1cywgZGllIGVpbmVtIE11c3RlciBlbnRzcHJlY2hlbiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NwogbXNnaWQgImV4Y2x1ZGUgcGF0dGVybnMgYXJlIHJlYWQgZnJvbSA8ZmlsZT4iCiBtc2dzdHIgInNjaGxpZcOfdCBNdXN0ZXIsIGdlbGVzZW4gdm9uIDxEYXRlaT4sIGF1cyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MAogbXNnaWQgInJlYWQgYWRkaXRpb25hbCBwZXItZGlyZWN0b3J5IGV4Y2x1ZGUgcGF0dGVybnMgaW4gPGZpbGU+IgogbXNnc3RyICJsaWVzdCB6dXPDpHR6bGljaGUgcHJvLVZlcnplaWNobmlzIEF1c2NobHVzc211c3RlciBhdXMgPERhdGVpPiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MgogbXNnaWQgImFkZCB0aGUgc3RhbmRhcmQgZ2l0IGV4Y2x1c2lvbnMiCiBtc2dzdHIgImbDvGd0IGRpZSBzdGFuZGFyZG3DpMOfaWdlbiBHaXQtQXVzc2NobMO8c3NlIGhpbnp1IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTA1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk1CiBtc2dpZCAibWFrZSB0aGUgb3V0cHV0IHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHRvcCBkaXJlY3RvcnkiCiBtc2dzdHIgIkF1c2dhYmUgcmVsYXRpdiB6dW0gUHJvamVrdHZlcnplaWNobmlzIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTA4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk4CiBtc2dpZCAiaWYgYW55IDxmaWxlPiBpcyBub3QgaW4gdGhlIGluZGV4LCB0cmVhdCB0aGlzIGFzIGFuIGVycm9yIgogbXNnc3RyICIiCiAiYmVoYW5kbGUgZXMgYWxzIEZlaGxlciwgd2VubiBzaWNoIGVpbmUgPERhdGVpPiBuaWNodCBpbiBkZXIgU3RhZ2luZy1BcmVhICIKICJiZWZpbmRldCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwOQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5OQogbXNnaWQgInRyZWUtaXNoIgogbXNnc3RyICJDb21taXQtUmVmZXJlbnoiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTAKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDAKIG1zZ2lkICJwcmV0ZW5kIHRoYXQgcGF0aHMgcmVtb3ZlZCBzaW5jZSA8dHJlZS1pc2g+IGFyZSBzdGlsbCBwcmVzZW50IgogbXNnc3RyICIiCiAiZ2lidCB2b3IsIGRhc3MgUGZhZGUsIGRpZSBzZWl0IDxDb21taXQtUmVmZXJlbno+IGdlbMO2c2NodCB3dXJkZW4sIGltbWVyIG5vY2ggIgogInZvcmhhbmRlbiBzaW5kIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTEyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTAyCiBtc2dpZCAic2hvdyBkZWJ1Z2dpbmcgZGF0YSIKIG1zZ3N0ciAiemVpZ3QgQXVzZ2FiZW4genVyIEZlaGxlcnN1Y2hlIGFuIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoyNworIzogYnVpbHRpbi9scy10cmVlLmM6MjgKIG1zZ2lkICJnaXQgbHMtdHJlZSBbPG9wdGlvbnM+XSA8dHJlZS1pc2g+IFs8cGF0aD4uLi5dIgogbXNnc3RyICJnaXQgbHMtdHJlZSBbPE9wdGlvbmVuPl0gPENvbW1pdC1SZWZlcmVuej4gWzxQZmFkPi4uLl0iCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyNQorIzogYnVpbHRpbi9scy10cmVlLmM6MTI2CiBtc2dpZCAib25seSBzaG93IHRyZWVzIgogbXNnc3RyICJ6ZWlndCBudXIgVmVyemVpY2huaXNzZSBhbiIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTI3CisjOiBidWlsdGluL2xzLXRyZWUuYzoxMjgKIG1zZ2lkICJyZWN1cnNlIGludG8gc3VidHJlZXMiCiBtc2dzdHIgImbDvGhydCBSZWt1cnNpb24gaW4gVW50ZXJ2ZXJ6ZWljaG5pc3NlbiBkdXJjaCIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTI5CisjOiBidWlsdGluL2xzLXRyZWUuYzoxMzAKIG1zZ2lkICJzaG93IHRyZWVzIHdoZW4gcmVjdXJzaW5nIgogbXNnc3RyICJ6ZWlndCBWZXJ6ZWljaG5pc3NlIGJlaSBSZWt1cnNpb24gYW4iCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMgorIzogYnVpbHRpbi9scy10cmVlLmM6MTMzCiBtc2dpZCAidGVybWluYXRlIGVudHJpZXMgd2l0aCBOVUwgYnl0ZSIKIG1zZ3N0ciAic2NobGllw590IEVpbnRyw6RnZSBtaXQgTlVMLUJ5dGUgYWIiCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMworIzogYnVpbHRpbi9scy10cmVlLmM6MTM0CiBtc2dpZCAiaW5jbHVkZSBvYmplY3Qgc2l6ZSIKIG1zZ3N0ciAic2NobGllw590IE9iamVrdGdyw7bDn2UgZWluIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxMzUgYnVpbHRpbi9scy10cmVlLmM6MTM3CisjOiBidWlsdGluL2xzLXRyZWUuYzoxMzYgYnVpbHRpbi9scy10cmVlLmM6MTM4CiBtc2dpZCAibGlzdCBvbmx5IGZpbGVuYW1lcyIKIG1zZ3N0ciAibGlzdGV0IG51ciBEYXRlaW5hbWVuIGF1ZiIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTQwCisjOiBidWlsdGluL2xzLXRyZWUuYzoxNDEKIG1zZ2lkICJ1c2UgZnVsbCBwYXRoIG5hbWVzIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgdm9sbHN0w6RuZGlnZSBQZmFkbmFtZW4iCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjE0MgorIzogYnVpbHRpbi9scy10cmVlLmM6MTQzCiBtc2dpZCAibGlzdCBlbnRpcmUgdHJlZTsgbm90IGp1c3QgY3VycmVudCBkaXJlY3RvcnkgKGltcGxpZXMgLS1mdWxsLW5hbWUpIgogbXNnc3RyICIiCiAibGlzdGV0IGRhcyBnZXNhbXRlIFZlcnplaWNobmlzIGF1ZjsgbmljaHQgbnVyIGRhcyBha3R1ZWxsZSBWZXJ6ZWljaG5pcyAiCkBAIC02NjE4LDcgKzY4MTAsNyBAQAogbXNnaWQgIlZlcmlmeSB0aGF0IHRoZSBuYW1lZCBjb21taXQgaGFzIGEgdmFsaWQgR1BHIHNpZ25hdHVyZSIKIG1zZ3N0ciAiw7xiZXJwcsO8ZnQgZGVuIGdlbmFubnRlbiBDb21taXQgYXVmIGVpbmUgZ8O8bHRpZ2UgR1BHLVNpZ25hdHVyIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjE5IGJ1aWx0aW4vbm90ZXMuYzo3MzggYnVpbHRpbi9yZXZlcnQuYzoxMTQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTkgYnVpbHRpbi9ub3Rlcy5jOjczOCBidWlsdGluL3JldmVydC5jOjg5CiBtc2dpZCAic3RyYXRlZ3kiCiBtc2dzdHIgIlN0cmF0ZWdpZSIKIApAQCAtNjk5NCw3NiArNzE4Niw4NyBAQAogbXNnaWQgImFsbG93IGNyZWF0aW9uIG9mIG1vcmUgdGhhbiBvbmUgdHJlZSIKIG1zZ3N0ciAiZXJsYXVidCBkaWUgRXJzdGVsbHVuZyB2b24gbWVociBhbHMgZWluZW0gXCJUcmVlXCItT2JqZWt0IgogCi0jOiBidWlsdGluL212LmM6MTQKKyM6IGJ1aWx0aW4vbXYuYzoxNQogbXNnaWQgImdpdCBtdiBbb3B0aW9uc10gPHNvdXJjZT4uLi4gPGRlc3RpbmF0aW9uPiIKIG1zZ3N0ciAiZ2l0IG12IFtPcHRpb25lbl0gPFF1ZWxsZT4uLi4gPFppZWw+IgogCi0jOiBidWlsdGluL212LmM6NjQKKyM6IGJ1aWx0aW4vbXYuYzo2NwogbXNnaWQgImZvcmNlIG1vdmUvcmVuYW1lIGV2ZW4gaWYgdGFyZ2V0IGV4aXN0cyIKIG1zZ3N0ciAiZXJ6d2luZ3QgVmVyc2NoaWViZW4vVW1iZW5lbm5lbiwgYXVjaCB3ZW5uIGRhcyBaaWVsIGV4aXN0aWVydCIKIAotIzogYnVpbHRpbi9tdi5jOjY1CisjOiBidWlsdGluL212LmM6NjgKIG1zZ2lkICJza2lwIG1vdmUvcmVuYW1lIGVycm9ycyIKIG1zZ3N0ciAiw7xiZXJzcHJpbmd0IEZlaGxlciBiZWltIFZlcnNjaGllYmVuIG9kZXIgVW1iZW5lbm5lbiIKIAotIzogYnVpbHRpbi9tdi5jOjEwOAorIzogYnVpbHRpbi9tdi5jOjExMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGVja2luZyByZW5hbWUgb2YgJyVzJyB0byAnJXMnXG4iCiBtc2dzdHIgIlByw7xmZSBVbWJlbmVubnVuZyB2b24gJyVzJyBuYWNoICclcydcbiIKIAotIzogYnVpbHRpbi9tdi5jOjExMgorIzogYnVpbHRpbi9tdi5jOjExNwogbXNnaWQgImJhZCBzb3VyY2UiCiBtc2dzdHIgInVuZ8O8bHRpZ2UgUXVlbGxlIgogCi0jOiBidWlsdGluL212LmM6MTE1CisjOiBidWlsdGluL212LmM6MTIwCiBtc2dpZCAiY2FuIG5vdCBtb3ZlIGRpcmVjdG9yeSBpbnRvIGl0c2VsZiIKIG1zZ3N0ciAia2FubiBWZXJ6ZWljaG5pcyBuaWNodCBpbiBzaWNoIHNlbGJzdCB2ZXJzY2hpZWJlbiIKIAotIzogYnVpbHRpbi9tdi5jOjExOAorIzogYnVpbHRpbi9tdi5jOjEyMwogbXNnaWQgImNhbm5vdCBtb3ZlIGRpcmVjdG9yeSBvdmVyIGZpbGUiCiBtc2dzdHIgImthbm4gVmVyemVpY2huaXMgbmljaHQgw7xiZXIgRGF0ZWkgdmVyc2NoaWViZW4iCiAKLSM6IGJ1aWx0aW4vbXYuYzoxMjgKKyM6IGJ1aWx0aW4vbXYuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHVoPyBEaXJlY3RvcnkgJXMgaXMgaW4gaW5kZXggYW5kIG5vIHN1Ym1vZHVsZT8iCittc2dzdHIgIkh1aD8gVmVyemVpY2huaXMgJXMgaXN0IHp1bSBDb21taXQgdm9yZ2VtZXJrdCB1bmQga2VpbiBTdWJtb2R1bD8iCisKKyM6IGJ1aWx0aW4vbXYuYzoxMzEgYnVpbHRpbi9ybS5jOjMxOAorbXNnaWQgIlBsZWFzZSwgc3RhZ2UgeW91ciBjaGFuZ2VzIHRvIC5naXRtb2R1bGVzIG9yIHN0YXNoIHRoZW0gdG8gcHJvY2VlZCIKK21zZ3N0ciAiIgorIkJpdHRlIG1lcmtlbiBTaWUgSWhyZSDDhG5kZXJ1bmdlbiBpbiAuZ2l0bW9kdWxlcyB6dW0gQ29tbWl0IHZvciBvZGVyIGJlbnV0emVuXG4iCisiU2llIFwic3Rhc2hcIiB1bSBmb3J0enVmYWhyZW4uIgorCisjOiBidWlsdGluL212LmM6MTQ3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkh1aD8gJS4qcyBpcyBpbiBpbmRleD8iCiBtc2dzdHIgIkh1aD8gJS4qcyBpc3QgenVtIENvbW1pdCB2b3JnZW1lcmt0PyIKIAotIzogYnVpbHRpbi9tdi5jOjE0MAorIzogYnVpbHRpbi9tdi5jOjE1OQogbXNnaWQgInNvdXJjZSBkaXJlY3RvcnkgaXMgZW1wdHkiCiBtc2dzdHIgIlF1ZWxsdmVyemVpY2huaXMgaXN0IGxlZXIiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxNzEKKyM6IGJ1aWx0aW4vbXYuYzoxOTEKIG1zZ2lkICJub3QgdW5kZXIgdmVyc2lvbiBjb250cm9sIgogbXNnc3RyICJuaWNodCB1bnRlciBWZXJzaW9uc2tvbnRyb2xsZSIKIAotIzogYnVpbHRpbi9tdi5jOjE3MworIzogYnVpbHRpbi9tdi5jOjE5MwogbXNnaWQgImRlc3RpbmF0aW9uIGV4aXN0cyIKIG1zZ3N0ciAiWmllbCBleGlzdGllcnQgYmVyZWl0cyIKIAotIzogYnVpbHRpbi9tdi5jOjE4MQorIzogYnVpbHRpbi9tdi5jOjIwMQogIywgYy1mb3JtYXQKIG1zZ2lkICJvdmVyd3JpdGluZyAnJXMnIgogbXNnc3RyICLDvGJlcnNjaHJlaWJlICclcyciCiAKLSM6IGJ1aWx0aW4vbXYuYzoxODQKKyM6IGJ1aWx0aW4vbXYuYzoyMDQKIG1zZ2lkICJDYW5ub3Qgb3ZlcndyaXRlIgogbXNnc3RyICJLYW5uIG5pY2h0IMO8YmVyc2NocmVpYmVuIgogCi0jOiBidWlsdGluL212LmM6MTg3CisjOiBidWlsdGluL212LmM6MjA3CiBtc2dpZCAibXVsdGlwbGUgc291cmNlcyBmb3IgdGhlIHNhbWUgdGFyZ2V0IgogbXNnc3RyICJtZWhyZXJlIFF1ZWxsZW4gZsO8ciBkYXMgc2VsYmUgWmllbCIKIAotIzogYnVpbHRpbi9tdi5jOjIwMgorIzogYnVpbHRpbi9tdi5jOjIyMgogIywgYy1mb3JtYXQKIG1zZ2lkICIlcywgc291cmNlPSVzLCBkZXN0aW5hdGlvbj0lcyIKIG1zZ3N0ciAiJXMsIFF1ZWxsZT0lcywgWmllbD0lcyIKIAotIzogYnVpbHRpbi9tdi5jOjIxMgorIzogYnVpbHRpbi9tdi5jOjIzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWluZyAlcyB0byAlc1xuIgogbXNnc3RyICJCZW5lbm5lICVzIG5hY2ggJXMgdW1cbiIKIAotIzogYnVpbHRpbi9tdi5jOjIxNSBidWlsdGluL3JlbW90ZS5jOjczMQorIzogYnVpbHRpbi9tdi5jOjIzNSBidWlsdGluL3JlbW90ZS5jOjczMSBidWlsdGluL3JlcGFjay5jOjMzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW5hbWluZyAnJXMnIGZhaWxlZCIKIG1zZ3N0ciAiVW1iZW5lbm51bmcgdm9uICclcycgZmVobGdlc2NobGFnZW4iCkBAIC03MTAxLDggKzczMDQsOCBAQAogbXNnc3RyICJsaWVzdCB2b24gZGVyIFN0YW5kYXJkLUVpbmdhYmUiCiAKICM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMjAKLW1zZ2lkICJhbGxvdyB0byBwcmludCBgdW5kZWZpbmVkYCBuYW1lcyIKLW1zZ3N0ciAiZXJsYXVidCBBdXNnYWJlIHZvbiBgdW5kZWZpbmllcnRlbmAgTmFtZW4iCittc2dpZCAiYWxsb3cgdG8gcHJpbnQgYHVuZGVmaW5lZGAgbmFtZXMgKGRlZmF1bHQpIgorbXNnc3RyICJlcmxhdWJ0IEF1c2dhYmUgdm9uIGB1bmRlZmluaWVydGVuYCBOYW1lbiAoU3RhbmRhcmQpIgogCiAjOiBidWlsdGluL25hbWUtcmV2LmM6MzI2CiBtc2dpZCAiZGVyZWZlcmVuY2UgdGFncyBpbiB0aGUgaW5wdXQgKGludGVybmFsIHVzZSkiCkBAIC03MjU4LDEyICs3NDYxLDEyIEBACiBtc2dpZCAiVGhlIG5vdGUgY29udGVudHMgaGFzIGJlZW4gbGVmdCBpbiAlcyIKIG1zZ3N0ciAiRGllIE5vdGl6LUluaGFsdGUgd3VyZGVuIGluICVzIGJlbGFzc2VuIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjQ4IGJ1aWx0aW4vdGFnLmM6NTQwCisjOiBidWlsdGluL25vdGVzLmM6MjQ4IGJ1aWx0aW4vdGFnLmM6NTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICclcyciCiBtc2dzdHIgImthbm4gJyVzJyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI1MCBidWlsdGluL3RhZy5jOjU0MworIzogYnVpbHRpbi9ub3Rlcy5jOjI1MCBidWlsdGluL3RhZy5jOjU0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiBvciByZWFkICclcyciCiBtc2dzdHIgImtvbm50ZSAnJXMnIG5pY2h0IMO2ZmZuZW4gb2RlciBsZXNlbiIKQEAgLTcyNzEsNyArNzQ3NCw3IEBACiAjOiBidWlsdGluL25vdGVzLmM6MjY5IGJ1aWx0aW4vbm90ZXMuYzozMTYgYnVpbHRpbi9ub3Rlcy5jOjMxOAogIzogYnVpbHRpbi9ub3Rlcy5jOjM3OCBidWlsdGluL25vdGVzLmM6NDMyIGJ1aWx0aW4vbm90ZXMuYzo1MTUKICM6IGJ1aWx0aW4vbm90ZXMuYzo1MjAgYnVpbHRpbi9ub3Rlcy5jOjU5NSBidWlsdGluL25vdGVzLmM6NjM3Ci0jOiBidWlsdGluL25vdGVzLmM6ODM5IGJ1aWx0aW4vdGFnLmM6NTU2CisjOiBidWlsdGluL25vdGVzLmM6ODM5IGJ1aWx0aW4vdGFnLmM6NTUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZWYuIgogbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCBhbHMgZ8O8bHRpZ2UgUmVmZXJlbnogYXVmbMO2c2VuLiIKQEAgLTc0NDgsMTUzICs3NjUxLDE1MyBAQAogbXNnc3RyICIiCiAiZ2l0IHBhY2stb2JqZWN0cyBbT3B0aW9uZW4uLi5dIEJhc2lzLU5hbWUgWzwgUmVmZXJlbnpsaXN0ZSB8IDwgT2JqZWt0bGlzdGVdIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE4MyBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE4NgorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxODQgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVmbGF0ZSBlcnJvciAoJWQpIgogbXNnc3RyICJGZWhsZXIgYmVpbSBLb21wcmltaWVyZW4gKCVkKSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyMzk3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjIzOTgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5zdXBwb3J0ZWQgaW5kZXggdmVyc2lvbiAlcyIKIG1zZ3N0ciAiTmljaHQgdW50ZXJzdMO8dHp0ZSBTdGFnaW5nLUFyZWEtVmVyc2lvbiAlcyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDAxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIGluZGV4IHZlcnNpb24gJyVzJyIKIG1zZ3N0ciAiVW5nw7xsdGlnZSBTdGFnaW5nLUFyZWEtVmVyc2lvbiAnJXMnIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MjQKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJvcHRpb24gJXMgZG9lcyBub3QgYWNjZXB0IG5lZ2F0aXZlIGZvcm0iCiBtc2dzdHIgIk9wdGlvbiAlcyBha3plcHRpZXJ0IGtlaW5lIG5lZ2F0aXZlIEZvcm0iCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQyOAorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBwYXJzZSB2YWx1ZSAnJXMnIGZvciBvcHRpb24gJXMiCiBtc2dzdHIgImtvbm50ZSBXZXJ0ICclcycgZsO8ciBPcHRpb24gJXMgbmljaHQgcGFyc2VuIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NDcKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ0OAogbXNnaWQgImRvIG5vdCBzaG93IHByb2dyZXNzIG1ldGVyIgogbXNnc3RyICJ6ZWlndCBrZWluZSBGb3J0c2Nocml0dHNhbnplaWdlIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NDkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1MAogbXNnaWQgInNob3cgcHJvZ3Jlc3MgbWV0ZXIiCiBtc2dzdHIgInplaWd0IEZvcnRzY2hyaXR0c2FuemVpZ2UiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1MQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDUyCiBtc2dpZCAic2hvdyBwcm9ncmVzcyBtZXRlciBkdXJpbmcgb2JqZWN0IHdyaXRpbmcgcGhhc2UiCiBtc2dzdHIgInplaWd0IEZvcnNjaHJpdHRzYW56ZWlnZSB3w6RocmVuZCBkZXIgUGhhc2UgZGVzIFNjaHJlaWJlbnMgZGVyIE9iamVrdGUiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NAorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU1CiBtc2dpZCAic2ltaWxhciB0byAtLWFsbC1wcm9ncmVzcyB3aGVuIHByb2dyZXNzIG1ldGVyIGlzIHNob3duIgogbXNnc3RyICLDpGhubGljaCB6dSAtLWFsbC1wcm9ncmVzcyB3ZW5uIEZvcnRzY2hyaXR0c2FuemVpZ2UgZGFyc3RlbGx0IHdpcmQiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU2CiBtc2dpZCAidmVyc2lvblssb2Zmc2V0XSIKIG1zZ3N0ciAidmVyc2lvblssb2Zmc2V0XSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU2CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTcKIG1zZ2lkICJ3cml0ZSB0aGUgcGFjayBpbmRleCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgaWR4IGZvcm1hdCB2ZXJzaW9uIgogbXNnc3RyICIiCiAic2NocmVpYnQgZGllIEluZGV4LURhdGVpIGRlcyBQYWtldGVzIGluIGRlciBhbmdlZ2ViZW5lbiBJbmRleGZvcm1hdC1WZXJzaW9uIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2MAogbXNnaWQgIm1heGltdW0gc2l6ZSBvZiBlYWNoIG91dHB1dCBwYWNrIGZpbGUiCiBtc2dzdHIgIm1heGltYWxlIEdyw7bDn2UgZsO8ciBqZWRlIGF1c2dlZ2ViZW5lIFBha2V0ZGF0ZWkiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2MQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDYyCiBtc2dpZCAiaWdub3JlIGJvcnJvd2VkIG9iamVjdHMgZnJvbSBhbHRlcm5hdGUgb2JqZWN0IHN0b3JlIgogbXNnc3RyICJpZ25vcmllcnQgZ2VsaWVoZW5lIE9iamVrdGUgdm9uIGFsdGVybmF0aXZlbSBPYmpla3RzcGVpY2hlciIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDYzCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjQKIG1zZ2lkICJpZ25vcmUgcGFja2VkIG9iamVjdHMiCiBtc2dzdHIgImlnbm9yaWVydCBnZXBhY2t0ZSBPYmpla3RlIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjUKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2NgogbXNnaWQgImxpbWl0IHBhY2sgd2luZG93IGJ5IG9iamVjdHMiCiBtc2dzdHIgImJlZ3Jlbnp0IFBha2V0ZmVuc3RlciBkdXJjaCBPYmpla3RlIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjcKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2OAogbXNnaWQgImxpbWl0IHBhY2sgd2luZG93IGJ5IG1lbW9yeSBpbiBhZGRpdGlvbiB0byBvYmplY3QgbGltaXQiCiBtc2dzdHIgImJlZ3Jlbnp0IFBha2V0ZmVuc3RlciwgenVzw6R0emxpY2ggenVyIE9iamVrdGJlZ3Jlbnp1bmcsIGR1cmNoIFNwZWljaGVyIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3MAogbXNnaWQgIm1heGltdW0gbGVuZ3RoIG9mIGRlbHRhIGNoYWluIGFsbG93ZWQgaW4gdGhlIHJlc3VsdGluZyBwYWNrIgogbXNnc3RyICIiCiAibWF4aW1hbGUgTMOkbmdlIGRlciBlcmxhdWJ0ZW4gRGlmZmVyZW56dmVya2V0dHVuZyBpbSByZXN1bHRpZXJlbmRlbiBQYWtldCIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDcxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzIKIG1zZ2lkICJyZXVzZSBleGlzdGluZyBkZWx0YXMiCiBtc2dzdHIgInZlcndlbmRldCBleGlzdGllcmVuZGUgVW50ZXJzY2hpZWRlIHdpZWRlciIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDczCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzQKIG1zZ2lkICJyZXVzZSBleGlzdGluZyBvYmplY3RzIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgZXhpc3RpZXJlbmRlIE9iamVrdGUgd2llZGVyIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzUKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3NgogbXNnaWQgInVzZSBPRlNfREVMVEEgb2JqZWN0cyIKIG1zZ3N0ciAidmVyd2VuZGV0IE9GU19ERUxUQSBPYmpla3RlIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzcKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3OAogbXNnaWQgInVzZSB0aHJlYWRzIHdoZW4gc2VhcmNoaW5nIGZvciBiZXN0IGRlbHRhIG1hdGNoZXMiCiBtc2dzdHIgIiIKICJ2ZXJ3ZW5kZXQgVGhyZWFkcyBiZWkgZGVyIFN1Y2hlIG5hY2ggZGVuIGJlc3RlbiDDnGJlcmVpbnN0aW1tdW5nZW4gYmVpICIKICJVbnRlcnNjaGllZGVuIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4MAogbXNnaWQgImRvIG5vdCBjcmVhdGUgYW4gZW1wdHkgcGFjayBvdXRwdXQiCiBtc2dzdHIgImVyemV1Z3Qga2VpbmUgbGVlcmVuIFBha2V0ZSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDgxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODIKIG1zZ2lkICJyZWFkIHJldmlzaW9uIGFyZ3VtZW50cyBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJsaWVzdCBBcmd1bWVudGUgYmV6w7xnbGljaCBDb21taXRzIHZvbiBkZXIgU3RhbmRhcmQtRWluZ2FiZSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDgzCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODQKIG1zZ2lkICJsaW1pdCB0aGUgb2JqZWN0cyB0byB0aG9zZSB0aGF0IGFyZSBub3QgeWV0IHBhY2tlZCIKIG1zZ3N0ciAiYmVncmVuenQgZGllIE9iamVrdGUgenUgc29sY2hlbiwgZGllIG5vY2ggbmljaHQgZ2VwYWNrdCB3dXJkZW4iCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4NgorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDg3CiBtc2dpZCAiaW5jbHVkZSBvYmplY3RzIHJlYWNoYWJsZSBmcm9tIGFueSByZWZlcmVuY2UiCiBtc2dzdHIgInNjaGxpZcOfdCBPYmpla3RlIGVpbiwgZGllIHZvbiBqZWRlciBSZWZlcmVueiBlcnJlaWNoYmFyIHNpbmQiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4OQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDkwCiBtc2dpZCAiaW5jbHVkZSBvYmplY3RzIHJlZmVycmVkIGJ5IHJlZmxvZyBlbnRyaWVzIgogbXNnc3RyICIiCiAic2NobGllw590IE9iamVrdGUgZWluLCBkaWUgdm9uIEVpbnRyw6RnZW4gZGVzIFJlZmxvZ3MgcmVmZXJlbnppZXJ0IHdlcmRlbiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDkyCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTMKIG1zZ2lkICJvdXRwdXQgcGFjayB0byBzdGRvdXQiCiBtc2dzdHIgInNjaHJlaWJ0IFBha2V0IGluIGRpZSBTdGFuZGFyZC1BdXNnYWJlIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTQKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NQogbXNnaWQgImluY2x1ZGUgdGFnIG9iamVjdHMgdGhhdCByZWZlciB0byBvYmplY3RzIHRvIGJlIHBhY2tlZCIKIG1zZ3N0ciAic2NobGllw590IFRhZy1PYmpla3RlIGVpbiwgZGllIGF1ZiBnZXBhY2t0ZSBPYmpla3RlIHJlZmVyZW56aWVyZW4iCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NgorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk3CiBtc2dpZCAia2VlcCB1bnJlYWNoYWJsZSBvYmplY3RzIgogbXNnc3RyICJiZWjDpGx0IG5pY2h0IGVycmVpY2hiYXJlIE9iamVrdGUiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NyBwYXJzZS1vcHRpb25zLmg6MTQxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTggcGFyc2Utb3B0aW9ucy5oOjE0MwogbXNnaWQgInRpbWUiCiBtc2dzdHIgIlplaXQiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5OAorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk5CiBtc2dpZCAidW5wYWNrIHVucmVhY2hhYmxlIG9iamVjdHMgbmV3ZXIgdGhhbiA8dGltZT4iCiBtc2dzdHIgImVudHBhY2t0IG5pY2h0IGVycmVpY2hiYXJlIE9iamVrdGUsIGRpZSBuZXVlciBhbHMgPFplaXQ+IHNpbmQiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwMQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTAyCiBtc2dpZCAiY3JlYXRlIHRoaW4gcGFja3MiCiBtc2dzdHIgImVyemV1Z3QgZMO8bm5lcmUgUGFrZXRlIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDMKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNAogbXNnaWQgImlnbm9yZSBwYWNrcyB0aGF0IGhhdmUgY29tcGFuaW9uIC5rZWVwIGZpbGUiCiBtc2dzdHIgImlnbm9yaWVydCBQYWtldGUgZGllIC5rZWVwIERhdGVpZW4gaGFiZW4iCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA2CiBtc2dpZCAicGFjayBjb21wcmVzc2lvbiBsZXZlbCIKIG1zZ3N0ciAiS29tcHJpbWllcnVuZ3NncmFkIGbDvHIgUGFrZXRpZXJ1bmciCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA4CiBtc2dpZCAiZG8gbm90IGhpZGUgY29tbWl0cyBieSBncmFmdHMiCiBtc2dzdHIgInZlcmJpcmd0IGtlaW5lIENvbW1pdHMgbWl0IGvDvG5zdGxpY2hlbiBWb3Jnw6RuZ2VybiAoXCJncmFmdHNcIikiCiAKQEAgLTc2MzQsMTUgKzc4MzcsMTUgQEAKIG1zZ2lkICJnaXQgcHVzaCBbPG9wdGlvbnM+XSBbPHJlcG9zaXRvcnk+IFs8cmVmc3BlYz4uLi5dXSIKIG1zZ3N0ciAiZ2l0IHB1c2ggWzxPcHRpb25lbj5dIFs8UmVwb3NpdG9yeT4gWzxSZWZzcGVjPi4uLl1dIgogCi0jOiBidWlsdGluL3B1c2guYzo0NQorIzogYnVpbHRpbi9wdXNoLmM6NDcKIG1zZ2lkICJ0YWcgc2hvcnRoYW5kIHdpdGhvdXQgPHRhZz4iCiBtc2dzdHIgIkt1cnpzY2hyaWZ0IGbDvHIgVGFnIG9obmUgPFRhZz4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjY0CisjOiBidWlsdGluL3B1c2guYzo2NgogbXNnaWQgIi0tZGVsZXRlIG9ubHkgYWNjZXB0cyBwbGFpbiB0YXJnZXQgcmVmIG5hbWVzIgogbXNnc3RyICJEaWUgT3B0aW9uIC0tZGVsZXRlIGFremVwdGllcnQgbnVyIHJlaW5lIFJlZmVyZW56bmFtZW4gYWxzIFppZWwuIgogCi0jOiBidWlsdGluL3B1c2guYzo5OQorIzogYnVpbHRpbi9wdXNoLmM6MTAxCiBtc2dpZCAiIgogIlxuIgogIlRvIGNob29zZSBlaXRoZXIgb3B0aW9uIHBlcm1hbmVudGx5LCBzZWUgcHVzaC5kZWZhdWx0IGluICdnaXQgaGVscCBjb25maWcnLiIKQEAgLTc2NTEsNyArNzg1NCw3IEBACiAiVW0gZWluZSBWYXJpYW50ZSBwZXJtYW5lbnQgenUgdmVyd2VuZGVuLCBzaWVoZSBwdXNoLmRlZmF1bHQgaW4gJ2dpdCBoZWxwICIKICJjb25maWcnLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTAyCisjOiBidWlsdGluL3B1c2guYzoxMDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSB1cHN0cmVhbSBicmFuY2ggb2YgeW91ciBjdXJyZW50IGJyYW5jaCBkb2VzIG5vdCBtYXRjaFxuIgpAQCAtNzY3Nyw3ICs3ODgwLDcgQEAKICIgICAgZ2l0IHB1c2ggJXMgJXNcbiIKICIlcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTE3CisjOiBidWlsdGluL3B1c2guYzoxMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgbm90IGN1cnJlbnRseSBvbiBhIGJyYW5jaC5cbiIKQEAgLTc2OTIsNyArNzg5NSw3IEBACiAiXG4iCiAiICAgIGdpdCBwdXNoICVzIEhFQUQ6PE5hbWUtZGVzLVJlbW90ZS1CcmFuY2hlcz5cbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTMxCisjOiBidWlsdGluL3B1c2guYzoxMzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBjdXJyZW50IGJyYW5jaCAlcyBoYXMgbm8gdXBzdHJlYW0gYnJhbmNoLlxuIgpAQCAtNzcwNiwxMyArNzkwOSwxMyBAQAogIlxuIgogIiAgICBnaXQgcHVzaCAtLXNldC11cHN0cmVhbSAlcyAlc1xuIgogCi0jOiBidWlsdGluL3B1c2guYzoxMzkKKyM6IGJ1aWx0aW4vcHVzaC5jOjE0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG11bHRpcGxlIHVwc3RyZWFtIGJyYW5jaGVzLCByZWZ1c2luZyB0byBwdXNoLiIKIG1zZ3N0ciAiIgogIkRlciBha3R1ZWxsZSBCcmFuY2ggJXMgaGF0IG1laHJlcmUgVXBzdHJlYW0tQnJhbmNoZXMsIFwicHVzaFwiIHZlcndlaWdlcnQuIgogCi0jOiBidWlsdGluL3B1c2guYzoxNDIKKyM6IGJ1aWx0aW4vcHVzaC5jOjE0NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91IGFyZSBwdXNoaW5nIHRvIHJlbW90ZSAnJXMnLCB3aGljaCBpcyBub3QgdGhlIHVwc3RyZWFtIG9mXG4iCkBAIC03NzIwLDEwICs3OTIzLDEwIEBACiAidG8gdXBkYXRlIHdoaWNoIHJlbW90ZSBicmFuY2guIgogbXNnc3RyICIiCiAiU2llIHZlcnNlbmRlbiBuYWNoICclcycsIHdlbGNoZXMga2VpbiBVcHN0cmVhbS1SZXBvc2l0b3J5IElocmVzIGFrdHVlbGxlblxuIgotIkJyYW5jaGVzICclcycgaXN0LCBvaG5lIG1pciBtaXR6dXRlaWxlbiwgd2FzIGljaCB2ZXJzZW5kZW4gc29sbCwgdW0gd2VsY2hlblxuIgorIkJyYW5jaGVzICclcycgaXN0LCBvaG5lIGFuenVnZWJlbiwgd2FzIHZlcnNlbmRldCB3ZXJkZW4gc29sbCwgdW0gd2VsY2hlblxuIgogIlJlbW90ZS1CcmFuY2ggenUgYWt0dWFsaXNpZXJlbi4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjE2NQorIzogYnVpbHRpbi9wdXNoLmM6MTY3CiBtc2dpZCAiIgogInB1c2guZGVmYXVsdCBpcyB1bnNldDsgaXRzIGltcGxpY2l0IHZhbHVlIGlzIGNoYW5naW5nIGluXG4iCiAiR2l0IDIuMCBmcm9tICdtYXRjaGluZycgdG8gJ3NpbXBsZScuIFRvIHNxdWVsY2ggdGhpcyBtZXNzYWdlXG4iCkBAIC03NzU4LDE0ICs3OTYxLDE0IEBACiAiTW9kdXMgJ2N1cnJlbnQnIGFuc3RhdHQgJ3NpbXBsZScsIGZhbGxzIFNpZSBnZWxlZ2VudGxpY2ggw6RsdGVyZSBWZXJzaW9uZW4gIgogInZvbiBHaXQgYmVudXR6ZW4uKSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjI1CisjOiBidWlsdGluL3B1c2guYzoyMjcKIG1zZ2lkICIiCiAiWW91IGRpZG4ndCBzcGVjaWZ5IGFueSByZWZzcGVjcyB0byBwdXNoLCBhbmQgcHVzaC5kZWZhdWx0IGlzIFwibm90aGluZ1wiLiIKIG1zZ3N0ciAiIgogIlNpZSBoYWJlbiBrZWluZSBSZWZzcGVjIGbDvHIgXCJwdXNoXCIgYW5nZWdlYmVuLCB1bmQgcHVzaC5kZWZhdWx0IGlzdCAiCiAiXCJub3RoaW5nXCIuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMzIKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzNAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGlwIG9mIHlvdXIgY3VycmVudCBicmFuY2ggaXMgYmVoaW5kXG4iCiAiaXRzIHJlbW90ZSBjb3VudGVycGFydC4gSW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLlxuIgpAQCAtNzc3OSw3ICs3OTgyLDcgQEAKICJTaWVoZSBhdWNoIGRpZSBTZWt0aW9uICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnXG4iCiAiZsO8ciB3ZWl0ZXJlIERldGFpbHMuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMzgKKyM6IGJ1aWx0aW4vcHVzaC5jOjI0MAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCiAiY291bnRlcnBhcnQuIElmIHlvdSBkaWQgbm90IGludGVuZCB0byBwdXNoIHRoYXQgYnJhbmNoLCB5b3UgbWF5IHdhbnQgdG9cbiIKQEAgLTc3OTUsNyArNzk5OCw3IEBACiAiJ3NpbXBsZScsICdjdXJyZW50J1xuIgogIm9kZXIgJ3Vwc3RyZWFtJyBzZXR6ZW4sIHVtIG51ciBkZW4gYWt0dWVsbGVuIEJyYW5jaCB6dSB2ZXJzZW5kZW4uIgogCi0jOiBidWlsdGluL3B1c2guYzoyNDQKKyM6IGJ1aWx0aW4vcHVzaC5jOjI0NgogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCiAiY291bnRlcnBhcnQuIENoZWNrIG91dCB0aGlzIGJyYW5jaCBhbmQgaW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgpAQCAtNzgwOSw3ICs4MDEyLDcgQEAKICJTaWVoZSBhdWNoIGRpZSBTZWt0aW9uICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnXG4iCiAiZsO8ciB3ZWl0ZXJlIERldGFpbHMuIgogCi0jOiBidWlsdGluL3B1c2guYzoyNTAKKyM6IGJ1aWx0aW4vcHVzaC5jOjI1MgogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgcmVtb3RlIGNvbnRhaW5zIHdvcmsgdGhhdCB5b3UgZG9cbiIKICJub3QgaGF2ZSBsb2NhbGx5LiBUaGlzIGlzIHVzdWFsbHkgY2F1c2VkIGJ5IGFub3RoZXIgcmVwb3NpdG9yeSBwdXNoaW5nXG4iCkBAIC03ODI4LDEzICs4MDMxLDEzIEBACiAiU2llaGUgYXVjaCBkaWUgU2VrdGlvbiAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJ1xuIgogImbDvHIgd2VpdGVyZSBEZXRhaWxzLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjU3CisjOiBidWlsdGluL3B1c2guYzoyNTkKIG1zZ2lkICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGFnIGFscmVhZHkgZXhpc3RzIGluIHRoZSByZW1vdGUuIgogbXNnc3RyICIiCiAiQWt0dWFsaXNpZXJ1bmdlbiB3dXJkZW4genVyw7xja2dld2llc2VuLCB3ZWlsIGRhcyBUYWcgYmVyZWl0c1xuIgogImltIFJlbW90ZS1SZXBvc2l0b3J5IGV4aXN0aWVydC4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI2MAorIzogYnVpbHRpbi9wdXNoLmM6MjYyCiBtc2dpZCAiIgogIllvdSBjYW5ub3QgdXBkYXRlIGEgcmVtb3RlIHJlZiB0aGF0IHBvaW50cyBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgogIm9yIHVwZGF0ZSBhIHJlbW90ZSByZWYgdG8gbWFrZSBpdCBwb2ludCBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgpAQCAtNzg0NCwyMiArODA0NywyMiBAQAogImRhcyBrZWluIENvbW1pdCBpc3QsIG9kZXIgZXMgYXVmIGVpbiBzb2xjaGVzIE9iamVrdCB6ZWlnZW4gbGFzc2VuLCBvaG5lXG4iCiAiZGllIE9wdGlvbiAnLS1mb3JjZScgenUgdmVyd2VuZGVuLlxuIgogCi0jOiBidWlsdGluL3B1c2guYzozMjAKKyM6IGJ1aWx0aW4vcHVzaC5jOjMyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJQdXNoaW5nIHRvICVzXG4iCiBtc2dzdHIgIlZlcnNlbmRlIG5hY2ggJXNcbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzI0CisjOiBidWlsdGluL3B1c2guYzozMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHB1c2ggc29tZSByZWZzIHRvICclcyciCiBtc2dzdHIgIkZlaGxlciBiZWltIFZlcnNlbmRlbiBlaW5pZ2VyIFJlZmVyZW56ZW4gbmFjaCAnJXMnIgogCi0jOiBidWlsdGluL3B1c2guYzozNTcKKyM6IGJ1aWx0aW4vcHVzaC5jOjM2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgcmVwb3NpdG9yeSAnJXMnIgogbXNnc3RyICJ1bmfDvGx0aWdlcyBSZXBvc2l0b3J5ICclcyciCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1OAorIzogYnVpbHRpbi9wdXNoLmM6MzY2CiBtc2dpZCAiIgogIk5vIGNvbmZpZ3VyZWQgcHVzaCBkZXN0aW5hdGlvbi5cbiIKICJFaXRoZXIgc3BlY2lmeSB0aGUgVVJMIGZyb20gdGhlIGNvbW1hbmQtbGluZSBvciBjb25maWd1cmUgYSByZW1vdGUgIgpAQCAtNzg4MSw4NyArODA4NCw5NSBAQAogIlxuIgogIiAgICBnaXQgcHVzaCA8TmFtZT5cbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzczCisjOiBidWlsdGluL3B1c2guYzozODEKIG1zZ2lkICItLWFsbCBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtLWFsbCB1bmQgLS10YWdzIHNpbmQgaW5rb21wYXRpYmVsLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mzc0CisjOiBidWlsdGluL3B1c2guYzozODIKIG1zZ2lkICItLWFsbCBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICJEaWUgT3B0aW9uIC0tYWxsIGthbm4gbmljaHQgbWl0IFJlZnNwZWNzIGtvbWJpbmllcnQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mzc5CisjOiBidWlsdGluL3B1c2guYzozODcKIG1zZ2lkICItLW1pcnJvciBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtLW1pcnJvciB1bmQgLS10YWdzIHNpbmQgaW5rb21wYXRpYmVsLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzgwCisjOiBidWlsdGluL3B1c2guYzozODgKIG1zZ2lkICItLW1pcnJvciBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICJEaWUgT3B0aW9uIC0tbWlycm9yIGthbm4gbmljaHQgbWl0IFJlZnNwZWNzIGtvbWJpbmllcnQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mzg1CisjOiBidWlsdGluL3B1c2guYzozOTMKIG1zZ2lkICItLWFsbCBhbmQgLS1taXJyb3IgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiRGllIE9wdGlvbmVuIC0tYWxsIHVuZCAtLW1pcnJvciBzaW5kIGlua29tcGF0aWJlbC4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ0NQorIzogYnVpbHRpbi9wdXNoLmM6NDUzCiBtc2dpZCAicmVwb3NpdG9yeSIKIG1zZ3N0ciAiUmVwb3NpdG9yeSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDQ2CisjOiBidWlsdGluL3B1c2guYzo0NTQKIG1zZ2lkICJwdXNoIGFsbCByZWZzIgogbXNnc3RyICJ2ZXJzZW5kZXQgYWxsZSBSZWZlcmVuemVuIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NQogbXNnaWQgIm1pcnJvciBhbGwgcmVmcyIKIG1zZ3N0ciAic3BpZWdlbHQgYWxsZSBSZWZlcmVuemVuIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NwogbXNnaWQgImRlbGV0ZSByZWZzIgogbXNnc3RyICJsw7ZzY2h0IFJlZmVyZW56ZW4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAorIzogYnVpbHRpbi9wdXNoLmM6NDU4CiBtc2dpZCAicHVzaCB0YWdzIChjYW4ndCBiZSB1c2VkIHdpdGggLS1hbGwgb3IgLS1taXJyb3IpIgogbXNnc3RyICJ2ZXJzZW5kZXQgVGFncyAoa2FubiBuaWNodCBtaXQgLS1hbGwgb2RlciAtLW1pcnJvciB2ZXJ3ZW5kZXQgd2VyZGVuKSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDUzCisjOiBidWlsdGluL3B1c2guYzo0NjEKIG1zZ2lkICJmb3JjZSB1cGRhdGVzIgogbXNnc3RyICJlcnp3aW5ndCBBa3R1YWxpc2llcnVuZyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDU0CisjOiBidWlsdGluL3B1c2guYzo0NjMKK21zZ2lkICJyZWZuYW1lPjo8ZXhwZWN0IgorbXNnc3RyICJSZWZlcmVuem5hbWU+OjxFcndhcnR1bmdzd2VydCIKKworIzogYnVpbHRpbi9wdXNoLmM6NDY0Cittc2dpZCAicmVxdWlyZSBvbGQgdmFsdWUgb2YgcmVmIHRvIGJlIGF0IHRoaXMgdmFsdWUiCittc2dzdHIgIlJlZmVyZW56IG11c3Mgc2ljaCBhdWYgZGVtIGFuZ2VnZWJlbmVuIFdlcnQgYmVmaW5kZW4iCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NgogbXNnaWQgImNoZWNrIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1NQorIzogYnVpbHRpbi9wdXNoLmM6NDY3CiBtc2dpZCAiY29udHJvbCByZWN1cnNpdmUgcHVzaGluZyBvZiBzdWJtb2R1bGVzIgogbXNnc3RyICJzdGV1ZXJ0IHJla3Vyc2l2ZW4gXCJwdXNoXCIgdm9uIFN1Ym1vZHVsZW4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1NworIzogYnVpbHRpbi9wdXNoLmM6NDY5CiBtc2dpZCAidXNlIHRoaW4gcGFjayIKIG1zZ3N0ciAidmVyd2VuZGV0IGtsZWluZXJlIFBha2V0ZSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDU4IGJ1aWx0aW4vcHVzaC5jOjQ1OQorIzogYnVpbHRpbi9wdXNoLmM6NDcwIGJ1aWx0aW4vcHVzaC5jOjQ3MQogbXNnaWQgInJlY2VpdmUgcGFjayBwcm9ncmFtIgogbXNnc3RyICIncmVjZWl2ZSBwYWNrJyBQcm9ncmFtbSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDYwCisjOiBidWlsdGluL3B1c2guYzo0NzIKIG1zZ2lkICJzZXQgdXBzdHJlYW0gZm9yIGdpdCBwdWxsL3N0YXR1cyIKIG1zZ3N0ciAic2V0enQgVXBzdHJlYW0gZsO8ciBcImdpdCBwdWxsL3N0YXR1c1wiIgogCi0jOiBidWlsdGluL3B1c2guYzo0NjMKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3NQogbXNnaWQgInBydW5lIGxvY2FsbHkgcmVtb3ZlZCByZWZzIgogbXNnc3RyICJlbnRmZXJudCBsb2thbCBnZWzDtnNjaHRlIFJlZmVyZW56ZW4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ2NQorIzogYnVpbHRpbi9wdXNoLmM6NDc3CiBtc2dpZCAiYnlwYXNzIHByZS1wdXNoIGhvb2siCiBtc2dzdHIgInVtZ2VodCBcInByZS1wdXNoIGhvb2tcIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDY2CisjOiBidWlsdGluL3B1c2guYzo0NzgKIG1zZ2lkICJwdXNoIG1pc3NpbmcgYnV0IHJlbGV2YW50IHRhZ3MiCiBtc2dzdHIgInZlcnNlbmRldCBmZWhsZW5kZSwgYWJlciByZWxldmFudGUgVGFncyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDc2CisjOiBidWlsdGluL3B1c2guYzo0ODgKIG1zZ2lkICItLWRlbGV0ZSBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFsbCwgLS1taXJyb3IgYW5kIC0tdGFncyIKIG1zZ3N0ciAiRGllIE9wdGlvbiAtLWRlbGV0ZSBpc3QgaW5rb21wYXRpYmVsIG1pdCAtLWFsbCwgLS1taXJyb3IgdW5kIC0tdGFncy4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ3OAorIzogYnVpbHRpbi9wdXNoLmM6NDkwCiBtc2dpZCAiLS1kZWxldGUgZG9lc24ndCBtYWtlIHNlbnNlIHdpdGhvdXQgYW55IHJlZnMiCiBtc2dzdHIgIkRpZSBPcHRpb24gLS1kZWxldGUga2FubiBudXIgbWl0IFJlZmVyZW56ZW4gdmVyd2VuZGV0IHdlcmRlbi4iCiAKQEAgLTc5NzEsNyArODE4Miw3IEBACiAiWy11IFstLWV4Y2x1ZGUtcGVyLWRpcmVjdG9yeT08Z2l0aWdub3JlPl0gfCAtaV1dIFstLW5vLXNwYXJzZS1jaGVja291dF0gWy0tIgogImluZGV4LW91dHB1dD08ZmlsZT5dICgtLWVtcHR5IHwgPHRyZWUtaXNoMT4gWzx0cmVlLWlzaDI+IFs8dHJlZS1pc2gzPl1dKSIKIG1zZ3N0ciAiIgotImdpdCByZWFkLXRyZWUgW1stbSBbLS10cml2aWFsXSBbLS1hZ2dyZXNzaXZlXSB8IC0tcmVzZXQgfCAtLXByZWZpeD08UHJlZml4Pl0gIgorImdpdCByZWFkLXRyZWUgW1stbSBbLS10cml2aWFsXSBbLS1hZ2dyZXNzaXZlXSB8IC0tcmVzZXQgfCAtLXByZWZpeD08UHLDpGZpeD5dICIKICJbLXUgWy0tZXhjbHVkZS1wZXItZGlyZWN0b3J5PTxnaXRpZ25vcmU+XSB8IC1pXV0gWy0tbm8tc3BhcnNlLWNoZWNrb3V0XSBbLS0iCiAiaW5kZXgtb3V0cHV0PTxEYXRlaT5dICgtLWVtcHR5IHwgPENvbW1pdC1SZWZlcmVuejE+IFs8Q29tbWl0LVJlZmVyZW56Mj4gIgogIls8Q29tbWl0LVJlZmVyZW56Mz5dXSkiCkBAIC04MDQwLDEyICs4MjUxLDEyIEBACiBtc2dpZCAiZGVidWcgdW5wYWNrLXRyZWVzIgogbXNnc3RyICJwcm90b2tvbGxpZXJ0IEVudHBhY2tlbiBkZXIgQsOkdW1lIgogCi0jOiBidWlsdGluL3JlZmxvZy5jOjUwMAorIzogYnVpbHRpbi9yZWZsb2cuYzo0OTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMnIGZvciAnJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIKIG1zZ3N0ciAiJyVzJyBmw7xyICclcycgaXN0IGtlaW4gZ8O8bHRpZ2VyIFplaXRzdGVtcGVsIgogCi0jOiBidWlsdGluL3JlZmxvZy5jOjYxNiBidWlsdGluL3JlZmxvZy5jOjYyMQorIzogYnVpbHRpbi9yZWZsb2cuYzo2MTUgYnVpbHRpbi9yZWZsb2cuYzo2MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiCiBtc2dzdHIgIiclcycgaXN0IGtlaW4gZ8O8bHRpZ2VyIFplaXRzdGVtcGVsIgpAQCAtODA3MCw5ICs4MjgxLDkgQEAKIG1zZ2lkICJnaXQgcmVtb3RlIHJlbW92ZSA8bmFtZT4iCiBtc2dzdHIgImdpdCByZW1vdGUgcmVtb3ZlIDxOYW1lPiIKIAotIzogYnVpbHRpbi9yZW1vdGUuYzoxNSBidWlsdGluL3JlbW90ZS5jOjQyCi1tc2dpZCAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLWQgfCA8YnJhbmNoPikiCi1tc2dzdHIgImdpdCByZW1vdGUgc2V0LWhlYWQgPE5hbWU+ICgtYSB8IC1kIHwgPEJyYW5jaD4pIgorIzogYnVpbHRpbi9yZW1vdGUuYzoxNQorbXNnaWQgImdpdCByZW1vdGUgc2V0LWhlYWQgPG5hbWU+ICgtYSB8IC0tYXV0byB8IC1kIHwgLS1kZWxldGUgfDxicmFuY2g+KSIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8TmFtZT4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8IDxCcmFuY2g+KSIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNgogbXNnaWQgImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSBzaG93IFstbl0gPG5hbWU+IgpAQCAtODEwOCw2ICs4MzE5LDEwIEBACiBtc2dpZCAiZ2l0IHJlbW90ZSBhZGQgWzxvcHRpb25zPl0gPG5hbWU+IDx1cmw+IgogbXNnc3RyICJnaXQgcmVtb3RlIGFkZCBbPE9wdGlvbmVuPl0gPE5hbWU+IDxVUkw+IgogCisjOiBidWlsdGluL3JlbW90ZS5jOjQyCittc2dpZCAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8IDxicmFuY2g+KSIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8TmFtZT4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8IDxCcmFuY2g+KSIKKwogIzogYnVpbHRpbi9yZW1vdGUuYzo0NwogbXNnaWQgImdpdCByZW1vdGUgc2V0LWJyYW5jaGVzIDxuYW1lPiA8YnJhbmNoPi4uLiIKIG1zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgPE5hbWU+IDxCcmFuY2g+Li4uIgpAQCAtODU1Nyw2ICs4NzcyLDY4IEBACiBtc2dpZCAiYmUgdmVyYm9zZTsgbXVzdCBiZSBwbGFjZWQgYmVmb3JlIGEgc3ViY29tbWFuZCIKIG1zZ3N0ciAiZXJ3ZWl0ZXJ0ZSBBdXNnYWJlbjsgbXVzcyB2b3IgZWluZW0gVW50ZXJrb21tYW5kbyBhbmdlZ2ViZW4gd2VyZGVuIgogCisjOiBidWlsdGluL3JlcGFjay5jOjE1Cittc2dpZCAiZ2l0IHJlcGFjayBbb3B0aW9uc10iCittc2dzdHIgImdpdCByZXBhY2sgW09wdGlvbmVuXSIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNDMKK21zZ2lkICJwYWNrIGV2ZXJ5dGhpbmcgaW4gYSBzaW5nbGUgcGFjayIKK21zZ3N0ciAicGFja3QgYWxsZXMgaW4gZWluZSBlaW56aWdlIFBhY2stRGF0ZWkiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTQ1Cittc2dpZCAic2FtZSBhcyAtYSwgYW5kIHR1cm4gdW5yZWFjaGFibGUgb2JqZWN0cyBsb29zZSIKK21zZ3N0ciAiZ2VuYXUgd2llIC1hLCB1bmVycmVpY2hiYXJlIE9iamVrdGUgd2VyZGVuIGFiZXIgbmljaHQgZ2Vsw7ZzY2h0IgorCisjOiBidWlsdGluL3JlcGFjay5jOjE0OAorbXNnaWQgInJlbW92ZSByZWR1bmRhbnQgcGFja3MsIGFuZCBydW4gZ2l0LXBydW5lLXBhY2tlZCIKK21zZ3N0ciAiZW50ZmVybnQgcmVkdW5kYW50ZSBQYWtldGUgdW5kIGbDvGhydCBcImdpdC1wcnVuZS1wYWNrZWRcIiBhdXMiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTUwCittc2dpZCAicGFzcyAtLW5vLXJldXNlLWRlbHRhIHRvIGdpdC1wYWNrLW9iamVjdHMiCittc2dzdHIgIsO8YmVyZ2lidCAtLW5vLXJldXNlLWRlbHRhIGFuIGdpdC1wYWNrLW9iamVjdHMiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTUyCittc2dpZCAicGFzcyAtLW5vLXJldXNlLW9iamVjdCB0byBnaXQtcGFjay1vYmplY3RzIgorbXNnc3RyICLDvGJlcmdpYnQgLS1uby1yZXVzZS1vYmplY3QgYW4gZ2l0LXBhY2stb2JqZWN0cyIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNTQKK21zZ2lkICJkbyBub3QgcnVuIGdpdC11cGRhdGUtc2VydmVyLWluZm8iCittc2dzdHIgImdpdC11cGRhdGUtc2VydmVyLWluZm8gbmljaHQgYXVzZsO8aHJlbiIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNTcKK21zZ2lkICJwYXNzIC0tbG9jYWwgdG8gZ2l0LXBhY2stb2JqZWN0cyIKK21zZ3N0ciAiw7xiZXJnaWJ0IC0tbG9jYWwgYW4gZ2l0LXBhY2stb2JqZWN0cyIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNTgKK21zZ2lkICJhcHByb3hpZGF0ZSIKK21zZ3N0ciAiRGF0dW1zYW5nYWJlIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE1OQorbXNnaWQgIndpdGggLUEsIGRvIG5vdCBsb29zZW4gb2JqZWN0cyBvbGRlciB0aGFuIHRoaXMiCittc2dzdHIgIm1pdCAtQSwgbMO2c2NodCBrZWluZSBPYmpla3RlIMOkbHRlciBhbHMgZGllc2VzIERhdHVtIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE2MQorbXNnaWQgInNpemUgb2YgdGhlIHdpbmRvdyB1c2VkIGZvciBkZWx0YSBjb21wcmVzc2lvbiIKK21zZ3N0ciAiR3LDtsOfZSBkZXMgRmVuc3RlcnMgZsO8ciBkaWUgRGVsdGEtS29tcHJlc3Npb24iCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTYzCittc2dpZCAic2FtZSBhcyB0aGUgYWJvdmUsIGJ1dCBsaW1pdCBtZW1vcnkgc2l6ZSBpbnN0ZWFkIG9mIGVudHJpZXMgY291bnQiCittc2dzdHIgImdsZWljaGVzIHdpZSBvYmVuLCBsaW1pdGllcnQgYWJlciBkaWUgU3BlaWNoZXJncsO2w59lIGFuc3RhdHQgZGVyXG4iCisiQW56YWhsIGRlciBFaW50csOkZ2UiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTY1Cittc2dpZCAibGltaXRzIHRoZSBtYXhpbXVtIGRlbHRhIGRlcHRoIgorbXNnc3RyICJsaW1pdGllcnQgZGllIG1heGltYWxlIERlbHRhLVRpZWZlIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE2NworbXNnaWQgIm1heGltdW0gc2l6ZSBvZiBlYWNoIHBhY2tmaWxlIgorbXNnc3RyICJtYXhpbWFsZSBHcsO2w59lIGbDvHIgamVkZSBQYWtldGRhdGVpIgorCisjOiBidWlsdGluL3JlcGFjay5jOjM0NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZW1vdmluZyAnJXMnIGZhaWxlZCIKK21zZ3N0ciAiTMO2c2NoZW4gdm9uICclcycgZmVobGdlc2NobGFnZW4iCisKICM6IGJ1aWx0aW4vcmVwbGFjZS5jOjE3CiBtc2dpZCAiZ2l0IHJlcGxhY2UgWy1mXSA8b2JqZWN0PiA8cmVwbGFjZW1lbnQ+IgogbXNnc3RyICJnaXQgcmVwbGFjZSBbLWZdIDxPYmpla3Q+IDxFcnNldHp1bmc+IgpAQCAtODU2OSwyMyArODg0NiwyMyBAQAogbXNnaWQgImdpdCByZXBsYWNlIC1sIFs8cGF0dGVybj5dIgogbXNnc3RyICJnaXQgcmVwbGFjZSAtbCBbPE11c3Rlcj5dIgogCi0jOiBidWlsdGluL3JlcGxhY2UuYzoxMjEKKyM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEzMQogbXNnaWQgImxpc3QgcmVwbGFjZSByZWZzIgogbXNnc3RyICJsaXN0ZXQgZXJzZXR6ZW5kZSBSZWZlcmVuemVuIGF1ZiIKIAotIzogYnVpbHRpbi9yZXBsYWNlLmM6MTIyCisjOiBidWlsdGluL3JlcGxhY2UuYzoxMzIKIG1zZ2lkICJkZWxldGUgcmVwbGFjZSByZWZzIgogbXNnc3RyICJsw7ZzY2h0IGVyc2V0emVuZGUgUmVmZXJlbnplbiIKIAotIzogYnVpbHRpbi9yZXBsYWNlLmM6MTIzCisjOiBidWlsdGluL3JlcGxhY2UuYzoxMzMKIG1zZ2lkICJyZXBsYWNlIHRoZSByZWYgaWYgaXQgZXhpc3RzIgogbXNnc3RyICJlcnNldHp0IGRpZSBSZWZlcmVueiwgd2VubiBzaWUgZXhpc3RpZXJ0IgogCi0jOiBidWlsdGluL3JlcmVyZS5jOjExCisjOiBidWlsdGluL3JlcmVyZS5jOjEyCiBtc2dpZCAiZ2l0IHJlcmVyZSBbY2xlYXIgfCBmb3JnZXQgcGF0aC4uLiB8IHN0YXR1cyB8IHJlbWFpbmluZyB8IGRpZmYgfCBnY10iCiBtc2dzdHIgImdpdCByZXJlcmUgW2NsZWFuIHwgZm9yZ2V0IHBhdGguLi4gfCBzdGF0dXMgfCByZW1haW5pbmcgfCBkaWZmIHwgZ2NdIgogCi0jOiBidWlsdGluL3JlcmVyZS5jOjU2CisjOiBidWlsdGluL3JlcmVyZS5jOjU3CiBtc2dpZCAicmVnaXN0ZXIgY2xlYW4gcmVzb2x1dGlvbnMgaW4gaW5kZXgiCiBtc2dzdHIgInJlZ2lzdHJpZXJ0IHNhdWJlcmUgQXVmbMO2c3VuZ2VuIGluIGRlciBTdGFnaW5nLUFyZWEiCiAKQEAgLTg2NDYsNzEgKzg5MjMsNzEgQEAKIG1zZ2lkICJDYW5ub3QgZG8gYSAlcyByZXNldCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UuIgogbXNnc3RyICJLYW5uIGtlaW5lbiAnJXMnLVJlc2V0IGR1cmNoZsO8aHJlbiwgd8OkaHJlbmQgZWluIE1lcmdlIGltIEdhbmdlIGlzdC4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTEKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjIKIG1zZ2lkICJiZSBxdWlldCwgb25seSByZXBvcnQgZXJyb3JzIgogbXNnc3RyICJ3ZW5pZ2VyIEF1c2dhYmVuLCBtZWxkZXQgbnVyIEZlaGxlciIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MworIzogYnVpbHRpbi9yZXNldC5jOjI2NAogbXNnaWQgInJlc2V0IEhFQUQgYW5kIGluZGV4IgogbXNnc3RyICJzZXR6dCBIRUFEIHVuZCBTdGFnaW5nLUFyZWEgdW0iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTQKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjUKIG1zZ2lkICJyZXNldCBvbmx5IEhFQUQiCiBtc2dzdHIgInNldHp0IG51ciBIRUFEIHVtIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjU2IGJ1aWx0aW4vcmVzZXQuYzoyNTgKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjcgYnVpbHRpbi9yZXNldC5jOjI2OQogbXNnaWQgInJlc2V0IEhFQUQsIGluZGV4IGFuZCB3b3JraW5nIHRyZWUiCiBtc2dzdHIgInNldHp0IEhFQUQsIFN0YWdpbmctQXJlYSB1bmQgQXJiZWl0c3ZlcnplaWNobmlzIHVtIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjYwCisjOiBidWlsdGluL3Jlc2V0LmM6MjcxCiBtc2dpZCAicmVzZXQgSEVBRCBidXQga2VlcCBsb2NhbCBjaGFuZ2VzIgogbXNnc3RyICJzZXR6dCBIRUFEIHVtLCBiZWjDpGx0IGFiZXIgbG9rYWxlIMOEbmRlcnVuZ2VuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6Mjc4CisjOiBidWlsdGluL3Jlc2V0LmM6Mjg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZXZpc2lvbi4iCiBtc2dzdHIgIktvbm50ZSAnJXMnIG5pY2h0IGFscyBnw7xsdGlnZW4gQ29tbWl0IGF1ZmzDtnNlbi4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyODEgYnVpbHRpbi9yZXNldC5jOjI4OQorIzogYnVpbHRpbi9yZXNldC5jOjI5MiBidWlsdGluL3Jlc2V0LmM6MzAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBvYmplY3QgJyVzJy4iCiBtc2dzdHIgIktvbm50ZSBPYmpla3QgJyVzJyBuaWNodCBwYXJzZW4uIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6Mjg2CisjOiBidWlsdGluL3Jlc2V0LmM6Mjk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCB0cmVlLiIKIG1zZ3N0ciAiS29ubnRlICclcycgbmljaHQgYWxzIGfDvGx0aWdlcyBcIlRyZWVcIi1PYmpla3QgYXVmbMO2c2VuLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI5NQorIzogYnVpbHRpbi9yZXNldC5jOjMwNgogbXNnaWQgIi0tcGF0Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggLS17aGFyZCxtaXhlZCxzb2Z0fSIKIG1zZ3N0ciAiLS1wYXRjaCBpc3QgaW5rb21wYXRpYmVsIG1pdCAtLXtoYXJkLG1peGVkLHNvZnR9IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzA0CisjOiBidWlsdGluL3Jlc2V0LmM6MzE1CiBtc2dpZCAiLS1taXhlZCB3aXRoIHBhdGhzIGlzIGRlcHJlY2F0ZWQ7IHVzZSAnZ2l0IHJlc2V0IC0tIDxwYXRocz4nIGluc3RlYWQuIgogbXNnc3RyICIiCiAiLS1taXhlZCBtaXQgUGZhZGVuIGlzdCB2ZXJhbHRldDsgYmVudXR6ZW4gU2llIHN0YXR0ZGVzc2VuICdnaXQgcmVzZXQgLS0gIgogIjxQZmFkZT4nLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMwNgorIzogYnVpbHRpbi9yZXNldC5jOjMxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZG8gJXMgcmVzZXQgd2l0aCBwYXRocy4iCiBtc2dzdHIgIkVpbiAnJXMnLVJlc2V0IG1pdCBQZmFkZW4gaXN0IG5pY2h0IG3DtmdsaWNoLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMxNgorIzogYnVpbHRpbi9yZXNldC5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyByZXNldCBpcyBub3QgYWxsb3dlZCBpbiBhIGJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiJyVzJy1SZXNldCBpc3QgaW4gZWluZW0gQmFyZS1SZXBvc2l0b3J5IG5pY2h0IGVybGF1YnQiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMzYKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDQKK21zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlc2V0OiIKK21zZ3N0ciAiTmljaHQgenVtIENvbW1pdCB2b3JnZW1lcmt0ZSDDhG5kZXJ1bmdlbiBuYWNoIFp1csO8Y2tzZXR6dW5nOiIKKworIzogYnVpbHRpbi9yZXNldC5jOjM1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVzZXQgaW5kZXggZmlsZSB0byByZXZpc2lvbiAnJXMnLiIKIG1zZ3N0ciAiS29ubnRlIFN0YWdpbmctQXJlYS1EYXRlaSBuaWNodCB6dSBDb21taXQgJyVzJyBzZXR6ZW4uIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzQyCi1tc2dpZCAiVW5zdGFnZWQgY2hhbmdlcyBhZnRlciByZXNldDoiCi1tc2dzdHIgIk5pY2h0IHp1bSBDb21taXQgdm9yZ2VtZXJrdGUgw4RuZGVydW5nZW4gbmFjaCBadXLDvGNrc2V0enVuZzoiCi0KLSM6IGJ1aWx0aW4vcmVzZXQuYzozNDcKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNTUKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgbmV3IGluZGV4IGZpbGUuIgogbXNnc3RyICJLb25udGUgbmV1ZSBTdGFnaW5nLUFyZWEtRGF0ZWkgbmljaHQgc2NocmVpYmVuLiIKIApAQCAtODc1Nyw4NCArOTAzNCw4NCBAQAogbXNnaWQgImdpdCBjaGVycnktcGljayA8c3ViY29tbWFuZD4iCiBtc2dzdHIgImdpdCBjaGVycnktcGljayA8VW50ZXJrb21tYW5kbz4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6NzEgYnVpbHRpbi9yZXZlcnQuYzo5NAorIzogYnVpbHRpbi9yZXZlcnQuYzo3MQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogJXMgY2Fubm90IGJlIHVzZWQgd2l0aCAlcyIKIG1zZ3N0ciAiJXM6ICVzIGthbm4gbmljaHQgbWl0ICVzIHZlcndlbmRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA1CisjOiBidWlsdGluL3JldmVydC5jOjgwCiBtc2dpZCAiZW5kIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAiYmVlbmRldCBcInJldmVydFwiIG9kZXIgXCJjaGVycnktcGlja1wiIEFibGF1ZiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODEKIG1zZ2lkICJyZXN1bWUgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICJzZXR6dCBcInJldmVydFwiIG9kZXIgXCJjaGVycnktcGlja1wiIEFibGF1ZiBmb3J0IgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNworIzogYnVpbHRpbi9yZXZlcnQuYzo4MgogbXNnaWQgImNhbmNlbCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgImJyaWNodCBcInJldmVydFwiIG9kZXIgXCJjaGVycnktcGlja1wiIEFibGF1ZiBhYiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODMKIG1zZ2lkICJkb24ndCBhdXRvbWF0aWNhbGx5IGNvbW1pdCIKIG1zZ3N0ciAiY29tbWl0dGV0IG5pY2h0IGF1dG9tYXRpc2NoIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwOQorIzogYnVpbHRpbi9yZXZlcnQuYzo4NAogbXNnaWQgImVkaXQgdGhlIGNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICJCZWFyYmVpdHVuZyBkZXIgQ29tbWl0LUJlc2NocmVpYnVuZyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTIKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODcKIG1zZ2lkICJwYXJlbnQgbnVtYmVyIgogbXNnc3RyICJOdW1tZXIgZGVzIEVsdGVybnRlaWxzIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExNAorIzogYnVpbHRpbi9yZXZlcnQuYzo4OQogbXNnaWQgIm1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICJNZXJnZS1TdHJhdGVnaWUiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE1CisjOiBidWlsdGluL3JldmVydC5jOjkwCiBtc2dpZCAib3B0aW9uIgogbXNnc3RyICJPcHRpb24iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE2CisjOiBidWlsdGluL3JldmVydC5jOjkxCiBtc2dpZCAib3B0aW9uIGZvciBtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAiT3B0aW9uIGbDvHIgTWVyZ2UtU3RyYXRlZ2llIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNworIzogYnVpbHRpbi9yZXZlcnQuYzoxMDIKIG1zZ2lkICJhcHBlbmQgY29tbWl0IG5hbWUiCiBtc2dzdHIgImjDpG5ndCBDb21taXQtTmFtZW4gYW4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4CisjOiBidWlsdGluL3JldmVydC5jOjEwMwogbXNnaWQgImFsbG93IGZhc3QtZm9yd2FyZCIKIG1zZ3N0ciAiZXJsYXVidCBWb3JzcHVsZW4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI5CisjOiBidWlsdGluL3JldmVydC5jOjEwNAogbXNnaWQgInByZXNlcnZlIGluaXRpYWxseSBlbXB0eSBjb21taXRzIgogbXNnc3RyICJlcmjDpGx0IHVyc3Byw7xuZ2xpY2hlLCBsZWVyZSBDb21taXRzIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzMAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKIG1zZ2lkICJhbGxvdyBjb21taXRzIHdpdGggZW1wdHkgbWVzc2FnZXMiCiBtc2dzdHIgImVybGF1YnQgQ29tbWl0cyBtaXQgbGVlcmVyIEJlc2NocmVpYnVuZyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMzEKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA2CiBtc2dpZCAia2VlcCByZWR1bmRhbnQsIGVtcHR5IGNvbW1pdHMiCiBtc2dzdHIgImJlaMOkbHQgcmVkdW5kYW50ZSwgbGVlcmUgQ29tbWl0cyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMzUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEwCiBtc2dpZCAicHJvZ3JhbSBlcnJvciIKIG1zZ3N0ciAiUHJvZ3JhbW1mZWhsZXIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjI1CisjOiBidWlsdGluL3JldmVydC5jOjE5NQogbXNnaWQgInJldmVydCBmYWlsZWQiCiBtc2dzdHIgIlwicmV2ZXJ0XCIgZmVobGdlc2NobGFnZW4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjQwCisjOiBidWlsdGluL3JldmVydC5jOjIxMAogbXNnaWQgImNoZXJyeS1waWNrIGZhaWxlZCIKIG1zZ3N0ciAiXCJjaGVycnktcGlja1wiIGZlaGxnZXNjaGxhZ2VuIgogCi0jOiBidWlsdGluL3JtLmM6MTYKKyM6IGJ1aWx0aW4vcm0uYzoxNwogbXNnaWQgImdpdCBybSBbb3B0aW9uc10gWy0tXSA8ZmlsZT4uLi4iCiBtc2dzdHIgImdpdCBybSBbT3B0aW9uZW5dIFstLV0gWzxEYXRlaT4uLi5dIgogCi0jOiBidWlsdGluL3JtLmM6NjQKKyM6IGJ1aWx0aW4vcm0uYzo2NQogbXNnaWQgIiIKICJ0aGUgZm9sbG93aW5nIHN1Ym1vZHVsZSAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcylcbiIKICJ1c2VzIGEgLmdpdCBkaXJlY3Rvcnk6IgpAQCAtODg0OCw3ICs5MTI1LDcgQEAKICJkaWUgZm9sZ2VuZGVuIFN1Ym1vZHVsZSAob2RlciBlaW4gZ2VzY2hhY2h0ZWx0ZXMgU3VibW9kdWwgaGllcnZvbilcbiIKICJiZW51dHplbiBlaW4gLmdpdC1WZXJ6ZWljaG5pczoiCiAKLSM6IGJ1aWx0aW4vcm0uYzo3MAorIzogYnVpbHRpbi9ybS5jOjcxCiBtc2dpZCAiIgogIlxuIgogIih1c2UgJ3JtIC1yZicgaWYgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSBpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIKQEAgLTg4NTcsNyArOTEzNCw3IEBACiAiKGJlbnV0emVuIFNpZSAncm0gLXJmJyB3ZW5uIFNpZSBkaWVzZXMgU3VibW9kdWwgd2lya2xpY2ggbWl0c2FtdFxuIgogInNlaW5lciBIaXN0b3JpZSBsw7ZzY2hlbiBtw7ZjaHRlbikiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMzAKKyM6IGJ1aWx0aW4vcm0uYzoyMzEKIG1zZ2lkICIiCiAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgogImZpbGUgYW5kIHRoZSBIRUFEOiIKQEAgLTg4NzIsNyArOTE0OSw3IEBACiAidW50ZXJzY2hpZWRsaWNoXG4iCiAienUgZGVyIERhdGVpIHVuZCBIRUFEOiIKIAotIzogYnVpbHRpbi9ybS5jOjIzNQorIzogYnVpbHRpbi9ybS5jOjIzNgogbXNnaWQgIiIKICJcbiIKICIodXNlIC1mIHRvIGZvcmNlIHJlbW92YWwpIgpAQCAtODg4MCwxMyArOTE1NywxMyBAQAogIlxuIgogIihiZW51dHplbiBTaWUgLWYgdW0gZGllIEzDtnNjaHVuZyB6dSBlcnp3aW5nZW4pIgogCi0jOiBidWlsdGluL3JtLmM6MjM5CisjOiBidWlsdGluL3JtLmM6MjQwCiBtc2dpZCAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXg6IgogbXNnaWRfcGx1cmFsICJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKIG1zZ3N0clswXSAiZGllIGZvbGdlbmRlIERhdGVpIGhhdCB6dW0gQ29tbWl0IHZvcmdlbWVya3RlIMOEbmRlcnVuZ2VuOiIKIG1zZ3N0clsxXSAiZGllIGZvbGdlbmRlbiBEYXRlaWVuIGhhYmVuIHp1bSBDb21taXQgdm9yZ2VtZXJrdGUgw4RuZGVydW5nZW46IgogCi0jOiBidWlsdGluL3JtLmM6MjQzIGJ1aWx0aW4vcm0uYzoyNTQKKyM6IGJ1aWx0aW4vcm0uYzoyNDQgYnVpbHRpbi9ybS5jOjI1NQogbXNnaWQgIiIKICJcbiIKICIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgpAQCAtODg5NSwzOCArOTE3MiwzOCBAQAogIihiZW51dHplbiBTaWUgLS1jYWNoZWQgdW0gZGllIERhdGVpIHp1IGJlaGFsdGVuLCBvZGVyIC1mIHVtIGRpZSBFbnRmZXJudW5nICIKICJ6dSBlcnp3aW5nZW4pIgogCi0jOiBidWlsdGluL3JtLmM6MjUxCisjOiBidWlsdGluL3JtLmM6MjUyCiBtc2dpZCAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zOiIKIG1zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGxvY2FsIG1vZGlmaWNhdGlvbnM6IgogbXNnc3RyWzBdICJkaWUgZm9sZ2VuZGUgRGF0ZWkgaGF0IGxva2FsZSDDhG5kZXJ1bmdlbjoiCiBtc2dzdHJbMV0gImRpZSBmb2xnZW5kZW4gRGF0ZWllbiBoYWJlbiBsb2thbGUgw4RuZGVydW5nZW46IgogCi0jOiBidWlsdGluL3JtLmM6MjY5CisjOiBidWlsdGluL3JtLmM6MjcwCiBtc2dpZCAiZG8gbm90IGxpc3QgcmVtb3ZlZCBmaWxlcyIKIG1zZ3N0ciAibGlzdGV0IGtlaW5lIGdlbMO2c2NodGVuIERhdGVpZW4gYXVmIgogCi0jOiBidWlsdGluL3JtLmM6MjcwCisjOiBidWlsdGluL3JtLmM6MjcxCiBtc2dpZCAib25seSByZW1vdmUgZnJvbSB0aGUgaW5kZXgiCiBtc2dzdHIgImVudGZlcm50IG51ciBhdXMgZGVyIFN0YWdpbmctQXJlYSIKIAotIzogYnVpbHRpbi9ybS5jOjI3MQorIzogYnVpbHRpbi9ybS5jOjI3MgogbXNnaWQgIm92ZXJyaWRlIHRoZSB1cC10by1kYXRlIGNoZWNrIgogbXNnc3RyICLDvGJlcnNjaHJlaWJ0IGRpZSBcInVwLXRvLWRhdGVcIiBQcsO8ZnVuZyIKIAotIzogYnVpbHRpbi9ybS5jOjI3MgorIzogYnVpbHRpbi9ybS5jOjI3MwogbXNnaWQgImFsbG93IHJlY3Vyc2l2ZSByZW1vdmFsIgogbXNnc3RyICJlcmxhdWJ0IHJla3Vyc2l2ZSBFbnRmZXJudW5nIgogCi0jOiBidWlsdGluL3JtLmM6Mjc0CisjOiBidWlsdGluL3JtLmM6Mjc1CiBtc2dpZCAiZXhpdCB3aXRoIGEgemVybyBzdGF0dXMgZXZlbiBpZiBub3RoaW5nIG1hdGNoZWQiCiBtc2dzdHIgImJlZW5kZXQgbWl0IFLDvGNrZ2FiZXdlcnQgMCwgd2VubiBrZWluZSDDnGJlcmVpbnN0aW1tdW5nIGdlZnVuZGVuIHd1cmRlIgogCi0jOiBidWlsdGluL3JtLmM6MzQ1CisjOiBidWlsdGluL3JtLmM6MzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCByZW1vdmluZyAnJXMnIHJlY3Vyc2l2ZWx5IHdpdGhvdXQgLXIiCiBtc2dzdHIgIiclcycgd2lyZCBuaWNodCBvaG5lIC1yIHJla3Vyc2l2IGVudGZlcm50IgogCi0jOiBidWlsdGluL3JtLmM6Mzg0CisjOiBidWlsdGluL3JtLmM6Mzc1CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCBybTogdW5hYmxlIHRvIHJlbW92ZSAlcyIKIG1zZ3N0ciAiZ2l0IHJtOiBrb25udGUgJXMgbmljaHQgbMO2c2NoZW4iCkBAIC04OTQwLDIzICs5MjE3LDIzIEBACiBtc2dpZCAiTWlzc2luZyBhdXRob3I6ICVzIgogbXNnc3RyICJmZWhsZW5kZXIgQXV0b3I6ICVzIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjI4CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjMwCiBtc2dpZCAic29ydCBvdXRwdXQgYWNjb3JkaW5nIHRvIHRoZSBudW1iZXIgb2YgY29tbWl0cyBwZXIgYXV0aG9yIgogbXNnc3RyICJzb3J0aWVydCBkaWUgQXVzZ2FiZSBlbnRzcHJlY2hlbmQgZGVyIEFuemFobCB2b24gQ29tbWl0cyBwcm8gQXV0b3IiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzAKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzIKIG1zZ2lkICJTdXBwcmVzcyBjb21taXQgZGVzY3JpcHRpb25zLCBvbmx5IHByb3ZpZGVzIGNvbW1pdCBjb3VudCIKIG1zZ3N0ciAiVW50ZXJkcsO8Y2t0IENvbW1pdC1CZXNjaHJlaWJ1bmdlbiwgbGllZmVydCBudXIgQW56YWhsIGRlciBDb21taXRzIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjMyCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjM0CiBtc2dpZCAiU2hvdyB0aGUgZW1haWwgYWRkcmVzcyBvZiBlYWNoIGF1dGhvciIKIG1zZ3N0ciAiWmVpZ3QgZGllIEVtYWlsLUFkcmVzc2Ugdm9uIGplZGVtIEF1dG9yIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjMzCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjM1CiBtc2dpZCAid1ssaTFbLGkyXV0iCiBtc2dzdHIgIndbLGkxWyxpMl1dIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjM0CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjM2CiBtc2dpZCAiTGluZXdyYXAgb3V0cHV0IgogbXNnc3RyICJBdXNnYWJlIG1pdCBaZWlsZW51bWJyw7xjaGVuIgogCkBAIC05MDY0LDI0ICs5MzQxLDI0IEBACiBtc2dpZCAic3RyaWN0ZXIgcmVmZXJlbmNlIGNoZWNraW5nLCByZXF1aXJlcyBleGFjdCByZWYgcGF0aCIKIG1zZ3N0ciAic3RyZW5nZXJlIFJlZmVyZW56cHLDvGZ1bmcsIGVyZm9yZGVydCBleGFrdGVuIFJlZmVyZW56cGZhZCIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MyBidWlsdGluL3Nob3ctcmVmLmM6MTc2CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTczIGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzUKIG1zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSwgZXZlbiBpZiBpdCB3b3VsZCBiZSBmaWx0ZXJlZCBvdXQiCiBtc2dzdHIgInplaWd0IGRpZSBIRUFELVJlZmVyZW56LCBzZWxic3Qgd2VubiBkaWVzZSBhdXNnZWZpbHRlcnQgd2VyZGVuIHfDvHJkZSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3OAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NwogbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW50byBvYmplY3QgSURzIgogbXNnc3RyICJkZXJlZmVyZW56aWVydCBUYWdzIGluIE9iamVrdC1JZGVudGlmaWthdGlvbmVuIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTgwCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTc5CiBtc2dpZCAib25seSBzaG93IFNIQTEgaGFzaCB1c2luZyA8bj4gZGlnaXRzIgogbXNnc3RyICJ6ZWlndCBudXIgU0hBMSBIYXNoIG1pdCA8bj4gWmlmZmVybiIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4NAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MwogbXNnaWQgImRvIG5vdCBwcmludCByZXN1bHRzIHRvIHN0ZG91dCAodXNlZnVsIHdpdGggLS12ZXJpZnkpIgogbXNnc3RyICIiCiAia2VpbmUgQXVzZ2FiZSBkZXIgRXJnZWJuaXNzZSBpbiBkaWUgU3RhbmRhcmQtQXVzZ2FiZSAobsO8dHpsaWNoIG1pdCAtLXZlcmlmeSkiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODUKIG1zZ2lkICJzaG93IHJlZnMgZnJvbSBzdGRpbiB0aGF0IGFyZW4ndCBpbiBsb2NhbCByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAiemVpZ3QgUmVmZXJlbnplbiB2b24gZGVyIFN0YW5kYXJkLUVpbmdhYmUsIGRpZSBzaWNoIG5pY2h0IGltIGxva2FsZW4gIgpAQCAtOTEwOCwxMSArOTM4NSwxMSBAQAogbXNnaWQgInNob3J0ZW4gcmVmIG91dHB1dCIKIG1zZ3N0ciAidmVya8O8cnp0ZSBBdXNnYWJlIGRlciBSZWZlcmVuemVuIgogCi0jOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjE4CisjOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1NAogbXNnaWQgInJlYXNvbiIKIG1zZ3N0ciAiR3J1bmQiCiAKLSM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NDMgYnVpbHRpbi91cGRhdGUtcmVmLmM6MTgKKyM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NDMgYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU0CiBtc2dpZCAicmVhc29uIG9mIHRoZSB1cGRhdGUiCiBtc2dzdHIgIkdydW5kIGbDvHIgZGllIEFrdHVhbGlzaWVydW5nIgogCkBAIC05Mjc4LDE5MSArOTU1NSwyMDMgQEAKIG1zZ2lkICJwcmludCBvbmx5IHRhZ3Mgb2YgdGhlIG9iamVjdCIKIG1zZ3N0ciAiZ2lidCBudXIgVGFncyB2b24gZGVtIE9iamVrdCBhdXMiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTA0CisjOiBidWlsdGluL3RhZy5jOjUwMQogbXNnaWQgIi0tY29sdW1uIGFuZCAtbiBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICItLWNvbHVtbiB1bmQgLW4gc2luZCBpbmtvbXBhdGliZWwiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTIxCisjOiBidWlsdGluL3RhZy5jOjUxOAogbXNnaWQgIi1uIG9wdGlvbiBpcyBvbmx5IGFsbG93ZWQgd2l0aCAtbC4iCiBtc2dzdHIgIi1uIE9wdGlvbiBpc3QgbnVyIGVybGF1YnQgbWl0IC1sLiIKIAotIzogYnVpbHRpbi90YWcuYzo1MjMKKyM6IGJ1aWx0aW4vdGFnLmM6NTIwCiBtc2dpZCAiLS1jb250YWlucyBvcHRpb24gaXMgb25seSBhbGxvd2VkIHdpdGggLWwuIgogbXNnc3RyICItLWNvbnRhaW5zIE9wdGlvbiBpc3QgbnVyIGVybGF1YnQgbWl0IC1sLiIKIAotIzogYnVpbHRpbi90YWcuYzo1MjUKKyM6IGJ1aWx0aW4vdGFnLmM6NTIyCiBtc2dpZCAiLS1wb2ludHMtYXQgb3B0aW9uIGlzIG9ubHkgYWxsb3dlZCB3aXRoIC1sLiIKIG1zZ3N0ciAiLS1wb2ludHMtYXQgT3B0aW9uIGlzdCBudXIgZXJsYXVidCBtaXQgLWwuIgogCi0jOiBidWlsdGluL3RhZy5jOjUzMworIzogYnVpbHRpbi90YWcuYzo1MzAKIG1zZ2lkICJvbmx5IG9uZSAtRiBvciAtbSBvcHRpb24gaXMgYWxsb3dlZC4iCiBtc2dzdHIgIm51ciBlaW5lIC1GIG9kZXIgLW0gT3B0aW9uIGlzdCBlcmxhdWJ0LiIKIAotIzogYnVpbHRpbi90YWcuYzo1NTMKKyM6IGJ1aWx0aW4vdGFnLmM6NTUwCiBtc2dpZCAidG9vIG1hbnkgcGFyYW1zIgogbXNnc3RyICJ6dSB2aWVsZSBQYXJhbWV0ZXIiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTU5CisjOiBidWlsdGluL3RhZy5jOjU1NgogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGlzIG5vdCBhIHZhbGlkIHRhZyBuYW1lLiIKIG1zZ3N0ciAiJyVzJyBpc3Qga2VpbiBnw7xsdGlnZXIgVGFnbmFtZS4iCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTY0CisjOiBidWlsdGluL3RhZy5jOjU2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWcgJyVzJyBhbHJlYWR5IGV4aXN0cyIKIG1zZ3N0ciAiVGFnICclcycgZXhpc3RpZXJ0IGJlcmVpdHMiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTgyCisjOiBidWlsdGluL3RhZy5jOjU3OQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2Fubm90IGxvY2sgdGhlIHJlZiIKIG1zZ3N0ciAiJXM6IGthbm4gUmVmZXJlbnogbmljaHQgc3BlcnJlbiIKIAotIzogYnVpbHRpbi90YWcuYzo1ODQKKyM6IGJ1aWx0aW4vdGFnLmM6NTgxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBjYW5ub3QgdXBkYXRlIHRoZSByZWYiCiBtc2dzdHIgIiVzOiBrYW5uIFJlZmVyZW56IG5pY2h0IGFrdHVhbGlzaWVyZW4iCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTg2CisjOiBidWlsdGluL3RhZy5jOjU4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJVcGRhdGVkIHRhZyAnJXMnICh3YXMgJXMpXG4iCiBtc2dzdHIgIlRhZyAnJXMnIGFrdHVhbGlzaWVydCAod2FyICVzKVxuIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjQwMQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo0MDIKIG1zZ2lkICJnaXQgdXBkYXRlLWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmlsZT4uLi5dIgogbXNnc3RyICJnaXQgdXBkYXRlLWluZGV4IFtPcHRpb25lbl0gWy0tXSBbPERhdGVpPi4uLl0iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzE4CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyMAogbXNnaWQgImNvbnRpbnVlIHJlZnJlc2ggZXZlbiB3aGVuIGluZGV4IG5lZWRzIHVwZGF0ZSIKIG1zZ3N0ciAiIgogIkFrdHVhbGlzaWVydW5nIGZvcnRzZXR6ZW4sIGF1Y2ggd2VubiBkaWUgU3RhZ2luZy1BcmVhIGFrdHVhbGlzaWVydCB3ZXJkZW4gIgogIm11c3MiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzIxCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyMwogbXNnaWQgInJlZnJlc2g6IGlnbm9yZSBzdWJtb2R1bGVzIgogbXNnc3RyICJBa3R1YWxpc2llcnVuZzogaWdub3JpZXJ0IFN1Ym1vZHVsZSIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjQKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI2CiBtc2dpZCAiZG8gbm90IGlnbm9yZSBuZXcgZmlsZXMiCiBtc2dzdHIgImlnbm9yaWVydCBrZWluZSBuZXVlbiBEYXRlaWVuIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyNgorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjgKIG1zZ2lkICJsZXQgZmlsZXMgcmVwbGFjZSBkaXJlY3RvcmllcyBhbmQgdmljZS12ZXJzYSIKIG1zZ3N0ciAibMOkc3N0IERhdGVpZW4gVmVyemVpY2huaXNzZSBlcnNldHplbiwgdW5kIHVtZ2VkcmVodCIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjgKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzMwCiBtc2dpZCAibm90aWNlIGZpbGVzIG1pc3NpbmcgZnJvbSB3b3JrdHJlZSIKIG1zZ3N0ciAiYmVhY2h0ZXQgZmVobGVuZGUgRGF0ZWllbiBpbSBBcmJlaXRzdmVyemVpY2huaXMiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzMwCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczMgogbXNnaWQgInJlZnJlc2ggZXZlbiBpZiBpbmRleCBjb250YWlucyB1bm1lcmdlZCBlbnRyaWVzIgogbXNnc3RyICIiCiAiYWt0dWFsaXNpZXJ0LCBhdWNoIHdlbm4gZGllIFN0YWdpbmctQXJlYSBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0ZSBFaW50csOkZ2UgIgogImJlaW5oYWx0ZXQiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzMzCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczNQogbXNnaWQgInJlZnJlc2ggc3RhdCBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiYWt0dWFsaXNpZXJ0IERhdGVpaW5mb3JtYXRpb25lbiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzcKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzM5CiBtc2dpZCAibGlrZSAtLXJlZnJlc2gsIGJ1dCBpZ25vcmUgYXNzdW1lLXVuY2hhbmdlZCBzZXR0aW5nIgogbXNnc3RyICJ3aWUgLS1yZWZyZXNoLCBpZ25vcmllcnQgYWJlciBcImFzc3VtZS11bmNoYW5nZWRcIiBFaW5zdGVsbHVuZyIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDEKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQzCiBtc2dpZCAiPG1vZGU+IDxvYmplY3Q+IDxwYXRoPiIKIG1zZ3N0ciAiPE1vZHVzPiA8T2JqZWt0PiA8UGZhZD4iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQyCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0NAogbXNnaWQgImFkZCB0aGUgc3BlY2lmaWVkIGVudHJ5IHRvIHRoZSBpbmRleCIKIG1zZ3N0ciAibWVya3QgZGVuIGFuZ2VnZWJlbmVuIEVpbnRyYWcgenVtIENvbW1pdCB2b3IiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQ2CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0OAogbXNnaWQgIigrLy0peCIKIG1zZ3N0ciAiKCsvLSl4IgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0NworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDkKIG1zZ2lkICJvdmVycmlkZSB0aGUgZXhlY3V0YWJsZSBiaXQgb2YgdGhlIGxpc3RlZCBmaWxlcyIKIG1zZ3N0ciAiw7xiZXJzY2hyZWlidCBkYXMgXCJhdXNmw7xocmJhclwiLUJpdCBkZXIgYXVmZ2VsaXN0ZXRlbiBEYXRlaWVuIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1MQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTMKIG1zZ2lkICJtYXJrIGZpbGVzIGFzIFwibm90IGNoYW5naW5nXCIiCiBtc2dzdHIgImJldHJhY2h0ZSBkaWVzZSBEYXRlaSBpbW1lciBhbHMgdW52ZXLDpG5kZXJ0IgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1NAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTYKIG1zZ2lkICJjbGVhciBhc3N1bWVkLXVuY2hhbmdlZCBiaXQiCiBtc2dzdHIgImzDtnNjaHQgXCJhc3N1bWVkLXVuY2hhbmdlZFwiLUJpdCIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTcKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzU5CiBtc2dpZCAibWFyayBmaWxlcyBhcyBcImluZGV4LW9ubHlcIiIKIG1zZ3N0ciAibWFya2llcnQgRGF0ZWllbiBhbHMgXCJpbmRleC1vbmx5XCIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzYwCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2MgogbXNnaWQgImNsZWFyIHNraXAtd29ya3RyZWUgYml0IgogbXNnc3RyICJsw7ZzY2h0IFwic2tpcC13b3JrdHJlZVwiLUJpdCIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjMKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY1CiBtc2dpZCAiYWRkIHRvIGluZGV4IG9ubHk7IGRvIG5vdCBhZGQgY29udGVudCB0byBvYmplY3QgZGF0YWJhc2UiCiBtc2dzdHIgIiIKICJtZXJrdCBkaWUgw4RuZGVydW5nZW4gbnVyIHp1bSBDb21taXQgdm9yOyBJbmhhbHQgd2lyZCBuaWNodCBkZXIgT2JqZWt0LSIKICJEYXRlbmJhbmsgaGluenVnZWbDvGd0IgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2NQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjcKIG1zZ2lkICJyZW1vdmUgbmFtZWQgcGF0aHMgZXZlbiBpZiBwcmVzZW50IGluIHdvcmt0cmVlIgogbXNnc3RyICIiCiAibMO2c2NodCBiZW5hbm50ZSBQZmFkZSwgYXVjaCB3ZW5uIHNpZSBzaWNoIGltIEFyYmVpdHN2ZXJ6ZWljaG5pcyBiZWZpbmRlbiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjcKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY5CiBtc2dpZCAid2l0aCAtLXN0ZGluOiBpbnB1dCBsaW5lcyBhcmUgdGVybWluYXRlZCBieSBudWxsIGJ5dGVzIgogbXNnc3RyICJtaXQgLS1zdGRpbjogZWluZ2VnZWJlbmUgWmVpbGVuIHNpbmQgZHVyY2ggTlVMLUJ5dGVzIGFiZ2VzY2hsb3NzZW4iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY5CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc3MQogbXNnaWQgInJlYWQgbGlzdCBvZiBwYXRocyB0byBiZSB1cGRhdGVkIGZyb20gc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgImxpZXN0IExpc3RlIGRlciB6dSBha3R1YWxpc2llcmVuZGVuIFBmYWRlIHZvbiBkZXIgU3RhbmRhcmQtRWluZ2FiZSIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzMKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzc1CiBtc2dpZCAiYWRkIGVudHJpZXMgZnJvbSBzdGFuZGFyZCBpbnB1dCB0byB0aGUgaW5kZXgiCiBtc2dzdHIgIm1lcmt0IEVpbnRyw6RnZSB2b24gZGVyIFN0YW5kYXJkLUVpbmdhYmUgenVtIENvbW1pdCB2b3IiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzc3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc3OQogbXNnaWQgInJlcG9wdWxhdGUgc3RhZ2VzICMyIGFuZCAjMyBmb3IgdGhlIGxpc3RlZCBwYXRocyIKIG1zZ3N0ciAiIgogIndpZWRlcmhvbHRlcyBFaW5wZmxlZ2VuIGRlciBadXN0w6RuZGUgIzIgdW5kICMzIGbDvHIgZGllIGF1ZmdlbGlzdGV0ZW4gUGZhZGUiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzgxCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4MwogbXNnaWQgIm9ubHkgdXBkYXRlIGVudHJpZXMgdGhhdCBkaWZmZXIgZnJvbSBIRUFEIgogbXNnc3RyICJha3R1YWxpc2llcnQgbnVyIEVpbnRyw6RnZSwgZGllIHVudGVyc2NoaWVkbGljaCB6dSBIRUFEIHNpbmQiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzg1CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4NwogbXNnaWQgImlnbm9yZSBmaWxlcyBtaXNzaW5nIGZyb20gd29ya3RyZWUiCiBtc2dzdHIgImlnbm9yaWVydCBmZWhsZW5kZSBEYXRlaWVuIGltIEFyYmVpdHN2ZXJ6ZWljaG5pcyIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODgKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzkwCiBtc2dpZCAicmVwb3J0IGFjdGlvbnMgdG8gc3RhbmRhcmQgb3V0cHV0IgogbXNnc3RyICJnaWJ0IGRpZSBBa3Rpb25lbiBpbiBkZXIgU3RhbmRhcmQtQXVzZ2FiZSBhdXMiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzkwCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5MgogbXNnaWQgIihmb3IgcG9yY2VsYWlucykgZm9yZ2V0IHNhdmVkIHVucmVzb2x2ZWQgY29uZmxpY3RzIgogbXNnc3RyICIoZsO8ciBGcmVtZHByb2dyYW1tZSkga2VpbmUgZ2VzcGVpY2hlcnRlbiwgbmljaHQgYXVmZ2Vsw7ZzdGUgS29uZmxpa3RlIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5NAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTYKIG1zZ2lkICJ3cml0ZSBpbmRleCBpbiB0aGlzIGZvcm1hdCIKIG1zZ3N0ciAic2NocmVpYnQgU3RhZ2luZy1BcmVhLURhdGVpIGluIGRpZXNlbSBGb3JtYXQiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjcKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjkKIG1zZ2lkICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gLWQgPHJlZm5hbWU+IFs8b2xkdmFsPl0iCiBtc2dzdHIgImdpdCB1cGRhdGUtcmVmIFtPcHRpb25lbl0gLWQgPFJlZmVyZW56bmFtZT4gWzxhbHRlcldlcnQ+XSIKIAotIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6OAorIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MTAKIG1zZ2lkICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gICAgPHJlZm5hbWU+IDxuZXd2YWw+IFs8b2xkdmFsPl0iCiBtc2dzdHIgImdpdCB1cGRhdGUtcmVmIFtPcHRpb25lbl0gICAgPFJlZmVyZW56bmFtZT4gPG5ldWVyV2VydD4gWzxhbHRlcldlcnQ+XSIKIAotIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MTkKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjExCittc2dpZCAiZ2l0IHVwZGF0ZS1yZWYgW29wdGlvbnNdIC0tc3RkaW4gWy16XSIKK21zZ3N0ciAiZ2l0IHVwZGF0ZS1yZWYgW09wdGlvbmVuXSAtLXN0ZGluIFstel0iCisKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1NQogbXNnaWQgImRlbGV0ZSB0aGUgcmVmZXJlbmNlIgogbXNnc3RyICJsw7ZzY2h0IGRpZXNlIFJlZmVyZW56IgogCi0jOiBidWlsdGluL3VwZGF0ZS1yZWYuYzoyMQorIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU3CiBtc2dpZCAidXBkYXRlIDxyZWZuYW1lPiBub3QgdGhlIG9uZSBpdCBwb2ludHMgdG8iCiBtc2dzdHIgImFrdHVhbGlzaWVydCA8UmVmZXJlbnpuYW1lPiwgbmljaHQgZGVuIFZlcndlaXMiCiAKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1OAorbXNnaWQgInN0ZGluIGhhcyBOVUwtdGVybWluYXRlZCBhcmd1bWVudHMiCittc2dzdHIgIlN0YW5kYXJkLUVpbmdhYmUgaGF0IGR1cmNoIE5VTC1aZWljaGVuIGFiZ2VzY2hsb3NzZW5lIEFyZ3VtZW50ZSIKKworIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU5Cittc2dpZCAicmVhZCB1cGRhdGVzIGZyb20gc3RkaW4iCittc2dzdHIgImxpZXN0IEFrdHVhbGlzaWVydW5nZW4gdm9uIGRlciBTdGFuZGFyZC1FaW5nYWJlIgorCiAjOiBidWlsdGluL3VwZGF0ZS1zZXJ2ZXItaW5mby5jOjYKIG1zZ2lkICJnaXQgdXBkYXRlLXNlcnZlci1pbmZvIFstLWZvcmNlXSIKIG1zZ3N0ciAiZ2l0IHVwZGF0ZS1zZXJ2ZXItaW5mbyBbLS1mb3JjZV0iCkBAIC05NDkzLDE1ICs5NzgyLDE1IEBACiAKICM6IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjEzCiBtc2dpZCAiZ2l0IHdyaXRlLXRyZWUgWy0tbWlzc2luZy1va10gWy0tcHJlZml4PTxwcmVmaXg+L10iCi1tc2dzdHIgImdpdCB3cml0ZS10cmVlIFstLW1pc3Npbmctb2tdIFstLXByZWZpeD08UHJlZml4Pi9dIgorbXNnc3RyICJnaXQgd3JpdGUtdHJlZSBbLS1taXNzaW5nLW9rXSBbLS1wcmVmaXg9PFByw6RmaXg+L10iCiAKICM6IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjI2CiBtc2dpZCAiPHByZWZpeD4vIgotbXNnc3RyICI8UHJlZml4Pi8iCittc2dzdHIgIjxQcsOkZml4Pi8iCiAKICM6IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjI3CiBtc2dpZCAid3JpdGUgdHJlZSBvYmplY3QgZm9yIGEgc3ViZGlyZWN0b3J5IDxwcmVmaXg+IgotbXNnc3RyICJzY2hyZWlidCBkYXMgXCJUcmVlXCItT2JqZWt0IGbDvHIgZWluIFVudGVydmVyemVpY2huaXMgPFByZWZpeD4iCittc2dzdHIgInNjaHJlaWJ0IGRhcyBcIlRyZWVcIi1PYmpla3QgZsO8ciBlaW4gVW50ZXJ2ZXJ6ZWljaG5pcyA8UHLDpGZpeD4iCiAKICM6IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjMwCiBtc2dpZCAib25seSB1c2VmdWwgZm9yIGRlYnVnZ2luZyIKQEAgLTk1MTgsMjMgKzk4MDcsMjMgQEAKICJvZGVyICdnaXQgaGVscCA8S29uemVwdD4nIHVtIG1laHIgw7xiZXIgZWluIHNwZXppZmlzY2hlcyBLb21tYW5kbyBvZGVyXG4iCiAiS29uemVwdCB6dSBlcmZhaHJlbi4iCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoxNDQKKyM6IHBhcnNlLW9wdGlvbnMuaDoxNDYKIG1zZ2lkICJleHBpcnkgZGF0ZSIKIG1zZ3N0ciAiVmVyZmFsbHNkYXR1bSIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjE1OQorIzogcGFyc2Utb3B0aW9ucy5oOjE2MQogbXNnaWQgIm5vLW9wIChiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSIKIG1zZ3N0ciAiS2VpbiBFZmZla3QgKFLDvGNrd8OkcnRza29tcGF0aWJpbGl0w6R0KSIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzNgorIzogcGFyc2Utb3B0aW9ucy5oOjIzOAogbXNnaWQgImJlIG1vcmUgdmVyYm9zZSIKIG1zZ3N0ciAiZXJ3ZWl0ZXJ0ZSBBdXNnYWJlbiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzOAorIzogcGFyc2Utb3B0aW9ucy5oOjI0MAogbXNnaWQgImJlIG1vcmUgcXVpZXQiCiBtc2dzdHIgIndlbmlnZXIgQXVzZ2FiZW4iCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyNDQKKyM6IHBhcnNlLW9wdGlvbnMuaDoyNDYKIG1zZ2lkICJ1c2UgPG4+IGRpZ2l0cyB0byBkaXNwbGF5IFNIQS0xcyIKIG1zZ3N0ciAiYmVudXR6ZSA8bj4gWmlmZmVybiB6dXIgQW56ZWlnZSB2b24gU0hBLTFzIgogCkBAIC05OTkzLDcgKzEwMjgyLDcgQEAKIG1zZ3N0ciAiIgogIlwicHVsbFwiIGlzdCBuaWNodCBtw7ZnbGljaCwgd2VpbCBTaWUgbmljaHQgenVzYW1tZW5nZWbDvGhydGUgRGF0ZWllbiBoYWJlbi4iCiAKLSM6IGdpdC1wdWxsLnNoOjIwMworIzogZ2l0LXB1bGwuc2g6MjIzCiBtc2dpZCAidXBkYXRpbmcgYW4gdW5ib3JuIGJyYW5jaCB3aXRoIGNoYW5nZXMgYWRkZWQgdG8gdGhlIGluZGV4IgogbXNnc3RyICIiCiAiQWt0dWFsaXNpZXJlIGVpbmVuIHVuZ2Vib3JlbmVuIEJyYW5jaCBtaXQgw4RuZGVydW5nZW4sIGRpZSB6dW0gQ29tbWl0ICIKQEAgLTEwMDAzLDcgKzEwMjkyLDcgQEAKICMuIFRoZSB3b3JraW5nIHRyZWUgYW5kIHRoZSBpbmRleCBmaWxlIGlzIHN0aWxsIGJhc2VkIG9uIHRoZQogIy4gJG9yaWdfaGVhZCBjb21taXQsIGJ1dCB3ZSBhcmUgbWVyZ2luZyBpbnRvICRjdXJyX2hlYWQuCiAjLiBGaXJzdCB1cGRhdGUgdGhlIHdvcmtpbmcgdHJlZSB0byBtYXRjaCAkY3Vycl9oZWFkLgotIzogZ2l0LXB1bGwuc2g6MjM1CisjOiBnaXQtcHVsbC5zaDoyNTUKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJXYXJuaW5nOiBmZXRjaCB1cGRhdGVkIHRoZSBjdXJyZW50IGJyYW5jaCBoZWFkLlxuIgpAQCAtMTAwMTMsMTEgKzEwMzAyLDExIEBACiAiV2FybnVuZzogXCJmZXRjaFwiIGFrdHVhbGlzaWVydGUgZGllIFNwaXR6ZSBkZXMgYWt0dWVsbGVuIEJyYW5jaGVzLlxuIgogIldhcm51bmc6IFNwdWxlIElociBBcmJlaXRzdmVyemVpY2huaXMgdm9uIENvbW1pdCAkb3JpZ19oZWFkIHZvci4iCiAKLSM6IGdpdC1wdWxsLnNoOjI2MAorIzogZ2l0LXB1bGwuc2g6MjgwCiBtc2dpZCAiQ2Fubm90IG1lcmdlIG11bHRpcGxlIGJyYW5jaGVzIGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAiS2FubiBuaWNodCBtZWhyZXJlIEJyYW5jaGVzIGluIGVpbmVuIHVuZ2Vib3JlbmVuIEJyYW5jaCB6dXNhbW1lbmbDvGhyZW4iCiAKLSM6IGdpdC1wdWxsLnNoOjI2NAorIzogZ2l0LXB1bGwuc2g6Mjg0CiBtc2dpZCAiQ2Fubm90IHJlYmFzZSBvbnRvIG11bHRpcGxlIGJyYW5jaGVzIgogbXNnc3RyICJrYW5uIFJlYmFzZSBuaWNodCBhdWYgbWVocmVyZSBCcmFuY2hlcyBhdXNmw7xocmVuIgogCkBAIC0xMDA1NCwzMyArMTAzNDMsMzMgQEAKICJJaHJlIMOEbmRlcnVuZ2VuIHNpbmQgaW0gU3Rhc2ggc2ljaGVyLlxuIgogIlNpZSBrw7ZubmVuIGplZGVyemVpdCBcImdpdCBzdGFzaCBwb3BcIiBvZGVyIFwiZ2l0IHN0YXNoIGRyb3BcIiBhdXNmw7xocmVuLlxuIgogCi0jOiBnaXQtcmViYXNlLnNoOjE5MAorIzogZ2l0LXJlYmFzZS5zaDoxOTkKIG1zZ2lkICJUaGUgcHJlLXJlYmFzZSBob29rIHJlZnVzZWQgdG8gcmViYXNlLiIKIG1zZ3N0ciAiRGVyIFwicHJlLXJlYmFzZSBob29rXCIgaGF0IGRlbiBSZWJhc2UgenVyw7xja2dld2llc2VuLiIKIAotIzogZ2l0LXJlYmFzZS5zaDoxOTUKKyM6IGdpdC1yZWJhc2Uuc2g6MjA0CiBtc2dpZCAiSXQgbG9va3MgbGlrZSBnaXQtYW0gaXMgaW4gcHJvZ3Jlc3MuIENhbm5vdCByZWJhc2UuIgogbXNnc3RyICJcImdpdC1hbVwiIHNjaGVpbnQgaW0gR2FuZ2UgenUgc2Vpbi4gS2FubiBSZWJhc2UgbmljaHQgZHVyY2hmw7xocmVuLiIKIAotIzogZ2l0LXJlYmFzZS5zaDozMjkKKyM6IGdpdC1yZWJhc2Uuc2g6MzM4CiBtc2dpZCAiVGhlIC0tZXhlYyBvcHRpb24gbXVzdCBiZSB1c2VkIHdpdGggdGhlIC0taW50ZXJhY3RpdmUgb3B0aW9uIgogbXNnc3RyICJEaWUgT3B0aW9uIC0tZXhlYyBtdXNzIG1pdCAtLWludGVyYWN0aXZlIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBnaXQtcmViYXNlLnNoOjMzNAorIzogZ2l0LXJlYmFzZS5zaDozNDMKIG1zZ2lkICJObyByZWJhc2UgaW4gcHJvZ3Jlc3M/IgogbXNnc3RyICJLZWluIFJlYmFzZSBpbSBHYW5nZT8iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzQ1CisjOiBnaXQtcmViYXNlLnNoOjM1NAogbXNnaWQgIlRoZSAtLWVkaXQtdG9kbyBhY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgaW50ZXJhY3RpdmUgcmViYXNlLiIKIG1zZ3N0ciAiIgogIkRpZSAtLWVkaXQtdG9kbyBBa3Rpb24ga2FubiBudXIgd8OkaHJlbmQgZWluZXMgaW50ZXJha3RpdmVuIFJlYmFzZSB2ZXJ3ZW5kZXQgIgogIndlcmRlbi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzUyCisjOiBnaXQtcmViYXNlLnNoOjM2MQogbXNnaWQgIkNhbm5vdCByZWFkIEhFQUQiCiBtc2dzdHIgIkthbm4gSEVBRCBuaWNodCBsZXNlbiIKIAotIzogZ2l0LXJlYmFzZS5zaDozNTUKKyM6IGdpdC1yZWJhc2Uuc2g6MzY0CiBtc2dpZCAiIgogIllvdSBtdXN0IGVkaXQgYWxsIG1lcmdlIGNvbmZsaWN0cyBhbmQgdGhlblxuIgogIm1hcmsgdGhlbSBhcyByZXNvbHZlZCB1c2luZyBnaXQgYWRkIgpAQCAtMTAwODgsMTIgKzEwMzc3LDEyIEBACiAiU2llIG3DvHNzZW4gYWxsZSBNZXJnZS1Lb25mbGlrdGUgZWRpdGllcmVuIHVuZCBkaWVzZSBkYW5uXG4iCiAibWl0dGVscyBcImdpdCBhZGRcIiBhbHMgYXVmZ2Vsw7ZzdCBtYXJraWVyZW4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzczCisjOiBnaXQtcmViYXNlLnNoOjM4MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG1vdmUgYmFjayB0byAkaGVhZF9uYW1lIgogbXNnc3RyICJLb25udGUgbmljaHQgenUgJGhlYWRfbmFtZSB6dXLDvGNrZ2VoZW4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzkyCisjOiBnaXQtcmViYXNlLnNoOjQwMQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIkl0IHNlZW1zIHRoYXQgdGhlcmUgaXMgYWxyZWFkeSBhICRzdGF0ZV9kaXJfYmFzZSBkaXJlY3RvcnksIGFuZFxuIgpAQCAtMTAxMTQsNjggKzEwNDAzLDY4IEBACiAidW5kIGbDvGhyZW4gU2llIGRpZXNlcyBLb21tYW5kbyBub2NobWFsIGF1cy4gRXMgd2lyZCBhbmdlaGFsdGVuLCBmYWxscyBub2NoXG4iCiAiZXR3YXMgU2Now7x0emVuc3dlcnRlcyB2b3JoYW5kZW4gaXN0LiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MzcKKyM6IGdpdC1yZWJhc2Uuc2g6NDQ2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHVwc3RyZWFtICR1cHN0cmVhbV9uYW1lIgogbXNnc3RyICJ1bmfDvGx0aWdlciBVcHN0cmVhbS1CcmFuY2ggJHVwc3RyZWFtX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDYxCisjOiBnaXQtcmViYXNlLnNoOjQ3MAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJG9udG9fbmFtZTogdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgbWVyZ2UgYmFzZXMiCiBtc2dzdHIgIiRvbnRvX25hbWU6IGVzIGdpYnQgbWVociBhbHMgZWluZSBNZXJnZS1CYXNpcyIKIAotIzogZ2l0LXJlYmFzZS5zaDo0NjQgZ2l0LXJlYmFzZS5zaDo0NjgKKyM6IGdpdC1yZWJhc2Uuc2g6NDczIGdpdC1yZWJhc2Uuc2g6NDc3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkb250b19uYW1lOiB0aGVyZSBpcyBubyBtZXJnZSBiYXNlIgogbXNnc3RyICIkb250b19uYW1lOiBlcyBnaWJ0IGtlaW5lIE1lcmdlLUJhc2lzIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ3MworIzogZ2l0LXJlYmFzZS5zaDo0ODIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQgY29tbWl0OiAkb250b19uYW1lIgogbXNnc3RyICIkb250b19uYW1lIHplaWd0IGF1ZiBrZWluZW4gZ8O8bHRpZ2VuIENvbW1pdCIKIAotIzogZ2l0LXJlYmFzZS5zaDo0OTYKKyM6IGdpdC1yZWJhc2Uuc2g6NTA1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJmYXRhbDogbm8gc3VjaCBicmFuY2g6ICRicmFuY2hfbmFtZSIKIG1zZ3N0ciAiZmF0YWw6IEJyYW5jaCAkYnJhbmNoX25hbWUgbmljaHQgZ2VmdW5kZW4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTE5CisjOiBnaXQtcmViYXNlLnNoOjUyOAogbXNnaWQgIkNhbm5vdCBhdXRvc3Rhc2giCiBtc2dzdHIgIkthbm4gXCJhdXRvc3Rhc2hcIiBuaWNodCBhdXNmw7xocmVuLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MjQKKyM6IGdpdC1yZWJhc2Uuc2g6NTMzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDcmVhdGVkIGF1dG9zdGFzaDogJHN0YXNoX2FiYnJldiIKIG1zZ3N0ciAiXCJhdXRvc3Rhc2hcIiBlcnpldWd0OiAkc3Rhc2hfYWJicmV2IgogCi0jOiBnaXQtcmViYXNlLnNoOjUyOAorIzogZ2l0LXJlYmFzZS5zaDo1MzcKIG1zZ2lkICJQbGVhc2UgY29tbWl0IG9yIHN0YXNoIHRoZW0uIgogbXNnc3RyICJCaXR0ZSBjb21taXR0ZW4gU2llIGRpZSDDhG5kZXJ1bmdlbiBvZGVyIGJlbnV0emVuIFNpZSBcInN0YXNoXCIuIgogCi0jOiBnaXQtcmViYXNlLnNoOjU0OAorIzogZ2l0LXJlYmFzZS5zaDo1NTcKICMsIHNoLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLiIKIG1zZ3N0ciAiQWt0dWVsbGVyIEJyYW5jaCAkYnJhbmNoX25hbWUgaXN0IGF1ZiBkZW0gbmV1c3RlbiBTdGFuZC4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTUyCisjOiBnaXQtcmViYXNlLnNoOjU2MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3VycmVudCBicmFuY2ggJGJyYW5jaF9uYW1lIGlzIHVwIHRvIGRhdGUsIHJlYmFzZSBmb3JjZWQuIgogbXNnc3RyICIiCiAiQWt0dWVsbGVyIEJyYW5jaCAkYnJhbmNoX25hbWUgaXN0IGF1ZiBkZW0gbmV1c3RlbiBTdGFuZCwgUmViYXNlIGVyend1bmdlbi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTYzCisjOiBnaXQtcmViYXNlLnNoOjU3MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ2hhbmdlcyBmcm9tICRtYiB0byAkb250bzoiCiBtc2dzdHIgIsOEbmRlcnVuZ2VuIHZvbiAkbWIgenUgJG9udG86IgogCiAjLiBEZXRhY2ggSEVBRCBhbmQgcmVzZXQgdGhlIHRyZWUKLSM6IGdpdC1yZWJhc2Uuc2g6NTcyCisjOiBnaXQtcmViYXNlLnNoOjU4MQogbXNnaWQgIkZpcnN0LCByZXdpbmRpbmcgaGVhZCB0byByZXBsYXkgeW91ciB3b3JrIG9uIHRvcCBvZiBpdC4uLiIKIG1zZ3N0ciAiIgogIlp1bsOkY2hzdCB3aXJkIGRlciBCcmFuY2ggenVyw7xja2dlc3B1bHQsIHVtIElocmUgw4RuZGVydW5nZW5cbiIKICJkYXJhdWYgbmV1IGFuenV3ZW5kZW4uLi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTgyCisjOiBnaXQtcmViYXNlLnNoOjU5MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFzdC1mb3J3YXJkZWQgJGJyYW5jaF9uYW1lIHRvICRvbnRvX25hbWUuIgogbXNnc3RyICIkYnJhbmNoX25hbWUgenUgJG9udG9fbmFtZSB2b3JnZXNwdWx0LiIKQEAgLTEwMjIzLDcgKzEwNTEyLDcgQEAKICMuICQgZ2l0IHN0YXNoIHNhdmUgLS1ibGFoLWJsYWggMj4mMSB8IGhlYWQgLW4gMgogIy4gZXJyb3I6IHVua25vd24gb3B0aW9uIGZvciAnc3Rhc2ggc2F2ZSc6IC0tYmxhaC1ibGFoCiAjLiBUbyBwcm92aWRlIGEgbWVzc2FnZSwgdXNlIGdpdCBzdGFzaCBzYXZlIC0tICctLWJsYWgtYmxhaCcKLSM6IGdpdC1zdGFzaC5zaDoyNDEKKyM6IGdpdC1zdGFzaC5zaDoyMzcKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogJG9wdGlvblxuIgpAQCAtMTAyMzMsMTAwICsxMDUyMiw4NSBAQAogIiAgICAgICAgVW0gZWluZSBCZXNjaHJlaWJ1bmcgYW56dWdlYmVuLCBiZW51dHplbiBTaWUgXCJnaXQgc3Rhc2ggc2F2ZSAtLSAiCiAiJyRvcHRpb24nXCIiCiAKLSM6IGdpdC1zdGFzaC5zaDoyNjIKKyM6IGdpdC1zdGFzaC5zaDoyNTgKIG1zZ2lkICJObyBsb2NhbCBjaGFuZ2VzIHRvIHNhdmUiCiBtc2dzdHIgIktlaW5lIGxva2FsZW4gw4RuZGVydW5nZW4genVtIFNwZWljaGVybiIKIAotIzogZ2l0LXN0YXNoLnNoOjI2OAotbXNnaWQgIiIKLSJUaGUgZm9sbG93aW5nIHVudHJhY2tlZCBmaWxlcyB3b3VsZCBOT1QgYmUgc2F2ZWQgYnV0IG5lZWQgdG8gYmUgcmVtb3ZlZCBieSAiCi0ic3Rhc2ggc2F2ZToiCi1tc2dzdHIgIiIKLSJEaWUgZm9sZ2VuZGVuIHVuYmVvYmFjaHRldGVuIERhdGVpZW4gd8O8cmRlbiBOSUNIVCBnZXNwZWljaGVydCB3ZXJkZW4sXG4iCi0ibcO8c3NlbiBhYmVyIGR1cmNoIFwic3Rhc2ggc2F2ZVwiIGVudGZlcm50IHdlcmRlbjoiCi0KLSM6IGdpdC1zdGFzaC5zaDoyNzAKLW1zZ2lkICIiCi0iQWJvcnRpbmcuIENvbnNpZGVyIHVzaW5nIGVpdGhlciB0aGUgLS1mb3JjZSBvciAtLWluY2x1ZGUtdW50cmFja2VkIG9wdGlvbi4iCi1tc2dzdHIgIiIKLSJBYmdlYnJvY2hlbi4gQmVudXR6ZW4gU2llIGVudHdlZGVyIGRpZSBPcHRpb24gLS1mb3JjZSBvZGVyIC0taW5jbHVkZS0iCi0idW50cmFja2VkLiIKLQotIzogZ2l0LXN0YXNoLnNoOjI3NAorIzogZ2l0LXN0YXNoLnNoOjI2MgogbXNnaWQgIkNhbm5vdCBpbml0aWFsaXplIHN0YXNoIgogbXNnc3RyICJLYW5uIFwic3Rhc2hcIiBuaWNodCBpbml0aWFsaXNpZXJlbiIKIAotIzogZ2l0LXN0YXNoLnNoOjI3OAorIzogZ2l0LXN0YXNoLnNoOjI2NgogbXNnaWQgIkNhbm5vdCBzYXZlIHRoZSBjdXJyZW50IHN0YXR1cyIKIG1zZ3N0ciAiS2FubiBkZW4gYWt0dWVsbGVuIFN0YXR1cyBuaWNodCBzcGVpY2hlcm4iCiAKLSM6IGdpdC1zdGFzaC5zaDoyOTYKKyM6IGdpdC1zdGFzaC5zaDoyODQKIG1zZ2lkICJDYW5ub3QgcmVtb3ZlIHdvcmt0cmVlIGNoYW5nZXMiCiBtc2dzdHIgIkthbm4gw4RuZGVydW5nZW4gaW0gQXJiZWl0c3ZlcnplaWNobmlzIG5pY2h0IGzDtnNjaGVuIgogCi0jOiBnaXQtc3Rhc2guc2g6Mzk1CisjOiBnaXQtc3Rhc2guc2g6MzgzCiBtc2dpZCAiTm8gc3Rhc2ggZm91bmQuIgogbXNnc3RyICJLZWluIFwic3Rhc2hcIiBnZWZ1bmRlbi4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0MDIKKyM6IGdpdC1zdGFzaC5zaDozOTAKICMsIHNoLWZvcm1hdAogbXNnaWQgIlRvbyBtYW55IHJldmlzaW9ucyBzcGVjaWZpZWQ6ICRSRVYiCiBtc2dzdHIgIlp1IHZpZWxlIENvbW1pdHMgYW5nZWdlYmVuOiAkUkVWIgogCi0jOiBnaXQtc3Rhc2guc2g6NDA4CisjOiBnaXQtc3Rhc2guc2g6Mzk2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkcmVmZXJlbmNlIGlzIG5vdCB2YWxpZCByZWZlcmVuY2UiCiBtc2dzdHIgIiRyZWZlcmVuY2UgaXN0IGtlaW5lIGfDvGx0aWdlIFJlZmVyZW56IgogCi0jOiBnaXQtc3Rhc2guc2g6NDM2CisjOiBnaXQtc3Rhc2guc2g6NDI0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoLWxpa2UgY29tbWl0IgogbXNnc3RyICInJGFyZ3MnIGlzdCBrZWluIFwic3Rhc2hcIi1hcnRpZ2VyIENvbW1pdCIKIAotIzogZ2l0LXN0YXNoLnNoOjQ0NworIzogZ2l0LXN0YXNoLnNoOjQzNQogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaCByZWZlcmVuY2UiCiBtc2dzdHIgIickYXJncycgaXN0IGtlaW5lIFwic3Rhc2hcIi1SZWZlcmVueiIKIAotIzogZ2l0LXN0YXNoLnNoOjQ1NQorIzogZ2l0LXN0YXNoLnNoOjQ0MwogbXNnaWQgInVuYWJsZSB0byByZWZyZXNoIGluZGV4IgogbXNnc3RyICJ1bmbDpGhpZyBkaWUgU3RhZ2luZy1BcmVhIHp1IGFrdHVhbGlzaWVyZW4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0NTkKKyM6IGdpdC1zdGFzaC5zaDo0NDcKIG1zZ2lkICJDYW5ub3QgYXBwbHkgYSBzdGFzaCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UiCiBtc2dzdHIgIkthbm4gXCJzdGFzaFwiIG5pY2h0IGFud2VuZGVuLCBzb2xhbmcgZWluIE1lcmdlIGltIEdhbmdlIGlzdCIKIAotIzogZ2l0LXN0YXNoLnNoOjQ2NworIzogZ2l0LXN0YXNoLnNoOjQ1NQogbXNnaWQgIkNvbmZsaWN0cyBpbiBpbmRleC4gVHJ5IHdpdGhvdXQgLS1pbmRleC4iCiBtc2dzdHIgIktvbmZsaWt0ZSBpbiBkZXIgU3RhZ2luZy1BcmVhLiBWZXJzdWNoZW4gU2llIGVzIG9obmUgLS1pbmRleC4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0NjkKKyM6IGdpdC1zdGFzaC5zaDo0NTcKIG1zZ2lkICJDb3VsZCBub3Qgc2F2ZSBpbmRleCB0cmVlIgogbXNnc3RyICJLb25udGUgU3RhZ2luZy1BcmVhLVZlcnplaWNobmlzIG5pY2h0IHNwZWljaGVybiIKIAotIzogZ2l0LXN0YXNoLnNoOjUwMworIzogZ2l0LXN0YXNoLnNoOjQ5MQogbXNnaWQgIkNhbm5vdCB1bnN0YWdlIG1vZGlmaWVkIGZpbGVzIgogbXNnc3RyICJLYW5uIGdlw6RuZGVydGUgRGF0ZWllbiBuaWNodCBhdXMgZGVyIFN0YWdpbmctQXJlYSBlbnRmZXJuZW4iCiAKLSM6IGdpdC1zdGFzaC5zaDo1MTgKKyM6IGdpdC1zdGFzaC5zaDo1MDYKIG1zZ2lkICJJbmRleCB3YXMgbm90IHVuc3Rhc2hlZC4iCiBtc2dzdHIgIlN0YWdpbmctQXJlYSB3dXJkZSBuaWNodCBhdXMgZGVtIFN0YXNoIHp1csO8Y2tnZWxhZGVuLiIKIAotIzogZ2l0LXN0YXNoLnNoOjUzNQorIzogZ2l0LXN0YXNoLnNoOjUyMwogIywgc2gtZm9ybWF0CiBtc2dpZCAiRHJvcHBlZCAke1JFVn0gKCRzKSIKIG1zZ3N0ciAiR2Vsw7ZzY2h0ICR7UkVWfSAoJHMpIgogCi0jOiBnaXQtc3Rhc2guc2g6NTM2CisjOiBnaXQtc3Rhc2guc2g6NTI0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIke1JFVn06IENvdWxkIG5vdCBkcm9wIHN0YXNoIGVudHJ5IgogbXNnc3RyICIke1JFVn06IEtvbm50ZSBcInN0YXNoXCItRWludHJhZyBuaWNodCBsw7ZzY2hlbiIKIAotIzogZ2l0LXN0YXNoLnNoOjU0MworIzogZ2l0LXN0YXNoLnNoOjUzMQogbXNnaWQgIk5vIGJyYW5jaCBuYW1lIHNwZWNpZmllZCIKIG1zZ3N0ciAiS2VpbiBCcmFuY2huYW1lIHNwZXppZml6aWVydCIKIAotIzogZ2l0LXN0YXNoLnNoOjYxNQorIzogZ2l0LXN0YXNoLnNoOjYwMwogbXNnaWQgIihUbyByZXN0b3JlIHRoZW0gdHlwZSBcImdpdCBzdGFzaCBhcHBseVwiKSIKIG1zZ3N0ciAiKFp1ciBXaWVkZXJoZXJzdGVsbHVuZyBnZWJlbiBTaWUgXCJnaXQgc3Rhc2ggYXBwbHlcIiBlaW4pIgogCkBAIC0xMDYwOCw0OSArMTA4ODIsNjAgQEAKICJEaWUgT3B0aW9uZW4gLS1jYWNoZWQgdW5kIC0tZmlsZXMga8O2bm5lbiBuaWNodCBnZW1laW5zYW0gdmVyd2VuZGV0IHdlcmRlbi4iCiAKICMuIHVuZXhwZWN0ZWQgdHlwZQotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwNzMKICMsIHNoLWZvcm1hdAogbXNnaWQgInVuZXhwZWN0ZWQgbW9kZSAkbW9kX2RzdCIKIG1zZ3N0ciAidW5lcndhcnRldGVyIE1vZHVzICRtb2RfZHN0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwODYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfc3JjIgogbXNnc3RyICIgIFdhcm51bmc6ICRkaXNwbGF5X25hbWUgYmVpbmhhbHRldCBuaWNodCBDb21taXQgJHNoYTFfc3JjIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwODkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfZHN0IgogbXNnc3RyICIgIFdhcm51bmc6ICRkaXNwbGF5X25hbWUgYmVpbmhhbHRldCBuaWNodCBDb21taXQgJHNoYTFfZHN0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwOTIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5OQogIywgc2gtZm9ybWF0CiBtc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgogbXNnc3RyICIiCiAiICBXYXJudW5nOiAkZGlzcGxheV9uYW1lIGJlaW5oYWx0ZXQgbmljaHQgZGllIENvbW1pdHMgJHNoYTFfc3JjIHVuZCAkc2hhMV9kc3QiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTExNworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTI0CiBtc2dpZCAiYmxvYiIKIG1zZ3N0ciAiQmxvYiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTU1Ci1tc2dpZCAiU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiCi1tc2dzdHIgIlN1Ym1vZHVsZSBnZcOkbmRlcnQsIGFiZXIgbmljaHQgYWt0dWFsaXNpZXJ0OiIKLQotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTU3Ci1tc2dpZCAiU3VibW9kdWxlIGNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOiIKLW1zZ3N0ciAiw4RuZGVydW5nZW4gaW4gU3VibW9kdWwgenVtIENvbW1pdHRlbjoiCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTI0MgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjM4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCiBtc2dzdHIgIkZlaGxlciBiZWkgUmVrdXJzaW9uIGluIFN1Ym1vZHVsLVBmYWQgJyRzbV9wYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMzA2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEzMDIKICMsIHNoLWZvcm1hdAogbXNnaWQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIlN5bmNocm9uaXNpZXJlIFN1Ym1vZHVsLVVSTCBmw7xyICckZGlzcGxheXBhdGgnIgogCisjfiBtc2dpZCAiaW5wdXQgcGF0aHMgYXJlIHRlcm1pbmF0ZWQgYnkgYSBudWxsIGNoYXJhY3RlciIKKyN+IG1zZ3N0ciAiRWluZ2FiZXBmYWRlIHNpbmQgZHVyY2ggZWluIE5VTCBaZWljaGVuIGFiZ2VzY2hsb3NzZW4iCisKKyN+IG1zZ2lkICJkb25lXG4iCisjfiBtc2dzdHIgIkZlcnRpZ1xuIgorCisjfiBtc2dpZCAiIgorI34gIlRoZSBmb2xsb3dpbmcgdW50cmFja2VkIGZpbGVzIHdvdWxkIE5PVCBiZSBzYXZlZCBidXQgbmVlZCB0byBiZSByZW1vdmVkICIKKyN+ICJieSBzdGFzaCBzYXZlOiIKKyN+IG1zZ3N0ciAiIgorI34gIkRpZSBmb2xnZW5kZW4gdW5iZW9iYWNodGV0ZW4gRGF0ZWllbiB3w7xyZGVuIE5JQ0hUIGdlc3BlaWNoZXJ0IHdlcmRlbixcbiIKKyN+ICJtw7xzc2VuIGFiZXIgZHVyY2ggXCJzdGFzaCBzYXZlXCIgZW50ZmVybnQgd2VyZGVuOiIKKworI34gbXNnaWQgIiIKKyN+ICJBYm9ydGluZy4gQ29uc2lkZXIgdXNpbmcgZWl0aGVyIHRoZSAtLWZvcmNlIG9yIC0taW5jbHVkZS11bnRyYWNrZWQgb3B0aW9uLiIKKyN+IG1zZ3N0ciAiIgorI34gIkFiZ2Vicm9jaGVuLiBCZW51dHplbiBTaWUgZW50d2VkZXIgZGllIE9wdGlvbiAtLWZvcmNlIG9kZXIgLS1pbmNsdWRlLSIKKyN+ICJ1bnRyYWNrZWQuIgorCiAjfiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKICN+IG1zZ3N0ciAiIgogI34gIiAgKGJlaGViZW4gU2llIGRpZSBLb25mbGlrdGUgdW5kIGbDvGhyZW4gU2llIGRhbm4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiICIKQEAgLTEwNzgzLDkgKzExMDY4LDYgQEAKICN+IG1zZ2lkICItQiBjYW5ub3QgYmUgdXNlZCB3aXRoIC1iIgogI34gbXNnc3RyICItQiBrYW5uIG5pY2h0IG1pdCAtYiBiZW51dHp0IHdlcmRlbiIKIAotI34gbXNnaWQgIi0tcGF0Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggYWxsIG90aGVyIG9wdGlvbnMiCi0jfiBtc2dzdHIgIi0tcGF0Y2ggaXN0IGlua29tcGF0aWJlbCBtaXQgYWxsZW4gYW5kZXJlbiBPcHRpb25lbiIKLQogI34gbXNnaWQgIi0tZGV0YWNoIGNhbm5vdCBiZSB1c2VkIHdpdGggLWIvLUIvLS1vcnBoYW4iCiAjfiBtc2dzdHIgIi0tZGV0YWNoIGthbm4gbmljaHQgbWl0IC1iLy1CLy0tb3JwaGFuIGJlbnV0enQgd2VyZGVuIgogCmRpZmYgLS1naXQgYS9wby9mci5wbyBiL3BvL2ZyLnBvCmluZGV4IDJjZGI2ZjkuLjQ0OTk1YmEgMTAwNjQ0Ci0tLSBhL3BvL2ZyLnBvCisrKyBiL3BvL2ZyLnBvCkBAIC04LDYgKzgsNyBAQAogIwogIyAgIEVuZ2xpc2ggICAgICAgICAgfCAgRnJlbmNoCiAjICAgLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICAgMy13YXkgbWVyZ2UgICAgICB8ICBmdXNpb24gw6AgMyBwb2ludHMKICMgICAjTk4gICAgICAgICAgICAgIHwgIG7CsE5OCiAjICAgYSBjb21taXQgICAgICAgICB8ICB1biBjb21taXQKICMgICBiYWNrd2FyZCAgICAgICAgIHwKQEAgLTE3LDM1ICsxOCw1MyBAQAogIyAgIGJsb2IgICAgICAgICAgICAgfCAgYmxvYgogIyAgIGJ1ZyAgICAgICAgICAgICAgfCAgYm9ndWUKICMgICBidW5kbGUgICAgICAgICAgIHwgIGNvbGlzCisjICAgYnlwYXNzICAgICAgICAgICB8ICDDqXZpdGVyIGQndXRpbGlzZXIKKyMgICB0byBjaGVja291dCAgICAgIHwgIGV4dHJhaXJlCiAjICAgY2hlcnJ5LXBpY2sgICAgICB8ICBwaWNvcmVyCisjICAgdG8gY29tbWl0ICAgICAgICB8ICB2YWxpZGVyCisjICAgY29tbWl0LWlzaCAgICAgICB8ICBjb21taXQgb3UgYXBwYXJlbnTDqQorIyAgIGNvbmZpZyBmaWxlICAgICAgfCAgZmljaGllciBkZSBjb25maWd1cmF0aW9uCiAjICAgZGFuZ2xpbmcgICAgICAgICB8ICBlbiBzdXNwZW5zCisjICAgdG8gZGVidWcgICAgICAgICB8ICBkw6lib2d1ZXIKICMgICBkZWJ1Z2dpbmcgICAgICAgIHwgIGTDqWJvZ2FnZQorIyAgIHRvIGRlZmxhdGUgICAgICAgfCAgY29tcHJlc3NlcgorIyAgIGVtYWlsICAgICAgICAgICAgfCAgZS1tYWlsCisjICAgZW50cnkgICAgICAgICAgICB8ICDDqWzDqW1lbnQKICMgICBmYXN0LWZvcndhcmQgICAgIHwgIGF2YW5jZSByYXBpZGUKICMgICBmYXN0LWZvcndhcmRlZCAgIHwgIG1pcyDDoCBqb3VyIGVuIGF2YW5jZSByYXBpZGUKKyMgICB0byBmZXRjaCAgICAgICAgIHwgIHJhcGF0cmllcgorIyAgIGZpeCBjb25mbGljdHMgICAgfCAgcsOpZ2xleiBsZXMgY29uZmxpdHMKKyMgICB0byBmb3JtYXQgICAgICAgIHwgIGZvcm1hdGVyCiAjICAgZ2xvYiAgICAgICAgICAgICB8ICBnbG9iCiAjICAgaGFzaCAgICAgICAgICAgICB8ICBoYWNoYWdlCiAjICAgSEVBRCAgICAgICAgICAgICB8ICBIRUFEIChnZW5yZSBmw6ltaW5pbikKLSMgICBob29rICAgICAgICAgICAgIHwgIGhvb2sKKyMgICBob29rICAgICAgICAgICAgIHwgIGNyb2NoZXQKICMgICBodW5rICAgICAgICAgICAgIHwgIHNlY3Rpb24KKyMgICB0byBpbmZsYXRlICAgICAgIHwgIGTDqWNvbXByZXNzZXIKKyMgICB0byBsaXN0ICAgICAgICAgIHwgIGFmZmljaGVyCisjICAgbWFwcGluZyAgICAgICAgICB8ICBtaXNlIGVuIGNvcnJlc3BvbmRhbmNlCiAjICAgbWVyZ2UgICAgICAgICAgICB8ICBmdXNpb24KKyMgICBwYWNrICAgICAgICAgICAgIHwgIHBhcXVldAorIyAgIHBhdGNoZXMgICAgICAgICAgfCAgcGF0Y2hzCiAjICAgcGF0dGVybiAgICAgICAgICB8ICBtb3RpZgorIyAgIHRvIHBydW5lICAgICAgICAgfCAgw6lsaW1pbmVyCisjICAgdG8gcHVzaCAgICAgICAgICB8ICBwb3Vzc2VyCisjICAgdG8gcmViYXNlICAgICAgICB8ICByZWJhc2VyCiAjICAgcmVwb3NpdG9yeSAgICAgICB8ICBkw6lww7R0CiAjICAgcmVtb3RlICAgICAgICAgICB8ICBkaXN0YW50ZSAob3Ugc2VydmV1ciBkaXN0YW50KQogIyAgIHJldmlzaW9uICAgICAgICAgfCAgcsOpdmlzaW9uCisjICAgc2hlbGwgICAgICAgICAgICB8ICBpbnRlcnByw6l0ZXVyIGRlIGNvbW1hbmRlcwogIyAgIHN0YXNoICAgICAgICAgICAgfCAgcmVtaXNhZ2UKKyMgICB0byBzdGFzaCAgICAgICAgIHwgIHJlbWlzZXIKICMgICB0YWcgICAgICAgICAgICAgIHwgIMOpdGlxdWV0dGUKICMgICB0ZW1wbGF0ZSAgICAgICAgIHwgIG1vZMOobGUKLSMgICB0byBjaGVja291dCAgICAgIHwgIGV4dHJhaXJlCi0jICAgdG8gY29tbWl0ICAgICAgICB8ICB2YWxpZGVyCi0jICAgdG8gZmV0Y2ggICAgICAgICB8ICByYXBhdHJpZXIKLSMgICB0byBwcnVuZSAgICAgICAgIHwgIMOpbGFndWVyCi0jICAgdG8gcHVzaCAgICAgICAgICB8ICBwb3Vzc2VyCi0jICAgdG8gcmViYXNlICAgICAgICB8ICByZWJhc2VyCi0jICAgdG8gc3Rhc2ggICAgICAgICB8ICByZW1pc2VyCisjICAgdGhyZWFkICAgICAgICAgICB8ICBmaWwKICMgICB0byB0cmFjayAgICAgICAgIHwgIHN1aXZyZQorIyAgIHRyZWUgICAgICAgICAgICAgfCAgYXJicmUKKyMgICB0cmVlLWlzaCAgICAgICAgIHwgIGFyYnJlIG91IGFwcGFyZW50w6kKICMgICB0byB1bnN0YWdlICAgICAgIHwgIGTDqXNpbmRleGVyCi0jICAgdHJlZS1pc2ggICAgICAgICB8ICBhcmJyZQogIyAgIHVwc3RyZWFtICAgICAgICAgfCAgYW1vbnQKKyMgICB2aWV3ZXIgICAgICAgICAgIHwgIHZpc3VhbGlzZXVyCiAjICAgd29ya3RyZWUgLyAgICAgICB8CiAjICAgd29yayhpbmcpIHRyZWUgICB8ICBjb3BpZSBkZSB0cmF2YWlsCiAjCkBAIC01Myw4ICs3Miw4IEBACiBtc2dzdHIgIiIKICJQcm9qZWN0LUlkLVZlcnNpb246IGdpdFxuIgogIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBHaXQgTWFpbGluZyBMaXN0IDxnaXRAdmdlci5rZXJuZWwub3JnPlxuIgotIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEzLTA0LTMwIDA4OjI1KzA4MDBcbiIKLSJQTy1SZXZpc2lvbi1EYXRlOiAyMDEzLTA4LTI3IDE5OjQzKzAyMDBcbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0xMS0wMiAwODowNiswODAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAxMy0xMS0wNyAyMTo0MSswMTAwXG4iCiAiTGFzdC1UcmFuc2xhdG9yOiBTw6liYXN0aWVuIEhlbGxldSA8Zmxhc2hjb2RlQGZsYXNodHV4Lm9yZz5cbiIKICJMYW5ndWFnZS1UZWFtOiBKZWFuLU5vw6tsIEF2aWxhIDxqbi5hdmlsYUBmcmVlLmZyPlxuIgogIkxhbmd1YWdlOiBmclxuIgpAQCAtNjQsNyArODMsNyBAQAogIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPW48PTEgPzAgOiAxO1xuIgogIlgtR2VuZXJhdG9yOiBQb2VkaXQgMS41LjRcbiIKIAotIzogYWR2aWNlLmM6NTMKKyM6IGFkdmljZS5jOjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImhpbnQ6ICUuKnNcbiIKIG1zZ3N0ciAiYXN0dWNlOiAlLipzXG4iCkBAIC03Myw3ICs5Miw3IEBACiAjLiAqIE1lc3NhZ2UgdXNlZCBib3RoIHdoZW4gJ2dpdCBjb21taXQnIGZhaWxzIGFuZCB3aGVuCiAjLiAqIG90aGVyIGNvbW1hbmRzIGRvaW5nIGEgbWVyZ2UgZG8uCiAjLgotIzogYWR2aWNlLmM6ODMKKyM6IGFkdmljZS5jOjg3CiBtc2dpZCAiIgogIkZpeCB0aGVtIHVwIGluIHRoZSB3b3JrIHRyZWUsXG4iCiAiYW5kIHRoZW4gdXNlICdnaXQgYWRkL3JtIDxmaWxlPicgYXNcbiIKQEAgLTg3LDcgKzEwNiw3IEBACiAKICM6IGFyY2hpdmUuYzoxMAogbXNnaWQgImdpdCBhcmNoaXZlIFtvcHRpb25zXSA8dHJlZS1pc2g+IFs8cGF0aD4uLi5dIgotbXNnc3RyICJnaXQgYXJjaGl2ZSBbb3B0aW9uc10gPGFyYnJlPiBbPGNoZW1pbj4uLi5dIgorbXNnc3RyICJnaXQgYXJjaGl2ZSBbb3B0aW9uc10gPGFyYnJlIG91IGFwcGFyZW50w6k+IFs8Y2hlbWluPi4uLl0iCiAKICM6IGFyY2hpdmUuYzoxMQogbXNnaWQgImdpdCBhcmNoaXZlIC0tbGlzdCIKQEAgLTk2LDc3ICsxMTUsODQgQEAKICM6IGFyY2hpdmUuYzoxMgogbXNnaWQgIiIKICJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8cmVwbz4gWy0tZXhlYyA8Y21kPl0gW29wdGlvbnNdIDx0cmVlLWlzaD4gWzxwYXRoPi4uLl0iCi1tc2dzdHIgImdpdCBhcmNoaXZlIC0tcmVtb3RlIDxkw6lww7R0PiBbLS1leGVjIDxjb21tYW5kZT5dIFtvcHRpb25zXSA8YXJicmU+IFs8Y2hlbWluPi4uLl0iCittc2dzdHIgIiIKKyJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8ZMOpcMO0dD4gWy0tZXhlYyA8Y29tbWFuZGU+XSBbb3B0aW9uc10gPGFyYnJlIG91ICIKKyJhcHBhcmVudMOpPiBbPGNoZW1pbj4uLi5dIgogCiAjOiBhcmNoaXZlLmM6MTMKIG1zZ2lkICJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8cmVwbz4gWy0tZXhlYyA8Y21kPl0gLS1saXN0IgogbXNnc3RyICJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8ZMOpcMO0dD4gWy0tZXhlYyA8Y29tbWFuZGU+XSAtLWxpc3QiCiAKLSM6IGFyY2hpdmUuYzozMjMKKyM6IGFyY2hpdmUuYzoyNDIgYnVpbHRpbi9hZGQuYzoyNDAgYnVpbHRpbi9hZGQuYzo1NTYgYnVpbHRpbi9ybS5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgorbXNnc3RyICJsZSBjaGVtaW4gJyVzJyBuZSBjb3JyZXNwb25kIMOgIGF1Y3VuIGZpY2hpZXIiCisKKyM6IGFyY2hpdmUuYzozMjcKIG1zZ2lkICJmbXQiCiBtc2dzdHIgImZtdCIKIAotIzogYXJjaGl2ZS5jOjMyMworIzogYXJjaGl2ZS5jOjMyNwogbXNnaWQgImFyY2hpdmUgZm9ybWF0IgogbXNnc3RyICJmb3JtYXQgZCdhcmNoaXZlIgogCi0jOiBhcmNoaXZlLmM6MzI0IGJ1aWx0aW4vbG9nLmM6MTEyNgorIzogYXJjaGl2ZS5jOjMyOCBidWlsdGluL2xvZy5jOjExOTMKIG1zZ2lkICJwcmVmaXgiCiBtc2dzdHIgInByw6lmaXhlIgogCi0jOiBhcmNoaXZlLmM6MzI1CisjOiBhcmNoaXZlLmM6MzI5CiBtc2dpZCAicHJlcGVuZCBwcmVmaXggdG8gZWFjaCBwYXRobmFtZSBpbiB0aGUgYXJjaGl2ZSIKIG1zZ3N0ciAicHLDqWZpeGVyIGNoYXF1ZSBjaGVtaW4gZGUgZmljaGllciBkYW5zIGwnYXJjaGl2ZSIKIAotIzogYXJjaGl2ZS5jOjMyNiBidWlsdGluL2FyY2hpdmUuYzo4OCBidWlsdGluL2JsYW1lLmM6MjM3MQotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzIgYnVpbHRpbi9jb25maWcuYzo1NSBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY1Ci0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY3IGJ1aWx0aW4vZ3JlcC5jOjcxNSBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTAgYnVpbHRpbi9scy1maWxlcy5jOjQ5MyBidWlsdGluL25vdGVzLmM6NTM2Ci0jOiBidWlsdGluL25vdGVzLmM6NjkzIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA3IHBhcnNlLW9wdGlvbnMuaDoxNDkKKyM6IGFyY2hpdmUuYzozMzAgYnVpbHRpbi9hcmNoaXZlLmM6ODggYnVpbHRpbi9ibGFtZS5jOjIyNjQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY1IGJ1aWx0aW4vY29uZmlnLmM6NTggYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MiBidWlsdGluL2dyZXAuYzo3MTYgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg2IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODkgYnVpbHRpbi9ub3Rlcy5jOjQwOAorIzogYnVpbHRpbi9ub3Rlcy5jOjU2NSBidWlsdGluL3JlYWQtdHJlZS5jOjEwOCBwYXJzZS1vcHRpb25zLmg6MTU0CiBtc2dpZCAiZmlsZSIKIG1zZ3N0ciAiZmljaGllciIKIAotIzogYXJjaGl2ZS5jOjMyNyBidWlsdGluL2FyY2hpdmUuYzo4OQorIzogYXJjaGl2ZS5jOjMzMSBidWlsdGluL2FyY2hpdmUuYzo4OQogbXNnaWQgIndyaXRlIHRoZSBhcmNoaXZlIHRvIHRoaXMgZmlsZSIKIG1zZ3N0ciAiw6ljcmlyZSBsJ2FyY2hpdmUgZGFucyBjZSBmaWNoaWVyIgogCi0jOiBhcmNoaXZlLmM6MzI5CisjOiBhcmNoaXZlLmM6MzMzCiBtc2dpZCAicmVhZCAuZ2l0YXR0cmlidXRlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSIKIG1zZ3N0ciAibGlyZSAuZ2l0YXR0cmlidXRlcyBkYW5zIGxlIHLDqXBlcnRvaXJlIGRlIHRyYXZhaWwiCiAKLSM6IGFyY2hpdmUuYzozMzAKKyM6IGFyY2hpdmUuYzozMzQKIG1zZ2lkICJyZXBvcnQgYXJjaGl2ZWQgZmlsZXMgb24gc3RkZXJyIgogbXNnc3RyICJhZmZpY2hlciBsZXMgZmljaGllcnMgYXJjaGl2w6lzIHN1ciBzdGRlcnIiCiAKLSM6IGFyY2hpdmUuYzozMzEKKyM6IGFyY2hpdmUuYzozMzUKIG1zZ2lkICJzdG9yZSBvbmx5IgogbXNnc3RyICJzdG9ja2FnZSBzZXVsZW1lbnQiCiAKLSM6IGFyY2hpdmUuYzozMzIKKyM6IGFyY2hpdmUuYzozMzYKIG1zZ2lkICJjb21wcmVzcyBmYXN0ZXIiCiBtc2dzdHIgImNvbXByZXNzaW9uIHJhcGlkZSIKIAotIzogYXJjaGl2ZS5jOjM0MAorIzogYXJjaGl2ZS5jOjM0NAogbXNnaWQgImNvbXByZXNzIGJldHRlciIKIG1zZ3N0ciAiY29tcHJlc3Npb24gZWZmaWNhY2UiCiAKLSM6IGFyY2hpdmUuYzozNDMKKyM6IGFyY2hpdmUuYzozNDcKIG1zZ2lkICJsaXN0IHN1cHBvcnRlZCBhcmNoaXZlIGZvcm1hdHMiCi1tc2dzdHIgImxpc3RlciBsZXMgZm9ybWF0cyBkJ2FyY2hpdmUgc3VwcG9ydMOpcyIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGZvcm1hdHMgZCdhcmNoaXZlIHN1cHBvcnTDqXMiCiAKLSM6IGFyY2hpdmUuYzozNDUgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg2CisjOiBhcmNoaXZlLmM6MzQ5IGJ1aWx0aW4vYXJjaGl2ZS5jOjkwIGJ1aWx0aW4vY2xvbmUuYzo4NAogbXNnaWQgInJlcG8iCiBtc2dzdHIgImTDqXDDtHQiCiAKLSM6IGFyY2hpdmUuYzozNDYgYnVpbHRpbi9hcmNoaXZlLmM6OTEKKyM6IGFyY2hpdmUuYzozNTAgYnVpbHRpbi9hcmNoaXZlLmM6OTEKIG1zZ2lkICJyZXRyaWV2ZSB0aGUgYXJjaGl2ZSBmcm9tIHJlbW90ZSByZXBvc2l0b3J5IDxyZXBvPiIKIG1zZ3N0ciAicsOpY3Vww6lyZXIgbCdhcmNoaXZlIGRlcHVpcyBsZSBkw6lww7R0IGRpc3RhbnQgPGTDqXDDtHQ+IgogCi0jOiBhcmNoaXZlLmM6MzQ3IGJ1aWx0aW4vYXJjaGl2ZS5jOjkyIGJ1aWx0aW4vbm90ZXMuYzo2MTUKKyM6IGFyY2hpdmUuYzozNTEgYnVpbHRpbi9hcmNoaXZlLmM6OTIgYnVpbHRpbi9ub3Rlcy5jOjQ4NwogbXNnaWQgImNvbW1hbmQiCiBtc2dzdHIgImNvbW1hbmRlIgogCi0jOiBhcmNoaXZlLmM6MzQ4IGJ1aWx0aW4vYXJjaGl2ZS5jOjkzCisjOiBhcmNoaXZlLmM6MzUyIGJ1aWx0aW4vYXJjaGl2ZS5jOjkzCiBtc2dpZCAicGF0aCB0byB0aGUgcmVtb3RlIGdpdC11cGxvYWQtYXJjaGl2ZSBjb21tYW5kIgogbXNnc3RyICJjaGVtaW4gdmVycyBsYSBjb21tYW5kZSBkaXN0YW50ZSBnaXQtdXBsb2FkLWFyY2hpdmUiCiAKQEAgLTE4NiwxNyArMjEyLDIxIEBACiAjOiBicmFuY2guYzo4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIHJlbW90ZSBicmFuY2ggJXMgZnJvbSAlcyBieSByZWJhc2luZy4iCi1tc2dzdHIgIkxhIGJyYW5jaGUgJXMgZXN0IHBhcmFtw6l0csOpZSBwb3VyIHN1aXZyZSBsYSBicmFuY2hlIGRpc3RhbnRlICVzIGRlICVzIGVuIHJlYmFzYW50LiIKK21zZ3N0ciAiIgorIkxhIGJyYW5jaGUgJXMgZXN0IHBhcmFtw6l0csOpZSBwb3VyIHN1aXZyZSBsYSBicmFuY2hlIGRpc3RhbnRlICVzIGRlICVzIGVuICIKKyJyZWJhc2FudC4iCiAKICM6IGJyYW5jaC5jOjgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIGJyYW5jaCAlcyBmcm9tICVzLiIKLW1zZ3N0ciAiTGEgYnJhbmNoZSAlcyBlc3QgcGFyYW3DqXRyw6llIHBvdXIgc3VpdnJlIGxhIGJyYW5jaGUgZGlzdGFudGUgJXMgZGVwdWlzICVzLiIKK21zZ3N0ciAiIgorIkxhIGJyYW5jaGUgJXMgZXN0IHBhcmFtw6l0csOpZSBwb3VyIHN1aXZyZSBsYSBicmFuY2hlIGRpc3RhbnRlICVzIGRlcHVpcyAlcy4iCiAKICM6IGJyYW5jaC5jOjg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgYnJhbmNoICVzIGJ5IHJlYmFzaW5nLiIKLW1zZ3N0ciAiTGEgYnJhbmNoZSAlcyBlc3QgcGFyYW3DqXRyw6llIHBvdXIgc3VpdnJlIGxhIGJyYW5jaGUgbG9jYWxlICVzIGVuIHJlYmFzYW50LiIKK21zZ3N0ciAiIgorIkxhIGJyYW5jaGUgJXMgZXN0IHBhcmFtw6l0csOpZSBwb3VyIHN1aXZyZSBsYSBicmFuY2hlIGxvY2FsZSAlcyBlbiByZWJhc2FudC4iCiAKICM6IGJyYW5jaC5jOjg4CiAjLCBjLWZvcm1hdApAQCAtMjA2LDcgKzIzNiw5IEBACiAjOiBicmFuY2guYzo5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIHJlbW90ZSByZWYgJXMgYnkgcmViYXNpbmcuIgotbXNnc3RyICJMYSBicmFuY2hlICVzIGVzdCBwYXJhbcOpdHLDqWUgcG91ciBzdWl2cmUgbGEgcsOpZsOpcmVuY2UgZGlzdGFudGUgJXMgZW4gcmViYXNhbnQuIgorbXNnc3RyICIiCisiTGEgYnJhbmNoZSAlcyBlc3QgcGFyYW3DqXRyw6llIHBvdXIgc3VpdnJlIGxhIHLDqWbDqXJlbmNlIGRpc3RhbnRlICVzIGVuICIKKyJyZWJhc2FudC4iCiAKICM6IGJyYW5jaC5jOjkzCiAjLCBjLWZvcm1hdApAQCAtMjE2LDcgKzI0OCw4IEBACiAjOiBicmFuY2guYzo5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIGxvY2FsIHJlZiAlcyBieSByZWJhc2luZy4iCi1tc2dzdHIgIkxhIGJyYW5jaGUgJXMgZXN0IHBhcmFtw6l0csOpZSBwb3VyIHN1aXZyZSBsYSByw6lmw6lyZW5jZSBsb2NhbGUgJXMgZW4gcmViYXNhbnQuIgorbXNnc3RyICIiCisiTGEgYnJhbmNoZSAlcyBlc3QgcGFyYW3DqXRyw6llIHBvdXIgc3VpdnJlIGxhIHLDqWbDqXJlbmNlIGxvY2FsZSAlcyBlbiByZWJhc2FudC4iCiAKICM6IGJyYW5jaC5jOjk4CiAjLCBjLWZvcm1hdApAQCAtMjQ3LDE3ICsyODAsMTkgQEAKIG1zZ2lkICJDYW5ub3QgZm9yY2UgdXBkYXRlIHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIkltcG9zc2libGUgZGUgZm9yY2VyIGxhIG1pc2Ugw6Agam91ciBkZSBsYSBicmFuY2hlIGNvdXJhbnRlLiIKIAotIzogYnJhbmNoLmM6MjAxCisjOiBicmFuY2guYzoyMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHNldHVwIHRyYWNraW5nIGluZm9ybWF0aW9uOyBzdGFydGluZyBwb2ludCAnJXMnIGlzIG5vdCBhIGJyYW5jaC4iCi1tc2dzdHIgIkltcG9zc2libGUgZGUgcGFyYW3DqXRyZXIgbGUgc3VpdmkgZGUgYnJhbmNoZSA7IGxlIHBvaW50IGRlIGTDqXBhcnQgJyVzJyBuJ2VzdCBwYXMgdW5lIGJyYW5jaGUuIgorbXNnc3RyICIiCisiSW1wb3NzaWJsZSBkZSBwYXJhbcOpdHJlciBsZSBzdWl2aSBkZSBicmFuY2hlIDsgbGUgcG9pbnQgZGUgZMOpcGFydCAnJXMnIG4nZXN0ICIKKyJwYXMgdW5lIGJyYW5jaGUuIgogCi0jOiBicmFuY2guYzoyMDMKKyM6IGJyYW5jaC5jOjIxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0aGUgcmVxdWVzdGVkIHVwc3RyZWFtIGJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICJsYSBicmFuY2hlIGFtb250IGRlbWFuZMOpZSAnJXMnIG4nZXhpc3RlIHBhcyIKIAotIzogYnJhbmNoLmM6MjA1CisjOiBicmFuY2guYzoyMTkKIG1zZ2lkICIiCiAiXG4iCiAiSWYgeW91IGFyZSBwbGFubmluZyBvbiBiYXNpbmcgeW91ciB3b3JrIG9uIGFuIHVwc3RyZWFtXG4iCkBAIC0yNzcsMjYgKzMxMiwyNiBAQAogInNhIGp1bWVsbGUgZGlzdGFudGUsIHZvdXMgc291aGFpdGVyZXogdXRpbGlzZXIgXCJnaXQgcHVzaCAtdVwiXG4iCiAicG91ciBwYXJhbcOpdHJlciBsZSBzdWl2aSBkaXN0YW50IGVuIG3Dqm1lIHRlbXBzIHF1ZSB2b3VzIHBvdXNzZXouIgogCi0jOiBicmFuY2guYzoyNTAKKyM6IGJyYW5jaC5jOjI2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYSB2YWxpZCBvYmplY3QgbmFtZTogJyVzJy4iCiBtc2dzdHIgIk5vbSBkJ29iamV0IGludmFsaWRlIDogJyVzJy4iCiAKLSM6IGJyYW5jaC5jOjI3MAorIzogYnJhbmNoLmM6Mjg0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFtYmlndW91cyBvYmplY3QgbmFtZTogJyVzJy4iCiBtc2dzdHIgIk5vbSBkJ29iamV0IGFtYmlndSA6ICclcycuIgogCi0jOiBicmFuY2guYzoyNzUKKyM6IGJyYW5jaC5jOjI4OQogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYSB2YWxpZCBicmFuY2ggcG9pbnQ6ICclcycuIgogbXNnc3RyICJQb2ludCBkJ2VtYnJhbmNoZW1lbnQgaW52YWxpZGUgOiAnJXMnLiIKIAotIzogYnJhbmNoLmM6MjgxCisjOiBicmFuY2guYzoyOTUKIG1zZ2lkICJGYWlsZWQgdG8gbG9jayByZWYgZm9yIHVwZGF0ZSIKIG1zZ3N0ciAiw4ljaGVjIGR1IHZlcnJvdWlsbGFnZSBkZSBsYSByw6lmw6lyZW5jZSBwb3VyIG1pc2Ugw6Agam91ciIKIAotIzogYnJhbmNoLmM6Mjk5CisjOiBicmFuY2guYzozMTMKIG1zZ2lkICJGYWlsZWQgdG8gd3JpdGUgcmVmIgogbXNnc3RyICLDiWNoZWMgZGUgbCfDqWNyaXR1cmUgZGUgbGEgcsOpZsOpcmVuY2UiCiAKQEAgLTMxMCw3ICszNDUsNyBAQAogbXNnaWQgInVucmVjb2duaXplZCBoZWFkZXI6ICVzJXMgKCVkKSIKIG1zZ3N0ciAiZW4tdMOqdGUgbm9uIHJlY29ubnUgOiAlcyVzICglZCkiCiAKLSM6IGJ1bmRsZS5jOjg5IGJ1aWx0aW4vY29tbWl0LmM6Njc2CisjOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjcwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIgogbXNnc3RyICJpbXBvc3NpYmxlIGQnb3V2cmlyICclcyciCkBAIC0zMTksOSArMzU0LDkgQEAKIG1zZ2lkICJSZXBvc2l0b3J5IGxhY2tzIHRoZXNlIHByZXJlcXVpc2l0ZSBjb21taXRzOiIKIG1zZ3N0ciAiTGUgZMOpcMO0dCBuZSBkaXNwb3NlIHBhcyBkZXMgY29tbWl0cyBwcsOpcmVxdWlzIDoiCiAKLSM6IGJ1bmRsZS5jOjE2NCBzZXF1ZW5jZXIuYzo2NTEgc2VxdWVuY2VyLmM6MTEwMSBidWlsdGluL2xvZy5jOjMwMAotIzogYnVpbHRpbi9sb2cuYzo3NzAgYnVpbHRpbi9sb2cuYzoxMzQ0IGJ1aWx0aW4vbG9nLmM6MTU3MCBidWlsdGluL21lcmdlLmM6MzQ5Ci0jOiBidWlsdGluL3Nob3J0bG9nLmM6MTU1CisjOiBidW5kbGUuYzoxNjQgc2VxdWVuY2VyLmM6NjYyIHNlcXVlbmNlci5jOjExMTIgYnVpbHRpbi9sb2cuYzozMzIKKyM6IGJ1aWx0aW4vbG9nLmM6ODIxIGJ1aWx0aW4vbG9nLmM6MTQxOCBidWlsdGluL2xvZy5jOjE2NDQgYnVpbHRpbi9tZXJnZS5jOjM2NAorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjE1OAogbXNnaWQgInJldmlzaW9uIHdhbGsgc2V0dXAgZmFpbGVkIgogbXNnc3RyICLDqWNoZWMgZGUgbGEgcHLDqXBhcmF0aW9uIGR1IHBhcmNvdXJzIGRlcyByw6l2aXNpb25zIgogCkBAIC0zNDcsNyArMzgyLDcgQEAKIG1zZ2lkICJyZXYtbGlzdCBkaWVkIgogbXNnc3RyICJyZXYtbGlzdCBhIGRpc3BhcnUiCiAKLSM6IGJ1bmRsZS5jOjMwMCBidWlsdGluL2xvZy5jOjEyNTUgYnVpbHRpbi9zaG9ydGxvZy5jOjI1OAorIzogYnVuZGxlLmM6MzAwIGJ1aWx0aW4vbG9nLmM6MTMyOSBidWlsdGluL3Nob3J0bG9nLmM6MjYxCiAjLCBjLWZvcm1hdAogbXNnaWQgInVucmVjb2duaXplZCBhcmd1bWVudDogJXMiCiBtc2dzdHIgImFyZ3VtZW50IG5vbiByZWNvbm51IDogJXMiCkBAIC0zNzgsMTIgKzQxMywxMiBAQAogbXNnaWQgImluZGV4LXBhY2sgZGllZCIKIG1zZ3N0ciAibCdpbmRleCBkZSBncm91cGUgYSBkaXNwYXJ1IgogCi0jOiBjb21taXQuYzo1MAorIzogY29tbWl0LmM6NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHBhcnNlICVzIgogbXNnc3RyICJpbXBvc3NpYmxlIGQnYW5hbHlzZXIgJXMiCiAKLSM6IGNvbW1pdC5jOjUyCisjOiBjb21taXQuYzo1NQogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyAlcyBpcyBub3QgYSBjb21taXQhIgogbXNnc3RyICIlcyAlcyBuJ2VzdCBwYXMgdW4gY29tbWl0ICEiCkBAIC0zOTIsMTkgKzQyNywxOSBAQAogbXNnaWQgIm1lbW9yeSBleGhhdXN0ZWQiCiBtc2dzdHIgInBsdXMgZGUgbcOpbW9pcmUiCiAKLSM6IGNvbm5lY3RlZC5jOjM5CisjOiBjb25uZWN0ZWQuYzo2MAogbXNnaWQgIkNvdWxkIG5vdCBydW4gJ2dpdCByZXYtbGlzdCciCiBtc2dzdHIgIkltcG9zc2libGUgZGUgbGFuY2VyICdnaXQgcmV2LWxpc3QnIgogCi0jOiBjb25uZWN0ZWQuYzo0OAorIzogY29ubmVjdGVkLmM6ODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHdyaXRlIHRvIHJldi1saXN0OiAlcyIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkJ8OpY3JpcmUgZGFucyBsYSByZXYtbGlzdCA6ICVzIgogCi0jOiBjb25uZWN0ZWQuYzo1NgorIzogY29ubmVjdGVkLmM6ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNsb3NlIHJldi1saXN0J3Mgc3RkaW46ICVzIgotbXNnc3RyICJpbXBvc3NpYmxlIGRlIGZlcm1lciBsZSBzdGRpbiBkdSByZXYtbGlzdCA6ICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGZlcm1lciBsJ2VudHLDqWUgc3RhbmRhcmQgZHUgcmV2LWxpc3QgOiAlcyIKIAogIzogZGF0ZS5jOjk1CiBtc2dpZCAiaW4gdGhlIGZ1dHVyZSIKQEAgLTQ3Niw3ICs1MTEsOCBAQAogIzogZGlmZi5jOjExMgogIywgYy1mb3JtYXQKIG1zZ2lkICIgIEZhaWxlZCB0byBwYXJzZSBkaXJzdGF0IGN1dC1vZmYgcGVyY2VudGFnZSAnJXMnXG4iCi1tc2dzdHIgIiAgSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIHBvdXJjZW50YWdlIGRlIG1vZGlmaWNhdGlvbiBkZSBkaXJzdGF0ICclcydcbiIKK21zZ3N0ciAiIgorIiAgSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIHBvdXJjZW50YWdlIGRlIG1vZGlmaWNhdGlvbiBkZSBkaXJzdGF0ICclcydcbiIKIAogIzogZGlmZi5jOjExNwogIywgYy1mb3JtYXQKQEAgLTQ4NiwyNSArNTIyLDI4IEBACiAjOiBkaWZmLmM6MjEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gdmFsdWUgZm9yICdkaWZmLnN1Ym1vZHVsZScgY29uZmlnIHZhcmlhYmxlOiAnJXMnIgotbXNnc3RyICJWYWxldXIgaW5jb25udWUgcG91ciBsYSB2YXJpYWJsZSBkZSBjb25maWd1cmF0aW9uICdkaWZmLnN1Ym1vZHVsZScgOiAnJXMnIgorbXNnc3RyICIiCisiVmFsZXVyIGluY29ubnVlIHBvdXIgbGEgdmFyaWFibGUgZGUgY29uZmlndXJhdGlvbiAnZGlmZi5zdWJtb2R1bGUnIDogJyVzJyIKIAogIzogZGlmZi5jOjI2MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiRm91bmQgZXJyb3JzIGluICdkaWZmLmRpcnN0YXQnIGNvbmZpZyB2YXJpYWJsZTpcbiIKICIlcyIKLW1zZ3N0ciAiRXJyZXVycyBkYW5zIGxhIHZhcmlhYmxlIGRlIGNvbmZpZ3VyYXRpb24gJ2RpZmYuZGlyc3RhdCcgOlxuIgorbXNnc3RyICIiCisiRXJyZXVycyBkYW5zIGxhIHZhcmlhYmxlIGRlIGNvbmZpZ3VyYXRpb24gJ2RpZmYuZGlyc3RhdCcgOlxuIgogIiVzIgogCi0jOiBkaWZmLmM6MzQ4MQorIzogZGlmZi5jOjM0OTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkZhaWxlZCB0byBwYXJzZSAtLWRpcnN0YXQvLVggb3B0aW9uIHBhcmFtZXRlcjpcbiIKICIlcyIKLW1zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIHBhcmFtw6h0cmUgZGUgbCdvcHRpb24gLS1kaXJzdGF0Ly1YIDpcbiIKK21zZ3N0ciAiIgorIkltcG9zc2libGUgZCdhbmFseXNlciBsZSBwYXJhbcOodHJlIGRlIGwnb3B0aW9uIC0tZGlyc3RhdC8tWCA6XG4iCiAiJXMiCiAKLSM6IGRpZmYuYzozNDk1CisjOiBkaWZmLmM6MzUwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcGFyc2UgLS1zdWJtb2R1bGUgb3B0aW9uIHBhcmFtZXRlcjogJyVzJyIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIHBhcmFtw6h0cmUgZGUgbCdvcHRpb24gLS1zdWJtb2R1bGUgOiAnJXMnIgpAQCAtNTMxLDM1ICs1NzAsMzUgQEAKIG1zZ2lkICJmYWlsZWQgd3JpdGluZyBkZXRhY2hlZCBzaWduYXR1cmUgdG8gJyVzJzogJXMiCiBtc2dzdHIgImltcG9zc2libGUgZCfDqWNyaXJlIGxhIHNpZ25hdHVyZSBkw6l0YWNow6llIGRhbnMgJyVzJyA6ICVzIgogCi0jOiBncmVwLmM6MTYyMworIzogZ3JlcC5jOjE2OTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJzogdW5hYmxlIHRvIHJlYWQgJXMiCiBtc2dzdHIgIiclcycgOiBsZWN0dXJlIGRlICVzIGltcG9zc2libGUiCiAKLSM6IGdyZXAuYzoxNjQwCisjOiBncmVwLmM6MTcxMgogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnOiAlcyIKIG1zZ3N0ciAiJyVzJyA6ICVzIgogCi0jOiBncmVwLmM6MTY1MQorIzogZ3JlcC5jOjE3MjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJzogc2hvcnQgcmVhZCAlcyIKIG1zZ3N0ciAiJyVzJyA6IGxlY3R1cmUgdHJvbnF1w6llICVzIgogCi0jOiBoZWxwLmM6MjEyCisjOiBoZWxwLmM6MjEwCiAjLCBjLWZvcm1hdAogbXNnaWQgImF2YWlsYWJsZSBnaXQgY29tbWFuZHMgaW4gJyVzJyIKIG1zZ3N0ciAiY29tbWFuZGVzIGdpdCBkaXNwb25pYmxlcyBkYW5zICclcyciCiAKLSM6IGhlbHAuYzoyMTkKKyM6IGhlbHAuYzoyMTcKIG1zZ2lkICJnaXQgY29tbWFuZHMgYXZhaWxhYmxlIGZyb20gZWxzZXdoZXJlIG9uIHlvdXIgJFBBVEgiCiBtc2dzdHIgImNvbW1hbmRlcyBnaXQgZGlzcG9uaWJsZXMgZGVwdWlzIHVuIGF1dHJlIGVuZHJvaXQgZGUgdm90cmUgJFBBVEgiCiAKLSM6IGhlbHAuYzoyMzUKKyM6IGhlbHAuYzoyMzMKIG1zZ2lkICJUaGUgbW9zdCBjb21tb25seSB1c2VkIGdpdCBjb21tYW5kcyBhcmU6IgogbXNnc3RyICJMZXMgY29tbWFuZGVzIGdpdCBsZXMgcGx1cyB1dGlsaXPDqWVzIHNvbnQgOiIKIAotIzogaGVscC5jOjI5MgorIzogaGVscC5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiJyVzJyBhcHBlYXJzIHRvIGJlIGEgZ2l0IGNvbW1hbmQsIGJ1dCB3ZSB3ZXJlIG5vdFxuIgpAQCAtNTY4LDQ1ICs2MDcsNTUgQEAKICInJXMnIHNlbWJsZSDDqnRyZSB1bmUgY29tbWFuZGUgZ2l0LCBtYWlzIGVsbGUgbidhIHBhcyBwdVxuIgogIsOqdHJlIGV4w6ljdXTDqWUuIFBldXQtw6p0cmUgZ2l0LSVzIGVzdC1lbGxlIGNhc3PDqWUgPyIKIAotIzogaGVscC5jOjM0OQorIzogaGVscC5jOjM0NwogbXNnaWQgIlVoIG9oLiBZb3VyIHN5c3RlbSByZXBvcnRzIG5vIEdpdCBjb21tYW5kcyBhdCBhbGwuIgogbXNnc3RyICJBaGVtLiBWb3RyZSBzeXN0w6htZSBuJ2luZGlxdWUgYXVjdW5lIGNvbW1hbmRlIEdpdC4iCiAKLSM6IGhlbHAuYzozNzEKKyM6IGhlbHAuYzozNjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIldBUk5JTkc6IFlvdSBjYWxsZWQgYSBHaXQgY29tbWFuZCBuYW1lZCAnJXMnLCB3aGljaCBkb2VzIG5vdCBleGlzdC5cbiIKICJDb250aW51aW5nIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgeW91IG1lYW50ICclcyciCi1tc2dzdHIgIkFUVEVOVElPTiA6IHZvdXMgYXZleiBpbnZvcXXDqSB1bmUgY29tbWFuZGUgR2l0IG5vbW3DqWUgJyVzJyBxdWkgbidleGlzdGUgcGFzLlxuIgorbXNnc3RyICIiCisiQVRURU5USU9OIDogdm91cyBhdmV6IGludm9xdcOpIHVuZSBjb21tYW5kZSBHaXQgbm9tbcOpZSAnJXMnIHF1aSBuJ2V4aXN0ZSAiCisicGFzLlxuIgogIlBvdXJzdWl0ZSBlbiBzdXBwb3NhbnQgcXVlIHZvdXMgYXZleiB2b3VsdSBkaXJlICclcyciCiAKLSM6IGhlbHAuYzozNzYKKyM6IGhlbHAuYzozNzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW4gJTAuMWYgc2Vjb25kcyBhdXRvbWF0aWNhbGx5Li4uIgogbXNnc3RyICJkYW5zICUwLjFmIHNlY29uZGVzIGF1dG9tYXRpcXVlbWVudC4uLiIKIAotIzogaGVscC5jOjM4MworIzogaGVscC5jOjM4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQ6ICclcycgaXMgbm90IGEgZ2l0IGNvbW1hbmQuIFNlZSAnZ2l0IC0taGVscCcuIgogbXNnc3RyICJnaXQgOiAnJXMnIG4nZXN0IHBhcyB1bmUgY29tbWFuZGUgZ2l0LiBWb2lyICdnaXQgLS1oZWxwJy4iCiAKLSM6IGhlbHAuYzozODcKKyM6IGhlbHAuYzozODUgaGVscC5jOjQ0NAogbXNnaWQgIiIKICJcbiIKICJEaWQgeW91IG1lYW4gdGhpcz8iCiBtc2dpZF9wbHVyYWwgIiIKICJcbiIKICJEaWQgeW91IG1lYW4gb25lIG9mIHRoZXNlPyIKLW1zZ3N0clswXSAiXG4iCittc2dzdHJbMF0gIiIKKyJcbiIKICJWb3VsaWV6LXZvdXMgZGlyZSBjZWxhID8iCi1tc2dzdHJbMV0gIlxuVm91bGllei12b3VzIGRpcmUgdW4gZGUgY2V1eC1sw6AgPyIKK21zZ3N0clsxXSAiIgorIlxuIgorIlZvdWxpZXotdm91cyBkaXJlIHVuIGRlIGNldXgtbMOgID8iCisKKyM6IGhlbHAuYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIC0gJXMiCittc2dzdHIgIiVzOiAlcyAtICVzIgogCiAjOiBtZXJnZS5jOjU2CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGhlIGNhY2hlIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgbGUgY2FjaGUiCiAKLSM6IG1lcmdlLmM6MTEwIGJ1aWx0aW4vY2hlY2tvdXQuYzozNjUgYnVpbHRpbi9jaGVja291dC5jOjU2NgotIzogYnVpbHRpbi9jbG9uZS5jOjY0NQorIzogbWVyZ2UuYzoxMTAgYnVpbHRpbi9jaGVja291dC5jOjM1OCBidWlsdGluL2NoZWNrb3V0LmM6NTU5CisjOiBidWlsdGluL2Nsb25lLmM6NjU1CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICJpbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBub3V2ZWF1IGZpY2hpZXIgZCdpbmRleCIKIApAQCAtNjIwLDMwNiArNjY5LDQwNCBAQAogbXNnaWQgImFkZGluZm9fY2FjaGUgZmFpbGVkIGZvciBwYXRoICclcyciCiBtc2dzdHIgIsOpY2hlYyBkZSBhZGRpbmZvX2NhY2hlIHBvdXIgbGUgY2hlbWluICclcyciCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjI2OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjY5CiBtc2dpZCAiZXJyb3IgYnVpbGRpbmcgdHJlZXMiCiBtc2dzdHIgImVycmV1ciBkZSBjb25zdHJ1Y3Rpb24gZGVzIGFyYnJlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NjcyCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2NzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBwYXRoICclcyclcyIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkZSBjcsOpZXIgbGUgY2hlbWluICclcycgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY4MworIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njg0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nICVzIHRvIG1ha2Ugcm9vbSBmb3Igc3ViZGlyZWN0b3J5XG4iCiBtc2dzdHIgIlN1cHByZXNzaW9uIGRlICVzIHBvdXIgZmFpcmUgZGUgbGEgcGxhY2UgcG91ciBsZSBzb3VzLXLDqXBlcnRvaXJlXG4iCiAKICMuIHNvbWV0aGluZyBlbHNlIGV4aXN0cwogIy4gLi4gYnV0IG5vdCBzb21lIG90aGVyIGVycm9yICh3aG8gcmVhbGx5IGNhcmVzIHdoYXQ/KQotIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njk3IG1lcmdlLXJlY3Vyc2l2ZS5jOjcxOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njk4IG1lcmdlLXJlY3Vyc2l2ZS5jOjcxOQogbXNnaWQgIjogcGVyaGFwcyBhIEQvRiBjb25mbGljdD8iCiBtc2dzdHIgIjogcGV1dC3DqnRyZSB1biBjb25mbGl0IEQvRiA/IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3MDgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjcwOQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWZ1c2luZyB0byBsb3NlIHVudHJhY2tlZCBmaWxlIGF0ICclcyciCiBtc2dzdHIgInJlZnVzIGRlIHBlcmRyZSBsZSBmaWNoaWVyIG5vbiBzdWl2aSAnJXMnIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3NDgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCBvYmplY3QgJXMgJyVzJyIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlIGwnb2JqZXQgJXMgJyVzJyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzUwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmxvYiBleHBlY3RlZCBmb3IgJXMgJyVzJyIKIG1zZ3N0ciAiYmxvYiBhdHRlbmR1IHBvdXIgJXMgJyVzJyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzczIGJ1aWx0aW4vY2xvbmUuYzozMTMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc3NCBidWlsdGluL2Nsb25lLmM6MzExCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBvcGVuICclcyciCiBtc2dzdHIgIsOpY2hlYyDDoCBsJ291dmVydHVyZSBkZSAnJXMnIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc3ltbGluayAnJXMnIgogbXNnc3RyICLDqWNoZWMgw6AgbGEgY3LDqWF0aW9uIGR1IGxpZW4gc3ltYm9saXF1ZSAnJXMnIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJkbyBub3Qga25vdyB3aGF0IHRvIGRvIHdpdGggJTA2byAlcyAnJXMnIgogbXNnc3RyICJuZSBzYWl0IHBhcyB0cmFpdGVyICUwNm8gJXMgJyVzJyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTIyCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjMKIG1zZ2lkICJGYWlsZWQgdG8gZXhlY3V0ZSBpbnRlcm5hbCBtZXJnZSIKIG1zZ3N0ciAiw4ljaGVjIMOgIGwnZXjDqWN1dGlvbiBkZSBsYSBmdXNpb24gaW50ZXJuZSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTI2CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGFkZCAlcyB0byBkYXRhYmFzZSIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkJ2Fqb3V0ZXIgJXMgw6AgbGEgYmFzZSBkZSBkb25uw6llcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTQyCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5NDMKIG1zZ2lkICJ1bnN1cHBvcnRlZCBvYmplY3QgdHlwZSBpbiB0aGUgdHJlZSIKIG1zZ3N0ciAidHlwZSBkJ29iamV0IG5vbiBzdXBwb3J0w6kgZGFucyBsJ2FyYnJlIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDIxIG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMzUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjIgbWVyZ2UtcmVjdXJzaXZlLmM6MTAzNgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ09ORkxJQ1QgKCVzL2RlbGV0ZSk6ICVzIGRlbGV0ZWQgaW4gJXMgYW5kICVzIGluICVzLiBWZXJzaW9uICVzIG9mICVzIGxlZnQgIgogImluIHRyZWUuIgotbXNnc3RyICJDT05GTElUICglcy9zdXBwcmVzc2lvbikgOiAlcyBzdXBwcmltw6kgZGFucyAlcyBldCAlcyBkYW5zICVzLiBWZXJzaW9uICVzIGRlICVzIGxhaXNzw6llIGRhbnMgbCdhcmJyZS4iCittc2dzdHIgIiIKKyJDT05GTElUICglcy9zdXBwcmVzc2lvbikgOiAlcyBzdXBwcmltw6kgZGFucyAlcyBldCAlcyBkYW5zICVzLiBWZXJzaW9uICVzIGRlICIKKyIlcyBsYWlzc8OpZSBkYW5zIGwnYXJicmUuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDI3IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwNDAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjggbWVyZ2UtcmVjdXJzaXZlLmM6MTA0MQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ09ORkxJQ1QgKCVzL2RlbGV0ZSk6ICVzIGRlbGV0ZWQgaW4gJXMgYW5kICVzIGluICVzLiBWZXJzaW9uICVzIG9mICVzIGxlZnQgIgogImluIHRyZWUgYXQgJXMuIgotbXNnc3RyICJDT05GTElUICglcy9zdXBwcmVzc2lvbikgOiAlcyBzdXBwcmltw6kgZGFucyAlcyBldCAlcyBkYW5zICVzLiBWZXJzaW9uICVzIGRlICVzIGxhaXNzw6llIGRhbnMgbCdhcmJyZSBkYW5zIGxlIGZpY2hpZXIgJXMuIgorbXNnc3RyICIiCisiQ09ORkxJVCAoJXMvc3VwcHJlc3Npb24pIDogJXMgc3VwcHJpbcOpIGRhbnMgJXMgZXQgJXMgZGFucyAlcy4gVmVyc2lvbiAlcyBkZSAiCisiJXMgbGFpc3PDqWUgZGFucyBsJ2FyYnJlIGRhbnMgbGUgZmljaGllciAlcy4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODIKIG1zZ2lkICJyZW5hbWUiCiBtc2dzdHIgInJlbm9tbWFnZSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTA4MQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTA4MgogbXNnaWQgInJlbmFtZWQiCiBtc2dzdHIgInJlbm9tbcOpIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTM3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGlzIGEgZGlyZWN0b3J5IGluICVzIGFkZGluZyBhcyAlcyBpbnN0ZWFkIgogbXNnc3RyICIlcyBlc3QgdW4gcsOpcGVydG9pcmUgZGFucyAlcyBham91dMOpIHBsdXTDtHQgY29tbWUgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNTkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUIChyZW5hbWUvcmVuYW1lKTogUmVuYW1lIFwiJXNcIi0+XCIlc1wiIGluIGJyYW5jaCBcIiVzXCIgcmVuYW1lIFwiJXMiCiAiXCItPlwiJXNcIiBpbiBcIiVzXCIlcyIKLW1zZ3N0ciAiQ09ORkxJVCAocmVub21tYWdlL3Jlbm9tbWFnZSkgOiBSZW5vbW1hZ2UgZGUgXCIlc1wiLT5cIiVzXCIgZGFucyBsYSBicmFuY2hlIFwiJXNcIiBldCByZW5vbW1hZ2UgXCIlc1wiLT5cIiVzXCIgZGFucyBcIiVzXCIlcyIKK21zZ3N0ciAiIgorIkNPTkZMSVQgKHJlbm9tbWFnZS9yZW5vbW1hZ2UpIDogUmVub21tYWdlIGRlIFwiJXNcIi0+XCIlc1wiIGRhbnMgbGEgYnJhbmNoZSAiCisiXCIlc1wiIGV0IHJlbm9tbWFnZSBcIiVzXCItPlwiJXNcIiBkYW5zIFwiJXNcIiVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTY0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTY1CiBtc2dpZCAiIChsZWZ0IHVucmVzb2x2ZWQpIgogbXNnc3RyICIgKGxhaXNzw6kgbm9uIHLDqXNvbHUpIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjE4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUIChyZW5hbWUvcmVuYW1lKTogUmVuYW1lICVzLT4lcyBpbiAlcy4gUmVuYW1lICVzLT4lcyBpbiAlcyIKLW1zZ3N0ciAiQ09ORkxJVCAocmVub21tYWdlL3Jlbm9tbWFnZSkgOiByZW5vbW1hZ2UgJyVzJy0+JyVzJyBkYW5zICVzLiBSZW5vbW1hZ2UgJyVzJy0+JyVzJyBkYW5zICVzIgorbXNnc3RyICIiCisiQ09ORkxJVCAocmVub21tYWdlL3Jlbm9tbWFnZSkgOiByZW5vbW1hZ2UgJyVzJy0+JyVzJyBkYW5zICVzLiBSZW5vbW1hZ2UgJyVzJy0iCisiPiclcycgZGFucyAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTI0OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTI0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWluZyAlcyB0byAlcyBhbmQgJXMgdG8gJXMgaW5zdGVhZCIKIG1zZ3N0ciAiUmVub21tYWdlIGRlICVzIGVuICVzIGV0IGRlICVzIGVuICVzIMOgIGxhIHBsYWNlIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDQ3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUIChyZW5hbWUvYWRkKTogUmVuYW1lICVzLT4lcyBpbiAlcy4gJXMgYWRkZWQgaW4gJXMiCi1tc2dzdHIgIkNPTkZMSVQgKHJlbm9tbWFnZS9ham91dCkgOiBSZW5vbW1hZ2UgZGUgJXMtPiVzIGRhbnMgJXMuICVzIGFqb3V0w6kgZGFucyAlcyIKK21zZ3N0ciAiIgorIkNPTkZMSVQgKHJlbm9tbWFnZS9ham91dCkgOiBSZW5vbW1hZ2UgZGUgJXMtPiVzIGRhbnMgJXMuICVzIGFqb3V0w6kgZGFucyAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ1NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ1OAogIywgYy1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgbWVyZ2VkICVzIgogbXNnc3RyICJBam91dCBkZSAlcyBmdXNpb25uw6kiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NjIgbWVyZ2UtcmVjdXJzaXZlLmM6MTY2MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ2MyBtZXJnZS1yZWN1cnNpdmUuYzoxNjYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFkZGluZyBhcyAlcyBpbnN0ZWFkIgogbXNnc3RyICJBam91dCBwbHV0w7R0IGNvbW1lICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTEzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTE0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkIG9iamVjdCAlcyIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlIGwnb2JqZXQgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTYKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0ICVzIGlzIG5vdCBhIGJsb2IiCiBtc2dzdHIgImwnb2JqZXQgJXMgbidlc3QgcGFzIHVuIGJsb2IiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjUKIG1zZ2lkICJtb2RpZnkiCiBtc2dzdHIgIm1vZGlmaWNhdGlvbiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NQogbXNnaWQgIm1vZGlmaWVkIgogbXNnc3RyICJtb2RpZmnDqSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU3NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU3NQogbXNnaWQgImNvbnRlbnQiCiBtc2dzdHIgImNvbnRlbnUiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1ODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1ODIKIG1zZ2lkICJhZGQvYWRkIgogbXNnc3RyICJham91dC9ham91dCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJTa2lwcGVkICVzIChtZXJnZWQgc2FtZSBhcyBleGlzdGluZykiCi1tc2dzdHIgIiVzIGlnbm9yw6kgKGZ1c2lvbiBpZGVudGlxdWUgw6AgbCdleGlzdGFudCkiCittc2dzdHIgIiVzIHNhdXTDqSAoZnVzaW9uIGlkZW50aXF1ZSDDoCBsJ2V4aXN0YW50KSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYyOQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvLW1lcmdpbmcgJXMiCiBtc2dzdHIgIkZ1c2lvbiBhdXRvbWF0aXF1ZSBkZSAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMyBnaXQtc3VibW9kdWxlLnNoOjEwMjkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzQgZ2l0LXN1Ym1vZHVsZS5zaDoxMTI1CiBtc2dpZCAic3VibW9kdWxlIgogbXNnc3RyICJzb3VzLW1vZHVsZSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAoJXMpOiBNZXJnZSBjb25mbGljdCBpbiAlcyIKIG1zZ3N0ciAiQ09ORkxJVCAoJXMpIDogQ29uZmxpdCBkZSBmdXNpb24gZGFucyAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTcyNAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTcyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlcyIKIG1zZ3N0ciAiU3VwcHJlc3Npb24gZGUgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NDkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTAKIG1zZ2lkICJmaWxlL2RpcmVjdG9yeSIKIG1zZ3N0ciAiZmljaGllci9yw6lwZXJ0b2lyZSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NgogbXNnaWQgImRpcmVjdG9yeS9maWxlIgogbXNnc3RyICJyw6lwZXJ0b2lyZS9maWNoaWVyIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzYwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUICglcyk6IFRoZXJlIGlzIGEgZGlyZWN0b3J5IHdpdGggbmFtZSAlcyBpbiAlcy4gQWRkaW5nICVzIGFzICVzIgotbXNnc3RyICJDT05GTElUICglcykgOiBJbCB5IGEgdW4gcsOpcGVydG9pcmUgbm9tbcOpICVzIGRhbnMgJXMuIEFqb3V0IGRlICVzIGNvbW1lICVzIgorbXNnc3RyICIiCisiQ09ORkxJVCAoJXMpIDogSWwgeSBhIHVuIHLDqXBlcnRvaXJlIG5vbW3DqSAlcyBkYW5zICVzLiBBam91dCBkZSAlcyBjb21tZSAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc3MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgJXMiCiBtc2dzdHIgIkFqb3V0IGRlICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzg3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzg4CiBtc2dpZCAiRmF0YWwgbWVyZ2UgZmFpbHVyZSwgc2hvdWxkbid0IGhhcHBlbi4iCiBtc2dzdHIgIsOJY2hlYyBmYXRhbCBkZSBmdXNpb24sIHF1aSBuZSBkZXZyYWl0IGphbWFpcyBhcnJpdmVyLiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgwNgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgwNwogbXNnaWQgIkFscmVhZHkgdXAtdG8tZGF0ZSEiCiBtc2dzdHIgIkTDqWrDoCDDoCBqb3VyICEiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MTUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAibWVyZ2luZyBvZiB0cmVlcyAlcyBhbmQgJXMgZmFpbGVkIgogbXNnc3RyICLDqWNoZWMgZGUgZnVzaW9uIGRlcyBhcmJyZXMgJXMgZXQgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4NDUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4NDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5wcm9jZXNzZWQgcGF0aD8/PyAlcyIKIG1zZ3N0ciAiQ2hlbWluIG5vbiB0cmFpdMOpID8/PyAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg5MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg5MQogbXNnaWQgIk1lcmdpbmc6IgogbXNnc3RyICJGdXNpb24gOiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTkwMworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTkwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJmb3VuZCAldSBjb21tb24gYW5jZXN0b3I6IgogbXNnaWRfcGx1cmFsICJmb3VuZCAldSBjb21tb24gYW5jZXN0b3JzOiIKIG1zZ3N0clswXSAiJXUgYW5jw6p0cmUgY29tbXVuIHRyb3V2w6kgOiIKIG1zZ3N0clsxXSAiJXUgYW5jw6p0cmVzIGNvbW11bnMgdHJvdXbDqXMgOiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk0MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk0MQogbXNnaWQgIm1lcmdlIHJldHVybmVkIG5vIGNvbW1pdCIKIG1zZ3N0ciAibGEgZnVzaW9uIG4nYSBwYXMgcmV0b3VybsOpIGRlIGNvbW1pdCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk5NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2Ugb2JqZWN0ICclcyciCiBtc2dzdHIgIkltcG9zc2libGUgZCdhbmFseXNlciBsJ29iamV0ICclcyciCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjIwMDkgYnVpbHRpbi9tZXJnZS5jOjY1OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjAxMCBidWlsdGluL21lcmdlLmM6NjcyCiBtc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGluZGV4LiIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkJ8OpY3JpcmUgbCdpbmRleC4iCiAKLSM6IG9iamVjdC5jOjE5NQorIzogbm90ZXMtdXRpbHMuYzo0MAorbXNnaWQgIkNhbm5vdCBjb21taXQgdW5pbml0aWFsaXplZC91bnJlZmVyZW5jZWQgbm90ZXMgdHJlZSIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSB2YWxpZGVyIHVuIGFyYnJlIGRlIG5vdGVzIG5vbiBpbml0aWFsaXPDqS9yw6lmw6lyZW5jw6kiCisKKyM6IG5vdGVzLXV0aWxzLmM6ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG5vdGVzLnJld3JpdGVNb2RlIHZhbHVlOiAnJXMnIgorbXNnc3RyICJNYXV2YWlzZSB2YWxldXIgZGUgbm90ZXMucmV3cml0ZU1vZGUgOiAnJXMnIgorCisjOiBub3Rlcy11dGlscy5jOjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlJlZnVzaW5nIHRvIHJld3JpdGUgbm90ZXMgaW4gJXMgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIgorbXNnc3RyICJSZWZ1cyBkZSByw6nDqWNyaXJlIGRlcyBub3RlcyBkYW5zICVzIChob3JzIGRlIHJlZnMvbm90ZXMvKSIKKworIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKKyMuIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZQorIzogbm90ZXMtdXRpbHMuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkICVzIHZhbHVlOiAnJXMnIgorbXNnc3RyICJNYXV2YWlzZSB2YWxldXIgZGUgJXMgOiAnJXMnIgorCisjOiBvYmplY3QuYzoyMDIKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHBhcnNlIG9iamVjdDogJXMiCiBtc2dzdHIgImltcG9zc2libGUgZCdhbmFseXNlciBsJ29iamV0IDogJXMiCiAKLSM6IHBhcnNlLW9wdGlvbnMuYzo0ODkKKyM6IHBhcnNlLW9wdGlvbnMuYzo1MzcKIG1zZ2lkICIuLi4iCiBtc2dzdHIgIi4uLiIKIAotIzogcGFyc2Utb3B0aW9ucy5jOjUwNworIzogcGFyc2Utb3B0aW9ucy5jOjU1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2FnZTogJXMiCiBtc2dzdHIgInVzYWdlIDogJXMiCiAKICMuIFRSQU5TTEFUT1JTOiB0aGUgY29sb24gaGVyZSBzaG91bGQgYWxpZ24gd2l0aCB0aGUKICMuIG9uZSBpbiAidXNhZ2U6ICVzIiB0cmFuc2xhdGlvbgotIzogcGFyc2Utb3B0aW9ucy5jOjUxMQorIzogcGFyc2Utb3B0aW9ucy5jOjU1OQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICBvcjogJXMiCiBtc2dzdHIgIiAgIG91IDogJXMiCiAKLSM6IHBhcnNlLW9wdGlvbnMuYzo1MTQKKyM6IHBhcnNlLW9wdGlvbnMuYzo1NjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgICVzIgogbXNnc3RyICIgICAgJXMiCiAKLSM6IHBhcnNlLW9wdGlvbnMuYzo1NDgKKyM6IHBhcnNlLW9wdGlvbnMuYzo1OTYKIG1zZ2lkICItTlVNIgogbXNnc3RyICItTlVNIgogCi0jOiBwYXRoc3BlYy5jOjgzCisjOiBwYXRoc3BlYy5jOjExOAorbXNnaWQgImdsb2JhbCAnZ2xvYicgYW5kICdub2dsb2InIHBhdGhzcGVjIHNldHRpbmdzIGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgImxlcyByw6lnbGFnZXMgZGUgc3DDqWNpZmljYXRldXJzIGRlIGNoZW1pbiBnw6luw6lyYXV4ICdnbG9iJyBldCAnbm9nbG9iJyBzb250IGluY29tcGF0aWJsZXMiCisKKyM6IHBhdGhzcGVjLmM6MTI4Cittc2dpZCAiIgorImdsb2JhbCAnbGl0ZXJhbCcgcGF0aHNwZWMgc2V0dGluZyBpcyBpbmNvbXBhdGlibGUgd2l0aCBhbGwgb3RoZXIgZ2xvYmFsICIKKyJwYXRoc3BlYyBzZXR0aW5ncyIKK21zZ3N0ciAibGUgcsOpZ2xhZ2UgZ2xvYmFsIGRlIHNww6ljaWZpY2F0ZXVyIGRlIGNoZW1pbiAnbGl0ZXJhbCcgZXN0IGluY29tcGF0aWJsZSBhdmVjIHRvdXMgbGVzIGF1dHJlcyByw6lnbGFnZXMgZ2xvYmF1eCBkZSBzcMOpY2lmaWNhdGV1ciBkZSBjaGVtaW4iCisKKyM6IHBhdGhzcGVjLmM6MTU4Cittc2dpZCAiaW52YWxpZCBwYXJhbWV0ZXIgZm9yIHBhdGhzcGVjIG1hZ2ljICdwcmVmaXgnIgorbXNnc3RyICJwYXJhbcOodHJlIGludmFsaWRlIHBvdXIgbGUgc3DDqWNpZmljYXRldXIgbWFnaXF1ZSBkZSBjaGVtaW4gJ3ByZWZpeCciCisKKyM6IHBhdGhzcGVjLmM6MTY0CiAjLCBjLWZvcm1hdAotbXNnaWQgIlBhdGggJyVzJyBpcyBpbiBzdWJtb2R1bGUgJyUuKnMnIgorbXNnaWQgIkludmFsaWQgcGF0aHNwZWMgbWFnaWMgJyUuKnMnIGluICclcyciCittc2dzdHIgIkxhIHNww6ljaWZpY2F0aW9uIG1hZ2lxdWUgZGUgY2hlbWluICclLipzJyBlc3QgaW52YWxpZGUgZGFucyAnJXMnIgorCisjOiBwYXRoc3BlYy5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICJNaXNzaW5nICcpJyBhdCB0aGUgZW5kIG9mIHBhdGhzcGVjIG1hZ2ljIGluICclcyciCittc2dzdHIgIicpJyBtYW5xdWFudGUgw6AgbGEgZmluIGR1IHNww6ljaWZpY2F0ZXVyIG1hZ2lxdWUgZGUgY2hlbWluIGRhbnMgJyVzJyIKKworIzogcGF0aHNwZWMuYzoxODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5pbXBsZW1lbnRlZCBwYXRoc3BlYyBtYWdpYyAnJWMnIGluICclcyciCittc2dzdHIgIlNww6ljaWZpY2F0ZXVyIG1hZ2lxdWUgJyVjJyBub24gaW1wbMOpbWVudMOpIGRhbnMgJyVzJyIKKworIzogcGF0aHNwZWMuYzoyMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICdsaXRlcmFsJyBhbmQgJ2dsb2InIGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgIiVzIDogJ2xpdGVyYWwnIGV0ICdnbG9iJyBzb250IGluY29tcGF0aWJsZXMiCisKKyM6IHBhdGhzcGVjLmM6MjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJXMnIGlzIG91dHNpZGUgcmVwb3NpdG9yeSIKK21zZ3N0ciAiJXMgOiAnJXMnIGVzdCBob3JzIGR1IGTDqXDDtHQiCisKKyM6IHBhdGhzcGVjLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhdGhzcGVjICclcycgaXMgaW4gc3VibW9kdWxlICclLipzJyIKIG1zZ3N0ciAiTGUgY2hlbWluICclcycgZXN0IGRhbnMgbGUgc291cy1tb2R1bGUgJyUuKnMnIgogCi0jOiBwYXRoc3BlYy5jOjk5CisjLgorIy4gKiBXZSBtYXkgd2FudCB0byBzdWJzdGl0dXRlICJ0aGlzIGNvbW1hbmQiIHdpdGggYSBjb21tYW5kCisjLiAqIG5hbWUuIEUuZy4gd2hlbiBhZGQtLWludGVyYWN0aXZlIGRpZXMgd2hlbiBydW5uaW5nCisjLiAqICJjaGVja291dCAtcCIKKyMuCisjOiBwYXRoc3BlYy5jOjM0MAogIywgYy1mb3JtYXQKLW1zZ2lkICInJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCi1tc2dzdHIgIiclcycgZXN0IGF1IGRlbMOgIGQndW4gbGllbiBzeW1ib2xpcXVlIgorbXNnaWQgIiVzOiBwYXRoc3BlYyBtYWdpYyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgY29tbWFuZDogJXMiCittc2dzdHIgIiVzIDogbGUgc3DDqWNpZmljYXRldXIgbWFnaXF1ZSBkZSBjaGVtaW4gbidlc3QgcGFzIHN1cHBvcnTDqSBwYXIgY2V0dGUgY29tbWFuZGUgOiAlcyIKIAotIzogcmVtb3RlLmM6MTc4MQorIzogcGF0aHNwZWMuYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0aHNwZWMgJyVzJyBpcyBiZXlvbmQgYSBzeW1ib2xpYyBsaW5rIgorbXNnc3RyICJsZSBjaGVtaW4gJyVzJyBlc3QgYXUtZGVsw6AgZCd1biBsaWVuIHN5bWJvbGlxdWUiCisKKyM6IHJlbW90ZS5jOjE4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91ciBicmFuY2ggaXMgYmFzZWQgb24gJyVzJywgYnV0IHRoZSB1cHN0cmVhbSBpcyBnb25lLlxuIgorbXNnc3RyICJWb3RyZSBicmFuY2hlIGVzdCBiYXPDqWUgc3VyICclcycsIG1haXMgbGEgYnJhbmNoZSBhbW9udCBhIGRpc3BhcnUuXG4iCisKKyM6IHJlbW90ZS5jOjE4MzcKK21zZ2lkICIgICh1c2UgXCJnaXQgYnJhbmNoIC0tdW5zZXQtdXBzdHJlYW1cIiB0byBmaXh1cClcbiIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgYnJhbmNoIC11bnNldC11cHN0cmVhbVwiIHBvdXIgY29ycmlnZXIpXG4iCisKKyM6IHJlbW90ZS5jOjE4NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91ciBicmFuY2ggaXMgdXAtdG8tZGF0ZSB3aXRoICclcycuXG4iCittc2dzdHIgIlZvdHJlIGJyYW5jaGUgZXN0IMOgIGpvdXIgYXZlYyAnJXMnLlxuIgorCisjOiByZW1vdGUuYzoxODQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0LlxuIgogbXNnaWRfcGx1cmFsICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdHMuXG4iCiBtc2dzdHJbMF0gIlZvdHJlIGJyYW5jaGUgZXN0IGVuIGF2YW5jZSBzdXIgJyVzJyBkZSAlZCBjb21taXQuXG4iCiBtc2dzdHJbMV0gIlZvdHJlIGJyYW5jaGUgZXN0IGVuIGF2YW5jZSBzdXIgJyVzJyBkZSAlZCBjb21taXRzLlxuIgogCi0jOiByZW1vdGUuYzoxNzg3CisjOiByZW1vdGUuYzoxODUwCiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1c2hcIiB0byBwdWJsaXNoIHlvdXIgbG9jYWwgY29tbWl0cylcbiIKIG1zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcHVzaFwiIHBvdXIgcHVibGllciB2b3MgY29tbWl0cyBsb2NhdXgpXG4iCiAKLSM6IHJlbW90ZS5jOjE3OTAKKyM6IHJlbW90ZS5jOjE4NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91ciBicmFuY2ggaXMgYmVoaW5kICclcycgYnkgJWQgY29tbWl0LCBhbmQgY2FuIGJlIGZhc3QtZm9yd2FyZGVkLlxuIgogbXNnaWRfcGx1cmFsICIiCiAiWW91ciBicmFuY2ggaXMgYmVoaW5kICclcycgYnkgJWQgY29tbWl0cywgYW5kIGNhbiBiZSBmYXN0LWZvcndhcmRlZC5cbiIKLW1zZ3N0clswXSAiVm90cmUgYnJhbmNoZSBlc3QgZW4gcmV0YXJkIHN1ciAnJXMnIGRlICVkIGNvbW1pdCwgZXQgcGV1dCDDqnRyZSBtaXNlIMOgIGpvdXIgZW4gYXZhbmNlIHJhcGlkZS5cbiIKLW1zZ3N0clsxXSAiVm90cmUgYnJhbmNoZSBlc3QgZW4gcmV0YXJkIHN1ciAnJXMnIGRlICVkIGNvbW1pdHMsIGV0IHBldXQgw6p0cmUgbWlzZSDDoCBqb3VyIGVuIGF2YW5jZSByYXBpZGUuXG4iCittc2dzdHJbMF0gIiIKKyJWb3RyZSBicmFuY2hlIGVzdCBlbiByZXRhcmQgc3VyICclcycgZGUgJWQgY29tbWl0LCBldCBwZXV0IMOqdHJlIG1pc2Ugw6Agam91ciAiCisiZW4gYXZhbmNlIHJhcGlkZS5cbiIKK21zZ3N0clsxXSAiIgorIlZvdHJlIGJyYW5jaGUgZXN0IGVuIHJldGFyZCBzdXIgJyVzJyBkZSAlZCBjb21taXRzLCBldCBwZXV0IMOqdHJlIG1pc2Ugw6Agam91ciAiCisiZW4gYXZhbmNlIHJhcGlkZS5cbiIKIAotIzogcmVtb3RlLmM6MTc5OAorIzogcmVtb3RlLmM6MTg2MQogbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gdXBkYXRlIHlvdXIgbG9jYWwgYnJhbmNoKVxuIgogbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBwdWxsXCIgcG91ciBtZXR0cmUgw6Agam91ciB2b3RyZSBicmFuY2hlIGxvY2FsZSlcbiIKIAotIzogcmVtb3RlLmM6MTgwMQorIzogcmVtb3RlLmM6MTg2NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91ciBicmFuY2ggYW5kICclcycgaGF2ZSBkaXZlcmdlZCxcbiIKQEAgLTkyNywyMyArMTA3NCwzNSBAQAogbXNnaWRfcGx1cmFsICIiCiAiWW91ciBicmFuY2ggYW5kICclcycgaGF2ZSBkaXZlcmdlZCxcbiIKICJhbmQgaGF2ZSAlZCBhbmQgJWQgZGlmZmVyZW50IGNvbW1pdHMgZWFjaCwgcmVzcGVjdGl2ZWx5LlxuIgotbXNnc3RyWzBdICJWb3RyZSBicmFuY2hlIGV0ICclcycgb250IGRpdmVyZ8OpLFxuIgorbXNnc3RyWzBdICIiCisiVm90cmUgYnJhbmNoZSBldCAnJXMnIG9udCBkaXZlcmfDqSxcbiIKICJldCBvbnQgJWQgZXQgJWQgY29tbWl0IGRpZmbDqXJlbnQgY2hhY3VuZSByZXNwZWN0aXZlbWVudC5cbiIKLW1zZ3N0clsxXSAiVm90cmUgYnJhbmNoZSBldCAnJXMnIG9udCBkaXZlcmfDqSxcbiIKK21zZ3N0clsxXSAiIgorIlZvdHJlIGJyYW5jaGUgZXQgJyVzJyBvbnQgZGl2ZXJnw6ksXG4iCiAiZXQgb250ICVkIGV0ICVkIGNvbW1pdHMgZGlmZsOpcmVudHMgY2hhY3VuZSByZXNwZWN0aXZlbWVudC5cbiIKIAotIzogcmVtb3RlLmM6MTgxMQorIzogcmVtb3RlLmM6MTg3NAogbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gbWVyZ2UgdGhlIHJlbW90ZSBicmFuY2ggaW50byB5b3VycylcbiIKLW1zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcHVsbFwiIHBvdXIgZnVzaW9ubmVyIGxhIGJyYW5jaGUgZGlzdGFudGUgZGFucyBsYSB2w7R0cmUpXG4iCittc2dzdHIgIiIKKyIgICh1dGlsaXNleiBcImdpdCBwdWxsXCIgcG91ciBmdXNpb25uZXIgbGEgYnJhbmNoZSBkaXN0YW50ZSBkYW5zIGxhIHbDtHRyZSlcbiIKIAotIzogc2VxdWVuY2VyLmM6MjA2IGJ1aWx0aW4vbWVyZ2UuYzo3NzYgYnVpbHRpbi9tZXJnZS5jOjg4OSBidWlsdGluL21lcmdlLmM6OTk5Ci0jOiBidWlsdGluL21lcmdlLmM6MTAwOQorIzogcnVuLWNvbW1hbmQuYzo4MAorbXNnaWQgIm9wZW4gL2Rldi9udWxsIGZhaWxlZCIKK21zZ3N0ciAiw6ljaGVjIGRlIGwnb3V2ZXJ0dXJlIGRlIC9kZXYvbnVsbCIKKworIzogcnVuLWNvbW1hbmQuYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJkdXAyKCVkLCVkKSBmYWlsZWQiCittc2dzdHIgIsOpY2hlYyBkZSBkdXAyKCVkLCVkKSIKKworIzogc2VxdWVuY2VyLmM6MjA2IGJ1aWx0aW4vbWVyZ2UuYzo3OTAgYnVpbHRpbi9tZXJnZS5jOjkwMworIzogYnVpbHRpbi9tZXJnZS5jOjEwMTMgYnVpbHRpbi9tZXJnZS5jOjEwMjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZyIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkJ291dnJpciAnJXMnIGVuIMOpY3JpdHVyZSIKIAotIzogc2VxdWVuY2VyLmM6MjA4IGJ1aWx0aW4vbWVyZ2UuYzozMzUgYnVpbHRpbi9tZXJnZS5jOjc3OQotIzogYnVpbHRpbi9tZXJnZS5jOjEwMDEgYnVpbHRpbi9tZXJnZS5jOjEwMTQKKyM6IHNlcXVlbmNlci5jOjIwOCBidWlsdGluL21lcmdlLmM6MzUwIGJ1aWx0aW4vbWVyZ2UuYzo3OTMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDE1IGJ1aWx0aW4vbWVyZ2UuYzoxMDI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSB0byAnJXMnIgogbXNnc3RyICJJbXBvc3NpYmxlIGQnw6ljcmlyZSBkYW5zICclcyciCkBAIC05NTIsNyArMTExMSw4IEBACiBtc2dpZCAiIgogImFmdGVyIHJlc29sdmluZyB0aGUgY29uZmxpY3RzLCBtYXJrIHRoZSBjb3JyZWN0ZWQgcGF0aHNcbiIKICJ3aXRoICdnaXQgYWRkIDxwYXRocz4nIG9yICdnaXQgcm0gPHBhdGhzPiciCi1tc2dzdHIgImFwcsOocyByw6lzb2x1dGlvbiBkZXMgY29uZmxpdHMsIG1hcnF1ZXogbGVzIGNoZW1pbnMgY29ycmlnw6lzXG4iCittc2dzdHIgIiIKKyJhcHLDqHMgcsOpc29sdXRpb24gZGVzIGNvbmZsaXRzLCBtYXJxdWV6IGxlcyBjaGVtaW5zIGNvcnJpZ8Opc1xuIgogImF2ZWMgJ2dpdCBhZGQgPGNoZW1pbnM+JyBvdSAnZ2l0IHJtIDxjaGVtaW5zPiciCiAKICM6IHNlcXVlbmNlci5jOjIzMgpAQCAtOTY1LDcgKzExMjUsNyBAQAogImF2ZWMgJ2dpdCBhZGQgPGNoZW1pbnM+JyBvdSAnZ2l0IHJtIDxjaGVtaW5zPidcbiIKICJwdWlzIHZhbGlkZXogbGUgcsOpc3VsdGF0IGF2ZWMgJ2dpdCBjb21taXQnIgogCi0jOiBzZXF1ZW5jZXIuYzoyNDUgc2VxdWVuY2VyLmM6ODU5IHNlcXVlbmNlci5jOjk0MgorIzogc2VxdWVuY2VyLmM6MjQ1IHNlcXVlbmNlci5jOjg3MCBzZXF1ZW5jZXIuYzo5NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIHRvICVzIgogbXNnc3RyICJJbXBvc3NpYmxlIGQnw6ljcmlyZSBkYW5zICVzIgpAQCAtOTg1LDYzMyArMTE0NSw4MDIgQEAKIAogIzogc2VxdWVuY2VyLmM6MjY4CiBtc2dpZCAiQ29tbWl0IHlvdXIgY2hhbmdlcyBvciBzdGFzaCB0aGVtIHRvIHByb2NlZWQuIgotbXNnc3RyICJWYWxpZGV6IHZvcyBtb2RpZmljYXRpb25zIG91IHJlbWlzZXotbGVzIHBvdXIgY29udGludWVyLiIKK21zZ3N0ciAiVmFsaWRleiB2b3MgbW9kaWZpY2F0aW9ucyBvdSBsZXMgcmVtaXNlciBwb3VyIGNvbnRpbnVlci4iCiAKICMuIFRSQU5TTEFUT1JTOiAlcyB3aWxsIGJlICJyZXZlcnQiIG9yICJjaGVycnktcGljayIKLSM6IHNlcXVlbmNlci5jOjMxOQorIzogc2VxdWVuY2VyLmM6MzI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIiVzOiBJbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBub3V2ZWF1IGZpY2hpZXIgaW5kZXgiCiAKLSM6IHNlcXVlbmNlci5jOjM1MAorIzogc2VxdWVuY2VyLmM6MzU2CiBtc2dpZCAiQ291bGQgbm90IHJlc29sdmUgSEVBRCBjb21taXRcbiIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSByw6lzb3VkcmUgbGUgY29tbWl0IEhFQURcbiIKIAotIzogc2VxdWVuY2VyLmM6MzcxCisjOiBzZXF1ZW5jZXIuYzozNzgKIG1zZ2lkICJVbmFibGUgdG8gdXBkYXRlIGNhY2hlIHRyZWVcbiIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSBtZXR0cmUgw6Agam91ciBsJ2FyYnJlIGRlIGNhY2hlXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQxNgorIzogc2VxdWVuY2VyLmM6NDIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBjb21taXQgJXNcbiIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIGNvbW1pdCAlc1xuIgogCi0jOiBzZXF1ZW5jZXIuYzo0MjEKKyM6IHNlcXVlbmNlci5jOjQyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgcGFyZW50IGNvbW1pdCAlc1xuIgogbXNnc3RyICJJbXBvc3NpYmxlIGQnYW5hbHlzZXIgbGUgY29tbWl0IHBhcmVudCAlc1xuIgogCi0jOiBzZXF1ZW5jZXIuYzo0ODcKKyM6IHNlcXVlbmNlci5jOjQ5NAogbXNnaWQgIllvdXIgaW5kZXggZmlsZSBpcyB1bm1lcmdlZC4iCiBtc2dzdHIgIlZvdHJlIGZpY2hpZXIgZCdpbmRleCBuJ2VzdCBwYXMgZnVzaW9ubsOpLiIKIAotIzogc2VxdWVuY2VyLmM6NTA2CisjOiBzZXF1ZW5jZXIuYzo1MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGlzIGEgbWVyZ2UgYnV0IG5vIC1tIG9wdGlvbiB3YXMgZ2l2ZW4uIgogbXNnc3RyICJMZSBjb21taXQgJXMgZXN0IHVuZSBmdXNpb24gbWFpcyBsJ29wdGlvbiAtbSBuJ2EgcGFzIMOpdMOpIHNww6ljaWZpw6llLiIKIAotIzogc2VxdWVuY2VyLmM6NTE0CisjOiBzZXF1ZW5jZXIuYzo1MjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGRvZXMgbm90IGhhdmUgcGFyZW50ICVkIgogbXNnc3RyICJMZSBjb21taXQgJXMgbidhIHBhcyBsZSBwYXJlbnQgJWQiCiAKLSM6IHNlcXVlbmNlci5jOjUxOAorIzogc2VxdWVuY2VyLmM6NTI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1haW5saW5lIHdhcyBzcGVjaWZpZWQgYnV0IGNvbW1pdCAlcyBpcyBub3QgYSBtZXJnZS4iCi1tc2dzdHIgIlVuZSBicmFuY2hlIHByaW5jaXBhbGUgYSDDqXTDqSBzcMOpY2lmacOpZSBtYWlzIGxlIGNvbW1pdCAlcyBuJ2VzdCBwYXMgdW5lIGZ1c2lvbi4iCittc2dzdHIgIiIKKyJVbmUgYnJhbmNoZSBwcmluY2lwYWxlIGEgw6l0w6kgc3DDqWNpZmnDqWUgbWFpcyBsZSBjb21taXQgJXMgbidlc3QgcGFzIHVuZSAiCisiZnVzaW9uLiIKIAogIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyB3aWxsIGJlICJyZXZlcnQiIG9yCiAjLiAiY2hlcnJ5LXBpY2siLCB0aGUgc2Vjb25kICVzIGEgU0hBMQotIzogc2VxdWVuY2VyLmM6NTMxCisjOiBzZXF1ZW5jZXIuYzo1MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbm5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzIgogbXNnc3RyICIlcyA6IGltcG9zc2libGUgZCdhbmFseXNlciBsZSBjb21taXQgcGFyZW50ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo1MzUKKyM6IHNlcXVlbmNlci5jOjU0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZ2V0IGNvbW1pdCBtZXNzYWdlIGZvciAlcyIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkJ29idGVuaXIgdW4gbWVzc2FnZSBkZSB2YWxpZGF0aW9uIHBvdXIgJXMiCiAKLSM6IHNlcXVlbmNlci5jOjYyMQorIzogc2VxdWVuY2VyLmM6NjI4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZXZlcnQgJXMuLi4gJXMiCiBtc2dzdHIgImltcG9zc2libGUgZCdhbm51bGVyICVzLi4uICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo2MjIKKyM6IHNlcXVlbmNlci5jOjYyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgYXBwbHkgJXMuLi4gJXMiCiBtc2dzdHIgImltcG9zc2libGUgZCdhcHBsaXF1ZXIgJXMuLi4gJXMiCiAKLSM6IHNlcXVlbmNlci5jOjY1NAorIzogc2VxdWVuY2VyLmM6NjY1CiBtc2dpZCAiZW1wdHkgY29tbWl0IHNldCBwYXNzZWQiCi1tc2dzdHIgImwnZW5zZW1ibGUgZGUgY29tbWl0cyBzcMOpZmljaWZpw6kgZXN0IHZpZGUiCittc2dzdHIgImwnZW5zZW1ibGUgZGUgY29tbWl0cyBzcMOpY2lmacOpIGVzdCB2aWRlIgogCi0jOiBzZXF1ZW5jZXIuYzo2NjIKKyM6IHNlcXVlbmNlci5jOjY3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWFkIHRoZSBpbmRleCIKIG1zZ3N0ciAiZ2l0ICVzIDogw6ljaGVjIMOgIGxhIGxlY3R1cmUgZGUgbCdpbmRleCIKIAotIzogc2VxdWVuY2VyLmM6NjY3CisjOiBzZXF1ZW5jZXIuYzo2NzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0ICVzOiBmYWlsZWQgdG8gcmVmcmVzaCB0aGUgaW5kZXgiCi1tc2dzdHIgImdpdCAlcyA6IMOpY2hlYyBkdSByYWZmcmHDrmNoaXNzZW1lbnQgZGUgbCdpbmRleCIKK21zZ3N0ciAiZ2l0ICVzIDogw6ljaGVjIGR1IHJhZnJhw65jaGlzc2VtZW50IGRlIGwnaW5kZXgiCiAKLSM6IHNlcXVlbmNlci5jOjcyNQorIzogc2VxdWVuY2VyLmM6NzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCAlcyBkdXJpbmcgYSAlcyIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSAlcyBwZW5kYW50IHVuICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo3NDcKKyM6IHNlcXVlbmNlci5jOjc1OAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgbGluZSAlZC4iCiBtc2dzdHIgIkltcG9zc2libGUgZCdhbmFseXNlciBsYSBsaWduZSAlZC4iCiAKLSM6IHNlcXVlbmNlci5jOjc1MgorIzogc2VxdWVuY2VyLmM6NzYzCiBtc2dpZCAiTm8gY29tbWl0cyBwYXJzZWQuIgogbXNnc3RyICJBdWN1biBjb21taXQgYW5hbHlzw6kuIgogCi0jOiBzZXF1ZW5jZXIuYzo3NjUKKyM6IHNlcXVlbmNlci5jOjc3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgb3BlbiAlcyIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkJ291dnJpciAlcyIKIAotIzogc2VxdWVuY2VyLmM6NzY5CisjOiBzZXF1ZW5jZXIuYzo3ODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgJXMuIgogbXNnc3RyICJJbXBvc3NpYmxlIGRlIGxpcmUgJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzo3NzYKKyM6IHNlcXVlbmNlci5jOjc4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnVzYWJsZSBpbnN0cnVjdGlvbiBzaGVldDogJXMiCiBtc2dzdHIgIkZldWlsbGUgZCdpbnN0cnVjdGlvbiBpbnV0aWxpc2FibGUgOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODA0CisjOiBzZXF1ZW5jZXIuYzo4MTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBrZXk6ICVzIgogbXNnc3RyICJDbMOpIGludmFsaWRlOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODA3CisjOiBzZXF1ZW5jZXIuYzo4MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCB2YWx1ZSBmb3IgJXM6ICVzIgogbXNnc3RyICJWYWxldXIgaW52YWxpZGUgcG91ciAlcyA6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MTkKKyM6IHNlcXVlbmNlci5jOjgzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgb3B0aW9ucyBzaGVldDogJXMiCiBtc2dzdHIgIkZldWlsbGUgZCdvcHRpb25zIG1hbGZvcm3DqWUgOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODQwCisjOiBzZXF1ZW5jZXIuYzo4NTEKIG1zZ2lkICJhIGNoZXJyeS1waWNrIG9yIHJldmVydCBpcyBhbHJlYWR5IGluIHByb2dyZXNzIgogbXNnc3RyICJ1biBwaWNvcmFnZSBvdSB1biByZXRvdXIgZXN0IGTDqWrDoCBlbiBjb3VycyIKIAotIzogc2VxdWVuY2VyLmM6ODQxCisjOiBzZXF1ZW5jZXIuYzo4NTIKIG1zZ2lkICJ0cnkgXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogbXNnc3RyICJlc3NheWV6IFwiZ2l0IGNoZXJyeS1waWNrICgtLWNvbnRpbnVlfC0tcXVpdHwtLSBhYm9ydClcIiIKIAotIzogc2VxdWVuY2VyLmM6ODQ1CisjOiBzZXF1ZW5jZXIuYzo4NTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBzZXF1ZW5jZXIgZGlyZWN0b3J5ICVzIgogbXNnc3RyICJJbXBvc3NpYmxlIGRlIGNyw6llciBsZSByw6lwZXJ0b2lyZSBkZSBzw6lxdWVuY2V1ciAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODYxIHNlcXVlbmNlci5jOjk0NgorIzogc2VxdWVuY2VyLmM6ODcyIHNlcXVlbmNlci5jOjk1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJFcnJvciB3cmFwcGluZyB1cCAlcy4iCiBtc2dzdHIgIkVycmV1ciBsb3JzIGRlIGwnZW1iYWxsYWdlIGRlICVzLiIKIAotIzogc2VxdWVuY2VyLmM6ODgwIHNlcXVlbmNlci5jOjEwMTQKKyM6IHNlcXVlbmNlci5jOjg5MSBzZXF1ZW5jZXIuYzoxMDI1CiBtc2dpZCAibm8gY2hlcnJ5LXBpY2sgb3IgcmV2ZXJ0IGluIHByb2dyZXNzIgogbXNnc3RyICJhdWN1biBwaWNvcmFnZSBvdSByZXRvdXIgZW4gY291cnMiCiAKLSM6IHNlcXVlbmNlci5jOjg4MgorIzogc2VxdWVuY2VyLmM6ODkzCiBtc2dpZCAiY2Fubm90IHJlc29sdmUgSEVBRCIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkZSByw6lzb3VkcmUgSEVBRCIKIAotIzogc2VxdWVuY2VyLmM6ODg0CisjOiBzZXF1ZW5jZXIuYzo4OTUKIG1zZ2lkICJjYW5ub3QgYWJvcnQgZnJvbSBhIGJyYW5jaCB5ZXQgdG8gYmUgYm9ybiIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FiYW5kb25uZXIgZGVwdWlzIHVuZSBicmFuY2hlIG5vbiBlbmNvcmUgY3LDqcOpZSIKIAotIzogc2VxdWVuY2VyLmM6OTA2IGJ1aWx0aW4vYXBwbHkuYzo0MDYwCisjOiBzZXF1ZW5jZXIuYzo5MTcgYnVpbHRpbi9hcHBseS5jOjQwNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzIgogbXNnc3RyICJpbXBvc3NpYmxlIGQnb3V2cmlyICVzIDogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjkwOQorIzogc2VxdWVuY2VyLmM6OTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICVzOiAlcyIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlICVzIDogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjkxMAorIzogc2VxdWVuY2VyLmM6OTIxCiBtc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSIKIG1zZ3N0ciAiZmluIGRlIGZpY2hpZXIgaW5hdHRlbmR1ZSIKIAotIzogc2VxdWVuY2VyLmM6OTE2CisjOiBzZXF1ZW5jZXIuYzo5MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAic3RvcmVkIHByZS1jaGVycnktcGljayBIRUFEIGZpbGUgJyVzJyBpcyBjb3JydXB0IgogbXNnc3RyICJsZSBmaWNoaWVyIEhFQUQgZGUgcHLDqXBhcmF0aW9uIGRlIHBpY29yYWdlICclcycgZXN0IGNvcnJvbXB1IgogCi0jOiBzZXF1ZW5jZXIuYzo5MzkKKyM6IHNlcXVlbmNlci5jOjk1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZm9ybWF0ICVzLiIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSBmb3JtYXRlciAlcy4iCiAKLSM6IHNlcXVlbmNlci5jOjEwODMKKyM6IHNlcXVlbmNlci5jOjEwOTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbid0IGNoZXJyeS1waWNrIGEgJXMiCiBtc2dzdHIgIiVzIDogaW1wb3NzaWJsZSBkZSBwaWNvcmVyIHVuICVzIgogCi0jOiBzZXF1ZW5jZXIuYzoxMDg1CisjOiBzZXF1ZW5jZXIuYzoxMDk2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBiYWQgcmV2aXNpb24iCiBtc2dzdHIgIiVzIDogbWF1dmFpc2UgcsOpdmlzaW9uIgogCi0jOiBzZXF1ZW5jZXIuYzoxMTE5CisjOiBzZXF1ZW5jZXIuYzoxMTMwCiBtc2dpZCAiQ2FuJ3QgcmV2ZXJ0IGFzIGluaXRpYWwgY29tbWl0IgogbXNnc3RyICJJbXBvc3NpYmxlIGQnYW5udWxlciBlbiB0YW50IHF1ZSBjb21taXQgaW5pdGlhbCIKIAotIzogc2VxdWVuY2VyLmM6MTEyMAorIzogc2VxdWVuY2VyLmM6MTEzMQogbXNnaWQgIkNhbid0IGNoZXJyeS1waWNrIGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSBwaWNvcmVyIHZlcnMgdW5lIEhFQUQgdmlkZSIKIAotIzogc2hhMV9uYW1lLmM6MTAzNgorIzogc2hhMV9uYW1lLmM6NDQwCittc2dpZCAiIgorIkdpdCBub3JtYWxseSBuZXZlciBjcmVhdGVzIGEgcmVmIHRoYXQgZW5kcyB3aXRoIDQwIGhleCBjaGFyYWN0ZXJzXG4iCisiYmVjYXVzZSBpdCB3aWxsIGJlIGlnbm9yZWQgd2hlbiB5b3UganVzdCBzcGVjaWZ5IDQwLWhleC4gVGhlc2UgcmVmc1xuIgorIm1heSBiZSBjcmVhdGVkIGJ5IG1pc3Rha2UuIEZvciBleGFtcGxlLFxuIgorIlxuIgorIiAgZ2l0IGNoZWNrb3V0IC1iICRiciAkKGdpdCByZXYtcGFyc2UgLi4uKVxuIgorIlxuIgorIndoZXJlIFwiJGJyXCIgaXMgc29tZWhvdyBlbXB0eSBhbmQgYSA0MC1oZXggcmVmIGlzIGNyZWF0ZWQuIFBsZWFzZVxuIgorImV4YW1pbmUgdGhlc2UgcmVmcyBhbmQgbWF5YmUgZGVsZXRlIHRoZW0uIFR1cm4gdGhpcyBtZXNzYWdlIG9mZiBieVxuIgorInJ1bm5pbmcgXCJnaXQgY29uZmlnIGFkdmljZS5vYmplY3ROYW1lV2FybmluZyBmYWxzZVwiIgorbXNnc3RyICIiCisiR2l0IG5lIGNyw6nDqSBub3JtYWxlbWVudCBqYW1haXMgZGUgcsOpZsOpcmVuY2UgcXVpIHNlIHRlcm1pbmUgcGFyIDQwIGNhcmFjdMOocmVzICIKKyJoZXhhXG4iCisiY2FyIGVsbGUgc2VyYWl0IGlnbm9yw6llIHNpIHZvdXMgc3DDqWNpZmlpZXogNDAtaGV4YS4gQ2VzIHLDqWbDqXJlbmNlc1xuIgorInBldXZlbnQgw6p0cmUgY3LDqcOpZXMgcGFyIGVycmV1ci4gUGFyIGV4ZW1wbGUsXG4iCisiXG4iCisiICBnaXQgY2hlY2tvdXQgLWIgJGJyICQoZ2l0IHJldi1wYXJzZSAuLi4pXG4iCisiXG4iCisib8O5IFwiJGJyXCIgZXN0IGQndW5lIG1hbmnDqHJlIG91IGQndW5lIGF1dHJlIHZpZGUgZXQgdW5lIHLDqWbDqXJlbmNlIDQwLWhleGEgIgorImVzdCBjcsOpw6llLlxuIgorIlZldWlsbGV6IGV4YW1pbmVyIGNlcyByw6lmw6lyZW5jZXMgZXQgcGV1dC3DqnRyZSBsZXMgc3VwcHJpbWVyLiBEw6lzYWN0aXZleiBjZSAiCisibWVzc2FnZVxuIgorImVuIGxhbsOnYW50IFwiZ2l0IGNvbmZpZyBhZHZpY2Uub2JqZWN0TmFtZVdhcm5pbmcgZmFsc2VcIiIKKworIzogc2hhMV9uYW1lLmM6MTExMgogbXNnaWQgIkhFQUQgZG9lcyBub3QgcG9pbnQgdG8gYSBicmFuY2giCiBtc2dzdHIgIkhFQUQgbmUgcG9pbnRlIHBhcyBzdXIgdW5lIGJyYW5jaGUiCiAKLSM6IHNoYTFfbmFtZS5jOjEwMzkKKyM6IHNoYTFfbmFtZS5jOjExMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gc3VjaCBicmFuY2g6ICclcyciCiBtc2dzdHIgIkJyYW5jaGUgaW5jb25udWUgOiAnJXMnIgogCi0jOiBzaGExX25hbWUuYzoxMDQxCisjOiBzaGExX25hbWUuYzoxMTE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAnJXMnIgogbXNnc3RyICJBdWN1bmUgYnJhbmNoZSBhbW9udCBjb25maWd1csOpZSBwb3VyIGxhIGJyYW5jaGUgJyVzJyIKIAotIzogc2hhMV9uYW1lLmM6MTA0NAorIzogc2hhMV9uYW1lLmM6MTEyMQogIywgYy1mb3JtYXQKIG1zZ2lkICJVcHN0cmVhbSBicmFuY2ggJyVzJyBub3Qgc3RvcmVkIGFzIGEgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCIKIG1zZ3N0ciAiTGEgYnJhbmNoZSBhbW9udCAnJXMnIG4nZXN0IHBhcyBzdG9ja8OpZSBjb21tZSBicmFuY2hlIGRlIHN1aXZpIgogCi0jOiB3cmFwcGVyLmM6NDA4CisjOiBzdWJtb2R1bGUuYzo2NCBzdWJtb2R1bGUuYzo5OAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdW5tZXJnZWQgLmdpdG1vZHVsZXMsIHJlc29sdmUgbWVyZ2UgY29uZmxpY3RzIGZpcnN0IgorbXNnc3RyICJNb2RpZmljYXRpb24gaW1wb3NzaWJsZSBkZSAuZ2l0bW9kdWxlcyBub24gZnVzaW9ubsOpLCByw6lzb2x2ZXogbGVzIGNvbmZsaXRzIGQnYWJvcmQiCisKKyM6IHN1Ym1vZHVsZS5jOjY4IHN1Ym1vZHVsZS5jOjEwMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZmluZCBzZWN0aW9uIGluIC5naXRtb2R1bGVzIHdoZXJlIHBhdGg9JXMiCittc2dzdHIgIkltcG9zc2libGUgZGUgdHJvdXZlciB1bmUgc2VjdGlvbiBvw7kgcGF0aD0lcyBkYW5zIC5naXRtb2R1bGVzIgorCisjLiBNYXliZSB0aGUgdXNlciBhbHJlYWR5IGRpZCB0aGF0LCBkb24ndCBlcnJvciBvdXQgaGVyZQorIzogc3VibW9kdWxlLmM6NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHVwZGF0ZSAuZ2l0bW9kdWxlcyBlbnRyeSAlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBtZXR0cmUgw6Agam91ciBsJ8OpbMOpbWVudCAlcyBkZSAuZ2l0bW9kdWxlcyIKKworIyBpY2kgJXMgZXN0IHVuIGNoZW1pbgorIy4gTWF5YmUgdGhlIHVzZXIgYWxyZWFkeSBkaWQgdGhhdCwgZG9uJ3QgZXJyb3Igb3V0IGhlcmUKKyM6IHN1Ym1vZHVsZS5jOjEwOQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgcmVtb3ZlIC5naXRtb2R1bGVzIGVudHJ5IGZvciAlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBzdXBwcmltZXIgbCfDqWzDqW1lbnQgZGUgLmdpdG1vZHVsZXMgcG91ciAlcyIKKworIzogc3VibW9kdWxlLmM6MTI3Cittc2dpZCAiY291bGQgbm90IGZpbmQgLmdpdG1vZHVsZXMgaW4gaW5kZXgiCittc2dzdHIgImltcG9zc2libGUgZGUgdHJvdXZlciAuZ2l0bW9kdWxlcyBkYW5zIGwnaW5kZXgiCisKKyM6IHN1Ym1vZHVsZS5jOjEzMworbXNnaWQgInJlYWRpbmcgdXBkYXRlZCAuZ2l0bW9kdWxlcyBmYWlsZWQiCittc2dzdHIgIsOpY2hlYyBkZSBsYSBsZWN0dXJlIGR1IC5naXRtb2R1bGVzIG1pcyDDoCBqb3VyIgorCisjOiBzdWJtb2R1bGUuYzoxMzUKK21zZ2lkICJ1bmFibGUgdG8gc3RhdCB1cGRhdGVkIC5naXRtb2R1bGVzIgorbXNnc3RyICLDqWNoZWMgZGUgc3RhdCBkdSAuZ2l0bW9kdWxlcyBtaXMgw6Agam91ciIKKworIzogc3VibW9kdWxlLmM6MTM5Cittc2dpZCAidW5hYmxlIHRvIHJlbW92ZSAuZ2l0bW9kdWxlcyBmcm9tIGluZGV4IgorbXNnc3RyICJzdXBwcmVzc2lvbiBkdSAuZ2l0bW9kdWxlcyBkYW5zIGwnaW5kZXggaW1wb3NzaWJsZSIKKworIzogc3VibW9kdWxlLmM6MTQxCittc2dpZCAiYWRkaW5nIHVwZGF0ZWQgLmdpdG1vZHVsZXMgZmFpbGVkIgorbXNnc3RyICLDqWNoZWMgZGUgbCdham91dCBkdSAuZ2l0bW9kdWxlcyBtaXMgw6Agam91ciIKKworIzogc3VibW9kdWxlLmM6MTQzCittc2dpZCAic3RhZ2luZyB1cGRhdGVkIC5naXRtb2R1bGVzIGZhaWxlZCIKK21zZ3N0ciAiw6ljaGVjIGRlIGxhIG1pc2UgZW4gaW5kZXggZHUgLmdpdG1vZHVsZXMgbWlzIMOgIGpvdXIiCisKKyM6IHN1Ym1vZHVsZS5jOjExNDQgYnVpbHRpbi9pbml0LWRiLmM6MzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZ2l0IGxpbmsgJXMiCittc2dzdHIgIkltcG9zc2libGUgZGUgY3LDqWVyIGxlIGxpZW4gZ2l0ICVzIgorCisjOiBzdWJtb2R1bGUuYzoxMTU1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBzZXQgY29yZS53b3JrdHJlZSBpbiAlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBwYXJhbcOpdHJlciBjb3JlLndvcmt0cmVlIGRhbnMgJXMiCisKKyM6IHVybG1hdGNoLmM6MTIwCittc2dpZCAiaW52YWxpZCBVUkwgc2NoZW1lIG5hbWUgb3IgbWlzc2luZyAnOi8vJyBzdWZmaXgiCittc2dzdHIgIm5vbSBkZSBzY2jDqW1hIGQnVVJMIGludmFsaWRlIG91IHN1ZmZpeGUgJzovLycgbWFucXVhbnQiCisKKyM6IHVybG1hdGNoLmM6MTQ0IHVybG1hdGNoLmM6Mjk3IHVybG1hdGNoLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgJVhYIGVzY2FwZSBzZXF1ZW5jZSIKK21zZ3N0ciAic8OpcXVlbmNlIGQnw6ljaGFwcGVtZW50ICVYWCBpbnZhbGlkZSIKKworIzogdXJsbWF0Y2guYzoxNzIKK21zZ2lkICJtaXNzaW5nIGhvc3QgYW5kIHNjaGVtZSBpcyBub3QgJ2ZpbGU6JyIKK21zZ3N0ciAiaMO0dGUgbWFucXVhbnQgZXQgbGUgc2Now6ltYSBuJ2VzdCBwYXMgJ2ZpbGU6JyIKKworIzogdXJsbWF0Y2guYzoxODkKK21zZ2lkICJhICdmaWxlOicgVVJMIG1heSBub3QgaGF2ZSBhIHBvcnQgbnVtYmVyIgorbXNnc3RyICJ1bmUgVVJMICdmaWxlOicgbmUgcGV1dCBwYXMgY29udGVuaXIgZGUgbnVtw6lybyBkZSBwb3J0IgorCisjOiB1cmxtYXRjaC5jOjE5OQorbXNnaWQgImludmFsaWQgY2hhcmFjdGVycyBpbiBob3N0IG5hbWUiCittc2dzdHIgImNhcmFjdMOocmVzIGludmFsaWRlcyBkYW5zIGxlIG5vbSBkJ2jDtHRlIgorCisjOiB1cmxtYXRjaC5jOjI0NCB1cmxtYXRjaC5jOjI1NQorbXNnaWQgImludmFsaWQgcG9ydCBudW1iZXIiCittc2dzdHIgIm51bcOpcm8gZGUgcG9ydCBpbnZhbGlkZSIKKworIzogdXJsbWF0Y2guYzozMjIKK21zZ2lkICJpbnZhbGlkICcuLicgcGF0aCBzZWdtZW50IgorbXNnc3RyICJzZWdtZW50IGRlIGNoZW1pbiAnLi4nIGludmFsaWRlIgorCisjOiB3cmFwcGVyLmM6NDIyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJzogJXMiCiBtc2dzdHIgImltcG9zc2libGUgZCdhY2PDqWRlciDDoCAnJXMnIDogJXMiCiAKLSM6IHdyYXBwZXIuYzo0MjMKKyM6IHdyYXBwZXIuYzo0NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGFjY2VzcyAnJXMnIgogbXNnc3RyICJpbXBvc3NpYmxlIGQnYWNjw6lkZXIgw6AgJyVzJyIKIAotIzogd3JhcHBlci5jOjQzNAorIzogd3JhcHBlci5jOjQ1NAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gbG9vayB1cCBjdXJyZW50IHVzZXIgaW4gdGhlIHBhc3N3ZCBmaWxlOiAlcyIKLW1zZ3N0ciAiaW1wb3NzaWJsZSBkZSByZWNoZXJjaGVyIGwndXRpbGlzYXRldXIgYWN0dWVsIGRhbnMgbGUgZmljaGllciBkZSBtb3RzIGRlIHBhc3NlIDogJXMiCittc2dzdHIgIiIKKyJpbXBvc3NpYmxlIGRlIHJlY2hlcmNoZXIgbCd1dGlsaXNhdGV1ciBhY3R1ZWwgZGFucyBsZSBmaWNoaWVyIGRlIG1vdHMgZGUgIgorInBhc3NlIDogJXMiCiAKLSM6IHdyYXBwZXIuYzo0MzUKKyM6IHdyYXBwZXIuYzo0NTUKIG1zZ2lkICJubyBzdWNoIHVzZXIiCiBtc2dzdHIgInV0aWxpc2F0ZXVyIGluY29ubnUiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MAorIzogd3Qtc3RhdHVzLmM6MTQ2CiBtc2dpZCAiVW5tZXJnZWQgcGF0aHM6IgogbXNnc3RyICJDaGVtaW5zIG5vbiBmdXNpb25uw6lzIDoiCiAKLSM6IHd0LXN0YXR1cy5jOjE2NyB3dC1zdGF0dXMuYzoxOTQKKyM6IHd0LXN0YXR1cy5jOjE3MyB3dC1zdGF0dXMuYzoyMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlc2V0ICVzIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCByZXNldCAlcyA8ZmljaGllcj4uLi5cIiBwb3VyIGTDqXNpbmRleGVyKSIKIAotIzogd3Qtc3RhdHVzLmM6MTY5IHd0LXN0YXR1cy5jOjE5NgorIzogd3Qtc3RhdHVzLmM6MTc1IHd0LXN0YXR1cy5jOjIwMgogbXNnaWQgIiAgKHVzZSBcImdpdCBybSAtLWNhY2hlZCA8ZmlsZT4uLi5cIiB0byB1bnN0YWdlKSIKIG1zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcm0gLS1jYWNoZWQgPGZpY2hpZXI+Li4uXCIgcG91ciBkw6lzaW5kZXhlcikiCiAKLSM6IHd0LXN0YXR1cy5jOjE3MworIzogd3Qtc3RhdHVzLmM6MTc5CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBhZGQgPGZpY2hpZXI+Li4uXCIgcG91ciBtYXJxdWVyIGNvbW1lIHLDqXNvbHUpIgogCi0jOiB3dC1zdGF0dXMuYzoxNzUgd3Qtc3RhdHVzLmM6MTc5CisjOiB3dC1zdGF0dXMuYzoxODEgd3Qtc3RhdHVzLmM6MTg1CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZC9ybSA8ZmlsZT4uLi5cIiBhcyBhcHByb3ByaWF0ZSB0byBtYXJrIHJlc29sdXRpb24pIgotbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBhZGQvcm0gPGZpY2hpZXI+Li4uXCIgc2kgbsOpY2Vzc2FpcmUgcG91ciBtYXJxdWVyIGNvbW1lIHLDqXNvbHUpIgorbXNnc3RyICIiCisiICAodXRpbGlzZXogXCJnaXQgYWRkL3JtIDxmaWNoaWVyPi4uLlwiIHNpIG7DqWNlc3NhaXJlIHBvdXIgbWFycXVlciBjb21tZSAiCisicsOpc29sdSkiCiAKLSM6IHd0LXN0YXR1cy5jOjE3NworIzogd3Qtc3RhdHVzLmM6MTgzCiBtc2dpZCAiICAodXNlIFwiZ2l0IHJtIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IHJtIDxmaWNoaWVyPi4uLlwiIHBvdXIgbWFycXVlciBjb21tZSByw6lzb2x1KSIKIAotIzogd3Qtc3RhdHVzLmM6MTg4CisjOiB3dC1zdGF0dXMuYzoxOTQKIG1zZ2lkICJDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCiBtc2dzdHIgIk1vZGlmaWNhdGlvbnMgcXVpIHNlcm9udCB2YWxpZMOpZXMgOiIKIAotIzogd3Qtc3RhdHVzLmM6MjA2CisjOiB3dC1zdGF0dXMuYzoyMTIKIG1zZ2lkICJDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoiCiBtc2dzdHIgIk1vZGlmaWNhdGlvbnMgcXVpIG5lIHNlcm9udCBwYXMgdmFsaWTDqWVzIDoiCiAKLSM6IHd0LXN0YXR1cy5jOjIxMAorIzogd3Qtc3RhdHVzLmM6MjE2CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCi1tc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IGFkZCA8ZmljaGllcj4uLi5cIiBwb3VyIG1ldHRyZSDDoCBqb3VyIGNlIHF1aSBzZXJhIHZhbGlkw6kpIgorbXNnc3RyICIiCisiICAodXRpbGlzZXogXCJnaXQgYWRkIDxmaWNoaWVyPi4uLlwiIHBvdXIgbWV0dHJlIMOgIGpvdXIgY2UgcXVpIHNlcmEgdmFsaWTDqSkiCiAKLSM6IHd0LXN0YXR1cy5jOjIxMgorIzogd3Qtc3RhdHVzLmM6MjE4CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZC9ybSA8ZmlsZT4uLi5cIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCi1tc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IGFkZC9ybSA8ZmljaGllcj4uLi5cIiBwb3VyIG1ldHRyZSDDoCBqb3VyIGNlIHF1aSBzZXJhIHZhbGlkw6kpIgorbXNnc3RyICIiCisiICAodXRpbGlzZXogXCJnaXQgYWRkL3JtIDxmaWNoaWVyPi4uLlwiIHBvdXIgbWV0dHJlIMOgIGpvdXIgY2UgcXVpIHNlcmEgIgorInZhbGlkw6kpIgogCi0jOiB3dC1zdGF0dXMuYzoyMTMKKyM6IHd0LXN0YXR1cy5jOjIxOQogbXNnaWQgIiIKICIgICh1c2UgXCJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uXCIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KSIKLW1zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgY2hlY2tvdXQgLS0gPGZpY2hpZXI+Li4uXCIgcG91ciBhbm51bGVyIGxlcyBtb2RpZmljYXRpb25zIGRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCkiCittc2dzdHIgIiIKKyIgICh1dGlsaXNleiBcImdpdCBjaGVja291dCAtLSA8ZmljaGllcj4uLi5cIiBwb3VyIGFubnVsZXIgbGVzIG1vZGlmaWNhdGlvbnMgIgorImRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCkiCiAKLSM6IHd0LXN0YXR1cy5jOjIxNQorIzogd3Qtc3RhdHVzLmM6MjIxCiBtc2dpZCAiICAoY29tbWl0IG9yIGRpc2NhcmQgdGhlIHVudHJhY2tlZCBvciBtb2RpZmllZCBjb250ZW50IGluIHN1Ym1vZHVsZXMpIgotbXNnc3RyICIgICh2YWxpZGVyIG91IGFubnVsZXIgbGUgY29udGVudSBub24gc3Vpdmkgb3UgbW9kaWZpw6kgZGFucyBsZXMgc291cy1tb2R1bGVzKSIKK21zZ3N0ciAiIgorIiAgKHZhbGlkZXIgb3UgYW5udWxlciBsZSBjb250ZW51IG5vbiBzdWl2aSBvdSBtb2RpZmnDqSBkYW5zIGxlcyBzb3VzLW1vZHVsZXMpIgogCi0jOiB3dC1zdGF0dXMuYzoyMjcKKyM6IHd0LXN0YXR1cy5jOjIzMwogIywgYy1mb3JtYXQKIG1zZ2lkICIgICh1c2UgXCJnaXQgJXMgPGZpbGU+Li4uXCIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKLW1zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgJXMgPGZpY2hpZXI+Li4uXCIgcG91ciBpbmNsdXJlIGRhbnMgY2UgcXVpIHNlcmEgdmFsaWTDqSkiCittc2dzdHIgIiIKKyIgICh1dGlsaXNleiBcImdpdCAlcyA8ZmljaGllcj4uLi5cIiBwb3VyIGluY2x1cmUgZGFucyBjZSBxdWkgc2VyYSB2YWxpZMOpKSIKIAotIzogd3Qtc3RhdHVzLmM6MjQ0CisjOiB3dC1zdGF0dXMuYzoyNTAKIG1zZ2lkICJidWciCiBtc2dzdHIgImJvZ3VlIgogCi0jOiB3dC1zdGF0dXMuYzoyNDkKKyM6IHd0LXN0YXR1cy5jOjI1NQogbXNnaWQgImJvdGggZGVsZXRlZDoiCiBtc2dzdHIgInN1cHByaW3DqSBkZXMgZGV1eCBjw7R0w6lzIDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MAorIzogd3Qtc3RhdHVzLmM6MjU2CiBtc2dpZCAiYWRkZWQgYnkgdXM6IgogbXNnc3RyICJham91dMOpIHBhciBub3VzIDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MQorIzogd3Qtc3RhdHVzLmM6MjU3CiBtc2dpZCAiZGVsZXRlZCBieSB0aGVtOiIKIG1zZ3N0ciAic3VwcHJpbcOpIHBhciBldXggOiIKIAotIzogd3Qtc3RhdHVzLmM6MjUyCisjOiB3dC1zdGF0dXMuYzoyNTgKIG1zZ2lkICJhZGRlZCBieSB0aGVtOiIKIG1zZ3N0ciAiYWpvdXTDqSBwYXIgZXV4IDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MworIzogd3Qtc3RhdHVzLmM6MjU5CiBtc2dpZCAiZGVsZXRlZCBieSB1czoiCiBtc2dzdHIgInN1cHByaW3DqSBwYXIgbm91cyA6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTQKKyM6IHd0LXN0YXR1cy5jOjI2MAogbXNnaWQgImJvdGggYWRkZWQ6IgogbXNnc3RyICJham91dMOpIGRlIGRldXggY8O0dMOpcyA6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTUKKyM6IHd0LXN0YXR1cy5jOjI2MQogbXNnaWQgImJvdGggbW9kaWZpZWQ6IgogbXNnc3RyICJtb2RpZmnDqSBkZXMgZGV1eCBjw7R0w6lzIDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI4NQorIzogd3Qtc3RhdHVzLmM6MjkxCiBtc2dpZCAibmV3IGNvbW1pdHMsICIKIG1zZ3N0ciAibm91dmVhdXggY29tbWl0cywgIgogCi0jOiB3dC1zdGF0dXMuYzoyODcKKyM6IHd0LXN0YXR1cy5jOjI5MwogbXNnaWQgIm1vZGlmaWVkIGNvbnRlbnQsICIKIG1zZ3N0ciAiY29udGVudSBtb2RpZmnDqSwgIgogCi0jOiB3dC1zdGF0dXMuYzoyODkKKyM6IHd0LXN0YXR1cy5jOjI5NQogbXNnaWQgInVudHJhY2tlZCBjb250ZW50LCAiCiBtc2dzdHIgImNvbnRlbnUgbm9uIHN1aXZpLCAiCiAKLSM6IHd0LXN0YXR1cy5jOjMwNgorIzogd3Qtc3RhdHVzLmM6MzEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBmaWxlOiAgICVzIgogbXNnc3RyICJub3V2ZWF1IDogICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzA5CisjOiB3dC1zdGF0dXMuYzozMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY29waWVkOiAgICAgJXMgLT4gJXMiCiBtc2dzdHIgImNvcGnDqSA6ICAgICAlcyAtPiAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzEyCisjOiB3dC1zdGF0dXMuYzozMTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVsZXRlZDogICAgJXMiCiBtc2dzdHIgInN1cHByaW3DqSA6ICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzE1CisjOiB3dC1zdGF0dXMuYzozMjEKICMsIGMtZm9ybWF0CiBtc2dpZCAibW9kaWZpZWQ6ICAgJXMiCiBtc2dzdHIgIm1vZGlmacOpIDogICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzE4CisjOiB3dC1zdGF0dXMuYzozMjQKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVuYW1lZDogICAgJXMgLT4gJXMiCiBtc2dzdHIgInJlbm9tbcOpIDogICAlcyAtPiAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzIxCisjOiB3dC1zdGF0dXMuYzozMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAidHlwZWNoYW5nZTogJXMiCiBtc2dzdHIgIm52IHR5cGUgOiAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMjQKKyM6IHd0LXN0YXR1cy5jOjMzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duOiAgICAlcyIKIG1zZ3N0ciAiaW5jb25udSA6ICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMyNworIzogd3Qtc3RhdHVzLmM6MzMzCiAjLCBjLWZvcm1hdAogbXNnaWQgInVubWVyZ2VkOiAgICVzIgogbXNnc3RyICJub24gZnVzLiA6ICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzMwCisjOiB3dC1zdGF0dXMuYzozMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiYnVnOiB1bmhhbmRsZWQgZGlmZiBzdGF0dXMgJWMiCiBtc2dzdHIgImJvZ3VlIDogw6l0YXQgZGUgZGlmZiBub24gZ8OpcsOpICVjIgogCi0jOiB3dC1zdGF0dXMuYzo4MDMKKyM6IHd0LXN0YXR1cy5jOjcwMworbXNnaWQgIlN1Ym1vZHVsZXMgY2hhbmdlZCBidXQgbm90IHVwZGF0ZWQ6IgorbXNnc3RyICJTb3VzLW1vZHVsZXMgbW9kaWZpw6lzIG1haXMgbm9uIG1pcyDDoCBqb3VyIDoiCisKKyM6IHd0LXN0YXR1cy5jOjcwNQorbXNnaWQgIlN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCittc2dzdHIgIkNoYW5nZW1lbnRzIGR1IHNvdXMtbW9kdWxlIMOgIHZhbGlkZXIgOiIKKworIzogd3Qtc3RhdHVzLmM6ODQ4CiBtc2dpZCAiWW91IGhhdmUgdW5tZXJnZWQgcGF0aHMuIgogbXNnc3RyICJWb3VzIGF2ZXogZGVzIGNoZW1pbnMgbm9uIGZ1c2lvbm7DqXMuIgogCi0jOiB3dC1zdGF0dXMuYzo4MDYgd3Qtc3RhdHVzLmM6OTU4CisjOiB3dC1zdGF0dXMuYzo4NTEKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY29tbWl0XCIpIgotbXNnc3RyICIgIChyw6lnbGV6IGxlcyBjb25mbGl0cyBldCBsYW5jZXogXCJnaXQgY29tbWl0XCIpIgorbXNnc3RyICIgIChyw6lnbGV6IGxlcyBjb25mbGl0cyBwdWlzIGxhbmNleiBcImdpdCBjb21taXRcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjgwOQorIzogd3Qtc3RhdHVzLmM6ODU0CiBtc2dpZCAiQWxsIGNvbmZsaWN0cyBmaXhlZCBidXQgeW91IGFyZSBzdGlsbCBtZXJnaW5nLiIKIG1zZ3N0ciAiVG91cyBsZXMgY29uZmxpdHMgc29udCByw6lnbMOpcyBtYWlzIGxhIGZ1c2lvbiBuJ2VzdCBwYXMgdGVybWluw6llLiIKIAotIzogd3Qtc3RhdHVzLmM6ODEyCisjOiB3dC1zdGF0dXMuYzo4NTcKIG1zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0XCIgdG8gY29uY2x1ZGUgbWVyZ2UpIgogbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBjb21taXRcIiBwb3VyIHRlcm1pbmVyIGxhIGZ1c2lvbikiCiAKLSM6IHd0LXN0YXR1cy5jOjgyMgorIzogd3Qtc3RhdHVzLmM6ODY3CiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGFuIGFtIHNlc3Npb24uIgogbXNnc3RyICJWb3VzIMOqdGVzIGF1IG1pbGlldSBkJ3VuZSBzZXNzaW9uIGFtLiIKIAotIzogd3Qtc3RhdHVzLmM6ODI1CisjOiB3dC1zdGF0dXMuYzo4NzAKIG1zZ2lkICJUaGUgY3VycmVudCBwYXRjaCBpcyBlbXB0eS4iCiBtc2dzdHIgIkxlIHBhdGNoIGFjdHVlbCBlc3QgdmlkZS4iCiAKLSM6IHd0LXN0YXR1cy5jOjgyOQotbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCi1tc2dzdHIgIiAgKHLDqWdsZXogbGVzIGNvbmZsaXRzIHB1aXMgbGFuY2V6IFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCisjOiB3dC1zdGF0dXMuYzo4NzQKK21zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCBhbSAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIgIChyw6lnbGV6IGxlcyBjb25mbGl0cyBwdWlzIGxhbmNleiBcImdpdCBhbSAtLWNvbnRpbnVlXCIpIgogCi0jOiB3dC1zdGF0dXMuYzo4MzEKKyM6IHd0LXN0YXR1cy5jOjg3NgogbXNnaWQgIiAgKHVzZSBcImdpdCBhbSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIgogbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBhbSAtLXNraXBcIiBwb3VyIHNhdXRlciBjZSBwYXRjaCkiCiAKLSM6IHd0LXN0YXR1cy5jOjgzMworIzogd3Qtc3RhdHVzLmM6ODc4CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFtIC0tYWJvcnRcIiB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBhbSAtLWFib3J0XCIgcG91ciByZXN0YXVyZXIgbGEgYnJhbmNoZSBkJ29yaWdpbmUpIgogCi0jOiB3dC1zdGF0dXMuYzo4OTMgd3Qtc3RhdHVzLmM6OTEwCisjOiB3dC1zdGF0dXMuYzo5Mzggd3Qtc3RhdHVzLmM6OTU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgogbXNnc3RyICJWb3VzIMOqdGVzIGVuIHRyYWluIGRlIHJlYmFzZXIgbGEgYnJhbmNoZSAnJXMnIHN1ciAnJXMnLiIKIAotIzogd3Qtc3RhdHVzLmM6ODk4IHd0LXN0YXR1cy5jOjkxNQorIzogd3Qtc3RhdHVzLmM6OTQzIHd0LXN0YXR1cy5jOjk2MAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nLiIKIG1zZ3N0ciAiVm91cyDDqnRlcyBlbiB0cmFpbiBkZSByZWJhc2VyLiIKIAotIzogd3Qtc3RhdHVzLmM6OTAxCisjOiB3dC1zdGF0dXMuYzo5NDYKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKLW1zZ3N0ciAiICAocsOpc29sdmV6IGxlcyBjb25mbGl0cyBwdWlzIGxhbmNleiBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiICAocsOpZ2xleiBsZXMgY29uZmxpdHMgcHVpcyBsYW5jZXogXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjkwMworIzogd3Qtc3RhdHVzLmM6OTQ4CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIgogbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCByZWJhc2UgLS1za2lwXCIgcG91ciBzYXV0ZXIgY2UgcGF0Y2gpIgogCi0jOiB3dC1zdGF0dXMuYzo5MDUKKyM6IHd0LXN0YXR1cy5jOjk1MAogbXNnaWQgIiAgKHVzZSBcImdpdCByZWJhc2UgLS1hYm9ydFwiIHRvIGNoZWNrIG91dCB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcmViYXNlIC0tYWJvcnRcIiBwb3VyIGV4dHJhaXJlIGxhIGJyYW5jaGUgZCdvcmlnaW5lKSIKIAotIzogd3Qtc3RhdHVzLmM6OTE4CisjOiB3dC1zdGF0dXMuYzo5NjMKIG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCi1tc2dzdHIgIiAgKHRvdXMgbGVzIGNvbmZsaXRzIHNvbnQgcsOpc29sdXMgOiBsYW5jZXogXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCittc2dzdHIgIiAgKHRvdXMgbGVzIGNvbmZsaXRzIHNvbnQgcsOpZ2zDqXMgOiBsYW5jZXogXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjkyMgorIzogd3Qtc3RhdHVzLmM6OTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICclcycgb24gJyVzJy4iCi1tc2dzdHIgIlZvdXMgw6p0ZXMgYWN0dWVsbGVtZW50IGVuIHRyYWluIGRlIGZyYWN0aW9ubmVyIHVuIGNvbW1pdCBwZW5kYW50IHVuIHJlYmFzYWdlIGRlIGxhIGJyYW5jaGUgJyVzJyBzdXIgJyVzJy4iCittc2dzdHIgIiIKKyJWb3VzIMOqdGVzIGFjdHVlbGxlbWVudCBlbiB0cmFpbiBkZSBmcmFjdGlvbm5lciB1biBjb21taXQgcGVuZGFudCB1biByZWJhc2FnZSAiCisiZGUgbGEgYnJhbmNoZSAnJXMnIHN1ciAnJXMnLiIKIAotIzogd3Qtc3RhdHVzLmM6OTI3CisjOiB3dC1zdGF0dXMuYzo5NzIKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIKLW1zZ3N0ciAiVm91cyDDqnRlcyBhY3R1ZWxsZW1lbnQgZW4gdHJhaW4gZGUgZnJhY3Rpb25uZXIgdW4gY29tbWl0IHBlbmRhbnQgdW4gcmViYXNhZ2UuIgorbXNnc3RyICIiCisiVm91cyDDqnRlcyBhY3R1ZWxsZW1lbnQgZW4gdHJhaW4gZGUgZnJhY3Rpb25uZXIgdW4gY29tbWl0IHBlbmRhbnQgdW4gcmViYXNhZ2UuIgogCi0jOiB3dC1zdGF0dXMuYzo5MzAKKyM6IHd0LXN0YXR1cy5jOjk3NQogbXNnaWQgIiAgKE9uY2UgeW91ciB3b3JraW5nIGRpcmVjdG9yeSBpcyBjbGVhbiwgcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgotbXNnc3RyICIgIChVbmUgZm9pcyBsYSBjb3BpZSBkZSB0cmF2YWlsIG5ldHRvecOpZSwgbGFuY2V6IFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIiCisiICAoVW5lIGZvaXMgbGEgY29waWUgZGUgdHJhdmFpbCBuZXR0b3nDqWUsIGxhbmNleiBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6OTM0CisjOiB3dC1zdGF0dXMuYzo5NzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKLW1zZ3N0ciAiVm91cyDDqnRlcyBhY3R1ZWxsZW1lbnQgZW4gdHJhaW4gZCfDqWRpdGVyIHVuIGNvbW1pdCBwZW5kYW50IHVuIHJlYmFzYWdlIGRlIGxhIGJyYW5jaGUgJyVzJyBzdXIgJyVzJy4iCittc2dzdHIgIiIKKyJWb3VzIMOqdGVzIGFjdHVlbGxlbWVudCBlbiB0cmFpbiBkJ8OpZGl0ZXIgdW4gY29tbWl0IHBlbmRhbnQgdW4gcmViYXNhZ2UgZGUgbGEgIgorImJyYW5jaGUgJyVzJyBzdXIgJyVzJy4iCiAKLSM6IHd0LXN0YXR1cy5jOjkzOQorIzogd3Qtc3RhdHVzLmM6OTg0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCBkdXJpbmcgYSByZWJhc2UuIgotbXNnc3RyICJWb3VzIMOqdGVzIGFjdHVlbGxlbWVudCBlbiB0cmFpbiBkJ8OpZGl0ZXIgdW4gY29tbWl0IHBlbmRhbnQgdW4gcmViYXNhZ2UuIgorbXNnc3RyICIiCisiVm91cyDDqnRlcyBhY3R1ZWxsZW1lbnQgZW4gdHJhaW4gZCfDqWRpdGVyIHVuIGNvbW1pdCBwZW5kYW50IHVuIHJlYmFzYWdlLiIKIAotIzogd3Qtc3RhdHVzLmM6OTQyCisjOiB3dC1zdGF0dXMuYzo5ODcKIG1zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0IC0tYW1lbmRcIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpIgogbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBjb21taXQgLS1hbWVuZFwiIHBvdXIgY29ycmlnZXIgbGUgY29tbWl0IGFjdHVlbCkiCiAKLSM6IHd0LXN0YXR1cy5jOjk0NAorIzogd3Qtc3RhdHVzLmM6OTg5CiBtc2dpZCAiIgogIiAgKHVzZSBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpIgotbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiIHF1YW5kIHZvdXMgw6p0ZXMgc2F0aXNmYWl0IGRlIHZvcyBtb2RpZmljYXRpb25zKSIKK21zZ3N0ciAiIgorIiAgKHV0aWxpc2V6IFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIgcXVhbmQgdm91cyDDqnRlcyBzYXRpc2ZhaXQgZGUgdm9zICIKKyJtb2RpZmljYXRpb25zKSIKIAotIzogd3Qtc3RhdHVzLmM6OTU0Ci1tc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgY2hlcnJ5LXBpY2tpbmcuIgotbXNnc3RyICJWb3VzIMOqdGVzIGFjdHVlbGxlbWVudCBlbiB0cmFpbiBkZSBwaWNvcmVyLiIKKyM6IHd0LXN0YXR1cy5jOjk5OQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZyBjb21taXQgJXMuIgorbXNnc3RyICJWb3VzIMOqdGVzIGFjdHVlbGxlbWVudCBlbiB0cmFpbiBkZSBwaWNvcmVyIGxlIGNvbW1pdCAlcy4iCiAKLSM6IHd0LXN0YXR1cy5jOjk2MQotbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjb21taXRcIikiCi1tc2dzdHIgIiAgKHRvdXMgbGVzIGNvbmZsaXRzIHNvbnQgcsOpc29sdXMgOiBsYW5jZXogXCJnaXQgY29tbWl0XCIpIgorIzogd3Qtc3RhdHVzLmM6MTAwNAorbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIgIChyw6lnbGV6IGxlcyBjb25mbGl0cyBwdWlzIGxhbmNleiBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgogCi0jOiB3dC1zdGF0dXMuYzo5NzAKKyM6IHd0LXN0YXR1cy5jOjEwMDcKK21zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiIgorIiAgKHRvdXMgbGVzIGNvbmZsaXRzIHNvbnQgcsOpZ2zDqXMgOiBsYW5jZXogXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKKworIzogd3Qtc3RhdHVzLmM6MTAwOQorbXNnaWQgIiAgKHVzZSBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgdG8gY2FuY2VsIHRoZSBjaGVycnktcGljayBvcGVyYXRpb24pIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgcG91ciBhbm51bGVyIGxlIHBpY29yYWdlKSIKKworIzogd3Qtc3RhdHVzLmM6MTAxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZXZlcnRpbmcgY29tbWl0ICVzLiIKIG1zZ3N0ciAiVm91cyDDqnRlcyBhY3R1ZWxsZW1lbnQgZW4gdHJhaW4gZGUgcsOpdGFibGlyIGxlIGNvbW1pdCAlcy4iCiAKLSM6IHd0LXN0YXR1cy5jOjk3NQorIzogd3Qtc3RhdHVzLmM6MTAyMwogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKLW1zZ3N0ciAiICAocsOpc29sdmV6IGxlcyBjb25mbGl0cyBldCBsYW5jZXogXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCittc2dzdHIgIiAgKHLDqWdsZXogbGVzIGNvbmZsaXRzIHB1aXMgbGFuY2V6IFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCIpIgogCi0jOiB3dC1zdGF0dXMuYzo5NzgKKyM6IHd0LXN0YXR1cy5jOjEwMjYKIG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCi1tc2dzdHIgIiAgKHRvdXMgbGVzIGNvbmZsaXRzIHNvbnQgcsOpc29sdXMgOiBsYW5jZXogXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCittc2dzdHIgIiAgKHRvdXMgbGVzIGNvbmZsaXRzIHNvbnQgcsOpZ2zDqXMgOiBsYW5jZXogXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjk4MAorIzogd3Qtc3RhdHVzLmM6MTAyOAogbXNnaWQgIiAgKHVzZSBcImdpdCByZXZlcnQgLS1hYm9ydFwiIHRvIGNhbmNlbCB0aGUgcmV2ZXJ0IG9wZXJhdGlvbikiCiBtc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IHJldmVydCAtLWFib3J0XCIgcG91ciBhbm51bGVyIGxlIHLDqXRhYmxpc3NlbWVudCkiCiAKLSM6IHd0LXN0YXR1cy5jOjk5MQorIzogd3Qtc3RhdHVzLmM6MTAzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBiaXNlY3RpbmcsIHN0YXJ0ZWQgZnJvbSBicmFuY2ggJyVzJy4iCiBtc2dzdHIgIlZvdXMgw6p0ZXMgZW4gY291cnMgZGUgYmlzc2VjdGlvbiwgZGVwdWlzIGxhIGJyYW5jaGUgJyVzJy4iCiAKLSM6IHd0LXN0YXR1cy5jOjk5NQorIzogd3Qtc3RhdHVzLmM6MTA0MwogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGJpc2VjdGluZy4iCiBtc2dzdHIgIlZvdXMgw6p0ZXMgZW4gY291cnMgZGUgYmlzc2VjdGlvbi4iCiAKLSM6IHd0LXN0YXR1cy5jOjk5OAorIzogd3Qtc3RhdHVzLmM6MTA0NgogbXNnaWQgIiAgKHVzZSBcImdpdCBiaXNlY3QgcmVzZXRcIiB0byBnZXQgYmFjayB0byB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgYmlzZWN0IHJlc2V0XCIgcG91ciByZXZlbmlyIMOgIGxhIGJyYW5jaGUgZCdvcmlnaW5lKSIKIAotIzogd3Qtc3RhdHVzLmM6MTE3MworIzogd3Qtc3RhdHVzLmM6MTIyMQogbXNnaWQgIk9uIGJyYW5jaCAiCiBtc2dzdHIgIlN1ciBsYSBicmFuY2hlICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4NAorIzogd3Qtc3RhdHVzLmM6MTIyOAorbXNnaWQgInJlYmFzZSBpbiBwcm9ncmVzczsgb250byAiCittc2dzdHIgInJlYmFzYWdlIGVuIGNvdXJzIDsgc3VyICIKKworIzogd3Qtc3RhdHVzLmM6MTIzNQogbXNnaWQgIkhFQUQgZGV0YWNoZWQgYXQgIgogbXNnc3RyICJIRUFEIGTDqXRhY2jDqWUgc3VyICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4NgorIzogd3Qtc3RhdHVzLmM6MTIzNwogbXNnaWQgIkhFQUQgZGV0YWNoZWQgZnJvbSAiCiBtc2dzdHIgIkhFQUQgZMOpdGFjaMOpZSBkZXB1aXMgIgogCi0jOiB3dC1zdGF0dXMuYzoxMTg5CisjOiB3dC1zdGF0dXMuYzoxMjQwCiBtc2dpZCAiTm90IGN1cnJlbnRseSBvbiBhbnkgYnJhbmNoLiIKIG1zZ3N0ciAiQWN0dWVsbGVtZW50IHN1ciBhdWN1biBicmFuY2hlLiIKIAotIzogd3Qtc3RhdHVzLmM6MTIwNgorIzogd3Qtc3RhdHVzLmM6MTI1NwogbXNnaWQgIkluaXRpYWwgY29tbWl0IgogbXNnc3RyICJWYWxpZGF0aW9uIGluaXRpYWxlIgogCi0jOiB3dC1zdGF0dXMuYzoxMjIwCisjOiB3dC1zdGF0dXMuYzoxMjcxCiBtc2dpZCAiVW50cmFja2VkIGZpbGVzIgogbXNnc3RyICJGaWNoaWVycyBub24gc3VpdmlzIgogCi0jOiB3dC1zdGF0dXMuYzoxMjIyCisjOiB3dC1zdGF0dXMuYzoxMjczCiBtc2dpZCAiSWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAiRmljaGllcnMgaWdub3LDqXMiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjYKKyM6IHd0LXN0YXR1cy5jOjEyNzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkl0IHRvb2sgJS4yZiBzZWNvbmRzIHRvIGVudW1lcmF0ZSB1bnRyYWNrZWQgZmlsZXMuICdzdGF0dXMgLXVubydcbiIKICJtYXkgc3BlZWQgaXQgdXAsIGJ1dCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsIG5vdCB0byBmb3JnZXQgdG8gYWRkXG4iCiAibmV3IGZpbGVzIHlvdXJzZWxmIChzZWUgJ2dpdCBoZWxwIHN0YXR1cycpLiIKLW1zZ3N0ciAiTCfDqW51bcOpcmF0aW9uIGRlcyBmaWNoaWVycyBub24gc3VpdmlzIGEgZHVyw6kgJS4yZiBzZWNvbmRlcy4gJ3N0YXR1cyAtdW5vJ1xuIgotInBldXQgbCdhY2PDqWxlcmVyLCBtYWlzIHZvdXMgZGV2ZXogYWxvcnMgZmFpcmUgYXR0ZW50aW9uIMOgIG5lIHBhc1xuIgotIm91YmxpZXIgZCdham91dGVyIGxlcyBub3V2ZWF1eCBmaWNoaWVycyBwYXIgdm91cy1tw6ptZSAodm9pciAnZ2l0IGhlbHAgc3RhdHVzJykuIgorbXNnc3RyICIiCisiTCfDqW51bcOpcmF0aW9uIGRlcyBmaWNoaWVycyBub24gc3VpdmlzIGEgZHVyw6kgJS4yZiBzZWNvbmRlcy4gJ3N0YXR1cyAtdW5vJ1xuIgorInBldXQgbCdhY2PDqWzDqXJlciwgbWFpcyB2b3VzIGRldmV6IGFsb3JzIGZhaXJlIGF0dGVudGlvbiDDoCBuZSBwYXNcbiIKKyJvdWJsaWVyIGQnYWpvdXRlciBsZXMgbm91dmVhdXggZmljaGllcnMgcGFyIHZvdXMtbcOqbWUgKHZvaXIgJ2dpdCBoZWxwICIKKyJzdGF0dXMnKS4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyMzIKKyM6IHd0LXN0YXR1cy5jOjEyODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW50cmFja2VkIGZpbGVzIG5vdCBsaXN0ZWQlcyIKLW1zZ3N0ciAiRmljaGllcnMgbm9uIHN1aXZpcyBub24gbGlzdMOpcyVzIgorbXNnc3RyICJGaWNoaWVycyBub24gc3VpdmlzIG5vbiBhZmZpY2jDqXMlcyIKIAotIzogd3Qtc3RhdHVzLmM6MTIzNAorIzogd3Qtc3RhdHVzLmM6MTI4NQogbXNnaWQgIiAodXNlIC11IG9wdGlvbiB0byBzaG93IHVudHJhY2tlZCBmaWxlcykiCiBtc2dzdHIgIiAodXRpbGlzZXogLXUgcG91ciBhZmZpY2hlciBsZXMgZmljaGllcnMgbm9uIHN1aXZpcykiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNDAKKyM6IHd0LXN0YXR1cy5jOjEyOTEKIG1zZ2lkICJObyBjaGFuZ2VzIgogbXNnc3RyICJBdWN1bmUgbW9kaWZpY2F0aW9uIgogCi0jOiB3dC1zdGF0dXMuYzoxMjQ1CisjOiB3dC1zdGF0dXMuYzoxMjk2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgXCJnaXQgYWRkXCIgYW5kL29yIFwiZ2l0IGNvbW1pdCAtYVwiKVxuIgotbXNnc3RyICJhdWN1bmUgbW9kaWZpY2F0aW9uIG4nYSDDqXTDqSBham91dMOpZSDDoCBsYSB2YWxpZGF0aW9uICh1dGlsaXNleiBcImdpdCBhZGRcIiBvdSBcImdpdCBjb21taXQgLWFcIilcbiIKK21zZ3N0ciAiIgorImF1Y3VuZSBtb2RpZmljYXRpb24gbidhIMOpdMOpIGFqb3V0w6llIMOgIGxhIHZhbGlkYXRpb24gKHV0aWxpc2V6IFwiZ2l0IGFkZFwiIG91ICIKKyJcImdpdCBjb21taXQgLWFcIilcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI0OAorIzogd3Qtc3RhdHVzLmM6MTI5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdFxuIgogbXNnc3RyICJhdWN1bmUgbW9kaWZpY2F0aW9uIGFqb3V0w6llIMOgIGxhIHZhbGlkYXRpb25cbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI1MQorIzogd3Qtc3RhdHVzLmM6MTMwMgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50ICh1c2UgXCJnaXQgYWRkXCIgdG8gIgogInRyYWNrKVxuIgotbXNnc3RyICJhdWN1bmUgbW9kaWZpY2F0aW9uIGFqb3V0w6llIMOgIGxhIHZhbGlkYXRpb24gbWFpcyBkZXMgZmljaGllcnMgbm9uIHN1aXZpcyBzb250IHByw6lzZW50cyAodXRpbGlzZXogXCJnaXQgYWRkXCIgcG91ciBsZXMgc3VpdnJlKVxuIgorbXNnc3RyICIiCisiYXVjdW5lIG1vZGlmaWNhdGlvbiBham91dMOpZSDDoCBsYSB2YWxpZGF0aW9uIG1haXMgZGVzIGZpY2hpZXJzIG5vbiBzdWl2aXMgIgorInNvbnQgcHLDqXNlbnRzICh1dGlsaXNleiBcImdpdCBhZGRcIiBwb3VyIGxlcyBzdWl2cmUpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTQKKyM6IHd0LXN0YXR1cy5jOjEzMDUKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50XG4iCi1tc2dzdHIgImF1Y3VuZSBtb2RpZmljYXRpb24gYWpvdXTDqWUgw6AgbGEgdmFsaWRhdGlvbiBtYWlzIGRlcyBmaWNoaWVycyBub24gc3VpdmlzIHNvbnQgcHLDqXNlbnRzXG4iCittc2dzdHIgIiIKKyJhdWN1bmUgbW9kaWZpY2F0aW9uIGFqb3V0w6llIMOgIGxhIHZhbGlkYXRpb24gbWFpcyBkZXMgZmljaGllcnMgbm9uIHN1aXZpcyAiCisic29udCBwcsOpc2VudHNcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI1NworIzogd3Qtc3RhdHVzLmM6MTMwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCAoY3JlYXRlL2NvcHkgZmlsZXMgYW5kIHVzZSBcImdpdCBhZGRcIiB0byB0cmFjaylcbiIKLW1zZ3N0ciAicmllbiDDoCB2YWxpZGVyIChjcsOpZXovY29waWV6IGRlcyBmaWNoaWVycyBldCB1dGlsaXNleiBcImdpdCBhZGRcIiBwb3VyIGxlcyBzdWl2cmUpXG4iCittc2dzdHIgIiIKKyJyaWVuIMOgIHZhbGlkZXIgKGNyw6llei9jb3BpZXogZGVzIGZpY2hpZXJzIGV0IHV0aWxpc2V6IFwiZ2l0IGFkZFwiIHBvdXIgbGVzICIKKyJzdWl2cmUpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjAgd3Qtc3RhdHVzLmM6MTI2NQorIzogd3Qtc3RhdHVzLmM6MTMxMSB3dC1zdGF0dXMuYzoxMzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0XG4iCiBtc2dzdHIgInJpZW4gw6AgdmFsaWRlclxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjYzCisjOiB3dC1zdGF0dXMuYzoxMzE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpXG4iCiBtc2dzdHIgInJpZW4gw6AgdmFsaWRlciAodXRpbGlzZXogLXUgcG91ciBhZmZpY2hlciBsZXMgZmljaGllcnMgbm9uIHN1aXZpcylcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2NworIzogd3Qtc3RhdHVzLmM6MTMxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCwgd29ya2luZyBkaXJlY3RvcnkgY2xlYW5cbiIKIG1zZ3N0ciAicmllbiDDoCB2YWxpZGVyLCBsYSBjb3BpZSBkZSB0cmF2YWlsIGVzdCBwcm9wcmVcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTM3NQorIzogd3Qtc3RhdHVzLmM6MTQyNwogbXNnaWQgIkhFQUQgKG5vIGJyYW5jaCkiCiBtc2dzdHIgIkhFQUQgKGF1Y3VuZSBicmFuY2hlKSIKIAotIzogd3Qtc3RhdHVzLmM6MTM4MQorIzogd3Qtc3RhdHVzLmM6MTQzMwogbXNnaWQgIkluaXRpYWwgY29tbWl0IG9uICIKIG1zZ3N0ciAiVmFsaWRhdGlvbiBpbml0aWFsZSBzdXIgIgogCi0jOiB3dC1zdGF0dXMuYzoxMzk2CisjIMOgIHByaW9yaSBvbiBwYXJsZSBkJ3VuZSBicmFuY2hlIGljaQorIzogd3Qtc3RhdHVzLmM6MTQ2MworbXNnaWQgImdvbmUiCittc2dzdHIgImRpc3BhcnVlIgorCisjOiB3dC1zdGF0dXMuYzoxNDY1CiBtc2dpZCAiYmVoaW5kICIKIG1zZ3N0ciAiZGVycmnDqHJlICIKIAotIzogd3Qtc3RhdHVzLmM6MTM5OSB3dC1zdGF0dXMuYzoxNDAyCisjOiB3dC1zdGF0dXMuYzoxNDY4IHd0LXN0YXR1cy5jOjE0NzEKIG1zZ2lkICJhaGVhZCAiCiBtc2dzdHIgImRldmFudCAiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MDQKKyM6IHd0LXN0YXR1cy5jOjE0NzMKIG1zZ2lkICIsIGJlaGluZCAiCiBtc2dzdHIgIiwgZGVycmnDqHJlICIKIAotIzogY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jOjU4IGJ1aWx0aW4vY2xvbmUuYzozNTIKKyM6IGNvbXBhdC9wcmVjb21wb3NlX3V0ZjguYzo1NSBidWlsdGluL2Nsb25lLmM6MzUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byB1bmxpbmsgJyVzJyIKLW1zZ3N0ciAiZWNoZWMgbG9ycyBkZSBsJ3VubGluayBkZSAnJXMnIgorbXNnc3RyICLDqWNoZWMgbG9ycyBkZSBsJ3VubGluayBkZSAnJXMnIgogCiAjOiBidWlsdGluL2FkZC5jOjIwCiBtc2dpZCAiZ2l0IGFkZCBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgpAQCAtMTY0Nyw3ICsxOTc2LDggQEAKICJkaXJlY3RvcnkuXG4iCiBtc2dzdHIgIiIKICJMZSBjb21wb3J0ZW1lbnQgZGUgJ2dpdCBhZGQgJXMgKG91ICVzKScgc2FucyBhcmd1bWVudCBkZSBjaGVtaW4gZGVwdWlzIHVuXG4iCi0ic291cy1yw6lwZXJ0b2lyZSBkdSBwcm9qZXQgdmEgY2hhbmdlciBkYW5zIEdpdCAyLjAgZXQgbmUgZG9pdCBwbHVzIMOqdHJlIHV0aWxpc8OpLlxuIgorInNvdXMtcsOpcGVydG9pcmUgZHUgcHJvamV0IHZhIGNoYW5nZXIgZGFucyBHaXQgMi4wIGV0IG5lIGRvaXQgcGx1cyDDqnRyZSAiCisidXRpbGlzw6kuXG4iCiAiUG91ciBham91dGVyIGxlIGNvbnRlbnUgZGUgdG91dGUgbCdhcmJvcmVzY2VuY2UsIGxhbmNleiA6XG4iCiAiXG4iCiAiICBnaXQgYWRkICVzIDovXG4iCkBAIC0xNjU4LDcgKzE5ODgsOCBAQAogIiAgZ2l0IGFkZCAlcyAuXG4iCiAiICAob3UgZ2l0IGFkZCAlcyAuKVxuIgogIlxuIgotIkF2ZWMgbGEgdmVyc2lvbiBhY3R1ZWxsZSBkZSBHaXQsIGxhIGNvbW1hbmRlIGVzdCByZXN0cmVpbnRlIGF1IHLDqXBlcnRvaXJlIGNvdXJhbnQuXG4iCisiQXZlYyBsYSB2ZXJzaW9uIGFjdHVlbGxlIGRlIEdpdCwgbGEgY29tbWFuZGUgZXN0IHJlc3RyZWludGUgYXUgcsOpcGVydG9pcmUgIgorImNvdXJhbnQuXG4iCiAKICM6IGJ1aWx0aW4vYWRkLmM6MTAwCiAjLCBjLWZvcm1hdApAQCAtMTY3NiwyMyArMjAwNywyNiBAQAogIlJ1biAnZ2l0IHN0YXR1cycgdG8gY2hlY2sgdGhlIHBhdGhzIHlvdSByZW1vdmVkIGZyb20geW91ciB3b3JraW5nIHRyZWUuXG4iCiBtc2dzdHIgIiIKICJWb3VzIGF2ZXogbGFuY8OpICdnaXQgYWRkJyBzYW5zICctQSAoLS1hbGwpJyBuaSAnLS1pZ25vcmUtcmVtb3ZhbCcsXG4iCi0iZG9udCBsZSBjb21wb3J0ZW1lbnQgdmEgY2hhbmdlciBkYW5zIEdpdCAyLjAgYXZlYyBsZSByZXNwZWN0IGRlcyBjaGVtaW5zIHF1ZSB2b3VzIHN1cHByaW1lei5cbiIKKyJkb250IGxlIGNvbXBvcnRlbWVudCB2YSBjaGFuZ2VyIGRhbnMgR2l0IDIuMCBhdmVjIGxlIHJlc3BlY3QgZGVzIGNoZW1pbnMgcXVlICIKKyJ2b3VzIHN1cHByaW1lei5cbiIKICJMZXMgY2hlbWlucyB0ZWxzIHF1ZSAnJXMnIHF1aSBvbnQgw6l0w6lcbiIKICJyZXRpcsOpcyBkZSB2b3RyZSBjb3BpZSBkZSB0cmF2YWlsIHNvbnQgaWdub3LDqXMgYXZlYyBjZXR0ZSB2ZXJzaW9uIGRlIEdpdC5cbiIKICJcbiIKLSIqICdnaXQgYWRkIC0taWdub3JlLXJlbW92YWwgPGNoZW1pbj4nLCBxdWkgZXN0IGwnb3B0aW9uIHBhciBkw6lmYXV0IGFjdHVlbGxlLFxuIgorIiogJ2dpdCBhZGQgLS1pZ25vcmUtcmVtb3ZhbCA8Y2hlbWluPicsIHF1aSBlc3QgbCdvcHRpb24gcGFyIGTDqWZhdXQgIgorImFjdHVlbGxlLFxuIgogIiAgaWdub3JlIGxlcyBjaGVtaW5zIHF1ZSB2b3VzIGF2ZXogc3VwcHJpbcOpcyBkZSB2b3RyZSBjb3BpZSBkZSB0cmF2YWlsLlxuIgogIlxuIgogIiogJ2dpdCBhZGQgLS1hbGwgPGNoZW1pbj4nIHBlcm1ldCBkJ2VucmVnaXN0cmVyIGF1c3NpIGxlcyBzdXBwcmVzc2lvbnMuXG4iCiAiXG4iCi0iTGFuY2V6ICdnaXQgc3RhdHVzJyBwb3VyIHbDqXJpZmllciBsZXMgY2hlbWlucyBxdWUgdm91cyBhdmV6IHN1cHByaW3DqXMgZGUgdm90cmUgY29waWUgZGUgdHJhdmFpbC5cbiIKKyJMYW5jZXogJ2dpdCBzdGF0dXMnIHBvdXIgdsOpcmlmaWVyIGxlcyBjaGVtaW5zIHF1ZSB2b3VzIGF2ZXogc3VwcHJpbcOpcyBkZSAiCisidm90cmUgY29waWUgZGUgdHJhdmFpbC5cbiIKIAogIzogYnVpbHRpbi9hZGQuYzoxNDQKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5leHBlY3RlZCBkaWZmIHN0YXR1cyAlYyIKIG1zZ3N0ciAic3RhdHVzIGRlIGRpZmYgaW5hdHRlbmR1ICVjIgogCi0jOiBidWlsdGluL2FkZC5jOjE0OSBidWlsdGluL2NvbW1pdC5jOjIzMworIzogYnVpbHRpbi9hZGQuYzoxNDkgYnVpbHRpbi9jb21taXQuYzoyNjAKIG1zZ2lkICJ1cGRhdGluZyBmaWxlcyBmYWlsZWQiCiBtc2dzdHIgIsOpY2hlYyBkZSBsYSBtaXNlIMOgIGpvdXIgZGVzIGZpY2hpZXJzIgogCkBAIC0xNzAxLDE0MCArMjAzNSwxNDAgQEAKIG1zZ2lkICJyZW1vdmUgJyVzJ1xuIgogbXNnc3RyICJzdXBwcmVzc2lvbiBkZSAnJXMnXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MjUzCisjOiBidWlsdGluL2FkZC5jOjIzNwogbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVmcmVzaGluZyB0aGUgaW5kZXg6IgogbXNnc3RyICJNb2RpZmljYXRpb25zIG5vbiBpbmRleMOpZXMgYXByw6hzIHJhZnJhw65jaGlzc2VtZW50IGRlIGwnaW5kZXggOiIKIAotIzogYnVpbHRpbi9hZGQuYzoyNTYgYnVpbHRpbi9hZGQuYzo1NzIgYnVpbHRpbi9ybS5jOjI3NQotIywgYy1mb3JtYXQKLW1zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgotbXNnc3RyICJsZSBjaGVtaW4gJyVzJyBuZSBjb3JyZXNwb25kIMOgIGF1Y3VuIGZpY2hpZXIiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MzM5CisjOiBidWlsdGluL2FkZC5jOjI5OQogbXNnaWQgIkNvdWxkIG5vdCByZWFkIHRoZSBpbmRleCIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSBsaXJlIGwnaW5kZXgiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzQ5CisjOiBidWlsdGluL2FkZC5jOjMxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nLiIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkJ291dnJpciAnJXMnIGVuIMOpY3JpdHVyZS4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzUzCisjOiBidWlsdGluL2FkZC5jOjMxNAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBwYXRjaCIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkJ8OpY3JpcmUgbGUgcGF0Y2giCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzU4CisjOiBidWlsdGluL2FkZC5jOjMxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgc3RhdCAnJXMnIgogbXNnc3RyICJTdGF0IGRlICclcycgaW1wb3NzaWJsZSIKIAotIzogYnVpbHRpbi9hZGQuYzozNjAKKyM6IGJ1aWx0aW4vYWRkLmM6MzIxCiBtc2dpZCAiRW1wdHkgcGF0Y2guIEFib3J0ZWQuIgogbXNnc3RyICJQYXRjaCB2aWRlLiBBYmFuZG9uLiIKIAotIzogYnVpbHRpbi9hZGQuYzozNjYKKyM6IGJ1aWx0aW4vYWRkLmM6MzI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBhcHBseSAnJXMnIgogbXNnc3RyICJJbXBvc3NpYmxlIGQnYXBwbGlxdWVyICclcyciCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzc2CisjOiBidWlsdGluL2FkZC5jOjMzNwogbXNnaWQgIlRoZSBmb2xsb3dpbmcgcGF0aHMgYXJlIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKLW1zZ3N0ciAiTGVzIGNoZW1pbnMgc3VpdmFudHMgc29udCBpZ25vcsOpcyBwYXIgdW4gZGUgdm9zIGZpY2hpZXJzIC5naXRpZ25vcmUgOlxuIgorbXNnc3RyICIiCisiTGVzIGNoZW1pbnMgc3VpdmFudHMgc29udCBpZ25vcsOpcyBwYXIgdW4gZGUgdm9zIGZpY2hpZXJzIC5naXRpZ25vcmUgOlxuIgogCi0jOiBidWlsdGluL2FkZC5jOjM5MyBidWlsdGluL2NsZWFuLmM6MTYxIGJ1aWx0aW4vZmV0Y2guYzo3OCBidWlsdGluL212LmM6NjMKLSM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzYgYnVpbHRpbi9wdXNoLmM6NDI1IGJ1aWx0aW4vcmVtb3RlLmM6MTI1MwotIzogYnVpbHRpbi9ybS5jOjIwNgorIzogYnVpbHRpbi9hZGQuYzozNTQgYnVpbHRpbi9jbGVhbi5jOjg3NSBidWlsdGluL2ZldGNoLmM6OTIgYnVpbHRpbi9tdi5jOjY2CisjOiBidWlsdGluL3BydW5lLXBhY2tlZC5jOjczIGJ1aWx0aW4vcHVzaC5jOjQ1OSBidWlsdGluL3JlbW90ZS5jOjEyNTMKKyM6IGJ1aWx0aW4vcm0uYzoyNjkKIG1zZ2lkICJkcnkgcnVuIgotbXNnc3RyICLDoCB2aWRlIgorbXNnc3RyICJzaW11bGVyIGwnYWN0aW9uIgogCi0jOiBidWlsdGluL2FkZC5jOjM5NCBidWlsdGluL2FwcGx5LmM6NDQwOSBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5Ci0jOiBidWlsdGluL2NvbW1pdC5jOjExNTIgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEzCi0jOiBidWlsdGluL2xvZy5jOjE1MTggYnVpbHRpbi9tdi5jOjYyIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEyCisjOiBidWlsdGluL2FkZC5jOjM1NSBidWlsdGluL2FwcGx5LmM6NDQxMCBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNDkgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEyCisjOiBidWlsdGluL2xvZy5jOjE1OTIgYnVpbHRpbi9tdi5jOjY1IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCiBtc2dpZCAiYmUgdmVyYm9zZSIKIG1zZ3N0ciAibW9kZSB2ZXJiZXV4IgogCi0jOiBidWlsdGluL2FkZC5jOjM5NgorIzogYnVpbHRpbi9hZGQuYzozNTcKIG1zZ2lkICJpbnRlcmFjdGl2ZSBwaWNraW5nIgogbXNnc3RyICJzw6lsZWN0aW9uIGludGVyYWN0aXZlIgogCi0jOiBidWlsdGluL2FkZC5jOjM5NyBidWlsdGluL2NoZWNrb3V0LmM6MTA2MyBidWlsdGluL3Jlc2V0LmM6MjU4CisjOiBidWlsdGluL2FkZC5jOjM1OCBidWlsdGluL2NoZWNrb3V0LmM6MTEwOSBidWlsdGluL3Jlc2V0LmM6MjcyCiBtc2dpZCAic2VsZWN0IGh1bmtzIGludGVyYWN0aXZlbHkiCiBtc2dzdHIgInPDqWxlY3Rpb24gaW50ZXJhY3RpdmUgZGVzIHNlY3Rpb25zIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OAorIzogYnVpbHRpbi9hZGQuYzozNTkKIG1zZ2lkICJlZGl0IGN1cnJlbnQgZGlmZiBhbmQgYXBwbHkiCiBtc2dzdHIgIsOpZGl0aW9uIGR1IGRpZmYgYWN0dWVsIGV0IGFwcGxpY2F0aW9uIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OQorIzogYnVpbHRpbi9hZGQuYzozNjAKIG1zZ2lkICJhbGxvdyBhZGRpbmcgb3RoZXJ3aXNlIGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgInBlcm1ldHRyZSBsJ2Fqb3V0IGRlIGZpY2hpZXJzIGlnbm9yw6lzIgogCi0jOiBidWlsdGluL2FkZC5jOjQwMAorIzogYnVpbHRpbi9hZGQuYzozNjEKIG1zZ2lkICJ1cGRhdGUgdHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAibWV0dHJlIMOgIGpvdXIgbGVzIGZpY2hpZXJzIHN1aXZpcyIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDEKKyM6IGJ1aWx0aW4vYWRkLmM6MzYyCiBtc2dpZCAicmVjb3JkIG9ubHkgdGhlIGZhY3QgdGhhdCB0aGUgcGF0aCB3aWxsIGJlIGFkZGVkIGxhdGVyIgogbXNnc3RyICJlbnJlZ2lzdHJlciBzZXVsZW1lbnQgbGUgZmFpdCBxdWUgbGUgY2hlbWluIHNlcmEgYWpvdXTDqSBwbHVzIHRhcmQiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAyCisjOiBidWlsdGluL2FkZC5jOjM2MwogbXNnaWQgImFkZCBjaGFuZ2VzIGZyb20gYWxsIHRyYWNrZWQgYW5kIHVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAiYWpvdXRlciBsZXMgbW9kaWZpY2F0aW9ucyBkZSB0b3VzIGxlcyBmaWNoaWVycyBzdWl2aXMgZXQgbm9uIHN1aXZpcyIKIAogIy4gdGFrZXMgbm8gYXJndW1lbnRzCi0jOiBidWlsdGluL2FkZC5jOjQwNQorIzogYnVpbHRpbi9hZGQuYzozNjYKIG1zZ2lkICJpZ25vcmUgcGF0aHMgcmVtb3ZlZCBpbiB0aGUgd29ya2luZyB0cmVlIChzYW1lIGFzIC0tbm8tYWxsKSIKLW1zZ3N0ciAiaWdub3JlciBsZXMgY2hlbWlucyBlZmZhY8OpcyBkYW5zIGxhIGNvcGllIGRlIHRyYXZhaWwgKGlkZW50aXF1ZSDDoCAtLW5vLWFsbCkiCittc2dzdHIgIiIKKyJpZ25vcmVyIGxlcyBjaGVtaW5zIGVmZmFjw6lzIGRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCAoaWRlbnRpcXVlIMOgIC0tbm8tYWxsKSIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDcKKyM6IGJ1aWx0aW4vYWRkLmM6MzY4CiBtc2dpZCAiZG9uJ3QgYWRkLCBvbmx5IHJlZnJlc2ggdGhlIGluZGV4IgogbXNnc3RyICJuZSBwYXMgYWpvdXRlciwganVzdGUgcmFmcmHDrmNoaXIgbCdpbmRleCIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDgKKyM6IGJ1aWx0aW4vYWRkLmM6MzY5CiBtc2dpZCAianVzdCBza2lwIGZpbGVzIHdoaWNoIGNhbm5vdCBiZSBhZGRlZCBiZWNhdXNlIG9mIGVycm9ycyIKLW1zZ3N0ciAic2F1dGVyIHNldWxlbWVudCBsZXMgZmljaGllcnMgcXVpIG5lIHBldXZlbnQgcGFzIMOqdHJlIGFqb3V0w6lzIGR1IGZhaXQgZCdlcnJldXJzIgorbXNnc3RyICIiCisic2F1dGVyIHNldWxlbWVudCBsZXMgZmljaGllcnMgcXVpIG5lIHBldXZlbnQgcGFzIMOqdHJlIGFqb3V0w6lzIGR1IGZhaXQgIgorImQnZXJyZXVycyIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDkKKyM6IGJ1aWx0aW4vYWRkLmM6MzcwCiBtc2dpZCAiY2hlY2sgaWYgLSBldmVuIG1pc3NpbmcgLSBmaWxlcyBhcmUgaWdub3JlZCBpbiBkcnkgcnVuIgogbXNnc3RyICJ2w6lyaWZpZXIgc2kgZGVzIGZpY2hpZXJzIC0gbcOqbWUgbWFucXVhbnRzIC0gc29udCBpZ25vcsOpcywgw6AgdmlkZSIKIAotIzogYnVpbHRpbi9hZGQuYzo0MzEKKyM6IGJ1aWx0aW4vYWRkLmM6MzkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZSAtZiBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gYWRkIHRoZW0uXG4iCiBtc2dzdHIgIlV0aWxpc2V6IC1mIHNpIHZvdXMgdm91bGV6IHLDqWVsbGVtZW50IGxlcyBham91dGVyLlxuIgogCi0jOiBidWlsdGluL2FkZC5jOjQzMgorIzogYnVpbHRpbi9hZGQuYzozOTMKIG1zZ2lkICJubyBmaWxlcyBhZGRlZCIKIG1zZ3N0ciAiYXVjdW4gZmljaGllciBham91dMOpIgogCi0jOiBidWlsdGluL2FkZC5jOjQzOAorIzogYnVpbHRpbi9hZGQuYzozOTkKIG1zZ2lkICJhZGRpbmcgZmlsZXMgZmFpbGVkIgogbXNnc3RyICLDqWNoZWMgZGUgbCdham91dCBkZSBmaWNoaWVycyIKIAotIzogYnVpbHRpbi9hZGQuYzo0NzcKKyM6IGJ1aWx0aW4vYWRkLmM6NDM4CiBtc2dpZCAiLUEgYW5kIC11IGFyZSBtdXR1YWxseSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi1BIGV0IC11IHNvbnQgbXV0dWVsbGVtZW50IGluY29tcGF0aWJsZXMiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDk1CisjOiBidWlsdGluL2FkZC5jOjQ1NgogbXNnaWQgIk9wdGlvbiAtLWlnbm9yZS1taXNzaW5nIGNhbiBvbmx5IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCAtLWRyeS1ydW4iCi1tc2dzdHIgIkwnb3B0aW9uIC0taWdub3JlLW1pc3NpbmcgbmUgcGV1dCDDqnRyZSB1dGlsaXPDqWUgcXUnZW4gY29tcGzDqW1lbnQgZGUgLS1kcnktcnVuIgorbXNnc3RyICIiCisiTCdvcHRpb24gLS1pZ25vcmUtbWlzc2luZyBuZSBwZXV0IMOqdHJlIHV0aWxpc8OpZSBxdSdlbiBjb21wbMOpbWVudCBkZSAtLWRyeS1ydW4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NTI1CisjOiBidWlsdGluL2FkZC5jOjQ4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3RoaW5nIHNwZWNpZmllZCwgbm90aGluZyBhZGRlZC5cbiIKIG1zZ3N0ciAiUmllbiBkZSBzcMOpY2lmacOpLCByaWVuIG4nYSDDqXTDqSBham91dMOpLlxuIgogCi0jOiBidWlsdGluL2FkZC5jOjUyNgorIzogYnVpbHRpbi9hZGQuYzo0ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWF5YmUgeW91IHdhbnRlZCB0byBzYXkgJ2dpdCBhZGQgLic/XG4iCiBtc2dzdHIgIlZvdXMgdm91bGlleiBzw7tyZW1lbnQgZGlyZSAnZ2l0IGFkZCAuJyA/XG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NTMyIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6NjYgYnVpbHRpbi9jbGVhbi5jOjIwNAotIzogYnVpbHRpbi9jb21taXQuYzoyOTMgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyMzUKKyM6IGJ1aWx0aW4vYWRkLmM6NDkyIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTcyIGJ1aWx0aW4vY2xlYW4uYzo5MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzIwIGJ1aWx0aW4vbXYuYzo4NiBidWlsdGluL3Jlc2V0LmM6MjI0IGJ1aWx0aW4vcm0uYzoyOTkKIG1zZ2lkICJpbmRleCBmaWxlIGNvcnJ1cHQiCiBtc2dzdHIgImZpY2hpZXIgZCdpbmRleCBjb3Jyb21wdSIKIAotIzogYnVpbHRpbi9hZGQuYzo2MDQgYnVpbHRpbi9hcHBseS5jOjQ1MDUgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6MzcwCisjOiBidWlsdGluL2FkZC5jOjU4OSBidWlsdGluL2FwcGx5LmM6NDUwNiBidWlsdGluL212LmM6MjU5IGJ1aWx0aW4vcm0uYzo0MzIKIG1zZ2lkICJVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIkltcG9zc2libGUgZCfDqWNyaXJlIGxlIG5vdXZlYXUgZmljaGllciBkJ2luZGV4IgogCkBAIC0xODUwLDcgKzIxODQsNyBAQAogIzogYnVpbHRpbi9hcHBseS5jOjEyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnJlY29nbml6ZWQgd2hpdGVzcGFjZSBpZ25vcmUgb3B0aW9uICclcyciCi1tc2dzdHIgIm9wdGlvbiBkJ2lnbm9yYW5jZSBkJ2VzcGNlIG5vbiByZWNvbm51ZSAnJXMnIgorbXNnc3RyICJvcHRpb24gZCdpZ25vcmFuY2UgZCdlc3BhY2Ugbm9uIHJlY29ubnVlICclcyciCiAKICM6IGJ1aWx0aW4vYXBwbHkuYzo4MjMKICMsIGMtZm9ybWF0CkBAIC0xODcwLDI3ICsyMjA0LDM0IEBACiAjOiBidWlsdGluL2FwcGx5LmM6OTQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCBhcHBseTogYmFkIGdpdC1kaWZmIC0gZXhwZWN0ZWQgL2Rldi9udWxsLCBnb3QgJXMgb24gbGluZSAlZCIKLW1zZ3N0ciAiZ2l0IGFwcGx5IDogbWF1dmFpcyBmb3JtYXQgZGUgZ2l0LWRpZmYgLSAvZGV2L251bGwgYXR0ZW5kdSwgJXMgdHJvdXbDqSDDoCBsYSBsaWduZSAlZCIKK21zZ3N0ciAiIgorImdpdCBhcHBseSA6IG1hdXZhaXMgZm9ybWF0IGRlIGdpdC1kaWZmIC0gL2Rldi9udWxsIGF0dGVuZHUsICVzIHRyb3V2w6kgw6AgbGEgIgorImxpZ25lICVkIgogCiAjOiBidWlsdGluL2FwcGx5LmM6OTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCBhcHBseTogYmFkIGdpdC1kaWZmIC0gaW5jb25zaXN0ZW50IG5ldyBmaWxlbmFtZSBvbiBsaW5lICVkIgotbXNnc3RyICJnaXQgYXBwbHkgOiBtYXV2YWlzIGZvcm1hdCBkZSBnaXQtZGlmZiAtIG5vdXZlYXUgbm9tIGRlIGZpY2hpZXIgaW5jb25zaXN0YW50IMOgIGxhIGxpZ25lICVkIgorbXNnc3RyICIiCisiZ2l0IGFwcGx5IDogbWF1dmFpcyBmb3JtYXQgZGUgZ2l0LWRpZmYgLSBub3V2ZWF1IG5vbSBkZSBmaWNoaWVyIGluY29uc2lzdGFudCAiCisiw6AgbGEgbGlnbmUgJWQiCiAKICM6IGJ1aWx0aW4vYXBwbHkuYzo5NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IGFwcGx5OiBiYWQgZ2l0LWRpZmYgLSBpbmNvbnNpc3RlbnQgb2xkIGZpbGVuYW1lIG9uIGxpbmUgJWQiCi1tc2dzdHIgImdpdCBhcHBseSA6IG1hdXZhaXMgZm9ybWF0IGRlIGdpdC1kaWZmIC0gYW5jaWVuIG5vbSBkZSBmaWNoaWVyIGluY29uc2lzdGFudCDDoCBsYSBsaWduZSAlZCIKK21zZ3N0ciAiIgorImdpdCBhcHBseSA6IG1hdXZhaXMgZm9ybWF0IGRlIGdpdC1kaWZmIC0gYW5jaWVuIG5vbSBkZSBmaWNoaWVyIGluY29uc2lzdGFudCAiCisiw6AgbGEgbGlnbmUgJWQiCiAKICM6IGJ1aWx0aW4vYXBwbHkuYzo5NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IGFwcGx5OiBiYWQgZ2l0LWRpZmYgLSBleHBlY3RlZCAvZGV2L251bGwgb24gbGluZSAlZCIKLW1zZ3N0ciAiZ2l0IGFwcGx5IDogbWF1dmFpcyBmb3JtYXQgZGUgZ2l0LWRpZmYgLSAvZGV2L251bGwgYXR0ZW5kdSDDoCBsYSBsaWduZSAlZCIKK21zZ3N0ciAiIgorImdpdCBhcHBseSA6IG1hdXZhaXMgZm9ybWF0IGRlIGdpdC1kaWZmIC0gL2Rldi9udWxsIGF0dGVuZHUgw6AgbGEgbGlnbmUgJWQiCiAKICM6IGJ1aWx0aW4vYXBwbHkuYzoxNDIyCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlY291bnQ6IHVuZXhwZWN0ZWQgbGluZTogJS4qcyIKLW1zZ3N0ciAicmVjb3VudCA6IGxpZ25lIGluYXR0ZW5kdWUgOiAlLipzIgorbXNnc3RyICJyZWNvbXB0YWdlIDogbGlnbmUgaW5hdHRlbmR1ZSA6ICUuKnMiCiAKICM6IGJ1aWx0aW4vYXBwbHkuYzoxNDc5CiAjLCBjLWZvcm1hdApAQCAtMTkwNSw4ICsyMjQ2LDEyIEBACiBtc2dpZF9wbHVyYWwgIiIKICJnaXQgZGlmZiBoZWFkZXIgbGFja3MgZmlsZW5hbWUgaW5mb3JtYXRpb24gd2hlbiByZW1vdmluZyAlZCBsZWFkaW5nIHBhdGhuYW1lICIKICJjb21wb25lbnRzIChsaW5lICVkKSIKLW1zZ3N0clswXSAiaW5mb3JtYXRpb24gZGUgbm9tIGRlIGZpY2hpZXIgbWFucXVhbnRlIGRhbnMgbCdlbi10w6p0ZSBkZSBnaXQgZGlmZiBsb3JzIGRlIGxhIHN1cHByZXNzaW9uIGRlICVkIGNvbXBvc2FudCBkZSBwcsOpZml4ZSBkZSBjaGVtaW4gKGxpZ25lICVkKSIKLW1zZ3N0clsxXSAiaW5mb3JtYXRpb24gZGUgbm9tIGRlIGZpY2hpZXIgbWFucXVhbnRlIGRhbnMgbCdlbi10w6p0ZSBkZSBnaXQgZGlmZiBsb3JzIGRlIGxhIHN1cHByZXNzaW9uIGRlICVkIGNvbXBvc2FudHMgZGUgcHLDqWZpeGUgZGUgY2hlbWluIChsaWduZSAlZCkiCittc2dzdHJbMF0gIiIKKyJpbmZvcm1hdGlvbiBkZSBub20gZGUgZmljaGllciBtYW5xdWFudGUgZGFucyBsJ2VuLXTDqnRlIGRlIGdpdCBkaWZmIGxvcnMgZGUgIgorImxhIHN1cHByZXNzaW9uIGRlICVkIGNvbXBvc2FudCBkZSBwcsOpZml4ZSBkZSBjaGVtaW4gKGxpZ25lICVkKSIKK21zZ3N0clsxXSAiIgorImluZm9ybWF0aW9uIGRlIG5vbSBkZSBmaWNoaWVyIG1hbnF1YW50ZSBkYW5zIGwnZW4tdMOqdGUgZGUgZ2l0IGRpZmYgbG9ycyBkZSAiCisibGEgc3VwcHJlc3Npb24gZGUgJWQgY29tcG9zYW50cyBkZSBwcsOpZml4ZSBkZSBjaGVtaW4gKGxpZ25lICVkKSIKIAogIzogYnVpbHRpbi9hcHBseS5jOjE2NTYKIG1zZ2lkICJuZXcgZmlsZSBkZXBlbmRzIG9uIG9sZCBjb250ZW50cyIKQEAgLTE5ODQsNyArMjMyOSw4IEBACiBtc2dpZCAiIgogIndoaWxlIHNlYXJjaGluZyBmb3I6XG4iCiAiJS4qcyIKLW1zZ3N0ciAicGVuZGFudCBsYSByZWNoZXJjaGUgZGUgOlxuIgorbXNnc3RyICIiCisicGVuZGFudCBsYSByZWNoZXJjaGUgZGUgOlxuIgogIiUuKnMiCiAKICM6IGJ1aWx0aW4vYXBwbHkuYzoyODQzCkBAIC0yMDAwLDcgKzIzNDYsOSBAQAogIzogYnVpbHRpbi9hcHBseS5jOjI5NTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmluYXJ5IHBhdGNoIHRvICclcycgY3JlYXRlcyBpbmNvcnJlY3QgcmVzdWx0IChleHBlY3RpbmcgJXMsIGdvdCAlcykiCi1tc2dzdHIgImxlIHBhdGNoIGJpbmFpcmUgc3VyICclcycgY3LDqWUgdW4gcsOpc3VsdGF0IGluY29ycmVjdCAoJXMgYXR0ZW5kdSwgbWFpcyAlcyB0cm91dsOpKSIKK21zZ3N0ciAiIgorImxlIHBhdGNoIGJpbmFpcmUgc3VyICclcycgY3LDqWUgdW4gcsOpc3VsdGF0IGluY29ycmVjdCAoJXMgYXR0ZW5kdSwgbWFpcyAlcyAiCisidHJvdXbDqSkiCiAKICM6IGJ1aWx0aW4vYXBwbHkuYzoyOTczCiAjLCBjLWZvcm1hdApAQCAtMjAxMiwyOTMgKzIzNjAsMzAyIEBACiBtc2dpZCAiY2Fubm90IGNoZWNrb3V0ICVzIgogbXNnc3RyICJleHRyYWN0aW9uIGRlICVzIGltcG9zc2libGUiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMTQwIGJ1aWx0aW4vYXBwbHkuYzozMTQ5IGJ1aWx0aW4vYXBwbHkuYzozMTkzCisjOiBidWlsdGluL2FwcGx5LmM6MzE0MCBidWlsdGluL2FwcGx5LmM6MzE0OSBidWlsdGluL2FwcGx5LmM6MzE5NAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWFkIG9mICVzIGZhaWxlZCIKLW1zZ3N0ciAiZWNoZWMgZGUgbGEgbGVjdHVyZSBkZSAlcyIKK21zZ3N0ciAiw6ljaGVjIGRlIGxhIGxlY3R1cmUgZGUgJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMTczIGJ1aWx0aW4vYXBwbHkuYzozMzk1CisjOiBidWlsdGluL2FwcGx5LmM6MzE3NCBidWlsdGluL2FwcGx5LmM6MzM5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICVzIGhhcyBiZWVuIHJlbmFtZWQvZGVsZXRlZCIKIG1zZ3N0ciAibGUgY2hlbWluICVzIGEgw6l0w6kgcmVub21tw6kvc3VwcHJpbcOpIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzI1NCBidWlsdGluL2FwcGx5LmM6MzQwOQorIzogYnVpbHRpbi9hcHBseS5jOjMyNTUgYnVpbHRpbi9hcHBseS5jOjM0MTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4IgogbXNnc3RyICIlcyA6IG4nZXhpc3RlIHBhcyBkYW5zIGwnaW5kZXgiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMjU4IGJ1aWx0aW4vYXBwbHkuYzozNDAxIGJ1aWx0aW4vYXBwbHkuYzozNDIzCisjOiBidWlsdGluL2FwcGx5LmM6MzI1OSBidWlsdGluL2FwcGx5LmM6MzQwMiBidWlsdGluL2FwcGx5LmM6MzQyNAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogJXMiCiBtc2dzdHIgIiVzIDogJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMjYzIGJ1aWx0aW4vYXBwbHkuYzozNDE3CisjOiBidWlsdGluL2FwcGx5LmM6MzI2NCBidWlsdGluL2FwcGx5LmM6MzQxOAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogZG9lcyBub3QgbWF0Y2ggaW5kZXgiCiBtc2dzdHIgIiVzIDogbmUgY29ycmVzcG9uZCBwYXMgw6AgbCdpbmRleCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMzNjUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMzY2CiBtc2dpZCAicmVtb3ZhbCBwYXRjaCBsZWF2ZXMgZmlsZSBjb250ZW50cyIKIG1zZ3N0ciAibGUgcGF0Y2ggZGUgc3VwcHJlc3Npb24gbGFpc3NlIHVuIGNvbnRlbnUgZGFucyBsZSBmaWNoaWVyIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzQzNAorIzogYnVpbHRpbi9hcHBseS5jOjM0MzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IHdyb25nIHR5cGUiCiBtc2dzdHIgIiVzIDogdHlwZSBlcnJvbsOpIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzQzNgorIzogYnVpbHRpbi9hcHBseS5jOjM0MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgaGFzIHR5cGUgJW8sIGV4cGVjdGVkICVvIgogbXNnc3RyICIlcyBlc3QgZGUgdHlwZSAlbywgbWFpcyAlbyBhdHRlbmR1IgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzUzNworIzogYnVpbHRpbi9hcHBseS5jOjM1MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGFscmVhZHkgZXhpc3RzIGluIGluZGV4IgogbXNnc3RyICIlcyA6IGV4aXN0ZSBkw6lqw6AgZGFucyBsJ2luZGV4IgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU0MAorIzogYnVpbHRpbi9hcHBseS5jOjM1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGFscmVhZHkgZXhpc3RzIGluIHdvcmtpbmcgZGlyZWN0b3J5IgogbXNnc3RyICIlcyA6IGV4aXN0ZSBkw6lqw6AgZGFucyBsYSBjb3BpZSBkZSB0cmF2YWlsIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU2MAorIzogYnVpbHRpbi9hcHBseS5jOjM1NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV3IG1vZGUgKCVvKSBvZiAlcyBkb2VzIG5vdCBtYXRjaCBvbGQgbW9kZSAoJW8pIgogbXNnc3RyICJsZSBub3V2ZWF1IG1vZGUgKCVvKSBkZSAlcyBuZSBjb3JyZXNwb25kIHBhcyDDoCBsJ2FuY2llbiBtb2RlICglbykiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTY1CisjOiBidWlsdGluL2FwcGx5LmM6MzU2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXcgbW9kZSAoJW8pIG9mICVzIGRvZXMgbm90IG1hdGNoIG9sZCBtb2RlICglbykgb2YgJXMiCi1tc2dzdHIgImxlIG5vdXZlYXUgbW9kZSAoJW8pIGRlICVzIG5lIGNvcnJlc3BvbmQgcGFzIMOgIGwnYW5jaWVuIG1vZGUgKCVvKSBkZSAlcyIKK21zZ3N0ciAiIgorImxlIG5vdXZlYXUgbW9kZSAoJW8pIGRlICVzIG5lIGNvcnJlc3BvbmQgcGFzIMOgIGwnYW5jaWVuIG1vZGUgKCVvKSBkZSAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NzMKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBwYXRjaCBkb2VzIG5vdCBhcHBseSIKIG1zZ3N0ciAiJXMgOiBsZSBwYXRjaCBuZSBzJ2FwcGxpcXVlIHBhcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1ODYKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoZWNraW5nIHBhdGNoICVzLi4uIgogbXNnc3RyICJWw6lyaWZpY2F0aW9uIGR1IHBhdGNoICVzLi4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzY3OSBidWlsdGluL2NoZWNrb3V0LmM6MjE2IGJ1aWx0aW4vcmVzZXQuYzoxMjQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNjgwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTMgYnVpbHRpbi9yZXNldC5jOjEyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWtlX2NhY2hlX2VudHJ5IGZhaWxlZCBmb3IgcGF0aCAnJXMnIgotbXNnc3RyICJlY2hlYyBkZSBtYWtlX2NhY2hlX2VudHJ5IHBvdXIgbGUgY2hlbWluICclcyciCittc2dzdHIgIsOpY2hlYyBkZSBtYWtlX2NhY2hlX2VudHJ5IHBvdXIgbGUgY2hlbWluICclcyciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODIyCisjOiBidWlsdGluL2FwcGx5LmM6MzgyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlICVzIGZyb20gaW5kZXgiCiBtc2dzdHIgInN1cHByZXNzaW9uIGRlICVzIGRhbnMgbCdpbmRleCBpbXBvc3NpYmxlIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg1MAorIzogYnVpbHRpbi9hcHBseS5jOjM4NTEKICMsIGMtZm9ybWF0Ci1tc2dpZCAiY29ycnVwdCBwYXRjaCBmb3Igc3VicHJvamVjdCAlcyIKLW1zZ3N0ciAicGF0Y2ggY29ycm9tcHUgcG91ciBsZSBzb3VzLXByb2pldCAlcyIKK21zZ2lkICJjb3JydXB0IHBhdGNoIGZvciBzdWJtb2R1bGUgJXMiCittc2dzdHIgInBhdGNoIGNvcnJvbXB1IHBvdXIgbGUgc291cy1tb2R1bGUgJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODU0CisjOiBidWlsdGluL2FwcGx5LmM6Mzg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gc3RhdCBuZXdseSBjcmVhdGVkIGZpbGUgJyVzJyIKIG1zZ3N0ciAic3RhdCBkdSBmaWNoaWVyIG5vdXZlbGxlbWVudCBjcsOpw6kgJyVzJyBpbXBvc3NpYmxlIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg1OQorIzogYnVpbHRpbi9hcHBseS5jOjM4NjAKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBiYWNraW5nIHN0b3JlIGZvciBuZXdseSBjcmVhdGVkIGZpbGUgJXMiCi1tc2dzdHIgImNyw6lhdGlvbiBkdSBtYWdhc2luIGRlIHN0b2NrYWdlIHBvdXIgbGUgZmljaGllciBub3V2ZWxsZW1lbnQgY3LDqcOpICVzIGltcG9zc2libGUiCittc2dzdHIgIiIKKyJjcsOpYXRpb24gZHUgbWFnYXNpbiBkZSBzdG9ja2FnZSBwb3VyIGxlIGZpY2hpZXIgbm91dmVsbGVtZW50IGNyw6nDqSAlcyAiCisiaW1wb3NzaWJsZSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NjIgYnVpbHRpbi9hcHBseS5jOjM5NzAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODYzIGJ1aWx0aW4vYXBwbHkuYzozOTcxCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhZGQgY2FjaGUgZW50cnkgZm9yICVzIgotbXNnc3RyICJham91dCBkZSBsJ2VudHLDqWUgZGUgY2FjaGUgJXMgaW1wb3NzaWJsZSIKK21zZ3N0ciAiYWpvdXQgZGUgbCfDqWzDqW1lbnQgZGUgY2FjaGUgJXMgaW1wb3NzaWJsZSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4OTUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODk2CiAjLCBjLWZvcm1hdAogbXNnaWQgImNsb3NpbmcgZmlsZSAnJXMnIgogbXNnc3RyICJmZXJtZXR1cmUgZHUgZmljaGllciAnJXMnIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzk0NAorIzogYnVpbHRpbi9hcHBseS5jOjM5NDUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIGZpbGUgJyVzJyBtb2RlICVvIgogbXNnc3RyICLDqWNyaXR1cmUgZHUgZmljaGllciAnJXMnIG1vZGUgJW8gaW1wb3NzaWJsZSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwMzEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFwcGxpZWQgcGF0Y2ggJXMgY2xlYW5seS4iCiBtc2dzdHIgIlBhdGNoICVzIGFwcGxpcXXDqSBwcm9wcmVtZW50LiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwMzkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQwCiBtc2dpZCAiaW50ZXJuYWwgZXJyb3IiCiBtc2dzdHIgImVycmV1ciBpbnRlcm5lIgogCiAjLiBTYXkgdGhpcyBldmVuIHdpdGhvdXQgLS12ZXJib3NlCi0jOiBidWlsdGluL2FwcGx5LmM6NDA0MgorIzogYnVpbHRpbi9hcHBseS5jOjQwNDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXBwbHlpbmcgcGF0Y2ggJSVzIHdpdGggJWQgcmVqZWN0Li4uIgogbXNnaWRfcGx1cmFsICJBcHBseWluZyBwYXRjaCAlJXMgd2l0aCAlZCByZWplY3RzLi4uIgogbXNnc3RyWzBdICJBcHBsaWNhdGlvbiBkdSBwYXRjaCAlJXMgYXZlYyAlZCByZWpldC4uLiIKIG1zZ3N0clsxXSAiQXBwbGljYXRpb24gZHUgcGF0Y2ggJSVzIGF2ZWMgJWQgcmVqZXRzLi4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDA1MgorIzogYnVpbHRpbi9hcHBseS5jOjQwNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJ1bmNhdGluZyAucmVqIGZpbGVuYW1lIHRvICUuKnMucmVqIgogbXNnc3RyICJ0cm9uY2F0dXJlIGR1IG5vbSBkZSBmaWNoaWVyIC5yZWogZW4gJS4qcy5yZWoiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDczCisjOiBidWlsdGluL2FwcGx5LmM6NDA3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJIdW5rICMlZCBhcHBsaWVkIGNsZWFubHkuIgogbXNnc3RyICJTZWN0aW9uIG7CsCVkIGFwcGxpcXXDqWUgcHJvcHJlbWVudC4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc2CisjOiBidWlsdGluL2FwcGx5LmM6NDA3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWplY3RlZCBodW5rICMlZC4iCiBtc2dzdHIgIlNlY3Rpb24gbsKwJWQgcmVqZXTDqWUuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDIyNgorIzogYnVpbHRpbi9hcHBseS5jOjQyMjcKIG1zZ2lkICJ1bnJlY29nbml6ZWQgaW5wdXQiCiBtc2dzdHIgImVudHLDqWUgbm9uIHJlY29ubnVlIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDIzNworIzogYnVpbHRpbi9hcHBseS5jOjQyMzgKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCBpbmRleCBmaWxlIgogbXNnc3RyICJsZWN0dXJlIGR1IGZpY2hpZXIgZCdpbmRleCBpbXBvc3NpYmxlIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM1NiBidWlsdGluL2FwcGx5LmM6NDM1OSBidWlsdGluL2Nsb25lLmM6OTIKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2MworIzogYnVpbHRpbi9hcHBseS5jOjQzNTcgYnVpbHRpbi9hcHBseS5jOjQzNjAgYnVpbHRpbi9jbG9uZS5jOjkwCisjOiBidWlsdGluL2ZldGNoLmM6NzcKIG1zZ2lkICJwYXRoIgogbXNnc3RyICJjaGVtaW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU3CisjOiBidWlsdGluL2FwcGx5LmM6NDM1OAogbXNnaWQgImRvbid0IGFwcGx5IGNoYW5nZXMgbWF0Y2hpbmcgdGhlIGdpdmVuIHBhdGgiCiBtc2dzdHIgIm5lIHBhcyBhcHBsaXF1ZXIgbGVzIG1vZGlmaWNhdGlvbnMgcXVpIGNvcnJlc3BvbmRlbnQgYXUgY2hlbWluIGRvbm7DqSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYxCiBtc2dpZCAiYXBwbHkgY2hhbmdlcyBtYXRjaGluZyB0aGUgZ2l2ZW4gcGF0aCIKIG1zZ3N0ciAiYXBwbGlxdWVyIGxlcyBtb2RpZmljYXRpb25zIHF1aSBjb3JyZXNwb25kZW50IGF1IGNoZW1pbiBkb25uw6kiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYyCisjOiBidWlsdGluL2FwcGx5LmM6NDM2MwogbXNnaWQgIm51bSIKIG1zZ3N0ciAibnVtIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2MworIzogYnVpbHRpbi9hcHBseS5jOjQzNjQKIG1zZ2lkICJyZW1vdmUgPG51bT4gbGVhZGluZyBzbGFzaGVzIGZyb20gdHJhZGl0aW9uYWwgZGlmZiBwYXRocyIKIG1zZ3N0ciAic3VwcHJpbWVyIDxudW0+IGJhcnJlcyBvYmxpcXVlcyBkZXMgY2hlbWlucyB0cmFkaXRpb25uZWxzIGRlIGRpZmYiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY2CisjOiBidWlsdGluL2FwcGx5LmM6NDM2NwogbXNnaWQgImlnbm9yZSBhZGRpdGlvbnMgbWFkZSBieSB0aGUgcGF0Y2giCiBtc2dzdHIgImlnbm9yZXIgbGVzIGFkZGl0aW9ucyByw6lhbGlzw6llcyBwYXIgbGUgcGF0Y2giCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY4CisjOiBidWlsdGluL2FwcGx5LmM6NDM2OQogbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBvdXRwdXQgZGlmZnN0YXQgZm9yIHRoZSBpbnB1dCIKIG1zZ3N0ciAiYXUgbGlldSBkJ2FwcGxpcXVlciBsZSBwYXRjaCwgYWZmaWNoZXIgbGUgZGlmZnN0YXQgZGUgbCdlbnRyw6llIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3MgorIzogYnVpbHRpbi9hcHBseS5jOjQzNzMKIG1zZ2lkICJzaG93IG51bWJlciBvZiBhZGRlZCBhbmQgZGVsZXRlZCBsaW5lcyBpbiBkZWNpbWFsIG5vdGF0aW9uIgotbXNnc3RyICJhZmZpY2hlciBsZSBub21icmUgZGUgbGlnbmVzIGFqb3V0w6llcyBldCBzdXBwcmltw6llcyBlbiBub3RhdGlvbiBkw6ljaW1hbGUiCittc2dzdHIgIiIKKyJhZmZpY2hlciBsZSBub21icmUgZGUgbGlnbmVzIGFqb3V0w6llcyBldCBzdXBwcmltw6llcyBlbiBub3RhdGlvbiBkw6ljaW1hbGUiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc0CisjOiBidWlsdGluL2FwcGx5LmM6NDM3NQogbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBvdXRwdXQgYSBzdW1tYXJ5IGZvciB0aGUgaW5wdXQiCiBtc2dzdHIgImF1IGxpZXUgZCdhcHBsaXF1ZXIgbGUgcGF0Y2gsIGFmZmljaGVyIHVuIHLDqXN1bWVyIGRlIGwnZW50csOpZSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNzYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc3CiBtc2dpZCAiaW5zdGVhZCBvZiBhcHBseWluZyB0aGUgcGF0Y2gsIHNlZSBpZiB0aGUgcGF0Y2ggaXMgYXBwbGljYWJsZSIKIG1zZ3N0ciAiYXUgbGlldSBkJ2FwcGxpcXVlciBsZSBwYXRjaCwgdm9pciBzaSBsZSBwYXRjaCBlc3QgYXBwbGljYWJsZSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNzgKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc5CiBtc2dpZCAibWFrZSBzdXJlIHRoZSBwYXRjaCBpcyBhcHBsaWNhYmxlIHRvIHRoZSBjdXJyZW50IGluZGV4IgogbXNnc3RyICJzJ2Fzc3VyZXIgcXVlIGxlIHBhdGNoIGVzdCBhcHBsaWNhYmxlIHN1ciBsJ2luZGV4IGFjdHVlbCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgxCiBtc2dpZCAiYXBwbHkgYSBwYXRjaCB3aXRob3V0IHRvdWNoaW5nIHRoZSB3b3JraW5nIHRyZWUiCiBtc2dzdHIgImFwcGxpcXVlciBsZXMgcGF0Y2ggc2FucyB0b3VjaGVyIMOgIGxhIGNvcGllIGRlIHRyYXZhaWwiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgyCisjOiBidWlsdGluL2FwcGx5LmM6NDM4MwogbXNnaWQgImFsc28gYXBwbHkgdGhlIHBhdGNoICh1c2Ugd2l0aCAtLXN0YXQvLS1zdW1tYXJ5Ly0tY2hlY2spIgogbXNnc3RyICJhcHBsaXF1ZXIgYXVzc2kgbGUgcGF0Y2ggKMOgIHV0aWxpc2VyIGF2ZWMgLS0tc3RhdC8tLXN1bW1hcnkvLS1jaGVjaykiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg0CisjOiBidWlsdGluL2FwcGx5LmM6NDM4NQogbXNnaWQgImF0dGVtcHQgdGhyZWUtd2F5IG1lcmdlIGlmIGEgcGF0Y2ggZG9lcyBub3QgYXBwbHkiCiBtc2dzdHIgInRlbnRlciB1bmUgZnVzaW9uIMOgIDMgcG9pbnRzIHNpIGxlIHBhdGNoIG5lIHMnYXBwbGlxdWUgcGFzIHByb3ByZW1lbnQiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg2CisjOiBidWlsdGluL2FwcGx5LmM6NDM4NwogbXNnaWQgImJ1aWxkIGEgdGVtcG9yYXJ5IGluZGV4IGJhc2VkIG9uIGVtYmVkZGVkIGluZGV4IGluZm9ybWF0aW9uIgotbXNnc3RyICJjb25zdHJ1aXJlIHVuIGluZGV4IHRlbXBvcmFpcmUgZm9uZMOpIHN1ciBsJ2luZm9ybWF0aW9uIGRlIGwnaW5kZXggZW1iYXJxdcOpIgorbXNnc3RyICIiCisiY29uc3RydWlyZSB1biBpbmRleCB0ZW1wb3JhaXJlIGZvbmTDqSBzdXIgbCdpbmZvcm1hdGlvbiBkZSBsJ2luZGV4IGVtYmFycXXDqSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODggYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDU2CisjOiBidWlsdGluL2FwcGx5LmM6NDM4OSBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTk3IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTIKIG1zZ2lkICJwYXRocyBhcmUgc2VwYXJhdGVkIHdpdGggTlVMIGNoYXJhY3RlciIKIG1zZ3N0ciAibGVzIGNoZW1pbnMgc29udCBzw6lwYXLDqXMgcGFyIHVuIGNhcmFjdMOocmUgTlVMIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5MQorIzogYnVpbHRpbi9hcHBseS5jOjQzOTIKIG1zZ2lkICJlbnN1cmUgYXQgbGVhc3QgPG4+IGxpbmVzIG9mIGNvbnRleHQgbWF0Y2giCiBtc2dzdHIgInMnYXNzdXJlciBkJ2F1IG1vaW5zIDxuPiBsaWduZXMgZGUgY29ycmVzcG9uZGFuY2UgZGUgY29udGV4dGUiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkyCisjOiBidWlsdGluL2FwcGx5LmM6NDM5MwogbXNnaWQgImFjdGlvbiIKIG1zZ3N0ciAiYWN0aW9uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5MworIzogYnVpbHRpbi9hcHBseS5jOjQzOTQKIG1zZ2lkICJkZXRlY3QgbmV3IG9yIG1vZGlmaWVkIGxpbmVzIHRoYXQgaGF2ZSB3aGl0ZXNwYWNlIGVycm9ycyIKLW1zZ3N0ciAiZMOpdGVjdGVyIGRlcyBsaWduZXMgbm91dmVsbGVzIG91IG1vZGlmacOpZXMgcXVpIGNvbnRpZW5uZW50IGRlcyBlcnJldXJzIGQnZXNwYWNlIgorbXNnc3RyICIiCisiZMOpdGVjdGVyIGRlcyBsaWduZXMgbm91dmVsbGVzIG91IG1vZGlmacOpZXMgcXVpIGNvbnRpZW5uZW50IGRlcyBlcnJldXJzICIKKyJkJ2VzcGFjZSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTYgYnVpbHRpbi9hcHBseS5jOjQzOTkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzk3IGJ1aWx0aW4vYXBwbHkuYzo0NDAwCiBtc2dpZCAiaWdub3JlIGNoYW5nZXMgaW4gd2hpdGVzcGFjZSB3aGVuIGZpbmRpbmcgY29udGV4dCIKIG1zZ3N0ciAiaWdub3JlciBkZXMgbW9kaWZpY2F0aW9ucyBkJ2VzcGFjZSBsb3JzIGRlIGxhIHJlY2hlcmNoZSBkZSBjb250ZXh0ZSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MDIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDAzCiBtc2dpZCAiYXBwbHkgdGhlIHBhdGNoIGluIHJldmVyc2UiCiBtc2dzdHIgImFwcGxpcXVlciBsZSBwYXRjaCBlbiBzZW5zIGludmVyc2UiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA0CisjOiBidWlsdGluL2FwcGx5LmM6NDQwNQogbXNnaWQgImRvbid0IGV4cGVjdCBhdCBsZWFzdCBvbmUgbGluZSBvZiBjb250ZXh0IgogbXNnc3RyICJuZSBwYXMgcydhdHRlbmRyZSDDoCBhdSBtb2lucyB1bmUgbGlnbmUgZGUgY29udGV4dGUiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA2CisjOiBidWlsdGluL2FwcGx5LmM6NDQwNwogbXNnaWQgImxlYXZlIHRoZSByZWplY3RlZCBodW5rcyBpbiBjb3JyZXNwb25kaW5nICoucmVqIGZpbGVzIgogbXNnc3RyICJsYWlzc2VyIGxlcyBzZWN0aW9ucyByZWpldMOpZXMgZGFucyBsZXMgZmljaGllcnMgKi5yZWogY29ycmVzcG9uZGFudHMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA4CisjOiBidWlsdGluL2FwcGx5LmM6NDQwOQogbXNnaWQgImFsbG93IG92ZXJsYXBwaW5nIGh1bmtzIgogbXNnc3RyICJhY2NlcHRlciBsZXMgcmVjb3V2cmVtZW50cyBkZSBzZWN0aW9ucyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDEyCiBtc2dpZCAidG9sZXJhdGUgaW5jb3JyZWN0bHkgZGV0ZWN0ZWQgbWlzc2luZyBuZXctbGluZSBhdCB0aGUgZW5kIG9mIGZpbGUiCi1tc2dzdHIgInRvbMOpcmVyIGRlcyBlcnJldXJzIGRlIGTDqXRlY3Rpb24gZGUgcmV0b3VycyBjaGFyaW90IG1hbnF1YW50cyBlbiBmaW4gZGUgZmljaGllciIKK21zZ3N0ciAiIgorInRvbMOpcmVyIGRlcyBlcnJldXJzIGRlIGTDqXRlY3Rpb24gZGUgcmV0b3VycyBjaGFyaW90IG1hbnF1YW50cyBlbiBmaW4gZGUgIgorImZpY2hpZXIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE0CisjOiBidWlsdGluL2FwcGx5LmM6NDQxNQogbXNnaWQgImRvIG5vdCB0cnVzdCB0aGUgbGluZSBjb3VudHMgaW4gdGhlIGh1bmsgaGVhZGVycyIKIG1zZ3N0ciAibmUgcGFzIHNlIGZpZXIgYXUgY29tcHRlIGRlIGxpZ25lcyBkYW5zIGxlcyBlbi10w6p0ZXMgZGUgc2VjdGlvbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE3CiBtc2dpZCAicm9vdCIKIG1zZ3N0ciAicmFjaW5lIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQxNworIzogYnVpbHRpbi9hcHBseS5jOjQ0MTgKIG1zZ2lkICJwcmVwZW5kIDxyb290PiB0byBhbGwgZmlsZW5hbWVzIgogbXNnc3RyICJwcsOpZml4ZXIgdG91cyBsZXMgbm9tcyBkZSBmaWNoaWVyIGF2ZWMgPHJvb3Q+IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQzOQorIzogYnVpbHRpbi9hcHBseS5jOjQ0NDAKIG1zZ2lkICItLTN3YXkgb3V0c2lkZSBhIHJlcG9zaXRvcnkiCiBtc2dzdHIgIi0tM3dheSBob3JzIGQndW4gZMOpcMO0dCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0NDcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDQ4CiBtc2dpZCAiLS1pbmRleCBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiLS1pbmRleCBob3JzIGQndW4gZMOpcMO0dCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0NTAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDUxCiBtc2dpZCAiLS1jYWNoZWQgb3V0c2lkZSBhIHJlcG9zaXRvcnkiCiBtc2dzdHIgIi0tY2FjaGVkIGhvcnMgZCd1biBkw6lww7R0IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ2NgorIzogYnVpbHRpbi9hcHBseS5jOjQ0NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2FuJ3Qgb3BlbiBwYXRjaCAnJXMnIgogbXNnc3RyICJvdXZlcnR1cmUgaW1wb3NzaWJsZSBkdSBwYXRjaCAnJXMnIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ4MAorIzogYnVpbHRpbi9hcHBseS5jOjQ0ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAic3F1ZWxjaGVkICVkIHdoaXRlc3BhY2UgZXJyb3IiCiBtc2dpZF9wbHVyYWwgInNxdWVsY2hlZCAlZCB3aGl0ZXNwYWNlIGVycm9ycyIKIG1zZ3N0clswXSAiJWQgZXJyZXVyIGQnZXNwYWNlIGlnbm9yw6llIgogbXNnc3RyWzFdICIlZCBlcnJldXJzIGQnZXNwYWNlIGlnbm9yw6llcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0ODYgYnVpbHRpbi9hcHBseS5jOjQ0OTYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDg3IGJ1aWx0aW4vYXBwbHkuYzo0NDk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVkIGxpbmUgYWRkcyB3aGl0ZXNwYWNlIGVycm9ycy4iCiBtc2dpZF9wbHVyYWwgIiVkIGxpbmVzIGFkZCB3aGl0ZXNwYWNlIGVycm9ycy4iCkBAIC0yMzUyLDEwNSArMjcwOSwxMTEgQEAKIG1zZ2lkICJ1cGRhdGUgQklTRUNUX0hFQUQgaW5zdGVhZCBvZiBjaGVja2luZyBvdXQgdGhlIGN1cnJlbnQgY29tbWl0IgogbXNnc3RyICJtZXR0cmUgw6Agam91ciBCSVNFQ1RfSEVBRCBhdSBsaWV1IGQnZXh0cmFpcmUgbGUgY29tbWl0IGFjdHVlbCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjI1CisjOiBidWlsdGluL2JsYW1lLmM6MjcKIG1zZ2lkICJnaXQgYmxhbWUgW29wdGlvbnNdIFtyZXYtb3B0c10gW3Jldl0gWy0tXSBmaWxlIgogbXNnc3RyICJnaXQgYmxhbWUgW29wdGlvbnNdIFtvcHRpb25zLWRlLXLDqXZpc2lvbl0gW3Jldl0gWy0tXSBmaWNoaWVyIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MzAKKyM6IGJ1aWx0aW4vYmxhbWUuYzozMgogbXNnaWQgIltyZXYtb3B0c10gYXJlIGRvY3VtZW50ZWQgaW4gZ2l0LXJldi1saXN0KDEpIgogbXNnc3RyICJbb3B0aW9ucy1kZS1yw6l2aXNpb25dIHNvbnQgZG9jdW1lbnTDqXMgZGFucyBnaXQtcmV2LWxpc3QoMSkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU1CisjOiBidWlsdGluL2JsYW1lLmM6MjI0OAogbXNnaWQgIlNob3cgYmxhbWUgZW50cmllcyBhcyB3ZSBmaW5kIHRoZW0sIGluY3JlbWVudGFsbHkiCi1tc2dzdHIgIk1vbnRyZXIgbGVzIGVudHLDqWUgZGUgYmzDom1lIGF1IGZ1ciBldCDDoCBtZXN1cmUgZGUgbGV1ciBkw6ljb3V2ZXJ0ZSwgZGUgbWFuacOocmUgaW5jcsOpbWVudGFsZSIKK21zZ3N0ciAiIgorIk1vbnRyZXIgbGVzIMOpbMOpbWVudHMgZGUgYmzDom1lIGF1IGZ1ciBldCDDoCBtZXN1cmUgZGUgbGV1ciBkw6ljb3V2ZXJ0ZSwgZGUgIgorIm1hbmnDqHJlIGluY3LDqW1lbnRhbGUiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU2CisjOiBidWlsdGluL2JsYW1lLmM6MjI0OQogbXNnaWQgIlNob3cgYmxhbmsgU0hBLTEgZm9yIGJvdW5kYXJ5IGNvbW1pdHMgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIk1vbnRyZXIgdW4gU0hBLTEgYmxhbmMgcG91ciBsZXMgY29tbWl0cyBkZSBsaW1pdGUgKETDqWZhdXQgOiBkw6lzYWN0aXbDqSkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU3CisjOiBidWlsdGluL2JsYW1lLmM6MjI1MAogbXNnaWQgIkRvIG5vdCB0cmVhdCByb290IGNvbW1pdHMgYXMgYm91bmRhcmllcyAoRGVmYXVsdDogb2ZmKSIKLW1zZ3N0ciAiTmUgcGFzIHRyYWl0ZXIgbGVzIGNvbW1pdHMgcmFjaW5lIGNvbW1lIGRlcyBsaW1pdGVzIChEw6lmYXV0IDogZMOpc2FjdGl2w6kpIgorbXNnc3RyICIiCisiTmUgcGFzIHRyYWl0ZXIgbGVzIGNvbW1pdHMgcmFjaW5lIGNvbW1lIGRlcyBsaW1pdGVzIChEw6lmYXV0IDogZMOpc2FjdGl2w6kpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1OAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNTEKIG1zZ2lkICJTaG93IHdvcmsgY29zdCBzdGF0aXN0aWNzIgogbXNnc3RyICJNb250cmVyIGxlcyBzdGF0aXN0aXF1ZXMgZGUgY2/Du3QgZCdhY3Rpdml0w6kiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU5CisjOiBidWlsdGluL2JsYW1lLmM6MjI1MgogbXNnaWQgIlNob3cgb3V0cHV0IHNjb3JlIGZvciBibGFtZSBlbnRyaWVzIgotbXNnc3RyICJNb250cmVyIGxlIHNjb3JlIGRlIHNvcnRpZSBwb3VyIGxlcyBlbnRyw6llcyBkZSBibMOibWUiCittc2dzdHIgIk1vbnRyZXIgbGUgc2NvcmUgZGUgc29ydGllIHBvdXIgbGVzIMOpbMOpbWVudHMgZGUgYmzDom1lIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNTMKIG1zZ2lkICJTaG93IG9yaWdpbmFsIGZpbGVuYW1lIChEZWZhdWx0OiBhdXRvKSIKIG1zZ3N0ciAiTW9udHJlciBsZXMgbm9tcyBkZSBmaWNoaWVyIG9yaWdpbmF1eCAoRMOpZmF1dCA6IGF1dG8pIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNTQKIG1zZ2lkICJTaG93IG9yaWdpbmFsIGxpbmVudW1iZXIgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIk1vbnRyZXIgbGVzIG51bcOpcm9zIGRlIGxpZ25lcyBvcmlnaW5hdXggKETDqWZhdXQgOiBkw6lzYWN0aXbDqSkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYyCisjOiBidWlsdGluL2JsYW1lLmM6MjI1NQogbXNnaWQgIlNob3cgaW4gYSBmb3JtYXQgZGVzaWduZWQgZm9yIG1hY2hpbmUgY29uc3VtcHRpb24iCiBtc2dzdHIgIkFmZmljaGVyIGRhbnMgdW4gZm9ybWF0IHByb3BpY2Ugw6AgbGEgY29uc29tbWF0aW9uIHBhciBtYWNoaW5lIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MworIzogYnVpbHRpbi9ibGFtZS5jOjIyNTYKIG1zZ2lkICJTaG93IHBvcmNlbGFpbiBmb3JtYXQgd2l0aCBwZXItbGluZSBjb21taXQgaW5mb3JtYXRpb24iCiBtc2dzdHIgIkFmZmljaGVyIGVuIGZvcm1hdCBwb3JjZWxhaW5lIGF2ZWMgbCdpbmZvcm1hdGlvbiBkZSBjb21taXQgcGFyIGxpZ25lIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNTcKIG1zZ2lkICJVc2UgdGhlIHNhbWUgb3V0cHV0IG1vZGUgYXMgZ2l0LWFubm90YXRlIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJVdGlsaXNlciBsZSBtw6ptZSBtb2RlIGRlIHNvcnRpZSBxdWUgZ2l0LWFubm90YXRlIChEw6lmYXV0IDogZMOpc2FjdGl2w6kpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNTgKIG1zZ2lkICJTaG93IHJhdyB0aW1lc3RhbXAgKERlZmF1bHQ6IG9mZikiCi1tc2dzdHIgIkFmZmljaGVyIGxlcyBob3JvZGF0YWdlcyBicnV0cyAoRMOpZmF1dDogZMOpc2FjdGl2w6kpIgorbXNnc3RyICJBZmZpY2hlciBsZXMgaG9yb2RhdGFnZXMgYnJ1dHMgKETDqWZhdXQgOiBkw6lzYWN0aXbDqSkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY2CisjOiBidWlsdGluL2JsYW1lLmM6MjI1OQogbXNnaWQgIlNob3cgbG9uZyBjb21taXQgU0hBMSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiQWZmaWNoZXIgbGVzIGxvbmdzIFNIQTEgZGUgY29tbWl0cyAoRMOpZmF1dCA6IGTDqXNhY3RpdsOpKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjcKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjYwCiBtc2dpZCAiU3VwcHJlc3MgYXV0aG9yIG5hbWUgYW5kIHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiU3VwcHJpbWVyIGxlIG5vbSBkZSBsJ2F1dGV1ciBldCBsJ2hvcm9kYXRhZ2UgKETDqWZhdXQgOiBkw6lzYWN0aXbDqSkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY4CisjOiBidWlsdGluL2JsYW1lLmM6MjI2MQogbXNnaWQgIlNob3cgYXV0aG9yIGVtYWlsIGluc3RlYWQgb2YgbmFtZSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiQWZmaWNoZXIgbCdlLW1haWwgZGUgbCdhdXRldXIgYXUgbGlldSBkdSBub20gKETDqWZhdXQgOiBkw6lzYWN0aXbDqSkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY5CisjOiBidWlsdGluL2JsYW1lLmM6MjI2MgogbXNnaWQgIklnbm9yZSB3aGl0ZXNwYWNlIGRpZmZlcmVuY2VzIgogbXNnc3RyICJJZ25vcmVyIGxlcyBkaWZmw6lyZW5jZXMgZCdlc3BhY2UiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcwCisjOiBidWlsdGluL2JsYW1lLmM6MjI2MwogbXNnaWQgIlNwZW5kIGV4dHJhIGN5Y2xlcyB0byBmaW5kIGJldHRlciBtYXRjaCIKLW1zZ3N0ciAiRMOpcGVuc2VyIGRlcyBjeWNsZXMgc3VwcGzDqW1lbnRhaXJlcyBwb3VyIHRyb3V2ZXIgdW5lIG1laWxsZXVyZSBjb3JyZXNwb25kYW5jZSIKK21zZ3N0ciAiIgorIkTDqXBlbnNlciBkZXMgY3ljbGVzIHN1cHBsw6ltZW50YWlyZXMgcG91ciB0cm91dmVyIHVuZSBtZWlsbGV1cmUgY29ycmVzcG9uZGFuY2UiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcxCisjOiBidWlsdGluL2JsYW1lLmM6MjI2NAogbXNnaWQgIlVzZSByZXZpc2lvbnMgZnJvbSA8ZmlsZT4gaW5zdGVhZCBvZiBjYWxsaW5nIGdpdC1yZXYtbGlzdCIKLW1zZ3N0ciAiVXRpbGlzZXIgbGVzIHLDqXZpc2lvbnMgZHUgZmljaGllciA8ZmljaGllcj4gYXUgbGlldSBkJ2FwcGVsZXIgZ2l0LXJldi1saXN0IgorbXNnc3RyICIiCisiVXRpbGlzZXIgbGVzIHLDqXZpc2lvbnMgZHUgZmljaGllciA8ZmljaGllcj4gYXUgbGlldSBkJ2FwcGVsZXIgZ2l0LXJldi1saXN0IgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MgorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjUKIG1zZ2lkICJVc2UgPGZpbGU+J3MgY29udGVudHMgYXMgdGhlIGZpbmFsIGltYWdlIgogbXNnc3RyICJVdGlsaXNlciBsZSBjb250ZW51IGRlIDxmaWNoaWVyPiBjb21tZSBpbWFnZSBmaW5hbGUiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzczIGJ1aWx0aW4vYmxhbWUuYzoyMzc0CisjOiBidWlsdGluL2JsYW1lLmM6MjI2NiBidWlsdGluL2JsYW1lLmM6MjI2NwogbXNnaWQgInNjb3JlIgogbXNnc3RyICJzY29yZSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY2CiBtc2dpZCAiRmluZCBsaW5lIGNvcGllcyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIKIG1zZ3N0ciAiVHJvdXZlciBsZXMgY29waWVzIGRlIGxpZ25lIGRhbnMgZXQgZW50cmUgbGVzIGZpY2hpZXJzIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjcKIG1zZ2lkICJGaW5kIGxpbmUgbW92ZW1lbnRzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgogbXNnc3RyICJUcm91dmVyIGxlcyBtb3V2ZW1lbnRzIGRlIGxpZ25lIGRhbnMgZXQgZW50cmUgbGVzIGZpY2hpZXJzIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjgKIG1zZ2lkICJuLG0iCiBtc2dzdHIgIm4sbSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY4CiBtc2dpZCAiUHJvY2VzcyBvbmx5IGxpbmUgcmFuZ2UgbixtLCBjb3VudGluZyBmcm9tIDEiCi1tc2dzdHIgIlRyYWl0ZXIgc2V1bGVtZW50IGwnaW50ZXJ2YWxsZSBkZSBsaWduZSBuLG0gZW4gY29tbWVuw6dhbnQgbGUgY29tcHRlIMOgIDEiCittc2dzdHIgIiIKKyJUcmFpdGVyIHNldWxlbWVudCBsJ2ludGVydmFsbGUgZGUgbGlnbmUgbixtIGVuIGNvbW1lbsOnYW50IGxlIGNvbXB0ZSDDoCAxIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjI0CiBtc2dpZCAiZ2l0IGJyYW5jaCBbb3B0aW9uc10gWy1yIHwgLWFdIFstLW1lcmdlZCB8IC0tbm8tbWVyZ2VkXSIKQEAgLTI0NTgsNyArMjgyMSw3IEBACiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MjUKIG1zZ2lkICJnaXQgYnJhbmNoIFtvcHRpb25zXSBbLWxdIFstZl0gPGJyYW5jaG5hbWU+IFs8c3RhcnQtcG9pbnQ+XSIKLW1zZ3N0ciAiZ2l0IGJyYW5jaCBbb3B0aW9uc10gWy1sXSBbLWZdIDxub21kZWJyYW5jaD4gWzxwb2ludC1kZS1kw6lwYXJ0Pl0iCittc2dzdHIgImdpdCBicmFuY2ggW29wdGlvbnNdIFstbF0gWy1mXSA8bm9tZGVicmFuY2hlPiBbPHBvaW50LWRlLWTDqXBhcnQ+XSIKIAogIzogYnVpbHRpbi9icmFuY2guYzoyNgogbXNnaWQgImdpdCBicmFuY2ggW29wdGlvbnNdIFstcl0gKC1kIHwgLUQpIDxicmFuY2huYW1lPi4uLiIKQEAgLTI1MDIsNyArMjg2NSw3IEBACiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MTg1CiBtc2dpZCAiVXBkYXRlIG9mIGNvbmZpZy1maWxlIGZhaWxlZCIKLW1zZ3N0ciAiw4ljaGVjIGRlIGxhIG1pc2Ugw6Agam91ciBkdSBmaWNoaWVyIGRlIGNvbmZpZyIKK21zZ3N0ciAiw4ljaGVjIGRlIGxhIG1pc2Ugw6Agam91ciBkdSBmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24iCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MjEzCiBtc2dpZCAiY2Fubm90IHVzZSAtYSB3aXRoIC1kIgpAQCAtMjU1MiwyOTcgKzI5MTUsMzE4IEBACiBtc2dpZCAiYnJhbmNoICclcycgZG9lcyBub3QgcG9pbnQgYXQgYSBjb21taXQiCiBtc2dzdHIgImxhIGJyYW5jaGUgJyVzJyBuZSBwb2ludGUgcGFzIHN1ciB1biBjb21taXQiCiAKKyMgZsOpbWluaW4gcG91ciB1bmUgYnJhbmNoZQogIzogYnVpbHRpbi9icmFuY2guYzo0NTMKICMsIGMtZm9ybWF0Cittc2dpZCAiWyVzOiBnb25lXSIKK21zZ3N0ciAiWyVzOiBkaXNwYXJ1ZV0iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU2CisjLCBjLWZvcm1hdAorbXNnaWQgIlslc10iCittc2dzdHIgIlslc10iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU5CisjLCBjLWZvcm1hdAogbXNnaWQgIlslczogYmVoaW5kICVkXSIKIG1zZ3N0ciAiWyVzOiBlbiByZXRhcmQgZGUgJWRdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ1NQorIzogYnVpbHRpbi9icmFuY2guYzo0NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiW2JlaGluZCAlZF0iCiBtc2dzdHIgIltlbiByZXRhcmQgZGUgJWRdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ1OQorIzogYnVpbHRpbi9icmFuY2guYzo0NjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiWyVzOiBhaGVhZCAlZF0iCiBtc2dzdHIgIlslcyA6IGVuIGF2YW5jZSBkZSAlZF0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDYxCisjOiBidWlsdGluL2JyYW5jaC5jOjQ2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJbYWhlYWQgJWRdIgogbXNnc3RyICJbZW4gYXZhbmNlIGRlICVkXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NjQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDcwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlslczogYWhlYWQgJWQsIGJlaGluZCAlZF0iCiBtc2dzdHIgIlslcyA6IGVuIGF2YW5jZSBkZSAlZCwgZW4gcmV0YXJkIGRlICVkXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NjcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDczCiAjLCBjLWZvcm1hdAogbXNnaWQgIlthaGVhZCAlZCwgYmVoaW5kICVkXSIKIG1zZ3N0ciAiW2VuIGF2YW5jZSBkZSAlZCwgZW4gcmV0YXJkIGRlICVkXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0OTAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDk2CiBtc2dpZCAiICoqKiogaW52YWxpZCByZWYgKioqKiIKIG1zZ3N0ciAiICoqKiogcsOpZsOpcmVuY2UgaW52YWxpZGUgKioqKiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo1ODIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIihubyBicmFuY2gsIHJlYmFzaW5nICVzKSIKIG1zZ3N0ciAiKGF1Y3VuZSBicmFuY2hlLCByZWJhc2FnZSBkZSAlcykiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTg1CisjOiBidWlsdGluL2JyYW5jaC5jOjU5MQogIywgYy1mb3JtYXQKIG1zZ2lkICIobm8gYnJhbmNoLCBiaXNlY3Qgc3RhcnRlZCBvbiAlcykiCiBtc2dzdHIgIihhdWN1bmUgYnJhbmNoZSwgYmlzZWN0IGEgZMOpbWFycsOpIHN1ciAlcykiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTg4CisjOiBidWlsdGluL2JyYW5jaC5jOjU5NAogIywgYy1mb3JtYXQKIG1zZ2lkICIoZGV0YWNoZWQgZnJvbSAlcykiCiBtc2dzdHIgIihkw6l0YWNow6kgZGUgJXMpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU5MQorIzogYnVpbHRpbi9icmFuY2guYzo1OTcKIG1zZ2lkICIobm8gYnJhbmNoKSIKIG1zZ3N0ciAiKGF1Y3VuZSBicmFuY2hlKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2MzcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCAnJXMnIGRvZXMgbm90IHBvaW50IHRvIGEgY29tbWl0IgogbXNnc3RyICJsJ29iamV0ICclcycgbmUgcG9pbnRlIHBhcyBzdXIgdW4gY29tbWl0IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY2OQorIzogYnVpbHRpbi9icmFuY2guYzo2NzUKIG1zZ2lkICJzb21lIHJlZnMgY291bGQgbm90IGJlIHJlYWQiCiBtc2dzdHIgImRlcyByw6lmw6lyZW5jZXMgbidvbnQgcGFzIHB1IMOqdHJlIGx1ZXMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjgyCisjOiBidWlsdGluL2JyYW5jaC5jOjY4OAogbXNnaWQgImNhbm5vdCByZW5hbWUgdGhlIGN1cnJlbnQgYnJhbmNoIHdoaWxlIG5vdCBvbiBhbnkuIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIHJlbm9tbWVyIGxhIGJyYW5jaGUgYWN0dWVsbGUsIGlsIG4neSBlbiBhIHBhcy4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjkyCisjOiBidWlsdGluL2JyYW5jaC5jOjY5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGJyYW5jaCBuYW1lOiAnJXMnIgogbXNnc3RyICJOb20gZGUgYnJhbmNoZSBpbnZhbGlkZSA6ICclcyciCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzA3CisjOiBidWlsdGluL2JyYW5jaC5jOjcxMwogbXNnaWQgIkJyYW5jaCByZW5hbWUgZmFpbGVkIgotbXNnc3RyICJFY2hlYyBkZSByZW5vbW1hZ2UgZGUgbGEgYnJhbmNoZSIKK21zZ3N0ciAiw4ljaGVjIGRlIHJlbm9tbWFnZSBkZSBsYSBicmFuY2hlIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcxMQorIzogYnVpbHRpbi9icmFuY2guYzo3MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVuYW1lZCBhIG1pc25hbWVkIGJyYW5jaCAnJXMnIGF3YXkiCiBtc2dzdHIgIlJlbm9tbWFnZSBkJ3VuIGJyYW5jaGUgbWFsIG5vbW3DqWUgJyVzJyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3MTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkJyYW5jaCByZW5hbWVkIHRvICVzLCBidXQgSEVBRCBpcyBub3QgdXBkYXRlZCEiCiBtc2dzdHIgIkxhIGJyYW5jaGUgYSDDqXTDqSByZW5vbW3DqWUgZW4gJXMsIG1haXMgSEVBRCBuJ2VzdCBwYXMgbWlzZSDDoCBqb3VyICEiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzIyCisjOiBidWlsdGluL2JyYW5jaC5jOjcyOAogbXNnaWQgIkJyYW5jaCBpcyByZW5hbWVkLCBidXQgdXBkYXRlIG9mIGNvbmZpZy1maWxlIGZhaWxlZCIKLW1zZ3N0ciAiTGEgYnJhbmNoZSBlc3QgcmVub21tw6llLCBtYWlzIGxhIG1pc2Ugw6Agam91ciBkdSBmaWNoaWVyIGRlIGNvbmZpZyBhIMOpY2hvdcOpIgorbXNnc3RyICIiCisiTGEgYnJhbmNoZSBlc3QgcmVub21tw6llLCBtYWlzIGxhIG1pc2Ugw6Agam91ciBkdSBmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24gYSAiCisiw6ljaG91w6kiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzM3CisjOiBidWlsdGluL2JyYW5jaC5jOjc0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWxmb3JtZWQgb2JqZWN0IG5hbWUgJXMiCiBtc2dzdHIgIm5vbSBkJ29iamV0IG1hbGZvcm3DqSAlcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NjEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCB3cml0ZSBicmFuY2ggZGVzY3JpcHRpb24gdGVtcGxhdGU6ICVzIgogbXNnc3RyICJpbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBtb2TDqGxlIGRlIGRlc2NyaXB0aW9uIGRlIGJyYW5jaGUgOiAlcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk3CiBtc2dpZCAiR2VuZXJpYyBvcHRpb25zIgogbXNnc3RyICJPcHRpb25zIGfDqW7DqXJpcXVlcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk5CiBtc2dpZCAic2hvdyBoYXNoIGFuZCBzdWJqZWN0LCBnaXZlIHR3aWNlIGZvciB1cHN0cmVhbSBicmFuY2giCiBtc2dzdHIgImFmZmljaGVyIGxlIGhhY2hhZ2UgZXQgbGUgc3VqZXQsIGRvdWJsw6kgcG91ciBsYSBicmFuY2hlIGFtb250IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5NAorIzogYnVpbHRpbi9icmFuY2guYzo4MDAKIG1zZ2lkICJzdXBwcmVzcyBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzIgogbXNnc3RyICJzdXBwcmltZXIgbGVzIG1lc3NhZ2VzIGQnaW5mb3JtYXRpb24iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk1CisjOiBidWlsdGluL2JyYW5jaC5jOjgwMQogbXNnaWQgInNldCB1cCB0cmFja2luZyBtb2RlIChzZWUgZ2l0LXB1bGwoMSkpIgogbXNnc3RyICJyw6lnbGVyIGxlIG1vZGUgZGUgc3VpdmkgKHZvaXIgZ2l0LXB1bGwoMSkpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5NworIzogYnVpbHRpbi9icmFuY2guYzo4MDMKIG1zZ2lkICJjaGFuZ2UgdXBzdHJlYW0gaW5mbyIKIG1zZ3N0ciAibW9kaWZpZXIgbCdpbmZvcm1hdGlvbiBhbW9udCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA3CiBtc2dpZCAidXNlIGNvbG9yZWQgb3V0cHV0IgogbXNnc3RyICJ1dGlsaXNlciBsYSBjb2xvcmF0aW9uIGRhbnMgbGEgc29ydGllIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwMgorIzogYnVpbHRpbi9icmFuY2guYzo4MDgKIG1zZ2lkICJhY3Qgb24gcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIgogbXNnc3RyICJhZ2lyIHN1ciBsZXMgYnJhbmNoZXMgZGUgc3VpdmkgZGlzdGFudGVzIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNSBidWlsdGluL2JyYW5jaC5jOjgxMSBidWlsdGluL2JyYW5jaC5jOjgzMgotIzogYnVpbHRpbi9icmFuY2guYzo4MzggYnVpbHRpbi9jb21taXQuYzoxMzY4IGJ1aWx0aW4vY29tbWl0LmM6MTM2OQotIzogYnVpbHRpbi9jb21taXQuYzoxMzcwIGJ1aWx0aW4vY29tbWl0LmM6MTM3MSBidWlsdGluL3RhZy5jOjQ2OAorIzogYnVpbHRpbi9icmFuY2guYzo4MTEgYnVpbHRpbi9icmFuY2guYzo4MTcgYnVpbHRpbi9icmFuY2guYzo4MzgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODQ0IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MCBidWlsdGluL2NvbW1pdC5jOjE0NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MiBidWlsdGluL2NvbW1pdC5jOjE0NjMgYnVpbHRpbi90YWcuYzo0NjgKIG1zZ2lkICJjb21taXQiCi1tc2dzdHIgInZhbGlkZXIiCittc2dzdHIgImNvbW1pdCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDYgYnVpbHRpbi9icmFuY2guYzo4MTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODEyIGJ1aWx0aW4vYnJhbmNoLmM6ODE4CiBtc2dpZCAicHJpbnQgb25seSBicmFuY2hlcyB0aGF0IGNvbnRhaW4gdGhlIGNvbW1pdCIKIG1zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlcyBicmFuY2hlcyBxdWkgY29udGllbm5lbnQgbGUgY29tbWl0IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgxOAorIzogYnVpbHRpbi9icmFuY2guYzo4MjQKIG1zZ2lkICJTcGVjaWZpYyBnaXQtYnJhbmNoIGFjdGlvbnM6IgogbXNnc3RyICJBY3Rpb25zIHNww6ljaWZpcXVlcyDDoCBnaXQtYnJhbmNoIDoiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE5CisjOiBidWlsdGluL2JyYW5jaC5jOjgyNQogbXNnaWQgImxpc3QgYm90aCByZW1vdGUtdHJhY2tpbmcgYW5kIGxvY2FsIGJyYW5jaGVzIgogbXNnc3RyICJhZmZpY2hlciDDoCBsYSBmb2lzIGxlcyBicmFuY2hlcyBkZSBzdWl2aSBldCBsZXMgYnJhbmNoZXMgbG9jYWxlcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI3CiBtc2dpZCAiZGVsZXRlIGZ1bGx5IG1lcmdlZCBicmFuY2giCiBtc2dzdHIgInN1cHByaW1lciB1bmUgYnJhbmNoZSB0b3RhbGVtZW50IGZ1c2lvbm7DqWUiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIyCisjOiBidWlsdGluL2JyYW5jaC5jOjgyOAogbXNnaWQgImRlbGV0ZSBicmFuY2ggKGV2ZW4gaWYgbm90IG1lcmdlZCkiCiBtc2dzdHIgInN1cHByaW1lciB1bmUgYnJhbmNoZSAobcOqbWUgbm9uIGZ1c2lvbm7DqWUpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyMworIzogYnVpbHRpbi9icmFuY2guYzo4MjkKIG1zZ2lkICJtb3ZlL3JlbmFtZSBhIGJyYW5jaCBhbmQgaXRzIHJlZmxvZyIKIG1zZ3N0ciAiZMOpcGxhY2VyL3Jlbm9tbWVyIHVuZSBicmFuY2hlIGV0IHNvbiByZWZsb2ciCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI0CisjOiBidWlsdGluL2JyYW5jaC5jOjgzMAogbXNnaWQgIm1vdmUvcmVuYW1lIGEgYnJhbmNoLCBldmVuIGlmIHRhcmdldCBleGlzdHMiCiBtc2dzdHIgImTDqXBsYWNlci9yZW5vbW1lciB1bmUgYnJhbmNoZSwgbcOqbWUgc2kgbGEgY2libGUgZXhpc3RlIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyNQorIzogYnVpbHRpbi9icmFuY2guYzo4MzEKIG1zZ2lkICJsaXN0IGJyYW5jaCBuYW1lcyIKIG1zZ3N0ciAiYWZmaWNoZXIgbGVzIG5vbXMgZGVzIGJyYW5jaGVzIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyNgorIzogYnVpbHRpbi9icmFuY2guYzo4MzIKIG1zZ2lkICJjcmVhdGUgdGhlIGJyYW5jaCdzIHJlZmxvZyIKIG1zZ3N0ciAiY3LDqWVyIGxlIHJlZmxvZyBkZSBsYSBicmFuY2hlIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyOAorIzogYnVpbHRpbi9icmFuY2guYzo4MzQKIG1zZ2lkICJlZGl0IHRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIGJyYW5jaCIKIG1zZ3N0ciAiw6lkaXRlciBsYSBkZXNjcmlwdGlvbiBkZSBsYSBicmFuY2hlIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyOQorIzogYnVpbHRpbi9icmFuY2guYzo4MzUKIG1zZ2lkICJmb3JjZSBjcmVhdGlvbiAod2hlbiBhbHJlYWR5IGV4aXN0cykiCiBtc2dzdHIgImZvcmNlciBsYSBjcsOpYXRpb24gKG3Dqm1lIHNpIGxhIGNpYmxlIGV4aXN0ZSkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMyCisjOiBidWlsdGluL2JyYW5jaC5jOjgzOAogbXNnaWQgInByaW50IG9ubHkgbm90IG1lcmdlZCBicmFuY2hlcyIKIG1zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlcyBicmFuY2hlcyBub24gZnVzaW9ubsOpZXMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM4CisjOiBidWlsdGluL2JyYW5jaC5jOjg0NAogbXNnaWQgInByaW50IG9ubHkgbWVyZ2VkIGJyYW5jaGVzIgogbXNnc3RyICJhZmZpY2hlciBzZXVsZW1lbnQgbGVzIGJyYW5jaGVzIGZ1c2lvbm7DqWVzIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg0MgorIzogYnVpbHRpbi9icmFuY2guYzo4NDgKIG1zZ2lkICJsaXN0IGJyYW5jaGVzIGluIGNvbHVtbnMiCiBtc2dzdHIgImFmZmljaGVyIGxlcyBicmFuY2hlcyBlbiBjb2xvbm5lcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYxCiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgSEVBRCBhcyBhIHZhbGlkIHJlZi4iCiBtc2dzdHIgIsOJY2hlYyBkZSByw6lzb2x1dGlvbiBkZSBIRUFEIGNvbW1lIHLDqWbDqXJlbmNlIHZhbGlkZS4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYwIGJ1aWx0aW4vY2xvbmUuYzo2MTkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODY2IGJ1aWx0aW4vY2xvbmUuYzo2MjkKIG1zZ2lkICJIRUFEIG5vdCBmb3VuZCBiZWxvdyByZWZzL2hlYWRzISIKIG1zZ3N0ciAiSEVBRCBub24gdHJvdXbDqWUgc291cyByZWZzL2hlYWRzICEiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODgzCisjOiBidWlsdGluL2JyYW5jaC5jOjg5MAogbXNnaWQgIi0tY29sdW1uIGFuZCAtLXZlcmJvc2UgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1jb2x1bW4gZXQgLS12ZXJib3NlIHNvbnQgaW5jb21wYXRpYmxlcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4ODkgYnVpbHRpbi9icmFuY2guYzo5MjgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODk2IGJ1aWx0aW4vYnJhbmNoLmM6OTM1CiBtc2dpZCAiYnJhbmNoIG5hbWUgcmVxdWlyZWQiCiBtc2dzdHIgImxlIG5vbSBkZSBicmFuY2hlIGVzdCByZXF1aXMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA0CisjOiBidWlsdGluL2JyYW5jaC5jOjkxMQogbXNnaWQgIkNhbm5vdCBnaXZlIGRlc2NyaXB0aW9uIHRvIGRldGFjaGVkIEhFQUQiCiBtc2dzdHIgIkltcG9zc2libGUgZGUgZMOpY3JpcmUgdW5lIEhFQUQgZMOpdGFjaMOpZSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MDkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE2CiBtc2dpZCAiY2Fubm90IGVkaXQgZGVzY3JpcHRpb24gb2YgbW9yZSB0aGFuIG9uZSBicmFuY2giCiBtc2dzdHIgImltcG9zc2libGUgZCfDqWRpdGVyIGxhIGRlc2NyaXB0aW9uIGRlIHBsdXMgZCd1bmUgYnJhbmNoZSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MTYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGNvbW1pdCBvbiBicmFuY2ggJyVzJyB5ZXQuIgogbXNnc3RyICJBdWN1biBjb21taXQgc3VyIGxhIGJyYW5jaGUgJyVzJy4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE5CisjOiBidWlsdGluL2JyYW5jaC5jOjkyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBicmFuY2ggbmFtZWQgJyVzJy4iCiBtc2dzdHIgIkF1Y3VuZSBicmFuY2hlIG5vbW3DqWUgJyVzJy4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTM0CisjOiBidWlsdGluL2JyYW5jaC5jOjk0MQogbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIGZvciBhIHJlbmFtZSBvcGVyYXRpb24iCiBtc2dzdHIgInRyb3AgZGUgYnJhbmNoZXMgcG91ciB1bmUgb3DDqXJhdGlvbiBkZSByZW5vbW1hZ2UiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTM5CisjOiBidWlsdGluL2JyYW5jaC5jOjk0NgogbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHNldCBuZXcgdXBzdHJlYW0iCiBtc2dzdHIgInRyb3AgZGUgYnJhbmNoZXMgcG91ciBzcMOpY2lmaWVyIHVuZSBicmFuY2hlIGFtb250IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk0MworIzogYnVpbHRpbi9icmFuY2guYzo5NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogImNvdWxkIG5vdCBzZXQgdXBzdHJlYW0gb2YgSEVBRCB0byAlcyB3aGVuIGl0IGRvZXMgbm90IHBvaW50IHRvIGFueSBicmFuY2guIgotbXNnc3RyICJpbXBvc3NpYmxlIGRlIHNww6ljaWZpZXIgdW5lIGJyYW5jaGUgYW1vbnQgZGUgSEVBRCBwYXIgJXMgcXVpIG5lIHBvaW50ZSBzdXIgYXVjdW5lIGJyYW5jaGUuIgorbXNnc3RyICIiCisiaW1wb3NzaWJsZSBkZSBzcMOpY2lmaWVyIHVuZSBicmFuY2hlIGFtb250IGRlIEhFQUQgcGFyICVzIHF1aSBuZSBwb2ludGUgc3VyICIKKyJhdWN1bmUgYnJhbmNoZS4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQ2IGJ1aWx0aW4vYnJhbmNoLmM6OTY4IGJ1aWx0aW4vYnJhbmNoLmM6OTkwCisjOiBidWlsdGluL2JyYW5jaC5jOjk1MyBidWlsdGluL2JyYW5jaC5jOjk3NSBidWlsdGluL2JyYW5jaC5jOjk5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBzdWNoIGJyYW5jaCAnJXMnIgogbXNnc3RyICJwYXMgZGUgYnJhbmNoZSAnJXMnIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk1MAorIzogYnVpbHRpbi9icmFuY2guYzo5NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYnJhbmNoICclcycgZG9lcyBub3QgZXhpc3QiCiBtc2dzdHIgImxhIGJyYW5jaGUgJyVzJyBuJ2V4aXN0ZSBwYXMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTYyCisjOiBidWlsdGluL2JyYW5jaC5jOjk2OQogbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHVuc2V0IHVwc3RyZWFtIgogbXNnc3RyICJ0cm9wIGRlIGJyYW5jaGVzIHBvdXIgZMOpc2FjdGl2ZXIgdW4gYW1vbnQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTY2CisjOiBidWlsdGluL2JyYW5jaC5jOjk3MwogbXNnaWQgImNvdWxkIG5vdCB1bnNldCB1cHN0cmVhbSBvZiBIRUFEIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCi1tc2dzdHIgImltcG9zc2libGUgZGUgZMOpc2FjdGl2ZXIgdW5lIGJyYW5jaGUgYW1vbnQgZGUgSEVBRCBxdWFuZCBlbGxlIG5lIHBvaW50ZSBzdXIgYXVjdW5lIGJyYW5jaGUuIgorbXNnc3RyICIiCisiaW1wb3NzaWJsZSBkZSBkw6lzYWN0aXZlciB1bmUgYnJhbmNoZSBhbW9udCBkZSBIRUFEIHF1YW5kIGVsbGUgbmUgcG9pbnRlIHN1ciAiCisiYXVjdW5lIGJyYW5jaGUuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk3MgorIzogYnVpbHRpbi9icmFuY2guYzo5NzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQnJhbmNoICclcycgaGFzIG5vIHVwc3RyZWFtIGluZm9ybWF0aW9uIgogbXNnc3RyICJMYSBicmFuY2hlICclcycgbidhIGF1Y3VuZSBpbmZvcm1hdGlvbiBkZSBicmFuY2hlIGFtb250IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk4NworIzogYnVpbHRpbi9icmFuY2guYzo5OTQKIG1zZ2lkICJpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGNyZWF0ZSAnSEVBRCcgbWFudWFsbHkiCi1tc2dzdHIgImNyw6llciBtYW51ZWxsZW1lbnQgJ0hFQUQnIG4nYSBhdWN1biBzZW5zIgorbXNnc3RyICJjcsOpZXIgbWFudWVsbGVtZW50ICdIRUFEJyBuJ2EgcGFzIGRlIHNlbnMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTkzCisjOiBidWlsdGluL2JyYW5jaC5jOjEwMDAKIG1zZ2lkICItYSBhbmQgLXIgb3B0aW9ucyB0byAnZ2l0IGJyYW5jaCcgZG8gbm90IG1ha2Ugc2Vuc2Ugd2l0aCBhIGJyYW5jaCBuYW1lIgotbXNnc3RyICJsZXMgb3B0aW9ucyAtYSBldCAtciBkZSAnZ2l0IGJyYW5jaCcgbidvbnQgcGFzIGRlIHNlbnMgYXZlYyB1biBub20gZGUgYnJhbmNoZSIKK21zZ3N0ciAiIgorImxlcyBvcHRpb25zIC1hIGV0IC1yIGRlICdnaXQgYnJhbmNoJyBuJ29udCBwYXMgZGUgc2VucyBhdmVjIHVuIG5vbSBkZSBicmFuY2hlIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk5NgorIzogYnVpbHRpbi9icmFuY2guYzoxMDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgLS1zZXQtdXBzdHJlYW0gZmxhZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIENvbnNpZGVyIHVzaW5nIC0tIgogInRyYWNrIG9yIC0tc2V0LXVwc3RyZWFtLXRvXG4iCi1tc2dzdHIgImwnb3B0aW9uIC0tc2V0LXVwc3RyZWFtIGVzdCBvYnNvbMOodGUgZXQgdmEgZGlzcGFyYcOudHJlLiBVdGlsaXNleiBwbHV0w7R0IC0tdHJhY2sgb3UgLS1zZXQtdXBzdHJlYW0tdG9cbiIKK21zZ3N0ciAiIgorImwnb3B0aW9uIC0tc2V0LXVwc3RyZWFtIGVzdCBvYnNvbMOodGUgZXQgdmEgZGlzcGFyYcOudHJlLiBVdGlsaXNleiBwbHV0w7R0IC0tIgorInRyYWNrIG91IC0tc2V0LXVwc3RyZWFtLXRvXG4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxMworIzogYnVpbHRpbi9icmFuY2guYzoxMDIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKICJJZiB5b3Ugd2FudGVkIHRvIG1ha2UgJyVzJyB0cmFjayAnJXMnLCBkbyB0aGlzOlxuIgogIlxuIgotbXNnc3RyICJcbiIKK21zZ3N0ciAiIgorIlxuIgogIlNpIHZvdXMgdm91bGlleiBxdWUgJyVzJyBzdWl2ZSAnJXMnLCBmYcOudGVzIGNlY2kgOlxuIgogIlxuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjEwMTQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAyMQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAgZ2l0IGJyYW5jaCAtZCAlc1xuIgogbXNnc3RyICIgICAgZ2l0IGJyYW5jaCAtZCAlc1xuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjEwMTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAyMgogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAgZ2l0IGJyYW5jaCAtLXNldC11cHN0cmVhbS10byAlc1xuIgogbXNnc3RyICIgICAgZ2l0IGJyYW5jaCAtc2V0LXVwc3RyZWFtLXRvICVzXG4iCkBAIC0yODYwLDQzICszMjQ0LDQ0IEBACiBtc2dpZCAiTmVlZCBhIHJlcG9zaXRvcnkgdG8gdW5idW5kbGUuIgogbXNnc3RyICJMZSBkw6lwYXF1ZXRhZ2UgZCd1biBjb2xpcyByZXF1aWVydCB1biBkw6lww7R0LiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE3NgorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMxMgogbXNnaWQgImdpdCBjYXQtZmlsZSAoLXR8LXN8LWV8LXB8PHR5cGU+fC0tdGV4dGNvbnYpIDxvYmplY3Q+IgogbXNnc3RyICJnaXQgY2F0LWZpbGUgKC10fC1zfC1lfC1wfDx0eXBlPnwtLXRleHRjb252KSA8b2JqZXQ+IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MTc3CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzEzCiBtc2dpZCAiZ2l0IGNhdC1maWxlICgtLWJhdGNofC0tYmF0Y2gtY2hlY2spIDwgPGxpc3Rfb2Zfb2JqZWN0cz4iCiBtc2dzdHIgImdpdCBjYXQtZmlsZSAoLS1iYXRjaHwtLWJhdGNoLWNoZWNrKSA8IDxsaXN0ZV9kX29iamV0cz4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTUKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTAKIG1zZ2lkICI8dHlwZT4gY2FuIGJlIG9uZSBvZjogYmxvYiwgdHJlZSwgY29tbWl0LCB0YWciCiBtc2dzdHIgIjx0eXBlPiBwZXV0IMOqdHJlIDogYmxvYiwgdHJlZSwgY29tbWl0IG91IHRhZyIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE5NgorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1MQogbXNnaWQgInNob3cgb2JqZWN0IHR5cGUiCiBtc2dzdHIgImFmZmljaGVyIGxlIHR5cGUgZGUgbCdvYmpldCIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE5NworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1MgogbXNnaWQgInNob3cgb2JqZWN0IHNpemUiCiBtc2dzdHIgImFmZmljaGVyIGxhIHRhaWxsZSBkZSBsJ29iamV0IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MTk5CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzU0CiBtc2dpZCAiZXhpdCB3aXRoIHplcm8gd2hlbiB0aGVyZSdzIG5vIGVycm9yIgogbXNnc3RyICJzb3J0aXIgYXZlYyB1biBjb2RlIGQnZXJyZXVyIG51bCBxdWFuZCBpbCBuJ3kgYSBhdWN1bmUgZXJyZXVyIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjAwCisjOiBidWlsdGluL2NhdC1maWxlLmM6MzU1CiBtc2dpZCAicHJldHR5LXByaW50IG9iamVjdCdzIGNvbnRlbnQiCiBtc2dzdHIgImFmZmljaGVyIGF2ZWMgbWlzZSBlbiBmb3JtZSBsZSBjb250ZW51IGRlIGwnb2JqZXQiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyMDIKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTcKIG1zZ2lkICJmb3IgYmxvYiBvYmplY3RzLCBydW4gdGV4dGNvbnYgb24gb2JqZWN0J3MgY29udGVudCIKIG1zZ3N0ciAicG91ciBsZXMgb2JqZXRzIGJsb2IsIGxhbmNlciB0ZXh0Y29udiBzdXIgbGUgY29udGVudSBkZSBsJ29iamV0IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjA0CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzU5CiBtc2dpZCAic2hvdyBpbmZvIGFuZCBjb250ZW50IG9mIG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgotbXNnc3RyICJhZmZpY2hlciBsJ2luZm9ybWF0aW9uIGV0IGxlIGNvbnRlbnUgZGVzIG9iamV0cyBwYXNzw6lzIGVuIGVudHLDqWUgc3RhbmRhcmQiCittc2dzdHIgIiIKKyJhZmZpY2hlciBsJ2luZm9ybWF0aW9uIGV0IGxlIGNvbnRlbnUgZGVzIG9iamV0cyBwYXNzw6lzIGVuIGVudHLDqWUgc3RhbmRhcmQiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyMDcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNjIKIG1zZ2lkICJzaG93IGluZm8gYWJvdXQgb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgImFmZmljaGVyIGwnaW5mb3JtYXRpb24gZGVzIG9iamV0cyBwYXNzw6lzIGVuIGVudHLDqWUgc3RhbmRhcmQiCiAKQEAgLTI5MDYsNyArMzI5MSw4IEBACiAKICM6IGJ1aWx0aW4vY2hlY2stYXR0ci5jOjEyCiBtc2dpZCAiZ2l0IGNoZWNrLWF0dHIgLS1zdGRpbiBbLXpdIFstYSB8IC0tYWxsIHwgYXR0ci4uLl0gPCA8bGlzdC1vZi1wYXRocz4iCi1tc2dzdHIgImdpdCBjaGVjay1hdHRyIC0tc3RkaW4gWy16XSBbLWEgfCAtLWFsbCB8IGF0dHIuLi5dIDwgPGxpc3RlLWRlLWNoZW1pbnM+IgorbXNnc3RyICIiCisiZ2l0IGNoZWNrLWF0dHIgLS1zdGRpbiBbLXpdIFstYSB8IC0tYWxsIHwgYXR0ci4uLl0gPCA8bGlzdGUtZGUtY2hlbWlucz4iCiAKICM6IGJ1aWx0aW4vY2hlY2stYXR0ci5jOjE5CiBtc2dpZCAicmVwb3J0IGFsbCBhdHRyaWJ1dGVzIHNldCBvbiBmaWxlIgpAQCAtMjkxOCwzNiArMzMwNCw2NSBAQAogCiAjOiBidWlsdGluL2NoZWNrLWF0dHIuYzoyMSBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjIyIGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NQogbXNnaWQgInJlYWQgZmlsZSBuYW1lcyBmcm9tIHN0ZGluIgotbXNnc3RyICJsaXJlIGxlcyBub21zIGRlIGZpY2hpZXIgZGVwdWlzIHN0ZGluIgorbXNnc3RyICJsaXJlIGxlcyBub21zIGRlIGZpY2hpZXIgZGVwdWlzIGwnZW50csOpZSBzdGFuZGFyZCIKIAogIzogYnVpbHRpbi9jaGVjay1hdHRyLmM6MjMgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoyNAotbXNnaWQgImlucHV0IHBhdGhzIGFyZSB0ZXJtaW5hdGVkIGJ5IGEgbnVsbCBjaGFyYWN0ZXIiCi1tc2dzdHIgImxlcyBjaGVtaW5zIGVuIGVudHLDqWUgc29udCB0ZXJtaW7DqXMgcGFyIGxlIGNhcmFjdMOocmUgbnVsIgorbXNnaWQgInRlcm1pbmF0ZSBpbnB1dCBhbmQgb3V0cHV0IHJlY29yZHMgYnkgYSBOVUwgY2hhcmFjdGVyIgorbXNnc3RyICJ0ZXJtaW5lciBsZXMgZW5yZWdpc3RyZW1lbnRzIGVuIGVudHLDqWUgZXQgZW4gc29ydGllIHBhciB1biBjYXJhY3TDqHJlIE5VTCIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOCBidWlsdGluL2NoZWNrb3V0LmM6MTA0NCBidWlsdGluL2djLmM6MTc3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDkwIGJ1aWx0aW4vZ2MuYzoyNTkKIG1zZ2lkICJzdXBwcmVzcyBwcm9ncmVzcyByZXBvcnRpbmciCiBtc2dzdHIgInN1cHByaW1lciBsJ8OpdGF0IGQnYXZhbmNlbWVudCIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDYKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MjYKK21zZ2lkICJzaG93IG5vbi1tYXRjaGluZyBpbnB1dCBwYXRocyIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGNoZW1pbnMgZW4gZW50csOpZSBxdWkgbmUgY29ycmVzcG9uZGVudCBwYXMiCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MjgKK21zZ2lkICJpZ25vcmUgaW5kZXggd2hlbiBjaGVja2luZyIKK21zZ3N0ciAiaWdub3JlciBsJ2luZGV4IHBlbmRhbnQgbGEgdsOpcmlmaWNhdGlvbiIKKworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTQKIG1zZ2lkICJjYW5ub3Qgc3BlY2lmeSBwYXRobmFtZXMgd2l0aCAtLXN0ZGluIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIHNww6ljaWZpZXIgbGVzIGNoZW1pbnMgYXZlYyAtLXN0ZGluIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0OQorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTcKIG1zZ2lkICIteiBvbmx5IG1ha2VzIHNlbnNlIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAiLXogbidhIGRlIHNlbnMgcXUnYXZlYyBsJ29wdGlvbiAtLXN0ZGluIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MQorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTkKIG1zZ2lkICJubyBwYXRoIHNwZWNpZmllZCIKIG1zZ3N0ciAiYXVjdW4gY2hlbWluIHNww6ljaWZpw6kiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU1CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2MwogbXNnaWQgIi0tcXVpZXQgaXMgb25seSB2YWxpZCB3aXRoIGEgc2luZ2xlIHBhdGhuYW1lIgogbXNnc3RyICItLXF1aWV0IG4nZXN0IHZhbGlkZSBxdSdhdmVjIHVuIHNldWwgY2hlbWluIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjUKIG1zZ2lkICJjYW5ub3QgaGF2ZSBib3RoIC0tcXVpZXQgYW5kIC0tdmVyYm9zZSIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkJ2F2b2lyIC0tcXVpZXQgZXQgLS12ZXJib3NlIgogCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2OAorbXNnaWQgIi0tbm9uLW1hdGNoaW5nIGlzIG9ubHkgdmFsaWQgd2l0aCAtLXZlcmJvc2UiCittc2dzdHIgIi0tbm9uLW1hdGNoaW5nIG4nZXN0IHZhbGlkZSBxdSdhdmVjIC0tdmVyYm9zZSIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6OAorbXNnaWQgImdpdCBjaGVjay1tYWlsbWFwIFtvcHRpb25zXSA8Y29udGFjdD4uLi4iCittc2dzdHIgImdpdCBjaGVjay1tYWlsbWFwIFtvcHRpb25zXSA8Y29udGFjdD4uLi4iCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjEzCittc2dpZCAiYWxzbyByZWFkIGNvbnRhY3RzIGZyb20gc3RkaW4iCittc2dzdHIgImxpcmUgYXVzc2kgbGVzIGNvbnRhY3RzIGRlcHVpcyBsJ2VudHLDqWUgc3RhbmRhcmQiCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBwYXJzZSBjb250YWN0OiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIGNvbnRhY3QgOiAlcyIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6NDcKK21zZ2lkICJubyBjb250YWN0cyBzcGVjaWZpZWQiCittc2dzdHIgImF1Y3VuIGNvbnRhY3Qgc3DDqWNpZmnDqSIKKwogIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjEyNgogbXNnaWQgImdpdCBjaGVja291dC1pbmRleCBbb3B0aW9uc10gWy0tXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiZ2l0IGNoZWNrb3V0LWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmljaGllcj4uLi5dIgpAQCAtMjk2Miw3ICszMzc3LDkgQEAKIAogIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5MAogbXNnaWQgIm5vIHdhcm5pbmcgZm9yIGV4aXN0aW5nIGZpbGVzIGFuZCBmaWxlcyBub3QgaW4gaW5kZXgiCi1tc2dzdHIgInBhcyBkJ2F2ZXJ0aXNzZW1lbnQgcG91ciBsZXMgZmljaGllcnMgZXhpc3RhbnRzIGV0IGxlcyBmaWNoaWVycyBhYnNlbnRzIGRlIGwnaW5kZXgiCittc2dzdHIgIiIKKyJwYXMgZCdhdmVydGlzc2VtZW50IHBvdXIgbGVzIGZpY2hpZXJzIGV4aXN0YW50cyBldCBsZXMgZmljaGllcnMgYWJzZW50cyBkZSAiCisibCdpbmRleCIKIAogIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5MgogbXNnaWQgImRvbid0IGNoZWNrb3V0IG5ldyBmaWxlcyIKQEAgLTMwMDAsMTA2ICszNDE3LDEwOCBAQAogbXNnaWQgImdpdCBjaGVja291dCBbb3B0aW9uc10gWzxicmFuY2g+XSAtLSA8ZmlsZT4uLi4iCiBtc2dzdHIgImdpdCBjaGVja291dCBbb3B0aW9uc10gWzxicmFuY2hlPl0gLS0gPGZpY2hpZXI+Li4uIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTQgYnVpbHRpbi9jaGVja291dC5jOjE0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBvdXIgdmVyc2lvbiIKIG1zZ3N0ciAibGUgY2hlbWluICclcycgbidhIHBhcyBub3RyZSB2ZXJzaW9uIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYgYnVpbHRpbi9jaGVja291dC5jOjE0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSB0aGVpciB2ZXJzaW9uIgogbXNnc3RyICJsZSBjaGVtaW4gJyVzJyBuJ2EgcGFzIGxldXIgdmVyc2lvbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEzNQorIzogYnVpbHRpbi9jaGVja291dC5jOjEzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBhbGwgbmVjZXNzYXJ5IHZlcnNpb25zIgogbXNnc3RyICJsZSBjaGVtaW4gJyVzJyBuJ2EgYXVjdW5lIGRlcyB2ZXJzaW9ucyBuw6ljZXNzYWlyZXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNzkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgbmVjZXNzYXJ5IHZlcnNpb25zIgogbXNnc3RyICJsZSBjaGVtaW4gJyVzJyBuJ2EgcGFzIGxlcyB2ZXJzaW9ucyBuw6ljZXNzYWlyZXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxOTYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxOTMKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnOiBjYW5ub3QgbWVyZ2UiCiBtc2dzdHIgImNoZW1pbiAnJXMnIDogaW1wb3NzaWJsZSBkZSBmdXNpb25uZXIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGFkZCBtZXJnZSByZXN1bHQgZm9yICclcyciCiBtc2dzdHIgIkltcG9zc2libGUgZCdham91dGVyIGxlIHLDqXN1bHRhdCBkZSBmdXNpb24gcG91ciAnJXMnIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjM3IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDAgYnVpbHRpbi9jaGVja291dC5jOjI0MwotIzogYnVpbHRpbi9jaGVja291dC5jOjI0NgorIzogYnVpbHRpbi9jaGVja291dC5jOjIzMiBidWlsdGluL2NoZWNrb3V0LmM6MjM1IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoIHVwZGF0aW5nIHBhdGhzIgogbXNnc3RyICInJXMnIG5lIHBldXQgcGFzIMOqdHJlIHV0aWxpc8OpIGF2ZWMgZGVzIG1pc2VzIMOgIGpvdXIgZGUgY2hlbWlucyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjI0OSBidWlsdGluL2NoZWNrb3V0LmM6MjUyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ0IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoICVzIgogbXNnc3RyICInJXMnIG5lIHBldXQgcGFzIMOqdHJlIHV0aWxpc8OpIGF2ZWMgJXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHVwZGF0ZSBwYXRocyBhbmQgc3dpdGNoIHRvIGJyYW5jaCAnJXMnIGF0IHRoZSBzYW1lIHRpbWUuIgotbXNnc3RyICJJbXBvc3NpYmxlIGRlIG1ldHRyZSDDoCBqb3VyIGxlcyBjaGVtaW5zIGV0IGJhc2N1bGVyIHN1ciBsYSBicmFuY2hlICclcycgZW4gbcOqbWUgdGVtcHMuIgorbXNnc3RyICIiCisiSW1wb3NzaWJsZSBkZSBtZXR0cmUgw6Agam91ciBsZXMgY2hlbWlucyBldCBiYXNjdWxlciBzdXIgbGEgYnJhbmNoZSAnJXMnIGVuICIKKyJtw6ptZSB0ZW1wcy4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNjYgYnVpbHRpbi9jaGVja291dC5jOjQ1OAorIzogYnVpbHRpbi9jaGVja291dC5jOjI2MSBidWlsdGluL2NoZWNrb3V0LmM6NDUxCiBtc2dpZCAiY29ycnVwdCBpbmRleCBmaWxlIgogbXNnc3RyICJmaWNoaWVyIGQnaW5kZXggY29ycm9tcHUiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzozMjkgYnVpbHRpbi9jaGVja291dC5jOjMzNgorIzogYnVpbHRpbi9jaGVja291dC5jOjMyMiBidWlsdGluL2NoZWNrb3V0LmM6MzI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBpcyB1bm1lcmdlZCIKIG1zZ3N0ciAibGUgY2hlbWluICclcycgbidlc3QgcGFzIGZ1c2lvbm7DqSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjQ4MAorIzogYnVpbHRpbi9jaGVja291dC5jOjQ3MwogbXNnaWQgInlvdSBuZWVkIHRvIHJlc29sdmUgeW91ciBjdXJyZW50IGluZGV4IGZpcnN0IgogbXNnc3RyICJ2b3VzIGRldmV6IGQnYWJvcmQgcsOpc291ZHJlIHZvdHJlIGluZGV4IGNvdXJhbnQiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MDEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo1OTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2FuIG5vdCBkbyByZWZsb2cgZm9yICclcydcbiIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSBmYWlyZSB1biByZWZsb2cgcG91ciAnJXMnXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MzQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MzIKIG1zZ2lkICJIRUFEIGlzIG5vdyBhdCIKIG1zZ3N0ciAiSEVBRCBlc3QgbWFpbnRlbmFudCBzdXIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVzZXQgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAiUmVtaXNlIMOgIHrDqXJvIGRlIGxhIGJyYW5jaGUgJyVzJ1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFscmVhZHkgb24gJyVzJ1xuIgogbXNnc3RyICJEw6lqw6Agc3VyICclcydcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0OAorIzogYnVpbHRpbi9jaGVja291dC5jOjY0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBhbmQgcmVzZXQgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAiQmFzY3VsZW1lbnQgZXQgcmVtaXNlIMOgIHrDqXJvIGRlIGxhIGJyYW5jaGUgJyVzJ1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjUwIGJ1aWx0aW4vY2hlY2tvdXQuYzo5ODcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDggYnVpbHRpbi9jaGVja291dC5jOjEwMzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYSBuZXcgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAiQmFzY3VsZW1lbnQgc3VyIGxhIG5vdXZlbGxlIGJyYW5jaGUgJyVzJ1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjUyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIkJhc2N1bGVtZW50IHN1ciBsYSBicmFuY2hlICclcydcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjcwOAorIzogYnVpbHRpbi9jaGVja291dC5jOjcwNgogIywgYy1mb3JtYXQKIG1zZ2lkICIgLi4uIGFuZCAlZCBtb3JlLlxuIgogbXNnc3RyICIgLi4uIGV0ICVkIGVuIHBsdXMuXG4iCiAKICMuIFRoZSBzaW5ndWxhciB2ZXJzaW9uCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzE0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJXYXJuaW5nOiB5b3UgYXJlIGxlYXZpbmcgJWQgY29tbWl0IGJlaGluZCwgbm90IGNvbm5lY3RlZCB0b1xuIgpAQCAtMzEyMiw3ICszNTQxLDcgQEAKICJcbiIKICIlc1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzMyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJJZiB5b3Ugd2FudCB0byBrZWVwIHRoZW0gYnkgY3JlYXRpbmcgYSBuZXcgYnJhbmNoLCB0aGlzIG1heSBiZSBhIGdvb2QgdGltZVxuIgpAQCAtMzEzMSwxNTYgKzM1NTAsMTYyIEBACiAiIGdpdCBicmFuY2ggbmV3X2JyYW5jaF9uYW1lICVzXG4iCiAiXG4iCiBtc2dzdHIgIiIKLSJTaSB2b3VzIHNvdWhhaXRleiBsZXMgZ2FyZGVyIGVuIGNyw6lhbnQgdW5lIG5vdXZlbGxlIGJyYW5jaGUsIGMnZXN0IGxlIGJvbiBtb21lbnRcbiIKKyJTaSB2b3VzIHNvdWhhaXRleiBsZXMgZ2FyZGVyIGVuIGNyw6lhbnQgdW5lIG5vdXZlbGxlIGJyYW5jaGUsIGMnZXN0IGxlIGJvbiAiCisibW9tZW50XG4iCiAiZGUgbGUgZmFpcmUgYXZlYyA6XG4iCiAiXG4iCiAiZ2l0IGJyYW5jaGUgbm91dmVsbGVfYnJhbmNoZSAlc1xuIgogIlxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzYyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzYwCiBtc2dpZCAiaW50ZXJuYWwgZXJyb3IgaW4gcmV2aXNpb24gd2FsayIKIG1zZ3N0ciAiZXJyZXVyIGludGVybmUgbG9ycyBkdSBwYXJjb3VycyBkZXMgcsOpdmlzaW9ucyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc2NgorIzogYnVpbHRpbi9jaGVja291dC5jOjc2NAogbXNnaWQgIlByZXZpb3VzIEhFQUQgcG9zaXRpb24gd2FzIgogbXNnc3RyICJMYSBwb3NpdGlvbiBwcsOpY8OpZGVudGUgZGUgSEVBRCDDqXRhaXQiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTMgYnVpbHRpbi9jaGVja291dC5jOjk4MgorIzogYnVpbHRpbi9jaGVja291dC5jOjc5MSBidWlsdGluL2NoZWNrb3V0LmM6MTAyOAogbXNnaWQgIllvdSBhcmUgb24gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgIlZvdXMgw6p0ZXMgc3VyIHVuZSBicmFuY2hlIHF1aSBkb2l0IGVuY29yZSBuYcOudHJlIgogCi0jLiBjYXNlICgxKQotIzogYnVpbHRpbi9jaGVja291dC5jOjkxOAorIzogYnVpbHRpbi9jaGVja291dC5jOjkzNQorIywgYy1mb3JtYXQKK21zZ2lkICJvbmx5IG9uZSByZWZlcmVuY2UgZXhwZWN0ZWQsICVkIGdpdmVuLiIKK21zZ3N0ciAidW5lIHNldWxlIHLDqWbDqXJlbmNlIGF0dGVuZHVlLCAlZCBmb3Vybmllcy4iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCByZWZlcmVuY2U6ICVzIgogbXNnc3RyICJyw6lmw6lyZW5jZSBpbnZhbGlkZSA6ICVzIgogCiAjLiBjYXNlICgxKTogd2FudCBhIHRyZWUKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5NTcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSBpcyBub3QgYSB0cmVlOiAlcyIKIG1zZ3N0ciAibGEgcsOpZsOpcmVuY2Ugbidlc3QgcGFzIHVuIGFyYnJlIDogJXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQyCiBtc2dpZCAicGF0aHMgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCiBtc2dzdHIgImltcG9zc2libGUgZCd1dGlsaXNlciBkZXMgY2hlbWlucyBhdmVjIHVuIGJhc2N1bGVtZW50IGRlIGJyYW5jaGVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTk5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDAzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NSBidWlsdGluL2NoZWNrb3V0LmM6MTA0OQogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggc3dpdGNoaW5nIGJyYW5jaGVzIgogbXNnc3RyICInJXMnIG5lIHBldXQgcGFzIMOqdHJlIHV0aWxpc8OpIGF2ZWMgdW4gYmFzY3VsZW1lbnQgZGUgYnJhbmNoZXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDEwIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDE1Ci0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAxOAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTMgYnVpbHRpbi9jaGVja291dC5jOjEwNTYgYnVpbHRpbi9jaGVja291dC5jOjEwNjEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAnJXMnIgogbXNnc3RyICInJXMnIG5lIHBldXQgcGFzIMOqdHJlIHV0aWxpc8OpIGF2ZWMgJyVzJyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMjMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBzd2l0Y2ggYnJhbmNoIHRvIGEgbm9uLWNvbW1pdCAnJXMnIgogbXNnc3RyICJJbXBvc3NpYmxlIGRlIGJhc2N1bGVyIGRlIGJyYW5jaGUgdmVycyAnJXMnIHF1aSBuJ2VzdCBwYXMgdW4gY29tbWl0IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NSBidWlsdGluL2NoZWNrb3V0LmM6MTA0NyBidWlsdGluL2Nsb25lLmM6OTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDkxIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDkzIGJ1aWx0aW4vY2xvbmUuYzo4OAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNjkgYnVpbHRpbi9yZW1vdGUuYzoxNzEKIG1zZ2lkICJicmFuY2giCiBtc2dzdHIgImJyYW5jaGUiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5MgogbXNnaWQgImNyZWF0ZSBhbmQgY2hlY2tvdXQgYSBuZXcgYnJhbmNoIgogbXNnc3RyICJjcsOpZXIgZXQgZXh0cmFpcmUgdW5lIG5vdXZlbGxlIGJyYW5jaGUiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5NAogbXNnaWQgImNyZWF0ZS9yZXNldCBhbmQgY2hlY2tvdXQgYSBicmFuY2giCiBtc2dzdHIgImNyw6llci9yw6lpbml0aWFsaXNlciBldCBleHRyYWlyZSB1bmUgYnJhbmNoZSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDk1CiBtc2dpZCAiY3JlYXRlIHJlZmxvZyBmb3IgbmV3IGJyYW5jaCIKLW1zZ3N0ciAiY3LDqWVyIHVuIHJlZm9nIHBvdXIgdW5lIG5vdXZlbGxlIGJyYW5jaGUiCittc2dzdHIgImNyw6llciB1biByZWZsb2cgcG91ciB1bmUgbm91dmVsbGUgYnJhbmNoZSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDk2CiBtc2dpZCAiZGV0YWNoIHRoZSBIRUFEIGF0IG5hbWVkIGNvbW1pdCIKIG1zZ3N0ciAiZMOpdGFjaGVyIGxhIEhFQUQgw6AgbGEgdmFsaWRhdGlvbiBub21tw6llIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTcKIG1zZ2lkICJzZXQgdXBzdHJlYW0gaW5mbyBmb3IgbmV3IGJyYW5jaCIKIG1zZ3N0ciAicGFyYW3DqXRyZXIgbCdpbmZvcm1hdGlvbiBkZSBicmFuY2hlIGFtb250IHBvdXIgdW5lIG5vdXZlbGxlIGJyYW5jaGUiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5OQogbXNnaWQgIm5ldyBicmFuY2giCiBtc2dzdHIgIm5vdXZlbGxlIGJyYW5jaGUiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5OQogbXNnaWQgIm5ldyB1bnBhcmVudGVkIGJyYW5jaCIKIG1zZ3N0ciAibm91dmVsbGUgYnJhbmNoZSBzYW5zIHBhcmVudCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAwCiBtc2dpZCAiY2hlY2tvdXQgb3VyIHZlcnNpb24gZm9yIHVubWVyZ2VkIGZpbGVzIgogbXNnc3RyICJleHRyYWlyZSBub3RyZSB2ZXJzaW9uIHBvdXIgbGVzIGZpY2hpZXJzIG5vbiBmdXNpb25uw6lzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDIKIG1zZ2lkICJjaGVja291dCB0aGVpciB2ZXJzaW9uIGZvciB1bm1lcmdlZCBmaWxlcyIKIG1zZ3N0ciAiZXh0cmFpcmUgbGV1ciB2ZXJzaW9uIHBvdXIgbGVzIGZpY2hpZXJzIG5vbiBmdXNpb25uw6lzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OAorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDQKIG1zZ2lkICJmb3JjZSBjaGVja291dCAodGhyb3cgYXdheSBsb2NhbCBtb2RpZmljYXRpb25zKSIKIG1zZ3N0ciAiZm9yY2VyIGwnZXh0cmFjdGlvbiAobGFpc3NlciB0b21iZXIgbGVzIG1vZGlmaWNhdGlvbnMgbG9jYWxlcykiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwNQogbXNnaWQgInBlcmZvcm0gYSAzLXdheSBtZXJnZSB3aXRoIHRoZSBuZXcgYnJhbmNoIgotbXNnc3RyICJyw6lhbGlzZXIgdW5lIGZ1c2lvbiDDoCAzIHBvaW50cyBhdmVjIGxhIG5vdXZlbGxlIGJyYW5jaGUiCittc2dzdHIgImVmZmVjdHVlciB1bmUgZnVzaW9uIMOgIDMgcG9pbnRzIGF2ZWMgbGEgbm91dmVsbGUgYnJhbmNoZSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjAgYnVpbHRpbi9tZXJnZS5jOjIxNworIzogYnVpbHRpbi9jaGVja291dC5jOjExMDYgYnVpbHRpbi9tZXJnZS5jOjIzMgogbXNnaWQgInVwZGF0ZSBpZ25vcmVkIGZpbGVzIChkZWZhdWx0KSIKIG1zZ3N0ciAibWV0dHJlIMOgIGpvdXIgbGVzIGZpY2hpZXJzIGlnbm9yw6lzIChwYXIgZMOpZmF1dCkiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYxIGJ1aWx0aW4vbG9nLmM6MTE1OCBwYXJzZS1vcHRpb25zLmg6MjQ1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwNyBidWlsdGluL2xvZy5jOjEyMjggcGFyc2Utb3B0aW9ucy5oOjI1MQogbXNnaWQgInN0eWxlIgogbXNnc3RyICJzdHlsZSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTA4CiBtc2dpZCAiY29uZmxpY3Qgc3R5bGUgKG1lcmdlIG9yIGRpZmYzKSIKIG1zZ3N0ciAic3R5bGUgZGUgY29uZmxpdCAoZnVzaW9uIG91IGRpZmYzKSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTExCiBtc2dpZCAiZG8gbm90IGxpbWl0IHBhdGhzcGVjcyB0byBzcGFyc2UgZW50cmllcyBvbmx5IgotbXNnc3RyICJuZSBwYXMgbGltaXRlciBsZXMgc3DDqWNpZmljYXRldXJzIGRlIGNoZW1pbnMgYXV4IHNldWxlcyBlbnRyw6llcyBjcmV1c2VzIgorbXNnc3RyICJuZSBwYXMgbGltaXRlciBsZXMgc3DDqWNpZmljYXRldXJzIGRlIGNoZW1pbnMgYXV4IHNldWxzIMOpbMOpbWVudHMgY3JldXgiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTExMwogbXNnaWQgInNlY29uZCBndWVzcyAnZ2l0IGNoZWNrb3V0IG5vLXN1Y2gtYnJhbmNoJyIKIG1zZ3N0ciAiZGV1eGnDqG1lIGNoYW5jZSAnZ2l0IGNoZWNrb3V0IGJyYW5jaGUtaW5leGlzdGFudGUnIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5MQorIzogYnVpbHRpbi9jaGVja291dC5jOjExMzYKIG1zZ2lkICItYiwgLUIgYW5kIC0tb3JwaGFuIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCiBtc2dzdHIgIi1iLCAtQiBldCAtLW9ycGhhbiBzb250IG11dHVlbGxlbWVudCBleGNsdXNpZnMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTA4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1MwogbXNnaWQgIi0tdHJhY2sgbmVlZHMgYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiLS10cmFjayByZXF1aWVydCB1biBub20gZGUgYnJhbmNoZSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYwCiBtc2dpZCAiTWlzc2luZyBicmFuY2ggbmFtZTsgdHJ5IC1iIgogbXNnc3RyICJOb20gZGUgYnJhbmNoZSBtYW5xdWFudCA7IGVzc2F5ZXogLWIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTUwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE5NwogbXNnaWQgImludmFsaWQgcGF0aCBzcGVjaWZpY2F0aW9uIgogbXNnc3RyICJzcMOpY2lmaWNhdGlvbiBkZSBjaGVtaW4gaW52YWxpZGUiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTU3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTIwNAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IHVwZGF0ZSBwYXRocyBhbmQgc3dpdGNoIHRvIGJyYW5jaCAnJXMnIGF0IHRoZSBzYW1lIHRpbWUuXG4iCiAiRGlkIHlvdSBpbnRlbmQgdG8gY2hlY2tvdXQgJyVzJyB3aGljaCBjYW4gbm90IGJlIHJlc29sdmVkIGFzIGNvbW1pdD8iCiBtc2dzdHIgIiIKLSJJbXBvc3NpYmxlIGRlIG1ldHRyZSDDoCBqb3VyIGxlcyBjaGVtaW5zIGV0IGRlIGJhc2N1bGVyIHN1ciBsYSBicmFuY2hlICclcycgZW4gbcOqbWUgdGVtcHMuXG4iCisiSW1wb3NzaWJsZSBkZSBtZXR0cmUgw6Agam91ciBsZXMgY2hlbWlucyBldCBkZSBiYXNjdWxlciBzdXIgbGEgYnJhbmNoZSAnJXMnICIKKyJlbiBtw6ptZSB0ZW1wcy5cbiIKICJTb3VoYWl0aWV6LXZvdXMgZXh0cmFpcmUgJyVzJyBxdWkgbmUgcGV1dCDDqnRyZSByw6lzb2x1IGNvbW1lIGNvbW1pdCA/IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2MgorIzogYnVpbHRpbi9jaGVja291dC5jOjEyMDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IGNoZWNrb3V0OiAtLWRldGFjaCBkb2VzIG5vdCB0YWtlIGEgcGF0aCBhcmd1bWVudCAnJXMnIgogbXNnc3RyICJnaXQgY2hlY2tvdXQ6IC0tZGV0YWNoIG4nYWNjZXB0ZSBwYXMgdW4gYXJndW1lbnQgZGUgY2hlbWluICclcyciCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTY2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTIxMwogbXNnaWQgIiIKICJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSBhbmQgLS1tZXJnZSBhcmUgaW5jb21wYXRpYmxlIHdoZW5cbiIKICJjaGVja2luZyBvdXQgb2YgdGhlIGluZGV4LiIKQEAgLTMyODgsMzA1ICszNzEzLDQyNiBAQAogImdpdCBjaGVja291dDogLS1vdXJzLy0tdGhlaXJzLCAtLWZvcmNlIGV0IC0tbWVyZ2Ugc29udCBpbmNvbXBhdGlibGVzIGxvcnNcbiIKICJkZSBsJ2V4dHJhY3Rpb24gZGUgbCdpbmRleC4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyMAotbXNnaWQgImdpdCBjbGVhbiBbLWRdIFstZl0gWy1uXSBbLXFdIFstZSA8cGF0dGVybj5dIFsteCB8IC1YXSBbLS1dIDxwYXRocz4uLi4iCi1tc2dzdHIgImdpdCBjbGVhbiBbLWRdIFstZl0gWy1uXSBbLXFdIFstZSA8bW90aWY+XSBbLXggfCAtWF0gWy0tXSA8Y2hlbWlucz4uLi4iCisjOiBidWlsdGluL2NsZWFuLmM6MjYKK21zZ2lkICIiCisiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLWldIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aHM+Li4uIgorbXNnc3RyICIiCisiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLWldIFstbl0gWy1xXSBbLWUgPG1vdGlmPl0gWy14IHwgLVhdIFstLV0gPGNoZW1pbnM+Li4uIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlc1xuIgogbXNnc3RyICJTdXBwcmVzc2lvbiBkZSAlc1xuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjUKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMQogIywgYy1mb3JtYXQKIG1zZ2lkICJXb3VsZCByZW1vdmUgJXNcbiIKIG1zZ3N0ciAiU3VwcHJpbWVyYWl0ICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNgorIzogYnVpbHRpbi9jbGVhbi5jOjMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNraXBwaW5nIHJlcG9zaXRvcnkgJXNcbiIKIG1zZ3N0ciAiSWdub3JlIGxlIGTDqXDDtHQgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI3CisjOiBidWlsdGluL2NsZWFuLmM6MzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiV291bGQgc2tpcCByZXBvc2l0b3J5ICVzXG4iCiBtc2dzdHIgIklnbm9yZXJhaXQgbGUgZMOpcMO0dCAlc1xuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjgKKyM6IGJ1aWx0aW4vY2xlYW4uYzozNAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcmVtb3ZlICVzIgogbXNnc3RyICLDqWNoZWMgZGUgbGEgc3VwcHJlc3Npb24gZGUgJXMiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjAKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTQKK21zZ2lkICIiCisiUHJvbXB0IGhlbHA6XG4iCisiMSAgICAgICAgICAtIHNlbGVjdCBhIG51bWJlcmVkIGl0ZW1cbiIKKyJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorIiAgICAgICAgICAgLSAoZW1wdHkpIHNlbGVjdCBub3RoaW5nIgorbXNnc3RyICIiCisiQWlkZSBlbiBsaWduZSA6XG4iCisiMSAgICAgICAgICAgLSBzw6lsZWN0aW9ubmVyIHVuIMOpbMOpbWVudCBudW3DqXJvdMOpXG4iCisiZm9vICAgICAgICAgLSBzw6lsZWN0aW9ubmVyIHVuIMOpbMOpbWVudCBwYXIgdW4gcHLDqWZpeGUgdW5pcXVlXG4iCisiICAgICAgICAgICAgLSAodmlkZSkgbmUgcmllbiBzw6lsZWN0aW9ubmVyIgorCisjOiBidWlsdGluL2NsZWFuLmM6Mjk4Cittc2dpZCAiIgorIlByb21wdCBoZWxwOlxuIgorIjEgICAgICAgICAgLSBzZWxlY3QgYSBzaW5nbGUgaXRlbVxuIgorIjMtNSAgICAgICAgLSBzZWxlY3QgYSByYW5nZSBvZiBpdGVtc1xuIgorIjItMyw2LTkgICAgLSBzZWxlY3QgbXVsdGlwbGUgcmFuZ2VzXG4iCisiZm9vICAgICAgICAtIHNlbGVjdCBpdGVtIGJhc2VkIG9uIHVuaXF1ZSBwcmVmaXhcbiIKKyItLi4uICAgICAgIC0gdW5zZWxlY3Qgc3BlY2lmaWVkIGl0ZW1zXG4iCisiKiAgICAgICAgICAtIGNob29zZSBhbGwgaXRlbXNcbiIKKyIgICAgICAgICAgIC0gKGVtcHR5KSBmaW5pc2ggc2VsZWN0aW5nIgorbXNnc3RyICIiCisiQWlkZSBlbiBsaWduZSA6XG4iCisiMSAgICAgICAgICAtIHPDqWxlY3Rpb25uZXIgdW4gc2V1bCDDqWzDqW1lbnRcbiIKKyIzLTUgICAgICAgIC0gc8OpbGVjdGlvbm5lciB1bmUgcGxhZ2UgZCfDqWzDqW1lbnRzXG4iCisiMi0zLDYtOSAgICAtIHPDqWxlY3Rpb25uZXIgcGx1c2lldXJzIHBsYWdlc1xuIgorImZvbyAgICAgICAgLSBzw6lsZWN0aW9ubmVyIHVuIMOpbMOpbWVudCBwYXIgdW4gcHLDqWZpeGUgdW5pcXVlXG4iCisiLS4uLiAgICAgICAtIGTDqXPDqWxlY3Rpb25uZXIgbGVzIMOpbMOpbWVudHMgc3DDqWNpZmnDqXNcbiIKKyIqICAgICAgICAgIC0gY2hvaXNpciB0b3VzIGxlcyDDqWzDqW1lbnRzXG4iCisiICAgICAgICAgICAtICh2aWRlKSB0ZXJtaW5lciBsYSBzw6lsZWN0aW9uIgorCisjOiBidWlsdGluL2NsZWFuLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkh1aCAoJXMpPyIKK21zZ3N0ciAiSGVpbiAoJXMpID8iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5wdXQgaWdub3JlIHBhdHRlcm5zPj4gIgorbXNnc3RyICJFbnRyZXogbGVzIG1vdGlmcyDDoCBpZ25vcmVyPj4gIgorCisjOiBidWlsdGluL2NsZWFuLmM6Njk2CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IENhbm5vdCBmaW5kIGl0ZW1zIG1hdGNoZWQgYnk6ICVzIgorbXNnc3RyICJBVFRFTlRJT04gOiBJbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbGVzIMOpbMOpbWVudHMgY29ycmVzcG9uZGFudCDDoCA6ICVzIgorCisjOiBidWlsdGluL2NsZWFuLmM6NzE3Cittc2dpZCAiU2VsZWN0IGl0ZW1zIHRvIGRlbGV0ZSIKK21zZ3N0ciAiU8OpbGVjdGlvbm5lciBsZXMgw6lsw6ltZW50cyDDoCBzdXBwcmltZXIiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3ZlICVzPyAiCittc2dzdHIgInN1cHByaW1lciAlcyA/ICIKKworIzogYnVpbHRpbi9jbGVhbi5jOjc4MgorbXNnaWQgIkJ5ZS4iCittc2dzdHIgIkF1IHJldm9pci4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3OTAKK21zZ2lkICIiCisiY2xlYW4gICAgICAgICAgICAgICAtIHN0YXJ0IGNsZWFuaW5nXG4iCisiZmlsdGVyIGJ5IHBhdHRlcm4gICAtIGV4Y2x1ZGUgaXRlbXMgZnJvbSBkZWxldGlvblxuIgorInNlbGVjdCBieSBudW1iZXJzICAgLSBzZWxlY3QgaXRlbXMgdG8gYmUgZGVsZXRlZCBieSBudW1iZXJzXG4iCisiYXNrIGVhY2ggICAgICAgICAgICAtIGNvbmZpcm0gZWFjaCBkZWxldGlvbiAobGlrZSBcInJtIC1pXCIpXG4iCisicXVpdCAgICAgICAgICAgICAgICAtIHN0b3AgY2xlYW5pbmdcbiIKKyJoZWxwICAgICAgICAgICAgICAgIC0gdGhpcyBzY3JlZW5cbiIKKyI/ICAgICAgICAgICAgICAgICAgIC0gaGVscCBmb3IgcHJvbXB0IHNlbGVjdGlvbiIKK21zZ3N0ciAiIgorImNsZWFuICAgICAgICAgICAgICAgLSBkw6ltYXJyZXIgbGUgbmV0dG95YWdlXG4iCisiZmlsdGVyIGJ5IHBhdHRlcm4gICAtIGV4Y2x1cmUgZGVzIMOpbMOpbWVudHMgcGFyIG1vdGlmXG4iCisic2VsZWN0IGJ5IG51bWJlcnMgICAtIHPDqWxlY3Rpb25uZXIgbGVzIMOpbMOpbWVudHMgw6Agc3VwcHJpbWVyIHBhciBudW3DqXJvc1xuIgorImFzayBlYWNoICAgICAgICAgICAgLSBjb25maXJtZXIgY2hhcXVlIHN1cHByZXNzaW9uIChjb21tZSBcInJtIC1pXCIpXG4iCisicXVpdCAgICAgICAgICAgICAgICAtIGFycsOqdGVyIGxlIG5ldHRveWFnZVxuIgorImhlbHAgICAgICAgICAgICAgICAgLSBjZXQgw6ljcmFuXG4iCisiPyAgICAgICAgICAgICAgICAgICAtIGFpZGUgcG91ciBsYSBzw6lsZWN0aW9uIGVuIGxpZ25lIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODE3Cittc2dpZCAiKioqIENvbW1hbmRzICoqKiIKK21zZ3N0ciAiKioqIENvbW1hbmRlcyAqKioiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4MTgKK21zZ2lkICJXaGF0IG5vdyIKK21zZ3N0ciAiRXQgbWFpbnRlbmFudCA/IgorCisjOiBidWlsdGluL2NsZWFuLmM6ODI2Cittc2dpZCAiV291bGQgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgaXRlbToiCittc2dpZF9wbHVyYWwgIldvdWxkIHJlbW92ZSB0aGUgZm9sbG93aW5nIGl0ZW1zOiIKK21zZ3N0clswXSAiU3VwcHJpbWVyYWl0IGwnw6lsw6ltZW50IHN1aXZhbnQgOiIKK21zZ3N0clsxXSAiU3VwcHJpbWVyYWl0IGxlcyDDqWzDqW1lbnRzIHN1aXZhbnRzIDoiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NDMKK21zZ2lkICJObyBtb3JlIGZpbGVzIHRvIGNsZWFuLCBleGl0aW5nLiIKK21zZ3N0ciAiUGx1cyBkZSBmaWNoaWVyIMOgIG5ldHRveWVyLCBzb3J0aWUuIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODc0CiBtc2dpZCAiZG8gbm90IHByaW50IG5hbWVzIG9mIGZpbGVzIHJlbW92ZWQiCiBtc2dzdHIgIm5lIHBhcyBhZmZpY2hlciBsZXMgbm9tcyBkZXMgZmljaGllcnMgc3VwcHJpbcOpcyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2MgorIzogYnVpbHRpbi9jbGVhbi5jOjg3NgogbXNnaWQgImZvcmNlIgogbXNnc3RyICJmb3JjZXIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzcKK21zZ2lkICJpbnRlcmFjdGl2ZSBjbGVhbmluZyIKK21zZ3N0ciAibmV0dG95YWdlIGludGVyYWN0aWYiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzkKIG1zZ2lkICJyZW1vdmUgd2hvbGUgZGlyZWN0b3JpZXMiCiBtc2dzdHIgInN1cHByaW1lciBsZXMgcsOpcGVydG9pcmVzIGVudGllcnMiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjUgYnVpbHRpbi9kZXNjcmliZS5jOjQxMiBidWlsdGluL2dyZXAuYzo3MTcKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODcgYnVpbHRpbi9uYW1lLXJldi5jOjIzMSBidWlsdGluL3Nob3ctcmVmLmM6MTgyCisjOiBidWlsdGluL2NsZWFuLmM6ODgwIGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjAgYnVpbHRpbi9ncmVwLmM6NzE4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgzIGJ1aWx0aW4vbmFtZS1yZXYuYzozMTUgYnVpbHRpbi9zaG93LXJlZi5jOjE4NQogbXNnaWQgInBhdHRlcm4iCiBtc2dzdHIgIm1vdGlmIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY2CisjOiBidWlsdGluL2NsZWFuLmM6ODgxCiBtc2dpZCAiYWRkIDxwYXR0ZXJuPiB0byBpZ25vcmUgcnVsZXMiCiBtc2dzdHIgImFqb3V0ZXIgPG1vdGlmPiBhdXggcsOoZ2xlcyBpZ25vcmUiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjcKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODIKIG1zZ2lkICJyZW1vdmUgaWdub3JlZCBmaWxlcywgdG9vIgogbXNnc3RyICJzdXBwcmltZXIgbGVzIGZpY2hpZXJzIGlnbm9yw6lzLCBhdXNzaSIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2OQorIzogYnVpbHRpbi9jbGVhbi5jOjg4NAogbXNnaWQgInJlbW92ZSBvbmx5IGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgInN1cHByaW1lciBzZXVsZW1lbnQgbGVzIGZpY2hpZXJzIGlnbm9yw6lzIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTg3CisjOiBidWlsdGluL2NsZWFuLmM6OTAyCiBtc2dpZCAiLXggYW5kIC1YIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICIteCBldCAtWCBuZSBwZXV2ZW50IHBhcyDDqnRyZSB1dGlsaXPDqXMgZW5zZW1ibGUiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxOTEKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDYKIG1zZ2lkICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIHNldCB0byB0cnVlIGFuZCBuZWl0aGVyIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gY2xlYW4iCi1tc2dzdHIgImNsZWFuLnJlcXVpcmVGb3JjZSBwb3NpdGlvbm7DqSDDoCB0cnVlIGV0IG5pIC1uIG5pIC1mIGZvdXJuaSA7IHJlZnVzIGRlIG5ldHRveWVyIgotCi0jOiBidWlsdGluL2NsZWFuLmM6MTk0Ci1tc2dpZCAiIgotImNsZWFuLnJlcXVpcmVGb3JjZSBkZWZhdWx0cyB0byB0cnVlIGFuZCBuZWl0aGVyIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gIgorImNsZWFuLnJlcXVpcmVGb3JjZSBzZXQgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtaSwgLW4gbm9yIC1mIGdpdmVuOyByZWZ1c2luZyB0byAiCiAiY2xlYW4iCi1tc2dzdHIgImNsZWFuLnJlcXVpcmVGb3JjZSDDoCB0cnVlIHBhciBkw6lmYXV0IGV0IG5pIC1uIG5pIC1mIGZvdXJuaSA7IHJlZnVzIGRlIG5ldHRveWVyIgorbXNnc3RyICIiCisiY2xlYW4ucmVxdWlyZUZvcmNlIHBvc2l0aW9ubsOpIMOgIHRydWUgZXQgbmkgLWksIC1uIG91IC1mIGZvdXJuaSA7IHJlZnVzIGRlICIKKyJuZXR0b3llciIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM3CisjOiBidWlsdGluL2NsZWFuLmM6OTA5Cittc2dpZCAiIgorImNsZWFuLnJlcXVpcmVGb3JjZSBkZWZhdWx0cyB0byB0cnVlIGFuZCBuZWl0aGVyIC1pLCAtbiBub3IgLWYgZ2l2ZW47ICIKKyJyZWZ1c2luZyB0byBjbGVhbiIKK21zZ3N0ciAiIgorImNsZWFuLnJlcXVpcmVGb3JjZSDDoCB0cnVlIHBhciBkw6lmYXV0IGV0IG5pIC1pLCAtbiBvdSAtZiBmb3VybmkgOyByZWZ1cyBkZSAiCisibmV0dG95ZXIiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNgogbXNnaWQgImdpdCBjbG9uZSBbb3B0aW9uc10gWy0tXSA8cmVwbz4gWzxkaXI+XSIKIG1zZ3N0ciAiZ2l0IGNsb25lIFtvcHRpb25zXSBbLS1dIDxkw6lww7R0PiBbPHLDqXBlcnRvaXJlPl0iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NSBidWlsdGluL2ZldGNoLmM6ODIgYnVpbHRpbi9tZXJnZS5jOjIxNAotIzogYnVpbHRpbi9wdXNoLmM6NDM2CisjOiBidWlsdGluL2Nsb25lLmM6NjQgYnVpbHRpbi9mZXRjaC5jOjk2IGJ1aWx0aW4vbWVyZ2UuYzoyMjkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3NAogbXNnaWQgImZvcmNlIHByb2dyZXNzIHJlcG9ydGluZyIKIG1zZ3N0ciAiZm9yY2VyIGwnw6l0YXQgZCdhdmFuY2VtZW50IgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NgogbXNnaWQgImRvbid0IGNyZWF0ZSBhIGNoZWNrb3V0IgogbXNnc3RyICJuZSBwYXMgY3LDqWVyIGQnZXh0cmFjdGlvbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY4IGJ1aWx0aW4vY2xvbmUuYzo3MCBidWlsdGluL2luaXQtZGIuYzo0ODgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NyBidWlsdGluL2Nsb25lLmM6NjkgYnVpbHRpbi9pbml0LWRiLmM6NDg4CiBtc2dpZCAiY3JlYXRlIGEgYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICJjcsOpZXIgdW4gZMOpcMO0dCBudSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjczCisjOiBidWlsdGluL2Nsb25lLmM6NzEKIG1zZ2lkICJjcmVhdGUgYSBtaXJyb3IgcmVwb3NpdG9yeSAoaW1wbGllcyBiYXJlKSIKIG1zZ3N0ciAiY3LDqWVyIHVuIGTDqXDDtHQgbWlyb2lyIChpbXBsaXF1ZSBkw6lww7R0IG51KSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc1CisjOiBidWlsdGluL2Nsb25lLmM6NzMKIG1zZ2lkICJ0byBjbG9uZSBmcm9tIGEgbG9jYWwgcmVwb3NpdG9yeSIKIG1zZ3N0ciAicG91ciBjbG9uZXIgZGVwdWlzIHVuIGTDqXDDtHQgbG9jYWwiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NworIzogYnVpbHRpbi9jbG9uZS5jOjc1CiBtc2dpZCAiZG9uJ3QgdXNlIGxvY2FsIGhhcmRsaW5rcywgYWx3YXlzIGNvcHkiCiBtc2dzdHIgIm5lIHBhcyB1dGlsaXNlciBkZSBsaWVucyBkdXJzIGxvY2F1eCwgdG91am91cnMgY29waWVyIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NwogbXNnaWQgInNldHVwIGFzIHNoYXJlZCByZXBvc2l0b3J5IgogbXNnc3RyICJyw6lnbGVyIGNvbW1lIGTDqXDDtHQgcGFydGFnw6kiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MSBidWlsdGluL2Nsb25lLmM6ODMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OSBidWlsdGluL2Nsb25lLmM6ODEKIG1zZ2lkICJpbml0aWFsaXplIHN1Ym1vZHVsZXMgaW4gdGhlIGNsb25lIgogbXNnc3RyICJpbml0aWFsaXNlciBsZXMgc291cy1tb2R1bGVzIGRhbnMgbGUgY2xvbmUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NCBidWlsdGluL2luaXQtZGIuYzo0ODUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MiBidWlsdGluL2luaXQtZGIuYzo0ODUKIG1zZ2lkICJ0ZW1wbGF0ZS1kaXJlY3RvcnkiCiBtc2dzdHIgInLDqXBlcnRvaXJlLW1vZMOobGUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NSBidWlsdGluL2luaXQtZGIuYzo0ODYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MyBidWlsdGluL2luaXQtZGIuYzo0ODYKIG1zZ2lkICJkaXJlY3RvcnkgZnJvbSB3aGljaCB0ZW1wbGF0ZXMgd2lsbCBiZSB1c2VkIgogbXNnc3RyICJyw6lwZXJ0b2lyZSBkZXB1aXMgbGVxdWVsIGxlcyBtb2TDqGxlcyB2b250IMOqdHJlIHV0aWxpc8OpcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg3CisjOiBidWlsdGluL2Nsb25lLmM6ODUKIG1zZ2lkICJyZWZlcmVuY2UgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiZMOpcMO0dCBkZSByw6lmw6lyZW5jZSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg4IGJ1aWx0aW4vY29sdW1uLmM6MjYgYnVpbHRpbi9tZXJnZS1maWxlLmM6NDQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NiBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0CiBtc2dpZCAibmFtZSIKIG1zZ3N0ciAibm9tIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NwogbXNnaWQgInVzZSA8bmFtZT4gaW5zdGVhZCBvZiAnb3JpZ2luJyB0byB0cmFjayB1cHN0cmVhbSIKIG1zZ3N0ciAidXRpbGlzZXIgPG5vbT4gYXUgbGlldSBkZSAnb3JpZ2luJyBwb3VyIHN1aXZyZSBsYSBicmFuY2hlIGFtb250IgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4OQogbXNnaWQgImNoZWNrb3V0IDxicmFuY2g+IGluc3RlYWQgb2YgdGhlIHJlbW90ZSdzIEhFQUQiCiBtc2dzdHIgImV4dHJhaXJlIDxicmFuY2hlPiBhdSBsaWV1IGRlIGxhIEhFQUQgZHUgcsOpcGVydG9pcmUgZGlzdGFudCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkzCisjOiBidWlsdGluL2Nsb25lLmM6OTEKIG1zZ2lkICJwYXRoIHRvIGdpdC11cGxvYWQtcGFjayBvbiB0aGUgcmVtb3RlIgogbXNnc3RyICJjaGVtaW4gdmVycyBnaXQtdXBsb2FkLXBhY2sgc3VyIGxlIHNlcnZldXIgZGlzdGFudCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk0IGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MiBidWlsdGluL2ZldGNoLmM6OTcgYnVpbHRpbi9ncmVwLmM6NjYzCiBtc2dpZCAiZGVwdGgiCiBtc2dzdHIgInByb2ZvbmRldXIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NQorIzogYnVpbHRpbi9jbG9uZS5jOjkzCiBtc2dpZCAiY3JlYXRlIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGF0IGRlcHRoIgogbXNnc3RyICJjcsOpZXIgdW4gY2xvbmUgc3VwZXJmaWNpZWwgZGUgY2V0dGUgcHJvZm9uZGV1ciIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk3CisjOiBidWlsdGluL2Nsb25lLmM6OTUKIG1zZ2lkICJjbG9uZSBvbmx5IG9uZSBicmFuY2gsIEhFQUQgb3IgLS1icmFuY2giCiBtc2dzdHIgImNsb25lciBzZXVsZW1lbnQgdW5lIGJyYW5jaGUsIEhFQUQgb3UgLS1icmFuY2giCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5OCBidWlsdGluL2luaXQtZGIuYzo0OTQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NiBidWlsdGluL2luaXQtZGIuYzo0OTQKIG1zZ2lkICJnaXRkaXIiCiBtc2dzdHIgImdpdGRpciIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk5IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NQorIzogYnVpbHRpbi9jbG9uZS5jOjk3IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NQogbXNnaWQgInNlcGFyYXRlIGdpdCBkaXIgZnJvbSB3b3JraW5nIHRyZWUiCiBtc2dzdHIgInPDqXBhcmVyIGxlIHLDqXBlcnRvaXJlIGdpdCBkZSBsYSBjb3BpZSBkZSB0cmF2YWlsIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAwCisjOiBidWlsdGluL2Nsb25lLmM6OTgKIG1zZ2lkICJrZXk9dmFsdWUiCiBtc2dzdHIgImNsw6k9dmFsZXVyIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAxCisjOiBidWlsdGluL2Nsb25lLmM6OTkKIG1zZ2lkICJzZXQgY29uZmlnIGluc2lkZSB0aGUgbmV3IHJlcG9zaXRvcnkiCiBtc2dzdHIgInLDqWdsZXIgbGEgY29uZmlndXJhdGlvbiBkYW5zIGxlIG5vdXZlYXUgZMOpcMO0dCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjI1NAorIzogYnVpbHRpbi9jbG9uZS5jOjI1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWZlcmVuY2UgcmVwb3NpdG9yeSAnJXMnIGlzIG5vdCBhIGxvY2FsIHJlcG9zaXRvcnkuIgogbXNnc3RyICJsZSBkw6lww7R0IGRlIHLDqWbDqXJlbmNlICclcycgbidlc3QgcGFzIHVuIGTDqXDDtHQgbG9jYWwuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzE3CisjOiBidWlsdGluL2Nsb25lLmM6MzE1CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgZGlyZWN0b3J5ICclcyciCiBtc2dzdHIgIsOpY2hlYyBkZSBsYSBjcsOpYXRpb24gZHUgcsOpcGVydG9pcmUgJyVzJyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMxOSBidWlsdGluL2RpZmYuYzo3NworIzogYnVpbHRpbi9jbG9uZS5jOjMxNyBidWlsdGluL2RpZmYuYzo3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc3RhdCAnJXMnIgogbXNnc3RyICLDqWNoZWMgZHUgc3RhdCBkZSAnJXMnIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzIxCisjOiBidWlsdGluL2Nsb25lLmM6MzE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGV4aXN0cyBhbmQgaXMgbm90IGEgZGlyZWN0b3J5IgogbXNnc3RyICIlcyBleGlzdGUgZXQgbidlc3QgcGFzIHVuIHLDqXBlcnRvaXJlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzM1CisjOiBidWlsdGluL2Nsb25lLmM6MzMzCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzdGF0ICVzXG4iCiBtc2dzdHIgIsOpY2hlYyBkdSBzdGF0IGRlICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNTcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBsaW5rICclcyciCiBtc2dzdHIgIsOpY2hlYyBkZSBsYSBjcsOpYXRpb24gZHUgbGllbiAnJXMnIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzYxCisjOiBidWlsdGluL2Nsb25lLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjb3B5IGZpbGUgdG8gJyVzJyIKIG1zZ3N0ciAiw6ljaGVjIGRlIGxhIGNvcGllIHZlcnMgJyVzJyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM4NAorIzogYnVpbHRpbi9jbG9uZS5jOjM4MiBidWlsdGluL2Nsb25lLmM6NTU5CiAjLCBjLWZvcm1hdAogbXNnaWQgImRvbmUuXG4iCiBtc2dzdHIgImZhaXQuXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozOTcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozOTUKIG1zZ2lkICIiCiAiQ2xvbmUgc3VjY2VlZGVkLCBidXQgY2hlY2tvdXQgZmFpbGVkLlxuIgogIllvdSBjYW4gaW5zcGVjdCB3aGF0IHdhcyBjaGVja2VkIG91dCB3aXRoICdnaXQgc3RhdHVzJ1xuIgogImFuZCByZXRyeSB0aGUgY2hlY2tvdXQgd2l0aCAnZ2l0IGNoZWNrb3V0IC1mIEhFQUQnXG4iCi1tc2dzdHIgIkxlIGNsb25lIGEgcsOpdXNzaSwgbWFpcyBsJ2V4dHJhY3Rpb24gYSDDqWNob3XDqS5cbiIKK21zZ3N0ciAiIgorIkxlIGNsb25lIGEgcsOpdXNzaSwgbWFpcyBsJ2V4dHJhY3Rpb24gYSDDqWNob3XDqS5cbiIKICJWb3VzIHBvdXZleiBpbnNwZWN0ZXIgY2UgcXVpIGEgw6l0w6kgZXh0cmFpdCBhdmVjICdnaXQgc3RhdHVzJ1xuIgogImV0IHLDqWVzc2F5ZXIgbCdleHRyYWN0aW9uIGF2ZWMgJ2dpdCBjaGVja291dCAtZiBIRUFEJ1xuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NDc2CisjOiBidWlsdGluL2Nsb25lLmM6NDc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmaW5kIHJlbW90ZSBicmFuY2ggJXMgdG8gY2xvbmUuIgogbXNnc3RyICJJbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbGEgYnJhbmNoZSBkaXN0YW50ZSAnJXMnIMOgIGNsb25lci4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo1NTAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hlY2tpbmcgY29ubmVjdGl2aXR5Li4uICIKK21zZ3N0ciAiVsOpcmlmaWNhdGlvbiBkZSBsYSBjb25uZWN0aXZpdMOpLi4uICIKKworIzogYnVpbHRpbi9jbG9uZS5jOjU1NwogbXNnaWQgInJlbW90ZSBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzIgogbXNnc3RyICJsZSBzZXJ2ZXVyIGRpc3RhbnQgbidhIHBhcyBlbnZvecOpIHRvdXMgbGVzIG9iamV0cyBuw6ljZXNzYWlyZXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2MTAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2MjAKIG1zZ2lkICJyZW1vdGUgSEVBRCByZWZlcnMgdG8gbm9uZXhpc3RlbnQgcmVmLCB1bmFibGUgdG8gY2hlY2tvdXQuXG4iCi1tc2dzdHIgImxhIEhFQUQgZGlzdGFudGUgcsOpZsOocmUgw6AgdW5lIHLDqWbDqXJlbmNlIG5vbiBleGlzdGFudGUsIGltcG9zc2libGUgZGUgbCdleHRyYWlyZS5cbiIKK21zZ3N0ciAiIgorImxhIEhFQUQgZGlzdGFudGUgcsOpZsOocmUgw6AgdW5lIHLDqWbDqXJlbmNlIG5vbiBleGlzdGFudGUsIGltcG9zc2libGUgZGUgIgorImwnZXh0cmFpcmUuXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NDEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NTEKIG1zZ2lkICJ1bmFibGUgdG8gY2hlY2tvdXQgd29ya2luZyB0cmVlIgotbXNnc3RyICJpbnBvc3NpYmxlIGQnZXh0cmFpcmUgbGEgY29waWUgZGUgdHJhdmFpbCIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2V4dHJhaXJlIGxhIGNvcGllIGRlIHRyYXZhaWwiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NDkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NTkKIG1zZ2lkICJUb28gbWFueSBhcmd1bWVudHMuIgogbXNnc3RyICJUcm9wIGQnYXJndW1lbnRzLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc1MworIzogYnVpbHRpbi9jbG9uZS5jOjc2MwogbXNnaWQgIllvdSBtdXN0IHNwZWNpZnkgYSByZXBvc2l0b3J5IHRvIGNsb25lLiIKIG1zZ3N0ciAiVm91cyBkZXZleiBzcMOpY2lmaWVyIHVuIGTDqXDDtHQgw6AgY2xvbmVyLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc2NAorIzogYnVpbHRpbi9jbG9uZS5jOjc3NAogIywgYy1mb3JtYXQKIG1zZ2lkICItLWJhcmUgYW5kIC0tb3JpZ2luICVzIG9wdGlvbnMgYXJlIGluY29tcGF0aWJsZS4iCiBtc2dzdHIgImxlcyBvcHRpb25zIC0tYmFyZSBldCAtLW9yaWdpbiAlcyBzb250IGluY29tcGF0aWJsZXMuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzY3CisjOiBidWlsdGluL2Nsb25lLmM6Nzc3CiBtc2dpZCAiLS1iYXJlIGFuZCAtLXNlcGFyYXRlLWdpdC1kaXIgYXJlIGluY29tcGF0aWJsZS4iCiBtc2dzdHIgIi0tYmFyZSBldCAtLXNlcGFyYXRlLWdpdC1kaXIgc29udCBpbmNvbXBhdGlibGVzLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc4MAorIzogYnVpbHRpbi9jbG9uZS5jOjc5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZXBvc2l0b3J5ICclcycgZG9lcyBub3QgZXhpc3QiCiBtc2dzdHIgImxlIGTDqXDDtHQgJyVzJyBuJ2V4aXN0ZSBwYXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3ODUKLW1zZ2lkICItLWRlcHRoIGlzIGlnbm9yZWQgaW4gbG9jYWwgY2xvbmVzOyB1c2UgZmlsZTovLyBpbnN0ZWFkLiIKLW1zZ3N0ciAiLS1kZXB0aCBlc3QgaWdub3LDqSBkYW5zIGxlcyBjbG9uZXMgbG9jYXV4IDogdXRpbGlzZXogcGx1dMO0dCBcImZpbGU6Ly9cIi4iCi0KICM6IGJ1aWx0aW4vY2xvbmUuYzo3OTUKK21zZ2lkICItLWRlcHRoIGlzIGlnbm9yZWQgaW4gbG9jYWwgY2xvbmVzOyB1c2UgZmlsZTovLyBpbnN0ZWFkLiIKK21zZ3N0ciAiIgorIi0tZGVwdGggZXN0IGlnbm9yw6kgZGFucyBsZXMgY2xvbmVzIGxvY2F1eCA6IHV0aWxpc2V6IHBsdXTDtHQgXCJmaWxlOi8vXCIuIgorCisjOiBidWlsdGluL2Nsb25lLmM6Nzk3Cittc2dpZCAiLS1sb2NhbCBpcyBpZ25vcmVkIgorbXNnc3RyICItLWxvY2FsIGVzdCBpZ25vcsOpIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODA3CiAjLCBjLWZvcm1hdAogbXNnaWQgImRlc3RpbmF0aW9uIHBhdGggJyVzJyBhbHJlYWR5IGV4aXN0cyBhbmQgaXMgbm90IGFuIGVtcHR5IGRpcmVjdG9yeS4iCi1tc2dzdHIgImxlIGNoZW1pbiBkZSBkZXN0aW5hdGlvbiAnJXMnIGV4aXN0ZSBkw6lqw6AgZXQgbidlc3QgcGFzIHVuIHLDqXBlcnRvaXJlIHZpZGUuIgorbXNnc3RyICIiCisibGUgY2hlbWluIGRlIGRlc3RpbmF0aW9uICclcycgZXhpc3RlIGTDqWrDoCBldCBuJ2VzdCBwYXMgdW4gcsOpcGVydG9pcmUgdmlkZS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MDUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAid29ya2luZyB0cmVlICclcycgYWxyZWFkeSBleGlzdHMuIgogbXNnc3RyICJsYSBjb3BpZSBkZSB0cmF2YWlsICclcycgZXhpc3RlIGTDqWrDoC4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MTggYnVpbHRpbi9jbG9uZS5jOjgzMAorIzogYnVpbHRpbi9jbG9uZS5jOjgzMCBidWlsdGluL2Nsb25lLmM6ODQyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgbGVhZGluZyBkaXJlY3RvcmllcyBvZiAnJXMnIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNyw6llciBsZXMgcsOpcGVydG9pcmVzIGRlIHByZW1pZXIgbml2ZWF1IGRhbnMgJyVzJyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgyMQorIzogYnVpbHRpbi9jbG9uZS5jOjgzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIHdvcmsgdHJlZSBkaXIgJyVzJy4iCiBtc2dzdHIgImltcG9zc2libGUgZGUgY3LDqWVyIGxlIHLDqXBlcnRvaXJlIGRlIGxhIGNvcGllIGRlIHRyYXZhaWwgJyVzJy4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NDAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xvbmluZyBpbnRvIGJhcmUgcmVwb3NpdG9yeSAnJXMnLi4uXG4iCiBtc2dzdHIgIkNsb25hZ2UgZGFucyBsZSBkw6lww7R0IG51ICclcydcbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg0MgorIzogYnVpbHRpbi9jbG9uZS5jOjg1NAogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gJyVzJy4uLlxuIgogbXNnc3RyICJDbG9uYWdlIGRhbnMgJyVzJy4uLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODc3CisjOiBidWlsdGluL2Nsb25lLmM6ODg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGNsb25lICVzIgogbXNnc3RyICJKZSBuZSBzYWlzIHBhcyBjbG9uZXIgJXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MjYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MzkgYnVpbHRpbi9jbG9uZS5jOjk0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdGUgYnJhbmNoICVzIG5vdCBmb3VuZCBpbiB1cHN0cmVhbSAlcyIKIG1zZ3N0ciAiTGEgYnJhbmNoZSBkaXN0YW50ZSAlcyBuJ2EgcGFzIMOpdMOpIHRyb3V2w6llIGRhbnMgbGUgZMOpcMO0dCBhbW9udCAlcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkzMworIzogYnVpbHRpbi9jbG9uZS5jOjk1MAogbXNnaWQgIllvdSBhcHBlYXIgdG8gaGF2ZSBjbG9uZWQgYW4gZW1wdHkgcmVwb3NpdG9yeS4iCiBtc2dzdHIgIlZvdXMgc2VtYmxleiBhdm9pciBjbG9uw6kgdW4gZMOpcMO0dCB2aWRlLiIKIApAQCAtMzYyMiwxNSArNDE2OCwxNSBAQAogbXNnaWQgIi0tY29tbWFuZCBtdXN0IGJlIHRoZSBmaXJzdCBhcmd1bWVudCIKIG1zZ3N0ciAiLS1jb21tYW5kIGRvaXQgw6p0cmUgbGUgcHJlbWllciBhcmd1bWVudCIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNAorIzogYnVpbHRpbi9jb21taXQuYzozNgogbXNnaWQgImdpdCBjb21taXQgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiZ2l0IGNvbW1pdCBbb3B0aW9uc10gWy0tXSA8c3DDqWNpZmljYXRpb24tZGUtY2hlbWluPi4uLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozOQorIzogYnVpbHRpbi9jb21taXQuYzo0MQogbXNnaWQgImdpdCBzdGF0dXMgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiZ2l0IHN0YXR1cyBbb3B0aW9uc10gWy0tXSA8c3DDqWNpZmljYXRpb24tZGUtY2hlbWluPi4uLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0NAorIzogYnVpbHRpbi9jb21taXQuYzo0NgogbXNnaWQgIiIKICJZb3VyIG5hbWUgYW5kIGVtYWlsIGFkZHJlc3Mgd2VyZSBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkgYmFzZWRcbiIKICJvbiB5b3VyIHVzZXJuYW1lIGFuZCBob3N0bmFtZS4gUGxlYXNlIGNoZWNrIHRoYXQgdGhleSBhcmUgYWNjdXJhdGUuXG4iCkBAIC0zNjQzLDggKzQxODksMTAgQEAKICJcbiIKICIgICAgZ2l0IGNvbW1pdCAtLWFtZW5kIC0tcmVzZXQtYXV0aG9yXG4iCiBtc2dzdHIgIiIKLSJWb3RyZSBub20gZXQgdm90cmUgYWRyZXNzZSBlLW1haWwgb250IMOpdMOpIGNvbmZpZ3Vyw6lzIGF1dG9tYXRpcXVlbWVudCBlbiBzZSBmb25kYW50XG4iCi0ic3VyIHZvdHJlIG5vbSBkJ3V0aWxpc2F0ZXVyIGV0IHZvdHJlIG5vbSBkJ29yZGluYXRldXIuIFZldWlsbGV6IHbDqXJpZmllciBxdSdpbHMgc29udCBjb3JyZWN0cy5cbiIKKyJWb3RyZSBub20gZXQgdm90cmUgYWRyZXNzZSBlLW1haWwgb250IMOpdMOpIGNvbmZpZ3Vyw6lzIGF1dG9tYXRpcXVlbWVudCBlbiBzZSAiCisiZm9uZGFudFxuIgorInN1ciB2b3RyZSBub20gZCd1dGlsaXNhdGV1ciBldCB2b3RyZSBub20gZCdvcmRpbmF0ZXVyLiBWZXVpbGxleiB2w6lyaWZpZXIgIgorInF1J2lscyBzb250IGNvcnJlY3RzLlxuIgogIlZvdXMgcG91dmV6IHN1cHByaW1lciBjZSBtZXNzYWdlIGVuIGxlcyBwYXJhbcOpdHJhbnQgZXhwbGljaXRlbWVudCA6XG4iCiAiXG4iCiAiICAgIGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lIFwiVm90cmUgTm9tXCJcbiIKQEAgLTM2NTQsMTE4ICs0MjAyLDEzOSBAQAogIlxuIgogIiAgICBnaXQgY29tbWl0IC0tYW1lbmQgLS1yZXNldC1hdXRob3JcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NgorIzogYnVpbHRpbi9jb21taXQuYzo1OAogbXNnaWQgIiIKICJZb3UgYXNrZWQgdG8gYW1lbmQgdGhlIG1vc3QgcmVjZW50IGNvbW1pdCwgYnV0IGRvaW5nIHNvIHdvdWxkIG1ha2VcbiIKICJpdCBlbXB0eS4gWW91IGNhbiByZXBlYXQgeW91ciBjb21tYW5kIHdpdGggLS1hbGxvdy1lbXB0eSwgb3IgeW91IGNhblxuIgogInJlbW92ZSB0aGUgY29tbWl0IGVudGlyZWx5IHdpdGggXCJnaXQgcmVzZXQgSEVBRF5cIi5cbiIKLW1zZ3N0ciAiVm91cyBhdmV6IGRlbWFuZMOpIGRlIGNvcnJpZ2VyIGxlIGNvbW1pdCBsZSBwbHVzIHLDqWNlbnQsIG1haXMgbGUgZmFpcmUgbGUgcmVuZHJhaXRcbiIKK21zZ3N0ciAiIgorIlZvdXMgYXZleiBkZW1hbmTDqSBkZSBjb3JyaWdlciBsZSBjb21taXQgbGUgcGx1cyByw6ljZW50LCBtYWlzIGxlIGZhaXJlIGxlICIKKyJyZW5kcmFpdFxuIgogInZpZGUuIFZvdXMgcG91dmV6IHLDqXDDqXRlciB2b3RyZSBjb21tYW5kZSBhdmVjIC0tYWxsb3ctZW1wdHksIG91IHZvdXMgcG91dmV6XG4iCiAic3VwcHJpbWVyIGNvbXBsw6h0ZW1lbnQgbGUgY29tbWl0IGF2ZWMgXCJnaXQgcmVzZXQgSEVBRF5cIi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MQorIzogYnVpbHRpbi9jb21taXQuYzo2MwogbXNnaWQgIiIKICJUaGUgcHJldmlvdXMgY2hlcnJ5LXBpY2sgaXMgbm93IGVtcHR5LCBwb3NzaWJseSBkdWUgdG8gY29uZmxpY3QgcmVzb2x1dGlvbi5cbiIKICJJZiB5b3Ugd2lzaCB0byBjb21taXQgaXQgYW55d2F5LCB1c2U6XG4iCiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgogIlxuIgotIk90aGVyd2lzZSwgcGxlYXNlIHVzZSAnZ2l0IHJlc2V0J1xuIgogbXNnc3RyICIiCi0iTGUgcGljb3JhZ2UgcHLDqWPDqWRlbnQgZXN0IMOgIHByw6lzZW50IHZpZGUsIHZyYWlzZW1ibGFibGVtZW50IGTDuyDDoCB1bmUgcsOpc29sdXRpb24gZGUgY29uZmxpdC5cbiIKKyJMZSBwaWNvcmFnZSBwcsOpY8OpZGVudCBlc3Qgw6AgcHLDqXNlbnQgdmlkZSwgdnJhaXNlbWJsYWJsZW1lbnQgZMO7IMOgIHVuZSAiCisicsOpc29sdXRpb24gZGUgY29uZmxpdC5cbiIKICJTaSB2b3VzIHNvdWhhaXRleiB0b3V0IGRlIG3Dqm1lIGxlIHZhbGlkZXIsIHV0aWxpc2V6IDpcbiIKICJcbiIKICIgICAgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5XG4iCiAiXG4iCi0iU2lub24sIHV0aWxpc2V6ICdnaXQgcmVzZXQnXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MjYwCisjOiBidWlsdGluL2NvbW1pdC5jOjcwCittc2dpZCAiT3RoZXJ3aXNlLCBwbGVhc2UgdXNlICdnaXQgcmVzZXQnXG4iCittc2dzdHIgIlNpbm9uLCB2ZXVpbGxleiB1dGlsaXNlciAnZ2l0IHJlc2V0J1xuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjczCittc2dpZCAiIgorIklmIHlvdSB3aXNoIHRvIHNraXAgdGhpcyBjb21taXQsIHVzZTpcbiIKKyJcbiIKKyIgICAgZ2l0IHJlc2V0XG4iCisiXG4iCisiVGhlbiBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIgd2lsbCByZXN1bWUgY2hlcnJ5LXBpY2tpbmdcbiIKKyJ0aGUgcmVtYWluaW5nIGNvbW1pdHMuXG4iCittc2dzdHIgIiIKKyJTaSB2b3VzIHNvdWhhaXRleiBzYXV0ZXIgY2UgY29tbWl0LCB1dGlsaXNleiA6XG4iCisiXG4iCisiICAgIGdpdCByZXNldFxuIgorIlxuIgorIlB1aXMgXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiIGNvbnRpbnVlcmEgbGUgcGljb3JhZ2UgXG4iCisiZGVzIGNvbW1pdHMgcmVzdGFudHMuXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Mjg3CiBtc2dpZCAiZmFpbGVkIHRvIHVucGFjayBIRUFEIHRyZWUgb2JqZWN0IgogbXNnc3RyICLDqWNoZWMgZHUgZMOpcGFxdWV0YWdlIGRlIGwnb2JqZXQgYXJicmUgSEVBRCIKIAotIzogYnVpbHRpbi9jb21taXQuYzozMDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzI5CiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgaW5kZXgiCiBtc2dzdHIgImltcG9zc2libGUgZGUgY3LDqWVyIGwnaW5kZXggdGVtcG9yYWlyZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzozMDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzM1CiBtc2dpZCAiaW50ZXJhY3RpdmUgYWRkIGZhaWxlZCIKIG1zZ3N0ciAiw6ljaGVjIGRlIGwnYWpvdXQgaW50ZXJhY3RpZiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNDEgYnVpbHRpbi9jb21taXQuYzozNjIgYnVpbHRpbi9jb21taXQuYzo0MTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzY4IGJ1aWx0aW4vY29tbWl0LmM6Mzg5IGJ1aWx0aW4vY29tbWl0LmM6NDM5CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ld19pbmRleCBmaWxlIgogbXNnc3RyICJpbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBmaWNoaWVyIG5ld19pbmRleCIKIAotIzogYnVpbHRpbi9jb21taXQuYzozOTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDIwCiBtc2dpZCAiY2Fubm90IGRvIGEgcGFydGlhbCBjb21taXQgZHVyaW5nIGEgbWVyZ2UuIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIGZhaXJlIHVuZSB2YWxpZGF0aW9uIHBhcnRpZWxsZSBwZW5kYW50IHVuZSBmdXNpb24uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM5NQorIzogYnVpbHRpbi9jb21taXQuYzo0MjIKIG1zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBjaGVycnktcGljay4iCiBtc2dzdHIgImltcG9zc2libGUgZGUgZmFpcmUgdW5lIHZhbGlkYXRpb24gcGFydGllbGxlIHBlbmRhbnQgdW4gcGljb3JhZ2UuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQwNQorIzogYnVpbHRpbi9jb21taXQuYzo0MzIKIG1zZ2lkICJjYW5ub3QgcmVhZCB0aGUgaW5kZXgiCiBtc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSBsJ2luZGV4IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQyNQorIzogYnVpbHRpbi9jb21taXQuYzo0NTIKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgdGVtcG9yYXJ5IGluZGV4IGZpbGUiCiBtc2dzdHIgImltcG9zc2libGUgZCfDqWNyaXJlIGxlIGZpY2hpZXIgZCdpbmRleCB0ZW1wb3JhaXJlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjUxMyBidWlsdGluL2NvbW1pdC5jOjUxOQorIzogYnVpbHRpbi9jb21taXQuYzo1NDMgYnVpbHRpbi9jb21taXQuYzo1NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBjb21taXQ6ICVzIgogbXNnc3RyICJjb21taXQgaW52YWxpZGUgOiAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTcxCiBtc2dpZCAibWFsZm9ybWVkIC0tYXV0aG9yIHBhcmFtZXRlciIKIG1zZ3N0ciAicGFyYW3DqHRyZSAtLWF1dGhvciBtYWwgZm9ybcOpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU2MgorIzogYnVpbHRpbi9jb21taXQuYzo1OTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFsZm9ybWVkIGlkZW50IHN0cmluZzogJyVzJyIKIG1zZ3N0ciAiQ2hhw65uZSBpZGVudCBtYWwgZm9ybcOpZSA6ICclcyciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjAwIGJ1aWx0aW4vY29tbWl0LmM6NjMzIGJ1aWx0aW4vY29tbWl0LmM6OTU2CisjOiBidWlsdGluL2NvbW1pdC5jOjYzMCBidWlsdGluL2NvbW1pdC5jOjY2MyBidWlsdGluL2NvbW1pdC5jOjEwMDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGxvb2t1cCBjb21taXQgJXMiCiBtc2dzdHIgImltcG9zc2libGUgZGUgcmVjaGVyY2hlciBsZSBjb21taXQgJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjEyIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQyIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiKHJlYWRpbmcgbG9nIG1lc3NhZ2UgZnJvbSBzdGFuZGFyZCBpbnB1dClcbiIKIG1zZ3N0ciAiKGxlY3R1cmUgZHUgbWVzc2FnZSBkZSBqb3VybmFsIGRlcHVpcyBsJ2VudHLDqWUgc3RhbmRhcmQpXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjE0CisjOiBidWlsdGluL2NvbW1pdC5jOjY0NAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgbGUgam91cm5hbCBkZXB1aXMgbCdlbnRyw6llIHN0YW5kYXJkIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxOAorIzogYnVpbHRpbi9jb21taXQuYzo2NDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgbG9nIGZpbGUgJyVzJyIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlIGxlIGZpY2hpZXIgZGUgam91cm5hbCAnJXMnIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYyNAorIzogYnVpbHRpbi9jb21taXQuYzo2NTQKIG1zZ2lkICJjb21taXQgaGFzIGVtcHR5IG1lc3NhZ2UiCiBtc2dzdHIgImxlIGNvbW1pdCBhIHVuIG1lc3NhZ2UgdmlkZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjcwCiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTVNHIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgTUVSR0VfTVNHIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY0NAorIzogYnVpbHRpbi9jb21taXQuYzo2NzQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBTUVVBU0hfTVNHIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgU1FVQVNIX01TRyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Njc4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkICclcyciCiBtc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSAnJXMnIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjcwOQorIzogYnVpbHRpbi9jb21taXQuYzo3NDkKIG1zZ2lkICJjb3VsZCBub3Qgd3JpdGUgY29tbWl0IHRlbXBsYXRlIgogbXNnc3RyICJpbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBtb2TDqGxlIGRlIGNvbW1pdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzYwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTM3ODAsNyArNDM0OSw3IEBACiAiXHQlc1xuIgogImV0IGVzc2F5ZXogw6Agbm91dmVhdS5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzY1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTM3OTUsMTYgKzQzNjQsMTcgQEAKICJcdCVzXG4iCiAiZXQgZXNzYXlleiDDoCBub3V2ZWF1LlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjczNworIzogYnVpbHRpbi9jb21taXQuYzo3NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKICJ3aXRoICclYycgd2lsbCBiZSBpZ25vcmVkLCBhbmQgYW4gZW1wdHkgbWVzc2FnZSBhYm9ydHMgdGhlIGNvbW1pdC5cbiIKIG1zZ3N0ciAiIgogIlZldWlsbGV6IHNhaXNpciBsZSBtZXNzYWdlIGRlIHZhbGlkYXRpb24gcG91ciB2b3MgbW9kaWZpY2F0aW9ucy4gTGVzIGxpZ25lc1xuIgotImNvbW1lbsOnYW50IHBhciAnJWMnIHNlcm9udCBpZ25vcsOpZXMsIGV0IHVuIG1lc3NhZ2UgdmlkZSBhYmFuZG9ubmUgbGEgdmFsaWRhdGlvbi5cbiIKKyJjb21tZW7Dp2FudCBwYXIgJyVjJyBzZXJvbnQgaWdub3LDqWVzLCBldCB1biBtZXNzYWdlIHZpZGUgYWJhbmRvbm5lIGxhICIKKyJ2YWxpZGF0aW9uLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc0MgorIzogYnVpbHRpbi9jb21taXQuYzo3ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKQEAgLTM4MTUsMTgwMiArNDM4NSwxODg0IEBACiAiY29tbWVuw6dhbnQgcGFyICclYycgc2Vyb250IGNvbnNlcnbDqWVzIDsgdm91cyBwb3V2ZXogbGVzIHN1cHByaW1lciB2b3VzLW3Dqm1lXG4iCiAic2kgdm91cyBsZSBzb3VoYWl0ZXouIFVuIG1lc3NhZ2UgdmlkZSBhYmFuZG9ubmUgbGEgdmFsaWRhdGlvbi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Nzk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzQXV0aG9yOiAgICAlcyIKIG1zZ3N0ciAiJXNBdXRldXIgOiAgICAgJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzYyCisjOiBidWlsdGluL2NvbW1pdC5jOjgwMgogIywgYy1mb3JtYXQKIG1zZ2lkICIlc0NvbW1pdHRlcjogJXMiCiBtc2dzdHIgIiVzVmFsaWRhdGV1ciA6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc4MgorIzogYnVpbHRpbi9jb21taXQuYzo4MjIKIG1zZ2lkICJDYW5ub3QgcmVhZCBpbmRleCIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSBsaXJlIGwnaW5kZXgiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODE5CisjOiBidWlsdGluL2NvbW1pdC5jOjg2NQogbXNnaWQgIkVycm9yIGJ1aWxkaW5nIHRyZWVzIgogbXNnc3RyICJFcnJldXIgbG9ycyBkZSBsYSBjb25zdHJ1Y3Rpb24gZGVzIGFyYnJlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4MzQgYnVpbHRpbi90YWcuYzozNTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODgwIGJ1aWx0aW4vdGFnLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlBsZWFzZSBzdXBwbHkgdGhlIG1lc3NhZ2UgdXNpbmcgZWl0aGVyIC1tIG9yIC1GIG9wdGlvbi5cbiIKIG1zZ3N0ciAiVmV1aWxsZXogZm91cm5pciBsZSBtZXNzYWdlIGVuIHV0aWxpc2FudCBsJ29wdGlvbiAtbSBvdSAtRi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5MzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGV4aXN0aW5nIGF1dGhvciBmb3VuZCB3aXRoICclcyciCiBtc2dzdHIgIkF1Y3VuIGF1dGV1ciBleGlzdGFudCB0cm91dsOpIGF2ZWMgJyVzJyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5NDYgYnVpbHRpbi9jb21taXQuYzoxMTQwCisjOiBidWlsdGluL2NvbW1pdC5jOjk5NyBidWlsdGluL2NvbW1pdC5jOjEyMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCB1bnRyYWNrZWQgZmlsZXMgbW9kZSAnJXMnIgogbXNnc3RyICJNb2RlIGRlIGZpY2hpZXIgbm9uIHN1aXZpIGludmFsaWRlICclcyciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTc2CisjOiBidWlsdGluL2NvbW1pdC5jOjEwMzQKK21zZ2lkICItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgIi0tbG9uZyBldCAteiBzb250IGluY29tcGF0aWJsZXMiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA2NAogbXNnaWQgIlVzaW5nIGJvdGggLS1yZXNldC1hdXRob3IgYW5kIC0tYXV0aG9yIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIkwndXRpbGlzYXRpb24gc2ltdWx0YW7DqWUgZGUgLS1yZXNldC1hdXRob3IgZXQgLS1hdXRob3IgbidhIHBhcyBkZSBzZW5zIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk4NworIzogYnVpbHRpbi9jb21taXQuYzoxMDc1CiBtc2dpZCAiWW91IGhhdmUgbm90aGluZyB0byBhbWVuZC4iCiBtc2dzdHIgIklsIG4neSBhIHJpZW4gw6AgY29ycmlnZXIuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk5MAorIzogYnVpbHRpbi9jb21taXQuYzoxMDc4CiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UgLS0gY2Fubm90IGFtZW5kLiIKIG1zZ3N0ciAiVm91cyDDqnRlcyBlbiBwbGVpbmUgZnVzaW9uIC0tIGltcG9zc2libGUgZGUgY29ycmlnZXIgKGFtZW5kKS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTkyCisjOiBidWlsdGluL2NvbW1pdC5jOjEwODAKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBjaGVycnktcGljayAtLSBjYW5ub3QgYW1lbmQuIgogbXNnc3RyICJWb3VzIMOqdGVzIGVuIHBsZWluIHBpY29yYWdlIC0tIGltcG9zc2libGUgZGUgY29ycmlnZXIgKGFtZW5kKS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTk1CisjOiBidWlsdGluL2NvbW1pdC5jOjEwODMKIG1zZ2lkICJPcHRpb25zIC0tc3F1YXNoIGFuZCAtLWZpeHVwIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICJMZXMgb3B0aW9ucyAtLXNxdWFzaCBldCAtLWZpeHVwIG5lIHBldXZlbnQgcGFzIMOqdHJlIHV0aWxpc8OpZXMgZW5zZW1ibGUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwNQorIzogYnVpbHRpbi9jb21taXQuYzoxMDkzCiBtc2dpZCAiT25seSBvbmUgb2YgLWMvLUMvLUYvLS1maXh1cCBjYW4gYmUgdXNlZC4iCiBtc2dzdHIgIlVuZSBzZXVsZSBvcHRpb24gcGFybWkgLWMvLUMvLUYvLS1maXh1cCBwZXV0IMOqdHJlIHV0aWxpc8OpZS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwNworIzogYnVpbHRpbi9jb21taXQuYzoxMDk1CiBtc2dpZCAiT3B0aW9uIC1tIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIC1jLy1DLy1GLy0tZml4dXAuIgogbXNnc3RyICJMJ29wdGlvbiAtbSBuZSBwZXV0IHBhcyDDqnRyZSBjb21iaW7DqWUgYXZlYyAtYy8tQy8tRi8tLWZpeHVwLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDE1CisjOiBidWlsdGluL2NvbW1pdC5jOjExMDMKIG1zZ2lkICItLXJlc2V0LWF1dGhvciBjYW4gYmUgdXNlZCBvbmx5IHdpdGggLUMsIC1jIG9yIC0tYW1lbmQuIgogbXNnc3RyICItLXJlc2V0LWF1dGhvciBuZSBwZXV0IMOqdHJlIHV0aWxpc8OpIHF1J2F2ZWMgLUMsIC1jIG91IC0tYW1lbmQuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTEyMAogbXNnaWQgIk9ubHkgb25lIG9mIC0taW5jbHVkZS8tLW9ubHkvLS1hbGwvLS1pbnRlcmFjdGl2ZS8tLXBhdGNoIGNhbiBiZSB1c2VkLiIKLW1zZ3N0ciAiVW5lIHNldWxlIG9wdGlvbiBwYXJtaSAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCBwZXV0IMOqdHJlIHV0aWxpc8OpZS4iCittc2dzdHIgIiIKKyJVbmUgc2V1bGUgb3B0aW9uIHBhcm1pIC0taW5jbHVkZS8tLW9ubHkvLS1hbGwvLS1pbnRlcmFjdGl2ZS8tLXBhdGNoIHBldXQgIgorIsOqdHJlIHV0aWxpc8OpZS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzNAorIzogYnVpbHRpbi9jb21taXQuYzoxMTIyCiBtc2dpZCAiTm8gcGF0aHMgd2l0aCAtLWluY2x1ZGUvLS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICJBdWN1biBjaGVtaW4gYXZlYyBsZXMgb3B0aW9ucyAtLWluY2x1ZGUvLS1vbmx5IG4nYSBwYXMgZGUgc2Vucy4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzNgorIzogYnVpbHRpbi9jb21taXQuYzoxMTI0CiBtc2dpZCAiQ2xldmVyLi4uIGFtZW5kaW5nIHRoZSBsYXN0IG9uZSB3aXRoIGRpcnR5IGluZGV4LiIKIG1zZ3N0ciAiTWFsaW4uLi4gY29ycmVjdGlvbiBkdSBkZXJuaWVyIGF2ZWMgdW4gaW5kZXggc2FsZS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzOAorIzogYnVpbHRpbi9jb21taXQuYzoxMTI2CiBtc2dpZCAiRXhwbGljaXQgcGF0aHMgc3BlY2lmaWVkIHdpdGhvdXQgLWkgbm9yIC1vOyBhc3N1bWluZyAtLW9ubHkgcGF0aHMuLi4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiQ2hlbWlucyBleHBsaWNpdGVzIHNww6ljaWZpw6lzIHNhbnMgLWkgbmkgLW8gOyAtLW9ubHkgc3VwcG9zw6kuLi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA0OCBidWlsdGluL3RhZy5jOjU3NQorIzogYnVpbHRpbi9jb21taXQuYzoxMTM2IGJ1aWx0aW4vdGFnLmM6NTcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgY2xlYW51cCBtb2RlICVzIgotbXNnc3RyICIiCittc2dzdHIgIk1vZGUgZGUgbmV0dG95YWdlIGludmFsaWRlICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTE0MQogbXNnaWQgIlBhdGhzIHdpdGggLWEgZG9lcyBub3QgbWFrZSBzZW5zZS4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiU3DDqWNpZmllciBkZXMgY2hlbWlucyBhdmVjIGwnb3B0aW9uIC1hIG4nYSBwYXMgZGUgc2Vucy4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1OSBidWlsdGluL2NvbW1pdC5jOjExOTQKLW1zZ2lkICItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMTU0IGJ1aWx0aW4vY29tbWl0LmM6MTM5MAorIzogYnVpbHRpbi9jb21taXQuYzoxMjUxIGJ1aWx0aW4vY29tbWl0LmM6MTQ4MgogbXNnaWQgInNob3cgc3RhdHVzIGNvbmNpc2VseSIKLW1zZ3N0ciAiIgorbXNnc3RyICJhZmZpY2hlciBsZSBzdGF0dXQgYXZlYyBjb25jaXNpb24iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1NiBidWlsdGluL2NvbW1pdC5jOjEzOTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI1MyBidWlsdGluL2NvbW1pdC5jOjE0ODQKIG1zZ2lkICJzaG93IGJyYW5jaCBpbmZvcm1hdGlvbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJhZmZpY2hlciBsJ2luZm9ybWF0aW9uIGRlIGJyYW5jaGUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1OCBidWlsdGluL2NvbW1pdC5jOjEzOTQgYnVpbHRpbi9wdXNoLmM6NDI2CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNTUgYnVpbHRpbi9jb21taXQuYzoxNDg2IGJ1aWx0aW4vcHVzaC5jOjQ2MAogbXNnaWQgIm1hY2hpbmUtcmVhZGFibGUgb3V0cHV0IgotbXNnc3RyICIiCittc2dzdHIgInNvcnRpZSBwb3VyIHRyYWl0ZW1lbnQgYXV0b21hdGlxdWUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2MSBidWlsdGluL2NvbW1pdC5jOjEzOTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI1OCBidWlsdGluL2NvbW1pdC5jOjE0ODgKIG1zZ2lkICJzaG93IHN0YXR1cyBpbiBsb25nIGZvcm1hdCAoZGVmYXVsdCkiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZXIgbGUgc3RhdHV0IGVuIGZvcm1hdCBsb25nIChwYXIgZMOpZmF1dCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NCBidWlsdGluL2NvbW1pdC5jOjEzOTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2MSBidWlsdGluL2NvbW1pdC5jOjE0OTEKIG1zZ2lkICJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCIKLW1zZ3N0ciAiIgorbXNnc3RyICJ0ZXJtaW5lciBsZXMgw6lsw6ltZW50cyBwYXIgTlVMIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNjYgYnVpbHRpbi9jb21taXQuYzoxNDAyIGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NTkKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjIgYnVpbHRpbi90YWcuYzo0NTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2MyBidWlsdGluL2NvbW1pdC5jOjE0OTQgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NyBidWlsdGluL3RhZy5jOjQ1OQogbXNnaWQgIm1vZGUiCi1tc2dzdHIgIiIKK21zZ3N0ciAibW9kZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTY3IGJ1aWx0aW4vY29tbWl0LmM6MTQwMgorIzogYnVpbHRpbi9jb21taXQuYzoxMjY0IGJ1aWx0aW4vY29tbWl0LmM6MTQ5NAogbXNnaWQgInNob3cgdW50cmFja2VkIGZpbGVzLCBvcHRpb25hbCBtb2RlczogYWxsLCBub3JtYWwsIG5vLiAoRGVmYXVsdDogYWxsKSIKIG1zZ3N0ciAiIgorImFmZmljaGVyIGxlcyBmaWNoaWVycyBub24gc3VpdmlzLCBcIm1vZGVcIiBmYWN1bHRhdGlmIDogYWxsICh0b3VzKSwgbm9ybWFsLCAiCisibm8uIChEw6lmYXV0IDogYWxsKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTcwCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNjcKIG1zZ2lkICJzaG93IGlnbm9yZWQgZmlsZXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGZpY2hpZXJzIGlnbm9yw6lzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzEgcGFyc2Utb3B0aW9ucy5oOjE1MQorIzogYnVpbHRpbi9jb21taXQuYzoxMjY4IHBhcnNlLW9wdGlvbnMuaDoxNTYKIG1zZ2lkICJ3aGVuIgotbXNnc3RyICIiCittc2dzdHIgInF1YW5kIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2OQogbXNnaWQgIiIKICJpZ25vcmUgY2hhbmdlcyB0byBzdWJtb2R1bGVzLCBvcHRpb25hbCB3aGVuOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKICIoRGVmYXVsdDogYWxsKSIKIG1zZ3N0ciAiIgorImlnbm9yZXIgbGVzIG1vZGlmaWNhdGlvbnMgZGFucyBsZXMgc291cy1tb2R1bGVzLCBcInF1YW5kXCIgZmFjdWx0YXRpZiA6IGFsbCAiCisiKHRvdXMpLCBkaXJ0eSAoc2FsZSksIHVudHJhY2tlZCAobm9uIHN1aXZpKS4gKETDqWZhdXQgOiBhbGwpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI3MQogbXNnaWQgImxpc3QgdW50cmFja2VkIGZpbGVzIGluIGNvbHVtbnMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGZpY2hpZXJzIG5vbiBzdWl2aXMgZW4gY29sb25uZXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTI0OAorIzogYnVpbHRpbi9jb21taXQuYzoxMzQwCiBtc2dpZCAiY291bGRuJ3QgbG9vayB1cCBuZXdseSBjcmVhdGVkIGNvbW1pdCIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHJldHJvdXZlciBsZSBjb21taXQgbm91dmVsbGVtZW50IGNyw6nDqSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjUwCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNDIKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgbmV3bHkgY3JlYXRlZCBjb21taXQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMjkxCi1tc2dpZCAiZGV0YWNoZWQgSEVBRCIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyOTMKLW1zZ2lkICIgKHJvb3QtY29tbWl0KSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjAKLW1zZ2lkICJzdXBwcmVzcyBzdW1tYXJ5IGFmdGVyIHN1Y2Nlc3NmdWwgY29tbWl0IgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2MQotbXNnaWQgInNob3cgZGlmZiBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjMKLW1zZ2lkICJDb21taXQgbWVzc2FnZSBvcHRpb25zIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NCBidWlsdGluL3RhZy5jOjQ1NwotbXNnaWQgInJlYWQgbWVzc2FnZSBmcm9tIGZpbGUiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMzY1Ci1tc2dpZCAiYXV0aG9yIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NQotbXNnaWQgIm92ZXJyaWRlIGF1dGhvciBmb3IgY29tbWl0IgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NiBidWlsdGluL2djLmM6MTc4Ci1tc2dpZCAiZGF0ZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjYKLW1zZ2lkICJvdmVycmlkZSBkYXRlIGZvciBjb21taXQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMzY3IGJ1aWx0aW4vbWVyZ2UuYzoyMDggYnVpbHRpbi9ub3Rlcy5jOjUzMwotIzogYnVpbHRpbi9ub3Rlcy5jOjY5MCBidWlsdGluL3RhZy5jOjQ1NQotbXNnaWQgIm1lc3NhZ2UiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMzY3Ci1tc2dpZCAiY29tbWl0IG1lc3NhZ2UiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMzY4Ci1tc2dpZCAicmV1c2UgYW5kIGVkaXQgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMzY5Ci1tc2dpZCAicmV1c2UgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMzcwCi1tc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gZml4dXAgc3BlY2lmaWVkIGNvbW1pdCIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzEKLW1zZ2lkICJ1c2UgYXV0b3NxdWFzaCBmb3JtYXR0ZWQgbWVzc2FnZSB0byBzcXVhc2ggc3BlY2lmaWVkIGNvbW1pdCIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzIKLW1zZ2lkICJ0aGUgY29tbWl0IGlzIGF1dGhvcmVkIGJ5IG1lIG5vdyAodXNlZCB3aXRoIC1DLy1jLy0tYW1lbmQpIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MyBidWlsdGluL2xvZy5jOjExMTMgYnVpbHRpbi9yZXZlcnQuYzoxMDkKLW1zZ2lkICJhZGQgU2lnbmVkLW9mZi1ieToiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMzc0Ci1tc2dpZCAidXNlIHNwZWNpZmllZCB0ZW1wbGF0ZSBmaWxlIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NQotbXNnaWQgImZvcmNlIGVkaXQgb2YgY29tbWl0IgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NgotbXNnaWQgImRlZmF1bHQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMzc2IGJ1aWx0aW4vdGFnLmM6NDYwCi1tc2dpZCAiaG93IHRvIHN0cmlwIHNwYWNlcyBhbmQgI2NvbW1lbnRzIGZyb20gbWVzc2FnZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzcKLW1zZ2lkICJpbmNsdWRlIHN0YXR1cyBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzggYnVpbHRpbi9tZXJnZS5jOjIxNSBidWlsdGluL3RhZy5jOjQ2MQotbXNnaWQgImtleSBpZCIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzkgYnVpbHRpbi9tZXJnZS5jOjIxNgotbXNnaWQgIkdQRyBzaWduIGNvbW1pdCIKLW1zZ3N0ciAiIgotCi0jLiBlbmQgY29tbWl0IG1lc3NhZ2Ugb3B0aW9ucwotIzogYnVpbHRpbi9jb21taXQuYzoxMzgyCi1tc2dpZCAiQ29tbWl0IGNvbnRlbnRzIG9wdGlvbnMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIGNvbW1pdCBub3V2ZWxsZW1lbnQgY3LDqcOpIgogCiAjOiBidWlsdGluL2NvbW1pdC5jOjEzODMKLW1zZ2lkICJjb21taXQgYWxsIGNoYW5nZWQgZmlsZXMiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMzg0Ci1tc2dpZCAiYWRkIHNwZWNpZmllZCBmaWxlcyB0byBpbmRleCBmb3IgY29tbWl0IgotbXNnc3RyICIiCittc2dpZCAiZGV0YWNoZWQgSEVBRCIKK21zZ3N0ciAiSEVBRCBkw6l0YWNow6llIgogCiAjOiBidWlsdGluL2NvbW1pdC5jOjEzODUKK21zZ2lkICIgKHJvb3QtY29tbWl0KSIKK21zZ3N0ciAiIChjb21taXQgcmFjaW5lKSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDUyCittc2dpZCAic3VwcHJlc3Mgc3VtbWFyeSBhZnRlciBzdWNjZXNzZnVsIGNvbW1pdCIKK21zZ3N0ciAic3VwcHJpbWVyIGxlIHLDqXN1bcOpIGFwcsOocyB1bmUgdmFsaWRhdGlvbiByw6l1c3NpZSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDUzCittc2dpZCAic2hvdyBkaWZmIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgorbXNnc3RyICJhZmZpY2hlciBsZXMgZGlmZiBkYW5zIGxlIG1vZMOobGUgZGUgbWVzc2FnZSBkZSB2YWxpZGF0aW9uIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTUKK21zZ2lkICJDb21taXQgbWVzc2FnZSBvcHRpb25zIgorbXNnc3RyICJPcHRpb25zIGR1IG1lc3NhZ2UgZGUgdmFsaWRhdGlvbiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDU2IGJ1aWx0aW4vdGFnLmM6NDU3Cittc2dpZCAicmVhZCBtZXNzYWdlIGZyb20gZmlsZSIKK21zZ3N0ciAibGlyZSBsZSBtZXNzYWdlIGRlcHVpcyB1biBmaWNoaWVyIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTcKK21zZ2lkICJhdXRob3IiCittc2dzdHIgImF1dGV1ciIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDU3Cittc2dpZCAib3ZlcnJpZGUgYXV0aG9yIGZvciBjb21taXQiCittc2dzdHIgInJlbXBsYWNlciBsJ2F1dGV1ciBwb3VyIGxhIHZhbGlkYXRpb24iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1OCBidWlsdGluL2djLmM6MjYwCittc2dpZCAiZGF0ZSIKK21zZ3N0ciAiZGF0ZSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDU4Cittc2dpZCAib3ZlcnJpZGUgZGF0ZSBmb3IgY29tbWl0IgorbXNnc3RyICJyZW1wbGFjZXIgbGEgZGF0ZSBwb3VyIGxhIHZhbGlkYXRpb24iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1OSBidWlsdGluL21lcmdlLmM6MjIzIGJ1aWx0aW4vbm90ZXMuYzo0MDUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NjIgYnVpbHRpbi90YWcuYzo0NTUKK21zZ2lkICJtZXNzYWdlIgorbXNnc3RyICJtZXNzYWdlIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTkKK21zZ2lkICJjb21taXQgbWVzc2FnZSIKK21zZ3N0ciAibWVzc2FnZSBkZSB2YWxpZGF0aW9uIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjAKK21zZ2lkICJyZXVzZSBhbmQgZWRpdCBtZXNzYWdlIGZyb20gc3BlY2lmaWVkIGNvbW1pdCIKK21zZ3N0ciAicsOpdXRpbGlzZXIgZXQgw6lkaXRlciBsZSBtZXNzYWdlIGR1IGNvbW1pdCBzcMOpY2lmacOpIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjEKK21zZ2lkICJyZXVzZSBtZXNzYWdlIGZyb20gc3BlY2lmaWVkIGNvbW1pdCIKK21zZ3N0ciAicsOpdXRpbGlzZXIgbGUgbWVzc2FnZSBkdSBjb21taXQgc3DDqWNpZmnDqSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDYyCittc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gZml4dXAgc3BlY2lmaWVkIGNvbW1pdCIKK21zZ3N0ciAiIgorInV0aWxpc2VyIHVuIG1lc3NhZ2UgZm9ybWF0w6kgcGFyIGF1dG9zcXVhc2ggcG91ciBjb3JyaWdlciBsZSBjb21taXQgc3DDqWNpZmnDqSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDYzCittc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gc3F1YXNoIHNwZWNpZmllZCBjb21taXQiCittc2dzdHIgIiIKKyJ1dGlsaXNlciB1biBtZXNzYWdlIGZvcm1hdMOpIHBhciBhdXRvc3F1YXNoIHBvdXIgY29tcHJlc3NlciBsZSBjb21taXQgc3DDqWNpZmnDqSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDY0Cittc2dpZCAidGhlIGNvbW1pdCBpcyBhdXRob3JlZCBieSBtZSBub3cgKHVzZWQgd2l0aCAtQy8tYy8tLWFtZW5kKSIKK21zZ3N0ciAiIgorIsOgIHByw6lzZW50IGplIHN1aXMgbCdhdXRldXIgZGUgbGEgdmFsaWRhdGlvbiAodXRpbGlzw6kgYXZlYyAtQy8tYy8tLWFtZW5kKSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDY1IGJ1aWx0aW4vbG9nLmM6MTE4MCBidWlsdGluL3JldmVydC5jOjg2Cittc2dpZCAiYWRkIFNpZ25lZC1vZmYtYnk6IgorbXNnc3RyICJham91dGVyIHVuZSBlbnRyw6llIFNpZ25lZC1vZmYtYnkgOiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDY2Cittc2dpZCAidXNlIHNwZWNpZmllZCB0ZW1wbGF0ZSBmaWxlIgorbXNnc3RyICJ1dGlsaXNlciBsZSBmaWNoaWVyIGRlIG1vZMOobGUgc3DDqWNpZmnDqSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDY3Cittc2dpZCAiZm9yY2UgZWRpdCBvZiBjb21taXQiCittc2dzdHIgImZvcmNlciBsJ8OpZGl0aW9uIGR1IGNvbW1pdCIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDY4Cittc2dpZCAiZGVmYXVsdCIKK21zZ3N0ciAiZMOpZmF1dCIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDY4IGJ1aWx0aW4vdGFnLmM6NDYwCittc2dpZCAiaG93IHRvIHN0cmlwIHNwYWNlcyBhbmQgI2NvbW1lbnRzIGZyb20gbWVzc2FnZSIKK21zZ3N0ciAiY29tbWVudCDDqWxpbWluZXIgbGVzIGVzcGFjZXMgZXQgbGVzIGNvbW1lbnRhaXJlcyAjIGR1IG1lc3NhZ2UiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2OQorbXNnaWQgImluY2x1ZGUgc3RhdHVzIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgorbXNnc3RyICJpbmNsdXJlIGxlIHN0YXR1dCBkYW5zIGxlIG1vZMOobGUgZGUgbWVzc2FnZSBkZSB2YWxpZGF0aW9uIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzAgYnVpbHRpbi9tZXJnZS5jOjIzMCBidWlsdGluL3RhZy5jOjQ2MQorbXNnaWQgImtleSBpZCIKK21zZ3N0ciAiaWRlbnRpZmlhbnQgZGUgY2zDqSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDcxIGJ1aWx0aW4vbWVyZ2UuYzoyMzEKK21zZ2lkICJHUEcgc2lnbiBjb21taXQiCittc2dzdHIgInNpZ25lciBsYSB2YWxpZGF0aW9uIGF2ZWMgR1BHIgorCisjLiBlbmQgY29tbWl0IG1lc3NhZ2Ugb3B0aW9ucworIzogYnVpbHRpbi9jb21taXQuYzoxNDc0Cittc2dpZCAiQ29tbWl0IGNvbnRlbnRzIG9wdGlvbnMiCittc2dzdHIgIlZhbGlkZXIgbGVzIG9wdGlvbnMgZGVzIGNvbnRlbnVzIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzUKK21zZ2lkICJjb21taXQgYWxsIGNoYW5nZWQgZmlsZXMiCittc2dzdHIgInZhbGlkZXIgdG91cyBsZXMgZmljaGllcnMgbW9kaWZpw6lzIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzYKK21zZ2lkICJhZGQgc3BlY2lmaWVkIGZpbGVzIHRvIGluZGV4IGZvciBjb21taXQiCittc2dzdHIgImFqb3V0ZXIgbGVzIGZpY2hpZXJzIHNww6ljaWZpw6lzIMOgIGwnaW5kZXggcG91ciBsYSB2YWxpZGF0aW9uIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzcKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBmaWxlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJham91dGVyIGRlcyBmaWNoaWVycyBlbiBtb2RlIGludGVyYWN0aWYiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NgorIzogYnVpbHRpbi9jb21taXQuYzoxNDc4CiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgY2hhbmdlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJham91dGVyIGxlcyBtb2RpZmljYXRpb25zIGVuIG1vZGUgaW50ZXJhY3RpZiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzkKIG1zZ2lkICJjb21taXQgb25seSBzcGVjaWZpZWQgZmlsZXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAidmFsaWRlciBzZXVsZW1lbnQgbGVzIGZpY2hpZXJzIHNww6ljaWZpw6lzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ4MAogbXNnaWQgImJ5cGFzcyBwcmUtY29tbWl0IGhvb2siCi1tc2dzdHIgIiIKK21zZ3N0ciAiw6l2aXRlciBkJ3V0aWxpc2VyIGxlIGNyb2NoZXQgcHJlLWNvbW1pdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0ODEKIG1zZ2lkICJzaG93IHdoYXQgd291bGQgYmUgY29tbWl0dGVkIgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIGNlIHF1aSBzZXJhaXQgdmFsaWTDqSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDAwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0OTIKIG1zZ2lkICJhbWVuZCBwcmV2aW91cyBjb21taXQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxNDAxCi1tc2dpZCAiYnlwYXNzIHBvc3QtcmV3cml0ZSBob29rIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwNgotbXNnaWQgIm9rIHRvIHJlY29yZCBhbiBlbXB0eSBjaGFuZ2UiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxNDA5Ci1tc2dpZCAib2sgdG8gcmVjb3JkIGEgY2hhbmdlIHdpdGggYW4gZW1wdHkgbWVzc2FnZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDEKLW1zZ2lkICJjb3VsZCBub3QgcGFyc2UgSEVBRCBjb21taXQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxNDc5IGJ1aWx0aW4vbWVyZ2UuYzo1MTAKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyBmb3IgcmVhZGluZyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0ODYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQ29ycnVwdCBNRVJHRV9IRUFEIGZpbGUgKCVzKSIKLW1zZ3N0ciAiIgorbXNnc3RyICJjb3JyaWdlciBsYSB2YWxpZGF0aW9uIHByw6ljw6lkZW50ZSIKIAogIzogYnVpbHRpbi9jb21taXQuYzoxNDkzCi1tc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTU9ERSIKLW1zZ3N0ciAiIgorbXNnaWQgImJ5cGFzcyBwb3N0LXJld3JpdGUgaG9vayIKK21zZ3N0ciAiw6l2aXRlciBkJ3V0aWxpc2VyIGxlIGNyb2NoZXQgcG9zdC1yZXdyaXRlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1MTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ5OAorbXNnaWQgIm9rIHRvIHJlY29yZCBhbiBlbXB0eSBjaGFuZ2UiCittc2dzdHIgImFjY2VwdGVyIGQnZW5yZWdpc3RyZXIgdW5lIG1vZGlmaWNhdGlvbiB2aWRlIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE1MDAKK21zZ2lkICJvayB0byByZWNvcmQgYSBjaGFuZ2Ugd2l0aCBhbiBlbXB0eSBtZXNzYWdlIgorbXNnc3RyICJhY2NlcHRlciBkJ2VucmVnaXN0cmVyIHVuZSBtb2RpZmljYXRpb24gYXZlYyB1biBtZXNzYWdlIHZpZGUiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTUyOQorbXNnaWQgImNvdWxkIG5vdCBwYXJzZSBIRUFEIGNvbW1pdCIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIGNvbW1pdCBIRUFEIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NjcgYnVpbHRpbi9tZXJnZS5jOjUyNQorIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIGZvciByZWFkaW5nIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnb3V2cmlyICclcycgZW4gbGVjdHVyZSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvcnJ1cHQgTUVSR0VfSEVBRCBmaWxlICglcykiCittc2dzdHIgIkZpY2hpZXIgTUVSR0VfSEVBRCBjb3Jyb21wdSAoJXMpIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE1ODEKK21zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NT0RFIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgTUVSR0VfTU9ERSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNjAwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGNvbW1pdCBtZXNzYWdlOiAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgbGUgbWVzc2FnZSBkZSB2YWxpZGF0aW9uIDogJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUyNgorIzogYnVpbHRpbi9jb21taXQuYzoxNjE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdDsgeW91IGRpZCBub3QgZWRpdCB0aGUgbWVzc2FnZS5cbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJBYmFuZG9uIGRlIGxhIHZhbGlkYXRpb24gOyB2b3VzIG4nYXZleiBwYXMgw6lkaXTDqSBsZSBtZXNzYWdlXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNjE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdCBkdWUgdG8gZW1wdHkgY29tbWl0IG1lc3NhZ2UuXG4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiQWJhbmRvbiBkZSBsYSB2YWxpZGF0aW9uIGR1IMOgIHVuIG1lc3NhZ2UgZGUgdmFsaWRhdGlvbiB2aWRlXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU0NiBidWlsdGluL21lcmdlLmM6ODQ3IGJ1aWx0aW4vbWVyZ2UuYzo4NzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYzNCBidWlsdGluL21lcmdlLmM6ODYxIGJ1aWx0aW4vbWVyZ2UuYzo4ODYKIG1zZ2lkICJmYWlsZWQgdG8gd3JpdGUgY29tbWl0IG9iamVjdCIKLW1zZ3N0ciAiIgorbXNnc3RyICLDqWNoZWMgZGUgbCfDqWNyaXR1cmUgZGUgbCdvYmpldCBjb21taXQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU2NworIzogYnVpbHRpbi9jb21taXQuYzoxNjU1CiBtc2dpZCAiY2Fubm90IGxvY2sgSEVBRCByZWYiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSB2ZXJyb3VpbGxlciBsYSByw6lmw6lyZW5jZSBIRUFEIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTY1OQogbXNnaWQgImNhbm5vdCB1cGRhdGUgSEVBRCByZWYiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBtZXR0cmUgw6Agam91ciBsYSByw6lmw6lyZW5jZSBIRUFEIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1ODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTY3MAogbXNnaWQgIiIKICJSZXBvc2l0b3J5IGhhcyBiZWVuIHVwZGF0ZWQsIGJ1dCB1bmFibGUgdG8gd3JpdGVcbiIKICJuZXdfaW5kZXggZmlsZS4gQ2hlY2sgdGhhdCBkaXNrIGlzIG5vdCBmdWxsIG9yIHF1b3RhIGlzXG4iCiAibm90IGV4Y2VlZGVkLCBhbmQgdGhlbiBcImdpdCByZXNldCBIRUFEXCIgdG8gcmVjb3Zlci4iCiBtc2dzdHIgIiIKKyJMZSBkw6lww7R0IGEgw6l0w6kgbWlzIMOgIGpvdXIsIG1haXMgaW1wb3NzaWJsZSBkJ8OpY3JpcmUgbGUgZmljaGllclxuIgorIm5ld19pbmRleC4gVsOpcmlmaWV6IHF1ZSBsZSBkaXNxdWUgbidlc3QgcGFzIHBsZWluIG91IHF1ZSBsZSBxdW90YVxuIgorIm4nYSBwYXMgw6l0w6kgZMOpcGFzc8OpLCBwdWlzIGxhbmNleiBcImdpdCByZXNldCBIRUFEXCIgcG91ciByw6lwYXJlci4iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NworIzogYnVpbHRpbi9jb25maWcuYzo4CiBtc2dpZCAiZ2l0IGNvbmZpZyBbb3B0aW9uc10iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb25maWcuYzo1MQotbXNnaWQgIkNvbmZpZyBmaWxlIGxvY2F0aW9uIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTIKLW1zZ2lkICJ1c2UgZ2xvYmFsIGNvbmZpZyBmaWxlIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKLW1zZ2lkICJ1c2Ugc3lzdGVtIGNvbmZpZyBmaWxlIgotbXNnc3RyICIiCittc2dzdHIgImdpdCBjb25maWcgW29wdGlvbnNdIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjU0Ci1tc2dpZCAidXNlIHJlcG9zaXRvcnkgY29uZmlnIGZpbGUiCi1tc2dzdHIgIiIKK21zZ2lkICJDb25maWcgZmlsZSBsb2NhdGlvbiIKK21zZ3N0ciAiRW1wbGFjZW1lbnQgZHUgZmljaGllciBkZSBjb25maWd1cmF0aW9uIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjU1Ci1tc2dpZCAidXNlIGdpdmVuIGNvbmZpZyBmaWxlIgotbXNnc3RyICIiCittc2dpZCAidXNlIGdsb2JhbCBjb25maWcgZmlsZSIKK21zZ3N0ciAidXRpbGlzZXIgbGVzIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiBnbG9iYWwiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NTYKLW1zZ2lkICJBY3Rpb24iCi1tc2dzdHIgIiIKK21zZ2lkICJ1c2Ugc3lzdGVtIGNvbmZpZyBmaWxlIgorbXNnc3RyICJ1dGlsaXNlciBsZSBmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24gZHUgc3lzdMOobWUiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKLW1zZ2lkICJnZXQgdmFsdWU6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKLW1zZ3N0ciAiIgorbXNnaWQgInVzZSByZXBvc2l0b3J5IGNvbmZpZyBmaWxlIgorbXNnc3RyICJ1dGlsaXNlciBsZSBmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24gZHUgZMOpcMO0dCIKIAogIzogYnVpbHRpbi9jb25maWcuYzo1OAotbXNnaWQgImdldCBhbGwgdmFsdWVzOiBrZXkgW3ZhbHVlLXJlZ2V4XSIKLW1zZ3N0ciAiIgorbXNnaWQgInVzZSBnaXZlbiBjb25maWcgZmlsZSIKK21zZ3N0ciAidXRpbGlzZXIgbGUgZmljaGllciBkZSBjb25maWd1cmF0aW9uIHNww6ljaWZpw6kiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NTkKLW1zZ2lkICJnZXQgdmFsdWVzIGZvciByZWdleHA6IG5hbWUtcmVnZXggW3ZhbHVlLXJlZ2V4XSIKLW1zZ3N0ciAiIgorbXNnaWQgImJsb2ItaWQiCittc2dzdHIgImJsb2ItaWQiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTkKK21zZ2lkICJyZWFkIGNvbmZpZyBmcm9tIGdpdmVuIGJsb2Igb2JqZWN0IgorbXNnc3RyICJsaXJlIGxhIGNvbmZpZ3VyYXRpb24gZGVwdWlzIGwnb2JqZXQgYmxvYiBmb3VybmkiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjAKLW1zZ2lkICJyZXBsYWNlIGFsbCBtYXRjaGluZyB2YXJpYWJsZXM6IG5hbWUgdmFsdWUgW3ZhbHVlX3JlZ2V4XSIKLW1zZ3N0ciAiIgorbXNnaWQgIkFjdGlvbiIKK21zZ3N0ciAiQWN0aW9uIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjYxCi1tc2dpZCAiYWRkIGEgbmV3IHZhcmlhYmxlOiBuYW1lIHZhbHVlIgotbXNnc3RyICIiCittc2dpZCAiZ2V0IHZhbHVlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCittc2dzdHIgIm9idGVuaXIgbGEgdmFsZXVyIDogbm9tIFtyZWdleC1kZS12YWxldXJdIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjYyCi1tc2dpZCAicmVtb3ZlIGEgdmFyaWFibGU6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKLW1zZ3N0ciAiIgorbXNnaWQgImdldCBhbGwgdmFsdWVzOiBrZXkgW3ZhbHVlLXJlZ2V4XSIKK21zZ3N0ciAib2J0ZW5pciB0b3V0ZXMgbGUgdmFsZXVycyA6IGNsw6kgW3JlZ2V4LWRlLXZhbGV1cl0iCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKLW1zZ2lkICJyZW1vdmUgYWxsIG1hdGNoZXM6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKLW1zZ3N0ciAiIgorbXNnaWQgImdldCB2YWx1ZXMgZm9yIHJlZ2V4cDogbmFtZS1yZWdleCBbdmFsdWUtcmVnZXhdIgorbXNnc3RyICJvYnRlbmlyIGxlcyB2YWxldXIgcG91ciBsYSByZWdleHAgOiByZWdleC1kZS1ub20gW3JlZ2V4LWRlLXZhbGV1cl0iCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKLW1zZ2lkICJyZW5hbWUgc2VjdGlvbjogb2xkLW5hbWUgbmV3LW5hbWUiCi1tc2dzdHIgIiIKK21zZ2lkICJnZXQgdmFsdWUgc3BlY2lmaWMgZm9yIHRoZSBVUkw6IHNlY3Rpb25bLnZhcl0gVVJMIgorbXNnc3RyICJvYnRlbmlyIGxhIHZhbGV1ciBzcMOpY2lmaXF1ZSBwb3VyIGwnVVJMIDogc2VjdGlvblsudmFyXSBVUkwiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjUKLW1zZ2lkICJyZW1vdmUgYSBzZWN0aW9uOiBuYW1lIgorbXNnaWQgInJlcGxhY2UgYWxsIG1hdGNoaW5nIHZhcmlhYmxlczogbmFtZSB2YWx1ZSBbdmFsdWVfcmVnZXhdIgogbXNnc3RyICIiCisicmVtcGxhY2VyIHRvdXRlcyBsZXMgdmFyaWFibGVzIGNvcnJlc3BvbmRhbnQgOiBub20gdmFsZXVyIFtyZWdleC1kZS12YWxldXJdIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjY2Ci1tc2dpZCAibGlzdCBhbGwiCi1tc2dzdHIgIiIKK21zZ2lkICJhZGQgYSBuZXcgdmFyaWFibGU6IG5hbWUgdmFsdWUiCittc2dzdHIgImFqb3V0ZXIgdW5lIG5vdXZlbGxlIHZhcmlhYmxlIDogbm9tIHZhbGV1ciIKIAogIzogYnVpbHRpbi9jb25maWcuYzo2NwotbXNnaWQgIm9wZW4gYW4gZWRpdG9yIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjggYnVpbHRpbi9jb25maWcuYzo2OQotbXNnaWQgInNsb3QiCi1tc2dzdHIgIiIKK21zZ2lkICJyZW1vdmUgYSB2YXJpYWJsZTogbmFtZSBbdmFsdWUtcmVnZXhdIgorbXNnc3RyICJzdXBwcmltZXIgdW5lIHZhcmlhYmxlIDogbm9tIFtyZWdleC1kZS12YWxldXJdIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjY4Ci1tc2dpZCAiZmluZCB0aGUgY29sb3IgY29uZmlndXJlZDogW2RlZmF1bHRdIgotbXNnc3RyICIiCittc2dpZCAicmVtb3ZlIGFsbCBtYXRjaGVzOiBuYW1lIFt2YWx1ZS1yZWdleF0iCittc2dzdHIgInN1cHByaW1lciB0b3V0ZXMgbGVzIGNvcnJlc3BvbmRhbmNlcyBub20gW3JlZ2V4LWRlLXZhbGV1cl0iCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjkKLW1zZ2lkICJmaW5kIHRoZSBjb2xvciBzZXR0aW5nOiBbc3Rkb3V0LWlzLXR0eV0iCi1tc2dzdHIgIiIKK21zZ2lkICJyZW5hbWUgc2VjdGlvbjogb2xkLW5hbWUgbmV3LW5hbWUiCittc2dzdHIgInJlbm9tbWVyIHVuZSBzZWN0aW9uIDogYW5jaWVuLW5vbSBub3V2ZWF1LW5vbSIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3MAotbXNnaWQgIlR5cGUiCi1tc2dzdHIgIiIKK21zZ2lkICJyZW1vdmUgYSBzZWN0aW9uOiBuYW1lIgorbXNnc3RyICJzdXBwcmltZXIgdW5lIHNlY3Rpb24gOiBub20iCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzEKLW1zZ2lkICJ2YWx1ZSBpcyBcInRydWVcIiBvciBcImZhbHNlXCIiCi1tc2dzdHIgIiIKK21zZ2lkICJsaXN0IGFsbCIKK21zZ3N0ciAiYWZmaWNoZXIgdG91dCIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3MgotbXNnaWQgInZhbHVlIGlzIGRlY2ltYWwgbnVtYmVyIgotbXNnc3RyICIiCittc2dpZCAib3BlbiBhbiBlZGl0b3IiCittc2dzdHIgIm91dnJpciB1biDDqWRpdGV1ciIKKworIzogYnVpbHRpbi9jb25maWcuYzo3MyBidWlsdGluL2NvbmZpZy5jOjc0Cittc2dpZCAic2xvdCIKK21zZ3N0ciAiZW1wbGFjZW1lbnQiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzMKLW1zZ2lkICJ2YWx1ZSBpcyAtLWJvb2wgb3IgLS1pbnQiCi1tc2dzdHIgIiIKK21zZ2lkICJmaW5kIHRoZSBjb2xvciBjb25maWd1cmVkOiBbZGVmYXVsdF0iCittc2dzdHIgInRyb3V2ZXIgbGEgY291bGV1ciBjb25maWd1csOpZSA6IFtwYXIgZMOpZmF1dF0iCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzQKLW1zZ2lkICJ2YWx1ZSBpcyBhIHBhdGggKGZpbGUgb3IgZGlyZWN0b3J5IG5hbWUpIgotbXNnc3RyICIiCittc2dpZCAiZmluZCB0aGUgY29sb3Igc2V0dGluZzogW3N0ZG91dC1pcy10dHldIgorbXNnc3RyICJ0cm91dmVyIGxlIHLDqWdsYWdlIGRlIGxhIGNvdWxldXIgOiBbc3Rkb3V0LWVzdC10dHldIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjc1Ci1tc2dpZCAiT3RoZXIiCi1tc2dzdHIgIiIKK21zZ2lkICJUeXBlIgorbXNnc3RyICJUeXBlIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjc2Ci1tc2dpZCAidGVybWluYXRlIHZhbHVlcyB3aXRoIE5VTCBieXRlIgotbXNnc3RyICIiCittc2dpZCAidmFsdWUgaXMgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiIgorbXNnc3RyICJsYSB2YWxldXIgZXN0IFwidHJ1ZVwiICh2cmFpKSBvdXIgXCJmYWxzZVwiIChmYXV4KSIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3NworbXNnaWQgInZhbHVlIGlzIGRlY2ltYWwgbnVtYmVyIgorbXNnc3RyICJsYSB2YWxldXIgZXN0IHVuIG5vbWJyZSBkw6ljaW1hbCIKKworIzogYnVpbHRpbi9jb25maWcuYzo3OAorbXNnaWQgInZhbHVlIGlzIC0tYm9vbCBvciAtLWludCIKK21zZ3N0ciAibGEgdmFsZXVyIGVzdCAtLWJvb2wgb3UgLS1pbnQiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzkKK21zZ2lkICJ2YWx1ZSBpcyBhIHBhdGggKGZpbGUgb3IgZGlyZWN0b3J5IG5hbWUpIgorbXNnc3RyICJsYSB2YWxldXIgZXN0IHVuIGNoZW1pbiAodmVycyB1biBmaWNoaWVyIG91IHVuIHLDqXBlcnRvaXJlKSIKKworIzogYnVpbHRpbi9jb25maWcuYzo4MAorbXNnaWQgIk90aGVyIgorbXNnc3RyICJBdXRyZSIKKworIzogYnVpbHRpbi9jb25maWcuYzo4MQorbXNnaWQgInRlcm1pbmF0ZSB2YWx1ZXMgd2l0aCBOVUwgYnl0ZSIKK21zZ3N0ciAidGVybWluZXIgbGVzIHZhbGV1cnMgYXZlYyB1biBjYXJhY3TDqHJlIE5VTCIKKworIzogYnVpbHRpbi9jb25maWcuYzo4MgogbXNnaWQgInJlc3BlY3QgaW5jbHVkZSBkaXJlY3RpdmVzIG9uIGxvb2t1cCIKLW1zZ3N0ciAiIgorbXNnc3RyICJyZXNwZWN0ZXIgbGVzIGRpcmVjdGl2ZXMgZCdpbmNsdXNpb24gbG9ycyBkZSBsYSByZWNoZXJjaGUiCiAKICM6IGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjgyCiBtc2dpZCAiZ2l0IGNvdW50LW9iamVjdHMgWy12XSBbLUggfCAtLWh1bWFuLXJlYWRhYmxlXSIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgY291bnQtb2JqZWN0cyBbLXZdIFstSCB8IC0taHVtYW4tcmVhZGFibGVdIgogCiAjOiBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NwogbXNnaWQgInByaW50IHNpemVzIGluIGh1bWFuIHJlYWRhYmxlIGZvcm1hdCIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MTUKLW1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIDxjb21taXR0aXNoPioiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZSBsZXMgdGFpbGxlcyBkYW5zIHVuIGZvcm1hdCBodW1haW5lbWVudCBsaXNpYmxlIgogCiAjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKLW1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIC0tZGlydHkiCi1tc2dzdHIgIiIKK21zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIDxjb21taXQtaXNoPioiCittc2dzdHIgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gPGNvbW1pdCBvdSBhcHBhcmVudMOpPioiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiYW5ub3RhdGVkIHRhZyAlcyBub3QgYXZhaWxhYmxlIgotbXNnc3RyICIiCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTcKK21zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIC0tZGlydHkiCittc2dzdHIgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gLS1kaXJ0eSIKIAogIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzNwogIywgYy1mb3JtYXQKLW1zZ2lkICJhbm5vdGF0ZWQgdGFnICVzIGhhcyBubyBlbWJlZGRlZCBuYW1lIgotbXNnc3RyICIiCittc2dpZCAiYW5ub3RhdGVkIHRhZyAlcyBub3QgYXZhaWxhYmxlIgorbXNnc3RyICJsJ8OpdGlxdWV0dGUgYW5ub3TDqWUgJXMgbidlc3QgcGFzIGRpc3BvbmlibGUiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzkKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiYW5ub3RhdGVkIHRhZyAlcyBoYXMgbm8gZW1iZWRkZWQgbmFtZSIKK21zZ3N0ciAibCfDqXRpcXVldHRlIGFubm90w6llICVzIG4nYSBwYXMgZGUgbm9tIGVtYmFycXXDqSIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjI0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWcgJyVzJyBpcyByZWFsbHkgJyVzJyBoZXJlIgotbXNnc3RyICIiCittc2dzdHIgImwnw6l0aXF1ZXR0ZSAnJXMnIGVzdCBlbiBmYWl0ICclcyciCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNjYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWUgJXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiJXMgbidlc3QgcGFzIHVuIG5vbSBkJ29iamV0IHZhbGlkZSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI2OQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBpcyBub3QgYSB2YWxpZCAnJXMnIG9iamVjdCIKIG1zZ3N0ciAiJXMgbidlc3QgcGFzIHVuIG9iamV0ICclcycgdmFsaWRlIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6Mjg2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHRhZyBleGFjdGx5IG1hdGNoZXMgJyVzJyIKLW1zZ3N0ciAiIgorbXNnc3RyICJhdWN1bmUgw6l0aXF1ZXR0ZSBuZSBjb3JyZXNwb25kIHBhcmZhaXRlbWVudCDDoCAnJXMnIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6Mjg4CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgInNlYXJjaGluZyB0byBkZXNjcmliZSAlc1xuIgotbXNnc3RyICIiCittc2dzdHIgInJlY2hlcmNoZSBkZSBsYSBkZXNjcmlwdGlvbiBkZSAlc1xuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MzI4CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MzMyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZpbmlzaGVkIHNlYXJjaCBhdCAlc1xuIgotbXNnc3RyICIiCittc2dzdHIgInJlY2hlcmNoZSB0ZXJtaW7DqWUgw6AgJXNcbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1MgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiTm8gYW5ub3RhdGVkIHRhZ3MgY2FuIGRlc2NyaWJlICclcycuXG4iCiAiSG93ZXZlciwgdGhlcmUgd2VyZSB1bmFubm90YXRlZCB0YWdzOiB0cnkgLS10YWdzLiIKIG1zZ3N0ciAiIgorIkF1Y3VuZSDDqXRpcXVldHRlIGFubm90w6llIG5lIHBldXQgZMOpY3JpcmUgJyVzJy5cbiIKKyJDZXBlbmRhbnQsIGlsIGV4aXN0ZSBkZXMgw6l0aXF1ZXR0ZXMgbm9uLWFubm90w6llcyA6IGVzc2F5ZXogYXZlYyAtLXRhZ3MuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MzU2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJObyB0YWdzIGNhbiBkZXNjcmliZSAnJXMnLlxuIgogIlRyeSAtLWFsd2F5cywgb3IgY3JlYXRlIHNvbWUgdGFncy4iCiBtc2dzdHIgIiIKKyJBdWN1bmUgw6l0aXF1ZXR0ZSBuZSBwZXV0IGTDqWNyaXJlICclcycuXG4iCisiRXNzYXlleiAtLWFsd2F5cywgb3UgY3LDqWV6IGRlcyDDqXRpcXVldHRlcy4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNzcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODQKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJhdmVyc2VkICVsdSBjb21taXRzXG4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiJWx1IGNvbW1pdHMgcGFyY291cnVzXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODAKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm1vcmUgdGhhbiAlaSB0YWdzIGZvdW5kOyBsaXN0ZWQgJWkgbW9zdCByZWNlbnRcbiIKICJnYXZlIHVwIHNlYXJjaCBhdCAlc1xuIgogbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDIKLW1zZ2lkICJmaW5kIHRoZSB0YWcgdGhhdCBjb21lcyBhZnRlciB0aGUgY29tbWl0IgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDMKLW1zZ2lkICJkZWJ1ZyBzZWFyY2ggc3RyYXRlZ3kgb24gc3RkZXJyIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDQKLW1zZ2lkICJ1c2UgYW55IHJlZiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA1Ci1tc2dpZCAidXNlIGFueSB0YWcsIGV2ZW4gdW5hbm5vdGF0ZWQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNgotbXNnaWQgImFsd2F5cyB1c2UgbG9uZyBmb3JtYXQiCi1tc2dzdHIgIiIKKyJwbHVzIGRlICVpIMOpdGlxdWV0dGVzIG9udCDDqXTDqSB0cm91dsOpZXM7IHNldWxlcyBsZXMgJWkgcGx1cyByw6ljZW50ZXMgc29udCAiCisiYWZmaWNow6llc1xuIgorImFiYW5kb24gZGUgbGEgcmVjaGVyY2hlIMOgICVzXG4iCiAKICM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDkKLW1zZ2lkICJvbmx5IG91dHB1dCBleGFjdCBtYXRjaGVzIgotbXNnc3RyICIiCittc2dpZCAiZmluZCB0aGUgdGFnIHRoYXQgY29tZXMgYWZ0ZXIgdGhlIGNvbW1pdCIKK21zZ3N0ciAicmVjaGVyY2hlciBsJ8OpdGlxdWV0dGUgcXVpIHN1aXQgbGUgY29tbWl0IgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEwCittc2dpZCAiZGVidWcgc2VhcmNoIHN0cmF0ZWd5IG9uIHN0ZGVyciIKK21zZ3N0ciAiZMOpYm9ndWVyIGxhIHN0cmF0w6lnaWUgZGUgcmVjaGVyY2hlIHN1ciBzdGRlcnIiCiAKICM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTEKLW1zZ2lkICJjb25zaWRlciA8bj4gbW9zdCByZWNlbnQgdGFncyAoZGVmYXVsdDogMTApIgotbXNnc3RyICIiCittc2dpZCAidXNlIGFueSByZWYiCittc2dzdHIgInV0aWxpc2VyIG4naW1wb3J0ZSBxdWVsbGUgcsOpZsOpcmVuY2UiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTIKK21zZ2lkICJ1c2UgYW55IHRhZywgZXZlbiB1bmFubm90YXRlZCIKK21zZ3N0ciAidXRpbGlzZXIgbidpbXBvcnRlIHF1ZWxsZSDDqXRpcXVldHRlLCBtw6ptZSBub24tYW5ub3TDqWUiCiAKICM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTMKLW1zZ2lkICJvbmx5IGNvbnNpZGVyIHRhZ3MgbWF0Y2hpbmcgPHBhdHRlcm4+IgotbXNnc3RyICIiCittc2dpZCAiYWx3YXlzIHVzZSBsb25nIGZvcm1hdCIKK21zZ3N0ciAidG91am91cnMgdXRpbGlzZXIgbGUgZm9ybWF0IGxvbmciCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTUgYnVpbHRpbi9uYW1lLXJldi5jOjIzOAotbXNnaWQgInNob3cgYWJicmV2aWF0ZWQgY29tbWl0IG9iamVjdCBhcyBmYWxsYmFjayIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE2Ci1tc2dpZCAibWFyayIKLW1zZ3N0ciAiIgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNAorbXNnaWQgIm9ubHkgZm9sbG93IGZpcnN0IHBhcmVudCIKK21zZ3N0ciAibmUgc3VpdnJlIHF1ZSBsZSBwcmVtaWVyIHBhcmVudCIKIAogIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNworbXNnaWQgIm9ubHkgb3V0cHV0IGV4YWN0IG1hdGNoZXMiCittc2dzdHIgIm4nYWZmaWNoZXIgcXVlIGxlcyBjb3JyZXNwb25kYW5jZXMgZXhhY3RlcyIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxOQorbXNnaWQgImNvbnNpZGVyIDxuPiBtb3N0IHJlY2VudCB0YWdzIChkZWZhdWx0OiAxMCkiCittc2dzdHIgIiIKKyJjb25zaWTDqXJlciB1bmlxdWVtZW50IGxlcyA8bj4gw6l0aXF1ZXR0ZXMgbGUgcGx1cyByw6ljZW50ZXMgKGTDqWZhdXQgOiAxMCkiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjEKK21zZ2lkICJvbmx5IGNvbnNpZGVyIHRhZ3MgbWF0Y2hpbmcgPHBhdHRlcm4+IgorbXNnc3RyICJuZSBjb25zaWTDqXJlciBxdWUgbGVzIMOpdGlxdWV0dGVzIGNvcnJlc3BvbmRhbnQgw6AgPG1vdGlmPiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyMyBidWlsdGluL25hbWUtcmV2LmM6MzIyCittc2dpZCAic2hvdyBhYmJyZXZpYXRlZCBjb21taXQgb2JqZWN0IGFzIGZhbGxiYWNrIgorbXNnc3RyICJhZmZpY2hlciBsZXMgb2JqZXRzIGNvbW1pdHMgYWJyw6lnw6lzIGVuIGRlcm5pZXIgcmVjb3VycyIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyNAorbXNnaWQgIm1hcmsiCittc2dzdHIgIm1hcnF1ZSIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyNQogbXNnaWQgImFwcGVuZCA8bWFyaz4gb24gZGlydHkgd29ya2luZyB0cmVlIChkZWZhdWx0OiBcIi1kaXJ0eVwiKSIKLW1zZ3N0ciAiIgorbXNnc3RyICJham91dGVyIDxtYXJxdWU+IHNpIGxhIGNvcGllIGRlIHRyYXZhaWwgZXN0IHNhbGUgKGTDqWZhdXQgOiBcIi1kaXJ0eVwiKSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQzNQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ0MwogbXNnaWQgIi0tbG9uZyBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFiYnJldj0wIgotbXNnc3RyICIiCittc2dzdHIgIi0tbG9uZyBldCAtLWFiYnJldj0wIHNvbnQgaW5jb21wYXRpYmxlcyIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2MQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2OQogbXNnaWQgIk5vIG5hbWVzIGZvdW5kLCBjYW5ub3QgZGVzY3JpYmUgYW55dGhpbmcuIgotbXNnc3RyICIiCittc2dzdHIgImF1Y3VuIG5vbSB0cm91dsOpLCBpbXBvc3NpYmxlIGRlIGTDqWNyaXJlIHF1b2kgcXVlIGNlIHNvaXQuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDgxCi1tc2dpZCAiLS1kaXJ0eSBpcyBpbmNvbXBhdGlibGUgd2l0aCBjb21taXR0aXNoZXMiCi1tc2dzdHIgIiIKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODkKK21zZ2lkICItLWRpcnR5IGlzIGluY29tcGF0aWJsZSB3aXRoIGNvbW1pdC1pc2hlcyIKK21zZ3N0ciAiLS1kaXJ0eSBlc3QgaW5jb21wYXRpYmxlIGF2ZWMgbGEgc3DDqWNpZmljYXRpb24gZGUgY29tbWl0cyBvdSBhc3NpbWlsw6lzIgogCiAjOiBidWlsdGluL2RpZmYuYzo3OQogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnOiBub3QgYSByZWd1bGFyIGZpbGUgb3Igc3ltbGluayIKLW1zZ3N0ciAiIgorbXNnc3RyICInJXMnIDogbidlc3QgcGFzIHVuIGZpY2hpZXIgcsOpZ3VsaWVyIG5pIHVuIGxpZW4gc3ltYm9saXF1ZSIKIAotIzogYnVpbHRpbi9kaWZmLmM6MjI4CisjOiBidWlsdGluL2RpZmYuYzoyMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBvcHRpb246ICVzIgotbXNnc3RyICIiCittc2dzdHIgIm9wdGlvbiBpbnZhbGlkZSA6ICVzIgogCi0jOiBidWlsdGluL2RpZmYuYzozMDUKKyM6IGJ1aWx0aW4vZGlmZi5jOjMwNwogbXNnaWQgIk5vdCBhIGdpdCByZXBvc2l0b3J5IgotbXNnc3RyICIiCittc2dzdHIgIkNlIG4nZXN0IHBhcyB1biBkw6lww7R0IGdpdCAhIgogCi0jOiBidWlsdGluL2RpZmYuYzozNDgKKyM6IGJ1aWx0aW4vZGlmZi5jOjM1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIG9iamVjdCAnJXMnIGdpdmVuLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJvYmpldCBzcMOpY2lmacOpICclcycgaW52YWxpZGUuIgogCi0jOiBidWlsdGluL2RpZmYuYzozNTMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAibW9yZSB0aGFuICVkIHRyZWVzIGdpdmVuOiAnJXMnIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZGlmZi5jOjM2MworIzogYnVpbHRpbi9kaWZmLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vcmUgdGhhbiB0d28gYmxvYnMgZ2l2ZW46ICclcyciCi1tc2dzdHIgIiIKK21zZ3N0ciAicGx1cyBkZSBkZXV4IGJsb2JzIHNww6ljaWZpw6lzIDogJyVzJyIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzcxCisjOiBidWlsdGluL2RpZmYuYzozNjYKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5oYW5kbGVkIG9iamVjdCAnJXMnIGdpdmVuLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJvYmpldCBub24gZ8OpcsOpICclcycgc3DDqWNpZmnDqS4iCiAKICM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzoyMgogbXNnaWQgImdpdCBmYXN0LWV4cG9ydCBbcmV2LWxpc3Qtb3B0c10iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IGZhc3QtZXhwb3J0IFtvcHRpb25zLWRlLWxpc3RlLWRlLXLDqXZpc2lvbnNdIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU4CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjczCiBtc2dpZCAic2hvdyBwcm9ncmVzcyBhZnRlciA8bj4gb2JqZWN0cyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYwCi1tc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHNpZ25lZCB0YWdzIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjMKLW1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2YgdGFncyB0aGF0IHRhZyBmaWx0ZXJlZCBvYmplY3RzIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjYKLW1zZ2lkICJEdW1wIG1hcmtzIHRvIHRoaXMgZmlsZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY4Ci1tc2dpZCAiSW1wb3J0IG1hcmtzIGZyb20gdGhpcyBmaWxlIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzAKLW1zZ2lkICJGYWtlIGEgdGFnZ2VyIHdoZW4gdGFncyBsYWNrIG9uZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcyCi1tc2dpZCAiT3V0cHV0IGZ1bGwgdHJlZSBmb3IgZWFjaCBjb21taXQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NAotbXNnaWQgIlVzZSB0aGUgZG9uZSBmZWF0dXJlIHRvIHRlcm1pbmF0ZSB0aGUgc3RyZWFtIgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIGxhIHByb2dyZXNzaW9uIGFwcsOocyA8bj4gb2JqZXRzIgogCiAjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc1Ci1tc2dpZCAiU2tpcCBvdXRwdXQgb2YgYmxvYiBkYXRhIgorbXNnaWQgInNlbGVjdCBoYW5kbGluZyBvZiBzaWduZWQgdGFncyIKK21zZ3N0ciAic8OpbGVjdGlvbm5lciBsYSBnZXN0aW9uIGRlcyDDqXRpcXVldHRlcyBzaWduw6llcyIKKworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3OAorbXNnaWQgInNlbGVjdCBoYW5kbGluZyBvZiB0YWdzIHRoYXQgdGFnIGZpbHRlcmVkIG9iamVjdHMiCiBtc2dzdHIgIiIKKyJzw6lsZWN0aW9ubmVyIGxhIGdlc3Rpb24gZGVzIMOpdGlxdWV0dGVzIHF1aSBwb2ludGVudCBzdXIgZGVzIG9iamV0cyBmaWx0csOpcyIKKworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MQorbXNnaWQgIkR1bXAgbWFya3MgdG8gdGhpcyBmaWxlIgorbXNnc3RyICJFbnJlZ2lzdHJlciBsZXMgbWFycXVlcyBkYW5zIGNlIGZpY2hpZXIiCisKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODMKK21zZ2lkICJJbXBvcnQgbWFya3MgZnJvbSB0aGlzIGZpbGUiCittc2dzdHIgImltcG9ydGVyIGxlcyBtYXJxdWVzIGRlcHVpcyBjZSBmaWNoaWVyIgorCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njg1Cittc2dpZCAiRmFrZSBhIHRhZ2dlciB3aGVuIHRhZ3MgbGFjayBvbmUiCittc2dzdHIgImZhbHNpZmllciB1biBhdXRldXIgZCfDqXRpcXVldHRlIHNpIGwnw6l0aXF1ZXR0ZSBuJ2VuIHByw6lzZW50ZSBwYXMiCisKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODcKK21zZ2lkICJPdXRwdXQgZnVsbCB0cmVlIGZvciBlYWNoIGNvbW1pdCIKK21zZ3N0ciAiQWZmaWNoZXIgbCdhcmJyZSBjb21wbGV0IHBvdXIgY2hhcXVlIGNvbW1pdCIKKworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4OQorbXNnaWQgIlVzZSB0aGUgZG9uZSBmZWF0dXJlIHRvIHRlcm1pbmF0ZSB0aGUgc3RyZWFtIgorbXNnc3RyICJVdGlsaXNlciBsYSBmb25jdGlvbiBcImRvbmVcIiBwb3VyIHRlcm1pbmVyIGxlIGZsdXgiCisKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2OTAKK21zZ2lkICJTa2lwIG91dHB1dCBvZiBibG9iIGRhdGEiCittc2dzdHIgIlNhdXRlciBsJ2FmZmljaGFnZSBkZSBkb25uw6llcyBkZSBibG9iIgogCiAjOiBidWlsdGluL2ZldGNoLmM6MjAKIG1zZ2lkICJnaXQgZmV0Y2ggWzxvcHRpb25zPl0gWzxyZXBvc2l0b3J5PiBbPHJlZnNwZWM+Li4uXV0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IGZldGNoIFs8b3B0aW9ucz5dIFs8ZMOpcMO0dD4gWzxzcMOpY2lmaWNhdGlvbi1kZS1yw6lmw6lyZW5jZT4uLi5dXSIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjIxCiBtc2dpZCAiZ2l0IGZldGNoIFs8b3B0aW9ucz5dIDxncm91cD4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IGZldGNoIFs8b3B0aW9ucz5dIDxncm91cGU+IgogCiAjOiBidWlsdGluL2ZldGNoLmM6MjIKIG1zZ2lkICJnaXQgZmV0Y2ggLS1tdWx0aXBsZSBbPG9wdGlvbnM+XSBbKDxyZXBvc2l0b3J5PiB8IDxncm91cD4pLi4uXSIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgZmV0Y2ggLS1tdWx0aXBsZSBbPG9wdGlvbnM+XSBbKDxkw6lww7R0PiB8IDxncm91cGU+KS4uLl0iCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzoyMwogbXNnaWQgImdpdCBmZXRjaCAtLWFsbCBbPG9wdGlvbnM+XSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2ZldGNoLmM6NjAKLW1zZ2lkICJmZXRjaCBmcm9tIGFsbCByZW1vdGVzIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZmV0Y2guYzo2MgotbXNnaWQgImFwcGVuZCB0byAuZ2l0L0ZFVENIX0hFQUQgaW5zdGVhZCBvZiBvdmVyd3JpdGluZyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2ZldGNoLmM6NjQKLW1zZ2lkICJwYXRoIHRvIHVwbG9hZCBwYWNrIG9uIHJlbW90ZSBlbmQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9mZXRjaC5jOjY1Ci1tc2dpZCAiZm9yY2Ugb3ZlcndyaXRlIG9mIGxvY2FsIGJyYW5jaCIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2ZldGNoLmM6NjcKLW1zZ2lkICJmZXRjaCBmcm9tIG11bHRpcGxlIHJlbW90ZXMiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9mZXRjaC5jOjY5Ci1tc2dpZCAiZmV0Y2ggYWxsIHRhZ3MgYW5kIGFzc29jaWF0ZWQgb2JqZWN0cyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2ZldGNoLmM6NzEKLW1zZ2lkICJkbyBub3QgZmV0Y2ggYWxsIHRhZ3MgKC0tbm8tdGFncykiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9mZXRjaC5jOjczCi1tc2dpZCAicHJ1bmUgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIG5vIGxvbmdlciBvbiByZW1vdGUiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IGZldGNoIC0tYWxsIFs8b3B0aW9ucz5dIgogCiAjOiBidWlsdGluL2ZldGNoLmM6NzQKLW1zZ2lkICJvbi1kZW1hbmQiCi1tc2dzdHIgIiIKK21zZ2lkICJmZXRjaCBmcm9tIGFsbCByZW1vdGVzIgorbXNnc3RyICJyw6ljdXDDqXJlciBkZXB1aXMgdG91cyBsZSBkw6lww7R0cyBkaXN0YW50cyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc1Ci1tc2dpZCAiY29udHJvbCByZWN1cnNpdmUgZmV0Y2hpbmcgb2Ygc3VibW9kdWxlcyIKLW1zZ3N0ciAiIgorIzogYnVpbHRpbi9mZXRjaC5jOjc2Cittc2dpZCAiYXBwZW5kIHRvIC5naXQvRkVUQ0hfSEVBRCBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIgorbXNnc3RyICJham91dGVyIMOgIC5naXQvRkVUQ0hfSEVBRCBhdSBsaWV1IGRlIGwnw6ljcmFzZXIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3OAorbXNnaWQgInBhdGggdG8gdXBsb2FkIHBhY2sgb24gcmVtb3RlIGVuZCIKK21zZ3N0ciAiY2hlbWluIHZlcnMgbGVxdWVsIHTDqWzDqWNoYXJnZXIgbGUgcGFxdWV0IHN1ciBsZSBwb3N0ZSBkaXN0YW50IgogCiAjOiBidWlsdGluL2ZldGNoLmM6NzkKLW1zZ2lkICJrZWVwIGRvd25sb2FkZWQgcGFjayIKLW1zZ3N0ciAiIgorbXNnaWQgImZvcmNlIG92ZXJ3cml0ZSBvZiBsb2NhbCBicmFuY2giCittc2dzdHIgImZvcmNlciBsJ8OpY3Jhc2VtZW50IGRlIGxhIGJyYW5jaGUgbG9jYWxlIgogCiAjOiBidWlsdGluL2ZldGNoLmM6ODEKLW1zZ2lkICJhbGxvdyB1cGRhdGluZyBvZiBIRUFEIHJlZiIKLW1zZ3N0ciAiIgorbXNnaWQgImZldGNoIGZyb20gbXVsdGlwbGUgcmVtb3RlcyIKK21zZ3N0ciAicsOpY3Vww6lyZXIgZGVwdWlzIHBsdXNpZXVycyBkw6lww7R0cyBkaXN0YW50cyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg0Ci1tc2dpZCAiZGVlcGVuIGhpc3Rvcnkgb2Ygc2hhbGxvdyBjbG9uZSIKLW1zZ3N0ciAiIgorIzogYnVpbHRpbi9mZXRjaC5jOjgzCittc2dpZCAiZmV0Y2ggYWxsIHRhZ3MgYW5kIGFzc29jaWF0ZWQgb2JqZWN0cyIKK21zZ3N0ciAicsOpY3Vww6lyZXIgdG91dGVzIGxlcyDDqXRpcXVldHRlcyBldCBsZXVycyBvYmpldHMgYXNzb2Npw6lzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODYKLW1zZ2lkICJjb252ZXJ0IHRvIGEgY29tcGxldGUgcmVwb3NpdG9yeSIKLW1zZ3N0ciAiIgorIzogYnVpbHRpbi9mZXRjaC5jOjg1Cittc2dpZCAiZG8gbm90IGZldGNoIGFsbCB0YWdzICgtLW5vLXRhZ3MpIgorbXNnc3RyICJuZSBwYXMgcsOpY3Vww6lyZXIgdG91dGVzIGxlcyDDqXRpcXVldHRlcyAoLS1uby10YWdzKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg4IGJ1aWx0aW4vbG9nLmM6MTEzMAotbXNnaWQgImRpciIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4NworbXNnaWQgInBydW5lIHJlbW90ZS10cmFja2luZyBicmFuY2hlcyBubyBsb25nZXIgb24gcmVtb3RlIgogbXNnc3RyICIiCisiw6lsaW1pbmVyIGxlcyBicmFuY2hlcyBkZSBzdWl2aSBkaXN0YW50IHNpIGxhIGJyYW5jaGUgbidleGlzdGUgcGx1cyBkYW5zIGxlICIKKyJkw6lww7R0IGRpc3RhbnQiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4OAorbXNnaWQgIm9uLWRlbWFuZCIKK21zZ3N0ciAiw6AgbGEgZGVtYW5kZSIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjg5Cittc2dpZCAiY29udHJvbCByZWN1cnNpdmUgZmV0Y2hpbmcgb2Ygc3VibW9kdWxlcyIKK21zZ3N0ciAiY29udHLDtGxlciBsYSByw6ljdXDDqXJhdGlvbiByw6ljdXJzaXZlIGRhbnMgbGVzIHNvdXMtbW9kdWxlcyIKKworIzogYnVpbHRpbi9mZXRjaC5jOjkzCittc2dpZCAia2VlcCBkb3dubG9hZGVkIHBhY2siCittc2dzdHIgImNvbnNlcnZlciBsZSBwYXF1ZXQgdMOpbMOpY2hhcmfDqSIKKworIzogYnVpbHRpbi9mZXRjaC5jOjk1Cittc2dpZCAiYWxsb3cgdXBkYXRpbmcgb2YgSEVBRCByZWYiCittc2dzdHIgInBlcm1ldHRyZSBsYSBtaXNlIMOgIGpvdXIgZGUgbGEgcsOpZsOpcmVuY2UgSEVBRCIKKworIzogYnVpbHRpbi9mZXRjaC5jOjk4Cittc2dpZCAiZGVlcGVuIGhpc3Rvcnkgb2Ygc2hhbGxvdyBjbG9uZSIKK21zZ3N0ciAiYXBwcm9mb25kaXIgbCdoaXN0b3JpcXVlIGQndW4gY2xvbmUgc3VwZXJmaWNpZWwiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDAKK21zZ2lkICJjb252ZXJ0IHRvIGEgY29tcGxldGUgcmVwb3NpdG9yeSIKK21zZ3N0ciAiY29udmVydGlyIGVuIHVuIGTDqXDDtHQgY29tcGxldCIKKworIzogYnVpbHRpbi9mZXRjaC5jOjEwMiBidWlsdGluL2xvZy5jOjExOTcKK21zZ2lkICJkaXIiCittc2dzdHIgImRpciIKKworIzogYnVpbHRpbi9mZXRjaC5jOjEwMwogbXNnaWQgInByZXBlbmQgdGhpcyB0byBzdWJtb2R1bGUgcGF0aCBvdXRwdXQiCi1tc2dzdHIgIiIKK21zZ3N0ciAicHLDqWZpeGVyIGNlY2kgw6AgbGEgc29ydGllIGR1IGNoZW1pbiBkdSBzb3VzLW1vZHVsZSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkyCisjOiBidWlsdGluL2ZldGNoLmM6MTA2CiBtc2dpZCAiZGVmYXVsdCBtb2RlIGZvciByZWN1cnNpb24iCi1tc2dzdHIgIiIKK21zZ3N0ciAibW9kZSBwYXIgZMOpZmF1dCBwb3VyIGxhIHLDqWN1cnNpb24iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyMDQKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyMzYKIG1zZ2lkICJDb3VsZG4ndCBmaW5kIHJlbW90ZSByZWYgSEVBRCIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbGEgcsOpZsOpcmVuY2UgSEVBRCBkaXN0YW50ZSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI1NworIzogYnVpbHRpbi9mZXRjaC5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJXMgbm90IGZvdW5kIgotbXNnc3RyICIiCittc2dzdHIgIm9iamV0ICVzIG5vbiB0cm91dsOpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjYyCisjOiBidWlsdGluL2ZldGNoLmM6Mjk1CiBtc2dpZCAiW3VwIHRvIGRhdGVdIgotbXNnc3RyICIiCittc2dzdHIgIlvDoCBqb3VyXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI3NgorIzogYnVpbHRpbi9mZXRjaC5jOjMwOQogIywgYy1mb3JtYXQKIG1zZ2lkICIhICUtKnMgJS0qcyAtPiAlcyAgKGNhbid0IGZldGNoIGluIGN1cnJlbnQgYnJhbmNoKSIKLW1zZ3N0ciAiIgorbXNnc3RyICIhICUtKnMgJS0qcyAtPiAlcyAgKGltcG9zc2libGUgZGUgcsOpY3Vww6lyZXIgbGEgYnJhbmNoZSBhY3R1ZWxsZSkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyNzcgYnVpbHRpbi9mZXRjaC5jOjM2MworIzogYnVpbHRpbi9mZXRjaC5jOjMxMCBidWlsdGluL2ZldGNoLmM6Mzk2CiBtc2dpZCAiW3JlamVjdGVkXSIKLW1zZ3N0ciAiIgorbXNnc3RyICJbcmVqZXTDqV0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyODgKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjEKIG1zZ2lkICJbdGFnIHVwZGF0ZV0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiW21pc2Ugw6Agam91ciBkZSBsJ8OpdGlxdWV0dGVdIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjkwIGJ1aWx0aW4vZmV0Y2guYzozMjUgYnVpbHRpbi9mZXRjaC5jOjM0MworIzogYnVpbHRpbi9mZXRjaC5jOjMyMyBidWlsdGluL2ZldGNoLmM6MzU4IGJ1aWx0aW4vZmV0Y2guYzozNzYKIG1zZ2lkICIgICh1bmFibGUgdG8gdXBkYXRlIGxvY2FsIHJlZikiCi1tc2dzdHIgIiIKK21zZ3N0ciAiICAoaW1wb3NzaWJsZSBkZSBtZXR0cmUgw6Agam91ciBsYSByw6lmw6lyZW5jZSBsb2NhbGUpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzA4CisjOiBidWlsdGluL2ZldGNoLmM6MzQxCiBtc2dpZCAiW25ldyB0YWddIgotbXNnc3RyICIiCittc2dzdHIgIltub3V2ZWxsZSDDqXRpcXVldHRlXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMxMQorIzogYnVpbHRpbi9mZXRjaC5jOjM0NAogbXNnaWQgIltuZXcgYnJhbmNoXSIKLW1zZ3N0ciAiIgorbXNnc3RyICJbbm91dmVsbGUgYnJhbmNoZV0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMTQKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNDcKIG1zZ2lkICJbbmV3IHJlZl0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiW25vdXZlbGxlIHLDqWbDqXJlbmNlXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM1OQorIzogYnVpbHRpbi9mZXRjaC5jOjM5MgogbXNnaWQgInVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmIgotbXNnc3RyICIiCittc2dzdHIgImltcG9zc2libGUgZGUgbWV0dHJlIMOgIGpvdXIgbGEgcsOpZsOpcmVuY2UgbG9jYWxlIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzU5CisjOiBidWlsdGluL2ZldGNoLmM6MzkyCiBtc2dpZCAiZm9yY2VkIHVwZGF0ZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJtaXNlIMOgIGpvdXIgZm9yY8OpZSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM2NQorIzogYnVpbHRpbi9mZXRjaC5jOjM5OAogbXNnaWQgIihub24tZmFzdC1mb3J3YXJkKSIKLW1zZ3N0ciAiIgorbXNnc3RyICIocGFzIGQnYXZhbmNlIHJhcGlkZSkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozOTYgYnVpbHRpbi9mZXRjaC5jOjY4OAorIzogYnVpbHRpbi9mZXRjaC5jOjQyOSBidWlsdGluL2ZldGNoLmM6NzM1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlc1xuIgogbXNnc3RyICJpbXBvc3NpYmxlIGQnb3V2cmlyICVzIDogJXNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjQwNQorIzogYnVpbHRpbi9mZXRjaC5jOjQzOAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzXG4iCiBtc2dzdHIgIiVzIG4nYSBwYXMgZW52b3nDqSB0b3VzIGxlcyBvYmpldHMgbsOpY2Vzc2FpcmVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo0OTEKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRnJvbSAlLipzXG4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiRGVwdWlzICUuKnNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjUwMgorIzogYnVpbHRpbi9mZXRjaC5jOjU0OAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAic29tZSBsb2NhbCByZWZzIGNvdWxkIG5vdCBiZSB1cGRhdGVkOyB0cnkgcnVubmluZ1xuIgogIiAnZ2l0IHJlbW90ZSBwcnVuZSAlcycgdG8gcmVtb3ZlIGFueSBvbGQsIGNvbmZsaWN0aW5nIGJyYW5jaGVzIgogbXNnc3RyICIiCisiZGVzIHLDqWbDqXJlbmNlcyBsb2NhbGVzIG4nb250IHBhcyBwdSDDqnRyZSBtaXNlcyDDoCBqb3VyIDsgZXNzYXlleiBkZSBsYW5jZXJcbiIKKyIgJ2dpdCByZW1vdGUgcHJ1bmUgJXMnIHBvdXIgc3VwcHJpbWVyIGRlcyBicmFuY2hlcyBhbmNpZW5uZXMgZW4gY29uZmxpdCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU1MgorIzogYnVpbHRpbi9mZXRjaC5jOjU5OAogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAoJXMgd2lsbCBiZWNvbWUgZGFuZ2xpbmcpIgotbXNnc3RyICIiCittc2dzdHIgIiAgICglcyBzZXJhIGVuIHN1c3BlbnMpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTUzCisjOiBidWlsdGluL2ZldGNoLmM6NTk5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICglcyBoYXMgYmVjb21lIGRhbmdsaW5nKSIKLW1zZ3N0ciAiIgorbXNnc3RyICIgICAoJXMgZXN0IGRldmVudSBlbiBzdXNwZW5zKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU2MAorIzogYnVpbHRpbi9mZXRjaC5jOjYwNgogbXNnaWQgIltkZWxldGVkXSIKLW1zZ3N0ciAiIgorbXNnc3RyICJbc3VwcHJpbcOpXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU2MSBidWlsdGluL3JlbW90ZS5jOjEwNTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo2MDcgYnVpbHRpbi9yZW1vdGUuYzoxMDU1CiBtc2dpZCAiKG5vbmUpIgotbXNnc3RyICIiCittc2dzdHIgIihhdWN1bihlKSkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2NzgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVmdXNpbmcgdG8gZmV0Y2ggaW50byBjdXJyZW50IGJyYW5jaCAlcyBvZiBub24tYmFyZSByZXBvc2l0b3J5IgotbXNnc3RyICIiCittc2dzdHIgIlJlZnVzIGRlIHLDqWN1cMOpcmVyIGRhbnMgbGEgYnJhbmNoZSBjb3VyYW50ICVzIGQndW4gZMOpcMO0dCBub24gbnUiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3MTIKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gZmV0Y2ggZnJvbSAlcyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2ZldGNoLmM6Nzg5CisjOiBidWlsdGluL2ZldGNoLmM6NzQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiTGEgdmFsZXVyIFwiJTIkc1wiIGRlIGwnb3B0aW9uIFwiJTEkc1wiIGVzdCBpbnZhbGlkZSBwb3VyICUzJHMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3OTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3NDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3B0aW9uIFwiJXNcIiBpcyBpZ25vcmVkIGZvciAlc1xuIgotbXNnc3RyICIiCittc2dzdHIgIkwnb3B0aW9uIFwiJXNcIiBlc3QgaWdub3LDqWUgcG91ciAlc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODk0CisjOiBidWlsdGluL2ZldGNoLmM6ODAxCisjLCBjLWZvcm1hdAorbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGZldGNoIGZyb20gJXMiCittc2dzdHIgIkplIG5lIHNhaXMgcGFzIHLDqWN1cMOpcmVyIGRlcHVpcyAlcyIKKworIzogYnVpbHRpbi9mZXRjaC5jOjk3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJGZXRjaGluZyAlc1xuIgotbXNnc3RyICIiCittc2dzdHIgIlLDqWN1cMOpcmF0aW9uIGRlICVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OTYgYnVpbHRpbi9yZW1vdGUuYzoxMDAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NzggYnVpbHRpbi9yZW1vdGUuYzoxMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZldGNoICVzIgotbXNnc3RyICIiCittc2dzdHIgIkltcG9zc2libGUgZGUgcsOpY3Vww6lyZXIgJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5OTcKIG1zZ2lkICIiCiAiTm8gcmVtb3RlIHJlcG9zaXRvcnkgc3BlY2lmaWVkLiAgUGxlYXNlLCBzcGVjaWZ5IGVpdGhlciBhIFVSTCBvciBhXG4iCiAicmVtb3RlIG5hbWUgZnJvbSB3aGljaCBuZXcgcmV2aXNpb25zIHNob3VsZCBiZSBmZXRjaGVkLiIKIG1zZ3N0ciAiIgorIkF1Y3VuIGTDqXDDtHQgZGlzdGFudCBzcMOpY2lmacOpLiBWZXVpbGxleiBzcMOpY2lmaWVyIHVuZSBVUkwgb3UgdW4gbm9tXG4iCisiZGlzdGFudCBkZXB1aXMgbGVzcXVlbHMgbGVzIG5vdXZlbGxlcyByw6l2aXNpb25zIGRldnJhaWVudCDDqnRyZSByw6ljdXDDqXLDqWVzLiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkzNQorIzogYnVpbHRpbi9mZXRjaC5jOjEwMjAKIG1zZ2lkICJZb3UgbmVlZCB0byBzcGVjaWZ5IGEgdGFnIG5hbWUuIgotbXNnc3RyICIiCittc2dzdHIgIlZvdXMgZGV2ZXogc3DDqWNpZmllciB1biBub20gZCfDqXRpcXVldHRlLiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjk4MQorIzogYnVpbHRpbi9mZXRjaC5jOjEwNjgKIG1zZ2lkICItLWRlcHRoIGFuZCAtLXVuc2hhbGxvdyBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKLW1zZ3N0ciAiIgorbXNnc3RyICItLWRlcHRoIGV0IC0tdW5zaGFsbG93IG5lIHBldXZlbnQgcGFzIMOqdHJlIHV0aWxpc8OpcyBlbnNlbWJsZSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjk4MworIzogYnVpbHRpbi9mZXRjaC5jOjEwNzAKIG1zZ2lkICItLXVuc2hhbGxvdyBvbiBhIGNvbXBsZXRlIHJlcG9zaXRvcnkgZG9lcyBub3QgbWFrZSBzZW5zZSIKLW1zZ3N0ciAiIgorbXNnc3RyICItLXVuc2hhbGxvdyBzdXIgdW4gZMOpcMO0dCBjb21wbGV0IG4nYSBwYXMgZGUgc2VucyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMDIKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDg5CiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgdGFrZSBhIHJlcG9zaXRvcnkgYXJndW1lbnQiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZmV0Y2ggLS1hbGwgbidhY2NlcHRlIHBhcyBkJ2FyZ3VtZW50IGRlIGTDqXDDtHQiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDA0CisjOiBidWlsdGluL2ZldGNoLmM6MTA5MQogbXNnaWQgImZldGNoIC0tYWxsIGRvZXMgbm90IG1ha2Ugc2Vuc2Ugd2l0aCByZWZzcGVjcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJmZXRjaCAtLWFsbCBuJ2EgcGFzIGRlIHNlbnMgYXZlYyBkZXMgc3DDqWNpZmljYXRpb25zIGRlIHLDqWbDqXJlbmNlIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAxNQorIzogYnVpbHRpbi9mZXRjaC5jOjExMDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gc3VjaCByZW1vdGUgb3IgcmVtb3RlIGdyb3VwOiAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJkaXN0YW50IG91IGdyb3VwZSBkaXN0YW50IGluZXhpc3RhbnQgOiAlcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMjMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMTEwCiBtc2dpZCAiRmV0Y2hpbmcgYSBncm91cCBhbmQgc3BlY2lmeWluZyByZWZzcGVjcyBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICIiCisiTGEgcsOpY3Vww6lyYXRpb24gZCd1biBncm91cGUgZXQgbGVzIHNww6ljaWZpY2F0aW9ucyBkZSByw6lmw6lyZW5jZSBuJ29udCBwYXMgZGUgIgorInNlbnMiCiAKICM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjEzCiBtc2dpZCAiZ2l0IGZtdC1tZXJnZS1tc2cgWy1tIDxtZXNzYWdlPl0gWy0tbG9nWz08bj5dfC0tbm8tbG9nXSBbLS1maWxlIDxmaWxlPl0iCiBtc2dzdHIgIiIKKyJnaXQgZm10LW1lcmdlLW1zZyBbLW0gPG1lc3NhZ2U+XSBbLS1sb2dbPTxuPl18LS1uby1sb2ddIFstLWZpbGUgPGZpY2hpZXI+XSIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzIGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NiBidWlsdGluL2dyZXAuYzo3MDEKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODggYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NSBidWlsdGluL3Nob3ctcmVmLmM6MTc1Ci0jOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTMzIHBhcnNlLW9wdGlvbnMuaDoyMzkKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MyBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjYgYnVpbHRpbi9ncmVwLmM6NzAyCisjOiBidWlsdGluL21lcmdlLmM6MjAzIGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUgYnVpbHRpbi9zaG93LXJlZi5jOjE3OAorIzogYnVpbHRpbi90YWcuYzo0NDYgcGFyc2Utb3B0aW9ucy5oOjEzNSBwYXJzZS1vcHRpb25zLmg6MjQ1CiBtc2dpZCAibiIKLW1zZ3N0ciAiIgorbXNnc3RyICJuIgogCiAjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjQKIG1zZ2lkICJwb3B1bGF0ZSBsb2cgd2l0aCBhdCBtb3N0IDxuPiBlbnRyaWVzIGZyb20gc2hvcnRsb2ciCi1tc2dzdHIgIiIKK21zZ3N0ciAicGV1cGxlciBsZSBqb3VybmFsIGF2ZWMgYXUgcGx1cyA8bj4gw6lsw6ltZW50cyBkZXB1aXMgbGUgam91cm5hbCBjb3VydCIKIAogIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY3CiBtc2dpZCAiYWxpYXMgZm9yIC0tbG9nIChkZXByZWNhdGVkKSIKLW1zZ3N0ciAiIgorbXNnc3RyICJhbGlhcyBwb3VyIC0tbG9nIChvYnNvbMOodGUpIgogCiAjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NzAKIG1zZ2lkICJ0ZXh0IgotbXNnc3RyICIiCittc2dzdHIgInRleHRlIgogCiAjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NzEKIG1zZ2lkICJ1c2UgPHRleHQ+IGFzIHN0YXJ0IG9mIG1lc3NhZ2UiCi1tc2dzdHIgIiIKK21zZ3N0ciAidXRpbGlzZXIgPHRleHRlPiBjb21tZSBkw6lidXQgZGUgbWVzc2FnZSIKIAogIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjcyCiBtc2dpZCAiZmlsZSB0byByZWFkIGZyb20iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZmljaGllciBkJ2/DuSBsaXJlIgogCi0jOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjk3OQorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5OTUKIG1zZ2lkICJnaXQgZm9yLWVhY2gtcmVmIFtvcHRpb25zXSBbPHBhdHRlcm4+XSIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgZm9yLWVhY2gtcmVmIFtvcHRpb25zXSBbPG1vdGlmPl0iCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTk0CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMTAKIG1zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHNoZWxscyIKLW1zZ3N0ciAiIgorbXNnc3RyICLDqWNoYXBwZXIgbGVzIGNoYW1wcyByw6lzZXJ2w6lzIHBvdXIgbGVzIGludGVycHLDqXRldXJzIGRlIGNvbW1hbmRlcyIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5OTYKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAxMgogbXNnaWQgInF1b3RlIHBsYWNlaG9sZGVycyBzdWl0YWJseSBmb3IgcGVybCIKLW1zZ3N0ciAiIgorbXNnc3RyICLDqWNoYXBwZXIgbGVzIGNoYW1wcyByw6lzZXJ2w6lzIHBvdXIgcGVybCIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5OTgKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAxNAogbXNnaWQgInF1b3RlIHBsYWNlaG9sZGVycyBzdWl0YWJseSBmb3IgcHl0aG9uIgotbXNnc3RyICIiCittc2dzdHIgIsOpY2hhcHBlciBsZXMgY2hhbXBzIHLDqXNlcnbDqXMgcG91ciBweXRob24iCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwMAorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDE2CiBtc2dpZCAicXVvdGUgcGxhY2Vob2xkZXJzIHN1aXRhYmx5IGZvciB0Y2wiCi1tc2dzdHIgIiIKK21zZ3N0ciAiw6ljaGFwcGVyIGxlcyBjaGFtcHMgcsOpc2VydsOpcyBwb3VyIHRjbCIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDAzCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMTkKIG1zZ2lkICJzaG93IG9ubHkgPG4+IG1hdGNoZWQgcmVmcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJuJ2FmZmljaGVyIHF1ZSA8bj4gcsOpZsOpcmVuY2VzIGNvcnJlc3BvbmRhbnQiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwNAorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDIwCiBtc2dpZCAiZm9ybWF0IgotbXNnc3RyICIiCittc2dzdHIgImZvcm1hdCIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA0CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMjAKIG1zZ2lkICJmb3JtYXQgdG8gdXNlIGZvciB0aGUgb3V0cHV0IgotbXNnc3RyICIiCittc2dzdHIgImZvcm1hdCDDoCB1dGlsaXNlciBwb3VyIGxhIHNvcnRpZSIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA1CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMjEKIG1zZ2lkICJrZXkiCi1tc2dzdHIgIiIKK21zZ3N0ciAiY2zDqSIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA2CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMjIKIG1zZ2lkICJmaWVsZCBuYW1lIHRvIHNvcnQgb24iCi1tc2dzdHIgIiIKK21zZ3N0ciAibm9tIGR1IGNoYW1wIHNlcnZhbnQgw6AgdHJpZXIiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYwOAorIzogYnVpbHRpbi9mc2NrLmM6NjA3CiBtc2dpZCAiZ2l0IGZzY2sgW29wdGlvbnNdIFs8b2JqZWN0Pi4uLl0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IGZzY2sgW29wdGlvbnNdIFs8b2JqZXQ+Li4uXSIKKworIzogYnVpbHRpbi9mc2NrLmM6NjEzCittc2dpZCAic2hvdyB1bnJlYWNoYWJsZSBvYmplY3RzIgorbXNnc3RyICJhZmZpY2hlciBsZXMgb2JqZXRzIGluYWNjZXNzaWJsZXMiCiAKICM6IGJ1aWx0aW4vZnNjay5jOjYxNAotbXNnaWQgInNob3cgdW5yZWFjaGFibGUgb2JqZWN0cyIKLW1zZ3N0ciAiIgorbXNnaWQgInNob3cgZGFuZ2xpbmcgb2JqZWN0cyIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIG9iamV0cyBlbiBzdXNwZW5zIgogCiAjOiBidWlsdGluL2ZzY2suYzo2MTUKLW1zZ2lkICJzaG93IGRhbmdsaW5nIG9iamVjdHMiCi1tc2dzdHIgIiIKK21zZ2lkICJyZXBvcnQgdGFncyIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIMOpdGlxdWV0dGVzIgogCiAjOiBidWlsdGluL2ZzY2suYzo2MTYKLW1zZ2lkICJyZXBvcnQgdGFncyIKLW1zZ3N0ciAiIgorbXNnaWQgInJlcG9ydCByb290IG5vZGVzIgorbXNnc3RyICJzaWduYWxlciBsZXMgbsWTdWRzIHJhY2luZXMiCiAKICM6IGJ1aWx0aW4vZnNjay5jOjYxNwotbXNnaWQgInJlcG9ydCByb290IG5vZGVzIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZnNjay5jOjYxOAogbXNnaWQgIm1ha2UgaW5kZXggb2JqZWN0cyBoZWFkIG5vZGVzIgotbXNnc3RyICIiCittc2dzdHIgImNvbnNpZMOpcmVyIGxlcyBvYmpldHMgZGUgbCdpbmRleCBjb21tZSBuxZN1ZHMgdMOqdGUiCisKKyMgdHJhbnNsYXRlZCBmcm9tIG1hbiBwYWdlCisjOiBidWlsdGluL2ZzY2suYzo2MTgKK21zZ2lkICJtYWtlIHJlZmxvZ3MgaGVhZCBub2RlcyAoZGVmYXVsdCkiCittc2dzdHIgImNvbnNpZMOpcmVyIGxlcyByZWZsb2dzIGNvbW1lIG7Fk3VkcyB0w6p0ZSAocGFyIGTDqWZhdXQpIgogCiAjOiBidWlsdGluL2ZzY2suYzo2MTkKLW1zZ2lkICJtYWtlIHJlZmxvZ3MgaGVhZCBub2RlcyAoZGVmYXVsdCkiCi1tc2dzdHIgIiIKK21zZ2lkICJhbHNvIGNvbnNpZGVyIHBhY2tzIGFuZCBhbHRlcm5hdGUgb2JqZWN0cyIKK21zZ3N0ciAiaW5zcGVjdGVyIGF1c3NpIGxlcyBvYmpldHMgcGFjayBldCBhbHRlcm5hdGlmcyIKIAogIzogYnVpbHRpbi9mc2NrLmM6NjIwCi1tc2dpZCAiYWxzbyBjb25zaWRlciBwYWNrcyBhbmQgYWx0ZXJuYXRlIG9iamVjdHMiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9mc2NrLmM6NjIxCiBtc2dpZCAiZW5hYmxlIG1vcmUgc3RyaWN0IGNoZWNraW5nIgotbXNnc3RyICIiCittc2dzdHIgImFjdGl2ZXIgdW5lIHbDqXJpZmljYXRpb24gcGx1cyBzdHJpY3QiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYyMworIzogYnVpbHRpbi9mc2NrLmM6NjIyCiBtc2dpZCAid3JpdGUgZGFuZ2xpbmcgb2JqZWN0cyBpbiAuZ2l0L2xvc3QtZm91bmQiCi1tc2dzdHIgIiIKK21zZ3N0ciAiw6ljcmlyZSBsZXMgb2JqZXRzIGVuIHN1c3BlbnMgZGFucyAuZ2l0L2xvc3QtZm91bmQiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYyNCBidWlsdGluL3BydW5lLmM6MTM0CisjOiBidWlsdGluL2ZzY2suYzo2MjMgYnVpbHRpbi9wcnVuZS5jOjEzNAogbXNnaWQgInNob3cgcHJvZ3Jlc3MiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZXIgbGEgcHJvZ3Jlc3Npb24iCiAKLSM6IGJ1aWx0aW4vZ2MuYzoyMgorIzogYnVpbHRpbi9nYy5jOjIzCiBtc2dpZCAiZ2l0IGdjIFtvcHRpb25zXSIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgZ2MgW29wdGlvbnNdIgogCi0jOiBidWlsdGluL2djLmM6NjMKKyM6IGJ1aWx0aW4vZ2MuYzo3OQogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkICVzOiAnJXMnIgotbXNnc3RyICIiCittc2dzdHIgIiVzIGludmFsaWRlIDogJyVzJyIKIAotIzogYnVpbHRpbi9nYy5jOjkwCisjOiBidWlsdGluL2djLmM6MTA2CiAjLCBjLWZvcm1hdAogbXNnaWQgImluc2FuZWx5IGxvbmcgb2JqZWN0IGRpcmVjdG9yeSAlLipzIgotbXNnc3RyICIiCittc2dzdHIgIm9iamV0IHLDqXBlcnRvaXJlIGTDqW1lbnRpZWxsZW1lbnQgbG9uZyAlLipzIgogCi0jOiBidWlsdGluL2djLmM6MTc5CisjOiBidWlsdGluL2djLmM6MjYxCiBtc2dpZCAicHJ1bmUgdW5yZWZlcmVuY2VkIG9iamVjdHMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiw6lsaW1pbmVyIGxlcyBvYmpldHMgbm9uIHLDqWbDqXJlbmPDqXMiCiAKLSM6IGJ1aWx0aW4vZ2MuYzoxODEKKyM6IGJ1aWx0aW4vZ2MuYzoyNjMKIG1zZ2lkICJiZSBtb3JlIHRob3JvdWdoIChpbmNyZWFzZWQgcnVudGltZSkiCi1tc2dzdHIgIiIKK21zZ3N0ciAiw6p0cmUgcGx1cyBjb25zY2llbmNpZXV4IChkdXLDqWUgZGUgdHJhaXRlbWVudCBhbGxvbmfDqWUpIgogCi0jOiBidWlsdGluL2djLmM6MTgyCisjOiBidWlsdGluL2djLmM6MjY0CiBtc2dpZCAiZW5hYmxlIGF1dG8tZ2MgbW9kZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJhY3RpdmVyIGxlIG1vZGUgYXV0by1nYyIKIAotIzogYnVpbHRpbi9nYy5jOjIyMgorIzogYnVpbHRpbi9nYy5jOjI2NQorbXNnaWQgImZvcmNlIHJ1bm5pbmcgZ2MgZXZlbiBpZiB0aGVyZSBtYXkgYmUgYW5vdGhlciBnYyBydW5uaW5nIgorbXNnc3RyICJmb3JjZXIgbGUgbGFuY2VtZW50IGR1IHJhbWFzc2UtbWlldHRlcyBtw6ptZSBzaSB1biBhdXRyZSByYW1hc3NlLW1pZXR0ZXMgdG91cm5lIGTDqWrDoCIKKworIzogYnVpbHRpbi9nYy5jOjMwNQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQXV0byBwYWNraW5nIHRoZSByZXBvc2l0b3J5IGZvciBvcHRpbXVtIHBlcmZvcm1hbmNlLiBZb3UgbWF5IGFsc29cbiIKICJydW4gXCJnaXQgZ2NcIiBtYW51YWxseS4gU2VlIFwiZ2l0IGhlbHAgZ2NcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKIG1zZ3N0ciAiIgorIkNvbXByZXNzaW9uIGF1dG9tYXRpcXVlIGR1IGTDqXDDtHQgcG91ciB1bmUgcGVyZm9ybWFuY2Ugb3B0aW11bS4gVm91cyBwb3V2ZXogIgorImF1c3NpXG4iCisibGFuY2VyIFwiZ2l0IGdjXCIgbWFudWVsbGVtZW50LiBWb2lyIFwiZ2l0IGhlbHAgZ2NcIiBwb3VyIHBsdXMgIgorImQnaW5mb3JtYXRpb24uXG4iCiAKLSM6IGJ1aWx0aW4vZ2MuYzoyNDkKKyMuIGJlIHF1aWV0IG9uIC0tYXV0bworIzogYnVpbHRpbi9nYy5jOjMxNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiZ2MgaXMgYWxyZWFkeSBydW5uaW5nIG9uIG1hY2hpbmUgJyVzJyBwaWQgJTxQUkl1TUFYPiAodXNlIC0tZm9yY2UgaWYgbm90KSIKK21zZ3N0ciAidW4gcmFtYXNzZS1taWV0dGVzIGVzdCBkw6lqw6AgZW4gY291cnMgc3VyIGxhIG1hY2hpbmUgJyVzJyBwaWQgJTxQUkl1TUFYPiAodXRpbGlzZXogLS1mb3JjZSBzaSBjZSBuJ2VzdCBwYXMgbGUgY2FzKSIKKworIzogYnVpbHRpbi9nYy5jOjM0MAogbXNnaWQgIiIKICJUaGVyZSBhcmUgdG9vIG1hbnkgdW5yZWFjaGFibGUgbG9vc2Ugb2JqZWN0czsgcnVuICdnaXQgcHJ1bmUnIHRvIHJlbW92ZSB0aGVtLiIKIG1zZ3N0ciAiIgorIklsIHkgYSB0cm9wIGQnb2JqZXRzIHNldWxzIGluYWNjZXNzaWJsZXMgOyBsYW5jZXogJ2dpdCBwcnVuZScgcG91ciBsZXMgIgorInN1cHByaW1lci4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjIyCisjOiBidWlsdGluL2dyZXAuYzoyMwogbXNnaWQgImdpdCBncmVwIFtvcHRpb25zXSBbLWVdIDxwYXR0ZXJuPiBbPHJldj4uLi5dIFtbLS1dIDxwYXRoPi4uLl0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IGdyZXAgW29wdGlvbnNdIFstZV0gPG1vdGlmPiBbPHLDqXZpc2lvbj4uLi5dIFtbLS1dIDxjaGVtaW4+Li4uXSIKIAotIzogYnVpbHRpbi9ncmVwLmM6MjE3CisjOiBidWlsdGluL2dyZXAuYzoyMTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ3JlcDogZmFpbGVkIHRvIGNyZWF0ZSB0aHJlYWQ6ICVzIgotbXNnc3RyICIiCittc2dzdHIgImdyZXAgOiDDqWNoZWMgZGUgY3LDqWF0aW9uIGR1IGZpbDogJXMiCiAKICM6IGJ1aWx0aW4vZ3JlcC5jOjM2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gY2hkaXI6ICVzIgotbXNnc3RyICIiCittc2dzdHIgIsOJY2hlYyBkZSBjaGRpcjogJXMiCiAKICM6IGJ1aWx0aW4vZ3JlcC5jOjQ0MyBidWlsdGluL2dyZXAuYzo0NzgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgdHJlZSAoJXMpIgotbXNnc3RyICIiCittc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSBsJ2FyYnJlICglcykiCiAKICM6IGJ1aWx0aW4vZ3JlcC5jOjQ5MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gZ3JlcCBmcm9tIG9iamVjdCBvZiB0eXBlICVzIgotbXNnc3RyICIiCittc2dzdHIgImltcG9zc2libGUgZGUgZmFpcmUgdW4gZ3JlcCBzdXIgdW4gb2JqZXQgZGUgdHlwZSAlcyIKIAogIzogYnVpbHRpbi9ncmVwLmM6NTUxCiAjLCBjLWZvcm1hdAogbXNnaWQgInN3aXRjaCBgJWMnIGV4cGVjdHMgYSBudW1lcmljYWwgdmFsdWUiCi1tc2dzdHIgIiIKK21zZ3N0ciAibCdvcHRpb24gJyVjJyBhdHRlbmQgdW4gdmFsZXVyIG51bcOpcmlxdWUiCiAKICM6IGJ1aWx0aW4vZ3JlcC5jOjU2OAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAnJXMnIgotbXNnc3RyICIiCittc2dzdHIgImltcG9zc2libGUgZCdvdXZyaXIgJyVzJyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQzCisjOiBidWlsdGluL2dyZXAuYzo2NDIKIG1zZ2lkICJzZWFyY2ggaW4gaW5kZXggaW5zdGVhZCBvZiBpbiB0aGUgd29yayB0cmVlIgotbXNnc3RyICIiCittc2dzdHIgInJlY2hlcmNoZXIgZGFucyBsJ2luZGV4IHBsdXTDtHQgcXVlIGRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQ1CisjOiBidWlsdGluL2dyZXAuYzo2NDQKIG1zZ2lkICJmaW5kIGluIGNvbnRlbnRzIG5vdCBtYW5hZ2VkIGJ5IGdpdCIKLW1zZ3N0ciAiIgorbXNnc3RyICJyZWNoZXJjaGVyIGRhbnMgbGVzIGNvbnRlbnVzIG5vbiBnw6lyw6lzIHBhciBnaXQiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0NworIzogYnVpbHRpbi9ncmVwLmM6NjQ2CiBtc2dpZCAic2VhcmNoIGluIGJvdGggdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgotbXNnc3RyICIiCittc2dzdHIgInJlY2hlcmNoZXIgZGFucyBsZXMgZmljaGllcnMgc3VpdmlzIGV0IG5vbi1zdWl2aXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0OQorIzogYnVpbHRpbi9ncmVwLmM6NjQ4CiBtc2dpZCAic2VhcmNoIGFsc28gaW4gaWdub3JlZCBmaWxlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJyZWNoZXJjaGVyIGF1c3NpIGRhbnMgbGVzIGZpY2hpZXJzIGlnbm9yw6lzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1MQogbXNnaWQgInNob3cgbm9uLW1hdGNoaW5nIGxpbmVzIgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIGxlcyBsaWduZXMgcXVpIG5lIGNvcnJlc3BvbmRlbnQgcGFzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1MwogbXNnaWQgImNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmciCi1tc2dzdHIgIiIKK21zZ3N0ciAiY29ycmVzcG9uZGFuY2UgaW5zZW5zaWJsZSDDoCBsYSBjYXNzZSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjU2CisjOiBidWlsdGluL2dyZXAuYzo2NTUKIG1zZ2lkICJtYXRjaCBwYXR0ZXJucyBvbmx5IGF0IHdvcmQgYm91bmRhcmllcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJyZWNoZXJjaGVyIGxlcyBtb3RpZnMgYXV4IHPDqXBhcmF0ZXVycyBkZSBtb3RzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1NwogbXNnaWQgInByb2Nlc3MgYmluYXJ5IGZpbGVzIGFzIHRleHQiCi1tc2dzdHIgIiIKK21zZ3N0ciAidHJhaXRlciBsZXMgZmljaGllcnMgYmluYWlyZXMgY29tbWUgdGV4dGUiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2MAorIzogYnVpbHRpbi9ncmVwLmM6NjU5CiBtc2dpZCAiZG9uJ3QgbWF0Y2ggcGF0dGVybnMgaW4gYmluYXJ5IGZpbGVzIgotbXNnc3RyICIiCittc2dzdHIgIm5lIHBhcyBjaGVyY2hlciBsZXMgbW90aWZzIGRhbnMgbGVzIGZpY2hpZXJzIGJpbmFpcmVzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2MgorbXNnaWQgInByb2Nlc3MgYmluYXJ5IGZpbGVzIHdpdGggdGV4dGNvbnYgZmlsdGVycyIKK21zZ3N0ciAidHJhaXRlciBsZXMgZmljaGllcnMgYmluYWlyZXMgYXZlYyBsZXMgZmlsdHJlcyB0ZXh0Y29udiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjY0CiBtc2dpZCAiZGVzY2VuZCBhdCBtb3N0IDxkZXB0aD4gbGV2ZWxzIgotbXNnc3RyICIiCittc2dzdHIgImRlc2NlbmRyZSBhdSBwbHVzIGRlIDxwcm9mb25kZXVyPiBkYW5zIGwnYXJib3Jlc2NlbmNlIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2OAogbXNnaWQgInVzZSBleHRlbmRlZCBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zIgotbXNnc3RyICIiCittc2dzdHIgInV0aWxpc2VyIGRlcyBleHByZXNzaW9ucyByw6lndWxpw6hyZXMgw6l0ZW5kdWVzIFBPU0lYIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3MQogbXNnaWQgInVzZSBiYXNpYyBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zIChkZWZhdWx0KSIKLW1zZ3N0ciAiIgorbXNnc3RyICJ1dGlsaXNlciBkZXMgZXhwcmVzc2lvbnMgcsOpZ3VsacOocmVzIGJhc2lxdWVzIFBPU0lYIChwYXIgZMOpZmF1dCkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3MworIzogYnVpbHRpbi9ncmVwLmM6Njc0CiBtc2dpZCAiaW50ZXJwcmV0IHBhdHRlcm5zIGFzIGZpeGVkIHN0cmluZ3MiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW50ZXJwcsOpdGVyIGxlcyBtb3RpZnMgY29tbWUgZGUgY2hhw65uZXMgZml4ZXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3NgorIzogYnVpbHRpbi9ncmVwLmM6Njc3CiBtc2dpZCAidXNlIFBlcmwtY29tcGF0aWJsZSByZWd1bGFyIGV4cHJlc3Npb25zIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3OQotbXNnaWQgInNob3cgbGluZSBudW1iZXJzIgotbXNnc3RyICIiCittc2dzdHIgInV0aWxpc2VyIGRlcyBleHByZXNzaW9ucyByw6lndWxpw6hyZXMgY29tcGF0aWJsZXMgYXZlYyBQZXJsIgogCiAjOiBidWlsdGluL2dyZXAuYzo2ODAKLW1zZ2lkICJkb24ndCBzaG93IGZpbGVuYW1lcyIKLW1zZ3N0ciAiIgorbXNnaWQgInNob3cgbGluZSBudW1iZXJzIgorbXNnc3RyICJhZmZpY2hlciBsZXMgbnVtw6lyb3MgZGUgbGlnbmUiCiAKICM6IGJ1aWx0aW4vZ3JlcC5jOjY4MQorbXNnaWQgImRvbid0IHNob3cgZmlsZW5hbWVzIgorbXNnc3RyICJuZSBwYXMgcGFzIGFmZmljaGVyIGxlcyBub21zIGRlIGZpY2hpZXIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MgogbXNnaWQgInNob3cgZmlsZW5hbWVzIgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIGxlcyBub21zIGRlIGZpY2hpZXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MworIzogYnVpbHRpbi9ncmVwLmM6Njg0CiBtc2dpZCAic2hvdyBmaWxlbmFtZXMgcmVsYXRpdmUgdG8gdG9wIGRpcmVjdG9yeSIKLW1zZ3N0ciAiIgorbXNnc3RyICJhZmZpY2hlciBsZXMgbm9tcyBkZSBmaWNoaWVycyByZWxhdGl2ZW1lbnQgYXUgcsOpcGVydG9pcmUgZGUgYmFzZSIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njg1CisjOiBidWlsdGluL2dyZXAuYzo2ODYKIG1zZ2lkICJzaG93IG9ubHkgZmlsZW5hbWVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAibidhZmZpY2hlciBxdWUgbGVzIG5vbXMgZGUgZmljaGllcnMgYXUgbGlldSBkZXMgbGlnbmVzIGNvcnJlc3BvbmRhbnQiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4NworIzogYnVpbHRpbi9ncmVwLmM6Njg4CiBtc2dpZCAic3lub255bSBmb3IgLS1maWxlcy13aXRoLW1hdGNoZXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAic3lub255bWUgcG91ciAtLWZpbGVzLXdpdGgtbWF0Y2hlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjkwCisjOiBidWlsdGluL2dyZXAuYzo2OTEKIG1zZ2lkICJzaG93IG9ubHkgdGhlIG5hbWVzIG9mIGZpbGVzIHdpdGhvdXQgbWF0Y2giCi1tc2dzdHIgIiIKK21zZ3N0ciAibidhZmZpY2hlciBxdWUgbGVzIG5vbXMgZGVzIGZpY2hpZXJzIHNhbnMgY29ycmVzcG9uZGFuY2UiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5MgorIzogYnVpbHRpbi9ncmVwLmM6NjkzCiBtc2dpZCAicHJpbnQgTlVMIGFmdGVyIGZpbGVuYW1lcyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2dyZXAuYzo2OTQKLW1zZ2lkICJzaG93IHRoZSBudW1iZXIgb2YgbWF0Y2hlcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgotbXNnc3RyICIiCittc2dzdHIgImltcHJpbWVyIHVuZSBjYXJhY3TDqHJlIE5VTCBhcHLDqHMgbGUgbm9tcyBkZSBmaWNoaWVyIgogCiAjOiBidWlsdGluL2dyZXAuYzo2OTUKLW1zZ2lkICJoaWdobGlnaHQgbWF0Y2hlcyIKLW1zZ3N0ciAiIgorbXNnaWQgInNob3cgdGhlIG51bWJlciBvZiBtYXRjaGVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCittc2dzdHIgImFmZmljaGVyIGxlIG5vbWJyZSBkZSBjb3JyZXNwb25kYW5jZXMgYXUgbGlldSBkZXMgbGlnbmVzIGNvcnJlc3BvbmRhbnQiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NworIzogYnVpbHRpbi9ncmVwLmM6Njk2Cittc2dpZCAiaGlnaGxpZ2h0IG1hdGNoZXMiCittc2dzdHIgIm1ldHRyZSBlbiDDqXZpZGVuY2UgbGVzIGNvcnJlc3BvbmRhbmNlcyIKKworIzogYnVpbHRpbi9ncmVwLmM6Njk4CiBtc2dpZCAicHJpbnQgZW1wdHkgbGluZSBiZXR3ZWVuIG1hdGNoZXMgZnJvbSBkaWZmZXJlbnQgZmlsZXMiCiBtc2dzdHIgIiIKKyJpbXByaW1lciB1bmUgbGlnbmUgdmlkZSBlbnRyZSBsZXMgY29ycmVzcG9uZGFuY2VzIGRlIGZpY2hpZXJzIGRpZmbDqXJlbnRzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwMAogbXNnaWQgInNob3cgZmlsZW5hbWUgb25seSBvbmNlIGFib3ZlIG1hdGNoZXMgZnJvbSBzYW1lIGZpbGUiCiBtc2dzdHIgIiIKKyJhZmZpY2hlciBsZSBub20gZGUgZmljaGllciB1bmUgZm9pcyBhdSBkZXNzdXMgZGVzIGNvcnJlc3BvbmRhbmNlcyBkdSBtw6ptZSAiCisiZmljaGllciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzAyCisjOiBidWlsdGluL2dyZXAuYzo3MDMKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGJlZm9yZSBhbmQgYWZ0ZXIgbWF0Y2hlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJhZmZpY2hlciA8bj4gbGlnbmVzIGRlIGNvbnRleHRlIGF2YW50IGV0IGFwcsOocyBsZXMgY29ycmVzcG9uZGFuY2VzIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNgogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYmVmb3JlIG1hdGNoZXMiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9ncmVwLmM6NzA3Ci1tc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBhZnRlciBtYXRjaGVzIgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIDxuPiBsaWduZXMgZGUgY29udGV4dGUgYXZhbnQgbGVzIGNvcnJlc3BvbmRhbmNlcyIKIAogIzogYnVpbHRpbi9ncmVwLmM6NzA4Ci1tc2dpZCAic2hvcnRjdXQgZm9yIC1DIE5VTSIKLW1zZ3N0ciAiIgorbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYWZ0ZXIgbWF0Y2hlcyIKK21zZ3N0ciAiYWZmaWNoZXIgPG4+IGxpZ25lcyBkZSBjb250ZXh0ZSBhcHLDqHMgbGVzIGNvcnJlc3BvbmRhbmNlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzExCisjOiBidWlsdGluL2dyZXAuYzo3MDkKK21zZ2lkICJzaG9ydGN1dCBmb3IgLUMgTlVNIgorbXNnc3RyICJyYWNjb3VyY2kgcG91ciAtQyBOVU0iCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxMgogbXNnaWQgInNob3cgYSBsaW5lIHdpdGggdGhlIGZ1bmN0aW9uIG5hbWUgYmVmb3JlIG1hdGNoZXMiCiBtc2dzdHIgIiIKKyJhZmZpY2hlciB1bmUgbGlnbmUgYXZlYyBsZSBub20gZGUgbGEgZm9uY3Rpb24gYXZhbnQgbGVzIGNvcnJlc3BvbmRhbmNlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzEzCisjOiBidWlsdGluL2dyZXAuYzo3MTQKIG1zZ2lkICJzaG93IHRoZSBzdXJyb3VuZGluZyBmdW5jdGlvbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJhZmZpY2hlciBsYSBmb25jdGlvbiBjb250ZW5hbnRlIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxNwogbXNnaWQgInJlYWQgcGF0dGVybnMgZnJvbSBmaWxlIgotbXNnc3RyICIiCittc2dzdHIgImxpcmUgbGVzIG1vdGlmcyBkZXB1aXMgZmljaGllciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE4CisjOiBidWlsdGluL2dyZXAuYzo3MTkKIG1zZ2lkICJtYXRjaCA8cGF0dGVybj4iCi1tc2dzdHIgIiIKK21zZ3N0ciAicmVjaGVyY2hlciA8bW90aWY+IgogCi0jOiBidWlsdGluL2dyZXAuYzo3MjAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcyMQogbXNnaWQgImNvbWJpbmUgcGF0dGVybnMgc3BlY2lmaWVkIHdpdGggLWUiCi1tc2dzdHIgIiIKK21zZ3N0ciAiY29tYmluZXIgbGVzIG1vdGlmcyBzcMOpY2lmacOpcyBwYXIgLWUiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczMgorIzogYnVpbHRpbi9ncmVwLmM6NzMzCiBtc2dpZCAiaW5kaWNhdGUgaGl0IHdpdGggZXhpdCBzdGF0dXMgd2l0aG91dCBvdXRwdXQiCiBtc2dzdHIgIiIKKyJpbmRpcXVlciBkZXMgY29ycmVzcG9uZGFuY2VzIGF2ZWMgbGUgY29kZSBkZSBzb3J0aWUgbWFpcyBzYW5zIHJpZW4gYWZmaWNoZXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczNAorIzogYnVpbHRpbi9ncmVwLmM6NzM1CiBtc2dpZCAic2hvdyBvbmx5IG1hdGNoZXMgZnJvbSBmaWxlcyB0aGF0IG1hdGNoIGFsbCBwYXR0ZXJucyIKIG1zZ3N0ciAiIgorIm4nYWZmaWNoZXIgcXVlIGxlcyBjb3JyZXNwb25kYW5jZXMgZGUgZmljaGllcnMgcXVpIGNvcnJlc3BvbmRlbnQgw6AgdG91cyBsZXMgIgorIm1vdGlmcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzM2CisjOiBidWlsdGluL2dyZXAuYzo3MzcKIG1zZ2lkICJzaG93IHBhcnNlIHRyZWUgZm9yIGdyZXAgZXhwcmVzc2lvbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJhZmZpY2hlciBsJ2FyYnJlIGQnYW5hbHlzZSBwb3VyIGxlIG1vdGlmIGdyZXAiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MAorIzogYnVpbHRpbi9ncmVwLmM6NzQxCiBtc2dpZCAicGFnZXIiCi1tc2dzdHIgIiIKK21zZ3N0ciAicGFnaW5ldXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MAorIzogYnVpbHRpbi9ncmVwLmM6NzQxCiBtc2dpZCAic2hvdyBtYXRjaGluZyBmaWxlcyBpbiB0aGUgcGFnZXIiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGZpY2hpZXJzIGNvcnJlc3BvbmRhbnQgZGFucyBsZSBwYWdpbmV1ciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQzCisjOiBidWlsdGluL2dyZXAuYzo3NDQKIG1zZ2lkICJhbGxvdyBjYWxsaW5nIG9mIGdyZXAoMSkgKGlnbm9yZWQgYnkgdGhpcyBidWlsZCkiCi1tc2dzdHIgIiIKK21zZ3N0ciAicGVybWV0dHJlIGwnYXBwZWwgZGUgZ3JlcCgxKSAoaWdub3LDqSBwYXIgY2UgYnVpbGQpIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDQgYnVpbHRpbi9zaG93LXJlZi5jOjE4NAorIzogYnVpbHRpbi9ncmVwLmM6NzQ1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODcKIG1zZ2lkICJzaG93IHVzYWdlIgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIGwndXNhZ2UiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjgxMQorIzogYnVpbHRpbi9ncmVwLmM6ODEyCiBtc2dpZCAibm8gcGF0dGVybiBnaXZlbi4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiYXVjdW4gbW90aWYgZm91cm5pLiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODY2CisjOiBidWlsdGluL2dyZXAuYzo4NzAKIG1zZ2lkICItLW9wZW4tZmlsZXMtaW4tcGFnZXIgb25seSB3b3JrcyBvbiB0aGUgd29ya3RyZWUiCi1tc2dzdHIgIiIKK21zZ3N0ciAiLS1vcGVuLWZpbGVzLWluLXBhZ2VyIG5lIGZvbmN0aW9ubmUgcXVlIHN1ciBsYSBjb3BpZSBkZSB0cmF2YWlsIgogCi0jOiBidWlsdGluL2dyZXAuYzo4ODkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg5MwogbXNnaWQgIi0tY2FjaGVkIG9yIC0tdW50cmFja2VkIGNhbm5vdCBiZSB1c2VkIHdpdGggLS1uby1pbmRleC4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiLS1jYWNoZWQgb3UgLS11bnRyYWNrZWQgbmUgcGV1dmVudCBwYXMgw6p0cmUgdXRpbGlzw6lzIGF2ZWMgLS1uby1pbmRleC4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5NAorIzogYnVpbHRpbi9ncmVwLmM6ODk4CiBtc2dpZCAiLS1uby1pbmRleCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIHJldnMuIgogbXNnc3RyICIiCisiLS1uby1pbmRleCBvdSAtLXVudHJhY2tlZCBuZSBwZXV2ZW50IHBhcyDDqnRyZSB1dGlsaXPDqXMgYXZlYyBkZXMgcsOpdmlzaW9ucy4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5NworIzogYnVpbHRpbi9ncmVwLmM6OTAxCiBtc2dpZCAiLS1bbm8tXWV4Y2x1ZGUtc3RhbmRhcmQgY2Fubm90IGJlIHVzZWQgZm9yIHRyYWNrZWQgY29udGVudHMuIgogbXNnc3RyICIiCisiLS1bbm8tXWV4Y2x1ZGUtc3RhbmRhcmQgbmUgcGV1dCBwYXMgw6p0cmUgdXRpbGlzw6kgYXZlYyBkdSBjb250ZW51IHN1aXZpLiIKIAotIzogYnVpbHRpbi9ncmVwLmM6OTA1CisjOiBidWlsdGluL2dyZXAuYzo5MDkKIG1zZ2lkICJib3RoIC0tY2FjaGVkIGFuZCB0cmVlcyBhcmUgZ2l2ZW4uIgotbXNnc3RyICIiCittc2dzdHIgIi0tY2FjaGVkIGV0IGRlcyBhcmJyZXMgc29udCBmb3VybmlzIGVuIG3Dqm1lIHRlbXBzLiIKIAogIzogYnVpbHRpbi9oYXNoLW9iamVjdC5jOjYwCiBtc2dpZCAiIgogImdpdCBoYXNoLW9iamVjdCBbLXQgPHR5cGU+XSBbLXddIFstLXBhdGg9PGZpbGU+fC0tbm8tZmlsdGVyc10gWy0tc3RkaW5dIFstLV0gIgogIjxmaWxlPi4uLiIKIG1zZ3N0ciAiIgorImdpdCBoYXNoLW9iamVjdCBbLXQgPHR5cGU+XSBbLXddIFstLXBhdGg9PGZpY2hpZXI+fC0tbm8tZmlsdGVyc10gWy0tc3RkaW5dICIKKyJbLS1dIDxmaWNoaWVyPi4uLiIKIAogIzogYnVpbHRpbi9oYXNoLW9iamVjdC5jOjYxCiBtc2dpZCAiZ2l0IGhhc2gtb2JqZWN0ICAtLXN0ZGluLXBhdGhzIDwgPGxpc3Qtb2YtcGF0aHM+IgotbXNnc3RyICIiCittc2dzdHIgImdpdCBoYXNoLW9iamVjdCAgLS1zdGRpbi1wYXRocyA8IDxsaXN0ZS1kZS1jaGVtaW5zPiIKIAogIzogYnVpbHRpbi9oYXNoLW9iamVjdC5jOjcyCiBtc2dpZCAidHlwZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJ0eXBlIgogCiAjOiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzIKIG1zZ2lkICJvYmplY3QgdHlwZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJ0eXBlIGQnb2JqZXQiCiAKICM6IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3MwogbXNnaWQgIndyaXRlIHRoZSBvYmplY3QgaW50byB0aGUgb2JqZWN0IGRhdGFiYXNlIgotbXNnc3RyICIiCittc2dzdHIgIsOpY3JpcmUgbCdvYmpldCBkYW5zIGxhIGJhc2UgZGUgZG9ubsOpZSBkJ29iamV0cyIKIAogIzogYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc0CiBtc2dpZCAicmVhZCB0aGUgb2JqZWN0IGZyb20gc3RkaW4iCi1tc2dzdHIgIiIKK21zZ3N0ciAibGlyZSBsJ29iamV0IGRlcHVpcyBsJ2VudHLDqWUgc3RhbmRhcmQiCiAKICM6IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NgogbXNnaWQgInN0b3JlIGZpbGUgYXMgaXMgd2l0aG91dCBmaWx0ZXJzIgotbXNnc3RyICIiCittc2dzdHIgInN0b2NrZXIgbGUgZmljaGllciB0ZWwgcXVlbCBzYW5zIGZpbHRyYWdlIgogCiAjOiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKIG1zZ2lkICJwcm9jZXNzIGZpbGUgYXMgaXQgd2VyZSBmcm9tIHRoaXMgcGF0aCIKLW1zZ3N0ciAiIgorbXNnc3RyICJ0cmFpdGVyIGxlIGZpY2hpZXIgY29tbWUgcydpbCB2ZW5haXQgZGUgY2UgY2hlbWluIgorCisjOiBidWlsdGluL2hlbHAuYzo0MQorbXNnaWQgInByaW50IGFsbCBhdmFpbGFibGUgY29tbWFuZHMiCittc2dzdHIgImFmZmljaGVyIHRvdXRlcyBsZXMgY29tbWFuZGVzIGRpc3BvbmlibGVzIgorCisjOiBidWlsdGluL2hlbHAuYzo0MgorbXNnaWQgInByaW50IGxpc3Qgb2YgdXNlZnVsIGd1aWRlcyIKK21zZ3N0ciAiYWZmaWNoZXIgdW5lIGxpc3RlIGRlIGd1aWRlcyB1dGlsZXMiCiAKICM6IGJ1aWx0aW4vaGVscC5jOjQzCi1tc2dpZCAicHJpbnQgYWxsIGF2YWlsYWJsZSBjb21tYW5kcyIKLW1zZ3N0ciAiIgorbXNnaWQgInNob3cgbWFuIHBhZ2UiCittc2dzdHIgImFmZmljaGVyIGxhIHBhZ2UgZGUgbWFudWVsIgogCiAjOiBidWlsdGluL2hlbHAuYzo0NAotbXNnaWQgInByaW50IGxpc3Qgb2YgdXNlZnVsIGd1aWRlcyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2hlbHAuYzo0NQotbXNnaWQgInNob3cgbWFuIHBhZ2UiCi1tc2dzdHIgIiIKK21zZ2lkICJzaG93IG1hbnVhbCBpbiB3ZWIgYnJvd3NlciIKK21zZ3N0ciAiYWZmaWNoZXIgbGUgbWFudWVsIGRhbnMgdW4gbmF2aWdhdGV1ciB3ZWIiCiAKICM6IGJ1aWx0aW4vaGVscC5jOjQ2Ci1tc2dpZCAic2hvdyBtYW51YWwgaW4gd2ViIGJyb3dzZXIiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9oZWxwLmM6NDgKIG1zZ2lkICJzaG93IGluZm8gcGFnZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJhZmZpY2hlciBsYSBwYWdlIGluZm8iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjU0CisjOiBidWlsdGluL2hlbHAuYzo1MgogbXNnaWQgImdpdCBoZWxwIFstLWFsbF0gWy0tZ3VpZGVzXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBbY29tbWFuZF0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IGhlbHAgWy0tYWxsXSBbLS1ndWlkZXNdIFstLW1hbnwtLXdlYnwtLWluZm9dIFtjb21tYW5kZV0iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjY2CisjOiBidWlsdGluL2hlbHAuYzo2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnJlY29nbml6ZWQgaGVscCBmb3JtYXQgJyVzJyIKLW1zZ3N0ciAiIgorbXNnc3RyICJmb3JtYXQgZCdhaWRlIG5vbiByZWNvbm51ICclcyciCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjk0CisjOiBidWlsdGluL2hlbHAuYzo5MgogbXNnaWQgIkZhaWxlZCB0byBzdGFydCBlbWFjc2NsaWVudC4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiw6ljaGVjIGRlIGTDqW1hcnJhZ2UgZCdlbWFjc2NsaWVudC4iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjEwNworIzogYnVpbHRpbi9oZWxwLmM6MTA1CiBtc2dpZCAiRmFpbGVkIHRvIHBhcnNlIGVtYWNzY2xpZW50IHZlcnNpb24uIgotbXNnc3RyICIiCittc2dzdHIgIsOpY2hlYyBkJ2FuYWx5c2UgZGUgbGEgdmVyc2lvbiBkJ2VtYWNzY2xpZW50LiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MTE1CisjOiBidWlsdGluL2hlbHAuYzoxMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZW1hY3NjbGllbnQgdmVyc2lvbiAnJWQnIHRvbyBvbGQgKDwgMjIpLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJsYSB2ZXJzaW9uIGQnZW1hY3NjbGllbnQgJyVkJyBlc3QgdHJvcCBhbmNpZW5uZSAoPDIyKS4iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjEzMyBidWlsdGluL2hlbHAuYzoxNjEgYnVpbHRpbi9oZWxwLmM6MTcwIGJ1aWx0aW4vaGVscC5jOjE3OAorIzogYnVpbHRpbi9oZWxwLmM6MTMxIGJ1aWx0aW4vaGVscC5jOjE1OSBidWlsdGluL2hlbHAuYzoxNjggYnVpbHRpbi9oZWxwLmM6MTc2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBleGVjICclcyc6ICVzIgotbXNnc3RyICIiCittc2dzdHIgIsOpY2hlYyBkZSBsJ2V4w6ljdXRpb24gZGUgJyVzJyA6ICVzIgogCi0jOiBidWlsdGluL2hlbHAuYzoyMTgKKyM6IGJ1aWx0aW4vaGVscC5jOjIxNgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiJyVzJzogcGF0aCBmb3IgdW5zdXBwb3J0ZWQgbWFuIHZpZXdlci5cbiIKICJQbGVhc2UgY29uc2lkZXIgdXNpbmcgJ21hbi48dG9vbD4uY21kJyBpbnN0ZWFkLiIKIG1zZ3N0ciAiIgorIiclcycgOiBjaGVtaW4gcG91ciBsJ3V0aWxpdGFpcmUgZGUgdmlzdWFsaXNhdGlvbiBkZSBtYW51ZWwgbm9uIHN1cHBvcnTDqS5cbiIKKyJWZXVpbGxleiB1dGlsaXNlciBwbHV0w7R0ICdtYW4uPG91dGlsPi5jbWQnLiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MjMwCisjOiBidWlsdGluL2hlbHAuYzoyMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIiclcyc6IGNtZCBmb3Igc3VwcG9ydGVkIG1hbiB2aWV3ZXIuXG4iCiAiUGxlYXNlIGNvbnNpZGVyIHVzaW5nICdtYW4uPHRvb2w+LnBhdGgnIGluc3RlYWQuIgogbXNnc3RyICIiCisiJyVzJyA6IGNoZW1pbiBwb3VyIGwndXRpbGl0YWlyZSBkZSB2aXN1YWxpc2F0aW9uIGRlIG1hbnVlbCBzdXBwb3J0w6kuXG4iCisiVmV1aWxsZXogdXRpbGlzZXIgcGx1dMO0dCAnbWFuLjxvdXRpbD4uY21kJy4iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjM1MQorIzogYnVpbHRpbi9oZWxwLmM6MzQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcyc6IHVua25vd24gbWFuIHZpZXdlci4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiJyVzJyA6IHZpc3VhbGlzZXVyIGRlIG1hbnVlbCBpbmNvbm51LiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MzY4CisjOiBidWlsdGluL2hlbHAuYzozNjYKIG1zZ2lkICJubyBtYW4gdmlld2VyIGhhbmRsZWQgdGhlIHJlcXVlc3QiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYXVjdW4gdmlzdWFsaXNldXIgZGUgbWFudWVsIG4nYSBwcmlzIGVuIGNoYXJnZSBsYSBkZW1hbmRlIgogCi0jOiBidWlsdGluL2hlbHAuYzozNzYKKyM6IGJ1aWx0aW4vaGVscC5jOjM3NAogbXNnaWQgIm5vIGluZm8gdmlld2VyIGhhbmRsZWQgdGhlIHJlcXVlc3QiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYXVjdW4gdmlzdWFsaXNldXIgZGUgJ2luZm8nIG4nYSBwcmlzIGVuIGNoYXJnZSBsYSBkZW1hbmRlIgorCisjOiBidWlsdGluL2hlbHAuYzo0MjAKK21zZ2lkICJEZWZpbmluZyBhdHRyaWJ1dGVzIHBlciBwYXRoIgorbXNnc3RyICJEw6lmaW5pdGlvbiBkZXMgYXR0cmlidXRzIHBhciBjaGVtaW4iCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMQorbXNnaWQgIkEgR2l0IGdsb3NzYXJ5IgorbXNnc3RyICJVbiBnbG9zc2FpcmUgR2l0IgogCiAjOiBidWlsdGluL2hlbHAuYzo0MjIKLW1zZ2lkICJEZWZpbmluZyBhdHRyaWJ1dGVzIHBlciBwYXRoIgotbXNnc3RyICIiCittc2dpZCAiU3BlY2lmaWVzIGludGVudGlvbmFsbHkgdW50cmFja2VkIGZpbGVzIHRvIGlnbm9yZSIKK21zZ3N0ciAiU3DDqWNpZmllIGxlcyBmaWNoaWVycyBub24tc3VpdmlzIMOgIGlnbm9yZXIgaW50ZW50aW9ubmVsbGVtZW50IgogCiAjOiBidWlsdGluL2hlbHAuYzo0MjMKLW1zZ2lkICJBIEdpdCBnbG9zc2FyeSIKLW1zZ3N0ciAiIgorbXNnaWQgIkRlZmluaW5nIHN1Ym1vZHVsZSBwcm9wZXJ0aWVzIgorbXNnc3RyICJEw6lmaW5pdGlvbiBkZXMgcHJvcHJpw6l0w6lzIGRlIHNvdXMtbW9kdWxlIgogCiAjOiBidWlsdGluL2hlbHAuYzo0MjQKLW1zZ2lkICJTcGVjaWZpZXMgaW50ZW50aW9uYWxseSB1bnRyYWNrZWQgZmlsZXMgdG8gaWdub3JlIgotbXNnc3RyICIiCittc2dpZCAiU3BlY2lmeWluZyByZXZpc2lvbnMgYW5kIHJhbmdlcyBmb3IgR2l0IgorbXNnc3RyICJTcMOpY2lmaWNhdGlvbiBkZXMgcsOpdmlzaW9ucyBldCBwb3J0w6llcyBwb3VyIEdpdCIKIAogIzogYnVpbHRpbi9oZWxwLmM6NDI1Ci1tc2dpZCAiRGVmaW5pbmcgc3VibW9kdWxlIHByb3BlcnRpZXMiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9oZWxwLmM6NDI2Ci1tc2dpZCAiU3BlY2lmeWluZyByZXZpc2lvbnMgYW5kIHJhbmdlcyBmb3IgR2l0IgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vaGVscC5jOjQyNwogbXNnaWQgIkEgdHV0b3JpYWwgaW50cm9kdWN0aW9uIHRvIEdpdCAoZm9yIHZlcnNpb24gMS41LjEgb3IgbmV3ZXIpIgogbXNnc3RyICIiCisiVW5lIGludHJvZHVjdGlvbiBwcmF0aXF1ZSDDoCBHaXQgKHBvdXIgbGVzIHZlcnNpb25zIDEuNS4xIGV0IHN1cMOpcmlldXJlcykiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQyOAorIzogYnVpbHRpbi9oZWxwLmM6NDI2CiBtc2dpZCAiQW4gb3ZlcnZpZXcgb2YgcmVjb21tZW5kZWQgd29ya2Zsb3dzIHdpdGggR2l0IgotbXNnc3RyICIiCittc2dzdHIgIlVuIGFwZXLDp3UgZGVzIGZsdXggZGUgdHJhdmFpbCByZWNvbW1hbmTDqXMgYXZlYyBHaXQiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ0MAorIzogYnVpbHRpbi9oZWxwLmM6NDM4CiBtc2dpZCAiVGhlIGNvbW1vbiBHaXQgZ3VpZGVzIGFyZTpcbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJMZXMgZ3VpZGVzIEdpdCBwb3B1bGFpcmVzIHNvbnQgOiBcbiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDYyIGJ1aWx0aW4vaGVscC5jOjQ3OAorIzogYnVpbHRpbi9oZWxwLmM6NDYwIGJ1aWx0aW4vaGVscC5jOjQ3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2FnZTogJXMlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJ1c2FnZSA6ICVzJXMiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ5NAorIzogYnVpbHRpbi9oZWxwLmM6NDkyCiAjLCBjLWZvcm1hdAogbXNnaWQgImBnaXQgJXMnIGlzIGFsaWFzZWQgdG8gYCVzJyIKLW1zZ3N0ciAiIgorbXNnc3RyICJgZ2l0ICVzXCIgZXN0IHVuIGFsaWFzIGRlIGAlcyciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE4MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTg0CiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCB0eXBlIG1pc21hdGNoIGF0ICVzIgotbXNnc3RyICIiCittc2dzdHIgInR5cGUgZCdvYmpldCBub24gY29ycmVzcG9uZGFudCDDoCAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjAyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyMDQKIG1zZ2lkICJvYmplY3Qgb2YgdW5leHBlY3RlZCB0eXBlIgotbXNnc3RyICIiCittc2dzdHIgIm9iamV0IGRlIHR5cGUgaW5hdHRlbmR1IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyMzkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI0NAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgZmlsbCAlZCBieXRlIgogbXNnaWRfcGx1cmFsICJjYW5ub3QgZmlsbCAlZCBieXRlcyIKLW1zZ3N0clswXSAiIgotbXNnc3RyWzFdICIiCittc2dzdHJbMF0gImltcG9zc2libGUgZGUgcmVtcGxpciAlZCBvY3RldCIKK21zZ3N0clsxXSAiaW1wb3NzaWJsZSBkZSByZW1wbGlyICVkIG9jdGV0cyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjQ5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTQKIG1zZ2lkICJlYXJseSBFT0YiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZmluIGRlIGZpY2hpZXIgcHLDqW1hdHVyw6llIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1NQogbXNnaWQgInJlYWQgZXJyb3Igb24gaW5wdXQiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZXJyZXVyIGRlIGxlY3R1cmUgc3VyIGwnZW50csOpZSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjYyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjcKIG1zZ2lkICJ1c2VkIG1vcmUgYnl0ZXMgdGhhbiB3ZXJlIGF2YWlsYWJsZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJwbHVzIGQnb2N0ZXRzIHV0aWxpc8OpcyBxdWUgZGlzcG9uaWJsZXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6Mjc0CiBtc2dpZCAicGFjayB0b28gbGFyZ2UgZm9yIGN1cnJlbnQgZGVmaW5pdGlvbiBvZiBvZmZfdCIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyODUKLSMsIGMtZm9ybWF0Ci1tc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSAnJXMnIgotbXNnc3RyICIiCittc2dzdHIgImxlIHBhcXVldCBlc3QgdHJvcCBncmFuZCBwb3VyIGxhIGTDqWZpbml0aW9uIGFjdHVlbGxlIGRlIG9mZl90IgogCiAjOiBidWlsdGluL2luZGV4LXBhY2suYzoyOTAKICMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSAnJXMnIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNyw6llciAnJXMnIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyOTUKKyMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gcGFja2ZpbGUgJyVzJyIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnb3V2cmlyIGxlIGZpY2hpZXIgcGFxdWV0ICclcyciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA5CiBtc2dpZCAicGFjayBzaWduYXR1cmUgbWlzbWF0Y2giCi1tc2dzdHIgIiIKK21zZ3N0ciAibGEgc2lnbmF0dXJlIGR1IHBhcXVldCBuZSBjb3JyZXNwb25kIHBhcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzozMTEKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFjayB2ZXJzaW9uICU8UFJJdTMyPiB1bnN1cHBvcnRlZCIKLW1zZ3N0ciAiIgorbXNnc3RyICJsYSB2ZXJzaW9uIGRlIHBhcXVldCAlPFBSSXUzMj4gbm9uIHN1cHBvcnTDqWUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMyNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgaGFzIGJhZCBvYmplY3QgYXQgb2Zmc2V0ICVsdTogJXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAibGUgcGFxdWV0IGEgdW4gbWF1dmFpcyBvYmpldCDDoCBsJ29mZnNldCAlbHU6ICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo0NDYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbmZsYXRlIHJldHVybmVkICVkIgotbXNnc3RyICIiCittc2dzdHIgImxhIGTDqWNvbXByZXNzaW9uIChpbmZsYXRlKSBhIHJldG91cm7DqSAlZCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NDk1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1MDAKIG1zZ2lkICJvZmZzZXQgdmFsdWUgb3ZlcmZsb3cgZm9yIGRlbHRhIGJhc2Ugb2JqZWN0IgotbXNnc3RyICIiCittc2dzdHIgImTDqXBhc3NlbWVudCBkZSBsYSB2YWxldXIgZCdvZmZzZXQgcG91ciBsJ29iamV0IGRlbHRhIGRlIGJhc2UiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUwMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTA4CiBtc2dpZCAiZGVsdGEgYmFzZSBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kIgotbXNnc3RyICIiCittc2dzdHIgImwnb2JqZXQgZGVsdGEgZGUgYmFzZSBlc3QgaG9ycyBsaW1pdGUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUxMQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTE2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd24gb2JqZWN0IHR5cGUgJWQiCi1tc2dzdHIgIiIKK21zZ3N0ciAidHlwZSBkJ29iamV0IGluY29ubnUgJWQiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQ3CiBtc2dpZCAiY2Fubm90IHByZWFkIHBhY2sgZmlsZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgKHByZWFkKSBsZSBmaWNoaWVyIHBhcXVldCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQ0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicHJlbWF0dXJlIGVuZCBvZiBwYWNrIGZpbGUsICVsdSBieXRlIG1pc3NpbmciCiBtc2dpZF9wbHVyYWwgInByZW1hdHVyZSBlbmQgb2YgcGFjayBmaWxlLCAlbHUgYnl0ZXMgbWlzc2luZyIKLW1zZ3N0clswXSAiIgotbXNnc3RyWzFdICIiCittc2dzdHJbMF0gImZpbiBwcsOpbWF0dXLDqWUgZHUgZmljaGllciBwYXF1ZXQsICVsdSBvY3RldCBsdSIKK21zZ3N0clsxXSAiZmluIHByw6ltYXR1csOpZSBkdSBmaWNoaWVyIHBhcXVldCwgJWx1IG9jdGV0cyBsdXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU3MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTc1CiBtc2dpZCAic2VyaW91cyBpbmZsYXRlIGluY29uc2lzdGVuY3kiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ3JhdmUgaW5jb2jDqXJlbmNlIGRhbnMgbGEgZMOpY29tcHJlc3Npb24gKGluZmxhdGUpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjEgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY5MAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzI0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY2IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY3MiBidWlsdGluL2luZGV4LXBhY2suYzo2OTUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjcyOSBidWlsdGluL2luZGV4LXBhY2suYzo3MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiU0hBMSBDT0xMSVNJT04gRk9VTkQgV0lUSCAlcyAhIgotbXNnc3RyICIiCittc2dzdHIgIkNPTExJU0lPTiBTSEExIFRST1VWw4lFIEFWRUMgJXMgISIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY0IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTcwCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI2MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY5IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTcxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzM1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkIGV4aXN0aW5nIG9iamVjdCAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgbCdvYmpldCBleGlzdGFudCAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzQ0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBibG9iIG9iamVjdCAlcyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NTkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiaW52YWxpZCAlcyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjEKLW1zZ2lkICJFcnJvciBpbiBvYmplY3QiCi1tc2dzdHIgIiIKK21zZ3N0ciAib2JqZXQgYmxvYiBpbnZhbGlkZSAlcyIKIAogIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYzCiAjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgJXMiCittc2dzdHIgIiVzIGludmFsaWRlIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjYKK21zZ2lkICJFcnJvciBpbiBvYmplY3QiCittc2dzdHIgIkVycmV1ciBkYW5zIGwnb2JqZXQiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2OAorIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYWxsIGNoaWxkIG9iamVjdHMgb2YgJXMgYXJlIHJlYWNoYWJsZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJUb3VzIGxlcyBvYmpldHMgZW5mYW50cyBkZSAlcyBuZSBzb250IHBhcyBhY2Nlc3NpYmxlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODMzIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2MworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODM5IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2OQogbXNnaWQgImZhaWxlZCB0byBhcHBseSBkZWx0YSIKLW1zZ3N0ciAiIgorbXNnc3RyICLDqWNoZWMgZCdhcHBsaWNhdGlvbiBkdSBkZWx0YSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAxMAogbXNnaWQgIlJlY2VpdmluZyBvYmplY3RzIgotbXNnc3RyICIiCittc2dzdHIgIlLDqWNlcHRpb24gZCdvYmpldHMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMTAKIG1zZ2lkICJJbmRleGluZyBvYmplY3RzIgotbXNnc3RyICIiCittc2dzdHIgIkluZGV4YXRpb24gZCdvYmpldHMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzYKIG1zZ2lkICJwYWNrIGlzIGNvcnJ1cHRlZCAoU0hBMSBtaXNtYXRjaCkiCi1tc2dzdHIgIiIKK21zZ3N0ciAibGUgcGFxdWV0IGVzdCBjb3Jyb21wdSAoU0hBMSBuZSBjb3JyZXNwb25kIHBhcykiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDEKIG1zZ2lkICJjYW5ub3QgZnN0YXQgcGFja2ZpbGUiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ29idGVuaXIgbGUgc3RhdHV0IChmc3RhdCkgZHUgZmljaGllciBwYXF1ZXQiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDQKIG1zZ2lkICJwYWNrIGhhcyBqdW5rIGF0IHRoZSBlbmQiCi1tc2dzdHIgIiIKK21zZ3N0ciAibGUgcGFxdWV0IGVzdCBpbnZhbGlkZSDDoCBsYSBmaW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNTUKIG1zZ2lkICJjb25mdXNpb24gYmV5b25kIGluc2FuaXR5IGluIHBhcnNlX3BhY2tfb2JqZWN0cygpIgotbXNnc3RyICIiCittc2dzdHIgImNvbmZ1c2lvbiBleHRyw6ptZSBkYW5zIHBhcnNlX3BhY2tfb2JqZWN0cygpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDcyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDc4CiBtc2dpZCAiUmVzb2x2aW5nIGRlbHRhcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJSw6lzb2x1dGlvbiBkZXMgZGVsdGFzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDgyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDg4CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgdGhyZWFkOiAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNyw6llciBsZSBmaWwgOiAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzMAogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkiCi1tc2dzdHIgIiIKK21zZ3N0ciAiY29uZnVzaW9uIGV4dHLDqm1lIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTMyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTM4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBsZXRlZCB3aXRoICVkIGxvY2FsIG9iamVjdHMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiY29tcGzDqXTDqSBhdmVjICVkIG9iamV0cyBsb2NhdXgiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5leHBlY3RlZCB0YWlsIGNoZWNrc3VtIGZvciAlcyAoZGlzayBjb3JydXB0aW9uPykiCiBtc2dzdHIgIiIKKyJTb21tZSBkZSBjb250csO0bGUgZGUgZmluIGluYXR0ZW5kdWUgcG91ciAlcyAoY29ycnVwdGlvbiBzdXIgbGUgZGlzcXVlID8pIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTQ2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGEiCiBtc2dpZF9wbHVyYWwgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGFzIgotbXNnc3RyWzBdICIiCi1tc2dzdHJbMV0gIiIKK21zZ3N0clswXSAibGUgcGFxdWV0IGEgJWQgZGVsdGEgbm9uIHLDqXNvbHUiCittc2dzdHJbMV0gImxlIHBhcXVldCBhICVkIGRlbHRhcyBub24gcsOpc29sdXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNzEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNzcKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGRlZmxhdGUgYXBwZW5kZWQgb2JqZWN0ICglZCkiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBjb21wcmVzc2VyIGwnb2JqZXQgYWpvdXTDqSAoJWQpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjUwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgImxvY2FsIG9iamVjdCAlcyBpcyBjb3JydXB0IgotbXNnc3RyICIiCittc2dzdHIgImwnb2JqZXQgbG9jYWwgJXMgZXN0IGNvcnJvbXB1IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjc0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjgwCiBtc2dpZCAiZXJyb3Igd2hpbGUgY2xvc2luZyBwYWNrIGZpbGUiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZXJyZXVyIGVuIGZlcm1ldHVyZSBkdSBmaWNoaWVyIHBhcXVldCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI4NworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI5MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgd3JpdGUga2VlcCBmaWxlICclcyciCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ8OpY3JpcmUgbGUgZmljaGllciBcImtlZXBcIiAnJXMnIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjk1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzAxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjbG9zZSB3cml0dGVuIGtlZXAgZmlsZSAnJXMnIgotbXNnc3RyICIiCittc2dzdHIgImltcG9zc2libGUgZGUgZmVybWVyIGxlIGZpY2hpZXIgXCJrZWVwXCIgJyVzJyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMwOAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMxNAogbXNnaWQgImNhbm5vdCBzdG9yZSBwYWNrIGZpbGUiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBzdG9ja2VyIGxlIGZpY2hpZXIgcGFxdWV0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzE5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzI1CiBtc2dpZCAiY2Fubm90IHN0b3JlIGluZGV4IGZpbGUiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1MgotIywgYy1mb3JtYXQKLW1zZ2lkICJiYWQgcGFjay5pbmRleHZlcnNpb249JTxQUkl1MzI+IgotbXNnc3RyICIiCittc2dzdHIgImltcG9zc2libGUgZGUgc3RvY2tlciBsZSBmaWNoaWVyIGQnaW5kZXgiCiAKICM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTgKICMsIGMtZm9ybWF0Ci1tc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgdGhyZWFkcyBzcGVjaWZpZWQgKCVkKSIKLW1zZ3N0ciAiIgorbXNnaWQgImJhZCBwYWNrLmluZGV4dmVyc2lvbj0lPFBSSXUzMj4iCittc2dzdHIgIm1hdXZhaXMgcGFjay5pbmRleHZlcnNpb249JTxQUkl1MzI+IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgdGhyZWFkcyBzcGVjaWZpZWQgKCVkKSIKK21zZ3N0ciAibm9tYnJlIGRlIGZpbHMgc3DDqWNpZmnDqSBpbnZhbGlkZSAoJWQpIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzY4IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NDYKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gdGhyZWFkcyBzdXBwb3J0LCBpZ25vcmluZyAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJwYXMgZGUgc3VwcG9ydCBkZXMgZmlscywgaWdub3JlICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDIwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDI2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIGV4aXN0aW5nIHBhY2sgZmlsZSAnJXMnIgotbXNnc3RyICIiCittc2dzdHIgIkltcG9zc2libGUgZCdvdXZyaXIgbGUgZmljaGllciBwYXF1ZXQgZXhpc3RhbnQgJyVzJyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyMgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGlkeCBmaWxlIGZvciAnJXMnIgotbXNnc3RyICIiCittc2dzdHIgIkltcG9zc2libGUgZCdvdXZyaXIgbGUgZmljaGllciBwYXF1ZXQgZCdpbmRleCBleGlzdGFudCBwb3VyICclcyciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NjkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAibm9uIGRlbHRhOiAlZCBvYmplY3QiCiBtc2dpZF9wbHVyYWwgIm5vbiBkZWx0YTogJWQgb2JqZWN0cyIKLW1zZ3N0clswXSAiIgotbXNnc3RyWzFdICIiCittc2dzdHJbMF0gInBhcyB1biBkZWx0YSA6ICVkIG9iamV0IgorbXNnc3RyWzFdICJwYXMgdW4gZGVsdGEgOiAlZCBvYmpldHMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NzYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3QiCiBtc2dpZF9wbHVyYWwgImNoYWluIGxlbmd0aCA9ICVkOiAlbHUgb2JqZWN0cyIKLW1zZ3N0clswXSAiIgotbXNnc3RyWzFdICIiCittc2dzdHJbMF0gImxvbmd1ZXVyIGNoYcOubsOpZSA9ICVkIDogJWx1IG9iamV0IgorbXNnc3RyWzFdICJsb25ndWV1ciBjaGHDrm7DqWUgPSAlZCA6ICVsdSBvYmpldHMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MTAKIG1zZ2lkICJDYW5ub3QgY29tZSBiYWNrIHRvIGN3ZCIKLW1zZ3N0ciAiIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJldmVuaXIgYXUgcsOpcGVydG9pcmUgZGUgdHJhdmFpbCBjb3VyYW50IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTQ3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NTAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU1OCBidWlsdGluL2luZGV4LXBhY2suYzoxNTYxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTczIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkICVzIgotbXNnc3RyICIiCittc2dzdHIgIm1hdXZhaXMgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1ODAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTEKIG1zZ2lkICItLWZpeC10aGluIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgLS1zdGRpbiIKLW1zZ3N0ciAiIgorbXNnc3RyICItLWZpeC10aGluIG5lIHBldXQgcGFzIMOqdHJlIHV0aWxpc8OpIHNhbnMgLS1zdGRpbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU4NCBidWlsdGluL2luZGV4LXBhY2suYzoxNTk0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTk1IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MDUKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFja2ZpbGUgbmFtZSAnJXMnIGRvZXMgbm90IGVuZCB3aXRoICcucGFjayciCi1tc2dzdHIgIiIKK21zZ3N0ciAibGUgbm9tIGRlIGZpY2hpZXIgcGFxdWV0ICclcycgbmUgc2UgdGVybWluZSBwYXMgcGFyICcucGFjayciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MTQKIG1zZ2lkICItLXZlcmlmeSB3aXRoIG5vIHBhY2tmaWxlIG5hbWUgZ2l2ZW4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiLS12ZXJpZnkgc2FucyBub20gZGUgZmljaGllciBwYXF1ZXQgZG9ubsOpIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzozNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgbWFrZSAlcyB3cml0YWJsZSBieSBncm91cCIKLW1zZ3N0ciAiIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJlbmRyZSAlcyBpbnNjcmlwdGlibGUgcG91ciBsZSBncm91cGUiCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjYyCiAjLCBjLWZvcm1hdAogbXNnaWQgImluc2FuZWx5IGxvbmcgdGVtcGxhdGUgbmFtZSAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJub20gZGUgbW9kw6hsZSBkw6ltZW50aWVsbGVtZW50IGxvbmcgJXMiCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBzdGF0ICclcyciCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBmYWlyZSB1biBzdGF0IGRlICclcyciCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjczCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBzdGF0IHRlbXBsYXRlICclcyciCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBmYWlyZSB1biBzdGF0IGR1IG1vZMOobGUgJyVzJyIKIAogIzogYnVpbHRpbi9pbml0LWRiLmM6ODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW5kaXIgJyVzJyIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnb3V2cmlyIChvcGVuZGlyKSAnJXMnIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzo5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZGxpbmsgJyVzJyIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHJlYWRsaW5rICclcyciCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjk5CiAjLCBjLWZvcm1hdAogbXNnaWQgImluc2FuZWx5IGxvbmcgc3ltbGluayAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJsaWVuIHN5bWJvbGlxdWUgZMOpbWVudGllbGxlbWVudCBsb25nICVzIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzoxMDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHN5bWxpbmsgJyVzJyAnJXMnIgotbXNnc3RyICIiCittc2dzdHIgImltcG9zc2libGUgZGUgY3LDqWVyIHVuIGxpZW4gc3ltYm9saXF1ZSBkZSAnJXMnICclcyciCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjEwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY29weSAnJXMnIHRvICclcyciCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBjb3BpZXIgJyVzJyB2ZXJzICclcyciCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjExMAogIywgYy1mb3JtYXQKIG1zZ2lkICJpZ25vcmluZyB0ZW1wbGF0ZSAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJtb2TDqGxlICVzIGlnbm9yw6kiCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjEzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnNhbmVseSBsb25nIHRlbXBsYXRlIHBhdGggJXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiY2hlbWluIGRlIG1vZMOobGUgJXMgZMOpbWVudGllbGxlbWVudCBsb25nIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzoxNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAidGVtcGxhdGVzIG5vdCBmb3VuZCAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJtb2TDqGxlcyBub24gdHJvdXbDqXMgJXMiCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjE1NAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgY29weWluZyB0ZW1wbGF0ZXMgb2YgYSB3cm9uZyBmb3JtYXQgdmVyc2lvbiAlZCBmcm9tICclcyciCiBtc2dzdHIgIiIKKyJwYXMgZGUgY29waWUgZGVzIG1vZMOobGVzIMOpdGFudCBkYW5zIHVuZSBtYXV2YWlzZSB2ZXJzaW9uIGR1IGZvcm1hdCAlZCBkZSAnJXMnIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzoxOTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5zYW5lIGdpdCBkaXJlY3RvcnkgJXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAicsOpcGVydG9pcmUgZ2l0IGTDqW1lbnRpZWwgJXMiCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjMyMyBidWlsdGluL2luaXQtZGIuYzozMjYKICMsIGMtZm9ybWF0CkBAIC01NjIwLDE3ICs2MjcyLDEyIEBACiAjOiBidWlsdGluL2luaXQtZGIuYzozNTUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGhhbmRsZSBmaWxlIHR5cGUgJWQiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSB0cmFpdGVyIGxlIGZpY2hpZXIgZGUgdHlwZSAlZCIKIAogIzogYnVpbHRpbi9pbml0LWRiLmM6MzU4CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBtb3ZlICVzIHRvICVzIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vaW5pdC1kYi5jOjM2MwotIywgYy1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGdpdCBsaW5rICVzIgotbXNnc3RyICIiCittc2dzdHIgImltcG9zc2libGUgZGUgZMOpcGxhY2VyICVzIHZlcnMgJXMiCiAKICMuCiAjLiAqIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJyVzJyBpcyBlaXRoZXIgIlJlaW5pdGlhbGl6ZWQKQEAgLTU2NDAsNTEgKzYyODcsNTMgQEAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQyMAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyVzIEdpdCByZXBvc2l0b3J5IGluICVzJXNcbiIKLW1zZ3N0ciAiJXMlcyBEw6lww7R0IGdpdCBkYW5zICVzJXNcbiIKK21zZ3N0ciAiRMOpcMO0dCBHaXQlMiRzICUxJHMgZGFucyAlMyRzJTQkc1xuIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzo0MjEKIG1zZ2lkICJSZWluaXRpYWxpemVkIGV4aXN0aW5nIgotbXNnc3RyICIiCittc2dzdHIgImV4aXN0YW50IHLDqWluaXRpYWxpc8OpIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzo0MjEKIG1zZ2lkICJJbml0aWFsaXplZCBlbXB0eSIKLW1zZ3N0ciAiIgorbXNnc3RyICJ2aWRlIGluaXRpYWxpc8OpIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzo0MjIKIG1zZ2lkICIgc2hhcmVkIgotbXNnc3RyICIiCittc2dzdHIgIiBwYXJ0YWfDqSIKIAogIzogYnVpbHRpbi9pbml0LWRiLmM6NDQxCiBtc2dpZCAiY2Fubm90IHRlbGwgY3dkIgotbXNnc3RyICIiCittc2dzdHIgImltcG9zc2libGUgZGUgZMOpdGVybWluZXIgbGUgcsOpcGVydG9pcmUgZGUgdHJhdmFpbCBjb3VyYW50IgogCiAjOiBidWlsdGluL2luaXQtZGIuYzo0NjcKIG1zZ2lkICIiCiAiZ2l0IGluaXQgWy1xIHwgLS1xdWlldF0gWy0tYmFyZV0gWy0tdGVtcGxhdGU9PHRlbXBsYXRlLWRpcmVjdG9yeT5dIFstLSIKICJzaGFyZWRbPTxwZXJtaXNzaW9ucz5dXSBbZGlyZWN0b3J5XSIKIG1zZ3N0ciAiIgorImdpdCBpbml0IFstcSB8IC0tcXVpZXRdIFstLWJhcmVdIFstLXRlbXBsYXRlPTxyw6lwZXJ0b2lyZS1tb2TDqGxlPl0gWy0tIgorInNoYXJlZFs9PHBlcm1pc3Npb25zPl1dIFtyw6lwZXJ0b2lyZV0iCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MAogbXNnaWQgInBlcm1pc3Npb25zIgotbXNnc3RyICIiCittc2dzdHIgInBlcm1pc3Npb25zIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzo0OTEKIG1zZ2lkICJzcGVjaWZ5IHRoYXQgdGhlIGdpdCByZXBvc2l0b3J5IGlzIHRvIGJlIHNoYXJlZCBhbW9uZ3N0IHNldmVyYWwgdXNlcnMiCi1tc2dzdHIgIiIKK21zZ3N0ciAic3DDqWNpZmllciBxdWUgbGUgZMOpcMO0dCBnaXQgc2VyYSBwYXJ0YWfDqSBlbnRyZSBwbHVzaWV1cnMgdXRpbGlzYXRldXJzIgogCi0jOiBidWlsdGluL2luaXQtZGIuYzo0OTMgYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NworIzogYnVpbHRpbi9pbml0LWRiLmM6NDkzIGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzUgYnVpbHRpbi9yZXBhY2suYzoxNTUKIG1zZ2lkICJiZSBxdWlldCIKLW1zZ3N0ciAiIgorbXNnc3RyICLDqnRyZSBzaWxlbmNpZXV4IgogCiAjOiBidWlsdGluL2luaXQtZGIuYzo1MjIgYnVpbHRpbi9pbml0LWRiLmM6NTI5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBta2RpciAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNyw6llciBsZSByw6lwZXJ0b2lyZSAobWtkaXIpICVzIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzo1MzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNoZGlyIHRvICVzIgotbXNnc3RyICIiCittc2dzdHIgImltcG9zc2libGUgZGUgc2UgZMOpcGxhY2VyIHZlcnMgbGUgcsOpcGVydG9pcmUgKGNoZGlyKSAlcyIKIAogIzogYnVpbHRpbi9pbml0LWRiLmM6NTU1CiAjLCBjLWZvcm1hdApAQCAtNTY5Miw1NjIgKzYzNDEsNTkxIEBACiAiJXMgKG9yIC0td29yay10cmVlPTxkaXJlY3Rvcnk+KSBub3QgYWxsb3dlZCB3aXRob3V0IHNwZWNpZnlpbmcgJXMgKG9yIC0tZ2l0LSIKICJkaXI9PGRpcmVjdG9yeT4pIgogbXNnc3RyICIiCisiJXMgKG91IC0td29yay10cmVlPTxyw6lwZXJ0b2lyZT4pIG4nZXN0IHBhcyBhdXRvcmlzw6kgc2FucyBzcMOpY2lmaWVyICVzIChvdSAtLSIKKyJnaXQtZGlyPTxyw6lwZXJ0b2lyZT4pIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzo1NzkKIG1zZ2lkICJDYW5ub3QgYWNjZXNzIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkiCi1tc2dzdHIgIiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FjY8OpZGVyIGF1IHLDqXBlcnRvaXJlIGRlIHRyYXZhaWwgY291cmFudCIKIAogIzogYnVpbHRpbi9pbml0LWRiLmM6NTg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBhY2Nlc3Mgd29yayB0cmVlICclcyciCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9sb2cuYzo0MAotbXNnaWQgImdpdCBsb2cgWzxvcHRpb25zPl0gWzxyZXZpc2lvbiByYW5nZT5dIFtbLS1dIDxwYXRoPi4uLl1cbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYWNjw6lkZXIgw6AgbCdhcmJyZSBkZSB0cmF2YWlsICclcyciCiAKICM6IGJ1aWx0aW4vbG9nLmM6NDEKK21zZ2lkICJnaXQgbG9nIFs8b3B0aW9ucz5dIFs8cmV2aXNpb24gcmFuZ2U+XSBbWy0tXSA8cGF0aD4uLi5dXG4iCittc2dzdHIgImdpdCBsb2cgWzxvcHRpb25zPl0gWzxwYWdlIGRlIHLDqXZpc2lvbnM+XSBbWy0tXSA8Y2hlbWluPi4uLl1cbiIKKworIzogYnVpbHRpbi9sb2cuYzo0MgogbXNnaWQgIiAgIG9yOiBnaXQgc2hvdyBbb3B0aW9uc10gPG9iamVjdD4uLi4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiICAgb3UgOiBnaXQgc2hvdyBbb3B0aW9uc10gPG9iamV0Pi4uLiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDMKKyM6IGJ1aWx0aW4vbG9nLmM6MTI1CiBtc2dpZCAic3VwcHJlc3MgZGlmZiBvdXRwdXQiCi1tc2dzdHIgIiIKK21zZ3N0ciAic3VwcHJpbWVyIGxhIHNvcnRpZSBkZXMgZGlmZsOpcmVuY2VzIgogCi0jOiBidWlsdGluL2xvZy5jOjEwNAorIzogYnVpbHRpbi9sb2cuYzoxMjYKIG1zZ2lkICJzaG93IHNvdXJjZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJhZmZpY2hlciBsYSBzb3VyY2UiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA1CisjOiBidWlsdGluL2xvZy5jOjEyNwogbXNnaWQgIlVzZSBtYWlsIG1hcCBmaWxlIgotbXNnc3RyICIiCittc2dzdHIgIlV0aWxpc2VyIGxlIGZpY2hpZXIgZGUgY29ycmVzcG9uZGFuY2UgZGUgbWFpbCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDYKKyM6IGJ1aWx0aW4vbG9nLmM6MTI4CiBtc2dpZCAiZGVjb3JhdGUgb3B0aW9ucyIKLW1zZ3N0ciAiIgorbXNnc3RyICJkw6ljb3JlciBsZXMgb3B0aW9ucyIKIAotIzogYnVpbHRpbi9sb2cuYzoxOTkKKyM6IGJ1aWx0aW4vbG9nLmM6MjMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZpbmFsIG91dHB1dDogJWQgJXNcbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJTb3J0aWUgZmluYWxlIDogJWQgJXNcbiIKIAotIzogYnVpbHRpbi9sb2cuYzo0MjIgYnVpbHRpbi9sb2cuYzo1MTQKKyM6IGJ1aWx0aW4vbG9nLmM6NDczIGJ1aWx0aW4vbG9nLmM6NTY1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkIG9iamVjdCAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGxpcmUgbCdvYmpldCAlcyIKIAotIzogYnVpbHRpbi9sb2cuYzo1MzgKKyM6IGJ1aWx0aW4vbG9nLmM6NTg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gdHlwZTogJWQiCi1tc2dzdHIgIiIKK21zZ3N0ciAiVHlwZSBpbmNvbm51IDogJWQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NjM4CisjOiBidWlsdGluL2xvZy5jOjY4OQogbXNnaWQgImZvcm1hdC5oZWFkZXJzIHdpdGhvdXQgdmFsdWUiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZm9ybWF0LmhlYWRlcnMgc2FucyB2YWxldXIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzIwCisjOiBidWlsdGluL2xvZy5jOjc3MQogbXNnaWQgIm5hbWUgb2Ygb3V0cHV0IGRpcmVjdG9yeSBpcyB0b28gbG9uZyIKLW1zZ3N0ciAiIgorbXNnc3RyICJsZSBub20gZHUgcsOpcGVydG9pcmUgZGUgc29ydGllIGVzdCB0cm9wIGxvbmciCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzM2CisjOiBidWlsdGluL2xvZy5jOjc4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBwYXRjaCBmaWxlICVzIgotbXNnc3RyICIiCittc2dzdHIgIkltcG9zc2libGUgZCdvdXZyaXIgbGUgZmljaGllciBjb3JyZWN0aWYgJXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzUwCisjOiBidWlsdGluL2xvZy5jOjgwMQogbXNnaWQgIk5lZWQgZXhhY3RseSBvbmUgcmFuZ2UuIgotbXNnc3RyICIiCittc2dzdHIgIkV4YWN0ZW1lbnQgdW5lIHBsYWdlIG7DqWNlc3NhaXJlLiIKIAotIzogYnVpbHRpbi9sb2cuYzo3NTgKKyM6IGJ1aWx0aW4vbG9nLmM6ODA5CiBtc2dpZCAiTm90IGEgcmFuZ2UuIgotbXNnc3RyICIiCittc2dzdHIgIlBhcyB1bmUgcGxhZ2UuIgogCi0jOiBidWlsdGluL2xvZy5jOjg2MAorIzogYnVpbHRpbi9sb2cuYzo5MTEKIG1zZ2lkICJDb3ZlciBsZXR0ZXIgbmVlZHMgZW1haWwgZm9ybWF0IgotbXNnc3RyICIiCittc2dzdHIgIkxhIGxldHRyZSBkZSBtb3RpdmF0aW9uIGRvaXQgw6p0cmUgYXUgZm9ybWF0IGUtbWFpbCIKIAotIzogYnVpbHRpbi9sb2cuYzo5MzYKKyM6IGJ1aWx0aW4vbG9nLmM6OTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgImluc2FuZSBpbi1yZXBseS10bzogJXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW4tcmVwbHktdG8gYWJlcnJhbnQgOiAlcyIKIAotIzogYnVpbHRpbi9sb2cuYzo5NjQKKyM6IGJ1aWx0aW4vbG9nLmM6MTAxNQogbXNnaWQgImdpdCBmb3JtYXQtcGF0Y2ggW29wdGlvbnNdIFs8c2luY2U+IHwgPHJldmlzaW9uIHJhbmdlPl0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IGZvcm1hdC1wYXRjaCBbb3B0aW9uc10gWzxkZXB1aXM+IHwgPHBsYWdlIGRlIHLDqXZpc2lvbnM+XSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDA5CisjOiBidWlsdGluL2xvZy5jOjEwNjAKIG1zZ2lkICJUd28gb3V0cHV0IGRpcmVjdG9yaWVzPyIKLW1zZ3N0ciAiIgorbXNnc3RyICJEZXV4IHLDqXBlcnRvaXJlcyBkZSBzb3J0aWUgPyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTA4CisjOiBidWlsdGluL2xvZy5jOjExNzUKIG1zZ2lkICJ1c2UgW1BBVENIIG4vbV0gZXZlbiB3aXRoIGEgc2luZ2xlIHBhdGNoIgotbXNnc3RyICIiCittc2dzdHIgInV0aWxpc2VyIFtQQVRDSCBuL21dIG3Dqm1lIGF2ZWMgdW4gcGF0Y2ggdW5pcXVlIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTEKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3OAogbXNnaWQgInVzZSBbUEFUQ0hdIGV2ZW4gd2l0aCBtdWx0aXBsZSBwYXRjaGVzIgotbXNnc3RyICIiCittc2dzdHIgInV0aWxpc2VyIFtQQVRDSF0gbcOqbWUgYXZlYyBkZXMgcGF0Y2hzIG11bHRpcGxlcyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE1CisjOiBidWlsdGluL2xvZy5jOjExODIKIG1zZ2lkICJwcmludCBwYXRjaGVzIHRvIHN0YW5kYXJkIG91dCIKLW1zZ3N0ciAiIgorbXNnc3RyICJhZmZpY2hlciBsZXMgcGF0Y2hzIHN1ciBsYSBzb3J0aWUgc3RhbmRhcmQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExNworIzogYnVpbHRpbi9sb2cuYzoxMTg0CiBtc2dpZCAiZ2VuZXJhdGUgYSBjb3ZlciBsZXR0ZXIiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ8OpbsOpcmVyIHVuZSBsZXR0cmUgZGUgbW90aXZhdGlvbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE5CisjOiBidWlsdGluL2xvZy5jOjExODYKIG1zZ2lkICJ1c2Ugc2ltcGxlIG51bWJlciBzZXF1ZW5jZSBmb3Igb3V0cHV0IGZpbGUgbmFtZXMiCiBtc2dzdHIgIiIKKyJ1dGlsaXNlciB1bmUgc8OpcXVlbmNlIHNpbXBsZSBkZSBub21icmVzIHBvdXIgbGVzIG5vbSBkZXMgZmljaGllcnMgZGUgc29ydGllIgogCi0jOiBidWlsdGluL2xvZy5jOjExMjAKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4NwogbXNnaWQgInNmeCIKLW1zZ3N0ciAiIgorbXNnc3RyICJzZngiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyMQorIzogYnVpbHRpbi9sb2cuYzoxMTg4CiBtc2dpZCAidXNlIDxzZng+IGluc3RlYWQgb2YgJy5wYXRjaCciCi1tc2dzdHIgIiIKK21zZ3N0ciAidXRpbGlzZXIgPHNmeD4gYXUgbGlldSBkZSAnLnBhdGNoJyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTIzCisjOiBidWlsdGluL2xvZy5jOjExOTAKIG1zZ2lkICJzdGFydCBudW1iZXJpbmcgcGF0Y2hlcyBhdCA8bj4gaW5zdGVhZCBvZiAxIgotbXNnc3RyICIiCittc2dzdHIgImTDqW1hcnJlciBsYSBudW3DqXJvdGF0aW9uIGRlcyBwYXRjaHMgw6AgPG4+IGF1IGxpZXUgZGUgMSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTI1CisjOiBidWlsdGluL2xvZy5jOjExOTIKIG1zZ2lkICJtYXJrIHRoZSBzZXJpZXMgYXMgTnRoIHJlLXJvbGwiCi1tc2dzdHIgIiIKK21zZ3N0ciAibWFycXVlciBsYSBzw6lyaWUgY29tbWUgdW5lIE5pw6htZSByw6nDqWRpdGlvbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTI3CisjOiBidWlsdGluL2xvZy5jOjExOTQKIG1zZ2lkICJVc2UgWzxwcmVmaXg+XSBpbnN0ZWFkIG9mIFtQQVRDSF0iCi1tc2dzdHIgIiIKK21zZ3N0ciAidXRpbGlzZXIgWzxwcsOpZml4ZT5dIGF1IGxpZXUgZGUgW1BBVENIXSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTMwCisjOiBidWlsdGluL2xvZy5jOjExOTcKIG1zZ2lkICJzdG9yZSByZXN1bHRpbmcgZmlsZXMgaW4gPGRpcj4iCi1tc2dzdHIgIiIKK21zZ3N0ciAic3RvY2tlciBsZXMgZmljaGllcnMgcsOpc3VsdGF0cyBkYW5zIDxyw6lwZXJ0b2lyZT4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzMworIzogYnVpbHRpbi9sb2cuYzoxMjAwCiBtc2dpZCAiZG9uJ3Qgc3RyaXAvYWRkIFtQQVRDSF0iCi1tc2dzdHIgIiIKK21zZ3N0ciAibmUgcGFzIHJldGlyZXIvYWpvdXRlciBbUEFUQ0hdIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzYKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMwogbXNnaWQgImRvbid0IG91dHB1dCBiaW5hcnkgZGlmZnMiCi1tc2dzdHIgIiIKK21zZ3N0ciAibmUgcGFzIGltcHJpbWVyIGxlcyBkaWZmcyBiaW5haXJlcyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM4CisjOiBidWlsdGluL2xvZy5jOjEyMDUKIG1zZ2lkICJkb24ndCBpbmNsdWRlIGEgcGF0Y2ggbWF0Y2hpbmcgYSBjb21taXQgdXBzdHJlYW0iCi1tc2dzdHIgIiIKK21zZ3N0ciAibmUgcGFzIGluY2x1cmUgdW4gcGF0Y2ggY29ycmVzcG9uZGFudCDDoCB1biBjb21taXQgYW1vbnQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MAorIzogYnVpbHRpbi9sb2cuYzoxMjA3CiBtc2dpZCAic2hvdyBwYXRjaCBmb3JtYXQgaW5zdGVhZCBvZiBkZWZhdWx0IChwYXRjaCArIHN0YXQpIgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIGxlIGZvcm1hdCBkdSBwYXRjaCBhdSBsaWV1IGR1IGTDqWZhdXQgKHBhdGNoICsgc3RhdCkiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MgorIzogYnVpbHRpbi9sb2cuYzoxMjA5CiBtc2dpZCAiTWVzc2FnaW5nIgotbXNnc3RyICIiCittc2dzdHIgIkNvbW11bmljYXRpb24iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MworIzogYnVpbHRpbi9sb2cuYzoxMjEwCiBtc2dpZCAiaGVhZGVyIgotbXNnc3RyICIiCittc2dzdHIgImVuLXTDqnRlIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMQogbXNnaWQgImFkZCBlbWFpbCBoZWFkZXIiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWpvdXRlciBsJ2VuLXTDqnRlIGQnZS1tYWlsIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDUgYnVpbHRpbi9sb2cuYzoxMTQ3CisjOiBidWlsdGluL2xvZy5jOjEyMTIgYnVpbHRpbi9sb2cuYzoxMjE0CiBtc2dpZCAiZW1haWwiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZS1tYWlsIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDUKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMgogbXNnaWQgImFkZCBUbzogaGVhZGVyIgotbXNnc3RyICIiCittc2dzdHIgImFqb3V0ZXIgbCdlbi10w6p0ZSBcIlRvOlwiIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDcKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxNAogbXNnaWQgImFkZCBDYzogaGVhZGVyIgotbXNnc3RyICIiCittc2dzdHIgImFqb3V0ZXIgbCdlbi10w6p0ZSBcIkNjOlwiIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDkKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxNgorbXNnaWQgImlkZW50IgorbXNnc3RyICJpZGVudCIKKworIzogYnVpbHRpbi9sb2cuYzoxMjE3Cittc2dpZCAic2V0IEZyb20gYWRkcmVzcyB0byA8aWRlbnQ+IChvciBjb21taXR0ZXIgaWRlbnQgaWYgYWJzZW50KSIKK21zZ3N0ciAicmVuc2VpZ25lciBsJ2FkcmVzc2UgRnJvbSDDoCA8aWRlbnQ+IChvdSDDoCBsJ2lkZW50IGR1IHZhbGlkYXRldXIgc2kgYWJzZW50KSIKKworIzogYnVpbHRpbi9sb2cuYzoxMjE5CiBtc2dpZCAibWVzc2FnZS1pZCIKLW1zZ3N0ciAiIgorbXNnc3RyICJpZC1tZXNzYWdlIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTAKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyMAogbXNnaWQgIm1ha2UgZmlyc3QgbWFpbCBhIHJlcGx5IHRvIDxtZXNzYWdlLWlkPiIKLW1zZ3N0ciAiIgorbXNnc3RyICJyw6lwb25kcmUgZGFucyBsZSBwcmVtaWVyIG1lc3NhZ2Ugw6AgPGlkLW1lc3NhZ2U+IgogCi0jOiBidWlsdGluL2xvZy5jOjExNTEgYnVpbHRpbi9sb2cuYzoxMTU0CisjOiBidWlsdGluL2xvZy5jOjEyMjEgYnVpbHRpbi9sb2cuYzoxMjI0CiBtc2dpZCAiYm91bmRhcnkiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZnJvbnRpw6hyZSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTUyCisjOiBidWlsdGluL2xvZy5jOjEyMjIKIG1zZ2lkICJhdHRhY2ggdGhlIHBhdGNoIgotbXNnc3RyICIiCittc2dzdHIgImF0dGFjaGVyIGxlIHBhdGNoIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTUKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyNQogbXNnaWQgImlubGluZSB0aGUgcGF0Y2giCi1tc2dzdHIgIiIKK21zZ3N0ciAicGF0Y2ggw6AgbCdpbnTDqXJpZXVyIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTkKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyOQogbXNnaWQgImVuYWJsZSBtZXNzYWdlIHRocmVhZGluZywgc3R5bGVzOiBzaGFsbG93LCBkZWVwIgogbXNnc3RyICIiCisiYWN0aXZlciBsJ2VuZmlsYWdlIGRlIG1lc3NhZ2UsIHN0eWxlcyA6IHNoYWxsb3cgKHN1cGVyZmljaWVsKSwgZGVlcCAocHJvZm9uZCkiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE2MQorIzogYnVpbHRpbi9sb2cuYzoxMjMxCiBtc2dpZCAic2lnbmF0dXJlIgotbXNnc3RyICIiCittc2dzdHIgInNpZ25hdHVyZSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTYyCisjOiBidWlsdGluL2xvZy5jOjEyMzIKIG1zZ2lkICJhZGQgYSBzaWduYXR1cmUiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWpvdXRlciB1bmUgc2lnbmF0dXJlIgogCi0jOiBidWlsdGluL2xvZy5jOjExNjQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIzMwogbXNnaWQgImRvbid0IHByaW50IHRoZSBwYXRjaCBmaWxlbmFtZXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAibmUgcGFzIGFmZmljaGVyIGxlcyBub21zIGRlIGZpY2hpZXJzIGRlcyBwYXRjaHMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI0OAorIzogYnVpbHRpbi9sb2cuYzoxMzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgaWRlbnQgbGluZTogJXMiCittc2dzdHIgImxpZ25lIGQnaWRlbnRpZmljYXRpb24gaW52YWxpZGUgOiAlcyIKKworIzogYnVpbHRpbi9sb2cuYzoxMzIyCiBtc2dpZCAiLW4gYW5kIC1rIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIgotbXNnc3RyICIiCittc2dzdHIgIi1uIGV0IC1rIHNvbnQgbXV0dWVsbGVtZW50IGV4Y2x1c2lmcy4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI1MAorIzogYnVpbHRpbi9sb2cuYzoxMzI0CiBtc2dpZCAiLS1zdWJqZWN0LXByZWZpeCBhbmQgLWsgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiLS1zdWJqZWN0LXByZWZpeCBldCAtayBzb250IG11dHVlbGxlbWVudCBleGNsdXNpZnMuIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNTgKKyM6IGJ1aWx0aW4vbG9nLmM6MTMzMgogbXNnaWQgIi0tbmFtZS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCi1tc2dzdHIgIiIKK21zZ3N0ciAiLS1uYW1lLW9ubHkgbidhIHBhcyBkZSBzZW5zIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNjAKKyM6IGJ1aWx0aW4vbG9nLmM6MTMzNAogbXNnaWQgIi0tbmFtZS1zdGF0dXMgZG9lcyBub3QgbWFrZSBzZW5zZSIKLW1zZ3N0ciAiIgorbXNnc3RyICItLW5hbWUtc3RhdHVzIG4nYSBwYXMgZGUgc2VucyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjYyCisjOiBidWlsdGluL2xvZy5jOjEzMzYKIG1zZ2lkICItLWNoZWNrIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCi1tc2dzdHIgIiIKK21zZ3N0ciAiLS1jaGVjayBuJ2EgcGFzIGRlIHNlbnMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI4NQorIzogYnVpbHRpbi9sb2cuYzoxMzU5CiBtc2dpZCAic3RhbmRhcmQgb3V0cHV0LCBvciBkaXJlY3RvcnksIHdoaWNoIG9uZT8iCi1tc2dzdHIgIiIKK21zZ3N0ciAic29ydGllIHN0YW5kYXJkLCBvdSByw6lwZXJ0b2lyZSwgbGVxdWVsID8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI4NworIzogYnVpbHRpbi9sb2cuYzoxMzYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5ICclcyciCi1tc2dzdHIgIiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBjcsOpZXIgbGUgcsOpcGVydG9pcmUgJyVzJyIKIAotIzogYnVpbHRpbi9sb2cuYzoxNDM1CisjOiBidWlsdGluL2xvZy5jOjE1MDkKIG1zZ2lkICJGYWlsZWQgdG8gY3JlYXRlIG91dHB1dCBmaWxlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICLDiWNoZWMgZGUgY3LDqWF0aW9uIGRlcyBmaWNoaWVycyBlbiBzb3J0aWUiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQ4NAorIzogYnVpbHRpbi9sb2cuYzoxNTU4CiBtc2dpZCAiZ2l0IGNoZXJyeSBbLXZdIFs8dXBzdHJlYW0+IFs8aGVhZD4gWzxsaW1pdD5dXV0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IGNoZXJyeSBbLXZdIFs8YnJhbmNoZV9hbW9udD4gWzxoZWFkPiBbPGxpbWl0ZT5dXV0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTUzOQorIzogYnVpbHRpbi9sb2cuYzoxNjEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDb3VsZCBub3QgZmluZCBhIHRyYWNrZWQgcmVtb3RlIGJyYW5jaCwgcGxlYXNlIHNwZWNpZnkgPHVwc3RyZWFtPiBtYW51YWxseS5cbiIKIG1zZ3N0ciAiIgorIkltcG9zc2libGUgZGUgdHJvdXZlciB1bmUgYnJhbmNoZSBkaXN0YW50ZSBzdWl2aWUsIG1lcmNpIGRlIHNww6ljaWZpZXIgIgorIjxicmFuY2hlX2Ftb250PiBtYW51ZWxsZW1lbnQuXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTU1MiBidWlsdGluL2xvZy5jOjE1NTQgYnVpbHRpbi9sb2cuYzoxNTY2CisjOiBidWlsdGluL2xvZy5jOjE2MjYgYnVpbHRpbi9sb2cuYzoxNjI4IGJ1aWx0aW4vbG9nLmM6MTY0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIGNvbW1pdCAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJDb21taXQgaW5jb25udSAlcyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQwMgorIzogYnVpbHRpbi9scy1maWxlcy5jOjM5OAogbXNnaWQgImdpdCBscy1maWxlcyBbb3B0aW9uc10gWzxmaWxlPi4uLl0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IGxzLWZpbGVzIFtvcHRpb25zXSBbPGZpY2hpZXI+Li4uXSIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ1NQorbXNnaWQgImlkZW50aWZ5IHRoZSBmaWxlIHN0YXR1cyB3aXRoIHRhZ3MiCittc2dzdHIgImlkZW50aWZpZXIgbGUgc3RhdHV0IGRlIGZpY2hpZXIgYXZlYyBsZXMgw6l0aXF1ZXR0ZXMiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTcKK21zZ2lkICJ1c2UgbG93ZXJjYXNlIGxldHRlcnMgZm9yICdhc3N1bWUgdW5jaGFuZ2VkJyBmaWxlcyIKK21zZ3N0ciAidXRpbGlzZXIgZGVzIG1pbnVzY3VsZXMgcG91ciBsZXMgZmljaGllciAnYXNzdW3DqXMgaW5jaGFuZ8OpcyciCiAKICM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTkKLW1zZ2lkICJpZGVudGlmeSB0aGUgZmlsZSBzdGF0dXMgd2l0aCB0YWdzIgotbXNnc3RyICIiCittc2dpZCAic2hvdyBjYWNoZWQgZmlsZXMgaW4gdGhlIG91dHB1dCAoZGVmYXVsdCkiCittc2dzdHIgImFmZmljaGVyIGxlcyBmaWNoaWVycyBtaXMgZW4gY2FjaGUgZGFucyBsYSBzb3J0aWUgKGTDqWZhdXQpIgogCiAjOiBidWlsdGluL2xzLWZpbGVzLmM6NDYxCi1tc2dpZCAidXNlIGxvd2VyY2FzZSBsZXR0ZXJzIGZvciAnYXNzdW1lIHVuY2hhbmdlZCcgZmlsZXMiCi1tc2dzdHIgIiIKK21zZ2lkICJzaG93IGRlbGV0ZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGZpY2hpZXJzIHN1cHByaW3DqXMgZGFucyBsYSBzb3J0aWUiCiAKICM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjMKLW1zZ2lkICJzaG93IGNhY2hlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IChkZWZhdWx0KSIKLW1zZ3N0ciAiIgorbXNnaWQgInNob3cgbW9kaWZpZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGZpY2hpZXJzIG1vZGlmacOpcyBkYW5zIGxhIHNvcnRpZSIKIAogIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2NQotbXNnaWQgInNob3cgZGVsZXRlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgotbXNnc3RyICIiCittc2dpZCAic2hvdyBvdGhlciBmaWxlcyBpbiB0aGUgb3V0cHV0IgorbXNnc3RyICJhZmZpY2hlciBsZXMgYXV0cmVzIGZpY2hpZXJzIGRhbnMgbGEgc29ydGllIgogCiAjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3Ci1tc2dpZCAic2hvdyBtb2RpZmllZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjkKLW1zZ2lkICJzaG93IG90aGVyIGZpbGVzIGluIHRoZSBvdXRwdXQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MQogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIGxlcyBmaWNoaWVycyBpZ25vcsOpcyBkYW5zIGxhIHNvcnRpZSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MAogbXNnaWQgInNob3cgc3RhZ2VkIGNvbnRlbnRzJyBvYmplY3QgbmFtZSBpbiB0aGUgb3V0cHV0IgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIGxlcyBub20gZGVzIG9iamV0cyBpbmRleMOpcyBkYW5zIGxhIHNvcnRpZSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MgogbXNnaWQgInNob3cgZmlsZXMgb24gdGhlIGZpbGVzeXN0ZW0gdGhhdCBuZWVkIHRvIGJlIHJlbW92ZWQiCiBtc2dzdHIgIiIKKyJhZmZpY2hlciBsZXMgZmljaGllcnMgZHUgc3lzdMOobWUgZGUgZmljaGllcnMgcXVpIG9udCBiZXNvaW4gZCfDqnRyZSBzdXBwcmltw6lzIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc0CiBtc2dpZCAic2hvdyAnb3RoZXInIGRpcmVjdG9yaWVzJyBuYW1lIG9ubHkiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlcyBub21zIGRlcyByw6lwZXJ0b2lyZXMgJ290aGVyJyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NwogbXNnaWQgImRvbid0IHNob3cgZW1wdHkgZGlyZWN0b3JpZXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAibmUgcGFzIGFmZmljaGVyIGxlcyByw6lwZXJ0b2lyZXMgdmlkZXMiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODAKK21zZ2lkICJzaG93IHVubWVyZ2VkIGZpbGVzIGluIHRoZSBvdXRwdXQiCittc2dzdHIgImFmZmljaGVyIGxlcyBmaWNoaWVycyBub24gZnVzaW9ubsOpcyBkYW5zIGxhIHNvcnRpZSIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MgorbXNnaWQgInNob3cgcmVzb2x2ZS11bmRvIGluZm9ybWF0aW9uIgorbXNnc3RyICJhZmZpY2hlciBsJ2luZm9ybWF0aW9uIHJlc29sdi11bmRvIgogCiAjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg0Ci1tc2dpZCAic2hvdyB1bm1lcmdlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODYKLW1zZ2lkICJzaG93IHJlc29sdmUtdW5kbyBpbmZvcm1hdGlvbiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg4CiBtc2dpZCAic2tpcCBmaWxlcyBtYXRjaGluZyBwYXR0ZXJuIgotbXNnc3RyICIiCittc2dzdHIgInNhdXRlciBsZXMgZmljaGllcnMgY29ycmVzcG9uZGFudCBhdSBtb3RpZiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NwogbXNnaWQgImV4Y2x1ZGUgcGF0dGVybnMgYXJlIHJlYWQgZnJvbSA8ZmlsZT4iCi1tc2dzdHIgIiIKK21zZ3N0ciAibGVzIG1vdGlmcyBkJ2V4Y2x1c2lvbiBzb250IGx1cyBkZXB1aXMgPGZpY2hpZXI+IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkwCiBtc2dpZCAicmVhZCBhZGRpdGlvbmFsIHBlci1kaXJlY3RvcnkgZXhjbHVkZSBwYXR0ZXJucyBpbiA8ZmlsZT4iCi1tc2dzdHIgIiIKK21zZ3N0ciAibGlyZSBkZXMgbW90aWZzIGQnZXhjbHVzaW9uIGFkZGl0aW9ubmVscyBwYXIgcsOpcGVydG9pcmUgZGFucyA8ZmljaGllcj4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTIKIG1zZ2lkICJhZGQgdGhlIHN0YW5kYXJkIGdpdCBleGNsdXNpb25zIgotbXNnc3RyICIiCittc2dzdHIgImFqb3V0ZXIgbGVzIGV4Y2x1c2lvbnMgZ2l0IHN0YW5kYXJkIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk1Cittc2dpZCAibWFrZSB0aGUgb3V0cHV0IHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHRvcCBkaXJlY3RvcnkiCittc2dzdHIgImFmZmljaGVyIGVuIHJlbGF0aWYgcGFyIHJhcHBvcnQgYXUgcsOpcGVydG9pcmUgcmFjaW5lIGR1IHByb2pldCIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5OAorbXNnaWQgImlmIGFueSA8ZmlsZT4gaXMgbm90IGluIHRoZSBpbmRleCwgdHJlYXQgdGhpcyBhcyBhbiBlcnJvciIKK21zZ3N0ciAic2kgdW4gPGZpY2hpZXI+IG4nZXN0IHBhcyBkYW5zIGwnaW5kZXgsIHRyYWl0ZXIgY2VsYSBjb21tZSB1bmUgZXJyZXVyIgogCiAjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk5Ci1tc2dpZCAibWFrZSB0aGUgb3V0cHV0IHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHRvcCBkaXJlY3RvcnkiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMgotbXNnaWQgImlmIGFueSA8ZmlsZT4gaXMgbm90IGluIHRoZSBpbmRleCwgdHJlYXQgdGhpcyBhcyBhbiBlcnJvciIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAzCiBtc2dpZCAidHJlZS1pc2giCi1tc2dzdHIgIiIKK21zZ3N0ciAiYXJicmUgb3UgYXBwYXJlbnTDqSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNAorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMAogbXNnaWQgInByZXRlbmQgdGhhdCBwYXRocyByZW1vdmVkIHNpbmNlIDx0cmVlLWlzaD4gYXJlIHN0aWxsIHByZXNlbnQiCiBtc2dzdHIgIiIKKyJjb25zaWTDqXJlciBxdWUgbGVzIGNoZW1pbnMgc3VwcHJpbcOpcyBkZXB1aXMgPGFyYnJlIG91IGFwcGFyZW50w6k+IHNvbnQgIgorInRvdWpvdXJzIHByw6lzZW50cyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNgorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMgogbXNnaWQgInNob3cgZGVidWdnaW5nIGRhdGEiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGRvbm7DqWVzIGRlIGTDqWJvZ2FnZSIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MjcKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjI4CiBtc2dpZCAiZ2l0IGxzLXRyZWUgWzxvcHRpb25zPl0gPHRyZWUtaXNoPiBbPHBhdGg+Li4uXSIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgbHMtdHJlZSBbPG9wdGlvbnM+XSA8YXJicmUgb3UgYXBwYXJlbnTDqT4gWzxjaGVtaW4+Li4uXSIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTI1CisjOiBidWlsdGluL2xzLXRyZWUuYzoxMjYKIG1zZ2lkICJvbmx5IHNob3cgdHJlZXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlcyBhcmJyZXMiCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyNworIzogYnVpbHRpbi9scy10cmVlLmM6MTI4CiBtc2dpZCAicmVjdXJzZSBpbnRvIHN1YnRyZWVzIgotbXNnc3RyICIiCittc2dzdHIgInBhcmNvdXJpciBsZXMgc291cy1hcmJyZXMiCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyOQorIzogYnVpbHRpbi9scy10cmVlLmM6MTMwCiBtc2dpZCAic2hvdyB0cmVlcyB3aGVuIHJlY3Vyc2luZyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxMzIKLW1zZ2lkICJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCBieXRlIgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIGxlcyBhcmJyZXMgZW4gbGVzIHBhcmNvdXJhbnQiCiAKICM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMworbXNnaWQgInRlcm1pbmF0ZSBlbnRyaWVzIHdpdGggTlVMIGJ5dGUiCittc2dzdHIgInRlcm1pbmVyIGxlcyDDqWzDqW1lbnRzIGF2ZWMgdW4gb2N0ZXQgTlVMIgorCisjOiBidWlsdGluL2xzLXRyZWUuYzoxMzQKIG1zZ2lkICJpbmNsdWRlIG9iamVjdCBzaXplIgotbXNnc3RyICIiCittc2dzdHIgImluY2x1cmUgbGEgdGFpbGxlIGQnb2JqZXQiCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzNSBidWlsdGluL2xzLXRyZWUuYzoxMzcKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzNiBidWlsdGluL2xzLXRyZWUuYzoxMzgKIG1zZ2lkICJsaXN0IG9ubHkgZmlsZW5hbWVzIgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIHNldWxlbWVudCBsZXMgbm9tcyBkZSBmaWNoaWVycyIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTQwCisjOiBidWlsdGluL2xzLXRyZWUuYzoxNDEKIG1zZ2lkICJ1c2UgZnVsbCBwYXRoIG5hbWVzIgotbXNnc3RyICIiCittc2dzdHIgInV0aWxpc2VyIGxlcyBub21zIGRlIGNoZW1pbnMgY29tcGxldHMiCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjE0MgorIzogYnVpbHRpbi9scy10cmVlLmM6MTQzCiBtc2dpZCAibGlzdCBlbnRpcmUgdHJlZTsgbm90IGp1c3QgY3VycmVudCBkaXJlY3RvcnkgKGltcGxpZXMgLS1mdWxsLW5hbWUpIgogbXNnc3RyICIiCisiYWZmaWNoZXIgbCdhcmJyZSBlbnRpZXIgOyBwYXMgc2V1bGVtZW50IGxlIHLDqXBlcnRvaXJlIGNvdXJhbnQgKGltcGxpcXVlIC0tIgorImZ1bGwtbmFtZSkiCiAKICM6IGJ1aWx0aW4vbWVyZ2UuYzo0MwogbXNnaWQgImdpdCBtZXJnZSBbb3B0aW9uc10gWzxjb21taXQ+Li4uXSIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgbWVyZ2UgW29wdGlvbnNdIFs8Y29tbWl0Pi4uLl0iCiAKICM6IGJ1aWx0aW4vbWVyZ2UuYzo0NAogbXNnaWQgImdpdCBtZXJnZSBbb3B0aW9uc10gPG1zZz4gSEVBRCA8Y29tbWl0PiIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgbWVyZ2UgW29wdGlvbnNdIDxtZXNzYWdlPiBIRUFEIDxjb21taXQ+IgogCiAjOiBidWlsdGluL21lcmdlLmM6NDUKIG1zZ2lkICJnaXQgbWVyZ2UgLS1hYm9ydCIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgbWVyZ2UgLS1hYm9ydCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjkwCisjOiBidWlsdGluL21lcmdlLmM6OTgKIG1zZ2lkICJzd2l0Y2ggYG0nIHJlcXVpcmVzIGEgdmFsdWUiCi1tc2dzdHIgIiIKK21zZ3N0ciAibGUgY29tbXV0YXRldXIgYG0nIGEgYmVzb2luIGQndW5lIHZhbGV1ciIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNworIzogYnVpbHRpbi9tZXJnZS5jOjEzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmluZCBtZXJnZSBzdHJhdGVneSAnJXMnLlxuIgotbXNnc3RyICIiCittc2dzdHIgIkltcG9zc2libGUgZGUgdHJvdXZlciBsYSBzdHJhdMOpZ2llIGRlIGZ1c2lvbiAnJXMnLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI4CisjOiBidWlsdGluL21lcmdlLmM6MTM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBzdHJhdGVnaWVzIGFyZToiCi1tc2dzdHIgIiIKK21zZ3N0ciAiTGVzIHN0cmF0w6lnaWVzIGRpc3BvbmlibGVzIHNvbnQgOiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEzMworIzogYnVpbHRpbi9tZXJnZS5jOjE0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgY3VzdG9tIHN0cmF0ZWdpZXMgYXJlOiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL21lcmdlLmM6MTgzCi1tc2dpZCAiZG8gbm90IHNob3cgYSBkaWZmc3RhdCBhdCB0aGUgZW5kIG9mIHRoZSBtZXJnZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL21lcmdlLmM6MTg2Ci1tc2dpZCAic2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODcKLW1zZ2lkICIoc3lub255bSB0byAtLXN0YXQpIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODkKLW1zZ2lkICJhZGQgKGF0IG1vc3QgPG4+KSBlbnRyaWVzIGZyb20gc2hvcnRsb2cgdG8gbWVyZ2UgY29tbWl0IG1lc3NhZ2UiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9tZXJnZS5jOjE5MgotbXNnaWQgImNyZWF0ZSBhIHNpbmdsZSBjb21taXQgaW5zdGVhZCBvZiBkb2luZyBhIG1lcmdlIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTQKLW1zZ2lkICJwZXJmb3JtIGEgY29tbWl0IGlmIHRoZSBtZXJnZSBzdWNjZWVkcyAoZGVmYXVsdCkiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9tZXJnZS5jOjE5NgotbXNnaWQgImVkaXQgbWVzc2FnZSBiZWZvcmUgY29tbWl0dGluZyIKLW1zZ3N0ciAiIgorbXNnc3RyICJMZXMgc3RyYXTDqWdpZXMgcGVyc29ubmFsaXPDqWVzIHNvbnQgOiIKIAogIzogYnVpbHRpbi9tZXJnZS5jOjE5OAotbXNnaWQgImFsbG93IGZhc3QtZm9yd2FyZCAoZGVmYXVsdCkiCi1tc2dzdHIgIiIKK21zZ2lkICJkbyBub3Qgc2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgorbXNnc3RyICJuZSBwYXMgYWZmaWNoZXIgdW4gZGlmZnN0YXQgw6AgbGEgZmluIGRlIGxhIGZ1c2lvbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwMAotbXNnaWQgImFib3J0IGlmIGZhc3QtZm9yd2FyZCBpcyBub3QgcG9zc2libGUiCi1tc2dzdHIgIiIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDEKK21zZ2lkICJzaG93IGEgZGlmZnN0YXQgYXQgdGhlIGVuZCBvZiB0aGUgbWVyZ2UiCittc2dzdHIgImFmZmljaGVyIHVuIGRpZmZzdGF0IMOgIGxhIGZpbiBkZSBsYSBmdXNpb24iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMKLW1zZ2lkICJWZXJpZnkgdGhhdCB0aGUgbmFtZWQgY29tbWl0IGhhcyBhIHZhbGlkIEdQRyBzaWduYXR1cmUiCi1tc2dzdHIgIiIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDIKK21zZ2lkICIoc3lub255bSB0byAtLXN0YXQpIgorbXNnc3RyICIoc3lub255bWUgZGUgLS1zdGF0KSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNCBidWlsdGluL25vdGVzLmM6ODY2IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCi1tc2dpZCAic3RyYXRlZ3kiCisjOiBidWlsdGluL21lcmdlLmM6MjA0Cittc2dpZCAiYWRkIChhdCBtb3N0IDxuPikgZW50cmllcyBmcm9tIHNob3J0bG9nIHRvIG1lcmdlIGNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDUKLW1zZ2lkICJtZXJnZSBzdHJhdGVneSB0byB1c2UiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9tZXJnZS5jOjIwNgotbXNnaWQgIm9wdGlvbj12YWx1ZSIKLW1zZ3N0ciAiIgorImFqb3V0ZXIgKGF1IHBsdXMgPG4+KSDDqWzDqW1lbnRzIGR1IGpvdXJuYWwgY291cnQgYXUgbWVzc2FnZSBkZSB2YWxpZGF0aW9uIGRlICIKKyJsYSBmdXNpb24iCiAKICM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDcKLW1zZ2lkICJvcHRpb24gZm9yIHNlbGVjdGVkIG1lcmdlIHN0cmF0ZWd5IgotbXNnc3RyICIiCittc2dpZCAiY3JlYXRlIGEgc2luZ2xlIGNvbW1pdCBpbnN0ZWFkIG9mIGRvaW5nIGEgbWVyZ2UiCittc2dzdHIgImNyw6llciB1bmUgdmFsaWRhdGlvbiB1bmlxdWUgYXUgbGlldSBkZSBmYWlyZSB1bmUgZnVzaW9uIgogCiAjOiBidWlsdGluL21lcmdlLmM6MjA5Cittc2dpZCAicGVyZm9ybSBhIGNvbW1pdCBpZiB0aGUgbWVyZ2Ugc3VjY2VlZHMgKGRlZmF1bHQpIgorbXNnc3RyICJlZmZlY3R1ZXIgdW5lIHZhbGlkYXRpb24gc2kgbGEgZnVzaW9uIHLDqXVzc2l0IChkw6lmYXV0KSIKKworIzogYnVpbHRpbi9tZXJnZS5jOjIxMQorbXNnaWQgImVkaXQgbWVzc2FnZSBiZWZvcmUgY29tbWl0dGluZyIKK21zZ3N0ciAiw6lkaXRlciBsZSBtZXNzYWdlIGF2YW50IGxhIHZhbGlkYXRpb24iCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTIKK21zZ2lkICJhbGxvdyBmYXN0LWZvcndhcmQgKGRlZmF1bHQpIgorbXNnc3RyICJhdXRvcmlzZXIgbCdhdmFuY2UgcmFwaWRlIChkw6lmYXV0KSIKKworIzogYnVpbHRpbi9tZXJnZS5jOjIxNAorbXNnaWQgImFib3J0IGlmIGZhc3QtZm9yd2FyZCBpcyBub3QgcG9zc2libGUiCittc2dzdHIgImFiYW5kb25uZXIgc2kgbCdhdmFuY2UgcmFwaWRlIG4nZXN0IHBhcyBwb3NzaWJsZSIKKworIzogYnVpbHRpbi9tZXJnZS5jOjIxOAorbXNnaWQgIlZlcmlmeSB0aGF0IHRoZSBuYW1lZCBjb21taXQgaGFzIGEgdmFsaWQgR1BHIHNpZ25hdHVyZSIKK21zZ3N0ciAiVsOpcmlmaWVyIHF1ZSBsYSB2YWxpZGF0aW9uIGEgdW5lIHNpZ25hdHVyZSBHUEcgdmFsaWRlIgorCisjOiBidWlsdGluL21lcmdlLmM6MjE5IGJ1aWx0aW4vbm90ZXMuYzo3MzggYnVpbHRpbi9yZXZlcnQuYzo4OQorbXNnaWQgInN0cmF0ZWd5IgorbXNnc3RyICJzdHJhdMOpZ2llIgorCisjOiBidWlsdGluL21lcmdlLmM6MjIwCittc2dpZCAibWVyZ2Ugc3RyYXRlZ3kgdG8gdXNlIgorbXNnc3RyICJzdHJhdMOpZ2llIGRlIGZ1c2lvbiDDoCB1dGlsaXNlciIKKworIzogYnVpbHRpbi9tZXJnZS5jOjIyMQorbXNnaWQgIm9wdGlvbj12YWx1ZSIKK21zZ3N0ciAib3B0aW9uPXZhbGV1ciIKKworIzogYnVpbHRpbi9tZXJnZS5jOjIyMgorbXNnaWQgIm9wdGlvbiBmb3Igc2VsZWN0ZWQgbWVyZ2Ugc3RyYXRlZ3kiCittc2dzdHIgIm9wdGlvbiBwb3VyIGxhIHN0cmF0w6lnaWUgZGUgZnVzaW9uIHPDqWxlY3Rpb25uw6llIgorCisjOiBidWlsdGluL21lcmdlLmM6MjI0CiBtc2dpZCAibWVyZ2UgY29tbWl0IG1lc3NhZ2UgKGZvciBhIG5vbi1mYXN0LWZvcndhcmQgbWVyZ2UpIgogbXNnc3RyICIiCisibWVzc2FnZSBkZSB2YWxpZGF0aW9uIGRlIGxhIGZ1c2lvbiAocG91ciB1bmUgZnVzaW9uIHNhbnMgYXZhbmNlIHJhcGlkZSkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjgKIG1zZ2lkICJhYm9ydCB0aGUgY3VycmVudCBpbi1wcm9ncmVzcyBtZXJnZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJhYmFuZG9ubmVyIGxhIGZ1c2lvbiBlbiBjb3VycyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI0MgorIzogYnVpbHRpbi9tZXJnZS5jOjI1NwogbXNnaWQgImNvdWxkIG5vdCBydW4gc3Rhc2guIgotbXNnc3RyICIiCittc2dzdHIgImltcG9zc2libGUgZGUgbGFuY2VyIGxlIHJlbWlzYWdlLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI0NworIzogYnVpbHRpbi9tZXJnZS5jOjI2MgogbXNnaWQgInN0YXNoIGZhaWxlZCIKLW1zZ3N0ciAiIgorbXNnc3RyICLDqWNoZWMgZHUgcmVtaXNhZ2UiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNTIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyNjcKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IGEgdmFsaWQgb2JqZWN0OiAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJwYXMgdW4gb2JqZXQgdmFsaWRlIDogJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNzEgYnVpbHRpbi9tZXJnZS5jOjI4OAorIzogYnVpbHRpbi9tZXJnZS5jOjI4NiBidWlsdGluL21lcmdlLmM6MzAzCiBtc2dpZCAicmVhZC10cmVlIGZhaWxlZCIKLW1zZ3N0ciAiIgorbXNnc3RyICJyZWFkLXRyZWUgYSDDqWNob3XDqSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjMxOAorIzogYnVpbHRpbi9tZXJnZS5jOjMzMwogbXNnaWQgIiAobm90aGluZyB0byBzcXVhc2gpIgogbXNnc3RyICIgKHJpZW4gw6AgY29tcHJlc3NlcikiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozMzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozNDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3F1YXNoIGNvbW1pdCAtLSBub3QgdXBkYXRpbmcgSEVBRFxuIgotbXNnc3RyICIiCittc2dzdHIgIlZhbGlkYXRpb24gY29tcHJlc3PDqWUgLS0gSEVBRCBub24gbWlzZSDDoCBqb3VyXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozNjMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozNzgKIG1zZ2lkICJXcml0aW5nIFNRVUFTSF9NU0ciCi1tc2dzdHIgIiIKK21zZ3N0ciAiw4ljcml0dXJlIGRlIFNRVUFTSF9NU0ciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozNjUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozODAKIG1zZ2lkICJGaW5pc2hpbmcgU1FVQVNIX01TRyIKLW1zZ3N0ciAiIgorbXNnc3RyICJGaW5pdGlvbiBkZSBTUVVBU0hfTVNHIgogCi0jOiBidWlsdGluL21lcmdlLmM6Mzg4CisjOiBidWlsdGluL21lcmdlLmM6NDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIG1lcmdlIG1lc3NhZ2UgLS0gbm90IHVwZGF0aW5nIEhFQURcbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJQYXMgZGUgbWVzc2FnZSBkZSBmdXNpb24gLS0gcGFzIGRlIG1pc2Ugw6Agam91ciBkZSBIRUFEXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo0MzgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo0NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGNvbW1pdCIKLW1zZ3N0ciAiIgorbXNnc3RyICInJXMnIG5lIHBvaW50ZSBwYXMgc3VyIHVuIGNvbW1pdCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjU1MAorIzogYnVpbHRpbi9tZXJnZS5jOjU2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJCYWQgYnJhbmNoLiVzLm1lcmdlb3B0aW9ucyBzdHJpbmc6ICVzIgotbXNnc3RyICIiCittc2dzdHIgIk1hdXZhaXNlIGNoYcOubmUgYnJhbmNoLiVzLm1lcmdlb3B0aW9ucyA6ICVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6NjQzCisjOiBidWlsdGluL21lcmdlLmM6NjU3CiBtc2dpZCAiZ2l0IHdyaXRlLXRyZWUgZmFpbGVkIHRvIHdyaXRlIGEgdHJlZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL21lcmdlLmM6NjcxCi1tc2dpZCAiTm90IGhhbmRsaW5nIGFueXRoaW5nIG90aGVyIHRoYW4gdHdvIGhlYWRzIG1lcmdlLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgd3JpdGUtdHJlZSBhIMOpY2hvdcOpIMOgIMOpY3JpcmUgdW4gYXJicmUiCiAKICM6IGJ1aWx0aW4vbWVyZ2UuYzo2ODUKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiVW5rbm93biBvcHRpb24gZm9yIG1lcmdlLXJlY3Vyc2l2ZTogLVglcyIKLW1zZ3N0ciAiIgorbXNnaWQgIk5vdCBoYW5kbGluZyBhbnl0aGluZyBvdGhlciB0aGFuIHR3byBoZWFkcyBtZXJnZS4iCittc2dzdHIgIkltcG9zc2libGUgZGUgZ8OpcmVyIGF1dHJlIGNob3NlIHF1ZSBsYSBmdXNpb24gZGUgZGV1eCB0w6p0ZXMuIgogCiAjOiBidWlsdGluL21lcmdlLmM6Njk5CiAjLCBjLWZvcm1hdAotbXNnaWQgInVuYWJsZSB0byB3cml0ZSAlcyIKLW1zZ3N0ciAiIgorbXNnaWQgIlVua25vd24gb3B0aW9uIGZvciBtZXJnZS1yZWN1cnNpdmU6IC1YJXMiCittc2dzdHIgIk9wdGlvbnMgaW5jb25udWUgcG91ciBtZXJnZS1yZWN1cnNpdmUgOiAtWCVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6Nzg4CisjOiBidWlsdGluL21lcmdlLmM6NzEzCisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ8OpY3JpcmUgJXMiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgZnJvbSAnJXMnIgotbXNnc3RyICIiCittc2dzdHIgIkltcG9zc2libGUgZGUgbGlyZSBkZXB1aXMgJyVzJyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjc5NworIzogYnVpbHRpbi9tZXJnZS5jOjgxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgY29tbWl0dGluZyBtZXJnZTsgdXNlICdnaXQgY29tbWl0JyB0byBjb21wbGV0ZSB0aGUgbWVyZ2UuXG4iCiBtc2dzdHIgIiIKKyJQYXMgZGUgdmFsaWRhdGlvbiBkZSBsYSBmdXNpb24gOyB1dGlsaXNleiAnZ2l0IGNvbW1pdCcgcG91ciB0ZXJtaW5lciBsYSAiCisiZnVzaW9uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODAzCisjOiBidWlsdGluL21lcmdlLmM6ODE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJQbGVhc2UgZW50ZXIgYSBjb21taXQgbWVzc2FnZSB0byBleHBsYWluIHdoeSB0aGlzIG1lcmdlIGlzIG5lY2Vzc2FyeSxcbiIKQEAgLTYyNTYsODk3ICs2OTM0LDkzMiBAQAogIkxpbmVzIHN0YXJ0aW5nIHdpdGggJyVjJyB3aWxsIGJlIGlnbm9yZWQsIGFuZCBhbiBlbXB0eSBtZXNzYWdlIGFib3J0c1xuIgogInRoZSBjb21taXQuXG4iCiBtc2dzdHIgIiIKKyJWZXVpbGxleiBlbnRyZXIgdW4gbWVzc2FnZSBkZSB2YWxpZGF0aW9uIHBvdXIgZXhwbGlxdWVyIGVuIHF1b2kgY2V0dGUgZnVzaW9uICIKKyJlc3RcbiIKKyJuw6ljZXNzYWlyZSwgc3VydG91dCBzaSBjZWxhIGZ1c2lvbm5lIHVuZSBicmFuY2hlIGFtb250IG1pc2Ugw6Agam91ciBkYW5zIHVuZSAiCisiYnJhbmNoZSBkZSBzdWpldC5cbiIKKyJcbiIKKyJMZXMgbGlnbmVzIGNvbW1lbsOnYW50IHBhciAnJWMnIHNlcm9udCBpZ25vcsOpZXMsIGV0IHVuIG1lc3NhZ2UgdmlkZVxuIgorImFiYW5kb25uZSBsYSB2YWxpZGF0aW9uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODI3CisjOiBidWlsdGluL21lcmdlLmM6ODQxCiBtc2dpZCAiRW1wdHkgY29tbWl0IG1lc3NhZ2UuIgotbXNnc3RyICIiCittc2dzdHIgIk1lc3NhZ2UgZGUgdmFsaWRhdGlvbiB2aWRlLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjgzOQorIzogYnVpbHRpbi9tZXJnZS5jOjg1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJXb25kZXJmdWwuXG4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiTWVydmVpbGxldXguXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5MDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXV0b21hdGljIG1lcmdlIGZhaWxlZDsgZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBjb21taXQgdGhlIHJlc3VsdC5cbiIKIG1zZ3N0ciAiIgorIkxhIGZ1c2lvbiBhdXRvbWF0aXF1ZSBhIMOpY2hvdcOpIDsgcsOpZ2xleiBsZXMgY29uZmxpdHMgZXQgdmFsaWRleiBsZSAiCisicsOpc3VsdGF0LlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTIwCisjOiBidWlsdGluL21lcmdlLmM6OTM0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgaXMgbm90IGEgY29tbWl0IgotbXNnc3RyICIiCittc2dzdHIgIiclcycgbidlc3QgcGFzIHVuZSB2YWxpZGF0aW9uIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTYxCisjOiBidWlsdGluL21lcmdlLmM6OTc1CiBtc2dpZCAiTm8gY3VycmVudCBicmFuY2guIgotbXNnc3RyICIiCittc2dzdHIgIlBhcyBkZSBicmFuY2hlIGNvdXJhbnRlLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk2MworIzogYnVpbHRpbi9tZXJnZS5jOjk3NwogbXNnaWQgIk5vIHJlbW90ZSBmb3IgdGhlIGN1cnJlbnQgYnJhbmNoLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJQYXMgZGUgYnJhbmNoZSBkaXN0YW50ZSBwb3VyIGxhIGJyYW5jaGUgY291cmFudGUuIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTY1CisjOiBidWlsdGluL21lcmdlLmM6OTc5CiBtc2dpZCAiTm8gZGVmYXVsdCB1cHN0cmVhbSBkZWZpbmVkIGZvciB0aGUgY3VycmVudCBicmFuY2guIgotbXNnc3RyICIiCittc2dzdHIgIlBhcyBkZSBicmFuY2hlIGFtb250IHBhciBkw6lmYXV0IGTDqWZpbmllIHBvdXIgbGEgYnJhbmNoZSBjb3VyYW50ZS4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5ODQKICMsIGMtZm9ybWF0Ci1tc2dpZCAiTm8gcmVtb3RlIHRyYWNraW5nIGJyYW5jaCBmb3IgJXMgZnJvbSAlcyIKLW1zZ3N0ciAiIgorbXNnaWQgIk5vIHJlbW90ZS10cmFja2luZyBicmFuY2ggZm9yICVzIGZyb20gJXMiCittc2dzdHIgIlBhcyBkZSBicmFuY2hlIGRlIHN1aXZpIHBvdXIgJXMgZGVwdWlzICVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTA1NyBidWlsdGluL21lcmdlLmM6MTIxNAotIywgYy1mb3JtYXQKLW1zZ2lkICIlcyAtIG5vdCBzb21ldGhpbmcgd2UgY2FuIG1lcmdlIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTI1CisjOiBidWlsdGluL21lcmdlLmM6MTE0MAogbXNnaWQgIlRoZXJlIGlzIG5vIG1lcmdlIHRvIGFib3J0IChNRVJHRV9IRUFEIG1pc3NpbmcpLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJJbCBuJ3kgYSBwYXMgZGUgZnVzaW9uIMOgIGFiYW5kb25uZXIgKE1FUkdFX0hFQUQgbWFucXVhbnQpLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNDEgZ2l0LXB1bGwuc2g6MzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTU2IGdpdC1wdWxsLnNoOjMxCiBtc2dpZCAiIgogIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBtZXJnZSAoTUVSR0VfSEVBRCBleGlzdHMpLlxuIgogIlBsZWFzZSwgY29tbWl0IHlvdXIgY2hhbmdlcyBiZWZvcmUgeW91IGNhbiBtZXJnZS4iCiBtc2dzdHIgIiIKKyJWb3VzIG4nYXZleiBwYXMgdGVybWluw6kgdm90cmUgZnVzaW9uIChNRVJHRV9IRUFEIGV4aXN0ZSkuXG4iCisiVmV1aWxsZXogdmFsaWRlciB2b3MgY2hhbmdlbWVudHMgYXZhbnQgZGUgcG91dm9pciBmdXNpb25uZXIuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE0NCBnaXQtcHVsbC5zaDozNAorIzogYnVpbHRpbi9tZXJnZS5jOjExNTkgZ2l0LXB1bGwuc2g6MzQKIG1zZ2lkICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgbWVyZ2UgKE1FUkdFX0hFQUQgZXhpc3RzKS4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiVm91cyBuJ2F2ZXogcGFzIHRlcm1pbsOpIHZvdHJlIGZ1c2lvbiAoTUVSR0VfSEVBRCBleGlzdGUpLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNDgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTYzCiBtc2dpZCAiIgogIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBjaGVycnktcGljayAoQ0hFUlJZX1BJQ0tfSEVBRCBleGlzdHMpLlxuIgogIlBsZWFzZSwgY29tbWl0IHlvdXIgY2hhbmdlcyBiZWZvcmUgeW91IGNhbiBtZXJnZS4iCiBtc2dzdHIgIiIKKyJWb3VzIG4nYXZleiBwYXMgdGVybWluw6kgdm90cmUgcGljb3JhZ2UgKENIRVJSWV9QSUNLX0hFQUQgZXhpc3RlKS5cbiIKKyJWZXVpbGxleiB2YWxpZGVyIHZvcyBjaGFuZ2VtZW50cyBhdmFudCBkZSBwb3V2b2lyIGZ1c2lvbm5lci4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTUxCisjOiBidWlsdGluL21lcmdlLmM6MTE2NgogbXNnaWQgIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBjaGVycnktcGljayAoQ0hFUlJZX1BJQ0tfSEVBRCBleGlzdHMpLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJWb3VzIG4nYXZleiBwYXMgdGVybWluw6kgdm90cmUgcGljb3JhZ2UgKENIRVJSWV9QSUNLX0hFQUQgZXhpc3RlKS4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTYwCisjOiBidWlsdGluL21lcmdlLmM6MTE3NQogbXNnaWQgIllvdSBjYW5ub3QgY29tYmluZSAtLXNxdWFzaCB3aXRoIC0tbm8tZmYuIgotbXNnc3RyICIiCittc2dzdHIgIlZvdXMgbmUgcG91dmV6IHBhcyBjb21iaW5lciAtLXNxdWFzaCBhdmVjIC0tbm8tZmYuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE2NQotbXNnaWQgIllvdSBjYW5ub3QgY29tYmluZSAtLW5vLWZmIHdpdGggLS1mZi1vbmx5LiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL21lcmdlLmM6MTE3MgorIzogYnVpbHRpbi9tZXJnZS5jOjExODQKIG1zZ2lkICJObyBjb21taXQgc3BlY2lmaWVkIGFuZCBtZXJnZS5kZWZhdWx0VG9VcHN0cmVhbSBub3Qgc2V0LiIKIG1zZ3N0ciAiIgorIlBhcyBkZSB2YWxpZGF0aW9uIHNww6ljaWZpw6llIGV0IG1lcmdlLmRlZmF1bHRUb1Vwc3RyZWFtIG4nZXN0IHBhcyBkw6lmaW5pLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyMDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjE2CiBtc2dpZCAiQ2FuIG1lcmdlIG9ubHkgZXhhY3RseSBvbmUgY29tbWl0IGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAiIgorIlBvc3NpYmxlIGRlIGZ1c2lvbm5lciBleGFjdGVtZW50IHVuZSBzZXVsZSB2YWxpZGF0aW9uIGRhbnMgdW5lIHTDqnRlIHZpZGUiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA3CisjOiBidWlsdGluL21lcmdlLmM6MTIxOQogbXNnaWQgIlNxdWFzaCBjb21taXQgaW50byBlbXB0eSBoZWFkIG5vdCBzdXBwb3J0ZWQgeWV0IgotbXNnc3RyICIiCittc2dzdHIgIkxhIHZhbGlkYXRpb24gY29tcHJlc3PDqWUgdmVycyB1bmUgdMOqdGUgdmlkZSBuJ2VzdCBwYXMgZW5jb3JlIHN1cHBvcnTDqWUiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA5CisjOiBidWlsdGluL21lcmdlLmM6MTIyMQogbXNnaWQgIk5vbi1mYXN0LWZvcndhcmQgY29tbWl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgaW50byBhbiBlbXB0eSBoZWFkIgotbXNnc3RyICIiCittc2dzdHIgIlVuZSB2YWxpZGF0aW9uIHNhbnMgYXZhbmNlIHJhcGlkZSBuJ2EgcGFzIGRlIHNlbnMgZGFucyB1bmUgdMOqdGUgdmlkZSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNjUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC0gbm90IHNvbWV0aGluZyB3ZSBjYW4gbWVyZ2UiCittc2dzdHIgIiVzIC0gcGFzIHBvc3NpYmxlIGRlIGZ1c2lvbm5lciBjZWNpIgorCisjOiBidWlsdGluL21lcmdlLmM6MTI3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGFuIHVudHJ1c3RlZCBHUEcgc2lnbmF0dXJlLCBhbGxlZ2VkbHkgYnkgJXMuIgotbXNnc3RyICIiCittc2dzdHIgIkxhIHZhbGlkYXRpb24gJXMgYSB1bmUgc2lnbmF0dXJlIEdQRyBub24gZmlhYmxlLCBwcsOpdGVuZHVtZW50IHBhciAlcy4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjY4CisjOiBidWlsdGluL21lcmdlLmM6MTI4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGEgYmFkIEdQRyBzaWduYXR1cmUgYWxsZWdlZGx5IGJ5ICVzLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJMYSB2YWxpZGF0aW9uICVzIGEgdW5lIG1hdXZhaXNlIHNpZ25hdHVyZSBHUEcgcHLDqXRlbmR1bWVudCBwYXIgJXMuIgogCiAjLiAnTicKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjcxCisjOiBidWlsdGluL21lcmdlLmM6MTI4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgZG9lcyBub3QgaGF2ZSBhIEdQRyBzaWduYXR1cmUuIgotbXNnc3RyICIiCittc2dzdHIgIkxhIHZhbGlkYXRpb24gJXMgbidhIHBhcyBkZSBzaWduYXR1cmUgR1BHLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNzQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBoYXMgYSBnb29kIEdQRyBzaWduYXR1cmUgYnkgJXNcbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJMYSB2YWxpZGF0aW9uICVzIGEgdW5lIHNpZ25hdHVyZSBHUEcgY29ycmVjdGUgcGFyICVzXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzU4CisjOiBidWlsdGluL21lcmdlLmM6MTM3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJVcGRhdGluZyAlcy4uJXNcbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJNaXNlIMOgIGpvdXIgJXMuLiVzXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzk3CisjOiBidWlsdGluL21lcmdlLmM6MTQwOQogIywgYy1mb3JtYXQKIG1zZ2lkICJUcnlpbmcgcmVhbGx5IHRyaXZpYWwgaW4taW5kZXggbWVyZ2UuLi5cbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJFc3NhaSBkZSBmdXNpb24gdnJhaW1lbnQgdHJpdmlhbGUgZGFucyBsJ2luZGV4Li4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDA0CisjOiBidWlsdGluL21lcmdlLmM6MTQxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3BlLlxuIgotbXNnc3RyICIiCittc2dzdHIgIk5vbi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0MzYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDQ4CiBtc2dpZCAiTm90IHBvc3NpYmxlIHRvIGZhc3QtZm9yd2FyZCwgYWJvcnRpbmcuIgotbXNnc3RyICIiCittc2dzdHIgIlBhcyBwb3NzaWJsZSBkJ2F2YW5jZXIgcmFwaWRlbWVudCwgYWJhbmRvbi4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDU5IGJ1aWx0aW4vbWVyZ2UuYzoxNTM4CisjOiBidWlsdGluL21lcmdlLmM6MTQ3MSBidWlsdGluL21lcmdlLmM6MTU1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZXdpbmRpbmcgdGhlIHRyZWUgdG8gcHJpc3RpbmUuLi5cbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJSZXRvdXIgZGUgbCdhcmJyZSDDoCBsJ29yaWdpbmFsLi4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDYzCisjOiBidWlsdGluL21lcmdlLmM6MTQ3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJUcnlpbmcgbWVyZ2Ugc3RyYXRlZ3kgJXMuLi5cbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJFc3NhaSBkZSBsYSBzdHJhdMOpZ2llIGRlIGZ1c2lvbiAlcy4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTUyOQorIzogYnVpbHRpbi9tZXJnZS5jOjE1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbWVyZ2Ugc3RyYXRlZ3kgaGFuZGxlZCB0aGUgbWVyZ2UuXG4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiQXVjdW5lIHN0cmF0w6lnaWUgZGUgZnVzaW9uIG4nYSBwcmlzIGVuIGNoYXJnZSBsYSBmdXNpb24uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTMxCisjOiBidWlsdGluL21lcmdlLmM6MTU0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJNZXJnZSB3aXRoIHN0cmF0ZWd5ICVzIGZhaWxlZC5cbiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL21lcmdlLmM6MTU0MAotIywgYy1mb3JtYXQKLW1zZ2lkICJVc2luZyB0aGUgJXMgdG8gcHJlcGFyZSByZXNvbHZpbmcgYnkgaGFuZC5cbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJMYSBmdXNpb24gYXZlYyBsYSBzdHJhdMOpZ2llICVzIGEgw6ljaG91w6kuXG4iCiAKICM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTUyCiAjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIHRoZSAlcyB0byBwcmVwYXJlIHJlc29sdmluZyBieSBoYW5kLlxuIgorbXNnc3RyICJVdGlsaXNhdGlvbiBkZSAlcyBwb3VyIHByw6lwYXJlciBsYSByw6lzb2x1dGlvbiDDoCBsYSBtYWluLlxuIgorCisjOiBidWlsdGluL21lcmdlLmM6MTU2NAorIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvbWF0aWMgbWVyZ2Ugd2VudCB3ZWxsOyBzdG9wcGVkIGJlZm9yZSBjb21taXR0aW5nIGFzIHJlcXVlc3RlZFxuIgogbXNnc3RyICIiCisiTGEgZnVzaW9uIGF1dG9tYXRpcXVlIGEgcsOpdXNzaSA7IHN0b3Bww6llIGF2YW50IGxhIHZhbGlkYXRpb24gY29tbWUgZGVtYW5kw6lcbiIKIAogIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MjYKIG1zZ2lkICJnaXQgbWVyZ2UtYmFzZSBbLWF8LS1hbGxdIDxjb21taXQ+IDxjb21taXQ+Li4uIgotbXNnc3RyICIiCittc2dzdHIgImdpdCBtZXJnZS1iYXNlIFstYXwtLWFsbF0gPHZhbGlkYXRpb24+IDx2YWxpZGF0aW9uPi4uLiIKIAogIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MjcKIG1zZ2lkICJnaXQgbWVyZ2UtYmFzZSBbLWF8LS1hbGxdIC0tb2N0b3B1cyA8Y29tbWl0Pi4uLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgbWVyZ2UtYmFzZSBbLWF8LS1hbGxdIC0tb2N0b3B1cyA8dmFsaWRhdGlvbj4uLi4iCiAKICM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjI4CiBtc2dpZCAiZ2l0IG1lcmdlLWJhc2UgLS1pbmRlcGVuZGVudCA8Y29tbWl0Pi4uLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgbWVyZ2UtYmFzZSAtLWluZGVwZW5kZW50IDx2YWxpZGF0aW9uPi4uLiIKIAogIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MjkKIG1zZ2lkICJnaXQgbWVyZ2UtYmFzZSAtLWlzLWFuY2VzdG9yIDxjb21taXQ+IDxjb21taXQ+IgotbXNnc3RyICIiCittc2dzdHIgImdpdCBtZXJnZS1iYXNlIC0taXMtYW5jZXN0b3IgPHZhbGlkYXRpb24+IDx2YWxpZGF0aW9uPiIKIAogIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6OTgKIG1zZ2lkICJvdXRwdXQgYWxsIGNvbW1vbiBhbmNlc3RvcnMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZXIgdG91cyBsZXMgYW5jw6p0cmVzIGNvbW11bnMiCiAKICM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjk5CiBtc2dpZCAiZmluZCBhbmNlc3RvcnMgZm9yIGEgc2luZ2xlIG4td2F5IG1lcmdlIgotbXNnc3RyICIiCittc2dzdHIgInRyb3V2ZXIgbGVzIGFuY8OqdHJlcyBwb3VyIHVuZSBmdXNpb24gc2ltcGxlIMOgIG4gcG9pbnRzIgogCiAjOiBidWlsdGluL21lcmdlLWJhc2UuYzoxMDAKIG1zZ2lkICJsaXN0IHJldnMgbm90IHJlYWNoYWJsZSBmcm9tIG90aGVycyIKLW1zZ3N0ciAiIgorbXNnc3RyICJhZmZpY2hlciBsZXMgcsOpdmlzaW9ucyBpbmFjY2Vzc2libGVzIGRlcHVpcyBsZXMgYXV0cmVzIgogCiAjOiBidWlsdGluL21lcmdlLWJhc2UuYzoxMDIKIG1zZ2lkICJpcyB0aGUgZmlyc3Qgb25lIGFuY2VzdG9yIG9mIHRoZSBvdGhlcj8iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZXN0IGxlIHByZW1pZXIgYW5jw6p0cmUgZGUgbCdhdXRyZSA/IgogCiAjOiBidWlsdGluL21lcmdlLWZpbGUuYzo4CiBtc2dpZCAiIgogImdpdCBtZXJnZS1maWxlIFtvcHRpb25zXSBbLUwgbmFtZTEgWy1MIG9yaWcgWy1MIG5hbWUyXV1dIGZpbGUxIG9yaWdfZmlsZSAiCiAiZmlsZTIiCiBtc2dzdHIgIiIKKyJnaXQgbWVyZ2UtZmlsZSBbb3B0aW9uc10gWy1MIG5vbTEgWy1MIG9yaWcgWy1MIG5vbTJdXV0gZmljaGllcjEgb3JpZ19maWxlICIKKyJmaWNoaWVyMiIKIAogIzogYnVpbHRpbi9tZXJnZS1maWxlLmM6MzMKIG1zZ2lkICJzZW5kIHJlc3VsdHMgdG8gc3RhbmRhcmQgb3V0cHV0IgotbXNnc3RyICIiCittc2dzdHIgImVudm95ZXIgbGVzIHLDqXN1bHRhdHMgc3VyIGxhIHNvcnRpZSBzdGFuZGFyZCIKIAogIzogYnVpbHRpbi9tZXJnZS1maWxlLmM6MzQKIG1zZ2lkICJ1c2UgYSBkaWZmMyBiYXNlZCBtZXJnZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJ1dGlsaXNlciB1bmUgZnVzaW9uIGJhc8OpZSBzdXIgZGlmZjMiCiAKICM6IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjM1CiBtc2dpZCAiZm9yIGNvbmZsaWN0cywgdXNlIG91ciB2ZXJzaW9uIgotbXNnc3RyICIiCittc2dzdHIgInBvdXIgbGVzIGNvbmZsaXRzLCB1dGlsaXNlciBub3RyZSB2ZXJzaW9uIChvdXIpIgogCiAjOiBidWlsdGluL21lcmdlLWZpbGUuYzozNwogbXNnaWQgImZvciBjb25mbGljdHMsIHVzZSB0aGVpciB2ZXJzaW9uIgotbXNnc3RyICIiCittc2dzdHIgInBvdXIgbGVzIGNvbmZsaXRzLCB1dGlsaXNlciBsZXVyIHZlcnNpb24gKHRoZWlyKSIKIAogIzogYnVpbHRpbi9tZXJnZS1maWxlLmM6MzkKIG1zZ2lkICJmb3IgY29uZmxpY3RzLCB1c2UgYSB1bmlvbiB2ZXJzaW9uIgotbXNnc3RyICIiCittc2dzdHIgInBvdXIgbGVzIGNvbmZsaXRzLCB1dGlsaXNlciBsJ2Vuc2VtYmxlIGRlcyB2ZXJzaW9ucyIKIAogIzogYnVpbHRpbi9tZXJnZS1maWxlLmM6NDIKIG1zZ2lkICJmb3IgY29uZmxpY3RzLCB1c2UgdGhpcyBtYXJrZXIgc2l6ZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJwb3VyIGxlcyBjb25mbGl0cywgdXRpbGlzZXIgY2V0dGUgdGFpbGxlIGRlIG1hcnF1ZXVyIgogCiAjOiBidWlsdGluL21lcmdlLWZpbGUuYzo0MwogbXNnaWQgImRvIG5vdCB3YXJuIGFib3V0IGNvbmZsaWN0cyIKLW1zZ3N0ciAiIgorbXNnc3RyICJuZSBwYXMgYXZlcnRpciDDoCBwcm9wb3MgZGVzIGNvbmZsaXRzIgogCiAjOiBidWlsdGluL21lcmdlLWZpbGUuYzo0NQogbXNnaWQgInNldCBsYWJlbHMgZm9yIGZpbGUxL29yaWdfZmlsZS9maWxlMiIKLW1zZ3N0ciAiIgorbXNnc3RyICJkw6lmaW5pciBsZXMgbGFiZWxzIHBvdXIgZmljaGllcjEvb3JpZ19maWxlL2ZpY2hpZXIyIgogCiAjOiBidWlsdGluL21rdHJlZS5jOjY3CiBtc2dpZCAiZ2l0IG1rdHJlZSBbLXpdIFstLW1pc3NpbmddIFstLWJhdGNoXSIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgbWt0cmVlIFstel0gWy0tbWlzc2luZ10gWy0tYmF0Y2hdIgogCiAjOiBidWlsdGluL21rdHJlZS5jOjE1MwogbXNnaWQgImlucHV0IGlzIE5VTCB0ZXJtaW5hdGVkIgotbXNnc3RyICIiCittc2dzdHIgImwnZW50csOpZSBzZSB0ZXJtaW5lIHBhciBOVUwiCiAKICM6IGJ1aWx0aW4vbWt0cmVlLmM6MTU0IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjI0CiBtc2dpZCAiYWxsb3cgbWlzc2luZyBvYmplY3RzIgotbXNnc3RyICIiCittc2dzdHIgImF1dG9yaXNlciBsZXMgb2JqZXRzIG1hbnF1YW50cyIKIAogIzogYnVpbHRpbi9ta3RyZWUuYzoxNTUKIG1zZ2lkICJhbGxvdyBjcmVhdGlvbiBvZiBtb3JlIHRoYW4gb25lIHRyZWUiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYXV0b3Jpc2VyIGxhIGNyw6lhdGlvbiBkZSBwbHVzIGQndW4gYXJicmUiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxNAorIzogYnVpbHRpbi9tdi5jOjE1CiBtc2dpZCAiZ2l0IG12IFtvcHRpb25zXSA8c291cmNlPi4uLiA8ZGVzdGluYXRpb24+IgotbXNnc3RyICIiCittc2dzdHIgImdpdCBtdiBbb3B0aW9uc10gPHNvdXJjZT4uLi4gPGRlc3RpbmF0aW9uPiIKIAotIzogYnVpbHRpbi9tdi5jOjY0CisjOiBidWlsdGluL212LmM6NjcKIG1zZ2lkICJmb3JjZSBtb3ZlL3JlbmFtZSBldmVuIGlmIHRhcmdldCBleGlzdHMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZm9yY2VyIGxlIGTDqXBsYWNlbWVudC9yZW5vbW1hZ2UgbcOqbWUgc2kgbGEgY2libGUgZXhpc3RlIgogCi0jOiBidWlsdGluL212LmM6NjUKKyM6IGJ1aWx0aW4vbXYuYzo2OAogbXNnaWQgInNraXAgbW92ZS9yZW5hbWUgZXJyb3JzIgotbXNnc3RyICIiCittc2dzdHIgInNhdXRlciBsZXMgZXJyZXVycyBkZSBkw6lwbGFjZW1lbnQvcmVub21tYWdlIgogCi0jOiBidWlsdGluL212LmM6MTA4CisjOiBidWlsdGluL212LmM6MTEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoZWNraW5nIHJlbmFtZSBvZiAnJXMnIHRvICclcydcbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJWw6lyaWZpY2F0aW9uIGR1IHJlbm9tbWFnZSBkZSAnJXMnIGVuICclcydcbiIKIAotIzogYnVpbHRpbi9tdi5jOjExMgorIzogYnVpbHRpbi9tdi5jOjExNwogbXNnaWQgImJhZCBzb3VyY2UiCi1tc2dzdHIgIiIKK21zZ3N0ciAibWF1dmFpc2Ugc291cmNlIgogCi0jOiBidWlsdGluL212LmM6MTE1CisjOiBidWlsdGluL212LmM6MTIwCiBtc2dpZCAiY2FuIG5vdCBtb3ZlIGRpcmVjdG9yeSBpbnRvIGl0c2VsZiIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGTDqXBsYWNlciB1biByw6lwZXJ0b2lyZSBkYW5zIGx1aS1tw6ptZSIKIAotIzogYnVpbHRpbi9tdi5jOjExOAorIzogYnVpbHRpbi9tdi5jOjEyMwogbXNnaWQgImNhbm5vdCBtb3ZlIGRpcmVjdG9yeSBvdmVyIGZpbGUiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBkw6lwbGFjZXIgdW4gcsOpcGVydG9pcmUgc3VyIHVuIGZpY2hpZXIiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxMjgKKyM6IGJ1aWx0aW4vbXYuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHVoPyBEaXJlY3RvcnkgJXMgaXMgaW4gaW5kZXggYW5kIG5vIHN1Ym1vZHVsZT8iCittc2dzdHIgIkhlaW4gPyBMZSByw6lwZXJ0b2lyZSAlcyBlc3QgZGFucyBsJ2luZGV4IGV0IHBvdXJ0YW50IGF1Y3VuIHNvdXMtbW9kdWxlID8iCisKKyM6IGJ1aWx0aW4vbXYuYzoxMzEgYnVpbHRpbi9ybS5jOjMxOAorbXNnaWQgIlBsZWFzZSwgc3RhZ2UgeW91ciBjaGFuZ2VzIHRvIC5naXRtb2R1bGVzIG9yIHN0YXNoIHRoZW0gdG8gcHJvY2VlZCIKK21zZ3N0ciAiVmV1aWxsZXogaW5kZXhlciB2b3MgbW9kaWZpY2F0aW9ucyBkZSAuZ2l0bW9kdWxlcyBvdSByZW1pc2V6LWxlcyBwb3VyIGNvbnRpbnVlciIKKworIzogYnVpbHRpbi9tdi5jOjE0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJIdWg/ICUuKnMgaXMgaW4gaW5kZXg/IgotbXNnc3RyICIiCittc2dzdHIgIkhlaW4gPyAlLipzIGVzdCBkYW5zIGwnaW5kZXggPyIKIAotIzogYnVpbHRpbi9tdi5jOjE0MAorIzogYnVpbHRpbi9tdi5jOjE1OQogbXNnaWQgInNvdXJjZSBkaXJlY3RvcnkgaXMgZW1wdHkiCi1tc2dzdHIgIiIKK21zZ3N0ciAibGUgcsOpcGVydG9pcmUgc291cmNlIGVzdCB2aWRlIgogCi0jOiBidWlsdGluL212LmM6MTcxCisjOiBidWlsdGluL212LmM6MTkxCiBtc2dpZCAibm90IHVuZGVyIHZlcnNpb24gY29udHJvbCIKLW1zZ3N0ciAiIgorbXNnc3RyICJwYXMgc291cyBsZSBjb250csO0bGUgZGUgdmVyc2lvbiIKIAotIzogYnVpbHRpbi9tdi5jOjE3MworIzogYnVpbHRpbi9tdi5jOjE5MwogbXNnaWQgImRlc3RpbmF0aW9uIGV4aXN0cyIKLW1zZ3N0ciAiIgorbXNnc3RyICJsYSBkZXN0aW5hdGlvbiBleGlzdGUiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxODEKKyM6IGJ1aWx0aW4vbXYuYzoyMDEKICMsIGMtZm9ybWF0CiBtc2dpZCAib3ZlcndyaXRpbmcgJyVzJyIKLW1zZ3N0ciAiIgorbXNnc3RyICLDqWNyYXNlbWVudCBkZSAnJXMnIgogCi0jOiBidWlsdGluL212LmM6MTg0CisjOiBidWlsdGluL212LmM6MjA0CiBtc2dpZCAiQ2Fubm90IG92ZXJ3cml0ZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnw6ljcmFzZXIiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxODcKKyM6IGJ1aWx0aW4vbXYuYzoyMDcKIG1zZ2lkICJtdWx0aXBsZSBzb3VyY2VzIGZvciB0aGUgc2FtZSB0YXJnZXQiCi1tc2dzdHIgIiIKK21zZ3N0ciAibXVsdGlwbGVzIHNvdXJjZXMgcG91ciBsYSBtw6ptZSBkZXN0aW5hdGlvbiIKIAotIzogYnVpbHRpbi9tdi5jOjIwMgorIzogYnVpbHRpbi9tdi5jOjIyMgogIywgYy1mb3JtYXQKIG1zZ2lkICIlcywgc291cmNlPSVzLCBkZXN0aW5hdGlvbj0lcyIKIG1zZ3N0ciAiJXMsIHNvdXJjZT0lcywgZGVzdGluYXRpb249JXMiCiAKLSM6IGJ1aWx0aW4vbXYuYzoyMTIKKyM6IGJ1aWx0aW4vbXYuYzoyMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVuYW1pbmcgJXMgdG8gJXNcbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJSZW5vbW1hZ2UgZGUgJXMgZW4gJXNcbiIKIAotIzogYnVpbHRpbi9tdi5jOjIxNSBidWlsdGluL3JlbW90ZS5jOjczMQorIzogYnVpbHRpbi9tdi5jOjIzNSBidWlsdGluL3JlbW90ZS5jOjczMSBidWlsdGluL3JlcGFjay5jOjMzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW5hbWluZyAnJXMnIGZhaWxlZCIKLW1zZ3N0ciAiIgorbXNnc3RyICJsZSByZW5vbW1hZ2UgZGUgJyVzJyBhIMOpY2hvdcOpIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MTc1CisjOiBidWlsdGluL25hbWUtcmV2LmM6MjU5CiBtc2dpZCAiZ2l0IG5hbWUtcmV2IFtvcHRpb25zXSA8Y29tbWl0Pi4uLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgbmFtZS1yZXYgW29wdGlvbnNdIDx2YWxpZGF0aW9uPi4uLiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjI2MAogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1hbGwiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IG5hbWUtcmV2IFtvcHRpb25zXSAtLWFsbCIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NworIzogYnVpbHRpbi9uYW1lLXJldi5jOjI2MQogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1zdGRpbiIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgbmFtZS1yZXYgW29wdGlvbnNdIC0tc3RkaW4iCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMjkKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTMKIG1zZ2lkICJwcmludCBvbmx5IG5hbWVzIChubyBTSEEtMSkiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlcyBub21zIChwYXMgZGUgU0hBLTEpIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjMwCisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE0CiBtc2dpZCAib25seSB1c2UgdGFncyB0byBuYW1lIHRoZSBjb21taXRzIgotbXNnc3RyICIiCittc2dzdHIgInV0aWxpc2VyIHNldWxlbWVudCBsZXMgw6l0aXF1ZXR0ZXMgcG91ciBub21tZXIgbGVzIHZhbGlkYXRpb25zIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjMyCisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE2CiBtc2dpZCAib25seSB1c2UgcmVmcyBtYXRjaGluZyA8cGF0dGVybj4iCi1tc2dzdHIgIiIKK21zZ3N0ciAidXRpbGlzZXIgc2V1bGVtZW50IGxlcyByw6lmw6lyZW5jZXMgY29ycmVzcG9uZGFudCDDoCA8bW90aWY+IgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjM0CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE4CiBtc2dpZCAibGlzdCBhbGwgY29tbWl0cyByZWFjaGFibGUgZnJvbSBhbGwgcmVmcyIKIG1zZ3N0ciAiIgorImFmZmljaGVyIHRvdXRlcyBsZXMgdmFsaWRhdGlvbnMgYWNjZXNzaWJsZXMgZGVwdWlzIHRvdXRlcyBsZXMgcsOpZsOpcmVuY2VzIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjM1CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE5CiBtc2dpZCAicmVhZCBmcm9tIHN0ZGluIgotbXNnc3RyICIiCittc2dzdHIgImxpcmUgZGVwdWlzIGwnZW50csOpZSBzdGFuZGFyZCIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNgotbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIgotbXNnc3RyICIiCisjOiBidWlsdGluL25hbWUtcmV2LmM6MzIwCittc2dpZCAiYWxsb3cgdG8gcHJpbnQgYHVuZGVmaW5lZGAgbmFtZXMgKGRlZmF1bHQpIgorbXNnc3RyICJhdXRvcmlzZXIgbCdhZmZpY2hhZ2UgZGVzIG5vbXMgYG5vbiBkw6lmaW5pc2AgKHBhciBkw6lmYXV0KSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI2CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzI2Cittc2dpZCAiZGVyZWZlcmVuY2UgdGFncyBpbiB0aGUgaW5wdXQgKGludGVybmFsIHVzZSkiCittc2dzdHIgImTDqXLDqWbDqXJlbmNlciBsZXMgw6l0aXF1ZXR0ZXMgZW4gZW50csOpZSAodXNhZ2UgaW50ZXJuZSkiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNAogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIFtsaXN0IFs8b2JqZWN0Pl1dIgotbXNnc3RyICIiCittc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPHLDqWbDqXJlbmNlc19ub3Rlcz5dIFtsaXN0IFs8b2JqZWN0Pl1dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNQogbXNnaWQgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBhZGQgWy1mXSBbLW0gPG1zZz4gfCAtRiA8ZmlsZT4gfCAoLWMgfCAtQykgIgogIjxvYmplY3Q+XSBbPG9iamVjdD5dIgogbXNnc3RyICIiCisiZ2l0IG5vdGVzIFstLXJlZiA8csOpZsOpcmVuY2VzX25vdGVzPl0gYWRkIFstZl0gWy1tIDxtZXNzYWdlPiB8IC1GIDxmaWNoaWVyPiB8ICIKKyIoLWMgfCAtQykgPG9iamV0Pl0gWzxvYmpldD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjgKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNgogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGNvcHkgWy1mXSA8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+IgogbXNnc3RyICIiCisiZ2l0IG5vdGVzIFstLXJlZiA8csOpZsOpcmVuY2VzX25vdGVzPl0gY29weSBbLWZdIDxkZXB1aXMtb2JqZXQ+IDx2ZXJzLW9iamV0PiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI5CisjOiBidWlsdGluL25vdGVzLmM6MjcKIG1zZ2lkICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYXBwZW5kIFstbSA8bXNnPiB8IC1GIDxmaWxlPiB8ICgtYyB8IC1DKSAiCiAiPG9iamVjdD5dIFs8b2JqZWN0Pl0iCiBtc2dzdHIgIiIKKyJnaXQgbm90ZXMgWy0tcmVmIDxyw6lmw6lyZW5jZXNfbm90ZXM+XSBhcHBlbmQgWy1tIDxtZXNzYWdlPiB8IC1GIDxmaWNoaWVyPiB8ICgtIgorImMgfCAtQykgPG9iamV0Pl0gWzxvYmpldD5dIgorCisjOiBidWlsdGluL25vdGVzLmM6MjgKK21zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBlZGl0IFs8b2JqZWN0Pl0iCittc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPHLDqWbDqXJlbmNlc19ub3Rlcz5dIGVkaXQgWzxvYmpldD5dIgorCisjOiBidWlsdGluL25vdGVzLmM6MjkKK21zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBzaG93IFs8b2JqZWN0Pl0iCittc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPHLDqWbDqXJlbmNlc19ub3Rlcz5dIHNob3cgWzxvYmpldD5dIgogCiAjOiBidWlsdGluL25vdGVzLmM6MzAKLW1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBlZGl0IFs8b2JqZWN0Pl0iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9ub3Rlcy5jOjMxCi1tc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gc2hvdyBbPG9iamVjdD5dIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzozMgogbXNnaWQgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBtZXJnZSBbLXYgfCAtcV0gWy1zIDxzdHJhdGVneT4gXSA8bm90ZXNfcmVmPiIKIG1zZ3N0ciAiIgorImdpdCBub3RlcyBbLS1yZWYgPHLDqWbDqXJlbmNlc19ub3Rlcz5dIG1lcmdlIFstdiB8IC1xXSBbLXMgPHN0cmF0w6lnaWU+IF0gIgorIjxyw6lmw6lyZW5jZXNfbm90ZXM+IgorCisjOiBidWlsdGluL25vdGVzLmM6MzEKK21zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWy12IHwgLXFdIgorbXNnc3RyICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWy12IHwgLXFdIgorCisjOiBidWlsdGluL25vdGVzLmM6MzIKK21zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbLXYgfCAtcV0iCittc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFstdiB8IC1xXSIKIAogIzogYnVpbHRpbi9ub3Rlcy5jOjMzCi1tc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKLW1zZ3N0ciAiIgorbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHJlbW92ZSBbPG9iamVjdD4uLi5dIgorbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDxyw6lmw6lyZW5jZXNfbm90ZXM+XSByZW1vdmUgWzxvYmpldD4uLi5dIgogCiAjOiBidWlsdGluL25vdGVzLmM6MzQKLW1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbLXYgfCAtcV0iCi1tc2dzdHIgIiIKK21zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBwcnVuZSBbLW4gfCAtdl0iCittc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPHLDqWbDqXJlbmNlc19ub3Rlcz5dIHBydW5lIFstbiB8IC12XSIKIAogIzogYnVpbHRpbi9ub3Rlcy5jOjM1Ci1tc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gcmVtb3ZlIFs8b2JqZWN0Pi4uLl0iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9ub3Rlcy5jOjM2Ci1tc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gcHJ1bmUgWy1uIHwgLXZdIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzozNwogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGdldC1yZWYiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8csOpZsOpcmVuY2VzX25vdGVzPl0gZ2V0LXJlZiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQyCisjOiBidWlsdGluL25vdGVzLmM6NDAKIG1zZ2lkICJnaXQgbm90ZXMgW2xpc3QgWzxvYmplY3Q+XV0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IG5vdGVzIFtsaXN0IFs8b2JqZXQ+XV0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo0NworIzogYnVpbHRpbi9ub3Rlcy5jOjQ1CiBtc2dpZCAiZ2l0IG5vdGVzIGFkZCBbPG9wdGlvbnM+XSBbPG9iamVjdD5dIgotbXNnc3RyICIiCittc2dzdHIgImdpdCBub3RlcyBhZGQgWzxvcHRpb25zPl0gWzxvYmpldD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTIKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MAogbXNnaWQgImdpdCBub3RlcyBjb3B5IFs8b3B0aW9ucz5dIDxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IG5vdGVzIGNvcHkgWzxvcHRpb25zPl0gPGRlcHVpcy1vYmpldD4gPHZlcnMtb2JqZXQ+IgogCi0jOiBidWlsdGluL25vdGVzLmM6NTMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MQogbXNnaWQgImdpdCBub3RlcyBjb3B5IC0tc3RkaW4gWzxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD5dLi4uIgotbXNnc3RyICIiCittc2dzdHIgImdpdCBub3RlcyBjb3B5IC0tc3RkaW4gWzxkZXB1aXMtb2JqZXQ+IDx2ZXJzLW9iamV0Pl0uLi4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1OAorIzogYnVpbHRpbi9ub3Rlcy5jOjU2CiBtc2dpZCAiZ2l0IG5vdGVzIGFwcGVuZCBbPG9wdGlvbnM+XSBbPG9iamVjdD5dIgotbXNnc3RyICIiCittc2dzdHIgImdpdCBub3RlcyBhcHBlbmQgWzxvcHRpb25zPl0gWzxvYmpldD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2MQogbXNnaWQgImdpdCBub3RlcyBlZGl0IFs8b2JqZWN0Pl0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IG5vdGVzIGVkaXQgWzxvYmpldD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2NgogbXNnaWQgImdpdCBub3RlcyBzaG93IFs8b2JqZWN0Pl0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IG5vdGVzIHNob3cgWzxvYmpldD5dIgorCisjOiBidWlsdGluL25vdGVzLmM6NzEKK21zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgWzxvcHRpb25zPl0gPG5vdGVzX3JlZj4iCittc2dzdHIgImdpdCBub3RlcyBtZXJnZSBbPG9wdGlvbnM+XSA8csOpZsOpcmVuY2VzX25vdGVzPiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjcyCittc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFs8b3B0aW9ucz5dIgorbXNnc3RyICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWzxvcHRpb25zPl0iCiAKICM6IGJ1aWx0aW4vbm90ZXMuYzo3MwotbXNnaWQgImdpdCBub3RlcyBtZXJnZSBbPG9wdGlvbnM+XSA8bm90ZXNfcmVmPiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL25vdGVzLmM6NzQKLW1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWzxvcHRpb25zPl0iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9ub3Rlcy5jOjc1CiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tYWJvcnQgWzxvcHRpb25zPl0iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIC0tYWJvcnQgWzxvcHRpb25zPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4MAorIzogYnVpbHRpbi9ub3Rlcy5jOjc4CiBtc2dpZCAiZ2l0IG5vdGVzIHJlbW92ZSBbPG9iamVjdD5dIgotbXNnc3RyICIiCittc2dzdHIgImdpdCBub3RlcyByZW1vdmUgWzxvYmpldD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4MwogbXNnaWQgImdpdCBub3RlcyBwcnVuZSBbPG9wdGlvbnM+XSIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgbm90ZXMgcHJ1bmUgWzxvcHRpb25zPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg4CiBtc2dpZCAiZ2l0IG5vdGVzIGdldC1yZWYiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZ2l0IG5vdGVzIGdldC1yZWYiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMzkKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHN0YXJ0ICdzaG93JyBmb3Igb2JqZWN0ICclcyciCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBkw6ltYXJyZXIgJ3Nob3cnIHBvdXIgbCdvYmpldCAnJXMnIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTQzCisjOiBidWlsdGluL25vdGVzLmM6MTQxCiBtc2dpZCAiY291bGQgbm90IHJlYWQgJ3Nob3cnIG91dHB1dCIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgbGEgc29ydGllIGRlICdzaG93JyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE1MQorIzogYnVpbHRpbi9ub3Rlcy5jOjE0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gZmluaXNoICdzaG93JyBmb3Igb2JqZWN0ICclcyciCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBmaW5pciAnc2hvdycgcG91ciBsJ29iamV0ICclcyciCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxNjkgYnVpbHRpbi90YWcuYzozNDEKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxNjcgYnVpbHRpbi90YWcuYzozNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSBmaWxlICclcyciCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBjcsOpZXIgbGUgZmljaGllciAnJXMnIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTg4CisjOiBidWlsdGluL25vdGVzLmM6MTg2CiBtc2dpZCAiUGxlYXNlIHN1cHBseSB0aGUgbm90ZSBjb250ZW50cyB1c2luZyBlaXRoZXIgLW0gb3IgLUYgb3B0aW9uIgotbXNnc3RyICIiCittc2dzdHIgIlZldWlsbGV6IGZvdXJuaXIgbGUgY29udGVudSBkZSBsYSBub3RlIGVuIHV0aWxpc2FudCBsJ29wdGlvbiAtbSBvdSAtRiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjIwOSBidWlsdGluL25vdGVzLmM6OTcyCisjOiBidWlsdGluL25vdGVzLmM6MjA3IGJ1aWx0aW4vbm90ZXMuYzo4NDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3Zpbmcgbm90ZSBmb3Igb2JqZWN0ICVzXG4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiU3VwcHJlc3Npb24gZGUgbGEgbm90ZSBwb3VyIGwnb2JqZXQgJXNcbiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjIxMgorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBub3RlIG9iamVjdCIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ8OpY3JpcmUgbCdvYmpldCBub3RlIgogCiAjOiBidWlsdGluL25vdGVzLmM6MjE0Ci1tc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5vdGUgb2JqZWN0IgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzoyMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhlIG5vdGUgY29udGVudHMgaGFzIGJlZW4gbGVmdCBpbiAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJMZSBjb250ZW51IGRlIGxhIG5vdGUgYSDDqXTDqSBsYWlzc8OpIGRhbnMgJXMiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNDggYnVpbHRpbi90YWcuYzo1MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlYWQgJyVzJyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlICclcyciCiAKICM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDAKICMsIGMtZm9ybWF0Ci1tc2dpZCAiY2Fubm90IHJlYWQgJyVzJyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL25vdGVzLmM6MjUyIGJ1aWx0aW4vdGFnLmM6NTQzCi0jLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBvcGVuIG9yIHJlYWQgJyVzJyIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnb3V2cmlyIG91IGxpcmUgJyVzJyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3MSBidWlsdGluL25vdGVzLmM6NDQ0IGJ1aWx0aW4vbm90ZXMuYzo0NDYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MDYgYnVpbHRpbi9ub3Rlcy5jOjU2MCBidWlsdGluL25vdGVzLmM6NjQzCi0jOiBidWlsdGluL25vdGVzLmM6NjQ4IGJ1aWx0aW4vbm90ZXMuYzo3MjMgYnVpbHRpbi9ub3Rlcy5jOjc2NQotIzogYnVpbHRpbi9ub3Rlcy5jOjk2NyBidWlsdGluL3RhZy5jOjU1NgorIzogYnVpbHRpbi9ub3Rlcy5jOjI2OSBidWlsdGluL25vdGVzLmM6MzE2IGJ1aWx0aW4vbm90ZXMuYzozMTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNzggYnVpbHRpbi9ub3Rlcy5jOjQzMiBidWlsdGluL25vdGVzLmM6NTE1CisjOiBidWlsdGluL25vdGVzLmM6NTIwIGJ1aWx0aW4vbm90ZXMuYzo1OTUgYnVpbHRpbi9ub3Rlcy5jOjYzNworIzogYnVpbHRpbi9ub3Rlcy5jOjgzOSBidWlsdGluL3RhZy5jOjU1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgcmVmLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHLDqXNvdWRyZSAnJXMnIGNvbW1lIHVuZSByw6lmw6lyZW5jZSB2YWxpZGUuIgogCi0jOiBidWlsdGluL25vdGVzLmM6Mjc0CisjOiBidWlsdGluL25vdGVzLmM6MjcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWFkIG9iamVjdCAnJXMnLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGxpcmUgbCdvYmpldCAnJXMnLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI5OAotbXNnaWQgIkNhbm5vdCBjb21taXQgdW5pbml0aWFsaXplZC91bnJlZmVyZW5jZWQgbm90ZXMgdHJlZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL25vdGVzLmM6MzM5Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkJhZCBub3Rlcy5yZXdyaXRlTW9kZSB2YWx1ZTogJyVzJyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL25vdGVzLmM6MzQ5Ci0jLCBjLWZvcm1hdAotbXNnaWQgIlJlZnVzaW5nIHRvIHJld3JpdGUgbm90ZXMgaW4gJXMgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIgotbXNnc3RyICIiCi0KLSMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgaXMgdGhlIG5hbWUgb2YgdGhlCi0jLiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHNlY29uZCAlcyBpcyBpdHMgdmFsdWUKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNzYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQmFkICVzIHZhbHVlOiAnJXMnIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzo0NDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFsZm9ybWVkIGlucHV0IGxpbmU6ICclcycuIgotbXNnc3RyICIiCittc2dzdHIgIkxpZ25lIGVuIGVudHLDqWUgbWFsZm9ybcOpZSA6ICclcycuIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDU1CisjOiBidWlsdGluL25vdGVzLmM6MzI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBjb3B5IG5vdGVzIGZyb20gJyVzJyB0byAnJXMnIgotbXNnc3RyICIiCittc2dzdHIgIkltcG9zc2libGUgZGUgY29waWVyIGxlcyBub3RlcyBkZSAnJXMnIHZlcnMgJyVzJyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ5OSBidWlsdGluL25vdGVzLmM6NTUzIGJ1aWx0aW4vbm90ZXMuYzo2MjYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MzggYnVpbHRpbi9ub3Rlcy5jOjcxMSBidWlsdGluL25vdGVzLmM6NzU4Ci0jOiBidWlsdGluL25vdGVzLmM6MTAzMgorIzogYnVpbHRpbi9ub3Rlcy5jOjM3MSBidWlsdGluL25vdGVzLmM6NDI1IGJ1aWx0aW4vbm90ZXMuYzo0OTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MTAgYnVpbHRpbi9ub3Rlcy5jOjU4MyBidWlsdGluL25vdGVzLmM6NjMwCisjOiBidWlsdGluL25vdGVzLmM6OTA0CiBtc2dpZCAidG9vIG1hbnkgcGFyYW1ldGVycyIKLW1zZ3N0ciAiIgorbXNnc3RyICJ0cm9wIGRlIHBhcmFtw6h0cmVzIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTEyIGJ1aWx0aW4vbm90ZXMuYzo3NzEKKyM6IGJ1aWx0aW4vbm90ZXMuYzozODQgYnVpbHRpbi9ub3Rlcy5jOjY0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBub3RlIGZvdW5kIGZvciBvYmplY3QgJXMuIgotbXNnc3RyICIiCittc2dzdHIgIlBhcyBkZSBub3RlIHRyb3V2w6llIHBvdXIgbCdvYmpldCAlcy4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzQgYnVpbHRpbi9ub3Rlcy5jOjY5MQorIzogYnVpbHRpbi9ub3Rlcy5jOjQwNiBidWlsdGluL25vdGVzLmM6NTYzCiBtc2dpZCAibm90ZSBjb250ZW50cyBhcyBhIHN0cmluZyIKLW1zZ3N0ciAiIgorbXNnc3RyICJjb250ZW51IGRlIGxhIG5vdGUgc291cyBmb3JtZSBkZSBjaGHDrm5lIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTM3IGJ1aWx0aW4vbm90ZXMuYzo2OTQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MDkgYnVpbHRpbi9ub3Rlcy5jOjU2NgogbXNnaWQgIm5vdGUgY29udGVudHMgaW4gYSBmaWxlIgotbXNnc3RyICIiCittc2dzdHIgImNvbnRlbnUgZGUgbGEgbm90ZSBkYW5zIHVuIGZpY2hpZXIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzkgYnVpbHRpbi9ub3Rlcy5jOjU0MiBidWlsdGluL25vdGVzLmM6Njk2Ci0jOiBidWlsdGluL25vdGVzLmM6Njk5IGJ1aWx0aW4vdGFnLmM6NDc0CisjOiBidWlsdGluL25vdGVzLmM6NDExIGJ1aWx0aW4vbm90ZXMuYzo0MTQgYnVpbHRpbi9ub3Rlcy5jOjU2OAorIzogYnVpbHRpbi9ub3Rlcy5jOjU3MSBidWlsdGluL3RhZy5jOjQ3NAogbXNnaWQgIm9iamVjdCIKLW1zZ3N0ciAiIgorbXNnc3RyICJvYmpldCIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU0MCBidWlsdGluL25vdGVzLmM6Njk3CisjOiBidWlsdGluL25vdGVzLmM6NDEyIGJ1aWx0aW4vbm90ZXMuYzo1NjkKIG1zZ2lkICJyZXVzZSBhbmQgZWRpdCBzcGVjaWZpZWQgbm90ZSBvYmplY3QiCi1tc2dzdHIgIiIKK21zZ3N0ciAicsOpdXRpbGlzZXIgZXQgw6lkaXRlciBsJ29iamV0IGRlIG5vdGUgc3DDqWNpZmnDqSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU0MyBidWlsdGluL25vdGVzLmM6NzAwCisjOiBidWlsdGluL25vdGVzLmM6NDE1IGJ1aWx0aW4vbm90ZXMuYzo1NzIKIG1zZ2lkICJyZXVzZSBzcGVjaWZpZWQgbm90ZSBvYmplY3QiCi1tc2dzdHIgIiIKK21zZ3N0ciAicsOpdXRpbGlzZXIgbCdvYmpldCBkZSBub3RlIHNww6ljaWZpw6kiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NDUgYnVpbHRpbi9ub3Rlcy5jOjYxMworIzogYnVpbHRpbi9ub3Rlcy5jOjQxNyBidWlsdGluL25vdGVzLmM6NDg1CiBtc2dpZCAicmVwbGFjZSBleGlzdGluZyBub3RlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJyZW1wbGFjZXIgbGVzIG5vdGVzIGV4aXN0YW50ZXMiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NzkKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNhbm5vdCBhZGQgbm90ZXMuIEZvdW5kIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXMuIFVzZSAnLWYnIHRvIG92ZXJ3cml0ZSAiCiAiZXhpc3Rpbmcgbm90ZXMiCiBtc2dzdHIgIiIKKyJJbXBvc3NpYmxlIGQnYWpvdXRlciBkZXMgbm90ZXMuIERlcyBub3RlcyBvbnQgw6l0w6kgdHJvdXbDqWVzIHBvdXIgbCdvYmpldCAlcy4gIgorIlV0aWxpc2V6ICctZicgcG91ciDDqWNyYXNlciBsZXMgbm90ZXMgZXhpc3RhbnRlcyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU4NCBidWlsdGluL25vdGVzLmM6NjYxCisjOiBidWlsdGluL25vdGVzLmM6NDU2IGJ1aWx0aW4vbm90ZXMuYzo1MzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3ZlcndyaXRpbmcgZXhpc3Rpbmcgbm90ZXMgZm9yIG9iamVjdCAlc1xuIgotbXNnc3RyICIiCittc2dzdHIgIsOJY3Jhc2VtZW50IGRlcyBub3RlcyBleGlzdGFudGVzIHBvdXIgbCdvYmpldCAlc1xuIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjE0CisjOiBidWlsdGluL25vdGVzLmM6NDg2CiBtc2dpZCAicmVhZCBvYmplY3RzIGZyb20gc3RkaW4iCi1tc2dzdHIgIiIKK21zZ3N0ciAibGlyZSBsZXMgb2JqZXRzIGRlcHVpcyBsJ2VudHLDqWUgc3RhbmRhcmQiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0ODgKIG1zZ2lkICJsb2FkIHJld3JpdGluZyBjb25maWcgZm9yIDxjb21tYW5kPiAoaW1wbGllcyAtLXN0ZGluKSIKIG1zZ3N0ciAiIgorImNoYXJnZXIgbGEgY29uZmlndXJhdGlvbiBkZSByw6nDqWNyaXR1cmUgcG91ciA8Y29tbWFuZGU+IChpbXBsaXF1ZSAtLXN0ZGluKSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjYzNAorIzogYnVpbHRpbi9ub3Rlcy5jOjUwNgogbXNnaWQgInRvbyBmZXcgcGFyYW1ldGVycyIKLW1zZ3N0ciAiIgorbXNnc3RyICJwYXMgYXNzZXogZGUgcGFyYW3DqHRyZXMiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2NTUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNhbm5vdCBjb3B5IG5vdGVzLiBGb3VuZCBleGlzdGluZyBub3RlcyBmb3Igb2JqZWN0ICVzLiBVc2UgJy1mJyB0byBvdmVyd3JpdGUgIgogImV4aXN0aW5nIG5vdGVzIgogbXNnc3RyICIiCisiSW1wb3NzaWJsZSBkZSBjb3BpZXIgZGVzIG5vdGVzLiBEZXMgbm90ZXMgb250IMOpdMOpIHRyb3V2w6llcyBwb3VyIGwnb2JqZXQgJXMuICIKKyJVdGlsaXNleiAnLWYnIHBvdXIgw6ljcmFzZXIgbGVzIG5vdGVzIGV4aXN0YW50ZXMiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2NjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWlzc2luZyBub3RlcyBvbiBzb3VyY2Ugb2JqZWN0ICVzLiBDYW5ub3QgY29weS4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiTm90ZXMgbWFucXVhbnRlcyBzdXIgbCdvYmpldCBzb3VyY2UgJXMuIEltcG9zc2libGUgZGUgY29waWVyLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjcxNgorIzogYnVpbHRpbi9ub3Rlcy5jOjU4OAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIC1tLy1GLy1jLy1DIG9wdGlvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZSAnZWRpdCcgc3ViY29tbWFuZC5cbiIKICJQbGVhc2UgdXNlICdnaXQgbm90ZXMgYWRkIC1mIC1tLy1GLy1jLy1DJyBpbnN0ZWFkLlxuIgogbXNnc3RyICIiCisiTGVzIG9wdGlvbnMgLW0vLUYvLWMvLUMgc29udCBvYnNvbMOodGVzIHBvdXIgbGEgc291cy1jb21tYW5kZSAnZWRpdCcuXG4iCisiVmV1aWxsZXogdXRpbGlzZXIgJ2dpdCBub3RlcyBhZGQgLWYgLW0vLUYvLWMvLUMnIMOgIGxhIHBsYWNlLlxuIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODYzCisjOiBidWlsdGluL25vdGVzLmM6NzM1CiBtc2dpZCAiR2VuZXJhbCBvcHRpb25zIgotbXNnc3RyICIiCittc2dzdHIgIk9wdGlvbnMgZ8OpbsOpcmFsZXMiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzcKIG1zZ2lkICJNZXJnZSBvcHRpb25zIgotbXNnc3RyICIiCittc2dzdHIgIk9wdGlvbnMgZGUgZnVzaW9uIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY3CisjOiBidWlsdGluL25vdGVzLmM6NzM5CiBtc2dpZCAiIgogInJlc29sdmUgbm90ZXMgY29uZmxpY3RzIHVzaW5nIHRoZSBnaXZlbiBzdHJhdGVneSAobWFudWFsL291cnMvdGhlaXJzL3VuaW9uLyIKICJjYXRfc29ydF91bmlxKSIKIG1zZ3N0ciAiIgorInLDqXNvdWRyZSBsZXMgY29uZmxpdHMgZGUgbm90ZXMgZW4gdXRpbGlzYW50IGxhIHN0cmF0w6lnaWUgZG9ubsOpZSAobWFudWFsL291cnMvIgorInRoZWlycy91bmlvbi9jYXRfc29ydF91bmlxKSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg2OQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0MQogbXNnaWQgIkNvbW1pdHRpbmcgdW5tZXJnZWQgbm90ZXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiVmFsaWRhdGlvbiBkZXMgbm90ZXMgbm9uIGZ1c2lvbm7DqWVzIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODcxCisjOiBidWlsdGluL25vdGVzLmM6NzQzCiBtc2dpZCAiZmluYWxpemUgbm90ZXMgbWVyZ2UgYnkgY29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJmaW5hbGlzZXIgbGEgZnVzaW9uIGRlIG5vdGVzIGVuIHZhbGlkYW50IGxlcyBub3RlcyBub24gZnVzaW9ubsOpZXMiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NzMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NDUKIG1zZ2lkICJBYm9ydGluZyBub3RlcyBtZXJnZSByZXNvbHV0aW9uIgotbXNnc3RyICIiCittc2dzdHIgIkFiYW5kb24gZGUgbGEgcsOpc29sdXRpb24gZGUgZnVzaW9uIGRlcyBub3RlcyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3NQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0NwogbXNnaWQgImFib3J0IG5vdGVzIG1lcmdlIgotbXNnc3RyICIiCittc2dzdHIgImFiYW5kb25uZXIgbGEgZnVzaW9uIGRlIG5vdGVzIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTcwCisjOiBidWlsdGluL25vdGVzLmM6ODQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk9iamVjdCAlcyBoYXMgbm8gbm90ZVxuIgotbXNnc3RyICIiCittc2dzdHIgIkwnb2JqZXQgJXMgbidhIHBhcyBkZSBub3RlXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5ODIKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4NTQKIG1zZ2lkICJhdHRlbXB0IHRvIHJlbW92ZSBub24tZXhpc3RlbnQgbm90ZSBpcyBub3QgYW4gZXJyb3IiCiBtc2dzdHIgIiIKKyJsYSB0ZW50YXRpdmUgZGUgc3VwcHJlc3Npb24gZCd1bmUgbm90ZSBub24gZXhpc3RhbnRlIG4nZXN0IHBhcyB1bmUgZXJyZXVyIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTg1CisjOiBidWlsdGluL25vdGVzLmM6ODU3CiBtc2dpZCAicmVhZCBvYmplY3QgbmFtZXMgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCi1tc2dzdHIgIiIKK21zZ3N0ciAibGlyZSBsZXMgbm9tcyBkJ29iamV0IGRlcHVpcyBsJ2VudHLDqWUgc3RhbmRhcmQiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMDY2CisjOiBidWlsdGluL25vdGVzLmM6OTM4CiBtc2dpZCAibm90ZXNfcmVmIgotbXNnc3RyICIiCittc2dzdHIgInLDqWbDqXJlbmNlc19ub3RlcyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjEwNjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MzkKIG1zZ2lkICJ1c2Ugbm90ZXMgZnJvbSA8bm90ZXNfcmVmPiIKLW1zZ3N0ciAiIgorbXNnc3RyICJ1dGlsaXNlciBsZXMgbm90ZXMgZGVwdWlzIDxyw6lmw6lyZW5jZXNfbm90ZXM+IgogCi0jOiBidWlsdGluL25vdGVzLmM6MTEwMiBidWlsdGluL3JlbW90ZS5jOjE1OTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5NzQgYnVpbHRpbi9yZW1vdGUuYzoxNTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gc3ViY29tbWFuZDogJXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiU291cy1jb21tYW5kZSBpbmNvbm51ZSA6ICVzIgogCiAjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjIzCiBtc2dpZCAiZ2l0IHBhY2stb2JqZWN0cyAtLXN0ZG91dCBbb3B0aW9ucy4uLl0gWzwgcmVmLWxpc3QgfCA8IG9iamVjdC1saXN0XSIKIG1zZ3N0ciAiIgorImdpdCBwYWNrLW9iamVjdHMgLS1zdGRvdXQgW29wdGlvbnMuLi5dIFs8IGxpc3RlLXLDqWbDqXJlbmNlcyB8IDwgbGlzdGUtb2JqZXRzXSIKIAogIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNAogbXNnaWQgImdpdCBwYWNrLW9iamVjdHMgW29wdGlvbnMuLi5dIGJhc2UtbmFtZSBbPCByZWYtbGlzdCB8IDwgb2JqZWN0LWxpc3RdIgogbXNnc3RyICIiCisiZ2l0IHBhY2stb2JqZWN0cyBbb3B0aW9ucy4uLl0gYmFzZS1uYW1lIFs8IGxpc3RlLXLDqWbDqXJlbmNlcyB8IDwgbGlzdGUtb2JqZXRzXSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxODMgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxODYKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTg0IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgImRlZmxhdGUgZXJyb3IgKCVkKSIKLW1zZ3N0ciAiIgorbXNnc3RyICJlcnJldXIgZGUgY29tcHJlc3Npb24gKCVkKSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyMzk3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjIzOTgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5zdXBwb3J0ZWQgaW5kZXggdmVyc2lvbiAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJ2ZXJzaW9uIGQnaW5kZXggbm9uIHN1cHBvcnTDqWUgJXMiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQwMQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDAyCiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBpbmRleCB2ZXJzaW9uICclcyciCi1tc2dzdHIgIiIKK21zZ3N0ciAibWF1dmFpc2UgdmVyc2lvbiBkJ2luZGV4ICclcyciCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQyNAorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm9wdGlvbiAlcyBkb2VzIG5vdCBhY2NlcHQgbmVnYXRpdmUgZm9ybSIKLW1zZ3N0ciAiIgorbXNnc3RyICJsJ29wdGlvbiAlcyBuJ2FjY2VwdGUgcGFzIGRlIHZhbGV1ciBuw6lnYXRpdmUiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQyOAorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBwYXJzZSB2YWx1ZSAnJXMnIGZvciBvcHRpb24gJXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxhIHZhbGV1ciAnJXMnIHBvdXIgbCdvcHRpb24gJXMiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ0NworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDQ4CiBtc2dpZCAiZG8gbm90IHNob3cgcHJvZ3Jlc3MgbWV0ZXIiCi1tc2dzdHIgIiIKK21zZ3N0ciAibmUgcGFzIGFmZmljaGVyIGxhIGJhcnJlIGRlIHByb2dyZXNzaW9uIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NDkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1MAogbXNnaWQgInNob3cgcHJvZ3Jlc3MgbWV0ZXIiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZXIgbGEgYmFycmUgZGUgcHJvZ3Jlc3Npb24iCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1MQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDUyCiBtc2dpZCAic2hvdyBwcm9ncmVzcyBtZXRlciBkdXJpbmcgb2JqZWN0IHdyaXRpbmcgcGhhc2UiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU0Ci1tc2dpZCAic2ltaWxhciB0byAtLWFsbC1wcm9ncmVzcyB3aGVuIHByb2dyZXNzIG1ldGVyIGlzIHNob3duIgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIGxhIGJhcnJlIGRlIHByb2dyZXNzaW9uIGR1cmFudCBsYSBwaGFzZSBkJ8OpY3JpdGUgZGVzIG9iamV0cyIKIAogIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU1Ci1tc2dpZCAidmVyc2lvblssb2Zmc2V0XSIKLW1zZ3N0ciAiIgorbXNnaWQgInNpbWlsYXIgdG8gLS1hbGwtcHJvZ3Jlc3Mgd2hlbiBwcm9ncmVzcyBtZXRlciBpcyBzaG93biIKK21zZ3N0ciAic2ltaWxhaXJlIMOgIC0tYWxsLXByb2dyZXNzIHF1YW5kIGxhIGJhcnJlIGRlIHByb2dyZXNzaW9uIGVzdCBhZmZpY2jDqWUiCiAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NgorbXNnaWQgInZlcnNpb25bLG9mZnNldF0iCittc2dzdHIgInZlcnNpb25bLG9mZnNldF0iCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NwogbXNnaWQgIndyaXRlIHRoZSBwYWNrIGluZGV4IGZpbGUgaW4gdGhlIHNwZWNpZmllZCBpZHggZm9ybWF0IHZlcnNpb24iCiBtc2dzdHIgIiIKKyLDqWNyaXJlIGxlIGZpY2hpZXIgZCdpbmRleCBkdSBwYXF1ZXQgZGFucyBsZSBmb3JtYXQgZCdpbmRleCBkZSB2ZXJzaW9uICIKKyJzcMOpY2lmacOpIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2MAogbXNnaWQgIm1heGltdW0gc2l6ZSBvZiBlYWNoIG91dHB1dCBwYWNrIGZpbGUiCi1tc2dzdHIgIiIKK21zZ3N0ciAidGFpbGxlIG1heGltdW0gZGUgY2hhcXVlIGZpY2hpZXIgcGFxdWV0IGVuIHNvcnRpZSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDYxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjIKIG1zZ2lkICJpZ25vcmUgYm9ycm93ZWQgb2JqZWN0cyBmcm9tIGFsdGVybmF0ZSBvYmplY3Qgc3RvcmUiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaWdub3JlciBsZXMgb2JqZXRzIGVtcHJ1bnTDqXMgw6AgdW4gYXV0cmUgbWFnYXNpbiBkJ29iamV0cyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDYzCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjQKIG1zZ2lkICJpZ25vcmUgcGFja2VkIG9iamVjdHMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaWdub3JlciBsZXMgb2JqZXRzIGVtcGFxdWV0w6lzIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjUKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2NgogbXNnaWQgImxpbWl0IHBhY2sgd2luZG93IGJ5IG9iamVjdHMiCi1tc2dzdHIgIiIKK21zZ3N0ciAibGltaXRlciBsYSBmZW7DqnRyZSBkJ2VtcGFxdWV0YWdlIHBhciBvYmpldHMiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2NworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDY4CiBtc2dpZCAibGltaXQgcGFjayB3aW5kb3cgYnkgbWVtb3J5IGluIGFkZGl0aW9uIHRvIG9iamVjdCBsaW1pdCIKIG1zZ3N0ciAiIgorImxpbWl0ZXIgbGEgZmVuw6p0cmUgZCdlbXBhcXVldGFnZSBwYXIgbcOpbW9pcmUgZW4gcGx1cyBkZSBsYSBsaW1pdGUgZCdvYmpldHMiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2OQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDcwCiBtc2dpZCAibWF4aW11bSBsZW5ndGggb2YgZGVsdGEgY2hhaW4gYWxsb3dlZCBpbiB0aGUgcmVzdWx0aW5nIHBhY2siCiBtc2dzdHIgIiIKKyJsb25ndWV1ciBtYXhpbXVtIGRlIGxhIGNoYcOubmUgZGUgZGVsdGEgYXV0b3Jpc8OpZSBkYW5zIGxlIHBhcXVldCByw6lzdWx0YW50IgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3MgogbXNnaWQgInJldXNlIGV4aXN0aW5nIGRlbHRhcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJyw6l1dGlsaXNlciBsZXMgZGVsdGFzIGV4aXN0YW50cyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDczCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzQKIG1zZ2lkICJyZXVzZSBleGlzdGluZyBvYmplY3RzIgotbXNnc3RyICIiCittc2dzdHIgInLDqXV0aWxpc2VyIGxlcyBvYmpldHMgZXhpc3RhbnRzIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzUKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3NgogbXNnaWQgInVzZSBPRlNfREVMVEEgb2JqZWN0cyIKLW1zZ3N0ciAiIgorbXNnc3RyICJ1dGlsaXNlciBsZXMgb2JqZXRzIE9GU19ERUxUQSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDc3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzgKIG1zZ2lkICJ1c2UgdGhyZWFkcyB3aGVuIHNlYXJjaGluZyBmb3IgYmVzdCBkZWx0YSBtYXRjaGVzIgogbXNnc3RyICIiCisidXRpbGlzZXIgZGVzIGZpbHMgbG9ycyBkZSBsYSByZWNoZXJjaGUgcG91ciB1bmUgbWVpbGxldXJzIGNvcnJlc3BvbmRhbmNlIGRlcyAiCisiZGVsdGFzIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4MAogbXNnaWQgImRvIG5vdCBjcmVhdGUgYW4gZW1wdHkgcGFjayBvdXRwdXQiCi1tc2dzdHIgIiIKK21zZ3N0ciAibmUgcGFzIGNyw6llciB1biBwYXF1ZXQgdmlkZSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDgxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODIKIG1zZ2lkICJyZWFkIHJldmlzaW9uIGFyZ3VtZW50cyBmcm9tIHN0YW5kYXJkIGlucHV0IgotbXNnc3RyICIiCittc2dzdHIgImxpcmUgbGVzIHBhcmFtw6h0cmVzIGRlIHLDqXZpc2lvbiBkZXB1aXMgbCdlbnRyw6llIHN0YW5kYXJkIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODMKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4NAogbXNnaWQgImxpbWl0IHRoZSBvYmplY3RzIHRvIHRob3NlIHRoYXQgYXJlIG5vdCB5ZXQgcGFja2VkIgotbXNnc3RyICIiCittc2dzdHIgImxpbWl0ZXIgbGVzIG9iamV0cyDDoCBjZXV4IHF1aSBuZSBzb250IHBhcyBlbmNvcmUgZW1wYXF1ZXTDqXMiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4NgorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDg3CiBtc2dpZCAiaW5jbHVkZSBvYmplY3RzIHJlYWNoYWJsZSBmcm9tIGFueSByZWZlcmVuY2UiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW5jbHVyZSBsZXMgb2JqZXRzIGFjY2Vzc2libGVzIGRlcHVpcyB0b3V0ZSByw6lmw6lyZW5jZSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDg5CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTAKIG1zZ2lkICJpbmNsdWRlIG9iamVjdHMgcmVmZXJyZWQgYnkgcmVmbG9nIGVudHJpZXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaW5jbHVyZSBsZXMgb2JqZXRzIHLDqWbDqXJlbmPDqXMgcGFyIGxlcyDDqWzDqW1lbnRzIGRlIHJlZmxvZyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDkyCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTMKIG1zZ2lkICJvdXRwdXQgcGFjayB0byBzdGRvdXQiCi1tc2dzdHIgIiIKK21zZ3N0ciAiYWZmaWNoZXIgbCdlbXBhcXVldGFnZSBzdXIgbGEgc29ydGllIHN0YW5kYXJkIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTQKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NQogbXNnaWQgImluY2x1ZGUgdGFnIG9iamVjdHMgdGhhdCByZWZlciB0byBvYmplY3RzIHRvIGJlIHBhY2tlZCIKLW1zZ3N0ciAiIgorbXNnc3RyICJpbmNsdXJlIGxlcyBvYmpldHMgZCfDqXRpcXVldHRlcyBxdWkgcsOpZsOocmVudCDDoCBkZXMgb2JqZXRzIMOgIGVtcGFxdWV0ZXIiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NgorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk3CiBtc2dpZCAia2VlcCB1bnJlYWNoYWJsZSBvYmplY3RzIgotbXNnc3RyICIiCittc2dzdHIgImdhcmRlciBsZXMgb2JqZXRzIGluYWNjZXNzaWJsZXMiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NyBwYXJzZS1vcHRpb25zLmg6MTQxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTggcGFyc2Utb3B0aW9ucy5oOjE0MwogbXNnaWQgInRpbWUiCi1tc2dzdHIgIiIKK21zZ3N0ciAiaGV1cmUiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5OAorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk5CiBtc2dpZCAidW5wYWNrIHVucmVhY2hhYmxlIG9iamVjdHMgbmV3ZXIgdGhhbiA8dGltZT4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiZMOpcGFxdWV0ZXIgbGVzIG9iamV0cyBpbmFjY2Vzc2libGVzIHBsdXMgcsOpY2VudHMgcXVlIDxoZXVyZT4iCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwMQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTAyCiBtc2dpZCAiY3JlYXRlIHRoaW4gcGFja3MiCi1tc2dzdHIgIiIKK21zZ3N0ciAiY3LDqWVyIGRlcyBwYXF1ZXRzIGzDqWdlcnMiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwMworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA0CiBtc2dpZCAiaWdub3JlIHBhY2tzIHRoYXQgaGF2ZSBjb21wYW5pb24gLmtlZXAgZmlsZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJpZ25vcmVyIGxlcyBwYXF1ZXRzIHF1aSBvbnQgdW4gZmljaGllciAua2VlcCIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA1CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDYKIG1zZ2lkICJwYWNrIGNvbXByZXNzaW9uIGxldmVsIgotbXNnc3RyICIiCittc2dzdHIgIm5pdmVhdSBkZSBjb21wcmVzc2lvbiBkdSBwYXF1ZXQiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA4CiBtc2dpZCAiZG8gbm90IGhpZGUgY29tbWl0cyBieSBncmFmdHMiCi1tc2dzdHIgIiIKK21zZ3N0ciAibmUgcGFzIGNhY2hlciBsZXMgdmFsaWRhdGlvbnMgcGFyIGdyZWZmZXMiCiAKICM6IGJ1aWx0aW4vcGFjay1yZWZzLmM6NgogbXNnaWQgImdpdCBwYWNrLXJlZnMgW29wdGlvbnNdIgotbXNnc3RyICIiCittc2dzdHIgImdpdCBwYWNrLXJlZnMgW29wdGlvbnNdIgogCiAjOiBidWlsdGluL3BhY2stcmVmcy5jOjE0CiBtc2dpZCAicGFjayBldmVyeXRoaW5nIgotbXNnc3RyICIiCittc2dzdHIgImVtcGFxdWV0ZXIgdG91dCIKIAogIzogYnVpbHRpbi9wYWNrLXJlZnMuYzoxNQogbXNnaWQgInBydW5lIGxvb3NlIHJlZnMgKGRlZmF1bHQpIgotbXNnc3RyICIiCittc2dzdHIgIsOpbGltaW5lciBsZXMgcsOpZsOpcmVuY2VzIHBlcmR1ZXMgKGTDqWZhdXQpIgogCiAjOiBidWlsdGluL3BydW5lLXBhY2tlZC5jOjcKIG1zZ2lkICJnaXQgcHJ1bmUtcGFja2VkIFstbnwtLWRyeS1ydW5dIFstcXwtLXF1aWV0XSIKLW1zZ3N0ciAiIgorbXNnc3RyICJnaXQgcHJ1bmUtcGFja2VkIFstbnwtLWRyeS1ydW5dIFstcXwtLXF1aWV0XSIKIAogIzogYnVpbHRpbi9wcnVuZS5jOjEyCiBtc2dpZCAiZ2l0IHBydW5lIFstbl0gWy12XSBbLS1leHBpcmUgPHRpbWU+XSBbLS1dIFs8aGVhZD4uLi5dIgotbXNnc3RyICIiCittc2dzdHIgImdpdCBwcnVuZSBbLW5dIFstdl0gWy0tZXhwaXJlIDxoZXVyZT5dIFstLV0gWzxoZWFkPi4uLl0iCiAKICM6IGJ1aWx0aW4vcHJ1bmUuYzoxMzIKIG1zZ2lkICJkbyBub3QgcmVtb3ZlLCBzaG93IG9ubHkiCi1tc2dzdHIgIiIKK21zZ3N0ciAibmUgcGFzIHN1cHByaW1lciwgYWZmaWNoZXIgc2V1bGVtZW50IgogCiAjOiBidWlsdGluL3BydW5lLmM6MTMzCiBtc2dpZCAicmVwb3J0IHBydW5lZCBvYmplY3RzIgotbXNnc3RyICIiCittc2dzdHIgImFmZmljaGVyIGxlcyBvYmpldHMgw6lsaW1pbsOpcyIKIAogIzogYnVpbHRpbi9wcnVuZS5jOjEzNgogbXNnaWQgImV4cGlyZSBvYmplY3RzIG9sZGVyIHRoYW4gPHRpbWU+IgotbXNnc3RyICIiCittc2dzdHIgImZhaXJlIGV4cGlyZXIgbGVzIG9iamV0cyBwbHVzIHZpZXV4IHF1ZSA8aGV1cmU+IgogCiAjOiBidWlsdGluL3B1c2guYzoxNAogbXNnaWQgImdpdCBwdXNoIFs8b3B0aW9ucz5dIFs8cmVwb3NpdG9yeT4gWzxyZWZzcGVjPi4uLl1dIgotbXNnc3RyICIiCittc2dzdHIgImdpdCBwdXNoIFs8b3B0aW9ucz5dIFs8ZMOpcMO0dD4gWzxzcMOpY2lmaWNhdGlvbi1kZS1yw6lmw6lyZW5jZT4uLi5dXSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDUKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3CiBtc2dpZCAidGFnIHNob3J0aGFuZCB3aXRob3V0IDx0YWc+IgotbXNnc3RyICIiCittc2dzdHIgInJhY2NvdXJjaSBkJ8OpdGlxdWV0dGUgc2FucyA8w6l0aXF1ZXR0ZT4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjY0CisjOiBidWlsdGluL3B1c2guYzo2NgogbXNnaWQgIi0tZGVsZXRlIG9ubHkgYWNjZXB0cyBwbGFpbiB0YXJnZXQgcmVmIG5hbWVzIgotbXNnc3RyICIiCittc2dzdHIgIi0tZGVsZXRlIGFjY2VwdGUgc2V1bGVtZW50IGRlcyBub21zIGVudGllcnMgZGUgcsOpZsOpcmVuY2VzIGNpYmxlcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6OTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjEwMQogbXNnaWQgIiIKICJcbiIKICJUbyBjaG9vc2UgZWl0aGVyIG9wdGlvbiBwZXJtYW5lbnRseSwgc2VlIHB1c2guZGVmYXVsdCBpbiAnZ2l0IGhlbHAgY29uZmlnJy4iCiBtc2dzdHIgIiIKKyJcbiIKKyJQb3VyIGNob2lzaXIgbCdvcHRpb24gZGUgbWFuacOocmUgcGVybWFuZW50ZSwgdm9pciBwdXNoLmRlZmF1bHQgZGFucyAnZ2l0ICIKKyJoZWxwIGNvbmZpZycuIgogCi0jOiBidWlsdGluL3B1c2guYzoxMDIKKyM6IGJ1aWx0aW4vcHVzaC5jOjEwNAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIHVwc3RyZWFtIGJyYW5jaCBvZiB5b3VyIGN1cnJlbnQgYnJhbmNoIGRvZXMgbm90IG1hdGNoXG4iCkBAIC03MTYwLDggKzc4NzMsMTggQEAKICIgICAgZ2l0IHB1c2ggJXMgJXNcbiIKICIlcyIKIG1zZ3N0ciAiIgorIkxhIGJyYW5jaGUgYW1vbnQgZGUgdm90cmUgYnJhbmNoZSBjb3VyYW50ZSBuZSBjb3JyZXNwb25kIHBhc1xuIgorImF1IG5vbSBkZSB2b3RyZSBicmFuY2hlIGNvdXJhbnRlLiAgUG91ciBwb3Vzc2VyIHZlcnMgbGEgYnJhbmNoZSBhbW9udFxuIgorInN1ciBsZSBzZXJ2ZXVyIGRpc3RhbnQsIHV0aWxpc2V6XG4iCisiXG4iCisiICAgIGdpdCBwdXNoICVzIEhFQUQ6JXNcbiIKKyJcbiIKKyJQb3VyIHBvdXNzZXIgdmVycyBsYSBicmFuY2hlIGR1IG3Dqm1lIG5vbSBzdXIgbGUgc2VydmV1ciBkaXN0YW50LCB1dGlsaXNlelxuIgorIlxuIgorIiAgICBnaXQgcHVzaCAlcyAlc1xuIgorIiVzIgogCi0jOiBidWlsdGluL3B1c2guYzoxMjEKKyM6IGJ1aWx0aW4vcHVzaC5jOjExOQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91IGFyZSBub3QgY3VycmVudGx5IG9uIGEgYnJhbmNoLlxuIgpAQCAtNzE3MCw4ICs3ODkzLDEzIEBACiAiXG4iCiAiICAgIGdpdCBwdXNoICVzIEhFQUQ6PG5hbWUtb2YtcmVtb3RlLWJyYW5jaD5cbiIKIG1zZ3N0ciAiIgorIlZvdXMgbifDqnRlcyBhY3R1ZWxsZW1lbnQgc3VyIGF1Y3VuZSBicmFuY2hlLlxuIgorIlBvdXIgcG91c3NlciBsJ2hpc3RvcmlxdWUgbWVuYW50IMOgIGwnw6l0YXQgYWN0dWVsIChIRUFEIGTDqXRhY2jDqWUpLFxuIgorInV0aWxpc2V6XG4iCisiXG4iCisiICAgIGdpdCBwdXNoICVzIEhFQUQ6PG5vbS1kZS1sYS1icmFuY2hlLWFtb250PlxuIgogCi0jOiBidWlsdGluL3B1c2guYzoxMjgKKyM6IGJ1aWx0aW4vcHVzaC5jOjEzMwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBubyB1cHN0cmVhbSBicmFuY2guXG4iCkBAIC03MTc5LDIxICs3OTA3LDMwIEBACiAiXG4iCiAiICAgIGdpdCBwdXNoIC0tc2V0LXVwc3RyZWFtICVzICVzXG4iCiBtc2dzdHIgIiIKKyJMYSBicmFuY2hlIGNvdXJhbnRlICVzIG4nYSBwYXMgZGUgYnJhbmNoZSBhbW9udC5cbiIKKyJQb3VyIHBvdXNzZXIgbGEgYnJhbmNoZSBjb3VyYW50ZSBldCBkw6lmaW5pciBsYSBkaXN0YW50ZSBjb21tZSBhbW9udCwgIgorInV0aWxpc2V6XG4iCisiXG4iCisiICAgIGdpdCBwdXNoIC0tc2V0LXVwc3RyZWFtICVzICVzXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEzNgorIzogYnVpbHRpbi9wdXNoLmM6MTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlRoZSBjdXJyZW50IGJyYW5jaCAlcyBoYXMgbXVsdGlwbGUgdXBzdHJlYW0gYnJhbmNoZXMsIHJlZnVzaW5nIHRvIHB1c2guIgogbXNnc3RyICIiCisiTGEgYnJhbmNoZSBjb3VyYW50ZSAlcyBhIGRlIG11bHRpcGxlcyBicmFuY2hlcyBhbW9udCwgaW1wb3NzaWJsZSBkZSBwb3Vzc2VyLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTM5CisjOiBidWlsdGluL3B1c2guYzoxNDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgcHVzaGluZyB0byByZW1vdGUgJyVzJywgd2hpY2ggaXMgbm90IHRoZSB1cHN0cmVhbSBvZlxuIgogInlvdXIgY3VycmVudCBicmFuY2ggJyVzJywgd2l0aG91dCB0ZWxsaW5nIG1lIHdoYXQgdG8gcHVzaFxuIgogInRvIHVwZGF0ZSB3aGljaCByZW1vdGUgYnJhbmNoLiIKIG1zZ3N0ciAiIgorIlZvdXMgw6p0ZXMgZW4gdHJhaW4gZGUgcG91c3NlciB2ZXJzIGxhIGJyYW5jaGUgZGlzdGFudGUgJyVzJywgcXVpIG4nZXN0XG4iCisicGFzIHVuZSBicmFuY2hlIGFtb250IGRlIHZvdHJlIGJyYW5jaGUgY291cmFudGUgJyVzJywgc2FucyBtZSBkaXJlXG4iCisicXVvaSBwb3Vzc2VyIHBvdXIgbWV0dHJlIMOgIGpvdXIgcXVlbGxlIGJyYW5jaGUgYW1vbnQuIgogCi0jOiBidWlsdGluL3B1c2guYzoxNTEKKyM6IGJ1aWx0aW4vcHVzaC5jOjE2NwogbXNnaWQgIiIKICJwdXNoLmRlZmF1bHQgaXMgdW5zZXQ7IGl0cyBpbXBsaWNpdCB2YWx1ZSBpcyBjaGFuZ2luZyBpblxuIgogIkdpdCAyLjAgZnJvbSAnbWF0Y2hpbmcnIHRvICdzaW1wbGUnLiBUbyBzcXVlbGNoIHRoaXMgbWVzc2FnZVxuIgpAQCAtNzIxMCw3MiArNzk0NywxMjggQEAKICIodGhlICdzaW1wbGUnIG1vZGUgd2FzIGludHJvZHVjZWQgaW4gR2l0IDEuNy4xMS4gVXNlIHRoZSBzaW1pbGFyIG1vZGVcbiIKICInY3VycmVudCcgaW5zdGVhZCBvZiAnc2ltcGxlJyBpZiB5b3Ugc29tZXRpbWVzIHVzZSBvbGRlciB2ZXJzaW9ucyBvZiBHaXQpIgogbXNnc3RyICIiCisicHVzaC5kZWZhdWx0IG4nZXN0IHBhcyBkw6lmaW5pIDsgc2EgdmFsZXVyIGltcGxpY2l0ZSBjaGFuZ2UgZGFucyBHaXQgMi4wXG4iCisiZGUgJ21hdGNoaW5nJyB2ZXJzICdzaW1wbGUnLiBQb3VyIHN1cHByaW1lciBjZSBtZXNzYWdlIGV0IG1haW50ZW5pclxuIgorImxlIGNvbXBvcnRlbWVudCBhY3R1ZWwgYXByw6hzIGxlcyBjaGFuZ2VtZW50cyBwYXIgZMOpZmF1dCwgdXRpbGlzZXogOlxuIgorIlxuIgorIiAgZ2l0IGNvbmZpZyAtLWdsb2JhbCBwdXNoLmRlZmF1bHQgbWF0Y2hpbmdcbiIKKyJcbiIKKyJQb3VyIHN1cHByaW1lciBjZSBtZXNzYWdlIGV0IGFkb3B0ZXIgbGUgbm91dmVhdSBjb21wb3J0ZW1lbnQgbWFpbnRlbmFudCwgIgorInV0aWxpc2V6IDpcbiIKKyJcbiIKKyIgIGdpdCBjb25maWcgLS1nbG9iYWwgcHVzaC5kZWZhdWx0IHNpbXBsZVxuIgorIlxuIgorIlZvaXIgJ2dpdCBoZWxwIGNvbmZpZycgZXQgY2hlcmNoZXIgJ3B1c2guZGVmYXVsdCcgcG91ciBwbHVzIGQnaW5mb3JtYXRpb24uXG4iCisiKGxlIG1vZGUgJ3NpbXBsZScgYSDDqXTDqSBpbnRyb2R1aXQgZGFucyBHaXQgMS43LjExLiBVdGlsaXNleiBsZSBtb2RlICIKKyJzaW1pbGFpcmVcbiIKKyInY3VycmVudCcgYXUgbGlldSBkZSAnc2ltcGxlJyBzaSB2b3VzIHV0aWxpc2V6IGRlIHRlbXBzIGVuIHRlbXBzIGQnYW5jaWVubmVzICIKKyJ2ZXJzaW9ucyBkZSBHaXQpIgogCi0jOiBidWlsdGluL3B1c2guYzoxOTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjIyNwogbXNnaWQgIiIKICJZb3UgZGlkbid0IHNwZWNpZnkgYW55IHJlZnNwZWNzIHRvIHB1c2gsIGFuZCBwdXNoLmRlZmF1bHQgaXMgXCJub3RoaW5nXCIuIgogbXNnc3RyICIiCisiVm91cyBuJ2F2ZXogcGFzIHNww6ljaWZpw6kgZGUgc3DDqWNpZmljYXRpb25zIGRlIHLDqWbDqXJlbmNlIMOgIHBvdXNzZXIsIGV0IHB1c2guIgorImRlZmF1bHQgZXN0IFwibm90aGluZ1wiLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjA2CisjOiBidWlsdGluL3B1c2guYzoyMzQKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRpcCBvZiB5b3VyIGN1cnJlbnQgYnJhbmNoIGlzIGJlaGluZFxuIgotIml0cyByZW1vdGUgY291bnRlcnBhcnQuIE1lcmdlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLiAnZ2l0IHB1bGwnKVxuIgotImJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorIml0cyByZW1vdGUgY291bnRlcnBhcnQuIEludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy5cbiIKKyInZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKKyJMZXMgbWlzZXMgw6Agam91ciBvbnQgw6l0w6kgcmVqZXTDqWVzIGNhciBsYSBwb2ludGUgZGUgbGEgYnJhbmNoZSBjb3VyYW50ZSBlc3QgIgorImRlcnJpw6hyZVxuIgorInNvbiBob21vbG9ndWUgZGlzdGFudC4gSW50w6lncmV6IGxlcyBjaGFuZ2VtZW50cyBkaXN0YW50cyAocGFyIGV4ZW1wbGUgJ2dpdCAiCisicHVsbCAuLi4nKVxuIgorImF2YW50IGRlIHBvdXNzZXIgw6Agbm91dmVhdS5cbiIKKyJWb2lyIGxhICdOb3RlIMOgIHByb3BvcyBkZXMgYXZhbmNlcyByYXBpZGVzJyBkYW5zICdnaXQgcHVzaCAtLWhlbHAnIHBvdXIgcGx1cyAiCisiZCdpbmZvcm1hdGlvbi4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIxMgorIzogYnVpbHRpbi9wdXNoLmM6MjQwCiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIGEgcHVzaGVkIGJyYW5jaCB0aXAgaXMgYmVoaW5kIGl0cyByZW1vdGVcbiIKICJjb3VudGVycGFydC4gSWYgeW91IGRpZCBub3QgaW50ZW5kIHRvIHB1c2ggdGhhdCBicmFuY2gsIHlvdSBtYXkgd2FudCB0b1xuIgogInNwZWNpZnkgYnJhbmNoZXMgdG8gcHVzaCBvciBzZXQgdGhlICdwdXNoLmRlZmF1bHQnIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVcbiIKICJ0byAnc2ltcGxlJywgJ2N1cnJlbnQnIG9yICd1cHN0cmVhbScgdG8gcHVzaCBvbmx5IHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIiIKKyJMZXMgbWlzZXMgw6Agam91ciBvbnQgw6l0w6kgcmVqZXTDqWVzIGNhciBsYSBwb2ludGUgZGUgbGEgYnJhbmNoZSBwb3Vzc8OpZSBlc3QgIgorImRlcnJpw6hyZVxuIgorInNvbiBob21vbG9ndWUgZGlzdGFudC4gU2kgdm91cyBuZSB2b3VsaWV6IHBhcyBwb3Vzc2VyIGNldHRlIGJyYW5jaGUsIHZvdXMgIgorInBvdXJyaWV6XG4iCisidm91bG9pciBzcMOpY2lmaWVyIGxlcyBicmFuY2hlcyDDoCBwb3Vzc2VyIG91IGTDqWZpbmlyIGxhIHZhcmlhYmxlIGRlICIKKyJjb25maWd1cmF0aW9uXG4iCisiJ3B1c2guZGVmYXVsdCcgw6AgJ3NpbXBsZScsICdjdXJyZW50JyBvdSAndXBzdHJlYW0nIHBvdXIgcG91c3NlciBzZXVsZW1lbnQgbGEgIgorImJyYW5jaGUgY291cmFudGUuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMTgKKyM6IGJ1aWx0aW4vcHVzaC5jOjI0NgogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCi0iY291bnRlcnBhcnQuIENoZWNrIG91dCB0aGlzIGJyYW5jaCBhbmQgbWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCi0iKGUuZy4gJ2dpdCBwdWxsJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCisiY291bnRlcnBhcnQuIENoZWNrIG91dCB0aGlzIGJyYW5jaCBhbmQgaW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgorIihlLmcuICdnaXQgcHVsbCAuLi4nKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKICJTZWUgdGhlICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLiIKIG1zZ3N0ciAiIgorIkxlcyBtaXNlcyDDoCBqb3VyIG9udCDDqXTDqSByZWpldMOpZXMgY2FyIGxhIHBvaW50ZSBkZSBsYSBicmFuY2hlIGNvdXJhbnRlIGVzdCAiCisiZGVycmnDqHJlXG4iCisic29uIGhvbW9sb2d1ZSBkaXN0YW50LiBFeHRyYXlleiBjZXR0ZSBicmFuY2hlIGV0IEludMOpZ3JleiBsZXMgY2hhbmdlbWVudHMgIgorImRpc3RhbnRzXG4iCisiKHBhciBleGVtcGxlICdnaXQgcHVsbCAuLi4nKSBhdmFudCBkZSBwb3Vzc2VyIMOgIG5vdXZlYXUuXG4iCisiVm9pciBsYSAnTm90ZSDDoCBwcm9wb3MgZGVzIGF2YW5jZXMgcmFwaWRlcycgZGFucyAnZ2l0IHB1c2ggLS1oZWxwJyBwb3VyIHBsdXMgIgorImQnaW5mb3JtYXRpb24uIgogCi0jOiBidWlsdGluL3B1c2guYzoyMjQKKyM6IGJ1aWx0aW4vcHVzaC5jOjI1MgogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgcmVtb3RlIGNvbnRhaW5zIHdvcmsgdGhhdCB5b3UgZG9cbiIKICJub3QgaGF2ZSBsb2NhbGx5LiBUaGlzIGlzIHVzdWFsbHkgY2F1c2VkIGJ5IGFub3RoZXIgcmVwb3NpdG9yeSBwdXNoaW5nXG4iCi0idG8gdGhlIHNhbWUgcmVmLiBZb3UgbWF5IHdhbnQgdG8gZmlyc3QgbWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuLFxuIgotIidnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorInRvIHRoZSBzYW1lIHJlZi4gWW91IG1heSB3YW50IHRvIGZpcnN0IGludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKKyIoZS5nLiwgJ2dpdCBwdWxsIC4uLicpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgogIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgogbXNnc3RyICIiCisiTGVzIG1pc2VzIMOgIGpvdXIgb250IMOpdMOpIHJlamV0w6llcyBjYXIgbGEgYnJhbmNoZSBkaXN0YW50ZSBjb250aWVudCBkdSAiCisidHJhdmFpbCBxdWVcbiIKKyJ2b3VzIG4nYXZleiBwYXMgZW4gbG9jYWwuIENlY2kgZXN0IGfDqW7DqXJhbGVtZW50IGNhdXPDqSBwYXIgdW4gYXV0cmUgZMOpcMO0dCAiCisicG91c3PDqVxuIgorInZlcnMgbGEgbcOqbWUgcsOpZsOpcmVuY2UuIFZvdXMgcG91cnJpZXogaW50w6lncmVyIGQnYWJvcmQgbGVzIGNoYW5nZW1lbnRzICIKKyJkaXN0YW50c1xuIgorIihwYXIgZXhlbXBsZSAnZ2l0IHB1bGwgLi4uJykgYXZhbnQgZGUgcG91c3NlciDDoCBub3V2ZWF1LlxuIgorIlZvaXIgbGEgJ05vdGUgw6AgcHJvcG9zIGRlcyBhdmFuY2VzIHJhcGlkZXMnIGRhbnMgJ2dpdCBwdXNoIC0taGVscCcgcG91ciBwbHVzICIKKyJkJ2luZm9ybWF0aW9uLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjMxCisjOiBidWlsdGluL3B1c2guYzoyNTkKIG1zZ2lkICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGFnIGFscmVhZHkgZXhpc3RzIGluIHRoZSByZW1vdGUuIgogbXNnc3RyICIiCisiTGVzIG1pc2VzIMOgIGpvdXIgb250IMOpdMOpIHJlamV0w6llcyBjYXIgbCfDqXRpcXVldHRlIGV4aXN0ZSBkw6lqw6AgZGFucyBsYSAiCisiYnJhbmNoZSBkaXN0YW50ZS4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzNAorIzogYnVpbHRpbi9wdXNoLmM6MjYyCiBtc2dpZCAiIgogIllvdSBjYW5ub3QgdXBkYXRlIGEgcmVtb3RlIHJlZiB0aGF0IHBvaW50cyBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgogIm9yIHVwZGF0ZSBhIHJlbW90ZSByZWYgdG8gbWFrZSBpdCBwb2ludCBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgogIndpdGhvdXQgdXNpbmcgdGhlICctLWZvcmNlJyBvcHRpb24uXG4iCiBtc2dzdHIgIiIKKyJWb3VzIG5lIHBvdXZleiBwYXMgbWV0dHJlIMOgIGpvdXIgdW5lIHLDqWbDqXJlbmNlIGRpc3RhbnRlIHF1aSBwb2ludGUgc3VyIHVuICIKKyJvYmpldCBxdWlcbiIKKyJuJ2VzdCBwYXMgdW4gY29tbWl0LCBvdSBtZXR0cmUgw6Agam91ciB1bmUgcsOpZsOpcmVuY2UgZGlzdGFudGUgcG91ciBsYSBmYWlyZSAiCisicG9pbnRlclxuIgorInZlcnMgdW4gb2JqZXQgcXVpIG4nZXN0IHBhcyB1biBjb21taXQsIHNhbnMgdXRpbGlzZXIgbCdvcHRpb24gJy0tZm9yY2UnLlxuIgogCi0jOiBidWlsdGluL3B1c2guYzoyOTQKKyM6IGJ1aWx0aW4vcHVzaC5jOjMyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJQdXNoaW5nIHRvICVzXG4iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9wdXNoLmM6Mjk4Ci0jLCBjLWZvcm1hdAotbXNnaWQgImZhaWxlZCB0byBwdXNoIHNvbWUgcmVmcyB0byAnJXMnIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vcHVzaC5jOjMzMQotIywgYy1mb3JtYXQKLW1zZ2lkICJiYWQgcmVwb3NpdG9yeSAnJXMnIgotbXNnc3RyICIiCittc2dzdHIgIlBvdXNzYWdlIHZlcnMgJXNcbiIKIAogIzogYnVpbHRpbi9wdXNoLmM6MzMyCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBwdXNoIHNvbWUgcmVmcyB0byAnJXMnIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHBvdXNzZXIgZGVzIHLDqWbDqXJlbmNlcyB2ZXJzICclcyciCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjM2NQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcmVwb3NpdG9yeSAnJXMnIgorbXNnc3RyICJtYXV2YWlzIGTDqXDDtHQgJyVzJyIKKworIzogYnVpbHRpbi9wdXNoLmM6MzY2CiBtc2dpZCAiIgogIk5vIGNvbmZpZ3VyZWQgcHVzaCBkZXN0aW5hdGlvbi5cbiIKICJFaXRoZXIgc3BlY2lmeSB0aGUgVVJMIGZyb20gdGhlIGNvbW1hbmQtbGluZSBvciBjb25maWd1cmUgYSByZW1vdGUgIgpAQCAtNzI4Nyw5MCArODA4MCwxMDggQEAKICJcbiIKICIgICAgZ2l0IHB1c2ggPG5hbWU+XG4iCiBtc2dzdHIgIiIKKyJQYXMgZGUgZGVzdGluYXRpb24gcG91ciBwb3Vzc2VyLlxuIgorIlNww6ljaWZpZXogdW5lIFVSTCBkZXB1aXMgbGEgbGlnbmUgZGUgY29tbWFuZGUgb3UgY29uZmlndXJleiB1biBkw6lww7R0IGRpc3RhbnQgIgorImVuIHV0aWxpc2FudFxuIgorIlxuIgorIiAgICBnaXQgcmVtb3RlIGFkZCA8bm9tPiA8dXJsPlxuIgorIlxuIgorImV0IHBvdXNzZXogYWxvcnMgZW4gdXRpbGlzYW50IGxlIGTDqXDDtHQgZGlzdGFudFxuIgorIlxuIgorIiAgICBnaXQgcHVzaCA8bm9tPlxuIgogCi0jOiBidWlsdGluL3B1c2guYzozNDcKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4MQogbXNnaWQgIi0tYWxsIGFuZCAtLXRhZ3MgYXJlIGluY29tcGF0aWJsZSIKLW1zZ3N0ciAiIgorbXNnc3RyICItLWFsbCBldCAtLXRhZ3Mgc29udCBpbmNvbXBhdGlibGVzIgogCi0jOiBidWlsdGluL3B1c2guYzozNDgKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4MgogbXNnaWQgIi0tYWxsIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCi1tc2dzdHIgIiIKK21zZ3N0ciAiLS1hbGwgbmUgcGV1dCBwYXMgw6p0cmUgY29tYmluw6kgYXZlYyBkZXMgc3DDqWNpZmljYXRpb25zIGRlIHLDqWbDqXJlbmNlIgogCi0jOiBidWlsdGluL3B1c2guYzozNTMKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4NwogbXNnaWQgIi0tbWlycm9yIGFuZCAtLXRhZ3MgYXJlIGluY29tcGF0aWJsZSIKLW1zZ3N0ciAiIgorbXNnc3RyICItLW1pcnJvciBldCAtLXRhZ3Mgc29udCBpbmNvbXBhdGlibGVzIgogCi0jOiBidWlsdGluL3B1c2guYzozNTQKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4OAogbXNnaWQgIi0tbWlycm9yIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCi1tc2dzdHIgIiIKK21zZ3N0ciAiLS1taXJyb3IgbmUgcGV1dCBwYXMgw6p0cmUgY29tYmluw6kgYXZlYyBkZXMgc3DDqWNpZmljYXRpb25zIGRlIHLDqWbDqXJlbmNlIgogCi0jOiBidWlsdGluL3B1c2guYzozNTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjM5MwogbXNnaWQgIi0tYWxsIGFuZCAtLW1pcnJvciBhcmUgaW5jb21wYXRpYmxlIgotbXNnc3RyICIiCittc2dzdHIgIi0tYWxsIGV0IC0tbWlycm9yIHNvbnQgaW5jb21wYXRpYmxlcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDE5CisjOiBidWlsdGluL3B1c2guYzo0NTMKIG1zZ2lkICJyZXBvc2l0b3J5IgotbXNnc3RyICIiCittc2dzdHIgImTDqXDDtHQiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyMAorIzogYnVpbHRpbi9wdXNoLmM6NDU0CiBtc2dpZCAicHVzaCBhbGwgcmVmcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJwb3Vzc2VyIHRvdXRlcyBsZXMgcsOpZsOpcmVuY2VzIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjEKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NQogbXNnaWQgIm1pcnJvciBhbGwgcmVmcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJyZWZsw6l0ZXIgdG91dGVzIGxlcyByw6lmw6lyZW5jZXMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyMworIzogYnVpbHRpbi9wdXNoLmM6NDU3CiBtc2dpZCAiZGVsZXRlIHJlZnMiCi1tc2dzdHIgIiIKK21zZ3N0ciAic3VwcHJpbWVyIGxlcyByw6lmw6lyZW5jZXMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyNAorIzogYnVpbHRpbi9wdXNoLmM6NDU4CiBtc2dpZCAicHVzaCB0YWdzIChjYW4ndCBiZSB1c2VkIHdpdGggLS1hbGwgb3IgLS1taXJyb3IpIgogbXNnc3RyICIiCisicG91c3NlciBsZXMgw6l0aXF1ZXR0ZXMgKG5lIHBldXQgcGFzIMOqdHJlIHV0aWxpc8OpIGF2ZWMgLS1hbGwgb3UgLS1taXJyb3IpIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MQogbXNnaWQgImZvcmNlIHVwZGF0ZXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZm9yY2VyIGxlcyBtaXNlcyDDoCBqb3VyIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjgKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MworbXNnaWQgInJlZm5hbWU+OjxleHBlY3QiCittc2dzdHIgIm5vbSBkZSByw6lmw6lyZW5jZT46PGF0dGVuZHUiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NAorbXNnaWQgInJlcXVpcmUgb2xkIHZhbHVlIG9mIHJlZiB0byBiZSBhdCB0aGlzIHZhbHVlIgorbXNnc3RyICJleGlnZXIgcXVlIGwnYW5jaWVubmUgdmFsZXVyIGRlIGxhIHLDqWbDqXJlbmNlIHNvaXQgw6AgY2V0dGUgdmFsZXVyIgorCisjOiBidWlsdGluL3B1c2guYzo0NjYKIG1zZ2lkICJjaGVjayIKLW1zZ3N0ciAiIgorbXNnc3RyICJjaGVjayIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI5CisjOiBidWlsdGluL3B1c2guYzo0NjcKIG1zZ2lkICJjb250cm9sIHJlY3Vyc2l2ZSBwdXNoaW5nIG9mIHN1Ym1vZHVsZXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiY29udHLDtGxlciBsZSBwb3Vzc2FnZSByw6ljdXJzaWYgZGVzIHNvdXMtbW9kdWxlcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDMxCisjOiBidWlsdGluL3B1c2guYzo0NjkKIG1zZ2lkICJ1c2UgdGhpbiBwYWNrIgotbXNnc3RyICIiCittc2dzdHIgInV0aWxpc2VyIHVuIGVtcGFxdWV0YWdlIGzDqWdlciIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDMyIGJ1aWx0aW4vcHVzaC5jOjQzMworIzogYnVpbHRpbi9wdXNoLmM6NDcwIGJ1aWx0aW4vcHVzaC5jOjQ3MQogbXNnaWQgInJlY2VpdmUgcGFjayBwcm9ncmFtIgotbXNnc3RyICIiCittc2dzdHIgInJlY2V2b2lyIGxlIHByb2dyYW1tZSBkJ2VtcGFxdWV0YWdlIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzQKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3MgogbXNnaWQgInNldCB1cHN0cmVhbSBmb3IgZ2l0IHB1bGwvc3RhdHVzIgotbXNnc3RyICIiCittc2dzdHIgImTDqWZpbmlyIGxhIGJyYW5jaGUgYW1vbnQgcG91ciBnaXQgcHVsbC9zdGF0dXMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzNworIzogYnVpbHRpbi9wdXNoLmM6NDc1CiBtc2dpZCAicHJ1bmUgbG9jYWxseSByZW1vdmVkIHJlZnMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiw6lsaW1pbmVyIGxlcyByw6lmw6lyZW5jZXMgbG9jYWxlcyBzdXBwcmltw6llcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDM5CisjOiBidWlsdGluL3B1c2guYzo0NzcKIG1zZ2lkICJieXBhc3MgcHJlLXB1c2ggaG9vayIKLW1zZ3N0ciAiIgorbXNnc3RyICLDqXZpdGVyIGQndXRpbGlzZXIgbGUgY3JvY2hldCBwcmUtcHVzaCIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDQwCisjOiBidWlsdGluL3B1c2guYzo0NzgKIG1zZ2lkICJwdXNoIG1pc3NpbmcgYnV0IHJlbGV2YW50IHRhZ3MiCi1tc2dzdHIgIiIKK21zZ3N0ciAicG91c3NlciBsZXMgw6l0aXF1ZXR0ZXMgbWFucXVhbnRlcyBtYWlzIHBlcnRpbmVudGVzIgogCi0jOiBidWlsdGluL3B1c2guYzo0NTAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ4OAogbXNnaWQgIi0tZGVsZXRlIGlzIGluY29tcGF0aWJsZSB3aXRoIC0tYWxsLCAtLW1pcnJvciBhbmQgLS10YWdzIgotbXNnc3RyICIiCittc2dzdHIgIi0tZGVsZXRlIGVzdCBpbmNvbXBhdGlibGUgYXZlYyAtLWFsbCwgLS1taXJyb3IgZXQgLS10YWdzIgogCi0jOiBidWlsdGluL3B1c2guYzo0NTIKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ5MAogbXNnaWQgIi0tZGVsZXRlIGRvZXNuJ3QgbWFrZSBzZW5zZSB3aXRob3V0IGFueSByZWZzIgotbXNnc3RyICIiCittc2dzdHIgIi0tZGVsZXRlIG4nYSBwYXMgZGUgc2VucyBzYW5zIGF1Y3VuZSByw6lmw6lyZW5jZSIKIAogIzogYnVpbHRpbi9yZWFkLXRyZWUuYzozNgogbXNnaWQgIiIKQEAgLTczNzgsNzAgKzgxODksODQgQEAKICJbLXUgWy0tZXhjbHVkZS1wZXItZGlyZWN0b3J5PTxnaXRpZ25vcmU+XSB8IC1pXV0gWy0tbm8tc3BhcnNlLWNoZWNrb3V0XSBbLS0iCiAiaW5kZXgtb3V0cHV0PTxmaWxlPl0gKC0tZW1wdHkgfCA8dHJlZS1pc2gxPiBbPHRyZWUtaXNoMj4gWzx0cmVlLWlzaDM+XV0pIgogbXNnc3RyICIiCisiZ2l0IHJlYWQtdHJlZSBbWy1tIFstLXRyaXZpYWxdIFstLWFnZ3Jlc3NpdmVdIHwgLS1yZXNldCB8IC0tIgorInByZWZpeD08cHLDqWZpeGU+XSBbLXUgWy0tZXhjbHVkZS1wZXItZGlyZWN0b3J5PTxnaXRpZ25vcmU+XSB8IC1pXV0gWy0tbm8tIgorInNwYXJzZS1jaGVja291dF0gWy0taW5kZXgtb3V0cHV0PTxmaWNoaWVyPl0gKC0tZW1wdHkgfCA8YXJicmUgb3UgYXBwYXJlbnTDqSAiCisiMT4gWzxhcmJyZSBvdSBhcHBhcmVudMOpIDI+IFs8YXJicmUgb3UgYXBwYXJlbnTDqSAzPl1dKSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDgKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA5CiBtc2dpZCAid3JpdGUgcmVzdWx0aW5nIGluZGV4IHRvIDxmaWxlPiIKLW1zZ3N0ciAiIgorbXNnc3RyICLDqWNyaXJlIGwnaW5kZXggcsOpc3VsdGFudCBkYW5zIDxmaWNoaWVyPiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTEKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEyCiBtc2dpZCAib25seSBlbXB0eSB0aGUgaW5kZXgiCi1tc2dzdHIgIiIKK21zZ3N0ciAianVzdGUgdmlkZXIgbCdpbmRleCIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE0CiBtc2dpZCAiTWVyZ2luZyIKLW1zZ3N0ciAiIgorbXNnc3RyICJGdXNpb24iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE1CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNgogbXNnaWQgInBlcmZvcm0gYSBtZXJnZSBpbiBhZGRpdGlvbiB0byBhIHJlYWQiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZWZmZWN0dWVyIHVuZSBmdXNpb24gZW4gcGx1cyBkJ3VuZSBsZWN0dXJlIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTgKIG1zZ2lkICIzLXdheSBtZXJnZSBpZiBubyBmaWxlIGxldmVsIG1lcmdpbmcgcmVxdWlyZWQiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZnVzaW9uIMOgIDMgcG9pbnRzIHNpIGF1Y3VuZSBmdXNpb24gZGUgbml2ZWF1IGZpY2hpZXIgbidlc3QgcmVxdWlzZSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTkKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIwCiBtc2dpZCAiMy13YXkgbWVyZ2UgaW4gcHJlc2VuY2Ugb2YgYWRkcyBhbmQgcmVtb3ZlcyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMQotbXNnaWQgInNhbWUgYXMgLW0sIGJ1dCBkaXNjYXJkIHVubWVyZ2VkIGVudHJpZXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAiZnVzaW9uIMOgIDMgcG9pbnRzIGVuIHByw6lzZW5jZSBkJ2Fqb3V0cyBldCBzdXBwcmVzc2lvbnMiCiAKICM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIyCi1tc2dpZCAiPHN1YmRpcmVjdG9yeT4vIgotbXNnc3RyICIiCittc2dpZCAic2FtZSBhcyAtbSwgYnV0IGRpc2NhcmQgdW5tZXJnZWQgZW50cmllcyIKK21zZ3N0ciAiY29tbWUgLW0sIG1haXMgYW5udWxlIGxlcyDDqWzDqW1lbnRzIG5vbiBmdXNpb25uw6lzIgogCiAjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMworbXNnaWQgIjxzdWJkaXJlY3Rvcnk+LyIKK21zZ3N0ciAiPHNvdXMtcsOpcGVydG9pcmU+LyIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjQKIG1zZ2lkICJyZWFkIHRoZSB0cmVlIGludG8gdGhlIGluZGV4IHVuZGVyIDxzdWJkaXJlY3Rvcnk+LyIKLW1zZ3N0ciAiIgorbXNnc3RyICJsaXJlIGwnYXJicmUgZGFucyBsJ2luZGV4IGRhbnMgPHNvdXMtcsOpcGVydG9pcmU+LyIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjYKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI3CiBtc2dpZCAidXBkYXRlIHdvcmtpbmcgdHJlZSB3aXRoIG1lcmdlIHJlc3VsdCIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyOAotbXNnaWQgImdpdGlnbm9yZSIKLW1zZ3N0ciAiIgorbXNnc3RyICJtZXR0cmUgw6Agam91ciBsYSBjb3BpZSBkZSB0cmF2YWlsIGF2ZWMgbGUgcsOpc3VsdGF0IGRlIGxhIGZ1c2lvbiIKIAogIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjkKLW1zZ2lkICJhbGxvdyBleHBsaWNpdGx5IGlnbm9yZWQgZmlsZXMgdG8gYmUgb3ZlcndyaXR0ZW4iCi1tc2dzdHIgIiIKK21zZ2lkICJnaXRpZ25vcmUiCittc2dzdHIgImdpdGlnbm9yZSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzIKLW1zZ2lkICJkb24ndCBjaGVjayB0aGUgd29ya2luZyB0cmVlIGFmdGVyIG1lcmdpbmciCi1tc2dzdHIgIiIKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMwCittc2dpZCAiYWxsb3cgZXhwbGljaXRseSBpZ25vcmVkIGZpbGVzIHRvIGJlIG92ZXJ3cml0dGVuIgorbXNnc3RyICJhdXRvcmlzZXIgZXhwbGljaXRlbWVudCBsZXMgZmljaGllcnMgaWdub3LDqXMgw6Agw6p0cmUgw6ljcmFzw6lzIgogCiAjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMworbXNnaWQgImRvbid0IGNoZWNrIHRoZSB3b3JraW5nIHRyZWUgYWZ0ZXIgbWVyZ2luZyIKK21zZ3N0ciAibmUgcGFzIHbDqXJpZmllciBsYSBjb3BpZSBkZSB0cmF2YWlsIGFwcsOocyBsYSBmdXNpb24iCisKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM0CiBtc2dpZCAiZG9uJ3QgdXBkYXRlIHRoZSBpbmRleCBvciB0aGUgd29yayB0cmVlIgotbXNnc3RyICIiCittc2dzdHIgIm5lIHBhcyBtZXR0cmUgw6Agam91ciBsJ2luZGV4IG91IGxhIGNvcGllIGRlIHRyYXZhaWwiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM1CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNgogbXNnaWQgInNraXAgYXBwbHlpbmcgc3BhcnNlIGNoZWNrb3V0IGZpbHRlciIKLW1zZ3N0ciAiIgorbXNnc3RyICJzYXV0ZXIgbCdhcHBsaWNhdGlvbiBkdSBmaWx0cmUgZCdleHRyYWN0aW9uIGNyZXVzZSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzcKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM4CiBtc2dpZCAiZGVidWcgdW5wYWNrLXRyZWVzIgotbXNnc3RyICIiCittc2dzdHIgImTDqWJvZ3VlciB1bnBhY2stdHJlZXMiCisKKyM6IGJ1aWx0aW4vcmVmbG9nLmM6NDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzJyBmb3IgJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiCittc2dzdHIgIiVzJyBwb3VyICclcycgbidlc3QgcGFzIHVuIGhvcm9kYXRhZ2UgdmFsaWRlIgorCisjOiBidWlsdGluL3JlZmxvZy5jOjYxNSBidWlsdGluL3JlZmxvZy5jOjYyMAorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIKK21zZ3N0ciAiJyVzJyBuJ2VzdCBwYXMgdW4gaG9yb2RhdGFnZSB2YWxpZGUiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTEKIG1zZ2lkICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0iCkBAIC03NDUxLDcgKzgyNzYsOSBAQAogbXNnaWQgIiIKICJnaXQgcmVtb3RlIGFkZCBbLXQgPGJyYW5jaD5dIFstbSA8bWFzdGVyPl0gWy1mXSBbLS10YWdzfC0tbm8tdGFnc10gWy0tIgogIm1pcnJvcj08ZmV0Y2h8cHVzaD5dIDxuYW1lPiA8dXJsPiIKLW1zZ3N0ciAiZ2l0IHJlbW90ZSBhZGQgWy10IDxicmFuY2hlPl0gWy1tIDxtYcOudHJlc3NlPl0gWy1mXSBbLS10YWdzfC0tbm8tdGFnc10gWy0tbWlycm9yPTxmZXRjaHxwdXNoPl0gPG5vbT4gPFVSTD4iCittc2dzdHIgIiIKKyJnaXQgcmVtb3RlIGFkZCBbLXQgPGJyYW5jaGU+XSBbLW0gPG1hw650cmVzc2U+XSBbLWZdIFstLXRhZ3N8LS1uby10YWdzXSBbLS0iCisibWlycm9yPTxmZXRjaHxwdXNoPl0gPG5vbT4gPFVSTD4iCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTMgYnVpbHRpbi9yZW1vdGUuYzozMgogbXNnaWQgImdpdCByZW1vdGUgcmVuYW1lIDxvbGQ+IDxuZXc+IgpAQCAtNzQ2MSw5ICs4Mjg4LDkgQEAKIG1zZ2lkICJnaXQgcmVtb3RlIHJlbW92ZSA8bmFtZT4iCiBtc2dzdHIgImdpdCByZW1vdGUgcmVtb3ZlIDxub20+IgogCi0jOiBidWlsdGluL3JlbW90ZS5jOjE1IGJ1aWx0aW4vcmVtb3RlLmM6NDIKLW1zZ2lkICJnaXQgcmVtb3RlIHNldC1oZWFkIDxuYW1lPiAoLWEgfCAtZCB8IDxicmFuY2g+KSIKLW1zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bm9tPiAoLWEgfCAtZCB8IDxicmFuY2hlPikiCisjOiBidWlsdGluL3JlbW90ZS5jOjE1Cittc2dpZCAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8PGJyYW5jaD4pIgorbXNnc3RyICJnaXQgcmVtb3RlIHNldC1oZWFkIDxub20+ICgtYSB8IC0tYXV0byB8IC1kIHwgLS1kZWxldGUgfDxicmFuY2hlPikiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTYKIG1zZ2lkICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0gc2hvdyBbLW5dIDxuYW1lPiIKQEAgLTc0NzYsNyArODMwMyw5IEBACiAjOiBidWlsdGluL3JlbW90ZS5jOjE4CiBtc2dpZCAiIgogImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSB1cGRhdGUgWy1wIHwgLS1wcnVuZV0gWyg8Z3JvdXA+IHwgPHJlbW90ZT4pLi4uXSIKLW1zZ3N0ciAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIHVwZGF0ZSBbLXAgfCAtLXBydW5lXSBbKDxncm91cGU+IHwgPGRpc3RhbnRlPikuLi5dIgorbXNnc3RyICIiCisiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIHVwZGF0ZSBbLXAgfCAtLXBydW5lXSBbKDxncm91cGU+IHwgIgorIjxkaXN0YW50ZT4pLi4uXSIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxOQogbXNnaWQgImdpdCByZW1vdGUgc2V0LWJyYW5jaGVzIFstLWFkZF0gPG5hbWU+IDxicmFuY2g+Li4uIgpAQCAtNzQ5OCw2ICs4MzI3LDEwIEBACiBtc2dpZCAiZ2l0IHJlbW90ZSBhZGQgWzxvcHRpb25zPl0gPG5hbWU+IDx1cmw+IgogbXNnc3RyICJnaXQgcmVtb3RlIGFkZCBbPG9wdGlvbnM+XSA8bm9tPiA8VVJMPiIKIAorIzogYnVpbHRpbi9yZW1vdGUuYzo0MgorbXNnaWQgImdpdCByZW1vdGUgc2V0LWhlYWQgPG5hbWU+ICgtYSB8IC0tYXV0byB8IC1kIHwgLS1kZWxldGUgfCA8YnJhbmNoPikiCittc2dzdHIgImdpdCByZW1vdGUgc2V0LWhlYWQgPG5vbT4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8IDxicmFuY2hlPikiCisKICM6IGJ1aWx0aW4vcmVtb3RlLmM6NDcKIG1zZ2lkICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyA8bmFtZT4gPGJyYW5jaD4uLi4iCiBtc2dzdHIgImdpdCByZW1vdGUgc2V0LWJyYW5jaGVzIDxub20+IDxicmFuY2hlPi4uLiIKQEAgLTc1NDIsNyArODM3NSw4IEBACiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTY1CiBtc2dpZCAiaW1wb3J0IGFsbCB0YWdzIGFuZCBhc3NvY2lhdGVkIG9iamVjdHMgd2hlbiBmZXRjaGluZyIKLW1zZ3N0ciAiaW1wb3J0ZXIgdG91dGVzIGxlcyDDqXRpcXVldHRlcyBldCBsZXMgb2JqZXRzIGFzc29jacOpcyBsb3JzIGR1IHJhcGF0cmllbWVudCIKK21zZ3N0ciAiIgorImltcG9ydGVyIHRvdXRlcyBsZXMgw6l0aXF1ZXR0ZXMgZXQgbGVzIG9iamV0cyBhc3NvY2nDqXMgbG9ycyBkdSByYXBhdHJpZW1lbnQiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTY4CiBtc2dpZCAib3IgZG8gbm90IGZldGNoIGFueSB0YWcgYXQgYWxsICgtLW5vLXRhZ3MpIgpAQCAtNzU2Miw3ICs4Mzk2LDggQEAKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNzMKIG1zZ2lkICJzZXQgdXAgcmVtb3RlIGFzIGEgbWlycm9yIHRvIHB1c2ggdG8gb3IgZmV0Y2ggZnJvbSIKLW1zZ3N0ciAicGFyYW3DqXRyZXIgbGEgZGlzdGFudGUgY29tbWUgbWlyb2lyIHBvdXIgcG91c3NlciBvdSBwb3VyIHJhcGF0cmllciBkZXB1aXMiCittc2dzdHIgIiIKKyJwYXJhbcOpdHJlciBsYSBkaXN0YW50ZSBjb21tZSBtaXJvaXIgcG91ciBwb3Vzc2VyIG91IHBvdXIgcmFwYXRyaWVyIGRlcHVpcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxODUKIG1zZ2lkICJzcGVjaWZ5aW5nIGEgbWFzdGVyIGJyYW5jaCBtYWtlcyBubyBzZW5zZSB3aXRoIC0tbWlycm9yIgpAQCAtNzU3MCw3ICs4NDA1LDkgQEAKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxODcKIG1zZ2lkICJzcGVjaWZ5aW5nIGJyYW5jaGVzIHRvIHRyYWNrIG1ha2VzIHNlbnNlIG9ubHkgd2l0aCBmZXRjaCBtaXJyb3JzIgotbXNnc3RyICJzcMOpY2lmaWVyIGxlcyBicmFuY2hlcyDDoCBzdWl2cmUgbidhIGRlIHNlbnMgcXUnYXZlYyBkZXMgbWlyb2lycyBkZSByYXBhdHJpZW1lbnQiCittc2dzdHIgIiIKKyJzcMOpY2lmaWVyIGxlcyBicmFuY2hlcyDDoCBzdWl2cmUgbidhIGRlIHNlbnMgcXUnYXZlYyBkZXMgbWlyb2lycyBkZSAiCisicmFwYXRyaWVtZW50IgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE5NSBidWlsdGluL3JlbW90ZS5jOjY0NgogIywgYy1mb3JtYXQKQEAgLTc1OTYsNiArODQzMyw4IEBACiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBnZXQgZmV0Y2ggbWFwIGZvciByZWZzcGVjICVzIgogbXNnc3RyICIiCisiSW1wb3NzaWJsZSBkJ29idGVuaXIgdW5lIGNvcnJlc3BvbmRhbmNlIGRpc3RhbnRlIHBvdXIgbGEgc3DDqWNpZmljYXRpb24gZGUgIgorInLDqWbDqXJlbmNlICVzIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjQ0MCBidWlsdGluL3JlbW90ZS5jOjQ0OAogbXNnaWQgIihtYXRjaGluZykiCkBAIC03NjM0LDcgKzg0NzMsNyBAQAogbXNnc3RyICIiCiAiUGFzIGRlIG1pc2Ugw6Agam91ciBkdSByZWZzcGVjIGRlIHJhcGF0cmllbWVudCBxdWkgbidlc3QgcGFzIHBhciBkw6lmYXV0XG4iCiAiXHQlc1xuIgotIlx0TWVyY2kgZGUgbWV0dHJlIMOgIGpvdXIgbGEgY29uZmlndXJhdGlvbiBzaSBuw6ljZXNzYWlyZS4iCisiXHRWZXVpbGxleiBtZXR0cmUgw6Agam91ciBsYSBjb25maWd1cmF0aW9uIG1hbnVlbGxlbWVudCBzaSBuw6ljZXNzYWlyZS4iCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6NjgzCiAjLCBjLWZvcm1hdApAQCAtNzY3Miw3ICs4NTExLDggQEAKICJOb3RlIDogVW5lIGJyYW5jaGUgZW4gZGVob3JzIGRlIHJlZnMvcmVtb3Rlcy8gbidhIHBhcyDDqXTDqSBzdXBwcmltw6llIDtcbiIKICJwb3VyIGxhIHN1cHByaW1lciwgdXRpbGlzZXogOiIKIG1zZ3N0clsxXSAiIgotIk5vdGUgOiBQbHVzaWV1cnMgYnJhbmNoZXMgZW4gZGVob3JzIGRlIHJlZnMvcmVtb3Rlcy8gbidvbnQgcGFzIMOpdMOpIHN1cHByaW3DqWVzIDtcbiIKKyJOb3RlIDogUGx1c2lldXJzIGJyYW5jaGVzIGVuIGRlaG9ycyBkZSByZWZzL3JlbW90ZXMvIG4nb250IHBhcyDDqXTDqSAiCisic3VwcHJpbcOpZXMgO1xuIgogInBvdXIgbGVzIHN1cHByaW1lciwgdXRpbGlzZXogOiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzo5NDMKQEAgLTc3OTIsNyArODYzMiw5IEBACiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICIgIEhFQUQgYnJhbmNoIChyZW1vdGUgSEVBRCBpcyBhbWJpZ3VvdXMsIG1heSBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZyk6XG4iCi1tc2dzdHIgIiAgQnJhbmNoZSBIRUFEIChsYSBIRUFEIGRpc3RhbnRlIGVzdCBhbWJpZ3XDqywgcGV1dCDDqnRyZSBsJ3VuZSBkZXMgc3VpdmFudGVzKSA6XG4iCittc2dzdHIgIiIKKyIgIEJyYW5jaGUgSEVBRCAobGEgSEVBRCBkaXN0YW50ZSBlc3QgYW1iaWd1w6ssIHBldXQgw6p0cmUgbCd1bmUgZGVzICIKKyJzdWl2YW50ZXMpIDpcbiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMTUxCiAjLCBjLWZvcm1hdApAQCAtNzgzNiw3ICs4Njc4LDkgQEAKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMjE4CiBtc2dpZCAiTXVsdGlwbGUgcmVtb3RlIEhFQUQgYnJhbmNoZXMuIFBsZWFzZSBjaG9vc2Ugb25lIGV4cGxpY2l0bHkgd2l0aDoiCi1tc2dzdHIgIklsIHkgYSBkZSBtdWx0aXBsZXMgYnJhbmNoZXMgSEVBRCBkaXN0YW50ZXMuIE1lcmNpIGQnZW4gY2hvaXNpciB1bmUgZXhwbGljaXRlbWVudCBhdmVjIDoiCittc2dzdHIgIiIKKyJJbCB5IGEgZGUgbXVsdGlwbGVzIGJyYW5jaGVzIEhFQUQgZGlzdGFudGVzLiBWZXVpbGxleiBlbiBjaG9pc2lyIHVuZSAiCisiZXhwbGljaXRlbWVudCBhdmVjIDoiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTIyOAogIywgYy1mb3JtYXQKQEAgLTc4NjYsNyArODcxMCw3IEBACiAjOiBidWlsdGluL3JlbW90ZS5jOjEyODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiUHJ1bmluZyAlcyIKLW1zZ3N0ciAiw4lsYWdhZ2UgZGUgJXMiCittc2dzdHIgIsOJbGltaW5hdGlvbiBkZSAlcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMjgyCiAjLCBjLWZvcm1hdApAQCAtNzg3NiwxNiArODcyMCwxNiBAQAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMjk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAqIFt3b3VsZCBwcnVuZV0gJXMiCi1tc2dzdHIgIiAqIFtzZXJhaXQgw6lsYWd1w6ldICVzIgorbXNnc3RyICIgKiBbc2VyYWl0IMOpbGltaW7DqV0gJXMiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTI5OAogIywgYy1mb3JtYXQKIG1zZ2lkICIgKiBbcHJ1bmVkXSAlcyIKLW1zZ3N0ciAiICogW8OpbGFndcOpXSAlcyIKK21zZ3N0ciAiICogW8OpbGltaW7DqV0gJXMiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTMyMQogbXNnaWQgInBydW5lIHJlbW90ZXMgYWZ0ZXIgZmV0Y2hpbmciCi1tc2dzdHIgIsOpbGFndWVyIGxlcyBkaXN0YW50cyBhcHLDqHMgbGUgcmFwYXRyaWVtZW50IgorbXNnc3RyICLDqWxpbWluZXIgbGVzIGRpc3RhbnRzIGFwcsOocyBsZSByYXBhdHJpZW1lbnQiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTM4NyBidWlsdGluL3JlbW90ZS5jOjE0NjEKICMsIGMtZm9ybWF0CkBAIC03OTI4LDEyICs4NzcyLDczIEBACiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQ5NwogbXNnaWQgIldpbGwgbm90IGRlbGV0ZSBhbGwgbm9uLXB1c2ggVVJMcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJQYXMgZGUgc3VwcHJlc3Npb24gZGUgdG91dGVzIGxlcyBVUkxzIG5vbi1wdXNoIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE1NjkKIG1zZ2lkICJiZSB2ZXJib3NlOyBtdXN0IGJlIHBsYWNlZCBiZWZvcmUgYSBzdWJjb21tYW5kIgogbXNnc3RyICLDqnRyZSB2ZXJiZXV4IDogZG9pdCDDqnRyZSBwbGFjw6kgYXZhbnQgdW5lIHNvdXMtY29tbWFuZGUiCiAKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTUKK21zZ2lkICJnaXQgcmVwYWNrIFtvcHRpb25zXSIKK21zZ3N0ciAiZ2l0IHJlcGFjayBbb3B0aW9uc10iCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTQzCittc2dpZCAicGFjayBldmVyeXRoaW5nIGluIGEgc2luZ2xlIHBhY2siCittc2dzdHIgImVtcGFxdWV0ZXIgdG91dCBkYW5zIHVuIHNldWwgcGFxdWV0IgorCisjOiBidWlsdGluL3JlcGFjay5jOjE0NQorbXNnaWQgInNhbWUgYXMgLWEsIGFuZCB0dXJuIHVucmVhY2hhYmxlIG9iamVjdHMgbG9vc2UiCittc2dzdHIgImlkZW50aXF1ZSDDoCAtYSBldCB0cmFuc2Zvcm1lciBsZXMgb2JqZXRzIGluYWNjZXNzaWJsZXMgZW4gc3VzcGVucyIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNDgKK21zZ2lkICJyZW1vdmUgcmVkdW5kYW50IHBhY2tzLCBhbmQgcnVuIGdpdC1wcnVuZS1wYWNrZWQiCittc2dzdHIgInN1cHByaW1lciBsZXMgcGFxdWV0cyByZWRvbmRhbnRzIGV0IGxhbmNlciBnaXQtcHJ1bmUtcGFja2VkIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE1MAorbXNnaWQgInBhc3MgLS1uby1yZXVzZS1kZWx0YSB0byBnaXQtcGFjay1vYmplY3RzIgorbXNnc3RyICJwYXNzZXIgLS1uby1yZXVzZS1kZWx0YSDDoCBnaXQtcGFjay1vYmplY3RzIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE1MgorbXNnaWQgInBhc3MgLS1uby1yZXVzZS1vYmplY3QgdG8gZ2l0LXBhY2stb2JqZWN0cyIKK21zZ3N0ciAicGFzc2VyIC0tbm8tcmV1c2Utb2JqZWN0IMOgIGdpdC1wYWNrLW9iamVjdHMiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTU0Cittc2dpZCAiZG8gbm90IHJ1biBnaXQtdXBkYXRlLXNlcnZlci1pbmZvIgorbXNnc3RyICJuZSBwYXMgbGFuY2VyIGdpdCB1cGRhdGUtc2VydmVyLWluZm8iCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTU3Cittc2dpZCAicGFzcyAtLWxvY2FsIHRvIGdpdC1wYWNrLW9iamVjdHMiCittc2dzdHIgInBhc3NlciAtLWxvY2FsIMOgIGdpdC1wYWNrLW9iamVjdHMiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTU4Cittc2dpZCAiYXBwcm94aWRhdGUiCittc2dzdHIgImRhdGUgYXBwcm94aW1hdGl2ZSIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNTkKK21zZ2lkICJ3aXRoIC1BLCBkbyBub3QgbG9vc2VuIG9iamVjdHMgb2xkZXIgdGhhbiB0aGlzIgorbXNnc3RyICJhdmVjIC1BLCBuZSBwYXMgc3VzcGVuZHJlIGxlcyBvYmpldHMgcGx1cyB2aWV1eCBxdWUgY2VsdWktY2kiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTYxCittc2dpZCAic2l6ZSBvZiB0aGUgd2luZG93IHVzZWQgZm9yIGRlbHRhIGNvbXByZXNzaW9uIgorbXNnc3RyICJ0YWlsbGUgZGUgbGEgZmVuw6p0cmUgdXRpbGlzw6llIHBvdXIgbGEgY29tcHJlc3Npb24gZGVzIGRlbHRhcyIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNjMKK21zZ2lkICJzYW1lIGFzIHRoZSBhYm92ZSwgYnV0IGxpbWl0IG1lbW9yeSBzaXplIGluc3RlYWQgb2YgZW50cmllcyBjb3VudCIKK21zZ3N0ciAiaWRlbSBjaS1kZXNzdXMsIG1haXMgbGltaXRlciBsYSB0YWlsbGUgbcOpbW9pcmUgYXUgbGlldSBkdSBub21icmUgZCfDqWzDqW1lbnRzIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE2NQorbXNnaWQgImxpbWl0cyB0aGUgbWF4aW11bSBkZWx0YSBkZXB0aCIKK21zZ3N0ciAibGltaXRlIGxhIHByb2ZvbmRldXIgbWF4aW1hbGUgZGVzIGRlbHRhcyIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNjcKK21zZ2lkICJtYXhpbXVtIHNpemUgb2YgZWFjaCBwYWNrZmlsZSIKK21zZ3N0ciAidGFpbGxlIG1heGltdW0gZGUgY2hhcXVlIGZpY2hpZXIgcGFxdWV0IgorCisjOiBidWlsdGluL3JlcGFjay5jOjM0NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZW1vdmluZyAnJXMnIGZhaWxlZCIKK21zZ3N0ciAibGEgc3VwcHJlc3Npb24gZGUgJyVzJyBhIMOpY2hvdcOpIgorCiAjOiBidWlsdGluL3JlcGxhY2UuYzoxNwogbXNnaWQgImdpdCByZXBsYWNlIFstZl0gPG9iamVjdD4gPHJlcGxhY2VtZW50PiIKIG1zZ3N0ciAiZ2l0IHJlcGxhY2UgWy1mXSA8b2JqZXQ+IDxyZW1wbGFjZW1lbnQ+IgpAQCAtNzk0NiwzOCArODg1MSwzOSBAQAogbXNnaWQgImdpdCByZXBsYWNlIC1sIFs8cGF0dGVybj5dIgogbXNnc3RyICJnaXQgcmVwbGFjZSAtbCBbPG1vdGlmPl0iCiAKLSM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEyMQorIzogYnVpbHRpbi9yZXBsYWNlLmM6MTMxCiBtc2dpZCAibGlzdCByZXBsYWNlIHJlZnMiCiBtc2dzdHIgImFmZmljaGVyIGxlcyByw6lmw6lyZW5jZXMgZGUgcmVtcGxhY2VtZW50IgogCi0jOiBidWlsdGluL3JlcGxhY2UuYzoxMjIKKyM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEzMgogbXNnaWQgImRlbGV0ZSByZXBsYWNlIHJlZnMiCiBtc2dzdHIgInN1cHByaW1lciBsZXMgcsOpZsOpcmVuY2VzIGRlIHJlbXBsYWNlbWVudCIKIAotIzogYnVpbHRpbi9yZXBsYWNlLmM6MTIzCisjOiBidWlsdGluL3JlcGxhY2UuYzoxMzMKIG1zZ2lkICJyZXBsYWNlIHRoZSByZWYgaWYgaXQgZXhpc3RzIgogbXNnc3RyICJyZW1wbGFjZXIgbGEgcsOpZsOpcmVuY2Ugc2kgZWxsZSBleGlzdGUiCiAKLSM6IGJ1aWx0aW4vcmVyZXJlLmM6MTEKKyM6IGJ1aWx0aW4vcmVyZXJlLmM6MTIKIG1zZ2lkICJnaXQgcmVyZXJlIFtjbGVhciB8IGZvcmdldCBwYXRoLi4uIHwgc3RhdHVzIHwgcmVtYWluaW5nIHwgZGlmZiB8IGdjXSIKIG1zZ3N0ciAiZ2l0IHJlcmVyZSBbY2xlYXIgfCBmb3JnZXQgY2hlbWluLi4uIHwgc3RhdHVzIHwgcmVtYWluaW5nIHwgZGlmZiB8IGdjXSIKIAotIzogYnVpbHRpbi9yZXJlcmUuYzo1NgorIzogYnVpbHRpbi9yZXJlcmUuYzo1NwogbXNnaWQgInJlZ2lzdGVyIGNsZWFuIHJlc29sdXRpb25zIGluIGluZGV4IgogbXNnc3RyICJlbnJlZ2lzdHJlciBkZXMgcsOpc29sdXRpb25zIHByb3ByZXMgZGFucyBsJ2luZGV4IgogCiAjOiBidWlsdGluL3Jlc2V0LmM6MjUKIG1zZ2lkICIiCiAiZ2l0IHJlc2V0IFstLW1peGVkIHwgLS1zb2Z0IHwgLS1oYXJkIHwgLS1tZXJnZSB8IC0ta2VlcF0gWy1xXSBbPGNvbW1pdD5dIgotbXNnc3RyICJnaXQgcmVzZXQgWy0tbWl4ZWQgfCAtLXNvZnQgfCAtLWhhcmQgfCAtLW1lcmdlIHwgLS1rZWVwXSBbLXFdIFs8Y29tbWl0Pl0iCittc2dzdHIgIiIKKyJnaXQgcmVzZXQgWy0tbWl4ZWQgfCAtLXNvZnQgfCAtLWhhcmQgfCAtLW1lcmdlIHwgLS1rZWVwXSBbLXFdIFs8Y29tbWl0Pl0iCiAKICM6IGJ1aWx0aW4vcmVzZXQuYzoyNgogbXNnaWQgImdpdCByZXNldCBbLXFdIDx0cmVlLWlzaD4gWy0tXSA8cGF0aHM+Li4uIgotbXNnc3RyICJnaXQgcmVzZXQgWy1xXSA8YXJicmU+IFstLV0gPGNoZW1pbnM+Li4uIgorbXNnc3RyICJnaXQgcmVzZXQgWy1xXSA8YXJicmUgb3UgYXBwYXJlbnTDqT4gWy0tXSA8Y2hlbWlucz4uLi4iCiAKICM6IGJ1aWx0aW4vcmVzZXQuYzoyNwogbXNnaWQgImdpdCByZXNldCAtLXBhdGNoIFs8dHJlZS1pc2g+XSBbLS1dIFs8cGF0aHM+Li4uXSIKLW1zZ3N0ciAiZ2l0IHJlc2V0IC0tcGF0Y2ggWzxhcmJyZT5dIFstLV0gWzxjaGVtaW5zPi4uLl0iCittc2dzdHIgImdpdCByZXNldCAtLXBhdGNoIFs8YXJicmUgb3UgYXBwYXJlbnTDqT5dIFstLV0gWzxjaGVtaW5zPi4uLl0iCiAKICM6IGJ1aWx0aW4vcmVzZXQuYzozMwogbXNnaWQgIm1peGVkIgpAQCAtODAxMiw5NSArODkxOCw5NyBAQAogbXNnaWQgIkZhaWxlZCB0byBmaW5kIHRyZWUgb2YgJXMuIgogbXNnc3RyICJJbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbCdhcmJyZSBwb3VyICVzLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjk4CisjOiBidWlsdGluL3Jlc2V0LmM6OTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiSEVBRCBpcyBub3cgYXQgJXMiCiBtc2dzdHIgIkhFQUQgZXN0IG1haW50ZW5hbnQgw6AgJXMiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoxNjkKKyM6IGJ1aWx0aW4vcmVzZXQuYzoxNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGRvIGEgJXMgcmVzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlLiIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSBmYWlyZSB1biBcInJlc2V0ICVzXCIgYXUgbWlsaWV1IGQndW5lIGZ1c2lvbi4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNDgKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjIKIG1zZ2lkICJiZSBxdWlldCwgb25seSByZXBvcnQgZXJyb3JzIgogbXNnc3RyICLDqnRyZSBzaWxlbmNpZXV4LCBhZmZpY2hlciBzZXVsZW1lbnQgbGVzIGVycmV1cnMiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTAKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjQKIG1zZ2lkICJyZXNldCBIRUFEIGFuZCBpbmRleCIKIG1zZ3N0ciAicsOpaW5pdGlhbGlzZXIgSEVBRCBldCBsJ2luZGV4IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjUxCisjOiBidWlsdGluL3Jlc2V0LmM6MjY1CiBtc2dpZCAicmVzZXQgb25seSBIRUFEIgogbXNnc3RyICJyw6lpbml0aWFsaXNlciBzZXVsZW1lbnQgSEVBRCIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MyBidWlsdGluL3Jlc2V0LmM6MjU1CisjOiBidWlsdGluL3Jlc2V0LmM6MjY3IGJ1aWx0aW4vcmVzZXQuYzoyNjkKIG1zZ2lkICJyZXNldCBIRUFELCBpbmRleCBhbmQgd29ya2luZyB0cmVlIgogbXNnc3RyICJyw6lpbml0aWFsaXNlciBIRUFELCBsJ2luZGV4IGV0IGxhIGNvcGllIGRlIHRyYXZhaWwiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTcKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNzEKIG1zZ2lkICJyZXNldCBIRUFEIGJ1dCBrZWVwIGxvY2FsIGNoYW5nZXMiCiBtc2dzdHIgInLDqWluaXRpYWxpc2VyIEhFQUQgbWFpcyBnYXJkZXIgbGVzIGNoYW5nZW1lbnRzIGxvY2F1eCIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI3NQorIzogYnVpbHRpbi9yZXNldC5jOjI4OQogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgcmV2aXNpb24uIgogbXNnc3RyICLDiWNoZWMgZGUgcsOpc29sdXRpb24gZGUgJyVzJyBjb21tZSB1bmUgcsOpdmlzaW9uIHZhbGlkZS4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNzggYnVpbHRpbi9yZXNldC5jOjI4NgorIzogYnVpbHRpbi9yZXNldC5jOjI5MiBidWlsdGluL3Jlc2V0LmM6MzAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBvYmplY3QgJyVzJy4iCiBtc2dzdHIgIkltcG9zc2libGUgZCdhbmFseXNlciBsJ29iamV0ICclcycuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjgzCisjOiBidWlsdGluL3Jlc2V0LmM6Mjk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCB0cmVlLiIKIG1zZ3N0ciAiw4ljaGVjIGRlIHLDqXNvbHV0aW9uIGRlICclcycgY29tbWUgdW4gYXJicmUgdmFsaWRlLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI5MgorIzogYnVpbHRpbi9yZXNldC5jOjMwNgogbXNnaWQgIi0tcGF0Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggLS17aGFyZCxtaXhlZCxzb2Z0fSIKIG1zZ3N0ciAiLS1wYXRjaCBlc3QgaW5jb21wYXRpYmxlIGF2ZWMgLS17aGFyZCxtaXhlZCxzb2Z0fSIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMwMQorIzogYnVpbHRpbi9yZXNldC5jOjMxNQogbXNnaWQgIi0tbWl4ZWQgd2l0aCBwYXRocyBpcyBkZXByZWNhdGVkOyB1c2UgJ2dpdCByZXNldCAtLSA8cGF0aHM+JyBpbnN0ZWFkLiIKLW1zZ3N0ciAiLS1taXhlZCBhdmVjIGRlcyBjaGVtaW5zIGVzdCBvYnNvbMOodGUgOyB1dGlsaXNleiAnZ2l0IHJlc2V0IC0tIDxwYXRocz4nIMOgIGxhIHBsYWNlLiIKK21zZ3N0ciAiIgorIi0tbWl4ZWQgYXZlYyBkZXMgY2hlbWlucyBlc3Qgb2Jzb2zDqHRlIDsgdXRpbGlzZXogJ2dpdCByZXNldCAtLSA8cGF0aHM+JyDDoCBsYSAiCisicGxhY2UuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzAzCisjOiBidWlsdGluL3Jlc2V0LmM6MzE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBkbyAlcyByZXNldCB3aXRoIHBhdGhzLiIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSBmYWlyZSB1biBcIiVzIHJlc2V0XCIgYXZlYyBkZXMgY2hlbWlucy4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMTMKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgcmVzZXQgaXMgbm90IGFsbG93ZWQgaW4gYSBiYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIkxlIFwiJXMgcmVzZXRcIiBuJ2VzdCBwYXMgcGVybWlzIGRhbnMgdW4gZMOpcMO0dCBudSIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMzMworIzogYnVpbHRpbi9yZXNldC5jOjM0NAorbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVzZXQ6IgorbXNnc3RyICJNb2RpZmljYXRpb25zIG5vbiBpbmRleMOpZXMgYXByw6hzIHJlc2V0IDoiCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlc2V0IGluZGV4IGZpbGUgdG8gcmV2aXNpb24gJyVzJy4iCiBtc2dzdHIgIkltcG9zc2libGUgZGUgcsOpaW5pdGlhbGlzZXIgbGUgZmljaGllciBkJ2luZGV4IMOgIGxhIHLDqXZpc2lvbiAnJXMnLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMzOQotbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVzZXQ6IgotbXNnc3RyICJNb2RpZmljYXRpb25zIG5vbiBpbmRleMOpZXMgYXByw6hzIHJlc2V0IDoiCi0KLSM6IGJ1aWx0aW4vcmVzZXQuYzozNDQKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNTUKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgbmV3IGluZGV4IGZpbGUuIgogbXNnc3RyICJJbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBub3V2ZWF1IGZpY2hpZXIgZCdpbmRleC4iCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzM5CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NQogbXNnaWQgImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmdzPi4uLl0iCiBtc2dzdHIgImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmd1bWVudHM+Li4uXSIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNDQKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzUwCiBtc2dpZCAia2VlcCB0aGUgYC0tYCBwYXNzZWQgYXMgYW4gYXJnIgogbXNnc3RyICJnYXJkZXIgbGUgYC0tYCBwYXNzw6kgZW4gYXJndW1lbnQiCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzQ2CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM1MgogbXNnaWQgInN0b3AgcGFyc2luZyBhZnRlciB0aGUgZmlyc3Qgbm9uLW9wdGlvbiBhcmd1bWVudCIKIG1zZ3N0ciAiYXJyw6p0IGRlIGwnYW5hbHlzZSBhcHLDqHMgbGUgcHJlbWllciBhcmd1bWVudCBxdWkgbidlc3QgcGFzIHVuZSBvcHRpb24iCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6NDY0CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjQ3MAogbXNnaWQgIiIKICJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgW29wdGlvbnNdIC0tIFs8YXJncz4uLi5dXG4iCiAiICAgb3I6IGdpdCByZXYtcGFyc2UgLS1zcS1xdW90ZSBbPGFyZz4uLi5dXG4iCkBAIC04MTEyLDExICs5MDIwLDEyIEBACiAiICAgb3UgOiBnaXQgcmV2LXBhcnNlIC0tc3EtcXVvdGUgWzxhcmd1bWVudD4uLi5dXG4iCiAiICAgb3UgOiBnaXQgcmV2LXBhcnNlIFtvcHRpb25zXSBbPGFyZ3VtZW50Pi4uLl1cbiIKICJcbiIKLSJMYW5jZXogXCJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgLWhcIiBwb3VyIHBsdXMgZCdpbmZvcm1hdGlvbiBzdXIgbCd1dGlsaXNhdGlvbiBwcmluY2lwYWxlLiIKKyJMYW5jZXogXCJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgLWhcIiBwb3VyIHBsdXMgZCdpbmZvcm1hdGlvbiBzdXIgIgorImwndXRpbGlzYXRpb24gcHJpbmNpcGFsZS4iCiAKICM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjIKIG1zZ2lkICJnaXQgcmV2ZXJ0IFtvcHRpb25zXSA8Y29tbWl0LWlzaD4uLi4iCi1tc2dzdHIgImdpdCByZXZlcnQgW29wdGlvbnNdIDxjb21taXQ+Li4uIgorbXNnc3RyICJnaXQgcmV2ZXJ0IFtvcHRpb25zXSA8Y29tbWl0IG91IGFwcGFyZW50w6k+Li4uIgogCiAjOiBidWlsdGluL3JldmVydC5jOjIzCiBtc2dpZCAiZ2l0IHJldmVydCA8c3ViY29tbWFuZD4iCkBAIC04MTI0LDE1MSArOTAzMywxODAgQEAKIAogIzogYnVpbHRpbi9yZXZlcnQuYzoyOAogbXNnaWQgImdpdCBjaGVycnktcGljayBbb3B0aW9uc10gPGNvbW1pdC1pc2g+Li4uIgotbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgW29wdGlvbnNdIDxjb21taXQ+Li4uIgorbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgW29wdGlvbnNdIDxjb21taXQgb3UgYXBwYXJlbnTDqT4uLi4iCiAKICM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjkKIG1zZ2lkICJnaXQgY2hlcnJ5LXBpY2sgPHN1YmNvbW1hbmQ+IgogbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgPHNvdXMtY29tbWFuZGU+IgogCi0jOiBidWlsdGluL3JldmVydC5jOjcwIGJ1aWx0aW4vcmV2ZXJ0LmM6OTIKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6NzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6ICVzIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiCiBtc2dzdHIgIiVzIDogJXMgbmUgcGV1dCBwYXMgw6p0cmUgdXRpbGlzw6kgYXZlYyAlcyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODAKIG1zZ2lkICJlbmQgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICJtZXR0cmUgZmluIGF1IHJldG91ciBvdSBwaWNvcmFnZSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDQKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODEKIG1zZ2lkICJyZXN1bWUgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICJyZXByZW5kcmUgbGUgcmV0b3VyIG91IHBpY29yYWdlIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNQorIzogYnVpbHRpbi9yZXZlcnQuYzo4MgogbXNnaWQgImNhbmNlbCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgImFubnVsZXIgbGUgcmV0b3VyIG91IHBpY29yYWdlIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNgorIzogYnVpbHRpbi9yZXZlcnQuYzo4MwogbXNnaWQgImRvbid0IGF1dG9tYXRpY2FsbHkgY29tbWl0IgogbXNnc3RyICJuZSBwYXMgdmFsaWRlciBhdXRvbWF0aXF1ZW1lbnQiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA3CisjOiBidWlsdGluL3JldmVydC5jOjg0CiBtc2dpZCAiZWRpdCB0aGUgY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgIsOpZGl0ZXIgbGUgbWVzc2FnZSBkZSB2YWxpZGF0aW9uIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExMAorIzogYnVpbHRpbi9yZXZlcnQuYzo4NwogbXNnaWQgInBhcmVudCBudW1iZXIiCiBtc2dzdHIgIm51bcOpcm8gZGUgcGFyZW50IgogCi0jOiBidWlsdGluL3JldmVydC5jOjExMgorIzogYnVpbHRpbi9yZXZlcnQuYzo4OQogbXNnaWQgIm1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICJzdHJhdMOpZ2llIGRlIGZ1c2lvbiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6OTAKIG1zZ2lkICJvcHRpb24iCiBtc2dzdHIgIm9wdGlvbiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTQKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6OTEKIG1zZ2lkICJvcHRpb24gZm9yIG1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICJvcHRpb24gcG91ciBsYSBzdHJhdMOpZ2llIGRlIGZ1c2lvbiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTAyCiBtc2dpZCAiYXBwZW5kIGNvbW1pdCBuYW1lIgogbXNnc3RyICJham91dGVyIGxlIG5vbSBkZSB2YWxpZGF0aW9uIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNgorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDMKIG1zZ2lkICJhbGxvdyBmYXN0LWZvcndhcmQiCiBtc2dzdHIgImF1dG9yaXNlciBsJ2F2YW5jZSByYXBpZGUiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI3CisjOiBidWlsdGluL3JldmVydC5jOjEwNAogbXNnaWQgInByZXNlcnZlIGluaXRpYWxseSBlbXB0eSBjb21taXRzIgogbXNnc3RyICJwcsOpc2VydmVyIGxlcyB2YWxpZGF0aW9ucyB2aWRlcyBpbml0aWFsZW1lbnQiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4CisjOiBidWlsdGluL3JldmVydC5jOjEwNQogbXNnaWQgImFsbG93IGNvbW1pdHMgd2l0aCBlbXB0eSBtZXNzYWdlcyIKIG1zZ3N0ciAiYXV0b3Jpc2VyIGxlcyB2YWxpZGF0aW9ucyBhdmVjIGRlcyBtZXNzYWdlcyB2aWRlcyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjkKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA2CiBtc2dpZCAia2VlcCByZWR1bmRhbnQsIGVtcHR5IGNvbW1pdHMiCiBtc2dzdHIgImdhcmRlciBsZXMgdmFsaWRhdGlvbnMgcmVkb25kYW50ZXMsIHZpZGVzIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzMworIzogYnVpbHRpbi9yZXZlcnQuYzoxMTAKIG1zZ2lkICJwcm9ncmFtIGVycm9yIgogbXNnc3RyICJlcnJldXIgZHUgcHJvZ3JhbW1lIgogCi0jOiBidWlsdGluL3JldmVydC5jOjIyMworIzogYnVpbHRpbi9yZXZlcnQuYzoxOTUKIG1zZ2lkICJyZXZlcnQgZmFpbGVkIgogbXNnc3RyICJyZXZlcnQgYSDDqWNob3XDqSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyMzgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjEwCiBtc2dpZCAiY2hlcnJ5LXBpY2sgZmFpbGVkIgogbXNnc3RyICJsZSBwaWNvcmFnZSBhIMOpY2hvdcOpIgogCi0jOiBidWlsdGluL3JtLmM6MTUKKyM6IGJ1aWx0aW4vcm0uYzoxNwogbXNnaWQgImdpdCBybSBbb3B0aW9uc10gWy0tXSA8ZmlsZT4uLi4iCiBtc2dzdHIgImdpdCBybSBbb3B0aW9uc10gWy0tXSA8ZmljaGllcj4uLi4iCiAKLSM6IGJ1aWx0aW4vcm0uYzo2NCBidWlsdGluL3JtLmM6MTg2Ci0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjY1CiBtc2dpZCAiIgotInN1Ym1vZHVsZSAnJXMnIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKSB1c2VzIGEgLmdpdCBkaXJlY3RvcnlcbiIKKyJ0aGUgZm9sbG93aW5nIHN1Ym1vZHVsZSAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcylcbiIKKyJ1c2VzIGEgLmdpdCBkaXJlY3Rvcnk6IgorbXNnaWRfcGx1cmFsICIiCisidGhlIGZvbGxvd2luZyBzdWJtb2R1bGVzIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKVxuIgorInVzZSBhIC5naXQgZGlyZWN0b3J5OiIKK21zZ3N0clswXSAiIgorImxlIHNvdXMtbW9kdWxlIHN1aXZhbnQgKG91IHVuIGRlIHNlcyBzb3VzLW1vZHVsZXMgaW1icmlxdcOpcylcbiIKKyJ1dGlsaXNlIHVuIHLDqXBlcnRvaXJlIC5naXQgOiIKK21zZ3N0clsxXSAiIgorImxlcyBzb3VzLW1vZHVsZXMgc3VpdmFudHMgKG91IHVuIGRlIHNlcyBzb3VzLW1vZHVsZXMgaW1icmlxdcOpcylcbiIKKyJ1dGlsaXNlbnQgdW4gcsOpcGVydG9pcmUgLmdpdCA6IgorCisjOiBidWlsdGluL3JtLmM6NzEKK21zZ2lkICIiCisiXG4iCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgogbXNnc3RyICIiCi0ibGUgc291cy1tb2R1bGUgJyVzJyAob3UgdW4gZGVzIHNvdXMtbW9kdWxlcyBpbWJyaXF1w6lzKSB1dGlsaXNlIHVuIHLDqXBlcnRvaXJlIC5naXRcbiIKLSIodXRpbGlzZXogJ3JtIC1yZicgc2kgdm91cyBzb3VoYWl0ZXogdnJhaW1lbnQgbGUgc3VwcHJpbWVyIGF2ZWMgdG91dCBzb24gaGlzdG9yaXF1ZSkiCisiXG4iCisiKHV0aWxpc2V6ICdybSAtcmYnIHNpIHZvdXMgdm91bGV6IHZyYWltZW50IGxlIHN1cHByaW1lciBlbiBpbmNsdWFudCB0b3V0IHNvbiAiCisiaGlzdG9yaXF1ZSkiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxNzQKLSMsIGMtZm9ybWF0CisjOiBidWlsdGluL3JtLmM6MjMxCiBtc2dpZCAiIgotIiclcycgaGFzIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlIGZpbGUgYW5kIHRoZSBIRUFEXG4iCisidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgorImZpbGUgYW5kIHRoZSBIRUFEOiIKK21zZ2lkX3BsdXJhbCAiIgorInRoZSBmb2xsb3dpbmcgZmlsZXMgaGF2ZSBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgorImZpbGUgYW5kIHRoZSBIRUFEOiIKK21zZ3N0clswXSAiIgorImxlIGZpY2hpZXIgc3VpdmFudCBhIGR1IGNvbnRlbnUgaW5kZXjDqSBkaWZmw6lyZW50XG4iCisiZHUgZmljaGllciBldCBkZSBIRUFEIDoiCittc2dzdHJbMV0gIiIKKyJsZXMgZmljaGllcnMgc3VpdmFudHMgb250IGR1IGNvbnRlbnUgaW5kZXjDqSBkaWZmw6lyZW50XG4iCisiZHUgZmljaGllciBldCBkZSBIRUFEIDoiCisKKyM6IGJ1aWx0aW4vcm0uYzoyMzYKK21zZ2lkICIiCisiXG4iCiAiKHVzZSAtZiB0byBmb3JjZSByZW1vdmFsKSIKIG1zZ3N0ciAiIgotIiclcycgYSBkdSBjb250ZW51IGluZGV4w6kgZGlmZsOpcmVudCBkdSBmaWNoaWVyIGV0IGRlIEhFQURcbiIKKyJcbiIKICIodXRpbGlzZXogLWYgcG91ciBmb3JjZXIgbGEgc3VwcHJlc3Npb24pIgogCi0jOiBidWlsdGluL3JtLmM6MTgwCi0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjI0MAorbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKK21zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoiCittc2dzdHJbMF0gImxlIGZpY2hpZXIgc3VpdmFudCBhIGRlcyBjaGFuZ2VtZW50cyBpbmRleMOpcyA6IgorbXNnc3RyWzFdICJsZXMgZmljaGllcnMgc3VpdmFudHMgb250IGRlcyBjaGFuZ2VtZW50cyBpbmRleMOpcyA6IgorCisjOiBidWlsdGluL3JtLmM6MjQ0IGJ1aWx0aW4vcm0uYzoyNTUKIG1zZ2lkICIiCi0iJyVzJyBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4XG4iCisiXG4iCiAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIKIG1zZ3N0ciAiIgotIiclcycgYSBkZXMgY2hhbmdlbWVudHMgZGFucyBsJ2luZGV4XG4iCisiXG4iCiAiKHV0aWxpc2V6IC0tY2FjaGVkIHBvdXIgZ2FyZGVyIGxlIGZpY2hpZXIsIG91IC1mIHBvdXIgZm9yY2VyIGxhIHN1cHByZXNzaW9uKSIKIAotIzogYnVpbHRpbi9ybS5jOjE5MQotIywgYy1mb3JtYXQKLW1zZ2lkICIiCi0iJyVzJyBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uc1xuIgotIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCi1tc2dzdHIgIiIKLSInJXMnIGEgZGVzIG1vZGlmaWNhdGlvbnMgbG9jYWxlc1xuIgotIih1dGlsaXNleiAtLWNhY2hlZCBwb3VyIGdhcmRlciBsZSBmaWNoaWVyLCBvdSAtZiBwb3VyIGZvcmNlciBsYSBzdXBwcmVzc2lvbikiCisjOiBidWlsdGluL3JtLmM6MjUyCittc2dpZCAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zOiIKK21zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGxvY2FsIG1vZGlmaWNhdGlvbnM6IgorbXNnc3RyWzBdICJsZSBmaWNoaWVyIHN1aXZhbnQgYSBkZXMgbW9kaWZpY2F0aW9ucyBsb2NhbGVzIDoiCittc2dzdHJbMV0gImxlcyBmaWNoaWVycyBzdWl2YW50cyBvbnQgZGVzIG1vZGlmaWNhdGlvbnMgbG9jYWxlcyA6IgogCi0jOiBidWlsdGluL3JtLmM6MjA3CisjOiBidWlsdGluL3JtLmM6MjcwCiBtc2dpZCAiZG8gbm90IGxpc3QgcmVtb3ZlZCBmaWxlcyIKIG1zZ3N0ciAibmUgcGFzIGFmZmljaGVyIGxlcyBmaWNoaWVycyBzdXBwcmltw6lzIgogCi0jOiBidWlsdGluL3JtLmM6MjA4CisjOiBidWlsdGluL3JtLmM6MjcxCiBtc2dpZCAib25seSByZW1vdmUgZnJvbSB0aGUgaW5kZXgiCiBtc2dzdHIgInN1cHByaW1lciBzZXVsZW1lbnQgZGUgbCdpbmRleCIKIAotIzogYnVpbHRpbi9ybS5jOjIwOQorIzogYnVpbHRpbi9ybS5jOjI3MgogbXNnaWQgIm92ZXJyaWRlIHRoZSB1cC10by1kYXRlIGNoZWNrIgogbXNnc3RyICJvdXRyZXBhc3NlciBsYSB2w6lyaWZpY2F0aW9uIGRlcyBmaWNoaWVycyDDoCBqb3VyIgogCi0jOiBidWlsdGluL3JtLmM6MjEwCisjOiBidWlsdGluL3JtLmM6MjczCiBtc2dpZCAiYWxsb3cgcmVjdXJzaXZlIHJlbW92YWwiCiBtc2dzdHIgImF1dG9yaXNlciBsYSBzdXBwcmVzc2lvbiByw6ljdXJzaXZlIgogCi0jOiBidWlsdGluL3JtLmM6MjEyCisjOiBidWlsdGluL3JtLmM6Mjc1CiBtc2dpZCAiZXhpdCB3aXRoIGEgemVybyBzdGF0dXMgZXZlbiBpZiBub3RoaW5nIG1hdGNoZWQiCiBtc2dzdHIgInNvcnRpciBhdmVjIHVuIHN0YXR1dCB6w6lybyBtw6ptZSBzaSByaWVuIG5lIGNvcnJlc3BvbmRhaXQiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyODMKKyM6IGJ1aWx0aW4vcm0uYzozMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHJlbW92aW5nICclcycgcmVjdXJzaXZlbHkgd2l0aG91dCAtciIKIG1zZ3N0ciAicGFzIGRlIHN1cHByZXNzaW9uIHLDqWN1cnNpdmUgZGUgJyVzJyBzYW5zIC1yIgogCi0jOiBidWlsdGluL3JtLmM6MzIyCisjOiBidWlsdGluL3JtLmM6Mzc1CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCBybTogdW5hYmxlIHRvIHJlbW92ZSAlcyIKIG1zZ3N0ciAiZ2l0IHJtIDogaW1wb3NzaWJsZSBkZSBzdXBwcmltZXIgJXMiCkBAIC04MjgyLDIzICs5MjIwLDI1IEBACiBtc2dpZCAiTWlzc2luZyBhdXRob3I6ICVzIgogbXNnc3RyICJBdXRldXIgbWFucXVhbnQgOiAlcyIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIyNworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMAogbXNnaWQgInNvcnQgb3V0cHV0IGFjY29yZGluZyB0byB0aGUgbnVtYmVyIG9mIGNvbW1pdHMgcGVyIGF1dGhvciIKIG1zZ3N0ciAidHJpZXIgbGEgc29ydGllIHN1ciBsZSBub21icmUgZGUgdmFsaWRhdGlvbnMgcGFyIGF1dGV1ciIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIyOQorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgogbXNnaWQgIlN1cHByZXNzIGNvbW1pdCBkZXNjcmlwdGlvbnMsIG9ubHkgcHJvdmlkZXMgY29tbWl0IGNvdW50IgotbXNnc3RyICJTdXBwcmltZXIgbGVzIGRlc2NyaXB0aW9ucyBkZSB2YWxpZGF0aW9uLCBmb3Vybml0IHNldWxlbWVudCBsZSBub21icmUgZGUgdmFsaWRhdGlvbnMiCittc2dzdHIgIiIKKyJTdXBwcmltZXIgbGVzIGRlc2NyaXB0aW9ucyBkZSB2YWxpZGF0aW9uLCBmb3Vybml0IHNldWxlbWVudCBsZSBub21icmUgZGUgIgorInZhbGlkYXRpb25zIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjMxCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjM0CiBtc2dpZCAiU2hvdyB0aGUgZW1haWwgYWRkcmVzcyBvZiBlYWNoIGF1dGhvciIKIG1zZ3N0ciAiQWZmaWNoZXIgbCdhZHJlc3NlIGUtbWFpbCBkZSBjaGFxdWUgYXV0ZXVyIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjMyCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjM1CiBtc2dpZCAid1ssaTFbLGkyXV0iCiBtc2dzdHIgIndbLGkxWyxpMl1dIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjMzCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjM2CiBtc2dpZCAiTGluZXdyYXAgb3V0cHV0IgogbXNnc3RyICJDb3VwZXIgbGVzIGxpZ25lcyIKIApAQCAtODMwOCw3ICs5MjQ4LDExIEBACiAiY3VycmVudF0gWy0tY29sb3JbPTx3aGVuPl0gfCAtLW5vLWNvbG9yXSBbLS1zcGFyc2VdIFstLW1vcmU9PG4+IHwgLS1saXN0IHwgLS0iCiAiaW5kZXBlbmRlbnQgfCAtLW1lcmdlLWJhc2VdIFstLW5vLW5hbWUgfCAtLXNoYTEtbmFtZV0gWy0tdG9waWNzXSBbKDxyZXY+IHwgIgogIjxnbG9iPikuLi5dIgotbXNnc3RyICJnaXQgc2hvdy1icmFuY2ggWy1hfC0tYWxsXSBbLXJ8LS1yZW1vdGVzXSBbLS10b3BvLW9yZGVyIHwgLS1kYXRlLW9yZGVyXSBbLS1jdXJyZW50XSBbLS1jb2xvcls9PHF1YW5kPl0gfCAtLW5vLWNvbG9yXSBbLS1zcGFyc2VdIFstLW1vcmU9PG4+IHwgLS1saXN0IHwgLS1pbmRlcGVuZGVudCB8IC0tbWVyZ2UtYmFzZV0gWy0tbm8tbmFtZSB8IC0tc2hhMS1uYW1lXSBbLS10b3BpY3NdIFsoPHLDqXZpc2lvbj4gfCA8Z2xvYj4pLi4uXSIKK21zZ3N0ciAiIgorImdpdCBzaG93LWJyYW5jaCBbLWF8LS1hbGxdIFstcnwtLXJlbW90ZXNdIFstLXRvcG8tb3JkZXIgfCAtLWRhdGUtb3JkZXJdIFstLSIKKyJjdXJyZW50XSBbLS1jb2xvcls9PHF1YW5kPl0gfCAtLW5vLWNvbG9yXSBbLS1zcGFyc2VdIFstLW1vcmU9PG4+IHwgLS1saXN0IHwgIgorIi0taW5kZXBlbmRlbnQgfCAtLW1lcmdlLWJhc2VdIFstLW5vLW5hbWUgfCAtLXNoYTEtbmFtZV0gWy0tdG9waWNzXSAiCisiWyg8csOpdmlzaW9uPiB8IDxnbG9iPikuLi5dIgogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6MTAKIG1zZ2lkICJnaXQgc2hvdy1icmFuY2ggKC1nfC0tcmVmbG9nKVs9PG4+Wyw8YmFzZT5dXSBbLS1saXN0XSBbPHJlZj5dIgpAQCAtODMzNiw3ICs5MjgwLDcgQEAKIAogIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1OQogbXNnaWQgInN1cHByZXNzIG5hbWluZyBzdHJpbmdzIgotbXNnc3RyICIiCittc2dzdHIgInN1cHByaW1lciBsZXMgY2hhw65uZXMgZGUgbm9tbWFnZSIKIAogIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2MQogbXNnaWQgImluY2x1ZGUgdGhlIGN1cnJlbnQgYnJhbmNoIgpAQCAtODM1Miw3MyArOTI5Niw4MiBAQAogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY3CiBtc2dpZCAic2hvdyByZWZzIHVucmVhY2hhYmxlIGZyb20gYW55IG90aGVyIHJlZiIKLW1zZ3N0ciAiYWZmaWNoZXIgbGVzIHLDqWbDqXJlbmNlcyBub24gYWNjZXNzaWJsZXMgZGVwdWlzIHRvdXRlIGF1dHJlIHLDqWbDqXJlbmNlIgorbXNnc3RyICJhZmZpY2hlciBsZXMgcsOpZsOpcmVuY2VzIGluYWNjZXNzaWJsZXMgZGVwdWlzIHRvdXRlIGF1dHJlIHLDqWbDqXJlbmNlIgogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY5CiBtc2dpZCAic2hvdyBjb21taXRzIGluIHRvcG9sb2dpY2FsIG9yZGVyIgogbXNnc3RyICJhZmZpY2hlciBsZXMgdmFsaWRhdGlvbnMgZGFucyBsJ29yZHJlIHRvcG9sb2dpcXVlIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjcxCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjcyCiBtc2dpZCAic2hvdyBvbmx5IGNvbW1pdHMgbm90IG9uIHRoZSBmaXJzdCBicmFuY2giCi1tc2dzdHIgImFmZmljaGVyIHNldWxlbWVudCBsZXMgdmFsaWRhdGlvbnMgcXVpIG5lIHNvbnQgcGFzIHN1ciBsYSBwcmVtacOocmUgYnJhbmNoZSIKK21zZ3N0ciAiIgorImFmZmljaGVyIHNldWxlbWVudCBsZXMgdmFsaWRhdGlvbnMgcXVpIG5lIHNvbnQgcGFzIHN1ciBsYSBwcmVtacOocmUgYnJhbmNoZSIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3MworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NAogbXNnaWQgInNob3cgbWVyZ2VzIHJlYWNoYWJsZSBmcm9tIG9ubHkgb25lIHRpcCIKIG1zZ3N0ciAiYWZmaWNoZXIgbGVzIGZ1c2lvbnMgYWNjZXNzaWJsZXMgZGVwdWlzIHVuZSBzZXVsZSBwb2ludGUiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzUKLW1zZ2lkICJzaG93IGNvbW1pdHMgd2hlcmUgbm8gcGFyZW50IGNvbWVzIGJlZm9yZSBpdHMgY2hpbGRyZW4iCi1tc2dzdHIgImFmZmljaGVyIGxlcyB2YWxpZGF0aW9ucyBvw7kgYXVjdW4gcGFyZW50IG5lIHZpZW50IGF2YW50IHNlcyBlbmZhbnRzIgorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NgorbXNnaWQgInRvcG9sb2dpY2FsbHkgc29ydCwgbWFpbnRhaW5pbmcgZGF0ZSBvcmRlciB3aGVyZSBwb3NzaWJsZSIKK21zZ3N0ciAidHJpIHRvcG9sb2dpcXVlLCBtYWludGVuYW50IGwnb3JkcmUgcGFyIGRhdGUgc2kgcG9zc2libGUiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzcKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzkKIG1zZ2lkICI8bj5bLDxiYXNlPl0iCiBtc2dzdHIgIjxuPlssPGJhc2U+XSIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3OAorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY4MAogbXNnaWQgInNob3cgPG4+IG1vc3QgcmVjZW50IHJlZi1sb2cgZW50cmllcyBzdGFydGluZyBhdCBiYXNlIgotbXNnc3RyICJhZmZpY2hlciBsZXMgPG4+IHBsdXMgcsOpY2VudGVzIGVudHLDqWVzIGRlIHJlZi1sb2cgZW4gY29tbWVuw6dhbnQgw6AgbGEgYmFzZSIKK21zZ3N0ciAiIgorImFmZmljaGVyIGxlcyA8bj4gcGx1cyByw6ljZW50cyDDqWzDqW1lbnRzIGRlIHJlZi1sb2cgZW4gY29tbWVuw6dhbnQgw6AgbGEgYmFzZSIKIAogIzogYnVpbHRpbi9zaG93LXJlZi5jOjEwCiBtc2dpZCAiIgogImdpdCBzaG93LXJlZiBbLXF8LS1xdWlldF0gWy0tdmVyaWZ5XSBbLS1oZWFkXSBbLWR8LS1kZXJlZmVyZW5jZV0gWy1zfC0tIgogImhhc2hbPTxuPl1dIFstLWFiYnJldls9PG4+XV0gWy0tdGFnc10gWy0taGVhZHNdIFstLV0gW3BhdHRlcm4qXSAiCi1tc2dzdHIgImdpdCBzaG93LXJlZiBbLXF8LS1xdWlldF0gWy0tdmVyaWZ5XSBbLS1oZWFkXSBbLWR8LS1kZXJlZmVyZW5jZV0gWy1zfC0taGFzaFs9PG4+XV0gWy0tYWJicmV2Wz08bj5dXSBbLS10YWdzXSBbLS1oZWFkc10gWy0tXSBbbW90aWYqXSAiCittc2dzdHIgIiIKKyJnaXQgc2hvdy1yZWYgWy1xfC0tcXVpZXRdIFstLXZlcmlmeV0gWy0taGVhZF0gWy1kfC0tZGVyZWZlcmVuY2VdIFstc3wtLSIKKyJoYXNoWz08bj5dXSBbLS1hYmJyZXZbPTxuPl1dIFstLXRhZ3NdIFstLWhlYWRzXSBbLS1dIFttb3RpZipdICIKIAogIzogYnVpbHRpbi9zaG93LXJlZi5jOjExCiBtc2dpZCAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9cGF0dGVybl0gPCByZWYtbGlzdCIKIG1zZ3N0ciAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9bW90aWZdIDwgbGlzdGUtcsOpZsOpcmVuY2VzIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY1CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTY4CiBtc2dpZCAib25seSBzaG93IHRhZ3MgKGNhbiBiZSBjb21iaW5lZCB3aXRoIGhlYWRzKSIKIG1zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlcyDDqXRpcXVldHRlcyAocGV1dCDDqnRyZSBjb21iaW7DqSBhdmVjIGRlcyB0w6p0ZXMpIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY2CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTY5CiBtc2dpZCAib25seSBzaG93IGhlYWRzIChjYW4gYmUgY29tYmluZWQgd2l0aCB0YWdzKSIKIG1zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlcyB0w6p0ZXMgKHBldXQgw6p0cmUgY29tYmluw6kgYXZlYyBkZXMgw6l0aXF1ZXR0ZXMpIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY3CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTcwCiBtc2dpZCAic3RyaWN0ZXIgcmVmZXJlbmNlIGNoZWNraW5nLCByZXF1aXJlcyBleGFjdCByZWYgcGF0aCIKLW1zZ3N0ciAidsOpcmlmaWNhdGlvbiBkZSByw6lmw6lyZW5jZSBwbHVzIHN0cmljdGUsIHJlcXVpZXJ0IHVuIGNoZW1pbiBkZSByw6lmw6lyZW5jZSBleGFjdCIKK21zZ3N0ciAiIgorInbDqXJpZmljYXRpb24gZGUgcsOpZsOpcmVuY2UgcGx1cyBzdHJpY3RlLCBuw6ljZXNzaXRlIHVuIGNoZW1pbiBkZSByw6lmw6lyZW5jZSAiCisiZXhhY3QiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzAgYnVpbHRpbi9zaG93LXJlZi5jOjE3MgotbXNnaWQgInNob3cgdGhlIEhFQUQgcmVmZXJlbmNlIgotbXNnc3RyICJhZmZpY2hlciBsYSByw6lmw6lyZW5jZSBIRUFEIgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MyBidWlsdGluL3Nob3ctcmVmLmM6MTc1Cittc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UsIGV2ZW4gaWYgaXQgd291bGQgYmUgZmlsdGVyZWQgb3V0IgorbXNnc3RyICJhZmZpY2hlciBsYSByw6lmw6lyZW5jZSBIRUFELCBtw6ptZSBzaSBlbGxlIHNlcmFpdCBmaWx0csOpZSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NwogbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW50byBvYmplY3QgSURzIgogbXNnc3RyICJkw6lyw6lmw6lyZW5jZXIgbGVzIMOpdGlxdWV0dGVzIGVuIElEcyBkJ29iamV0IgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTc2CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTc5CiBtc2dpZCAib25seSBzaG93IFNIQTEgaGFzaCB1c2luZyA8bj4gZGlnaXRzIgogbXNnc3RyICJhZmZpY2hlciBzZXVsZW1lbnQgbGUgaGFjaGFnZSBTSEExIGVuIHV0aWxpc2FudCA8bj4gY2hpZmZyZXMiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODAKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODMKIG1zZ2lkICJkbyBub3QgcHJpbnQgcmVzdWx0cyB0byBzdGRvdXQgKHVzZWZ1bCB3aXRoIC0tdmVyaWZ5KSIKLW1zZ3N0ciAibmUgcGFzIGFmZmljaGVyIGxlcyByw6lzdWx0YXRzIHN1ciBsYSBzb3J0aWUgc3RhbmRhcmQgKHByYXRpcXVlIGF2ZWMgLS12ZXJpZnkpIgorbXNnc3RyICIiCisibmUgcGFzIGFmZmljaGVyIGxlcyByw6lzdWx0YXRzIHN1ciBsYSBzb3J0aWUgc3RhbmRhcmQgKHByYXRpcXVlIGF2ZWMgLS12ZXJpZnkpIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTgyCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTg1CiBtc2dpZCAic2hvdyByZWZzIGZyb20gc3RkaW4gdGhhdCBhcmVuJ3QgaW4gbG9jYWwgcmVwb3NpdG9yeSIKLW1zZ3N0ciAiYWZmaWNoZXIgbGVzIHLDqWbDqXJlbmNlcyBkZSBsJ2VudHLDqWUgc3RhbmRhcmQgcXVpIG5lIHNvbnQgcGFzIGRhbnMgbGUgZMOpcMO0dCBsb2NhbCIKK21zZ3N0ciAiIgorImFmZmljaGVyIGxlcyByw6lmw6lyZW5jZXMgZGUgbCdlbnRyw6llIHN0YW5kYXJkIHF1aSBuZSBzb250IHBhcyBkYW5zIGxlIGTDqXDDtHQgIgorImxvY2FsIgogCiAjOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjcKIG1zZ2lkICJnaXQgc3ltYm9saWMtcmVmIFtvcHRpb25zXSBuYW1lIFtyZWZdIgpAQCAtODQzMCw3ICs5MzgzLDggQEAKIAogIzogYnVpbHRpbi9zeW1ib2xpYy1yZWYuYzo0MAogbXNnaWQgInN1cHByZXNzIGVycm9yIG1lc3NhZ2UgZm9yIG5vbi1zeW1ib2xpYyAoZGV0YWNoZWQpIHJlZnMiCi1tc2dzdHIgInN1cHByaW1lciBsZSBtZXNzYWdlIGQnZXJyZXVyIHBvdXIgdW5lIHLDqWbDqXJlbmNlIG5vbiBzeW1ib2xpcXVlIChkw6l0YWNow6llKSIKK21zZ3N0ciAiIgorInN1cHByaW1lciBsZSBtZXNzYWdlIGQnZXJyZXVyIHBvdXIgdW5lIHLDqWbDqXJlbmNlIG5vbiBzeW1ib2xpcXVlIChkw6l0YWNow6llKSIKIAogIzogYnVpbHRpbi9zeW1ib2xpYy1yZWYuYzo0MQogbXNnaWQgImRlbGV0ZSBzeW1ib2xpYyByZWYiCkBAIC04NDQwLDE4ICs5Mzk0LDIwIEBACiBtc2dpZCAic2hvcnRlbiByZWYgb3V0cHV0IgogbXNnc3RyICJyYWNjb3VyY2lyIGwnYWZmaWNoYWdlIGRlIGxhIHLDqWbDqXJlbmNlIgogCi0jOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjE4CisjOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1NAogbXNnaWQgInJlYXNvbiIKIG1zZ3N0ciAicmFpc29uIgogCi0jOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjE4CisjOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1NAogbXNnaWQgInJlYXNvbiBvZiB0aGUgdXBkYXRlIgogbXNnc3RyICJyYWlzb24gZGUgbGEgbWlzZSDDoCBqb3VyIgogCiAjOiBidWlsdGluL3RhZy5jOjIyCiBtc2dpZCAiIgogImdpdCB0YWcgWy1hfC1zfC11IDxrZXktaWQ+XSBbLWZdIFstbSA8bXNnPnwtRiA8ZmlsZT5dIDx0YWduYW1lPiBbPGhlYWQ+XSIKLW1zZ3N0ciAiZ2l0IHRhZyBbLWF8LXN8LXUgPGlkLWNsw6k+XSBbLWZdIFstbSA8bXNnPnwtRiA8ZmlsZT5dIDxub23DqXRpcXVldHRlPiBbPGhlYWQ+XSIKK21zZ3N0ciAiIgorImdpdCB0YWcgWy1hfC1zfC11IDxpZC1jbMOpPl0gWy1mXSBbLW0gPG1lc3NhZ2U+fC1GIDxmaWxlPl0gPG5vbcOpdGlxdWV0dGU+ICIKKyJbPGhlYWQ+XSIKIAogIzogYnVpbHRpbi90YWcuYzoyMwogbXNnaWQgImdpdCB0YWcgLWQgPHRhZ25hbWU+Li4uIgpAQCAtODUxNSw3ICs5NDcxLDggQEAKIG1zZ3N0ciAiIgogIlxuIgogIsOJY3JpcmUgdW4gbWVzc2FnZSBwb3VyIGwnw6l0aXF1ZXR0ZVxuIgotIkxlcyBsaWduZXMgY29tbWVuw6dhbnQgcGFyICclYycgc2Vyb250IGdhcmTDqWVzIDsgdm91cyBwb3V2ZXogbGVzIHJldGlyZXIgdm91cy1tw6ptZSBzaSB2b3VzIGxlIHNvdWhhaXRlei5cbiIKKyJMZXMgbGlnbmVzIGNvbW1lbsOnYW50IHBhciAnJWMnIHNlcm9udCBnYXJkw6llcyA7IHZvdXMgcG91dmV6IGxlcyByZXRpcmVyIHZvdXMtIgorIm3Dqm1lIHNpIHZvdXMgbGUgc291aGFpdGV6LlxuIgogCiAjOiBidWlsdGluL3RhZy5jOjI5MgogbXNnaWQgInVuYWJsZSB0byBzaWduIHRoZSB0YWciCkBAIC04NTQ0LDcgKzk1MDEsNyBAQAogCiAjOiBidWlsdGluL3RhZy5jOjQyMwogbXNnaWQgInN3aXRjaCAncG9pbnRzLWF0JyByZXF1aXJlcyBhbiBvYmplY3QiCi1tc2dzdHIgImxlIGNvbW11dGF0ZXVyICdwb2ludHMtYXQnIHJlcXVpZXJ0IHVuIG9iamV0IgorbXNnc3RyICJsZSBjb21tdXRhdGV1ciAncG9pbnRzLWF0JyBhIGJlc29pbiBkJ3VuIG9iamV0IgogCiAjOiBidWlsdGluL3RhZy5jOjQyNQogIywgYy1mb3JtYXQKQEAgLTg2MDcsMTgyICs5NTY0LDIwMCBAQAogbXNnaWQgInByaW50IG9ubHkgdGFncyBvZiB0aGUgb2JqZWN0IgogbXNnc3RyICJhZmZpY2hlciBzZXVsZW1lbnQgbGVzIMOpdGlxdWV0dGVzIGRlIGwnb2JqZXQiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTA0CisjOiBidWlsdGluL3RhZy5jOjUwMQogbXNnaWQgIi0tY29sdW1uIGFuZCAtbiBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICItLWNvbHVtbiBldCAtbiBzb250IGluY29tcGF0aWJsZXMiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTIxCisjOiBidWlsdGluL3RhZy5jOjUxOAogbXNnaWQgIi1uIG9wdGlvbiBpcyBvbmx5IGFsbG93ZWQgd2l0aCAtbC4iCiBtc2dzdHIgImwnb3B0aW9uIC1uIGVzdCBhdXRvcmlzw6llIHNldWxlbWVudCBhdmVjIC1sLiIKIAotIzogYnVpbHRpbi90YWcuYzo1MjMKKyM6IGJ1aWx0aW4vdGFnLmM6NTIwCiBtc2dpZCAiLS1jb250YWlucyBvcHRpb24gaXMgb25seSBhbGxvd2VkIHdpdGggLWwuIgogbXNnc3RyICJsJ29wdGlvbiAtLWNvbnRhaW5zIGVzdCBhdXRvcmlzw6llIHNldWxlbWVudCBhdmVjIC1sLiIKIAotIzogYnVpbHRpbi90YWcuYzo1MjUKKyM6IGJ1aWx0aW4vdGFnLmM6NTIyCiBtc2dpZCAiLS1wb2ludHMtYXQgb3B0aW9uIGlzIG9ubHkgYWxsb3dlZCB3aXRoIC1sLiIKIG1zZ3N0ciAibCdvcHRpb24gLS1wb2ludHMtYXQgZXN0IGF1dG9yaXPDqWUgc2V1bGVtZW50IGF2ZWMgLWwuIgogCi0jOiBidWlsdGluL3RhZy5jOjUzMworIzogYnVpbHRpbi90YWcuYzo1MzAKIG1zZ2lkICJvbmx5IG9uZSAtRiBvciAtbSBvcHRpb24gaXMgYWxsb3dlZC4iCiBtc2dzdHIgInVuZSBzZXVsZSBvcHRpb24gLUYgb3UgLW0gZXN0IGF1dG9yaXPDqWUuIgogCi0jOiBidWlsdGluL3RhZy5jOjU1MworIzogYnVpbHRpbi90YWcuYzo1NTAKIG1zZ2lkICJ0b28gbWFueSBwYXJhbXMiCiBtc2dzdHIgInRyb3AgZGUgcGFyYW3DqHRyZXMiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTU5CisjOiBidWlsdGluL3RhZy5jOjU1NgogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGlzIG5vdCBhIHZhbGlkIHRhZyBuYW1lLiIKIG1zZ3N0ciAiJyVzJyBuJ2VzdCBwYXMgdW4gbm9tIGQnw6l0aXF1ZXR0ZSB2YWxpZGUuIgogCi0jOiBidWlsdGluL3RhZy5jOjU2NAorIzogYnVpbHRpbi90YWcuYzo1NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnICclcycgYWxyZWFkeSBleGlzdHMiCiBtc2dzdHIgImwnw6l0aXF1ZXR0ZSAnJXMnIGV4aXN0ZSBkw6lqw6AiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTgyCisjOiBidWlsdGluL3RhZy5jOjU3OQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2Fubm90IGxvY2sgdGhlIHJlZiIKIG1zZ3N0ciAiJXMgOiBpbXBvc3NpYmxlIGRlIHZlcnJvdWlsbGVyIGxhIHLDqWbDqXJlbmNlIgogCi0jOiBidWlsdGluL3RhZy5jOjU4NAorIzogYnVpbHRpbi90YWcuYzo1ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbm5vdCB1cGRhdGUgdGhlIHJlZiIKIG1zZ3N0ciAiJXMgOiBpbXBvc3NpYmxlIGRlIG1ldHRyZSDDoCBqb3VyIGxhIHLDqWbDqXJlbmNlIgogCi0jOiBidWlsdGluL3RhZy5jOjU4NgorIzogYnVpbHRpbi90YWcuYzo1ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBkYXRlZCB0YWcgJyVzJyAod2FzICVzKVxuIgogbXNnc3RyICLDiXRpcXVldHRlICclcycgbWlzZSDDoCBqb3VyIChlbGxlIMOpdGFpdCAlcylcbiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo0MDEKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NDAyCiBtc2dpZCAiZ2l0IHVwZGF0ZS1pbmRleCBbb3B0aW9uc10gWy0tXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiZ2l0IHVwZGF0ZS1pbmRleCBbb3B0aW9uc10gWy0tXSBbPGZpY2hpZXI+Li4uXSIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MTgKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzIwCiBtc2dpZCAiY29udGludWUgcmVmcmVzaCBldmVuIHdoZW4gaW5kZXggbmVlZHMgdXBkYXRlIgogbXNnc3RyICJjb250aW51ZXIgZGUgcmFmcmHDrmNoaXIgbcOqbWUgc2kgbCdpbmRleCBhIGJlc29pbiBkJ3VuZSBtaXNlIMOgIGpvdXIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzIxCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyMwogbXNnaWQgInJlZnJlc2g6IGlnbm9yZSBzdWJtb2R1bGVzIgogbXNnc3RyICJyYWZyYcOuY2hpciA6IGlnbm9yZXIgbGVzIHNvdXMtbW9kdWxlcyIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjQKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI2CiBtc2dpZCAiZG8gbm90IGlnbm9yZSBuZXcgZmlsZXMiCiBtc2dzdHIgIm5lIHBhcyBpZ25vcmVyIGxlcyBub3V2ZWF1eCBmaWNoaWVycyIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjYKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI4CiBtc2dpZCAibGV0IGZpbGVzIHJlcGxhY2UgZGlyZWN0b3JpZXMgYW5kIHZpY2UtdmVyc2EiCiBtc2dzdHIgImxhaXNzZXIgbGVzIGZpY2hpZXJzIHJlbXBsYWNlciBkZXMgcsOpcGVydG9pcmVzIGV0IHZpY2UtdmVyc2EiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI4CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczMAogbXNnaWQgIm5vdGljZSBmaWxlcyBtaXNzaW5nIGZyb20gd29ya3RyZWUiCiBtc2dzdHIgImF2aXNlciBkZXMgZmljaGllcnMgbWFucXVhbnRzIGRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzAKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzMyCiBtc2dpZCAicmVmcmVzaCBldmVuIGlmIGluZGV4IGNvbnRhaW5zIHVubWVyZ2VkIGVudHJpZXMiCi1tc2dzdHIgInJhZnJhw65jaGlyIG3Dqm1lIHNpIGwnaW5kZXggY29udGllbnQgZGVzIGVudHLDqWVzIG5vbiBmdXNpb25uw6llcyIKK21zZ3N0ciAicmFmcmHDrmNoaXIgbcOqbWUgc2kgbCdpbmRleCBjb250aWVudCBkZXMgw6lsw6ltZW50cyBub24gZnVzaW9ubsOpcyIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzMKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzM1CiBtc2dpZCAicmVmcmVzaCBzdGF0IGluZm9ybWF0aW9uIgogbXNnc3RyICJyYWZyYcOuY2hpciBsJ2luZm9ybWF0aW9uIGRlIHN0YXQiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzM3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczOQogbXNnaWQgImxpa2UgLS1yZWZyZXNoLCBidXQgaWdub3JlIGFzc3VtZS11bmNoYW5nZWQgc2V0dGluZyIKIG1zZ3N0ciAiY29tbWUgLS1yZWZyZXNoLCBtYWlzIGVuIGlnbm9yYW50IGwnb3B0aW9uIGFzc3VtZS11bmNoYW5nZWQiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQxCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0MwogbXNnaWQgIjxtb2RlPiA8b2JqZWN0PiA8cGF0aD4iCiBtc2dzdHIgIjxtb2RlPiA8b2JqZXQ+IDxjaGVtaW4+IgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0MgorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDQKIG1zZ2lkICJhZGQgdGhlIHNwZWNpZmllZCBlbnRyeSB0byB0aGUgaW5kZXgiCi1tc2dzdHIgImFqb3V0ZXIgbCdlbnRyw6llIHNww6ljaWZpw6llIGRhbnMgbCdpbmRleCIKK21zZ3N0ciAiYWpvdXRlciBsJ8OpbMOpbWVudCBzcMOpY2lmacOpIGRhbnMgbCdpbmRleCIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDYKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQ4CiBtc2dpZCAiKCsvLSl4IgogbXNnc3RyICIoKy8tKXgiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQ3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0OQogbXNnaWQgIm92ZXJyaWRlIHRoZSBleGVjdXRhYmxlIGJpdCBvZiB0aGUgbGlzdGVkIGZpbGVzIgogbXNnc3RyICJvdXRyZXBhc3NlciBsZSBiaXQgZXjDqWN1dGFibGUgcG91ciBsZXMgZmljaGllcnMgbGlzdMOpcyIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTEKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzUzCiBtc2dpZCAibWFyayBmaWxlcyBhcyBcIm5vdCBjaGFuZ2luZ1wiIgogbXNnc3RyICJtYXJxdWVyIGxlcyBmaWNoaWVycyBjb21tZSBcIm5vbiBjaGFuZ2VhbnRzXCIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzU0CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1NgogbXNnaWQgImNsZWFyIGFzc3VtZWQtdW5jaGFuZ2VkIGJpdCIKLW1zZ3N0ciAiIgorbXNnc3RyICJtZXR0cmUgw6AgesOpcm8gbGUgYml0IHN1cHBvc8OpLW5vbi1tb2RpZmnDqSIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTcKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzU5CiBtc2dpZCAibWFyayBmaWxlcyBhcyBcImluZGV4LW9ubHlcIiIKIG1zZ3N0ciAibWFycXVlciBsZXMgZmljaGllcnMgY29tbWUgXCJpbmRleCBzZXVsZW1lbnRcIiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjAKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzYyCiBtc2dpZCAiY2xlYXIgc2tpcC13b3JrdHJlZSBiaXQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjMKLW1zZ2lkICJhZGQgdG8gaW5kZXggb25seTsgZG8gbm90IGFkZCBjb250ZW50IHRvIG9iamVjdCBkYXRhYmFzZSIKLW1zZ3N0ciAiYWpvdXRlciBzZXVsZW1lbnQgw6AgbCdpbmRleCA7IG5lIHBhcyBham91dGVyIGxlIGNvbnRlbnUgZGFucyBsYSBiYXNlIGRlIGRvbm7DqWVzIGRlcyBvYmpldHMiCittc2dzdHIgIm1ldHRyZSDDoCB6w6lybyBsZSBiaXQgc2F1dGVyLWxhLWNvcGllLWRlIHRyYXZhaWwiCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY1Ci1tc2dpZCAicmVtb3ZlIG5hbWVkIHBhdGhzIGV2ZW4gaWYgcHJlc2VudCBpbiB3b3JrdHJlZSIKLW1zZ3N0ciAic3VwcHJpbWVyIGxlcyBjaGVtaW5zIG5vbW3DqXMgbcOqbWUgcydpbHMgc29udCBwcsOpc2VudHMgZGFucyBsYSBjb3BpZSBkZSB0cmF2YWlsIgorbXNnaWQgImFkZCB0byBpbmRleCBvbmx5OyBkbyBub3QgYWRkIGNvbnRlbnQgdG8gb2JqZWN0IGRhdGFiYXNlIgorbXNnc3RyICIiCisiYWpvdXRlciBzZXVsZW1lbnQgw6AgbCdpbmRleCA7IG5lIHBhcyBham91dGVyIGxlIGNvbnRlbnUgZGFucyBsYSBiYXNlIGRlICIKKyJkb25uw6llcyBkZXMgb2JqZXRzIgogCiAjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2NworbXNnaWQgInJlbW92ZSBuYW1lZCBwYXRocyBldmVuIGlmIHByZXNlbnQgaW4gd29ya3RyZWUiCittc2dzdHIgIiIKKyJzdXBwcmltZXIgbGVzIGNoZW1pbnMgbm9tbcOpcyBtw6ptZSBzJ2lscyBzb250IHByw6lzZW50cyBkYW5zIGxhIGNvcGllIGRlICIKKyJ0cmF2YWlsIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2OQogbXNnaWQgIndpdGggLS1zdGRpbjogaW5wdXQgbGluZXMgYXJlIHRlcm1pbmF0ZWQgYnkgbnVsbCBieXRlcyIKIG1zZ3N0ciAiYXZlYyAtLXN0ZGluIDogbGVzIGxpZ25lcyBlbiBlbnRyw6llIHNvbnQgdGVybWluw6llcyBwYXIgZGVzIG9jdGV0cyBudWxzIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2OQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzEKIG1zZ2lkICJyZWFkIGxpc3Qgb2YgcGF0aHMgdG8gYmUgdXBkYXRlZCBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJsaXJlIGxhIGxpc3RlIGRlcyBjaGVtaW5zIMOgIG1ldHRyZSDDoCBqb3VyIGRlcHVpcyBsJ2VudHLDqWUgc3RhbmRhcmQiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzczCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc3NQogbXNnaWQgImFkZCBlbnRyaWVzIGZyb20gc3RhbmRhcmQgaW5wdXQgdG8gdGhlIGluZGV4IgotbXNnc3RyICJham91dGVyIGxlcyBlbnRyw6llcyBkZXB1aXMgbCdlbnRyw6llIHN0YW5kYXJkIMOgIGwnaW5kZXgiCittc2dzdHIgImFqb3V0ZXIgbGVzIMOpbMOpbWVudHMgZGVwdWlzIGwnZW50csOpZSBzdGFuZGFyZCDDoCBsJ2luZGV4IgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc3NworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzkKIG1zZ2lkICJyZXBvcHVsYXRlIHN0YWdlcyAjMiBhbmQgIzMgZm9yIHRoZSBsaXN0ZWQgcGF0aHMiCiBtc2dzdHIgInJlcGV1cGxlciBsZXMgw6l0YXBlcyBuwrAyIGV0IG7CsDMgcG91ciBsZXMgY2hlbWlucyBsaXN0w6lzIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4MQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODMKIG1zZ2lkICJvbmx5IHVwZGF0ZSBlbnRyaWVzIHRoYXQgZGlmZmVyIGZyb20gSEVBRCIKLW1zZ3N0ciAibWV0dHJlIMOgIGpvdXIgc2V1bGVtZW50IGxlcyBlbnRyw6llcyBxdWkgZGlmZsOocmVudCBkZSBIRUFEIgorbXNnc3RyICJtZXR0cmUgw6Agam91ciBzZXVsZW1lbnQgbGVzIMOpbMOpbWVudHMgcXVpIGRpZmbDqHJlbnQgZGUgSEVBRCIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODUKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzg3CiBtc2dpZCAiaWdub3JlIGZpbGVzIG1pc3NpbmcgZnJvbSB3b3JrdHJlZSIKIG1zZ3N0ciAiaWdub3JlciBsZXMgZmljaGllcnMgbWFucXVhbnRzIGRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODgKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzkwCiBtc2dpZCAicmVwb3J0IGFjdGlvbnMgdG8gc3RhbmRhcmQgb3V0cHV0IgogbXNnc3RyICJhZmZpY2hlciBsZXMgYWN0aW9ucyBzdXIgbGEgc29ydGllIHN0YW5kYXJkIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5MAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTIKIG1zZ2lkICIoZm9yIHBvcmNlbGFpbnMpIGZvcmdldCBzYXZlZCB1bnJlc29sdmVkIGNvbmZsaWN0cyIKIG1zZ3N0ciAiKHBvdXIgcG9yY2VsYWluZXMpIG91YmxpZXIgbGVzIGNvbmZsaXRzIHNhdXbDqXMgZXQgbm9uIHLDqXNvbHVzIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5NAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTYKIG1zZ2lkICJ3cml0ZSBpbmRleCBpbiB0aGlzIGZvcm1hdCIKIG1zZ3N0ciAiw6ljcmlyZSBsJ2luZGV4IGRhbnMgY2UgZm9ybWF0IgogCi0jOiBidWlsdGluL3VwZGF0ZS1yZWYuYzo3CisjOiBidWlsdGluL3VwZGF0ZS1yZWYuYzo5CiBtc2dpZCAiZ2l0IHVwZGF0ZS1yZWYgW29wdGlvbnNdIC1kIDxyZWZuYW1lPiBbPG9sZHZhbD5dIgogbXNnc3RyICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gLWQgPG5vbXLDqWbDqXJlbmNlPiBbPGFuY2llbm5ldmFsZXVyPl0iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjgKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjEwCiBtc2dpZCAiZ2l0IHVwZGF0ZS1yZWYgW29wdGlvbnNdICAgIDxyZWZuYW1lPiA8bmV3dmFsPiBbPG9sZHZhbD5dIgotbXNnc3RyICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gICAgPG5vbXLDqWbDqXJlbmNlPiA8bm91dmVsbGV2YWxldXI+IFs8YW5jaWVubmV2YWxldXI+XSIKK21zZ3N0ciAiIgorImdpdCB1cGRhdGUtcmVmIFtvcHRpb25zXSAgICA8bm9tcsOpZsOpcmVuY2U+IDxub3V2ZWxsZXZhbGV1cj4gIgorIls8YW5jaWVubmV2YWxldXI+XSIKIAotIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MTkKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjExCittc2dpZCAiZ2l0IHVwZGF0ZS1yZWYgW29wdGlvbnNdIC0tc3RkaW4gWy16XSIKK21zZ3N0ciAiZ2l0IHVwZGF0ZS1yZWYgW29wdGlvbnNdIC0tc3RkaW4gWy16XSIKKworIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU1CiBtc2dpZCAiZGVsZXRlIHRoZSByZWZlcmVuY2UiCiBtc2dzdHIgInN1cHByaW1lciBsYSByw6lmw6lyZW5jZSIKIAotIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjEKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1NwogbXNnaWQgInVwZGF0ZSA8cmVmbmFtZT4gbm90IHRoZSBvbmUgaXQgcG9pbnRzIHRvIgotbXNnc3RyICIiCittc2dzdHIgIm1ldHRyZSDDoCBqb3VyIDxub21yw6lmw6lyZW5jZT4gZXQgbm9uIGxhIHLDqWbDqXJlbmNlIHBvaW50w6llIHBhciBsdWkiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1OAorbXNnaWQgInN0ZGluIGhhcyBOVUwtdGVybWluYXRlZCBhcmd1bWVudHMiCittc2dzdHIgImwnZW50csOpZSBzdGFuZGFyZCBhIGRlcyBhcmd1bWVudHMgcXVpIHNlIHRlcm1pbmVudCBwYXIgTlVMIgorCisjOiBidWlsdGluL3VwZGF0ZS1yZWYuYzoyNTkKK21zZ2lkICJyZWFkIHVwZGF0ZXMgZnJvbSBzdGRpbiIKK21zZ3N0ciAibGlyZSBsZXMgbWlzZXMgw6Agam91ciBkZXB1aXMgbCdlbnRyw6llIHN0YW5kYXJkIgogCiAjOiBidWlsdGluL3VwZGF0ZS1zZXJ2ZXItaW5mby5jOjYKIG1zZ2lkICJnaXQgdXBkYXRlLXNlcnZlci1pbmZvIFstLWZvcmNlXSIKQEAgLTg4MjgsNyArOTgwMyw3IEBACiBtc2dpZCAib25seSB1c2VmdWwgZm9yIGRlYnVnZ2luZyIKIG1zZ3N0ciAic2V1bGVtZW50IHV0aWxlIHBvdXIgbGUgZMOpYm9nYWdlIgogCi0jOiBnaXQuYzoxNgorIzogZ2l0LmM6MTcKIG1zZ2lkICIiCiAiJ2dpdCBoZWxwIC1hJyBhbmQgJ2dpdCBoZWxwIC1nJyBsaXN0cyBhdmFpbGFibGUgc3ViY29tbWFuZHMgYW5kIHNvbWVcbiIKICJjb25jZXB0IGd1aWRlcy4gU2VlICdnaXQgaGVscCA8Y29tbWFuZD4nIG9yICdnaXQgaGVscCA8Y29uY2VwdD4nXG4iCkBAIC04ODM4LDI5ICs5ODEzLDMzIEBACiAicXVlbHF1ZXMgY29uY2VwdHMuIFZvaXIgJ2dpdCBoZWxwIDxjb21tYW5kPicgb3UgJ2dpdCBoZWxwIDxjb25jZXB0PidcbiIKICJwb3VyIGVuIGxpcmUgcGx1cyDDoCBwcm9wb3MgZCd1bmUgY29tbWFuZGUgc3DDqWNpZmlxdWUgb3UgZCd1biBjb25jZXB0LiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjE1NgorIzogcGFyc2Utb3B0aW9ucy5oOjE0NgorbXNnaWQgImV4cGlyeSBkYXRlIgorbXNnc3RyICJkYXRlIGQnZXhwaXJhdGlvbiIKKworIzogcGFyc2Utb3B0aW9ucy5oOjE2MQogbXNnaWQgIm5vLW9wIChiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSIKIG1zZ3N0ciAic2FucyBhY3Rpb24gKHLDqXRyb2NvbXBhdGliaWxpdMOpKSIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzMgorIzogcGFyc2Utb3B0aW9ucy5oOjIzOAogbXNnaWQgImJlIG1vcmUgdmVyYm9zZSIKIG1zZ3N0ciAiw6p0cmUgcGx1cyB2ZXJiZXV4IgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjM0CisjOiBwYXJzZS1vcHRpb25zLmg6MjQwCiBtc2dpZCAiYmUgbW9yZSBxdWlldCIKIG1zZ3N0ciAiw6p0cmUgcGx1cyBzaWxlbmNpZXV4IgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjQwCisjOiBwYXJzZS1vcHRpb25zLmg6MjQ2CiBtc2dpZCAidXNlIDxuPiBkaWdpdHMgdG8gZGlzcGxheSBTSEEtMXMiCiBtc2dzdHIgInV0aWxpc2VyIDxuPiBjaGlmZnJlcyBwb3VyIGFmZmljaGVyIGxlcyBTSEEtMXMiCiAKICM6IGNvbW1vbi1jbWRzLmg6OAogbXNnaWQgIkFkZCBmaWxlIGNvbnRlbnRzIHRvIHRoZSBpbmRleCIKLW1zZ3N0ciAiQWpvdXRlciBsZSBjb250ZW51IGR1IGZpY2hpZXIgZGFucyBsJ2luZGV4IgorbXNnc3RyICJBam91dGVyIGxlIGNvbnRlbnUgZGUgZmljaGllcnMgZGFucyBsJ2luZGV4IgogCiAjOiBjb21tb24tY21kcy5oOjkKIG1zZ2lkICJGaW5kIGJ5IGJpbmFyeSBzZWFyY2ggdGhlIGNoYW5nZSB0aGF0IGludHJvZHVjZWQgYSBidWciCi1tc2dzdHIgIlJlY2hlcmNoZXIgZGUgbWFuacOocmUgYmluYWlyZSBsZSBjaGFuZ2VtZW50IHF1aSBhIGludHJvZHVpdCB1biBib2d1ZSIKK21zZ3N0ciAiVHJvdXZlciBwYXIgcmVjaGVyY2hlIGJpbmFpcmUgbGEgbW9kaWZpY2F0aW9uIHF1aSBhIGludHJvZHVpdCB1biBib2d1ZSIKIAogIzogY29tbW9uLWNtZHMuaDoxMAogbXNnaWQgIkxpc3QsIGNyZWF0ZSwgb3IgZGVsZXRlIGJyYW5jaGVzIgpAQCAtODg3NiwxMSArOTg1NSwxMyBAQAogCiAjOiBjb21tb24tY21kcy5oOjEzCiBtc2dpZCAiUmVjb3JkIGNoYW5nZXMgdG8gdGhlIHJlcG9zaXRvcnkiCi1tc2dzdHIgIkVucmVnaXN0cmVyIGxlcyBjaGFuZ2VtZW50cyBkYW5zIGxlIGTDqXDDtHQiCittc2dzdHIgIkVucmVnaXN0cmVyIGxlcyBtb2RpZmljYXRpb25zIGRhbnMgbGUgZMOpcMO0dCIKIAogIzogY29tbW9uLWNtZHMuaDoxNAogbXNnaWQgIlNob3cgY2hhbmdlcyBiZXR3ZWVuIGNvbW1pdHMsIGNvbW1pdCBhbmQgd29ya2luZyB0cmVlLCBldGMiCi1tc2dzdHIgIkFmZmljaGVyIGxlcyBjaGFuZ2VtZW50cyBlbnRyZSBsZXMgdmFsaWRhdGlvbnMsIGVudHJlIHZhbGlkYXRpb24gZXQgY29waWUgZGUgdHJhdmFpbCwgZXRjIgorbXNnc3RyICIiCisiQWZmaWNoZXIgbGVzIGNoYW5nZW1lbnRzIGVudHJlIGxlcyB2YWxpZGF0aW9ucywgZW50cmUgdmFsaWRhdGlvbiBldCBjb3BpZSBkZSAiCisidHJhdmFpbCwgZXRjIgogCiAjOiBjb21tb24tY21kcy5oOjE1CiBtc2dpZCAiRG93bmxvYWQgb2JqZWN0cyBhbmQgcmVmcyBmcm9tIGFub3RoZXIgcmVwb3NpdG9yeSIKQEAgLTg5MDAsMTUgKzk4ODEsMTUgQEAKIAogIzogY29tbW9uLWNtZHMuaDoxOQogbXNnaWQgIkpvaW4gdHdvIG9yIG1vcmUgZGV2ZWxvcG1lbnQgaGlzdG9yaWVzIHRvZ2V0aGVyIgotbXNnc3RyICJKb2luZHJlIGRldXggb3UgcGx1c2lldXJzIGhpc3RvcmlxdWVzIGRlIGTDqXZlbG9wcGVtZW50IGVuc2VtYmxlIgorbXNnc3RyICJGdXNpb25uZXIgZGV1eCBvdSBwbHVzaWV1cnMgaGlzdG9yaXF1ZXMgZGUgZMOpdmVsb3BwZW1lbnQgZW5zZW1ibGUiCiAKICM6IGNvbW1vbi1jbWRzLmg6MjAKIG1zZ2lkICJNb3ZlIG9yIHJlbmFtZSBhIGZpbGUsIGEgZGlyZWN0b3J5LCBvciBhIHN5bWxpbmsiCiBtc2dzdHIgIkTDqXBsYWNlciBvdSByZW5vbW1lciB1biBmaWNoaWVyLCB1biByw6lwZXJ0b2lyZSwgb3UgdW4gbGllbiBzeW1ib2xpcXVlIgogCiAjOiBjb21tb24tY21kcy5oOjIxCi1tc2dpZCAiRmV0Y2ggZnJvbSBhbmQgbWVyZ2Ugd2l0aCBhbm90aGVyIHJlcG9zaXRvcnkgb3IgYSBsb2NhbCBicmFuY2giCi1tc2dzdHIgIlJhcGF0cmllciBldCBmdXNpb25uZXIgYXZlYyB1biBhdXRyZSBkw6lww7R0IG91IHVuZSBicmFuY2hlIGxvY2FsZSIKK21zZ2lkICJGZXRjaCBmcm9tIGFuZCBpbnRlZ3JhdGUgd2l0aCBhbm90aGVyIHJlcG9zaXRvcnkgb3IgYSBsb2NhbCBicmFuY2giCittc2dzdHIgIlJhcGF0cmllciBldCBpbnTDqWdyZXIgdW4gYXV0cmUgZMOpcMO0dCBvdSB1bmUgYnJhbmNoZSBsb2NhbGUiCiAKICM6IGNvbW1vbi1jbWRzLmg6MjIKIG1zZ2lkICJVcGRhdGUgcmVtb3RlIHJlZnMgYWxvbmcgd2l0aCBhc3NvY2lhdGVkIG9iamVjdHMiCkBAIC04OTE2LDcgKzk4OTcsOCBAQAogCiAjOiBjb21tb24tY21kcy5oOjIzCiBtc2dpZCAiRm9yd2FyZC1wb3J0IGxvY2FsIGNvbW1pdHMgdG8gdGhlIHVwZGF0ZWQgdXBzdHJlYW0gaGVhZCIKLW1zZ3N0ciAiUmVwb3J0ZXIgZW4gYXZhbnQgbGVzIHZhbGlkYXRpb25zIGxvY2FsZXMgZGFucyBsYSB0w6p0ZSBlbiBhbW9udCBtaXNlIMOgIGpvdXIiCittc2dzdHIgIiIKKyJSZXBvcnRlciBsZXMgdmFsaWRhdGlvbnMgbG9jYWxlcyBzdXIgbGUgc29tbWV0IG1pcyDDoCBqb3VyIGQndW5lIGJyYW5jaGUgYW1vbnQiCiAKICM6IGNvbW1vbi1jbWRzLmg6MjQKIG1zZ2lkICJSZXNldCBjdXJyZW50IEhFQUQgdG8gdGhlIHNwZWNpZmllZCBzdGF0ZSIKQEAgLTg5MjQsMTEgKzk5MDYsMTEgQEAKIAogIzogY29tbW9uLWNtZHMuaDoyNQogbXNnaWQgIlJlbW92ZSBmaWxlcyBmcm9tIHRoZSB3b3JraW5nIHRyZWUgYW5kIGZyb20gdGhlIGluZGV4IgotbXNnc3RyICJTdXBwcmltZXIgbGVzIGZpY2hpZXJzIGRlIGxhIGNvcGllIGRlIHRyYXZhaWwgZXQgZGUgbCdpbmRleCIKK21zZ3N0ciAiU3VwcHJpbWVyIGRlcyBmaWNoaWVycyBkZSBsYSBjb3BpZSBkZSB0cmF2YWlsIGV0IGRlIGwnaW5kZXgiCiAKICM6IGNvbW1vbi1jbWRzLmg6MjYKIG1zZ2lkICJTaG93IHZhcmlvdXMgdHlwZXMgb2Ygb2JqZWN0cyIKLW1zZ3N0ciAiQWZmaWNoZXIgZGlmZsOpcmVudHMgdHlwZXMgZCdvYmplY3RzIgorbXNnc3RyICJBZmZpY2hlciBkaWZmw6lyZW50cyB0eXBlcyBkJ29iamV0cyIKIAogIzogY29tbW9uLWNtZHMuaDoyNwogbXNnaWQgIlNob3cgdGhlIHdvcmtpbmcgdHJlZSBzdGF0dXMiCkBAIC04OTM2LDcgKzk5MTgsOCBAQAogCiAjOiBjb21tb24tY21kcy5oOjI4CiBtc2dpZCAiQ3JlYXRlLCBsaXN0LCBkZWxldGUgb3IgdmVyaWZ5IGEgdGFnIG9iamVjdCBzaWduZWQgd2l0aCBHUEciCi1tc2dzdHIgIkNyw6llciwgbGlzdGVyLCBzdXBwcmltZXIgb3UgdsOpcmlmaWVyIHVuIG9iamV0IGQnw6l0aXF1ZXR0ZSBzaWduw6kgYXZlYyBHUEciCittc2dzdHIgIiIKKyJDcsOpZXIsIGxpc3Rlciwgc3VwcHJpbWVyIG91IHbDqXJpZmllciB1biBvYmpldCBkJ8OpdGlxdWV0dGUgc2lnbsOpIGF2ZWMgR1BHIgogCiAjOiBnaXQtYW0uc2g6NTAKIG1zZ2lkICJZb3UgbmVlZCB0byBzZXQgeW91ciBjb21taXR0ZXIgaW5mbyBmaXJzdCIKQEAgLTg5NTMsMjUgKzk5MzYsMjkgQEAKICM6IGdpdC1hbS5zaDoxMDUKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKLSJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiJGNtZGxpbmUgLS1yZXNvbHZlZFwiLlxuIgorIldoZW4geW91IGhhdmUgcmVzb2x2ZWQgdGhpcyBwcm9ibGVtLCBydW4gXCIkY21kbGluZSAtLWNvbnRpbnVlXCIuXG4iCiAiSWYgeW91IHByZWZlciB0byBza2lwIHRoaXMgcGF0Y2gsIHJ1biBcIiRjbWRsaW5lIC0tc2tpcFwiIGluc3RlYWQuXG4iCiAiVG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoIGFuZCBzdG9wIHBhdGNoaW5nLCBydW4gXCIkY21kbGluZSAtLWFib3J0XCIuIgogbXNnc3RyICIiCi0iTG9yc3F1ZSB2b3VzIGF1cmV6IHLDqXNvbHUgY2UgcHJvYmzDqG1lLCBsYW5jZXogXCIkY21kbGluZSAtLXJlc29sdmVkXCIuXG4iCisiTG9yc3F1ZSB2b3VzIGF1cmV6IHLDqXNvbHUgY2UgcHJvYmzDqG1lLCBsYW5jZXogXCIkY21kbGluZSAtLWNvbnRpbnVlXCIuXG4iCiAiU2kgdm91cyBwcsOpZsOpcmV6IHNhdXRlciBjZSBwYXRjaCwgbGFuY2V6IFwiJGNtZGxpbmUgLS1za2lwXCIgw6AgbGEgcGxhY2UuXG4iCi0iUG91ciByZXN0YXVyZXIgbGEgYnJhbmNoZSBkJ29yaWdpbmUgZXQgc3RvcHBlciBsZSBwYXRjaGFnZSwgbGFuY2V6IFwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKKyJQb3VyIHJlc3RhdXJlciBsYSBicmFuY2hlIGQnb3JpZ2luZSBldCBzdG9wcGVyIGxlIHBhdGNoYWdlLCBsYW5jZXogIgorIlwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKIAogIzogZ2l0LWFtLnNoOjEyMQogbXNnaWQgIkNhbm5vdCBmYWxsIGJhY2sgdG8gdGhyZWUtd2F5IG1lcmdlLiIKLW1zZ3N0ciAiSW1wb3NzaWJsZSBkZSByZXRvdXJuZXIgw6AgdW5lIGZ1c2lvbiAzLXdheS4iCittc2dzdHIgIkltcG9zc2libGUgZGUgcmV0b3VybmVyIMOgIHVuZSBmdXNpb24gw6AgMyBwb2ludHMuIgogCiAjOiBnaXQtYW0uc2g6MTM3CiBtc2dpZCAiUmVwb3NpdG9yeSBsYWNrcyBuZWNlc3NhcnkgYmxvYnMgdG8gZmFsbCBiYWNrIG9uIDMtd2F5IG1lcmdlLiIKLW1zZ3N0ciAiTGUgZMOpcMO0dCBuJ2EgcGFzIGxlcyBibG9icyBuw6ljZXNzYWlyZXMgcG91ciB1biByZXRvdXIgw6AgdW5lIGZ1c2lvbiAzLXdheS4iCittc2dzdHIgIiIKKyJMZSBkw6lww7R0IG4nYSBwYXMgbGVzIGJsb2JzIG7DqWNlc3NhaXJlcyBwb3VyIHVuIHJldG91ciDDoCB1bmUgZnVzaW9uIMOgIDMgIgorInBvaW50cy4iCiAKICM6IGdpdC1hbS5zaDoxMzkKIG1zZ2lkICJVc2luZyBpbmRleCBpbmZvIHRvIHJlY29uc3RydWN0IGEgYmFzZSB0cmVlLi4uIgotbXNnc3RyICJVdGlsaXNhdGlvbiBkZSBsJ2luZm9ybWF0aW9uIGRlIGwnaW5kZXggcG91ciByZWNvbnN0cnVpcmUgdW4gYXJicmUgZGUgYmFzZS4uLiIKK21zZ3N0ciAiIgorIlV0aWxpc2F0aW9uIGRlIGwnaW5mb3JtYXRpb24gZGUgbCdpbmRleCBwb3VyIHJlY29uc3RydWlyZSB1biBhcmJyZSBkZSBiYXNlLi4uIgogCiAjOiBnaXQtYW0uc2g6MTU0CiBtc2dpZCAiIgpAQCAtODk4MywxNSArOTk3MCwxNSBAQAogCiAjOiBnaXQtYW0uc2g6MTYzCiBtc2dpZCAiRmFsbGluZyBiYWNrIHRvIHBhdGNoaW5nIGJhc2UgYW5kIDMtd2F5IG1lcmdlLi4uIgotbXNnc3RyICJSZXRvdXIgw6AgdW4gcGF0Y2ggZGUgbGEgYmFzZSBldCBmdXNpb24gMy13YXkuLi4iCittc2dzdHIgIlJldG91ciDDoCB1biBwYXRjaCBkZSBsYSBiYXNlIGV0IGZ1c2lvbiDDoCAzIHBvaW50cy4uLiIKIAogIzogZ2l0LWFtLnNoOjE3OQogbXNnaWQgIkZhaWxlZCB0byBtZXJnZSBpbiB0aGUgY2hhbmdlcy4iCi1tc2dzdHIgIsOJY2hlYyBkZSBmdXNpb24gZGFucyBsZXMgY2hhbmdlbWVudHMuIgorbXNnc3RyICLDiWNoZWMgZCdpbnTDqWdyYXRpb24gZGVzIG1vZGlmaWNhdGlvbnMuIgogCiAjOiBnaXQtYW0uc2g6Mjc0CiBtc2dpZCAiT25seSBvbmUgU3RHSVQgcGF0Y2ggc2VyaWVzIGNhbiBiZSBhcHBsaWVkIGF0IG9uY2UiCi1tc2dzdHIgIlNldWxlbWVudCB1bmUgc8OpcmllIGRlIHBhdGNoZXMgU3RHSVQgcGV1dCDDqnRyZSBhcHBsaXF1w6llIMOgIGxhIGZvaXMiCittc2dzdHIgIlNldWxlbWVudCB1bmUgc8OpcmllIGRlIHBhdGNocyBTdEdJVCBwZXV0IMOqdHJlIGFwcGxpcXXDqWUgw6AgbGEgZm9pcyIKIAogIzogZ2l0LWFtLnNoOjM2MQogIywgc2gtZm9ybWF0CkBAIC05MDA4LDI3ICs5OTk1LDM5IEBACiAiaXQgd2lsbCBiZSByZW1vdmVkLiBQbGVhc2UgZG8gbm90IHVzZSBpdCBhbnltb3JlLiIKIG1zZ3N0ciAiIgogIkwnb3B0aW9uIC1iLy0tYmluYXJ5IG5lIGZhaXQgcGx1cyByaWVuIGRlcHVpcyBsb25ndGVtcHMsXG4iCi0iZXQgZWxsZSBzZXJhIHN1cHByaW3DqWUuIE1lcmNpIGRlIG5lIHBsdXMgbCd1dGlsaXNlci4iCisiZXQgZWxsZSBzZXJhIHN1cHByaW3DqWUuIFZldWlsbGV6IG5lIHBsdXMgbCd1dGlsaXNlci4iCiAKLSM6IGdpdC1hbS5zaDo0NzcKKyM6IGdpdC1hbS5zaDo0NzkKICMsIHNoLWZvcm1hdAogbXNnaWQgInByZXZpb3VzIHJlYmFzZSBkaXJlY3RvcnkgJGRvdGVzdCBzdGlsbCBleGlzdHMgYnV0IG1ib3ggZ2l2ZW4uIgotbXNnc3RyICJsZSByw6lwZXJ0b2lyZSBwcsOpY8OpZGVudCBkZSByZWJhc2FnZSAkZG90ZXN0IGV4aXN0ZSB0b3Vqb3VycyBtYWlzIG1ib3ggZG9ubsOpZS4iCittc2dzdHIgIiIKKyJsZSByw6lwZXJ0b2lyZSBwcsOpY8OpZGVudCBkZSByZWJhc2FnZSAkZG90ZXN0IGV4aXN0ZSB0b3Vqb3VycyBtYWlzIG1ib3ggZG9ubsOpZS4iCiAKLSM6IGdpdC1hbS5zaDo0ODIKKyM6IGdpdC1hbS5zaDo0ODQKIG1zZ2lkICJQbGVhc2UgbWFrZSB1cCB5b3VyIG1pbmQuIC0tc2tpcCBvciAtLWFib3J0PyIKIG1zZ3N0ciAiRMOpY2lkZXotdm91cy4gLS1za2lwIG91IC0tYWJvcnQgPyIKIAotIzogZ2l0LWFtLnNoOjUwOQotbXNnaWQgIlJlc29sdmUgb3BlcmF0aW9uIG5vdCBpbiBwcm9ncmVzcywgd2UgYXJlIG5vdCByZXN1bWluZy4iCi1tc2dzdHIgIlBhcyBkZSByw6lzb2x1dGlvbiBkZSBsJ29ww6lyYXRpb24gZW4gY291cnMsIG5vdXMgbmUgc29tbWVzIHBhcyBkYW5zIHVuZSByZXByaXNlLiIKKyM6IGdpdC1hbS5zaDo1MjAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJTdHJheSAkZG90ZXN0IGRpcmVjdG9yeSBmb3VuZC5cbiIKKyJVc2UgXCJnaXQgYW0gLS1hYm9ydFwiIHRvIHJlbW92ZSBpdC4iCittc2dzdHIgIiIKKyJSw6lwZXJ0b2lyZSBhYmFuZG9ubsOpICRkb3Rlc3QgdHJvdXbDqS5cbiIKKyJVdGlsaXNleiBcImdpdCBhbSAtLWFib3J0XCIgcG91ciBsZSBzdXBwcmltZXIuIgogCi0jOiBnaXQtYW0uc2g6NTc1CisjOiBnaXQtYW0uc2g6NTI4Cittc2dpZCAiUmVzb2x2ZSBvcGVyYXRpb24gbm90IGluIHByb2dyZXNzLCB3ZSBhcmUgbm90IHJlc3VtaW5nLiIKK21zZ3N0ciAiIgorIlBhcyBkZSByw6lzb2x1dGlvbiBkZSBsJ29ww6lyYXRpb24gZW4gY291cnMsIG5vdXMgbmUgc29tbWVzIHBhcyBkYW5zIHVuZSAiCisicmVwcmlzZS4iCisKKyM6IGdpdC1hbS5zaDo1OTQKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRpcnR5IGluZGV4OiBjYW5ub3QgYXBwbHkgcGF0Y2hlcyAoZGlydHk6ICRmaWxlcykiCi1tc2dzdHIgIkluZGV4IHNhbGUgOiBpbXBvc3NpYmxlIGQnYXBwbGlxdWVyIGRlcyBwYXRjaGVzIChzYWxlcyA6ICRmaWxlcykiCittc2dzdHIgIkluZGV4IHNhbGUgOiBpbXBvc3NpYmxlIGQnYXBwbGlxdWVyIGRlcyBwYXRjaHMgKHNhbGVzIDogJGZpbGVzKSIKIAotIzogZ2l0LWFtLnNoOjY3OQorIzogZ2l0LWFtLnNoOjY5OAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIlBhdGNoIGlzIGVtcHR5LiAgV2FzIGl0IHNwbGl0IHdyb25nP1xuIgpAQCAtOTAzNyw0MCArMTAwMzYsNDYgQEAKIG1zZ3N0ciAiIgogIkxlIHBhdGNoIGVzdCB2aWRlLiAgw4l0YWl0LWlsIG1hbCBkw6ljb3Vww6kgP1xuIgogIlNpIHZvdXMgcHLDqWbDqXJleiBzYXV0ZXIgY2UgcGF0Y2gsIGxhbmNleiBwbHV0w7R0IFwiJGNtZGxpbmUgLS1za2lwXCIuXG4iCi0iUG91ciByZXN0YXVyZXIgbGEgYnJhbmNoZSBkJ29yaWdpbmUgZXQgc3RvcHBlciBsZSBwYXRjaGFnZSwgbGFuY2V6IFwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKKyJQb3VyIHJlc3RhdXJlciBsYSBicmFuY2hlIGQnb3JpZ2luZSBldCBzdG9wcGVyIGxlIHBhdGNoYWdlLCBsYW5jZXogIgorIlwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKIAotIzogZ2l0LWFtLnNoOjcwNgorIzogZ2l0LWFtLnNoOjcyNQogbXNnaWQgIlBhdGNoIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBlLW1haWwgYWRkcmVzcy4iCiBtc2dzdHIgIkxlIHBhdGNoIG4nYSBwYXMgZCdhZHJlc3NlIGUtbWFpbCB2YWxpZGUuIgogCi0jOiBnaXQtYW0uc2g6NzUzCisjOiBnaXQtYW0uc2g6NzcyCiBtc2dpZCAiY2Fubm90IGJlIGludGVyYWN0aXZlIHdpdGhvdXQgc3RkaW4gY29ubmVjdGVkIHRvIGEgdGVybWluYWwuIgotbXNnc3RyICJpbXBvc3NpYmxlIGQnw6p0cmUgaW50ZXJhY3RpZiBzYW5zIGVudHLDqWUgc3RhbmRhcmQgY29ubmVjdMOpZSDDoCB1biB0ZXJtaW5hbC4iCittc2dzdHIgIiIKKyJpbXBvc3NpYmxlIGQnw6p0cmUgaW50ZXJhY3RpZiBzYW5zIGVudHLDqWUgc3RhbmRhcmQgY29ubmVjdMOpZSDDoCB1biB0ZXJtaW5hbC4iCiAKLSM6IGdpdC1hbS5zaDo3NTcKKyM6IGdpdC1hbS5zaDo3NzYKIG1zZ2lkICJDb21taXQgQm9keSBpczoiCiBtc2dzdHIgIkxlIGNvcnBzIGRlIGxhIHZhbGlkYXRpb24gZXN0IDoiCiAKICMuIFRSQU5TTEFUT1JTOiBNYWtlIHN1cmUgdG8gaW5jbHVkZSBbeV0sIFtuXSwgW2VdLCBbdl0gYW5kIFthXQogIy4gaW4geW91ciB0cmFuc2xhdGlvbi4gVGhlIHByb2dyYW0gd2lsbCBvbmx5IGFjY2VwdCBFbmdsaXNoCiAjLiBpbnB1dCBhdCB0aGlzIHBvaW50LgotIzogZ2l0LWFtLnNoOjc2NAorIzogZ2l0LWFtLnNoOjc4MwogbXNnaWQgIkFwcGx5PyBbeV1lcy9bbl1vL1tlXWRpdC9bdl1pZXcgcGF0Y2gvW2FdY2NlcHQgYWxsICIKIG1zZ3N0ciAiQXBwbGlxdWVyID8gW3ldZXMvW25dby9bZV1kaXQvW3ZdaWV3IHBhdGNoL1thXWNjZXB0IGFsbCAiCiAKLSM6IGdpdC1hbS5zaDo4MDAKKyM6IGdpdC1hbS5zaDo4MTkKICMsIHNoLWZvcm1hdAogbXNnaWQgIkFwcGx5aW5nOiAkRklSU1RMSU5FIgogbXNnc3RyICJBcHBsaWNhdGlvbiA6ICRGSVJTVExJTkUiCiAKLSM6IGdpdC1hbS5zaDo4MjEKKyM6IGdpdC1hbS5zaDo4NDAKIG1zZ2lkICIiCiAiTm8gY2hhbmdlcyAtIGRpZCB5b3UgZm9yZ2V0IHRvIHVzZSAnZ2l0IGFkZCc/XG4iCiAiSWYgdGhlcmUgaXMgbm90aGluZyBsZWZ0IHRvIHN0YWdlLCBjaGFuY2VzIGFyZSB0aGF0IHNvbWV0aGluZyBlbHNlXG4iCiAiYWxyZWFkeSBpbnRyb2R1Y2VkIHRoZSBzYW1lIGNoYW5nZXM7IHlvdSBtaWdodCB3YW50IHRvIHNraXAgdGhpcyBwYXRjaC4iCiBtc2dzdHIgIiIKKyJBdWN1biBjaGFuZ2VtZW50IC0gYXZlei12b3VzIG91Ymxpw6kgZCd1dGlsaXNlciAnZ2l0IGFkZCcgP1xuIgorIlMnaWwgbid5IGEgcGx1cyByaWVuIMOgIGluZGV4ZXIsIGlsIHNlIHBldXQgcXUnYXV0cmUgY2hvc2UgYWl0IGTDqWrDoFxuIgorImludHJvZHVpdCBsZXMgbcOqbWVzIGNoYW5nZW1lbnRzIDsgdm91cyBwb3VycmlleiBhdm9pciBlbnZpZSBkZSBzYXV0ZXIgY2UgIgorInBhdGNoLiIKIAotIzogZ2l0LWFtLnNoOjgyOQorIzogZ2l0LWFtLnNoOjg0OAogbXNnaWQgIiIKICJZb3Ugc3RpbGwgaGF2ZSB1bm1lcmdlZCBwYXRocyBpbiB5b3VyIGluZGV4XG4iCiAiZGlkIHlvdSBmb3JnZXQgdG8gdXNlICdnaXQgYWRkJz8iCkBAIC05MDc4LDE2ICsxMDA4MywxNiBAQAogIlZvdXMgYXZleiB0b3Vqb3VycyBkZXMgY2hlbWlucyBub24gZnVzaW9ubsOpcyBkYW5zIHZvdHJlIGluZGV4XG4iCiAiYXVyaWV6LXZvdXMgb3VibGnDqSBkZSBmYWlyZSAnZ2l0IGFkZCcgPyIKIAotIzogZ2l0LWFtLnNoOjg0NQorIzogZ2l0LWFtLnNoOjg2NAogbXNnaWQgIk5vIGNoYW5nZXMgLS0gUGF0Y2ggYWxyZWFkeSBhcHBsaWVkLiIKIG1zZ3N0ciAiUGFzIGRlIGNoYW5nZW1lbnQgLS0gUGF0Y2ggZMOpasOgIGFwcGxpcXXDqS4iCiAKLSM6IGdpdC1hbS5zaDo4NTUKKyM6IGdpdC1hbS5zaDo4NzQKICMsIHNoLWZvcm1hdAogbXNnaWQgIlBhdGNoIGZhaWxlZCBhdCAkbXNnbnVtICRGSVJTVExJTkUiCiBtc2dzdHIgIkxlIHBhdGNoIGEgw6ljaG91w6kgw6AgJG1zZ251bSAkRklSU1RMSU5FIgogCi0jOiBnaXQtYW0uc2g6ODU4CisjOiBnaXQtYW0uc2g6ODc3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGNvcHkgb2YgdGhlIHBhdGNoIHRoYXQgZmFpbGVkIGlzIGZvdW5kIGluOlxuIgpAQCAtOTA5Niw3ICsxMDEwMSw3IEBACiAiTGEgY29waWUgZHUgcGF0Y2ggcXVpIGEgw6ljaG91w6kgc2UgdHJvdXZlIGRhbnMgOlxuIgogIiAgICRkb3Rlc3QvcGF0Y2giCiAKLSM6IGdpdC1hbS5zaDo4NzYKKyM6IGdpdC1hbS5zaDo4OTUKIG1zZ2lkICJhcHBseWluZyB0byBhbiBlbXB0eSBoaXN0b3J5IgogbXNnc3RyICJhcHBsaWNhdGlvbiDDoCB1biBoaXN0b3JpcXVlIHZpZGUiCiAKQEAgLTkxMjksMTEgKzEwMTM0LDEzIEBACiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiQ2hlY2tpbmcgb3V0ICckc3RhcnRfaGVhZCcgZmFpbGVkLiBUcnkgJ2dpdCBiaXNlY3QgcmVzZXQgPHZhbGlkYnJhbmNoPicuIgotbXNnc3RyICJMJ2V4dHJhY3Rpb24gZGUgJyRzdGFydF9oZWFkJyBhIMOpY2hvdcOpLiBFc3NheWV6ICdnaXQgYmlzZWN0IHJlc2V0IDxicmFuY2hldmFsaWRlPicuIgorbXNnc3RyICIiCisiTCdleHRyYWN0aW9uIGRlICckc3RhcnRfaGVhZCcgYSDDqWNob3XDqS4gRXNzYXlleiAnZ2l0IGJpc2VjdCByZXNldCAiCisiPGJyYW5jaGV2YWxpZGU+Jy4iCiAKICM6IGdpdC1iaXNlY3Quc2g6MTQwCiBtc2dpZCAid29uJ3QgYmlzZWN0IG9uIHNlZWtlZCB0cmVlIgotbXNnc3RyICIiCittc2dzdHIgInJlZnVzIGRlIGJpc3NlY3RlciBzdXIgdW4gYXJicmUgJ3NlZWtlZCciCiAKICM6IGdpdC1iaXNlY3Quc2g6MTQ0CiBtc2dpZCAiQmFkIEhFQUQgLSBzdHJhbmdlIHN5bWJvbGljIHJlZiIKQEAgLTkxNTEsNyArMTAxNTgsNyBAQAogCiAjOiBnaXQtYmlzZWN0LnNoOjIzMgogbXNnaWQgIlBsZWFzZSBjYWxsICdiaXNlY3Rfc3RhdGUnIHdpdGggYXQgbGVhc3Qgb25lIGFyZ3VtZW50LiIKLW1zZ3N0ciAiTWVyY2kgZCdhcHBlbGVyICdiaXNlY3Rfc3RhdGUnIGF2ZWMgYXUgbW9pbnMgdW4gYXJndW1lbnQuIgorbXNnc3RyICJWZXVpbGxleiBhcHBlbGVyICdiaXNlY3Rfc3RhdGUnIGF2ZWMgYXUgbW9pbnMgdW4gYXJndW1lbnQuIgogCiAjOiBnaXQtYmlzZWN0LnNoOjI0NAogIywgc2gtZm9ybWF0CkBAIC05MjYyLDIyICsxMDI2OSwyNSBAQAogImFzIGFwcHJvcHJpYXRlIHRvIG1hcmsgcmVzb2x1dGlvbiwgb3IgdXNlICdnaXQgY29tbWl0IC1hJy4iCiBtc2dzdHIgIiIKICJMZSBwdWxsIG4nZXN0IHBhcyBwb3NzaWJsZSBjYXIgdm91cyBhdmV6IGRlcyBmaWNoaWVycyBub24gZnVzaW9ubsOpcy5cbiIKLSJNZXJjaSBkZSBjb3JyaWdlciBkYW5zIHZvdHJlIGNvcGllIGRlIHRyYXZhaWwsIGV0IHV0aWxpc2V6IGFsb3JzICdnaXQgYWRkL3JtIDxmaWxlPidcbiIKKyJWZXVpbGxleiBsZXMgY29ycmlnZXIgZGFucyB2b3RyZSBjb3BpZSBkZSB0cmF2YWlsLCBldCB1dGlsaXNleiBhbG9ycyAnZ2l0ICIKKyJhZGQvcm0gPGZpbGU+J1xuIgogInNpIG7DqWNlc3NhaXJlIHBvdXIgbWFycXVlciBjb21tZSByw6lzb2x1LCBvdSB1dGlsaXNleiAnZ2l0IGNvbW1pdCAtYScuIgogCiAjOiBnaXQtcHVsbC5zaDoyNQogbXNnaWQgIlB1bGwgaXMgbm90IHBvc3NpYmxlIGJlY2F1c2UgeW91IGhhdmUgdW5tZXJnZWQgZmlsZXMuIgogbXNnc3RyICJMZSBwdWxsIG4nZXN0IHBhcyBwb3NzaWJsZSBjYXIgdm91cyBhdmV6IGRlcyBmaWNoaWVycyBub24gZnVzaW9ubsOpcy4iCiAKLSM6IGdpdC1wdWxsLnNoOjIwMworIzogZ2l0LXB1bGwuc2g6MjIzCiBtc2dpZCAidXBkYXRpbmcgYW4gdW5ib3JuIGJyYW5jaCB3aXRoIGNoYW5nZXMgYWRkZWQgdG8gdGhlIGluZGV4IgotbXNnc3RyICJtaXNlIMOgIGpvdXIgZCd1bmUgYnJhbmNoZSBub24gZW5jb3JlIGNyw6nDqWUgYXZlYyBsZXMgY2hhbmdlbWVudHMgYWpvdXTDqXMgZGFucyBsJ2luZGV4IgorbXNnc3RyICIiCisibWlzZSDDoCBqb3VyIGQndW5lIGJyYW5jaGUgbm9uIGVuY29yZSBjcsOpw6llIGF2ZWMgbGVzIGNoYW5nZW1lbnRzIGFqb3V0w6lzIGRhbnMgIgorImwnaW5kZXgiCiAKICMuIFRoZSBmZXRjaCBpbnZvbHZlZCB1cGRhdGluZyB0aGUgY3VycmVudCBicmFuY2guCiAjLiBUaGUgd29ya2luZyB0cmVlIGFuZCB0aGUgaW5kZXggZmlsZSBpcyBzdGlsbCBiYXNlZCBvbiB0aGUKICMuICRvcmlnX2hlYWQgY29tbWl0LCBidXQgd2UgYXJlIG1lcmdpbmcgaW50byAkY3Vycl9oZWFkLgogIy4gRmlyc3QgdXBkYXRlIHRoZSB3b3JraW5nIHRyZWUgdG8gbWF0Y2ggJGN1cnJfaGVhZC4KLSM6IGdpdC1wdWxsLnNoOjIzNQorIzogZ2l0LXB1bGwuc2g6MjU1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiV2FybmluZzogZmV0Y2ggdXBkYXRlZCB0aGUgY3VycmVudCBicmFuY2ggaGVhZC5cbiIKQEAgLTkyODgsMTUgKzEwMjk4LDE1IEBACiAiQXR0ZW50aW9uIDogbWlzZSDDoCBqb3VyIGVuIGF2YW5jZSByYXBpZGUgZGUgdm90cmUgY29waWUgZGUgdHJhdmFpbFxuIgogIkF0dGVudGlvbiA6IGRlcHVpcyBsYSB2YWxpZGF0aW9uICRvcmlnX2hlYWQuIgogCi0jOiBnaXQtcHVsbC5zaDoyNjAKKyM6IGdpdC1wdWxsLnNoOjI4MAogbXNnaWQgIkNhbm5vdCBtZXJnZSBtdWx0aXBsZSBicmFuY2hlcyBpbnRvIGVtcHR5IGhlYWQiCiBtc2dzdHIgIkltcG9zc2libGUgZGUgZnVzaW9ubmVyIGRlIG11bHRpcGxlcyBicmFuY2hlcyBzdXIgdW5lIHTDqnRlIHZpZGUiCiAKLSM6IGdpdC1wdWxsLnNoOjI2NAorIzogZ2l0LXB1bGwuc2g6Mjg0CiBtc2dpZCAiQ2Fubm90IHJlYmFzZSBvbnRvIG11bHRpcGxlIGJyYW5jaGVzIgogbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJlYmFzZXIgc3VyIGRlIG11bHRpcGxlcyBicmFuY2hlcyIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MworIzogZ2l0LXJlYmFzZS5zaDo1NAogbXNnaWQgIiIKICJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIuXG4iCiAiSWYgeW91IHByZWZlciB0byBza2lwIHRoaXMgcGF0Y2gsIHJ1biBcImdpdCByZWJhc2UgLS1za2lwXCIgaW5zdGVhZC5cbiIKQEAgLTkzMDUsMzMgKzEwMzE1LDU1IEBACiBtc2dzdHIgIiIKICJMb3JzcXVlIHZvdXMgYXVyZXogcsOpc29sdSBjZSBwcm9ibMOobWUsIGxhbmNleiBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiLlxuIgogIlNpIHZvdXMgcHLDqWbDqXJleiBzYXV0ZXIgY2UgcGF0Y2gsIGxhbmNleiBcImdpdCByZWJhc2UgLS1za2lwXCIgw6AgbGEgcGxhY2UuXG4iCi0iUG91ciBleHRyYWlyZSBsYSBicmFuY2hlIGQnb3JpZ2luZSBldCBzdG9wcGVyIGxlIHJlYmFzYWdlLCBsYW5jZXogXCJnaXQgcmViYXNlIC0tYWJvcnRcIi4iCisiUG91ciBleHRyYWlyZSBsYSBicmFuY2hlIGQnb3JpZ2luZSBldCBzdG9wcGVyIGxlIHJlYmFzYWdlLCBsYW5jZXogXCJnaXQgIgorInJlYmFzZSAtLWFib3J0XCIuIgorCisjOiBnaXQtcmViYXNlLnNoOjE1NgorbXNnaWQgIkFwcGxpZWQgYXV0b3N0YXNoLiIKK21zZ3N0ciAiQXV0b3JlbWlzYWdlIGFwcGxpcXXDqS4iCisKKyM6IGdpdC1yZWJhc2Uuc2g6MTU5CisjLCBzaC1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgc3RvcmUgJHN0YXNoX3NoYTEiCittc2dzdHIgIkltcG9zc2libGUgZGUgc3RvY2tlciAkc3Rhc2hfc2hhMSIKIAogIzogZ2l0LXJlYmFzZS5zaDoxNjAKLW1zZ2lkICJUaGUgcHJlLXJlYmFzZSBob29rIHJlZnVzZWQgdG8gcmViYXNlLiIKLW1zZ3N0ciAiTGUgaG9vayBwcmUtcmViYXNlIGEgcmVmdXPDqSBkZSByZWJhc2VyLiIKK21zZ2lkICIiCisiQXBwbHlpbmcgYXV0b3N0YXNoIHJlc3VsdGVkIGluIGNvbmZsaWN0cy5cbiIKKyJZb3VyIGNoYW5nZXMgYXJlIHNhZmUgaW4gdGhlIHN0YXNoLlxuIgorIllvdSBjYW4gcnVuIFwiZ2l0IHN0YXNoIHBvcFwiIG9yIFwiZ2l0IHN0YXNoIGRyb3BcIiBhdCBhbnkgdGltZS5cbiIKK21zZ3N0ciAiIgorIkwnYXBwbGljYXRpb24gZGUgbCdhdXRvcmVtaXNhZ2UgYSBwcm92b3F1w6kgZGVzIGNvbmZsaXRzXG4iCisiVm9zICBtb2RpZmljYXRpb25zIHNvbnQgw6AgbCdhYnJpIGRhbnMgbGEgcmVtaXNlLlxuIgorIlZvdXMgcG91dmV6IGxhbmNlciBcImdpdCBzdGFzaCBwb3BcIiBvdSBcImdpdCBzdGFzaCBkcm9wXCIgw6AgdG91dCBtb21lbnQuXG4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MTY1CisjOiBnaXQtcmViYXNlLnNoOjE5OQorbXNnaWQgIlRoZSBwcmUtcmViYXNlIGhvb2sgcmVmdXNlZCB0byByZWJhc2UuIgorbXNnc3RyICJMZSBjcm9jaGV0IHByZS1yZWJhc2UgYSByZWZ1c8OpIGRlIHJlYmFzZXIuIgorCisjOiBnaXQtcmViYXNlLnNoOjIwNAogbXNnaWQgIkl0IGxvb2tzIGxpa2UgZ2l0LWFtIGlzIGluIHByb2dyZXNzLiBDYW5ub3QgcmViYXNlLiIKIG1zZ3N0ciAiSWwgc2VtYmxlIHF1ZSBnaXQtYW0gc29pdCBlbiBjb3Vycy4gSW1wb3NzaWJsZSBkZSByZWJhc2VyLiIKIAotIzogZ2l0LXJlYmFzZS5zaDoyOTYKKyM6IGdpdC1yZWJhc2Uuc2g6MzM4CiBtc2dpZCAiVGhlIC0tZXhlYyBvcHRpb24gbXVzdCBiZSB1c2VkIHdpdGggdGhlIC0taW50ZXJhY3RpdmUgb3B0aW9uIgogbXNnc3RyICJMJ29wdGlvbiAtLWV4ZWMgZG9pdCDDqnRyZSB1dGlsaXPDqWUgYXZlYyBsJ29wdGlvbiAtLWludGVyYWN0aXZlIgogCi0jOiBnaXQtcmViYXNlLnNoOjMwMQorIzogZ2l0LXJlYmFzZS5zaDozNDMKIG1zZ2lkICJObyByZWJhc2UgaW4gcHJvZ3Jlc3M/IgogbXNnc3RyICJQYXMgZGUgcmViYXNhZ2UgZW4gY291cnMgPyIKIAotIzogZ2l0LXJlYmFzZS5zaDozMTIKKyM6IGdpdC1yZWJhc2Uuc2g6MzU0CiBtc2dpZCAiVGhlIC0tZWRpdC10b2RvIGFjdGlvbiBjYW4gb25seSBiZSB1c2VkIGR1cmluZyBpbnRlcmFjdGl2ZSByZWJhc2UuIgotbXNnc3RyICJMJ2FjdGlvbiAtLWVkaXQtdG9kbyBwZXV0IHNldWxlbWVudCDDqnRyZSB1dGlsaXPDqWUgbG9ycyBkJ3VuIHJlYmFzYWdlIGludGVyYWN0aWYuIgorbXNnc3RyICIiCisiTCdhY3Rpb24gLS1lZGl0LXRvZG8gcGV1dCBzZXVsZW1lbnQgw6p0cmUgdXRpbGlzw6llIGxvcnMgZCd1biByZWJhc2FnZSAiCisiaW50ZXJhY3RpZi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzE5CisjOiBnaXQtcmViYXNlLnNoOjM2MQogbXNnaWQgIkNhbm5vdCByZWFkIEhFQUQiCiBtc2dzdHIgIkltcG9zc2libGUgZGUgbGlyZSBIRUFEIgogCi0jOiBnaXQtcmViYXNlLnNoOjMyMgorIzogZ2l0LXJlYmFzZS5zaDozNjQKIG1zZ2lkICIiCiAiWW91IG11c3QgZWRpdCBhbGwgbWVyZ2UgY29uZmxpY3RzIGFuZCB0aGVuXG4iCiAibWFyayB0aGVtIGFzIHJlc29sdmVkIHVzaW5nIGdpdCBhZGQiCkBAIC05MzM5LDEyICsxMDM3MSwxMiBAQAogIlZvdXMgZGV2ZXogw6lkaXRlciB0b3VzIGxlcyBjb25mbGl0cyBkZSBmdXNpb24gZXRcbiIKICJsZXMgbWFycXVlciBjb21tZSByw6lzb2x1cyBhdmVjIGdpdCBhZGQiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzQwCisjOiBnaXQtcmViYXNlLnNoOjM4MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG1vdmUgYmFjayB0byAkaGVhZF9uYW1lIgogbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJldmVuaXIgw6AgJGhlYWRfbmFtZSIKIAotIzogZ2l0LXJlYmFzZS5zaDozNTkKKyM6IGdpdC1yZWJhc2Uuc2g6NDAxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiSXQgc2VlbXMgdGhhdCB0aGVyZSBpcyBhbHJlYWR5IGEgJHN0YXRlX2Rpcl9iYXNlIGRpcmVjdG9yeSwgYW5kXG4iCkBAIC05MzU3LDY0ICsxMDM4OSw3NSBAQAogInZhbHVhYmxlIHRoZXJlLiIKIG1zZ3N0ciAiIgogIklsIHNlbWJsZSBxdSdpbCB5IGFpdCBkw6lqw6AgdW4gcsOpcGVydG9pcmUgJHN0YXRlX2Rpcl9iYXNlLCBldCBqZSBtZSBkZW1hbmRlXG4iCi0ic2kgdm91cyBuJ8OqdGVzIHBhcyBhdSBtaWxpZXUgZCd1biBhdXRyZSByZWJhc2FnZS4gIFNpIGMnZXN0IGxlIGNhcyxcbiIKLSJtZXJjaSBkJ2Vzc2F5ZXJcbiIKKyJzaSB1biBhdXRyZSByZWJhc2FnZSBuJ2VzdCBwYXMgZMOpasOgIGVuIGNvdXJzLiBTaSBjJ2VzdCBsZSBjYXMsXG4iCisiZXNzYXllelxuIgogIlx0JGNtZF9saXZlX3JlYmFzZVxuIgotIlNpIMOnYSBuJ2VzdCBwYXMgbGUgY2FzLCBtZXJjaSBkZVxuIgorIlNpbm9uLCBlc3NheWV6XG4iCiAiXHQkY21kX2NsZWFyX3N0YWxlX3JlYmFzZVxuIgotImV0IHJlbGFuY2VyIMOgIG5vdXZlYXUuICBKZSBtJ2FycsOqdGUgYXUgY2FzIG/DuSB2b3VzIGF1cmlleiBxdWVscXVlIGNob3NlXG4iCisicHVpcyByZWxhbmNlei1tb2kgw6Agbm91dmVhdS4gIEplIG0nYXJyw6p0ZSBhdSBjYXMgb8O5IHZvdXMgYXVyaWV6IHF1ZWxxdWUgIgorImNob3NlXG4iCiAiZCdpbXBvcnRhbnQgaWNpLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MDQKKyM6IGdpdC1yZWJhc2Uuc2g6NDQ2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHVwc3RyZWFtICR1cHN0cmVhbV9uYW1lIgogbXNnc3RyICJpbnZhbGlkZSAkdXBzdHJlYW1fbmFtZSBlbiBhbW9udCIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MjgKKyM6IGdpdC1yZWJhc2Uuc2g6NDcwCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkb250b19uYW1lOiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSBtZXJnZSBiYXNlcyIKIG1zZ3N0ciAiJG9udG9fbmFtZSA6IGlsIHkgYSBwbHVzIGQndW5lIGJhc2UgZGUgZnVzaW9uIgogCi0jOiBnaXQtcmViYXNlLnNoOjQzMSBnaXQtcmViYXNlLnNoOjQzNQorIzogZ2l0LXJlYmFzZS5zaDo0NzMgZ2l0LXJlYmFzZS5zaDo0NzcKICMsIHNoLWZvcm1hdAogbXNnaWQgIiRvbnRvX25hbWU6IHRoZXJlIGlzIG5vIG1lcmdlIGJhc2UiCiBtc2dzdHIgIiRvbnRvX25hbWUgOiBpbCBuJ3kgYSBwYXMgZGUgYmFzZSBkZSBmdXNpb24iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDQwCisjOiBnaXQtcmViYXNlLnNoOjQ4MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiRG9lcyBub3QgcG9pbnQgdG8gYSB2YWxpZCBjb21taXQ6ICRvbnRvX25hbWUiCiBtc2dzdHIgIk5lIHBvaW50ZSBwYXMgc3VyIHVuZSB2YWxpZGF0aW9uIHZhbGlkZSA6ICRvbnRvX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDYzCisjOiBnaXQtcmViYXNlLnNoOjUwNQogIywgc2gtZm9ybWF0CiBtc2dpZCAiZmF0YWw6IG5vIHN1Y2ggYnJhbmNoOiAkYnJhbmNoX25hbWUiCiBtc2dzdHIgImZhdGFsIDogcGFzIGRlIGJyYW5jaGUgOiAkYnJhbmNoX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDgzCi1tc2dpZCAiUGxlYXNlIGNvbW1pdCBvciBzdGFzaCB0aGVtLiIKLW1zZ3N0ciAiTWVyY2kgZGUgbGVzIHZhbGlkZXIgb3UgZGUgbGVzIHJlbWlzZXIuIgorIzogZ2l0LXJlYmFzZS5zaDo1MjgKK21zZ2lkICJDYW5ub3QgYXV0b3N0YXNoIgorbXNnc3RyICJBdXRvcmVtaXNhZ2UgaW1wb3NzaWJsZSIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MDEKKyM6IGdpdC1yZWJhc2Uuc2g6NTMzCisjLCBzaC1mb3JtYXQKK21zZ2lkICJDcmVhdGVkIGF1dG9zdGFzaDogJHN0YXNoX2FiYnJldiIKK21zZ3N0ciAiQXV0b3JlbWlzYWdlIGNyw6nDqSA6ICRzdGFzaF9hYmJyZXYiCisKKyM6IGdpdC1yZWJhc2Uuc2g6NTM3Cittc2dpZCAiUGxlYXNlIGNvbW1pdCBvciBzdGFzaCB0aGVtLiIKK21zZ3N0ciAiVmV1aWxsZXogbGVzIHZhbGlkZXIgb3UgbGVzIHJlbWlzZXIuIgorCisjOiBnaXQtcmViYXNlLnNoOjU1NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3VycmVudCBicmFuY2ggJGJyYW5jaF9uYW1lIGlzIHVwIHRvIGRhdGUuIgogbXNnc3RyICJMYSBicmFuY2hlIGNvdXJhbnRlICRicmFuY2hfbmFtZSBlc3Qgw6Agam91ci4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTA0CisjOiBnaXQtcmViYXNlLnNoOjU2MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3VycmVudCBicmFuY2ggJGJyYW5jaF9uYW1lIGlzIHVwIHRvIGRhdGUsIHJlYmFzZSBmb3JjZWQuIgogbXNnc3RyICJMYSBicmFuY2hlIGNvdXJhbnRlICRicmFuY2hfbmFtZSBlc3Qgw6Agam91ciwgcmViYXNhZ2UgZm9yY8OpLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MTUKKyM6IGdpdC1yZWJhc2Uuc2g6NTcyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDaGFuZ2VzIGZyb20gJG1iIHRvICRvbnRvOiIKIG1zZ3N0ciAiQ2hhbmdlbWVudHMgZGUgJG1iIHN1ciAkb250byA6IgogCiAjLiBEZXRhY2ggSEVBRCBhbmQgcmVzZXQgdGhlIHRyZWUKLSM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjOiBnaXQtcmViYXNlLnNoOjU4MQogbXNnaWQgIkZpcnN0LCByZXdpbmRpbmcgaGVhZCB0byByZXBsYXkgeW91ciB3b3JrIG9uIHRvcCBvZiBpdC4uLiIKLW1zZ3N0ciAiUHJlbWnDqHJlbWVudCwgcmV0b3VyIGRlIGhlYWQgcG91ciByZWpvdWVyIHZvdHJlIHRyYXZhaWwgcGFyLWRlc3N1cy4uLiIKK21zZ3N0ciAiIgorIlByZW1pw6hyZW1lbnQsIHJlbWJvYmlub25zIGhlYWQgcG91ciByZWpvdWVyIHZvdHJlIHRyYXZhaWwgcGFyLWRlc3N1cy4uLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MzIKKyM6IGdpdC1yZWJhc2Uuc2g6NTkxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYXN0LWZvcndhcmRlZCAkYnJhbmNoX25hbWUgdG8gJG9udG9fbmFtZS4iCiBtc2dzdHIgIiRicmFuY2hfbmFtZSBtaXNlIMOgIGpvdXIgZW4gYXZhbmNlIHJhcGlkZSBzdXIgJG9udG9fbmFtZS4iCkBAIC05NDQ3LDYgKzEwNDkwLDExIEBACiBtc2dpZCAiQ2Fubm90IHJlY29yZCB3b3JraW5nIHRyZWUgc3RhdGUiCiBtc2dzdHIgIkltcG9zc2libGUgZCdlbnJlZ2lzdHJlciBsJ8OpdGF0IGRlIGxhIGNvcGllIGRlIHRyYXZhaWwiCiAKKyM6IGdpdC1zdGFzaC5zaDoxOTAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNhbm5vdCB1cGRhdGUgJHJlZl9zdGFzaCB3aXRoICR3X2NvbW1pdCIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBtZXR0cmUgw6Agam91ciAkcmVmX3N0YXNoIGF2ZWMgJHdfY29tbWl0IgorCiAjLiBUUkFOU0xBVE9SUzogJG9wdGlvbiBpcyBhbiBpbnZhbGlkIG9wdGlvbiwgbGlrZQogIy4gYC0tYmxhaC1ibGFoJy4gVGhlIDcgc3BhY2VzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlCiAjLiBzZWNvbmQgbGluZSBjb3JyZXNwb25kIHRvICJlcnJvcjogIi4gU28geW91IHNob3VsZCBsaW5lCkBAIC05NDU3LDcgKzEwNTA1LDcgQEAKICMuICQgZ2l0IHN0YXNoIHNhdmUgLS1ibGFoLWJsYWggMj4mMSB8IGhlYWQgLW4gMgogIy4gZXJyb3I6IHVua25vd24gb3B0aW9uIGZvciAnc3Rhc2ggc2F2ZSc6IC0tYmxhaC1ibGFoCiAjLiBUbyBwcm92aWRlIGEgbWVzc2FnZSwgdXNlIGdpdCBzdGFzaCBzYXZlIC0tICctLWJsYWgtYmxhaCcKLSM6IGdpdC1zdGFzaC5zaDoyMDIKKyM6IGdpdC1zdGFzaC5zaDoyMzcKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogJG9wdGlvblxuIgpAQCAtOTQ2NiwxMTkgKzEwNTE0LDEyOSBAQAogImVycmV1cjogb3B0aW9uIGluY29ubnVlIHBvdXIgJ3N0YXNoIHNhdmUnOiAkb3B0aW9uXG4iCiAiICAgICAgICBQb3VyIGZvdXJuaXIgdW4gbWVzc2FnZSwgdXRpbGlzZXogZ2l0IHN0YXNoIHNhdmUgLS0gJyRvcHRpb24nIgogCi0jOiBnaXQtc3Rhc2guc2g6MjIzCisjOiBnaXQtc3Rhc2guc2g6MjU4CiBtc2dpZCAiTm8gbG9jYWwgY2hhbmdlcyB0byBzYXZlIgotbXNnc3RyICJQYXMgZGUgY2hhbmdlbWVudHMgZW4gbG9jYWwgw6Agc2F1dmVyIgorbXNnc3RyICJQYXMgZGUgbW9kaWZpY2F0aW9ucyBsb2NhbGVzIMOgIHNhdXZlciIKIAotIzogZ2l0LXN0YXNoLnNoOjIyNworIzogZ2l0LXN0YXNoLnNoOjI2MgogbXNnaWQgIkNhbm5vdCBpbml0aWFsaXplIHN0YXNoIgogbXNnc3RyICJJbXBvc3NpYmxlIGQnaW5pdGlhbGlzZXIgbGUgcmVtaXNhZ2UiCiAKLSM6IGdpdC1zdGFzaC5zaDoyMzUKKyM6IGdpdC1zdGFzaC5zaDoyNjYKIG1zZ2lkICJDYW5ub3Qgc2F2ZSB0aGUgY3VycmVudCBzdGF0dXMiCiBtc2dzdHIgIkltcG9zc2libGUgZGUgc2F1dmVyIGxlIHN0YXR1dCBjb3VyYW50IgogCi0jOiBnaXQtc3Rhc2guc2g6MjUzCisjOiBnaXQtc3Rhc2guc2g6Mjg0CiBtc2dpZCAiQ2Fubm90IHJlbW92ZSB3b3JrdHJlZSBjaGFuZ2VzIgogbXNnc3RyICJJbXBvc3NpYmxlIGRlIHN1cHByaW1lciBsZXMgY2hhbmdlbWVudHMgZGUgbGEgY29waWUgZGUgdHJhdmFpbCIKIAotIzogZ2l0LXN0YXNoLnNoOjM1MgorIzogZ2l0LXN0YXNoLnNoOjM4MwogbXNnaWQgIk5vIHN0YXNoIGZvdW5kLiIKIG1zZ3N0ciAiUGFzIGRlIHJlbWlzYWdlIHRyb3V2w6kuIgogCi0jOiBnaXQtc3Rhc2guc2g6MzU5CisjOiBnaXQtc3Rhc2guc2g6MzkwCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJUb28gbWFueSByZXZpc2lvbnMgc3BlY2lmaWVkOiAkUkVWIgogbXNnc3RyICJUcm9wIGRlIHLDqXZpc2lvbnMgc3DDqWNpZmnDqWVzIDogJFJFViIKIAotIzogZ2l0LXN0YXNoLnNoOjM2NQorIzogZ2l0LXN0YXNoLnNoOjM5NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiJHJlZmVyZW5jZSBpcyBub3QgdmFsaWQgcmVmZXJlbmNlIgogbXNnc3RyICIkcmVmZXJlbmNlIG4nZXN0IHBhcyB1bmUgcsOpZsOpcmVuY2UgdmFsaWRlIgogCi0jOiBnaXQtc3Rhc2guc2g6MzkzCisjOiBnaXQtc3Rhc2guc2g6NDI0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoLWxpa2UgY29tbWl0IgogbXNnc3RyICInJGFyZ3MnIG4nZXN0IHBhcyB1bmUgdmFsaWRhdGlvbiBkZSB0eXBlIHJlbWlzYWdlIgogCi0jOiBnaXQtc3Rhc2guc2g6NDA0CisjOiBnaXQtc3Rhc2guc2g6NDM1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoIHJlZmVyZW5jZSIKIG1zZ3N0ciAiJyRhcmdzJyBuJ2VzdCBwYXMgdW5lIHLDqWbDqXJlbmNlIGRlIHJlbWlzYWdlIgogCi0jOiBnaXQtc3Rhc2guc2g6NDEyCisjOiBnaXQtc3Rhc2guc2g6NDQzCiBtc2dpZCAidW5hYmxlIHRvIHJlZnJlc2ggaW5kZXgiCiBtc2dzdHIgImltcG9zc2libGUgZGUgcmFmcmHDrmNoaXIgbCdpbmRleCIKIAotIzogZ2l0LXN0YXNoLnNoOjQxNgorIzogZ2l0LXN0YXNoLnNoOjQ0NwogbXNnaWQgIkNhbm5vdCBhcHBseSBhIHN0YXNoIGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZSIKLW1zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FwcGxpcXVlciB1biByZW1pc2FnZSBhdSBtaWxpZXUgZCd1bmUgZnVzaW9uIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYXBwbGlxdWVyIHVuIHJlbWlzYWdlIGVuIGNvdXJzIGRlIGZ1c2lvbiIKIAotIzogZ2l0LXN0YXNoLnNoOjQyNAorIzogZ2l0LXN0YXNoLnNoOjQ1NQogbXNnaWQgIkNvbmZsaWN0cyBpbiBpbmRleC4gVHJ5IHdpdGhvdXQgLS1pbmRleC4iCiBtc2dzdHIgIkNvbmZsaXRzIGRhbnMgbCdpbmRleC4gRXNzYXlleiBzYW5zIC0taW5kZXguIgogCi0jOiBnaXQtc3Rhc2guc2g6NDI2CisjOiBnaXQtc3Rhc2guc2g6NDU3CiBtc2dpZCAiQ291bGQgbm90IHNhdmUgaW5kZXggdHJlZSIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSBzYXV2ZXIgbCdhcmJyZSBkJ2luZGV4IgogCi0jOiBnaXQtc3Rhc2guc2g6NDYwCisjOiBnaXQtc3Rhc2guc2g6NDkxCiBtc2dpZCAiQ2Fubm90IHVuc3RhZ2UgbW9kaWZpZWQgZmlsZXMiCiBtc2dzdHIgIkltcG9zc2libGUgZGUgZMOpc2luZGV4ZXIgbGVzIGZpY2hpZXJzIG1vZGlmacOpcyIKIAotIzogZ2l0LXN0YXNoLnNoOjQ3NQorIzogZ2l0LXN0YXNoLnNoOjUwNgogbXNnaWQgIkluZGV4IHdhcyBub3QgdW5zdGFzaGVkLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJMJ2luZGV4IG4nYSBwYXMgw6l0w6kgc29ydGkgZGUgcmVtaXNlLiIKIAotIzogZ2l0LXN0YXNoLnNoOjQ5MgorIzogZ2l0LXN0YXNoLnNoOjUyMwogIywgc2gtZm9ybWF0CiBtc2dpZCAiRHJvcHBlZCAke1JFVn0gKCRzKSIKIG1zZ3N0ciAiJHtSRVZ9IHN1cHByaW3DqSAoJHMpIgogCi0jOiBnaXQtc3Rhc2guc2g6NDkzCisjOiBnaXQtc3Rhc2guc2g6NTI0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIke1JFVn06IENvdWxkIG5vdCBkcm9wIHN0YXNoIGVudHJ5IgotbXNnc3RyICIke1JFVn06IEltcG9zc2libGUgZGUgc3VwcHJpbWVyIGwnZW50csOpZSBkZSBzdGFzaCIKK21zZ3N0ciAiJHtSRVZ9OiBJbXBvc3NpYmxlIGRlIHN1cHByaW1lciBsJ8OpbMOpbWVudCBkZSBzdGFzaCIKIAotIzogZ2l0LXN0YXNoLnNoOjUwMAorIzogZ2l0LXN0YXNoLnNoOjUzMQogbXNnaWQgIk5vIGJyYW5jaCBuYW1lIHNwZWNpZmllZCIKIG1zZ3N0ciAiQXVjdW5lIGJyYW5jaGUgc3DDqWNpZmnDqWUiCiAKLSM6IGdpdC1zdGFzaC5zaDo1NzEKKyM6IGdpdC1zdGFzaC5zaDo2MDMKIG1zZ2lkICIoVG8gcmVzdG9yZSB0aGVtIHR5cGUgXCJnaXQgc3Rhc2ggYXBwbHlcIikiCiBtc2dzdHIgIihQb3VyIGxlcyByZXN0YXVyZXIgdGFwZXogXCJnaXQgc3Rhc2ggYXBwbHlcIikiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6OTUKICMsIHNoLWZvcm1hdAogbXNnaWQgImNhbm5vdCBzdHJpcCBvbmUgY29tcG9uZW50IG9mZiB1cmwgJyRyZW1vdGV1cmwnIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIHN1cHByaW1lciB1biBjb21wb3NhbnQgZGUgbCdVUkwgJyRyZW1vdGV1cmwnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjE5NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyMzcKICMsIHNoLWZvcm1hdAogbXNnaWQgIk5vIHN1Ym1vZHVsZSBtYXBwaW5nIGZvdW5kIGluIC5naXRtb2R1bGVzIGZvciBwYXRoICckc21fcGF0aCciCi1tc2dzdHIgIlBhcyBkZSBtYXBwYWdlIGR1IHNvdXMtbW9kdWxlIHRyb3V2w6kgZGFucyAuZ2l0bW9kdWxlcyBwb3VyIGxlIGNoZW1pbiAnJHNtX3BhdGgnIgorbXNnc3RyICIiCisiUGFzIGRlIG1pc2UgZW4gY29ycmVzcG9uZGFuY2UgZHUgc291cy1tb2R1bGUgdHJvdXbDqSBkYW5zIC5naXRtb2R1bGVzIHBvdXIgbGUgIgorImNoZW1pbiAnJHNtX3BhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjIzOQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyODEKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNsb25lIG9mICckdXJsJyBpbnRvIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCcgZmFpbGVkIgogbXNnc3RyICJMZSBjbG9uYWdlIGRlICckdXJsJyBkYW5zIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHNtX3BhdGgnIGEgw6ljaG91w6kiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MjUxCisjOiBnaXQtc3VibW9kdWxlLnNoOjI5MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiR2l0ZGlyICckYScgaXMgcGFydCBvZiB0aGUgc3VibW9kdWxlIHBhdGggJyRiJyBvciB2aWNlIHZlcnNhIgotbXNnc3RyICJMZSByw6lwZXJ0b2lyZSBHaXQgJyRhJyBmYWl0IHBhcnRpZSBkdSBjaGVtaW4gZGUgc291cy1tb2R1bGUgJyRiJyBvdSB2aWNlLXZlcnNhIgorbXNnc3RyICIiCisiTGUgcsOpcGVydG9pcmUgR2l0ICckYScgZmFpdCBwYXJ0aWUgZHUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICckYicgb3UgdmljZS0iCisidmVyc2EiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzQ5CisjOiBnaXQtc3VibW9kdWxlLnNoOjQwMworbXNnaWQgIlJlbGF0aXZlIHBhdGggY2FuIG9ubHkgYmUgdXNlZCBmcm9tIHRoZSB0b3BsZXZlbCBvZiB0aGUgd29ya2luZyB0cmVlIgorbXNnc3RyICIiCisiVW4gY2hlbWluIHJlbGF0aWYgbmUgcGV1dCDDqnRyZSB1dGlsaXPDqSBxdWUgZGVwdWlzIGxhIHJhY2luZSBkZSBsYSBjb3BpZSBkZSAiCisidHJhdmFpbCIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MTMKICMsIHNoLWZvcm1hdAogbXNnaWQgInJlcG8gVVJMOiAnJHJlcG8nIG11c3QgYmUgYWJzb2x1dGUgb3IgYmVnaW4gd2l0aCAuL3wuLi8iCiBtc2dzdHIgIkwnVVJMIGRlIGTDqXDDtHQgJyRyZXBvJyBkb2l0IMOqdHJlIGFic29sdSBvdSBjb21tZW5jZXIgcGFyIC4vfC4uLyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNjYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDMwCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJHNtX3BhdGgnIGFscmVhZHkgZXhpc3RzIGluIHRoZSBpbmRleCIKIG1zZ3N0ciAiJyRzbV9wYXRoJyBleGlzdGUgZMOpasOgIGRhbnMgbCdpbmRleCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNzAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDM0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGZvbGxvd2luZyBwYXRoIGlzIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKQEAgLTk1ODksMjM1ICsxMDY0NywyODYgQEAKICIkc21fcGF0aFxuIgogIlV0aWxpc2V6IC1mIHNpIHZvdXMgdm91bGV6IHZyYWltZW50IGwnYWpvdXRlci4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Mzg4CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ1MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQWRkaW5nIGV4aXN0aW5nIHJlcG8gYXQgJyRzbV9wYXRoJyB0byB0aGUgaW5kZXgiCiBtc2dzdHIgIkFqb3V0IGR1IGTDqXDDtHQgZXhpc3RhbnQgw6AgJyRzbV9wYXRoJyBkYW5zIGwnaW5kZXgiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzkwCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ1NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRzbV9wYXRoJyBhbHJlYWR5IGV4aXN0cyBhbmQgaXMgbm90IGEgdmFsaWQgZ2l0IHJlcG8iCiBtc2dzdHIgIickc21fcGF0aCcgZXhpc3RlIGTDqWrDoCBldCBuJ2VzdCBwYXMgdW4gZMOpcMO0dCBnaXQgdmFsaWRlIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM5OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkEgZ2l0IGRpcmVjdG9yeSBmb3IgJyRzbV9uYW1lJyBpcyBmb3VuZCBsb2NhbGx5IHdpdGggcmVtb3RlKHMpOiIKLW1zZ3N0ciAiVW4gcsOpcGVydG9pcmUgZ2l0IHBvdXIgJyRzbV9uYW1lJyBlc3QgdHJvdXbDqSBlbiBsb2NhbCBhdmVjIGxlKHMpIHNlcnZldXIocykgZGlzdGFudChzKSA6IgorbXNnc3RyICIiCisiVW4gcsOpcGVydG9pcmUgZ2l0IHBvdXIgJyRzbV9uYW1lJyBlc3QgdHJvdXbDqSBlbiBsb2NhbCBhdmVjIGxlKHMpIHNlcnZldXIocykgIgorImRpc3RhbnQocykgOiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiSWYgeW91IHdhbnQgdG8gcmV1c2UgdGhpcyBsb2NhbCBnaXQgZGlyZWN0b3J5IGluc3RlYWQgb2YgY2xvbmluZyBhZ2FpbiBmcm9tIgotbXNnc3RyICJTaSB2b3VzIHZvdWxleiByw6l1dGlsaXNlciBjZSByw6lwZXJ0b2lyZSBnaXQgbG9jYWwgYXUgbGlldSBkZSBjbG9uZXIgw6Agbm91dmVhdSBkZXB1aXMiCittc2dzdHIgIiIKKyJTaSB2b3VzIHZvdWxleiByw6l1dGlsaXNlciBjZSByw6lwZXJ0b2lyZSBnaXQgbG9jYWwgYXUgbGlldSBkZSBjbG9uZXIgw6AgIgorIm5vdXZlYXUgZGVwdWlzIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQwMgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjYKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJ1c2UgdGhlICctLWZvcmNlJyBvcHRpb24uIElmIHRoZSBsb2NhbCBnaXQgZGlyZWN0b3J5IGlzIG5vdCB0aGUgY29ycmVjdCByZXBvIgotbXNnc3RyICJ1dGlsaXNleiBsJ29wdGlvbiAnLS1mb3JjZScuIFNpIGxlIHLDqXBlcnRvaXJlIGxvY2FsIGdpdCBuJ2VzdCBwYXMgbGUgZMOpcMO0dCBjb3JyZWN0IgorbXNnc3RyICIiCisidXRpbGlzZXogbCdvcHRpb24gJy0tZm9yY2UnLiBTaSBsZSByw6lwZXJ0b2lyZSBsb2NhbCBnaXQgbidlc3QgcGFzIGxlIGTDqXDDtHQgIgorImNvcnJlY3QiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAzCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIm9yIHlvdSBhcmUgdW5zdXJlIHdoYXQgdGhpcyBtZWFucyBjaG9vc2UgYW5vdGhlciBuYW1lIHdpdGggdGhlICctLW5hbWUnICIKICJvcHRpb24uIgotbXNnc3RyICJvdSB2b3VzIG5lIHNhdmV6IHBhcyBjZSBxdWUgY2VsYSBzaWduaWZpZSBkZSBjaG9pc2lyIHVuIGF1dHJlIG5vbSBhdmVjIGwnb3B0aW9uICctLW5hbWUnLiIKK21zZ3N0ciAiIgorIm91IHZvdXMgbmUgc2F2ZXogcGFzIGNlIHF1ZSBjZWxhIHNpZ25pZmllIGRlIGNob2lzaXIgdW4gYXV0cmUgbm9tIGF2ZWMgIgorImwnb3B0aW9uICctLW5hbWUnLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDUKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJSZWFjdGl2YXRpbmcgbG9jYWwgZ2l0IGRpcmVjdG9yeSBmb3Igc3VibW9kdWxlICckc21fbmFtZScuIgogbXNnc3RyICJSw6lhY3RpdmF0aW9uIGR1IHLDqXBlcnRvaXJlIGdpdCBsb2NhbCBwb3VyIGxlIHNvdXMtbW9kdWxlICckc21fbmFtZScuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQxNworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODEKICMsIHNoLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkJ2V4dHJhaXJlIGxlIHNvdXMtbW9kdWxlICckc21fcGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDIyCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ4NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIGFkZCBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKIG1zZ3N0ciAiw4ljaGVjIGQnYWpvdXQgZHUgc291cy1tb2R1bGUgJyRzbV9wYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MzEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDk1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgc3VibW9kdWxlICckc21fcGF0aCciCiBtc2dzdHIgIsOJY2hlYyBkJ2VucmVnaXN0cmVtZW50IGR1IHNvdXMtbW9kdWxlICckc21fcGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDc0CisjOiBnaXQtc3VibW9kdWxlLnNoOjUzOQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiRW50ZXJpbmcgJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIkVudHLDqWUgZGFucyAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRkaXNwbGF5cGF0aCciCittc2dzdHIgIkVudHLDqWUgZGFucyAnJHByZWZpeCRkaXNwbGF5cGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDg4CisjOiBnaXQtc3VibW9kdWxlLnNoOjU1NAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3RvcHBpbmcgYXQgJyRzbV9wYXRoJzsgc2NyaXB0IHJldHVybmVkIG5vbi16ZXJvIHN0YXR1cy4iCi1tc2dzdHIgIkFycsOqdCBzdXIgJyRzbV9wYXRoJyA7IGxlIHNjcmlwdCBhIHJldG91cm7DqSB1biBzdGF0dXQgbm9uIG51bC4iCittc2dpZCAiU3RvcHBpbmcgYXQgJyRwcmVmaXgkZGlzcGxheXBhdGgnOyBzY3JpcHQgcmV0dXJuZWQgbm9uLXplcm8gc3RhdHVzLiIKK21zZ3N0ciAiIgorIkFycsOqdCBzdXIgJyRwcmVmaXgkZGlzcGxheXBhdGgnIDsgbGUgc2NyaXB0IGEgcmV0b3VybsOpIHVuIHN0YXR1dCBub24gbnVsLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1MzIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjAwCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJObyB1cmwgZm91bmQgZm9yIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCcgaW4gLmdpdG1vZHVsZXMiCi1tc2dzdHIgIlVSTCBub24gdHJvdXbDqSBwb3VyIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHNtX3BhdGgnIGRhbnMgLmdpdG1vZHVsZXMiCittc2dpZCAiTm8gdXJsIGZvdW5kIGZvciBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyBpbiAuZ2l0bW9kdWxlcyIKK21zZ3N0ciAiIgorIlVSTCBub24gdHJvdXbDqSBwb3VyIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJGRpc3BsYXlwYXRoJyBkYW5zIC5naXRtb2R1bGVzIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU0MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cmwgZm9yIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCi1tc2dzdHIgIsOJY2hlYyBkJ2VucmVnaXN0cmVtZW50IGRlIGwnVVJMIHBvdXIgbGUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICckc21fcGF0aCciCittc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVybCBmb3Igc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIiIKKyLDiWNoZWMgZCdlbnJlZ2lzdHJlbWVudCBkZSBsJ1VSTCBwb3VyIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJGRpc3BsYXlwYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjExCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgcmVnaXN0ZXJlZCBmb3IgcGF0aCAnJHNtX3BhdGgnIgotbXNnc3RyICJTb3VzLW1vZHVsZSAnJG5hbWUnICgkdXJsKSBlbnJlZ2lzdHLDqSBwb3VyIGxlIGNoZW1pbiAnJHNtX3BhdGgnIgorbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSByZWdpc3RlcmVkIGZvciBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJTb3VzLW1vZHVsZSAnJG5hbWUnICgkdXJsKSBlbnJlZ2lzdHLDqSBwb3VyIGxlIGNoZW1pbiAnJGRpc3BsYXlwYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NTEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjE5CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXBkYXRlIG1vZGUgZm9yIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCi1tc2dzdHIgIsOJY2hlYyBkJ2VucmVnaXN0cmVtZW50IGR1IG1vZGUgZGUgbWlzZSDDoCBqb3VyIHBvdXIgbGUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICckc21fcGF0aCciCittc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVwZGF0ZSBtb2RlIGZvciBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiIgorIsOJY2hlYyBkJ2VucmVnaXN0cmVtZW50IGR1IG1vZGUgZGUgbWlzZSDDoCBqb3VyIHBvdXIgbGUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICIKKyInJGRpc3BsYXlwYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1ODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjU2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJVc2UgJy4nIGlmIHlvdSByZWFsbHkgd2FudCB0byBkZWluaXRpYWxpemUgYWxsIHN1Ym1vZHVsZXMiCi1tc2dzdHIgIlV0aWxpc2V6ICcuJyBzaSB2b3VzIHZvdWxleiB2cmFpbWVudCByw6lpbml0aWFsaXNlciB0b3VzIGxlcyBzb3VzLW1vZHVsZXMiCittc2dzdHIgIiIKKyJVdGlsaXNleiAnLicgc2kgdm91cyB2b3VsZXogdnJhaW1lbnQgcsOpaW5pdGlhbGlzZXIgdG91cyBsZXMgc291cy1tb2R1bGVzIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYwMworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2NzMKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyBjb250YWlucyBhIC5naXQgZGlyZWN0b3J5IgotbXNnc3RyICJMYSBjb3BpZSBkZSB0cmF2YWlsIGR1IHNvdXMtbW9kdWxlICckc21fcGF0aCcgY29udGllbnQgdW4gcsOpcGVydG9pcmUgLmdpdCIKK21zZ2lkICJTdWJtb2R1bGUgd29yayB0cmVlICckZGlzcGxheXBhdGgnIGNvbnRhaW5zIGEgLmdpdCBkaXJlY3RvcnkiCittc2dzdHIgIiIKKyJMYSBjb3BpZSBkZSB0cmF2YWlsIGR1IHNvdXMtbW9kdWxlICckZGlzcGxheXBhdGgnIGNvbnRpZW50IHVuIHLDqXBlcnRvaXJlIC5naXQiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjA0CisjOiBnaXQtc3VibW9kdWxlLnNoOjY3NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIih1c2UgJ3JtIC1yZicgaWYgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSBpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIKLW1zZ3N0ciAiKHV0aWxpc2V6ICdybSAtcmYnIHNpIHZvdXMgdm91bGV6IHZyYWltZW50IGxlIHN1cHByaW1lciBlbiBpbmNsdWFudCB0b3V0IHNvbiBoaXN0b3JpcXVlKSIKK21zZ3N0ciAiIgorIih1dGlsaXNleiAncm0gLXJmJyBzaSB2b3VzIHZvdWxleiB2cmFpbWVudCBsZSBzdXBwcmltZXIgZW4gaW5jbHVhbnQgdG91dCBzb24gIgorImhpc3RvcmlxdWUpIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxMAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODAKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKLSJTdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCcgY29udGFpbnMgbG9jYWwgbW9kaWZpY2F0aW9uczsgdXNlICctZicgdG8gIgorIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRkaXNwbGF5cGF0aCcgY29udGFpbnMgbG9jYWwgbW9kaWZpY2F0aW9uczsgdXNlICctZicgdG8gIgogImRpc2NhcmQgdGhlbSIKLW1zZ3N0ciAiTGEgY29waWUgZGUgdHJhdmFpbCBkdSBzb3VzLW1vZHVsZSAnJHNtX3BhdGgnIGNvbnRpZW50IGRlcyBtb2RpZmljYXRpb25zIGxvY2FsZXM7IHV0aWxpc2V6ICctZicgcG91ciBsZXMgYW5udWxlciIKK21zZ3N0ciAiIgorIkxhIGNvcGllIGRlIHRyYXZhaWwgZHUgc291cy1tb2R1bGUgJyRkaXNwbGF5cGF0aCcgY29udGllbnQgZGVzIG1vZGlmaWNhdGlvbnMgIgorImxvY2FsZXMgOyB1dGlsaXNleiAnLWYnIHBvdXIgbGVzIGFubnVsZXIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjEzCisjOiBnaXQtc3VibW9kdWxlLnNoOjY4MwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ2xlYXJlZCBkaXJlY3RvcnkgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiUsOpcGVydG9pcmUgJyRzbV9wYXRoJyBuZXR0b3nDqSIKK21zZ2lkICJDbGVhcmVkIGRpcmVjdG9yeSAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiUsOpcGVydG9pcmUgJyRkaXNwbGF5cGF0aCcgbmV0dG95w6kiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjE0CisjOiBnaXQtc3VibW9kdWxlLnNoOjY4NAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IHJlbW92ZSBzdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCciCi1tc2dzdHIgIkltcG9zc2libGUgZGUgc3VwcHJpbWVyIGxhIGNvcGllIGRlIHRyYXZhaWwgZHUgc291cy1tb2R1bGUgJyRzbV9wYXRoJyIKK21zZ2lkICJDb3VsZCBub3QgcmVtb3ZlIHN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIiIKKyJJbXBvc3NpYmxlIGRlIHN1cHByaW1lciBsYSBjb3BpZSBkZSB0cmF2YWlsIGR1IHNvdXMtbW9kdWxlICckZGlzcGxheXBhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxNworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODcKICMsIHNoLWZvcm1hdAotbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZW1wdHkgc3VibW9kdWxlIGRpcmVjdG9yeSAnJHNtX3BhdGgnIgotbXNnc3RyICJJbXBvc3NpYmxlIGRlIGNyw6llciBsZSByw6lwZXJ0b2lyZSB2aWRlIGR1IHNvdXMtbW9kdWxlICckc21fcGF0aCciCittc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBlbXB0eSBzdWJtb2R1bGUgZGlyZWN0b3J5ICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGNyw6llciBsZSByw6lwZXJ0b2lyZSB2aWRlIGR1IHNvdXMtbW9kdWxlICckZGlzcGxheXBhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYyNgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2OTYKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSB1bnJlZ2lzdGVyZWQgZm9yIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAiTGUgc291cy1tb2R1bGUgJyRuYW1lJyAoJHVybCkgbidlc3QgcGFzIGVucmVnaXN0csOpIHBvdXIgbGUgY2hlbWluICckc21fcGF0aCciCittc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHVucmVnaXN0ZXJlZCBmb3IgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiIgorIkxlIHNvdXMtbW9kdWxlICckbmFtZScgKCR1cmwpIG4nZXN0IHBhcyBlbnJlZ2lzdHLDqSBwb3VyIGxlIGNoZW1pbiAiCisiJyRkaXNwbGF5cGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzMxCisjOiBnaXQtc3VibW9kdWxlLnNoOjgxMQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIG5vdCBpbml0aWFsaXplZFxuIgorIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIG5vdCBpbml0aWFsaXplZFxuIgogIk1heWJlIHlvdSB3YW50IHRvIHVzZSAndXBkYXRlIC0taW5pdCc/IgogbXNnc3RyICIiCi0iQ2hlbWluIGRlIHNvdXMtbW9kdWxlICckcHJlZml4JHNtX3BhdGgnIG5vbiBpbml0aWFsaXPDqVxuIgorIkNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJGRpc3BsYXlwYXRoJyBub24gaW5pdGlhbGlzw6lcbiIKICJQZXV0LcOqdHJlIHNvdWhhaXRlei12b3VzIHV0aWxpc2VyICd1cGRhdGUgLS1pbml0JyA/IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc0NAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MjQKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBmaW5kIGN1cnJlbnQgcmV2aXNpb24gaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIkltcG9zc2libGUgZGUgdHJvdXZlciBsYSByw6l2aXNpb24gY291cmFudGUgZGFucyBsZSBjaGVtaW4gZGUgc291cy1tb2R1bGUgJyRwcmVmaXgkc21fcGF0aCciCittc2dpZCAiVW5hYmxlIHRvIGZpbmQgY3VycmVudCByZXZpc2lvbiBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiIgorIkltcG9zc2libGUgZGUgdHJvdXZlciBsYSByw6l2aXNpb24gY291cmFudGUgZGFucyBsZSBjaGVtaW4gZGUgc291cy1tb2R1bGUgIgorIickZGlzcGxheXBhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc1MworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgogbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJhcGF0cmllciBkYW5zIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHNtX3BhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc3NworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NTcKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiSW1wb3NzaWJsZSBkZSByYXBhdHJpZXIgZGFucyBsZSBjaGVtaW4gZGUgc291cy1tb2R1bGUgJyRwcmVmaXgkc21fcGF0aCciCittc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJhcGF0cmllciBkYW5zIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJGRpc3BsYXlwYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODcxCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gcmViYXNlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIkltcG9zc2libGUgZGUgcmViYXNlciAnJHNoYTEnIGRhbnMgbGUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICckcHJlZml4JHNtX3BhdGgnIgorbXNnaWQgIlVuYWJsZSB0byByZWJhc2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiIgorIkltcG9zc2libGUgZGUgcmViYXNlciAnJHNoYTEnIGRhbnMgbGUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICckZGlzcGxheXBhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5MgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzIKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiByZWJhc2VkIGludG8gJyRzaGExJyIKLW1zZ3N0ciAiQ2hlbWluIGRlIHNvdXMtbW9kdWxlICckcHJlZml4JHNtX3BhdGgnIDogcmViYXPDqSBkYW5zICckc2hhMSciCittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IHJlYmFzZWQgaW50byAnJHNoYTEnIgorbXNnc3RyICJDaGVtaW4gZGUgc291cy1tb2R1bGUgJyRkaXNwbGF5cGF0aCcgOiByZWJhc8OpIGRhbnMgJyRzaGExJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODc3CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gbWVyZ2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiSW1wb3NzaWJsZSBkZSBmdXNpb25uZXIgJyRzaGExJyBkYW5zIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJVbmFibGUgdG8gbWVyZ2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiIgorIkltcG9zc2libGUgZGUgZnVzaW9ubmVyICckc2hhMScgZGFucyBsZSBjaGVtaW4gZGUgc291cy1tb2R1bGUgJyRkaXNwbGF5cGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzk4CisjOiBnaXQtc3VibW9kdWxlLnNoOjg3OAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCc6IG1lcmdlZCBpbiAnJHNoYTEnIgotbXNnc3RyICJDaGVtaW4gZGUgc291cy1tb2R1bGUgJyRwcmVmaXgkc21fcGF0aCcgOiBmdXNpb25uw6kgZGFucyAnJHNoYTEnIgorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnOiBtZXJnZWQgaW4gJyRzaGExJyIKK21zZ3N0ciAiQ2hlbWluIGRlIHNvdXMtbW9kdWxlICckZGlzcGxheXBhdGgnIDogZnVzaW9ubsOpIGRhbnMgJyRzaGExJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODgzCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiSW1wb3NzaWJsZSBkJ2V4dHJhaXJlICckc2hhMScgZGFucyBsZSBjaGVtaW4gZGUgc291cy1tb2R1bGUgJyRwcmVmaXgkc21fcGF0aCciCittc2dpZCAiIgorIkV4ZWN1dGlvbiBvZiAnJGNvbW1hbmQgJHNoYTEnIGZhaWxlZCBpbiBzdWJtb2R1bGUgIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCittc2dzdHIgIiIKKyJMJ2V4w6ljdXRpb24gZGUgJyRjb21tYW5kICRzaGExJyBhIMOpY2hvdcOpIGRhbnMgbGUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICIKKyInJHByZWZpeCRzbV9wYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODg0CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogY2hlY2tlZCBvdXQgJyRzaGExJyIKLW1zZ3N0ciAiQ2hlbWluIGRlIHNvdXMtbW9kdWxlICckcHJlZml4JHNtX3BhdGgnIDogJyRzaGExJyBleHRyYWl0IgorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiAnJGNvbW1hbmQgJHNoYTEnIgorbXNnc3RyICJDaGVtaW4gZGUgc291cy1tb2R1bGUgJyRwcmVmaXgkc21fcGF0aCcgOiAnJGNvbW1hbmQgJHNoYTEnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjgzMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4ODkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIsOJY2hlYyBkZSBwYXJjb3VycyBkYW5zIGxlIGNoZW1pbiBkdSBzb3VzLW1vZHVsZSAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiIgorIkltcG9zc2libGUgZCdleHRyYWlyZSAnJHNoYTEnIGRhbnMgbGUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICckZGlzcGxheXBhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjkzOQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4OTAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnOiBjaGVja2VkIG91dCAnJHNoYTEnIgorbXNnc3RyICJDaGVtaW4gZGUgc291cy1tb2R1bGUgJyRkaXNwbGF5cGF0aCcgOiAnJHNoYTEnIGV4dHJhaXQiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6OTE3CisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICLDiWNoZWMgZGUgcGFyY291cnMgZGFucyBsZSBjaGVtaW4gZHUgc291cy1tb2R1bGUgJyRkaXNwbGF5cGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTAyNQogbXNnaWQgIlRoZSAtLWNhY2hlZCBvcHRpb24gY2Fubm90IGJlIHVzZWQgd2l0aCB0aGUgLS1maWxlcyBvcHRpb24iCiBtc2dzdHIgIkwnb3B0aW9uIC0tY2FjaGVkIG5lIHBldXQgcGFzIMOqdHJlIHV0aWxpc8OpZSBhdmVjIGwnb3B0aW9uIC0tZmlsZXMiCiAKICMuIHVuZXhwZWN0ZWQgdHlwZQotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5NzkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA3MwogIywgc2gtZm9ybWF0CiBtc2dpZCAidW5leHBlY3RlZCBtb2RlICRtb2RfZHN0IgogbXNnc3RyICJtb2RlICRtb2RfZHN0IGluYXR0ZW5kdSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5OTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5MwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX3NyYyIKLW1zZ3N0ciAiICBBdHRlbnRpb24gOiAkbmFtZSBuZSBjb250aWVudCBwYXMgbGEgdmFsaWRhdGlvbiAkc2hhMV9zcmMiCittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfc3JjIgorbXNnc3RyICIgIEF0dGVudGlvbiA6ICRkaXNwbGF5X25hbWUgbmUgY29udGllbnQgcGFzIGxhIHZhbGlkYXRpb24gJHNoYTFfc3JjIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMDAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5NgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX2RzdCIKLW1zZ3N0ciAiICBBdHRlbnRpb24gOiAkbmFtZSBuZSBjb250aWVudCBwYXMgbGEgdmFsaWRhdGlvbiAkc2hhMV9kc3QiCittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfZHN0IgorbXNnc3RyICIgIEF0dGVudGlvbiA6ICRkaXNwbGF5X25hbWUgbmUgY29udGllbnQgcGFzIGxhIHZhbGlkYXRpb24gJHNoYTFfZHN0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5OQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0cyAkc2hhMV9zcmMgYW5kICRzaGExX2RzdCIKLW1zZ3N0ciAiICBBdHRlbnRpb24gOiAkbmFtZSBuZSBjb250aWVudCBwYXMgbGVzIHZhbGlkYXRpb25zICRzaGExX3NyYyBldCAkc2hhMV9kc3QiCittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgorbXNnc3RyICIiCisiICBBdHRlbnRpb24gOiAkZGlzcGxheV9uYW1lIG5lIGNvbnRpZW50IHBhcyBsZXMgdmFsaWRhdGlvbnMgJHNoYTFfc3JjIGV0ICIKKyIkc2hhMV9kc3QiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTAyOAorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTI0CiBtc2dpZCAiYmxvYiIKIG1zZ3N0ciAiYmxvYiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2Ci1tc2dpZCAiU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiCi1tc2dzdHIgIlNvdXMtbW9kdWxlcyBtb2RpZmnDqXMgbWFpcyBub24gbWlzIMOgIGpvdXIgOiIKLQotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY4Ci1tc2dpZCAiU3VibW9kdWxlIGNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOiIKLW1zZ3N0ciAiQ2hhbmdlbWVudHMgZHUgc291cy1tb2R1bGUgw6AgdmFsaWRlciA6IgotCi0jOiBnaXQtc3VibW9kdWxlLnNoOjExNTMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTIzOAogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgogbXNnc3RyICLDiWNoZWMgZGUgcGFyY291cnMgZGFucyBsZSBjaGVtaW4gZHUgc291cy1tb2R1bGUgJyRzbV9wYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjE2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEzMDIKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIlN5bmNocm9uaXNhdGlvbiBkZSBsJ1VSTCBzb3VzLW1vZHVsZSBwb3VyICckcHJlZml4JHNtX3BhdGgnIgorbXNnaWQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIlN5bmNocm9uaXNhdGlvbiBkZSBsJ1VSTCBzb3VzLW1vZHVsZSBwb3VyICckZGlzcGxheXBhdGgnIgorCisjfiBtc2dpZCAiaW5wdXQgcGF0aHMgYXJlIHRlcm1pbmF0ZWQgYnkgYSBudWxsIGNoYXJhY3RlciIKKyN+IG1zZ3N0ciAibGVzIGNoZW1pbnMgZW4gZW50csOpZSBzb250IHRlcm1pbsOpcyBwYXIgbGUgY2FyYWN0w6hyZSBudWwiCisKKyN+IG1zZ2lkICJkb25lXG4iCisjfiBtc2dzdHIgImZhaXRcbiIKKworI34gbXNnaWQgIiIKKyN+ICJUaGUgZm9sbG93aW5nIHVudHJhY2tlZCBmaWxlcyB3b3VsZCBOT1QgYmUgc2F2ZWQgYnV0IG5lZWQgdG8gYmUgcmVtb3ZlZCAiCisjfiAiYnkgc3Rhc2ggc2F2ZToiCisjfiBtc2dzdHIgIiIKKyN+ICJMZXMgZmljaGllcnMgc3VpdmFudHMgbm9uIHN1aXZpcyBuZSBzZXJvbnQgUEFTIHNhdXbDqXMgbWFpcyBkb2l2ZW50IMOqdHJlICIKKyN+ICJzdXBwcmltw6lzIHBhciBsZSByZW1pc2FnZSA6IgorCisjfiBtc2dpZCAiIgorI34gIkFib3J0aW5nLiBDb25zaWRlciB1c2luZyBlaXRoZXIgdGhlIC0tZm9yY2Ugb3IgLS1pbmNsdWRlLXVudHJhY2tlZCBvcHRpb24uIgorI34gbXNnc3RyICJBYmFuZG9uLiBVdGlsaXNleiBsJ29wdGlvbiAtLWZvcmNlIG91IC0taW5jbHVkZS11bnRyYWNrZWQuIgpkaWZmIC0tZ2l0IGEvcG8vZ2l0LnBvdCBiL3BvL2dpdC5wb3QKaW5kZXggY2YxZTQ0Ni4uNThhZjAxYSAxMDA2NDQKLS0tIGEvcG8vZ2l0LnBvdAorKysgYi9wby9naXQucG90CkBAIC04LDcgKzgsNyBAQAogbXNnc3RyICIiCiAiUHJvamVjdC1JZC1WZXJzaW9uOiBQQUNLQUdFIFZFUlNJT05cbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogR2l0IE1haWxpbmcgTGlzdCA8Z2l0QHZnZXIua2VybmVsLm9yZz5cbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0wOC0wNiAxNDoxMCswODAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMTEtMDIgMDg6MDYrMDgwMFxuIgogIlBPLVJldmlzaW9uLURhdGU6IFlFQVItTU8tREEgSE86TUkrWk9ORVxuIgogIkxhc3QtVHJhbnNsYXRvcjogRlVMTCBOQU1FIDxFTUFJTEBBRERSRVNTPlxuIgogIkxhbmd1YWdlLVRlYW06IExBTkdVQUdFIDxMTEBsaS5vcmc+XG4iCkBAIC01Miw3MSArNTIsNzYgQEAKIG1zZ2lkICJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8cmVwbz4gWy0tZXhlYyA8Y21kPl0gLS1saXN0IgogbXNnc3RyICIiCiAKLSM6IGFyY2hpdmUuYzozMjMKKyM6IGFyY2hpdmUuYzoyNDIgYnVpbHRpbi9hZGQuYzoyNDAgYnVpbHRpbi9hZGQuYzo1NTYgYnVpbHRpbi9ybS5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgorbXNnc3RyICIiCisKKyM6IGFyY2hpdmUuYzozMjcKIG1zZ2lkICJmbXQiCiBtc2dzdHIgIiIKIAotIzogYXJjaGl2ZS5jOjMyMworIzogYXJjaGl2ZS5jOjMyNwogbXNnaWQgImFyY2hpdmUgZm9ybWF0IgogbXNnc3RyICIiCiAKLSM6IGFyY2hpdmUuYzozMjQgYnVpbHRpbi9sb2cuYzoxMTczCisjOiBhcmNoaXZlLmM6MzI4IGJ1aWx0aW4vbG9nLmM6MTE5MwogbXNnaWQgInByZWZpeCIKIG1zZ3N0ciAiIgogCi0jOiBhcmNoaXZlLmM6MzI1CisjOiBhcmNoaXZlLmM6MzI5CiBtc2dpZCAicHJlcGVuZCBwcmVmaXggdG8gZWFjaCBwYXRobmFtZSBpbiB0aGUgYXJjaGl2ZSIKIG1zZ3N0ciAiIgogCi0jOiBhcmNoaXZlLmM6MzI2IGJ1aWx0aW4vYXJjaGl2ZS5jOjg4IGJ1aWx0aW4vYmxhbWUuYzoyMjkyCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5MyBidWlsdGluL2NvbmZpZy5jOjU2IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzMKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzUgYnVpbHRpbi9ncmVwLmM6NzE0IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NwotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NiBidWlsdGluL2xzLWZpbGVzLmM6NDk5IGJ1aWx0aW4vbm90ZXMuYzo0MDgKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NjUgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDggcGFyc2Utb3B0aW9ucy5oOjE1MgorIzogYXJjaGl2ZS5jOjMzMCBidWlsdGluL2FyY2hpdmUuYzo4OCBidWlsdGluL2JsYW1lLmM6MjI2NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjUgYnVpbHRpbi9jb25maWcuYzo1OCBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgwCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgyIGJ1aWx0aW4vZ3JlcC5jOjcxNiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODYgYnVpbHRpbi9scy1maWxlcy5jOjQ4OSBidWlsdGluL25vdGVzLmM6NDA4CisjOiBidWlsdGluL25vdGVzLmM6NTY1IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA4IHBhcnNlLW9wdGlvbnMuaDoxNTQKIG1zZ2lkICJmaWxlIgogbXNnc3RyICIiCiAKLSM6IGFyY2hpdmUuYzozMjcgYnVpbHRpbi9hcmNoaXZlLmM6ODkKKyM6IGFyY2hpdmUuYzozMzEgYnVpbHRpbi9hcmNoaXZlLmM6ODkKIG1zZ2lkICJ3cml0ZSB0aGUgYXJjaGl2ZSB0byB0aGlzIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYXJjaGl2ZS5jOjMyOQorIzogYXJjaGl2ZS5jOjMzMwogbXNnaWQgInJlYWQgLmdpdGF0dHJpYnV0ZXMgaW4gd29ya2luZyBkaXJlY3RvcnkiCiBtc2dzdHIgIiIKIAotIzogYXJjaGl2ZS5jOjMzMAorIzogYXJjaGl2ZS5jOjMzNAogbXNnaWQgInJlcG9ydCBhcmNoaXZlZCBmaWxlcyBvbiBzdGRlcnIiCiBtc2dzdHIgIiIKIAotIzogYXJjaGl2ZS5jOjMzMQorIzogYXJjaGl2ZS5jOjMzNQogbXNnaWQgInN0b3JlIG9ubHkiCiBtc2dzdHIgIiIKIAotIzogYXJjaGl2ZS5jOjMzMgorIzogYXJjaGl2ZS5jOjMzNgogbXNnaWQgImNvbXByZXNzIGZhc3RlciIKIG1zZ3N0ciAiIgogCi0jOiBhcmNoaXZlLmM6MzQwCisjOiBhcmNoaXZlLmM6MzQ0CiBtc2dpZCAiY29tcHJlc3MgYmV0dGVyIgogbXNnc3RyICIiCiAKLSM6IGFyY2hpdmUuYzozNDMKKyM6IGFyY2hpdmUuYzozNDcKIG1zZ2lkICJsaXN0IHN1cHBvcnRlZCBhcmNoaXZlIGZvcm1hdHMiCiBtc2dzdHIgIiIKIAotIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODUKKyM6IGFyY2hpdmUuYzozNDkgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg0CiBtc2dpZCAicmVwbyIKIG1zZ3N0ciAiIgogCi0jOiBhcmNoaXZlLmM6MzQ2IGJ1aWx0aW4vYXJjaGl2ZS5jOjkxCisjOiBhcmNoaXZlLmM6MzUwIGJ1aWx0aW4vYXJjaGl2ZS5jOjkxCiBtc2dpZCAicmV0cmlldmUgdGhlIGFyY2hpdmUgZnJvbSByZW1vdGUgcmVwb3NpdG9yeSA8cmVwbz4iCiBtc2dzdHIgIiIKIAotIzogYXJjaGl2ZS5jOjM0NyBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NDg3CisjOiBhcmNoaXZlLmM6MzUxIGJ1aWx0aW4vYXJjaGl2ZS5jOjkyIGJ1aWx0aW4vbm90ZXMuYzo0ODcKIG1zZ2lkICJjb21tYW5kIgogbXNnc3RyICIiCiAKLSM6IGFyY2hpdmUuYzozNDggYnVpbHRpbi9hcmNoaXZlLmM6OTMKKyM6IGFyY2hpdmUuYzozNTIgYnVpbHRpbi9hcmNoaXZlLmM6OTMKIG1zZ2lkICJwYXRoIHRvIHRoZSByZW1vdGUgZ2l0LXVwbG9hZC1hcmNoaXZlIGNvbW1hbmQiCiBtc2dzdHIgIiIKIApAQCAtMTk1LDE3ICsyMDAsMTcgQEAKIG1zZ2lkICJDYW5ub3QgZm9yY2UgdXBkYXRlIHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIiIKIAotIzogYnJhbmNoLmM6MjE2CisjOiBicmFuY2guYzoyMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHNldHVwIHRyYWNraW5nIGluZm9ybWF0aW9uOyBzdGFydGluZyBwb2ludCAnJXMnIGlzIG5vdCBhIGJyYW5jaC4iCiBtc2dzdHIgIiIKIAotIzogYnJhbmNoLmM6MjE4CisjOiBicmFuY2guYzoyMTcKICMsIGMtZm9ybWF0CiBtc2dpZCAidGhlIHJlcXVlc3RlZCB1cHN0cmVhbSBicmFuY2ggJyVzJyBkb2VzIG5vdCBleGlzdCIKIG1zZ3N0ciAiIgogCi0jOiBicmFuY2guYzoyMjAKKyM6IGJyYW5jaC5jOjIxOQogbXNnaWQgIiIKICJcbiIKICJJZiB5b3UgYXJlIHBsYW5uaW5nIG9uIGJhc2luZyB5b3VyIHdvcmsgb24gYW4gdXBzdHJlYW1cbiIKQEAgLTIxNywyNiArMjIyLDI2IEBACiAiXCJnaXQgcHVzaCAtdVwiIHRvIHNldCB0aGUgdXBzdHJlYW0gY29uZmlnIGFzIHlvdSBwdXNoLiIKIG1zZ3N0ciAiIgogCi0jOiBicmFuY2guYzoyNjUKKyM6IGJyYW5jaC5jOjI2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYSB2YWxpZCBvYmplY3QgbmFtZTogJyVzJy4iCiBtc2dzdHIgIiIKIAotIzogYnJhbmNoLmM6Mjg1CisjOiBicmFuY2guYzoyODQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQW1iaWd1b3VzIG9iamVjdCBuYW1lOiAnJXMnLiIKIG1zZ3N0ciAiIgogCi0jOiBicmFuY2guYzoyOTAKKyM6IGJyYW5jaC5jOjI4OQogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYSB2YWxpZCBicmFuY2ggcG9pbnQ6ICclcycuIgogbXNnc3RyICIiCiAKLSM6IGJyYW5jaC5jOjI5NgorIzogYnJhbmNoLmM6Mjk1CiBtc2dpZCAiRmFpbGVkIHRvIGxvY2sgcmVmIGZvciB1cGRhdGUiCiBtc2dzdHIgIiIKIAotIzogYnJhbmNoLmM6MzE0CisjOiBicmFuY2guYzozMTMKIG1zZ2lkICJGYWlsZWQgdG8gd3JpdGUgcmVmIgogbXNnc3RyICIiCiAKQEAgLTI1MCw3ICsyNTUsNyBAQAogbXNnaWQgInVucmVjb2duaXplZCBoZWFkZXI6ICVzJXMgKCVkKSIKIG1zZ3N0ciAiIgogCi0jOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjY5NworIzogYnVuZGxlLmM6ODkgYnVpbHRpbi9jb21taXQuYzo3MDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyIKIG1zZ3N0ciAiIgpAQCAtMjU5LDkgKzI2NCw5IEBACiBtc2dpZCAiUmVwb3NpdG9yeSBsYWNrcyB0aGVzZSBwcmVyZXF1aXNpdGUgY29tbWl0czoiCiBtc2dzdHIgIiIKIAotIzogYnVuZGxlLmM6MTY0IHNlcXVlbmNlci5jOjY2MSBzZXF1ZW5jZXIuYzoxMTExIGJ1aWx0aW4vbG9nLmM6MzMxCi0jOiBidWlsdGluL2xvZy5jOjgwMSBidWlsdGluL2xvZy5jOjEzOTkgYnVpbHRpbi9sb2cuYzoxNjI1IGJ1aWx0aW4vbWVyZ2UuYzozNjQKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxNTYKKyM6IGJ1bmRsZS5jOjE2NCBzZXF1ZW5jZXIuYzo2NjIgc2VxdWVuY2VyLmM6MTExMiBidWlsdGluL2xvZy5jOjMzMgorIzogYnVpbHRpbi9sb2cuYzo4MjEgYnVpbHRpbi9sb2cuYzoxNDE4IGJ1aWx0aW4vbG9nLmM6MTY0NCBidWlsdGluL21lcmdlLmM6MzY0CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MTU4CiBtc2dpZCAicmV2aXNpb24gd2FsayBzZXR1cCBmYWlsZWQiCiBtc2dzdHIgIiIKIApAQCAtMjg3LDcgKzI5Miw3IEBACiBtc2dpZCAicmV2LWxpc3QgZGllZCIKIG1zZ3N0ciAiIgogCi0jOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMzEwIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNTkKKyM6IGJ1bmRsZS5jOjMwMCBidWlsdGluL2xvZy5jOjEzMjkgYnVpbHRpbi9zaG9ydGxvZy5jOjI2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnJlY29nbml6ZWQgYXJndW1lbnQ6ICVzIgogbXNnc3RyICIiCkBAIC00MzUsMTQgKzQ0MCwxNCBAQAogIiVzIgogbXNnc3RyICIiCiAKLSM6IGRpZmYuYzozNDg3CisjOiBkaWZmLmM6MzQ5MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiRmFpbGVkIHRvIHBhcnNlIC0tZGlyc3RhdC8tWCBvcHRpb24gcGFyYW1ldGVyOlxuIgogIiVzIgogbXNnc3RyICIiCiAKLSM6IGRpZmYuYzozNTAxCisjOiBkaWZmLmM6MzUwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcGFyc2UgLS1zdWJtb2R1bGUgb3B0aW9uIHBhcmFtZXRlcjogJyVzJyIKIG1zZ3N0ciAiIgpAQCAtNDY5LDE3ICs0NzQsMTcgQEAKIG1zZ2lkICJmYWlsZWQgd3JpdGluZyBkZXRhY2hlZCBzaWduYXR1cmUgdG8gJyVzJzogJXMiCiBtc2dzdHIgIiIKIAotIzogZ3JlcC5jOjE2MjMKKyM6IGdyZXAuYzoxNjk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcyc6IHVuYWJsZSB0byByZWFkICVzIgogbXNnc3RyICIiCiAKLSM6IGdyZXAuYzoxNjQwCisjOiBncmVwLmM6MTcxMgogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBncmVwLmM6MTY1MQorIzogZ3JlcC5jOjE3MjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJzogc2hvcnQgcmVhZCAlcyIKIG1zZ3N0ciAiIgpAQCAtNTQ0LDggKzU0OSw4IEBACiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGhlIGNhY2hlIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLmM6MTEwIGJ1aWx0aW4vY2hlY2tvdXQuYzozNjUgYnVpbHRpbi9jaGVja291dC5jOjU2NgotIzogYnVpbHRpbi9jbG9uZS5jOjY1NgorIzogbWVyZ2UuYzoxMTAgYnVpbHRpbi9jaGVja291dC5jOjM1OCBidWlsdGluL2NoZWNrb3V0LmM6NTU5CisjOiBidWlsdGluL2Nsb25lLmM6NjU1CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICIiCiAKQEAgLTU5NCw3ICs1OTksNyBAQAogbXNnaWQgImJsb2IgZXhwZWN0ZWQgZm9yICVzICclcyciCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzc0IGJ1aWx0aW4vY2xvbmUuYzozMTIKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc3NCBidWlsdGluL2Nsb25lLmM6MzExCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBvcGVuICclcyciCiBtc2dzdHIgIiIKQEAgLTcyMSw3ICs3MjYsNyBAQAogbXNnaWQgIkF1dG8tbWVyZ2luZyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM0IGdpdC1zdWJtb2R1bGUuc2g6MTExOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNCBnaXQtc3VibW9kdWxlLnNoOjExMjUKIG1zZ2lkICJzdWJtb2R1bGUiCiBtc2dzdHIgIiIKIApAQCAtODE2LDU4ICs4MjEsMTIxIEBACiBtc2dpZCAiQmFkICVzIHZhbHVlOiAnJXMnIgogbXNnc3RyICIiCiAKLSM6IG9iamVjdC5jOjIwNAorIzogb2JqZWN0LmM6MjAyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBwYXJzZSBvYmplY3Q6ICVzIgogbXNnc3RyICIiCiAKLSM6IHBhcnNlLW9wdGlvbnMuYzo0ODkKKyM6IHBhcnNlLW9wdGlvbnMuYzo1MzcKIG1zZ2lkICIuLi4iCiBtc2dzdHIgIiIKIAotIzogcGFyc2Utb3B0aW9ucy5jOjUwNworIzogcGFyc2Utb3B0aW9ucy5jOjU1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2FnZTogJXMiCiBtc2dzdHIgIiIKIAogIy4gVFJBTlNMQVRPUlM6IHRoZSBjb2xvbiBoZXJlIHNob3VsZCBhbGlnbiB3aXRoIHRoZQogIy4gb25lIGluICJ1c2FnZTogJXMiIHRyYW5zbGF0aW9uCi0jOiBwYXJzZS1vcHRpb25zLmM6NTExCisjOiBwYXJzZS1vcHRpb25zLmM6NTU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgIG9yOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBwYXJzZS1vcHRpb25zLmM6NTE0CisjOiBwYXJzZS1vcHRpb25zLmM6NTYyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICAlcyIKIG1zZ3N0ciAiIgogCi0jOiBwYXJzZS1vcHRpb25zLmM6NTQ4CisjOiBwYXJzZS1vcHRpb25zLmM6NTk2CiBtc2dpZCAiLU5VTSIKIG1zZ3N0ciAiIgogCi0jOiBwYXRoc3BlYy5jOjgzCi0jLCBjLWZvcm1hdAotbXNnaWQgIlBhdGggJyVzJyBpcyBpbiBzdWJtb2R1bGUgJyUuKnMnIgorIzogcGF0aHNwZWMuYzoxMTgKK21zZ2lkICJnbG9iYWwgJ2dsb2InIGFuZCAnbm9nbG9iJyBwYXRoc3BlYyBzZXR0aW5ncyBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICIiCiAKLSM6IHBhdGhzcGVjLmM6OTkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiJyVzJyBpcyBiZXlvbmQgYSBzeW1ib2xpYyBsaW5rIgorIzogcGF0aHNwZWMuYzoxMjgKK21zZ2lkICIiCisiZ2xvYmFsICdsaXRlcmFsJyBwYXRoc3BlYyBzZXR0aW5nIGlzIGluY29tcGF0aWJsZSB3aXRoIGFsbCBvdGhlciBnbG9iYWwgIgorInBhdGhzcGVjIHNldHRpbmdzIgogbXNnc3RyICIiCiAKLSM6IHJlbW90ZS5jOjE3ODgKKyM6IHBhdGhzcGVjLmM6MTU4Cittc2dpZCAiaW52YWxpZCBwYXJhbWV0ZXIgZm9yIHBhdGhzcGVjIG1hZ2ljICdwcmVmaXgnIgorbXNnc3RyICIiCisKKyM6IHBhdGhzcGVjLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgcGF0aHNwZWMgbWFnaWMgJyUuKnMnIGluICclcyciCittc2dzdHIgIiIKKworIzogcGF0aHNwZWMuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWlzc2luZyAnKScgYXQgdGhlIGVuZCBvZiBwYXRoc3BlYyBtYWdpYyBpbiAnJXMnIgorbXNnc3RyICIiCisKKyM6IHBhdGhzcGVjLmM6MTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuaW1wbGVtZW50ZWQgcGF0aHNwZWMgbWFnaWMgJyVjJyBpbiAnJXMnIgorbXNnc3RyICIiCisKKyM6IHBhdGhzcGVjLmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnbGl0ZXJhbCcgYW5kICdnbG9iJyBhcmUgaW5jb21wYXRpYmxlIgorbXNnc3RyICIiCisKKyM6IHBhdGhzcGVjLmM6MjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJXMnIGlzIG91dHNpZGUgcmVwb3NpdG9yeSIKK21zZ3N0ciAiIgorCisjOiBwYXRoc3BlYy5jOjI3OAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXRoc3BlYyAnJXMnIGlzIGluIHN1Ym1vZHVsZSAnJS4qcyciCittc2dzdHIgIiIKKworIy4KKyMuICogV2UgbWF5IHdhbnQgdG8gc3Vic3RpdHV0ZSAidGhpcyBjb21tYW5kIiB3aXRoIGEgY29tbWFuZAorIy4gKiBuYW1lLiBFLmcuIHdoZW4gYWRkLS1pbnRlcmFjdGl2ZSBkaWVzIHdoZW4gcnVubmluZworIy4gKiAiY2hlY2tvdXQgLXAiCisjLgorIzogcGF0aHNwZWMuYzozNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHBhdGhzcGVjIG1hZ2ljIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBjb21tYW5kOiAlcyIKK21zZ3N0ciAiIgorCisjOiBwYXRoc3BlYy5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoc3BlYyAnJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCittc2dzdHIgIiIKKworIzogcmVtb3RlLmM6MTgzMworIywgYy1mb3JtYXQKK21zZ2lkICJZb3VyIGJyYW5jaCBpcyBiYXNlZCBvbiAnJXMnLCBidXQgdGhlIHVwc3RyZWFtIGlzIGdvbmUuXG4iCittc2dzdHIgIiIKKworIzogcmVtb3RlLmM6MTgzNworbXNnaWQgIiAgKHVzZSBcImdpdCBicmFuY2ggLS11bnNldC11cHN0cmVhbVwiIHRvIGZpeHVwKVxuIgorbXNnc3RyICIiCisKKyM6IHJlbW90ZS5jOjE4NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91ciBicmFuY2ggaXMgdXAtdG8tZGF0ZSB3aXRoICclcycuXG4iCittc2dzdHIgIiIKKworIzogcmVtb3RlLmM6MTg0NAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdC5cbiIKIG1zZ2lkX3BsdXJhbCAiWW91ciBicmFuY2ggaXMgYWhlYWQgb2YgJyVzJyBieSAlZCBjb21taXRzLlxuIgogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogcmVtb3RlLmM6MTc5NAorIzogcmVtb3RlLmM6MTg1MAogbXNnaWQgIiAgKHVzZSBcImdpdCBwdXNoXCIgdG8gcHVibGlzaCB5b3VyIGxvY2FsIGNvbW1pdHMpXG4iCiBtc2dzdHIgIiIKIAotIzogcmVtb3RlLmM6MTc5NworIzogcmVtb3RlLmM6MTg1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3VyIGJyYW5jaCBpcyBiZWhpbmQgJyVzJyBieSAlZCBjb21taXQsIGFuZCBjYW4gYmUgZmFzdC1mb3J3YXJkZWQuXG4iCiBtc2dpZF9wbHVyYWwgIiIKQEAgLTg3NSwxMSArOTQzLDExIEBACiBtc2dzdHJbMF0gIiIKIG1zZ3N0clsxXSAiIgogCi0jOiByZW1vdGUuYzoxODA1CisjOiByZW1vdGUuYzoxODYxCiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1bGxcIiB0byB1cGRhdGUgeW91ciBsb2NhbCBicmFuY2gpXG4iCiBtc2dzdHIgIiIKIAotIzogcmVtb3RlLmM6MTgwOAorIzogcmVtb3RlLmM6MTg2NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91ciBicmFuY2ggYW5kICclcycgaGF2ZSBkaXZlcmdlZCxcbiIKQEAgLTg5MCw3ICs5NTgsNyBAQAogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogcmVtb3RlLmM6MTgxOAorIzogcmVtb3RlLmM6MTg3NAogbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gbWVyZ2UgdGhlIHJlbW90ZSBicmFuY2ggaW50byB5b3VycylcbiIKIG1zZ3N0ciAiIgogCkBAIC05MjgsNyArOTk2LDcgQEAKICJhbmQgY29tbWl0IHRoZSByZXN1bHQgd2l0aCAnZ2l0IGNvbW1pdCciCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6MjQ1IHNlcXVlbmNlci5jOjg2OSBzZXF1ZW5jZXIuYzo5NTIKKyM6IHNlcXVlbmNlci5jOjI0NSBzZXF1ZW5jZXIuYzo4NzAgc2VxdWVuY2VyLmM6OTUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSB0byAlcyIKIG1zZ3N0ciAiIgpAQCAtOTUxLDE5NyArMTAxOSwxOTcgQEAKIG1zZ3N0ciAiIgogCiAjLiBUUkFOU0xBVE9SUzogJXMgd2lsbCBiZSAicmV2ZXJ0IiBvciAiY2hlcnJ5LXBpY2siCi0jOiBzZXF1ZW5jZXIuYzozMjQKKyM6IHNlcXVlbmNlci5jOjMyNQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjM1NQorIzogc2VxdWVuY2VyLmM6MzU2CiBtc2dpZCAiQ291bGQgbm90IHJlc29sdmUgSEVBRCBjb21taXRcbiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzozNzcKKyM6IHNlcXVlbmNlci5jOjM3OAogbXNnaWQgIlVuYWJsZSB0byB1cGRhdGUgY2FjaGUgdHJlZVxuIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjQyMgorIzogc2VxdWVuY2VyLmM6NDIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBjb21taXQgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo0MjcKKyM6IHNlcXVlbmNlci5jOjQyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgcGFyZW50IGNvbW1pdCAlc1xuIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjQ5MworIzogc2VxdWVuY2VyLmM6NDk0CiBtc2dpZCAiWW91ciBpbmRleCBmaWxlIGlzIHVubWVyZ2VkLiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo1MTIKKyM6IHNlcXVlbmNlci5jOjUxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaXMgYSBtZXJnZSBidXQgbm8gLW0gb3B0aW9uIHdhcyBnaXZlbi4iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NTIwCisjOiBzZXF1ZW5jZXIuYzo1MjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGRvZXMgbm90IGhhdmUgcGFyZW50ICVkIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjUyNAorIzogc2VxdWVuY2VyLmM6NTI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1haW5saW5lIHdhcyBzcGVjaWZpZWQgYnV0IGNvbW1pdCAlcyBpcyBub3QgYSBtZXJnZS4iCiBtc2dzdHIgIiIKIAogIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyB3aWxsIGJlICJyZXZlcnQiIG9yCiAjLiAiY2hlcnJ5LXBpY2siLCB0aGUgc2Vjb25kICVzIGEgU0hBMQotIzogc2VxdWVuY2VyLmM6NTM3CisjOiBzZXF1ZW5jZXIuYzo1MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbm5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjU0MQorIzogc2VxdWVuY2VyLmM6NTQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBnZXQgY29tbWl0IG1lc3NhZ2UgZm9yICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjYyNworIzogc2VxdWVuY2VyLmM6NjI4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZXZlcnQgJXMuLi4gJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NjI4CisjOiBzZXF1ZW5jZXIuYzo2MjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGFwcGx5ICVzLi4uICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjY2NAorIzogc2VxdWVuY2VyLmM6NjY1CiBtc2dpZCAiZW1wdHkgY29tbWl0IHNldCBwYXNzZWQiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NjcyCisjOiBzZXF1ZW5jZXIuYzo2NzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0ICVzOiBmYWlsZWQgdG8gcmVhZCB0aGUgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6Njc3CisjOiBzZXF1ZW5jZXIuYzo2NzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0ICVzOiBmYWlsZWQgdG8gcmVmcmVzaCB0aGUgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NzM1CisjOiBzZXF1ZW5jZXIuYzo3MzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90ICVzIGR1cmluZyBhICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjc1NworIzogc2VxdWVuY2VyLmM6NzU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBsaW5lICVkLiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo3NjIKKyM6IHNlcXVlbmNlci5jOjc2MwogbXNnaWQgIk5vIGNvbW1pdHMgcGFyc2VkLiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo3NzUKKyM6IHNlcXVlbmNlci5jOjc3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgb3BlbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo3NzkKKyM6IHNlcXVlbmNlci5jOjc4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCAlcy4iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6Nzg2CisjOiBzZXF1ZW5jZXIuYzo3ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW51c2FibGUgaW5zdHJ1Y3Rpb24gc2hlZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjgxNAorIzogc2VxdWVuY2VyLmM6ODE1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQga2V5OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo4MTcKKyM6IHNlcXVlbmNlci5jOjgxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6ODI5CisjOiBzZXF1ZW5jZXIuYzo4MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFsZm9ybWVkIG9wdGlvbnMgc2hlZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjg1MAorIzogc2VxdWVuY2VyLmM6ODUxCiBtc2dpZCAiYSBjaGVycnktcGljayBvciByZXZlcnQgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo4NTEKKyM6IHNlcXVlbmNlci5jOjg1MgogbXNnaWQgInRyeSBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZSB8IC0tcXVpdCB8IC0tYWJvcnQpXCIiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6ODU1CisjOiBzZXF1ZW5jZXIuYzo4NTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBzZXF1ZW5jZXIgZGlyZWN0b3J5ICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjg3MSBzZXF1ZW5jZXIuYzo5NTYKKyM6IHNlcXVlbmNlci5jOjg3MiBzZXF1ZW5jZXIuYzo5NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRXJyb3Igd3JhcHBpbmcgdXAgJXMuIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjg5MCBzZXF1ZW5jZXIuYzoxMDI0CisjOiBzZXF1ZW5jZXIuYzo4OTEgc2VxdWVuY2VyLmM6MTAyNQogbXNnaWQgIm5vIGNoZXJyeS1waWNrIG9yIHJldmVydCBpbiBwcm9ncmVzcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo4OTIKKyM6IHNlcXVlbmNlci5jOjg5MwogbXNnaWQgImNhbm5vdCByZXNvbHZlIEhFQUQiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6ODk0CisjOiBzZXF1ZW5jZXIuYzo4OTUKIG1zZ2lkICJjYW5ub3QgYWJvcnQgZnJvbSBhIGJyYW5jaCB5ZXQgdG8gYmUgYm9ybiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo5MTYgYnVpbHRpbi9hcHBseS5jOjQwNjEKKyM6IHNlcXVlbmNlci5jOjkxNyBidWlsdGluL2FwcGx5LmM6NDA2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6OTE5CisjOiBzZXF1ZW5jZXIuYzo5MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjkyMAorIzogc2VxdWVuY2VyLmM6OTIxCiBtc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo5MjYKKyM6IHNlcXVlbmNlci5jOjkyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJzdG9yZWQgcHJlLWNoZXJyeS1waWNrIEhFQUQgZmlsZSAnJXMnIGlzIGNvcnJ1cHQiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6OTQ5CisjOiBzZXF1ZW5jZXIuYzo5NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZvcm1hdCAlcy4iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6MTA5MgorIzogc2VxdWVuY2VyLmM6MTA5MwogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2FuJ3QgY2hlcnJ5LXBpY2sgYSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzoxMDk1CisjOiBzZXF1ZW5jZXIuYzoxMDk2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBiYWQgcmV2aXNpb24iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6MTEyOQorIzogc2VxdWVuY2VyLmM6MTEzMAogbXNnaWQgIkNhbid0IHJldmVydCBhcyBpbml0aWFsIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzoxMTMwCisjOiBzZXF1ZW5jZXIuYzoxMTMxCiBtc2dpZCAiQ2FuJ3QgY2hlcnJ5LXBpY2sgaW50byBlbXB0eSBoZWFkIgogbXNnc3RyICIiCiAKQEAgLTExNTgsMzYwICsxMjI2LDQ1MyBAQAogInJ1bm5pbmcgXCJnaXQgY29uZmlnIGFkdmljZS5vYmplY3ROYW1lV2FybmluZyBmYWxzZVwiIgogbXNnc3RyICIiCiAKLSM6IHNoYTFfbmFtZS5jOjEwOTcKKyM6IHNoYTFfbmFtZS5jOjExMTIKIG1zZ2lkICJIRUFEIGRvZXMgbm90IHBvaW50IHRvIGEgYnJhbmNoIgogbXNnc3RyICIiCiAKLSM6IHNoYTFfbmFtZS5jOjExMDAKKyM6IHNoYTFfbmFtZS5jOjExMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gc3VjaCBicmFuY2g6ICclcyciCiBtc2dzdHIgIiIKIAotIzogc2hhMV9uYW1lLmM6MTEwMgorIzogc2hhMV9uYW1lLmM6MTExNwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyB1cHN0cmVhbSBjb25maWd1cmVkIGZvciBicmFuY2ggJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBzaGExX25hbWUuYzoxMTA2CisjOiBzaGExX25hbWUuYzoxMTIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVwc3RyZWFtIGJyYW5jaCAnJXMnIG5vdCBzdG9yZWQgYXMgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIgogbXNnc3RyICIiCiAKLSM6IHdyYXBwZXIuYzo0MDgKKyM6IHN1Ym1vZHVsZS5jOjY0IHN1Ym1vZHVsZS5jOjk4Cittc2dpZCAiQ2Fubm90IGNoYW5nZSB1bm1lcmdlZCAuZ2l0bW9kdWxlcywgcmVzb2x2ZSBtZXJnZSBjb25mbGljdHMgZmlyc3QiCittc2dzdHIgIiIKKworIzogc3VibW9kdWxlLmM6Njggc3VibW9kdWxlLmM6MTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBmaW5kIHNlY3Rpb24gaW4gLmdpdG1vZHVsZXMgd2hlcmUgcGF0aD0lcyIKK21zZ3N0ciAiIgorCisjLiBNYXliZSB0aGUgdXNlciBhbHJlYWR5IGRpZCB0aGF0LCBkb24ndCBlcnJvciBvdXQgaGVyZQorIzogc3VibW9kdWxlLmM6NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHVwZGF0ZSAuZ2l0bW9kdWxlcyBlbnRyeSAlcyIKK21zZ3N0ciAiIgorCisjLiBNYXliZSB0aGUgdXNlciBhbHJlYWR5IGRpZCB0aGF0LCBkb24ndCBlcnJvciBvdXQgaGVyZQorIzogc3VibW9kdWxlLmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgLmdpdG1vZHVsZXMgZW50cnkgZm9yICVzIgorbXNnc3RyICIiCisKKyM6IHN1Ym1vZHVsZS5jOjEyNworbXNnaWQgImNvdWxkIG5vdCBmaW5kIC5naXRtb2R1bGVzIGluIGluZGV4IgorbXNnc3RyICIiCisKKyM6IHN1Ym1vZHVsZS5jOjEzMworbXNnaWQgInJlYWRpbmcgdXBkYXRlZCAuZ2l0bW9kdWxlcyBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3VibW9kdWxlLmM6MTM1Cittc2dpZCAidW5hYmxlIHRvIHN0YXQgdXBkYXRlZCAuZ2l0bW9kdWxlcyIKK21zZ3N0ciAiIgorCisjOiBzdWJtb2R1bGUuYzoxMzkKK21zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlIC5naXRtb2R1bGVzIGZyb20gaW5kZXgiCittc2dzdHIgIiIKKworIzogc3VibW9kdWxlLmM6MTQxCittc2dpZCAiYWRkaW5nIHVwZGF0ZWQgLmdpdG1vZHVsZXMgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN1Ym1vZHVsZS5jOjE0MworbXNnaWQgInN0YWdpbmcgdXBkYXRlZCAuZ2l0bW9kdWxlcyBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3VibW9kdWxlLmM6MTE0NCBidWlsdGluL2luaXQtZGIuYzozNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBnaXQgbGluayAlcyIKK21zZ3N0ciAiIgorCisjOiBzdWJtb2R1bGUuYzoxMTU1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBzZXQgY29yZS53b3JrdHJlZSBpbiAlcyIKK21zZ3N0ciAiIgorCisjOiB1cmxtYXRjaC5jOjEyMAorbXNnaWQgImludmFsaWQgVVJMIHNjaGVtZSBuYW1lIG9yIG1pc3NpbmcgJzovLycgc3VmZml4IgorbXNnc3RyICIiCisKKyM6IHVybG1hdGNoLmM6MTQ0IHVybG1hdGNoLmM6Mjk3IHVybG1hdGNoLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgJVhYIGVzY2FwZSBzZXF1ZW5jZSIKK21zZ3N0ciAiIgorCisjOiB1cmxtYXRjaC5jOjE3MgorbXNnaWQgIm1pc3NpbmcgaG9zdCBhbmQgc2NoZW1lIGlzIG5vdCAnZmlsZTonIgorbXNnc3RyICIiCisKKyM6IHVybG1hdGNoLmM6MTg5Cittc2dpZCAiYSAnZmlsZTonIFVSTCBtYXkgbm90IGhhdmUgYSBwb3J0IG51bWJlciIKK21zZ3N0ciAiIgorCisjOiB1cmxtYXRjaC5jOjE5OQorbXNnaWQgImludmFsaWQgY2hhcmFjdGVycyBpbiBob3N0IG5hbWUiCittc2dzdHIgIiIKKworIzogdXJsbWF0Y2guYzoyNDQgdXJsbWF0Y2guYzoyNTUKK21zZ2lkICJpbnZhbGlkIHBvcnQgbnVtYmVyIgorbXNnc3RyICIiCisKKyM6IHVybG1hdGNoLmM6MzIyCittc2dpZCAiaW52YWxpZCAnLi4nIHBhdGggc2VnbWVudCIKK21zZ3N0ciAiIgorCisjOiB3cmFwcGVyLmM6NDIyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJzogJXMiCiBtc2dzdHIgIiIKIAotIzogd3JhcHBlci5jOjQyOQorIzogd3JhcHBlci5jOjQ0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyciCiBtc2dzdHIgIiIKIAotIzogd3JhcHBlci5jOjQ0MAorIzogd3JhcHBlci5jOjQ1NAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gbG9vayB1cCBjdXJyZW50IHVzZXIgaW4gdGhlIHBhc3N3ZCBmaWxlOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3cmFwcGVyLmM6NDQxCisjOiB3cmFwcGVyLmM6NDU1CiBtc2dpZCAibm8gc3VjaCB1c2VyIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MQorIzogd3Qtc3RhdHVzLmM6MTQ2CiBtc2dpZCAiVW5tZXJnZWQgcGF0aHM6IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE2OCB3dC1zdGF0dXMuYzoxOTUKKyM6IHd0LXN0YXR1cy5jOjE3MyB3dC1zdGF0dXMuYzoyMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlc2V0ICVzIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE3MCB3dC1zdGF0dXMuYzoxOTcKKyM6IHd0LXN0YXR1cy5jOjE3NSB3dC1zdGF0dXMuYzoyMDIKIG1zZ2lkICIgICh1c2UgXCJnaXQgcm0gLS1jYWNoZWQgPGZpbGU+Li4uXCIgdG8gdW5zdGFnZSkiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTc0CisjOiB3dC1zdGF0dXMuYzoxNzkKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTc2IHd0LXN0YXR1cy5jOjE4MAorIzogd3Qtc3RhdHVzLmM6MTgxIHd0LXN0YXR1cy5jOjE4NQogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxNzgKKyM6IHd0LXN0YXR1cy5jOjE4MwogbXNnaWQgIiAgKHVzZSBcImdpdCBybSA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE4OQorIzogd3Qtc3RhdHVzLmM6MTk0CiBtc2dpZCAiQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjIwNworIzogd3Qtc3RhdHVzLmM6MjEyCiBtc2dpZCAiQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjIxMQorIzogd3Qtc3RhdHVzLmM6MjE2CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjEzCisjOiB3dC1zdGF0dXMuYzoyMTgKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyMTQKKyM6IHd0LXN0YXR1cy5jOjIxOQogbXNnaWQgIiIKICIgICh1c2UgXCJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uXCIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyMTYKKyM6IHd0LXN0YXR1cy5jOjIyMQogbXNnaWQgIiAgKGNvbW1pdCBvciBkaXNjYXJkIHRoZSB1bnRyYWNrZWQgb3IgbW9kaWZpZWQgY29udGVudCBpbiBzdWJtb2R1bGVzKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyMjgKKyM6IHd0LXN0YXR1cy5jOjIzMwogIywgYy1mb3JtYXQKIG1zZ2lkICIgICh1c2UgXCJnaXQgJXMgPGZpbGU+Li4uXCIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyNDUKKyM6IHd0LXN0YXR1cy5jOjI1MAogbXNnaWQgImJ1ZyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyNTAKKyM6IHd0LXN0YXR1cy5jOjI1NQogbXNnaWQgImJvdGggZGVsZXRlZDoiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjUxCisjOiB3dC1zdGF0dXMuYzoyNTYKIG1zZ2lkICJhZGRlZCBieSB1czoiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjUyCisjOiB3dC1zdGF0dXMuYzoyNTcKIG1zZ2lkICJkZWxldGVkIGJ5IHRoZW06IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MworIzogd3Qtc3RhdHVzLmM6MjU4CiBtc2dpZCAiYWRkZWQgYnkgdGhlbToiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjU0CisjOiB3dC1zdGF0dXMuYzoyNTkKIG1zZ2lkICJkZWxldGVkIGJ5IHVzOiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyNTUKKyM6IHd0LXN0YXR1cy5jOjI2MAogbXNnaWQgImJvdGggYWRkZWQ6IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjI1NgorIzogd3Qtc3RhdHVzLmM6MjYxCiBtc2dpZCAiYm90aCBtb2RpZmllZDoiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6Mjg2CisjOiB3dC1zdGF0dXMuYzoyOTEKIG1zZ2lkICJuZXcgY29tbWl0cywgIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjI4OAorIzogd3Qtc3RhdHVzLmM6MjkzCiBtc2dpZCAibW9kaWZpZWQgY29udGVudCwgIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjI5MAorIzogd3Qtc3RhdHVzLmM6Mjk1CiBtc2dpZCAidW50cmFja2VkIGNvbnRlbnQsICIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMDcKKyM6IHd0LXN0YXR1cy5jOjMxMgogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXcgZmlsZTogICAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMTAKKyM6IHd0LXN0YXR1cy5jOjMxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3BpZWQ6ICAgICAlcyAtPiAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMTMKKyM6IHd0LXN0YXR1cy5jOjMxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJkZWxldGVkOiAgICAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMTYKKyM6IHd0LXN0YXR1cy5jOjMyMQogIywgYy1mb3JtYXQKIG1zZ2lkICJtb2RpZmllZDogICAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMTkKKyM6IHd0LXN0YXR1cy5jOjMyNAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW5hbWVkOiAgICAlcyAtPiAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMjIKKyM6IHd0LXN0YXR1cy5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0eXBlY2hhbmdlOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMjUKKyM6IHd0LXN0YXR1cy5jOjMzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duOiAgICAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMjgKKyM6IHd0LXN0YXR1cy5jOjMzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bm1lcmdlZDogICAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMzEKKyM6IHd0LXN0YXR1cy5jOjMzNgogIywgYy1mb3JtYXQKIG1zZ2lkICJidWc6IHVuaGFuZGxlZCBkaWZmIHN0YXR1cyAlYyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo4MDMKKyM6IHd0LXN0YXR1cy5jOjcwMworbXNnaWQgIlN1Ym1vZHVsZXMgY2hhbmdlZCBidXQgbm90IHVwZGF0ZWQ6IgorbXNnc3RyICIiCisKKyM6IHd0LXN0YXR1cy5jOjcwNQorbXNnaWQgIlN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCittc2dzdHIgIiIKKworIzogd3Qtc3RhdHVzLmM6ODQ4CiBtc2dpZCAiWW91IGhhdmUgdW5tZXJnZWQgcGF0aHMuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjgwNgorIzogd3Qtc3RhdHVzLmM6ODUxCiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IGNvbW1pdFwiKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo4MDkKKyM6IHd0LXN0YXR1cy5jOjg1NAogbXNnaWQgIkFsbCBjb25mbGljdHMgZml4ZWQgYnV0IHlvdSBhcmUgc3RpbGwgbWVyZ2luZy4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6ODEyCisjOiB3dC1zdGF0dXMuYzo4NTcKIG1zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0XCIgdG8gY29uY2x1ZGUgbWVyZ2UpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjgyMgorIzogd3Qtc3RhdHVzLmM6ODY3CiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGFuIGFtIHNlc3Npb24uIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjgyNQorIzogd3Qtc3RhdHVzLmM6ODcwCiBtc2dpZCAiVGhlIGN1cnJlbnQgcGF0Y2ggaXMgZW1wdHkuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjgyOQorIzogd3Qtc3RhdHVzLmM6ODc0CiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo4MzEKKyM6IHd0LXN0YXR1cy5jOjg3NgogbXNnaWQgIiAgKHVzZSBcImdpdCBhbSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjgzMworIzogd3Qtc3RhdHVzLmM6ODc4CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFtIC0tYWJvcnRcIiB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjg5MyB3dC1zdGF0dXMuYzo5MTAKKyM6IHd0LXN0YXR1cy5jOjkzOCB3dC1zdGF0dXMuYzo5NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgcmViYXNpbmcgYnJhbmNoICclcycgb24gJyVzJy4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6ODk4IHd0LXN0YXR1cy5jOjkxNQorIzogd3Qtc3RhdHVzLmM6OTQzIHd0LXN0YXR1cy5jOjk2MAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nLiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5MDEKKyM6IHd0LXN0YXR1cy5jOjk0NgogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjkwMworIzogd3Qtc3RhdHVzLmM6OTQ4CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjkwNQorIzogd3Qtc3RhdHVzLmM6OTUwCiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLWFib3J0XCIgdG8gY2hlY2sgb3V0IHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjkxOAorIzogd3Qtc3RhdHVzLmM6OTYzCiBtc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjkyMgorIzogd3Qtc3RhdHVzLmM6OTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICclcycgb24gJyVzJy4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6OTI3CisjOiB3dC1zdGF0dXMuYzo5NzIKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5MzAKKyM6IHd0LXN0YXR1cy5jOjk3NQogbXNnaWQgIiAgKE9uY2UgeW91ciB3b3JraW5nIGRpcmVjdG9yeSBpcyBjbGVhbiwgcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjkzNAorIzogd3Qtc3RhdHVzLmM6OTc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICclcycgb24gJyVzJy4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6OTM5CisjOiB3dC1zdGF0dXMuYzo5ODQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IGR1cmluZyBhIHJlYmFzZS4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6OTQyCisjOiB3dC1zdGF0dXMuYzo5ODcKIG1zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0IC0tYW1lbmRcIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjk0NAorIzogd3Qtc3RhdHVzLmM6OTg5CiBtc2dpZCAiIgogIiAgKHVzZSBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjk1NAotbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGNoZXJyeS1waWNraW5nLiIKKyM6IHd0LXN0YXR1cy5jOjk5OQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZyBjb21taXQgJXMuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjk1OAorIzogd3Qtc3RhdHVzLmM6MTAwNAogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjk2MQorIzogd3Qtc3RhdHVzLmM6MTAwNwogbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjk2MworIzogd3Qtc3RhdHVzLmM6MTAwOQogbXNnaWQgIiAgKHVzZSBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgdG8gY2FuY2VsIHRoZSBjaGVycnktcGljayBvcGVyYXRpb24pIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjk3MgorIzogd3Qtc3RhdHVzLmM6MTAxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZXZlcnRpbmcgY29tbWl0ICVzLiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5NzcKKyM6IHd0LXN0YXR1cy5jOjEwMjMKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6OTgwCisjOiB3dC1zdGF0dXMuYzoxMDI2CiBtc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjk4MgorIzogd3Qtc3RhdHVzLmM6MTAyOAogbXNnaWQgIiAgKHVzZSBcImdpdCByZXZlcnQgLS1hYm9ydFwiIHRvIGNhbmNlbCB0aGUgcmV2ZXJ0IG9wZXJhdGlvbikiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6OTkzCisjOiB3dC1zdGF0dXMuYzoxMDM5CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGJpc2VjdGluZywgc3RhcnRlZCBmcm9tIGJyYW5jaCAnJXMnLiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5OTcKKyM6IHd0LXN0YXR1cy5jOjEwNDMKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBiaXNlY3RpbmcuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEwMDAKKyM6IHd0LXN0YXR1cy5jOjEwNDYKIG1zZ2lkICIgICh1c2UgXCJnaXQgYmlzZWN0IHJlc2V0XCIgdG8gZ2V0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTE3MworIzogd3Qtc3RhdHVzLmM6MTIyMQogbXNnaWQgIk9uIGJyYW5jaCAiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTE4MAorIzogd3Qtc3RhdHVzLmM6MTIyOAogbXNnaWQgInJlYmFzZSBpbiBwcm9ncmVzczsgb250byAiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTE4NworIzogd3Qtc3RhdHVzLmM6MTIzNQogbXNnaWQgIkhFQUQgZGV0YWNoZWQgYXQgIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjExODkKKyM6IHd0LXN0YXR1cy5jOjEyMzcKIG1zZ2lkICJIRUFEIGRldGFjaGVkIGZyb20gIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjExOTIKKyM6IHd0LXN0YXR1cy5jOjEyNDAKIG1zZ2lkICJOb3QgY3VycmVudGx5IG9uIGFueSBicmFuY2guIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMDkKKyM6IHd0LXN0YXR1cy5jOjEyNTcKIG1zZ2lkICJJbml0aWFsIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjIzCisjOiB3dC1zdGF0dXMuYzoxMjcxCiBtc2dpZCAiVW50cmFja2VkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjUKKyM6IHd0LXN0YXR1cy5jOjEyNzMKIG1zZ2lkICJJZ25vcmVkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjkKKyM6IHd0LXN0YXR1cy5jOjEyNzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkl0IHRvb2sgJS4yZiBzZWNvbmRzIHRvIGVudW1lcmF0ZSB1bnRyYWNrZWQgZmlsZXMuICdzdGF0dXMgLXVubydcbiIKQEAgLTE1MTksODIgKzE2ODAsODYgQEAKICJuZXcgZmlsZXMgeW91cnNlbGYgKHNlZSAnZ2l0IGhlbHAgc3RhdHVzJykuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMzUKKyM6IHd0LXN0YXR1cy5jOjEyODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW50cmFja2VkIGZpbGVzIG5vdCBsaXN0ZWQlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjM3CisjOiB3dC1zdGF0dXMuYzoxMjg1CiBtc2dpZCAiICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjQzCisjOiB3dC1zdGF0dXMuYzoxMjkxCiBtc2dpZCAiTm8gY2hhbmdlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjQ4CisjOiB3dC1zdGF0dXMuYzoxMjk2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgXCJnaXQgYWRkXCIgYW5kL29yIFwiZ2l0IGNvbW1pdCAtYVwiKVxuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTEKKyM6IHd0LXN0YXR1cy5jOjEyOTkKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcbiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjU0CisjOiB3dC1zdGF0dXMuYzoxMzAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJub3RoaW5nIGFkZGVkIHRvIGNvbW1pdCBidXQgdW50cmFja2VkIGZpbGVzIHByZXNlbnQgKHVzZSBcImdpdCBhZGRcIiB0byAiCiAidHJhY2spXG4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTI1NworIzogd3Qtc3RhdHVzLmM6MTMwNQogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIGFkZGVkIHRvIGNvbW1pdCBidXQgdW50cmFja2VkIGZpbGVzIHByZXNlbnRcbiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjYwCisjOiB3dC1zdGF0dXMuYzoxMzA4CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0IChjcmVhdGUvY29weSBmaWxlcyBhbmQgdXNlIFwiZ2l0IGFkZFwiIHRvIHRyYWNrKVxuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjMgd3Qtc3RhdHVzLmM6MTI2OAorIzogd3Qtc3RhdHVzLmM6MTMxMSB3dC1zdGF0dXMuYzoxMzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0XG4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2NgorIzogd3Qtc3RhdHVzLmM6MTMxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKVxuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNzAKKyM6IHd0LXN0YXR1cy5jOjEzMTgKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgZGlyZWN0b3J5IGNsZWFuXG4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTM3OAorIzogd3Qtc3RhdHVzLmM6MTQyNwogbXNnaWQgIkhFQUQgKG5vIGJyYW5jaCkiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTM4NAorIzogd3Qtc3RhdHVzLmM6MTQzMwogbXNnaWQgIkluaXRpYWwgY29tbWl0IG9uICIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMzk5CisjOiB3dC1zdGF0dXMuYzoxNDYzCittc2dpZCAiZ29uZSIKK21zZ3N0ciAiIgorCisjOiB3dC1zdGF0dXMuYzoxNDY1CiBtc2dpZCAiYmVoaW5kICIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxNDAyIHd0LXN0YXR1cy5jOjE0MDUKKyM6IHd0LXN0YXR1cy5jOjE0Njggd3Qtc3RhdHVzLmM6MTQ3MQogbXNnaWQgImFoZWFkICIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxNDA3CisjOiB3dC1zdGF0dXMuYzoxNDczCiBtc2dpZCAiLCBiZWhpbmQgIgogbXNnc3RyICIiCiAKLSM6IGNvbXBhdC9wcmVjb21wb3NlX3V0ZjguYzo1OCBidWlsdGluL2Nsb25lLmM6MzUxCisjOiBjb21wYXQvcHJlY29tcG9zZV91dGY4LmM6NTUgYnVpbHRpbi9jbG9uZS5jOjM1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gdW5saW5rICclcyciCiBtc2dzdHIgIiIKQEAgLTE2NTQsNyArMTgxOSw3IEBACiBtc2dpZCAidW5leHBlY3RlZCBkaWZmIHN0YXR1cyAlYyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjE0OSBidWlsdGluL2NvbW1pdC5jOjI1MgorIzogYnVpbHRpbi9hZGQuYzoxNDkgYnVpbHRpbi9jb21taXQuYzoyNjAKIG1zZ2lkICJ1cGRhdGluZyBmaWxlcyBmYWlsZWQiCiBtc2dzdHIgIiIKIApAQCAtMTY2MywxNDAgKzE4MjgsMTM1IEBACiBtc2dpZCAicmVtb3ZlICclcydcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjI1MworIzogYnVpbHRpbi9hZGQuYzoyMzcKIG1zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlZnJlc2hpbmcgdGhlIGluZGV4OiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjI1NiBidWlsdGluL2FkZC5jOjU3MyBidWlsdGluL3JtLmM6MzM3Ci0jLCBjLWZvcm1hdAotbXNnaWQgInBhdGhzcGVjICclcycgZGlkIG5vdCBtYXRjaCBhbnkgZmlsZXMiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9hZGQuYzozMzkKKyM6IGJ1aWx0aW4vYWRkLmM6Mjk5CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzUwCisjOiBidWlsdGluL2FkZC5jOjMxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjM1NAorIzogYnVpbHRpbi9hZGQuYzozMTQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgcGF0Y2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzozNTkKKyM6IGJ1aWx0aW4vYWRkLmM6MzE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBzdGF0ICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzozNjEKKyM6IGJ1aWx0aW4vYWRkLmM6MzIxCiBtc2dpZCAiRW1wdHkgcGF0Y2guIEFib3J0ZWQuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzY3CisjOiBidWlsdGluL2FkZC5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgYXBwbHkgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjM3NworIzogYnVpbHRpbi9hZGQuYzozMzcKIG1zZ2lkICJUaGUgZm9sbG93aW5nIHBhdGhzIGFyZSBpZ25vcmVkIGJ5IG9uZSBvZiB5b3VyIC5naXRpZ25vcmUgZmlsZXM6XG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzozOTQgYnVpbHRpbi9jbGVhbi5jOjg3NSBidWlsdGluL2ZldGNoLmM6NzggYnVpbHRpbi9tdi5jOjYzCi0jOiBidWlsdGluL3BydW5lLXBhY2tlZC5jOjczIGJ1aWx0aW4vcHVzaC5jOjQ1MSBidWlsdGluL3JlbW90ZS5jOjEyNTMKLSM6IGJ1aWx0aW4vcm0uYzoyNjgKKyM6IGJ1aWx0aW4vYWRkLmM6MzU0IGJ1aWx0aW4vY2xlYW4uYzo4NzUgYnVpbHRpbi9mZXRjaC5jOjkyIGJ1aWx0aW4vbXYuYzo2NgorIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3MyBidWlsdGluL3B1c2guYzo0NTkgYnVpbHRpbi9yZW1vdGUuYzoxMjUzCisjOiBidWlsdGluL3JtLmM6MjY5CiBtc2dpZCAiZHJ5IHJ1biIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjM5NSBidWlsdGluL2FwcGx5LmM6NDQxMCBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5Ci0jOiBidWlsdGluL2NvbW1pdC5jOjEyMjAgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEzCi0jOiBidWlsdGluL2xvZy5jOjE1NzMgYnVpbHRpbi9tdi5jOjYyIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCisjOiBidWlsdGluL2FkZC5jOjM1NSBidWlsdGluL2FwcGx5LmM6NDQxMCBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNDkgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEyCisjOiBidWlsdGluL2xvZy5jOjE1OTIgYnVpbHRpbi9tdi5jOjY1IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCiBtc2dpZCAiYmUgdmVyYm9zZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjM5NworIzogYnVpbHRpbi9hZGQuYzozNTcKIG1zZ2lkICJpbnRlcmFjdGl2ZSBwaWNraW5nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDczIGJ1aWx0aW4vcmVzZXQuYzoyNjEKKyM6IGJ1aWx0aW4vYWRkLmM6MzU4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTA5IGJ1aWx0aW4vcmVzZXQuYzoyNzIKIG1zZ2lkICJzZWxlY3QgaHVua3MgaW50ZXJhY3RpdmVseSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OQorIzogYnVpbHRpbi9hZGQuYzozNTkKIG1zZ2lkICJlZGl0IGN1cnJlbnQgZGlmZiBhbmQgYXBwbHkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDAKKyM6IGJ1aWx0aW4vYWRkLmM6MzYwCiBtc2dpZCAiYWxsb3cgYWRkaW5nIG90aGVyd2lzZSBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAxCisjOiBidWlsdGluL2FkZC5jOjM2MQogbXNnaWQgInVwZGF0ZSB0cmFja2VkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAyCisjOiBidWlsdGluL2FkZC5jOjM2MgogbXNnaWQgInJlY29yZCBvbmx5IHRoZSBmYWN0IHRoYXQgdGhlIHBhdGggd2lsbCBiZSBhZGRlZCBsYXRlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjQwMworIzogYnVpbHRpbi9hZGQuYzozNjMKIG1zZ2lkICJhZGQgY2hhbmdlcyBmcm9tIGFsbCB0cmFja2VkIGFuZCB1bnRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAogIy4gdGFrZXMgbm8gYXJndW1lbnRzCi0jOiBidWlsdGluL2FkZC5jOjQwNgorIzogYnVpbHRpbi9hZGQuYzozNjYKIG1zZ2lkICJpZ25vcmUgcGF0aHMgcmVtb3ZlZCBpbiB0aGUgd29ya2luZyB0cmVlIChzYW1lIGFzIC0tbm8tYWxsKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjQwOAorIzogYnVpbHRpbi9hZGQuYzozNjgKIG1zZ2lkICJkb24ndCBhZGQsIG9ubHkgcmVmcmVzaCB0aGUgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDkKKyM6IGJ1aWx0aW4vYWRkLmM6MzY5CiBtc2dpZCAianVzdCBza2lwIGZpbGVzIHdoaWNoIGNhbm5vdCBiZSBhZGRlZCBiZWNhdXNlIG9mIGVycm9ycyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjQxMAorIzogYnVpbHRpbi9hZGQuYzozNzAKIG1zZ2lkICJjaGVjayBpZiAtIGV2ZW4gbWlzc2luZyAtIGZpbGVzIGFyZSBpZ25vcmVkIGluIGRyeSBydW4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MzIKKyM6IGJ1aWx0aW4vYWRkLmM6MzkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZSAtZiBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gYWRkIHRoZW0uXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MzMKKyM6IGJ1aWx0aW4vYWRkLmM6MzkzCiBtc2dpZCAibm8gZmlsZXMgYWRkZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MzkKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk5CiBtc2dpZCAiYWRkaW5nIGZpbGVzIGZhaWxlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjQ3OAorIzogYnVpbHRpbi9hZGQuYzo0MzgKIG1zZ2lkICItQSBhbmQgLXUgYXJlIG11dHVhbGx5IGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjQ5NgorIzogYnVpbHRpbi9hZGQuYzo0NTYKIG1zZ2lkICJPcHRpb24gLS1pZ25vcmUtbWlzc2luZyBjYW4gb25seSBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggLS1kcnktcnVuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NTI2CisjOiBidWlsdGluL2FkZC5jOjQ4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3RoaW5nIHNwZWNpZmllZCwgbm90aGluZyBhZGRlZC5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjUyNworIzogYnVpbHRpbi9hZGQuYzo0ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWF5YmUgeW91IHdhbnRlZCB0byBzYXkgJ2dpdCBhZGQgLic/XG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo1MzMgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjEgYnVpbHRpbi9jbGVhbi5jOjkxOQotIzogYnVpbHRpbi9jb21taXQuYzozMTIgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyOTcKKyM6IGJ1aWx0aW4vYWRkLmM6NDkyIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTcyIGJ1aWx0aW4vY2xlYW4uYzo5MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzIwIGJ1aWx0aW4vbXYuYzo4NiBidWlsdGluL3Jlc2V0LmM6MjI0IGJ1aWx0aW4vcm0uYzoyOTkKIG1zZ2lkICJpbmRleCBmaWxlIGNvcnJ1cHQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo2MDUgYnVpbHRpbi9hcHBseS5jOjQ1MDYgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6NDMyCisjOiBidWlsdGluL2FkZC5jOjU4OSBidWlsdGluL2FwcGx5LmM6NDUwNiBidWlsdGluL212LmM6MjU5IGJ1aWx0aW4vcm0uYzo0MzIKIG1zZ2lkICJVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIiIKIApAQCAtMjA0Miw3ICsyMjAyLDcgQEAKIG1zZ2lkICJDaGVja2luZyBwYXRjaCAlcy4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzY4MCBidWlsdGluL2NoZWNrb3V0LmM6MjE2IGJ1aWx0aW4vcmVzZXQuYzoxMjcKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNjgwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTMgYnVpbHRpbi9yZXNldC5jOjEyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWtlX2NhY2hlX2VudHJ5IGZhaWxlZCBmb3IgcGF0aCAnJXMnIgogbXNnc3RyICIiCkBAIC0yMTIyLDggKzIyODIsOCBAQAogbXNnaWQgInVuYWJsZSB0byByZWFkIGluZGV4IGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNTcgYnVpbHRpbi9hcHBseS5jOjQzNjAgYnVpbHRpbi9jbG9uZS5jOjkxCi0jOiBidWlsdGluL2ZldGNoLmM6NjMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU3IGJ1aWx0aW4vYXBwbHkuYzo0MzYwIGJ1aWx0aW4vY2xvbmUuYzo5MAorIzogYnVpbHRpbi9mZXRjaC5jOjc3CiBtc2dpZCAicGF0aCIKIG1zZ3N0ciAiIgogCkBAIC0yMTgzLDcgKzIzNDMsNyBAQAogbXNnaWQgImJ1aWxkIGEgdGVtcG9yYXJ5IGluZGV4IGJhc2VkIG9uIGVtYmVkZGVkIGluZGV4IGluZm9ybWF0aW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg5IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTcgYnVpbHRpbi9scy1maWxlcy5jOjQ2MgorIzogYnVpbHRpbi9hcHBseS5jOjQzODkgYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDUyCiBtc2dpZCAicGF0aHMgYXJlIHNlcGFyYXRlZCB3aXRoIE5VTCBjaGFyYWN0ZXIiCiBtc2dzdHIgIiIKIApAQCAtMjMxMywxMDMgKzI0NzMsMTAzIEBACiBtc2dpZCAidXBkYXRlIEJJU0VDVF9IRUFEIGluc3RlYWQgb2YgY2hlY2tpbmcgb3V0IHRoZSBjdXJyZW50IGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyNwogbXNnaWQgImdpdCBibGFtZSBbb3B0aW9uc10gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjMxCisjOiBidWlsdGluL2JsYW1lLmM6MzIKIG1zZ2lkICJbcmV2LW9wdHNdIGFyZSBkb2N1bWVudGVkIGluIGdpdC1yZXYtbGlzdCgxKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI3NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyNDgKIG1zZ2lkICJTaG93IGJsYW1lIGVudHJpZXMgYXMgd2UgZmluZCB0aGVtLCBpbmNyZW1lbnRhbGx5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc3CisjOiBidWlsdGluL2JsYW1lLmM6MjI0OQogbXNnaWQgIlNob3cgYmxhbmsgU0hBLTEgZm9yIGJvdW5kYXJ5IGNvbW1pdHMgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyNzgKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjUwCiBtc2dpZCAiRG8gbm90IHRyZWF0IHJvb3QgY29tbWl0cyBhcyBib3VuZGFyaWVzIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc5CisjOiBidWlsdGluL2JsYW1lLmM6MjI1MQogbXNnaWQgIlNob3cgd29yayBjb3N0IHN0YXRpc3RpY3MiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjUyCiBtc2dpZCAiU2hvdyBvdXRwdXQgc2NvcmUgZm9yIGJsYW1lIGVudHJpZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODEKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjUzCiBtc2dpZCAiU2hvdyBvcmlnaW5hbCBmaWxlbmFtZSAoRGVmYXVsdDogYXV0bykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjU0CiBtc2dpZCAiU2hvdyBvcmlnaW5hbCBsaW5lbnVtYmVyIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgzCisjOiBidWlsdGluL2JsYW1lLmM6MjI1NQogbXNnaWQgIlNob3cgaW4gYSBmb3JtYXQgZGVzaWduZWQgZm9yIG1hY2hpbmUgY29uc3VtcHRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjU2CiBtc2dpZCAiU2hvdyBwb3JjZWxhaW4gZm9ybWF0IHdpdGggcGVyLWxpbmUgY29tbWl0IGluZm9ybWF0aW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg1CisjOiBidWlsdGluL2JsYW1lLmM6MjI1NwogbXNnaWQgIlVzZSB0aGUgc2FtZSBvdXRwdXQgbW9kZSBhcyBnaXQtYW5ub3RhdGUgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjU4CiBtc2dpZCAiU2hvdyByYXcgdGltZXN0YW1wIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg3CisjOiBidWlsdGluL2JsYW1lLmM6MjI1OQogbXNnaWQgIlNob3cgbG9uZyBjb21taXQgU0hBMSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI4OAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjAKIG1zZ2lkICJTdXBwcmVzcyBhdXRob3IgbmFtZSBhbmQgdGltZXN0YW1wIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg5CisjOiBidWlsdGluL2JsYW1lLmM6MjI2MQogbXNnaWQgIlNob3cgYXV0aG9yIGVtYWlsIGluc3RlYWQgb2YgbmFtZSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjIKIG1zZ2lkICJJZ25vcmUgd2hpdGVzcGFjZSBkaWZmZXJlbmNlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjMKIG1zZ2lkICJTcGVuZCBleHRyYSBjeWNsZXMgdG8gZmluZCBiZXR0ZXIgbWF0Y2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY0CiBtc2dpZCAiVXNlIHJldmlzaW9ucyBmcm9tIDxmaWxlPiBpbnN0ZWFkIG9mIGNhbGxpbmcgZ2l0LXJldi1saXN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkzCisjOiBidWlsdGluL2JsYW1lLmM6MjI2NQogbXNnaWQgIlVzZSA8ZmlsZT4ncyBjb250ZW50cyBhcyB0aGUgZmluYWwgaW1hZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTQgYnVpbHRpbi9ibGFtZS5jOjIyOTUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY2IGJ1aWx0aW4vYmxhbWUuYzoyMjY3CiBtc2dpZCAic2NvcmUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY2CiBtc2dpZCAiRmluZCBsaW5lIGNvcGllcyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjcKIG1zZ2lkICJGaW5kIGxpbmUgbW92ZW1lbnRzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk2CisjOiBidWlsdGluL2JsYW1lLmM6MjI2OAogbXNnaWQgIm4sbSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjgKIG1zZ2lkICJQcm9jZXNzIG9ubHkgbGluZSByYW5nZSBuLG0sIGNvdW50aW5nIGZyb20gMSIKIG1zZ3N0ciAiIgogCkBAIC0yNTA5LDI4MCArMjY2OSwyOTAgQEAKIAogIzogYnVpbHRpbi9icmFuY2guYzo0NTMKICMsIGMtZm9ybWF0Ci1tc2dpZCAiWyVzOiBiZWhpbmQgJWRdIgorbXNnaWQgIlslczogZ29uZV0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU2CiAjLCBjLWZvcm1hdAotbXNnaWQgIltiZWhpbmQgJWRdIgorbXNnaWQgIlslc10iCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9icmFuY2guYzo0NTkKICMsIGMtZm9ybWF0Ci1tc2dpZCAiWyVzOiBhaGVhZCAlZF0iCittc2dpZCAiWyVzOiBiZWhpbmQgJWRdIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6NDYxCiAjLCBjLWZvcm1hdAotbXNnaWQgIlthaGVhZCAlZF0iCittc2dpZCAiW2JlaGluZCAlZF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NjQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDY1CiAjLCBjLWZvcm1hdAotbXNnaWQgIlslczogYWhlYWQgJWQsIGJlaGluZCAlZF0iCittc2dpZCAiWyVzOiBhaGVhZCAlZF0iCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9icmFuY2guYzo0NjcKICMsIGMtZm9ybWF0Cittc2dpZCAiW2FoZWFkICVkXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjQ3MAorIywgYy1mb3JtYXQKK21zZ2lkICJbJXM6IGFoZWFkICVkLCBiZWhpbmQgJWRdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDczCisjLCBjLWZvcm1hdAogbXNnaWQgIlthaGVhZCAlZCwgYmVoaW5kICVkXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ5MAorIzogYnVpbHRpbi9icmFuY2guYzo0OTYKIG1zZ2lkICIgKioqKiBpbnZhbGlkIHJlZiAqKioqIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTgyCi0jLCBjLWZvcm1hdAotbXNnaWQgIihubyBicmFuY2gsIHJlYmFzaW5nICVzKSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2JyYW5jaC5jOjU4NQotIywgYy1mb3JtYXQKLW1zZ2lkICIobm8gYnJhbmNoLCBiaXNlY3Qgc3RhcnRlZCBvbiAlcykiCi1tc2dzdHIgIiIKLQogIzogYnVpbHRpbi9icmFuY2guYzo1ODgKICMsIGMtZm9ybWF0Ci1tc2dpZCAiKGRldGFjaGVkIGZyb20gJXMpIgorbXNnaWQgIihubyBicmFuY2gsIHJlYmFzaW5nICVzKSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjU5MQorIywgYy1mb3JtYXQKK21zZ2lkICIobm8gYnJhbmNoLCBiaXNlY3Qgc3RhcnRlZCBvbiAlcykiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9icmFuY2guYzo1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiKGRldGFjaGVkIGZyb20gJXMpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTk3CiBtc2dpZCAiKG5vIGJyYW5jaCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2MzcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCAnJXMnIGRvZXMgbm90IHBvaW50IHRvIGEgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjY5CisjOiBidWlsdGluL2JyYW5jaC5jOjY3NQogbXNnaWQgInNvbWUgcmVmcyBjb3VsZCBub3QgYmUgcmVhZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY4MgorIzogYnVpbHRpbi9icmFuY2guYzo2ODgKIG1zZ2lkICJjYW5ub3QgcmVuYW1lIHRoZSBjdXJyZW50IGJyYW5jaCB3aGlsZSBub3Qgb24gYW55LiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY5MgorIzogYnVpbHRpbi9icmFuY2guYzo2OTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBicmFuY2ggbmFtZTogJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcwNworIzogYnVpbHRpbi9icmFuY2guYzo3MTMKIG1zZ2lkICJCcmFuY2ggcmVuYW1lIGZhaWxlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcxMQorIzogYnVpbHRpbi9icmFuY2guYzo3MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVuYW1lZCBhIG1pc25hbWVkIGJyYW5jaCAnJXMnIGF3YXkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3MTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkJyYW5jaCByZW5hbWVkIHRvICVzLCBidXQgSEVBRCBpcyBub3QgdXBkYXRlZCEiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3MjIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzI4CiBtc2dpZCAiQnJhbmNoIGlzIHJlbmFtZWQsIGJ1dCB1cGRhdGUgb2YgY29uZmlnLWZpbGUgZmFpbGVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzM3CisjOiBidWlsdGluL2JyYW5jaC5jOjc0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWxmb3JtZWQgb2JqZWN0IG5hbWUgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NjEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCB3cml0ZSBicmFuY2ggZGVzY3JpcHRpb24gdGVtcGxhdGU6ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzkxCisjOiBidWlsdGluL2JyYW5jaC5jOjc5NwogbXNnaWQgIkdlbmVyaWMgb3B0aW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5MworIzogYnVpbHRpbi9icmFuY2guYzo3OTkKIG1zZ2lkICJzaG93IGhhc2ggYW5kIHN1YmplY3QsIGdpdmUgdHdpY2UgZm9yIHVwc3RyZWFtIGJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5NAorIzogYnVpbHRpbi9icmFuY2guYzo4MDAKIG1zZ2lkICJzdXBwcmVzcyBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk1CisjOiBidWlsdGluL2JyYW5jaC5jOjgwMQogbXNnaWQgInNldCB1cCB0cmFja2luZyBtb2RlIChzZWUgZ2l0LXB1bGwoMSkpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk3CisjOiBidWlsdGluL2JyYW5jaC5jOjgwMwogbXNnaWQgImNoYW5nZSB1cHN0cmVhbSBpbmZvIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCisjOiBidWlsdGluL2JyYW5jaC5jOjgwNwogbXNnaWQgInVzZSBjb2xvcmVkIG91dHB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwMgorIzogYnVpbHRpbi9icmFuY2guYzo4MDgKIG1zZ2lkICJhY3Qgb24gcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA1IGJ1aWx0aW4vYnJhbmNoLmM6ODExIGJ1aWx0aW4vYnJhbmNoLmM6ODMyCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzOCBidWlsdGluL2NvbW1pdC5jOjE0MzMgYnVpbHRpbi9jb21taXQuYzoxNDM0Ci0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzUgYnVpbHRpbi9jb21taXQuYzoxNDM2IGJ1aWx0aW4vdGFnLmM6NDY4CisjOiBidWlsdGluL2JyYW5jaC5jOjgxMSBidWlsdGluL2JyYW5jaC5jOjgxNyBidWlsdGluL2JyYW5jaC5jOjgzOAorIzogYnVpbHRpbi9icmFuY2guYzo4NDQgYnVpbHRpbi9jb21taXQuYzoxNDYwIGJ1aWx0aW4vY29tbWl0LmM6MTQ2MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDYyIGJ1aWx0aW4vY29tbWl0LmM6MTQ2MyBidWlsdGluL3RhZy5jOjQ2OAogbXNnaWQgImNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNiBidWlsdGluL2JyYW5jaC5jOjgxMgorIzogYnVpbHRpbi9icmFuY2guYzo4MTIgYnVpbHRpbi9icmFuY2guYzo4MTgKIG1zZ2lkICJwcmludCBvbmx5IGJyYW5jaGVzIHRoYXQgY29udGFpbiB0aGUgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE4CisjOiBidWlsdGluL2JyYW5jaC5jOjgyNAogbXNnaWQgIlNwZWNpZmljIGdpdC1icmFuY2ggYWN0aW9uczoiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MTkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI1CiBtc2dpZCAibGlzdCBib3RoIHJlbW90ZS10cmFja2luZyBhbmQgbG9jYWwgYnJhbmNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI3CiBtc2dpZCAiZGVsZXRlIGZ1bGx5IG1lcmdlZCBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI4CiBtc2dpZCAiZGVsZXRlIGJyYW5jaCAoZXZlbiBpZiBub3QgbWVyZ2VkKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyMworIzogYnVpbHRpbi9icmFuY2guYzo4MjkKIG1zZ2lkICJtb3ZlL3JlbmFtZSBhIGJyYW5jaCBhbmQgaXRzIHJlZmxvZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyNAorIzogYnVpbHRpbi9icmFuY2guYzo4MzAKIG1zZ2lkICJtb3ZlL3JlbmFtZSBhIGJyYW5jaCwgZXZlbiBpZiB0YXJnZXQgZXhpc3RzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI1CisjOiBidWlsdGluL2JyYW5jaC5jOjgzMQogbXNnaWQgImxpc3QgYnJhbmNoIG5hbWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI2CisjOiBidWlsdGluL2JyYW5jaC5jOjgzMgogbXNnaWQgImNyZWF0ZSB0aGUgYnJhbmNoJ3MgcmVmbG9nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI4CisjOiBidWlsdGluL2JyYW5jaC5jOjgzNAogbXNnaWQgImVkaXQgdGhlIGRlc2NyaXB0aW9uIGZvciB0aGUgYnJhbmNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI5CisjOiBidWlsdGluL2JyYW5jaC5jOjgzNQogbXNnaWQgImZvcmNlIGNyZWF0aW9uICh3aGVuIGFscmVhZHkgZXhpc3RzKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzMgorIzogYnVpbHRpbi9icmFuY2guYzo4MzgKIG1zZ2lkICJwcmludCBvbmx5IG5vdCBtZXJnZWQgYnJhbmNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MzgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODQ0CiBtc2dpZCAicHJpbnQgb25seSBtZXJnZWQgYnJhbmNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NDIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODQ4CiBtc2dpZCAibGlzdCBicmFuY2hlcyBpbiBjb2x1bW5zIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODU1CisjOiBidWlsdGluL2JyYW5jaC5jOjg2MQogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlIEhFQUQgYXMgYSB2YWxpZCByZWYuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYwIGJ1aWx0aW4vY2xvbmUuYzo2MzAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODY2IGJ1aWx0aW4vY2xvbmUuYzo2MjkKIG1zZ2lkICJIRUFEIG5vdCBmb3VuZCBiZWxvdyByZWZzL2hlYWRzISIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg4MworIzogYnVpbHRpbi9icmFuY2guYzo4OTAKIG1zZ2lkICItLWNvbHVtbiBhbmQgLS12ZXJib3NlIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4ODkgYnVpbHRpbi9icmFuY2guYzo5MjgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODk2IGJ1aWx0aW4vYnJhbmNoLmM6OTM1CiBtc2dpZCAiYnJhbmNoIG5hbWUgcmVxdWlyZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MDQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTExCiBtc2dpZCAiQ2Fubm90IGdpdmUgZGVzY3JpcHRpb24gdG8gZGV0YWNoZWQgSEVBRCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkwOQorIzogYnVpbHRpbi9icmFuY2guYzo5MTYKIG1zZ2lkICJjYW5ub3QgZWRpdCBkZXNjcmlwdGlvbiBvZiBtb3JlIHRoYW4gb25lIGJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkxNgorIzogYnVpbHRpbi9icmFuY2guYzo5MjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gY29tbWl0IG9uIGJyYW5jaCAnJXMnIHlldC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MTkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTI2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGJyYW5jaCBuYW1lZCAnJXMnLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkzNAorIzogYnVpbHRpbi9icmFuY2guYzo5NDEKIG1zZ2lkICJ0b28gbWFueSBicmFuY2hlcyBmb3IgYSByZW5hbWUgb3BlcmF0aW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTM5CisjOiBidWlsdGluL2JyYW5jaC5jOjk0NgogbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHNldCBuZXcgdXBzdHJlYW0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NDMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJjb3VsZCBub3Qgc2V0IHVwc3RyZWFtIG9mIEhFQUQgdG8gJXMgd2hlbiBpdCBkb2VzIG5vdCBwb2ludCB0byBhbnkgYnJhbmNoLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk0NiBidWlsdGluL2JyYW5jaC5jOjk2OCBidWlsdGluL2JyYW5jaC5jOjk5MAorIzogYnVpbHRpbi9icmFuY2guYzo5NTMgYnVpbHRpbi9icmFuY2guYzo5NzUgYnVpbHRpbi9icmFuY2guYzo5OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gc3VjaCBicmFuY2ggJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk1MAorIzogYnVpbHRpbi9icmFuY2guYzo5NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYnJhbmNoICclcycgZG9lcyBub3QgZXhpc3QiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NjIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTY5CiBtc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgdG8gdW5zZXQgdXBzdHJlYW0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NjYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTczCiBtc2dpZCAiY291bGQgbm90IHVuc2V0IHVwc3RyZWFtIG9mIEhFQUQgd2hlbiBpdCBkb2VzIG5vdCBwb2ludCB0byBhbnkgYnJhbmNoLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk3MgorIzogYnVpbHRpbi9icmFuY2guYzo5NzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQnJhbmNoICclcycgaGFzIG5vIHVwc3RyZWFtIGluZm9ybWF0aW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTg3CisjOiBidWlsdGluL2JyYW5jaC5jOjk5NAogbXNnaWQgIml0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gY3JlYXRlICdIRUFEJyBtYW51YWxseSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk5MworIzogYnVpbHRpbi9icmFuY2guYzoxMDAwCiBtc2dpZCAiLWEgYW5kIC1yIG9wdGlvbnMgdG8gJ2dpdCBicmFuY2gnIGRvIG5vdCBtYWtlIHNlbnNlIHdpdGggYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk5NgorIzogYnVpbHRpbi9icmFuY2guYzoxMDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgLS1zZXQtdXBzdHJlYW0gZmxhZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIENvbnNpZGVyIHVzaW5nIC0tIgogInRyYWNrIG9yIC0tc2V0LXVwc3RyZWFtLXRvXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxMDEzCisjOiBidWlsdGluL2JyYW5jaC5jOjEwMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgpAQCAtMjc5MCwxMiArMjk2MCwxMiBAQAogIlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxNAorIzogYnVpbHRpbi9icmFuY2guYzoxMDIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICBnaXQgYnJhbmNoIC1kICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxMDE1CisjOiBidWlsdGluL2JyYW5jaC5jOjEwMjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgIGdpdCBicmFuY2ggLS1zZXQtdXBzdHJlYW0tdG8gJXNcbiIKIG1zZ3N0ciAiIgpAQCAtMjgxMyw0MyArMjk4Myw0MyBAQAogbXNnaWQgIk5lZWQgYSByZXBvc2l0b3J5IHRvIHVuYnVuZGxlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6Mjg1CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzEyCiBtc2dpZCAiZ2l0IGNhdC1maWxlICgtdHwtc3wtZXwtcHw8dHlwZT58LS10ZXh0Y29udikgPG9iamVjdD4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI4NgorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMxMwogbXNnaWQgImdpdCBjYXQtZmlsZSAoLS1iYXRjaHwtLWJhdGNoLWNoZWNrKSA8IDxsaXN0X29mX29iamVjdHM+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjMKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTAKIG1zZ2lkICI8dHlwZT4gY2FuIGJlIG9uZSBvZjogYmxvYiwgdHJlZSwgY29tbWl0LCB0YWciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyNAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1MQogbXNnaWQgInNob3cgb2JqZWN0IHR5cGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyNQorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1MgogbXNnaWQgInNob3cgb2JqZWN0IHNpemUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyNworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1NAogbXNnaWQgImV4aXQgd2l0aCB6ZXJvIHdoZW4gdGhlcmUncyBubyBlcnJvciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MzI4CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzU1CiBtc2dpZCAicHJldHR5LXByaW50IG9iamVjdCdzIGNvbnRlbnQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzMAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1NwogbXNnaWQgImZvciBibG9iIG9iamVjdHMsIHJ1biB0ZXh0Y29udiBvbiBvYmplY3QncyBjb250ZW50IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzIKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTkKIG1zZ2lkICJzaG93IGluZm8gYW5kIGNvbnRlbnQgb2Ygb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzNQorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM2MgogbXNnaWQgInNob3cgaW5mbyBhYm91dCBvYmplY3RzIGZlZCBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAiIgogCkBAIC0yODc0LDEwICszMDQ0LDEwIEBACiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jaGVjay1hdHRyLmM6MjMgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoyNAotbXNnaWQgImlucHV0IHBhdGhzIGFyZSB0ZXJtaW5hdGVkIGJ5IGEgbnVsbCBjaGFyYWN0ZXIiCittc2dpZCAidGVybWluYXRlIGlucHV0IGFuZCBvdXRwdXQgcmVjb3JkcyBieSBhIE5VTCBjaGFyYWN0ZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOCBidWlsdGluL2NoZWNrb3V0LmM6MTA1NCBidWlsdGluL2djLmM6MTc3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDkwIGJ1aWx0aW4vZ2MuYzoyNTkKIG1zZ2lkICJzdXBwcmVzcyBwcm9ncmVzcyByZXBvcnRpbmciCiBtc2dzdHIgIiIKIApAQCAtMjg4NSwyNyArMzA1NSwzMSBAQAogbXNnaWQgInNob3cgbm9uLW1hdGNoaW5nIGlucHV0IHBhdGhzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQzCi1tc2dpZCAiY2Fubm90IHNwZWNpZnkgcGF0aG5hbWVzIHdpdGggLS1zdGRpbiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0NgotbXNnaWQgIi16IG9ubHkgbWFrZXMgc2Vuc2Ugd2l0aCAtLXN0ZGluIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQ4Ci1tc2dpZCAibm8gcGF0aCBzcGVjaWZpZWQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTIKLW1zZ2lkICItLXF1aWV0IGlzIG9ubHkgdmFsaWQgd2l0aCBhIHNpbmdsZSBwYXRobmFtZSIKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MjgKK21zZ2lkICJpZ25vcmUgaW5kZXggd2hlbiBjaGVja2luZyIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NAotbXNnaWQgImNhbm5vdCBoYXZlIGJvdGggLS1xdWlldCBhbmQgLS12ZXJib3NlIgorbXNnaWQgImNhbm5vdCBzcGVjaWZ5IHBhdGhuYW1lcyB3aXRoIC0tc3RkaW4iCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTcKK21zZ2lkICIteiBvbmx5IG1ha2VzIHNlbnNlIHdpdGggLS1zdGRpbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1OQorbXNnaWQgIm5vIHBhdGggc3BlY2lmaWVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTYzCittc2dpZCAiLS1xdWlldCBpcyBvbmx5IHZhbGlkIHdpdGggYSBzaW5nbGUgcGF0aG5hbWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjUKK21zZ2lkICJjYW5ub3QgaGF2ZSBib3RoIC0tcXVpZXQgYW5kIC0tdmVyYm9zZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2OAogbXNnaWQgIi0tbm9uLW1hdGNoaW5nIGlzIG9ubHkgdmFsaWQgd2l0aCAtLXZlcmJvc2UiCiBtc2dzdHIgIiIKIApAQCAtMjk3OCwxMDYgKzMxNTIsMTA2IEBACiBtc2dpZCAiZ2l0IGNoZWNrb3V0IFtvcHRpb25zXSBbPGJyYW5jaD5dIC0tIDxmaWxlPi4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTQgYnVpbHRpbi9jaGVja291dC5jOjE0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBvdXIgdmVyc2lvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYgYnVpbHRpbi9jaGVja291dC5jOjE0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSB0aGVpciB2ZXJzaW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMzUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgYWxsIG5lY2Vzc2FyeSB2ZXJzaW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTc5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTc2CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIG5lY2Vzc2FyeSB2ZXJzaW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTk2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTkzCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJzogY2Fubm90IG1lcmdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGFkZCBtZXJnZSByZXN1bHQgZm9yICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjIzNyBidWlsdGluL2NoZWNrb3V0LmM6MjQwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDMKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzIgYnVpbHRpbi9jaGVja291dC5jOjIzNSBidWlsdGluL2NoZWNrb3V0LmM6MjM4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCB1cGRhdGluZyBwYXRocyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ5IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDQgYnVpbHRpbi9jaGVja291dC5jOjI0NwogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjI1NQorIzogYnVpbHRpbi9jaGVja291dC5jOjI1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgdXBkYXRlIHBhdGhzIGFuZCBzd2l0Y2ggdG8gYnJhbmNoICclcycgYXQgdGhlIHNhbWUgdGltZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjI2NiBidWlsdGluL2NoZWNrb3V0LmM6NDU4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjYxIGJ1aWx0aW4vY2hlY2tvdXQuYzo0NTEKIG1zZ2lkICJjb3JydXB0IGluZGV4IGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjMyOSBidWlsdGluL2NoZWNrb3V0LmM6MzM2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MzIyIGJ1aWx0aW4vY2hlY2tvdXQuYzozMjkKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGlzIHVubWVyZ2VkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo0ODAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo0NzMKIG1zZ2lkICJ5b3UgbmVlZCB0byByZXNvbHZlIHlvdXIgY3VycmVudCBpbmRleCBmaXJzdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjAxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NTk0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbiBub3QgZG8gcmVmbG9nIGZvciAnJXMnXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjYzOQorIzogYnVpbHRpbi9jaGVja291dC5jOjYzMgogbXNnaWQgIkhFQUQgaXMgbm93IGF0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVzZXQgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFscmVhZHkgb24gJyVzJ1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYW5kIHJlc2V0IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1NSBidWlsdGluL2NoZWNrb3V0LmM6OTk3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGEgbmV3IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1NworIzogYnVpbHRpbi9jaGVja291dC5jOjY1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIC4uLiBhbmQgJWQgbW9yZS5cbiIKIG1zZ3N0ciAiIgogCiAjLiBUaGUgc2luZ3VsYXIgdmVyc2lvbgotIzogYnVpbHRpbi9jaGVja291dC5jOjcxOQorIzogYnVpbHRpbi9jaGVja291dC5jOjcxMgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiV2FybmluZzogeW91IGFyZSBsZWF2aW5nICVkIGNvbW1pdCBiZWhpbmQsIG5vdCBjb25uZWN0ZWQgdG9cbiIKQEAgLTMwOTIsNyArMzI2Niw3IEBACiBtc2dzdHJbMF0gIiIKIG1zZ3N0clsxXSAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzM3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJJZiB5b3Ugd2FudCB0byBrZWVwIHRoZW0gYnkgY3JlYXRpbmcgYSBuZXcgYnJhbmNoLCB0aGlzIG1heSBiZSBhIGdvb2QgdGltZVxuIgpAQCAtMzEwMiwxODQgKzMyNzYsMTg4IEBACiAiXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc2NworIzogYnVpbHRpbi9jaGVja291dC5jOjc2MAogbXNnaWQgImludGVybmFsIGVycm9yIGluIHJldmlzaW9uIHdhbGsiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc3MQorIzogYnVpbHRpbi9jaGVja291dC5jOjc2NAogbXNnaWQgIlByZXZpb3VzIEhFQUQgcG9zaXRpb24gd2FzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTggYnVpbHRpbi9jaGVja291dC5jOjk5MgorIzogYnVpbHRpbi9jaGVja291dC5jOjc5MSBidWlsdGluL2NoZWNrb3V0LmM6MTAyOAogbXNnaWQgIllvdSBhcmUgb24gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgIiIKIAotIy4gY2FzZSAoMSkKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MjgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAib25seSBvbmUgcmVmZXJlbmNlIGV4cGVjdGVkLCAlZCBnaXZlbi4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjk3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHJlZmVyZW5jZTogJXMiCiBtc2dzdHIgIiIKIAogIy4gY2FzZSAoMSk6IHdhbnQgYSB0cmVlCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTY3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWZlcmVuY2UgaXMgbm90IGEgdHJlZTogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQyCiBtc2dpZCAicGF0aHMgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDkgYnVpbHRpbi9jaGVja291dC5jOjEwMTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMTcgYnVpbHRpbi9jaGVja291dC5jOjEwMjAgYnVpbHRpbi9jaGVja291dC5jOjEwMjUKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDI4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MyBidWlsdGluL2NoZWNrb3V0LmM6MTA1NiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMzMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBzd2l0Y2ggYnJhbmNoIHRvIGEgbm9uLWNvbW1pdCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU3IGJ1aWx0aW4vY2xvbmUuYzo4OQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTEgYnVpbHRpbi9jaGVja291dC5jOjEwOTMgYnVpbHRpbi9jbG9uZS5jOjg4CiAjOiBidWlsdGluL3JlbW90ZS5jOjE2OSBidWlsdGluL3JlbW90ZS5jOjE3MQogbXNnaWQgImJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTIKIG1zZ2lkICJjcmVhdGUgYW5kIGNoZWNrb3V0IGEgbmV3IGJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTQKIG1zZ2lkICJjcmVhdGUvcmVzZXQgYW5kIGNoZWNrb3V0IGEgYnJhbmNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5NQogbXNnaWQgImNyZWF0ZSByZWZsb2cgZm9yIG5ldyBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDk2CiBtc2dpZCAiZGV0YWNoIHRoZSBIRUFEIGF0IG5hbWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTcKIG1zZ2lkICJzZXQgdXBzdHJlYW0gaW5mbyBmb3IgbmV3IGJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTkKIG1zZ2lkICJuZXcgYnJhbmNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5OQogbXNnaWQgIm5ldyB1bnBhcmVudGVkIGJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NAorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDAKIG1zZ2lkICJjaGVja291dCBvdXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAyCiBtc2dpZCAiY2hlY2tvdXQgdGhlaXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTA0CiBtc2dpZCAiZm9yY2UgY2hlY2tvdXQgKHRocm93IGF3YXkgbG9jYWwgbW9kaWZpY2F0aW9ucykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTA1CiBtc2dpZCAicGVyZm9ybSBhIDMtd2F5IG1lcmdlIHdpdGggdGhlIG5ldyBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzAgYnVpbHRpbi9tZXJnZS5jOjIzMgorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDYgYnVpbHRpbi9tZXJnZS5jOjIzMgogbXNnaWQgInVwZGF0ZSBpZ25vcmVkIGZpbGVzIChkZWZhdWx0KSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MSBidWlsdGluL2xvZy5jOjEyMDggcGFyc2Utb3B0aW9ucy5oOjI0OQorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDcgYnVpbHRpbi9sb2cuYzoxMjI4IHBhcnNlLW9wdGlvbnMuaDoyNTEKIG1zZ2lkICJzdHlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MgorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDgKIG1zZ2lkICJjb25mbGljdCBzdHlsZSAobWVyZ2Ugb3IgZGlmZjMpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDc1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTExMQogbXNnaWQgImRvIG5vdCBsaW1pdCBwYXRoc3BlY3MgdG8gc3BhcnNlIGVudHJpZXMgb25seSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3NworIzogYnVpbHRpbi9jaGVja291dC5jOjExMTMKIG1zZ2lkICJzZWNvbmQgZ3Vlc3MgJ2dpdCBjaGVja291dCBuby1zdWNoLWJyYW5jaCciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMDEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTM2CiBtc2dpZCAiLWIsIC1CIGFuZCAtLW9ycGhhbiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTE4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1MwogbXNnaWQgIi0tdHJhY2sgbmVlZHMgYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTEyNQorIzogYnVpbHRpbi9jaGVja291dC5jOjExNjAKIG1zZ2lkICJNaXNzaW5nIGJyYW5jaCBuYW1lOyB0cnkgLWIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNjAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTk3CiBtc2dpZCAiaW52YWxpZCBwYXRoIHNwZWNpZmljYXRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNjcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMjA0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDYW5ub3QgdXBkYXRlIHBhdGhzIGFuZCBzd2l0Y2ggdG8gYnJhbmNoICclcycgYXQgdGhlIHNhbWUgdGltZS5cbiIKICJEaWQgeW91IGludGVuZCB0byBjaGVja291dCAnJXMnIHdoaWNoIGNhbiBub3QgYmUgcmVzb2x2ZWQgYXMgY29tbWl0PyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3MgorIzogYnVpbHRpbi9jaGVja291dC5jOjEyMDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IGNoZWNrb3V0OiAtLWRldGFjaCBkb2VzIG5vdCB0YWtlIGEgcGF0aCBhcmd1bWVudCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTc2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTIxMwogbXNnaWQgIiIKICJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSBhbmQgLS1tZXJnZSBhcmUgaW5jb21wYXRpYmxlIHdoZW5cbiIKICJjaGVja2luZyBvdXQgb2YgdGhlIGluZGV4LiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjUKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyNgogbXNnaWQgIiIKICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstaV0gWy1uXSBbLXFdIFstZSA8cGF0dGVybj5dIFsteCB8IC1YXSBbLS1dIDxwYXRocz4uLi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI5CisjOiBidWlsdGluL2NsZWFuLmM6MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3ZpbmcgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MzAKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMQogIywgYy1mb3JtYXQKIG1zZ2lkICJXb3VsZCByZW1vdmUgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MzEKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMgogIywgYy1mb3JtYXQKIG1zZ2lkICJTa2lwcGluZyByZXBvc2l0b3J5ICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjMyCisjOiBidWlsdGluL2NsZWFuLmM6MzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiV291bGQgc2tpcCByZXBvc2l0b3J5ICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjMzCisjOiBidWlsdGluL2NsZWFuLmM6MzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlbW92ZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjkzCisjOiBidWlsdGluL2NsZWFuLmM6Mjk0CiBtc2dpZCAiIgogIlByb21wdCBoZWxwOlxuIgogIjEgICAgICAgICAgLSBzZWxlY3QgYSBudW1iZXJlZCBpdGVtXG4iCkBAIC0zMjg3LDcgKzM0NjUsNyBAQAogIiAgICAgICAgICAgLSAoZW1wdHkpIHNlbGVjdCBub3RoaW5nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyOTcKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTgKIG1zZ2lkICIiCiAiUHJvbXB0IGhlbHA6XG4iCiAiMSAgICAgICAgICAtIHNlbGVjdCBhIHNpbmdsZSBpdGVtXG4iCkBAIC0zMjk5LDM1ICszNDc3LDM1IEBACiAiICAgICAgICAgICAtIChlbXB0eSkgZmluaXNoIHNlbGVjdGluZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6NTE1CisjOiBidWlsdGluL2NsZWFuLmM6NTE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkh1aCAoJXMpPyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6NjU4CisjOiBidWlsdGluL2NsZWFuLmM6NjU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIklucHV0IGlnbm9yZSBwYXR0ZXJucz4+ICIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6Njk1CisjOiBidWlsdGluL2NsZWFuLmM6Njk2CiAjLCBjLWZvcm1hdAogbXNnaWQgIldBUk5JTkc6IENhbm5vdCBmaW5kIGl0ZW1zIG1hdGNoZWQgYnk6ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo3MTYKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3MTcKIG1zZ2lkICJTZWxlY3QgaXRlbXMgdG8gZGVsZXRlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo3NTYKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVtb3ZlICVzPyAiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjc4MQorIzogYnVpbHRpbi9jbGVhbi5jOjc4MgogbXNnaWQgIkJ5ZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjc4OQorIzogYnVpbHRpbi9jbGVhbi5jOjc5MAogbXNnaWQgIiIKICJjbGVhbiAgICAgICAgICAgICAgIC0gc3RhcnQgY2xlYW5pbmdcbiIKICJmaWx0ZXIgYnkgcGF0dGVybiAgIC0gZXhjbHVkZSBpdGVtcyBmcm9tIGRlbGV0aW9uXG4iCkBAIC0zMzM4LDIxICszNTE2LDIxIEBACiAiPyAgICAgICAgICAgICAgICAgICAtIGhlbHAgZm9yIHByb21wdCBzZWxlY3Rpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjgxNgorIzogYnVpbHRpbi9jbGVhbi5jOjgxNwogbXNnaWQgIioqKiBDb21tYW5kcyAqKioiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjgxNworIzogYnVpbHRpbi9jbGVhbi5jOjgxOAogbXNnaWQgIldoYXQgbm93IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo4MjUKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4MjYKIG1zZ2lkICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtOiIKIG1zZ2lkX3BsdXJhbCAiV291bGQgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgaXRlbXM6IgogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjg0MgorIzogYnVpbHRpbi9jbGVhbi5jOjg0MwogbXNnaWQgIk5vIG1vcmUgZmlsZXMgdG8gY2xlYW4sIGV4aXRpbmcuIgogbXNnc3RyICIiCiAKQEAgLTMzNzIsOCArMzU1MCw4IEBACiBtc2dpZCAicmVtb3ZlIHdob2xlIGRpcmVjdG9yaWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo4ODAgYnVpbHRpbi9kZXNjcmliZS5jOjQyMCBidWlsdGluL2dyZXAuYzo3MTYKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMgYnVpbHRpbi9uYW1lLXJldi5jOjMxNSBidWlsdGluL3Nob3ctcmVmLmM6MTg2CisjOiBidWlsdGluL2NsZWFuLmM6ODgwIGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjAgYnVpbHRpbi9ncmVwLmM6NzE4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgzIGJ1aWx0aW4vbmFtZS1yZXYuYzozMTUgYnVpbHRpbi9zaG93LXJlZi5jOjE4NQogbXNnaWQgInBhdHRlcm4iCiBtc2dzdHIgIiIKIApAQCAtMzQwOSw4ICszNTg3LDggQEAKIG1zZ2lkICJnaXQgY2xvbmUgW29wdGlvbnNdIFstLV0gPHJlcG8+IFs8ZGlyPl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY0IGJ1aWx0aW4vZmV0Y2guYzo4MiBidWlsdGluL21lcmdlLmM6MjI5Ci0jOiBidWlsdGluL3B1c2guYzo0NjIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NCBidWlsdGluL2ZldGNoLmM6OTYgYnVpbHRpbi9tZXJnZS5jOjIyOQorIzogYnVpbHRpbi9wdXNoLmM6NDc0CiBtc2dpZCAiZm9yY2UgcHJvZ3Jlc3MgcmVwb3J0aW5nIgogbXNnc3RyICIiCiAKQEAgLTM0MjIsMjI3ICszNjAwLDIyMiBAQAogbXNnaWQgImNyZWF0ZSBhIGJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3MQogbXNnaWQgImNyZWF0ZSBhIG1pcnJvciByZXBvc2l0b3J5IChpbXBsaWVzIGJhcmUpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NAorIzogYnVpbHRpbi9jbG9uZS5jOjczCiBtc2dpZCAidG8gY2xvbmUgZnJvbSBhIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc2CisjOiBidWlsdGluL2Nsb25lLmM6NzUKIG1zZ2lkICJkb24ndCB1c2UgbG9jYWwgaGFyZGxpbmtzLCBhbHdheXMgY29weSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NwogbXNnaWQgInNldHVwIGFzIHNoYXJlZCByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MCBidWlsdGluL2Nsb25lLmM6ODIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OSBidWlsdGluL2Nsb25lLmM6ODEKIG1zZ2lkICJpbml0aWFsaXplIHN1Ym1vZHVsZXMgaW4gdGhlIGNsb25lIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MyBidWlsdGluL2luaXQtZGIuYzo0ODUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MiBidWlsdGluL2luaXQtZGIuYzo0ODUKIG1zZ2lkICJ0ZW1wbGF0ZS1kaXJlY3RvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg0IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4NgorIzogYnVpbHRpbi9jbG9uZS5jOjgzIGJ1aWx0aW4vaW5pdC1kYi5jOjQ4NgogbXNnaWQgImRpcmVjdG9yeSBmcm9tIHdoaWNoIHRlbXBsYXRlcyB3aWxsIGJlIHVzZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg2CisjOiBidWlsdGluL2Nsb25lLmM6ODUKIG1zZ2lkICJyZWZlcmVuY2UgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODcgYnVpbHRpbi9jb2x1bW4uYzoyNiBidWlsdGluL21lcmdlLWZpbGUuYzo0NAorIzogYnVpbHRpbi9jbG9uZS5jOjg2IGJ1aWx0aW4vY29sdW1uLmM6MjYgYnVpbHRpbi9tZXJnZS1maWxlLmM6NDQKIG1zZ2lkICJuYW1lIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OAorIzogYnVpbHRpbi9jbG9uZS5jOjg3CiBtc2dpZCAidXNlIDxuYW1lPiBpbnN0ZWFkIG9mICdvcmlnaW4nIHRvIHRyYWNrIHVwc3RyZWFtIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MAorIzogYnVpbHRpbi9jbG9uZS5jOjg5CiBtc2dpZCAiY2hlY2tvdXQgPGJyYW5jaD4gaW5zdGVhZCBvZiB0aGUgcmVtb3RlJ3MgSEVBRCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MQogbXNnaWQgInBhdGggdG8gZ2l0LXVwbG9hZC1wYWNrIG9uIHRoZSByZW1vdGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkzIGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MiBidWlsdGluL2ZldGNoLmM6OTcgYnVpbHRpbi9ncmVwLmM6NjYzCiBtc2dpZCAiZGVwdGgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk0CisjOiBidWlsdGluL2Nsb25lLmM6OTMKIG1zZ2lkICJjcmVhdGUgYSBzaGFsbG93IGNsb25lIG9mIHRoYXQgZGVwdGgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk2CisjOiBidWlsdGluL2Nsb25lLmM6OTUKIG1zZ2lkICJjbG9uZSBvbmx5IG9uZSBicmFuY2gsIEhFQUQgb3IgLS1icmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk3IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAorIzogYnVpbHRpbi9jbG9uZS5jOjk2IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAogbXNnaWQgImdpdGRpciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTggYnVpbHRpbi9pbml0LWRiLmM6NDk1CisjOiBidWlsdGluL2Nsb25lLmM6OTcgYnVpbHRpbi9pbml0LWRiLmM6NDk1CiBtc2dpZCAic2VwYXJhdGUgZ2l0IGRpciBmcm9tIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5OAogbXNnaWQgImtleT12YWx1ZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAwCisjOiBidWlsdGluL2Nsb25lLmM6OTkKIG1zZ2lkICJzZXQgY29uZmlnIGluc2lkZSB0aGUgbmV3IHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjI1MworIzogYnVpbHRpbi9jbG9uZS5jOjI1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWZlcmVuY2UgcmVwb3NpdG9yeSAnJXMnIGlzIG5vdCBhIGxvY2FsIHJlcG9zaXRvcnkuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMTYKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzE4IGJ1aWx0aW4vZGlmZi5jOjc3CisjOiBidWlsdGluL2Nsb25lLmM6MzE3IGJ1aWx0aW4vZGlmZi5jOjc3CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzdGF0ICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMyMAorIzogYnVpbHRpbi9jbG9uZS5jOjMxOQogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBleGlzdHMgYW5kIGlzIG5vdCBhIGRpcmVjdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzM0CisjOiBidWlsdGluL2Nsb25lLmM6MzMzCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzdGF0ICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM1NgorIzogYnVpbHRpbi9jbG9uZS5jOjM1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGxpbmsgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzYwCisjOiBidWlsdGluL2Nsb25lLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjb3B5IGZpbGUgdG8gJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzgzCisjOiBidWlsdGluL2Nsb25lLmM6MzgyIGJ1aWx0aW4vY2xvbmUuYzo1NTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZG9uZS5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Mzk2CisjOiBidWlsdGluL2Nsb25lLmM6Mzk1CiBtc2dpZCAiIgogIkNsb25lIHN1Y2NlZWRlZCwgYnV0IGNoZWNrb3V0IGZhaWxlZC5cbiIKICJZb3UgY2FuIGluc3BlY3Qgd2hhdCB3YXMgY2hlY2tlZCBvdXQgd2l0aCAnZ2l0IHN0YXR1cydcbiIKICJhbmQgcmV0cnkgdGhlIGNoZWNrb3V0IHdpdGggJ2dpdCBjaGVja291dCAtZiBIRUFEJ1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo0NzUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo0NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZpbmQgcmVtb3RlIGJyYW5jaCAlcyB0byBjbG9uZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjU1NQorIzogYnVpbHRpbi9jbG9uZS5jOjU1NAogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGVja2luZyBjb25uZWN0aXZpdHkuLi4gIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo1NTgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTcKIG1zZ2lkICJyZW1vdGUgZGlkIG5vdCBzZW5kIGFsbCBuZWNlc3Nhcnkgb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NTYwCi0jLCBjLWZvcm1hdAotbXNnaWQgImRvbmVcbiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2Nsb25lLmM6NjIxCisjOiBidWlsdGluL2Nsb25lLmM6NjIwCiBtc2dpZCAicmVtb3RlIEhFQUQgcmVmZXJzIHRvIG5vbmV4aXN0ZW50IHJlZiwgdW5hYmxlIHRvIGNoZWNrb3V0LlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NTIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NTEKIG1zZ2lkICJ1bmFibGUgdG8gY2hlY2tvdXQgd29ya2luZyB0cmVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NjAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NTkKIG1zZ2lkICJUb28gbWFueSBhcmd1bWVudHMuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NjQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NjMKIG1zZ2lkICJZb3UgbXVzdCBzcGVjaWZ5IGEgcmVwb3NpdG9yeSB0byBjbG9uZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc3NQorIzogYnVpbHRpbi9jbG9uZS5jOjc3NAogIywgYy1mb3JtYXQKIG1zZ2lkICItLWJhcmUgYW5kIC0tb3JpZ2luICVzIG9wdGlvbnMgYXJlIGluY29tcGF0aWJsZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc3OAorIzogYnVpbHRpbi9jbG9uZS5jOjc3NwogbXNnaWQgIi0tYmFyZSBhbmQgLS1zZXBhcmF0ZS1naXQtZGlyIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OTEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTAKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVwb3NpdG9yeSAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OTYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTUKIG1zZ2lkICItLWRlcHRoIGlzIGlnbm9yZWQgaW4gbG9jYWwgY2xvbmVzOyB1c2UgZmlsZTovLyBpbnN0ZWFkLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzk4CisjOiBidWlsdGluL2Nsb25lLmM6Nzk3CiBtc2dpZCAiLS1sb2NhbCBpcyBpZ25vcmVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MDgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVzdGluYXRpb24gcGF0aCAnJXMnIGFscmVhZHkgZXhpc3RzIGFuZCBpcyBub3QgYW4gZW1wdHkgZGlyZWN0b3J5LiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODE4CisjOiBidWlsdGluL2Nsb25lLmM6ODE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIndvcmtpbmcgdHJlZSAnJXMnIGFscmVhZHkgZXhpc3RzLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODMxIGJ1aWx0aW4vY2xvbmUuYzo4NDMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MzAgYnVpbHRpbi9jbG9uZS5jOjg0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIGxlYWRpbmcgZGlyZWN0b3JpZXMgb2YgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODM0CisjOiBidWlsdGluL2Nsb25lLmM6ODMzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgd29yayB0cmVlIGRpciAnJXMnLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODUzCisjOiBidWlsdGluL2Nsb25lLmM6ODUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNsb25pbmcgaW50byBiYXJlIHJlcG9zaXRvcnkgJyVzJy4uLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NTUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xvbmluZyBpbnRvICclcycuLi5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODkwCisjOiBidWlsdGluL2Nsb25lLmM6ODg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGNsb25lICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NDIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MzkgYnVpbHRpbi9jbG9uZS5jOjk0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdGUgYnJhbmNoICVzIG5vdCBmb3VuZCBpbiB1cHN0cmVhbSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTQ5CisjOiBidWlsdGluL2Nsb25lLmM6OTUwCiBtc2dpZCAiWW91IGFwcGVhciB0byBoYXZlIGNsb25lZCBhbiBlbXB0eSByZXBvc2l0b3J5LiIKIG1zZ3N0ciAiIgogCkBAIC0zNjc4LDE1ICszODUxLDE1IEBACiBtc2dpZCAiLS1jb21tYW5kIG11c3QgYmUgdGhlIGZpcnN0IGFyZ3VtZW50IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzYKIG1zZ2lkICJnaXQgY29tbWl0IFtvcHRpb25zXSBbLS1dIDxwYXRoc3BlYz4uLi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MAorIzogYnVpbHRpbi9jb21taXQuYzo0MQogbXNnaWQgImdpdCBzdGF0dXMgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQ1CisjOiBidWlsdGluL2NvbW1pdC5jOjQ2CiBtc2dpZCAiIgogIllvdXIgbmFtZSBhbmQgZW1haWwgYWRkcmVzcyB3ZXJlIGNvbmZpZ3VyZWQgYXV0b21hdGljYWxseSBiYXNlZFxuIgogIm9uIHlvdXIgdXNlcm5hbWUgYW5kIGhvc3RuYW1lLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGV5IGFyZSBhY2N1cmF0ZS5cbiIKQEAgLTM3MDAsMTQgKzM4NzMsMTQgQEAKICIgICAgZ2l0IGNvbW1pdCAtLWFtZW5kIC0tcmVzZXQtYXV0aG9yXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NworIzogYnVpbHRpbi9jb21taXQuYzo1OAogbXNnaWQgIiIKICJZb3UgYXNrZWQgdG8gYW1lbmQgdGhlIG1vc3QgcmVjZW50IGNvbW1pdCwgYnV0IGRvaW5nIHNvIHdvdWxkIG1ha2VcbiIKICJpdCBlbXB0eS4gWW91IGNhbiByZXBlYXQgeW91ciBjb21tYW5kIHdpdGggLS1hbGxvdy1lbXB0eSwgb3IgeW91IGNhblxuIgogInJlbW92ZSB0aGUgY29tbWl0IGVudGlyZWx5IHdpdGggXCJnaXQgcmVzZXQgSEVBRF5cIi5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYyCisjOiBidWlsdGluL2NvbW1pdC5jOjYzCiBtc2dpZCAiIgogIlRoZSBwcmV2aW91cyBjaGVycnktcGljayBpcyBub3cgZW1wdHksIHBvc3NpYmx5IGR1ZSB0byBjb25mbGljdCByZXNvbHV0aW9uLlxuIgogIklmIHlvdSB3aXNoIHRvIGNvbW1pdCBpdCBhbnl3YXksIHVzZTpcbiIKQEAgLTM3MTYsMTEgKzM4ODksMTEgQEAKICJcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY5CisjOiBidWlsdGluL2NvbW1pdC5jOjcwCiBtc2dpZCAiT3RoZXJ3aXNlLCBwbGVhc2UgdXNlICdnaXQgcmVzZXQnXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MgorIzogYnVpbHRpbi9jb21taXQuYzo3MwogbXNnaWQgIiIKICJJZiB5b3Ugd2lzaCB0byBza2lwIHRoaXMgY29tbWl0LCB1c2U6XG4iCiAiXG4iCkBAIC0zNzMwLDkzICszOTAzLDkzIEBACiAidGhlIHJlbWFpbmluZyBjb21taXRzLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6Mjc5CisjOiBidWlsdGluL2NvbW1pdC5jOjI4NwogbXNnaWQgImZhaWxlZCB0byB1bnBhY2sgSEVBRCB0cmVlIG9iamVjdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMyMQorIzogYnVpbHRpbi9jb21taXQuYzozMjkKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRlbXBvcmFyeSBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMyNworIzogYnVpbHRpbi9jb21taXQuYzozMzUKIG1zZ2lkICJpbnRlcmFjdGl2ZSBhZGQgZmFpbGVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzYwIGJ1aWx0aW4vY29tbWl0LmM6MzgxIGJ1aWx0aW4vY29tbWl0LmM6NDMxCisjOiBidWlsdGluL2NvbW1pdC5jOjM2OCBidWlsdGluL2NvbW1pdC5jOjM4OSBidWlsdGluL2NvbW1pdC5jOjQzOQogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBuZXdfaW5kZXggZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQxMgorIzogYnVpbHRpbi9jb21taXQuYzo0MjAKIG1zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBtZXJnZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MTQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDIyCiBtc2dpZCAiY2Fubm90IGRvIGEgcGFydGlhbCBjb21taXQgZHVyaW5nIGEgY2hlcnJ5LXBpY2suIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDI0CisjOiBidWlsdGluL2NvbW1pdC5jOjQzMgogbXNnaWQgImNhbm5vdCByZWFkIHRoZSBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQ0NAorIzogYnVpbHRpbi9jb21taXQuYzo0NTIKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgdGVtcG9yYXJ5IGluZGV4IGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1MzUgYnVpbHRpbi9jb21taXQuYzo1NDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTQzIGJ1aWx0aW4vY29tbWl0LmM6NTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgY29tbWl0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU2MworIzogYnVpbHRpbi9jb21taXQuYzo1NzEKIG1zZ2lkICJtYWxmb3JtZWQgLS1hdXRob3IgcGFyYW1ldGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTgzCisjOiBidWlsdGluL2NvbW1pdC5jOjU5MQogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgaWRlbnQgc3RyaW5nOiAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjIxIGJ1aWx0aW4vY29tbWl0LmM6NjU0IGJ1aWx0aW4vY29tbWl0LmM6OTgyCisjOiBidWlsdGluL2NvbW1pdC5jOjYzMCBidWlsdGluL2NvbW1pdC5jOjY2MyBidWlsdGluL2NvbW1pdC5jOjEwMDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGxvb2t1cCBjb21taXQgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MzMgYnVpbHRpbi9zaG9ydGxvZy5jOjI3MQorIzogYnVpbHRpbi9jb21taXQuYzo2NDIgYnVpbHRpbi9zaG9ydGxvZy5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICIocmVhZGluZyBsb2cgbWVzc2FnZSBmcm9tIHN0YW5kYXJkIGlucHV0KVxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjM1CisjOiBidWlsdGluL2NvbW1pdC5jOjY0NAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjM5CisjOiBidWlsdGluL2NvbW1pdC5jOjY0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBsb2cgZmlsZSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ1CisjOiBidWlsdGluL2NvbW1pdC5jOjY1NAogbXNnaWQgImNvbW1pdCBoYXMgZW1wdHkgbWVzc2FnZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY2MQorIzogYnVpbHRpbi9jb21taXQuYzo2NzAKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NU0ciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Njc0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgU1FVQVNIX01TRyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY2OQorIzogYnVpbHRpbi9jb21taXQuYzo2NzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjczMAorIzogYnVpbHRpbi9jb21taXQuYzo3NDkKIG1zZ2lkICJjb3VsZCBub3Qgd3JpdGUgY29tbWl0IHRlbXBsYXRlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzQxCisjOiBidWlsdGluL2NvbW1pdC5jOjc2MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC0zODI2LDcgKzM5OTksNyBAQAogImFuZCB0cnkgYWdhaW4uXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NDYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzY1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTM4MzYsMTQgKzQwMDksMTQgQEAKICJhbmQgdHJ5IGFnYWluLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzU4CisjOiBidWlsdGluL2NvbW1pdC5jOjc3NwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgogIndpdGggJyVjJyB3aWxsIGJlIGlnbm9yZWQsIGFuZCBhbiBlbXB0eSBtZXNzYWdlIGFib3J0cyB0aGUgY29tbWl0LlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzYzCisjOiBidWlsdGluL2NvbW1pdC5jOjc4MgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgpAQCAtMzg1MSw0NzggKzQwMjQsNDgyIEBACiAiQW4gZW1wdHkgbWVzc2FnZSBhYm9ydHMgdGhlIGNvbW1pdC5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc3NgorIzogYnVpbHRpbi9jb21taXQuYzo3OTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXNBdXRob3I6ICAgICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzgzCisjOiBidWlsdGluL2NvbW1pdC5jOjgwMgogIywgYy1mb3JtYXQKIG1zZ2lkICIlc0NvbW1pdHRlcjogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4MDMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODIyCiBtc2dpZCAiQ2Fubm90IHJlYWQgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4NDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODY1CiBtc2dpZCAiRXJyb3IgYnVpbGRpbmcgdHJlZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4NjAgYnVpbHRpbi90YWcuYzozNTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODgwIGJ1aWx0aW4vdGFnLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlBsZWFzZSBzdXBwbHkgdGhlIG1lc3NhZ2UgdXNpbmcgZWl0aGVyIC1tIG9yIC1GIG9wdGlvbi5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk1NworIzogYnVpbHRpbi9jb21taXQuYzo5ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gZXhpc3RpbmcgYXV0aG9yIGZvdW5kIHdpdGggJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk3MiBidWlsdGluL2NvbW1pdC5jOjEyMDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTk3IGJ1aWx0aW4vY29tbWl0LmM6MTIzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHVudHJhY2tlZCBmaWxlcyBtb2RlICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDA5CisjOiBidWlsdGluL2NvbW1pdC5jOjEwMzQKIG1zZ2lkICItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDM5CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNjQKIG1zZ2lkICJVc2luZyBib3RoIC0tcmVzZXQtYXV0aG9yIGFuZCAtLWF1dGhvciBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MAorIzogYnVpbHRpbi9jb21taXQuYzoxMDc1CiBtc2dpZCAiWW91IGhhdmUgbm90aGluZyB0byBhbWVuZC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDUzCisjOiBidWlsdGluL2NvbW1pdC5jOjEwNzgKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZSAtLSBjYW5ub3QgYW1lbmQuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1NQorIzogYnVpbHRpbi9jb21taXQuYzoxMDgwCiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgY2hlcnJ5LXBpY2sgLS0gY2Fubm90IGFtZW5kLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA4MwogbXNnaWQgIk9wdGlvbnMgLS1zcXVhc2ggYW5kIC0tZml4dXAgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDY4CisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTMKIG1zZ2lkICJPbmx5IG9uZSBvZiAtYy8tQy8tRi8tLWZpeHVwIGNhbiBiZSB1c2VkLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NQogbXNnaWQgIk9wdGlvbiAtbSBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCAtYy8tQy8tRi8tLWZpeHVwLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTEwMwogbXNnaWQgIi0tcmVzZXQtYXV0aG9yIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCAtQywgLWMgb3IgLS1hbWVuZC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDk1CisjOiBidWlsdGluL2NvbW1pdC5jOjExMjAKIG1zZ2lkICJPbmx5IG9uZSBvZiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCBjYW4gYmUgdXNlZC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDk3CisjOiBidWlsdGluL2NvbW1pdC5jOjExMjIKIG1zZ2lkICJObyBwYXRocyB3aXRoIC0taW5jbHVkZS8tLW9ubHkgZG9lcyBub3QgbWFrZSBzZW5zZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDk5CisjOiBidWlsdGluL2NvbW1pdC5jOjExMjQKIG1zZ2lkICJDbGV2ZXIuLi4gYW1lbmRpbmcgdGhlIGxhc3Qgb25lIHdpdGggZGlydHkgaW5kZXguIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTEwMQorIzogYnVpbHRpbi9jb21taXQuYzoxMTI2CiBtc2dpZCAiRXhwbGljaXQgcGF0aHMgc3BlY2lmaWVkIHdpdGhvdXQgLWkgbm9yIC1vOyBhc3N1bWluZyAtLW9ubHkgcGF0aHMuLi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTExIGJ1aWx0aW4vdGFnLmM6NTc1CisjOiBidWlsdGluL2NvbW1pdC5jOjExMzYgYnVpbHRpbi90YWcuYzo1NzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBjbGVhbnVwIG1vZGUgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTE2CisjOiBidWlsdGluL2NvbW1pdC5jOjExNDEKIG1zZ2lkICJQYXRocyB3aXRoIC1hIGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyMiBidWlsdGluL2NvbW1pdC5jOjE0NTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI1MSBidWlsdGluL2NvbW1pdC5jOjE0ODIKIG1zZ2lkICJzaG93IHN0YXR1cyBjb25jaXNlbHkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjI0IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NworIzogYnVpbHRpbi9jb21taXQuYzoxMjUzIGJ1aWx0aW4vY29tbWl0LmM6MTQ4NAogbXNnaWQgInNob3cgYnJhbmNoIGluZm9ybWF0aW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyNiBidWlsdGluL2NvbW1pdC5jOjE0NTkgYnVpbHRpbi9wdXNoLmM6NDUyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNTUgYnVpbHRpbi9jb21taXQuYzoxNDg2IGJ1aWx0aW4vcHVzaC5jOjQ2MAogbXNnaWQgIm1hY2hpbmUtcmVhZGFibGUgb3V0cHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyOSBidWlsdGluL2NvbW1pdC5jOjE0NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI1OCBidWlsdGluL2NvbW1pdC5jOjE0ODgKIG1zZ2lkICJzaG93IHN0YXR1cyBpbiBsb25nIGZvcm1hdCAoZGVmYXVsdCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjMyIGJ1aWx0aW4vY29tbWl0LmM6MTQ2NAorIzogYnVpbHRpbi9jb21taXQuYzoxMjYxIGJ1aWx0aW4vY29tbWl0LmM6MTQ5MQogbXNnaWQgInRlcm1pbmF0ZSBlbnRyaWVzIHdpdGggTlVMIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNCBidWlsdGluL2NvbW1pdC5jOjE0NjcgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NwotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MCBidWlsdGluL3RhZy5jOjQ1OQorIzogYnVpbHRpbi9jb21taXQuYzoxMjYzIGJ1aWx0aW4vY29tbWl0LmM6MTQ5NCBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc3IGJ1aWx0aW4vdGFnLmM6NDU5CiBtc2dpZCAibW9kZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyMzUgYnVpbHRpbi9jb21taXQuYzoxNDY3CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNjQgYnVpbHRpbi9jb21taXQuYzoxNDk0CiBtc2dpZCAic2hvdyB1bnRyYWNrZWQgZmlsZXMsIG9wdGlvbmFsIG1vZGVzOiBhbGwsIG5vcm1hbCwgbm8uIChEZWZhdWx0OiBhbGwpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzOAorIzogYnVpbHRpbi9jb21taXQuYzoxMjY3CiBtc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzOSBwYXJzZS1vcHRpb25zLmg6MTU0CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNjggcGFyc2Utb3B0aW9ucy5oOjE1NgogbXNnaWQgIndoZW4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjQwCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNjkKIG1zZ2lkICIiCiAiaWdub3JlIGNoYW5nZXMgdG8gc3VibW9kdWxlcywgb3B0aW9uYWwgd2hlbjogYWxsLCBkaXJ0eSwgdW50cmFja2VkLiAiCiAiKERlZmF1bHQ6IGFsbCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjQyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNzEKIG1zZ2lkICJsaXN0IHVudHJhY2tlZCBmaWxlcyBpbiBjb2x1bW5zIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxMworIzogYnVpbHRpbi9jb21taXQuYzoxMzQwCiBtc2dpZCAiY291bGRuJ3QgbG9vayB1cCBuZXdseSBjcmVhdGVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzMTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM0MgogbXNnaWQgImNvdWxkIG5vdCBwYXJzZSBuZXdseSBjcmVhdGVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4MwogbXNnaWQgImRldGFjaGVkIEhFQUQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzU4CisjOiBidWlsdGluL2NvbW1pdC5jOjEzODUKIG1zZ2lkICIgKHJvb3QtY29tbWl0KSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MgogbXNnaWQgInN1cHByZXNzIHN1bW1hcnkgYWZ0ZXIgc3VjY2Vzc2Z1bCBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDI2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTMKIG1zZ2lkICJzaG93IGRpZmYgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDI4CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTUKIG1zZ2lkICJDb21taXQgbWVzc2FnZSBvcHRpb25zIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyOSBidWlsdGluL3RhZy5jOjQ1NworIzogYnVpbHRpbi9jb21taXQuYzoxNDU2IGJ1aWx0aW4vdGFnLmM6NDU3CiBtc2dpZCAicmVhZCBtZXNzYWdlIGZyb20gZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NwogbXNnaWQgImF1dGhvciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NwogbXNnaWQgIm92ZXJyaWRlIGF1dGhvciBmb3IgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMSBidWlsdGluL2djLmM6MTc4CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTggYnVpbHRpbi9nYy5jOjI2MAogbXNnaWQgImRhdGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTgKIG1zZ2lkICJvdmVycmlkZSBkYXRlIGZvciBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMyIGJ1aWx0aW4vbWVyZ2UuYzoyMjMgYnVpbHRpbi9ub3Rlcy5jOjQwNQorIzogYnVpbHRpbi9jb21taXQuYzoxNDU5IGJ1aWx0aW4vbWVyZ2UuYzoyMjMgYnVpbHRpbi9ub3Rlcy5jOjQwNQogIzogYnVpbHRpbi9ub3Rlcy5jOjU2MiBidWlsdGluL3RhZy5jOjQ1NQogbXNnaWQgIm1lc3NhZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMyCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTkKIG1zZ2lkICJjb21taXQgbWVzc2FnZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MAogbXNnaWQgInJldXNlIGFuZCBlZGl0IG1lc3NhZ2UgZnJvbSBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNAorIzogYnVpbHRpbi9jb21taXQuYzoxNDYxCiBtc2dpZCAicmV1c2UgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDM1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjIKIG1zZ2lkICJ1c2UgYXV0b3NxdWFzaCBmb3JtYXR0ZWQgbWVzc2FnZSB0byBmaXh1cCBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNgorIzogYnVpbHRpbi9jb21taXQuYzoxNDYzCiBtc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gc3F1YXNoIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDM3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjQKIG1zZ2lkICJ0aGUgY29tbWl0IGlzIGF1dGhvcmVkIGJ5IG1lIG5vdyAodXNlZCB3aXRoIC1DLy1jLy0tYW1lbmQpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzOCBidWlsdGluL2xvZy5jOjExNjAgYnVpbHRpbi9yZXZlcnQuYzoxMTEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NSBidWlsdGluL2xvZy5jOjExODAgYnVpbHRpbi9yZXZlcnQuYzo4NgogbXNnaWQgImFkZCBTaWduZWQtb2ZmLWJ5OiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NgogbXNnaWQgInVzZSBzcGVjaWZpZWQgdGVtcGxhdGUgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NwogbXNnaWQgImZvcmNlIGVkaXQgb2YgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDY4CiBtc2dpZCAiZGVmYXVsdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDEgYnVpbHRpbi90YWcuYzo0NjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2OCBidWlsdGluL3RhZy5jOjQ2MAogbXNnaWQgImhvdyB0byBzdHJpcCBzcGFjZXMgYW5kICNjb21tZW50cyBmcm9tIG1lc3NhZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDQyCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjkKIG1zZ2lkICJpbmNsdWRlIHN0YXR1cyBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDMgYnVpbHRpbi9tZXJnZS5jOjIzMCBidWlsdGluL3RhZy5jOjQ2MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDcwIGJ1aWx0aW4vbWVyZ2UuYzoyMzAgYnVpbHRpbi90YWcuYzo0NjEKIG1zZ2lkICJrZXkgaWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDQ0IGJ1aWx0aW4vbWVyZ2UuYzoyMzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3MSBidWlsdGluL21lcmdlLmM6MjMxCiBtc2dpZCAiR1BHIHNpZ24gY29tbWl0IgogbXNnc3RyICIiCiAKICMuIGVuZCBjb21taXQgbWVzc2FnZSBvcHRpb25zCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3NAogbXNnaWQgIkNvbW1pdCBjb250ZW50cyBvcHRpb25zIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDc1CiBtc2dpZCAiY29tbWl0IGFsbCBjaGFuZ2VkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0OQorIzogYnVpbHRpbi9jb21taXQuYzoxNDc2CiBtc2dpZCAiYWRkIHNwZWNpZmllZCBmaWxlcyB0byBpbmRleCBmb3IgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDc3CiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDUxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzgKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBjaGFuZ2VzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MgorIzogYnVpbHRpbi9jb21taXQuYzoxNDc5CiBtc2dpZCAiY29tbWl0IG9ubHkgc3BlY2lmaWVkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MworIzogYnVpbHRpbi9jb21taXQuYzoxNDgwCiBtc2dpZCAiYnlwYXNzIHByZS1jb21taXQgaG9vayIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NTQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ4MQogbXNnaWQgInNob3cgd2hhdCB3b3VsZCBiZSBjb21taXR0ZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDY1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0OTIKIG1zZ2lkICJhbWVuZCBwcmV2aW91cyBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDY2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0OTMKIG1zZ2lkICJieXBhc3MgcG9zdC1yZXdyaXRlIGhvb2siCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDcxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0OTgKIG1zZ2lkICJvayB0byByZWNvcmQgYW4gZW1wdHkgY2hhbmdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3NAorIzogYnVpbHRpbi9jb21taXQuYzoxNTAwCiBtc2dpZCAib2sgdG8gcmVjb3JkIGEgY2hhbmdlIHdpdGggYW4gZW1wdHkgbWVzc2FnZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1MDcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTUyOQogbXNnaWQgImNvdWxkIG5vdCBwYXJzZSBIRUFEIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NDUgYnVpbHRpbi9tZXJnZS5jOjUyNQorIzogYnVpbHRpbi9jb21taXQuYzoxNTY3IGJ1aWx0aW4vbWVyZ2UuYzo1MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyBmb3IgcmVhZGluZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3JydXB0IE1FUkdFX0hFQUQgZmlsZSAoJXMpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU1OQorIzogYnVpbHRpbi9jb21taXQuYzoxNTgxCiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTU9ERSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBjb21taXQgbWVzc2FnZTogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTkyCisjOiBidWlsdGluL2NvbW1pdC5jOjE2MTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWJvcnRpbmcgY29tbWl0OyB5b3UgZGlkIG5vdCBlZGl0IHRoZSBtZXNzYWdlLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU5NworIzogYnVpbHRpbi9jb21taXQuYzoxNjE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdCBkdWUgdG8gZW1wdHkgY29tbWl0IG1lc3NhZ2UuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNjEyIGJ1aWx0aW4vbWVyZ2UuYzo4NjEgYnVpbHRpbi9tZXJnZS5jOjg4NgorIzogYnVpbHRpbi9jb21taXQuYzoxNjM0IGJ1aWx0aW4vbWVyZ2UuYzo4NjEgYnVpbHRpbi9tZXJnZS5jOjg4NgogbXNnaWQgImZhaWxlZCB0byB3cml0ZSBjb21taXQgb2JqZWN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTYzMworIzogYnVpbHRpbi9jb21taXQuYzoxNjU1CiBtc2dpZCAiY2Fubm90IGxvY2sgSEVBRCByZWYiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNjM3CisjOiBidWlsdGluL2NvbW1pdC5jOjE2NTkKIG1zZ2lkICJjYW5ub3QgdXBkYXRlIEhFQUQgcmVmIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTY0OAorIzogYnVpbHRpbi9jb21taXQuYzoxNjcwCiBtc2dpZCAiIgogIlJlcG9zaXRvcnkgaGFzIGJlZW4gdXBkYXRlZCwgYnV0IHVuYWJsZSB0byB3cml0ZVxuIgogIm5ld19pbmRleCBmaWxlLiBDaGVjayB0aGF0IGRpc2sgaXMgbm90IGZ1bGwgb3IgcXVvdGEgaXNcbiIKICJub3QgZXhjZWVkZWQsIGFuZCB0aGVuIFwiZ2l0IHJlc2V0IEhFQURcIiB0byByZWNvdmVyLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6OAogbXNnaWQgImdpdCBjb25maWcgW29wdGlvbnNdIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTIKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTQKIG1zZ2lkICJDb25maWcgZmlsZSBsb2NhdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjUzCisjOiBidWlsdGluL2NvbmZpZy5jOjU1CiBtc2dpZCAidXNlIGdsb2JhbCBjb25maWcgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU0CisjOiBidWlsdGluL2NvbmZpZy5jOjU2CiBtc2dpZCAidXNlIHN5c3RlbSBjb25maWcgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU1CisjOiBidWlsdGluL2NvbmZpZy5jOjU3CiBtc2dpZCAidXNlIHJlcG9zaXRvcnkgY29uZmlnIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NgorIzogYnVpbHRpbi9jb25maWcuYzo1OAogbXNnaWQgInVzZSBnaXZlbiBjb25maWcgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU3CisjOiBidWlsdGluL2NvbmZpZy5jOjU5CiBtc2dpZCAiYmxvYi1pZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU3CisjOiBidWlsdGluL2NvbmZpZy5jOjU5CiBtc2dpZCAicmVhZCBjb25maWcgZnJvbSBnaXZlbiBibG9iIG9iamVjdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU4CisjOiBidWlsdGluL2NvbmZpZy5jOjYwCiBtc2dpZCAiQWN0aW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjEKIG1zZ2lkICJnZXQgdmFsdWU6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYwCisjOiBidWlsdGluL2NvbmZpZy5jOjYyCiBtc2dpZCAiZ2V0IGFsbCB2YWx1ZXM6IGtleSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKIG1zZ2lkICJnZXQgdmFsdWVzIGZvciByZWdleHA6IG5hbWUtcmVnZXggW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYyCi1tc2dpZCAicmVwbGFjZSBhbGwgbWF0Y2hpbmcgdmFyaWFibGVzOiBuYW1lIHZhbHVlIFt2YWx1ZV9yZWdleF0iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb25maWcuYzo2MwotbXNnaWQgImFkZCBhIG5ldyB2YXJpYWJsZTogbmFtZSB2YWx1ZSIKLW1zZ3N0ciAiIgotCiAjOiBidWlsdGluL2NvbmZpZy5jOjY0Ci1tc2dpZCAicmVtb3ZlIGEgdmFyaWFibGU6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKK21zZ2lkICJnZXQgdmFsdWUgc3BlY2lmaWMgZm9yIHRoZSBVUkw6IHNlY3Rpb25bLnZhcl0gVVJMIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjUKLW1zZ2lkICJyZW1vdmUgYWxsIG1hdGNoZXM6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKK21zZ2lkICJyZXBsYWNlIGFsbCBtYXRjaGluZyB2YXJpYWJsZXM6IG5hbWUgdmFsdWUgW3ZhbHVlX3JlZ2V4XSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjY2Ci1tc2dpZCAicmVuYW1lIHNlY3Rpb246IG9sZC1uYW1lIG5ldy1uYW1lIgorbXNnaWQgImFkZCBhIG5ldyB2YXJpYWJsZTogbmFtZSB2YWx1ZSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjY3Ci1tc2dpZCAicmVtb3ZlIGEgc2VjdGlvbjogbmFtZSIKK21zZ2lkICJyZW1vdmUgYSB2YXJpYWJsZTogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjgKLW1zZ2lkICJsaXN0IGFsbCIKK21zZ2lkICJyZW1vdmUgYWxsIG1hdGNoZXM6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjY5Ci1tc2dpZCAib3BlbiBhbiBlZGl0b3IiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb25maWcuYzo3MCBidWlsdGluL2NvbmZpZy5jOjcxCi1tc2dpZCAic2xvdCIKK21zZ2lkICJyZW5hbWUgc2VjdGlvbjogb2xkLW5hbWUgbmV3LW5hbWUiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3MAotbXNnaWQgImZpbmQgdGhlIGNvbG9yIGNvbmZpZ3VyZWQ6IFtkZWZhdWx0XSIKK21zZ2lkICJyZW1vdmUgYSBzZWN0aW9uOiBuYW1lIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzEKLW1zZ2lkICJmaW5kIHRoZSBjb2xvciBzZXR0aW5nOiBbc3Rkb3V0LWlzLXR0eV0iCittc2dpZCAibGlzdCBhbGwiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3MgotbXNnaWQgIlR5cGUiCittc2dpZCAib3BlbiBhbiBlZGl0b3IiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo3MyBidWlsdGluL2NvbmZpZy5jOjc0Cittc2dpZCAic2xvdCIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjczCi1tc2dpZCAidmFsdWUgaXMgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiIgorbXNnaWQgImZpbmQgdGhlIGNvbG9yIGNvbmZpZ3VyZWQ6IFtkZWZhdWx0XSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjc0Ci1tc2dpZCAidmFsdWUgaXMgZGVjaW1hbCBudW1iZXIiCittc2dpZCAiZmluZCB0aGUgY29sb3Igc2V0dGluZzogW3N0ZG91dC1pcy10dHldIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzUKLW1zZ2lkICJ2YWx1ZSBpcyAtLWJvb2wgb3IgLS1pbnQiCittc2dpZCAiVHlwZSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjc2Ci1tc2dpZCAidmFsdWUgaXMgYSBwYXRoIChmaWxlIG9yIGRpcmVjdG9yeSBuYW1lKSIKK21zZ2lkICJ2YWx1ZSBpcyBcInRydWVcIiBvciBcImZhbHNlXCIiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3NwotbXNnaWQgIk90aGVyIgorbXNnaWQgInZhbHVlIGlzIGRlY2ltYWwgbnVtYmVyIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzgKLW1zZ2lkICJ0ZXJtaW5hdGUgdmFsdWVzIHdpdGggTlVMIGJ5dGUiCittc2dpZCAidmFsdWUgaXMgLS1ib29sIG9yIC0taW50IgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzkKK21zZ2lkICJ2YWx1ZSBpcyBhIHBhdGggKGZpbGUgb3IgZGlyZWN0b3J5IG5hbWUpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6ODAKK21zZ2lkICJPdGhlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjgxCittc2dpZCAidGVybWluYXRlIHZhbHVlcyB3aXRoIE5VTCBieXRlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6ODIKIG1zZ2lkICJyZXNwZWN0IGluY2x1ZGUgZGlyZWN0aXZlcyBvbiBsb29rdXAiCiBtc2dzdHIgIiIKIApAQCAtNDMzNSw3ICs0NTEyLDcgQEAKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKLW1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIDxjb21taXR0aXNoPioiCittc2dpZCAiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSA8Y29tbWl0LWlzaD4qIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNwpAQCAtNDQ2NSw3ICs0NjQyLDcgQEAKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDg5Ci1tc2dpZCAiLS1kaXJ0eSBpcyBpbmNvbXBhdGlibGUgd2l0aCBjb21taXR0aXNoZXMiCittc2dpZCAiLS1kaXJ0eSBpcyBpbmNvbXBhdGlibGUgd2l0aCBjb21taXQtaXNoZXMiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9kaWZmLmM6NzkKQEAgLTQ1MDEsMzkgKzQ2NzgsMzkgQEAKIG1zZ2lkICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjYKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzMKIG1zZ2lkICJzaG93IHByb2dyZXNzIGFmdGVyIDxuPiBvYmplY3RzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjgKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzUKIG1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2Ygc2lnbmVkIHRhZ3MiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MQorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3OAogbXNnaWQgInNlbGVjdCBoYW5kbGluZyBvZiB0YWdzIHRoYXQgdGFnIGZpbHRlcmVkIG9iamVjdHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MQogbXNnaWQgIkR1bXAgbWFya3MgdG8gdGhpcyBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzYKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODMKIG1zZ2lkICJJbXBvcnQgbWFya3MgZnJvbSB0aGlzIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3OAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4NQogbXNnaWQgIkZha2UgYSB0YWdnZXIgd2hlbiB0YWdzIGxhY2sgb25lIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODAKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODcKIG1zZ2lkICJPdXRwdXQgZnVsbCB0cmVlIGZvciBlYWNoIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgyCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njg5CiBtc2dpZCAiVXNlIHRoZSBkb25lIGZlYXR1cmUgdG8gdGVybWluYXRlIHRoZSBzdHJlYW0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY5MAogbXNnaWQgIlNraXAgb3V0cHV0IG9mIGJsb2IgZGF0YSIKIG1zZ3N0ciAiIgogCkBAIC00NTUzLDIzMCArNDczMCwyMzAgQEAKIG1zZ2lkICJnaXQgZmV0Y2ggLS1hbGwgWzxvcHRpb25zPl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjYwCisjOiBidWlsdGluL2ZldGNoLmM6NzQKIG1zZ2lkICJmZXRjaCBmcm9tIGFsbCByZW1vdGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2MgorIzogYnVpbHRpbi9mZXRjaC5jOjc2CiBtc2dpZCAiYXBwZW5kIHRvIC5naXQvRkVUQ0hfSEVBRCBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2NAorIzogYnVpbHRpbi9mZXRjaC5jOjc4CiBtc2dpZCAicGF0aCB0byB1cGxvYWQgcGFjayBvbiByZW1vdGUgZW5kIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2NQorIzogYnVpbHRpbi9mZXRjaC5jOjc5CiBtc2dpZCAiZm9yY2Ugb3ZlcndyaXRlIG9mIGxvY2FsIGJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NjcKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4MQogbXNnaWQgImZldGNoIGZyb20gbXVsdGlwbGUgcmVtb3RlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NjkKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4MwogbXNnaWQgImZldGNoIGFsbCB0YWdzIGFuZCBhc3NvY2lhdGVkIG9iamVjdHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjcxCisjOiBidWlsdGluL2ZldGNoLmM6ODUKIG1zZ2lkICJkbyBub3QgZmV0Y2ggYWxsIHRhZ3MgKC0tbm8tdGFncykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjczCisjOiBidWlsdGluL2ZldGNoLmM6ODcKIG1zZ2lkICJwcnVuZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMgbm8gbG9uZ2VyIG9uIHJlbW90ZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NzQKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4OAogbXNnaWQgIm9uLWRlbWFuZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NzUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4OQogbXNnaWQgImNvbnRyb2wgcmVjdXJzaXZlIGZldGNoaW5nIG9mIHN1Ym1vZHVsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc5CisjOiBidWlsdGluL2ZldGNoLmM6OTMKIG1zZ2lkICJrZWVwIGRvd25sb2FkZWQgcGFjayIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODEKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NQogbXNnaWQgImFsbG93IHVwZGF0aW5nIG9mIEhFQUQgcmVmIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4NAorIzogYnVpbHRpbi9mZXRjaC5jOjk4CiBtc2dpZCAiZGVlcGVuIGhpc3Rvcnkgb2Ygc2hhbGxvdyBjbG9uZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODYKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDAKIG1zZ2lkICJjb252ZXJ0IHRvIGEgY29tcGxldGUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODggYnVpbHRpbi9sb2cuYzoxMTc3CisjOiBidWlsdGluL2ZldGNoLmM6MTAyIGJ1aWx0aW4vbG9nLmM6MTE5NwogbXNnaWQgImRpciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODkKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDMKIG1zZ2lkICJwcmVwZW5kIHRoaXMgdG8gc3VibW9kdWxlIHBhdGggb3V0cHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MgorIzogYnVpbHRpbi9mZXRjaC5jOjEwNgogbXNnaWQgImRlZmF1bHQgbW9kZSBmb3IgcmVjdXJzaW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyMjAKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyMzYKIG1zZ2lkICJDb3VsZG4ndCBmaW5kIHJlbW90ZSByZWYgSEVBRCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjczCisjOiBidWlsdGluL2ZldGNoLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCAlcyBub3QgZm91bmQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI3OAorIzogYnVpbHRpbi9mZXRjaC5jOjI5NQogbXNnaWQgIlt1cCB0byBkYXRlXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjkyCisjOiBidWlsdGluL2ZldGNoLmM6MzA5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiEgJS0qcyAlLSpzIC0+ICVzICAoY2FuJ3QgZmV0Y2ggaW4gY3VycmVudCBicmFuY2gpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyOTMgYnVpbHRpbi9mZXRjaC5jOjM3OQorIzogYnVpbHRpbi9mZXRjaC5jOjMxMCBidWlsdGluL2ZldGNoLmM6Mzk2CiBtc2dpZCAiW3JlamVjdGVkXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzA0CisjOiBidWlsdGluL2ZldGNoLmM6MzIxCiBtc2dpZCAiW3RhZyB1cGRhdGVdIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMDYgYnVpbHRpbi9mZXRjaC5jOjM0MSBidWlsdGluL2ZldGNoLmM6MzU5CisjOiBidWlsdGluL2ZldGNoLmM6MzIzIGJ1aWx0aW4vZmV0Y2guYzozNTggYnVpbHRpbi9mZXRjaC5jOjM3NgogbXNnaWQgIiAgKHVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzI0CisjOiBidWlsdGluL2ZldGNoLmM6MzQxCiBtc2dpZCAiW25ldyB0YWddIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMjcKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNDQKIG1zZ2lkICJbbmV3IGJyYW5jaF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMzMAorIzogYnVpbHRpbi9mZXRjaC5jOjM0NwogbXNnaWQgIltuZXcgcmVmXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mzc1CisjOiBidWlsdGluL2ZldGNoLmM6MzkyCiBtc2dpZCAidW5hYmxlIHRvIHVwZGF0ZSBsb2NhbCByZWYiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM3NQorIzogYnVpbHRpbi9mZXRjaC5jOjM5MgogbXNnaWQgImZvcmNlZCB1cGRhdGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM4MQorIzogYnVpbHRpbi9mZXRjaC5jOjM5OAogbXNnaWQgIihub24tZmFzdC1mb3J3YXJkKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDEyIGJ1aWx0aW4vZmV0Y2guYzo3MTgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo0MjkgYnVpbHRpbi9mZXRjaC5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAlczogJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDIxCisjOiBidWlsdGluL2ZldGNoLmM6NDM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTIwCisjOiBidWlsdGluL2ZldGNoLmM6NTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZyb20gJS4qc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1MzEKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1NDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogInNvbWUgbG9jYWwgcmVmcyBjb3VsZCBub3QgYmUgdXBkYXRlZDsgdHJ5IHJ1bm5pbmdcbiIKICIgJ2dpdCByZW1vdGUgcHJ1bmUgJXMnIHRvIHJlbW92ZSBhbnkgb2xkLCBjb25mbGljdGluZyBicmFuY2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTgxCisjOiBidWlsdGluL2ZldGNoLmM6NTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICglcyB3aWxsIGJlY29tZSBkYW5nbGluZykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU4MgorIzogYnVpbHRpbi9mZXRjaC5jOjU5OQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAoJXMgaGFzIGJlY29tZSBkYW5nbGluZykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU4OQorIzogYnVpbHRpbi9mZXRjaC5jOjYwNgogbXNnaWQgIltkZWxldGVkXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTkwIGJ1aWx0aW4vcmVtb3RlLmM6MTA1NQorIzogYnVpbHRpbi9mZXRjaC5jOjYwNyBidWlsdGluL3JlbW90ZS5jOjEwNTUKIG1zZ2lkICIobm9uZSkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjcwOAorIzogYnVpbHRpbi9mZXRjaC5jOjcyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWZ1c2luZyB0byBmZXRjaCBpbnRvIGN1cnJlbnQgYnJhbmNoICVzIG9mIG5vbi1iYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc0MgotIywgYy1mb3JtYXQKLW1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBmZXRjaCBmcm9tICVzIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZmV0Y2guYzo4MjMKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3NDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3B0aW9uIFwiJXNcIiB2YWx1ZSBcIiVzXCIgaXMgbm90IHZhbGlkIGZvciAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODI2CisjOiBidWlsdGluL2ZldGNoLmM6NzQ3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgaXMgaWdub3JlZCBmb3IgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTI4CisjOiBidWlsdGluL2ZldGNoLmM6ODAxCisjLCBjLWZvcm1hdAorbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGZldGNoIGZyb20gJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjk3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJGZXRjaGluZyAlc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MzAgYnVpbHRpbi9yZW1vdGUuYzoxMDAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NzggYnVpbHRpbi9yZW1vdGUuYzoxMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZldGNoICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5NDkKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5OTcKIG1zZ2lkICIiCiAiTm8gcmVtb3RlIHJlcG9zaXRvcnkgc3BlY2lmaWVkLiAgUGxlYXNlLCBzcGVjaWZ5IGVpdGhlciBhIFVSTCBvciBhXG4iCiAicmVtb3RlIG5hbWUgZnJvbSB3aGljaCBuZXcgcmV2aXNpb25zIHNob3VsZCBiZSBmZXRjaGVkLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTY5CisjOiBidWlsdGluL2ZldGNoLmM6MTAyMAogbXNnaWQgIllvdSBuZWVkIHRvIHNwZWNpZnkgYSB0YWcgbmFtZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDY4CiBtc2dpZCAiLS1kZXB0aCBhbmQgLS11bnNoYWxsb3cgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMTcKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDcwCiBtc2dpZCAiLS11bnNoYWxsb3cgb24gYSBjb21wbGV0ZSByZXBvc2l0b3J5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMzYKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDg5CiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgdGFrZSBhIHJlcG9zaXRvcnkgYXJndW1lbnQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMzgKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDkxCiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgbWFrZSBzZW5zZSB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDQ5CisjOiBidWlsdGluL2ZldGNoLmM6MTEwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIHJlbW90ZSBvciByZW1vdGUgZ3JvdXA6ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDU3CisjOiBidWlsdGluL2ZldGNoLmM6MTExMAogbXNnaWQgIkZldGNoaW5nIGEgZ3JvdXAgYW5kIHNwZWNpZnlpbmcgcmVmc3BlY3MgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiIgogCkBAIC00Nzg0LDkgKzQ5NjEsOSBAQAogbXNnaWQgImdpdCBmbXQtbWVyZ2UtbXNnIFstbSA8bWVzc2FnZT5dIFstLWxvZ1s9PG4+XXwtLW5vLWxvZ10gWy0tZmlsZSA8ZmlsZT5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MyBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjYgYnVpbHRpbi9ncmVwLmM6NzAwCi0jOiBidWlsdGluL21lcmdlLmM6MjAzIGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUgYnVpbHRpbi9zaG93LXJlZi5jOjE3OQotIzogYnVpbHRpbi90YWcuYzo0NDYgcGFyc2Utb3B0aW9ucy5oOjEzMyBwYXJzZS1vcHRpb25zLmg6MjQzCisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjMgYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY2IGJ1aWx0aW4vZ3JlcC5jOjcwMgorIzogYnVpbHRpbi9tZXJnZS5jOjIwMyBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzgKKyM6IGJ1aWx0aW4vdGFnLmM6NDQ2IHBhcnNlLW9wdGlvbnMuaDoxMzUgcGFyc2Utb3B0aW9ucy5oOjI0NQogbXNnaWQgIm4iCiBtc2dzdHIgIiIKIApAQCAtNDgxMCwxNTggKzQ5ODcsMTY5IEBACiBtc2dpZCAiZmlsZSB0byByZWFkIGZyb20iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5NzkKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTk1CiBtc2dpZCAiZ2l0IGZvci1lYWNoLXJlZiBbb3B0aW9uc10gWzxwYXR0ZXJuPl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5OTQKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAxMAogbXNnaWQgInF1b3RlIHBsYWNlaG9sZGVycyBzdWl0YWJseSBmb3Igc2hlbGxzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTk2CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMTIKIG1zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHBlcmwiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5OTgKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAxNAogbXNnaWQgInF1b3RlIHBsYWNlaG9sZGVycyBzdWl0YWJseSBmb3IgcHl0aG9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwMAorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDE2CiBtc2dpZCAicXVvdGUgcGxhY2Vob2xkZXJzIHN1aXRhYmx5IGZvciB0Y2wiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDAzCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMTkKIG1zZ2lkICJzaG93IG9ubHkgPG4+IG1hdGNoZWQgcmVmcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDQKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAyMAogbXNnaWQgImZvcm1hdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDQKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAyMAogbXNnaWQgImZvcm1hdCB0byB1c2UgZm9yIHRoZSBvdXRwdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA1CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMjEKIG1zZ2lkICJrZXkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA2CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMjIKIG1zZ2lkICJmaWVsZCBuYW1lIHRvIHNvcnQgb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mc2NrLmM6NjA4CisjOiBidWlsdGluL2ZzY2suYzo2MDcKIG1zZ2lkICJnaXQgZnNjayBbb3B0aW9uc10gWzxvYmplY3Q+Li4uXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTQKKyM6IGJ1aWx0aW4vZnNjay5jOjYxMwogbXNnaWQgInNob3cgdW5yZWFjaGFibGUgb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTUKKyM6IGJ1aWx0aW4vZnNjay5jOjYxNAogbXNnaWQgInNob3cgZGFuZ2xpbmcgb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTYKKyM6IGJ1aWx0aW4vZnNjay5jOjYxNQogbXNnaWQgInJlcG9ydCB0YWdzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYxNworIzogYnVpbHRpbi9mc2NrLmM6NjE2CiBtc2dpZCAicmVwb3J0IHJvb3Qgbm9kZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mc2NrLmM6NjE4CisjOiBidWlsdGluL2ZzY2suYzo2MTcKIG1zZ2lkICJtYWtlIGluZGV4IG9iamVjdHMgaGVhZCBub2RlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTkKKyM6IGJ1aWx0aW4vZnNjay5jOjYxOAogbXNnaWQgIm1ha2UgcmVmbG9ncyBoZWFkIG5vZGVzIChkZWZhdWx0KSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MjAKKyM6IGJ1aWx0aW4vZnNjay5jOjYxOQogbXNnaWQgImFsc28gY29uc2lkZXIgcGFja3MgYW5kIGFsdGVybmF0ZSBvYmplY3RzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYyMQorIzogYnVpbHRpbi9mc2NrLmM6NjIwCiBtc2dpZCAiZW5hYmxlIG1vcmUgc3RyaWN0IGNoZWNraW5nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYyMworIzogYnVpbHRpbi9mc2NrLmM6NjIyCiBtc2dpZCAid3JpdGUgZGFuZ2xpbmcgb2JqZWN0cyBpbiAuZ2l0L2xvc3QtZm91bmQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mc2NrLmM6NjI0IGJ1aWx0aW4vcHJ1bmUuYzoxMzQKKyM6IGJ1aWx0aW4vZnNjay5jOjYyMyBidWlsdGluL3BydW5lLmM6MTM0CiBtc2dpZCAic2hvdyBwcm9ncmVzcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2djLmM6MjIKKyM6IGJ1aWx0aW4vZ2MuYzoyMwogbXNnaWQgImdpdCBnYyBbb3B0aW9uc10iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9nYy5jOjYzCisjOiBidWlsdGluL2djLmM6NzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCAlczogJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2djLmM6OTAKKyM6IGJ1aWx0aW4vZ2MuYzoxMDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5zYW5lbHkgbG9uZyBvYmplY3QgZGlyZWN0b3J5ICUuKnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9nYy5jOjE3OQorIzogYnVpbHRpbi9nYy5jOjI2MQogbXNnaWQgInBydW5lIHVucmVmZXJlbmNlZCBvYmplY3RzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ2MuYzoxODEKKyM6IGJ1aWx0aW4vZ2MuYzoyNjMKIG1zZ2lkICJiZSBtb3JlIHRob3JvdWdoIChpbmNyZWFzZWQgcnVudGltZSkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9nYy5jOjE4MgorIzogYnVpbHRpbi9nYy5jOjI2NAogbXNnaWQgImVuYWJsZSBhdXRvLWdjIG1vZGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9nYy5jOjIyMgorIzogYnVpbHRpbi9nYy5jOjI2NQorbXNnaWQgImZvcmNlIHJ1bm5pbmcgZ2MgZXZlbiBpZiB0aGVyZSBtYXkgYmUgYW5vdGhlciBnYyBydW5uaW5nIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ2MuYzozMDUKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkF1dG8gcGFja2luZyB0aGUgcmVwb3NpdG9yeSBmb3Igb3B0aW11bSBwZXJmb3JtYW5jZS4gWW91IG1heSBhbHNvXG4iCiAicnVuIFwiZ2l0IGdjXCIgbWFudWFsbHkuIFNlZSBcImdpdCBoZWxwIGdjXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9nYy5jOjI0OQorIy4gYmUgcXVpZXQgb24gLS1hdXRvCisjOiBidWlsdGluL2djLmM6MzE1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJnYyBpcyBhbHJlYWR5IHJ1bm5pbmcgb24gbWFjaGluZSAnJXMnIHBpZCAlPFBSSXVNQVg+ICh1c2UgLS1mb3JjZSBpZiBub3QpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ2MuYzozNDAKIG1zZ2lkICIiCiAiVGhlcmUgYXJlIHRvbyBtYW55IHVucmVhY2hhYmxlIGxvb3NlIG9iamVjdHM7IHJ1biAnZ2l0IHBydW5lJyB0byByZW1vdmUgdGhlbS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6MjIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjIzCiBtc2dpZCAiZ2l0IGdyZXAgW29wdGlvbnNdIFstZV0gPHBhdHRlcm4+IFs8cmV2Pi4uLl0gW1stLV0gPHBhdGg+Li4uXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzoyMTcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjIxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJncmVwOiBmYWlsZWQgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6MzY0CisjOiBidWlsdGluL2dyZXAuYzozNjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIGNoZGlyOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo0NDIgYnVpbHRpbi9ncmVwLmM6NDc3CisjOiBidWlsdGluL2dyZXAuYzo0NDMgYnVpbHRpbi9ncmVwLmM6NDc4CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkIHRyZWUgKCVzKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo0OTIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjQ5MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gZ3JlcCBmcm9tIG9iamVjdCBvZiB0eXBlICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjU1MAorIzogYnVpbHRpbi9ncmVwLmM6NTUxCiAjLCBjLWZvcm1hdAogbXNnaWQgInN3aXRjaCBgJWMnIGV4cGVjdHMgYSBudW1lcmljYWwgdmFsdWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NTY3CisjOiBidWlsdGluL2dyZXAuYzo1NjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJyVzJyIKIG1zZ3N0ciAiIgpAQCAtNTAwMywxNTggKzUxOTEsMTYyIEBACiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9ncmVwLmM6NjYyCittc2dpZCAicHJvY2VzcyBiaW5hcnkgZmlsZXMgd2l0aCB0ZXh0Y29udiBmaWx0ZXJzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2NAogbXNnaWQgImRlc2NlbmQgYXQgbW9zdCA8ZGVwdGg+IGxldmVscyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2OAogbXNnaWQgInVzZSBleHRlbmRlZCBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2OQorIzogYnVpbHRpbi9ncmVwLmM6NjcxCiBtc2dpZCAidXNlIGJhc2ljIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbnMgKGRlZmF1bHQpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3MgorIzogYnVpbHRpbi9ncmVwLmM6Njc0CiBtc2dpZCAiaW50ZXJwcmV0IHBhdHRlcm5zIGFzIGZpeGVkIHN0cmluZ3MiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njc1CisjOiBidWlsdGluL2dyZXAuYzo2NzcKIG1zZ2lkICJ1c2UgUGVybC1jb21wYXRpYmxlIHJlZ3VsYXIgZXhwcmVzc2lvbnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njc4CisjOiBidWlsdGluL2dyZXAuYzo2ODAKIG1zZ2lkICJzaG93IGxpbmUgbnVtYmVycyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MQogbXNnaWQgImRvbid0IHNob3cgZmlsZW5hbWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MAorIzogYnVpbHRpbi9ncmVwLmM6NjgyCiBtc2dpZCAic2hvdyBmaWxlbmFtZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjgyCisjOiBidWlsdGluL2dyZXAuYzo2ODQKIG1zZ2lkICJzaG93IGZpbGVuYW1lcyByZWxhdGl2ZSB0byB0b3AgZGlyZWN0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4NAorIzogYnVpbHRpbi9ncmVwLmM6Njg2CiBtc2dpZCAic2hvdyBvbmx5IGZpbGVuYW1lcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4NgorIzogYnVpbHRpbi9ncmVwLmM6Njg4CiBtc2dpZCAic3lub255bSBmb3IgLS1maWxlcy13aXRoLW1hdGNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njg5CisjOiBidWlsdGluL2dyZXAuYzo2OTEKIG1zZ2lkICJzaG93IG9ubHkgdGhlIG5hbWVzIG9mIGZpbGVzIHdpdGhvdXQgbWF0Y2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjkxCisjOiBidWlsdGluL2dyZXAuYzo2OTMKIG1zZ2lkICJwcmludCBOVUwgYWZ0ZXIgZmlsZW5hbWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5MworIzogYnVpbHRpbi9ncmVwLmM6Njk1CiBtc2dpZCAic2hvdyB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgaW5zdGVhZCBvZiBtYXRjaGluZyBsaW5lcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NgogbXNnaWQgImhpZ2hsaWdodCBtYXRjaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NgorIzogYnVpbHRpbi9ncmVwLmM6Njk4CiBtc2dpZCAicHJpbnQgZW1wdHkgbGluZSBiZXR3ZWVuIG1hdGNoZXMgZnJvbSBkaWZmZXJlbnQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk4CisjOiBidWlsdGluL2dyZXAuYzo3MDAKIG1zZ2lkICJzaG93IGZpbGVuYW1lIG9ubHkgb25jZSBhYm92ZSBtYXRjaGVzIGZyb20gc2FtZSBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwMQorIzogYnVpbHRpbi9ncmVwLmM6NzAzCiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgYW5kIGFmdGVyIG1hdGNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA0CisjOiBidWlsdGluL2dyZXAuYzo3MDYKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGJlZm9yZSBtYXRjaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwNgorIzogYnVpbHRpbi9ncmVwLmM6NzA4CiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBhZnRlciBtYXRjaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwNworIzogYnVpbHRpbi9ncmVwLmM6NzA5CiBtc2dpZCAic2hvcnRjdXQgZm9yIC1DIE5VTSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxMgogbXNnaWQgInNob3cgYSBsaW5lIHdpdGggdGhlIGZ1bmN0aW9uIG5hbWUgYmVmb3JlIG1hdGNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzEyCisjOiBidWlsdGluL2dyZXAuYzo3MTQKIG1zZ2lkICJzaG93IHRoZSBzdXJyb3VuZGluZyBmdW5jdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxNwogbXNnaWQgInJlYWQgcGF0dGVybnMgZnJvbSBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxNworIzogYnVpbHRpbi9ncmVwLmM6NzE5CiBtc2dpZCAibWF0Y2ggPHBhdHRlcm4+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxOQorIzogYnVpbHRpbi9ncmVwLmM6NzIxCiBtc2dpZCAiY29tYmluZSBwYXR0ZXJucyBzcGVjaWZpZWQgd2l0aCAtZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczMwogbXNnaWQgImluZGljYXRlIGhpdCB3aXRoIGV4aXQgc3RhdHVzIHdpdGhvdXQgb3V0cHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczMworIzogYnVpbHRpbi9ncmVwLmM6NzM1CiBtc2dpZCAic2hvdyBvbmx5IG1hdGNoZXMgZnJvbSBmaWxlcyB0aGF0IG1hdGNoIGFsbCBwYXR0ZXJucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczNwogbXNnaWQgInNob3cgcGFyc2UgdHJlZSBmb3IgZ3JlcCBleHByZXNzaW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczOQorIzogYnVpbHRpbi9ncmVwLmM6NzQxCiBtc2dpZCAicGFnZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzM5CisjOiBidWlsdGluL2dyZXAuYzo3NDEKIG1zZ2lkICJzaG93IG1hdGNoaW5nIGZpbGVzIGluIHRoZSBwYWdlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0NAogbXNnaWQgImFsbG93IGNhbGxpbmcgb2YgZ3JlcCgxKSAoaWdub3JlZCBieSB0aGlzIGJ1aWxkKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDMgYnVpbHRpbi9zaG93LXJlZi5jOjE4OAorIzogYnVpbHRpbi9ncmVwLmM6NzQ1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODcKIG1zZ2lkICJzaG93IHVzYWdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjgxMAorIzogYnVpbHRpbi9ncmVwLmM6ODEyCiBtc2dpZCAibm8gcGF0dGVybiBnaXZlbi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODY1CisjOiBidWlsdGluL2dyZXAuYzo4NzAKIG1zZ2lkICItLW9wZW4tZmlsZXMtaW4tcGFnZXIgb25seSB3b3JrcyBvbiB0aGUgd29ya3RyZWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODg4CisjOiBidWlsdGluL2dyZXAuYzo4OTMKIG1zZ2lkICItLWNhY2hlZCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIC0tbm8taW5kZXguIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5MworIzogYnVpbHRpbi9ncmVwLmM6ODk4CiBtc2dpZCAiLS1uby1pbmRleCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIHJldnMuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5NgorIzogYnVpbHRpbi9ncmVwLmM6OTAxCiBtc2dpZCAiLS1bbm8tXWV4Y2x1ZGUtc3RhbmRhcmQgY2Fubm90IGJlIHVzZWQgZm9yIHRyYWNrZWQgY29udGVudHMuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjkwNAorIzogYnVpbHRpbi9ncmVwLmM6OTA5CiBtc2dpZCAiYm90aCAtLWNhY2hlZCBhbmQgdHJlZXMgYXJlIGdpdmVuLiIKIG1zZ3N0ciAiIgogCkBAIC01NDAzLDggKzU1OTUsOCBAQAogbXNnaWQgIlNIQTEgQ09MTElTSU9OIEZPVU5EIFdJVEggJXMgISIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjkgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjYyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjkgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjYzCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkICVzIgogbXNnc3RyICIiCkBAIC01NDMzLDE1NSArNTYyNSwxNTUgQEAKIG1zZ2lkICJOb3QgYWxsIGNoaWxkIG9iamVjdHMgb2YgJXMgYXJlIHJlYWNoYWJsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzggYnVpbHRpbi9pbmRleC1wYWNrLmM6ODY4CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzkgYnVpbHRpbi9pbmRleC1wYWNrLmM6ODY5CiBtc2dpZCAiZmFpbGVkIHRvIGFwcGx5IGRlbHRhIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMTAKIG1zZ2lkICJSZWNlaXZpbmcgb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDEwCiBtc2dpZCAiSW5kZXhpbmcgb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM2CiBtc2dpZCAicGFjayBpcyBjb3JydXB0ZWQgKFNIQTEgbWlzbWF0Y2gpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDEKIG1zZ2lkICJjYW5ub3QgZnN0YXQgcGFja2ZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0MworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0NAogbXNnaWQgInBhY2sgaGFzIGp1bmsgYXQgdGhlIGVuZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDU0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDU1CiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSBpbiBwYXJzZV9wYWNrX29iamVjdHMoKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDc3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDc4CiBtc2dpZCAiUmVzb2x2aW5nIGRlbHRhcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDg3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDg4CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgdGhyZWFkOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTI5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTMwCiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTM3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTM4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBsZXRlZCB3aXRoICVkIGxvY2FsIG9iamVjdHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmV4cGVjdGVkIHRhaWwgY2hlY2tzdW0gZm9yICVzIChkaXNrIGNvcnJ1cHRpb24/KSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTUxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGEiCiBtc2dpZF9wbHVyYWwgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGFzIgogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gZGVmbGF0ZSBhcHBlbmRlZCBvYmplY3QgKCVkKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjU1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgImxvY2FsIG9iamVjdCAlcyBpcyBjb3JydXB0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNzkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyODAKIG1zZ2lkICJlcnJvciB3aGlsZSBjbG9zaW5nIHBhY2sgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjkyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjkzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCB3cml0ZSBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzAwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzAxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjbG9zZSB3cml0dGVuIGtlZXAgZmlsZSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTQKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgcGFjayBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMjQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMjUKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgaW5kZXggZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzU3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzU4CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBwYWNrLmluZGV4dmVyc2lvbj0lPFBSSXUzMj4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2MworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIG51bWJlciBvZiB0aHJlYWRzIHNwZWNpZmllZCAoJWQpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2OCBidWlsdGluL2luZGV4LXBhY2suYzoxNTQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHRocmVhZHMgc3VwcG9ydCwgaWdub3JpbmcgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGZpbGUgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDI3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIGV4aXN0aW5nIHBhY2sgaWR4IGZpbGUgZm9yICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJub24gZGVsdGE6ICVkIG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAibm9uIGRlbHRhOiAlZCBvYmplY3RzIgogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ4MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGFpbiBsZW5ndGggPSAlZDogJWx1IG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3RzIgogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUwOQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUxMAogbXNnaWQgIkNhbm5vdCBjb21lIGJhY2sgdG8gY3dkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NTcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2MAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3MiBidWlsdGluL2luZGV4LXBhY2suYzoxNTc2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTU4IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzMgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5MQogbXNnaWQgIi0tZml4LXRoaW4gY2Fubm90IGJlIHVzZWQgd2l0aG91dCAtLXN0ZGluIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5NSBidWlsdGluL2luZGV4LXBhY2suYzoxNjA1CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2tmaWxlIG5hbWUgJyVzJyBkb2VzIG5vdCBlbmQgd2l0aCAnLnBhY2snIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MTMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MTQKIG1zZ2lkICItLXZlcmlmeSB3aXRoIG5vIHBhY2tmaWxlIG5hbWUgZ2l2ZW4iCiBtc2dzdHIgIiIKIApAQCAtNTY3MCwxMSArNTg2Miw2IEBACiBtc2dpZCAidW5hYmxlIHRvIG1vdmUgJXMgdG8gJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbml0LWRiLmM6MzYzCi0jLCBjLWZvcm1hdAotbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZ2l0IGxpbmsgJXMiCi1tc2dzdHIgIiIKLQogIy4KICMuICogVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAnJXMnIGlzIGVpdGhlciAiUmVpbml0aWFsaXplZAogIy4gKiBleGlzdGluZyIgb3IgIkluaXRpYWxpemVkIGVtcHR5IiwgdGhlIHNlY29uZCAiIHNoYXJlZCIgb3IKQEAgLTU3MTUsNyArNTkwMiw3IEBACiBtc2dpZCAic3BlY2lmeSB0aGF0IHRoZSBnaXQgcmVwb3NpdG9yeSBpcyB0byBiZSBzaGFyZWQgYW1vbmdzdCBzZXZlcmFsIHVzZXJzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc1CisjOiBidWlsdGluL2luaXQtZGIuYzo0OTMgYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NSBidWlsdGluL3JlcGFjay5jOjE1NQogbXNnaWQgImJlIHF1aWV0IgogbXNnc3RyICIiCiAKQEAgLTU3NTMsMzgxICs1OTQwLDM4MSBAQAogbXNnaWQgIiAgIG9yOiBnaXQgc2hvdyBbb3B0aW9uc10gPG9iamVjdD4uLi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjQKKyM6IGJ1aWx0aW4vbG9nLmM6MTI1CiBtc2dpZCAic3VwcHJlc3MgZGlmZiBvdXRwdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjUKKyM6IGJ1aWx0aW4vbG9nLmM6MTI2CiBtc2dpZCAic2hvdyBzb3VyY2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjYKKyM6IGJ1aWx0aW4vbG9nLmM6MTI3CiBtc2dpZCAiVXNlIG1haWwgbWFwIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjcKKyM6IGJ1aWx0aW4vbG9nLmM6MTI4CiBtc2dpZCAiZGVjb3JhdGUgb3B0aW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjIzMAorIzogYnVpbHRpbi9sb2cuYzoyMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmluYWwgb3V0cHV0OiAlZCAlc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NDUzIGJ1aWx0aW4vbG9nLmM6NTQ1CisjOiBidWlsdGluL2xvZy5jOjQ3MyBidWlsdGluL2xvZy5jOjU2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCBvYmplY3QgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzo1NjkKKyM6IGJ1aWx0aW4vbG9nLmM6NTg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gdHlwZTogJWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzo2NjkKKyM6IGJ1aWx0aW4vbG9nLmM6Njg5CiBtc2dpZCAiZm9ybWF0LmhlYWRlcnMgd2l0aG91dCB2YWx1ZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjc1MQorIzogYnVpbHRpbi9sb2cuYzo3NzEKIG1zZ2lkICJuYW1lIG9mIG91dHB1dCBkaXJlY3RvcnkgaXMgdG9vIGxvbmciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzo3NjcKKyM6IGJ1aWx0aW4vbG9nLmM6Nzg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIHBhdGNoIGZpbGUgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzo3ODEKKyM6IGJ1aWx0aW4vbG9nLmM6ODAxCiBtc2dpZCAiTmVlZCBleGFjdGx5IG9uZSByYW5nZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzo3ODkKKyM6IGJ1aWx0aW4vbG9nLmM6ODA5CiBtc2dpZCAiTm90IGEgcmFuZ2UuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6ODkxCisjOiBidWlsdGluL2xvZy5jOjkxMQogbXNnaWQgIkNvdmVyIGxldHRlciBuZWVkcyBlbWFpbCBmb3JtYXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzo5NjcKKyM6IGJ1aWx0aW4vbG9nLmM6OTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgImluc2FuZSBpbi1yZXBseS10bzogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzo5OTUKKyM6IGJ1aWx0aW4vbG9nLmM6MTAxNQogbXNnaWQgImdpdCBmb3JtYXQtcGF0Y2ggW29wdGlvbnNdIFs8c2luY2U+IHwgPHJldmlzaW9uIHJhbmdlPl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDQwCisjOiBidWlsdGluL2xvZy5jOjEwNjAKIG1zZ2lkICJUd28gb3V0cHV0IGRpcmVjdG9yaWVzPyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTUKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3NQogbXNnaWQgInVzZSBbUEFUQ0ggbi9tXSBldmVuIHdpdGggYSBzaW5nbGUgcGF0Y2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTU4CisjOiBidWlsdGluL2xvZy5jOjExNzgKIG1zZ2lkICJ1c2UgW1BBVENIXSBldmVuIHdpdGggbXVsdGlwbGUgcGF0Y2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExNjIKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4MgogbXNnaWQgInByaW50IHBhdGNoZXMgdG8gc3RhbmRhcmQgb3V0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE2NAorIzogYnVpbHRpbi9sb2cuYzoxMTg0CiBtc2dpZCAiZ2VuZXJhdGUgYSBjb3ZlciBsZXR0ZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTY2CisjOiBidWlsdGluL2xvZy5jOjExODYKIG1zZ2lkICJ1c2Ugc2ltcGxlIG51bWJlciBzZXF1ZW5jZSBmb3Igb3V0cHV0IGZpbGUgbmFtZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTY3CisjOiBidWlsdGluL2xvZy5jOjExODcKIG1zZ2lkICJzZngiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTY4CisjOiBidWlsdGluL2xvZy5jOjExODgKIG1zZ2lkICJ1c2UgPHNmeD4gaW5zdGVhZCBvZiAnLnBhdGNoJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExNzAKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MAogbXNnaWQgInN0YXJ0IG51bWJlcmluZyBwYXRjaGVzIGF0IDxuPiBpbnN0ZWFkIG9mIDEiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTcyCisjOiBidWlsdGluL2xvZy5jOjExOTIKIG1zZ2lkICJtYXJrIHRoZSBzZXJpZXMgYXMgTnRoIHJlLXJvbGwiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTc0CisjOiBidWlsdGluL2xvZy5jOjExOTQKIG1zZ2lkICJVc2UgWzxwcmVmaXg+XSBpbnN0ZWFkIG9mIFtQQVRDSF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTc3CisjOiBidWlsdGluL2xvZy5jOjExOTcKIG1zZ2lkICJzdG9yZSByZXN1bHRpbmcgZmlsZXMgaW4gPGRpcj4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTgwCisjOiBidWlsdGluL2xvZy5jOjEyMDAKIG1zZ2lkICJkb24ndCBzdHJpcC9hZGQgW1BBVENIXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExODMKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMwogbXNnaWQgImRvbid0IG91dHB1dCBiaW5hcnkgZGlmZnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTg1CisjOiBidWlsdGluL2xvZy5jOjEyMDUKIG1zZ2lkICJkb24ndCBpbmNsdWRlIGEgcGF0Y2ggbWF0Y2hpbmcgYSBjb21taXQgdXBzdHJlYW0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTg3CisjOiBidWlsdGluL2xvZy5jOjEyMDcKIG1zZ2lkICJzaG93IHBhdGNoIGZvcm1hdCBpbnN0ZWFkIG9mIGRlZmF1bHQgKHBhdGNoICsgc3RhdCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTg5CisjOiBidWlsdGluL2xvZy5jOjEyMDkKIG1zZ2lkICJNZXNzYWdpbmciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTkwCisjOiBidWlsdGluL2xvZy5jOjEyMTAKIG1zZ2lkICJoZWFkZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTkxCisjOiBidWlsdGluL2xvZy5jOjEyMTEKIG1zZ2lkICJhZGQgZW1haWwgaGVhZGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5MiBidWlsdGluL2xvZy5jOjExOTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMiBidWlsdGluL2xvZy5jOjEyMTQKIG1zZ2lkICJlbWFpbCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExOTIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMgogbXNnaWQgImFkZCBUbzogaGVhZGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5NAorIzogYnVpbHRpbi9sb2cuYzoxMjE0CiBtc2dpZCAiYWRkIENjOiBoZWFkZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTk2CisjOiBidWlsdGluL2xvZy5jOjEyMTYKIG1zZ2lkICJpZGVudCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExOTcKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxNwogbXNnaWQgInNldCBGcm9tIGFkZHJlc3MgdG8gPGlkZW50PiAob3IgY29tbWl0dGVyIGlkZW50IGlmIGFic2VudCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTk5CisjOiBidWlsdGluL2xvZy5jOjEyMTkKIG1zZ2lkICJtZXNzYWdlLWlkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTIwMAorIzogYnVpbHRpbi9sb2cuYzoxMjIwCiBtc2dpZCAibWFrZSBmaXJzdCBtYWlsIGEgcmVwbHkgdG8gPG1lc3NhZ2UtaWQ+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTIwMSBidWlsdGluL2xvZy5jOjEyMDQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyMSBidWlsdGluL2xvZy5jOjEyMjQKIG1zZ2lkICJib3VuZGFyeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEyMDIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyMgogbXNnaWQgImF0dGFjaCB0aGUgcGF0Y2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjA1CisjOiBidWlsdGluL2xvZy5jOjEyMjUKIG1zZ2lkICJpbmxpbmUgdGhlIHBhdGNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTIwOQorIzogYnVpbHRpbi9sb2cuYzoxMjI5CiBtc2dpZCAiZW5hYmxlIG1lc3NhZ2UgdGhyZWFkaW5nLCBzdHlsZXM6IHNoYWxsb3csIGRlZXAiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjExCisjOiBidWlsdGluL2xvZy5jOjEyMzEKIG1zZ2lkICJzaWduYXR1cmUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjEyCisjOiBidWlsdGluL2xvZy5jOjEyMzIKIG1zZ2lkICJhZGQgYSBzaWduYXR1cmUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjE0CisjOiBidWlsdGluL2xvZy5jOjEyMzMKIG1zZ2lkICJkb24ndCBwcmludCB0aGUgcGF0Y2ggZmlsZW5hbWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI4OAorIzogYnVpbHRpbi9sb2cuYzoxMzA3CiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgaWRlbnQgbGluZTogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzAzCisjOiBidWlsdGluL2xvZy5jOjEzMjIKIG1zZ2lkICItbiBhbmQgLWsgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzA1CisjOiBidWlsdGluL2xvZy5jOjEzMjQKIG1zZ2lkICItLXN1YmplY3QtcHJlZml4IGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEzMTMKKyM6IGJ1aWx0aW4vbG9nLmM6MTMzMgogbXNnaWQgIi0tbmFtZS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzE1CisjOiBidWlsdGluL2xvZy5jOjEzMzQKIG1zZ2lkICItLW5hbWUtc3RhdHVzIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzE3CisjOiBidWlsdGluL2xvZy5jOjEzMzYKIG1zZ2lkICItLWNoZWNrIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzQwCisjOiBidWlsdGluL2xvZy5jOjEzNTkKIG1zZ2lkICJzdGFuZGFyZCBvdXRwdXQsIG9yIGRpcmVjdG9yeSwgd2hpY2ggb25lPyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEzNDIKKyM6IGJ1aWx0aW4vbG9nLmM6MTM2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQ5MAorIzogYnVpbHRpbi9sb2cuYzoxNTA5CiBtc2dpZCAiRmFpbGVkIHRvIGNyZWF0ZSBvdXRwdXQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxNTM5CisjOiBidWlsdGluL2xvZy5jOjE1NTgKIG1zZ2lkICJnaXQgY2hlcnJ5IFstdl0gWzx1cHN0cmVhbT4gWzxoZWFkPiBbPGxpbWl0Pl1dXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjE1OTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTYxMwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ291bGQgbm90IGZpbmQgYSB0cmFja2VkIHJlbW90ZSBicmFuY2gsIHBsZWFzZSBzcGVjaWZ5IDx1cHN0cmVhbT4gbWFudWFsbHkuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxNjA3IGJ1aWx0aW4vbG9nLmM6MTYwOSBidWlsdGluL2xvZy5jOjE2MjEKKyM6IGJ1aWx0aW4vbG9nLmM6MTYyNiBidWlsdGluL2xvZy5jOjE2MjggYnVpbHRpbi9sb2cuYzoxNjQwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gY29tbWl0ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0MDgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzozOTgKIG1zZ2lkICJnaXQgbHMtZmlsZXMgW29wdGlvbnNdIFs8ZmlsZT4uLi5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjUKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTUKIG1zZ2lkICJpZGVudGlmeSB0aGUgZmlsZSBzdGF0dXMgd2l0aCB0YWdzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTcKIG1zZ2lkICJ1c2UgbG93ZXJjYXNlIGxldHRlcnMgZm9yICdhc3N1bWUgdW5jaGFuZ2VkJyBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDU5CiBtc2dpZCAic2hvdyBjYWNoZWQgZmlsZXMgaW4gdGhlIG91dHB1dCAoZGVmYXVsdCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2MQogbXNnaWQgInNob3cgZGVsZXRlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzMKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjMKIG1zZ2lkICJzaG93IG1vZGlmaWVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2NQogbXNnaWQgInNob3cgb3RoZXIgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3CiBtc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MAogbXNnaWQgInNob3cgc3RhZ2VkIGNvbnRlbnRzJyBvYmplY3QgbmFtZSBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODIKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzIKIG1zZ2lkICJzaG93IGZpbGVzIG9uIHRoZSBmaWxlc3lzdGVtIHRoYXQgbmVlZCB0byBiZSByZW1vdmVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzQKIG1zZ2lkICJzaG93ICdvdGhlcicgZGlyZWN0b3JpZXMnIG5hbWUgb25seSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc3CiBtc2dpZCAiZG9uJ3Qgc2hvdyBlbXB0eSBkaXJlY3RvcmllcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkwCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgwCiBtc2dpZCAic2hvdyB1bm1lcmdlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTIKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODIKIG1zZ2lkICJzaG93IHJlc29sdmUtdW5kbyBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg0CiBtc2dpZCAic2tpcCBmaWxlcyBtYXRjaGluZyBwYXR0ZXJuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODcKIG1zZ2lkICJleGNsdWRlIHBhdHRlcm5zIGFyZSByZWFkIGZyb20gPGZpbGU+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDAKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTAKIG1zZ2lkICJyZWFkIGFkZGl0aW9uYWwgcGVyLWRpcmVjdG9yeSBleGNsdWRlIHBhdHRlcm5zIGluIDxmaWxlPiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkyCiBtc2dpZCAiYWRkIHRoZSBzdGFuZGFyZCBnaXQgZXhjbHVzaW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTA1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk1CiBtc2dpZCAibWFrZSB0aGUgb3V0cHV0IHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHRvcCBkaXJlY3RvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwOAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5OAogbXNnaWQgImlmIGFueSA8ZmlsZT4gaXMgbm90IGluIHRoZSBpbmRleCwgdHJlYXQgdGhpcyBhcyBhbiBlcnJvciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTA5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk5CiBtc2dpZCAidHJlZS1pc2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMAorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMAogbXNnaWQgInByZXRlbmQgdGhhdCBwYXRocyByZW1vdmVkIHNpbmNlIDx0cmVlLWlzaD4gYXJlIHN0aWxsIHByZXNlbnQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMgorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMgogbXNnaWQgInNob3cgZGVidWdnaW5nIGRhdGEiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MjcKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjI4CiBtc2dpZCAiZ2l0IGxzLXRyZWUgWzxvcHRpb25zPl0gPHRyZWUtaXNoPiBbPHBhdGg+Li4uXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxMjUKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyNgogbXNnaWQgIm9ubHkgc2hvdyB0cmVlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxMjcKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyOAogbXNnaWQgInJlY3Vyc2UgaW50byBzdWJ0cmVlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxMjkKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMAogbXNnaWQgInNob3cgdHJlZXMgd2hlbiByZWN1cnNpbmciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTMyCisjOiBidWlsdGluL2xzLXRyZWUuYzoxMzMKIG1zZ2lkICJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCBieXRlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMworIzogYnVpbHRpbi9scy10cmVlLmM6MTM0CiBtc2dpZCAiaW5jbHVkZSBvYmplY3Qgc2l6ZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxMzUgYnVpbHRpbi9scy10cmVlLmM6MTM3CisjOiBidWlsdGluL2xzLXRyZWUuYzoxMzYgYnVpbHRpbi9scy10cmVlLmM6MTM4CiBtc2dpZCAibGlzdCBvbmx5IGZpbGVuYW1lcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxNDAKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjE0MQogbXNnaWQgInVzZSBmdWxsIHBhdGggbmFtZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTQyCisjOiBidWlsdGluL2xzLXRyZWUuYzoxNDMKIG1zZ2lkICJsaXN0IGVudGlyZSB0cmVlOyBub3QganVzdCBjdXJyZW50IGRpcmVjdG9yeSAoaW1wbGllcyAtLWZ1bGwtbmFtZSkiCiBtc2dzdHIgIiIKIApAQCAtNjIwMiw3ICs2Mzg5LDcgQEAKIG1zZ2lkICJWZXJpZnkgdGhhdCB0aGUgbmFtZWQgY29tbWl0IGhhcyBhIHZhbGlkIEdQRyBzaWduYXR1cmUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIxOSBidWlsdGluL25vdGVzLmM6NzM4IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE0CisjOiBidWlsdGluL21lcmdlLmM6MjE5IGJ1aWx0aW4vbm90ZXMuYzo3MzggYnVpbHRpbi9yZXZlcnQuYzo4OQogbXNnaWQgInN0cmF0ZWd5IgogbXNnc3RyICIiCiAKQEAgLTY1NTQsNzYgKzY3NDEsODUgQEAKIG1zZ2lkICJhbGxvdyBjcmVhdGlvbiBvZiBtb3JlIHRoYW4gb25lIHRyZWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tdi5jOjE0CisjOiBidWlsdGluL212LmM6MTUKIG1zZ2lkICJnaXQgbXYgW29wdGlvbnNdIDxzb3VyY2U+Li4uIDxkZXN0aW5hdGlvbj4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tdi5jOjY0CisjOiBidWlsdGluL212LmM6NjcKIG1zZ2lkICJmb3JjZSBtb3ZlL3JlbmFtZSBldmVuIGlmIHRhcmdldCBleGlzdHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tdi5jOjY1CisjOiBidWlsdGluL212LmM6NjgKIG1zZ2lkICJza2lwIG1vdmUvcmVuYW1lIGVycm9ycyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL212LmM6MTA4CisjOiBidWlsdGluL212LmM6MTEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoZWNraW5nIHJlbmFtZSBvZiAnJXMnIHRvICclcydcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL212LmM6MTEyCisjOiBidWlsdGluL212LmM6MTE3CiBtc2dpZCAiYmFkIHNvdXJjZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL212LmM6MTE1CisjOiBidWlsdGluL212LmM6MTIwCiBtc2dpZCAiY2FuIG5vdCBtb3ZlIGRpcmVjdG9yeSBpbnRvIGl0c2VsZiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL212LmM6MTE4CisjOiBidWlsdGluL212LmM6MTIzCiBtc2dpZCAiY2Fubm90IG1vdmUgZGlyZWN0b3J5IG92ZXIgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL212LmM6MTI4CisjOiBidWlsdGluL212LmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIkh1aD8gRGlyZWN0b3J5ICVzIGlzIGluIGluZGV4IGFuZCBubyBzdWJtb2R1bGU/IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbXYuYzoxMzEgYnVpbHRpbi9ybS5jOjMxOAorbXNnaWQgIlBsZWFzZSwgc3RhZ2UgeW91ciBjaGFuZ2VzIHRvIC5naXRtb2R1bGVzIG9yIHN0YXNoIHRoZW0gdG8gcHJvY2VlZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL212LmM6MTQ3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkh1aD8gJS4qcyBpcyBpbiBpbmRleD8iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tdi5jOjE0MAorIzogYnVpbHRpbi9tdi5jOjE1OQogbXNnaWQgInNvdXJjZSBkaXJlY3RvcnkgaXMgZW1wdHkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tdi5jOjE3MQorIzogYnVpbHRpbi9tdi5jOjE5MQogbXNnaWQgIm5vdCB1bmRlciB2ZXJzaW9uIGNvbnRyb2wiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tdi5jOjE3MworIzogYnVpbHRpbi9tdi5jOjE5MwogbXNnaWQgImRlc3RpbmF0aW9uIGV4aXN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL212LmM6MTgxCisjOiBidWlsdGluL212LmM6MjAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm92ZXJ3cml0aW5nICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tdi5jOjE4NAorIzogYnVpbHRpbi9tdi5jOjIwNAogbXNnaWQgIkNhbm5vdCBvdmVyd3JpdGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tdi5jOjE4NworIzogYnVpbHRpbi9tdi5jOjIwNwogbXNnaWQgIm11bHRpcGxlIHNvdXJjZXMgZm9yIHRoZSBzYW1lIHRhcmdldCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL212LmM6MjAyCisjOiBidWlsdGluL212LmM6MjIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzLCBzb3VyY2U9JXMsIGRlc3RpbmF0aW9uPSVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbXYuYzoyMTIKKyM6IGJ1aWx0aW4vbXYuYzoyMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVuYW1pbmcgJXMgdG8gJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL212LmM6MjE1IGJ1aWx0aW4vcmVtb3RlLmM6NzMxCisjOiBidWlsdGluL212LmM6MjM1IGJ1aWx0aW4vcmVtb3RlLmM6NzMxIGJ1aWx0aW4vcmVwYWNrLmM6MzMwCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlbmFtaW5nICclcycgZmFpbGVkIgogbXNnc3RyICIiCkBAIC02NjYxLDcgKzY4NTcsNyBAQAogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMjAKLW1zZ2lkICJhbGxvdyB0byBwcmludCBgdW5kZWZpbmVkYCBuYW1lcyIKK21zZ2lkICJhbGxvdyB0byBwcmludCBgdW5kZWZpbmVkYCBuYW1lcyAoZGVmYXVsdCkiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyNgpAQCAtNjgxMCwxMiArNzAwNiwxMiBAQAogbXNnaWQgIlRoZSBub3RlIGNvbnRlbnRzIGhhcyBiZWVuIGxlZnQgaW4gJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI0OCBidWlsdGluL3RhZy5jOjU0MAorIzogYnVpbHRpbi9ub3Rlcy5jOjI0OCBidWlsdGluL3RhZy5jOjUzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDMKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gb3IgcmVhZCAnJXMnIgogbXNnc3RyICIiCkBAIC02ODIzLDcgKzcwMTksNyBAQAogIzogYnVpbHRpbi9ub3Rlcy5jOjI2OSBidWlsdGluL25vdGVzLmM6MzE2IGJ1aWx0aW4vbm90ZXMuYzozMTgKICM6IGJ1aWx0aW4vbm90ZXMuYzozNzggYnVpbHRpbi9ub3Rlcy5jOjQzMiBidWlsdGluL25vdGVzLmM6NTE1CiAjOiBidWlsdGluL25vdGVzLmM6NTIwIGJ1aWx0aW4vbm90ZXMuYzo1OTUgYnVpbHRpbi9ub3Rlcy5jOjYzNwotIzogYnVpbHRpbi9ub3Rlcy5jOjgzOSBidWlsdGluL3RhZy5jOjU1NgorIzogYnVpbHRpbi9ub3Rlcy5jOjgzOSBidWlsdGluL3RhZy5jOjU1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgcmVmLiIKIG1zZ3N0ciAiIgpAQCAtNjk4NiwxNDggKzcxODIsMTQ4IEBACiBtc2dpZCAiZ2l0IHBhY2stb2JqZWN0cyBbb3B0aW9ucy4uLl0gYmFzZS1uYW1lIFs8IHJlZi1saXN0IHwgPCBvYmplY3QtbGlzdF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxODMgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxODYKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTg0IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgImRlZmxhdGUgZXJyb3IgKCVkKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjIzOTcKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjM5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnN1cHBvcnRlZCBpbmRleCB2ZXJzaW9uICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQwMQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDAyCiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBpbmRleCB2ZXJzaW9uICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDI0CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAib3B0aW9uICVzIGRvZXMgbm90IGFjY2VwdCBuZWdhdGl2ZSBmb3JtIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQyOAorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBwYXJzZSB2YWx1ZSAnJXMnIGZvciBvcHRpb24gJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDQ3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NDgKIG1zZ2lkICJkbyBub3Qgc2hvdyBwcm9ncmVzcyBtZXRlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NDkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1MAogbXNnaWQgInNob3cgcHJvZ3Jlc3MgbWV0ZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDUxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTIKIG1zZ2lkICJzaG93IHByb2dyZXNzIG1ldGVyIGR1cmluZyBvYmplY3Qgd3JpdGluZyBwaGFzZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTQKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NQogbXNnaWQgInNpbWlsYXIgdG8gLS1hbGwtcHJvZ3Jlc3Mgd2hlbiBwcm9ncmVzcyBtZXRlciBpcyBzaG93biIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTUKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NgogbXNnaWQgInZlcnNpb25bLG9mZnNldF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU2CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTcKIG1zZ2lkICJ3cml0ZSB0aGUgcGFjayBpbmRleCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgaWR4IGZvcm1hdCB2ZXJzaW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1OQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDYwCiBtc2dpZCAibWF4aW11bSBzaXplIG9mIGVhY2ggb3V0cHV0IHBhY2sgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2MgogbXNnaWQgImlnbm9yZSBib3Jyb3dlZCBvYmplY3RzIGZyb20gYWx0ZXJuYXRlIG9iamVjdCBzdG9yZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjMKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2NAogbXNnaWQgImlnbm9yZSBwYWNrZWQgb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjUKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2NgogbXNnaWQgImxpbWl0IHBhY2sgd2luZG93IGJ5IG9iamVjdHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDY3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjgKIG1zZ2lkICJsaW1pdCBwYWNrIHdpbmRvdyBieSBtZW1vcnkgaW4gYWRkaXRpb24gdG8gb2JqZWN0IGxpbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2OQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDcwCiBtc2dpZCAibWF4aW11bSBsZW5ndGggb2YgZGVsdGEgY2hhaW4gYWxsb3dlZCBpbiB0aGUgcmVzdWx0aW5nIHBhY2siCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDcxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzIKIG1zZ2lkICJyZXVzZSBleGlzdGluZyBkZWx0YXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDczCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzQKIG1zZ2lkICJyZXVzZSBleGlzdGluZyBvYmplY3RzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3NQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDc2CiBtc2dpZCAidXNlIE9GU19ERUxUQSBvYmplY3RzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3NworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDc4CiBtc2dpZCAidXNlIHRocmVhZHMgd2hlbiBzZWFyY2hpbmcgZm9yIGJlc3QgZGVsdGEgbWF0Y2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4MAogbXNnaWQgImRvIG5vdCBjcmVhdGUgYW4gZW1wdHkgcGFjayBvdXRwdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDgxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODIKIG1zZ2lkICJyZWFkIHJldmlzaW9uIGFyZ3VtZW50cyBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4MworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDg0CiBtc2dpZCAibGltaXQgdGhlIG9iamVjdHMgdG8gdGhvc2UgdGhhdCBhcmUgbm90IHlldCBwYWNrZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDg2CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODcKIG1zZ2lkICJpbmNsdWRlIG9iamVjdHMgcmVhY2hhYmxlIGZyb20gYW55IHJlZmVyZW5jZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5MAogbXNnaWQgImluY2x1ZGUgb2JqZWN0cyByZWZlcnJlZCBieSByZWZsb2cgZW50cmllcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTIKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5MwogbXNnaWQgIm91dHB1dCBwYWNrIHRvIHN0ZG91dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTQKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NQogbXNnaWQgImluY2x1ZGUgdGFnIG9iamVjdHMgdGhhdCByZWZlciB0byBvYmplY3RzIHRvIGJlIHBhY2tlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTYKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NwogbXNnaWQgImtlZXAgdW5yZWFjaGFibGUgb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTcgcGFyc2Utb3B0aW9ucy5oOjE0MQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk4IHBhcnNlLW9wdGlvbnMuaDoxNDMKIG1zZ2lkICJ0aW1lIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5OAorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk5CiBtc2dpZCAidW5wYWNrIHVucmVhY2hhYmxlIG9iamVjdHMgbmV3ZXIgdGhhbiA8dGltZT4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTAxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDIKIG1zZ2lkICJjcmVhdGUgdGhpbiBwYWNrcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDMKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNAogbXNnaWQgImlnbm9yZSBwYWNrcyB0aGF0IGhhdmUgY29tcGFuaW9uIC5rZWVwIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA1CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDYKIG1zZ2lkICJwYWNrIGNvbXByZXNzaW9uIGxldmVsIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA4CiBtc2dpZCAiZG8gbm90IGhpZGUgY29tbWl0cyBieSBncmFmdHMiCiBtc2dzdHIgIiIKIApAQCAtNzE2NywyMSArNzM2MywyMSBAQAogbXNnaWQgImdpdCBwdXNoIFs8b3B0aW9ucz5dIFs8cmVwb3NpdG9yeT4gWzxyZWZzcGVjPi4uLl1dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1CisjOiBidWlsdGluL3B1c2guYzo0NwogbXNnaWQgInRhZyBzaG9ydGhhbmQgd2l0aG91dCA8dGFnPiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo2NAorIzogYnVpbHRpbi9wdXNoLmM6NjYKIG1zZ2lkICItLWRlbGV0ZSBvbmx5IGFjY2VwdHMgcGxhaW4gdGFyZ2V0IHJlZiBuYW1lcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo5OQorIzogYnVpbHRpbi9wdXNoLmM6MTAxCiBtc2dpZCAiIgogIlxuIgogIlRvIGNob29zZSBlaXRoZXIgb3B0aW9uIHBlcm1hbmVudGx5LCBzZWUgcHVzaC5kZWZhdWx0IGluICdnaXQgaGVscCBjb25maWcnLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzoxMDIKKyM6IGJ1aWx0aW4vcHVzaC5jOjEwNAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIHVwc3RyZWFtIGJyYW5jaCBvZiB5b3VyIGN1cnJlbnQgYnJhbmNoIGRvZXMgbm90IG1hdGNoXG4iCkBAIC03MTk2LDcgKzczOTIsNyBAQAogIiVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjExNworIzogYnVpbHRpbi9wdXNoLmM6MTE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIG5vdCBjdXJyZW50bHkgb24gYSBicmFuY2guXG4iCkBAIC03MjA2LDcgKzc0MDIsNyBAQAogIiAgICBnaXQgcHVzaCAlcyBIRUFEOjxuYW1lLW9mLXJlbW90ZS1icmFuY2g+XG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTMxCisjOiBidWlsdGluL3B1c2guYzoxMzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBjdXJyZW50IGJyYW5jaCAlcyBoYXMgbm8gdXBzdHJlYW0gYnJhbmNoLlxuIgpAQCAtNzIxNSwxMiArNzQxMSwxMiBAQAogIiAgICBnaXQgcHVzaCAtLXNldC11cHN0cmVhbSAlcyAlc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEzOQorIzogYnVpbHRpbi9wdXNoLmM6MTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlRoZSBjdXJyZW50IGJyYW5jaCAlcyBoYXMgbXVsdGlwbGUgdXBzdHJlYW0gYnJhbmNoZXMsIHJlZnVzaW5nIHRvIHB1c2guIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjE0MgorIzogYnVpbHRpbi9wdXNoLmM6MTQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIHB1c2hpbmcgdG8gcmVtb3RlICclcycsIHdoaWNoIGlzIG5vdCB0aGUgdXBzdHJlYW0gb2ZcbiIKQEAgLTcyMjgsNyArNzQyNCw3IEBACiAidG8gdXBkYXRlIHdoaWNoIHJlbW90ZSBicmFuY2guIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjE2NQorIzogYnVpbHRpbi9wdXNoLmM6MTY3CiBtc2dpZCAiIgogInB1c2guZGVmYXVsdCBpcyB1bnNldDsgaXRzIGltcGxpY2l0IHZhbHVlIGlzIGNoYW5naW5nIGluXG4iCiAiR2l0IDIuMCBmcm9tICdtYXRjaGluZycgdG8gJ3NpbXBsZScuIFRvIHNxdWVsY2ggdGhpcyBtZXNzYWdlXG4iCkBAIC03MjQ2LDEyICs3NDQyLDEyIEBACiAiJ2N1cnJlbnQnIGluc3RlYWQgb2YgJ3NpbXBsZScgaWYgeW91IHNvbWV0aW1lcyB1c2Ugb2xkZXIgdmVyc2lvbnMgb2YgR2l0KSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzoyMjUKKyM6IGJ1aWx0aW4vcHVzaC5jOjIyNwogbXNnaWQgIiIKICJZb3UgZGlkbid0IHNwZWNpZnkgYW55IHJlZnNwZWNzIHRvIHB1c2gsIGFuZCBwdXNoLmRlZmF1bHQgaXMgXCJub3RoaW5nXCIuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzMgorIzogYnVpbHRpbi9wdXNoLmM6MjM0CiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSB0aXAgb2YgeW91ciBjdXJyZW50IGJyYW5jaCBpcyBiZWhpbmRcbiIKICJpdHMgcmVtb3RlIGNvdW50ZXJwYXJ0LiBJbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuXG4iCkBAIC03MjU5LDcgKzc0NTUsNyBAQAogIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzOAorIzogYnVpbHRpbi9wdXNoLmM6MjQwCiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIGEgcHVzaGVkIGJyYW5jaCB0aXAgaXMgYmVoaW5kIGl0cyByZW1vdGVcbiIKICJjb3VudGVycGFydC4gSWYgeW91IGRpZCBub3QgaW50ZW5kIHRvIHB1c2ggdGhhdCBicmFuY2gsIHlvdSBtYXkgd2FudCB0b1xuIgpAQCAtNzI2Nyw3ICs3NDYzLDcgQEAKICJ0byAnc2ltcGxlJywgJ2N1cnJlbnQnIG9yICd1cHN0cmVhbScgdG8gcHVzaCBvbmx5IHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjQ0CisjOiBidWlsdGluL3B1c2guYzoyNDYKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgYSBwdXNoZWQgYnJhbmNoIHRpcCBpcyBiZWhpbmQgaXRzIHJlbW90ZVxuIgogImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIGludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKQEAgLTcyNzUsNyArNzQ3MSw3IEBACiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjUwCisjOiBidWlsdGluL3B1c2guYzoyNTIKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHJlbW90ZSBjb250YWlucyB3b3JrIHRoYXQgeW91IGRvXG4iCiAibm90IGhhdmUgbG9jYWxseS4gVGhpcyBpcyB1c3VhbGx5IGNhdXNlZCBieSBhbm90aGVyIHJlcG9zaXRvcnkgcHVzaGluZ1xuIgpAQCAtNzI4NCwzMyArNzQ4MCwzMyBAQAogIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI1NworIzogYnVpbHRpbi9wdXNoLmM6MjU5CiBtc2dpZCAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRhZyBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgcmVtb3RlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzoyNjAKKyM6IGJ1aWx0aW4vcHVzaC5jOjI2MgogbXNnaWQgIiIKICJZb3UgY2Fubm90IHVwZGF0ZSBhIHJlbW90ZSByZWYgdGhhdCBwb2ludHMgYXQgYSBub24tY29tbWl0IG9iamVjdCxcbiIKICJvciB1cGRhdGUgYSByZW1vdGUgcmVmIHRvIG1ha2UgaXQgcG9pbnQgYXQgYSBub24tY29tbWl0IG9iamVjdCxcbiIKICJ3aXRob3V0IHVzaW5nIHRoZSAnLS1mb3JjZScgb3B0aW9uLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMyMAorIzogYnVpbHRpbi9wdXNoLmM6MzI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlB1c2hpbmcgdG8gJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzozMjQKKyM6IGJ1aWx0aW4vcHVzaC5jOjMzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcHVzaCBzb21lIHJlZnMgdG8gJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzozNTcKKyM6IGJ1aWx0aW4vcHVzaC5jOjM2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgcmVwb3NpdG9yeSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1OAorIzogYnVpbHRpbi9wdXNoLmM6MzY2CiBtc2dpZCAiIgogIk5vIGNvbmZpZ3VyZWQgcHVzaCBkZXN0aW5hdGlvbi5cbiIKICJFaXRoZXIgc3BlY2lmeSB0aGUgVVJMIGZyb20gdGhlIGNvbW1hbmQtbGluZSBvciBjb25maWd1cmUgYSByZW1vdGUgIgpAQCAtNzMyMyw4NyArNzUxOSw5NSBAQAogIiAgICBnaXQgcHVzaCA8bmFtZT5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzozNzMKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4MQogbXNnaWQgIi0tYWxsIGFuZCAtLXRhZ3MgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzozNzQKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4MgogbXNnaWQgIi0tYWxsIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mzc5CisjOiBidWlsdGluL3B1c2guYzozODcKIG1zZ2lkICItLW1pcnJvciBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzgwCisjOiBidWlsdGluL3B1c2guYzozODgKIG1zZ2lkICItLW1pcnJvciBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM4NQorIzogYnVpbHRpbi9wdXNoLmM6MzkzCiBtc2dpZCAiLS1hbGwgYW5kIC0tbWlycm9yIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDQ1CisjOiBidWlsdGluL3B1c2guYzo0NTMKIG1zZ2lkICJyZXBvc2l0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ0NgorIzogYnVpbHRpbi9wdXNoLmM6NDU0CiBtc2dpZCAicHVzaCBhbGwgcmVmcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NQogbXNnaWQgIm1pcnJvciBhbGwgcmVmcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NwogbXNnaWQgImRlbGV0ZSByZWZzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAorIzogYnVpbHRpbi9wdXNoLmM6NDU4CiBtc2dpZCAicHVzaCB0YWdzIChjYW4ndCBiZSB1c2VkIHdpdGggLS1hbGwgb3IgLS1taXJyb3IpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MworIzogYnVpbHRpbi9wdXNoLmM6NDYxCiBtc2dpZCAiZm9yY2UgdXBkYXRlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0NTQKLW1zZ2lkICJjaGVjayIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL3B1c2guYzo0NTUKLW1zZ2lkICJjb250cm9sIHJlY3Vyc2l2ZSBwdXNoaW5nIG9mIHN1Ym1vZHVsZXMiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9wdXNoLmM6NDU3Ci1tc2dpZCAidXNlIHRoaW4gcGFjayIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL3B1c2guYzo0NTggYnVpbHRpbi9wdXNoLmM6NDU5Ci1tc2dpZCAicmVjZWl2ZSBwYWNrIHByb2dyYW0iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9wdXNoLmM6NDYwCi1tc2dpZCAic2V0IHVwc3RyZWFtIGZvciBnaXQgcHVsbC9zdGF0dXMiCi1tc2dzdHIgIiIKLQogIzogYnVpbHRpbi9wdXNoLmM6NDYzCi1tc2dpZCAicHJ1bmUgbG9jYWxseSByZW1vdmVkIHJlZnMiCittc2dpZCAicmVmbmFtZT46PGV4cGVjdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0NjUKLW1zZ2lkICJieXBhc3MgcHJlLXB1c2ggaG9vayIKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NAorbXNnaWQgInJlcXVpcmUgb2xkIHZhbHVlIG9mIHJlZiB0byBiZSBhdCB0aGlzIHZhbHVlIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vcHVzaC5jOjQ2NgotbXNnaWQgInB1c2ggbWlzc2luZyBidXQgcmVsZXZhbnQgdGFncyIKK21zZ2lkICJjaGVjayIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0NzYKLW1zZ2lkICItLWRlbGV0ZSBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFsbCwgLS1taXJyb3IgYW5kIC0tdGFncyIKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NworbXNnaWQgImNvbnRyb2wgcmVjdXJzaXZlIHB1c2hpbmcgb2Ygc3VibW9kdWxlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0NjkKK21zZ2lkICJ1c2UgdGhpbiBwYWNrIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3MCBidWlsdGluL3B1c2guYzo0NzEKK21zZ2lkICJyZWNlaXZlIHBhY2sgcHJvZ3JhbSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0NzIKK21zZ2lkICJzZXQgdXBzdHJlYW0gZm9yIGdpdCBwdWxsL3N0YXR1cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0NzUKK21zZ2lkICJwcnVuZSBsb2NhbGx5IHJlbW92ZWQgcmVmcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0NzcKK21zZ2lkICJieXBhc3MgcHJlLXB1c2ggaG9vayIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL3B1c2guYzo0NzgKK21zZ2lkICJwdXNoIG1pc3NpbmcgYnV0IHJlbGV2YW50IHRhZ3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDg4Cittc2dpZCAiLS1kZWxldGUgaXMgaW5jb21wYXRpYmxlIHdpdGggLS1hbGwsIC0tbWlycm9yIGFuZCAtLXRhZ3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDkwCiBtc2dpZCAiLS1kZWxldGUgZG9lc24ndCBtYWtlIHNlbnNlIHdpdGhvdXQgYW55IHJlZnMiCiBtc2dzdHIgIiIKIApAQCAtNzQ3OCwxMiArNzY4MiwxMiBAQAogbXNnaWQgImRlYnVnIHVucGFjay10cmVlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlZmxvZy5jOjUwMAorIzogYnVpbHRpbi9yZWZsb2cuYzo0OTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMnIGZvciAnJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlZmxvZy5jOjYxNiBidWlsdGluL3JlZmxvZy5jOjYyMQorIzogYnVpbHRpbi9yZWZsb2cuYzo2MTUgYnVpbHRpbi9yZWZsb2cuYzo2MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiCiBtc2dzdHIgIiIKQEAgLTc1MDYsOCArNzcxMCw4IEBACiBtc2dpZCAiZ2l0IHJlbW90ZSByZW1vdmUgPG5hbWU+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVtb3RlLmM6MTUgYnVpbHRpbi9yZW1vdGUuYzo0MgotbXNnaWQgImdpdCByZW1vdGUgc2V0LWhlYWQgPG5hbWU+ICgtYSB8IC1kIHwgPGJyYW5jaD4pIgorIzogYnVpbHRpbi9yZW1vdGUuYzoxNQorbXNnaWQgImdpdCByZW1vdGUgc2V0LWhlYWQgPG5hbWU+ICgtYSB8IC0tYXV0byB8IC1kIHwgLS1kZWxldGUgfDxicmFuY2g+KSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE2CkBAIC03NTQzLDYgKzc3NDcsMTAgQEAKIG1zZ2lkICJnaXQgcmVtb3RlIGFkZCBbPG9wdGlvbnM+XSA8bmFtZT4gPHVybD4iCiBtc2dzdHIgIiIKIAorIzogYnVpbHRpbi9yZW1vdGUuYzo0MgorbXNnaWQgImdpdCByZW1vdGUgc2V0LWhlYWQgPG5hbWU+ICgtYSB8IC0tYXV0byB8IC1kIHwgLS1kZWxldGUgfCA8YnJhbmNoPikiCittc2dzdHIgIiIKKwogIzogYnVpbHRpbi9yZW1vdGUuYzo0NwogbXNnaWQgImdpdCByZW1vdGUgc2V0LWJyYW5jaGVzIDxuYW1lPiA8YnJhbmNoPi4uLiIKIG1zZ3N0ciAiIgpAQCAtNzk3MCw2ICs4MTc4LDY3IEBACiBtc2dpZCAiYmUgdmVyYm9zZTsgbXVzdCBiZSBwbGFjZWQgYmVmb3JlIGEgc3ViY29tbWFuZCIKIG1zZ3N0ciAiIgogCisjOiBidWlsdGluL3JlcGFjay5jOjE1Cittc2dpZCAiZ2l0IHJlcGFjayBbb3B0aW9uc10iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNDMKK21zZ2lkICJwYWNrIGV2ZXJ5dGhpbmcgaW4gYSBzaW5nbGUgcGFjayIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE0NQorbXNnaWQgInNhbWUgYXMgLWEsIGFuZCB0dXJuIHVucmVhY2hhYmxlIG9iamVjdHMgbG9vc2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNDgKK21zZ2lkICJyZW1vdmUgcmVkdW5kYW50IHBhY2tzLCBhbmQgcnVuIGdpdC1wcnVuZS1wYWNrZWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNTAKK21zZ2lkICJwYXNzIC0tbm8tcmV1c2UtZGVsdGEgdG8gZ2l0LXBhY2stb2JqZWN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE1MgorbXNnaWQgInBhc3MgLS1uby1yZXVzZS1vYmplY3QgdG8gZ2l0LXBhY2stb2JqZWN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE1NAorbXNnaWQgImRvIG5vdCBydW4gZ2l0LXVwZGF0ZS1zZXJ2ZXItaW5mbyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE1NworbXNnaWQgInBhc3MgLS1sb2NhbCB0byBnaXQtcGFjay1vYmplY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTU4Cittc2dpZCAiYXBwcm94aWRhdGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNTkKK21zZ2lkICJ3aXRoIC1BLCBkbyBub3QgbG9vc2VuIG9iamVjdHMgb2xkZXIgdGhhbiB0aGlzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTYxCittc2dpZCAic2l6ZSBvZiB0aGUgd2luZG93IHVzZWQgZm9yIGRlbHRhIGNvbXByZXNzaW9uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTYzCittc2dpZCAic2FtZSBhcyB0aGUgYWJvdmUsIGJ1dCBsaW1pdCBtZW1vcnkgc2l6ZSBpbnN0ZWFkIG9mIGVudHJpZXMgY291bnQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNjUKK21zZ2lkICJsaW1pdHMgdGhlIG1heGltdW0gZGVsdGEgZGVwdGgiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNjcKK21zZ2lkICJtYXhpbXVtIHNpemUgb2YgZWFjaCBwYWNrZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlcGFjay5jOjM0NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZW1vdmluZyAnJXMnIGZhaWxlZCIKK21zZ3N0ciAiIgorCiAjOiBidWlsdGluL3JlcGxhY2UuYzoxNwogbXNnaWQgImdpdCByZXBsYWNlIFstZl0gPG9iamVjdD4gPHJlcGxhY2VtZW50PiIKIG1zZ3N0ciAiIgpAQCAtNzk4MiwyMyArODI1MSwyMyBAQAogbXNnaWQgImdpdCByZXBsYWNlIC1sIFs8cGF0dGVybj5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEyMQorIzogYnVpbHRpbi9yZXBsYWNlLmM6MTMxCiBtc2dpZCAibGlzdCByZXBsYWNlIHJlZnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXBsYWNlLmM6MTIyCisjOiBidWlsdGluL3JlcGxhY2UuYzoxMzIKIG1zZ2lkICJkZWxldGUgcmVwbGFjZSByZWZzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEyMworIzogYnVpbHRpbi9yZXBsYWNlLmM6MTMzCiBtc2dpZCAicmVwbGFjZSB0aGUgcmVmIGlmIGl0IGV4aXN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlcmVyZS5jOjExCisjOiBidWlsdGluL3JlcmVyZS5jOjEyCiBtc2dpZCAiZ2l0IHJlcmVyZSBbY2xlYXIgfCBmb3JnZXQgcGF0aC4uLiB8IHN0YXR1cyB8IHJlbWFpbmluZyB8IGRpZmYgfCBnY10iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXJlcmUuYzo1NgorIzogYnVpbHRpbi9yZXJlcmUuYzo1NwogbXNnaWQgInJlZ2lzdGVyIGNsZWFuIHJlc29sdXRpb25zIGluIGluZGV4IgogbXNnc3RyICIiCiAKQEAgLTgwNTgsNjkgKzgzMjcsNjkgQEAKIG1zZ2lkICJDYW5ub3QgZG8gYSAlcyByZXNldCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTEKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjIKIG1zZ2lkICJiZSBxdWlldCwgb25seSByZXBvcnQgZXJyb3JzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTMKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjQKIG1zZ2lkICJyZXNldCBIRUFEIGFuZCBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjU0CisjOiBidWlsdGluL3Jlc2V0LmM6MjY1CiBtc2dpZCAicmVzZXQgb25seSBIRUFEIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTYgYnVpbHRpbi9yZXNldC5jOjI1OAorIzogYnVpbHRpbi9yZXNldC5jOjI2NyBidWlsdGluL3Jlc2V0LmM6MjY5CiBtc2dpZCAicmVzZXQgSEVBRCwgaW5kZXggYW5kIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjYwCisjOiBidWlsdGluL3Jlc2V0LmM6MjcxCiBtc2dpZCAicmVzZXQgSEVBRCBidXQga2VlcCBsb2NhbCBjaGFuZ2VzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNzgKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyODkKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHJldmlzaW9uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjgxIGJ1aWx0aW4vcmVzZXQuYzoyODkKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyOTIgYnVpbHRpbi9yZXNldC5jOjMwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2Ugb2JqZWN0ICclcycuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyODYKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyOTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHRyZWUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyOTUKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMDYKIG1zZ2lkICItLXBhdGNoIGlzIGluY29tcGF0aWJsZSB3aXRoIC0te2hhcmQsbWl4ZWQsc29mdH0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMwNAorIzogYnVpbHRpbi9yZXNldC5jOjMxNQogbXNnaWQgIi0tbWl4ZWQgd2l0aCBwYXRocyBpcyBkZXByZWNhdGVkOyB1c2UgJ2dpdCByZXNldCAtLSA8cGF0aHM+JyBpbnN0ZWFkLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzA2CisjOiBidWlsdGluL3Jlc2V0LmM6MzE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBkbyAlcyByZXNldCB3aXRoIHBhdGhzLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzE2CisjOiBidWlsdGluL3Jlc2V0LmM6MzI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIHJlc2V0IGlzIG5vdCBhbGxvd2VkIGluIGEgYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMzYKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDQKK21zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlc2V0OiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MzUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZXNldCBpbmRleCBmaWxlIHRvIHJldmlzaW9uICclcycuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozNDIKLW1zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlc2V0OiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL3Jlc2V0LmM6MzQ3CisjOiBidWlsdGluL3Jlc2V0LmM6MzU1CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIG5ldyBpbmRleCBmaWxlLiIKIG1zZ3N0ciAiIgogCkBAIC04MTYxLDg0ICs4NDMwLDg0IEBACiBtc2dpZCAiZ2l0IGNoZXJyeS1waWNrIDxzdWJjb21tYW5kPiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjcxIGJ1aWx0aW4vcmV2ZXJ0LmM6OTQKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6NzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6ICVzIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODAKIG1zZ2lkICJlbmQgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA2CisjOiBidWlsdGluL3JldmVydC5jOjgxCiBtc2dpZCAicmVzdW1lIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNworIzogYnVpbHRpbi9yZXZlcnQuYzo4MgogbXNnaWQgImNhbmNlbCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODMKIG1zZ2lkICJkb24ndCBhdXRvbWF0aWNhbGx5IGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwOQorIzogYnVpbHRpbi9yZXZlcnQuYzo4NAogbXNnaWQgImVkaXQgdGhlIGNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCisjOiBidWlsdGluL3JldmVydC5jOjg3CiBtc2dpZCAicGFyZW50IG51bWJlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExNAorIzogYnVpbHRpbi9yZXZlcnQuYzo4OQogbXNnaWQgIm1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE1CisjOiBidWlsdGluL3JldmVydC5jOjkwCiBtc2dpZCAib3B0aW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE2CisjOiBidWlsdGluL3JldmVydC5jOjkxCiBtc2dpZCAib3B0aW9uIGZvciBtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNworIzogYnVpbHRpbi9yZXZlcnQuYzoxMDIKIG1zZ2lkICJhcHBlbmQgY29tbWl0IG5hbWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTAzCiBtc2dpZCAiYWxsb3cgZmFzdC1mb3J3YXJkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI5CisjOiBidWlsdGluL3JldmVydC5jOjEwNAogbXNnaWQgInByZXNlcnZlIGluaXRpYWxseSBlbXB0eSBjb21taXRzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTMwCisjOiBidWlsdGluL3JldmVydC5jOjEwNQogbXNnaWQgImFsbG93IGNvbW1pdHMgd2l0aCBlbXB0eSBtZXNzYWdlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzMQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKIG1zZ2lkICJrZWVwIHJlZHVuZGFudCwgZW1wdHkgY29tbWl0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzNQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMTAKIG1zZ2lkICJwcm9ncmFtIGVycm9yIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjI1CisjOiBidWlsdGluL3JldmVydC5jOjE5NQogbXNnaWQgInJldmVydCBmYWlsZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyNDAKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjEwCiBtc2dpZCAiY2hlcnJ5LXBpY2sgZmFpbGVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxNgorIzogYnVpbHRpbi9ybS5jOjE3CiBtc2dpZCAiZ2l0IHJtIFtvcHRpb25zXSBbLS1dIDxmaWxlPi4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6NjQKKyM6IGJ1aWx0aW4vcm0uYzo2NQogbXNnaWQgIiIKICJ0aGUgZm9sbG93aW5nIHN1Ym1vZHVsZSAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcylcbiIKICJ1c2VzIGEgLmdpdCBkaXJlY3Rvcnk6IgpAQCAtODI0OCwxMyArODUxNywxMyBAQAogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogYnVpbHRpbi9ybS5jOjcwCisjOiBidWlsdGluL3JtLmM6NzEKIG1zZ2lkICIiCiAiXG4iCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMzAKKyM6IGJ1aWx0aW4vcm0uYzoyMzEKIG1zZ2lkICIiCiAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgogImZpbGUgYW5kIHRoZSBIRUFEOiIKQEAgLTgyNjQsNTYgKzg1MzMsNTYgQEAKIG1zZ3N0clswXSAiIgogbXNnc3RyWzFdICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMzUKKyM6IGJ1aWx0aW4vcm0uYzoyMzYKIG1zZ2lkICIiCiAiXG4iCiAiKHVzZSAtZiB0byBmb3JjZSByZW1vdmFsKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6MjM5CisjOiBidWlsdGluL3JtLmM6MjQwCiBtc2dpZCAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXg6IgogbXNnaWRfcGx1cmFsICJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKIG1zZ3N0clswXSAiIgogbXNnc3RyWzFdICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyNDMgYnVpbHRpbi9ybS5jOjI1NAorIzogYnVpbHRpbi9ybS5jOjI0NCBidWlsdGluL3JtLmM6MjU1CiBtc2dpZCAiIgogIlxuIgogIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ybS5jOjI1MQorIzogYnVpbHRpbi9ybS5jOjI1MgogbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uczoiCiBtc2dpZF9wbHVyYWwgInRoZSBmb2xsb3dpbmcgZmlsZXMgaGF2ZSBsb2NhbCBtb2RpZmljYXRpb25zOiIKIG1zZ3N0clswXSAiIgogbXNnc3RyWzFdICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyNjkKKyM6IGJ1aWx0aW4vcm0uYzoyNzAKIG1zZ2lkICJkbyBub3QgbGlzdCByZW1vdmVkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyNzAKKyM6IGJ1aWx0aW4vcm0uYzoyNzEKIG1zZ2lkICJvbmx5IHJlbW92ZSBmcm9tIHRoZSBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6MjcxCisjOiBidWlsdGluL3JtLmM6MjcyCiBtc2dpZCAib3ZlcnJpZGUgdGhlIHVwLXRvLWRhdGUgY2hlY2siCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ybS5jOjI3MgorIzogYnVpbHRpbi9ybS5jOjI3MwogbXNnaWQgImFsbG93IHJlY3Vyc2l2ZSByZW1vdmFsIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyNzQKKyM6IGJ1aWx0aW4vcm0uYzoyNzUKIG1zZ2lkICJleGl0IHdpdGggYSB6ZXJvIHN0YXR1cyBldmVuIGlmIG5vdGhpbmcgbWF0Y2hlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6MzQ1CisjOiBidWlsdGluL3JtLmM6MzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCByZW1vdmluZyAnJXMnIHJlY3Vyc2l2ZWx5IHdpdGhvdXQgLXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ybS5jOjM4NAorIzogYnVpbHRpbi9ybS5jOjM3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgcm06IHVuYWJsZSB0byByZW1vdmUgJXMiCiBtc2dzdHIgIiIKQEAgLTgzMjcsMjMgKzg1OTYsMjMgQEAKIG1zZ2lkICJNaXNzaW5nIGF1dGhvcjogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIyOAorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMAogbXNnaWQgInNvcnQgb3V0cHV0IGFjY29yZGluZyB0byB0aGUgbnVtYmVyIG9mIGNvbW1pdHMgcGVyIGF1dGhvciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjMwCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjMyCiBtc2dpZCAiU3VwcHJlc3MgY29tbWl0IGRlc2NyaXB0aW9ucywgb25seSBwcm92aWRlcyBjb21taXQgY291bnQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzNAogbXNnaWQgIlNob3cgdGhlIGVtYWlsIGFkZHJlc3Mgb2YgZWFjaCBhdXRob3IiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzNQogbXNnaWQgIndbLGkxWyxpMl1dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzQKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzYKIG1zZ2lkICJMaW5ld3JhcCBvdXRwdXQiCiBtc2dzdHIgIiIKIApAQCAtODQ0NSwyMyArODcxNCwyMyBAQAogbXNnaWQgInN0cmljdGVyIHJlZmVyZW5jZSBjaGVja2luZywgcmVxdWlyZXMgZXhhY3QgcmVmIHBhdGgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MyBidWlsdGluL3Nob3ctcmVmLmM6MTc2CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTczIGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzUKIG1zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSwgZXZlbiBpZiBpdCB3b3VsZCBiZSBmaWx0ZXJlZCBvdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3OAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NwogbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW50byBvYmplY3QgSURzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODAKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzkKIG1zZ2lkICJvbmx5IHNob3cgU0hBMSBoYXNoIHVzaW5nIDxuPiBkaWdpdHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4NAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MwogbXNnaWQgImRvIG5vdCBwcmludCByZXN1bHRzIHRvIHN0ZG91dCAodXNlZnVsIHdpdGggLS12ZXJpZnkpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODUKIG1zZ2lkICJzaG93IHJlZnMgZnJvbSBzdGRpbiB0aGF0IGFyZW4ndCBpbiBsb2NhbCByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAKQEAgLTg0ODUsMTEgKzg3NTQsMTEgQEAKIG1zZ2lkICJzaG9ydGVuIHJlZiBvdXRwdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zeW1ib2xpYy1yZWYuYzo0MyBidWlsdGluL3VwZGF0ZS1yZWYuYzoxOAorIzogYnVpbHRpbi9zeW1ib2xpYy1yZWYuYzo0MyBidWlsdGluL3VwZGF0ZS1yZWYuYzoyNTQKIG1zZ2lkICJyZWFzb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zeW1ib2xpYy1yZWYuYzo0MyBidWlsdGluL3VwZGF0ZS1yZWYuYzoxOAorIzogYnVpbHRpbi9zeW1ib2xpYy1yZWYuYzo0MyBidWlsdGluL3VwZGF0ZS1yZWYuYzoyNTQKIG1zZ2lkICJyZWFzb24gb2YgdGhlIHVwZGF0ZSIKIG1zZ3N0ciAiIgogCkBAIC04NjQ0LDE4MyArODkxMywxOTUgQEAKIG1zZ2lkICJwcmludCBvbmx5IHRhZ3Mgb2YgdGhlIG9iamVjdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3RhZy5jOjUwNAorIzogYnVpbHRpbi90YWcuYzo1MDEKIG1zZ2lkICItLWNvbHVtbiBhbmQgLW4gYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3RhZy5jOjUyMQorIzogYnVpbHRpbi90YWcuYzo1MTgKIG1zZ2lkICItbiBvcHRpb24gaXMgb25seSBhbGxvd2VkIHdpdGggLWwuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTIzCisjOiBidWlsdGluL3RhZy5jOjUyMAogbXNnaWQgIi0tY29udGFpbnMgb3B0aW9uIGlzIG9ubHkgYWxsb3dlZCB3aXRoIC1sLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3RhZy5jOjUyNQorIzogYnVpbHRpbi90YWcuYzo1MjIKIG1zZ2lkICItLXBvaW50cy1hdCBvcHRpb24gaXMgb25seSBhbGxvd2VkIHdpdGggLWwuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTMzCisjOiBidWlsdGluL3RhZy5jOjUzMAogbXNnaWQgIm9ubHkgb25lIC1GIG9yIC1tIG9wdGlvbiBpcyBhbGxvd2VkLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3RhZy5jOjU1MworIzogYnVpbHRpbi90YWcuYzo1NTAKIG1zZ2lkICJ0b28gbWFueSBwYXJhbXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi90YWcuYzo1NTkKKyM6IGJ1aWx0aW4vdGFnLmM6NTU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgdGFnIG5hbWUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTY0CisjOiBidWlsdGluL3RhZy5jOjU2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWcgJyVzJyBhbHJlYWR5IGV4aXN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3RhZy5jOjU4MgorIzogYnVpbHRpbi90YWcuYzo1NzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbm5vdCBsb2NrIHRoZSByZWYiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi90YWcuYzo1ODQKKyM6IGJ1aWx0aW4vdGFnLmM6NTgxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBjYW5ub3QgdXBkYXRlIHRoZSByZWYiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi90YWcuYzo1ODYKKyM6IGJ1aWx0aW4vdGFnLmM6NTgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVwZGF0ZWQgdGFnICclcycgKHdhcyAlcylcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjQwMQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo0MDIKIG1zZ2lkICJnaXQgdXBkYXRlLWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmlsZT4uLi5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzE4CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyMAogbXNnaWQgImNvbnRpbnVlIHJlZnJlc2ggZXZlbiB3aGVuIGluZGV4IG5lZWRzIHVwZGF0ZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyMQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjMKIG1zZ2lkICJyZWZyZXNoOiBpZ25vcmUgc3VibW9kdWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyNAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjYKIG1zZ2lkICJkbyBub3QgaWdub3JlIG5ldyBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyNgorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjgKIG1zZ2lkICJsZXQgZmlsZXMgcmVwbGFjZSBkaXJlY3RvcmllcyBhbmQgdmljZS12ZXJzYSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyOAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzAKIG1zZ2lkICJub3RpY2UgZmlsZXMgbWlzc2luZyBmcm9tIHdvcmt0cmVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzMwCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczMgogbXNnaWQgInJlZnJlc2ggZXZlbiBpZiBpbmRleCBjb250YWlucyB1bm1lcmdlZCBlbnRyaWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzMzCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczNQogbXNnaWQgInJlZnJlc2ggc3RhdCBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczNworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzkKIG1zZ2lkICJsaWtlIC0tcmVmcmVzaCwgYnV0IGlnbm9yZSBhc3N1bWUtdW5jaGFuZ2VkIHNldHRpbmciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDEKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQzCiBtc2dpZCAiPG1vZGU+IDxvYmplY3Q+IDxwYXRoPiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0MgorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDQKIG1zZ2lkICJhZGQgdGhlIHNwZWNpZmllZCBlbnRyeSB0byB0aGUgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDYKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQ4CiBtc2dpZCAiKCsvLSl4IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQ3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0OQogbXNnaWQgIm92ZXJyaWRlIHRoZSBleGVjdXRhYmxlIGJpdCBvZiB0aGUgbGlzdGVkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzUxCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1MwogbXNnaWQgIm1hcmsgZmlsZXMgYXMgXCJub3QgY2hhbmdpbmdcIiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1NAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTYKIG1zZ2lkICJjbGVhciBhc3N1bWVkLXVuY2hhbmdlZCBiaXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTcKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzU5CiBtc2dpZCAibWFyayBmaWxlcyBhcyBcImluZGV4LW9ubHlcIiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2MAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjIKIG1zZ2lkICJjbGVhciBza2lwLXdvcmt0cmVlIGJpdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2MworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjUKIG1zZ2lkICJhZGQgdG8gaW5kZXggb25seTsgZG8gbm90IGFkZCBjb250ZW50IHRvIG9iamVjdCBkYXRhYmFzZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2NQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjcKIG1zZ2lkICJyZW1vdmUgbmFtZWQgcGF0aHMgZXZlbiBpZiBwcmVzZW50IGluIHdvcmt0cmVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2OQogbXNnaWQgIndpdGggLS1zdGRpbjogaW5wdXQgbGluZXMgYXJlIHRlcm1pbmF0ZWQgYnkgbnVsbCBieXRlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2OQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzEKIG1zZ2lkICJyZWFkIGxpc3Qgb2YgcGF0aHMgdG8gYmUgdXBkYXRlZCBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzczCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc3NQogbXNnaWQgImFkZCBlbnRyaWVzIGZyb20gc3RhbmRhcmQgaW5wdXQgdG8gdGhlIGluZGV4IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzc3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc3OQogbXNnaWQgInJlcG9wdWxhdGUgc3RhZ2VzICMyIGFuZCAjMyBmb3IgdGhlIGxpc3RlZCBwYXRocyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4MQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODMKIG1zZ2lkICJvbmx5IHVwZGF0ZSBlbnRyaWVzIHRoYXQgZGlmZmVyIGZyb20gSEVBRCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4NQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODcKIG1zZ2lkICJpZ25vcmUgZmlsZXMgbWlzc2luZyBmcm9tIHdvcmt0cmVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzg4CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5MAogbXNnaWQgInJlcG9ydCBhY3Rpb25zIHRvIHN0YW5kYXJkIG91dHB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5MAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTIKIG1zZ2lkICIoZm9yIHBvcmNlbGFpbnMpIGZvcmdldCBzYXZlZCB1bnJlc29sdmVkIGNvbmZsaWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5NAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTYKIG1zZ2lkICJ3cml0ZSBpbmRleCBpbiB0aGlzIGZvcm1hdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1yZWYuYzo3CisjOiBidWlsdGluL3VwZGF0ZS1yZWYuYzo5CiBtc2dpZCAiZ2l0IHVwZGF0ZS1yZWYgW29wdGlvbnNdIC1kIDxyZWZuYW1lPiBbPG9sZHZhbD5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjgKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjEwCiBtc2dpZCAiZ2l0IHVwZGF0ZS1yZWYgW29wdGlvbnNdICAgIDxyZWZuYW1lPiA8bmV3dmFsPiBbPG9sZHZhbD5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjE5CisjOiBidWlsdGluL3VwZGF0ZS1yZWYuYzoxMQorbXNnaWQgImdpdCB1cGRhdGUtcmVmIFtvcHRpb25zXSAtLXN0ZGluIFstel0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU1CiBtc2dpZCAiZGVsZXRlIHRoZSByZWZlcmVuY2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjEKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1NwogbXNnaWQgInVwZGF0ZSA8cmVmbmFtZT4gbm90IHRoZSBvbmUgaXQgcG9pbnRzIHRvIgogbXNnc3RyICIiCiAKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1OAorbXNnaWQgInN0ZGluIGhhcyBOVUwtdGVybWluYXRlZCBhcmd1bWVudHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU5Cittc2dpZCAicmVhZCB1cGRhdGVzIGZyb20gc3RkaW4iCittc2dzdHIgIiIKKwogIzogYnVpbHRpbi91cGRhdGUtc2VydmVyLWluZm8uYzo2CiBtc2dpZCAiZ2l0IHVwZGF0ZS1zZXJ2ZXItaW5mbyBbLS1mb3JjZV0iCiBtc2dzdHIgIiIKQEAgLTg4NzIsMjMgKzkxNTMsMjMgQEAKICJ0byByZWFkIGFib3V0IGEgc3BlY2lmaWMgc3ViY29tbWFuZCBvciBjb25jZXB0LiIKIG1zZ3N0ciAiIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MTQ0CisjOiBwYXJzZS1vcHRpb25zLmg6MTQ2CiBtc2dpZCAiZXhwaXJ5IGRhdGUiCiBtc2dzdHIgIiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjE1OQorIzogcGFyc2Utb3B0aW9ucy5oOjE2MQogbXNnaWQgIm5vLW9wIChiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSIKIG1zZ3N0ciAiIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjM2CisjOiBwYXJzZS1vcHRpb25zLmg6MjM4CiBtc2dpZCAiYmUgbW9yZSB2ZXJib3NlIgogbXNnc3RyICIiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyMzgKKyM6IHBhcnNlLW9wdGlvbnMuaDoyNDAKIG1zZ2lkICJiZSBtb3JlIHF1aWV0IgogbXNnc3RyICIiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyNDQKKyM6IHBhcnNlLW9wdGlvbnMuaDoyNDYKIG1zZ2lkICJ1c2UgPG4+IGRpZ2l0cyB0byBkaXNwbGF5IFNIQS0xcyIKIG1zZ3N0ciAiIgogCkBAIC05Mjg0LDcgKzk1NjUsNyBAQAogbXNnaWQgIlB1bGwgaXMgbm90IHBvc3NpYmxlIGJlY2F1c2UgeW91IGhhdmUgdW5tZXJnZWQgZmlsZXMuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1wdWxsLnNoOjIwMworIzogZ2l0LXB1bGwuc2g6MjIzCiBtc2dpZCAidXBkYXRpbmcgYW4gdW5ib3JuIGJyYW5jaCB3aXRoIGNoYW5nZXMgYWRkZWQgdG8gdGhlIGluZGV4IgogbXNnc3RyICIiCiAKQEAgLTkyOTIsNyArOTU3Myw3IEBACiAjLiBUaGUgd29ya2luZyB0cmVlIGFuZCB0aGUgaW5kZXggZmlsZSBpcyBzdGlsbCBiYXNlZCBvbiB0aGUKICMuICRvcmlnX2hlYWQgY29tbWl0LCBidXQgd2UgYXJlIG1lcmdpbmcgaW50byAkY3Vycl9oZWFkLgogIy4gRmlyc3QgdXBkYXRlIHRoZSB3b3JraW5nIHRyZWUgdG8gbWF0Y2ggJGN1cnJfaGVhZC4KLSM6IGdpdC1wdWxsLnNoOjIzNQorIzogZ2l0LXB1bGwuc2g6MjU1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiV2FybmluZzogZmV0Y2ggdXBkYXRlZCB0aGUgY3VycmVudCBicmFuY2ggaGVhZC5cbiIKQEAgLTkzMDAsMTEgKzk1ODEsMTEgQEAKICJXYXJuaW5nOiBjb21taXQgJG9yaWdfaGVhZC4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXB1bGwuc2g6MjYwCisjOiBnaXQtcHVsbC5zaDoyODAKIG1zZ2lkICJDYW5ub3QgbWVyZ2UgbXVsdGlwbGUgYnJhbmNoZXMgaW50byBlbXB0eSBoZWFkIgogbXNnc3RyICIiCiAKLSM6IGdpdC1wdWxsLnNoOjI2NAorIzogZ2l0LXB1bGwuc2g6Mjg0CiBtc2dpZCAiQ2Fubm90IHJlYmFzZSBvbnRvIG11bHRpcGxlIGJyYW5jaGVzIgogbXNnc3RyICIiCiAKQEAgLTkzMzIsNDIgKzk2MTMsNDIgQEAKICJZb3UgY2FuIHJ1biBcImdpdCBzdGFzaCBwb3BcIiBvciBcImdpdCBzdGFzaCBkcm9wXCIgYXQgYW55IHRpbWUuXG4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDoxOTAKKyM6IGdpdC1yZWJhc2Uuc2g6MTk5CiBtc2dpZCAiVGhlIHByZS1yZWJhc2UgaG9vayByZWZ1c2VkIHRvIHJlYmFzZS4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDoxOTUKKyM6IGdpdC1yZWJhc2Uuc2g6MjA0CiBtc2dpZCAiSXQgbG9va3MgbGlrZSBnaXQtYW0gaXMgaW4gcHJvZ3Jlc3MuIENhbm5vdCByZWJhc2UuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzI5CisjOiBnaXQtcmViYXNlLnNoOjMzOAogbXNnaWQgIlRoZSAtLWV4ZWMgb3B0aW9uIG11c3QgYmUgdXNlZCB3aXRoIHRoZSAtLWludGVyYWN0aXZlIG9wdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjMzNAorIzogZ2l0LXJlYmFzZS5zaDozNDMKIG1zZ2lkICJObyByZWJhc2UgaW4gcHJvZ3Jlc3M/IgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzQ1CisjOiBnaXQtcmViYXNlLnNoOjM1NAogbXNnaWQgIlRoZSAtLWVkaXQtdG9kbyBhY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgaW50ZXJhY3RpdmUgcmViYXNlLiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjM1MgorIzogZ2l0LXJlYmFzZS5zaDozNjEKIG1zZ2lkICJDYW5ub3QgcmVhZCBIRUFEIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzU1CisjOiBnaXQtcmViYXNlLnNoOjM2NAogbXNnaWQgIiIKICJZb3UgbXVzdCBlZGl0IGFsbCBtZXJnZSBjb25mbGljdHMgYW5kIHRoZW5cbiIKICJtYXJrIHRoZW0gYXMgcmVzb2x2ZWQgdXNpbmcgZ2l0IGFkZCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjM3MworIzogZ2l0LXJlYmFzZS5zaDozODIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBtb3ZlIGJhY2sgdG8gJGhlYWRfbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjM5MgorIzogZ2l0LXJlYmFzZS5zaDo0MDEKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJJdCBzZWVtcyB0aGF0IHRoZXJlIGlzIGFscmVhZHkgYSAkc3RhdGVfZGlyX2Jhc2UgZGlyZWN0b3J5LCBhbmRcbiIKQEAgLTkzODAsNjUgKzk2NjEsNjUgQEAKICJ2YWx1YWJsZSB0aGVyZS4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MzcKKyM6IGdpdC1yZWJhc2Uuc2g6NDQ2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHVwc3RyZWFtICR1cHN0cmVhbV9uYW1lIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDYxCisjOiBnaXQtcmViYXNlLnNoOjQ3MAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJG9udG9fbmFtZTogdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgbWVyZ2UgYmFzZXMiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0NjQgZ2l0LXJlYmFzZS5zaDo0NjgKKyM6IGdpdC1yZWJhc2Uuc2g6NDczIGdpdC1yZWJhc2Uuc2g6NDc3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkb250b19uYW1lOiB0aGVyZSBpcyBubyBtZXJnZSBiYXNlIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDczCisjOiBnaXQtcmViYXNlLnNoOjQ4MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiRG9lcyBub3QgcG9pbnQgdG8gYSB2YWxpZCBjb21taXQ6ICRvbnRvX25hbWUiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0OTYKKyM6IGdpdC1yZWJhc2Uuc2g6NTA1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJmYXRhbDogbm8gc3VjaCBicmFuY2g6ICRicmFuY2hfbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjUxOQorIzogZ2l0LXJlYmFzZS5zaDo1MjgKIG1zZ2lkICJDYW5ub3QgYXV0b3N0YXNoIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjOiBnaXQtcmViYXNlLnNoOjUzMwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3JlYXRlZCBhdXRvc3Rhc2g6ICRzdGFzaF9hYmJyZXYiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MjgKKyM6IGdpdC1yZWJhc2Uuc2g6NTM3CiBtc2dpZCAiUGxlYXNlIGNvbW1pdCBvciBzdGFzaCB0aGVtLiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjU0OAorIzogZ2l0LXJlYmFzZS5zaDo1NTcKICMsIHNoLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjU1MgorIzogZ2l0LXJlYmFzZS5zaDo1NjEKICMsIHNoLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLCByZWJhc2UgZm9yY2VkLiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjU2MworIzogZ2l0LXJlYmFzZS5zaDo1NzIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNoYW5nZXMgZnJvbSAkbWIgdG8gJG9udG86IgogbXNnc3RyICIiCiAKICMuIERldGFjaCBIRUFEIGFuZCByZXNldCB0aGUgdHJlZQotIzogZ2l0LXJlYmFzZS5zaDo1NzIKKyM6IGdpdC1yZWJhc2Uuc2g6NTgxCiBtc2dpZCAiRmlyc3QsIHJld2luZGluZyBoZWFkIHRvIHJlcGxheSB5b3VyIHdvcmsgb24gdG9wIG9mIGl0Li4uIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTgyCisjOiBnaXQtcmViYXNlLnNoOjU5MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFzdC1mb3J3YXJkZWQgJGJyYW5jaF9uYW1lIHRvICRvbnRvX25hbWUuIgogbXNnc3RyICIiCkBAIC05NDg2LDEwMyArOTc2Nyw5MiBAQAogIy4gJCBnaXQgc3Rhc2ggc2F2ZSAtLWJsYWgtYmxhaCAyPiYxIHwgaGVhZCAtbiAyCiAjLiBlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogLS1ibGFoLWJsYWgKICMuIFRvIHByb3ZpZGUgYSBtZXNzYWdlLCB1c2UgZ2l0IHN0YXNoIHNhdmUgLS0gJy0tYmxhaC1ibGFoJwotIzogZ2l0LXN0YXNoLnNoOjI0MQorIzogZ2l0LXN0YXNoLnNoOjIzNwogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogImVycm9yOiB1bmtub3duIG9wdGlvbiBmb3IgJ3N0YXNoIHNhdmUnOiAkb3B0aW9uXG4iCiAiICAgICAgIFRvIHByb3ZpZGUgYSBtZXNzYWdlLCB1c2UgZ2l0IHN0YXNoIHNhdmUgLS0gJyRvcHRpb24nIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDoyNjIKKyM6IGdpdC1zdGFzaC5zaDoyNTgKIG1zZ2lkICJObyBsb2NhbCBjaGFuZ2VzIHRvIHNhdmUiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjI2OAotbXNnaWQgIiIKLSJUaGUgZm9sbG93aW5nIHVudHJhY2tlZCBmaWxlcyB3b3VsZCBOT1QgYmUgc2F2ZWQgYnV0IG5lZWQgdG8gYmUgcmVtb3ZlZCBieSAiCi0ic3Rhc2ggc2F2ZToiCi1tc2dzdHIgIiIKLQotIzogZ2l0LXN0YXNoLnNoOjI3MAotbXNnaWQgIiIKLSJBYm9ydGluZy4gQ29uc2lkZXIgdXNpbmcgZWl0aGVyIHRoZSAtLWZvcmNlIG9yIC0taW5jbHVkZS11bnRyYWNrZWQgb3B0aW9uLiIKLW1zZ3N0ciAiIgotCi0jOiBnaXQtc3Rhc2guc2g6Mjc0CisjOiBnaXQtc3Rhc2guc2g6MjYyCiBtc2dpZCAiQ2Fubm90IGluaXRpYWxpemUgc3Rhc2giCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjI3OAorIzogZ2l0LXN0YXNoLnNoOjI2NgogbXNnaWQgIkNhbm5vdCBzYXZlIHRoZSBjdXJyZW50IHN0YXR1cyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6Mjk2CisjOiBnaXQtc3Rhc2guc2g6Mjg0CiBtc2dpZCAiQ2Fubm90IHJlbW92ZSB3b3JrdHJlZSBjaGFuZ2VzIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDozOTUKKyM6IGdpdC1zdGFzaC5zaDozODMKIG1zZ2lkICJObyBzdGFzaCBmb3VuZC4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjQwMgorIzogZ2l0LXN0YXNoLnNoOjM5MAogIywgc2gtZm9ybWF0CiBtc2dpZCAiVG9vIG1hbnkgcmV2aXNpb25zIHNwZWNpZmllZDogJFJFViIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NDA4CisjOiBnaXQtc3Rhc2guc2g6Mzk2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkcmVmZXJlbmNlIGlzIG5vdCB2YWxpZCByZWZlcmVuY2UiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjQzNgorIzogZ2l0LXN0YXNoLnNoOjQyNAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaC1saWtlIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NDQ3CisjOiBnaXQtc3Rhc2guc2g6NDM1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoIHJlZmVyZW5jZSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NDU1CisjOiBnaXQtc3Rhc2guc2g6NDQzCiBtc2dpZCAidW5hYmxlIHRvIHJlZnJlc2ggaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjQ1OQorIzogZ2l0LXN0YXNoLnNoOjQ0NwogbXNnaWQgIkNhbm5vdCBhcHBseSBhIHN0YXNoIGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NDY3CisjOiBnaXQtc3Rhc2guc2g6NDU1CiBtc2dpZCAiQ29uZmxpY3RzIGluIGluZGV4LiBUcnkgd2l0aG91dCAtLWluZGV4LiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NDY5CisjOiBnaXQtc3Rhc2guc2g6NDU3CiBtc2dpZCAiQ291bGQgbm90IHNhdmUgaW5kZXggdHJlZSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NTAzCisjOiBnaXQtc3Rhc2guc2g6NDkxCiBtc2dpZCAiQ2Fubm90IHVuc3RhZ2UgbW9kaWZpZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjUxOAorIzogZ2l0LXN0YXNoLnNoOjUwNgogbXNnaWQgIkluZGV4IHdhcyBub3QgdW5zdGFzaGVkLiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NTM1CisjOiBnaXQtc3Rhc2guc2g6NTIzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJEcm9wcGVkICR7UkVWfSAoJHMpIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDo1MzYKKyM6IGdpdC1zdGFzaC5zaDo1MjQKICMsIHNoLWZvcm1hdAogbXNnaWQgIiR7UkVWfTogQ291bGQgbm90IGRyb3Agc3Rhc2ggZW50cnkiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjU0MworIzogZ2l0LXN0YXNoLnNoOjUzMQogbXNnaWQgIk5vIGJyYW5jaCBuYW1lIHNwZWNpZmllZCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NjE1CisjOiBnaXQtc3Rhc2guc2g6NjAzCiBtc2dpZCAiKFRvIHJlc3RvcmUgdGhlbSB0eXBlIFwiZ2l0IHN0YXNoIGFwcGx5XCIpIgogbXNnc3RyICIiCiAKQEAgLTk4MjgsNDQgKzEwMDk4LDM2IEBACiBtc2dzdHIgIiIKIAogIy4gdW5leHBlY3RlZCB0eXBlCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwNjYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA3MwogIywgc2gtZm9ybWF0CiBtc2dpZCAidW5leHBlY3RlZCBtb2RlICRtb2RfZHN0IgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTA4NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDkzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIgIFdhcm46ICRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9zcmMiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDg5CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwOTYKICMsIHNoLWZvcm1hdAogbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX2RzdCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwOTIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5OQogIywgc2gtZm9ybWF0CiBtc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTExNworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTI0CiBtc2dpZCAiYmxvYiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjExNTUKLW1zZ2lkICJTdWJtb2R1bGVzIGNoYW5nZWQgYnV0IG5vdCB1cGRhdGVkOiIKLW1zZ3N0ciAiIgotCi0jOiBnaXQtc3VibW9kdWxlLnNoOjExNTcKLW1zZ2lkICJTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgotbXNnc3RyICIiCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTI0MgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjM4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMzA2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEzMDIKICMsIHNoLWZvcm1hdAogbXNnaWQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKZGlmZiAtLWdpdCBhL3BvL2l0LnBvIGIvcG8vaXQucG8KaW5kZXggZmU2MWYxYS4uOTA4MDIxOSAxMDA2NDQKLS0tIGEvcG8vaXQucG8KKysrIGIvcG8vaXQucG8KQEAgLTI0NzYsNyArMjQ3Niw3IEBACiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ4MgotbXNnaWQgIi0tZGlydHkgaXMgaW5jb21wYXRpYmxlIHdpdGggY29tbWl0dGlzaGVzIgorbXNnaWQgIi0tZGlydHkgaXMgaW5jb21wYXRpYmxlIHdpdGggY29tbWl0LWlzaGVzIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vZGlmZi5jOjc3CmRpZmYgLS1naXQgYS9wby9ubC5wbyBiL3BvL25sLnBvCmluZGV4IGUxMzk5ZTIuLmFkMzFjNjYgMTAwNjQ0Ci0tLSBhL3BvL25sLnBvCisrKyBiL3BvL25sLnBvCkBAIC0xNjY5LDcgKzE2NjksNyBAQAogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODIKLW1zZ2lkICItLWRpcnR5IGlzIGluY29tcGF0aWJsZSB3aXRoIGNvbW1pdHRpc2hlcyIKK21zZ2lkICItLWRpcnR5IGlzIGluY29tcGF0aWJsZSB3aXRoIGNvbW1pdC1pc2hlcyIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2RpZmYuYzo3NwpkaWZmIC0tZ2l0IGEvcG8vcHRfUFQucG8gYi9wby9wdF9QVC5wbwppbmRleCA1MTdlYzI5Li42ODlhZDFiIDEwMDY0NAotLS0gYS9wby9wdF9QVC5wbworKysgYi9wby9wdF9QVC5wbwpAQCAtMjMxMiw3ICsyMzEyLDcgQEAKIG1zZ3N0ciAiTmVuaHVtIG5vbWUgZW5jb250cmFkbywgbsOjbyBkZXNjcmV2ZSBuYWRhLiIKIAogIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ4MgotbXNnaWQgIi0tZGlydHkgaXMgaW5jb21wYXRpYmxlIHdpdGggY29tbWl0dGlzaGVzIgorbXNnaWQgIi0tZGlydHkgaXMgaW5jb21wYXRpYmxlIHdpdGggY29tbWl0LWlzaGVzIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vZGlmZi5jOjc3CmRpZmYgLS1naXQgYS9wby9zdi5wbyBiL3BvL3N2LnBvCmluZGV4IDEyZGZjYTkuLjUwY2M4Y2IgMTAwNjQ0Ci0tLSBhL3BvL3N2LnBvCisrKyBiL3BvL3N2LnBvCkBAIC03LDggKzcsOCBAQAogbXNnc3RyICIiCiAiUHJvamVjdC1JZC1WZXJzaW9uOiBnaXQgMS44LjRcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogR2l0IE1haWxpbmcgTGlzdCA8Z2l0QHZnZXIua2VybmVsLm9yZz5cbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0wOC0wNiAxNDoxMCswODAwXG4iCi0iUE8tUmV2aXNpb24tRGF0ZTogMjAxMy0wOC0wNiAxMjozNyswMTAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMTEtMDIgMDg6MDYrMDgwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMTMtMTEtMDkgMTk6MDIrMDEwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogUGV0ZXIgS3JlZnRpbmcgPHBldGVyQHNvZnR3b2x2ZXMucHAuc2U+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogU3dlZGlzaCA8dHAtc3ZAbGlzdG9yLnRwLXN2LnNlPlxuIgogIkxhbmd1YWdlOiBzdlxuIgpAQCAtNTcsNzEgKzU3LDc2IEBACiBtc2dpZCAiZ2l0IGFyY2hpdmUgLS1yZW1vdGUgPHJlcG8+IFstLWV4ZWMgPGNtZD5dIC0tbGlzdCIKIG1zZ3N0ciAiZ2l0IGFyY2hpdmUgLS1yZW1vdGUgPGFya2l2PiBbLS1leGVjIDxrbWQ+XSAtLWxpc3QiCiAKLSM6IGFyY2hpdmUuYzozMjMKKyM6IGFyY2hpdmUuYzoyNDIgYnVpbHRpbi9hZGQuYzoyNDAgYnVpbHRpbi9hZGQuYzo1NTYgYnVpbHRpbi9ybS5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgorbXNnc3RyICJzw7ZrdsOkZ3NhbmdpdmVsc2VuIFwiJXNcIiBtb3RzdmFyYWRlIGludGUgbsOlZ3JhIGZpbGVyIgorCisjOiBhcmNoaXZlLmM6MzI3CiBtc2dpZCAiZm10IgogbXNnc3RyICJmbXQiCiAKLSM6IGFyY2hpdmUuYzozMjMKKyM6IGFyY2hpdmUuYzozMjcKIG1zZ2lkICJhcmNoaXZlIGZvcm1hdCIKIG1zZ3N0ciAiYXJraXZmb3JtYXQiCiAKLSM6IGFyY2hpdmUuYzozMjQgYnVpbHRpbi9sb2cuYzoxMTczCisjOiBhcmNoaXZlLmM6MzI4IGJ1aWx0aW4vbG9nLmM6MTE5MwogbXNnaWQgInByZWZpeCIKIG1zZ3N0ciAicHJlZml4IgogCi0jOiBhcmNoaXZlLmM6MzI1CisjOiBhcmNoaXZlLmM6MzI5CiBtc2dpZCAicHJlcGVuZCBwcmVmaXggdG8gZWFjaCBwYXRobmFtZSBpbiB0aGUgYXJjaGl2ZSIKIG1zZ3N0ciAibMOkZ2cgdGlsbCBwcmVmaXggdGlsbCB2YXJqZSBzw7ZrdsOkZyBpIGFya2l2ZXQiCiAKLSM6IGFyY2hpdmUuYzozMjYgYnVpbHRpbi9hcmNoaXZlLmM6ODggYnVpbHRpbi9ibGFtZS5jOjIyOTIKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkzIGJ1aWx0aW4vY29uZmlnLmM6NTYgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MwotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NSBidWlsdGluL2dyZXAuYzo3MTQgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc3Ci0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk2IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTkgYnVpbHRpbi9ub3Rlcy5jOjQwOAotIzogYnVpbHRpbi9ub3Rlcy5jOjU2NSBidWlsdGluL3JlYWQtdHJlZS5jOjEwOCBwYXJzZS1vcHRpb25zLmg6MTUyCisjOiBhcmNoaXZlLmM6MzMwIGJ1aWx0aW4vYXJjaGl2ZS5jOjg4IGJ1aWx0aW4vYmxhbWUuYzoyMjY0CisjOiBidWlsdGluL2JsYW1lLmM6MjI2NSBidWlsdGluL2NvbmZpZy5jOjU4IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODAKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODIgYnVpbHRpbi9ncmVwLmM6NzE2IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NiBidWlsdGluL2xzLWZpbGVzLmM6NDg5IGJ1aWx0aW4vbm90ZXMuYzo0MDgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NjUgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDggcGFyc2Utb3B0aW9ucy5oOjE1NAogbXNnaWQgImZpbGUiCiBtc2dzdHIgImZpbCIKIAotIzogYXJjaGl2ZS5jOjMyNyBidWlsdGluL2FyY2hpdmUuYzo4OQorIzogYXJjaGl2ZS5jOjMzMSBidWlsdGluL2FyY2hpdmUuYzo4OQogbXNnaWQgIndyaXRlIHRoZSBhcmNoaXZlIHRvIHRoaXMgZmlsZSIKIG1zZ3N0ciAic2tyaXYgYXJraXZldCB0aWxsIGZpbGVuIgogCi0jOiBhcmNoaXZlLmM6MzI5CisjOiBhcmNoaXZlLmM6MzMzCiBtc2dpZCAicmVhZCAuZ2l0YXR0cmlidXRlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSIKIG1zZ3N0ciAibMOkcyAuZ2l0YXR0cmlidXRlcyBpIGFyYmV0c2thdGFsb2dlbiIKIAotIzogYXJjaGl2ZS5jOjMzMAorIzogYXJjaGl2ZS5jOjMzNAogbXNnaWQgInJlcG9ydCBhcmNoaXZlZCBmaWxlcyBvbiBzdGRlcnIiCiBtc2dzdHIgInJhcHBvcnRlcmEgYXJraXZlcmFkZSBmaWxlciBww6Ugc3RhbmRhcmQgZmVsIgogCi0jOiBhcmNoaXZlLmM6MzMxCisjOiBhcmNoaXZlLmM6MzM1CiBtc2dpZCAic3RvcmUgb25seSIKIG1zZ3N0ciAiZW5kYXN0IHNwYXJhIgogCi0jOiBhcmNoaXZlLmM6MzMyCisjOiBhcmNoaXZlLmM6MzM2CiBtc2dpZCAiY29tcHJlc3MgZmFzdGVyIgogbXNnc3RyICJrb21wcmltZXJhIHNuYWJiYXJlIgogCi0jOiBhcmNoaXZlLmM6MzQwCisjOiBhcmNoaXZlLmM6MzQ0CiBtc2dpZCAiY29tcHJlc3MgYmV0dGVyIgogbXNnc3RyICJrb21wcmltZXJhIGLDpHR0cmUiCiAKLSM6IGFyY2hpdmUuYzozNDMKKyM6IGFyY2hpdmUuYzozNDcKIG1zZ2lkICJsaXN0IHN1cHBvcnRlZCBhcmNoaXZlIGZvcm1hdHMiCiBtc2dzdHIgInZpc2EgdW5kZXJzdMO2ZGRhIGFya2l2Zm9ybWF0IgogCi0jOiBhcmNoaXZlLmM6MzQ1IGJ1aWx0aW4vYXJjaGl2ZS5jOjkwIGJ1aWx0aW4vY2xvbmUuYzo4NQorIzogYXJjaGl2ZS5jOjM0OSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODQKIG1zZ2lkICJyZXBvIgogbXNnc3RyICJhcmtpdiIKIAotIzogYXJjaGl2ZS5jOjM0NiBidWlsdGluL2FyY2hpdmUuYzo5MQorIzogYXJjaGl2ZS5jOjM1MCBidWlsdGluL2FyY2hpdmUuYzo5MQogbXNnaWQgInJldHJpZXZlIHRoZSBhcmNoaXZlIGZyb20gcmVtb3RlIHJlcG9zaXRvcnkgPHJlcG8+IgogbXNnc3RyICJow6RtdGEgYXJraXZldCBmcsOlbiBmasOkcnJhcmtpdmV0IDxhcmtpdj4iCiAKLSM6IGFyY2hpdmUuYzozNDcgYnVpbHRpbi9hcmNoaXZlLmM6OTIgYnVpbHRpbi9ub3Rlcy5jOjQ4NworIzogYXJjaGl2ZS5jOjM1MSBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NDg3CiBtc2dpZCAiY29tbWFuZCIKIG1zZ3N0ciAia29tbWFuZG8iCiAKLSM6IGFyY2hpdmUuYzozNDggYnVpbHRpbi9hcmNoaXZlLmM6OTMKKyM6IGFyY2hpdmUuYzozNTIgYnVpbHRpbi9hcmNoaXZlLmM6OTMKIG1zZ2lkICJwYXRoIHRvIHRoZSByZW1vdGUgZ2l0LXVwbG9hZC1hcmNoaXZlIGNvbW1hbmQiCiBtc2dzdHIgInPDtmt2w6RnIHRpbGwga29tbWFuZG90IGdpdC11cGxvYWQtYXJjaGl2ZSBww6UgZmrDpHJyZW4iCiAKQEAgLTIwNCwxNyArMjA5LDE3IEBACiBtc2dpZCAiQ2Fubm90IGZvcmNlIHVwZGF0ZSB0aGUgY3VycmVudCBicmFuY2guIgogbXNnc3RyICJLYW4gaW50ZSB0dmluZ2EgdXBwZGF0ZXJpbmcgYXYgYWt0dWVsbCBncmVuLiIKIAotIzogYnJhbmNoLmM6MjE2CisjOiBicmFuY2guYzoyMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHNldHVwIHRyYWNraW5nIGluZm9ybWF0aW9uOyBzdGFydGluZyBwb2ludCAnJXMnIGlzIG5vdCBhIGJyYW5jaC4iCiBtc2dzdHIgIkthbiBpbnRlIHN0w6RsbGEgaW4gc3DDpXJuaW5nOyBzdGFydHB1bmt0ZW4gXCIlc1wiIMOkciBpbnRlIGVuIGdyZW4uIgogCi0jOiBicmFuY2guYzoyMTgKKyM6IGJyYW5jaC5jOjIxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0aGUgcmVxdWVzdGVkIHVwc3RyZWFtIGJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICJkZW4gZWZ0ZXJmcsOlZ2FkZSB1cHBzdHLDtm1zZ3JlbmVuIFwiJXNcIiBmaW5ucyBpbnRlIgogCi0jOiBicmFuY2guYzoyMjAKKyM6IGJyYW5jaC5jOjIxOQogbXNnaWQgIiIKICJcbiIKICJJZiB5b3UgYXJlIHBsYW5uaW5nIG9uIGJhc2luZyB5b3VyIHdvcmsgb24gYW4gdXBzdHJlYW1cbiIKQEAgLTIzNCwyNiArMjM5LDI2IEBACiAic3DDpXJhIGRlc3MgZmrDpHJybW90c3ZhcmlnaGV0IGthbiBkdSBhbnbDpG5kYSBcImdpdCBwdXNoIC11XCJcbiIKICJmw7ZyIGF0dCBzdMOkbGxhIGluIHVwcHN0csO2bXNrb25maWd1cmF0aW9uZW4gbsOkciBkdSBzw6RuZGVyIGluLiIKIAotIzogYnJhbmNoLmM6MjY1CisjOiBicmFuY2guYzoyNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWU6ICclcycuIgogbXNnc3RyICJPYmpla3RuYW1uZXQgw6RyIGludGUgZ2lsdGlndDogXCIlc1wiLiIKIAotIzogYnJhbmNoLmM6Mjg1CisjOiBicmFuY2guYzoyODQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQW1iaWd1b3VzIG9iamVjdCBuYW1lOiAnJXMnLiIKIG1zZ3N0ciAiT2JqZWt0bmFtbmV0IMOkciB0dmV0eWRpZ3Q6IFwiJXNcIi4iCiAKLSM6IGJyYW5jaC5jOjI5MAorIzogYnJhbmNoLmM6Mjg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhIHZhbGlkIGJyYW5jaCBwb2ludDogJyVzJy4iCiBtc2dzdHIgIkF2Z3JlbmluZ3NwdW5rdGVuIMOkciBpbnRlIGdpbHRpZzogXCIlc1wiIgogCi0jOiBicmFuY2guYzoyOTYKKyM6IGJyYW5jaC5jOjI5NQogbXNnaWQgIkZhaWxlZCB0byBsb2NrIHJlZiBmb3IgdXBkYXRlIgogbXNnc3RyICJNaXNzbHlja2FkZXMgbMOlc2EgcmVmZXJlbnMgZsO2ciB1cHBkYXRlcmluZyIKIAotIzogYnJhbmNoLmM6MzE0CisjOiBicmFuY2guYzozMTMKIG1zZ2lkICJGYWlsZWQgdG8gd3JpdGUgcmVmIgogbXNnc3RyICJNaXNzbHlja2FkZXMgc2tyaXZhIHJlZmVyZW5zIgogCkBAIC0yNjcsNyArMjcyLDcgQEAKIG1zZ2lkICJ1bnJlY29nbml6ZWQgaGVhZGVyOiAlcyVzICglZCkiCiBtc2dzdHIgIm9rw6RudCBodXZ1ZDogJXMlcyAoJWQpIgogCi0jOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjY5NworIzogYnVuZGxlLmM6ODkgYnVpbHRpbi9jb21taXQuYzo3MDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyIKIG1zZ3N0ciAia3VuZGUgaW50ZSDDtnBwbmEgXCIlc1wiIgpAQCAtMjc2LDkgKzI4MSw5IEBACiBtc2dpZCAiUmVwb3NpdG9yeSBsYWNrcyB0aGVzZSBwcmVyZXF1aXNpdGUgY29tbWl0czoiCiBtc2dzdHIgIkFya2l2ZXQgc2FrbmFyIGRlc3NhIG7DtmR2w6RuZGlnYSBpbmNoZWNrbmluZ2FyOiIKIAotIzogYnVuZGxlLmM6MTY0IHNlcXVlbmNlci5jOjY2MSBzZXF1ZW5jZXIuYzoxMTExIGJ1aWx0aW4vbG9nLmM6MzMxCi0jOiBidWlsdGluL2xvZy5jOjgwMSBidWlsdGluL2xvZy5jOjEzOTkgYnVpbHRpbi9sb2cuYzoxNjI1IGJ1aWx0aW4vbWVyZ2UuYzozNjQKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxNTYKKyM6IGJ1bmRsZS5jOjE2NCBzZXF1ZW5jZXIuYzo2NjIgc2VxdWVuY2VyLmM6MTExMiBidWlsdGluL2xvZy5jOjMzMgorIzogYnVpbHRpbi9sb2cuYzo4MjEgYnVpbHRpbi9sb2cuYzoxNDE4IGJ1aWx0aW4vbG9nLmM6MTY0NCBidWlsdGluL21lcmdlLmM6MzY0CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MTU4CiBtc2dpZCAicmV2aXNpb24gd2FsayBzZXR1cCBmYWlsZWQiCiBtc2dzdHIgIm1pc3NseWNrYWRlcyBza2FwYSByZXZpc2lvbnN0cmF2ZXJzZXJpbmciCiAKQEAgLTMwNCw3ICszMDksNyBAQAogbXNnaWQgInJldi1saXN0IGRpZWQiCiBtc2dzdHIgInJldi1saXN0IGRvZyIKIAotIzogYnVuZGxlLmM6MzAwIGJ1aWx0aW4vbG9nLmM6MTMxMCBidWlsdGluL3Nob3J0bG9nLmM6MjU5CisjOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMzI5IGJ1aWx0aW4vc2hvcnRsb2cuYzoyNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5yZWNvZ25pemVkIGFyZ3VtZW50OiAlcyIKIG1zZ3N0ciAib2vDpG50IGFyZ3VtZW50OiAlcyIKQEAgLTQ1NCw3ICs0NTksNyBAQAogIkhpdHRhZGUgZmVsIGkga29uZmlndXJhdGlvbnN2YXJpYWJlbG4gXCJkaWZmLmRpcnN0YXRcIjpcbiIKICIlcyIKIAotIzogZGlmZi5jOjM0ODcKKyM6IGRpZmYuYzozNDkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJGYWlsZWQgdG8gcGFyc2UgLS1kaXJzdGF0Ly1YIG9wdGlvbiBwYXJhbWV0ZXI6XG4iCkBAIC00NjMsNyArNDY4LDcgQEAKICJNaXNzbHlja2FkZXMgdG9sa2EgYXJndW1lbnQgdGlsbCBmbGFnZ2FuIC0tZGlyc3RhdC8tWDtcbiIKICIlcyIKIAotIzogZGlmZi5jOjM1MDEKKyM6IGRpZmYuYzozNTA0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBwYXJzZSAtLXN1Ym1vZHVsZSBvcHRpb24gcGFyYW1ldGVyOiAnJXMnIgogbXNnc3RyICJNaXNzbHlja2FkZXMgdG9sa2EgYXJndW1lbnQgdGlsbCBmbGFnZ2FuIC0tc3VibW9kdWxlOiBcIiVzXCIiCkBAIC00OTAsMTcgKzQ5NSwxNyBAQAogbXNnaWQgImZhaWxlZCB3cml0aW5nIGRldGFjaGVkIHNpZ25hdHVyZSB0byAnJXMnOiAlcyIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIHNrcml2YSBmcmlzdMOlZW5kZSBzaWduYXR1ciB0aWxsIFwiJXNcIjogJXMiCiAKLSM6IGdyZXAuYzoxNjIzCisjOiBncmVwLmM6MTY5NQogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnOiB1bmFibGUgdG8gcmVhZCAlcyIKIG1zZ3N0ciAiXCIlc1wiIGt1bmRlIGludGUgbMOkc2EgJXMiCiAKLSM6IGdyZXAuYzoxNjQwCisjOiBncmVwLmM6MTcxMgogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnOiAlcyIKIG1zZ3N0ciAiXCIlc1wiOiAlcyIKIAotIzogZ3JlcC5jOjE2NTEKKyM6IGdyZXAuYzoxNzIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcyc6IHNob3J0IHJlYWQgJXMiCiBtc2dzdHIgIlwiJXNcIjoga29ydCBsw6RzbmluZyAlcyIKQEAgLTU3Myw4ICs1NzgsOCBAQAogbXNnaWQgImZhaWxlZCB0byByZWFkIHRoZSBjYWNoZSIKIG1zZ3N0ciAibWlzc2x5Y2thZHMgbMOkc2EgY2FjaGVuIgogCi0jOiBtZXJnZS5jOjExMCBidWlsdGluL2NoZWNrb3V0LmM6MzY1IGJ1aWx0aW4vY2hlY2tvdXQuYzo1NjYKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NTYKKyM6IG1lcmdlLmM6MTEwIGJ1aWx0aW4vY2hlY2tvdXQuYzozNTggYnVpbHRpbi9jaGVja291dC5jOjU1OQorIzogYnVpbHRpbi9jbG9uZS5jOjY1NQogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza3JpdmEgbnkgaW5kZXhmaWwiCiAKQEAgLTYyMyw3ICs2MjgsNyBAQAogbXNnaWQgImJsb2IgZXhwZWN0ZWQgZm9yICVzICclcyciCiBtc2dzdHIgImJsb2IgZsO2cnbDpG50YWRlcyBmw7ZyICVzIFwiJXNcIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzc0IGJ1aWx0aW4vY2xvbmUuYzozMTIKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc3NCBidWlsdGluL2Nsb25lLmM6MzExCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBvcGVuICclcyciCiBtc2dzdHIgIm1pc3NseWNrYWRlcyDDtnBwbmEgXCIlc1wiIgpAQCAtNzU3LDcgKzc2Miw3IEBACiBtc2dpZCAiQXV0by1tZXJnaW5nICVzIgogbXNnc3RyICJTbMOlciBpaG9wICVzIGF1dG9tYXRpc2t0IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM0IGdpdC1zdWJtb2R1bGUuc2g6MTExOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNCBnaXQtc3VibW9kdWxlLnNoOjExMjUKIG1zZ2lkICJzdWJtb2R1bGUiCiBtc2dzdHIgInVuZGVybW9kdWwiCiAKQEAgLTg1Myw1OCArODU4LDEyNCBAQAogbXNnaWQgIkJhZCAlcyB2YWx1ZTogJyVzJyIKIG1zZ3N0ciAiRmVsYWt0aWd0IHbDpHJkZSBww6UgJXM6IFwiJXNcIiIKIAotIzogb2JqZWN0LmM6MjA0CisjOiBvYmplY3QuYzoyMDIKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHBhcnNlIG9iamVjdDogJXMiCiBtc2dzdHIgImt1bmRlIGludGUgdG9sa2Egb2JqZWt0ZXQ6ICVzIgogCi0jOiBwYXJzZS1vcHRpb25zLmM6NDg5CisjOiBwYXJzZS1vcHRpb25zLmM6NTM3CiBtc2dpZCAiLi4uIgogbXNnc3RyICIuLi4iCiAKLSM6IHBhcnNlLW9wdGlvbnMuYzo1MDcKKyM6IHBhcnNlLW9wdGlvbnMuYzo1NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNhZ2U6ICVzIgogbXNnc3RyICJhbnbDpG5kbmluZzogJXMiCiAKICMuIFRSQU5TTEFUT1JTOiB0aGUgY29sb24gaGVyZSBzaG91bGQgYWxpZ24gd2l0aCB0aGUKICMuIG9uZSBpbiAidXNhZ2U6ICVzIiB0cmFuc2xhdGlvbgotIzogcGFyc2Utb3B0aW9ucy5jOjUxMQorIzogcGFyc2Utb3B0aW9ucy5jOjU1OQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICBvcjogJXMiCiBtc2dzdHIgIiAgICAgZWxsZXI6ICVzIgogCi0jOiBwYXJzZS1vcHRpb25zLmM6NTE0CisjOiBwYXJzZS1vcHRpb25zLmM6NTYyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICAlcyIKIG1zZ3N0ciAiICAgICVzIgogCi0jOiBwYXJzZS1vcHRpb25zLmM6NTQ4CisjOiBwYXJzZS1vcHRpb25zLmM6NTk2CiBtc2dpZCAiLU5VTSIKIG1zZ3N0ciAiLVRBTCIKIAotIzogcGF0aHNwZWMuYzo4MwotIywgYy1mb3JtYXQKLW1zZ2lkICJQYXRoICclcycgaXMgaW4gc3VibW9kdWxlICclLipzJyIKLW1zZ3N0ciAiU8O2a3bDpGdlbiBcIiVzXCIgw6RyIGkgdW5kZXJtb2R1bGVuIFwiJS4qc1wiIgorIzogcGF0aHNwZWMuYzoxMTgKK21zZ2lkICJnbG9iYWwgJ2dsb2InIGFuZCAnbm9nbG9iJyBwYXRoc3BlYyBzZXR0aW5ncyBhcmUgaW5jb21wYXRpYmxlIgorbXNnc3RyICIiCisiZGUgZ2xvYmFsYSBzw7ZrdsOkZ3NpbnN0w6RsbG5pbmdhcm5hIFwiZ2xvYlwiIG9jaCBcIm5vZ2xvYlwiIMOkciBpbmtvbXBhdGlibGEiCiAKLSM6IHBhdGhzcGVjLmM6OTkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiJyVzJyBpcyBiZXlvbmQgYSBzeW1ib2xpYyBsaW5rIgotbXNnc3RyICJcIiVzXCIgw6RyIHDDpSBhbmRyYSBzaWRhbiBhdiBlbiBzeW1ib2xpc2sgbMOkbmsiCisjOiBwYXRoc3BlYy5jOjEyOAorbXNnaWQgIiIKKyJnbG9iYWwgJ2xpdGVyYWwnIHBhdGhzcGVjIHNldHRpbmcgaXMgaW5jb21wYXRpYmxlIHdpdGggYWxsIG90aGVyIGdsb2JhbCAiCisicGF0aHNwZWMgc2V0dGluZ3MiCittc2dzdHIgIiIKKyJkZW4gZ2xvYmFsYSBzw7ZrdsOkZ3NpbnN0w6RsbG5pbmdlbiBcImxpdGVyYWxcIiDDpHIgaW5rb21wYXRpYmVsIG1lZCBhbGxhIGFuZHJhICIKKyJnbG9iYWxhIHPDtmt2w6Rnc2luc3TDpGxsbmluZ2FyIgogCi0jOiByZW1vdGUuYzoxNzg4CisjOiBwYXRoc3BlYy5jOjE1OAorbXNnaWQgImludmFsaWQgcGFyYW1ldGVyIGZvciBwYXRoc3BlYyBtYWdpYyAncHJlZml4JyIKK21zZ3N0ciAib2dpbHRpZyBwYXJhbWV0ZXIgZsO2ciBzw7ZrdsOkZ3N1dHRyeWNrZXQgZsO2ciBcInByZWZpeFwiIgorCisjOiBwYXRoc3BlYy5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHBhdGhzcGVjIG1hZ2ljICclLipzJyBpbiAnJXMnIgorbXNnc3RyICJmZWxha3RpZ3Qgc8O2a3bDpGdzdXR0cnljayBcIiUuKnNcIiBpIFwiJXNcIiIKKworIzogcGF0aHNwZWMuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWlzc2luZyAnKScgYXQgdGhlIGVuZCBvZiBwYXRoc3BlYyBtYWdpYyBpbiAnJXMnIgorbXNnc3RyICJcIilcIiBzYWtuYXMgaSBzbHV0ZXQgYXYgc8O2a3bDpGdzdXR0cnlja2V0IGbDtnIgXCIlc1wiIgorCisjOiBwYXRoc3BlYy5jOjE4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmltcGxlbWVudGVkIHBhdGhzcGVjIG1hZ2ljICclYycgaW4gJyVzJyIKK21zZ3N0ciAiVGVja25ldCBcIiVjXCIgaSBzw7ZrdsOkZ3N1dHRyeWNrZXQgaSBcIiVzXCIgaGFyIGludGUgaW1wbGVtZW50ZXJhdHMiCisKKyM6IHBhdGhzcGVjLmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnbGl0ZXJhbCcgYW5kICdnbG9iJyBhcmUgaW5jb21wYXRpYmxlIgorbXNnc3RyICIlczogXCJsaXRlcmFsXCIgb2NoIFwiZ2xvYlwiIMOkciBpbmtvbXBhdGlibGEiCisKKyM6IHBhdGhzcGVjLmM6MjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJXMnIGlzIG91dHNpZGUgcmVwb3NpdG9yeSIKK21zZ3N0ciAiJXM6IFwiJXNcIiDDpHIgdXRhbmbDtnIgYXJraXZldCIKKworIzogcGF0aHNwZWMuYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGF0aHNwZWMgJyVzJyBpcyBpbiBzdWJtb2R1bGUgJyUuKnMnIgorbXNnc3RyICJTw7ZrdsOkZ3NhbmdpdmVsc2VuIFwiJXNcIiDDpHIgaSB1bmRlcm1vZHVsZW4gXCIlLipzXCIiCisKKyMuCisjLiAqIFdlIG1heSB3YW50IHRvIHN1YnN0aXR1dGUgInRoaXMgY29tbWFuZCIgd2l0aCBhIGNvbW1hbmQKKyMuICogbmFtZS4gRS5nLiB3aGVuIGFkZC0taW50ZXJhY3RpdmUgZGllcyB3aGVuIHJ1bm5pbmcKKyMuICogImNoZWNrb3V0IC1wIgorIy4KKyM6IHBhdGhzcGVjLmM6MzQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBwYXRoc3BlYyBtYWdpYyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgY29tbWFuZDogJXMiCittc2dzdHIgIiVzOiBzw7ZrdsOkZ3N1dHRyeWNrZXQgaGFudGVyYXMgaW50ZSBhdiBkZXQgaMOkciBrb21tYW5kb3Q6ICVzIgorCisjOiBwYXRoc3BlYy5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoc3BlYyAnJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCittc2dzdHIgInPDtmt2w6Rnc2FuZ2l2ZWxzZW4gXCIlc1wiIMOkciBww6UgYW5kcmEgc2lkYW4gYXYgZW4gc3ltYm9saXNrIGzDpG5rIgorCisjOiByZW1vdGUuYzoxODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdXIgYnJhbmNoIGlzIGJhc2VkIG9uICclcycsIGJ1dCB0aGUgdXBzdHJlYW0gaXMgZ29uZS5cbiIKK21zZ3N0ciAiRGluIGdyZW4gw6RyIGJhc2VyYWQgcMOlIFwiJXNcIiwgbWVuIGRlbiBoYXIgZsO2cnN2dW5uaXQgdXBwc3Ryw7Ztcy5cbiIKKworIzogcmVtb3RlLmM6MTgzNworbXNnaWQgIiAgKHVzZSBcImdpdCBicmFuY2ggLS11bnNldC11cHN0cmVhbVwiIHRvIGZpeHVwKVxuIgorbXNnc3RyICIgIChhbnbDpG5kIFwiZ2l0IGJyYW5jaCAtLXVuc2V0LXVwc3RyZWFtXCIgZsO2ciBhdHQgcsOkdHRhKVxuIgorCisjOiByZW1vdGUuYzoxODQwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdXIgYnJhbmNoIGlzIHVwLXRvLWRhdGUgd2l0aCAnJXMnLlxuIgorbXNnc3RyICJEaW4gZ3JlbiDDpHIgw6Agam91ciBtZWQgXCIlc1wiLlxuIgorCisjOiByZW1vdGUuYzoxODQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0LlxuIgogbXNnaWRfcGx1cmFsICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdHMuXG4iCiBtc2dzdHJbMF0gIkRpbiBncmVuIGxpZ2dlciBmw7ZyZSBcIiVzXCIgbWVkICVkIGluY2hlY2tuaW5nLlxuIgogbXNnc3RyWzFdICJEaW4gZ3JlbiBsaWdnZXIgZsO2cmUgXCIlc1wiIG1lZCAlZCBpbmNoZWNrbmluZ2FyLlxuIgogCi0jOiByZW1vdGUuYzoxNzk0CisjOiByZW1vdGUuYzoxODUwCiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1c2hcIiB0byBwdWJsaXNoIHlvdXIgbG9jYWwgY29tbWl0cylcbiIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBwdXNoXCIgZsO2ciBhdHQgcHVibGljZXJhIGRpbmEgbG9rYWxhIGluY2hlY2tuaW5nYXIpXG4iCiAKLSM6IHJlbW90ZS5jOjE3OTcKKyM6IHJlbW90ZS5jOjE4NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91ciBicmFuY2ggaXMgYmVoaW5kICclcycgYnkgJWQgY29tbWl0LCBhbmQgY2FuIGJlIGZhc3QtZm9yd2FyZGVkLlxuIgogbXNnaWRfcGx1cmFsICIiCkBAIC05MTQsMTEgKzk4NSwxMSBAQAogbXNnc3RyWzFdICIiCiAiRGluIGdyZW4gbGlnZ2VyIGVmdGVyIFwiJXNcIiBtZWQgJWQgaW5jaGVja25pbmdhciwgb2NoIGthbiBzbmFiYnNwb2xhcy5cbiIKIAotIzogcmVtb3RlLmM6MTgwNQorIzogcmVtb3RlLmM6MTg2MQogbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gdXBkYXRlIHlvdXIgbG9jYWwgYnJhbmNoKVxuIgogbXNnc3RyICIgIChhbnbDpG5kIFwiZ2l0IHB1bGxcIiBmw7ZyIGF0dCB1cHBkYXRlcmEgZGluIGxva2FsYSBncmVuKVxuIgogCi0jOiByZW1vdGUuYzoxODA4CisjOiByZW1vdGUuYzoxODY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3VyIGJyYW5jaCBhbmQgJyVzJyBoYXZlIGRpdmVyZ2VkLFxuIgpAQCAtOTMzLDcgKzEwMDQsNyBAQAogIkRpbiBncmVuIG9jaCBcIiVzXCIgaGFyIGRpdmVyZ2VyYXQsXG4iCiAib2NoIGhhciAlZCByZXNwZWt0aXZlICVkIG9saWthIGluY2hlY2tuaW5nYXIuXG4iCiAKLSM6IHJlbW90ZS5jOjE4MTgKKyM6IHJlbW90ZS5jOjE4NzQKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIG1lcmdlIHRoZSByZW1vdGUgYnJhbmNoIGludG8geW91cnMpXG4iCiBtc2dzdHIgIiAgKGFudsOkbmQgXCJnaXQgcHVsbFwiIGbDtnIgYXR0IHNsw6UgaWhvcCBmasOkcnJncmVuZW4gbWVkIGRpbiBlZ2VuKVxuIgogCkBAIC05NzYsNyArMTA0Nyw3IEBACiAibWVkIFwiZ2l0IGFkZCA8c8O2a3bDpGdhcj5cIiBlbGxlciBcImdpdCBybSA8c8O2a3bDpGdhcj5cIlxuIgogIm9jaCBjaGVja2EgaW4gcmVzdWx0YXRldCBtZWQgXCJnaXQgY29tbWl0XCIiCiAKLSM6IHNlcXVlbmNlci5jOjI0NSBzZXF1ZW5jZXIuYzo4Njkgc2VxdWVuY2VyLmM6OTUyCisjOiBzZXF1ZW5jZXIuYzoyNDUgc2VxdWVuY2VyLmM6ODcwIHNlcXVlbmNlci5jOjk1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgdG8gJXMiCiBtc2dzdHIgIkt1bmRlIGludGUgc2tyaXZhIHRpbGwgJXMiCkBAIC05OTksMTk3ICsxMDcwLDE5NyBAQAogbXNnc3RyICJDaGVja2EgaW4gZGluYSDDpG5kcmluZ2FyIGVsbGVyIGFudsOkbmQgXCJzdGFzaFwiIGbDtnIgYXR0IGZvcnRzw6R0dGEuIgogCiAjLiBUUkFOU0xBVE9SUzogJXMgd2lsbCBiZSAicmV2ZXJ0IiBvciAiY2hlcnJ5LXBpY2siCi0jOiBzZXF1ZW5jZXIuYzozMjQKKyM6IHNlcXVlbmNlci5jOjMyNQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICIlczogS3VuZGUgaW50ZSBza3JpdmEgbnkgaW5kZXhmaWwiCiAKLSM6IHNlcXVlbmNlci5jOjM1NQorIzogc2VxdWVuY2VyLmM6MzU2CiBtc2dpZCAiQ291bGQgbm90IHJlc29sdmUgSEVBRCBjb21taXRcbiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBiZXN0w6RtbWEgSEVBRDpzIGluY2hlY2tuaW5nXG4iCiAKLSM6IHNlcXVlbmNlci5jOjM3NworIzogc2VxdWVuY2VyLmM6Mzc4CiBtc2dpZCAiVW5hYmxlIHRvIHVwZGF0ZSBjYWNoZSB0cmVlXG4iCiBtc2dzdHIgIkthbiBpbnRlIHVwcGRhdGVyYSBjYWNoZXRyw6RkXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQyMgorIzogc2VxdWVuY2VyLmM6NDIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBjb21taXQgJXNcbiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSB0b2xrYSBpbmNoZWNrbmluZ2VuICVzXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQyNworIzogc2VxdWVuY2VyLmM6NDI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzXG4iCiBtc2dzdHIgIkt1bmRlIGludGUgdG9sa2EgZsO2csOkbGRyYWluY2hlY2tuaW5nZW4gJXNcbiIKIAotIzogc2VxdWVuY2VyLmM6NDkzCisjOiBzZXF1ZW5jZXIuYzo0OTQKIG1zZ2lkICJZb3VyIGluZGV4IGZpbGUgaXMgdW5tZXJnZWQuIgogbXNnc3RyICJEaW4gaW5kZXhmaWwgaGFyIGludGUgc2xhZ2l0cyBpaG9wLiIKIAotIzogc2VxdWVuY2VyLmM6NTEyCisjOiBzZXF1ZW5jZXIuYzo1MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGlzIGEgbWVyZ2UgYnV0IG5vIC1tIG9wdGlvbiB3YXMgZ2l2ZW4uIgogbXNnc3RyICJJbmNoZWNrbmluZyAlcyDDpHIgZW4gc2FtbWFuc2xhZ25pbmcsIG1lbiBmbGFnZ2FuIC1tIGFuZ2F2cyBpbnRlLiIKIAotIzogc2VxdWVuY2VyLmM6NTIwCisjOiBzZXF1ZW5jZXIuYzo1MjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGRvZXMgbm90IGhhdmUgcGFyZW50ICVkIgogbXNnc3RyICJJbmNoZWNrbmluZyAlcyBoYXIgaW50ZSBmw7Zyw6RsZGVyICVkIgogCi0jOiBzZXF1ZW5jZXIuYzo1MjQKKyM6IHNlcXVlbmNlci5jOjUyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWlubGluZSB3YXMgc3BlY2lmaWVkIGJ1dCBjb21taXQgJXMgaXMgbm90IGEgbWVyZ2UuIgogbXNnc3RyICJIdXZ1ZGxpbmplIGFuZ2F2cywgbWVuIGluY2hlY2tuaW5nZW4gJXMgw6RyIGludGUgZW4gc2FtbWFuc2xhZ25pbmciCiAKICMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgd2lsbCBiZSAicmV2ZXJ0IiBvcgogIy4gImNoZXJyeS1waWNrIiwgdGhlIHNlY29uZCAlcyBhIFNIQTEKLSM6IHNlcXVlbmNlci5jOjUzNworIzogc2VxdWVuY2VyLmM6NTM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBjYW5ub3QgcGFyc2UgcGFyZW50IGNvbW1pdCAlcyIKIG1zZ3N0ciAiJXM6IGthbiBpbnRlIHRvbGthIGbDtnLDpGxkcmFpbmNoZWNrbmluZ2VuICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo1NDEKKyM6IHNlcXVlbmNlci5jOjU0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZ2V0IGNvbW1pdCBtZXNzYWdlIGZvciAlcyIKIG1zZ3N0ciAiS2FuIGludGUgaMOkbXRhIGluY2hlY2tuaW5nc21lZGRlbGFuZGUgZsO2ciAlcyIKIAotIzogc2VxdWVuY2VyLmM6NjI3CisjOiBzZXF1ZW5jZXIuYzo2MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJldmVydCAlcy4uLiAlcyIKIG1zZ3N0ciAia3VuZGUgaW50ZSDDpW5ncmEgJXMuLi4gJXMiCiAKLSM6IHNlcXVlbmNlci5jOjYyOAorIzogc2VxdWVuY2VyLmM6NjI5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBhcHBseSAlcy4uLiAlcyIKIG1zZ3N0ciAia3VuZGUgaW50ZSB0aWxsw6RtcGEgJXMuLi4gJXMiCiAKLSM6IHNlcXVlbmNlci5jOjY2NAorIzogc2VxdWVuY2VyLmM6NjY1CiBtc2dpZCAiZW1wdHkgY29tbWl0IHNldCBwYXNzZWQiCiBtc2dzdHIgImRlbiBhbmdpdm5hIHVwcHPDpHR0bmluZ2VuIGluY2hlY2tuaW5nYXIgw6RyIHRvbSIKIAotIzogc2VxdWVuY2VyLmM6NjcyCisjOiBzZXF1ZW5jZXIuYzo2NzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0ICVzOiBmYWlsZWQgdG8gcmVhZCB0aGUgaW5kZXgiCiBtc2dzdHIgImdpdCAlczogbWlzc2x5Y2thZGVzIGzDpHNhIGluZGV4ZXQiCiAKLSM6IHNlcXVlbmNlci5jOjY3NworIzogc2VxdWVuY2VyLmM6Njc4CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlZnJlc2ggdGhlIGluZGV4IgogbXNnc3RyICJnaXQgJXM6IG1pc3NseWNrYWRlcyB1cHBkYXRlcmEgaW5kZXhldCIKIAotIzogc2VxdWVuY2VyLmM6NzM1CisjOiBzZXF1ZW5jZXIuYzo3MzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90ICVzIGR1cmluZyBhICVzIgogbXNnc3RyICJrYW4gaW50ZSAlcyB1bmRlciBlbiAlcyIKIAotIzogc2VxdWVuY2VyLmM6NzU3CisjOiBzZXF1ZW5jZXIuYzo3NTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIGxpbmUgJWQuIgogbXNnc3RyICJLYW4gaW50ZSB0b2xrYSByYWQgJWQuIgogCi0jOiBzZXF1ZW5jZXIuYzo3NjIKKyM6IHNlcXVlbmNlci5jOjc2MwogbXNnaWQgIk5vIGNvbW1pdHMgcGFyc2VkLiIKIG1zZ3N0ciAiSW5nYSBpbmNoZWNrbmluZ2FyIGzDpHN0ZXMuIgogCi0jOiBzZXF1ZW5jZXIuYzo3NzUKKyM6IHNlcXVlbmNlci5jOjc3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgb3BlbiAlcyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSDDtnBwbmEgJXMiCiAKLSM6IHNlcXVlbmNlci5jOjc3OQorIzogc2VxdWVuY2VyLmM6NzgwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkICVzLiIKIG1zZ3N0ciAia3VuZGUgaW50ZSBsw6RzYSAlcy4iCiAKLSM6IHNlcXVlbmNlci5jOjc4NgorIzogc2VxdWVuY2VyLmM6Nzg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVudXNhYmxlIGluc3RydWN0aW9uIHNoZWV0OiAlcyIKIG1zZ3N0ciAiT2FudsOkbmRiYXJ0IG1hbnVzOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODE0CisjOiBzZXF1ZW5jZXIuYzo4MTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBrZXk6ICVzIgogbXNnc3RyICJGZWxha3RpZyBueWNrZWw6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MTcKKyM6IHNlcXVlbmNlci5jOjgxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciAlczogJXMiCiBtc2dzdHIgIkZlbGFrdGlndCB2w6RyZGUgZsO2ciAlczogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgyOQorIzogc2VxdWVuY2VyLmM6ODMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBvcHRpb25zIHNoZWV0OiAlcyIKIG1zZ3N0ciAiVHJhc2lndCBtYW51czogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjg1MAorIzogc2VxdWVuY2VyLmM6ODUxCiBtc2dpZCAiYSBjaGVycnktcGljayBvciByZXZlcnQgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcyIKIG1zZ3N0ciAiZW4gXCJjaGVycnktcGlja1wiIGVsbGVyIFwicmV2ZXJ0XCIgcMOlZ8OlciByZWRhbiIKIAotIzogc2VxdWVuY2VyLmM6ODUxCisjOiBzZXF1ZW5jZXIuYzo4NTIKIG1zZ2lkICJ0cnkgXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogbXNnc3RyICJ0ZXN0YSBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZSB8IC0tcXVpdCB8IC0tYWJvcnQpXCIiCiAKLSM6IHNlcXVlbmNlci5jOjg1NQorIzogc2VxdWVuY2VyLmM6ODU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgc2VxdWVuY2VyIGRpcmVjdG9yeSAlcyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBza2FwYSBcInNlcXVlbmNlclwiLWthdGFsb2dlbiBcIiVzXCIiCiAKLSM6IHNlcXVlbmNlci5jOjg3MSBzZXF1ZW5jZXIuYzo5NTYKKyM6IHNlcXVlbmNlci5jOjg3MiBzZXF1ZW5jZXIuYzo5NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRXJyb3Igd3JhcHBpbmcgdXAgJXMuIgogbXNnc3RyICJGZWwgdmlkIG9tYnJ5dG5pbmcgYXYgJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzo4OTAgc2VxdWVuY2VyLmM6MTAyNAorIzogc2VxdWVuY2VyLmM6ODkxIHNlcXVlbmNlci5jOjEwMjUKIG1zZ2lkICJubyBjaGVycnktcGljayBvciByZXZlcnQgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgImluZ2VuIFwiY2hlcnJ5LXBpY2tcIiBlbGxlciBcInJldmVydFwiIHDDpWfDpXIiCiAKLSM6IHNlcXVlbmNlci5jOjg5MgorIzogc2VxdWVuY2VyLmM6ODkzCiBtc2dpZCAiY2Fubm90IHJlc29sdmUgSEVBRCIKIG1zZ3N0ciAia2FuIGludGUgYmVzdMOkbW1hIEhFQUQiCiAKLSM6IHNlcXVlbmNlci5jOjg5NAorIzogc2VxdWVuY2VyLmM6ODk1CiBtc2dpZCAiY2Fubm90IGFib3J0IGZyb20gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgImthbiBpbnRlIGF2YnJ5dGEgZnLDpW4gZW4gZ3JlbiBzb20gw6RubnUgaW50ZSDDpHIgZsO2ZGQiCiAKLSM6IHNlcXVlbmNlci5jOjkxNiBidWlsdGluL2FwcGx5LmM6NDA2MQorIzogc2VxdWVuY2VyLmM6OTE3IGJ1aWx0aW4vYXBwbHkuYzo0MDYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlcyIKIG1zZ3N0ciAia2FuIGludGUgw7ZwcG5hICVzOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6OTE5CisjOiBzZXF1ZW5jZXIuYzo5MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgogbXNnc3RyICJrYW4gaW50ZSBsw6RzYSAlczogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjkyMAorIzogc2VxdWVuY2VyLmM6OTIxCiBtc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSIKIG1zZ3N0ciAib3bDpG50YXQgZmlsc2x1dCIKIAotIzogc2VxdWVuY2VyLmM6OTI2CisjOiBzZXF1ZW5jZXIuYzo5MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAic3RvcmVkIHByZS1jaGVycnktcGljayBIRUFEIGZpbGUgJyVzJyBpcyBjb3JydXB0IgogbXNnc3RyICJzcGFyYWQgSEVBRC1maWwgZnLDpW4gZsO2cmUgXCJjaGVycnktcGlja1wiLCBcIiVzXCIsIMOkciB0cmFzaWciCiAKLSM6IHNlcXVlbmNlci5jOjk0OQorIzogc2VxdWVuY2VyLmM6OTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmb3JtYXQgJXMuIgogbXNnc3RyICJLdW5kZSBpbnRlIGZvcm1hdGVyYSAlcy4iCiAKLSM6IHNlcXVlbmNlci5jOjEwOTIKKyM6IHNlcXVlbmNlci5jOjEwOTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbid0IGNoZXJyeS1waWNrIGEgJXMiCiBtc2dzdHIgIiVzOiBrYW4gaW50ZSBnw7ZyYSBcImNoZXJyeS1waWNrXCIgcMOlIHR5cGVuIFwiJXNcIiIKIAotIzogc2VxdWVuY2VyLmM6MTA5NQorIzogc2VxdWVuY2VyLmM6MTA5NgogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogYmFkIHJldmlzaW9uIgogbXNnc3RyICIlczogZmVsYWt0aWcgcmV2aXNpb24iCiAKLSM6IHNlcXVlbmNlci5jOjExMjkKKyM6IHNlcXVlbmNlci5jOjExMzAKIG1zZ2lkICJDYW4ndCByZXZlcnQgYXMgaW5pdGlhbCBjb21taXQiCiBtc2dzdHIgIkthbiBpbnRlIMOlbmdyYSBzb20gZsO2cnN0YSBpbmNoZWNrbmluZyIKIAotIzogc2VxdWVuY2VyLmM6MTEzMAorIzogc2VxdWVuY2VyLmM6MTEzMQogbXNnaWQgIkNhbid0IGNoZXJyeS1waWNrIGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAiS2FuIGludGUgZ8O2cmEgXCJjaGVycnktcGlja1wiIGkgZXR0IHRvbXQgaHV2dWQiCiAKQEAgLTEyMTUsMjU2ICsxMjg2LDM1MCBAQAogIlVuZGVyc8O2ayByZWZlcmVuc2VybmEgb2NoIHRhIGthbnNrZSBib3J0IGRlbS4gU3TDpG5nIGF2IG1lZGRlbGFuZGV0XG4iCiAiZ2Vub20gYXR0IGvDtnJhIFwiZ2l0IGNvbmZpZyBhZHZpY2Uub2JqZWN0TmFtZVdhcm5pbmcgZmFsc2VcIiIKIAotIzogc2hhMV9uYW1lLmM6MTA5NworIzogc2hhMV9uYW1lLmM6MTExMgogbXNnaWQgIkhFQUQgZG9lcyBub3QgcG9pbnQgdG8gYSBicmFuY2giCiBtc2dzdHIgIkhFQUQgcGVrYXIgaW50ZSBww6UgZW4gZ3JlbiIKIAotIzogc2hhMV9uYW1lLmM6MTEwMAorIzogc2hhMV9uYW1lLmM6MTExNQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIGJyYW5jaDogJyVzJyIKIG1zZ3N0ciAiT2vDpG5kIGdyZW46IFwiJXNcIiIKIAotIzogc2hhMV9uYW1lLmM6MTEwMgorIzogc2hhMV9uYW1lLmM6MTExNwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyB1cHN0cmVhbSBjb25maWd1cmVkIGZvciBicmFuY2ggJyVzJyIKIG1zZ3N0ciAiSW5nZW4gc3RhbmRhcmR1cHBzdHLDtm0gYW5naXZlbiBmw7ZyIGdyZW5lbiBcIiVzXCIiCiAKLSM6IHNoYTFfbmFtZS5jOjExMDYKKyM6IHNoYTFfbmFtZS5jOjExMjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBzdHJlYW0gYnJhbmNoICclcycgbm90IHN0b3JlZCBhcyBhIHJlbW90ZS10cmFja2luZyBicmFuY2giCiBtc2dzdHIgIlVwcHN0csO2bXNncmVuZW4gXCIlc1wiIMOkciBpbnRlIGxhZ3JhZCBzb20gZW4gZmrDpHJyc3DDpXJhbmRlIGdyZW4iCiAKLSM6IHdyYXBwZXIuYzo0MDgKKyM6IHN1Ym1vZHVsZS5jOjY0IHN1Ym1vZHVsZS5jOjk4Cittc2dpZCAiQ2Fubm90IGNoYW5nZSB1bm1lcmdlZCAuZ2l0bW9kdWxlcywgcmVzb2x2ZSBtZXJnZSBjb25mbGljdHMgZmlyc3QiCittc2dzdHIgIiIKKyJLYW4gaW50ZSDDpG5kcmEgLmdpdG1vZHVsZXMtZmlsIHNvbSBpbnRlIHNsYWdpdHMgaWhvcCwgbMO2cyAiCisic2FtbWFuc2xhZ25pbmdza29uZmxpa3RlciBmw7Zyc3QiCisKKyM6IHN1Ym1vZHVsZS5jOjY4IHN1Ym1vZHVsZS5jOjEwMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZmluZCBzZWN0aW9uIGluIC5naXRtb2R1bGVzIHdoZXJlIHBhdGg9JXMiCittc2dzdHIgIkhpdHRhZGUgaW50ZSBuw6Vnb24gc2VrdGlvbiBpIC5naXRtb2R1bGVzIGTDpHIgc8O2a3bDpGc9JXMiCisKKyMuIE1heWJlIHRoZSB1c2VyIGFscmVhZHkgZGlkIHRoYXQsIGRvbid0IGVycm9yIG91dCBoZXJlCisjOiBzdWJtb2R1bGUuYzo3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgdXBkYXRlIC5naXRtb2R1bGVzIGVudHJ5ICVzIgorbXNnc3RyICJLdW5kZSBpbnRlIHVwcGRhdGVyYSAuZ2l0bW9kdWxlcy1wb3N0ZW4gJXMiCisKKyMuIE1heWJlIHRoZSB1c2VyIGFscmVhZHkgZGlkIHRoYXQsIGRvbid0IGVycm9yIG91dCBoZXJlCisjOiBzdWJtb2R1bGUuYzoxMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHJlbW92ZSAuZ2l0bW9kdWxlcyBlbnRyeSBmb3IgJXMiCittc2dzdHIgIkt1bmRlIGludGUgdGEgYm9ydCAuZ2l0bW9kdWxlcy1wb3N0ZW4gZsO2ciAlcyIKKworIzogc3VibW9kdWxlLmM6MTI3Cittc2dpZCAiY291bGQgbm90IGZpbmQgLmdpdG1vZHVsZXMgaW4gaW5kZXgiCittc2dzdHIgImt1bmRlIGludGUgaGl0dGEgLmdpdG1vZHVsZXMgaSBpbmRleGV0IgorCisjOiBzdWJtb2R1bGUuYzoxMzMKK21zZ2lkICJyZWFkaW5nIHVwZGF0ZWQgLmdpdG1vZHVsZXMgZmFpbGVkIgorbXNnc3RyICJtaXNzbHlja2FkZXMgbMOkc2EgdXBwZGF0ZXJhZCAuZ2l0bW9kdWxlcyIKKworIzogc3VibW9kdWxlLmM6MTM1Cittc2dpZCAidW5hYmxlIHRvIHN0YXQgdXBkYXRlZCAuZ2l0bW9kdWxlcyIKK21zZ3N0ciAia2FuIGludGUgdGEgc3RhdHVzIHDDpSB1cHBkYXRlcmFkIC5naXRtb2R1bGVzIgorCisjOiBzdWJtb2R1bGUuYzoxMzkKK21zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlIC5naXRtb2R1bGVzIGZyb20gaW5kZXgiCittc2dzdHIgImthbiBpbnRlIHRhIGJvcnQgLmdpdG1vZHVsZXMgZnLDpW4gaW5kZXhldCIKKworIzogc3VibW9kdWxlLmM6MTQxCittc2dpZCAiYWRkaW5nIHVwZGF0ZWQgLmdpdG1vZHVsZXMgZmFpbGVkIgorbXNnc3RyICJtaXNzbHlja2FkZXMgbMOkZ2dhIHRpbGwgdXBwZGF0ZXJhZCAuZ2l0bW9kdWxlcyIKKworIzogc3VibW9kdWxlLmM6MTQzCittc2dpZCAic3RhZ2luZyB1cGRhdGVkIC5naXRtb2R1bGVzIGZhaWxlZCIKK21zZ3N0ciAibWlzc2x5Y2thZGVzIGvDtmEgdXBwZGF0ZXJhZCAuZ2l0bW9kdWxlcyIKKworIzogc3VibW9kdWxlLmM6MTE0NCBidWlsdGluL2luaXQtZGIuYzozNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBnaXQgbGluayAlcyIKK21zZ3N0ciAiS3VuZGUgaW50ZSBza2FwYSBnaXRsw6RuayAlcyIKKworIzogc3VibW9kdWxlLmM6MTE1NQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgc2V0IGNvcmUud29ya3RyZWUgaW4gJXMiCittc2dzdHIgIkt1bmRlIGludGUgc8OkdHRhIGNvcmUud29ya3RyZWUgaSAlcyIKKworIzogdXJsbWF0Y2guYzoxMjAKK21zZ2lkICJpbnZhbGlkIFVSTCBzY2hlbWUgbmFtZSBvciBtaXNzaW5nICc6Ly8nIHN1ZmZpeCIKK21zZ3N0ciAib2dpbHRpZyBVUkwtc2NoZW1hbmFtbiBlbGxlciBzYWtuYXQgXCI6Ly9cIi1zdWZmaXgiCisKKyM6IHVybG1hdGNoLmM6MTQ0IHVybG1hdGNoLmM6Mjk3IHVybG1hdGNoLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgJVhYIGVzY2FwZSBzZXF1ZW5jZSIKK21zZ3N0ciAib2dpbHRpZyAlWFgtdGVja2Vuc2VrdmVucyIKKworIzogdXJsbWF0Y2guYzoxNzIKK21zZ2lkICJtaXNzaW5nIGhvc3QgYW5kIHNjaGVtZSBpcyBub3QgJ2ZpbGU6JyIKK21zZ3N0ciAidsOkcmQgc2FrbmFzIG9jaCBzY2hlbWF0IMOkciBpbnRlIFwiZmlsZTpcIiIKKworIzogdXJsbWF0Y2guYzoxODkKK21zZ2lkICJhICdmaWxlOicgVVJMIG1heSBub3QgaGF2ZSBhIHBvcnQgbnVtYmVyIgorbXNnc3RyICJlbiBcImZpbGU6XCItVVJMIGthbiBpbnRlIGlubmVow6VsbGEgcG9ydG51bW1lciIKKworIzogdXJsbWF0Y2guYzoxOTkKK21zZ2lkICJpbnZhbGlkIGNoYXJhY3RlcnMgaW4gaG9zdCBuYW1lIgorbXNnc3RyICJvZ2lsdGlnYSB0ZWNrZW4gaSB2w6RyZG5hbW5ldCIKKworIzogdXJsbWF0Y2guYzoyNDQgdXJsbWF0Y2guYzoyNTUKK21zZ2lkICJpbnZhbGlkIHBvcnQgbnVtYmVyIgorbXNnc3RyICJmZWxha3RpZ3QgcG9ydG51bW1lciIKKworIzogdXJsbWF0Y2guYzozMjIKK21zZ2lkICJpbnZhbGlkICcuLicgcGF0aCBzZWdtZW50IgorbXNnc3RyICJmZWxha3RpdCBcIi4uXCItc8O2a3bDpGdzc2VnbWVudCIKKworIzogd3JhcHBlci5jOjQyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyc6ICVzIgogbXNnc3RyICJrYW4gaW50ZSBrb21tYSDDpXQgXCIlc1wiOiAlcyIKIAotIzogd3JhcHBlci5jOjQyOQorIzogd3JhcHBlci5jOjQ0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyciCiBtc2dzdHIgImthbiBpbnRlIGtvbW1hIMOldCBcIiVzXCIiCiAKLSM6IHdyYXBwZXIuYzo0NDAKKyM6IHdyYXBwZXIuYzo0NTQKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGxvb2sgdXAgY3VycmVudCB1c2VyIGluIHRoZSBwYXNzd2QgZmlsZTogJXMiCiBtc2dzdHIgImthbiBpbnRlIHNsw6UgdXBwIGFrdHVlbGwgYW52w6RuZGFyZSBpIHBhc3N3ZC1maWxlbjogJXMiCiAKLSM6IHdyYXBwZXIuYzo0NDEKKyM6IHdyYXBwZXIuYzo0NTUKIG1zZ2lkICJubyBzdWNoIHVzZXIiCiBtc2dzdHIgIm9rw6RuZCBhbnbDpG5kYXJlIgogCi0jOiB3dC1zdGF0dXMuYzoxNDEKKyM6IHd0LXN0YXR1cy5jOjE0NgogbXNnaWQgIlVubWVyZ2VkIHBhdGhzOiIKIG1zZ3N0ciAiRWogc2FtbWFuc2xhZ25hIHPDtmt2w6RnYXI6IgogCi0jOiB3dC1zdGF0dXMuYzoxNjggd3Qtc3RhdHVzLmM6MTk1CisjOiB3dC1zdGF0dXMuYzoxNzMgd3Qtc3RhdHVzLmM6MjAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgKHVzZSBcImdpdCByZXNldCAlcyA8ZmlsZT4uLi5cIiB0byB1bnN0YWdlKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCByZXNldCAlcyA8ZmlsPi4uLlwiIGbDtnIgYXR0IHRhIGJvcnQgZnLDpW4ga8O2KSIKIAotIzogd3Qtc3RhdHVzLmM6MTcwIHd0LXN0YXR1cy5jOjE5NworIzogd3Qtc3RhdHVzLmM6MTc1IHd0LXN0YXR1cy5jOjIwMgogbXNnaWQgIiAgKHVzZSBcImdpdCBybSAtLWNhY2hlZCA8ZmlsZT4uLi5cIiB0byB1bnN0YWdlKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBybSAtLWNhY2hlZCA8ZmlsPi4uLlwiIGbDtnIgYXR0IHRhIGJvcnQgZnLDpW4ga8O2KSIKIAotIzogd3Qtc3RhdHVzLmM6MTc0CisjOiB3dC1zdGF0dXMuYzoxNzkKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiAgKGFudsOkbmQgXCJnaXQgYWRkIDxmaWw+Li4uXCIgZsO2ciBhdHQgYW5nZSBsw7ZzbmluZykiCiAKLSM6IHd0LXN0YXR1cy5jOjE3NiB3dC1zdGF0dXMuYzoxODAKKyM6IHd0LXN0YXR1cy5jOjE4MSB3dC1zdGF0dXMuYzoxODUKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIGFzIGFwcHJvcHJpYXRlIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiAgKGFudsOkbmQgXCJnaXQgYWRkL3JtIDxmaWw+Li4uXCIgc29tIGzDpG1wbGlndCBmw7ZyIGF0dCBhbmdlIGzDtnNuaW5nKSIKIAotIzogd3Qtc3RhdHVzLmM6MTc4CisjOiB3dC1zdGF0dXMuYzoxODMKIG1zZ2lkICIgICh1c2UgXCJnaXQgcm0gPGZpbGU+Li4uXCIgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBybSA8ZmlsPi4uLlwiIGbDtnIgYXR0IGFuZ2UgbMO2c25pbmcpIgogCi0jOiB3dC1zdGF0dXMuYzoxODkKKyM6IHd0LXN0YXR1cy5jOjE5NAogbXNnaWQgIkNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOiIKIG1zZ3N0ciAiw4RuZHJpbmdhciBhdHQgY2hlY2thIGluOiIKIAotIzogd3Qtc3RhdHVzLmM6MjA3CisjOiB3dC1zdGF0dXMuYzoyMTIKIG1zZ2lkICJDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoiCiBtc2dzdHIgIsOEbmRyaW5nYXIgZWogaSBpbmNoZWNrbmluZ3Nrw7ZuOiIKIAotIzogd3Qtc3RhdHVzLmM6MjExCisjOiB3dC1zdGF0dXMuYzoyMTYKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogIiAgKGFudsOkbmQgXCJnaXQgYWRkIDxmaWw+Li4uXCIgZsO2ciBhdHQgdXBwZGF0ZXJhIHZhZCBzb20gc2thbGwgY2hlY2thcyBpbikiCiAKLSM6IHd0LXN0YXR1cy5jOjIxMworIzogd3Qtc3RhdHVzLmM6MjE4CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZC9ybSA8ZmlsZT4uLi5cIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCiBtc2dzdHIgIiIKICIgIChhbnbDpG5kIFwiZ2l0IGFkZC9ybSA8ZmlsPi4uLlwiIGbDtnIgYXR0IHVwcGRhdGVyYSB2YWQgc29tIHNrYWxsIGNoZWNrYXMgaW4pIgogCi0jOiB3dC1zdGF0dXMuYzoyMTQKKyM6IHd0LXN0YXR1cy5jOjIxOQogbXNnaWQgIiIKICIgICh1c2UgXCJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uXCIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KSIKIG1zZ3N0ciAiIgogIiAgKGFudsOkbmQgXCJnaXQgY2hlY2tvdXQgLS0gPGZpbD4uLi5cIiBmw7ZyIGF0dCBmw7Zya2FzdGEgw6RuZHJpbmdhciBpICIKICJhcmJldHNrYXRhbG9nZW4pIgogCi0jOiB3dC1zdGF0dXMuYzoyMTYKKyM6IHd0LXN0YXR1cy5jOjIyMQogbXNnaWQgIiAgKGNvbW1pdCBvciBkaXNjYXJkIHRoZSB1bnRyYWNrZWQgb3IgbW9kaWZpZWQgY29udGVudCBpbiBzdWJtb2R1bGVzKSIKIG1zZ3N0ciAiIgogIiAgKGNoZWNrYSBpbiBlbGxlciBmw7Zya2FzdGEgb3Nww6VyYXQgZWxsZXIgw6RuZHJhdCBpbm5laMOlbGwgaSB1bmRlcm1vZHVsZXIpIgogCi0jOiB3dC1zdGF0dXMuYzoyMjgKKyM6IHd0LXN0YXR1cy5jOjIzMwogIywgYy1mb3JtYXQKIG1zZ2lkICIgICh1c2UgXCJnaXQgJXMgPGZpbGU+Li4uXCIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogIiAgKGFudsOkbmQgXCJnaXQgJXMgPGZpbD4uLi5cIiBmw7ZyIGF0dCB0YSBtZWQgaSBkZXQgc29tIHNrYWxsIGNoZWNrYXMgaW4pIgogCi0jOiB3dC1zdGF0dXMuYzoyNDUKKyM6IHd0LXN0YXR1cy5jOjI1MAogbXNnaWQgImJ1ZyIKIG1zZ3N0ciAicHJvZ3JhbWZlbCIKIAotIzogd3Qtc3RhdHVzLmM6MjUwCisjOiB3dC1zdGF0dXMuYzoyNTUKIG1zZ2lkICJib3RoIGRlbGV0ZWQ6IgogbXNnc3RyICJib3J0dGFnZXQgYXYgYsOkZ2dlOiIKIAotIzogd3Qtc3RhdHVzLmM6MjUxCisjOiB3dC1zdGF0dXMuYzoyNTYKIG1zZ2lkICJhZGRlZCBieSB1czoiCiBtc2dzdHIgInRpbGxhZ3QgYXYgb3NzOiIKIAotIzogd3Qtc3RhdHVzLmM6MjUyCisjOiB3dC1zdGF0dXMuYzoyNTcKIG1zZ2lkICJkZWxldGVkIGJ5IHRoZW06IgogbXNnc3RyICJib3J0dGFnZXQgYXYgZGVtOiIKIAotIzogd3Qtc3RhdHVzLmM6MjUzCisjOiB3dC1zdGF0dXMuYzoyNTgKIG1zZ2lkICJhZGRlZCBieSB0aGVtOiIKIG1zZ3N0ciAidGlsbGFndCBhdiBkZW06IgogCi0jOiB3dC1zdGF0dXMuYzoyNTQKKyM6IHd0LXN0YXR1cy5jOjI1OQogbXNnaWQgImRlbGV0ZWQgYnkgdXM6IgogbXNnc3RyICJib3J0dGFnZXQgYXYgb3NzOiIKIAotIzogd3Qtc3RhdHVzLmM6MjU1CisjOiB3dC1zdGF0dXMuYzoyNjAKIG1zZ2lkICJib3RoIGFkZGVkOiIKIG1zZ3N0ciAidGlsbGFndCBhdiBiw6RnZ2U6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTYKKyM6IHd0LXN0YXR1cy5jOjI2MQogbXNnaWQgImJvdGggbW9kaWZpZWQ6IgogbXNnc3RyICLDpG5kcmF0IGF2IGLDpGdnZToiCiAKLSM6IHd0LXN0YXR1cy5jOjI4NgorIzogd3Qtc3RhdHVzLmM6MjkxCiBtc2dpZCAibmV3IGNvbW1pdHMsICIKIG1zZ3N0ciAibnlhIGluY2hlY2tuaW5nYXIsICIKIAotIzogd3Qtc3RhdHVzLmM6Mjg4CisjOiB3dC1zdGF0dXMuYzoyOTMKIG1zZ2lkICJtb2RpZmllZCBjb250ZW50LCAiCiBtc2dzdHIgIsOkbmRyYXQgaW5uZWjDpWxsLCAiCiAKLSM6IHd0LXN0YXR1cy5jOjI5MAorIzogd3Qtc3RhdHVzLmM6Mjk1CiBtc2dpZCAidW50cmFja2VkIGNvbnRlbnQsICIKIG1zZ3N0ciAib3Nww6VyYXQgaW5uZWjDpWxsLCAiCiAKLSM6IHd0LXN0YXR1cy5jOjMwNworIzogd3Qtc3RhdHVzLmM6MzEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBmaWxlOiAgICVzIgogbXNnc3RyICJueSBmaWw6ICAgICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzEwCisjOiB3dC1zdGF0dXMuYzozMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY29waWVkOiAgICAgJXMgLT4gJXMiCiBtc2dzdHIgImtvcGllcmFkOiAgICVzIC0+ICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMTMKKyM6IHd0LXN0YXR1cy5jOjMxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJkZWxldGVkOiAgICAlcyIKIG1zZ3N0ciAiYm9ydHRhZ2VuOiAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMxNgorIzogd3Qtc3RhdHVzLmM6MzIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vZGlmaWVkOiAgICVzIgogbXNnc3RyICLDpG5kcmFkOiAgICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMxOQorIzogd3Qtc3RhdHVzLmM6MzI0CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlbmFtZWQ6ICAgICVzIC0+ICVzIgogbXNnc3RyICJuYW1uYnl0ZTogICAlcyAtPiAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzIyCisjOiB3dC1zdGF0dXMuYzozMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAidHlwZWNoYW5nZTogJXMiCiBtc2dzdHIgInR5cGJ5dGU6ICAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMjUKKyM6IHd0LXN0YXR1cy5jOjMzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duOiAgICAlcyIKIG1zZ3N0ciAib2vDpG5kOiAgICAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMjgKKyM6IHd0LXN0YXR1cy5jOjMzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bm1lcmdlZDogICAlcyIKIG1zZ3N0ciAib3NhbW1hbnNsLjogJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMzMQorIzogd3Qtc3RhdHVzLmM6MzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgImJ1ZzogdW5oYW5kbGVkIGRpZmYgc3RhdHVzICVjIgogbXNnc3RyICJwcm9ncmFtZmVsOiBkaWZmLXN0YXR1cyAlYyBlaiBoYW50ZXJhZCIKIAotIzogd3Qtc3RhdHVzLmM6ODAzCisjOiB3dC1zdGF0dXMuYzo3MDMKK21zZ2lkICJTdWJtb2R1bGVzIGNoYW5nZWQgYnV0IG5vdCB1cGRhdGVkOiIKK21zZ3N0ciAiVW5kZXJtb2R1bGVyIMOkbmRyYWRlIG1lbiBpbnRlIHVwcGRhdGVyYWRlOiIKKworIzogd3Qtc3RhdHVzLmM6NzA1Cittc2dpZCAiU3VibW9kdWxlIGNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOiIKK21zZ3N0ciAiVW5kZXJtb2R1bGVycyDDpG5kcmluZ2FyIGF0dCBjaGVja2EgaW46IgorCisjOiB3dC1zdGF0dXMuYzo4NDgKIG1zZ2lkICJZb3UgaGF2ZSB1bm1lcmdlZCBwYXRocy4iCiBtc2dzdHIgIkR1IGhhciBlaiBzYW1tYW5zbGFnbmEgc8O2a3bDpGdhci4iCiAKLSM6IHd0LXN0YXR1cy5jOjgwNgorIzogd3Qtc3RhdHVzLmM6ODUxCiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IGNvbW1pdFwiKSIKIG1zZ3N0ciAiICAocsOkdHRhIGtvbmZsaWt0ZXIgb2NoIGvDtnIgXCJnaXQgY29tbWl0XCIpIgogCi0jOiB3dC1zdGF0dXMuYzo4MDkKKyM6IHd0LXN0YXR1cy5jOjg1NAogbXNnaWQgIkFsbCBjb25mbGljdHMgZml4ZWQgYnV0IHlvdSBhcmUgc3RpbGwgbWVyZ2luZy4iCiBtc2dzdHIgIkFsbGEga29uZmxpa3RlciBoYXIgcsOkdHRhdHMgbWVuIGR1IMOkciBmb3J0ZmFyYW5kZSBpIGVuIHNhbW1hbnNsYWduaW5nLiIKIAotIzogd3Qtc3RhdHVzLmM6ODEyCisjOiB3dC1zdGF0dXMuYzo4NTcKIG1zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0XCIgdG8gY29uY2x1ZGUgbWVyZ2UpIgogbXNnc3RyICIgIChhbnbDpG5kIFwiZ2l0IGNvbW1pdFwiIGbDtnIgYXR0IHNsdXRmw7ZyYSBzYW1tYW5zbGFnbmluZ2VuKSIKIAotIzogd3Qtc3RhdHVzLmM6ODIyCisjOiB3dC1zdGF0dXMuYzo4NjcKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYW4gYW0gc2Vzc2lvbi4iCiBtc2dzdHIgIkR1IMOkciBpIG1pdHRlbiBhdiBlbiBrw7ZybmluZyBhdiBcImdpdCBhbVwiLiIKIAotIzogd3Qtc3RhdHVzLmM6ODI1CisjOiB3dC1zdGF0dXMuYzo4NzAKIG1zZ2lkICJUaGUgY3VycmVudCBwYXRjaCBpcyBlbXB0eS4iCiBtc2dzdHIgIkFrdHVlbGwgcGF0Y2ggw6RyIHRvbS4iCiAKLSM6IHd0LXN0YXR1cy5jOjgyOQorIzogd3Qtc3RhdHVzLmM6ODc0CiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICAocsOkdHRhIGtvbmZsaWt0ZXIgb2NoIGvDtnIgc2VkYW4gXCJnaXQgYW0gLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6ODMxCisjOiB3dC1zdGF0dXMuYzo4NzYKIG1zZ2lkICIgICh1c2UgXCJnaXQgYW0gLS1za2lwXCIgdG8gc2tpcCB0aGlzIHBhdGNoKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBhbSAtLXNraXBcIiBmw7ZyIGF0dCBob3BwYSDDtnZlciBwYXRjaGVuKSIKIAotIzogd3Qtc3RhdHVzLmM6ODMzCisjOiB3dC1zdGF0dXMuYzo4NzgKIG1zZ2lkICIgICh1c2UgXCJnaXQgYW0gLS1hYm9ydFwiIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiAgKGFudsOkbmQgXCJnaXQgYW0gLS1hYm9ydFwiIGbDtnIgYXR0IMOldGVyc3TDpGxsYSB1cnNwcnVuZ3NncmVuZW4pIgogCi0jOiB3dC1zdGF0dXMuYzo4OTMgd3Qtc3RhdHVzLmM6OTEwCisjOiB3dC1zdGF0dXMuYzo5Mzggd3Qtc3RhdHVzLmM6OTU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgogbXNnc3RyICJEdSBow6VsbGVyIHDDpSBhdHQgb21iYXNlcmEgZ3JlbmVuIFwiJXNcIiBvdmFucMOlIFwiJXNcIi4iCiAKLSM6IHd0LXN0YXR1cy5jOjg5OCB3dC1zdGF0dXMuYzo5MTUKKyM6IHd0LXN0YXR1cy5jOjk0MyB3dC1zdGF0dXMuYzo5NjAKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZy4iCiBtc2dzdHIgIkR1IGjDpWxsZXIgcMOlIG1lZCBlbiBvbWJhc2VyaW5nLiIKIAotIzogd3Qtc3RhdHVzLmM6OTAxCisjOiB3dC1zdGF0dXMuYzo5NDYKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICAocsOkdHRhIGtvbmZsaWt0ZXIgb2NoIGvDtnIgc2VkYW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjkwMworIzogd3Qtc3RhdHVzLmM6OTQ4CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIgogbXNnc3RyICIgIChhbnbDpG5kIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiBmw7ZyIGF0dCBob3BwYSDDtnZlciBwYXRjaGVuKSIKIAotIzogd3Qtc3RhdHVzLmM6OTA1CisjOiB3dC1zdGF0dXMuYzo5NTAKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmViYXNlIC0tYWJvcnRcIiB0byBjaGVjayBvdXQgdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiAgKGFudsOkbmQgXCJnaXQgcmViYXNlIC0tYWJvcnRcIiBmw7ZyIGF0dCBjaGVja2EgdXQgdXJzcHJ1bmdzZ3JlbmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6OTE4CisjOiB3dC1zdGF0dXMuYzo5NjMKIG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiBtc2dzdHIgIiAgKGFsbGEga29uZmxpa3RlciByw6R0dGFkZToga8O2ciBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6OTIyCisjOiB3dC1zdGF0dXMuYzo5NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKQEAgLTE0NzIsMTE3ICsxNjM3LDExOCBAQAogIkR1IGjDpWxsZXIgcMOlIGF0dCBkZWxhIHVwcCBlbiBpbmNoZWNrbmluZyBtZWRhbiBkdSBvbWJhc2VyYXIgZ3JlbmVuIFwiJXNcIiAiCiAib3ZhbnDDpSBcIiVzXCIuIgogCi0jOiB3dC1zdGF0dXMuYzo5MjcKKyM6IHd0LXN0YXR1cy5jOjk3MgogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCBkdXJpbmcgYSByZWJhc2UuIgogbXNnc3RyICJEdSBow6VsbGVyIHDDpSBhdHQgZGVsYSB1cHAgZW4gaW5jaGVja25pbmcgaSBlbiBvbWJhc2VyaW5nLiIKIAotIzogd3Qtc3RhdHVzLmM6OTMwCisjOiB3dC1zdGF0dXMuYzo5NzUKIG1zZ2lkICIgIChPbmNlIHlvdXIgd29ya2luZyBkaXJlY3RvcnkgaXMgY2xlYW4sIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICAoU8OlIGZvcnQgZGluIGFyYmV0c2thdGFsb2cgw6RyIHJlbiwga8O2ciBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6OTM0CisjOiB3dC1zdGF0dXMuYzo5NzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKIG1zZ3N0ciAiIgogIkR1IGjDpWxsZXIgcMOlIGF0dCByZWRpZ2VyYSBlbiBpbmNoZWNrbmluZyBtZWRhbiBkdSBvbWJhc2VyYXIgZ3JlbmVuIFwiJXNcIiAiCiAib3ZhbnDDpSBcIiVzXCIuIgogCi0jOiB3dC1zdGF0dXMuYzo5MzkKKyM6IHd0LXN0YXR1cy5jOjk4NAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIKIG1zZ3N0ciAiRHUgaMOlbGxlciBww6UgYXR0IHJlZGlnZXJhIGVuIGluY2hlY2tuaW5nIHVuZGVyIGVuIG9tYmFzZXJpbmcuIgogCi0jOiB3dC1zdGF0dXMuYzo5NDIKKyM6IHd0LXN0YXR1cy5jOjk4NwogbXNnaWQgIiAgKHVzZSBcImdpdCBjb21taXQgLS1hbWVuZFwiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkiCiBtc2dzdHIgIiIKICIgIChhbnbDpG5kIFwiZ2l0IGNvbW1pdCAtLWFtZW5kXCIgZsO2ciBhdHQgbMOkZ2dhIHRpbGwgcMOlIGFrdHVlbGwgaW5jaGVja25pbmcpIgogCi0jOiB3dC1zdGF0dXMuYzo5NDQKKyM6IHd0LXN0YXR1cy5jOjk4OQogbXNnaWQgIiIKICIgICh1c2UgXCJnaXQgcmViYXNlIC0tY29udGludWVcIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiIG7DpHIgZHUgw6RyIG7DtmpkIG1lZCBkaW5hIMOkbmRyaW5nYXIpIgogCi0jOiB3dC1zdGF0dXMuYzo5NTQKLW1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZy4iCi1tc2dzdHIgIkR1IGjDpWxsZXIgcMOlIG1lZCBlbiBcImNoZXJyeS1waWNrXCIuIgorIzogd3Qtc3RhdHVzLmM6OTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGNoZXJyeS1waWNraW5nIGNvbW1pdCAlcy4iCittc2dzdHIgIkR1IGjDpWxsZXIgcMOlIG1lZCBlbiBcImNoZXJyeS1waWNrXCIgYXYgaW5jaGVja25pbmdlbiAlcy4iCiAKLSM6IHd0LXN0YXR1cy5jOjk1OAorIzogd3Qtc3RhdHVzLmM6MTAwNAogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIgIChyw6R0dGEga29uZmxpa3RlciBvY2gga8O2ciBzZWRhbiBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgogCi0jOiB3dC1zdGF0dXMuYzo5NjEKKyM6IHd0LXN0YXR1cy5jOjEwMDcKIG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICAoYWxsYSBrb25mbGlrdGVyIHLDpHR0YWRlOiBrw7ZyIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjk2MworIzogd3Qtc3RhdHVzLmM6MTAwOQogbXNnaWQgIiAgKHVzZSBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgdG8gY2FuY2VsIHRoZSBjaGVycnktcGljayBvcGVyYXRpb24pIgogbXNnc3RyICIiCiAiICAoYW52w6RuZCBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgZsO2ciBhdHQgYXZicnl0YSBcImNoZXJyeS1waWNrXCItIgogIm9wZXJhdGlvbmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6OTcyCisjOiB3dC1zdGF0dXMuYzoxMDE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJldmVydGluZyBjb21taXQgJXMuIgogbXNnc3RyICJEdSBow6VsbGVyIHDDpSBtZWQgYXR0IMOlbmdyYSBpbmNoZWNrbmluZ2VuICVzLiIKIAotIzogd3Qtc3RhdHVzLmM6OTc3CisjOiB3dC1zdGF0dXMuYzoxMDIzCiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIgIChyw6R0dGEga29uZmxpa3RlciBvY2gga8O2ciBzZWRhbiBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6OTgwCisjOiB3dC1zdGF0dXMuYzoxMDI2CiBtc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIgIChhbGxhIGtvbmZsaWt0ZXIgcsOkdHRhZGU6IGvDtnIgXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjk4MgorIzogd3Qtc3RhdHVzLmM6MTAyOAogbXNnaWQgIiAgKHVzZSBcImdpdCByZXZlcnQgLS1hYm9ydFwiIHRvIGNhbmNlbCB0aGUgcmV2ZXJ0IG9wZXJhdGlvbikiCiBtc2dzdHIgIiAgKGFudsOkbmQgXCJnaXQgcmV2ZXJ0IC0tYWJvcnRcIiBmw7ZyIGF0dCBhdmJyeXRhIMOlbmdyYW5kZXQpIgogCi0jOiB3dC1zdGF0dXMuYzo5OTMKKyM6IHd0LXN0YXR1cy5jOjEwMzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLCBzdGFydGVkIGZyb20gYnJhbmNoICclcycuIgogbXNnc3RyICJEdSBow6VsbGVyIHDDpSBtZWQgZW4gXCJiaXNlY3RcIiwgc3RhcnRhZCBmcsOlbiBncmVuZW4gXCIlc1wiLiIKIAotIzogd3Qtc3RhdHVzLmM6OTk3CisjOiB3dC1zdGF0dXMuYzoxMDQzCiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLiIKIG1zZ3N0ciAiRHUgaMOlbGxlciBww6UgbWVkIGVuIFwiYmlzZWN0XCIuIgogCi0jOiB3dC1zdGF0dXMuYzoxMDAwCisjOiB3dC1zdGF0dXMuYzoxMDQ2CiBtc2dpZCAiICAodXNlIFwiZ2l0IGJpc2VjdCByZXNldFwiIHRvIGdldCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIiCiAiICAoYW52w6RuZCBcImdpdCBiaXNlY3QgcmVzZXRcIiBmw7ZyIGF0dCBrb21tYSB0aWxsYmFrYSB0aWxsIHVyc3BydW5nc2dyZW5lbikiCiAKLSM6IHd0LXN0YXR1cy5jOjExNzMKKyM6IHd0LXN0YXR1cy5jOjEyMjEKIG1zZ2lkICJPbiBicmFuY2ggIgogbXNnc3RyICJQw6UgZ3JlbmVuICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4MAorIzogd3Qtc3RhdHVzLmM6MTIyOAogbXNnaWQgInJlYmFzZSBpbiBwcm9ncmVzczsgb250byAiCiBtc2dzdHIgIm9tYmFzZXJpbmcgcMOlZ8Olcjsgb3ZhbnDDpSIKIAotIzogd3Qtc3RhdHVzLmM6MTE4NworIzogd3Qtc3RhdHVzLmM6MTIzNQogbXNnaWQgIkhFQUQgZGV0YWNoZWQgYXQgIgogbXNnc3RyICJIRUFEIGZyw6Vua29wcGxhZCB2aWQgIgogCi0jOiB3dC1zdGF0dXMuYzoxMTg5CisjOiB3dC1zdGF0dXMuYzoxMjM3CiBtc2dpZCAiSEVBRCBkZXRhY2hlZCBmcm9tICIKIG1zZ3N0ciAiSEVBRCBmcsOlbmtvcHBsYWQgZnLDpW4gIgogCi0jOiB3dC1zdGF0dXMuYzoxMTkyCisjOiB3dC1zdGF0dXMuYzoxMjQwCiBtc2dpZCAiTm90IGN1cnJlbnRseSBvbiBhbnkgYnJhbmNoLiIKIG1zZ3N0ciAiSW50ZSBww6UgbsOlZ29uIGdyZW4gZsO2ciBuw6RydmFyYW5kZS4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyMDkKKyM6IHd0LXN0YXR1cy5jOjEyNTcKIG1zZ2lkICJJbml0aWFsIGNvbW1pdCIKIG1zZ3N0ciAiRsO2cnN0YSBpbmNoZWNrbmluZyIKIAotIzogd3Qtc3RhdHVzLmM6MTIyMworIzogd3Qtc3RhdHVzLmM6MTI3MQogbXNnaWQgIlVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAiT3Nww6VyYWRlIGZpbGVyIgogCi0jOiB3dC1zdGF0dXMuYzoxMjI1CisjOiB3dC1zdGF0dXMuYzoxMjczCiBtc2dpZCAiSWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAiSWdub3JlcmFkZSBmaWxlciIKIAotIzogd3Qtc3RhdHVzLmM6MTIyOQorIzogd3Qtc3RhdHVzLmM6MTI3NwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gJ3N0YXR1cyAtdW5vJ1xuIgpAQCAtMTU5NCwzMiArMTc2MCwzMiBAQAogImzDpGdnYSB0aWxsIG55YSBmaWxlciBzasOkbHYgKHNlIFwiZ2l0IGhlbHAgc3RhdHVzXCIpLiIKIAogIyAlcyDDpHIgbsOkc3RhIHN0csOkbmcgZWxsZXIgdG9tLgotIzogd3Qtc3RhdHVzLmM6MTIzNQorIzogd3Qtc3RhdHVzLmM6MTI4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMgbm90IGxpc3RlZCVzIgogbXNnc3RyICJPc3DDpXJhZGUgZmlsZXIgdmlzYXMgZWolcyIKIAotIzogd3Qtc3RhdHVzLmM6MTIzNworIzogd3Qtc3RhdHVzLmM6MTI4NQogbXNnaWQgIiAodXNlIC11IG9wdGlvbiB0byBzaG93IHVudHJhY2tlZCBmaWxlcykiCiBtc2dzdHIgIiAoYW52w6RuZCBmbGFnZ2FuIC11IGbDtnIgYXR0IHZpc2Egb3Nww6VyYWRlIGZpbGVyKSIKIAotIzogd3Qtc3RhdHVzLmM6MTI0MworIzogd3Qtc3RhdHVzLmM6MTI5MQogbXNnaWQgIk5vIGNoYW5nZXMiCiBtc2dzdHIgIkluZ2Egw6RuZHJpbmdhciIKIAotIzogd3Qtc3RhdHVzLmM6MTI0OAorIzogd3Qtc3RhdHVzLmM6MTI5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlIFwiZ2l0IGFkZFwiIGFuZC9vciBcImdpdCBjb21taXQgLWFcIilcbiIKIG1zZ3N0ciAiIgogImluZ2Egw6RuZHJpbmdhciBhdHQgY2hlY2thIGluIChhbnbDpG5kIFwiZ2l0IGFkZFwiIG9jaC9lbGxlciBcImdpdCBjb21taXQgLWEiCiAiXCIpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTEKKyM6IHd0LXN0YXR1cy5jOjEyOTkKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcbiIKIG1zZ3N0ciAiaW5nYSDDpG5kcmluZ2FyIGF0dCBjaGVja2EgaW5cbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI1NAorIzogd3Qtc3RhdHVzLmM6MTMwMgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50ICh1c2UgXCJnaXQgYWRkXCIgdG8gIgpAQCAtMTYyOCw1MiArMTc5NCw1NiBAQAogImluZ2V0IGvDtmF0IGbDtnIgaW5jaGVja25pbmcsIG1lbiBvc3DDpXJhZGUgZmlsZXIgZmlubnMgKHNww6VyYSBtZWQgXCJnaXQgYWRkIgogIlwiKVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjU3CisjOiB3dC1zdGF0dXMuYzoxMzA1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudFxuIgogbXNnc3RyICJpbmdldCBrw7ZhdCBmw7ZyIGluY2hlY2tuaW5nLCBtZW4gb3Nww6VyYWRlIGZpbGVyIGZpbm5zXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjAKKyM6IHd0LXN0YXR1cy5jOjEzMDgKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQgKGNyZWF0ZS9jb3B5IGZpbGVzIGFuZCB1c2UgXCJnaXQgYWRkXCIgdG8gdHJhY2spXG4iCiBtc2dzdHIgImluZ2V0IGF0dCBjaGVja2EgaW4gKHNrYXBhL2tvcGllcmEgZmlsZXIgb2NoIHNww6VyYSBtZWQgXCJnaXQgYWRkXCIpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjMgd3Qtc3RhdHVzLmM6MTI2OAorIzogd3Qtc3RhdHVzLmM6MTMxMSB3dC1zdGF0dXMuYzoxMzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0XG4iCiBtc2dzdHIgImluZ2V0IGF0dCBjaGVja2EgaW5cbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2NgorIzogd3Qtc3RhdHVzLmM6MTMxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKVxuIgogbXNnc3RyICJpbmdldCBhdHQgY2hlY2thIGluIChhbnbDpG5kIC11IGbDtnIgYXR0IHZpc2Egb3Nww6VyYWRlIGZpbGVyKVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjcwCisjOiB3dC1zdGF0dXMuYzoxMzE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIGRpcmVjdG9yeSBjbGVhblxuIgogbXNnc3RyICJpbmdldCBhdHQgY2hlY2thIGluLCBhcmJldHNrYXRhbG9nZW4gcmVuXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEzNzgKKyM6IHd0LXN0YXR1cy5jOjE0MjcKIG1zZ2lkICJIRUFEIChubyBicmFuY2gpIgogbXNnc3RyICJIRUFEIChpbmdlbiBncmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6MTM4NAorIzogd3Qtc3RhdHVzLmM6MTQzMwogbXNnaWQgIkluaXRpYWwgY29tbWl0IG9uICIKIG1zZ3N0ciAiRsO2cnN0YSBpbmNoZWNrbmluZyBww6UgIgogCi0jOiB3dC1zdGF0dXMuYzoxMzk5CisjOiB3dC1zdGF0dXMuYzoxNDYzCittc2dpZCAiZ29uZSIKK21zZ3N0ciAiZsO2cnN2dW5uZW4iCisKKyM6IHd0LXN0YXR1cy5jOjE0NjUKIG1zZ2lkICJiZWhpbmQgIgogbXNnc3RyICJlZnRlciAiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MDIgd3Qtc3RhdHVzLmM6MTQwNQorIzogd3Qtc3RhdHVzLmM6MTQ2OCB3dC1zdGF0dXMuYzoxNDcxCiBtc2dpZCAiYWhlYWQgIgogbXNnc3RyICJmw7ZyZSAiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MDcKKyM6IHd0LXN0YXR1cy5jOjE0NzMKIG1zZ2lkICIsIGJlaGluZCAiCiBtc2dzdHIgIiwgZWZ0ZXIgIgogCi0jOiBjb21wYXQvcHJlY29tcG9zZV91dGY4LmM6NTggYnVpbHRpbi9jbG9uZS5jOjM1MQorIzogY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jOjU1IGJ1aWx0aW4vY2xvbmUuYzozNTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHVubGluayAnJXMnIgogbXNnc3RyICJtaXNzbHlja2FkZXMgdGEgYm9ydCBsw6Rua2VuIFwiJXNcIiIKQEAgLTE3NTksNyArMTkyOSw3IEBACiBtc2dpZCAidW5leHBlY3RlZCBkaWZmIHN0YXR1cyAlYyIKIG1zZ3N0ciAiZGlmZi1zdGF0dXMgJWMgZsO2cnbDpG50YWRlcyBpbnRlIgogCi0jOiBidWlsdGluL2FkZC5jOjE0OSBidWlsdGluL2NvbW1pdC5jOjI1MgorIzogYnVpbHRpbi9hZGQuYzoxNDkgYnVpbHRpbi9jb21taXQuYzoyNjAKIG1zZ2lkICJ1cGRhdGluZyBmaWxlcyBmYWlsZWQiCiBtc2dzdHIgIm1pc3NseWNrYWRlcyB1cHBkYXRlcmEgZmlsZXIiCiAKQEAgLTE3NjgsMTQwICsxOTM4LDEzNSBAQAogbXNnaWQgInJlbW92ZSAnJXMnXG4iCiBtc2dzdHIgInRhIGJvcnQgXCIlc1wiXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MjUzCisjOiBidWlsdGluL2FkZC5jOjIzNwogbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVmcmVzaGluZyB0aGUgaW5kZXg6IgogbXNnc3RyICJPc3DDpXJhZGUgw6RuZHJpbmdhciBlZnRlciBhdHQgaGEgdXBwZGF0ZXJhdCBpbmRleGV0OiIKIAotIzogYnVpbHRpbi9hZGQuYzoyNTYgYnVpbHRpbi9hZGQuYzo1NzMgYnVpbHRpbi9ybS5jOjMzNwotIywgYy1mb3JtYXQKLW1zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgotbXNnc3RyICJzw7ZrdsOkZ3NhbmdpdmVsc2VuIFwiJXNcIiBtb3RzdmFyYWRlIGludGUgbsOlZ3JhIGZpbGVyIgotCi0jOiBidWlsdGluL2FkZC5jOjMzOQorIzogYnVpbHRpbi9hZGQuYzoyOTkKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCB0aGUgaW5kZXgiCiBtc2dzdHIgIkt1bmRlIGludGUgbMOkc2EgaW5kZXhldCIKIAotIzogYnVpbHRpbi9hZGQuYzozNTAKKyM6IGJ1aWx0aW4vYWRkLmM6MzEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBvcGVuICclcycgZm9yIHdyaXRpbmcuIgogbXNnc3RyICJLdW5kZSBpbnRlIMO2cHBuYSBcIiVzXCIgZsO2ciBza3Jpdm5pbmciCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzU0CisjOiBidWlsdGluL2FkZC5jOjMxNAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBwYXRjaCIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBza3JpdmEgcGF0Y2giCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzU5CisjOiBidWlsdGluL2FkZC5jOjMxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgc3RhdCAnJXMnIgogbXNnc3RyICJLdW5kZSBpbnRlIHRhIHN0YXR1cyBww6UgXCIlc1wiIgogCi0jOiBidWlsdGluL2FkZC5jOjM2MQorIzogYnVpbHRpbi9hZGQuYzozMjEKIG1zZ2lkICJFbXB0eSBwYXRjaC4gQWJvcnRlZC4iCiBtc2dzdHIgIlRvbSBwYXRjaC4gQXZicnl0ZXIuIgogCi0jOiBidWlsdGluL2FkZC5jOjM2NworIzogYnVpbHRpbi9hZGQuYzozMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGFwcGx5ICclcyciCiBtc2dzdHIgIkt1bmRlIGludGUgdGlsbMOkbXBhIFwiJXNcIiIKIAotIzogYnVpbHRpbi9hZGQuYzozNzcKKyM6IGJ1aWx0aW4vYWRkLmM6MzM3CiBtc2dpZCAiVGhlIGZvbGxvd2luZyBwYXRocyBhcmUgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgogbXNnc3RyICJGw7ZsamFuZGUgc8O2a3bDpGdhciBpZ25vcmVyYXMgYXYgZW4gYXYgZGluYSAuZ2l0aWdub3JlLWZpbGVyOlxuIgogCi0jOiBidWlsdGluL2FkZC5jOjM5NCBidWlsdGluL2NsZWFuLmM6ODc1IGJ1aWx0aW4vZmV0Y2guYzo3OCBidWlsdGluL212LmM6NjMKLSM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzMgYnVpbHRpbi9wdXNoLmM6NDUxIGJ1aWx0aW4vcmVtb3RlLmM6MTI1MwotIzogYnVpbHRpbi9ybS5jOjI2OAorIzogYnVpbHRpbi9hZGQuYzozNTQgYnVpbHRpbi9jbGVhbi5jOjg3NSBidWlsdGluL2ZldGNoLmM6OTIgYnVpbHRpbi9tdi5jOjY2CisjOiBidWlsdGluL3BydW5lLXBhY2tlZC5jOjczIGJ1aWx0aW4vcHVzaC5jOjQ1OSBidWlsdGluL3JlbW90ZS5jOjEyNTMKKyM6IGJ1aWx0aW4vcm0uYzoyNjkKIG1zZ2lkICJkcnkgcnVuIgogbXNnc3RyICJ0ZXN0a8O2cm5pbmciCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk1IGJ1aWx0aW4vYXBwbHkuYzo0NDEwIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTkKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyMCBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NSBidWlsdGluL2ZzY2suYzo2MTMKLSM6IGJ1aWx0aW4vbG9nLmM6MTU3MyBidWlsdGluL212LmM6NjIgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTMKKyM6IGJ1aWx0aW4vYWRkLmM6MzU1IGJ1aWx0aW4vYXBwbHkuYzo0NDEwIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI0OSBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NSBidWlsdGluL2ZzY2suYzo2MTIKKyM6IGJ1aWx0aW4vbG9nLmM6MTU5MiBidWlsdGluL212LmM6NjUgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTMKIG1zZ2lkICJiZSB2ZXJib3NlIgogbXNnc3RyICJ2YXIgcHJhdHNhbSIKIAotIzogYnVpbHRpbi9hZGQuYzozOTcKKyM6IGJ1aWx0aW4vYWRkLmM6MzU3CiBtc2dpZCAiaW50ZXJhY3RpdmUgcGlja2luZyIKIG1zZ3N0ciAicGxvY2thIGludGVyYWt0aXZ0IgogCi0jOiBidWlsdGluL2FkZC5jOjM5OCBidWlsdGluL2NoZWNrb3V0LmM6MTA3MyBidWlsdGluL3Jlc2V0LmM6MjYxCisjOiBidWlsdGluL2FkZC5jOjM1OCBidWlsdGluL2NoZWNrb3V0LmM6MTEwOSBidWlsdGluL3Jlc2V0LmM6MjcyCiBtc2dpZCAic2VsZWN0IGh1bmtzIGludGVyYWN0aXZlbHkiCiBtc2dzdHIgInbDpGxqIHN0eWNrZW4gaW50ZXJha3RpdnQiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk5CisjOiBidWlsdGluL2FkZC5jOjM1OQogbXNnaWQgImVkaXQgY3VycmVudCBkaWZmIGFuZCBhcHBseSIKIG1zZ3N0ciAicmVkaWdlcmEgYWt0dWVsbCBkaWZmIG9jaCBhcHBsaWNlcmEiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAwCisjOiBidWlsdGluL2FkZC5jOjM2MAogbXNnaWQgImFsbG93IGFkZGluZyBvdGhlcndpc2UgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAidGlsbMOldCBsw6RnZ2EgdGlsbCBhbm5hcnMgaWdub3JlcmFkZSBmaWxlciIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDEKKyM6IGJ1aWx0aW4vYWRkLmM6MzYxCiBtc2dpZCAidXBkYXRlIHRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgInVwcGRhdGVyYSBzcMOlcmFkZSBmaWxlciIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDIKKyM6IGJ1aWx0aW4vYWRkLmM6MzYyCiBtc2dpZCAicmVjb3JkIG9ubHkgdGhlIGZhY3QgdGhhdCB0aGUgcGF0aCB3aWxsIGJlIGFkZGVkIGxhdGVyIgogbXNnc3RyICJyZWdpc3RyZXJhIGVuZGFzdCBhdHQgc8O2a3bDpGdlbiBrb21tZXIgbMOkZ2dhcyB0aWxsIHNlbmFyZSIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDMKKyM6IGJ1aWx0aW4vYWRkLmM6MzYzCiBtc2dpZCAiYWRkIGNoYW5nZXMgZnJvbSBhbGwgdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgogbXNnc3RyICJsw6RnZyB0aWxsIMOkbmRyaW5nYXIgZnLDpW4gYWxsYSBzcMOlcmFkZSBvY2ggb3Nww6VyYWRlIGZpbGVyIgogCiAjLiB0YWtlcyBubyBhcmd1bWVudHMKLSM6IGJ1aWx0aW4vYWRkLmM6NDA2CisjOiBidWlsdGluL2FkZC5jOjM2NgogbXNnaWQgImlnbm9yZSBwYXRocyByZW1vdmVkIGluIHRoZSB3b3JraW5nIHRyZWUgKHNhbWUgYXMgLS1uby1hbGwpIgogbXNnc3RyICJpZ25vcmVyYSBzw7ZrdsOkZ2FyIGJvcnR0YWduYSBpIGFyYmV0c2thdGFsb2dlbiAoc2FtbWEgc29tIC0tbm8tYWxsKSIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDgKKyM6IGJ1aWx0aW4vYWRkLmM6MzY4CiBtc2dpZCAiZG9uJ3QgYWRkLCBvbmx5IHJlZnJlc2ggdGhlIGluZGV4IgogbXNnc3RyICJsw6RnZyBpbnRlIHRpbGwsIHVwcGRhdGVyYSBlbmRhc3QgaW5kZXhldCIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDkKKyM6IGJ1aWx0aW4vYWRkLmM6MzY5CiBtc2dpZCAianVzdCBza2lwIGZpbGVzIHdoaWNoIGNhbm5vdCBiZSBhZGRlZCBiZWNhdXNlIG9mIGVycm9ycyIKIG1zZ3N0ciAiaG9wcGEgYmFyYSDDtnZlciBmaWxlciBzb20gaW50ZSBrYW4gbMOkZ2dhcyB0aWxsIHDDpSBncnVuZCBhdiBmZWwiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDEwCisjOiBidWlsdGluL2FkZC5jOjM3MAogbXNnaWQgImNoZWNrIGlmIC0gZXZlbiBtaXNzaW5nIC0gZmlsZXMgYXJlIGlnbm9yZWQgaW4gZHJ5IHJ1biIKIG1zZ3N0ciAic2Ugb20gLSDDpHZlbiBzYWtuYWRlIC0gZmlsZXIgaWdub3JlcmFzIGkgdGVzdGvDtnJuaW5nIgogCi0jOiBidWlsdGluL2FkZC5jOjQzMgorIzogYnVpbHRpbi9hZGQuYzozOTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlIC1mIGlmIHlvdSByZWFsbHkgd2FudCB0byBhZGQgdGhlbS5cbiIKIG1zZ3N0ciAiQW52w6RuZCAtZiBvbSBkdSB2ZXJrbGlnZW4gdmlsbCBsw6RnZ2EgdGlsbCBkZW0uXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDMzCisjOiBidWlsdGluL2FkZC5jOjM5MwogbXNnaWQgIm5vIGZpbGVzIGFkZGVkIgogbXNnc3RyICJpbmdhIGZpbGVyIGhhciBsYWd0cyB0aWxsIgogCi0jOiBidWlsdGluL2FkZC5jOjQzOQorIzogYnVpbHRpbi9hZGQuYzozOTkKIG1zZ2lkICJhZGRpbmcgZmlsZXMgZmFpbGVkIgogbXNnc3RyICJtaXNzbHlja2FkZXMgbMOkZ2dhIHRpbGwgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDc4CisjOiBidWlsdGluL2FkZC5jOjQzOAogbXNnaWQgIi1BIGFuZCAtdSBhcmUgbXV0dWFsbHkgaW5jb21wYXRpYmxlIgogbXNnc3RyICItQSBvY2ggLXUgw6RyIMO2bXNlc2lkaWd0IGlua29tcGF0aWJsYSIKIAotIzogYnVpbHRpbi9hZGQuYzo0OTYKKyM6IGJ1aWx0aW4vYWRkLmM6NDU2CiBtc2dpZCAiT3B0aW9uIC0taWdub3JlLW1pc3NpbmcgY2FuIG9ubHkgYmUgdXNlZCB0b2dldGhlciB3aXRoIC0tZHJ5LXJ1biIKIG1zZ3N0ciAiRmxhZ2dhbiAtLWlnbm9yZS1taXNzaW5nIGthbiBlbmRhc3QgYW52w6RuZGFzIHRpbGxzYW1tYW5zIG1lZCAtLWRyeS1ydW4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NTI2CisjOiBidWlsdGluL2FkZC5jOjQ4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3RoaW5nIHNwZWNpZmllZCwgbm90aGluZyBhZGRlZC5cbiIKIG1zZ3N0ciAiSW5nZXQgYW5naXZldCwgaW5nZXQgdGlsbGFndC5cbiIKIAotIzogYnVpbHRpbi9hZGQuYzo1MjcKKyM6IGJ1aWx0aW4vYWRkLmM6NDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1heWJlIHlvdSB3YW50ZWQgdG8gc2F5ICdnaXQgYWRkIC4nP1xuIgogbXNnc3RyICJLYW5za2UgbWVuYWRlIGR1IGF0dCBza3JpdmEgXCJnaXQgYWRkIC5cIj9cbiIKIAotIzogYnVpbHRpbi9hZGQuYzo1MzMgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjEgYnVpbHRpbi9jbGVhbi5jOjkxOQotIzogYnVpbHRpbi9jb21taXQuYzozMTIgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyOTcKKyM6IGJ1aWx0aW4vYWRkLmM6NDkyIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTcyIGJ1aWx0aW4vY2xlYW4uYzo5MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzIwIGJ1aWx0aW4vbXYuYzo4NiBidWlsdGluL3Jlc2V0LmM6MjI0IGJ1aWx0aW4vcm0uYzoyOTkKIG1zZ2lkICJpbmRleCBmaWxlIGNvcnJ1cHQiCiBtc2dzdHIgImluZGV4ZmlsZW4gdHJhc2lnIgogCi0jOiBidWlsdGluL2FkZC5jOjYwNSBidWlsdGluL2FwcGx5LmM6NDUwNiBidWlsdGluL212LmM6MjI5IGJ1aWx0aW4vcm0uYzo0MzIKKyM6IGJ1aWx0aW4vYWRkLmM6NTg5IGJ1aWx0aW4vYXBwbHkuYzo0NTA2IGJ1aWx0aW4vbXYuYzoyNTkgYnVpbHRpbi9ybS5jOjQzMgogbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBza3JpdmEgbnkgaW5kZXhmaWwiCiAKQEAgLTIxNTQsNyArMjMxOSw3IEBACiBtc2dpZCAiQ2hlY2tpbmcgcGF0Y2ggJXMuLi4iCiBtc2dzdHIgIktvbnRyb2xsZXJhciBwYXRjaGVuICVzLi4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzY4MCBidWlsdGluL2NoZWNrb3V0LmM6MjE2IGJ1aWx0aW4vcmVzZXQuYzoxMjcKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNjgwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTMgYnVpbHRpbi9yZXNldC5jOjEyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWtlX2NhY2hlX2VudHJ5IGZhaWxlZCBmb3IgcGF0aCAnJXMnIgogbXNnc3RyICJtYWtlX2NhY2hlX2VudHJ5IG1pc3NseWNrYWRlcyBmw7ZyIHPDtmt2w6RnZW4gXCIlc1wiIgpAQCAtMjIzNCw4ICsyMzk5LDggQEAKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCBpbmRleCBmaWxlIgogbXNnc3RyICJrYW4gaW50ZSBsw6RzYSBpbmRleGZpbGVuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM1NyBidWlsdGluL2FwcGx5LmM6NDM2MCBidWlsdGluL2Nsb25lLmM6OTEKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2MworIzogYnVpbHRpbi9hcHBseS5jOjQzNTcgYnVpbHRpbi9hcHBseS5jOjQzNjAgYnVpbHRpbi9jbG9uZS5jOjkwCisjOiBidWlsdGluL2ZldGNoLmM6NzcKIG1zZ2lkICJwYXRoIgogbXNnc3RyICJzw7ZrdsOkZyIKIApAQCAtMjI5NSw3ICsyNDYwLDcgQEAKIG1zZ2lkICJidWlsZCBhIHRlbXBvcmFyeSBpbmRleCBiYXNlZCBvbiBlbWJlZGRlZCBpbmRleCBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiYnlnZyBldHQgdGVtcG9yw6RydCBpbmRleCBiYXNlcmF0IHDDpSBpbmJ5Z2dkIGluZGV4aW5mb3JtYXRpb24iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg5IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTcgYnVpbHRpbi9scy1maWxlcy5jOjQ2MgorIzogYnVpbHRpbi9hcHBseS5jOjQzODkgYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDUyCiBtc2dpZCAicGF0aHMgYXJlIHNlcGFyYXRlZCB3aXRoIE5VTCBjaGFyYWN0ZXIiCiBtc2dzdHIgInPDtmt2w6RnYXIgYXZkZWxhcyBtZWQgTlVMLXRlY2tlbiIKIApAQCAtMjQyNSwxMDMgKzI1OTAsMTAzIEBACiBtc2dpZCAidXBkYXRlIEJJU0VDVF9IRUFEIGluc3RlYWQgb2YgY2hlY2tpbmcgb3V0IHRoZSBjdXJyZW50IGNvbW1pdCIKIG1zZ3N0ciAidXBwZGF0ZXJhIEJJU0VDVF9IRUFEIGlzdMOkbGxldCBmw7ZyIGF0dCBjaGVja2EgdXQgYWt0dWVsbCBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjI2CisjOiBidWlsdGluL2JsYW1lLmM6MjcKIG1zZ2lkICJnaXQgYmxhbWUgW29wdGlvbnNdIFtyZXYtb3B0c10gW3Jldl0gWy0tXSBmaWxlIgogbXNnc3RyICJnaXQgYmxhbWUgW2ZsYWdnb3JdIFtyZXYtZmxhZ2dvcl0gW3Jldl0gWy0tXSBmaWwiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzozMQorIzogYnVpbHRpbi9ibGFtZS5jOjMyCiBtc2dpZCAiW3Jldi1vcHRzXSBhcmUgZG9jdW1lbnRlZCBpbiBnaXQtcmV2LWxpc3QoMSkiCiBtc2dzdHIgIltyZXYtZmxhZ2dvcl0gZG9rdW1lbnRlcmFzIGkgZ2l0LXJldi1saXN0KDEpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI3NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyNDgKIG1zZ2lkICJTaG93IGJsYW1lIGVudHJpZXMgYXMgd2UgZmluZCB0aGVtLCBpbmNyZW1lbnRhbGx5IgogbXNnc3RyICJWaXNhIGtsYW5kcmluZ3Nwb3N0ZXIgbsOkciB2aSBoaXR0YXIgZGVtLCBpbnRlcmFrdGl2dCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyNzcKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjQ5CiBtc2dpZCAiU2hvdyBibGFuayBTSEEtMSBmb3IgYm91bmRhcnkgY29tbWl0cyAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiVmlzYSBibGFuayBTSEEtMSBmw7ZyIGdyw6Ruc2luY2hlY2tuaW5nYXIgKFN0YW5kYXJkOiBhdikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc4CisjOiBidWlsdGluL2JsYW1lLmM6MjI1MAogbXNnaWQgIkRvIG5vdCB0cmVhdCByb290IGNvbW1pdHMgYXMgYm91bmRhcmllcyAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiQmVoYW5kbGEgaW50ZSByb3RpbmNoZWNrbmluZ2FyIHNvbSBncsOkbnNlciAoU3RhbmRhcmQ6IGF2KSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyNzkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjUxCiBtc2dpZCAiU2hvdyB3b3JrIGNvc3Qgc3RhdGlzdGljcyIKIG1zZ3N0ciAiVmlzYSBzdGF0aXN0aWsgw7Z2ZXIgYXJiZXRza29zdG5hZCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjUyCiBtc2dpZCAiU2hvdyBvdXRwdXQgc2NvcmUgZm9yIGJsYW1lIGVudHJpZXMiCiBtc2dzdHIgIlZpc2EgdXRkYXRhcG/DpG5nIGbDtnIga2xhbmRyaW5nc3Bvc3RlciIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODEKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjUzCiBtc2dpZCAiU2hvdyBvcmlnaW5hbCBmaWxlbmFtZSAoRGVmYXVsdDogYXV0bykiCiBtc2dzdHIgIlZpc2Egb3JpZ2luYWxmaWxuYW1uIChTdGFuZGFyZDogYXV0bykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgyCisjOiBidWlsdGluL2JsYW1lLmM6MjI1NAogbXNnaWQgIlNob3cgb3JpZ2luYWwgbGluZW51bWJlciAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiVmlzYSB1cnNwcnVuZ2xpZ3QgcmFkbnVtbWVyIChTdGFuZGFyZDogYXYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI4MworIzogYnVpbHRpbi9ibGFtZS5jOjIyNTUKIG1zZ2lkICJTaG93IGluIGEgZm9ybWF0IGRlc2lnbmVkIGZvciBtYWNoaW5lIGNvbnN1bXB0aW9uIgogbXNnc3RyICJWaXNhIGkgZXR0IGZvcm1hdCBhdnNldHQgZsO2ciBtYXNraW5rb25zdW10aW9uIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI4NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNTYKIG1zZ2lkICJTaG93IHBvcmNlbGFpbiBmb3JtYXQgd2l0aCBwZXItbGluZSBjb21taXQgaW5mb3JtYXRpb24iCiBtc2dzdHIgIlZpc2EgcG9yc2xpbnNmb3JtYXQgbWVkIHBlci1yYWQtaW5jaGVja25pbmdzaW5mb3JtYXRpb24iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg1CisjOiBidWlsdGluL2JsYW1lLmM6MjI1NwogbXNnaWQgIlVzZSB0aGUgc2FtZSBvdXRwdXQgbW9kZSBhcyBnaXQtYW5ub3RhdGUgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIkFudsOkbmQgc2FtbWEgdXRkYXRhbMOkZ2Ugc29tIGdpdC1hbm5vdGF0ZSAoU3RhbmRhcmQ6IGF2KSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjU4CiBtc2dpZCAiU2hvdyByYXcgdGltZXN0YW1wIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJWaXNhIHLDpSB0aWRzc3TDpG1wZWwgKFN0YW5kYXJkOiBhdikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg3CisjOiBidWlsdGluL2JsYW1lLmM6MjI1OQogbXNnaWQgIlNob3cgbG9uZyBjb21taXQgU0hBMSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiVmlzYSBsw6VuZyBpbmNoZWNrbmluZ3MtU0hBMSAoU3RhbmRhcmQ6IGF2KSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODgKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjYwCiBtc2dpZCAiU3VwcHJlc3MgYXV0aG9yIG5hbWUgYW5kIHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiVW5kZXJ0cnljayBmw7ZyZmF0dGFybmFtbiBvY2ggdGlkc3N0w6RtcGVsIChTdGFuZGFyZDogYXYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI4OQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjEKIG1zZ2lkICJTaG93IGF1dGhvciBlbWFpbCBpbnN0ZWFkIG9mIG5hbWUgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIlZpc2EgZsO2cmZhdHRhcmVucyBlLXBvc3QgaXN0w6RsbGV0IGbDtnIgbmFtbiAoU3RhbmRhcmQ6IGF2KSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjYyCiBtc2dpZCAiSWdub3JlIHdoaXRlc3BhY2UgZGlmZmVyZW5jZXMiCiBtc2dzdHIgIklnbm9yZXJhIMOkbmRyaW5nYXIgaSBibGFua3N0ZWciCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkxCisjOiBidWlsdGluL2JsYW1lLmM6MjI2MwogbXNnaWQgIlNwZW5kIGV4dHJhIGN5Y2xlcyB0byBmaW5kIGJldHRlciBtYXRjaCIKIG1zZ3N0ciAiU2zDtnNhIGV4dHJhIGN5a2xlciBtZWQgYXR0IGhpdHRhIGLDpHR0cmUgdHLDpGZmIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5MgorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjQKIG1zZ2lkICJVc2UgcmV2aXNpb25zIGZyb20gPGZpbGU+IGluc3RlYWQgb2YgY2FsbGluZyBnaXQtcmV2LWxpc3QiCiBtc2dzdHIgIkFudsOkbmQgcmV2aXNpb25lciBmcsOlbiA8ZmlsPiBpc3TDpGxsZXQgZsO2ciBhdHQgYW5yb3BhIGdpdC1yZXYtbGlzdCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY1CiBtc2dpZCAiVXNlIDxmaWxlPidzIGNvbnRlbnRzIGFzIHRoZSBmaW5hbCBpbWFnZSIKIG1zZ3N0ciAiQW52w6RuZCA8ZmlsPnMgaW5uZWjDpWxsIHNvbSBzbHV0Z2lsdGlnIGJpbGQiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk0IGJ1aWx0aW4vYmxhbWUuYzoyMjk1CisjOiBidWlsdGluL2JsYW1lLmM6MjI2NiBidWlsdGluL2JsYW1lLmM6MjI2NwogbXNnaWQgInNjb3JlIgogbXNnc3RyICJwb8OkbmciCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk0CisjOiBidWlsdGluL2JsYW1lLmM6MjI2NgogbXNnaWQgIkZpbmQgbGluZSBjb3BpZXMgd2l0aGluIGFuZCBhY3Jvc3MgZmlsZXMiCiBtc2dzdHIgIkhpdHRhIGtvcGllcmFkZSByYWRlciBpbnV0aSBvY2ggbWVsbGFuIGZpbGVyIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjcKIG1zZ2lkICJGaW5kIGxpbmUgbW92ZW1lbnRzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgogbXNnc3RyICJIaXR0YSBmbHl0dGFkZSByYWRlciBpbnV0aSBvY2ggbWVsbGFuIGZpbGVyIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjgKIG1zZ2lkICJuLG0iCiBtc2dzdHIgIm4sbSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY4CiBtc2dpZCAiUHJvY2VzcyBvbmx5IGxpbmUgcmFuZ2UgbixtLCBjb3VudGluZyBmcm9tIDEiCiBtc2dzdHIgIkJlaGFuZGxhIGVuZGFzdCByYWRpbnRlcnZhbGxldCBuLG0sIG1lZCBiw7ZyamFuIHDDpSAxIgogCkBAIC0yNjI3LDI3OCArMjc5MiwyODggQEAKIAogIzogYnVpbHRpbi9icmFuY2guYzo0NTMKICMsIGMtZm9ybWF0Cittc2dpZCAiWyVzOiBnb25lXSIKK21zZ3N0ciAiWyVzOiBmw7Zyc3Z1bm5lbl0iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU2CisjLCBjLWZvcm1hdAorbXNnaWQgIlslc10iCittc2dzdHIgIlslc10iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU5CisjLCBjLWZvcm1hdAogbXNnaWQgIlslczogYmVoaW5kICVkXSIKIG1zZ3N0ciAiWyVzOiBiYWtvbSAlZF0gIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ1NQorIzogYnVpbHRpbi9icmFuY2guYzo0NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiW2JlaGluZCAlZF0iCiBtc2dzdHIgIltiYWtvbSAlZF0gIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ1OQorIzogYnVpbHRpbi9icmFuY2guYzo0NjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiWyVzOiBhaGVhZCAlZF0iCiBtc2dzdHIgIlslczogZsO2cmUgJWRdICIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NjEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlthaGVhZCAlZF0iCiBtc2dzdHIgIltmw7ZyZSAlZF0gIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ2NAorIzogYnVpbHRpbi9icmFuY2guYzo0NzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiWyVzOiBhaGVhZCAlZCwgYmVoaW5kICVkXSIKIG1zZ3N0ciAiWyVzOiBmw7ZyZSAlZCwgYmFrb20gJWRdICIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NjcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDczCiAjLCBjLWZvcm1hdAogbXNnaWQgIlthaGVhZCAlZCwgYmVoaW5kICVkXSIKIG1zZ3N0ciAiW2bDtnJlICVkLCBiYWtvbSAlZF0gIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ5MAorIzogYnVpbHRpbi9icmFuY2guYzo0OTYKIG1zZ2lkICIgKioqKiBpbnZhbGlkIHJlZiAqKioqIgogbXNnc3RyICIgKioqKiBvZ2lsdGlnIHJlZiAqKioqIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU4MgorIzogYnVpbHRpbi9icmFuY2guYzo1ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiKG5vIGJyYW5jaCwgcmViYXNpbmcgJXMpIgogbXNnc3RyICIoaW5nZW4gZ3Jlbiwgb21iYXNlcmFyICVzKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo1ODUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTkxCiAjLCBjLWZvcm1hdAogbXNnaWQgIihubyBicmFuY2gsIGJpc2VjdCBzdGFydGVkIG9uICVzKSIKIG1zZ3N0ciAiKGluZ2VuIGdyZW4sIFwiYmlzZWN0XCIgc3RhcnRhZCBww6UgJXMpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU4OAorIzogYnVpbHRpbi9icmFuY2guYzo1OTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiKGRldGFjaGVkIGZyb20gJXMpIgogbXNnc3RyICIoZnLDpW5rb3BwbGFkIGZyw6VuICVzKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo1OTEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTk3CiBtc2dpZCAiKG5vIGJyYW5jaCkiCiBtc2dzdHIgIihpbmdlbiBncmVuKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2MzcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCAnJXMnIGRvZXMgbm90IHBvaW50IHRvIGEgY29tbWl0IgogbXNnc3RyICJvYmpla3RldCBcIiVzXCIgcGVrYXIgcMOlIGVuIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY2OQorIzogYnVpbHRpbi9icmFuY2guYzo2NzUKIG1zZ2lkICJzb21lIHJlZnMgY291bGQgbm90IGJlIHJlYWQiCiBtc2dzdHIgInZpc3NhIHJlZmVyZW5zZXIga3VuZGUgaW50ZSBsw6RzYXMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjgyCisjOiBidWlsdGluL2JyYW5jaC5jOjY4OAogbXNnaWQgImNhbm5vdCByZW5hbWUgdGhlIGN1cnJlbnQgYnJhbmNoIHdoaWxlIG5vdCBvbiBhbnkuIgogbXNnc3RyICIiCiAia3VuZGUgaW50ZSBieXRhIG5hbW4gcMOlIGFrdHVlbGwgZ3JlbiBuw6RyIGR1IGludGUgYmVmaW5uZXIgZGlnIHDDpSBuw6Vnb24uIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY5MgorIzogYnVpbHRpbi9icmFuY2guYzo2OTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBicmFuY2ggbmFtZTogJyVzJyIKIG1zZ3N0ciAiRmVsYWt0aWd0IG5hbW4gcMOlIGdyZW46IFwiJXNcIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3MDcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzEzCiBtc2dpZCAiQnJhbmNoIHJlbmFtZSBmYWlsZWQiCiBtc2dzdHIgIk1pc3NseWNrYWRlcyBieXRhIG5hbW4gcMOlIGdyZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzExCisjOiBidWlsdGluL2JyYW5jaC5jOjcxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWVkIGEgbWlzbmFtZWQgYnJhbmNoICclcycgYXdheSIKIG1zZ3N0ciAiQnl0dGUgYm9ydCBuYW1uIHDDpSBlbiBmZWxha3RpZ3QgbmFtbmdpdmVuIGdyZW4gXCIlc1wiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcxNQorIzogYnVpbHRpbi9icmFuY2guYzo3MjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQnJhbmNoIHJlbmFtZWQgdG8gJXMsIGJ1dCBIRUFEIGlzIG5vdCB1cGRhdGVkISIKIG1zZ3N0ciAiR3JlbmVuIG5hbW5ieXR0IHRpbGwgJXMsIG1lbiBIRUFEIGhhciBpbnRlIHVwcGRhdGVyYXRzISIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3MjIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzI4CiBtc2dpZCAiQnJhbmNoIGlzIHJlbmFtZWQsIGJ1dCB1cGRhdGUgb2YgY29uZmlnLWZpbGUgZmFpbGVkIgogbXNnc3RyICJHcmVuZW4gbmFtbmJ5dHQsIG1lbiBtaXNzbHlja2FkZXMgdXBwZGF0ZXJhIGtvbmZpZ3VyYXRpb25zZmlsZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzM3CisjOiBidWlsdGluL2JyYW5jaC5jOjc0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWxmb3JtZWQgb2JqZWN0IG5hbWUgJXMiCiBtc2dzdHIgImZlbGZvcm1hdCBvYmpla3RuYW1uICVzIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc2MQorIzogYnVpbHRpbi9icmFuY2guYzo3NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHdyaXRlIGJyYW5jaCBkZXNjcmlwdGlvbiB0ZW1wbGF0ZTogJXMiCiBtc2dzdHIgImt1bmRlIGludGUgc2tyaXZhIGdyZW5iZXNrcml2bmluZ3NtYWxsOiAlcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk3CiBtc2dpZCAiR2VuZXJpYyBvcHRpb25zIgogbXNnc3RyICJBbGxtw6RubmEgZmxhZ2dvciIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk5CiBtc2dpZCAic2hvdyBoYXNoIGFuZCBzdWJqZWN0LCBnaXZlIHR3aWNlIGZvciB1cHN0cmVhbSBicmFuY2giCiBtc2dzdHIgInZpc2EgaGFzaCBvY2ggw6RyZW5kZXJhZCwgYW5nZSB0dsOlIGfDpW5nZXIgZsO2ciB1cHBzdHLDtm1zZ3JlbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAwCiBtc2dpZCAic3VwcHJlc3MgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyIKIG1zZ3N0ciAidW5kZXJ0cnljayBpbmZvcm1hdGlvbnNtZWRkZWxhbmRlbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCiBtc2dpZCAic2V0IHVwIHRyYWNraW5nIG1vZGUgKHNlZSBnaXQtcHVsbCgxKSkiCiBtc2dzdHIgInN0w6RsbCBpbiBzcMOlcm5pbmdzbMOkZ2UgKHNlIGdpdC1wdWxsKDEpKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAzCiBtc2dpZCAiY2hhbmdlIHVwc3RyZWFtIGluZm8iCiBtc2dzdHIgIsOkbmRyYSB1cHBzdHLDtm1zaW5mb3JtYXRpb24iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCisjOiBidWlsdGluL2JyYW5jaC5jOjgwNwogbXNnaWQgInVzZSBjb2xvcmVkIG91dHB1dCIKIG1zZ3N0ciAiYW52w6RuZCBmw6RyZ2FkIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA4CiBtc2dpZCAiYWN0IG9uIHJlbW90ZS10cmFja2luZyBicmFuY2hlcyIKIG1zZ3N0ciAiYXJiZXRhIHDDpSBmasOkcnJzcMOlcmFuZGUgZ3JlbmFyIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNSBidWlsdGluL2JyYW5jaC5jOjgxMSBidWlsdGluL2JyYW5jaC5jOjgzMgotIzogYnVpbHRpbi9icmFuY2guYzo4MzggYnVpbHRpbi9jb21taXQuYzoxNDMzIGJ1aWx0aW4vY29tbWl0LmM6MTQzNAotIzogYnVpbHRpbi9jb21taXQuYzoxNDM1IGJ1aWx0aW4vY29tbWl0LmM6MTQzNiBidWlsdGluL3RhZy5jOjQ2OAorIzogYnVpbHRpbi9icmFuY2guYzo4MTEgYnVpbHRpbi9icmFuY2guYzo4MTcgYnVpbHRpbi9icmFuY2guYzo4MzgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODQ0IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MCBidWlsdGluL2NvbW1pdC5jOjE0NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MiBidWlsdGluL2NvbW1pdC5jOjE0NjMgYnVpbHRpbi90YWcuYzo0NjgKIG1zZ2lkICJjb21taXQiCiBtc2dzdHIgImluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNiBidWlsdGluL2JyYW5jaC5jOjgxMgorIzogYnVpbHRpbi9icmFuY2guYzo4MTIgYnVpbHRpbi9icmFuY2guYzo4MTgKIG1zZ2lkICJwcmludCBvbmx5IGJyYW5jaGVzIHRoYXQgY29udGFpbiB0aGUgY29tbWl0IgogbXNnc3RyICJ2aXNhIGVuZGFzdCBncmVuYXIgc29tIGlubmVow6VsbGVyIGluY2hlY2tuaW5nZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE4CisjOiBidWlsdGluL2JyYW5jaC5jOjgyNAogbXNnaWQgIlNwZWNpZmljIGdpdC1icmFuY2ggYWN0aW9uczoiCiBtc2dzdHIgIlNwZWNpZmlrYSBnaXQtYnJhbmNoLcOldGfDpHJkZXI6IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgxOQorIzogYnVpbHRpbi9icmFuY2guYzo4MjUKIG1zZ2lkICJsaXN0IGJvdGggcmVtb3RlLXRyYWNraW5nIGFuZCBsb2NhbCBicmFuY2hlcyIKIG1zZ3N0ciAidmlzYSBiw6VkZSBmasOkcnJzcMOlcmFuZGUgb2NoIGxva2FsYSBncmVuYXIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIxCisjOiBidWlsdGluL2JyYW5jaC5jOjgyNwogbXNnaWQgImRlbGV0ZSBmdWxseSBtZXJnZWQgYnJhbmNoIgogbXNnc3RyICJ0YSBib3J0IGhlbHQgc2FtbWFuc2xhZ2VuIGdyZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIyCisjOiBidWlsdGluL2JyYW5jaC5jOjgyOAogbXNnaWQgImRlbGV0ZSBicmFuY2ggKGV2ZW4gaWYgbm90IG1lcmdlZCkiCiBtc2dzdHIgInRhIGJvcnQgZ3JlbiAow6R2ZW4gb20gaW50ZSBoZWx0IHNhbW1hbnNsYWdlbikiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIzCisjOiBidWlsdGluL2JyYW5jaC5jOjgyOQogbXNnaWQgIm1vdmUvcmVuYW1lIGEgYnJhbmNoIGFuZCBpdHMgcmVmbG9nIgogbXNnc3RyICJmbHl0dGEvdGEgYm9ydCBlbiBncmVuIG9jaCBkZXNzIHJlZmxvZ2ciCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI0CisjOiBidWlsdGluL2JyYW5jaC5jOjgzMAogbXNnaWQgIm1vdmUvcmVuYW1lIGEgYnJhbmNoLCBldmVuIGlmIHRhcmdldCBleGlzdHMiCiBtc2dzdHIgImZseXR0YS90YSBib3J0IGVuIGdyZW4sIMOkdmVuIG9tIG3DpWxldCBmaW5ucyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMxCiBtc2dpZCAibGlzdCBicmFuY2ggbmFtZXMiCiBtc2dzdHIgImxpc3RhIG5hbW4gcMOlIGdyZW5hciIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMyCiBtc2dpZCAiY3JlYXRlIHRoZSBicmFuY2gncyByZWZsb2ciCiBtc2dzdHIgInNrYXBhIGdyZW5lbnMgcmVmbG9nZyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM0CiBtc2dpZCAiZWRpdCB0aGUgZGVzY3JpcHRpb24gZm9yIHRoZSBicmFuY2giCiBtc2dzdHIgInJlZGlnZXJhIGJlc2tyaXZuaW5nIGbDtnIgZ3JlbmVuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyOQorIzogYnVpbHRpbi9icmFuY2guYzo4MzUKIG1zZ2lkICJmb3JjZSBjcmVhdGlvbiAod2hlbiBhbHJlYWR5IGV4aXN0cykiCiBtc2dzdHIgInR2aW5nYSBza2FwYW5kZSAobsOkciBkZW4gcmVkYW4gZmlubnMpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzMgorIzogYnVpbHRpbi9icmFuY2guYzo4MzgKIG1zZ2lkICJwcmludCBvbmx5IG5vdCBtZXJnZWQgYnJhbmNoZXMiCiBtc2dzdHIgInZpc2EgZW5kYXN0IGVqIHNhbW1hbnNsYWduYSBncmVuYXIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM4CisjOiBidWlsdGluL2JyYW5jaC5jOjg0NAogbXNnaWQgInByaW50IG9ubHkgbWVyZ2VkIGJyYW5jaGVzIgogbXNnc3RyICJ2aXNhIGVuZGFzdCBzYW1tYW5zbGFnbmEgZ3JlbmFyIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg0MgorIzogYnVpbHRpbi9icmFuY2guYzo4NDgKIG1zZ2lkICJsaXN0IGJyYW5jaGVzIGluIGNvbHVtbnMiCiBtc2dzdHIgInZpc2EgZ3JlbmFyIGkgc3BhbHRlciIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYxCiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgSEVBRCBhcyBhIHZhbGlkIHJlZi4iCiBtc2dzdHIgIk1pc3NseWNrYWRlcyBzbMOlIHVwcCBIRUFEIHNvbSBnaWx0aWcgcmVmZXJlbnMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYwIGJ1aWx0aW4vY2xvbmUuYzo2MzAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODY2IGJ1aWx0aW4vY2xvbmUuYzo2MjkKIG1zZ2lkICJIRUFEIG5vdCBmb3VuZCBiZWxvdyByZWZzL2hlYWRzISIKIG1zZ3N0ciAiSEVBRCBoaXR0YWRlcyBpbnRlIHVuZGVyIHJlZnMvaGVhZHMhIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg4MworIzogYnVpbHRpbi9icmFuY2guYzo4OTAKIG1zZ2lkICItLWNvbHVtbiBhbmQgLS12ZXJib3NlIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tY29sdW1uIG9jaCAtLXZlcmJvc2Ugw6RyIGlua29tcGF0aWJsYSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4ODkgYnVpbHRpbi9icmFuY2guYzo5MjgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODk2IGJ1aWx0aW4vYnJhbmNoLmM6OTM1CiBtc2dpZCAiYnJhbmNoIG5hbWUgcmVxdWlyZWQiCiBtc2dzdHIgImdyZW5uYW1uIGtyw6R2cyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MDQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTExCiBtc2dpZCAiQ2Fubm90IGdpdmUgZGVzY3JpcHRpb24gdG8gZGV0YWNoZWQgSEVBRCIKIG1zZ3N0ciAiS2FuIGludGUgYmVza3JpdmEgZnLDpW5rb3BwbGFkIEhFQUQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA5CisjOiBidWlsdGluL2JyYW5jaC5jOjkxNgogbXNnaWQgImNhbm5vdCBlZGl0IGRlc2NyaXB0aW9uIG9mIG1vcmUgdGhhbiBvbmUgYnJhbmNoIgogbXNnc3RyICJrYW4gaW50ZSByZWRpZ2VyYSBiZXNrcml2bmluZyBmw7ZyIG1lciDDpG4gZW4gZ3JlbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MTYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGNvbW1pdCBvbiBicmFuY2ggJyVzJyB5ZXQuIgogbXNnc3RyICJJbmdhIGluY2hlY2tuaW5nYXIgcMOlIGdyZW5lbiBcIiVzXCIgw6RubnUiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE5CisjOiBidWlsdGluL2JyYW5jaC5jOjkyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBicmFuY2ggbmFtZWQgJyVzJy4iCiBtc2dzdHIgIkluZ2VuIGdyZW4gdmlkIG5hbW5ldCBcIiVzXCIuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkzNAorIzogYnVpbHRpbi9icmFuY2guYzo5NDEKIG1zZ2lkICJ0b28gbWFueSBicmFuY2hlcyBmb3IgYSByZW5hbWUgb3BlcmF0aW9uIgogbXNnc3RyICJmw7ZyIG3DpW5nYSBncmVuYXIgZsO2ciBuYW1uYnl0ZSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MzkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQ2CiBtc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgdG8gc2V0IG5ldyB1cHN0cmVhbSIKIG1zZ3N0ciAiZsO2ciBtw6VuZ2EgZ3JlbmFyIGbDtnIgYXR0IGJ5dGEgdXBwc3Ryw7ZtIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk0MworIzogYnVpbHRpbi9icmFuY2guYzo5NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogImNvdWxkIG5vdCBzZXQgdXBzdHJlYW0gb2YgSEVBRCB0byAlcyB3aGVuIGl0IGRvZXMgbm90IHBvaW50IHRvIGFueSBicmFuY2guIgogbXNnc3RyICIiCiAia3VuZGUgaW50ZSBzw6R0dGEgdXBwc3Ryw7ZtIGbDtnIgSEVBRCB0aWxsICVzIG7DpHIgZGV0IGludGUgcGVrYXIgbW90IG7DpWdvbiBncmVuLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NDYgYnVpbHRpbi9icmFuY2guYzo5NjggYnVpbHRpbi9icmFuY2guYzo5OTAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTUzIGJ1aWx0aW4vYnJhbmNoLmM6OTc1IGJ1aWx0aW4vYnJhbmNoLmM6OTk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHN1Y2ggYnJhbmNoICclcyciCiBtc2dzdHIgIm9rw6RuZCBncmVuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NTAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICJncmVuZW4gXCIlc1wiIGZpbm5zIGludGUiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTYyCisjOiBidWlsdGluL2JyYW5jaC5jOjk2OQogbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHVuc2V0IHVwc3RyZWFtIgogbXNnc3RyICJmw7ZyIG3DpW5nYSBncmVuYXIgZsO2ciBhdHQgdGEgYm9ydCB1cHBzdHLDtm0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTY2CisjOiBidWlsdGluL2JyYW5jaC5jOjk3MwogbXNnaWQgImNvdWxkIG5vdCB1bnNldCB1cHN0cmVhbSBvZiBIRUFEIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCiBtc2dzdHIgIiIKICJrdW5kZSBpbnRlIHRhIGJvcnQgdXBwc3Ryw7ZtIGbDtnIgSEVBRCBuw6RyIGRldCBpbnRlIHBla2FyIG1vdCBuw6Vnb24gZ3Jlbi4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTcyCisjOiBidWlsdGluL2JyYW5jaC5jOjk3OQogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggJyVzJyBoYXMgbm8gdXBzdHJlYW0gaW5mb3JtYXRpb24iCiBtc2dzdHIgIkdyZW5lbiBcIiVzXCIgaGFyIGluZ2VuIHVwcHN0csO2bXNpbmZvcm1hdGlvbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5ODcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTk0CiBtc2dpZCAiaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBjcmVhdGUgJ0hFQUQnIG1hbnVhbGx5IgogbXNnc3RyICJrYW4gaW50ZSBza2FwYSBcIkhFQURcIiBtYW51ZWxsdCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5OTMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAwMAogbXNnaWQgIi1hIGFuZCAtciBvcHRpb25zIHRvICdnaXQgYnJhbmNoJyBkbyBub3QgbWFrZSBzZW5zZSB3aXRoIGEgYnJhbmNoIG5hbWUiCiBtc2dzdHIgIiIKICJmbGFnZ29ybmEgLWEgb2NoIC1yIHDDpSBcImdpdCBicmFuY2hcIiBrYW4gaW50ZSBhbmdlcyB0aWxsc2FtbWFucyBtZWQgZXR0ICIKICJncmVubmFtbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5OTYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAwMwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIC0tc2V0LXVwc3RyZWFtIGZsYWcgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBDb25zaWRlciB1c2luZyAtLSIKQEAgLTI5MDcsNyArMzA4Miw3IEBACiAiRmxhZ2dhbiAtLXNldC11cHN0cmVhbSByZWtvbW1lbmRlcmFzIGVqIG9jaCBrb21tZXIgdGFzIGJvcnQuIEFudsOkbmQgLS10cmFjayAiCiAiZWxsZXIgLS1zZXQtdXBzdHJlYW0tdG9cbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxMDEzCisjOiBidWlsdGluL2JyYW5jaC5jOjEwMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgpAQCAtMjkxOCwxMiArMzA5MywxMiBAQAogIk9tIGR1IHZpbGwgZ8O2cmEgc8OlIGF0dCBcIiVzXCIgc3DDpXJhciBcIiVzXCIgZ8O2ciBkdSBzw6UgaMOkcjpcbiIKICJcbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxMDE0CisjOiBidWlsdGluL2JyYW5jaC5jOjEwMjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgIGdpdCBicmFuY2ggLWQgJXNcbiIKIG1zZ3N0ciAiICAgIGdpdCBicmFuY2ggLWQgJXNcbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxMDE1CisjOiBidWlsdGluL2JyYW5jaC5jOjEwMjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgIGdpdCBicmFuY2ggLS1zZXQtdXBzdHJlYW0tdG8gJXNcbiIKIG1zZ3N0ciAiICAgIGdpdCBicmFuY2ggLS1zZXQtdXBzdHJlYW0tdG8gJXNcbiIKQEAgLTI5NDEsNDMgKzMxMTYsNDMgQEAKIG1zZ2lkICJOZWVkIGEgcmVwb3NpdG9yeSB0byB1bmJ1bmRsZS4iCiBtc2dzdHIgIkJlaMO2dmVyIGV0dCBhcmtpdiBmw7ZyIGF0dCBwYWNrYSB1cHAgZXR0IHBha2V0IChidW5kbGUpLiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI4NQorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMxMgogbXNnaWQgImdpdCBjYXQtZmlsZSAoLXR8LXN8LWV8LXB8PHR5cGU+fC0tdGV4dGNvbnYpIDxvYmplY3Q+IgogbXNnc3RyICJnaXQgY2F0LWZpbGUgKC10fC1zfC1lfC1wfDx0eXA+fC0tdGV4dGNvbnYpIDxvYmpla3Q+IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6Mjg2CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzEzCiBtc2dpZCAiZ2l0IGNhdC1maWxlICgtLWJhdGNofC0tYmF0Y2gtY2hlY2spIDwgPGxpc3Rfb2Zfb2JqZWN0cz4iCiBtc2dzdHIgImdpdCBjYXQtZmlsZSAoLS1iYXRjaHwtLWJhdGNoLWNoZWNrKSA8IDxvYmpla3RsaXN0YT4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjMKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTAKIG1zZ2lkICI8dHlwZT4gY2FuIGJlIG9uZSBvZjogYmxvYiwgdHJlZSwgY29tbWl0LCB0YWciCiBtc2dzdHIgIjx0eXA+IGthbiB2YXJhIGVuIGF2OiBibG9iLCB0cmVlLCBjb21taXQsIHRhZyIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyNAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1MQogbXNnaWQgInNob3cgb2JqZWN0IHR5cGUiCiBtc2dzdHIgInZpc2Egb2JqZWt0dHlwIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MzI1CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzUyCiBtc2dpZCAic2hvdyBvYmplY3Qgc2l6ZSIKIG1zZ3N0ciAidmlzYSBvYmpla3RzdG9ybGVrIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MzI3CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzU0CiBtc2dpZCAiZXhpdCB3aXRoIHplcm8gd2hlbiB0aGVyZSdzIG5vIGVycm9yIgogbXNnc3RyICJhdnNsdXRhIG1lZCBub2xsIG7DpHIgZGV0IGludGUgdXBwc3TDpXR0IG7DpWdvdCBmZWwiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjgKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTUKIG1zZ2lkICJwcmV0dHktcHJpbnQgb2JqZWN0J3MgY29udGVudCIKIG1zZ3N0ciAidmlzYSBvYmpla3RldHMgaW5uZWjDpWxsIHNueWdndCIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzMAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1NwogbXNnaWQgImZvciBibG9iIG9iamVjdHMsIHJ1biB0ZXh0Y29udiBvbiBvYmplY3QncyBjb250ZW50IgogbXNnc3RyICJmw7ZyIGJsb2Itb2JqZWt0LCBrw7ZyIHRleHRjb252IHDDpSBvYmpla3RldHMgaW5uZWjDpWxsIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MzMyCisjOiBidWlsdGluL2NhdC1maWxlLmM6MzU5CiBtc2dpZCAic2hvdyBpbmZvIGFuZCBjb250ZW50IG9mIG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJ2aXNhIGluZm9ybWF0aW9uIG9jaCBpbm5laMOlbGwgZsO2ciBvYmpla3Qgc29tIGxpc3RhcyBww6Ugc3RhbmRhcmQgaW4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzUKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNjIKIG1zZ2lkICJzaG93IGluZm8gYWJvdXQgb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgInZpc2EgaW5mb3JtYXRpb24gZsO2ciBvYmpla3Qgc29tIGxpc3RhcyBww6Ugc3RhbmRhcmQgaW4iCiAKQEAgLTMwMDIsMTAgKzMxNzcsMTAgQEAKIG1zZ3N0ciAibMOkcyBmaWxuYW1uIGZyw6VuIHN0YW5kYXJkIGluIgogCiAjOiBidWlsdGluL2NoZWNrLWF0dHIuYzoyMyBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjI0Ci1tc2dpZCAiaW5wdXQgcGF0aHMgYXJlIHRlcm1pbmF0ZWQgYnkgYSBudWxsIGNoYXJhY3RlciIKLW1zZ3N0ciAic8O2a3bDpGdhciBhdmRlbGFzIG1lZCBudWxsLXRlY2tlbiIKK21zZ2lkICJ0ZXJtaW5hdGUgaW5wdXQgYW5kIG91dHB1dCByZWNvcmRzIGJ5IGEgTlVMIGNoYXJhY3RlciIKK21zZ3N0ciAiYXZzbHV0YSBpbi0gb2NoIHV0ZGF0YXBvc3RlciBtZWQgTlVMLXRlY2tlbiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOCBidWlsdGluL2NoZWNrb3V0LmM6MTA1NCBidWlsdGluL2djLmM6MTc3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDkwIGJ1aWx0aW4vZ2MuYzoyNTkKIG1zZ2lkICJzdXBwcmVzcyBwcm9ncmVzcyByZXBvcnRpbmciCiBtc2dzdHIgInVuZGVydHJ5Y2sgZsO2cmxvcHBzcmFwcG9ydGVyaW5nIgogCkBAIC0zMDEzLDI3ICszMTg4LDMxIEBACiBtc2dpZCAic2hvdyBub24tbWF0Y2hpbmcgaW5wdXQgcGF0aHMiCiBtc2dzdHIgInZpc2EgaW5kYXRhc8O2a3bDpGdhciBzb20gaW50ZSB0csOkZmZhcyIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDMKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MjgKK21zZ2lkICJpZ25vcmUgaW5kZXggd2hlbiBjaGVja2luZyIKK21zZ3N0ciAiaWdub3JlcmEgaW5kZXggdmlkIGtvbnRyb2xsIgorCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NAogbXNnaWQgImNhbm5vdCBzcGVjaWZ5IHBhdGhuYW1lcyB3aXRoIC0tc3RkaW4iCiBtc2dzdHIgImthbiBpbnRlIGFuZ2Ugc8O2a3bDpGdzbmFtbiBtZWQgLS1zdGRpbiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDYKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3CiBtc2dpZCAiLXogb25seSBtYWtlcyBzZW5zZSB3aXRoIC0tc3RkaW4iCiBtc2dzdHIgIi16IGthbiBlbmRhc3QgYW52w6RuZGFzIHRpbGxzYW1tYW5zIG1lZCAtLXN0ZGluIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0OAorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTkKIG1zZ2lkICJubyBwYXRoIHNwZWNpZmllZCIKIG1zZ3N0ciAiaW5nZW4gc8O2a3bDpGcgYW5nYXZzIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MgorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjMKIG1zZ2lkICItLXF1aWV0IGlzIG9ubHkgdmFsaWQgd2l0aCBhIHNpbmdsZSBwYXRobmFtZSIKIG1zZ3N0ciAiLS1xdWlldCBrYW4gZW5kYXN0IGFudsOkbmRhcyBtZWQgZXR0IGVua2VsdCBzw7ZrdsOkZ3NuYW1uIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NAorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjUKIG1zZ2lkICJjYW5ub3QgaGF2ZSBib3RoIC0tcXVpZXQgYW5kIC0tdmVyYm9zZSIKIG1zZ3N0ciAia2FuIGludGUgYW52w6RuZGEgYsOlZGUgLS1xdWlldCBvY2ggLS12ZXJib3NlIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjgKIG1zZ2lkICItLW5vbi1tYXRjaGluZyBpcyBvbmx5IHZhbGlkIHdpdGggLS12ZXJib3NlIgogbXNnc3RyICItLW5vbi1tYXRjaGluZyDDpHIgZW5kYXN0IGdpbHRpZyBtZWQgLS12ZXJib3NlIgogCkBAIC0zMTA2LDEwNiArMzI4NSwxMDYgQEAKIG1zZ2lkICJnaXQgY2hlY2tvdXQgW29wdGlvbnNdIFs8YnJhbmNoPl0gLS0gPGZpbGU+Li4uIgogbXNnc3RyICJnaXQgY2hlY2tvdXQgW2ZsYWdnb3JdIFs8Z3Jlbj5dIC0tIDxmaWw+Li4uIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTQgYnVpbHRpbi9jaGVja291dC5jOjE0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBvdXIgdmVyc2lvbiIKIG1zZ3N0ciAic8O2a3bDpGdlbiBcIiVzXCIgaGFyIGludGUgdsOlciB2ZXJzaW9uIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYgYnVpbHRpbi9jaGVja291dC5jOjE0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSB0aGVpciB2ZXJzaW9uIgogbXNnc3RyICJzw7ZrdsOkZ2VuIFwiJXNcIiBoYXIgaW50ZSBkZXJhcyB2ZXJzaW9uIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTM1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTMyCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIGFsbCBuZWNlc3NhcnkgdmVyc2lvbnMiCiBtc2dzdHIgInPDtmt2w6RnZW4gXCIlc1wiIGlubmVow6VsbGVyIGludGUgYWxsYSBuw7ZkdsOkbmRpZ2EgdmVyc2lvbmVyIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTc5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTc2CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIG5lY2Vzc2FyeSB2ZXJzaW9ucyIKIG1zZ3N0ciAic8O2a3bDpGdlbiBcIiVzXCIgaW5uZWjDpWxsZXIgaW50ZSBuw7ZkdsOkbmRpZ2EgdmVyc2lvbmVyIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTk2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTkzCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJzogY2Fubm90IG1lcmdlIgogbXNnc3RyICJzw7ZrdsOkZyBcIiVzXCI6IGthbiBpbnRlIHNsw6UgaWhvcCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjIxMworIzogYnVpbHRpbi9jaGVja291dC5jOjIxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmFibGUgdG8gYWRkIG1lcmdlIHJlc3VsdCBmb3IgJyVzJyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBsw6RnZ2EgdGlsbCBzYW1tYW5zbGFnbmluZ3NyZXN1bHRhdCBmw7ZyIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjIzNyBidWlsdGluL2NoZWNrb3V0LmM6MjQwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDMKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzIgYnVpbHRpbi9jaGVja291dC5jOjIzNSBidWlsdGluL2NoZWNrb3V0LmM6MjM4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCB1cGRhdGluZyBwYXRocyIKIG1zZ3N0ciAiXCIlc1wiIGthbiBpbnRlIGFudsOkbmRhcyB2aWQgdXBwZGF0ZXJpbmcgYXYgc8O2a3bDpGdhciIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjI0OSBidWlsdGluL2NoZWNrb3V0LmM6MjUyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ0IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoICVzIgogbXNnc3RyICJcIiVzXCIga2FuIGludGUgYW52w6RuZGFzIG1lZCAlcyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjI1NQorIzogYnVpbHRpbi9jaGVja291dC5jOjI1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgdXBkYXRlIHBhdGhzIGFuZCBzd2l0Y2ggdG8gYnJhbmNoICclcycgYXQgdGhlIHNhbWUgdGltZS4iCiBtc2dzdHIgIkthbiBpbnRlIHVwcGRhdGVyYSBzw7ZrdsOkZ2FyIG9jaCB2w6R4bGEgdGlsbCBncmVuZW4gXCIlc1wiIHNhbXRpZGlndC4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNjYgYnVpbHRpbi9jaGVja291dC5jOjQ1OAorIzogYnVpbHRpbi9jaGVja291dC5jOjI2MSBidWlsdGluL2NoZWNrb3V0LmM6NDUxCiBtc2dpZCAiY29ycnVwdCBpbmRleCBmaWxlIgogbXNnc3RyICJpbmRleGZpbGVuIMOkciB0cmFzaWciCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzozMjkgYnVpbHRpbi9jaGVja291dC5jOjMzNgorIzogYnVpbHRpbi9jaGVja291dC5jOjMyMiBidWlsdGluL2NoZWNrb3V0LmM6MzI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBpcyB1bm1lcmdlZCIKIG1zZ3N0ciAic8O2a3bDpGdlbiBcIiVzXCIgaGFyIGludGUgc2xhZ2l0cyBpaG9wIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NDgwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NDczCiBtc2dpZCAieW91IG5lZWQgdG8gcmVzb2x2ZSB5b3VyIGN1cnJlbnQgaW5kZXggZmlyc3QiCiBtc2dzdHIgImR1IG3DpXN0ZSBsw7ZzYSBkaXR0IGJlZmludGxpZ2EgaW5kZXggZsO2cnN0IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjAxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NTk0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbiBub3QgZG8gcmVmbG9nIGZvciAnJXMnXG4iCiBtc2dzdHIgIkthbiBpbnRlIHNrYXBhIHJlZmVyZW5zbG9nIGbDtnIgXCIlc1wiXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MzkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MzIKIG1zZ2lkICJIRUFEIGlzIG5vdyBhdCIKIG1zZ3N0ciAiSEVBRCDDpHIgbnUgcMOlIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjM5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlc2V0IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIsOFdGVyc3TDpGxsIGdyZW4gXCIlc1wiXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWxyZWFkeSBvbiAnJXMnXG4iCiBtc2dzdHIgIlJlZGFuIHDDpSBcIiVzXCJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1MworIzogYnVpbHRpbi9jaGVja291dC5jOjY0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBhbmQgcmVzZXQgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAiVsOkeGxhZGUgdGlsbCBvY2ggbm9sbHN0w6RsbGRlIGdyZW5lbiBcIiVzXCJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1NSBidWlsdGluL2NoZWNrb3V0LmM6OTk3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGEgbmV3IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIlbDpHhsYWRlIHRpbGwgZW4gbnkgZ3JlbiBcIiVzXCJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1NworIzogYnVpbHRpbi9jaGVja291dC5jOjY1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICJWw6R4bGFkZSB0aWxsIGdyZW5lbiBcIiVzXCJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjcxMworIzogYnVpbHRpbi9jaGVja291dC5jOjcwNgogIywgYy1mb3JtYXQKIG1zZ2lkICIgLi4uIGFuZCAlZCBtb3JlLlxuIgogbXNnc3RyICIgLi4uIG9jaCAlZCB0aWxsLlxuIgogCiAjLiBUaGUgc2luZ3VsYXIgdmVyc2lvbgotIzogYnVpbHRpbi9jaGVja291dC5jOjcxOQorIzogYnVpbHRpbi9jaGVja291dC5jOjcxMgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiV2FybmluZzogeW91IGFyZSBsZWF2aW5nICVkIGNvbW1pdCBiZWhpbmQsIG5vdCBjb25uZWN0ZWQgdG9cbiIKQEAgLTMyMjgsNyArMzQwNyw3IEBACiAiXG4iCiAiJXNcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjczNworIzogYnVpbHRpbi9jaGVja291dC5jOjczMAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiSWYgeW91IHdhbnQgdG8ga2VlcCB0aGVtIGJ5IGNyZWF0aW5nIGEgbmV3IGJyYW5jaCwgdGhpcyBtYXkgYmUgYSBnb29kIHRpbWVcbiIKQEAgLTMyNDMsMTM2ICszNDIyLDE0MCBAQAogIiBnaXQgYnJhbmNoIG55dHRfZ3Jlbm5hbW4gJXNcbiIKICJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc2NworIzogYnVpbHRpbi9jaGVja291dC5jOjc2MAogbXNnaWQgImludGVybmFsIGVycm9yIGluIHJldmlzaW9uIHdhbGsiCiBtc2dzdHIgImludGVybnQgZmVsIHZpZCBnZW5vbWfDpW5nIGF2IHJldmlzaW9uZXIgKHJldmlzaW9uIHdhbGspIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzcxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzY0CiBtc2dpZCAiUHJldmlvdXMgSEVBRCBwb3NpdGlvbiB3YXMiCiBtc2dzdHIgIlRpZGlnYXJlIHBvc2l0aW9uIGbDtnIgSEVBRCB2YXIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTggYnVpbHRpbi9jaGVja291dC5jOjk5MgorIzogYnVpbHRpbi9jaGVja291dC5jOjc5MSBidWlsdGluL2NoZWNrb3V0LmM6MTAyOAogbXNnaWQgIllvdSBhcmUgb24gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgIkR1IMOkciBww6UgZW4gZ3JlbiBzb20gw6RubnUgaW50ZSDDpHIgZsO2ZGQiCiAKLSMuIGNhc2UgKDEpCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTI4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6OTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm9ubHkgb25lIHJlZmVyZW5jZSBleHBlY3RlZCwgJWQgZ2l2ZW4uIgorbXNnc3RyICJlbmRhc3QgZW4gcmVmZXJlbnMgZsO2cnbDpG50YWRlcywgJWQgZ2F2cy4iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCByZWZlcmVuY2U6ICVzIgogbXNnc3RyICJmZWxha3RpZyByZWZlcmVuczogJXMiCiAKICMuIGNhc2UgKDEpOiB3YW50IGEgdHJlZQotIzogYnVpbHRpbi9jaGVja291dC5jOjk2NworIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDMKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVmZXJlbmNlIGlzIG5vdCBhIHRyZWU6ICVzIgogbXNnc3RyICJyZWZlcmVuc2VuIMOkciBpbnRlIGV0dCB0csOkZDogJXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0MgogbXNnaWQgInBhdGhzIGNhbm5vdCBiZSB1c2VkIHdpdGggc3dpdGNoaW5nIGJyYW5jaGVzIgogbXNnc3RyICJzw7ZrdsOkZ2FyIGthbiBpbnRlIGFudsOkbmRhcyB2aWQgYnl0ZSBhdiBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwOSBidWlsdGluL2NoZWNrb3V0LmM6MTAxMworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDUgYnVpbHRpbi9jaGVja291dC5jOjEwNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKIG1zZ3N0ciAiXCIlc1wiIGthbiBpbnRlIGFudsOkbmRhcyB2aWQgYnl0ZSBhdiBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAxNyBidWlsdGluL2NoZWNrb3V0LmM6MTAyMCBidWlsdGluL2NoZWNrb3V0LmM6MTAyNQotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMjgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU2IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NAogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggJyVzJyIKIG1zZ3N0ciAiXCIlc1wiIGthbiBpbnRlIGFudsOkbmRhcyBtZWQgXCIlc1wiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAzMworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHN3aXRjaCBicmFuY2ggdG8gYSBub24tY29tbWl0ICclcyciCiBtc2dzdHIgIkthbiBpbnRlIHbDpHhsYSBncmVuIHRpbGwgaWNrZS1pbmNoZWNrbmluZ2VuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTUgYnVpbHRpbi9jaGVja291dC5jOjEwNTcgYnVpbHRpbi9jbG9uZS5jOjg5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5MSBidWlsdGluL2NoZWNrb3V0LmM6MTA5MyBidWlsdGluL2Nsb25lLmM6ODgKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTY5IGJ1aWx0aW4vcmVtb3RlLmM6MTcxCiBtc2dpZCAiYnJhbmNoIgogbXNnc3RyICJncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTIKIG1zZ2lkICJjcmVhdGUgYW5kIGNoZWNrb3V0IGEgbmV3IGJyYW5jaCIKIG1zZ3N0ciAic2thcGEgb2NoIGNoZWNrYSB1dCBlbiBueSBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTQKIG1zZ2lkICJjcmVhdGUvcmVzZXQgYW5kIGNoZWNrb3V0IGEgYnJhbmNoIgogbXNnc3RyICJza2FwYS9ub2xsc3TDpGxsIG9jaCBjaGVja2EgdXQgZW4gZ3JlbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDk1CiBtc2dpZCAiY3JlYXRlIHJlZmxvZyBmb3IgbmV3IGJyYW5jaCIKIG1zZ3N0ciAic2thcGEgcmVmbG9nZyBmw7ZyIG55IGdyZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5NgogbXNnaWQgImRldGFjaCB0aGUgSEVBRCBhdCBuYW1lZCBjb21taXQiCiBtc2dzdHIgImtvcHBsYSBmcsOlbiBIRUFEIHZpZCBuYW1uZ2l2ZW4gaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5NwogbXNnaWQgInNldCB1cHN0cmVhbSBpbmZvIGZvciBuZXcgYnJhbmNoIgogbXNnc3RyICJzw6R0dCB1cHBzdHLDtm1zaW5mb3JtYXRpb24gZsO2ciBueSBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTkKIG1zZ2lkICJuZXcgYnJhbmNoIgogbXNnc3RyICJueSBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTkKIG1zZ2lkICJuZXcgdW5wYXJlbnRlZCBicmFuY2giCiBtc2dzdHIgIm55IGdyZW4gdXRhbiBmw7Zyw6RsZGVyIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NAorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDAKIG1zZ2lkICJjaGVja291dCBvdXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgImNoZWNrYSB1dCB2w6VyIHZlcnNpb24gZsO2ciBlaiBzYW1tYW5zbGFnbmEgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwMgogbXNnaWQgImNoZWNrb3V0IHRoZWlyIHZlcnNpb24gZm9yIHVubWVyZ2VkIGZpbGVzIgogbXNnc3RyICJjaGVja2EgdXQgZGVyYXMgdmVyc2lvbiBmw7ZyIGVqIHNhbW1hbnNsYWduYSBmaWxlciIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTA0CiBtc2dpZCAiZm9yY2UgY2hlY2tvdXQgKHRocm93IGF3YXkgbG9jYWwgbW9kaWZpY2F0aW9ucykiCiBtc2dzdHIgInR2aW5nYSB1dGNoZWNrbmluZyAoa2FzdGEgYm9ydCBsb2thbGEgw6RuZHJpbmdhcikiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwNQogbXNnaWQgInBlcmZvcm0gYSAzLXdheSBtZXJnZSB3aXRoIHRoZSBuZXcgYnJhbmNoIgogbXNnc3RyICJ1dGbDtnIgZW4gMy12w6Rnc3NhbW1hbnNsYWduaW5nIGbDtnIgZGVuIG55YSBncmVuZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcwIGJ1aWx0aW4vbWVyZ2UuYzoyMzIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTA2IGJ1aWx0aW4vbWVyZ2UuYzoyMzIKIG1zZ2lkICJ1cGRhdGUgaWdub3JlZCBmaWxlcyAoZGVmYXVsdCkiCiBtc2dzdHIgInVwcGRhdGVyYSBpZ25vcmVyYWRlIGZpbGVyIChzdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcxIGJ1aWx0aW4vbG9nLmM6MTIwOCBwYXJzZS1vcHRpb25zLmg6MjQ5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwNyBidWlsdGluL2xvZy5jOjEyMjggcGFyc2Utb3B0aW9ucy5oOjI1MQogbXNnaWQgInN0eWxlIgogbXNnc3RyICJzdGlsIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MgorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDgKIG1zZ2lkICJjb25mbGljdCBzdHlsZSAobWVyZ2Ugb3IgZGlmZjMpIgogbXNnc3RyICJrb25mbGlrdHN0aWwgKG1lcmdlIGVsbGVyIGRpZmYzKSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTExCiBtc2dpZCAiZG8gbm90IGxpbWl0IHBhdGhzcGVjcyB0byBzcGFyc2UgZW50cmllcyBvbmx5IgogbXNnc3RyICJiZWdyw6Ruc2EgaW50ZSBzw7ZrdsOkZ2FyIHRpbGwgZW5kYXN0IGdsZXNhIHBvc3RlciIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTEzCiBtc2dpZCAic2Vjb25kIGd1ZXNzICdnaXQgY2hlY2tvdXQgbm8tc3VjaC1icmFuY2gnIgogbXNnc3RyICJmw7ZydXRzcMOlIFwiZ2l0IGNoZWNrb3V0IGdyZW4tc2FrbmFzXCIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEzNgogbXNnaWQgIi1iLCAtQiBhbmQgLS1vcnBoYW4gYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKIG1zZ3N0ciAiLWIsIC1CIG9jaCAtLW9ycGhhbiDDpHIgw7Ztc2VzaWRpZ3QgdXRlc2x1dGFuZGUiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTE4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1MwogbXNnaWQgIi0tdHJhY2sgbmVlZHMgYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiLS10cmFjayBiZWjDtnZlciBldHQgbmFtbiBww6UgZW4gZ3JlbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMjUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYwCiBtc2dpZCAiTWlzc2luZyBicmFuY2ggbmFtZTsgdHJ5IC1iIgogbXNnc3RyICJHcmVubmFtbiBzYWtuYXM7IGbDtnJzw7ZrIG1lZCAtYiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNjAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTk3CiBtc2dpZCAiaW52YWxpZCBwYXRoIHNwZWNpZmljYXRpb24iCiBtc2dzdHIgImZlbGFrdGlnIHPDtmt2w6Rnc2FuZ2l2ZWxzZSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNjcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMjA0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDYW5ub3QgdXBkYXRlIHBhdGhzIGFuZCBzd2l0Y2ggdG8gYnJhbmNoICclcycgYXQgdGhlIHNhbWUgdGltZS5cbiIKQEAgLTMzODEsMTIgKzM1NjQsMTIgQEAKICJLYW4gaW50ZSB1cHBkYXRlcmEgc8O2a3bDpGdhciBvY2ggdsOkeGxhIHRpbGwgZ3JlbmVuIFwiJXNcIiBzYW10aWRpZ3QuXG4iCiAiVmlsbGUgZHUgY2hlY2thIHV0IFwiJXNcIiBzb20gaW50ZSBrYW4gbMO2c2FzIHNvbSBlbiB1dGNoZWNrbmluZz8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTcyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTIwOQogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgY2hlY2tvdXQ6IC0tZGV0YWNoIGRvZXMgbm90IHRha2UgYSBwYXRoIGFyZ3VtZW50ICclcyciCiBtc2dzdHIgImdpdCBjaGVja291dDogLS1kZXRhY2ggdGFyIGludGUgZW4gc8O2a3bDpGcgc29tIGFyZ3VtZW50IFwiJXNcIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNzYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMjEzCiBtc2dpZCAiIgogImdpdCBjaGVja291dDogLS1vdXJzLy0tdGhlaXJzLCAtLWZvcmNlIGFuZCAtLW1lcmdlIGFyZSBpbmNvbXBhdGlibGUgd2hlblxuIgogImNoZWNraW5nIG91dCBvZiB0aGUgaW5kZXguIgpAQCAtMzM5NCwzOSArMzU3NywzOSBAQAogImdpdCBjaGVja291dDogLS1vdXJzLy0tdGhlaXJzLCAtLWZvcmNlIG9jaCAtLW1lcmdlIMOkciBpbmtvbXBhdGlibGEgbsOkclxuIgogImR1IGNoZWNrYXIgdXQgZnLDpW4gaW5kZXhldC4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNQorIzogYnVpbHRpbi9jbGVhbi5jOjI2CiBtc2dpZCAiIgogImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIKIG1zZ3N0ciAiIgogImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxtw7Zuc3Rlcj5dIFsteCB8IC1YXSBbLS1dICIKICI8c8O2a3bDpGdhcj4uLi4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyOQorIzogYnVpbHRpbi9jbGVhbi5jOjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nICVzXG4iCiBtc2dzdHIgIlRhciBib3J0ICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzozMAorIzogYnVpbHRpbi9jbGVhbi5jOjMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvdWxkIHJlbW92ZSAlc1xuIgogbXNnc3RyICJTa3VsbGUgdGEgYm9ydCAlc1xuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MzEKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMgogIywgYy1mb3JtYXQKIG1zZ2lkICJTa2lwcGluZyByZXBvc2l0b3J5ICVzXG4iCiBtc2dzdHIgIkhvcHBhciDDtnZlciBhcmtpdmV0ICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzozMgorIzogYnVpbHRpbi9jbGVhbi5jOjMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvdWxkIHNraXAgcmVwb3NpdG9yeSAlc1xuIgogbXNnc3RyICJTa3VsbGUgaG9wcGEgw7Z2ZXIgYXJraXZldCAlc1xuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MzMKKyM6IGJ1aWx0aW4vY2xlYW4uYzozNAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcmVtb3ZlICVzIgogbXNnc3RyICJtaXNzbHlja2FkZXMgdGEgYm9ydCAlcyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI5MworIzogYnVpbHRpbi9jbGVhbi5jOjI5NAogbXNnaWQgIiIKICJQcm9tcHQgaGVscDpcbiIKICIxICAgICAgICAgIC0gc2VsZWN0IGEgbnVtYmVyZWQgaXRlbVxuIgpAQCAtMzQzOCw3ICszNjIxLDcgQEAKICJmb28gICAgICAgIC0gbWFya2VyYSBwb3N0IGJhc2VyYWQgcMOlIHVuaWt0IHByZWZpeFxuIgogIiAgICAgICAgICAgLSAodG9tdCkgbWFya2VyYSBpbmdlbnRpbmciCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyOTcKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTgKIG1zZ2lkICIiCiAiUHJvbXB0IGhlbHA6XG4iCiAiMSAgICAgICAgICAtIHNlbGVjdCBhIHNpbmdsZSBpdGVtXG4iCkBAIC0zNDU4LDM1ICszNjQxLDM1IEBACiAiKiAgICAgICAgICAtIHbDpGxqIGFsbGEgcG9zdGVyXG4iCiAiICAgICAgICAgICAtICh0b210KSBhdnNsdXRhIG1hcmtlcmluZyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjUxNQorIzogYnVpbHRpbi9jbGVhbi5jOjUxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJIdWggKCVzKT8iCiBtc2dzdHIgIlZhZMOlICglcyk/IgogCi0jOiBidWlsdGluL2NsZWFuLmM6NjU4CisjOiBidWlsdGluL2NsZWFuLmM6NjU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIklucHV0IGlnbm9yZSBwYXR0ZXJucz4+ICIKIG1zZ3N0ciAiQW5nZSBpZ25vcmVyaW5nc23Dtm5zdGVyPj4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo2OTUKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2OTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiV0FSTklORzogQ2Fubm90IGZpbmQgaXRlbXMgbWF0Y2hlZCBieTogJXMiCiBtc2dzdHIgIlZBUk5JTkc6IEhpdHRhciBpbnRlIHBvc3RlciBzb20gbW90c3ZhcmFyOiAlcyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjcxNgorIzogYnVpbHRpbi9jbGVhbi5jOjcxNwogbXNnaWQgIlNlbGVjdCBpdGVtcyB0byBkZWxldGUiCiBtc2dzdHIgIlbDpGxqIHBvc3RlciBhdHQgdGEgYm9ydCIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjc1NgorIzogYnVpbHRpbi9jbGVhbi5jOjc1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW1vdmUgJXM/ICIKIG1zZ3N0ciAidGEgYm9ydCAlcz8iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo3ODEKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3ODIKIG1zZ2lkICJCeWUuIgogbXNnc3RyICJIZWogZMOlLiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjc4OQorIzogYnVpbHRpbi9jbGVhbi5jOjc5MAogbXNnaWQgIiIKICJjbGVhbiAgICAgICAgICAgICAgIC0gc3RhcnQgY2xlYW5pbmdcbiIKICJmaWx0ZXIgYnkgcGF0dGVybiAgIC0gZXhjbHVkZSBpdGVtcyBmcm9tIGRlbGV0aW9uXG4iCkBAIC0zNTA0LDIxICszNjg3LDIxIEBACiAiaGVscCAgICAgICAgICAgICAgICAtIGRlbm5hIHNrw6RybVxuIgogIj8gICAgICAgICAgICAgICAgICAgLSBoasOkbHAgZsO2ciBrb21tYW5kb3ZhbCIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjgxNgorIzogYnVpbHRpbi9jbGVhbi5jOjgxNwogbXNnaWQgIioqKiBDb21tYW5kcyAqKioiCiBtc2dzdHIgIioqKiBLb21tYW5kb24gKioqIgogCi0jOiBidWlsdGluL2NsZWFuLmM6ODE3CisjOiBidWlsdGluL2NsZWFuLmM6ODE4CiBtc2dpZCAiV2hhdCBub3ciCiBtc2dzdHIgIlZhZCBudSIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjgyNQorIzogYnVpbHRpbi9jbGVhbi5jOjgyNgogbXNnaWQgIldvdWxkIHJlbW92ZSB0aGUgZm9sbG93aW5nIGl0ZW06IgogbXNnaWRfcGx1cmFsICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtczoiCiBtc2dzdHJbMF0gIlNrdWxsZSB0YSBib3J0IGbDtmxqYW5kZSBwb3N0OiIKIG1zZ3N0clsxXSAiU2t1bGxlIHRhIGJvcnQgZsO2bGphbmRlIHBvc3RlcjoiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo4NDIKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NDMKIG1zZ2lkICJObyBtb3JlIGZpbGVzIHRvIGNsZWFuLCBleGl0aW5nLiIKIG1zZ3N0ciAiSW5nYSBmbGVyIGZpbGVyIGF0dCBzdMOkZGEsIGF2c2x1dGFyLiIKIApAQCAtMzUzOCw4ICszNzIxLDggQEAKIG1zZ2lkICJyZW1vdmUgd2hvbGUgZGlyZWN0b3JpZXMiCiBtc2dzdHIgInRhIGJvcnQgaGVsYSBrYXRhbG9nZXIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo4ODAgYnVpbHRpbi9kZXNjcmliZS5jOjQyMCBidWlsdGluL2dyZXAuYzo3MTYKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMgYnVpbHRpbi9uYW1lLXJldi5jOjMxNSBidWlsdGluL3Nob3ctcmVmLmM6MTg2CisjOiBidWlsdGluL2NsZWFuLmM6ODgwIGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjAgYnVpbHRpbi9ncmVwLmM6NzE4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgzIGJ1aWx0aW4vbmFtZS1yZXYuYzozMTUgYnVpbHRpbi9zaG93LXJlZi5jOjE4NQogbXNnaWQgInBhdHRlcm4iCiBtc2dzdHIgIm3Dtm5zdGVyIgogCkBAIC0zNTc5LDggKzM3NjIsOCBAQAogbXNnaWQgImdpdCBjbG9uZSBbb3B0aW9uc10gWy0tXSA8cmVwbz4gWzxkaXI+XSIKIG1zZ3N0ciAiZ2l0IGNsb25lIFtmbGFnZ29yXSBbLS1dIDxhcmtpdj4gWzxrYXQ+XSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY0IGJ1aWx0aW4vZmV0Y2guYzo4MiBidWlsdGluL21lcmdlLmM6MjI5Ci0jOiBidWlsdGluL3B1c2guYzo0NjIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NCBidWlsdGluL2ZldGNoLmM6OTYgYnVpbHRpbi9tZXJnZS5jOjIyOQorIzogYnVpbHRpbi9wdXNoLmM6NDc0CiBtc2dpZCAiZm9yY2UgcHJvZ3Jlc3MgcmVwb3J0aW5nIgogbXNnc3RyICJ0dmluZ2EgZsO2cmxvcHBzcmFwcG9ydGVyaW5nIgogCkBAIC0zNTkyLDEyMyArMzc3NSwxMjMgQEAKIG1zZ2lkICJjcmVhdGUgYSBiYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgInNrYXBhIGV0dCBuYWtldCAoXCJiYXJlXCIpIGFya2l2IgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3MQogbXNnaWQgImNyZWF0ZSBhIG1pcnJvciByZXBvc2l0b3J5IChpbXBsaWVzIGJhcmUpIgogbXNnc3RyICJza2FwYSBldHQgc3BlZ2VsYXJraXYgKGltcGxpY2VyYXIgXCJiYXJlXCIpIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3MwogbXNnaWQgInRvIGNsb25lIGZyb20gYSBsb2NhbCByZXBvc2l0b3J5IgogbXNnc3RyICJmw7ZyIGF0dCBrbG9uYSBmcsOlbiBldHQgbG9rYWx0IGFya2l2IgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NQogbXNnaWQgImRvbid0IHVzZSBsb2NhbCBoYXJkbGlua3MsIGFsd2F5cyBjb3B5IgogbXNnc3RyICJza2FwYSBpbnRlIGxva2FsYSBow6VyZGEgbMOkbmthciwga29waWVyYSBhbGx0aWQiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OAorIzogYnVpbHRpbi9jbG9uZS5jOjc3CiBtc2dpZCAic2V0dXAgYXMgc2hhcmVkIHJlcG9zaXRvcnkiCiBtc2dzdHIgInNrYXBhIHNvbSBldHQgZGVsYXQgYXJraXYiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MCBidWlsdGluL2Nsb25lLmM6ODIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OSBidWlsdGluL2Nsb25lLmM6ODEKIG1zZ2lkICJpbml0aWFsaXplIHN1Ym1vZHVsZXMgaW4gdGhlIGNsb25lIgogbXNnc3RyICJpbml0aWVyYSB1bmRlcm1vZHVsZXIgaSBrbG9uZW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MyBidWlsdGluL2luaXQtZGIuYzo0ODUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MiBidWlsdGluL2luaXQtZGIuYzo0ODUKIG1zZ2lkICJ0ZW1wbGF0ZS1kaXJlY3RvcnkiCiBtc2dzdHIgIm1hbGxrYXRhbG9nIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODQgYnVpbHRpbi9pbml0LWRiLmM6NDg2CisjOiBidWlsdGluL2Nsb25lLmM6ODMgYnVpbHRpbi9pbml0LWRiLmM6NDg2CiBtc2dpZCAiZGlyZWN0b3J5IGZyb20gd2hpY2ggdGVtcGxhdGVzIHdpbGwgYmUgdXNlZCIKIG1zZ3N0ciAia2F0YWxvZyBhdHQgYW52w6RuZGEgbWFsbGFyIGZyw6VuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NQogbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5IgogbXNnc3RyICJyZWZlcmVuc2Fya2l2IgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODcgYnVpbHRpbi9jb2x1bW4uYzoyNiBidWlsdGluL21lcmdlLWZpbGUuYzo0NAorIzogYnVpbHRpbi9jbG9uZS5jOjg2IGJ1aWx0aW4vY29sdW1uLmM6MjYgYnVpbHRpbi9tZXJnZS1maWxlLmM6NDQKIG1zZ2lkICJuYW1lIgogbXNnc3RyICJuYW1uIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NwogbXNnaWQgInVzZSA8bmFtZT4gaW5zdGVhZCBvZiAnb3JpZ2luJyB0byB0cmFjayB1cHN0cmVhbSIKIG1zZ3N0ciAiYW52w6RuZCA8bmFtbj4gaXN0w6RsbGV0IGbDtnIgXCJvcmlnaW5cIiBmw7ZyIGF0dCBzcMOlcmEgdXBwc3Ryw7ZtcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkwCisjOiBidWlsdGluL2Nsb25lLmM6ODkKIG1zZ2lkICJjaGVja291dCA8YnJhbmNoPiBpbnN0ZWFkIG9mIHRoZSByZW1vdGUncyBIRUFEIgogbXNnc3RyICJjaGVja2EgdXQgPGdyZW4+IGlzdMOkbGxldCBmw7ZyIGZqw6RycmVucyBIRUFEIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MQogbXNnaWQgInBhdGggdG8gZ2l0LXVwbG9hZC1wYWNrIG9uIHRoZSByZW1vdGUiCiBtc2dzdHIgInPDtmt2w6RnIHRpbGwgZ2l0LXVwbG9hZC1wYWNrIHDDpSBmasOkcnJlbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkzIGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MiBidWlsdGluL2ZldGNoLmM6OTcgYnVpbHRpbi9ncmVwLmM6NjYzCiBtc2dpZCAiZGVwdGgiCiBtc2dzdHIgImRqdXAiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NAorIzogYnVpbHRpbi9jbG9uZS5jOjkzCiBtc2dpZCAiY3JlYXRlIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGF0IGRlcHRoIgogbXNnc3RyICJza2FwYSBlbiBncnVuZCBrbG9uIHDDpSBkZXR0YSBkanVwIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NQogbXNnaWQgImNsb25lIG9ubHkgb25lIGJyYW5jaCwgSEVBRCBvciAtLWJyYW5jaCIKIG1zZ3N0ciAia2xvbmEgZW5kYXN0IGVuIGdyZW4sIEhFQUQgZWxsZXIgLS1icmFuY2giCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NyBidWlsdGluL2luaXQtZGIuYzo0OTQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NiBidWlsdGluL2luaXQtZGIuYzo0OTQKIG1zZ2lkICJnaXRkaXIiCiBtc2dzdHIgImdpdGthdCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk4IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NQorIzogYnVpbHRpbi9jbG9uZS5jOjk3IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NQogbXNnaWQgInNlcGFyYXRlIGdpdCBkaXIgZnJvbSB3b3JraW5nIHRyZWUiCiBtc2dzdHIgInNlcGFyZXJhIGdpdGthdGFsb2dlbiBmcsOlbiBhcmJldHNrYXRhbG9nZW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5OQorIzogYnVpbHRpbi9jbG9uZS5jOjk4CiBtc2dpZCAia2V5PXZhbHVlIgogbXNnc3RyICJueWNrZWw9dsOkcmRlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAwCisjOiBidWlsdGluL2Nsb25lLmM6OTkKIG1zZ2lkICJzZXQgY29uZmlnIGluc2lkZSB0aGUgbmV3IHJlcG9zaXRvcnkiCiBtc2dzdHIgInN0w6RsbCBpbiBrb25maWd1cmF0aW9uIGkgZGV0IG55YSBhcmtpdmV0IgogCi0jOiBidWlsdGluL2Nsb25lLmM6MjUzCisjOiBidWlsdGluL2Nsb25lLmM6MjUyCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5ICclcycgaXMgbm90IGEgbG9jYWwgcmVwb3NpdG9yeS4iCiBtc2dzdHIgInJlZmVyZW5zYXJraXZldCBcIiVzXCIgw6RyIGludGUgZXR0IGxva2FsdCBhcmtpdi4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMTYKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIHNrYXBhIGthdGFsb2dlbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMTggYnVpbHRpbi9kaWZmLmM6NzcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTcgYnVpbHRpbi9kaWZmLmM6NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN0YXQgJyVzJyIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIHRhIHN0YXR1cyBww6UgXCIlc1wiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzIwCisjOiBidWlsdGluL2Nsb25lLmM6MzE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGV4aXN0cyBhbmQgaXMgbm90IGEgZGlyZWN0b3J5IgogbXNnc3RyICIlcyBmaW5ucyBvY2ggw6RyIGluZ2VuIGthdGFsb2ciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMzQKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN0YXQgJXNcbiIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIHRhIHN0YXR1cyBww6UgJXNcbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM1NgorIzogYnVpbHRpbi9jbG9uZS5jOjM1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGxpbmsgJyVzJyIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIHNrYXBhIGzDpG5rZW4gXCIlc1wiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzYwCisjOiBidWlsdGluL2Nsb25lLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjb3B5IGZpbGUgdG8gJyVzJyIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIGtvcGllcmEgZmlsZW4gdGlsbCBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozODMKKyM6IGJ1aWx0aW4vY2xvbmUuYzozODIgYnVpbHRpbi9jbG9uZS5jOjU1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJkb25lLlxuIgogbXNnc3RyICJrbGFydC5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM5NgorIzogYnVpbHRpbi9jbG9uZS5jOjM5NQogbXNnaWQgIiIKICJDbG9uZSBzdWNjZWVkZWQsIGJ1dCBjaGVja291dCBmYWlsZWQuXG4iCiAiWW91IGNhbiBpbnNwZWN0IHdoYXQgd2FzIGNoZWNrZWQgb3V0IHdpdGggJ2dpdCBzdGF0dXMnXG4iCkBAIC0zNzE4LDEwNSArMzkwMSwxMDAgQEAKICJEdSBrYW4gaW5zcGVrdGVyYSBkZXQgc29tIGNoZWNrYWRlcyB1dCBtZWQgXCJnaXQgc3RhdHVzXCJcbiIKICJvY2ggZsO2cnPDtmthIGNoZWNrYSB1dCBpZ2VuIG1lZCBcImdpdCBjaGVja291dCAtZiBIRUFEXCJcbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjQ3NQorIzogYnVpbHRpbi9jbG9uZS5jOjQ3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmluZCByZW1vdGUgYnJhbmNoICVzIHRvIGNsb25lLiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBoaXR0YSBmasOkcnJncmVuZW4gJXMgZsO2ciBhdHQga2xvbmEuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NTU1CisjOiBidWlsdGluL2Nsb25lLmM6NTU0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoZWNraW5nIGNvbm5lY3Rpdml0eS4uLiAiCiBtc2dzdHIgIktvbnRyb2xsZXJhciBhbnNsdXRuaW5nLi4uIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NTU4CisjOiBidWlsdGluL2Nsb25lLmM6NTU3CiBtc2dpZCAicmVtb3RlIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHMiCiBtc2dzdHIgImZqw6RycmVuIHPDpG5kZSBpbnRlIGFsbGEgbsO2ZHbDpG5kaWdhIG9iamVrdCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjU2MAotIywgYy1mb3JtYXQKLW1zZ2lkICJkb25lXG4iCi1tc2dzdHIgImtsYXJ0XG4iCi0KLSM6IGJ1aWx0aW4vY2xvbmUuYzo2MjEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2MjAKIG1zZ2lkICJyZW1vdGUgSEVBRCByZWZlcnMgdG8gbm9uZXhpc3RlbnQgcmVmLCB1bmFibGUgdG8gY2hlY2tvdXQuXG4iCiBtc2dzdHIgIiIKICJIRUFEIGhvcyBmasOkcnJlbiBwZWthciBww6UgZW4gb2JlZmludGxpZyByZWZlcmVucywga2FuIGludGUgY2hlY2thIHV0LlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjUyCisjOiBidWlsdGluL2Nsb25lLmM6NjUxCiBtc2dpZCAidW5hYmxlIHRvIGNoZWNrb3V0IHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAia3VuZGUgaW50ZSBjaGVja2EgdXQgYXJiZXRza2F0YWxvZ2VuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzYwCisjOiBidWlsdGluL2Nsb25lLmM6NzU5CiBtc2dpZCAiVG9vIG1hbnkgYXJndW1lbnRzLiIKIG1zZ3N0ciAiRsO2ciBtw6VuZ2EgYXJndW1lbnQuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzY0CisjOiBidWlsdGluL2Nsb25lLmM6NzYzCiBtc2dpZCAiWW91IG11c3Qgc3BlY2lmeSBhIHJlcG9zaXRvcnkgdG8gY2xvbmUuIgogbXNnc3RyICJEdSBtw6VzdGUgYW5nZSBldHQgYXJraXYgYXR0IGtsb25hLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc3NQorIzogYnVpbHRpbi9jbG9uZS5jOjc3NAogIywgYy1mb3JtYXQKIG1zZ2lkICItLWJhcmUgYW5kIC0tb3JpZ2luICVzIG9wdGlvbnMgYXJlIGluY29tcGF0aWJsZS4iCiBtc2dzdHIgImZsYWdnb3JuYSAtLWJhcmUgb2NoIC0tb3JpZ2luICVzIMOkciBpbmtvbXBhdGlibGEuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzc4CisjOiBidWlsdGluL2Nsb25lLmM6Nzc3CiBtc2dpZCAiLS1iYXJlIGFuZCAtLXNlcGFyYXRlLWdpdC1kaXIgYXJlIGluY29tcGF0aWJsZS4iCiBtc2dzdHIgImZsYWdnb3JuYSAtLWJhcmUgb2NoIC0tc2VwYXJhdGUtZ2l0LWRpciDDpHIgaW5rb21wYXRpYmxhLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc5MQorIzogYnVpbHRpbi9jbG9uZS5jOjc5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZXBvc2l0b3J5ICclcycgZG9lcyBub3QgZXhpc3QiCiBtc2dzdHIgImFya2l2ZXQgXCIlc1wiIGZpbm5zIGludGUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OTYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTUKIG1zZ2lkICItLWRlcHRoIGlzIGlnbm9yZWQgaW4gbG9jYWwgY2xvbmVzOyB1c2UgZmlsZTovLyBpbnN0ZWFkLiIKIG1zZ3N0ciAiLS1kZXB0aCBpZ25vcmVyYXMgaSBsb2thbGEga2xvbmluZ2FyOyBhbnbDpG5kIGZpbGU6Ly8gaXN0w6RsbGV0IgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzk4CisjOiBidWlsdGluL2Nsb25lLmM6Nzk3CiBtc2dpZCAiLS1sb2NhbCBpcyBpZ25vcmVkIgogbXNnc3RyICItLWxvY2FsIGlnbm9yZXJhcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgwOAorIzogYnVpbHRpbi9jbG9uZS5jOjgwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJkZXN0aW5hdGlvbiBwYXRoICclcycgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhbiBlbXB0eSBkaXJlY3RvcnkuIgogbXNnc3RyICJkZXN0aW5hdGlvbnNzw7ZrdsOkZ2VuIFwiJXNcIiBmaW5ucyByZWRhbiBvY2ggw6RyIGludGUgZW4gdG9tIGthdGFsb2cuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODE4CisjOiBidWlsdGluL2Nsb25lLmM6ODE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIndvcmtpbmcgdHJlZSAnJXMnIGFscmVhZHkgZXhpc3RzLiIKIG1zZ3N0ciAiYXJiZXRzdHLDpGRldCBcIiVzXCIgZmlubnMgcmVkYW4uIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODMxIGJ1aWx0aW4vY2xvbmUuYzo4NDMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MzAgYnVpbHRpbi9jbG9uZS5jOjg0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIGxlYWRpbmcgZGlyZWN0b3JpZXMgb2YgJyVzJyIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza2FwYSBpbmxlZGFuZGUga2F0YWxvZ2VyIGbDtnIgXCIlc1wiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODM0CisjOiBidWlsdGluL2Nsb25lLmM6ODMzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgd29yayB0cmVlIGRpciAnJXMnLiIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza2FwYSBhcmJldHNrYXRhbG9nZW4gXCIlc1wiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODUzCisjOiBidWlsdGluL2Nsb25lLmM6ODUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNsb25pbmcgaW50byBiYXJlIHJlcG9zaXRvcnkgJyVzJy4uLlxuIgogbXNnc3RyICJLbG9uYXIgdGlsbCBldHQgbmFrZXQgYXJraXYgXCIlc1wiLi4uXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NTUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xvbmluZyBpbnRvICclcycuLi5cbiIKIG1zZ3N0ciAiS2xvbmFyIHRpbGwgXCIlc1wiLi4uXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OTAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gY2xvbmUgJXMiCiBtc2dzdHIgIlZldCBpbnRlIGh1ciBtYW4ga2xvbmFyICVzIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTQyCisjOiBidWlsdGluL2Nsb25lLmM6OTM5IGJ1aWx0aW4vY2xvbmUuYzo5NDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3RlIGJyYW5jaCAlcyBub3QgZm91bmQgaW4gdXBzdHJlYW0gJXMiCiBtc2dzdHIgIkZqw6RycmdyZW5lbiAlcyBoaXR0YWRlcyBpbnRlIGkgdXBwc3Ryw7Ztc2Fya2l2ZXQgJXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NDkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NTAKIG1zZ2lkICJZb3UgYXBwZWFyIHRvIGhhdmUgY2xvbmVkIGFuIGVtcHR5IHJlcG9zaXRvcnkuIgogbXNnc3RyICJEdSB2ZXJrYXIgaGEga2xvbmF0IGV0dCB0b210IGFya2l2LiIKIApAQCAtMzg1MiwxNSArNDAzMCwxNSBAQAogbXNnaWQgIi0tY29tbWFuZCBtdXN0IGJlIHRoZSBmaXJzdCBhcmd1bWVudCIKIG1zZ3N0ciAiLS1jb21tYW5kIG3DpXN0ZSB2YXJhIGbDtnJzdGEgYXJndW1lbnQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzYKIG1zZ2lkICJnaXQgY29tbWl0IFtvcHRpb25zXSBbLS1dIDxwYXRoc3BlYz4uLi4iCiBtc2dzdHIgImdpdCBjb21taXQgW2ZsYWdnb3JdIFstLV0gPHPDtmt2w6RnPi4uLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MAorIzogYnVpbHRpbi9jb21taXQuYzo0MQogbXNnaWQgImdpdCBzdGF0dXMgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiZ2l0IHN0YXR1cyBbZmxhZ2dvcl0gWy0tXSA8c8O2a3bDpGc+Li4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQ1CisjOiBidWlsdGluL2NvbW1pdC5jOjQ2CiBtc2dpZCAiIgogIllvdXIgbmFtZSBhbmQgZW1haWwgYWRkcmVzcyB3ZXJlIGNvbmZpZ3VyZWQgYXV0b21hdGljYWxseSBiYXNlZFxuIgogIm9uIHlvdXIgdXNlcm5hbWUgYW5kIGhvc3RuYW1lLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGV5IGFyZSBhY2N1cmF0ZS5cbiIKQEAgLTM4ODUsNyArNDA2Myw3IEBACiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbWVuZCAtLXJlc2V0LWF1dGhvclxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU3CisjOiBidWlsdGluL2NvbW1pdC5jOjU4CiBtc2dpZCAiIgogIllvdSBhc2tlZCB0byBhbWVuZCB0aGUgbW9zdCByZWNlbnQgY29tbWl0LCBidXQgZG9pbmcgc28gd291bGQgbWFrZVxuIgogIml0IGVtcHR5LiBZb3UgY2FuIHJlcGVhdCB5b3VyIGNvbW1hbmQgd2l0aCAtLWFsbG93LWVtcHR5LCBvciB5b3UgY2FuXG4iCkBAIC0zODk1LDcgKzQwNzMsNyBAQAogImJsaXIgZGVuIHRvbS4gRHUga2FuIGvDtnJhIGtvbW1hbmRvdCBww6Ugbnl0dCBtZWQgLS1hbGxvdy1lbXB0eSwgZWxsZXJcbiIKICJzw6Uga2FuIGR1IHRhIGJvcnQgaW5jaGVja25pbmdlbiBoZWx0IG1lZCBcImdpdCByZXNldCBIRUFEXlwiLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYyCisjOiBidWlsdGluL2NvbW1pdC5jOjYzCiBtc2dpZCAiIgogIlRoZSBwcmV2aW91cyBjaGVycnktcGljayBpcyBub3cgZW1wdHksIHBvc3NpYmx5IGR1ZSB0byBjb25mbGljdCByZXNvbHV0aW9uLlxuIgogIklmIHlvdSB3aXNoIHRvIGNvbW1pdCBpdCBhbnl3YXksIHVzZTpcbiIKQEAgLTM5MDksMTEgKzQwODcsMTEgQEAKICIgICAgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5XG4iCiAiXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzAKIG1zZ2lkICJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIKIG1zZ3N0ciAiQW52w6RuZCBhbm5hcnMgXCJnaXQgcmVzZXRcIlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjcyCisjOiBidWlsdGluL2NvbW1pdC5jOjczCiBtc2dpZCAiIgogIklmIHlvdSB3aXNoIHRvIHNraXAgdGhpcyBjb21taXQsIHVzZTpcbiIKICJcbiIKQEAgLTM5MjksOTMgKzQxMDcsOTMgQEAKICJcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIga29tbWVyIGTDpHJlZnRlciBhdHQgw6V0ZXJ1cHB0YVxuIgogImNoZXJyeS1waWNrIGbDtnIgw6V0ZXJzdMOlZW5kZSBpbmNoZWNrbmluZ2FyLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjI3OQorIzogYnVpbHRpbi9jb21taXQuYzoyODcKIG1zZ2lkICJmYWlsZWQgdG8gdW5wYWNrIEhFQUQgdHJlZSBvYmplY3QiCiBtc2dzdHIgIm1pc3NseWNrYWRlcyBwYWNrYSB1cHAgSEVBRDpzIHRyw6Rkb2JqZWt0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMyMQorIzogYnVpbHRpbi9jb21taXQuYzozMjkKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRlbXBvcmFyeSBpbmRleCIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza2FwYSB0ZW1wb3LDpHIgaW5kZXhmaWwiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzI3CisjOiBidWlsdGluL2NvbW1pdC5jOjMzNQogbXNnaWQgImludGVyYWN0aXZlIGFkZCBmYWlsZWQiCiBtc2dzdHIgImludGVyYWt0aXYgdGlsbMOkZ2duaW5nIG1pc3NseWNrYWRlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNjAgYnVpbHRpbi9jb21taXQuYzozODEgYnVpbHRpbi9jb21taXQuYzo0MzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzY4IGJ1aWx0aW4vY29tbWl0LmM6Mzg5IGJ1aWx0aW4vY29tbWl0LmM6NDM5CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ld19pbmRleCBmaWxlIgogbXNnc3RyICJrdW5kZSBpbnRlIHNrcml2YSBmaWxlbiBuZXdfaW5kZXgiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDEyCisjOiBidWlsdGluL2NvbW1pdC5jOjQyMAogbXNnaWQgImNhbm5vdCBkbyBhIHBhcnRpYWwgY29tbWl0IGR1cmluZyBhIG1lcmdlLiIKIG1zZ3N0ciAia2FuIGludGUgdXRmw7ZyYSBlbiBkZWx2aXMgaW5jaGVja25pbmcgdW5kZXIgZW4gc2FtbWFuc2xhZ25pbmcuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQxNAorIzogYnVpbHRpbi9jb21taXQuYzo0MjIKIG1zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBjaGVycnktcGljay4iCiBtc2dzdHIgImthbiBpbnRlIHV0ZsO2cmEgZW4gZGVsdmlzIGluY2hlY2tuaW5nIHVuZGVyIGVuIGNoZXJyeS1waWNrLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MjQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDMyCiBtc2dpZCAiY2Fubm90IHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICJrYW4gaW50ZSBsw6RzYSBpbmRleGV0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQ0NAorIzogYnVpbHRpbi9jb21taXQuYzo0NTIKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgdGVtcG9yYXJ5IGluZGV4IGZpbGUiCiBtc2dzdHIgImt1bmRlIGludGUgc2tyaXZhIHRlbXBvcsOkciBpbmRleGZpbCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1MzUgYnVpbHRpbi9jb21taXQuYzo1NDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTQzIGJ1aWx0aW4vY29tbWl0LmM6NTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgY29tbWl0OiAlcyIKIG1zZ3N0ciAiZmVsYWt0aWcgaW5jaGVja25pbmc6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU2MworIzogYnVpbHRpbi9jb21taXQuYzo1NzEKIG1zZ2lkICJtYWxmb3JtZWQgLS1hdXRob3IgcGFyYW1ldGVyIgogbXNnc3RyICJmZWxmb3JtYWQgXCItLWF1dGhvclwiLWZsYWdnYSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1ODMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTkxCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBpZGVudCBzdHJpbmc6ICclcyciCiBtc2dzdHIgIkZlbGFrdGlnIGluZHJhZ25pbmdzc3Ryw6RuZzogXCIlc1wiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYyMSBidWlsdGluL2NvbW1pdC5jOjY1NCBidWlsdGluL2NvbW1pdC5jOjk4MgorIzogYnVpbHRpbi9jb21taXQuYzo2MzAgYnVpbHRpbi9jb21taXQuYzo2NjMgYnVpbHRpbi9jb21taXQuYzoxMDA3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBsb29rdXAgY29tbWl0ICVzIgogbXNnc3RyICJrdW5kZSBpbnRlIHNsw6UgdXBwIGluY2hlY2tuaW5nZW4gJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjMzIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQyIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiKHJlYWRpbmcgbG9nIG1lc3NhZ2UgZnJvbSBzdGFuZGFyZCBpbnB1dClcbiIKIG1zZ3N0ciAiKGzDpHNlciBsb2dnbWVkZGVsYW5kZSBmcsOlbiBzdGFuZGFyZCBpbilcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgbG9nIGZyb20gc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgbG9nZyBmcsOlbiBzdGFuZGFyZCBpbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MzkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmaWxlICclcyciCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgbG9nZ2ZpbGVuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjU0CiBtc2dpZCAiY29tbWl0IGhhcyBlbXB0eSBtZXNzYWdlIgogbXNnc3RyICJpbmNoZWNrbmluZ2VuIGhhciBldHQgdG9tdCBtZWRkZWxhbmRlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY2MQorIzogYnVpbHRpbi9jb21taXQuYzo2NzAKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NU0ciCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgTUVSR0VfTVNHIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY2NQorIzogYnVpbHRpbi9jb21taXQuYzo2NzQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBTUVVBU0hfTVNHIgogbXNnc3RyICJrdW5kZSBpbnRlIGzDpHNhIFNRVUFTSF9NU0ciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjY5CisjOiBidWlsdGluL2NvbW1pdC5jOjY3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCAnJXMnIgogbXNnc3RyICJrdW5kZSBpbnRlIGzDpHNhIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzQ5CiBtc2dpZCAiY291bGQgbm90IHdyaXRlIGNvbW1pdCB0ZW1wbGF0ZSIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza3JpdmEgaW5jaGVja25pbmdzbWFsbCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzYwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTQwMzAsNyArNDIwOCw3IEBACiAiXHQlc1xuIgogIm9jaCBmw7Zyc8O2a2VyIGlnZW4uXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzQ2CisjOiBidWlsdGluL2NvbW1pdC5jOjc2NQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC00MDQ1LDcgKzQyMjMsNyBAQAogIlx0JXNcbiIKICJvY2ggZsO2cnPDtmtlciBpZ2VuLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc1OAorIzogYnVpbHRpbi9jb21taXQuYzo3NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKQEAgLTQwNTUsNyArNDIzMyw3IEBACiAibWVkIFwiJWNcIiBrb21tZXIgaWdub3JlcmFzLCBvY2ggZXR0IHRvbXQgbWVkZGVsYW5kZSBhdmJyeXRlciAiCiAiaW5jaGVja25pbmdlbi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NjMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJQbGVhc2UgZW50ZXIgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciB5b3VyIGNoYW5nZXMuIExpbmVzIHN0YXJ0aW5nXG4iCkBAIC00MDY2LDEzOSArNDI0NCwxMzkgQEAKICJtZWQgXCIlY1wiIGtvbW1lciBiZWjDpWxsYXM7IGR1IGthbiBzasOkbHYgdGEgYm9ydCBkZW0gb20gZHUgdmlsbC5cbiIKICJFdHQgdG9tdCBtZWRkZWxhbmRlIGF2YnJ5dGVyIGluY2hlY2tuaW5nZW4uXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6Nzc2CisjOiBidWlsdGluL2NvbW1pdC5jOjc5NQogIywgYy1mb3JtYXQKIG1zZ2lkICIlc0F1dGhvcjogICAgJXMiCiBtc2dzdHIgIiVzRsO2cmZhdHRhcmU6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc4MworIzogYnVpbHRpbi9jb21taXQuYzo4MDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXNDb21taXR0ZXI6ICVzIgogbXNnc3RyICIlc0luY2hlY2thcmU6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjgwMworIzogYnVpbHRpbi9jb21taXQuYzo4MjIKIG1zZ2lkICJDYW5ub3QgcmVhZCBpbmRleCIKIG1zZ3N0ciAiS2FuIGludGUgbMOkc2EgaW5kZXhldCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4NDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODY1CiBtc2dpZCAiRXJyb3IgYnVpbGRpbmcgdHJlZXMiCiBtc2dzdHIgIkZlbCB2aWQgYnlnZ2FuZGUgYXYgdHLDpGQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODYwIGJ1aWx0aW4vdGFnLmM6MzU5CisjOiBidWlsdGluL2NvbW1pdC5jOjg4MCBidWlsdGluL3RhZy5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJQbGVhc2Ugc3VwcGx5IHRoZSBtZXNzYWdlIHVzaW5nIGVpdGhlciAtbSBvciAtRiBvcHRpb24uXG4iCiBtc2dzdHIgIkFuZ2UgbWVkZGVsYW5kZXQgZW4gYXYgZmxhZ2dvcm5hIC1tIGVsbGVyIC1GLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk1NworIzogYnVpbHRpbi9jb21taXQuYzo5ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gZXhpc3RpbmcgYXV0aG9yIGZvdW5kIHdpdGggJyVzJyIKIG1zZ3N0ciAiSGl0dGFkZSBpbmdlbiBiZWZpbnRsaWcgZsO2cmZhdHRhcmUgbWVkIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5NzIgYnVpbHRpbi9jb21taXQuYzoxMjA4CisjOiBidWlsdGluL2NvbW1pdC5jOjk5NyBidWlsdGluL2NvbW1pdC5jOjEyMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCB1bnRyYWNrZWQgZmlsZXMgbW9kZSAnJXMnIgogbXNnc3RyICJPZ2lsdGlndCBsw6RnZSBmw7ZyIG9zcMOlcmFkZSBmaWxlcjogXCIlc1wiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMDkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzNAogbXNnaWQgIi0tbG9uZyBhbmQgLXogYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1sb25nIG9jaCAteiDDpHIgaW5rb21wYXRpYmxhIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA2NAogbXNnaWQgIlVzaW5nIGJvdGggLS1yZXNldC1hdXRob3IgYW5kIC0tYXV0aG9yIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIkthbiBpbnRlIGFudsOkbmRhIGLDpWRlIC0tcmVzZXQtYXV0aG9yIG9jaCAtLWF1dGhvciIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDUwCisjOiBidWlsdGluL2NvbW1pdC5jOjEwNzUKIG1zZ2lkICJZb3UgaGF2ZSBub3RoaW5nIHRvIGFtZW5kLiIKIG1zZ3N0ciAiRHUgaGFyIGluZ2V0IGF0dCB1dMO2a2EuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3OAogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlIC0tIGNhbm5vdCBhbWVuZC4iCiBtc2dzdHIgIkR1IMOkciBpIG1pdHRlbiBhdiBlbiBzYW1tYW5zbGFnbmluZyAtLSBrYW4gaW50ZSB1dMO2a2EuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA4MAogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGNoZXJyeS1waWNrIC0tIGNhbm5vdCBhbWVuZC4iCiBtc2dzdHIgIkR1IMOkciBpIG1pdHRlbiBhdiBlbiBjaGVycnktcGljayAtLSBrYW4gaW50ZSB1dMO2a2EuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA4MwogbXNnaWQgIk9wdGlvbnMgLS1zcXVhc2ggYW5kIC0tZml4dXAgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIkZsYWdnb3JuYSAtLXNxdWFzaCBvY2ggLS1maXh1cCBrYW4gaW50ZSBhbnbDpG5kYXMgc2FtdGlkaWd0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNjgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5MwogbXNnaWQgIk9ubHkgb25lIG9mIC1jLy1DLy1GLy0tZml4dXAgY2FuIGJlIHVzZWQuIgogbXNnc3RyICJFbmRhc3QgZW4gYXYgLWMvLUMvLUYvLS1maXh1cCBrYW4gYW52w6RuZGFzLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDcwCisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTUKIG1zZ2lkICJPcHRpb24gLW0gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggLWMvLUMvLUYvLS1maXh1cC4iCiBtc2dzdHIgIkZsYWdnYW4gLW0ga2FuIGludGUga29tYmluZXJhcyBtZWQgLWMvLUMvLUYvLS1maXh1cC4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3OAorIzogYnVpbHRpbi9jb21taXQuYzoxMTAzCiBtc2dpZCAiLS1yZXNldC1hdXRob3IgY2FuIGJlIHVzZWQgb25seSB3aXRoIC1DLCAtYyBvciAtLWFtZW5kLiIKIG1zZ3N0ciAiLS1yZXNldC1hdXRob3Iga2FuIGVuZGFzdCBhbnbDpG5kYXMgbWVkIC1DLCAtYyBlbGxlciAtLWFtZW5kLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDk1CisjOiBidWlsdGluL2NvbW1pdC5jOjExMjAKIG1zZ2lkICJPbmx5IG9uZSBvZiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCBjYW4gYmUgdXNlZC4iCiBtc2dzdHIgIiIKICJFbmRhc3QgZW4gYXYgLS1pbmNsdWRlLy0tb25seS8tLWFsbC8tLWludGVyYWN0aXZlLy0tcGF0Y2gga2FuIGFudsOkbmRhcy4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NworIzogYnVpbHRpbi9jb21taXQuYzoxMTIyCiBtc2dpZCAiTm8gcGF0aHMgd2l0aCAtLWluY2x1ZGUvLS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICJEdSBtw6VzdGUgYW5nZSBzw7ZrdsOkZ2FyIHRpbGxzYW1tYW5zIG1lZCAtLWluY2x1ZGUvLS1vbmx5LiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDk5CisjOiBidWlsdGluL2NvbW1pdC5jOjExMjQKIG1zZ2lkICJDbGV2ZXIuLi4gYW1lbmRpbmcgdGhlIGxhc3Qgb25lIHdpdGggZGlydHkgaW5kZXguIgogbXNnc3RyICJTbWFydC4uLiB1dMO2a2EgZGVuIHNlbmFzdGUgbWVkIHNtdXRzaWd0IGluZGV4LiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTAxCisjOiBidWlsdGluL2NvbW1pdC5jOjExMjYKIG1zZ2lkICJFeHBsaWNpdCBwYXRocyBzcGVjaWZpZWQgd2l0aG91dCAtaSBub3IgLW87IGFzc3VtaW5nIC0tb25seSBwYXRocy4uLiIKIG1zZ3N0ciAiRXhwbGljaXRhIHPDtmt2w6RnYXIgYW5nYXZzIHV0YW4gLWkgZWxsZXIgLW87IGFudGFyIC0tb25seSBzw7ZrdsOkZ2FyLi4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExMTEgYnVpbHRpbi90YWcuYzo1NzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTEzNiBidWlsdGluL3RhZy5jOjU3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGNsZWFudXAgbW9kZSAlcyIKIG1zZ3N0ciAiRmVsYWt0aWd0IHN0w6RkbmluZ3Nsw6RnZSAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTE2CisjOiBidWlsdGluL2NvbW1pdC5jOjExNDEKIG1zZ2lkICJQYXRocyB3aXRoIC1hIGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICJLYW4gaW50ZSBhbmdlIHPDtmt2w6RnYXIgbWVkIC1hLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjIyIGJ1aWx0aW4vY29tbWl0LmM6MTQ1NQorIzogYnVpbHRpbi9jb21taXQuYzoxMjUxIGJ1aWx0aW4vY29tbWl0LmM6MTQ4MgogbXNnaWQgInNob3cgc3RhdHVzIGNvbmNpc2VseSIKIG1zZ3N0ciAidmlzYSBrb25jaXMgc3RhdHVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyMjQgYnVpbHRpbi9jb21taXQuYzoxNDU3CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNTMgYnVpbHRpbi9jb21taXQuYzoxNDg0CiBtc2dpZCAic2hvdyBicmFuY2ggaW5mb3JtYXRpb24iCiBtc2dzdHIgInZpc2EgaW5mb3JtYXRpb24gb20gZ3JlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjI2IGJ1aWx0aW4vY29tbWl0LmM6MTQ1OSBidWlsdGluL3B1c2guYzo0NTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI1NSBidWlsdGluL2NvbW1pdC5jOjE0ODYgYnVpbHRpbi9wdXNoLmM6NDYwCiBtc2dpZCAibWFjaGluZS1yZWFkYWJsZSBvdXRwdXQiCiBtc2dzdHIgIm1hc2tpbmzDpHNiYXIgdXRkYXRhIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyMjkgYnVpbHRpbi9jb21taXQuYzoxNDYxCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNTggYnVpbHRpbi9jb21taXQuYzoxNDg4CiBtc2dpZCAic2hvdyBzdGF0dXMgaW4gbG9uZyBmb3JtYXQgKGRlZmF1bHQpIgogbXNnc3RyICJ2aXNhIHN0YXR1cyBpIGzDpW5ndCBmb3JtYXQgKHN0YW5kYXJkKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjMyIGJ1aWx0aW4vY29tbWl0LmM6MTQ2NAorIzogYnVpbHRpbi9jb21taXQuYzoxMjYxIGJ1aWx0aW4vY29tbWl0LmM6MTQ5MQogbXNnaWQgInRlcm1pbmF0ZSBlbnRyaWVzIHdpdGggTlVMIgogbXNnc3RyICJ0ZXJtaW5lcmEgcG9zdGVyIG1lZCBOVUwiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNCBidWlsdGluL2NvbW1pdC5jOjE0NjcgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NwotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MCBidWlsdGluL3RhZy5jOjQ1OQorIzogYnVpbHRpbi9jb21taXQuYzoxMjYzIGJ1aWx0aW4vY29tbWl0LmM6MTQ5NCBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc3IGJ1aWx0aW4vdGFnLmM6NDU5CiBtc2dpZCAibW9kZSIKIG1zZ3N0ciAibMOkZ2UiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNSBidWlsdGluL2NvbW1pdC5jOjE0NjcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2NCBidWlsdGluL2NvbW1pdC5jOjE0OTQKIG1zZ2lkICJzaG93IHVudHJhY2tlZCBmaWxlcywgb3B0aW9uYWwgbW9kZXM6IGFsbCwgbm9ybWFsLCBuby4gKERlZmF1bHQ6IGFsbCkiCiBtc2dzdHIgInZpc2Egb3Nww6VyYWRlIGZpbGVyLCB2YWxmcmlhIGzDpGdlbjogYWxsYSwgbm9ybWFsLCBuby4gKFN0YW5kYXJkOiBhbGwpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyMzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2NwogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAidmlzYSBpZ25vcmVyYWRlIGZpbGVyIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyMzkgcGFyc2Utb3B0aW9ucy5oOjE1NAorIzogYnVpbHRpbi9jb21taXQuYzoxMjY4IHBhcnNlLW9wdGlvbnMuaDoxNTYKIG1zZ2lkICJ3aGVuIgogbXNnc3RyICJuw6RyIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2OQogbXNnaWQgIiIKICJpZ25vcmUgY2hhbmdlcyB0byBzdWJtb2R1bGVzLCBvcHRpb25hbCB3aGVuOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKICIoRGVmYXVsdDogYWxsKSIKQEAgLTQyMDYsMjE3ICs0Mzg0LDIxNyBAQAogImlnbm9yZXJhIMOkbmRyaW5nYXIgaSB1bmRlcm1vZHVsZXIsIHZhbGZyaXR0IG7DpHI6IGFsbCwgZGlydHksIHVudHJhY2tlZC4gIgogIihEZWZhdWx0OiBhbGwpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI3MQogbXNnaWQgImxpc3QgdW50cmFja2VkIGZpbGVzIGluIGNvbHVtbnMiCiBtc2dzdHIgInZpc2Egb3Nww6VyYWRlIGZpbGVyIGkgc3BhbHRlciIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzEzCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNDAKIG1zZ2lkICJjb3VsZG4ndCBsb29rIHVwIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgogbXNnc3RyICJrdW5kZSBpbnRlIHNsw6UgdXBwIGVuIHByZWNpcyBza2FwYWQgaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxNQorIzogYnVpbHRpbi9jb21taXQuYzoxMzQyCiBtc2dpZCAiY291bGQgbm90IHBhcnNlIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgogbXNnc3RyICJrdW5kZSBpbnRlIHRvbGthIGVuIHByZWNpcyBza2FwYWQgaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1NgorIzogYnVpbHRpbi9jb21taXQuYzoxMzgzCiBtc2dpZCAiZGV0YWNoZWQgSEVBRCIKIG1zZ3N0ciAiZnLDpW5rb3BwbGFkIEhFQUQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1OAorIzogYnVpbHRpbi9jb21taXQuYzoxMzg1CiBtc2dpZCAiIChyb290LWNvbW1pdCkiCiBtc2dzdHIgIiAocm90aW5jaGVja25pbmcpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MgogbXNnaWQgInN1cHByZXNzIHN1bW1hcnkgYWZ0ZXIgc3VjY2Vzc2Z1bCBjb21taXQiCiBtc2dzdHIgInVuZGVydHJ5Y2sgc2FtbWFuZmF0dG5pbmcgZWZ0ZXIgZnJhbWfDpW5nc3JpayBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDI2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTMKIG1zZ2lkICJzaG93IGRpZmYgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCiBtc2dzdHIgInZpc2EgZGlmZiBpIG1hbGxlbiBmw7ZyIGluY2hlY2tuaW5nc21lZGRlbGFuZGV0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MjgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NQogbXNnaWQgIkNvbW1pdCBtZXNzYWdlIG9wdGlvbnMiCiBtc2dzdHIgIkFsdGVybmF0aXYgZsO2ciBpbmNoZWNrbmluZ3NtZWRkZWxhbmRlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MjkgYnVpbHRpbi90YWcuYzo0NTcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NiBidWlsdGluL3RhZy5jOjQ1NwogbXNnaWQgInJlYWQgbWVzc2FnZSBmcm9tIGZpbGUiCiBtc2dzdHIgImzDpHMgbWVkZGVsYW5kZSBmcsOlbiBmaWwiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMAorIzogYnVpbHRpbi9jb21taXQuYzoxNDU3CiBtc2dpZCAiYXV0aG9yIgogbXNnc3RyICJmw7ZyZmF0dGFyZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTcKIG1zZ2lkICJvdmVycmlkZSBhdXRob3IgZm9yIGNvbW1pdCIKIG1zZ3N0ciAiw7Z2ZXJzdHlyIGbDtnJmYXR0YXJlIGbDtnIgaW5jaGVja25pbmdlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMxIGJ1aWx0aW4vZ2MuYzoxNzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1OCBidWlsdGluL2djLmM6MjYwCiBtc2dpZCAiZGF0ZSIKIG1zZ3N0ciAiZGF0dW0iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNDU4CiBtc2dpZCAib3ZlcnJpZGUgZGF0ZSBmb3IgY29tbWl0IgogbXNnc3RyICLDtnZlcnN0eXIgZGF0dW0gZsO2ciBpbmNoZWNrbmlnbmVuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzIgYnVpbHRpbi9tZXJnZS5jOjIyMyBidWlsdGluL25vdGVzLmM6NDA1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTkgYnVpbHRpbi9tZXJnZS5jOjIyMyBidWlsdGluL25vdGVzLmM6NDA1CiAjOiBidWlsdGluL25vdGVzLmM6NTYyIGJ1aWx0aW4vdGFnLmM6NDU1CiBtc2dpZCAibWVzc2FnZSIKIG1zZ3N0ciAibWVkZGVsYW5kZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMyCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTkKIG1zZ2lkICJjb21taXQgbWVzc2FnZSIKIG1zZ3N0ciAiaW5jaGVja25pbmdzbWVkZGVsYW5kZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMzCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjAKIG1zZ2lkICJyZXVzZSBhbmQgZWRpdCBtZXNzYWdlIGZyb20gc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiw6V0ZXJhbnbDpG5kIG9jaCByZWRpZ2VyYSBtZWRkZWxhbmRlIGZyw6VuIGFuZ2l2ZW4gaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNAorIzogYnVpbHRpbi9jb21taXQuYzoxNDYxCiBtc2dpZCAicmV1c2UgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIsOldGVyYW52w6RuZCBtZWRkZWxhbmRlIGZyw6VuIGFuZ2l2ZW4gaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNQorIzogYnVpbHRpbi9jb21taXQuYzoxNDYyCiBtc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gZml4dXAgc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogImFudsOkbmQgYXV0b3NxdWFzaC1mb3JtYXRlcmF0IG1lZGRlbGFuZGUgZsO2ciBhdHQgZml4YSBhbmdpdmVuIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MwogbXNnaWQgInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIHNxdWFzaCBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICIiCiAiYW52w6RuZCBhdXRvc3F1YXNoLWZvcm1hdGVyYXQgbWVkZGVsYW5kZSBmw7ZyIGF0dCBzbMOlIGlob3AgbWVkIGFuZ2l2ZW4gIgogImluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NAogbXNnaWQgInRoZSBjb21taXQgaXMgYXV0aG9yZWQgYnkgbWUgbm93ICh1c2VkIHdpdGggLUMvLWMvLS1hbWVuZCkiCiBtc2dzdHIgImphZyDDpHIgbnUgZsO2cmZhdHRhcmUgYXYgaW5jaGVja25pbmdlbiAoYW52w6RuZHMgbWVkIC1DLy1jLy0tYW1lbmQpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzggYnVpbHRpbi9sb2cuYzoxMTYwIGJ1aWx0aW4vcmV2ZXJ0LmM6MTExCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjUgYnVpbHRpbi9sb2cuYzoxMTgwIGJ1aWx0aW4vcmV2ZXJ0LmM6ODYKIG1zZ2lkICJhZGQgU2lnbmVkLW9mZi1ieToiCiBtc2dzdHIgImzDpGdnIHRpbGwgU2lnbmVkLW9mZi1ieToiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzOQorIzogYnVpbHRpbi9jb21taXQuYzoxNDY2CiBtc2dpZCAidXNlIHNwZWNpZmllZCB0ZW1wbGF0ZSBmaWxlIgogbXNnc3RyICJhbnbDpG5kIGFuZ2l2ZW4gbWFsbGZpbCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDQwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjcKIG1zZ2lkICJmb3JjZSBlZGl0IG9mIGNvbW1pdCIKIG1zZ3N0ciAidHZpbmdhIHJlZGlnZXJpbmcgYXYgaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDY4CiBtc2dpZCAiZGVmYXVsdCIKIG1zZ3N0ciAic3RhbmRhcmQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MSBidWlsdGluL3RhZy5jOjQ2MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDY4IGJ1aWx0aW4vdGFnLmM6NDYwCiBtc2dpZCAiaG93IHRvIHN0cmlwIHNwYWNlcyBhbmQgI2NvbW1lbnRzIGZyb20gbWVzc2FnZSIKIG1zZ3N0ciAiaHVyIGJsYW5rc3RlZyBvY2ggI2tvbW1lbnRhcmVyIHNrYWxsIHRhcyBib3J0IGZyw6VuIG1lZGRlbGFuZGUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MgorIzogYnVpbHRpbi9jb21taXQuYzoxNDY5CiBtc2dpZCAiaW5jbHVkZSBzdGF0dXMgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCiBtc2dzdHIgImlua2x1ZGVyYSBzdGF0dXMgaSBtYWxsZW4gZsO2ciBpbmNoZWNrbmluZ3NtZWRkZWxhbmRldCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDQzIGJ1aWx0aW4vbWVyZ2UuYzoyMzAgYnVpbHRpbi90YWcuYzo0NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3MCBidWlsdGluL21lcmdlLmM6MjMwIGJ1aWx0aW4vdGFnLmM6NDYxCiBtc2dpZCAia2V5IGlkIgogbXNnc3RyICJueWNrZWwtaWQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0NCBidWlsdGluL21lcmdlLmM6MjMxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzEgYnVpbHRpbi9tZXJnZS5jOjIzMQogbXNnaWQgIkdQRyBzaWduIGNvbW1pdCIKIG1zZ3N0ciAiR1BHLXNpZ25lcmEgaW5jaGVja25pbmciCiAKICMuIGVuZCBjb21taXQgbWVzc2FnZSBvcHRpb25zCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3NAogbXNnaWQgIkNvbW1pdCBjb250ZW50cyBvcHRpb25zIgogbXNnc3RyICJBbHRlcm5hdGl2IGbDtnIgaW5jaGVja25pbmdlbnMgaW5uZWjDpWxsIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3NQogbXNnaWQgImNvbW1pdCBhbGwgY2hhbmdlZCBmaWxlcyIKIG1zZ3N0ciAiY2hlY2thIGluIGFsbGEgw6RuZHJhZGUgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0OQorIzogYnVpbHRpbi9jb21taXQuYzoxNDc2CiBtc2dpZCAiYWRkIHNwZWNpZmllZCBmaWxlcyB0byBpbmRleCBmb3IgY29tbWl0IgogbXNnc3RyICJsw6RnZyB0aWxsIGFuZ2l2bmEgZmlsZXIgdGlsbCBpbmRleGV0IGbDtnIgaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDc3CiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgZmlsZXMiCiBtc2dzdHIgImzDpGdnIHRpbGwgZmlsZXIgaW50ZXJha3RpdnQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDc4CiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgY2hhbmdlcyIKIG1zZ3N0ciAibMOkZ2cgdGlsbCDDpG5kcmluZ2FyIGludGVyYWt0aXZ0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3OQogbXNnaWQgImNvbW1pdCBvbmx5IHNwZWNpZmllZCBmaWxlcyIKIG1zZ3N0ciAiY2hlY2thIGVuZGFzdCBpbiBhbmdpdm5hIGZpbGVyIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ4MAogbXNnaWQgImJ5cGFzcyBwcmUtY29tbWl0IGhvb2siCiBtc2dzdHIgImbDtnJiaWfDpSBwcmUtY29tbWl0LWtyb2siCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NAorIzogYnVpbHRpbi9jb21taXQuYzoxNDgxCiBtc2dpZCAic2hvdyB3aGF0IHdvdWxkIGJlIGNvbW1pdHRlZCIKIG1zZ3N0ciAidmlzYSB2YWQgc29tIHNrdWxsZSBjaGVja2FzIGluIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ5MgogbXNnaWQgImFtZW5kIHByZXZpb3VzIGNvbW1pdCIKIG1zZ3N0ciAibMOkZ2cgdGlsbCBmw7ZyZWfDpWVuZGUgaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NgorIzogYnVpbHRpbi9jb21taXQuYzoxNDkzCiBtc2dpZCAiYnlwYXNzIHBvc3QtcmV3cml0ZSBob29rIgogbXNnc3RyICJmw7ZyYmlnw6UgcG9zdC1yZXdyaXRlLWtyb2siCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDk4CiBtc2dpZCAib2sgdG8gcmVjb3JkIGFuIGVtcHR5IGNoYW5nZSIKIG1zZ3N0ciAib2sgYXR0IHJlZ2lzdHJlcmEgZW4gdG9tIMOkbmRyaW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTUwMAogbXNnaWQgIm9rIHRvIHJlY29yZCBhIGNoYW5nZSB3aXRoIGFuIGVtcHR5IG1lc3NhZ2UiCiBtc2dzdHIgIm9rIGF0dCByZWdpc3RyZXJhIGVuIMOkbmRyaW5nIG1lZCB0b210IG1lZGRlbGFuZGUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUwNworIzogYnVpbHRpbi9jb21taXQuYzoxNTI5CiBtc2dpZCAiY291bGQgbm90IHBhcnNlIEhFQUQgY29tbWl0IgogbXNnc3RyICJrdW5kZSBpbnRlIHRvbGthIEhFQUQ6cyBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTQ1IGJ1aWx0aW4vbWVyZ2UuYzo1MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU2NyBidWlsdGluL21lcmdlLmM6NTI1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBvcGVuICclcycgZm9yIHJlYWRpbmciCiBtc2dzdHIgImt1bmRlIGludGUgw7ZwcG5hIFwiJXNcIiBmw7ZyIGzDpHNuaW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3JydXB0IE1FUkdFX0hFQUQgZmlsZSAoJXMpIgogbXNnc3RyICJUcmFzaWcgTUVSR0VfSEVBRC1maWwgKCVzKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTU5CisjOiBidWlsdGluL2NvbW1pdC5jOjE1ODEKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NT0RFIgogbXNnc3RyICJrdW5kZSBpbnRlIGzDpHNhIE1FUkdFX01PREUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU3OAorIzogYnVpbHRpbi9jb21taXQuYzoxNjAwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGNvbW1pdCBtZXNzYWdlOiAlcyIKIG1zZ3N0ciAia3VuZGUgaW50ZSBsw6RzYSBpbmNoZWNrbmluZ3NtZWRkZWxhbmRlOiAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTkyCisjOiBidWlsdGluL2NvbW1pdC5jOjE2MTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWJvcnRpbmcgY29tbWl0OyB5b3UgZGlkIG5vdCBlZGl0IHRoZSBtZXNzYWdlLlxuIgogbXNnc3RyICJBdmJyeXRlciBpbmNoZWNrbmluZzsgbWVkZGVsYW5kZXQgaW50ZSByZWRpZ2VyYXQuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU5NworIzogYnVpbHRpbi9jb21taXQuYzoxNjE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdCBkdWUgdG8gZW1wdHkgY29tbWl0IG1lc3NhZ2UuXG4iCiBtc2dzdHIgIkF2YnJ5dGVyIHDDpSBncnVuZCBhdiB0b210IGluY2hlY2tuaW5nc21lZGRlbGFuZGUuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTYxMiBidWlsdGluL21lcmdlLmM6ODYxIGJ1aWx0aW4vbWVyZ2UuYzo4ODYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYzNCBidWlsdGluL21lcmdlLmM6ODYxIGJ1aWx0aW4vbWVyZ2UuYzo4ODYKIG1zZ2lkICJmYWlsZWQgdG8gd3JpdGUgY29tbWl0IG9iamVjdCIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza3JpdmEgaW5jaGVja25pbmdzb2JqZWt0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE2MzMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTY1NQogbXNnaWQgImNhbm5vdCBsb2NrIEhFQUQgcmVmIgogbXNnc3RyICJrdW5kZSBpbnRlIGzDpXNhIEhFQUQtcmVmZXJlbnMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTYzNworIzogYnVpbHRpbi9jb21taXQuYzoxNjU5CiBtc2dpZCAiY2Fubm90IHVwZGF0ZSBIRUFEIHJlZiIKIG1zZ3N0ciAia3VuZGUgaW50ZSB1cHBkYXRlcmEgSEVBRC1yZWZlcmVucyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNjQ4CisjOiBidWlsdGluL2NvbW1pdC5jOjE2NzAKIG1zZ2lkICIiCiAiUmVwb3NpdG9yeSBoYXMgYmVlbiB1cGRhdGVkLCBidXQgdW5hYmxlIHRvIHdyaXRlXG4iCiAibmV3X2luZGV4IGZpbGUuIENoZWNrIHRoYXQgZGlzayBpcyBub3QgZnVsbCBvciBxdW90YSBpc1xuIgpAQCAtNDQyNywxMjcgKzQ2MDUsMTMxIEBACiAiYXR0IGt2b3RlbiBpbnRlIGhhciDDtnZlcnNrcmlkaXRzLCBvY2gga8O2ciBzZWRhblxuIgogIlwiZ2l0IHJlc2V0IEhFQURcIiBmw7ZyIGF0dCDDpXRlcnN0w6RsbGEuIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6OAogbXNnaWQgImdpdCBjb25maWcgW29wdGlvbnNdIgogbXNnc3RyICJnaXQgY29uZmlnIFtmbGFnZ29yXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1MgorIzogYnVpbHRpbi9jb25maWcuYzo1NAogbXNnaWQgIkNvbmZpZyBmaWxlIGxvY2F0aW9uIgogbXNnc3RyICJLb25maWd1cmF0aW9uc2ZpbGVucyBwbGF0cyIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1MworIzogYnVpbHRpbi9jb25maWcuYzo1NQogbXNnaWQgInVzZSBnbG9iYWwgY29uZmlnIGZpbGUiCiBtc2dzdHIgImFudsOkbmQgZ2xvYmFsIGtvbmZpZ3VyYXRpb25zZmlsIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU0CisjOiBidWlsdGluL2NvbmZpZy5jOjU2CiBtc2dpZCAidXNlIHN5c3RlbSBjb25maWcgZmlsZSIKIG1zZ3N0ciAiYW52w6RuZCBzeXN0ZW1ldHMga29uZmlndXJhdGlvbnNmaWwiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKIG1zZ2lkICJ1c2UgcmVwb3NpdG9yeSBjb25maWcgZmlsZSIKIG1zZ3N0ciAiYW52w6RuZCBhcmtpdmV0cyBrb25maWd1cmF0aW9uc2ZpbCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NgorIzogYnVpbHRpbi9jb25maWcuYzo1OAogbXNnaWQgInVzZSBnaXZlbiBjb25maWcgZmlsZSIKIG1zZ3N0ciAiYW52w6RuZCBhbmdpdmVuIGtvbmZpZ3VyYXRpb25zaWwiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTkKIG1zZ2lkICJibG9iLWlkIgogbXNnc3RyICJibG9iLWlkIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU3CisjOiBidWlsdGluL2NvbmZpZy5jOjU5CiBtc2dpZCAicmVhZCBjb25maWcgZnJvbSBnaXZlbiBibG9iIG9iamVjdCIKIG1zZ3N0ciAibMOkcyBrb25maWd1cmF0aW9uIGZyw6VuIGdpdmV0IGJsb2Itb2JqZWt0IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU4CisjOiBidWlsdGluL2NvbmZpZy5jOjYwCiBtc2dpZCAiQWN0aW9uIgogbXNnc3RyICLDhXRnw6RyZCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1OQorIzogYnVpbHRpbi9jb25maWcuYzo2MQogbXNnaWQgImdldCB2YWx1ZTogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJow6RtdGEgdsOkcmRlOiBuYW1uIFt2w6RyZGUtcmVndXR0cl0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjAKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjIKIG1zZ2lkICJnZXQgYWxsIHZhbHVlczoga2V5IFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImjDpG10YSBhbGxhIHbDpHJkZW46IG55Y2tlbCBbdsOkcmRlLXJlZ3V0dHJdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYxCisjOiBidWlsdGluL2NvbmZpZy5jOjYzCiBtc2dpZCAiZ2V0IHZhbHVlcyBmb3IgcmVnZXhwOiBuYW1lLXJlZ2V4IFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImjDpG10YSB2w6RyZGVuIGbDtnIgcmVndXR0cjogbmFtbi1yZWd1dHRyIFt2w6RyZGUtcmVndXR0cl0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjIKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKK21zZ2lkICJnZXQgdmFsdWUgc3BlY2lmaWMgZm9yIHRoZSBVUkw6IHNlY3Rpb25bLnZhcl0gVVJMIgorbXNnc3RyICJow6RtdGEgdsOkcmRlIHNwZWNpZmlrdCBVUkw6ZW46IHNla3Rpb25bLnZhcl0gVVJMIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjY1CiBtc2dpZCAicmVwbGFjZSBhbGwgbWF0Y2hpbmcgdmFyaWFibGVzOiBuYW1lIHZhbHVlIFt2YWx1ZV9yZWdleF0iCiBtc2dzdHIgImVyc8OkdHQgYWxsYSBtb3RzdmFyYW5kZSB2YXJpYWJsZXI6IG5hbW4gdsOkcmRlIFt2w6RyZGUtcmVndXR0cl0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjYKIG1zZ2lkICJhZGQgYSBuZXcgdmFyaWFibGU6IG5hbWUgdmFsdWUiCiBtc2dzdHIgImzDpGdnIHRpbGwgZW4gbnkgdmFyaWFiZWw6IG5hbW4gdsOkcmRlIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY0CisjOiBidWlsdGluL2NvbmZpZy5jOjY3CiBtc2dpZCAicmVtb3ZlIGEgdmFyaWFibGU6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAidGEgYm9ydCBlbiB2YXJpYWJlbDogbmFtbiBbdsOkcmRlLXJlZ3V0dHJdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY1CisjOiBidWlsdGluL2NvbmZpZy5jOjY4CiBtc2dpZCAicmVtb3ZlIGFsbCBtYXRjaGVzOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgInRhIGJvcnQgYWxsYSB0csOkZmZhcjogbmFtbiBbdsOkcmRlLXJlZ3V0dHJdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY2CisjOiBidWlsdGluL2NvbmZpZy5jOjY5CiBtc2dpZCAicmVuYW1lIHNlY3Rpb246IG9sZC1uYW1lIG5ldy1uYW1lIgogbXNnc3RyICJieXQgbmFtbiBww6Ugc2VrdGlvbjogZ2FtbWFsdC1uYW1uIG55dHQtbmFtbiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NworIzogYnVpbHRpbi9jb25maWcuYzo3MAogbXNnaWQgInJlbW92ZSBhIHNlY3Rpb246IG5hbWUiCiBtc2dzdHIgInRhIGJvcnQgZW4gc2VrdGlvbjogbmFtbiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2OAorIzogYnVpbHRpbi9jb25maWcuYzo3MQogbXNnaWQgImxpc3QgYWxsIgogbXNnc3RyICJ2aXNhIGFsbGEiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzIKIG1zZ2lkICJvcGVuIGFuIGVkaXRvciIKIG1zZ3N0ciAiw7ZwcG5hIHRleHRyZWRpZ2VyaW5nc3Byb2dyYW0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzAgYnVpbHRpbi9jb25maWcuYzo3MQorIzogYnVpbHRpbi9jb25maWcuYzo3MyBidWlsdGluL2NvbmZpZy5jOjc0CiBtc2dpZCAic2xvdCIKIG1zZ3N0ciAicGxhdHMiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzAKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzMKIG1zZ2lkICJmaW5kIHRoZSBjb2xvciBjb25maWd1cmVkOiBbZGVmYXVsdF0iCiBtc2dzdHIgImhpdHRhIGRlbiBpbnN0w6RsbGRhIGbDpHJnZW46IFtkZWZhdWx0XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MQorIzogYnVpbHRpbi9jb25maWcuYzo3NAogbXNnaWQgImZpbmQgdGhlIGNvbG9yIHNldHRpbmc6IFtzdGRvdXQtaXMtdHR5XSIKIG1zZ3N0ciAiaGl0dGEgZsOkcmdpbnN0w6RsbG5pbmdlbjogW3N0ZG91dC1pcy10dHldIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcyCisjOiBidWlsdGluL2NvbmZpZy5jOjc1CiBtc2dpZCAiVHlwZSIKIG1zZ3N0ciAiVHlwIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjczCisjOiBidWlsdGluL2NvbmZpZy5jOjc2CiBtc2dpZCAidmFsdWUgaXMgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiIgogbXNnc3RyICJ2w6RyZGV0IMOkciBcInRydWVcIiBlbGxlciBcImZhbHNlXCIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzQKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzcKIG1zZ2lkICJ2YWx1ZSBpcyBkZWNpbWFsIG51bWJlciIKIG1zZ3N0ciAidsOkcmRldCDDpHIgZXR0IGRlY2ltYWx0IHRhbCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NQorIzogYnVpbHRpbi9jb25maWcuYzo3OAogbXNnaWQgInZhbHVlIGlzIC0tYm9vbCBvciAtLWludCIKIG1zZ3N0ciAidsOkcmRldCDDpHIgLS1ib29sIGVsbGVyIC0taW50IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc2CisjOiBidWlsdGluL2NvbmZpZy5jOjc5CiBtc2dpZCAidmFsdWUgaXMgYSBwYXRoIChmaWxlIG9yIGRpcmVjdG9yeSBuYW1lKSIKIG1zZ3N0ciAidsOkcmRldCDDpHIgZW4gc8O2a3bDpGcgKGZpbC0gZWxsZXIga2F0YWxvZ25hbW4pIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc3CisjOiBidWlsdGluL2NvbmZpZy5jOjgwCiBtc2dpZCAiT3RoZXIiCiBtc2dzdHIgIkFuZHJhIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc4CisjOiBidWlsdGluL2NvbmZpZy5jOjgxCiBtc2dpZCAidGVybWluYXRlIHZhbHVlcyB3aXRoIE5VTCBieXRlIgogbXNnc3RyICJ0ZXJtaW5lcmEgdsOkcmRlbiBtZWQgTlVMLWJ5dGUiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6ODIKIG1zZ2lkICJyZXNwZWN0IGluY2x1ZGUgZGlyZWN0aXZlcyBvbiBsb29rdXAiCiBtc2dzdHIgInJlc3Bla3RlcmEgaW5rbHVkZXJpbmdzZGlyZWt0aXYgdmlkIHVwcHNsYWciCiAKQEAgLTQ1NjAsNyArNDc0Miw3IEBACiBtc2dzdHIgInNrcml2IHN0b3JsZWthciBpIG3DpG5uaXNrb2zDpHNiYXJ0IGZvcm1hdCIKIAogIzogYnVpbHRpbi9kZXNjcmliZS5jOjE2Ci1tc2dpZCAiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSA8Y29tbWl0dGlzaD4qIgorbXNnaWQgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gPGNvbW1pdC1pc2g+KiIKIG1zZ3N0ciAiZ2l0IGRlc2NyaWJlIFtmbGFnZ29yXSA8aW5jaGVja25pbmctaWd0PioiCiAKICM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNwpAQCAtNDY5Niw4ICs0ODc4LDggQEAKIG1zZ3N0ciAiSW5nYSBuYW1uIGhpdHRhZGVzLCBrYW4gaW50ZSBiZXNrcml2YSBuw6Vnb3QuIgogCiAjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDg5Ci1tc2dpZCAiLS1kaXJ0eSBpcyBpbmNvbXBhdGlibGUgd2l0aCBjb21taXR0aXNoZXMiCi1tc2dzdHIgIi0tZGlydHkgw6RyIGlua29tcGF0aWJlbHQgbWVkIFwiY29tbWl0dGlzaFwiLXbDpHJkZW4iCittc2dpZCAiLS1kaXJ0eSBpcyBpbmNvbXBhdGlibGUgd2l0aCBjb21taXQtaXNoZXMiCittc2dzdHIgIi0tZGlydHkgw6RyIGlua29tcGF0aWJlbHQgbWVkIFwiY29tbWl0LWlzaFwiLXbDpHJkZW4iCiAKICM6IGJ1aWx0aW4vZGlmZi5jOjc5CiAjLCBjLWZvcm1hdApAQCAtNDczMiwzOSArNDkxNCwzOSBAQAogbXNnaWQgImdpdCBmYXN0LWV4cG9ydCBbcmV2LWxpc3Qtb3B0c10iCiBtc2dzdHIgImdpdCBmYXN0LWV4cG9ydCBbcmV2LWxpc3QtZmxhZ2dvcl0iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjYKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzMKIG1zZ2lkICJzaG93IHByb2dyZXNzIGFmdGVyIDxuPiBvYmplY3RzIgogbXNnc3RyICJ2aXNhIGbDtnJsb3BwIGVmdGVyIDxuPiBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjgKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzUKIG1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2Ygc2lnbmVkIHRhZ3MiCiBtc2dzdHIgInbDpGxqIGhhbnRlcmluZyBhdiBzaWduZXJhZGUgdGFnZ2FyIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcxCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc4CiBtc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHRhZ3MgdGhhdCB0YWcgZmlsdGVyZWQgb2JqZWN0cyIKIG1zZ3N0ciAidsOkbGogaGFudGVyaW5nIGF2IHRhZ2dhciBzb20gaGFyIHRhZ2dmaWx0cmVyYWRlIG9iamVrdCIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MQogbXNnaWQgIkR1bXAgbWFya3MgdG8gdGhpcyBmaWxlIgogbXNnc3RyICJEdW1wIG3DpHJrZW4gdGlsbCBmaWxlbiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NgorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MwogbXNnaWQgIkltcG9ydCBtYXJrcyBmcm9tIHRoaXMgZmlsZSIKIG1zZ3N0ciAiSW1wb3J0ZXJhIG3DpHJrZW4gZnLDpW4gZmlsZW4iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzgKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODUKIG1zZ2lkICJGYWtlIGEgdGFnZ2VyIHdoZW4gdGFncyBsYWNrIG9uZSIKIG1zZ3N0ciAiRmVqa2EgdGFnZ2FyZSBuw6RyIHRhZ2dlbiBzYWtuYXIgZW4iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODAKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODcKIG1zZ2lkICJPdXRwdXQgZnVsbCB0cmVlIGZvciBlYWNoIGNvbW1pdCIKIG1zZ3N0ciAiU2tyaXYgdXQgaGVsYSB0csOkZGV0IGbDtnIgdmFyamUgaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODIKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODkKIG1zZ2lkICJVc2UgdGhlIGRvbmUgZmVhdHVyZSB0byB0ZXJtaW5hdGUgdGhlIHN0cmVhbSIKIG1zZ3N0ciAiQW52w6RuZCBkb25lLWZ1bmt0aW9uZW4gZsO2ciBhdHQgYXZzbHV0YSBzdHLDtm1tZW4iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODMKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2OTAKIG1zZ2lkICJTa2lwIG91dHB1dCBvZiBibG9iIGRhdGEiCiBtc2dzdHIgIkhvcHBhIMO2dmVyIHNrcml2bmluZyBhdiBibG9iLWRhdGEiCiAKQEAgLTQ3ODQsMTQ0ICs0OTY2LDE0NCBAQAogbXNnaWQgImdpdCBmZXRjaCAtLWFsbCBbPG9wdGlvbnM+XSIKIG1zZ3N0ciAiZ2l0IGZldGNoIC0tYWxsIFs8ZmxhZ2dvcj5dIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NjAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3NAogbXNnaWQgImZldGNoIGZyb20gYWxsIHJlbW90ZXMiCiBtc2dzdHIgImjDpG10YSBmcsOlbiBhbGxhIGZqw6RycmFyIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NjIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3NgogbXNnaWQgImFwcGVuZCB0byAuZ2l0L0ZFVENIX0hFQUQgaW5zdGVhZCBvZiBvdmVyd3JpdGluZyIKIG1zZ3N0ciAibMOkZ2cgdGlsbCBpIC5naXQvRkVUQ0hfSEVBRCBpc3TDpGxsZXQgZsO2ciBhdHQgc2tyaXZhIMO2dmVyIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NjQKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3OAogbXNnaWQgInBhdGggdG8gdXBsb2FkIHBhY2sgb24gcmVtb3RlIGVuZCIKIG1zZ3N0ciAic8O2a3bDpGcgdGlsbCB1cGxvYWQgcGFjayBww6UgZmrDpHJyZW4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2NQorIzogYnVpbHRpbi9mZXRjaC5jOjc5CiBtc2dpZCAiZm9yY2Ugb3ZlcndyaXRlIG9mIGxvY2FsIGJyYW5jaCIKIG1zZ3N0ciAidHZpbmdhIMO2dmVyc2tyaXZuaW5nIGF2IGxva2FsIGdyZW4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2NworIzogYnVpbHRpbi9mZXRjaC5jOjgxCiBtc2dpZCAiZmV0Y2ggZnJvbSBtdWx0aXBsZSByZW1vdGVzIgogbXNnc3RyICJow6RtdGEgZnLDpW4gZmxlcmEgZmrDpHJyYXIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2OQorIzogYnVpbHRpbi9mZXRjaC5jOjgzCiBtc2dpZCAiZmV0Y2ggYWxsIHRhZ3MgYW5kIGFzc29jaWF0ZWQgb2JqZWN0cyIKIG1zZ3N0ciAiaMOkbXRhIGFsbGEgdGFnZ2FyIG9jaCBhc3NvY2llcmFkZSBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3MQorIzogYnVpbHRpbi9mZXRjaC5jOjg1CiBtc2dpZCAiZG8gbm90IGZldGNoIGFsbCB0YWdzICgtLW5vLXRhZ3MpIgogbXNnc3RyICJow6RtdGEgaW50ZSBhbGxhIHRhZ2dhciAoLS1uby10YWdzKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjczCisjOiBidWlsdGluL2ZldGNoLmM6ODcKIG1zZ2lkICJwcnVuZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMgbm8gbG9uZ2VyIG9uIHJlbW90ZSIKIG1zZ3N0ciAicmVuc2EgZmrDpHJyc3DDpXJhbmRlIGdyZW5hciBlaiBsw6RuZ3JlIHDDpSBmasOkcnJlbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc0CisjOiBidWlsdGluL2ZldGNoLmM6ODgKIG1zZ2lkICJvbi1kZW1hbmQiCiBtc2dzdHIgIm9uLWRlbWFuZCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc1CisjOiBidWlsdGluL2ZldGNoLmM6ODkKIG1zZ2lkICJjb250cm9sIHJlY3Vyc2l2ZSBmZXRjaGluZyBvZiBzdWJtb2R1bGVzIgogbXNnc3RyICJzdHlyIHJla3Vyc2l2IGjDpG10bmluZyBhdiB1bmRlcm1vZHVsZXIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3OQorIzogYnVpbHRpbi9mZXRjaC5jOjkzCiBtc2dpZCAia2VlcCBkb3dubG9hZGVkIHBhY2siCiBtc2dzdHIgImJlaMOlbGwgaMOkbXRhZGUgcGFrZXQiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4MQorIzogYnVpbHRpbi9mZXRjaC5jOjk1CiBtc2dpZCAiYWxsb3cgdXBkYXRpbmcgb2YgSEVBRCByZWYiCiBtc2dzdHIgInRpbGzDpXQgdXBwZGF0ZXJpbmcgYXYgSEVBRC1yZWZlcmVucyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg0CisjOiBidWlsdGluL2ZldGNoLmM6OTgKIG1zZ2lkICJkZWVwZW4gaGlzdG9yeSBvZiBzaGFsbG93IGNsb25lIgogbXNnc3RyICJmw7ZyZGp1cGEgaGlzdG9yaWsgZsO2ciBncnVuZCBrbG9uIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODYKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDAKIG1zZ2lkICJjb252ZXJ0IHRvIGEgY29tcGxldGUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAia29udmVydGVyYSB0aWxsIGtvbXBsZXR0IGFya2l2IgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODggYnVpbHRpbi9sb2cuYzoxMTc3CisjOiBidWlsdGluL2ZldGNoLmM6MTAyIGJ1aWx0aW4vbG9nLmM6MTE5NwogbXNnaWQgImRpciIKIG1zZ3N0ciAia2F0IgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODkKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDMKIG1zZ2lkICJwcmVwZW5kIHRoaXMgdG8gc3VibW9kdWxlIHBhdGggb3V0cHV0IgogbXNnc3RyICJsw6RnZyB0aWxsIGkgYsO2cmphbiBhdiB1bmRlcm1vZHVsZW5zIHPDtmt2w6Rnc3V0ZGF0YSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkyCisjOiBidWlsdGluL2ZldGNoLmM6MTA2CiBtc2dpZCAiZGVmYXVsdCBtb2RlIGZvciByZWN1cnNpb24iCiBtc2dzdHIgInN0YW5kYXJkbMOkZ2UgZsO2ciByZWt1cnNpb24iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyMjAKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyMzYKIG1zZ2lkICJDb3VsZG4ndCBmaW5kIHJlbW90ZSByZWYgSEVBRCIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBoaXR0YSBmasOkcnItcmVmZXJlbnNlbiBIRUFEIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjczCisjOiBidWlsdGluL2ZldGNoLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCAlcyBub3QgZm91bmQiCiBtc2dzdHIgIm9iamVrdGV0ICVzIGhpdHRhZGVzIGludGUiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyNzgKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyOTUKIG1zZ2lkICJbdXAgdG8gZGF0ZV0iCiBtc2dzdHIgIlvDoGpvdXJdIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjkyCisjOiBidWlsdGluL2ZldGNoLmM6MzA5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiEgJS0qcyAlLSpzIC0+ICVzICAoY2FuJ3QgZmV0Y2ggaW4gY3VycmVudCBicmFuY2gpIgogbXNnc3RyICIhICUtKnMgJS0qcyAtPiAlcyAgKGthbiBpbnRlIGjDpG10YSBpIGFrdHVlbGwgZ3JlbikiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyOTMgYnVpbHRpbi9mZXRjaC5jOjM3OQorIzogYnVpbHRpbi9mZXRjaC5jOjMxMCBidWlsdGluL2ZldGNoLmM6Mzk2CiBtc2dpZCAiW3JlamVjdGVkXSIKIG1zZ3N0ciAiW3JlZnVzZXJhZF0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMDQKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjEKIG1zZ2lkICJbdGFnIHVwZGF0ZV0iCiBtc2dzdHIgIlt1cHBkYXRlcmFkIHRhZ2ddIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzA2IGJ1aWx0aW4vZmV0Y2guYzozNDEgYnVpbHRpbi9mZXRjaC5jOjM1OQorIzogYnVpbHRpbi9mZXRjaC5jOjMyMyBidWlsdGluL2ZldGNoLmM6MzU4IGJ1aWx0aW4vZmV0Y2guYzozNzYKIG1zZ2lkICIgICh1bmFibGUgdG8gdXBkYXRlIGxvY2FsIHJlZikiCiBtc2dzdHIgIiAgKGt1bmRlIGludGUgdXBwZGF0ZXJhIGxva2FsIHJlZikiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMjQKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNDEKIG1zZ2lkICJbbmV3IHRhZ10iCiBtc2dzdHIgIltueSB0YWdnXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMyNworIzogYnVpbHRpbi9mZXRjaC5jOjM0NAogbXNnaWQgIltuZXcgYnJhbmNoXSIKIG1zZ3N0ciAiW255IGdyZW5dIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzMwCisjOiBidWlsdGluL2ZldGNoLmM6MzQ3CiBtc2dpZCAiW25ldyByZWZdIgogbXNnc3RyICJbbnkgcmVmXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM3NQorIzogYnVpbHRpbi9mZXRjaC5jOjM5MgogbXNnaWQgInVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmIgogbXNnc3RyICJrdW5kZSBpbnRlIHVwcGRhdGVyYSBsb2thbCByZWYiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNzUKKyM6IGJ1aWx0aW4vZmV0Y2guYzozOTIKIG1zZ2lkICJmb3JjZWQgdXBkYXRlIgogbXNnc3RyICJ0dmluZ2FkIHVwcGRhdGVyaW5nIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzgxCisjOiBidWlsdGluL2ZldGNoLmM6Mzk4CiBtc2dpZCAiKG5vbi1mYXN0LWZvcndhcmQpIgogbXNnc3RyICIoZWogc25hYmJzcG9sYWQpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDEyIGJ1aWx0aW4vZmV0Y2guYzo3MTgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo0MjkgYnVpbHRpbi9mZXRjaC5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAlczogJXNcbiIKIG1zZ3N0ciAia2FuIGludGUgw7ZwcG5hICVzOiAlc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDIxCisjOiBidWlsdGluL2ZldGNoLmM6NDM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHNcbiIKIG1zZ3N0ciAiJXMgc8OkbmRlIGludGUgYWxsYSBuw7ZkdsOkbmRpZ2Egb2JqZWt0XG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1MjAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRnJvbSAlLipzXG4iCiBtc2dzdHIgIkZyw6VuICUuKnNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjUzMQorIzogYnVpbHRpbi9mZXRjaC5jOjU0OAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAic29tZSBsb2NhbCByZWZzIGNvdWxkIG5vdCBiZSB1cGRhdGVkOyB0cnkgcnVubmluZ1xuIgpAQCAtNDkzMCw1NSArNTExMiw1NSBAQAogInZpc3NhIGxva2FsYSByZWZlcmVuc2VyIGt1bmRlIGludGUgdXBwZGF0ZXJhczsgdGVzdGEgYXR0IGvDtnJhXG4iCiAiIFwiZ2l0IHJlbW90ZSBwcnVuZSAlc1wiIGbDtnIgYXR0IHRhIGJvcnQgZ2FtbGEgZ3JlbmFyIHNvbSBzdMOlciBpIGtvbmZsaWt0IgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTgxCisjOiBidWlsdGluL2ZldGNoLmM6NTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICglcyB3aWxsIGJlY29tZSBkYW5nbGluZykiCiBtc2dzdHIgIiAgICglcyBrb21tZXIgYmxpIGRpbmdsYW5kZSkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1ODIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1OTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgKCVzIGhhcyBiZWNvbWUgZGFuZ2xpbmcpIgogbXNnc3RyICIgICAoJXMgaGFyIGJsaXZpdCBkaW5nbGFuZGUpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTg5CisjOiBidWlsdGluL2ZldGNoLmM6NjA2CiBtc2dpZCAiW2RlbGV0ZWRdIgogbXNnc3RyICJbYm9ydHRhZ2VuXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU5MCBidWlsdGluL3JlbW90ZS5jOjEwNTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo2MDcgYnVpbHRpbi9yZW1vdGUuYzoxMDU1CiBtc2dpZCAiKG5vbmUpIgogbXNnc3RyICIoaW5nZW4pIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NzA4CisjOiBidWlsdGluL2ZldGNoLmM6NzI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlZnVzaW5nIHRvIGZldGNoIGludG8gY3VycmVudCBicmFuY2ggJXMgb2Ygbm9uLWJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiVsOkZ3JhciBow6RtdGEgdGlsbCBha3R1ZWxsIGdyZW4gJXMgaSBldHQgaWNrZS1uYWtldCBhcmtpdiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc0MgotIywgYy1mb3JtYXQKLW1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBmZXRjaCBmcm9tICVzIgotbXNnc3RyICJWZXQgaW50ZSBodXIgbWFuIGjDpG10YXIgZnLDpW4gJXMiCi0KLSM6IGJ1aWx0aW4vZmV0Y2guYzo4MjMKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3NDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3B0aW9uIFwiJXNcIiB2YWx1ZSBcIiVzXCIgaXMgbm90IHZhbGlkIGZvciAlcyIKIG1zZ3N0ciAiRmxhZ2dhbiBcIiVzXCIgb2NoIHbDpHJkZXQgXCIlc1wiIMOkciBpbnRlIGdpbHRpZ3QgZsO2ciAlcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjgyNgorIzogYnVpbHRpbi9mZXRjaC5jOjc0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJPcHRpb24gXCIlc1wiIGlzIGlnbm9yZWQgZm9yICVzXG4iCiBtc2dzdHIgIkZsYWdnYW4gXCIlc1wiIGlnbm9yZXJhcyBmw7ZyICVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MjgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gZmV0Y2ggZnJvbSAlcyIKK21zZ3N0ciAiVmV0IGludGUgaHVyIG1hbiBow6RtdGFyIGZyw6VuICVzIgorCisjOiBidWlsdGluL2ZldGNoLmM6OTc2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZldGNoaW5nICVzXG4iCiBtc2dzdHIgIkjDpG10YXIgJXNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkzMCBidWlsdGluL3JlbW90ZS5jOjEwMAorIzogYnVpbHRpbi9mZXRjaC5jOjk3OCBidWlsdGluL3JlbW90ZS5jOjEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmV0Y2ggJXMiCiBtc2dzdHIgIkt1bmRlIGludGUgaMOkbXRhICVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTQ5CisjOiBidWlsdGluL2ZldGNoLmM6OTk3CiBtc2dpZCAiIgogIk5vIHJlbW90ZSByZXBvc2l0b3J5IHNwZWNpZmllZC4gIFBsZWFzZSwgc3BlY2lmeSBlaXRoZXIgYSBVUkwgb3IgYVxuIgogInJlbW90ZSBuYW1lIGZyb20gd2hpY2ggbmV3IHJldmlzaW9ucyBzaG91bGQgYmUgZmV0Y2hlZC4iCkBAIC00OTg2LDMyICs1MTY4LDMyIEBACiAiSW5nZXQgZmrDpHJyYXJraXYgYW5nYXZzLiBBbmdlIGFudGluZ2VuIGVuIFVSTCBlbGxlciBuYW1uZXQgcMOlIGV0dFxuIgogImZqw6RycmFya2l2IHNvbSBueWEgaW5jaGVja25pbmdhciBza2FsbCBow6RtdGFzIGZyw6VuLiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjk2OQorIzogYnVpbHRpbi9mZXRjaC5jOjEwMjAKIG1zZ2lkICJZb3UgbmVlZCB0byBzcGVjaWZ5IGEgdGFnIG5hbWUuIgogbXNnc3RyICJEdSBtw6VzdGUgYW5nZSBuYW1uZXQgcMOlIGVuIHRhZ2cuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAxNQorIzogYnVpbHRpbi9mZXRjaC5jOjEwNjgKIG1zZ2lkICItLWRlcHRoIGFuZCAtLXVuc2hhbGxvdyBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKIG1zZ3N0ciAiLS1kZXB0aCBvY2ggLS11bnNoYWxsb3cga2FuIGludGUgYW52w6RuZGFzIHNhbXRpZGlndCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMTcKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDcwCiBtc2dpZCAiLS11bnNoYWxsb3cgb24gYSBjb21wbGV0ZSByZXBvc2l0b3J5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tdW5zaGFsbG93IGthbiBpbnRlIGFudsOkbmRhcyBww6UgZXR0IGtvbXBsZXR0IGFya2l2IgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAzNgorIzogYnVpbHRpbi9mZXRjaC5jOjEwODkKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCB0YWtlIGEgcmVwb3NpdG9yeSBhcmd1bWVudCIKIG1zZ3N0ciAiZmV0Y2ggLS1hbGwgdGFyIGludGUgbmFtbmV0IHDDpSBldHQgYXJraXYgc29tIGFyZ3VtZW50IgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAzOAorIzogYnVpbHRpbi9mZXRjaC5jOjEwOTEKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCBtYWtlIHNlbnNlIHdpdGggcmVmc3BlY3MiCiBtc2dzdHIgImZldGNoIC0tYWxsIGthbiBpbnRlIGFuZ2VzIG1lZCByZWZlcmVuc3NwZWNpZmlrYXRpb25lciIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwNDkKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMTAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHN1Y2ggcmVtb3RlIG9yIHJlbW90ZSBncm91cDogJXMiCiBtc2dzdHIgIkZqw6RycmVuIGVsbGVyIGZqw6RycmdydXBwZW4gZmlubnMgaW50ZTogJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDU3CisjOiBidWlsdGluL2ZldGNoLmM6MTExMAogbXNnaWQgIkZldGNoaW5nIGEgZ3JvdXAgYW5kIHNwZWNpZnlpbmcgcmVmc3BlY3MgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiS2FuIGludGUgaMOkbXRhIGZyw6VuIGdydXBwIG9jaCBhbmdlIHJlZmVyZW5zc3BlY2lmaWthdGlvbmVyIgogCkBAIC01MDIwLDkgKzUyMDIsOSBAQAogbXNnc3RyICIiCiAiZ2l0IGZtdC1tZXJnZS1tc2cgWy1tIDxtZWRkZWxhbmRlPl0gWy0tbG9nWz08bj5dfC0tbm8tbG9nXSBbLS1maWxlIDxmaWw+XSIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzIGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NiBidWlsdGluL2dyZXAuYzo3MDAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMgYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NSBidWlsdGluL3Nob3ctcmVmLmM6MTc5Ci0jOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTMzIHBhcnNlLW9wdGlvbnMuaDoyNDMKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MyBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjYgYnVpbHRpbi9ncmVwLmM6NzAyCisjOiBidWlsdGluL21lcmdlLmM6MjAzIGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUgYnVpbHRpbi9zaG93LXJlZi5jOjE3OAorIzogYnVpbHRpbi90YWcuYzo0NDYgcGFyc2Utb3B0aW9ucy5oOjEzNSBwYXJzZS1vcHRpb25zLmg6MjQ1CiBtc2dpZCAibiIKIG1zZ3N0ciAibiIKIApAQCAtNTA0NiwxMTcgKzUyMjgsMTIxIEBACiBtc2dpZCAiZmlsZSB0byByZWFkIGZyb20iCiBtc2dzdHIgImZpbCBhdHQgbMOkc2EgZnLDpW4iCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTc5CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjk5NQogbXNnaWQgImdpdCBmb3ItZWFjaC1yZWYgW29wdGlvbnNdIFs8cGF0dGVybj5dIgogbXNnc3RyICJnaXQgZm9yLWVhY2gtcmVmIFtmbGFnZ29yXSBbPG3Dtm5zdGVyPl0iCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTk0CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMTAKIG1zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHNoZWxscyIKIG1zZ3N0ciAiY2l0ZXJhIHBsYXRzaMOlbGxhcmUgcGFzc2FuZGUgZsO2ciBza2FsIgogCi0jOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjk5NgorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDEyCiBtc2dpZCAicXVvdGUgcGxhY2Vob2xkZXJzIHN1aXRhYmx5IGZvciBwZXJsIgogbXNnc3RyICJjaXRlcmEgcGxhdHNow6VsbGFyZSBwYXNzYW5kZSBmw7ZyIHBlcmwiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTk4CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMTQKIG1zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHB5dGhvbiIKIG1zZ3N0ciAiY2l0ZXJhIHBsYXRzaMOlbGxhcmUgcGFzc2FuZGUgZsO2ciBweXRob24iCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwMAorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDE2CiBtc2dpZCAicXVvdGUgcGxhY2Vob2xkZXJzIHN1aXRhYmx5IGZvciB0Y2wiCiBtc2dzdHIgImNpdGVyYSBwbGF0c2jDpWxsYXJlIHBhc3NhbmRlIGbDtnIgdGNsIgogCi0jOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDMKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAxOQogbXNnaWQgInNob3cgb25seSA8bj4gbWF0Y2hlZCByZWZzIgogbXNnc3RyICJ2aXNhIGVuZGFzdCA8bj4gdHLDpGZmYWRlIHJlZnMiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwNAorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDIwCiBtc2dpZCAiZm9ybWF0IgogbXNnc3RyICJmb3JtYXQiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwNAorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDIwCiBtc2dpZCAiZm9ybWF0IHRvIHVzZSBmb3IgdGhlIG91dHB1dCIKIG1zZ3N0ciAiZm9ybWF0IGF0dCBhbnbDpG5kYSBmw7ZyIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA1CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMjEKIG1zZ2lkICJrZXkiCiBtc2dzdHIgIm55Y2tlbCIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA2CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMjIKIG1zZ2lkICJmaWVsZCBuYW1lIHRvIHNvcnQgb24iCiBtc2dzdHIgImbDpGx0bmFtbiBhdHQgc29ydGVyYSBww6UiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYwOAorIzogYnVpbHRpbi9mc2NrLmM6NjA3CiBtc2dpZCAiZ2l0IGZzY2sgW29wdGlvbnNdIFs8b2JqZWN0Pi4uLl0iCiBtc2dzdHIgImdpdCBmc2NrIFtmbGFnZ29yXSBbPG9iamVrdD4uLi5dIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTQKKyM6IGJ1aWx0aW4vZnNjay5jOjYxMwogbXNnaWQgInNob3cgdW5yZWFjaGFibGUgb2JqZWN0cyIKIG1zZ3N0ciAidmlzYSBvbsOlYmFyYSBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYxNQorIzogYnVpbHRpbi9mc2NrLmM6NjE0CiBtc2dpZCAic2hvdyBkYW5nbGluZyBvYmplY3RzIgogbXNnc3RyICJ2aXNhIGRpbmdsYW5kZSBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYxNgorIzogYnVpbHRpbi9mc2NrLmM6NjE1CiBtc2dpZCAicmVwb3J0IHRhZ3MiCiBtc2dzdHIgInJhcHBvcnRlcmEgdGFnZ2FyIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTcKKyM6IGJ1aWx0aW4vZnNjay5jOjYxNgogbXNnaWQgInJlcG9ydCByb290IG5vZGVzIgogbXNnc3RyICJyYXBwb3J0ZXJhIHJvdG5vZGVyIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTgKKyM6IGJ1aWx0aW4vZnNjay5jOjYxNwogbXNnaWQgIm1ha2UgaW5kZXggb2JqZWN0cyBoZWFkIG5vZGVzIgogbXNnc3RyICJnw7ZyIGluZGV4b2pla3QgdGlsbCBodXZ1ZG5vZGVyIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTkKKyM6IGJ1aWx0aW4vZnNjay5jOjYxOAogbXNnaWQgIm1ha2UgcmVmbG9ncyBoZWFkIG5vZGVzIChkZWZhdWx0KSIKIG1zZ3N0ciAiZ8O2ciByZWZsb2dnYXIgdGlsbCBodXZ1ZG5vZGVyIChzdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYyMAorIzogYnVpbHRpbi9mc2NrLmM6NjE5CiBtc2dpZCAiYWxzbyBjb25zaWRlciBwYWNrcyBhbmQgYWx0ZXJuYXRlIG9iamVjdHMiCiBtc2dzdHIgInRhIMOkdmVuIGjDpG5zeW4gdGlsbCBwYWtldCBvY2ggYWx0ZXJuYXRpdmEgb2JqZWt0IgogCi0jOiBidWlsdGluL2ZzY2suYzo2MjEKKyM6IGJ1aWx0aW4vZnNjay5jOjYyMAogbXNnaWQgImVuYWJsZSBtb3JlIHN0cmljdCBjaGVja2luZyIKIG1zZ3N0ciAiYWt0aXZlcmEgc3RyaWt0YXJlIGtvbnRyb2xsIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MjMKKyM6IGJ1aWx0aW4vZnNjay5jOjYyMgogbXNnaWQgIndyaXRlIGRhbmdsaW5nIG9iamVjdHMgaW4gLmdpdC9sb3N0LWZvdW5kIgogbXNnc3RyICJza3JpdiBkaW5nbGFuZGUgb2JqZWt0IGkgLmdpdC9sb3N0LWZvdW5kIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MjQgYnVpbHRpbi9wcnVuZS5jOjEzNAorIzogYnVpbHRpbi9mc2NrLmM6NjIzIGJ1aWx0aW4vcHJ1bmUuYzoxMzQKIG1zZ2lkICJzaG93IHByb2dyZXNzIgogbXNnc3RyICJ2aXNhIGbDtnJsb3BwIgogCi0jOiBidWlsdGluL2djLmM6MjIKKyM6IGJ1aWx0aW4vZ2MuYzoyMwogbXNnaWQgImdpdCBnYyBbb3B0aW9uc10iCiBtc2dzdHIgImdpdCBnYyBbZmxhZ2dvcl0iCiAKLSM6IGJ1aWx0aW4vZ2MuYzo2MworIzogYnVpbHRpbi9nYy5jOjc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgJXM6ICclcyciCiBtc2dzdHIgIkZlbGFrdGlndCAlczogXCIlc1wiIgogCi0jOiBidWlsdGluL2djLmM6OTAKKyM6IGJ1aWx0aW4vZ2MuYzoxMDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5zYW5lbHkgbG9uZyBvYmplY3QgZGlyZWN0b3J5ICUuKnMiCiBtc2dzdHIgInRva2lndCBsw6VuZyBvYmpla3RrYXRhbG9nICUuKnMiCiAKLSM6IGJ1aWx0aW4vZ2MuYzoxNzkKKyM6IGJ1aWx0aW4vZ2MuYzoyNjEKIG1zZ2lkICJwcnVuZSB1bnJlZmVyZW5jZWQgb2JqZWN0cyIKIG1zZ3N0ciAicmVuc2EgZWogcmVmZXJlcmFkZSBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vZ2MuYzoxODEKKyM6IGJ1aWx0aW4vZ2MuYzoyNjMKIG1zZ2lkICJiZSBtb3JlIHRob3JvdWdoIChpbmNyZWFzZWQgcnVudGltZSkiCiBtc2dzdHIgInZhciBtZXIgZ3J1bmRsaWcgKMO2a2FyIGvDtnJ0aWRlbikiCiAKLSM6IGJ1aWx0aW4vZ2MuYzoxODIKKyM6IGJ1aWx0aW4vZ2MuYzoyNjQKIG1zZ2lkICJlbmFibGUgYXV0by1nYyBtb2RlIgogbXNnc3RyICJha3RpdmVyYSBhdXRvLWdjLWzDpGdlIgogCi0jOiBidWlsdGluL2djLmM6MjIyCisjOiBidWlsdGluL2djLmM6MjY1Cittc2dpZCAiZm9yY2UgcnVubmluZyBnYyBldmVuIGlmIHRoZXJlIG1heSBiZSBhbm90aGVyIGdjIHJ1bm5pbmciCittc2dzdHIgInR2aW5nYSBnYy1rw7ZybmluZyDDpHZlbiBvbSBlbiBhbm5hbiBnYyBrYW5za2Uga8O2cnMiCisKKyM6IGJ1aWx0aW4vZ2MuYzozMDUKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkF1dG8gcGFja2luZyB0aGUgcmVwb3NpdG9yeSBmb3Igb3B0aW11bSBwZXJmb3JtYW5jZS4gWW91IG1heSBhbHNvXG4iCkBAIC01MTY1LDQzICs1MzUxLDUyIEBACiAiUGFja2FyIGFya2l2ZXQgYXV0b21hdGlza3QgZsO2ciBvcHRpbWFsIHByZXN0YW5kYS4gRHUga2FuIMOkdmVuXG4iCiAia8O2cmEgXCJnaXQgZ2NcIiBtYW51ZWxsdC4gU2UgXCJnaXQgaGVscCBnY1wiIGbDtnIgbWVyIGluZm9ybWF0aW9uLlxuIgogCi0jOiBidWlsdGluL2djLmM6MjQ5CisjLiBiZSBxdWlldCBvbiAtLWF1dG8KKyM6IGJ1aWx0aW4vZ2MuYzozMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImdjIGlzIGFscmVhZHkgcnVubmluZyBvbiBtYWNoaW5lICclcycgcGlkICU8UFJJdU1BWD4gKHVzZSAtLWZvcmNlIGlmIG5vdCkiCittc2dzdHIgIiIKKyJnYyBrw7ZycyByZWRhbiBww6UgbWFza2luZW4gXCIlc1wiIHBpZCAlPFBSSXVNQVg+IChhbnbDpG5kIC0tZm9yY2Ugb20gc8OlIGludGUgIgorIsOkciBmYWxsZXQpIgorCisjOiBidWlsdGluL2djLmM6MzQwCiBtc2dpZCAiIgogIlRoZXJlIGFyZSB0b28gbWFueSB1bnJlYWNoYWJsZSBsb29zZSBvYmplY3RzOyBydW4gJ2dpdCBwcnVuZScgdG8gcmVtb3ZlIHRoZW0uIgogbXNnc3RyICIiCiAiRGV0IGZpbm5zIGbDtnIgbcOlbmdhIG9uw6ViYXJhIGzDtnNhIG9iamVrdDsga8O2ciBcImdpdCBwcnVuZVwiIGbDtnIgYXR0IHRhIGJvcnQgIgogImRlbS4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjIyCisjOiBidWlsdGluL2dyZXAuYzoyMwogbXNnaWQgImdpdCBncmVwIFtvcHRpb25zXSBbLWVdIDxwYXR0ZXJuPiBbPHJldj4uLi5dIFtbLS1dIDxwYXRoPi4uLl0iCiBtc2dzdHIgImdpdCBncmVwIFtmbGFnZ29yXSBbLWVdIDxtw7Zuc3Rlcj4gWzxyZXY+Li4uXSBbWy0tXSA8c8O2a3bDpGc+Li4uXSIKIAotIzogYnVpbHRpbi9ncmVwLmM6MjE3CisjOiBidWlsdGluL2dyZXAuYzoyMTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ3JlcDogZmFpbGVkIHRvIGNyZWF0ZSB0aHJlYWQ6ICVzIgogbXNnc3RyICJncmVwOiBtaXNzbHlja2FkZXMgc2thcGEgdHLDpWQuICVzIgogCi0jOiBidWlsdGluL2dyZXAuYzozNjQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjM2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gY2hkaXI6ICVzIgogbXNnc3RyICJLdW5kZSBpbnRlIGJ5dGEga2F0YWxvZyAoY2hkaXIpOiAlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NDQyIGJ1aWx0aW4vZ3JlcC5jOjQ3NworIzogYnVpbHRpbi9ncmVwLmM6NDQzIGJ1aWx0aW4vZ3JlcC5jOjQ3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCB0cmVlICglcykiCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgdHLDpGQgKCVzKSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NDkyCisjOiBidWlsdGluL2dyZXAuYzo0OTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGdyZXAgZnJvbSBvYmplY3Qgb2YgdHlwZSAlcyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBcImdyZXBcIiBmcsOlbiBvYmpla3QgYXYgdHlwZW4gJXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjU1MAorIzogYnVpbHRpbi9ncmVwLmM6NTUxCiAjLCBjLWZvcm1hdAogbXNnaWQgInN3aXRjaCBgJWMnIGV4cGVjdHMgYSBudW1lcmljYWwgdmFsdWUiCiBtc2dzdHIgImZsYWdnYW4gXCIlY1wiIGFudGFyIGV0dCBudW1lcmlza3QgdsOkcmRlIgogCi0jOiBidWlsdGluL2dyZXAuYzo1NjcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjU2OAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAnJXMnIgogbXNnc3RyICJrYW4gaW50ZSDDtnBwbmEgXCIlc1wiIgpAQCAtNTI0MywxNTggKzU0MzgsMTYyIEBACiBtc2dzdHIgInRyw6RmZmEgaW50ZSBtw7Zuc3RlciBpIGJpbsOkcmZpbGVyIgogCiAjOiBidWlsdGluL2dyZXAuYzo2NjIKK21zZ2lkICJwcm9jZXNzIGJpbmFyeSBmaWxlcyB3aXRoIHRleHRjb252IGZpbHRlcnMiCittc2dzdHIgImhhbnRlcmEgYmluw6RyZmlsZXIgbWVkIHRleHRjb252LWZpbHRlciIKKworIzogYnVpbHRpbi9ncmVwLmM6NjY0CiBtc2dpZCAiZGVzY2VuZCBhdCBtb3N0IDxkZXB0aD4gbGV2ZWxzIgogbXNnc3RyICJnw6Ugc29tIG1lc3QgbmVkIDxkanVwPiBuaXbDpWVyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2OAogbXNnaWQgInVzZSBleHRlbmRlZCBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zIgogbXNnc3RyICJhbnbDpG5kIHV0w7ZrYWRlIFBPU0lYLXJlZ3VsasOkcmEgdXR0cnljayIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjY5CisjOiBidWlsdGluL2dyZXAuYzo2NzEKIG1zZ2lkICJ1c2UgYmFzaWMgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyAoZGVmYXVsdCkiCiBtc2dzdHIgImFudsOkbmQgZ3J1bmRsw6RnZ2FuZGUgUE9TSVgtcmVndWxqw6RyYSB1dHRyeWNrIChzdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3MgorIzogYnVpbHRpbi9ncmVwLmM6Njc0CiBtc2dpZCAiaW50ZXJwcmV0IHBhdHRlcm5zIGFzIGZpeGVkIHN0cmluZ3MiCiBtc2dzdHIgInRvbGthIG3Dtm5zdGVyIHNvbSBmaXhlcmFkZSBzdHLDpG5nYXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3NQorIzogYnVpbHRpbi9ncmVwLmM6Njc3CiBtc2dpZCAidXNlIFBlcmwtY29tcGF0aWJsZSByZWd1bGFyIGV4cHJlc3Npb25zIgogbXNnc3RyICJhbnbDpG5kIFBlcmxrb21wYXRpYmxhIHJlZ3VsasOkcmEgdXR0cnljayIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njc4CisjOiBidWlsdGluL2dyZXAuYzo2ODAKIG1zZ2lkICJzaG93IGxpbmUgbnVtYmVycyIKIG1zZ3N0ciAidmlzYSByYWRudW1tZXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3OQorIzogYnVpbHRpbi9ncmVwLmM6NjgxCiBtc2dpZCAiZG9uJ3Qgc2hvdyBmaWxlbmFtZXMiCiBtc2dzdHIgInZpc2EgaW50ZSBmaWxuYW1uIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MgogbXNnaWQgInNob3cgZmlsZW5hbWVzIgogbXNnc3RyICJ2aXNhIGZpbG5hbW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MgorIzogYnVpbHRpbi9ncmVwLmM6Njg0CiBtc2dpZCAic2hvdyBmaWxlbmFtZXMgcmVsYXRpdmUgdG8gdG9wIGRpcmVjdG9yeSIKIG1zZ3N0ciAidmlzYSBmaWxuYW1uIHJlbGF0aXZhIHRpbGwgdG9wcGthdGFsb2dlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njg0CisjOiBidWlsdGluL2dyZXAuYzo2ODYKIG1zZ2lkICJzaG93IG9ubHkgZmlsZW5hbWVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgInZpc2EgZW5kYXN0IGZpbG5hbW4gaXN0w6RsbGV0IGbDtnIgdHLDpGZmYWRlIHJhZGVyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4OAogbXNnaWQgInN5bm9ueW0gZm9yIC0tZmlsZXMtd2l0aC1tYXRjaGVzIgogbXNnc3RyICJzeW5vbnltIGbDtnIgLS1maWxlcy13aXRoLW1hdGNoZXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4OQorIzogYnVpbHRpbi9ncmVwLmM6NjkxCiBtc2dpZCAic2hvdyBvbmx5IHRoZSBuYW1lcyBvZiBmaWxlcyB3aXRob3V0IG1hdGNoIgogbXNnc3RyICJ2aXNhIGVuZGFzdCBuYW1uIHDDpSBmaWxlciB1dGFuIHRyw6RmZmFyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5MwogbXNnaWQgInByaW50IE5VTCBhZnRlciBmaWxlbmFtZXMiCiBtc2dzdHIgInNrcml2IE5VTCBlZnRlciBmaWxuYW1uIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NQogbXNnaWQgInNob3cgdGhlIG51bWJlciBvZiBtYXRjaGVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgInZpc2EgYW50YWwgdHLDpGZmYXIgaXN0w6RsbGV0IGbDtnIgdHLDpGZmYWRlIHJhZGVyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NgogbXNnaWQgImhpZ2hsaWdodCBtYXRjaGVzIgogbXNnc3RyICJsanVzbWFya2VyYSB0csOkZmZhciIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk2CisjOiBidWlsdGluL2dyZXAuYzo2OTgKIG1zZ2lkICJwcmludCBlbXB0eSBsaW5lIGJldHdlZW4gbWF0Y2hlcyBmcm9tIGRpZmZlcmVudCBmaWxlcyIKIG1zZ3N0ciAic2tyaXYgdG9tbWEgcmFkZXIgbWVsbGFuIHRyw6RmZmFyIGZyw6VuIG9saWthIGZpbGVyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwMAogbXNnaWQgInNob3cgZmlsZW5hbWUgb25seSBvbmNlIGFib3ZlIG1hdGNoZXMgZnJvbSBzYW1lIGZpbGUiCiBtc2dzdHIgInZpc2EgZmlsbmFtbiBlbmRhc3QgZW4gZ8Olbmcgb3ZhbmbDtnIgdHLDpGZmYXIgZnLDpW4gc2FtbWEgZmlsIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwMwogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYmVmb3JlIGFuZCBhZnRlciBtYXRjaGVzIgogbXNnc3RyICJ2aXNhIDxuPiByYWRlciBzYW1tYW5oYW5nIGbDtnJlIG9jaCBlZnRlciB0csOkZmZhciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA0CisjOiBidWlsdGluL2dyZXAuYzo3MDYKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGJlZm9yZSBtYXRjaGVzIgogbXNnc3RyICJ2aXNhIDxuPiByYWRlciBzYW1tYW5oYW5nIGbDtnJlIHRyw6RmZmFyIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwOAogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYWZ0ZXIgbWF0Y2hlcyIKIG1zZ3N0ciAidmlzYSA8bj4gcmFkZXIgc2FtbWFuaGFuZyBlZnRlciB0csOkZmZhciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA3CisjOiBidWlsdGluL2dyZXAuYzo3MDkKIG1zZ2lkICJzaG9ydGN1dCBmb3IgLUMgTlVNIgogbXNnc3RyICJnZW52w6RnIGbDtnIgLUMgTlVNIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxMgogbXNnaWQgInNob3cgYSBsaW5lIHdpdGggdGhlIGZ1bmN0aW9uIG5hbWUgYmVmb3JlIG1hdGNoZXMiCiBtc2dzdHIgInZpc2EgZW4gcmFkIG1lZCBmdW5rdGlvbnNuYW1uZXQgZsO2cmUgdHLDpGZmZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxMgorIzogYnVpbHRpbi9ncmVwLmM6NzE0CiBtc2dpZCAic2hvdyB0aGUgc3Vycm91bmRpbmcgZnVuY3Rpb24iCiBtc2dzdHIgInZpc2EgZGVuIG9ta3JpbmdsaWdnYW5kZSBmdW5rdGlvbmVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxNwogbXNnaWQgInJlYWQgcGF0dGVybnMgZnJvbSBmaWxlIgogbXNnc3RyICJsw6RzIG3Dtm5zdGVyIGZyw6VuIGZpbCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE3CisjOiBidWlsdGluL2dyZXAuYzo3MTkKIG1zZ2lkICJtYXRjaCA8cGF0dGVybj4iCiBtc2dzdHIgInRyw6RmZmEgPG3Dtm5zdGVyPiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE5CisjOiBidWlsdGluL2dyZXAuYzo3MjEKIG1zZ2lkICJjb21iaW5lIHBhdHRlcm5zIHNwZWNpZmllZCB3aXRoIC1lIgogbXNnc3RyICJrb21iaW5lcmEgbcO2bnN0ZXIgc29tIGFuZ2VzIG1lZCAtZSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzMxCisjOiBidWlsdGluL2dyZXAuYzo3MzMKIG1zZ2lkICJpbmRpY2F0ZSBoaXQgd2l0aCBleGl0IHN0YXR1cyB3aXRob3V0IG91dHB1dCIKIG1zZ3N0ciAiYW5nZSB0csOkZmYgbWVkIHNsdXRzdGF0dXNrb2QgdXRhbiB1dGRhdGEiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczMworIzogYnVpbHRpbi9ncmVwLmM6NzM1CiBtc2dpZCAic2hvdyBvbmx5IG1hdGNoZXMgZnJvbSBmaWxlcyB0aGF0IG1hdGNoIGFsbCBwYXR0ZXJucyIKIG1zZ3N0ciAidmlzYSBlbmRhc3QgdHLDpGZmYXIgZnLDpW4gZmlsZXIgc29tIHRyw6RmZmFyIGFsbGEgbcO2bnN0ZXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczNQorIzogYnVpbHRpbi9ncmVwLmM6NzM3CiBtc2dpZCAic2hvdyBwYXJzZSB0cmVlIGZvciBncmVwIGV4cHJlc3Npb24iCiBtc2dzdHIgInZpc2EgYW5hbHlzdHLDpGQgZsO2ciBncmVwLXV0dHJ5Y2siCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczOQorIzogYnVpbHRpbi9ncmVwLmM6NzQxCiBtc2dpZCAicGFnZXIiCiBtc2dzdHIgImJsw6RkZHJhcmUiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczOQorIzogYnVpbHRpbi9ncmVwLmM6NzQxCiBtc2dpZCAic2hvdyBtYXRjaGluZyBmaWxlcyBpbiB0aGUgcGFnZXIiCiBtc2dzdHIgInZpc2EgdHLDpGZmYWRlIGZpbGVyIGkgZmlsYmzDpGRkcmFyZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MgorIzogYnVpbHRpbi9ncmVwLmM6NzQ0CiBtc2dpZCAiYWxsb3cgY2FsbGluZyBvZiBncmVwKDEpIChpZ25vcmVkIGJ5IHRoaXMgYnVpbGQpIgogbXNnc3RyICJ0aWxsw6V0IGFucm9wYSBncmVwKDEpIChpZ25vcmVyYXMgYXYgZGV0dGEgYnlnZ2UpIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDMgYnVpbHRpbi9zaG93LXJlZi5jOjE4OAorIzogYnVpbHRpbi9ncmVwLmM6NzQ1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODcKIG1zZ2lkICJzaG93IHVzYWdlIgogbXNnc3RyICJ2aXNhIGFudsOkbmRuaW5nIgogCi0jOiBidWlsdGluL2dyZXAuYzo4MTAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjgxMgogbXNnaWQgIm5vIHBhdHRlcm4gZ2l2ZW4uIgogbXNnc3RyICJpbmdldCBtw7Zuc3RlciBhbmdhdnMuIgogCi0jOiBidWlsdGluL2dyZXAuYzo4NjUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg3MAogbXNnaWQgIi0tb3Blbi1maWxlcy1pbi1wYWdlciBvbmx5IHdvcmtzIG9uIHRoZSB3b3JrdHJlZSIKIG1zZ3N0ciAiLS1vcGVuLWZpbGVzLWluLXBhZ2VyIGZ1bmdlcmFyIGVuZGFzdCBpIGFyYmV0c2thdGFsb2dlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODg4CisjOiBidWlsdGluL2dyZXAuYzo4OTMKIG1zZ2lkICItLWNhY2hlZCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIC0tbm8taW5kZXguIgogbXNnc3RyICItLWNhY2hlZCBvY2ggLS11bnRyYWNrZWQga2FuIGludGUgYW52w6RuZGFzIG1lZCAtLW5vLWluZGV4LiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODkzCisjOiBidWlsdGluL2dyZXAuYzo4OTgKIG1zZ2lkICItLW5vLWluZGV4IG9yIC0tdW50cmFja2VkIGNhbm5vdCBiZSB1c2VkIHdpdGggcmV2cy4iCiBtc2dzdHIgIi0tbm8taW5kZXggb2NoIC0tdW50cmFja2VkIGthbiBpbnRlIGFudsOkbmRhcyBtZWQgcmV2aXNpb25lci4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5NgorIzogYnVpbHRpbi9ncmVwLmM6OTAxCiBtc2dpZCAiLS1bbm8tXWV4Y2x1ZGUtc3RhbmRhcmQgY2Fubm90IGJlIHVzZWQgZm9yIHRyYWNrZWQgY29udGVudHMuIgogbXNnc3RyICItLVtuby1dZXhjbHVkZS1zdGFuZGFyZCBrYW4gaW50ZSBhbnbDpG5kYXMgZsO2ciBzcMOlcmF0IGlubmVow6VsbC4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjkwNAorIzogYnVpbHRpbi9ncmVwLmM6OTA5CiBtc2dpZCAiYm90aCAtLWNhY2hlZCBhbmQgdHJlZXMgYXJlIGdpdmVuLiIKIG1zZ3N0ciAiYsOlZGUgLS1jYWNoZWQgb2NoIHRyw6RkIGFuZ2F2cy4iCiAKQEAgLTU2NDksOCArNTg0OCw4IEBACiBtc2dpZCAiU0hBMSBDT0xMSVNJT04gRk9VTkQgV0lUSCAlcyAhIgogbXNnc3RyICJTSEExLUtPTExJU0lPTiBVUFBUw4RDS1QgVklEICVzICEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2OSBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE3MAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNjIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2OSBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE3MQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNjMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgJXMiCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgJXMiCkBAIC01Njc5LDE1NSArNTg3OCwxNTUgQEAKIG1zZ2lkICJOb3QgYWxsIGNoaWxkIG9iamVjdHMgb2YgJXMgYXJlIHJlYWNoYWJsZSIKIG1zZ3N0ciAiSW50ZSBhbGxhIGJhcm5vYmpla3QgZsO2ciAlcyBrYW4gbsOlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODM4IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2OAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODM5IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2OQogbXNnaWQgImZhaWxlZCB0byBhcHBseSBkZWx0YSIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIHRpbGzDpG1wYSBkZWx0YSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwOQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAxMAogbXNnaWQgIlJlY2VpdmluZyBvYmplY3RzIgogbXNnc3RyICJUYXIgZW1vdCBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMTAKIG1zZ2lkICJJbmRleGluZyBvYmplY3RzIgogbXNnc3RyICJTa2FwYXIgaW5kZXggZsO2ciBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzYKIG1zZ2lkICJwYWNrIGlzIGNvcnJ1cHRlZCAoU0hBMSBtaXNtYXRjaCkiCiBtc2dzdHIgInBha2V0ZXQgw6RyIHRyYXNpZ3QgKFNIQTEgc3TDpG1tZXIgaW50ZSkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDEKIG1zZ2lkICJjYW5ub3QgZnN0YXQgcGFja2ZpbGUiCiBtc2dzdHIgImthbiBpbnRlIHV0ZsO2cmEgXCJmc3RhdFwiIHDDpSBwYWtldGZpbCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0MworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0NAogbXNnaWQgInBhY2sgaGFzIGp1bmsgYXQgdGhlIGVuZCIKIG1zZ3N0ciAicGFrZXQgaGFyIHNrcsOkcCBpIHNsdXRldCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA1NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA1NQogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkgaW4gcGFyc2VfcGFja19vYmplY3RzKCkiCiBtc2dzdHIgImbDtnJ2aXJyYWQgYm9ydG9tIHZhbnZldHQgaSBwYXJzZV9wYWNrX29iamVjdHMoKSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA3NworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA3OAogbXNnaWQgIlJlc29sdmluZyBkZWx0YXMiCiBtc2dzdHIgIkFuYWx5c2VyYXIgZGVsdGEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwODcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwODgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSB0aHJlYWQ6ICVzIgogbXNnc3RyICJrdW5kZSBpbnRlIHNrYXBhIHRyw6VkOiAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyOQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzMAogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkiCiBtc2dzdHIgImbDtnJ2aXJyYWQgYm9ydG9tIHZhbnZldHQiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExMzcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExMzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY29tcGxldGVkIHdpdGggJWQgbG9jYWwgb2JqZWN0cyIKIG1zZ3N0ciAic2x1dGbDtnJkZXMgbWVkICVkIGxva2FsYSBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5leHBlY3RlZCB0YWlsIGNoZWNrc3VtIGZvciAlcyAoZGlzayBjb3JydXB0aW9uPykiCiBtc2dzdHIgIk92w6RudGFkIHN2YW5zY2hlY2tzdW1tYSBmw7ZyICVzICh0cmFzaWcgZGlzaz8pIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTUxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGEiCiBtc2dpZF9wbHVyYWwgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGFzIgogbXNnc3RyWzBdICJwYWtldGV0IGhhciAlZCBvYW5hbHlzZXJhdCBkZWx0YSIKIG1zZ3N0clsxXSAicGFrZXRldCBoYXIgJWQgb2FuYWx5c2VyYWRlIGRlbHRhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTc2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTc3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBkZWZsYXRlIGFwcGVuZGVkIG9iamVjdCAoJWQpIgogbXNnc3RyICJrdW5kZSBpbnRlIHV0ZsO2cmEgXCJkZWZsYXRlXCIgcMOlIHRpbGxhZ3Qgb2JqZWt0ICglZCkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNTUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNTYKICMsIGMtZm9ybWF0CiBtc2dpZCAibG9jYWwgb2JqZWN0ICVzIGlzIGNvcnJ1cHQiCiBtc2dzdHIgImxva2FsdCBvYmpla3QgJXMgw6RyIHRyYXNpZ3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNzkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyODAKIG1zZ2lkICJlcnJvciB3aGlsZSBjbG9zaW5nIHBhY2sgZmlsZSIKIG1zZ3N0ciAiZmVsIHZpZCBzdMOkbmduaW5nIGF2IHBha2V0ZmlsIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjkyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjkzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCB3cml0ZSBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAia2FuIGludGUgdGEgc2tyaXZhIFwia2VlcFwiLWZpbCBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMDAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNsb3NlIHdyaXR0ZW4ga2VlcCBmaWxlICclcyciCiBtc2dzdHIgImFrbiBpbnRlIHN0w6RuZ2Egc2tyaXZlbiBcImtlZXBcIi1maWwgXCIlc1wiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzEzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzE0CiBtc2dpZCAiY2Fubm90IHN0b3JlIHBhY2sgZmlsZSIKIG1zZ3N0ciAia2FuIGludGUgc3BhcmEgcGFrZXRmaWwiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMjQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMjUKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgaW5kZXggZmlsZSIKIG1zZ3N0ciAia2FuIGludGUgc3BhcmEgaW5kZXhmaWwiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIHBhY2suaW5kZXh2ZXJzaW9uPSU8UFJJdTMyPiIKIG1zZ3N0ciAiZmVsYWt0aWcgcGFjay5pbmRleHZlcnNpb249JTxQUkl1MzI+IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzY0CiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIHRocmVhZHMgc3BlY2lmaWVkICglZCkiCiBtc2dzdHIgImZlbGFrdGlndCBhbnRhbCB0csOlZGFyIGFuZ2l2ZXQgKCVkKSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2NyBidWlsdGluL2luZGV4LXBhY2suYzoxNTQ1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzY4IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NDYKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gdGhyZWFkcyBzdXBwb3J0LCBpZ25vcmluZyAlcyIKIG1zZ3N0ciAidHLDpWRzdMO2ZCBzYWtuYXMsIGlnbm9yZXJhciAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGZpbGUgJyVzJyIKIG1zZ3N0ciAiS2FuIGludGUgw7ZwcG5hIGJlZmludGxpZyBwYWtldGZpbCBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gZXhpc3RpbmcgcGFjayBpZHggZmlsZSBmb3IgJyVzJyIKIG1zZ3N0ciAiS2FuIGludGUgw7ZwcG5hIGJlZmludGxpZ3QgcGFrZXQtaWR4LWZpbCBmw7ZyIFwiJXNcIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJub24gZGVsdGE6ICVkIG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAibm9uIGRlbHRhOiAlZCBvYmplY3RzIgogbXNnc3RyWzBdICJpY2tlLWRlbHRhOiAlZCBvYmpla3QiCiBtc2dzdHJbMV0gImlja2UtZGVsdGE6ICVkIG9iamVrdCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ4MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGFpbiBsZW5ndGggPSAlZDogJWx1IG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3RzIgogbXNnc3RyWzBdICJrZWRqZWzDpG5nZCA9ICVkOiAlbHUgb2JqZWt0IgogbXNnc3RyWzFdICJrZWRqZWzDpG5nZCA9ICVkOiAlbHUgb2JqZWt0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTA5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTEwCiBtc2dpZCAiQ2Fubm90IGNvbWUgYmFjayB0byBjd2QiCiBtc2dzdHIgIkthbiBpbnRlIGfDpSB0aWxsYmFrYSB0aWxsIGFyYmV0c2thdGFsb2dlbiAoY3dkKSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU1NyBidWlsdGluL2luZGV4LXBhY2suYzoxNTYwCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTcyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NTggYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3MyBidWlsdGluL2luZGV4LXBhY2suYzoxNTc3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCAlcyIKIG1zZ3N0ciAiZmVsYWt0aWcgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTEKIG1zZ2lkICItLWZpeC10aGluIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgLS1zdGRpbiIKIG1zZ3N0ciAiLS1maXgtdGhpbiBrYW4gaW50ZSBhbnbDpG5kYXMgbWVkIC0tc3RkaW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5NSBidWlsdGluL2luZGV4LXBhY2suYzoxNjA1CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2tmaWxlIG5hbWUgJyVzJyBkb2VzIG5vdCBlbmQgd2l0aCAnLnBhY2snIgogbXNnc3RyICJwYWtldGZpbG5hbW5ldCBcIiVzXCIgc2x1dGFyIGludGUgbWVkIFwiLnBhY2tcIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYxMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYxNAogbXNnaWQgIi0tdmVyaWZ5IHdpdGggbm8gcGFja2ZpbGUgbmFtZSBnaXZlbiIKIG1zZ3N0ciAiLS12ZXJpZnkgYW5nYXZzIHV0YW4gcGFrZXRmaWxuYW1uIgogCkBAIC01OTE2LDExICs2MTE1LDYgQEAKIG1zZ2lkICJ1bmFibGUgdG8gbW92ZSAlcyB0byAlcyIKIG1zZ3N0ciAia2FuIGludGUgZmx5dHRhICVzIHRpbGwgJXMiCiAKLSM6IGJ1aWx0aW4vaW5pdC1kYi5jOjM2MwotIywgYy1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGdpdCBsaW5rICVzIgotbXNnc3RyICJLdW5kZSBpbnRlIHNrYXBhIGdpdGzDpG5rICVzIgotCiAjLgogIy4gKiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICclcycgaXMgZWl0aGVyICJSZWluaXRpYWxpemVkCiAjLiAqIGV4aXN0aW5nIiBvciAiSW5pdGlhbGl6ZWQgZW1wdHkiLCB0aGUgc2Vjb25kICIgc2hhcmVkIiBvcgpAQCAtNTk2Myw3ICs2MTU3LDcgQEAKIG1zZ2lkICJzcGVjaWZ5IHRoYXQgdGhlIGdpdCByZXBvc2l0b3J5IGlzIHRvIGJlIHNoYXJlZCBhbW9uZ3N0IHNldmVyYWwgdXNlcnMiCiBtc2dzdHIgImFuZ2UgYXR0IGdpdC1hcmtpdmV0IHNrYWxsIGRlbGFzIGJsYW5kIGZsZXJhIGFudsOkbmRhcmUiCiAKLSM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc1CisjOiBidWlsdGluL2luaXQtZGIuYzo0OTMgYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NSBidWlsdGluL3JlcGFjay5jOjE1NQogbXNnaWQgImJlIHF1aWV0IgogbXNnc3RyICJ2YXIgdHlzdCIKIApAQCAtNjAwMywzODEgKzYxOTcsMzgxIEBACiBtc2dpZCAiICAgb3I6IGdpdCBzaG93IFtvcHRpb25zXSA8b2JqZWN0Pi4uLiIKIG1zZ3N0ciAiICAgICBlbGxlcjogZ2l0IHNob3cgW2ZsYWdnb3JdIDxvYmpla3Q+Li4uIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNAorIzogYnVpbHRpbi9sb2cuYzoxMjUKIG1zZ2lkICJzdXBwcmVzcyBkaWZmIG91dHB1dCIKIG1zZ3N0ciAidW5kZXJ0cnljayBkaWZmLXV0ZGF0YSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjUKKyM6IGJ1aWx0aW4vbG9nLmM6MTI2CiBtc2dpZCAic2hvdyBzb3VyY2UiCiBtc2dzdHIgInZpc2Ega8OkbGxrb2QiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI2CisjOiBidWlsdGluL2xvZy5jOjEyNwogbXNnaWQgIlVzZSBtYWlsIG1hcCBmaWxlIgogbXNnc3RyICJBbnbDpG5kIGUtcG9zdG1hcHBuaW5nc2ZpbCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjcKKyM6IGJ1aWx0aW4vbG9nLmM6MTI4CiBtc2dpZCAiZGVjb3JhdGUgb3B0aW9ucyIKIG1zZ3N0ciAiZGVrb3JlcmluZ3NmbGFnZ29yIgogCi0jOiBidWlsdGluL2xvZy5jOjIzMAorIzogYnVpbHRpbi9sb2cuYzoyMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmluYWwgb3V0cHV0OiAlZCAlc1xuIgogbXNnc3RyICJTbHV0dXRkYXRhOiAlZCAlc1xuIgogCi0jOiBidWlsdGluL2xvZy5jOjQ1MyBidWlsdGluL2xvZy5jOjU0NQorIzogYnVpbHRpbi9sb2cuYzo0NzMgYnVpbHRpbi9sb2cuYzo1NjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgb2JqZWN0ICVzIgogbXNnc3RyICJLdW5kZSBpbnRlIGzDpHNhIG9iamVrdGV0ICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjU2OQorIzogYnVpbHRpbi9sb2cuYzo1ODkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biB0eXBlOiAlZCIKIG1zZ3N0ciAiT2vDpG5kIHR5cDogJWQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NjY5CisjOiBidWlsdGluL2xvZy5jOjY4OQogbXNnaWQgImZvcm1hdC5oZWFkZXJzIHdpdGhvdXQgdmFsdWUiCiBtc2dzdHIgImZvcm1hdC5oZWFkZXJzIHV0YW4gdsOkcmRlIgogCi0jOiBidWlsdGluL2xvZy5jOjc1MQorIzogYnVpbHRpbi9sb2cuYzo3NzEKIG1zZ2lkICJuYW1lIG9mIG91dHB1dCBkaXJlY3RvcnkgaXMgdG9vIGxvbmciCiBtc2dzdHIgIm5hbW5ldCBww6UgdXRkYXRha2F0YWxvZ2VuIMOkciBmw7ZyIGzDpW5ndCIKIAotIzogYnVpbHRpbi9sb2cuYzo3NjcKKyM6IGJ1aWx0aW4vbG9nLmM6Nzg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIHBhdGNoIGZpbGUgJXMiCiBtc2dzdHIgIkthbiBpbnRlIMO2cHBuYSBwYXRjaGZpbGVuICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjc4MQorIzogYnVpbHRpbi9sb2cuYzo4MDEKIG1zZ2lkICJOZWVkIGV4YWN0bHkgb25lIHJhbmdlLiIKIG1zZ3N0ciAiQmVow7Z2ZXIgcHJlY2lzIGV0dCBpbnRlcnZhbGwuIgogCi0jOiBidWlsdGluL2xvZy5jOjc4OQorIzogYnVpbHRpbi9sb2cuYzo4MDkKIG1zZ2lkICJOb3QgYSByYW5nZS4iCiBtc2dzdHIgIkludGUgZXR0IGludGVydmFsbC4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6ODkxCisjOiBidWlsdGluL2xvZy5jOjkxMQogbXNnaWQgIkNvdmVyIGxldHRlciBuZWVkcyBlbWFpbCBmb3JtYXQiCiBtc2dzdHIgIk9tc2xhZ3NicmV2ZXQgYmVow7Z2ZXIgZS1wb3N0Zm9ybWF0IgogCi0jOiBidWlsdGluL2xvZy5jOjk2NworIzogYnVpbHRpbi9sb2cuYzo5ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5zYW5lIGluLXJlcGx5LXRvOiAlcyIKIG1zZ3N0ciAidG9raWd0IGluLXJlcGx5LXRvOiAlcyIKIAotIzogYnVpbHRpbi9sb2cuYzo5OTUKKyM6IGJ1aWx0aW4vbG9nLmM6MTAxNQogbXNnaWQgImdpdCBmb3JtYXQtcGF0Y2ggW29wdGlvbnNdIFs8c2luY2U+IHwgPHJldmlzaW9uIHJhbmdlPl0iCiBtc2dzdHIgImdpdCBmb3JtYXQtcGF0Y2ggW2ZsYWdnb3JdIFs8c2VkYW4+IHwgPHJldmlzaW9uc2ludGVydmFsbD5dIgogCi0jOiBidWlsdGluL2xvZy5jOjEwNDAKKyM6IGJ1aWx0aW4vbG9nLmM6MTA2MAogbXNnaWQgIlR3byBvdXRwdXQgZGlyZWN0b3JpZXM/IgogbXNnc3RyICJUdsOlIHV0ZGF0YWthdGFsb2dlcj8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1NQorIzogYnVpbHRpbi9sb2cuYzoxMTc1CiBtc2dpZCAidXNlIFtQQVRDSCBuL21dIGV2ZW4gd2l0aCBhIHNpbmdsZSBwYXRjaCIKIG1zZ3N0ciAiYW52w6RuZCBbUEFUQ0ggbi9tXSDDpHZlbiBmw7ZyIGVuIGVuc2FtIHBhdGNoIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3OAogbXNnaWQgInVzZSBbUEFUQ0hdIGV2ZW4gd2l0aCBtdWx0aXBsZSBwYXRjaGVzIgogbXNnc3RyICJhbnbDpG5kIFtQQVRDSF0gw6R2ZW4gZsO2ciBmbGVyYSBwYXRjaGFyIgogCi0jOiBidWlsdGluL2xvZy5jOjExNjIKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4MgogbXNnaWQgInByaW50IHBhdGNoZXMgdG8gc3RhbmRhcmQgb3V0IgogbXNnc3RyICJza3JpdiBwYXRjaGFybmEgcMOlIHN0bmFkYXJkIHV0IgogCi0jOiBidWlsdGluL2xvZy5jOjExNjQKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4NAogbXNnaWQgImdlbmVyYXRlIGEgY292ZXIgbGV0dGVyIgogbXNnc3RyICJnZW5lcmVyYSBldHQgZsO2bGplYnJldiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTY2CisjOiBidWlsdGluL2xvZy5jOjExODYKIG1zZ2lkICJ1c2Ugc2ltcGxlIG51bWJlciBzZXF1ZW5jZSBmb3Igb3V0cHV0IGZpbGUgbmFtZXMiCiBtc2dzdHIgImFudsOkbmQgZW5rZWwgbnVtbWVyc2VrdmVucyBmw7ZyIHV0ZGF0YWZpbG5hbW4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE2NworIzogYnVpbHRpbi9sb2cuYzoxMTg3CiBtc2dpZCAic2Z4IgogbXNnc3RyICJzZngiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE2OAorIzogYnVpbHRpbi9sb2cuYzoxMTg4CiBtc2dpZCAidXNlIDxzZng+IGluc3RlYWQgb2YgJy5wYXRjaCciCiBtc2dzdHIgImFudsOkbmQgPHNmeD4gaXN0w6RsbGV0IGbDtnIgXCIucGF0Y2hcIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTcwCisjOiBidWlsdGluL2xvZy5jOjExOTAKIG1zZ2lkICJzdGFydCBudW1iZXJpbmcgcGF0Y2hlcyBhdCA8bj4gaW5zdGVhZCBvZiAxIgogbXNnc3RyICJiw7ZyamEgbnVtcmVyYSBwYXRjaGFyIHDDpSA8bj4gaXN0w6RsbGV0IGbDtnIgMSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTcyCisjOiBidWlsdGluL2xvZy5jOjExOTIKIG1zZ2lkICJtYXJrIHRoZSBzZXJpZXMgYXMgTnRoIHJlLXJvbGwiCiBtc2dzdHIgIm1hcmtlcmEgc2VyaWVuIHNvbSBOOnRlIGbDtnJzw7ZrIgogCi0jOiBidWlsdGluL2xvZy5jOjExNzQKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5NAogbXNnaWQgIlVzZSBbPHByZWZpeD5dIGluc3RlYWQgb2YgW1BBVENIXSIKIG1zZ3N0ciAiQW52w6RuZCBbPHByZWZpeD5dIGlzdMOkbGxldCBmw7ZyIFtQQVRDSF0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE3NworIzogYnVpbHRpbi9sb2cuYzoxMTk3CiBtc2dpZCAic3RvcmUgcmVzdWx0aW5nIGZpbGVzIGluIDxkaXI+IgogbXNnc3RyICJzcGFyYSBmaWxlcm5hIGkgPGthdGFsb2c+IgogCi0jOiBidWlsdGluL2xvZy5jOjExODAKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMAogbXNnaWQgImRvbid0IHN0cmlwL2FkZCBbUEFUQ0hdIgogbXNnc3RyICJ0YSBpbnRlIGJvcnQgZWxsZXIgbMOkZ2cgdGlsbCBbUEFUQ0hdIgogCi0jOiBidWlsdGluL2xvZy5jOjExODMKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMwogbXNnaWQgImRvbid0IG91dHB1dCBiaW5hcnkgZGlmZnMiCiBtc2dzdHIgInNrcml2IGludGUgYmluw6RyYSBkaWZmYXIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE4NQorIzogYnVpbHRpbi9sb2cuYzoxMjA1CiBtc2dpZCAiZG9uJ3QgaW5jbHVkZSBhIHBhdGNoIG1hdGNoaW5nIGEgY29tbWl0IHVwc3RyZWFtIgogbXNnc3RyICJ0YSBpbnRlIG1lZCBwYXRjaGFyIHNvbSBtb3RzdmFyYXIgZW4gdXBwc3Ryw7Ztc2luY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2xvZy5jOjExODcKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwNwogbXNnaWQgInNob3cgcGF0Y2ggZm9ybWF0IGluc3RlYWQgb2YgZGVmYXVsdCAocGF0Y2ggKyBzdGF0KSIKIG1zZ3N0ciAidmlzYSBwYXRjaGZvcm1hdCBpc3TDpGxsZXQgZsO2ciBzdGFuZGFyZCAocGF0Y2ggKyBzdGF0KSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTg5CisjOiBidWlsdGluL2xvZy5jOjEyMDkKIG1zZ2lkICJNZXNzYWdpbmciCiBtc2dzdHIgIkUtcG9zdCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTkwCisjOiBidWlsdGluL2xvZy5jOjEyMTAKIG1zZ2lkICJoZWFkZXIiCiBtc2dzdHIgImh1dnVkIgogCi0jOiBidWlsdGluL2xvZy5jOjExOTEKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMQogbXNnaWQgImFkZCBlbWFpbCBoZWFkZXIiCiBtc2dzdHIgImzDpGdnIHRpbGwgZS1wb3N0aHV2dWQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5MiBidWlsdGluL2xvZy5jOjExOTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMiBidWlsdGluL2xvZy5jOjEyMTQKIG1zZ2lkICJlbWFpbCIKIG1zZ3N0ciAiZXBvc3QiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5MgorIzogYnVpbHRpbi9sb2cuYzoxMjEyCiBtc2dpZCAiYWRkIFRvOiBoZWFkZXIiCiBtc2dzdHIgIkzDpGdnIHRpbGwgbW90dGFnYXJodXZ1ZCAoXCJUbzpcIikiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5NAorIzogYnVpbHRpbi9sb2cuYzoxMjE0CiBtc2dpZCAiYWRkIENjOiBoZWFkZXIiCiBtc2dzdHIgIkzDpGdnIHRpbGwga29waWVodXZ1ZCAoXCJDYzpcIikiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5NgorIzogYnVpbHRpbi9sb2cuYzoxMjE2CiBtc2dpZCAiaWRlbnQiCiBtc2dzdHIgImlkZW50IgogCi0jOiBidWlsdGluL2xvZy5jOjExOTcKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxNwogbXNnaWQgInNldCBGcm9tIGFkZHJlc3MgdG8gPGlkZW50PiAob3IgY29tbWl0dGVyIGlkZW50IGlmIGFic2VudCkiCiBtc2dzdHIgInPDpHR0IEZyw6VuLWFkcmVzcyB0aWxsIDxpZGVudD4gKGVsbGVyIGluY2hlY2thcmUgb20gaWRlbnQgc2FrbmFzKSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTk5CisjOiBidWlsdGluL2xvZy5jOjEyMTkKIG1zZ2lkICJtZXNzYWdlLWlkIgogbXNnc3RyICJtZWRkZWxhbmRlLWlkIgogCi0jOiBidWlsdGluL2xvZy5jOjEyMDAKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyMAogbXNnaWQgIm1ha2UgZmlyc3QgbWFpbCBhIHJlcGx5IHRvIDxtZXNzYWdlLWlkPiIKIG1zZ3N0ciAiR8O2ciBkZXQgZsO2cnN0YSBicmV2ZXQgZXR0IHN2YXIgdGlsbCA8bWVkZGVsYW5kZS1pZD4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTIwMSBidWlsdGluL2xvZy5jOjEyMDQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyMSBidWlsdGluL2xvZy5jOjEyMjQKIG1zZ2lkICJib3VuZGFyeSIKIG1zZ3N0ciAiZ3LDpG5zIgogCi0jOiBidWlsdGluL2xvZy5jOjEyMDIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyMgogbXNnaWQgImF0dGFjaCB0aGUgcGF0Y2giCiBtc2dzdHIgImJpZm9nYSBwYXRjaGVuIgogCi0jOiBidWlsdGluL2xvZy5jOjEyMDUKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyNQogbXNnaWQgImlubGluZSB0aGUgcGF0Y2giCiBtc2dzdHIgImfDtnIgcGF0Y2hlbiBldHQgaW5saW5lLW9iamVrdCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjA5CisjOiBidWlsdGluL2xvZy5jOjEyMjkKIG1zZ2lkICJlbmFibGUgbWVzc2FnZSB0aHJlYWRpbmcsIHN0eWxlczogc2hhbGxvdywgZGVlcCIKIG1zZ3N0ciAiYWt0aXZlcmEgYnJldnRyw6VkbmluZywgdHlwZXI6IHNoYWxsb3csIGRlZXAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTIxMQorIzogYnVpbHRpbi9sb2cuYzoxMjMxCiBtc2dpZCAic2lnbmF0dXJlIgogbXNnc3RyICJzaWduYXR1ciIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjEyCisjOiBidWlsdGluL2xvZy5jOjEyMzIKIG1zZ2lkICJhZGQgYSBzaWduYXR1cmUiCiBtc2dzdHIgImzDpGdnIHRpbGwgc2lnbmF0dXIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTIxNAorIzogYnVpbHRpbi9sb2cuYzoxMjMzCiBtc2dpZCAiZG9uJ3QgcHJpbnQgdGhlIHBhdGNoIGZpbGVuYW1lcyIKIG1zZ3N0ciAidmlzYSBpbnRlIGZpbG5hbW4gZsO2ciBwYXRjaGFyIgogCi0jOiBidWlsdGluL2xvZy5jOjEyODgKKyM6IGJ1aWx0aW4vbG9nLmM6MTMwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIGlkZW50IGxpbmU6ICVzIgogbXNnc3RyICJvZ2lsdGlnIGlkZW50LXJhZDogJXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTMwMworIzogYnVpbHRpbi9sb2cuYzoxMzIyCiBtc2dpZCAiLW4gYW5kIC1rIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIgogbXNnc3RyICItbiBvY2ggLWsga2FuIGludGUgYW52w6RuZGFzIHNhbXRpZGlndC4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTMwNQorIzogYnVpbHRpbi9sb2cuYzoxMzI0CiBtc2dpZCAiLS1zdWJqZWN0LXByZWZpeCBhbmQgLWsgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCiBtc2dzdHIgIi0tc3ViamVjdC1wcmVmaXggb2NoIC1rIGthbiBpbnRlIGFudsOkbmRhcyBzYW10aWRpZ3QuIgogCi0jOiBidWlsdGluL2xvZy5jOjEzMTMKKyM6IGJ1aWx0aW4vbG9nLmM6MTMzMgogbXNnaWQgIi0tbmFtZS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgImthbiBpbnRlIGFudsOkbmRhIC0tbmFtZS1vbmx5IgogCi0jOiBidWlsdGluL2xvZy5jOjEzMTUKKyM6IGJ1aWx0aW4vbG9nLmM6MTMzNAogbXNnaWQgIi0tbmFtZS1zdGF0dXMgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAia2FuIGludGUgYW52w6RuZGEgLS1uYW1lLXN0YXR1cyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzE3CisjOiBidWlsdGluL2xvZy5jOjEzMzYKIG1zZ2lkICItLWNoZWNrIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgImthbiBpbnRlIGFudsOkbmRhIC0tY2hlY2siCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTM0MAorIzogYnVpbHRpbi9sb2cuYzoxMzU5CiBtc2dpZCAic3RhbmRhcmQgb3V0cHV0LCBvciBkaXJlY3RvcnksIHdoaWNoIG9uZT8iCiBtc2dzdHIgInN0YW5kYXJkIHV0LCBlbGxlciBrYXRhbG9nLCB2aWxrZW4gc2thbGwgZGV0IHZhcmE/IgogCi0jOiBidWlsdGluL2xvZy5jOjEzNDIKKyM6IGJ1aWx0aW4vbG9nLmM6MTM2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSAnJXMnIgogbXNnc3RyICJLdW5kZSBpbnRlIHNrYXBhIGthdGFsb2dlbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQ5MAorIzogYnVpbHRpbi9sb2cuYzoxNTA5CiBtc2dpZCAiRmFpbGVkIHRvIGNyZWF0ZSBvdXRwdXQgZmlsZXMiCiBtc2dzdHIgIk1pc3NseWNrYWRlcyBza2FwYSB1dGRhdGFmaWxlciIKIAotIzogYnVpbHRpbi9sb2cuYzoxNTM5CisjOiBidWlsdGluL2xvZy5jOjE1NTgKIG1zZ2lkICJnaXQgY2hlcnJ5IFstdl0gWzx1cHN0cmVhbT4gWzxoZWFkPiBbPGxpbWl0Pl1dXSIKIG1zZ3N0ciAiZ2l0IGNoZXJyeSBbLXZdIFs8dXBwc3Ryw7ZtPiBbPGh1dnVkPiBbPGdyw6Rucz5dXV0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTU5NAorIzogYnVpbHRpbi9sb2cuYzoxNjEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDb3VsZCBub3QgZmluZCBhIHRyYWNrZWQgcmVtb3RlIGJyYW5jaCwgcGxlYXNlIHNwZWNpZnkgPHVwc3RyZWFtPiBtYW51YWxseS5cbiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBoaXR0YSBlbiBzcMOlcmFkIGZqw6RycmdyZW4sIGFuZ2UgPHVwcHN0csO2bT4gbWFudWVsbHQuXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTYwNyBidWlsdGluL2xvZy5jOjE2MDkgYnVpbHRpbi9sb2cuYzoxNjIxCisjOiBidWlsdGluL2xvZy5jOjE2MjYgYnVpbHRpbi9sb2cuYzoxNjI4IGJ1aWx0aW4vbG9nLmM6MTY0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIGNvbW1pdCAlcyIKIG1zZ3N0ciAiT2vDpG5kIGluY2hlY2tuaW5nICVzIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDA4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6Mzk4CiBtc2dpZCAiZ2l0IGxzLWZpbGVzIFtvcHRpb25zXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiZ2l0IGxzLWZpbGVzIFtmbGFnZ29yXSBbPGZpbD4uLi5dIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDU1CiBtc2dpZCAiaWRlbnRpZnkgdGhlIGZpbGUgc3RhdHVzIHdpdGggdGFncyIKIG1zZ3N0ciAiaWRlbnRpZmllcmEgZmlsc3RhdHVzIG1lZCB0YWdnYXIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTcKIG1zZ2lkICJ1c2UgbG93ZXJjYXNlIGxldHRlcnMgZm9yICdhc3N1bWUgdW5jaGFuZ2VkJyBmaWxlcyIKIG1zZ3N0ciAiYW52w6RuZCBzbcOlIGJva3N0w6R2ZXIgZsO2ciBcImFudGEgb2bDtnLDpG5kcmFkZVwiLWZpbGVyIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDU5CiBtc2dpZCAic2hvdyBjYWNoZWQgZmlsZXMgaW4gdGhlIG91dHB1dCAoZGVmYXVsdCkiCiBtc2dzdHIgInZpc2EgY2FjaGFkZSBmaWxlciBpIHV0ZGF0YSAoc3RhbmRhcmQpIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDcxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDYxCiBtc2dpZCAic2hvdyBkZWxldGVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgInZpc2EgYm9ydHRhZ25hIGZpbGVyIGkgdXRkYXRhIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDczCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDYzCiBtc2dpZCAic2hvdyBtb2RpZmllZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ2aXNhIG1vZGlmaWVyYWRlIGZpbGVyIGkgdXRkYXRhIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY1CiBtc2dpZCAic2hvdyBvdGhlciBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ2aXNhIGFuZHJhIGZpbGVyIGkgdXRkYXRhIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3CiBtc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgInZpc2EgaWdub3JlcmFkZSBmaWxlciBpIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MAogbXNnaWQgInNob3cgc3RhZ2VkIGNvbnRlbnRzJyBvYmplY3QgbmFtZSBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ2aXNhIGvDtmF0IGlubmVow6VsbHMgb2JqZWt0bmFtbiBpIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MgogbXNnaWQgInNob3cgZmlsZXMgb24gdGhlIGZpbGVzeXN0ZW0gdGhhdCBuZWVkIHRvIGJlIHJlbW92ZWQiCiBtc2dzdHIgInZpc2EgZmlsZXIgaSBmaWxzeXN0ZW1ldCBzb20gYmVow7Z2ZXIgdGFzIGJvcnQiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzQKIG1zZ2lkICJzaG93ICdvdGhlcicgZGlyZWN0b3JpZXMnIG5hbWUgb25seSIKIG1zZ3N0ciAidmlzYSBlbmRhc3QgbmFtbiBmw7ZyIFwiYW5kcmFcIiBrYXRhbG9nZXIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzcKIG1zZ2lkICJkb24ndCBzaG93IGVtcHR5IGRpcmVjdG9yaWVzIgogbXNnc3RyICJ2aXNhIGludGUgdG9tbWEga2F0YWxvZ2VyIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkwCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgwCiBtc2dpZCAic2hvdyB1bm1lcmdlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ2aXNhIGVqIHNhbW1hbnNsYWduYSBmaWxlciBpIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MgogbXNnaWQgInNob3cgcmVzb2x2ZS11bmRvIGluZm9ybWF0aW9uIgogbXNnc3RyICJ2aXNhIFwicmVzb2x2ZS11bmRvXCItaW5mb3JtYXRpb24iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODQKIG1zZ2lkICJza2lwIGZpbGVzIG1hdGNoaW5nIHBhdHRlcm4iCiBtc2dzdHIgImhvcHBhIMO2dmVyIGZpbGVyIHNvbSBtb3RzdmFyYXIgbcO2bnN0ZXIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODcKIG1zZ2lkICJleGNsdWRlIHBhdHRlcm5zIGFyZSByZWFkIGZyb20gPGZpbGU+IgogbXNnc3RyICJleGtsdWRlcmEgbcO2bnN0ZXIgc29tIGzDpHNlcyBmcsOlbiA8ZmlsPiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MAogbXNnaWQgInJlYWQgYWRkaXRpb25hbCBwZXItZGlyZWN0b3J5IGV4Y2x1ZGUgcGF0dGVybnMgaW4gPGZpbGU+IgogbXNnc3RyICJsw6RzIHl0dGVybGlnYXJlIHBlci1rYXRhbG9nLWV4a2x1ZGVyaW5nc23Dtm5zdGVyIGZyw6VuIDxmaWw+IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkyCiBtc2dpZCAiYWRkIHRoZSBzdGFuZGFyZCBnaXQgZXhjbHVzaW9ucyIKIG1zZ3N0ciAibMOkZ2cgdGlsbCBnaXQ6cyBzdGFuZGFyZGV4a2x1ZGVyaW5nYXIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDUKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTUKIG1zZ2lkICJtYWtlIHRoZSBvdXRwdXQgcmVsYXRpdmUgdG8gdGhlIHByb2plY3QgdG9wIGRpcmVjdG9yeSIKIG1zZ3N0ciAiZ8O2ciB1dGRhdGEgcmVsYXRpdiB0aWxsIHByb2pla3RldHMgdG9wcGthdGFsb2ciCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTgKIG1zZ2lkICJpZiBhbnkgPGZpbGU+IGlzIG5vdCBpbiB0aGUgaW5kZXgsIHRyZWF0IHRoaXMgYXMgYW4gZXJyb3IiCiBtc2dzdHIgIm9tIGVuIDxmaWw+IGludGUgw6RyIGluZGV4ZXQsIGJldHJha3RhIGRldCBzb20gZXR0IGZlbCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwOQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5OQogbXNnaWQgInRyZWUtaXNoIgogbXNnc3RyICJ0csOkZC1pZ3QiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTAKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDAKIG1zZ2lkICJwcmV0ZW5kIHRoYXQgcGF0aHMgcmVtb3ZlZCBzaW5jZSA8dHJlZS1pc2g+IGFyZSBzdGlsbCBwcmVzZW50IgogbXNnc3RyICJsw6V0c2FzIGF0dCBzw7ZrdsOkZ2FyIGJvcnR0YWduYSBzZWRhbiA8dHLDpGQtaWd0PiBmb3J0ZmFyYW5kZSBmaW5ucyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMgorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMgogbXNnaWQgInNob3cgZGVidWdnaW5nIGRhdGEiCiBtc2dzdHIgInZpc2EgZmVsc8O2a25pbmdzdXRkYXRhIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoyNworIzogYnVpbHRpbi9scy10cmVlLmM6MjgKIG1zZ2lkICJnaXQgbHMtdHJlZSBbPG9wdGlvbnM+XSA8dHJlZS1pc2g+IFs8cGF0aD4uLi5dIgogbXNnc3RyICJnaXQgbHMtdHJlZSBbPGZsYWdnb3I+XSA8dHLDpGQtaWd0PiBbPHPDtmt2w6RnPi4uLl0iCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyNQorIzogYnVpbHRpbi9scy10cmVlLmM6MTI2CiBtc2dpZCAib25seSBzaG93IHRyZWVzIgogbXNnc3RyICJ2aXNhIGVuZGFzdCB0csOkZCIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTI3CisjOiBidWlsdGluL2xzLXRyZWUuYzoxMjgKIG1zZ2lkICJyZWN1cnNlIGludG8gc3VidHJlZXMiCiBtc2dzdHIgInJla3Vyc2VyYSBuZXIgaSB1bmRlcnRyw6RkIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxMjkKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMAogbXNnaWQgInNob3cgdHJlZXMgd2hlbiByZWN1cnNpbmciCiBtc2dzdHIgInZpc2EgdHLDpGQgbWVkYW4gcmVrdXJzZXJpbmciCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMgorIzogYnVpbHRpbi9scy10cmVlLmM6MTMzCiBtc2dpZCAidGVybWluYXRlIGVudHJpZXMgd2l0aCBOVUwgYnl0ZSIKIG1zZ3N0ciAidGVybWluZXJhIHBvc3RlciBtZWQgTlVMLWJ5dGUiCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMworIzogYnVpbHRpbi9scy10cmVlLmM6MTM0CiBtc2dpZCAiaW5jbHVkZSBvYmplY3Qgc2l6ZSIKIG1zZ3N0ciAiaW5rbHVkZXJhIG9iamVrdHN0b3JsZWsiCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzNSBidWlsdGluL2xzLXRyZWUuYzoxMzcKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzNiBidWlsdGluL2xzLXRyZWUuYzoxMzgKIG1zZ2lkICJsaXN0IG9ubHkgZmlsZW5hbWVzIgogbXNnc3RyICJ2aXNhIGVuZGFzdCBmaWxuYW1uIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxNDAKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjE0MQogbXNnaWQgInVzZSBmdWxsIHBhdGggbmFtZXMiCiBtc2dzdHIgImFudsOkbmQgZnVsbHN0w6RuZGlnYSBzw7ZrdsOkZ3NuYW1uIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxNDIKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjE0MwogbXNnaWQgImxpc3QgZW50aXJlIHRyZWU7IG5vdCBqdXN0IGN1cnJlbnQgZGlyZWN0b3J5IChpbXBsaWVzIC0tZnVsbC1uYW1lKSIKIG1zZ3N0ciAidmlzYSBoZWxhIHRyw6RkZXQ7IGludGUgYmFyYSBha3R1ZWxsIGthdGFsb2cgKGltcGxpY2VyYXIgLS1mdWxsLW5hbWUpIgogCkBAIC02NDUzLDcgKzY2NDcsNyBAQAogbXNnaWQgIlZlcmlmeSB0aGF0IHRoZSBuYW1lZCBjb21taXQgaGFzIGEgdmFsaWQgR1BHIHNpZ25hdHVyZSIKIG1zZ3N0ciAiQmVrcsOkZnRhIGF0dCBkZW4gbmFtbmdpdm5hIGluY2hlY2tuaW5nZW4gaGFyIGVuIGdpbHRpZyBHUEctc2lnbmF0dXIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTkgYnVpbHRpbi9ub3Rlcy5jOjczOCBidWlsdGluL3JldmVydC5jOjExNAorIzogYnVpbHRpbi9tZXJnZS5jOjIxOSBidWlsdGluL25vdGVzLmM6NzM4IGJ1aWx0aW4vcmV2ZXJ0LmM6ODkKIG1zZ2lkICJzdHJhdGVneSIKIG1zZ3N0ciAic3RyYXRlZ2kiCiAKQEAgLTY4MjIsNzYgKzcwMTYsODYgQEAKIG1zZ2lkICJhbGxvdyBjcmVhdGlvbiBvZiBtb3JlIHRoYW4gb25lIHRyZWUiCiBtc2dzdHIgInRpbGzDpXQgc2thcGEgbWVyIMOkbiBldHQgdHLDpGQiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxNAorIzogYnVpbHRpbi9tdi5jOjE1CiBtc2dpZCAiZ2l0IG12IFtvcHRpb25zXSA8c291cmNlPi4uLiA8ZGVzdGluYXRpb24+IgogbXNnc3RyICJnaXQgbXYgW2ZsYWdnb3JdIDxrw6RsbGE+Li4uIDxtw6VsPiIKIAotIzogYnVpbHRpbi9tdi5jOjY0CisjOiBidWlsdGluL212LmM6NjcKIG1zZ2lkICJmb3JjZSBtb3ZlL3JlbmFtZSBldmVuIGlmIHRhcmdldCBleGlzdHMiCiBtc2dzdHIgInR2aW5nYSBmbHl0dGEvw6RuZHJhIG5hbW4gw6R2ZW4gb20gbcOlbGV0IGZpbm5zIgogCi0jOiBidWlsdGluL212LmM6NjUKKyM6IGJ1aWx0aW4vbXYuYzo2OAogbXNnaWQgInNraXAgbW92ZS9yZW5hbWUgZXJyb3JzIgogbXNnc3RyICJob3BwYSDDtnZlciBmZWwgdmlkIGZseXR0L25hbW7DpG5kcmluZyIKIAotIzogYnVpbHRpbi9tdi5jOjEwOAorIzogYnVpbHRpbi9tdi5jOjExMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGVja2luZyByZW5hbWUgb2YgJyVzJyB0byAnJXMnXG4iCiBtc2dzdHIgIktvbnRyb2xsZXJhciBuYW1uYnl0ZSBhdiBcIiVzXCIgdGlsbCBcIiVzXCJcbiIKIAotIzogYnVpbHRpbi9tdi5jOjExMgorIzogYnVpbHRpbi9tdi5jOjExNwogbXNnaWQgImJhZCBzb3VyY2UiCiBtc2dzdHIgImZlbGFrdGlnIGvDpGxsYSIKIAotIzogYnVpbHRpbi9tdi5jOjExNQorIzogYnVpbHRpbi9tdi5jOjEyMAogbXNnaWQgImNhbiBub3QgbW92ZSBkaXJlY3RvcnkgaW50byBpdHNlbGYiCiBtc2dzdHIgImthbiBpbnRlIGZseXR0YSBrYXRhbG9nIHRpbGwgc2lnIHNqw6RsdiIKIAotIzogYnVpbHRpbi9tdi5jOjExOAorIzogYnVpbHRpbi9tdi5jOjEyMwogbXNnaWQgImNhbm5vdCBtb3ZlIGRpcmVjdG9yeSBvdmVyIGZpbGUiCiBtc2dzdHIgImthbiBpbnRlIGZseXR0YSBrYXRhbG9nIMO2dmVyIGZpbCIKIAotIzogYnVpbHRpbi9tdi5jOjEyOAorIzogYnVpbHRpbi9tdi5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICJIdWg/IERpcmVjdG9yeSAlcyBpcyBpbiBpbmRleCBhbmQgbm8gc3VibW9kdWxlPyIKK21zZ3N0ciAiVmFkPyBLYXRhbG9nZW4gJXMgw6RyIGkgaW5kZXhldCBvY2ggaW50ZSBlbiB1bmRlcm1vZHVsPyIKKworIzogYnVpbHRpbi9tdi5jOjEzMSBidWlsdGluL3JtLmM6MzE4Cittc2dpZCAiUGxlYXNlLCBzdGFnZSB5b3VyIGNoYW5nZXMgdG8gLmdpdG1vZHVsZXMgb3Igc3Rhc2ggdGhlbSB0byBwcm9jZWVkIgorbXNnc3RyICIiCisiS8O2YSBkaW5hIMOkbmRyaW5nYXIgaSAuZ2l0bW9kdWxlcyBlbGxlciBhbnbDpG5kIFwic3Rhc2hcIiBmw7ZyIGF0dCBmb3J0c8OkdHRhIgorCisjOiBidWlsdGluL212LmM6MTQ3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkh1aD8gJS4qcyBpcyBpbiBpbmRleD8iCiBtc2dzdHIgIlZhZD8gJS4qcyDDpHIgaSBpbmRleGV0PyIKIAotIzogYnVpbHRpbi9tdi5jOjE0MAorIzogYnVpbHRpbi9tdi5jOjE1OQogbXNnaWQgInNvdXJjZSBkaXJlY3RvcnkgaXMgZW1wdHkiCiBtc2dzdHIgImvDpGxsa2F0YWxvZ2VuIMOkciB0b20iCiAKLSM6IGJ1aWx0aW4vbXYuYzoxNzEKKyM6IGJ1aWx0aW4vbXYuYzoxOTEKIG1zZ2lkICJub3QgdW5kZXIgdmVyc2lvbiBjb250cm9sIgogbXNnc3RyICJpbnRlIHZlcnNpb25zaGFudGVyYWQiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxNzMKKyM6IGJ1aWx0aW4vbXYuYzoxOTMKIG1zZ2lkICJkZXN0aW5hdGlvbiBleGlzdHMiCiBtc2dzdHIgImRlc3RpbmF0aW9uZW4gZmlubnMiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxODEKKyM6IGJ1aWx0aW4vbXYuYzoyMDEKICMsIGMtZm9ybWF0CiBtc2dpZCAib3ZlcndyaXRpbmcgJyVzJyIKIG1zZ3N0ciAic2tyaXZlciDDtnZlciBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxODQKKyM6IGJ1aWx0aW4vbXYuYzoyMDQKIG1zZ2lkICJDYW5ub3Qgb3ZlcndyaXRlIgogbXNnc3RyICJLYW4gaW50ZSBza3JpdmEgw7Z2ZXIiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxODcKKyM6IGJ1aWx0aW4vbXYuYzoyMDcKIG1zZ2lkICJtdWx0aXBsZSBzb3VyY2VzIGZvciB0aGUgc2FtZSB0YXJnZXQiCiBtc2dzdHIgImZsZXJhIGvDpGxsb3IgZsO2ciBzYW1tYSBtw6VsIgogCi0jOiBidWlsdGluL212LmM6MjAyCisjOiBidWlsdGluL212LmM6MjIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzLCBzb3VyY2U9JXMsIGRlc3RpbmF0aW9uPSVzIgogbXNnc3RyICIlcywga8OkbGxhPSVzLCBtw6VsPSVzIgogCi0jOiBidWlsdGluL212LmM6MjEyCisjOiBidWlsdGluL212LmM6MjMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbmFtaW5nICVzIHRvICVzXG4iCiBtc2dzdHIgIkJ5dGVyIG5hbW4gcMOlICVzIHRpbGwgJXNcbiIKIAotIzogYnVpbHRpbi9tdi5jOjIxNSBidWlsdGluL3JlbW90ZS5jOjczMQorIzogYnVpbHRpbi9tdi5jOjIzNSBidWlsdGluL3JlbW90ZS5jOjczMSBidWlsdGluL3JlcGFjay5jOjMzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW5hbWluZyAnJXMnIGZhaWxlZCIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIGJ5dGEgbmFtbiBww6UgXCIlc1wiIgpAQCAtNjkyOSw4ICs3MTMzLDggQEAKIG1zZ3N0ciAibMOkcyBmcsOlbiBzdGFuZGFyZCBpbiIKIAogIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyMAotbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIgotbXNnc3RyICJ0aWxsw6V0IGF0dCBza3JpdmEgXCJvZGVmaW5pZXJhZGVcIiBuYW1uIgorbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIChkZWZhdWx0KSIKK21zZ3N0ciAidGlsbMOldCBhdHQgc2tyaXZhIFwib2RlZmluaWVyYWRlXCIgbmFtbiAoc3RhbmRhcmQpIgogCiAjOiBidWlsdGluL25hbWUtcmV2LmM6MzI2CiBtc2dpZCAiZGVyZWZlcmVuY2UgdGFncyBpbiB0aGUgaW5wdXQgKGludGVybmFsIHVzZSkiCkBAIC03MDg1LDEyICs3Mjg5LDEyIEBACiBtc2dpZCAiVGhlIG5vdGUgY29udGVudHMgaGFzIGJlZW4gbGVmdCBpbiAlcyIKIG1zZ3N0ciAiQW50ZWNrbmluZ2VucyBpbm5laMOlbGwgaGFyIGzDpG1uYXRzIGt2YXIgaSAlcyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI0OCBidWlsdGluL3RhZy5jOjU0MAorIzogYnVpbHRpbi9ub3Rlcy5jOjI0OCBidWlsdGluL3RhZy5jOjUzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAnJXMnIgogbXNnc3RyICJrdW5kZSBpbnRlIGzDpHNhIFwiJXNcIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI1MCBidWlsdGluL3RhZy5jOjU0MworIzogYnVpbHRpbi9ub3Rlcy5jOjI1MCBidWlsdGluL3RhZy5jOjU0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiBvciByZWFkICclcyciCiBtc2dzdHIgImt1bmRlIGludGUgw7ZwcG5hIGVsbGVyIGzDpHNhIFwiJXNcIiIKQEAgLTcwOTgsNyArNzMwMiw3IEBACiAjOiBidWlsdGluL25vdGVzLmM6MjY5IGJ1aWx0aW4vbm90ZXMuYzozMTYgYnVpbHRpbi9ub3Rlcy5jOjMxOAogIzogYnVpbHRpbi9ub3Rlcy5jOjM3OCBidWlsdGluL25vdGVzLmM6NDMyIGJ1aWx0aW4vbm90ZXMuYzo1MTUKICM6IGJ1aWx0aW4vbm90ZXMuYzo1MjAgYnVpbHRpbi9ub3Rlcy5jOjU5NSBidWlsdGluL25vdGVzLmM6NjM3Ci0jOiBidWlsdGluL25vdGVzLmM6ODM5IGJ1aWx0aW4vdGFnLmM6NTU2CisjOiBidWlsdGluL25vdGVzLmM6ODM5IGJ1aWx0aW4vdGFnLmM6NTUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZWYuIgogbXNnc3RyICJLdW5kZSBpbnRlIHNsw6UgdXBwIFwiJXNcIiBzb20gZW4gZ2lsdGlnIHJlZmVyZW5zLiIKQEAgLTcyNzEsMTQ4ICs3NDc1LDE0OCBAQAogbXNnaWQgImdpdCBwYWNrLW9iamVjdHMgW29wdGlvbnMuLi5dIGJhc2UtbmFtZSBbPCByZWYtbGlzdCB8IDwgb2JqZWN0LWxpc3RdIgogbXNnc3RyICJnaXQgcGFjay1vYmplY3RzIFtmbGFnZ29yLi4uXSBiYXNuYW1uIFs8IHJlZmxpc3RhIHwgPCBvYmpla3RsaXN0YV0iCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTgzIGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTg2CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE4NCBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJkZWZsYXRlIGVycm9yICglZCkiCiBtc2dzdHIgImZlbCBpIGRlZmxhdGUgKCVkKSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyMzk3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjIzOTgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5zdXBwb3J0ZWQgaW5kZXggdmVyc2lvbiAlcyIKIG1zZ3N0ciAiaW5kZXh2ZXJzaW9uZW4gJXMgc3TDtmRzIGVqIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MDEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgaW5kZXggdmVyc2lvbiAnJXMnIgogbXNnc3RyICJmZWxha3RpZyBpbmRleHZlcnNpb24gXCIlc1wiIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MjQKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJvcHRpb24gJXMgZG9lcyBub3QgYWNjZXB0IG5lZ2F0aXZlIGZvcm0iCiBtc2dzdHIgImZsYWdnYW4gJXMgZ29kdGFyIGludGUgbmVnYXRpdiBmb3JtIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MjgKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcGFyc2UgdmFsdWUgJyVzJyBmb3Igb3B0aW9uICVzIgogbXNnc3RyICJrdW5kZSBpbnRlIHRvbGthIHbDpHJkZXQgXCIlc1wiIGbDtnIgZmxhZ2dhbiAlcyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDQ3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NDgKIG1zZ2lkICJkbyBub3Qgc2hvdyBwcm9ncmVzcyBtZXRlciIKIG1zZ3N0ciAidmlzYSBpbnRlIGbDtnJsb3Bwc2luZGlrYXRvciIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDQ5CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTAKIG1zZ2lkICJzaG93IHByb2dyZXNzIG1ldGVyIgogbXNnc3RyICJ2aXNhIGbDtnJsb3Bwc2luZGlrYXRvciIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDUxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTIKIG1zZ2lkICJzaG93IHByb2dyZXNzIG1ldGVyIGR1cmluZyBvYmplY3Qgd3JpdGluZyBwaGFzZSIKIG1zZ3N0ciAidmlzYSBmw7ZybG9wcHNpbmRpa2F0b3IgdW5kZXIgb2JqZWt0c2tyaXZuaW5nc2Zhc2VuIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTQKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NQogbXNnaWQgInNpbWlsYXIgdG8gLS1hbGwtcHJvZ3Jlc3Mgd2hlbiBwcm9ncmVzcyBtZXRlciBpcyBzaG93biIKIG1zZ3N0ciAic29tIC0tYWxsLXByb2dyZXNzIG7DpHIgZsO2cmxvcHBzbcOkdGFyZW4gdmlzYXMiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU2CiBtc2dpZCAidmVyc2lvblssb2Zmc2V0XSIKIG1zZ3N0ciAidmVyc2lvblssb2Zmc2V0XSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU2CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTcKIG1zZ2lkICJ3cml0ZSB0aGUgcGFjayBpbmRleCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgaWR4IGZvcm1hdCB2ZXJzaW9uIgogbXNnc3RyICJza3JpdiBwYWtldGluZGV4ZmlsZW4gaSBhbmdpdmVuIGluZGV4Zm9ybWF0dmVyc2lvbiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU5CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjAKIG1zZ2lkICJtYXhpbXVtIHNpemUgb2YgZWFjaCBvdXRwdXQgcGFjayBmaWxlIgogbXNnc3RyICJtYXhpbWFsIHN0b3JsZWsgcMOlIHZhcmplIHV0ZGF0YXBha2V0ZmlsIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2MgogbXNnaWQgImlnbm9yZSBib3Jyb3dlZCBvYmplY3RzIGZyb20gYWx0ZXJuYXRlIG9iamVjdCBzdG9yZSIKIG1zZ3N0ciAiaWdub3JlcmEgbMOlbmFkZSBvYmpla3QgZnLDpW4gYWx0ZXJuYXRpdmEgb2JqZWt0bGFnZXIiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2MworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDY0CiBtc2dpZCAiaWdub3JlIHBhY2tlZCBvYmplY3RzIgogbXNnc3RyICJpZ25vcmVyYSBwYWNrYWRlIG9iamVrdCIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDY1CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjYKIG1zZ2lkICJsaW1pdCBwYWNrIHdpbmRvdyBieSBvYmplY3RzIgogbXNnc3RyICJiZWdyw6Ruc2EgcGFrZXRmw7Zuc3RlciBlZnRlciBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2NworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDY4CiBtc2dpZCAibGltaXQgcGFjayB3aW5kb3cgYnkgbWVtb3J5IGluIGFkZGl0aW9uIHRvIG9iamVjdCBsaW1pdCIKIG1zZ3N0ciAiYmVncsOkbnNhIHBha2V0ZsO2bnN0ZXIgZWZ0ZXIgbWlubmUgZsO2cnV0b20gb2JqZWt0Z3LDpG5zIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3MAogbXNnaWQgIm1heGltdW0gbGVuZ3RoIG9mIGRlbHRhIGNoYWluIGFsbG93ZWQgaW4gdGhlIHJlc3VsdGluZyBwYWNrIgogbXNnc3RyICJtYXhpbWFsIGzDpG5nZCBww6UgZGVsdGFrZWRqYSB0aWxsw6V0ZW4gaSBzbHV0bGlndCBwYWtldCIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDcxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzIKIG1zZ2lkICJyZXVzZSBleGlzdGluZyBkZWx0YXMiCiBtc2dzdHIgIsOldGVyYW52w6RuZCBiZWZpbnRsaWdhIGRlbHRhIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzMKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3NAogbXNnaWQgInJldXNlIGV4aXN0aW5nIG9iamVjdHMiCiBtc2dzdHIgIsOldGVyYW52w6RuZCBiZWZpbnRsaWdhIG9iamVrdCIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDc1CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzYKIG1zZ2lkICJ1c2UgT0ZTX0RFTFRBIG9iamVjdHMiCiBtc2dzdHIgImFudsOkbmQgT0ZTX0RFTFRBLW9iamVrdCIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDc3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzgKIG1zZ2lkICJ1c2UgdGhyZWFkcyB3aGVuIHNlYXJjaGluZyBmb3IgYmVzdCBkZWx0YSBtYXRjaGVzIgogbXNnc3RyICJhbnbDpG5kIHRyw6VkYXIgdmlkIHPDtmtuaW5nIGVmdGVyIGLDpHN0YSBkZWx0YXRyw6RmZmFyIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4MAogbXNnaWQgImRvIG5vdCBjcmVhdGUgYW4gZW1wdHkgcGFjayBvdXRwdXQiCiBtc2dzdHIgImbDtnJzw7ZrIGludGUgc2thcGEgdG9tIHBha2V0dXRkYXRhIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4MgogbXNnaWQgInJlYWQgcmV2aXNpb24gYXJndW1lbnRzIGZyb20gc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgImzDpHMgcmV2aXNpb25zYXJndW1lbnQgZnLDpW4gc3RhbmRhcmQgaW4iCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4MworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDg0CiBtc2dpZCAibGltaXQgdGhlIG9iamVjdHMgdG8gdGhvc2UgdGhhdCBhcmUgbm90IHlldCBwYWNrZWQiCiBtc2dzdHIgImJlZ3LDpG5zYSBvYmpla3QgdGlsbCBkZSBzb20gw6RubnUgaW50ZSBwYWNrYXRzIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODYKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4NwogbXNnaWQgImluY2x1ZGUgb2JqZWN0cyByZWFjaGFibGUgZnJvbSBhbnkgcmVmZXJlbmNlIgogbXNnc3RyICJpbmtsdWRlcmEgb2JqZWt0IHNvbSBrYW4gbsOlcyBmcsOlbiBuw6Vnb24gcmVmZXJlbnMiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4OQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDkwCiBtc2dpZCAiaW5jbHVkZSBvYmplY3RzIHJlZmVycmVkIGJ5IHJlZmxvZyBlbnRyaWVzIgogbXNnc3RyICJpbmtsdWRlcmEgb2JqZWt0IHNvbSByZWZlcmVyYXMgZnLDpW4gcmVmZXJlbnNsb2dncG9zdGVyIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTIKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5MwogbXNnaWQgIm91dHB1dCBwYWNrIHRvIHN0ZG91dCIKIG1zZ3N0ciAic2tyaXYgcGFrZXQgcMOlIHN0YW5kYXJkIHV0IgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTQKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NQogbXNnaWQgImluY2x1ZGUgdGFnIG9iamVjdHMgdGhhdCByZWZlciB0byBvYmplY3RzIHRvIGJlIHBhY2tlZCIKIG1zZ3N0ciAiaW5rbHVkZXJhIHRhZ2dvYmpla3Qgc29tIHJlZmVyZXJhciBvYmpla3Qgc29tIHNrYWxsIHBhY2thcyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk2CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTcKIG1zZ2lkICJrZWVwIHVucmVhY2hhYmxlIG9iamVjdHMiCiBtc2dzdHIgImJlaMOlbGwgb27DpWJhcmEgb2JqZWt0IgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTcgcGFyc2Utb3B0aW9ucy5oOjE0MQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk4IHBhcnNlLW9wdGlvbnMuaDoxNDMKIG1zZ2lkICJ0aW1lIgogbXNnc3RyICJ0aWQiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5OAorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk5CiBtc2dpZCAidW5wYWNrIHVucmVhY2hhYmxlIG9iamVjdHMgbmV3ZXIgdGhhbiA8dGltZT4iCiBtc2dzdHIgInBhY2thIHVwcCBvbsOlYmFyYSBvYmpla3QgbnlhcmUgw6RuIDx0aWQ+IgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwMgogbXNnaWQgImNyZWF0ZSB0aGluIHBhY2tzIgogbXNnc3RyICJza2FwYSB0dW5uYSBwYWtldCIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTAzCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDQKIG1zZ2lkICJpZ25vcmUgcGFja3MgdGhhdCBoYXZlIGNvbXBhbmlvbiAua2VlcCBmaWxlIgogbXNnc3RyICJpZ25vcmVyYSBwYWtldCBzb20gaGFyIHRpbGxow7ZyYW5kZSAua2VlcC1maWwiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA2CiBtc2dpZCAicGFjayBjb21wcmVzc2lvbiBsZXZlbCIKIG1zZ3N0ciAia29tcHJpbWVyaW5nc2dyYWQgZsO2ciBwYWtldCIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDgKIG1zZ2lkICJkbyBub3QgaGlkZSBjb21taXRzIGJ5IGdyYWZ0cyIKIG1zZ3N0ciAiZ8O2bSBpbnRlIGluY2hlY2tuaW5nYXIgbWVkIHltcG5pbmdhciAoXCJncmFmdHNcIikiCiAKQEAgLTc0NTIsMTUgKzc2NTYsMTUgQEAKIG1zZ2lkICJnaXQgcHVzaCBbPG9wdGlvbnM+XSBbPHJlcG9zaXRvcnk+IFs8cmVmc3BlYz4uLi5dXSIKIG1zZ3N0ciAiZ2l0IHB1c2ggWzxmbGFnZ29yPl0gWzxhcmtpdj4gWzxyZWZzcGVjPi4uLl1dIgogCi0jOiBidWlsdGluL3B1c2guYzo0NQorIzogYnVpbHRpbi9wdXNoLmM6NDcKIG1zZ2lkICJ0YWcgc2hvcnRoYW5kIHdpdGhvdXQgPHRhZz4iCiBtc2dzdHIgInRhZ2dmw7Zya29ydG5pbmcgdXRhbiA8dGFnZz4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjY0CisjOiBidWlsdGluL3B1c2guYzo2NgogbXNnaWQgIi0tZGVsZXRlIG9ubHkgYWNjZXB0cyBwbGFpbiB0YXJnZXQgcmVmIG5hbWVzIgogbXNnc3RyICItLWRlbGV0ZSBnb2R0YXIgZW5kYXN0IGVua2xhIG3DpWxyZWZlcmVuc25hbW4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjk5CisjOiBidWlsdGluL3B1c2guYzoxMDEKIG1zZ2lkICIiCiAiXG4iCiAiVG8gY2hvb3NlIGVpdGhlciBvcHRpb24gcGVybWFuZW50bHksIHNlZSBwdXNoLmRlZmF1bHQgaW4gJ2dpdCBoZWxwIGNvbmZpZycuIgpAQCAtNzQ2OSw3ICs3NjczLDcgQEAKICJGw7ZyIGF0dCB2w6RsamEgZXR0IGF2IGFsdGVybmF0aXZlbiBwZXJtYW5lbnQsIHNlIHB1c2guZGVmYXVsdCBpIFwiZ2l0IGhlbHAgIgogImNvbmZpZ1wiLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTAyCisjOiBidWlsdGluL3B1c2guYzoxMDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSB1cHN0cmVhbSBicmFuY2ggb2YgeW91ciBjdXJyZW50IGJyYW5jaCBkb2VzIG5vdCBtYXRjaFxuIgpAQCAtNzQ5NCw3ICs3Njk4LDcgQEAKICIgICAgZ2l0IHB1c2ggJXMgJXNcbiIKICIlcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTE3CisjOiBidWlsdGluL3B1c2guYzoxMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgbm90IGN1cnJlbnRseSBvbiBhIGJyYW5jaC5cbiIKQEAgLTc1MDksNyArNzcxMyw3IEBACiAiXG4iCiAiICAgIGdpdCBwdXNoICVzIEhFQUQ6PG5hbW4tcMOlLWZqw6RycmdyZW4+XG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEzMQorIzogYnVpbHRpbi9wdXNoLmM6MTMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG5vIHVwc3RyZWFtIGJyYW5jaC5cbiIKQEAgLTc1MjIsMTIgKzc3MjYsMTIgQEAKICJcbiIKICIgICAgZ2l0IHB1c2ggLS1zZXQtdXBzdHJlYW0gJXMgJXNcbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTM5CisjOiBidWlsdGluL3B1c2guYzoxNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBtdWx0aXBsZSB1cHN0cmVhbSBicmFuY2hlcywgcmVmdXNpbmcgdG8gcHVzaC4iCiBtc2dzdHIgIkRlbiBha3R1ZWxsYSBncmVuZW4gJXMgaGFyIGZsZXJhIHVwcHN0csO2bXNncmVuYXIsIHbDpGdyYXIgc8OkbmRhLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTQyCisjOiBidWlsdGluL3B1c2guYzoxNDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgcHVzaGluZyB0byByZW1vdGUgJyVzJywgd2hpY2ggaXMgbm90IHRoZSB1cHN0cmVhbSBvZlxuIgpAQCAtNzUzOCw3ICs3NzQyLDcgQEAKICJha3R1ZWxsYSBncmVuZW4gXCIlc1wiLCB1dGFuIGF0dCB0YWxhIG9tIGbDtnIgbWlnIHZhZCBzb21cbiIKICJza2FsbCBzw6RuZGFzIGbDtnIgYXR0IHVwcGRhdGVyYSBmasOkcnJncmVuZW4uIgogCi0jOiBidWlsdGluL3B1c2guYzoxNjUKKyM6IGJ1aWx0aW4vcHVzaC5jOjE2NwogbXNnaWQgIiIKICJwdXNoLmRlZmF1bHQgaXMgdW5zZXQ7IGl0cyBpbXBsaWNpdCB2YWx1ZSBpcyBjaGFuZ2luZyBpblxuIgogIkdpdCAyLjAgZnJvbSAnbWF0Y2hpbmcnIHRvICdzaW1wbGUnLiBUbyBzcXVlbGNoIHRoaXMgbWVzc2FnZVxuIgpAQCAtNzU3MiwxNCArNzc3NiwxNCBAQAogImxpa25hbmRlIGzDpGdldCBcImN1cnJlbnRcIiBpc3TDpGxsZXQgZsO2ciBcInNpbXBsZVwiIG9tIGR1IGlibGFuZCBhbnbDpG5kZXJcbiIKICLDpGxkcmUgdmVyc2lvbmVyIGF2IEdpdC4pIgogCi0jOiBidWlsdGluL3B1c2guYzoyMjUKKyM6IGJ1aWx0aW4vcHVzaC5jOjIyNwogbXNnaWQgIiIKICJZb3UgZGlkbid0IHNwZWNpZnkgYW55IHJlZnNwZWNzIHRvIHB1c2gsIGFuZCBwdXNoLmRlZmF1bHQgaXMgXCJub3RoaW5nXCIuIgogbXNnc3RyICIiCiAiRHUgYW5nYXYgaW5nYSByZWZlcmVuc3NwZWNpZmlrYXRpb25lciBhdHQgc8OkbmRhLCBvY2ggcHVzaC5kZWZhdWx0IMOkciAiCiAiXCJub3RoaW5nXCIuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMzIKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzNAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGlwIG9mIHlvdXIgY3VycmVudCBicmFuY2ggaXMgYmVoaW5kXG4iCiAiaXRzIHJlbW90ZSBjb3VudGVycGFydC4gSW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLlxuIgpAQCAtNzU5MSw3ICs3Nzk1LDcgQEAKICJcImdpdCBwdWxsIC4uLi5cIikgaW5uYW4gZHUgc8OkbmRlciBpZ2VuLlxuIgogIlNlIGF2c25pdHRldCBcIk5vdGUgYWJvdXQgZmFzdC1mb3J3YXJkXCIgaSBcImdpdCBwdXNoIC0taGVscFwiIGbDtnIgZGV0YWxqZXIuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMzgKKyM6IGJ1aWx0aW4vcHVzaC5jOjI0MAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCiAiY291bnRlcnBhcnQuIElmIHlvdSBkaWQgbm90IGludGVuZCB0byBwdXNoIHRoYXQgYnJhbmNoLCB5b3UgbWF5IHdhbnQgdG9cbiIKQEAgLTc2MDUsNyArNzgwOSw3IEBACiAiZW5kYXN0XG4iCiAic8OkbmRhIGFrdHVlbGwgZ3Jlbi4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI0NAorIzogYnVpbHRpbi9wdXNoLmM6MjQ2CiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIGEgcHVzaGVkIGJyYW5jaCB0aXAgaXMgYmVoaW5kIGl0cyByZW1vdGVcbiIKICJjb3VudGVycGFydC4gQ2hlY2sgb3V0IHRoaXMgYnJhbmNoIGFuZCBpbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCkBAIC03NjE3LDcgKzc4MjEsNyBAQAogIlwiZ2l0IHB1bGwgLi4uXCIpIGlubmFuIGR1IHPDpG5kZXIgaWdlbi5cbiIKICJTZSBhdnNuaXR0ZXQgXCJOb3RlIGFib3V0IGZhc3QtZm9yd2FyZFwiIGkgXCJnaXQgcHVzaCAtLWhlbHBcIiBmw7ZyIGRldGFsamVyLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjUwCisjOiBidWlsdGluL3B1c2guYzoyNTIKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHJlbW90ZSBjb250YWlucyB3b3JrIHRoYXQgeW91IGRvXG4iCiAibm90IGhhdmUgbG9jYWxseS4gVGhpcyBpcyB1c3VhbGx5IGNhdXNlZCBieSBhbm90aGVyIHJlcG9zaXRvcnkgcHVzaGluZ1xuIgpAQCAtNzYzMSwxMSArNzgzNSwxMSBAQAogIih0LmV4LiBcImdpdCBwdWxsIC4uLlwiKSBpbm5hbiBkdSBzw6RuZGVyIGlnZW4uXG4iCiAiU2UgYXZzbml0dGV0IFwiTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzXCIgaSBcImdpdCBwdXNoIC0taGVscFwiIGbDtnIgZGV0YWxqZXIuIgogCi0jOiBidWlsdGluL3B1c2guYzoyNTcKKyM6IGJ1aWx0aW4vcHVzaC5jOjI1OQogbXNnaWQgIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSB0YWcgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHJlbW90ZS4iCiBtc2dzdHIgIlVwcGRhdGVyaW5nYXJuYSBhdnZpc2FkZXMgZWZ0ZXJzb20gdGFnZ2VuIHJlZGFuIGZpbm5zIHDDpSBmasOkcnJlbi4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI2MAorIzogYnVpbHRpbi9wdXNoLmM6MjYyCiBtc2dpZCAiIgogIllvdSBjYW5ub3QgdXBkYXRlIGEgcmVtb3RlIHJlZiB0aGF0IHBvaW50cyBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgogIm9yIHVwZGF0ZSBhIHJlbW90ZSByZWYgdG8gbWFrZSBpdCBwb2ludCBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgpAQCAtNzY0NiwyMiArNzg1MCwyMiBAQAogInBla2FyIHDDpSBuw6Vnb3Qgc29tIGludGUgw6RyIGVuIGluY2hlY2tuaW5nLCB1dGFuIGF0dCBhbnbDpG5kYSBmbGFnZ2FuXG4iCiAiXCItLWZvcmNlXCIuXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMyMAorIzogYnVpbHRpbi9wdXNoLmM6MzI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlB1c2hpbmcgdG8gJXNcbiIKIG1zZ3N0ciAiU8OkbmRlciB0aWxsICVzXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMyNAorIzogYnVpbHRpbi9wdXNoLmM6MzMyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBwdXNoIHNvbWUgcmVmcyB0byAnJXMnIgogbXNnc3RyICJtaXNzbHlja2FkZXMgc8OkbmRhIHZpc3NhIHJlZmVyZW5zZXIgdGlsbCBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1NworIzogYnVpbHRpbi9wdXNoLmM6MzY1CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCByZXBvc2l0b3J5ICclcyciCiBtc2dzdHIgImZlbGFrdGlndCBhcmtpdiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1OAorIzogYnVpbHRpbi9wdXNoLmM6MzY2CiBtc2dpZCAiIgogIk5vIGNvbmZpZ3VyZWQgcHVzaCBkZXN0aW5hdGlvbi5cbiIKICJFaXRoZXIgc3BlY2lmeSB0aGUgVVJMIGZyb20gdGhlIGNvbW1hbmQtbGluZSBvciBjb25maWd1cmUgYSByZW1vdGUgIgpAQCAtNzY4Miw4NyArNzg4Niw5NSBAQAogIlxuIgogIiAgICBnaXQgcHVzaCA8bmFtbj5cbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzczCisjOiBidWlsdGluL3B1c2guYzozODEKIG1zZ2lkICItLWFsbCBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tYWxsIG9jaCAtLXRhZ3Mgw6RyIGlua29tcGF0aWJsYSIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mzc0CisjOiBidWlsdGluL3B1c2guYzozODIKIG1zZ2lkICItLWFsbCBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICItLWFsbCBrYW4gaW50ZSBrb21iaW5lcmFzIG1lZCByZWZlcmVuc3NwZWNpZmlrYXRpb25lciIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mzc5CisjOiBidWlsdGluL3B1c2guYzozODcKIG1zZ2lkICItLW1pcnJvciBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tbWlycm9yIG9jaCAtLXRhZ3Mgw6RyIGlua29tcGF0aWJsYSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzgwCisjOiBidWlsdGluL3B1c2guYzozODgKIG1zZ2lkICItLW1pcnJvciBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICItLW1pcnJvciBrYW4gaW50ZSBrb21iaW5lcmFzIG1lZCByZWZlcmVuc3NwZWNpZmlrYXRpb25lciIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mzg1CisjOiBidWlsdGluL3B1c2guYzozOTMKIG1zZ2lkICItLWFsbCBhbmQgLS1taXJyb3IgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1hbGwgb2NoIC0tbWlycm9yIMOkciBpbmtvbXBhdGlibGEiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ0NQorIzogYnVpbHRpbi9wdXNoLmM6NDUzCiBtc2dpZCAicmVwb3NpdG9yeSIKIG1zZ3N0ciAiYXJraXYiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ0NgorIzogYnVpbHRpbi9wdXNoLmM6NDU0CiBtc2dpZCAicHVzaCBhbGwgcmVmcyIKIG1zZ3N0ciAic8OkbmQgYWxsYSByZWZlcmVuc2VyIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NQogbXNnaWQgIm1pcnJvciBhbGwgcmVmcyIKIG1zZ3N0ciAic3BlZ2xhIGFsbGEgcmVmZXJlbnNlciIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDQ5CisjOiBidWlsdGluL3B1c2guYzo0NTcKIG1zZ2lkICJkZWxldGUgcmVmcyIKIG1zZ3N0ciAidGEgYm9ydCByZWZlcmVuc2VyIgogCi0jOiBidWlsdGluL3B1c2guYzo0NTAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1OAogbXNnaWQgInB1c2ggdGFncyAoY2FuJ3QgYmUgdXNlZCB3aXRoIC0tYWxsIG9yIC0tbWlycm9yKSIKIG1zZ3N0ciAic8OkbmQgdGFnZ2FyIChrYW4gaW50ZSBhbnbDpG5kYXMgbWVkIC0tYWxsIGVsbGVyIC0tbWlycm9yKSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDUzCisjOiBidWlsdGluL3B1c2guYzo0NjEKIG1zZ2lkICJmb3JjZSB1cGRhdGVzIgogbXNnc3RyICJ0dmluZ2EgdXBwZGF0ZXJpbmdhciIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDU0CisjOiBidWlsdGluL3B1c2guYzo0NjMKK21zZ2lkICJyZWZuYW1lPjo8ZXhwZWN0IgorbXNnc3RyICJyZWZuYW1uPjo8ZsO2cnbDpG50YSIKKworIzogYnVpbHRpbi9wdXNoLmM6NDY0Cittc2dpZCAicmVxdWlyZSBvbGQgdmFsdWUgb2YgcmVmIHRvIGJlIGF0IHRoaXMgdmFsdWUiCittc2dzdHIgImtyw6R2IGF0dCByZWY6cyB0aWRpZ2FyZSB2w6RyZGUgw6RyIGRldHRhIgorCisjOiBidWlsdGluL3B1c2guYzo0NjYKIG1zZ2lkICJjaGVjayIKIG1zZ3N0ciAia29udHJvbGxlcmEiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1NQorIzogYnVpbHRpbi9wdXNoLmM6NDY3CiBtc2dpZCAiY29udHJvbCByZWN1cnNpdmUgcHVzaGluZyBvZiBzdWJtb2R1bGVzIgogbXNnc3RyICJzdHlyIHJla3Vyc2l2IGluc8OkbmRuaW5nIGF2IHVuZGVybW9kdWxlciIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDU3CisjOiBidWlsdGluL3B1c2guYzo0NjkKIG1zZ2lkICJ1c2UgdGhpbiBwYWNrIgogbXNnc3RyICJhbnbDpG5kIHR1bm5hIHBha2V0IgogCi0jOiBidWlsdGluL3B1c2guYzo0NTggYnVpbHRpbi9wdXNoLmM6NDU5CisjOiBidWlsdGluL3B1c2guYzo0NzAgYnVpbHRpbi9wdXNoLmM6NDcxCiBtc2dpZCAicmVjZWl2ZSBwYWNrIHByb2dyYW0iCiBtc2dzdHIgInByb2dyYW0gZsO2ciBhdHQgdGEgZW1vdCBwYWtldCIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDYwCisjOiBidWlsdGluL3B1c2guYzo0NzIKIG1zZ2lkICJzZXQgdXBzdHJlYW0gZm9yIGdpdCBwdWxsL3N0YXR1cyIKIG1zZ3N0ciAic3TDpGxsIGluIHVwcHN0csO2bSBmw7ZyIGdpdCBwdWxsL3N0YXR1cyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDYzCisjOiBidWlsdGluL3B1c2guYzo0NzUKIG1zZ2lkICJwcnVuZSBsb2NhbGx5IHJlbW92ZWQgcmVmcyIKIG1zZ3N0ciAidGEgYm9ydCBsb2thbHQgYm9ydHRhZ25hIHJlZmVyZW5zZXIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ2NQorIzogYnVpbHRpbi9wdXNoLmM6NDc3CiBtc2dpZCAiYnlwYXNzIHByZS1wdXNoIGhvb2siCiBtc2dzdHIgImbDtnJiaWfDpSBwcmUtcHVzaC1rcm9rIgogCi0jOiBidWlsdGluL3B1c2guYzo0NjYKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3OAogbXNnaWQgInB1c2ggbWlzc2luZyBidXQgcmVsZXZhbnQgdGFncyIKIG1zZ3N0ciAic8OkbmQgaW4gc2FrbmFkZSBtZW4gcmVsZXZhbnRhIHRhZ2dhciIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDc2CisjOiBidWlsdGluL3B1c2guYzo0ODgKIG1zZ2lkICItLWRlbGV0ZSBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFsbCwgLS1taXJyb3IgYW5kIC0tdGFncyIKIG1zZ3N0ciAiLS1kZWxldGUgw6RyIGlta29tcGF0aWJlbCBtZWQgLS1hbGwsIC0tbWlycm9yIG9jaCAtLXRhZ3MiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ3OAorIzogYnVpbHRpbi9wdXNoLmM6NDkwCiBtc2dpZCAiLS1kZWxldGUgZG9lc24ndCBtYWtlIHNlbnNlIHdpdGhvdXQgYW55IHJlZnMiCiBtc2dzdHIgIi0tZGVsZXRlIGthbiBpbnRlIGFudsOkbmRhcyB1dGFuIHJlZmVyZW5zZXIiCiAKQEAgLTc4NDAsMTIgKzgwNTIsMTIgQEAKIG1zZ2lkICJkZWJ1ZyB1bnBhY2stdHJlZXMiCiBtc2dzdHIgImZlbHPDtmsgdW5wYWNrLXRyZWVzIgogCi0jOiBidWlsdGluL3JlZmxvZy5jOjUwMAorIzogYnVpbHRpbi9yZWZsb2cuYzo0OTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMnIGZvciAnJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIKIG1zZ3N0ciAiXCIlc1wiIGbDtnIgXCIlc1wiIMOkciBpbnRlIGVuIGdpbHRpZyB0aWRzc3TDpG1wZWwiCiAKLSM6IGJ1aWx0aW4vcmVmbG9nLmM6NjE2IGJ1aWx0aW4vcmVmbG9nLmM6NjIxCisjOiBidWlsdGluL3JlZmxvZy5jOjYxNSBidWlsdGluL3JlZmxvZy5jOjYyMAogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIKIG1zZ3N0ciAiXCIlc1wiIMOkciBpbnRlIGVuIGdpbHRpZyB0aWRzc3TDpG1wZWwiCkBAIC03ODcwLDkgKzgwODIsOSBAQAogbXNnaWQgImdpdCByZW1vdGUgcmVtb3ZlIDxuYW1lPiIKIG1zZ3N0ciAiZ2l0IHJlbW90ZSByZW1vdmUgPG5hbW4+IgogCi0jOiBidWlsdGluL3JlbW90ZS5jOjE1IGJ1aWx0aW4vcmVtb3RlLmM6NDIKLW1zZ2lkICJnaXQgcmVtb3RlIHNldC1oZWFkIDxuYW1lPiAoLWEgfCAtZCB8IDxicmFuY2g+KSIKLW1zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtbj4gKC1hIHwgLWQgfCA8Z3Jlbj4pIgorIzogYnVpbHRpbi9yZW1vdGUuYzoxNQorbXNnaWQgImdpdCByZW1vdGUgc2V0LWhlYWQgPG5hbWU+ICgtYSB8IC0tYXV0byB8IC1kIHwgLS1kZWxldGUgfDxicmFuY2g+KSIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtbj4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8IDxncmVuPikiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTYKIG1zZ2lkICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0gc2hvdyBbLW5dIDxuYW1lPiIKQEAgLTc5MDgsNiArODEyMCwxMCBAQAogbXNnaWQgImdpdCByZW1vdGUgYWRkIFs8b3B0aW9ucz5dIDxuYW1lPiA8dXJsPiIKIG1zZ3N0ciAiZ2l0IHJlbW90ZSBhZGQgWzxmbGFnZ29yPl0gPG5hbW4+IDx1cmw+IgogCisjOiBidWlsdGluL3JlbW90ZS5jOjQyCittc2dpZCAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8IDxicmFuY2g+KSIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtbj4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8IDxncmVuPikiCisKICM6IGJ1aWx0aW4vcmVtb3RlLmM6NDcKIG1zZ2lkICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyA8bmFtZT4gPGJyYW5jaD4uLi4iCiBtc2dzdHIgImdpdCByZW1vdGUgc2V0LWJyYW5jaGVzIDxuYW1uPiA8Z3Jlbj4uLi4iCkBAIC04MzQ0LDYgKzg1NjAsNjcgQEAKIG1zZ2lkICJiZSB2ZXJib3NlOyBtdXN0IGJlIHBsYWNlZCBiZWZvcmUgYSBzdWJjb21tYW5kIgogbXNnc3RyICJ2YXIgcHJhdHNhbTsgbcOlc3RlIHNrcml2YXMgZsO2cmUgZXR0IHVuZGVya29tbWFuZG8iCiAKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTUKK21zZ2lkICJnaXQgcmVwYWNrIFtvcHRpb25zXSIKK21zZ3N0ciAiZ2l0IHJlcGFjayBbZmxhZ2dvcl0iCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTQzCittc2dpZCAicGFjayBldmVyeXRoaW5nIGluIGEgc2luZ2xlIHBhY2siCittc2dzdHIgInBhY2thIGFsbHQgaSBldHQgZW5kYSBwYWtldCIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNDUKK21zZ2lkICJzYW1lIGFzIC1hLCBhbmQgdHVybiB1bnJlYWNoYWJsZSBvYmplY3RzIGxvb3NlIgorbXNnc3RyICJzYW1tYSBzb20gLWEsIG9jaCBnw7ZyIG9uw6ViYXJhIG9iamVrdCBsw7ZzYSIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNDgKK21zZ2lkICJyZW1vdmUgcmVkdW5kYW50IHBhY2tzLCBhbmQgcnVuIGdpdC1wcnVuZS1wYWNrZWQiCittc2dzdHIgInRhIGJvcnQgw7Z2ZXJmbMO2ZGlnYSBwYWtldCwgb2NoIGvDtnIgZ2l0LXBydW5lLXBhY2tlZCIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNTAKK21zZ2lkICJwYXNzIC0tbm8tcmV1c2UtZGVsdGEgdG8gZ2l0LXBhY2stb2JqZWN0cyIKK21zZ3N0ciAic8OkbmQgLS1uby1yZXVzZS1kZWx0YSB0aWxsIGdpdC1wYWNrLW9iamVjdHMiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTUyCittc2dpZCAicGFzcyAtLW5vLXJldXNlLW9iamVjdCB0byBnaXQtcGFjay1vYmplY3RzIgorbXNnc3RyICJzw6RuZCAtLW5vLXJldXNlLW9iamVjdCB0aWxsIGdpdC1wYWNrLW9iamVjdHMiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTU0Cittc2dpZCAiZG8gbm90IHJ1biBnaXQtdXBkYXRlLXNlcnZlci1pbmZvIgorbXNnc3RyICJrw7ZyIGludGUgZ2l0LXVwZGF0ZS1zZXJ2ZXItaW5mbyIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNTcKK21zZ2lkICJwYXNzIC0tbG9jYWwgdG8gZ2l0LXBhY2stb2JqZWN0cyIKK21zZ3N0ciAic8OkbmQgLS1sb2NhbCB0aWxsIGdpdC1wYWNrLW9iamVjdHMiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTU4Cittc2dpZCAiYXBwcm94aWRhdGUiCittc2dzdHIgImNpcmthZGF0dW0iCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTU5Cittc2dpZCAid2l0aCAtQSwgZG8gbm90IGxvb3NlbiBvYmplY3RzIG9sZGVyIHRoYW4gdGhpcyIKK21zZ3N0ciAibWVkIC1BLCBsw7ZzIGludGUgdXBwIG9iamVrdCDDpGxkcmUgw6RuIGRldHRhIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE2MQorbXNnaWQgInNpemUgb2YgdGhlIHdpbmRvdyB1c2VkIGZvciBkZWx0YSBjb21wcmVzc2lvbiIKK21zZ3N0ciAic3RvcmxlayBww6UgZsO2bnN0ZXIgYW52w6RudCBmw7ZyIGRlbHRha29tcHJpbWVyaW5nIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE2MworbXNnaWQgInNhbWUgYXMgdGhlIGFib3ZlLCBidXQgbGltaXQgbWVtb3J5IHNpemUgaW5zdGVhZCBvZiBlbnRyaWVzIGNvdW50IgorbXNnc3RyICJzYW1tYSBzb20gb3ZhbiwgbWVuIGJlZ3LDpG5zYSBtaW5uZXNzdG9ybGVrZW4gaXN0w6RsbGV0IGbDtnIgcG9zdGFudGFsIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE2NQorbXNnaWQgImxpbWl0cyB0aGUgbWF4aW11bSBkZWx0YSBkZXB0aCIKK21zZ3N0ciAiYmVncsOkbnNhIG1heGltYWx0IGRlbHRhZGp1cCIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNjcKK21zZ2lkICJtYXhpbXVtIHNpemUgb2YgZWFjaCBwYWNrZmlsZSIKK21zZ3N0ciAibWF4aW1hbCBzdG9ybGVrIHDDpSB2YXJqZSBwYWtldGZpbCIKKworIzogYnVpbHRpbi9yZXBhY2suYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3ZpbmcgJyVzJyBmYWlsZWQiCittc2dzdHIgIm1pc3NseWNrYWRlcyB0YSBib3J0IFwiJXNcIiIKKwogIzogYnVpbHRpbi9yZXBsYWNlLmM6MTcKIG1zZ2lkICJnaXQgcmVwbGFjZSBbLWZdIDxvYmplY3Q+IDxyZXBsYWNlbWVudD4iCiBtc2dzdHIgImdpdCByZXBsYWNlIFstZl0gPG9iamVrdD4gPGVyc8OkdHRuaW5nPiIKQEAgLTgzNTYsMjMgKzg2MzMsMjMgQEAKIG1zZ2lkICJnaXQgcmVwbGFjZSAtbCBbPHBhdHRlcm4+XSIKIG1zZ3N0ciAiZ2l0IHJlcGxhY2UgLWwgWzxtw7Zuc3Rlcj5dIgogCi0jOiBidWlsdGluL3JlcGxhY2UuYzoxMjEKKyM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEzMQogbXNnaWQgImxpc3QgcmVwbGFjZSByZWZzIgogbXNnc3RyICJ2aXNhIGVyc8OkdHRuaW5nc3JlZmVyZW5zZXIiCiAKLSM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEyMgorIzogYnVpbHRpbi9yZXBsYWNlLmM6MTMyCiBtc2dpZCAiZGVsZXRlIHJlcGxhY2UgcmVmcyIKIG1zZ3N0ciAidGEgYm9ydCBlcnPDpHR0bmluZ3NyZWZlcmVuc2VyIgogCi0jOiBidWlsdGluL3JlcGxhY2UuYzoxMjMKKyM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEzMwogbXNnaWQgInJlcGxhY2UgdGhlIHJlZiBpZiBpdCBleGlzdHMiCiBtc2dzdHIgImVyc8OkdHQgcmVmZXJlbnNlbiBvbSBkZW4gZmlubnMiCiAKLSM6IGJ1aWx0aW4vcmVyZXJlLmM6MTEKKyM6IGJ1aWx0aW4vcmVyZXJlLmM6MTIKIG1zZ2lkICJnaXQgcmVyZXJlIFtjbGVhciB8IGZvcmdldCBwYXRoLi4uIHwgc3RhdHVzIHwgcmVtYWluaW5nIHwgZGlmZiB8IGdjXSIKIG1zZ3N0ciAiZ2l0IHJlcmVyZSBbY2xlYXIgfCBmb3JnZXQgcGF0aC4uLiB8IHN0YXR1cyB8IHJlbWFpbmluZyB8IGRpZmYgfCBnY10iCiAKLSM6IGJ1aWx0aW4vcmVyZXJlLmM6NTYKKyM6IGJ1aWx0aW4vcmVyZXJlLmM6NTcKIG1zZ2lkICJyZWdpc3RlciBjbGVhbiByZXNvbHV0aW9ucyBpbiBpbmRleCIKIG1zZ3N0ciAicmVnaXN0cmVyYSByZW5hIGzDtnNuaW5nYXIgaSBpbmRleGV0IgogCkBAIC04NDMzLDcwICs4NzEwLDcwIEBACiBtc2dpZCAiQ2Fubm90IGRvIGEgJXMgcmVzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlLiIKIG1zZ3N0ciAiS2FuIGludGUgdXRmw7ZyYSBlbiAlcyDDpXRlcnN0w6RsbG5pbmcgbWl0dCBpIGVuIHNhbW1hbnNsYWduaW5nLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MQorIzogYnVpbHRpbi9yZXNldC5jOjI2MgogbXNnaWQgImJlIHF1aWV0LCBvbmx5IHJlcG9ydCBlcnJvcnMiCiBtc2dzdHIgInZhciB0eXN0LCByYXBwb3J0ZXJhIGVuZGFzdCBmZWwiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTMKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjQKIG1zZ2lkICJyZXNldCBIRUFEIGFuZCBpbmRleCIKIG1zZ3N0ciAiw6V0ZXJzdMOkbGwgSEVBRCBvY2ggaW5kZXgiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTQKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjUKIG1zZ2lkICJyZXNldCBvbmx5IEhFQUQiCiBtc2dzdHIgIsOldGVyc3TDpGxsIGVuZGFzdCBIRUFEIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjU2IGJ1aWx0aW4vcmVzZXQuYzoyNTgKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjcgYnVpbHRpbi9yZXNldC5jOjI2OQogbXNnaWQgInJlc2V0IEhFQUQsIGluZGV4IGFuZCB3b3JraW5nIHRyZWUiCiBtc2dzdHIgIsOldGVyc3TDpGxsIEhFQUQsIGluZGV4IG9jaCBhcmJldHNrYXRhbG9nIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjYwCisjOiBidWlsdGluL3Jlc2V0LmM6MjcxCiBtc2dpZCAicmVzZXQgSEVBRCBidXQga2VlcCBsb2NhbCBjaGFuZ2VzIgogbXNnc3RyICLDpXRlcnN0w6RsbCBIRUFEIG1lbiBiZWjDpWxsIGxva2FsYSDDpG5kcmluZ2FyIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6Mjc4CisjOiBidWlsdGluL3Jlc2V0LmM6Mjg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZXZpc2lvbi4iCiBtc2dzdHIgIkt1bmRlIGludGUgc2zDpSB1cHAgXCIlc1wiIHNvbSBlbiBnaWx0aWcgcmV2aXNpb24uIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjgxIGJ1aWx0aW4vcmVzZXQuYzoyODkKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyOTIgYnVpbHRpbi9yZXNldC5jOjMwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2Ugb2JqZWN0ICclcycuIgogbXNnc3RyICJLYW4gaW50ZSB0b2xrYSBvYmpla3RldCBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyODYKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyOTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHRyZWUuIgogbXNnc3RyICJLdW5kZSBpbnRlIHNsw6UgdXBwIFwiJXNcIiBzb20gZXR0IGdpbHRpZ3QgdHLDpGQuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6Mjk1CisjOiBidWlsdGluL3Jlc2V0LmM6MzA2CiBtc2dpZCAiLS1wYXRjaCBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLXtoYXJkLG1peGVkLHNvZnR9IgogbXNnc3RyICItLXBhdGNoIMOkciBpbmtvbXBhdGliZWwgbWVkIC0te2hhcmQsbWl4ZWQsc29mdH0iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMDQKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMTUKIG1zZ2lkICItLW1peGVkIHdpdGggcGF0aHMgaXMgZGVwcmVjYXRlZDsgdXNlICdnaXQgcmVzZXQgLS0gPHBhdGhzPicgaW5zdGVhZC4iCiBtc2dzdHIgIiIKICItLW1peGVkIHJla29tbWVuZGVyYXMgaW50ZSBtZWQgc8O2a3bDpGdhcjsgYW52w6RuZCBcImdpdCByZXNldCAtLSA8c8O2a3bDpGdhcj5cIi4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMDYKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGRvICVzIHJlc2V0IHdpdGggcGF0aHMuIgogbXNnc3RyICJLYW4gaW50ZSBnw7ZyYSAlcyDDpXRlcnN0w6RsbG5pbmcgbWVkIHPDtmt2w6RnYXIuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzE2CisjOiBidWlsdGluL3Jlc2V0LmM6MzI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIHJlc2V0IGlzIG5vdCBhbGxvd2VkIGluIGEgYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICIlcyDDpXRlcnN0w6RsbG5pbmcgdGlsbMOldHMgaW50ZSBpIGV0dCBuYWtldCBhcmtpdiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMzNgorIzogYnVpbHRpbi9yZXNldC5jOjM0NAorbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVzZXQ6IgorbXNnc3RyICJPa8O2YWRlIMOkbmRyaW5nYXIgZWZ0ZXIgw6V0ZXJzdMOkbGxuaW5nOiIKKworIzogYnVpbHRpbi9yZXNldC5jOjM1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVzZXQgaW5kZXggZmlsZSB0byByZXZpc2lvbiAnJXMnLiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSDDpXRlcnN0w6RsbGEgaW5kZXhmaWxlbiB0aWxsIHZlcnNpb25lbiBcIiVzXCIuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzQyCi1tc2dpZCAiVW5zdGFnZWQgY2hhbmdlcyBhZnRlciByZXNldDoiCi1tc2dzdHIgIk9rw7ZhZGUgw6RuZHJpbmdhciBlZnRlciDDpXRlcnN0w6RsbG5pbmc6IgotCi0jOiBidWlsdGluL3Jlc2V0LmM6MzQ3CisjOiBidWlsdGluL3Jlc2V0LmM6MzU1CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIG5ldyBpbmRleCBmaWxlLiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBza3JpdmEgbnkgaW5kZXhmaWwuIgogCkBAIC04NTQzLDg0ICs4ODIwLDg0IEBACiBtc2dpZCAiZ2l0IGNoZXJyeS1waWNrIDxzdWJjb21tYW5kPiIKIG1zZ3N0ciAiZ2l0IGNoZXJyeS1waWNrIDx1bmRlcmtvbW1hbmRvPiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzo3MSBidWlsdGluL3JldmVydC5jOjk0CisjOiBidWlsdGluL3JldmVydC5jOjcxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiAlcyBjYW5ub3QgYmUgdXNlZCB3aXRoICVzIgogbXNnc3RyICIlczogJXMga2FuIGludGUgYW52w6RuZGFzIG1lZCAlcyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODAKIG1zZ2lkICJlbmQgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICJhdnNsdXRhIHJldmVydC0gZWxsZXIgY2hlcnJ5LXBpY2stc2VrdmVucyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODEKIG1zZ2lkICJyZXN1bWUgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICLDpXRlcnVwcHRhIHJldmVydC0gZWxsZXIgY2hlcnJ5LXBpY2stc2VrdmVucyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDcKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODIKIG1zZ2lkICJjYW5jZWwgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICJhdmJyeXQgcmV2ZXJ0LSBlbGxlciBjaGVycnktcGljay1zZWt2ZW5zIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwOAorIzogYnVpbHRpbi9yZXZlcnQuYzo4MwogbXNnaWQgImRvbid0IGF1dG9tYXRpY2FsbHkgY29tbWl0IgogbXNnc3RyICJjaGVja2EgaW50ZSBpbiBhdXRvbWF0aXNrdCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDkKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODQKIG1zZ2lkICJlZGl0IHRoZSBjb21taXQgbWVzc2FnZSIKIG1zZ3N0ciAicmVkaWdlcmEgaW5jaGVja25pbmdzbWVkZGVsYW5kZXQiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCisjOiBidWlsdGluL3JldmVydC5jOjg3CiBtc2dpZCAicGFyZW50IG51bWJlciIKIG1zZ3N0ciAibnVtbWVyIHDDpSBmw7Zyw6RsZGVyIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExNAorIzogYnVpbHRpbi9yZXZlcnQuYzo4OQogbXNnaWQgIm1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICJzYW1tYW5zbGFnbmluc3N0cmF0ZWdpIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExNQorIzogYnVpbHRpbi9yZXZlcnQuYzo5MAogbXNnaWQgIm9wdGlvbiIKIG1zZ3N0ciAiYWx0ZXJuYXRpdiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6OTEKIG1zZ2lkICJvcHRpb24gZm9yIG1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICJhbHRlcm5hdGl2IGZvzIhyIHNhbW1hbnNsYWduaW5nc3N0cmF0ZWdpIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNworIzogYnVpbHRpbi9yZXZlcnQuYzoxMDIKIG1zZ2lkICJhcHBlbmQgY29tbWl0IG5hbWUiCiBtc2dzdHIgImzDpGdnIHRpbGwgaW5jaGVja25pbmdzbmFtbiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTAzCiBtc2dpZCAiYWxsb3cgZmFzdC1mb3J3YXJkIgogbXNnc3RyICJ0aWxsw6V0IHNuYWJic3BvbG5pbmciCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI5CisjOiBidWlsdGluL3JldmVydC5jOjEwNAogbXNnaWQgInByZXNlcnZlIGluaXRpYWxseSBlbXB0eSBjb21taXRzIgogbXNnc3RyICJiZWjDpWxsIGluY2hlY2tuaW5nYXIgc29tIGLDtnJqYXIgc29tIHRvbW1hIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzMAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKIG1zZ2lkICJhbGxvdyBjb21taXRzIHdpdGggZW1wdHkgbWVzc2FnZXMiCiBtc2dzdHIgInRpbGzDpXQgaW5jaGVja25pbmdhciBtZWQgdG9tdCBtZWRkZWxhbmRlIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzMQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKIG1zZ2lkICJrZWVwIHJlZHVuZGFudCwgZW1wdHkgY29tbWl0cyIKIG1zZ3N0ciAiYmVow6VsbCByZWR1bmRhbnRhLCB0b21tYSBpbmNoZWNrbmluZ2FyIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzNQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMTAKIG1zZ2lkICJwcm9ncmFtIGVycm9yIgogbXNnc3RyICJwcm9ncmFtZmVsIgogCi0jOiBidWlsdGluL3JldmVydC5jOjIyNQorIzogYnVpbHRpbi9yZXZlcnQuYzoxOTUKIG1zZ2lkICJyZXZlcnQgZmFpbGVkIgogbXNnc3RyICJcInJldmVydFwiIG1pc3NseWNrYWRlcyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyNDAKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjEwCiBtc2dpZCAiY2hlcnJ5LXBpY2sgZmFpbGVkIgogbXNnc3RyICJcImNoZXJyeS1waWNrXCIgbWlzc2x5Y2thZGVzIgogCi0jOiBidWlsdGluL3JtLmM6MTYKKyM6IGJ1aWx0aW4vcm0uYzoxNwogbXNnaWQgImdpdCBybSBbb3B0aW9uc10gWy0tXSA8ZmlsZT4uLi4iCiBtc2dzdHIgImdpdCBybSBbZmxhZ2dvcl0gWy0tXSA8ZmlsPi4uLiIKIAotIzogYnVpbHRpbi9ybS5jOjY0CisjOiBidWlsdGluL3JtLmM6NjUKIG1zZ2lkICIiCiAidGhlIGZvbGxvd2luZyBzdWJtb2R1bGUgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpXG4iCiAidXNlcyBhIC5naXQgZGlyZWN0b3J5OiIKQEAgLTg2MzQsNyArODkxMSw3IEBACiAiZsO2bGphbmRlIHVuZGVybW9kdWxlciAoZWxsZXIgZW4gYXYgZGVyYXMgbsOkc3RsYWRlIHVuZGVybW9kdWxlcilcbiIKICJhbnbDpG5kZXIgZW4gLmdpdC1rYXRhbG9nOiIKIAotIzogYnVpbHRpbi9ybS5jOjcwCisjOiBidWlsdGluL3JtLmM6NzEKIG1zZ2lkICIiCiAiXG4iCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgpAQCAtODY0Miw3ICs4OTE5LDcgQEAKICJcbiIKICIoYW52w6RuZCBcInJtIC1yZlwiIG9tIGR1IHZlcmtsaWdlbiB2aWxsIHRhIGJvcnQgZGVuIG9jaCBhbGwgZGVzcyBoaXN0b3JpaykiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMzAKKyM6IGJ1aWx0aW4vcm0uYzoyMzEKIG1zZ2lkICIiCiAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgogImZpbGUgYW5kIHRoZSBIRUFEOiIKQEAgLTg2NTQsNyArODkzMSw3IEBACiBtc2dzdHJbMV0gIiIKICJmw7ZsamFuZGUgZmlsZXIgaGFyIGvDtmF0IGlubmVow6VsbCBzb20gc2tpbGplciBzaWcgYsOlZGUgZnLDpW4gZmlsZW4gb2NoIEhFQUQ6IgogCi0jOiBidWlsdGluL3JtLmM6MjM1CisjOiBidWlsdGluL3JtLmM6MjM2CiBtc2dpZCAiIgogIlxuIgogIih1c2UgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCkBAIC04NjYyLDEzICs4OTM5LDEzIEBACiAiXG4iCiAiKGFudsOkbmQgLWYgZsO2ciBhdHQgdHZpbmdhIGJvcnR0YWduaW5nKSIKIAotIzogYnVpbHRpbi9ybS5jOjIzOQorIzogYnVpbHRpbi9ybS5jOjI0MAogbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKIG1zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoiCiBtc2dzdHJbMF0gImbDtmxqYW5kZSBmaWwgaGFyIMOkbmRyaW5nYXIga8O2YWRlIGkgaW5kZXhldDoiCiBtc2dzdHJbMV0gImbDtmxqYW5kZSBmaWxlciBoYXIgw6RuZHJpbmdhciBrw7ZhZGUgaSBpbmRleGV0OiIKIAotIzogYnVpbHRpbi9ybS5jOjI0MyBidWlsdGluL3JtLmM6MjU0CisjOiBidWlsdGluL3JtLmM6MjQ0IGJ1aWx0aW4vcm0uYzoyNTUKIG1zZ2lkICIiCiAiXG4iCiAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIKQEAgLTg2NzYsMzggKzg5NTMsMzggQEAKICJcbiIKICIoYW52w6RuZCAtLWNhY2hlZCBmw7ZyIGF0dCBiZWjDpWxsYSBmaWxlbiBlbGxlciAtZiBmw7ZyIGF0dCB0dmluZ2EgYm9ydHRhZ25pbmcpIgogCi0jOiBidWlsdGluL3JtLmM6MjUxCisjOiBidWlsdGluL3JtLmM6MjUyCiBtc2dpZCAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zOiIKIG1zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGxvY2FsIG1vZGlmaWNhdGlvbnM6IgogbXNnc3RyWzBdICJmw7ZsamFuZGUgZmlsIGhhciBsb2thbGEgw6RuZHJpbmdhcjoiCiBtc2dzdHJbMV0gImbDtmxqYW5kZSBmaWxlciBoYXIgbG9rYWxhIMOkbmRyaW5nYXI6IgogCi0jOiBidWlsdGluL3JtLmM6MjY5CisjOiBidWlsdGluL3JtLmM6MjcwCiBtc2dpZCAiZG8gbm90IGxpc3QgcmVtb3ZlZCBmaWxlcyIKIG1zZ3N0ciAibGlzdGEgaW50ZSBib3J0dGFnbmEgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyNzAKKyM6IGJ1aWx0aW4vcm0uYzoyNzEKIG1zZ2lkICJvbmx5IHJlbW92ZSBmcm9tIHRoZSBpbmRleCIKIG1zZ3N0ciAidGEgYmFyYSBib3J0IGZyw6VuIGluZGV4ZXQiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyNzEKKyM6IGJ1aWx0aW4vcm0uYzoyNzIKIG1zZ2lkICJvdmVycmlkZSB0aGUgdXAtdG8tZGF0ZSBjaGVjayIKIG1zZ3N0ciAiw7Z2ZXJzdHlyIMOgam91ci10ZXN0ZXQiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyNzIKKyM6IGJ1aWx0aW4vcm0uYzoyNzMKIG1zZ2lkICJhbGxvdyByZWN1cnNpdmUgcmVtb3ZhbCIKIG1zZ3N0ciAidGlsbMOldCByZWt1cnNpdiBib3J0dGFnbmluZyIKIAotIzogYnVpbHRpbi9ybS5jOjI3NAorIzogYnVpbHRpbi9ybS5jOjI3NQogbXNnaWQgImV4aXQgd2l0aCBhIHplcm8gc3RhdHVzIGV2ZW4gaWYgbm90aGluZyBtYXRjaGVkIgogbXNnc3RyICJhdnNsdXRhIG1lZCBub2xsc3RhdHVzIMOkdmVuIG9tIGluZ2V0IHRyw6RmZmFkZXMiCiAKLSM6IGJ1aWx0aW4vcm0uYzozNDUKKyM6IGJ1aWx0aW4vcm0uYzozMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHJlbW92aW5nICclcycgcmVjdXJzaXZlbHkgd2l0aG91dCAtciIKIG1zZ3N0ciAidGFyIGludGUgYm9ydCBcIiVzXCIgcmVrdXJzaXZ0IHV0YW4gLXIiCiAKLSM6IGJ1aWx0aW4vcm0uYzozODQKKyM6IGJ1aWx0aW4vcm0uYzozNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IHJtOiB1bmFibGUgdG8gcmVtb3ZlICVzIgogbXNnc3RyICJnaXQgcm06IGthbiBpbnRlIHRhIGJvcnQgJXMiCkBAIC04NzIxLDIzICs4OTk4LDIzIEBACiBtc2dpZCAiTWlzc2luZyBhdXRob3I6ICVzIgogbXNnc3RyICJGw7ZyZmF0dGFyZSBzYWtuYXM6ICVzIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjI4CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjMwCiBtc2dpZCAic29ydCBvdXRwdXQgYWNjb3JkaW5nIHRvIHRoZSBudW1iZXIgb2YgY29tbWl0cyBwZXIgYXV0aG9yIgogbXNnc3RyICJzb3J0ZXJhIHV0ZGF0YSBlbmxpZ3QgYW50YWwgaW5jaGVja25pbmdhciBwZXIgZsO2cmZhdHRhcmUiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzAKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzIKIG1zZ2lkICJTdXBwcmVzcyBjb21taXQgZGVzY3JpcHRpb25zLCBvbmx5IHByb3ZpZGVzIGNvbW1pdCBjb3VudCIKIG1zZ3N0ciAiVW5kZXJ0cnljayBiZXNrcml2bmluZ2FyLCB2aXNhIGJhcmEgYW50YWwgaW5jaGVja25pbmdhciIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzNAogbXNnaWQgIlNob3cgdGhlIGVtYWlsIGFkZHJlc3Mgb2YgZWFjaCBhdXRob3IiCiBtc2dzdHIgIlZpc2EgZS1wb3N0YWRyZXNzIGbDtnIgdmFyamUgZsO2cmZhdHRhcmUiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzUKIG1zZ2lkICJ3WyxpMVssaTJdXSIKIG1zZ3N0ciAid1ssaTFbLGkyXV0iCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzQKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzYKIG1zZ2lkICJMaW5ld3JhcCBvdXRwdXQiCiBtc2dzdHIgIlJhZGJyeXQgdXRkYXRhIgogCkBAIC04ODQ1LDIzICs5MTIyLDIzIEBACiBtc2dpZCAic3RyaWN0ZXIgcmVmZXJlbmNlIGNoZWNraW5nLCByZXF1aXJlcyBleGFjdCByZWYgcGF0aCIKIG1zZ3N0ciAic3RyaWt0YXJlIHJlZmVyZW5za29udHJvbGwsIGtyw6R2ZXIgZXhha3QgcmVmZXJlbnNzw7ZrdsOkZyIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MyBidWlsdGluL3Nob3ctcmVmLmM6MTc2CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTczIGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzUKIG1zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSwgZXZlbiBpZiBpdCB3b3VsZCBiZSBmaWx0ZXJlZCBvdXQiCiBtc2dzdHIgInZpc2EgSEVBRC1yZWZyZW5zLCDDpHZlbiBuw6RyIGRlbiBza3VsbGUgZmlsdHJlcmFzIHV0IgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTc4CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTc3CiBtc2dpZCAiZGVyZWZlcmVuY2UgdGFncyBpbnRvIG9iamVjdCBJRHMiCiBtc2dzdHIgImF2cmVmZXJlcmEgdGFnZ2FyIHRpbGwgb2JqZWt0LWlkIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTgwCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTc5CiBtc2dpZCAib25seSBzaG93IFNIQTEgaGFzaCB1c2luZyA8bj4gZGlnaXRzIgogbXNnc3RyICJ2aXNhIFNIQTEtaGFzaCBlbmRhc3QgbWVkIDxuPiBzaWZmcm9yIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTg0CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTgzCiBtc2dpZCAiZG8gbm90IHByaW50IHJlc3VsdHMgdG8gc3Rkb3V0ICh1c2VmdWwgd2l0aCAtLXZlcmlmeSkiCiBtc2dzdHIgInZpc2EgaW50ZSByZXN1bHRhdCBww6Ugc3RhbmRhcmQgdXQgKGFudsOkbmRiYXJ0IG1lZCAtLXZlcmlmeSkiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODUKIG1zZ2lkICJzaG93IHJlZnMgZnJvbSBzdGRpbiB0aGF0IGFyZW4ndCBpbiBsb2NhbCByZXBvc2l0b3J5IgogbXNnc3RyICJ2aXNhIHJlZmVyZW5zZXIgZnLDpW4gc3RhbmRhcmQgaW4gc29tIGludGUgZmlubnMgaSBsb2thbHQgYXJraXYiCiAKQEAgLTg4ODYsMTEgKzkxNjMsMTEgQEAKIG1zZ2lkICJzaG9ydGVuIHJlZiBvdXRwdXQiCiBtc2dzdHIgImbDtnJrb3J0YSByZWYtdXRkYXRhIgogCi0jOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjE4CisjOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1NAogbXNnaWQgInJlYXNvbiIKIG1zZ3N0ciAic2vDpGwiCiAKLSM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NDMgYnVpbHRpbi91cGRhdGUtcmVmLmM6MTgKKyM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NDMgYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU0CiBtc2dpZCAicmVhc29uIG9mIHRoZSB1cGRhdGUiCiBtc2dzdHIgInNrw6RsIHRpbGwgdXBwZGF0ZXJpbmdlbiIKIApAQCAtOTA1NSwxODMgKzkzMzIsMTk1IEBACiBtc2dpZCAicHJpbnQgb25seSB0YWdzIG9mIHRoZSBvYmplY3QiCiBtc2dzdHIgInZpc2EgZW5kYXN0IHRhZ2dhciBmw7ZyIG9iamVrdGV0IgogCi0jOiBidWlsdGluL3RhZy5jOjUwNAorIzogYnVpbHRpbi90YWcuYzo1MDEKIG1zZ2lkICItLWNvbHVtbiBhbmQgLW4gYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1jb2x1bW4gb2NoIC1uIMOkciBpbmtvbXBhdGlibGEiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTIxCisjOiBidWlsdGluL3RhZy5jOjUxOAogbXNnaWQgIi1uIG9wdGlvbiBpcyBvbmx5IGFsbG93ZWQgd2l0aCAtbC4iCiBtc2dzdHIgIkZsYWdnYW4gLW4gw6RyIGVuZGFzdCB0aWxsw6V0ZW4gdGlsbHNhbW1hbnMgbWVkIC1sLiIKIAotIzogYnVpbHRpbi90YWcuYzo1MjMKKyM6IGJ1aWx0aW4vdGFnLmM6NTIwCiBtc2dpZCAiLS1jb250YWlucyBvcHRpb24gaXMgb25seSBhbGxvd2VkIHdpdGggLWwuIgogbXNnc3RyICJGbGFnZ2FuIC0tY29udGFpbnMgw6RyIGVuZGFzdCB0aWxsw6V0ZW4gdGlsbHNhbW1hbnMgbWVkIC1sIgogCi0jOiBidWlsdGluL3RhZy5jOjUyNQorIzogYnVpbHRpbi90YWcuYzo1MjIKIG1zZ2lkICItLXBvaW50cy1hdCBvcHRpb24gaXMgb25seSBhbGxvd2VkIHdpdGggLWwuIgogbXNnc3RyICJGbGFnZ2FuIC0tcG9pbnRzLWF0IMOkciBlbmRhc3QgdGlsbMOldGVuIHRpbGxzYW1tYW5zIG1lZCAtbC4iCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTMzCisjOiBidWlsdGluL3RhZy5jOjUzMAogbXNnaWQgIm9ubHkgb25lIC1GIG9yIC1tIG9wdGlvbiBpcyBhbGxvd2VkLiIKIG1zZ3N0ciAiZW5kYXN0IGVuIGF2IGZsYWdnb3JuYSAtRiBlbGxlciAtbSB0aWxsw6V0cy4iCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTUzCisjOiBidWlsdGluL3RhZy5jOjU1MAogbXNnaWQgInRvbyBtYW55IHBhcmFtcyIKIG1zZ3N0ciAiZsO2ciBtw6VuZ2EgcGFyYW1ldHJhciIKIAotIzogYnVpbHRpbi90YWcuYzo1NTkKKyM6IGJ1aWx0aW4vdGFnLmM6NTU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgdGFnIG5hbWUuIgogbXNnc3RyICJcIiVzXCIgw6RyIGludGUgZXR0IGdpbHRpZ3QgdGFnZ25hbW4uIgogCi0jOiBidWlsdGluL3RhZy5jOjU2NAorIzogYnVpbHRpbi90YWcuYzo1NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnICclcycgYWxyZWFkeSBleGlzdHMiCiBtc2dzdHIgInRhZ2dlbiBcIiVzXCIgZmlubnMgcmVkYW4iCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTgyCisjOiBidWlsdGluL3RhZy5jOjU3OQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2Fubm90IGxvY2sgdGhlIHJlZiIKIG1zZ3N0ciAiJXM6IGthbiBpbnRlIGzDpXNhIHJlZmVyZW5zZW4iCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTg0CisjOiBidWlsdGluL3RhZy5jOjU4MQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2Fubm90IHVwZGF0ZSB0aGUgcmVmIgogbXNnc3RyICIlczoga2FuIGludGUgdXBwZGF0ZXJhIHJlZmVyZW5zZW4iCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTg2CisjOiBidWlsdGluL3RhZy5jOjU4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJVcGRhdGVkIHRhZyAnJXMnICh3YXMgJXMpXG4iCiBtc2dzdHIgIlVwcGRhdGVyYWQgdGFnZyBcIiVzXCIgKHZhciAlcylcbiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo0MDEKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NDAyCiBtc2dpZCAiZ2l0IHVwZGF0ZS1pbmRleCBbb3B0aW9uc10gWy0tXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiZ2l0IHVwZGF0ZS1pbmRleCBbZmxhZ2dvcl0gWy0tXSBbPGZpbD4uLi5dIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcxOAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjAKIG1zZ2lkICJjb250aW51ZSByZWZyZXNoIGV2ZW4gd2hlbiBpbmRleCBuZWVkcyB1cGRhdGUiCiBtc2dzdHIgImZvcnRzw6R0dCB1cHBkYXRlcmEgw6R2ZW4gbsOkciBpbmRleCBpbnRlIMOkciDDoGpvdXIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzIxCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyMwogbXNnaWQgInJlZnJlc2g6IGlnbm9yZSBzdWJtb2R1bGVzIgogbXNnc3RyICJyZWZyZXNoOiBpZ25vcmVyYSB1bmRlcm1vZHVsZXIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI0CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyNgogbXNnaWQgImRvIG5vdCBpZ25vcmUgbmV3IGZpbGVzIgogbXNnc3RyICJpZ25vcmVyYSBpbnRlIG55YSBmaWxlciIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjYKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI4CiBtc2dpZCAibGV0IGZpbGVzIHJlcGxhY2UgZGlyZWN0b3JpZXMgYW5kIHZpY2UtdmVyc2EiCiBtc2dzdHIgImzDpXQgZmlsZXIgZXJzw6R0dGEga2F0YWxvZ2VyIG9jaCBvbXbDpG50IgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyOAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzAKIG1zZ2lkICJub3RpY2UgZmlsZXMgbWlzc2luZyBmcm9tIHdvcmt0cmVlIgogbXNnc3RyICJsw6RnZyBtw6Rya2UgdGlsbCBmaWxlciBzb20gc2FrbmFzIGkgYXJiZXRza2F0YWxvZ2VuIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczMAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzIKIG1zZ2lkICJyZWZyZXNoIGV2ZW4gaWYgaW5kZXggY29udGFpbnMgdW5tZXJnZWQgZW50cmllcyIKIG1zZ3N0ciAidXBwZGF0ZXJhIMOkdmVuIG9tIGluZGV4ZXQgaW5uZWjDpWxsZXIgZWogc2FtbWFuc2xhZ25hIHBvc3RlciIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzMKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzM1CiBtc2dpZCAicmVmcmVzaCBzdGF0IGluZm9ybWF0aW9uIgogbXNnc3RyICJ1cHBkYXRlcmEgc3RhdHVzaW5mb3JtYXRpb24iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzM3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczOQogbXNnaWQgImxpa2UgLS1yZWZyZXNoLCBidXQgaWdub3JlIGFzc3VtZS11bmNoYW5nZWQgc2V0dGluZyIKIG1zZ3N0ciAic29tIC0tcmVmcmVzaCwgbWVuIGlnbm9yZXJhIGFzc3VtZS11bmNoYW5nZWQtaW5zdMOkbGxuaW5nIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0MQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDMKIG1zZ2lkICI8bW9kZT4gPG9iamVjdD4gPHBhdGg+IgogbXNnc3RyICI8bMOkZ2U+IDxvYmpla3Q+IDxzw7ZrdsOkZz4iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQyCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0NAogbXNnaWQgImFkZCB0aGUgc3BlY2lmaWVkIGVudHJ5IHRvIHRoZSBpbmRleCIKIG1zZ3N0ciAibMOkZ2cgdGlsbCBhbmdpdmVuIHBvc3QgaSBpbmRleGV0IgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0NgorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDgKIG1zZ2lkICIoKy8tKXgiCiBtc2dzdHIgIigrLy0peCIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDcKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQ5CiBtc2dpZCAib3ZlcnJpZGUgdGhlIGV4ZWN1dGFibGUgYml0IG9mIHRoZSBsaXN0ZWQgZmlsZXMiCiBtc2dzdHIgIsO2dmVyc3R5ciBleGVrdmVyaW5nc2JpdGVuIGbDtnIgYW5naXZuYSBmaWxlciIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTEKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzUzCiBtc2dpZCAibWFyayBmaWxlcyBhcyBcIm5vdCBjaGFuZ2luZ1wiIgogbXNnc3RyICJtYXJrZXJhIGZpbGVyIHNvbSBcIsOkbmRyYXMgaW50ZVwiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1NAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTYKIG1zZ2lkICJjbGVhciBhc3N1bWVkLXVuY2hhbmdlZCBiaXQiCiBtc2dzdHIgInJlbnNhIFwiYXNzdW1lLXVuY2hhbmdlZFwiLWJpdGVuIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1NworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTkKIG1zZ2lkICJtYXJrIGZpbGVzIGFzIFwiaW5kZXgtb25seVwiIgogbXNnc3RyICJtYXJrZXJhIGZpbGVyIHNvbSBcImVuZGFzdCBpbmRleFwiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2MAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjIKIG1zZ2lkICJjbGVhciBza2lwLXdvcmt0cmVlIGJpdCIKIG1zZ3N0ciAidMO2bSBcInNraXAtd29ya3RyZWVcIi1iaXRlbiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjMKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY1CiBtc2dpZCAiYWRkIHRvIGluZGV4IG9ubHk7IGRvIG5vdCBhZGQgY29udGVudCB0byBvYmplY3QgZGF0YWJhc2UiCiBtc2dzdHIgImzDpGdnIGVuZGFzdCB0aWxsIGluZGV4ZXQ7IGzDpGdnIGludGUgdGlsbCBpbm5laMOlbGxldCBpIG9iamVrdGRhdGFiYXNlbiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjUKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY3CiBtc2dpZCAicmVtb3ZlIG5hbWVkIHBhdGhzIGV2ZW4gaWYgcHJlc2VudCBpbiB3b3JrdHJlZSIKIG1zZ3N0ciAidGEgYm9ydCBuYW1uZ2l2bmEgc8O2a3bDpGdhciDDpHZlbiBvbSBkZSBmaW5ucyBpIGFyYmV0c2thdGFsb2dlbiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjcKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY5CiBtc2dpZCAid2l0aCAtLXN0ZGluOiBpbnB1dCBsaW5lcyBhcmUgdGVybWluYXRlZCBieSBudWxsIGJ5dGVzIgogbXNnc3RyICJtZWQgLS1zdGRpbjogaW5kYXRhcmFkZXIgdGVybWluZXJhcyBtZWQgbnVsbC1ieXRlIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2OQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzEKIG1zZ2lkICJyZWFkIGxpc3Qgb2YgcGF0aHMgdG8gYmUgdXBkYXRlZCBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJsw6RzIGxpc3RhIMO2dmVyIHPDtmt2w6RnYXIgYXR0IHVwcGRhdGVyYSBmcsOlbiBzdGFuZGFyZCBpbiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzMKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzc1CiBtc2dpZCAiYWRkIGVudHJpZXMgZnJvbSBzdGFuZGFyZCBpbnB1dCB0byB0aGUgaW5kZXgiCiBtc2dzdHIgImzDpGdnIHBvc3RlciBmcsOlbiBmcsOlbiBzdGFuZGFyZCBpbiB0aWxsIGluZGV4ZXQiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzc3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc3OQogbXNnaWQgInJlcG9wdWxhdGUgc3RhZ2VzICMyIGFuZCAjMyBmb3IgdGhlIGxpc3RlZCBwYXRocyIKIG1zZ3N0ciAiw6V0ZXJmeWxsIGV0YXBwIDIgb2NoIDMgZnLDpW4gYW5naXZuYSBzw7ZrdsOkZ2FyIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4MQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODMKIG1zZ2lkICJvbmx5IHVwZGF0ZSBlbnRyaWVzIHRoYXQgZGlmZmVyIGZyb20gSEVBRCIKIG1zZ3N0ciAidXBwZGF0ZXJhIGVuZGFzdCBwb3N0ZXIgc29tIHNraWxqZXIgc2lnIGZyw6VuIEhFQUQiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzg1CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4NwogbXNnaWQgImlnbm9yZSBmaWxlcyBtaXNzaW5nIGZyb20gd29ya3RyZWUiCiBtc2dzdHIgImlnbm9yZXJhIGZpbGVyIHNvbSBzYWtuYXMgaSBhcmJldHNrYXRhbG9nZW4iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzg4CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5MAogbXNnaWQgInJlcG9ydCBhY3Rpb25zIHRvIHN0YW5kYXJkIG91dHB1dCIKIG1zZ3N0ciAicmFwb3J0ZXJhIMOldGfDpHJkZXIgcMOlIHN0YW5kYXJkIHV0IgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5MAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTIKIG1zZ2lkICIoZm9yIHBvcmNlbGFpbnMpIGZvcmdldCBzYXZlZCB1bnJlc29sdmVkIGNvbmZsaWN0cyIKIG1zZ3N0ciAiKGbDtnIgcG9yc2xpbikgZ2zDtm0gc3BhcmFkZSBvbMO2c3RhIGtvbmZsaWt0ZXIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzk0CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5NgogbXNnaWQgIndyaXRlIGluZGV4IGluIHRoaXMgZm9ybWF0IgogbXNnc3RyICJza3JpdiBpbmRleCBpIGRldHRhIGZvcm1hdCIKIAotIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6NworIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6OQogbXNnaWQgImdpdCB1cGRhdGUtcmVmIFtvcHRpb25zXSAtZCA8cmVmbmFtZT4gWzxvbGR2YWw+XSIKIG1zZ3N0ciAiZ2l0IHVwZGF0ZS1yZWYgW2ZsYWdnb3JdIC1kIDxyZWZuYW1uPiBbPGdhbW1hbHR2w6RyZGU+XSIKIAotIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6OAorIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MTAKIG1zZ2lkICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gICAgPHJlZm5hbWU+IDxuZXd2YWw+IFs8b2xkdmFsPl0iCiBtc2dzdHIgImdpdCB1cGRhdGUtcmVmIFtmbGFnZ29yXSAgICA8cmVmbmFtbj4gPGdhbW1hbHR2w6RyZGU+IFs8bnl0dHbDpHJkZT5dIgogCi0jOiBidWlsdGluL3VwZGF0ZS1yZWYuYzoxOQorIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MTEKK21zZ2lkICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gLS1zdGRpbiBbLXpdIgorbXNnc3RyICJnaXQgdXBkYXRlLXJlZiBbZmxhZ2dvcl0gLS1zdGRpbiBbLXpdIgorCisjOiBidWlsdGluL3VwZGF0ZS1yZWYuYzoyNTUKIG1zZ2lkICJkZWxldGUgdGhlIHJlZmVyZW5jZSIKIG1zZ3N0ciAidGEgYm9ydCByZWZlcmVuc2VuIgogCi0jOiBidWlsdGluL3VwZGF0ZS1yZWYuYzoyMQorIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU3CiBtc2dpZCAidXBkYXRlIDxyZWZuYW1lPiBub3QgdGhlIG9uZSBpdCBwb2ludHMgdG8iCiBtc2dzdHIgInVwcGRhdGVyYSA8cmVmbmFtbj4gaW50ZSBkZXQgZGVuIHBla2FyIHDDpSIKIAorIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU4Cittc2dpZCAic3RkaW4gaGFzIE5VTC10ZXJtaW5hdGVkIGFyZ3VtZW50cyIKK21zZ3N0ciAic3RhbmRhcmQgaW4gaGFyIE5VTC10ZXJtaW5lcmFkZSBhcmd1bWVudCIKKworIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU5Cittc2dpZCAicmVhZCB1cGRhdGVzIGZyb20gc3RkaW4iCittc2dzdHIgImzDpHMgdXBwZGF0ZXJpbmdhciBmcsOlbiBzdGFuZGFyZCBpbiIKKwogIzogYnVpbHRpbi91cGRhdGUtc2VydmVyLWluZm8uYzo2CiBtc2dpZCAiZ2l0IHVwZGF0ZS1zZXJ2ZXItaW5mbyBbLS1mb3JjZV0iCiBtc2dzdHIgImdpdCB1cGRhdGUtc2VydmVyLWluZm8gWy0tZm9yY2VdIgpAQCAtOTI4NiwyMyArOTU3NSwyMyBAQAogIm7DpWdyYSBrb25jZXB0dsOkZ2xlZG5pbmdhci4gU2UgXCJnaXQgaGVscCA8a29tbWFuZG8+XCIgZWxsZXIgXCJnaXQgaGVscFxuIgogIjxrb25jZXB0PlwiIGbDtnIgYXR0IGzDpHNhIG1lciBvbSBzcGVjaWZpa2EgdW5kZXJrb21tYW5kb24gb2NoIGtvbmNlcHQuIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MTQ0CisjOiBwYXJzZS1vcHRpb25zLmg6MTQ2CiBtc2dpZCAiZXhwaXJ5IGRhdGUiCiBtc2dzdHIgImdpbHRpZyB0aWxsIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MTU5CisjOiBwYXJzZS1vcHRpb25zLmg6MTYxCiBtc2dpZCAibm8tb3AgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpIgogbXNnc3RyICJpbmdlbiBmdW5rdGlvbiAoYmFrw6V0a29tcGF0aWJpbGl0ZXQpIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjM2CisjOiBwYXJzZS1vcHRpb25zLmg6MjM4CiBtc2dpZCAiYmUgbW9yZSB2ZXJib3NlIgogbXNnc3RyICJ2YXIgbWVyIHByYXRzYW0iCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyMzgKKyM6IHBhcnNlLW9wdGlvbnMuaDoyNDAKIG1zZ2lkICJiZSBtb3JlIHF1aWV0IgogbXNnc3RyICJ2YXIgbWVyIHR5c3QiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyNDQKKyM6IHBhcnNlLW9wdGlvbnMuaDoyNDYKIG1zZ2lkICJ1c2UgPG4+IGRpZ2l0cyB0byBkaXNwbGF5IFNIQS0xcyIKIG1zZ3N0ciAiYW52w6RuZCA8bj4gc2lmZnJvciBmw7ZyIGF0dCB2aXNhIFNIQS0xOm9yIgogCkBAIC05NDM4LDcgKzk3MjcsNyBAQAogIzogZ2l0LWFtLnNoOjE2MwogbXNnaWQgIkZhbGxpbmcgYmFjayB0byBwYXRjaGluZyBiYXNlIGFuZCAzLXdheSBtZXJnZS4uLiIKIG1zZ3N0ciAiIgotIkZhbGxlciB0aWxsYmFrYSBww6UgYXR0IHBhY2hhIGdydW5kdmVyc2lvbmVuIG9jaCB0cmV2w6Rnc3NhbW1hbnNsYWduaW5nLi4uIgorIkZhbGxlciB0aWxsYmFrYSBww6UgYXR0IHBhdGNoYSBncnVuZHZlcnNpb25lbiBvY2ggdHJldsOkZ3NzYW1tYW5zbGFnbmluZy4uLiIKIAogIzogZ2l0LWFtLnNoOjE3OQogbXNnaWQgIkZhaWxlZCB0byBtZXJnZSBpbiB0aGUgY2hhbmdlcy4iCkBAIC05NzQwLDcgKzEwMDI5LDcgQEAKIG1zZ2lkICJQdWxsIGlzIG5vdCBwb3NzaWJsZSBiZWNhdXNlIHlvdSBoYXZlIHVubWVyZ2VkIGZpbGVzLiIKIG1zZ3N0ciAiRHUga2FuIGludGUgZ8O2cmEgZW4gXCJwdWxsXCIgZMOlIGR1IGhhciDDpG5kcmluZ2FyIHNvbSBpbnRlIGNoZWNrYXRzIGluLiIKIAotIzogZ2l0LXB1bGwuc2g6MjAzCisjOiBnaXQtcHVsbC5zaDoyMjMKIG1zZ2lkICJ1cGRhdGluZyBhbiB1bmJvcm4gYnJhbmNoIHdpdGggY2hhbmdlcyBhZGRlZCB0byB0aGUgaW5kZXgiCiBtc2dzdHIgInVwcGRhdGVyYXIgZW4gb2bDtmRkIGdyZW4gbWVkIMOkbmRyaW5nYXIgc29tIGxhZ3RzIHRpbGwgaSBpbmRleGV0IgogCkBAIC05NzQ4LDcgKzEwMDM3LDcgQEAKICMuIFRoZSB3b3JraW5nIHRyZWUgYW5kIHRoZSBpbmRleCBmaWxlIGlzIHN0aWxsIGJhc2VkIG9uIHRoZQogIy4gJG9yaWdfaGVhZCBjb21taXQsIGJ1dCB3ZSBhcmUgbWVyZ2luZyBpbnRvICRjdXJyX2hlYWQuCiAjLiBGaXJzdCB1cGRhdGUgdGhlIHdvcmtpbmcgdHJlZSB0byBtYXRjaCAkY3Vycl9oZWFkLgotIzogZ2l0LXB1bGwuc2g6MjM1CisjOiBnaXQtcHVsbC5zaDoyNTUKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJXYXJuaW5nOiBmZXRjaCB1cGRhdGVkIHRoZSBjdXJyZW50IGJyYW5jaCBoZWFkLlxuIgpAQCAtOTc1OSwxMSArMTAwNDgsMTEgQEAKICJWYXJuaW5nOiBzbmFiYnNwb2xhciBkaW4gYXJiZXRza2F0YWxvZyBmcsOlblxuIgogIlZhcm5pbmc6IGluY2hlY2tuaW5nZW4gJG9yaWdfaGVhZC4iCiAKLSM6IGdpdC1wdWxsLnNoOjI2MAorIzogZ2l0LXB1bGwuc2g6MjgwCiBtc2dpZCAiQ2Fubm90IG1lcmdlIG11bHRpcGxlIGJyYW5jaGVzIGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAiS2FuIGludGUgc2zDpSBpaG9wIGZsZXJhIGdyZW5hciBpIGV0dCB0b210IGh1dnVkLiIKIAotIzogZ2l0LXB1bGwuc2g6MjY0CisjOiBnaXQtcHVsbC5zaDoyODQKIG1zZ2lkICJDYW5ub3QgcmViYXNlIG9udG8gbXVsdGlwbGUgYnJhbmNoZXMiCiBtc2dzdHIgIkthbiBpbnRlIHV0ZsO2cmEgZW4gXCJyZWJhc2VcIiBvdmFucMOlIGZsZXJhIGdyZW5hciIKIApAQCAtOTc5NywzMSArMTAwODYsMzEgQEAKICJEaW5hIMOkbmRyaW5nYXIgw6RyIHPDpGtyYSBpIHN0YXNoZW4uXG4iCiAiRHUga2FuIG7DpHIgc29tIGhlbHN0IGFudsOkbmRhIFwiZ2l0IHN0YXNoIHBvcFwiIGVsbGVyIFwiZ2l0IHN0YXNoIGRyb3BcIi5cbiIKIAotIzogZ2l0LXJlYmFzZS5zaDoxOTAKKyM6IGdpdC1yZWJhc2Uuc2g6MTk5CiBtc2dpZCAiVGhlIHByZS1yZWJhc2UgaG9vayByZWZ1c2VkIHRvIHJlYmFzZS4iCiBtc2dzdHIgIktyb2tlbiBwcmUtcmViYXNlIHbDpGdyYWRlIG9tYmFzZXJpbmdlbi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MTk1CisjOiBnaXQtcmViYXNlLnNoOjIwNAogbXNnaWQgIkl0IGxvb2tzIGxpa2UgZ2l0LWFtIGlzIGluIHByb2dyZXNzLiBDYW5ub3QgcmViYXNlLiIKIG1zZ3N0ciAiRGV0IHZlcmthciBzb20gZW4gZ2l0LWFtIGvDtnJzLiBLYW4gaW50ZSBvbWJhc2VyYS4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzI5CisjOiBnaXQtcmViYXNlLnNoOjMzOAogbXNnaWQgIlRoZSAtLWV4ZWMgb3B0aW9uIG11c3QgYmUgdXNlZCB3aXRoIHRoZSAtLWludGVyYWN0aXZlIG9wdGlvbiIKIG1zZ3N0ciAiRmxhZ2dhbiAtLWV4ZWMgbcOlc3RlIGFudsOkbmRhcyB0aWxsc2FtbWFucyBtZWQgZmxhZ2dhbiAtLWludGVyYWN0aXZlIgogCi0jOiBnaXQtcmViYXNlLnNoOjMzNAorIzogZ2l0LXJlYmFzZS5zaDozNDMKIG1zZ2lkICJObyByZWJhc2UgaW4gcHJvZ3Jlc3M/IgogbXNnc3RyICJJbmdlbiBvbWJhc2VyaW5nIHDDpWfDpXI/IgogCi0jOiBnaXQtcmViYXNlLnNoOjM0NQorIzogZ2l0LXJlYmFzZS5zaDozNTQKIG1zZ2lkICJUaGUgLS1lZGl0LXRvZG8gYWN0aW9uIGNhbiBvbmx5IGJlIHVzZWQgZHVyaW5nIGludGVyYWN0aXZlIHJlYmFzZS4iCiBtc2dzdHIgIsOFdGfDpHJkZW4gLS1lZGl0LXRvZG8ga2FuIGVuZGFzdCBhbnbDpG5kYXMgdW5kZXIgaW50ZXJha3RpdiBvbWJhc2VyaW5nLiIKIAotIzogZ2l0LXJlYmFzZS5zaDozNTIKKyM6IGdpdC1yZWJhc2Uuc2g6MzYxCiBtc2dpZCAiQ2Fubm90IHJlYWQgSEVBRCIKIG1zZ3N0ciAiS2FuIGludGUgbMOkc2EgSEVBRCIKIAotIzogZ2l0LXJlYmFzZS5zaDozNTUKKyM6IGdpdC1yZWJhc2Uuc2g6MzY0CiBtc2dpZCAiIgogIllvdSBtdXN0IGVkaXQgYWxsIG1lcmdlIGNvbmZsaWN0cyBhbmQgdGhlblxuIgogIm1hcmsgdGhlbSBhcyByZXNvbHZlZCB1c2luZyBnaXQgYWRkIgpAQCAtOTgyOSwxMiArMTAxMTgsMTIgQEAKICJEdSBtw6VzdGUgcmVkaWdlcmEgYWxsYSBzYW1tYW5zbGFnbmluZ3Nrb25mbGlrdGVyIG9jaFxuIgogImTDpHJlZnRlciBtYXJrZXJhIGRlbSBzb20gbMO2c3RhIG1lZCBnaXQgYWRkIgogCi0jOiBnaXQtcmViYXNlLnNoOjM3MworIzogZ2l0LXJlYmFzZS5zaDozODIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBtb3ZlIGJhY2sgdG8gJGhlYWRfbmFtZSIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBmbHl0dGEgdGlsbGJha2EgdGlsbCAkaGVhZF9uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjM5MgorIzogZ2l0LXJlYmFzZS5zaDo0MDEKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJJdCBzZWVtcyB0aGF0IHRoZXJlIGlzIGFscmVhZHkgYSAkc3RhdGVfZGlyX2Jhc2UgZGlyZWN0b3J5LCBhbmRcbiIKQEAgLTk4NTUsNjYgKzEwMTQ0LDY2IEBACiAib2NoIGvDtnIgcHJvZ3JhbW1ldCBpZ2VuLiBKYWcgYXZzbHV0YXIgaWZhbGwgZHUgZm9ydGZhcmFuZGUgaGFyXG4iCiAibsOlZ290IGF2IHbDpHJkZSBkw6RyLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MzcKKyM6IGdpdC1yZWJhc2Uuc2g6NDQ2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHVwc3RyZWFtICR1cHN0cmVhbV9uYW1lIgogbXNnc3RyICJvZ2lsdGlnIHVwcHN0csO2bSAkdXBzdHJlYW1fbmFtZSIKIAotIzogZ2l0LXJlYmFzZS5zaDo0NjEKKyM6IGdpdC1yZWJhc2Uuc2g6NDcwCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkb250b19uYW1lOiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSBtZXJnZSBiYXNlcyIKIG1zZ3N0ciAiJG9udG9fbmFtZTogbWVyIMOkbiBlbiBzYW1tYW5zbGFnbmluZ3NiYXMgZmlubnMiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDY0IGdpdC1yZWJhc2Uuc2g6NDY4CisjOiBnaXQtcmViYXNlLnNoOjQ3MyBnaXQtcmViYXNlLnNoOjQ3NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiJG9udG9fbmFtZTogdGhlcmUgaXMgbm8gbWVyZ2UgYmFzZSIKIG1zZ3N0ciAiJG9udG9fbmFtZTogaW5nZW4gc2FtbWFuc2xhZ25pbmdzYmFzIGZpbm5zIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ3MworIzogZ2l0LXJlYmFzZS5zaDo0ODIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQgY29tbWl0OiAkb250b19uYW1lIgogbXNnc3RyICJQZWthIHDDpSBlbiBnaWx0aWcgaW5jaGVja25pbmc6ICRvbnRvX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDk2CisjOiBnaXQtcmViYXNlLnNoOjUwNQogIywgc2gtZm9ybWF0CiBtc2dpZCAiZmF0YWw6IG5vIHN1Y2ggYnJhbmNoOiAkYnJhbmNoX25hbWUiCiBtc2dzdHIgIsO2ZGVzZGlnZXJ0OiBpbmdlbiBzw6VkYW4gZ3JlbjogJGJyYW5jaF9uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjUxOQorIzogZ2l0LXJlYmFzZS5zaDo1MjgKIG1zZ2lkICJDYW5ub3QgYXV0b3N0YXNoIgogbXNnc3RyICJLYW4gaW50ZSB1dGbDtnJhIFwiYXV0b3N0YXNoXCIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjOiBnaXQtcmViYXNlLnNoOjUzMwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3JlYXRlZCBhdXRvc3Rhc2g6ICRzdGFzaF9hYmJyZXYiCiBtc2dzdHIgIlNrYXBhZGUgYXV0b3N0YXNoOiAkc3Rhc2hfYWJicmV2IgogCi0jOiBnaXQtcmViYXNlLnNoOjUyOAorIzogZ2l0LXJlYmFzZS5zaDo1MzcKIG1zZ2lkICJQbGVhc2UgY29tbWl0IG9yIHN0YXNoIHRoZW0uIgogbXNnc3RyICJDaGVja2EgaW4gZWxsZXIgYW52w6RuZCBcInN0YXNoXCIgcMOlIGRlbS4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTQ4CisjOiBnaXQtcmViYXNlLnNoOjU1NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3VycmVudCBicmFuY2ggJGJyYW5jaF9uYW1lIGlzIHVwIHRvIGRhdGUuIgogbXNnc3RyICJBa3R1ZWxsIGdyZW4gJGJyYW5jaF9uYW1lIMOkciDDoCBqb3VyLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1NTIKKyM6IGdpdC1yZWJhc2Uuc2g6NTYxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDdXJyZW50IGJyYW5jaCAkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZSwgcmViYXNlIGZvcmNlZC4iCiBtc2dzdHIgIkFrdHVlbGwgZ3JlbiAkYnJhbmNoX25hbWUgw6RyIMOgIGpvdXIsIG9tYmFzZXJpbmcgZnJhbXR2aW5nYWQuIgogCi0jOiBnaXQtcmViYXNlLnNoOjU2MworIzogZ2l0LXJlYmFzZS5zaDo1NzIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNoYW5nZXMgZnJvbSAkbWIgdG8gJG9udG86IgogbXNnc3RyICLDhG5kcmluZ2FyIGZyw6VuICRtYiB0aWxsICRvbnRvOiIKIAogIy4gRGV0YWNoIEhFQUQgYW5kIHJlc2V0IHRoZSB0cmVlCi0jOiBnaXQtcmViYXNlLnNoOjU3MgorIzogZ2l0LXJlYmFzZS5zaDo1ODEKIG1zZ2lkICJGaXJzdCwgcmV3aW5kaW5nIGhlYWQgdG8gcmVwbGF5IHlvdXIgd29yayBvbiB0b3Agb2YgaXQuLi4iCiBtc2dzdHIgIiIKICJGw7Zyc3QsIHNwb2xhciB0aWxsYmFrYSBodXZ1ZGV0IGbDtnIgYXR0IHNwZWxhIGF2IGRpdHQgYXJiZXRlIG92YW5ww6UgZGV0Li4uIgogCi0jOiBnaXQtcmViYXNlLnNoOjU4MgorIzogZ2l0LXJlYmFzZS5zaDo1OTEKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhc3QtZm9yd2FyZGVkICRicmFuY2hfbmFtZSB0byAkb250b19uYW1lLiIKIG1zZ3N0ciAiU25hYmJzcG9sYWRlICRicmFuY2hfbmFtZSB0aWxsICRvbnRvX25hbWUuIgpAQCAtOTk2Miw3ICsxMDI1MSw3IEBACiAjLiAkIGdpdCBzdGFzaCBzYXZlIC0tYmxhaC1ibGFoIDI+JjEgfCBoZWFkIC1uIDIKICMuIGVycm9yOiB1bmtub3duIG9wdGlvbiBmb3IgJ3N0YXNoIHNhdmUnOiAtLWJsYWgtYmxhaAogIy4gVG8gcHJvdmlkZSBhIG1lc3NhZ2UsIHVzZSBnaXQgc3Rhc2ggc2F2ZSAtLSAnLS1ibGFoLWJsYWgnCi0jOiBnaXQtc3Rhc2guc2g6MjQxCisjOiBnaXQtc3Rhc2guc2g6MjM3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiZXJyb3I6IHVua25vd24gb3B0aW9uIGZvciAnc3Rhc2ggc2F2ZSc6ICRvcHRpb25cbiIKQEAgLTk5NzEsMTAwICsxMDI2MCw4NSBAQAogImZlbDogZmVsYWt0aWcgZmxhZ2dhIGbDtnIgXCJzdGFzaCBzYXZlXCI6ICRvcHRpb25cbiIKICIgICAgIEbDtnIgYXR0IGFuZ2UgZXR0IG1lZGRlbGFuZGUsIGFudsOkbmQgZ2l0IHN0YXNoIHNhdmUgLS0gXCIkb3B0aW9uXCIiCiAKLSM6IGdpdC1zdGFzaC5zaDoyNjIKKyM6IGdpdC1zdGFzaC5zaDoyNTgKIG1zZ2lkICJObyBsb2NhbCBjaGFuZ2VzIHRvIHNhdmUiCiBtc2dzdHIgIkluZ2EgbG9rYWxhIMOkbmRyaW5nYXIgYXR0IHNwYXJhIgogCi0jOiBnaXQtc3Rhc2guc2g6MjY4Ci1tc2dpZCAiIgotIlRoZSBmb2xsb3dpbmcgdW50cmFja2VkIGZpbGVzIHdvdWxkIE5PVCBiZSBzYXZlZCBidXQgbmVlZCB0byBiZSByZW1vdmVkIGJ5ICIKLSJzdGFzaCBzYXZlOiIKLW1zZ3N0ciAiIgotIkbDtmxqYW5kZSBvc3DDpXJhZGUgw6RuZHJpbmdhciBza3VsbGUgSU5URSBzcGFyYXMgdXRhbiBtw6VzdGUgdGFzIGJvcnQgbWVkICIKLSJcInN0YXNoIHNhdmVcIjoiCi0KLSM6IGdpdC1zdGFzaC5zaDoyNzAKLW1zZ2lkICIiCi0iQWJvcnRpbmcuIENvbnNpZGVyIHVzaW5nIGVpdGhlciB0aGUgLS1mb3JjZSBvciAtLWluY2x1ZGUtdW50cmFja2VkIG9wdGlvbi4iCi1tc2dzdHIgIiIKLSJBdmJyeXRlci4gw5Z2ZXJ2w6RnIGF0dCBhbnbDpG5kYSBhbnRpbmdlbiBmbGFnZ2FuIC0tZm9yY2UgZWxsZXIgLS1pbmNsdWRlLSIKLSJ1bnRyYWNrZWQuIgotCi0jOiBnaXQtc3Rhc2guc2g6Mjc0CisjOiBnaXQtc3Rhc2guc2g6MjYyCiBtc2dpZCAiQ2Fubm90IGluaXRpYWxpemUgc3Rhc2giCiBtc2dzdHIgIkthbiBpbnRlIGluaXRpZXJhIFwic3Rhc2hcIiIKIAotIzogZ2l0LXN0YXNoLnNoOjI3OAorIzogZ2l0LXN0YXNoLnNoOjI2NgogbXNnaWQgIkNhbm5vdCBzYXZlIHRoZSBjdXJyZW50IHN0YXR1cyIKIG1zZ3N0ciAiS2FuIGludGUgc3BhcmEgYWt0dWVsbCBzdGF0dXMiCiAKLSM6IGdpdC1zdGFzaC5zaDoyOTYKKyM6IGdpdC1zdGFzaC5zaDoyODQKIG1zZ2lkICJDYW5ub3QgcmVtb3ZlIHdvcmt0cmVlIGNoYW5nZXMiCiBtc2dzdHIgIkthbiBpbnRlIHRhIGJvcnQgw6RuZHJpbmdhciBpIGFyYmV0c2thdGFsb2dlbiIKIAotIzogZ2l0LXN0YXNoLnNoOjM5NQorIzogZ2l0LXN0YXNoLnNoOjM4MwogbXNnaWQgIk5vIHN0YXNoIGZvdW5kLiIKIG1zZ3N0ciAiSW5nZW4gXCJzdGFzaFwiIGhpdHRhZGVzLiIKIAotIzogZ2l0LXN0YXNoLnNoOjQwMgorIzogZ2l0LXN0YXNoLnNoOjM5MAogIywgc2gtZm9ybWF0CiBtc2dpZCAiVG9vIG1hbnkgcmV2aXNpb25zIHNwZWNpZmllZDogJFJFViIKIG1zZ3N0ciAiRsO2ciBtw6VuZ2EgcmV2aXNpb25lciBhbmdpdm5hOiAkUkVWIgogCi0jOiBnaXQtc3Rhc2guc2g6NDA4CisjOiBnaXQtc3Rhc2guc2g6Mzk2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkcmVmZXJlbmNlIGlzIG5vdCB2YWxpZCByZWZlcmVuY2UiCiBtc2dzdHIgIiRyZWZlcmVuY2Ugw6RyIGludGUgZW4gZ2lsdGlnIHJlZmVyZW5zLiIKIAotIzogZ2l0LXN0YXNoLnNoOjQzNgorIzogZ2l0LXN0YXNoLnNoOjQyNAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaC1saWtlIGNvbW1pdCIKIG1zZ3N0ciAiXCIkYXJnc1wiIMOkciBpbnRlIGVuIFwic3Rhc2hcIi1saWtuYW5kZSBpbmNoZWNrbmluZyIKIAotIzogZ2l0LXN0YXNoLnNoOjQ0NworIzogZ2l0LXN0YXNoLnNoOjQzNQogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaCByZWZlcmVuY2UiCiBtc2dzdHIgIlwiJGFyZ3NcIiDDpHIgaW50ZSBlbiBcInN0YXNoXCItcmVmZXJlbnMiCiAKLSM6IGdpdC1zdGFzaC5zaDo0NTUKKyM6IGdpdC1zdGFzaC5zaDo0NDMKIG1zZ2lkICJ1bmFibGUgdG8gcmVmcmVzaCBpbmRleCIKIG1zZ3N0ciAia2FuIGludGUgdXBwZGF0ZXJhIGluZGV4ZXQiCiAKLSM6IGdpdC1zdGFzaC5zaDo0NTkKKyM6IGdpdC1zdGFzaC5zaDo0NDcKIG1zZ2lkICJDYW5ub3QgYXBwbHkgYSBzdGFzaCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UiCiBtc2dzdHIgIkthbiBpbnRlIHRpbGzDpG1wYSBlbiBcInN0YXNoXCIgbWl0dCBpIGVuIHNhbW1hbnNsYWduaW5nIgogCi0jOiBnaXQtc3Rhc2guc2g6NDY3CisjOiBnaXQtc3Rhc2guc2g6NDU1CiBtc2dpZCAiQ29uZmxpY3RzIGluIGluZGV4LiBUcnkgd2l0aG91dCAtLWluZGV4LiIKIG1zZ3N0ciAiS29uZmxpa3RlciBpIGluZGV4ZXQuIFRlc3RhIHV0YW4gLS1pbmRleC4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0NjkKKyM6IGdpdC1zdGFzaC5zaDo0NTcKIG1zZ2lkICJDb3VsZCBub3Qgc2F2ZSBpbmRleCB0cmVlIgogbXNnc3RyICJLdW5kZSBpbnRlIHNwYXJhIGluZGV4dHLDpGQiCiAKLSM6IGdpdC1zdGFzaC5zaDo1MDMKKyM6IGdpdC1zdGFzaC5zaDo0OTEKIG1zZ2lkICJDYW5ub3QgdW5zdGFnZSBtb2RpZmllZCBmaWxlcyIKIG1zZ3N0ciAiS2FuIGludGUgdGEgYm9ydCDDpG5kcmFkZSBmaWxlciB1ciBrw7ZuIgogCi0jOiBnaXQtc3Rhc2guc2g6NTE4CisjOiBnaXQtc3Rhc2guc2g6NTA2CiBtc2dpZCAiSW5kZXggd2FzIG5vdCB1bnN0YXNoZWQuIgogbXNnc3RyICJJbmRleGV0IGhhciBpbnRlIHRhZ2l0cyB1ciBrw7ZuLiIKIAotIzogZ2l0LXN0YXNoLnNoOjUzNQorIzogZ2l0LXN0YXNoLnNoOjUyMwogIywgc2gtZm9ybWF0CiBtc2dpZCAiRHJvcHBlZCAke1JFVn0gKCRzKSIKIG1zZ3N0ciAiS2FzdGFkZSAke1JFVn0gKCRzKSIKIAotIzogZ2l0LXN0YXNoLnNoOjUzNgorIzogZ2l0LXN0YXNoLnNoOjUyNAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJHtSRVZ9OiBDb3VsZCBub3QgZHJvcCBzdGFzaCBlbnRyeSIKIG1zZ3N0ciAiJHtSRVZ9OiBLdW5kZSBpbnRlIGthc3RhIFwic3Rhc2hcIi1wb3N0IgogCi0jOiBnaXQtc3Rhc2guc2g6NTQzCisjOiBnaXQtc3Rhc2guc2g6NTMxCiBtc2dpZCAiTm8gYnJhbmNoIG5hbWUgc3BlY2lmaWVkIgogbXNnc3RyICJJbmdldCBncmVubmFtbiBhbmdhdnMiCiAKLSM6IGdpdC1zdGFzaC5zaDo2MTUKKyM6IGdpdC1zdGFzaC5zaDo2MDMKIG1zZ2lkICIoVG8gcmVzdG9yZSB0aGVtIHR5cGUgXCJnaXQgc3Rhc2ggYXBwbHlcIikiCiBtc2dzdHIgIihGw7ZyIGF0dCDDpXRlcnN0w6RsbGEgZGVtLCBza3JpdiBcImdpdCBzdGFzaCBhcHBseVwiKSIKIApAQCAtMTAzMzMsNTAgKzEwNjA3LDYxIEBACiBtc2dzdHIgIkZsYWdnYW4gLS1jYWNoZWQga2FuIGludGUgYW52w6RuZGFzIG1lZCBmbGFnZ2FuIC0tZmlsZXMiCiAKICMuIHVuZXhwZWN0ZWQgdHlwZQotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwNzMKICMsIHNoLWZvcm1hdAogbXNnaWQgInVuZXhwZWN0ZWQgbW9kZSAkbW9kX2RzdCIKIG1zZ3N0ciAib3bDpG50YXQgbMOkZ2UgJG1vZF9kc3QiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTA4NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDkzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIgIFdhcm46ICRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9zcmMiCiBtc2dzdHIgIiAgVmFybmluZzogJGRpc3BsYXlfbmFtZSBpbm5laMOlbGxlciBpbnRlIGluY2hlY2tuaW5nZW4gJHNoYTFfc3JjIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwODkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfZHN0IgogbXNnc3RyICIgIFZhcm5pbmc6ICRkaXNwbGF5X25hbWUgaW5uZWjDpWxsZXIgaW50ZSBpbmNoZWNrbmluZ2VuICRzaGExX2RzdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDkyCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwOTkKICMsIHNoLWZvcm1hdAogbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0cyAkc2hhMV9zcmMgYW5kICRzaGExX2RzdCIKIG1zZ3N0ciAiIgogIiAgVmFybmluZzogJGRpc3BsYXlfbmFtZSBpbm5laMOlbGxlciBpbnRlIGluY2hlY2tuaW5nYXJuYSAkc2hhMV9zcmMgb2NoICIKICIkc2hhMV9kc3QiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTExNworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTI0CiBtc2dpZCAiYmxvYiIKIG1zZ3N0ciAiYmxvYiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTU1Ci1tc2dpZCAiU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiCi1tc2dzdHIgIlVuZGVybW9kdWxlciDDpG5kcmFkZSBtZW4gaW50ZSB1cHBkYXRlcmFkZToiCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1NwotbXNnaWQgIlN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCi1tc2dzdHIgIlVuZGVybW9kdWxlcnMgw6RuZHJpbmdhciBhdHQgY2hlY2thIGluOiIKLQotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjQyCisjOiBnaXQtc3VibW9kdWxlLnNoOjEyMzgKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKIG1zZ3N0ciAiTWlzc2x5Y2thZGVzIHJla3Vyc2VyYSBpbiBpIHVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJHNtX3BhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMzA2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEzMDIKICMsIHNoLWZvcm1hdAogbXNnaWQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIlN5bmtyb25pc2VyYXIgdW5kZXJtb2R1bC11cmwgZsO2ciBcIiRkaXNwbGF5cGF0aFwiIgogCisjfiBtc2dpZCAiaW5wdXQgcGF0aHMgYXJlIHRlcm1pbmF0ZWQgYnkgYSBudWxsIGNoYXJhY3RlciIKKyN+IG1zZ3N0ciAic8O2a3bDpGdhciBhdmRlbGFzIG1lZCBudWxsLXRlY2tlbiIKKworI34gbXNnaWQgImRvbmVcbiIKKyN+IG1zZ3N0ciAia2xhcnRcbiIKKworI34gbXNnaWQgIiIKKyN+ICJUaGUgZm9sbG93aW5nIHVudHJhY2tlZCBmaWxlcyB3b3VsZCBOT1QgYmUgc2F2ZWQgYnV0IG5lZWQgdG8gYmUgcmVtb3ZlZCAiCisjfiAiYnkgc3Rhc2ggc2F2ZToiCisjfiBtc2dzdHIgIiIKKyN+ICJGw7ZsamFuZGUgb3Nww6VyYWRlIMOkbmRyaW5nYXIgc2t1bGxlIElOVEUgc3BhcmFzIHV0YW4gbcOlc3RlIHRhcyBib3J0IG1lZCAiCisjfiAiXCJzdGFzaCBzYXZlXCI6IgorCisjfiBtc2dpZCAiIgorI34gIkFib3J0aW5nLiBDb25zaWRlciB1c2luZyBlaXRoZXIgdGhlIC0tZm9yY2Ugb3IgLS1pbmNsdWRlLXVudHJhY2tlZCBvcHRpb24uIgorI34gbXNnc3RyICIiCisjfiAiQXZicnl0ZXIuIMOWdmVydsOkZyBhdHQgYW52w6RuZGEgYW50aW5nZW4gZmxhZ2dhbiAtLWZvcmNlIGVsbGVyIC0taW5jbHVkZS0iCisjfiAidW50cmFja2VkLiIKKwogI34gbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCiAjfiBtc2dzdHIgIiAgKHLDpHR0YSBrb25mbGlrdGVyIG9jaCBrw7ZyIHNlZGFuIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCiAKQEAgLTEwNDk4LDkgKzEwNzgzLDYgQEAKICN+IG1zZ2lkICItQiBjYW5ub3QgYmUgdXNlZCB3aXRoIC1iIgogI34gbXNnc3RyICItQiBrYW4gaW50ZSBhbnbDpG5kYXMgbWVkIC1iIgogCi0jfiBtc2dpZCAiLS1wYXRjaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBhbGwgb3RoZXIgb3B0aW9ucyIKLSN+IG1zZ3N0ciAiLS1wYXRjaCDDpHIgaW5rb21wYXRpYmVsIG1lZCBhbGxhIGFuZHJhIGZsYWdnb3IiCi0KICN+IG1zZ2lkICItLWRldGFjaCBjYW5ub3QgYmUgdXNlZCB3aXRoIC1iLy1CLy0tb3JwaGFuIgogI34gbXNnc3RyICItLWRldGNhaCBrYW4gaW50ZSBhbnbDpG5kYXMgbWVkIC1iLy1CLy0tb3JwaGFuIgogCmRpZmYgLS1naXQgYS9wby92aS5wbyBiL3BvL3ZpLnBvCmluZGV4IGRkMmQyYTcuLjA1NDIwZWIgMTAwNjQ0Ci0tLSBhL3BvL3ZpLnBvCisrKyBiL3BvL3ZpLnBvCkBAIC0xLDE0ICsxLDE1IEBACiAjIFZpZXRuYW1lc2UgdHJhbnNsYXRpb24gZm9yIEdJVC1DT1JFLgorIyBC4bqjbiBk4buLY2ggdGnhur9uZyBWaeG7h3QgZMOgbmggY2hvIEdJVC1DT1JFLgogIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgZ2l0LWNvcmUgcGFja2FnZS4KICMgRmlyc3QgdHJhbnNsYXRlZCBieSBUcuG6p24gTmfhu41jIFF1w6JuIDx2bndpbGRtYW5AZ21haWwuY29tPiwgMjAxMi0yMDEzLgogIyBOZ3V54buFbiBUaMOhaSBOZ+G7jWMgRHV5IDxwY2xvdWRzQGdtYWlsLmNvbT4sIDIwMTIuCiAjCiBtc2dpZCAiIgogbXNnc3RyICIiCi0iUHJvamVjdC1JZC1WZXJzaW9uOiBnaXQtdjEuOC40LXJjMS0yMi1nYjhlY2YyM1xuIgorIlByb2plY3QtSWQtVmVyc2lvbjogZ2l0LXYxLjguNS1yYzAtMjQtZzcyN2I5NTdcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogR2l0IE1haWxpbmcgTGlzdCA8Z2l0QHZnZXIua2VybmVsLm9yZz5cbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0wOC0wNiAxNDoxMCswODAwXG4iCi0iUE8tUmV2aXNpb24tRGF0ZTogMjAxMy0wOC0wNiAxNDoyOCswNzAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMTEtMDIgMDg6MDYrMDgwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMTMtMTEtMDIgMTM6MTUrMDcwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogVHLhuqduIE5n4buNYyBRdcOibiA8dm53aWxkbWFuQGdtYWlsLmNvbT5cbiIKICJMYW5ndWFnZS1UZWFtOiBWaWV0bmFtZXNlIDx0cmFuc2xhdGlvbi10ZWFtLXZpQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD5cbiIKICJMYW5ndWFnZTogdmlcbiIKQEAgLTI0LDcgKzI1LDcgQEAKICM6IGFkdmljZS5jOjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImhpbnQ6ICUuKnNcbiIKLW1zZ3N0ciAiZ+G7o2kgw706ICUuKnNcbiIKK21zZ3N0ciAidMOsbSB0aOG6pXk6ICUuKnNcbiIKIAogIy4KICMuICogTWVzc2FnZSB1c2VkIGJvdGggd2hlbiAnZ2l0IGNvbW1pdCcgZmFpbHMgYW5kIHdoZW4KQEAgLTYxLDcxICs2Miw3NiBAQAogbXNnaWQgImdpdCBhcmNoaXZlIC0tcmVtb3RlIDxyZXBvPiBbLS1leGVjIDxjbWQ+XSAtLWxpc3QiCiBtc2dzdHIgImdpdCBhcmNoaXZlIC0tcmVtb3RlIDxraG8+IFstLWV4ZWMgPGzhu4duaD5dIC0tbGlzdCIKIAotIzogYXJjaGl2ZS5jOjMyMworIzogYXJjaGl2ZS5jOjI0MiBidWlsdGluL2FkZC5jOjI0MCBidWlsdGluL2FkZC5jOjU1NiBidWlsdGluL3JtLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhdGhzcGVjICclcycgZGlkIG5vdCBtYXRjaCBhbnkgZmlsZXMiCittc2dzdHIgIsSR4bq3YyB04bqjIMSRxrDhu51uZyBk4bqrbiDigJwlc+KAnSBraMO0bmcga2jhu5twIHbhu5tpIGLhuqV0IGvhu7MgdOG6rXAgdGluIG7DoG8iCisKKyM6IGFyY2hpdmUuYzozMjcKIG1zZ2lkICJmbXQiCiBtc2dzdHIgImZtdCIKIAotIzogYXJjaGl2ZS5jOjMyMworIzogYXJjaGl2ZS5jOjMyNwogbXNnaWQgImFyY2hpdmUgZm9ybWF0IgogbXNnc3RyICLEkeG7i25oIGThuqFuZyBsxrB1IHRy4buvIgogCi0jOiBhcmNoaXZlLmM6MzI0IGJ1aWx0aW4vbG9nLmM6MTE3MworIzogYXJjaGl2ZS5jOjMyOCBidWlsdGluL2xvZy5jOjExOTMKIG1zZ2lkICJwcmVmaXgiCiBtc2dzdHIgInRp4buBbiB04buRIgogCi0jOiBhcmNoaXZlLmM6MzI1CisjOiBhcmNoaXZlLmM6MzI5CiBtc2dpZCAicHJlcGVuZCBwcmVmaXggdG8gZWFjaCBwYXRobmFtZSBpbiB0aGUgYXJjaGl2ZSIKIG1zZ3N0ciAibuG7kWkgdGjDqm0gdGnhu4FuIHThu5EgdsOgbyB04burbmcgxJHGsOG7nW5nIGThuqtuIHThuq1wIHRpbiB0cm9uZyBraG8gbMawdSIKIAotIzogYXJjaGl2ZS5jOjMyNiBidWlsdGluL2FyY2hpdmUuYzo4OCBidWlsdGluL2JsYW1lLmM6MjI5MgotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTMgYnVpbHRpbi9jb25maWcuYzo1NiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjczCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc1IGJ1aWx0aW4vZ3JlcC5jOjcxNCBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTYgYnVpbHRpbi9scy1maWxlcy5jOjQ5OSBidWlsdGluL25vdGVzLmM6NDA4Ci0jOiBidWlsdGluL25vdGVzLmM6NTY1IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA4IHBhcnNlLW9wdGlvbnMuaDoxNTIKKyM6IGFyY2hpdmUuYzozMzAgYnVpbHRpbi9hcmNoaXZlLmM6ODggYnVpbHRpbi9ibGFtZS5jOjIyNjQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY1IGJ1aWx0aW4vY29uZmlnLmM6NTggYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MiBidWlsdGluL2dyZXAuYzo3MTYgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg2IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODkgYnVpbHRpbi9ub3Rlcy5jOjQwOAorIzogYnVpbHRpbi9ub3Rlcy5jOjU2NSBidWlsdGluL3JlYWQtdHJlZS5jOjEwOCBwYXJzZS1vcHRpb25zLmg6MTU0CiBtc2dpZCAiZmlsZSIKIG1zZ3N0ciAidOG6rXAtdGluIgogCi0jOiBhcmNoaXZlLmM6MzI3IGJ1aWx0aW4vYXJjaGl2ZS5jOjg5CisjOiBhcmNoaXZlLmM6MzMxIGJ1aWx0aW4vYXJjaGl2ZS5jOjg5CiBtc2dpZCAid3JpdGUgdGhlIGFyY2hpdmUgdG8gdGhpcyBmaWxlIgogbXNnc3RyICJnaGkga2hvIGzGsHUgdsOgbyB04bqtcCB0aW4gbsOgeSIKIAotIzogYXJjaGl2ZS5jOjMyOQorIzogYXJjaGl2ZS5jOjMzMwogbXNnaWQgInJlYWQgLmdpdGF0dHJpYnV0ZXMgaW4gd29ya2luZyBkaXJlY3RvcnkiCiBtc2dzdHIgIsSR4buNYyAuZ2l0YXR0cmlidXRlcyB0cm9uZyB0aMawIG3hu6VjIGzDoG0gdmnhu4djIgogCi0jOiBhcmNoaXZlLmM6MzMwCisjOiBhcmNoaXZlLmM6MzM0CiBtc2dpZCAicmVwb3J0IGFyY2hpdmVkIGZpbGVzIG9uIHN0ZGVyciIKIG1zZ3N0ciAibGnhu4d0IGvDqiBjw6FjIHThuq1wIHRpbiDEkcaw4bujYyBsxrB1IHRy4buvIHbDoG8gc3RkZXJyICjEkeG6p3UgcmEgbOG7l2kgdGnDqnUgY2h14bqpbikiCiAKLSM6IGFyY2hpdmUuYzozMzEKKyM6IGFyY2hpdmUuYzozMzUKIG1zZ2lkICJzdG9yZSBvbmx5IgogbXNnc3RyICJjaOG7iSBsxrB1IChraMO0bmcgbsOpbikiCiAKLSM6IGFyY2hpdmUuYzozMzIKKyM6IGFyY2hpdmUuYzozMzYKIG1zZ2lkICJjb21wcmVzcyBmYXN0ZXIiCiBtc2dzdHIgIm7DqW4gbmhhbmggaMahbiIKIAotIzogYXJjaGl2ZS5jOjM0MAorIzogYXJjaGl2ZS5jOjM0NAogbXNnaWQgImNvbXByZXNzIGJldHRlciIKIG1zZ3N0ciAibsOpbiBuaOG7jyBoxqFuIgogCi0jOiBhcmNoaXZlLmM6MzQzCisjOiBhcmNoaXZlLmM6MzQ3CiBtc2dpZCAibGlzdCBzdXBwb3J0ZWQgYXJjaGl2ZSBmb3JtYXRzIgogbXNnc3RyICJsaeG7h3Qga8OqIGPDoWMga2nhu4N1IG7DqW4gxJHGsOG7o2MgaOG7lyB0cuG7oyIKIAotIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODUKKyM6IGFyY2hpdmUuYzozNDkgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg0CiBtc2dpZCAicmVwbyIKIG1zZ3N0ciAia2hvIgogCi0jOiBhcmNoaXZlLmM6MzQ2IGJ1aWx0aW4vYXJjaGl2ZS5jOjkxCisjOiBhcmNoaXZlLmM6MzUwIGJ1aWx0aW4vYXJjaGl2ZS5jOjkxCiBtc2dpZCAicmV0cmlldmUgdGhlIGFyY2hpdmUgZnJvbSByZW1vdGUgcmVwb3NpdG9yeSA8cmVwbz4iCiBtc2dzdHIgIm5o4bqtbiBraG8gbMawdSB04burIGtobyBjaOG7qWEgPGtobz4gdHLDqm4gbcOheSBjaOG7pyIKIAotIzogYXJjaGl2ZS5jOjM0NyBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NDg3CisjOiBhcmNoaXZlLmM6MzUxIGJ1aWx0aW4vYXJjaGl2ZS5jOjkyIGJ1aWx0aW4vbm90ZXMuYzo0ODcKIG1zZ2lkICJjb21tYW5kIgogbXNnc3RyICJs4buHbmgiCiAKLSM6IGFyY2hpdmUuYzozNDggYnVpbHRpbi9hcmNoaXZlLmM6OTMKKyM6IGFyY2hpdmUuYzozNTIgYnVpbHRpbi9hcmNoaXZlLmM6OTMKIG1zZ2lkICJwYXRoIHRvIHRoZSByZW1vdGUgZ2l0LXVwbG9hZC1hcmNoaXZlIGNvbW1hbmQiCiBtc2dzdHIgIsSRxrDhu51uZyBk4bqrbiDEkeG6v24gbOG7h25oIGdpdC11cGxvYWQtcGFjayB0csOqbiBtw6F5IGNo4bunIgogCkBAIC0yMDgsMTkgKzIxNCwxOSBAQAogbXNnaWQgIkNhbm5vdCBmb3JjZSB1cGRhdGUgdGhlIGN1cnJlbnQgYnJhbmNoLiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIMOpcCBideG7mWMgY+G6rXAgbmjhuq10IG5ow6FuaCBoaeG7h24gaMOgbmguIgogCi0jOiBicmFuY2guYzoyMTYKKyM6IGJyYW5jaC5jOjIxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgc2V0dXAgdHJhY2tpbmcgaW5mb3JtYXRpb247IHN0YXJ0aW5nIHBvaW50ICclcycgaXMgbm90IGEgYnJhbmNoLiIKIG1zZ3N0ciAiIgogIktow7RuZyB0aOG7gyBjw6BpIMSR4bq3dCB0aMO0bmcgdGluIHRoZW8gduG6v3Q7IMSRaeG7g20gYuG6r3QgxJHhuqd1IOKAnCVz4oCdIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0ICIKICJuaMOhbmguIgogCi0jOiBicmFuY2guYzoyMTgKKyM6IGJyYW5jaC5jOjIxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0aGUgcmVxdWVzdGVkIHVwc3RyZWFtIGJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgotbXNnc3RyICJuaMOhbmggZMOybmcgbmfGsOG7o2MgxJHDoyB5w6p1IGPhuqd1IOKAnCVz4oCdIGNoxrBhIHPhurVuIGPDsyIKK21zZ3N0ciAibmjDoW5oIHRoxrDhu6NuZyBuZ3Xhu5NuIMSRw6MgecOqdSBj4bqndSDigJwlc+KAnSBjaMawYSBz4bq1biBjw7MiCiAKLSM6IGJyYW5jaC5jOjIyMAorIzogYnJhbmNoLmM6MjE5CiBtc2dpZCAiIgogIlxuIgogIklmIHlvdSBhcmUgcGxhbm5pbmcgb24gYmFzaW5nIHlvdXIgd29yayBvbiBhbiB1cHN0cmVhbVxuIgpAQCAtMjMyLDM0ICsyMzgsMzQgQEAKICJcImdpdCBwdXNoIC11XCIgdG8gc2V0IHRoZSB1cHN0cmVhbSBjb25maWcgYXMgeW91IHB1c2guIgogbXNnc3RyICIiCiAiXG4iCi0iTuG6v3UgYuG6oW4gY8OzIMO9IMSR4buLbmggdHLDqm4gY8ahIHPhu58gY8O0bmcgdmnhu4djIGPhu6dhIGLhuqFuIHRyw6puIG5ow6FuaCBkw7JuZyBuZ8aw4bujY1xuIgorIk7hur91IGLhuqFuIGPDsyDDvSDEkeG7i25oIGPhuqNpIHThu5UgY8O0bmcgdmnhu4djIGPhu6dhIGLhuqFuIHRyw6puIG5ow6FuaCB0aMaw4bujbmcgbmd14buTblxuIgogIih1cHN0cmVhbSkgY8OhaSBtw6AgxJHDoyBz4bq1biBjw7MgdHLDqm4gbcOheSBjaOG7pywgYuG6oW4gY+G6p24gY2jhuqF5XG4iCiAibOG7h25oIFwiZ2l0IGZldGNoXCIgxJHhu4MgbOG6pXkgbsOzIHbhu4EuXG4iCiAiXG4iCi0iTuG6v3UgYuG6oW4gY8OzIMO9IMSR4buLbmggcHVzaCBsw6puaCBt4buZdCBuaMOhbmggbuG7mWkgYuG7mSBt4bubaSBjw6FpIG3DoFxuIgorIk7hur91IGLhuqFuIGPDsyDDvSDEkeG7i25oIHB1c2ggbMOqbiBt4buZdCBuaMOhbmggbuG7mWkgYuG7mSBt4bubaSBjw6FpIG3DoFxuIgogInPhur0gdGhlbyBkw7VpIGLhuqNuIMSR4buRaSBjaGnhur91IG3DoXkgY2jhu6cgY+G7p2EgbsOzLCBi4bqhbiBj4bqnbiBkw7luZyBs4buHbmhcbiIKLSJcImdpdCBwdXNoIC11XCIgxJHhu4MgxJHhurd0IGPhuqV1IGjDrG5oIGTDsm5nIG5nxrDhu6NjIGLhuqFuIG114buRbiBwdXNoLiIKKyJcImdpdCBwdXNoIC11XCIgxJHhu4MgxJHhurd0IGPhuqV1IGjDrG5oIHRoxrDhu6NuZyBuZ3Xhu5NuIGLhuqFuIG114buRbiBwdXNoLiIKIAotIzogYnJhbmNoLmM6MjY1CisjOiBicmFuY2guYzoyNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWU6ICclcycuIgogbXNnc3RyICJLaMO0bmcgcGjhuqNpIHTDqm4gxJHhu5FpIHTGsOG7o25nIGjhu6NwIGzhu4c6IOKAnCVz4oCdLiIKIAotIzogYnJhbmNoLmM6Mjg1CisjOiBicmFuY2guYzoyODQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQW1iaWd1b3VzIG9iamVjdCBuYW1lOiAnJXMnLiIKIG1zZ3N0ciAiVMOqbiDEkeG7kWkgdMaw4bujbmcgY2jGsGEgcsO1IHLDoG5nOiDigJwlc+KAnS4iCiAKLSM6IGJyYW5jaC5jOjI5MAorIzogYnJhbmNoLmM6Mjg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhIHZhbGlkIGJyYW5jaCBwb2ludDogJyVzJy4iCiBtc2dzdHIgIk5ow6FuaCBraMO0bmcgaOG7o3AgbOG7hzog4oCcJXPigJ0uIgogCi0jOiBicmFuY2guYzoyOTYKKyM6IGJyYW5jaC5jOjI5NQogbXNnaWQgIkZhaWxlZCB0byBsb2NrIHJlZiBmb3IgdXBkYXRlIgogbXNnc3RyICJH4bq3cCBs4buXaSBraGkga2jDs2EgdGhhbSBjaGnhur91IChyZWYpIMSR4buDIGPhuq1wIG5o4bqtdCIKIAotIzogYnJhbmNoLmM6MzE0CisjOiBicmFuY2guYzozMTMKIG1zZ2lkICJGYWlsZWQgdG8gd3JpdGUgcmVmIgogbXNnc3RyICJH4bq3cCBs4buXaSBraGkgZ2hpIHRoYW0gY2hp4bq/dSAocmVmKSIKIApAQCAtMjczLDcgKzI3OSw3IEBACiBtc2dpZCAidW5yZWNvZ25pemVkIGhlYWRlcjogJXMlcyAoJWQpIgogbXNnc3RyICJwaOG6p24gxJHhuqd1IChoZWFkZXIpIGtow7RuZyDEkcaw4bujYyB0aOG7q2Egbmjhuq1uOiAlcyVzICglZCkiCiAKLSM6IGJ1bmRsZS5jOjg5IGJ1aWx0aW4vY29tbWl0LmM6Njk3CisjOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjcwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgbeG7nyDigJwlc+KAnSIKQEAgLTI4Miw5ICsyODgsOSBAQAogbXNnaWQgIlJlcG9zaXRvcnkgbGFja3MgdGhlc2UgcHJlcmVxdWlzaXRlIGNvbW1pdHM6IgogbXNnc3RyICJLaG8gY2jhu6lhIHRoaeG6v3Ugbmjhu69uZyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGPhuqduIHRyxrDhu5tjIGjhur90IG7DoHk6IgogCi0jOiBidW5kbGUuYzoxNjQgc2VxdWVuY2VyLmM6NjYxIHNlcXVlbmNlci5jOjExMTEgYnVpbHRpbi9sb2cuYzozMzEKLSM6IGJ1aWx0aW4vbG9nLmM6ODAxIGJ1aWx0aW4vbG9nLmM6MTM5OSBidWlsdGluL2xvZy5jOjE2MjUgYnVpbHRpbi9tZXJnZS5jOjM2NAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjE1NgorIzogYnVuZGxlLmM6MTY0IHNlcXVlbmNlci5jOjY2MiBzZXF1ZW5jZXIuYzoxMTEyIGJ1aWx0aW4vbG9nLmM6MzMyCisjOiBidWlsdGluL2xvZy5jOjgyMSBidWlsdGluL2xvZy5jOjE0MTggYnVpbHRpbi9sb2cuYzoxNjQ0IGJ1aWx0aW4vbWVyZ2UuYzozNjQKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxNTgKIG1zZ2lkICJyZXZpc2lvbiB3YWxrIHNldHVwIGZhaWxlZCIKIG1zZ3N0ciAiY8OgaSDEkeG6t3Qgdmnhu4djIGRpIGNodXnhu4NuIHF1YSBjw6FjIMSRaeG7g20geMOpdCBkdXnhu4d0IGfhurdwIGzhu5dpIgogCkBAIC0zMTAsNyArMzE2LDcgQEAKIG1zZ2lkICJyZXYtbGlzdCBkaWVkIgogbXNnc3RyICJyZXYtbGlzdCDEkcOjIGNo4bq/dCIKIAotIzogYnVuZGxlLmM6MzAwIGJ1aWx0aW4vbG9nLmM6MTMxMCBidWlsdGluL3Nob3J0bG9nLmM6MjU5CisjOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMzI5IGJ1aWx0aW4vc2hvcnRsb2cuYzoyNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5yZWNvZ25pemVkIGFyZ3VtZW50OiAlcyIKIG1zZ3N0ciAixJHhu5FpIHPhu5Ega2jDtG5nIMSRxrDhu6NjIHRo4burYSBuaOG6rW46ICVzIgpAQCAtNDYwLDcgKzQ2Niw3IEBACiAiVMOsbSB0aOG6pXkgY8OhYyBs4buXaSB0cm9uZyBiaeG6v24gY+G6pXUgaMOsbmgg4oCcZGlmZi5kaXJzdGF04oCdOlxuIgogIiVzIgogCi0jOiBkaWZmLmM6MzQ4NworIzogZGlmZi5jOjM0OTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkZhaWxlZCB0byBwYXJzZSAtLWRpcnN0YXQvLVggb3B0aW9uIHBhcmFtZXRlcjpcbiIKQEAgLTQ2OSw3ICs0NzUsNyBAQAogIkfhurdwIGzhu5dpIGtoaSBwaMOibiB0w61jaCDEkeG7kWkgc+G7kSB0w7l5IGNo4buNbiAtLWRpcnN0YXQvLVg6XG4iCiAiJXMiCiAKLSM6IGRpZmYuYzozNTAxCisjOiBkaWZmLmM6MzUwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcGFyc2UgLS1zdWJtb2R1bGUgb3B0aW9uIHBhcmFtZXRlcjogJyVzJyIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHBow6JuIHTDrWNoIMSR4buRaSBz4buRIHTDuXkgY2jhu41uIC0tc3VibW9kdWxlOiDigJwlc+KAnSIKQEAgLTQ5NiwxNyArNTAyLDE3IEBACiBtc2dpZCAiZmFpbGVkIHdyaXRpbmcgZGV0YWNoZWQgc2lnbmF0dXJlIHRvICclcyc6ICVzIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgZ2hpIGNo4buvIGvDvSDEkcOtbmgga8OobSB2w6BvIOKAnCVz4oCdOiAlcyIKIAotIzogZ3JlcC5jOjE2MjMKKyM6IGdyZXAuYzoxNjk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcyc6IHVuYWJsZSB0byByZWFkICVzIgogbXNnc3RyICLigJwlc+KAnToga2jDtG5nIHRo4buDIMSR4buNYyAlcyIKIAotIzogZ3JlcC5jOjE2NDAKKyM6IGdyZXAuYzoxNzEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcyc6ICVzIgogbXNnc3RyICLigJwlc+KAnTogJXMiCiAKLSM6IGdyZXAuYzoxNjUxCisjOiBncmVwLmM6MTcyMwogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnOiBzaG9ydCByZWFkICVzIgogbXNnc3RyICLigJwlc+KAnTogxJHhu41jIG5n4bqvbiAlcyIKQEAgLTU3NywxMCArNTgzLDEwIEBACiAKICM6IG1lcmdlLmM6NTYKIG1zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aGUgY2FjaGUiCi1tc2dzdHIgImfhurdwIGzhu5dpIGtoaSDEkeG7jWMgYuG7mSBuaOG7myB04bqhbSIKK21zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIMSR4buNYyBi4buZIG5o4bubIMSR4buHbSIKIAotIzogbWVyZ2UuYzoxMTAgYnVpbHRpbi9jaGVja291dC5jOjM2NSBidWlsdGluL2NoZWNrb3V0LmM6NTY2Ci0jOiBidWlsdGluL2Nsb25lLmM6NjU2CisjOiBtZXJnZS5jOjExMCBidWlsdGluL2NoZWNrb3V0LmM6MzU4IGJ1aWx0aW4vY2hlY2tvdXQuYzo1NTkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NTUKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBnaGkgdOG6rXAgdGluIGzGsHUgYuG6o25nIG3hu6VjIGzhu6VjIG3hu5tpIgogCkBAIC02MjksNyArNjM1LDcgQEAKIG1zZ2lkICJibG9iIGV4cGVjdGVkIGZvciAlcyAnJXMnIgogbXNnc3RyICLEkeG7kWkgdMaw4bujbmcgYmxvYiDEkcaw4bujYyBtb25nIMSR4bujaSBjaG8gJXMg4oCcJXPigJ0iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc3NCBidWlsdGluL2Nsb25lLmM6MzEyCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NzQgYnVpbHRpbi9jbG9uZS5jOjMxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gb3BlbiAnJXMnIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgbeG7nyDigJwlc+KAnSIKQEAgLTYzNyw3ICs2NDMsNyBAQAogIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzgyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzeW1saW5rICclcyciCi1tc2dzdHIgImfhurdwIGzhu5dpIGtoaSB04bqhbyBsacOqbiBr4bq/dCB0xrDhu6NuZyB0csawbmcgKHN5bWxpbmspIOKAnCVz4oCdIgorbXNnc3RyICJn4bq3cCBs4buXaSBraGkgdOG6oW8gbGnDqm4ga+G6v3QgbeG7gW0gKHN5bWxpbmspIOKAnCVz4oCdIgogCiAjOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODUKICMsIGMtZm9ybWF0CkBAIC03NjQsNyArNzcwLDcgQEAKIG1zZ2lkICJBdXRvLW1lcmdpbmcgJXMiCiBtc2dzdHIgIlThu7EtxJHhu5luZy1ow7JhLXRy4buZbiAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNCBnaXQtc3VibW9kdWxlLnNoOjExMTgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzQgZ2l0LXN1Ym1vZHVsZS5zaDoxMTI1CiBtc2dpZCAic3VibW9kdWxlIgogbXNnc3RyICJtw7QtxJF1bi1jb24iCiAKQEAgLTg2Myw1OCArODY5LDEyNSBAQAogbXNnaWQgIkJhZCAlcyB2YWx1ZTogJyVzJyIKIG1zZ3N0ciAiR2nDoSB0cuG7iyAlcyBzYWk6IOKAnCVz4oCdIgogCi0jOiBvYmplY3QuYzoyMDQKKyM6IG9iamVjdC5jOjIwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcGFyc2Ugb2JqZWN0OiAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHBow6JuIHTDrWNoIMSR4buRaSB0xrDhu6NuZzog4oCcJXPigJ0iCiAKLSM6IHBhcnNlLW9wdGlvbnMuYzo0ODkKKyM6IHBhcnNlLW9wdGlvbnMuYzo1MzcKIG1zZ2lkICIuLi4iCiBtc2dzdHIgIi4uLiIKIAotIzogcGFyc2Utb3B0aW9ucy5jOjUwNworIzogcGFyc2Utb3B0aW9ucy5jOjU1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2FnZTogJXMiCiBtc2dzdHIgImPDoWNoIGTDuW5nOiAlcyIKIAogIy4gVFJBTlNMQVRPUlM6IHRoZSBjb2xvbiBoZXJlIHNob3VsZCBhbGlnbiB3aXRoIHRoZQogIy4gb25lIGluICJ1c2FnZTogJXMiIHRyYW5zbGF0aW9uCi0jOiBwYXJzZS1vcHRpb25zLmM6NTExCisjOiBwYXJzZS1vcHRpb25zLmM6NTU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgIG9yOiAlcyIKIG1zZ3N0ciAiICAgICBob+G6t2M6ICVzIgogCi0jOiBwYXJzZS1vcHRpb25zLmM6NTE0CisjOiBwYXJzZS1vcHRpb25zLmM6NTYyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICAlcyIKIG1zZ3N0ciAiICAgICVzIgogCi0jOiBwYXJzZS1vcHRpb25zLmM6NTQ4CisjOiBwYXJzZS1vcHRpb25zLmM6NTk2CiBtc2dpZCAiLU5VTSIKIG1zZ3N0ciAiLVPhu5AiCiAKLSM6IHBhdGhzcGVjLmM6ODMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiUGF0aCAnJXMnIGlzIGluIHN1Ym1vZHVsZSAnJS4qcyciCi1tc2dzdHIgIsSQxrDhu51uZyBk4bqrbiDigJwlc+KAnSB0aMOsIOG7nyB0cm9uZyBtw7QtxJF1bi1jb24g4oCcJS4qc+KAnSIKKyM6IHBhdGhzcGVjLmM6MTE4Cittc2dpZCAiZ2xvYmFsICdnbG9iJyBhbmQgJ25vZ2xvYicgcGF0aHNwZWMgc2V0dGluZ3MgYXJlIGluY29tcGF0aWJsZSIKK21zZ3N0ciAiIgorImPDoWMgY8OgaSDEkeG6t3QgxJHhurdjIHThuqMgxJHGsOG7nW5nIGThuqtuIOKAnGdsb2LigJ0gdsOgIOKAnG5vZ2xvYuKAnSB0b8OgbiBj4bulYyBsw6AgeHVuZyBraOG6r2MgbmhhdSIKIAotIzogcGF0aHNwZWMuYzo5OQotIywgYy1mb3JtYXQKLW1zZ2lkICInJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCi1tc2dzdHIgIuKAnCVz4oCdIG7hurFtIG5nb8OgaSBt4buZdCBsacOqbiBr4bq/dCB0xrDhu6NuZyB0csawbmciCisjOiBwYXRoc3BlYy5jOjEyOAorbXNnaWQgIiIKKyJnbG9iYWwgJ2xpdGVyYWwnIHBhdGhzcGVjIHNldHRpbmcgaXMgaW5jb21wYXRpYmxlIHdpdGggYWxsIG90aGVyIGdsb2JhbCAiCisicGF0aHNwZWMgc2V0dGluZ3MiCittc2dzdHIgIiIKKyJjw6BpIMSR4bq3dCDEkeG6t2MgdOG6oyDEkcaw4budbmcgZOG6q24g4oCcbGl0ZXJhbOKAnSB0b8OgbiBj4bulYyBsw6AgeHVuZyBraOG6r2MgduG7m2kgY8OhYyBjw6BpIMSR4bq3dCDEkeG6t2MgIgorInThuqMgxJHGsOG7nW5nIGThuqtuIHRvw6BuIGPhu6VjIGtow6FjIgogCi0jOiByZW1vdGUuYzoxNzg4CisjOiBwYXRoc3BlYy5jOjE1OAorbXNnaWQgImludmFsaWQgcGFyYW1ldGVyIGZvciBwYXRoc3BlYyBtYWdpYyAncHJlZml4JyIKK21zZ3N0ciAidGhhbSBz4buRIGtow7RuZyBo4bujcCBs4buHIGNobyDigJx0aeG7gW4gdOG7keKAnSBtw6B1IG5oaeG7h20gxJHhurdjIHThuqMgxJHGsOG7nW5nIMSR4bqrbiIKKworIzogcGF0aHNwZWMuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBwYXRoc3BlYyBtYWdpYyAnJS4qcycgaW4gJyVzJyIKK21zZ3N0ciAiU+G7kSBtw6B1IG5oaeG7h20gxJHhurdjIHThuqMgxJHGsOG7nW5nIGThuqtuIGtow7RuZyBo4bujcCBs4buHIOKAnCUuKnPigJ0gdHJvbmcg4oCcJXPigJ0iCisKKyM6IHBhdGhzcGVjLmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIk1pc3NpbmcgJyknIGF0IHRoZSBlbmQgb2YgcGF0aHNwZWMgbWFnaWMgaW4gJyVzJyIKK21zZ3N0ciAiVGhp4bq/dSDigJwp4oCdIHThuqFpIGN14buRaSBj4bunYSBz4buRIG3DoHUgbmhp4buHbSDEkeG6t2MgdOG6oyDEkcaw4budbmcgZOG6q24gdHJvbmcg4oCcJXPigJ0iCisKKyM6IHBhdGhzcGVjLmM6MTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuaW1wbGVtZW50ZWQgcGF0aHNwZWMgbWFnaWMgJyVjJyBpbiAnJXMnIgorbXNnc3RyICJDaMawYSB2aeG6v3QgbcOjIGNobyBz4buRIG3DoHUgbmhp4buHbSDEkeG6t2MgdOG6oyDEkcaw4budbmcgZOG6q24g4oCcJWPigJ0gdHJvbmcg4oCcJXPigJ0iCisKKyM6IHBhdGhzcGVjLmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnbGl0ZXJhbCcgYW5kICdnbG9iJyBhcmUgaW5jb21wYXRpYmxlIgorbXNnc3RyICIlczog4oCcbGl0ZXJhbOKAnSB2w6Ag4oCcZ2xvYuKAnSB4dW5nIGto4bqvYyBuaGF1IgorCisjOiBwYXRoc3BlYy5jOjIyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJyVzJyBpcyBvdXRzaWRlIHJlcG9zaXRvcnkiCittc2dzdHIgIiVzOiDigJwlc+KAnSBuZ2/DoGkgbeG7mXQga2hvIGNo4bupYSIKKworIzogcGF0aHNwZWMuYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGF0aHNwZWMgJyVzJyBpcyBpbiBzdWJtb2R1bGUgJyUuKnMnIgorbXNnc3RyICLEkOG6t2MgdOG6oyDEkcaw4budbmcgZOG6q24g4oCcJXPigJ0gdGjDrCDhu58gdHJvbmcgbcO0LcSRdW4tY29uIOKAnCUuKnPigJ0iCisKKyMuCisjLiAqIFdlIG1heSB3YW50IHRvIHN1YnN0aXR1dGUgInRoaXMgY29tbWFuZCIgd2l0aCBhIGNvbW1hbmQKKyMuICogbmFtZS4gRS5nLiB3aGVuIGFkZC0taW50ZXJhY3RpdmUgZGllcyB3aGVuIHJ1bm5pbmcKKyMuICogImNoZWNrb3V0IC1wIgorIy4KKyM6IHBhdGhzcGVjLmM6MzQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBwYXRoc3BlYyBtYWdpYyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgY29tbWFuZDogJXMiCittc2dzdHIgIiVzOiBz4buRIG3huqd1IG5oaeG7h20gxJHhurdjIHThuqMgxJHGsOG7nW5nIGThuqtuIGNoxrBhIMSRxrDhu6NjIGjhu5cgdHLhu6MgYuG7n2kgbOG7h25oIG7DoHk6ICVzIgorCisjOiBwYXRoc3BlYy5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoc3BlYyAnJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCittc2dzdHIgIsSR4bq3YyB04bqjIMSRxrDhu51uZyBk4bqrbiDigJwlc+KAnSB2xrDhu6N0IHJhIG5nb8OgaSBsacOqbiBr4bq/dCBt4buBbSIKKworIzogcmVtb3RlLmM6MTgzMworIywgYy1mb3JtYXQKK21zZ2lkICJZb3VyIGJyYW5jaCBpcyBiYXNlZCBvbiAnJXMnLCBidXQgdGhlIHVwc3RyZWFtIGlzIGdvbmUuXG4iCittc2dzdHIgIiIKKyJOaMOhbmggY+G7p2EgYuG6oW4gZOG7sWEgdHLDqm4gY8ahIHPhu58gbMOgIOKAnCVz4oCdLCBuaMawbmcgdHLDqm4gdGjGsOG7o25nIG5ndeG7k24ga2jDtG5nIGPDsm4uXG4iCisKKyM6IHJlbW90ZS5jOjE4MzcKK21zZ2lkICIgICh1c2UgXCJnaXQgYnJhbmNoIC0tdW5zZXQtdXBzdHJlYW1cIiB0byBmaXh1cClcbiIKK21zZ3N0ciAiICAgKGTDuW5nIFwiIGdpdCBicmFuY2ggLS11bnNldC11cHN0cmVhbVwiIMSR4buDIHPhu61hKVxuIgorCisjOiByZW1vdGUuYzoxODQwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdXIgYnJhbmNoIGlzIHVwLXRvLWRhdGUgd2l0aCAnJXMnLlxuIgorbXNnc3RyICJOaMOhbmggY+G7p2EgYuG6oW4gxJHDoyBj4bqtcCBuaOG6rXQgduG7m2kg4oCcJXPigJ0uXG4iCisKKyM6IHJlbW90ZS5jOjE4NDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91ciBicmFuY2ggaXMgYWhlYWQgb2YgJyVzJyBieSAlZCBjb21taXQuXG4iCiBtc2dpZF9wbHVyYWwgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0cy5cbiIKIG1zZ3N0clswXSAiTmjDoW5oIGPhu6dhIGLhuqFuIGzDoCDEkeG6p3UgY+G7p2Eg4oCcJXPigJ0gYuG7n2kgJWQgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KS5cbiIKIG1zZ3N0clsxXSAiTmjDoW5oIGPhu6dhIGLhuqFuIGzDoCDEkeG6p3UgY+G7p2Eg4oCcJXPigJ0gYuG7n2kgJWQgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KS5cbiIKIAotIzogcmVtb3RlLmM6MTc5NAorIzogcmVtb3RlLmM6MTg1MAogbXNnaWQgIiAgKHVzZSBcImdpdCBwdXNoXCIgdG8gcHVibGlzaCB5b3VyIGxvY2FsIGNvbW1pdHMpXG4iCiBtc2dzdHIgIiAgKGTDuW5nIFwiZ2l0IHB1c2hcIiDEkeG7gyB4deG6pXQgYuG6o24gY8OhYyBs4bqnbiBjaHV54buDbiBnaWFvIG7hu5lpIGLhu5kgY+G7p2EgYuG6oW4pXG4iCiAKLSM6IHJlbW90ZS5jOjE3OTcKKyM6IHJlbW90ZS5jOjE4NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91ciBicmFuY2ggaXMgYmVoaW5kICclcycgYnkgJWQgY29tbWl0LCBhbmQgY2FuIGJlIGZhc3QtZm9yd2FyZGVkLlxuIgogbXNnaWRfcGx1cmFsICIiCkBAIC05MjYsMTEgKzk5OSwxMSBAQAogIk5ow6FuaCBj4bunYSBi4bqhbiB0aMOsIOG7nyDEkeG6sW5nIHNhdSDigJwlc+KAnSBi4bufaSAlZCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpLCB2w6AgY8OzIHRo4buDICIKICLEkcaw4bujYyBmYXN0LWZvcndhcmQuXG4iCiAKLSM6IHJlbW90ZS5jOjE4MDUKKyM6IHJlbW90ZS5jOjE4NjEKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIHVwZGF0ZSB5b3VyIGxvY2FsIGJyYW5jaClcbiIKIG1zZ3N0ciAiICAoZMO5bmcgXCJnaXQgcHVsbFwiIMSR4buDIGPhuq1wIG5o4bqtdCBuaMOhbmggbuG7mWkgYuG7mSBj4bunYSBi4bqhbilcbiIKIAotIzogcmVtb3RlLmM6MTgwOAorIzogcmVtb3RlLmM6MTg2NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91ciBicmFuY2ggYW5kICclcycgaGF2ZSBkaXZlcmdlZCxcbiIKQEAgLTk0Niw3ICsxMDE5LDcgQEAKICJZb3VyIGJyYW5jaCBhbmQg4oCcJXPigJ0gaGF2ZSBkaXZlcmdlZCxcbiIKICJhbmQgaGF2ZSAlZCBhbmQgJWQgZGlmZmVyZW50IGNvbW1pdCBlYWNoLCByZXNwZWN0aXZlbHkuXG4iCiAKLSM6IHJlbW90ZS5jOjE4MTgKKyM6IHJlbW90ZS5jOjE4NzQKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIG1lcmdlIHRoZSByZW1vdGUgYnJhbmNoIGludG8geW91cnMpXG4iCiBtc2dzdHIgIiIKICIgIChkw7luZyBcImdpdCBwdWxsXCIgxJHhu4MgaMOyYSB0cuG7mW4gbmjDoW5oIHRyw6puIG3DoXkgY2jhu6cgdsOgbyB0cm9uZyBuaMOhbmggY+G7p2EgIgpAQCAtOTkxLDcgKzEwNjQsNyBAQAogInbhu5tpIGzhu4duaCDigJxnaXQgYWRkIDzEkcaw4budbmdfZOG6q24+4oCdIGhv4bq3YyDigJxnaXQgcm0gPMSRxrDhu51uZ19k4bqrbj7igJ1cbiIKICJ2w6AgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBr4bq/dCBxdeG6oyBi4bqxbmcgbOG7h25oIOKAnGdpdCBjb21taXTigJ0iCiAKLSM6IHNlcXVlbmNlci5jOjI0NSBzZXF1ZW5jZXIuYzo4Njkgc2VxdWVuY2VyLmM6OTUyCisjOiBzZXF1ZW5jZXIuYzoyNDUgc2VxdWVuY2VyLmM6ODcwIHNlcXVlbmNlci5jOjk1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgdG8gJXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgdsOgbyAlcyIKQEAgLTEwMTQsNDYgKzEwODcsNDYgQEAKIG1zZ3N0ciAiQ2h1eeG7g24gZ2lhbyAoY29tbWl0KSBjw6FjIHRoYXkgxJHhu5VpIGPhu6dhIGLhuqFuIGhheSBzdGFzaCBjaMO6bmcgxJHhu4MgeOG7rSBsw70uIgogCiAjLiBUUkFOU0xBVE9SUzogJXMgd2lsbCBiZSAicmV2ZXJ0IiBvciAiY2hlcnJ5LXBpY2siCi0jOiBzZXF1ZW5jZXIuYzozMjQKKyM6IHNlcXVlbmNlci5jOjMyNQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICIlczogS2jDtG5nIHRo4buDIGdoaSB04bqtcCB0aW4gbMawdSBi4bqjbmcgbeG7pWMgbOG7pWMgbeG7m2kiCiAKLSM6IHNlcXVlbmNlci5jOjM1NQorIzogc2VxdWVuY2VyLmM6MzU2CiBtc2dpZCAiQ291bGQgbm90IHJlc29sdmUgSEVBRCBjb21taXRcbiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHBow6JuIGdp4bqjaSBjb21taXQgKGzhuqduIGNodXnhu4NuIGdpYW8pIEhFQURcbiIKIAotIzogc2VxdWVuY2VyLmM6Mzc3CisjOiBzZXF1ZW5jZXIuYzozNzgKIG1zZ2lkICJVbmFibGUgdG8gdXBkYXRlIGNhY2hlIHRyZWVcbiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGPhuq1wIG5o4bqtdCBjw6J5IGLhu5kgbmjhu5sgxJHhu4dtXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQyMgorIzogc2VxdWVuY2VyLmM6NDIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBjb21taXQgJXNcbiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHBow6JuIHTDrWNoIGNvbW1pdCAobOG6p24gY2h1eeG7g24gZ2lhbykgJXNcbiIKIAotIzogc2VxdWVuY2VyLmM6NDI3CisjOiBzZXF1ZW5jZXIuYzo0MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIHBhcmVudCBjb21taXQgJXNcbiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHBow6JuIHTDrWNoIGNvbW1pdCAobOG6p24gY2h1eeG7g24gZ2lhbykgY2hhIG3hurkgJXNcbiIKIAotIzogc2VxdWVuY2VyLmM6NDkzCisjOiBzZXF1ZW5jZXIuYzo0OTQKIG1zZ2lkICJZb3VyIGluZGV4IGZpbGUgaXMgdW5tZXJnZWQuIgogbXNnc3RyICJU4bqtcCB0aW4gbMawdSBt4bulYyBs4bulYyBj4bunYSBi4bqhbiBraMO0bmcgxJHGsOG7o2MgaMOyYSB0cuG7mW4uIgogCi0jOiBzZXF1ZW5jZXIuYzo1MTIKKyM6IHNlcXVlbmNlci5jOjUxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaXMgYSBtZXJnZSBidXQgbm8gLW0gb3B0aW9uIHdhcyBnaXZlbi4iCiBtc2dzdHIgIiIKICJM4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICVzIGzDoCBt4buZdCBs4bqnbiBow7JhIHRy4buZbiBuaMawbmcga2jDtG5nIMSRxrBhIHJhIHTDuXkgY2jhu41uIC0iCiAibS4iCiAKLSM6IHNlcXVlbmNlci5jOjUyMAorIzogc2VxdWVuY2VyLmM6NTIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBkb2VzIG5vdCBoYXZlIHBhcmVudCAlZCIKIG1zZ3N0ciAiTOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSAlcyBraMO0bmcgY8OzIGNoYSBt4bq5ICVkIgogCi0jOiBzZXF1ZW5jZXIuYzo1MjQKKyM6IHNlcXVlbmNlci5jOjUyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWlubGluZSB3YXMgc3BlY2lmaWVkIGJ1dCBjb21taXQgJXMgaXMgbm90IGEgbWVyZ2UuIgogbXNnc3RyICIiCkBAIC0xMDYyLDE1MyArMTEzNSwxNTMgQEAKIAogIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyB3aWxsIGJlICJyZXZlcnQiIG9yCiAjLiAiY2hlcnJ5LXBpY2siLCB0aGUgc2Vjb25kICVzIGEgU0hBMQotIzogc2VxdWVuY2VyLmM6NTM3CisjOiBzZXF1ZW5jZXIuYzo1MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbm5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzIgogbXNnc3RyICIlczoga2jDtG5nIHRo4buDIHBow6JuIHTDrWNoIGzhuqduIGNodXnhu4NuIGdpYW8gbeG6uSBj4bunYSAlcyIKIAotIzogc2VxdWVuY2VyLmM6NTQxCisjOiBzZXF1ZW5jZXIuYzo1NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGdldCBjb21taXQgbWVzc2FnZSBmb3IgJXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBs4bqleSB0aMO0bmcgxJFp4buHcCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGNobyAlcyIKIAotIzogc2VxdWVuY2VyLmM6NjI3CisjOiBzZXF1ZW5jZXIuYzo2MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJldmVydCAlcy4uLiAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHJldmVydCAlcy4uLiAlcyIKIAotIzogc2VxdWVuY2VyLmM6NjI4CisjOiBzZXF1ZW5jZXIuYzo2MjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGFwcGx5ICVzLi4uICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgYXBwbHkgKMOhcCBk4bulbmcgbWnhur9uZyB2w6EpICVzLi4uICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo2NjQKKyM6IHNlcXVlbmNlci5jOjY2NQogbXNnaWQgImVtcHR5IGNvbW1pdCBzZXQgcGFzc2VkIgogbXNnc3RyICJs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIHRy4buRbmcgcuG7l25nIMSR4bq3dCBsw6AgaOG7o3AgcXV5IGPDoWNoIgogCi0jOiBzZXF1ZW5jZXIuYzo2NzIKKyM6IHNlcXVlbmNlci5jOjY3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWFkIHRoZSBpbmRleCIKIG1zZ3N0ciAiZ2l0ICVzOiBn4bq3cCBs4buXaSDEkeG7jWMgYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBzZXF1ZW5jZXIuYzo2NzcKKyM6IHNlcXVlbmNlci5jOjY3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWZyZXNoIHRoZSBpbmRleCIKIG1zZ3N0ciAiZ2l0ICVzOiBn4bq3cCBs4buXaSBraGkgbMOgbSB0xrDGoWkgbeG7m2kgYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBzZXF1ZW5jZXIuYzo3MzUKKyM6IHNlcXVlbmNlci5jOjczNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgJXMgZHVyaW5nIGEgJXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyAlcyB0cm9uZyBraGkgJXMiCiAKLSM6IHNlcXVlbmNlci5jOjc1NworIzogc2VxdWVuY2VyLmM6NzU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBsaW5lICVkLiIKIG1zZ3N0ciAiS2jDtG5nIHBow6JuIHTDrWNoIMSRxrDhu6NjIGTDsm5nICVkLiIKIAotIzogc2VxdWVuY2VyLmM6NzYyCisjOiBzZXF1ZW5jZXIuYzo3NjMKIG1zZ2lkICJObyBjb21taXRzIHBhcnNlZC4iCiBtc2dzdHIgIktow7RuZyBjw7MgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBuw6BvIMSRxrDhu6NjIHBow6JuIHTDrWNoLiIKIAotIzogc2VxdWVuY2VyLmM6Nzc1CisjOiBzZXF1ZW5jZXIuYzo3NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBt4bufICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo3NzkKKyM6IHNlcXVlbmNlci5jOjc4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCAlcy4iCiBtc2dzdHIgIktow7RuZyB0aOG7gyDEkeG7jWMgJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzo3ODYKKyM6IHNlcXVlbmNlci5jOjc4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnVzYWJsZSBpbnN0cnVjdGlvbiBzaGVldDogJXMiCiBtc2dzdHIgIkLhuqNuZyBjaOG7iSB0aOG7iyBraMO0bmcgdGjhu4MgZMO5bmcgxJHGsOG7o2M6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MTQKKyM6IHNlcXVlbmNlci5jOjgxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGtleTogJXMiCiBtc2dzdHIgIktow7NhIGtow7RuZyDEkcO6bmc6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MTcKKyM6IHNlcXVlbmNlci5jOjgxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciAlczogJXMiCiBtc2dzdHIgIkdpw6EgdHLhu4sga2jDtG5nIGjhu6NwIGzhu4cgJXM6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MjkKKyM6IHNlcXVlbmNlci5jOjgzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgb3B0aW9ucyBzaGVldDogJXMiCiBtc2dzdHIgIkLhuqNuZyB0w7l5IGNo4buNbiBk4buLIGjDrG5oOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODUwCisjOiBzZXF1ZW5jZXIuYzo4NTEKIG1zZ2lkICJhIGNoZXJyeS1waWNrIG9yIHJldmVydCBpcyBhbHJlYWR5IGluIHByb2dyZXNzIgogbXNnc3RyICJt4buZdCB0aGFvIHTDoWMgY2hlcnJ5LXBpY2sgaG/hurdjIHJldmVydCDEkWFuZyDEkcaw4bujYyB0aOG7sWMgaGnhu4duIgogCi0jOiBzZXF1ZW5jZXIuYzo4NTEKKyM6IHNlcXVlbmNlci5jOjg1MgogbXNnaWQgInRyeSBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZSB8IC0tcXVpdCB8IC0tYWJvcnQpXCIiCiBtc2dzdHIgImjDo3kgdGjhu60gXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogCi0jOiBzZXF1ZW5jZXIuYzo4NTUKKyM6IHNlcXVlbmNlci5jOjg1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIHNlcXVlbmNlciBkaXJlY3RvcnkgJXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyB04bqhbyB0aMawIG3hu6VjIHjhur9wIGTDo3kgJXMiCiAKLSM6IHNlcXVlbmNlci5jOjg3MSBzZXF1ZW5jZXIuYzo5NTYKKyM6IHNlcXVlbmNlci5jOjg3MiBzZXF1ZW5jZXIuYzo5NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRXJyb3Igd3JhcHBpbmcgdXAgJXMuIgogbXNnc3RyICJM4buXaSBiYW8gYuG7jWMgJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzo4OTAgc2VxdWVuY2VyLmM6MTAyNAorIzogc2VxdWVuY2VyLmM6ODkxIHNlcXVlbmNlci5jOjEwMjUKIG1zZ2lkICJubyBjaGVycnktcGljayBvciByZXZlcnQgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgImtow7RuZyBjaGVycnktcGljayBoYXkgcmV2ZXJ0IHRyb25nIHRp4bq/biB0csOsbmgiCiAKLSM6IHNlcXVlbmNlci5jOjg5MgorIzogc2VxdWVuY2VyLmM6ODkzCiBtc2dpZCAiY2Fubm90IHJlc29sdmUgSEVBRCIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHBow6JuIGdp4bqjaSBIRUFEIgogCi0jOiBzZXF1ZW5jZXIuYzo4OTQKKyM6IHNlcXVlbmNlci5jOjg5NQogbXNnaWQgImNhbm5vdCBhYm9ydCBmcm9tIGEgYnJhbmNoIHlldCB0byBiZSBib3JuIgogbXNnc3RyICJraMO0bmcgdGjhu4MgaOG7p3kgYuG7jyB04burIG3hu5l0IG5ow6FuaCBtw6AgbsOzIGPDsm4gY2jGsGEgxJHGsOG7o2MgdOG6oW8gcmEiCiAKLSM6IHNlcXVlbmNlci5jOjkxNiBidWlsdGluL2FwcGx5LmM6NDA2MQorIzogc2VxdWVuY2VyLmM6OTE3IGJ1aWx0aW4vYXBwbHkuYzo0MDYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIG3hu58gJXM6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo5MTkKKyM6IHNlcXVlbmNlci5jOjkyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAlczogJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgJXM6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo5MjAKKyM6IHNlcXVlbmNlci5jOjkyMQogbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUiCiBtc2dzdHIgImvhur90IHRow7pjIHThuq1wIHRpbiDEkeG7mXQgeHXhuqV0IgogCi0jOiBzZXF1ZW5jZXIuYzo5MjYKKyM6IHNlcXVlbmNlci5jOjkyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJzdG9yZWQgcHJlLWNoZXJyeS1waWNrIEhFQUQgZmlsZSAnJXMnIGlzIGNvcnJ1cHQiCiBtc2dzdHIgInThuq1wIHRpbiBIRUFEIOKAnHByZS1jaGVycnktcGlja+KAnSDEkcOjIGzGsHUg4oCcJXPigJ0gYuG7iyBo4buPbmciCiAKLSM6IHNlcXVlbmNlci5jOjk0OQorIzogc2VxdWVuY2VyLmM6OTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmb3JtYXQgJXMuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhu4tuaCBk4bqhbmcgJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzoxMDkyCisjOiBzZXF1ZW5jZXIuYzoxMDkzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBjYW4ndCBjaGVycnktcGljayBhICVzIgogbXNnc3RyICIlczoga2jDtG5nIHRo4buDIGNoZXJyeS1waWNrIG3hu5l0ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzoxMDk1CisjOiBzZXF1ZW5jZXIuYzoxMDk2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBiYWQgcmV2aXNpb24iCiBtc2dzdHIgIiVzOiDEkWnhu4NtIHjDqXQgZHV54buHdCBzYWkiCiAKLSM6IHNlcXVlbmNlci5jOjExMjkKKyM6IHNlcXVlbmNlci5jOjExMzAKIG1zZ2lkICJDYW4ndCByZXZlcnQgYXMgaW5pdGlhbCBjb21taXQiCiBtc2dzdHIgIktow7RuZyB0aOG7gyByZXZlcnQgbeG7mXQgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBraOG7n2kgdOG6oW8iCiAKLSM6IHNlcXVlbmNlci5jOjExMzAKKyM6IHNlcXVlbmNlci5jOjExMzEKIG1zZ2lkICJDYW4ndCBjaGVycnktcGljayBpbnRvIGVtcHR5IGhlYWQiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBjaGVycnktcGljayB2w6BvIG3hu5l0IMSR4bqndSAoaGVhZCkgdHLhu5FuZyBy4buXbmciCiAKQEAgLTEyMzYsMjY1ICsxMzA5LDM1OSBAQAogIm7DoHlcbiIKICJi4bqxbmcgY8OhY2ggY2jhuqF5IGzhu4duaCBcImdpdCBjb25maWcgYWR2aWNlLm9iamVjdE5hbWVXYXJuaW5nIGZhbHNlXCIiCiAKLSM6IHNoYTFfbmFtZS5jOjEwOTcKKyM6IHNoYTFfbmFtZS5jOjExMTIKIG1zZ2lkICJIRUFEIGRvZXMgbm90IHBvaW50IHRvIGEgYnJhbmNoIgogbXNnc3RyICJIRUFEIGtow7RuZyBjaOG7iSDEkeG6v24gbeG7mXQgbmjDoW5oIG7DoG8gY+G6oyIKIAotIzogc2hhMV9uYW1lLmM6MTEwMAorIzogc2hhMV9uYW1lLmM6MTExNQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIGJyYW5jaDogJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIGPDsyBuaMOhbmggbsOgbyBuaMawIHRo4bq/OiDigJwlc+KAnSIKIAotIzogc2hhMV9uYW1lLmM6MTEwMgorIzogc2hhMV9uYW1lLmM6MTExNwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyB1cHN0cmVhbSBjb25maWd1cmVkIGZvciBicmFuY2ggJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIGPDsyB0aMaw4bujbmcgbmd14buTbiAodXBzdHJlYW0pIMSRxrDhu6NjIGPhuqV1IGjDrG5oIGNobyBuaMOhbmgg4oCcJXPigJ0iCiAKLSM6IHNoYTFfbmFtZS5jOjExMDYKKyM6IHNoYTFfbmFtZS5jOjExMjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBzdHJlYW0gYnJhbmNoICclcycgbm90IHN0b3JlZCBhcyBhIHJlbW90ZS10cmFja2luZyBicmFuY2giCiBtc2dzdHIgIiIKICJOaMOhbmggdGjGsOG7o25nIG5ndeG7k24gKHVwc3RyZWFtKSDigJwlc+KAnSBraMO0bmcgxJHGsOG7o2MgbMawdSBs4bqhaSBuaMawIGzDoCBt4buZdCBuaMOhbmggIgogIuKAnHJlbW90ZS10cmFja2luZ+KAnSIKIAotIzogd3JhcHBlci5jOjQwOAorIzogc3VibW9kdWxlLmM6NjQgc3VibW9kdWxlLmM6OTgKK21zZ2lkICJDYW5ub3QgY2hhbmdlIHVubWVyZ2VkIC5naXRtb2R1bGVzLCByZXNvbHZlIG1lcmdlIGNvbmZsaWN0cyBmaXJzdCIKK21zZ3N0ciAiIgorIktow7RuZyB0aOG7gyB0aGF5IMSR4buVaSAuZ2l0bW9kdWxlcyBjaMawYSBow7JhIHRy4buZbiwgaMOjeSBnaeG6o2kgcXV54bq/dCB4dW5nIMSR4buZdCB0cuG7mW4gIgorInRyxrDhu5tjIgorCisjOiBzdWJtb2R1bGUuYzo2OCBzdWJtb2R1bGUuYzoxMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgc2VjdGlvbiBpbiAuZ2l0bW9kdWxlcyB3aGVyZSBwYXRoPSVzIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgdMOsbSB0aOG6pXkgcGjhuqduIHRyb25nIC5naXRtb2R1bGVzIG7GoWkgbcOgIMSRxrDhu51uZ19k4bqrbj0lcyIKKworIy4gTWF5YmUgdGhlIHVzZXIgYWxyZWFkeSBkaWQgdGhhdCwgZG9uJ3QgZXJyb3Igb3V0IGhlcmUKKyM6IHN1Ym1vZHVsZS5jOjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCB1cGRhdGUgLmdpdG1vZHVsZXMgZW50cnkgJXMiCittc2dzdHIgIktow7RuZyB0aOG7gyBj4bqtcCBuaOG6rXQgbeG7pWMgLmdpdG1vZHVsZXMgJXMiCisKKyMuIE1heWJlIHRoZSB1c2VyIGFscmVhZHkgZGlkIHRoYXQsIGRvbid0IGVycm9yIG91dCBoZXJlCisjOiBzdWJtb2R1bGUuYzoxMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHJlbW92ZSAuZ2l0bW9kdWxlcyBlbnRyeSBmb3IgJXMiCittc2dzdHIgIktow7RuZyB0aOG7gyBn4buhIGLhu48gbeG7pWMgLmdpdG1vZHVsZXMgZMOgbmggY2hvICVzIgorCisjOiBzdWJtb2R1bGUuYzoxMjcKK21zZ2lkICJjb3VsZCBub3QgZmluZCAuZ2l0bW9kdWxlcyBpbiBpbmRleCIKK21zZ3N0ciAia2jDtG5nIHTDrG0gdGjhuqV5IC5naXRtb2R1bGVzIHRyb25nIGLhuqNuZyBt4bulYyBs4bulYyIKKworIzogc3VibW9kdWxlLmM6MTMzCittc2dpZCAicmVhZGluZyB1cGRhdGVkIC5naXRtb2R1bGVzIGZhaWxlZCIKK21zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIMSR4buNYyBj4bqtcCBuaOG6rXQgLmdpdG1vZHVsZXMiCisKKyM6IHN1Ym1vZHVsZS5jOjEzNQorbXNnaWQgInVuYWJsZSB0byBzdGF0IHVwZGF0ZWQgLmdpdG1vZHVsZXMiCittc2dzdHIgImtow7RuZyB0aOG7gyBs4bqleSB0aOG7kW5nIGvDqiAuZ2l0bW9kdWxlcyDEkcOjIGPhuq1wIG5o4bqtdCIKKworIzogc3VibW9kdWxlLmM6MTM5Cittc2dpZCAidW5hYmxlIHRvIHJlbW92ZSAuZ2l0bW9kdWxlcyBmcm9tIGluZGV4IgorbXNnc3RyICJraMO0bmcgdGjhu4MgZ+G7oSBi4buPIC5naXRtb2R1bGVzIHThu6sgbeG7pWMgbOG7pWMiCisKKyM6IHN1Ym1vZHVsZS5jOjE0MQorbXNnaWQgImFkZGluZyB1cGRhdGVkIC5naXRtb2R1bGVzIGZhaWxlZCIKK21zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIHRow6ptIC5naXRtb2R1bGVzIMSRw6MgY+G6rXAgbmjhuq10IgorCisjOiBzdWJtb2R1bGUuYzoxNDMKK21zZ2lkICJzdGFnaW5nIHVwZGF0ZWQgLmdpdG1vZHVsZXMgZmFpbGVkIgorbXNnc3RyICJn4bq3cCBs4buXaSBraGkgdOG7lSBjaOG7qWMgLmdpdG1vZHVsZXMgxJHDoyBj4bqtcCBuaOG6rXQiCisKKyM6IHN1Ym1vZHVsZS5jOjExNDQgYnVpbHRpbi9pbml0LWRiLmM6MzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZ2l0IGxpbmsgJXMiCittc2dzdHIgIktow7RuZyB0aOG7gyB04bqhbyBsacOqbiBr4bq/dCBnaXQg4oCcJXPigJ0iCisKKyM6IHN1Ym1vZHVsZS5jOjExNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHNldCBjb3JlLndvcmt0cmVlIGluICVzIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhurd0IGPDonkgdGjGsCBt4bulYyBsw6BtIHZp4buHYyDigJxjb3JlLndvcmt0cmVl4oCdIHRyb25nIOKAnCVz4oCdLiIKKworIzogdXJsbWF0Y2guYzoxMjAKK21zZ2lkICJpbnZhbGlkIFVSTCBzY2hlbWUgbmFtZSBvciBtaXNzaW5nICc6Ly8nIHN1ZmZpeCIKK21zZ3N0ciAidMOqbiBsxrDhu6NjIMSR4buTIFVSTCBraMO0bmcgaOG7o3AgbOG7hyBoYXkgdGhp4bq/dSBo4bqtdSB04buRIOKAnDovL+KAnSIKKworIzogdXJsbWF0Y2guYzoxNDQgdXJsbWF0Y2guYzoyOTcgdXJsbWF0Y2guYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCAlWFggZXNjYXBlIHNlcXVlbmNlIgorbXNnc3RyICJ0aG/DoXQgY2h14buXaSAlWFgga2jDtG5nIGjhu6NwIGzhu4ciCisKKyM6IHVybG1hdGNoLmM6MTcyCittc2dpZCAibWlzc2luZyBob3N0IGFuZCBzY2hlbWUgaXMgbm90ICdmaWxlOiciCittc2dzdHIgInRoaeG6v3UgbcOheSBjaOG7pyB2w6AgbMaw4bujYyDEkeG7kyB0aMOsIGtow7RuZyBwaOG6o2kgbMOgIGdpYW8gdGjhu6ljIOKAnGZpbGU64oCdIgorCisjOiB1cmxtYXRjaC5jOjE4OQorbXNnaWQgImEgJ2ZpbGU6JyBVUkwgbWF5IG5vdCBoYXZlIGEgcG9ydCBudW1iZXIiCittc2dzdHIgIlVSTCBraeG7g3Ug4oCcZmlsZTrigJ0ga2jDtG5nIMSRxrDhu6NjIGNo4bupYSBj4buVbmciCisKKyM6IHVybG1hdGNoLmM6MTk5Cittc2dpZCAiaW52YWxpZCBjaGFyYWN0ZXJzIGluIGhvc3QgbmFtZSIKK21zZ3N0ciAiY8OzIGPDoWMga8O9IHThu7Ega2jDtG5nIGjhu6NwIGzhu4cgdHJvbmcgdMOqbiBtw6F5IgorCisjOiB1cmxtYXRjaC5jOjI0NCB1cmxtYXRjaC5jOjI1NQorbXNnaWQgImludmFsaWQgcG9ydCBudW1iZXIiCittc2dzdHIgInTDqm4gY+G7lW5nIGtow7RuZyBo4bujcCBs4buHIgorCisjOiB1cmxtYXRjaC5jOjMyMgorbXNnaWQgImludmFsaWQgJy4uJyBwYXRoIHNlZ21lbnQiCittc2dzdHIgIsSRb+G6oW4gxJHGsOG7nW5nIGThuqtuIOKAnC4u4oCdIGtow7RuZyBo4bujcCBs4buHIgorCisjOiB3cmFwcGVyLmM6NDIyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJzogJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyB0cnV5IGPhuq1wIOKAnCVz4oCdOiAlcyIKIAotIzogd3JhcHBlci5jOjQyOQorIzogd3JhcHBlci5jOjQ0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyciCiBtc2dzdHIgImtow7RuZyB0aOG7gyB0cnV5IGPhuq1wIOKAnCVz4oCdIgogCi0jOiB3cmFwcGVyLmM6NDQwCisjOiB3cmFwcGVyLmM6NDU0CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBsb29rIHVwIGN1cnJlbnQgdXNlciBpbiB0aGUgcGFzc3dkIGZpbGU6ICVzIgogbXNnc3RyICJraMO0bmcgdMOsbSB0aOG6pXkgbmfGsOG7nWkgZMO5bmcgaGnhu4duIHThuqFpIHRyb25nIHThuq1wIHRpbiBwYXNzd2Q6ICVzIgogCi0jOiB3cmFwcGVyLmM6NDQxCisjOiB3cmFwcGVyLmM6NDU1CiBtc2dpZCAibm8gc3VjaCB1c2VyIgogbXNnc3RyICJraMO0bmcgY8OzIG5nxrDhu51pIGTDuW5nIG5oxrAgduG6rXkiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MQorIzogd3Qtc3RhdHVzLmM6MTQ2CiBtc2dpZCAiVW5tZXJnZWQgcGF0aHM6IgogbXNnc3RyICJOaOG7r25nIMSRxrDhu51uZyBk4bqrbiBjaMawYSDEkcaw4bujYyBow7JhIHRy4buZbjoiCiAKLSM6IHd0LXN0YXR1cy5jOjE2OCB3dC1zdGF0dXMuYzoxOTUKKyM6IHd0LXN0YXR1cy5jOjE3MyB3dC1zdGF0dXMuYzoyMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlc2V0ICVzIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIgIChkw7luZyBcImdpdCByZXNldCAlcyA8dOG6rXAtdGluPi4uLlwiIMSR4buDIGLhu48gbeG7mXQgc3RhZ2UgKHRy4bqhbmcgdGjDoWkpKSIKIAotIzogd3Qtc3RhdHVzLmM6MTcwIHd0LXN0YXR1cy5jOjE5NworIzogd3Qtc3RhdHVzLmM6MTc1IHd0LXN0YXR1cy5jOjIwMgogbXNnaWQgIiAgKHVzZSBcImdpdCBybSAtLWNhY2hlZCA8ZmlsZT4uLi5cIiB0byB1bnN0YWdlKSIKIG1zZ3N0ciAiICAoZMO5bmcgXCJnaXQgcm0gLS1jYWNoZWQgPHThuq1wLXRpbj4uLi5cIiDEkeG7gyBi4buPIHRy4bqhbmcgdGjDoWkgKHN0YWdlKSkiCiAKLSM6IHd0LXN0YXR1cy5jOjE3NAorIzogd3Qtc3RhdHVzLmM6MTc5CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIgIChkw7luZyBcImdpdCBhZGQgPHThuq1wLXRpbj4uLi5cIiDEkeG7gyDEkcOhbmggZOG6pXUgbMOgIGPhuqduIGdp4bqjaSBxdXnhur90KSIKIAotIzogd3Qtc3RhdHVzLmM6MTc2IHd0LXN0YXR1cy5jOjE4MAorIzogd3Qtc3RhdHVzLmM6MTgxIHd0LXN0YXR1cy5jOjE4NQogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiIgogIiAgKGTDuW5nIFwiZ2l0IGFkZC9ybSA8dOG6rXAtdGluPi4uLlwiIG5oxrAgbMOgIG3hu5l0IGPDoWNoICB0aMOtY2ggaOG7o3AgxJHhu4MgxJHDoW5oIGThuqV1ICIKICJsw6AgY+G6p24gxJHGsOG7o2MgZ2nhuqNpIHF1eeG6v3QpIgogCi0jOiB3dC1zdGF0dXMuYzoxNzgKKyM6IHd0LXN0YXR1cy5jOjE4MwogbXNnaWQgIiAgKHVzZSBcImdpdCBybSA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIgIChkw7luZyBcImdpdCBybSA8dOG6rXAtdGluPi4uLlwiIMSR4buDIMSRw6FuaCBk4bqldSBsw6AgY+G6p24gZ2nhuqNpIHF1eeG6v3QpIgogCi0jOiB3dC1zdGF0dXMuYzoxODkKKyM6IHd0LXN0YXR1cy5jOjE5NAogbXNnaWQgIkNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOiIKIG1zZ3N0ciAiTmjhu69uZyB0aGF5IMSR4buVaSBz4bq9IMSRxrDhu6NjIGNodXnhu4NuIGdpYW86IgogCi0jOiB3dC1zdGF0dXMuYzoyMDcKKyM6IHd0LXN0YXR1cy5jOjIxMgogbXNnaWQgIkNoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OiIKIG1zZ3N0ciAiIgogIkPDoWMgdGhheSDEkeG7lWkga2jDtG5nIMSRxrDhu6NjIMSR4bq3dCB0cuG6oW5nIHRow6FpIChzdGFnZSkgY2hvIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCk6IgogCi0jOiB3dC1zdGF0dXMuYzoyMTEKKyM6IHd0LXN0YXR1cy5jOjIxNgogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQgPGZpbGU+Li4uXCIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIiCiAiICAoZMO5bmcgXCJnaXQgYWRkIDx04bqtcC10aW4+Li4uXCIgxJHhu4MgY+G6rXAgbmjhuq10IG5o4buvbmcgZ8OsIGPhuqduIGNodXnhu4NuIGdpYW8gIgogIihjb21taXQpKSIKIAotIzogd3Qtc3RhdHVzLmM6MjEzCisjOiB3dC1zdGF0dXMuYzoyMTgKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogIiAgKGTDuW5nIFwiZ2l0IGFkZC9ybSA8dOG6rXAtdGluPi4uLlwiIMSR4buDIGPhuq1wIG5o4bqtdCBuaOG7r25nIGfDrCBz4bq9IMSRxrDhu6NjIGNodXnhu4NuIGdpYW8pIgogCi0jOiB3dC1zdGF0dXMuYzoyMTQKKyM6IHd0LXN0YXR1cy5jOjIxOQogbXNnaWQgIiIKICIgICh1c2UgXCJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uXCIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KSIKIG1zZ3N0ciAiIgogIiAgKGTDuW5nIFwiZ2l0IGNoZWNrb3V0IC0tIDx04bqtcC10aW4+Li4uXCIgxJHhu4MgYuG7jyB0aGF5IMSR4buVaSB0cm9uZyB0aMawIG3hu6VjIGzDoG0gIgogInZp4buHYykiCiAKLSM6IHd0LXN0YXR1cy5jOjIxNgorIzogd3Qtc3RhdHVzLmM6MjIxCiBtc2dpZCAiICAoY29tbWl0IG9yIGRpc2NhcmQgdGhlIHVudHJhY2tlZCBvciBtb2RpZmllZCBjb250ZW50IGluIHN1Ym1vZHVsZXMpIgogbXNnc3RyICIiCiAiICAoY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBob+G6t2MgbMOgIGxv4bqhaSBi4buPIGPDoWMgbuG7mWkgZHVuZyBraMO0bmctYuG7iy10aGVvLXbhur90IGhheSAiCiAixJHDoyBi4buLIGNo4buJbmggc+G7rWEgdHJvbmcgbcO0LcSRdW4tY29uKSIKIAotIzogd3Qtc3RhdHVzLmM6MjI4CisjOiB3dC1zdGF0dXMuYzoyMzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAodXNlIFwiZ2l0ICVzIDxmaWxlPi4uLlwiIHRvIGluY2x1ZGUgaW4gd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCiBtc2dzdHIgIiIKICIgIChkw7luZyBcImdpdCAlcyA8dOG6rXAtdGluPi4uLlwiIMSR4buDIHRow6ptIHbDoG8gbmjhu69uZyBnw6wgY+G6p24gY2h1eeG7g24gZ2lhbyAiCiAiKGNvbW1pdCkpIgogCi0jOiB3dC1zdGF0dXMuYzoyNDUKKyM6IHd0LXN0YXR1cy5jOjI1MAogbXNnaWQgImJ1ZyIKIG1zZ3N0ciAibOG7l2kiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MAorIzogd3Qtc3RhdHVzLmM6MjU1CiBtc2dpZCAiYm90aCBkZWxldGVkOiIKIG1zZ3N0ciAiYuG7iyB4w7NhIGLhu59pIGPhuqMgaGFpOiIKIAotIzogd3Qtc3RhdHVzLmM6MjUxCisjOiB3dC1zdGF0dXMuYzoyNTYKIG1zZ2lkICJhZGRlZCBieSB1czoiCiBtc2dzdHIgIsSRxrDhu6NjIHRow6ptIHbDoG8gYuG7n2kgY2jDum5nIHRhOiIKIAotIzogd3Qtc3RhdHVzLmM6MjUyCisjOiB3dC1zdGF0dXMuYzoyNTcKIG1zZ2lkICJkZWxldGVkIGJ5IHRoZW06IgogbXNnc3RyICJi4buLIHjDs2EgxJFpIGLhu59pIGjhu406IgogCi0jOiB3dC1zdGF0dXMuYzoyNTMKKyM6IHd0LXN0YXR1cy5jOjI1OAogbXNnaWQgImFkZGVkIGJ5IHRoZW06IgogbXNnc3RyICLEkcaw4bujYyB0aMOqbSB2w6BvIGLhu59pIGjhu406IgogCi0jOiB3dC1zdGF0dXMuYzoyNTQKKyM6IHd0LXN0YXR1cy5jOjI1OQogbXNnaWQgImRlbGV0ZWQgYnkgdXM6IgogbXNnc3RyICJi4buLIHjDs2EgYuG7n2kgY2jDum5nIHRhOiIKIAotIzogd3Qtc3RhdHVzLmM6MjU1CisjOiB3dC1zdGF0dXMuYzoyNjAKIG1zZ2lkICJib3RoIGFkZGVkOiIKIG1zZ3N0ciAixJHGsOG7o2MgdGjDqm0gdsOgbyBi4bufaSBj4bqjIGhhaToiCiAKLSM6IHd0LXN0YXR1cy5jOjI1NgorIzogd3Qtc3RhdHVzLmM6MjYxCiBtc2dpZCAiYm90aCBtb2RpZmllZDoiCiBtc2dzdHIgImLhu4sgc+G7rWEgYuG7n2kgY+G6oyBoYWk6IgogCi0jOiB3dC1zdGF0dXMuYzoyODYKKyM6IHd0LXN0YXR1cy5jOjI5MQogbXNnaWQgIm5ldyBjb21taXRzLCAiCiBtc2dzdHIgImzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgbeG7m2ksICIKIAotIzogd3Qtc3RhdHVzLmM6Mjg4CisjOiB3dC1zdGF0dXMuYzoyOTMKIG1zZ2lkICJtb2RpZmllZCBjb250ZW50LCAiCiBtc2dzdHIgIm7hu5lpIGR1bmcgYuG7iyBz4butYSDEkeG7lWksICIKIAotIzogd3Qtc3RhdHVzLmM6MjkwCisjOiB3dC1zdGF0dXMuYzoyOTUKIG1zZ2lkICJ1bnRyYWNrZWQgY29udGVudCwgIgogbXNnc3RyICJu4buZaSBkdW5nIGNoxrBhIMSRxrDhu6NjIHRoZW8gZMO1aSwgIgogCi0jOiB3dC1zdGF0dXMuYzozMDcKKyM6IHd0LXN0YXR1cy5jOjMxMgogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXcgZmlsZTogICAlcyIKIG1zZ3N0ciAidOG6rXAgdGluIG3hu5tpOiAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMTAKKyM6IHd0LXN0YXR1cy5jOjMxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3BpZWQ6ICAgICAlcyAtPiAlcyIKLW1zZ3N0ciAixJHDoyBzYW8gY2jDqXA6ICAgICAlcyAtPiAlcyIKK21zZ3N0ciAixJHDoyBzYW8gY2jDqXA6ICAgJXMgLT4gJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMxMworIzogd3Qtc3RhdHVzLmM6MzE4CiAjLCBjLWZvcm1hdAogbXNnaWQgImRlbGV0ZWQ6ICAgICVzIgotbXNnc3RyICLEkcOjIHjDs2E6ICAgICVzIgorbXNnc3RyICLEkcOjIHjDs2E6ICAgICAgICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzE2CisjOiB3dC1zdGF0dXMuYzozMjEKICMsIGMtZm9ybWF0CiBtc2dpZCAibW9kaWZpZWQ6ICAgJXMiCi1tc2dzdHIgIsSRw6Mgc+G7rWEgxJHhu5VpOiAgICVzIgorbXNnc3RyICLEkcOjIHPhu61hIMSR4buVaTogICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMxOQorIzogd3Qtc3RhdHVzLmM6MzI0CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlbmFtZWQ6ICAgICVzIC0+ICVzIgogbXNnc3RyICLEkcOjIMSR4buVaSB0w6puOiAgICAlcyAtPiAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzIyCisjOiB3dC1zdGF0dXMuYzozMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAidHlwZWNoYW5nZTogJXMiCi1tc2dzdHIgIsSR4buVaS1raeG7g3U6ICVzIgorbXNnc3RyICLEkeG7lWkta2nhu4N1OiAgICAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMjUKKyM6IHd0LXN0YXR1cy5jOjMzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duOiAgICAlcyIKIG1zZ3N0ciAia2jDtG5nIGhp4buDdTogICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMyOAorIzogd3Qtc3RhdHVzLmM6MzMzCiAjLCBjLWZvcm1hdAogbXNnaWQgInVubWVyZ2VkOiAgICVzIgotbXNnc3RyICJjaMawYSBow7JhIHRy4buZbjogICAlcyIKK21zZ3N0ciAiY2jGsGEgaMOyYSB0cuG7mW46ICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMzEKKyM6IHd0LXN0YXR1cy5jOjMzNgogIywgYy1mb3JtYXQKIG1zZ2lkICJidWc6IHVuaGFuZGxlZCBkaWZmIHN0YXR1cyAlYyIKIG1zZ3N0ciAibOG7l2k6IGtow7RuZyBs4bqleSDEkcaw4bujYyB0cuG6oW5nIHRow6FpIGzhu4duaCBkaWZmICVjIgogCi0jOiB3dC1zdGF0dXMuYzo4MDMKKyM6IHd0LXN0YXR1cy5jOjcwMworbXNnaWQgIlN1Ym1vZHVsZXMgY2hhbmdlZCBidXQgbm90IHVwZGF0ZWQ6IgorbXNnc3RyICJOaOG7r25nIG3DtC3EkXVuLWNvbiDEkcOjIGLhu4sgdGhheSDEkeG7lWkgbmjGsG5nIGNoxrBhIMSRxrDhu6NjIGPhuq1wIG5o4bqtdDoiCisKKyM6IHd0LXN0YXR1cy5jOjcwNQorbXNnaWQgIlN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCittc2dzdHIgIk5o4buvbmcgbcO0LcSRdW4tY29uIHRoYXkgxJHhu5VpIMSRw6MgxJHGsOG7o2MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KToiCisKKyM6IHd0LXN0YXR1cy5jOjg0OAogbXNnaWQgIllvdSBoYXZlIHVubWVyZ2VkIHBhdGhzLiIKIG1zZ3N0ciAiQuG6oW4gY8OzIG5o4buvbmcgxJHGsOG7nW5nIGThuqtuIGNoxrBhIMSRxrDhu6NjIGjDsmEgdHLhu5luLiIKIAotIzogd3Qtc3RhdHVzLmM6ODA2CisjOiB3dC1zdGF0dXMuYzo4NTEKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY29tbWl0XCIpIgogbXNnc3RyICIgIChz4butYSBjw6FjIHh1bmcgxJHhu5l0IHNhdSDEkcOzIGNo4bqheSBcImdpdCBjb21taXRcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjgwOQorIzogd3Qtc3RhdHVzLmM6ODU0CiBtc2dpZCAiQWxsIGNvbmZsaWN0cyBmaXhlZCBidXQgeW91IGFyZSBzdGlsbCBtZXJnaW5nLiIKIG1zZ3N0ciAiVOG6pXQgY+G6oyBjw6FjIHh1bmcgxJHhu5l0IMSRw6MgxJHGsOG7o2MgZ2nhuqNpIHF1eeG6v3QgbmjGsG5nIGLhuqFuIHbhuqtuIMSRYW5nIGjDsmEgdHLhu5luLiIKIAotIzogd3Qtc3RhdHVzLmM6ODEyCisjOiB3dC1zdGF0dXMuYzo4NTcKIG1zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0XCIgdG8gY29uY2x1ZGUgbWVyZ2UpIgogbXNnc3RyICIgIChkw7luZyBcImdpdCBjb21taXRcIiDEkeG7gyBob8OgbiB04bqldCB2aeG7h2MgaMOyYSB0cuG7mW4pIgogCi0jOiB3dC1zdGF0dXMuYzo4MjIKKyM6IHd0LXN0YXR1cy5jOjg2NwogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhbiBhbSBzZXNzaW9uLiIKIG1zZ3N0ciAiQuG6oW4gxJFhbmcg4bufIGdp4buvYSBj4bunYSBt4buZdCBwaGnDqm4g4oCcYW3igJ0uIgogCi0jOiB3dC1zdGF0dXMuYzo4MjUKKyM6IHd0LXN0YXR1cy5jOjg3MAogbXNnaWQgIlRoZSBjdXJyZW50IHBhdGNoIGlzIGVtcHR5LiIKIG1zZ3N0ciAiTWnhur9uZyB2w6EgaGnhu4duIHThuqFpIGLhu4sgdHLhu5FuZyBy4buXbmcuIgogCi0jOiB3dC1zdGF0dXMuYzo4MjkKKyM6IHd0LXN0YXR1cy5jOjg3NAogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tY29udGludWVcIikiCiBtc2dzdHIgIiAgKHPhu61hIGPDoWMgeHVuZyDEkeG7mXQgdsOgIHNhdSDEkcOzIGNo4bqheSBs4buHbmggXCJnaXQgYW0gLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6ODMxCisjOiB3dC1zdGF0dXMuYzo4NzYKIG1zZ2lkICIgICh1c2UgXCJnaXQgYW0gLS1za2lwXCIgdG8gc2tpcCB0aGlzIHBhdGNoKSIKIG1zZ3N0ciAiICAoZMO5bmcgXCJnaXQgYW0gLS1za2lwXCIgxJHhu4MgYuG7jyBxdWEgbWnhur9uZyB2w6EgbsOgeSkiCiAKLSM6IHd0LXN0YXR1cy5jOjgzMworIzogd3Qtc3RhdHVzLmM6ODc4CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFtIC0tYWJvcnRcIiB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIgIChkw7luZyBcImdpdCBhbSAtLWFib3J0XCIgxJHhu4MgcGjhu6VjIGjhu5NpIGzhuqFpIG5ow6FuaCBuZ3V5w6puIHRo4buneSkiCiAKLSM6IHd0LXN0YXR1cy5jOjg5MyB3dC1zdGF0dXMuYzo5MTAKKyM6IHd0LXN0YXR1cy5jOjkzOCB3dC1zdGF0dXMuYzo5NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgcmViYXNpbmcgYnJhbmNoICclcycgb24gJyVzJy4iCiBtc2dzdHIgIkLhuqFuIGhp4buHbiBuYXkgxJFhbmcgdGjhu7FjIGhp4buHbiB2aeG7h2MgcmViYXNlIG5ow6FuaCDigJwlc+KAnSB0csOqbiDigJwlc+KAnS4iCiAKLSM6IHd0LXN0YXR1cy5jOjg5OCB3dC1zdGF0dXMuYzo5MTUKKyM6IHd0LXN0YXR1cy5jOjk0MyB3dC1zdGF0dXMuYzo5NjAKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZy4iCiBtc2dzdHIgIkLhuqFuIGhp4buHbiBuYXkgxJFhbmcgdGjhu7FjIGhp4buHbiB2aeG7h2MgcmViYXNlICh0w6FpIGPhuqV1IHRyw7pjKS4iCiAKLSM6IHd0LXN0YXR1cy5jOjkwMQorIzogd3Qtc3RhdHVzLmM6OTQ2CiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiBtc2dzdHIgIiAgKHPhu61hIGPDoWMgeHVuZyDEkeG7mXQgdsOgIHNhdSDEkcOzIGNo4bqheSBs4buHbmggXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjkwMworIzogd3Qtc3RhdHVzLmM6OTQ4CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIgogbXNnc3RyICIgIChkw7luZyBcImdpdCByZWJhc2UgLS1za2lwXCIgxJHhu4MgYuG7jyBxdWEgbOG6p24gdsOhIG7DoHkpIgogCi0jOiB3dC1zdGF0dXMuYzo5MDUKKyM6IHd0LXN0YXR1cy5jOjk1MAogbXNnaWQgIiAgKHVzZSBcImdpdCByZWJhc2UgLS1hYm9ydFwiIHRvIGNoZWNrIG91dCB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiICAoZMO5bmcgXCJnaXQgcmViYXNlIC0tYWJvcnRcIiDEkeG7gyBjaGVjay1vdXQgbmjDoW5oIG5ndXnDqm4gdGjhu6d5KSIKIAotIzogd3Qtc3RhdHVzLmM6OTE4CisjOiB3dC1zdGF0dXMuYzo5NjMKIG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiBtc2dzdHIgIiIKICIgIChraGkgdOG6pXQgY+G6oyBjw6FjIHh1bmcgxJHhu5l0IMSRw6Mgc+G7rWEgeG9uZzogY2jhuqF5IGzhu4duaCBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6OTIyCisjOiB3dC1zdGF0dXMuYzo5NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKQEAgLTE1MDIsMTI2ICsxNjY5LDEyNyBAQAogIkLhuqFuIGhp4buHbiBuYXkgxJFhbmcgdGjhu7FjIGhp4buHbiB2aeG7h2MgY2hpYSB0w6FjaCBt4buZdCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICIKICJ0cm9uZyBraGkgxJFhbmcgcmViYXNlIG5ow6FuaCDigJwlc+KAnSB0csOqbiDigJwlc+KAnS4iCiAKLSM6IHd0LXN0YXR1cy5jOjkyNworIzogd3Qtc3RhdHVzLmM6OTcyCiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IGR1cmluZyBhIHJlYmFzZS4iCiBtc2dzdHIgIiIKICJC4bqhbiBoaeG7h24gdOG6oWkgxJFhbmcgY+G6r3QgxJHDtGkgbeG7mXQgbOG6p24gY2h1eeG7g24gZ2lhbyB0cm9uZyBraGkgxJFhbmcgdGjhu7FjIGhp4buHbiB2aeG7h2MgIgogInJlYmFzZS4iCiAKLSM6IHd0LXN0YXR1cy5jOjkzMAorIzogd3Qtc3RhdHVzLmM6OTc1CiBtc2dpZCAiICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiBtc2dzdHIgIiIKICIgIChN4buZdCBraGkgdGjGsCBt4bulYyBsw6BtIHZp4buHYyBj4bunYSBi4bqhbiDEkcOjIGfhu41uIGfDoG5nLCBjaOG6oXkgXCJnaXQgcmViYXNlIC0tY29udGludWUiCiAiXCIpIgogCi0jOiB3dC1zdGF0dXMuYzo5MzQKKyM6IHd0LXN0YXR1cy5jOjk3OQogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgogbXNnc3RyICIiCiAiQuG6oW4gaGnhu4duIG5heSDEkWFuZyB0aOG7sWMgaGnhu4duIHZp4buHYyBz4butYSBjaOG7r2EgbeG7mXQgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSB0cm9uZyAiCiAia2hpIMSRYW5nIHJlYmFzZSBuaMOhbmgg4oCcJXPigJ0gdHLDqm4g4oCcJXPigJ0uIgogCi0jOiB3dC1zdGF0dXMuYzo5MzkKKyM6IHd0LXN0YXR1cy5jOjk4NAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIKIG1zZ3N0ciAiQuG6oW4gaGnhu4duIMSRYW5nIHPhu61hIG3hu5l0IGzhuqduIGNodXnhu4NuIGdpYW8gdHJvbmcga2hpIGLhuqFuIHRo4buxYyBoaeG7h24gcmViYXNlLiIKIAotIzogd3Qtc3RhdHVzLmM6OTQyCisjOiB3dC1zdGF0dXMuYzo5ODcKIG1zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0IC0tYW1lbmRcIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpIgogbXNnc3RyICIiCiAiICAoZMO5bmcgXCJnaXQgY29tbWl0IC0tYW1lbmRcIiDEkeG7gyB0dSBi4buVIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgaGnhu4duIHThuqFpKSIKIAotIzogd3Qtc3RhdHVzLmM6OTQ0CisjOiB3dC1zdGF0dXMuYzo5ODkKIG1zZ2lkICIiCiAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykiCiBtc2dzdHIgIiIKICIgIChkw7luZyBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiIG3hu5l0IGtoaSBi4bqhbiBj4bqjbSB0aOG6pXkgaMOgaSBsw7JuZyB24buBIG5o4buvbmcgIgogInRoYXkgxJHhu5VpIGPhu6dhIG3DrG5oKSIKIAotIzogd3Qtc3RhdHVzLmM6OTU0Ci1tc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgY2hlcnJ5LXBpY2tpbmcuIgotbXNnc3RyICJC4bqhbiBoaeG7h24gbmF5IMSRYW5nIHRo4buxYyBoaeG7h24gdmnhu4djIGNoZXJyeS1waWNrLiIKKyM6IHd0LXN0YXR1cy5jOjk5OQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZyBjb21taXQgJXMuIgorbXNnc3RyICJC4bqhbiBoaeG7h24gbmF5IMSRYW5nIHRo4buxYyBoaeG7h24gdmnhu4djIGNoZXJyeS1waWNrIGzhuqduIGNodXnhu4NuIGdpYW8gJXMuIgogCi0jOiB3dC1zdGF0dXMuYzo5NTgKKyM6IHd0LXN0YXR1cy5jOjEwMDQKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogIiAgKHPhu61hIGPDoWMgeHVuZyDEkeG7mXQgdsOgIHNhdSDEkcOzIGNo4bqheSBs4buHbmggXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6OTYxCisjOiB3dC1zdGF0dXMuYzoxMDA3CiBtc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIikiCiBtc2dzdHIgIiIKICIgIChraGkgdOG6pXQgY+G6oyBjw6FjIHh1bmcgxJHhu5l0IMSRw6Mgc+G7rWEgeG9uZzogY2jhuqF5IGzhu4duaCBcImdpdCBjaGVycnktcGljayAtLSIKICJjb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6OTYzCisjOiB3dC1zdGF0dXMuYzoxMDA5CiBtc2dpZCAiICAodXNlIFwiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnRcIiB0byBjYW5jZWwgdGhlIGNoZXJyeS1waWNrIG9wZXJhdGlvbikiCiBtc2dzdHIgIiAgKGTDuW5nIFwiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnRcIiDEkeG7gyBo4buneSBi4buPIHRoYW8gdMOhYyBjaGVycnktcGljaykiCiAKLSM6IHd0LXN0YXR1cy5jOjk3MgorIzogd3Qtc3RhdHVzLmM6MTAxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZXZlcnRpbmcgY29tbWl0ICVzLiIKIG1zZ3N0ciAiQuG6oW4gaGnhu4duIG5heSDEkWFuZyB0aOG7sWMgaGnhu4duIHRoYW8gdMOhYyByZXZlcnQgbOG6p24gY2h1eeG7g24gZ2lhbyDigJwlc+KAnS4iCiAKLSM6IHd0LXN0YXR1cy5jOjk3NworIzogd3Qtc3RhdHVzLmM6MTAyMwogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICAoc+G7rWEgY8OhYyB4dW5nIMSR4buZdCB2w6Agc2F1IMSRw7MgY2jhuqF5IGzhu4duaCBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6OTgwCisjOiB3dC1zdGF0dXMuYzoxMDI2CiBtc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIiCiAiICAoa2hpIHThuqV0IGPhuqMgY8OhYyB4dW5nIMSR4buZdCDEkcOjIHPhu61hIHhvbmc6IGNo4bqheSBs4buHbmggXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjk4MgorIzogd3Qtc3RhdHVzLmM6MTAyOAogbXNnaWQgIiAgKHVzZSBcImdpdCByZXZlcnQgLS1hYm9ydFwiIHRvIGNhbmNlbCB0aGUgcmV2ZXJ0IG9wZXJhdGlvbikiCiBtc2dzdHIgIiAgKGTDuW5nIFwiZ2l0IHJldmVydCAtLWFib3J0XCIgxJHhu4MgaOG7p3kgYuG7jyB0aGFvIHTDoWMgcmV2ZXJ0KSIKIAotIzogd3Qtc3RhdHVzLmM6OTkzCisjOiB3dC1zdGF0dXMuYzoxMDM5CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGJpc2VjdGluZywgc3RhcnRlZCBmcm9tIGJyYW5jaCAnJXMnLiIKIG1zZ3N0ciAiIgogIkLhuqFuIGhp4buHbiBuYXkgxJFhbmcgdGjhu7FjIGhp4buHbiB0aGFvIHTDoWMgZGkgY2h1eeG7g24gbuG7rWEgYsaw4bubYyAoYmlzZWN0KSwgYuG6r3QgxJHhuqd1IHThu6sgIgogIm5ow6FuaCDigJwlc+KAnS4iCiAKLSM6IHd0LXN0YXR1cy5jOjk5NworIzogd3Qtc3RhdHVzLmM6MTA0MwogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGJpc2VjdGluZy4iCi1tc2dzdHIgIkLhuqFuIGhp4buHbiB04bqhaSDEkWFuZyB0aOG7sWMgaGnhu4duIHZp4buHYyBiaXNlY3QgKGNoaWEgxJHDtGkpLiIKK21zZ3N0ciAiQuG6oW4gaGnhu4duIHThuqFpIMSRYW5nIHRo4buxYyBoaeG7h24gdmnhu4djIGJpc2VjdCAoZGkgY2h1eeG7g24gbuG7rWEgYsaw4bubYykuIgogCi0jOiB3dC1zdGF0dXMuYzoxMDAwCisjOiB3dC1zdGF0dXMuYzoxMDQ2CiBtc2dpZCAiICAodXNlIFwiZ2l0IGJpc2VjdCByZXNldFwiIHRvIGdldCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIgIChkw7luZyBcImdpdCBiaXNlY3QgcmVzZXRcIiDEkeG7gyBxdWF5IHRy4bufIGzhuqFpIG5ow6FuaCBuZ3V5w6puIHRo4buneSkiCiAKLSM6IHd0LXN0YXR1cy5jOjExNzMKKyM6IHd0LXN0YXR1cy5jOjEyMjEKIG1zZ2lkICJPbiBicmFuY2ggIgogbXNnc3RyICJUcsOqbiBuaMOhbmggIgogCi0jOiB3dC1zdGF0dXMuYzoxMTgwCisjOiB3dC1zdGF0dXMuYzoxMjI4CiBtc2dpZCAicmViYXNlIGluIHByb2dyZXNzOyBvbnRvICIKLW1zZ3N0ciAicmViYXNlIMSRYW5nIMSRxrDhu6NjIHRo4buxYyBoaeG7h246IGzDqm4gdHLDqm4iCittc2dzdHIgInJlYmFzZSDEkWFuZyDEkcaw4bujYyB0aOG7sWMgaGnhu4duOiBsw6puIHRyw6puICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4NworIzogd3Qtc3RhdHVzLmM6MTIzNQogbXNnaWQgIkhFQUQgZGV0YWNoZWQgYXQgIgotbXNnc3RyICJIRUFEIMSRxrDhu6NjIHTDoWNoIHLhu51pIHThuqFpIgorbXNnc3RyICJIRUFEIMSRxrDhu6NjIHTDoWNoIHLhu51pIHThuqFpICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4OQorIzogd3Qtc3RhdHVzLmM6MTIzNwogbXNnaWQgIkhFQUQgZGV0YWNoZWQgZnJvbSAiCiBtc2dzdHIgIkhFQUQgxJHGsOG7o2MgdMOhY2ggcuG7nWkgdOG7qyIKIAotIzogd3Qtc3RhdHVzLmM6MTE5MgorIzogd3Qtc3RhdHVzLmM6MTI0MAogbXNnaWQgIk5vdCBjdXJyZW50bHkgb24gYW55IGJyYW5jaC4iCiBtc2dzdHIgIkhp4buHbiB04bqhaSBjaOG6s25nIOG7nyBuaMOhbmggbsOgbyBj4bqjLiIKIAotIzogd3Qtc3RhdHVzLmM6MTIwOQorIzogd3Qtc3RhdHVzLmM6MTI1NwogbXNnaWQgIkluaXRpYWwgY29tbWl0IgogbXNnc3RyICJM4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGto4bufaSDEkeG6p3UiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjMKKyM6IHd0LXN0YXR1cy5jOjEyNzEKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgIk5o4buvbmcgdOG6rXAgdGluIGNoxrBhIMSRxrDhu6NjIHRoZW8gZMO1aSIKIAotIzogd3Qtc3RhdHVzLmM6MTIyNQorIzogd3Qtc3RhdHVzLmM6MTI3MwogbXNnaWQgIklnbm9yZWQgZmlsZXMiCiBtc2dzdHIgIk5o4buvbmcgdOG6rXAgdGluIGLhu4sgbOG7nSDEkWkiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjkKKyM6IHd0LXN0YXR1cy5jOjEyNzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkl0IHRvb2sgJS4yZiBzZWNvbmRzIHRvIGVudW1lcmF0ZSB1bnRyYWNrZWQgZmlsZXMuICdzdGF0dXMgLXVubydcbiIKQEAgLTE2MzMsMzIgKzE4MDEsMzIgQEAKICJjw7MgbOG6vSBsw6BtIG7DsyBuaGFuaCBoxqFuLCBuaMawbmcgYuG6oW4gcGjhuqNpIGPhuqluIHRo4bqtbiDEkeG7q25nIHF1w6puIG3DrG5oIHBo4bqjaVxuIgogInThu7EgdGjDqm0gY8OhYyB04bqtcCB0aW4gbeG7m2kgKHhlbSDigJxnaXQgaGVscCBzdGF0dXPigJ0uLiIKIAotIzogd3Qtc3RhdHVzLmM6MTIzNQorIzogd3Qtc3RhdHVzLmM6MTI4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMgbm90IGxpc3RlZCVzIgogbXNnc3RyICJOaOG7r25nIHThuq1wIHRpbiBraMO0bmcgYuG7iyB0aGVvIHbhur90IGtow7RuZyDEkcaw4bujYyBsaeG7h3Qga8OqIHJhICVzIgogCi0jOiB3dC1zdGF0dXMuYzoxMjM3CisjOiB3dC1zdGF0dXMuYzoxMjg1CiBtc2dpZCAiICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKSIKIG1zZ3N0ciAiIChkw7luZyB0w7l5IGNo4buNbiAtdSDEkeG7gyBoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4gY2jGsGEgxJHGsOG7o2MgdGhlbyBkw7VpKSIKIAotIzogd3Qtc3RhdHVzLmM6MTI0MworIzogd3Qtc3RhdHVzLmM6MTI5MQogbXNnaWQgIk5vIGNoYW5nZXMiCiBtc2dzdHIgIktow7RuZyBjw7MgdGhheSDEkeG7lWkgbsOgbyIKIAotIzogd3Qtc3RhdHVzLmM6MTI0OAorIzogd3Qtc3RhdHVzLmM6MTI5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlIFwiZ2l0IGFkZFwiIGFuZC9vciBcImdpdCBjb21taXQgLWFcIilcbiIKIG1zZ3N0ciAiIgogImtow7RuZyBjw7MgdGhheSDEkeG7lWkgbsOgbyDEkcaw4bujYyB0aMOqbSB2w6BvIGNvbW1pdCAoZMO5bmcgXCJnaXQgYWRkXCIgdsOgL2hv4bq3YyBcImdpdCAiCiAiY29tbWl0IC1hXCIpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTEKKyM6IHd0LXN0YXR1cy5jOjEyOTkKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcbiIKIG1zZ3N0ciAia2jDtG5nIGPDsyB0aGF5IMSR4buVaSBuw6BvIMSRxrDhu6NjIHRow6ptIHbDoG8gbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjU0CisjOiB3dC1zdGF0dXMuYzoxMzAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJub3RoaW5nIGFkZGVkIHRvIGNvbW1pdCBidXQgdW50cmFja2VkIGZpbGVzIHByZXNlbnQgKHVzZSBcImdpdCBhZGRcIiB0byAiCkBAIC0xNjY3LDU4ICsxODM1LDYyIEBACiAia2jDtG5nIGPDsyBnw6wgxJHGsOG7o2MgdGjDqm0gdsOgbyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIG5oxrBuZyBjw7Mgbmjhu69uZyB04bqtcCB0aW4gIgogImtow7RuZyDEkcaw4bujYyB0aGVvIGThuqV1IHbhur90IGhp4buHbiBkaeG7h24gKGTDuW5nIFwiZ2l0IGFkZFwiIMSR4buDIMSRxrBhIHbDoG8gdGhlbyBkw7VpKVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjU3CisjOiB3dC1zdGF0dXMuYzoxMzA1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudFxuIgogbXNnc3RyICIiCiAia2jDtG5nIGPDsyBnw6wgxJHGsOG7o2MgdGjDqm0gdsOgbyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIG5oxrBuZyBjw7Mgbmjhu69uZyB04bqtcCB0aW4gIgogImtow7RuZyDEkcaw4bujYyB0aGVvIGThuqV1IHbhur90IGhp4buHbiBkaeG7h25cbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2MAorIzogd3Qtc3RhdHVzLmM6MTMwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCAoY3JlYXRlL2NvcHkgZmlsZXMgYW5kIHVzZSBcImdpdCBhZGRcIiB0byB0cmFjaylcbiIKIG1zZ3N0ciAiIgogIiBraMO0bmcgY8OzIGfDrCDEkeG7gyBjb21taXQgKHThuqFvL3Nhby1jaMOpcCBjw6FjIHThuq1wIHRpbiB2w6AgZMO5bmcgXCJnaXQgYWRkXCIgxJHhu4MgdGhlbyAiCiAiZMO1aSBk4bqldSB24bq/dClcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2MyB3dC1zdGF0dXMuYzoxMjY4CisjOiB3dC1zdGF0dXMuYzoxMzExIHd0LXN0YXR1cy5jOjEzMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXRcbiIKIG1zZ3N0ciAia2jDtG5nIGPDsyBnw6wgxJHhu4MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjY2CisjOiB3dC1zdGF0dXMuYzoxMzE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpXG4iCiBtc2dzdHIgIiIKICJraMO0bmcgY8OzIGfDrCDEkeG7gyBjaHV54buDbiBnaWFvIChjb21taXQpIChkw7luZyAtdSDEkeG7gyBi4buPIGPDoWMgdOG6rXAgdGluIGPhuqduIHRoZW8gZOG6pXUgIgogInbhur90KVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjcwCisjOiB3dC1zdGF0dXMuYzoxMzE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIGRpcmVjdG9yeSBjbGVhblxuIgogbXNnc3RyICJraMO0bmcgY8OzIGfDrCDEkeG7gyBjaHV54buDbiBnaWFvIChjb21taXQpLCB0aMawIG3hu6VjIGzDoG0gdmnhu4djIHPhuqFjaCBz4bq9XG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEzNzgKKyM6IHd0LXN0YXR1cy5jOjE0MjcKIG1zZ2lkICJIRUFEIChubyBicmFuY2gpIgogbXNnc3RyICJIRUFEIChraMO0bmcgbmjDoW5oKSIKIAotIzogd3Qtc3RhdHVzLmM6MTM4NAorIzogd3Qtc3RhdHVzLmM6MTQzMwogbXNnaWQgIkluaXRpYWwgY29tbWl0IG9uICIKIG1zZ3N0ciAiTOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBraOG7n2kgdOG6oW8gdHLDqm4gIgogCi0jOiB3dC1zdGF0dXMuYzoxMzk5CisjOiB3dC1zdGF0dXMuYzoxNDYzCittc2dpZCAiZ29uZSIKK21zZ3N0ciAixJHDoyByYSDEkWkiCisKKyM6IHd0LXN0YXR1cy5jOjE0NjUKIG1zZ2lkICJiZWhpbmQgIgogbXNnc3RyICLEkeG6sW5nIHNhdSAiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MDIgd3Qtc3RhdHVzLmM6MTQwNQorIzogd3Qtc3RhdHVzLmM6MTQ2OCB3dC1zdGF0dXMuYzoxNDcxCiBtc2dpZCAiYWhlYWQgIgogbXNnc3RyICJwaMOtYSB0csaw4bubYyAiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MDcKKyM6IHd0LXN0YXR1cy5jOjE0NzMKIG1zZ2lkICIsIGJlaGluZCAiCiBtc2dzdHIgIiwgxJHhurFuZyBzYXUgIgogCi0jOiBjb21wYXQvcHJlY29tcG9zZV91dGY4LmM6NTggYnVpbHRpbi9jbG9uZS5jOjM1MQorIzogY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jOjU1IGJ1aWx0aW4vY2xvbmUuYzozNTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHVubGluayAnJXMnIgogbXNnc3RyICJi4buPIGxpw6puIGvhur90ICh1bmxpbmspICVzIGtow7RuZyB0aMOgbmggY8O0bmciCkBAIC0xODA2LDcgKzE5NzgsNyBAQAogbXNnaWQgInVuZXhwZWN0ZWQgZGlmZiBzdGF0dXMgJWMiCiBtc2dzdHIgInRy4bqhbmcgdGjDoWkgbOG7h25oIGRpZmYga2jDtG5nIG5oxrAgbW9uZyDEkeG7o2kgJWMiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MTQ5IGJ1aWx0aW4vY29tbWl0LmM6MjUyCisjOiBidWlsdGluL2FkZC5jOjE0OSBidWlsdGluL2NvbW1pdC5jOjI2MAogbXNnaWQgInVwZGF0aW5nIGZpbGVzIGZhaWxlZCIKIG1zZ3N0ciAiQ+G6rXAgbmjhuq10IHThuq1wIHRpbiBn4bq3cCBs4buXaSIKIApAQCAtMTgxNSwxNDcgKzE5ODcsMTQyIEBACiBtc2dpZCAicmVtb3ZlICclcydcbiIKIG1zZ3N0ciAiZ+G7oSBi4buPIOKAnCVz4oCdXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MjUzCisjOiBidWlsdGluL2FkZC5jOjIzNwogbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVmcmVzaGluZyB0aGUgaW5kZXg6IgogbXNnc3RyICIiCiAiQ8OhYyB0aGF5IMSR4buVaSBraMO0bmcgxJHGsOG7o2MgbMawdSB0cuG6oW5nIHRow6FpIHNhdSBraGkgbMOgbSB0xrDGoWkgbeG7m2kgbOG6oWkgYuG6o25nIG3hu6VjIGzhu6VjOiIKIAotIzogYnVpbHRpbi9hZGQuYzoyNTYgYnVpbHRpbi9hZGQuYzo1NzMgYnVpbHRpbi9ybS5jOjMzNwotIywgYy1mb3JtYXQKLW1zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgotbXNnc3RyICJwYXRoc3BlYyDigJwlc+KAnSBraMO0bmcga2jhu5twIHbhu5tpIGLhuqV0IGvhu7MgdOG6rXAgdGluIG7DoG8iCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MzM5CisjOiBidWlsdGluL2FkZC5jOjI5OQogbXNnaWQgIkNvdWxkIG5vdCByZWFkIHRoZSBpbmRleCIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIMSR4buNYyBi4bqjbmcgbeG7pWMgbOG7pWMiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzUwCisjOiBidWlsdGluL2FkZC5jOjMxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nLiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIG3hu58g4oCcJXPigJ0gxJHhu4MgZ2hpLiIKIAotIzogYnVpbHRpbi9hZGQuYzozNTQKKyM6IGJ1aWx0aW4vYWRkLmM6MzE0CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIHBhdGNoIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgZ2hpIHJhIG1p4bq/bmcgdsOhIgogCi0jOiBidWlsdGluL2FkZC5jOjM1OQorIzogYnVpbHRpbi9hZGQuYzozMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHN0YXQgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGzhuqV5IHRy4bqhbmcgdGjDoWkgduG7gSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9hZGQuYzozNjEKKyM6IGJ1aWx0aW4vYWRkLmM6MzIxCiBtc2dpZCAiRW1wdHkgcGF0Y2guIEFib3J0ZWQuIgogbXNnc3RyICJNaeG6v25nIHbDoSB0cuG7kW5nIHLhu5duZy4gxJDDoyBi4buPIHF1YS4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzY3CisjOiBidWlsdGluL2FkZC5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgYXBwbHkgJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGFwcGx5ICjDoXAgZOG7pW5nIG1p4bq/bmcgdsOhKSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9hZGQuYzozNzcKKyM6IGJ1aWx0aW4vYWRkLmM6MzM3CiBtc2dpZCAiVGhlIGZvbGxvd2luZyBwYXRocyBhcmUgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgogbXNnc3RyICIiCiAiQ8OhYyDEkcaw4budbmcgZOG6q24gdGhlbyBzYXUgxJHDonkgc+G6vSBi4buLIGzhu50gxJFpIGLhu59pIG3hu5l0IHRyb25nIGPDoWMgdOG6rXAgdGluIC5naXRpZ25vcmUgIgogImPhu6dhIGLhuqFuOlxuIgogCi0jOiBidWlsdGluL2FkZC5jOjM5NCBidWlsdGluL2NsZWFuLmM6ODc1IGJ1aWx0aW4vZmV0Y2guYzo3OCBidWlsdGluL212LmM6NjMKLSM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzMgYnVpbHRpbi9wdXNoLmM6NDUxIGJ1aWx0aW4vcmVtb3RlLmM6MTI1MwotIzogYnVpbHRpbi9ybS5jOjI2OAorIzogYnVpbHRpbi9hZGQuYzozNTQgYnVpbHRpbi9jbGVhbi5jOjg3NSBidWlsdGluL2ZldGNoLmM6OTIgYnVpbHRpbi9tdi5jOjY2CisjOiBidWlsdGluL3BydW5lLXBhY2tlZC5jOjczIGJ1aWx0aW4vcHVzaC5jOjQ1OSBidWlsdGluL3JlbW90ZS5jOjEyNTMKKyM6IGJ1aWx0aW4vcm0uYzoyNjkKIG1zZ2lkICJkcnkgcnVuIgogbXNnc3RyICJjaOG6oXkgdGjhu60iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk1IGJ1aWx0aW4vYXBwbHkuYzo0NDEwIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTkKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyMCBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NSBidWlsdGluL2ZzY2suYzo2MTMKLSM6IGJ1aWx0aW4vbG9nLmM6MTU3MyBidWlsdGluL212LmM6NjIgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTMKKyM6IGJ1aWx0aW4vYWRkLmM6MzU1IGJ1aWx0aW4vYXBwbHkuYzo0NDEwIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI0OSBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NSBidWlsdGluL2ZzY2suYzo2MTIKKyM6IGJ1aWx0aW4vbG9nLmM6MTU5MiBidWlsdGluL212LmM6NjUgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTMKIG1zZ2lkICJiZSB2ZXJib3NlIgogbXNnc3RyICJjaGkgdGnhur90IgogCi0jOiBidWlsdGluL2FkZC5jOjM5NworIzogYnVpbHRpbi9hZGQuYzozNTcKIG1zZ2lkICJpbnRlcmFjdGl2ZSBwaWNraW5nIgogbXNnc3RyICJz4butYSBi4bqxbmcgY8OhY2ggdMawxqFuZyB0w6FjIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OCBidWlsdGluL2NoZWNrb3V0LmM6MTA3MyBidWlsdGluL3Jlc2V0LmM6MjYxCisjOiBidWlsdGluL2FkZC5jOjM1OCBidWlsdGluL2NoZWNrb3V0LmM6MTEwOSBidWlsdGluL3Jlc2V0LmM6MjcyCiBtc2dpZCAic2VsZWN0IGh1bmtzIGludGVyYWN0aXZlbHkiCiBtc2dzdHIgImNo4buNbiDigJxodW5rc+KAnSBt4buZdCBjw6FjaCB0xrDGoW5nIHTDoWMiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk5CisjOiBidWlsdGluL2FkZC5jOjM1OQogbXNnaWQgImVkaXQgY3VycmVudCBkaWZmIGFuZCBhcHBseSIKIG1zZ3N0ciAic+G7rWEgZGlmZiBoaeG7h24gbmF5IHbDoCDDoXAgZOG7pW5nIG7DsyIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDAKKyM6IGJ1aWx0aW4vYWRkLmM6MzYwCiBtc2dpZCAiYWxsb3cgYWRkaW5nIG90aGVyd2lzZSBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICJjaG8gcGjDqXAgdGjDqm0gY8OhYyB04bqtcCB0aW4gYuG7iyBi4buPIHF1YSBraMOhYyIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDEKKyM6IGJ1aWx0aW4vYWRkLmM6MzYxCiBtc2dpZCAidXBkYXRlIHRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgImPhuq1wIG5o4bqtdCBjw6FjIHThuq1wIHRpbiDEkcaw4bujYyB0aGVvIHbhur90IgogCi0jOiBidWlsdGluL2FkZC5jOjQwMgorIzogYnVpbHRpbi9hZGQuYzozNjIKIG1zZ2lkICJyZWNvcmQgb25seSB0aGUgZmFjdCB0aGF0IHRoZSBwYXRoIHdpbGwgYmUgYWRkZWQgbGF0ZXIiCiBtc2dzdHIgImNo4buJIGdoaSBs4bqhaSBz4buxIHZp4buHYyBtw6AgxJHGsOG7nW5nIGThuqtuIHPhur0gxJHGsOG7o2MgdGjDqm0gdsOgbyBzYXUiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAzCisjOiBidWlsdGluL2FkZC5jOjM2MwogbXNnaWQgImFkZCBjaGFuZ2VzIGZyb20gYWxsIHRyYWNrZWQgYW5kIHVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAiIgogInRow6ptIGPDoWMgdGhheSDEkeG7lWkgdOG7qyB04bqldCBj4bqjIGPDoWMgdOG6rXAgdGluIGPDsyBjxaluZyBuaMawIGtow7RuZyDEkcaw4bujYyB0aGVvIGTDtWkgZOG6pXUgIgogInbhur90IgogCiAjLiB0YWtlcyBubyBhcmd1bWVudHMKLSM6IGJ1aWx0aW4vYWRkLmM6NDA2CisjOiBidWlsdGluL2FkZC5jOjM2NgogbXNnaWQgImlnbm9yZSBwYXRocyByZW1vdmVkIGluIHRoZSB3b3JraW5nIHRyZWUgKHNhbWUgYXMgLS1uby1hbGwpIgogbXNnc3RyICIiCiAibOG7nSDEkWkgY8OhYyDEkcaw4budbmcgZOG6q24gYuG7iyBn4buhIGLhu48gdHJvbmcgY8OieSB0aMawIG3hu6VjIGzDoG0gdmnhu4djIChnaeG7kW5nIHbhu5tpIC0tbm8tYWxsKSIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDgKKyM6IGJ1aWx0aW4vYWRkLmM6MzY4CiBtc2dpZCAiZG9uJ3QgYWRkLCBvbmx5IHJlZnJlc2ggdGhlIGluZGV4IgogbXNnc3RyICJraMO0bmcgdGjDqm0sIGNo4buJIGzDoG0gdMawxqFpIG3hu5tpIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDkKKyM6IGJ1aWx0aW4vYWRkLmM6MzY5CiBtc2dpZCAianVzdCBza2lwIGZpbGVzIHdoaWNoIGNhbm5vdCBiZSBhZGRlZCBiZWNhdXNlIG9mIGVycm9ycyIKIG1zZ3N0ciAiY2hpZSBi4buPIHF1YSBuaOG7r25nIHThuq1wIHRpbiBtw6AgbsOzIGtow7RuZyB0aOG7gyDEkcaw4bujYyB0aMOqbSB2w6BvIGLhu59pIHbDrCBn4bq3cCBs4buXaSIKIAotIzogYnVpbHRpbi9hZGQuYzo0MTAKKyM6IGJ1aWx0aW4vYWRkLmM6MzcwCiBtc2dpZCAiY2hlY2sgaWYgLSBldmVuIG1pc3NpbmcgLSBmaWxlcyBhcmUgaWdub3JlZCBpbiBkcnkgcnVuIgogbXNnc3RyICIiCiAia2nhu4NtIHRyYSB4ZW0gLSB0aOG6rW0gY2jDrSB0aGnhur91IC0gdOG6rXAgdGluIGLhu4sgYuG7jyBxdWEgdHJvbmcgcXXDoSB0csOsbmggY2jhuqF5IHRo4butIgogCi0jOiBidWlsdGluL2FkZC5jOjQzMgorIzogYnVpbHRpbi9hZGQuYzozOTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlIC1mIGlmIHlvdSByZWFsbHkgd2FudCB0byBhZGQgdGhlbS5cbiIKIG1zZ3N0ciAiU+G7rSBk4bulbmcgdMO5eSBjaOG7jW4gLWYgbuG6v3UgYuG6oW4gdGjhu7FjIHPhu7EgbXXhu5FuIHRow6ptIGNow7puZyB2w6BvLlxuIgogCi0jOiBidWlsdGluL2FkZC5jOjQzMworIzogYnVpbHRpbi9hZGQuYzozOTMKIG1zZ2lkICJubyBmaWxlcyBhZGRlZCIKIG1zZ3N0ciAiY2jGsGEgY8OzIHThuq1wIHRpbiBuw6BvIMSRxrDhu6NjIHRow6ptIHbDoG8iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDM5CisjOiBidWlsdGluL2FkZC5jOjM5OQogbXNnaWQgImFkZGluZyBmaWxlcyBmYWlsZWQiCiBtc2dzdHIgInRow6ptIHThuq1wIHRpbiBn4bq3cCBs4buXaSIKIAotIzogYnVpbHRpbi9hZGQuYzo0NzgKKyM6IGJ1aWx0aW4vYWRkLmM6NDM4CiBtc2dpZCAiLUEgYW5kIC11IGFyZSBtdXR1YWxseSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi1BIHbDoCAtdSB4dW5nIGto4bqvYyBuaGF1IgogCi0jOiBidWlsdGluL2FkZC5jOjQ5NgorIzogYnVpbHRpbi9hZGQuYzo0NTYKIG1zZ2lkICJPcHRpb24gLS1pZ25vcmUtbWlzc2luZyBjYW4gb25seSBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggLS1kcnktcnVuIgogbXNnc3RyICJUw7l5IGNo4buNbiAtLWlnbm9yZS1taXNzaW5nIGNo4buJIGPDsyB0aOG7gyDEkcaw4bujYyBkw7luZyBjw7luZyB24bubaSAtLWRyeS1ydW4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NTI2CisjOiBidWlsdGluL2FkZC5jOjQ4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3RoaW5nIHNwZWNpZmllZCwgbm90aGluZyBhZGRlZC5cbiIKIG1zZ3N0ciAiS2jDtG5nIGPDsyBnw6wgxJHGsOG7o2MgY2jhu4kgcmEsIGtow7RuZyBjw7MgZ8OsIMSRxrDhu6NjIHRow6ptIHbDoG8uXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NTI3CisjOiBidWlsdGluL2FkZC5jOjQ4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJNYXliZSB5b3Ugd2FudGVkIHRvIHNheSAnZ2l0IGFkZCAuJz9cbiIKIG1zZ3N0ciAiQ8OzIGzhur0gYuG6oW4gbXXhu5FuIGzDoCDigJxnaXQgYWRkIC7igJ0gcGjhuqNpIGtow7RuZz9cbiIKIAotIzogYnVpbHRpbi9hZGQuYzo1MzMgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjEgYnVpbHRpbi9jbGVhbi5jOjkxOQotIzogYnVpbHRpbi9jb21taXQuYzozMTIgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyOTcKKyM6IGJ1aWx0aW4vYWRkLmM6NDkyIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTcyIGJ1aWx0aW4vY2xlYW4uYzo5MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzIwIGJ1aWx0aW4vbXYuYzo4NiBidWlsdGluL3Jlc2V0LmM6MjI0IGJ1aWx0aW4vcm0uYzoyOTkKIG1zZ2lkICJpbmRleCBmaWxlIGNvcnJ1cHQiCiBtc2dzdHIgInThuq1wIHRpbiBnaGkgYuG6o25nIG3hu6VjIGzhu6VjIGLhu4sgaOG7j25nIgogCi0jOiBidWlsdGluL2FkZC5jOjYwNSBidWlsdGluL2FwcGx5LmM6NDUwNiBidWlsdGluL212LmM6MjI5IGJ1aWx0aW4vcm0uYzo0MzIKKyM6IGJ1aWx0aW4vYWRkLmM6NTg5IGJ1aWx0aW4vYXBwbHkuYzo0NTA2IGJ1aWx0aW4vbXYuYzoyNTkgYnVpbHRpbi9ybS5jOjQzMgogbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGdoaSB04bqtcCB0aW4gbMawdSBi4bqjbmcgbeG7pWMgbOG7pWMgbeG7m2kiCiAKQEAgLTIyMTEsNyArMjM3OCw3IEBACiBtc2dpZCAiQ2hlY2tpbmcgcGF0Y2ggJXMuLi4iCiBtc2dzdHIgIsSQYW5nIGtp4buDbSB0cmEgbWnhur9uZyB2w6EgJXMuLi4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNjgwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTYgYnVpbHRpbi9yZXNldC5jOjEyNworIzogYnVpbHRpbi9hcHBseS5jOjM2ODAgYnVpbHRpbi9jaGVja291dC5jOjIxMyBidWlsdGluL3Jlc2V0LmM6MTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1ha2VfY2FjaGVfZW50cnkgZmFpbGVkIGZvciBwYXRoICclcyciCiBtc2dzdHIgIm1ha2VfY2FjaGVfZW50cnkgZ+G6t3AgbOG7l2kgxJHhu5FpIHbhu5tpIMSRxrDhu51uZyBk4bqrbiDigJwlc+KAnSIKQEAgLTIyMzksNyArMjQwNiw3IEBACiAjOiBidWlsdGluL2FwcGx5LmM6Mzg2MyBidWlsdGluL2FwcGx5LmM6Mzk3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWRkIGNhY2hlIGVudHJ5IGZvciAlcyIKLW1zZ3N0ciAia2jDtG5nIHRo4buDIHRow6ptIG3hu6VjIG5o4bubIHThuqFtIGNobyAlcyIKK21zZ3N0ciAia2jDtG5nIHRo4buDIHRow6ptIG3hu6VjIG5o4bubIMSR4buHbSBjaG8gJXMiCiAKICM6IGJ1aWx0aW4vYXBwbHkuYzozODk2CiAjLCBjLWZvcm1hdApAQCAtMjI3MSw3ICsyNDM4LDcgQEAKICM6IGJ1aWx0aW4vYXBwbHkuYzo0MDUzCiAjLCBjLWZvcm1hdAogbXNnaWQgInRydW5jYXRpbmcgLnJlaiBmaWxlbmFtZSB0byAlLipzLnJlaiIKLW1zZ3N0ciAixJFhbmcgY+G6r3QgY+G7pXQgdMOqbiB04bqtcCB0aW4gLnJlaiB0aMOgbmggJS4qcy5yZWoiCittc2dzdHIgIsSRYW5nIGPhuq90IG5n4bqvbiB0w6puIHThuq1wIHRpbiAucmVqIHRow6BuaCAlLipzLnJlaiIKIAogIzogYnVpbHRpbi9hcHBseS5jOjQwNzQKICMsIGMtZm9ybWF0CkBAIC0yMjkxLDggKzI0NTgsOCBAQAogbXNnaWQgInVuYWJsZSB0byByZWFkIGluZGV4IGZpbGUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgdOG6rXAgdGluIGzGsHUgYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM1NyBidWlsdGluL2FwcGx5LmM6NDM2MCBidWlsdGluL2Nsb25lLmM6OTEKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2MworIzogYnVpbHRpbi9hcHBseS5jOjQzNTcgYnVpbHRpbi9hcHBseS5jOjQzNjAgYnVpbHRpbi9jbG9uZS5jOjkwCisjOiBidWlsdGluL2ZldGNoLmM6NzcKIG1zZ2lkICJwYXRoIgogbXNnc3RyICLEkcaw4budbmctZOG6q24iCiAKQEAgLTIzNTYsNyArMjUyMyw3IEBACiBtc2dzdHIgIiIKICJ4w6J5IGThu7FuZyBi4bqjbmcgbeG7pWMgbOG7pWMgdOG6oW0gdGjhu51pIHRyw6puIGPGoSBz4bufIHRow7RuZyB0aW4gYuG6o25nIG3hu6VjIGzhu6VjIMSRxrDhu6NjIG5ow7puZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODkgYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDYyCisjOiBidWlsdGluL2FwcGx5LmM6NDM4OSBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTk3IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTIKIG1zZ2lkICJwYXRocyBhcmUgc2VwYXJhdGVkIHdpdGggTlVMIGNoYXJhY3RlciIKIG1zZ3N0ciAiY8OhYyDEkcaw4budbmcgZOG6q24gYuG7iyBuZ8SDbiBjw6FjaCBi4bufaSBrw70gdOG7sSBOVUxMIgogCkBAIC0yNDU1LDcgKzI2MjIsNyBAQAogCiAjOiBidWlsdGluL2FyY2hpdmUuYzo1OAogbXNnaWQgImdpdCBhcmNoaXZlOiBleHBlY3RlZCBBQ0svTkFLLCBnb3QgRU9GIgotbXNnc3RyICJnaXQgYXJjaGl2ZTogbW9uZyDEkeG7o2kgQUNLL05BSywgbmjhuq1uIEVPRiIKK21zZ3N0ciAiZ2l0IGFyY2hpdmU6IGPhuqduIEFDSy9OQUssIG5oxrBuZyBs4bqhaSBuaOG6rW4gxJHGsOG7o2MgRU9GIgogCiAjOiBidWlsdGluL2FyY2hpdmUuYzo2MQogIywgYy1mb3JtYXQKQEAgLTI0NzMsNyArMjY0MCw3IEBACiAKICM6IGJ1aWx0aW4vYXJjaGl2ZS5jOjY4CiBtc2dpZCAiZ2l0IGFyY2hpdmU6IGV4cGVjdGVkIGEgZmx1c2giCi1tc2dzdHIgImdpdCBhcmNoaXZlOiDEkcOjIG1vbmcgY2jhu50gbeG7mXQgZmx1c2giCittc2dzdHIgImdpdCBhcmNoaXZlOiBj4bqnbiBt4buZdCBmbHVzaCAoxJHhuql5IGThu68gbGnhu4d1IGzDqm4gxJHEqWEpIgogCiAjOiBidWlsdGluL2Jpc2VjdC0taGVscGVyLmM6NwogbXNnaWQgImdpdCBiaXNlY3QtLWhlbHBlciAtLW5leHQtYWxsIFstLW5vLWNoZWNrb3V0XSIKQEAgLTI0ODksMTA1ICsyNjU2LDEwNSBAQAogImPhuq1wIG5o4bqtdCBCSVNFQ1RfSEVBRCB0aGF5IHbDrCBs4bqleSByYSAoY2hlY2tpbmcgb3V0KSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICIKICJoaeG7h24gaMOgbmgiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyNgorIzogYnVpbHRpbi9ibGFtZS5jOjI3CiBtc2dpZCAiZ2l0IGJsYW1lIFtvcHRpb25zXSBbcmV2LW9wdHNdIFtyZXZdIFstLV0gZmlsZSIKIG1zZ3N0ciAiZ2l0IGJsYW1lIFtjw6FjLXTDuXktY2jhu41uXSBbcmV2LW9wdHNdIFtyZXZdIFstLV0gdOG6rXAtdGluIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MzEKKyM6IGJ1aWx0aW4vYmxhbWUuYzozMgogbXNnaWQgIltyZXYtb3B0c10gYXJlIGRvY3VtZW50ZWQgaW4gZ2l0LXJldi1saXN0KDEpIgogbXNnc3RyICJbcmV2LW9wdHNdIMSRxrDhu6NjIG3DtCB04bqjIHRyb25nIGdpdC1yZXYtbGlzdCgxKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyNzYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjQ4CiBtc2dpZCAiU2hvdyBibGFtZSBlbnRyaWVzIGFzIHdlIGZpbmQgdGhlbSwgaW5jcmVtZW50YWxseSIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIGPDoWMgbeG7pWMg4oCcYmxhbWXigJ0gbmjGsCBsw6AgY2jDum5nIHRhIHRo4bqleSBjaMO6bmcsIHTEg25nIGThuqduIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI3NworIzogYnVpbHRpbi9ibGFtZS5jOjIyNDkKIG1zZ2lkICJTaG93IGJsYW5rIFNIQS0xIGZvciBib3VuZGFyeSBjb21taXRzIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICIiCiAiSGnhu4NuIHRo4buLIFNIQS0xIHRy4bqvbmcgY2hvIG5o4buvbmcgbOG6p24gY2h1eeG7g24gZ2lhbyBiacOqbiBnaeG7m2kgKE3hurdjIMSR4buLbmg6IG9mZikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc4CisjOiBidWlsdGluL2JsYW1lLmM6MjI1MAogbXNnaWQgIkRvIG5vdCB0cmVhdCByb290IGNvbW1pdHMgYXMgYm91bmRhcmllcyAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiS2jDtG5nIGNvaSBjw6FjIGzhuqduIGNodXnhu4NuIGdpYW8gZ+G7kWMgbMOgIGdp4bubaSBo4bqhbiAoTeG6t2MgxJHhu4tuaDogb2ZmKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyNzkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjUxCiBtc2dpZCAiU2hvdyB3b3JrIGNvc3Qgc3RhdGlzdGljcyIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIHRo4buRbmcga8OqIGPDtG5nIHPhu6ljIGzDoG0gdmnhu4djIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI4MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNTIKIG1zZ2lkICJTaG93IG91dHB1dCBzY29yZSBmb3IgYmxhbWUgZW50cmllcyIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIGvhur90IHh14bqldCDEkWnhu4NtIHPhu5EgY8OzIGPDoWMgbeG7pWMgdGluIOKAnGJsYW1l4oCdIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI4MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNTMKIG1zZ2lkICJTaG93IG9yaWdpbmFsIGZpbGVuYW1lIChEZWZhdWx0OiBhdXRvKSIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIHTDqm4gdOG6rXAgdGluIGfhu5FjIChN4bq3YyDEkeG7i25oOiBhdXRvKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjU0CiBtc2dpZCAiU2hvdyBvcmlnaW5hbCBsaW5lbnVtYmVyIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJIaeG7g24gdGjhu4sgc+G7kSBkw7JuZyBn4buRYyAoTeG6t2MgxJHhu4tuaDogb2ZmKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjU1CiBtc2dpZCAiU2hvdyBpbiBhIGZvcm1hdCBkZXNpZ25lZCBmb3IgbWFjaGluZSBjb25zdW1wdGlvbiIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIOG7nyDEkeG7i25oIGThuqFuZyDEkcOjIHRoaeG6v3Qga+G6vyBjaG8gc+G7sSB0acOqdSBkw7luZyBi4bqxbmcgbcOheSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjU2CiBtc2dpZCAiU2hvdyBwb3JjZWxhaW4gZm9ybWF0IHdpdGggcGVyLWxpbmUgY29tbWl0IGluZm9ybWF0aW9uIgogbXNnc3RyICJIaeG7g24gdGjhu4sgxJHhu4tuaCBk4bqhbmcg4oCccG9yY2VsYWlu4oCdIHbhu5tpIHRow7RuZyB0aW4gY2h1eeG7g24gZ2lhbyBt4buXaSBkw7JuZyIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjU3CiBtc2dpZCAiVXNlIHRoZSBzYW1lIG91dHB1dCBtb2RlIGFzIGdpdC1hbm5vdGF0ZSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiRMO5bmcgY8O5bmcgY2jhur8gxJHhu5kgeHXhuqV0IHJhIHbDs2lnaXQtYW5ub3RhdGUgKE3hurdjIMSR4buLbmg6IG9mZikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg2CisjOiBidWlsdGluL2JsYW1lLmM6MjI1OAogbXNnaWQgIlNob3cgcmF3IHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIGThuqV1IHbhur90IHRo4budaSBnaWFuIGThuqFuZyB0aMO0IChN4bq3YyDEkeG7i25oOiBvZmYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI4NworIzogYnVpbHRpbi9ibGFtZS5jOjIyNTkKIG1zZ2lkICJTaG93IGxvbmcgY29tbWl0IFNIQTEgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIkhp4buDbiB0aOG7iyBTSEExIGPhu6dhIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgZOG6oW5nIGTDoGkgKE3hurdjIMSR4buLbmg6IG9mZikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg4CisjOiBidWlsdGluL2JsYW1lLmM6MjI2MAogbXNnaWQgIlN1cHByZXNzIGF1dGhvciBuYW1lIGFuZCB0aW1lc3RhbXAgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIktow7RuZyBoaeG7g24gdGjhu4sgdMOqbiB0w6FjIGdp4bqjIHbDoCBk4bqldSB24bq/dCB0aOG7nWkgZ2lhbiAoTeG6t2MgxJHhu4tuaDogb2ZmKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjYxCiBtc2dpZCAiU2hvdyBhdXRob3IgZW1haWwgaW5zdGVhZCBvZiBuYW1lIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJIaeG7g24gdGjhu4sgdGjGsCDEkWnhu4duIHThu60gY+G7p2EgdMOhYyBnaeG6oyB0aGF5IHbDrCB0w6puIChN4bq3YyDEkeG7i25oOiBvZmYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjIKIG1zZ2lkICJJZ25vcmUgd2hpdGVzcGFjZSBkaWZmZXJlbmNlcyIKIG1zZ3N0ciAiQuG7jyBxdWEgY8OhYyBraMOhYyBiaeG7h3QgZG8ga2hv4bqjbmcgdHLhuq9uZyBnw6J5IHJhIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjMKIG1zZ2lkICJTcGVuZCBleHRyYSBjeWNsZXMgdG8gZmluZCBiZXR0ZXIgbWF0Y2giCiBtc2dzdHIgIlRpw6p1IHRo4bulIHRow6ptIG7Eg25nIHTDoGkgbmd1ecOqbiBtw6F5IG3Ds2MgxJHhu4MgdMOsbSBraeG6v20gdOG7kXQgaMahbiBu4buvYSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY0CiBtc2dpZCAiVXNlIHJldmlzaW9ucyBmcm9tIDxmaWxlPiBpbnN0ZWFkIG9mIGNhbGxpbmcgZ2l0LXJldi1saXN0IgogbXNnc3RyICIiCiAiU+G7rSBk4bulbmcgxJFp4buDbSB4w6l0IGR1eeG7h3QgKHJldmlzaW9uKSB04burIDx04bqtcCB0aW4+IHRoYXkgdsOsIGfhu41pIOKAnGdpdC1yZXYtbGlzdOKAnSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY1CiBtc2dpZCAiVXNlIDxmaWxlPidzIGNvbnRlbnRzIGFzIHRoZSBmaW5hbCBpbWFnZSIKIG1zZ3N0ciAiU+G7rSBk4bulbmcgbuG7mWkgZHVuZyBj4bunYSA8dOG6rXAgdGluPiBuaMawIGzDoCDhuqNuaCBjdeG7kWkgY8O5bmciCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk0IGJ1aWx0aW4vYmxhbWUuYzoyMjk1CisjOiBidWlsdGluL2JsYW1lLmM6MjI2NiBidWlsdGluL2JsYW1lLmM6MjI2NwogbXNnaWQgInNjb3JlIgogbXNnc3RyICLEkWnhu4NtIHPhu5EiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk0CisjOiBidWlsdGluL2JsYW1lLmM6MjI2NgogbXNnaWQgIkZpbmQgbGluZSBjb3BpZXMgd2l0aGluIGFuZCBhY3Jvc3MgZmlsZXMiCiBtc2dzdHIgIlTDrG0gY8OhYyBi4bqjbiBzYW8gY2jDqXAgZMOybmcgdHJvbmcgdsOgIG5nYW5nIHF1YSB04bqtcCB0aW4iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk1CisjOiBidWlsdGluL2JsYW1lLmM6MjI2NwogbXNnaWQgIkZpbmQgbGluZSBtb3ZlbWVudHMgd2l0aGluIGFuZCBhY3Jvc3MgZmlsZXMiCiBtc2dzdHIgIlTDrG0gY8OhYyBkaSBjaHV54buDbiBkw7JuZyB0cm9uZyB2w6AgbmdhbmcgcXVhIHThuq1wIHRpbiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY4CiBtc2dpZCAibixtIgogbXNnc3RyICJuLG0iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk2CisjOiBidWlsdGluL2JsYW1lLmM6MjI2OAogbXNnaWQgIlByb2Nlc3Mgb25seSBsaW5lIHJhbmdlIG4sbSwgY291bnRpbmcgZnJvbSAxIgogbXNnc3RyICJY4butIGzDvSBjaOG7iSBkw7JuZyB2w7luZyBuLG0sIHTDrW5oIHThu6sgMSIKIApAQCAtMjY3NCw3ICsyODQxLDcgQEAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkVycm9yIGRlbGV0aW5nIGJyYW5jaCAnJXMnIgotbXNnc3RyICJM4buXaSBraGkgeG/DoSBi4buPIG5ow6FuaCDigJwlc+KAnSIKK21zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHhvw6EgYuG7jyBuaMOhbmgg4oCcJXPigJ0iCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MjYzCiAjLCBjLWZvcm1hdApAQCAtMjY5MywyNzkgKzI4NjAsMjg5IEBACiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6NDUzCiAjLCBjLWZvcm1hdAorbXNnaWQgIlslczogZ29uZV0iCittc2dzdHIgIlslczogxJHDoyByYSDEkWldIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJbJXNdIgorbXNnc3RyICJbJXNdIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjQ1OQorIywgYy1mb3JtYXQKIG1zZ2lkICJbJXM6IGJlaGluZCAlZF0iCiBtc2dzdHIgIlslczogxJHhurFuZyBzYXUgJWRdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ1NQorIzogYnVpbHRpbi9icmFuY2guYzo0NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiW2JlaGluZCAlZF0iCiBtc2dzdHIgIlvEkeG6sW5nIHNhdSAlZF0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU5CisjOiBidWlsdGluL2JyYW5jaC5jOjQ2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJbJXM6IGFoZWFkICVkXSIKIG1zZ3N0ciAiWyVzOiBwaMOtYSB0csaw4bubYyAlZF0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDYxCisjOiBidWlsdGluL2JyYW5jaC5jOjQ2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJbYWhlYWQgJWRdIgogbXNnc3RyICJbcGjDrWEgdHLGsOG7m2MgJWRdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ2NAorIzogYnVpbHRpbi9icmFuY2guYzo0NzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiWyVzOiBhaGVhZCAlZCwgYmVoaW5kICVkXSIKIG1zZ3N0ciAiWyVzOiB0csaw4bubYyAlZCwgc2F1ICVkXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NjcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDczCiAjLCBjLWZvcm1hdAogbXNnaWQgIlthaGVhZCAlZCwgYmVoaW5kICVkXSIKIG1zZ3N0ciAiW3RyxrDhu5tjICVkLCBzYXUgJWRdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ5MAorIzogYnVpbHRpbi9icmFuY2guYzo0OTYKIG1zZ2lkICIgKioqKiBpbnZhbGlkIHJlZiAqKioqIgogbXNnc3RyICIgKioqKiB0aGFtIGNoaeG6v3Ugc2FpICoqKioiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTgyCisjOiBidWlsdGluL2JyYW5jaC5jOjU4OAogIywgYy1mb3JtYXQKIG1zZ2lkICIobm8gYnJhbmNoLCByZWJhc2luZyAlcykiCiBtc2dzdHIgIihraMO0bmcgbmjDoW5oLCDEkWFuZyByZWJhc2UgJXMpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU4NQorIzogYnVpbHRpbi9icmFuY2guYzo1OTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiKG5vIGJyYW5jaCwgYmlzZWN0IHN0YXJ0ZWQgb24gJXMpIgogbXNnc3RyICIoa2jDtG5nIG5ow6FuaCwgYmlzZWN0IMSRxrDhu6NjIGLhuq90IMSR4bqndSB04bqhaSAlcykiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTg4CisjOiBidWlsdGluL2JyYW5jaC5jOjU5NAogIywgYy1mb3JtYXQKIG1zZ2lkICIoZGV0YWNoZWQgZnJvbSAlcykiCiBtc2dzdHIgIijEkcaw4bujYyB0w6FjaCBy4budaSB04burICVzKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo1OTEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTk3CiBtc2dpZCAiKG5vIGJyYW5jaCkiCiBtc2dzdHIgIihraMO0bmcgbmjDoW5oKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2MzcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCAnJXMnIGRvZXMgbm90IHBvaW50IHRvIGEgY29tbWl0IgogbXNnc3RyICLEkeG7kWkgdMaw4bujbmcg4oCcJXPigJ0ga2jDtG5nIGNo4buJIMSR4bq/biBt4buZdCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIG7DoG8gY+G6oyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2NjkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Njc1CiBtc2dpZCAic29tZSByZWZzIGNvdWxkIG5vdCBiZSByZWFkIgogbXNnc3RyICJt4buZdCBz4buRIHRoYW0gY2hp4bq/dSDEkcOjIGtow7RuZyB0aOG7gyDEkeG7jWMgxJHGsOG7o2MiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjgyCisjOiBidWlsdGluL2JyYW5jaC5jOjY4OAogbXNnaWQgImNhbm5vdCByZW5hbWUgdGhlIGN1cnJlbnQgYnJhbmNoIHdoaWxlIG5vdCBvbiBhbnkuIgogbXNnc3RyICJraMO0bmcgdGjhu4MgxJHhu5VpIHTDqm4gbmjDoW5oIGhp4buHbiBow6BuaCB0cm9uZyBraGkgbsOzIGNo4bqzbmcg4bufIMSRw6J1IGPhuqMuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY5MgorIzogYnVpbHRpbi9icmFuY2guYzo2OTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBicmFuY2ggbmFtZTogJyVzJyIKLW1zZ3N0ciAiU2FpIHTDqm4gbmjDoW5oOiDigJwlc+KAnSIKK21zZ3N0ciAiVMOqbiBuaMOhbmgga2jDtG5nIGjhu6NwIGzhu4c6IOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcwNworIzogYnVpbHRpbi9icmFuY2guYzo3MTMKIG1zZ2lkICJCcmFuY2ggcmVuYW1lIGZhaWxlZCIKLW1zZ3N0ciAixJDhu5VpIHTDqm4gbmjDoW5oIGfhurdwIGzhu5dpIgorbXNnc3RyICJH4bq3cCBs4buXaSBraGkgxJHhu5VpIHTDqm4gbmjDoW5oIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcxMQorIzogYnVpbHRpbi9icmFuY2guYzo3MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVuYW1lZCBhIG1pc25hbWVkIGJyYW5jaCAnJXMnIGF3YXkiCiBtc2dzdHIgIsSQw6MgxJHhu5VpIHTDqm4gbmjDoW5oIGtodXnhur90IGRhbmgg4oCcJXPigJ0gxJFpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcxNQorIzogYnVpbHRpbi9icmFuY2guYzo3MjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQnJhbmNoIHJlbmFtZWQgdG8gJXMsIGJ1dCBIRUFEIGlzIG5vdCB1cGRhdGVkISIKIG1zZ3N0ciAiTmjDoW5oIGLhu4sgxJHhu5VpIHTDqm4gdGjDoG5oICVzLCBuaMawbmcgSEVBRCBs4bqhaSBraMO0bmcgxJHGsOG7o2MgY+G6rXAgbmjhuq10ISIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3MjIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzI4CiBtc2dpZCAiQnJhbmNoIGlzIHJlbmFtZWQsIGJ1dCB1cGRhdGUgb2YgY29uZmlnLWZpbGUgZmFpbGVkIgogbXNnc3RyICJOaMOhbmggYuG7iyDEkeG7lWkgdMOqbiwgbmjGsG5nIGPhuq1wIG5o4bqtdCB04bqtcCB0aW4gY+G6pXUgaMOsbmggZ+G6t3AgbOG7l2kiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzM3CisjOiBidWlsdGluL2JyYW5jaC5jOjc0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWxmb3JtZWQgb2JqZWN0IG5hbWUgJXMiCiBtc2dzdHIgInTDqm4gxJHhu5FpIHTGsOG7o25nIGThu4sgaMOsbmggJXMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzYxCisjOiBidWlsdGluL2JyYW5jaC5jOjc2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgd3JpdGUgYnJhbmNoIGRlc2NyaXB0aW9uIHRlbXBsYXRlOiAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGdoaSB2w6BvIG3huqt1IG3DtCB04bqjIG5ow6FuaDogJXMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzkxCisjOiBidWlsdGluL2JyYW5jaC5jOjc5NwogbXNnaWQgIkdlbmVyaWMgb3B0aW9ucyIKIG1zZ3N0ciAiVMO5eSBjaOG7jW4gY2h1bmciCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzkzCisjOiBidWlsdGluL2JyYW5jaC5jOjc5OQogbXNnaWQgInNob3cgaGFzaCBhbmQgc3ViamVjdCwgZ2l2ZSB0d2ljZSBmb3IgdXBzdHJlYW0gYnJhbmNoIgogbXNnc3RyICJoaeG7g24gdGjhu4sgbcOjIGLEg20gdsOgIGNo4bunIMSR4buBLCDEkcawYSByYSBoYWkgbOG6p24gY2hvIG5ow6FuaCB0aMaw4bujbmcgbmd14buTbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAwCiBtc2dpZCAic3VwcHJlc3MgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyIKIG1zZ3N0ciAiVGh1IGjhu5NpIGPDoWMgdGjDtG5nIMSRaeG7h3AgdGjDtG5nIHRpbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCiBtc2dpZCAic2V0IHVwIHRyYWNraW5nIG1vZGUgKHNlZSBnaXQtcHVsbCgxKSkiCiBtc2dzdHIgImPDoGkgxJHhurd0IGNo4bq/IMSR4buZIHRoZW8gduG6v3QgKHhlbSBnaXQtcHVsbCgxKSkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk3CisjOiBidWlsdGluL2JyYW5jaC5jOjgwMwogbXNnaWQgImNoYW5nZSB1cHN0cmVhbSBpbmZvIgogbXNnc3RyICJ0aGF5IMSR4buVaSB0aMO0bmcgdGluIHRoxrDhu6NuZyBuZ3Xhu5NuICh1cHN0cmVhbSkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCisjOiBidWlsdGluL2JyYW5jaC5jOjgwNwogbXNnaWQgInVzZSBjb2xvcmVkIG91dHB1dCIKIG1zZ3N0ciAic+G7rSBk4bulbmcga+G6v3QgeHXhuqV0IGPDsyB0w7QgbcOgdSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA4CiBtc2dpZCAiYWN0IG9uIHJlbW90ZS10cmFja2luZyBicmFuY2hlcyIKIG1zZ3N0ciAidGhhbyB0w6FjIHRyw6puIG5ow6FuaCDigJxyZW1vdGUtdHJhY2tpbmfigJ0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA1IGJ1aWx0aW4vYnJhbmNoLmM6ODExIGJ1aWx0aW4vYnJhbmNoLmM6ODMyCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzOCBidWlsdGluL2NvbW1pdC5jOjE0MzMgYnVpbHRpbi9jb21taXQuYzoxNDM0Ci0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzUgYnVpbHRpbi9jb21taXQuYzoxNDM2IGJ1aWx0aW4vdGFnLmM6NDY4CisjOiBidWlsdGluL2JyYW5jaC5jOjgxMSBidWlsdGluL2JyYW5jaC5jOjgxNyBidWlsdGluL2JyYW5jaC5jOjgzOAorIzogYnVpbHRpbi9icmFuY2guYzo4NDQgYnVpbHRpbi9jb21taXQuYzoxNDYwIGJ1aWx0aW4vY29tbWl0LmM6MTQ2MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDYyIGJ1aWx0aW4vY29tbWl0LmM6MTQ2MyBidWlsdGluL3RhZy5jOjQ2OAogbXNnaWQgImNvbW1pdCIKIG1zZ3N0ciAiY29tbWl0IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNiBidWlsdGluL2JyYW5jaC5jOjgxMgorIzogYnVpbHRpbi9icmFuY2guYzo4MTIgYnVpbHRpbi9icmFuY2guYzo4MTgKIG1zZ2lkICJwcmludCBvbmx5IGJyYW5jaGVzIHRoYXQgY29udGFpbiB0aGUgY29tbWl0IgogbXNnc3RyICJjaOG7iSBoaeG7g24gdGjhu4sgbmjhu69uZyBuaMOhbmggbcOgIG7DsyBjaOG7qWEgbOG6p24gY2h1eeG7g24gZ2lhbyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MTgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI0CiBtc2dpZCAiU3BlY2lmaWMgZ2l0LWJyYW5jaCBhY3Rpb25zOiIKIG1zZ3N0ciAiSMOgbmggxJHhu5luZyBnaXQtYnJhbmNoOiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MTkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI1CiBtc2dpZCAibGlzdCBib3RoIHJlbW90ZS10cmFja2luZyBhbmQgbG9jYWwgYnJhbmNoZXMiCiBtc2dzdHIgImxp4buHdCBrw6ogY+G6oyBuaMOhbmgg4oCccmVtb3RlLXRyYWNraW5n4oCdIHbDoCBu4buZaSBi4buZIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyMQorIzogYnVpbHRpbi9icmFuY2guYzo4MjcKIG1zZ2lkICJkZWxldGUgZnVsbHkgbWVyZ2VkIGJyYW5jaCIKIG1zZ3N0ciAieMOzYSBt4buZdCBjw6FjaCDEkeG6p3kgxJHhu6cgbmjDoW5oIMSRw6MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIyCisjOiBidWlsdGluL2JyYW5jaC5jOjgyOAogbXNnaWQgImRlbGV0ZSBicmFuY2ggKGV2ZW4gaWYgbm90IG1lcmdlZCkiCiBtc2dzdHIgInhvw6EgbmjDoW5oIChjaG8gZMO5IGzDoCBjaMawYSDEkcaw4bujYyBow7JhIHRy4buZbikiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIzCisjOiBidWlsdGluL2JyYW5jaC5jOjgyOQogbXNnaWQgIm1vdmUvcmVuYW1lIGEgYnJhbmNoIGFuZCBpdHMgcmVmbG9nIgogbXNnc3RyICJkaSBjaHV54buDbiBoYXkgxJHhu5VpIHTDqm4gbeG7mXQgbmjDoW5oIHbDoCByZWZsb2cgY+G7p2EgbsOzIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyNAorIzogYnVpbHRpbi9icmFuY2guYzo4MzAKIG1zZ2lkICJtb3ZlL3JlbmFtZSBhIGJyYW5jaCwgZXZlbiBpZiB0YXJnZXQgZXhpc3RzIgogbXNnc3RyICJkaSBjaHV54buDbiBob+G6t2MgxJHhu5VpIHTDqm4gbeG7mXQgbmjDoW5oLCB0aOG6rW0gY2jDrSBj4bqjIGtoaSDEkcOtY2ggxJHDoyBjw7Mgc+G6tW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI1CisjOiBidWlsdGluL2JyYW5jaC5jOjgzMQogbXNnaWQgImxpc3QgYnJhbmNoIG5hbWVzIgogbXNnc3RyICJsaeG7h3Qga8OqIGPDoWMgdMOqbiBuaMOhbmgiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI2CisjOiBidWlsdGluL2JyYW5jaC5jOjgzMgogbXNnaWQgImNyZWF0ZSB0aGUgYnJhbmNoJ3MgcmVmbG9nIgogbXNnc3RyICJ04bqhbyByZWZsb2cgY+G7p2EgbmjDoW5oIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyOAorIzogYnVpbHRpbi9icmFuY2guYzo4MzQKIG1zZ2lkICJlZGl0IHRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIGJyYW5jaCIKIG1zZ3N0ciAic+G7rWEgbcO0IHThuqMgY2hvIG5ow6FuaCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM1CiBtc2dpZCAiZm9yY2UgY3JlYXRpb24gKHdoZW4gYWxyZWFkeSBleGlzdHMpIgogbXNnc3RyICLDqXAgYnXhu5ljIHThuqFvIChraGkgxJHDoyBz4bq1biB04buTbiB04bqhaSBy4buTaSkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMyCisjOiBidWlsdGluL2JyYW5jaC5jOjgzOAogbXNnaWQgInByaW50IG9ubHkgbm90IG1lcmdlZCBicmFuY2hlcyIKIG1zZ3N0ciAiY2jhu4kgaGnhu4NuIHRo4buLIGPDoWMgbmjDoW5oIGNoxrBhIMSRxrDhu6NjIGjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzOAorIzogYnVpbHRpbi9icmFuY2guYzo4NDQKIG1zZ2lkICJwcmludCBvbmx5IG1lcmdlZCBicmFuY2hlcyIKIG1zZ3N0ciAiY2jhu4kgaGnhu4NuIHRo4buLIGPDoWMgbmjDoW5oIMSRxrDhu6NjIGjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg0MgorIzogYnVpbHRpbi9icmFuY2guYzo4NDgKIG1zZ2lkICJsaXN0IGJyYW5jaGVzIGluIGNvbHVtbnMiCiBtc2dzdHIgImxp4buHdCBrw6ogY8OhYyBuaMOhbmggdHJvbmcgY8OhYyBj4buZdCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYxCiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgSEVBRCBhcyBhIHZhbGlkIHJlZi4iCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSBwaMOibiBnaeG6o2kgSEVBRCBuaMawIGzDoCBt4buZdCB0aGFtIGNoaeG6v3UgKHJlZikgaOG7o3AgbOG7hy4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYwIGJ1aWx0aW4vY2xvbmUuYzo2MzAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODY2IGJ1aWx0aW4vY2xvbmUuYzo2MjkKIG1zZ2lkICJIRUFEIG5vdCBmb3VuZCBiZWxvdyByZWZzL2hlYWRzISIKIG1zZ3N0ciAia2jDtG5nIHTDrG0gdGjhuqV5IEhFQUQg4bufIGTGsOG7m2kgcmVmcy9oZWFkcyEiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODgzCisjOiBidWlsdGluL2JyYW5jaC5jOjg5MAogbXNnaWQgIi0tY29sdW1uIGFuZCAtLXZlcmJvc2UgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1jb2x1bW4gdsOgIC0tdmVyYm9zZSB4dW5nIGto4bqvYyBuaGF1IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg4OSBidWlsdGluL2JyYW5jaC5jOjkyOAorIzogYnVpbHRpbi9icmFuY2guYzo4OTYgYnVpbHRpbi9icmFuY2guYzo5MzUKIG1zZ2lkICJicmFuY2ggbmFtZSByZXF1aXJlZCIKIG1zZ3N0ciAiY+G6p24gdMOqbiBuaMOhbmgiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA0CisjOiBidWlsdGluL2JyYW5jaC5jOjkxMQogbXNnaWQgIkNhbm5vdCBnaXZlIGRlc2NyaXB0aW9uIHRvIGRldGFjaGVkIEhFQUQiCiBtc2dzdHIgIktow7RuZyB0aOG7gyDEkcawYSByYSBtw7QgdOG6oyBIRUFEIMSRw6MgdMOhY2ggcuG7nWkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA5CisjOiBidWlsdGluL2JyYW5jaC5jOjkxNgogbXNnaWQgImNhbm5vdCBlZGl0IGRlc2NyaXB0aW9uIG9mIG1vcmUgdGhhbiBvbmUgYnJhbmNoIgogbXNnc3RyICJraMO0bmcgdGjhu4Mgc+G7rWEgbcO0IHThuqMgY2hvIG5oaeG7gXUgaMahbiBt4buZdCBuaMOhbmgiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE2CisjOiBidWlsdGluL2JyYW5jaC5jOjkyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBjb21taXQgb24gYnJhbmNoICclcycgeWV0LiIKIG1zZ3N0ciAiVuG6q24gY2jGsGEgY2h1eeG7g24gZ2lhbyB0csOqbiBuaMOhbmgg4oCcJXPigJ0uIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkxOQorIzogYnVpbHRpbi9icmFuY2guYzo5MjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gYnJhbmNoIG5hbWVkICclcycuIgogbXNnc3RyICJLaMO0bmcgY8OzIG5ow6FuaCBuw6BvIGPDsyB0w6puIOKAnCVz4oCdLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MzQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQxCiBtc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgZm9yIGEgcmVuYW1lIG9wZXJhdGlvbiIKIG1zZ3N0ciAicXXDoSBuaGnhu4F1IG5ow6FuaCBkw6BuaCBjaG8gdGhhbyB0w6FjIMSR4buVaSB0w6puIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkzOQorIzogYnVpbHRpbi9icmFuY2guYzo5NDYKIG1zZ2lkICJ0b28gbWFueSBicmFuY2hlcyB0byBzZXQgbmV3IHVwc3RyZWFtIgotbXNnc3RyICJxdcOhIG5oaeG7gXUgbmjDoW5oIMSRxrDhu6NjIMSR4bq3dCBjaG8gZMOybmcgbmfGsOG7o2MgKHVwc3RyZWFtKSBt4bubaSIKK21zZ3N0ciAicXXDoSBuaGnhu4F1IG5ow6FuaCDEkcaw4bujYyDEkeG6t3QgY2hvIHRoxrDhu6NuZyBuZ3Xhu5NuICh1cHN0cmVhbSkgbeG7m2kiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQzCisjOiBidWlsdGluL2JyYW5jaC5jOjk1MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiY291bGQgbm90IHNldCB1cHN0cmVhbSBvZiBIRUFEIHRvICVzIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCiBtc2dzdHIgIiIKLSJraMO0bmcgdGjhu4MgxJHhurd0IGTDsm5nIG5nxrDhu6NjICh1cHN0cmVhbSkgY+G7p2EgSEVBRCB0aMOgbmggJXMga2hpIG3DoCBuw7MgY2jhurNuZyBjaOG7iSAiCisia2jDtG5nIHRo4buDIMSR4bq3dCB0aMaw4bujbmcgbmd14buTbiAodXBzdHJlYW0pIGPhu6dhIEhFQUQgdGjDoG5oICVzIGtoaSBtw6AgbsOzIGNo4bqzbmcgY2jhu4kgIgogIsSR4bq/biBuaMOhbmggbsOgbyBj4bqjLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NDYgYnVpbHRpbi9icmFuY2guYzo5NjggYnVpbHRpbi9icmFuY2guYzo5OTAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTUzIGJ1aWx0aW4vYnJhbmNoLmM6OTc1IGJ1aWx0aW4vYnJhbmNoLmM6OTk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHN1Y2ggYnJhbmNoICclcyciCiBtc2dzdHIgImtow7RuZyBjw7MgbmjDoW5oIG7DoG8gbmjGsCB0aOG6vyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NTAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICJuaMOhbmgg4oCcJXPigJ0gY2jGsGEgc+G6tW4gY8OzIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk2MgorIzogYnVpbHRpbi9icmFuY2guYzo5NjkKIG1zZ2lkICJ0b28gbWFueSBicmFuY2hlcyB0byB1bnNldCB1cHN0cmVhbSIKIG1zZ3N0ciAicXXDoSBuaGnhu4F1IG5ow6FuaCDEkeG7gyBi4buPIMSR4bq3dCBuZ8aw4bujYyBkw7JuZyAodXBzdHJlYW0pIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk2NgorIzogYnVpbHRpbi9icmFuY2guYzo5NzMKIG1zZ2lkICJjb3VsZCBub3QgdW5zZXQgdXBzdHJlYW0gb2YgSEVBRCB3aGVuIGl0IGRvZXMgbm90IHBvaW50IHRvIGFueSBicmFuY2guIgogbXNnc3RyICIiCiAia2jDtG5nIHRo4buDIGLhu48gxJHhurd0IG5nxrDhu6NjIGTDsm5nICh1cHN0cmVhbSkgY+G7p2EgSEVBRCBraMO0bmcgY2jhu4kgxJHhur9uIG3hu5l0IG5ow6FuaCBuw6BvICIKICJj4bqjLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NzIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkJyYW5jaCAnJXMnIGhhcyBubyB1cHN0cmVhbSBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiTmjDoW5oIOKAnCVz4oCdIGtow7RuZyBjw7MgdGjDtG5nIHRpbiB0aMaw4bujbmcgbmd14buTbiAodXBzdHJlYW0pIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk4NworIzogYnVpbHRpbi9icmFuY2guYzo5OTQKIG1zZ2lkICJpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGNyZWF0ZSAnSEVBRCcgbWFudWFsbHkiCiBtc2dzdHIgImtow7RuZyBo4bujcCBsw70ga2hpIHThuqFvIOKAnEhFQUTigJ0gdGjhu6cgY8O0bmcgIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk5MworIzogYnVpbHRpbi9icmFuY2guYzoxMDAwCiBtc2dpZCAiLWEgYW5kIC1yIG9wdGlvbnMgdG8gJ2dpdCBicmFuY2gnIGRvIG5vdCBtYWtlIHNlbnNlIHdpdGggYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiIgogImhhaSB0w7l5IGNo4buNbiAtYSB2w6AgLXIgw6FwIGThu6VuZyBjaG8gbOG7h25oIOKAnGdpdCBicmFuY2jigJ0ga2jDtG5nIGjhu6NwIGzDvSDEkeG7kWkgduG7m2kgdMOqbiAiCiAibmjDoW5oIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk5NgorIzogYnVpbHRpbi9icmFuY2guYzoxMDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgLS1zZXQtdXBzdHJlYW0gZmxhZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIENvbnNpZGVyIHVzaW5nIC0tIgpAQCAtMjk3NCw3ICszMTUxLDcgQEAKICJD4budIC0tc2V0LXVwc3RyZWFtIGLhu4sgcGjhuqNuIMSR4buRaSB2w6Agc+G6vSBi4buLIHjDs2EgYuG7jy4gTsOqbiBkw7luZyAtLXRyYWNrIGhv4bq3YyAtLXNldC0iCiAidXBzdHJlYW0tdG9cbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxMDEzCisjOiBidWlsdGluL2JyYW5jaC5jOjEwMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgpAQCAtMjk4NSwxMiArMzE2MiwxMiBAQAogIk7hur91IGLhuqFuIG114buRbiDigJwlc+KAnSB0aGVvIGTDtWkg4oCcJXPigJ0sIHRo4buxYyBoaeG7h24gbOG7h25oIHNhdTpcbiIKICJcbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxMDE0CisjOiBidWlsdGluL2JyYW5jaC5jOjEwMjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgIGdpdCBicmFuY2ggLWQgJXNcbiIKIG1zZ3N0ciAiICAgIGdpdCBicmFuY2ggLWQgJXNcbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxMDE1CisjOiBidWlsdGluL2JyYW5jaC5jOjEwMjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgIGdpdCBicmFuY2ggLS1zZXQtdXBzdHJlYW0tdG8gJXNcbiIKIG1zZ3N0ciAiICAgIGdpdCBicmFuY2ggLS1zZXQtdXBzdHJlYW0tdG8gJXNcbiIKQEAgLTMwMDgsNDQgKzMxODUsNDQgQEAKIG1zZ2lkICJOZWVkIGEgcmVwb3NpdG9yeSB0byB1bmJ1bmRsZS4iCiBtc2dzdHIgIkPhuqduIG3hu5l0IGtobyBjaOG7qWEgxJHhu4MgbcOgIGJ1bmcgbeG7mXQgYnVuZGxlLiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI4NQorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMxMgogbXNnaWQgImdpdCBjYXQtZmlsZSAoLXR8LXN8LWV8LXB8PHR5cGU+fC0tdGV4dGNvbnYpIDxvYmplY3Q+IgogbXNnc3RyICJnaXQgY2F0LWZpbGUgKC10fC1zfC1lfC1wfDxraeG7g3U+fC0tdGV4dGNvbnYpIDzEkeG7kWkgdMaw4bujbmc+IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6Mjg2CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzEzCiBtc2dpZCAiZ2l0IGNhdC1maWxlICgtLWJhdGNofC0tYmF0Y2gtY2hlY2spIDwgPGxpc3Rfb2Zfb2JqZWN0cz4iCiBtc2dzdHIgImdpdCBjYXQtZmlsZSAoLS1iYXRjaHwtLWJhdGNoLWNoZWNrKSA8IDxkYW5oLXPDoWNoLcSR4buRaS10xrDhu6NuZz4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjMKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTAKIG1zZ2lkICI8dHlwZT4gY2FuIGJlIG9uZSBvZjogYmxvYiwgdHJlZSwgY29tbWl0LCB0YWciCiBtc2dzdHIgIjxraeG7g3U+IGzDoCBt4buZdCB0cm9uZyBz4buROiBibG9iLCB0cmVlLCBjb21taXQsIHRhZyIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyNAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1MQogbXNnaWQgInNob3cgb2JqZWN0IHR5cGUiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBraeG7g3UgxJHhu5FpIHTGsOG7o25nIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MzI1CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzUyCiBtc2dpZCAic2hvdyBvYmplY3Qgc2l6ZSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGvDrWNoIHRoxrDhu5tjIMSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyNworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1NAogbXNnaWQgImV4aXQgd2l0aCB6ZXJvIHdoZW4gdGhlcmUncyBubyBlcnJvciIKIG1zZ3N0ciAidGhvw6F0IHbhu5tpIDAga2hpIGtow7RuZyBjw7MgbOG7l2kiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjgKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTUKIG1zZ2lkICJwcmV0dHktcHJpbnQgb2JqZWN0J3MgY29udGVudCIKIG1zZ3N0ciAiaW4gbuG7mWkgZHVuZyDEkeG7kWkgdMaw4bujbmcgZOG6oW5nIGThu4UgxJHhu41jIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MzMwCisjOiBidWlsdGluL2NhdC1maWxlLmM6MzU3CiBtc2dpZCAiZm9yIGJsb2Igb2JqZWN0cywgcnVuIHRleHRjb252IG9uIG9iamVjdCdzIGNvbnRlbnQiCiBtc2dzdHIgInbhu5tpIMSR4buRaSB0xrDhu6NuZyBibG9iLCBjaOG6oXkgbOG7h25oIHRleHRjb252IHRyw6puIG7hu5lpIGR1bmcgY+G7p2EgxJHhu5FpIHTGsOG7o25nIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MzMyCisjOiBidWlsdGluL2NhdC1maWxlLmM6MzU5CiBtc2dpZCAic2hvdyBpbmZvIGFuZCBjb250ZW50IG9mIG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICIiCiAiaGnhu4NuIHRo4buLIHRow7RuZyB0aW4gdsOgIG7hu5lpIGR1bmcgY+G7p2EgY8OhYyDEkeG7kWkgdMaw4bujbmcgbOG6pXkgdOG7qyDEkeG6p3UgdsOgbyB0acOqdSBjaHXhuqluIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MzM1CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzYyCiBtc2dpZCAic2hvdyBpbmZvIGFib3V0IG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyB0aMO0bmcgdGluIHbhu4EgxJHhu5FpIHTGsOG7o25nIGZlZCAgdOG7qyDEkeG6p3UgdsOgbyB0acOqdSBjaHXhuqluIgogCkBAIC0zMDcxLDEwICszMjQ4LDEwIEBACiBtc2dzdHIgIsSR4buNYyB0w6puIHThuq1wIHRpbiB04burIMSR4bqndSB2w6BvIHRpw6p1IGNodeG6qW4iCiAKICM6IGJ1aWx0aW4vY2hlY2stYXR0ci5jOjIzIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MjQKLW1zZ2lkICJpbnB1dCBwYXRocyBhcmUgdGVybWluYXRlZCBieSBhIG51bGwgY2hhcmFjdGVyIgotbXNnc3RyICJjw6FjIMSRxrDhu51uZyBk4bqrbiDEkcaw4bujYyAgbmfEg24gY8OhY2ggYuG7n2kga8O9IHThu7EgbnVsbCIKK21zZ2lkICJ0ZXJtaW5hdGUgaW5wdXQgYW5kIG91dHB1dCByZWNvcmRzIGJ5IGEgTlVMIGNoYXJhY3RlciIKK21zZ3N0ciAiY2jhuqVtIGThu6l0IGPDoWMgYuG6o24gZ2hpIHbDoG8gdsOgIHJhIGLhurFuZyBrw70gdOG7sSBOVUxMIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU0IGJ1aWx0aW4vZ2MuYzoxNzcKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTggYnVpbHRpbi9jaGVja291dC5jOjEwOTAgYnVpbHRpbi9nYy5jOjI1OQogbXNnaWQgInN1cHByZXNzIHByb2dyZXNzIHJlcG9ydGluZyIKIG1zZ3N0ciAiY2jhurduIGPDoWMgYsOhbyBjw6FvIHRp4bq/biB0csOsbmggaG/huqF0IMSR4buZbmciCiAKQEAgLTMwODIsMjcgKzMyNTksMzEgQEAKIG1zZ2lkICJzaG93IG5vbi1tYXRjaGluZyBpbnB1dCBwYXRocyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIG5o4buvbmcgxJHGsOG7nW5nIGThuqtuIMSR4bqndSB2w6BvIGtow7RuZyBraOG7m3AgduG7m2kgbeG6q3UiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQzCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjI4Cittc2dpZCAiaWdub3JlIGluZGV4IHdoZW4gY2hlY2tpbmciCittc2dzdHIgImLhu48gcXVhIG3hu6VjIGzhu6VjIGtoaSBraeG7g20gdHJhIgorCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NAogbXNnaWQgImNhbm5vdCBzcGVjaWZ5IHBhdGhuYW1lcyB3aXRoIC0tc3RkaW4iCiBtc2dzdHIgImtow7RuZyB0aOG7gyBjaOG7iSDEkeG7i25oIGPDoWMgdMOqbiDEkcaw4budbmcgZOG6q24gduG7m2kgLS1zdGRpbiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDYKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3CiBtc2dpZCAiLXogb25seSBtYWtlcyBzZW5zZSB3aXRoIC0tc3RkaW4iCiBtc2dzdHIgIi16IGNo4buJIGjhu6NwIGzDvSB24bubaSAtLXN0ZGluIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0OAorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTkKIG1zZ2lkICJubyBwYXRoIHNwZWNpZmllZCIKLW1zZ3N0ciAiY2jGsGEgZ2hpIHLDtSDEkcaw4budbmcgZOG6q24iCittc2dzdHIgImNoxrBhIGNo4buJIHJhIMSRxrDhu51uZyBk4bqrbiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTIKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTYzCiBtc2dpZCAiLS1xdWlldCBpcyBvbmx5IHZhbGlkIHdpdGggYSBzaW5nbGUgcGF0aG5hbWUiCiBtc2dzdHIgIi0tcXVpZXQgY2jhu4kgaOG7o3AgbOG7hyB24bubaSB0w6puIMSRxrDhu51uZyBk4bqrbiDEkcahbiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTQKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTY1CiBtc2dpZCAiY2Fubm90IGhhdmUgYm90aCAtLXF1aWV0IGFuZCAtLXZlcmJvc2UiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBkw7luZyBj4bqjIGhhaSB0w7l5IGNo4buNbiAtLXF1aWV0IHbDoCAtLXZlcmJvc2UiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2OAogbXNnaWQgIi0tbm9uLW1hdGNoaW5nIGlzIG9ubHkgdmFsaWQgd2l0aCAtLXZlcmJvc2UiCiBtc2dzdHIgInTDuXktY2jhu41uIC0tbm9uLW1hdGNoaW5nIGNo4buJIGjhu6NwIGzhu4cga2hpIGTDuW5nIHbhu5tpIC0tdmVyYm9zZSIKIApAQCAtMzE3NiwxMDcgKzMzNTcsMTA3IEBACiBtc2dpZCAiZ2l0IGNoZWNrb3V0IFtvcHRpb25zXSBbPGJyYW5jaD5dIC0tIDxmaWxlPi4uLiIKIG1zZ3N0ciAiZ2l0IGNoZWNrb3V0IFtjw6FjLXTDuXktY2jhu41uXSBbPG5ow6FuaD5dIC0tIDx04bqtcC10aW4+Li4uIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTQgYnVpbHRpbi9jaGVja291dC5jOjE0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBvdXIgdmVyc2lvbiIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuIOKAnCVz4oCdIGtow7RuZyBjw7MgY8OhYyBwaGnDqm4gYuG6o24gY+G7p2EgY2jDum5nIHRhIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYgYnVpbHRpbi9jaGVja291dC5jOjE0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSB0aGVpciB2ZXJzaW9uIgogbXNnc3RyICLEkcaw4budbmcgZOG6q24g4oCcJXPigJ0ga2jDtG5nIGPDsyBjw6FjIHBoacOqbiBi4bqjbiBj4bunYSBjaMO6bmciCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMzUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgYWxsIG5lY2Vzc2FyeSB2ZXJzaW9ucyIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuIOKAnCVz4oCdIGtow7RuZyBjw7MgdOG6pXQgY+G6oyBjw6FjIHBoacOqbiBi4bqjbiBj4bqnbiB0aGnhur90IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTc5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTc2CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIG5lY2Vzc2FyeSB2ZXJzaW9ucyIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuIOKAnCVz4oCdIGtow7RuZyBjw7MgY8OhYyBwaGnDqm4gYuG6o24gY+G6p24gdGhp4bq/dCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjE5NgorIzogYnVpbHRpbi9jaGVja291dC5jOjE5MwogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcyc6IGNhbm5vdCBtZXJnZSIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuIOKAnCVz4oCdOiBraMO0bmcgdGjhu4MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGFkZCBtZXJnZSByZXN1bHQgZm9yICclcyciCiBtc2dzdHIgIktow7RuZyB0aOG7gyB0aMOqbSBr4bq/dCBxdeG6oyBow7JhIHRy4buZbiBjaG8g4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzcgYnVpbHRpbi9jaGVja291dC5jOjI0MCBidWlsdGluL2NoZWNrb3V0LmM6MjQzCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjMyIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzUgYnVpbHRpbi9jaGVja291dC5jOjIzOAorIzogYnVpbHRpbi9jaGVja291dC5jOjI0MQogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggdXBkYXRpbmcgcGF0aHMiCiBtc2dzdHIgIuKAnCVz4oCdIGtow7RuZyB0aOG7gyDEkcaw4bujYyBz4butIGThu6VuZyB24bubaSBjw6FjIMSRxrDhu51uZyBk4bqrbiBj4bqtcCBuaOG6rXQiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDkgYnVpbHRpbi9jaGVja291dC5jOjI1MgorIzogYnVpbHRpbi9jaGVja291dC5jOjI0NCBidWlsdGluL2NoZWNrb3V0LmM6MjQ3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAlcyIKLW1zZ3N0ciAi4oCcJXPigJ0ga2jDtG5nIHRo4buDIMSRxrDhu6NjIHPhu60gZOG7pW5nIHbhu5tpICVzIgorbXNnc3RyICLigJwlc+KAnSBraMO0bmcgdGjhu4MgxJHGsOG7o2MgZMO5bmcgY8O5bmcgduG7m2kgJXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHVwZGF0ZSBwYXRocyBhbmQgc3dpdGNoIHRvIGJyYW5jaCAnJXMnIGF0IHRoZSBzYW1lIHRpbWUuIgogbXNnc3RyICIiCiAiS2jDtG5nIHRo4buDIGPhuq1wIG5o4bqtdCBjw6FjIMSRxrDhu51uZyBk4bqrbiB2w6AgY2h1eeG7g24gxJHhur9uIG5ow6FuaCDigJwlc+KAnSBjw7luZyBt4buZdCBsw7pjLiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjI2NiBidWlsdGluL2NoZWNrb3V0LmM6NDU4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjYxIGJ1aWx0aW4vY2hlY2tvdXQuYzo0NTEKIG1zZ2lkICJjb3JydXB0IGluZGV4IGZpbGUiCiBtc2dzdHIgInThuq1wIHRpbiBnaGkgYuG6o25nIG3hu6VjIGzhu6VjIGLhu4sgaOG7j25nIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MzI5IGJ1aWx0aW4vY2hlY2tvdXQuYzozMzYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzozMjIgYnVpbHRpbi9jaGVja291dC5jOjMyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgaXMgdW5tZXJnZWQiCiBtc2dzdHIgIsSRxrDhu51uZyBk4bqrbiDigJwlc+KAnSBraMO0bmcgxJHGsOG7o2MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo0ODAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo0NzMKIG1zZ2lkICJ5b3UgbmVlZCB0byByZXNvbHZlIHlvdXIgY3VycmVudCBpbmRleCBmaXJzdCIKIG1zZ3N0ciAiYuG6oW4gY+G6p24gcGjhuqNpIHBow6JuIGdp4bqjaSBi4bqjbmcgbeG7pWMgbOG7pWMgaGnhu4duIHThuqFpIGPhu6dhIGLhuqFuIHRyxrDhu5tjIMSRw6MiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MDEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo1OTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2FuIG5vdCBkbyByZWZsb2cgZm9yICclcydcbiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHRo4buxYyBoaeG7h24gcmVmbG9nIGNobyDigJwlc+KAnVxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjM5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjMyCiBtc2dpZCAiSEVBRCBpcyBub3cgYXQiCiBtc2dzdHIgIkhFQUQgaGnhu4duIGdp4budIHThuqFpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjM5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlc2V0IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIsSQ4bq3dCBs4bqhaSBuaMOhbmgg4oCcJXPigJ1cbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0OQorIzogYnVpbHRpbi9jaGVja291dC5jOjY0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJBbHJlYWR5IG9uICclcydcbiIKIG1zZ3N0ciAixJDDoyBz4bq1biBzw6BuZyB0csOqbiDigJwlc+KAnVxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGFuZCByZXNldCBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICLEkMOjIGNodXnhu4NuIHThu5tpIHbDoCByZXNldCBuaMOhbmgg4oCcJXPigJ1cbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1NSBidWlsdGluL2NoZWNrb3V0LmM6OTk3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGEgbmV3IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIsSQw6MgY2h1eeG7g24gxJHhur9uIG5ow6FuaCBt4bubaSDigJwlc+KAnVxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjU3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIsSQw6MgY2h1eeG7g24gxJHhur9uIG5ow6FuaCDigJwlc+KAnVxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzEzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzA2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAuLi4gYW5kICVkIG1vcmUuXG4iCiBtc2dzdHIgIiAuLi4gdsOgIG5oaeG7gXUgaMahbiAlZC5cbiIKIAogIy4gVGhlIHNpbmd1bGFyIHZlcnNpb24KLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIldhcm5pbmc6IHlvdSBhcmUgbGVhdmluZyAlZCBjb21taXQgYmVoaW5kLCBub3QgY29ubmVjdGVkIHRvXG4iCkBAIC0zMzAxLDcgKzM0ODIsNyBAQAogIlxuIgogIiVzXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MzcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIklmIHlvdSB3YW50IHRvIGtlZXAgdGhlbSBieSBjcmVhdGluZyBhIG5ldyBicmFuY2gsIHRoaXMgbWF5IGJlIGEgZ29vZCB0aW1lXG4iCkBAIC0zMzE3LDEzOCArMzQ5OCwxNDIgQEAKICIgZ2l0IGJyYW5jaCB0w6puX25ow6FuaF9t4bubaSAlc1xuIgogIlxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzY3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzYwCiBtc2dpZCAiaW50ZXJuYWwgZXJyb3IgaW4gcmV2aXNpb24gd2FsayIKIG1zZ3N0ciAibOG7l2kgbuG7mWkgYuG7mSB0cm9uZyBraGkgZGkgY2h1eeG7g24gcXVhIGPDoWMgxJFp4buDbSB4w6l0IGR1eeG7h3QiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NzEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjQKIG1zZ2lkICJQcmV2aW91cyBIRUFEIHBvc2l0aW9uIHdhcyIKIG1zZ3N0ciAiVuG7iyB0csOtIGvhur8gdHLGsOG7m2MgY+G7p2EgSEVBRCBsw6AiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTggYnVpbHRpbi9jaGVja291dC5jOjk5MgorIzogYnVpbHRpbi9jaGVja291dC5jOjc5MSBidWlsdGluL2NoZWNrb3V0LmM6MTAyOAogbXNnaWQgIllvdSBhcmUgb24gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgIkLhuqFuIHThuqFpIG5ow6FuaCBtw6AgbsOzIGNoxrBhIGjhu4EgxJHGsOG7o2Mgc2luaCByYSIKIAotIy4gY2FzZSAoMSkKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MjgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAib25seSBvbmUgcmVmZXJlbmNlIGV4cGVjdGVkLCAlZCBnaXZlbi4iCittc2dzdHIgImNo4buJIGPhuqduIG3hu5l0IHRoYW0gY2hp4bq/dSwgbmjGsG5nIGzhuqFpIMSRxrBhIHJhICVkLiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjk3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHJlZmVyZW5jZTogJXMiCiBtc2dzdHIgInRoYW0gY2hp4bq/dSBzYWk6ICVzIgogCiAjLiBjYXNlICgxKTogd2FudCBhIHRyZWUKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5NjcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSBpcyBub3QgYSB0cmVlOiAlcyIKIG1zZ3N0ciAidGhhbSBjaGnhur91IGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IGPDonkgKHRyZWUpOiVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwNgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDIKIG1zZ2lkICJwYXRocyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKIG1zZ3N0ciAiY8OhYyDEkcaw4budbmcgZOG6q24ga2jDtG5nIHRo4buDIGTDuW5nIGPDuW5nIHbhu5tpIGPDoWMgbmjDoW5oIGNodXnhu4NuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwOSBidWlsdGluL2NoZWNrb3V0LmM6MTAxMworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDUgYnVpbHRpbi9jaGVja291dC5jOjEwNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKIG1zZ3N0ciAi4oCcJXPigJ0ga2jDtG5nIHRo4buDIMSRxrDhu6NjIHPhu60gZOG7pW5nIHbhu5tpIGPDoWMgbmjDoW5oIGNodXnhu4NuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAxNyBidWlsdGluL2NoZWNrb3V0LmM6MTAyMCBidWlsdGluL2NoZWNrb3V0LmM6MTAyNQotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMjgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU2IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NAogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggJyVzJyIKIG1zZ3N0ciAi4oCcJXPigJ0ga2jDtG5nIHRo4buDIMSRxrDhu6NjIHPhu60gZOG7pW5nIHbhu5tpIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAzMworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHN3aXRjaCBicmFuY2ggdG8gYSBub24tY29tbWl0ICclcyciCiBtc2dzdHIgIktow7RuZyB0aOG7gyBjaHV54buDbiBuaMOhbmggxJHhur9uIG3hu5l0IG5vbi1jb21taXQg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU3IGJ1aWx0aW4vY2xvbmUuYzo4OQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTEgYnVpbHRpbi9jaGVja291dC5jOjEwOTMgYnVpbHRpbi9jbG9uZS5jOjg4CiAjOiBidWlsdGluL3JlbW90ZS5jOjE2OSBidWlsdGluL3JlbW90ZS5jOjE3MQogbXNnaWQgImJyYW5jaCIKIG1zZ3N0ciAibmjDoW5oIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTIKIG1zZ2lkICJjcmVhdGUgYW5kIGNoZWNrb3V0IGEgbmV3IGJyYW5jaCIKIG1zZ3N0ciAidOG6oW8gdsOgIGNoZWNrb3V0IG3hu5l0IG5ow6FuaCBt4bubaSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDk0CiBtc2dpZCAiY3JlYXRlL3Jlc2V0IGFuZCBjaGVja291dCBhIGJyYW5jaCIKIG1zZ3N0ciAiY3JlYXRlL3Jlc2V0IHbDoCBjaGVja291dCBt4buZdCBuaMOhbmgiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5NQogbXNnaWQgImNyZWF0ZSByZWZsb2cgZm9yIG5ldyBicmFuY2giCiBtc2dzdHIgInThuqFvIHJlZmxvZyBjaG8gbmjDoW5oIG3hu5tpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTYKIG1zZ2lkICJkZXRhY2ggdGhlIEhFQUQgYXQgbmFtZWQgY29tbWl0IgogbXNnc3RyICJy4budaSBi4buPIEhFQUQgdOG6oWkgbOG6p24gY2h1eeG7g24gZ2lhbyBkYW5oIG5naMSpYSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDk3CiBtc2dpZCAic2V0IHVwc3RyZWFtIGluZm8gZm9yIG5ldyBicmFuY2giCiBtc2dzdHIgIsSR4bq3dCB0aMO0bmcgdGluIHRoxrDhu6NuZyBuZ3Xhu5NuICh1cHN0cmVhbSkgY2hvIG5ow6FuaCBt4bubaSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDk5CiBtc2dpZCAibmV3IGJyYW5jaCIKIG1zZ3N0ciAibmjDoW5oIG3hu5tpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTkKIG1zZ2lkICJuZXcgdW5wYXJlbnRlZCBicmFuY2giCiBtc2dzdHIgIm5ow6FuaCBt4buTIGPDtGkgbeG7m2kiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwMAogbXNnaWQgImNoZWNrb3V0IG91ciB2ZXJzaW9uIGZvciB1bm1lcmdlZCBmaWxlcyIKIG1zZ3N0ciAiIgogImzhuqV5IHJhIChjaGVja291dCkgcGhpw6puIGLhuqNuIGPhu6dhIGNow7puZyB0YSBjaG8gY8OhYyB04bqtcCB0aW4gY2jGsGEgxJHGsOG7o2MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwMgogbXNnaWQgImNoZWNrb3V0IHRoZWlyIHZlcnNpb24gZm9yIHVubWVyZ2VkIGZpbGVzIgogbXNnc3RyICIiCiAibOG6pXkgcmEgKGNoZWNrb3V0KSBwaGnDqm4gYuG6o24gY+G7p2EgY2jDum5nIGjhu40gY2hvIGPDoWMgdOG6rXAgdGluIGNoxrBhIMSRxrDhu6NjIGjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2OAorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDQKIG1zZ2lkICJmb3JjZSBjaGVja291dCAodGhyb3cgYXdheSBsb2NhbCBtb2RpZmljYXRpb25zKSIKIG1zZ3N0ciAiw6lwIGJ14buZYyBs4bqleSByYSAoY2hlY2tvdXQpIChi4buPIMSRaSBuaOG7r25nIHRoYXkgxJHhu5VpIG7hu5lpIGLhu5kpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2OQorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDUKIG1zZ2lkICJwZXJmb3JtIGEgMy13YXkgbWVyZ2Ugd2l0aCB0aGUgbmV3IGJyYW5jaCIKIG1zZ3N0ciAidGjhu7FjIGhp4buHbiBow7JhIHRy4buZbiBraeG7g3UgMy13YXkgduG7m2kgbmjDoW5oIG3hu5tpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MCBidWlsdGluL21lcmdlLmM6MjMyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwNiBidWlsdGluL21lcmdlLmM6MjMyCiBtc2dpZCAidXBkYXRlIGlnbm9yZWQgZmlsZXMgKGRlZmF1bHQpIgogbXNnc3RyICJj4bqtcCBuaOG6rXQgY8OhYyB04bqtcCB0aW4gYuG7iyBi4buPIHF1YSAobeG6t2MgxJHhu4tuaCkiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcxIGJ1aWx0aW4vbG9nLmM6MTIwOCBwYXJzZS1vcHRpb25zLmg6MjQ5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwNyBidWlsdGluL2xvZy5jOjEyMjggcGFyc2Utb3B0aW9ucy5oOjI1MQogbXNnaWQgInN0eWxlIgogbXNnc3RyICJraeG7g3UiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwOAogbXNnaWQgImNvbmZsaWN0IHN0eWxlIChtZXJnZSBvciBkaWZmMykiCiBtc2dzdHIgInh1bmcgxJHhu5l0IGtp4buDdSAoaMOyYSB0cuG7mW4gaGF5IGRpZmYzKSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTExCiBtc2dpZCAiZG8gbm90IGxpbWl0IHBhdGhzcGVjcyB0byBzcGFyc2UgZW50cmllcyBvbmx5IgogbXNnc3RyICJraMO0bmcgZ2nhu5tpIGjhuqFuIHBhdGhzcGVjcyBjaOG7iSB0aMOgbmggY8OhYyBt4bulYyB0aMawYSB0aOG7m3QiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDc3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTExMwogbXNnaWQgInNlY29uZCBndWVzcyAnZ2l0IGNoZWNrb3V0IG5vLXN1Y2gtYnJhbmNoJyIKIG1zZ3N0ciAiZ+G7o2kgw70gdGjhu6kgaGFpIOKAnGdpdCBjaGVja291dCBraMO0bmctbmjDoW5oLW7DoG8tbmjGsC124bqteeKAnSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMDEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTM2CiBtc2dpZCAiLWIsIC1CIGFuZCAtLW9ycGhhbiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgotbXNnc3RyICJUw7l5IGNo4buNbiAtYnwtQiB2w6AgLS1vcnBoYW4gbG/huqFpIHThu6sgbOG6q24gbmhhdSIKK21zZ3N0ciAiVMO5eSBjaOG7jW4gLWIsIC1CIHbDoCAtLW9ycGhhbiBsb+G6oWkgdOG7qyBs4bqrbiBuaGF1IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTExOAorIzogYnVpbHRpbi9jaGVja291dC5jOjExNTMKIG1zZ2lkICItLXRyYWNrIG5lZWRzIGEgYnJhbmNoIG5hbWUiCiBtc2dzdHIgIi0tdHJhY2sgY+G6p24gdMOqbiBt4buZdCBuaMOhbmgiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTI1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2MAogbXNnaWQgIk1pc3NpbmcgYnJhbmNoIG5hbWU7IHRyeSAtYiIKIG1zZ3N0ciAiVGhp4bq/dSB0w6puIG5ow6FuaDsgaMOjeSB0aOG7rSAtYiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNjAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTk3CiBtc2dpZCAiaW52YWxpZCBwYXRoIHNwZWNpZmljYXRpb24iCiBtc2dzdHIgIsSRxrDhu51uZyBk4bqrbiDEkcOjIGNobyBraMO0bmcgaOG7o3AgbOG7hyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNjcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMjA0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDYW5ub3QgdXBkYXRlIHBhdGhzIGFuZCBzd2l0Y2ggdG8gYnJhbmNoICclcycgYXQgdGhlIHNhbWUgdGltZS5cbiIKQEAgLTM0NTgsMTIgKzM2NDMsMTIgQEAKICJC4bqhbiDEkcOjIGPDsyDDvSDEkeG7i25oIGNoZWNrb3V0IOKAnCVz4oCdIGPDoWkgbcOgIGtow7RuZyB0aOG7gyDEkcaw4bujYyBwaMOibiBnaeG6o2kgbmjGsCBsw6AgbOG6p24gIgogImNodXnhu4NuIGdpYW8gKGNvbW1pdCk/IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3MgorIzogYnVpbHRpbi9jaGVja291dC5jOjEyMDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IGNoZWNrb3V0OiAtLWRldGFjaCBkb2VzIG5vdCB0YWtlIGEgcGF0aCBhcmd1bWVudCAnJXMnIgogbXNnc3RyICJnaXQgY2hlY2tvdXQ6IC0tZGV0YWNoIGtow7RuZyBuaOG6rW4gbeG7mXQgxJHhu5FpIHPhu5EgxJHGsOG7nW5nIGThuqtuIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3NgorIzogYnVpbHRpbi9jaGVja291dC5jOjEyMTMKIG1zZ2lkICIiCiAiZ2l0IGNoZWNrb3V0OiAtLW91cnMvLS10aGVpcnMsIC0tZm9yY2UgYW5kIC0tbWVyZ2UgYXJlIGluY29tcGF0aWJsZSB3aGVuXG4iCiAiY2hlY2tpbmcgb3V0IG9mIHRoZSBpbmRleC4iCkBAIC0zNDcxLDM4ICszNjU2LDM4IEBACiAiZ2l0IGNoZWNrb3V0OiAtLW91cnMvLS10aGVpcnMsIC0tZm9yY2UgdsOgIC0tbWVyZ2UgbMOgIHh1bmcga2jhuq9jIHbhu5tpIG5oYXUga2hpXG4iCiAiY2hlY2tvdXQgYuG6o25nIG3hu6VjIGzhu6VjIChpbmRleCkuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjUKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyNgogbXNnaWQgIiIKICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstaV0gWy1uXSBbLXFdIFstZSA8cGF0dGVybj5dIFsteCB8IC1YXSBbLS1dIDxwYXRocz4uLi4iCiBtc2dzdHIgIiIKICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstaV0gWy1uXSBbLXFdIFstZSA8beG6q3U+XSBbLXggfCAtWF0gWy0tXSA8xJHGsOG7nW5nLWThuqtuPi4uLiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI5CisjOiBidWlsdGluL2NsZWFuLmM6MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3ZpbmcgJXNcbiIKIG1zZ3N0ciAixJBhbmcgZ+G7oSBi4buPICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzozMAorIzogYnVpbHRpbi9jbGVhbi5jOjMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvdWxkIHJlbW92ZSAlc1xuIgogbXNnc3RyICJDw7MgdGjhu4MgZ+G7oSBi4buPICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzozMQorIzogYnVpbHRpbi9jbGVhbi5jOjMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNraXBwaW5nIHJlcG9zaXRvcnkgJXNcbiIKIG1zZ3N0ciAixJBhbmcgYuG7jyBxdWEga2hvIGNo4bupYSAlc1xuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MzIKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMwogIywgYy1mb3JtYXQKIG1zZ2lkICJXb3VsZCBza2lwIHJlcG9zaXRvcnkgJXNcbiIKIG1zZ3N0ciAiTsOqbiBi4buPIHF1YSBraG8gY2jhu6lhICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzozMworIzogYnVpbHRpbi9jbGVhbi5jOjM0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byByZW1vdmUgJXMiCiBtc2dzdHIgImfhurdwIGzhu5dpIGtoaSBn4buhIGLhu48gJXMiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyOTMKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTQKIG1zZ2lkICIiCiAiUHJvbXB0IGhlbHA6XG4iCiAiMSAgICAgICAgICAtIHNlbGVjdCBhIG51bWJlcmVkIGl0ZW1cbiIKQEAgLTM1MTQsNyArMzY5OSw3IEBACiAiZm9vICAgICAgICAtIGNo4buNbiBt4bulYyB0csOqbiBjxqEgc+G7nyB0aeG7gW4gdOG7kSBkdXkgbmjhuqV0XG4iCiAiICAgICAgICAgICAtICh0cuG7kW5nIHLhu5duZykga2jDtG5nIGNo4buNbiBnw6wgY+G6oyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI5NworIzogYnVpbHRpbi9jbGVhbi5jOjI5OAogbXNnaWQgIiIKICJQcm9tcHQgaGVscDpcbiIKICIxICAgICAgICAgIC0gc2VsZWN0IGEgc2luZ2xlIGl0ZW1cbiIKQEAgLTM1MzQsMzUgKzM3MTksMzUgQEAKICIqICAgICAgICAgIC0gY2jhu41uIHThuqV0XG4iCiAiICAgICAgICAgICAtICh0cuG7kW5nIHLhu5duZykga+G6v3QgdGjDumMgdmnhu4djIGNo4buNbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjUxNQorIzogYnVpbHRpbi9jbGVhbi5jOjUxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJIdWggKCVzKT8iCiBtc2dzdHIgIkjhuqMgKCVzKT8iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo2NTgKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2NTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW5wdXQgaWdub3JlIHBhdHRlcm5zPj4gIgogbXNnc3RyICJN4bqrdSDEkeG7gyBs4buNYyBjw6FjIHThuq1wIHRpbiBj4bqnbiBs4budIMSRaSDEkeG6p3UgdsOgbz4+IgogCi0jOiBidWlsdGluL2NsZWFuLmM6Njk1CisjOiBidWlsdGluL2NsZWFuLmM6Njk2CiAjLCBjLWZvcm1hdAogbXNnaWQgIldBUk5JTkc6IENhbm5vdCBmaW5kIGl0ZW1zIG1hdGNoZWQgYnk6ICVzIgogbXNnc3RyICJD4bqiTkggQsOBTzogS2jDtG5nIHTDrG0gdGjhuqV5IGPDoWMgbeG7pWMgxJHGsOG7o2Mga2jhu5twIGLhu59pOiAlcyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjcxNgorIzogYnVpbHRpbi9jbGVhbi5jOjcxNwogbXNnaWQgIlNlbGVjdCBpdGVtcyB0byBkZWxldGUiCiBtc2dzdHIgIkNo4buNbiBt4bulYyBtdeG7kW4geMOzYSIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjc1NgorIzogYnVpbHRpbi9jbGVhbi5jOjc1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW1vdmUgJXM/ICIKIG1zZ3N0ciAiZ+G7oSBi4buPIOKAnCVz4oCdPyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjc4MQorIzogYnVpbHRpbi9jbGVhbi5jOjc4MgogbXNnaWQgIkJ5ZS4iCiBtc2dzdHIgIlThuqFtIGJp4buHdC4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo3ODkKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3OTAKIG1zZ2lkICIiCiAiY2xlYW4gICAgICAgICAgICAgICAtIHN0YXJ0IGNsZWFuaW5nXG4iCiAiZmlsdGVyIGJ5IHBhdHRlcm4gICAtIGV4Y2x1ZGUgaXRlbXMgZnJvbSBkZWxldGlvblxuIgpAQCAtMzU4MCwyMSArMzc2NSwyMSBAQAogImhlbHAgICAgICAgICAgICAgICAgLSBoaeG7g24gdGjhu4sgY2jDrW5oIHRy4bujIGdpw7pwIG7DoHlcbiIKICI/ICAgICAgICAgICAgICAgICAgIC0gdHLhu6MgZ2nDunAgZMOgbmggY2hvIGNo4buNbiBi4bqxbmcgY8OhY2ggbmjhuq9jIgogCi0jOiBidWlsdGluL2NsZWFuLmM6ODE2CisjOiBidWlsdGluL2NsZWFuLmM6ODE3CiBtc2dpZCAiKioqIENvbW1hbmRzICoqKiIKIG1zZ3N0ciAiKioqIEzhu4duaCAqKioiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo4MTcKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4MTgKIG1zZ2lkICJXaGF0IG5vdyIKIG1zZ3N0ciAiR2nhu50gdGjDrCBzYW8iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo4MjUKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4MjYKIG1zZ2lkICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtOiIKIG1zZ2lkX3BsdXJhbCAiV291bGQgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgaXRlbXM6IgogbXNnc3RyWzBdICJDw7MgbXXhu5FuIGfhu6EgYuG7jyBt4bulYyBzYXUgxJHDonkga2jDtG5nOiIKIG1zZ3N0clsxXSAiQ8OzIG114buRbiBn4buhIGLhu48gY8OhYyBt4bulYyBzYXUgxJHDonkga2jDtG5nOiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjg0MgorIzogYnVpbHRpbi9jbGVhbi5jOjg0MwogbXNnaWQgIk5vIG1vcmUgZmlsZXMgdG8gY2xlYW4sIGV4aXRpbmcuIgogbXNnc3RyICJLaMO0bmcgY8OybiB04bqtcC10aW4gbsOgbyDEkeG7gyBk4buNbiBk4bq5cCwgxJFhbmcgdGhvw6F0IHJhLiIKIApAQCAtMzYxNCw4ICszNzk5LDggQEAKIG1zZ2lkICJyZW1vdmUgd2hvbGUgZGlyZWN0b3JpZXMiCiBtc2dzdHIgImfhu6EgYuG7jyB0b8OgbiBi4buZIHRoxrAgbeG7pWMiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo4ODAgYnVpbHRpbi9kZXNjcmliZS5jOjQyMCBidWlsdGluL2dyZXAuYzo3MTYKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMgYnVpbHRpbi9uYW1lLXJldi5jOjMxNSBidWlsdGluL3Nob3ctcmVmLmM6MTg2CisjOiBidWlsdGluL2NsZWFuLmM6ODgwIGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjAgYnVpbHRpbi9ncmVwLmM6NzE4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgzIGJ1aWx0aW4vbmFtZS1yZXYuYzozMTUgYnVpbHRpbi9zaG93LXJlZi5jOjE4NQogbXNnaWQgInBhdHRlcm4iCiBtc2dzdHIgIm3huqt1IgogCkBAIC0zNjU1LDggKzM4NDAsOCBAQAogbXNnaWQgImdpdCBjbG9uZSBbb3B0aW9uc10gWy0tXSA8cmVwbz4gWzxkaXI+XSIKIG1zZ3N0ciAiZ2l0IGNsb25lIFtjw6FjLXTDuXktY2jhu41uXSBbLS1dIDxraG8+IFs8dC5t4bulYz5dIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjQgYnVpbHRpbi9mZXRjaC5jOjgyIGJ1aWx0aW4vbWVyZ2UuYzoyMjkKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ2MgorIzogYnVpbHRpbi9jbG9uZS5jOjY0IGJ1aWx0aW4vZmV0Y2guYzo5NiBidWlsdGluL21lcmdlLmM6MjI5CisjOiBidWlsdGluL3B1c2guYzo0NzQKIG1zZ2lkICJmb3JjZSBwcm9ncmVzcyByZXBvcnRpbmciCiBtc2dzdHIgIsOpcCBideG7mWMgYsOhbyBjw6FvIHRp4bq/biB0csOsbmgiCiAKQEAgLTM2NjYsMTI1ICszODUxLDEyNSBAQAogCiAjOiBidWlsdGluL2Nsb25lLmM6NjcgYnVpbHRpbi9jbG9uZS5jOjY5IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4OAogbXNnaWQgImNyZWF0ZSBhIGJhcmUgcmVwb3NpdG9yeSIKLW1zZ3N0ciAidOG6oW8ga2hvIGNo4bupYSBiYXJlIgorbXNnc3RyICJ04bqhbyBraG8gdGh14bqnbiAoYmFyZSkiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3MgorIzogYnVpbHRpbi9jbG9uZS5jOjcxCiBtc2dpZCAiY3JlYXRlIGEgbWlycm9yIHJlcG9zaXRvcnkgKGltcGxpZXMgYmFyZSkiCiBtc2dzdHIgInThuqFvIGtobyBi4bqjbiBzYW8gKG1pcnJvcikgKG5n4bulIMO9IGzDoCBiYXJlKSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc0CisjOiBidWlsdGluL2Nsb25lLmM6NzMKIG1zZ2lkICJ0byBjbG9uZSBmcm9tIGEgbG9jYWwgcmVwb3NpdG9yeSIKIG1zZ3N0ciAixJHhu4MgbmjDom4gYuG6o24gdOG7qyBraG8gbuG7mWkgYuG7mSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc2CisjOiBidWlsdGluL2Nsb25lLmM6NzUKIG1zZ2lkICJkb24ndCB1c2UgbG9jYWwgaGFyZGxpbmtzLCBhbHdheXMgY29weSIKIG1zZ3N0ciAia2jDtG5nIHPhu60gZOG7pW5nIGxpw6puIGvhur90IGPhu6luZyBu4buZaSBi4buZLCBsdcO0biBzYW8gY2jDqXAiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OAorIzogYnVpbHRpbi9jbG9uZS5jOjc3CiBtc2dpZCAic2V0dXAgYXMgc2hhcmVkIHJlcG9zaXRvcnkiCiBtc2dzdHIgImPDoGkgxJHhurd0IMSRw6J5IGzDoCBraG8gY2hpYSBz4bq7IgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODAgYnVpbHRpbi9jbG9uZS5jOjgyCisjOiBidWlsdGluL2Nsb25lLmM6NzkgYnVpbHRpbi9jbG9uZS5jOjgxCiBtc2dpZCAiaW5pdGlhbGl6ZSBzdWJtb2R1bGVzIGluIHRoZSBjbG9uZSIKIG1zZ3N0ciAia2jhu59pIHThuqFvIG3DtC3EkXVuLWNvbiB0cm9uZyBi4bqjbiBzYW8iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MyBidWlsdGluL2luaXQtZGIuYzo0ODUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MiBidWlsdGluL2luaXQtZGIuYzo0ODUKIG1zZ2lkICJ0ZW1wbGF0ZS1kaXJlY3RvcnkiCiBtc2dzdHIgInRoxrAtbeG7pWMtdOG6oW0iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NCBidWlsdGluL2luaXQtZGIuYzo0ODYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MyBidWlsdGluL2luaXQtZGIuYzo0ODYKIG1zZ2lkICJkaXJlY3RvcnkgZnJvbSB3aGljaCB0ZW1wbGF0ZXMgd2lsbCBiZSB1c2VkIgogbXNnc3RyICJ0aMawIG3hu6VjIG3DoCB04bqhaSDEkcOzIGPDoWMgbeG6q3Ugc+G6vSDEkcaw4bujYyBkw7luZyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg2CisjOiBidWlsdGluL2Nsb25lLmM6ODUKIG1zZ2lkICJyZWZlcmVuY2UgcmVwb3NpdG9yeSIKIG1zZ3N0ciAia2hvIHRoYW0gY2hp4bq/dSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg3IGJ1aWx0aW4vY29sdW1uLmM6MjYgYnVpbHRpbi9tZXJnZS1maWxlLmM6NDQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NiBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0CiBtc2dpZCAibmFtZSIKIG1zZ3N0ciAidMOqbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg4CisjOiBidWlsdGluL2Nsb25lLmM6ODcKIG1zZ2lkICJ1c2UgPG5hbWU+IGluc3RlYWQgb2YgJ29yaWdpbicgdG8gdHJhY2sgdXBzdHJlYW0iCiBtc2dzdHIgImTDuW5nIDx0w6puPiB0aGF5IHbDrCDigJxvcmlnaW7igJ0gxJHhu4MgdGhlbyBkw7VpIHRoxrDhu6NuZyBuZ3Xhu5NuICh1cHRyZWFtKSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkwCisjOiBidWlsdGluL2Nsb25lLmM6ODkKIG1zZ2lkICJjaGVja291dCA8YnJhbmNoPiBpbnN0ZWFkIG9mIHRoZSByZW1vdGUncyBIRUFEIgogbXNnc3RyICJs4bqleSByYSBuaMOhbmggKGNoZWNrb3V0IDxuaMOhbmg+KSB0aGF5IHbDrCBIRUFEIGPhu6dhIG3DoXkgY2jhu6ciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MgorIzogYnVpbHRpbi9jbG9uZS5jOjkxCiBtc2dpZCAicGF0aCB0byBnaXQtdXBsb2FkLXBhY2sgb24gdGhlIHJlbW90ZSIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuIMSR4bq/biBnaXQtdXBsb2FkLXBhY2sgdHLDqm4gbcOheSBjaOG7pyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkzIGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MiBidWlsdGluL2ZldGNoLmM6OTcgYnVpbHRpbi9ncmVwLmM6NjYzCiBtc2dpZCAiZGVwdGgiCiBtc2dzdHIgIsSR4buZIHPDonUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NAorIzogYnVpbHRpbi9jbG9uZS5jOjkzCiBtc2dpZCAiY3JlYXRlIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGF0IGRlcHRoIgogbXNnc3RyICJ04bqhbyBi4bqjbiBzYW8ga2jDtG5nIMSR4bqneSDEkeG7pyBjaG8gbeG7qWMgc8OidSDEkcOjIGNobyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk2CisjOiBidWlsdGluL2Nsb25lLmM6OTUKIG1zZ2lkICJjbG9uZSBvbmx5IG9uZSBicmFuY2gsIEhFQUQgb3IgLS1icmFuY2giCiBtc2dzdHIgIm5ow6JuIGLhuqNuIChjbG9uZSkgY2jhu4kgbeG7mXQgbmjDoW5oLCBIRUFEIGhv4bq3YyAtLWJyYW5jaCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk3IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAorIzogYnVpbHRpbi9jbG9uZS5jOjk2IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAogbXNnaWQgImdpdGRpciIKIG1zZ3N0ciAiZ2l0ZGlyIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTggYnVpbHRpbi9pbml0LWRiLmM6NDk1CisjOiBidWlsdGluL2Nsb25lLmM6OTcgYnVpbHRpbi9pbml0LWRiLmM6NDk1CiBtc2dpZCAic2VwYXJhdGUgZ2l0IGRpciBmcm9tIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAia2jDtG5nIGTDuW5nIGNodW5nIHRoxrAgbeG7pWMgZMOgbmggcmnDqm5nIGNobyBnaXQgdsOgIHRoxrAgbeG7pWMgbMOgbSB2aeG7h2MiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5OQorIzogYnVpbHRpbi9jbG9uZS5jOjk4CiBtc2dpZCAia2V5PXZhbHVlIgogbXNnc3RyICJraMOzYT1nacOhIHRy4buLIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAwCisjOiBidWlsdGluL2Nsb25lLmM6OTkKIG1zZ2lkICJzZXQgY29uZmlnIGluc2lkZSB0aGUgbmV3IHJlcG9zaXRvcnkiCiBtc2dzdHIgIsSR4bq3dCBj4bqldSBow6xuaCBiw6puIHRyb25nIG3hu5l0IGtobyBjaOG7qWEgbeG7m2kiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzoyNTMKKyM6IGJ1aWx0aW4vY2xvbmUuYzoyNTIKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkgJyVzJyBpcyBub3QgYSBsb2NhbCByZXBvc2l0b3J5LiIKIG1zZ3N0ciAia2hvIHRoYW0gY2hp4bq/dSDigJwlc+KAnSBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCBraG8gbuG7mWkgYuG7mS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMTYKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAidOG6oW8gdGjGsCBt4bulYyBcIiVzXCIgZ+G6t3AgbOG7l2kiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMTggYnVpbHRpbi9kaWZmLmM6NzcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTcgYnVpbHRpbi9kaWZmLmM6NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN0YXQgJyVzJyIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kgc3RhdCAobOG6pXkgdHLhuqFuZyB0aMOhaSB24buBKSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMyMAorIzogYnVpbHRpbi9jbG9uZS5jOjMxOQogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBleGlzdHMgYW5kIGlzIG5vdCBhIGRpcmVjdG9yeSIKIG1zZ3N0ciAiJXMgdOG7k24gdOG6oWkgbmjGsG5nIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IHRoxrAgbeG7pWMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMzQKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN0YXQgJXNcbiIKIG1zZ3N0ciAibOG7l2kgc3RhdCAobOG6pXkgdHLhuqFuZyB0aMOhaSB24buBKSAlc1xuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzU2CisjOiBidWlsdGluL2Nsb25lLmM6MzU1CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgbGluayAnJXMnIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgdOG6oW8gxJHGsOG7o2MgbGnDqm4ga+G6v3QgbeG7gW0gJXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNjAKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNvcHkgZmlsZSB0byAnJXMnIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgY2jDqXAgdOG6rXAgdGluIHThu5tpIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzgzCisjOiBidWlsdGluL2Nsb25lLmM6MzgyIGJ1aWx0aW4vY2xvbmUuYzo1NTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZG9uZS5cbiIKIG1zZ3N0ciAiaG/DoG4gdOG6pXQuXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozOTYKKyM6IGJ1aWx0aW4vY2xvbmUuYzozOTUKIG1zZ2lkICIiCiAiQ2xvbmUgc3VjY2VlZGVkLCBidXQgY2hlY2tvdXQgZmFpbGVkLlxuIgogIllvdSBjYW4gaW5zcGVjdCB3aGF0IHdhcyBjaGVja2VkIG91dCB3aXRoICdnaXQgc3RhdHVzJ1xuIgpAQCAtMzc5NCwxMDQgKzM5NzksOTkgQEAKICJC4bqhbiBraeG7g20gdHJhIGvhu7kgeGVtIGPDoWkgZ8OsIMSRxrDhu6NjIGzhuqV5IHJhIGLhurFuZyBs4buHbmgg4oCcZ2l0IHN0YXR1c+KAnVxuIgogInbDoCB0aOG7rSBjaGVja291dCB24bubaSBs4buHbmgg4oCcZ2l0IGNoZWNrb3V0IC1mIEhFQUTigJ1cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjQ3NQorIzogYnVpbHRpbi9jbG9uZS5jOjQ3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmluZCByZW1vdGUgYnJhbmNoICVzIHRvIGNsb25lLiIKIG1zZ3N0ciAiS2jDtG5nIHTDrG0gdGjhuqV5IG5ow6FuaCBtw6F5IGNo4bunICVzIMSR4buDIG5ow6JuIGLhuqNuIChjbG9uZSkuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NTU1CisjOiBidWlsdGluL2Nsb25lLmM6NTU0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoZWNraW5nIGNvbm5lY3Rpdml0eS4uLiAiCiBtc2dzdHIgIsSQYW5nIGtp4buDbSB0cmEga+G6v3QgbuG7kWkuLi4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo1NTgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTcKIG1zZ2lkICJyZW1vdGUgZGlkIG5vdCBzZW5kIGFsbCBuZWNlc3Nhcnkgb2JqZWN0cyIKIG1zZ3N0ciAibcOheSBjaOG7pyDEkcOjIGtow7RuZyBn4butaSB04bqldCBj4bqjIGPDoWMgxJHhu5FpIHTGsOG7o25nIGPhuqduIHRoaeG6v3QiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo1NjAKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiZG9uZVxuIgotbXNnc3RyICJ4b25nLlxuIgotCi0jOiBidWlsdGluL2Nsb25lLmM6NjIxCisjOiBidWlsdGluL2Nsb25lLmM6NjIwCiBtc2dpZCAicmVtb3RlIEhFQUQgcmVmZXJzIHRvIG5vbmV4aXN0ZW50IHJlZiwgdW5hYmxlIHRvIGNoZWNrb3V0LlxuIgogbXNnc3RyICJyZWZlcnMgSEVBRCBtw6F5IGNo4bunICBjaOG7iSDEkeG6v24gcmVmIGtow7RuZyB04buTbiB04bqhaSwga2jDtG5nIHRo4buDIGNoZWNrb3V0LlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjUyCisjOiBidWlsdGluL2Nsb25lLmM6NjUxCiBtc2dpZCAidW5hYmxlIHRvIGNoZWNrb3V0IHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGzhuqV5IHJhIChjaGVja291dCkgY8OieSBsw6BtIHZp4buHYyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc2MAorIzogYnVpbHRpbi9jbG9uZS5jOjc1OQogbXNnaWQgIlRvbyBtYW55IGFyZ3VtZW50cy4iCiBtc2dzdHIgIkPDsyBxdcOhIG5oaeG7gXUgxJHhu5FpIHPhu5EuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzY0CisjOiBidWlsdGluL2Nsb25lLmM6NzYzCiBtc2dpZCAiWW91IG11c3Qgc3BlY2lmeSBhIHJlcG9zaXRvcnkgdG8gY2xvbmUuIgogbXNnc3RyICJC4bqhbiBwaOG6o2kgY2jhu4kgxJHhu4tuaCBt4buZdCBraG8gxJHhu4MgbcOgIG5ow6JuIGLhuqNuIChjbG9uZSkuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzc1CisjOiBidWlsdGluL2Nsb25lLmM6Nzc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIi0tYmFyZSBhbmQgLS1vcmlnaW4gJXMgb3B0aW9ucyBhcmUgaW5jb21wYXRpYmxlLiIKIG1zZ3N0ciAidMO5eSBjaOG7jW4gLS1iYXJlIHbDoCAtLW9yaWdpbiAlcyB4dW5nIGto4bqvYyBuaGF1LiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc3OAorIzogYnVpbHRpbi9jbG9uZS5jOjc3NwogbXNnaWQgIi0tYmFyZSBhbmQgLS1zZXBhcmF0ZS1naXQtZGlyIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICJ0w7l5IGNo4buNbiAtLWJhcmUgdsOgIC0tc2VwYXJhdGUtZ2l0LWRpciB4dW5nIGto4bqvYyBuaGF1LiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc5MQorIzogYnVpbHRpbi9jbG9uZS5jOjc5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZXBvc2l0b3J5ICclcycgZG9lcyBub3QgZXhpc3QiCiBtc2dzdHIgImtobyBjaOG7qWEg4oCcJXPigJ0gY2jGsGEgdOG7k24gdOG6oWkiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OTYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTUKIG1zZ2lkICItLWRlcHRoIGlzIGlnbm9yZWQgaW4gbG9jYWwgY2xvbmVzOyB1c2UgZmlsZTovLyBpbnN0ZWFkLiIKIG1zZ3N0ciAiLS1kZXB0aCBi4buLIGzhu50gxJFpIGtoaSBuaMOibiBi4bqjbiBu4buZaSBi4buZOyBow6N5IHPhu60gZOG7pW5nIGZpbGU6Ly8gxJHhu4MgdGhheSB0aOG6vy4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OTgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTcKIG1zZ2lkICItLWxvY2FsIGlzIGlnbm9yZWQiCiBtc2dzdHIgIi0tbG9jYWwgYuG7iyBs4budIMSRaSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgwOAorIzogYnVpbHRpbi9jbG9uZS5jOjgwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJkZXN0aW5hdGlvbiBwYXRoICclcycgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhbiBlbXB0eSBkaXJlY3RvcnkuIgogbXNnc3RyICLEkcaw4budbmcgZOG6q24gxJHDrWNoIOKAnCVz4oCdIMSRw6MgY8OzIHThu6sgdHLGsOG7m2MgdsOgIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IHRoxrAgbeG7pWMgcuG7l25nLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgxOAorIzogYnVpbHRpbi9jbG9uZS5jOjgxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJ3b3JraW5nIHRyZWUgJyVzJyBhbHJlYWR5IGV4aXN0cy4iCiBtc2dzdHIgImPDonkgbMOgbSB2aeG7h2Mg4oCcJXPigJ0gxJHDoyBz4bq1biB04buTbiB04bqhaSBy4buTaS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MzEgYnVpbHRpbi9jbG9uZS5jOjg0MworIzogYnVpbHRpbi9jbG9uZS5jOjgzMCBidWlsdGluL2Nsb25lLmM6ODQyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgbGVhZGluZyBkaXJlY3RvcmllcyBvZiAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgdOG6oW8gY8OhYyB0aMawIG3hu6VjIGThuqtuIMSR4bqndSBj4bunYSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgzNAorIzogYnVpbHRpbi9jbG9uZS5jOjgzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIHdvcmsgdHJlZSBkaXIgJyVzJy4iCiBtc2dzdHIgImtow7RuZyB0aOG7gyB04bqhbyBjw6J5IHRoxrAgbeG7pWMgbMOgbSB2aeG7h2MgZGlyIOKAnCVz4oCdLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg1MworIzogYnVpbHRpbi9jbG9uZS5jOjg1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gYmFyZSByZXBvc2l0b3J5ICclcycuLi5cbiIKIG1zZ3N0ciAixJBhbmcgbmjDom4gYuG6o24gdGjDoG5oIGtobyBjaOG7qWEgYmFyZSDigJwlc+KAnS4uLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODU1CisjOiBidWlsdGluL2Nsb25lLmM6ODU0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNsb25pbmcgaW50byAnJXMnLi4uXG4iCiBtc2dzdHIgIsSQYW5nIG5ow6JuIGLhuqNuIHRow6BuaCDigJwlc+KAnS4uLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODkwCisjOiBidWlsdGluL2Nsb25lLmM6ODg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGNsb25lICVzIgogbXNnc3RyICJLaMO0bmcgYmnhur90IGzDoG0gY8OhY2ggbsOgbyDEkeG7gyBuaMOibiBi4bqjbiAoY2xvbmUpICVzIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTQyCisjOiBidWlsdGluL2Nsb25lLmM6OTM5IGJ1aWx0aW4vY2xvbmUuYzo5NDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3RlIGJyYW5jaCAlcyBub3QgZm91bmQgaW4gdXBzdHJlYW0gJXMiCiBtc2dzdHIgIk5ow6FuaCBtw6F5IGNo4bunICVzIGtow7RuZyB0w6xtIHRo4bqleSB0cm9uZyB0aMaw4bujbmcgbmd14buTbiAodXBzdHJlYW0pICVzIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTQ5CisjOiBidWlsdGluL2Nsb25lLmM6OTUwCiBtc2dpZCAiWW91IGFwcGVhciB0byBoYXZlIGNsb25lZCBhbiBlbXB0eSByZXBvc2l0b3J5LiIKIG1zZ3N0ciAiQuG6oW4gaMOsbmggbmjGsCBsw6AgxJHDoyBuaMOibiBi4bqjbiBt4buZdCBraG8gdHLhu5FuZyBy4buXbmcuIgogCkBAIC0zOTEzLDExICs0MDkzLDExIEBACiAKICM6IGJ1aWx0aW4vY29sdW1uLmM6MzAKIG1zZ2lkICJQYWRkaW5nIHNwYWNlIG9uIGxlZnQgYm9yZGVyIgotbXNnc3RyICJDaMOobiB0aMOqbSBraG/huqNuZyB0cuG7kW5nIHbDoG8gYuG7nSBiw6puIHRyw6FpIgorbXNnc3RyICJDaMOobiB0aMOqbSBraG/huqNuZyB0cuG7kW5nIHbDoG8gYsOqbiB0csOhaSIKIAogIzogYnVpbHRpbi9jb2x1bW4uYzozMQogbXNnaWQgIlBhZGRpbmcgc3BhY2Ugb24gcmlnaHQgYm9yZGVyIgotbXNnc3RyICJDaMOobiB0aMOqbSBraG/huqNuZyB0cuG6r25nIHbDoG8gdGnhur9wIGdpw6FwIGLDqm4gcGjhuqNpIgorbXNnc3RyICJDaMOobiB0aMOqbSBraG/huqNuZyB0cuG6r25nIHbDoG8gYsOqbiBwaOG6o2kiCiAKICM6IGJ1aWx0aW4vY29sdW1uLmM6MzIKIG1zZ2lkICJQYWRkaW5nIHNwYWNlIGJldHdlZW4gY29sdW1ucyIKQEAgLTM5MjcsMTUgKzQxMDcsMTUgQEAKIG1zZ2lkICItLWNvbW1hbmQgbXVzdCBiZSB0aGUgZmlyc3QgYXJndW1lbnQiCiBtc2dzdHIgIi0tY29tbWFuZCBwaOG6o2kgbMOgIMSR4buRaSBz4buRIMSR4bqndSB0acOqbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNQorIzogYnVpbHRpbi9jb21taXQuYzozNgogbXNnaWQgImdpdCBjb21taXQgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiZ2l0IGNvbW1pdCBbY8OhYy10w7l5LWNo4buNbl0gWy0tXSA8cGF0aHNwZWM+Li4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQwCisjOiBidWlsdGluL2NvbW1pdC5jOjQxCiBtc2dpZCAiZ2l0IHN0YXR1cyBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICJnaXQgc3RhdHVzIFtjw6FjLXTDuXktY2jhu41uXSBbLS1dIDxwYXRoc3BlYz4uLi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDYKIG1zZ2lkICIiCiAiWW91ciBuYW1lIGFuZCBlbWFpbCBhZGRyZXNzIHdlcmUgY29uZmlndXJlZCBhdXRvbWF0aWNhbGx5IGJhc2VkXG4iCiAib24geW91ciB1c2VybmFtZSBhbmQgaG9zdG5hbWUuIFBsZWFzZSBjaGVjayB0aGF0IHRoZXkgYXJlIGFjY3VyYXRlLlxuIgpAQCAtMzk1OSwxMSArNDEzOSwxMSBAQAogIiAgICBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgeW91QGV4YW1wbGUuY29tXG4iCiAiXG4iCiAiU2F1IGtoaSB0aOG7sWMgaGnhu4duIHhvbmcsIGLhuqFuIGPDsyB0aOG7gyBz4butYSBjaOG7r2EgxJHhu4tuaCBkYW5oIMSRxrDhu6NjIHPhu60gZOG7pW5nIGNobyBs4bqnbiAiCi0iY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBuw6B5IHbhu5tpIGzhu4duaDpcbiIKKyJjaHV54buDbiBnaWFvIG7DoHkgduG7m2kgbOG7h25oOlxuIgogIlxuIgogIiAgICBnaXQgY29tbWl0IC0tYW1lbmQgLS1yZXNldC1hdXRob3JcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NworIzogYnVpbHRpbi9jb21taXQuYzo1OAogbXNnaWQgIiIKICJZb3UgYXNrZWQgdG8gYW1lbmQgdGhlIG1vc3QgcmVjZW50IGNvbW1pdCwgYnV0IGRvaW5nIHNvIHdvdWxkIG1ha2VcbiIKICJpdCBlbXB0eS4gWW91IGNhbiByZXBlYXQgeW91ciBjb21tYW5kIHdpdGggLS1hbGxvdy1lbXB0eSwgb3IgeW91IGNhblxuIgpAQCAtMzk3Niw3ICs0MTU2LDcgQEAKICJob+G6t2MgbMOgIGLhuqFuIGfhu6EgYuG7jyBjw6FjIGzhuqduIGNodXnhu4NuIGdpYW8gbeG7mXQgY8OhY2ggaG/DoG4gdG/DoG4gYuG6sW5nIGzhu4duaDpcbiIKICJcImdpdCByZXNldCBIRUFEXlwiLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYyCisjOiBidWlsdGluL2NvbW1pdC5jOjYzCiBtc2dpZCAiIgogIlRoZSBwcmV2aW91cyBjaGVycnktcGljayBpcyBub3cgZW1wdHksIHBvc3NpYmx5IGR1ZSB0byBjb25mbGljdCByZXNvbHV0aW9uLlxuIgogIklmIHlvdSB3aXNoIHRvIGNvbW1pdCBpdCBhbnl3YXksIHVzZTpcbiIKQEAgLTM5OTEsMTEgKzQxNzEsMTEgQEAKICIgICAgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5XG4iCiAiXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzAKIG1zZ2lkICJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIKIG1zZ3N0ciAiTuG6v3Uga2jDtG5nIMSRxrDhu6NjIHRow6wgZMO5bmcgbOG7h25oIFwiZ2l0IHJlc2V0XCJcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MgorIzogYnVpbHRpbi9jb21taXQuYzo3MwogbXNnaWQgIiIKICJJZiB5b3Ugd2lzaCB0byBza2lwIHRoaXMgY29tbWl0LCB1c2U6XG4iCiAiXG4iCkBAIC00MDExLDk3ICs0MTkxLDk3IEBACiAiVGjhur8gdGjDrCBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIgc+G6vSBwaOG7pWMgaOG7k2kgbOG6oWkgdmnhu4djIGNoZXJyeS1waWNrXG4iCiAibmjhu69uZyBs4bqnbiBjaHV54buDbiBnaWFvIGPDsm4gbOG6oWkuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6Mjc5CisjOiBidWlsdGluL2NvbW1pdC5jOjI4NwogbXNnaWQgImZhaWxlZCB0byB1bnBhY2sgSEVBRCB0cmVlIG9iamVjdCIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIHRow6FvIGThu6EgSEVBRCDEkeG7kWkgdMaw4bujbmcgY8OieSIKIAotIzogYnVpbHRpbi9jb21taXQuYzozMjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzI5CiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgaW5kZXgiCiBtc2dzdHIgImtow7RuZyB0aOG7gyB04bqhbyBi4bqjbmcgbeG7pWMgbOG7pWMgdOG6oW0gdGjhu51pIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMyNworIzogYnVpbHRpbi9jb21taXQuYzozMzUKIG1zZ2lkICJpbnRlcmFjdGl2ZSBhZGQgZmFpbGVkIgogbXNnc3RyICJ2aeG7h2MgdGjDqm0gdMawxqFuZyB0w6FjIGfhurdwIGzhu5dpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM2MCBidWlsdGluL2NvbW1pdC5jOjM4MSBidWlsdGluL2NvbW1pdC5jOjQzMQorIzogYnVpbHRpbi9jb21taXQuYzozNjggYnVpbHRpbi9jb21taXQuYzozODkgYnVpbHRpbi9jb21taXQuYzo0MzkKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbmV3X2luZGV4IGZpbGUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBnaGkgdOG6rXAgdGluIGzGsHUgYuG6o25nIG3hu6VjIGzhu6VjIG3hu5tpIChuZXdfaW5kZXgpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQxMgorIzogYnVpbHRpbi9jb21taXQuYzo0MjAKIG1zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBtZXJnZS4iCiBtc2dzdHIgIiIKICJraMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiB2aeG7h2MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBj4bulYyBi4buZIHRyb25nIGtoaSDEkWFuZyDEkcaw4bujYyBow7JhICIKICJ0cuG7mW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQxNAorIzogYnVpbHRpbi9jb21taXQuYzo0MjIKIG1zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBjaGVycnktcGljay4iCiBtc2dzdHIgIiIKICJraMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiB2aeG7h2MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBi4buZIHBo4bqtbiB0cm9uZyBraGkgxJFhbmcgY2hlcnJ5LSIKICJwaWNrLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MjQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDMyCiBtc2dpZCAiY2Fubm90IHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICJraMO0bmcgxJHhu41jIMSRxrDhu6NjIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0NDQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDUyCiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIHRlbXBvcmFyeSBpbmRleCBmaWxlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZ2hpIHThuq1wIHRpbiBsxrB1IGLhuqNuZyBt4bulYyBs4bulYyB04bqhbSB0aOG7nWkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTM1IGJ1aWx0aW4vY29tbWl0LmM6NTQxCisjOiBidWlsdGluL2NvbW1pdC5jOjU0MyBidWlsdGluL2NvbW1pdC5jOjU0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIGNvbW1pdDogJXMiCiBtc2dzdHIgImzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkga2jDtG5nIGjhu6NwIGzhu4c6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU2MworIzogYnVpbHRpbi9jb21taXQuYzo1NzEKIG1zZ2lkICJtYWxmb3JtZWQgLS1hdXRob3IgcGFyYW1ldGVyIgogbXNnc3RyICLEkeG7kWkgc+G7kSAtLWF1dGhvciBi4buLIGThu4sgaMOsbmgiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTgzCisjOiBidWlsdGluL2NvbW1pdC5jOjU5MQogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgaWRlbnQgc3RyaW5nOiAnJXMnIgogbXNnc3RyICJDaHXhu5dpIHRo4buldCBs4buBIMSR4bqndSBkw7JuZyBk4buLIGjDrG5oOiDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MjEgYnVpbHRpbi9jb21taXQuYzo2NTQgYnVpbHRpbi9jb21taXQuYzo5ODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjMwIGJ1aWx0aW4vY29tbWl0LmM6NjYzIGJ1aWx0aW4vY29tbWl0LmM6MTAwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgbG9va3VwIGNvbW1pdCAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHTDrG0ga2nhur9tIGNvbW1pdCAobOG6p24gY2h1eeG7g24gZ2lhbykgJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjMzIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQyIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiKHJlYWRpbmcgbG9nIG1lc3NhZ2UgZnJvbSBzdGFuZGFyZCBpbnB1dClcbiIKIG1zZ3N0ciAiKMSRYW5nIMSR4buNYyB0aMO0bmcgxJFp4buHcCBuaOG6rXQga8O9IHThu6sgxJHhuqd1IHbDoG8gdGnDqnUgY2h14bqpbilcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgbG9nIGZyb20gc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgbmjhuq10IGvDvSB04burIMSR4bqndSB2w6BvIHRpw6p1IGNodeG6qW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjM5CisjOiBidWlsdGluL2NvbW1pdC5jOjY0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBsb2cgZmlsZSAnJXMnIgogbXNnc3RyICJraMO0bmcgxJHhu41jIMSRxrDhu6NjIHThu4dwIG5o4bqtdCBrw70g4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ1CisjOiBidWlsdGluL2NvbW1pdC5jOjY1NAogbXNnaWQgImNvbW1pdCBoYXMgZW1wdHkgbWVzc2FnZSIKIG1zZ3N0ciAibOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBjw7MgZ2hpIGNow7ogdHLhu5FuZyBy4buXbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjYxCisjOiBidWlsdGluL2NvbW1pdC5jOjY3MAogbXNnaWQgImNvdWxkIG5vdCByZWFkIE1FUkdFX01TRyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyBNRVJHRV9NU0ciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjY1CisjOiBidWlsdGluL2NvbW1pdC5jOjY3NAogbXNnaWQgImNvdWxkIG5vdCByZWFkIFNRVUFTSF9NU0ciCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgU1FVQVNIX01TRyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NjkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Njc4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkICclcyciCiBtc2dzdHIgIktow7RuZyB0aOG7gyDEkeG7jWMg4oCcJXPigJ0uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjczMAorIzogYnVpbHRpbi9jb21taXQuYzo3NDkKIG1zZ2lkICJjb3VsZCBub3Qgd3JpdGUgY29tbWl0IHRlbXBsYXRlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZ2hpIG3huqt1IGNvbW1pdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzYwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTQxMTYsNyArNDI5Niw3IEBACiAiXHQlc1xuIgogInbDoCB0aOG7rSBs4bqhaS5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NDYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzY1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTQxMzEsNyArNDMxMSw3IEBACiAiXHQlc1xuIgogInbDoCB0aOG7rSBs4bqhaS5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NTgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Nzc3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJQbGVhc2UgZW50ZXIgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciB5b3VyIGNoYW5nZXMuIExpbmVzIHN0YXJ0aW5nXG4iCkBAIC00MTQyLDcgKzQzMjIsNyBAQAogImLhuq90IMSR4bqndSBi4bqxbmcg4oCcJWPigJ0gc+G6vSDEkcaw4bujYyBi4buPIHF1YSwgbuG6v3UgcGjhuqduIGNow7ogdGjDrWNoIHLhu5duZyBz4bq9IGjhu6d5IGLhu48gbOG6p24gIgogImNodXnhu4NuIGdpYW8gKGNvbW1pdCkuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzYzCisjOiBidWlsdGluL2NvbW1pdC5jOjc4MgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgpAQCAtNDE1NCwxNDggKzQzMzQsMTQ4IEBACiAiYuG6r3QgxJHhuqd1IGLhurFuZyDigJwlY+KAnSBz4bq9IMSRxrDhu6NjIGLhu48gcXVhOyBi4bqhbiBjw7MgdGjhu4MgeMOzYSBjaMO6bmcgxJFpIG7hur91IG114buRbiB0aOG6vy5cbiIKICJQaOG6p24gY2jDuiB0aMOtY2ggbsOgeSBu4bq/dSB0cuG7kW5nIHLhu5duZyBz4bq9IGjhu6d5IGLhu48gbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KS5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Nzk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzQXV0aG9yOiAgICAlcyIKIG1zZ3N0ciAiJXNUw6FjIGdp4bqjOiAgICAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3ODMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzQ29tbWl0dGVyOiAlcyIKIG1zZ3N0ciAiJXNOZ8aw4budaSBjaHV54buDbiBnaWFvIChjb21taXQpOiAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4MDMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODIyCiBtc2dpZCAiQ2Fubm90IHJlYWQgaW5kZXgiCiBtc2dzdHIgImtow7RuZyDEkeG7jWMgxJHGsOG7o2MgYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjg0NQorIzogYnVpbHRpbi9jb21taXQuYzo4NjUKIG1zZ2lkICJFcnJvciBidWlsZGluZyB0cmVlcyIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHjDonkgZOG7sW5nIGPDonkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODYwIGJ1aWx0aW4vdGFnLmM6MzU5CisjOiBidWlsdGluL2NvbW1pdC5jOjg4MCBidWlsdGluL3RhZy5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJQbGVhc2Ugc3VwcGx5IHRoZSBtZXNzYWdlIHVzaW5nIGVpdGhlciAtbSBvciAtRiBvcHRpb24uXG4iCi1tc2dzdHIgIlhpbiBow6N5IMOhcCBk4bulbmcgdGjDtG5nIMSRaeG7h3Agc+G7rSBk4bulbmcgaG/hurdjIGzDoCB0w7l5IGNo4buNbiAtbSBob+G6t2MgbMOgIC1GLlxuIgorbXNnc3RyICJYaW4gaMOjeSBjdW5nIGPhuqVwIGzhu51pIGNow7ogZ2nhuqNpIGhv4bq3YyBsw6AgZMO5bmcgdMO5eSBjaOG7jW4gLW0gaG/hurdjIGzDoCAtRi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5NTcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGV4aXN0aW5nIGF1dGhvciBmb3VuZCB3aXRoICclcyciCiBtc2dzdHIgIktow7RuZyB0w6xtIHRo4bqleSB0w6FjIGdp4bqjIGPDsyBz4bq1biB24bubaSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5NzIgYnVpbHRpbi9jb21taXQuYzoxMjA4CisjOiBidWlsdGluL2NvbW1pdC5jOjk5NyBidWlsdGluL2NvbW1pdC5jOjEyMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCB1bnRyYWNrZWQgZmlsZXMgbW9kZSAnJXMnIgogbXNnc3RyICJDaOG6vyDEkeG7mSBjaG8gY8OhYyB04bqtcCB0aW4ga2jDtG5nIGLhu4sgdGhlbyB24bq/dCBraMO0bmcgaOG7o3AgbOG7hyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDA5CisjOiBidWlsdGluL2NvbW1pdC5jOjEwMzQKIG1zZ2lkICItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgImhhaSB0w7l5IGNo4buNbiAtbG9uZyB2w6AgLXoga2jDtG5nIHTGsMahbmcgdGjDrWNoIHbhu5tpIG5oYXUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzOQorIzogYnVpbHRpbi9jb21taXQuYzoxMDY0CiBtc2dpZCAiVXNpbmcgYm90aCAtLXJlc2V0LWF1dGhvciBhbmQgLS1hdXRob3IgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiU+G7rSBk4bulbmcgY+G6oyBoYWkgdMO5eSBjaOG7jW4gLS1yZXNldC1hdXRob3IgdsOgIC0tYXV0aG9yIGtow7RuZyBo4bujcCBsw70iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MAorIzogYnVpbHRpbi9jb21taXQuYzoxMDc1CiBtc2dpZCAiWW91IGhhdmUgbm90aGluZyB0byBhbWVuZC4iCiBtc2dzdHIgIktow7RuZyBjw7MgZ8OsIMSR4buDIGFtZW5kICh0dSBi4buVKSBj4bqjLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDUzCisjOiBidWlsdGluL2NvbW1pdC5jOjEwNzgKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZSAtLSBjYW5ub3QgYW1lbmQuIgogbXNnc3RyICIiCiAiQuG6oW4gxJFhbmcg4bufIGdp4buvYSBj4bunYSBxdcOhIHRyw6xuaCBow7JhIHRy4buZbiAtLSBraMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiBhbWVuZCAodHUgYuG7lSkuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA4MAogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGNoZXJyeS1waWNrIC0tIGNhbm5vdCBhbWVuZC4iCiBtc2dzdHIgIiIKICJC4bqhbiDEkWFuZyDhu58gZ2nhu69hIGPhu6dhIHF1w6EgdHLDrG5oIGNoZXJyeS1waWNrIC0tIGtow7RuZyB0aOG7gyB0aOG7sWMgaGnhu4duIGFtZW5kICh0dSAiCiAiYuG7lSkuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA4MwogbXNnaWQgIk9wdGlvbnMgLS1zcXVhc2ggYW5kIC0tZml4dXAgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIkPDoWMgdMO5eSBjaOG7jW4gLS1zcXVhc2ggdsOgIC0tZml4dXAga2jDtG5nIHRo4buDIHPhu60gZOG7pW5nIGPDuW5nIHbhu5tpIG5oYXUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA2OAorIzogYnVpbHRpbi9jb21taXQuYzoxMDkzCiBtc2dpZCAiT25seSBvbmUgb2YgLWMvLUMvLUYvLS1maXh1cCBjYW4gYmUgdXNlZC4iCiBtc2dzdHIgIkNo4buJIG3hu5l0IHTDuXkgY2jhu41uIHRyb25nIHPhu5EgLWMvLUMvLUYvLS1maXh1cCDEkcaw4bujYyBz4butIGThu6VuZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDcwCisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTUKIG1zZ2lkICJPcHRpb24gLW0gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggLWMvLUMvLUYvLS1maXh1cC4iCiBtc2dzdHIgIlTDuXkgY2jhu41uIC1tIGtow7RuZyB0aOG7gyDEkcaw4bujYyB04buVIGjhu6NwIGPDuW5nIHbhu5tpIC1jLy1DLy1GLy0tZml4dXAuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTEwMwogbXNnaWQgIi0tcmVzZXQtYXV0aG9yIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCAtQywgLWMgb3IgLS1hbWVuZC4iCiBtc2dzdHIgIiIKICItLXJlc2V0LWF1dGhvciBjaOG7iSBjw7MgdGjhu4MgxJHGsOG7o2Mgc+G7rSBk4bulbmcgduG7m2kgdMO5eSBjaOG7jW4gLUMsIC1jIGhheSAtLWFtZW5kLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDk1CisjOiBidWlsdGluL2NvbW1pdC5jOjExMjAKIG1zZ2lkICJPbmx5IG9uZSBvZiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCBjYW4gYmUgdXNlZC4iCiBtc2dzdHIgIiIKICJDaOG7iSBt4buZdCB0cm9uZyBjw6FjIHTDuXkgY2jhu41uIC0taW5jbHVkZS8tLW9ubHkvLS1hbGwvLS1pbnRlcmFjdGl2ZS8tLXBhdGNoIMSRxrDhu6NjICIKICJz4butIGThu6VuZy4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NworIzogYnVpbHRpbi9jb21taXQuYzoxMTIyCiBtc2dpZCAiTm8gcGF0aHMgd2l0aCAtLWluY2x1ZGUvLS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICJLaMO0bmcgxJHGsOG7nW5nIGThuqtuIHbhu5tpIGPDoWMgdMO5eSBjaOG7jW4gLS1pbmNsdWRlLy0tb25seSBraMO0bmcgaOG7o3AgbMO9LiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDk5CisjOiBidWlsdGluL2NvbW1pdC5jOjExMjQKIG1zZ2lkICJDbGV2ZXIuLi4gYW1lbmRpbmcgdGhlIGxhc3Qgb25lIHdpdGggZGlydHkgaW5kZXguIgotbXNnc3RyICJHaeG7j2kuLi4gIHR1IGLhu5UgY8OhaSBjdeG7kWkgduG7m2kgYuG6o25nIG3hu6VjIGzhu6VjIHBoaSBuZ2jEqWEuIgorbXNnc3RyICJHaeG7j2kuLi4gIHR1IGLhu5UgY8OhaSBjdeG7kWkgduG7m2kgYuG6o25nIG3hu6VjIGzhu6VjIGLhuqluLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTAxCisjOiBidWlsdGluL2NvbW1pdC5jOjExMjYKIG1zZ2lkICJFeHBsaWNpdCBwYXRocyBzcGVjaWZpZWQgd2l0aG91dCAtaSBub3IgLW87IGFzc3VtaW5nIC0tb25seSBwYXRocy4uLiIKIG1zZ3N0ciAiIgogIk5o4buvbmcgxJHGsOG7nW5nIGThuqtuIHLDtSByw6BuZyDEkcaw4bujYyBjaOG7iSByYSBraMO0bmcgY8OzIHTDuXkgY2jhu41uIC1pIGPFqW5nIGtow7RuZyAtbzsgxJFhbmcgIgogImdp4bqjIMSR4buLbmggLS1vbmx5IG5o4buvbmctxJHGsOG7nW5nLWThuqtuLi4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExMTEgYnVpbHRpbi90YWcuYzo1NzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTEzNiBidWlsdGluL3RhZy5jOjU3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGNsZWFudXAgbW9kZSAlcyIKIG1zZ3N0ciAiQ2jhur8gxJHhu5kgZOG7jW4gZOG6uXAga2jDtG5nIGjhu6NwIGzhu4cgJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTExNgorIzogYnVpbHRpbi9jb21taXQuYzoxMTQxCiBtc2dpZCAiUGF0aHMgd2l0aCAtYSBkb2VzIG5vdCBtYWtlIHNlbnNlLiIKIG1zZ3N0ciAiQ8OhYyDEkcaw4budbmcgZOG6q24gduG7m2kgdMO5eSBjaOG7jW4gLWEga2jDtG5nIGjhu6NwIGzDvS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyMiBidWlsdGluL2NvbW1pdC5jOjE0NTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI1MSBidWlsdGluL2NvbW1pdC5jOjE0ODIKIG1zZ2lkICJzaG93IHN0YXR1cyBjb25jaXNlbHkiCiBtc2dzdHIgImhp4buDbiB0aOG7iyB0cuG6oW5nIHRow6FpIOG7nyBk4bqhbmcgc8O6YyB0w61jaCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjI0IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NworIzogYnVpbHRpbi9jb21taXQuYzoxMjUzIGJ1aWx0aW4vY29tbWl0LmM6MTQ4NAogbXNnaWQgInNob3cgYnJhbmNoIGluZm9ybWF0aW9uIgogbXNnc3RyICJoaeG7g24gdGjhu4sgdGjDtG5nIHRpbiBuaMOhbmgiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyNiBidWlsdGluL2NvbW1pdC5jOjE0NTkgYnVpbHRpbi9wdXNoLmM6NDUyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNTUgYnVpbHRpbi9jb21taXQuYzoxNDg2IGJ1aWx0aW4vcHVzaC5jOjQ2MAogbXNnaWQgIm1hY2hpbmUtcmVhZGFibGUgb3V0cHV0IgogbXNnc3RyICJr4bq/dCB4deG6pXQgZOG6oW5nIG3DoXktY8OzLXRo4buDLcSR4buNYyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjI5IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MQorIzogYnVpbHRpbi9jb21taXQuYzoxMjU4IGJ1aWx0aW4vY29tbWl0LmM6MTQ4OAogbXNnaWQgInNob3cgc3RhdHVzIGluIGxvbmcgZm9ybWF0IChkZWZhdWx0KSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIHRy4bqhbmcgdGjDoWkg4bufIMSR4buLbmggZOG6oW5nIGTDoGkgKG3hurdjIMSR4buLbmgpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyMzIgYnVpbHRpbi9jb21taXQuYzoxNDY0CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNjEgYnVpbHRpbi9jb21taXQuYzoxNDkxCiBtc2dpZCAidGVybWluYXRlIGVudHJpZXMgd2l0aCBOVUwiCiBtc2dzdHIgImNo4bqlbSBk4bupdCBjw6FjIG3hu6VjIGLhurFuZyBOVUwiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNCBidWlsdGluL2NvbW1pdC5jOjE0NjcgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NwotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MCBidWlsdGluL3RhZy5jOjQ1OQorIzogYnVpbHRpbi9jb21taXQuYzoxMjYzIGJ1aWx0aW4vY29tbWl0LmM6MTQ5NCBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc3IGJ1aWx0aW4vdGFnLmM6NDU5CiBtc2dpZCAibW9kZSIKIG1zZ3N0ciAiY2jhur8gxJHhu5kiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNSBidWlsdGluL2NvbW1pdC5jOjE0NjcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2NCBidWlsdGluL2NvbW1pdC5jOjE0OTQKIG1zZ2lkICJzaG93IHVudHJhY2tlZCBmaWxlcywgb3B0aW9uYWwgbW9kZXM6IGFsbCwgbm9ybWFsLCBuby4gKERlZmF1bHQ6IGFsbCkiCiBtc2dzdHIgIiIKICJoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4gY2jGsGEgxJHGsOG7o2MgdGhlbyBkw7VpICBk4bqldSB24bq/dCwgY8OhYyBjaOG6vyDEkeG7mSB0w7l5IGNo4buNbjogIGFsbCwgIgogIm5vcm1hbCwgbm8uIChN4bq3YyDEkeG7i25oOiBhbGwpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyMzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2NwogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgdOG6rXAgdGluIOG6qW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzOSBwYXJzZS1vcHRpb25zLmg6MTU0CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNjggcGFyc2Utb3B0aW9ucy5oOjE1NgogbXNnaWQgIndoZW4iCiBtc2dzdHIgImtoaSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjQwCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNjkKIG1zZ2lkICIiCiAiaWdub3JlIGNoYW5nZXMgdG8gc3VibW9kdWxlcywgb3B0aW9uYWwgd2hlbjogYWxsLCBkaXJ0eSwgdW50cmFja2VkLiAiCiAiKERlZmF1bHQ6IGFsbCkiCkBAIC00MzAzLDIyMyArNDQ4MywyMjMgQEAKICJi4buPIHF1YSBjw6FjIHRoYXkgxJHhu5VpIHRyb25nIG3DtC3EkXVuLWNvbiwgdMO5eSBjaOG7jW4ga2hpOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKICIoTeG6t2MgxJHhu4tuaDogYWxsKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjQyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNzEKIG1zZ2lkICJsaXN0IHVudHJhY2tlZCBmaWxlcyBpbiBjb2x1bW5zIgogbXNnc3RyICJoaeG7g24gdGjhu4sgZGFuaCBzw6FjaCBjw6FjIHThuq1wLXRpbiBjaMawYSDEkcaw4bujYyB0aGVvIGTDtWkgdHJvbmcgY8OhYyBj4buZdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzEzCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNDAKIG1zZ2lkICJjb3VsZG4ndCBsb29rIHVwIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgogbXNnc3RyICJraMO0bmcgdGjhu4MgdMOsbSB0aOG6pXkgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBt4bubaSBoxqFuIMSRw6MgxJHGsOG7o2MgdOG6oW8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxNQorIzogYnVpbHRpbi9jb21taXQuYzoxMzQyCiBtc2dpZCAiY291bGQgbm90IHBhcnNlIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgogbXNnc3RyICIiCiAia2jDtG5nIHRo4buDIHBow6JuIHTDrWNoIGPDuiBwaMOhcCBj4bunYSDEkeG7kWkgdMaw4bujbmcgY2h1eeG7g24gZ2lhbyBt4bubaSBoxqFuIMSRw6MgxJHGsOG7o2MgdOG6oW8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1NgorIzogYnVpbHRpbi9jb21taXQuYzoxMzgzCiBtc2dpZCAiZGV0YWNoZWQgSEVBRCIKIG1zZ3N0ciAixJHDoyBy4budaSBraOG7j2kgSEVBRCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzU4CisjOiBidWlsdGluL2NvbW1pdC5jOjEzODUKIG1zZ2lkICIgKHJvb3QtY29tbWl0KSIKIG1zZ3N0ciAiIChyb290LWNvbW1pdCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyNQorIzogYnVpbHRpbi9jb21taXQuYzoxNDUyCiBtc2dpZCAic3VwcHJlc3Mgc3VtbWFyeSBhZnRlciBzdWNjZXNzZnVsIGNvbW1pdCIKIG1zZ3N0ciAia2jDtG5nIGhp4buDbiB0aOG7iyB04buVbmcga+G6v3Qgc2F1IGtoaSBjaHV54buDbiBnaWFvIHRow6BuaCBjw7RuZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDI2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTMKIG1zZ2lkICJzaG93IGRpZmYgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBz4buxIGtow6FjIGJp4buHdCB0cm9uZyBt4bqrdSB0aW4gbmjhuq9uIGNodXnhu4NuIGdpYW8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyOAorIzogYnVpbHRpbi9jb21taXQuYzoxNDU1CiBtc2dpZCAiQ29tbWl0IG1lc3NhZ2Ugb3B0aW9ucyIKIG1zZ3N0ciAiQ8OhYyB0w7l5IGNo4buNbiBnaGkgY2jDuiBjb21taXQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyOSBidWlsdGluL3RhZy5jOjQ1NworIzogYnVpbHRpbi9jb21taXQuYzoxNDU2IGJ1aWx0aW4vdGFnLmM6NDU3CiBtc2dpZCAicmVhZCBtZXNzYWdlIGZyb20gZmlsZSIKIG1zZ3N0ciAixJHhu41jIGNow7ogdGjDrWNoIHThu6sgdOG6rXAgdGluIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NwogbXNnaWQgImF1dGhvciIKIG1zZ3N0ciAidMOhYyBnaeG6oyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTcKIG1zZ2lkICJvdmVycmlkZSBhdXRob3IgZm9yIGNvbW1pdCIKIG1zZ3N0ciAiZ2hpIMSRw6ggdMOhYyBnaeG6oyBjaG8gY29tbWl0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzEgYnVpbHRpbi9nYy5jOjE3OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDU4IGJ1aWx0aW4vZ2MuYzoyNjAKIG1zZ2lkICJkYXRlIgogbXNnc3RyICJuZ8OgeSB0aMOhbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNDU4CiBtc2dpZCAib3ZlcnJpZGUgZGF0ZSBmb3IgY29tbWl0IgogbXNnc3RyICJnaGkgxJHDqCBuZ8OgeSB0aMOhbmcgY2hvIGNvbW1pdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMyIGJ1aWx0aW4vbWVyZ2UuYzoyMjMgYnVpbHRpbi9ub3Rlcy5jOjQwNQorIzogYnVpbHRpbi9jb21taXQuYzoxNDU5IGJ1aWx0aW4vbWVyZ2UuYzoyMjMgYnVpbHRpbi9ub3Rlcy5jOjQwNQogIzogYnVpbHRpbi9ub3Rlcy5jOjU2MiBidWlsdGluL3RhZy5jOjQ1NQogbXNnaWQgIm1lc3NhZ2UiCiBtc2dzdHIgInRow7RuZyDEkWnhu4dwIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1OQogbXNnaWQgImNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICJjaMO6IHRow61jaCBj4bunYSBs4bqnbiBjb21taXQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMworIzogYnVpbHRpbi9jb21taXQuYzoxNDYwCiBtc2dpZCAicmV1c2UgYW5kIGVkaXQgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIiIKICJkw7luZyBs4bqhaSBjw6FjIGdoaSBjaMO6IHThu6sgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSDEkcOjIGNobyBuaMawbmcgY8OzIGNobyBz4butYSBjaOG7r2EiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNAorIzogYnVpbHRpbi9jb21taXQuYzoxNDYxCiBtc2dpZCAicmV1c2UgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgImTDuW5nIGzhuqFpIGPDoWMgZ2hpIGNow7ogdOG7qyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIMSRw6MgY2hvIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MgogbXNnaWQgInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIGZpeHVwIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIiIKICJkw7luZyBnaGkgY2jDuiBjw7MgxJHhu4tuaCBk4bqhbmcgYXV0b3NxdWFzaCDEkeG7gyBz4butYSBjaOG7r2EgbOG6p24gY2h1eeG7g24gZ2lhbyDEkcOjIGNo4buJIHJhIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MwogbXNnaWQgInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIHNxdWFzaCBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICIiCiAiZMO5bmcgbOG7nWkgbmjhuq9uIGPDsyDEkeG7i25oIGThuqFuZyB04buxIMSR4buZbmcgbsOpbiDEkeG7gyBuw6luIGzhuqFpIGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyDEkcOjIGNo4buJICIKICJyYSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDM3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjQKIG1zZ2lkICJ0aGUgY29tbWl0IGlzIGF1dGhvcmVkIGJ5IG1lIG5vdyAodXNlZCB3aXRoIC1DLy1jLy0tYW1lbmQpIgogbXNnc3RyICIiCiAibOG6p24gY2h1eeG7g24gZ2lhbyBuaOG6rW4gdMO0aSBsw6AgdMOhYyBnaeG6oyAoxJHGsOG7o2MgZMO5bmcgduG7m2kgdMO5eSBjaOG7jW4gLUMvLWMvLS1hbWVuZCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzOCBidWlsdGluL2xvZy5jOjExNjAgYnVpbHRpbi9yZXZlcnQuYzoxMTEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NSBidWlsdGluL2xvZy5jOjExODAgYnVpbHRpbi9yZXZlcnQuYzo4NgogbXNnaWQgImFkZCBTaWduZWQtb2ZmLWJ5OiIKIG1zZ3N0ciAidGjDqm0gZMOybmcgU2lnbmVkLW9mZi1ieToiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzOQorIzogYnVpbHRpbi9jb21taXQuYzoxNDY2CiBtc2dpZCAidXNlIHNwZWNpZmllZCB0ZW1wbGF0ZSBmaWxlIgogbXNnc3RyICJz4butIGThu6VuZyB04bqtcCB0aW4gbeG6q3UgxJHDoyBjaG8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDY3CiBtc2dpZCAiZm9yY2UgZWRpdCBvZiBjb21taXQiCiBtc2dzdHIgIsOpcCBideG7mWMgc+G7rWEgbOG6p24gY29tbWl0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2OAogbXNnaWQgImRlZmF1bHQiCiBtc2dzdHIgIm3hurdjIMSR4buLbmgiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MSBidWlsdGluL3RhZy5jOjQ2MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDY4IGJ1aWx0aW4vdGFnLmM6NDYwCiBtc2dpZCAiaG93IHRvIHN0cmlwIHNwYWNlcyBhbmQgI2NvbW1lbnRzIGZyb20gbWVzc2FnZSIKIG1zZ3N0ciAibMOgbSB0aOG6vyBuw6BvIMSR4buDIGPhuq90IGLhu48ga2hv4bqjbmcgdHLhuq9uZyB2w6AgI2doaWNow7ogdOG7qyBt4bqpdSB0aW4gbmjhuq9uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2OQogbXNnaWQgImluY2x1ZGUgc3RhdHVzIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgogbXNnc3RyICJiYW8gZ+G7k20gY8OhYyB0cuG6oW5nIHRow6FpIGdoaSBt4bqrdSBnaGkgY2jDuiBjaHV54buDbiBnaWFvIChjb21taXQpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDMgYnVpbHRpbi9tZXJnZS5jOjIzMCBidWlsdGluL3RhZy5jOjQ2MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDcwIGJ1aWx0aW4vbWVyZ2UuYzoyMzAgYnVpbHRpbi90YWcuYzo0NjEKIG1zZ2lkICJrZXkgaWQiCiBtc2dzdHIgImlkIGtow7NhIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDQgYnVpbHRpbi9tZXJnZS5jOjIzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNDcxIGJ1aWx0aW4vbWVyZ2UuYzoyMzEKIG1zZ2lkICJHUEcgc2lnbiBjb21taXQiCiBtc2dzdHIgImvDvSBs4bqnbiBjb21taXQgZMO5bmcgR1BHIgogCiAjLiBlbmQgY29tbWl0IG1lc3NhZ2Ugb3B0aW9ucwotIzogYnVpbHRpbi9jb21taXQuYzoxNDQ3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzQKIG1zZ2lkICJDb21taXQgY29udGVudHMgb3B0aW9ucyIKIG1zZ3N0ciAiQ8OhYyB0w7l5IG7hu5lpIGR1bmcgZ2hpIGNow7ogY29tbWl0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3NQogbXNnaWQgImNvbW1pdCBhbGwgY2hhbmdlZCBmaWxlcyIKIG1zZ3N0ciAiY2h1eeG7g24gZ2lhbyB04bqldCBj4bqjIGPDoWMgdOG6rXAgdGluIGPDsyB0aGF5IMSR4buVaSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDQ5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzYKIG1zZ2lkICJhZGQgc3BlY2lmaWVkIGZpbGVzIHRvIGluZGV4IGZvciBjb21taXQiCiBtc2dzdHIgInRow6ptIGPDoWMgdOG6rXAgdGluIMSRw6MgY2jhu4kgcmEgdsOgbyBi4bqjbmcgbeG7pWMgbOG7pWMgxJHhu4MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDUwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzcKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBmaWxlcyIKIG1zZ3N0ciAidGjDqm0gY8OhYyB04bqtcC10aW4gYuG6sW5nIHTGsMahbmcgdMOhYyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDUxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzgKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBjaGFuZ2VzIgogbXNnc3RyICJ0aMOqbSBjw6FjIHRoYXkgxJHhu5VpIGLhurFuZyB0xrDGoW5nIHTDoWMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MgorIzogYnVpbHRpbi9jb21taXQuYzoxNDc5CiBtc2dpZCAiY29tbWl0IG9ubHkgc3BlY2lmaWVkIGZpbGVzIgogbXNnc3RyICJjaOG7iSBjaHV54buDbiBnaWFvIGPDoWMgdOG6rXAgdGluIMSRw6MgY2jhu4kgcmEiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MworIzogYnVpbHRpbi9jb21taXQuYzoxNDgwCiBtc2dpZCAiYnlwYXNzIHByZS1jb21taXQgaG9vayIKIG1zZ3N0ciAidsOybmcgcXVhIG3Ds2MgKGhvb2spIHByZS1jb21taXQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NAorIzogYnVpbHRpbi9jb21taXQuYzoxNDgxCiBtc2dpZCAic2hvdyB3aGF0IHdvdWxkIGJlIGNvbW1pdHRlZCIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIHhlbSBjw6FpIGfDrCBjw7MgdGjhu4MgxJHGsOG7o2MgY2h1eeG7g24gZ2lhbyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDY1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0OTIKIG1zZ2lkICJhbWVuZCBwcmV2aW91cyBjb21taXQiCiBtc2dzdHIgInR1IGLhu5UgKGFtZW5kKSBs4bqnbiBjb21taXQgdHLGsOG7m2MiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NgorIzogYnVpbHRpbi9jb21taXQuYzoxNDkzCiBtc2dpZCAiYnlwYXNzIHBvc3QtcmV3cml0ZSBob29rIgogbXNnc3RyICJ2w7JuZyBxdWEgbcOzYyAoaG9vaykgcG9zdC1yZXdyaXRlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ5OAogbXNnaWQgIm9rIHRvIHJlY29yZCBhbiBlbXB0eSBjaGFuZ2UiCiBtc2dzdHIgIm9rIMSR4buDIGdoaSBs4bqhaSBt4buZdCB0aGF5IMSR4buVaSB0cuG7kW5nIHLhu5duZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDc0CisjOiBidWlsdGluL2NvbW1pdC5jOjE1MDAKIG1zZ2lkICJvayB0byByZWNvcmQgYSBjaGFuZ2Ugd2l0aCBhbiBlbXB0eSBtZXNzYWdlIgogbXNnc3RyICJvayDEkeG7gyBnaGkgY8OhYyB0aGF5IMSR4buVaSB24bubaSBs4budaSBuaOG6r24gdHLhu5FuZyBy4buXbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUwNworIzogYnVpbHRpbi9jb21taXQuYzoxNTI5CiBtc2dpZCAiY291bGQgbm90IHBhcnNlIEhFQUQgY29tbWl0IgogbXNnc3RyICJraMO0bmcgdGjhu4MgcGjDom4gdMOtY2ggY29tbWl0IChs4bqnbiBjaHV54buDbiBnaWFvKSBIRUFEIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NDUgYnVpbHRpbi9tZXJnZS5jOjUyNQorIzogYnVpbHRpbi9jb21taXQuYzoxNTY3IGJ1aWx0aW4vbWVyZ2UuYzo1MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyBmb3IgcmVhZGluZyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIG3hu58g4oCcJXPigJ0gxJHhu4MgxJHhu41jIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3JydXB0IE1FUkdFX0hFQUQgZmlsZSAoJXMpIgogbXNnc3RyICJU4bqtcCB0aW4gTUVSR0VfSEVBRCBzYWkgaOG7j25nICglcykiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU1OQorIzogYnVpbHRpbi9jb21taXQuYzoxNTgxCiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTU9ERSIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyBNRVJHRV9NT0RFIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBjb21taXQgbWVzc2FnZTogJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgdGjDtG5nIMSRaeG7h3AgKG1lc3NhZ2UpIGNvbW1pdCAobOG6p24gY2h1eeG7g24gZ2lhbyk6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1OTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJBYm9ydGluZyBjb21taXQ7IHlvdSBkaWQgbm90IGVkaXQgdGhlIG1lc3NhZ2UuXG4iCiBtc2dzdHIgIiIKICLEkGFuZyBi4buPIHF1YSB2aeG7h2MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KTsgYuG6oW4gxJHDoyBraMO0bmcgYmnDqm4gc2/huqFuIHRow7RuZyDEkWnhu4dwICIKICIobWVzc2FnZSkuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU5NworIzogYnVpbHRpbi9jb21taXQuYzoxNjE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdCBkdWUgdG8gZW1wdHkgY29tbWl0IG1lc3NhZ2UuXG4iCiBtc2dzdHIgIiIKICLEkGFuZyBi4buPIHF1YSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGLhu59pIHbDrCB0aMO0bmcgxJFp4buHcCBj4bunYSBuw7MgdHLhu5FuZyBy4buXbmcuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTYxMiBidWlsdGluL21lcmdlLmM6ODYxIGJ1aWx0aW4vbWVyZ2UuYzo4ODYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYzNCBidWlsdGluL21lcmdlLmM6ODYxIGJ1aWx0aW4vbWVyZ2UuYzo4ODYKIG1zZ2lkICJmYWlsZWQgdG8gd3JpdGUgY29tbWl0IG9iamVjdCIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIGdoaSDEkeG7kWkgdMaw4bujbmcgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNjMzCisjOiBidWlsdGluL2NvbW1pdC5jOjE2NTUKIG1zZ2lkICJjYW5ub3QgbG9jayBIRUFEIHJlZiIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGtow7NhIEhFQUQgcmVmICh0aGFtIGNoaeG6v3UpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE2MzcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTY1OQogbXNnaWQgImNhbm5vdCB1cGRhdGUgSEVBRCByZWYiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBj4bqtcCBuaOG6rXQgcmVmICh0aGFtIGNoaeG6v3UpIEhFQUQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTY0OAorIzogYnVpbHRpbi9jb21taXQuYzoxNjcwCiBtc2dpZCAiIgogIlJlcG9zaXRvcnkgaGFzIGJlZW4gdXBkYXRlZCwgYnV0IHVuYWJsZSB0byB3cml0ZVxuIgogIm5ld19pbmRleCBmaWxlLiBDaGVjayB0aGF0IGRpc2sgaXMgbm90IGZ1bGwgb3IgcXVvdGEgaXNcbiIKQEAgLTQ1MzAsMTI3ICs0NzEwLDEzMSBAQAogImhheSBxdW90YSAoaOG6oW4gbmdo4bqhY2ggxJHEqWEgY+G7qW5nKSBi4buLIHbGsOG7o3QgcXXDoSwgdsOgIHNhdSDEkcOzIFwiZ2l0IHJlc2V0IEhFQURcIiDEkeG7gyAiCiAia2jhuq9jIHBo4bulYy4iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NworIzogYnVpbHRpbi9jb25maWcuYzo4CiBtc2dpZCAiZ2l0IGNvbmZpZyBbb3B0aW9uc10iCiBtc2dzdHIgImdpdCBjb25maWcgW2PDoWMtdMO5eS1jaOG7jW5dIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjUyCisjOiBidWlsdGluL2NvbmZpZy5jOjU0CiBtc2dpZCAiQ29uZmlnIGZpbGUgbG9jYXRpb24iCiBtc2dzdHIgIlbhu4sgdHLDrSB04bqtcCB0aW4gY+G6pXUgaMOsbmgiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKIG1zZ2lkICJ1c2UgZ2xvYmFsIGNvbmZpZyBmaWxlIgogbXNnc3RyICLEkeG6t3QgdOG6rXAgdGluIGPhuqV1IGjDrG5oIGPhuqduIHRvw6BuIGPhu6VjIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU0CisjOiBidWlsdGluL2NvbmZpZy5jOjU2CiBtc2dpZCAidXNlIHN5c3RlbSBjb25maWcgZmlsZSIKIG1zZ3N0ciAic+G7rSBk4bulbmcgdOG6rXAgdGluIGPhuqV1IGjDrG5oIGjhu4cgdGjhu5FuZyIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NQorIzogYnVpbHRpbi9jb25maWcuYzo1NwogbXNnaWQgInVzZSByZXBvc2l0b3J5IGNvbmZpZyBmaWxlIgogbXNnc3RyICJkw7luZyB04bqtcCB0aW4gY+G6pXUgaMOsbmggY+G7p2Ega2hvIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU2CisjOiBidWlsdGluL2NvbmZpZy5jOjU4CiBtc2dpZCAidXNlIGdpdmVuIGNvbmZpZyBmaWxlIgogbXNnc3RyICJz4butIGThu6VuZyB04bqtcCB0aW4gY+G6pXUgaMOsbmggxJHDoyBjaG8iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTkKIG1zZ2lkICJibG9iLWlkIgogbXNnc3RyICJibG9iLWlkIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU3CisjOiBidWlsdGluL2NvbmZpZy5jOjU5CiBtc2dpZCAicmVhZCBjb25maWcgZnJvbSBnaXZlbiBibG9iIG9iamVjdCIKIG1zZ3N0ciAixJHhu41jIGPhuqV1IGjDrG5oIHThu6sgxJHhu5FpIHTGsOG7o25nIGJsb2IgxJHDoyBjaG8iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTgKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjAKIG1zZ2lkICJBY3Rpb24iCiBtc2dzdHIgIkjDoG5oIMSR4buZbmciCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjEKIG1zZ2lkICJnZXQgdmFsdWU6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAibOG6pXkgZ2nDoS10cuG7izogdMOqbiBbdmFsdWUtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYwCisjOiBidWlsdGluL2NvbmZpZy5jOjYyCiBtc2dpZCAiZ2V0IGFsbCB2YWx1ZXM6IGtleSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJs4bqleSB04bqldCBj4bqjIGdpw6EtdHLhu4s6IGtow7NhIFt2YWx1ZS1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKIG1zZ2lkICJnZXQgdmFsdWVzIGZvciByZWdleHA6IG5hbWUtcmVnZXggW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAibOG6pXkgZ2nDoSB0cuG7iyBjaG8gcmVnZXhwOiBuYW1lLXJlZ2V4IFt2YWx1ZS1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjIKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKK21zZ2lkICJnZXQgdmFsdWUgc3BlY2lmaWMgZm9yIHRoZSBVUkw6IHNlY3Rpb25bLnZhcl0gVVJMIgorbXNnc3RyICJs4bqleSDEkeG6t2MgdOG6oyBnacOhIHRy4buLIGNobyBVUkw6IHBo4bqnblsuYmnhur9uXSBVUkwiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjUKIG1zZ2lkICJyZXBsYWNlIGFsbCBtYXRjaGluZyB2YXJpYWJsZXM6IG5hbWUgdmFsdWUgW3ZhbHVlX3JlZ2V4XSIKIG1zZ3N0ciAidGhheSB0aOG6vyB04bqldCBj4bqjIGPDoWMgYmnhur9uIGto4bubcCBt4bqrdTogdMOqbiBnacOhLXRy4buLIFt2YWx1ZV9yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjYKIG1zZ2lkICJhZGQgYSBuZXcgdmFyaWFibGU6IG5hbWUgdmFsdWUiCiBtc2dzdHIgInRow6ptIGJp4bq/biBt4bubaTogdMOqbiBnacOhLXRy4buLIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY0CisjOiBidWlsdGluL2NvbmZpZy5jOjY3CiBtc2dpZCAicmVtb3ZlIGEgdmFyaWFibGU6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiZ+G7oSBi4buPIGJp4bq/bjogdMOqbiBbdmFsdWUtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY1CisjOiBidWlsdGluL2NvbmZpZy5jOjY4CiBtc2dpZCAicmVtb3ZlIGFsbCBtYXRjaGVzOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImfhu6EgYuG7jyBt4buNaSBjw6FpIGto4bubcDogdMOqbiBbdmFsdWUtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY2CisjOiBidWlsdGluL2NvbmZpZy5jOjY5CiBtc2dpZCAicmVuYW1lIHNlY3Rpb246IG9sZC1uYW1lIG5ldy1uYW1lIgogbXNnc3RyICLEkeG7lWkgdMOqbiBjaMawxqFuZzogdMOqbi1jxakgdMOqbi1t4bubaSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NworIzogYnVpbHRpbi9jb25maWcuYzo3MAogbXNnaWQgInJlbW92ZSBhIHNlY3Rpb246IG5hbWUiCiBtc2dzdHIgImfhu6EgYuG7jyBjaMawxqFuZzogdMOqbiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2OAorIzogYnVpbHRpbi9jb25maWcuYzo3MQogbXNnaWQgImxpc3QgYWxsIgogbXNnc3RyICJsaeG7h3Qga8OqIHThuqV0IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY5CisjOiBidWlsdGluL2NvbmZpZy5jOjcyCiBtc2dpZCAib3BlbiBhbiBlZGl0b3IiCiBtc2dzdHIgIm3hu58gbeG7mXQgdHLDrG5oIGJpw6puIHNv4bqhbiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MCBidWlsdGluL2NvbmZpZy5jOjcxCisjOiBidWlsdGluL2NvbmZpZy5jOjczIGJ1aWx0aW4vY29uZmlnLmM6NzQKIG1zZ2lkICJzbG90IgogbXNnc3RyICJraGUiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzAKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzMKIG1zZ2lkICJmaW5kIHRoZSBjb2xvciBjb25maWd1cmVkOiBbZGVmYXVsdF0iCiBtc2dzdHIgInTDrG0gY+G6pXUgaMOsbmggbcOgdSBz4bqvYzogW23hurdjIMSR4buLbmhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcxCisjOiBidWlsdGluL2NvbmZpZy5jOjc0CiBtc2dpZCAiZmluZCB0aGUgY29sb3Igc2V0dGluZzogW3N0ZG91dC1pcy10dHldIgogbXNnc3RyICJ0w6xtIGPDoWMgY8OgaSDEkeG6t3QgduG7gSBtw6B1IHPhuq9jOiBbc3Rkb3V0LWzDoC10dHldIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcyCisjOiBidWlsdGluL2NvbmZpZy5jOjc1CiBtc2dpZCAiVHlwZSIKIG1zZ3N0ciAiS2nhu4N1IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjczCisjOiBidWlsdGluL2NvbmZpZy5jOjc2CiBtc2dpZCAidmFsdWUgaXMgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiIgogbXNnc3RyICJnacOhIHRy4buLIGzDoCBcInRydWVcIiBob+G6t2MgXCJmYWxzZVwiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc0CisjOiBidWlsdGluL2NvbmZpZy5jOjc3CiBtc2dpZCAidmFsdWUgaXMgZGVjaW1hbCBudW1iZXIiCiBtc2dzdHIgImdpw6EgdHLhu4sg4bufIGThuqFuZyBz4buRIHRo4bqtcCBwaMOibiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NQorIzogYnVpbHRpbi9jb25maWcuYzo3OAogbXNnaWQgInZhbHVlIGlzIC0tYm9vbCBvciAtLWludCIKIG1zZ3N0ciAiZ2nDoSB0cuG7iyBsw6AgLS1ib29sIGhv4bq3YyAtLWludCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NgorIzogYnVpbHRpbi9jb25maWcuYzo3OQogbXNnaWQgInZhbHVlIGlzIGEgcGF0aCAoZmlsZSBvciBkaXJlY3RvcnkgbmFtZSkiCiBtc2dzdHIgImdpw6EgdHLhu4sgbMOgIMSRxrDhu51uZyBk4bqrbiAodMOqbiB04bqtcCB0aW4gaGF5IHRoxrAgbeG7pWMpIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc3CisjOiBidWlsdGluL2NvbmZpZy5jOjgwCiBtc2dpZCAiT3RoZXIiCiBtc2dzdHIgIktow6FjIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc4CisjOiBidWlsdGluL2NvbmZpZy5jOjgxCiBtc2dpZCAidGVybWluYXRlIHZhbHVlcyB3aXRoIE5VTCBieXRlIgogbXNnc3RyICJjaOG6pW0gZOG7qXQgZ2nDoSB0cuG7iyB24bubaSBieXRlIE5VTCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3OQorIzogYnVpbHRpbi9jb25maWcuYzo4MgogbXNnaWQgInJlc3BlY3QgaW5jbHVkZSBkaXJlY3RpdmVzIG9uIGxvb2t1cCIKIG1zZ3N0ciAidMO0biB0cuG7jW5nIGvhu4MgY8OgIGPDoWMgaMaw4bubbmcgdHJvbmcgdMOsbSBraeG6v20iCiAKQEAgLTQ2NjMsOCArNDg0Nyw4IEBACiBtc2dzdHIgImhp4buDbiB0aOG7iyBrw61jaCBj4buhIHRoZW8gxJHhu4tuaCBk4bqhbmcgZMOgbmggY2hvIG5nxrDhu51pIMSR4buNYyIKIAogIzogYnVpbHRpbi9kZXNjcmliZS5jOjE2Ci1tc2dpZCAiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSA8Y29tbWl0dGlzaD4qIgotbXNnc3RyICJnaXQgZGVzY3JpYmUgW2PDoWMtdMO5eS1jaOG7jW5dIDxjb21taXR0aXNoPioiCittc2dpZCAiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSA8Y29tbWl0LWlzaD4qIgorbXNnc3RyICJnaXQgZGVzY3JpYmUgW2PDoWMtdMO5eS1jaOG7jW5dIDxjb21taXQtaXNoPioiCiAKICM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNwogbXNnaWQgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gLS1kaXJ0eSIKQEAgLTQ3OTksMTggKzQ5ODMsMTggQEAKIG1zZ3N0ciAiS2jDtG5nIHTDrG0gdGjhuqV5IGPDoWMgdMOqbiwga2jDtG5nIHRo4buDIG3DtCB04bqjIGfDrCBj4bqjLiIKIAogIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ4OQotbXNnaWQgIi0tZGlydHkgaXMgaW5jb21wYXRpYmxlIHdpdGggY29tbWl0dGlzaGVzIgotbXNnc3RyICItLWRpcnR5IGzDoCB4dW5nIGto4bqvYyB24bubaSBjw6FjIHTDuXkgY2jhu41uIGTDoG5oIGNobyBjaHV54buDbiBnaWFvIChjb21taXQpIgorbXNnaWQgIi0tZGlydHkgaXMgaW5jb21wYXRpYmxlIHdpdGggY29tbWl0LWlzaGVzIgorbXNnc3RyICItLWRpcnR5IGzDoCB4dW5nIGto4bqvYyB24bubaSBjw6FjIHTDuXkgY2jhu41uIGNvbW1pdC1pc2giCiAKICM6IGJ1aWx0aW4vZGlmZi5jOjc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcyc6IG5vdCBhIHJlZ3VsYXIgZmlsZSBvciBzeW1saW5rIgotbXNnc3RyICLigJwlc+KAnToga2jDtG5nIHBo4bqjaSB04bqtcCB0aW4gYsOsbmggdGjGsOG7nW5nIGhheSBsacOqbiBr4bq/dCB0xrDhu6NuZyB0csawbmciCittc2dzdHIgIuKAnCVz4oCdOiBraMO0bmcgcGjhuqNpIHThuq1wIHRpbiBiw6xuaCB0aMaw4budbmcgaGF5IGxpw6puIGvhur90IG3hu4FtIgogCiAjOiBidWlsdGluL2RpZmYuYzoyMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBvcHRpb246ICVzIgotbXNnc3RyICJ0w7l5IGNo4buNbiBzYWk6ICVzIgorbXNnc3RyICJ0w7l5IGNo4buNbiBraMO0bmcgaOG7o3AgbOG7hzogJXMiCiAKICM6IGJ1aWx0aW4vZGlmZi5jOjMwNwogbXNnaWQgIk5vdCBhIGdpdCByZXBvc2l0b3J5IgpAQCAtNDgzNSwzOSArNTAxOSwzOSBAQAogbXNnaWQgImdpdCBmYXN0LWV4cG9ydCBbcmV2LWxpc3Qtb3B0c10iCiBtc2dzdHIgImdpdCBmYXN0LWV4cG9ydCBbcmV2LWxpc3Qtb3B0c10iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjYKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzMKIG1zZ2lkICJzaG93IHByb2dyZXNzIGFmdGVyIDxuPiBvYmplY3RzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgdGnhur9uIHRyaeG7g24gc2F1IDxuPiDEkeG7kWkgdMaw4bujbmciCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjgKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzUKIG1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2Ygc2lnbmVkIHRhZ3MiCiBtc2dzdHIgImNo4buNbiDEkWnhu4F1IGtoaeG7g24gY+G7p2EgdGjhursgxJHDoyBrw70iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzEKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzgKIG1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2YgdGFncyB0aGF0IHRhZyBmaWx0ZXJlZCBvYmplY3RzIgogbXNnc3RyICJjaOG7jW4gc+G7sSB44butIGzDvSBj4bunYSBjw6FjIHRo4bq7LCBjw6FpIG3DoCDEkcOhbmggdGjhursgY8OhYyDEkeG7kWkgdMaw4bujbmcgxJHGsOG7o2MgbOG7jWMgcmEiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzQKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODEKIG1zZ2lkICJEdW1wIG1hcmtzIHRvIHRoaXMgZmlsZSIKIG1zZ3N0ciAixJDhu5UgY8OhYyDEkcOhbmggZOG6pXUgbsOgeSB2w6BvIHThuq1wLXRpbiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NgorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MwogbXNnaWQgIkltcG9ydCBtYXJrcyBmcm9tIHRoaXMgZmlsZSIKIG1zZ3N0ciAibmjhuq1wIHbDoG8gxJHDoW5oIGThuqV1IHThu6sgdOG6rXAgdGluIG7DoHkiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzgKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODUKIG1zZ2lkICJGYWtlIGEgdGFnZ2VyIHdoZW4gdGFncyBsYWNrIG9uZSIKIG1zZ3N0ciAiTMOgbSBnaeG6oyBt4buZdCBjw6FpIHRo4bq7IGtoaSB0aOG6uyBi4buLIHRoaeG6v3UgbeG7mXQgY8OhaSIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4NwogbXNnaWQgIk91dHB1dCBmdWxsIHRyZWUgZm9yIGVhY2ggY29tbWl0IgogbXNnc3RyICJYdeG6pXQgcmEgdG/DoG4gYuG7mSBjw6J5IGNobyBt4buXaSBs4bqnbiBjaHV54buDbiBnaWFvIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgyCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njg5CiBtc2dpZCAiVXNlIHRoZSBkb25lIGZlYXR1cmUgdG8gdGVybWluYXRlIHRoZSBzdHJlYW0iCiBtc2dzdHIgIlPhu60gZOG7pW5nIHTDrW5oIG7Eg25nIGRvbmUgxJHhu4MgY2jhuqVtIGThu6l0IGx14buTbmcgZOG7ryBsaeG7h3UiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODMKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2OTAKIG1zZ2lkICJTa2lwIG91dHB1dCBvZiBibG9iIGRhdGEiCiBtc2dzdHIgIkLhu48gcXVhIGvhur90IHh14bqldCBj4bunYSBk4buvIGxp4buHdSBibG9iIgogCkBAIC00ODg3LDE0NiArNTA3MSwxNDYgQEAKIG1zZ2lkICJnaXQgZmV0Y2ggLS1hbGwgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBmZXRjaCAtLWFsbCBbPGPDoWMtdMO5eS1jaOG7jW4+XSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjYwCisjOiBidWlsdGluL2ZldGNoLmM6NzQKIG1zZ2lkICJmZXRjaCBmcm9tIGFsbCByZW1vdGVzIgogbXNnc3RyICJs4bqleSB24buBIHThu6sgdOG6pXQgY+G6oyBjw6FjIG3DoXkgY2jhu6ciCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2MgorIzogYnVpbHRpbi9mZXRjaC5jOjc2CiBtc2dpZCAiYXBwZW5kIHRvIC5naXQvRkVUQ0hfSEVBRCBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIgogbXNnc3RyICJu4buRaSB0aMOqbSB2w6BvIC5naXQvRkVUQ0hfSEVBRCB0aGF5IHbDrCBnaGkgxJHDqCBsw6puIG7DsyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjY0CisjOiBidWlsdGluL2ZldGNoLmM6NzgKIG1zZ2lkICJwYXRoIHRvIHVwbG9hZCBwYWNrIG9uIHJlbW90ZSBlbmQiCiBtc2dzdHIgIsSRxrDhu51uZyBk4bqrbiDEkeG6v24gZ8OzaSAocGFjaykgdOG6o2kgbMOqbiB0csOqbiBtw6F5IGNo4bunIGN14buRaSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjY1CisjOiBidWlsdGluL2ZldGNoLmM6NzkKIG1zZ2lkICJmb3JjZSBvdmVyd3JpdGUgb2YgbG9jYWwgYnJhbmNoIgogbXNnc3RyICLDqXAgYnXhu5ljIGdoaSDEkcOoIGzDqm4gbmjDoW5oIG7hu5lpIGLhu5kiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2NworIzogYnVpbHRpbi9mZXRjaC5jOjgxCiBtc2dpZCAiZmV0Y2ggZnJvbSBtdWx0aXBsZSByZW1vdGVzIgogbXNnc3RyICJs4bqleSB04burIG5oaeG7gXUgbcOheSBjaOG7pyBjw7luZyBsw7pjIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NjkKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4MwogbXNnaWQgImZldGNoIGFsbCB0YWdzIGFuZCBhc3NvY2lhdGVkIG9iamVjdHMiCiBtc2dzdHIgImzhuqV5IHThuqV0IGPhuqMgY8OhYyB0aOG6uyBjw7luZyB24bubaSBjw6FjIMSR4buRaSB0xrDhu6NuZyBsacOqbiBxdWFuIMSR4bq/biBuw7MiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3MQorIzogYnVpbHRpbi9mZXRjaC5jOjg1CiBtc2dpZCAiZG8gbm90IGZldGNoIGFsbCB0YWdzICgtLW5vLXRhZ3MpIgogbXNnc3RyICJraMO0bmcgbOG6pXkgdOG6pXQgY+G6oyBjw6FjIHRo4bq7ICgtLW5vLXRhZ3MpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NzMKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4NwogbXNnaWQgInBydW5lIHJlbW90ZS10cmFja2luZyBicmFuY2hlcyBubyBsb25nZXIgb24gcmVtb3RlIgogbXNnc3RyICIiCiAiY+G6r3QgY+G7pXQgKHBydW5lKSBjw6FjIG5ow6FuaCDigJxyZW1vdGUtdHJhY2tpbmfigJ0ga2jDtG5nIGPDsm4gdOG7k24gdOG6oWkgdHLDqm4gbcOheSBjaOG7pyAiCiAibuG7r2EiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3NAorIzogYnVpbHRpbi9mZXRjaC5jOjg4CiBtc2dpZCAib24tZGVtYW5kIgogbXNnc3RyICJraGktY+G6p24iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3NQorIzogYnVpbHRpbi9mZXRjaC5jOjg5CiBtc2dpZCAiY29udHJvbCByZWN1cnNpdmUgZmV0Y2hpbmcgb2Ygc3VibW9kdWxlcyIKIG1zZ3N0ciAixJFp4buBdSBraGnhu4NuIHZp4buHYyBs4bqleSB24buBIMSR4buHIHF1eSB0cm9uZyBjw6FjIG3DtC3EkXVuLWNvbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc5CisjOiBidWlsdGluL2ZldGNoLmM6OTMKIG1zZ2lkICJrZWVwIGRvd25sb2FkZWQgcGFjayIKIG1zZ3N0ciAiZ2nhu68gY8OhYyBnw7NpIMSRw6MgdOG6o2kgduG7gSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjgxCisjOiBidWlsdGluL2ZldGNoLmM6OTUKIG1zZ2lkICJhbGxvdyB1cGRhdGluZyBvZiBIRUFEIHJlZiIKIG1zZ3N0ciAiY2hvIHBow6lwIGPhuq1wIG5o4bqtdCB0aC5jaGnhur91IEhFQUQiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4NAorIzogYnVpbHRpbi9mZXRjaC5jOjk4CiBtc2dpZCAiZGVlcGVuIGhpc3Rvcnkgb2Ygc2hhbGxvdyBjbG9uZSIKIG1zZ3N0ciAibMOgbSBzw6J1IGjGoW4gbOG7i2NoIHPhu60gY+G7p2EgYuG6o24gc2FvIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODYKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDAKIG1zZ2lkICJjb252ZXJ0IHRvIGEgY29tcGxldGUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiY2h1eeG7g24gxJHhu5VpIGhvw6BuIHRvw6BuIHNhbmcga2hvIGdpdCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg4IGJ1aWx0aW4vbG9nLmM6MTE3NworIzogYnVpbHRpbi9mZXRjaC5jOjEwMiBidWlsdGluL2xvZy5jOjExOTcKIG1zZ2lkICJkaXIiCiBtc2dzdHIgInRt4bulYyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg5CisjOiBidWlsdGluL2ZldGNoLmM6MTAzCiBtc2dpZCAicHJlcGVuZCB0aGlzIHRvIHN1Ym1vZHVsZSBwYXRoIG91dHB1dCIKIG1zZ3N0ciAic2/huqFuIHPhurVuIGPDoWkgbsOgeSBjaG8ga+G6v3QgeHXhuqV0IMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MgorIzogYnVpbHRpbi9mZXRjaC5jOjEwNgogbXNnaWQgImRlZmF1bHQgbW9kZSBmb3IgcmVjdXJzaW9uIgogbXNnc3RyICJjaOG6vyDEkeG7mSBt4bq3YyDEkeG7i25oIGNobyDEkeG7hyBxdWkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyMjAKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyMzYKIG1zZ2lkICJDb3VsZG4ndCBmaW5kIHJlbW90ZSByZWYgSEVBRCIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHTDrG0gdGjhuqV5IG3DoXkgY2jhu6cgY2hvIHRoYW0gY2hp4bq/dSBIRUFEIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjczCisjOiBidWlsdGluL2ZldGNoLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCAlcyBub3QgZm91bmQiCiBtc2dzdHIgIktow7RuZyB0w6xtIHRo4bqleSDEkeG7kWkgdMaw4bujbmcgJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyNzgKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyOTUKIG1zZ2lkICJbdXAgdG8gZGF0ZV0iCiBtc2dzdHIgIlvEkcOjIGPhuq1wIG5o4bqtdF0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyOTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiISAlLSpzICUtKnMgLT4gJXMgIChjYW4ndCBmZXRjaCBpbiBjdXJyZW50IGJyYW5jaCkiCiBtc2dzdHIgIiEgJS0qcyAlLSpzIC0+ICVzICAoa2jDtG5nIHRo4buDIGZldGNoIChs4bqleSkgduG7gSBuaMOhbmggaGnhu4duIGjDoG5oKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI5MyBidWlsdGluL2ZldGNoLmM6Mzc5CisjOiBidWlsdGluL2ZldGNoLmM6MzEwIGJ1aWx0aW4vZmV0Y2guYzozOTYKIG1zZ2lkICJbcmVqZWN0ZWRdIgogbXNnc3RyICJbQuG7iyB04burIGNo4buRaV0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMDQKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjEKIG1zZ2lkICJbdGFnIHVwZGF0ZV0iCiBtc2dzdHIgIltj4bqtcCBuaOG6rXQgdGjhurtdIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzA2IGJ1aWx0aW4vZmV0Y2guYzozNDEgYnVpbHRpbi9mZXRjaC5jOjM1OQorIzogYnVpbHRpbi9mZXRjaC5jOjMyMyBidWlsdGluL2ZldGNoLmM6MzU4IGJ1aWx0aW4vZmV0Y2guYzozNzYKIG1zZ2lkICIgICh1bmFibGUgdG8gdXBkYXRlIGxvY2FsIHJlZikiCiBtc2dzdHIgIiAgKGtow7RuZyB0aOG7gyBj4bqtcCBuaOG6rXQgdGhhbSBjaGnhur91IChyZWYpIG7hu5lpIGLhu5kpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzI0CisjOiBidWlsdGluL2ZldGNoLmM6MzQxCiBtc2dpZCAiW25ldyB0YWddIgogbXNnc3RyICJbdGjhursgbeG7m2ldIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzI3CisjOiBidWlsdGluL2ZldGNoLmM6MzQ0CiBtc2dpZCAiW25ldyBicmFuY2hdIgogbXNnc3RyICJbbmjDoW5oIG3hu5tpXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMzMAorIzogYnVpbHRpbi9mZXRjaC5jOjM0NwogbXNnaWQgIltuZXcgcmVmXSIKIG1zZ3N0ciAiW3JlZiAodGhhbSBjaGnhur91KSBt4bubaV0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNzUKKyM6IGJ1aWx0aW4vZmV0Y2guYzozOTIKIG1zZ2lkICJ1bmFibGUgdG8gdXBkYXRlIGxvY2FsIHJlZiIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGPhuq1wIG5o4bqtdCB0aGFtIGNoaeG6v3UgKHJlZikgbuG7mWkgYuG7mSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM3NQorIzogYnVpbHRpbi9mZXRjaC5jOjM5MgogbXNnaWQgImZvcmNlZCB1cGRhdGUiCiBtc2dzdHIgImPGsOG7oW5nIGLhu6ljIGPhuq1wIG5o4bqtdCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM4MQorIzogYnVpbHRpbi9mZXRjaC5jOjM5OAogbXNnaWQgIihub24tZmFzdC1mb3J3YXJkKSIKIG1zZ3N0ciAiKG5vbi1mYXN0LWZvcndhcmQpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDEyIGJ1aWx0aW4vZmV0Y2guYzo3MTgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo0MjkgYnVpbHRpbi9mZXRjaC5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAlczogJXNcbiIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIG3hu58gJXM6ICVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo0MjEKKyM6IGJ1aWx0aW4vZmV0Y2guYzo0MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgZGlkIG5vdCBzZW5kIGFsbCBuZWNlc3Nhcnkgb2JqZWN0c1xuIgogbXNnc3RyICIlcyDEkcOjIGtow7RuZyBn4butaSB04bqldCBj4bqjIGPDoWMgxJHhu5FpIHTGsOG7o25nIGPhuqduIHRoaeG6v3RcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjUyMAorIzogYnVpbHRpbi9mZXRjaC5jOjUzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJGcm9tICUuKnNcbiIKIG1zZ3N0ciAiVOG7qyAlLipzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1MzEKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1NDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogInNvbWUgbG9jYWwgcmVmcyBjb3VsZCBub3QgYmUgdXBkYXRlZDsgdHJ5IHJ1bm5pbmdcbiIKQEAgLTUwMzUsNTcgKzUyMTksNTcgQEAKICJt4buZdCBz4buRIHRoYW0gY2hp4bq/dSAocmVmcykgbuG7mWkgYuG7mSBraMO0bmcgdGjhu4MgxJHGsOG7o2MgY+G6rXAgbmjhuq10OyBow6N5IHRo4butIGNo4bqheVxuIgogIiDigJxnaXQgcmVtb3RlIHBydW5lICVz4oCdIMSR4buDIGLhu48gxJFpIG5o4buvbmcgbmjDoW5oIGPFqSwgaGF5IGLhu4sgeHVuZyDEkeG7mXQiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1ODEKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1OTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgKCVzIHdpbGwgYmVjb21lIGRhbmdsaW5nKSIKIG1zZ3N0ciAiICAgKCVzIHPhur0gdHLhu58gdGjDoG5oIGtow7RuZyDEkeG6p3UgKGtow7RuZyDEkcaw4bujYyBxdeG6o24gbMO9KSkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1ODIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1OTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgKCVzIGhhcyBiZWNvbWUgZGFuZ2xpbmcpIgogbXNnc3RyICIgICAoJXMgxJHDoyB0cuG7nyB0aMOgbmgga2jDtG5nIMSR4bqndSAoa2jDtG5nIMSRxrDhu6NjIHF14bqjbiBsw70pKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU4OQorIzogYnVpbHRpbi9mZXRjaC5jOjYwNgogbXNnaWQgIltkZWxldGVkXSIKIG1zZ3N0ciAiW8SRw6MgeMOzYV0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1OTAgYnVpbHRpbi9yZW1vdGUuYzoxMDU1CisjOiBidWlsdGluL2ZldGNoLmM6NjA3IGJ1aWx0aW4vcmVtb3RlLmM6MTA1NQogbXNnaWQgIihub25lKSIKIG1zZ3N0ciAiKGtow7RuZykiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3MDgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVmdXNpbmcgdG8gZmV0Y2ggaW50byBjdXJyZW50IGJyYW5jaCAlcyBvZiBub24tYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAiVOG7qyBjaOG7kWkgdmnhu4djIGzhuqV5IChmZXRjaCkgdsOgbyB0cm9uZyBuaMOhbmggaGnhu4duIHThuqFpICVzIGPhu6dhIG3hu5l0IGtobyBjaOG7qWEga2jDtG5nICIKICJwaOG6o2kga2hvIHRy4bqnbiAoYmFyZSkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3NDIKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gZmV0Y2ggZnJvbSAlcyIKLW1zZ3N0ciAiS2jDtG5nIGJp4bq/dCBsw6BtIGPDoWNoIG7DoG8gxJHhu4MgbOG6pXkgduG7gSB04burICVzIgotCi0jOiBidWlsdGluL2ZldGNoLmM6ODIzCisjOiBidWlsdGluL2ZldGNoLmM6NzQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiCiBtc2dzdHIgIlTDuXkgY2jhu41uIFwiJXNcIiBjw7MgZ2nDoSB0cuG7iyBcIiVzXCIgbMOgIGtow7RuZyBo4bujcCBs4buHIGNobyAlcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjgyNgorIzogYnVpbHRpbi9mZXRjaC5jOjc0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJPcHRpb24gXCIlc1wiIGlzIGlnbm9yZWQgZm9yICVzXG4iCiBtc2dzdHIgIlTDuXkgY2jhu41uIFwiJXNcIiBi4buLIGLhu48gcXVhIHbhu5tpICVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MjgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gZmV0Y2ggZnJvbSAlcyIKK21zZ3N0ciAiS2jDtG5nIGJp4bq/dCBsw6BtIGPDoWNoIG7DoG8gxJHhu4MgbOG6pXkgduG7gSB04burICVzIgorCisjOiBidWlsdGluL2ZldGNoLmM6OTc2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZldGNoaW5nICVzXG4iCiBtc2dzdHIgIsSQYW5nIGzhuqV5IHbhu4EgJXNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkzMCBidWlsdGluL3JlbW90ZS5jOjEwMAorIzogYnVpbHRpbi9mZXRjaC5jOjk3OCBidWlsdGluL3JlbW90ZS5jOjEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmV0Y2ggJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBs4bqleSB24buBICVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTQ5CisjOiBidWlsdGluL2ZldGNoLmM6OTk3CiBtc2dpZCAiIgogIk5vIHJlbW90ZSByZXBvc2l0b3J5IHNwZWNpZmllZC4gIFBsZWFzZSwgc3BlY2lmeSBlaXRoZXIgYSBVUkwgb3IgYVxuIgogInJlbW90ZSBuYW1lIGZyb20gd2hpY2ggbmV3IHJldmlzaW9ucyBzaG91bGQgYmUgZmV0Y2hlZC4iCkBAIC01MDkzLDMyICs1Mjc3LDMyIEBACiAiQ2jGsGEgY2jhu4kgcmEga2hvIGNo4bupYSBtw6F5IGNo4bunLiAgWGluIGjDo3kgY2jhu4kgxJHhu4tuaCBob+G6t2MgbMOgIFVSTCBob+G6t2NcbiIKICJ0w6puIG3DoXkgY2jhu6cgdOG7qyBjw6FpIG3DoCBuaOG7r25nIMSRaeG7g20geMOpdCBkdXnhu4d0IG3hu5tpIGPDsyB0aOG7gyDEkcaw4bujYyBmZXRjaCAobOG6pXkgduG7gSkuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTY5CisjOiBidWlsdGluL2ZldGNoLmM6MTAyMAogbXNnaWQgIllvdSBuZWVkIHRvIHNwZWNpZnkgYSB0YWcgbmFtZS4iCiBtc2dzdHIgIkLhuqFuIHBo4bqjaSDEkeG7i25oIHLDtSB0w6puIHRo4bq7LiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDY4CiBtc2dpZCAiLS1kZXB0aCBhbmQgLS11bnNoYWxsb3cgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgInTDuXkgY2jhu41uIC0tZGVwdGggdsOgIC0tdW5zaGFsbG93IGtow7RuZyB0aOG7gyBz4butIGThu6VuZyBjw7luZyB24bubaSBuaGF1IgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAxNworIzogYnVpbHRpbi9mZXRjaC5jOjEwNzAKIG1zZ2lkICItLXVuc2hhbGxvdyBvbiBhIGNvbXBsZXRlIHJlcG9zaXRvcnkgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiLS11bnNoYWxsb3cgdHLDqm4ga2hvIGhvw6BuIGNo4buJbmggbMOgIGtow7RuZyBo4bujcCBsw70iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDM2CisjOiBidWlsdGluL2ZldGNoLmM6MTA4OQogbXNnaWQgImZldGNoIC0tYWxsIGRvZXMgbm90IHRha2UgYSByZXBvc2l0b3J5IGFyZ3VtZW50IgogbXNnc3RyICJs4buHbmggbOG6pXkgduG7gSBcImZldGNoIC0tYWxsXCIga2jDtG5nIGzhuqV5IMSR4buRaSBz4buRIGtobyBjaOG7qWEiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDM4CisjOiBidWlsdGluL2ZldGNoLmM6MTA5MQogbXNnaWQgImZldGNoIC0tYWxsIGRvZXMgbm90IG1ha2Ugc2Vuc2Ugd2l0aCByZWZzcGVjcyIKIG1zZ3N0ciAibOG7h25oIGzhuqV5IHbhu4EgXCJmZXRjaCAtLWFsbFwiIGtow7RuZyBo4bujcCBsw70gduG7m2kgcmVmc3BlY3MiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDQ5CisjOiBidWlsdGluL2ZldGNoLmM6MTEwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIHJlbW90ZSBvciByZW1vdGUgZ3JvdXA6ICVzIgogbXNnc3RyICJraMO0bmcgY8OzIG5ow7NtIG3DoXkgY2jhu6cgaGF5IG3DoXkgY2jhu6cgbmjGsCB0aOG6vzogJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDU3CisjOiBidWlsdGluL2ZldGNoLmM6MTExMAogbXNnaWQgIkZldGNoaW5nIGEgZ3JvdXAgYW5kIHNwZWNpZnlpbmcgcmVmc3BlY3MgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiVmnhu4djIGzhuqV5IHbhu4EgY+G6oyBt4buZdCBuaMOzbSB2w6AgY2jhu4kgxJHhu4tuaCByZWZzcGVjcyBraMO0bmcgaOG7o3AgbMO9IgogCkBAIC01MTI3LDkgKzUzMTEsOSBAQAogbXNnc3RyICIiCiAiZ2l0IGZtdC1tZXJnZS1tc2cgWy1tIDx0aMO0bmcgxJFp4buHcD5dIFstLWxvZ1s9PG4+XXwtLW5vLWxvZ10gWy0tZmlsZSA8dOG6rXAtdGluPl0iCiAKLSM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MyBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjYgYnVpbHRpbi9ncmVwLmM6NzAwCi0jOiBidWlsdGluL21lcmdlLmM6MjAzIGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUgYnVpbHRpbi9zaG93LXJlZi5jOjE3OQotIzogYnVpbHRpbi90YWcuYzo0NDYgcGFyc2Utb3B0aW9ucy5oOjEzMyBwYXJzZS1vcHRpb25zLmg6MjQzCisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjMgYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY2IGJ1aWx0aW4vZ3JlcC5jOjcwMgorIzogYnVpbHRpbi9tZXJnZS5jOjIwMyBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzgKKyM6IGJ1aWx0aW4vdGFnLmM6NDQ2IHBhcnNlLW9wdGlvbnMuaDoxMzUgcGFyc2Utb3B0aW9ucy5oOjI0NQogbXNnaWQgIm4iCiBtc2dzdHIgIm4iCiAKQEAgLTUxNTMsMTE3ICs1MzM3LDEyMSBAQAogbXNnaWQgImZpbGUgdG8gcmVhZCBmcm9tIgogbXNnc3RyICJ04bqtcCB0aW4gxJHhu4MgxJHhu41jIGThu68gbGnhu4d1IHThu6sgxJHDsyIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5NzkKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTk1CiBtc2dpZCAiZ2l0IGZvci1lYWNoLXJlZiBbb3B0aW9uc10gWzxwYXR0ZXJuPl0iCiBtc2dzdHIgImdpdCBmb3ItZWFjaC1yZWYgW2PDoWMtdMO5eS1jaOG7jW5dIFs8beG6q3U+XSIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5OTQKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAxMAogbXNnaWQgInF1b3RlIHBsYWNlaG9sZGVycyBzdWl0YWJseSBmb3Igc2hlbGxzIgogbXNnc3RyICJ0csOtY2ggZOG6q24gxJHhu4MgcGjDuSBo4bujcCBjaG8gaOG7hyB24buPIChzaGVsbCkiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTk2CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMTIKIG1zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHBlcmwiCiBtc2dzdHIgInRyw61jaCBk4bqrbiDEkeG7gyBwaMO5IGjhu6NwIGNobyBwZXJsIgogCi0jOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjk5OAorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDE0CiBtc2dpZCAicXVvdGUgcGxhY2Vob2xkZXJzIHN1aXRhYmx5IGZvciBweXRob24iCiBtc2dzdHIgInRyw61jaCBk4bqrbiDEkeG7gyBwaMO5IGjhu6NwIGNobyBweXRob24iCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwMAorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDE2CiBtc2dpZCAicXVvdGUgcGxhY2Vob2xkZXJzIHN1aXRhYmx5IGZvciB0Y2wiCiBtc2dzdHIgInRyw61jaCBk4bqrbiDEkeG7gyBwaMO5IGjhu6NwIGNobyB0Y2wiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwMworIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDE5CiBtc2dpZCAic2hvdyBvbmx5IDxuPiBtYXRjaGVkIHJlZnMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjaOG7iSA8bj4gdGhhbSBjaGnhur91IGto4bubcCIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA0CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMjAKIG1zZ2lkICJmb3JtYXQiCiBtc2dzdHIgIsSR4buLbmggZOG6oW5nIgogCi0jOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDQKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAyMAogbXNnaWQgImZvcm1hdCB0byB1c2UgZm9yIHRoZSBvdXRwdXQiCiBtc2dzdHIgIsSR4buLbmggZOG6oW5nIHPhur0gZMO5bmcgY2hvIMSR4bqndSByYSIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA1CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMjEKIG1zZ2lkICJrZXkiCiBtc2dzdHIgImtow7NhIgogCi0jOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDYKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAyMgogbXNnaWQgImZpZWxkIG5hbWUgdG8gc29ydCBvbiIKIG1zZ3N0ciAidMOqbiB0csaw4budbmcgY+G6p24gc+G6r3AgeOG6v3AiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYwOAorIzogYnVpbHRpbi9mc2NrLmM6NjA3CiBtc2dpZCAiZ2l0IGZzY2sgW29wdGlvbnNdIFs8b2JqZWN0Pi4uLl0iCiBtc2dzdHIgImdpdCBmc2NrIFtjw6FjLXTDuXktY2jhu41uXSBbPMSR4buRaS10xrDhu6NuZz4uLi5dIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTQKKyM6IGJ1aWx0aW4vZnNjay5jOjYxMwogbXNnaWQgInNob3cgdW5yZWFjaGFibGUgb2JqZWN0cyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgxJHhu5FpIHTGsOG7o25nIGtow7RuZyB0aOG7gyDEkeG7jWMgxJHGsOG7o2MiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYxNQorIzogYnVpbHRpbi9mc2NrLmM6NjE0CiBtc2dpZCAic2hvdyBkYW5nbGluZyBvYmplY3RzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyDEkeG7kWkgdMaw4bujbmcga2jDtG5nIMSRxrDhu6NjIHF14bqjbiBsw70iCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYxNgorIzogYnVpbHRpbi9mc2NrLmM6NjE1CiBtc2dpZCAicmVwb3J0IHRhZ3MiCiBtc2dzdHIgImLDoW8gY8OhbyBjw6FjIHRo4bq7IgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTcKKyM6IGJ1aWx0aW4vZnNjay5jOjYxNgogbXNnaWQgInJlcG9ydCByb290IG5vZGVzIgogbXNnc3RyICJiw6FvIGPDoW8gbm9kZSBn4buRYyIKIAotIzogYnVpbHRpbi9mc2NrLmM6NjE4CisjOiBidWlsdGluL2ZzY2suYzo2MTcKIG1zZ2lkICJtYWtlIGluZGV4IG9iamVjdHMgaGVhZCBub2RlcyIKIG1zZ3N0ciAidOG6oW8g4oCcIGluZGV4IG9iamVjdHMgaGVhZCBub2Rlc+KAnSIKIAotIzogYnVpbHRpbi9mc2NrLmM6NjE5CisjOiBidWlsdGluL2ZzY2suYzo2MTgKIG1zZ2lkICJtYWtlIHJlZmxvZ3MgaGVhZCBub2RlcyAoZGVmYXVsdCkiCiBtc2dzdHIgInThuqFvICByZWZsb2dzIGhlYWQgbm9kZXMgKG3hurdjIMSR4buLbmgpIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MjAKKyM6IGJ1aWx0aW4vZnNjay5jOjYxOQogbXNnaWQgImFsc28gY29uc2lkZXIgcGFja3MgYW5kIGFsdGVybmF0ZSBvYmplY3RzIgogbXNnc3RyICJjxaluZyBjw6JuIG5o4bqvYyDEkeG6v24gY8OhYyDEkeG7kWkgdMaw4bujbmcgZ8OzaSB2w6AgdGhheSB0aOG6vyIKIAotIzogYnVpbHRpbi9mc2NrLmM6NjIxCisjOiBidWlsdGluL2ZzY2suYzo2MjAKIG1zZ2lkICJlbmFibGUgbW9yZSBzdHJpY3QgY2hlY2tpbmciCiBtc2dzdHIgImNobyBwaMOpcCBraeG7g20gdHJhIGjhuqFuIGNo4bq/IGjGoW4iCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYyMworIzogYnVpbHRpbi9mc2NrLmM6NjIyCiBtc2dpZCAid3JpdGUgZGFuZ2xpbmcgb2JqZWN0cyBpbiAuZ2l0L2xvc3QtZm91bmQiCiBtc2dzdHIgImdoaSBjw6FjIMSR4buRaSB0xrDhu6NuZyBraMO0bmcgxJHGsOG7o2MgcXXhuqNuIGzDvSB0cm9uZyAuZ2l0L2xvc3QtZm91bmQiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYyNCBidWlsdGluL3BydW5lLmM6MTM0CisjOiBidWlsdGluL2ZzY2suYzo2MjMgYnVpbHRpbi9wcnVuZS5jOjEzNAogbXNnaWQgInNob3cgcHJvZ3Jlc3MiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBxdcOhIHRyw6xuaCIKIAotIzogYnVpbHRpbi9nYy5jOjIyCisjOiBidWlsdGluL2djLmM6MjMKIG1zZ2lkICJnaXQgZ2MgW29wdGlvbnNdIgogbXNnc3RyICJnaXQgZ2MgW2PDoWMtdMO5eS1jaOG7jW5dIgogCi0jOiBidWlsdGluL2djLmM6NjMKKyM6IGJ1aWx0aW4vZ2MuYzo3OQogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkICVzOiAnJXMnIgogbXNnc3RyICIlcyBraMO0bmcgaOG7o3AgbOG7hzog4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vZ2MuYzo5MAorIzogYnVpbHRpbi9nYy5jOjEwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnNhbmVseSBsb25nIG9iamVjdCBkaXJlY3RvcnkgJS4qcyIKIG1zZ3N0ciAidGjGsCBt4bulYyDEkeG7kWkgdMaw4bujbmcgZMOgaSBt4buZdCBjw6FjaCDEkWnDqm4gcuG7kyAgJS4qcyIKIAotIzogYnVpbHRpbi9nYy5jOjE3OQorIzogYnVpbHRpbi9nYy5jOjI2MQogbXNnaWQgInBydW5lIHVucmVmZXJlbmNlZCBvYmplY3RzIgogbXNnc3RyICJ4w7NhIGLhu48gY8OhYyDEkeG7kWkgdMaw4bujbmcga2jDtG5nIMSRxrDhu6NjIHRoYW0gY2hp4bq/dSIKIAotIzogYnVpbHRpbi9nYy5jOjE4MQorIzogYnVpbHRpbi9nYy5jOjI2MwogbXNnaWQgImJlIG1vcmUgdGhvcm91Z2ggKGluY3JlYXNlZCBydW50aW1lKSIKIG1zZ3N0ciAiY+G6qW4gdGjhuq1uIGjGoW4gbuG7r2EgKHTEg25nIHRo4budaSBnaWFuIGNo4bqheSkiCiAKLSM6IGJ1aWx0aW4vZ2MuYzoxODIKKyM6IGJ1aWx0aW4vZ2MuYzoyNjQKIG1zZ2lkICJlbmFibGUgYXV0by1nYyBtb2RlIgogbXNnc3RyICJi4bqtdCBjaOG6vyDEkeG7mSBhdXRvLWdjIgogCi0jOiBidWlsdGluL2djLmM6MjIyCisjOiBidWlsdGluL2djLmM6MjY1Cittc2dpZCAiZm9yY2UgcnVubmluZyBnYyBldmVuIGlmIHRoZXJlIG1heSBiZSBhbm90aGVyIGdjIHJ1bm5pbmciCittc2dzdHIgImJ14buZYyBnYyBjaOG6oXkgbmdheSBj4bqjIGtoaSBjw7MgdGnhur9uIHRyw6xuaCBnYyBraMOhYyDEkWFuZyBjaOG6oXkiCisKKyM6IGJ1aWx0aW4vZ2MuYzozMDUKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkF1dG8gcGFja2luZyB0aGUgcmVwb3NpdG9yeSBmb3Igb3B0aW11bSBwZXJmb3JtYW5jZS4gWW91IG1heSBhbHNvXG4iCkBAIC01MjczLDQzICs1NDYxLDUyIEBACiAiY2jhuqF5IGzhu4duaCBcImdpdCBnY1wiIG3hu5l0IGPDoWNoIHRo4bunIGPDtG5nLiBIw6N5IHhlbSBcImdpdCBoZWxwIGdjXCIgxJHhu4MgYmnhur90IHRow6ptICIKICJjaGkgdGnhur90LlxuIgogCi0jOiBidWlsdGluL2djLmM6MjQ5CisjLiBiZSBxdWlldCBvbiAtLWF1dG8KKyM6IGJ1aWx0aW4vZ2MuYzozMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImdjIGlzIGFscmVhZHkgcnVubmluZyBvbiBtYWNoaW5lICclcycgcGlkICU8UFJJdU1BWD4gKHVzZSAtLWZvcmNlIGlmIG5vdCkiCittc2dzdHIgIiIKKyJnYyDEkWFuZyDEkcaw4bujYyB0aOG7sWMgaGnhu4duIHRyw6puIG3DoXkg4oCcJXPigJ0gcGlkICU8UFJJdU1BWD4gKGTDuW5nIC0tZm9yY2UgbuG6v3Uga2jDtG5nICIKKyJwaOG6o2kgdGjhur8pIgorCisjOiBidWlsdGluL2djLmM6MzQwCiBtc2dpZCAiIgogIlRoZXJlIGFyZSB0b28gbWFueSB1bnJlYWNoYWJsZSBsb29zZSBvYmplY3RzOyBydW4gJ2dpdCBwcnVuZScgdG8gcmVtb3ZlIHRoZW0uIgogbXNnc3RyICIiCiAiQ8OzIHF1w6Egbmhp4buBdSDEkeG7kWkgdMaw4bujbmcgdOG7sSBkbyBraMO0bmcgxJHGsOG7o2MgZMO5bmcgxJHhur9uOyBow6N5IGNo4bqheSBs4buHbmgg4oCcZ2l0IHBydW5l4oCdICIKICLEkeG7gyB4w7NhIGLhu48gY2jDum5nIMSRaS4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjIyCisjOiBidWlsdGluL2dyZXAuYzoyMwogbXNnaWQgImdpdCBncmVwIFtvcHRpb25zXSBbLWVdIDxwYXR0ZXJuPiBbPHJldj4uLi5dIFtbLS1dIDxwYXRoPi4uLl0iCiBtc2dzdHIgImdpdCBncmVwIFtjw6FjLXTDuXktY2jhu41uXSBbLWVdIDxt4bqrdT4gWzxyZXY+Li4uXSBbWy0tXSA8xJHGsOG7nW5nLWThuqtuPi4uLl0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjIxNworIzogYnVpbHRpbi9ncmVwLmM6MjE4CiAjLCBjLWZvcm1hdAogbXNnaWQgImdyZXA6IGZhaWxlZCB0byBjcmVhdGUgdGhyZWFkOiAlcyIKIG1zZ3N0ciAiZ3JlcDogZ+G6t3AgbOG7l2kgdOG6oW8gdHV54bq/biAodGhyZWFkKTogJXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjM2NAorIzogYnVpbHRpbi9ncmVwLmM6MzY1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBjaGRpcjogJXMiCiBtc2dzdHIgIkfhurdwIGzhu5dpIHbhu5tpIGzhu4duaCBjaGRpcjogJXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjQ0MiBidWlsdGluL2dyZXAuYzo0NzcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjQ0MyBidWlsdGluL2dyZXAuYzo0NzgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgdHJlZSAoJXMpIgogbXNnc3RyICJraMO0bmcgdGjhu4MgxJHhu41jIGPDonkgKCVzKSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NDkyCisjOiBidWlsdGluL2dyZXAuYzo0OTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGdyZXAgZnJvbSBvYmplY3Qgb2YgdHlwZSAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHRo4buxYyBoaeG7h24gbOG7h25oIGdyZXAgKGzhu41jIHTDrG0pIHThu6sgxJHhu5FpIHTGsOG7o25nIHRodeG7mWMga2nhu4N1ICVzIgogCi0jOiBidWlsdGluL2dyZXAuYzo1NTAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjU1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJzd2l0Y2ggYCVjJyBleHBlY3RzIGEgbnVtZXJpY2FsIHZhbHVlIgogbXNnc3RyICJjaHV54buDbiDEkeG6v24g4oCcJWPigJ0gY+G6p24gbeG7mXQgZ2nDoSB0cuG7iyBi4bqxbmcgc+G7kSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NTY3CisjOiBidWlsdGluL2dyZXAuYzo1NjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJyVzJyIKIG1zZ3N0ciAia2jDtG5nIG3hu58gxJHGsOG7o2Mg4oCcJXPigJ0iCkBAIC01MzUxLDE2MSArNTU0OCwxNjUgQEAKIG1zZ3N0ciAia2jDtG5nIGto4bubcCBt4bqrdSB0cm9uZyBjw6FjIHThuq1wIHRpbiBuaOG7iyBwaMOibiIKIAogIzogYnVpbHRpbi9ncmVwLmM6NjYyCittc2dpZCAicHJvY2VzcyBiaW5hcnkgZmlsZXMgd2l0aCB0ZXh0Y29udiBmaWx0ZXJzIgorbXNnc3RyICJ44butIGzDvSB04bqtcCB0aW4gbmjhu4sgcGjDom4gduG7m2kgY8OhYyBi4buZIGzhu41jIGB0ZXh0Y29udmAiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2NAogbXNnaWQgImRlc2NlbmQgYXQgbW9zdCA8ZGVwdGg+IGxldmVscyIKIG1zZ3N0ciAiZ2nhuqNtIHh14buRbmcgw610IG5o4bqldCBt4bupYyA8c8OidT4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2NgorIzogYnVpbHRpbi9ncmVwLmM6NjY4CiBtc2dpZCAidXNlIGV4dGVuZGVkIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbnMiCiBtc2dzdHIgImTDuW5nIGJp4buDdSB0aOG7qWMgY2jDrW5oIHF1aSBQT1NJWCBjw7MgbeG7nyBy4buZbmciCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2OQorIzogYnVpbHRpbi9ncmVwLmM6NjcxCiBtc2dpZCAidXNlIGJhc2ljIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbnMgKGRlZmF1bHQpIgogbXNnc3RyICJz4butIGThu6VuZyBiaeG7g3UgdGjhu6ljIGNow61uaCBxdXkga2nhu4N1IFBPU0lYICht4bq3YyDEkeG7i25oKSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjcyCisjOiBidWlsdGluL2dyZXAuYzo2NzQKIG1zZ2lkICJpbnRlcnByZXQgcGF0dGVybnMgYXMgZml4ZWQgc3RyaW5ncyIKIG1zZ3N0ciAiZGnhu4VuIGThu4tjaCBjw6FjIG3huqt1IG5oxrAgbMOgIGNodeG7l2kgY+G7kSDEkeG7i25oIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3NwogbXNnaWQgInVzZSBQZXJsLWNvbXBhdGlibGUgcmVndWxhciBleHByZXNzaW9ucyIKIG1zZ3N0ciAic+G7rSBk4bulbmcgYmnhu4N1IHRo4bupYyBjaMOtbmggcXV5IHTGsMahbmcgdGjDrWNoIFBlcmwiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3OAorIzogYnVpbHRpbi9ncmVwLmM6NjgwCiBtc2dpZCAic2hvdyBsaW5lIG51bWJlcnMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBz4buRIGPhu6dhIGTDsm5nIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MQogbXNnaWQgImRvbid0IHNob3cgZmlsZW5hbWVzIgogbXNnc3RyICJraMO0bmcgaGnhu4NuIHRo4buLIHTDqm4gdOG6rXAgdGluIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MgogbXNnaWQgInNob3cgZmlsZW5hbWVzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyB0w6puIHThuq1wIHRpbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjgyCisjOiBidWlsdGluL2dyZXAuYzo2ODQKIG1zZ2lkICJzaG93IGZpbGVuYW1lcyByZWxhdGl2ZSB0byB0b3AgZGlyZWN0b3J5IgogbXNnc3RyICJoaeG7g24gdGjhu4sgdMOqbiB04bqtcCB0aW4gdMawxqFuZyDEkeG7kWkgduG7m2kgdGjGsCBt4bulYyDEkeG7iW5oICh0b3ApIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4NgogbXNnaWQgInNob3cgb25seSBmaWxlbmFtZXMgaW5zdGVhZCBvZiBtYXRjaGluZyBsaW5lcyIKIG1zZ3N0ciAiY2jhu4kgaGnhu4NuIHRo4buLIHTDqm4gdOG6rXAgdGluIHRoYXkgdsOsIG5o4buvbmcgZMOybmcga2jhu5twIHbhu5tpIG3huqt1IgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4OAogbXNnaWQgInN5bm9ueW0gZm9yIC0tZmlsZXMtd2l0aC1tYXRjaGVzIgogbXNnc3RyICLEkeG7k25nIG5naMSpYSB24bubaSAtLWZpbGVzLXdpdGgtbWF0Y2hlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njg5CisjOiBidWlsdGluL2dyZXAuYzo2OTEKIG1zZ2lkICJzaG93IG9ubHkgdGhlIG5hbWVzIG9mIGZpbGVzIHdpdGhvdXQgbWF0Y2giCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyB0w6puIGNobyBuaOG7r25nIHThuq1wIHRpbiBraMO0bmcga2jhu5twIHbhu5tpIG3huqt1IgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5MwogbXNnaWQgInByaW50IE5VTCBhZnRlciBmaWxlbmFtZXMiCiBtc2dzdHIgInRow6ptIE5VTCB2w6BvIHNhdSB0w6puIHThuq1wIHRpbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjkzCisjOiBidWlsdGluL2dyZXAuYzo2OTUKIG1zZ2lkICJzaG93IHRoZSBudW1iZXIgb2YgbWF0Y2hlcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgc+G7kSBsxrDhu6NuZyBraOG7m3AgdGhheSB2w6wgbmjhu69uZyBkw7JuZyBraOG7m3AgduG7m2kgbeG6q3UiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NAorIzogYnVpbHRpbi9ncmVwLmM6Njk2CiBtc2dpZCAiaGlnaGxpZ2h0IG1hdGNoZXMiCiBtc2dzdHIgInTDtCBzw6FuZyBjw6FpIGto4bubcCIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk2CisjOiBidWlsdGluL2dyZXAuYzo2OTgKIG1zZ2lkICJwcmludCBlbXB0eSBsaW5lIGJldHdlZW4gbWF0Y2hlcyBmcm9tIGRpZmZlcmVudCBmaWxlcyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGTDsm5nIHRy4buRbmcgZ2nhu69hIGPDoWMgbOG6p24ga2jhu5twIHThu6sgY8OhYyB04bqtcCB0aW4ga2jDoWMgYmnhu4d0IgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwMAogbXNnaWQgInNob3cgZmlsZW5hbWUgb25seSBvbmNlIGFib3ZlIG1hdGNoZXMgZnJvbSBzYW1lIGZpbGUiCiBtc2dzdHIgIiIKICJoaeG7g24gdGjhu4sgdMOqbiB04bqtcCB0aW4gbeG7mXQgbOG6p24gcGjDrWEgdHLDqm4gY8OhYyBs4bqnbiBraOG7m3AgdOG7qyBjw7luZyBt4buZdCB04bqtcCB0aW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwMQorIzogYnVpbHRpbi9ncmVwLmM6NzAzCiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgYW5kIGFmdGVyIG1hdGNoZXMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyA8bj4gZMOybmcgbuG7mWkgZHVuZyBwaMOtYSB0csaw4bubYyB2w6Agc2F1IGPDoWMgbOG6p24ga2jhu5twIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNgogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYmVmb3JlIG1hdGNoZXMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyA8bj4gZMOybmcgbuG7mWkgZHVuZyB0csaw4bubYyBraOG7m3AiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwNgorIzogYnVpbHRpbi9ncmVwLmM6NzA4CiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBhZnRlciBtYXRjaGVzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgPG4+IGTDsm5nIG7hu5lpIGR1bmcgc2F1IGto4bubcCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA3CisjOiBidWlsdGluL2dyZXAuYzo3MDkKIG1zZ2lkICJzaG9ydGN1dCBmb3IgLUMgTlVNIgogbXNnc3RyICJE4bqhbmcgdOG6r3QgY2hvIC1DIFPhu5AiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxMAorIzogYnVpbHRpbi9ncmVwLmM6NzEyCiBtc2dpZCAic2hvdyBhIGxpbmUgd2l0aCB0aGUgZnVuY3Rpb24gbmFtZSBiZWZvcmUgbWF0Y2hlcyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGTDsm5nIHbDs2kgdMOqbiBow6BtIHRyxrDhu5tjIGPDoWMgbOG6p24ga2jhu5twIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxNAogbXNnaWQgInNob3cgdGhlIHN1cnJvdW5kaW5nIGZ1bmN0aW9uIgogbXNnc3RyICJoaeG7g24gdGjhu4sgaMOgbSBiYW8gcXVhbmgiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxNQorIzogYnVpbHRpbi9ncmVwLmM6NzE3CiBtc2dpZCAicmVhZCBwYXR0ZXJucyBmcm9tIGZpbGUiCiBtc2dzdHIgIsSR4buNYyBt4bqrdSB04burIHThuq1wLXRpbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE3CisjOiBidWlsdGluL2dyZXAuYzo3MTkKIG1zZ2lkICJtYXRjaCA8cGF0dGVybj4iCiBtc2dzdHIgIm1hdGNoIDxt4bqrdT4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxOQorIzogYnVpbHRpbi9ncmVwLmM6NzIxCiBtc2dpZCAiY29tYmluZSBwYXR0ZXJucyBzcGVjaWZpZWQgd2l0aCAtZSIKIG1zZ3N0ciAidOG7lSBo4bujcCBt4bqrdSDEkcaw4bujYyBjaOG7iSByYSB24bubaSB0w7l5IGNo4buNbiAtZSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzMxCisjOiBidWlsdGluL2dyZXAuYzo3MzMKIG1zZ2lkICJpbmRpY2F0ZSBoaXQgd2l0aCBleGl0IHN0YXR1cyB3aXRob3V0IG91dHB1dCIKIG1zZ3N0ciAixJHGsGEgcmEgZ+G7o2kgw70gduG7m2kgdHLhuqFuZyB0aMOhaSB0aG/DoXQgbcOgIGtow7RuZyBjw7Mga+G6v3QgeHXhuqV0IgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczNQogbXNnaWQgInNob3cgb25seSBtYXRjaGVzIGZyb20gZmlsZXMgdGhhdCBtYXRjaCBhbGwgcGF0dGVybnMiCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyBuaOG7r25nIGPDoWkga2jhu5twIHThu6sgdOG6rXAgdGluIG3DoCBuw7Mga2jhu5twIHRvw6BuIGLhu5kgY8OhYyBt4bqrdSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzM1CisjOiBidWlsdGluL2dyZXAuYzo3MzcKIG1zZ2lkICJzaG93IHBhcnNlIHRyZWUgZm9yIGdyZXAgZXhwcmVzc2lvbiIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDonkgcGjDom4gdMOtY2ggY8O6IHBow6FwIGNobyBiaeG7g3UgdGjhu6ljIOKAnGdyZXDigJ0gKHTDrG0ga2nhur9tKSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzM5CisjOiBidWlsdGluL2dyZXAuYzo3NDEKIG1zZ2lkICJwYWdlciIKIG1zZ3N0ciAidHJhbmcgZ2nhuqV5IgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0MQogbXNnaWQgInNob3cgbWF0Y2hpbmcgZmlsZXMgaW4gdGhlIHBhZ2VyIgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4ga2jhu5twIHRyb25nIHRyYW5nIGdp4bqleSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQyCisjOiBidWlsdGluL2dyZXAuYzo3NDQKIG1zZ2lkICJhbGxvdyBjYWxsaW5nIG9mIGdyZXAoMSkgKGlnbm9yZWQgYnkgdGhpcyBidWlsZCkiCiBtc2dzdHIgImNobyBwaMOpcCBn4buNaSBncmVwKDEpIChi4buLIGLhu48gcXVhIGLhu59pIGzhuqduIGThu4tjaCBuw6B5KSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQzIGJ1aWx0aW4vc2hvdy1yZWYuYzoxODgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0NSBidWlsdGluL3Nob3ctcmVmLmM6MTg3CiBtc2dpZCAic2hvdyB1c2FnZSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWNoIGTDuW5nIgogCi0jOiBidWlsdGluL2dyZXAuYzo4MTAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjgxMgogbXNnaWQgIm5vIHBhdHRlcm4gZ2l2ZW4uIgogbXNnc3RyICJjaMawYSBjaOG7iSByYSBt4bqrdS4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg2NQorIzogYnVpbHRpbi9ncmVwLmM6ODcwCiBtc2dpZCAiLS1vcGVuLWZpbGVzLWluLXBhZ2VyIG9ubHkgd29ya3Mgb24gdGhlIHdvcmt0cmVlIgogbXNnc3RyICItLW9wZW4tZmlsZXMtaW4tcGFnZXIgY2jhu4kgbMOgbSB2aeG7h2MgdHLDqm4gY8OieS1sw6BtLXZp4buHYyIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODg4CisjOiBidWlsdGluL2dyZXAuYzo4OTMKIG1zZ2lkICItLWNhY2hlZCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIC0tbm8taW5kZXguIgogbXNnc3RyICItLWNhY2hlZCBoYXkgLS11bnRyYWNrZWQga2jDtG5nIMSRxrDhu6NjIHPhu60gZOG7pW5nIHbhu5tpIC0tbm8taW5kZXguIgogCi0jOiBidWlsdGluL2dyZXAuYzo4OTMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg5OAogbXNnaWQgIi0tbm8taW5kZXggb3IgLS11bnRyYWNrZWQgY2Fubm90IGJlIHVzZWQgd2l0aCByZXZzLiIKIG1zZ3N0ciAiIgogIi0tbm8taW5kZXggaGF5IC0tdW50cmFja2VkIGtow7RuZyDEkcaw4bujYyBz4butIGThu6VuZyBjw7luZyB24bubaSBjw6FjIHTDuXkgY2jhu41uIGxpw6puICIKICJxdWFuIMSR4bq/biByZXZzLiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODk2CisjOiBidWlsdGluL2dyZXAuYzo5MDEKIG1zZ2lkICItLVtuby1dZXhjbHVkZS1zdGFuZGFyZCBjYW5ub3QgYmUgdXNlZCBmb3IgdHJhY2tlZCBjb250ZW50cy4iCiBtc2dzdHIgIi0tW25vLV1leGNsdWRlLXN0YW5kYXJkIGtow7RuZyB0aOG7gyBz4butIGThu6VuZyBjaG8gbuG7mWkgZHVuZyBsxrB1IGThuqV1IHbhur90LiIKIAotIzogYnVpbHRpbi9ncmVwLmM6OTA0CisjOiBidWlsdGluL2dyZXAuYzo5MDkKIG1zZ2lkICJib3RoIC0tY2FjaGVkIGFuZCB0cmVlcyBhcmUgZ2l2ZW4uIgogbXNnc3RyICJj4bqjIGhhaSAtLWNhY2hlZCB2w6AgY8OhYyBjw6J5IHBo4bqjaSDEkcaw4bujYyBjaOG7iSByYS4iCiAKQEAgLTU2NTgsNyArNTg1OSw3IEBACiAjOiBidWlsdGluL2hlbHAuYzo0NjAgYnVpbHRpbi9oZWxwLmM6NDc2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVzYWdlOiAlcyVzIgotbXNnc3RyICJjw6FjaCBz4butIGThu6VuZzogJXMlcyIKK21zZ3N0ciAiY8OhY2ggZMO5bmc6ICVzJXMiCiAKICM6IGJ1aWx0aW4vaGVscC5jOjQ5MgogIywgYy1mb3JtYXQKQEAgLTU3NjAsOCArNTk2MSw4IEBACiBtc2dpZCAiU0hBMSBDT0xMSVNJT04gRk9VTkQgV0lUSCAlcyAhIgogbXNnc3RyICJT4buwIFZBIENI4bqgTSBTSEExIMSQw4MgWOG6olkgUkEgVuG7mkkgJXMhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjkgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjYyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjkgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjYzCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgxJHhu41jICVzIgpAQCAtNTc5MCwxNTUgKzU5OTEsMTU1IEBACiBtc2dpZCAiTm90IGFsbCBjaGlsZCBvYmplY3RzIG9mICVzIGFyZSByZWFjaGFibGUiCiBtc2dzdHIgIktow7RuZyBwaOG6o2kgdOG6pXQgY+G6oyBjw6FjIMSR4buRaSB0xrDhu6NuZyBjb24gY+G7p2EgJXMgbMOgIGPDsyB0aOG7gyB24bubaSB04bubaSDEkcaw4bujYyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODM4IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2OAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODM5IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2OQogbXNnaWQgImZhaWxlZCB0byBhcHBseSBkZWx0YSIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIMOhcCBk4bulbmcgZGVsdGEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMTAKIG1zZ2lkICJSZWNlaXZpbmcgb2JqZWN0cyIKIG1zZ3N0ciAixJBhbmcgbmjhuq1uIHbhu4EgY8OhYyDEkeG7kWkgdMaw4bujbmciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMTAKIG1zZ2lkICJJbmRleGluZyBvYmplY3RzIgogbXNnc3RyICJDw6FjIMSR4buRaSB0xrDhu6NuZyBi4bqjbmcgbeG7pWMgbOG7pWMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzYKIG1zZ2lkICJwYWNrIGlzIGNvcnJ1cHRlZCAoU0hBMSBtaXNtYXRjaCkiCiBtc2dzdHIgInBhY2sgYuG7iyBzYWkgaOG7j25nIChTSEExIGtow7RuZyBraOG7m3ApIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQxCiBtc2dpZCAiY2Fubm90IGZzdGF0IHBhY2tmaWxlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZnN0YXQgcGFja2ZpbGUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDQKIG1zZ2lkICJwYWNrIGhhcyBqdW5rIGF0IHRoZSBlbmQiCiBtc2dzdHIgInBhY2sgY8OzIHBo4bqnbiB0aOG7q2Eg4bufIGN14buRaSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA1NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA1NQogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkgaW4gcGFyc2VfcGFja19vYmplY3RzKCkiCiBtc2dzdHIgImzhu5luIHjhu5luIGjGoW4gY+G6oyDEkWnDqm4gcuG7kyBraGkgY2jhuqF5IGjDoG0gcGFyc2VfcGFja19vYmplY3RzKCkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNzcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNzgKIG1zZ2lkICJSZXNvbHZpbmcgZGVsdGFzIgogbXNnc3RyICLEkGFuZyBwaMOibiBnaeG6o2kgY8OhYyBkZWx0YSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4NworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyB04bqhbyB0dXnhur9uOiAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyOQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzMAogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkiCiBtc2dzdHIgImzhu5luIHjhu5luIGjGoW4gY+G6oyDEkWnDqm4gcuG7kyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzNworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb21wbGV0ZWQgd2l0aCAlZCBsb2NhbCBvYmplY3RzIgogbXNnc3RyICLEkeG6p3kgxJHhu6cgduG7m2kgJWQgxJHhu5FpIHTGsOG7o25nIG7hu5lpIGLhu5kiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5leHBlY3RlZCB0YWlsIGNoZWNrc3VtIGZvciAlcyAoZGlzayBjb3JydXB0aW9uPykiCiBtc2dzdHIgIlThu5VuZyBraeG7g20gdHJhIHRhaWwga2jDtG5nIG5oxrAgbW9uZyDEkeG7o2kgY2hvICVzICjEkcSpYSBo4buPbmc/KSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE1MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhIgogbXNnaWRfcGx1cmFsICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhcyIKIG1zZ3N0clswXSAicGFjayBjw7MgJWQgZGVsdGEgY2jGsGEgxJHGsOG7o2MgZ2nhuqNpIHF1eeG6v3QiCiBtc2dzdHJbMV0gInBhY2sgY8OzICVkIGRlbHRhIGNoxrBhIMSRxrDhu6NjIGdp4bqjaSBxdXnhur90IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTc2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTc3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBkZWZsYXRlIGFwcGVuZGVkIG9iamVjdCAoJWQpIgotbXNnc3RyICJraMO0bmcgdGjhu4MgeOG6oyDEkeG7kWkgdMaw4bujbmcgbuG7kWkgdGjDqm0gKCVkKSIKK21zZ3N0ciAia2jDtG5nIHRo4buDIHjhuqMgbsOpbiDEkeG7kWkgdMaw4bujbmcgbuG7kWkgdGjDqm0gKCVkKSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJsb2NhbCBvYmplY3QgJXMgaXMgY29ycnVwdCIKIG1zZ3N0ciAixJHhu5FpIHTGsOG7o25nIG7hu5lpIGLhu5kgJXMgYuG7iyBo4buPbmciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNzkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyODAKIG1zZ2lkICJlcnJvciB3aGlsZSBjbG9zaW5nIHBhY2sgZmlsZSIKLW1zZ3N0ciAiZ+G6t3AgbOG7l2kgdHJvbmcga2hpIMSRw7NuZyB04bqtcCB0aW4gcGFjayIKK21zZ3N0ciAiZ+G6t3AgbOG7l2kgdHJvbmcga2hpIMSRw7NuZyB04bqtcCB0aW4gZ8OzaSAocGFjaykiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyOTIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyOTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHdyaXRlIGtlZXAgZmlsZSAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZ2hpIHThuq1wIHRpbiBnaeG7ryBs4bqhaSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMwMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMwMQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY2xvc2Ugd3JpdHRlbiBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSRw7NuZyB04bqtcCB0aW4gZ2nhu68gbOG6oWkgxJHDoyDEkcaw4bujYyBnaGkg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTQKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgcGFjayBmaWxlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgbMawdSB04bqtcCB0aW4gcGFjayIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMyNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMyNQogbXNnaWQgImNhbm5vdCBzdG9yZSBpbmRleCBmaWxlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgbMawdSB0cuG7ryB04bqtcCB0aW4gZ2hpIG3hu6VjIGzhu6VjIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzU3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzU4CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBwYWNrLmluZGV4dmVyc2lvbj0lPFBSSXUzMj4iCiBtc2dzdHIgInNhaSBwYWNrLmluZGV4dmVyc2lvbj0lPFBSSXUzMj4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgdGhyZWFkcyBzcGVjaWZpZWQgKCVkKSIKIG1zZ3N0ciAic+G7kSB0dXnhur9uIGNo4buJIHJhIGtow7RuZyBo4bujcCBs4buHICglZCkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2OCBidWlsdGluL2luZGV4LXBhY2suYzoxNTQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHRocmVhZHMgc3VwcG9ydCwgaWdub3JpbmcgJXMiCiBtc2dzdHIgImtow7RuZyBo4buXIHRy4bujIMSRYSB0dXnhur9uLCBi4buPIHF1YSAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGZpbGUgJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIG3hu58gdOG6rXAgdGluIHBhY2sgxJHDoyBz4bq1biBjw7Mg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gZXhpc3RpbmcgcGFjayBpZHggZmlsZSBmb3IgJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIG3hu58gdOG6rXAgdGluIOKAnHBhY2sgaWR44oCdIGNobyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJub24gZGVsdGE6ICVkIG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAibm9uIGRlbHRhOiAlZCBvYmplY3RzIgogbXNnc3RyWzBdICJraMO0bmcgZGVsdGE6ICVkIMSR4buRaSB0xrDhu6NuZyIKIG1zZ3N0clsxXSAia2jDtG5nIGRlbHRhOiAlZCDEkeG7kWkgdMaw4bujbmciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0ODEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3QiCiBtc2dpZF9wbHVyYWwgImNoYWluIGxlbmd0aCA9ICVkOiAlbHUgb2JqZWN0cyIKIG1zZ3N0clswXSAiY2hp4buBdSBkw6BpIHjDrWNoID0gJWQ6ICVsdSDEkeG7kWkgdMaw4bujbmciCiBtc2dzdHJbMV0gImNoaeG7gXUgZMOgaSB4w61jaCA9ICVkOiAlbHUgxJHhu5FpIHTGsOG7o25nIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTA5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTEwCiBtc2dpZCAiQ2Fubm90IGNvbWUgYmFjayB0byBjd2QiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBxdWF5IGzhuqFpIGN3ZCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU1NyBidWlsdGluL2luZGV4LXBhY2suYzoxNTYwCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTcyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NTggYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3MyBidWlsdGluL2luZGV4LXBhY2suYzoxNTc3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCAlcyIKIG1zZ3N0ciAiJXMgc2FpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTkwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTkxCiBtc2dpZCAiLS1maXgtdGhpbiBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IC0tc3RkaW4iCiBtc2dzdHIgIi0tZml4LXRoaW4ga2jDtG5nIHRo4buDIMSRxrDhu6NjIGTDuW5nIG3DoCBraMO0bmcgY8OzIC0tc3RkaW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5NSBidWlsdGluL2luZGV4LXBhY2suYzoxNjA1CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2tmaWxlIG5hbWUgJyVzJyBkb2VzIG5vdCBlbmQgd2l0aCAnLnBhY2snIgogbXNnc3RyICJ0w6puIHThuq1wIHRpbiBwYWNrZmlsZSDigJwlc+KAnSBraMO0bmcgxJHGsOG7o2Mga+G6v3QgdGjDumMgYuG6sW5nIMSRdcO0aSDigJwucGFja+KAnSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYxMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYxNAogbXNnaWQgIi0tdmVyaWZ5IHdpdGggbm8gcGFja2ZpbGUgbmFtZSBnaXZlbiIKIG1zZ3N0ciAiZMO5bmcgdMO5eSBjaOG7jW4gLS12ZXJpZnkgbcOgIGtow7RuZyDEkcawYSByYSB0w6puIHBhY2tmaWxlIgogCkBAIC02MDI3LDExICs2MjI4LDYgQEAKIG1zZ2lkICJ1bmFibGUgdG8gbW92ZSAlcyB0byAlcyIKIG1zZ3N0ciAia2jDtG5nIGRpIGNodXnhu4NuIMSRxrDhu6NjICVzIHbDoG8gJXMiCiAKLSM6IGJ1aWx0aW4vaW5pdC1kYi5jOjM2MwotIywgYy1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGdpdCBsaW5rICVzIgotbXNnc3RyICJLaMO0bmcgdGjhu4MgdOG6oW8gbGnDqm4ga+G6v3QgZ2l0IOKAnCVz4oCdIgotCiAjLgogIy4gKiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICclcycgaXMgZWl0aGVyICJSZWluaXRpYWxpemVkCiAjLiAqIGV4aXN0aW5nIiBvciAiSW5pdGlhbGl6ZWQgZW1wdHkiLCB0aGUgc2Vjb25kICIgc2hhcmVkIiBvcgpAQCAtNjA2MCw4ICs2MjU2LDggQEAKIAogIzogYnVpbHRpbi9pbml0LWRiLmM6NDY3CiBtc2dpZCAiIgotImdpdCBpbml0IFstcSB8IC0tcXVpZXRdIFstLWJhcmVdIFstLXRlbXBsYXRlPTx0ZW1wbGF0ZS1kaXJlY3Rvcnk+XSBbLS1zaGFyZWQiCi0iWz08cGVybWlzc2lvbnM+XV0gW2RpcmVjdG9yeV0iCisiZ2l0IGluaXQgWy1xIHwgLS1xdWlldF0gWy0tYmFyZV0gWy0tdGVtcGxhdGU9PHRlbXBsYXRlLWRpcmVjdG9yeT5dIFstLSIKKyJzaGFyZWRbPTxwZXJtaXNzaW9ucz5dXSBbZGlyZWN0b3J5XSIKIG1zZ3N0ciAiIgogImdpdCBpbml0IFstcSB8IC0tcXVpZXRdIFstLWJhcmVdIFstLXRlbXBsYXRlPTx0aMawLW3hu6VjLXThuqFtPl0gWy0tc2hhcmVkWz08Y8OhYy0iCiAicXV54buBbj5dXSBbdGjGsC1t4bulY10iCkBAIC02MDc0LDcgKzYyNzAsNyBAQAogbXNnaWQgInNwZWNpZnkgdGhhdCB0aGUgZ2l0IHJlcG9zaXRvcnkgaXMgdG8gYmUgc2hhcmVkIGFtb25nc3Qgc2V2ZXJhbCB1c2VycyIKIG1zZ3N0ciAiY2jhu4kgcmEgY8OhaSBtw6Aga2hvIGdpdCDEkcaw4bujYyBjaGlhIHPhursgZ2nhu69hIG5oaeG7gXUgbmfGsOG7nWkgZMO5bmciCiAKLSM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc1CisjOiBidWlsdGluL2luaXQtZGIuYzo0OTMgYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NSBidWlsdGluL3JlcGFjay5jOjE1NQogbXNnaWQgImJlIHF1aWV0IgogbXNnc3RyICJpbSBs4bq3bmciCiAKQEAgLTYxMTQsMjQ3ICs2MzEwLDI0NyBAQAogbXNnaWQgIiAgIG9yOiBnaXQgc2hvdyBbb3B0aW9uc10gPG9iamVjdD4uLi4iCiBtc2dzdHIgIiAgaGF5OiBnaXQgc2hvdyBbY8OhYy10w7l5LWNo4buNbl0gPMSR4buRaS10xrDhu6NuZz4uLi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI0CisjOiBidWlsdGluL2xvZy5jOjEyNQogbXNnaWQgInN1cHByZXNzIGRpZmYgb3V0cHV0IgogbXNnc3RyICJjaOG6t24gbeG7jWkga+G6v3QgeHXhuqV0IHThu6sgZGlmZiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjUKKyM6IGJ1aWx0aW4vbG9nLmM6MTI2CiBtc2dpZCAic2hvdyBzb3VyY2UiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBtw6Mgbmd14buTbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjYKKyM6IGJ1aWx0aW4vbG9nLmM6MTI3CiBtc2dpZCAiVXNlIG1haWwgbWFwIGZpbGUiCiBtc2dzdHIgIlPhu60gZOG7pW5nIHThuq1wIHRpbiDDoW5oIHjhuqEgdGjGsCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjcKKyM6IGJ1aWx0aW4vbG9nLmM6MTI4CiBtc2dpZCAiZGVjb3JhdGUgb3B0aW9ucyIKIG1zZ3N0ciAiY8OhYyB0w7l5IGNo4buNbiB0cmFuZyB0csOtIgogCi0jOiBidWlsdGluL2xvZy5jOjIzMAorIzogYnVpbHRpbi9sb2cuYzoyMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmluYWwgb3V0cHV0OiAlZCAlc1xuIgogbXNnc3RyICJL4bq/dCB4deG6pXQgY3Xhu5FpIGPDuW5nOiAlZCAlc1xuIgogCi0jOiBidWlsdGluL2xvZy5jOjQ1MyBidWlsdGluL2xvZy5jOjU0NQorIzogYnVpbHRpbi9sb2cuYzo0NzMgYnVpbHRpbi9sb2cuYzo1NjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgb2JqZWN0ICVzIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhu41jIMSR4buRaSB0xrDhu6NuZyAlcyIKIAotIzogYnVpbHRpbi9sb2cuYzo1NjkKKyM6IGJ1aWx0aW4vbG9nLmM6NTg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gdHlwZTogJWQiCiBtc2dzdHIgIktow7RuZyBuaOG6rW4gcmEga2nhu4N1OiAlZCIKIAotIzogYnVpbHRpbi9sb2cuYzo2NjkKKyM6IGJ1aWx0aW4vbG9nLmM6Njg5CiBtc2dpZCAiZm9ybWF0LmhlYWRlcnMgd2l0aG91dCB2YWx1ZSIKIG1zZ3N0ciAiZm9ybWF0LmhlYWRlcnMga2jDtG5nIGPDsyBnacOhIHRy4buLIGPhu6UgdGjhu4MiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzUxCisjOiBidWlsdGluL2xvZy5jOjc3MQogbXNnaWQgIm5hbWUgb2Ygb3V0cHV0IGRpcmVjdG9yeSBpcyB0b28gbG9uZyIKIG1zZ3N0ciAidMOqbiBj4bunYSB0aMawIG3hu6VjIGvhur90IHh14bqldCBxdcOhIGTDoGkiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzY3CisjOiBidWlsdGluL2xvZy5jOjc4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBwYXRjaCBmaWxlICVzIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgbeG7nyB04bqtcCB0aW4gbWnhur9uZyB2w6E6ICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjc4MQorIzogYnVpbHRpbi9sb2cuYzo4MDEKIG1zZ2lkICJOZWVkIGV4YWN0bHkgb25lIHJhbmdlLiIKIG1zZ3N0ciAiQ+G6p24gY2jDrW5oIHjDoWMgbeG7mXQgdsO5bmcuIgogCi0jOiBidWlsdGluL2xvZy5jOjc4OQorIzogYnVpbHRpbi9sb2cuYzo4MDkKIG1zZ2lkICJOb3QgYSByYW5nZS4iCiBtc2dzdHIgIktow7RuZyBwaOG6o2kgbMOgIG3hu5l0IHbDuW5nLiIKIAotIzogYnVpbHRpbi9sb2cuYzo4OTEKKyM6IGJ1aWx0aW4vbG9nLmM6OTExCiBtc2dpZCAiQ292ZXIgbGV0dGVyIG5lZWRzIGVtYWlsIGZvcm1hdCIKIG1zZ3N0ciAi4oCdQ292ZXIgbGV0dGVy4oCdIGPhuqduIGNobyDEkeG7i25oIGThuqFuZyB0aMawIgogCi0jOiBidWlsdGluL2xvZy5jOjk2NworIzogYnVpbHRpbi9sb2cuYzo5ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5zYW5lIGluLXJlcGx5LXRvOiAlcyIKIG1zZ3N0ciAiaW4tcmVwbHktdG8gxJFpw6puIHLhu5M6ICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjk5NQorIzogYnVpbHRpbi9sb2cuYzoxMDE1CiBtc2dpZCAiZ2l0IGZvcm1hdC1wYXRjaCBbb3B0aW9uc10gWzxzaW5jZT4gfCA8cmV2aXNpb24gcmFuZ2U+XSIKIG1zZ3N0ciAiZ2l0IGZvcm1hdC1wYXRjaCBbY8OhYy10w7l5LWNo4buNbl0gWzxr4buDLXThu6s+IHwgPHbDuW5nLXhlbS14w6l0Pl0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA0MAorIzogYnVpbHRpbi9sb2cuYzoxMDYwCiBtc2dpZCAiVHdvIG91dHB1dCBkaXJlY3Rvcmllcz8iCiBtc2dzdHIgIkhhaSB0aMawIG3hu6VjIGvhur90IHh14bqldD8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1NQorIzogYnVpbHRpbi9sb2cuYzoxMTc1CiBtc2dpZCAidXNlIFtQQVRDSCBuL21dIGV2ZW4gd2l0aCBhIHNpbmdsZSBwYXRjaCIKIG1zZ3N0ciAiZMO5bmcgW1BBVENIIG4vbV0gbmdheSBj4bqjIHbhu5tpIG1p4bq/bmcgdsOhIMSRxqFuIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3OAogbXNnaWQgInVzZSBbUEFUQ0hdIGV2ZW4gd2l0aCBtdWx0aXBsZSBwYXRjaGVzIgogbXNnc3RyICJkw7luZyBbVsOBXSBuZ2F5IGPhuqMgduG7m2kgY8OhYyBtaeG6v25nIHbDoSBwaOG7qWMgdOG6oXAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE2MgorIzogYnVpbHRpbi9sb2cuYzoxMTgyCiBtc2dpZCAicHJpbnQgcGF0Y2hlcyB0byBzdGFuZGFyZCBvdXQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBtaeG6v25nIHbDoSByYSDEkeG6p3UgcmEgY2h14bqpbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTY0CisjOiBidWlsdGluL2xvZy5jOjExODQKIG1zZ2lkICJnZW5lcmF0ZSBhIGNvdmVyIGxldHRlciIKIG1zZ3N0ciAidOG6oW8gYsOsIHRoxrAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE2NgorIzogYnVpbHRpbi9sb2cuYzoxMTg2CiBtc2dpZCAidXNlIHNpbXBsZSBudW1iZXIgc2VxdWVuY2UgZm9yIG91dHB1dCBmaWxlIG5hbWVzIgogbXNnc3RyICJz4butIGThu6VuZyBjaOG7l2kgZMOjeSBz4buRIGThuqFuZyDEkcahbiBnaeG6o24gY2hvIHTDqm4gdOG6rXAtdGluIHh14bqldCByYSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTY3CisjOiBidWlsdGluL2xvZy5jOjExODcKIG1zZ2lkICJzZngiCiBtc2dzdHIgInNmeCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTY4CisjOiBidWlsdGluL2xvZy5jOjExODgKIG1zZ2lkICJ1c2UgPHNmeD4gaW5zdGVhZCBvZiAnLnBhdGNoJyIKIG1zZ3N0ciAic+G7rSBk4bulbmcgPHNmeD4gdGhheSBjaG8g4oCcLnBhdGNo4oCdIgogCi0jOiBidWlsdGluL2xvZy5jOjExNzAKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MAogbXNnaWQgInN0YXJ0IG51bWJlcmluZyBwYXRjaGVzIGF0IDxuPiBpbnN0ZWFkIG9mIDEiCiBtc2dzdHIgImLhuq90IMSR4bqndSDEkcOhbmggc+G7kSBtaeG6v25nIHbDoSB04burIDxuPiB0aGF5IHbDrCAxIgogCi0jOiBidWlsdGluL2xvZy5jOjExNzIKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MgogbXNnaWQgIm1hcmsgdGhlIHNlcmllcyBhcyBOdGggcmUtcm9sbCIKIG1zZ3N0ciAixJHDoW5oIGThuqV1IGNodeG7l2kgbuG7kWkgdGnhur9wIGThuqFuZyB0aOG7qS1OIHJlLXJvbGwiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE3NAorIzogYnVpbHRpbi9sb2cuYzoxMTk0CiBtc2dpZCAiVXNlIFs8cHJlZml4Pl0gaW5zdGVhZCBvZiBbUEFUQ0hdIgogbXNnc3RyICJEw7luZyBbPHRp4buBbi104buRPl0gdGhheSBjaG8gW1bDgV0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE3NworIzogYnVpbHRpbi9sb2cuYzoxMTk3CiBtc2dpZCAic3RvcmUgcmVzdWx0aW5nIGZpbGVzIGluIDxkaXI+IgogbXNnc3RyICJsxrB1IGPDoWMgdOG6rXAgdGluIGvhur90IHF14bqjIHRyb25nIDx0Lm3hu6VjPiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTgwCisjOiBidWlsdGluL2xvZy5jOjEyMDAKIG1zZ2lkICJkb24ndCBzdHJpcC9hZGQgW1BBVENIXSIKIG1zZ3N0ciAia2jDtG5nIHN0cmlwL2FkZCBbVsOBXSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTgzCisjOiBidWlsdGluL2xvZy5jOjEyMDMKIG1zZ2lkICJkb24ndCBvdXRwdXQgYmluYXJ5IGRpZmZzIgogbXNnc3RyICJraMO0bmcga+G6v3QgeHXhuqV0IGRpZmYgKG5o4buvbmcga2jDoWMgYmnhu4d0KSBuaOG7iyBwaMOibiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTg1CisjOiBidWlsdGluL2xvZy5jOjEyMDUKIG1zZ2lkICJkb24ndCBpbmNsdWRlIGEgcGF0Y2ggbWF0Y2hpbmcgYSBjb21taXQgdXBzdHJlYW0iCiBtc2dzdHIgImtow7RuZyBiYW8gZ+G7k20gbWnhur9uZyB2w6Ega2jhu5twIHbhu5tpIG3hu5l0IGzhuqduIGNodXnhu4NuIGdpYW8gdGjGsOG7o25nIG5ndeG7k24iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE4NworIzogYnVpbHRpbi9sb2cuYzoxMjA3CiBtc2dpZCAic2hvdyBwYXRjaCBmb3JtYXQgaW5zdGVhZCBvZiBkZWZhdWx0IChwYXRjaCArIHN0YXQpIgogbXNnc3RyICJoaeG7g24gdGjhu4sgxJHhu4tuaCBk4bqhbmcgbWnhur9uZyB2w6EgdGhheSB2w6wgbeG6t2MgxJHhu4tuaCAobWnhur9uZyB2w6EgKyB0aOG7kW5nIGvDqikiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE4OQorIzogYnVpbHRpbi9sb2cuYzoxMjA5CiBtc2dpZCAiTWVzc2FnaW5nIgogbXNnc3RyICJM4budaSBuaOG6r24iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5MAorIzogYnVpbHRpbi9sb2cuYzoxMjEwCiBtc2dpZCAiaGVhZGVyIgogbXNnc3RyICLEkeG6p3UgxJHhu4EgdGjGsCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTkxCisjOiBidWlsdGluL2xvZy5jOjEyMTEKIG1zZ2lkICJhZGQgZW1haWwgaGVhZGVyIgogbXNnc3RyICJ0aMOqbSDEkeG6p3UgxJHhu4EgdGjGsCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTkyIGJ1aWx0aW4vbG9nLmM6MTE5NAorIzogYnVpbHRpbi9sb2cuYzoxMjEyIGJ1aWx0aW4vbG9nLmM6MTIxNAogbXNnaWQgImVtYWlsIgogbXNnc3RyICJ0aMawIMSRaeG7h24gdOG7rSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTkyCisjOiBidWlsdGluL2xvZy5jOjEyMTIKIG1zZ2lkICJhZGQgVG86IGhlYWRlciIKIG1zZ3N0ciAidGjDqm0gVG86IMSR4bqndSDEkeG7gSB0aMawIgogCi0jOiBidWlsdGluL2xvZy5jOjExOTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxNAogbXNnaWQgImFkZCBDYzogaGVhZGVyIgogbXNnc3RyICJ0aMOqbSBDYzogxJHhuqd1IMSR4buBIHRoxrAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5NgorIzogYnVpbHRpbi9sb2cuYzoxMjE2CiBtc2dpZCAiaWRlbnQiCiBtc2dzdHIgInRo4buldCBs4buBIgogCi0jOiBidWlsdGluL2xvZy5jOjExOTcKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxNwogbXNnaWQgInNldCBGcm9tIGFkZHJlc3MgdG8gPGlkZW50PiAob3IgY29tbWl0dGVyIGlkZW50IGlmIGFic2VudCkiCiBtc2dzdHIgIiIKLSLEkeG6t3QgYMSQ4buLYSBjaOG7iSBn4butaScgdGjDoG5oIDx0aOG7pSBs4buBPiAoaG/hurdjIHRo4buldCBs4buBIG5nxrDhu51pIGNvbW1pdCBu4bq/dSBi4buPIHF1w6puKSIKKyLEkeG6t3Qg4oCcxJDhu4thIGNo4buJIGfhu61p4oCdIHRow6BuaCA8dGjhu6UgbOG7gT4gKGhv4bq3YyB0aOG7pXQgbOG7gSBuZ8aw4budaSBjb21taXQgbuG6v3UgYuG7jyBxdcOqbikiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5OQorIzogYnVpbHRpbi9sb2cuYzoxMjE5CiBtc2dpZCAibWVzc2FnZS1pZCIKIG1zZ3N0ciAibWVzc2FnZS1pZCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjAwCisjOiBidWlsdGluL2xvZy5jOjEyMjAKIG1zZ2lkICJtYWtlIGZpcnN0IG1haWwgYSByZXBseSB0byA8bWVzc2FnZS1pZD4iCiBtc2dzdHIgImTDuW5nIHRoxrAgxJHhuqd1IHRpw6puIMSR4buDIHRy4bqjIGzhu51pIDxtZXNzYWdlLWlkPiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjAxIGJ1aWx0aW4vbG9nLmM6MTIwNAorIzogYnVpbHRpbi9sb2cuYzoxMjIxIGJ1aWx0aW4vbG9nLmM6MTIyNAogbXNnaWQgImJvdW5kYXJ5IgogbXNnc3RyICJyYW5oIGdp4bubaSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjAyCisjOiBidWlsdGluL2xvZy5jOjEyMjIKIG1zZ2lkICJhdHRhY2ggdGhlIHBhdGNoIgogbXNnc3RyICLEkcOtbmgga8OobSBtaeG6v25nIHbDoSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjA1CisjOiBidWlsdGluL2xvZy5jOjEyMjUKIG1zZ2lkICJpbmxpbmUgdGhlIHBhdGNoIgogbXNnc3RyICJkw7luZyBtaeG6v25nIHbDoSBsw6BtIG7hu5lpIGR1bmciCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTIwOQorIzogYnVpbHRpbi9sb2cuYzoxMjI5CiBtc2dpZCAiZW5hYmxlIG1lc3NhZ2UgdGhyZWFkaW5nLCBzdHlsZXM6IHNoYWxsb3csIGRlZXAiCiBtc2dzdHIgImNobyBwaMOpcCBsdeG7k25nIGzhu51pIG5o4bqvbiwga2nhu4N1OiDigJxzaGFsbG934oCdLCDigJxkZWVw4oCdIgogCi0jOiBidWlsdGluL2xvZy5jOjEyMTEKKyM6IGJ1aWx0aW4vbG9nLmM6MTIzMQogbXNnaWQgInNpZ25hdHVyZSIKIG1zZ3N0ciAiY2jhu68ga8O9IgogCi0jOiBidWlsdGluL2xvZy5jOjEyMTIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIzMgogbXNnaWQgImFkZCBhIHNpZ25hdHVyZSIKIG1zZ3N0ciAidGjDqm0gY2jhu68ga8O9IgogCi0jOiBidWlsdGluL2xvZy5jOjEyMTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIzMwogbXNnaWQgImRvbid0IHByaW50IHRoZSBwYXRjaCBmaWxlbmFtZXMiCiBtc2dzdHIgImtow7RuZyBoaeG7g24gdGjhu4sgY8OhYyB0w6puIHThuq1wIHRpbiBj4bunYSBtaeG6v25nIHbDoSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjg4CisjOiBidWlsdGluL2xvZy5jOjEzMDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBpZGVudCBsaW5lOiAlcyIKIG1zZ3N0ciAiZMOybmcgdGjhu6V0IGzhu4Ega2jDtG5nIGjhu6NwIGzhu4c6ICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjEzMDMKKyM6IGJ1aWx0aW4vbG9nLmM6MTMyMgogbXNnaWQgIi1uIGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKIG1zZ3N0ciAiLW4gdsOgICAtayBsb+G6oWkgdOG7qyBs4bqrbiBuaGF1LiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzA1CisjOiBidWlsdGluL2xvZy5jOjEzMjQKIG1zZ2lkICItLXN1YmplY3QtcHJlZml4IGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKIG1zZ3N0ciAiLS1zdWJqZWN0LXByZWZpeCB2w6AgLWsgeHVuZyBraOG6r2MgbmhhdS4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTMxMworIzogYnVpbHRpbi9sb2cuYzoxMzMyCiBtc2dpZCAiLS1uYW1lLW9ubHkgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiLS1uYW1lLW9ubHkga2jDtG5nIGjhu6NwIGzDvSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzE1CisjOiBidWlsdGluL2xvZy5jOjEzMzQKIG1zZ2lkICItLW5hbWUtc3RhdHVzIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tbmFtZS1zdGF0dXMga2jDtG5nIGjhu6NwIGzDvSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzE3CisjOiBidWlsdGluL2xvZy5jOjEzMzYKIG1zZ2lkICItLWNoZWNrIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tY2hlY2sga2jDtG5nIGjhu6NwIGzDvSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzQwCisjOiBidWlsdGluL2xvZy5jOjEzNTkKIG1zZ2lkICJzdGFuZGFyZCBvdXRwdXQsIG9yIGRpcmVjdG9yeSwgd2hpY2ggb25lPyIKIG1zZ3N0ciAixJHhuqd1IHJhIGNodeG6qW4sIGhheSB0aMawIG3hu6VjLCBjaOG7jW4gY8OhaSBuw6BvPyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzQyCisjOiBidWlsdGluL2xvZy5jOjEzNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHThuqFvIHRoxrAgbeG7pWMg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQ5MAorIzogYnVpbHRpbi9sb2cuYzoxNTA5CiBtc2dpZCAiRmFpbGVkIHRvIGNyZWF0ZSBvdXRwdXQgZmlsZXMiCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSB04bqhbyBjw6FjIHThuq1wIHRpbiBr4bq/dCB4deG6pXQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTUzOQorIzogYnVpbHRpbi9sb2cuYzoxNTU4CiBtc2dpZCAiZ2l0IGNoZXJyeSBbLXZdIFs8dXBzdHJlYW0+IFs8aGVhZD4gWzxsaW1pdD5dXV0iCiBtc2dzdHIgImdpdCBjaGVycnkgWy12XSBbPHRoxrDhu6NuZy1uZ3Xhu5NuPiBbPGhlYWQ+IFs8Z2nhu5tpLWjhuqFuPl1dXSIKIAotIzogYnVpbHRpbi9sb2cuYzoxNTk0CisjOiBidWlsdGluL2xvZy5jOjE2MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNvdWxkIG5vdCBmaW5kIGEgdHJhY2tlZCByZW1vdGUgYnJhbmNoLCBwbGVhc2Ugc3BlY2lmeSA8dXBzdHJlYW0+IG1hbnVhbGx5LlxuIgpAQCAtNjM2MiwxMzkgKzY1NTgsMTM5IEBACiAiS2jDtG5nIHTDrG0gdGjhuqV5IG5ow6FuaCBt4bqhbmcgYuG7iyB0aGVvIHbhur90LCBow6N5IGNo4buJIMSR4buLbmggPHRoxrDhu6NuZy1uZ3Xhu5NuPiBt4buZdCBjw6FjaCAiCiAidGjhu6cgY8O0bmcuXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTYwNyBidWlsdGluL2xvZy5jOjE2MDkgYnVpbHRpbi9sb2cuYzoxNjIxCisjOiBidWlsdGluL2xvZy5jOjE2MjYgYnVpbHRpbi9sb2cuYzoxNjI4IGJ1aWx0aW4vbG9nLmM6MTY0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIGNvbW1pdCAlcyIKIG1zZ3N0ciAiS2jDtG5nIGhp4buDdSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICVzIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDA4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6Mzk4CiBtc2dpZCAiZ2l0IGxzLWZpbGVzIFtvcHRpb25zXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiZ2l0IGxzLWZpbGVzIFtjw6FjLXTDuXktY2jhu41uXSBbPHThuq1wLXRpbj4uLi5dIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDU1CiBtc2dpZCAiaWRlbnRpZnkgdGhlIGZpbGUgc3RhdHVzIHdpdGggdGFncyIKIG1zZ3N0ciAibmjhuq1uIGThuqFuZyBjw6FjIHRy4bqhbmcgdGjDoWkgdOG6rXAgdGluIHbhu5tpIHRo4bq7IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDU3CiBtc2dpZCAidXNlIGxvd2VyY2FzZSBsZXR0ZXJzIGZvciAnYXNzdW1lIHVuY2hhbmdlZCcgZmlsZXMiCiBtc2dzdHIgIiIKICJkw7luZyBjaOG7ryBjw6FpIHZp4bq/dCB0aMaw4budbmcgY2hvIGPDoWMgdOG6rXAgdGluIOKAnGFzc3VtZSB1bmNoYW5nZWTigJ0gKGdp4bqjIMSR4buLbmgga2jDtG5nICIKICJ0aGF5IMSR4buVaSkiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjkKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTkKIG1zZ2lkICJzaG93IGNhY2hlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IChkZWZhdWx0KSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgdOG6rXAgdGluIMSRxrDhu6NjIG5o4bubIHThuqFtIHbDoG8gxJHhuqd1IHJhICht4bq3YyDEkeG7i25oKSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2MQogbXNnaWQgInNob3cgZGVsZXRlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4gxJHDoyB4w7NhIHRyb25nIGvhur90IHh14bqldCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2MwogbXNnaWQgInNob3cgbW9kaWZpZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgdOG6rXAgdGluIMSRw6MgYuG7iyBz4butYSDEkeG7lWkgcmEga+G6v3QgeHXhuqV0IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY1CiBtc2dpZCAic2hvdyBvdGhlciBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4ga2jDoWMgdHJvbmcga+G6v3QgeHXhuqV0IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3CiBtc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIHThuq1wIHRpbiBi4buLIGLhu48gcXVhIHRyb25nIGvhur90IHh14bqldCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MAogbXNnaWQgInNob3cgc3RhZ2VkIGNvbnRlbnRzJyBvYmplY3QgbmFtZSBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJoaeG7g24gdGjhu4sgdMOqbiDEkeG7kWkgdMaw4bujbmcgY+G7p2EgbuG7mWkgZHVuZyDEkcaw4bujYyBsxrB1IHRy4bqhbmcgdGjDoWkg4bufIGvhur90IHh14bqldCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MgogbXNnaWQgInNob3cgZmlsZXMgb24gdGhlIGZpbGVzeXN0ZW0gdGhhdCBuZWVkIHRvIGJlIHJlbW92ZWQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIHThuq1wIHRpbiB0csOqbiBo4buHIHRo4buRbmcgdOG6rXAgdGluIG3DoCBuw7MgY+G6p24gxJHGsOG7o2MgZ+G7oSBi4buPIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc0CiBtc2dpZCAic2hvdyAnb3RoZXInIGRpcmVjdG9yaWVzJyBuYW1lIG9ubHkiCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyB0w6puIGPhu6dhIGPDoWMgdGjGsCBt4bulYyDigJxraMOhY+KAnSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NwogbXNnaWQgImRvbid0IHNob3cgZW1wdHkgZGlyZWN0b3JpZXMiCiBtc2dzdHIgImtow7RuZyBoaeG7g24gdGjhu4sgdGjGsCBt4bulYyBy4buXbmciCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTAKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODAKIG1zZ2lkICJzaG93IHVubWVyZ2VkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIHThuq1wIHRpbiBjaMawYSBow7JhIHRy4buZbiB0cm9uZyBr4bq/dCB4deG6pXQiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTIKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODIKIG1zZ2lkICJzaG93IHJlc29sdmUtdW5kbyBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIHRow7RuZyB0aW4gcmVzb2x2ZS11bmRvIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg0CiBtc2dpZCAic2tpcCBmaWxlcyBtYXRjaGluZyBwYXR0ZXJuIgogbXNnc3RyICJi4buPIHF1YSBuaOG7r25nIHThuq1wIHRpbiBraOG7m3AgduG7m2kgbeG7mXQgbeG6q3UiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODcKIG1zZ2lkICJleGNsdWRlIHBhdHRlcm5zIGFyZSByZWFkIGZyb20gPGZpbGU+IgogbXNnc3RyICJt4bqrdSBsb+G6oWkgdHLhu6sgxJHGsOG7o2MgxJHhu41jIHThu6sgPHThuq1wIHRpbj4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDAKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTAKIG1zZ2lkICJyZWFkIGFkZGl0aW9uYWwgcGVyLWRpcmVjdG9yeSBleGNsdWRlIHBhdHRlcm5zIGluIDxmaWxlPiIKIG1zZ3N0ciAixJHhu41jIHRow6ptIGPDoWMgbeG6q3Ugbmdv4bqhaSB0cuG7qyBt4buXaSB0aMawIG3hu6VjIHRyb25nIDx04bqtcCB0aW4+IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkyCiBtc2dpZCAiYWRkIHRoZSBzdGFuZGFyZCBnaXQgZXhjbHVzaW9ucyIKIG1zZ3N0ciAidGjDqm0gbG/huqFpIHRy4burIHRpw6p1IGNodeG6qW4ga2nhu4N1IGdpdCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NQogbXNnaWQgIm1ha2UgdGhlIG91dHB1dCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCB0b3AgZGlyZWN0b3J5IgogbXNnc3RyICJsw6BtIGNobyBr4bq/dCB4deG6pXQgbGnDqm4gcXVhbiDEkeG6v24gdGjGsCBt4bulYyDhu58gbeG7qWMgY2FvIG5o4bqldCAoZ+G7kWMpIGPhu6dhIGThu7Egw6FuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTA4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk4CiBtc2dpZCAiaWYgYW55IDxmaWxlPiBpcyBub3QgaW4gdGhlIGluZGV4LCB0cmVhdCB0aGlzIGFzIGFuIGVycm9yIgogbXNnc3RyICJu4bq/dSA8dOG6rXAgdGluPiBi4bqldCBr4buzIGtow7RuZyDhu58gdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjLCB44butIGzDvSBuw7MgbmjGsCBt4buZdCBs4buXaSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwOQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5OQogbXNnaWQgInRyZWUtaXNoIgogbXNnc3RyICJ0cmVlLWlzaCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMAorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMAogbXNnaWQgInByZXRlbmQgdGhhdCBwYXRocyByZW1vdmVkIHNpbmNlIDx0cmVlLWlzaD4gYXJlIHN0aWxsIHByZXNlbnQiCiBtc2dzdHIgIiIKICJnaeG6oyDEkeG7i25oIHLhurFuZyBjw6FjIMSRxrDhu51uZyBk4bqrbiDEkcOjIGLhu4sgZ+G7oSBi4buPIGvhu4MgdOG7qyA8dHJlZS1pc2g+IG5heSB24bqrbiBoaeG7h24gZGnhu4duIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTEyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTAyCiBtc2dpZCAic2hvdyBkZWJ1Z2dpbmcgZGF0YSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGThu68gbGnhu4d1IGfhu6EgbOG7l2kiCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjI3CisjOiBidWlsdGluL2xzLXRyZWUuYzoyOAogbXNnaWQgImdpdCBscy10cmVlIFs8b3B0aW9ucz5dIDx0cmVlLWlzaD4gWzxwYXRoPi4uLl0iCiBtc2dzdHIgImdpdCBscy10cmVlIFs8Y8OhYy10w7l5LWNo4buNbj5dIDx0cmVlLWlzaD4gWzzEkcaw4budbmctZOG6q24+Li4uXSIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTI1CisjOiBidWlsdGluL2xzLXRyZWUuYzoxMjYKIG1zZ2lkICJvbmx5IHNob3cgdHJlZXMiCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyBjw6FjIHRyZWUiCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyNworIzogYnVpbHRpbi9scy10cmVlLmM6MTI4CiBtc2dpZCAicmVjdXJzZSBpbnRvIHN1YnRyZWVzIgogbXNnc3RyICLEkeG7hyBxdXkgdsOgbyBjw6FjIHRoxrAgbeG7pWMgY29uIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxMjkKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMAogbXNnaWQgInNob3cgdHJlZXMgd2hlbiByZWN1cnNpbmciCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6J5IGtoaSDEkeG7hyBxdXkiCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMgorIzogYnVpbHRpbi9scy10cmVlLmM6MTMzCiBtc2dpZCAidGVybWluYXRlIGVudHJpZXMgd2l0aCBOVUwgYnl0ZSIKIG1zZ3N0ciAiY2jhuqVtIGThu6l0IG3hu6VjIHRpbiB24bubaSBieXRlIE5VTCIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTMzCisjOiBidWlsdGluL2xzLXRyZWUuYzoxMzQKIG1zZ2lkICJpbmNsdWRlIG9iamVjdCBzaXplIgogbXNnc3RyICJn4buTbSBj4bqjIGvDrWNoIHRoxrDhu5tjIMSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTM1IGJ1aWx0aW4vbHMtdHJlZS5jOjEzNworIzogYnVpbHRpbi9scy10cmVlLmM6MTM2IGJ1aWx0aW4vbHMtdHJlZS5jOjEzOAogbXNnaWQgImxpc3Qgb25seSBmaWxlbmFtZXMiCiBtc2dzdHIgImNo4buJIGxp4buHdCBrw6ogdMOqbiB04bqtcCB0aW4iCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjE0MAorIzogYnVpbHRpbi9scy10cmVlLmM6MTQxCiBtc2dpZCAidXNlIGZ1bGwgcGF0aCBuYW1lcyIKIG1zZ3N0ciAiZMO5bmcgdMOqbiDEkcaw4budbmcgZOG6q24gxJHhuqd5IMSR4bunIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxNDIKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjE0MwogbXNnaWQgImxpc3QgZW50aXJlIHRyZWU7IG5vdCBqdXN0IGN1cnJlbnQgZGlyZWN0b3J5IChpbXBsaWVzIC0tZnVsbC1uYW1lKSIKIG1zZ3N0ciAibGnhu4d0IGvDqiBjw6J5IG3hu6VjIHRpbjsga2jDtG5nIGNo4buJIHRoxrAgbeG7pWMgaGnhu4duIGjDoG5oIChuZ+G7pSDDvSAtLWZ1bGwtbmFtZSkiCiAKQEAgLTY1NjksNyArNjc2NSw3IEBACiBtc2dpZCAiVmVyaWZ5IHRoYXQgdGhlIG5hbWVkIGNvbW1pdCBoYXMgYSB2YWxpZCBHUEcgc2lnbmF0dXJlIgogbXNnc3RyICJUaOG6qW0gdHJhIHhlbSBs4bqnbiBjaHV54buDbiBnaWFvIGPDsyB0w6puIMSRw7MgY8OzIGNo4buvIGvDvSBHUEcgaOG7o3AgbOG7hyBoYXkga2jDtG5nIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjE5IGJ1aWx0aW4vbm90ZXMuYzo3MzggYnVpbHRpbi9yZXZlcnQuYzoxMTQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTkgYnVpbHRpbi9ub3Rlcy5jOjczOCBidWlsdGluL3JldmVydC5jOjg5CiBtc2dpZCAic3RyYXRlZ3kiCiBtc2dzdHIgImNoaeG6v24gbMaw4bujYyIKIApAQCAtNjk1MCw3NiArNzE0Niw4NyBAQAogbXNnaWQgImFsbG93IGNyZWF0aW9uIG9mIG1vcmUgdGhhbiBvbmUgdHJlZSIKIG1zZ3N0ciAiY2hvIHBow6lwIHThuqFvIG5oaeG7gXUgaMahbiBt4buZdCBjw6J5IgogCi0jOiBidWlsdGluL212LmM6MTQKKyM6IGJ1aWx0aW4vbXYuYzoxNQogbXNnaWQgImdpdCBtdiBbb3B0aW9uc10gPHNvdXJjZT4uLi4gPGRlc3RpbmF0aW9uPiIKIG1zZ3N0ciAiZ2l0IG12IFtjw6FjLXTDuXktY2jhu41uXSA8bmd14buTbj4uLi4gPMSRw61jaD4iCiAKLSM6IGJ1aWx0aW4vbXYuYzo2NAorIzogYnVpbHRpbi9tdi5jOjY3CiBtc2dpZCAiZm9yY2UgbW92ZS9yZW5hbWUgZXZlbiBpZiB0YXJnZXQgZXhpc3RzIgogbXNnc3RyICLDqXAgYnXhu5ljIGRpIGNodXnhu4NuIGhheSDEkeG7lWkgdMOqbiB0aOG6rW0gY2jDrSBj4bqjIGtoaSDEkcOtY2ggxJHDoyB04buTbiB04bqhaSIKIAotIzogYnVpbHRpbi9tdi5jOjY1CisjOiBidWlsdGluL212LmM6NjgKIG1zZ2lkICJza2lwIG1vdmUvcmVuYW1lIGVycm9ycyIKIG1zZ3N0ciAiYuG7jyBxdWEgY8OhYyBs4buXaSBsacOqbiBxdWFuIMSR4bq/biBkaSBjaHV54buDbiwgxJHhu5VpIHTDqm4iCiAKLSM6IGJ1aWx0aW4vbXYuYzoxMDgKKyM6IGJ1aWx0aW4vbXYuYzoxMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2hlY2tpbmcgcmVuYW1lIG9mICclcycgdG8gJyVzJ1xuIgogbXNnc3RyICLEkGFuZyBraeG7g20gdHJhIHZp4buHYyDEkeG7lWkgdMOqbiBj4bunYSDigJwlc+KAnSB0aMOgbmgg4oCcJXPigJ1cbiIKIAotIzogYnVpbHRpbi9tdi5jOjExMgorIzogYnVpbHRpbi9tdi5jOjExNwogbXNnaWQgImJhZCBzb3VyY2UiCiBtc2dzdHIgIm5ndeG7k24gc2FpIgogCi0jOiBidWlsdGluL212LmM6MTE1CisjOiBidWlsdGluL212LmM6MTIwCiBtc2dpZCAiY2FuIG5vdCBtb3ZlIGRpcmVjdG9yeSBpbnRvIGl0c2VsZiIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGRpIGNodXnhu4NuIG3hu5l0IHRoxrAgbeG7pWMgdsOgbyB0cm9uZyBjaMOtbmggbsOzIMSRxrDhu6NjIgogCi0jOiBidWlsdGluL212LmM6MTE4CisjOiBidWlsdGluL212LmM6MTIzCiBtc2dpZCAiY2Fubm90IG1vdmUgZGlyZWN0b3J5IG92ZXIgZmlsZSIKIG1zZ3N0ciAia2jDtG5nIGRpIGNodXnhu4NuIMSRxrDhu6NjIHRoxrAgbeG7pWMgdGjDtG5nIHF1YSB04bqtcCB0aW4iCiAKLSM6IGJ1aWx0aW4vbXYuYzoxMjgKKyM6IGJ1aWx0aW4vbXYuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHVoPyBEaXJlY3RvcnkgJXMgaXMgaW4gaW5kZXggYW5kIG5vIHN1Ym1vZHVsZT8iCittc2dzdHIgIkjhuqM/IFRoxrAgbeG7pWMg4oCcJXPigJ0gdHJvbmcgY2jhu4kgbeG7pWMgdsOgIGtow7RuZyBtw7QtxJF1biBjb24/IgorCisjOiBidWlsdGluL212LmM6MTMxIGJ1aWx0aW4vcm0uYzozMTgKK21zZ2lkICJQbGVhc2UsIHN0YWdlIHlvdXIgY2hhbmdlcyB0byAuZ2l0bW9kdWxlcyBvciBzdGFzaCB0aGVtIHRvIHByb2NlZWQiCittc2dzdHIgIiIKKyJIw6N5IGzGsHUgY8OhYyB0aGF5IMSR4buVaSBj4bunYSBi4bqhbiB2w6BvIOKAnC5naXRtb2R1bGVz4oCdIGhheSBnaGkgdsOgbyB2w7luZyBuaOG7myB04bqhbSAiCisiKHN0YXNoKSBjaMO6bmcgxJHhu4MgeOG7rSBsw70iCisKKyM6IGJ1aWx0aW4vbXYuYzoxNDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiSHVoPyAlLipzIGlzIGluIGluZGV4PyIKIG1zZ3N0ciAiSOG6oz8gJS4qcyB0cm9uZyBi4bqjbmcgbeG7pWMgbOG7pWMgw6A/IgogCi0jOiBidWlsdGluL212LmM6MTQwCisjOiBidWlsdGluL212LmM6MTU5CiBtc2dpZCAic291cmNlIGRpcmVjdG9yeSBpcyBlbXB0eSIKIG1zZ3N0ciAidGjGsCBt4bulYyBuZ3Xhu5NuIGzDoCB0cuG7kW5nIHLhu5duZyIKIAotIzogYnVpbHRpbi9tdi5jOjE3MQorIzogYnVpbHRpbi9tdi5jOjE5MQogbXNnaWQgIm5vdCB1bmRlciB2ZXJzaW9uIGNvbnRyb2wiCiBtc2dzdHIgImtow7RuZyBu4bqxbSBkxrDhu5tpIHPhu7EgcXXhuqNuIGzDvSBtw6Mgbmd14buTbiIKIAotIzogYnVpbHRpbi9tdi5jOjE3MworIzogYnVpbHRpbi9tdi5jOjE5MwogbXNnaWQgImRlc3RpbmF0aW9uIGV4aXN0cyIKIG1zZ3N0ciAixJHDrWNoIMSRw6MgdOG7k24gdOG6oWkgc+G6tW4gcuG7k2kiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxODEKKyM6IGJ1aWx0aW4vbXYuYzoyMDEKICMsIGMtZm9ybWF0CiBtc2dpZCAib3ZlcndyaXRpbmcgJyVzJyIKIG1zZ3N0ciAixJFhbmcgZ2hpIMSRw6ggbMOqbiDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9tdi5jOjE4NAorIzogYnVpbHRpbi9tdi5jOjIwNAogbXNnaWQgIkNhbm5vdCBvdmVyd3JpdGUiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgxJHDqCIKIAotIzogYnVpbHRpbi9tdi5jOjE4NworIzogYnVpbHRpbi9tdi5jOjIwNwogbXNnaWQgIm11bHRpcGxlIHNvdXJjZXMgZm9yIHRoZSBzYW1lIHRhcmdldCIKIG1zZ3N0ciAiTmhp4buBdSBuZ3Xhu5NuIGNobyBjw7luZyBt4buZdCDEkcOtY2giCiAKLSM6IGJ1aWx0aW4vbXYuYzoyMDIKKyM6IGJ1aWx0aW4vbXYuYzoyMjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMsIHNvdXJjZT0lcywgZGVzdGluYXRpb249JXMiCiBtc2dzdHIgIiVzLCBuZ3Xhu5NuPSVzLCDEkcOtY2g9JXMiCiAKLSM6IGJ1aWx0aW4vbXYuYzoyMTIKKyM6IGJ1aWx0aW4vbXYuYzoyMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVuYW1pbmcgJXMgdG8gJXNcbiIKIG1zZ3N0ciAixJDhu5VpIHTDqm4gJXMgdGjDoG5oICVzXG4iCiAKLSM6IGJ1aWx0aW4vbXYuYzoyMTUgYnVpbHRpbi9yZW1vdGUuYzo3MzEKKyM6IGJ1aWx0aW4vbXYuYzoyMzUgYnVpbHRpbi9yZW1vdGUuYzo3MzEgYnVpbHRpbi9yZXBhY2suYzozMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVuYW1pbmcgJyVzJyBmYWlsZWQiCiBtc2dzdHIgIsSR4buVaSB0w6puICVzIGfhurdwIGzhu5dpIgpAQCAtNzA1OCw4ICs3MjY1LDggQEAKIG1zZ3N0ciAixJHhu41jIHThu6sgxJHhuqd1IHbDoG8gdGnDqnUgY2h14bqpbiIKIAogIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyMAotbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIgotbXNnc3RyICJjaG8gcGjDqXAgaGnhu4NuIHRo4buLIGPDoWMgdMOqbiDigJxjaMawYSDEkeG7i25oIG5naMSpYeKAnCIKK21zZ2lkICJhbGxvdyB0byBwcmludCBgdW5kZWZpbmVkYCBuYW1lcyAoZGVmYXVsdCkiCittc2dzdHIgImNobyBwaMOpcCBpbiBjw6FjIHTDqm4g4oCcY2jGsGEgxJHhu4tuaCBuZ2jEqWHigJ0gKG3hurdjIMSR4buLbmgpIgogCiAjOiBidWlsdGluL25hbWUtcmV2LmM6MzI2CiBtc2dpZCAiZGVyZWZlcmVuY2UgdGFncyBpbiB0aGUgaW5wdXQgKGludGVybmFsIHVzZSkiCkBAIC03MjEzLDEyICs3NDIwLDEyIEBACiBtc2dpZCAiVGhlIG5vdGUgY29udGVudHMgaGFzIGJlZW4gbGVmdCBpbiAlcyIKIG1zZ3N0ciAiTuG7mWkgZHVuZyBnaGkgY2jDuiBjw7JuIGzhuqFpICVzIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjQ4IGJ1aWx0aW4vdGFnLmM6NTQwCisjOiBidWlsdGluL25vdGVzLmM6MjQ4IGJ1aWx0aW4vdGFnLmM6NTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICclcyciCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDMKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gb3IgcmVhZCAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgbeG7nyBoYXkgxJHhu41jIOKAnCVz4oCdIgpAQCAtNzIyNiw3ICs3NDMzLDcgQEAKICM6IGJ1aWx0aW4vbm90ZXMuYzoyNjkgYnVpbHRpbi9ub3Rlcy5jOjMxNiBidWlsdGluL25vdGVzLmM6MzE4CiAjOiBidWlsdGluL25vdGVzLmM6Mzc4IGJ1aWx0aW4vbm90ZXMuYzo0MzIgYnVpbHRpbi9ub3Rlcy5jOjUxNQogIzogYnVpbHRpbi9ub3Rlcy5jOjUyMCBidWlsdGluL25vdGVzLmM6NTk1IGJ1aWx0aW4vbm90ZXMuYzo2MzcKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4MzkgYnVpbHRpbi90YWcuYzo1NTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4MzkgYnVpbHRpbi90YWcuYzo1NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHJlZi4iCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSBwaMOibiBnaeG6o2kg4oCcJXPigJ0gbmjGsCBsw6AgbeG7mXQgdGhhbSBjaGnhur91IChyZWYpIGjhu6NwIGzhu4cuIgpAQCAtNzIzOSw3ICs3NDQ2LDcgQEAKICM6IGJ1aWx0aW4vbm90ZXMuYzozMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFsZm9ybWVkIGlucHV0IGxpbmU6ICclcycuIgotbXNnc3RyICJEw7JuZyBuaOG6rXAgdsOgbyBk4buLIGjDrG5oOiDigJwlc+KAnS4iCittc2dzdHIgIkTDsm5nIMSR4bqndSB2w6BvIGThu4sgaMOsbmg6IOKAnCVz4oCdLiIKIAogIzogYnVpbHRpbi9ub3Rlcy5jOjMyNwogIywgYy1mb3JtYXQKQEAgLTc0MDMsMTQ5ICs3NjEwLDE0OSBAQAogImdpdCBwYWNrLW9iamVjdHMgW2PDoWMtdMO5eS1jaOG7jW4uLi5dIGJhc2UtbmFtZSBbPCBkYW5oLXPDoWNoLXJlZiB8IDwgZGFuaC1zw6FjaC0iCiAixJHhu5FpLXTGsOG7o25nXSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxODMgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxODYKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTg0IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgImRlZmxhdGUgZXJyb3IgKCVkKSIKIG1zZ3N0ciAibOG7l2kgZ2nhuqNpIG7DqW4gKCVkKSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyMzk3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjIzOTgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5zdXBwb3J0ZWQgaW5kZXggdmVyc2lvbiAlcyIKIG1zZ3N0ciAicGhpw6puIGLhuqNuIG3hu6VjIGzhu6VjIGtow7RuZyDEkcaw4bujYyBo4buXIHRy4bujICVzIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MDEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgaW5kZXggdmVyc2lvbiAnJXMnIgogbXNnc3RyICJwaGnDqm4gYuG6o24gbeG7pWMgbOG7pWMgc2FpIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MjQKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJvcHRpb24gJXMgZG9lcyBub3QgYWNjZXB0IG5lZ2F0aXZlIGZvcm0iCiBtc2dzdHIgInTDuXkgY2jhu41uICVzIGtow7RuZyBjaOG6pXAgbmjhuq1uIGThuqFuZyB0aOG7qWMgw6JtIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MjgKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcGFyc2UgdmFsdWUgJyVzJyBmb3Igb3B0aW9uICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgcGjDom4gdMOtY2ggZ2nDoSB0cuG7iyDigJwlc+KAnSBjaG8gdMO5eSBjaOG7jW4gJXMiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ0NworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDQ4CiBtc2dpZCAiZG8gbm90IHNob3cgcHJvZ3Jlc3MgbWV0ZXIiCiBtc2dzdHIgImtow7RuZyBoaeG7g24gdGjhu4sgYuG7mSDEkW8gdGnhur9uIHRyw6xuaCIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDQ5CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTAKIG1zZ2lkICJzaG93IHByb2dyZXNzIG1ldGVyIgogbXNnc3RyICJoaeG7g24gdGjhu4sgYuG7mSDEkW8gdGnhur9uIHRyw6xuaCIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDUxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTIKIG1zZ2lkICJzaG93IHByb2dyZXNzIG1ldGVyIGR1cmluZyBvYmplY3Qgd3JpdGluZyBwaGFzZSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGLhu5kgxJFvIHRp4bq/biB0cmnhu4NuIHRyb25nIHN14buRdCBwaGEgZ2hpIMSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU0CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTUKIG1zZ2lkICJzaW1pbGFyIHRvIC0tYWxsLXByb2dyZXNzIHdoZW4gcHJvZ3Jlc3MgbWV0ZXIgaXMgc2hvd24iCiBtc2dzdHIgInTGsMahbmcgdOG7sSAtLWFsbC1wcm9ncmVzcyBraGkgYuG7mSDEkW8gdGnhur9uIHRyw6xuaCDEkcaw4bujYyB4deG6pXQgaGnhu4duIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTUKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NgogbXNnaWQgInZlcnNpb25bLG9mZnNldF0iCiBtc2dzdHIgInBoacOqbiBi4bqjblssb2Zmc2V0XSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU2CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTcKIG1zZ2lkICJ3cml0ZSB0aGUgcGFjayBpbmRleCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgaWR4IGZvcm1hdCB2ZXJzaW9uIgogbXNnc3RyICJnaGkgdOG6rXAgdGluIGLhuqNuZyBt4bulYyBs4bulYyBnw7NpIChwYWNrKSDhu58gcGhpw6puIGLhuqNuIMSR4buLbmggZOG6oW5nIGlkeCDEkcOjIGNobyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU5CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjAKIG1zZ2lkICJtYXhpbXVtIHNpemUgb2YgZWFjaCBvdXRwdXQgcGFjayBmaWxlIgogbXNnc3RyICJrY8OtaCB0aMaw4bubYyB04buRaSDEkWEgY2hvIHThuq1wIHRpbiBnw7NpIMSRxrDhu6NjIHThuqFvIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2MgogbXNnaWQgImlnbm9yZSBib3Jyb3dlZCBvYmplY3RzIGZyb20gYWx0ZXJuYXRlIG9iamVjdCBzdG9yZSIKIG1zZ3N0ciAiYuG7jyBxdWEgY8OhYyDEkeG7kWkgdMaw4bujbmcgdmF5IG3GsOG7o24gdOG7qyBraG8gxJHhu5FpIHTGsOG7o25nIHRoYXkgdGjhur8iCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2MworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDY0CiBtc2dpZCAiaWdub3JlIHBhY2tlZCBvYmplY3RzIgogbXNnc3RyICJi4buPIHF1YSBjw6FjIMSR4buRaSB0xrDhu6NuZyDEkcOzbmcgZ8OzaSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDY1CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjYKIG1zZ2lkICJsaW1pdCBwYWNrIHdpbmRvdyBieSBvYmplY3RzIgogbXNnc3RyICJnaeG7m2kgaOG6oW4gY+G7rWEgc+G7lSDEkcOzbmcgZ8OzaSB0aGVvIMSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDY3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjgKIG1zZ2lkICJsaW1pdCBwYWNrIHdpbmRvdyBieSBtZW1vcnkgaW4gYWRkaXRpb24gdG8gb2JqZWN0IGxpbWl0IgogbXNnc3RyICJnaeG7m2kgaOG6oW4gY+G7rWEgc+G7lSDEkcOzbmcgZ8OzaSB0aGVvIGLhu5kgbmjhu5sgY+G7mW5nIHRow6ptIHbhu5tpIGdp4bubaSBo4bqhbiDEkeG7kWkgdMaw4bujbmciCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2OQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDcwCiBtc2dpZCAibWF4aW11bSBsZW5ndGggb2YgZGVsdGEgY2hhaW4gYWxsb3dlZCBpbiB0aGUgcmVzdWx0aW5nIHBhY2siCiBtc2dzdHIgIsSR4buZIGTDoGkgdOG7kWkgxJFhIGPhu6dhIGNodeG7l2kgbcOzYyB4w61jaCDigJxkZWx0YeKAnSDEkcaw4bujYyBwaMOpcCB0cm9uZyBnw7NpIGvhur90IHF14bqjIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3MgogbXNnaWQgInJldXNlIGV4aXN0aW5nIGRlbHRhcyIKIG1zZ3N0ciAiZMO5bmcgbOG6oWkgY8OhYyBkZWx0YSBz4bq1biBjw7MiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3MworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDc0CiBtc2dpZCAicmV1c2UgZXhpc3Rpbmcgb2JqZWN0cyIKIG1zZ3N0ciAiZMO5bmcgbOG6oWkgY8OhYyDEkeG7kWkgdMaw4bujbmcgc+G6tW4gY8OzIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzUKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3NgogbXNnaWQgInVzZSBPRlNfREVMVEEgb2JqZWN0cyIKIG1zZ3N0ciAiZMO5bmcgY8OhYyDEkeG7kWkgdMaw4bujbmcgT0ZTX0RFTFRBIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzcKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3OAogbXNnaWQgInVzZSB0aHJlYWRzIHdoZW4gc2VhcmNoaW5nIGZvciBiZXN0IGRlbHRhIG1hdGNoZXMiCiBtc2dzdHIgInPhu60gZOG7pW5nIGPDoWMgdHV54bq/biB0csOsbmgga2hpIHTDrG0ga2nhur9tIGNobyBjw6FjIG3huqt1IGto4bubcCBkZWx0YSB04buRdCBuaOG6pXQiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3OQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDgwCiBtc2dpZCAiZG8gbm90IGNyZWF0ZSBhbiBlbXB0eSBwYWNrIG91dHB1dCIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHThuqFvIGvhur90IHh14bqldCBnw7NpIChwYWNrKSB0cuG7kW5nIHLhu5duZyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDgxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODIKIG1zZ2lkICJyZWFkIHJldmlzaW9uIGFyZ3VtZW50cyBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICIgxJHhu41jIHRoYW0gc+G7kSDigJxyZXZpc2lvbuKAnSB04burIHRoaeG6v3QgYuG7iyBuaOG6rXAgY2h14bqpbiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDgzCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODQKIG1zZ2lkICJsaW1pdCB0aGUgb2JqZWN0cyB0byB0aG9zZSB0aGF0IGFyZSBub3QgeWV0IHBhY2tlZCIKIG1zZ3N0ciAiZ2nhu5tpIGjhuqFuIGPDoWMgxJHhu5FpIHTGsOG7o25nIHRow6BuaCBuaOG7r25nIGPDoWkgbcOgIGNow7puZyB24bqrbiBjaMawYSDEkcaw4bujYyDEkcOzbmcgZ8OzaSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDg2CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODcKIG1zZ2lkICJpbmNsdWRlIG9iamVjdHMgcmVhY2hhYmxlIGZyb20gYW55IHJlZmVyZW5jZSIKIG1zZ3N0ciAiYmFvIGfhu5NtIGPDoWMgxJHhu5FpIHTGsOG7o25nIGPDsyB0aOG7gyDEkeG7jWMgxJHGsOG7o2MgdOG7qyBi4bqldCBr4buzIHRoYW0gY2hp4bq/dSBuw6BvIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5MAogbXNnaWQgImluY2x1ZGUgb2JqZWN0cyByZWZlcnJlZCBieSByZWZsb2cgZW50cmllcyIKIG1zZ3N0ciAiYmFvIGfhu5NtIGPDoWMgxJHhu5FpIHTGsOG7o25nIMSRxrDhu6NjIHRoYW0gY2hp4bq/dSBi4bufaSBjw6FjIG3hu6VjIHJlZmxvZyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDkyCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTMKIG1zZ2lkICJvdXRwdXQgcGFjayB0byBzdGRvdXQiCiBtc2dzdHIgInh14bqldCBnw7NpIHJhIMSR4bqndSByYSB0acOqdSBjaHXhuqluIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTQKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NQogbXNnaWQgImluY2x1ZGUgdGFnIG9iamVjdHMgdGhhdCByZWZlciB0byBvYmplY3RzIHRvIGJlIHBhY2tlZCIKIG1zZ3N0ciAiYmFvIGfhu5NtIGPDoWMgxJHhu5FpIHTGsOG7o25nIHRoYW0gY2hp4bq/dSDEkeG6v24gY8OhYyDEkeG7kWkgdMaw4bujbmcgxJHGsOG7o2MgxJHDs25nIGfDs2kiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NgorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk3CiBtc2dpZCAia2VlcCB1bnJlYWNoYWJsZSBvYmplY3RzIgogbXNnc3RyICJnaeG7ryBs4bqhaSBjw6FjIMSR4buRaSB0xrDhu6NuZyBraMO0bmcgdGjhu4MgxJHhu41jIMSRxrDhu6NjIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTcgcGFyc2Utb3B0aW9ucy5oOjE0MQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk4IHBhcnNlLW9wdGlvbnMuaDoxNDMKIG1zZ2lkICJ0aW1lIgogbXNnc3RyICJ0aOG7nWktZ2lhbiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk4CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTkKIG1zZ2lkICJ1bnBhY2sgdW5yZWFjaGFibGUgb2JqZWN0cyBuZXdlciB0aGFuIDx0aW1lPiIKIG1zZ3N0ciAiIgogInjhuqMgbsOpbiAoZ+G7oSBraOG7j2kgZ8OzaSkgY8OhYyDEkeG7kWkgdMaw4bujbmcga2jDtG5nIHRo4buDIMSR4buNYyDEkcaw4bujYyBt4bubaSBoxqFuIDx0aOG7nWktZ2lhbj4iCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwMQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTAyCiBtc2dpZCAiY3JlYXRlIHRoaW4gcGFja3MiCiBtc2dzdHIgInThuqFvIGfDs2kgbmjhurkiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwMworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA0CiBtc2dpZCAiaWdub3JlIHBhY2tzIHRoYXQgaGF2ZSBjb21wYW5pb24gLmtlZXAgZmlsZSIKIG1zZ3N0ciAiYuG7jyBxdWEgY8OhYyBnw7NpIG3DoCBuw7MgY8OzIHThuq1wIHRpbiAua2VlcCDEkWkga8OobSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA1CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDYKIG1zZ2lkICJwYWNrIGNvbXByZXNzaW9uIGxldmVsIgogbXNnc3RyICJt4bupYyBuw6luIGfDs2kiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA4CiBtc2dpZCAiZG8gbm90IGhpZGUgY29tbWl0cyBieSBncmFmdHMiCiBtc2dzdHIgImtow7RuZyDhuqluIGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyBi4bufaSDigJxncmFmdHPigJ0iCiAKQEAgLTc1ODUsMTUgKzc3OTIsMTUgQEAKIG1zZ2lkICJnaXQgcHVzaCBbPG9wdGlvbnM+XSBbPHJlcG9zaXRvcnk+IFs8cmVmc3BlYz4uLi5dXSIKIG1zZ3N0ciAiZ2l0IHB1c2ggWzxjw6FjLXTDuXktY2jhu41uPl0gWzxraG8tY2jhu6lhPiBbPHJlZnNwZWM+Li4uXV0iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1CisjOiBidWlsdGluL3B1c2guYzo0NwogbXNnaWQgInRhZyBzaG9ydGhhbmQgd2l0aG91dCA8dGFnPiIKIG1zZ3N0ciAiZMO5bmcgdOG7kWMga8O9IHRhZyBraMO0bmcgY8OzIDx0aOG6uz4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjY0CisjOiBidWlsdGluL3B1c2guYzo2NgogbXNnaWQgIi0tZGVsZXRlIG9ubHkgYWNjZXB0cyBwbGFpbiB0YXJnZXQgcmVmIG5hbWVzIgogbXNnc3RyICItLWRlbGV0ZSBjaOG7iSBjaOG6pXAgbmjhuq1uIGPDoWMgdMOqbiB0aGFtIGNoaeG6v3UgKHJlZikgZOG6oW5nIHRoxrDhu51uZyIKIAotIzogYnVpbHRpbi9wdXNoLmM6OTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjEwMQogbXNnaWQgIiIKICJcbiIKICJUbyBjaG9vc2UgZWl0aGVyIG9wdGlvbiBwZXJtYW5lbnRseSwgc2VlIHB1c2guZGVmYXVsdCBpbiAnZ2l0IGhlbHAgY29uZmlnJy4iCkBAIC03NjAyLDcgKzc4MDksNyBAQAogIsSQ4buDIGNo4buNbiBt4buXaSB0w7l5IGNo4buNbiBt4buZdCBjw6FjaCBj4buRIMSR4buLbmgsIHhlbSBwdXNoLmRlZmF1bHQgdHJvbmcg4oCcZ2l0IGhlbHAgIgogImNvbmZpZ+KAnS4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEwMgorIzogYnVpbHRpbi9wdXNoLmM6MTA0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgdXBzdHJlYW0gYnJhbmNoIG9mIHlvdXIgY3VycmVudCBicmFuY2ggZG9lcyBub3QgbWF0Y2hcbiIKQEAgLTc2MjcsNyArNzgzNCw3IEBACiAiICAgIGdpdCBwdXNoICVzICVzXG4iCiAiJXMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjExNworIzogYnVpbHRpbi9wdXNoLmM6MTE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIG5vdCBjdXJyZW50bHkgb24gYSBicmFuY2guXG4iCkBAIC03NjQyLDcgKzc4NDksNyBAQAogIlxuIgogIiAgICBnaXQgcHVzaCAlcyBIRUFEOjx0w6puLWPhu6dhLW5ow6FuaC1tw6F5LWNo4bunPlxuIgogCi0jOiBidWlsdGluL3B1c2guYzoxMzEKKyM6IGJ1aWx0aW4vcHVzaC5jOjEzMwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBubyB1cHN0cmVhbSBicmFuY2guXG4iCkBAIC03NjU2LDEyICs3ODYzLDEyIEBACiAiXG4iCiAiICAgIGdpdCBwdXNoIC0tc2V0LXVwc3RyZWFtICVzICVzXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEzOQorIzogYnVpbHRpbi9wdXNoLmM6MTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlRoZSBjdXJyZW50IGJyYW5jaCAlcyBoYXMgbXVsdGlwbGUgdXBzdHJlYW0gYnJhbmNoZXMsIHJlZnVzaW5nIHRvIHB1c2guIgogbXNnc3RyICJOaMOhbmggaGnhu4duIHThuqFpICVzIGPDsyDEkWEgbmjDoW5oIHRoxrDhu6NuZyBuZ3Xhu5NuICh1cHN0cmVhbSksIHThu6sgY2jhu5FpIHB1c2guIgogCi0jOiBidWlsdGluL3B1c2guYzoxNDIKKyM6IGJ1aWx0aW4vcHVzaC5jOjE0NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91IGFyZSBwdXNoaW5nIHRvIHJlbW90ZSAnJXMnLCB3aGljaCBpcyBub3QgdGhlIHVwc3RyZWFtIG9mXG4iCkBAIC03NjczLDcgKzc4ODAsNyBAQAogIm5ow6FuaCBoaeG7h24gdOG6oWkg4oCcJXPigJ0gY+G7p2EgYuG6oW4sIG3DoCBraMO0bmcgYsOhbyBjaG8gdMO0aSBiaeG6v3QgbMOgIGPDoWkgZ8OsIMSRxrDhu6NjIHB1c2hcbiIKICLEkeG7gyBj4bqtcCBuaOG6rXQgbmjDoW5oIG3DoXkgY2jhu6cgbsOgby4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjE2NQorIzogYnVpbHRpbi9wdXNoLmM6MTY3CiBtc2dpZCAiIgogInB1c2guZGVmYXVsdCBpcyB1bnNldDsgaXRzIGltcGxpY2l0IHZhbHVlIGlzIGNoYW5naW5nIGluXG4iCiAiR2l0IDIuMCBmcm9tICdtYXRjaGluZycgdG8gJ3NpbXBsZScuIFRvIHNxdWVsY2ggdGhpcyBtZXNzYWdlXG4iCkBAIC03NzA2LDE0ICs3OTEzLDE0IEBACiAidOG7sVxuIgogIuKAnGN1cnJlbnTigJ0gdGhheSB2w6wg4oCcc2ltcGxl4oCdIG7hur91IGLhuqFuIHRo4buJbmggdGhv4bqjbmcgcGjhuqNpIHPhu60gZOG7pW5nIGLhuqNuIEdpdCBjxakpIgogCi0jOiBidWlsdGluL3B1c2guYzoyMjUKKyM6IGJ1aWx0aW4vcHVzaC5jOjIyNwogbXNnaWQgIiIKICJZb3UgZGlkbid0IHNwZWNpZnkgYW55IHJlZnNwZWNzIHRvIHB1c2gsIGFuZCBwdXNoLmRlZmF1bHQgaXMgXCJub3RoaW5nXCIuIgogbXNnc3RyICIiCiAiQuG6oW4gxJHDoyBraMO0bmcgY2jhu4kgcmEgbeG7mXQgcmVmc3BlY3MgbsOgbyDEkeG7gyBwdXNoLCB2w6AgcHVzaC5kZWZhdWx0IGzDoCBcImtow7RuZyBsw6AgIgogImfDrCBj4bqjXCIuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMzIKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzNAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGlwIG9mIHlvdXIgY3VycmVudCBicmFuY2ggaXMgYmVoaW5kXG4iCiAiaXRzIHJlbW90ZSBjb3VudGVycGFydC4gSW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLlxuIgpAQCAtNzcyNyw3ICs3OTM0LDcgQEAKICJYZW0g4oCcTm90ZSBhYm91dCBmYXN0LWZvcndhcmRz4oCdIHThu6sgbOG7h25oIOKAnGdpdCBwdXNoIC0taGVscOKAnSDEkeG7gyBjw7MgdGjDtG5nIHRpbiBjaGkgIgogInRp4bq/dC4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzOAorIzogYnVpbHRpbi9wdXNoLmM6MjQwCiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIGEgcHVzaGVkIGJyYW5jaCB0aXAgaXMgYmVoaW5kIGl0cyByZW1vdGVcbiIKICJjb3VudGVycGFydC4gSWYgeW91IGRpZCBub3QgaW50ZW5kIHRvIHB1c2ggdGhhdCBicmFuY2gsIHlvdSBtYXkgd2FudCB0b1xuIgpAQCAtNzc0Miw3ICs3OTQ5LDcgQEAKICJ0aMOgbmgg4oCcc2ltcGxl4oCdLCDigJxjdXJyZW504oCdIGhv4bq3YyDigJx1cHN0cmVhbeKAnSDEkeG7gyBjaOG7iSBwdXNoIG5ow6FuaCBoaeG7h24gaMOgbmggbcOgICIKICJ0aMO0aS4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI0NAorIzogYnVpbHRpbi9wdXNoLmM6MjQ2CiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIGEgcHVzaGVkIGJyYW5jaCB0aXAgaXMgYmVoaW5kIGl0cyByZW1vdGVcbiIKICJjb3VudGVycGFydC4gQ2hlY2sgb3V0IHRoaXMgYnJhbmNoIGFuZCBpbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCkBAIC03NzU2LDcgKzc5NjMsNyBAQAogIlhlbSDigJxOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHPigJ0gdOG7qyBs4buHbmgg4oCcZ2l0IHB1c2ggLS1oZWxw4oCdIMSR4buDIGPDsyB0aMO0bmcgdGluIGNoaSAiCiAidGnhur90LiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjUwCisjOiBidWlsdGluL3B1c2guYzoyNTIKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHJlbW90ZSBjb250YWlucyB3b3JrIHRoYXQgeW91IGRvXG4iCiAibm90IGhhdmUgbG9jYWxseS4gVGhpcyBpcyB1c3VhbGx5IGNhdXNlZCBieSBhbm90aGVyIHJlcG9zaXRvcnkgcHVzaGluZ1xuIgpAQCAtNzc3MSwxMSArNzk3OCwxMSBAQAogIlhlbSDigJxOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHPigJ0gdOG7qyBs4buHbmgg4oCcZ2l0IHB1c2ggLS1oZWxw4oCdIMSR4buDIGPDsyB0aMO0bmcgdGluIGNoaSAiCiAidGnhur90LiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjU3CisjOiBidWlsdGluL3B1c2guYzoyNTkKIG1zZ2lkICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGFnIGFscmVhZHkgZXhpc3RzIGluIHRoZSByZW1vdGUuIgogbXNnc3RyICJWaeG7h2MgY+G6rXAgbmjhuq10IGLhu4sgdOG7qyBjaOG7kWkgYuG7n2kgdsOsIHRo4bq7IMSRw6Mgc+G6tW4gY8OzIHThu6sgdHLGsOG7m2MgdHLDqm4gbcOheSBjaOG7py4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI2MAorIzogYnVpbHRpbi9wdXNoLmM6MjYyCiBtc2dpZCAiIgogIllvdSBjYW5ub3QgdXBkYXRlIGEgcmVtb3RlIHJlZiB0aGF0IHBvaW50cyBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgogIm9yIHVwZGF0ZSBhIHJlbW90ZSByZWYgdG8gbWFrZSBpdCBwb2ludCBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgpAQCAtNzc4NywyMiArNzk5NCwyMiBAQAogInTGsOG7o25nXG4iCiAia2jDtG5nIHBo4bqjaSBjaHV54buDbiBnaWFvLCBtw6Aga2jDtG5nIHPhu60gZOG7pW5nIHTDuXkgY2jhu41uIOKAnC0tZm9yY2XigJ0uXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMyMAorIzogYnVpbHRpbi9wdXNoLmM6MzI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlB1c2hpbmcgdG8gJXNcbiIKIG1zZ3N0ciAixJBhbmcgcHVzaCAoxJHhuql5KSBsw6puICVzXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMyNAorIzogYnVpbHRpbi9wdXNoLmM6MzMyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBwdXNoIHNvbWUgcmVmcyB0byAnJXMnIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgcHVzaCAoxJHhuql5IGzDqm4pIG3hu5l0IHPhu5EgdGhhbSBjaGnhur91IChyZWYpIMSR4bq/biDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzU3CisjOiBidWlsdGluL3B1c2guYzozNjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIHJlcG9zaXRvcnkgJyVzJyIKIG1zZ3N0ciAicmVwb3NpdG9yeSAoa2hvKSBzYWkg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1OAorIzogYnVpbHRpbi9wdXNoLmM6MzY2CiBtc2dpZCAiIgogIk5vIGNvbmZpZ3VyZWQgcHVzaCBkZXN0aW5hdGlvbi5cbiIKICJFaXRoZXIgc3BlY2lmeSB0aGUgVVJMIGZyb20gdGhlIGNvbW1hbmQtbGluZSBvciBjb25maWd1cmUgYSByZW1vdGUgIgpAQCAtNzgyMyw4OCArODAzMCw5NiBAQAogIlxuIgogIiAgICBnaXQgcHVzaCA8dMOqbj5cbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzczCisjOiBidWlsdGluL3B1c2guYzozODEKIG1zZ2lkICItLWFsbCBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tYWxsIHbDoCAtLXRhZ3MgeHVuZyBraOG6r2MgbmhhdSIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mzc0CisjOiBidWlsdGluL3B1c2guYzozODIKIG1zZ2lkICItLWFsbCBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgotbXNnc3RyICItLWFsbCBraMO0bmcgdGjhu4MgxJHGsOG7o2MgdOG7lSBo4bujcCBjw7luZyB24bubaSByZWZzcGVjcyIKK21zZ3N0ciAiLS1hbGwga2jDtG5nIHRo4buDIMSRxrDhu6NjIHThu5UgaOG7o3AgY8O5bmcgduG7m2kgxJHhurdjIHThuqMgxJHGsOG7nW5nIGThuqtuIgogCi0jOiBidWlsdGluL3B1c2guYzozNzkKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4NwogbXNnaWQgIi0tbWlycm9yIGFuZCAtLXRhZ3MgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1taXJyb3IgdsOgIC0tdGFncyB4dW5nIGto4bqvYyBuaGF1IgogCi0jOiBidWlsdGluL3B1c2guYzozODAKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4OAogbXNnaWQgIi0tbWlycm9yIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCi1tc2dzdHIgIi0tbWlycm9yIGtow7RuZyB0aOG7gyDEkcaw4bujYyB04buVIGjhu6NwIGPDuW5nIHbhu5tpIHJlZnNwZWNzIgorbXNnc3RyICItLW1pcnJvciBraMO0bmcgdGjhu4MgxJHGsOG7o2MgdOG7lSBo4bujcCBjw7luZyB24bubaSDEkeG6t2MgdOG6oyDEkcaw4budbmcgZOG6q24iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM4NQorIzogYnVpbHRpbi9wdXNoLmM6MzkzCiBtc2dpZCAiLS1hbGwgYW5kIC0tbWlycm9yIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tYWxsIHbDoCAtLW1pcnJvciB4dW5nIGto4bqvYyBuaGF1IgogCi0jOiBidWlsdGluL3B1c2guYzo0NDUKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MwogbXNnaWQgInJlcG9zaXRvcnkiCiBtc2dzdHIgImtobyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDQ2CisjOiBidWlsdGluL3B1c2guYzo0NTQKIG1zZ2lkICJwdXNoIGFsbCByZWZzIgogbXNnc3RyICJwdXNoIHThuqV0IGPhuqMgcmVmcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDQ3CisjOiBidWlsdGluL3B1c2guYzo0NTUKIG1zZ2lkICJtaXJyb3IgYWxsIHJlZnMiCi1tc2dzdHIgIm1pcnJvciB04bqldCBj4bqjIHJlZnMiCittc2dzdHIgIm1pcnJvciB04bqldCBj4bqjIGPDoWMgdGhhbSBjaGnhur91IgogCi0jOiBidWlsdGluL3B1c2guYzo0NDkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NwogbXNnaWQgImRlbGV0ZSByZWZzIgogbXNnc3RyICJ4w7NhIHJlZnMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAorIzogYnVpbHRpbi9wdXNoLmM6NDU4CiBtc2dpZCAicHVzaCB0YWdzIChjYW4ndCBiZSB1c2VkIHdpdGggLS1hbGwgb3IgLS1taXJyb3IpIgogbXNnc3RyICIiCiAiY8OhYyB0aOG6uyBwdXNoIChraMO0bmcgdGjhu4Mgc+G7rSBk4bulbmcgY8O5bmcgduG7m2kgY8OhYyB0w7l5IGNo4buNbiAtLWFsbCBoYXkgLS1taXJyb3IpIgogCi0jOiBidWlsdGluL3B1c2guYzo0NTMKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MQogbXNnaWQgImZvcmNlIHVwZGF0ZXMiCiBtc2dzdHIgIsOpcCBideG7mWMgY+G6rXAgbmjhuq10IgogCi0jOiBidWlsdGluL3B1c2guYzo0NTQKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MworbXNnaWQgInJlZm5hbWU+OjxleHBlY3QiCittc2dzdHIgInTDqm4tdGhhbS1jaGnhur91Pjo8Y+G6p24iCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NAorbXNnaWQgInJlcXVpcmUgb2xkIHZhbHVlIG9mIHJlZiB0byBiZSBhdCB0aGlzIHZhbHVlIgorbXNnc3RyICJ5w6p1IGPhuqd1IGdpw6EtdHLhu4sgY8WpIGPhu6dhIHRoYW0gY2hp4bq/dSB0aMOsIGzDoCBnacOhLXRy4buLIG7DoHkiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NgogbXNnaWQgImNoZWNrIgogbXNnc3RyICJraeG7g20gdHJhIgogCi0jOiBidWlsdGluL3B1c2guYzo0NTUKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NwogbXNnaWQgImNvbnRyb2wgcmVjdXJzaXZlIHB1c2hpbmcgb2Ygc3VibW9kdWxlcyIKIG1zZ3N0ciAixJFp4buBdSBraGnhu4NuIHZp4buHYyDEkeG6qXkgbMOqbiAocHVzaCkgxJHhu4cgcXVpIGPhu6dhIG3DtC3EkXVuLWNvbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDU3CisjOiBidWlsdGluL3B1c2guYzo0NjkKIG1zZ2lkICJ1c2UgdGhpbiBwYWNrIgogbXNnc3RyICJ04bqhbyBnw7NpIG5o4bq5IgogCi0jOiBidWlsdGluL3B1c2guYzo0NTggYnVpbHRpbi9wdXNoLmM6NDU5CisjOiBidWlsdGluL3B1c2guYzo0NzAgYnVpbHRpbi9wdXNoLmM6NDcxCiBtc2dpZCAicmVjZWl2ZSBwYWNrIHByb2dyYW0iCiBtc2dzdHIgIm5o4bqtbiB24buBIGNoxrDGoW5nIHRyw6xuaCBwYWNrIgogCi0jOiBidWlsdGluL3B1c2guYzo0NjAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3MgogbXNnaWQgInNldCB1cHN0cmVhbSBmb3IgZ2l0IHB1bGwvc3RhdHVzIgogbXNnc3RyICLEkeG6t3QgdGjGsOG7o25nIG5ndeG7k24gKHVwc3RyZWFtKSBjaG8gZ2l0IHB1bGwvc3RhdHVzIgogCi0jOiBidWlsdGluL3B1c2guYzo0NjMKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3NQogbXNnaWQgInBydW5lIGxvY2FsbHkgcmVtb3ZlZCByZWZzIgogbXNnc3RyICJwcnVuZSAoY+G6r3QgY+G7pXQpIG5o4buvbmcgdGhhbSBjaGnhur91IChyZWZzKSBi4buLIGfhu6EgYuG7jyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDY1CisjOiBidWlsdGluL3B1c2guYzo0NzcKIG1zZ2lkICJieXBhc3MgcHJlLXB1c2ggaG9vayIKIG1zZ3N0ciAidsOybmcgcXVhIOKAnHByZS1wdXNoIGhvb2vigJ0iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ2NgorIzogYnVpbHRpbi9wdXNoLmM6NDc4CiBtc2dpZCAicHVzaCBtaXNzaW5nIGJ1dCByZWxldmFudCB0YWdzIgogbXNnc3RyICJwdXNoIGLhu4sgdHLGsOG7o3QgbmjGsG5nIGPDoWMgdGjhursgdGjDrWNoIGjhu6NwIgogCi0jOiBidWlsdGluL3B1c2guYzo0NzYKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ4OAogbXNnaWQgIi0tZGVsZXRlIGlzIGluY29tcGF0aWJsZSB3aXRoIC0tYWxsLCAtLW1pcnJvciBhbmQgLS10YWdzIgogbXNnc3RyICItLWRlbGV0ZSBsw6AgeHVuZyBraOG6r2MgduG7m2kgY8OhYyB0w7l5IGNo4buNbiAtLWFsbCwgLS1taXJyb3IgdsOgIC0tdGFncyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDc4CisjOiBidWlsdGluL3B1c2guYzo0OTAKIG1zZ2lkICItLWRlbGV0ZSBkb2Vzbid0IG1ha2Ugc2Vuc2Ugd2l0aG91dCBhbnkgcmVmcyIKIG1zZ3N0ciAiLS1kZWxldGUga2jDtG5nIGjhu6NwIGzDvSBu4bq/dSBraMO0bmcgY8OzIGLhuqV0IGvhu7MgdGhhbSBjaGnhur91IChyZWZzKSBuw6BvIgogCkBAIC03OTgyLDE0ICs4MTk3LDE0IEBACiAKICM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM4CiBtc2dpZCAiZGVidWcgdW5wYWNrLXRyZWVzIgotbXNnc3RyICJn4buhIGzhu5dpIHVucGFjay10cmVlcyIKK21zZ3N0ciAiZ+G7oSBs4buXaSDigJx1bnBhY2stdHJlZXPigJ0iCiAKLSM6IGJ1aWx0aW4vcmVmbG9nLmM6NTAwCisjOiBidWlsdGluL3JlZmxvZy5jOjQ5OQogIywgYy1mb3JtYXQKIG1zZ2lkICIlcycgZm9yICclcycgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIgotbXNnc3RyICIlcycgY2hvICclcycga2jDtG5nIHBo4bqjaSBsw6AgZOG6pXUgdGjhu51pIGdpYW4gaOG7o3AgbOG7hyIKK21zZ3N0ciAiZ2nDoSB0cuG7iyAlcyBkw6BuaCBjaG8g4oCcJXPigJ0ga2jDtG5nIHBo4bqjaSBsw6AgZOG6pXUgdGjhu51pIGdpYW4gaOG7o3AgbOG7hyIKIAotIzogYnVpbHRpbi9yZWZsb2cuYzo2MTYgYnVpbHRpbi9yZWZsb2cuYzo2MjEKKyM6IGJ1aWx0aW4vcmVmbG9nLmM6NjE1IGJ1aWx0aW4vcmVmbG9nLmM6NjIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIgogbXNnc3RyICLigJwlc+KAnSBraMO0bmcgcGjhuqNpIGzDoCBk4bqldSB0aOG7nWkgZ2lhbiBo4bujcCBs4buHIgpAQCAtODAxNCw5ICs4MjI5LDkgQEAKIG1zZ2lkICJnaXQgcmVtb3RlIHJlbW92ZSA8bmFtZT4iCiBtc2dzdHIgImdpdCByZW1vdGUgcmVtb3ZlIDx0w6puPiIKIAotIzogYnVpbHRpbi9yZW1vdGUuYzoxNSBidWlsdGluL3JlbW90ZS5jOjQyCi1tc2dpZCAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLWQgfCA8YnJhbmNoPikiCi1tc2dzdHIgImdpdCByZW1vdGUgc2V0LWhlYWQgPHTDqm4+ICgtYSB8IC1kIHwgPG5ow6FuaD4pIgorIzogYnVpbHRpbi9yZW1vdGUuYzoxNQorbXNnaWQgImdpdCByZW1vdGUgc2V0LWhlYWQgPG5hbWU+ICgtYSB8IC0tYXV0byB8IC1kIHwgLS1kZWxldGUgfDxicmFuY2g+KSIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8dMOqbj4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8IDxuaMOhbmg+KSIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNgogbXNnaWQgImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSBzaG93IFstbl0gPG5hbWU+IgpAQCAtODA1Miw2ICs4MjY3LDEwIEBACiBtc2dpZCAiZ2l0IHJlbW90ZSBhZGQgWzxvcHRpb25zPl0gPG5hbWU+IDx1cmw+IgogbXNnc3RyICJnaXQgcmVtb3RlIGFkZCBbPGPDoWMtdMO5eS1jaOG7jW4+XSA8dMOqbj4gPHVybD4iCiAKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NDIKK21zZ2lkICJnaXQgcmVtb3RlIHNldC1oZWFkIDxuYW1lPiAoLWEgfCAtLWF1dG8gfCAtZCB8IC0tZGVsZXRlIHwgPGJyYW5jaD4pIgorbXNnc3RyICJnaXQgcmVtb3RlIHNldC1oZWFkIDx0w6puPiAoLWEgfCAtLWF1dG8gfCAtZCB8IC0tZGVsZXRlIHwgPG5ow6FuaD4pIgorCiAjOiBidWlsdGluL3JlbW90ZS5jOjQ3CiBtc2dpZCAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgPG5hbWU+IDxicmFuY2g+Li4uIgogbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyA8dMOqbj4gPG5ow6FuaD4uLi4iCkBAIC04MTUwLDcgKzgzNjksNyBAQAogIzogYnVpbHRpbi9yZW1vdGUuYzozMzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGdldCBmZXRjaCBtYXAgZm9yIHJlZnNwZWMgJXMiCi1tc2dzdHIgIktow7RuZyB0aOG7gyBs4bqleSDDoW5oIHjhuqEgKG1hcCkgZmV0Y2ggY2hvIHJlZnNwZWMgJXMiCittc2dzdHIgIktow7RuZyB0aOG7gyBs4bqleSDDoW5oIHjhuqEgKG1hcCkgZmV0Y2ggY2hvIMSR4bq3YyB04bqjIHRoYW0gY2hp4bq/dSAlcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzo0NDAgYnVpbHRpbi9yZW1vdGUuYzo0NDgKIG1zZ2lkICIobWF0Y2hpbmcpIgpAQCAtODI0Miw3ICs4NDYxLDcgQEAKIAogIzogYnVpbHRpbi9yZW1vdGUuYzo5NDgKIG1zZ2lkICIgc3RhbGUgKHVzZSAnZ2l0IHJlbW90ZSBwcnVuZScgdG8gcmVtb3ZlKSIKLW1zZ3N0ciAiIGPFqSAoZMO5bmcg4oCcZ2l0IHJlbW90ZSBwcnVuZeKAnSDEkeG7gyBn4buhIGLhu48pIgorbXNnc3RyICIgY8WpIHLDrWNoIChkw7luZyDigJxnaXQgcmVtb3RlIHBydW5l4oCdIMSR4buDIGfhu6EgYuG7jykiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6OTUwCiBtc2dpZCAiID8/PyIKQEAgLTg0OTAsNiArODcwOSw2NyBAQAogbXNnaWQgImJlIHZlcmJvc2U7IG11c3QgYmUgcGxhY2VkIGJlZm9yZSBhIHN1YmNvbW1hbmQiCiBtc2dzdHIgImNoaSB0aeG6v3Q7IHBo4bqjaSDEkcaw4bujYyDEkeG6t3QgdHLGsOG7m2MgbeG7mXQgbOG7h25oLWNvbiIKIAorIzogYnVpbHRpbi9yZXBhY2suYzoxNQorbXNnaWQgImdpdCByZXBhY2sgW29wdGlvbnNdIgorbXNnc3RyICJnaXQgcmVwYWNrIFtjw6FjLXTDuXktY2jhu41uXSIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNDMKK21zZ2lkICJwYWNrIGV2ZXJ5dGhpbmcgaW4gYSBzaW5nbGUgcGFjayIKK21zZ3N0ciAixJHDs25nIGfDs2kgbeG7jWkgdGjhu6kgdHJvbmcgbeG7mXQgZ8OzaSDEkcahbiIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNDUKK21zZ2lkICJzYW1lIGFzIC1hLCBhbmQgdHVybiB1bnJlYWNoYWJsZSBvYmplY3RzIGxvb3NlIgorbXNnc3RyICJnaeG7kW5nIHbhu5tpIC1hLCB2w6AgY2jhu4luaCBz4butYSBjw6FjIMSR4buRaSB0xrDhu6NuZyBraMO0bmcgxJHhu41jIMSRxrDhu6NjIHRoaeG6v3Ugc8OzdCIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNDgKK21zZ2lkICJyZW1vdmUgcmVkdW5kYW50IHBhY2tzLCBhbmQgcnVuIGdpdC1wcnVuZS1wYWNrZWQiCittc2dzdHIgInjDs2EgYuG7jyBjw6FjIGfDs2kgZMawIHRo4burYSwgdsOgIGNo4bqheSBnaXQtcHJ1bmUtcGFja2VkIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE1MAorbXNnaWQgInBhc3MgLS1uby1yZXVzZS1kZWx0YSB0byBnaXQtcGFjay1vYmplY3RzIgorbXNnc3RyICJjaHV54buDbiAtLW5vLXJldXNlLWRlbHRhIGNobyBnaXQtcGFjay1vYmplY3RzIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE1MgorbXNnaWQgInBhc3MgLS1uby1yZXVzZS1vYmplY3QgdG8gZ2l0LXBhY2stb2JqZWN0cyIKK21zZ3N0ciAiY2h1eeG7g24gLS1uby1yZXVzZS1vYmplY3QgY2hvIGdpdC1wYWNrLW9iamVjdHMiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTU0Cittc2dpZCAiZG8gbm90IHJ1biBnaXQtdXBkYXRlLXNlcnZlci1pbmZvIgorbXNnc3RyICJraMO0bmcgY2jhuqF5IGdpdC11cGRhdGUtc2VydmVyLWluZm8iCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTU3Cittc2dpZCAicGFzcyAtLWxvY2FsIHRvIGdpdC1wYWNrLW9iamVjdHMiCittc2dzdHIgImNodXnhu4NuIC0tbG9jYWwgY2hvIGdpdC1wYWNrLW9iamVjdHMiCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTU4Cittc2dpZCAiYXBwcm94aWRhdGUiCittc2dzdHIgIm5nw6B5IMaw4bubYyB0w61uaCIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNTkKK21zZ2lkICJ3aXRoIC1BLCBkbyBub3QgbG9vc2VuIG9iamVjdHMgb2xkZXIgdGhhbiB0aGlzIgorbXNnc3RyICJ24bubaSAtQSwgY8OhYyDEkeG7kWkgdMaw4bujbmcgY8WpIGjGoW4ga2hv4bqjbmcgdGjhu51pIGdpYW4gbsOgeSB0aMOsIGtow7RuZyBi4buLIG3huqV0IgorCisjOiBidWlsdGluL3JlcGFjay5jOjE2MQorbXNnaWQgInNpemUgb2YgdGhlIHdpbmRvdyB1c2VkIGZvciBkZWx0YSBjb21wcmVzc2lvbiIKK21zZ3N0ciAia8OtY2ggdGjGsOG7m2MgY+G7rWEgc+G7lSDEkcaw4bujYyBkw7luZyBjaG8gbsOpbiDigJxkZWx0YeKAnSIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNjMKK21zZ2lkICJzYW1lIGFzIHRoZSBhYm92ZSwgYnV0IGxpbWl0IG1lbW9yeSBzaXplIGluc3RlYWQgb2YgZW50cmllcyBjb3VudCIKK21zZ3N0ciAiZ2nhu5FuZyBuaMawIHRyw6puLCBuaMawbmcgZ2nhu5tpIGjhuqFuIGvDrWNoIHRoxrDhu5tjIGLhu5kgbmjhu5sgaGF5IHbDrCBz4buRIGzGsOG7o25nIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE2NQorbXNnaWQgImxpbWl0cyB0aGUgbWF4aW11bSBkZWx0YSBkZXB0aCIKK21zZ3N0ciAiZ2nhu5tpIGjhuqFuIMSR4buZIHPDonUgdOG7kWkgxJFhIGPhu6dhIOKAnGRlbHRh4oCdIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE2NworbXNnaWQgIm1heGltdW0gc2l6ZSBvZiBlYWNoIHBhY2tmaWxlIgorbXNnc3RyICJrY8OtaCB0aMaw4bubYyB04buRaSDEkWEgY2hvIHThu6tuZyB04bqtcCB0aW4gZ8OzaSIKKworIzogYnVpbHRpbi9yZXBhY2suYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3ZpbmcgJyVzJyBmYWlsZWQiCittc2dzdHIgImfhurdwIGzhu5dpIGtoaSB4w7NhIGLhu48g4oCcJXPigJ0iCisKICM6IGJ1aWx0aW4vcmVwbGFjZS5jOjE3CiBtc2dpZCAiZ2l0IHJlcGxhY2UgWy1mXSA8b2JqZWN0PiA8cmVwbGFjZW1lbnQ+IgogbXNnc3RyICJnaXQgcmVwbGFjZSBbLWZdIDzEkeG7kWktdMaw4bujbmc+IDx0aGF5LXRo4bq/PiIKQEAgLTg1MDIsMjMgKzg3ODIsMjMgQEAKIG1zZ2lkICJnaXQgcmVwbGFjZSAtbCBbPHBhdHRlcm4+XSIKIG1zZ3N0ciAiZ2l0IHJlcGxhY2UgLWwgWzxt4bqrdT5dIgogCi0jOiBidWlsdGluL3JlcGxhY2UuYzoxMjEKKyM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEzMQogbXNnaWQgImxpc3QgcmVwbGFjZSByZWZzIgogbXNnc3RyICJsaeG7h3Qga8OqIGPDoWMgcmVmcyB0aGF5IHRo4bq/IgogCi0jOiBidWlsdGluL3JlcGxhY2UuYzoxMjIKKyM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEzMgogbXNnaWQgImRlbGV0ZSByZXBsYWNlIHJlZnMiCiBtc2dzdHIgInjDs2EgdGhhbSBjaGnhur91IChyZWZzKSB0aGF5IHRo4bq/IgogCi0jOiBidWlsdGluL3JlcGxhY2UuYzoxMjMKKyM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEzMwogbXNnaWQgInJlcGxhY2UgdGhlIHJlZiBpZiBpdCBleGlzdHMiCiBtc2dzdHIgInRoYXkgdGjhur8gdGhhbSBjaGnhur91IChyZWYpIG7hur91IG7DsyDEkcOjIHPhurVuIGPDsyIKIAotIzogYnVpbHRpbi9yZXJlcmUuYzoxMQorIzogYnVpbHRpbi9yZXJlcmUuYzoxMgogbXNnaWQgImdpdCByZXJlcmUgW2NsZWFyIHwgZm9yZ2V0IHBhdGguLi4gfCBzdGF0dXMgfCByZW1haW5pbmcgfCBkaWZmIHwgZ2NdIgogbXNnc3RyICJnaXQgcmVyZXJlIFtjbGVhciB8IGZvcmdldCBwYXRoLi4uIHwgc3RhdHVzIHwgcmVtYWluaW5nIHwgZGlmZiB8IGdjXSIKIAotIzogYnVpbHRpbi9yZXJlcmUuYzo1NgorIzogYnVpbHRpbi9yZXJlcmUuYzo1NwogbXNnaWQgInJlZ2lzdGVyIGNsZWFuIHJlc29sdXRpb25zIGluIGluZGV4IgogbXNnc3RyICJz4buVIGdoaSBk4buNbiBz4bqhY2ggY8OhYyBwaMOibiBnaeG6o2kgdHJvbmcgYuG6o24gbeG7pWMgbOG7pWMiCiAKQEAgLTg1NzksNzEgKzg4NTksNzEgQEAKIG1zZ2lkICJDYW5ub3QgZG8gYSAlcyByZXNldCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiBt4buZdCAlcyByZXNldCDhu58gZ2nhu69hIGPhu6dhIHF1w6EgdHLDrG5oIGjDsmEgdHLhu5luLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MQorIzogYnVpbHRpbi9yZXNldC5jOjI2MgogbXNnaWQgImJlIHF1aWV0LCBvbmx5IHJlcG9ydCBlcnJvcnMiCiBtc2dzdHIgImzDoG0gdmnhu4djIOG7nyBjaOG6vyDEkeG7mSBpbSBs4bq3bmcsIGNo4buJIGhp4buDbiB0aOG7iyBraGkgY8OzIGzhu5dpIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjUzCisjOiBidWlsdGluL3Jlc2V0LmM6MjY0CiBtc2dpZCAicmVzZXQgSEVBRCBhbmQgaW5kZXgiCiBtc2dzdHIgIsSR4bq3dCBs4bqhaSAocmVzZXQpIEhFQUQgdsOgIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1NAorIzogYnVpbHRpbi9yZXNldC5jOjI2NQogbXNnaWQgInJlc2V0IG9ubHkgSEVBRCIKIG1zZ3N0ciAiY2jhu4kgxJHhurd0IGzhuqFpIChyZXNldCkgSEVBRCIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1NiBidWlsdGluL3Jlc2V0LmM6MjU4CisjOiBidWlsdGluL3Jlc2V0LmM6MjY3IGJ1aWx0aW4vcmVzZXQuYzoyNjkKIG1zZ2lkICJyZXNldCBIRUFELCBpbmRleCBhbmQgd29ya2luZyB0cmVlIgogbXNnc3RyICLEkeG6t3QgbOG6oWkgSEVBRCwgYuG6o25nIG3hu6VjIGzhu6VjIHbDoCBjw6J5IGzDoG0gdmnhu4djIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjYwCisjOiBidWlsdGluL3Jlc2V0LmM6MjcxCiBtc2dpZCAicmVzZXQgSEVBRCBidXQga2VlcCBsb2NhbCBjaGFuZ2VzIgogbXNnc3RyICLEkeG6t3QgbOG6oWkgSEVBRCBuaMawbmcgZ2nhu68gbOG6oWkgY8OhYyB0aGF5IMSR4buVaSBu4buZaSBi4buZIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6Mjc4CisjOiBidWlsdGluL3Jlc2V0LmM6Mjg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZXZpc2lvbi4iCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSBwaMOibiBnaeG6o2kg4oCcJXPigJ0gbmjGsCBsw6AgxJFp4buDbSB4w6l0IGR1eeG7h3QgaOG7o3AgbOG7hy4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyODEgYnVpbHRpbi9yZXNldC5jOjI4OQorIzogYnVpbHRpbi9yZXNldC5jOjI5MiBidWlsdGluL3Jlc2V0LmM6MzAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBvYmplY3QgJyVzJy4iCiBtc2dzdHIgImtow7RuZyB0aOG7gyBwaMOibiB0w61jaCDEkeG7kWkgdMaw4bujbmcg4oCcJXPigJ0uIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6Mjg2CisjOiBidWlsdGluL3Jlc2V0LmM6Mjk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCB0cmVlLiIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHBow6JuIGdp4bqjaSDigJwlc+KAnSBuaMawIGzDoCBt4buZdCBjw6J5ICh0cmVlKSBo4bujcCBs4buHLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI5NQorIzogYnVpbHRpbi9yZXNldC5jOjMwNgogbXNnaWQgIi0tcGF0Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggLS17aGFyZCxtaXhlZCxzb2Z0fSIKIG1zZ3N0ciAiLS1wYXRjaCB4dW5nIGto4bqvYyB24bubaSAtLXtoYXJkLG1peGVkLHNvZnR9IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzA0CisjOiBidWlsdGluL3Jlc2V0LmM6MzE1CiBtc2dpZCAiLS1taXhlZCB3aXRoIHBhdGhzIGlzIGRlcHJlY2F0ZWQ7IHVzZSAnZ2l0IHJlc2V0IC0tIDxwYXRocz4nIGluc3RlYWQuIgogbXNnc3RyICIiCiAiLS1taXhlZCB24bubaSBjw6FjIMSRxrDhu51uZyBk4bqrbiBraMO0bmcgY8OybiBkw7luZyBu4buvYTsgaMOjeSB0aGF5IHRo4bq/IGLhurFuZyBs4buHbmgg4oCcZ2l0ICIKICJyZXNldCAtLSA8xJHGsOG7nW5nX2ThuqtuPuKAnS4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMDYKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGRvICVzIHJlc2V0IHdpdGggcGF0aHMuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiBs4buHbmggJXMgcmVzZXQgduG7m2kgY8OhYyDEkcaw4budbmcgZOG6q24uIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzE2CisjOiBidWlsdGluL3Jlc2V0LmM6MzI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIHJlc2V0IGlzIG5vdCBhbGxvd2VkIGluIGEgYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICIlcyByZXNldCBraMO0bmcgxJHGsOG7o2MgcGjDqXAgdHLDqm4ga2hvIGJhcmUgKHRyw6puIG3DoXkgY2jhu6cpIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzM2CisjOiBidWlsdGluL3Jlc2V0LmM6MzQ0Cittc2dpZCAiVW5zdGFnZWQgY2hhbmdlcyBhZnRlciByZXNldDoiCittc2dzdHIgIk5o4buvbmcgdGhheSDEkeG7lWkgYuG7iyBi4buPIHRy4bqhbmcgdGjDoWkgKHN0YWdlKSBzYXUga2hpIHJlc2V0OiIKKworIzogYnVpbHRpbi9yZXNldC5jOjM1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVzZXQgaW5kZXggZmlsZSB0byByZXZpc2lvbiAnJXMnLiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIMSR4bq3dCBs4bqhaSAocmVzZXQpIGLhuqNuZyBt4bulYyBs4bulYyB0aMOgbmggxJFp4buDbSB4w6l0IGR1eeG7h3Qg4oCcJXPigJ0uIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzQyCi1tc2dpZCAiVW5zdGFnZWQgY2hhbmdlcyBhZnRlciByZXNldDoiCi1tc2dzdHIgIk5o4buvbmcgdGhheSDEkeG7lWkgYuG7iyBi4buPIHRy4bqhbmcgdGjDoWkgKHN0YWdlKSBzYXUga2hpIHJlc2V0OiIKLQotIzogYnVpbHRpbi9yZXNldC5jOjM0NworIzogYnVpbHRpbi9yZXNldC5jOjM1NQogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBuZXcgaW5kZXggZmlsZS4iCiBtc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgdOG6rXAgdGluIGzGsHUgYuG6o25nIG3hu6VjIGzhu6VjIG3hu5tpLiIKIApAQCAtODY4OSw4NCArODk2OSw4NCBAQAogbXNnaWQgImdpdCBjaGVycnktcGljayA8c3ViY29tbWFuZD4iCiBtc2dzdHIgImdpdCBjaGVycnktcGljayA8bOG7h25oLWNvbj4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6NzEgYnVpbHRpbi9yZXZlcnQuYzo5NAorIzogYnVpbHRpbi9yZXZlcnQuYzo3MQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogJXMgY2Fubm90IGJlIHVzZWQgd2l0aCAlcyIKIG1zZ3N0ciAiJXM6ICVzIGtow7RuZyB0aOG7gyDEkcaw4bujYyBz4butIGThu6VuZyB24bubaSAlcyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODAKIG1zZ2lkICJlbmQgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICJr4bq/dCB0aMO6YyBjaGVycnktcGljayBoYXkgcmV2ZXJ0IGxpw6puIHRp4bq/cCBuaGF1IgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNgorIzogYnVpbHRpbi9yZXZlcnQuYzo4MQogbXNnaWQgInJlc3VtZSByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgInBo4bulYyBo4buTaSBs4bqhaSBjaGVycnktcGljayBoYXkgcmV2ZXJ0IGxpw6puIHRp4bq/cCBuaGF1IgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNworIzogYnVpbHRpbi9yZXZlcnQuYzo4MgogbXNnaWQgImNhbmNlbCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgImtow7RuZyBjaGVycnktcGljayBoYXkgcmV2ZXJ0IGxpw6puIHRp4bq/cCBuaGF1IgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwOAorIzogYnVpbHRpbi9yZXZlcnQuYzo4MwogbXNnaWQgImRvbid0IGF1dG9tYXRpY2FsbHkgY29tbWl0IgogbXNnc3RyICJraMO0bmcgY29tbWl0IG3hu5l0IGPDoWNoIHThu7EgxJHhu5luZy4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA5CisjOiBidWlsdGluL3JldmVydC5jOjg0CiBtc2dpZCAiZWRpdCB0aGUgY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgInPhu61hIGzhuqFpIGNow7ogdGjDrWNoIGNobyBjb21taXQiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCisjOiBidWlsdGluL3JldmVydC5jOjg3CiBtc2dpZCAicGFyZW50IG51bWJlciIKIG1zZ3N0ciAic+G7kSBj4bunYSBjaGEgbeG6uSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTQKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODkKIG1zZ2lkICJtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAiY2hp4bq/biBsxrDhu6NjIGjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExNQorIzogYnVpbHRpbi9yZXZlcnQuYzo5MAogbXNnaWQgIm9wdGlvbiIKIG1zZ3N0ciAidMO5eSBjaOG7jW4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE2CisjOiBidWlsdGluL3JldmVydC5jOjkxCiBtc2dpZCAib3B0aW9uIGZvciBtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAidMO5eSBjaOG7jW4gY2hvIGNoaeG6v24gbMaw4bujYyBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjcKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTAyCiBtc2dpZCAiYXBwZW5kIGNvbW1pdCBuYW1lIgogbXNnc3RyICJu4buRaSB0aMOqbSB0w6puIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4CisjOiBidWlsdGluL3JldmVydC5jOjEwMwogbXNnaWQgImFsbG93IGZhc3QtZm9yd2FyZCIKIG1zZ3N0ciAiY2hvIHBow6lwIGZhc3QtZm9yd2FyZCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjkKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA0CiBtc2dpZCAicHJlc2VydmUgaW5pdGlhbGx5IGVtcHR5IGNvbW1pdHMiCiBtc2dzdHIgImPhuqVtIGto4bufaSB04bqhbyBs4bqnbiBjaHV54buDbiBnaWFvIHRy4buRbmcgcuG7l25nIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzMAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKIG1zZ2lkICJhbGxvdyBjb21taXRzIHdpdGggZW1wdHkgbWVzc2FnZXMiCiBtc2dzdHIgImNo4bqlcCBuaOG6rW4gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBtw6Aga2jDtG5nIGdoaSBjaMO6IGfDrCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMzEKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA2CiBtc2dpZCAia2VlcCByZWR1bmRhbnQsIGVtcHR5IGNvbW1pdHMiCiBtc2dzdHIgImdp4buvIGzhuqFpIGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyBkxrAgdGjhu6thLCBy4buXbmciCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTM1CisjOiBidWlsdGluL3JldmVydC5jOjExMAogbXNnaWQgInByb2dyYW0gZXJyb3IiCiBtc2dzdHIgImzhu5dpIGNoxrDGoW5nIHRyw6xuaCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyMjUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTk1CiBtc2dpZCAicmV2ZXJ0IGZhaWxlZCIKIG1zZ3N0ciAicmV2ZXJ0IGfhurdwIGzhu5dpIgogCi0jOiBidWlsdGluL3JldmVydC5jOjI0MAorIzogYnVpbHRpbi9yZXZlcnQuYzoyMTAKIG1zZ2lkICJjaGVycnktcGljayBmYWlsZWQiCiBtc2dzdHIgImNoZXJyeS1waWNrIGfhurdwIGzhu5dpIgogCi0jOiBidWlsdGluL3JtLmM6MTYKKyM6IGJ1aWx0aW4vcm0uYzoxNwogbXNnaWQgImdpdCBybSBbb3B0aW9uc10gWy0tXSA8ZmlsZT4uLi4iCiBtc2dzdHIgImdpdCBybSBbY8OhYy10w7l5LWNo4buNbl0gWy0tXSA8dOG6rXAtdGluPi4uLiIKIAotIzogYnVpbHRpbi9ybS5jOjY0CisjOiBidWlsdGluL3JtLmM6NjUKIG1zZ2lkICIiCiAidGhlIGZvbGxvd2luZyBzdWJtb2R1bGUgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpXG4iCiAidXNlcyBhIC5naXQgZGlyZWN0b3J5OiIKQEAgLTg3ODAsNyArOTA2MCw3IEBACiAiY8OhYyBtw7QtxJF1bi1jb24gc2F1IMSRw6J5IChoYXkgbeG7mXQgdHJvbmcgc+G7kSBtw7QtxJF1bi1jb24gYsOqbiB0cm9uZyBj4bunYSBuw7MpXG4iCiAiZMO5bmcgbeG7mXQgdGjGsCBt4bulYyAuZ2l0OiIKIAotIzogYnVpbHRpbi9ybS5jOjcwCisjOiBidWlsdGluL3JtLmM6NzEKIG1zZ2lkICIiCiAiXG4iCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgpAQCAtODc4OSw3ICs5MDY5LDcgQEAKICIoZMO5bmcgL1wicm0gLXJmL1wiIG7hur91IGLhuqFuIHRo4buxYyBz4buxIG114buRbiBn4buhIGLhu48gbsOzIGPDuW5nIHbhu5tpIHThuqV0IGPhuqMgbOG7i2NoIHPhu60gY+G7p2EgIgogImNow7puZykiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMzAKKyM6IGJ1aWx0aW4vcm0uYzoyMzEKIG1zZ2lkICIiCiAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgogImZpbGUgYW5kIHRoZSBIRUFEOiIKQEAgLTg4MDMsNyArOTA4Myw3IEBACiAiY8OhYyB04bqtcCB0aW4gc2F1IMSRw6J5IGPDsyB0cuG6oW5nIHRow6FpIGtow6FjIGJp4buHdCBu4buZaSBkdW5nIHThu6sgY+G6oyB04bqtcCB0aW5cbiIKICJ2w6AgY+G6oyBIRUFEOiIKIAotIzogYnVpbHRpbi9ybS5jOjIzNQorIzogYnVpbHRpbi9ybS5jOjIzNgogbXNnaWQgIiIKICJcbiIKICIodXNlIC1mIHRvIGZvcmNlIHJlbW92YWwpIgpAQCAtODgxMSwxMyArOTA5MSwxMyBAQAogIlxuIgogIihkw7luZyAtZiDEkeG7gyBideG7mWMgZ+G7oSBi4buPKSIKIAotIzogYnVpbHRpbi9ybS5jOjIzOQorIzogYnVpbHRpbi9ybS5jOjI0MAogbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKIG1zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoiCiBtc2dzdHJbMF0gInThuq1wIHRpbiBzYXUgxJHDonkgY8OzIHRoYXkgxJHhu5VpIHRy4bqhbmcgdGjDoWkgdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjOiIKIG1zZ3N0clsxXSAiY8OhYyB04bqtcCB0aW4gc2F1IMSRw6J5IGPDsyB0aGF5IMSR4buVaSB0cuG6oW5nIHRow6FpIHRyb25nIGLhuqNuZyBt4bulYyBs4bulYzoiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyNDMgYnVpbHRpbi9ybS5jOjI1NAorIzogYnVpbHRpbi9ybS5jOjI0NCBidWlsdGluL3JtLmM6MjU1CiBtc2dpZCAiIgogIlxuIgogIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCkBAIC04ODI1LDM4ICs5MTA1LDM4IEBACiAiXG4iCiAiKGTDuW5nIHTDuXkgY2jhu41uIC0tY2FjaGVkIMSR4buDIGdp4buvIHThuq1wIHRpbiwgaG/hurdjIC1mIMSR4buDIMOpcCBideG7mWMgZ+G7oSBi4buPKSIKIAotIzogYnVpbHRpbi9ybS5jOjI1MQorIzogYnVpbHRpbi9ybS5jOjI1MgogbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uczoiCiBtc2dpZF9wbHVyYWwgInRoZSBmb2xsb3dpbmcgZmlsZXMgaGF2ZSBsb2NhbCBtb2RpZmljYXRpb25zOiIKIG1zZ3N0clswXSAidOG6rXAgdGluIHNhdSDEkcOieSBjw7Mgbmjhu69uZyB0aGF5IMSR4buVaSBu4buZaSBi4buZOiIKIG1zZ3N0clsxXSAibmjhu69uZyB04bqtcCB0aW4gc2F1IMSRw6J5IGPDsyBuaOG7r25nIHRoYXkgxJHhu5VpIG7hu5lpIGLhu5k6IgogCi0jOiBidWlsdGluL3JtLmM6MjY5CisjOiBidWlsdGluL3JtLmM6MjcwCiBtc2dpZCAiZG8gbm90IGxpc3QgcmVtb3ZlZCBmaWxlcyIKIG1zZ3N0ciAia2jDtG5nIGxp4buHdCBrw6ogY8OhYyB04bqtcCB0aW4gxJHDoyBn4buhIGLhu48iCiAKLSM6IGJ1aWx0aW4vcm0uYzoyNzAKKyM6IGJ1aWx0aW4vcm0uYzoyNzEKIG1zZ2lkICJvbmx5IHJlbW92ZSBmcm9tIHRoZSBpbmRleCIKIG1zZ3N0ciAiY2jhu4kgZ+G7oSBi4buPIHThu6sgbeG7pWMgbOG7pWMiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyNzEKKyM6IGJ1aWx0aW4vcm0uYzoyNzIKIG1zZ2lkICJvdmVycmlkZSB0aGUgdXAtdG8tZGF0ZSBjaGVjayIKIG1zZ3N0ciAiZ2hpIMSRw6ggbMOqbiBraeG7g20gdHJhIGPhuq1wIG5o4bqtdCIKIAotIzogYnVpbHRpbi9ybS5jOjI3MgorIzogYnVpbHRpbi9ybS5jOjI3MwogbXNnaWQgImFsbG93IHJlY3Vyc2l2ZSByZW1vdmFsIgogbXNnc3RyICJjaG8gcGjDqXAgZ+G7oSBi4buPIMSR4buHIHF1aSIKIAotIzogYnVpbHRpbi9ybS5jOjI3NAorIzogYnVpbHRpbi9ybS5jOjI3NQogbXNnaWQgImV4aXQgd2l0aCBhIHplcm8gc3RhdHVzIGV2ZW4gaWYgbm90aGluZyBtYXRjaGVkIgogbXNnc3RyICJ0aG/DoXQgcmEgduG7m2kgdHLhuqFuZyB0aMOhaSBraMOhYyBraMO0bmcgdGjhuq1tIGNow60gbuG6v3Uga2jDtG5nIGPDsyBnw6wga2jhu5twIgogCi0jOiBidWlsdGluL3JtLmM6MzQ1CisjOiBidWlsdGluL3JtLmM6MzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCByZW1vdmluZyAnJXMnIHJlY3Vyc2l2ZWx5IHdpdGhvdXQgLXIiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBn4buhIGLhu48g4oCcJXPigJ0gbeG7mXQgY8OhY2ggxJHhu4cgcXVpIG3DoCBraMO0bmcgY8OzIHTDuXkgY2jhu41uIC1yIgogCi0jOiBidWlsdGluL3JtLmM6Mzg0CisjOiBidWlsdGluL3JtLmM6Mzc1CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCBybTogdW5hYmxlIHRvIHJlbW92ZSAlcyIKIG1zZ3N0ciAiZ2l0IHJtOiBraMO0bmcgdGjhu4MgZ+G7oSBi4buPICVzIgpAQCAtODg3MCwyMyArOTE1MCwyMyBAQAogbXNnaWQgIk1pc3NpbmcgYXV0aG9yOiAlcyIKIG1zZ3N0ciAiVGhp4bq/dSB0w6puIHTDoWMgZ2nhuqM6ICVzIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjI4CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjMwCiBtc2dpZCAic29ydCBvdXRwdXQgYWNjb3JkaW5nIHRvIHRoZSBudW1iZXIgb2YgY29tbWl0cyBwZXIgYXV0aG9yIgogbXNnc3RyICJz4bqvcCB44bq/cCBr4bq/dCB4deG6pXQgdHXDom4gdGhlbyBz4buRIGzGsOG7o25nIGNodXnhu4NuIGdpYW8gdHLDqm4gbeG7l2kgdMOhYyBnaeG6oyIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMAorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgogbXNnaWQgIlN1cHByZXNzIGNvbW1pdCBkZXNjcmlwdGlvbnMsIG9ubHkgcHJvdmlkZXMgY29tbWl0IGNvdW50IgogbXNnc3RyICJDaOG6t24gbeG7jWkgbcO0IHThuqMgbOG6p24gY2h1eeG7g24gZ2lhbywgY2jhu4kgxJHGsGEgcmEgc+G7kSBsxrDhu6NuZyBs4bqnbiBjaHV54buDbiBnaWFvIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjMyCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjM0CiBtc2dpZCAiU2hvdyB0aGUgZW1haWwgYWRkcmVzcyBvZiBlYWNoIGF1dGhvciIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIHRoxrAgxJFp4buHbiB04butIGNobyB04burbmcgdMOhYyBnaeG6oyIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzNQogbXNnaWQgIndbLGkxWyxpMl1dIgogbXNnc3RyICJ3WyxpMVssaTJdXSIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzNAorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzNgogbXNnaWQgIkxpbmV3cmFwIG91dHB1dCIKIG1zZ3N0ciAiTmfhuq90IGTDsm5nIGtoaSBxdcOhIGTDoGkiCiAKQEAgLTg5NzIsMTEgKzkyNTIsMTEgQEAKIAogIzogYnVpbHRpbi9zaG93LXJlZi5jOjEwCiBtc2dpZCAiIgotImdpdCBzaG93LXJlZiBbLXF8LS1xdWlldF0gWy0tdmVyaWZ5XSBbLS1oZWFkXSBbLWR8LS1kZXJlZmVyZW5jZV0gWy1zfC0taGFzaCIKLSJbPTxuPl1dIFstLWFiYnJldls9PG4+XV0gWy0tdGFnc10gWy0taGVhZHNdIFstLV0gW3BhdHRlcm4qXSAiCisiZ2l0IHNob3ctcmVmIFstcXwtLXF1aWV0XSBbLS12ZXJpZnldIFstLWhlYWRdIFstZHwtLWRlcmVmZXJlbmNlXSBbLXN8LS0iCisiaGFzaFs9PG4+XV0gWy0tYWJicmV2Wz08bj5dXSBbLS10YWdzXSBbLS1oZWFkc10gWy0tXSBbcGF0dGVybipdICIKIG1zZ3N0ciAiIgotImdpdCBzaG93LXJlZiBbLXF8LS1xdWlldF0gWy0tdmVyaWZ5XSBbLS1oZWFkXSBbLWR8LS1kZXJlZmVyZW5jZV0gWy1zfC0taGFzaCIKLSJbPTxuPl1dIFstLWFiYnJldls9PG4+XV0gWy0tdGFnc10gWy0taGVhZHNdIFstLV0gW23huqt1Kl0gIgorImdpdCBzaG93LXJlZiBbLXF8LS1xdWlldF0gWy0tdmVyaWZ5XSBbLS1oZWFkXSBbLWR8LS1kZXJlZmVyZW5jZV0gWy1zfC0tIgorImhhc2hbPTxuPl1dIFstLWFiYnJldls9PG4+XV0gWy0tdGFnc10gWy0taGVhZHNdIFstLV0gW23huqt1Kl0gIgogCiAjOiBidWlsdGluL3Nob3ctcmVmLmM6MTEKIG1zZ2lkICJnaXQgc2hvdy1yZWYgLS1leGNsdWRlLWV4aXN0aW5nWz1wYXR0ZXJuXSA8IHJlZi1saXN0IgpAQCAtODk5NiwyNCArOTI3NiwyNCBAQAogInZp4buHYyBraeG7g20gdHJhIHRoYW0gY2hp4bq/dSBjaMOtbmggeMOhYywgxJHDsmkgaOG7j2kgY2jDrW5oIHjDoWMgxJHGsOG7nW5nIGThuqtuIHRoYW0gY2hp4bq/dSAiCiAiKHJlZikiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzMgYnVpbHRpbi9zaG93LXJlZi5jOjE3NgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MyBidWlsdGluL3Nob3ctcmVmLmM6MTc1CiBtc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UsIGV2ZW4gaWYgaXQgd291bGQgYmUgZmlsdGVyZWQgb3V0IgogbXNnc3RyICJoaeG7g24gdGjhu4sgdGhhbSBjaGnhur91IEhFQUQsIG5nYXkgY+G6oyBraGkgbsOzIMSRw6MgxJHGsOG7o2MgbOG7jWMgcmEiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzgKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzcKIG1zZ2lkICJkZXJlZmVyZW5jZSB0YWdzIGludG8gb2JqZWN0IElEcyIKIG1zZ3N0ciAiYsOjaSBi4buPIHRoYW0gY2hp4bq/dSBjw6FjIHRo4bq7IHRow6BuaCByYSBjw6FjIElEIMSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3OQogbXNnaWQgIm9ubHkgc2hvdyBTSEExIGhhc2ggdXNpbmcgPG4+IGRpZ2l0cyIKIG1zZ3N0ciAiY2jhu4kgaGnhu4NuIHRo4buLIG3DoyBixINtIFNIQTEgc+G7rSBk4bulbmcgPG4+IGNo4buvIHPhu5EiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODQKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODMKIG1zZ2lkICJkbyBub3QgcHJpbnQgcmVzdWx0cyB0byBzdGRvdXQgKHVzZWZ1bCB3aXRoIC0tdmVyaWZ5KSIKIG1zZ3N0ciAiIgogImtow7RuZyBoaeG7g24gdGjhu4sga+G6v3QgcXXhuqMgcmEgxJHhuqd1IHJhIGNodeG6qW4gKHN0ZG91dCkgKGNo4buJIGjhu691IGThu6VuZyB24bubaSAtLXZlcmlmeSkiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODUKIG1zZ2lkICJzaG93IHJlZnMgZnJvbSBzdGRpbiB0aGF0IGFyZW4ndCBpbiBsb2NhbCByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAiaGnhu4NuIHRo4buLIGPDoWMgdGhhbSBjaGnhur91IChyZWZzKSB04burIMSR4bqndSB2w6BvIHRpw6p1IGNodeG6qW4gKHN0ZGluKSBjw6FpIG3DoCBraMO0bmcg4bufICIKQEAgLTkwNDAsMTEgKzkzMjAsMTEgQEAKIG1zZ2lkICJzaG9ydGVuIHJlZiBvdXRwdXQiCiBtc2dzdHIgImzDoG0gbmfhuq9uIGvhur90IHh14bqldCByZWYgKHRoYW0gY2hp4bq/dSkiCiAKLSM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NDMgYnVpbHRpbi91cGRhdGUtcmVmLmM6MTgKKyM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NDMgYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU0CiBtc2dpZCAicmVhc29uIgogbXNnc3RyICJsw70gZG8iCiAKLSM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NDMgYnVpbHRpbi91cGRhdGUtcmVmLmM6MTgKKyM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NDMgYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU0CiBtc2dpZCAicmVhc29uIG9mIHRoZSB1cGRhdGUiCiBtc2dzdHIgImzDvSBkbyBj4bqtcCBuaOG6rXQiCiAKQEAgLTkyMDksMTg3ICs5NDg5LDE5OSBAQAogbXNnaWQgInByaW50IG9ubHkgdGFncyBvZiB0aGUgb2JqZWN0IgogbXNnc3RyICJjaOG7iSBoaeG7g24gdGjhu4sgY8OhYyB0aOG6uyBj4bunYSDEkeG7kWkgdMaw4bujbmciCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTA0CisjOiBidWlsdGluL3RhZy5jOjUwMQogbXNnaWQgIi0tY29sdW1uIGFuZCAtbiBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICItLWNvbHVtbiB2w6AgLW4geHVuZyBraOG6r2MgbmhhdSIKIAotIzogYnVpbHRpbi90YWcuYzo1MjEKKyM6IGJ1aWx0aW4vdGFnLmM6NTE4CiBtc2dpZCAiLW4gb3B0aW9uIGlzIG9ubHkgYWxsb3dlZCB3aXRoIC1sLiIKIG1zZ3N0ciAidMO5eSBjaOG7jW4gLW4gY2jhu4kgY2hvIHBow6lwIGTDuW5nIHbhu5tpIC1sLiIKIAotIzogYnVpbHRpbi90YWcuYzo1MjMKKyM6IGJ1aWx0aW4vdGFnLmM6NTIwCiBtc2dpZCAiLS1jb250YWlucyBvcHRpb24gaXMgb25seSBhbGxvd2VkIHdpdGggLWwuIgogbXNnc3RyICJ0w7l5IGNo4buNbiAtLWNvbnRhaW5zIGNo4buJIGNobyBwaMOpcCBkw7luZyB24bubaSAtbC4iCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTI1CisjOiBidWlsdGluL3RhZy5jOjUyMgogbXNnaWQgIi0tcG9pbnRzLWF0IG9wdGlvbiBpcyBvbmx5IGFsbG93ZWQgd2l0aCAtbC4iCiBtc2dzdHIgInTDuXkgY2jhu41uIC0tcG9pbnRzLWF0IGNo4buJIGNobyBwaMOpcCBkw7luZyB24bubaSAtbC4iCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTMzCisjOiBidWlsdGluL3RhZy5jOjUzMAogbXNnaWQgIm9ubHkgb25lIC1GIG9yIC1tIG9wdGlvbiBpcyBhbGxvd2VkLiIKIG1zZ3N0ciAiY2jhu4kgY8OzIG3hu5l0IHTDuXkgY2jhu41uIC1GIGhv4bq3YyAtbSBsw6AgxJHGsOG7o2MgcGjDqXAuIgogCi0jOiBidWlsdGluL3RhZy5jOjU1MworIzogYnVpbHRpbi90YWcuYzo1NTAKIG1zZ2lkICJ0b28gbWFueSBwYXJhbXMiCiBtc2dzdHIgInF1w6Egbmhp4buBdSDEkeG7kWkgc+G7kSIKIAotIzogYnVpbHRpbi90YWcuYzo1NTkKKyM6IGJ1aWx0aW4vdGFnLmM6NTU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgdGFnIG5hbWUuIgogbXNnc3RyICLigJwlc+KAnSBraMO0bmcgcGjhuqNpIHRo4bq7IGjhu6NwIGzhu4cuIgogCi0jOiBidWlsdGluL3RhZy5jOjU2NAorIzogYnVpbHRpbi90YWcuYzo1NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnICclcycgYWxyZWFkeSBleGlzdHMiCiBtc2dzdHIgIlRo4bq7IOKAnCVz4oCdIMSRw6MgdOG7k24gdOG6oWkgcuG7k2kiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTgyCisjOiBidWlsdGluL3RhZy5jOjU3OQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2Fubm90IGxvY2sgdGhlIHJlZiIKIG1zZ3N0ciAiJXM6IGtow7RuZyB0aOG7gyBraMOzYSByZWYgKHRoYW0gY2hp4bq/dSkiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTg0CisjOiBidWlsdGluL3RhZy5jOjU4MQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2Fubm90IHVwZGF0ZSB0aGUgcmVmIgogbXNnc3RyICIlczoga2jDtG5nIHRo4buDIGPhuq1wIG5o4bqtdCByZWYgKHRoYW0gY2hp4bq/dSkiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTg2CisjOiBidWlsdGluL3RhZy5jOjU4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJVcGRhdGVkIHRhZyAnJXMnICh3YXMgJXMpXG4iCiBtc2dzdHIgIsSQw6MgY+G6rXAgbmjhuq10IHRo4bq7IOKAnCVz4oCdICh0csaw4bubYyBsw6AgJXMpXG4iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NDAxCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjQwMgogbXNnaWQgImdpdCB1cGRhdGUtaW5kZXggW29wdGlvbnNdIFstLV0gWzxmaWxlPi4uLl0iCiBtc2dzdHIgImdpdCB1cGRhdGUtaW5kZXggW2PDoWMtdMO5eS1jaOG7jW5dIFs8dOG6rXAtdGluPi4uLl0iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzE4CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyMAogbXNnaWQgImNvbnRpbnVlIHJlZnJlc2ggZXZlbiB3aGVuIGluZGV4IG5lZWRzIHVwZGF0ZSIKIG1zZ3N0ciAidGnhur9wIHThu6VjIGzDoG0gbeG7m2kgbmdheSBj4bqjIGtoaSBi4bqjbmcgbeG7pWMgbOG7pWMgY+G6p24gxJHGsOG7o2MgY+G6rXAgbmjhuq10IgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyMQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjMKIG1zZ2lkICJyZWZyZXNoOiBpZ25vcmUgc3VibW9kdWxlcyIKIG1zZ3N0ciAicmVmcmVzaDogbOG7nSDEkWkgbcO0LcSRdW4tY29uIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyNAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjYKIG1zZ2lkICJkbyBub3QgaWdub3JlIG5ldyBmaWxlcyIKIG1zZ3N0ciAia2jDtG5nIGLhu48gcXVhIGPDoWMgdOG6rXAgdGluIG3hu5tpIHThuqFvIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyNgorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjgKIG1zZ2lkICJsZXQgZmlsZXMgcmVwbGFjZSBkaXJlY3RvcmllcyBhbmQgdmljZS12ZXJzYSIKIG1zZ3N0ciAixJHhu4MgY8OhYyB04bqtcCB0aW4gdGhheSB0aOG6vyBjw6FjIHRoxrAgbeG7pWMgdsOgIOKAnHZpY2UtdmVyc2HigJ0iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI4CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczMAogbXNnaWQgIm5vdGljZSBmaWxlcyBtaXNzaW5nIGZyb20gd29ya3RyZWUiCiBtc2dzdHIgInRow7RuZyBiw6FvIGPDoWMgdOG6rXAtdGluIHRoaeG6v3UgdHJvbmcgdGjGsC1t4bulYyBsw6BtIHZp4buHYyIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzAKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzMyCiBtc2dpZCAicmVmcmVzaCBldmVuIGlmIGluZGV4IGNvbnRhaW5zIHVubWVyZ2VkIGVudHJpZXMiCiBtc2dzdHIgIiIKICJsw6BtIHTGsMahaSBt4bubaSB0aOG6rW0gY2jDrSBraGkgYuG6o25nIG3hu6VjIGzhu6VjIGNo4bupYSBjw6FjIG3hu6VjIHRpbiBjaMawYSDEkcaw4bujYyBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzMKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzM1CiBtc2dpZCAicmVmcmVzaCBzdGF0IGluZm9ybWF0aW9uIgogbXNnc3RyICJs4bqleSBs4bqhaSB0aMO0bmcgdGluIHRo4buRbmcga8OqIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczNworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzkKIG1zZ2lkICJsaWtlIC0tcmVmcmVzaCwgYnV0IGlnbm9yZSBhc3N1bWUtdW5jaGFuZ2VkIHNldHRpbmciCiBtc2dzdHIgImdp4buRbmcgLS1yZWZyZXNoLCBuaMawbmcgYuG7jyBxdWEgY8OhYyBjw6BpIMSR4bq3dCDigJxhc3N1bWUtdW5jaGFuZ2Vk4oCdIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0MQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDMKIG1zZ2lkICI8bW9kZT4gPG9iamVjdD4gPHBhdGg+IgogbXNnc3RyICI8bW9kZT4gPMSR4buRaSB0xrDhu6NuZz4gPMSRxrDhu51uZyBk4bqrbj4iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQyCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0NAogbXNnaWQgImFkZCB0aGUgc3BlY2lmaWVkIGVudHJ5IHRvIHRoZSBpbmRleCIKIG1zZ3N0ciAidGjDqm0gY8OhYyB04bqtcCB0aW4gxJHDoyBjaOG7iSByYSB2w6BvIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDYKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQ4CiBtc2dpZCAiKCsvLSl4IgogbXNnc3RyICIoKy8tKXgiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQ3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0OQogbXNnaWQgIm92ZXJyaWRlIHRoZSBleGVjdXRhYmxlIGJpdCBvZiB0aGUgbGlzdGVkIGZpbGVzIgogbXNnc3RyICJnaGkgxJHDqCBsw6puIGLDrXQgdGhpIGjDoG5oIGPhu6dhIGPDoWMgdOG6rXAgdGluIMSRxrDhu6NjIGxp4buHdCBrw6oiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzUxCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1MwogbXNnaWQgIm1hcmsgZmlsZXMgYXMgXCJub3QgY2hhbmdpbmdcIiIKIG1zZ3N0ciAixJDDoW5oIGThuqV1IGPDoWMgdOG6rXAgdGluIGzDoCBcImtow7RuZyB0aGF5IMSR4buVaVwiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1NAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTYKIG1zZ2lkICJjbGVhciBhc3N1bWVkLXVuY2hhbmdlZCBiaXQiCiBtc2dzdHIgInjDs2EgYsOtdCAgYXNzdW1lZC11bmNoYW5nZWQiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzU3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1OQogbXNnaWQgIm1hcmsgZmlsZXMgYXMgXCJpbmRleC1vbmx5XCIiCiBtc2dzdHIgIsSRw6FuaCBk4bqldSBjw6FjIHThuq1wIHRpbiBsw6Ag4oCcY2jhu4ktxJHhu41j4oCdIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2MAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjIKIG1zZ2lkICJjbGVhciBza2lwLXdvcmt0cmVlIGJpdCIKIG1zZ3N0ciAieMOzYSBiw610IHNraXAtd29ya3RyZWUiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzYzCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2NQogbXNnaWQgImFkZCB0byBpbmRleCBvbmx5OyBkbyBub3QgYWRkIGNvbnRlbnQgdG8gb2JqZWN0IGRhdGFiYXNlIgogbXNnc3RyICIiCiAiY2jhu4kgdGjDqm0gdsOgbyBi4bqjbmcgbeG7pWMgbOG7pWM7IGtow7RuZyB0aMOqbSBu4buZaSBkdW5nIHbDoG8gY8ahIHPhu58gZOG7ryBsaeG7h3UgxJHhu5FpIHTGsOG7o25nIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2NQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjcKIG1zZ2lkICJyZW1vdmUgbmFtZWQgcGF0aHMgZXZlbiBpZiBwcmVzZW50IGluIHdvcmt0cmVlIgogbXNnc3RyICIiCiAiZ+G7oSBi4buPIGPDoWMgxJHGsOG7nW5nIGThuqtuIMSRxrDhu6NjIMSR4bq3dCB0w6puIHRo4bqtbSBjaMOtIGPhuqMga2hpIG7DsyBoaeG7h24gZGnhu4duIHRyb25nIHRoxrAgbeG7pWMgIgogImzDoG0gdmnhu4djIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2NworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjkKIG1zZ2lkICJ3aXRoIC0tc3RkaW46IGlucHV0IGxpbmVzIGFyZSB0ZXJtaW5hdGVkIGJ5IG51bGwgYnl0ZXMiCiBtc2dzdHIgInbhu5tpIHTDuXkgY2jhu41uIC0tc3RkaW46IGPDoWMgZMOybmcgxJHhuqd1IHbDoG8gxJHGsOG7o2MgY2jhuqVtIGThu6l0IGLhu59pIGvDvSB04buxIG51bGwiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY5CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc3MQogbXNnaWQgInJlYWQgbGlzdCBvZiBwYXRocyB0byBiZSB1cGRhdGVkIGZyb20gc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgIsSR4buNYyBkYW5oIHPDoWNoIMSRxrDhu51uZyBk4bqrbiBj4bqnbiBj4bqtcCBuaOG6rXQgdOG7qyDEkeG6p3UgdsOgbyB0acOqdSBjaHXhuqluIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc3MworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzUKIG1zZ2lkICJhZGQgZW50cmllcyBmcm9tIHN0YW5kYXJkIGlucHV0IHRvIHRoZSBpbmRleCIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyBjw6FjIG3hu6VjIHThu6sgxJHhuqd1IHbDoG8gdGnDqnUgY2h14bqpbiB2w6BvIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzcKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzc5CiBtc2dpZCAicmVwb3B1bGF0ZSBzdGFnZXMgIzIgYW5kICMzIGZvciB0aGUgbGlzdGVkIHBhdGhzIgogbXNnc3RyICJwaOG7pWMgaOG7k2kgY8OhYyB0cuG6oW5nIHRow6FpICMyIHbDoCAjMyBjaG8gY8OhYyDEkcaw4budbmcgZOG6q24gxJHGsOG7o2MgbGnhu4d0IGvDqiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODEKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzgzCiBtc2dpZCAib25seSB1cGRhdGUgZW50cmllcyB0aGF0IGRpZmZlciBmcm9tIEhFQUQiCiBtc2dzdHIgImNo4buJIGPhuq1wIG5o4bqtdCBjw6FjIG3hu6VjIHRpbiBtw6AgbsOzIGtow6FjIGJp4buHdCBzbyB24bubaSBIRUFEIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4NQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODcKIG1zZ2lkICJpZ25vcmUgZmlsZXMgbWlzc2luZyBmcm9tIHdvcmt0cmVlIgogbXNnc3RyICJi4buPIHF1YSBjw6FjIHThuq1wLXRpbiB0aGnhur91IHRyb25nIHRoxrAtbeG7pWMgbMOgbSB2aeG7h2MiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzg4CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5MAogbXNnaWQgInJlcG9ydCBhY3Rpb25zIHRvIHN0YW5kYXJkIG91dHB1dCIKIG1zZ3N0ciAiYsOhbyBjw6FvIGPDoWMgdGhhbyB0w6FjIHJhIHRoaeG6v3QgYuG7iyB4deG6pXQgY2h14bqpbiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTAKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzkyCiBtc2dpZCAiKGZvciBwb3JjZWxhaW5zKSBmb3JnZXQgc2F2ZWQgdW5yZXNvbHZlZCBjb25mbGljdHMiCiBtc2dzdHIgIihjaG8g4oCccG9yY2VsYWluc+KAnSkgcXXDqm4gY8OhYyB4dW5nIMSR4buZdCBjaMawYSDEkcaw4bujYyBnaeG6o2kgcXV54bq/dCDEkcOjIGdoaSIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTQKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzk2CiBtc2dpZCAid3JpdGUgaW5kZXggaW4gdGhpcyBmb3JtYXQiCiBtc2dzdHIgImdoaSBt4bulYyBs4bulYyDhu58gxJHhu4tuaCBk4bqhbmcgbsOgeSIKIAotIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6NworIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6OQogbXNnaWQgImdpdCB1cGRhdGUtcmVmIFtvcHRpb25zXSAtZCA8cmVmbmFtZT4gWzxvbGR2YWw+XSIKIG1zZ3N0ciAiZ2l0IHVwZGF0ZS1yZWYgW2PDoWMtdMO5eS1jaOG7jW5dIC1kIDxyZWZuYW1lPiBbPGJp4bq/bi1jxak+XSIKIAotIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6OAorIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MTAKIG1zZ2lkICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gICAgPHJlZm5hbWU+IDxuZXd2YWw+IFs8b2xkdmFsPl0iCiBtc2dzdHIgImdpdCB1cGRhdGUtcmVmIFtjw6FjLXTDuXktY2jhu41uXSAgICA8cmVmbmFtZT4gPGJp4bq/bi1t4bubaT4gWzxiaeG6v24tY8WpPl0iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjE5CisjOiBidWlsdGluL3VwZGF0ZS1yZWYuYzoxMQorbXNnaWQgImdpdCB1cGRhdGUtcmVmIFtvcHRpb25zXSAtLXN0ZGluIFstel0iCittc2dzdHIgImdpdCB1cGRhdGUtcmVmIFtjw6FjLXTDuXktY2jhu41uXSAtLXN0ZGluIFstel0iCisKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1NQogbXNnaWQgImRlbGV0ZSB0aGUgcmVmZXJlbmNlIgogbXNnc3RyICJ4w7NhIHRoYW0gY2hp4bq/dSIKIAotIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjEKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1NwogbXNnaWQgInVwZGF0ZSA8cmVmbmFtZT4gbm90IHRoZSBvbmUgaXQgcG9pbnRzIHRvIgogbXNnc3RyICJj4bqtcCBuaOG6rXQgPHTDqm4tdGhhbS1jaGnhur91PiBraMO0bmcgcGjhuqNpIGPDoWkgbsOzIGNo4buJIHThu5tpIgogCisjOiBidWlsdGluL3VwZGF0ZS1yZWYuYzoyNTgKK21zZ2lkICJzdGRpbiBoYXMgTlVMLXRlcm1pbmF0ZWQgYXJndW1lbnRzIgorbXNnc3RyICLEkeG6p3UgdsOgbyB0acOqdSBjaHXhuqluIGPDsyBjw6FjIMSR4buRaSBz4buRIMSRxrDhu6NjIGNo4bqlbSBk4bupdCBi4bufaSBOVUwiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1OQorbXNnaWQgInJlYWQgdXBkYXRlcyBmcm9tIHN0ZGluIgorbXNnc3RyICLEkeG7jWMgY+G6rXAgbmjhuq10IHThu6sgxJHhuqd1IHbDoG8gdGnDqnUgY2h14bqpbiIKKwogIzogYnVpbHRpbi91cGRhdGUtc2VydmVyLWluZm8uYzo2CiBtc2dpZCAiZ2l0IHVwZGF0ZS1zZXJ2ZXItaW5mbyBbLS1mb3JjZV0iCiBtc2dzdHIgImdpdCB1cGRhdGUtc2VydmVyLWluZm8gWy0tZm9yY2VdIgpAQCAtOTQ0NCwyMyArOTczNiwyMyBAQAogImjGsOG7m25nIGThuqtuIHbhu4Ega2jDoWkgbmnhu4dtLiBYZW0g4oCcZ2l0IGhlbHAgPGzhu4duaD7igJ0gaGF5IOKAnGdpdCBoZWxwIDxraMOhaS1uaeG7h20+4oCdXG4iCiAixJHhu4MgeGVtIGPDoWMgxJHhurdjIHThuqMgY2hvIGzhu4duaCBoYXkga2jDoWkgbmnhu4dtIGPhu6UgdGjhu4MuIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MTQ0CisjOiBwYXJzZS1vcHRpb25zLmg6MTQ2CiBtc2dpZCAiZXhwaXJ5IGRhdGUiCiBtc2dzdHIgIm5nw6B5IGjhur90IGjhuqFuIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MTU5CisjOiBwYXJzZS1vcHRpb25zLmg6MTYxCiBtc2dpZCAibm8tb3AgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpIgogbXNnc3RyICJuby1vcCAodMawxqFuZyB0aMOtY2ggbmfGsOG7o2MpIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjM2CisjOiBwYXJzZS1vcHRpb25zLmg6MjM4CiBtc2dpZCAiYmUgbW9yZSB2ZXJib3NlIgogbXNnc3RyICJjaGkgdGnhur90IGjGoW4gbuG7r2EiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyMzgKKyM6IHBhcnNlLW9wdGlvbnMuaDoyNDAKIG1zZ2lkICJiZSBtb3JlIHF1aWV0IgogbXNnc3RyICJpbSBs4bq3bmcgaMahbiBu4buvYSIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjI0NAorIzogcGFyc2Utb3B0aW9ucy5oOjI0NgogbXNnaWQgInVzZSA8bj4gZGlnaXRzIHRvIGRpc3BsYXkgU0hBLTFzIgogbXNnc3RyICJz4butIGThu6VuZyA8bj4gY2jhu68gc+G7kSDEkeG7gyBoaeG7g24gdGjhu4sgU0hBLTFzIgogCkBAIC05NjY5LDcgKzk5NjEsNyBAQAogCiAjOiBnaXQtYW0uc2g6NzI1CiBtc2dpZCAiUGF0Y2ggZG9lcyBub3QgaGF2ZSBhIHZhbGlkIGUtbWFpbCBhZGRyZXNzLiIKLW1zZ3N0ciAiTWnhur9uZyB2w6Ega2jDtG5nIGPDsyDEkeG7i2EgY2jhu4kgZS1tYWlsIGjhu6NwIGzhu4cuIgorbXNnc3RyICJNaeG6v25nIHbDoSBraMO0bmcgY8OzIMSR4buLYSBjaOG7iSB0aMawIMSRaeG7h24gdOG7rSBo4bujcCBs4buHLiIKIAogIzogZ2l0LWFtLnNoOjc3MgogbXNnaWQgImNhbm5vdCBiZSBpbnRlcmFjdGl2ZSB3aXRob3V0IHN0ZGluIGNvbm5lY3RlZCB0byBhIHRlcm1pbmFsLiIKQEAgLTk2ODYsOCArOTk3OCw4IEBACiAjOiBnaXQtYW0uc2g6NzgzCiBtc2dpZCAiQXBwbHk/IFt5XWVzL1tuXW8vW2VdZGl0L1t2XWlldyBwYXRjaC9bYV1jY2VwdCBhbGwgIgogbXNnc3RyICIiCi0iw4FwIGThu6VuZz8gxJHhu5NuZyDDvSBbeV0va2jDtG5nIFtuXS9jaOG7iW5oIHPhu61hIFtlXS9oaeG7g24gdGjhu4sgbWnhur9uZyBbdl3DoS/EkeG7k25nIMO9IHThuqV0ICIKLSJj4bqjIFthXSAiCisiw4FwIGThu6VuZz8gxJHhu5NuZyDDvSBbeV0va2jDtFtuXWcvY2jhu4luaCBz4butYSBbZV0vaGnhu4NuIHRo4buLIG1p4bq/bmcgW3Zdw6EvxJHhu5NuZyDDvSB04bqldCBj4bqjICIKKyJbYV0gIgogCiAjOiBnaXQtYW0uc2g6ODE5CiAjLCBzaC1mb3JtYXQKQEAgLTk3MjAsNyArMTAwMTIsNyBAQAogIzogZ2l0LWFtLnNoOjg3NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiUGF0Y2ggZmFpbGVkIGF0ICRtc2dudW0gJEZJUlNUTElORSIKLW1zZ3N0ciAiVsOhIGfhurdwIGzhu5dpIHThuqFpICRtc2dudW0gJEZJUlNUTElORSIKK21zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHbDoSB04bqhaSAkbXNnbnVtICRGSVJTVExJTkUiCiAKICM6IGdpdC1hbS5zaDo4NzcKICMsIHNoLWZvcm1hdApAQCAtOTkxMCw3ICsxMDIwMiw3IEBACiBtc2dzdHIgIiIKICJGdWxsIGzDoCBraMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiBi4bufaSB2w6wgYuG6oW4gY8OzIG5o4buvbmcgdOG6rXAgdGluIGNoxrBhIMSRxrDhu6NjIGjDsmEgdHLhu5luLiIKIAotIzogZ2l0LXB1bGwuc2g6MjAzCisjOiBnaXQtcHVsbC5zaDoyMjMKIG1zZ2lkICJ1cGRhdGluZyBhbiB1bmJvcm4gYnJhbmNoIHdpdGggY2hhbmdlcyBhZGRlZCB0byB0aGUgaW5kZXgiCiBtc2dzdHIgIiIKICLEkWFuZyBj4bqtcCBuaOG6rXQgbeG7mXQgbmjDoW5oIGNoxrBhIMSRxrDhu6NjIHNpbmggcmEgduG7m2kgY8OhYyB0aGF5IMSR4buVaSDEkcaw4bujYyB0aMOqbSB2w6BvICIKQEAgLTk5MjAsNyArMTAyMTIsNyBAQAogIy4gVGhlIHdvcmtpbmcgdHJlZSBhbmQgdGhlIGluZGV4IGZpbGUgaXMgc3RpbGwgYmFzZWQgb24gdGhlCiAjLiAkb3JpZ19oZWFkIGNvbW1pdCwgYnV0IHdlIGFyZSBtZXJnaW5nIGludG8gJGN1cnJfaGVhZC4KICMuIEZpcnN0IHVwZGF0ZSB0aGUgd29ya2luZyB0cmVlIHRvIG1hdGNoICRjdXJyX2hlYWQuCi0jOiBnaXQtcHVsbC5zaDoyMzUKKyM6IGdpdC1wdWxsLnNoOjI1NQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIldhcm5pbmc6IGZldGNoIHVwZGF0ZWQgdGhlIGN1cnJlbnQgYnJhbmNoIGhlYWQuXG4iCkBAIC05OTMxLDExICsxMDIyMywxMSBAQAogIkPhuqNuaCBiw6FvOiDEkWFuZyBmYXN0LWZvcndhcmQgY8OieSBsw6BtIHZp4buHYyBj4bunYSBi4bqhbiB04burXG4iCiAiQ+G6o25oIGLDoW86IGNvbW1pdCAkb3JpZ19oZWFkLiIKIAotIzogZ2l0LXB1bGwuc2g6MjYwCisjOiBnaXQtcHVsbC5zaDoyODAKIG1zZ2lkICJDYW5ub3QgbWVyZ2UgbXVsdGlwbGUgYnJhbmNoZXMgaW50byBlbXB0eSBoZWFkIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgaMOyYSB0cuG7mW4gbmhp4buBdSBuaMOhbmggdsOgIHRyb25nIG3hu5l0IGhlYWQgdHLhu5FuZyBy4buXbmciCiAKLSM6IGdpdC1wdWxsLnNoOjI2NAorIzogZ2l0LXB1bGwuc2g6Mjg0CiBtc2dpZCAiQ2Fubm90IHJlYmFzZSBvbnRvIG11bHRpcGxlIGJyYW5jaGVzIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiBs4buHbmggcmViYXNlIChjxqEgY+G6pXUgbOG6oWkpIHRyw6puIG5oaeG7gXUgbmjDoW5oIgogCkBAIC05OTcyLDM1ICsxMDI2NCwzNSBAQAogIkLhuqFuIGPDsyB0aOG7gyBjaOG6oXkgbOG7h25oIFwiZ2l0IHN0YXNoIHBvcFwiIGhheSBcImdpdCBzdGFzaCBkcm9wXCIgYuG6pXQga+G7syBsw7pjICIKICJuw6BvLlxuIgogCi0jOiBnaXQtcmViYXNlLnNoOjE5MAorIzogZ2l0LXJlYmFzZS5zaDoxOTkKIG1zZ2lkICJUaGUgcHJlLXJlYmFzZSBob29rIHJlZnVzZWQgdG8gcmViYXNlLiIKIG1zZ3N0ciAiTcOzYyAoaG9vaykgcHJlLXJlYmFzZSB04burIGNo4buRaSByZWJhc2UuIgogCi0jOiBnaXQtcmViYXNlLnNoOjE5NQorIzogZ2l0LXJlYmFzZS5zaDoyMDQKIG1zZ2lkICJJdCBsb29rcyBsaWtlIGdpdC1hbSBpcyBpbiBwcm9ncmVzcy4gQ2Fubm90IHJlYmFzZS4iCiBtc2dzdHIgIiIKICJIw6xuaCBuaMawIMSRYW5nIHRyb25nIHF1w6EgdHLDrG5oIHRo4buxYyBoaeG7h24gbOG7h25oIGdpdC1hbS4gS2jDtG5nIHRo4buDIGNo4bqheSBs4buHbmggIgogInJlYmFzZS4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzI5CisjOiBnaXQtcmViYXNlLnNoOjMzOAogbXNnaWQgIlRoZSAtLWV4ZWMgb3B0aW9uIG11c3QgYmUgdXNlZCB3aXRoIHRoZSAtLWludGVyYWN0aXZlIG9wdGlvbiIKIG1zZ3N0ciAiVMO5eSBjaOG7jW4gLS1leGVjIHBo4bqjaSDEkcaw4bujYyBz4butIGThu6VuZyBjw7luZyB24bubaSB0w7l5IGNo4buNbiAtLWludGVyYWN0aXZlIgogCi0jOiBnaXQtcmViYXNlLnNoOjMzNAorIzogZ2l0LXJlYmFzZS5zaDozNDMKIG1zZ2lkICJObyByZWJhc2UgaW4gcHJvZ3Jlc3M/IgogbXNnc3RyICJLaMO0bmcgY8OzIHRp4bq/biB0csOsbmggcmViYXNlIG7DoG8gcGjhuqNpIGtow7RuZz8iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzQ1CisjOiBnaXQtcmViYXNlLnNoOjM1NAogbXNnaWQgIlRoZSAtLWVkaXQtdG9kbyBhY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgaW50ZXJhY3RpdmUgcmViYXNlLiIKIG1zZ3N0ciAiIgogIkjDoG5oIMSR4buZbmcg4oCcLS1lZGl0LXRvZG/igJ0gY2jhu4kgY8OzIHRo4buDIGTDuW5nIHRyb25nIHF1w6EgdHLDrG5oIOKAnHJlYmFzZeKAnSAoc+G7rWEgbOG7i2NoICIKICJz4butKSB0xrDGoW5nIHTDoWMuIgogCi0jOiBnaXQtcmViYXNlLnNoOjM1MgorIzogZ2l0LXJlYmFzZS5zaDozNjEKIG1zZ2lkICJDYW5ub3QgcmVhZCBIRUFEIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhu41jIEhFQUQiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzU1CisjOiBnaXQtcmViYXNlLnNoOjM2NAogbXNnaWQgIiIKICJZb3UgbXVzdCBlZGl0IGFsbCBtZXJnZSBjb25mbGljdHMgYW5kIHRoZW5cbiIKICJtYXJrIHRoZW0gYXMgcmVzb2x2ZWQgdXNpbmcgZ2l0IGFkZCIKQEAgLTEwMDA4LDEyICsxMDMwMCwxMiBAQAogIkLhuqFuIHBo4bqjaSBz4butYSB04bqldCBj4bqjIGPDoWMgbOG6p24gaMOyYSB0cuG7mW4geHVuZyDEkeG7mXQgdsOgIHNhdVxuIgogIsSRw7MgxJHDoW5oIGThuqV1IGNow7puZyBsw6AgY+G6p24geOG7rSBsw70gc+G7rSBk4bulbmcgbOG7h25oIGdpdCBhZGQiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzczCisjOiBnaXQtcmViYXNlLnNoOjM4MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG1vdmUgYmFjayB0byAkaGVhZF9uYW1lIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgcXVheSB0cuG7nyBs4bqhaSAkaGVhZF9uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjM5MgorIzogZ2l0LXJlYmFzZS5zaDo0MDEKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJJdCBzZWVtcyB0aGF0IHRoZXJlIGlzIGFscmVhZHkgYSAkc3RhdGVfZGlyX2Jhc2UgZGlyZWN0b3J5LCBhbmRcbiIKQEAgLTEwMDM2LDY2ICsxMDMyOCw2NiBAQAogIlxuIgogIlTDlEk6IGzDoCBs4buHbmggYuG6oW4gduG7q2EgZ+G7jWkhIgogCi0jOiBnaXQtcmViYXNlLnNoOjQzNworIzogZ2l0LXJlYmFzZS5zaDo0NDYKICMsIHNoLWZvcm1hdAogbXNnaWQgImludmFsaWQgdXBzdHJlYW0gJHVwc3RyZWFtX25hbWUiCiBtc2dzdHIgInRoxrDhu6NuZyBuZ3Xhu5NuIGtow7RuZyBo4bujcCBs4buHICR1cHN0cmVhbV9uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ2MQorIzogZ2l0LXJlYmFzZS5zaDo0NzAKICMsIHNoLWZvcm1hdAogbXNnaWQgIiRvbnRvX25hbWU6IHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIG1lcmdlIGJhc2VzIgogbXNnc3RyICIkb250b19uYW1lOiDhu58gxJHDonkgY8OzIG5oaeG7gXUgaMahbiBt4buZdCBu4buBbiBtw7NuZyBow7JhIHRy4buZbiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0NjQgZ2l0LXJlYmFzZS5zaDo0NjgKKyM6IGdpdC1yZWJhc2Uuc2g6NDczIGdpdC1yZWJhc2Uuc2g6NDc3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkb250b19uYW1lOiB0aGVyZSBpcyBubyBtZXJnZSBiYXNlIgogbXNnc3RyICIkb250b19uYW1lOiDhu58gxJHDonkga2jDtG5nIGPDsyBu4buBbiBtw7NuZyBow7JhIHRy4buZbiBuw6BvIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ3MworIzogZ2l0LXJlYmFzZS5zaDo0ODIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQgY29tbWl0OiAkb250b19uYW1lIgogbXNnc3RyICJLaMO0bmcgY2jhu4kgxJHhur9uIG3hu5l0IGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkga2jDtG5nIGjhu6NwIGzhu4c6ICRvbnRvX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDk2CisjOiBnaXQtcmViYXNlLnNoOjUwNQogIywgc2gtZm9ybWF0CiBtc2dpZCAiZmF0YWw6IG5vIHN1Y2ggYnJhbmNoOiAkYnJhbmNoX25hbWUiCiBtc2dzdHIgIm5naGnDqm0gdHLhu41uZzoga2jDtG5nIGPDsyBuaMOhbmggbmjGsCB0aOG6vzogJGJyYW5jaF9uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjUxOQorIzogZ2l0LXJlYmFzZS5zaDo1MjgKIG1zZ2lkICJDYW5ub3QgYXV0b3N0YXNoIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgYXV0b3N0YXNoIgogCi0jOiBnaXQtcmViYXNlLnNoOjUyNAorIzogZ2l0LXJlYmFzZS5zaDo1MzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNyZWF0ZWQgYXV0b3N0YXNoOiAkc3Rhc2hfYWJicmV2IgogbXNnc3RyICLEkMOjIHThuqFvIGF1dG9zdGFzaDogJHN0YXNoX2FiYnJldiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MjgKKyM6IGdpdC1yZWJhc2Uuc2g6NTM3CiBtc2dpZCAiUGxlYXNlIGNvbW1pdCBvciBzdGFzaCB0aGVtLiIKIG1zZ3N0ciAiWGluIGjDo3kgY29tbWl0IGhv4bq3YyB04bqhbSBj4bqldCAoc3Rhc2gpIGNow7puZy4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTQ4CisjOiBnaXQtcmViYXNlLnNoOjU1NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3VycmVudCBicmFuY2ggJGJyYW5jaF9uYW1lIGlzIHVwIHRvIGRhdGUuIgogbXNnc3RyICJOaMOhbmggaGnhu4duIHThuqFpICRicmFuY2hfbmFtZSDEkcOjIMSRxrDhu6NjIGPhuq1wIG5o4bqtdCBy4buTaS4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTUyCisjOiBnaXQtcmViYXNlLnNoOjU2MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3VycmVudCBicmFuY2ggJGJyYW5jaF9uYW1lIGlzIHVwIHRvIGRhdGUsIHJlYmFzZSBmb3JjZWQuIgogbXNnc3RyICJOaMOhbmggaGnhu4duIHThuqFpICRicmFuY2hfbmFtZSDEkcOjIMSRxrDhu6NjIGPhuq1wIG5o4bqtdCBy4buTaSwgbOG7h25oIHJlYmFzZSDDqXAgYnXhu5ljLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1NjMKKyM6IGdpdC1yZWJhc2Uuc2g6NTcyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDaGFuZ2VzIGZyb20gJG1iIHRvICRvbnRvOiIKIG1zZ3N0ciAiVGhheSDEkeG7lWkgdOG7qyAkbWIgdGjDoG5oICRvbnRvOiIKIAogIy4gRGV0YWNoIEhFQUQgYW5kIHJlc2V0IHRoZSB0cmVlCi0jOiBnaXQtcmViYXNlLnNoOjU3MgorIzogZ2l0LXJlYmFzZS5zaDo1ODEKIG1zZ2lkICJGaXJzdCwgcmV3aW5kaW5nIGhlYWQgdG8gcmVwbGF5IHlvdXIgd29yayBvbiB0b3Agb2YgaXQuLi4iCiBtc2dzdHIgIiIKICJUcsaw4bubYyB0acOqbiwgZGkgY2h1eeG7g24gaGVhZCDEkeG7gyB4ZW0gbOG6oWkgY8OhYyBjw7RuZyB2aeG7h2MgdHLDqm4gxJHhu4luaCBj4bunYSBuw7MuLi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTgyCisjOiBnaXQtcmViYXNlLnNoOjU5MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFzdC1mb3J3YXJkZWQgJGJyYW5jaF9uYW1lIHRvICRvbnRvX25hbWUuIgogbXNnc3RyICJGYXN0LWZvcndhcmQgJGJyYW5jaF9uYW1lIHRow6BuaCAkb250b19uYW1lLiIKQEAgLTEwMTQ0LDcgKzEwNDM2LDcgQEAKICMuICQgZ2l0IHN0YXNoIHNhdmUgLS1ibGFoLWJsYWggMj4mMSB8IGhlYWQgLW4gMgogIy4gZXJyb3I6IHVua25vd24gb3B0aW9uIGZvciAnc3Rhc2ggc2F2ZSc6IC0tYmxhaC1ibGFoCiAjLiBUbyBwcm92aWRlIGEgbWVzc2FnZSwgdXNlIGdpdCBzdGFzaCBzYXZlIC0tICctLWJsYWgtYmxhaCcKLSM6IGdpdC1zdGFzaC5zaDoyNDEKKyM6IGdpdC1zdGFzaC5zaDoyMzcKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogJG9wdGlvblxuIgpAQCAtMTAxNTQsOTkgKzEwNDQ2LDg1IEBACiAiICAgICDEkOG7gyBkw7luZyB0aMO0bmcgxJFp4buHcCBjw7MgY2jhu6lhIC0tIOG7nyDEkeG6p3UsIHPhu60gZOG7pW5nIGdpdCBzdGFzaCBzYXZlIC0tIFwiJG9wdGlvbiIKICJcIiIKIAotIzogZ2l0LXN0YXNoLnNoOjI2MgorIzogZ2l0LXN0YXNoLnNoOjI1OAogbXNnaWQgIk5vIGxvY2FsIGNoYW5nZXMgdG8gc2F2ZSIKIG1zZ3N0ciAiS2jDtG5nIGPDsyB0aGF5IMSR4buVaSBu4buZaSBi4buZIG7DoG8gxJHGsOG7o2MgZ2hpIGzhuqFpIgogCi0jOiBnaXQtc3Rhc2guc2g6MjY4Ci1tc2dpZCAiIgotIlRoZSBmb2xsb3dpbmcgdW50cmFja2VkIGZpbGVzIHdvdWxkIE5PVCBiZSBzYXZlZCBidXQgbmVlZCB0byBiZSByZW1vdmVkIGJ5ICIKLSJzdGFzaCBzYXZlOiIKLW1zZ3N0ciAiIgotIkPDoWMgdOG6rXAgdGluIGNoxrBhIMSRxrDhu6NjIHRoZW8gZMO1aSBzYXUgxJHDonkgS0jDlE5HIMSRxrDhu6NjIGdoaSBs4bqhaSBuaMawbmcgY+G6p24gxJHGsOG7o2MgZ+G7oSAiCi0iYuG7jyBi4bufaSB2aeG7h2MgZ2hpIGzhuqFpIHN0YXNoOiIKLQotIzogZ2l0LXN0YXNoLnNoOjI3MAotbXNnaWQgIiIKLSJBYm9ydGluZy4gQ29uc2lkZXIgdXNpbmcgZWl0aGVyIHRoZSAtLWZvcmNlIG9yIC0taW5jbHVkZS11bnRyYWNrZWQgb3B0aW9uLiIKLW1zZ3N0ciAiIgotIkLDo2kgYuG7jy4gQ8OibiBuaOG6r2MgZMO5bmcgbeG7mXQgdHJvbmcgaGFpIHTDuXkgY2jhu41uIC0tZm9yY2UgdsOgIC0taW5jbHVkZS11bnRyYWNrZWQuIgotCi0jOiBnaXQtc3Rhc2guc2g6Mjc0CisjOiBnaXQtc3Rhc2guc2g6MjYyCiBtc2dpZCAiQ2Fubm90IGluaXRpYWxpemUgc3Rhc2giCiBtc2dzdHIgIktow7RuZyB0aOG7gyBraOG7n2kgdOG6oW8gc3Rhc2giCiAKLSM6IGdpdC1zdGFzaC5zaDoyNzgKKyM6IGdpdC1zdGFzaC5zaDoyNjYKIG1zZ2lkICJDYW5ub3Qgc2F2ZSB0aGUgY3VycmVudCBzdGF0dXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgbOG6oWkgdHLhuqFuZyB0aMOhaSBoaeG7h24gaMOgbmgiCiAKLSM6IGdpdC1zdGFzaC5zaDoyOTYKKyM6IGdpdC1zdGFzaC5zaDoyODQKIG1zZ2lkICJDYW5ub3QgcmVtb3ZlIHdvcmt0cmVlIGNoYW5nZXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBn4buhIGLhu48gY8OhYyB0aGF5IMSR4buVaSBjw6J5LWzDoG0tdmnhu4djIgogCi0jOiBnaXQtc3Rhc2guc2g6Mzk1CisjOiBnaXQtc3Rhc2guc2g6MzgzCiBtc2dpZCAiTm8gc3Rhc2ggZm91bmQuIgogbXNnc3RyICJLaMO0bmcgdMOsbSB0aOG6pXkgc3Rhc2ggbsOgby4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0MDIKKyM6IGdpdC1zdGFzaC5zaDozOTAKICMsIHNoLWZvcm1hdAogbXNnaWQgIlRvbyBtYW55IHJldmlzaW9ucyBzcGVjaWZpZWQ6ICRSRVYiCiBtc2dzdHIgIkNo4buJIHJhIHF1w6Egbmhp4buBdSDEkWnhu4NtIHjDqXQgZHV54buHdDogJFJFViIKIAotIzogZ2l0LXN0YXNoLnNoOjQwOAorIzogZ2l0LXN0YXNoLnNoOjM5NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiJHJlZmVyZW5jZSBpcyBub3QgdmFsaWQgcmVmZXJlbmNlIgogbXNnc3RyICIkcmVmZXJlbmNlIGtow7RuZyBwaOG6o2kgbMOgIHRoYW0gY2hp4bq/dSBo4bujcCBs4buHIgogCi0jOiBnaXQtc3Rhc2guc2g6NDM2CisjOiBnaXQtc3Rhc2guc2g6NDI0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoLWxpa2UgY29tbWl0IgotbXNnc3RyICLigJ0kYXJnc+KAnSBraMO0bmcgcGjhuqNpIGzDoCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGdp4buRbmctc3Rhc2giCittc2dzdHIgIuKAnSRhcmdz4oCdIGtow7RuZyBwaOG6o2kgbMOgIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkga2nhu4N1LXN0YXNoIgogCi0jOiBnaXQtc3Rhc2guc2g6NDQ3CisjOiBnaXQtc3Rhc2guc2g6NDM1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoIHJlZmVyZW5jZSIKIG1zZ3N0ciAi4oCdJGFyZ3PigJ0ga2jDtG5nIHBo4bqjaSB0aGFtIGNoaeG6v3UgxJHhur9uIHN0YXNoIgogCi0jOiBnaXQtc3Rhc2guc2g6NDU1CisjOiBnaXQtc3Rhc2guc2g6NDQzCiBtc2dpZCAidW5hYmxlIHRvIHJlZnJlc2ggaW5kZXgiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBsw6BtIHTGsMahaSBt4bubaSBi4bqjbmcgbeG7pWMgbOG7pWMiCiAKLSM6IGdpdC1zdGFzaC5zaDo0NTkKKyM6IGdpdC1zdGFzaC5zaDo0NDcKIG1zZ2lkICJDYW5ub3QgYXBwbHkgYSBzdGFzaCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UiCiBtc2dzdHIgIktow7RuZyB0aOG7gyDDoXAgZOG7pW5nIG3hu5l0IHN0YXNoIOG7nyBnaeG7r2EgY+G7p2EgcXXDoSB0csOsbmggaMOyYSB0cuG7mW4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0NjcKKyM6IGdpdC1zdGFzaC5zaDo0NTUKIG1zZ2lkICJDb25mbGljdHMgaW4gaW5kZXguIFRyeSB3aXRob3V0IC0taW5kZXguIgogbXNnc3RyICJYdW5nIMSR4buZdCB0cm9uZyBi4bqjbmcgbeG7pWMgbOG7pWMuIEjDo3kgdGjhu60gbcOgIGtow7RuZyBkw7luZyB0w7l5IGNo4buNbiAtLWluZGV4LiIKIAotIzogZ2l0LXN0YXNoLnNoOjQ2OQorIzogZ2l0LXN0YXNoLnNoOjQ1NwogbXNnaWQgIkNvdWxkIG5vdCBzYXZlIGluZGV4IHRyZWUiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgbOG6oWkgY8OieSBjaOG7iSBt4bulYyIKIAotIzogZ2l0LXN0YXNoLnNoOjUwMworIzogZ2l0LXN0YXNoLnNoOjQ5MQogbXNnaWQgIkNhbm5vdCB1bnN0YWdlIG1vZGlmaWVkIGZpbGVzIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgYuG7jyB0cuG6oW5nIHRow61hIGPhu6dhIGPDoWMgdOG6rXAgdGluIMSRw6MgxJHGsOG7o2Mgc+G7rWEgY2jhu69hIgogCi0jOiBnaXQtc3Rhc2guc2g6NTE4CisjOiBnaXQtc3Rhc2guc2g6NTA2CiBtc2dpZCAiSW5kZXggd2FzIG5vdCB1bnN0YXNoZWQuIgogbXNnc3RyICJC4bqjbmcgbeG7pWMgbOG7pWMgxJHDoyBraMO0bmcgxJHGsOG7o2MgYuG7jyBzdGFzaC4iCiAKLSM6IGdpdC1zdGFzaC5zaDo1MzUKKyM6IGdpdC1zdGFzaC5zaDo1MjMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRyb3BwZWQgJHtSRVZ9ICgkcykiCiBtc2dzdHIgIsSQw6MgeMOzYSAke1JFVn0gKCRzKSIKIAotIzogZ2l0LXN0YXNoLnNoOjUzNgorIzogZ2l0LXN0YXNoLnNoOjUyNAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJHtSRVZ9OiBDb3VsZCBub3QgZHJvcCBzdGFzaCBlbnRyeSIKIG1zZ3N0ciAiJHtSRVZ9OiBLaMO0bmcgdGjhu4MgeMOzYSBi4buPIG3hu6VjIHN0YXNoIgogCi0jOiBnaXQtc3Rhc2guc2g6NTQzCisjOiBnaXQtc3Rhc2guc2g6NTMxCiBtc2dpZCAiTm8gYnJhbmNoIG5hbWUgc3BlY2lmaWVkIgogbXNnc3RyICJDaMawYSBjaOG7iSByYSB0w6puIGPhu6dhIG5ow6FuaCIKIAotIzogZ2l0LXN0YXNoLnNoOjYxNQorIzogZ2l0LXN0YXNoLnNoOjYwMwogbXNnaWQgIihUbyByZXN0b3JlIHRoZW0gdHlwZSBcImdpdCBzdGFzaCBhcHBseVwiKSIKIG1zZ3N0ciAiKMSQ4buDIHBo4bulYyBo4buTaSBs4bqhaSBjaMO6bmcgaMOjeSBnw7UgXCJnaXQgc3Rhc2ggYXBwbHlcIikiCiAKQEAgLTEwNDI0LDcgKzEwNzAyLDcgQEAKICM6IGdpdC1zdWJtb2R1bGUuc2g6NjgzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDbGVhcmVkIGRpcmVjdG9yeSAnJGRpc3BsYXlwYXRoJyIKLW1zZ3N0ciAixJDDoyB04bqhbyB0aMawIG3hu6VjICckZGlzcGxheXBhdGgnIgorbXNnc3RyICLEkMOjIHThuqFvIHRoxrAgbeG7pWMg4oCcJGRpc3BsYXlwYXRo4oCdIgogCiAjOiBnaXQtc3VibW9kdWxlLnNoOjY4NAogIywgc2gtZm9ybWF0CkBAIC0xMDUyMSw1MiArMTA3OTksNjMgQEAKIG1zZ3N0ciAiVMO5eSBjaOG7jW4gLS1jYWNoZWQga2jDtG5nIHRo4buDIGTDuW5nIGPDuW5nIHbhu5tpIHTDuXkgY2jhu41uIC0tZmlsZXMiCiAKICMuIHVuZXhwZWN0ZWQgdHlwZQotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwNzMKICMsIHNoLWZvcm1hdAogbXNnaWQgInVuZXhwZWN0ZWQgbW9kZSAkbW9kX2RzdCIKIG1zZ3N0ciAiY2jhur8gxJHhu5kga2jDtG5nIG5oxrAgbW9uZyBjaOG7nSAkbW9kX2RzdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDg2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwOTMKICMsIHNoLWZvcm1hdAogbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX3NyYyIKIG1zZ3N0ciAiIgogIiAgQ+G6o25oIGLDoW86ICRkaXNwbGF5X25hbWUga2jDtG5nIGNo4bupYSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICRzaGExX3NyYyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDg5CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwOTYKICMsIHNoLWZvcm1hdAogbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX2RzdCIKIG1zZ3N0ciAiIgogIiAgQ+G6o25oIGLDoW86ICRkaXNwbGF5X25hbWUga2jDtG5nIGNo4bupYSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICRzaGExX2RzdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDkyCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwOTkKICMsIHNoLWZvcm1hdAogbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0cyAkc2hhMV9zcmMgYW5kICRzaGExX2RzdCIKIG1zZ3N0ciAiIgogIiAgQ+G6o25oIGLDoW86ICRkaXNwbGF5X25hbWUga2jDtG5nIGNo4bupYSBuaOG7r25nIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgIgogIiRzaGExX3NyYyB2w6AgJHNoYTFfZHN0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjExMTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTEyNAogbXNnaWQgImJsb2IiCiBtc2dzdHIgImJsb2IiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1NQotbXNnaWQgIlN1Ym1vZHVsZXMgY2hhbmdlZCBidXQgbm90IHVwZGF0ZWQ6IgotbXNnc3RyICJOaOG7r25nIG3DtC3EkXVuLWNvbiDEkcOjIGLhu4sgdGhheSDEkeG7lWkgbmjGsG5nIGNoxrBhIMSRxrDhu6NjIGPhuq1wIG5o4bqtdDoiCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1NwotbXNnaWQgIlN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCi1tc2dzdHIgIk5o4buvbmcgbcO0LcSRdW4tY29uIHRoYXkgxJHhu5VpIMSRw6MgxJHGsOG7o2MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KToiCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTI0MgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjM4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSDEkeG7hyBxdXkgdsOgbyB0cm9uZyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRzbV9wYXRo4oCdIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEzMDYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTMwMgogIywgc2gtZm9ybWF0CiBtc2dpZCAiU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiVXJsIE3DtC3EkXVuLWNvbiDEkeG7k25nIGLhu5kgaMOzYSBjaG8g4oCcJGRpc3BsYXlwYXRo4oCdIgogCisjfiBtc2dpZCAiZG9uZVxuIgorI34gbXNnc3RyICJ4b25nXG4iCisKKyN+IG1zZ2lkICJpbnB1dCBwYXRocyBhcmUgdGVybWluYXRlZCBieSBhIG51bGwgY2hhcmFjdGVyIgorI34gbXNnc3RyICJjw6FjIMSRxrDhu51uZyBk4bqrbiDEkcaw4bujYyAgbmfEg24gY8OhY2ggYuG7n2kga8O9IHThu7EgbnVsbCIKKworI34gbXNnaWQgIiIKKyN+ICJUaGUgZm9sbG93aW5nIHVudHJhY2tlZCBmaWxlcyB3b3VsZCBOT1QgYmUgc2F2ZWQgYnV0IG5lZWQgdG8gYmUgcmVtb3ZlZCAiCisjfiAiYnkgc3Rhc2ggc2F2ZToiCisjfiBtc2dzdHIgIiIKKyN+ICJDw6FjIHThuq1wIHRpbiBjaMawYSDEkcaw4bujYyB0aGVvIGTDtWkgc2F1IMSRw6J5IEtIw5RORyDEkcaw4bujYyBnaGkgbOG6oWkgbmjGsG5nIGPhuqduIMSRxrDhu6NjICIKKyN+ICJn4buhIGLhu48gYuG7n2kgdmnhu4djIGdoaSBs4bqhaSBzdGFzaDoiCisKKyN+IG1zZ2lkICIiCisjfiAiQWJvcnRpbmcuIENvbnNpZGVyIHVzaW5nIGVpdGhlciB0aGUgLS1mb3JjZSBvciAtLWluY2x1ZGUtdW50cmFja2VkIG9wdGlvbi4iCisjfiBtc2dzdHIgIiIKKyN+ICJCw6NpIGLhu48uIEPDom4gbmjhuq9jIGTDuW5nIG3hu5l0IHRyb25nIGhhaSB0w7l5IGNo4buNbiAtLWZvcmNlIHbDoCAtLWluY2x1ZGUtIgorI34gInVudHJhY2tlZC4iCisKICN+IG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCBhbSAtLXJlc29sdmVkXCIpIgogI34gbXNnc3RyICIgIChz4butYSBjw6FjIHh1bmcgxJHhu5l0IHbDoCBzYXUgxJHDsyBjaOG6oXkgbOG7h25oIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCiAKQEAgLTEwNjg4LDkgKzEwOTc3LDYgQEAKICN+IG1zZ2lkICItQiBjYW5ub3QgYmUgdXNlZCB3aXRoIC1iIgogI34gbXNnc3RyICJ0w7l5IGNo4buNbiAtQiBraMO0bmcgdGjhu4MgZMO5bmcgLWIiCiAKLSN+IG1zZ2lkICItLXBhdGNoIGlzIGluY29tcGF0aWJsZSB3aXRoIGFsbCBvdGhlciBvcHRpb25zIgotI34gbXNnc3RyICItLXBhdGNoIHh1bmcga2jhuq9jIHbhu5tpIHThuqV0IGPhuqMgY8OhYyB0w7l5IGNo4buNbiBraMOhYyIKLQogI34gbXNnaWQgIi0tZGV0YWNoIGNhbm5vdCBiZSB1c2VkIHdpdGggLWIvLUIvLS1vcnBoYW4iCiAjfiBtc2dzdHIgIi0tZGV0YWNoIGtow7RuZyB0aOG7gyDEkcaw4bujYyBz4butIGThu6VuZyB24bubaSB0w7l5IGNo4buNbiAtYi8tQi8tLW9ycGhhbiIKIApkaWZmIC0tZ2l0IGEvcG8vemhfQ04ucG8gYi9wby96aF9DTi5wbwppbmRleCBiN2I0NmYxLi5iNzAxMDg2IDEwMDY0NAotLS0gYS9wby96aF9DTi5wbworKysgYi9wby96aF9DTi5wbwpAQCAtMTIsOCArMTIsOCBAQAogbXNnc3RyICIiCiAiUHJvamVjdC1JZC1WZXJzaW9uOiBHaXRcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogR2l0IE1haWxpbmcgTGlzdCA8Z2l0QHZnZXIua2VybmVsLm9yZz5cbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0wOC0wNiAxNDoxMCswODAwXG4iCi0iUE8tUmV2aXNpb24tRGF0ZTogMjAxMy0wOC0wNiAxNDo0NSswODAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMTEtMDIgMDg6MDYrMDgwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMTMtMTEtMDIgMDg6MTQrMDgwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogSmlhbmcgWGluIDx3b3JsZGhlbGxvLm5ldEBnbWFpbC5jb20+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogR2l0SHViIDxodHRwczovL2dpdGh1Yi5jb20vZ290Z2l0L2dpdC8+XG4iCiAiTGFuZ3VhZ2U6IHpoX0NOXG4iCkBAIC02MCw3MSArNjAsNzYgQEAKIG1zZ2lkICJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8cmVwbz4gWy0tZXhlYyA8Y21kPl0gLS1saXN0IgogbXNnc3RyICJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA854mI5pys5bqTPiBbLS1leGVjIDzlkb3ku6Q+XSAtLWxpc3QiCiAKLSM6IGFyY2hpdmUuYzozMjMKKyM6IGFyY2hpdmUuYzoyNDIgYnVpbHRpbi9hZGQuYzoyNDAgYnVpbHRpbi9hZGQuYzo1NTYgYnVpbHRpbi9ybS5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgorbXNnc3RyICLot6/lvoTop4TliJkgJyVzJyDmnKrljLnphY3ku7vkvZXmlofku7YiCisKKyM6IGFyY2hpdmUuYzozMjcKIG1zZ2lkICJmbXQiCiBtc2dzdHIgIuagvOW8jyIKIAotIzogYXJjaGl2ZS5jOjMyMworIzogYXJjaGl2ZS5jOjMyNwogbXNnaWQgImFyY2hpdmUgZm9ybWF0IgogbXNnc3RyICLlvZLmoaPmoLzlvI8iCiAKLSM6IGFyY2hpdmUuYzozMjQgYnVpbHRpbi9sb2cuYzoxMTczCisjOiBhcmNoaXZlLmM6MzI4IGJ1aWx0aW4vbG9nLmM6MTE5MwogbXNnaWQgInByZWZpeCIKIG1zZ3N0ciAi5YmN57yAIgogCi0jOiBhcmNoaXZlLmM6MzI1CisjOiBhcmNoaXZlLmM6MzI5CiBtc2dpZCAicHJlcGVuZCBwcmVmaXggdG8gZWFjaCBwYXRobmFtZSBpbiB0aGUgYXJjaGl2ZSIKIG1zZ3N0ciAi5Li65b2S5qGj5Lit5q+P5Liq6Lev5b6E5ZCN5Yqg5LiK5YmN57yAIgogCi0jOiBhcmNoaXZlLmM6MzI2IGJ1aWx0aW4vYXJjaGl2ZS5jOjg4IGJ1aWx0aW4vYmxhbWUuYzoyMjkyCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5MyBidWlsdGluL2NvbmZpZy5jOjU2IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzMKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzUgYnVpbHRpbi9ncmVwLmM6NzE0IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NwotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NiBidWlsdGluL2xzLWZpbGVzLmM6NDk5IGJ1aWx0aW4vbm90ZXMuYzo0MDgKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NjUgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDggcGFyc2Utb3B0aW9ucy5oOjE1MgorIzogYXJjaGl2ZS5jOjMzMCBidWlsdGluL2FyY2hpdmUuYzo4OCBidWlsdGluL2JsYW1lLmM6MjI2NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjUgYnVpbHRpbi9jb25maWcuYzo1OCBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgwCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgyIGJ1aWx0aW4vZ3JlcC5jOjcxNiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODYgYnVpbHRpbi9scy1maWxlcy5jOjQ4OSBidWlsdGluL25vdGVzLmM6NDA4CisjOiBidWlsdGluL25vdGVzLmM6NTY1IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA4IHBhcnNlLW9wdGlvbnMuaDoxNTQKIG1zZ2lkICJmaWxlIgogbXNnc3RyICLmlofku7YiCiAKLSM6IGFyY2hpdmUuYzozMjcgYnVpbHRpbi9hcmNoaXZlLmM6ODkKKyM6IGFyY2hpdmUuYzozMzEgYnVpbHRpbi9hcmNoaXZlLmM6ODkKIG1zZ2lkICJ3cml0ZSB0aGUgYXJjaGl2ZSB0byB0aGlzIGZpbGUiCiBtc2dzdHIgIuW9kuaho+WGmeWFpeatpOaWh+S7tiIKIAotIzogYXJjaGl2ZS5jOjMyOQorIzogYXJjaGl2ZS5jOjMzMwogbXNnaWQgInJlYWQgLmdpdGF0dHJpYnV0ZXMgaW4gd29ya2luZyBkaXJlY3RvcnkiCiBtc2dzdHIgIuivu+WPluW3peS9nOWMuuS4reeahCAuZ2l0YXR0cmlidXRlcyIKIAotIzogYXJjaGl2ZS5jOjMzMAorIzogYXJjaGl2ZS5jOjMzNAogbXNnaWQgInJlcG9ydCBhcmNoaXZlZCBmaWxlcyBvbiBzdGRlcnIiCiBtc2dzdHIgIuWcqOagh+WHhumUmeivr+S4iuaKpeWRiuW9kuaho+aWh+S7tiIKIAotIzogYXJjaGl2ZS5jOjMzMQorIzogYXJjaGl2ZS5jOjMzNQogbXNnaWQgInN0b3JlIG9ubHkiCiBtc2dzdHIgIuWPquWtmOWCqCIKIAotIzogYXJjaGl2ZS5jOjMzMgorIzogYXJjaGl2ZS5jOjMzNgogbXNnaWQgImNvbXByZXNzIGZhc3RlciIKIG1zZ3N0ciAi5Y6L57yp6YCf5bqm5pu05b+rIgogCi0jOiBhcmNoaXZlLmM6MzQwCisjOiBhcmNoaXZlLmM6MzQ0CiBtc2dpZCAiY29tcHJlc3MgYmV0dGVyIgogbXNnc3RyICLljovnvKnmlYjmnpzmm7Tlpb0iCiAKLSM6IGFyY2hpdmUuYzozNDMKKyM6IGFyY2hpdmUuYzozNDcKIG1zZ2lkICJsaXN0IHN1cHBvcnRlZCBhcmNoaXZlIGZvcm1hdHMiCiBtc2dzdHIgIuWIl+WHuuaUr+aMgeeahOW9kuaho+agvOW8jyIKIAotIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODUKKyM6IGFyY2hpdmUuYzozNDkgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg0CiBtc2dpZCAicmVwbyIKIG1zZ3N0ciAi54mI5pys5bqTIgogCi0jOiBhcmNoaXZlLmM6MzQ2IGJ1aWx0aW4vYXJjaGl2ZS5jOjkxCisjOiBhcmNoaXZlLmM6MzUwIGJ1aWx0aW4vYXJjaGl2ZS5jOjkxCiBtc2dpZCAicmV0cmlldmUgdGhlIGFyY2hpdmUgZnJvbSByZW1vdGUgcmVwb3NpdG9yeSA8cmVwbz4iCiBtc2dzdHIgIuS7jui/nOeoi+eJiOacrOW6k++8iDzniYjmnKzlupM+77yJ5o+Q5Y+W5b2S5qGj5paH5Lu2IgogCi0jOiBhcmNoaXZlLmM6MzQ3IGJ1aWx0aW4vYXJjaGl2ZS5jOjkyIGJ1aWx0aW4vbm90ZXMuYzo0ODcKKyM6IGFyY2hpdmUuYzozNTEgYnVpbHRpbi9hcmNoaXZlLmM6OTIgYnVpbHRpbi9ub3Rlcy5jOjQ4NwogbXNnaWQgImNvbW1hbmQiCiBtc2dzdHIgIuWRveS7pCIKIAotIzogYXJjaGl2ZS5jOjM0OCBidWlsdGluL2FyY2hpdmUuYzo5MworIzogYXJjaGl2ZS5jOjM1MiBidWlsdGluL2FyY2hpdmUuYzo5MwogbXNnaWQgInBhdGggdG8gdGhlIHJlbW90ZSBnaXQtdXBsb2FkLWFyY2hpdmUgY29tbWFuZCIKIG1zZ3N0ciAi6L+c56iLIGdpdC11cGxvYWQtYXJjaGl2ZSDlkb3ku6TnmoTot6/lvoQiCiAKQEAgLTIwNSwxNyArMjEwLDE3IEBACiBtc2dpZCAiQ2Fubm90IGZvcmNlIHVwZGF0ZSB0aGUgY3VycmVudCBicmFuY2guIgogbXNnc3RyICLml6Dms5XlvLrliLbmm7TmlrDlvZPliY3liIbmlK/jgIIiCiAKLSM6IGJyYW5jaC5jOjIxNgorIzogYnJhbmNoLmM6MjE1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBzZXR1cCB0cmFja2luZyBpbmZvcm1hdGlvbjsgc3RhcnRpbmcgcG9pbnQgJyVzJyBpcyBub3QgYSBicmFuY2guIgogbXNnc3RyICLml6Dms5Xorr7nva7ot5/ouKrkv6Hmga/vvJvotbflp4vngrkgJyVzJyDkuI3mmK/kuIDkuKrliIbmlK/jgIIiCiAKLSM6IGJyYW5jaC5jOjIxOAorIzogYnJhbmNoLmM6MjE3CiAjLCBjLWZvcm1hdAogbXNnaWQgInRoZSByZXF1ZXN0ZWQgdXBzdHJlYW0gYnJhbmNoICclcycgZG9lcyBub3QgZXhpc3QiCiBtc2dzdHIgIuivt+axgueahOS4iua4uOWIhuaUryAnJXMnIOS4jeWtmOWcqCIKIAotIzogYnJhbmNoLmM6MjIwCisjOiBicmFuY2guYzoyMTkKIG1zZ2lkICIiCiAiXG4iCiAiSWYgeW91IGFyZSBwbGFubmluZyBvbiBiYXNpbmcgeW91ciB3b3JrIG9uIGFuIHVwc3RyZWFtXG4iCkBAIC0yMzMsMjYgKzIzOCwyNiBAQAogIuWmguaenOaCqOato+iuoeWIkuaOqOmAgeS4gOS4quiDveS4juWvueW6lOi/nOeoi+WIhuaUr+W7uueri+i3n+i4queahOaWsOeahOacrOWcsOWIhuaUr++8jFxuIgogIuaCqOWPr+iDvemcgOimgeS9v+eUqCBcImdpdCBwdXNoIC11XCIg5o6o6YCB5YiG5pSv5bm26YWN572u5ZKM5LiK5ri455qE5YWz6IGU44CCIgogCi0jOiBicmFuY2guYzoyNjUKKyM6IGJyYW5jaC5jOjI2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYSB2YWxpZCBvYmplY3QgbmFtZTogJyVzJy4iCiBtc2dzdHIgIuS4jeaYr+S4gOS4quacieaViOeahOWvueixoeWQje+8miclcyfjgIIiCiAKLSM6IGJyYW5jaC5jOjI4NQorIzogYnJhbmNoLmM6Mjg0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFtYmlndW91cyBvYmplY3QgbmFtZTogJyVzJy4iCiBtc2dzdHIgIuatp+S5ieeahOWvueixoeWQje+8miclcyfjgIIiCiAKLSM6IGJyYW5jaC5jOjI5MAorIzogYnJhbmNoLmM6Mjg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhIHZhbGlkIGJyYW5jaCBwb2ludDogJyVzJy4iCiBtc2dzdHIgIuaXoOaViOeahOWIhuaUr+eCue+8miclcyfjgIIiCiAKLSM6IGJyYW5jaC5jOjI5NgorIzogYnJhbmNoLmM6Mjk1CiBtc2dpZCAiRmFpbGVkIHRvIGxvY2sgcmVmIGZvciB1cGRhdGUiCiBtc2dzdHIgIuaXoOazleS4uuabtOaWsOmUgeWumuW8leeUqCIKIAotIzogYnJhbmNoLmM6MzE0CisjOiBicmFuY2guYzozMTMKIG1zZ2lkICJGYWlsZWQgdG8gd3JpdGUgcmVmIgogbXNnc3RyICLkuI3og73lhpnlvJXnlKgiCiAKQEAgLTI2Niw3ICsyNzEsNyBAQAogbXNnaWQgInVucmVjb2duaXplZCBoZWFkZXI6ICVzJXMgKCVkKSIKIG1zZ3N0ciAi5pyq6IO96K+G5Yir55qE5YyF5aS077yaJXMlcyAoJWQpIgogCi0jOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjY5NworIzogYnVuZGxlLmM6ODkgYnVpbHRpbi9jb21taXQuYzo3MDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyIKIG1zZ3N0ciAi5LiN6IO95omT5byAICclcyciCkBAIC0yNzUsOSArMjgwLDkgQEAKIG1zZ2lkICJSZXBvc2l0b3J5IGxhY2tzIHRoZXNlIHByZXJlcXVpc2l0ZSBjb21taXRzOiIKIG1zZ3N0ciAi54mI5pys5bqT57y65bCR6L+Z5Lqb5b+F5aSH55qE5o+Q5Lqk77yaIgogCi0jOiBidW5kbGUuYzoxNjQgc2VxdWVuY2VyLmM6NjYxIHNlcXVlbmNlci5jOjExMTEgYnVpbHRpbi9sb2cuYzozMzEKLSM6IGJ1aWx0aW4vbG9nLmM6ODAxIGJ1aWx0aW4vbG9nLmM6MTM5OSBidWlsdGluL2xvZy5jOjE2MjUgYnVpbHRpbi9tZXJnZS5jOjM2NAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjE1NgorIzogYnVuZGxlLmM6MTY0IHNlcXVlbmNlci5jOjY2MiBzZXF1ZW5jZXIuYzoxMTEyIGJ1aWx0aW4vbG9nLmM6MzMyCisjOiBidWlsdGluL2xvZy5jOjgyMSBidWlsdGluL2xvZy5jOjE0MTggYnVpbHRpbi9sb2cuYzoxNjQ0IGJ1aWx0aW4vbWVyZ2UuYzozNjQKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxNTgKIG1zZ2lkICJyZXZpc2lvbiB3YWxrIHNldHVwIGZhaWxlZCIKIG1zZ3N0ciAi54mI5pys6YGN5Y6G6K6+572u5aSx6LSlIgogCkBAIC0zMDMsNyArMzA4LDcgQEAKIG1zZ2lkICJyZXYtbGlzdCBkaWVkIgogbXNnc3RyICJyZXYtbGlzdCDnu4jmraIiCiAKLSM6IGJ1bmRsZS5jOjMwMCBidWlsdGluL2xvZy5jOjEzMTAgYnVpbHRpbi9zaG9ydGxvZy5jOjI1OQorIzogYnVuZGxlLmM6MzAwIGJ1aWx0aW4vbG9nLmM6MTMyOSBidWlsdGluL3Nob3J0bG9nLmM6MjYxCiAjLCBjLWZvcm1hdAogbXNnaWQgInVucmVjb2duaXplZCBhcmd1bWVudDogJXMiCiBtc2dzdHIgIuacquiDveivhuWIq+eahOWPguaVsO+8miVzIgpAQCAtNDU1LDcgKzQ2MCw3IEBACiAi5Y+R546w6YWN572u5Y+Y6YePICdkaWZmLmRpcnN0YXQnIOS4reeahOmUmeivr++8mlxuIgogIiVzIgogCi0jOiBkaWZmLmM6MzQ4NworIzogZGlmZi5jOjM0OTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkZhaWxlZCB0byBwYXJzZSAtLWRpcnN0YXQvLVggb3B0aW9uIHBhcmFtZXRlcjpcbiIKQEAgLTQ2NCw3ICs0NjksNyBAQAogIuaXoOazleino+aekCAtLWRpcnN0YXQvLVgg6YCJ6aG555qE5Y+C5pWw77yaXG4iCiAiJXMiCiAKLSM6IGRpZmYuYzozNTAxCisjOiBkaWZmLmM6MzUwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcGFyc2UgLS1zdWJtb2R1bGUgb3B0aW9uIHBhcmFtZXRlcjogJyVzJyIKIG1zZ3N0ciAi5peg5rOV6Kej5p6QIC0tc3VibW9kdWxlIOmAiemhueeahOWPguaVsO+8miclcyciCkBAIC00OTEsMTcgKzQ5NiwxNyBAQAogbXNnaWQgImZhaWxlZCB3cml0aW5nIGRldGFjaGVkIHNpZ25hdHVyZSB0byAnJXMnOiAlcyIKIG1zZ3N0ciAi5peg5rOV5bCG5YiG56a75byP562+5ZCN5YaZ5YWlICclcyfvvJolcyIKIAotIzogZ3JlcC5jOjE2MjMKKyM6IGdyZXAuYzoxNjk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcyc6IHVuYWJsZSB0byByZWFkICVzIgogbXNnc3RyICInJXMn77ya5peg5rOV6K+75Y+WICVzIgogCi0jOiBncmVwLmM6MTY0MAorIzogZ3JlcC5jOjE3MTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJzogJXMiCiBtc2dzdHIgIiclcyfvvJolcyIKIAotIzogZ3JlcC5jOjE2NTEKKyM6IGdyZXAuYzoxNzIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcyc6IHNob3J0IHJlYWQgJXMiCiBtc2dzdHIgIiclcyfvvJror7vlj5bkuI3lrozmlbQgJXMiCkBAIC01NzQsOCArNTc5LDggQEAKIG1zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aGUgY2FjaGUiCiBtc2dzdHIgIuaXoOazleivu+WPlue8k+WtmCIKIAotIzogbWVyZ2UuYzoxMTAgYnVpbHRpbi9jaGVja291dC5jOjM2NSBidWlsdGluL2NoZWNrb3V0LmM6NTY2Ci0jOiBidWlsdGluL2Nsb25lLmM6NjU2CisjOiBtZXJnZS5jOjExMCBidWlsdGluL2NoZWNrb3V0LmM6MzU4IGJ1aWx0aW4vY2hlY2tvdXQuYzo1NTkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NTUKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIuaXoOazleWGmeaWsOeahOe0ouW8leaWh+S7tiIKIApAQCAtNjI0LDcgKzYyOSw3IEBACiBtc2dpZCAiYmxvYiBleHBlY3RlZCBmb3IgJXMgJyVzJyIKIG1zZ3N0ciAiJXMgJyVzJyDlupTkuLrmlbDmja7vvIhibG9i77yJ5a+56LGhIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3NzQgYnVpbHRpbi9jbG9uZS5jOjMxMgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzc0IGJ1aWx0aW4vY2xvbmUuYzozMTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIG9wZW4gJyVzJyIKIG1zZ3N0ciAi5peg5rOV5omT5byAICclcyciCkBAIC03NTksNyArNzY0LDcgQEAKIG1zZ2lkICJBdXRvLW1lcmdpbmcgJXMiCiBtc2dzdHIgIuiHquWKqOWQiOW5tiAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNCBnaXQtc3VibW9kdWxlLnNoOjExMTgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzQgZ2l0LXN1Ym1vZHVsZS5zaDoxMTI1CiBtc2dpZCAic3VibW9kdWxlIgogbXNnc3RyICLlrZDmqKHnu4QiCiAKQEAgLTg1NCw1OSArODU5LDEyMiBAQAogbXNnaWQgIkJhZCAlcyB2YWx1ZTogJyVzJyIKIG1zZ3N0ciAi5Z2P55qEICVzIOWAvO+8miclcyciCiAKLSM6IG9iamVjdC5jOjIwNAorIzogb2JqZWN0LmM6MjAyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBwYXJzZSBvYmplY3Q6ICVzIgogbXNnc3RyICLkuI3og73op6PmnpDlr7nosaHvvJolcyIKIAotIzogcGFyc2Utb3B0aW9ucy5jOjQ4OQorIzogcGFyc2Utb3B0aW9ucy5jOjUzNwogbXNnaWQgIi4uLiIKIG1zZ3N0ciAiLi4uIgogCi0jOiBwYXJzZS1vcHRpb25zLmM6NTA3CisjOiBwYXJzZS1vcHRpb25zLmM6NTU1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVzYWdlOiAlcyIKIG1zZ3N0ciAi55So5rOV77yaJXMiCiAKICMuIFRSQU5TTEFUT1JTOiB0aGUgY29sb24gaGVyZSBzaG91bGQgYWxpZ24gd2l0aCB0aGUKICMuIG9uZSBpbiAidXNhZ2U6ICVzIiB0cmFuc2xhdGlvbgotIzogcGFyc2Utb3B0aW9ucy5jOjUxMQorIzogcGFyc2Utb3B0aW9ucy5jOjU1OQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICBvcjogJXMiCiBtc2dzdHIgIiAg5oiW77yaJXMiCiAKICMgIOivkeiAhe+8muS4uuS/neivgeWcqOi+k+WHuuS4reWvuem9kO+8jOazqOaEj+iwg+aVtOWPpeS4reepuuagvO+8gQotIzogcGFyc2Utb3B0aW9ucy5jOjUxNAorIzogcGFyc2Utb3B0aW9ucy5jOjU2MgogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAgJXMiCiBtc2dzdHIgIiAgICAlcyIKIAotIzogcGFyc2Utb3B0aW9ucy5jOjU0OAorIzogcGFyc2Utb3B0aW9ucy5jOjU5NgogbXNnaWQgIi1OVU0iCiBtc2dzdHIgIi3mlbDlrZciCiAKLSM6IHBhdGhzcGVjLmM6ODMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiUGF0aCAnJXMnIGlzIGluIHN1Ym1vZHVsZSAnJS4qcyciCi1tc2dzdHIgIui3r+W+hCAnJXMnIOWxnuS6juaooee7hCAnJS4qcyciCisjOiBwYXRoc3BlYy5jOjExOAorbXNnaWQgImdsb2JhbCAnZ2xvYicgYW5kICdub2dsb2InIHBhdGhzcGVjIHNldHRpbmdzIGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgIuWFqOWxgOeahCAnZ2xvYicg5ZKMICdub2dsb2InIOi3r+W+hOinhOWImeiuvue9ruS4jeWFvOWuuSIKIAotIzogcGF0aHNwZWMuYzo5OQotIywgYy1mb3JtYXQKLW1zZ2lkICInJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCi1tc2dzdHIgIiclcycg5L2N5LqO56ym5Y+36ZO+5o6l5LitIgorIzogcGF0aHNwZWMuYzoxMjgKK21zZ2lkICIiCisiZ2xvYmFsICdsaXRlcmFsJyBwYXRoc3BlYyBzZXR0aW5nIGlzIGluY29tcGF0aWJsZSB3aXRoIGFsbCBvdGhlciBnbG9iYWwgIgorInBhdGhzcGVjIHNldHRpbmdzIgorbXNnc3RyICLlhajlsYDnmoQgJ2xpdGVyYWwnIOi3r+W+hOinhOWImeiuvue9ruWSjOWFtuWug+eahOWFqOWxgOi3r+W+hOinhOWImeiuvue9ruS4jeWFvOWuuSIKIAotIzogcmVtb3RlLmM6MTc4OAorIzogcGF0aHNwZWMuYzoxNTgKK21zZ2lkICJpbnZhbGlkIHBhcmFtZXRlciBmb3IgcGF0aHNwZWMgbWFnaWMgJ3ByZWZpeCciCittc2dzdHIgIui3r+W+hOinhOWImeWMheWQq+aXoOaViOeahOelnuWlh+WJjee8gCIKKworIzogcGF0aHNwZWMuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBwYXRoc3BlYyBtYWdpYyAnJS4qcycgaW4gJyVzJyIKK21zZ3N0ciAi5Zyo6Lev5b6E6KeE5YiZICclMyRzJyDkuK3ml6DmlYjnmoTnpZ7lpYfliY3nvIAgJyUyJC4qMSRzJyIKKworIzogcGF0aHNwZWMuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWlzc2luZyAnKScgYXQgdGhlIGVuZCBvZiBwYXRoc3BlYyBtYWdpYyBpbiAnJXMnIgorbXNnc3RyICLot6/lvoTop4TliJkgJyVzJyDnmoTnpZ7lpYfliY3nvIDnu5PlsL7lsJHkuobkuIDkuKogJyknIgorCisjOiBwYXRoc3BlYy5jOjE4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmltcGxlbWVudGVkIHBhdGhzcGVjIG1hZ2ljICclYycgaW4gJyVzJyIKK21zZ3N0ciAi6Lev5b6E6KeE5YiZICclMiRzJyDkuK3ljIXlkKvmnKrlrp7njrDnmoTnpZ7lpYfliY3nvIAgJyUxJGMnIgorCisjOiBwYXRoc3BlYy5jOjIxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJ2xpdGVyYWwnIGFuZCAnZ2xvYicgYXJlIGluY29tcGF0aWJsZSIKK21zZ3N0ciAiJXPvvJonbGl0ZXJhbCcg5ZKMICdnbG9iJyDkuI3lhbzlrrkiCisKKyM6IHBhdGhzcGVjLmM6MjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJXMnIGlzIG91dHNpZGUgcmVwb3NpdG9yeSIKK21zZ3N0ciAiJXPvvJonJXMnIOWcqOeJiOacrOW6k+S5i+WkliIKKworIzogcGF0aHNwZWMuYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGF0aHNwZWMgJyVzJyBpcyBpbiBzdWJtb2R1bGUgJyUuKnMnIgorbXNnc3RyICLot6/lvoTop4TliJkgJyVzJyDlnKjlrZDmqKHnu4QgJyUuKnMnIOS4rSIKKworIy4KKyMuICogV2UgbWF5IHdhbnQgdG8gc3Vic3RpdHV0ZSAidGhpcyBjb21tYW5kIiB3aXRoIGEgY29tbWFuZAorIy4gKiBuYW1lLiBFLmcuIHdoZW4gYWRkLS1pbnRlcmFjdGl2ZSBkaWVzIHdoZW4gcnVubmluZworIy4gKiAiY2hlY2tvdXQgLXAiCisjLgorIzogcGF0aHNwZWMuYzozNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHBhdGhzcGVjIG1hZ2ljIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBjb21tYW5kOiAlcyIKK21zZ3N0ciAiJXPvvJrot6/lvoTop4TliJnnpZ7lpYfliY3nvIDkuI3ooqvmraTlkb3ku6TmlK/mjIHvvJolcyIKKworIzogcGF0aHNwZWMuYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0aHNwZWMgJyVzJyBpcyBiZXlvbmQgYSBzeW1ib2xpYyBsaW5rIgorbXNnc3RyICLot6/lvoTop4TliJkgJyVzJyDkvY3kuo7nrKblj7fpk77mjqXkuK0iCisKKyM6IHJlbW90ZS5jOjE4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91ciBicmFuY2ggaXMgYmFzZWQgb24gJyVzJywgYnV0IHRoZSB1cHN0cmVhbSBpcyBnb25lLlxuIgorbXNnc3RyICLmgqjnmoTliIbmlK/ln7rkuo4gJyVzJ++8jOS9huatpOS4iua4uOWIhuaUr+W3sue7j+S4jeWtmOWcqOOAglxuIgorCisjOiByZW1vdGUuYzoxODM3Cittc2dpZCAiICAodXNlIFwiZ2l0IGJyYW5jaCAtLXVuc2V0LXVwc3RyZWFtXCIgdG8gZml4dXApXG4iCittc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IGJyYW5jaCAtLXVuc2V0LXVwc3RyZWFtXCIg5p2l5L+u5aSN77yJXG4iCisKKyM6IHJlbW90ZS5jOjE4NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91ciBicmFuY2ggaXMgdXAtdG8tZGF0ZSB3aXRoICclcycuXG4iCittc2dzdHIgIuaCqOeahOWIhuaUr+S4juS4iua4uOWIhuaUryAnJXMnIOS4gOiHtOOAglxuIgorCisjOiByZW1vdGUuYzoxODQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0LlxuIgogbXNnaWRfcGx1cmFsICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdHMuXG4iCiBtc2dzdHJbMF0gIuaCqOeahOWIhuaUr+mihuWFiCAnJXMnIOWFsSAlZCDkuKrmj5DkuqTjgIJcbiIKIG1zZ3N0clsxXSAi5oKo55qE5YiG5pSv6aKG5YWIICclcycg5YWxICVkIOS4quaPkOS6pOOAglxuIgogCi0jOiByZW1vdGUuYzoxNzk0CisjOiByZW1vdGUuYzoxODUwCiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1c2hcIiB0byBwdWJsaXNoIHlvdXIgbG9jYWwgY29tbWl0cylcbiIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgcHVzaFwiIOadpeWPkeW4g+aCqOeahOacrOWcsOaPkOS6pO+8iVxuIgogCi0jOiByZW1vdGUuYzoxNzk3CisjOiByZW1vdGUuYzoxODUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGJlaGluZCAnJXMnIGJ5ICVkIGNvbW1pdCwgYW5kIGNhbiBiZSBmYXN0LWZvcndhcmRlZC5cbiIKIG1zZ2lkX3BsdXJhbCAiIgpAQCAtOTE1LDExICs5ODMsMTEgQEAKIG1zZ3N0clsxXSAi5oKo55qE5YiG5pSv6JC95ZCOICclcycg5YWxICVkIOS4quaPkOS6pO+8jOW5tuS4lOWPr+S7peW/q+i/m+OAglxuIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHJlbW90ZS5jOjE4MDUKKyM6IHJlbW90ZS5jOjE4NjEKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIHVwZGF0ZSB5b3VyIGxvY2FsIGJyYW5jaClcbiIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgcHVsbFwiIOadpeabtOaWsOaCqOeahOacrOWcsOWIhuaUr++8iVxuIgogCi0jOiByZW1vdGUuYzoxODA4CisjOiByZW1vdGUuYzoxODY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3VyIGJyYW5jaCBhbmQgJyVzJyBoYXZlIGRpdmVyZ2VkLFxuIgpAQCAtOTM1LDcgKzEwMDMsNyBAQAogIuW5tuS4lOWIhuWIq+aciSAlZCDlkowgJWQg5aSE5LiN5ZCM55qE5o+Q5Lqk44CCXG4iCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogcmVtb3RlLmM6MTgxOAorIzogcmVtb3RlLmM6MTg3NAogbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gbWVyZ2UgdGhlIHJlbW90ZSBicmFuY2ggaW50byB5b3VycylcbiIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgcHVsbFwiIOadpeWQiOW5tui/nOeoi+WIhuaUr++8iVxuIgogCkBAIC05NzcsNyArMTA0NSw3IEBACiAi5Yay56qB6Kej5Yaz5a6M5q+V5ZCO77yM55SoICdnaXQgYWRkIDxwYXRocz4nIOaIliAnZ2l0IHJtIDxwYXRocz4nXG4iCiAi5a+55L+u5q2j5ZCO55qE5paH5Lu25YGa5qCH6K6w77yM54S25ZCO55SoICdnaXQgY29tbWl0JyDmj5DkuqQiCiAKLSM6IHNlcXVlbmNlci5jOjI0NSBzZXF1ZW5jZXIuYzo4Njkgc2VxdWVuY2VyLmM6OTUyCisjOiBzZXF1ZW5jZXIuYzoyNDUgc2VxdWVuY2VyLmM6ODcwIHNlcXVlbmNlci5jOjk1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgdG8gJXMiCiBtc2dzdHIgIuS4jeiDveWGmeWFpSAlcyIKQEAgLTEwMDAsMTk3ICsxMDY4LDE5NyBAQAogbXNnc3RyICLmj5DkuqTmgqjnmoTkv67mlLnmiJbkv53lrZjov5vluqblkI7lho3nu6fnu63jgIIiCiAKICMuIFRSQU5TTEFUT1JTOiAlcyB3aWxsIGJlICJyZXZlcnQiIG9yICJjaGVycnktcGljayIKLSM6IHNlcXVlbmNlci5jOjMyNAorIzogc2VxdWVuY2VyLmM6MzI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIiVz77ya5peg5rOV5YaZ5YWl5paw57Si5byV5paH5Lu2IgogCi0jOiBzZXF1ZW5jZXIuYzozNTUKKyM6IHNlcXVlbmNlci5jOjM1NgogbXNnaWQgIkNvdWxkIG5vdCByZXNvbHZlIEhFQUQgY29tbWl0XG4iCiBtc2dzdHIgIuS4jeiDveino+aekCBIRUFEIOaPkOS6pFxuIgogCi0jOiBzZXF1ZW5jZXIuYzozNzcKKyM6IHNlcXVlbmNlci5jOjM3OAogbXNnaWQgIlVuYWJsZSB0byB1cGRhdGUgY2FjaGUgdHJlZVxuIgogbXNnc3RyICLkuI3og73mm7TmlrDnvJPlrZhcbiIKIAotIzogc2VxdWVuY2VyLmM6NDIyCisjOiBzZXF1ZW5jZXIuYzo0MjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIGNvbW1pdCAlc1xuIgogbXNnc3RyICLkuI3og73op6PmnpDmj5DkuqQgJXNcbiIKIAotIzogc2VxdWVuY2VyLmM6NDI3CisjOiBzZXF1ZW5jZXIuYzo0MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIHBhcmVudCBjb21taXQgJXNcbiIKIG1zZ3N0ciAi5LiN6IO96Kej5p6Q54i25o+Q5LqkICVzXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQ5MworIzogc2VxdWVuY2VyLmM6NDk0CiBtc2dpZCAiWW91ciBpbmRleCBmaWxlIGlzIHVubWVyZ2VkLiIKIG1zZ3N0ciAi5oKo55qE57Si5byV5paH5Lu25pyq5a6M5oiQ5ZCI5bm244CCIgogCi0jOiBzZXF1ZW5jZXIuYzo1MTIKKyM6IHNlcXVlbmNlci5jOjUxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaXMgYSBtZXJnZSBidXQgbm8gLW0gb3B0aW9uIHdhcyBnaXZlbi4iCiBtc2dzdHIgIuaPkOS6pCAlcyDmmK/kuIDkuKrlkIjlubbmj5DkuqTkvYbmnKrmj5DkvpsgLW0g6YCJ6aG544CCIgogCi0jOiBzZXF1ZW5jZXIuYzo1MjAKKyM6IHNlcXVlbmNlci5jOjUyMQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgZG9lcyBub3QgaGF2ZSBwYXJlbnQgJWQiCiBtc2dzdHIgIuaPkOS6pCAlcyDmsqHmnInniLbmj5DkuqQgJWQiCiAKLSM6IHNlcXVlbmNlci5jOjUyNAorIzogc2VxdWVuY2VyLmM6NTI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1haW5saW5lIHdhcyBzcGVjaWZpZWQgYnV0IGNvbW1pdCAlcyBpcyBub3QgYSBtZXJnZS4iCiBtc2dzdHIgIuaMh+WumuS6huS4u+e6v+S9huaPkOS6pCAlcyDkuI3mmK/kuIDkuKrlkIjlubbjgIIiCiAKICMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgd2lsbCBiZSAicmV2ZXJ0IiBvcgogIy4gImNoZXJyeS1waWNrIiwgdGhlIHNlY29uZCAlcyBhIFNIQTEKLSM6IHNlcXVlbmNlci5jOjUzNworIzogc2VxdWVuY2VyLmM6NTM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBjYW5ub3QgcGFyc2UgcGFyZW50IGNvbW1pdCAlcyIKIG1zZ3N0ciAiJXPvvJrkuI3og73op6PmnpDniLbmj5DkuqQgJXMiCiAKLSM6IHNlcXVlbmNlci5jOjU0MQorIzogc2VxdWVuY2VyLmM6NTQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBnZXQgY29tbWl0IG1lc3NhZ2UgZm9yICVzIgogbXNnc3RyICLkuI3og73lvpfliLAgJXMg55qE5o+Q5Lqk6K+05piOIgogCi0jOiBzZXF1ZW5jZXIuYzo2MjcKKyM6IHNlcXVlbmNlci5jOjYyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmV2ZXJ0ICVzLi4uICVzIgogbXNnc3RyICLkuI3og73ov5jljp8gJXMuLi4gJXMiCiAKLSM6IHNlcXVlbmNlci5jOjYyOAorIzogc2VxdWVuY2VyLmM6NjI5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBhcHBseSAlcy4uLiAlcyIKIG1zZ3N0ciAi5LiN6IO95bqU55SoICVzLi4uICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo2NjQKKyM6IHNlcXVlbmNlci5jOjY2NQogbXNnaWQgImVtcHR5IGNvbW1pdCBzZXQgcGFzc2VkIgogbXNnc3RyICLmj5DkvpvkuobnqbrnmoTmj5DkuqTpm4YiCiAKLSM6IHNlcXVlbmNlci5jOjY3MgorIzogc2VxdWVuY2VyLmM6NjczCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICJnaXQgJXPvvJrml6Dms5Xor7vlj5bntKLlvJUiCiAKLSM6IHNlcXVlbmNlci5jOjY3NworIzogc2VxdWVuY2VyLmM6Njc4CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlZnJlc2ggdGhlIGluZGV4IgogbXNnc3RyICJnaXQgJXPvvJrml6Dms5XliLfmlrDntKLlvJUiCiAKLSM6IHNlcXVlbmNlci5jOjczNQorIzogc2VxdWVuY2VyLmM6NzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCAlcyBkdXJpbmcgYSAlcyIKIG1zZ3N0ciAi5peg5rOVICVzIOWcqOS4gOS4qiAlcyDov4fnqIvkuK0iCiAKLSM6IHNlcXVlbmNlci5jOjc1NworIzogc2VxdWVuY2VyLmM6NzU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBsaW5lICVkLiIKIG1zZ3N0ciAi5LiN6IO96Kej5p6Q56ysICVkIOihjOOAgiIKIAotIzogc2VxdWVuY2VyLmM6NzYyCisjOiBzZXF1ZW5jZXIuYzo3NjMKIG1zZ2lkICJObyBjb21taXRzIHBhcnNlZC4iCiBtc2dzdHIgIuayoeacieaPkOS6pOiiq+ino+aekOOAgiIKIAotIzogc2VxdWVuY2VyLmM6Nzc1CisjOiBzZXF1ZW5jZXIuYzo3NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJXMiCiBtc2dzdHIgIuS4jeiDveaJk+W8gCAlcyIKIAotIzogc2VxdWVuY2VyLmM6Nzc5CisjOiBzZXF1ZW5jZXIuYzo3ODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgJXMuIgogbXNnc3RyICLkuI3og73or7vlj5YgJXPjgIIiCiAKLSM6IHNlcXVlbmNlci5jOjc4NgorIzogc2VxdWVuY2VyLmM6Nzg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVudXNhYmxlIGluc3RydWN0aW9uIHNoZWV0OiAlcyIKIG1zZ3N0ciAi5peg55So55qE5oyH5Luk6KGo5Y2V77yaJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgxNAorIzogc2VxdWVuY2VyLmM6ODE1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQga2V5OiAlcyIKIG1zZ3N0ciAi5peg5pWI6ZSu5ZCN77yaJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgxNworIzogc2VxdWVuY2VyLmM6ODE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgdmFsdWUgZm9yICVzOiAlcyIKIG1zZ3N0ciAiJXMg55qE5YC85peg5pWI77yaJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgyOQorIzogc2VxdWVuY2VyLmM6ODMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBvcHRpb25zIHNoZWV0OiAlcyIKIG1zZ3N0ciAi6Z2e5rOV55qE6YCJ6aG56KGo5Y2V77yaJXMiCiAKLSM6IHNlcXVlbmNlci5jOjg1MAorIzogc2VxdWVuY2VyLmM6ODUxCiBtc2dpZCAiYSBjaGVycnktcGljayBvciByZXZlcnQgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcyIKIG1zZ3N0ciAi5LiA5Liq5ouj6YCJ5oiW6L+Y5Y6f5pON5L2c5bey5Zyo6L+b6KGMIgogCi0jOiBzZXF1ZW5jZXIuYzo4NTEKKyM6IHNlcXVlbmNlci5jOjg1MgogbXNnaWQgInRyeSBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZSB8IC0tcXVpdCB8IC0tYWJvcnQpXCIiCiBtc2dzdHIgIuWwneivlSBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZSB8IC0tcXVpdCB8IC0tYWJvcnQpXCIiCiAKLSM6IHNlcXVlbmNlci5jOjg1NQorIzogc2VxdWVuY2VyLmM6ODU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgc2VxdWVuY2VyIGRpcmVjdG9yeSAlcyIKIG1zZ3N0ciAi5LiN6IO95Yib5bu65bqP5YiX55uu5b2VICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4NzEgc2VxdWVuY2VyLmM6OTU2CisjOiBzZXF1ZW5jZXIuYzo4NzIgc2VxdWVuY2VyLmM6OTU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkVycm9yIHdyYXBwaW5nIHVwICVzLiIKIG1zZ3N0ciAi6ZSZ6K+v5pS25bC+ICVz44CCIgogCi0jOiBzZXF1ZW5jZXIuYzo4OTAgc2VxdWVuY2VyLmM6MTAyNAorIzogc2VxdWVuY2VyLmM6ODkxIHNlcXVlbmNlci5jOjEwMjUKIG1zZ2lkICJubyBjaGVycnktcGljayBvciByZXZlcnQgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgIuaLo+mAieaIlui/mOWOn+aTjeS9nOW5tuacqui/m+ihjCIKIAotIzogc2VxdWVuY2VyLmM6ODkyCisjOiBzZXF1ZW5jZXIuYzo4OTMKIG1zZ2lkICJjYW5ub3QgcmVzb2x2ZSBIRUFEIgogbXNnc3RyICLkuI3og73op6PmnpAgSEVBRCIKIAotIzogc2VxdWVuY2VyLmM6ODk0CisjOiBzZXF1ZW5jZXIuYzo4OTUKIG1zZ2lkICJjYW5ub3QgYWJvcnQgZnJvbSBhIGJyYW5jaCB5ZXQgdG8gYmUgYm9ybiIKIG1zZ3N0ciAi5LiN6IO95LuO5bCa5pyq5bu656uL55qE5YiG5pSv57uI5q2iIgogCi0jOiBzZXF1ZW5jZXIuYzo5MTYgYnVpbHRpbi9hcHBseS5jOjQwNjEKKyM6IHNlcXVlbmNlci5jOjkxNyBidWlsdGluL2FwcGx5LmM6NDA2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAlczogJXMiCiBtc2dzdHIgIuS4jeiDveaJk+W8gCAlc++8miVzIgogCi0jOiBzZXF1ZW5jZXIuYzo5MTkKKyM6IHNlcXVlbmNlci5jOjkyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAlczogJXMiCiBtc2dzdHIgIuS4jeiDveivu+WPliAlc++8miVzIgogCi0jOiBzZXF1ZW5jZXIuYzo5MjAKKyM6IHNlcXVlbmNlci5jOjkyMQogbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUiCiBtc2dzdHIgIuaEj+WklueahOaWh+S7tue7k+adnyIKIAotIzogc2VxdWVuY2VyLmM6OTI2CisjOiBzZXF1ZW5jZXIuYzo5MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAic3RvcmVkIHByZS1jaGVycnktcGljayBIRUFEIGZpbGUgJyVzJyBpcyBjb3JydXB0IgogbXNnc3RyICLkv53lrZjmi6PpgInmj5DkuqTliY3nmoQgSEVBRCDmlofku7YgJyVzJyDmjZ/lnY8iCiAKLSM6IHNlcXVlbmNlci5jOjk0OQorIzogc2VxdWVuY2VyLmM6OTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmb3JtYXQgJXMuIgogbXNnc3RyICLkuI3og73moLzlvI/ljJYgJXPjgIIiCiAKLSM6IHNlcXVlbmNlci5jOjEwOTIKKyM6IHNlcXVlbmNlci5jOjEwOTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbid0IGNoZXJyeS1waWNrIGEgJXMiCiBtc2dzdHIgIiVz77ya5LiN6IO95ouj6YCJ5LiA5LiqJXMiCiAKLSM6IHNlcXVlbmNlci5jOjEwOTUKKyM6IHNlcXVlbmNlci5jOjEwOTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGJhZCByZXZpc2lvbiIKIG1zZ3N0ciAiJXPvvJrplJnor6/nmoTniYjmnKwiCiAKLSM6IHNlcXVlbmNlci5jOjExMjkKKyM6IHNlcXVlbmNlci5jOjExMzAKIG1zZ2lkICJDYW4ndCByZXZlcnQgYXMgaW5pdGlhbCBjb21taXQiCiBtc2dzdHIgIuS4jeiDveS9nOS4uuWIneWni+aPkOS6pOi/mOWOnyIKIAotIzogc2VxdWVuY2VyLmM6MTEzMAorIzogc2VxdWVuY2VyLmM6MTEzMQogbXNnaWQgIkNhbid0IGNoZXJyeS1waWNrIGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAi5LiN6IO95ouj6YCJ5Yiw56m65YiG5pSvIgogCkBAIC0xMjE1LDQwMCArMTI4Myw0OTMgQEAKICLlj6/og73pnIDopoHliKDpmaTlroPku6zjgILnlKggXCJnaXQgY29uZmlnIGFkdmljZS5vYmplY3ROYW1lV2FybmluZyBmYWxzZVwiXG4iCiAi5ZG95Luk5YWz6Zet5pys5raI5oGv6YCa55+l44CCIgogCi0jOiBzaGExX25hbWUuYzoxMDk3CisjOiBzaGExX25hbWUuYzoxMTEyCiBtc2dpZCAiSEVBRCBkb2VzIG5vdCBwb2ludCB0byBhIGJyYW5jaCIKIG1zZ3N0ciAiSEVBRCDmsqHmnInmjIflkJHkuIDkuKrliIbmlK8iCiAKLSM6IHNoYTFfbmFtZS5jOjExMDAKKyM6IHNoYTFfbmFtZS5jOjExMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gc3VjaCBicmFuY2g6ICclcyciCiBtc2dzdHIgIuayoeacieatpOWIhuaUr++8miclcyciCiAKLSM6IHNoYTFfbmFtZS5jOjExMDIKKyM6IHNoYTFfbmFtZS5jOjExMTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gdXBzdHJlYW0gY29uZmlndXJlZCBmb3IgYnJhbmNoICclcyciCiBtc2dzdHIgIuWwmuacque7meWIhuaUryAnJXMnIOiuvue9ruS4iua4uCIKIAotIzogc2hhMV9uYW1lLmM6MTEwNgorIzogc2hhMV9uYW1lLmM6MTEyMQogIywgYy1mb3JtYXQKIG1zZ2lkICJVcHN0cmVhbSBicmFuY2ggJyVzJyBub3Qgc3RvcmVkIGFzIGEgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCIKIG1zZ3N0ciAi5LiK5ri45YiG5pSvICclcycg5rKh5pyJ5a2Y5YKo5Li65LiA5Liq6L+c56iL6Lef6Liq5YiG5pSvIgogCi0jOiB3cmFwcGVyLmM6NDA4CisjOiBzdWJtb2R1bGUuYzo2NCBzdWJtb2R1bGUuYzo5OAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdW5tZXJnZWQgLmdpdG1vZHVsZXMsIHJlc29sdmUgbWVyZ2UgY29uZmxpY3RzIGZpcnN0IgorbXNnc3RyICLml6Dms5Xkv67mlLnmnKrlkIjlubbnmoQgLmdpdG1vZHVsZXPvvIzlhYjop6PlhrPlkIjlubblhrLnqoEiCisKKyM6IHN1Ym1vZHVsZS5jOjY4IHN1Ym1vZHVsZS5jOjEwMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZmluZCBzZWN0aW9uIGluIC5naXRtb2R1bGVzIHdoZXJlIHBhdGg9JXMiCittc2dzdHIgIuaXoOazleWcqCAuZ2l0bW9kdWxlcyDkuK3mib7liLAgcGF0aD0lcyDnmoTlsI/oioIiCisKKyMuIE1heWJlIHRoZSB1c2VyIGFscmVhZHkgZGlkIHRoYXQsIGRvbid0IGVycm9yIG91dCBoZXJlCisjOiBzdWJtb2R1bGUuYzo3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgdXBkYXRlIC5naXRtb2R1bGVzIGVudHJ5ICVzIgorbXNnc3RyICLkuI3og73mm7TmlrAgLmdpdG1vZHVsZXMg5p2h55uuICVzIgorCisjLiBNYXliZSB0aGUgdXNlciBhbHJlYWR5IGRpZCB0aGF0LCBkb24ndCBlcnJvciBvdXQgaGVyZQorIzogc3VibW9kdWxlLmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgLmdpdG1vZHVsZXMgZW50cnkgZm9yICVzIgorbXNnc3RyICLml6Dms5Xnp7vpmaQgJXMg55qEIC5naXRtb2R1bGVzIOadoeebriIKKworIzogc3VibW9kdWxlLmM6MTI3Cittc2dpZCAiY291bGQgbm90IGZpbmQgLmdpdG1vZHVsZXMgaW4gaW5kZXgiCittc2dzdHIgIuaXoOazleWcqOe0ouW8leS4reaJvuWIsCAuZ2l0bW9kdWxlcyIKKworIzogc3VibW9kdWxlLmM6MTMzCittc2dpZCAicmVhZGluZyB1cGRhdGVkIC5naXRtb2R1bGVzIGZhaWxlZCIKK21zZ3N0ciAi6K+75Y+W5pu05paw5ZCO55qEIC5naXRtb2R1bGVzIOWksei0pSIKKworIzogc3VibW9kdWxlLmM6MTM1Cittc2dpZCAidW5hYmxlIHRvIHN0YXQgdXBkYXRlZCAuZ2l0bW9kdWxlcyIKK21zZ3N0ciAi5LiN6IO95p6a5Li+5pu05paw5ZCO55qEIC5naXRtb2R1bGVzIgorCisjOiBzdWJtb2R1bGUuYzoxMzkKK21zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlIC5naXRtb2R1bGVzIGZyb20gaW5kZXgiCittc2dzdHIgIuS4jeiDveS7jue0ouW8leS4reenu+mZpCAuZ2l0bW9kdWxlcyIKKworIzogc3VibW9kdWxlLmM6MTQxCittc2dpZCAiYWRkaW5nIHVwZGF0ZWQgLmdpdG1vZHVsZXMgZmFpbGVkIgorbXNnc3RyICLmt7vliqDmm7TmlrDlkI7nmoQgLmdpdG1vZHVsZXMg5aSx6LSlIgorCisjOiBzdWJtb2R1bGUuYzoxNDMKK21zZ2lkICJzdGFnaW5nIHVwZGF0ZWQgLmdpdG1vZHVsZXMgZmFpbGVkIgorbXNnc3RyICLlsIbmm7TmlrDlkI4gLmdpdG1vZHVsZXMg5re75Yqg5pqC5a2Y5Yy65aSx6LSlIgorCisjOiBzdWJtb2R1bGUuYzoxMTQ0IGJ1aWx0aW4vaW5pdC1kYi5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGdpdCBsaW5rICVzIgorbXNnc3RyICLkuI3og73liJvlu7ogZ2l0IGxpbmsgJXMiCisKKyM6IHN1Ym1vZHVsZS5jOjExNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHNldCBjb3JlLndvcmt0cmVlIGluICVzIgorbXNnc3RyICLkuI3og73lnKggJXMg5Lit6K6+572uIGNvcmUud29ya3RyZWUiCisKKyM6IHVybG1hdGNoLmM6MTIwCittc2dpZCAiaW52YWxpZCBVUkwgc2NoZW1lIG5hbWUgb3IgbWlzc2luZyAnOi8vJyBzdWZmaXgiCittc2dzdHIgIuaXoOaViOeahCBVUkwg5pa55qGI5ZCN56ew5oiW5Lii5aSxICc6Ly8nIOWQjue8gCIKKworIzogdXJsbWF0Y2guYzoxNDQgdXJsbWF0Y2guYzoyOTcgdXJsbWF0Y2guYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCAlWFggZXNjYXBlIHNlcXVlbmNlIgorbXNnc3RyICLml6DmlYjnmoQgJVhYIOi9rOS5ieW6j+WIlyIKKworIzogdXJsbWF0Y2guYzoxNzIKK21zZ2lkICJtaXNzaW5nIGhvc3QgYW5kIHNjaGVtZSBpcyBub3QgJ2ZpbGU6JyIKK21zZ3N0ciAi57y65aSx5Li75py65ZCN5LiUVVJM5pa55qGI5LiN5pivICdmaWxlOiciCisKKyM6IHVybG1hdGNoLmM6MTg5Cittc2dpZCAiYSAnZmlsZTonIFVSTCBtYXkgbm90IGhhdmUgYSBwb3J0IG51bWJlciIKK21zZ3N0ciAi5LiA5LiqICdmaWxlOicgVVJMIOS4jeW6lOivpeWMheWQq+err+WPo+WPtyIKKworIzogdXJsbWF0Y2guYzoxOTkKK21zZ2lkICJpbnZhbGlkIGNoYXJhY3RlcnMgaW4gaG9zdCBuYW1lIgorbXNnc3RyICLkuLvmnLrlkI3kuK3ljIXlkKvml6DmlYjnmoTlrZfnrKYiCisKKyM6IHVybG1hdGNoLmM6MjQ0IHVybG1hdGNoLmM6MjU1Cittc2dpZCAiaW52YWxpZCBwb3J0IG51bWJlciIKK21zZ3N0ciAi5peg5pWI55qE56uv5Y+j5Y+3IgorCisjOiB1cmxtYXRjaC5jOjMyMgorbXNnaWQgImludmFsaWQgJy4uJyBwYXRoIHNlZ21lbnQiCittc2dzdHIgIuaXoOaViOeahCAnLi4nIOi3r+W+hOeJh+autSIKKworIzogd3JhcHBlci5jOjQyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyc6ICVzIgogbXNnc3RyICLkuI3og73orr/pl64gJyVzJ++8miVzIgogCi0jOiB3cmFwcGVyLmM6NDI5CisjOiB3cmFwcGVyLmM6NDQzCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJyIKIG1zZ3N0ciAi5LiN6IO96K6/6ZeuICclcyciCiAKLSM6IHdyYXBwZXIuYzo0NDAKKyM6IHdyYXBwZXIuYzo0NTQKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGxvb2sgdXAgY3VycmVudCB1c2VyIGluIHRoZSBwYXNzd2QgZmlsZTogJXMiCiBtc2dzdHIgIuaXoOazleWcqOWPo+S7pOaWh+S7tuS4reafpeivouWIsOW9k+WJjeeUqOaIt++8miVzIgogCi0jOiB3cmFwcGVyLmM6NDQxCisjOiB3cmFwcGVyLmM6NDU1CiBtc2dpZCAibm8gc3VjaCB1c2VyIgogbXNnc3RyICLml6DmraTnlKjmiLciCiAKLSM6IHd0LXN0YXR1cy5jOjE0MQorIzogd3Qtc3RhdHVzLmM6MTQ2CiBtc2dpZCAiVW5tZXJnZWQgcGF0aHM6IgogbXNnc3RyICLmnKrlkIjlubbnmoTot6/lvoTvvJoiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MTY4IHd0LXN0YXR1cy5jOjE5NQorIzogd3Qtc3RhdHVzLmM6MTczIHd0LXN0YXR1cy5jOjIwMAogIywgYy1mb3JtYXQKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmVzZXQgJXMgPGZpbGU+Li4uXCIgdG8gdW5zdGFnZSkiCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IHJlc2V0ICVzIDxmaWxlPi4uLlwiIOaSpOWHuuaaguWtmOWMuu+8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxNzAgd3Qtc3RhdHVzLmM6MTk3CisjOiB3dC1zdGF0dXMuYzoxNzUgd3Qtc3RhdHVzLmM6MjAyCiBtc2dpZCAiICAodXNlIFwiZ2l0IHJtIC0tY2FjaGVkIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBybSAtLWNhY2hlZCA8ZmlsZT4uLi5cIiDmkqTlh7rmmoLlrZjljLrvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MTc0CisjOiB3dC1zdGF0dXMuYzoxNzkKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiDmoIforrDop6PlhrPmlrnmoYjvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MTc2IHd0LXN0YXR1cy5jOjE4MAorIzogd3Qtc3RhdHVzLmM6MTgxIHd0LXN0YXR1cy5jOjE4NQogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiICDvvIjphYzmg4Xkvb/nlKggXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIOagh+iusOino+WGs+aWueahiO+8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxNzgKKyM6IHd0LXN0YXR1cy5jOjE4MwogbXNnaWQgIiAgKHVzZSBcImdpdCBybSA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBybSA8ZmlsZT4uLi5cIiDmoIforrDop6PlhrPmlrnmoYjvvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjE4OQorIzogd3Qtc3RhdHVzLmM6MTk0CiBtc2dpZCAiQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgogbXNnc3RyICLopoHmj5DkuqTnmoTlj5jmm7TvvJoiCiAKLSM6IHd0LXN0YXR1cy5jOjIwNworIzogd3Qtc3RhdHVzLmM6MjEyCiBtc2dpZCAiQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6IgogbXNnc3RyICLlsJrmnKrmmoLlrZjku6XlpIfmj5DkuqTnmoTlj5jmm7TvvJoiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MjExCisjOiB3dC1zdGF0dXMuYzoyMTYKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgYWRkIDxmaWxlPi4uLlwiIOabtOaWsOimgeaPkOS6pOeahOWGheWuue+8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoyMTMKKyM6IHd0LXN0YXR1cy5jOjIxOAogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIg5pu05paw6KaB5o+Q5Lqk55qE5YaF5a6577yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjIxNAorIzogd3Qtc3RhdHVzLmM6MjE5CiBtc2dpZCAiIgogIiAgKHVzZSBcImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi5cIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi5cIiDkuKLlvIPlt6XkvZzljLrnmoTmlLnliqjvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MjE2CisjOiB3dC1zdGF0dXMuYzoyMjEKIG1zZ2lkICIgIChjb21taXQgb3IgZGlzY2FyZCB0aGUgdW50cmFja2VkIG9yIG1vZGlmaWVkIGNvbnRlbnQgaW4gc3VibW9kdWxlcykiCiBtc2dzdHIgIiAg77yI5o+Q5Lqk5oiW5Lii5byD5a2Q5qih57uE5Lit5pyq6Lef6Liq5oiW5L+u5pS555qE5YaF5a6577yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjIyOAorIzogd3Qtc3RhdHVzLmM6MjMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgKHVzZSBcImdpdCAlcyA8ZmlsZT4uLi5cIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCAlcyA8ZmlsZT4uLi5cIiDku6XljIXlkKvopoHmj5DkuqTnmoTlhoXlrrnvvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjI0NQorIzogd3Qtc3RhdHVzLmM6MjUwCiBtc2dpZCAiYnVnIgogbXNnc3RyICJidWciCiAKLSM6IHd0LXN0YXR1cy5jOjI1MAorIzogd3Qtc3RhdHVzLmM6MjU1CiBtc2dpZCAiYm90aCBkZWxldGVkOiIKIG1zZ3N0ciAi5Y+M5pa55Yig6Zmk77yaIgogCi0jOiB3dC1zdGF0dXMuYzoyNTEKKyM6IHd0LXN0YXR1cy5jOjI1NgogbXNnaWQgImFkZGVkIGJ5IHVzOiIKIG1zZ3N0ciAi55Sx5oiR5Lus5re75Yqg77yaIgogCi0jOiB3dC1zdGF0dXMuYzoyNTIKKyM6IHd0LXN0YXR1cy5jOjI1NwogbXNnaWQgImRlbGV0ZWQgYnkgdGhlbToiCiBtc2dzdHIgIueUseS7luS7rOWIoOmZpO+8miIKIAotIzogd3Qtc3RhdHVzLmM6MjUzCisjOiB3dC1zdGF0dXMuYzoyNTgKIG1zZ2lkICJhZGRlZCBieSB0aGVtOiIKIG1zZ3N0ciAi55Sx5LuW5Lus5re75Yqg77yaIgogCi0jOiB3dC1zdGF0dXMuYzoyNTQKKyM6IHd0LXN0YXR1cy5jOjI1OQogbXNnaWQgImRlbGV0ZWQgYnkgdXM6IgogbXNnc3RyICLnlLHmiJHku6zliKDpmaTvvJoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1NQorIzogd3Qtc3RhdHVzLmM6MjYwCiBtc2dpZCAiYm90aCBhZGRlZDoiCiBtc2dzdHIgIuWPjOaWuea3u+WKoO+8miIKIAotIzogd3Qtc3RhdHVzLmM6MjU2CisjOiB3dC1zdGF0dXMuYzoyNjEKIG1zZ2lkICJib3RoIG1vZGlmaWVkOiIKIG1zZ3N0ciAi5Y+M5pa55L+u5pS577yaIgogCiAjICDor5HogIXvvJrmnKvlsL7kuKTkuKrlrZfoioLlj6/og73ooqvliKDlh4/vvIzlpoLmnpznv7vor5HkuLrkuK3mlofmoIfngrnkvJrlh7rnjrDljYrkuKrmsYnlrZcKLSM6IHd0LXN0YXR1cy5jOjI4NgorIzogd3Qtc3RhdHVzLmM6MjkxCiBtc2dpZCAibmV3IGNvbW1pdHMsICIKIG1zZ3N0ciAi5paw5o+Q5LqkLCAiCiAKICMgIOivkeiAhe+8muacq+WwvuS4pOS4quWtl+iKguWPr+iDveiiq+WIoOWHj++8jOWmguaenOe/u+ivkeS4uuS4reaWh+agh+eCueS8muWHuueOsOWNiuS4quaxieWtlwotIzogd3Qtc3RhdHVzLmM6Mjg4CisjOiB3dC1zdGF0dXMuYzoyOTMKIG1zZ2lkICJtb2RpZmllZCBjb250ZW50LCAiCiBtc2dzdHIgIuS/ruaUueeahOWGheWuuSwgIgogCiAjICDor5HogIXvvJrmnKvlsL7kuKTkuKrlrZfoioLlj6/og73ooqvliKDlh4/vvIzlpoLmnpznv7vor5HkuLrkuK3mlofmoIfngrnkvJrlh7rnjrDljYrkuKrmsYnlrZcKLSM6IHd0LXN0YXR1cy5jOjI5MAorIzogd3Qtc3RhdHVzLmM6Mjk1CiBtc2dpZCAidW50cmFja2VkIGNvbnRlbnQsICIKIG1zZ3N0ciAi5pyq6Lef6Liq55qE5YaF5a65LCAiCiAKICMgIOivkeiAhe+8muS4uuS/neivgeWcqOi+k+WHuuS4reWvuem9kO+8jOazqOaEj+iwg+aVtOWPpeS4reepuuagvO+8gQotIzogd3Qtc3RhdHVzLmM6MzA3CisjOiB3dC1zdGF0dXMuYzozMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV3IGZpbGU6ICAgJXMiCiBtc2dzdHIgIuaWsOaWh+S7tu+8miAgICAlcyIKIAogIyAg6K+R6ICF77ya5Li65L+d6K+B5Zyo6L6T5Ye65Lit5a+56b2Q77yM5rOo5oSP6LCD5pW05Y+l5Lit56m65qC877yBCi0jOiB3dC1zdGF0dXMuYzozMTAKKyM6IHd0LXN0YXR1cy5jOjMxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3BpZWQ6ICAgICAlcyAtPiAlcyIKIG1zZ3N0ciAi5ou36LSd77yaICAgICAgJXMgLT4gJXMiCiAKICMgIOivkeiAhe+8muS4uuS/neivgeWcqOi+k+WHuuS4reWvuem9kO+8jOazqOaEj+iwg+aVtOWPpeS4reepuuagvO+8gQotIzogd3Qtc3RhdHVzLmM6MzEzCisjOiB3dC1zdGF0dXMuYzozMTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVsZXRlZDogICAgJXMiCiBtc2dzdHIgIuWIoOmZpO+8miAgICAgICVzIgogCiAjICDor5HogIXvvJrkuLrkv53or4HlnKjovpPlh7rkuK3lr7npvZDvvIzms6jmhI/osIPmlbTlj6XkuK3nqbrmoLzvvIEKLSM6IHd0LXN0YXR1cy5jOjMxNgorIzogd3Qtc3RhdHVzLmM6MzIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vZGlmaWVkOiAgICVzIgogbXNnc3RyICLkv67mlLnvvJogICAgICAlcyIKIAogIyAg6K+R6ICF77ya5Li65L+d6K+B5Zyo6L6T5Ye65Lit5a+56b2Q77yM5rOo5oSP6LCD5pW05Y+l5Lit56m65qC877yBCi0jOiB3dC1zdGF0dXMuYzozMTkKKyM6IHd0LXN0YXR1cy5jOjMyNAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW5hbWVkOiAgICAlcyAtPiAlcyIKIG1zZ3N0ciAi6YeN5ZG95ZCN77yaICAgICVzIC0+ICVzIgogCiAjICDor5HogIXvvJrkuLrkv53or4HlnKjovpPlh7rkuK3lr7npvZDvvIzms6jmhI/osIPmlbTlj6XkuK3nqbrmoLzvvIEKLSM6IHd0LXN0YXR1cy5jOjMyMgorIzogd3Qtc3RhdHVzLmM6MzI3CiAjLCBjLWZvcm1hdAogbXNnaWQgInR5cGVjaGFuZ2U6ICVzIgogbXNnc3RyICLnsbvlnovlj5jmm7TvvJogICVzIgogCiAjICDor5HogIXvvJrkuLrkv53or4HlnKjovpPlh7rkuK3lr7npvZDvvIzms6jmhI/osIPmlbTlj6XkuK3nqbrmoLzvvIEKLSM6IHd0LXN0YXR1cy5jOjMyNQorIzogd3Qtc3RhdHVzLmM6MzMwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd246ICAgICVzIgogbXNnc3RyICLmnKrnn6XvvJogICAgICAlcyIKIAogIyAg6K+R6ICF77ya5Li65L+d6K+B5Zyo6L6T5Ye65Lit5a+56b2Q77yM5rOo5oSP6LCD5pW05Y+l5Lit56m65qC877yBCi0jOiB3dC1zdGF0dXMuYzozMjgKKyM6IHd0LXN0YXR1cy5jOjMzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bm1lcmdlZDogICAlcyIKIG1zZ3N0ciAi5pyq5ZCI5bm277yaICAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMzEKKyM6IHd0LXN0YXR1cy5jOjMzNgogIywgYy1mb3JtYXQKIG1zZ2lkICJidWc6IHVuaGFuZGxlZCBkaWZmIHN0YXR1cyAlYyIKIG1zZ3N0ciAiYnVn77ya5pyq5aSE55CG55qE5beu5byC54q25oCBICVjIgogCi0jOiB3dC1zdGF0dXMuYzo4MDMKKyM6IHd0LXN0YXR1cy5jOjcwMworbXNnaWQgIlN1Ym1vZHVsZXMgY2hhbmdlZCBidXQgbm90IHVwZGF0ZWQ6IgorbXNnc3RyICLlrZDmqKHnu4Tlt7Lkv67mlLnkvYblsJrmnKrmm7TmlrDvvJoiCisKKyM6IHd0LXN0YXR1cy5jOjcwNQorbXNnaWQgIlN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCittc2dzdHIgIuimgeaPkOS6pOeahOWtkOaooee7hOWPmOabtO+8miIKKworIzogd3Qtc3RhdHVzLmM6ODQ4CiBtc2dpZCAiWW91IGhhdmUgdW5tZXJnZWQgcGF0aHMuIgogbXNnc3RyICLmgqjmnInlsJrmnKrlkIjlubbnmoTot6/lvoTjgIIiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6ODA2CisjOiB3dC1zdGF0dXMuYzo4NTEKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY29tbWl0XCIpIgogbXNnc3RyICIgIO+8iOino+WGs+WGsueqgeW5tui/kOihjCBcImdpdCBjb21taXRcIu+8iSIKIAotIzogd3Qtc3RhdHVzLmM6ODA5CisjOiB3dC1zdGF0dXMuYzo4NTQKIG1zZ2lkICJBbGwgY29uZmxpY3RzIGZpeGVkIGJ1dCB5b3UgYXJlIHN0aWxsIG1lcmdpbmcuIgogbXNnc3RyICLmiYDmnInlhrLnqoHlt7Lop6PlhrPkvYbmgqjku43lpITkuo7lkIjlubbkuK3jgIIiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6ODEyCisjOiB3dC1zdGF0dXMuYzo4NTcKIG1zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0XCIgdG8gY29uY2x1ZGUgbWVyZ2UpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBjb21taXRcIiDnu5PmnZ/lkIjlubbvvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjgyMgorIzogd3Qtc3RhdHVzLmM6ODY3CiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGFuIGFtIHNlc3Npb24uIgogbXNnc3RyICLmgqjmraPlpITkuo7kuIDkuKogYW0g6L+H56iL5Lit44CCIgogCi0jOiB3dC1zdGF0dXMuYzo4MjUKKyM6IHd0LXN0YXR1cy5jOjg3MAogbXNnaWQgIlRoZSBjdXJyZW50IHBhdGNoIGlzIGVtcHR5LiIKIG1zZ3N0ciAi5b2T5YmN55qE6KGl5LiB5Li656m644CCIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjgyOQorIzogd3Qtc3RhdHVzLmM6ODc0CiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICDvvIjop6PlhrPlhrLnqoHvvIznhLblkI7ov5DooYwgXCJnaXQgYW0gLS1jb250aW51ZVwi77yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjgzMQorIzogd3Qtc3RhdHVzLmM6ODc2CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFtIC0tc2tpcFwiIHRvIHNraXAgdGhpcyBwYXRjaCkiCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IGFtIC0tc2tpcFwiIOi3s+i/h+atpOihpeS4ge+8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzo4MzMKKyM6IHd0LXN0YXR1cy5jOjg3OAogbXNnaWQgIiAgKHVzZSBcImdpdCBhbSAtLWFib3J0XCIgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgYW0gLS1hYm9ydFwiIOaBouWkjeWOn+acieWIhuaUr++8iSIKIAotIzogd3Qtc3RhdHVzLmM6ODkzIHd0LXN0YXR1cy5jOjkxMAorIzogd3Qtc3RhdHVzLmM6OTM4IHd0LXN0YXR1cy5jOjk1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKIG1zZ3N0ciAi5oKo5q2j5Zyo5bCG5YiG5pSvICclcycg5Y+Y5Z+65YiwICclcyfjgIIiCiAKLSM6IHd0LXN0YXR1cy5jOjg5OCB3dC1zdGF0dXMuYzo5MTUKKyM6IHd0LXN0YXR1cy5jOjk0MyB3dC1zdGF0dXMuYzo5NjAKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZy4iCiBtc2dzdHIgIuaCqOato+WcqOWPmOWfuuOAgiIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzo5MDEKKyM6IHd0LXN0YXR1cy5jOjk0NgogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIgIO+8iOino+WGs+WGsueqge+8jOeEtuWQjui/kOihjCBcImdpdCByZWJhc2UgLS1jb250aW51ZVwi77yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjkwMworIzogd3Qtc3RhdHVzLmM6OTQ4CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCByZWJhc2UgLS1za2lwXCIg6Lez6L+H5q2k6KGl5LiB77yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjkwNQorIzogd3Qtc3RhdHVzLmM6OTUwCiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLWFib3J0XCIgdG8gY2hlY2sgb3V0IHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCByZWJhc2UgLS1hYm9ydFwiIOS7peajgOWHuuWOn+acieWIhuaUr++8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzo5MTgKKyM6IHd0LXN0YXR1cy5jOjk2MwogbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICDvvIjmiYDmnInlhrLnqoHlt7Lop6PlhrPvvJrov5DooYwgXCJnaXQgcmViYXNlIC0tY29udGludWVcIu+8iSIKIAotIzogd3Qtc3RhdHVzLmM6OTIyCisjOiB3dC1zdGF0dXMuYzo5NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKIG1zZ3N0ciAi5oKo5q2j5Zyo5bCG5YiG5pSvICclcycg5Y+Y5Z+65YiwICclcycg6L+H56iL5Lit5ouG5YiG5LiA5Liq5o+Q5Lqk44CCIgogCi0jOiB3dC1zdGF0dXMuYzo5MjcKKyM6IHd0LXN0YXR1cy5jOjk3MgogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCBkdXJpbmcgYSByZWJhc2UuIgogbXNnc3RyICLmgqjmraPlnKjlj5jln7rov4fnqIvkuK3mi4bliIbkuIDkuKrmj5DkuqTjgIIiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6OTMwCisjOiB3dC1zdGF0dXMuYzo5NzUKIG1zZ2lkICIgIChPbmNlIHlvdXIgd29ya2luZyBkaXJlY3RvcnkgaXMgY2xlYW4sIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICDvvIjkuIDml6bmgqjlt6XkvZznm67lvZXmj5DkuqTlubLlh4DlkI7vvIzov5DooYwgXCJnaXQgcmViYXNlIC0tY29udGludWVcIu+8iSIKIAotIzogd3Qtc3RhdHVzLmM6OTM0CisjOiB3dC1zdGF0dXMuYzo5NzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKIG1zZ3N0ciAi5oKo5q2j5Zyo5bCG5YiG5pSvICclcycg5Y+Y5Z+65YiwICclcycg6L+H56iL5Lit57yW6L6R5LiA5Liq5o+Q5Lqk44CCIgogCi0jOiB3dC1zdGF0dXMuYzo5MzkKKyM6IHd0LXN0YXR1cy5jOjk4NAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIKIG1zZ3N0ciAi5oKo5q2j5Zyo5Y+Y5Z+66L+H56iL5Lit57yW6L6R5LiA5Liq5o+Q5Lqk44CCIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjk0MgorIzogd3Qtc3RhdHVzLmM6OTg3CiBtc2dpZCAiICAodXNlIFwiZ2l0IGNvbW1pdCAtLWFtZW5kXCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KSIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgY29tbWl0IC0tYW1lbmRcIiDkv67ooaXlvZPliY3mj5DkuqTvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6OTQ0CisjOiB3dC1zdGF0dXMuYzo5ODkKIG1zZ2lkICIiCiAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykiCiBtc2dzdHIgIiAg77yI5b2T5oKo5a+55oKo55qE5L+u5pS55ruh5oSP5ZCO5omn6KGMIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCLvvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjk1NAotbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGNoZXJyeS1waWNraW5nLiIKLW1zZ3N0ciAi5oKo5q2j5Zyo5YGa5ouj6YCJ5pON5L2c44CCIgorIzogd3Qtc3RhdHVzLmM6OTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGNoZXJyeS1waWNraW5nIGNvbW1pdCAlcy4iCittc2dzdHIgIuaCqOato+WcqOWBmuaLo+mAieaPkOS6pCAlc+OAgiIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzo5NTgKKyM6IHd0LXN0YXR1cy5jOjEwMDQKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICDvvIjop6PlhrPlhrLnqoHlubbov5DooYwgXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwi77yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjk2MQorIzogd3Qtc3RhdHVzLmM6MTAwNwogbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIgIO+8iOaJgOacieWGsueqgeW3suino+WGs++8mui/kOihjCBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCLvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6OTYzCisjOiB3dC1zdGF0dXMuYzoxMDA5CiBtc2dpZCAiICAodXNlIFwiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnRcIiB0byBjYW5jZWwgdGhlIGNoZXJyeS1waWNrIG9wZXJhdGlvbikiCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnRcIiDku6Xlj5bmtojmi6PpgInmk43kvZzvvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjk3MgorIzogd3Qtc3RhdHVzLmM6MTAxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZXZlcnRpbmcgY29tbWl0ICVzLiIKIG1zZ3N0ciAi5oKo5q2j5Zyo5Y+N6L2s5o+Q5LqkICVzIOOAgiIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzo5NzcKKyM6IHd0LXN0YXR1cy5jOjEwMjMKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCiBtc2dzdHIgIiAg77yI6Kej5Yaz5Yay56qB5bm26L+Q6KGMIFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCLvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6OTgwCisjOiB3dC1zdGF0dXMuYzoxMDI2CiBtc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIgIO+8iOaJgOacieWGsueqgeW3suino+WGs++8mui/kOihjCBcImdpdCByZXZlcnQgLS1jb250aW51ZVwi77yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjk4MgorIzogd3Qtc3RhdHVzLmM6MTAyOAogbXNnaWQgIiAgKHVzZSBcImdpdCByZXZlcnQgLS1hYm9ydFwiIHRvIGNhbmNlbCB0aGUgcmV2ZXJ0IG9wZXJhdGlvbikiCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IHJldmVydCAtLWFib3J0XCIg5Lul5Y+W5raI5Y+N6L2s5o+Q5Lqk5pON5L2c77yJIgogCi0jOiB3dC1zdGF0dXMuYzo5OTMKKyM6IHd0LXN0YXR1cy5jOjEwMzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLCBzdGFydGVkIGZyb20gYnJhbmNoICclcycuIgogbXNnc3RyICLmgqjmraPlnKjku47liIbmlK8gJyVzJyDlvIDlp4vlgZrkuozliIbmn6Xmib7jgIIiCiAKLSM6IHd0LXN0YXR1cy5jOjk5NworIzogd3Qtc3RhdHVzLmM6MTA0MwogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGJpc2VjdGluZy4iCiBtc2dzdHIgIuaCqOato+WcqOWBmuS6jOWIhuafpeaJvuOAgiIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxMDAwCisjOiB3dC1zdGF0dXMuYzoxMDQ2CiBtc2dpZCAiICAodXNlIFwiZ2l0IGJpc2VjdCByZXNldFwiIHRvIGdldCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBiaXNlY3QgcmVzZXRcIiDku6Xlm57liLDljp/mnInliIbmlK/vvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjExNzMKKyM6IHd0LXN0YXR1cy5jOjEyMjEKIG1zZ2lkICJPbiBicmFuY2ggIgogbXNnc3RyICLkvY3kuo7liIbmlK8gIgogCi0jOiB3dC1zdGF0dXMuYzoxMTgwCisjOiB3dC1zdGF0dXMuYzoxMjI4CiBtc2dpZCAicmViYXNlIGluIHByb2dyZXNzOyBvbnRvICIKIG1zZ3N0ciAi5Y+Y5Z+65q2j5Zyo6L+b6KGM5Lit77yb6IezICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4NworIzogd3Qtc3RhdHVzLmM6MTIzNQogbXNnaWQgIkhFQUQgZGV0YWNoZWQgYXQgIgogbXNnc3RyICLlpLTmjIfpkojliIbnprvkuo4gIgogCi0jOiB3dC1zdGF0dXMuYzoxMTg5CisjOiB3dC1zdGF0dXMuYzoxMjM3CiBtc2dpZCAiSEVBRCBkZXRhY2hlZCBmcm9tICIKIG1zZ3N0ciAi5aS05oyH6ZKI5YiG56a76IeqICIKIAotIzogd3Qtc3RhdHVzLmM6MTE5MgorIzogd3Qtc3RhdHVzLmM6MTI0MAogbXNnaWQgIk5vdCBjdXJyZW50bHkgb24gYW55IGJyYW5jaC4iCiBtc2dzdHIgIuW9k+WJjeS4jeWcqOS7u+S9leWIhuaUr+S4iuOAgiIKIAotIzogd3Qtc3RhdHVzLmM6MTIwOQorIzogd3Qtc3RhdHVzLmM6MTI1NwogbXNnaWQgIkluaXRpYWwgY29tbWl0IgogbXNnc3RyICLliJ3lp4vmj5DkuqQiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjMKKyM6IHd0LXN0YXR1cy5jOjEyNzEKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgIuacqui3n+i4queahOaWh+S7tiIKIAotIzogd3Qtc3RhdHVzLmM6MTIyNQorIzogd3Qtc3RhdHVzLmM6MTI3MwogbXNnaWQgIklnbm9yZWQgZmlsZXMiCiBtc2dzdHIgIuW/veeVpeeahOaWh+S7tiIKIAotIzogd3Qtc3RhdHVzLmM6MTIyOQorIzogd3Qtc3RhdHVzLmM6MTI3NwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gJ3N0YXR1cyAtdW5vJ1xuIgpAQCAtMTYxOCw5NyArMTc3OSwxMDEgQEAKICLogJfotLnkuoYgJS4yZiDnp5Lku6XmnprkuL7mnKrot5/ouKrnmoTmlofku7bjgIInc3RhdHVzIC11bm8nIOS5n+iuuOiDveaPkOmrmOmAn+W6pu+8jFxuIgogIuS9huaCqOmcgOimgeWwj+W/g+S4jeimgeW/mOS6hua3u+WKoOaWsOaWh+S7tu+8iOWPguingSAnZ2l0IGhlbHAgc3RhdHVzJ++8ieOAgiIKIAotIzogd3Qtc3RhdHVzLmM6MTIzNQorIzogd3Qtc3RhdHVzLmM6MTI4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMgbm90IGxpc3RlZCVzIgogbXNnc3RyICLmnKrot5/ouKrnmoTmlofku7bmsqHmnInliJflh7olcyIKIAogIyAg6K+R6ICF77ya5Lit5paH5a2X56ym5Liy5ou85o6l77yM5Y+v5Yig6Zmk5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxMjM3CisjOiB3dC1zdGF0dXMuYzoxMjg1CiBtc2dpZCAiICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKSIKIG1zZ3N0ciAi77yI5L2/55SoIC11IOWPguaVsOaYvuekuuacqui3n+i4queahOaWh+S7tu+8iSIKIAotIzogd3Qtc3RhdHVzLmM6MTI0MworIzogd3Qtc3RhdHVzLmM6MTI5MQogbXNnaWQgIk5vIGNoYW5nZXMiCiBtc2dzdHIgIuayoeacieS/ruaUuSIKIAotIzogd3Qtc3RhdHVzLmM6MTI0OAorIzogd3Qtc3RhdHVzLmM6MTI5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlIFwiZ2l0IGFkZFwiIGFuZC9vciBcImdpdCBjb21taXQgLWFcIilcbiIKIG1zZ3N0ciAi5L+u5pS55bCa5pyq5Yqg5YWl5o+Q5Lqk77yI5L2/55SoIFwiZ2l0IGFkZFwiIOWSjC/miJYgXCJnaXQgY29tbWl0IC1hXCLvvIlcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI1MQorIzogd3Qtc3RhdHVzLmM6MTI5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdFxuIgogbXNnc3RyICLkv67mlLnlsJrmnKrliqDlhaXmj5DkuqRcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI1NAorIzogd3Qtc3RhdHVzLmM6MTMwMgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50ICh1c2UgXCJnaXQgYWRkXCIgdG8gIgogInRyYWNrKVxuIgogbXNnc3RyICLmj5DkuqTkuLrnqbrvvIzkvYbmmK/lrZjlnKjlsJrmnKrot5/ouKrnmoTmlofku7bvvIjkvb/nlKggXCJnaXQgYWRkXCIg5bu656uL6Lef6Liq77yJXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTcKKyM6IHd0LXN0YXR1cy5jOjEzMDUKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50XG4iCiBtc2dzdHIgIuaPkOS6pOS4uuepuu+8jOS9huaYr+WtmOWcqOWwmuacqui3n+i4queahOaWh+S7tlxuIgogCiAjICDor5HogIXvvJrkuK3mloflrZfnrKbkuLLmi7zmjqXvvIzlj6/liKDpmaTliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjEyNjAKKyM6IHd0LXN0YXR1cy5jOjEzMDgKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQgKGNyZWF0ZS9jb3B5IGZpbGVzIGFuZCB1c2UgXCJnaXQgYWRkXCIgdG8gdHJhY2spXG4iCiBtc2dzdHIgIuaXoOaWh+S7tuimgeaPkOS6pO+8iOWIm+W7ui/mi7fotJ3mlofku7blubbkvb/nlKggXCJnaXQgYWRkXCIg5bu656uL6Lef6Liq77yJXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjMgd3Qtc3RhdHVzLmM6MTI2OAorIzogd3Qtc3RhdHVzLmM6MTMxMSB3dC1zdGF0dXMuYzoxMzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0XG4iCiBtc2dzdHIgIuaXoOaWh+S7tuimgeaPkOS6pFxuIgogCiAjICDor5HogIXvvJrkuK3mloflrZfnrKbkuLLmi7zmjqXvvIzlj6/liKDpmaTliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjEyNjYKKyM6IHd0LXN0YXR1cy5jOjEzMTQKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcylcbiIKIG1zZ3N0ciAi5peg5paH5Lu26KaB5o+Q5Lqk77yI5L2/55SoIC11IOaYvuekuuacqui3n+i4queahOaWh+S7tu+8iVxuIgogCiAjICDor5HogIXvvJrkuK3mloflrZfnrKbkuLLmi7zmjqXvvIzlj6/liKDpmaTliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjEyNzAKKyM6IHd0LXN0YXR1cy5jOjEzMTgKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgZGlyZWN0b3J5IGNsZWFuXG4iCiBtc2dzdHIgIuaXoOaWh+S7tuimgeaPkOS6pO+8jOW5suWHgOeahOW3peS9nOWMulxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMzc4CisjOiB3dC1zdGF0dXMuYzoxNDI3CiBtc2dpZCAiSEVBRCAobm8gYnJhbmNoKSIKIG1zZ3N0ciAiSEVBRO+8iOmdnuWIhuaUr++8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5Y+l5bC+56m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxMzg0CisjOiB3dC1zdGF0dXMuYzoxNDMzCiBtc2dpZCAiSW5pdGlhbCBjb21taXQgb24gIgogbXNnc3RyICLliJ3lp4vmj5DkuqTkuo4gIgogCisjOiB3dC1zdGF0dXMuYzoxNDYzCittc2dpZCAiZ29uZSIKK21zZ3N0ciAi5Lii5aSxIgorCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHlj6XlsL7nqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjEzOTkKKyM6IHd0LXN0YXR1cy5jOjE0NjUKIG1zZ2lkICJiZWhpbmQgIgogbXNnc3RyICLokL3lkI4gIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHlj6XlsL7nqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjE0MDIgd3Qtc3RhdHVzLmM6MTQwNQorIzogd3Qtc3RhdHVzLmM6MTQ2OCB3dC1zdGF0dXMuYzoxNDcxCiBtc2dpZCAiYWhlYWQgIgogbXNnc3RyICLpooblhYggIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHlj6XlsL7nqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjE0MDcKKyM6IHd0LXN0YXR1cy5jOjE0NzMKIG1zZ2lkICIsIGJlaGluZCAiCiBtc2dzdHIgIu+8jOiQveWQjiAiCiAKLSM6IGNvbXBhdC9wcmVjb21wb3NlX3V0ZjguYzo1OCBidWlsdGluL2Nsb25lLmM6MzUxCisjOiBjb21wYXQvcHJlY29tcG9zZV91dGY4LmM6NTUgYnVpbHRpbi9jbG9uZS5jOjM1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gdW5saW5rICclcyciCiBtc2dzdHIgIuaXoOazleWIoOmZpCAnJXMnIgogCiAjOiBidWlsdGluL2FkZC5jOjIwCiBtc2dpZCAiZ2l0IGFkZCBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgotbXNnc3RyICJnaXQgYWRkIFvpgInpobldIFstLV0gPOi3r+W+hOWMuemFjT4uLi4iCittc2dzdHIgImdpdCBhZGQgW+mAiemhuV0gWy0tXSA86Lev5b6E6KeE5YiZPi4uLiIKIAogIyAg6K+R6ICF77ya5a2X56ym5Liy6aaW6KGM6KGM6aaW6KaB5re75Yqg4oCcd2FybmluZzog4oCd5a2X5Liy77yM5pWF5q2k6aaW6KGM6KaB6L6D5YW25L2Z6KGM55+tCiAjLgpAQCAtMTc3NCwxMCArMTkzOSwxMCBAQAogIuWDj+acrOWcsOW3peS9nOWMuuenu+mZpOeahOi3r+W+hCAnJXMnXG4iCiAi5Zyo5q2k54mI5pys55qEIEdpdCDkuK3ooqvlv73nlaXjgIJcbiIKICJcbiIKLSIqICdnaXQgYWRkIC0taWdub3JlLXJlbW92YWwgPHBhdGhzcGVjPifvvIzmmK/lvZPliY3niYjmnKznmoTpu5jorqTmk43kvZzvvIxcbiIKKyIqICdnaXQgYWRkIC0taWdub3JlLXJlbW92YWwgPOi3r+W+hOinhOWImT4n77yM5piv5b2T5YmN54mI5pys55qE6buY6K6k5pON5L2c77yMXG4iCiAiICDlv73nlaXmgqjmnKzlnLDlt6XkvZzljLrkuK3np7vpmaTnmoTmlofku7bjgIJcbiIKICJcbiIKLSIqICdnaXQgYWRkIC0tYWxsIDxwYXRoc3BlYz4nIOWwhuiuqeaCqOWQjOaXtuWvueWIoOmZpOaTjeS9nOi/m+ihjOiusOW9leOAglxuIgorIiogJ2dpdCBhZGQgLS1hbGwgPOi3r+W+hOinhOWImT4nIOWwhuiuqeaCqOWQjOaXtuWvueWIoOmZpOaTjeS9nOi/m+ihjOiusOW9leOAglxuIgogIlxuIgogIui/kOihjCAnZ2l0IHN0YXR1cycg5p2l5qOA5p+l5oKo5pys5Zyw5bel5L2c5Yy65Lit56e76Zmk55qE6Lev5b6E44CCXG4iCiAKQEAgLTE3ODYsNyArMTk1MSw3IEBACiBtc2dpZCAidW5leHBlY3RlZCBkaWZmIHN0YXR1cyAlYyIKIG1zZ3N0ciAi5oSP5aSW55qE5beu5byC54q25oCBICVjIgogCi0jOiBidWlsdGluL2FkZC5jOjE0OSBidWlsdGluL2NvbW1pdC5jOjI1MgorIzogYnVpbHRpbi9hZGQuYzoxNDkgYnVpbHRpbi9jb21taXQuYzoyNjAKIG1zZ2lkICJ1cGRhdGluZyBmaWxlcyBmYWlsZWQiCiBtc2dzdHIgIuabtOaWsOaWh+S7tuWksei0pSIKIApAQCAtMTc5NSwxNDAgKzE5NjAsMTM1IEBACiBtc2dpZCAicmVtb3ZlICclcydcbiIKIG1zZ3N0ciAi5Yig6ZmkICclcydcbiIKIAotIzogYnVpbHRpbi9hZGQuYzoyNTMKKyM6IGJ1aWx0aW4vYWRkLmM6MjM3CiBtc2dpZCAiVW5zdGFnZWQgY2hhbmdlcyBhZnRlciByZWZyZXNoaW5nIHRoZSBpbmRleDoiCiBtc2dzdHIgIuWIt+aWsOe0ouW8leS5i+WQjuWwmuacquiiq+aaguWtmOeahOWPmOabtO+8miIKIAotIzogYnVpbHRpbi9hZGQuYzoyNTYgYnVpbHRpbi9hZGQuYzo1NzMgYnVpbHRpbi9ybS5jOjMzNwotIywgYy1mb3JtYXQKLW1zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgotbXNnc3RyICLot6/lvoQgJyVzJyDmnKrljLnphY3ku7vkvZXmlofku7YiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MzM5CisjOiBidWlsdGluL2FkZC5jOjI5OQogbXNnaWQgIkNvdWxkIG5vdCByZWFkIHRoZSBpbmRleCIKIG1zZ3N0ciAi5LiN6IO96K+75Y+W57Si5byVIgogCi0jOiBidWlsdGluL2FkZC5jOjM1MAorIzogYnVpbHRpbi9hZGQuYzozMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZy4iCiBtc2dzdHIgIuS4jeiDveaJk+W8gCAnJXMnIOS7peWGmeWFpeOAgiIKIAotIzogYnVpbHRpbi9hZGQuYzozNTQKKyM6IGJ1aWx0aW4vYWRkLmM6MzE0CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIHBhdGNoIgogbXNnc3RyICLkuI3og73nlJ/miJDooaXkuIEiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzU5CisjOiBidWlsdGluL2FkZC5jOjMxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgc3RhdCAnJXMnIgogbXNnc3RyICLkuI3og73mn6XnnIvmlofku7bnirbmgIEgJyVzJyIKIAotIzogYnVpbHRpbi9hZGQuYzozNjEKKyM6IGJ1aWx0aW4vYWRkLmM6MzIxCiBtc2dpZCAiRW1wdHkgcGF0Y2guIEFib3J0ZWQuIgogbXNnc3RyICLnqbrooaXkuIHjgILlvILluLjnu4jmraLjgIIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzY3CisjOiBidWlsdGluL2FkZC5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgYXBwbHkgJyVzJyIKIG1zZ3N0ciAi5LiN6IO95bqU55SoICclcyciCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzc3CisjOiBidWlsdGluL2FkZC5jOjMzNwogbXNnaWQgIlRoZSBmb2xsb3dpbmcgcGF0aHMgYXJlIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKIG1zZ3N0ciAi5LiL5YiX6Lev5b6E5qC55o2u5oKo55qE5LiA5LiqIC5naXRpZ25vcmUg5paH5Lu26ICM6KKr5b+955Wl77yaXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk0IGJ1aWx0aW4vY2xlYW4uYzo4NzUgYnVpbHRpbi9mZXRjaC5jOjc4IGJ1aWx0aW4vbXYuYzo2MwotIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3MyBidWlsdGluL3B1c2guYzo0NTEgYnVpbHRpbi9yZW1vdGUuYzoxMjUzCi0jOiBidWlsdGluL3JtLmM6MjY4CisjOiBidWlsdGluL2FkZC5jOjM1NCBidWlsdGluL2NsZWFuLmM6ODc1IGJ1aWx0aW4vZmV0Y2guYzo5MiBidWlsdGluL212LmM6NjYKKyM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzMgYnVpbHRpbi9wdXNoLmM6NDU5IGJ1aWx0aW4vcmVtb3RlLmM6MTI1MworIzogYnVpbHRpbi9ybS5jOjI2OQogbXNnaWQgImRyeSBydW4iCiBtc2dzdHIgIua8lOS5oCIKIAotIzogYnVpbHRpbi9hZGQuYzozOTUgYnVpbHRpbi9hcHBseS5jOjQ0MTAgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOQotIzogYnVpbHRpbi9jb21taXQuYzoxMjIwIGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjk1IGJ1aWx0aW4vZnNjay5jOjYxMwotIzogYnVpbHRpbi9sb2cuYzoxNTczIGJ1aWx0aW4vbXYuYzo2MiBidWlsdGluL3JlYWQtdHJlZS5jOjExMworIzogYnVpbHRpbi9hZGQuYzozNTUgYnVpbHRpbi9hcHBseS5jOjQ0MTAgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOQorIzogYnVpbHRpbi9jb21taXQuYzoxMjQ5IGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjk1IGJ1aWx0aW4vZnNjay5jOjYxMgorIzogYnVpbHRpbi9sb2cuYzoxNTkyIGJ1aWx0aW4vbXYuYzo2NSBidWlsdGluL3JlYWQtdHJlZS5jOjExMwogbXNnaWQgImJlIHZlcmJvc2UiCiBtc2dzdHIgIuWGl+mVv+i+k+WHuiIKIAotIzogYnVpbHRpbi9hZGQuYzozOTcKKyM6IGJ1aWx0aW4vYWRkLmM6MzU3CiBtc2dpZCAiaW50ZXJhY3RpdmUgcGlja2luZyIKIG1zZ3N0ciAi5Lqk5LqS5byP5ouj6YCJIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OCBidWlsdGluL2NoZWNrb3V0LmM6MTA3MyBidWlsdGluL3Jlc2V0LmM6MjYxCisjOiBidWlsdGluL2FkZC5jOjM1OCBidWlsdGluL2NoZWNrb3V0LmM6MTEwOSBidWlsdGluL3Jlc2V0LmM6MjcyCiBtc2dpZCAic2VsZWN0IGh1bmtzIGludGVyYWN0aXZlbHkiCiBtc2dzdHIgIuS6pOS6kuW8j+aMkemAieaVsOaNruWdlyIKIAotIzogYnVpbHRpbi9hZGQuYzozOTkKKyM6IGJ1aWx0aW4vYWRkLmM6MzU5CiBtc2dpZCAiZWRpdCBjdXJyZW50IGRpZmYgYW5kIGFwcGx5IgogbXNnc3RyICLnvJbovpHlvZPliY3lt67lvILlubblupTnlKgiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAwCisjOiBidWlsdGluL2FkZC5jOjM2MAogbXNnaWQgImFsbG93IGFkZGluZyBvdGhlcndpc2UgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAi5YWB6K645re75Yqg5b+955Wl55qE5paH5Lu2IgogCi0jOiBidWlsdGluL2FkZC5jOjQwMQorIzogYnVpbHRpbi9hZGQuYzozNjEKIG1zZ2lkICJ1cGRhdGUgdHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAi5pu05paw5bey6Lef6Liq55qE5paH5Lu2IgogCi0jOiBidWlsdGluL2FkZC5jOjQwMgorIzogYnVpbHRpbi9hZGQuYzozNjIKIG1zZ2lkICJyZWNvcmQgb25seSB0aGUgZmFjdCB0aGF0IHRoZSBwYXRoIHdpbGwgYmUgYWRkZWQgbGF0ZXIiCiBtc2dzdHIgIuWPquiusOW9le+8jOivpei3r+W+hOeojeWQjuWGjea3u+WKoCIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDMKKyM6IGJ1aWx0aW4vYWRkLmM6MzYzCiBtc2dpZCAiYWRkIGNoYW5nZXMgZnJvbSBhbGwgdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgogbXNnc3RyICLmt7vliqDmiYDmnInmlLnlj5jnmoTlt7Lot5/ouKrmlofku7blkozmnKrot5/ouKrmlofku7YiCiAKICMuIHRha2VzIG5vIGFyZ3VtZW50cwotIzogYnVpbHRpbi9hZGQuYzo0MDYKKyM6IGJ1aWx0aW4vYWRkLmM6MzY2CiBtc2dpZCAiaWdub3JlIHBhdGhzIHJlbW92ZWQgaW4gdGhlIHdvcmtpbmcgdHJlZSAoc2FtZSBhcyAtLW5vLWFsbCkiCiBtc2dzdHIgIuW/veeVpeW3peS9nOWMuuS4reenu+mZpOeahOi3r+W+hO+8iOWSjCAtLW5vLWFsbCDnm7jlkIzvvIkiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDA4CisjOiBidWlsdGluL2FkZC5jOjM2OAogbXNnaWQgImRvbid0IGFkZCwgb25seSByZWZyZXNoIHRoZSBpbmRleCIKIG1zZ3N0ciAi5LiN5re75Yqg77yM5Y+q5Yi35paw57Si5byVIgogCi0jOiBidWlsdGluL2FkZC5jOjQwOQorIzogYnVpbHRpbi9hZGQuYzozNjkKIG1zZ2lkICJqdXN0IHNraXAgZmlsZXMgd2hpY2ggY2Fubm90IGJlIGFkZGVkIGJlY2F1c2Ugb2YgZXJyb3JzIgogbXNnc3RyICLot7Pov4flm6Dlh7rplJnkuI3og73mt7vliqDnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDEwCisjOiBidWlsdGluL2FkZC5jOjM3MAogbXNnaWQgImNoZWNrIGlmIC0gZXZlbiBtaXNzaW5nIC0gZmlsZXMgYXJlIGlnbm9yZWQgaW4gZHJ5IHJ1biIKIG1zZ3N0ciAi5qOA5p+l5Zyo5ryU5Lmg5qih5byP5LiL5paH5Lu277yI5Y2z5L2/5LiN5a2Y5Zyo77yJ5piv5ZCm6KKr5b+955WlIgogCi0jOiBidWlsdGluL2FkZC5jOjQzMgorIzogYnVpbHRpbi9hZGQuYzozOTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlIC1mIGlmIHlvdSByZWFsbHkgd2FudCB0byBhZGQgdGhlbS5cbiIKIG1zZ3N0ciAi5L2/55SoIC1mIOWPguaVsOWmguaenOaCqOehruWunuimgea3u+WKoOWug+S7rOOAglxuIgogCi0jOiBidWlsdGluL2FkZC5jOjQzMworIzogYnVpbHRpbi9hZGQuYzozOTMKIG1zZ2lkICJubyBmaWxlcyBhZGRlZCIKIG1zZ3N0ciAi5rKh5pyJ5paH5Lu26KKr5re75YqgIgogCi0jOiBidWlsdGluL2FkZC5jOjQzOQorIzogYnVpbHRpbi9hZGQuYzozOTkKIG1zZ2lkICJhZGRpbmcgZmlsZXMgZmFpbGVkIgogbXNnc3RyICLmt7vliqDmlofku7blpLHotKUiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDc4CisjOiBidWlsdGluL2FkZC5jOjQzOAogbXNnaWQgIi1BIGFuZCAtdSBhcmUgbXV0dWFsbHkgaW5jb21wYXRpYmxlIgogbXNnc3RyICItQSDlkowgLXUg6YCJ6aG55LqS5palIgogCi0jOiBidWlsdGluL2FkZC5jOjQ5NgorIzogYnVpbHRpbi9hZGQuYzo0NTYKIG1zZ2lkICJPcHRpb24gLS1pZ25vcmUtbWlzc2luZyBjYW4gb25seSBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggLS1kcnktcnVuIgogbXNnc3RyICLpgInpobkgLS1pZ25vcmUtbWlzc2luZyDlj6rog73lkowgLS1kcnktcnVuIOWQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9hZGQuYzo1MjYKKyM6IGJ1aWx0aW4vYWRkLmM6NDg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdGhpbmcgc3BlY2lmaWVkLCBub3RoaW5nIGFkZGVkLlxuIgogbXNnc3RyICLmsqHmnInmjIflrprmlofku7bvvIzkuZ/msqHmnInmlofku7booqvmt7vliqDjgIJcbiIKIAotIzogYnVpbHRpbi9hZGQuYzo1MjcKKyM6IGJ1aWx0aW4vYWRkLmM6NDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1heWJlIHlvdSB3YW50ZWQgdG8gc2F5ICdnaXQgYWRkIC4nP1xuIgogbXNnc3RyICLkuZ/orrjmgqjmg7PopoHmiafooYwgJ2dpdCBhZGQgLifvvJ9cbiIKIAotIzogYnVpbHRpbi9hZGQuYzo1MzMgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjEgYnVpbHRpbi9jbGVhbi5jOjkxOQotIzogYnVpbHRpbi9jb21taXQuYzozMTIgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyOTcKKyM6IGJ1aWx0aW4vYWRkLmM6NDkyIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTcyIGJ1aWx0aW4vY2xlYW4uYzo5MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzIwIGJ1aWx0aW4vbXYuYzo4NiBidWlsdGluL3Jlc2V0LmM6MjI0IGJ1aWx0aW4vcm0uYzoyOTkKIG1zZ2lkICJpbmRleCBmaWxlIGNvcnJ1cHQiCiBtc2dzdHIgIue0ouW8leaWh+S7tuaNn+WdjyIKIAotIzogYnVpbHRpbi9hZGQuYzo2MDUgYnVpbHRpbi9hcHBseS5jOjQ1MDYgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6NDMyCisjOiBidWlsdGluL2FkZC5jOjU4OSBidWlsdGluL2FwcGx5LmM6NDUwNiBidWlsdGluL212LmM6MjU5IGJ1aWx0aW4vcm0uYzo0MzIKIG1zZ2lkICJVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIuaXoOazleWGmeWFpeaWsOe0ouW8leaWh+S7tiIKIApAQCAtMjE3Niw3ICsyMzM2LDcgQEAKIG1zZ2lkICJDaGVja2luZyBwYXRjaCAlcy4uLiIKIG1zZ3N0ciAi5qOA5p+l6KGl5LiBICVzLi4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzY4MCBidWlsdGluL2NoZWNrb3V0LmM6MjE2IGJ1aWx0aW4vcmVzZXQuYzoxMjcKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNjgwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTMgYnVpbHRpbi9yZXNldC5jOjEyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWtlX2NhY2hlX2VudHJ5IGZhaWxlZCBmb3IgcGF0aCAnJXMnIgogbXNnc3RyICLlr7not6/lvoQgJyVzJyDnmoQgbWFrZV9jYWNoZV9lbnRyeSDmk43kvZzlpLHotKUiCkBAIC0yMjU2LDggKzI0MTYsOCBAQAogbXNnaWQgInVuYWJsZSB0byByZWFkIGluZGV4IGZpbGUiCiBtc2dzdHIgIuaXoOazleivu+WPlue0ouW8leaWh+S7tiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNTcgYnVpbHRpbi9hcHBseS5jOjQzNjAgYnVpbHRpbi9jbG9uZS5jOjkxCi0jOiBidWlsdGluL2ZldGNoLmM6NjMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU3IGJ1aWx0aW4vYXBwbHkuYzo0MzYwIGJ1aWx0aW4vY2xvbmUuYzo5MAorIzogYnVpbHRpbi9mZXRjaC5jOjc3CiBtc2dpZCAicGF0aCIKIG1zZ3N0ciAi6Lev5b6EIgogCkBAIC0yMzE3LDcgKzI0NzcsNyBAQAogbXNnaWQgImJ1aWxkIGEgdGVtcG9yYXJ5IGluZGV4IGJhc2VkIG9uIGVtYmVkZGVkIGluZGV4IGluZm9ybWF0aW9uIgogbXNnc3RyICLliJvlu7rkuIDkuKrkuLTml7bntKLlvJXln7rkuo7ltYzlhaXnmoTntKLlvJXkv6Hmga8iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg5IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTcgYnVpbHRpbi9scy1maWxlcy5jOjQ2MgorIzogYnVpbHRpbi9hcHBseS5jOjQzODkgYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDUyCiBtc2dpZCAicGF0aHMgYXJlIHNlcGFyYXRlZCB3aXRoIE5VTCBjaGFyYWN0ZXIiCiBtc2dzdHIgIui3r+W+hOS7pSBOVUwg5a2X56ym5YiG6ZqUIgogCkBAIC0yNDQ3LDEwMyArMjYwNywxMDMgQEAKIG1zZ2lkICJ1cGRhdGUgQklTRUNUX0hFQUQgaW5zdGVhZCBvZiBjaGVja2luZyBvdXQgdGhlIGN1cnJlbnQgY29tbWl0IgogbXNnc3RyICLmm7TmlrAgQklTRUNUX0hFQUQg6ICM6Z2e5qOA5Ye65b2T5YmN5o+Q5LqkIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyNwogbXNnaWQgImdpdCBibGFtZSBbb3B0aW9uc10gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIGZpbGUiCiBtc2dzdHIgImdpdCBibGFtZSBb6YCJ6aG5XSBb54mI5pys6YCJ6aG5XSBb54mI5pysXSBbLS1dIOaWh+S7tiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjMxCisjOiBidWlsdGluL2JsYW1lLmM6MzIKIG1zZ2lkICJbcmV2LW9wdHNdIGFyZSBkb2N1bWVudGVkIGluIGdpdC1yZXYtbGlzdCgxKSIKIG1zZ3N0ciAiW+eJiOacrOmAiemhuV0g55qE5paH5qGj6K6w5b2V5ZyoIGdpdC1yZXYtbGlzdCgxKSDkuK0iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc2CisjOiBidWlsdGluL2JsYW1lLmM6MjI0OAogbXNnaWQgIlNob3cgYmxhbWUgZW50cmllcyBhcyB3ZSBmaW5kIHRoZW0sIGluY3JlbWVudGFsbHkiCiBtc2dzdHIgIuWinumHj+W8j+WcsOaYvuekuuWPkeeOsOeahCBibGFtZSDmnaHnm64iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc3CisjOiBidWlsdGluL2JsYW1lLmM6MjI0OQogbXNnaWQgIlNob3cgYmxhbmsgU0hBLTEgZm9yIGJvdW5kYXJ5IGNvbW1pdHMgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIui+ueeVjOaPkOS6pOaYvuekuuepuueahCBTSEEtMe+8iOm7mOiupO+8muWFs+mXre+8iSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyNzgKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjUwCiBtc2dpZCAiRG8gbm90IHRyZWF0IHJvb3QgY29tbWl0cyBhcyBib3VuZGFyaWVzIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICLkuI3miormoLnmj5DkuqTkvZzkuLrovrnnlYzvvIjpu5jorqTvvJrlhbPpl63vvIkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc5CisjOiBidWlsdGluL2JsYW1lLmM6MjI1MQogbXNnaWQgIlNob3cgd29yayBjb3N0IHN0YXRpc3RpY3MiCiBtc2dzdHIgIuaYvuekuuWRveS7pOa2iOiAl+e7n+iuoSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjUyCiBtc2dpZCAiU2hvdyBvdXRwdXQgc2NvcmUgZm9yIGJsYW1lIGVudHJpZXMiCiBtc2dzdHIgIuaYvuekuuWIpOaWrSBibGFtZSDmnaHnm67kvY3np7vnmoTlvpfliIbor4rmlq3kv6Hmga8iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgxCisjOiBidWlsdGluL2JsYW1lLmM6MjI1MwogbXNnaWQgIlNob3cgb3JpZ2luYWwgZmlsZW5hbWUgKERlZmF1bHQ6IGF1dG8pIgogbXNnc3RyICLmmL7npLrljp/lp4vmlofku7blkI3vvIjpu5jorqTvvJroh6rliqjvvIkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgyCisjOiBidWlsdGluL2JsYW1lLmM6MjI1NAogbXNnaWQgIlNob3cgb3JpZ2luYWwgbGluZW51bWJlciAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAi5pi+56S65Y6f5aeL55qE6KGM5Y+377yI6buY6K6k77ya5YWz6Zet77yJIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI4MworIzogYnVpbHRpbi9ibGFtZS5jOjIyNTUKIG1zZ2lkICJTaG93IGluIGEgZm9ybWF0IGRlc2lnbmVkIGZvciBtYWNoaW5lIGNvbnN1bXB0aW9uIgogbXNnc3RyICLmmL7npLrkuLrkuIDkuKrpgILlkIjmnLrlmajor7vlj5bnmoTmoLzlvI8iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg0CisjOiBidWlsdGluL2JsYW1lLmM6MjI1NgogbXNnaWQgIlNob3cgcG9yY2VsYWluIGZvcm1hdCB3aXRoIHBlci1saW5lIGNvbW1pdCBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAi5Li65q+P5LiA6KGM5pi+56S65py65Zmo6YCC55So55qE5o+Q5Lqk5L+h5oGvIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI4NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNTcKIG1zZ2lkICJVc2UgdGhlIHNhbWUgb3V0cHV0IG1vZGUgYXMgZ2l0LWFubm90YXRlIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICLkvb/nlKjlkowgZ2l0LWFubm90YXRlIOebuOWQjOeahOi+k+WHuuaooeW8j++8iOm7mOiupO+8muWFs+mXre+8iSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjU4CiBtc2dpZCAiU2hvdyByYXcgdGltZXN0YW1wIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICLmmL7npLrljp/lp4vml7bpl7TmiLPvvIjpu5jorqTvvJrlhbPpl63vvIkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg3CisjOiBidWlsdGluL2JsYW1lLmM6MjI1OQogbXNnaWQgIlNob3cgbG9uZyBjb21taXQgU0hBMSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAi5pi+56S66ZW/55qEU0hBMeaPkOS6pOWPt++8iOm7mOiupO+8muWFs+mXre+8iSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyODgKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjYwCiBtc2dpZCAiU3VwcHJlc3MgYXV0aG9yIG5hbWUgYW5kIHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAi6ZqQ6JeP5L2c6ICF5ZCN5a2X5ZKM5pe26Ze05oiz77yI6buY6K6k77ya5YWz6Zet77yJIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI4OQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjEKIG1zZ2lkICJTaG93IGF1dGhvciBlbWFpbCBpbnN0ZWFkIG9mIG5hbWUgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIuaYvuekuuS9nOiAheeahOmCrueuseiAjOS4jeaYr+WQjeWtl++8iOm7mOiupO+8muWFs+mXre+8iSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjYyCiBtc2dpZCAiSWdub3JlIHdoaXRlc3BhY2UgZGlmZmVyZW5jZXMiCiBtc2dzdHIgIuW/veeVpeepuueZveW3ruW8giIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTEKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjYzCiBtc2dpZCAiU3BlbmQgZXh0cmEgY3ljbGVzIHRvIGZpbmQgYmV0dGVyIG1hdGNoIgogbXNnc3RyICLoirHotLnpop3lpJbnmoTlvqrnjq/mnaXmib7liLDmm7Tlpb3nmoTljLnphY0iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkyCisjOiBidWlsdGluL2JsYW1lLmM6MjI2NAogbXNnaWQgIlVzZSByZXZpc2lvbnMgZnJvbSA8ZmlsZT4gaW5zdGVhZCBvZiBjYWxsaW5nIGdpdC1yZXYtbGlzdCIKIG1zZ3N0ciAi5L2/55So5p2l6IeqIDxmaWxlPiDnmoTkv67orqLpm4bogIzkuI3mmK/osIPnlKggZ2l0LXJldi1saXN0IgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5MworIzogYnVpbHRpbi9ibGFtZS5jOjIyNjUKIG1zZ2lkICJVc2UgPGZpbGU+J3MgY29udGVudHMgYXMgdGhlIGZpbmFsIGltYWdlIgogbXNnc3RyICLkvb/nlKggPGZpbGU+IOeahOWGheWuueS9nOS4uuacgOe7iOeahOWbvueJhyIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTQgYnVpbHRpbi9ibGFtZS5jOjIyOTUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY2IGJ1aWx0aW4vYmxhbWUuYzoyMjY3CiBtc2dpZCAic2NvcmUiCiBtc2dzdHIgIuW+l+WIhiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIyOTQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjY2CiBtc2dpZCAiRmluZCBsaW5lIGNvcGllcyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIKIG1zZ3N0ciAi5om+5Yiw5paH5Lu25YaF5Y+K6Leo5paH5Lu255qE6KGM5ou36LSdIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjcKIG1zZ2lkICJGaW5kIGxpbmUgbW92ZW1lbnRzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgogbXNnc3RyICLmib7liLDmlofku7blhoXlj4rot6jmlofku7bnmoTooYznp7vliqgiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk2CisjOiBidWlsdGluL2JsYW1lLmM6MjI2OAogbXNnaWQgIm4sbSIKIG1zZ3N0ciAibixtIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjI5NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyNjgKIG1zZ2lkICJQcm9jZXNzIG9ubHkgbGluZSByYW5nZSBuLG0sIGNvdW50aW5nIGZyb20gMSIKIG1zZ3N0ciAi5Y+q5aSE55CG6KGM6IyD5Zu05ZyoIG4g5ZKMIG0g5LmL6Ze055qE77yM5LuOIDEg5byA5aeLIgogCkBAIC0yNjUxLDI3MyArMjgxMSwyODMgQEAKIAogIzogYnVpbHRpbi9icmFuY2guYzo0NTMKICMsIGMtZm9ybWF0Cittc2dpZCAiWyVzOiBnb25lXSIKK21zZ3N0ciAiWyVzOiDkuKLlpLFdIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJbJXNdIgorbXNnc3RyICJbJXNdIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjQ1OQorIywgYy1mb3JtYXQKIG1zZ2lkICJbJXM6IGJlaGluZCAlZF0iCiBtc2dzdHIgIlslc++8muiQveWQjiAlZF0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU1CisjOiBidWlsdGluL2JyYW5jaC5jOjQ2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJbYmVoaW5kICVkXSIKIG1zZ3N0ciAiW+iQveWQjiAlZF0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU5CisjOiBidWlsdGluL2JyYW5jaC5jOjQ2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJbJXM6IGFoZWFkICVkXSIKIG1zZ3N0ciAiWyVz77ya6aKG5YWIICVkXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NjEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlthaGVhZCAlZF0iCiBtc2dzdHIgIlvpooblhYggJWRdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ2NAorIzogYnVpbHRpbi9icmFuY2guYzo0NzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiWyVzOiBhaGVhZCAlZCwgYmVoaW5kICVkXSIKIG1zZ3N0ciAiWyVz77ya6aKG5YWIICVk77yM6JC95ZCOICVkXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NjcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDczCiAjLCBjLWZvcm1hdAogbXNnaWQgIlthaGVhZCAlZCwgYmVoaW5kICVkXSIKIG1zZ3N0ciAiW+mihuWFiCAlZO+8jOiQveWQjiAlZF0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDkwCisjOiBidWlsdGluL2JyYW5jaC5jOjQ5NgogbXNnaWQgIiAqKioqIGludmFsaWQgcmVmICoqKioiCiBtc2dzdHIgIiAqKioqIOaXoOaViOW8leeUqCAqKioqIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU4MgorIzogYnVpbHRpbi9icmFuY2guYzo1ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiKG5vIGJyYW5jaCwgcmViYXNpbmcgJXMpIgogbXNnc3RyICLvvIjpnZ7liIbmlK/vvIzmraPlj5jln7ogJXPvvIkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTg1CisjOiBidWlsdGluL2JyYW5jaC5jOjU5MQogIywgYy1mb3JtYXQKIG1zZ2lkICIobm8gYnJhbmNoLCBiaXNlY3Qgc3RhcnRlZCBvbiAlcykiCiBtc2dzdHIgIu+8iOmdnuWIhuaUr++8jOS6jOWIhuafpeaJvuW8gOWni+S6jiAlc++8iSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo1ODgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTk0CiAjLCBjLWZvcm1hdAogbXNnaWQgIihkZXRhY2hlZCBmcm9tICVzKSIKIG1zZ3N0ciAi77yI5YiG56a76IeqICVz77yJIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU5MQorIzogYnVpbHRpbi9icmFuY2guYzo1OTcKIG1zZ2lkICIobm8gYnJhbmNoKSIKIG1zZ3N0ciAi77yI6Z2e5YiG5pSv77yJIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjYzNworIzogYnVpbHRpbi9icmFuY2guYzo2NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0ICclcycgZG9lcyBub3QgcG9pbnQgdG8gYSBjb21taXQiCiBtc2dzdHIgIuWvueixoSAnJXMnIOayoeacieaMh+WQkeS4gOS4quaPkOS6pCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2NjkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Njc1CiBtc2dpZCAic29tZSByZWZzIGNvdWxkIG5vdCBiZSByZWFkIgogbXNnc3RyICLkuIDkupvlvJXnlKjkuI3og73or7vlj5YiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjgyCisjOiBidWlsdGluL2JyYW5jaC5jOjY4OAogbXNnaWQgImNhbm5vdCByZW5hbWUgdGhlIGN1cnJlbnQgYnJhbmNoIHdoaWxlIG5vdCBvbiBhbnkuIgogbXNnc3RyICLml6Dms5Xph43lkb3lkI3lvZPliY3liIbmlK/lm6DkuLrkuI3lpITkuo7ku7vkvZXliIbmlK/kuIrjgIIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjkyCisjOiBidWlsdGluL2JyYW5jaC5jOjY5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGJyYW5jaCBuYW1lOiAnJXMnIgogbXNnc3RyICLml6DmlYjnmoTliIbmlK/lkI3vvJonJXMnIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcwNworIzogYnVpbHRpbi9icmFuY2guYzo3MTMKIG1zZ2lkICJCcmFuY2ggcmVuYW1lIGZhaWxlZCIKIG1zZ3N0ciAi5YiG5pSv6YeN5ZG95ZCN5aSx6LSlIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcxMQorIzogYnVpbHRpbi9icmFuY2guYzo3MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVuYW1lZCBhIG1pc25hbWVkIGJyYW5jaCAnJXMnIGF3YXkiCiBtc2dzdHIgIumHjeWRveWQjeaOieS4gOS4qumUmeivr+WRveWQjeeahOaXp+WIhuaUryAnJXMnIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcxNQorIzogYnVpbHRpbi9icmFuY2guYzo3MjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQnJhbmNoIHJlbmFtZWQgdG8gJXMsIGJ1dCBIRUFEIGlzIG5vdCB1cGRhdGVkISIKIG1zZ3N0ciAi5YiG5pSv6YeN5ZG95ZCN5Li6ICVz77yM5L2GIEhFQUQg5rKh5pyJ5pu05paw77yBIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcyMgorIzogYnVpbHRpbi9icmFuY2guYzo3MjgKIG1zZ2lkICJCcmFuY2ggaXMgcmVuYW1lZCwgYnV0IHVwZGF0ZSBvZiBjb25maWctZmlsZSBmYWlsZWQiCiBtc2dzdHIgIuWIhuaUr+iiq+mHjeWRveWQje+8jOS9huabtOaWsCBjb25maWcg5paH5Lu25aSx6LSlIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjczNworIzogYnVpbHRpbi9icmFuY2guYzo3NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAibWFsZm9ybWVkIG9iamVjdCBuYW1lICVzIgogbXNnc3RyICLpnZ7ms5XnmoTlr7nosaHlkI0gJXMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzYxCisjOiBidWlsdGluL2JyYW5jaC5jOjc2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgd3JpdGUgYnJhbmNoIGRlc2NyaXB0aW9uIHRlbXBsYXRlOiAlcyIKIG1zZ3N0ciAi5LiN6IO95YaZ5YiG5pSv5o+P6L+w5qih54mI77yaJXMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzkxCisjOiBidWlsdGluL2JyYW5jaC5jOjc5NwogbXNnaWQgIkdlbmVyaWMgb3B0aW9ucyIKIG1zZ3N0ciAi6YCa55So6YCJ6aG5IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5MworIzogYnVpbHRpbi9icmFuY2guYzo3OTkKIG1zZ2lkICJzaG93IGhhc2ggYW5kIHN1YmplY3QsIGdpdmUgdHdpY2UgZm9yIHVwc3RyZWFtIGJyYW5jaCIKIG1zZ3N0ciAi5pi+56S65ZOI5biM5YC85ZKM5Li76aKY77yM6Iul5Y+C5pWw5Ye6546w5Lik5qyh5YiZ5pi+56S65LiK5ri45YiG5pSvIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5NAorIzogYnVpbHRpbi9icmFuY2guYzo4MDAKIG1zZ2lkICJzdXBwcmVzcyBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzIgogbXNnc3RyICLkuI3mmL7npLrkv6Hmga8iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk1CisjOiBidWlsdGluL2JyYW5jaC5jOjgwMQogbXNnaWQgInNldCB1cCB0cmFja2luZyBtb2RlIChzZWUgZ2l0LXB1bGwoMSkpIgogbXNnc3RyICLorr7nva7ot5/ouKrmqKHlvI/vvIjlj4Lop4EgZ2l0LXB1bGwoMSnvvIkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk3CisjOiBidWlsdGluL2JyYW5jaC5jOjgwMwogbXNnaWQgImNoYW5nZSB1cHN0cmVhbSBpbmZvIgogbXNnc3RyICLmlLnlj5jkuIrmuLjkv6Hmga8iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCisjOiBidWlsdGluL2JyYW5jaC5jOjgwNwogbXNnaWQgInVzZSBjb2xvcmVkIG91dHB1dCIKIG1zZ3N0ciAi5L2/55So5b2p6Imy6L6T5Ye6IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwMgorIzogYnVpbHRpbi9icmFuY2guYzo4MDgKIG1zZ2lkICJhY3Qgb24gcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIgogbXNnc3RyICLkvZznlKjkuo7ov5znqIvot5/ouKrliIbmlK8iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA1IGJ1aWx0aW4vYnJhbmNoLmM6ODExIGJ1aWx0aW4vYnJhbmNoLmM6ODMyCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzOCBidWlsdGluL2NvbW1pdC5jOjE0MzMgYnVpbHRpbi9jb21taXQuYzoxNDM0Ci0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzUgYnVpbHRpbi9jb21taXQuYzoxNDM2IGJ1aWx0aW4vdGFnLmM6NDY4CisjOiBidWlsdGluL2JyYW5jaC5jOjgxMSBidWlsdGluL2JyYW5jaC5jOjgxNyBidWlsdGluL2JyYW5jaC5jOjgzOAorIzogYnVpbHRpbi9icmFuY2guYzo4NDQgYnVpbHRpbi9jb21taXQuYzoxNDYwIGJ1aWx0aW4vY29tbWl0LmM6MTQ2MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDYyIGJ1aWx0aW4vY29tbWl0LmM6MTQ2MyBidWlsdGluL3RhZy5jOjQ2OAogbXNnaWQgImNvbW1pdCIKIG1zZ3N0ciAi5o+Q5LqkIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNiBidWlsdGluL2JyYW5jaC5jOjgxMgorIzogYnVpbHRpbi9icmFuY2guYzo4MTIgYnVpbHRpbi9icmFuY2guYzo4MTgKIG1zZ2lkICJwcmludCBvbmx5IGJyYW5jaGVzIHRoYXQgY29udGFpbiB0aGUgY29tbWl0IgogbXNnc3RyICLlj6rmiZPljbDljIXlkKvor6Xmj5DkuqTnmoTliIbmlK8iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE4CisjOiBidWlsdGluL2JyYW5jaC5jOjgyNAogbXNnaWQgIlNwZWNpZmljIGdpdC1icmFuY2ggYWN0aW9uczoiCiBtc2dzdHIgIuWFt+S9k+eahCBnaXQtYnJhbmNoIOWKqOS9nO+8miIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MTkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI1CiBtc2dpZCAibGlzdCBib3RoIHJlbW90ZS10cmFja2luZyBhbmQgbG9jYWwgYnJhbmNoZXMiCiBtc2dzdHIgIuWIl+WHuui/nOeoi+i3n+i4quWPiuacrOWcsOWIhuaUryIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI3CiBtc2dpZCAiZGVsZXRlIGZ1bGx5IG1lcmdlZCBicmFuY2giCiBtc2dzdHIgIuWIoOmZpOWujOWFqOWQiOW5tueahOWIhuaUryIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI4CiBtc2dpZCAiZGVsZXRlIGJyYW5jaCAoZXZlbiBpZiBub3QgbWVyZ2VkKSIKIG1zZ3N0ciAi5Yig6Zmk5YiG5pSv77yI5Y2z5L2/5rKh5pyJ5ZCI5bm277yJIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyMworIzogYnVpbHRpbi9icmFuY2guYzo4MjkKIG1zZ2lkICJtb3ZlL3JlbmFtZSBhIGJyYW5jaCBhbmQgaXRzIHJlZmxvZyIKIG1zZ3N0ciAi56e75YqoL+mHjeWRveWQjeS4gOS4quWIhuaUr++8jOS7peWPiuWug+eahOW8leeUqOaXpeW/lyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMwCiBtc2dpZCAibW92ZS9yZW5hbWUgYSBicmFuY2gsIGV2ZW4gaWYgdGFyZ2V0IGV4aXN0cyIKIG1zZ3N0ciAi56e75YqoL+mHjeWRveWQjeS4gOS4quWIhuaUr++8jOWNs+S9v+ebruagh+W3suWtmOWcqCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMxCiBtc2dpZCAibGlzdCBicmFuY2ggbmFtZXMiCiBtc2dzdHIgIuWIl+WHuuWIhuaUr+WQjSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMyCiBtc2dpZCAiY3JlYXRlIHRoZSBicmFuY2gncyByZWZsb2ciCiBtc2dzdHIgIuWIm+W7uuWIhuaUr+eahOW8leeUqOaXpeW/lyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM0CiBtc2dpZCAiZWRpdCB0aGUgZGVzY3JpcHRpb24gZm9yIHRoZSBicmFuY2giCiBtc2dzdHIgIuagh+iusOWIhuaUr+eahOaPj+i/sCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MjkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM1CiBtc2dpZCAiZm9yY2UgY3JlYXRpb24gKHdoZW4gYWxyZWFkeSBleGlzdHMpIgogbXNnc3RyICLlvLrliLbliJvlu7rvvIjlvZPlt7Lnu4/lrZjlnKjvvIkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMyCisjOiBidWlsdGluL2JyYW5jaC5jOjgzOAogbXNnaWQgInByaW50IG9ubHkgbm90IG1lcmdlZCBicmFuY2hlcyIKIG1zZ3N0ciAi5Y+q5omT5Y2w5rKh5pyJ5ZCI5bm255qE5YiG5pSvIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzOAorIzogYnVpbHRpbi9icmFuY2guYzo4NDQKIG1zZ2lkICJwcmludCBvbmx5IG1lcmdlZCBicmFuY2hlcyIKIG1zZ3N0ciAi5Y+q5omT5Y2w5ZCI5bm255qE5YiG5pSvIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg0MgorIzogYnVpbHRpbi9icmFuY2guYzo4NDgKIG1zZ2lkICJsaXN0IGJyYW5jaGVzIGluIGNvbHVtbnMiCiBtc2dzdHIgIuS7peWIl+eahOaWueW8j+aYvuekuuWIhuaUryIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYxCiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgSEVBRCBhcyBhIHZhbGlkIHJlZi4iCiBtc2dzdHIgIuaXoOazleWwhiBIRUFEIOino+aekOS4uuacieaViOW8leeUqOOAgiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NjAgYnVpbHRpbi9jbG9uZS5jOjYzMAorIzogYnVpbHRpbi9icmFuY2guYzo4NjYgYnVpbHRpbi9jbG9uZS5jOjYyOQogbXNnaWQgIkhFQUQgbm90IGZvdW5kIGJlbG93IHJlZnMvaGVhZHMhIgogbXNnc3RyICJIRUFEIOayoeacieS9jeS6jiAvcmVmcy9oZWFkcyDkuYvkuIvvvIEiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODgzCisjOiBidWlsdGluL2JyYW5jaC5jOjg5MAogbXNnaWQgIi0tY29sdW1uIGFuZCAtLXZlcmJvc2UgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1jb2x1bW4g5ZKMIC0tdmVyYm9zZSDkuI3lhbzlrrkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODg5IGJ1aWx0aW4vYnJhbmNoLmM6OTI4CisjOiBidWlsdGluL2JyYW5jaC5jOjg5NiBidWlsdGluL2JyYW5jaC5jOjkzNQogbXNnaWQgImJyYW5jaCBuYW1lIHJlcXVpcmVkIgogbXNnc3RyICLlv4Xpobvmj5DkvpvliIbmlK/lkI0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA0CisjOiBidWlsdGluL2JyYW5jaC5jOjkxMQogbXNnaWQgIkNhbm5vdCBnaXZlIGRlc2NyaXB0aW9uIHRvIGRldGFjaGVkIEhFQUQiCiBtc2dzdHIgIuS4jeiDveWQkeWIhuemu+WktOaMh+mSiOaPkOS+m+aPj+i/sCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MDkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE2CiBtc2dpZCAiY2Fubm90IGVkaXQgZGVzY3JpcHRpb24gb2YgbW9yZSB0aGFuIG9uZSBicmFuY2giCiBtc2dzdHIgIuS4jeiDveS4uuS4gOS4quS7peS4iueahOWIhuaUr+e8lui+keaPj+i/sCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MTYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGNvbW1pdCBvbiBicmFuY2ggJyVzJyB5ZXQuIgogbXNnc3RyICLliIbmlK8gJyVzJyDlsJrml6Dmj5DkuqTjgIIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE5CisjOiBidWlsdGluL2JyYW5jaC5jOjkyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBicmFuY2ggbmFtZWQgJyVzJy4iCiBtc2dzdHIgIuayoeacieWIhuaUryAnJXMn44CCIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkzNAorIzogYnVpbHRpbi9icmFuY2guYzo5NDEKIG1zZ2lkICJ0b28gbWFueSBicmFuY2hlcyBmb3IgYSByZW5hbWUgb3BlcmF0aW9uIgogbXNnc3RyICLkuLrph43lkb3lkI3mk43kvZzmj5DkvpvkuoblpKrlpJrnmoTliIbmlK/lkI0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTM5CisjOiBidWlsdGluL2JyYW5jaC5jOjk0NgogbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHNldCBuZXcgdXBzdHJlYW0iCiBtc2dzdHIgIuS4uuiuvue9ruaWsOS4iua4uOaPkOS+m+S6huWkquWkmueahOWIhuaUr+WQjSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NDMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJjb3VsZCBub3Qgc2V0IHVwc3RyZWFtIG9mIEhFQUQgdG8gJXMgd2hlbiBpdCBkb2VzIG5vdCBwb2ludCB0byBhbnkgYnJhbmNoLiIKIG1zZ3N0ciAi5peg5rOV6K6+572uIEhFQUQg55qE5LiK5ri45Li6ICVz77yM5Zug5Li6IEhFQUQg5rKh5pyJ5oyH5ZCR5Lu75L2V5YiG5pSv44CCIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk0NiBidWlsdGluL2JyYW5jaC5jOjk2OCBidWlsdGluL2JyYW5jaC5jOjk5MAorIzogYnVpbHRpbi9icmFuY2guYzo5NTMgYnVpbHRpbi9icmFuY2guYzo5NzUgYnVpbHRpbi9icmFuY2guYzo5OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gc3VjaCBicmFuY2ggJyVzJyIKIG1zZ3N0ciAi5rKh5pyJ5q2k5YiG5pSvICclcyciCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTUwCisjOiBidWlsdGluL2JyYW5jaC5jOjk1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJicmFuY2ggJyVzJyBkb2VzIG5vdCBleGlzdCIKIG1zZ3N0ciAi5YiG5pSvICclcycg5LiN5a2Y5ZyoIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk2MgorIzogYnVpbHRpbi9icmFuY2guYzo5NjkKIG1zZ2lkICJ0b28gbWFueSBicmFuY2hlcyB0byB1bnNldCB1cHN0cmVhbSIKIG1zZ3N0ciAi5Li65Y+W5raI5LiK5ri46K6+572u5pON5L2c5o+Q5L6b5LqG5aSq5aSa55qE5YiG5pSv5ZCNIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk2NgorIzogYnVpbHRpbi9icmFuY2guYzo5NzMKIG1zZ2lkICJjb3VsZCBub3QgdW5zZXQgdXBzdHJlYW0gb2YgSEVBRCB3aGVuIGl0IGRvZXMgbm90IHBvaW50IHRvIGFueSBicmFuY2guIgogbXNnc3RyICLml6Dms5Xlj5bmtoggSEVBRCDnmoTkuIrmuLjorr7nva7lm6DkuLrlroPmsqHmnInmjIflkJHkuIDkuKrliIbmlK8iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTcyCisjOiBidWlsdGluL2JyYW5jaC5jOjk3OQogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggJyVzJyBoYXMgbm8gdXBzdHJlYW0gaW5mb3JtYXRpb24iCiBtc2dzdHIgIuWIhuaUryAnJXMnIOayoeacieS4iua4uOS/oeaBryIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5ODcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTk0CiBtc2dpZCAiaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBjcmVhdGUgJ0hFQUQnIG1hbnVhbGx5IgogbXNnc3RyICLmiYvlt6XliJvlu7ogJ0hFQUQnIOayoeacieaEj+S5iSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5OTMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAwMAogbXNnaWQgIi1hIGFuZCAtciBvcHRpb25zIHRvICdnaXQgYnJhbmNoJyBkbyBub3QgbWFrZSBzZW5zZSB3aXRoIGEgYnJhbmNoIG5hbWUiCiBtc2dzdHIgIidnaXQgYnJhbmNoJyDnmoQgLWEg5ZKMIC1yIOmAiemhueW4puS4gOS4quWIhuaUr+WQjeWPguaVsOayoeacieaEj+S5iSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5OTYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAwMwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIC0tc2V0LXVwc3RyZWFtIGZsYWcgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBDb25zaWRlciB1c2luZyAtLSIKQEAgLTI5MjUsNyArMzA5NSw3IEBACiBtc2dzdHIgIiIKICLpgInpobkgLS1zZXQtdXBzdHJlYW0g5bey5byD55So5bm25bCG6KKr56e76Zmk44CC6ICD6JmR5L2/55SoIC0tdHJhY2sg5oiWIC0tc2V0LXVwc3RyZWFtLXRvXG4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxMworIzogYnVpbHRpbi9icmFuY2guYzoxMDIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTI5MzYsMTIgKzMxMDYsMTIgQEAKICLlpoLmnpzkvaDmg7PnlKggJyVzJyDot5/ouKogJyVzJywg6L+Z5LmI5YGa77yaXG4iCiAiXG4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxNAorIzogYnVpbHRpbi9icmFuY2guYzoxMDIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICBnaXQgYnJhbmNoIC1kICVzXG4iCiBtc2dzdHIgIiAgICBnaXQgYnJhbmNoIC1kICVzXG4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxNQorIzogYnVpbHRpbi9icmFuY2guYzoxMDIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICBnaXQgYnJhbmNoIC0tc2V0LXVwc3RyZWFtLXRvICVzXG4iCiBtc2dzdHIgIiAgICBnaXQgYnJhbmNoIC0tc2V0LXVwc3RyZWFtLXRvICVzXG4iCkBAIC0yOTU5LDQzICszMTI5LDQzIEBACiBtc2dpZCAiTmVlZCBhIHJlcG9zaXRvcnkgdG8gdW5idW5kbGUuIgogbXNnc3RyICLpnIDopoHkuIDkuKrniYjmnKzlupPmnaXop6PljIXjgIIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyODUKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMTIKIG1zZ2lkICJnaXQgY2F0LWZpbGUgKC10fC1zfC1lfC1wfDx0eXBlPnwtLXRleHRjb252KSA8b2JqZWN0PiIKIG1zZ3N0ciAiZ2l0IGNhdC1maWxlICgtdHwtc3wtZXwtcHw857G75Z6LPnwtLXRleHRjb252KSA85a+56LGhPiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI4NgorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMxMwogbXNnaWQgImdpdCBjYXQtZmlsZSAoLS1iYXRjaHwtLWJhdGNoLWNoZWNrKSA8IDxsaXN0X29mX29iamVjdHM+IgogbXNnc3RyICJnaXQgY2F0LWZpbGUgKC0tYmF0Y2h8LS1iYXRjaC1jaGVjaykgPCA85a+56LGh5YiX6KGoPiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyMworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1MAogbXNnaWQgIjx0eXBlPiBjYW4gYmUgb25lIG9mOiBibG9iLCB0cmVlLCBjb21taXQsIHRhZyIKIG1zZ3N0ciAiPOexu+Weiz4g5Y+v5Lul5piv5YW25Lit5LmL5LiA77yaYmxvYuOAgXRyZWXjgIFjb21taXTjgIF0YWciCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjQKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTEKIG1zZ2lkICJzaG93IG9iamVjdCB0eXBlIgogbXNnc3RyICLmmL7npLrlr7nosaHnsbvlnosiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjUKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTIKIG1zZ2lkICJzaG93IG9iamVjdCBzaXplIgogbXNnc3RyICLmmL7npLrlr7nosaHlpKflsI8iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTQKIG1zZ2lkICJleGl0IHdpdGggemVybyB3aGVuIHRoZXJlJ3Mgbm8gZXJyb3IiCiBtc2dzdHIgIuW9k+ayoeaciemUmeivr+aXtumAgOWHuuW5tui/lOWbnumbtiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyOAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1NQogbXNnaWQgInByZXR0eS1wcmludCBvYmplY3QncyBjb250ZW50IgogbXNnc3RyICLnvo7op4LlnLDmiZPljbDlr7nosaHnmoTlhoXlrrkiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzAKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozNTcKIG1zZ2lkICJmb3IgYmxvYiBvYmplY3RzLCBydW4gdGV4dGNvbnYgb24gb2JqZWN0J3MgY29udGVudCIKIG1zZ3N0ciAi5a+55LqO5pWw5o2u77yIYmxvYu+8ieWvueixoe+8jOWvueWFtuWGheWuueaJp+ihjCB0ZXh0Y29udiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzMgorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjM1OQogbXNnaWQgInNob3cgaW5mbyBhbmQgY29udGVudCBvZiBvYmplY3RzIGZlZCBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAi5pi+56S65LuO5qCH5YeG6L6T5YWl5o+Q5L6b55qE5a+56LGh55qE5L+h5oGv5ZKM5YaF5a65IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MzM1CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzYyCiBtc2dpZCAic2hvdyBpbmZvIGFib3V0IG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICLmmL7npLrku47moIflh4bovpPlhaXmj5DkvpvnmoTlr7nosaHnmoTkv6Hmga8iCiAKQEAgLTMwMjAsMTAgKzMxOTAsMTAgQEAKIG1zZ3N0ciAi5LuO5qCH5YeG6L6T5YWl6K+75Ye65paH5Lu25ZCNIgogCiAjOiBidWlsdGluL2NoZWNrLWF0dHIuYzoyMyBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjI0Ci1tc2dpZCAiaW5wdXQgcGF0aHMgYXJlIHRlcm1pbmF0ZWQgYnkgYSBudWxsIGNoYXJhY3RlciIKLW1zZ3N0ciAi6L6T5YWl6Lev5b6E5LulbnVsbOWtl+espue7iOatoiIKK21zZ2lkICJ0ZXJtaW5hdGUgaW5wdXQgYW5kIG91dHB1dCByZWNvcmRzIGJ5IGEgTlVMIGNoYXJhY3RlciIKK21zZ3N0ciAi6L6T5YWl5ZKM6L6T5Ye655qE6K6w5b2V5L2/55SoIE5VTCDlrZfnrKbnu4jnu5MiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTggYnVpbHRpbi9jaGVja291dC5jOjEwNTQgYnVpbHRpbi9nYy5jOjE3NworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOCBidWlsdGluL2NoZWNrb3V0LmM6MTA5MCBidWlsdGluL2djLmM6MjU5CiBtc2dpZCAic3VwcHJlc3MgcHJvZ3Jlc3MgcmVwb3J0aW5nIgogbXNnc3RyICLkuI3mmL7npLrov5vluqbmiqXlkYoiCiAKQEAgLTMwMzEsMjcgKzMyMDEsMzEgQEAKIG1zZ2lkICJzaG93IG5vbi1tYXRjaGluZyBpbnB1dCBwYXRocyIKIG1zZ3N0ciAi5pi+56S65pyq5Yy56YWN55qE6L6T5YWl6Lev5b6EIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0MworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoyOAorbXNnaWQgImlnbm9yZSBpbmRleCB3aGVuIGNoZWNraW5nIgorbXNnc3RyICLmo4Dmn6Xml7blv73nlaXntKLlvJUiCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU0CiBtc2dpZCAiY2Fubm90IHNwZWNpZnkgcGF0aG5hbWVzIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAi5LiN6IO95ZCM5pe25o+Q5L6b6Lev5b6E5Y+KIC0tc3RkaW4g5Y+C5pWwIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0NgorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTcKIG1zZ2lkICIteiBvbmx5IG1ha2VzIHNlbnNlIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAiLXog6ZyA6KaB5ZKMIC0tc3RkaW4g5Y+C5pWw5YWx55So5omN5pyJ5oSP5LmJIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0OAorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTkKIG1zZ2lkICJubyBwYXRoIHNwZWNpZmllZCIKIG1zZ3N0ciAi5pyq5oyH5a6a6Lev5b6EIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MgorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjMKIG1zZ2lkICItLXF1aWV0IGlzIG9ubHkgdmFsaWQgd2l0aCBhIHNpbmdsZSBwYXRobmFtZSIKIG1zZ3N0ciAi5Y+C5pWwIC0tcXVpZXQg5Y+q5Zyo5o+Q5L6b5LiA5Liq6Lev5b6E5ZCN5pe25pyJ5pWIIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NAorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjUKIG1zZ2lkICJjYW5ub3QgaGF2ZSBib3RoIC0tcXVpZXQgYW5kIC0tdmVyYm9zZSIKIG1zZ3N0ciAi5LiN6IO95ZCM5pe25o+Q5L6bIC0tcXVpZXQg5ZKMIC0tdmVyYm9zZSDlj4LmlbAiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2OAogbXNnaWQgIi0tbm9uLW1hdGNoaW5nIGlzIG9ubHkgdmFsaWQgd2l0aCAtLXZlcmJvc2UiCiBtc2dzdHIgIi0tbm9uLW1hdGNoaW5nIOmAiemhueWPquWcqOS9v+eUqCAtLXZlcmJvc2Ug5pe25pyJ5pWIIgogCkBAIC0zMTI0LDEwNyArMzI5OCwxMDcgQEAKIG1zZ2lkICJnaXQgY2hlY2tvdXQgW29wdGlvbnNdIFs8YnJhbmNoPl0gLS0gPGZpbGU+Li4uIgogbXNnc3RyICJnaXQgY2hlY2tvdXQgW+mAiemhuV0gWzzliIbmlK8+XSAtLSA85paH5Lu2Pi4uLiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNyBidWlsdGluL2NoZWNrb3V0LmM6MTUwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE0IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNDcKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgb3VyIHZlcnNpb24iCiBtc2dzdHIgIui3r+W+hCAnJXMnIOayoeacieaIkeS7rOeahOeJiOacrCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExOSBidWlsdGluL2NoZWNrb3V0LmM6MTUyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgdGhlaXIgdmVyc2lvbiIKIG1zZ3N0ciAi6Lev5b6EICclcycg5rKh5pyJ5LuW5Lus55qE54mI5pysIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTM1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTMyCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIGFsbCBuZWNlc3NhcnkgdmVyc2lvbnMiCiBtc2dzdHIgIui3r+W+hCAnJXMnIOayoeacieWFqOmDqOW/hemhu+eahOeJiOacrCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjE3OQorIzogYnVpbHRpbi9jaGVja291dC5jOjE3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBuZWNlc3NhcnkgdmVyc2lvbnMiCiBtc2dzdHIgIui3r+W+hCAnJXMnIOayoeacieW/hemhu+eahOeJiOacrCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjE5NgorIzogYnVpbHRpbi9jaGVja291dC5jOjE5MwogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcyc6IGNhbm5vdCBtZXJnZSIKIG1zZ3N0ciAicGF0aCAnJXMn77ya5peg5rOV5ZCI5bm2IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjEzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBhZGQgbWVyZ2UgcmVzdWx0IGZvciAnJXMnIgogbXNnc3RyICLml6Dms5XkuLogJyVzJyDmt7vliqDlkIjlubbnu5PmnpwiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzcgYnVpbHRpbi9jaGVja291dC5jOjI0MCBidWlsdGluL2NoZWNrb3V0LmM6MjQzCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjMyIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzUgYnVpbHRpbi9jaGVja291dC5jOjIzOAorIzogYnVpbHRpbi9jaGVja291dC5jOjI0MQogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggdXBkYXRpbmcgcGF0aHMiCiBtc2dzdHIgIiclcycg5LiN6IO95Zyo5pu05paw6Lev5b6E5pe25L2/55SoIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ5IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDQgYnVpbHRpbi9jaGVja291dC5jOjI0NwogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiCiBtc2dzdHIgIiclcycg5LiN6IO95ZKMICVzIOWQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjI1NQorIzogYnVpbHRpbi9jaGVja291dC5jOjI1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgdXBkYXRlIHBhdGhzIGFuZCBzd2l0Y2ggdG8gYnJhbmNoICclcycgYXQgdGhlIHNhbWUgdGltZS4iCiBtc2dzdHIgIuS4jeiDveWQjOaXtuabtOaWsOi3r+W+hOW5tuWIh+aNouWIsOWIhuaUryclcyfjgIIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNjYgYnVpbHRpbi9jaGVja291dC5jOjQ1OAorIzogYnVpbHRpbi9jaGVja291dC5jOjI2MSBidWlsdGluL2NoZWNrb3V0LmM6NDUxCiBtc2dpZCAiY29ycnVwdCBpbmRleCBmaWxlIgogbXNnc3RyICLmjZ/lnY/nmoTntKLlvJXmlofku7YiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzozMjkgYnVpbHRpbi9jaGVja291dC5jOjMzNgorIzogYnVpbHRpbi9jaGVja291dC5jOjMyMiBidWlsdGluL2NoZWNrb3V0LmM6MzI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBpcyB1bm1lcmdlZCIKIG1zZ3N0ciAi6Lev5b6EICclcycg5pyq5ZCI5bm2IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NDgwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NDczCiBtc2dpZCAieW91IG5lZWQgdG8gcmVzb2x2ZSB5b3VyIGN1cnJlbnQgaW5kZXggZmlyc3QiCiBtc2dzdHIgIuaCqOmcgOimgeWFiOino+WGs+W9k+WJjee0ouW8leeahOWGsueqgSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjYwMQorIzogYnVpbHRpbi9jaGVja291dC5jOjU5NAogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW4gbm90IGRvIHJlZmxvZyBmb3IgJyVzJ1xuIgogbXNnc3RyICLkuI3og73lr7kgJyVzJyDmiafooYwgcmVmbG9nIOaTjeS9nFxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjM5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjMyCiBtc2dpZCAiSEVBRCBpcyBub3cgYXQiCiBtc2dzdHIgIkhFQUQg55uu5YmN5L2N5LqOIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjM5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlc2V0IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIumHjee9ruWIhuaUryAnJXMnXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWxyZWFkeSBvbiAnJXMnXG4iCiBtc2dzdHIgIuW3sue7j+S9jeS6jiAnJXMnXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYW5kIHJlc2V0IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIuWIh+aNouW5tumHjee9ruWIhuaUryAnJXMnXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTUgYnVpbHRpbi9jaGVja291dC5jOjk5NworIzogYnVpbHRpbi9jaGVja291dC5jOjY0OCBidWlsdGluL2NoZWNrb3V0LmM6MTAzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBhIG5ldyBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICLliIfmjaLliLDkuIDkuKrmlrDliIbmlK8gJyVzJ1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjU3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIuWIh+aNouWIsOWIhuaUryAnJXMnXG4iCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogYnVpbHRpbi9jaGVja291dC5jOjcxMworIzogYnVpbHRpbi9jaGVja291dC5jOjcwNgogIywgYy1mb3JtYXQKIG1zZ2lkICIgLi4uIGFuZCAlZCBtb3JlLlxuIgogbXNnc3RyICIgLi4uIOWPiuWFtuWugyAlZCDkuKrjgIJcbiIKIAogIy4gVGhlIHNpbmd1bGFyIHZlcnNpb24KLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIldhcm5pbmc6IHlvdSBhcmUgbGVhdmluZyAlZCBjb21taXQgYmVoaW5kLCBub3QgY29ubmVjdGVkIHRvXG4iCkBAIC0zMjQ1LDcgKzM0MTksNyBAQAogIlxuIgogIiVzXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MzcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIklmIHlvdSB3YW50IHRvIGtlZXAgdGhlbSBieSBjcmVhdGluZyBhIG5ldyBicmFuY2gsIHRoaXMgbWF5IGJlIGEgZ29vZCB0aW1lXG4iCkBAIC0zMjYwLDEzNiArMzQzNCwxNDAgQEAKICIgZ2l0IGJyYW5jaCBuZXdfYnJhbmNoX25hbWUgJXNcbiIKICJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc2NworIzogYnVpbHRpbi9jaGVja291dC5jOjc2MAogbXNnaWQgImludGVybmFsIGVycm9yIGluIHJldmlzaW9uIHdhbGsiCiBtc2dzdHIgIuWcqOeJiOacrOmBjeWOhuaXtumBh+WIsOWGhemDqOmUmeivryIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc3MQorIzogYnVpbHRpbi9jaGVja291dC5jOjc2NAogbXNnaWQgIlByZXZpb3VzIEhFQUQgcG9zaXRpb24gd2FzIgogbXNnc3RyICLkuYvliY3nmoQgSEVBRCDkvY3nva7mmK8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTggYnVpbHRpbi9jaGVja291dC5jOjk5MgorIzogYnVpbHRpbi9jaGVja291dC5jOjc5MSBidWlsdGluL2NoZWNrb3V0LmM6MTAyOAogbXNnaWQgIllvdSBhcmUgb24gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgIuaCqOS9jeS6juS4gOS4quWwmuacquWIneWni+WMlueahOWIhuaUryIKIAotIy4gY2FzZSAoMSkKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MjgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAib25seSBvbmUgcmVmZXJlbmNlIGV4cGVjdGVkLCAlZCBnaXZlbi4iCittc2dzdHIgIuWPquimgeS4gOS4quW8leeUqO+8jOWNtOe7meWHuuS6hiAlZCDkuKoiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCByZWZlcmVuY2U6ICVzIgogbXNnc3RyICLml6DmlYjlvJXnlKjvvJolcyIKIAogIy4gY2FzZSAoMSk6IHdhbnQgYSB0cmVlCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTY3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWZlcmVuY2UgaXMgbm90IGEgdHJlZTogJXMiCiBtc2dzdHIgIuW8leeUqOS4jeaYr+S4gOS4quagke+8miVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwNgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDIKIG1zZ2lkICJwYXRocyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKIG1zZ3N0ciAi6Lev5b6E5LiN6IO95ZKM5YiH5o2i5YiG5pSv5ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwOSBidWlsdGluL2NoZWNrb3V0LmM6MTAxMworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDUgYnVpbHRpbi9jaGVja291dC5jOjEwNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKIG1zZ3N0ciAiJyVzJyDkuI3og73lkozliIfmjaLliIbmlK/lkIzml7bkvb/nlKgiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDE3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDIwIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDI1Ci0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAyOAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTMgYnVpbHRpbi9jaGVja291dC5jOjEwNTYgYnVpbHRpbi9jaGVja291dC5jOjEwNjEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAnJXMnIgogbXNnc3RyICInJXMnIOS4jeiDveWSjCAnJXMnIOWQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMzMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBzd2l0Y2ggYnJhbmNoIHRvIGEgbm9uLWNvbW1pdCAnJXMnIgogbXNnc3RyICLkuI3og73liIfmjaLliIbmlK/liLDkuIDkuKrpnZ7mj5DkuqQgJyVzJyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTUgYnVpbHRpbi9jaGVja291dC5jOjEwNTcgYnVpbHRpbi9jbG9uZS5jOjg5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5MSBidWlsdGluL2NoZWNrb3V0LmM6MTA5MyBidWlsdGluL2Nsb25lLmM6ODgKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTY5IGJ1aWx0aW4vcmVtb3RlLmM6MTcxCiBtc2dpZCAiYnJhbmNoIgogbXNnc3RyICLliIbmlK8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5MgogbXNnaWQgImNyZWF0ZSBhbmQgY2hlY2tvdXQgYSBuZXcgYnJhbmNoIgogbXNnc3RyICLliJvlu7rlubbmo4Dlh7rkuIDkuKrmlrDnmoTliIbmlK8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5NAogbXNnaWQgImNyZWF0ZS9yZXNldCBhbmQgY2hlY2tvdXQgYSBicmFuY2giCiBtc2dzdHIgIuWIm+W7ui/ph43nva7lubbmo4Dlh7rkuIDkuKrliIbmlK8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5NQogbXNnaWQgImNyZWF0ZSByZWZsb2cgZm9yIG5ldyBicmFuY2giCiBtc2dzdHIgIuS4uuaWsOeahOWIhuaUr+WIm+W7uuW8leeUqOaXpeW/lyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDk2CiBtc2dpZCAiZGV0YWNoIHRoZSBIRUFEIGF0IG5hbWVkIGNvbW1pdCIKIG1zZ3N0ciAi5oiQ5Li65oyH5ZCR6K+l5o+Q5Lqk55qE5YiG56a75aS05oyH6ZKIIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTcKIG1zZ2lkICJzZXQgdXBzdHJlYW0gaW5mbyBmb3IgbmV3IGJyYW5jaCIKIG1zZ3N0ciAi5Li65paw55qE5YiG5pSv6K6+572u5LiK5ri45L+h5oGvIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTkKIG1zZ2lkICJuZXcgYnJhbmNoIgogbXNnc3RyICLmlrDliIbmlK8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5OQogbXNnaWQgIm5ldyB1bnBhcmVudGVkIGJyYW5jaCIKIG1zZ3N0ciAi5paw55qE5rKh5pyJ54i25o+Q5Lqk55qE5YiG5pSvIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NAorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDAKIG1zZ2lkICJjaGVja291dCBvdXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgIuWvueWwmuacquWQiOW5tueahOaWh+S7tuajgOWHuuaIkeS7rOeahOeJiOacrCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAyCiBtc2dpZCAiY2hlY2tvdXQgdGhlaXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgIuWvueWwmuacquWQiOW5tueahOaWh+S7tuajgOWHuuS7luS7rOeahOeJiOacrCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTA0CiBtc2dpZCAiZm9yY2UgY2hlY2tvdXQgKHRocm93IGF3YXkgbG9jYWwgbW9kaWZpY2F0aW9ucykiCiBtc2dzdHIgIuW8uuWItuajgOWHuu+8iOS4ouW8g+acrOWcsOS/ruaUue+8iSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTA1CiBtc2dpZCAicGVyZm9ybSBhIDMtd2F5IG1lcmdlIHdpdGggdGhlIG5ldyBicmFuY2giCiBtc2dzdHIgIuWSjOaWsOeahOWIhuaUr+aJp+ihjOS4iei3r+WQiOW5tiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzAgYnVpbHRpbi9tZXJnZS5jOjIzMgorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDYgYnVpbHRpbi9tZXJnZS5jOjIzMgogbXNnaWQgInVwZGF0ZSBpZ25vcmVkIGZpbGVzIChkZWZhdWx0KSIKIG1zZ3N0ciAi5pu05paw5b+955Wl55qE5paH5Lu277yI6buY6K6k77yJIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MSBidWlsdGluL2xvZy5jOjEyMDggcGFyc2Utb3B0aW9ucy5oOjI0OQorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDcgYnVpbHRpbi9sb2cuYzoxMjI4IHBhcnNlLW9wdGlvbnMuaDoyNTEKIG1zZ2lkICJzdHlsZSIKIG1zZ3N0ciAi6aOO5qC8IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MgorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDgKIG1zZ2lkICJjb25mbGljdCBzdHlsZSAobWVyZ2Ugb3IgZGlmZjMpIgogbXNnc3RyICLlhrLnqoHovpPlh7rpo47moLzvvIhtZXJnZSDmiJYgZGlmZjPvvIkiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDc1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTExMQogbXNnaWQgImRvIG5vdCBsaW1pdCBwYXRoc3BlY3MgdG8gc3BhcnNlIGVudHJpZXMgb25seSIKIG1zZ3N0ciAi5a+56Lev5b6E5LiN5YGa56iA55aP5qOA5Ye655qE6ZmQ5Yi2IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3NworIzogYnVpbHRpbi9jaGVja291dC5jOjExMTMKIG1zZ2lkICJzZWNvbmQgZ3Vlc3MgJ2dpdCBjaGVja291dCBuby1zdWNoLWJyYW5jaCciCiBtc2dzdHIgIuWGjeiAheeMnOa1iydnaXQgY2hlY2tvdXQgbm8tc3VjaC1icmFuY2gnIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwMQorIzogYnVpbHRpbi9jaGVja291dC5jOjExMzYKIG1zZ2lkICItYiwgLUIgYW5kIC0tb3JwaGFuIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCiBtc2dzdHIgIi1i44CBLUIg5ZKMIC0tb3JwaGFuIOaYr+S6kuaWpeeahCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMTgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTUzCiBtc2dpZCAiLS10cmFjayBuZWVkcyBhIGJyYW5jaCBuYW1lIgogbXNnc3RyICItLXRyYWNrIOmcgOimgeS4gOS4quWIhuaUr+WQjSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMjUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYwCiBtc2dpZCAiTWlzc2luZyBicmFuY2ggbmFtZTsgdHJ5IC1iIgogbXNnc3RyICLnvLrlsJHliIbmlK/lkI3vvJvlsJ3or5UgLWIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE5NwogbXNnaWQgImludmFsaWQgcGF0aCBzcGVjaWZpY2F0aW9uIgogbXNnc3RyICLml6DmlYjnmoTot6/lvoTop4TmoLwiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTY3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTIwNAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IHVwZGF0ZSBwYXRocyBhbmQgc3dpdGNoIHRvIGJyYW5jaCAnJXMnIGF0IHRoZSBzYW1lIHRpbWUuXG4iCkBAIC0zMzk4LDUwICszNTc2LDUwIEBACiAi5LiN6IO95ZCM5pe25pu05paw6Lev5b6E5bm25YiH5o2i5Yiw5YiG5pSvJyVzJ+OAglxuIgogIuaCqOaYr+aDs+imgeajgOWHuiAnJXMnIOS9huWFtuacquiDveino+aekOS4uuaPkOS6pOS5iO+8nyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNzIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMjA5CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCBjaGVja291dDogLS1kZXRhY2ggZG9lcyBub3QgdGFrZSBhIHBhdGggYXJndW1lbnQgJyVzJyIKIG1zZ3N0ciAiZ2l0IGNoZWNrb3V077yaLS1kZXRhY2gg5LiN6IO95o6l5pS26Lev5b6E5Y+C5pWwICclcyciCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTc2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTIxMwogbXNnaWQgIiIKICJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSBhbmQgLS1tZXJnZSBhcmUgaW5jb21wYXRpYmxlIHdoZW5cbiIKICJjaGVja2luZyBvdXQgb2YgdGhlIGluZGV4LiIKIG1zZ3N0ciAiIgogImdpdCBjaGVja291dO+8muWcqOS7jue0ouW8leajgOWHuuaXtu+8jC0tb3Vycy8tLXRoZWlyc+OAgS0tZm9yY2Ug5ZKMIC0tbWVyZ2Ug5LiN5YW85a6544CCIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjUKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyNgogbXNnaWQgIiIKICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstaV0gWy1uXSBbLXFdIFstZSA8cGF0dGVybj5dIFsteCB8IC1YXSBbLS1dIDxwYXRocz4uLi4iCiBtc2dzdHIgIiIKICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstaV0gWy1uXSBbLXFdIFstZSA85qih5byPPl0gWy14IHwgLVhdIFstLV0gPOi3r+W+hD4uLi4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyOQorIzogYnVpbHRpbi9jbGVhbi5jOjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nICVzXG4iCiBtc2dzdHIgIuato+WIoOmZpCAlc1xuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MzAKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMQogIywgYy1mb3JtYXQKIG1zZ2lkICJXb3VsZCByZW1vdmUgJXNcbiIKIG1zZ3N0ciAi5bCG5Yig6ZmkICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzozMQorIzogYnVpbHRpbi9jbGVhbi5jOjMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNraXBwaW5nIHJlcG9zaXRvcnkgJXNcbiIKIG1zZ3N0ciAi5b+955Wl54mI5pys5bqTICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzozMgorIzogYnVpbHRpbi9jbGVhbi5jOjMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvdWxkIHNraXAgcmVwb3NpdG9yeSAlc1xuIgogbXNnc3RyICLlsIblv73nlaXniYjmnKzlupMgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjMzCisjOiBidWlsdGluL2NsZWFuLmM6MzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlbW92ZSAlcyIKIG1zZ3N0ciAi5peg5rOV5Yig6ZmkICVzIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjkzCisjOiBidWlsdGluL2NsZWFuLmM6Mjk0CiBtc2dpZCAiIgogIlByb21wdCBoZWxwOlxuIgogIjEgICAgICAgICAgLSBzZWxlY3QgYSBudW1iZXJlZCBpdGVtXG4iCkBAIC0zNDUzLDcgKzM2MzEsNyBAQAogImZvbyAgICAgICAgLSDpgJrov4fmoIfpopjpgInmi6nkuIDkuKrpgInpoblcbiIKICIgICAgICAgICAgIC0g77yI56m677yJ5LuA5LmI5Lmf5LiN6YCJ5oupIgogCi0jOiBidWlsdGluL2NsZWFuLmM6Mjk3CisjOiBidWlsdGluL2NsZWFuLmM6Mjk4CiBtc2dpZCAiIgogIlByb21wdCBoZWxwOlxuIgogIjEgICAgICAgICAgLSBzZWxlY3QgYSBzaW5nbGUgaXRlbVxuIgpAQCAtMzQ3MywzNSArMzY1MSwzNSBAQAogIiogICAgICAgICAgLSDpgInmi6nmiYDmnInpgInpoblcbiIKICIgICAgICAgICAgIC0g77yI56m677yJ57uT5p2f6YCJ5oupIgogCi0jOiBidWlsdGluL2NsZWFuLmM6NTE1CisjOiBidWlsdGluL2NsZWFuLmM6NTE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkh1aCAoJXMpPyIKIG1zZ3N0ciAi5Zev77yIJXPvvInvvJ8iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo2NTgKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2NTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW5wdXQgaWdub3JlIHBhdHRlcm5zPj4gIgogbXNnc3RyICLovpPlhaXmqKHniYjku6XmjpLpmaTmnaHnm64+PiAiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo2OTUKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2OTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiV0FSTklORzogQ2Fubm90IGZpbmQgaXRlbXMgbWF0Y2hlZCBieTogJXMiCiBtc2dzdHIgIuitpuWRiu+8muaXoOazleaJvuWIsOWSjCAlcyDljLnphY3nmoTmnaHnm64iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo3MTYKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3MTcKIG1zZ2lkICJTZWxlY3QgaXRlbXMgdG8gZGVsZXRlIgogbXNnc3RyICLpgInmi6nopoHliKDpmaTnmoTmnaHnm64iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo3NTYKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVtb3ZlICVzPyAiCiBtc2dzdHIgIuWIoOmZpCAlc++8nyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjc4MQorIzogYnVpbHRpbi9jbGVhbi5jOjc4MgogbXNnaWQgIkJ5ZS4iCiBtc2dzdHIgIuWGjeingeOAgiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjc4OQorIzogYnVpbHRpbi9jbGVhbi5jOjc5MAogbXNnaWQgIiIKICJjbGVhbiAgICAgICAgICAgICAgIC0gc3RhcnQgY2xlYW5pbmdcbiIKICJmaWx0ZXIgYnkgcGF0dGVybiAgIC0gZXhjbHVkZSBpdGVtcyBmcm9tIGRlbGV0aW9uXG4iCkBAIC0zNTE5LDIxICszNjk3LDIxIEBACiAiaGVscCAgICAgICAgICAgICAgICAtIOaYvuekuuacrOW4ruWKqVxuIgogIj8gICAgICAgICAgICAgICAgICAgLSDmmL7npLrlpoLkvZXlnKjmj5DnpLrnrKbkuIvpgInmi6nnmoTluK7liqkiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo4MTYKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4MTcKIG1zZ2lkICIqKiogQ29tbWFuZHMgKioqIgogbXNnc3RyICIqKiog5ZG95LukICoqKiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjgxNworIzogYnVpbHRpbi9jbGVhbi5jOjgxOAogbXNnaWQgIldoYXQgbm93IgogbXNnc3RyICLor7fpgInmi6kiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo4MjUKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4MjYKIG1zZ2lkICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtOiIKIG1zZ2lkX3BsdXJhbCAiV291bGQgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgaXRlbXM6IgogbXNnc3RyWzBdICLlsIbliKDpmaTlpoLkuIvmnaHnm67vvJoiCiBtc2dzdHJbMV0gIuWwhuWIoOmZpOWmguS4i+adoeebru+8miIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjg0MgorIzogYnVpbHRpbi9jbGVhbi5jOjg0MwogbXNnaWQgIk5vIG1vcmUgZmlsZXMgdG8gY2xlYW4sIGV4aXRpbmcuIgogbXNnc3RyICLmsqHmnInopoHmuIXnkIbnmoTmlofku7bvvIzpgIDlh7rjgIIiCiAKQEAgLTM1NTMsOCArMzczMSw4IEBACiBtc2dpZCAicmVtb3ZlIHdob2xlIGRpcmVjdG9yaWVzIgogbXNnc3RyICLliKDpmaTmlbTkuKrnm67lvZUiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzo4ODAgYnVpbHRpbi9kZXNjcmliZS5jOjQyMCBidWlsdGluL2dyZXAuYzo3MTYKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMgYnVpbHRpbi9uYW1lLXJldi5jOjMxNSBidWlsdGluL3Nob3ctcmVmLmM6MTg2CisjOiBidWlsdGluL2NsZWFuLmM6ODgwIGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjAgYnVpbHRpbi9ncmVwLmM6NzE4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgzIGJ1aWx0aW4vbmFtZS1yZXYuYzozMTUgYnVpbHRpbi9zaG93LXJlZi5jOjE4NQogbXNnaWQgInBhdHRlcm4iCiBtc2dzdHIgIuaooeW8jyIKIApAQCAtMzU5Miw4ICszNzcwLDggQEAKIG1zZ2lkICJnaXQgY2xvbmUgW29wdGlvbnNdIFstLV0gPHJlcG8+IFs8ZGlyPl0iCiBtc2dzdHIgImdpdCBjbG9uZSBb6YCJ6aG5XSBbLS1dIDzniYjmnKzlupM+IFs86Lev5b6EPl0iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NCBidWlsdGluL2ZldGNoLmM6ODIgYnVpbHRpbi9tZXJnZS5jOjIyOQotIzogYnVpbHRpbi9wdXNoLmM6NDYyCisjOiBidWlsdGluL2Nsb25lLmM6NjQgYnVpbHRpbi9mZXRjaC5jOjk2IGJ1aWx0aW4vbWVyZ2UuYzoyMjkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3NAogbXNnaWQgImZvcmNlIHByb2dyZXNzIHJlcG9ydGluZyIKIG1zZ3N0ciAi5by65Yi25pi+56S66L+b5bqm5oql5ZGKIgogCkBAIC0zNjA1LDEyMyArMzc4MywxMjMgQEAKIG1zZ2lkICJjcmVhdGUgYSBiYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIuWIm+W7uuS4gOS4quijuOeJiOacrOW6kyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjcyCisjOiBidWlsdGluL2Nsb25lLmM6NzEKIG1zZ2lkICJjcmVhdGUgYSBtaXJyb3IgcmVwb3NpdG9yeSAoaW1wbGllcyBiYXJlKSIKIG1zZ3N0ciAi5Yib5bu65LiA5Liq6ZWc5YOP54mI5pys5bqT77yI5Lmf5piv6KO454mI5pys5bqT77yJIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3MwogbXNnaWQgInRvIGNsb25lIGZyb20gYSBsb2NhbCByZXBvc2l0b3J5IgogbXNnc3RyICLku47mnKzlnLDniYjmnKzlupPlhYvpmoYiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NgorIzogYnVpbHRpbi9jbG9uZS5jOjc1CiBtc2dpZCAiZG9uJ3QgdXNlIGxvY2FsIGhhcmRsaW5rcywgYWx3YXlzIGNvcHkiCiBtc2dzdHIgIuS4jeS9v+eUqOacrOWcsOehrOmTvuaOpe+8jOWni+e7iOWkjeWItiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc4CisjOiBidWlsdGluL2Nsb25lLmM6NzcKIG1zZ2lkICJzZXR1cCBhcyBzaGFyZWQgcmVwb3NpdG9yeSIKIG1zZ3N0ciAi6K6+572u5Li65YWx5Lqr54mI5pys5bqTIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODAgYnVpbHRpbi9jbG9uZS5jOjgyCisjOiBidWlsdGluL2Nsb25lLmM6NzkgYnVpbHRpbi9jbG9uZS5jOjgxCiBtc2dpZCAiaW5pdGlhbGl6ZSBzdWJtb2R1bGVzIGluIHRoZSBjbG9uZSIKIG1zZ3N0ciAi5Zyo5YWL6ZqG5pe25Yid5aeL5YyW5a2Q5qih57uEIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODMgYnVpbHRpbi9pbml0LWRiLmM6NDg1CisjOiBidWlsdGluL2Nsb25lLmM6ODIgYnVpbHRpbi9pbml0LWRiLmM6NDg1CiBtc2dpZCAidGVtcGxhdGUtZGlyZWN0b3J5IgogbXNnc3RyICLmqKHmnb/nm67lvZUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NCBidWlsdGluL2luaXQtZGIuYzo0ODYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MyBidWlsdGluL2luaXQtZGIuYzo0ODYKIG1zZ2lkICJkaXJlY3RvcnkgZnJvbSB3aGljaCB0ZW1wbGF0ZXMgd2lsbCBiZSB1c2VkIgogbXNnc3RyICLmqKHmnb/nm67lvZXlsIbooqvkvb/nlKgiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NgorIzogYnVpbHRpbi9jbG9uZS5jOjg1CiBtc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIuW8leeUqOeJiOacrOW6kyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg3IGJ1aWx0aW4vY29sdW1uLmM6MjYgYnVpbHRpbi9tZXJnZS1maWxlLmM6NDQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NiBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0CiBtc2dpZCAibmFtZSIKIG1zZ3N0ciAi5ZCN56ewIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NwogbXNnaWQgInVzZSA8bmFtZT4gaW5zdGVhZCBvZiAnb3JpZ2luJyB0byB0cmFjayB1cHN0cmVhbSIKIG1zZ3N0ciAi5L2/55SoPOWQjeensD7ogIzkuI3mmK8gJ29yaWdpbicg5Y676Lef6Liq5LiK5ri4IgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4OQogbXNnaWQgImNoZWNrb3V0IDxicmFuY2g+IGluc3RlYWQgb2YgdGhlIHJlbW90ZSdzIEhFQUQiCiBtc2dzdHIgIuajgOWHujzliIbmlK8+6ICM5LiN5piv6L+c56iLSEVBRCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkyCisjOiBidWlsdGluL2Nsb25lLmM6OTEKIG1zZ2lkICJwYXRoIHRvIGdpdC11cGxvYWQtcGFjayBvbiB0aGUgcmVtb3RlIgogbXNnc3RyICLov5znqIsgZ2l0LXVwbG9hZC1wYWNrIOi3r+W+hCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkzIGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MiBidWlsdGluL2ZldGNoLmM6OTcgYnVpbHRpbi9ncmVwLmM6NjYzCiBtc2dpZCAiZGVwdGgiCiBtc2dzdHIgIua3seW6piIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk0CisjOiBidWlsdGluL2Nsb25lLmM6OTMKIG1zZ2lkICJjcmVhdGUgYSBzaGFsbG93IGNsb25lIG9mIHRoYXQgZGVwdGgiCiBtc2dzdHIgIuWIm+W7uuS4gOS4quaMh+Wumua3seW6pueahOa1heWFi+mahiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk2CisjOiBidWlsdGluL2Nsb25lLmM6OTUKIG1zZ2lkICJjbG9uZSBvbmx5IG9uZSBicmFuY2gsIEhFQUQgb3IgLS1icmFuY2giCiBtc2dzdHIgIuWPquWFi+mahuS4gOS4quWIhuaUr+OAgUhFQUQg5oiWIC0tYnJhbmNoIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTcgYnVpbHRpbi9pbml0LWRiLmM6NDk0CisjOiBidWlsdGluL2Nsb25lLmM6OTYgYnVpbHRpbi9pbml0LWRiLmM6NDk0CiBtc2dpZCAiZ2l0ZGlyIgogbXNnc3RyICJnaXTnm67lvZUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5OCBidWlsdGluL2luaXQtZGIuYzo0OTUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NyBidWlsdGluL2luaXQtZGIuYzo0OTUKIG1zZ2lkICJzZXBhcmF0ZSBnaXQgZGlyIGZyb20gd29ya2luZyB0cmVlIgogbXNnc3RyICJnaXTnm67lvZXlkozlt6XkvZzljLrliIbnprsiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5OQorIzogYnVpbHRpbi9jbG9uZS5jOjk4CiBtc2dpZCAia2V5PXZhbHVlIgogbXNnc3RyICJrZXk9dmFsdWUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzoxMDAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5OQogbXNnaWQgInNldCBjb25maWcgaW5zaWRlIHRoZSBuZXcgcmVwb3NpdG9yeSIKIG1zZ3N0ciAi5Zyo5paw54mI5pys5bqT5Lit6K6+572u6YWN572u5L+h5oGvIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MjUzCisjOiBidWlsdGluL2Nsb25lLmM6MjUyCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5ICclcycgaXMgbm90IGEgbG9jYWwgcmVwb3NpdG9yeS4iCiBtc2dzdHIgIuW8leeUqOeJiOacrOW6kyAnJXMnIOS4jeaYr+S4gOS4quacrOWcsOeJiOacrOW6k+OAgiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMxNgorIzogYnVpbHRpbi9jbG9uZS5jOjMxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGRpcmVjdG9yeSAnJXMnIgogbXNnc3RyICLml6Dms5XliJvlu7rnm67lvZUgJyVzJyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMxOCBidWlsdGluL2RpZmYuYzo3NworIzogYnVpbHRpbi9jbG9uZS5jOjMxNyBidWlsdGluL2RpZmYuYzo3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc3RhdCAnJXMnIgogbXNnc3RyICLml6Dms5XmnprkuL4gJyVzJyDnirbmgIEiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMjAKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgZXhpc3RzIGFuZCBpcyBub3QgYSBkaXJlY3RvcnkiCiBtc2dzdHIgIiVzIOWtmOWcqOS4lOS4jeaYr+S4gOS4quebruW9lSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMzNAorIzogYnVpbHRpbi9jbG9uZS5jOjMzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc3RhdCAlc1xuIgogbXNnc3RyICLml6Dms5XmnprkuL4gJXMg54q25oCBXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNTYKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBsaW5rICclcyciCiBtc2dzdHIgIuaXoOazleWIm+W7uumTvuaOpSAnJXMnIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzYwCisjOiBidWlsdGluL2Nsb25lLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjb3B5IGZpbGUgdG8gJyVzJyIKIG1zZ3N0ciAi5peg5rOV5ou36LSd5paH5Lu26IezICclcyciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozODMKKyM6IGJ1aWx0aW4vY2xvbmUuYzozODIgYnVpbHRpbi9jbG9uZS5jOjU1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJkb25lLlxuIgogbXNnc3RyICLlrozmiJDjgIJcbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM5NgorIzogYnVpbHRpbi9jbG9uZS5jOjM5NQogbXNnaWQgIiIKICJDbG9uZSBzdWNjZWVkZWQsIGJ1dCBjaGVja291dCBmYWlsZWQuXG4iCiAiWW91IGNhbiBpbnNwZWN0IHdoYXQgd2FzIGNoZWNrZWQgb3V0IHdpdGggJ2dpdCBzdGF0dXMnXG4iCkBAIC0zNzMxLDEwNCArMzkwOSw5OSBAQAogIuaCqOWPr+S7pemAmui/hyAnZ2l0IHN0YXR1cycg5qOA5p+l5ZOq5Lqb5bey6KKr5qOA5Ye677yM54S25ZCO5L2/55So5ZG95LukXG4iCiAiJ2dpdCBjaGVja291dCAtZiBIRUFEJyDph43or5VcbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjQ3NQorIzogYnVpbHRpbi9jbG9uZS5jOjQ3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmluZCByZW1vdGUgYnJhbmNoICVzIHRvIGNsb25lLiIKIG1zZ3N0ciAi5LiN6IO95Y+R546w6KaB5YWL6ZqG55qE6L+c56iL5YiG5pSvICVz44CCIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NTU1CisjOiBidWlsdGluL2Nsb25lLmM6NTU0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoZWNraW5nIGNvbm5lY3Rpdml0eS4uLiAiCiBtc2dzdHIgIuajgOafpei/nuaOpS4uLiAiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo1NTgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTcKIG1zZ2lkICJyZW1vdGUgZGlkIG5vdCBzZW5kIGFsbCBuZWNlc3Nhcnkgb2JqZWN0cyIKIG1zZ3N0ciAi6L+c56iL5rKh5pyJ5Y+R6YCB5omA5pyJ5b+F6aG755qE5a+56LGhIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NTYwCi0jLCBjLWZvcm1hdAotbXNnaWQgImRvbmVcbiIKLW1zZ3N0ciAi5a6M5oiQXG4iCi0KLSM6IGJ1aWx0aW4vY2xvbmUuYzo2MjEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2MjAKIG1zZ2lkICJyZW1vdGUgSEVBRCByZWZlcnMgdG8gbm9uZXhpc3RlbnQgcmVmLCB1bmFibGUgdG8gY2hlY2tvdXQuXG4iCiBtc2dzdHIgIui/nOeoiyBIRUFEIOaMh+WQkeS4gOS4quS4jeWtmOWcqOeahOW8leeUqO+8jOaXoOazleajgOWHuuOAglxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjUyCisjOiBidWlsdGluL2Nsb25lLmM6NjUxCiBtc2dpZCAidW5hYmxlIHRvIGNoZWNrb3V0IHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAi5LiN6IO95qOA5Ye65bel5L2c5Yy6IgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzYwCisjOiBidWlsdGluL2Nsb25lLmM6NzU5CiBtc2dpZCAiVG9vIG1hbnkgYXJndW1lbnRzLiIKIG1zZ3N0ciAi5aSq5aSa5Y+C5pWw44CCIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzY0CisjOiBidWlsdGluL2Nsb25lLmM6NzYzCiBtc2dpZCAiWW91IG11c3Qgc3BlY2lmeSBhIHJlcG9zaXRvcnkgdG8gY2xvbmUuIgogbXNnc3RyICLmgqjlv4XpobvmjIflrprkuIDkuKrniYjmnKzlupPmnaXlhYvpmobjgIIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NzUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiLS1iYXJlIGFuZCAtLW9yaWdpbiAlcyBvcHRpb25zIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICItLWJhcmUg5ZKMIC0tb3JpZ2luICVzIOmAiemhueS4jeWFvOWuueOAgiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc3OAorIzogYnVpbHRpbi9jbG9uZS5jOjc3NwogbXNnaWQgIi0tYmFyZSBhbmQgLS1zZXBhcmF0ZS1naXQtZGlyIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICItLWJhcmUg5ZKMIC0tc2VwYXJhdGUtZ2l0LWRpciDpgInpobnkuI3lhbzlrrnjgIIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OTEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTAKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVwb3NpdG9yeSAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICLniYjmnKzlupMgJyVzJyDkuI3lrZjlnKgiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OTYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTUKIG1zZ2lkICItLWRlcHRoIGlzIGlnbm9yZWQgaW4gbG9jYWwgY2xvbmVzOyB1c2UgZmlsZTovLyBpbnN0ZWFkLiIKIG1zZ3N0ciAiLS1kZXB0aCDlnKjmnKzlnLDlhYvpmobooqvlv73nlaXvvIzmlLnkuLogZmlsZTovLyDljY/orq7or5Xor5XjgIIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OTgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTcKIG1zZ2lkICItLWxvY2FsIGlzIGlnbm9yZWQiCiBtc2dzdHIgIi0tbG9jYWwg6KKr5b+955WlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODA4CisjOiBidWlsdGluL2Nsb25lLmM6ODA3CiAjLCBjLWZvcm1hdAogbXNnaWQgImRlc3RpbmF0aW9uIHBhdGggJyVzJyBhbHJlYWR5IGV4aXN0cyBhbmQgaXMgbm90IGFuIGVtcHR5IGRpcmVjdG9yeS4iCiBtc2dzdHIgIuebruagh+i3r+W+hCAnJXMnIOW3sue7j+WtmOWcqO+8jOW5tuS4lOS4jeaYr+S4gOS4quepuuebruW9leOAgiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgxOAorIzogYnVpbHRpbi9jbG9uZS5jOjgxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJ3b3JraW5nIHRyZWUgJyVzJyBhbHJlYWR5IGV4aXN0cy4iCiBtc2dzdHIgIuW3peS9nOWMuiAnJXMnIOW3sue7j+WtmOWcqOOAgiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgzMSBidWlsdGluL2Nsb25lLmM6ODQzCisjOiBidWlsdGluL2Nsb25lLmM6ODMwIGJ1aWx0aW4vY2xvbmUuYzo4NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSBsZWFkaW5nIGRpcmVjdG9yaWVzIG9mICclcyciCiBtc2dzdHIgIuS4jeiDveS4uiAnJXMnIOWIm+W7uuWFiOWvvOebruW9lSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgzNAorIzogYnVpbHRpbi9jbG9uZS5jOjgzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIHdvcmsgdHJlZSBkaXIgJyVzJy4iCiBtc2dzdHIgIuS4jeiDveS4uiAnJXMnIOWIm+W7uuW3peS9nOWMuuebruW9leOAgiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg1MworIzogYnVpbHRpbi9jbG9uZS5jOjg1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gYmFyZSByZXBvc2l0b3J5ICclcycuLi5cbiIKIG1zZ3N0ciAi5YWL6ZqG5Yiw6KO454mI5pys5bqTICclcycuLi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg1NQorIzogYnVpbHRpbi9jbG9uZS5jOjg1NAogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gJyVzJy4uLlxuIgogbXNnc3RyICLmraPlhYvpmobliLAgJyVzJy4uLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODkwCisjOiBidWlsdGluL2Nsb25lLmM6ODg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGNsb25lICVzIgogbXNnc3RyICLkuI3nn6XpgZPlpoLkvZXlhYvpmoYgJXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NDIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MzkgYnVpbHRpbi9jbG9uZS5jOjk0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdGUgYnJhbmNoICVzIG5vdCBmb3VuZCBpbiB1cHN0cmVhbSAlcyIKIG1zZ3N0ciAi6L+c56iL5YiG5pSvICVzIOWcqOS4iua4uCAlcyDmnKrlj5HnjrAiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NDkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NTAKIG1zZ2lkICJZb3UgYXBwZWFyIHRvIGhhdmUgY2xvbmVkIGFuIGVtcHR5IHJlcG9zaXRvcnkuIgogbXNnc3RyICLmgqjkvLzkuY7lhYvpmobkuobkuIDkuKrnqbrniYjmnKzlupPjgIIiCiAKQEAgLTM4NjQsMTUgKzQwMzcsMTUgQEAKIG1zZ2lkICItLWNvbW1hbmQgbXVzdCBiZSB0aGUgZmlyc3QgYXJndW1lbnQiCiBtc2dzdHIgIi0tY29tbWFuZCDlv4XpobvmmK/nrKzkuIDkuKrlj4LmlbAiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzYKIG1zZ2lkICJnaXQgY29tbWl0IFtvcHRpb25zXSBbLS1dIDxwYXRoc3BlYz4uLi4iCi1tc2dzdHIgImdpdCBjb21taXQgW+mAiemhuV0gWy0tXSA86Lev5b6E5Yy56YWNPi4uLiIKK21zZ3N0ciAiZ2l0IGNvbW1pdCBb6YCJ6aG5XSBbLS1dIDzot6/lvoTop4TliJk+Li4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQwCisjOiBidWlsdGluL2NvbW1pdC5jOjQxCiBtc2dpZCAiZ2l0IHN0YXR1cyBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgotbXNnc3RyICJnaXQgc3RhdHVzIFvpgInpobldIFstLV0gPOi3r+W+hOWMuemFjT4uLi4iCittc2dzdHIgImdpdCBzdGF0dXMgW+mAiemhuV0gWy0tXSA86Lev5b6E6KeE5YiZPi4uLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0NQorIzogYnVpbHRpbi9jb21taXQuYzo0NgogbXNnaWQgIiIKICJZb3VyIG5hbWUgYW5kIGVtYWlsIGFkZHJlc3Mgd2VyZSBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkgYmFzZWRcbiIKICJvbiB5b3VyIHVzZXJuYW1lIGFuZCBob3N0bmFtZS4gUGxlYXNlIGNoZWNrIHRoYXQgdGhleSBhcmUgYWNjdXJhdGUuXG4iCkBAIC0zODk1LDcgKzQwNjgsNyBAQAogIlxuIgogIiAgICBnaXQgY29tbWl0IC0tYW1lbmQgLS1yZXNldC1hdXRob3JcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NworIzogYnVpbHRpbi9jb21taXQuYzo1OAogbXNnaWQgIiIKICJZb3UgYXNrZWQgdG8gYW1lbmQgdGhlIG1vc3QgcmVjZW50IGNvbW1pdCwgYnV0IGRvaW5nIHNvIHdvdWxkIG1ha2VcbiIKICJpdCBlbXB0eS4gWW91IGNhbiByZXBlYXQgeW91ciBjb21tYW5kIHdpdGggLS1hbGxvdy1lbXB0eSwgb3IgeW91IGNhblxuIgpAQCAtMzkwNCw3ICs0MDc3LDcgQEAKICLmgqjopoHkv67ooaXmnIDov5HnmoTmj5DkuqTvvIzkvYbov5nkuYjlgZrkvJrorqnlroPmiJDkuLrnqbrmj5DkuqTjgILmgqjlj6/ku6Xph43lpI3mgqjnmoTlkb3ku6TlubbluKbkuIpcbiIKICItLWFsbG93LWVtcHR5IOmAiemhue+8jOaIluiAheaCqOWPr+eUqOWRveS7pCBcImdpdCByZXNldCBIRUFEXlwiIOaVtOS4quWIoOmZpOivpeaPkOS6pOOAglxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYyCisjOiBidWlsdGluL2NvbW1pdC5jOjYzCiBtc2dpZCAiIgogIlRoZSBwcmV2aW91cyBjaGVycnktcGljayBpcyBub3cgZW1wdHksIHBvc3NpYmx5IGR1ZSB0byBjb25mbGljdCByZXNvbHV0aW9uLlxuIgogIklmIHlvdSB3aXNoIHRvIGNvbW1pdCBpdCBhbnl3YXksIHVzZTpcbiIKQEAgLTM5MTgsMTEgKzQwOTEsMTEgQEAKICIgICAgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5XG4iCiAiXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzAKIG1zZ2lkICJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIKIG1zZ3N0ciAi5ZCm5YiZ77yM6K+35L2/55So5ZG95LukICdnaXQgcmVzZXQnXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzMKIG1zZ2lkICIiCiAiSWYgeW91IHdpc2ggdG8gc2tpcCB0aGlzIGNvbW1pdCwgdXNlOlxuIgogIlxuIgpAQCAtMzkzOCw5MyArNDExMSw5MyBAQAogIueEtuWQjuaJp+ihjCBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIg57un57ut5a+55YW25L2Z5o+Q5Lqk5omn6KGM5ouj6YCJXG4iCiAi5pON5L2c44CCXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6Mjc5CisjOiBidWlsdGluL2NvbW1pdC5jOjI4NwogbXNnaWQgImZhaWxlZCB0byB1bnBhY2sgSEVBRCB0cmVlIG9iamVjdCIKIG1zZ3N0ciAi5peg5rOV6Kej5YyFIEhFQUQg5qCR5a+56LGhIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMyMQorIzogYnVpbHRpbi9jb21taXQuYzozMjkKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRlbXBvcmFyeSBpbmRleCIKIG1zZ3N0ciAi5LiN6IO95Yib5bu65Li05pe257Si5byVIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMyNworIzogYnVpbHRpbi9jb21taXQuYzozMzUKIG1zZ2lkICJpbnRlcmFjdGl2ZSBhZGQgZmFpbGVkIgogbXNnc3RyICLkuqTkupLlvI/mt7vliqDlpLHotKUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzYwIGJ1aWx0aW4vY29tbWl0LmM6MzgxIGJ1aWx0aW4vY29tbWl0LmM6NDMxCisjOiBidWlsdGluL2NvbW1pdC5jOjM2OCBidWlsdGluL2NvbW1pdC5jOjM4OSBidWlsdGluL2NvbW1pdC5jOjQzOQogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBuZXdfaW5kZXggZmlsZSIKIG1zZ3N0ciAi5peg5rOV5YaZIG5ld19pbmRleCDmlofku7YiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDEyCisjOiBidWlsdGluL2NvbW1pdC5jOjQyMAogbXNnaWQgImNhbm5vdCBkbyBhIHBhcnRpYWwgY29tbWl0IGR1cmluZyBhIG1lcmdlLiIKIG1zZ3N0ciAi5Zyo5ZCI5bm26L+H56iL5Lit5LiN6IO95YGa6YOo5YiG5o+Q5Lqk44CCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQxNAorIzogYnVpbHRpbi9jb21taXQuYzo0MjIKIG1zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBjaGVycnktcGljay4iCiBtc2dzdHIgIuWcqOaLo+mAiei/h+eoi+S4reS4jeiDveWBmumDqOWIhuaPkOS6pOOAgiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MjQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDMyCiBtc2dpZCAiY2Fubm90IHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICLml6Dms5Xor7vlj5bntKLlvJUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDQ0CisjOiBidWlsdGluL2NvbW1pdC5jOjQ1MgogbXNnaWQgInVuYWJsZSB0byB3cml0ZSB0ZW1wb3JhcnkgaW5kZXggZmlsZSIKIG1zZ3N0ciAi5peg5rOV5YaZ5Li05pe257Si5byV5paH5Lu2IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjUzNSBidWlsdGluL2NvbW1pdC5jOjU0MQorIzogYnVpbHRpbi9jb21taXQuYzo1NDMgYnVpbHRpbi9jb21taXQuYzo1NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBjb21taXQ6ICVzIgogbXNnc3RyICLml6DmlYjnmoTmj5DkuqTvvJolcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NjMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTcxCiBtc2dpZCAibWFsZm9ybWVkIC0tYXV0aG9yIHBhcmFtZXRlciIKIG1zZ3N0ciAi6Z2e5rOV55qEIC0tYXV0aG9yIOWPguaVsCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1ODMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTkxCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBpZGVudCBzdHJpbmc6ICclcyciCiBtc2dzdHIgIumdnuazleeahOi6q+S7veWtl+espuS4su+8miclcyciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjIxIGJ1aWx0aW4vY29tbWl0LmM6NjU0IGJ1aWx0aW4vY29tbWl0LmM6OTgyCisjOiBidWlsdGluL2NvbW1pdC5jOjYzMCBidWlsdGluL2NvbW1pdC5jOjY2MyBidWlsdGluL2NvbW1pdC5jOjEwMDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGxvb2t1cCBjb21taXQgJXMiCiBtc2dzdHIgIuS4jeiDveafpeivouaPkOS6pCAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MzMgYnVpbHRpbi9zaG9ydGxvZy5jOjI3MQorIzogYnVpbHRpbi9jb21taXQuYzo2NDIgYnVpbHRpbi9zaG9ydGxvZy5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICIocmVhZGluZyBsb2cgbWVzc2FnZSBmcm9tIHN0YW5kYXJkIGlucHV0KVxuIgogbXNnc3RyICLvvIjmraPku47moIflh4bovpPlhaXkuK3or7vlj5bml6Xlv5fkv6Hmga/vvIlcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgbG9nIGZyb20gc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgIuS4jeiDveS7juagh+WHhui+k+WFpeS4reivu+WPluaXpeW/l+S/oeaBryIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MzkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmaWxlICclcyciCiBtc2dzdHIgIuS4jeiDveivu+WPluaXpeW/l+aWh+S7tiAnJXMnIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY0NQorIzogYnVpbHRpbi9jb21taXQuYzo2NTQKIG1zZ2lkICJjb21taXQgaGFzIGVtcHR5IG1lc3NhZ2UiCiBtc2dzdHIgIuaPkOS6pOivtOaYjuS4uuepuiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjcwCiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTVNHIgogbXNnc3RyICLkuI3og73or7vlj5YgTUVSR0VfTVNHIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY2NQorIzogYnVpbHRpbi9jb21taXQuYzo2NzQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBTUVVBU0hfTVNHIgogbXNnc3RyICLkuI3og73or7vlj5YgU1FVQVNIX01TRyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NjkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Njc4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkICclcyciCiBtc2dzdHIgIuS4jeiDveivu+WPliAnJXMnIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjczMAorIzogYnVpbHRpbi9jb21taXQuYzo3NDkKIG1zZ2lkICJjb3VsZCBub3Qgd3JpdGUgY29tbWl0IHRlbXBsYXRlIgogbXNnc3RyICLkuI3og73lhpnmj5DkuqTmqKHniYgiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzQxCisjOiBidWlsdGluL2NvbW1pdC5jOjc2MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC00MDM4LDcgKzQyMTEsNyBAQAogIlx0JXNcbiIKICLnhLblkI7ph43or5XjgIJcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NDYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzY1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTQwNTIsNyArNDIyNSw3IEBACiAiXHQlc1xuIgogIueEtuWQjumHjeivleOAglxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc1OAorIzogYnVpbHRpbi9jb21taXQuYzo3NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKQEAgLTQwNjEsNyArNDIzNCw3IEBACiAi6K+35Li65oKo55qE5Y+Y5pu06L6T5YWl5o+Q5Lqk6K+05piO44CC5LulICclYycg5byA5aeL55qE6KGM5bCG6KKr5b+955Wl77yM6ICM5LiA5Liq56m655qE5o+Q5LqkXG4iCiAi6K+05piO5bCG5Lya57uI5q2i5o+Q5Lqk44CCXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzYzCisjOiBidWlsdGluL2NvbW1pdC5jOjc4MgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgpAQCAtNDA3MiwzNTUgKzQyNDUsMzU1IEBACiAi5Lmf5Y+v5Lul5Yig6Zmk5a6D5Lus44CC5LiA5Liq56m655qE5o+Q5Lqk6K+05piO5bCG5Lya57uI5q2i5o+Q5Lqk44CCXG4iCiAKICMgIOivkeiAhe+8muS4uuS/neivgeWcqOi+k+WHuuS4reWvuem9kO+8jOazqOaEj+iwg+aVtOWPpeS4reepuuagvO+8gQotIzogYnVpbHRpbi9jb21taXQuYzo3NzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Nzk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzQXV0aG9yOiAgICAlcyIKIG1zZ3N0ciAiJXPkvZzogIXvvJogICAgICVzIgogCiAjICDor5HogIXvvJrkuLrkv53or4HlnKjovpPlh7rkuK3lr7npvZDvvIzms6jmhI/osIPmlbTlj6XkuK3nqbrmoLzvvIEKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzgzCisjOiBidWlsdGluL2NvbW1pdC5jOjgwMgogIywgYy1mb3JtYXQKIG1zZ2lkICIlc0NvbW1pdHRlcjogJXMiCiBtc2dzdHIgIiVz5o+Q5Lqk6ICF77yaICAgJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODAzCisjOiBidWlsdGluL2NvbW1pdC5jOjgyMgogbXNnaWQgIkNhbm5vdCByZWFkIGluZGV4IgogbXNnc3RyICLml6Dms5Xor7vlj5bntKLlvJUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODQ1CisjOiBidWlsdGluL2NvbW1pdC5jOjg2NQogbXNnaWQgIkVycm9yIGJ1aWxkaW5nIHRyZWVzIgogbXNnc3RyICLml6Dms5XliJvlu7rmoJHlr7nosaEiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODYwIGJ1aWx0aW4vdGFnLmM6MzU5CisjOiBidWlsdGluL2NvbW1pdC5jOjg4MCBidWlsdGluL3RhZy5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJQbGVhc2Ugc3VwcGx5IHRoZSBtZXNzYWdlIHVzaW5nIGVpdGhlciAtbSBvciAtRiBvcHRpb24uXG4iCiBtc2dzdHIgIuivt+S9v+eUqCAtbSDmiJYgLUYg6YCJ6aG55o+Q5L6b5o+Q5Lqk6K+05piO44CCXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTU3CisjOiBidWlsdGluL2NvbW1pdC5jOjk4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBleGlzdGluZyBhdXRob3IgZm91bmQgd2l0aCAnJXMnIgogbXNnc3RyICLmsqHmnInmib7liLDljLnphY0gJyVzJyDnmoTkvZzogIUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTcyIGJ1aWx0aW4vY29tbWl0LmM6MTIwOAorIzogYnVpbHRpbi9jb21taXQuYzo5OTcgYnVpbHRpbi9jb21taXQuYzoxMjM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgdW50cmFja2VkIGZpbGVzIG1vZGUgJyVzJyIKIG1zZ3N0ciAi5peg5pWI55qE5pyq6L+96Liq5paH5Lu25Y+C5pWwICclcyciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwOQorIzogYnVpbHRpbi9jb21taXQuYzoxMDM0CiBtc2dpZCAiLS1sb25nIGFuZCAteiBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICItLWxvbmcg5ZKMIC16IOmAiemhueS4jeWFvOWuuSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDM5CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNjQKIG1zZ2lkICJVc2luZyBib3RoIC0tcmVzZXQtYXV0aG9yIGFuZCAtLWF1dGhvciBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICLlkIzml7bkvb/nlKggLS1yZXNldC1hdXRob3Ig5ZKMIC0tYXV0aG9yIOayoeacieaEj+S5iSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDUwCisjOiBidWlsdGluL2NvbW1pdC5jOjEwNzUKIG1zZ2lkICJZb3UgaGF2ZSBub3RoaW5nIHRvIGFtZW5kLiIKIG1zZ3N0ciAi5oKo5rKh5pyJ5Y+v5L+u6KGl55qE5o+Q5Lqk44CCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3OAogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlIC0tIGNhbm5vdCBhbWVuZC4iCiBtc2dzdHIgIuaCqOato+WkhOS6juS4gOS4quWQiOW5tui/h+eoi+S4rSAtLSDml6Dms5Xkv67ooaXmj5DkuqTjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1NQorIzogYnVpbHRpbi9jb21taXQuYzoxMDgwCiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgY2hlcnJ5LXBpY2sgLS0gY2Fubm90IGFtZW5kLiIKIG1zZ3N0ciAi5oKo5q2j5aSE5LqO5LiA5Liq5ouj6YCJ6L+H56iL5LitIC0tIOaXoOazleS/ruihpeaPkOS6pOOAgiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDU4CisjOiBidWlsdGluL2NvbW1pdC5jOjEwODMKIG1zZ2lkICJPcHRpb25zIC0tc3F1YXNoIGFuZCAtLWZpeHVwIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICLpgInpobkgLS1zcXVhc2gg5ZKMIC0tZml4dXAg5LiN6IO95ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNjgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5MwogbXNnaWQgIk9ubHkgb25lIG9mIC1jLy1DLy1GLy0tZml4dXAgY2FuIGJlIHVzZWQuIgogbXNnc3RyICLlj6rog73nlKjkuIDkuKogLWMvLUMvLUYvLS1maXh1cCDpgInpobnjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3MAorIzogYnVpbHRpbi9jb21taXQuYzoxMDk1CiBtc2dpZCAiT3B0aW9uIC1tIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIC1jLy1DLy1GLy0tZml4dXAuIgogbXNnc3RyICLpgInpobkgLW0g5LiN6IO95ZKMIC1jLy1DLy1GLy0tZml4dXAg5ZCM5pe25L2/55So44CCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTEwMwogbXNnaWQgIi0tcmVzZXQtYXV0aG9yIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCAtQywgLWMgb3IgLS1hbWVuZC4iCiBtc2dzdHIgIi0tcmVzZXQtYXV0aG9yIOWPquiDveWSjCAtQ+OAgS1jIOaIliAtLWFtZW5kIOWQjOaXtuS9v+eUqOOAgiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDk1CisjOiBidWlsdGluL2NvbW1pdC5jOjExMjAKIG1zZ2lkICJPbmx5IG9uZSBvZiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCBjYW4gYmUgdXNlZC4iCiBtc2dzdHIgIuWPquiDveeUqOS4gOS4qiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCDpgInpobnjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NworIzogYnVpbHRpbi9jb21taXQuYzoxMTIyCiBtc2dpZCAiTm8gcGF0aHMgd2l0aCAtLWluY2x1ZGUvLS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICLlj4LmlbAgLS1pbmNsdWRlLy0tb25seSDkuI3ot5/ot6/lvoTmsqHmnInmhI/kuYnjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5OQorIzogYnVpbHRpbi9jb21taXQuYzoxMTI0CiBtc2dpZCAiQ2xldmVyLi4uIGFtZW5kaW5nIHRoZSBsYXN0IG9uZSB3aXRoIGRpcnR5IGluZGV4LiIKIG1zZ3N0ciAi6IGq5piOLi4uIOWcqOe0ouW8leS4jeW5suWHgOS4i+S/ruihpeacgOWQjueahOaPkOS6pOOAgiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTAxCisjOiBidWlsdGluL2NvbW1pdC5jOjExMjYKIG1zZ2lkICJFeHBsaWNpdCBwYXRocyBzcGVjaWZpZWQgd2l0aG91dCAtaSBub3IgLW87IGFzc3VtaW5nIC0tb25seSBwYXRocy4uLiIKIG1zZ3N0ciAi5oyH5a6a5LqG5piO56Gu55qE6Lev5b6E6ICM5rKh5pyJ5L2/55SoIC1pIOaIliAtbyDpgInpobnvvJvorqTkuLrmmK8gLS1vbmx5IHBhdGhzLi4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExMTEgYnVpbHRpbi90YWcuYzo1NzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTEzNiBidWlsdGluL3RhZy5jOjU3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGNsZWFudXAgbW9kZSAlcyIKIG1zZ3N0ciAi5peg5pWI55qE5riF55CG5qih5byPICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExMTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTE0MQogbXNnaWQgIlBhdGhzIHdpdGggLWEgZG9lcyBub3QgbWFrZSBzZW5zZS4iCiBtc2dzdHIgIui3r+W+hOWSjCAtYSDpgInpobnlkIzml7bkvb/nlKjmsqHmnInmhI/kuYnjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyMiBidWlsdGluL2NvbW1pdC5jOjE0NTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI1MSBidWlsdGluL2NvbW1pdC5jOjE0ODIKIG1zZ2lkICJzaG93IHN0YXR1cyBjb25jaXNlbHkiCiBtc2dzdHIgIuS7peeugOa0geeahOagvOW8j+aYvuekuueKtuaAgSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjI0IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NworIzogYnVpbHRpbi9jb21taXQuYzoxMjUzIGJ1aWx0aW4vY29tbWl0LmM6MTQ4NAogbXNnaWQgInNob3cgYnJhbmNoIGluZm9ybWF0aW9uIgogbXNnc3RyICLmmL7npLrliIbmlK/kv6Hmga8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyNiBidWlsdGluL2NvbW1pdC5jOjE0NTkgYnVpbHRpbi9wdXNoLmM6NDUyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNTUgYnVpbHRpbi9jb21taXQuYzoxNDg2IGJ1aWx0aW4vcHVzaC5jOjQ2MAogbXNnaWQgIm1hY2hpbmUtcmVhZGFibGUgb3V0cHV0IgogbXNnc3RyICLmnLrlmajlj6/or7vnmoTovpPlh7oiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyOSBidWlsdGluL2NvbW1pdC5jOjE0NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI1OCBidWlsdGluL2NvbW1pdC5jOjE0ODgKIG1zZ2lkICJzaG93IHN0YXR1cyBpbiBsb25nIGZvcm1hdCAoZGVmYXVsdCkiCiBtc2dzdHIgIuS7pemVv+agvOW8j+aYvuekuueKtuaAge+8iOm7mOiupO+8iSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjMyIGJ1aWx0aW4vY29tbWl0LmM6MTQ2NAorIzogYnVpbHRpbi9jb21taXQuYzoxMjYxIGJ1aWx0aW4vY29tbWl0LmM6MTQ5MQogbXNnaWQgInRlcm1pbmF0ZSBlbnRyaWVzIHdpdGggTlVMIgogbXNnc3RyICLmnaHnm67ku6VOVUzlrZfnrKbnu5PlsL4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNCBidWlsdGluL2NvbW1pdC5jOjE0NjcgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NwotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MCBidWlsdGluL3RhZy5jOjQ1OQorIzogYnVpbHRpbi9jb21taXQuYzoxMjYzIGJ1aWx0aW4vY29tbWl0LmM6MTQ5NCBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc3IGJ1aWx0aW4vdGFnLmM6NDU5CiBtc2dpZCAibW9kZSIKIG1zZ3N0ciAi5qih5byPIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyMzUgYnVpbHRpbi9jb21taXQuYzoxNDY3CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNjQgYnVpbHRpbi9jb21taXQuYzoxNDk0CiBtc2dpZCAic2hvdyB1bnRyYWNrZWQgZmlsZXMsIG9wdGlvbmFsIG1vZGVzOiBhbGwsIG5vcm1hbCwgbm8uIChEZWZhdWx0OiBhbGwpIgogbXNnc3RyICLmmL7npLrmnKrot5/ouKrnmoTmlofku7bvvIzigJzmqKHlvI/igJ3nmoTlj6/pgInlj4LmlbDvvJphbGzjgIFub3JtYWzjgIFub+OAgu+8iOm7mOiupO+8mmFsbO+8iSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjM4CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNjcKIG1zZ2lkICJzaG93IGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgIuaYvuekuuW/veeVpeeahOaWh+S7tiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjM5IHBhcnNlLW9wdGlvbnMuaDoxNTQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2OCBwYXJzZS1vcHRpb25zLmg6MTU2CiBtc2dpZCAid2hlbiIKIG1zZ3N0ciAi5L2V5pe2IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI2OQogbXNnaWQgIiIKICJpZ25vcmUgY2hhbmdlcyB0byBzdWJtb2R1bGVzLCBvcHRpb25hbCB3aGVuOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKICIoRGVmYXVsdDogYWxsKSIKIG1zZ3N0ciAiIgogIuW/veeVpeWtkOaooee7hOeahOabtOaUue+8jOKAnOS9leaXtuKAneeahOWPr+mAieWPguaVsO+8mmFsbOOAgWRpcnR544CBdW50cmFja2Vk44CC77yI6buY6K6k77yaYWxs77yJIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI3MQogbXNnaWQgImxpc3QgdW50cmFja2VkIGZpbGVzIGluIGNvbHVtbnMiCiBtc2dzdHIgIuS7peWIl+eahOaWueW8j+aYvuekuuacqui3n+i4queahOaWh+S7tiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzEzCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNDAKIG1zZ2lkICJjb3VsZG4ndCBsb29rIHVwIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgogbXNnc3RyICLml6Dms5Xmib7liLDmlrDliJvlu7rnmoTmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxNQorIzogYnVpbHRpbi9jb21taXQuYzoxMzQyCiBtc2dpZCAiY291bGQgbm90IHBhcnNlIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgogbXNnc3RyICLkuI3og73op6PmnpDmlrDliJvlu7rnmoTmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1NgorIzogYnVpbHRpbi9jb21taXQuYzoxMzgzCiBtc2dpZCAiZGV0YWNoZWQgSEVBRCIKIG1zZ3N0ciAi5YiG56a75aS05oyH6ZKIIgogCiAjICDor5HogIXvvJrkuK3mloflrZfnrKbkuLLmi7zmjqXvvIzlj6/liKDpmaTliY3lr7znqbrmoLwKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1OAorIzogYnVpbHRpbi9jb21taXQuYzoxMzg1CiBtc2dpZCAiIChyb290LWNvbW1pdCkiCiBtc2dzdHIgIu+8iOagueaPkOS6pO+8iSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDI1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTIKIG1zZ2lkICJzdXBwcmVzcyBzdW1tYXJ5IGFmdGVyIHN1Y2Nlc3NmdWwgY29tbWl0IgogbXNnc3RyICLmj5DkuqTmiJDlip/lkI7kuI3mmL7npLrmpoLov7Dkv6Hmga8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyNgorIzogYnVpbHRpbi9jb21taXQuYzoxNDUzCiBtc2dpZCAic2hvdyBkaWZmIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgogbXNnc3RyICLlnKjmj5DkuqTor7TmmI7mqKHmnb/ph4zmmL7npLrlt67lvIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyOAorIzogYnVpbHRpbi9jb21taXQuYzoxNDU1CiBtc2dpZCAiQ29tbWl0IG1lc3NhZ2Ugb3B0aW9ucyIKIG1zZ3N0ciAi5o+Q5Lqk6K+05piO6YCJ6aG5IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MjkgYnVpbHRpbi90YWcuYzo0NTcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NiBidWlsdGluL3RhZy5jOjQ1NwogbXNnaWQgInJlYWQgbWVzc2FnZSBmcm9tIGZpbGUiCiBtc2dzdHIgIuS7juaWh+S7tuS4reivu+WPluaPkOS6pOivtOaYjiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTcKIG1zZ2lkICJhdXRob3IiCiBtc2dzdHIgIuS9nOiAhSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTcKIG1zZ2lkICJvdmVycmlkZSBhdXRob3IgZm9yIGNvbW1pdCIKIG1zZ3N0ciAi5o+Q5Lqk5pe26KaG55uW5L2c6ICFIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzEgYnVpbHRpbi9nYy5jOjE3OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDU4IGJ1aWx0aW4vZ2MuYzoyNjAKIG1zZ2lkICJkYXRlIgogbXNnc3RyICLml6XmnJ8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNDU4CiBtc2dpZCAib3ZlcnJpZGUgZGF0ZSBmb3IgY29tbWl0IgogbXNnc3RyICLmj5DkuqTml7bopobnm5bml6XmnJ8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMiBidWlsdGluL21lcmdlLmM6MjIzIGJ1aWx0aW4vbm90ZXMuYzo0MDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1OSBidWlsdGluL21lcmdlLmM6MjIzIGJ1aWx0aW4vbm90ZXMuYzo0MDUKICM6IGJ1aWx0aW4vbm90ZXMuYzo1NjIgYnVpbHRpbi90YWcuYzo0NTUKIG1zZ2lkICJtZXNzYWdlIgogbXNnc3RyICLor7TmmI4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMgorIzogYnVpbHRpbi9jb21taXQuYzoxNDU5CiBtc2dpZCAiY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgIuaPkOS6pOivtOaYjiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDMzCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjAKIG1zZ2lkICJyZXVzZSBhbmQgZWRpdCBtZXNzYWdlIGZyb20gc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAi6YeN55So5bm257yW6L6R5oyH5a6a5o+Q5Lqk55qE5o+Q5Lqk6K+05piOIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MQogbXNnaWQgInJldXNlIG1lc3NhZ2UgZnJvbSBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICLph43nlKjmjIflrprmj5DkuqTnmoTmj5DkuqTor7TmmI4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNQorIzogYnVpbHRpbi9jb21taXQuYzoxNDYyCiBtc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gZml4dXAgc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAi5L2/55SoIGF1dG9zcXVhc2gg5qC85byP55qE5o+Q5Lqk6K+05piO55So5Lul5L+u5q2j5oyH5a6a55qE5o+Q5LqkIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MwogbXNnaWQgInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIHNxdWFzaCBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICLkvb/nlKggYXV0b3NxdWFzaCDmoLzlvI/nmoTmj5DkuqTor7TmmI7nlKjku6XljovnvKnoh7PmjIflrprnmoTmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNworIzogYnVpbHRpbi9jb21taXQuYzoxNDY0CiBtc2dpZCAidGhlIGNvbW1pdCBpcyBhdXRob3JlZCBieSBtZSBub3cgKHVzZWQgd2l0aCAtQy8tYy8tLWFtZW5kKSIKIG1zZ3N0ciAi546w5Zyo5bCG6K+l5o+Q5Lqk55qE5L2c6ICF5pS55Li65oiR77yI5ZKMIC1DLy1jLy0tYW1lbmQg5Y+C5pWw5YWx55So77yJIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MzggYnVpbHRpbi9sb2cuYzoxMTYwIGJ1aWx0aW4vcmV2ZXJ0LmM6MTExCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjUgYnVpbHRpbi9sb2cuYzoxMTgwIGJ1aWx0aW4vcmV2ZXJ0LmM6ODYKIG1zZ2lkICJhZGQgU2lnbmVkLW9mZi1ieToiCiBtc2dzdHIgIua3u+WKoCBTaWduZWQtb2ZmLWJ5OiDnrb7lkI0iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzOQorIzogYnVpbHRpbi9jb21taXQuYzoxNDY2CiBtc2dpZCAidXNlIHNwZWNpZmllZCB0ZW1wbGF0ZSBmaWxlIgogbXNnc3RyICLkvb/nlKjmjIflrprnmoTmqKHmnb/mlofku7YiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDY3CiBtc2dpZCAiZm9yY2UgZWRpdCBvZiBjb21taXQiCiBtc2dzdHIgIuW8uuWItue8lui+keaPkOS6pCIKIAogIyAg6K+R6ICF77ya5Y+v6YCJ5YC877yM5LiN6IO957+76K+R77yI5oiW5piv5Y6f5paH5Lit56yU6K+v77yM5bqU5Li6IG1vZGXvvIkKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDY4CiBtc2dpZCAiZGVmYXVsdCIKIG1zZ3N0ciAiZGVmYXVsdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDQxIGJ1aWx0aW4vdGFnLmM6NDYwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjggYnVpbHRpbi90YWcuYzo0NjAKIG1zZ2lkICJob3cgdG8gc3RyaXAgc3BhY2VzIGFuZCAjY29tbWVudHMgZnJvbSBtZXNzYWdlIgogbXNnc3RyICLorr7nva7lpoLkvZXliKDpmaTmj5DkuqTor7TmmI7ph4znmoTnqbrmoLzlkowj5rOo6YeKIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2OQogbXNnaWQgImluY2x1ZGUgc3RhdHVzIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgogbXNnc3RyICLlnKjmj5DkuqTor7TmmI7mqKHmnb/ph4zljIXlkKvnirbmgIHkv6Hmga8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MyBidWlsdGluL21lcmdlLmM6MjMwIGJ1aWx0aW4vdGFnLmM6NDYxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzAgYnVpbHRpbi9tZXJnZS5jOjIzMCBidWlsdGluL3RhZy5jOjQ2MQogbXNnaWQgImtleSBpZCIKIG1zZ3N0ciAia2V5IGlkIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDQgYnVpbHRpbi9tZXJnZS5jOjIzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNDcxIGJ1aWx0aW4vbWVyZ2UuYzoyMzEKIG1zZ2lkICJHUEcgc2lnbiBjb21taXQiCiBtc2dzdHIgIkdQRyDmj5DkuqTnrb7lkI0iCiAKICMuIGVuZCBjb21taXQgbWVzc2FnZSBvcHRpb25zCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3NAogbXNnaWQgIkNvbW1pdCBjb250ZW50cyBvcHRpb25zIgogbXNnc3RyICLmj5DkuqTlhoXlrrnpgInpobkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDc1CiBtc2dpZCAiY29tbWl0IGFsbCBjaGFuZ2VkIGZpbGVzIgogbXNnc3RyICLmj5DkuqTmiYDmnInmlLnliqjnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0OQorIzogYnVpbHRpbi9jb21taXQuYzoxNDc2CiBtc2dpZCAiYWRkIHNwZWNpZmllZCBmaWxlcyB0byBpbmRleCBmb3IgY29tbWl0IgogbXNnc3RyICLmt7vliqDmjIflrprnmoTmlofku7bliLDntKLlvJXljLrnrYnlvoXmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDc3CiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgZmlsZXMiCiBtc2dzdHIgIuS6pOS6kuW8j+a3u+WKoOaWh+S7tiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDUxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzgKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBjaGFuZ2VzIgogbXNnc3RyICLkuqTkupLlvI/mt7vliqDlj5jmm7QiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MgorIzogYnVpbHRpbi9jb21taXQuYzoxNDc5CiBtc2dpZCAiY29tbWl0IG9ubHkgc3BlY2lmaWVkIGZpbGVzIgogbXNnc3RyICLlj6rmj5DkuqTmjIflrprnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MworIzogYnVpbHRpbi9jb21taXQuYzoxNDgwCiBtc2dpZCAiYnlwYXNzIHByZS1jb21taXQgaG9vayIKIG1zZ3N0ciAi57uV6L+HIHByZS1jb21taXQg6ZKp5a2QIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NTQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ4MQogbXNnaWQgInNob3cgd2hhdCB3b3VsZCBiZSBjb21taXR0ZWQiCiBtc2dzdHIgIuaYvuekuuWwhuimgeaPkOS6pOeahOWGheWuuSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDY1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0OTIKIG1zZ2lkICJhbWVuZCBwcmV2aW91cyBjb21taXQiCiBtc2dzdHIgIuS/ruaUueWFiOWJjeeahOaPkOS6pCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDY2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0OTMKIG1zZ2lkICJieXBhc3MgcG9zdC1yZXdyaXRlIGhvb2siCiBtc2dzdHIgIue7lei/hyBwb3N0LXJld3JpdGUg6ZKp5a2QIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ5OAogbXNnaWQgIm9rIHRvIHJlY29yZCBhbiBlbXB0eSBjaGFuZ2UiCiBtc2dzdHIgIuWFgeiuuOS4gOS4quepuuaPkOS6pCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDc0CisjOiBidWlsdGluL2NvbW1pdC5jOjE1MDAKIG1zZ2lkICJvayB0byByZWNvcmQgYSBjaGFuZ2Ugd2l0aCBhbiBlbXB0eSBtZXNzYWdlIgogbXNnc3RyICLlhYHorrjnqbrnmoTmj5DkuqTor7TmmI4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUwNworIzogYnVpbHRpbi9jb21taXQuYzoxNTI5CiBtc2dpZCAiY291bGQgbm90IHBhcnNlIEhFQUQgY29tbWl0IgogbXNnc3RyICLkuI3og73op6PmnpAgSEVBRCDmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU0NSBidWlsdGluL21lcmdlLmM6NTI1CisjOiBidWlsdGluL2NvbW1pdC5jOjE1NjcgYnVpbHRpbi9tZXJnZS5jOjUyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIGZvciByZWFkaW5nIgogbXNnc3RyICLkuI3og73kuLror7vlhaXmiZPlvIAgJyVzJyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTUyCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29ycnVwdCBNRVJHRV9IRUFEIGZpbGUgKCVzKSIKIG1zZ3N0ciAi5o2f5Z2P55qEIE1FUkdFX0hFQUQg5paH5Lu277yIJXPvvIkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU1OQorIzogYnVpbHRpbi9jb21taXQuYzoxNTgxCiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTU9ERSIKIG1zZ3N0ciAi5LiN6IO96K+75Y+WIE1FUkdFX01PREUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU3OAorIzogYnVpbHRpbi9jb21taXQuYzoxNjAwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGNvbW1pdCBtZXNzYWdlOiAlcyIKIG1zZ3N0ciAi5LiN6IO96K+75Y+W5o+Q5Lqk6K+05piO77yaJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU5MgorIzogYnVpbHRpbi9jb21taXQuYzoxNjE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdDsgeW91IGRpZCBub3QgZWRpdCB0aGUgbWVzc2FnZS5cbiIKIG1zZ3N0ciAi57uI5q2i5o+Q5Lqk77yb5oKo5pyq5pu05pS55p2l6Ieq5qih54mI55qE5o+Q5Lqk6K+05piO44CCXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU5NworIzogYnVpbHRpbi9jb21taXQuYzoxNjE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdCBkdWUgdG8gZW1wdHkgY29tbWl0IG1lc3NhZ2UuXG4iCiBtc2dzdHIgIue7iOatouaPkOS6pOWboOS4uuaPkOS6pOivtOaYjuS4uuepuuOAglxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE2MTIgYnVpbHRpbi9tZXJnZS5jOjg2MSBidWlsdGluL21lcmdlLmM6ODg2CisjOiBidWlsdGluL2NvbW1pdC5jOjE2MzQgYnVpbHRpbi9tZXJnZS5jOjg2MSBidWlsdGluL21lcmdlLmM6ODg2CiBtc2dpZCAiZmFpbGVkIHRvIHdyaXRlIGNvbW1pdCBvYmplY3QiCiBtc2dzdHIgIuaXoOazleWGmeaPkOS6pOWvueixoSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNjMzCisjOiBidWlsdGluL2NvbW1pdC5jOjE2NTUKIG1zZ2lkICJjYW5ub3QgbG9jayBIRUFEIHJlZiIKIG1zZ3N0ciAi5peg5rOV6ZSB5a6aIEhFQUQg5byV55SoIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE2MzcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTY1OQogbXNnaWQgImNhbm5vdCB1cGRhdGUgSEVBRCByZWYiCiBtc2dzdHIgIuaXoOazleabtOaWsCBIRUFEIOW8leeUqCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNjQ4CisjOiBidWlsdGluL2NvbW1pdC5jOjE2NzAKIG1zZ2lkICIiCiAiUmVwb3NpdG9yeSBoYXMgYmVlbiB1cGRhdGVkLCBidXQgdW5hYmxlIHRvIHdyaXRlXG4iCiAibmV3X2luZGV4IGZpbGUuIENoZWNrIHRoYXQgZGlzayBpcyBub3QgZnVsbCBvciBxdW90YSBpc1xuIgpAQCAtNDQyOSwxMjcgKzQ2MDIsMTMxIEBACiAi54mI5pys5bqT5bey5pu05paw77yM5L2G5peg5rOV5YaZIG5ld19pbmRleCDmlofku7bjgILmo4Dmn6XmmK/lkKbno4Hnm5jlt7Lmu6FcbiIKICLmiJbno4Hnm5jphY3pop3lt7LogJflsL3vvIznhLblkI7miafooYwgXCJnaXQgcmVzZXQgSEVBRFwiIOaBouWkjeOAgiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3CisjOiBidWlsdGluL2NvbmZpZy5jOjgKIG1zZ2lkICJnaXQgY29uZmlnIFtvcHRpb25zXSIKIG1zZ3N0ciAiZ2l0IGNvbmZpZyBb6YCJ6aG5XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1MgorIzogYnVpbHRpbi9jb25maWcuYzo1NAogbXNnaWQgIkNvbmZpZyBmaWxlIGxvY2F0aW9uIgogbXNnc3RyICLphY3nva7mlofku7bkvY3nva4iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKIG1zZ2lkICJ1c2UgZ2xvYmFsIGNvbmZpZyBmaWxlIgogbXNnc3RyICLkvb/nlKjlhajlsYDphY3nva7mlofku7YiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTQKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTYKIG1zZ2lkICJ1c2Ugc3lzdGVtIGNvbmZpZyBmaWxlIgogbXNnc3RyICLkvb/nlKjns7vnu5/nuqfphY3nva7mlofku7YiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKIG1zZ2lkICJ1c2UgcmVwb3NpdG9yeSBjb25maWcgZmlsZSIKIG1zZ3N0ciAi5L2/55So54mI5pys5bqT57qn6YWN572u5paH5Lu2IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU2CisjOiBidWlsdGluL2NvbmZpZy5jOjU4CiBtc2dpZCAidXNlIGdpdmVuIGNvbmZpZyBmaWxlIgogbXNnc3RyICLkvb/nlKjmjIflrprnmoTphY3nva7mlofku7YiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTkKIG1zZ2lkICJibG9iLWlkIgogbXNnc3RyICLmlbDmja7lr7nosaFJRCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NworIzogYnVpbHRpbi9jb25maWcuYzo1OQogbXNnaWQgInJlYWQgY29uZmlnIGZyb20gZ2l2ZW4gYmxvYiBvYmplY3QiCiBtc2dzdHIgIuS7jue7meWumueahOaVsOaNruWvueixoeivu+WPlumFjee9riIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1OAorIzogYnVpbHRpbi9jb25maWcuYzo2MAogbXNnaWQgIkFjdGlvbiIKIG1zZ3N0ciAi5pON5L2cIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU5CisjOiBidWlsdGluL2NvbmZpZy5jOjYxCiBtc2dpZCAiZ2V0IHZhbHVlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgIuiOt+WPluWAvO+8mm5hbWUgW3ZhbHVlLXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MAorIzogYnVpbHRpbi9jb25maWcuYzo2MgogbXNnaWQgImdldCBhbGwgdmFsdWVzOiBrZXkgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAi6I635b6X5omA5pyJ55qE5YC877yaa2V5IFt2YWx1ZS1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKIG1zZ2lkICJnZXQgdmFsdWVzIGZvciByZWdleHA6IG5hbWUtcmVnZXggW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAi5qC55o2u5q2j5YiZ6KGo6L6+5byP6I635b6X5YC877yabmFtZS1yZWdleCBbdmFsdWUtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYyCisjOiBidWlsdGluL2NvbmZpZy5jOjY0Cittc2dpZCAiZ2V0IHZhbHVlIHNwZWNpZmljIGZvciB0aGUgVVJMOiBzZWN0aW9uWy52YXJdIFVSTCIKK21zZ3N0ciAi6I635b6XIFVSTCDlj5blgLzvvJpzZWN0aW9uWy52YXJdIFVSTCIKKworIzogYnVpbHRpbi9jb25maWcuYzo2NQogbXNnaWQgInJlcGxhY2UgYWxsIG1hdGNoaW5nIHZhcmlhYmxlczogbmFtZSB2YWx1ZSBbdmFsdWVfcmVnZXhdIgogbXNnc3RyICLmm7/mjaLmiYDmnInljLnphY3nmoTlj5jph4/vvJpuYW1lIHZhbHVlIFt2YWx1ZV9yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjYKIG1zZ2lkICJhZGQgYSBuZXcgdmFyaWFibGU6IG5hbWUgdmFsdWUiCiBtc2dzdHIgIua3u+WKoOS4gOS4quaWsOeahOWPmOmHj++8mm5hbWUgdmFsdWUiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjcKIG1zZ2lkICJyZW1vdmUgYSB2YXJpYWJsZTogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICLliKDpmaTkuIDkuKrlj5jph4/vvJpuYW1lIFt2YWx1ZS1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjgKIG1zZ2lkICJyZW1vdmUgYWxsIG1hdGNoZXM6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAi5Yig6Zmk5omA5pyJ5Yy56YWN6aG577yabmFtZSBbdmFsdWUtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY2CisjOiBidWlsdGluL2NvbmZpZy5jOjY5CiBtc2dpZCAicmVuYW1lIHNlY3Rpb246IG9sZC1uYW1lIG5ldy1uYW1lIgogbXNnc3RyICLph43lkb3lkI3lsI/oioLvvJpvbGQtbmFtZSBuZXctbmFtZSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NworIzogYnVpbHRpbi9jb25maWcuYzo3MAogbXNnaWQgInJlbW92ZSBhIHNlY3Rpb246IG5hbWUiCiBtc2dzdHIgIuWIoOmZpOS4gOS4quWwj+iKgu+8mm5hbWUiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjgKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzEKIG1zZ2lkICJsaXN0IGFsbCIKIG1zZ3N0ciAi5YiX5Ye65omA5pyJIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY5CisjOiBidWlsdGluL2NvbmZpZy5jOjcyCiBtc2dpZCAib3BlbiBhbiBlZGl0b3IiCiBtc2dzdHIgIuaJk+W8gOS4gOS4que8lui+keWZqCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MCBidWlsdGluL2NvbmZpZy5jOjcxCisjOiBidWlsdGluL2NvbmZpZy5jOjczIGJ1aWx0aW4vY29uZmlnLmM6NzQKIG1zZ2lkICJzbG90IgogbXNnc3RyICJzbG90IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcwCisjOiBidWlsdGluL2NvbmZpZy5jOjczCiBtc2dpZCAiZmluZCB0aGUgY29sb3IgY29uZmlndXJlZDogW2RlZmF1bHRdIgogbXNnc3RyICLmib7liLDphY3nva7nmoTpopzoibLvvJpb6buY6K6kXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MQorIzogYnVpbHRpbi9jb25maWcuYzo3NAogbXNnaWQgImZpbmQgdGhlIGNvbG9yIHNldHRpbmc6IFtzdGRvdXQtaXMtdHR5XSIKIG1zZ3N0ciAi5om+5Yiw6aKc6Imy6K6+572u77yaW3N0ZG91dC1pcy10dHldIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcyCisjOiBidWlsdGluL2NvbmZpZy5jOjc1CiBtc2dpZCAiVHlwZSIKIG1zZ3N0ciAi57G75Z6LIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjczCisjOiBidWlsdGluL2NvbmZpZy5jOjc2CiBtc2dpZCAidmFsdWUgaXMgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiIgogbXNnc3RyICLlgLzmmK8gXCJ0cnVlXCIg5oiWIFwiZmFsc2VcIiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NAorIzogYnVpbHRpbi9jb25maWcuYzo3NwogbXNnaWQgInZhbHVlIGlzIGRlY2ltYWwgbnVtYmVyIgogbXNnc3RyICLlgLzmmK/ljYHov5vliLbmlbAiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzgKIG1zZ2lkICJ2YWx1ZSBpcyAtLWJvb2wgb3IgLS1pbnQiCiBtc2dzdHIgIuWAvOaYryAtLWJvb2wgb3IgLS1pbnQiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzYKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzkKIG1zZ2lkICJ2YWx1ZSBpcyBhIHBhdGggKGZpbGUgb3IgZGlyZWN0b3J5IG5hbWUpIgogbXNnc3RyICLlgLzmmK/kuIDkuKrot6/lvoTvvIjmlofku7bmiJbnm67lvZXlkI3vvIkiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6ODAKIG1zZ2lkICJPdGhlciIKIG1zZ3N0ciAi5YW25a6DIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc4CisjOiBidWlsdGluL2NvbmZpZy5jOjgxCiBtc2dpZCAidGVybWluYXRlIHZhbHVlcyB3aXRoIE5VTCBieXRlIgogbXNnc3RyICLnu4jmraLlgLzmmK9OVUzlrZfoioIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6ODIKIG1zZ2lkICJyZXNwZWN0IGluY2x1ZGUgZGlyZWN0aXZlcyBvbiBsb29rdXAiCiBtc2dzdHIgIuafpeivouaXtuWPgueFpyBpbmNsdWRlIOaMh+S7pOmAkuW9kuafpeaJviIKIApAQCAtNDU2Miw3ICs0NzM5LDcgQEAKIG1zZ3N0ciAi5Lul55So5oi35Y+v6K+755qE5qC85byP5pi+56S65aSn5bCPIgogCiAjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKLW1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIDxjb21taXR0aXNoPioiCittc2dpZCAiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSA8Y29tbWl0LWlzaD4qIgogbXNnc3RyICJnaXQgZGVzY3JpYmUgW+mAiemhuV0gPOaPkOS6pOWPtz4qIgogCiAjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTcKQEAgLTQ2OTgsNyArNDg3NSw3IEBACiBtc2dzdHIgIuayoeacieWPkeeOsOWQjeensO+8jOaXoOazleaPj+i/sOS7u+S9leS4nOilv+OAgiIKIAogIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ4OQotbXNnaWQgIi0tZGlydHkgaXMgaW5jb21wYXRpYmxlIHdpdGggY29tbWl0dGlzaGVzIgorbXNnaWQgIi0tZGlydHkgaXMgaW5jb21wYXRpYmxlIHdpdGggY29tbWl0LWlzaGVzIgogbXNnc3RyICItLWRpcnR5IOS4jeiDveS4juaPkOS6pOWQjOaXtuS9v+eUqCIKIAogIzogYnVpbHRpbi9kaWZmLmM6NzkKQEAgLTQ3MzQsNDUgKzQ5MTEsNDUgQEAKIG1zZ2lkICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogbXNnc3RyICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjczCiBtc2dpZCAic2hvdyBwcm9ncmVzcyBhZnRlciA8bj4gb2JqZWN0cyIKIG1zZ3N0ciAi5ZyoIDxuPiDkuKrlr7nosaHkuYvlkI7mmL7npLrov5vluqYiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjgKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzUKIG1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2Ygc2lnbmVkIHRhZ3MiCiBtc2dzdHIgIumAieaLqeWmguS9leWkhOeQhuetvuWQjSB0YWdzIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcxCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc4CiBtc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHRhZ3MgdGhhdCB0YWcgZmlsdGVyZWQgb2JqZWN0cyIKIG1zZ3N0ciAi6YCJ5oup5b2TIHRhZyDmjIflkJHooqvov4fmu6Tml7YgdGFncyDnmoTlpITnkIbmlrnlvI8iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzQKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODEKIG1zZ2lkICJEdW1wIG1hcmtzIHRvIHRoaXMgZmlsZSIKIG1zZ3N0ciAi5oqK5qCH6K6w5a2Y5YKo5Yiw6L+Z5Liq5paH5Lu2IgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc2CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgzCiBtc2dpZCAiSW1wb3J0IG1hcmtzIGZyb20gdGhpcyBmaWxlIgogbXNnc3RyICLku47ov5nkuKrmlofku7blr7zlhaXmoIforrAiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzgKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODUKIG1zZ2lkICJGYWtlIGEgdGFnZ2VyIHdoZW4gdGFncyBsYWNrIG9uZSIKIG1zZ3N0ciAi5b2TIHRhZ3Mg57y65bCR5qCH6K6w6ICF5a2X5q615pe277yM5YGH6KOF5o+Q5L6b5LiA5LiqIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgwCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njg3CiBtc2dpZCAiT3V0cHV0IGZ1bGwgdHJlZSBmb3IgZWFjaCBjb21taXQiCiBtc2dzdHIgIuavj+asoeaPkOS6pOmDvei+k+WHuuaVtOS4quagkSIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MgorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4OQogbXNnaWQgIlVzZSB0aGUgZG9uZSBmZWF0dXJlIHRvIHRlcm1pbmF0ZSB0aGUgc3RyZWFtIgogbXNnc3RyICLkvb/nlKggZG9uZSDlip/og73mnaXnu4jmraLmtYEiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODMKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2OTAKIG1zZ2lkICJTa2lwIG91dHB1dCBvZiBibG9iIGRhdGEiCiBtc2dzdHIgIui3s+i/h+aVsOaNruWvueixoeeahOi+k+WHuiIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjIwCiBtc2dpZCAiZ2l0IGZldGNoIFs8b3B0aW9ucz5dIFs8cmVwb3NpdG9yeT4gWzxyZWZzcGVjPi4uLl1dIgotbXNnc3RyICJnaXQgZmV0Y2ggWzzpgInpobk+XSBbPOeJiOacrOW6kz4gWzzlvJXnlKjooajovr7lvI8+Li4uXV0iCittc2dzdHIgImdpdCBmZXRjaCBbPOmAiemhuT5dIFs854mI5pys5bqTPiBbPOW8leeUqOinhOWImT4uLi5dXSIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjIxCiBtc2dpZCAiZ2l0IGZldGNoIFs8b3B0aW9ucz5dIDxncm91cD4iCkBAIC00Nzg2LDE0NiArNDk2MywxNDYgQEAKIG1zZ2lkICJnaXQgZmV0Y2ggLS1hbGwgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBmZXRjaCAtLWFsbCBbPOmAiemhuT5dIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NjAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3NAogbXNnaWQgImZldGNoIGZyb20gYWxsIHJlbW90ZXMiCiBtc2dzdHIgIuS7juaJgOacieeahOi/nOeoi+aKk+WPliIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjYyCisjOiBidWlsdGluL2ZldGNoLmM6NzYKIG1zZ2lkICJhcHBlbmQgdG8gLmdpdC9GRVRDSF9IRUFEIGluc3RlYWQgb2Ygb3ZlcndyaXRpbmciCiBtc2dzdHIgIui/veWKoOWIsCAuZ2l0L0ZFVENIX0hFQUQg6ICM5LiN5piv6KaG55uW5a6DIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NjQKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3OAogbXNnaWQgInBhdGggdG8gdXBsb2FkIHBhY2sgb24gcmVtb3RlIGVuZCIKIG1zZ3N0ciAi5LiK5Lyg5YyF5Yiw6L+c56iL55qE6Lev5b6EIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NjUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3OQogbXNnaWQgImZvcmNlIG92ZXJ3cml0ZSBvZiBsb2NhbCBicmFuY2giCiBtc2dzdHIgIuW8uuWItuimhuebluacrOWcsOWIhuaUryIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjY3CisjOiBidWlsdGluL2ZldGNoLmM6ODEKIG1zZ2lkICJmZXRjaCBmcm9tIG11bHRpcGxlIHJlbW90ZXMiCiBtc2dzdHIgIuS7juWkmuS4qui/nOeoi+aKk+WPliIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjY5CisjOiBidWlsdGluL2ZldGNoLmM6ODMKIG1zZ2lkICJmZXRjaCBhbGwgdGFncyBhbmQgYXNzb2NpYXRlZCBvYmplY3RzIgogbXNnc3RyICLmipPlj5bmiYDmnInnmoQgdGFncyDlkozlhbPogZTlr7nosaEiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3MQorIzogYnVpbHRpbi9mZXRjaC5jOjg1CiBtc2dpZCAiZG8gbm90IGZldGNoIGFsbCB0YWdzICgtLW5vLXRhZ3MpIgogbXNnc3RyICLkuI3mipPlj5bku7vkvZUgdGFncyAoLS1uby10YWdzKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjczCisjOiBidWlsdGluL2ZldGNoLmM6ODcKIG1zZ2lkICJwcnVuZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMgbm8gbG9uZ2VyIG9uIHJlbW90ZSIKIG1zZ3N0ciAi5riF6Zmk6L+c56iL5bey57uP5LiN5a2Y5Zyo55qE5YiG5pSv55qE6Lef6Liq5YiG5pSvIgogCiAjICDor5HogIXvvJrlj6/pgInlgLzvvIzkuI3og73nv7vor5EKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3NAorIzogYnVpbHRpbi9mZXRjaC5jOjg4CiBtc2dpZCAib24tZGVtYW5kIgogbXNnc3RyICJvbi1kZW1hbmQiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3NQorIzogYnVpbHRpbi9mZXRjaC5jOjg5CiBtc2dpZCAiY29udHJvbCByZWN1cnNpdmUgZmV0Y2hpbmcgb2Ygc3VibW9kdWxlcyIKIG1zZ3N0ciAi5o6n5Yi25a2Q5qih57uE55qE6YCS5b2S5oqT5Y+WIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NzkKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5MwogbXNnaWQgImtlZXAgZG93bmxvYWRlZCBwYWNrIgogbXNnc3RyICLkv53mjIHkuIvovb3ljIUiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4MQorIzogYnVpbHRpbi9mZXRjaC5jOjk1CiBtc2dpZCAiYWxsb3cgdXBkYXRpbmcgb2YgSEVBRCByZWYiCiBtc2dzdHIgIuWFgeiuuOabtOaWsCBIRUFEIOW8leeUqCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg0CisjOiBidWlsdGluL2ZldGNoLmM6OTgKIG1zZ2lkICJkZWVwZW4gaGlzdG9yeSBvZiBzaGFsbG93IGNsb25lIgogbXNnc3RyICLmt7HljJbmtYXlhYvpmobnmoTljoblj7IiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4NgorIzogYnVpbHRpbi9mZXRjaC5jOjEwMAogbXNnaWQgImNvbnZlcnQgdG8gYSBjb21wbGV0ZSByZXBvc2l0b3J5IgogbXNnc3RyICLovazmjaLkuLrkuIDkuKrlrozmlbTnmoTniYjmnKzlupMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OCBidWlsdGluL2xvZy5jOjExNzcKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDIgYnVpbHRpbi9sb2cuYzoxMTk3CiBtc2dpZCAiZGlyIgogbXNnc3RyICLnm67lvZUiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OQorIzogYnVpbHRpbi9mZXRjaC5jOjEwMwogbXNnaWQgInByZXBlbmQgdGhpcyB0byBzdWJtb2R1bGUgcGF0aCBvdXRwdXQiCiBtc2dzdHIgIuWcqOWtkOaooee7hOi3r+W+hOi+k+WHuueahOWJjemdouWKoOS4iuatpOebruW9lSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkyCisjOiBidWlsdGluL2ZldGNoLmM6MTA2CiBtc2dpZCAiZGVmYXVsdCBtb2RlIGZvciByZWN1cnNpb24iCiBtc2dzdHIgIumAkuW9kueahOm7mOiupOaooeW8jyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjIyMAorIzogYnVpbHRpbi9mZXRjaC5jOjIzNgogbXNnaWQgIkNvdWxkbid0IGZpbmQgcmVtb3RlIHJlZiBIRUFEIgogbXNnc3RyICLml6Dms5Xlj5HnjrDov5znqIsgSEVBRCDlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyNzMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyOTAKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0ICVzIG5vdCBmb3VuZCIKIG1zZ3N0ciAi5a+56LGhICVzIOacquWPkeeOsCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI3OAorIzogYnVpbHRpbi9mZXRjaC5jOjI5NQogbXNnaWQgIlt1cCB0byBkYXRlXSIKIG1zZ3N0ciAiW+acgOaWsF0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyOTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiISAlLSpzICUtKnMgLT4gJXMgIChjYW4ndCBmZXRjaCBpbiBjdXJyZW50IGJyYW5jaCkiCiBtc2dzdHIgIiEgJS0qcyAlLSpzIC0+ICVzICDvvIjlnKjlvZPliY3liIbmlK/kuIvkuI3og73ojrflj5bvvIkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyOTMgYnVpbHRpbi9mZXRjaC5jOjM3OQorIzogYnVpbHRpbi9mZXRjaC5jOjMxMCBidWlsdGluL2ZldGNoLmM6Mzk2CiBtc2dpZCAiW3JlamVjdGVkXSIKIG1zZ3N0ciAiW+W3suaLkue7nV0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMDQKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjEKIG1zZ2lkICJbdGFnIHVwZGF0ZV0iCiBtc2dzdHIgIlt0YWfmm7TmlrBdIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMDYgYnVpbHRpbi9mZXRjaC5jOjM0MSBidWlsdGluL2ZldGNoLmM6MzU5CisjOiBidWlsdGluL2ZldGNoLmM6MzIzIGJ1aWx0aW4vZmV0Y2guYzozNTggYnVpbHRpbi9mZXRjaC5jOjM3NgogbXNnaWQgIiAgKHVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmKSIKIG1zZ3N0ciAiICDvvIjkuI3og73mm7TmlrDmnKzlnLDlvJXnlKjvvIkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMjQKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNDEKIG1zZ2lkICJbbmV3IHRhZ10iCiBtc2dzdHIgIlvmlrB0YWddIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzI3CisjOiBidWlsdGluL2ZldGNoLmM6MzQ0CiBtc2dpZCAiW25ldyBicmFuY2hdIgogbXNnc3RyICJb5paw5YiG5pSvXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMzMAorIzogYnVpbHRpbi9mZXRjaC5jOjM0NwogbXNnaWQgIltuZXcgcmVmXSIKIG1zZ3N0ciAiW+aWsOW8leeUqF0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNzUKKyM6IGJ1aWx0aW4vZmV0Y2guYzozOTIKIG1zZ2lkICJ1bmFibGUgdG8gdXBkYXRlIGxvY2FsIHJlZiIKIG1zZ3N0ciAi5LiN6IO95pu05paw5pys5Zyw5byV55SoIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mzc1CisjOiBidWlsdGluL2ZldGNoLmM6MzkyCiBtc2dpZCAiZm9yY2VkIHVwZGF0ZSIKIG1zZ3N0ciAi5by65Yi25pu05pawIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzgxCisjOiBidWlsdGluL2ZldGNoLmM6Mzk4CiBtc2dpZCAiKG5vbi1mYXN0LWZvcndhcmQpIgogbXNnc3RyICLvvIjpnZ7lv6vov5vlvI/vvIkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo0MTIgYnVpbHRpbi9mZXRjaC5jOjcxOAorIzogYnVpbHRpbi9mZXRjaC5jOjQyOSBidWlsdGluL2ZldGNoLmM6NzM1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlc1xuIgogbXNnc3RyICLml6Dms5XmiZPlvIAgJXPvvJolc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDIxCisjOiBidWlsdGluL2ZldGNoLmM6NDM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHNcbiIKIG1zZ3N0ciAiJXMg5pyq5Y+R6YCB5omA5pyJ5b+F6aG755qE5a+56LGhXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1MjAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRnJvbSAlLipzXG4iCiBtc2dzdHIgIuadpeiHqiAlLipzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1MzEKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1NDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogInNvbWUgbG9jYWwgcmVmcyBjb3VsZCBub3QgYmUgdXBkYXRlZDsgdHJ5IHJ1bm5pbmdcbiIKQEAgLTQ5MzUsOTggKzUxMTIsOTggQEAKICIgJ2dpdCByZW1vdGUgcHJ1bmUgJXMnIOadpeWIoOmZpOaXp+eahOOAgeacieWGsueqgeeahOWIhuaUryIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiBidWlsdGluL2ZldGNoLmM6NTgxCisjOiBidWlsdGluL2ZldGNoLmM6NTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICglcyB3aWxsIGJlY29tZSBkYW5nbGluZykiCiBtc2dzdHIgIiAgIO+8iCVzIOWwhuaIkOS4uuaRh+aRhueKtuaAge+8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiBidWlsdGluL2ZldGNoLmM6NTgyCisjOiBidWlsdGluL2ZldGNoLmM6NTk5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICglcyBoYXMgYmVjb21lIGRhbmdsaW5nKSIKIG1zZ3N0ciAiICAg77yIJXMg5bey5oiQ5Li65pGH5pGG54q25oCB77yJIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTg5CisjOiBidWlsdGluL2ZldGNoLmM6NjA2CiBtc2dpZCAiW2RlbGV0ZWRdIgogbXNnc3RyICJb5bey5Yig6ZmkXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU5MCBidWlsdGluL3JlbW90ZS5jOjEwNTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo2MDcgYnVpbHRpbi9yZW1vdGUuYzoxMDU1CiBtc2dpZCAiKG5vbmUpIgogbXNnc3RyICLvvIjml6DvvIkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3MDgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVmdXNpbmcgdG8gZmV0Y2ggaW50byBjdXJyZW50IGJyYW5jaCAlcyBvZiBub24tYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICLmi5Lnu53ojrflj5bliLDpnZ7oo7jniYjmnKzlupPnmoTlvZPliY3liIbmlK8gJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3NDIKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gZmV0Y2ggZnJvbSAlcyIKLW1zZ3N0ciAi5LiN55+l6YGT5aaC5L2V5LuOICVzIOiOt+WPliIKLQotIzogYnVpbHRpbi9mZXRjaC5jOjgyMworIzogYnVpbHRpbi9mZXRjaC5jOjc0NAogIywgYy1mb3JtYXQKIG1zZ2lkICJPcHRpb24gXCIlc1wiIHZhbHVlIFwiJXNcIiBpcyBub3QgdmFsaWQgZm9yICVzIgogbXNnc3RyICLpgInpobkgXCIlc1wiIOeahOWAvCBcIiVzXCIg5a+55LqOICVzIOaYr+aXoOaViOeahCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjgyNgorIzogYnVpbHRpbi9mZXRjaC5jOjc0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJPcHRpb24gXCIlc1wiIGlzIGlnbm9yZWQgZm9yICVzXG4iCiBtc2dzdHIgIumAiemhuSBcIiVzXCIg5Li6ICVzIOaJgOW/veeVpVxuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTI4CisjOiBidWlsdGluL2ZldGNoLmM6ODAxCisjLCBjLWZvcm1hdAorbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGZldGNoIGZyb20gJXMiCittc2dzdHIgIuS4jeefpemBk+WmguS9leS7jiAlcyDojrflj5YiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmV0Y2hpbmcgJXNcbiIKIG1zZ3N0ciAi5q2j5Zyo6I635Y+WICVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MzAgYnVpbHRpbi9yZW1vdGUuYzoxMDAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NzggYnVpbHRpbi9yZW1vdGUuYzoxMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZldGNoICVzIgogbXNnc3RyICLkuI3og73ojrflj5YgJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5NDkKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5OTcKIG1zZ2lkICIiCiAiTm8gcmVtb3RlIHJlcG9zaXRvcnkgc3BlY2lmaWVkLiAgUGxlYXNlLCBzcGVjaWZ5IGVpdGhlciBhIFVSTCBvciBhXG4iCiAicmVtb3RlIG5hbWUgZnJvbSB3aGljaCBuZXcgcmV2aXNpb25zIHNob3VsZCBiZSBmZXRjaGVkLiIKIG1zZ3N0ciAi5pyq5oyH5a6a6L+c56iL54mI5pys5bqT44CC6K+36YCa6L+H5LiA5LiqVVJM5oiW6L+c56iL54mI5pys5bqT5ZCN5oyH5a6a77yM55So5Lul6I635Y+W5paw5o+Q5Lqk44CCIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTY5CisjOiBidWlsdGluL2ZldGNoLmM6MTAyMAogbXNnaWQgIllvdSBuZWVkIHRvIHNwZWNpZnkgYSB0YWcgbmFtZS4iCiBtc2dzdHIgIuaCqOmcgOimgeaMh+WumuS4gOS4qiB0YWcg5ZCN56ew44CCIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAxNQorIzogYnVpbHRpbi9mZXRjaC5jOjEwNjgKIG1zZ2lkICItLWRlcHRoIGFuZCAtLXVuc2hhbGxvdyBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKIG1zZ3N0ciAiLS1kZXB0aCDlkowgLS11bnNoYWxsb3cg5LiN6IO95ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAxNworIzogYnVpbHRpbi9mZXRjaC5jOjEwNzAKIG1zZ2lkICItLXVuc2hhbGxvdyBvbiBhIGNvbXBsZXRlIHJlcG9zaXRvcnkgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAi5a+55LqO5LiA5Liq5a6M5pW055qE54mI5pys5bqT77yM5Y+C5pWwIC0tdW5zaGFsbG93IOayoeacieaEj+S5iSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMzYKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDg5CiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgdGFrZSBhIHJlcG9zaXRvcnkgYXJndW1lbnQiCiBtc2dzdHIgImZldGNoIC0tYWxsIOS4jeiDveW4puS4gOS4queJiOacrOW6k+WPguaVsCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMzgKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDkxCiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgbWFrZSBzZW5zZSB3aXRoIHJlZnNwZWNzIgotbXNnc3RyICJmZXRjaCAtLWFsbCDluKblvJXnlKjooajovr7lvI/msqHmnInku7vkvZXmhI/kuYkiCittc2dzdHIgImZldGNoIC0tYWxsIOW4puW8leeUqOinhOWImeayoeacieS7u+S9leaEj+S5iSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwNDkKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMTAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHN1Y2ggcmVtb3RlIG9yIHJlbW90ZSBncm91cDogJXMiCiBtc2dzdHIgIuayoeaciei/meagt+eahOi/nOeoi+aIlui/nOeoi+e7hO+8miVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTA1NworIzogYnVpbHRpbi9mZXRjaC5jOjExMTAKIG1zZ2lkICJGZXRjaGluZyBhIGdyb3VwIGFuZCBzcGVjaWZ5aW5nIHJlZnNwZWNzIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCi1tc2dzdHIgIuiOt+WPlue7hOW5tuaMh+WumuW8leeUqOihqOi+vuW8j+ayoeacieaEj+S5iSIKK21zZ3N0ciAi6I635Y+W57uE5bm25oyH5a6a5byV55So6KeE5YiZ5rKh5pyJ5oSP5LmJIgogCiAjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzoxMwogbXNnaWQgImdpdCBmbXQtbWVyZ2UtbXNnIFstbSA8bWVzc2FnZT5dIFstLWxvZ1s9PG4+XXwtLW5vLWxvZ10gWy0tZmlsZSA8ZmlsZT5dIgogbXNnc3RyICIiCiAiZ2l0IGZtdC1tZXJnZS1tc2cgWy1tIDxtZXNzYWdlPl0gWy0tbG9nWz08bj5dfC0tbm8tbG9nXSBbLS1maWxlIDxmaWxlPl0iCiAKLSM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MyBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjYgYnVpbHRpbi9ncmVwLmM6NzAwCi0jOiBidWlsdGluL21lcmdlLmM6MjAzIGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUgYnVpbHRpbi9zaG93LXJlZi5jOjE3OQotIzogYnVpbHRpbi90YWcuYzo0NDYgcGFyc2Utb3B0aW9ucy5oOjEzMyBwYXJzZS1vcHRpb25zLmg6MjQzCisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjMgYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY2IGJ1aWx0aW4vZ3JlcC5jOjcwMgorIzogYnVpbHRpbi9tZXJnZS5jOjIwMyBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzgKKyM6IGJ1aWx0aW4vdGFnLmM6NDQ2IHBhcnNlLW9wdGlvbnMuaDoxMzUgcGFyc2Utb3B0aW9ucy5oOjI0NQogbXNnaWQgIm4iCiBtc2dzdHIgIm4iCiAKQEAgLTUwNTAsMTE3ICs1MjI3LDEyMSBAQAogbXNnaWQgImZpbGUgdG8gcmVhZCBmcm9tIgogbXNnc3RyICLku47mlofku7bkuK3or7vlj5YiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTc5CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjk5NQogbXNnaWQgImdpdCBmb3ItZWFjaC1yZWYgW29wdGlvbnNdIFs8cGF0dGVybj5dIgogbXNnc3RyICJnaXQgZm9yLWVhY2gtcmVmIFvpgInpobldIFs85qih5byPPl0iCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTk0CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMTAKIG1zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHNoZWxscyIKIG1zZ3N0ciAi5byV55So5Y2g5L2N56ym6YCC55So5LqOIHNoZWxscyIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5OTYKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAxMgogbXNnaWQgInF1b3RlIHBsYWNlaG9sZGVycyBzdWl0YWJseSBmb3IgcGVybCIKIG1zZ3N0ciAi5byV55So5Y2g5L2N56ym6YCC55So5LqOIHBlcmwiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTk4CisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMTQKIG1zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHB5dGhvbiIKIG1zZ3N0ciAi5byV55So5Y2g5L2N56ym6YCC55So5LqOIHB5dGhvbiIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDAwCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMTYKIG1zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHRjbCIKIG1zZ3N0ciAi5byV55So5Y2g5L2N56ym6YCC55So5LqOIHRjbCIKIAotIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDAzCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMTkKIG1zZ2lkICJzaG93IG9ubHkgPG4+IG1hdGNoZWQgcmVmcyIKIG1zZ3N0ciAi5Y+q5pi+56S6IDxuPiDkuKrljLnphY3nmoTlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwNAorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDIwCiBtc2dpZCAiZm9ybWF0IgogbXNnc3RyICLmoLzlvI8iCiAKLSM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwNAorIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDIwCiBtc2dpZCAiZm9ybWF0IHRvIHVzZSBmb3IgdGhlIG91dHB1dCIKIG1zZ3N0ciAi6L6T5Ye65qC85byPIgogCi0jOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDUKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAyMQogbXNnaWQgImtleSIKIG1zZ3N0ciAia2V5IgogCi0jOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDYKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAyMgogbXNnaWQgImZpZWxkIG5hbWUgdG8gc29ydCBvbiIKIG1zZ3N0ciAi5o6S5bqP55qE5a2X5q615ZCNIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MDgKKyM6IGJ1aWx0aW4vZnNjay5jOjYwNwogbXNnaWQgImdpdCBmc2NrIFtvcHRpb25zXSBbPG9iamVjdD4uLi5dIgogbXNnc3RyICJnaXQgZnNjayBb6YCJ6aG5XSBbPOWvueixoT4uLi5dIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTQKKyM6IGJ1aWx0aW4vZnNjay5jOjYxMwogbXNnaWQgInNob3cgdW5yZWFjaGFibGUgb2JqZWN0cyIKIG1zZ3N0ciAi5pi+56S65LiN5Y+v6L6+55qE5a+56LGhIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTUKKyM6IGJ1aWx0aW4vZnNjay5jOjYxNAogbXNnaWQgInNob3cgZGFuZ2xpbmcgb2JqZWN0cyIKIG1zZ3N0ciAi5pi+56S65pGH5pGG55qE5a+56LGhIgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTYKKyM6IGJ1aWx0aW4vZnNjay5jOjYxNQogbXNnaWQgInJlcG9ydCB0YWdzIgogbXNnc3RyICLmiqXlkYogdGFncyIKIAotIzogYnVpbHRpbi9mc2NrLmM6NjE3CisjOiBidWlsdGluL2ZzY2suYzo2MTYKIG1zZ2lkICJyZXBvcnQgcm9vdCBub2RlcyIKIG1zZ3N0ciAi5oql5ZGK5qC56IqC54K5IgogCi0jOiBidWlsdGluL2ZzY2suYzo2MTgKKyM6IGJ1aWx0aW4vZnNjay5jOjYxNwogbXNnaWQgIm1ha2UgaW5kZXggb2JqZWN0cyBoZWFkIG5vZGVzIgogbXNnc3RyICLlsIbntKLlvJXkuqbkvZzkuLrmo4Dmn6XnmoTlpLToioLngrkiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYxOQorIzogYnVpbHRpbi9mc2NrLmM6NjE4CiBtc2dpZCAibWFrZSByZWZsb2dzIGhlYWQgbm9kZXMgKGRlZmF1bHQpIgogbXNnc3RyICLlsIblvJXnlKjml6Xlv5fkvZzkuLrmo4Dmn6XnmoTlpLToioLngrnvvIjpu5jorqTvvIkiCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYyMAorIzogYnVpbHRpbi9mc2NrLmM6NjE5CiBtc2dpZCAiYWxzbyBjb25zaWRlciBwYWNrcyBhbmQgYWx0ZXJuYXRlIG9iamVjdHMiCiBtc2dzdHIgIuS5n+iAg+iZkeWMheWSjOWkh+eUqOWvueixoSIKIAotIzogYnVpbHRpbi9mc2NrLmM6NjIxCisjOiBidWlsdGluL2ZzY2suYzo2MjAKIG1zZ2lkICJlbmFibGUgbW9yZSBzdHJpY3QgY2hlY2tpbmciCiBtc2dzdHIgIuWQr+eUqOabtOS4peagvOeahOajgOafpSIKIAotIzogYnVpbHRpbi9mc2NrLmM6NjIzCisjOiBidWlsdGluL2ZzY2suYzo2MjIKIG1zZ2lkICJ3cml0ZSBkYW5nbGluZyBvYmplY3RzIGluIC5naXQvbG9zdC1mb3VuZCIKIG1zZ3N0ciAi5bCG5pGH5pGG5a+56LGh5YaZ5YWlIC5naXQvbG9zdC1mb3VuZCDkuK0iCiAKLSM6IGJ1aWx0aW4vZnNjay5jOjYyNCBidWlsdGluL3BydW5lLmM6MTM0CisjOiBidWlsdGluL2ZzY2suYzo2MjMgYnVpbHRpbi9wcnVuZS5jOjEzNAogbXNnaWQgInNob3cgcHJvZ3Jlc3MiCiBtc2dzdHIgIuaYvuekuui/m+W6piIKIAotIzogYnVpbHRpbi9nYy5jOjIyCisjOiBidWlsdGluL2djLmM6MjMKIG1zZ2lkICJnaXQgZ2MgW29wdGlvbnNdIgogbXNnc3RyICJnaXQgZ2MgW+mAiemhuV0iCiAKLSM6IGJ1aWx0aW4vZ2MuYzo2MworIzogYnVpbHRpbi9nYy5jOjc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgJXM6ICclcyciCiBtc2dzdHIgIuaXoOaViOeahCAlc++8miclcyciCiAKLSM6IGJ1aWx0aW4vZ2MuYzo5MAorIzogYnVpbHRpbi9nYy5jOjEwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnNhbmVseSBsb25nIG9iamVjdCBkaXJlY3RvcnkgJS4qcyIKIG1zZ3N0ciAi5LiN5q2j5bi455qE6ZW/5a+56LGh55uu5b2VICUuKnMiCiAKLSM6IGJ1aWx0aW4vZ2MuYzoxNzkKKyM6IGJ1aWx0aW4vZ2MuYzoyNjEKIG1zZ2lkICJwcnVuZSB1bnJlZmVyZW5jZWQgb2JqZWN0cyIKIG1zZ3N0ciAi5riF6Zmk5pyq5byV55So55qE5a+56LGhIgogCi0jOiBidWlsdGluL2djLmM6MTgxCisjOiBidWlsdGluL2djLmM6MjYzCiBtc2dpZCAiYmUgbW9yZSB0aG9yb3VnaCAoaW5jcmVhc2VkIHJ1bnRpbWUpIgogbXNnc3RyICLmm7TlvbvlupXvvIjlop7liqDov5DooYzml7bpl7TvvIkiCiAKLSM6IGJ1aWx0aW4vZ2MuYzoxODIKKyM6IGJ1aWx0aW4vZ2MuYzoyNjQKIG1zZ2lkICJlbmFibGUgYXV0by1nYyBtb2RlIgogbXNnc3RyICLlkK/nlKjoh6rliqjlnoPlnL7lm57mlLbmqKHlvI8iCiAKLSM6IGJ1aWx0aW4vZ2MuYzoyMjIKKyM6IGJ1aWx0aW4vZ2MuYzoyNjUKK21zZ2lkICJmb3JjZSBydW5uaW5nIGdjIGV2ZW4gaWYgdGhlcmUgbWF5IGJlIGFub3RoZXIgZ2MgcnVubmluZyIKK21zZ3N0ciAi5by65Yi25omn6KGMIGdjIOWNs+S9v+WPpuWkluS4gOS4qiBnYyDmraPlnKjmiafooYwiCisKKyM6IGJ1aWx0aW4vZ2MuYzozMDUKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkF1dG8gcGFja2luZyB0aGUgcmVwb3NpdG9yeSBmb3Igb3B0aW11bSBwZXJmb3JtYW5jZS4gWW91IG1heSBhbHNvXG4iCkBAIC01MTY5LDQxICs1MzUwLDQ5IEBACiAi6Ieq5Yqo5omT5YyF54mI5pys5bqT5Lul5rGC5pyA5L2z5oCn6IO944CC5oKo6L+Y5Y+v5Lul5omL5Yqo6L+Q6KGMIFwiZ2l0IGdjXCLjgIJcbiIKICLlj4Lop4EgXCJnaXQgaGVscCBnY1wiIOS7peiOt+WPluabtOWkmuS/oeaBr+OAglxuIgogCi0jOiBidWlsdGluL2djLmM6MjQ5CisjLiBiZSBxdWlldCBvbiAtLWF1dG8KKyM6IGJ1aWx0aW4vZ2MuYzozMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImdjIGlzIGFscmVhZHkgcnVubmluZyBvbiBtYWNoaW5lICclcycgcGlkICU8UFJJdU1BWD4gKHVzZSAtLWZvcmNlIGlmIG5vdCkiCittc2dzdHIgIiIKKyLlt7Lnu4/mnInkuIDkuKogZ2Mg5q2j6L+Q6KGM5Zyo5py65ZmoICclcycgcGlkICU8UFJJdU1BWD4g77yI5aaC5p6c5LiN5piv77yM5L2/55SoIC0tZm9yY2XvvIkiCisKKyM6IGJ1aWx0aW4vZ2MuYzozNDAKIG1zZ2lkICIiCiAiVGhlcmUgYXJlIHRvbyBtYW55IHVucmVhY2hhYmxlIGxvb3NlIG9iamVjdHM7IHJ1biAnZ2l0IHBydW5lJyB0byByZW1vdmUgdGhlbS4iCiBtc2dzdHIgIuacieWkquWkmuS4jeWPr+i+vueahOadvuaVo+Wvueixoe+8jOi/kOihjCAnZ2l0IHBydW5lJyDliKDpmaTlroPku6zjgIIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjIyCisjOiBidWlsdGluL2dyZXAuYzoyMwogbXNnaWQgImdpdCBncmVwIFtvcHRpb25zXSBbLWVdIDxwYXR0ZXJuPiBbPHJldj4uLi5dIFtbLS1dIDxwYXRoPi4uLl0iCiBtc2dzdHIgImdpdCBncmVwIFvpgInpobldIFstZV0gPOaooeW8jz4gWzzkv67orqI+Li4uXSBbWy0tXSA86Lev5b6EPi4uLl0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjIxNworIzogYnVpbHRpbi9ncmVwLmM6MjE4CiAjLCBjLWZvcm1hdAogbXNnaWQgImdyZXA6IGZhaWxlZCB0byBjcmVhdGUgdGhyZWFkOiAlcyIKIG1zZ3N0ciAiZ3JlcO+8muaXoOazleWIm+W7uue6v+eoi++8miVzIgogCi0jOiBidWlsdGluL2dyZXAuYzozNjQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjM2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gY2hkaXI6ICVzIgogbXNnc3RyICLml6Dms5XliIfmjaLnm67lvZXvvJolcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NDQyIGJ1aWx0aW4vZ3JlcC5jOjQ3NworIzogYnVpbHRpbi9ncmVwLmM6NDQzIGJ1aWx0aW4vZ3JlcC5jOjQ3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCB0cmVlICglcykiCiBtc2dzdHIgIuaXoOazleivu+WPluagke+8iCVz77yJIgogCi0jOiBidWlsdGluL2dyZXAuYzo0OTIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjQ5MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gZ3JlcCBmcm9tIG9iamVjdCBvZiB0eXBlICVzIgogbXNnc3RyICLml6Dms5XmipPlj5bmnaXoh6rkuo4gJXMg57G75Z6L55qE5a+56LGhIgogCi0jOiBidWlsdGluL2dyZXAuYzo1NTAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjU1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJzd2l0Y2ggYCVjJyBleHBlY3RzIGEgbnVtZXJpY2FsIHZhbHVlIgogbXNnc3RyICLlvIDlhbMgYCVjJyDmnJ/mnJvkuIDkuKrmlbDlrZflgLwiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjU2NworIzogYnVpbHRpbi9ncmVwLmM6NTY4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICclcyciCiBtc2dzdHIgIuS4jeiDveaJk+W8gCAnJXMnIgpAQCAtNTI0NiwxNTggKzU0MzUsMTYyIEBACiBtc2dzdHIgIuS4jeWcqOS6jOi/m+WItuaWh+S7tuS4reWMuemFjeaooeW8jyIKIAogIzogYnVpbHRpbi9ncmVwLmM6NjYyCittc2dpZCAicHJvY2VzcyBiaW5hcnkgZmlsZXMgd2l0aCB0ZXh0Y29udiBmaWx0ZXJzIgorbXNnc3RyICLnlKggdGV4dGNvbnYg6L+H5ruk5Zmo5aSE55CG5LqM6L+b5Yi25paH5Lu2IgorCisjOiBidWlsdGluL2dyZXAuYzo2NjQKIG1zZ2lkICJkZXNjZW5kIGF0IG1vc3QgPGRlcHRoPiBsZXZlbHMiCiBtc2dzdHIgIuacgOWkmuS7peaMh+WumueahOa3seW6puWQkeS4i+Wvu+aJviIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjY2CisjOiBidWlsdGluL2dyZXAuYzo2NjgKIG1zZ2lkICJ1c2UgZXh0ZW5kZWQgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyIKIG1zZ3N0ciAi5L2/55So5omp5bGV55qEIFBPU0lYIOato+WImeihqOi+vuW8jyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjY5CisjOiBidWlsdGluL2dyZXAuYzo2NzEKIG1zZ2lkICJ1c2UgYmFzaWMgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyAoZGVmYXVsdCkiCiBtc2dzdHIgIuS9v+eUqOWfuuacrOeahCBQT1NJWCDmraPliJnooajovr7lvI/vvIjpu5jorqTvvIkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3MgorIzogYnVpbHRpbi9ncmVwLmM6Njc0CiBtc2dpZCAiaW50ZXJwcmV0IHBhdHRlcm5zIGFzIGZpeGVkIHN0cmluZ3MiCiBtc2dzdHIgIuaKiuaooeW8j+ino+aekOS4uuWbuuWumueahOWtl+espuS4siIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njc1CisjOiBidWlsdGluL2dyZXAuYzo2NzcKIG1zZ2lkICJ1c2UgUGVybC1jb21wYXRpYmxlIHJlZ3VsYXIgZXhwcmVzc2lvbnMiCiBtc2dzdHIgIuS9v+eUqCBQZXJsIOWFvOWuueeahOato+WImeihqOi+vuW8jyIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njc4CisjOiBidWlsdGluL2dyZXAuYzo2ODAKIG1zZ2lkICJzaG93IGxpbmUgbnVtYmVycyIKIG1zZ3N0ciAi5pi+56S66KGM5Y+3IgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MQogbXNnaWQgImRvbid0IHNob3cgZmlsZW5hbWVzIgogbXNnc3RyICLkuI3mmL7npLrmlofku7blkI0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MAorIzogYnVpbHRpbi9ncmVwLmM6NjgyCiBtc2dpZCAic2hvdyBmaWxlbmFtZXMiCiBtc2dzdHIgIuaYvuekuuaWh+S7tuWQjSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjgyCisjOiBidWlsdGluL2dyZXAuYzo2ODQKIG1zZ2lkICJzaG93IGZpbGVuYW1lcyByZWxhdGl2ZSB0byB0b3AgZGlyZWN0b3J5IgogbXNnc3RyICLmmL7npLrnm7jlr7nkuo7pobbnuqfnm67lvZXnmoTmlofku7blkI0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4NAorIzogYnVpbHRpbi9ncmVwLmM6Njg2CiBtc2dpZCAic2hvdyBvbmx5IGZpbGVuYW1lcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICLlj6rmmL7npLrmlofku7blkI3ogIzkuI3mmL7npLrljLnphY3nmoTooYwiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4NgorIzogYnVpbHRpbi9ncmVwLmM6Njg4CiBtc2dpZCAic3lub255bSBmb3IgLS1maWxlcy13aXRoLW1hdGNoZXMiCiBtc2dzdHIgIuWSjCAtLWZpbGVzLXdpdGgtbWF0Y2hlcyDlkIzkuYkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4OQorIzogYnVpbHRpbi9ncmVwLmM6NjkxCiBtc2dpZCAic2hvdyBvbmx5IHRoZSBuYW1lcyBvZiBmaWxlcyB3aXRob3V0IG1hdGNoIgogbXNnc3RyICLlj6rmmL7npLrmnKrljLnphY3nmoTmlofku7blkI0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5MQorIzogYnVpbHRpbi9ncmVwLmM6NjkzCiBtc2dpZCAicHJpbnQgTlVMIGFmdGVyIGZpbGVuYW1lcyIKIG1zZ3N0ciAi5Zyo5paH5Lu25ZCN5ZCO6L6T5Ye6IE5VTCDlrZfnrKYiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5MworIzogYnVpbHRpbi9ncmVwLmM6Njk1CiBtc2dpZCAic2hvdyB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgaW5zdGVhZCBvZiBtYXRjaGluZyBsaW5lcyIKIG1zZ3N0ciAi5pi+56S65oC75Yy56YWN6KGM5pWw77yM6ICM5LiN5pi+56S65Yy56YWN55qE6KGMIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NgogbXNnaWQgImhpZ2hsaWdodCBtYXRjaGVzIgogbXNnc3RyICLpq5jkuq7mmL7npLrljLnphY3pobkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NgorIzogYnVpbHRpbi9ncmVwLmM6Njk4CiBtc2dpZCAicHJpbnQgZW1wdHkgbGluZSBiZXR3ZWVuIG1hdGNoZXMgZnJvbSBkaWZmZXJlbnQgZmlsZXMiCiBtc2dzdHIgIuWcqOS4jeWQjOaWh+S7tueahOWMuemFjemhueS5i+mXtOaJk+WNsOepuuihjCIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk4CisjOiBidWlsdGluL2dyZXAuYzo3MDAKIG1zZ2lkICJzaG93IGZpbGVuYW1lIG9ubHkgb25jZSBhYm92ZSBtYXRjaGVzIGZyb20gc2FtZSBmaWxlIgogbXNnc3RyICLlj6rlnKjlkIzkuIDmlofku7bnmoTljLnphY3pobnnmoTkuIrpnaLmmL7npLrkuIDmrKHmlofku7blkI0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwMQorIzogYnVpbHRpbi9ncmVwLmM6NzAzCiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgYW5kIGFmdGVyIG1hdGNoZXMiCiBtc2dzdHIgIuaYvuekuuWMuemFjemhueWJjeWQjueahCA8bj4g6KGM5LiK5LiL5paHIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNgogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYmVmb3JlIG1hdGNoZXMiCiBtc2dzdHIgIuaYvuekuuWMuemFjemhueWJjSA8bj4g6KGM5LiK5LiL5paHIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwOAogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYWZ0ZXIgbWF0Y2hlcyIKIG1zZ3N0ciAi5pi+56S65Yy56YWN6aG55ZCOIDxuPiDooYzkuIrkuIvmlociCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwNworIzogYnVpbHRpbi9ncmVwLmM6NzA5CiBtc2dpZCAic2hvcnRjdXQgZm9yIC1DIE5VTSIKIG1zZ3N0ciAi5b+r5o236ZSuIC1DIOaVsOWtlyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzEwCisjOiBidWlsdGluL2dyZXAuYzo3MTIKIG1zZ2lkICJzaG93IGEgbGluZSB3aXRoIHRoZSBmdW5jdGlvbiBuYW1lIGJlZm9yZSBtYXRjaGVzIgogbXNnc3RyICLlnKjljLnphY3nmoTliY3pnaLmmL7npLrkuIDooYzlh73mlbDlkI0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxMgorIzogYnVpbHRpbi9ncmVwLmM6NzE0CiBtc2dpZCAic2hvdyB0aGUgc3Vycm91bmRpbmcgZnVuY3Rpb24iCiBtc2dzdHIgIuaYvuekuuaJgOWcqOWHveaVsOeahOWJjeWQjuWGheWuuSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE1CisjOiBidWlsdGluL2dyZXAuYzo3MTcKIG1zZ2lkICJyZWFkIHBhdHRlcm5zIGZyb20gZmlsZSIKIG1zZ3N0ciAi5LuO5paH5Lu26K+75Y+W5qih5byPIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxOQogbXNnaWQgIm1hdGNoIDxwYXR0ZXJuPiIKIG1zZ3N0ciAi5Yy56YWNIDzmqKHlvI8+IgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcyMQogbXNnaWQgImNvbWJpbmUgcGF0dGVybnMgc3BlY2lmaWVkIHdpdGggLWUiCiBtc2dzdHIgIue7hOWQiOeUqCAtZSDlj4LmlbDorr7lrprnmoTmqKHlvI8iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczMQorIzogYnVpbHRpbi9ncmVwLmM6NzMzCiBtc2dpZCAiaW5kaWNhdGUgaGl0IHdpdGggZXhpdCBzdGF0dXMgd2l0aG91dCBvdXRwdXQiCiBtc2dzdHIgIuS4jei+k+WHuu+8jOiAjOeUqOmAgOWHuueggeagh+ivhuWRveS4reeKtuaAgSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzMzCisjOiBidWlsdGluL2dyZXAuYzo3MzUKIG1zZ2lkICJzaG93IG9ubHkgbWF0Y2hlcyBmcm9tIGZpbGVzIHRoYXQgbWF0Y2ggYWxsIHBhdHRlcm5zIgogbXNnc3RyICLlj6rmmL7npLrljLnphY3miYDmnInmqKHlvI/nmoTmlofku7bkuK3nmoTljLnphY0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczNQorIzogYnVpbHRpbi9ncmVwLmM6NzM3CiBtc2dpZCAic2hvdyBwYXJzZSB0cmVlIGZvciBncmVwIGV4cHJlc3Npb24iCiBtc2dzdHIgIuaYvuekuiBncmVwIOihqOi+vuW8j+eahOino+aekOagkSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzM5CisjOiBidWlsdGluL2dyZXAuYzo3NDEKIG1zZ2lkICJwYWdlciIKIG1zZ3N0ciAi5YiG6aG1IgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0MQogbXNnaWQgInNob3cgbWF0Y2hpbmcgZmlsZXMgaW4gdGhlIHBhZ2VyIgogbXNnc3RyICLliIbpobXmmL7npLrljLnphY3nmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MgorIzogYnVpbHRpbi9ncmVwLmM6NzQ0CiBtc2dpZCAiYWxsb3cgY2FsbGluZyBvZiBncmVwKDEpIChpZ25vcmVkIGJ5IHRoaXMgYnVpbGQpIgogbXNnc3RyICLlhYHorrjosIPnlKggZ3JlcCgxKe+8iOacrOasoeaehOW7uuW/veeVpe+8iSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQzIGJ1aWx0aW4vc2hvdy1yZWYuYzoxODgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0NSBidWlsdGluL3Nob3ctcmVmLmM6MTg3CiBtc2dpZCAic2hvdyB1c2FnZSIKIG1zZ3N0ciAi5pi+56S655So5rOVIgogCi0jOiBidWlsdGluL2dyZXAuYzo4MTAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjgxMgogbXNnaWQgIm5vIHBhdHRlcm4gZ2l2ZW4uIgogbXNnc3RyICLmnKrmj5DkvpvmqKHlvI/ljLnphY3jgIIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg2NQorIzogYnVpbHRpbi9ncmVwLmM6ODcwCiBtc2dpZCAiLS1vcGVuLWZpbGVzLWluLXBhZ2VyIG9ubHkgd29ya3Mgb24gdGhlIHdvcmt0cmVlIgogbXNnc3RyICItLW9wZW4tZmlsZXMtaW4tcGFnZXIg5LuF55So5LqO5bel5L2c5Yy6IgogCi0jOiBidWlsdGluL2dyZXAuYzo4ODgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg5MwogbXNnaWQgIi0tY2FjaGVkIG9yIC0tdW50cmFja2VkIGNhbm5vdCBiZSB1c2VkIHdpdGggLS1uby1pbmRleC4iCiBtc2dzdHIgIi0tY2FjaGVkIOaIliAtLXVudHJhY2tlZCDkuI3og73kuI4gLS1uby1pbmRleCDlkIzml7bkvb/nlKjjgIIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5MworIzogYnVpbHRpbi9ncmVwLmM6ODk4CiBtc2dpZCAiLS1uby1pbmRleCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIHJldnMuIgogbXNnc3RyICItLW5vLWluZGV4IOaIliAtLXVudHJhY2tlZCDkuI3og73lkozniYjmnKzlkIzml7bkvb/nlKjjgIIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5NgorIzogYnVpbHRpbi9ncmVwLmM6OTAxCiBtc2dpZCAiLS1bbm8tXWV4Y2x1ZGUtc3RhbmRhcmQgY2Fubm90IGJlIHVzZWQgZm9yIHRyYWNrZWQgY29udGVudHMuIgogbXNnc3RyICItLVtuby1dZXhjbHVkZS1zdGFuZGFyZCDkuI3og73nlKjkuo7lt7Lot5/ouKrlhoXlrrnjgIIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjkwNAorIzogYnVpbHRpbi9ncmVwLmM6OTA5CiBtc2dpZCAiYm90aCAtLWNhY2hlZCBhbmQgdHJlZXMgYXJlIGdpdmVuLiIKIG1zZ3N0ciAi5ZCM5pe257uZ5Ye65LqGIC0tY2FjaGVkIOWSjOagkeWvueixoeOAgiIKIApAQCAtNTY1Miw4ICs1ODQ1LDggQEAKIG1zZ2lkICJTSEExIENPTExJU0lPTiBGT1VORCBXSVRIICVzICEiCiBtc2dzdHIgIuWPkeeOsCAlcyDlh7rnjrAgU0hBMSDlhrLnqoHvvIEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2OSBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE3MAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNjIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2OSBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE3MQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNjMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgJXMiCiBtc2dzdHIgIuS4jeiDveivuyAlcyIKQEAgLTU2ODIsMTU1ICs1ODc1LDE1NSBAQAogbXNnaWQgIk5vdCBhbGwgY2hpbGQgb2JqZWN0cyBvZiAlcyBhcmUgcmVhY2hhYmxlIgogbXNnc3RyICIlcyDnmoTmiYDmnInlrZDlr7nosaHlubbpnZ7pg73lj6/ovr4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjgzOCBidWlsdGluL2luZGV4LXBhY2suYzo4NjgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjgzOSBidWlsdGluL2luZGV4LXBhY2suYzo4NjkKIG1zZ2lkICJmYWlsZWQgdG8gYXBwbHkgZGVsdGEiCiBtc2dzdHIgIuaXoOazleW6lOeUqCBkZWx0YSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwOQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAxMAogbXNnaWQgIlJlY2VpdmluZyBvYmplY3RzIgogbXNnc3RyICLmjqXmlLblr7nosaHkuK0iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMTAKIG1zZ2lkICJJbmRleGluZyBvYmplY3RzIgogbXNnc3RyICLntKLlvJXlr7nosaHkuK0iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzYKIG1zZ2lkICJwYWNrIGlzIGNvcnJ1cHRlZCAoU0hBMSBtaXNtYXRjaCkiCiBtc2dzdHIgIuWMheWGsueqge+8iFNIQTEg5LiN5Yy56YWN77yJIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQxCiBtc2dpZCAiY2Fubm90IGZzdGF0IHBhY2tmaWxlIgogbXNnc3RyICLkuI3og73mnprkuL7ljIXmlofku7bnirbmgIEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDQKIG1zZ2lkICJwYWNrIGhhcyBqdW5rIGF0IHRoZSBlbmQiCiBtc2dzdHIgIuWMheeahOe7k+WwvuacieWeg+WcvuaVsOaNriIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA1NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA1NQogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkgaW4gcGFyc2VfcGFja19vYmplY3RzKCkiCiBtc2dzdHIgInBhcnNlX3BhY2tfb2JqZWN0cygpIOS4remBh+WIsOS4jeWPr+eQhuWWu+eahOmXrumimCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA3NworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA3OAogbXNnaWQgIlJlc29sdmluZyBkZWx0YXMiCiBtc2dzdHIgIuWkhOeQhiBkZWx0YSDkuK0iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwODcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwODgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSB0aHJlYWQ6ICVzIgogbXNnc3RyICLkuI3og73liJvlu7rnur/nqIvvvJolcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyOQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzMAogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkiCiBtc2dzdHIgIuS4jeWPr+eQhuWWuyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzNworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb21wbGV0ZWQgd2l0aCAlZCBsb2NhbCBvYmplY3RzIgogbXNnc3RyICLlrozmiJAgJWQg5Liq5pys5Zyw5a+56LGhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTQ3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVuZXhwZWN0ZWQgdGFpbCBjaGVja3N1bSBmb3IgJXMgKGRpc2sgY29ycnVwdGlvbj8pIgogbXNnc3RyICLlr7kgJXMg55qE5bC+6YOo5qCh6aqM5Ye6546w5oSP5aSW77yI56OB55uY5o2f5Z2P77yf77yJIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTUxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGEiCiBtc2dpZF9wbHVyYWwgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGFzIgogbXNnc3RyWzBdICLljIXmnIkgJWQg5Liq5pyq6Kej5Yaz55qEIGRlbHRhIgogbXNnc3RyWzFdICLljIXmnIkgJWQg5Liq5pyq6Kej5Yaz55qEIGRlbHRhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTc2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTc3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBkZWZsYXRlIGFwcGVuZGVkIG9iamVjdCAoJWQpIgogbXNnc3RyICLkuI3og73ljovnvKnpmYTliqDlr7nosaHvvIglZO+8iSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJsb2NhbCBvYmplY3QgJXMgaXMgY29ycnVwdCIKIG1zZ3N0ciAi5pys5Zyw5a+56LGhICVzIOW3suaNn+WdjyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI3OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI4MAogbXNnaWQgImVycm9yIHdoaWxlIGNsb3NpbmcgcGFjayBmaWxlIgogbXNnc3RyICLlhbPpl63ljIXmlofku7bml7blh7rplJkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyOTIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyOTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHdyaXRlIGtlZXAgZmlsZSAnJXMnIgogbXNnc3RyICLml6Dms5Xlhpnkv53nlZnmlofku7YgJyVzJyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMwMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMwMQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY2xvc2Ugd3JpdHRlbiBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAi5peg5rOV5YWz6Zet5L+d55WZ5paH5Lu2ICclcyciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTQKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgcGFjayBmaWxlIgogbXNnc3RyICLml6Dms5XlrZjlgqjljIXmlofku7YiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMjQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMjUKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgaW5kZXggZmlsZSIKIG1zZ3N0ciAi5peg5rOV5a2Y5YKo57Si5byV5paH5Lu2IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzU3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzU4CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBwYWNrLmluZGV4dmVyc2lvbj0lPFBSSXUzMj4iCiBtc2dzdHIgIuWdj+eahCBwYWNrLmluZGV4dmVyc2lvbj0lPFBSSXUzMj4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgdGhyZWFkcyBzcGVjaWZpZWQgKCVkKSIKIG1zZ3N0ciAi5oyH5a6a55qE57q/56iL5pWw5peg5pWI77yIJWTvvIkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2OCBidWlsdGluL2luZGV4LXBhY2suYzoxNTQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHRocmVhZHMgc3VwcG9ydCwgaWdub3JpbmcgJXMiCiBtc2dzdHIgIuayoeaciee6v+eoi+aUr+aMge+8jOW/veeVpSAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGZpbGUgJyVzJyIKIG1zZ3N0ciAi5peg5rOV5omT5byA546w5a2Y5YyF5paH5Lu2ICclcyciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gZXhpc3RpbmcgcGFjayBpZHggZmlsZSBmb3IgJyVzJyIKIG1zZ3N0ciAi5peg5rOV5Li6ICVzIOaJk+W8gOWMhee0ouW8leaWh+S7tiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJub24gZGVsdGE6ICVkIG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAibm9uIGRlbHRhOiAlZCBvYmplY3RzIgogbXNnc3RyWzBdICLpnZ4gZGVsdGHvvJolZCDkuKrlr7nosaEiCiBtc2dzdHJbMV0gIumdniBkZWx0Ye+8miVkIOS4quWvueixoSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ4MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGFpbiBsZW5ndGggPSAlZDogJWx1IG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3RzIgogbXNnc3RyWzBdICLpk77plb8gPSAlZDogJWx1IOWvueixoSIKIG1zZ3N0clsxXSAi6ZO+6ZW/ID0gJWQ6ICVsdSDlr7nosaEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MTAKIG1zZ2lkICJDYW5ub3QgY29tZSBiYWNrIHRvIGN3ZCIKIG1zZ3N0ciAi5peg5rOV6L+U5Zue5b2T5YmN5bel5L2c55uu5b2VIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTU3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU1OCBidWlsdGluL2luZGV4LXBhY2suYzoxNTYxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTczIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkICVzIgogbXNnc3RyICLplJnor6/pgInpobkgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTEKIG1zZ2lkICItLWZpeC10aGluIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgLS1zdGRpbiIKIG1zZ3N0ciAiLS1maXgtdGhpbiDkuI3og73lkowgLS1zdGRpbiDlkIzml7bkvb/nlKgiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5NSBidWlsdGluL2luZGV4LXBhY2suYzoxNjA1CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2tmaWxlIG5hbWUgJyVzJyBkb2VzIG5vdCBlbmQgd2l0aCAnLnBhY2snIgogbXNnc3RyICLljIXlkI0gJyVzJyDmsqHmnInku6UgJy5wYWNrJyDnu5PlsL4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MTMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MTQKIG1zZ2lkICItLXZlcmlmeSB3aXRoIG5vIHBhY2tmaWxlIG5hbWUgZ2l2ZW4iCiBtc2dzdHIgIi0tdmVyaWZ5IOayoeacieaPkOS+m+WMheWQjeWPguaVsCIKIApAQCAtNTkxOSwxMSArNjExMiw2IEBACiBtc2dpZCAidW5hYmxlIHRvIG1vdmUgJXMgdG8gJXMiCiBtc2dzdHIgIuS4jeiDveenu+WKqCAlcyDoh7MgJXMiCiAKLSM6IGJ1aWx0aW4vaW5pdC1kYi5jOjM2MwotIywgYy1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGdpdCBsaW5rICVzIgotbXNnc3RyICLkuI3og73liJvlu7ogZ2l0IGxpbmsgJXMiCi0KICMuCiAjLiAqIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJyVzJyBpcyBlaXRoZXIgIlJlaW5pdGlhbGl6ZWQKICMuICogZXhpc3RpbmciIG9yICJJbml0aWFsaXplZCBlbXB0eSIsIHRoZSBzZWNvbmQgIiBzaGFyZWQiIG9yCkBAIC01OTY3LDcgKzYxNTUsNyBAQAogbXNnaWQgInNwZWNpZnkgdGhhdCB0aGUgZ2l0IHJlcG9zaXRvcnkgaXMgdG8gYmUgc2hhcmVkIGFtb25nc3Qgc2V2ZXJhbCB1c2VycyIKIG1zZ3N0ciAi5oyH5a6aIGdpdCDniYjmnKzlupPmmK/lpJrkuKrnlKjmiLfkuYvpl7TlhbHkuqvnmoQiCiAKLSM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc1CisjOiBidWlsdGluL2luaXQtZGIuYzo0OTMgYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NSBidWlsdGluL3JlcGFjay5jOjE1NQogbXNnaWQgImJlIHF1aWV0IgogbXNnc3RyICLkv53mjIHlronpnZkiCiAKQEAgLTYwMDcsMzgxICs2MTk1LDM4MSBAQAogbXNnaWQgIiAgIG9yOiBnaXQgc2hvdyBbb3B0aW9uc10gPG9iamVjdD4uLi4iCiBtc2dzdHIgIiAgIOaIluiAhe+8mmdpdCBzaG93IFvpgInpobldIDzlr7nosaE+Li4uIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNAorIzogYnVpbHRpbi9sb2cuYzoxMjUKIG1zZ2lkICJzdXBwcmVzcyBkaWZmIG91dHB1dCIKIG1zZ3N0ciAi5LiN5pi+56S65beu5byC6L6T5Ye6IgogCi0jOiBidWlsdGluL2xvZy5jOjEyNQorIzogYnVpbHRpbi9sb2cuYzoxMjYKIG1zZ2lkICJzaG93IHNvdXJjZSIKIG1zZ3N0ciAi5pi+56S65rqQIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNgorIzogYnVpbHRpbi9sb2cuYzoxMjcKIG1zZ2lkICJVc2UgbWFpbCBtYXAgZmlsZSIKIG1zZ3N0ciAi5L2/55So6YKu5Lu25pig5bCE5paH5Lu2IgogCi0jOiBidWlsdGluL2xvZy5jOjEyNworIzogYnVpbHRpbi9sb2cuYzoxMjgKIG1zZ2lkICJkZWNvcmF0ZSBvcHRpb25zIgogbXNnc3RyICLkv67ppbDpgInpobkiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MjMwCisjOiBidWlsdGluL2xvZy5jOjIzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJGaW5hbCBvdXRwdXQ6ICVkICVzXG4iCiBtc2dzdHIgIuacgOe7iOi+k+WHuu+8miVkICVzXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NDUzIGJ1aWx0aW4vbG9nLmM6NTQ1CisjOiBidWlsdGluL2xvZy5jOjQ3MyBidWlsdGluL2xvZy5jOjU2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCBvYmplY3QgJXMiCiBtc2dzdHIgIuS4jeiDveivu+WPluWvueixoSAlcyIKIAotIzogYnVpbHRpbi9sb2cuYzo1NjkKKyM6IGJ1aWx0aW4vbG9nLmM6NTg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gdHlwZTogJWQiCiBtc2dzdHIgIuacquefpeexu+Wei++8miVkIgogCi0jOiBidWlsdGluL2xvZy5jOjY2OQorIzogYnVpbHRpbi9sb2cuYzo2ODkKIG1zZ2lkICJmb3JtYXQuaGVhZGVycyB3aXRob3V0IHZhbHVlIgogbXNnc3RyICJmb3JtYXQuaGVhZGVycyDmsqHmnInlgLwiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzUxCisjOiBidWlsdGluL2xvZy5jOjc3MQogbXNnaWQgIm5hbWUgb2Ygb3V0cHV0IGRpcmVjdG9yeSBpcyB0b28gbG9uZyIKIG1zZ3N0ciAi6L6T5Ye655uu5b2V5ZCN5aSq6ZW/IgogCi0jOiBidWlsdGluL2xvZy5jOjc2NworIzogYnVpbHRpbi9sb2cuYzo3ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gcGF0Y2ggZmlsZSAlcyIKIG1zZ3N0ciAi5peg5rOV5omT5byA6KGl5LiB5paH5Lu2ICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjc4MQorIzogYnVpbHRpbi9sb2cuYzo4MDEKIG1zZ2lkICJOZWVkIGV4YWN0bHkgb25lIHJhbmdlLiIKIG1zZ3N0ciAi5Y+q6ZyA6KaB5LiA5Liq6IyD5Zu044CCIgogCi0jOiBidWlsdGluL2xvZy5jOjc4OQorIzogYnVpbHRpbi9sb2cuYzo4MDkKIG1zZ2lkICJOb3QgYSByYW5nZS4iCiBtc2dzdHIgIuS4jeaYr+S4gOS4quiMg+WbtOOAgiIKIAotIzogYnVpbHRpbi9sb2cuYzo4OTEKKyM6IGJ1aWx0aW4vbG9nLmM6OTExCiBtc2dpZCAiQ292ZXIgbGV0dGVyIG5lZWRzIGVtYWlsIGZvcm1hdCIKIG1zZ3N0ciAi5L+h5bCB6ZyA6KaB6YKu5Lu25Zyw5Z2A5qC85byPIgogCi0jOiBidWlsdGluL2xvZy5jOjk2NworIzogYnVpbHRpbi9sb2cuYzo5ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5zYW5lIGluLXJlcGx5LXRvOiAlcyIKIG1zZ3N0ciAi5LiN5q2j5bi455qEIGluLXJlcGx5LXRv77yaJXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6OTk1CisjOiBidWlsdGluL2xvZy5jOjEwMTUKIG1zZ2lkICJnaXQgZm9ybWF0LXBhdGNoIFtvcHRpb25zXSBbPHNpbmNlPiB8IDxyZXZpc2lvbiByYW5nZT5dIgogbXNnc3RyICJnaXQgZm9ybWF0LXBhdGNoIFvpgInpobldIFs85LuOPiB8IDzkv67orqLpm4bojIPlm7Q+XSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDQwCisjOiBidWlsdGluL2xvZy5jOjEwNjAKIG1zZ2lkICJUd28gb3V0cHV0IGRpcmVjdG9yaWVzPyIKIG1zZ3N0ciAi5Lik5Liq6L6T5Ye655uu5b2V77yfIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTUKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3NQogbXNnaWQgInVzZSBbUEFUQ0ggbi9tXSBldmVuIHdpdGggYSBzaW5nbGUgcGF0Y2giCiBtc2dzdHIgIuS9v+eUqCBbUEFUQ0ggbi9tXe+8jOWNs+S9v+WPquacieS4gOS4quihpeS4gSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTU4CisjOiBidWlsdGluL2xvZy5jOjExNzgKIG1zZ2lkICJ1c2UgW1BBVENIXSBldmVuIHdpdGggbXVsdGlwbGUgcGF0Y2hlcyIKIG1zZ3N0ciAi5L2/55SoIFtQQVRDSF3vvIzljbPkvb/mnInlpJrkuKrooaXkuIEiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE2MgorIzogYnVpbHRpbi9sb2cuYzoxMTgyCiBtc2dpZCAicHJpbnQgcGF0Y2hlcyB0byBzdGFuZGFyZCBvdXQiCiBtc2dzdHIgIuaJk+WNsOihpeS4geWIsOagh+WHhui+k+WHuiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTY0CisjOiBidWlsdGluL2xvZy5jOjExODQKIG1zZ2lkICJnZW5lcmF0ZSBhIGNvdmVyIGxldHRlciIKIG1zZ3N0ciAi55Sf5oiQ5LiA5bCB6ZmE5L+hIgogCi0jOiBidWlsdGluL2xvZy5jOjExNjYKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4NgogbXNnaWQgInVzZSBzaW1wbGUgbnVtYmVyIHNlcXVlbmNlIGZvciBvdXRwdXQgZmlsZSBuYW1lcyIKIG1zZ3N0ciAi5L2/55So566A5Y2V55qE5pWw5a2X5bqP5YiX5L2c5Li66L6T5Ye65paH5Lu25ZCNIgogCi0jOiBidWlsdGluL2xvZy5jOjExNjcKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4NwogbXNnaWQgInNmeCIKIG1zZ3N0ciAi5ZCO57yAIgogCi0jOiBidWlsdGluL2xvZy5jOjExNjgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4OAogbXNnaWQgInVzZSA8c2Z4PiBpbnN0ZWFkIG9mICcucGF0Y2gnIgogbXNnc3RyICLkvb/nlKggPOWQjue8gD4g5Luj5pu/ICcucGF0Y2gnIgogCi0jOiBidWlsdGluL2xvZy5jOjExNzAKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MAogbXNnaWQgInN0YXJ0IG51bWJlcmluZyBwYXRjaGVzIGF0IDxuPiBpbnN0ZWFkIG9mIDEiCiBtc2dzdHIgIuihpeS4geS7pSA8bj4g5byA5aeL57yW5Y+377yM6ICM5LiN5pivMSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTcyCisjOiBidWlsdGluL2xvZy5jOjExOTIKIG1zZ2lkICJtYXJrIHRoZSBzZXJpZXMgYXMgTnRoIHJlLXJvbGwiCiBtc2dzdHIgIuagh+iusOihpeS4geezu+WIl+aYr+esrOWHoOasoemHjeWItiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTc0CisjOiBidWlsdGluL2xvZy5jOjExOTQKIG1zZ2lkICJVc2UgWzxwcmVmaXg+XSBpbnN0ZWFkIG9mIFtQQVRDSF0iCiBtc2dzdHIgIuS9v+eUqCBbPOWJjee8gD5dIOS7o+abvyBbUEFUQ0hdIgogCi0jOiBidWlsdGluL2xvZy5jOjExNzcKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5NwogbXNnaWQgInN0b3JlIHJlc3VsdGluZyBmaWxlcyBpbiA8ZGlyPiIKIG1zZ3N0ciAi5oqK57uT5p6c5paH5Lu25a2Y5YKo5ZyoIDxkaXI+IgogCi0jOiBidWlsdGluL2xvZy5jOjExODAKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMAogbXNnaWQgImRvbid0IHN0cmlwL2FkZCBbUEFUQ0hdIgogbXNnc3RyICLkuI3liKDpmaQv5re75YqgIFtQQVRDSF0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE4MworIzogYnVpbHRpbi9sb2cuYzoxMjAzCiBtc2dpZCAiZG9uJ3Qgb3V0cHV0IGJpbmFyeSBkaWZmcyIKIG1zZ3N0ciAi5LiN6L6T5Ye65LqM6L+b5Yi25beu5byCIgogCi0jOiBidWlsdGluL2xvZy5jOjExODUKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwNQogbXNnaWQgImRvbid0IGluY2x1ZGUgYSBwYXRjaCBtYXRjaGluZyBhIGNvbW1pdCB1cHN0cmVhbSIKIG1zZ3N0ciAi5LiN5YyF5ZCr5bey5Zyo5LiK5ri45o+Q5Lqk5Lit55qE6KGl5LiBIgogCi0jOiBidWlsdGluL2xvZy5jOjExODcKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwNwogbXNnaWQgInNob3cgcGF0Y2ggZm9ybWF0IGluc3RlYWQgb2YgZGVmYXVsdCAocGF0Y2ggKyBzdGF0KSIKIG1zZ3N0ciAi5pi+56S657qv6KGl5LiB5qC85byP6ICM6Z2e6buY6K6k55qE77yI6KGl5LiBK+eKtuaAge+8iSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTg5CisjOiBidWlsdGluL2xvZy5jOjEyMDkKIG1zZ2lkICJNZXNzYWdpbmciCiBtc2dzdHIgIumCruS7tuWPkemAgSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTkwCisjOiBidWlsdGluL2xvZy5jOjEyMTAKIG1zZ2lkICJoZWFkZXIiCiBtc2dzdHIgImhlYWRlciIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTkxCisjOiBidWlsdGluL2xvZy5jOjEyMTEKIG1zZ2lkICJhZGQgZW1haWwgaGVhZGVyIgogbXNnc3RyICLmt7vliqDpgq7ku7blpLQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5MiBidWlsdGluL2xvZy5jOjExOTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMiBidWlsdGluL2xvZy5jOjEyMTQKIG1zZ2lkICJlbWFpbCIKIG1zZ3N0ciAi6YKu5Lu25Zyw5Z2AIgogCi0jOiBidWlsdGluL2xvZy5jOjExOTIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMgogbXNnaWQgImFkZCBUbzogaGVhZGVyIgogbXNnc3RyICLmt7vliqDmlLbku7bkuroiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5NAorIzogYnVpbHRpbi9sb2cuYzoxMjE0CiBtc2dpZCAiYWRkIENjOiBoZWFkZXIiCiBtc2dzdHIgIua3u+WKoOaKhOmAgSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTk2CisjOiBidWlsdGluL2xvZy5jOjEyMTYKIG1zZ2lkICJpZGVudCIKIG1zZ3N0ciAiaWRlbnQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE5NworIzogYnVpbHRpbi9sb2cuYzoxMjE3CiBtc2dpZCAic2V0IEZyb20gYWRkcmVzcyB0byA8aWRlbnQ+IChvciBjb21taXR0ZXIgaWRlbnQgaWYgYWJzZW50KSIKIG1zZ3N0ciAi6K6+572uIEZyb20g5Zyw5Z2A5Li6IDxpZGVudD7vvIjlpoLoi6XkuI3mj5DkvpvvvIznlKjmj5DkuqTogIVJROWBmuS4uuWcsOWdgO+8iSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTk5CisjOiBidWlsdGluL2xvZy5jOjEyMTkKIG1zZ2lkICJtZXNzYWdlLWlkIgogbXNnc3RyICJtZXNzYWdlLWlkIgogCi0jOiBidWlsdGluL2xvZy5jOjEyMDAKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyMAogbXNnaWQgIm1ha2UgZmlyc3QgbWFpbCBhIHJlcGx5IHRvIDxtZXNzYWdlLWlkPiIKIG1zZ3N0ciAi5L2/56ys5LiA5bCB6YKu5Lu25L2c5Li65a+5IDxtZXNzYWdlLWlkPiDnmoTlm57lpI0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTIwMSBidWlsdGluL2xvZy5jOjEyMDQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyMSBidWlsdGluL2xvZy5jOjEyMjQKIG1zZ2lkICJib3VuZGFyeSIKIG1zZ3N0ciAi6L6555WMIgogCi0jOiBidWlsdGluL2xvZy5jOjEyMDIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIyMgogbXNnaWQgImF0dGFjaCB0aGUgcGF0Y2giCiBtc2dzdHIgIumZhOS7tuaWueW8j+a3u+WKoOihpeS4gSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjA1CisjOiBidWlsdGluL2xvZy5jOjEyMjUKIG1zZ2lkICJpbmxpbmUgdGhlIHBhdGNoIgogbXNnc3RyICLlhoXogZTmmL7npLrooaXkuIEiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTIwOQorIzogYnVpbHRpbi9sb2cuYzoxMjI5CiBtc2dpZCAiZW5hYmxlIG1lc3NhZ2UgdGhyZWFkaW5nLCBzdHlsZXM6IHNoYWxsb3csIGRlZXAiCiBtc2dzdHIgIuWQr+eUqOmCruS7tue6v+e0ou+8jOmjjuagvO+8mua1he+8jOa3sSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjExCisjOiBidWlsdGluL2xvZy5jOjEyMzEKIG1zZ2lkICJzaWduYXR1cmUiCiBtc2dzdHIgIuetvuWQjSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjEyCisjOiBidWlsdGluL2xvZy5jOjEyMzIKIG1zZ2lkICJhZGQgYSBzaWduYXR1cmUiCiBtc2dzdHIgIua3u+WKoOS4gOS4quetvuWQjSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjE0CisjOiBidWlsdGluL2xvZy5jOjEyMzMKIG1zZ2lkICJkb24ndCBwcmludCB0aGUgcGF0Y2ggZmlsZW5hbWVzIgogbXNnc3RyICLkuI3opoHmiZPljbDooaXkuIHmlofku7blkI0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI4OAorIzogYnVpbHRpbi9sb2cuYzoxMzA3CiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgaWRlbnQgbGluZTogJXMiCiBtc2dzdHIgIuWMheWQq+aXoOaViOeahOi6q+S7veagh+ivhu+8miVzIgogCi0jOiBidWlsdGluL2xvZy5jOjEzMDMKKyM6IGJ1aWx0aW4vbG9nLmM6MTMyMgogbXNnaWQgIi1uIGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKIG1zZ3N0ciAiLW4g5ZKMIC1rIOS6kuaWpeOAgiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzA1CisjOiBidWlsdGluL2xvZy5jOjEzMjQKIG1zZ2lkICItLXN1YmplY3QtcHJlZml4IGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKIG1zZ3N0ciAiLS1zdWJqZWN0LXByZWZpeCDlkowgLWsg5LqS5pal44CCIgogCi0jOiBidWlsdGluL2xvZy5jOjEzMTMKKyM6IGJ1aWx0aW4vbG9nLmM6MTMzMgogbXNnaWQgIi0tbmFtZS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tbmFtZS1vbmx5IOaXoOaEj+S5iSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzE1CisjOiBidWlsdGluL2xvZy5jOjEzMzQKIG1zZ2lkICItLW5hbWUtc3RhdHVzIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tbmFtZS1zdGF0dXMg5peg5oSP5LmJIgogCi0jOiBidWlsdGluL2xvZy5jOjEzMTcKKyM6IGJ1aWx0aW4vbG9nLmM6MTMzNgogbXNnaWQgIi0tY2hlY2sgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiLS1jaGVjayDml6DmhI/kuYkiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTM0MAorIzogYnVpbHRpbi9sb2cuYzoxMzU5CiBtc2dpZCAic3RhbmRhcmQgb3V0cHV0LCBvciBkaXJlY3RvcnksIHdoaWNoIG9uZT8iCiBtc2dzdHIgIuagh+WHhui+k+WHuuaIluebruW9le+8jOWTquS4gOS4qu+8nyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMzQyCisjOiBidWlsdGluL2xvZy5jOjEzNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAi5LiN6IO95Yib5bu655uu5b2VICclcyciCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQ5MAorIzogYnVpbHRpbi9sb2cuYzoxNTA5CiBtc2dpZCAiRmFpbGVkIHRvIGNyZWF0ZSBvdXRwdXQgZmlsZXMiCiBtc2dzdHIgIuaXoOazleWIm+W7uui+k+WHuuaWh+S7tiIKIAotIzogYnVpbHRpbi9sb2cuYzoxNTM5CisjOiBidWlsdGluL2xvZy5jOjE1NTgKIG1zZ2lkICJnaXQgY2hlcnJ5IFstdl0gWzx1cHN0cmVhbT4gWzxoZWFkPiBbPGxpbWl0Pl1dXSIKIG1zZ3N0ciAiZ2l0IGNoZXJyeSBbLXZdIFs85LiK5ri4PiBbPOWktD4gWzzpmZDliLY+XV1dIgogCi0jOiBidWlsdGluL2xvZy5jOjE1OTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTYxMwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ291bGQgbm90IGZpbmQgYSB0cmFja2VkIHJlbW90ZSBicmFuY2gsIHBsZWFzZSBzcGVjaWZ5IDx1cHN0cmVhbT4gbWFudWFsbHkuXG4iCiBtc2dzdHIgIuS4jeiDveaJvuWIsOi3n+i4queahOi/nOeoi+WIhuaUr++8jOivt+aJi+W3peaMh+WumiA8dXBzdHJlYW0+44CCXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTYwNyBidWlsdGluL2xvZy5jOjE2MDkgYnVpbHRpbi9sb2cuYzoxNjIxCisjOiBidWlsdGluL2xvZy5jOjE2MjYgYnVpbHRpbi9sb2cuYzoxNjI4IGJ1aWx0aW4vbG9nLmM6MTY0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIGNvbW1pdCAlcyIKIG1zZ3N0ciAi5pyq55+l5o+Q5LqkICVzIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDA4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6Mzk4CiBtc2dpZCAiZ2l0IGxzLWZpbGVzIFtvcHRpb25zXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiZ2l0IGxzLWZpbGVzIFvpgInpobldIFs85paH5Lu2Pi4uLl0iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjUKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTUKIG1zZ2lkICJpZGVudGlmeSB0aGUgZmlsZSBzdGF0dXMgd2l0aCB0YWdzIgogbXNnc3RyICLnlKjmoIfnrb7moIfor4bmlofku7bnmoTnirbmgIEiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTcKIG1zZ2lkICJ1c2UgbG93ZXJjYXNlIGxldHRlcnMgZm9yICdhc3N1bWUgdW5jaGFuZ2VkJyBmaWxlcyIKIG1zZ3N0ciAi5L2/55So5bCP5YaZ5a2X5q+N6KGo56S6ICflgYforr7mnKrmlLnlj5jnmoQnIOaWh+S7tiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2OQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ1OQogbXNnaWQgInNob3cgY2FjaGVkIGZpbGVzIGluIHRoZSBvdXRwdXQgKGRlZmF1bHQpIgogbXNnc3RyICLmmL7npLrnvJPlrZjnmoTmlofku7bvvIjpu5jorqTvvIkiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjEKIG1zZ2lkICJzaG93IGRlbGV0ZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAi5pi+56S65bey5Yig6Zmk55qE5paH5Lu2IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDczCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDYzCiBtc2dpZCAic2hvdyBtb2RpZmllZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICLmmL7npLrlt7Lkv67mlLnnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzUKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjUKIG1zZ2lkICJzaG93IG90aGVyIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgIuaYvuekuuWFtuWug+aWh+S7tiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2NwogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICLmmL7npLrlv73nlaXnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODAKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzAKIG1zZ2lkICJzaG93IHN0YWdlZCBjb250ZW50cycgb2JqZWN0IG5hbWUgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAi5pi+56S65pqC5a2Y5Yy65YaF5a6555qE5a+56LGh5ZCN56ewIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDgyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDcyCiBtc2dpZCAic2hvdyBmaWxlcyBvbiB0aGUgZmlsZXN5c3RlbSB0aGF0IG5lZWQgdG8gYmUgcmVtb3ZlZCIKIG1zZ3N0ciAi5pi+56S65paH5Lu257O757uf6ZyA6KaB5Yig6Zmk55qE5paH5Lu2IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc0CiBtc2dpZCAic2hvdyAnb3RoZXInIGRpcmVjdG9yaWVzJyBuYW1lIG9ubHkiCiBtc2dzdHIgIuWPquaYvuekuuKAnOWFtuS7luKAneebruW9leeahOWQjeensCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NwogbXNnaWQgImRvbid0IHNob3cgZW1wdHkgZGlyZWN0b3JpZXMiCiBtc2dzdHIgIuS4jeaYvuekuuepuuebruW9lSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MAogbXNnaWQgInNob3cgdW5tZXJnZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAi5pi+56S65pyq5ZCI5bm255qE5paH5Lu2IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgyCiBtc2dpZCAic2hvdyByZXNvbHZlLXVuZG8gaW5mb3JtYXRpb24iCiBtc2dzdHIgIuaYvuekuiByZXNvbHZlLXVuZG8g5L+h5oGvIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg0CiBtc2dpZCAic2tpcCBmaWxlcyBtYXRjaGluZyBwYXR0ZXJuIgogbXNnc3RyICLljLnphY3mjpLpmaTmlofku7bnmoTmqKHlvI8iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODcKIG1zZ2lkICJleGNsdWRlIHBhdHRlcm5zIGFyZSByZWFkIGZyb20gPGZpbGU+IgogbXNnc3RyICLku44gPOaWh+S7tj4g5Lit6K+75Y+W5o6S6Zmk5qih5byPIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAwCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkwCiBtc2dpZCAicmVhZCBhZGRpdGlvbmFsIHBlci1kaXJlY3RvcnkgZXhjbHVkZSBwYXR0ZXJucyBpbiA8ZmlsZT4iCiBtc2dzdHIgIuS7jiA85paH5Lu2PiDor7vlj5bpop3lpJbnmoTmr4/kuKrnm67lvZXnmoTmjpLpmaTmqKHlvI8iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDIKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTIKIG1zZ2lkICJhZGQgdGhlIHN0YW5kYXJkIGdpdCBleGNsdXNpb25zIgogbXNnc3RyICLmt7vliqDmoIflh4bnmoQgZ2l0IOaOkumZpCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NQogbXNnaWQgIm1ha2UgdGhlIG91dHB1dCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCB0b3AgZGlyZWN0b3J5IgogbXNnc3RyICLmmL7npLrnm7jlr7nkuo7pobbnuqfnm67lvZXnmoTmlofku7blkI0iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTgKIG1zZ2lkICJpZiBhbnkgPGZpbGU+IGlzIG5vdCBpbiB0aGUgaW5kZXgsIHRyZWF0IHRoaXMgYXMgYW4gZXJyb3IiCiBtc2dzdHIgIuWmguaenOS7u+S9lSA85paH5Lu2PiDpg73kuI3lnKjntKLlvJXljLrvvIzop4bkuLrplJnor68iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDkKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTkKIG1zZ2lkICJ0cmVlLWlzaCIKIG1zZ3N0ciAi5qCR5oiW5o+Q5LqkIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTEwCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTAwCiBtc2dpZCAicHJldGVuZCB0aGF0IHBhdGhzIHJlbW92ZWQgc2luY2UgPHRyZWUtaXNoPiBhcmUgc3RpbGwgcHJlc2VudCIKIG1zZ3N0ciAi5YGH6KOF6Ieq5LuOIDzmoJHmiJbmj5DkuqQ+IOS5i+WQjuWIoOmZpOeahOi3r+W+hOS7jeeEtuWtmOWcqCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMgorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMgogbXNnaWQgInNob3cgZGVidWdnaW5nIGRhdGEiCiBtc2dzdHIgIuaYvuekuuiwg+ivleaVsOaNriIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MjcKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjI4CiBtc2dpZCAiZ2l0IGxzLXRyZWUgWzxvcHRpb25zPl0gPHRyZWUtaXNoPiBbPHBhdGg+Li4uXSIKIG1zZ3N0ciAiZ2l0IGxzLXRyZWUgWzzpgInpobk+XSA85qCR5oiW5o+Q5LqkPiBbPOi3r+W+hD4uLi5dIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxMjUKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyNgogbXNnaWQgIm9ubHkgc2hvdyB0cmVlcyIKIG1zZ3N0ciAi5Y+q5pi+56S65qCRIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxMjcKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyOAogbXNnaWQgInJlY3Vyc2UgaW50byBzdWJ0cmVlcyIKIG1zZ3N0ciAi6YCS5b2S5Yiw5a2Q5qCRIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxMjkKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMAogbXNnaWQgInNob3cgdHJlZXMgd2hlbiByZWN1cnNpbmciCiBtc2dzdHIgIuW9k+mAkuW9kuaXtuaYvuekuuagkSIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTMyCisjOiBidWlsdGluL2xzLXRyZWUuYzoxMzMKIG1zZ2lkICJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCBieXRlIgogbXNnc3RyICLmnaHnm67ku6VOVUzlrZfnrKbnu4jmraIiCiAKLSM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMworIzogYnVpbHRpbi9scy10cmVlLmM6MTM0CiBtc2dpZCAiaW5jbHVkZSBvYmplY3Qgc2l6ZSIKIG1zZ3N0ciAi5YyF5ous5a+56LGh5aSn5bCPIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxMzUgYnVpbHRpbi9scy10cmVlLmM6MTM3CisjOiBidWlsdGluL2xzLXRyZWUuYzoxMzYgYnVpbHRpbi9scy10cmVlLmM6MTM4CiBtc2dpZCAibGlzdCBvbmx5IGZpbGVuYW1lcyIKIG1zZ3N0ciAi5Y+q5YiX5Ye65paH5Lu25ZCNIgogCi0jOiBidWlsdGluL2xzLXRyZWUuYzoxNDAKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjE0MQogbXNnaWQgInVzZSBmdWxsIHBhdGggbmFtZXMiCiBtc2dzdHIgIuS9v+eUqOaWh+S7tueahOWFqOi3r+W+hCIKIAotIzogYnVpbHRpbi9scy10cmVlLmM6MTQyCisjOiBidWlsdGluL2xzLXRyZWUuYzoxNDMKIG1zZ2lkICJsaXN0IGVudGlyZSB0cmVlOyBub3QganVzdCBjdXJyZW50IGRpcmVjdG9yeSAoaW1wbGllcyAtLWZ1bGwtbmFtZSkiCiBtc2dzdHIgIuWIl+WHuuaVtOS4quagke+8m+S4jeS7heS7heW9k+WJjeebruW9le+8iOmakOWQqyAtLWZ1bGwtbmFtZe+8iSIKIApAQCAtNjQ1Niw3ICs2NjQ0LDcgQEAKIG1zZ2lkICJWZXJpZnkgdGhhdCB0aGUgbmFtZWQgY29tbWl0IGhhcyBhIHZhbGlkIEdQRyBzaWduYXR1cmUiCiBtc2dzdHIgIumqjOivgeaMh+WumueahOaPkOS6pOaYr+WQpuWMheWQq+S4gOS4quacieaViOeahCBHUEcg562+5ZCNIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjE5IGJ1aWx0aW4vbm90ZXMuYzo3MzggYnVpbHRpbi9yZXZlcnQuYzoxMTQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTkgYnVpbHRpbi9ub3Rlcy5jOjczOCBidWlsdGluL3JldmVydC5jOjg5CiBtc2dpZCAic3RyYXRlZ3kiCiBtc2dzdHIgIuetlueVpSIKIApAQCAtNjgxOCw3NiArNzAwNiw4NSBAQAogbXNnaWQgImFsbG93IGNyZWF0aW9uIG9mIG1vcmUgdGhhbiBvbmUgdHJlZSIKIG1zZ3N0ciAi5YWB6K645Yib5bu65LiA5Liq5Lul5LiK55qE5qCRIgogCi0jOiBidWlsdGluL212LmM6MTQKKyM6IGJ1aWx0aW4vbXYuYzoxNQogbXNnaWQgImdpdCBtdiBbb3B0aW9uc10gPHNvdXJjZT4uLi4gPGRlc3RpbmF0aW9uPiIKIG1zZ3N0ciAiZ2l0IG12IFvpgInpobldIDzmupA+Li4uIDznm67moIc+IgogCi0jOiBidWlsdGluL212LmM6NjQKKyM6IGJ1aWx0aW4vbXYuYzo2NwogbXNnaWQgImZvcmNlIG1vdmUvcmVuYW1lIGV2ZW4gaWYgdGFyZ2V0IGV4aXN0cyIKIG1zZ3N0ciAi5by65Yi256e75YqoL+mHjeWRveS7pO+8jOWNs+S9v+ebruagh+WtmOWcqCIKIAotIzogYnVpbHRpbi9tdi5jOjY1CisjOiBidWlsdGluL212LmM6NjgKIG1zZ2lkICJza2lwIG1vdmUvcmVuYW1lIGVycm9ycyIKIG1zZ3N0ciAi6Lez6L+H56e75YqoL+mHjeWRveWQjemUmeivryIKIAotIzogYnVpbHRpbi9tdi5jOjEwOAorIzogYnVpbHRpbi9tdi5jOjExMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGVja2luZyByZW5hbWUgb2YgJyVzJyB0byAnJXMnXG4iCiBtc2dzdHIgIuajgOafpSAnJXMnIOWIsCAnJXMnIOeahOmHjeWRveWQjVxuIgogCi0jOiBidWlsdGluL212LmM6MTEyCisjOiBidWlsdGluL212LmM6MTE3CiBtc2dpZCAiYmFkIHNvdXJjZSIKIG1zZ3N0ciAi5Z2P55qE5rqQIgogCi0jOiBidWlsdGluL212LmM6MTE1CisjOiBidWlsdGluL212LmM6MTIwCiBtc2dpZCAiY2FuIG5vdCBtb3ZlIGRpcmVjdG9yeSBpbnRvIGl0c2VsZiIKIG1zZ3N0ciAi5LiN6IO95bCG55uu5b2V56e75Yqo5Yiw6Ieq6LqrIgogCi0jOiBidWlsdGluL212LmM6MTE4CisjOiBidWlsdGluL212LmM6MTIzCiBtc2dpZCAiY2Fubm90IG1vdmUgZGlyZWN0b3J5IG92ZXIgZmlsZSIKIG1zZ3N0ciAi5LiN6IO95bCG55uu5b2V56e75Yqo5Yiw5paH5Lu2IgogCi0jOiBidWlsdGluL212LmM6MTI4CisjOiBidWlsdGluL212LmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIkh1aD8gRGlyZWN0b3J5ICVzIGlzIGluIGluZGV4IGFuZCBubyBzdWJtb2R1bGU/IgorbXNnc3RyICLll6/vvJ/nm67lvZUgJXMg5Zyo57Si5byV5Lit5bm25LiU5LiN5piv5a2Q5qih57uE77yfIgorCisjOiBidWlsdGluL212LmM6MTMxIGJ1aWx0aW4vcm0uYzozMTgKK21zZ2lkICJQbGVhc2UsIHN0YWdlIHlvdXIgY2hhbmdlcyB0byAuZ2l0bW9kdWxlcyBvciBzdGFzaCB0aGVtIHRvIHByb2NlZWQiCittc2dzdHIgIuivt+WwhuaCqOeahOS/ruaUuee8k+WtmOWIsCAuZ2l0bW9kdWxlcyDkuK3miJbkv53lrZjov5vluqblkI7lho3nu6fnu60iCisKKyM6IGJ1aWx0aW4vbXYuYzoxNDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiSHVoPyAlLipzIGlzIGluIGluZGV4PyIKIG1zZ3N0ciAi5Zev77yfJS4qcyDlnKjntKLlvJXkuK3vvJ8iCiAKLSM6IGJ1aWx0aW4vbXYuYzoxNDAKKyM6IGJ1aWx0aW4vbXYuYzoxNTkKIG1zZ2lkICJzb3VyY2UgZGlyZWN0b3J5IGlzIGVtcHR5IgogbXNnc3RyICLmupDnm67lvZXkuLrnqboiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxNzEKKyM6IGJ1aWx0aW4vbXYuYzoxOTEKIG1zZ2lkICJub3QgdW5kZXIgdmVyc2lvbiBjb250cm9sIgogbXNnc3RyICLkuI3lnKjniYjmnKzmjqfliLbkuYvkuIsiCiAKLSM6IGJ1aWx0aW4vbXYuYzoxNzMKKyM6IGJ1aWx0aW4vbXYuYzoxOTMKIG1zZ2lkICJkZXN0aW5hdGlvbiBleGlzdHMiCiBtc2dzdHIgIuebruagh+W3suWtmOWcqCIKIAotIzogYnVpbHRpbi9tdi5jOjE4MQorIzogYnVpbHRpbi9tdi5jOjIwMQogIywgYy1mb3JtYXQKIG1zZ2lkICJvdmVyd3JpdGluZyAnJXMnIgogbXNnc3RyICLopobnm5YgJyVzJyIKIAotIzogYnVpbHRpbi9tdi5jOjE4NAorIzogYnVpbHRpbi9tdi5jOjIwNAogbXNnaWQgIkNhbm5vdCBvdmVyd3JpdGUiCiBtc2dzdHIgIuS4jeiDveimhuebliIKIAotIzogYnVpbHRpbi9tdi5jOjE4NworIzogYnVpbHRpbi9tdi5jOjIwNwogbXNnaWQgIm11bHRpcGxlIHNvdXJjZXMgZm9yIHRoZSBzYW1lIHRhcmdldCIKIG1zZ3N0ciAi5ZCM5LiA55uu5qCH5YW35pyJ5aSa5Liq5rqQIgogCi0jOiBidWlsdGluL212LmM6MjAyCisjOiBidWlsdGluL212LmM6MjIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzLCBzb3VyY2U9JXMsIGRlc3RpbmF0aW9uPSVzIgogbXNnc3RyICIlc++8jOa6kD0lc++8jOebruaghz0lcyIKIAotIzogYnVpbHRpbi9tdi5jOjIxMgorIzogYnVpbHRpbi9tdi5jOjIzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWluZyAlcyB0byAlc1xuIgogbXNnc3RyICLph43lkb3lkI0gJXMg6IezICVzXG4iCiAKLSM6IGJ1aWx0aW4vbXYuYzoyMTUgYnVpbHRpbi9yZW1vdGUuYzo3MzEKKyM6IGJ1aWx0aW4vbXYuYzoyMzUgYnVpbHRpbi9yZW1vdGUuYzo3MzEgYnVpbHRpbi9yZXBhY2suYzozMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVuYW1pbmcgJyVzJyBmYWlsZWQiCiBtc2dzdHIgIumHjeWRveWQjSAnJXMnIOWksei0pSIKQEAgLTY5MjUsOCArNzEyMiw4IEBACiBtc2dzdHIgIuS7juagh+WHhui+k+WFpeivu+WPliIKIAogIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyMAotbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIgotbXNnc3RyICLlhYHorrjmiZPljbAgYOacquWumuS5iWAg55qE5ZCN56ewIgorbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIChkZWZhdWx0KSIKK21zZ3N0ciAi5YWB6K645omT5Y2wIGDmnKrlrprkuYlgIOeahOWQjeensO+8iOm7mOiupO+8iSIKIAogIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyNgogbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW4gdGhlIGlucHV0IChpbnRlcm5hbCB1c2UpIgpAQCAtNzA3OCwxMiArNzI3NSwxMiBAQAogbXNnaWQgIlRoZSBub3RlIGNvbnRlbnRzIGhhcyBiZWVuIGxlZnQgaW4gJXMiCiBtc2dzdHIgIuazqOino+WGheWuueiiq+eVmeWcqOaWh+S7tiAlcyDkuK0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNDggYnVpbHRpbi90YWcuYzo1NDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNDggYnVpbHRpbi90YWcuYzo1MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJyVzJyIKIG1zZ3N0ciAi5LiN6IO96K+75Y+WICclcyciCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDMKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gb3IgcmVhZCAnJXMnIgogbXNnc3RyICLkuI3og73miZPlvIDmiJbor7vlj5YgJyVzJyIKQEAgLTcwOTEsNyArNzI4OCw3IEBACiAjOiBidWlsdGluL25vdGVzLmM6MjY5IGJ1aWx0aW4vbm90ZXMuYzozMTYgYnVpbHRpbi9ub3Rlcy5jOjMxOAogIzogYnVpbHRpbi9ub3Rlcy5jOjM3OCBidWlsdGluL25vdGVzLmM6NDMyIGJ1aWx0aW4vbm90ZXMuYzo1MTUKICM6IGJ1aWx0aW4vbm90ZXMuYzo1MjAgYnVpbHRpbi9ub3Rlcy5jOjU5NSBidWlsdGluL25vdGVzLmM6NjM3Ci0jOiBidWlsdGluL25vdGVzLmM6ODM5IGJ1aWx0aW4vdGFnLmM6NTU2CisjOiBidWlsdGluL25vdGVzLmM6ODM5IGJ1aWx0aW4vdGFnLmM6NTUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZWYuIgogbXNnc3RyICLml6Dms5Xop6PmnpAgJyVzJyDkuLrkuIDkuKrmnInmlYjlvJXnlKjjgIIiCkBAIC03MjU2LDE0OCArNzQ1MywxNDggQEAKIG1zZ2lkICJnaXQgcGFjay1vYmplY3RzIFtvcHRpb25zLi4uXSBiYXNlLW5hbWUgWzwgcmVmLWxpc3QgfCA8IG9iamVjdC1saXN0XSIKIG1zZ3N0ciAiZ2l0IHBhY2stb2JqZWN0cyBb6YCJ6aG5Li4uXSBiYXNlLW5hbWUgWzwg5byV55So5YiX6KGoIHwgPCDlr7nosaHliJfooahdIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE4MyBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE4NgorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxODQgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVmbGF0ZSBlcnJvciAoJWQpIgogbXNnc3RyICLljovnvKnplJnor68gKCVkKSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyMzk3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjIzOTgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5zdXBwb3J0ZWQgaW5kZXggdmVyc2lvbiAlcyIKIG1zZ3N0ciAi5LiN5pSv5oyB55qE57Si5byV54mI5pysICVzIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MDEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgaW5kZXggdmVyc2lvbiAnJXMnIgogbXNnc3RyICLlnY/nmoTntKLlvJXniYjmnKwgJyVzJyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDI0CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAib3B0aW9uICVzIGRvZXMgbm90IGFjY2VwdCBuZWdhdGl2ZSBmb3JtIgogbXNnc3RyICLpgInpobkgJXMg5LiN5o6l5Y+X5ZCm5a6a5qC85byPIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MjgKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcGFyc2UgdmFsdWUgJyVzJyBmb3Igb3B0aW9uICVzIgogbXNnc3RyICLkuI3og73op6PmnpDpgInpobkgJTEkcyDnmoTlgLwgJyUyJHMnIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NDcKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ0OAogbXNnaWQgImRvIG5vdCBzaG93IHByb2dyZXNzIG1ldGVyIgogbXNnc3RyICLkuI3mmL7npLrov5vluqbooagiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ0OQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDUwCiBtc2dpZCAic2hvdyBwcm9ncmVzcyBtZXRlciIKIG1zZ3N0ciAi5pi+56S66L+b5bqm6KGoIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1MgogbXNnaWQgInNob3cgcHJvZ3Jlc3MgbWV0ZXIgZHVyaW5nIG9iamVjdCB3cml0aW5nIHBoYXNlIgogbXNnc3RyICLlnKjlr7nosaHlhpnlhaXpmLbmrrXmmL7npLrov5vluqbooagiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NAorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU1CiBtc2dpZCAic2ltaWxhciB0byAtLWFsbC1wcm9ncmVzcyB3aGVuIHByb2dyZXNzIG1ldGVyIGlzIHNob3duIgogbXNnc3RyICLlvZPov5vluqbooajmmL7npLrml7bnsbvkvLzkuo4gLS1hbGwtcHJvZ3Jlc3MiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU2CiBtc2dpZCAidmVyc2lvblssb2Zmc2V0XSIKIG1zZ3N0ciAi54mI5pysWyzlgY/np7tdIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTYKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NwogbXNnaWQgIndyaXRlIHRoZSBwYWNrIGluZGV4IGZpbGUgaW4gdGhlIHNwZWNpZmllZCBpZHggZm9ybWF0IHZlcnNpb24iCiBtc2dzdHIgIueUqOaMh+WumueahCBpZHgg5qC85byP54mI5pys5p2l5YaZ5YyF57Si5byV5paH5Lu2IgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2MAogbXNnaWQgIm1heGltdW0gc2l6ZSBvZiBlYWNoIG91dHB1dCBwYWNrIGZpbGUiCiBtc2dzdHIgIuavj+S4qui+k+WHuuWMheeahOacgOWkp+WwuuWvuCIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDYxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjIKIG1zZ2lkICJpZ25vcmUgYm9ycm93ZWQgb2JqZWN0cyBmcm9tIGFsdGVybmF0ZSBvYmplY3Qgc3RvcmUiCiBtc2dzdHIgIuW/veeVpeS7juabv+S7o+WvueixoeWtmOWCqOmHjOWAn+eUqOWvueixoSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDYzCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjQKIG1zZ2lkICJpZ25vcmUgcGFja2VkIG9iamVjdHMiCiBtc2dzdHIgIuW/veeVpeWMheWvueixoSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDY1CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjYKIG1zZ2lkICJsaW1pdCBwYWNrIHdpbmRvdyBieSBvYmplY3RzIgogbXNnc3RyICLpmZDliLbmiZPljIXnqpflj6PnmoTlr7nosaHmlbAiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2NworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDY4CiBtc2dpZCAibGltaXQgcGFjayB3aW5kb3cgYnkgbWVtb3J5IGluIGFkZGl0aW9uIHRvIG9iamVjdCBsaW1pdCIKIG1zZ3N0ciAi6Zmk5a+56LGh5pWw6YeP6ZmQ5Yi25aSW6K6+572u5omT5YyF56qX5Y+j55qE5YaF5a2Y6ZmQ5Yi2IgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3MAogbXNnaWQgIm1heGltdW0gbGVuZ3RoIG9mIGRlbHRhIGNoYWluIGFsbG93ZWQgaW4gdGhlIHJlc3VsdGluZyBwYWNrIgogbXNnc3RyICLmiZPljIXlhYHorrjnmoQgZGVsdGEg6ZO+55qE5pyA5aSn6ZW/5bqmIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3MgogbXNnaWQgInJldXNlIGV4aXN0aW5nIGRlbHRhcyIKIG1zZ3N0ciAi6YeN55So5bey5a2Y5Zyo55qEIGRlbHRhcyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDczCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzQKIG1zZ2lkICJyZXVzZSBleGlzdGluZyBvYmplY3RzIgogbXNnc3RyICLph43nlKjlt7LlrZjlnKjnmoTlr7nosaEiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3NQorIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDc2CiBtc2dpZCAidXNlIE9GU19ERUxUQSBvYmplY3RzIgogbXNnc3RyICLkvb/nlKggT0ZTX0RFTFRBIOWvueixoSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDc3CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzgKIG1zZ2lkICJ1c2UgdGhyZWFkcyB3aGVuIHNlYXJjaGluZyBmb3IgYmVzdCBkZWx0YSBtYXRjaGVzIgogbXNnc3RyICLkvb/nlKjnur/nqIvmn6Xor6LmnIDkvbMgZGVsdGEg5Yy56YWNIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4MAogbXNnaWQgImRvIG5vdCBjcmVhdGUgYW4gZW1wdHkgcGFjayBvdXRwdXQiCiBtc2dzdHIgIuS4jeWIm+W7uuepuueahOWMhei+k+WHuiIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDgxCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODIKIG1zZ2lkICJyZWFkIHJldmlzaW9uIGFyZ3VtZW50cyBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICLku47moIflh4bovpPlhaXor7vlj5bkv67orqLlj7flj4LmlbAiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4MworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDg0CiBtc2dpZCAibGltaXQgdGhlIG9iamVjdHMgdG8gdGhvc2UgdGhhdCBhcmUgbm90IHlldCBwYWNrZWQiCiBtc2dzdHIgIumZkOWItumCo+S6m+WwmuacquaJk+WMheeahOWvueixoSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDg2CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODcKIG1zZ2lkICJpbmNsdWRlIG9iamVjdHMgcmVhY2hhYmxlIGZyb20gYW55IHJlZmVyZW5jZSIKIG1zZ3N0ciAi5YyF5ous5Y+v5Lul5LuO5Lu75L2V5byV55So6K6/6Zeu5Yiw55qE5a+56LGhIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODkKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5MAogbXNnaWQgImluY2x1ZGUgb2JqZWN0cyByZWZlcnJlZCBieSByZWZsb2cgZW50cmllcyIKIG1zZ3N0ciAi5YyF5ous6KKr5byV55So5pel5b+X5byV55So5Yiw55qE5a+56LGhIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTIKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5MwogbXNnaWQgIm91dHB1dCBwYWNrIHRvIHN0ZG91dCIKIG1zZ3N0ciAi6L6T5Ye65YyF5Yiw5qCH5YeG6L6T5Ye6IgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTQKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NQogbXNnaWQgImluY2x1ZGUgdGFnIG9iamVjdHMgdGhhdCByZWZlciB0byBvYmplY3RzIHRvIGJlIHBhY2tlZCIKIG1zZ3N0ciAi5YyF5ous5byV55So5LqG5omT5YyF5a+56LGh55qEIHRhZyIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk2CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTcKIG1zZ2lkICJrZWVwIHVucmVhY2hhYmxlIG9iamVjdHMiCiBtc2dzdHIgIue7tOaMgeS4jeWPr+i+vueahOWvueixoSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk3IHBhcnNlLW9wdGlvbnMuaDoxNDEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5OCBwYXJzZS1vcHRpb25zLmg6MTQzCiBtc2dpZCAidGltZSIKIG1zZ3N0ciAi5pe26Ze0IgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTgKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5OQogbXNnaWQgInVucGFjayB1bnJlYWNoYWJsZSBvYmplY3RzIG5ld2VyIHRoYW4gPHRpbWU+IgogbXNnc3RyICLlsIbmr5Tnu5nlrpogPOaXtumXtD4g5paw55qE5peg5rOV6K6/6Zeu55qE5a+56LGh6Kej5YyFIgogCi0jOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDEKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwMgogbXNnaWQgImNyZWF0ZSB0aGluIHBhY2tzIgogbXNnc3RyICLliJvlu7rnsr7nroDljIUiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwMworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA0CiBtc2dpZCAiaWdub3JlIHBhY2tzIHRoYXQgaGF2ZSBjb21wYW5pb24gLmtlZXAgZmlsZSIKIG1zZ3N0ciAi5b+955Wl6YWN5pyJIC5rZWVwIOaWh+S7tueahOWMhSIKIAotIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA1CisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDYKIG1zZ2lkICJwYWNrIGNvbXByZXNzaW9uIGxldmVsIgogbXNnc3RyICLmiZPljIXljovnvKnnuqfliKsiCiAKLSM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA4CiBtc2dpZCAiZG8gbm90IGhpZGUgY29tbWl0cyBieSBncmFmdHMiCiBtc2dzdHIgIuS4jemakOiXj+enu+akjeimhueblueahOaPkOS6pCIKIApAQCAtNzQzNSwxNyArNzYzMiwxNyBAQAogCiAjOiBidWlsdGluL3B1c2guYzoxNAogbXNnaWQgImdpdCBwdXNoIFs8b3B0aW9ucz5dIFs8cmVwb3NpdG9yeT4gWzxyZWZzcGVjPi4uLl1dIgotbXNnc3RyICJnaXQgcHVzaCBbPOmAiemhuT5dIFs854mI5pys5bqTPiBbPOW8leeUqOihqOi+vuW8jz4uLi5dXSIKK21zZ3N0ciAiZ2l0IHB1c2ggWzzpgInpobk+XSBbPOeJiOacrOW6kz4gWzzlvJXnlKjop4TliJk+Li4uXV0iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1CisjOiBidWlsdGluL3B1c2guYzo0NwogbXNnaWQgInRhZyBzaG9ydGhhbmQgd2l0aG91dCA8dGFnPiIKIG1zZ3N0ciAidGFnIOeugOWGmeayoeaciei3nyA8dGFnPiDlj4LmlbAiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjY0CisjOiBidWlsdGluL3B1c2guYzo2NgogbXNnaWQgIi0tZGVsZXRlIG9ubHkgYWNjZXB0cyBwbGFpbiB0YXJnZXQgcmVmIG5hbWVzIgogbXNnc3RyICItLWRlbGV0ZSDlj6rmjqXlj5fnroDljZXnmoTnm67moIflvJXnlKjlkI0iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjk5CisjOiBidWlsdGluL3B1c2guYzoxMDEKIG1zZ2lkICIiCiAiXG4iCiAiVG8gY2hvb3NlIGVpdGhlciBvcHRpb24gcGVybWFuZW50bHksIHNlZSBwdXNoLmRlZmF1bHQgaW4gJ2dpdCBoZWxwIGNvbmZpZycuIgpAQCAtNzQ1Myw3ICs3NjUwLDcgQEAKICJcbiIKICLkuLrkuobmsLjkuYXlnLDpgInmi6nku7vkuIDpgInpobnvvIzlj4Lop4EgJ2dpdCBoZWxwIGNvbmZpZycg5Lit55qEIHB1c2guZGVmYXVsdOOAgiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTAyCisjOiBidWlsdGluL3B1c2guYzoxMDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSB1cHN0cmVhbSBicmFuY2ggb2YgeW91ciBjdXJyZW50IGJyYW5jaCBkb2VzIG5vdCBtYXRjaFxuIgpAQCAtNzQ3Nyw3ICs3Njc0LDcgQEAKICIgICAgZ2l0IHB1c2ggJXMgJXNcbiIKICIlcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTE3CisjOiBidWlsdGluL3B1c2guYzoxMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgbm90IGN1cnJlbnRseSBvbiBhIGJyYW5jaC5cbiIKQEAgLTc0OTEsNyArNzY4OCw3IEBACiAiXG4iCiAiICAgIGdpdCBwdXNoICVzIEhFQUQ6PG5hbWUtb2YtcmVtb3RlLWJyYW5jaD5cbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTMxCisjOiBidWlsdGluL3B1c2guYzoxMzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBjdXJyZW50IGJyYW5jaCAlcyBoYXMgbm8gdXBzdHJlYW0gYnJhbmNoLlxuIgpAQCAtNzUwNCwxMiArNzcwMSwxMiBAQAogIlxuIgogIiAgICBnaXQgcHVzaCAtLXNldC11cHN0cmVhbSAlcyAlc1xuIgogCi0jOiBidWlsdGluL3B1c2guYzoxMzkKKyM6IGJ1aWx0aW4vcHVzaC5jOjE0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG11bHRpcGxlIHVwc3RyZWFtIGJyYW5jaGVzLCByZWZ1c2luZyB0byBwdXNoLiIKIG1zZ3N0ciAi5b2T5YmN5YiG5pSvICVzIOacieWkmuS4quS4iua4uOWIhuaUr++8jOaLkue7neaOqOmAgeOAgiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTQyCisjOiBidWlsdGluL3B1c2guYzoxNDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgcHVzaGluZyB0byByZW1vdGUgJyVzJywgd2hpY2ggaXMgbm90IHRoZSB1cHN0cmVhbSBvZlxuIgpAQCAtNzUyMCw3ICs3NzE3LDcgQEAKICLogIzmsqHmnInlkYror4nmiJHopoHmjqjpgIHku4DkuYjjgIHmm7TmlrDlk6rkuKrov5znqIvliIbmlK/jgIIiCiAKICMgIOivkeiAhe+8muWtl+espuS4summluihjOihjOmmluimgea3u+WKoOKAnHdhcm5pbmc6IOKAneWtl+S4su+8jOaVheatpOmmluihjOimgei+g+WFtuS9meihjOefrQotIzogYnVpbHRpbi9wdXNoLmM6MTY1CisjOiBidWlsdGluL3B1c2guYzoxNjcKIG1zZ2lkICIiCiAicHVzaC5kZWZhdWx0IGlzIHVuc2V0OyBpdHMgaW1wbGljaXQgdmFsdWUgaXMgY2hhbmdpbmcgaW5cbiIKICJHaXQgMi4wIGZyb20gJ21hdGNoaW5nJyB0byAnc2ltcGxlJy4gVG8gc3F1ZWxjaCB0aGlzIG1lc3NhZ2VcbiIKQEAgLTc1MzcsOSArNzczNCw4IEBACiAiKHRoZSAnc2ltcGxlJyBtb2RlIHdhcyBpbnRyb2R1Y2VkIGluIEdpdCAxLjcuMTEuIFVzZSB0aGUgc2ltaWxhciBtb2RlXG4iCiAiJ2N1cnJlbnQnIGluc3RlYWQgb2YgJ3NpbXBsZScgaWYgeW91IHNvbWV0aW1lcyB1c2Ugb2xkZXIgdmVyc2lvbnMgb2YgR2l0KSIKIG1zZ3N0ciAiIgotInB1c2guZGVmYXVsdCDmnKrorr7nva7vvIzlroPnmoTpu5jorqTlgLzlsIbkvJrlnKggR2l0IDIuMCDnlLEgJ21hdGNoaW5nJ1xuIgotIuS/ruaUueS4uiAnc2ltcGxlJ+OAguiLpeimgeS4jeWGjeaYvuekuuacrOS/oeaBr+W5tuWcqOWFtum7mOiupOWAvOaUueWPmOWQjue7tOaMgeW9k+WJjeS9v+eUqOS5oOaDr++8jFxuIgotIui/m+ihjOWmguS4i+iuvue9ru+8mlxuIgorInB1c2guZGVmYXVsdCDmnKrorr7nva7vvIzlroPnmoTpu5jorqTlgLzlsIblnKggR2l0IDIuMCDnlLEgJ21hdGNoaW5nJ1xuIgorIuaUueWPmOS4uiAnc2ltcGxlJ+OAguiLpeimgeS4jeWGjeaYvuekuuacrOS/oeaBr+W5tuS/neaMgeS8oOe7n+S5oOaDr++8jOi/m+ihjOWmguS4i+iuvue9ru+8mlxuIgogIlxuIgogIiAgZ2l0IGNvbmZpZyAtLWdsb2JhbCBwdXNoLmRlZmF1bHQgbWF0Y2hpbmdcbiIKICJcbiIKQEAgLTc1NDksMTQgKzc3NDUsMTQgQEAKICJcbiIKICLlj4Lop4EgJ2dpdCBoZWxwIGNvbmZpZycg5bm25p+l5om+ICdwdXNoLmRlZmF1bHQnIOS7peiOt+WPluabtOWkmuS/oeaBr+OAglxuIgogIu+8iCdzaW1wbGUnIOaooeW8j+eUsSBHaXQgMS43LjExIOeJiOacrOW8leWFpeOAguWmguaenOaCqOacieaXtuimgeS9v+eUqOiAgeeJiOacrOeahCBHaXTvvIxcbiIKLSLkuLrkv53mjIHlhbzlrrnvvIzor7fnlKggJ2N1cnJlbnQnIOS7o+abvyAnc2ltcGxlJyDmqKHlvI/vvIkiCisi5Li65L+d5oyB5YW85a6577yM6K+355SoICdjdXJyZW50JyDku6Pmm78gJ3NpbXBsZSfvvIkiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIyNQorIzogYnVpbHRpbi9wdXNoLmM6MjI3CiBtc2dpZCAiIgogIllvdSBkaWRuJ3Qgc3BlY2lmeSBhbnkgcmVmc3BlY3MgdG8gcHVzaCwgYW5kIHB1c2guZGVmYXVsdCBpcyBcIm5vdGhpbmdcIi4iCi1tc2dzdHIgIuaCqOayoeacieS4uuaOqOmAgeaMh+WumuS7u+S9leW8leeUqOihqOi+vuW8j++8jOW5tuS4lCBwdXNoLmRlZmF1bHQg5Li6IFwibm90aGluZ1wi44CCIgorbXNnc3RyICLmgqjmsqHmnInkuLrmjqjpgIHmjIflrprku7vkvZXlvJXnlKjop4TliJnvvIzlubbkuJQgcHVzaC5kZWZhdWx0IOS4uiBcIm5vdGhpbmdcIuOAgiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjMyCisjOiBidWlsdGluL3B1c2guYzoyMzQKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRpcCBvZiB5b3VyIGN1cnJlbnQgYnJhbmNoIGlzIGJlaGluZFxuIgogIml0cyByZW1vdGUgY291bnRlcnBhcnQuIEludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy5cbiIKQEAgLTc1NjcsNyArNzc2Myw3IEBACiAi5YaN5qyh5o6o6YCB5YmN77yM5YWI5LiO6L+c56iL5Y+Y5pu05ZCI5bm277yI5aaCICdnaXQgcHVsbCAuLi4n77yJ44CC6K+m6KeBXG4iCiAiJ2dpdCBwdXNoIC0taGVscCcg5Lit55qEICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIOWwj+iKguOAgiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjM4CisjOiBidWlsdGluL3B1c2guYzoyNDAKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgYSBwdXNoZWQgYnJhbmNoIHRpcCBpcyBiZWhpbmQgaXRzIHJlbW90ZVxuIgogImNvdW50ZXJwYXJ0LiBJZiB5b3UgZGlkIG5vdCBpbnRlbmQgdG8gcHVzaCB0aGF0IGJyYW5jaCwgeW91IG1heSB3YW50IHRvXG4iCkBAIC03NTc5LDcgKzc3NzUsNyBAQAogIumFjee9ruWPmOmHjyAncHVzaC5kZWZhdWx0JyDorr7nva7kuLogJ3NpbXBsZSfjgIEnY3VycmVudCcg5oiWICd1cHN0cmVhbSdcbiIKICLku6Xkvr/lj6rmjqjpgIHlvZPliY3liIbmlK/jgIIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI0NAorIzogYnVpbHRpbi9wdXNoLmM6MjQ2CiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIGEgcHVzaGVkIGJyYW5jaCB0aXAgaXMgYmVoaW5kIGl0cyByZW1vdGVcbiIKICJjb3VudGVycGFydC4gQ2hlY2sgb3V0IHRoaXMgYnJhbmNoIGFuZCBpbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCkBAIC03NTkwLDcgKzc3ODYsNyBAQAogIuajgOWHuuivpeWIhuaUr+W5tuaVtOWQiOi/nOeoi+WPmOabtO+8iOWmgiAnZ2l0IHB1bGwgLi4uJ++8ie+8jOeEtuWQjuWGjeaOqOmAgeOAguivpuingVxuIgogIidnaXQgcHVzaCAtLWhlbHAnIOS4reeahCAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyDlsI/oioLjgIIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI1MAorIzogYnVpbHRpbi9wdXNoLmM6MjUyCiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSByZW1vdGUgY29udGFpbnMgd29yayB0aGF0IHlvdSBkb1xuIgogIm5vdCBoYXZlIGxvY2FsbHkuIFRoaXMgaXMgdXN1YWxseSBjYXVzZWQgYnkgYW5vdGhlciByZXBvc2l0b3J5IHB1c2hpbmdcbiIKQEAgLTc2MDMsMTEgKzc3OTksMTEgQEAKICLvvIjlpoIgJ2dpdCBwdWxsIC4uLifvvInjgIJcbiIKICLor6bop4EgJ2dpdCBwdXNoIC0taGVscCcg5Lit55qEICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIOWwj+iKguOAgiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjU3CisjOiBidWlsdGluL3B1c2guYzoyNTkKIG1zZ2lkICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGFnIGFscmVhZHkgZXhpc3RzIGluIHRoZSByZW1vdGUuIgogbXNnc3RyICLmm7TmlrDooqvmi5Lnu53lm6DkuLogdGFnIOWcqOi/nOeoi+W3sue7j+WtmOWcqOOAgiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjYwCisjOiBidWlsdGluL3B1c2guYzoyNjIKIG1zZ2lkICIiCiAiWW91IGNhbm5vdCB1cGRhdGUgYSByZW1vdGUgcmVmIHRoYXQgcG9pbnRzIGF0IGEgbm9uLWNvbW1pdCBvYmplY3QsXG4iCiAib3IgdXBkYXRlIGEgcmVtb3RlIHJlZiB0byBtYWtlIGl0IHBvaW50IGF0IGEgbm9uLWNvbW1pdCBvYmplY3QsXG4iCkBAIC03NjE2LDIyICs3ODEyLDIyIEBACiAi5aaC5p6c5LiN5L2/55SoICctLWZvcmNlJyDlj4LmlbDvvIzmgqjkuI3og73mm7TmlrDkuIDkuKrmjIflkJHpnZ7mj5DkuqTlr7nosaHnmoTov5znqIvlvJXnlKjvvIxcbiIKICLkuZ/kuI3og73mm7TmlrDov5znqIvlvJXnlKjorqnlhbbmjIflkJHkuIDkuKrpnZ7mj5DkuqTlr7nosaHjgIJcbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzIwCisjOiBidWlsdGluL3B1c2guYzozMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiUHVzaGluZyB0byAlc1xuIgogbXNnc3RyICLmjqjpgIHliLAgJXNcbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzI0CisjOiBidWlsdGluL3B1c2guYzozMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHB1c2ggc29tZSByZWZzIHRvICclcyciCiBtc2dzdHIgIuaXoOazleaOqOmAgeS4gOS6m+W8leeUqOWIsCAnJXMnIgogCi0jOiBidWlsdGluL3B1c2guYzozNTcKKyM6IGJ1aWx0aW4vcHVzaC5jOjM2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgcmVwb3NpdG9yeSAnJXMnIgogbXNnc3RyICLlnY/nmoTniYjmnKzlupMgJyVzJyIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzU4CisjOiBidWlsdGluL3B1c2guYzozNjYKIG1zZ2lkICIiCiAiTm8gY29uZmlndXJlZCBwdXNoIGRlc3RpbmF0aW9uLlxuIgogIkVpdGhlciBzcGVjaWZ5IHRoZSBVUkwgZnJvbSB0aGUgY29tbWFuZC1saW5lIG9yIGNvbmZpZ3VyZSBhIHJlbW90ZSAiCkBAIC03NjUyLDg3ICs3ODQ4LDk1IEBACiAiXG4iCiAiICAgIGdpdCBwdXNoIDxuYW1lPlxuIgogCi0jOiBidWlsdGluL3B1c2guYzozNzMKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4MQogbXNnaWQgIi0tYWxsIGFuZCAtLXRhZ3MgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1hbGwg5ZKMIC0tdGFncyDkuI3lhbzlrrkiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM3NAorIzogYnVpbHRpbi9wdXNoLmM6MzgyCiBtc2dpZCAiLS1hbGwgY2FuJ3QgYmUgY29tYmluZWQgd2l0aCByZWZzcGVjcyIKLW1zZ3N0ciAiLS1hbGwg5LiN6IO95ZKM5byV55So6KGo6L6+5byP5ZCM5pe25L2/55SoIgorbXNnc3RyICItLWFsbCDkuI3og73lkozlvJXnlKjop4TliJnlkIzml7bkvb/nlKgiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM3OQorIzogYnVpbHRpbi9wdXNoLmM6Mzg3CiBtc2dpZCAiLS1taXJyb3IgYW5kIC0tdGFncyBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICItLW1pcnJvciDlkowgLS10YWdzIOS4jeWFvOWuuSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzgwCisjOiBidWlsdGluL3B1c2guYzozODgKIG1zZ2lkICItLW1pcnJvciBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgotbXNnc3RyICItLW1pcnJvciDkuI3og73lkozlvJXnlKjooajovr7lvI/lkIzml7bkvb/nlKgiCittc2dzdHIgIi0tbWlycm9yIOS4jeiDveWSjOW8leeUqOinhOWImeWQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mzg1CisjOiBidWlsdGluL3B1c2guYzozOTMKIG1zZ2lkICItLWFsbCBhbmQgLS1taXJyb3IgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1hbGwg5ZKMIC0tbWlycm9yIOS4jeWFvOWuuSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDQ1CisjOiBidWlsdGluL3B1c2guYzo0NTMKIG1zZ2lkICJyZXBvc2l0b3J5IgogbXNnc3RyICLniYjmnKzlupMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ0NgorIzogYnVpbHRpbi9wdXNoLmM6NDU0CiBtc2dpZCAicHVzaCBhbGwgcmVmcyIKIG1zZ3N0ciAi5o6o6YCB5omA5pyJ5byV55SoIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NQogbXNnaWQgIm1pcnJvciBhbGwgcmVmcyIKIG1zZ3N0ciAi6ZWc5YOP5omA5pyJ5byV55SoIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NwogbXNnaWQgImRlbGV0ZSByZWZzIgogbXNnc3RyICLliKDpmaTlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAorIzogYnVpbHRpbi9wdXNoLmM6NDU4CiBtc2dpZCAicHVzaCB0YWdzIChjYW4ndCBiZSB1c2VkIHdpdGggLS1hbGwgb3IgLS1taXJyb3IpIgogbXNnc3RyICLmjqjpgIEgdGFnc++8iOS4jeiDveS9v+eUqCAtLWFsbCBvciAtLW1pcnJvcu+8iSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDUzCisjOiBidWlsdGluL3B1c2guYzo0NjEKIG1zZ2lkICJmb3JjZSB1cGRhdGVzIgogbXNnc3RyICLlvLrliLbmm7TmlrAiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1NAorIzogYnVpbHRpbi9wdXNoLmM6NDYzCittc2dpZCAicmVmbmFtZT46PGV4cGVjdCIKK21zZ3N0ciAi5byV55So5ZCNPjo85pyf5pyb5YC8IgorCisjOiBidWlsdGluL3B1c2guYzo0NjQKK21zZ2lkICJyZXF1aXJlIG9sZCB2YWx1ZSBvZiByZWYgdG8gYmUgYXQgdGhpcyB2YWx1ZSIKK21zZ3N0ciAi6KaB5rGC5byV55So5pen55qE5Y+W5YC85Li66K6+5a6a5YC8IgorCisjOiBidWlsdGluL3B1c2guYzo0NjYKIG1zZ2lkICJjaGVjayIKIG1zZ3N0ciAi5qOA5p+lIgogCi0jOiBidWlsdGluL3B1c2guYzo0NTUKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NwogbXNnaWQgImNvbnRyb2wgcmVjdXJzaXZlIHB1c2hpbmcgb2Ygc3VibW9kdWxlcyIKIG1zZ3N0ciAi5o6n5Yi25a2Q5qih57uE55qE6YCS5b2S5o6o6YCBIgogCi0jOiBidWlsdGluL3B1c2guYzo0NTcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2OQogbXNnaWQgInVzZSB0aGluIHBhY2siCiBtc2dzdHIgIuS9v+eUqOeyvueugOaJk+WMhSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDU4IGJ1aWx0aW4vcHVzaC5jOjQ1OQorIzogYnVpbHRpbi9wdXNoLmM6NDcwIGJ1aWx0aW4vcHVzaC5jOjQ3MQogbXNnaWQgInJlY2VpdmUgcGFjayBwcm9ncmFtIgogbXNnc3RyICLmjqXmlLbljIXnqIvluo8iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ2MAorIzogYnVpbHRpbi9wdXNoLmM6NDcyCiBtc2dpZCAic2V0IHVwc3RyZWFtIGZvciBnaXQgcHVsbC9zdGF0dXMiCiBtc2dzdHIgIuiuvue9riBnaXQgcHVsbC9zdGF0dXMg55qE5LiK5ri4IgogCi0jOiBidWlsdGluL3B1c2guYzo0NjMKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3NQogbXNnaWQgInBydW5lIGxvY2FsbHkgcmVtb3ZlZCByZWZzIgogbXNnc3RyICLmuIXpmaTmnKzlnLDliKDpmaTnmoTlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ2NQorIzogYnVpbHRpbi9wdXNoLmM6NDc3CiBtc2dpZCAiYnlwYXNzIHByZS1wdXNoIGhvb2siCiBtc2dzdHIgIue7lei/hyBwcmUtcHVzaCDpkqnlrZAiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ2NgorIzogYnVpbHRpbi9wdXNoLmM6NDc4CiBtc2dpZCAicHVzaCBtaXNzaW5nIGJ1dCByZWxldmFudCB0YWdzIgogbXNnc3RyICLmjqjpgIHnvLrlpLHnmoTmnInlhbPnmoQgdGFncyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDc2CisjOiBidWlsdGluL3B1c2guYzo0ODgKIG1zZ2lkICItLWRlbGV0ZSBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFsbCwgLS1taXJyb3IgYW5kIC0tdGFncyIKIG1zZ3N0ciAiLS1kZWxldGUg5LiOIC0tYWxs44CBLS1taXJyb3Ig5Y+KIC0tdGFncyDkuI3lhbzlrrkiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ3OAorIzogYnVpbHRpbi9wdXNoLmM6NDkwCiBtc2dpZCAiLS1kZWxldGUgZG9lc24ndCBtYWtlIHNlbnNlIHdpdGhvdXQgYW55IHJlZnMiCiBtc2dzdHIgIi0tZGVsZXRlIOacquaOpeS7u+S9leW8leeUqOayoeacieaEj+S5iSIKIApAQCAtNzgxMCwxMiArODAxNCwxMiBAQAogbXNnaWQgImRlYnVnIHVucGFjay10cmVlcyIKIG1zZ3N0ciAi6LCD6K+VIHVucGFjay10cmVlcyIKIAotIzogYnVpbHRpbi9yZWZsb2cuYzo1MDAKKyM6IGJ1aWx0aW4vcmVmbG9nLmM6NDk5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzJyBmb3IgJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiCiBtc2dzdHIgIiclMiRzJyDnmoTlgLwgJyUxJHMnIOS4jeaYr+S4gOS4quacieaViOeahOaXtumXtOaIsyIKIAotIzogYnVpbHRpbi9yZWZsb2cuYzo2MTYgYnVpbHRpbi9yZWZsb2cuYzo2MjEKKyM6IGJ1aWx0aW4vcmVmbG9nLmM6NjE1IGJ1aWx0aW4vcmVmbG9nLmM6NjIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIgogbXNnc3RyICInJXMnIOS4jeaYr+S4gOS4quacieaViOeahOaXtumXtOaIsyIKQEAgLTc4NDAsOSArODA0NCw5IEBACiBtc2dpZCAiZ2l0IHJlbW90ZSByZW1vdmUgPG5hbWU+IgogbXNnc3RyICJnaXQgcmVtb3RlIHJlbW92ZSA85ZCN56ewPiIKIAotIzogYnVpbHRpbi9yZW1vdGUuYzoxNSBidWlsdGluL3JlbW90ZS5jOjQyCi1tc2dpZCAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLWQgfCA8YnJhbmNoPikiCi1tc2dzdHIgImdpdCByZW1vdGUgc2V0LWhlYWQgPOWQjeensD4gKC1hIHwgLWQgfCA85YiG5pSvPikiCisjOiBidWlsdGluL3JlbW90ZS5jOjE1Cittc2dpZCAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8PGJyYW5jaD4pIgorbXNnc3RyICJnaXQgcmVtb3RlIHNldC1oZWFkIDzlkI3np7A+ICgtYSB8IC0tYXV0byB8IC1kIHwgLS1kZWxldGUgfDzliIbmlK8+KSIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNgogbXNnaWQgImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSBzaG93IFstbl0gPG5hbWU+IgpAQCAtNzg3Nyw2ICs4MDgxLDEwIEBACiBtc2dpZCAiZ2l0IHJlbW90ZSBhZGQgWzxvcHRpb25zPl0gPG5hbWU+IDx1cmw+IgogbXNnc3RyICJnaXQgcmVtb3RlIGFkZCBbPOmAiemhuT5dIDzlkI3np7A+IDzlnLDlnYA+IgogCisjOiBidWlsdGluL3JlbW90ZS5jOjQyCittc2dpZCAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLS1hdXRvIHwgLWQgfCAtLWRlbGV0ZSB8IDxicmFuY2g+KSIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA85ZCN56ewPiAoLWEgfCAtLWF1dG8gfCAtZCB8IC0tZGVsZXRlIHwgPOWIhuaUrz4pIgorCiAjOiBidWlsdGluL3JlbW90ZS5jOjQ3CiBtc2dpZCAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgPG5hbWU+IDxicmFuY2g+Li4uIgogbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyA85ZCN56ewPiA85YiG5pSvPi4uLiIKQEAgLTc5NzQsNyArODE4Miw3IEBACiAjOiBidWlsdGluL3JlbW90ZS5jOjMzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZ2V0IGZldGNoIG1hcCBmb3IgcmVmc3BlYyAlcyIKLW1zZ3N0ciAi5peg5rOV5b6X5Yiw5byV55So6KGo6L6+5byPICVzIOeahOiOt+WPluWIl+ihqCIKK21zZ3N0ciAi5peg5rOV5b6X5Yiw5byV55So6KeE5YiZICVzIOeahOiOt+WPluWIl+ihqCIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzo0NDAgYnVpbHRpbi9yZW1vdGUuYzo0NDgKIG1zZ2lkICIobWF0Y2hpbmcpIgpAQCAtODAxMSw3ICs4MjE5LDcgQEAKICJcdCVzXG4iCiAiXHRQbGVhc2UgdXBkYXRlIHRoZSBjb25maWd1cmF0aW9uIG1hbnVhbGx5IGlmIG5lY2Vzc2FyeS4iCiBtc2dzdHIgIiIKLSLmsqHmnInmm7TmlrDpnZ7pu5jorqTnmoTojrflj5blvJXnlKjooajovr7lvI9cbiIKKyLmsqHmnInmm7TmlrDpnZ7pu5jorqTnmoTojrflj5blvJXnlKjop4TliJlcbiIKICJcdCVzXG4iCiAiXHTlpoLmnpzlv4XopoHor7fmiYvliqjmm7TmlrDphY3nva7jgIIiCiAKQEAgLTgzMTIsNiArODUyMCw2NyBAQAogbXNnaWQgImJlIHZlcmJvc2U7IG11c3QgYmUgcGxhY2VkIGJlZm9yZSBhIHN1YmNvbW1hbmQiCiBtc2dzdHIgIuWGl+mVv+i+k+WHuu+8m+W/hemhu+e9ruS6juWtkOWRveS7pOS5i+WJjSIKIAorIzogYnVpbHRpbi9yZXBhY2suYzoxNQorbXNnaWQgImdpdCByZXBhY2sgW29wdGlvbnNdIgorbXNnc3RyICJnaXQgcmVwYWNrIFvpgInpobldIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE0MworbXNnaWQgInBhY2sgZXZlcnl0aGluZyBpbiBhIHNpbmdsZSBwYWNrIgorbXNnc3RyICLmiYDmnInlhoXlrrnmiZPljIXliLDkuIDkuKrljIXmlofku7bkuK0iCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MTQ1Cittc2dpZCAic2FtZSBhcyAtYSwgYW5kIHR1cm4gdW5yZWFjaGFibGUgb2JqZWN0cyBsb29zZSIKK21zZ3N0ciAi5ZKMIC1hIOebuOWQjO+8jOW5tuWwhuS4jeWPr+i+vueahOWvueixoeiuvuS4uuadvuaVo+WvueixoSIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNDgKK21zZ2lkICJyZW1vdmUgcmVkdW5kYW50IHBhY2tzLCBhbmQgcnVuIGdpdC1wcnVuZS1wYWNrZWQiCittc2dzdHIgIuWIoOmZpOWkmuS9meeahOWMhe+8jOi/kOihjCBnaXQtcHJ1bmUtcGFja2VkIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE1MAorbXNnaWQgInBhc3MgLS1uby1yZXVzZS1kZWx0YSB0byBnaXQtcGFjay1vYmplY3RzIgorbXNnc3RyICLlkJEgZ2l0LXBhY2stb2JqZWN0cyDkvKDpgJLlj4LmlbAgLS1uby1yZXVzZS1kZWx0YSIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNTIKK21zZ2lkICJwYXNzIC0tbm8tcmV1c2Utb2JqZWN0IHRvIGdpdC1wYWNrLW9iamVjdHMiCittc2dzdHIgIuWQkSBnaXQtcGFjay1vYmplY3RzIOS8oOmAkuWPguaVsCAtLW5vLXJldXNlLW9iamVjdCIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNTQKK21zZ2lkICJkbyBub3QgcnVuIGdpdC11cGRhdGUtc2VydmVyLWluZm8iCittc2dzdHIgIuS4jei/kOihjCBnaXQtdXBkYXRlLXNlcnZlci1pbmZvIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE1NworbXNnaWQgInBhc3MgLS1sb2NhbCB0byBnaXQtcGFjay1vYmplY3RzIgorbXNnc3RyICLlkJEgZ2l0LXBhY2stb2JqZWN0cyDkvKDpgJLlj4LmlbAgLS1sb2NhbCIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNTgKK21zZ2lkICJhcHByb3hpZGF0ZSIKK21zZ3N0ciAi6L+R5Ly85pel5pyfIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE1OQorbXNnaWQgIndpdGggLUEsIGRvIG5vdCBsb29zZW4gb2JqZWN0cyBvbGRlciB0aGFuIHRoaXMiCittc2dzdHIgIuS9v+eUqCAtQe+8jOS4jeimgeWwhuaXqeS6jue7meWumuaXtumXtOeahOWvueixoei/h+acnyIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNjEKK21zZ2lkICJzaXplIG9mIHRoZSB3aW5kb3cgdXNlZCBmb3IgZGVsdGEgY29tcHJlc3Npb24iCittc2dzdHIgIueUqOS6juWinumHj+WOi+e8qeeahOeql+WPo+WAvCIKKworIzogYnVpbHRpbi9yZXBhY2suYzoxNjMKK21zZ2lkICJzYW1lIGFzIHRoZSBhYm92ZSwgYnV0IGxpbWl0IG1lbW9yeSBzaXplIGluc3RlYWQgb2YgZW50cmllcyBjb3VudCIKK21zZ3N0ciAi5ZKM5LiK6Z2i55qE55u45Ly877yM5L2G6ZmQ5Yi25YaF5a2Y5aSn5bCP6ICM6Z2e5p2h55uu5pWwIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE2NQorbXNnaWQgImxpbWl0cyB0aGUgbWF4aW11bSBkZWx0YSBkZXB0aCIKK21zZ3N0ciAi6ZmQ5Yi25pyA5aSn5aKe6YeP5rex5bqmIgorCisjOiBidWlsdGluL3JlcGFjay5jOjE2NworbXNnaWQgIm1heGltdW0gc2l6ZSBvZiBlYWNoIHBhY2tmaWxlIgorbXNnc3RyICLmr4/kuKrljIXnmoTmnIDlpKflsLrlr7giCisKKyM6IGJ1aWx0aW4vcmVwYWNrLmM6MzQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbW92aW5nICclcycgZmFpbGVkIgorbXNnc3RyICLliKDpmaQgJyVzJyDlpLHotKUiCisKICM6IGJ1aWx0aW4vcmVwbGFjZS5jOjE3CiBtc2dpZCAiZ2l0IHJlcGxhY2UgWy1mXSA8b2JqZWN0PiA8cmVwbGFjZW1lbnQ+IgogbXNnc3RyICJnaXQgcmVwbGFjZSBbLWZdIDzlr7nosaE+IDzmm7/mjaLniak+IgpAQCAtODMyNCwyMyArODU5MywyMyBAQAogbXNnaWQgImdpdCByZXBsYWNlIC1sIFs8cGF0dGVybj5dIgogbXNnc3RyICJnaXQgcmVwbGFjZSAtbCBbPOaooeW8jz5dIgogCi0jOiBidWlsdGluL3JlcGxhY2UuYzoxMjEKKyM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEzMQogbXNnaWQgImxpc3QgcmVwbGFjZSByZWZzIgogbXNnc3RyICLliJflh7rmm7/mjaLnmoTlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEyMgorIzogYnVpbHRpbi9yZXBsYWNlLmM6MTMyCiBtc2dpZCAiZGVsZXRlIHJlcGxhY2UgcmVmcyIKIG1zZ3N0ciAi5Yig6Zmk5pu/5o2i55qE5byV55SoIgogCi0jOiBidWlsdGluL3JlcGxhY2UuYzoxMjMKKyM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEzMwogbXNnaWQgInJlcGxhY2UgdGhlIHJlZiBpZiBpdCBleGlzdHMiCiBtc2dzdHIgIuWmguaenOWtmOWcqOWImeabv+aNouW8leeUqCIKIAotIzogYnVpbHRpbi9yZXJlcmUuYzoxMQorIzogYnVpbHRpbi9yZXJlcmUuYzoxMgogbXNnaWQgImdpdCByZXJlcmUgW2NsZWFyIHwgZm9yZ2V0IHBhdGguLi4gfCBzdGF0dXMgfCByZW1haW5pbmcgfCBkaWZmIHwgZ2NdIgogbXNnc3RyICJnaXQgcmVyZXJlIFtjbGVhciB8IGZvcmdldCBwYXRoLi4uIHwgc3RhdHVzIHwgcmVtYWluaW5nIHwgZGlmZiB8IGdjXSIKIAotIzogYnVpbHRpbi9yZXJlcmUuYzo1NgorIzogYnVpbHRpbi9yZXJlcmUuYzo1NwogbXNnaWQgInJlZ2lzdGVyIGNsZWFuIHJlc29sdXRpb25zIGluIGluZGV4IgogbXNnc3RyICLlnKjntKLlvJXkuK3ms6jlhozlubLlh4DnmoTop6PlhrPmlrnmoYgiCiAKQEAgLTg0MDEsNzEgKzg2NzAsNzEgQEAKIG1zZ2lkICJDYW5ub3QgZG8gYSAlcyByZXNldCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UuIgogbXNnc3RyICLlnKjlkIjlubbov4fnqIvkuK3kuI3og73lgZolc+mHjee9ruaTjeS9nOOAgiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MQorIzogYnVpbHRpbi9yZXNldC5jOjI2MgogbXNnaWQgImJlIHF1aWV0LCBvbmx5IHJlcG9ydCBlcnJvcnMiCiBtc2dzdHIgIuWuiemdmeaooeW8j++8jOWPquaKpeWRiumUmeivryIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MworIzogYnVpbHRpbi9yZXNldC5jOjI2NAogbXNnaWQgInJlc2V0IEhFQUQgYW5kIGluZGV4IgogbXNnc3RyICLph43nva4gSEVBRCDlkozntKLlvJUiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTQKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjUKIG1zZ2lkICJyZXNldCBvbmx5IEhFQUQiCiBtc2dzdHIgIuWPqumHjee9riBIRUFEIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjU2IGJ1aWx0aW4vcmVzZXQuYzoyNTgKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjcgYnVpbHRpbi9yZXNldC5jOjI2OQogbXNnaWQgInJlc2V0IEhFQUQsIGluZGV4IGFuZCB3b3JraW5nIHRyZWUiCiBtc2dzdHIgIumHjee9riBIRUFE44CB57Si5byV5ZKM5bel5L2c5Yy6IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjYwCisjOiBidWlsdGluL3Jlc2V0LmM6MjcxCiBtc2dpZCAicmVzZXQgSEVBRCBidXQga2VlcCBsb2NhbCBjaGFuZ2VzIgogbXNnc3RyICLph43nva4gSEVBRCDkvYbkv53lrZjmnKzlnLDlj5jmm7QiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNzgKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyODkKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHJldmlzaW9uLiIKIG1zZ3N0ciAi5peg5rOV5bCGICclcycg6Kej5p6Q5Li65LiA5Liq5pyJ5pWI55qE54mI5pys44CCIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjgxIGJ1aWx0aW4vcmVzZXQuYzoyODkKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyOTIgYnVpbHRpbi9yZXNldC5jOjMwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2Ugb2JqZWN0ICclcycuIgogbXNnc3RyICLkuI3og73op6PmnpDlr7nosaEgJyVzJ+OAgiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI4NgorIzogYnVpbHRpbi9yZXNldC5jOjI5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgdHJlZS4iCiBtc2dzdHIgIuaXoOazleWwhiAnJXMnIOino+aekOS4uuS4gOS4quacieaViOeahOagkeWvueixoeOAgiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI5NQorIzogYnVpbHRpbi9yZXNldC5jOjMwNgogbXNnaWQgIi0tcGF0Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggLS17aGFyZCxtaXhlZCxzb2Z0fSIKIG1zZ3N0ciAiLS1wYXRjaCDkuI4gLS17aGFyZOOAgW1peGVk44CBc29mdH0g6YCJ6aG55LiN5YW85a65IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzA0CisjOiBidWlsdGluL3Jlc2V0LmM6MzE1CiBtc2dpZCAiLS1taXhlZCB3aXRoIHBhdGhzIGlzIGRlcHJlY2F0ZWQ7IHVzZSAnZ2l0IHJlc2V0IC0tIDxwYXRocz4nIGluc3RlYWQuIgogbXNnc3RyICItLW1peGVkIOW4pui3r+W+hOW3suW8g+eUqO+8jOiAjOaYr+eUqCAnZ2l0IHJlc2V0IC0tIDxwYXRocz4n44CCIgogCiAjICDor5HogIXvvJrmsYnlrZfkuYvpl7Tml6DnqbrmoLzvvIzmlYXliKDpmaQlc+WJjeWQjuepuuagvAotIzogYnVpbHRpbi9yZXNldC5jOjMwNgorIzogYnVpbHRpbi9yZXNldC5jOjMxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZG8gJXMgcmVzZXQgd2l0aCBwYXRocy4iCiBtc2dzdHIgIuS4jeiDveW4pui3r+W+hOi/m+ihjCVz6YeN572u44CCIgogCiAjICDor5HogIXvvJrmsYnlrZfkuYvpl7Tml6DnqbrmoLzvvIzmlYXliKDpmaQlc+WJjeWQjuepuuagvAotIzogYnVpbHRpbi9yZXNldC5jOjMxNgorIzogYnVpbHRpbi9yZXNldC5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyByZXNldCBpcyBub3QgYWxsb3dlZCBpbiBhIGJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAi5LiN6IO95a+56KO454mI5pys5bqT6L+b6KGMJXPph43nva4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMzYKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDQKK21zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlc2V0OiIKK21zZ3N0ciAi6YeN572u5ZCO5pKk5Ye65pqC5a2Y5Yy655qE5Y+Y5pu077yaIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MzUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZXNldCBpbmRleCBmaWxlIHRvIHJldmlzaW9uICclcycuIgogbXNnc3RyICLkuI3og73ph43nva7ntKLlvJXmlofku7boh7PniYjmnKwgJyVzJ+OAgiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjM0MgotbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVzZXQ6IgotbXNnc3RyICLph43nva7lkI7mkqTlh7rmmoLlrZjljLrnmoTlj5jmm7TvvJoiCi0KLSM6IGJ1aWx0aW4vcmVzZXQuYzozNDcKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNTUKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgbmV3IGluZGV4IGZpbGUuIgogbXNnc3RyICLkuI3og73lhpnlhaXmlrDnmoTntKLlvJXmlofku7bjgIIiCiAKQEAgLTg0OTAsOCArODc1OSw4IEBACiAiUnVuIFwiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IC1oXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGZpcnN0IHVzYWdlLiIKIG1zZ3N0ciAiIgogImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBb6YCJ6aG5XSAtLSBbPOWPguaVsD4uLi5dXG4iCi0iICAg5oiW6ICF77yaZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlIFs86YCJ6aG5Pi4uLl1cbiIKLSIgICDmiJbogIXvvJpnaXQgcmV2LXBhcnNlIFtvcHRpb25zXSBbPOmAiemhuT4uLi5dXG4iCisiICAg5oiW6ICF77yaZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlIFs85Y+C5pWwPi4uLl1cbiIKKyIgICDmiJbogIXvvJpnaXQgcmV2LXBhcnNlIFvpgInpobldIFs85Y+C5pWwPi4uLl1cbiIKICJcbiIKICLliJ3mrKHkvb/nlKjml7bmiafooYwgXCJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgLWhcIiDmnaXojrflvpfmm7TlpJrkv6Hmga/jgIIiCiAKQEAgLTg1MTEsODQgKzg3ODAsODQgQEAKIG1zZ2lkICJnaXQgY2hlcnJ5LXBpY2sgPHN1YmNvbW1hbmQ+IgogbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgPOWtkOWRveS7pD4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6NzEgYnVpbHRpbi9yZXZlcnQuYzo5NAorIzogYnVpbHRpbi9yZXZlcnQuYzo3MQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogJXMgY2Fubm90IGJlIHVzZWQgd2l0aCAlcyIKIG1zZ3N0ciAiJXPvvJolcyDkuI3og73lkowgJXMg5ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNQorIzogYnVpbHRpbi9yZXZlcnQuYzo4MAogbXNnaWQgImVuZCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgIue7iOatouWPjei9rOaIluaLo+mAieaTjeS9nCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODEKIG1zZ2lkICJyZXN1bWUgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICLnu6fnu63lj43ovazmiJbmi6PpgInmk43kvZwiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA3CisjOiBidWlsdGluL3JldmVydC5jOjgyCiBtc2dpZCAiY2FuY2VsIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAi5Y+W5raI5Y+N6L2s5oiW5ouj6YCJ5pON5L2cIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwOAorIzogYnVpbHRpbi9yZXZlcnQuYzo4MwogbXNnaWQgImRvbid0IGF1dG9tYXRpY2FsbHkgY29tbWl0IgogbXNnc3RyICLkuI3opoHoh6rliqjmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA5CisjOiBidWlsdGluL3JldmVydC5jOjg0CiBtc2dpZCAiZWRpdCB0aGUgY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgIue8lui+keaPkOS6pOivtOaYjiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTIKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6ODcKIG1zZ2lkICJwYXJlbnQgbnVtYmVyIgogbXNnc3RyICLniLbnvJblj7ciCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE0CisjOiBidWlsdGluL3JldmVydC5jOjg5CiBtc2dpZCAibWVyZ2Ugc3RyYXRlZ3kiCiBtc2dzdHIgIuWQiOW5tuetlueVpSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6OTAKIG1zZ2lkICJvcHRpb24iCiBtc2dzdHIgIumAiemhuSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6OTEKIG1zZ2lkICJvcHRpb24gZm9yIG1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICLlkIjlubbnrZbnlaXnmoTpgInpobkiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI3CisjOiBidWlsdGluL3JldmVydC5jOjEwMgogbXNnaWQgImFwcGVuZCBjb21taXQgbmFtZSIKIG1zZ3N0ciAi6L+95Yqg5o+Q5Lqk5ZCN56ewIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyOAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDMKIG1zZ2lkICJhbGxvdyBmYXN0LWZvcndhcmQiCiBtc2dzdHIgIuWFgeiuuOW/q+i/m+W8jyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjkKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA0CiBtc2dpZCAicHJlc2VydmUgaW5pdGlhbGx5IGVtcHR5IGNvbW1pdHMiCiBtc2dzdHIgIuS/neeVmeWIneWni+WMlueahOepuuaPkOS6pCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMzAKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA1CiBtc2dpZCAiYWxsb3cgY29tbWl0cyB3aXRoIGVtcHR5IG1lc3NhZ2VzIgogbXNnc3RyICLlhYHorrjmj5DkuqTor7TmmI7kuLrnqboiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTMxCisjOiBidWlsdGluL3JldmVydC5jOjEwNgogbXNnaWQgImtlZXAgcmVkdW5kYW50LCBlbXB0eSBjb21taXRzIgogbXNnc3RyICLkv53mjIHlpJrkvZnnmoTjgIHnqbrnmoTmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTM1CisjOiBidWlsdGluL3JldmVydC5jOjExMAogbXNnaWQgInByb2dyYW0gZXJyb3IiCiBtc2dzdHIgIueoi+W6j+mUmeivryIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyMjUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTk1CiBtc2dpZCAicmV2ZXJ0IGZhaWxlZCIKIG1zZ3N0ciAi6L+Y5Y6f5aSx6LSlIgogCi0jOiBidWlsdGluL3JldmVydC5jOjI0MAorIzogYnVpbHRpbi9yZXZlcnQuYzoyMTAKIG1zZ2lkICJjaGVycnktcGljayBmYWlsZWQiCiBtc2dzdHIgIuaLo+mAieWksei0pSIKIAotIzogYnVpbHRpbi9ybS5jOjE2CisjOiBidWlsdGluL3JtLmM6MTcKIG1zZ2lkICJnaXQgcm0gW29wdGlvbnNdIFstLV0gPGZpbGU+Li4uIgogbXNnc3RyICJnaXQgcm0gW+mAiemhuV0gWy0tXSA85paH5Lu2Pi4uLiIKIAotIzogYnVpbHRpbi9ybS5jOjY0CisjOiBidWlsdGluL3JtLmM6NjUKIG1zZ2lkICIiCiAidGhlIGZvbGxvd2luZyBzdWJtb2R1bGUgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpXG4iCiAidXNlcyBhIC5naXQgZGlyZWN0b3J5OiIKQEAgLTg1OTgsNyArODg2Nyw3IEBACiBtc2dzdHJbMF0gIuWmguS4i+WtkOaooee7hO+8iOaIluS4gOS4quWFtuW1jOWll+WtkOaooee7hO+8ieS9v+eUqOS6huS4gOS4qiAuZ2l0IOebruW9le+8miIKIG1zZ3N0clsxXSAi5aaC5LiL5a2Q5qih57uE77yI5oiW5LiA5Liq5YW25bWM5aWX5a2Q5qih57uE77yJ5L2/55So5LqG5LiA5LiqIC5naXQg55uu5b2V77yaIgogCi0jOiBidWlsdGluL3JtLmM6NzAKKyM6IGJ1aWx0aW4vcm0uYzo3MQogbXNnaWQgIiIKICJcbiIKICIodXNlICdybSAtcmYnIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgaXQgaW5jbHVkaW5nIGFsbCBvZiBpdHMgaGlzdG9yeSkiCkBAIC04NjA2LDcgKzg4NzUsNyBAQAogIlxuIgogIu+8iOS9v+eUqCAncm0gLXJmJyDlkb3ku6TlpoLmnpzmgqjnnJ/nmoTmg7PliKDpmaTlroPlj4rlhbblhajpg6jljoblj7LvvIkiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMzAKKyM6IGJ1aWx0aW4vcm0uYzoyMzEKIG1zZ2lkICIiCiAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgogImZpbGUgYW5kIHRoZSBIRUFEOiIKQEAgLTg2MTYsNyArODg4NSw3IEBACiBtc2dzdHJbMF0gIuWmguS4i+aWh+S7tuWFtuaaguWtmOeahOWGheWuueWSjOW3peS9nOWMuuWPiiBIRUFEIOS4reeahOmDveS4jeS4gOagt++8miIKIG1zZ3N0clsxXSAi5aaC5LiL5paH5Lu25YW25pqC5a2Y55qE5YaF5a655ZKM5bel5L2c5Yy65Y+KIEhFQUQg5Lit55qE6YO95LiN5LiA5qC377yaIgogCi0jOiBidWlsdGluL3JtLmM6MjM1CisjOiBidWlsdGluL3JtLmM6MjM2CiBtc2dpZCAiIgogIlxuIgogIih1c2UgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCkBAIC04NjI0LDEzICs4ODkzLDEzIEBACiAiXG4iCiAi77yI5L2/55SoIC1mIOW8uuWItuWIoOmZpO+8iSIKIAotIzogYnVpbHRpbi9ybS5jOjIzOQorIzogYnVpbHRpbi9ybS5jOjI0MAogbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKIG1zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoiCiBtc2dzdHJbMF0gIuWmguS4i+aWh+S7tuebuOWvuee0ouW8leWMuueahOWGheWuueacieS/ruaUuSIKIG1zZ3N0clsxXSAi5aaC5LiL5paH5Lu255u45a+557Si5byV5Yy655qE5YaF5a655pyJ5L+u5pS5IgogCi0jOiBidWlsdGluL3JtLmM6MjQzIGJ1aWx0aW4vcm0uYzoyNTQKKyM6IGJ1aWx0aW4vcm0uYzoyNDQgYnVpbHRpbi9ybS5jOjI1NQogbXNnaWQgIiIKICJcbiIKICIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgpAQCAtODYzOCwzOCArODkwNywzOCBAQAogIlxuIgogIu+8iOS9v+eUqCAtLWNhY2hlZCDkv53nlZnmnKzlnLDmlofku7bvvIzmiJbnlKggLWYg5by65Yi25Yig6Zmk77yJIgogCi0jOiBidWlsdGluL3JtLmM6MjUxCisjOiBidWlsdGluL3JtLmM6MjUyCiBtc2dpZCAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zOiIKIG1zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGxvY2FsIG1vZGlmaWNhdGlvbnM6IgogbXNnc3RyWzBdICLlpoLkuIvmlofku7bmnInmnKzlnLDkv67mlLnvvJoiCiBtc2dzdHJbMV0gIuWmguS4i+aWh+S7tuacieacrOWcsOS/ruaUue+8miIKIAotIzogYnVpbHRpbi9ybS5jOjI2OQorIzogYnVpbHRpbi9ybS5jOjI3MAogbXNnaWQgImRvIG5vdCBsaXN0IHJlbW92ZWQgZmlsZXMiCiBtc2dzdHIgIuS4jeWIl+WHuuWIoOmZpOeahOaWh+S7tiIKIAotIzogYnVpbHRpbi9ybS5jOjI3MAorIzogYnVpbHRpbi9ybS5jOjI3MQogbXNnaWQgIm9ubHkgcmVtb3ZlIGZyb20gdGhlIGluZGV4IgogbXNnc3RyICLlj6rku47ntKLlvJXljLrliKDpmaQiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyNzEKKyM6IGJ1aWx0aW4vcm0uYzoyNzIKIG1zZ2lkICJvdmVycmlkZSB0aGUgdXAtdG8tZGF0ZSBjaGVjayIKIG1zZ3N0ciAi5b+955Wl5paH5Lu25pu05paw54q25oCB5qOA5p+lIgogCi0jOiBidWlsdGluL3JtLmM6MjcyCisjOiBidWlsdGluL3JtLmM6MjczCiBtc2dpZCAiYWxsb3cgcmVjdXJzaXZlIHJlbW92YWwiCiBtc2dzdHIgIuWFgeiuuOmAkuW9kuWIoOmZpCIKIAotIzogYnVpbHRpbi9ybS5jOjI3NAorIzogYnVpbHRpbi9ybS5jOjI3NQogbXNnaWQgImV4aXQgd2l0aCBhIHplcm8gc3RhdHVzIGV2ZW4gaWYgbm90aGluZyBtYXRjaGVkIgogbXNnc3RyICLljbPkvb/msqHmnInljLnphY3vvIzkuZ/ku6Xpm7bnirbmgIHpgIDlh7oiCiAKLSM6IGJ1aWx0aW4vcm0uYzozNDUKKyM6IGJ1aWx0aW4vcm0uYzozMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHJlbW92aW5nICclcycgcmVjdXJzaXZlbHkgd2l0aG91dCAtciIKIG1zZ3N0ciAi5pyq5o+Q5L6bIC1yIOmAiemhueS4jeS8mumAkuW9kuWIoOmZpCAnJXMnIgogCi0jOiBidWlsdGluL3JtLmM6Mzg0CisjOiBidWlsdGluL3JtLmM6Mzc1CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCBybTogdW5hYmxlIHRvIHJlbW92ZSAlcyIKIG1zZ3N0ciAiZ2l0IHJt77ya5LiN6IO95Yig6ZmkICVzIgpAQCAtODY4MywyMyArODk1MiwyMyBAQAogbXNnaWQgIk1pc3NpbmcgYXV0aG9yOiAlcyIKIG1zZ3N0ciAi57y65bCR5L2c6ICF77yaJXMiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjgKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzAKIG1zZ2lkICJzb3J0IG91dHB1dCBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBjb21taXRzIHBlciBhdXRob3IiCiBtc2dzdHIgIuagueaNruavj+S4quS9nOiAheeahOaPkOS6pOaVsOmHj+aOkuW6jyIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMAorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgogbXNnaWQgIlN1cHByZXNzIGNvbW1pdCBkZXNjcmlwdGlvbnMsIG9ubHkgcHJvdmlkZXMgY29tbWl0IGNvdW50IgogbXNnc3RyICLpmpDol4/mj5DkuqTor7TmmI7vvIzlj6rmj5Dkvpvmj5DkuqTmlbDph48iCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzIKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzQKIG1zZ2lkICJTaG93IHRoZSBlbWFpbCBhZGRyZXNzIG9mIGVhY2ggYXV0aG9yIgogbXNnc3RyICLmmL7npLrmr4/kuKrkvZzogIXnmoTnlLXlrZDpgq7ku7blnLDlnYAiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzUKIG1zZ2lkICJ3WyxpMVssaTJdXSIKIG1zZ3N0ciAid1ssaTFbLGkyXV0iCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzQKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzYKIG1zZ2lkICJMaW5ld3JhcCBvdXRwdXQiCiBtc2dzdHIgIuaKmOihjOi+k+WHuiIKIApAQCAtODgwNywyMyArOTA3NiwyMyBAQAogbXNnaWQgInN0cmljdGVyIHJlZmVyZW5jZSBjaGVja2luZywgcmVxdWlyZXMgZXhhY3QgcmVmIHBhdGgiCiBtc2dzdHIgIuabtOS4peagvOeahOW8leeUqOajgOa1i++8jOmcgOimgeeyvuehrueahOW8leeUqOi3r+W+hCIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MyBidWlsdGluL3Nob3ctcmVmLmM6MTc2CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTczIGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzUKIG1zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSwgZXZlbiBpZiBpdCB3b3VsZCBiZSBmaWx0ZXJlZCBvdXQiCiBtc2dzdHIgIuaYvuekuiBIRUFEIOW8leeUqO+8jOWNs+S9v+iiq+i/h+a7pOaOiSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3OAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NwogbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW50byBvYmplY3QgSURzIgogbXNnc3RyICLovazmjaIgdGFncyDliLDlr7nosaFJRCIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3OQogbXNnaWQgIm9ubHkgc2hvdyBTSEExIGhhc2ggdXNpbmcgPG4+IGRpZ2l0cyIKIG1zZ3N0ciAi5Y+q5pi+56S65L2/55SoIDxuPiDkuKrmlbDlrZfnmoQgU0hBMSDlk4jluIwiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODQKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODMKIG1zZ2lkICJkbyBub3QgcHJpbnQgcmVzdWx0cyB0byBzdGRvdXQgKHVzZWZ1bCB3aXRoIC0tdmVyaWZ5KSIKIG1zZ3N0ciAi5LiN5omT5Y2w57uT5p6c5Yiw5qCH5YeG6L6T5Ye677yI5L6L5aaC5LiOIC0tdmVyaWZ5IOWPguaVsOWFseeUqO+8iSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4NgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4NQogbXNnaWQgInNob3cgcmVmcyBmcm9tIHN0ZGluIHRoYXQgYXJlbid0IGluIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgIuaYvuekuuS7juagh+WHhui+k+WFpeS4reivu+WFpeeahOS4jeWcqOacrOWcsOeJiOacrOW6k+S4reeahOW8leeUqCIKIApAQCAtODg0NywxMSArOTExNiwxMSBAQAogbXNnaWQgInNob3J0ZW4gcmVmIG91dHB1dCIKIG1zZ3N0ciAi566A55+t55qE5byV55So6L6T5Ye6IgogCi0jOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjE4CisjOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1NAogbXNnaWQgInJlYXNvbiIKIG1zZ3N0ciAi5Y6f5ZugIgogCi0jOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjE4CisjOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1NAogbXNnaWQgInJlYXNvbiBvZiB0aGUgdXBkYXRlIgogbXNnc3RyICLmm7TmlrDnmoTljp/lm6AiCiAKQEAgLTkwMTQsMTgzICs5MjgzLDE5NSBAQAogbXNnaWQgInByaW50IG9ubHkgdGFncyBvZiB0aGUgb2JqZWN0IgogbXNnc3RyICLlj6rmiZPljbB0YWdz5a+56LGhIgogCi0jOiBidWlsdGluL3RhZy5jOjUwNAorIzogYnVpbHRpbi90YWcuYzo1MDEKIG1zZ2lkICItLWNvbHVtbiBhbmQgLW4gYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1jb2x1bW4g5ZKMIC1uIOS4jeWFvOWuuSIKIAotIzogYnVpbHRpbi90YWcuYzo1MjEKKyM6IGJ1aWx0aW4vdGFnLmM6NTE4CiBtc2dpZCAiLW4gb3B0aW9uIGlzIG9ubHkgYWxsb3dlZCB3aXRoIC1sLiIKIG1zZ3N0ciAiLW4g6YCJ6aG55Y+q5YWB6K645ZKMIC1sIOWQjOaXtuS9v+eUqOOAgiIKIAotIzogYnVpbHRpbi90YWcuYzo1MjMKKyM6IGJ1aWx0aW4vdGFnLmM6NTIwCiBtc2dpZCAiLS1jb250YWlucyBvcHRpb24gaXMgb25seSBhbGxvd2VkIHdpdGggLWwuIgogbXNnc3RyICItLWNvbnRhaW5zIOmAiemhueWPquWFgeiuuOWSjCAtbCDlkIzml7bkvb/nlKjjgIIiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTI1CisjOiBidWlsdGluL3RhZy5jOjUyMgogbXNnaWQgIi0tcG9pbnRzLWF0IG9wdGlvbiBpcyBvbmx5IGFsbG93ZWQgd2l0aCAtbC4iCiBtc2dzdHIgIi0tcG9pbnRzLWF0IOmAiemhueWPquWFgeiuuOWSjCAtbCDlkIzml7bkvb/nlKjjgIIiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTMzCisjOiBidWlsdGluL3RhZy5jOjUzMAogbXNnaWQgIm9ubHkgb25lIC1GIG9yIC1tIG9wdGlvbiBpcyBhbGxvd2VkLiIKIG1zZ3N0ciAi5Y+q5YWB6K645LiA5LiqIC1GIOaIliAtbSDpgInpobnjgIIiCiAKLSM6IGJ1aWx0aW4vdGFnLmM6NTUzCisjOiBidWlsdGluL3RhZy5jOjU1MAogbXNnaWQgInRvbyBtYW55IHBhcmFtcyIKIG1zZ3N0ciAi5aSq5aSa5Y+C5pWwIgogCi0jOiBidWlsdGluL3RhZy5jOjU1OQorIzogYnVpbHRpbi90YWcuYzo1NTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCB0YWcgbmFtZS4iCiBtc2dzdHIgIiclcycg5LiN5piv5LiA5Liq5pyJ5pWI55qEdGFn5ZCN56ew44CCIgogCi0jOiBidWlsdGluL3RhZy5jOjU2NAorIzogYnVpbHRpbi90YWcuYzo1NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnICclcycgYWxyZWFkeSBleGlzdHMiCiBtc2dzdHIgInRhZyAnJXMnIOW3suWtmOWcqCIKIAotIzogYnVpbHRpbi90YWcuYzo1ODIKKyM6IGJ1aWx0aW4vdGFnLmM6NTc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBjYW5ub3QgbG9jayB0aGUgcmVmIgogbXNnc3RyICIlc++8muS4jeiDvemUgeWumuW8leeUqCIKIAotIzogYnVpbHRpbi90YWcuYzo1ODQKKyM6IGJ1aWx0aW4vdGFnLmM6NTgxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBjYW5ub3QgdXBkYXRlIHRoZSByZWYiCiBtc2dzdHIgIiVz77ya5LiN6IO95pu05paw5byV55SoIgogCi0jOiBidWlsdGluL3RhZy5jOjU4NgorIzogYnVpbHRpbi90YWcuYzo1ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBkYXRlZCB0YWcgJyVzJyAod2FzICVzKVxuIgogbXNnc3RyICLlt7Lmm7TmlrB0YWcgJyVzJ++8iOabvuS4uiAlc++8iVxuIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjQwMQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo0MDIKIG1zZ2lkICJnaXQgdXBkYXRlLWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmlsZT4uLi5dIgogbXNnc3RyICJnaXQgdXBkYXRlLWluZGV4IFvpgInpobldIFstLV0gWzzmlofku7Y+Li4uXSIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MTgKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzIwCiBtc2dpZCAiY29udGludWUgcmVmcmVzaCBldmVuIHdoZW4gaW5kZXggbmVlZHMgdXBkYXRlIgogbXNnc3RyICLlvZPntKLlvJXpnIDopoHmm7TmlrDml7bnu6fnu63liLfmlrAiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzIxCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyMwogbXNnaWQgInJlZnJlc2g6IGlnbm9yZSBzdWJtb2R1bGVzIgogbXNnc3RyICLliLfmlrDvvJrlv73nlaXlrZDmqKHnu4QiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI0CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyNgogbXNnaWQgImRvIG5vdCBpZ25vcmUgbmV3IGZpbGVzIgogbXNnc3RyICLkuI3lv73nlaXmlrDnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI2CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyOAogbXNnaWQgImxldCBmaWxlcyByZXBsYWNlIGRpcmVjdG9yaWVzIGFuZCB2aWNlLXZlcnNhIgogbXNnc3RyICLorqnmlofku7bmm7/mjaLnm67lvZXvvIjlj43kuYvkuqbnhLbvvIkiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI4CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczMAogbXNnaWQgIm5vdGljZSBmaWxlcyBtaXNzaW5nIGZyb20gd29ya3RyZWUiCiBtc2dzdHIgIumAmuefpeaWh+S7tuS7juW3peS9nOWMuuS4ouWksSIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzAKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzMyCiBtc2dpZCAicmVmcmVzaCBldmVuIGlmIGluZGV4IGNvbnRhaW5zIHVubWVyZ2VkIGVudHJpZXMiCiBtc2dzdHIgIuWNs+S9v+e0ouW8leWMuuWMheWQq+acquWQiOW5tueahOadoeebruS5n+aJp+ihjOWIt+aWsCIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzMKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzM1CiBtc2dpZCAicmVmcmVzaCBzdGF0IGluZm9ybWF0aW9uIgogbXNnc3RyICLliLfmlrDnu5/orqHkv6Hmga8iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzM3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczOQogbXNnaWQgImxpa2UgLS1yZWZyZXNoLCBidXQgaWdub3JlIGFzc3VtZS11bmNoYW5nZWQgc2V0dGluZyIKIG1zZ3N0ciAi57G75Ly85LqOIC0tcmVmcmVzaO+8jOS9huaYr+W/veeVpSBhc3N1bWUtdW5jaGFuZ2VkIOiuvue9riIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDEKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQzCiBtc2dpZCAiPG1vZGU+IDxvYmplY3Q+IDxwYXRoPiIKIG1zZ3N0ciAiPG1vZGU+IDxvYmplY3Q+IDxwYXRoPiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDIKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQ0CiBtc2dpZCAiYWRkIHRoZSBzcGVjaWZpZWQgZW50cnkgdG8gdGhlIGluZGV4IgogbXNnc3RyICLmt7vliqDmjIflrprnmoTmnaHnm67liLDntKLlvJXljLoiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQ2CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0OAogbXNnaWQgIigrLy0peCIKIG1zZ3N0ciAiKCsvLSl4IgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0NworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDkKIG1zZ2lkICJvdmVycmlkZSB0aGUgZXhlY3V0YWJsZSBiaXQgb2YgdGhlIGxpc3RlZCBmaWxlcyIKIG1zZ3N0ciAi6KaG55uW5YiX6KGo6YeM5paH5Lu255qE5Y+v5omn6KGM5L2NIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1MQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTMKIG1zZ2lkICJtYXJrIGZpbGVzIGFzIFwibm90IGNoYW5naW5nXCIiCiBtc2dzdHIgIuaKiuaWh+S7tuagh+iusOS4uiBcIuayoeacieWPmOabtFwiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1NAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTYKIG1zZ2lkICJjbGVhciBhc3N1bWVkLXVuY2hhbmdlZCBiaXQiCiBtc2dzdHIgIua4hemZpCBhc3N1bWVkLXVuY2hhbmdlZCDkvY0iCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzU3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1OQogbXNnaWQgIm1hcmsgZmlsZXMgYXMgXCJpbmRleC1vbmx5XCIiCiBtc2dzdHIgIuaKiuaWh+S7tuagh+iusOS4uiBcIuS7hee0ouW8lVwiIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2MAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjIKIG1zZ2lkICJjbGVhciBza2lwLXdvcmt0cmVlIGJpdCIKIG1zZ3N0ciAi5riF6ZmkIHNraXAtd29ya3RyZWUg5L2NIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2MworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjUKIG1zZ2lkICJhZGQgdG8gaW5kZXggb25seTsgZG8gbm90IGFkZCBjb250ZW50IHRvIG9iamVjdCBkYXRhYmFzZSIKIG1zZ3N0ciAi5Y+q5re75Yqg5Yiw57Si5byV5Yy677yb5LiN5re75Yqg5a+56LGh5Yiw5a+56LGh5bqTIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2NQorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjcKIG1zZ2lkICJyZW1vdmUgbmFtZWQgcGF0aHMgZXZlbiBpZiBwcmVzZW50IGluIHdvcmt0cmVlIgogbXNnc3RyICLljbPkvb/lrZjlnKjlt6XkvZzljLrph4zvvIzkuZ/liKDpmaTot6/lvoQiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY3CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2OQogbXNnaWQgIndpdGggLS1zdGRpbjogaW5wdXQgbGluZXMgYXJlIHRlcm1pbmF0ZWQgYnkgbnVsbCBieXRlcyIKIG1zZ3N0ciAi5pC65bimIC0tc3RkaW7vvJrovpPlhaXnmoTooYzku6UgbnVsbCDlrZfnrKbnu4jmraIiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY5CisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc3MQogbXNnaWQgInJlYWQgbGlzdCBvZiBwYXRocyB0byBiZSB1cGRhdGVkIGZyb20gc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgIuS7juagh+WHhui+k+WFpeS4reivu+WPlumcgOimgeabtOaWsOeahOi3r+W+hOWIl+ihqCIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzMKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzc1CiBtc2dpZCAiYWRkIGVudHJpZXMgZnJvbSBzdGFuZGFyZCBpbnB1dCB0byB0aGUgaW5kZXgiCiBtc2dzdHIgIuS7juagh+WHhui+k+WFpea3u+WKoOadoeebruWIsOe0ouW8leWMuiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzcKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzc5CiBtc2dpZCAicmVwb3B1bGF0ZSBzdGFnZXMgIzIgYW5kICMzIGZvciB0aGUgbGlzdGVkIHBhdGhzIgogbXNnc3RyICLkuLrmjIflrprmlofku7bph43mlrDnlJ/miJDnrKwy5ZKM56ysM+aaguWtmOWMuiIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODEKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzgzCiBtc2dpZCAib25seSB1cGRhdGUgZW50cmllcyB0aGF0IGRpZmZlciBmcm9tIEhFQUQiCiBtc2dzdHIgIuWPquabtOaWsOS4jiBIRUFEIOS4jeWQjOeahOadoeebriIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODUKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzg3CiBtc2dpZCAiaWdub3JlIGZpbGVzIG1pc3NpbmcgZnJvbSB3b3JrdHJlZSIKIG1zZ3N0ciAi5b+955Wl5bel5L2c5Yy65Lii5aSx55qE5paH5Lu2IgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4OAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTAKIG1zZ2lkICJyZXBvcnQgYWN0aW9ucyB0byBzdGFuZGFyZCBvdXRwdXQiCiBtc2dzdHIgIuWcqOagh+WHhui+k+WHuuaYvuekuuaTjeS9nCIKIAotIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTAKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzkyCiBtc2dpZCAiKGZvciBwb3JjZWxhaW5zKSBmb3JnZXQgc2F2ZWQgdW5yZXNvbHZlZCBjb25mbGljdHMiCiBtc2dzdHIgIihmb3IgcG9yY2VsYWlucykg5b+Y6K6w5L+d5a2Y55qE5pyq6Kej5Yaz55qE5Yay56qBIgogCi0jOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5NAorIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTYKIG1zZ2lkICJ3cml0ZSBpbmRleCBpbiB0aGlzIGZvcm1hdCIKIG1zZ3N0ciAi5Lul6L+Z56eN5qC85byP5YaZ5YWl57Si5byV5Yy6IgogCi0jOiBidWlsdGluL3VwZGF0ZS1yZWYuYzo3CisjOiBidWlsdGluL3VwZGF0ZS1yZWYuYzo5CiBtc2dpZCAiZ2l0IHVwZGF0ZS1yZWYgW29wdGlvbnNdIC1kIDxyZWZuYW1lPiBbPG9sZHZhbD5dIgotbXNnc3RyICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gLWQgPOW8leeUqOWQjT4gWzzml6flgLw+XSIKK21zZ3N0ciAiZ2l0IHVwZGF0ZS1yZWYgW+mAiemhuV0gLWQgPOW8leeUqOWQjT4gWzzml6flgLw+XSIKIAotIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6OAorIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MTAKIG1zZ2lkICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gICAgPHJlZm5hbWU+IDxuZXd2YWw+IFs8b2xkdmFsPl0iCi1tc2dzdHIgImdpdCB1cGRhdGUtcmVmIFtvcHRpb25zXSAgICA85byV55So5ZCNPiA85paw5YC8PiBbPOaXp+WAvD5dIgorbXNnc3RyICJnaXQgdXBkYXRlLXJlZiBb6YCJ6aG5XSAgICA85byV55So5ZCNPiA85paw5YC8PiBbPOaXp+WAvD5dIgogCi0jOiBidWlsdGluL3VwZGF0ZS1yZWYuYzoxOQorIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MTEKK21zZ2lkICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gLS1zdGRpbiBbLXpdIgorbXNnc3RyICJnaXQgdXBkYXRlLXJlZiBb6YCJ6aG5XSAtLXN0ZGluIFstel0iCisKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1NQogbXNnaWQgImRlbGV0ZSB0aGUgcmVmZXJlbmNlIgogbXNnc3RyICLliKDpmaTlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjIxCisjOiBidWlsdGluL3VwZGF0ZS1yZWYuYzoyNTcKIG1zZ2lkICJ1cGRhdGUgPHJlZm5hbWU+IG5vdCB0aGUgb25lIGl0IHBvaW50cyB0byIKIG1zZ3N0ciAi5pu05pawIDzlvJXnlKjlkI0+IOacrOi6q+iAjOS4jeaYr+Wug+aMh+WQkeeahOW8leeUqCIKIAorIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjU4Cittc2dpZCAic3RkaW4gaGFzIE5VTC10ZXJtaW5hdGVkIGFyZ3VtZW50cyIKK21zZ3N0ciAi5qCH5YeG6L6T5YWl5pyJ5LulIE5VTCDlrZfnrKbnu4jmraLnmoTlj4LmlbAiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjI1OQorbXNnaWQgInJlYWQgdXBkYXRlcyBmcm9tIHN0ZGluIgorbXNnc3RyICLku47moIflh4bovpPlhaXor7vlj5bmm7TmlrAiCisKICM6IGJ1aWx0aW4vdXBkYXRlLXNlcnZlci1pbmZvLmM6NgogbXNnaWQgImdpdCB1cGRhdGUtc2VydmVyLWluZm8gWy0tZm9yY2VdIgogbXNnc3RyICJnaXQgdXBkYXRlLXNlcnZlci1pbmZvIFstLWZvcmNlXSIKQEAgLTkyNDQsMjMgKzk1MjUsMjMgQEAKICLlkb3ku6QgJ2dpdCBoZWxwIC1hJyDlkowgJ2dpdCBoZWxwIC1nJyDmmL7npLrlj6/nlKjnmoTlrZDlkb3ku6TlkozkuIDkupvmjIfljZfjgILlj4Lop4FcbiIKICInZ2l0IGhlbHAgPOWRveS7pD4nIOaIliAnZ2l0IGhlbHAgPOaMh+WNlz4nIOadpeafpeeci+e7meWumueahOWtkOWRveS7pOW4ruWKqeaIluaMh+WNl+OAgiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjE0NAorIzogcGFyc2Utb3B0aW9ucy5oOjE0NgogbXNnaWQgImV4cGlyeSBkYXRlIgogbXNnc3RyICLpgL7mnJ/ml6XmnJ8iCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoxNTkKKyM6IHBhcnNlLW9wdGlvbnMuaDoxNjEKIG1zZ2lkICJuby1vcCAoYmFja3dhcmQgY29tcGF0aWJpbGl0eSkiCiBtc2dzdHIgIuepuuaTjeS9nO+8iOWQkeWQjuWFvOWuue+8iSIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzNgorIzogcGFyc2Utb3B0aW9ucy5oOjIzOAogbXNnaWQgImJlIG1vcmUgdmVyYm9zZSIKIG1zZ3N0ciAi5pu05Yqg6K+m57uGIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjM4CisjOiBwYXJzZS1vcHRpb25zLmg6MjQwCiBtc2dpZCAiYmUgbW9yZSBxdWlldCIKIG1zZ3N0ciAi5pu05Yqg5a6J6Z2ZIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjQ0CisjOiBwYXJzZS1vcHRpb25zLmg6MjQ2CiBtc2dpZCAidXNlIDxuPiBkaWdpdHMgdG8gZGlzcGxheSBTSEEtMXMiCiBtc2dzdHIgIueUqCA8bj4g5L2N5pWw5a2X5pi+56S6IFNIQS0xIOWTiOW4jOWAvCIKIApAQCAtOTY5MCw3ICs5OTcxLDcgQEAKIG1zZ2lkICJQdWxsIGlzIG5vdCBwb3NzaWJsZSBiZWNhdXNlIHlvdSBoYXZlIHVubWVyZ2VkIGZpbGVzLiIKIG1zZ3N0ciAiUHVsbCDkuI3lj6/nlKjvvIzlm6DkuLrmgqjlsJrmnInmnKrlkIjlubbnmoTmlofku7bjgIIiCiAKLSM6IGdpdC1wdWxsLnNoOjIwMworIzogZ2l0LXB1bGwuc2g6MjIzCiBtc2dpZCAidXBkYXRpbmcgYW4gdW5ib3JuIGJyYW5jaCB3aXRoIGNoYW5nZXMgYWRkZWQgdG8gdGhlIGluZGV4IgogbXNnc3RyICLmm7TmlrDlsJrmnKror57nlJ/nmoTliIbmlK/vvIzlj5jmm7Tmt7vliqDoh7PntKLlvJUiCiAKQEAgLTk2OTgsNyArOTk3OSw3IEBACiAjLiBUaGUgd29ya2luZyB0cmVlIGFuZCB0aGUgaW5kZXggZmlsZSBpcyBzdGlsbCBiYXNlZCBvbiB0aGUKICMuICRvcmlnX2hlYWQgY29tbWl0LCBidXQgd2UgYXJlIG1lcmdpbmcgaW50byAkY3Vycl9oZWFkLgogIy4gRmlyc3QgdXBkYXRlIHRoZSB3b3JraW5nIHRyZWUgdG8gbWF0Y2ggJGN1cnJfaGVhZC4KLSM6IGdpdC1wdWxsLnNoOjIzNQorIzogZ2l0LXB1bGwuc2g6MjU1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiV2FybmluZzogZmV0Y2ggdXBkYXRlZCB0aGUgY3VycmVudCBicmFuY2ggaGVhZC5cbiIKQEAgLTk3MDgsMTEgKzk5ODksMTEgQEAKICLorablkYrvvJpmZXRjaCDmm7TmlrDkuoblvZPliY3nmoTliIbmlK/jgILmgqjnmoTlt6XkvZzljLpcbiIKICLorablkYrvvJrku47ljp/mj5DkuqQgJG9yaWdfaGVhZCDlv6vov5vjgIIiCiAKLSM6IGdpdC1wdWxsLnNoOjI2MAorIzogZ2l0LXB1bGwuc2g6MjgwCiBtc2dpZCAiQ2Fubm90IG1lcmdlIG11bHRpcGxlIGJyYW5jaGVzIGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAi5peg5rOV5bCG5aSa5Liq5YiG5pSv5ZCI5bm25Yiw56m65YiG5pSvIgogCi0jOiBnaXQtcHVsbC5zaDoyNjQKKyM6IGdpdC1wdWxsLnNoOjI4NAogbXNnaWQgIkNhbm5vdCByZWJhc2Ugb250byBtdWx0aXBsZSBicmFuY2hlcyIKIG1zZ3N0ciAi5peg5rOV5Y+Y5Z+65Yiw5aSa5Liq5YiG5pSvIgogCkBAIC05NzQ2LDMxICsxMDAyNywzMSBAQAogIuaCqOeahOS/ruaUueWuieWFqOWcsOS/neWtmOWcqCBzdGFzaCDkuK3jgIJcbiIKICLmgqjlj6/ku6XlnKjku7vkvZXml7blgJnov5DooYwgXCJnaXQgc3Rhc2ggcG9wXCIg5oiWIFwiZ2l0IHN0YXNoIGRyb3BcIuOAglxuIgogCi0jOiBnaXQtcmViYXNlLnNoOjE5MAorIzogZ2l0LXJlYmFzZS5zaDoxOTkKIG1zZ2lkICJUaGUgcHJlLXJlYmFzZSBob29rIHJlZnVzZWQgdG8gcmViYXNlLiIKIG1zZ3N0ciAi6ZKp5a2QIHByZS1yZWJhc2Ug5ouS57ud5Y+Y5Z+644CCIgogCi0jOiBnaXQtcmViYXNlLnNoOjE5NQorIzogZ2l0LXJlYmFzZS5zaDoyMDQKIG1zZ2lkICJJdCBsb29rcyBsaWtlIGdpdC1hbSBpcyBpbiBwcm9ncmVzcy4gQ2Fubm90IHJlYmFzZS4iCiBtc2dzdHIgIuS8vOS5juato+WkhOS6juWcqCBnaXQtYW0g55qE5omn6KGM6L+H56iL5Lit44CC5peg5rOV5Y+Y5Z+644CCIgogCi0jOiBnaXQtcmViYXNlLnNoOjMyOQorIzogZ2l0LXJlYmFzZS5zaDozMzgKIG1zZ2lkICJUaGUgLS1leGVjIG9wdGlvbiBtdXN0IGJlIHVzZWQgd2l0aCB0aGUgLS1pbnRlcmFjdGl2ZSBvcHRpb24iCiBtc2dzdHIgIumAiemhuSAtLWV4ZWMg5b+F6aG75ZKM6YCJ6aG5IC0taW50ZXJhY3RpdmUg5ZCM5pe25L2/55SoIgogCi0jOiBnaXQtcmViYXNlLnNoOjMzNAorIzogZ2l0LXJlYmFzZS5zaDozNDMKIG1zZ2lkICJObyByZWJhc2UgaW4gcHJvZ3Jlc3M/IgogbXNnc3RyICLmsqHmnInmraPlnKjov5vooYznmoTlj5jln7rvvJ8iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzQ1CisjOiBnaXQtcmViYXNlLnNoOjM1NAogbXNnaWQgIlRoZSAtLWVkaXQtdG9kbyBhY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgaW50ZXJhY3RpdmUgcmViYXNlLiIKIG1zZ3N0ciAi5Yqo5L2cIC0tZWRpdC10b2RvIOWPquiDveeUqOWcqOS6pOS6kuW8j+WPmOWfuui/h+eoi+S4reOAgiIKIAotIzogZ2l0LXJlYmFzZS5zaDozNTIKKyM6IGdpdC1yZWJhc2Uuc2g6MzYxCiBtc2dpZCAiQ2Fubm90IHJlYWQgSEVBRCIKIG1zZ3N0ciAi5LiN6IO96K+75Y+WIEhFQUQiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzU1CisjOiBnaXQtcmViYXNlLnNoOjM2NAogbXNnaWQgIiIKICJZb3UgbXVzdCBlZGl0IGFsbCBtZXJnZSBjb25mbGljdHMgYW5kIHRoZW5cbiIKICJtYXJrIHRoZW0gYXMgcmVzb2x2ZWQgdXNpbmcgZ2l0IGFkZCIKQEAgLTk3NzgsMTIgKzEwMDU5LDEyIEBACiAi5oKo5b+F6aG757yW6L6R5omA5pyJ55qE5ZCI5bm25Yay56qB77yM54S25ZCO6YCa6L+HIGdpdCBhZGRcbiIKICLlkb3ku6TlsIblroPku6zmoIforrDkuLrlt7Lop6PlhrMiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzczCisjOiBnaXQtcmViYXNlLnNoOjM4MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG1vdmUgYmFjayB0byAkaGVhZF9uYW1lIgogbXNnc3RyICLml6Dms5Xnp7vlm54gJGhlYWRfbmFtZSIKIAotIzogZ2l0LXJlYmFzZS5zaDozOTIKKyM6IGdpdC1yZWJhc2Uuc2g6NDAxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiSXQgc2VlbXMgdGhhdCB0aGVyZSBpcyBhbHJlYWR5IGEgJHN0YXRlX2Rpcl9iYXNlIGRpcmVjdG9yeSwgYW5kXG4iCkBAIC05ODAyLDY1ICsxMDA4Myw2NSBAQAogIlx0JGNtZF9jbGVhcl9zdGFsZV9yZWJhc2VcbiIKICLnhLblkI7lho3ph43mlrDmiafooYzlj5jln7rjgILkuLrpgb/lhY3mgqjkuKLlpLHph43opoHmlbDmja7vvIzmiJHlt7Lnu4/lgZzmraLlvZPliY3mk43kvZzjgIIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDM3CisjOiBnaXQtcmViYXNlLnNoOjQ0NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCB1cHN0cmVhbSAkdXBzdHJlYW1fbmFtZSIKIG1zZ3N0ciAi5peg5pWI55qE5LiK5ri4ICR1cHN0cmVhbV9uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ2MQorIzogZ2l0LXJlYmFzZS5zaDo0NzAKICMsIHNoLWZvcm1hdAogbXNnaWQgIiRvbnRvX25hbWU6IHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIG1lcmdlIGJhc2VzIgogbXNnc3RyICIkb250b19uYW1lOiDmnInkuIDkuKrku6XkuIrnmoTlkIjlubbln7rlh4YiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDY0IGdpdC1yZWJhc2Uuc2g6NDY4CisjOiBnaXQtcmViYXNlLnNoOjQ3MyBnaXQtcmViYXNlLnNoOjQ3NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiJG9udG9fbmFtZTogdGhlcmUgaXMgbm8gbWVyZ2UgYmFzZSIKIG1zZ3N0ciAiJG9udG9fbmFtZTog5rKh5pyJ5ZCI5bm25Z+65YeGIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ3MworIzogZ2l0LXJlYmFzZS5zaDo0ODIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQgY29tbWl0OiAkb250b19uYW1lIgogbXNnc3RyICLmsqHmnInmjIflkJHkuIDkuKrmnInmlYjnmoTmj5DkuqTvvJokb250b19uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ5NgorIzogZ2l0LXJlYmFzZS5zaDo1MDUKICMsIHNoLWZvcm1hdAogbXNnaWQgImZhdGFsOiBubyBzdWNoIGJyYW5jaDogJGJyYW5jaF9uYW1lIgogbXNnc3RyICLkuKXph43plJnor6/vvJrml6DmraTliIbmlK/vvJokYnJhbmNoX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTE5CisjOiBnaXQtcmViYXNlLnNoOjUyOAogbXNnaWQgIkNhbm5vdCBhdXRvc3Rhc2giCiBtc2dzdHIgIuaXoOazlSBhdXRvc3Rhc2giCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjOiBnaXQtcmViYXNlLnNoOjUzMwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3JlYXRlZCBhdXRvc3Rhc2g6ICRzdGFzaF9hYmJyZXYiCiBtc2dzdHIgIuWIm+W7uuS6hiBhdXRvc3Rhc2g6ICRzdGFzaF9hYmJyZXYiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTI4CisjOiBnaXQtcmViYXNlLnNoOjUzNwogbXNnaWQgIlBsZWFzZSBjb21taXQgb3Igc3Rhc2ggdGhlbS4iCiBtc2dzdHIgIuivt+aPkOS6pOaIluS4uuWug+S7rOS/neWtmOi/m+W6puOAgiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1NDgKKyM6IGdpdC1yZWJhc2Uuc2g6NTU3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDdXJyZW50IGJyYW5jaCAkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZS4iCiBtc2dzdHIgIuW9k+WJjeWIhuaUryAkYnJhbmNoX25hbWUg5piv5pyA5paw55qE44CCIgogCi0jOiBnaXQtcmViYXNlLnNoOjU1MgorIzogZ2l0LXJlYmFzZS5zaDo1NjEKICMsIHNoLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLCByZWJhc2UgZm9yY2VkLiIKIG1zZ3N0ciAi5b2T5YmN5YiG5pSvICRicmFuY2hfbmFtZSDmmK/mnIDmlrDnmoTvvIzlvLrliLblj5jln7rjgIIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTYzCisjOiBnaXQtcmViYXNlLnNoOjU3MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ2hhbmdlcyBmcm9tICRtYiB0byAkb250bzoiCiBtc2dzdHIgIuWPmOabtOS7jiAkbWIg5YiwICRvbnRv77yaIgogCiAjLiBEZXRhY2ggSEVBRCBhbmQgcmVzZXQgdGhlIHRyZWUKLSM6IGdpdC1yZWJhc2Uuc2g6NTcyCisjOiBnaXQtcmViYXNlLnNoOjU4MQogbXNnaWQgIkZpcnN0LCByZXdpbmRpbmcgaGVhZCB0byByZXBsYXkgeW91ciB3b3JrIG9uIHRvcCBvZiBpdC4uLiIKIG1zZ3N0ciAi6aaW5YWI77yM6YeN572u5aS05oyH6ZKI5Lul5L6/5Zyo5LiK6Z2i6YeN5pS+5oKo55qE5bel5L2cLi4uIgogCi0jOiBnaXQtcmViYXNlLnNoOjU4MgorIzogZ2l0LXJlYmFzZS5zaDo1OTEKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhc3QtZm9yd2FyZGVkICRicmFuY2hfbmFtZSB0byAkb250b19uYW1lLiIKIG1zZ3N0ciAi5b+r6L+bICRicmFuY2hfbmFtZSDoh7MgJG9udG9fbmFtZeOAgiIKQEAgLTk5MDgsNyArMTAxODksNyBAQAogIy4gJCBnaXQgc3Rhc2ggc2F2ZSAtLWJsYWgtYmxhaCAyPiYxIHwgaGVhZCAtbiAyCiAjLiBlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogLS1ibGFoLWJsYWgKICMuIFRvIHByb3ZpZGUgYSBtZXNzYWdlLCB1c2UgZ2l0IHN0YXNoIHNhdmUgLS0gJy0tYmxhaC1ibGFoJwotIzogZ2l0LXN0YXNoLnNoOjI0MQorIzogZ2l0LXN0YXNoLnNoOjIzNwogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogImVycm9yOiB1bmtub3duIG9wdGlvbiBmb3IgJ3N0YXNoIHNhdmUnOiAkb3B0aW9uXG4iCkBAIC05OTE3LDk2ICsxMDE5OCw4NSBAQAogIumUmeivr++8midzdGFzaCBzYXZlJyDnmoTmnKrnn6XpgInpobnvvJokb3B0aW9uXG4iCiAiICAgICAg6KaB5o+Q5L6b5LiA5Liq5o+P6L+w5L+h5oGv77yM5L2/55SoIGdpdCBzdGFzaCBzYXZlIC0tICckb3B0aW9uJyIKIAotIzogZ2l0LXN0YXNoLnNoOjI2MgorIzogZ2l0LXN0YXNoLnNoOjI1OAogbXNnaWQgIk5vIGxvY2FsIGNoYW5nZXMgdG8gc2F2ZSIKIG1zZ3N0ciAi5rKh5pyJ6KaB5L+d5a2Y55qE5pys5Zyw5L+u5pS5IgogCi0jOiBnaXQtc3Rhc2guc2g6MjY4Ci1tc2dpZCAiIgotIlRoZSBmb2xsb3dpbmcgdW50cmFja2VkIGZpbGVzIHdvdWxkIE5PVCBiZSBzYXZlZCBidXQgbmVlZCB0byBiZSByZW1vdmVkIGJ5ICIKLSJzdGFzaCBzYXZlOiIKLW1zZ3N0ciAi5aaC5LiL5pyq6Lef6Liq5paH5Lu25bCG5LiN5Lya6KKr5L+d5a2Y5L2G5piv5bCG5Lya5Zug5Li66L+b5bqm5L+d5a2Y6ICM6ZyA6KaB6KKr5Yig6Zmk77yaIgotCi0jOiBnaXQtc3Rhc2guc2g6MjcwCi1tc2dpZCAiIgotIkFib3J0aW5nLiBDb25zaWRlciB1c2luZyBlaXRoZXIgdGhlIC0tZm9yY2Ugb3IgLS1pbmNsdWRlLXVudHJhY2tlZCBvcHRpb24uIgotbXNnc3RyICLnu4jmraLjgILogIPomZHkvb/nlKggLS1mb3JjZSDmiJbogIUgLS1pbmNsdWRlLXVudHJhY2tlZCDpgInpobnjgIIiCi0KLSM6IGdpdC1zdGFzaC5zaDoyNzQKKyM6IGdpdC1zdGFzaC5zaDoyNjIKIG1zZ2lkICJDYW5ub3QgaW5pdGlhbGl6ZSBzdGFzaCIKIG1zZ3N0ciAi5peg5rOV5Yid5aeL5YyWIHN0YXNoIgogCi0jOiBnaXQtc3Rhc2guc2g6Mjc4CisjOiBnaXQtc3Rhc2guc2g6MjY2CiBtc2dpZCAiQ2Fubm90IHNhdmUgdGhlIGN1cnJlbnQgc3RhdHVzIgogbXNnc3RyICLml6Dms5Xkv53lrZjlvZPliY3nirbmgIEiCiAKLSM6IGdpdC1zdGFzaC5zaDoyOTYKKyM6IGdpdC1zdGFzaC5zaDoyODQKIG1zZ2lkICJDYW5ub3QgcmVtb3ZlIHdvcmt0cmVlIGNoYW5nZXMiCiBtc2dzdHIgIuaXoOazleWIoOmZpOW3peS9nOWMuuWPmOabtCIKIAotIzogZ2l0LXN0YXNoLnNoOjM5NQorIzogZ2l0LXN0YXNoLnNoOjM4MwogbXNnaWQgIk5vIHN0YXNoIGZvdW5kLiIKIG1zZ3N0ciAi5pyq5Y+R546wIHN0YXNo44CCIgogCi0jOiBnaXQtc3Rhc2guc2g6NDAyCisjOiBnaXQtc3Rhc2guc2g6MzkwCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJUb28gbWFueSByZXZpc2lvbnMgc3BlY2lmaWVkOiAkUkVWIgogbXNnc3RyICLmjIflrprkuoblpKrlpJrnmoTniYjmnKzvvJokUkVWIgogCi0jOiBnaXQtc3Rhc2guc2g6NDA4CisjOiBnaXQtc3Rhc2guc2g6Mzk2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkcmVmZXJlbmNlIGlzIG5vdCB2YWxpZCByZWZlcmVuY2UiCiBtc2dzdHIgIiRyZWZlcmVuY2Ug5LiN5piv5pyJ5pWI55qE5byV55SoIgogCi0jOiBnaXQtc3Rhc2guc2g6NDM2CisjOiBnaXQtc3Rhc2guc2g6NDI0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoLWxpa2UgY29tbWl0IgogbXNnc3RyICInJGFyZ3MnIOS4jeaYryBzdGFzaCDmoLfmj5DkuqQiCiAKLSM6IGdpdC1zdGFzaC5zaDo0NDcKKyM6IGdpdC1zdGFzaC5zaDo0MzUKICMsIHNoLWZvcm1hdAogbXNnaWQgIickYXJncycgaXMgbm90IGEgc3Rhc2ggcmVmZXJlbmNlIgogbXNnc3RyICInJGFyZ3MnIOS4jeaYr+S4gOS4qiBzdGFzaCDlvJXnlKgiCiAKLSM6IGdpdC1zdGFzaC5zaDo0NTUKKyM6IGdpdC1zdGFzaC5zaDo0NDMKIG1zZ2lkICJ1bmFibGUgdG8gcmVmcmVzaCBpbmRleCIKIG1zZ3N0ciAi5peg5rOV5Yi35paw57Si5byVIgogCi0jOiBnaXQtc3Rhc2guc2g6NDU5CisjOiBnaXQtc3Rhc2guc2g6NDQ3CiBtc2dpZCAiQ2Fubm90IGFwcGx5IGEgc3Rhc2ggaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlIgogbXNnc3RyICLml6Dms5XlnKjlkIjlubbov4fnqIvkuK3mgaLlpI3ov5vluqYiCiAKLSM6IGdpdC1zdGFzaC5zaDo0NjcKKyM6IGdpdC1zdGFzaC5zaDo0NTUKIG1zZ2lkICJDb25mbGljdHMgaW4gaW5kZXguIFRyeSB3aXRob3V0IC0taW5kZXguIgogbXNnc3RyICLntKLlvJXkuK3mnInlhrLnqoHjgILlsJ3or5XkuI3kvb/nlKggLS1pbmRleOOAgiIKIAotIzogZ2l0LXN0YXNoLnNoOjQ2OQorIzogZ2l0LXN0YXNoLnNoOjQ1NwogbXNnaWQgIkNvdWxkIG5vdCBzYXZlIGluZGV4IHRyZWUiCiBtc2dzdHIgIuS4jeiDveS/neWtmOe0ouW8leagkSIKIAotIzogZ2l0LXN0YXNoLnNoOjUwMworIzogZ2l0LXN0YXNoLnNoOjQ5MQogbXNnaWQgIkNhbm5vdCB1bnN0YWdlIG1vZGlmaWVkIGZpbGVzIgogbXNnc3RyICLml6Dms5Xov5jljp/kv67mlLnnmoTmlofku7YiCiAKLSM6IGdpdC1zdGFzaC5zaDo1MTgKKyM6IGdpdC1zdGFzaC5zaDo1MDYKIG1zZ2lkICJJbmRleCB3YXMgbm90IHVuc3Rhc2hlZC4iCiBtc2dzdHIgIue0ouW8leeahOi/m+W6puayoeacieiiq+aBouWkjeOAgiIKIAotIzogZ2l0LXN0YXNoLnNoOjUzNQorIzogZ2l0LXN0YXNoLnNoOjUyMwogIywgc2gtZm9ybWF0CiBtc2dpZCAiRHJvcHBlZCAke1JFVn0gKCRzKSIKIG1zZ3N0ciAi5Lii5byD5LqGICR7UkVWfSAoJHMpIgogCi0jOiBnaXQtc3Rhc2guc2g6NTM2CisjOiBnaXQtc3Rhc2guc2g6NTI0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIke1JFVn06IENvdWxkIG5vdCBkcm9wIHN0YXNoIGVudHJ5IgogbXNnc3RyICIke1JFVn3vvJrkuI3og73kuKLlvIPov5vluqbmnaHnm64iCiAKLSM6IGdpdC1zdGFzaC5zaDo1NDMKKyM6IGdpdC1zdGFzaC5zaDo1MzEKIG1zZ2lkICJObyBicmFuY2ggbmFtZSBzcGVjaWZpZWQiCiBtc2dzdHIgIuacquaMh+WumuWIhuaUr+WQjSIKIAotIzogZ2l0LXN0YXNoLnNoOjYxNQorIzogZ2l0LXN0YXNoLnNoOjYwMwogbXNnaWQgIihUbyByZXN0b3JlIHRoZW0gdHlwZSBcImdpdCBzdGFzaCBhcHBseVwiKSIKIG1zZ3N0ciAi77yI5Li65oGi5aSN5pWw5o2u6L6T5YWlIFwiZ2l0IHN0YXNoIGFwcGx5XCLvvIkiCiAKQEAgLTEwMjU3LDUxICsxMDUyNyw1OCBAQAogbXNnc3RyICLpgInpobkgLS1jYWNoZWQg5LiN6IO95ZKM6YCJ6aG5IC0tZmlsZXMg5ZCM5pe25L2/55SoIgogCiAjLiB1bmV4cGVjdGVkIHR5cGUKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTA2NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDczCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJ1bmV4cGVjdGVkIG1vZGUgJG1vZF9kc3QiCiBtc2dzdHIgIuaEj+WklueahOaooeW8jyAkbW9kX2RzdCIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiBnaXQtc3VibW9kdWxlLnNoOjEwODYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfc3JjIgogbXNnc3RyICIgIOitpuWRiu+8miRkaXNwbGF5X25hbWUg5pyq5YyF5ZCr5o+Q5LqkICRzaGExX3NyYyIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiBnaXQtc3VibW9kdWxlLnNoOjEwODkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfZHN0IgogbXNnc3RyICIgIOitpuWRiu+8miRkaXNwbGF5X25hbWUg5pyq5YyF5ZCr5o+Q5LqkICRzaGExX2RzdCIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiBnaXQtc3VibW9kdWxlLnNoOjEwOTIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5OQogIywgc2gtZm9ybWF0CiBtc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgogbXNnc3RyICIgIOitpuWRiu+8miRkaXNwbGF5X25hbWUg5pyq5YyF5ZCr5o+Q5LqkICRzaGExX3NyYyDlkowgJHNoYTFfZHN0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjExMTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTEyNAogbXNnaWQgImJsb2IiCiBtc2dzdHIgIuaVsOaNruWvueixoSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTU1Ci1tc2dpZCAiU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiCi1tc2dzdHIgIuWtkOaooee7hOW3suS/ruaUueS9huWwmuacquabtOaWsO+8miIKLQotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTU3Ci1tc2dpZCAiU3VibW9kdWxlIGNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOiIKLW1zZ3N0ciAi6KaB5o+Q5Lqk55qE5a2Q5qih57uE5Y+Y5pu077yaIgotCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEyNDIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTIzOAogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgogbXNnc3RyICLml6Dms5XpgJLlvZLov5vlrZDmqKHnu4Tot6/lvoQgJyRzbV9wYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMzA2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEzMDIKICMsIHNoLWZvcm1hdAogbXNnaWQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIuS4uiAnJGRpc3BsYXlwYXRoJyDlkIzmraXlrZDmqKHnu4QgdXJsIgogCisjfiBtc2dpZCAiZG9uZVxuIgorI34gbXNnc3RyICLlrozmiJBcbiIKKworI34gbXNnaWQgImlucHV0IHBhdGhzIGFyZSB0ZXJtaW5hdGVkIGJ5IGEgbnVsbCBjaGFyYWN0ZXIiCisjfiBtc2dzdHIgIui+k+WFpei3r+W+hOS7pW51bGzlrZfnrKbnu4jmraIiCisKKyN+IG1zZ2lkICIiCisjfiAiVGhlIGZvbGxvd2luZyB1bnRyYWNrZWQgZmlsZXMgd291bGQgTk9UIGJlIHNhdmVkIGJ1dCBuZWVkIHRvIGJlIHJlbW92ZWQgIgorI34gImJ5IHN0YXNoIHNhdmU6IgorI34gbXNnc3RyICLlpoLkuIvmnKrot5/ouKrmlofku7blsIbkuI3kvJrooqvkv53lrZjkvYbmmK/lsIbkvJrlm6DkuLrov5vluqbkv53lrZjogIzpnIDopoHooqvliKDpmaTvvJoiCisKKyN+IG1zZ2lkICIiCisjfiAiQWJvcnRpbmcuIENvbnNpZGVyIHVzaW5nIGVpdGhlciB0aGUgLS1mb3JjZSBvciAtLWluY2x1ZGUtdW50cmFja2VkIG9wdGlvbi4iCisjfiBtc2dzdHIgIue7iOatouOAguiAg+iZkeS9v+eUqCAtLWZvcmNlIOaIluiAhSAtLWluY2x1ZGUtdW50cmFja2VkIOmAiemhueOAgiIKKwogI34gbXNnaWQgIiIKICN+ICJ0aGUgZm9sbG93aW5nIHN1Ym1vZHVsZSAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlKVxuIgogI34gInVzZXMgYSAuZ2l0IGRpcmVjdG9yeToiCkBAIC0xMDMxMSwzOSArMTA1ODgsNiBAQAogI34gbXNnc3RyWzBdICLlpoLkuIvlrZDmqKHnu4TvvIjmiJbkuIDkuKrlhbbltYzlpZfnmoTlrZDmqKHnu4TvvInkvb/nlKjkuobkuIDkuKogLmdpdCDnm67lvZXvvJoiCiAjfiBtc2dzdHJbMV0gIuWmguS4i+WtkOaooee7hO+8iOaIluS4gOS4quWFtuW1jOWll+eahOWtkOaooee7hO+8ieS9v+eUqOS6huS4gOS4qiAuZ2l0IOebruW9le+8miIKIAotI34gbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdW5tZXJnZWQgLmdpdG1vZHVsZXMsIHJlc29sdmUgbWVyZ2UgY29uZmxpY3RzIGZpcnN0IgotI34gbXNnc3RyICLml6Dms5Xkv67mlLnmnKrlkIjlubbnmoQgLmdpdG1vZHVsZXPvvIzlhYjop6PlhrPlkIjlubblhrLnqoEiCi0KLSN+IG1zZ2lkICJDb3VsZCBub3QgZmluZCBzZWN0aW9uIGluIC5naXRtb2R1bGVzIHdoZXJlIHBhdGg9JXMiCi0jfiBtc2dzdHIgIuaXoOazleWcqCAuZ2l0bW9kdWxlcyDkuK3mib7liLAgcGF0aD0lcyDnmoTlsI/oioIiCi0KLSN+IG1zZ2lkICJDb3VsZCBub3QgdXBkYXRlIC5naXRtb2R1bGVzIGVudHJ5ICVzIgotI34gbXNnc3RyICLkuI3og73mm7TmlrAgLmdpdG1vZHVsZXMg5p2h55uuICVzIgotCi0jfiBtc2dpZCAiQ291bGQgbm90IHJlbW92ZSAuZ2l0bW9kdWxlcyBlbnRyeSBmb3IgJXMiCi0jfiBtc2dzdHIgIuaXoOazleenu+mZpCAlcyDnmoQgLmdpdG1vZHVsZXMg5p2h55uuIgotCi0jfiBtc2dpZCAiY291bGQgbm90IGZpbmQgLmdpdG1vZHVsZXMgaW4gaW5kZXgiCi0jfiBtc2dzdHIgIuaXoOazleWcqOe0ouW8leS4reaJvuWIsCAuZ2l0bW9kdWxlcyIKLQotI34gbXNnaWQgInJlYWRpbmcgdXBkYXRlZCAuZ2l0bW9kdWxlcyBmYWlsZWQiCi0jfiBtc2dzdHIgIuivu+WPluabtOaWsOWQjueahCAuZ2l0bW9kdWxlcyDlpLHotKUiCi0KLSN+IG1zZ2lkICJ1bmFibGUgdG8gc3RhdCB1cGRhdGVkIC5naXRtb2R1bGVzIgotI34gbXNnc3RyICLkuI3og73mnprkuL7mm7TmlrDlkI7nmoQgLmdpdG1vZHVsZXMiCi0KLSN+IG1zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlIC5naXRtb2R1bGVzIGZyb20gaW5kZXgiCi0jfiBtc2dzdHIgIuS4jeiDveS7jue0ouW8leS4reenu+mZpCAuZ2l0bW9kdWxlcyIKLQotI34gbXNnaWQgImFkZGluZyB1cGRhdGVkIC5naXRtb2R1bGVzIGZhaWxlZCIKLSN+IG1zZ3N0ciAi5re75Yqg5pu05paw5ZCO55qEIC5naXRtb2R1bGVzIOWksei0pSIKLQotI34gbXNnaWQgInN0YWdpbmcgdXBkYXRlZCAuZ2l0bW9kdWxlcyBmYWlsZWQiCi0jfiBtc2dzdHIgIuWwhuabtOaWsOWQjiAuZ2l0bW9kdWxlcyDmt7vliqDmmoLlrZjljLrlpLHotKUiCi0KLSN+IG1zZ2lkICJDb3VsZCBub3Qgc2V0IGNvcmUud29ya3RyZWUgaW4gJXMiCi0jfiBtc2dzdHIgIuS4jeiDveWcqCAlcyDkuK3orr7nva4gY29yZS53b3JrdHJlZSIKLQogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8CiAjfiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKICN+IG1zZ3N0ciAiICDvvIjop6PlhrPlhrLnqoHvvIznhLblkI7ov5DooYwgXCJnaXQgYW0gLS1yZXNvbHZlZFwi77yJIgpAQCAtMTAzNTgsOSArMTA2MDIsNiBAQAogI34gbXNnaWQgIllvdSBjYW5ub3QgY29tYmluZSAtLW5vLWZmIHdpdGggLS1mZi1vbmx5LiIKICN+IG1zZ3N0ciAi5oKo5LiN6IO95bCGIC0tbm8tZmYg5LiOIC0tZmYtb25seSDlkIzml7bkvb/nlKjjgIIiCiAKLSN+IG1zZ2lkICJIdWg/IERpcmVjdG9yeSAlcyBpcyBpbiBpbmRleCBhbmQgbm8gc3VibW9kdWxlPyIKLSN+IG1zZ3N0ciAi5Zev77yf55uu5b2VICVzIOWcqOe0ouW8leS4reW5tuS4lOS4jeaYr+WtkOaooee7hO+8nyIKLQogI34gbXNnaWQgIiIKICN+ICJzdWJtb2R1bGUgJyVzJyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcykgdXNlcyBhIC5naXQgZGlyZWN0b3J5XG4iCiAjfiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzICIKQEAgLTEwNDc5LDkgKzEwNzIwLDYgQEAKICN+IG1zZ2lkICItQiBjYW5ub3QgYmUgdXNlZCB3aXRoIC1iIgogI34gbXNnc3RyICItQiDkuI3og73lkowgLWIg5ZCM5pe25L2/55SoIgogCi0jfiBtc2dpZCAiLS1wYXRjaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBhbGwgb3RoZXIgb3B0aW9ucyIKLSN+IG1zZ3N0ciAiLS1wYXRjaCDpgInpobnlkozlhbbku5bpgInpobnkuI3lhbzlrrkiCi0KICN+IG1zZ2lkICItLWRldGFjaCBjYW5ub3QgYmUgdXNlZCB3aXRoIC1iLy1CLy0tb3JwaGFuIgogI34gbXNnc3RyICItLWRldGFjaCDkuI3og73lkowgLWIvLUIvLS1vcnBoYW4g5ZCM5pe25L2/55SoIgogCmRpZmYgLS1naXQgYS9wcmVsb2FkLWluZGV4LmMgYi9wcmVsb2FkLWluZGV4LmMKaW5kZXggNDljYjA4ZC4uOGM0NGNlYiAxMDA2NDQKLS0tIGEvcHJlbG9hZC1pbmRleC5jCisrKyBiL3ByZWxvYWQtaW5kZXguYwpAQCAtMiw5ICsyLDExIEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTGludXMgVG9ydmFsZHMKICAqLwogI2luY2x1ZGUgImNhY2hlLmgiCisjaW5jbHVkZSAicGF0aHNwZWMuaCIKIAogI2lmZGVmIE5PX1BUSFJFQURTCi1zdGF0aWMgdm9pZCBwcmVsb2FkX2luZGV4KHN0cnVjdCBpbmRleF9zdGF0ZSAqaW5kZXgsIGNvbnN0IGNoYXIgKipwYXRoc3BlYykKK3N0YXRpYyB2b2lkIHByZWxvYWRfaW5kZXgoc3RydWN0IGluZGV4X3N0YXRlICppbmRleCwKKwkJCSAgY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYykKIHsKIAk7IC8qIG5vdGhpbmcgKi8KIH0KQEAgLTI0LDcgKzI2LDcgQEAKIHN0cnVjdCB0aHJlYWRfZGF0YSB7CiAJcHRocmVhZF90IHB0aHJlYWQ7CiAJc3RydWN0IGluZGV4X3N0YXRlICppbmRleDsKLQljb25zdCBjaGFyICoqcGF0aHNwZWM7CisJc3RydWN0IHBhdGhzcGVjIHBhdGhzcGVjOwogCWludCBvZmZzZXQsIG5yOwogfTsKIApAQCAtMzUsOSArMzcsNyBAQAogCXN0cnVjdCBpbmRleF9zdGF0ZSAqaW5kZXggPSBwLT5pbmRleDsKIAlzdHJ1Y3QgY2FjaGVfZW50cnkgKipjZXAgPSBpbmRleC0+Y2FjaGUgKyBwLT5vZmZzZXQ7CiAJc3RydWN0IGNhY2hlX2RlZiBjYWNoZTsKLQlzdHJ1Y3QgcGF0aHNwZWMgcGF0aHNwZWM7CiAKLQlpbml0X3BhdGhzcGVjKCZwYXRoc3BlYywgcC0+cGF0aHNwZWMpOwogCW1lbXNldCgmY2FjaGUsIDAsIHNpemVvZihjYWNoZSkpOwogCW5yID0gcC0+bnI7CiAJaWYgKG5yICsgcC0+b2Zmc2V0ID4gaW5kZXgtPmNhY2hlX25yKQpAQCAtNTMsNyArNTMsNyBAQAogCQkJY29udGludWU7CiAJCWlmIChjZV91cHRvZGF0ZShjZSkpCiAJCQljb250aW51ZTsKLQkJaWYgKCFjZV9wYXRoX21hdGNoKGNlLCAmcGF0aHNwZWMpKQorCQlpZiAoIWNlX3BhdGhfbWF0Y2goY2UsICZwLT5wYXRoc3BlYykpCiAJCQljb250aW51ZTsKIAkJaWYgKHRocmVhZGVkX2hhc19zeW1saW5rX2xlYWRpbmdfcGF0aCgmY2FjaGUsIGNlLT5uYW1lLCBjZV9uYW1lbGVuKGNlKSkpCiAJCQljb250aW51ZTsKQEAgLTYzLDExICs2MywxMSBAQAogCQkJY29udGludWU7CiAJCWNlX21hcmtfdXB0b2RhdGUoY2UpOwogCX0gd2hpbGUgKC0tbnIgPiAwKTsKLQlmcmVlX3BhdGhzcGVjKCZwYXRoc3BlYyk7CiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyB2b2lkIHByZWxvYWRfaW5kZXgoc3RydWN0IGluZGV4X3N0YXRlICppbmRleCwgY29uc3QgY2hhciAqKnBhdGhzcGVjKQorc3RhdGljIHZvaWQgcHJlbG9hZF9pbmRleChzdHJ1Y3QgaW5kZXhfc3RhdGUgKmluZGV4LAorCQkJICBjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjKQogewogCWludCB0aHJlYWRzLCBpLCB3b3JrLCBvZmZzZXQ7CiAJc3RydWN0IHRocmVhZF9kYXRhIGRhdGFbTUFYX1BBUkFMTEVMXTsKQEAgLTgyLDEwICs4MiwxMiBAQAogCQl0aHJlYWRzID0gTUFYX1BBUkFMTEVMOwogCW9mZnNldCA9IDA7CiAJd29yayA9IERJVl9ST1VORF9VUChpbmRleC0+Y2FjaGVfbnIsIHRocmVhZHMpOworCW1lbXNldCgmZGF0YSwgMCwgc2l6ZW9mKGRhdGEpKTsKIAlmb3IgKGkgPSAwOyBpIDwgdGhyZWFkczsgaSsrKSB7CiAJCXN0cnVjdCB0aHJlYWRfZGF0YSAqcCA9IGRhdGEraTsKIAkJcC0+aW5kZXggPSBpbmRleDsKLQkJcC0+cGF0aHNwZWMgPSBwYXRoc3BlYzsKKwkJaWYgKHBhdGhzcGVjKQorCQkJY29weV9wYXRoc3BlYygmcC0+cGF0aHNwZWMsIHBhdGhzcGVjKTsKIAkJcC0+b2Zmc2V0ID0gb2Zmc2V0OwogCQlwLT5uciA9IHdvcms7CiAJCW9mZnNldCArPSB3b3JrOwpAQCAtMTAwLDcgKzEwMiw4IEBACiB9CiAjZW5kaWYKIAotaW50IHJlYWRfaW5kZXhfcHJlbG9hZChzdHJ1Y3QgaW5kZXhfc3RhdGUgKmluZGV4LCBjb25zdCBjaGFyICoqcGF0aHNwZWMpCitpbnQgcmVhZF9pbmRleF9wcmVsb2FkKHN0cnVjdCBpbmRleF9zdGF0ZSAqaW5kZXgsCisJCSAgICAgICBjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjKQogewogCWludCByZXR2YWwgPSByZWFkX2luZGV4KGluZGV4KTsKIApkaWZmIC0tZ2l0IGEvcHJldHR5LmMgYi9wcmV0dHkuYwppbmRleCBiNGUzMmI3Li44N2RiMDhiIDEwMDY0NAotLS0gYS9wcmV0dHkuYworKysgYi9wcmV0dHkuYwpAQCAtNDAsNyArNDAsNyBAQAogCWNvbnN0IGNoYXIgKmZtdDsKIAlpbnQgaTsKIAotCWlmIChwcmVmaXhjbXAodmFyLCAicHJldHR5LiIpKQorCWlmICghc3RhcnRzX3dpdGgodmFyLCAicHJldHR5LiIpKQogCQlyZXR1cm4gMDsKIAogCW5hbWUgPSB2YXIgKyBzdHJsZW4oInByZXR0eS4iKTsKQEAgLTY3LDcgKzY3LDcgQEAKIAljb21taXRfZm9ybWF0LT5uYW1lID0geHN0cmR1cChuYW1lKTsKIAljb21taXRfZm9ybWF0LT5mb3JtYXQgPSBDTUlUX0ZNVF9VU0VSRk9STUFUOwogCWdpdF9jb25maWdfc3RyaW5nKCZmbXQsIHZhciwgdmFsdWUpOwotCWlmICghcHJlZml4Y21wKGZtdCwgImZvcm1hdDoiKSB8fCAhcHJlZml4Y21wKGZtdCwgInRmb3JtYXQ6IikpIHsKKwlpZiAoc3RhcnRzX3dpdGgoZm10LCAiZm9ybWF0OiIpIHx8IHN0YXJ0c193aXRoKGZtdCwgInRmb3JtYXQ6IikpIHsKIAkJY29tbWl0X2Zvcm1hdC0+aXNfdGZvcm1hdCA9IGZtdFswXSA9PSAndCc7CiAJCWZtdCA9IHN0cmNocihmbXQsICc6JykgKyAxOwogCX0gZWxzZSBpZiAoc3RyY2hyKGZtdCwgJyUnKSkKQEAgLTExNSw3ICsxMTUsNyBAQAogCWZvciAoaSA9IDA7IGkgPCBjb21taXRfZm9ybWF0c19sZW47IGkrKykgewogCQlzaXplX3QgbWF0Y2hfbGVuOwogCi0JCWlmIChwcmVmaXhjbXAoY29tbWl0X2Zvcm1hdHNbaV0ubmFtZSwgc291Z2h0KSkKKwkJaWYgKCFzdGFydHNfd2l0aChjb21taXRfZm9ybWF0c1tpXS5uYW1lLCBzb3VnaHQpKQogCQkJY29udGludWU7CiAKIAkJbWF0Y2hfbGVuID0gc3RybGVuKGNvbW1pdF9mb3JtYXRzW2ldLm5hbWUpOwpAQCAtMTUxLDcgKzE1MSw3IEBACiAJCXJldi0+Y29tbWl0X2Zvcm1hdCA9IENNSVRfRk1UX0RFRkFVTFQ7CiAJCXJldHVybjsKIAl9Ci0JaWYgKCFwcmVmaXhjbXAoYXJnLCAiZm9ybWF0OiIpIHx8ICFwcmVmaXhjbXAoYXJnLCAidGZvcm1hdDoiKSkgeworCWlmIChzdGFydHNfd2l0aChhcmcsICJmb3JtYXQ6IikgfHwgc3RhcnRzX3dpdGgoYXJnLCAidGZvcm1hdDoiKSkgewogCQlzYXZlX3VzZXJfZm9ybWF0KHJldiwgc3RyY2hyKGFyZywgJzonKSArIDEsIGFyZ1swXSA9PSAndCcpOwogCQlyZXR1cm47CiAJfQpAQCAtNDk3LDcgKzQ5Nyw3IEBACiBzdGF0aWMgaW50IGlzX2VtcHR5X2xpbmUoY29uc3QgY2hhciAqbGluZSwgaW50ICpsZW5fcCkKIHsKIAlpbnQgbGVuID0gKmxlbl9wOwotCXdoaWxlIChsZW4gJiYgaXNzcGFjZShsaW5lW2xlbi0xXSkpCisJd2hpbGUgKGxlbiAmJiBpc3NwYWNlKGxpbmVbbGVuIC0gMV0pKQogCQlsZW4tLTsKIAkqbGVuX3AgPSBsZW47CiAJcmV0dXJuICFsZW47CkBAIC04NDAsMTAgKzg0MCwxMCBAQAogCiAJCWlmIChpID09IGVvbCkgewogCQkJYnJlYWs7Ci0JCX0gZWxzZSBpZiAoIXByZWZpeGNtcChtc2cgKyBpLCAiYXV0aG9yICIpKSB7CisJCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgobXNnICsgaSwgImF1dGhvciAiKSkgewogCQkJY29udGV4dC0+YXV0aG9yLm9mZiA9IGkgKyA3OwogCQkJY29udGV4dC0+YXV0aG9yLmxlbiA9IGVvbCAtIGkgLSA3OwotCQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAobXNnICsgaSwgImNvbW1pdHRlciAiKSkgeworCQl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKG1zZyArIGksICJjb21taXR0ZXIgIikpIHsKIAkJCWNvbnRleHQtPmNvbW1pdHRlci5vZmYgPSBpICsgMTA7CiAJCQljb250ZXh0LT5jb21taXR0ZXIubGVuID0gZW9sIC0gaSAtIDEwOwogCQl9CkBAIC05ODMsNyArOTgzLDcgQEAKIAogCQlpZiAoIWVuZCkKIAkJCXJldHVybiAwOwotCQlpZiAoIXByZWZpeGNtcChiZWdpbiwgImF1dG8sIikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKGJlZ2luLCAiYXV0bywiKSkgewogCQkJaWYgKCF3YW50X2NvbG9yKGMtPnByZXR0eV9jdHgtPmNvbG9yKSkKIAkJCQlyZXR1cm4gZW5kIC0gcGxhY2Vob2xkZXIgKyAxOwogCQkJYmVnaW4gKz0gNTsKQEAgLTk5NCwxNiArOTk0LDE2IEBACiAJCXN0cmJ1Zl9hZGRzdHIoc2IsIGNvbG9yKTsKIAkJcmV0dXJuIGVuZCAtIHBsYWNlaG9sZGVyICsgMTsKIAl9Ci0JaWYgKCFwcmVmaXhjbXAocGxhY2Vob2xkZXIgKyAxLCAicmVkIikpIHsKKwlpZiAoc3RhcnRzX3dpdGgocGxhY2Vob2xkZXIgKyAxLCAicmVkIikpIHsKIAkJc3RyYnVmX2FkZHN0cihzYiwgR0lUX0NPTE9SX1JFRCk7CiAJCXJldHVybiA0OwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChwbGFjZWhvbGRlciArIDEsICJncmVlbiIpKSB7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChwbGFjZWhvbGRlciArIDEsICJncmVlbiIpKSB7CiAJCXN0cmJ1Zl9hZGRzdHIoc2IsIEdJVF9DT0xPUl9HUkVFTik7CiAJCXJldHVybiA2OwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChwbGFjZWhvbGRlciArIDEsICJibHVlIikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKHBsYWNlaG9sZGVyICsgMSwgImJsdWUiKSkgewogCQlzdHJidWZfYWRkc3RyKHNiLCBHSVRfQ09MT1JfQkxVRSk7CiAJCXJldHVybiA1OwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChwbGFjZWhvbGRlciArIDEsICJyZXNldCIpKSB7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChwbGFjZWhvbGRlciArIDEsICJyZXNldCIpKSB7CiAJCXN0cmJ1Zl9hZGRzdHIoc2IsIEdJVF9DT0xPUl9SRVNFVCk7CiAJCXJldHVybiA2OwogCX0gZWxzZQpAQCAtMTA2MCwxMSArMTA2MCwxMSBAQAogCQkJZW5kID0gc3RyY2hyKHN0YXJ0LCAnKScpOwogCQkJaWYgKCFlbmQgfHwgZW5kID09IHN0YXJ0KQogCQkJCXJldHVybiAwOwotCQkJaWYgKCFwcmVmaXhjbXAoc3RhcnQsICJ0cnVuYykiKSkKKwkJCWlmIChzdGFydHNfd2l0aChzdGFydCwgInRydW5jKSIpKQogCQkJCWMtPnRydW5jYXRlID0gdHJ1bmNfcmlnaHQ7Ci0JCQllbHNlIGlmICghcHJlZml4Y21wKHN0YXJ0LCAibHRydW5jKSIpKQorCQkJZWxzZSBpZiAoc3RhcnRzX3dpdGgoc3RhcnQsICJsdHJ1bmMpIikpCiAJCQkJYy0+dHJ1bmNhdGUgPSB0cnVuY19sZWZ0OwotCQkJZWxzZSBpZiAoIXByZWZpeGNtcChzdGFydCwgIm10cnVuYykiKSkKKwkJCWVsc2UgaWYgKHN0YXJ0c193aXRoKHN0YXJ0LCAibXRydW5jKSIpKQogCQkJCWMtPnRydW5jYXRlID0gdHJ1bmNfbWlkZGxlOwogCQkJZWxzZQogCQkJCXJldHVybiAwOwpAQCAtMTA4OSw3ICsxMDg5LDcgQEAKIAkvKiB0aGVzZSBhcmUgaW5kZXBlbmRlbnQgb2YgdGhlIGNvbW1pdCAqLwogCXN3aXRjaCAocGxhY2Vob2xkZXJbMF0pIHsKIAljYXNlICdDJzoKLQkJaWYgKCFwcmVmaXhjbXAocGxhY2Vob2xkZXIgKyAxLCAiKGF1dG8pIikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKHBsYWNlaG9sZGVyICsgMSwgIihhdXRvKSIpKSB7CiAJCQljLT5hdXRvX2NvbG9yID0gMTsKIAkJCXJldHVybiA3OyAvKiBjb25zdW1lZCA3IGJ5dGVzLCAiQyhhdXRvKSIgKi8KIAkJfSBlbHNlIHsKQEAgLTE1NTYsNyArMTU1Niw3IEBACiAJCQljb250aW51ZTsKIAkJfQogCi0JCWlmICghcHJlZml4Y21wKGxpbmUsICJwYXJlbnQgIikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKGxpbmUsICJwYXJlbnQgIikpIHsKIAkJCWlmIChsaW5lbGVuICE9IDQ4KQogCQkJCWRpZSgiYmFkIHBhcmVudCBsaW5lIGluIGNvbW1pdCIpOwogCQkJY29udGludWU7CkBAIC0xNTgwLDExICsxNTgwLDExIEBACiAJCSAqIEZVTEwgc2hvd3MgYm90aCBhdXRob3JzIGJ1dCBub3QgZGF0ZXMuCiAJCSAqIEZVTExFUiBzaG93cyBib3RoIGF1dGhvcnMgYW5kIGRhdGVzLgogCQkgKi8KLQkJaWYgKCFwcmVmaXhjbXAobGluZSwgImF1dGhvciAiKSkgeworCQlpZiAoc3RhcnRzX3dpdGgobGluZSwgImF1dGhvciAiKSkgewogCQkJc3RyYnVmX2dyb3coc2IsIGxpbmVsZW4gKyA4MCk7CiAJCQlwcF91c2VyX2luZm8ocHAsICJBdXRob3IiLCBzYiwgbGluZSArIDcsIGVuY29kaW5nKTsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChsaW5lLCAiY29tbWl0dGVyICIpICYmCisJCWlmIChzdGFydHNfd2l0aChsaW5lLCAiY29tbWl0dGVyICIpICYmCiAJCSAgICAocHAtPmZtdCA9PSBDTUlUX0ZNVF9GVUxMIHx8IHBwLT5mbXQgPT0gQ01JVF9GTVRfRlVMTEVSKSkgewogCQkJc3RyYnVmX2dyb3coc2IsIGxpbmVsZW4gKyA4MCk7CiAJCQlwcF91c2VyX2luZm8ocHAsICJDb21taXQiLCBzYiwgbGluZSArIDEwLCBlbmNvZGluZyk7CmRpZmYgLS1naXQgYS9wcm9tcHQuYyBiL3Byb21wdC5jCmluZGV4IGQ4NTE4MDcuLmQ3YmIxN2MgMTAwNjQ0Ci0tLSBhL3Byb21wdC5jCisrKyBiL3Byb21wdC5jCkBAIC0yMiw2ICsyMiw3IEBACiAJaWYgKHN0YXJ0X2NvbW1hbmQoJnBhc3MpKQogCQlyZXR1cm4gTlVMTDsKIAorCXN0cmJ1Zl9yZXNldCgmYnVmZmVyKTsKIAlpZiAoc3RyYnVmX3JlYWQoJmJ1ZmZlciwgcGFzcy5vdXQsIDIwKSA8IDApCiAJCWVyciA9IDE7CiAKQEAgLTM4LDcgKzM5LDcgQEAKIAogCXN0cmJ1Zl9zZXRsZW4oJmJ1ZmZlciwgc3RyY3NwbihidWZmZXIuYnVmLCAiXHJcbiIpKTsKIAotCXJldHVybiBzdHJidWZfZGV0YWNoKCZidWZmZXIsIE5VTEwpOworCXJldHVybiBidWZmZXIuYnVmOwogfQogCiBjaGFyICpnaXRfcHJvbXB0KGNvbnN0IGNoYXIgKnByb21wdCwgaW50IGZsYWdzKQpkaWZmIC0tZ2l0IGEvcXVvdGUuYyBiL3F1b3RlLmMKaW5kZXggNWM4ODA4MS4uNDVlM2RiMSAxMDA2NDQKLS0tIGEvcXVvdGUuYworKysgYi9xdW90ZS5jCkBAIC00MiwyMyArNDIsNiBAQAogCWZyZWUodG9fZnJlZSk7CiB9CiAKLXZvaWQgc3FfcXVvdGVfcHJpbnQoRklMRSAqc3RyZWFtLCBjb25zdCBjaGFyICpzcmMpCi17Ci0JY2hhciBjOwotCi0JZnB1dGMoJ1wnJywgc3RyZWFtKTsKLQl3aGlsZSAoKGMgPSAqc3JjKyspKSB7Ci0JCWlmIChuZWVkX2JzX3F1b3RlKGMpKSB7Ci0JCQlmcHV0cygiJ1xcIiwgc3RyZWFtKTsKLQkJCWZwdXRjKGMsIHN0cmVhbSk7Ci0JCQlmcHV0YygnXCcnLCBzdHJlYW0pOwotCQl9IGVsc2UgewotCQkJZnB1dGMoYywgc3RyZWFtKTsKLQkJfQotCX0KLQlmcHV0YygnXCcnLCBzdHJlYW0pOwotfQotCiB2b2lkIHNxX3F1b3RlX2FyZ3Yoc3RydWN0IHN0cmJ1ZiAqZHN0LCBjb25zdCBjaGFyKiogYXJndiwgc2l6ZV90IG1heGxlbikKIHsKIAlpbnQgaTsKQEAgLTQwOCw3MiArMzkxLDcyIEBACiAKIC8qIHF1b3RpbmcgYXMgYSBzdHJpbmcgbGl0ZXJhbCBmb3Igb3RoZXIgbGFuZ3VhZ2VzICovCiAKLXZvaWQgcGVybF9xdW90ZV9wcmludChGSUxFICpzdHJlYW0sIGNvbnN0IGNoYXIgKnNyYykKK3ZvaWQgcGVybF9xdW90ZV9idWYoc3RydWN0IHN0cmJ1ZiAqc2IsIGNvbnN0IGNoYXIgKnNyYykKIHsKIAljb25zdCBjaGFyIHNxID0gJ1wnJzsKIAljb25zdCBjaGFyIGJxID0gJ1xcJzsKIAljaGFyIGM7CiAKLQlmcHV0YyhzcSwgc3RyZWFtKTsKKwlzdHJidWZfYWRkY2goc2IsIHNxKTsKIAl3aGlsZSAoKGMgPSAqc3JjKyspKSB7CiAJCWlmIChjID09IHNxIHx8IGMgPT0gYnEpCi0JCQlmcHV0YyhicSwgc3RyZWFtKTsKLQkJZnB1dGMoYywgc3RyZWFtKTsKKwkJCXN0cmJ1Zl9hZGRjaChzYiwgYnEpOworCQlzdHJidWZfYWRkY2goc2IsIGMpOwogCX0KLQlmcHV0YyhzcSwgc3RyZWFtKTsKKwlzdHJidWZfYWRkY2goc2IsIHNxKTsKIH0KIAotdm9pZCBweXRob25fcXVvdGVfcHJpbnQoRklMRSAqc3RyZWFtLCBjb25zdCBjaGFyICpzcmMpCit2b2lkIHB5dGhvbl9xdW90ZV9idWYoc3RydWN0IHN0cmJ1ZiAqc2IsIGNvbnN0IGNoYXIgKnNyYykKIHsKIAljb25zdCBjaGFyIHNxID0gJ1wnJzsKIAljb25zdCBjaGFyIGJxID0gJ1xcJzsKIAljb25zdCBjaGFyIG5sID0gJ1xuJzsKIAljaGFyIGM7CiAKLQlmcHV0YyhzcSwgc3RyZWFtKTsKKwlzdHJidWZfYWRkY2goc2IsIHNxKTsKIAl3aGlsZSAoKGMgPSAqc3JjKyspKSB7CiAJCWlmIChjID09IG5sKSB7Ci0JCQlmcHV0YyhicSwgc3RyZWFtKTsKLQkJCWZwdXRjKCduJywgc3RyZWFtKTsKKwkJCXN0cmJ1Zl9hZGRjaChzYiwgYnEpOworCQkJc3RyYnVmX2FkZGNoKHNiLCAnbicpOwogCQkJY29udGludWU7CiAJCX0KIAkJaWYgKGMgPT0gc3EgfHwgYyA9PSBicSkKLQkJCWZwdXRjKGJxLCBzdHJlYW0pOwotCQlmcHV0YyhjLCBzdHJlYW0pOworCQkJc3RyYnVmX2FkZGNoKHNiLCBicSk7CisJCXN0cmJ1Zl9hZGRjaChzYiwgYyk7CiAJfQotCWZwdXRjKHNxLCBzdHJlYW0pOworCXN0cmJ1Zl9hZGRjaChzYiwgc3EpOwogfQogCi12b2lkIHRjbF9xdW90ZV9wcmludChGSUxFICpzdHJlYW0sIGNvbnN0IGNoYXIgKnNyYykKK3ZvaWQgdGNsX3F1b3RlX2J1ZihzdHJ1Y3Qgc3RyYnVmICpzYiwgY29uc3QgY2hhciAqc3JjKQogewogCWNoYXIgYzsKIAotCWZwdXRjKCciJywgc3RyZWFtKTsKKwlzdHJidWZfYWRkY2goc2IsICciJyk7CiAJd2hpbGUgKChjID0gKnNyYysrKSkgewogCQlzd2l0Y2ggKGMpIHsKIAkJY2FzZSAnWyc6IGNhc2UgJ10nOgogCQljYXNlICd7JzogY2FzZSAnfSc6CiAJCWNhc2UgJyQnOiBjYXNlICdcXCc6IGNhc2UgJyInOgotCQkJZnB1dGMoJ1xcJywgc3RyZWFtKTsKKwkJCXN0cmJ1Zl9hZGRjaChzYiwgJ1xcJyk7CiAJCWRlZmF1bHQ6Ci0JCQlmcHV0YyhjLCBzdHJlYW0pOworCQkJc3RyYnVmX2FkZGNoKHNiLCBjKTsKIAkJCWJyZWFrOwogCQljYXNlICdcZic6Ci0JCQlmcHV0cygiXFxmIiwgc3RyZWFtKTsKKwkJCXN0cmJ1Zl9hZGRzdHIoc2IsICJcXGYiKTsKIAkJCWJyZWFrOwogCQljYXNlICdccic6Ci0JCQlmcHV0cygiXFxyIiwgc3RyZWFtKTsKKwkJCXN0cmJ1Zl9hZGRzdHIoc2IsICJcXHIiKTsKIAkJCWJyZWFrOwogCQljYXNlICdcbic6Ci0JCQlmcHV0cygiXFxuIiwgc3RyZWFtKTsKKwkJCXN0cmJ1Zl9hZGRzdHIoc2IsICJcXG4iKTsKIAkJCWJyZWFrOwogCQljYXNlICdcdCc6Ci0JCQlmcHV0cygiXFx0Iiwgc3RyZWFtKTsKKwkJCXN0cmJ1Zl9hZGRzdHIoc2IsICJcXHQiKTsKIAkJCWJyZWFrOwogCQljYXNlICdcdic6Ci0JCQlmcHV0cygiXFx2Iiwgc3RyZWFtKTsKKwkJCXN0cmJ1Zl9hZGRzdHIoc2IsICJcXHYiKTsKIAkJCWJyZWFrOwogCQl9CiAJfQotCWZwdXRjKCciJywgc3RyZWFtKTsKKwlzdHJidWZfYWRkY2goc2IsICciJyk7CiB9CmRpZmYgLS1naXQgYS9xdW90ZS5oIGIvcXVvdGUuaAppbmRleCBlZDExMGE1Li43MWRjYzNhIDEwMDY0NAotLS0gYS9xdW90ZS5oCisrKyBiL3F1b3RlLmgKQEAgLTI3LDggKzI3LDYgQEAKICAqIGV4Y2x1ZGluZyB0aGUgZmluYWwgbnVsbCByZWdhcmRsZXNzIG9mIHRoZSBidWZmZXIgc2l6ZS4KICAqLwogCi1leHRlcm4gdm9pZCBzcV9xdW90ZV9wcmludChGSUxFICpzdHJlYW0sIGNvbnN0IGNoYXIgKnNyYyk7Ci0KIGV4dGVybiB2b2lkIHNxX3F1b3RlX2J1ZihzdHJ1Y3Qgc3RyYnVmICosIGNvbnN0IGNoYXIgKnNyYyk7CiBleHRlcm4gdm9pZCBzcV9xdW90ZV9hcmd2KHN0cnVjdCBzdHJidWYgKiwgY29uc3QgY2hhciAqKmFyZ3YsIHNpemVfdCBtYXhsZW4pOwogCkBAIC02OCw4ICs2Niw4IEBACiAJCQkgIHN0cnVjdCBzdHJidWYgKm91dCk7CiAKIC8qIHF1b3RpbmcgYXMgYSBzdHJpbmcgbGl0ZXJhbCBmb3Igb3RoZXIgbGFuZ3VhZ2VzICovCi1leHRlcm4gdm9pZCBwZXJsX3F1b3RlX3ByaW50KEZJTEUgKnN0cmVhbSwgY29uc3QgY2hhciAqc3JjKTsKLWV4dGVybiB2b2lkIHB5dGhvbl9xdW90ZV9wcmludChGSUxFICpzdHJlYW0sIGNvbnN0IGNoYXIgKnNyYyk7Ci1leHRlcm4gdm9pZCB0Y2xfcXVvdGVfcHJpbnQoRklMRSAqc3RyZWFtLCBjb25zdCBjaGFyICpzcmMpOworZXh0ZXJuIHZvaWQgcGVybF9xdW90ZV9idWYoc3RydWN0IHN0cmJ1ZiAqc2IsIGNvbnN0IGNoYXIgKnNyYyk7CitleHRlcm4gdm9pZCBweXRob25fcXVvdGVfYnVmKHN0cnVjdCBzdHJidWYgKnNiLCBjb25zdCBjaGFyICpzcmMpOworZXh0ZXJuIHZvaWQgdGNsX3F1b3RlX2J1ZihzdHJ1Y3Qgc3RyYnVmICpzYiwgY29uc3QgY2hhciAqc3JjKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9yZWFjaGFibGUuYyBiL3JlYWNoYWJsZS5jCmluZGV4IGU3ZTZhMWUuLjY1NGE4YzUgMTAwNjQ0Ci0tLSBhL3JlYWNoYWJsZS5jCisrKyBiL3JlYWNoYWJsZS5jCkBAIC04MCw4ICs4MCw3IEBACiAJCWVsc2UKIAkJCXByb2Nlc3NfYmxvYihsb29rdXBfYmxvYihlbnRyeS5zaGExKSwgcCwgJm1lLCBlbnRyeS5wYXRoLCBjcCk7CiAJfQotCWZyZWUodHJlZS0+YnVmZmVyKTsKLQl0cmVlLT5idWZmZXIgPSBOVUxMOworCWZyZWVfdHJlZV9idWZmZXIodHJlZSk7CiB9CiAKIHN0YXRpYyB2b2lkIHByb2Nlc3NfdGFnKHN0cnVjdCB0YWcgKnRhZywgc3RydWN0IG9iamVjdF9hcnJheSAqcCwKZGlmZiAtLWdpdCBhL3JlYWQtY2FjaGUuYyBiL3JlYWQtY2FjaGUuYwppbmRleCBjM2Q1ZTM1Li4zM2RkNjc2IDEwMDY0NAotLS0gYS9yZWFkLWNhY2hlLmMKKysrIGIvcmVhZC1jYWNoZS5jCkBAIC02NDMsNyArNjQzLDcgQEAKIAkJCWlmICgqcHRyID09ICcvJykgewogCQkJCXN0cnVjdCBjYWNoZV9lbnRyeSAqZm91bmRjZTsKIAkJCQkrK3B0cjsKLQkJCQlmb3VuZGNlID0gaW5kZXhfbmFtZV9leGlzdHMoaXN0YXRlLCBjZS0+bmFtZSwgcHRyIC0gY2UtPm5hbWUsIGlnbm9yZV9jYXNlKTsKKwkJCQlmb3VuZGNlID0gaW5kZXhfZGlyX2V4aXN0cyhpc3RhdGUsIGNlLT5uYW1lLCBwdHIgLSBjZS0+bmFtZSAtIDEpOwogCQkJCWlmIChmb3VuZGNlKSB7CiAJCQkJCW1lbWNweSgodm9pZCAqKXN0YXJ0UHRyLCBmb3VuZGNlLT5uYW1lICsgKHN0YXJ0UHRyIC0gY2UtPm5hbWUpLCBwdHIgLSBzdGFydFB0cik7CiAJCQkJCXN0YXJ0UHRyID0gcHRyOwpAQCAtNjUyLDcgKzY1Miw3IEBACiAJCX0KIAl9CiAKLQlhbGlhcyA9IGluZGV4X25hbWVfZXhpc3RzKGlzdGF0ZSwgY2UtPm5hbWUsIGNlX25hbWVsZW4oY2UpLCBpZ25vcmVfY2FzZSk7CisJYWxpYXMgPSBpbmRleF9maWxlX2V4aXN0cyhpc3RhdGUsIGNlLT5uYW1lLCBjZV9uYW1lbGVuKGNlKSwgaWdub3JlX2Nhc2UpOwogCWlmIChhbGlhcyAmJiAhY2Vfc3RhZ2UoYWxpYXMpICYmICFpZV9tYXRjaF9zdGF0KGlzdGF0ZSwgYWxpYXMsIHN0LCBjZV9vcHRpb24pKSB7CiAJCS8qIE5vdGhpbmcgY2hhbmdlZCwgcmVhbGx5ICovCiAJCWZyZWUoY2UpOwpAQCAtMTExNCw3ICsxMTE0LDggQEAKIAlwcmludGYoZm10LCBuYW1lKTsKIH0KIAotaW50IHJlZnJlc2hfaW5kZXgoc3RydWN0IGluZGV4X3N0YXRlICppc3RhdGUsIHVuc2lnbmVkIGludCBmbGFncywgY29uc3QgY2hhciAqKnBhdGhzcGVjLAoraW50IHJlZnJlc2hfaW5kZXgoc3RydWN0IGluZGV4X3N0YXRlICppc3RhdGUsIHVuc2lnbmVkIGludCBmbGFncywKKwkJICBjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjLAogCQkgIGNoYXIgKnNlZW4sIGNvbnN0IGNoYXIgKmhlYWRlcl9tc2cpCiB7CiAJaW50IGk7CkBAIC0xMTQ5LDcgKzExNTAsNyBAQAogCQkJY29udGludWU7CiAKIAkJaWYgKHBhdGhzcGVjICYmCi0JCSAgICAhbWF0Y2hfcGF0aHNwZWMocGF0aHNwZWMsIGNlLT5uYW1lLCBjZV9uYW1lbGVuKGNlKSwgMCwgc2VlbikpCisJCSAgICAhbWF0Y2hfcGF0aHNwZWNfZGVwdGgocGF0aHNwZWMsIGNlLT5uYW1lLCBjZV9uYW1lbGVuKGNlKSwgMCwgc2VlbikpCiAJCQlmaWx0ZXJlZCA9IDE7CiAKIAkJaWYgKGNlX3N0YWdlKGNlKSkgewpAQCAtMTIyOSwxNCArMTIzMCwxNCBAQAogc3RydWN0IG9uZGlza19jYWNoZV9lbnRyeSB7CiAJc3RydWN0IGNhY2hlX3RpbWUgY3RpbWU7CiAJc3RydWN0IGNhY2hlX3RpbWUgbXRpbWU7Ci0JdW5zaWduZWQgaW50IGRldjsKLQl1bnNpZ25lZCBpbnQgaW5vOwotCXVuc2lnbmVkIGludCBtb2RlOwotCXVuc2lnbmVkIGludCB1aWQ7Ci0JdW5zaWduZWQgaW50IGdpZDsKLQl1bnNpZ25lZCBpbnQgc2l6ZTsKKwl1aW50MzJfdCBkZXY7CisJdWludDMyX3QgaW5vOworCXVpbnQzMl90IG1vZGU7CisJdWludDMyX3QgdWlkOworCXVpbnQzMl90IGdpZDsKKwl1aW50MzJfdCBzaXplOwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07Ci0JdW5zaWduZWQgc2hvcnQgZmxhZ3M7CisJdWludDE2X3QgZmxhZ3M7CiAJY2hhciBuYW1lW0ZMRVhfQVJSQVldOyAvKiBtb3JlICovCiB9OwogCkBAIC0xMjQ4LDE1ICsxMjQ5LDE1IEBACiBzdHJ1Y3Qgb25kaXNrX2NhY2hlX2VudHJ5X2V4dGVuZGVkIHsKIAlzdHJ1Y3QgY2FjaGVfdGltZSBjdGltZTsKIAlzdHJ1Y3QgY2FjaGVfdGltZSBtdGltZTsKLQl1bnNpZ25lZCBpbnQgZGV2OwotCXVuc2lnbmVkIGludCBpbm87Ci0JdW5zaWduZWQgaW50IG1vZGU7Ci0JdW5zaWduZWQgaW50IHVpZDsKLQl1bnNpZ25lZCBpbnQgZ2lkOwotCXVuc2lnbmVkIGludCBzaXplOworCXVpbnQzMl90IGRldjsKKwl1aW50MzJfdCBpbm87CisJdWludDMyX3QgbW9kZTsKKwl1aW50MzJfdCB1aWQ7CisJdWludDMyX3QgZ2lkOworCXVpbnQzMl90IHNpemU7CiAJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKLQl1bnNpZ25lZCBzaG9ydCBmbGFnczsKLQl1bnNpZ25lZCBzaG9ydCBmbGFnczI7CisJdWludDE2X3QgZmxhZ3M7CisJdWludDE2X3QgZmxhZ3MyOwogCWNoYXIgbmFtZVtGTEVYX0FSUkFZXTsgLyogbW9yZSAqLwogfTsKIApAQCAtMTgxNyw4ICsxODE4LDE3IEBACiAJCQljb250aW51ZTsKIAkJaWYgKCFjZV91cHRvZGF0ZShjZSkgJiYgaXNfcmFjeV90aW1lc3RhbXAoaXN0YXRlLCBjZSkpCiAJCQljZV9zbXVkZ2VfcmFjaWx5X2NsZWFuX2VudHJ5KGNlKTsKLQkJaWYgKGlzX251bGxfc2hhMShjZS0+c2hhMSkpCi0JCQlyZXR1cm4gZXJyb3IoImNhY2hlIGVudHJ5IGhhcyBudWxsIHNoYTE6ICVzIiwgY2UtPm5hbWUpOworCQlpZiAoaXNfbnVsbF9zaGExKGNlLT5zaGExKSkgeworCQkJc3RhdGljIGNvbnN0IGNoYXIgbXNnW10gPSAiY2FjaGUgZW50cnkgaGFzIG51bGwgc2hhMTogJXMiOworCQkJc3RhdGljIGludCBhbGxvdyA9IC0xOworCisJCQlpZiAoYWxsb3cgPCAwKQorCQkJCWFsbG93ID0gZ2l0X2Vudl9ib29sKCJHSVRfQUxMT1dfTlVMTF9TSEExIiwgMCk7CisJCQlpZiAoYWxsb3cpCisJCQkJd2FybmluZyhtc2csIGNlLT5uYW1lKTsKKwkJCWVsc2UKKwkJCQlyZXR1cm4gZXJyb3IobXNnLCBjZS0+bmFtZSk7CisJCX0KIAkJaWYgKGNlX3dyaXRlX2VudHJ5KCZjLCBuZXdmZCwgY2UsIHByZXZpb3VzX25hbWUpIDwgMCkKIAkJCXJldHVybiAtMTsKIAl9CmRpZmYgLS1naXQgYS9yZWZzLmMgYi9yZWZzLmMKaW5kZXggNzkyMjI2MS4uODkyMjhlMiAxMDA2NDQKLS0tIGEvcmVmcy5jCisrKyBiL3JlZnMuYwpAQCAtNzIsNiArNzIsMTAgQEAKIHsKIAlpbnQgY29tcG9uZW50X2xlbiwgY29tcG9uZW50X2NvdW50ID0gMDsKIAorCWlmICghc3RyY21wKHJlZm5hbWUsICJAIikpCisJCS8qIFJlZm5hbWUgaXMgYSBzaW5nbGUgY2hhcmFjdGVyICdAJy4gKi8KKwkJcmV0dXJuIC0xOworCiAJd2hpbGUgKDEpIHsKIAkJLyogV2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIHBhdGggY29tcG9uZW50LiAqLwogCQljb21wb25lbnRfbGVuID0gY2hlY2tfcmVmbmFtZV9jb21wb25lbnQocmVmbmFtZSwgZmxhZ3MpOwpAQCAtNjMzLDcgKzYzNyw3IEBACiAJc3RydWN0IHJlZl9lbnRyeSAqb2xkX2N1cnJlbnRfcmVmOwogCWludCByZXR2YWw7CiAKLQlpZiAocHJlZml4Y21wKGVudHJ5LT5uYW1lLCBkYXRhLT5iYXNlKSkKKwlpZiAoIXN0YXJ0c193aXRoKGVudHJ5LT5uYW1lLCBkYXRhLT5iYXNlKSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoIShkYXRhLT5mbGFncyAmIERPX0ZPUl9FQUNIX0lOQ0xVREVfQlJPS0VOKSAmJgpAQCAtOTQzLDEzICs5NDcsNiBAQAogCXJldHVybiByZWZzOwogfQogCi12b2lkIGludmFsaWRhdGVfcmVmX2NhY2hlKGNvbnN0IGNoYXIgKnN1Ym1vZHVsZSkKLXsKLQlzdHJ1Y3QgcmVmX2NhY2hlICpyZWZzID0gZ2V0X3JlZl9jYWNoZShzdWJtb2R1bGUpOwotCWNsZWFyX3BhY2tlZF9yZWZfY2FjaGUocmVmcyk7Ci0JY2xlYXJfbG9vc2VfcmVmX2NhY2hlKHJlZnMpOwotfQotCiAvKiBUaGUgbGVuZ3RoIG9mIGEgcGVlbGVkIHJlZmVyZW5jZSBsaW5lIGluIHBhY2tlZC1yZWZzLCBpbmNsdWRpbmcgRU9MOiAqLwogI2RlZmluZSBQRUVMRURfTElORV9MRU5HVEggNDIKIApAQCAtMTA0NSw3ICsxMDQyLDcgQEAKIAkJaWYgKHJlZm5hbWUpIHsKIAkJCWxhc3QgPSBjcmVhdGVfcmVmX2VudHJ5KHJlZm5hbWUsIHNoYTEsIFJFRl9JU1BBQ0tFRCwgMSk7CiAJCQlpZiAocGVlbGVkID09IFBFRUxFRF9GVUxMWSB8fAotCQkJICAgIChwZWVsZWQgPT0gUEVFTEVEX1RBR1MgJiYgIXByZWZpeGNtcChyZWZuYW1lLCAicmVmcy90YWdzLyIpKSkKKwkJCSAgICAocGVlbGVkID09IFBFRUxFRF9UQUdTICYmIHN0YXJ0c193aXRoKHJlZm5hbWUsICJyZWZzL3RhZ3MvIikpKQogCQkJCWxhc3QtPmZsYWcgfD0gUkVGX0tOT1dTX1BFRUxFRDsKIAkJCWFkZF9yZWYoZGlyLCBsYXN0KTsKIAkJCWNvbnRpbnVlOwpAQCAtMTM3OSw3ICsxMzc2LDcgQEAKIAkJCQkJcmV0dXJuIE5VTEw7CiAJCQl9CiAJCQlidWZmZXJbbGVuXSA9IDA7Ci0JCQlpZiAoIXByZWZpeGNtcChidWZmZXIsICJyZWZzLyIpICYmCisJCQlpZiAoc3RhcnRzX3dpdGgoYnVmZmVyLCAicmVmcy8iKSAmJgogCQkJCQkhY2hlY2tfcmVmbmFtZV9mb3JtYXQoYnVmZmVyLCAwKSkgewogCQkJCXN0cmNweShyZWZuYW1lX2J1ZmZlciwgYnVmZmVyKTsKIAkJCQlyZWZuYW1lID0gcmVmbmFtZV9idWZmZXI7CkBAIC0xNDE4LDcgKzE0MTUsNyBAQAogCQkvKgogCQkgKiBJcyBpdCBhIHN5bWJvbGljIHJlZj8KIAkJICovCi0JCWlmIChwcmVmaXhjbXAoYnVmZmVyLCAicmVmOiIpKSB7CisJCWlmICghc3RhcnRzX3dpdGgoYnVmZmVyLCAicmVmOiIpKSB7CiAJCQkvKgogCQkJICogUGxlYXNlIG5vdGUgdGhhdCBGRVRDSF9IRUFEIGhhcyBhIHNlY29uZAogCQkJICogbGluZSBjb250YWluaW5nIG90aGVyIGRhdGEuCkBAIC0xODQwLDcgKzE4MzcsNyBAQAogCXN0cnVjdCByZWZfZmlsdGVyIGZpbHRlcjsKIAlpbnQgcmV0OwogCi0JaWYgKCFwcmVmaXggJiYgcHJlZml4Y21wKHBhdHRlcm4sICJyZWZzLyIpKQorCWlmICghcHJlZml4ICYmICFzdGFydHNfd2l0aChwYXR0ZXJuLCAicmVmcy8iKSkKIAkJc3RyYnVmX2FkZHN0cigmcmVhbF9wYXR0ZXJuLCAicmVmcy8iKTsKIAllbHNlIGlmIChwcmVmaXgpCiAJCXN0cmJ1Zl9hZGRzdHIoJnJlYWxfcGF0dGVybiwgcHJlZml4KTsKQEAgLTE4NzcsMTMgKzE4NzQsMTMgQEAKIGNvbnN0IGNoYXIgKnByZXR0aWZ5X3JlZm5hbWUoY29uc3QgY2hhciAqbmFtZSkKIHsKIAlyZXR1cm4gbmFtZSArICgKLQkJIXByZWZpeGNtcChuYW1lLCAicmVmcy9oZWFkcy8iKSA/IDExIDoKLQkJIXByZWZpeGNtcChuYW1lLCAicmVmcy90YWdzLyIpID8gMTAgOgotCQkhcHJlZml4Y21wKG5hbWUsICJyZWZzL3JlbW90ZXMvIikgPyAxMyA6CisJCXN0YXJ0c193aXRoKG5hbWUsICJyZWZzL2hlYWRzLyIpID8gMTEgOgorCQlzdGFydHNfd2l0aChuYW1lLCAicmVmcy90YWdzLyIpID8gMTAgOgorCQlzdGFydHNfd2l0aChuYW1lLCAicmVmcy9yZW1vdGVzLyIpID8gMTMgOgogCQkwKTsKIH0KIAotY29uc3QgY2hhciAqcmVmX3Jldl9wYXJzZV9ydWxlc1tdID0geworc3RhdGljIGNvbnN0IGNoYXIgKnJlZl9yZXZfcGFyc2VfcnVsZXNbXSA9IHsKIAkiJS4qcyIsCiAJInJlZnMvJS4qcyIsCiAJInJlZnMvdGFncy8lLipzIiwKQEAgLTE4OTMsMTIgKzE4OTAsMTIgQEAKIAlOVUxMCiB9OwogCi1pbnQgcmVmbmFtZV9tYXRjaChjb25zdCBjaGFyICphYmJyZXZfbmFtZSwgY29uc3QgY2hhciAqZnVsbF9uYW1lLCBjb25zdCBjaGFyICoqcnVsZXMpCitpbnQgcmVmbmFtZV9tYXRjaChjb25zdCBjaGFyICphYmJyZXZfbmFtZSwgY29uc3QgY2hhciAqZnVsbF9uYW1lKQogewogCWNvbnN0IGNoYXIgKipwOwogCWNvbnN0IGludCBhYmJyZXZfbmFtZV9sZW4gPSBzdHJsZW4oYWJicmV2X25hbWUpOwogCi0JZm9yIChwID0gcnVsZXM7ICpwOyBwKyspIHsKKwlmb3IgKHAgPSByZWZfcmV2X3BhcnNlX3J1bGVzOyAqcDsgcCsrKSB7CiAJCWlmICghc3RyY21wKGZ1bGxfbmFtZSwgbWtwYXRoKCpwLCBhYmJyZXZfbmFtZV9sZW4sIGFiYnJldl9uYW1lKSkpIHsKIAkJCXJldHVybiAxOwogCQl9CkBAIC0xOTUxLDcgKzE5NDgsNyBAQAogc3RhdGljIGNoYXIgKnN1YnN0aXR1dGVfYnJhbmNoX25hbWUoY29uc3QgY2hhciAqKnN0cmluZywgaW50ICpsZW4pCiB7CiAJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKLQlpbnQgcmV0ID0gaW50ZXJwcmV0X2JyYW5jaF9uYW1lKCpzdHJpbmcsICZidWYpOworCWludCByZXQgPSBpbnRlcnByZXRfYnJhbmNoX25hbWUoKnN0cmluZywgKmxlbiwgJmJ1Zik7CiAKIAlpZiAocmV0ID09ICpsZW4pIHsKIAkJc2l6ZV90IHNpemU7CkBAIC0yMDQyLDYgKzIwMzksNyBAQAogCWludCB0eXBlLCBsZmxhZ3M7CiAJaW50IG11c3RleGlzdCA9IChvbGRfc2hhMSAmJiAhaXNfbnVsbF9zaGExKG9sZF9zaGExKSk7CiAJaW50IG1pc3NpbmcgPSAwOworCWludCBhdHRlbXB0c19yZW1haW5pbmcgPSAzOwogCiAJbG9jayA9IHhjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCByZWZfbG9jaykpOwogCWxvY2stPmxvY2tfZmQgPSAtMTsKQEAgLTIwODMsNyArMjA4MSw3IEBACiAKIAlsb2NrLT5sayA9IHhjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBsb2NrX2ZpbGUpKTsKIAotCWxmbGFncyA9IExPQ0tfRElFX09OX0VSUk9SOworCWxmbGFncyA9IDA7CiAJaWYgKGZsYWdzICYgUkVGX05PREVSRUYpIHsKIAkJcmVmbmFtZSA9IG9yaWdfcmVmbmFtZTsKIAkJbGZsYWdzIHw9IExPQ0tfTk9ERVJFRjsKQEAgLTIwOTYsMTMgKzIwOTQsMzIgQEAKIAlpZiAoKGZsYWdzICYgUkVGX05PREVSRUYpICYmICh0eXBlICYgUkVGX0lTU1lNUkVGKSkKIAkJbG9jay0+Zm9yY2Vfd3JpdGUgPSAxOwogCi0JaWYgKHNhZmVfY3JlYXRlX2xlYWRpbmdfZGlyZWN0b3JpZXMocmVmX2ZpbGUpKSB7CisgcmV0cnk6CisJc3dpdGNoIChzYWZlX2NyZWF0ZV9sZWFkaW5nX2RpcmVjdG9yaWVzKHJlZl9maWxlKSkgeworCWNhc2UgU0NMRF9PSzoKKwkJYnJlYWs7IC8qIHN1Y2Nlc3MgKi8KKwljYXNlIFNDTERfVkFOSVNIRUQ6CisJCWlmICgtLWF0dGVtcHRzX3JlbWFpbmluZyA+IDApCisJCQlnb3RvIHJldHJ5OworCQkvKiBmYWxsIHRocm91Z2ggKi8KKwlkZWZhdWx0OgogCQlsYXN0X2Vycm5vID0gZXJybm87CiAJCWVycm9yKCJ1bmFibGUgdG8gY3JlYXRlIGRpcmVjdG9yeSBmb3IgJXMiLCByZWZfZmlsZSk7CiAJCWdvdG8gZXJyb3JfcmV0dXJuOwogCX0KIAogCWxvY2stPmxvY2tfZmQgPSBob2xkX2xvY2tfZmlsZV9mb3JfdXBkYXRlKGxvY2stPmxrLCByZWZfZmlsZSwgbGZsYWdzKTsKKwlpZiAobG9jay0+bG9ja19mZCA8IDApIHsKKwkJaWYgKGVycm5vID09IEVOT0VOVCAmJiAtLWF0dGVtcHRzX3JlbWFpbmluZyA+IDApCisJCQkvKgorCQkJICogTWF5YmUgc29tZWJvZHkganVzdCBkZWxldGVkIG9uZSBvZiB0aGUKKwkJCSAqIGRpcmVjdG9yaWVzIGxlYWRpbmcgdG8gcmVmX2ZpbGUuICBUcnkKKwkJCSAqIGFnYWluOgorCQkJICovCisJCQlnb3RvIHJldHJ5OworCQllbHNlCisJCQl1bmFibGVfdG9fbG9ja19pbmRleF9kaWUocmVmX2ZpbGUsIGVycm5vKTsKKwl9CiAJcmV0dXJuIG9sZF9zaGExID8gdmVyaWZ5X2xvY2sobG9jaywgb2xkX3NoYTEsIG11c3RleGlzdCkgOiBsb2NrOwogCiAgZXJyb3JfcmV0dXJuOgpAQCAtMjEyMSwxMSArMjEzOCwxMiBAQAogfQogCiBzdHJ1Y3QgcmVmX2xvY2sgKmxvY2tfYW55X3JlZl9mb3JfdXBkYXRlKGNvbnN0IGNoYXIgKnJlZm5hbWUsCi0JCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICpvbGRfc2hhMSwgaW50IGZsYWdzKQorCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqb2xkX3NoYTEsCisJCQkJCSBpbnQgZmxhZ3MsIGludCAqdHlwZV9wKQogewogCWlmIChjaGVja19yZWZuYW1lX2Zvcm1hdChyZWZuYW1lLCBSRUZOQU1FX0FMTE9XX09ORUxFVkVMKSkKIAkJcmV0dXJuIE5VTEw7Ci0JcmV0dXJuIGxvY2tfcmVmX3NoYTFfYmFzaWMocmVmbmFtZSwgb2xkX3NoYTEsIGZsYWdzLCBOVUxMKTsKKwlyZXR1cm4gbG9ja19yZWZfc2hhMV9iYXNpYyhyZWZuYW1lLCBvbGRfc2hhMSwgZmxhZ3MsIHR5cGVfcCk7CiB9CiAKIC8qCkBAIC0yMjQ2LDcgKzIyNjQsNyBAQAogCXN0cnVjdCBwYWNrX3JlZnNfY2JfZGF0YSAqY2IgPSBjYl9kYXRhOwogCWVudW0gcGVlbF9zdGF0dXMgcGVlbF9zdGF0dXM7CiAJc3RydWN0IHJlZl9lbnRyeSAqcGFja2VkX2VudHJ5OwotCWludCBpc190YWdfcmVmID0gIXByZWZpeGNtcChlbnRyeS0+bmFtZSwgInJlZnMvdGFncy8iKTsKKwlpbnQgaXNfdGFnX3JlZiA9IHN0YXJ0c193aXRoKGVudHJ5LT5uYW1lLCAicmVmcy90YWdzLyIpOwogCiAJLyogQUxXQVlTIHBhY2sgdGFncyAqLwogCWlmICghKGNiLT5mbGFncyAmIFBBQ0tfUkVGU19BTEwpICYmICFpc190YWdfcmVmKQpAQCAtMjQxMyw2MCArMjQzMSw4MiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHJlcGFja193aXRob3V0X3JlZihjb25zdCBjaGFyICpyZWZuYW1lKQorc3RhdGljIGludCByZXBhY2tfd2l0aG91dF9yZWZzKGNvbnN0IGNoYXIgKipyZWZuYW1lcywgaW50IG4pCiB7CiAJc3RydWN0IHJlZl9kaXIgKnBhY2tlZDsKIAlzdHJ1Y3Qgc3RyaW5nX2xpc3QgcmVmc190b19kZWxldGUgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKIAlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqcmVmX3RvX2RlbGV0ZTsKKwlpbnQgaSwgcmVtb3ZlZCA9IDA7CiAKLQlpZiAoIWdldF9wYWNrZWRfcmVmKHJlZm5hbWUpKQotCQlyZXR1cm4gMDsgLyogcmVmbmFtZSBkb2VzIG5vdCBleGlzdCBpbiBwYWNrZWQgcmVmcyAqLworCS8qIExvb2sgZm9yIGEgcGFja2VkIHJlZiAqLworCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspCisJCWlmIChnZXRfcGFja2VkX3JlZihyZWZuYW1lc1tpXSkpCisJCQlicmVhazsKKworCS8qIEF2b2lkIGxvY2tpbmcgaWYgd2UgaGF2ZSBub3RoaW5nIHRvIGRvICovCisJaWYgKGkgPT0gbikKKwkJcmV0dXJuIDA7IC8qIG5vIHJlZm5hbWUgZXhpc3RzIGluIHBhY2tlZCByZWZzICovCiAKIAlpZiAobG9ja19wYWNrZWRfcmVmcygwKSkgewogCQl1bmFibGVfdG9fbG9ja19lcnJvcihnaXRfcGF0aCgicGFja2VkLXJlZnMiKSwgZXJybm8pOwotCQlyZXR1cm4gZXJyb3IoImNhbm5vdCBkZWxldGUgJyVzJyBmcm9tIHBhY2tlZCByZWZzIiwgcmVmbmFtZSk7CisJCXJldHVybiBlcnJvcigiY2Fubm90IGRlbGV0ZSAnJXMnIGZyb20gcGFja2VkIHJlZnMiLCByZWZuYW1lc1tpXSk7CiAJfQogCXBhY2tlZCA9IGdldF9wYWNrZWRfcmVmcygmcmVmX2NhY2hlKTsKIAotCS8qIFJlbW92ZSByZWZuYW1lIGZyb20gdGhlIGNhY2hlOiAqLwotCWlmIChyZW1vdmVfZW50cnkocGFja2VkLCByZWZuYW1lKSA9PSAtMSkgeworCS8qIFJlbW92ZSByZWZuYW1lcyBmcm9tIHRoZSBjYWNoZSAqLworCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspCisJCWlmIChyZW1vdmVfZW50cnkocGFja2VkLCByZWZuYW1lc1tpXSkgIT0gLTEpCisJCQlyZW1vdmVkID0gMTsKKwlpZiAoIXJlbW92ZWQpIHsKIAkJLyoKLQkJICogVGhlIHBhY2tlZCBlbnRyeSBkaXNhcHBlYXJlZCB3aGlsZSB3ZSB3ZXJlCisJCSAqIEFsbCBwYWNrZWQgZW50cmllcyBkaXNhcHBlYXJlZCB3aGlsZSB3ZSB3ZXJlCiAJCSAqIGFjcXVpcmluZyB0aGUgbG9jay4KIAkJICovCiAJCXJvbGxiYWNrX3BhY2tlZF9yZWZzKCk7CiAJCXJldHVybiAwOwogCX0KIAotCS8qIFJlbW92ZSBhbnkgb3RoZXIgYWNjdW11bGF0ZWQgY3J1ZnQ6ICovCisJLyogUmVtb3ZlIGFueSBvdGhlciBhY2N1bXVsYXRlZCBjcnVmdCAqLwogCWRvX2Zvcl9lYWNoX2VudHJ5X2luX2RpcihwYWNrZWQsIDAsIGN1cmF0ZV9wYWNrZWRfcmVmX2ZuLCAmcmVmc190b19kZWxldGUpOwogCWZvcl9lYWNoX3N0cmluZ19saXN0X2l0ZW0ocmVmX3RvX2RlbGV0ZSwgJnJlZnNfdG9fZGVsZXRlKSB7CiAJCWlmIChyZW1vdmVfZW50cnkocGFja2VkLCByZWZfdG9fZGVsZXRlLT5zdHJpbmcpID09IC0xKQogCQkJZGllKCJpbnRlcm5hbCBlcnJvciIpOwogCX0KIAotCS8qIFdyaXRlIHdoYXQgcmVtYWluczogKi8KKwkvKiBXcml0ZSB3aGF0IHJlbWFpbnMgKi8KIAlyZXR1cm4gY29tbWl0X3BhY2tlZF9yZWZzKCk7CiB9CiAKK3N0YXRpYyBpbnQgcmVwYWNrX3dpdGhvdXRfcmVmKGNvbnN0IGNoYXIgKnJlZm5hbWUpCit7CisJcmV0dXJuIHJlcGFja193aXRob3V0X3JlZnMoJnJlZm5hbWUsIDEpOworfQorCitzdGF0aWMgaW50IGRlbGV0ZV9yZWZfbG9vc2Uoc3RydWN0IHJlZl9sb2NrICpsb2NrLCBpbnQgZmxhZykKK3sKKwlpZiAoIShmbGFnICYgUkVGX0lTUEFDS0VEKSB8fCBmbGFnICYgUkVGX0lTU1lNUkVGKSB7CisJCS8qIGxvb3NlICovCisJCWludCBlcnIsIGkgPSBzdHJsZW4obG9jay0+bGstPmZpbGVuYW1lKSAtIDU7IC8qIC5sb2NrICovCisKKwkJbG9jay0+bGstPmZpbGVuYW1lW2ldID0gMDsKKwkJZXJyID0gdW5saW5rX29yX3dhcm4obG9jay0+bGstPmZpbGVuYW1lKTsKKwkJbG9jay0+bGstPmZpbGVuYW1lW2ldID0gJy4nOworCQlpZiAoZXJyICYmIGVycm5vICE9IEVOT0VOVCkKKwkJCXJldHVybiAxOworCX0KKwlyZXR1cm4gMDsKK30KKwogaW50IGRlbGV0ZV9yZWYoY29uc3QgY2hhciAqcmVmbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IGRlbG9wdCkKIHsKIAlzdHJ1Y3QgcmVmX2xvY2sgKmxvY2s7Ci0JaW50IGVyciwgaSA9IDAsIHJldCA9IDAsIGZsYWcgPSAwOworCWludCByZXQgPSAwLCBmbGFnID0gMDsKIAogCWxvY2sgPSBsb2NrX3JlZl9zaGExX2Jhc2ljKHJlZm5hbWUsIHNoYTEsIGRlbG9wdCwgJmZsYWcpOwogCWlmICghbG9jaykKIAkJcmV0dXJuIDE7Ci0JaWYgKCEoZmxhZyAmIFJFRl9JU1BBQ0tFRCkgfHwgZmxhZyAmIFJFRl9JU1NZTVJFRikgewotCQkvKiBsb29zZSAqLwotCQlpID0gc3RybGVuKGxvY2stPmxrLT5maWxlbmFtZSkgLSA1OyAvKiAubG9jayAqLwotCQlsb2NrLT5say0+ZmlsZW5hbWVbaV0gPSAwOwotCQllcnIgPSB1bmxpbmtfb3Jfd2Fybihsb2NrLT5say0+ZmlsZW5hbWUpOwotCQlpZiAoZXJyICYmIGVycm5vICE9IEVOT0VOVCkKLQkJCXJldCA9IDE7CisJcmV0IHw9IGRlbGV0ZV9yZWZfbG9vc2UobG9jaywgZmxhZyk7CiAKLQkJbG9jay0+bGstPmZpbGVuYW1lW2ldID0gJy4nOwotCX0KIAkvKiByZW1vdmluZyB0aGUgbG9vc2Ugb25lIGNvdWxkIGhhdmUgcmVzdXJyZWN0ZWQgYW4gZWFybGllcgogCSAqIHBhY2tlZCBvbmUuICBBbHNvLCBpZiBpdCB3YXMgbm90IGxvb3NlIHdlIG5lZWQgdG8gcmVwYWNrCiAJICogd2l0aG91dCBpdC4KQEAgLTI0ODgsNiArMjUyOCw1MSBAQAogICovCiAjZGVmaW5lIFRNUF9SRU5BTUVEX0xPRyAgImxvZ3MvcmVmcy8udG1wLXJlbmFtZWQtbG9nIgogCitzdGF0aWMgaW50IHJlbmFtZV90bXBfbG9nKGNvbnN0IGNoYXIgKm5ld3JlZm5hbWUpCit7CisJaW50IGF0dGVtcHRzX3JlbWFpbmluZyA9IDQ7CisKKyByZXRyeToKKwlzd2l0Y2ggKHNhZmVfY3JlYXRlX2xlYWRpbmdfZGlyZWN0b3JpZXMoZ2l0X3BhdGgoImxvZ3MvJXMiLCBuZXdyZWZuYW1lKSkpIHsKKwljYXNlIFNDTERfT0s6CisJCWJyZWFrOyAvKiBzdWNjZXNzICovCisJY2FzZSBTQ0xEX1ZBTklTSEVEOgorCQlpZiAoLS1hdHRlbXB0c19yZW1haW5pbmcgPiAwKQorCQkJZ290byByZXRyeTsKKwkJLyogZmFsbCB0aHJvdWdoICovCisJZGVmYXVsdDoKKwkJZXJyb3IoInVuYWJsZSB0byBjcmVhdGUgZGlyZWN0b3J5IGZvciAlcyIsIG5ld3JlZm5hbWUpOworCQlyZXR1cm4gLTE7CisJfQorCisJaWYgKHJlbmFtZShnaXRfcGF0aChUTVBfUkVOQU1FRF9MT0cpLCBnaXRfcGF0aCgibG9ncy8lcyIsIG5ld3JlZm5hbWUpKSkgeworCQlpZiAoKGVycm5vPT1FSVNESVIgfHwgZXJybm89PUVOT1RESVIpICYmIC0tYXR0ZW1wdHNfcmVtYWluaW5nID4gMCkgeworCQkJLyoKKwkJCSAqIHJlbmFtZShhLCBiKSB3aGVuIGIgaXMgYW4gZXhpc3RpbmcKKwkJCSAqIGRpcmVjdG9yeSBvdWdodCB0byByZXN1bHQgaW4gSVNESVIsIGJ1dAorCQkJICogU29sYXJpcyA1LjggZ2l2ZXMgRU5PVERJUi4gIFNoZWVzaC4KKwkJCSAqLworCQkJaWYgKHJlbW92ZV9lbXB0eV9kaXJlY3RvcmllcyhnaXRfcGF0aCgibG9ncy8lcyIsIG5ld3JlZm5hbWUpKSkgeworCQkJCWVycm9yKCJEaXJlY3Rvcnkgbm90IGVtcHR5OiBsb2dzLyVzIiwgbmV3cmVmbmFtZSk7CisJCQkJcmV0dXJuIC0xOworCQkJfQorCQkJZ290byByZXRyeTsKKwkJfSBlbHNlIGlmIChlcnJubyA9PSBFTk9FTlQgJiYgLS1hdHRlbXB0c19yZW1haW5pbmcgPiAwKSB7CisJCQkvKgorCQkJICogTWF5YmUgYW5vdGhlciBwcm9jZXNzIGp1c3QgZGVsZXRlZCBvbmUgb2YKKwkJCSAqIHRoZSBkaXJlY3RvcmllcyBpbiB0aGUgcGF0aCB0byBuZXdyZWZuYW1lLgorCQkJICogVHJ5IGFnYWluIGZyb20gdGhlIGJlZ2lubmluZy4KKwkJCSAqLworCQkJZ290byByZXRyeTsKKwkJfSBlbHNlIHsKKwkJCWVycm9yKCJ1bmFibGUgdG8gbW92ZSBsb2dmaWxlICJUTVBfUkVOQU1FRF9MT0ciIHRvIGxvZ3MvJXM6ICVzIiwKKwkJCQluZXdyZWZuYW1lLCBzdHJlcnJvcihlcnJubykpOworCQkJcmV0dXJuIC0xOworCQl9CisJfQorCXJldHVybiAwOworfQorCiBpbnQgcmVuYW1lX3JlZihjb25zdCBjaGFyICpvbGRyZWZuYW1lLCBjb25zdCBjaGFyICpuZXdyZWZuYW1lLCBjb25zdCBjaGFyICpsb2dtc2cpCiB7CiAJdW5zaWduZWQgY2hhciBzaGExWzIwXSwgb3JpZ19zaGExWzIwXTsKQEAgLTI1MzUsMzAgKzI2MjAsOSBAQAogCQl9CiAJfQogCi0JaWYgKGxvZyAmJiBzYWZlX2NyZWF0ZV9sZWFkaW5nX2RpcmVjdG9yaWVzKGdpdF9wYXRoKCJsb2dzLyVzIiwgbmV3cmVmbmFtZSkpKSB7Ci0JCWVycm9yKCJ1bmFibGUgdG8gY3JlYXRlIGRpcmVjdG9yeSBmb3IgJXMiLCBuZXdyZWZuYW1lKTsKKwlpZiAobG9nICYmIHJlbmFtZV90bXBfbG9nKG5ld3JlZm5hbWUpKQogCQlnb3RvIHJvbGxiYWNrOwotCX0KIAotIHJldHJ5OgotCWlmIChsb2cgJiYgcmVuYW1lKGdpdF9wYXRoKFRNUF9SRU5BTUVEX0xPRyksIGdpdF9wYXRoKCJsb2dzLyVzIiwgbmV3cmVmbmFtZSkpKSB7Ci0JCWlmIChlcnJubz09RUlTRElSIHx8IGVycm5vPT1FTk9URElSKSB7Ci0JCQkvKgotCQkJICogcmVuYW1lKGEsIGIpIHdoZW4gYiBpcyBhbiBleGlzdGluZwotCQkJICogZGlyZWN0b3J5IG91Z2h0IHRvIHJlc3VsdCBpbiBJU0RJUiwgYnV0Ci0JCQkgKiBTb2xhcmlzIDUuOCBnaXZlcyBFTk9URElSLiAgU2hlZXNoLgotCQkJICovCi0JCQlpZiAocmVtb3ZlX2VtcHR5X2RpcmVjdG9yaWVzKGdpdF9wYXRoKCJsb2dzLyVzIiwgbmV3cmVmbmFtZSkpKSB7Ci0JCQkJZXJyb3IoIkRpcmVjdG9yeSBub3QgZW1wdHk6IGxvZ3MvJXMiLCBuZXdyZWZuYW1lKTsKLQkJCQlnb3RvIHJvbGxiYWNrOwotCQkJfQotCQkJZ290byByZXRyeTsKLQkJfSBlbHNlIHsKLQkJCWVycm9yKCJ1bmFibGUgdG8gbW92ZSBsb2dmaWxlICJUTVBfUkVOQU1FRF9MT0ciIHRvIGxvZ3MvJXM6ICVzIiwKLQkJCQluZXdyZWZuYW1lLCBzdHJlcnJvcihlcnJubykpOwotCQkJZ290byByb2xsYmFjazsKLQkJfQotCX0KIAlsb2dtb3ZlZCA9IGxvZzsKIAogCWxvY2sgPSBsb2NrX3JlZl9zaGExX2Jhc2ljKG5ld3JlZm5hbWUsIE5VTEwsIDAsIE5VTEwpOwpAQCAtMjY1OSw5ICsyNzIzLDkgQEAKIAogCWdpdF9zbnBhdGgobG9nZmlsZSwgYnVmc2l6ZSwgImxvZ3MvJXMiLCByZWZuYW1lKTsKIAlpZiAobG9nX2FsbF9yZWZfdXBkYXRlcyAmJgotCSAgICAoIXByZWZpeGNtcChyZWZuYW1lLCAicmVmcy9oZWFkcy8iKSB8fAotCSAgICAgIXByZWZpeGNtcChyZWZuYW1lLCAicmVmcy9yZW1vdGVzLyIpIHx8Ci0JICAgICAhcHJlZml4Y21wKHJlZm5hbWUsICJyZWZzL25vdGVzLyIpIHx8CisJICAgIChzdGFydHNfd2l0aChyZWZuYW1lLCAicmVmcy9oZWFkcy8iKSB8fAorCSAgICAgc3RhcnRzX3dpdGgocmVmbmFtZSwgInJlZnMvcmVtb3Rlcy8iKSB8fAorCSAgICAgc3RhcnRzX3dpdGgocmVmbmFtZSwgInJlZnMvbm90ZXMvIikgfHwKIAkgICAgICFzdHJjbXAocmVmbmFtZSwgIkhFQUQiKSkpIHsKIAkJaWYgKHNhZmVfY3JlYXRlX2xlYWRpbmdfZGlyZWN0b3JpZXMobG9nZmlsZSkgPCAwKQogCQkJcmV0dXJuIGVycm9yKCJ1bmFibGUgdG8gY3JlYXRlIGRpcmVjdG9yeSBmb3IgJXMiLApAQCAtMjczMSw3ICsyNzk1LDcgQEAKIAogc3RhdGljIGludCBpc19icmFuY2goY29uc3QgY2hhciAqcmVmbmFtZSkKIHsKLQlyZXR1cm4gIXN0cmNtcChyZWZuYW1lLCAiSEVBRCIpIHx8ICFwcmVmaXhjbXAocmVmbmFtZSwgInJlZnMvaGVhZHMvIik7CisJcmV0dXJuICFzdHJjbXAocmVmbmFtZSwgIkhFQUQiKSB8fCBzdGFydHNfd2l0aChyZWZuYW1lLCAicmVmcy9oZWFkcy8iKTsKIH0KIAogaW50IHdyaXRlX3JlZl9zaGExKHN0cnVjdCByZWZfbG9jayAqbG9jaywKQEAgLTMxNjksMTIgKzMyMzMsMTMgQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCi1pbnQgdXBkYXRlX3JlZihjb25zdCBjaGFyICphY3Rpb24sIGNvbnN0IGNoYXIgKnJlZm5hbWUsCi0JCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm9sZHZhbCwKLQkJaW50IGZsYWdzLCBlbnVtIGFjdGlvbl9vbl9lcnIgb25lcnIpCitzdGF0aWMgc3RydWN0IHJlZl9sb2NrICp1cGRhdGVfcmVmX2xvY2soY29uc3QgY2hhciAqcmVmbmFtZSwKKwkJCQkJY29uc3QgdW5zaWduZWQgY2hhciAqb2xkdmFsLAorCQkJCQlpbnQgZmxhZ3MsIGludCAqdHlwZV9wLAorCQkJCQllbnVtIGFjdGlvbl9vbl9lcnIgb25lcnIpCiB7Ci0Jc3RhdGljIHN0cnVjdCByZWZfbG9jayAqbG9jazsKLQlsb2NrID0gbG9ja19hbnlfcmVmX2Zvcl91cGRhdGUocmVmbmFtZSwgb2xkdmFsLCBmbGFncyk7CisJc3RydWN0IHJlZl9sb2NrICpsb2NrOworCWxvY2sgPSBsb2NrX2FueV9yZWZfZm9yX3VwZGF0ZShyZWZuYW1lLCBvbGR2YWwsIGZsYWdzLCB0eXBlX3ApOwogCWlmICghbG9jaykgewogCQljb25zdCBjaGFyICpzdHIgPSAiQ2Fubm90IGxvY2sgdGhlIHJlZiAnJXMnLiI7CiAJCXN3aXRjaCAob25lcnIpIHsKQEAgLTMxODIsOCArMzI0NywxNCBAQAogCQljYXNlIERJRV9PTl9FUlI6IGRpZShzdHIsIHJlZm5hbWUpOyBicmVhazsKIAkJY2FzZSBRVUlFVF9PTl9FUlI6IGJyZWFrOwogCQl9Ci0JCXJldHVybiAxOwogCX0KKwlyZXR1cm4gbG9jazsKK30KKworc3RhdGljIGludCB1cGRhdGVfcmVmX3dyaXRlKGNvbnN0IGNoYXIgKmFjdGlvbiwgY29uc3QgY2hhciAqcmVmbmFtZSwKKwkJCSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBzdHJ1Y3QgcmVmX2xvY2sgKmxvY2ssCisJCQkgICAgZW51bSBhY3Rpb25fb25fZXJyIG9uZXJyKQorewogCWlmICh3cml0ZV9yZWZfc2hhMShsb2NrLCBzaGExLCBhY3Rpb24pIDwgMCkgewogCQljb25zdCBjaGFyICpzdHIgPSAiQ2Fubm90IHVwZGF0ZSB0aGUgcmVmICclcycuIjsKIAkJc3dpdGNoIChvbmVycikgewpAQCAtMzE5NiwzNSArMzI2NywxMTUgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RydWN0IHJlZiAqZmluZF9yZWZfYnlfbmFtZShjb25zdCBzdHJ1Y3QgcmVmICpsaXN0LCBjb25zdCBjaGFyICpuYW1lKQoraW50IHVwZGF0ZV9yZWYoY29uc3QgY2hhciAqYWN0aW9uLCBjb25zdCBjaGFyICpyZWZuYW1lLAorCSAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBjb25zdCB1bnNpZ25lZCBjaGFyICpvbGR2YWwsCisJICAgICAgIGludCBmbGFncywgZW51bSBhY3Rpb25fb25fZXJyIG9uZXJyKQogewotCWZvciAoIDsgbGlzdDsgbGlzdCA9IGxpc3QtPm5leHQpCi0JCWlmICghc3RyY21wKGxpc3QtPm5hbWUsIG5hbWUpKQotCQkJcmV0dXJuIChzdHJ1Y3QgcmVmICopbGlzdDsKLQlyZXR1cm4gTlVMTDsKKwlzdHJ1Y3QgcmVmX2xvY2sgKmxvY2s7CisJbG9jayA9IHVwZGF0ZV9yZWZfbG9jayhyZWZuYW1lLCBvbGR2YWwsIGZsYWdzLCBOVUxMLCBvbmVycik7CisJaWYgKCFsb2NrKQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gdXBkYXRlX3JlZl93cml0ZShhY3Rpb24sIHJlZm5hbWUsIHNoYTEsIGxvY2ssIG9uZXJyKTsKIH0KIAotLyoKLSAqIGdlbmVyYXRlIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBzY2FuZiBmcm9tIGEgcmVmX3Jldl9wYXJzZV9ydWxlcwotICogcnVsZSwgdGhhdCBpcyByZXBsYWNlIHRoZSAiJS4qcyIgc3BlYyB3aXRoIGEgIiVzIiBzcGVjCi0gKi8KLXN0YXRpYyB2b2lkIGdlbl9zY2FuZl9mbXQoY2hhciAqc2NhbmZfZm10LCBjb25zdCBjaGFyICpydWxlKQorc3RhdGljIGludCByZWZfdXBkYXRlX2NvbXBhcmUoY29uc3Qgdm9pZCAqcjEsIGNvbnN0IHZvaWQgKnIyKQogewotCWNoYXIgKnNwZWM7CisJY29uc3Qgc3RydWN0IHJlZl91cGRhdGUgKiBjb25zdCAqdTEgPSByMTsKKwljb25zdCBzdHJ1Y3QgcmVmX3VwZGF0ZSAqIGNvbnN0ICp1MiA9IHIyOworCXJldHVybiBzdHJjbXAoKCp1MSktPnJlZl9uYW1lLCAoKnUyKS0+cmVmX25hbWUpOworfQogCi0Jc3BlYyA9IHN0cnN0cihydWxlLCAiJS4qcyIpOwotCWlmICghc3BlYyB8fCBzdHJzdHIoc3BlYyArIDQsICIlLipzIikpCi0JCWRpZSgiaW52YWxpZCBydWxlIGluIHJlZl9yZXZfcGFyc2VfcnVsZXM6ICVzIiwgcnVsZSk7CitzdGF0aWMgaW50IHJlZl91cGRhdGVfcmVqZWN0X2R1cGxpY2F0ZXMoc3RydWN0IHJlZl91cGRhdGUgKip1cGRhdGVzLCBpbnQgbiwKKwkJCQkJZW51bSBhY3Rpb25fb25fZXJyIG9uZXJyKQoreworCWludCBpOworCWZvciAoaSA9IDE7IGkgPCBuOyBpKyspCisJCWlmICghc3RyY21wKHVwZGF0ZXNbaSAtIDFdLT5yZWZfbmFtZSwgdXBkYXRlc1tpXS0+cmVmX25hbWUpKSB7CisJCQljb25zdCBjaGFyICpzdHIgPQorCQkJCSJNdWx0aXBsZSB1cGRhdGVzIGZvciByZWYgJyVzJyBub3QgYWxsb3dlZC4iOworCQkJc3dpdGNoIChvbmVycikgeworCQkJY2FzZSBNU0dfT05fRVJSOgorCQkJCWVycm9yKHN0ciwgdXBkYXRlc1tpXS0+cmVmX25hbWUpOyBicmVhazsKKwkJCWNhc2UgRElFX09OX0VSUjoKKwkJCQlkaWUoc3RyLCB1cGRhdGVzW2ldLT5yZWZfbmFtZSk7IGJyZWFrOworCQkJY2FzZSBRVUlFVF9PTl9FUlI6CisJCQkJYnJlYWs7CisJCQl9CisJCQlyZXR1cm4gMTsKKwkJfQorCXJldHVybiAwOworfQogCi0JLyogY29weSBhbGwgdW50aWwgc3BlYyAqLwotCXN0cm5jcHkoc2NhbmZfZm10LCBydWxlLCBzcGVjIC0gcnVsZSk7Ci0Jc2NhbmZfZm10W3NwZWMgLSBydWxlXSA9ICdcMCc7Ci0JLyogY29weSBuZXcgc3BlYyAqLwotCXN0cmNhdChzY2FuZl9mbXQsICIlcyIpOwotCS8qIGNvcHkgcmVtYWluaW5nIHJ1bGUgKi8KLQlzdHJjYXQoc2NhbmZfZm10LCBzcGVjICsgNCk7CitpbnQgdXBkYXRlX3JlZnMoY29uc3QgY2hhciAqYWN0aW9uLCBjb25zdCBzdHJ1Y3QgcmVmX3VwZGF0ZSAqKnVwZGF0ZXNfb3JpZywKKwkJaW50IG4sIGVudW0gYWN0aW9uX29uX2VyciBvbmVycikKK3sKKwlpbnQgcmV0ID0gMCwgZGVsbnVtID0gMCwgaTsKKwlzdHJ1Y3QgcmVmX3VwZGF0ZSAqKnVwZGF0ZXM7CisJaW50ICp0eXBlczsKKwlzdHJ1Y3QgcmVmX2xvY2sgKipsb2NrczsKKwljb25zdCBjaGFyICoqZGVsbmFtZXM7CiAKLQlyZXR1cm47CisJaWYgKCF1cGRhdGVzX29yaWcgfHwgIW4pCisJCXJldHVybiAwOworCisJLyogQWxsb2NhdGUgd29yayBzcGFjZSAqLworCXVwZGF0ZXMgPSB4bWFsbG9jKHNpemVvZigqdXBkYXRlcykgKiBuKTsKKwl0eXBlcyA9IHhtYWxsb2Moc2l6ZW9mKCp0eXBlcykgKiBuKTsKKwlsb2NrcyA9IHhjYWxsb2Mobiwgc2l6ZW9mKCpsb2NrcykpOworCWRlbG5hbWVzID0geG1hbGxvYyhzaXplb2YoKmRlbG5hbWVzKSAqIG4pOworCisJLyogQ29weSwgc29ydCwgYW5kIHJlamVjdCBkdXBsaWNhdGUgcmVmcyAqLworCW1lbWNweSh1cGRhdGVzLCB1cGRhdGVzX29yaWcsIHNpemVvZigqdXBkYXRlcykgKiBuKTsKKwlxc29ydCh1cGRhdGVzLCBuLCBzaXplb2YoKnVwZGF0ZXMpLCByZWZfdXBkYXRlX2NvbXBhcmUpOworCXJldCA9IHJlZl91cGRhdGVfcmVqZWN0X2R1cGxpY2F0ZXModXBkYXRlcywgbiwgb25lcnIpOworCWlmIChyZXQpCisJCWdvdG8gY2xlYW51cDsKKworCS8qIEFjcXVpcmUgYWxsIGxvY2tzIHdoaWxlIHZlcmlmeWluZyBvbGQgdmFsdWVzICovCisJZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworCQlsb2Nrc1tpXSA9IHVwZGF0ZV9yZWZfbG9jayh1cGRhdGVzW2ldLT5yZWZfbmFtZSwKKwkJCQkJICAgKHVwZGF0ZXNbaV0tPmhhdmVfb2xkID8KKwkJCQkJICAgIHVwZGF0ZXNbaV0tPm9sZF9zaGExIDogTlVMTCksCisJCQkJCSAgIHVwZGF0ZXNbaV0tPmZsYWdzLAorCQkJCQkgICAmdHlwZXNbaV0sIG9uZXJyKTsKKwkJaWYgKCFsb2Nrc1tpXSkgeworCQkJcmV0ID0gMTsKKwkJCWdvdG8gY2xlYW51cDsKKwkJfQorCX0KKworCS8qIFBlcmZvcm0gdXBkYXRlcyBmaXJzdCBzbyBsaXZlIGNvbW1pdHMgcmVtYWluIHJlZmVyZW5jZWQgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQorCQlpZiAoIWlzX251bGxfc2hhMSh1cGRhdGVzW2ldLT5uZXdfc2hhMSkpIHsKKwkJCXJldCA9IHVwZGF0ZV9yZWZfd3JpdGUoYWN0aW9uLAorCQkJCQkgICAgICAgdXBkYXRlc1tpXS0+cmVmX25hbWUsCisJCQkJCSAgICAgICB1cGRhdGVzW2ldLT5uZXdfc2hhMSwKKwkJCQkJICAgICAgIGxvY2tzW2ldLCBvbmVycik7CisJCQlsb2Nrc1tpXSA9IE5VTEw7IC8qIGZyZWVkIGJ5IHVwZGF0ZV9yZWZfd3JpdGUgKi8KKwkJCWlmIChyZXQpCisJCQkJZ290byBjbGVhbnVwOworCQl9CisKKwkvKiBQZXJmb3JtIGRlbGV0ZXMgbm93IHRoYXQgdXBkYXRlcyBhcmUgc2FmZWx5IGNvbXBsZXRlZCAqLworCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspCisJCWlmIChsb2Nrc1tpXSkgeworCQkJZGVsbmFtZXNbZGVsbnVtKytdID0gbG9ja3NbaV0tPnJlZl9uYW1lOworCQkJcmV0IHw9IGRlbGV0ZV9yZWZfbG9vc2UobG9ja3NbaV0sIHR5cGVzW2ldKTsKKwkJfQorCXJldCB8PSByZXBhY2tfd2l0aG91dF9yZWZzKGRlbG5hbWVzLCBkZWxudW0pOworCWZvciAoaSA9IDA7IGkgPCBkZWxudW07IGkrKykKKwkJdW5saW5rX29yX3dhcm4oZ2l0X3BhdGgoImxvZ3MvJXMiLCBkZWxuYW1lc1tpXSkpOworCWNsZWFyX2xvb3NlX3JlZl9jYWNoZSgmcmVmX2NhY2hlKTsKKworY2xlYW51cDoKKwlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQorCQlpZiAobG9ja3NbaV0pCisJCQl1bmxvY2tfcmVmKGxvY2tzW2ldKTsKKwlmcmVlKHVwZGF0ZXMpOworCWZyZWUodHlwZXMpOworCWZyZWUobG9ja3MpOworCWZyZWUoZGVsbmFtZXMpOworCXJldHVybiByZXQ7CiB9CiAKIGNoYXIgKnNob3J0ZW5fdW5hbWJpZ3VvdXNfcmVmKGNvbnN0IGNoYXIgKnJlZm5hbWUsIGludCBzdHJpY3QpCkBAIC0zMjM0LDIzICszMzg1LDI5IEBACiAJc3RhdGljIGludCBucl9ydWxlczsKIAljaGFyICpzaG9ydF9uYW1lOwogCi0JLyogcHJlIGdlbmVyYXRlIHNjYW5mIGZvcm1hdHMgZnJvbSByZWZfcmV2X3BhcnNlX3J1bGVzW10gKi8KIAlpZiAoIW5yX3J1bGVzKSB7CisJCS8qCisJCSAqIFByZS1nZW5lcmF0ZSBzY2FuZiBmb3JtYXRzIGZyb20gcmVmX3Jldl9wYXJzZV9ydWxlc1tdLgorCQkgKiBHZW5lcmF0ZSBhIGZvcm1hdCBzdWl0YWJsZSBmb3Igc2NhbmYgZnJvbSBhCisJCSAqIHJlZl9yZXZfcGFyc2VfcnVsZXMgcnVsZSBieSBpbnRlcnBvbGF0aW5nICIlcyIgYXQgdGhlCisJCSAqIGxvY2F0aW9uIG9mIHRoZSAiJS4qcyIuCisJCSAqLwogCQlzaXplX3QgdG90YWxfbGVuID0gMDsKKwkJc2l6ZV90IG9mZnNldCA9IDA7CiAKIAkJLyogdGhlIHJ1bGUgbGlzdCBpcyBOVUxMIHRlcm1pbmF0ZWQsIGNvdW50IHRoZW0gZmlyc3QgKi8KLQkJZm9yICg7IHJlZl9yZXZfcGFyc2VfcnVsZXNbbnJfcnVsZXNdOyBucl9ydWxlcysrKQotCQkJLyogbm8gKzEgYmVjYXVzZSBzdHJsZW4oIiVzIikgPCBzdHJsZW4oIiUuKnMiKSAqLwotCQkJdG90YWxfbGVuICs9IHN0cmxlbihyZWZfcmV2X3BhcnNlX3J1bGVzW25yX3J1bGVzXSk7CisJCWZvciAobnJfcnVsZXMgPSAwOyByZWZfcmV2X3BhcnNlX3J1bGVzW25yX3J1bGVzXTsgbnJfcnVsZXMrKykKKwkJCS8qIC0yIGZvciBzdHJsZW4oIiUuKnMiKSAtIHN0cmxlbigiJXMiKTsgKzEgZm9yIE5VTCAqLworCQkJdG90YWxfbGVuICs9IHN0cmxlbihyZWZfcmV2X3BhcnNlX3J1bGVzW25yX3J1bGVzXSkgLSAyICsgMTsKIAogCQlzY2FuZl9mbXRzID0geG1hbGxvYyhucl9ydWxlcyAqIHNpemVvZihjaGFyICopICsgdG90YWxfbGVuKTsKIAotCQl0b3RhbF9sZW4gPSAwOworCQlvZmZzZXQgPSAwOwogCQlmb3IgKGkgPSAwOyBpIDwgbnJfcnVsZXM7IGkrKykgewotCQkJc2NhbmZfZm10c1tpXSA9IChjaGFyICopJnNjYW5mX2ZtdHNbbnJfcnVsZXNdCi0JCQkJCSsgdG90YWxfbGVuOwotCQkJZ2VuX3NjYW5mX2ZtdChzY2FuZl9mbXRzW2ldLCByZWZfcmV2X3BhcnNlX3J1bGVzW2ldKTsKLQkJCXRvdGFsX2xlbiArPSBzdHJsZW4ocmVmX3Jldl9wYXJzZV9ydWxlc1tpXSk7CisJCQlhc3NlcnQob2Zmc2V0IDwgdG90YWxfbGVuKTsKKwkJCXNjYW5mX2ZtdHNbaV0gPSAoY2hhciAqKSZzY2FuZl9mbXRzW25yX3J1bGVzXSArIG9mZnNldDsKKwkJCW9mZnNldCArPSBzbnByaW50ZihzY2FuZl9mbXRzW2ldLCB0b3RhbF9sZW4gLSBvZmZzZXQsCisJCQkJCSAgIHJlZl9yZXZfcGFyc2VfcnVsZXNbaV0sIDIsICIlcyIpICsgMTsKIAkJfQogCX0KIApAQCAtMzMyMCw3ICszNDc3LDcgQEAKIHsKIAlpZiAoIXN0cmNtcCgidHJhbnNmZXIuaGlkZXJlZnMiLCB2YXIpIHx8CiAJICAgIC8qIE5FRURTV09SSzogdXNlIHBhcnNlX2NvbmZpZ19rZXkoKSBvbmNlIGJvdGggYXJlIG1lcmdlZCAqLwotCSAgICAoIXByZWZpeGNtcCh2YXIsIHNlY3Rpb24pICYmIHZhcltzdHJsZW4oc2VjdGlvbildID09ICcuJyAmJgorCSAgICAoc3RhcnRzX3dpdGgodmFyLCBzZWN0aW9uKSAmJiB2YXJbc3RybGVuKHNlY3Rpb24pXSA9PSAnLicgJiYKIAkgICAgICFzdHJjbXAodmFyICsgc3RybGVuKHNlY3Rpb24pLCAiLmhpZGVyZWZzIikpKSB7CiAJCWNoYXIgKnJlZjsKIAkJaW50IGxlbjsKQEAgLTMzNDgsNyArMzUwNSw3IEBACiAJCXJldHVybiAwOwogCWZvcl9lYWNoX3N0cmluZ19saXN0X2l0ZW0oaXRlbSwgaGlkZV9yZWZzKSB7CiAJCWludCBsZW47Ci0JCWlmIChwcmVmaXhjbXAocmVmbmFtZSwgaXRlbS0+c3RyaW5nKSkKKwkJaWYgKCFzdGFydHNfd2l0aChyZWZuYW1lLCBpdGVtLT5zdHJpbmcpKQogCQkJY29udGludWU7CiAJCWxlbiA9IHN0cmxlbihpdGVtLT5zdHJpbmcpOwogCQlpZiAoIXJlZm5hbWVbbGVuXSB8fCByZWZuYW1lW2xlbl0gPT0gJy8nKQpkaWZmIC0tZ2l0IGEvcmVmcy5oIGIvcmVmcy5oCmluZGV4IDllNWRiM2EuLjg3YTFhNzkgMTAwNjQ0Ci0tLSBhL3JlZnMuaAorKysgYi9yZWZzLmgKQEAgLTEwLDYgKzEwLDIwIEBACiAJaW50IGZvcmNlX3dyaXRlOwogfTsKIAorLyoqCisgKiBJbmZvcm1hdGlvbiBuZWVkZWQgZm9yIGEgc2luZ2xlIHJlZiB1cGRhdGUuICBTZXQgbmV3X3NoYTEgdG8gdGhlCisgKiBuZXcgdmFsdWUgb3IgdG8gemVybyB0byBkZWxldGUgdGhlIHJlZi4gIFRvIGNoZWNrIHRoZSBvbGQgdmFsdWUKKyAqIHdoaWxlIGxvY2tpbmcgdGhlIHJlZiwgc2V0IGhhdmVfb2xkIHRvIDEgYW5kIHNldCBvbGRfc2hhMSB0byB0aGUKKyAqIHZhbHVlIG9yIHRvIHplcm8gdG8gZW5zdXJlIHRoZSByZWYgZG9lcyBub3QgZXhpc3QgYmVmb3JlIHVwZGF0ZS4KKyAqLworc3RydWN0IHJlZl91cGRhdGUgeworCWNvbnN0IGNoYXIgKnJlZl9uYW1lOworCXVuc2lnbmVkIGNoYXIgbmV3X3NoYTFbMjBdOworCXVuc2lnbmVkIGNoYXIgb2xkX3NoYTFbMjBdOworCWludCBmbGFnczsgLyogUkVGX05PREVSRUY/ICovCisJaW50IGhhdmVfb2xkOyAvKiAxIGlmIG9sZF9zaGExIGlzIHZhbGlkLCAwIG90aGVyd2lzZSAqLworfTsKKwogLyoKICAqIEJpdCB2YWx1ZXMgc2V0IGluIHRoZSBmbGFncyBhcmd1bWVudCBwYXNzZWQgdG8gZWFjaF9yZWZfZm4oKToKICAqLwpAQCAtMTM3LDcgKzE1MSw3IEBACiAjZGVmaW5lIFJFRl9OT0RFUkVGCTB4MDEKIGV4dGVybiBzdHJ1Y3QgcmVmX2xvY2sgKmxvY2tfYW55X3JlZl9mb3JfdXBkYXRlKGNvbnN0IGNoYXIgKnJlZm5hbWUsCiAJCQkJCQljb25zdCB1bnNpZ25lZCBjaGFyICpvbGRfc2hhMSwKLQkJCQkJCWludCBmbGFncyk7CisJCQkJCQlpbnQgZmxhZ3MsIGludCAqdHlwZV9wKTsKIAogLyoqIENsb3NlIHRoZSBmaWxlIGRlc2NyaXB0b3Igb3duZWQgYnkgYSBsb2NrIGFuZCByZXR1cm4gdGhlIHN0YXR1cyAqLwogZXh0ZXJuIGludCBjbG9zZV9yZWYoc3RydWN0IHJlZl9sb2NrICpsb2NrKTsKQEAgLTE1MSwxNCArMTY1LDYgQEAKIC8qKiBXcml0ZXMgc2hhMSBpbnRvIHRoZSByZWYgc3BlY2lmaWVkIGJ5IHRoZSBsb2NrLiAqKi8KIGV4dGVybiBpbnQgd3JpdGVfcmVmX3NoYTEoc3RydWN0IHJlZl9sb2NrICpsb2NrLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBjb25zdCBjaGFyICptc2cpOwogCi0vKgotICogSW52YWxpZGF0ZSB0aGUgcmVmZXJlbmNlIGNhY2hlIGZvciB0aGUgc3BlY2lmaWVkIHN1Ym1vZHVsZS4gIFVzZQotICogc3VibW9kdWxlPU5VTEwgdG8gaW52YWxpZGF0ZSB0aGUgY2FjaGUgZm9yIHRoZSBtYWluIG1vZHVsZS4gIFRoaXMKLSAqIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGlmIHJlZmVyZW5jZXMgYXJlIGNoYW5nZWQgdmlhIGEgbWVjaGFuaXNtCi0gKiBvdGhlciB0aGFuIHRoZSByZWZzIEFQSS4KLSAqLwotZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9yZWZfY2FjaGUoY29uc3QgY2hhciAqc3VibW9kdWxlKTsKLQogLyoqIFNldHVwIHJlZmxvZyBiZWZvcmUgdXNpbmcuICoqLwogaW50IGxvZ19yZWZfc2V0dXAoY29uc3QgY2hhciAqcmVmX25hbWUsIGNoYXIgKmxvZ2ZpbGUsIGludCBidWZzaXplKTsKIApAQCAtMjE0LDYgKzIyMCwxMiBAQAogCQljb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBjb25zdCB1bnNpZ25lZCBjaGFyICpvbGR2YWwsCiAJCWludCBmbGFncywgZW51bSBhY3Rpb25fb25fZXJyIG9uZXJyKTsKIAorLyoqCisgKiBMb2NrIGFsbCByZWZzIGFuZCB0aGVuIHBlcmZvcm0gYWxsIG1vZGlmaWNhdGlvbnMuCisgKi8KK2ludCB1cGRhdGVfcmVmcyhjb25zdCBjaGFyICphY3Rpb24sIGNvbnN0IHN0cnVjdCByZWZfdXBkYXRlICoqdXBkYXRlcywKKwkJaW50IG4sIGVudW0gYWN0aW9uX29uX2VyciBvbmVycik7CisKIGV4dGVybiBpbnQgcGFyc2VfaGlkZV9yZWZzX2NvbmZpZyhjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCBjb25zdCBjaGFyICopOwogZXh0ZXJuIGludCByZWZfaXNfaGlkZGVuKGNvbnN0IGNoYXIgKik7CiAKZGlmZiAtLWdpdCBhL3JlbW90ZS1jdXJsLmMgYi9yZW1vdGUtY3VybC5jCmluZGV4IGVmMTY4NGIuLjEwY2IwMTEgMTAwNjQ0Ci0tLSBhL3JlbW90ZS1jdXJsLmMKKysrIGIvcmVtb3RlLWN1cmwuYwpAQCAtNiw5ICs2LDExIEBACiAjaW5jbHVkZSAiZXhlY19jbWQuaCIKICNpbmNsdWRlICJydW4tY29tbWFuZC5oIgogI2luY2x1ZGUgInBrdC1saW5lLmgiCisjaW5jbHVkZSAic3RyaW5nLWxpc3QuaCIKICNpbmNsdWRlICJzaWRlYmFuZC5oIgogI2luY2x1ZGUgImFyZ3YtYXJyYXkuaCIKICNpbmNsdWRlICJjcmVkZW50aWFsLmgiCisjaW5jbHVkZSAic2hhMS1hcnJheS5oIgogCiBzdGF0aWMgc3RydWN0IHJlbW90ZSAqcmVtb3RlOwogLyogYWx3YXlzIGVuZHMgd2l0aCBhIHRyYWlsaW5nIHNsYXNoICovCkBAIC0xOCwxMSArMjAsMTUgQEAKIAlpbnQgdmVyYm9zaXR5OwogCXVuc2lnbmVkIGxvbmcgZGVwdGg7CiAJdW5zaWduZWQgcHJvZ3Jlc3MgOiAxLAorCQljaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkIDogMSwKKwkJY2xvbmluZyA6IDEsCisJCXVwZGF0ZV9zaGFsbG93IDogMSwKIAkJZm9sbG93dGFncyA6IDEsCiAJCWRyeV9ydW4gOiAxLAogCQl0aGluIDogMTsKIH07CiBzdGF0aWMgc3RydWN0IG9wdGlvbnMgb3B0aW9uczsKK3N0YXRpYyBzdHJ1Y3Qgc3RyaW5nX2xpc3QgY2FzX29wdGlvbnMgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKIAogc3RhdGljIGludCBzZXRfb3B0aW9uKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQogewpAQCAtNjksNyArNzUsMzggQEAKIAkJCXJldHVybiAtMTsKIAkJcmV0dXJuIDA7CiAJfQotCWVsc2UgeworCWVsc2UgaWYgKCFzdHJjbXAobmFtZSwgImNoZWNrLWNvbm5lY3Rpdml0eSIpKSB7CisJCWlmICghc3RyY21wKHZhbHVlLCAidHJ1ZSIpKQorCQkJb3B0aW9ucy5jaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkID0gMTsKKwkJZWxzZSBpZiAoIXN0cmNtcCh2YWx1ZSwgImZhbHNlIikpCisJCQlvcHRpb25zLmNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgPSAwOworCQllbHNlCisJCQlyZXR1cm4gLTE7CisJCXJldHVybiAwOworCX0KKwllbHNlIGlmICghc3RyY21wKG5hbWUsICJjYXMiKSkgeworCQlzdHJ1Y3Qgc3RyYnVmIHZhbCA9IFNUUkJVRl9JTklUOworCQlzdHJidWZfYWRkZigmdmFsLCAiLS0iIENBU19PUFRfTkFNRSAiPSVzIiwgdmFsdWUpOworCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmNhc19vcHRpb25zLCB2YWwuYnVmKTsKKwkJc3RyYnVmX3JlbGVhc2UoJnZhbCk7CisJCXJldHVybiAwOworCX0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiY2xvbmluZyIpKSB7CisJCWlmICghc3RyY21wKHZhbHVlLCAidHJ1ZSIpKQorCQkJb3B0aW9ucy5jbG9uaW5nID0gMTsKKwkJZWxzZSBpZiAoIXN0cmNtcCh2YWx1ZSwgImZhbHNlIikpCisJCQlvcHRpb25zLmNsb25pbmcgPSAwOworCQllbHNlCisJCQlyZXR1cm4gLTE7CisJCXJldHVybiAwOworCX0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAidXBkYXRlLXNoYWxsb3ciKSkgeworCQlpZiAoIXN0cmNtcCh2YWx1ZSwgInRydWUiKSkKKwkJCW9wdGlvbnMudXBkYXRlX3NoYWxsb3cgPSAxOworCQllbHNlIGlmICghc3RyY21wKHZhbHVlLCAiZmFsc2UiKSkKKwkJCW9wdGlvbnMudXBkYXRlX3NoYWxsb3cgPSAwOworCQllbHNlCisJCQlyZXR1cm4gLTE7CisJCXJldHVybiAwOworCX0gZWxzZSB7CiAJCXJldHVybiAxIC8qIHVuc3VwcG9ydGVkICovOwogCX0KIH0KQEAgLTgwLDYgKzExNyw3IEBACiAJY2hhciAqYnVmOwogCXNpemVfdCBsZW47CiAJc3RydWN0IHJlZiAqcmVmczsKKwlzdHJ1Y3Qgc2hhMV9hcnJheSBzaGFsbG93OwogCXVuc2lnbmVkIHByb3RvX2dpdCA6IDE7CiB9Owogc3RhdGljIHN0cnVjdCBkaXNjb3ZlcnkgKmxhc3RfZGlzY292ZXJ5OwpAQCAtODgsNyArMTI2LDcgQEAKIHsKIAlzdHJ1Y3QgcmVmICpsaXN0ID0gTlVMTDsKIAlnZXRfcmVtb3RlX2hlYWRzKC0xLCBoZWFkcy0+YnVmLCBoZWFkcy0+bGVuLCAmbGlzdCwKLQkJCSBmb3JfcHVzaCA/IFJFRl9OT1JNQUwgOiAwLCBOVUxMKTsKKwkJCSBmb3JfcHVzaCA/IFJFRl9OT1JNQUwgOiAwLCBOVUxMLCAmaGVhZHMtPnNoYWxsb3cpOwogCXJldHVybiBsaXN0OwogfQogCkBAIC0xNDksNiArMTg3LDcgQEAKIAlpZiAoZCkgewogCQlpZiAoZCA9PSBsYXN0X2Rpc2NvdmVyeSkKIAkJCWxhc3RfZGlzY292ZXJ5ID0gTlVMTDsKKwkJZnJlZShkLT5zaGFsbG93LnNoYTEpOwogCQlmcmVlKGQtPmJ1Zl9hbGxvYyk7CiAJCWZyZWVfcmVmcyhkLT5yZWZzKTsKIAkJZnJlZShkKTsKQEAgLTE5OCw3ICsyMzcsNyBAQAogCWZyZWVfZGlzY292ZXJ5KGxhc3QpOwogCiAJc3RyYnVmX2FkZGYoJnJlZnNfdXJsLCAiJXNpbmZvL3JlZnMiLCB1cmwuYnVmKTsKLQlpZiAoKCFwcmVmaXhjbXAodXJsLmJ1ZiwgImh0dHA6Ly8iKSB8fCAhcHJlZml4Y21wKHVybC5idWYsICJodHRwczovLyIpKSAmJgorCWlmICgoc3RhcnRzX3dpdGgodXJsLmJ1ZiwgImh0dHA6Ly8iKSB8fCBzdGFydHNfd2l0aCh1cmwuYnVmLCAiaHR0cHM6Ly8iKSkgJiYKIAkgICAgIGdpdF9lbnZfYm9vbCgiR0lUX1NNQVJUX0hUVFAiLCAxKSkgewogCQltYXliZV9zbWFydCA9IDE7CiAJCWlmICghc3RyY2hyKHVybC5idWYsICc/JykpCkBAIC0zNzUsMjUgKzQxNCwyOSBAQAogCXJldHVybiBzaXplOwogfQogCi1zdGF0aWMgaW50IHJ1bl9zbG90KHN0cnVjdCBhY3RpdmVfcmVxdWVzdF9zbG90ICpzbG90KQorc3RhdGljIGludCBydW5fc2xvdChzdHJ1Y3QgYWN0aXZlX3JlcXVlc3Rfc2xvdCAqc2xvdCwKKwkJICAgIHN0cnVjdCBzbG90X3Jlc3VsdHMgKnJlc3VsdHMpCiB7CiAJaW50IGVycjsKLQlzdHJ1Y3Qgc2xvdF9yZXN1bHRzIHJlc3VsdHM7CisJc3RydWN0IHNsb3RfcmVzdWx0cyByZXN1bHRzX2J1ZjsKIAotCXNsb3QtPnJlc3VsdHMgPSAmcmVzdWx0czsKKwlpZiAoIXJlc3VsdHMpCisJCXJlc3VsdHMgPSAmcmVzdWx0c19idWY7CisKKwlzbG90LT5yZXN1bHRzID0gcmVzdWx0czsKIAlzbG90LT5jdXJsX3Jlc3VsdCA9IGN1cmxfZWFzeV9wZXJmb3JtKHNsb3QtPmN1cmwpOwogCWZpbmlzaF9hY3RpdmVfc2xvdChzbG90KTsKIAotCWVyciA9IGhhbmRsZV9jdXJsX3Jlc3VsdCgmcmVzdWx0cyk7CisJZXJyID0gaGFuZGxlX2N1cmxfcmVzdWx0KHJlc3VsdHMpOwogCWlmIChlcnIgIT0gSFRUUF9PSyAmJiBlcnIgIT0gSFRUUF9SRUFVVEgpIHsKIAkJZXJyb3IoIlJQQyBmYWlsZWQ7IHJlc3VsdD0lZCwgSFRUUCBjb2RlID0gJWxkIiwKLQkJICAgICAgcmVzdWx0cy5jdXJsX3Jlc3VsdCwgcmVzdWx0cy5odHRwX2NvZGUpOworCQkgICAgICByZXN1bHRzLT5jdXJsX3Jlc3VsdCwgcmVzdWx0cy0+aHR0cF9jb2RlKTsKIAl9CiAKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgaW50IHByb2JlX3JwYyhzdHJ1Y3QgcnBjX3N0YXRlICpycGMpCitzdGF0aWMgaW50IHByb2JlX3JwYyhzdHJ1Y3QgcnBjX3N0YXRlICpycGMsIHN0cnVjdCBzbG90X3Jlc3VsdHMgKnJlc3VsdHMpCiB7CiAJc3RydWN0IGFjdGl2ZV9yZXF1ZXN0X3Nsb3QgKnNsb3Q7CiAJc3RydWN0IGN1cmxfc2xpc3QgKmhlYWRlcnMgPSBOVUxMOwpAQCAtNDE1LDcgKzQ1OCw3IEBACiAJY3VybF9lYXN5X3NldG9wdChzbG90LT5jdXJsLCBDVVJMT1BUX1dSSVRFRlVOQ1RJT04sIGZ3cml0ZV9idWZmZXIpOwogCWN1cmxfZWFzeV9zZXRvcHQoc2xvdC0+Y3VybCwgQ1VSTE9QVF9GSUxFLCAmYnVmKTsKIAotCWVyciA9IHJ1bl9zbG90KHNsb3QpOworCWVyciA9IHJ1bl9zbG90KHNsb3QsIHJlc3VsdHMpOwogCiAJY3VybF9zbGlzdF9mcmVlX2FsbChoZWFkZXJzKTsKIAlzdHJidWZfcmVsZWFzZSgmYnVmKTsKQEAgLTQzMCw2ICs0NzMsNyBAQAogCWNoYXIgKmd6aXBfYm9keSA9IE5VTEw7CiAJc2l6ZV90IGd6aXBfc2l6ZSA9IDA7CiAJaW50IGVyciwgbGFyZ2VfcmVxdWVzdCA9IDA7CisJaW50IG5lZWRzXzEwMF9jb250aW51ZSA9IDA7CiAKIAkvKiBUcnkgdG8gbG9hZCB0aGUgZW50aXJlIHJlcXVlc3QsIGlmIHdlIGNhbiBmaXQgaXQgaW50byB0aGUKIAkgKiBhbGxvY2F0ZWQgYnVmZmVyIHNwYWNlIHdlIGNhbiB1c2UgSFRUUC8xLjAgYW5kIGF2b2lkIHRoZQpAQCAtNDUzLDE4ICs0OTcsMjQgQEAKIAl9CiAKIAlpZiAobGFyZ2VfcmVxdWVzdCkgeworCQlzdHJ1Y3Qgc2xvdF9yZXN1bHRzIHJlc3VsdHM7CisKIAkJZG8gewotCQkJZXJyID0gcHJvYmVfcnBjKHJwYyk7CisJCQllcnIgPSBwcm9iZV9ycGMocnBjLCAmcmVzdWx0cyk7CiAJCQlpZiAoZXJyID09IEhUVFBfUkVBVVRIKQogCQkJCWNyZWRlbnRpYWxfZmlsbCgmaHR0cF9hdXRoKTsKIAkJfSB3aGlsZSAoZXJyID09IEhUVFBfUkVBVVRIKTsKIAkJaWYgKGVyciAhPSBIVFRQX09LKQogCQkJcmV0dXJuIC0xOworCisJCWlmIChyZXN1bHRzLmF1dGhfYXZhaWwgJiBDVVJMQVVUSF9HU1NORUdPVElBVEUpCisJCQluZWVkc18xMDBfY29udGludWUgPSAxOwogCX0KIAogCWhlYWRlcnMgPSBjdXJsX3NsaXN0X2FwcGVuZChoZWFkZXJzLCBycGMtPmhkcl9jb250ZW50X3R5cGUpOwogCWhlYWRlcnMgPSBjdXJsX3NsaXN0X2FwcGVuZChoZWFkZXJzLCBycGMtPmhkcl9hY2NlcHQpOwotCWhlYWRlcnMgPSBjdXJsX3NsaXN0X2FwcGVuZChoZWFkZXJzLCAiRXhwZWN0OiIpOworCWhlYWRlcnMgPSBjdXJsX3NsaXN0X2FwcGVuZChoZWFkZXJzLCBuZWVkc18xMDBfY29udGludWUgPworCQkiRXhwZWN0OiAxMDAtY29udGludWUiIDogIkV4cGVjdDoiKTsKIAogcmV0cnk6CiAJc2xvdCA9IGdldF9hY3RpdmVfc2xvdCgpOwpAQCAtNTU1LDcgKzYwNSw3IEBACiAJY3VybF9lYXN5X3NldG9wdChzbG90LT5jdXJsLCBDVVJMT1BUX1dSSVRFRlVOQ1RJT04sIHJwY19pbik7CiAJY3VybF9lYXN5X3NldG9wdChzbG90LT5jdXJsLCBDVVJMT1BUX0ZJTEUsIHJwYyk7CiAKLQllcnIgPSBydW5fc2xvdChzbG90KTsKKwllcnIgPSBydW5fc2xvdChzbG90LCBOVUxMKTsKIAlpZiAoZXJyID09IEhUVFBfUkVBVVRIICYmICFsYXJnZV9yZXF1ZXN0KSB7CiAJCWNyZWRlbnRpYWxfZmlsbCgmaHR0cF9hdXRoKTsKIAkJZ290byByZXRyeTsKQEAgLTY2OSw3ICs3MTksNyBAQAogCXN0cnVjdCBzdHJidWYgcHJlYW1ibGUgPSBTVFJCVUZfSU5JVDsKIAljaGFyICpkZXB0aF9hcmcgPSBOVUxMOwogCWludCBhcmdjID0gMCwgaSwgZXJyOwotCWNvbnN0IGNoYXIgKmFyZ3ZbMTVdOworCWNvbnN0IGNoYXIgKmFyZ3ZbMTddOwogCiAJYXJndlthcmdjKytdID0gImZldGNoLXBhY2siOwogCWFyZ3ZbYXJnYysrXSA9ICItLXN0YXRlbGVzcy1ycGMiOwpAQCAtNjgzLDYgKzczMywxMiBAQAogCQlhcmd2W2FyZ2MrK10gPSAiLXYiOwogCQlhcmd2W2FyZ2MrK10gPSAiLXYiOwogCX0KKwlpZiAob3B0aW9ucy5jaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkKQorCQlhcmd2W2FyZ2MrK10gPSAiLS1jaGVjay1zZWxmLWNvbnRhaW5lZC1hbmQtY29ubmVjdGVkIjsKKwlpZiAob3B0aW9ucy5jbG9uaW5nKQorCQlhcmd2W2FyZ2MrK10gPSAiLS1jbG9uaW5nIjsKKwlpZiAob3B0aW9ucy51cGRhdGVfc2hhbGxvdykKKwkJYXJndlthcmdjKytdID0gIi0tdXBkYXRlLXNoYWxsb3ciOwogCWlmICghb3B0aW9ucy5wcm9ncmVzcykKIAkJYXJndlthcmdjKytdID0gIi0tbm8tcHJvZ3Jlc3MiOwogCWlmIChvcHRpb25zLmRlcHRoKSB7CkBAIC02OTgsNyArNzU0LDggQEAKIAkJc3RydWN0IHJlZiAqcmVmID0gdG9fZmV0Y2hbaV07CiAJCWlmICghcmVmLT5uYW1lIHx8ICEqcmVmLT5uYW1lKQogCQkJZGllKCJjYW5ub3QgZmV0Y2ggYnkgc2hhMSBvdmVyIHNtYXJ0IGh0dHAiKTsKLQkJcGFja2V0X2J1Zl93cml0ZSgmcHJlYW1ibGUsICIlc1xuIiwgcmVmLT5uYW1lKTsKKwkJcGFja2V0X2J1Zl93cml0ZSgmcHJlYW1ibGUsICIlcyAlc1xuIiwKKwkJCQkgc2hhMV90b19oZXgocmVmLT5vbGRfc2hhMSksIHJlZi0+bmFtZSk7CiAJfQogCXBhY2tldF9idWZfZmx1c2goJnByZWFtYmxlKTsKIApAQCAtNzM0LDcgKzc5MSw3IEBACiAJaW50IGFsbG9jX2hlYWRzID0gMCwgbnJfaGVhZHMgPSAwOwogCiAJZG8gewotCQlpZiAoIXByZWZpeGNtcChidWYtPmJ1ZiwgImZldGNoICIpKSB7CisJCWlmIChzdGFydHNfd2l0aChidWYtPmJ1ZiwgImZldGNoICIpKSB7CiAJCQljaGFyICpwID0gYnVmLT5idWYgKyBzdHJsZW4oImZldGNoICIpOwogCQkJY2hhciAqbmFtZTsKIAkJCXN0cnVjdCByZWYgKnJlZjsKQEAgLTgwNSw2ICs4NjIsNyBAQAogCXN0cnVjdCBycGNfc3RhdGUgcnBjOwogCWludCBpLCBlcnI7CiAJc3RydWN0IGFyZ3ZfYXJyYXkgYXJnczsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqY2FzX29wdGlvbjsKIAogCWFyZ3ZfYXJyYXlfaW5pdCgmYXJncyk7CiAJYXJndl9hcnJheV9wdXNobCgmYXJncywgInNlbmQtcGFjayIsICItLXN0YXRlbGVzcy1ycGMiLCAiLS1oZWxwZXItc3RhdHVzIiwKQEAgLTgxOSw2ICs4NzcsOCBAQAogCWVsc2UgaWYgKG9wdGlvbnMudmVyYm9zaXR5ID4gMSkKIAkJYXJndl9hcnJheV9wdXNoKCZhcmdzLCAiLS12ZXJib3NlIik7CiAJYXJndl9hcnJheV9wdXNoKCZhcmdzLCBvcHRpb25zLnByb2dyZXNzID8gIi0tcHJvZ3Jlc3MiIDogIi0tbm8tcHJvZ3Jlc3MiKTsKKwlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKGNhc19vcHRpb24sICZjYXNfb3B0aW9ucykKKwkJYXJndl9hcnJheV9wdXNoKCZhcmdzLCBjYXNfb3B0aW9uLT5zdHJpbmcpOwogCWFyZ3ZfYXJyYXlfcHVzaCgmYXJncywgdXJsLmJ1Zik7CiAJZm9yIChpID0gMDsgaSA8IG5yX3NwZWM7IGkrKykKIAkJYXJndl9hcnJheV9wdXNoKCZhcmdzLCBzcGVjc1tpXSk7CkBAIC04NTQsNyArOTE0LDcgQEAKIAlpbnQgYWxsb2Nfc3BlYyA9IDAsIG5yX3NwZWMgPSAwLCBpLCByZXQ7CiAKIAlkbyB7Ci0JCWlmICghcHJlZml4Y21wKGJ1Zi0+YnVmLCAicHVzaCAiKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYnVmLT5idWYsICJwdXNoICIpKSB7CiAJCQlBTExPQ19HUk9XKHNwZWNzLCBucl9zcGVjICsgMSwgYWxsb2Nfc3BlYyk7CiAJCQlzcGVjc1tucl9zcGVjKytdID0geHN0cmR1cChidWYtPmJ1ZiArIDUpOwogCQl9CkBAIC05MTcsMTkgKzk3NywxOSBAQAogCQl9CiAJCWlmIChidWYubGVuID09IDApCiAJCQlicmVhazsKLQkJaWYgKCFwcmVmaXhjbXAoYnVmLmJ1ZiwgImZldGNoICIpKSB7CisJCWlmIChzdGFydHNfd2l0aChidWYuYnVmLCAiZmV0Y2ggIikpIHsKIAkJCWlmIChub25naXQpCiAJCQkJZGllKCJGZXRjaCBhdHRlbXB0ZWQgd2l0aG91dCBhIGxvY2FsIHJlcG8iKTsKIAkJCXBhcnNlX2ZldGNoKCZidWYpOwogCi0JCX0gZWxzZSBpZiAoIXN0cmNtcChidWYuYnVmLCAibGlzdCIpIHx8ICFwcmVmaXhjbXAoYnVmLmJ1ZiwgImxpc3QgIikpIHsKKwkJfSBlbHNlIGlmICghc3RyY21wKGJ1Zi5idWYsICJsaXN0IikgfHwgc3RhcnRzX3dpdGgoYnVmLmJ1ZiwgImxpc3QgIikpIHsKIAkJCWludCBmb3JfcHVzaCA9ICEhc3Ryc3RyKGJ1Zi5idWYgKyA0LCAiZm9yLXB1c2giKTsKIAkJCW91dHB1dF9yZWZzKGdldF9yZWZzKGZvcl9wdXNoKSk7CiAKLQkJfSBlbHNlIGlmICghcHJlZml4Y21wKGJ1Zi5idWYsICJwdXNoICIpKSB7CisJCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgoYnVmLmJ1ZiwgInB1c2ggIikpIHsKIAkJCXBhcnNlX3B1c2goJmJ1Zik7CiAKLQkJfSBlbHNlIGlmICghcHJlZml4Y21wKGJ1Zi5idWYsICJvcHRpb24gIikpIHsKKwkJfSBlbHNlIGlmIChzdGFydHNfd2l0aChidWYuYnVmLCAib3B0aW9uICIpKSB7CiAJCQljaGFyICpuYW1lID0gYnVmLmJ1ZiArIHN0cmxlbigib3B0aW9uICIpOwogCQkJY2hhciAqdmFsdWUgPSBzdHJjaHIobmFtZSwgJyAnKTsKIAkJCWludCByZXN1bHQ7CkBAIC05NTIsNiArMTAxMiw3IEBACiAJCQlwcmludGYoImZldGNoXG4iKTsKIAkJCXByaW50Zigib3B0aW9uXG4iKTsKIAkJCXByaW50ZigicHVzaFxuIik7CisJCQlwcmludGYoImNoZWNrLWNvbm5lY3Rpdml0eVxuIik7CiAJCQlwcmludGYoIlxuIik7CiAJCQlmZmx1c2goc3Rkb3V0KTsKIAkJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL3JlbW90ZS10ZXN0c3ZuLmMgYi9yZW1vdGUtdGVzdHN2bi5jCmluZGV4IGQ3Y2Q1ZDIuLjA3OGYxZmYgMTAwNjQ0Ci0tLSBhL3JlbW90ZS10ZXN0c3ZuLmMKKysrIGIvcmVtb3RlLXRlc3Rzdm4uYwpAQCAtODIsNyArODIsNyBAQAogCQlsZW4gPSBlbmQgPyBlbmQgLSBtc2cgOiBzdHJsZW4obXNnKTsKIAogCQlrZXkgPSAiUmV2aXNpb24tbnVtYmVyOiAiOwotCQlpZiAoIXByZWZpeGNtcChtc2csIGtleSkpIHsKKwkJaWYgKHN0YXJ0c193aXRoKG1zZywga2V5KSkgewogCQkJbG9uZyBpOwogCQkJY2hhciAqZW5kOwogCQkJdmFsdWUgPSBtc2cgKyBzdHJsZW4oa2V5KTsKQEAgLTE1NCw3ICsxNTQsNyBAQAogCX0gZWxzZSB7CiAJCXN0cmJ1Zl9hZGRmKCZzYiwgIjolZCAiLCBsYXRlc3RyZXYpOwogCQl3aGlsZSAoc3RyYnVmX2dldGxpbmUoJmxpbmUsIG1hcmtzZmlsZSwgJ1xuJykgIT0gRU9GKSB7Ci0JCQlpZiAoIXByZWZpeGNtcChsaW5lLmJ1Ziwgc2IuYnVmKSkgeworCQkJaWYgKHN0YXJ0c193aXRoKGxpbmUuYnVmLCBzYi5idWYpKSB7CiAJCQkJZm91bmQrKzsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTI2NCw3ICsyNjQsNyBAQAogCQlyZXR1cm4gMTsJLyogZW5kIG9mIGNvbW1hbmQgc3RyZWFtLCBxdWl0ICovCiAJfQogCWlmIChiYXRjaF9jbWQpIHsKLQkJaWYgKHByZWZpeGNtcChiYXRjaF9jbWQtPm5hbWUsIGxpbmUtPmJ1ZikpCisJCWlmICghc3RhcnRzX3dpdGgoYmF0Y2hfY21kLT5uYW1lLCBsaW5lLT5idWYpKQogCQkJZGllKCJBY3RpdmUgJXMgYmF0Y2ggaW50ZXJydXB0ZWQgYnkgJXMiLCBiYXRjaF9jbWQtPm5hbWUsIGxpbmUtPmJ1Zik7CiAJCS8qIGJ1ZmZlciBiYXRjaCBsaW5lcyAqLwogCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmJhdGNobGluZXMsIGxpbmUtPmJ1Zik7CkBAIC0yNzIsNyArMjcyLDcgQEAKIAl9CiAKIAlmb3IgKHAgPSBpbnB1dF9jb21tYW5kX2xpc3Q7IHAtPm5hbWU7IHArKykgewotCQlpZiAoIXByZWZpeGNtcChsaW5lLT5idWYsIHAtPm5hbWUpICYmIChzdHJsZW4ocC0+bmFtZSkgPT0gbGluZS0+bGVuIHx8CisJCWlmIChzdGFydHNfd2l0aChsaW5lLT5idWYsIHAtPm5hbWUpICYmIChzdHJsZW4ocC0+bmFtZSkgPT0gbGluZS0+bGVuIHx8CiAJCQkJbGluZS0+YnVmW3N0cmxlbihwLT5uYW1lKV0gPT0gJyAnKSkgewogCQkJaWYgKHAtPmJhdGNoYWJsZSkgewogCQkJCWJhdGNoX2NtZCA9IHA7CkBAIC0zMDQsNyArMzA0LDcgQEAKIAlyZW1vdGUgPSByZW1vdGVfZ2V0KGFyZ3ZbMV0pOwogCXVybF9pbiA9IChhcmdjID09IDMpID8gYXJndlsyXSA6IHJlbW90ZS0+dXJsWzBdOwogCi0JaWYgKCFwcmVmaXhjbXAodXJsX2luLCAiZmlsZTovLyIpKSB7CisJaWYgKHN0YXJ0c193aXRoKHVybF9pbiwgImZpbGU6Ly8iKSkgewogCQlkdW1wX2Zyb21fZmlsZSA9IDE7CiAJCXVybCA9IHVybF9kZWNvZGUodXJsX2luICsgc2l6ZW9mKCJmaWxlOi8vIiktMSk7CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL3JlbW90ZS5jIGIvcmVtb3RlLmMKaW5kZXggZWZjYmE5My4uZTQxMjUxZSAxMDA2NDQKLS0tIGEvcmVtb3RlLmMKKysrIGIvcmVtb3RlLmMKQEAgLTc2LDcgKzc2LDcgQEAKIAkJaWYgKCFyLT5yZXdyaXRlW2ldKQogCQkJY29udGludWU7CiAJCWZvciAoaiA9IDA7IGogPCByLT5yZXdyaXRlW2ldLT5pbnN0ZWFkX29mX25yOyBqKyspIHsKLQkJCWlmICghcHJlZml4Y21wKHVybCwgci0+cmV3cml0ZVtpXS0+aW5zdGVhZF9vZltqXS5zKSAmJgorCQkJaWYgKHN0YXJ0c193aXRoKHVybCwgci0+cmV3cml0ZVtpXS0+aW5zdGVhZF9vZltqXS5zKSAmJgogCQkJICAgICghbG9uZ2VzdCB8fAogCQkJICAgICBsb25nZXN0LT5sZW4gPCByLT5yZXdyaXRlW2ldLT5pbnN0ZWFkX29mW2pdLmxlbikpIHsKIAkJCQlsb25nZXN0ID0gJihyLT5yZXdyaXRlW2ldLT5pbnN0ZWFkX29mW2pdKTsKQEAgLTE0OCw2ICsxNDgsNyBAQAogCX0KIAogCXJldCA9IHhjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCByZW1vdGUpKTsKKwlyZXQtPnBydW5lID0gLTE7ICAvKiB1bnNwZWNpZmllZCAqLwogCUFMTE9DX0dST1cocmVtb3RlcywgcmVtb3Rlc19uciArIDEsIHJlbW90ZXNfYWxsb2MpOwogCXJlbW90ZXNbcmVtb3Rlc19ucisrXSA9IHJldDsKIAlpZiAobGVuKQpAQCAtMjM4LDEzICsyMzksMTMgQEAKIAkJaW50IHZhbHVlX2xpc3Q7CiAJCWNoYXIgKnMsICpwOwogCi0JCWlmICghcHJlZml4Y21wKGJ1ZmZlciwgIlVSTDoiKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYnVmZmVyLCAiVVJMOiIpKSB7CiAJCQl2YWx1ZV9saXN0ID0gMDsKIAkJCXMgPSBidWZmZXIgKyA0OwotCQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoYnVmZmVyLCAiUHVzaDoiKSkgeworCQl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGJ1ZmZlciwgIlB1c2g6IikpIHsKIAkJCXZhbHVlX2xpc3QgPSAxOwogCQkJcyA9IGJ1ZmZlciArIDU7Ci0JCX0gZWxzZSBpZiAoIXByZWZpeGNtcChidWZmZXIsICJQdWxsOiIpKSB7CisJCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgoYnVmZmVyLCAiUHVsbDoiKSkgewogCQkJdmFsdWVfbGlzdCA9IDI7CiAJCQlzID0gYnVmZmVyICsgNTsKIAkJfSBlbHNlCkBAIC0zMzYsNyArMzM3LDcgQEAKIAljb25zdCBjaGFyICpzdWJrZXk7CiAJc3RydWN0IHJlbW90ZSAqcmVtb3RlOwogCXN0cnVjdCBicmFuY2ggKmJyYW5jaDsKLQlpZiAoIXByZWZpeGNtcChrZXksICJicmFuY2guIikpIHsKKwlpZiAoc3RhcnRzX3dpdGgoa2V5LCAiYnJhbmNoLiIpKSB7CiAJCW5hbWUgPSBrZXkgKyA3OwogCQlzdWJrZXkgPSBzdHJyY2hyKG5hbWUsICcuJyk7CiAJCWlmICghc3Via2V5KQpAQCAtMzYwLDcgKzM2MSw3IEBACiAJCX0KIAkJcmV0dXJuIDA7CiAJfQotCWlmICghcHJlZml4Y21wKGtleSwgInVybC4iKSkgeworCWlmIChzdGFydHNfd2l0aChrZXksICJ1cmwuIikpIHsKIAkJc3RydWN0IHJld3JpdGUgKnJld3JpdGU7CiAJCW5hbWUgPSBrZXkgKyA0OwogCQlzdWJrZXkgPSBzdHJyY2hyKG5hbWUsICcuJyk7CkBAIC0zNzksNyArMzgwLDcgQEAKIAkJfQogCX0KIAotCWlmIChwcmVmaXhjbXAoa2V5LCAgInJlbW90ZS4iKSkKKwlpZiAoIXN0YXJ0c193aXRoKGtleSwgICJyZW1vdGUuIikpCiAJCXJldHVybiAwOwogCW5hbWUgPSBrZXkgKyA3OwogCkBAIC00MDQsNiArNDA1LDggQEAKIAkJcmVtb3RlLT5za2lwX2RlZmF1bHRfdXBkYXRlID0gZ2l0X2NvbmZpZ19ib29sKGtleSwgdmFsdWUpOwogCWVsc2UgaWYgKCFzdHJjbXAoc3Via2V5LCAiLnNraXBmZXRjaGFsbCIpKQogCQlyZW1vdGUtPnNraXBfZGVmYXVsdF91cGRhdGUgPSBnaXRfY29uZmlnX2Jvb2woa2V5LCB2YWx1ZSk7CisJZWxzZSBpZiAoIXN0cmNtcChzdWJrZXksICIucHJ1bmUiKSkKKwkJcmVtb3RlLT5wcnVuZSA9IGdpdF9jb25maWdfYm9vbChrZXksIHZhbHVlKTsKIAllbHNlIGlmICghc3RyY21wKHN1YmtleSwgIi51cmwiKSkgewogCQljb25zdCBjaGFyICp2OwogCQlpZiAoZ2l0X2NvbmZpZ19zdHJpbmcoJnYsIGtleSwgdmFsdWUpKQpAQCAtNDgwLDExICs0ODMsMTEgQEAKIAlpbnQgZmxhZzsKIAlpZiAoZGVmYXVsdF9yZW1vdGVfbmFtZSkgLyogZGlkIHRoaXMgYWxyZWFkeSAqLwogCQlyZXR1cm47Ci0JZGVmYXVsdF9yZW1vdGVfbmFtZSA9IHhzdHJkdXAoIm9yaWdpbiIpOworCWRlZmF1bHRfcmVtb3RlX25hbWUgPSAib3JpZ2luIjsKIAljdXJyZW50X2JyYW5jaCA9IE5VTEw7CiAJaGVhZF9yZWYgPSByZXNvbHZlX3JlZl91bnNhZmUoIkhFQUQiLCBzaGExLCAwLCAmZmxhZyk7CiAJaWYgKGhlYWRfcmVmICYmIChmbGFnICYgUkVGX0lTU1lNUkVGKSAmJgotCSAgICAhcHJlZml4Y21wKGhlYWRfcmVmLCAicmVmcy9oZWFkcy8iKSkgeworCSAgICBzdGFydHNfd2l0aChoZWFkX3JlZiwgInJlZnMvaGVhZHMvIikpIHsKIAkJY3VycmVudF9icmFuY2ggPQogCQkJbWFrZV9icmFuY2goaGVhZF9yZWYgKyBzdHJsZW4oInJlZnMvaGVhZHMvIiksIDApOwogCX0KQEAgLTc0MiwzNSArNzQ1LDY2IEBACiAJcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCByZWZfcmVtb3ZlX2R1cGxpY2F0ZXMoc3RydWN0IHJlZiAqcmVmX21hcCkKK3N0YXRpYyB2b2lkIGhhbmRsZV9kdXBsaWNhdGUoc3RydWN0IHJlZiAqcmVmMSwgc3RydWN0IHJlZiAqcmVmMikKK3sKKwlpZiAoc3RyY21wKHJlZjEtPm5hbWUsIHJlZjItPm5hbWUpKSB7CisJCWlmIChyZWYxLT5mZXRjaF9oZWFkX3N0YXR1cyAhPSBGRVRDSF9IRUFEX0lHTk9SRSAmJgorCQkgICAgcmVmMi0+ZmV0Y2hfaGVhZF9zdGF0dXMgIT0gRkVUQ0hfSEVBRF9JR05PUkUpIHsKKwkJCWRpZShfKCJDYW5ub3QgZmV0Y2ggYm90aCAlcyBhbmQgJXMgdG8gJXMiKSwKKwkJCSAgICByZWYxLT5uYW1lLCByZWYyLT5uYW1lLCByZWYyLT5wZWVyX3JlZi0+bmFtZSk7CisJCX0gZWxzZSBpZiAocmVmMS0+ZmV0Y2hfaGVhZF9zdGF0dXMgIT0gRkVUQ0hfSEVBRF9JR05PUkUgJiYKKwkJCSAgIHJlZjItPmZldGNoX2hlYWRfc3RhdHVzID09IEZFVENIX0hFQURfSUdOT1JFKSB7CisJCQl3YXJuaW5nKF8oIiVzIHVzdWFsbHkgdHJhY2tzICVzLCBub3QgJXMiKSwKKwkJCQlyZWYyLT5wZWVyX3JlZi0+bmFtZSwgcmVmMi0+bmFtZSwgcmVmMS0+bmFtZSk7CisJCX0gZWxzZSBpZiAocmVmMS0+ZmV0Y2hfaGVhZF9zdGF0dXMgPT0gRkVUQ0hfSEVBRF9JR05PUkUgJiYKKwkJCSAgIHJlZjItPmZldGNoX2hlYWRfc3RhdHVzID09IEZFVENIX0hFQURfSUdOT1JFKSB7CisJCQlkaWUoXygiJXMgdHJhY2tzIGJvdGggJXMgYW5kICVzIiksCisJCQkgICAgcmVmMi0+cGVlcl9yZWYtPm5hbWUsIHJlZjEtPm5hbWUsIHJlZjItPm5hbWUpOworCQl9IGVsc2UgeworCQkJLyoKKwkJCSAqIFRoaXMgbGFzdCBwb3NzaWJpbGl0eSBkb2Vzbid0IG9jY3VyIGJlY2F1c2UKKwkJCSAqIEZFVENIX0hFQURfSUdOT1JFIGVudHJpZXMgYWx3YXlzIGFwcGVhciBhdAorCQkJICogdGhlIGVuZCBvZiB0aGUgbGlzdC4KKwkJCSAqLworCQkJZGllKF8oIkludGVybmFsIGVycm9yIikpOworCQl9CisJfQorCWZyZWUocmVmMi0+cGVlcl9yZWYpOworCWZyZWUocmVmMik7Cit9CisKK3N0cnVjdCByZWYgKnJlZl9yZW1vdmVfZHVwbGljYXRlcyhzdHJ1Y3QgcmVmICpyZWZfbWFwKQogewogCXN0cnVjdCBzdHJpbmdfbGlzdCByZWZzID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKLQlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbSA9IE5VTEw7Ci0Jc3RydWN0IHJlZiAqcHJldiA9IE5VTEwsICpuZXh0ID0gTlVMTDsKLQlmb3IgKDsgcmVmX21hcDsgcHJldiA9IHJlZl9tYXAsIHJlZl9tYXAgPSBuZXh0KSB7Ci0JCW5leHQgPSByZWZfbWFwLT5uZXh0OwotCQlpZiAoIXJlZl9tYXAtPnBlZXJfcmVmKQotCQkJY29udGludWU7CisJc3RydWN0IHJlZiAqcmV0dmFsID0gTlVMTDsKKwlzdHJ1Y3QgcmVmICoqcCA9ICZyZXR2YWw7CiAKLQkJaXRlbSA9IHN0cmluZ19saXN0X2xvb2t1cCgmcmVmcywgcmVmX21hcC0+cGVlcl9yZWYtPm5hbWUpOwotCQlpZiAoaXRlbSkgewotCQkJaWYgKHN0cmNtcCgoKHN0cnVjdCByZWYgKilpdGVtLT51dGlsKS0+bmFtZSwKLQkJCQkgICByZWZfbWFwLT5uYW1lKSkKLQkJCQlkaWUoIiVzIHRyYWNrcyBib3RoICVzIGFuZCAlcyIsCi0JCQkJICAgIHJlZl9tYXAtPnBlZXJfcmVmLT5uYW1lLAotCQkJCSAgICAoKHN0cnVjdCByZWYgKilpdGVtLT51dGlsKS0+bmFtZSwKLQkJCQkgICAgcmVmX21hcC0+bmFtZSk7Ci0JCQlwcmV2LT5uZXh0ID0gcmVmX21hcC0+bmV4dDsKLQkJCWZyZWUocmVmX21hcC0+cGVlcl9yZWYpOwotCQkJZnJlZShyZWZfbWFwKTsKLQkJCXJlZl9tYXAgPSBwcmV2OyAvKiBza2lwIHRoaXM7IHdlIGZyZWVkIGl0ICovCi0JCQljb250aW51ZTsKKwl3aGlsZSAocmVmX21hcCkgeworCQlzdHJ1Y3QgcmVmICpyZWYgPSByZWZfbWFwOworCisJCXJlZl9tYXAgPSByZWZfbWFwLT5uZXh0OworCQlyZWYtPm5leHQgPSBOVUxMOworCisJCWlmICghcmVmLT5wZWVyX3JlZikgeworCQkJKnAgPSByZWY7CisJCQlwID0gJnJlZi0+bmV4dDsKKwkJfSBlbHNlIHsKKwkJCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtID0KKwkJCQlzdHJpbmdfbGlzdF9pbnNlcnQoJnJlZnMsIHJlZi0+cGVlcl9yZWYtPm5hbWUpOworCisJCQlpZiAoaXRlbS0+dXRpbCkgeworCQkJCS8qIEVudHJ5IGFscmVhZHkgZXhpc3RlZCAqLworCQkJCWhhbmRsZV9kdXBsaWNhdGUoKHN0cnVjdCByZWYgKilpdGVtLT51dGlsLCByZWYpOworCQkJfSBlbHNlIHsKKwkJCQkqcCA9IHJlZjsKKwkJCQlwID0gJnJlZi0+bmV4dDsKKwkJCQlpdGVtLT51dGlsID0gcmVmOworCQkJfQogCQl9Ci0KLQkJaXRlbSA9IHN0cmluZ19saXN0X2luc2VydCgmcmVmcywgcmVmX21hcC0+cGVlcl9yZWYtPm5hbWUpOwotCQlpdGVtLT51dGlsID0gcmVmX21hcDsKIAl9CisKIAlzdHJpbmdfbGlzdF9jbGVhcigmcmVmcywgMCk7CisJcmV0dXJuIHJldHZhbDsKIH0KIAogaW50IHJlbW90ZV9oYXNfdXJsKHN0cnVjdCByZW1vdGUgKnJlbW90ZSwgY29uc3QgY2hhciAqdXJsKQpAQCAtODE4LDEwICs4NTIsMTIgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHF1ZXJ5X3JlZnNwZWNzKHN0cnVjdCByZWZzcGVjICpyZWZzLCBpbnQgcmVmX2NvdW50LCBzdHJ1Y3QgcmVmc3BlYyAqcXVlcnkpCitpbnQgcXVlcnlfcmVmc3BlY3Moc3RydWN0IHJlZnNwZWMgKnJlZnMsIGludCByZWZfY291bnQsIHN0cnVjdCByZWZzcGVjICpxdWVyeSkKIHsKIAlpbnQgaTsKIAlpbnQgZmluZF9zcmMgPSAhcXVlcnktPnNyYzsKKwljb25zdCBjaGFyICpuZWVkbGUgPSBmaW5kX3NyYyA/IHF1ZXJ5LT5kc3QgOiBxdWVyeS0+c3JjOworCWNoYXIgKipyZXN1bHQgPSBmaW5kX3NyYyA/ICZxdWVyeS0+c3JjIDogJnF1ZXJ5LT5kc3Q7CiAKIAlpZiAoZmluZF9zcmMgJiYgIXF1ZXJ5LT5kc3QpCiAJCXJldHVybiBlcnJvcigicXVlcnlfcmVmc3BlY3M6IG5lZWQgZWl0aGVyIHNyYyBvciBkc3QiKTsKQEAgLTgzMCw4ICs4NjYsNiBAQAogCQlzdHJ1Y3QgcmVmc3BlYyAqcmVmc3BlYyA9ICZyZWZzW2ldOwogCQljb25zdCBjaGFyICprZXkgPSBmaW5kX3NyYyA/IHJlZnNwZWMtPmRzdCA6IHJlZnNwZWMtPnNyYzsKIAkJY29uc3QgY2hhciAqdmFsdWUgPSBmaW5kX3NyYyA/IHJlZnNwZWMtPnNyYyA6IHJlZnNwZWMtPmRzdDsKLQkJY29uc3QgY2hhciAqbmVlZGxlID0gZmluZF9zcmMgPyBxdWVyeS0+ZHN0IDogcXVlcnktPnNyYzsKLQkJY2hhciAqKnJlc3VsdCA9IGZpbmRfc3JjID8gJnF1ZXJ5LT5zcmMgOiAmcXVlcnktPmRzdDsKIAogCQlpZiAoIXJlZnNwZWMtPmRzdCkKIAkJCWNvbnRpbnVlOwpAQCAtOTUyLDkgKzk4Niw5IEBACiAJKmwgPSBsbGlzdF9tZXJnZXNvcnQoKmwsIHJlZl9saXN0X2dldF9uZXh0LCByZWZfbGlzdF9zZXRfbmV4dCwgY21wKTsKIH0KIAotc3RhdGljIGludCBjb3VudF9yZWZzcGVjX21hdGNoKGNvbnN0IGNoYXIgKnBhdHRlcm4sCi0JCQkgICAgICAgc3RydWN0IHJlZiAqcmVmcywKLQkJCSAgICAgICBzdHJ1Y3QgcmVmICoqbWF0Y2hlZF9yZWYpCitpbnQgY291bnRfcmVmc3BlY19tYXRjaChjb25zdCBjaGFyICpwYXR0ZXJuLAorCQkJc3RydWN0IHJlZiAqcmVmcywKKwkJCXN0cnVjdCByZWYgKiptYXRjaGVkX3JlZikKIHsKIAlpbnQgcGF0bGVuID0gc3RybGVuKHBhdHRlcm4pOwogCXN0cnVjdCByZWYgKm1hdGNoZWRfd2VhayA9IE5VTEw7CkBAIC05NjYsNyArMTAwMCw3IEBACiAJCWNoYXIgKm5hbWUgPSByZWZzLT5uYW1lOwogCQlpbnQgbmFtZWxlbiA9IHN0cmxlbihuYW1lKTsKIAotCQlpZiAoIXJlZm5hbWVfbWF0Y2gocGF0dGVybiwgbmFtZSwgcmVmX3Jldl9wYXJzZV9ydWxlcykpCisJCWlmICghcmVmbmFtZV9tYXRjaChwYXR0ZXJuLCBuYW1lKSkKIAkJCWNvbnRpbnVlOwogCiAJCS8qIEEgbWF0Y2ggaXMgIndlYWsiIGlmIGl0IGlzIHdpdGggcmVmcyBvdXRzaWRlCkBAIC05NzksOCArMTAxMyw4IEBACiAJCSAqLwogCQlpZiAobmFtZWxlbiAhPSBwYXRsZW4gJiYKIAkJICAgIHBhdGxlbiAhPSBuYW1lbGVuIC0gNSAmJgotCQkgICAgcHJlZml4Y21wKG5hbWUsICJyZWZzL2hlYWRzLyIpICYmCi0JCSAgICBwcmVmaXhjbXAobmFtZSwgInJlZnMvdGFncy8iKSkgeworCQkgICAgIXN0YXJ0c193aXRoKG5hbWUsICJyZWZzL2hlYWRzLyIpICYmCisJCSAgICAhc3RhcnRzX3dpdGgobmFtZSwgInJlZnMvdGFncy8iKSkgewogCQkJLyogV2Ugd2FudCB0byBjYXRjaCB0aGUgY2FzZSB3aGVyZSBvbmx5IHdlYWsKIAkJCSAqIG1hdGNoZXMgYXJlIGZvdW5kIGFuZCB0aGVyZSBhcmUgbXVsdGlwbGUKIAkJCSAqIG1hdGNoZXMsIGFuZCB3aGVyZSBtb3JlIHRoYW4gb25lIHN0cm9uZwpAQCAtMTA1MSw5ICsxMDg1LDkgQEAKIAlpZiAoIXIpCiAJCXJldHVybiBOVUxMOwogCi0JaWYgKCFwcmVmaXhjbXAociwgInJlZnMvaGVhZHMvIikpCisJaWYgKHN0YXJ0c193aXRoKHIsICJyZWZzL2hlYWRzLyIpKQogCQlzdHJidWZfYWRkc3RyKCZidWYsICJyZWZzL2hlYWRzLyIpOwotCWVsc2UgaWYgKCFwcmVmaXhjbXAociwgInJlZnMvdGFncy8iKSkKKwllbHNlIGlmIChzdGFydHNfd2l0aChyLCAicmVmcy90YWdzLyIpKQogCQlzdHJidWZfYWRkc3RyKCZidWYsICJyZWZzL3RhZ3MvIik7CiAJZWxzZQogCQlyZXR1cm4gTlVMTDsKQEAgLTExMDEsNyArMTEzNSw3IEBACiAJCWRzdF92YWx1ZSA9IHJlc29sdmVfcmVmX3Vuc2FmZShtYXRjaGVkX3NyYy0+bmFtZSwgc2hhMSwgMSwgJmZsYWcpOwogCQlpZiAoIWRzdF92YWx1ZSB8fAogCQkgICAgKChmbGFnICYgUkVGX0lTU1lNUkVGKSAmJgotCQkgICAgIHByZWZpeGNtcChkc3RfdmFsdWUsICJyZWZzL2hlYWRzLyIpKSkKKwkJICAgICAhc3RhcnRzX3dpdGgoZHN0X3ZhbHVlLCAicmVmcy9oZWFkcy8iKSkpCiAJCQlkaWUoIiVzIGNhbm5vdCBiZSByZXNvbHZlZCB0byBicmFuY2guIiwKIAkJCSAgICBtYXRjaGVkX3NyYy0+bmFtZSk7CiAJfQpAQCAtMTE5MCw3ICsxMjI0LDcgQEAKIAkJICogaW5jbHVkaW5nIHJlZnMgb3V0c2lkZSByZWZzL2hlYWRzLyBoaWVyYXJjaHksIGJ1dAogCQkgKiB0aGF0IGRvZXMgbm90IG1ha2UgbXVjaCBzZW5zZSB0aGVzZSBkYXlzLgogCQkgKi8KLQkJaWYgKCFzZW5kX21pcnJvciAmJiBwcmVmaXhjbXAocmVmLT5uYW1lLCAicmVmcy9oZWFkcy8iKSkKKwkJaWYgKCFzZW5kX21pcnJvciAmJiAhc3RhcnRzX3dpdGgocmVmLT5uYW1lLCAicmVmcy9oZWFkcy8iKSkKIAkJCXJldHVybiBOVUxMOwogCQluYW1lID0geHN0cmR1cChyZWYtPm5hbWUpOwogCX0KQEAgLTEyNDUsNyArMTI3OSw3IEBACiAJCQlhZGRfdG9fdGlwcygmc2VudF90aXBzLCByZWYtPnBlZXJfcmVmLT5uZXdfc2hhMSk7CiAJCWVsc2UKIAkJCWFkZF90b190aXBzKCZzZW50X3RpcHMsIHJlZi0+b2xkX3NoYTEpOwotCQlpZiAoIXByZWZpeGNtcChyZWYtPm5hbWUsICJyZWZzL3RhZ3MvIikpCisJCWlmIChzdGFydHNfd2l0aChyZWYtPm5hbWUsICJyZWZzL3RhZ3MvIikpCiAJCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmRzdF90YWcsIHJlZi0+bmFtZSk7CiAJfQogCWNsZWFyX2NvbW1pdF9tYXJrc19tYW55KHNlbnRfdGlwcy5uciwgc2VudF90aXBzLnRpcCwgVE1QX01BUkspOwpAQCAtMTI1NCw3ICsxMjg4LDcgQEAKIAogCS8qIENvbGxlY3QgdGFncyB0aGV5IGRvIG5vdCBoYXZlLiAqLwogCWZvciAocmVmID0gc3JjOyByZWY7IHJlZiA9IHJlZi0+bmV4dCkgewotCQlpZiAocHJlZml4Y21wKHJlZi0+bmFtZSwgInJlZnMvdGFncy8iKSkKKwkJaWYgKCFzdGFydHNfd2l0aChyZWYtPm5hbWUsICJyZWZzL3RhZ3MvIikpCiAJCQljb250aW51ZTsgLyogbm90IGEgdGFnICovCiAJCWlmIChzdHJpbmdfbGlzdF9oYXNfc3RyaW5nKCZkc3RfdGFnLCByZWYtPm5hbWUpKQogCQkJY29udGludWU7IC8qIHRoZXkgYWxyZWFkeSBoYXZlIGl0ICovCkBAIC0xMzAyLDYgKzEzMzYsMTQgQEAKIAlmcmVlKHNlbnRfdGlwcy50aXApOwogfQogCitzdHJ1Y3QgcmVmICpmaW5kX3JlZl9ieV9uYW1lKGNvbnN0IHN0cnVjdCByZWYgKmxpc3QsIGNvbnN0IGNoYXIgKm5hbWUpCit7CisJZm9yICggOyBsaXN0OyBsaXN0ID0gbGlzdC0+bmV4dCkKKwkJaWYgKCFzdHJjbXAobGlzdC0+bmFtZSwgbmFtZSkpCisJCQlyZXR1cm4gKHN0cnVjdCByZWYgKilsaXN0OworCXJldHVybiBOVUxMOworfQorCiBzdGF0aWMgdm9pZCBwcmVwYXJlX3JlZl9pbmRleChzdHJ1Y3Qgc3RyaW5nX2xpc3QgKnJlZl9pbmRleCwgc3RydWN0IHJlZiAqcmVmKQogewogCWZvciAoIDsgcmVmOyByZWYgPSByZWYtPm5leHQpCkBAIC0xNDExLDEyICsxNDUzLDEzIEBACiB9CiAKIHZvaWQgc2V0X3JlZl9zdGF0dXNfZm9yX3B1c2goc3RydWN0IHJlZiAqcmVtb3RlX3JlZnMsIGludCBzZW5kX21pcnJvciwKLQlpbnQgZm9yY2VfdXBkYXRlKQorCQkJICAgICBpbnQgZm9yY2VfdXBkYXRlKQogewogCXN0cnVjdCByZWYgKnJlZjsKIAogCWZvciAocmVmID0gcmVtb3RlX3JlZnM7IHJlZjsgcmVmID0gcmVmLT5uZXh0KSB7CiAJCWludCBmb3JjZV9yZWZfdXBkYXRlID0gcmVmLT5mb3JjZSB8fCBmb3JjZV91cGRhdGU7CisJCWludCByZWplY3RfcmVhc29uID0gMDsKIAogCQlpZiAocmVmLT5wZWVyX3JlZikKIAkJCWhhc2hjcHkocmVmLT5uZXdfc2hhMSwgcmVmLT5wZWVyX3JlZi0+bmV3X3NoYTEpOwpAQCAtMTQzMSw2ICsxNDc0LDI2IEBACiAJCX0KIAogCQkvKgorCQkgKiBCeXBhc3MgdGhlIHVzdWFsICJtdXN0IGZhc3QtZm9yd2FyZCIgY2hlY2sgYnV0CisJCSAqIHJlcGxhY2UgaXQgd2l0aCBhIHdlYWtlciAidGhlIG9sZCB2YWx1ZSBtdXN0IGJlCisJCSAqIHRoaXMgdmFsdWUgd2Ugb2JzZXJ2ZWQiLiAgSWYgdGhlIHJlbW90ZSByZWYgaGFzCisJCSAqIG1vdmVkIGFuZCBpcyBub3cgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3QsCisJCSAqIHJlamVjdCBhbnkgcHVzaC4KKwkJICoKKwkJICogSXQgYWxzbyBpcyBhbiBlcnJvciBpZiB0aGUgdXNlciB0b2xkIHVzIHRvIGNoZWNrCisJCSAqIHdpdGggdGhlIHJlbW90ZS10cmFja2luZyBicmFuY2ggdG8gZmluZCB0aGUgdmFsdWUKKwkJICogdG8gZXhwZWN0LCBidXQgd2UgZGlkIG5vdCBoYXZlIHN1Y2ggYSB0cmFja2luZworCQkgKiBicmFuY2guCisJCSAqLworCQlpZiAocmVmLT5leHBlY3Rfb2xkX3NoYTEpIHsKKwkJCWlmIChyZWYtPmV4cGVjdF9vbGRfbm9fdHJhY2tiYWNrIHx8CisJCQkgICAgaGFzaGNtcChyZWYtPm9sZF9zaGExLCByZWYtPm9sZF9zaGExX2V4cGVjdCkpCisJCQkJcmVqZWN0X3JlYXNvbiA9IFJFRl9TVEFUVVNfUkVKRUNUX1NUQUxFOworCQl9CisKKwkJLyoKKwkJICogVGhlIHVzdWFsICJtdXN0IGZhc3QtZm9yd2FyZCIgcnVsZXMuCisJCSAqCiAJCSAqIERlY2lkZSB3aGV0aGVyIGFuIGluZGl2aWR1YWwgcmVmc3BlYyBBOkIgY2FuIGJlCiAJCSAqIHB1c2hlZC4gIFRoZSBwdXNoIHdpbGwgc3VjY2VlZCBpZiBhbnkgb2YgdGhlCiAJCSAqIGZvbGxvd2luZyBhcmUgdHJ1ZToKQEAgLTE0NDgsMjQgKzE1MTEsMjYgQEAKIAkJICogICAgIHBhc3NpbmcgdGhlIC0tZm9yY2UgYXJndW1lbnQKIAkJICovCiAKLQkJaWYgKCFyZWYtPmRlbGV0aW9uICYmICFpc19udWxsX3NoYTEocmVmLT5vbGRfc2hhMSkpIHsKLQkJCWludCB3aHkgPSAwOyAvKiB3aHkgd291bGQgdGhpcyBwdXNoIHJlcXVpcmUgLS1mb3JjZT8gKi8KLQotCQkJaWYgKCFwcmVmaXhjbXAocmVmLT5uYW1lLCAicmVmcy90YWdzLyIpKQotCQkJCXdoeSA9IFJFRl9TVEFUVVNfUkVKRUNUX0FMUkVBRFlfRVhJU1RTOworCQllbHNlIGlmICghcmVmLT5kZWxldGlvbiAmJiAhaXNfbnVsbF9zaGExKHJlZi0+b2xkX3NoYTEpKSB7CisJCQlpZiAoc3RhcnRzX3dpdGgocmVmLT5uYW1lLCAicmVmcy90YWdzLyIpKQorCQkJCXJlamVjdF9yZWFzb24gPSBSRUZfU1RBVFVTX1JFSkVDVF9BTFJFQURZX0VYSVNUUzsKIAkJCWVsc2UgaWYgKCFoYXNfc2hhMV9maWxlKHJlZi0+b2xkX3NoYTEpKQotCQkJCXdoeSA9IFJFRl9TVEFUVVNfUkVKRUNUX0ZFVENIX0ZJUlNUOworCQkJCXJlamVjdF9yZWFzb24gPSBSRUZfU1RBVFVTX1JFSkVDVF9GRVRDSF9GSVJTVDsKIAkJCWVsc2UgaWYgKCFsb29rdXBfY29tbWl0X3JlZmVyZW5jZV9nZW50bHkocmVmLT5vbGRfc2hhMSwgMSkgfHwKIAkJCQkgIWxvb2t1cF9jb21taXRfcmVmZXJlbmNlX2dlbnRseShyZWYtPm5ld19zaGExLCAxKSkKLQkJCQl3aHkgPSBSRUZfU1RBVFVTX1JFSkVDVF9ORUVEU19GT1JDRTsKKwkJCQlyZWplY3RfcmVhc29uID0gUkVGX1NUQVRVU19SRUpFQ1RfTkVFRFNfRk9SQ0U7CiAJCQllbHNlIGlmICghcmVmX25ld2VyKHJlZi0+bmV3X3NoYTEsIHJlZi0+b2xkX3NoYTEpKQotCQkJCXdoeSA9IFJFRl9TVEFUVVNfUkVKRUNUX05PTkZBU1RGT1JXQVJEOwotCi0JCQlpZiAoIWZvcmNlX3JlZl91cGRhdGUpCi0JCQkJcmVmLT5zdGF0dXMgPSB3aHk7Ci0JCQllbHNlIGlmICh3aHkpCi0JCQkJcmVmLT5mb3JjZWRfdXBkYXRlID0gMTsKKwkJCQlyZWplY3RfcmVhc29uID0gUkVGX1NUQVRVU19SRUpFQ1RfTk9ORkFTVEZPUldBUkQ7CiAJCX0KKworCQkvKgorCQkgKiAiLS1mb3JjZSIgd2lsbCBkZWZlYXQgYW55IHJlamVjdGlvbiBpbXBsZW1lbnRlZAorCQkgKiBieSB0aGUgcnVsZXMgYWJvdmUuCisJCSAqLworCQlpZiAoIWZvcmNlX3JlZl91cGRhdGUpCisJCQlyZWYtPnN0YXR1cyA9IHJlamVjdF9yZWFzb247CisJCWVsc2UgaWYgKHJlamVjdF9yZWFzb24pCisJCQlyZWYtPmZvcmNlZF91cGRhdGUgPSAxOwogCX0KIH0KIApAQCAtMTUwNiw3ICsxNTcxLDcgQEAKIHsKIAlpZiAoIWJyYW5jaCB8fCBpIDwgMCB8fCBpID49IGJyYW5jaC0+bWVyZ2VfbnIpCiAJCXJldHVybiAwOwotCXJldHVybiByZWZuYW1lX21hdGNoKGJyYW5jaC0+bWVyZ2VbaV0tPnNyYywgcmVmbmFtZSwgcmVmX2ZldGNoX3J1bGVzKTsKKwlyZXR1cm4gcmVmbmFtZV9tYXRjaChicmFuY2gtPm1lcmdlW2ldLT5zcmMsIHJlZm5hbWUpOwogfQogCiBzdGF0aWMgaW50IGlnbm9yZV9zeW1yZWZfdXBkYXRlKGNvbnN0IGNoYXIgKnJlZm5hbWUpCkBAIC0xNTE5LDYgKzE1ODQsMTMgQEAKIAlyZXR1cm4gKGZsYWcgJiBSRUZfSVNTWU1SRUYpOwogfQogCisvKgorICogQ3JlYXRlIGFuZCByZXR1cm4gYSBsaXN0IG9mIChzdHJ1Y3QgcmVmKSBjb25zaXN0aW5nIG9mIGNvcGllcyBvZgorICogZWFjaCByZW1vdGVfcmVmIHRoYXQgbWF0Y2hlcyByZWZzcGVjLiAgcmVmc3BlYyBtdXN0IGJlIGEgcGF0dGVybi4KKyAqIEZpbGwgaW4gdGhlIGNvcGllcycgcGVlcl9yZWYgdG8gZGVzY3JpYmUgdGhlIGxvY2FsIHRyYWNraW5nIHJlZnMgdG8KKyAqIHdoaWNoIHRoZXkgbWFwLiAgT21pdCBhbnkgcmVmZXJlbmNlcyB0aGF0IHdvdWxkIG1hcCB0byBhbiBleGlzdGluZworICogbG9jYWwgc3ltYm9saWMgcmVmLgorICovCiBzdGF0aWMgc3RydWN0IHJlZiAqZ2V0X2V4cGFuZGVkX21hcChjb25zdCBzdHJ1Y3QgcmVmICpyZW1vdGVfcmVmcywKIAkJCQkgICAgY29uc3Qgc3RydWN0IHJlZnNwZWMgKnJlZnNwZWMpCiB7CkBAIC0xNTI2LDkgKzE1OTgsOSBAQAogCXN0cnVjdCByZWYgKnJldCA9IE5VTEw7CiAJc3RydWN0IHJlZiAqKnRhaWwgPSAmcmV0OwogCi0JY2hhciAqZXhwbl9uYW1lOwotCiAJZm9yIChyZWYgPSByZW1vdGVfcmVmczsgcmVmOyByZWYgPSByZWYtPm5leHQpIHsKKwkJY2hhciAqZXhwbl9uYW1lID0gTlVMTDsKKwogCQlpZiAoc3RyY2hyKHJlZi0+bmFtZSwgJ14nKSkKIAkJCWNvbnRpbnVlOyAvKiBhIGRlcmVmZXJlbmNlIGl0ZW0gKi8KIAkJaWYgKG1hdGNoX25hbWVfd2l0aF9wYXR0ZXJuKHJlZnNwZWMtPnNyYywgcmVmLT5uYW1lLApAQCAtMTUzNywxMiArMTYwOSwxMiBAQAogCQkJc3RydWN0IHJlZiAqY3B5ID0gY29weV9yZWYocmVmKTsKIAogCQkJY3B5LT5wZWVyX3JlZiA9IGFsbG9jX3JlZihleHBuX25hbWUpOwotCQkJZnJlZShleHBuX25hbWUpOwogCQkJaWYgKHJlZnNwZWMtPmZvcmNlKQogCQkJCWNweS0+cGVlcl9yZWYtPmZvcmNlID0gMTsKIAkJCSp0YWlsID0gY3B5OwogCQkJdGFpbCA9ICZjcHktPm5leHQ7CiAJCX0KKwkJZnJlZShleHBuX25hbWUpOwogCX0KIAogCXJldHVybiByZXQ7CkBAIC0xNTUyLDcgKzE2MjQsNyBAQAogewogCWNvbnN0IHN0cnVjdCByZWYgKnJlZjsKIAlmb3IgKHJlZiA9IHJlZnM7IHJlZjsgcmVmID0gcmVmLT5uZXh0KSB7Ci0JCWlmIChyZWZuYW1lX21hdGNoKG5hbWUsIHJlZi0+bmFtZSwgcmVmX2ZldGNoX3J1bGVzKSkKKwkJaWYgKHJlZm5hbWVfbWF0Y2gobmFtZSwgcmVmLT5uYW1lKSkKIAkJCXJldHVybiByZWY7CiAJfQogCXJldHVybiBOVUxMOwpAQCAtMTU3MywxMiArMTY0NSwxMiBAQAogCWlmICghbmFtZSB8fCBuYW1lWzBdID09ICdcMCcpCiAJCXJldHVybiBOVUxMOwogCi0JaWYgKCFwcmVmaXhjbXAobmFtZSwgInJlZnMvIikpCisJaWYgKHN0YXJ0c193aXRoKG5hbWUsICJyZWZzLyIpKQogCQlyZXR1cm4gYWxsb2NfcmVmKG5hbWUpOwogCi0JaWYgKCFwcmVmaXhjbXAobmFtZSwgImhlYWRzLyIpIHx8Ci0JICAgICFwcmVmaXhjbXAobmFtZSwgInRhZ3MvIikgfHwKLQkgICAgIXByZWZpeGNtcChuYW1lLCAicmVtb3Rlcy8iKSkKKwlpZiAoc3RhcnRzX3dpdGgobmFtZSwgImhlYWRzLyIpIHx8CisJICAgIHN0YXJ0c193aXRoKG5hbWUsICJ0YWdzLyIpIHx8CisJICAgIHN0YXJ0c193aXRoKG5hbWUsICJyZW1vdGVzLyIpKQogCQlyZXR1cm4gYWxsb2NfcmVmX3dpdGhfcHJlZml4KCJyZWZzLyIsIDUsIG5hbWUpOwogCiAJcmV0dXJuIGFsbG9jX3JlZl93aXRoX3ByZWZpeCgicmVmcy9oZWFkcy8iLCAxMSwgbmFtZSk7CkBAIC0xNjEzLDcgKzE2ODUsNyBAQAogCiAJZm9yIChybXAgPSAmcmVmX21hcDsgKnJtcDsgKSB7CiAJCWlmICgoKnJtcCktPnBlZXJfcmVmKSB7Ci0JCQlpZiAocHJlZml4Y21wKCgqcm1wKS0+cGVlcl9yZWYtPm5hbWUsICJyZWZzLyIpIHx8CisJCQlpZiAoIXN0YXJ0c193aXRoKCgqcm1wKS0+cGVlcl9yZWYtPm5hbWUsICJyZWZzLyIpIHx8CiAJCQkgICAgY2hlY2tfcmVmbmFtZV9mb3JtYXQoKCpybXApLT5wZWVyX3JlZi0+bmFtZSwgMCkpIHsKIAkJCQlzdHJ1Y3QgcmVmICppZ25vcmUgPSAqcm1wOwogCQkJCWVycm9yKCIqIElnbm9yaW5nIGZ1bm55IHJlZiAnJXMnIGxvY2FsbHkiLApAQCAtMTY5NSw3ICsxNzY3LDExIEBACiB9CiAKIC8qCi0gKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhbnl0aGluZyB0byByZXBvcnQsIG90aGVyd2lzZSBmYWxzZS4KKyAqIENvbXBhcmUgYSBicmFuY2ggd2l0aCBpdHMgdXBzdHJlYW0sIGFuZCBzYXZlIHRoZWlyIGRpZmZlcmVuY2VzIChudW1iZXIKKyAqIG9mIGNvbW1pdHMpIGluICpudW1fb3VycyBhbmQgKm51bV90aGVpcnMuCisgKgorICogUmV0dXJuIDAgaWYgYnJhbmNoIGhhcyBubyB1cHN0cmVhbSAobm8gYmFzZSksIC0xIGlmIHVwc3RyZWFtIGlzIG1pc3NpbmcKKyAqICh3aXRoICJnb25lIiBiYXNlKSwgb3RoZXJ3aXNlIDEgKHdpdGggYmFzZSkuCiAgKi8KIGludCBzdGF0X3RyYWNraW5nX2luZm8oc3RydWN0IGJyYW5jaCAqYnJhbmNoLCBpbnQgKm51bV9vdXJzLCBpbnQgKm51bV90aGVpcnMpCiB7CkBAIC0xNzA2LDM0ICsxNzgyLDMwIEBACiAJY29uc3QgY2hhciAqcmV2X2FyZ3ZbMTBdLCAqYmFzZTsKIAlpbnQgcmV2X2FyZ2M7CiAKLQkvKgotCSAqIE5vdGhpbmcgdG8gcmVwb3J0IHVubGVzcyB3ZSBhcmUgbWFya2VkIHRvIGJ1aWxkIG9uIHRvcCBvZgotCSAqIHNvbWVib2R5IGVsc2UuCi0JICovCisJLyogQ2Fubm90IHN0YXQgdW5sZXNzIHdlIGFyZSBtYXJrZWQgdG8gYnVpbGQgb24gdG9wIG9mIHNvbWVib2R5IGVsc2UuICovCiAJaWYgKCFicmFuY2ggfHwKIAkgICAgIWJyYW5jaC0+bWVyZ2UgfHwgIWJyYW5jaC0+bWVyZ2VbMF0gfHwgIWJyYW5jaC0+bWVyZ2VbMF0tPmRzdCkKIAkJcmV0dXJuIDA7CiAKLQkvKgotCSAqIElmIHdoYXQgd2UgdXNlZCB0byBidWlsZCBvbiBubyBsb25nZXIgZXhpc3RzLCB0aGVyZSBpcwotCSAqIG5vdGhpbmcgdG8gcmVwb3J0LgotCSAqLworCS8qIENhbm5vdCBzdGF0IGlmIHdoYXQgd2UgdXNlZCB0byBidWlsZCBvbiBubyBsb25nZXIgZXhpc3RzICovCiAJYmFzZSA9IGJyYW5jaC0+bWVyZ2VbMF0tPmRzdDsKIAlpZiAocmVhZF9yZWYoYmFzZSwgc2hhMSkpCi0JCXJldHVybiAwOworCQlyZXR1cm4gLTE7CiAJdGhlaXJzID0gbG9va3VwX2NvbW1pdF9yZWZlcmVuY2Uoc2hhMSk7CiAJaWYgKCF0aGVpcnMpCi0JCXJldHVybiAwOworCQlyZXR1cm4gLTE7CiAKIAlpZiAocmVhZF9yZWYoYnJhbmNoLT5yZWZuYW1lLCBzaGExKSkKLQkJcmV0dXJuIDA7CisJCXJldHVybiAtMTsKIAlvdXJzID0gbG9va3VwX2NvbW1pdF9yZWZlcmVuY2Uoc2hhMSk7CiAJaWYgKCFvdXJzKQotCQlyZXR1cm4gMDsKKwkJcmV0dXJuIC0xOwogCiAJLyogYXJlIHdlIHRoZSBzYW1lPyAqLwotCWlmICh0aGVpcnMgPT0gb3VycykKLQkJcmV0dXJuIDA7CisJaWYgKHRoZWlycyA9PSBvdXJzKSB7CisJCSpudW1fdGhlaXJzID0gKm51bV9vdXJzID0gMDsKKwkJcmV0dXJuIDE7CisJfQogCiAJLyogUnVuICJyZXYtbGlzdCAtLWxlZnQtcmlnaHQgb3Vycy4uLnRoZWlycyIgaW50ZXJuYWxseS4uLiAqLwogCXJldl9hcmdjID0gMDsKQEAgLTE3NzUsMzEgKzE4NDcsNTMgQEAKICAqLwogaW50IGZvcm1hdF90cmFja2luZ19pbmZvKHN0cnVjdCBicmFuY2ggKmJyYW5jaCwgc3RydWN0IHN0cmJ1ZiAqc2IpCiB7Ci0JaW50IG51bV9vdXJzLCBudW1fdGhlaXJzOworCWludCBvdXJzLCB0aGVpcnM7CiAJY29uc3QgY2hhciAqYmFzZTsKKwlpbnQgdXBzdHJlYW1faXNfZ29uZSA9IDA7CiAKLQlpZiAoIXN0YXRfdHJhY2tpbmdfaW5mbyhicmFuY2gsICZudW1fb3VycywgJm51bV90aGVpcnMpKQorCXN3aXRjaCAoc3RhdF90cmFja2luZ19pbmZvKGJyYW5jaCwgJm91cnMsICZ0aGVpcnMpKSB7CisJY2FzZSAwOgorCQkvKiBubyBiYXNlICovCiAJCXJldHVybiAwOworCWNhc2UgLTE6CisJCS8qIHdpdGggImdvbmUiIGJhc2UgKi8KKwkJdXBzdHJlYW1faXNfZ29uZSA9IDE7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCS8qIHdpdGggYmFzZSAqLworCQlicmVhazsKKwl9CiAKIAliYXNlID0gYnJhbmNoLT5tZXJnZVswXS0+ZHN0OwogCWJhc2UgPSBzaG9ydGVuX3VuYW1iaWd1b3VzX3JlZihiYXNlLCAwKTsKLQlpZiAoIW51bV90aGVpcnMpIHsKKwlpZiAodXBzdHJlYW1faXNfZ29uZSkgeworCQlzdHJidWZfYWRkZihzYiwKKwkJCV8oIllvdXIgYnJhbmNoIGlzIGJhc2VkIG9uICclcycsIGJ1dCB0aGUgdXBzdHJlYW0gaXMgZ29uZS5cbiIpLAorCQkJYmFzZSk7CisJCWlmIChhZHZpY2Vfc3RhdHVzX2hpbnRzKQorCQkJc3RyYnVmX2FkZGYoc2IsCisJCQkJXygiICAodXNlIFwiZ2l0IGJyYW5jaCAtLXVuc2V0LXVwc3RyZWFtXCIgdG8gZml4dXApXG4iKSk7CisJfSBlbHNlIGlmICghb3VycyAmJiAhdGhlaXJzKSB7CisJCXN0cmJ1Zl9hZGRmKHNiLAorCQkJXygiWW91ciBicmFuY2ggaXMgdXAtdG8tZGF0ZSB3aXRoICclcycuXG4iKSwKKwkJCWJhc2UpOworCX0gZWxzZSBpZiAoIXRoZWlycykgewogCQlzdHJidWZfYWRkZihzYiwKIAkJCVFfKCJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdC5cbiIsCiAJCQkgICAiWW91ciBicmFuY2ggaXMgYWhlYWQgb2YgJyVzJyBieSAlZCBjb21taXRzLlxuIiwKLQkJCSAgIG51bV9vdXJzKSwKLQkJCWJhc2UsIG51bV9vdXJzKTsKKwkJCSAgIG91cnMpLAorCQkJYmFzZSwgb3Vycyk7CiAJCWlmIChhZHZpY2Vfc3RhdHVzX2hpbnRzKQogCQkJc3RyYnVmX2FkZGYoc2IsCiAJCQkJXygiICAodXNlIFwiZ2l0IHB1c2hcIiB0byBwdWJsaXNoIHlvdXIgbG9jYWwgY29tbWl0cylcbiIpKTsKLQl9IGVsc2UgaWYgKCFudW1fb3VycykgeworCX0gZWxzZSBpZiAoIW91cnMpIHsKIAkJc3RyYnVmX2FkZGYoc2IsCiAJCQlRXygiWW91ciBicmFuY2ggaXMgYmVoaW5kICclcycgYnkgJWQgY29tbWl0LCAiCiAJCQkgICAgICAgImFuZCBjYW4gYmUgZmFzdC1mb3J3YXJkZWQuXG4iLAogCQkJICAgIllvdXIgYnJhbmNoIGlzIGJlaGluZCAnJXMnIGJ5ICVkIGNvbW1pdHMsICIKIAkJCSAgICAgICAiYW5kIGNhbiBiZSBmYXN0LWZvcndhcmRlZC5cbiIsCi0JCQkgICBudW1fdGhlaXJzKSwKLQkJCWJhc2UsIG51bV90aGVpcnMpOworCQkJICAgdGhlaXJzKSwKKwkJCWJhc2UsIHRoZWlycyk7CiAJCWlmIChhZHZpY2Vfc3RhdHVzX2hpbnRzKQogCQkJc3RyYnVmX2FkZGYoc2IsCiAJCQkJXygiICAodXNlIFwiZ2l0IHB1bGxcIiB0byB1cGRhdGUgeW91ciBsb2NhbCBicmFuY2gpXG4iKSk7CkBAIC0xODExLDggKzE5MDUsOCBAQAogCQkJICAgIllvdXIgYnJhbmNoIGFuZCAnJXMnIGhhdmUgZGl2ZXJnZWQsXG4iCiAJCQkgICAgICAgImFuZCBoYXZlICVkIGFuZCAlZCBkaWZmZXJlbnQgY29tbWl0cyBlYWNoLCAiCiAJCQkgICAgICAgInJlc3BlY3RpdmVseS5cbiIsCi0JCQkgICBudW1fdGhlaXJzKSwKLQkJCWJhc2UsIG51bV9vdXJzLCBudW1fdGhlaXJzKTsKKwkJCSAgIHRoZWlycyksCisJCQliYXNlLCBvdXJzLCB0aGVpcnMpOwogCQlpZiAoYWR2aWNlX3N0YXR1c19oaW50cykKIAkJCXN0cmJ1Zl9hZGRmKHNiLAogCQkJCV8oIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gbWVyZ2UgdGhlIHJlbW90ZSBicmFuY2ggaW50byB5b3VycylcbiIpKTsKQEAgLTE4NzUsNyArMTk2OSw3IEBACiAJLyogTG9vayBmb3IgYW5vdGhlciByZWYgdGhhdCBwb2ludHMgdGhlcmUgKi8KIAlmb3IgKHIgPSByZWZzOyByOyByID0gci0+bmV4dCkgewogCQlpZiAociAhPSBoZWFkICYmCi0JCSAgICAhcHJlZml4Y21wKHItPm5hbWUsICJyZWZzL2hlYWRzLyIpICYmCisJCSAgICBzdGFydHNfd2l0aChyLT5uYW1lLCAicmVmcy9oZWFkcy8iKSAmJgogCQkgICAgIWhhc2hjbXAoci0+b2xkX3NoYTEsIGhlYWQtPm9sZF9zaGExKSkgewogCQkJKnRhaWwgPSBjb3B5X3JlZihyKTsKIAkJCXRhaWwgPSAmKCgqdGFpbCktPm5leHQpOwpAQCAtMTkzNiwzICsyMDMwLDEyMSBAQAogCXN0cmluZ19saXN0X2NsZWFyKCZyZWZfbmFtZXMsIDApOwogCXJldHVybiBzdGFsZV9yZWZzOwogfQorCisvKgorICogQ29tcGFyZS1hbmQtc3dhcAorICovCit2b2lkIGNsZWFyX2Nhc19vcHRpb24oc3RydWN0IHB1c2hfY2FzX29wdGlvbiAqY2FzKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGNhcy0+bnI7IGkrKykKKwkJZnJlZShjYXMtPmVudHJ5W2ldLnJlZm5hbWUpOworCWZyZWUoY2FzLT5lbnRyeSk7CisJbWVtc2V0KGNhcywgMCwgc2l6ZW9mKCpjYXMpKTsKK30KKworc3RhdGljIHN0cnVjdCBwdXNoX2NhcyAqYWRkX2Nhc19lbnRyeShzdHJ1Y3QgcHVzaF9jYXNfb3B0aW9uICpjYXMsCisJCQkJICAgICAgY29uc3QgY2hhciAqcmVmbmFtZSwKKwkJCQkgICAgICBzaXplX3QgcmVmbmFtZWxlbikKK3sKKwlzdHJ1Y3QgcHVzaF9jYXMgKmVudHJ5OworCUFMTE9DX0dST1coY2FzLT5lbnRyeSwgY2FzLT5uciArIDEsIGNhcy0+YWxsb2MpOworCWVudHJ5ID0gJmNhcy0+ZW50cnlbY2FzLT5ucisrXTsKKwltZW1zZXQoZW50cnksIDAsIHNpemVvZigqZW50cnkpKTsKKwllbnRyeS0+cmVmbmFtZSA9IHhtZW1kdXB6KHJlZm5hbWUsIHJlZm5hbWVsZW4pOworCXJldHVybiBlbnRyeTsKK30KKworaW50IHBhcnNlX3B1c2hfY2FzX29wdGlvbihzdHJ1Y3QgcHVzaF9jYXNfb3B0aW9uICpjYXMsIGNvbnN0IGNoYXIgKmFyZywgaW50IHVuc2V0KQoreworCWNvbnN0IGNoYXIgKmNvbG9uOworCXN0cnVjdCBwdXNoX2NhcyAqZW50cnk7CisKKwlpZiAodW5zZXQpIHsKKwkJLyogIi0tbm8tPG9wdGlvbj4iICovCisJCWNsZWFyX2Nhc19vcHRpb24oY2FzKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKCFhcmcpIHsKKwkJLyoganVzdCAiLS08b3B0aW9uPiIgKi8KKwkJY2FzLT51c2VfdHJhY2tpbmdfZm9yX3Jlc3QgPSAxOworCQlyZXR1cm4gMDsKKwl9CisKKwkvKiAiLS08b3B0aW9uPj1yZWZuYW1lIiBvciAiLS08b3B0aW9uPj1yZWZuYW1lOnZhbHVlIiAqLworCWNvbG9uID0gc3RyY2hybnVsKGFyZywgJzonKTsKKwllbnRyeSA9IGFkZF9jYXNfZW50cnkoY2FzLCBhcmcsIGNvbG9uIC0gYXJnKTsKKwlpZiAoISpjb2xvbikKKwkJZW50cnktPnVzZV90cmFja2luZyA9IDE7CisJZWxzZSBpZiAoZ2V0X3NoYTEoY29sb24gKyAxLCBlbnRyeS0+ZXhwZWN0KSkKKwkJcmV0dXJuIGVycm9yKCJjYW5ub3QgcGFyc2UgZXhwZWN0ZWQgb2JqZWN0IG5hbWUgJyVzJyIsIGNvbG9uICsgMSk7CisJcmV0dXJuIDA7Cit9CisKK2ludCBwYXJzZW9wdF9wdXNoX2Nhc19vcHRpb24oY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LCBjb25zdCBjaGFyICphcmcsIGludCB1bnNldCkKK3sKKwlyZXR1cm4gcGFyc2VfcHVzaF9jYXNfb3B0aW9uKG9wdC0+dmFsdWUsIGFyZywgdW5zZXQpOworfQorCitpbnQgaXNfZW1wdHlfY2FzKGNvbnN0IHN0cnVjdCBwdXNoX2Nhc19vcHRpb24gKmNhcykKK3sKKwlyZXR1cm4gIWNhcy0+dXNlX3RyYWNraW5nX2Zvcl9yZXN0ICYmICFjYXMtPm5yOworfQorCisvKgorICogTG9vayBhdCByZW1vdGUuZmV0Y2ggcmVmc3BlYyBhbmQgc2VlIGlmIHdlIGhhdmUgYSByZW1vdGUKKyAqIHRyYWNraW5nIGJyYW5jaCBmb3IgdGhlIHJlZm5hbWUgdGhlcmUuICBGaWxsIGl0cyBjdXJyZW50CisgKiB2YWx1ZSBpbiBzaGExW10uCisgKiBJZiB3ZSBjYW5ub3QgZG8gc28sIHJldHVybiBuZWdhdGl2ZSB0byBzaWduYWwgYW4gZXJyb3IuCisgKi8KK3N0YXRpYyBpbnQgcmVtb3RlX3RyYWNraW5nKHN0cnVjdCByZW1vdGUgKnJlbW90ZSwgY29uc3QgY2hhciAqcmVmbmFtZSwKKwkJCSAgIHVuc2lnbmVkIGNoYXIgc2hhMVsyMF0pCit7CisJY2hhciAqZHN0OworCisJZHN0ID0gYXBwbHlfcmVmc3BlY3MocmVtb3RlLT5mZXRjaCwgcmVtb3RlLT5mZXRjaF9yZWZzcGVjX25yLCByZWZuYW1lKTsKKwlpZiAoIWRzdCkKKwkJcmV0dXJuIC0xOyAvKiBubyB0cmFja2luZyByZWYgZm9yIHJlZm5hbWUgYXQgcmVtb3RlICovCisJaWYgKHJlYWRfcmVmKGRzdCwgc2hhMSkpCisJCXJldHVybiAtMTsgLyogd2Uga25vdyB3aGF0IHRoZSB0cmFja2luZyByZWYgaXMgYnV0IHdlIGNhbm5vdCByZWFkIGl0ICovCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGFwcGx5X2NhcyhzdHJ1Y3QgcHVzaF9jYXNfb3B0aW9uICpjYXMsCisJCSAgICAgIHN0cnVjdCByZW1vdGUgKnJlbW90ZSwKKwkJICAgICAgc3RydWN0IHJlZiAqcmVmKQoreworCWludCBpOworCisJLyogRmluZCBhbiBleHBsaWNpdCAtLTxvcHRpb24+PTxuYW1lPls6PHZhbHVlPl0gZW50cnkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgY2FzLT5ucjsgaSsrKSB7CisJCXN0cnVjdCBwdXNoX2NhcyAqZW50cnkgPSAmY2FzLT5lbnRyeVtpXTsKKwkJaWYgKCFyZWZuYW1lX21hdGNoKGVudHJ5LT5yZWZuYW1lLCByZWYtPm5hbWUpKQorCQkJY29udGludWU7CisJCXJlZi0+ZXhwZWN0X29sZF9zaGExID0gMTsKKwkJaWYgKCFlbnRyeS0+dXNlX3RyYWNraW5nKQorCQkJaGFzaGNweShyZWYtPm9sZF9zaGExX2V4cGVjdCwgY2FzLT5lbnRyeVtpXS5leHBlY3QpOworCQllbHNlIGlmIChyZW1vdGVfdHJhY2tpbmcocmVtb3RlLCByZWYtPm5hbWUsIHJlZi0+b2xkX3NoYTFfZXhwZWN0KSkKKwkJCXJlZi0+ZXhwZWN0X29sZF9ub190cmFja2JhY2sgPSAxOworCQlyZXR1cm47CisJfQorCisJLyogQXJlIHdlIHVzaW5nICItLTxvcHRpb24+IiB0byBjb3ZlciBhbGw/ICovCisJaWYgKCFjYXMtPnVzZV90cmFja2luZ19mb3JfcmVzdCkKKwkJcmV0dXJuOworCisJcmVmLT5leHBlY3Rfb2xkX3NoYTEgPSAxOworCWlmIChyZW1vdGVfdHJhY2tpbmcocmVtb3RlLCByZWYtPm5hbWUsIHJlZi0+b2xkX3NoYTFfZXhwZWN0KSkKKwkJcmVmLT5leHBlY3Rfb2xkX25vX3RyYWNrYmFjayA9IDE7Cit9CisKK3ZvaWQgYXBwbHlfcHVzaF9jYXMoc3RydWN0IHB1c2hfY2FzX29wdGlvbiAqY2FzLAorCQkgICAgc3RydWN0IHJlbW90ZSAqcmVtb3RlLAorCQkgICAgc3RydWN0IHJlZiAqcmVtb3RlX3JlZnMpCit7CisJc3RydWN0IHJlZiAqcmVmOworCWZvciAocmVmID0gcmVtb3RlX3JlZnM7IHJlZjsgcmVmID0gcmVmLT5uZXh0KQorCQlhcHBseV9jYXMoY2FzLCByZW1vdGUsIHJlZik7Cit9CmRpZmYgLS1naXQgYS9yZW1vdGUuaCBiL3JlbW90ZS5oCmluZGV4IGNmNTY3MjQuLmZiNzY0N2YgMTAwNjQ0Ci0tLSBhL3JlbW90ZS5oCisrKyBiL3JlbW90ZS5oCkBAIC0xLDYgKzEsOCBAQAogI2lmbmRlZiBSRU1PVEVfSAogI2RlZmluZSBSRU1PVEVfSAogCisjaW5jbHVkZSAicGFyc2Utb3B0aW9ucy5oIgorCiBlbnVtIHsKIAlSRU1PVEVfQ09ORklHLAogCVJFTU9URV9SRU1PVEVTLApAQCAtNDAsNiArNDIsNyBAQAogCWludCBmZXRjaF90YWdzOwogCWludCBza2lwX2RlZmF1bHRfdXBkYXRlOwogCWludCBtaXJyb3I7CisJaW50IHBydW5lOwogCiAJY29uc3QgY2hhciAqcmVjZWl2ZXBhY2s7CiAJY29uc3QgY2hhciAqdXBsb2FkcGFjazsKQEAgLTcxLDEwICs3NCw2MiBAQAogCiBleHRlcm4gY29uc3Qgc3RydWN0IHJlZnNwZWMgKnRhZ19yZWZzcGVjOwogCitzdHJ1Y3QgcmVmIHsKKwlzdHJ1Y3QgcmVmICpuZXh0OworCXVuc2lnbmVkIGNoYXIgb2xkX3NoYTFbMjBdOworCXVuc2lnbmVkIGNoYXIgbmV3X3NoYTFbMjBdOworCXVuc2lnbmVkIGNoYXIgb2xkX3NoYTFfZXhwZWN0WzIwXTsgLyogdXNlZCBieSBleHBlY3Qtb2xkICovCisJY2hhciAqc3ltcmVmOworCXVuc2lnbmVkIGludAorCQlmb3JjZToxLAorCQlmb3JjZWRfdXBkYXRlOjEsCisJCWV4cGVjdF9vbGRfc2hhMToxLAorCQlleHBlY3Rfb2xkX25vX3RyYWNrYmFjazoxLAorCQlkZWxldGlvbjoxLAorCQltYXRjaGVkOjE7CisKKwkvKgorCSAqIE9yZGVyIGlzIGltcG9ydGFudCBoZXJlLCBhcyB3ZSB3cml0ZSB0byBGRVRDSF9IRUFECisJICogaW4gbnVtZXJpYyBvcmRlci4gQW5kIHRoZSBkZWZhdWx0IE5PVF9GT1JfTUVSR0UKKwkgKiBzaG91bGQgYmUgMCwgc28gdGhhdCB4Y2FsbG9jJ2Qgc3RydWN0dXJlcyBnZXQgaXQKKwkgKiBieSBkZWZhdWx0LgorCSAqLworCWVudW0geworCQlGRVRDSF9IRUFEX01FUkdFID0gLTEsCisJCUZFVENIX0hFQURfTk9UX0ZPUl9NRVJHRSA9IDAsCisJCUZFVENIX0hFQURfSUdOT1JFID0gMQorCX0gZmV0Y2hfaGVhZF9zdGF0dXM7CisKKwllbnVtIHsKKwkJUkVGX1NUQVRVU19OT05FID0gMCwKKwkJUkVGX1NUQVRVU19PSywKKwkJUkVGX1NUQVRVU19SRUpFQ1RfTk9ORkFTVEZPUldBUkQsCisJCVJFRl9TVEFUVVNfUkVKRUNUX0FMUkVBRFlfRVhJU1RTLAorCQlSRUZfU1RBVFVTX1JFSkVDVF9OT0RFTEVURSwKKwkJUkVGX1NUQVRVU19SRUpFQ1RfRkVUQ0hfRklSU1QsCisJCVJFRl9TVEFUVVNfUkVKRUNUX05FRURTX0ZPUkNFLAorCQlSRUZfU1RBVFVTX1JFSkVDVF9TVEFMRSwKKwkJUkVGX1NUQVRVU19SRUpFQ1RfU0hBTExPVywKKwkJUkVGX1NUQVRVU19VUFRPREFURSwKKwkJUkVGX1NUQVRVU19SRU1PVEVfUkVKRUNULAorCQlSRUZfU1RBVFVTX0VYUEVDVElOR19SRVBPUlQKKwl9IHN0YXR1czsKKwljaGFyICpyZW1vdGVfc3RhdHVzOworCXN0cnVjdCByZWYgKnBlZXJfcmVmOyAvKiB3aGVuIHJlbmFtaW5nICovCisJY2hhciBuYW1lW0ZMRVhfQVJSQVldOyAvKiBtb3JlICovCit9OworCisjZGVmaW5lIFJFRl9OT1JNQUwJKDF1IDw8IDApCisjZGVmaW5lIFJFRl9IRUFEUwkoMXUgPDwgMSkKKyNkZWZpbmUgUkVGX1RBR1MJKDF1IDw8IDIpCisKK2V4dGVybiBzdHJ1Y3QgcmVmICpmaW5kX3JlZl9ieV9uYW1lKGNvbnN0IHN0cnVjdCByZWYgKmxpc3QsIGNvbnN0IGNoYXIgKm5hbWUpOworCiBzdHJ1Y3QgcmVmICphbGxvY19yZWYoY29uc3QgY2hhciAqbmFtZSk7CiBzdHJ1Y3QgcmVmICpjb3B5X3JlZihjb25zdCBzdHJ1Y3QgcmVmICpyZWYpOwogc3RydWN0IHJlZiAqY29weV9yZWZfbGlzdChjb25zdCBzdHJ1Y3QgcmVmICpyZWYpOwogdm9pZCBzb3J0X3JlZl9saXN0KHN0cnVjdCByZWYgKiosIGludCAoKmNtcCkoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopKTsKK2V4dGVybiBpbnQgY291bnRfcmVmc3BlY19tYXRjaChjb25zdCBjaGFyICosIHN0cnVjdCByZWYgKnJlZnMsIHN0cnVjdCByZWYgKiptYXRjaGVkX3JlZik7CiBpbnQgcmVmX2NvbXBhcmVfbmFtZShjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKik7CiAKIGludCBjaGVja19yZWZfdHlwZShjb25zdCBzdHJ1Y3QgcmVmICpyZWYsIGludCBmbGFncyk7CkBAIC04NCwxOSArMTM5LDMwIEBACiAgKi8KIHZvaWQgZnJlZV9yZWZzKHN0cnVjdCByZWYgKnJlZik7CiAKK3N0cnVjdCBzaGExX2FycmF5OworZXh0ZXJuIHN0cnVjdCByZWYgKipnZXRfcmVtb3RlX2hlYWRzKGludCBpbiwgY2hhciAqc3JjX2J1Ziwgc2l6ZV90IHNyY19sZW4sCisJCQkJICAgICBzdHJ1Y3QgcmVmICoqbGlzdCwgdW5zaWduZWQgaW50IGZsYWdzLAorCQkJCSAgICAgc3RydWN0IHNoYTFfYXJyYXkgKmV4dHJhX2hhdmUsCisJCQkJICAgICBzdHJ1Y3Qgc2hhMV9hcnJheSAqc2hhbGxvdyk7CisKIGludCByZXNvbHZlX3JlbW90ZV9zeW1yZWYoc3RydWN0IHJlZiAqcmVmLCBzdHJ1Y3QgcmVmICpsaXN0KTsKIGludCByZWZfbmV3ZXIoY29uc3QgdW5zaWduZWQgY2hhciAqbmV3X3NoYTEsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm9sZF9zaGExKTsKIAogLyoKLSAqIFJlbW92ZXMgYW5kIGZyZWVzIGFueSBkdXBsaWNhdGUgcmVmcyBpbiB0aGUgbWFwLgorICogUmVtb3ZlIGFuZCBmcmVlIGFsbCBidXQgdGhlIGZpcnN0IG9mIGFueSBlbnRyaWVzIGluIHRoZSBpbnB1dCBsaXN0CisgKiB0aGF0IG1hcCB0aGUgc2FtZSByZW1vdGUgcmVmZXJlbmNlIHRvIHRoZSBzYW1lIGxvY2FsIHJlZmVyZW5jZS4gIElmCisgKiB0aGVyZSBhcmUgdHdvIGVudHJpZXMgdGhhdCBtYXAgZGlmZmVyZW50IHJlbW90ZSByZWZlcmVuY2VzIHRvIHRoZQorICogc2FtZSBsb2NhbCByZWZlcmVuY2UsIGVtaXQgYW4gZXJyb3IgbWVzc2FnZSBhbmQgZGllLiAgUmV0dXJuIGEKKyAqIHBvaW50ZXIgdG8gdGhlIGhlYWQgb2YgdGhlIHJlc3VsdGluZyBsaXN0LgogICovCi12b2lkIHJlZl9yZW1vdmVfZHVwbGljYXRlcyhzdHJ1Y3QgcmVmICpyZWZfbWFwKTsKK3N0cnVjdCByZWYgKnJlZl9yZW1vdmVfZHVwbGljYXRlcyhzdHJ1Y3QgcmVmICpyZWZfbWFwKTsKIAogaW50IHZhbGlkX2ZldGNoX3JlZnNwZWMoY29uc3QgY2hhciAqcmVmc3BlYyk7CiBzdHJ1Y3QgcmVmc3BlYyAqcGFyc2VfZmV0Y2hfcmVmc3BlYyhpbnQgbnJfcmVmc3BlYywgY29uc3QgY2hhciAqKnJlZnNwZWMpOwogCiB2b2lkIGZyZWVfcmVmc3BlYyhpbnQgbnJfcmVmc3BlYywgc3RydWN0IHJlZnNwZWMgKnJlZnNwZWMpOwogCitleHRlcm4gaW50IHF1ZXJ5X3JlZnNwZWNzKHN0cnVjdCByZWZzcGVjICpzcGVjcywgaW50IG5yLCBzdHJ1Y3QgcmVmc3BlYyAqcXVlcnkpOwogY2hhciAqYXBwbHlfcmVmc3BlY3Moc3RydWN0IHJlZnNwZWMgKnJlZnNwZWNzLCBpbnQgbnJfcmVmc3BlYywKIAkJICAgICBjb25zdCBjaGFyICpuYW1lKTsKIApAQCAtMTcyLDQgKzIzOCwyNyBAQAogLyogUmV0dXJuIHJlZnMgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0IG9uIHJlbW90ZSAqLwogc3RydWN0IHJlZiAqZ2V0X3N0YWxlX2hlYWRzKHN0cnVjdCByZWZzcGVjICpyZWZzLCBpbnQgcmVmX2NvdW50LCBzdHJ1Y3QgcmVmICpmZXRjaF9tYXApOwogCisvKgorICogQ29tcGFyZS1hbmQtc3dhcAorICovCisjZGVmaW5lIENBU19PUFRfTkFNRSAiZm9yY2Utd2l0aC1sZWFzZSIKKworc3RydWN0IHB1c2hfY2FzX29wdGlvbiB7CisJdW5zaWduZWQgdXNlX3RyYWNraW5nX2Zvcl9yZXN0OjE7CisJc3RydWN0IHB1c2hfY2FzIHsKKwkJdW5zaWduZWQgY2hhciBleHBlY3RbMjBdOworCQl1bnNpZ25lZCB1c2VfdHJhY2tpbmc6MTsKKwkJY2hhciAqcmVmbmFtZTsKKwl9ICplbnRyeTsKKwlpbnQgbnI7CisJaW50IGFsbG9jOworfTsKKworZXh0ZXJuIGludCBwYXJzZW9wdF9wdXNoX2Nhc19vcHRpb24oY29uc3Qgc3RydWN0IG9wdGlvbiAqLCBjb25zdCBjaGFyICphcmcsIGludCB1bnNldCk7CitleHRlcm4gaW50IHBhcnNlX3B1c2hfY2FzX29wdGlvbihzdHJ1Y3QgcHVzaF9jYXNfb3B0aW9uICosIGNvbnN0IGNoYXIgKmFyZywgaW50IHVuc2V0KTsKK2V4dGVybiB2b2lkIGNsZWFyX2Nhc19vcHRpb24oc3RydWN0IHB1c2hfY2FzX29wdGlvbiAqKTsKKworZXh0ZXJuIGludCBpc19lbXB0eV9jYXMoY29uc3Qgc3RydWN0IHB1c2hfY2FzX29wdGlvbiAqKTsKK3ZvaWQgYXBwbHlfcHVzaF9jYXMoc3RydWN0IHB1c2hfY2FzX29wdGlvbiAqLCBzdHJ1Y3QgcmVtb3RlICosIHN0cnVjdCByZWYgKik7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvcmVwbGFjZV9vYmplY3QuYyBiL3JlcGxhY2Vfb2JqZWN0LmMKaW5kZXggZDBiMTU0OC4uY2RjYWY4YyAxMDA2NDQKLS0tIGEvcmVwbGFjZV9vYmplY3QuYworKysgYi9yZXBsYWNlX29iamVjdC5jCkBAIC05Nyw5ICs5Nyw2IEBACiAJaW50IHBvcywgZGVwdGggPSBNQVhSRVBMQUNFREVQVEg7CiAJY29uc3QgdW5zaWduZWQgY2hhciAqY3VyID0gc2hhMTsKIAotCWlmICghcmVhZF9yZXBsYWNlX3JlZnMpCi0JCXJldHVybiBzaGExOwotCiAJcHJlcGFyZV9yZXBsYWNlX29iamVjdCgpOwogCiAJLyogVHJ5IHRvIHJlY3Vyc2l2ZWx5IHJlcGxhY2UgdGhlIG9iamVjdCAqLwpkaWZmIC0tZ2l0IGEvcmVyZXJlLmMgYi9yZXJlcmUuYwppbmRleCA2ZmRlOGY5Li4xZjJkMjFhIDEwMDY0NAotLS0gYS9yZXJlcmUuYworKysgYi9yZXJlcmUuYwpAQCAtNiw2ICs2LDcgQEAKICNpbmNsdWRlICJyZXNvbHZlLXVuZG8uaCIKICNpbmNsdWRlICJsbC1tZXJnZS5oIgogI2luY2x1ZGUgImF0dHIuaCIKKyNpbmNsdWRlICJwYXRoc3BlYy5oIgogCiAjZGVmaW5lIFJFU09MVkVEIDAKICNkZWZpbmUgUFVOVEVEIDEKQEAgLTY1Niw3ICs2NTcsNyBAQAogCXJldHVybiAwOwogfQogCi1pbnQgcmVyZXJlX2ZvcmdldChjb25zdCBjaGFyICoqcGF0aHNwZWMpCitpbnQgcmVyZXJlX2ZvcmdldChzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjKQogewogCWludCBpLCBmZDsKIAlzdHJ1Y3Qgc3RyaW5nX2xpc3QgY29uZmxpY3QgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKQEAgLTY3MSw4ICs2NzIsOCBAQAogCWZpbmRfY29uZmxpY3QoJmNvbmZsaWN0KTsKIAlmb3IgKGkgPSAwOyBpIDwgY29uZmxpY3QubnI7IGkrKykgewogCQlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXQgPSAmY29uZmxpY3QuaXRlbXNbaV07Ci0JCWlmICghbWF0Y2hfcGF0aHNwZWMocGF0aHNwZWMsIGl0LT5zdHJpbmcsIHN0cmxlbihpdC0+c3RyaW5nKSwKLQkJCQkgICAgMCwgTlVMTCkpCisJCWlmICghbWF0Y2hfcGF0aHNwZWNfZGVwdGgocGF0aHNwZWMsIGl0LT5zdHJpbmcsIHN0cmxlbihpdC0+c3RyaW5nKSwKKwkJCQkJICAwLCBOVUxMKSkKIAkJCWNvbnRpbnVlOwogCQlyZXJlcmVfZm9yZ2V0X29uZV9wYXRoKGl0LT5zdHJpbmcsICZtZXJnZV9ycik7CiAJfQpkaWZmIC0tZ2l0IGEvcmVyZXJlLmggYi9yZXJlcmUuaAppbmRleCAxNTZkMmFhLi40YWEwNmM5IDEwMDY0NAotLS0gYS9yZXJlcmUuaAorKysgYi9yZXJlcmUuaApAQCAtMyw2ICszLDggQEAKIAogI2luY2x1ZGUgInN0cmluZy1saXN0LmgiCiAKK3N0cnVjdCBwYXRoc3BlYzsKKwogI2RlZmluZSBSRVJFUkVfQVVUT1VQREFURSAgIDAxCiAjZGVmaW5lIFJFUkVSRV9OT0FVVE9VUERBVEUgMDIKIApAQCAtMTYsNyArMTgsNyBAQAogZXh0ZXJuIGludCBzZXR1cF9yZXJlcmUoc3RydWN0IHN0cmluZ19saXN0ICosIGludCk7CiBleHRlcm4gaW50IHJlcmVyZShpbnQpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKnJlcmVyZV9wYXRoKGNvbnN0IGNoYXIgKmhleCwgY29uc3QgY2hhciAqZmlsZSk7Ci1leHRlcm4gaW50IHJlcmVyZV9mb3JnZXQoY29uc3QgY2hhciAqKik7CitleHRlcm4gaW50IHJlcmVyZV9mb3JnZXQoc3RydWN0IHBhdGhzcGVjICopOwogZXh0ZXJuIGludCByZXJlcmVfcmVtYWluaW5nKHN0cnVjdCBzdHJpbmdfbGlzdCAqKTsKIGV4dGVybiB2b2lkIHJlcmVyZV9jbGVhcihzdHJ1Y3Qgc3RyaW5nX2xpc3QgKik7CiBleHRlcm4gdm9pZCByZXJlcmVfZ2Moc3RydWN0IHN0cmluZ19saXN0ICopOwpkaWZmIC0tZ2l0IGEvcmVzb2x2ZS11bmRvLmMgYi9yZXNvbHZlLXVuZG8uYwppbmRleCA3NzEwMWY1Li5jMDliMDA2IDEwMDY0NAotLS0gYS9yZXNvbHZlLXVuZG8uYworKysgYi9yZXNvbHZlLXVuZG8uYwpAQCAtMTczLDcgKzE3Myw3IEBACiAJfQogfQogCi12b2lkIHVubWVyZ2VfaW5kZXgoc3RydWN0IGluZGV4X3N0YXRlICppc3RhdGUsIGNvbnN0IGNoYXIgKipwYXRoc3BlYykKK3ZvaWQgdW5tZXJnZV9pbmRleChzdHJ1Y3QgaW5kZXhfc3RhdGUgKmlzdGF0ZSwgY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYykKIHsKIAlpbnQgaTsKIApAQCAtMTgyLDcgKzE4Miw3IEBACiAKIAlmb3IgKGkgPSAwOyBpIDwgaXN0YXRlLT5jYWNoZV9ucjsgaSsrKSB7CiAJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBpc3RhdGUtPmNhY2hlW2ldOwotCQlpZiAoIW1hdGNoX3BhdGhzcGVjKHBhdGhzcGVjLCBjZS0+bmFtZSwgY2VfbmFtZWxlbihjZSksIDAsIE5VTEwpKQorCQlpZiAoIW1hdGNoX3BhdGhzcGVjX2RlcHRoKHBhdGhzcGVjLCBjZS0+bmFtZSwgY2VfbmFtZWxlbihjZSksIDAsIE5VTEwpKQogCQkJY29udGludWU7CiAJCWkgPSB1bm1lcmdlX2luZGV4X2VudHJ5X2F0KGlzdGF0ZSwgaSk7CiAJfQpkaWZmIC0tZ2l0IGEvcmVzb2x2ZS11bmRvLmggYi9yZXNvbHZlLXVuZG8uaAppbmRleCA3YTMwMjA2Li40NjMwNjQ1IDEwMDY0NAotLS0gYS9yZXNvbHZlLXVuZG8uaAorKysgYi9yZXNvbHZlLXVuZG8uaApAQCAtMTEsNyArMTEsNyBAQAogZXh0ZXJuIHN0cnVjdCBzdHJpbmdfbGlzdCAqcmVzb2x2ZV91bmRvX3JlYWQoY29uc3QgY2hhciAqLCB1bnNpZ25lZCBsb25nKTsKIGV4dGVybiB2b2lkIHJlc29sdmVfdW5kb19jbGVhcl9pbmRleChzdHJ1Y3QgaW5kZXhfc3RhdGUgKik7CiBleHRlcm4gaW50IHVubWVyZ2VfaW5kZXhfZW50cnlfYXQoc3RydWN0IGluZGV4X3N0YXRlICosIGludCk7Ci1leHRlcm4gdm9pZCB1bm1lcmdlX2luZGV4KHN0cnVjdCBpbmRleF9zdGF0ZSAqLCBjb25zdCBjaGFyICoqKTsKK2V4dGVybiB2b2lkIHVubWVyZ2VfaW5kZXgoc3RydWN0IGluZGV4X3N0YXRlICosIGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqKTsKIGV4dGVybiB2b2lkIHVubWVyZ2VfbWFya2VkX2luZGV4KHN0cnVjdCBpbmRleF9zdGF0ZSAqKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9yZXZpc2lvbi5jIGIvcmV2aXNpb24uYwppbmRleCBmODJiODMzLi5hMGRmNzJmIDEwMDY0NAotLS0gYS9yZXZpc2lvbi5jCisrKyBiL3JldmlzaW9uLmMKQEAgLTEwNCwxNyArMTA0LDEyIEBACiAJYmxvYi0+b2JqZWN0LmZsYWdzIHw9IFVOSU5URVJFU1RJTkc7CiB9CiAKLXZvaWQgbWFya190cmVlX3VuaW50ZXJlc3Rpbmcoc3RydWN0IHRyZWUgKnRyZWUpCitzdGF0aWMgdm9pZCBtYXJrX3RyZWVfY29udGVudHNfdW5pbnRlcmVzdGluZyhzdHJ1Y3QgdHJlZSAqdHJlZSkKIHsKIAlzdHJ1Y3QgdHJlZV9kZXNjIGRlc2M7CiAJc3RydWN0IG5hbWVfZW50cnkgZW50cnk7CiAJc3RydWN0IG9iamVjdCAqb2JqID0gJnRyZWUtPm9iamVjdDsKIAotCWlmICghdHJlZSkKLQkJcmV0dXJuOwotCWlmIChvYmotPmZsYWdzICYgVU5JTlRFUkVTVElORykKLQkJcmV0dXJuOwotCW9iai0+ZmxhZ3MgfD0gVU5JTlRFUkVTVElORzsKIAlpZiAoIWhhc19zaGExX2ZpbGUob2JqLT5zaGExKSkKIAkJcmV0dXJuOwogCWlmIChwYXJzZV90cmVlKHRyZWUpIDwgMCkKQEAgLTEzOSw4ICsxMzQsMTkgQEAKIAkgKiBXZSBkb24ndCBjYXJlIGFib3V0IHRoZSB0cmVlIGFueSBtb3JlCiAJICogYWZ0ZXIgaXQgaGFzIGJlZW4gbWFya2VkIHVuaW50ZXJlc3RpbmcuCiAJICovCi0JZnJlZSh0cmVlLT5idWZmZXIpOwotCXRyZWUtPmJ1ZmZlciA9IE5VTEw7CisJZnJlZV90cmVlX2J1ZmZlcih0cmVlKTsKK30KKwordm9pZCBtYXJrX3RyZWVfdW5pbnRlcmVzdGluZyhzdHJ1Y3QgdHJlZSAqdHJlZSkKK3sKKwlzdHJ1Y3Qgb2JqZWN0ICpvYmogPSAmdHJlZS0+b2JqZWN0OworCisJaWYgKCF0cmVlKQorCQlyZXR1cm47CisJaWYgKG9iai0+ZmxhZ3MgJiBVTklOVEVSRVNUSU5HKQorCQlyZXR1cm47CisJb2JqLT5mbGFncyB8PSBVTklOVEVSRVNUSU5HOworCW1hcmtfdHJlZV9jb250ZW50c191bmludGVyZXN0aW5nKHRyZWUpOwogfQogCiB2b2lkIG1hcmtfcGFyZW50c191bmludGVyZXN0aW5nKHN0cnVjdCBjb21taXQgKmNvbW1pdCkKQEAgLTIwMSw3ICsyMDcsNyBAQAogCQlyZXZzLT5ub193YWxrID0gMDsKIAlpZiAocmV2cy0+cmVmbG9nX2luZm8gJiYgb2JqLT50eXBlID09IE9CSl9DT01NSVQpIHsKIAkJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKLQkJaW50IGxlbiA9IGludGVycHJldF9icmFuY2hfbmFtZShuYW1lLCAmYnVmKTsKKwkJaW50IGxlbiA9IGludGVycHJldF9icmFuY2hfbmFtZShuYW1lLCAwLCAmYnVmKTsKIAkJaW50IHN0OwogCiAJCWlmICgwIDwgbGVuICYmIG5hbWVbbGVuXSAmJiBidWYubGVuKQpAQCAtMjc3LDYgKzI4Myw3IEBACiAJCQkJcmV0dXJuIE5VTEw7CiAJCQlkaWUoImJhZCBvYmplY3QgJXMiLCBzaGExX3RvX2hleCh0YWctPnRhZ2dlZC0+c2hhMSkpOwogCQl9CisJCW9iamVjdC0+ZmxhZ3MgfD0gZmxhZ3M7CiAJfQogCiAJLyoKQEAgLTI4OCw3ICsyOTUsNiBAQAogCQlpZiAocGFyc2VfY29tbWl0KGNvbW1pdCkgPCAwKQogCQkJZGllKCJ1bmFibGUgdG8gcGFyc2UgY29tbWl0ICVzIiwgbmFtZSk7CiAJCWlmIChmbGFncyAmIFVOSU5URVJFU1RJTkcpIHsKLQkJCWNvbW1pdC0+b2JqZWN0LmZsYWdzIHw9IFVOSU5URVJFU1RJTkc7CiAJCQltYXJrX3BhcmVudHNfdW5pbnRlcmVzdGluZyhjb21taXQpOwogCQkJcmV2cy0+bGltaXRlZCA9IDE7CiAJCX0KQEAgLTMwNiw3ICszMTIsNyBAQAogCQlpZiAoIXJldnMtPnRyZWVfb2JqZWN0cykKIAkJCXJldHVybiBOVUxMOwogCQlpZiAoZmxhZ3MgJiBVTklOVEVSRVNUSU5HKSB7Ci0JCQltYXJrX3RyZWVfdW5pbnRlcmVzdGluZyh0cmVlKTsKKwkJCW1hcmtfdHJlZV9jb250ZW50c191bmludGVyZXN0aW5nKHRyZWUpOwogCQkJcmV0dXJuIE5VTEw7CiAJCX0KIAkJYWRkX3BlbmRpbmdfb2JqZWN0KHJldnMsIG9iamVjdCwgIiIpOwpAQCAtMzE3LDEzICszMjMsMTAgQEAKIAkgKiBCbG9iIG9iamVjdD8gWW91IGtub3cgdGhlIGRyaWxsIGJ5IG5vdy4uCiAJICovCiAJaWYgKG9iamVjdC0+dHlwZSA9PSBPQkpfQkxPQikgewotCQlzdHJ1Y3QgYmxvYiAqYmxvYiA9IChzdHJ1Y3QgYmxvYiAqKW9iamVjdDsKIAkJaWYgKCFyZXZzLT5ibG9iX29iamVjdHMpCiAJCQlyZXR1cm4gTlVMTDsKLQkJaWYgKGZsYWdzICYgVU5JTlRFUkVTVElORykgewotCQkJbWFya19ibG9iX3VuaW50ZXJlc3RpbmcoYmxvYik7CisJCWlmIChmbGFncyAmIFVOSU5URVJFU1RJTkcpCiAJCQlyZXR1cm4gTlVMTDsKLQkJfQogCQlhZGRfcGVuZGluZ19vYmplY3QocmV2cywgb2JqZWN0LCAiIik7CiAJCXJldHVybiBOVUxMOwogCX0KQEAgLTExODEsMTEgKzExODQsMjggQEAKIAljb25zdCBjaGFyICpuYW1lX2Zvcl9lcnJvcm1zZzsKIH07CiAKK2ludCByZWZfZXhjbHVkZWQoc3RydWN0IHN0cmluZ19saXN0ICpyZWZfZXhjbHVkZXMsIGNvbnN0IGNoYXIgKnBhdGgpCit7CisJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW07CisKKwlpZiAoIXJlZl9leGNsdWRlcykKKwkJcmV0dXJuIDA7CisJZm9yX2VhY2hfc3RyaW5nX2xpc3RfaXRlbShpdGVtLCByZWZfZXhjbHVkZXMpIHsKKwkJaWYgKCFmbm1hdGNoKGl0ZW0tPnN0cmluZywgcGF0aCwgMCkpCisJCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgaGFuZGxlX29uZV9yZWYoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IGZsYWcsIHZvaWQgKmNiX2RhdGEpCiB7CiAJc3RydWN0IGFsbF9yZWZzX2NiICpjYiA9IGNiX2RhdGE7Ci0Jc3RydWN0IG9iamVjdCAqb2JqZWN0ID0gZ2V0X3JlZmVyZW5jZShjYi0+YWxsX3JldnMsIHBhdGgsIHNoYTEsCi0JCQkJCSAgICAgIGNiLT5hbGxfZmxhZ3MpOworCXN0cnVjdCBvYmplY3QgKm9iamVjdDsKKworCWlmIChyZWZfZXhjbHVkZWQoY2ItPmFsbF9yZXZzLT5yZWZfZXhjbHVkZXMsIHBhdGgpKQorCSAgICByZXR1cm4gMDsKKworCW9iamVjdCA9IGdldF9yZWZlcmVuY2UoY2ItPmFsbF9yZXZzLCBwYXRoLCBzaGExLCBjYi0+YWxsX2ZsYWdzKTsKIAlhZGRfcmV2X2NtZGxpbmUoY2ItPmFsbF9yZXZzLCBvYmplY3QsIHBhdGgsIFJFVl9DTURfUkVGLCBjYi0+YWxsX2ZsYWdzKTsKIAlhZGRfcGVuZGluZ19zaGExKGNiLT5hbGxfcmV2cywgcGF0aCwgc2hhMSwgY2ItPmFsbF9mbGFncyk7CiAJcmV0dXJuIDA7CkBAIC0xMTk4LDYgKzEyMTgsMjQgQEAKIAljYi0+YWxsX2ZsYWdzID0gZmxhZ3M7CiB9CiAKK3ZvaWQgY2xlYXJfcmVmX2V4Y2x1c2lvbihzdHJ1Y3Qgc3RyaW5nX2xpc3QgKipyZWZfZXhjbHVkZXNfcCkKK3sKKwlpZiAoKnJlZl9leGNsdWRlc19wKSB7CisJCXN0cmluZ19saXN0X2NsZWFyKCpyZWZfZXhjbHVkZXNfcCwgMCk7CisJCWZyZWUoKnJlZl9leGNsdWRlc19wKTsKKwl9CisJKnJlZl9leGNsdWRlc19wID0gTlVMTDsKK30KKwordm9pZCBhZGRfcmVmX2V4Y2x1c2lvbihzdHJ1Y3Qgc3RyaW5nX2xpc3QgKipyZWZfZXhjbHVkZXNfcCwgY29uc3QgY2hhciAqZXhjbHVkZSkKK3sKKwlpZiAoISpyZWZfZXhjbHVkZXNfcCkgeworCQkqcmVmX2V4Y2x1ZGVzX3AgPSB4Y2FsbG9jKDEsIHNpemVvZigqKnJlZl9leGNsdWRlc19wKSk7CisJCSgqcmVmX2V4Y2x1ZGVzX3ApLT5zdHJkdXBfc3RyaW5ncyA9IDE7CisJfQorCXN0cmluZ19saXN0X2FwcGVuZCgqcmVmX2V4Y2x1ZGVzX3AsIGV4Y2x1ZGUpOworfQorCiBzdGF0aWMgdm9pZCBoYW5kbGVfcmVmcyhjb25zdCBjaGFyICpzdWJtb2R1bGUsIHN0cnVjdCByZXZfaW5mbyAqcmV2cywgdW5zaWduZWQgZmxhZ3MsCiAJCWludCAoKmZvcl9lYWNoKShjb25zdCBjaGFyICosIGVhY2hfcmVmX2ZuLCB2b2lkICopKQogewpAQCAtMTM3Myw3ICsxNDExLDggQEAKIAkJCWkrKzsKIAl9CiAJZnJlZV9wYXRoc3BlYygmcmV2cy0+cHJ1bmVfZGF0YSk7Ci0JaW5pdF9wYXRoc3BlYygmcmV2cy0+cHJ1bmVfZGF0YSwgcHJ1bmUpOworCXBhcnNlX3BhdGhzcGVjKCZyZXZzLT5wcnVuZV9kYXRhLCBQQVRIU1BFQ19BTExfTUFHSUMgJiB+UEFUSFNQRUNfTElURVJBTCwKKwkJICAgICAgIFBBVEhTUEVDX1BSRUZFUl9GVUxMIHwgUEFUSFNQRUNfTElURVJBTF9QQVRILCAiIiwgcHJ1bmUpOwogCXJldnMtPmxpbWl0ZWQgPSAxOwogfQogCkBAIC0xNTE5LDcgKzE1NTgsNyBAQAogc3RhdGljIHZvaWQgYXBwZW5kX3BydW5lX2RhdGEoc3RydWN0IGNtZGxpbmVfcGF0aHNwZWMgKnBydW5lLCBjb25zdCBjaGFyICoqYXYpCiB7CiAJd2hpbGUgKCphdikgewotCQlBTExPQ19HUk9XKHBydW5lLT5wYXRoLCBwcnVuZS0+bnIrMSwgcHJ1bmUtPmFsbG9jKTsKKwkJQUxMT0NfR1JPVyhwcnVuZS0+cGF0aCwgcHJ1bmUtPm5yICsgMSwgcHJ1bmUtPmFsbG9jKTsKIAkJcHJ1bmUtPnBhdGhbcHJ1bmUtPm5yKytdID0gKihhdisrKTsKIAl9CiB9CkBAIC0xNTMxLDcgKzE1NzAsNyBAQAogCQlpbnQgbGVuID0gc2ItPmxlbjsKIAkJaWYgKGxlbiAmJiBzYi0+YnVmW2xlbiAtIDFdID09ICdcbicpCiAJCQlzYi0+YnVmWy0tbGVuXSA9ICdcMCc7Ci0JCUFMTE9DX0dST1cocHJ1bmUtPnBhdGgsIHBydW5lLT5ucisxLCBwcnVuZS0+YWxsb2MpOworCQlBTExPQ19HUk9XKHBydW5lLT5wYXRoLCBwcnVuZS0+bnIgKyAxLCBwcnVuZS0+YWxsb2MpOwogCQlwcnVuZS0+cGF0aFtwcnVuZS0+bnIrK10gPSB4c3RyZHVwKHNiLT5idWYpOwogCX0KIH0KQEAgLTE1OTIsOSArMTYzMSw5IEBACiAJICAgICFzdHJjbXAoYXJnLCAiLS10YWdzIikgfHwgIXN0cmNtcChhcmcsICItLXJlbW90ZXMiKSB8fAogCSAgICAhc3RyY21wKGFyZywgIi0tcmVmbG9nIikgfHwgIXN0cmNtcChhcmcsICItLW5vdCIpIHx8CiAJICAgICFzdHJjbXAoYXJnLCAiLS1uby13YWxrIikgfHwgIXN0cmNtcChhcmcsICItLWRvLXdhbGsiKSB8fAotCSAgICAhc3RyY21wKGFyZywgIi0tYmlzZWN0IikgfHwgIXByZWZpeGNtcChhcmcsICItLWdsb2I9IikgfHwKLQkgICAgIXByZWZpeGNtcChhcmcsICItLWJyYW5jaGVzPSIpIHx8ICFwcmVmaXhjbXAoYXJnLCAiLS10YWdzPSIpIHx8Ci0JICAgICFwcmVmaXhjbXAoYXJnLCAiLS1yZW1vdGVzPSIpIHx8ICFwcmVmaXhjbXAoYXJnLCAiLS1uby13YWxrPSIpKQorCSAgICAhc3RyY21wKGFyZywgIi0tYmlzZWN0IikgfHwgc3RhcnRzX3dpdGgoYXJnLCAiLS1nbG9iPSIpIHx8CisJICAgIHN0YXJ0c193aXRoKGFyZywgIi0tYnJhbmNoZXM9IikgfHwgc3RhcnRzX3dpdGgoYXJnLCAiLS10YWdzPSIpIHx8CisJICAgIHN0YXJ0c193aXRoKGFyZywgIi0tcmVtb3Rlcz0iKSB8fCBzdGFydHNfd2l0aChhcmcsICItLW5vLXdhbGs9IikpCiAJewogCQl1bmt2WygqdW5rYykrK10gPSBhcmc7CiAJCXJldHVybiAxOwpAQCAtMTYxNyw3ICsxNjU2LDcgQEAKIAkJcmV2cy0+bWF4X2NvdW50ID0gYXRvaShhcmd2WzFdKTsKIAkJcmV2cy0+bm9fd2FsayA9IDA7CiAJCXJldHVybiAyOwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChhcmcsICItbiIpKSB7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItbiIpKSB7CiAJCXJldnMtPm1heF9jb3VudCA9IGF0b2koYXJnICsgMik7CiAJCXJldnMtPm5vX3dhbGsgPSAwOwogCX0gZWxzZSBpZiAoKGFyZ2NvdW50ID0gcGFyc2VfbG9uZ19vcHQoIm1heC1hZ2UiLCBhcmd2LCAmb3B0YXJnKSkpIHsKQEAgLTE2NzcsNyArMTcxNiw3IEBACiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tYXV0aG9yLWRhdGUtb3JkZXIiKSkgewogCQlyZXZzLT5zb3J0X29yZGVyID0gUkVWX1NPUlRfQllfQVVUSE9SX0RBVEU7CiAJCXJldnMtPnRvcG9fb3JkZXIgPSAxOwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChhcmcsICItLWVhcmx5LW91dHB1dCIpKSB7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLWVhcmx5LW91dHB1dCIpKSB7CiAJCWludCBjb3VudCA9IDEwMDsKIAkJc3dpdGNoIChhcmdbMTRdKSB7CiAJCWNhc2UgJz0nOgpAQCAtMTcwMiwxMyArMTc0MSwxMyBAQAogCQlyZXZzLT5taW5fcGFyZW50cyA9IDI7CiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tbm8tbWVyZ2VzIikpIHsKIAkJcmV2cy0+bWF4X3BhcmVudHMgPSAxOwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChhcmcsICItLW1pbi1wYXJlbnRzPSIpKSB7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLW1pbi1wYXJlbnRzPSIpKSB7CiAJCXJldnMtPm1pbl9wYXJlbnRzID0gYXRvaShhcmcrMTQpOwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChhcmcsICItLW5vLW1pbi1wYXJlbnRzIikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tbm8tbWluLXBhcmVudHMiKSkgewogCQlyZXZzLT5taW5fcGFyZW50cyA9IDA7Ci0JfSBlbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0tbWF4LXBhcmVudHM9IikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tbWF4LXBhcmVudHM9IikpIHsKIAkJcmV2cy0+bWF4X3BhcmVudHMgPSBhdG9pKGFyZysxNCk7Ci0JfSBlbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0tbm8tbWF4LXBhcmVudHMiKSkgeworCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS1uby1tYXgtcGFyZW50cyIpKSB7CiAJCXJldnMtPm1heF9wYXJlbnRzID0gLTE7CiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tYm91bmRhcnkiKSkgewogCQlyZXZzLT5ib3VuZGFyeSA9IDE7CkBAIC0xNzU4LDcgKzE3OTcsNyBAQAogCQlyZXZzLT52ZXJpZnlfb2JqZWN0cyA9IDE7CiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tdW5wYWNrZWQiKSkgewogCQlyZXZzLT51bnBhY2tlZCA9IDE7Ci0JfSBlbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0tdW5wYWNrZWQ9IikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tdW5wYWNrZWQ9IikpIHsKIAkJZGllKCItLXVucGFja2VkPTxwYWNrZmlsZT4gbm8gbG9uZ2VyIHN1cHBvcnRlZC4iKTsKIAl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLXIiKSkgewogCQlyZXZzLT5kaWZmID0gMTsKQEAgLTE3ODMsNyArMTgyMiw3IEBACiAJCXJldnMtPnZlcmJvc2VfaGVhZGVyID0gMTsKIAkJcmV2cy0+cHJldHR5X2dpdmVuID0gMTsKIAkJZ2V0X2NvbW1pdF9mb3JtYXQoYXJnKzgsIHJldnMpOwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChhcmcsICItLXByZXR0eT0iKSB8fCAhcHJlZml4Y21wKGFyZywgIi0tZm9ybWF0PSIpKSB7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLXByZXR0eT0iKSB8fCBzdGFydHNfd2l0aChhcmcsICItLWZvcm1hdD0iKSkgewogCQkvKgogCQkgKiBEZXRhY2hlZCBmb3JtICgiLS1wcmV0dHkgWCIgYXMgb3Bwb3NlZCB0byAiLS1wcmV0dHk9WCIpCiAJCSAqIG5vdCBhbGxvd2VkLCBzaW5jZSB0aGUgYXJndW1lbnQgaXMgb3B0aW9uYWwuCkBAIC0xNzk3LDEyICsxODM2LDEyIEBACiAJCXJldnMtPm5vdGVzX29wdC51c2VfZGVmYXVsdF9ub3RlcyA9IDE7CiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tc2hvdy1zaWduYXR1cmUiKSkgewogCQlyZXZzLT5zaG93X3NpZ25hdHVyZSA9IDE7Ci0JfSBlbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0tc2hvdy1ub3Rlcz0iKSB8fAotCQkgICAhcHJlZml4Y21wKGFyZywgIi0tbm90ZXM9IikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tc2hvdy1ub3Rlcz0iKSB8fAorCQkgICBzdGFydHNfd2l0aChhcmcsICItLW5vdGVzPSIpKSB7CiAJCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CiAJCXJldnMtPnNob3dfbm90ZXMgPSAxOwogCQlyZXZzLT5zaG93X25vdGVzX2dpdmVuID0gMTsKLQkJaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1zaG93LW5vdGVzIikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tc2hvdy1ub3RlcyIpKSB7CiAJCQlpZiAocmV2cy0+bm90ZXNfb3B0LnVzZV9kZWZhdWx0X25vdGVzIDwgMCkKIAkJCQlyZXZzLT5ub3Rlc19vcHQudXNlX2RlZmF1bHRfbm90ZXMgPSAxOwogCQkJc3RyYnVmX2FkZHN0cigmYnVmLCBhcmcrMTMpOwpAQCAtMTg0NSw3ICsxODg0LDcgQEAKIAkJcmV2cy0+YWJicmV2ID0gMDsKIAl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1hYmJyZXYiKSkgewogCQlyZXZzLT5hYmJyZXYgPSBERUZBVUxUX0FCQlJFVjsKLQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1hYmJyZXY9IikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGFyZywgIi0tYWJicmV2PSIpKSB7CiAJCXJldnMtPmFiYnJldiA9IHN0cnRvdWwoYXJnICsgOSwgTlVMTCwgMTApOwogCQlpZiAocmV2cy0+YWJicmV2IDwgTUlOSU1VTV9BQkJSRVYpCiAJCQlyZXZzLT5hYmJyZXYgPSBNSU5JTVVNX0FCQlJFVjsKQEAgLTE5NjksNDAgKzIwMDgsNTEgQEAKIAlpZiAoIXN0cmNtcChhcmcsICItLWFsbCIpKSB7CiAJCWhhbmRsZV9yZWZzKHN1Ym1vZHVsZSwgcmV2cywgKmZsYWdzLCBmb3JfZWFjaF9yZWZfc3VibW9kdWxlKTsKIAkJaGFuZGxlX3JlZnMoc3VibW9kdWxlLCByZXZzLCAqZmxhZ3MsIGhlYWRfcmVmX3N1Ym1vZHVsZSk7CisJCWNsZWFyX3JlZl9leGNsdXNpb24oJnJldnMtPnJlZl9leGNsdWRlcyk7CiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tYnJhbmNoZXMiKSkgewogCQloYW5kbGVfcmVmcyhzdWJtb2R1bGUsIHJldnMsICpmbGFncywgZm9yX2VhY2hfYnJhbmNoX3JlZl9zdWJtb2R1bGUpOworCQljbGVhcl9yZWZfZXhjbHVzaW9uKCZyZXZzLT5yZWZfZXhjbHVkZXMpOwogCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLWJpc2VjdCIpKSB7CiAJCWhhbmRsZV9yZWZzKHN1Ym1vZHVsZSwgcmV2cywgKmZsYWdzLCBmb3JfZWFjaF9iYWRfYmlzZWN0X3JlZik7CiAJCWhhbmRsZV9yZWZzKHN1Ym1vZHVsZSwgcmV2cywgKmZsYWdzIF4gKFVOSU5URVJFU1RJTkcgfCBCT1RUT00pLCBmb3JfZWFjaF9nb29kX2Jpc2VjdF9yZWYpOwogCQlyZXZzLT5iaXNlY3QgPSAxOwogCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLXRhZ3MiKSkgewogCQloYW5kbGVfcmVmcyhzdWJtb2R1bGUsIHJldnMsICpmbGFncywgZm9yX2VhY2hfdGFnX3JlZl9zdWJtb2R1bGUpOworCQljbGVhcl9yZWZfZXhjbHVzaW9uKCZyZXZzLT5yZWZfZXhjbHVkZXMpOwogCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLXJlbW90ZXMiKSkgewogCQloYW5kbGVfcmVmcyhzdWJtb2R1bGUsIHJldnMsICpmbGFncywgZm9yX2VhY2hfcmVtb3RlX3JlZl9zdWJtb2R1bGUpOworCQljbGVhcl9yZWZfZXhjbHVzaW9uKCZyZXZzLT5yZWZfZXhjbHVkZXMpOwogCX0gZWxzZSBpZiAoKGFyZ2NvdW50ID0gcGFyc2VfbG9uZ19vcHQoImdsb2IiLCBhcmd2LCAmb3B0YXJnKSkpIHsKIAkJc3RydWN0IGFsbF9yZWZzX2NiIGNiOwogCQlpbml0X2FsbF9yZWZzX2NiKCZjYiwgcmV2cywgKmZsYWdzKTsKIAkJZm9yX2VhY2hfZ2xvYl9yZWYoaGFuZGxlX29uZV9yZWYsIG9wdGFyZywgJmNiKTsKKwkJY2xlYXJfcmVmX2V4Y2x1c2lvbigmcmV2cy0+cmVmX2V4Y2x1ZGVzKTsKIAkJcmV0dXJuIGFyZ2NvdW50OwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChhcmcsICItLWJyYW5jaGVzPSIpKSB7CisJfSBlbHNlIGlmICgoYXJnY291bnQgPSBwYXJzZV9sb25nX29wdCgiZXhjbHVkZSIsIGFyZ3YsICZvcHRhcmcpKSkgeworCQlhZGRfcmVmX2V4Y2x1c2lvbigmcmV2cy0+cmVmX2V4Y2x1ZGVzLCBvcHRhcmcpOworCQlyZXR1cm4gYXJnY291bnQ7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLWJyYW5jaGVzPSIpKSB7CiAJCXN0cnVjdCBhbGxfcmVmc19jYiBjYjsKIAkJaW5pdF9hbGxfcmVmc19jYigmY2IsIHJldnMsICpmbGFncyk7CiAJCWZvcl9lYWNoX2dsb2JfcmVmX2luKGhhbmRsZV9vbmVfcmVmLCBhcmcgKyAxMSwgInJlZnMvaGVhZHMvIiwgJmNiKTsKLQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS10YWdzPSIpKSB7CisJCWNsZWFyX3JlZl9leGNsdXNpb24oJnJldnMtPnJlZl9leGNsdWRlcyk7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLXRhZ3M9IikpIHsKIAkJc3RydWN0IGFsbF9yZWZzX2NiIGNiOwogCQlpbml0X2FsbF9yZWZzX2NiKCZjYiwgcmV2cywgKmZsYWdzKTsKIAkJZm9yX2VhY2hfZ2xvYl9yZWZfaW4oaGFuZGxlX29uZV9yZWYsIGFyZyArIDcsICJyZWZzL3RhZ3MvIiwgJmNiKTsKLQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1yZW1vdGVzPSIpKSB7CisJCWNsZWFyX3JlZl9leGNsdXNpb24oJnJldnMtPnJlZl9leGNsdWRlcyk7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLXJlbW90ZXM9IikpIHsKIAkJc3RydWN0IGFsbF9yZWZzX2NiIGNiOwogCQlpbml0X2FsbF9yZWZzX2NiKCZjYiwgcmV2cywgKmZsYWdzKTsKIAkJZm9yX2VhY2hfZ2xvYl9yZWZfaW4oaGFuZGxlX29uZV9yZWYsIGFyZyArIDEwLCAicmVmcy9yZW1vdGVzLyIsICZjYik7CisJCWNsZWFyX3JlZl9leGNsdXNpb24oJnJldnMtPnJlZl9leGNsdWRlcyk7CiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tcmVmbG9nIikpIHsKIAkJaGFuZGxlX3JlZmxvZyhyZXZzLCAqZmxhZ3MpOwogCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLW5vdCIpKSB7CiAJCSpmbGFncyBePSBVTklOVEVSRVNUSU5HIHwgQk9UVE9NOwogCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLW5vLXdhbGsiKSkgewogCQlyZXZzLT5ub193YWxrID0gUkVWSVNJT05fV0FMS19OT19XQUxLX1NPUlRFRDsKLQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1uby13YWxrPSIpKSB7CisJfSBlbHNlIGlmIChzdGFydHNfd2l0aChhcmcsICItLW5vLXdhbGs9IikpIHsKIAkJLyoKIAkJICogRGV0YWNoZWQgZm9ybSAoIi0tbm8td2FsayBYIiBhcyBvcHBvc2VkIHRvICItLW5vLXdhbGs9WCIpCiAJCSAqIG5vdCBhbGxvd2VkLCBzaW5jZSB0aGUgYXJndW1lbnQgaXMgb3B0aW9uYWwuCkBAIC0yMTM0LDEwICsyMTg0LDEwIEBACiAJCSAqCWNhbGwgaW5pdF9wYXRoc3BlYygpIHRvIHNldCByZXZzLT5wcnVuZV9kYXRhIGhlcmUuCiAJCSAqIH0KIAkJICovCi0JCUFMTE9DX0dST1cocHJ1bmVfZGF0YS5wYXRoLCBwcnVuZV9kYXRhLm5yKzEsIHBydW5lX2RhdGEuYWxsb2MpOworCQlBTExPQ19HUk9XKHBydW5lX2RhdGEucGF0aCwgcHJ1bmVfZGF0YS5uciArIDEsIHBydW5lX2RhdGEuYWxsb2MpOwogCQlwcnVuZV9kYXRhLnBhdGhbcHJ1bmVfZGF0YS5ucisrXSA9IE5VTEw7Ci0JCWluaXRfcGF0aHNwZWMoJnJldnMtPnBydW5lX2RhdGEsCi0JCQkgICAgICBnZXRfcGF0aHNwZWMocmV2cy0+cHJlZml4LCBwcnVuZV9kYXRhLnBhdGgpKTsKKwkJcGFyc2VfcGF0aHNwZWMoJnJldnMtPnBydW5lX2RhdGEsIDAsIDAsCisJCQkgICAgICAgcmV2cy0+cHJlZml4LCBwcnVuZV9kYXRhLnBhdGgpOwogCX0KIAogCWlmIChyZXZzLT5kZWYgPT0gTlVMTCkKQEAgLTIxNzAsMTIgKzIyMjAsMTMgQEAKIAkJcmV2cy0+bGltaXRlZCA9IDE7CiAKIAlpZiAocmV2cy0+cHJ1bmVfZGF0YS5ucikgewotCQlkaWZmX3RyZWVfc2V0dXBfcGF0aHMocmV2cy0+cHJ1bmVfZGF0YS5yYXcsICZyZXZzLT5wcnVuaW5nKTsKKwkJY29weV9wYXRoc3BlYygmcmV2cy0+cHJ1bmluZy5wYXRoc3BlYywgJnJldnMtPnBydW5lX2RhdGEpOwogCQkvKiBDYW4ndCBwcnVuZSBjb21taXRzIHdpdGggcmVuYW1lIGZvbGxvd2luZzogdGhlIHBhdGhzIGNoYW5nZS4uICovCiAJCWlmICghRElGRl9PUFRfVFNUKCZyZXZzLT5kaWZmb3B0LCBGT0xMT1dfUkVOQU1FUykpCiAJCQlyZXZzLT5wcnVuZSA9IDE7CiAJCWlmICghcmV2cy0+ZnVsbF9kaWZmKQotCQkJZGlmZl90cmVlX3NldHVwX3BhdGhzKHJldnMtPnBydW5lX2RhdGEucmF3LCAmcmV2cy0+ZGlmZm9wdCk7CisJCQljb3B5X3BhdGhzcGVjKCZyZXZzLT5kaWZmb3B0LnBhdGhzcGVjLAorCQkJCSAgICAgICZyZXZzLT5wcnVuZV9kYXRhKTsKIAl9CiAJaWYgKHJldnMtPmNvbWJpbmVfbWVyZ2VzKQogCQlyZXZzLT5pZ25vcmVfbWVyZ2VzID0gMDsKQEAgLTI5ODYsNyArMzAzNyw3IEBACiAJaWYgKHJldnMtPm1heF9jb3VudCkgewogCQljID0gZ2V0X3JldmlzaW9uXzEocmV2cyk7CiAJCWlmIChjKSB7Ci0JCQl3aGlsZSAoMCA8IHJldnMtPnNraXBfY291bnQpIHsKKwkJCXdoaWxlIChyZXZzLT5za2lwX2NvdW50ID4gMCkgewogCQkJCXJldnMtPnNraXBfY291bnQtLTsKIAkJCQljID0gZ2V0X3JldmlzaW9uXzEocmV2cyk7CiAJCQkJaWYgKCFjKQpAQCAtMzAwMSw5ICszMDUyLDggQEAKIAlpZiAoYykKIAkJYy0+b2JqZWN0LmZsYWdzIHw9IFNIT1dOOwogCi0JaWYgKCFyZXZzLT5ib3VuZGFyeSkgeworCWlmICghcmV2cy0+Ym91bmRhcnkpCiAJCXJldHVybiBjOwotCX0KIAogCWlmICghYykgewogCQkvKgpAQCAtMzA0OSw5ICszMDk5LDggQEAKIAogCWlmIChyZXZzLT5yZXZlcnNlKSB7CiAJCXJldmVyc2VkID0gTlVMTDsKLQkJd2hpbGUgKChjID0gZ2V0X3JldmlzaW9uX2ludGVybmFsKHJldnMpKSkgeworCQl3aGlsZSAoKGMgPSBnZXRfcmV2aXNpb25faW50ZXJuYWwocmV2cykpKQogCQkJY29tbWl0X2xpc3RfaW5zZXJ0KGMsICZyZXZlcnNlZCk7Ci0JCX0KIAkJcmV2cy0+Y29tbWl0cyA9IHJldmVyc2VkOwogCQlyZXZzLT5yZXZlcnNlID0gMDsKIAkJcmV2cy0+cmV2ZXJzZV9vdXRwdXRfc3RhZ2UgPSAxOwpkaWZmIC0tZ2l0IGEvcmV2aXNpb24uaCBiL3JldmlzaW9uLmgKaW5kZXggZTdmMWQyMS4uODg5NjdkNiAxMDA2NDQKLS0tIGEvcmV2aXNpb24uaAorKysgYi9yZXZpc2lvbi5oCkBAIC01LDYgKzUsNyBAQAogI2luY2x1ZGUgImdyZXAuaCIKICNpbmNsdWRlICJub3Rlcy5oIgogI2luY2x1ZGUgImNvbW1pdC5oIgorI2luY2x1ZGUgImRpZmYuaCIKIAogI2RlZmluZSBTRUVOCQkoMXU8PDApCiAjZGVmaW5lIFVOSU5URVJFU1RJTkcgICAoMXU8PDEpCkBAIC02MCw2ICs2MSw5IEBACiAJLyogVGhlIGVuZC1wb2ludHMgc3BlY2lmaWVkIGJ5IHRoZSBlbmQgdXNlciAqLwogCXN0cnVjdCByZXZfY21kbGluZV9pbmZvIGNtZGxpbmU7CiAKKwkvKiBleGNsdWRpbmcgZnJvbSAtLWJyYW5jaGVzLCAtLXJlZnMsIGV0Yy4gZXhwYW5zaW9uICovCisJc3RydWN0IHN0cmluZ19saXN0ICpyZWZfZXhjbHVkZXM7CisKIAkvKiBCYXNpYyBpbmZvcm1hdGlvbiAqLwogCWNvbnN0IGNoYXIgKnByZWZpeDsKIAljb25zdCBjaGFyICpkZWY7CkBAIC0xOTMsNiArMTk3LDExIEBACiAJc3RydWN0IHNhdmVkX3BhcmVudHMgKnNhdmVkX3BhcmVudHNfc2xhYjsKIH07CiAKK2V4dGVybiBpbnQgcmVmX2V4Y2x1ZGVkKHN0cnVjdCBzdHJpbmdfbGlzdCAqLCBjb25zdCBjaGFyICpwYXRoKTsKK3ZvaWQgY2xlYXJfcmVmX2V4Y2x1c2lvbihzdHJ1Y3Qgc3RyaW5nX2xpc3QgKiopOwordm9pZCBhZGRfcmVmX2V4Y2x1c2lvbihzdHJ1Y3Qgc3RyaW5nX2xpc3QgKiosIGNvbnN0IGNoYXIgKmV4Y2x1ZGUpOworCisKICNkZWZpbmUgUkVWX1RSRUVfU0FNRQkJMAogI2RlZmluZSBSRVZfVFJFRV9ORVcJCTEJLyogT25seSBuZXcgZmlsZXMgKi8KICNkZWZpbmUgUkVWX1RSRUVfT0xECQkyCS8qIE9ubHkgZmlsZXMgcmVtb3ZlZCAqLwpkaWZmIC0tZ2l0IGEvcnVuLWNvbW1hbmQuYyBiL3J1bi1jb21tYW5kLmMKaW5kZXggMWI3Zjg4ZS4uMzkxNGQ5YyAxMDA2NDQKLS0tIGEvcnVuLWNvbW1hbmQuYworKysgYi9ydW4tY29tbWFuZC5jCkBAIC00MDYsMTMgKzQwNiwxMiBAQAogCQkJCQl1bnNldGVudigqY21kLT5lbnYpOwogCQkJfQogCQl9Ci0JCWlmIChjbWQtPmdpdF9jbWQpIHsKKwkJaWYgKGNtZC0+Z2l0X2NtZCkKIAkJCWV4ZWN2X2dpdF9jbWQoY21kLT5hcmd2KTsKLQkJfSBlbHNlIGlmIChjbWQtPnVzZV9zaGVsbCkgeworCQllbHNlIGlmIChjbWQtPnVzZV9zaGVsbCkKIAkJCWV4ZWN2X3NoZWxsX2NtZChjbWQtPmFyZ3YpOwotCQl9IGVsc2UgeworCQllbHNlCiAJCQlzYW5lX2V4ZWN2cChjbWQtPmFyZ3ZbMF0sIChjaGFyICpjb25zdCopIGNtZC0+YXJndik7Ci0JCX0KIAkJaWYgKGVycm5vID09IEVOT0VOVCkgewogCQkJaWYgKCFjbWQtPnNpbGVudF9leGVjX2ZhaWx1cmUpCiAJCQkJZXJyb3IoImNhbm5vdCBydW4gJXM6ICVzIiwgY21kLT5hcmd2WzBdLApAQCAtNDQ2LDcgKzQ0NSw2IEBACiAJCWNtZC0+cGlkID0gLTE7CiAJfQogCWNsb3NlKG5vdGlmeV9waXBlWzBdKTsKLQogfQogI2Vsc2UKIHsKQEAgLTQ4MCwxMSArNDc4LDEwIEBACiAJaWYgKGNtZC0+ZW52KQogCQllbnYgPSBtYWtlX2F1Z21lbnRlZF9lbnZpcm9uKGNtZC0+ZW52KTsKIAotCWlmIChjbWQtPmdpdF9jbWQpIHsKKwlpZiAoY21kLT5naXRfY21kKQogCQljbWQtPmFyZ3YgPSBwcmVwYXJlX2dpdF9jbWQoY21kLT5hcmd2KTsKLQl9IGVsc2UgaWYgKGNtZC0+dXNlX3NoZWxsKSB7CisJZWxzZSBpZiAoY21kLT51c2Vfc2hlbGwpCiAJCWNtZC0+YXJndiA9IHByZXBhcmVfc2hlbGxfY21kKGNtZC0+YXJndik7Ci0JfQogCiAJY21kLT5waWQgPSBtaW5nd19zcGF3bnZwZShjbWQtPmFyZ3ZbMF0sIGNtZC0+YXJndiwgZW52LCBjbWQtPmRpciwKIAkJCQkgIGZoaW4sIGZob3V0LCBmaGVycik7CmRpZmYgLS1naXQgYS9zZW5kLXBhY2suYyBiL3NlbmQtcGFjay5jCmluZGV4IDdkMTcyZWYuLjYxMjliMGYgMTAwNjQ0Ci0tLSBhL3NlbmQtcGFjay5jCisrKyBiL3NlbmQtcGFjay5jCkBAIC01LDEwICs1LDEyIEBACiAjaW5jbHVkZSAic2lkZWJhbmQuaCIKICNpbmNsdWRlICJydW4tY29tbWFuZC5oIgogI2luY2x1ZGUgInJlbW90ZS5oIgorI2luY2x1ZGUgImNvbm5lY3QuaCIKICNpbmNsdWRlICJzZW5kLXBhY2suaCIKICNpbmNsdWRlICJxdW90ZS5oIgogI2luY2x1ZGUgInRyYW5zcG9ydC5oIgogI2luY2x1ZGUgInZlcnNpb24uaCIKKyNpbmNsdWRlICJzaGExLWFycmF5LmgiCiAKIHN0YXRpYyBpbnQgZmVlZF9vYmplY3QoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IGZkLCBpbnQgbmVnYXRpdmUpCiB7CkBAIC0yNyw3ICsyOSw3IEBACiAvKgogICogTWFrZSBhIHBhY2sgc3RyZWFtIGFuZCBzcGl0IGl0IG91dCBpbnRvIGZpbGUgZGVzY3JpcHRvciBmZAogICovCi1zdGF0aWMgaW50IHBhY2tfb2JqZWN0cyhpbnQgZmQsIHN0cnVjdCByZWYgKnJlZnMsIHN0cnVjdCBleHRyYV9oYXZlX29iamVjdHMgKmV4dHJhLCBzdHJ1Y3Qgc2VuZF9wYWNrX2FyZ3MgKmFyZ3MpCitzdGF0aWMgaW50IHBhY2tfb2JqZWN0cyhpbnQgZmQsIHN0cnVjdCByZWYgKnJlZnMsIHN0cnVjdCBzaGExX2FycmF5ICpleHRyYSwgc3RydWN0IHNlbmRfcGFja19hcmdzICphcmdzKQogewogCS8qCiAJICogVGhlIGNoaWxkIGJlY29tZXMgcGFjay1vYmplY3RzIC0tcmV2czsgd2UgZmVlZApAQCAtNzAsNyArNzIsNyBAQAogCSAqIHBhcmFtZXRlcnMgYnkgd3JpdGluZyB0byB0aGUgcGlwZS4KIAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwgZXh0cmEtPm5yOyBpKyspCi0JCWlmICghZmVlZF9vYmplY3QoZXh0cmEtPmFycmF5W2ldLCBwby5pbiwgMSkpCisJCWlmICghZmVlZF9vYmplY3QoZXh0cmEtPnNoYTFbaV0sIHBvLmluLCAxKSkKIAkJCWJyZWFrOwogCiAJd2hpbGUgKHJlZnMpIHsKQEAgLTEwOCw3ICsxMTAsNyBAQAogCXN0cnVjdCByZWYgKmhpbnQ7CiAJaW50IHJldCA9IDA7CiAJY2hhciAqbGluZSA9IHBhY2tldF9yZWFkX2xpbmUoaW4sIE5VTEwpOwotCWlmIChwcmVmaXhjbXAobGluZSwgInVucGFjayAiKSkKKwlpZiAoIXN0YXJ0c193aXRoKGxpbmUsICJ1bnBhY2sgIikpCiAJCXJldHVybiBlcnJvcigiZGlkIG5vdCByZWNlaXZlIHJlbW90ZSBzdGF0dXMiKTsKIAlpZiAoc3RyY21wKGxpbmUsICJ1bnBhY2sgb2siKSkgewogCQllcnJvcigidW5wYWNrIGZhaWxlZDogJXMiLCBsaW5lICsgNyk7CkBAIC0xMjEsNyArMTIzLDcgQEAKIAkJbGluZSA9IHBhY2tldF9yZWFkX2xpbmUoaW4sIE5VTEwpOwogCQlpZiAoIWxpbmUpCiAJCQlicmVhazsKLQkJaWYgKHByZWZpeGNtcChsaW5lLCAib2sgIikgJiYgcHJlZml4Y21wKGxpbmUsICJuZyAiKSkgeworCQlpZiAoIXN0YXJ0c193aXRoKGxpbmUsICJvayAiKSAmJiAhc3RhcnRzX3dpdGgobGluZSwgIm5nICIpKSB7CiAJCQllcnJvcigiaW52YWxpZCByZWYgc3RhdHVzIGZyb20gcmVtb3RlOiAlcyIsIGxpbmUpOwogCQkJcmV0ID0gLTE7CiAJCQlicmVhazsKQEAgLTE3MywxMCArMTc1LDI1IEBACiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBhZHZlcnRpc2Vfc2hhbGxvd19ncmFmdHNfY2IoY29uc3Qgc3RydWN0IGNvbW1pdF9ncmFmdCAqZ3JhZnQsIHZvaWQgKmNiKQoreworCXN0cnVjdCBzdHJidWYgKnNiID0gY2I7CisJaWYgKGdyYWZ0LT5ucl9wYXJlbnQgPT0gLTEpCisJCXBhY2tldF9idWZfd3JpdGUoc2IsICJzaGFsbG93ICVzXG4iLCBzaGExX3RvX2hleChncmFmdC0+c2hhMSkpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBhZHZlcnRpc2Vfc2hhbGxvd19ncmFmdHNfYnVmKHN0cnVjdCBzdHJidWYgKnNiKQoreworCWlmICghaXNfcmVwb3NpdG9yeV9zaGFsbG93KCkpCisJCXJldHVybjsKKwlmb3JfZWFjaF9jb21taXRfZ3JhZnQoYWR2ZXJ0aXNlX3NoYWxsb3dfZ3JhZnRzX2NiLCBzYik7Cit9CisKIGludCBzZW5kX3BhY2soc3RydWN0IHNlbmRfcGFja19hcmdzICphcmdzLAogCSAgICAgIGludCBmZFtdLCBzdHJ1Y3QgY2hpbGRfcHJvY2VzcyAqY29ubiwKIAkgICAgICBzdHJ1Y3QgcmVmICpyZW1vdGVfcmVmcywKLQkgICAgICBzdHJ1Y3QgZXh0cmFfaGF2ZV9vYmplY3RzICpleHRyYV9oYXZlKQorCSAgICAgIHN0cnVjdCBzaGExX2FycmF5ICpleHRyYV9oYXZlKQogewogCWludCBpbiA9IGZkWzBdOwogCWludCBvdXQgPSBmZFsxXTsKQEAgLTIwNSw2ICsyMjIsOCBAQAogCQlxdWlldF9zdXBwb3J0ZWQgPSAxOwogCWlmIChzZXJ2ZXJfc3VwcG9ydHMoImFnZW50IikpCiAJCWFnZW50X3N1cHBvcnRlZCA9IDE7CisJaWYgKHNlcnZlcl9zdXBwb3J0cygibm8tdGhpbiIpKQorCQlhcmdzLT51c2VfdGhpbl9wYWNrID0gMDsKIAogCWlmICghcmVtb3RlX3JlZnMpIHsKIAkJZnByaW50ZihzdGRlcnIsICJObyByZWZzIGluIGNvbW1vbiBhbmQgbm9uZSBzcGVjaWZpZWQ7IGRvaW5nIG5vdGhpbmcuXG4iCkBAIC0yMTIsNiArMjMxLDkgQEAKIAkJcmV0dXJuIDA7CiAJfQogCisJaWYgKCFhcmdzLT5kcnlfcnVuKQorCQlhZHZlcnRpc2Vfc2hhbGxvd19ncmFmdHNfYnVmKCZyZXFfYnVmKTsKKwogCS8qCiAJICogRmluYWxseSwgdGVsbCB0aGUgb3RoZXIgZW5kIQogCSAqLwpAQCAtMjI2LDYgKzI0OCw3IEBACiAJCWNhc2UgUkVGX1NUQVRVU19SRUpFQ1RfQUxSRUFEWV9FWElTVFM6CiAJCWNhc2UgUkVGX1NUQVRVU19SRUpFQ1RfRkVUQ0hfRklSU1Q6CiAJCWNhc2UgUkVGX1NUQVRVU19SRUpFQ1RfTkVFRFNfRk9SQ0U6CisJCWNhc2UgUkVGX1NUQVRVU19SRUpFQ1RfU1RBTEU6CiAJCWNhc2UgUkVGX1NUQVRVU19VUFRPREFURToKIAkJCWNvbnRpbnVlOwogCQlkZWZhdWx0OgpAQCAtMjcwLDcgKzI5Myw3IEBACiAJfQogCiAJaWYgKGFyZ3MtPnN0YXRlbGVzc19ycGMpIHsKLQkJaWYgKCFhcmdzLT5kcnlfcnVuICYmIGNtZHNfc2VudCkgeworCQlpZiAoIWFyZ3MtPmRyeV9ydW4gJiYgKGNtZHNfc2VudCB8fCBpc19yZXBvc2l0b3J5X3NoYWxsb3coKSkpIHsKIAkJCXBhY2tldF9idWZfZmx1c2goJnJlcV9idWYpOwogCQkJc2VuZF9zaWRlYmFuZChvdXQsIC0xLCByZXFfYnVmLmJ1ZiwgcmVxX2J1Zi5sZW4sIExBUkdFX1BBQ0tFVF9NQVgpOwogCQl9CkBAIC0zMDAsOCArMzIzLDEyIEBACiAJCQkJc2h1dGRvd24oZmRbMF0sIFNIVVRfV1IpOwogCQkJaWYgKHVzZV9zaWRlYmFuZCkKIAkJCQlmaW5pc2hfYXN5bmMoJmRlbXV4KTsKKwkJCWZkWzFdID0gLTE7CiAJCQlyZXR1cm4gLTE7CiAJCX0KKwkJaWYgKCFhcmdzLT5zdGF0ZWxlc3NfcnBjKQorCQkJLyogQ2xvc2VkIGJ5IHBhY2tfb2JqZWN0cygpIHZpYSBzdGFydF9jb21tYW5kKCkgKi8KKwkJCWZkWzFdID0gLTE7CiAJfQogCWlmIChhcmdzLT5zdGF0ZWxlc3NfcnBjICYmIGNtZHNfc2VudCkKIAkJcGFja2V0X2ZsdXNoKG91dCk7CmRpZmYgLS1naXQgYS9zZW5kLXBhY2suaCBiL3NlbmQtcGFjay5oCmluZGV4IDA1ZDdhYjEuLjhlODQzOTIgMTAwNjQ0Ci0tLSBhL3NlbmQtcGFjay5oCisrKyBiL3NlbmQtcGFjay5oCkBAIC0xNiw2ICsxNiw2IEBACiAKIGludCBzZW5kX3BhY2soc3RydWN0IHNlbmRfcGFja19hcmdzICphcmdzLAogCSAgICAgIGludCBmZFtdLCBzdHJ1Y3QgY2hpbGRfcHJvY2VzcyAqY29ubiwKLQkgICAgICBzdHJ1Y3QgcmVmICpyZW1vdGVfcmVmcywgc3RydWN0IGV4dHJhX2hhdmVfb2JqZWN0cyAqZXh0cmFfaGF2ZSk7CisJICAgICAgc3RydWN0IHJlZiAqcmVtb3RlX3JlZnMsIHN0cnVjdCBzaGExX2FycmF5ICpleHRyYV9oYXZlKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zZXF1ZW5jZXIuYyBiL3NlcXVlbmNlci5jCmluZGV4IDM1MTU0OGYuLjkwY2FjN2IgMTAwNjQ0Ci0tLSBhL3NlcXVlbmNlci5jCisrKyBiL3NlcXVlbmNlci5jCkBAIC00MSw3ICs0MSw3IEBACiAJICogV2Ugb25seSBjYXJlIHRoYXQgaXQgbG9va3Mgcm91Z2hseSBsaWtlIChjaGVycnkgcGlja2VkIGZyb20gLi4uKQogCSAqLwogCXJldHVybiBsZW4gPiBzdHJsZW4oY2hlcnJ5X3BpY2tlZF9wcmVmaXgpICsgMSAmJgotCQkhcHJlZml4Y21wKGJ1ZiwgY2hlcnJ5X3BpY2tlZF9wcmVmaXgpICYmIGJ1ZltsZW4gLSAxXSA9PSAnKSc7CisJCXN0YXJ0c193aXRoKGJ1ZiwgY2hlcnJ5X3BpY2tlZF9wcmVmaXgpICYmIGJ1ZltsZW4gLSAxXSA9PSAnKSc7CiB9CiAKIC8qCkBAIC0xODAsNyArMTgwLDcgQEAKIAl3aGlsZSAoKnAgJiYgKnAgIT0gJ1xuJykgewogCQlmb3IgKGVvbCA9IHAgKyAxOyAqZW9sICYmICplb2wgIT0gJ1xuJzsgZW9sKyspCiAJCQk7IC8qIGRvIG5vdGhpbmcgKi8KLQkJaWYgKCFwcmVmaXhjbXAocCwgImVuY29kaW5nICIpKSB7CisJCWlmIChzdGFydHNfd2l0aChwLCAiZW5jb2RpbmcgIikpIHsKIAkJCWNoYXIgKnJlc3VsdCA9IHhtYWxsb2MoZW9sIC0gOCAtIHApOwogCQkJc3RybGNweShyZXN1bHQsIHAgKyA5LCBlb2wgLSA4IC0gcCk7CiAJCQlyZXR1cm4gcmVzdWx0OwpAQCAtMjc5LDcgKzI3OSw4IEBACiAJcmVhZF9jYWNoZSgpOwogCWlmIChjaGVja291dF9mYXN0X2ZvcndhcmQoZnJvbSwgdG8sIDEpKQogCQlleGl0KDEpOyAvKiB0aGUgY2FsbGVlIHNob3VsZCBoYXZlIGNvbXBsYWluZWQgYWxyZWFkeSAqLwotCXJlZl9sb2NrID0gbG9ja19hbnlfcmVmX2Zvcl91cGRhdGUoIkhFQUQiLCB1bmJvcm4gPyBudWxsX3NoYTEgOiBmcm9tLCAwKTsKKwlyZWZfbG9jayA9IGxvY2tfYW55X3JlZl9mb3JfdXBkYXRlKCJIRUFEIiwgdW5ib3JuID8gbnVsbF9zaGExIDogZnJvbSwKKwkJCQkJICAgMCwgTlVMTCk7CiAJc3RyYnVmX2FkZGYoJnNiLCAiJXM6IGZhc3QtZm9yd2FyZCIsIGFjdGlvbl9uYW1lKG9wdHMpKTsKIAlyZXQgPSB3cml0ZV9yZWZfc2hhMShyZWZfbG9jaywgdG8sIHNiLmJ1Zik7CiAJc3RyYnVmX3JlbGVhc2UoJnNiKTsKQEAgLTcwNCwxMCArNzA1LDEwIEBACiAJY2hhciAqZW5kX29mX29iamVjdF9uYW1lOwogCWludCBzYXZlZCwgc3RhdHVzLCBwYWRkaW5nOwogCi0JaWYgKCFwcmVmaXhjbXAoYm9sLCAicGljayIpKSB7CisJaWYgKHN0YXJ0c193aXRoKGJvbCwgInBpY2siKSkgewogCQlhY3Rpb24gPSBSRVBMQVlfUElDSzsKIAkJYm9sICs9IHN0cmxlbigicGljayIpOwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcChib2wsICJyZXZlcnQiKSkgeworCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgoYm9sLCAicmV2ZXJ0IikpIHsKIAkJYWN0aW9uID0gUkVQTEFZX1JFVkVSVDsKIAkJYm9sICs9IHN0cmxlbigicmV2ZXJ0Iik7CiAJfSBlbHNlCmRpZmYgLS1naXQgYS9zZXR1cC5jIGIvc2V0dXAuYwppbmRleCA1MjYyMzE5Li42YzNmODVmIDEwMDY0NAotLS0gYS9zZXR1cC5jCisrKyBiL3NldHVwLmMKQEAgLTUsNyArNSwxOSBAQAogc3RhdGljIGludCBpbnNpZGVfZ2l0X2RpciA9IC0xOwogc3RhdGljIGludCBpbnNpZGVfd29ya190cmVlID0gLTE7CiAKLXN0YXRpYyBjaGFyICpwcmVmaXhfcGF0aF9nZW50bHkoY29uc3QgY2hhciAqcHJlZml4LCBpbnQgbGVuLCBjb25zdCBjaGFyICpwYXRoKQorLyoKKyAqIE5vcm1hbGl6ZSAicGF0aCIsIHByZXBlbmRpbmcgdGhlICJwcmVmaXgiIGZvciByZWxhdGl2ZSBwYXRocy4gSWYKKyAqIHJlbWFpbmluZ19wcmVmaXggaXMgbm90IE5VTEwsIHJldHVybiB0aGUgYWN0dWFsIHByZWZpeCBzdGlsbAorICogcmVtYWlucyBpbiB0aGUgcGF0aC4gRm9yIGV4YW1wbGUsIHByZWZpeCA9IHN1YjEvc3ViMi8gYW5kIHBhdGggaXMKKyAqCisgKiAgZm9vICAgICAgICAgIC0+IHN1YjEvc3ViMi9mb28gIChmdWxsIHByZWZpeCkKKyAqICAuLi9mb28gICAgICAgLT4gc3ViMS9mb28gICAgICAgKHJlbWFpbmluZyBwcmVmaXggaXMgc3ViMS8pCisgKiAgLi4vLi4vYmFyICAgIC0+IGJhciAgICAgICAgICAgIChubyByZW1haW5pbmcgcHJlZml4KQorICogIC4uLy4uL3N1YjEvc3ViMi9mb28gLT4gc3ViMS9zdWIyL2ZvbyAoYnV0IG5vIHJlbWFpbmluZyBwcmVmaXgpCisgKiAgYHB3ZGAvLi4vYmFyIC0+IHN1YjEvYmFyICAgICAgIChubyByZW1haW5pbmcgcHJlZml4KQorICovCitjaGFyICpwcmVmaXhfcGF0aF9nZW50bHkoY29uc3QgY2hhciAqcHJlZml4LCBpbnQgbGVuLAorCQkJIGludCAqcmVtYWluaW5nX3ByZWZpeCwgY29uc3QgY2hhciAqcGF0aCkKIHsKIAljb25zdCBjaGFyICpvcmlnID0gcGF0aDsKIAljaGFyICpzYW5pdGl6ZWQ7CkBAIC0xMywxMyArMjUsMTcgQEAKIAkJY29uc3QgY2hhciAqdGVtcCA9IHJlYWxfcGF0aChwYXRoKTsKIAkJc2FuaXRpemVkID0geG1hbGxvYyhsZW4gKyBzdHJsZW4odGVtcCkgKyAxKTsKIAkJc3RyY3B5KHNhbml0aXplZCwgdGVtcCk7CisJCWlmIChyZW1haW5pbmdfcHJlZml4KQorCQkJKnJlbWFpbmluZ19wcmVmaXggPSAwOwogCX0gZWxzZSB7CiAJCXNhbml0aXplZCA9IHhtYWxsb2MobGVuICsgc3RybGVuKHBhdGgpICsgMSk7CiAJCWlmIChsZW4pCiAJCQltZW1jcHkoc2FuaXRpemVkLCBwcmVmaXgsIGxlbik7CiAJCXN0cmNweShzYW5pdGl6ZWQgKyBsZW4sIHBhdGgpOworCQlpZiAocmVtYWluaW5nX3ByZWZpeCkKKwkJCSpyZW1haW5pbmdfcHJlZml4ID0gbGVuOwogCX0KLQlpZiAobm9ybWFsaXplX3BhdGhfY29weShzYW5pdGl6ZWQsIHNhbml0aXplZCkpCisJaWYgKG5vcm1hbGl6ZV9wYXRoX2NvcHlfbGVuKHNhbml0aXplZCwgc2FuaXRpemVkLCByZW1haW5pbmdfcHJlZml4KSkKIAkJZ290byBlcnJvcl9vdXQ7CiAJaWYgKGlzX2Fic29sdXRlX3BhdGgob3JpZykpIHsKIAkJc2l6ZV90IHJvb3RfbGVuLCBsZW4sIHRvdGFsOwpAQCAtNDQsNyArNjAsNyBAQAogCiBjaGFyICpwcmVmaXhfcGF0aChjb25zdCBjaGFyICpwcmVmaXgsIGludCBsZW4sIGNvbnN0IGNoYXIgKnBhdGgpCiB7Ci0JY2hhciAqciA9IHByZWZpeF9wYXRoX2dlbnRseShwcmVmaXgsIGxlbiwgcGF0aCk7CisJY2hhciAqciA9IHByZWZpeF9wYXRoX2dlbnRseShwcmVmaXgsIGxlbiwgTlVMTCwgcGF0aCk7CiAJaWYgKCFyKQogCQlkaWUoIiclcycgaXMgb3V0c2lkZSByZXBvc2l0b3J5IiwgcGF0aCk7CiAJcmV0dXJuIHI7CkBAIC01Myw3ICs2OSw3IEBACiBpbnQgcGF0aF9pbnNpZGVfcmVwbyhjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKnBhdGgpCiB7CiAJaW50IGxlbiA9IHByZWZpeCA/IHN0cmxlbihwcmVmaXgpIDogMDsKLQljaGFyICpyID0gcHJlZml4X3BhdGhfZ2VudGx5KHByZWZpeCwgbGVuLCBwYXRoKTsKKwljaGFyICpyID0gcHJlZml4X3BhdGhfZ2VudGx5KHByZWZpeCwgbGVuLCBOVUxMLCBwYXRoKTsKIAlpZiAocikgewogCQlmcmVlKHIpOwogCQlyZXR1cm4gMTsKQEAgLTY2LDcgKzgyLDcgQEAKIAljb25zdCBjaGFyICpuYW1lOwogCXN0cnVjdCBzdGF0IHN0OwogCi0JaWYgKCFwcmVmaXhjbXAoYXJnLCAiOi8iKSkgeworCWlmIChzdGFydHNfd2l0aChhcmcsICI6LyIpKSB7CiAJCWlmIChhcmdbMl0gPT0gJ1wwJykgLyogIjovIiBpcyByb290IGRpciwgYWx3YXlzIGV4aXN0cyAqLwogCQkJcmV0dXJuIDE7CiAJCW5hbWUgPSBhcmcgKyAyOwpAQCAtMTU0LDE1NSArMTcwLDYgQEAKIAkgICAgIidnaXQgPGNvbW1hbmQ+IFs8cmV2aXNpb24+Li4uXSAtLSBbPGZpbGU+Li4uXSciLCBhcmcpOwogfQogCi0vKgotICogTWFnaWMgcGF0aHNwZWMKLSAqCi0gKiBORUVEU1dPUks6IFRoZXNlIG5lZWQgdG8gYmUgbW92ZWQgdG8gZGlyLmggb3IgZXZlbiB0byBhIG5ldwotICogcGF0aHNwZWMuaCB3aGVuIHdlIHJlc3RydWN0dXJlIGdldF9wYXRoc3BlYygpIHVzZXJzIHRvIHVzZSB0aGUKLSAqICJzdHJ1Y3QgcGF0aHNwZWMiIGludGVyZmFjZS4KLSAqCi0gKiBQb3NzaWJsZSBmdXR1cmUgbWFnaWMgc2VtYW50aWNzIGluY2x1ZGUgc3R1ZmYgbGlrZToKLSAqCi0gKgl7IFBBVEhTUEVDX05PR0xPQiwgJyEnLCAibm9nbG9iIiB9LAotICoJeyBQQVRIU1BFQ19JQ0FTRSwgJ1wwJywgImljYXNlIiB9LAotICoJeyBQQVRIU1BFQ19SRUNVUlNJVkUsICcqJywgInJlY3Vyc2l2ZSIgfSwKLSAqCXsgUEFUSFNQRUNfUkVHRVhQLCAnXDAnLCAicmVnZXhwIiB9LAotICoKLSAqLwotI2RlZmluZSBQQVRIU1BFQ19GUk9NVE9QICAgICgxPDwwKQotCi1zdGF0aWMgc3RydWN0IHBhdGhzcGVjX21hZ2ljIHsKLQl1bnNpZ25lZCBiaXQ7Ci0JY2hhciBtbmVtb25pYzsgLyogdGhpcyBjYW5ub3QgYmUgJzonISAqLwotCWNvbnN0IGNoYXIgKm5hbWU7Ci19IHBhdGhzcGVjX21hZ2ljW10gPSB7Ci0JeyBQQVRIU1BFQ19GUk9NVE9QLCAnLycsICJ0b3AiIH0sCi19OwotCi0vKgotICogVGFrZSBhbiBlbGVtZW50IG9mIGEgcGF0aHNwZWMgYW5kIGNoZWNrIGZvciBtYWdpYyBzaWduYXR1cmVzLgotICogQXBwZW5kIHRoZSByZXN1bHQgdG8gdGhlIHByZWZpeC4KLSAqCi0gKiBGb3Igbm93LCB3ZSBvbmx5IHBhcnNlIHRoZSBzeW50YXggYW5kIHRocm93IG91dCBhbnl0aGluZyBvdGhlciB0aGFuCi0gKiAidG9wIiBtYWdpYy4KLSAqCi0gKiBORUVEU1dPUks6IFRoaXMgbmVlZHMgdG8gYmUgcmV3cml0dGVuIHdoZW4gd2Ugc3RhcnQgbWlncmF0aW5nCi0gKiBnZXRfcGF0aHNwZWMoKSB1c2VycyB0byB1c2UgdGhlICJzdHJ1Y3QgcGF0aHNwZWMiIGludGVyZmFjZS4gIEZvcgotICogZXhhbXBsZSwgYSBwYXRoc3BlYyBlbGVtZW50IG1heSBiZSBtYXJrZWQgYXMgY2FzZS1pbnNlbnNpdGl2ZSwgYnV0Ci0gKiB0aGUgcHJlZml4IHBhcnQgbXVzdCBhbHdheXMgbWF0Y2ggbGl0ZXJhbGx5LCBhbmQgYSBzaW5nbGUgc3R1cGlkCi0gKiBzdHJpbmcgY2Fubm90IGV4cHJlc3Mgc3VjaCBhIGNhc2UuCi0gKi8KLXN0YXRpYyBjb25zdCBjaGFyICpwcmVmaXhfcGF0aHNwZWMoY29uc3QgY2hhciAqcHJlZml4LCBpbnQgcHJlZml4bGVuLCBjb25zdCBjaGFyICplbHQpCi17Ci0JdW5zaWduZWQgbWFnaWMgPSAwOwotCWNvbnN0IGNoYXIgKmNvcHlmcm9tID0gZWx0OwotCWludCBpOwotCi0JaWYgKGVsdFswXSAhPSAnOicpIHsKLQkJOyAvKiBub3RoaW5nIHRvIGRvICovCi0JfSBlbHNlIGlmIChlbHRbMV0gPT0gJygnKSB7Ci0JCS8qIGxvbmdoYW5kICovCi0JCWNvbnN0IGNoYXIgKm5leHRhdDsKLQkJZm9yIChjb3B5ZnJvbSA9IGVsdCArIDI7Ci0JCSAgICAgKmNvcHlmcm9tICYmICpjb3B5ZnJvbSAhPSAnKSc7Ci0JCSAgICAgY29weWZyb20gPSBuZXh0YXQpIHsKLQkJCXNpemVfdCBsZW4gPSBzdHJjc3BuKGNvcHlmcm9tLCAiLCkiKTsKLQkJCWlmIChjb3B5ZnJvbVtsZW5dID09ICcsJykKLQkJCQluZXh0YXQgPSBjb3B5ZnJvbSArIGxlbiArIDE7Ci0JCQllbHNlCi0JCQkJLyogaGFuZGxlICcpJyBhbmQgJ1wwJyAqLwotCQkJCW5leHRhdCA9IGNvcHlmcm9tICsgbGVuOwotCQkJaWYgKCFsZW4pCi0JCQkJY29udGludWU7Ci0JCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwYXRoc3BlY19tYWdpYyk7IGkrKykKLQkJCQlpZiAoc3RybGVuKHBhdGhzcGVjX21hZ2ljW2ldLm5hbWUpID09IGxlbiAmJgotCQkJCSAgICAhc3RybmNtcChwYXRoc3BlY19tYWdpY1tpXS5uYW1lLCBjb3B5ZnJvbSwgbGVuKSkgewotCQkJCQltYWdpYyB8PSBwYXRoc3BlY19tYWdpY1tpXS5iaXQ7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCWlmIChBUlJBWV9TSVpFKHBhdGhzcGVjX21hZ2ljKSA8PSBpKQotCQkJCWRpZSgiSW52YWxpZCBwYXRoc3BlYyBtYWdpYyAnJS4qcycgaW4gJyVzJyIsCi0JCQkJICAgIChpbnQpIGxlbiwgY29weWZyb20sIGVsdCk7Ci0JCX0KLQkJaWYgKCpjb3B5ZnJvbSAhPSAnKScpCi0JCQlkaWUoIk1pc3NpbmcgJyknIGF0IHRoZSBlbmQgb2YgcGF0aHNwZWMgbWFnaWMgaW4gJyVzJyIsIGVsdCk7Ci0JCWNvcHlmcm9tKys7Ci0JfSBlbHNlIHsKLQkJLyogc2hvcnRoYW5kICovCi0JCWZvciAoY29weWZyb20gPSBlbHQgKyAxOwotCQkgICAgICpjb3B5ZnJvbSAmJiAqY29weWZyb20gIT0gJzonOwotCQkgICAgIGNvcHlmcm9tKyspIHsKLQkJCWNoYXIgY2ggPSAqY29weWZyb207Ci0KLQkJCWlmICghaXNfcGF0aHNwZWNfbWFnaWMoY2gpKQotCQkJCWJyZWFrOwotCQkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocGF0aHNwZWNfbWFnaWMpOyBpKyspCi0JCQkJaWYgKHBhdGhzcGVjX21hZ2ljW2ldLm1uZW1vbmljID09IGNoKSB7Ci0JCQkJCW1hZ2ljIHw9IHBhdGhzcGVjX21hZ2ljW2ldLmJpdDsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCQkJaWYgKEFSUkFZX1NJWkUocGF0aHNwZWNfbWFnaWMpIDw9IGkpCi0JCQkJZGllKCJVbmltcGxlbWVudGVkIHBhdGhzcGVjIG1hZ2ljICclYycgaW4gJyVzJyIsCi0JCQkJICAgIGNoLCBlbHQpOwotCQl9Ci0JCWlmICgqY29weWZyb20gPT0gJzonKQotCQkJY29weWZyb20rKzsKLQl9Ci0KLQlpZiAobWFnaWMgJiBQQVRIU1BFQ19GUk9NVE9QKQotCQlyZXR1cm4geHN0cmR1cChjb3B5ZnJvbSk7Ci0JZWxzZQotCQlyZXR1cm4gcHJlZml4X3BhdGgocHJlZml4LCBwcmVmaXhsZW4sIGNvcHlmcm9tKTsKLX0KLQotLyoKLSAqIE4uQi4gZ2V0X3BhdGhzcGVjKCkgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB0aGUgInN0cnVjdCBwYXRoc3BlYyIKLSAqIGJhc2VkIGludGVyZmFjZSAtIHNlZSBwYXRoc3BlY19tYWdpYyBhYm92ZS4KLSAqCi0gKiBBcmd1bWVudHM6Ci0gKiAgLSBwcmVmaXggLSBhIHBhdGggcmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2YgdGhlIHdvcmtpbmcgdHJlZQotICogIC0gcGF0aHNwZWMgLSBhIGxpc3Qgb2YgcGF0aHMgdW5kZXJuZWF0aCB0aGUgcHJlZml4IHBhdGgKLSAqCi0gKiBJdGVyYXRlcyBvdmVyIHBhdGhzcGVjLCBwcmVwZW5kaW5nIGVhY2ggcGF0aCB3aXRoIHByZWZpeCwKLSAqIGFuZCByZXR1cm4gdGhlIHJlc3VsdGluZyBsaXN0LgotICoKLSAqIElmIHBhdGhzcGVjIGlzIGVtcHR5LCByZXR1cm4gYSBzaW5nbGV0b24gbGlzdCBjb250YWluaW5nIHByZWZpeC4KLSAqCi0gKiBJZiBwYXRoc3BlYyBhbmQgcHJlZml4IGFyZSBib3RoIGVtcHR5LCByZXR1cm4gYW4gZW1wdHkgbGlzdC4KLSAqCi0gKiBUaGlzIGlzIHR5cGljYWxseSB1c2VkIGJ5IGJ1aWx0LWluIGNvbW1hbmRzIHN1Y2ggYXMgYWRkLmMsIGluIG9yZGVyCi0gKiB0byBub3JtYWxpemUgYXJndiBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGJ1aWx0LWluIGludG8gYSBsaXN0IG9mCi0gKiBwYXRocyB0byBwcm9jZXNzLCBhbGwgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2YgdGhlIHdvcmtpbmcgdHJlZS4KLSAqLwotY29uc3QgY2hhciAqKmdldF9wYXRoc3BlYyhjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKipwYXRoc3BlYykKLXsKLQljb25zdCBjaGFyICplbnRyeSA9ICpwYXRoc3BlYzsKLQljb25zdCBjaGFyICoqc3JjLCAqKmRzdDsKLQlpbnQgcHJlZml4bGVuOwotCi0JaWYgKCFwcmVmaXggJiYgIWVudHJ5KQotCQlyZXR1cm4gTlVMTDsKLQotCWlmICghZW50cnkpIHsKLQkJc3RhdGljIGNvbnN0IGNoYXIgKnNwZWNbMl07Ci0JCXNwZWNbMF0gPSBwcmVmaXg7Ci0JCXNwZWNbMV0gPSBOVUxMOwotCQlyZXR1cm4gc3BlYzsKLQl9Ci0KLQkvKiBPdGhlcndpc2Ugd2UgaGF2ZSB0byByZS13cml0ZSB0aGUgZW50cmllcy4uICovCi0Jc3JjID0gcGF0aHNwZWM7Ci0JZHN0ID0gcGF0aHNwZWM7Ci0JcHJlZml4bGVuID0gcHJlZml4ID8gc3RybGVuKHByZWZpeCkgOiAwOwotCXdoaWxlICgqc3JjKSB7Ci0JCSooZHN0KyspID0gcHJlZml4X3BhdGhzcGVjKHByZWZpeCwgcHJlZml4bGVuLCAqc3JjKTsKLQkJc3JjKys7Ci0JfQotCSpkc3QgPSBOVUxMOwotCWlmICghKnBhdGhzcGVjKQotCQlyZXR1cm4gTlVMTDsKLQlyZXR1cm4gcGF0aHNwZWM7Ci19CiAKIC8qCiAgKiBUZXN0IGlmIGl0IGxvb2tzIGxpa2Ugd2UncmUgYXQgYSBnaXQgZGlyZWN0b3J5LgpAQCAtMzYwLDcgKzIyNyw2IEBACiAKIHZvaWQgc2V0dXBfd29ya190cmVlKHZvaWQpCiB7Ci0Jc3RydWN0IHN0cmJ1ZiBzYiA9IFNUUkJVRl9JTklUOwogCWNvbnN0IGNoYXIgKndvcmtfdHJlZSwgKmdpdF9kaXI7CiAJc3RhdGljIGludCBpbml0aWFsaXplZCA9IDA7CiAKQEAgLTM4MCwxMCArMjQ2LDggQEAKIAlpZiAoZ2V0ZW52KEdJVF9XT1JLX1RSRUVfRU5WSVJPTk1FTlQpKQogCQlzZXRlbnYoR0lUX1dPUktfVFJFRV9FTlZJUk9OTUVOVCwgIi4iLCAxKTsKIAotCXNldF9naXRfZGlyKHJlbGF0aXZlX3BhdGgoZ2l0X2Rpciwgd29ya190cmVlLCAmc2IpKTsKKwlzZXRfZ2l0X2RpcihyZW1vdmVfbGVhZGluZ19wYXRoKGdpdF9kaXIsIHdvcmtfdHJlZSkpOwogCWluaXRpYWxpemVkID0gMTsKLQotCXN0cmJ1Zl9yZWxlYXNlKCZzYik7CiB9CiAKIHN0YXRpYyBpbnQgY2hlY2tfcmVwb3NpdG9yeV9mb3JtYXRfZ2VudGx5KGNvbnN0IGNoYXIgKmdpdGRpciwgaW50ICpub25naXRfb2spCkBAIC00NDAsNyArMzA0LDcgQEAKIAlpZiAobGVuICE9IHN0LnN0X3NpemUpCiAJCWRpZSgiRXJyb3IgcmVhZGluZyAlcyIsIHBhdGgpOwogCWJ1ZltsZW5dID0gJ1wwJzsKLQlpZiAocHJlZml4Y21wKGJ1ZiwgImdpdGRpcjogIikpCisJaWYgKCFzdGFydHNfd2l0aChidWYsICJnaXRkaXI6ICIpKQogCQlkaWUoIkludmFsaWQgZ2l0ZmlsZSBmb3JtYXQ6ICVzIiwgcGF0aCk7CiAJd2hpbGUgKGJ1ZltsZW4gLSAxXSA9PSAnXG4nIHx8IGJ1ZltsZW4gLSAxXSA9PSAnXHInKQogCQlsZW4tLTsKQEAgLTY5OSw3ICs1NjMsNyBAQAogewogCWNvbnN0IGNoYXIgKmVudl9jZWlsaW5nX2RpcnMgPSBnZXRlbnYoQ0VJTElOR19ESVJFQ1RPUklFU19FTlZJUk9OTUVOVCk7CiAJc3RydWN0IHN0cmluZ19saXN0IGNlaWxpbmdfZGlycyA9IFNUUklOR19MSVNUX0lOSVRfRFVQOwotCXN0YXRpYyBjaGFyIGN3ZFtQQVRIX01BWCsxXTsKKwlzdGF0aWMgY2hhciBjd2RbUEFUSF9NQVggKyAxXTsKIAljb25zdCBjaGFyICpnaXRkaXJlbnYsICpyZXQ7CiAJY2hhciAqZ2l0ZmlsZTsKIAlpbnQgbGVuLCBvZmZzZXQsIG9mZnNldF9wYXJlbnQsIGNlaWxfb2Zmc2V0ID0gLTE7CkBAIC03MTQsNyArNTc4LDcgQEAKIAlpZiAobm9uZ2l0X29rKQogCQkqbm9uZ2l0X29rID0gMDsKIAotCWlmICghZ2V0Y3dkKGN3ZCwgc2l6ZW9mKGN3ZCktMSkpCisJaWYgKCFnZXRjd2QoY3dkLCBzaXplb2YoY3dkKSAtIDEpKQogCQlkaWVfZXJybm8oIlVuYWJsZSB0byByZWFkIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkiKTsKIAlvZmZzZXQgPSBsZW4gPSBzdHJsZW4oY3dkKTsKIApkaWZmIC0tZ2l0IGEvc2hhMS1sb29rdXAuYyBiL3NoYTEtbG9va3VwLmMKaW5kZXggYzRkYzU1ZC4uMmRkODUxNSAxMDA2NDQKLS0tIGEvc2hhMS1sb29rdXAuYworKysgYi9zaGExLWxvb2t1cC5jCkBAIC0yMDQsNyArMjA0LDU0IEBACiAJCQkgKiBieXRlIDAgdGhydSAob2ZzLTEpIGFyZSB0aGUgc2FtZSBiZXR3ZWVuCiAJCQkgKiBsbyBhbmQgaGk7IG9mcyBpcyB0aGUgZmlyc3QgYnl0ZSB0aGF0IGlzCiAJCQkgKiBkaWZmZXJlbnQuCisJCQkgKgorCQkJICogSWYgb2ZzPT0yMCwgdGhlbiBubyBieXRlcyBhcmUgZGlmZmVyZW50LAorCQkJICogbWVhbmluZyB3ZSBoYXZlIGVudHJpZXMgd2l0aCBkdXBsaWNhdGUKKwkJCSAqIGtleXMuIFdlIGtub3cgdGhhdCB3ZSBhcmUgaW4gYSBzb2xpZCBydW4KKwkJCSAqIG9mIHRoaXMgZW50cnkgKGJlY2F1c2UgdGhlIGVudHJpZXMgYXJlCisJCQkgKiBzb3J0ZWQsIGFuZCBvdXIgbG8gYW5kIGhpIGFyZSB0aGUgc2FtZSwKKwkJCSAqIHRoZXJlIGNhbiBiZSBub3RoaW5nIGJ1dCB0aGlzIHNpbmdsZSBrZXkKKwkJCSAqIGluIGJldHdlZW4pLiBTbyB3ZSBjYW4gc3RvcCB0aGUgc2VhcmNoLgorCQkJICogRWl0aGVyIG9uZSBvZiB0aGVzZSBlbnRyaWVzIGlzIGl0IChhbmQKKwkJCSAqIHdlIGRvIG5vdCBjYXJlIHdoaWNoKSwgb3Igd2UgZG8gbm90IGhhdmUKKwkJCSAqIGl0LgorCQkJICoKKwkJCSAqIEZ1cnRoZXJtb3JlLCB3ZSBrbm93IHRoYXQgb25lIG9mIG91cgorCQkJICogZW5kcG9pbnRzIG11c3QgYmUgdGhlIGVkZ2Ugb2YgdGhlIHJ1biBvZgorCQkJICogZHVwbGljYXRlcy4gRm9yIGV4YW1wbGUsIGdpdmVuIHRoaXMKKwkJCSAqIHNlcXVlbmNlOgorCQkJICoKKwkJCSAqICAgICBpZHggMCAxIDIgMyA0IDUKKwkJCSAqICAgICBrZXkgQSBDIEMgQyBDIEQKKwkJCSAqCisJCQkgKiBJZiB3ZSBhcmUgc2VhcmNoaW5nIGZvciAiQiIsIHdlIG1pZ2h0CisJCQkgKiBoaXQgdGhlIGR1cGxpY2F0ZSBydW4gYXQgbG89MSwgaGk9MworCQkJICogKGUuZy4sIGJ5IGZpcnN0IG1pPTMsIHRoZW4gbWk9MCkuIEJ1dCB3ZQorCQkJICogY2FuIG5ldmVyIGhhdmUgbG8gPiAxLCBiZWNhdXNlIEIgPCBDLgorCQkJICogVGhhdCBpcywgaWYgb3VyIGtleSBpcyBsZXNzIHRoYW4gdGhlCisJCQkgKiBydW4sIHdlIGtub3cgdGhhdCAibG8iIGlzIHRoZSBlZGdlLCBidXQKKwkJCSAqIHdlIGNhbiBzYXkgbm90aGluZyBvZiAiaGkiLiBTaW1pbGFybHksCisJCQkgKiBpZiBvdXIga2V5IGlzIGdyZWF0ZXIgdGhhbiB0aGUgcnVuLCB3ZQorCQkJICoga25vdyB0aGF0ICJoaSIgaXMgdGhlIGVkZ2UsIGJ1dCB3ZSBjYW4KKwkJCSAqIHNheSBub3RoaW5nIG9mICJsbyIuCisJCQkgKgorCQkJICogVGhlcmVmb3JlIGlmIHdlIGRvIG5vdCBmaW5kIGl0LCB3ZSBhbHNvCisJCQkgKiBrbm93IHdoZXJlIGl0IHdvdWxkIGdvIGlmIGl0IGRpZCBleGlzdDoKKwkJCSAqIGp1c3Qgb24gdGhlIGZhciBzaWRlIG9mIHRoZSBlZGdlIHRoYXQgd2UKKwkJCSAqIGtub3cgYWJvdXQuCiAJCQkgKi8KKwkJCWlmIChvZnMgPT0gMjApIHsKKwkJCQltaSA9IGxvOworCQkJCW1pX2tleSA9IGJhc2UgKyBlbGVtX3NpemUgKiBtaSArIGtleV9vZmZzZXQ7CisJCQkJY21wID0gbWVtY21wKG1pX2tleSwga2V5LCAyMCk7CisJCQkJaWYgKCFjbXApCisJCQkJCXJldHVybiBtaTsKKwkJCQlpZiAoY21wIDwgMCkKKwkJCQkJcmV0dXJuIC0xIC0gaGk7CisJCQkJZWxzZQorCQkJCQlyZXR1cm4gLTEgLSBsbzsKKwkJCX0KKwogCQkJaGl2ID0gaGlfa2V5W29mc18wXTsKIAkJCWlmIChvZnNfMCA8IDE5KQogCQkJCWhpdiA9IChoaXYgPDwgOCkgfCBoaV9rZXlbb2ZzXzArMV07CmRpZmYgLS1naXQgYS9zaGExX2ZpbGUuYyBiL3NoYTFfZmlsZS5jCmluZGV4IDYxMzgzOWQuLjZlOGMwNWQgMTAwNjQ0Ci0tLSBhL3NoYTFfZmlsZS5jCisrKyBiL3NoYTFfZmlsZS5jCkBAIC0xMDUsNTAgKzEwNSw2MyBAQAogCXJldHVybiBhZGp1c3Rfc2hhcmVkX3Blcm0ocGF0aCk7CiB9CiAKLWludCBzYWZlX2NyZWF0ZV9sZWFkaW5nX2RpcmVjdG9yaWVzKGNoYXIgKnBhdGgpCitlbnVtIHNjbGRfZXJyb3Igc2FmZV9jcmVhdGVfbGVhZGluZ19kaXJlY3RvcmllcyhjaGFyICpwYXRoKQogewotCWNoYXIgKnBvcyA9IHBhdGggKyBvZmZzZXRfMXN0X2NvbXBvbmVudChwYXRoKTsKLQlzdHJ1Y3Qgc3RhdCBzdDsKKwljaGFyICpuZXh0X2NvbXBvbmVudCA9IHBhdGggKyBvZmZzZXRfMXN0X2NvbXBvbmVudChwYXRoKTsKKwllbnVtIHNjbGRfZXJyb3IgcmV0ID0gU0NMRF9PSzsKIAotCXdoaWxlIChwb3MpIHsKLQkJcG9zID0gc3RyY2hyKHBvcywgJy8nKTsKLQkJaWYgKCFwb3MpCisJd2hpbGUgKHJldCA9PSBTQ0xEX09LICYmIG5leHRfY29tcG9uZW50KSB7CisJCXN0cnVjdCBzdGF0IHN0OworCQljaGFyICpzbGFzaCA9IG5leHRfY29tcG9uZW50LCBzbGFzaF9jaGFyYWN0ZXI7CisKKwkJd2hpbGUgKCpzbGFzaCAmJiAhaXNfZGlyX3NlcCgqc2xhc2gpKQorCQkJc2xhc2grKzsKKworCQlpZiAoISpzbGFzaCkKIAkJCWJyZWFrOwotCQl3aGlsZSAoKisrcG9zID09ICcvJykKLQkJCTsKLQkJaWYgKCEqcG9zKQorCisJCW5leHRfY29tcG9uZW50ID0gc2xhc2ggKyAxOworCQl3aGlsZSAoaXNfZGlyX3NlcCgqbmV4dF9jb21wb25lbnQpKQorCQkJbmV4dF9jb21wb25lbnQrKzsKKwkJaWYgKCEqbmV4dF9jb21wb25lbnQpCiAJCQlicmVhazsKLQkJKi0tcG9zID0gJ1wwJzsKKworCQlzbGFzaF9jaGFyYWN0ZXIgPSAqc2xhc2g7CisJCSpzbGFzaCA9ICdcMCc7CiAJCWlmICghc3RhdChwYXRoLCAmc3QpKSB7CiAJCQkvKiBwYXRoIGV4aXN0cyAqLwotCQkJaWYgKCFTX0lTRElSKHN0LnN0X21vZGUpKSB7Ci0JCQkJKnBvcyA9ICcvJzsKLQkJCQlyZXR1cm4gLTM7Ci0JCQl9Ci0JCX0KLQkJZWxzZSBpZiAobWtkaXIocGF0aCwgMDc3NykpIHsKKwkJCWlmICghU19JU0RJUihzdC5zdF9tb2RlKSkKKwkJCQlyZXQgPSBTQ0xEX0VYSVNUUzsKKwkJfSBlbHNlIGlmIChta2RpcihwYXRoLCAwNzc3KSkgewogCQkJaWYgKGVycm5vID09IEVFWElTVCAmJgotCQkJICAgICFzdGF0KHBhdGgsICZzdCkgJiYgU19JU0RJUihzdC5zdF9tb2RlKSkgeworCQkJICAgICFzdGF0KHBhdGgsICZzdCkgJiYgU19JU0RJUihzdC5zdF9tb2RlKSkKIAkJCQk7IC8qIHNvbWVib2R5IGNyZWF0ZWQgaXQgc2luY2Ugd2UgY2hlY2tlZCAqLwotCQkJfSBlbHNlIHsKLQkJCQkqcG9zID0gJy8nOwotCQkJCXJldHVybiAtMTsKLQkJCX0KKwkJCWVsc2UgaWYgKGVycm5vID09IEVOT0VOVCkKKwkJCQkvKgorCQkJCSAqIEVpdGhlciBta2RpcigpIGZhaWxlZCBiZWNhdXNlCisJCQkJICogc29tZWJvZHkganVzdCBwcnVuZWQgdGhlIGNvbnRhaW5pbmcKKwkJCQkgKiBkaXJlY3RvcnksIG9yIHN0YXQoKSBmYWlsZWQgYmVjYXVzZQorCQkJCSAqIHRoZSBmaWxlIHRoYXQgd2FzIGluIG91ciB3YXkgd2FzCisJCQkJICoganVzdCByZW1vdmVkLiAgRWl0aGVyIHdheSwgaW5mb3JtCisJCQkJICogdGhlIGNhbGxlciB0aGF0IGl0IG1pZ2h0IGJlIHdvcnRoCisJCQkJICogdHJ5aW5nIGFnYWluOgorCQkJCSAqLworCQkJCXJldCA9IFNDTERfVkFOSVNIRUQ7CisJCQllbHNlCisJCQkJcmV0ID0gU0NMRF9GQUlMRUQ7CisJCX0gZWxzZSBpZiAoYWRqdXN0X3NoYXJlZF9wZXJtKHBhdGgpKSB7CisJCQlyZXQgPSBTQ0xEX1BFUk1TOwogCQl9Ci0JCWVsc2UgaWYgKGFkanVzdF9zaGFyZWRfcGVybShwYXRoKSkgewotCQkJKnBvcyA9ICcvJzsKLQkJCXJldHVybiAtMjsKLQkJfQotCQkqcG9zKysgPSAnLyc7CisJCSpzbGFzaCA9IHNsYXNoX2NoYXJhY3RlcjsKIAl9Ci0JcmV0dXJuIDA7CisJcmV0dXJuIHJldDsKIH0KIAotaW50IHNhZmVfY3JlYXRlX2xlYWRpbmdfZGlyZWN0b3JpZXNfY29uc3QoY29uc3QgY2hhciAqcGF0aCkKK2VudW0gc2NsZF9lcnJvciBzYWZlX2NyZWF0ZV9sZWFkaW5nX2RpcmVjdG9yaWVzX2NvbnN0KGNvbnN0IGNoYXIgKnBhdGgpCiB7CiAJLyogcGF0aCBwb2ludHMgdG8gY2FjaGUgZW50cmllcywgc28geHN0cmR1cCBiZWZvcmUgbWVzc2luZyB3aXRoIGl0ICovCiAJY2hhciAqYnVmID0geHN0cmR1cChwYXRoKTsKLQlpbnQgcmVzdWx0ID0gc2FmZV9jcmVhdGVfbGVhZGluZ19kaXJlY3RvcmllcyhidWYpOworCWVudW0gc2NsZF9lcnJvciByZXN1bHQgPSBzYWZlX2NyZWF0ZV9sZWFkaW5nX2RpcmVjdG9yaWVzKGJ1Zik7CiAJZnJlZShidWYpOwogCXJldHVybiByZXN1bHQ7CiB9CkBAIC02MTQsNyArNjI3LDcgQEAKIAl9CiB9CiAKLXN0YXRpYyBpbnQgdW51c2Vfb25lX3dpbmRvdyhzdHJ1Y3QgcGFja2VkX2dpdCAqY3VycmVudCwgaW50IGtlZXBfZmQpCitzdGF0aWMgaW50IHVudXNlX29uZV93aW5kb3coc3RydWN0IHBhY2tlZF9naXQgKmN1cnJlbnQpCiB7CiAJc3RydWN0IHBhY2tlZF9naXQgKnAsICpscnVfcCA9IE5VTEw7CiAJc3RydWN0IHBhY2tfd2luZG93ICpscnVfdyA9IE5VTEwsICpscnVfbCA9IE5VTEw7CkBAIC02MjgsMTUgKzY0MSw4IEBACiAJCXBhY2tfbWFwcGVkIC09IGxydV93LT5sZW47CiAJCWlmIChscnVfbCkKIAkJCWxydV9sLT5uZXh0ID0gbHJ1X3ctPm5leHQ7Ci0JCWVsc2UgeworCQllbHNlCiAJCQlscnVfcC0+d2luZG93cyA9IGxydV93LT5uZXh0OwotCQkJaWYgKCFscnVfcC0+d2luZG93cyAmJiBscnVfcC0+cGFja19mZCAhPSAtMQotCQkJCSYmIGxydV9wLT5wYWNrX2ZkICE9IGtlZXBfZmQpIHsKLQkJCQljbG9zZShscnVfcC0+cGFja19mZCk7Ci0JCQkJcGFja19vcGVuX2Zkcy0tOwotCQkJCWxydV9wLT5wYWNrX2ZkID0gLTE7Ci0JCQl9Ci0JCX0KIAkJZnJlZShscnVfdyk7CiAJCXBhY2tfb3Blbl93aW5kb3dzLS07CiAJCXJldHVybiAxOwpAQCAtNjQ0LDEwICs2NTAsMTAgQEAKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCByZWxlYXNlX3BhY2tfbWVtb3J5KHNpemVfdCBuZWVkLCBpbnQgZmQpCit2b2lkIHJlbGVhc2VfcGFja19tZW1vcnkoc2l6ZV90IG5lZWQpCiB7CiAJc2l6ZV90IGN1ciA9IHBhY2tfbWFwcGVkOwotCXdoaWxlIChuZWVkID49IChjdXIgLSBwYWNrX21hcHBlZCkgJiYgdW51c2Vfb25lX3dpbmRvdyhOVUxMLCBmZCkpCisJd2hpbGUgKG5lZWQgPj0gKGN1ciAtIHBhY2tfbWFwcGVkKSAmJiB1bnVzZV9vbmVfd2luZG93KE5VTEwpKQogCQk7IC8qIG5vdGhpbmcgKi8KIH0KIApAQCAtNjU4LDcgKzY2NCw3IEBACiAJaWYgKHJldCA9PSBNQVBfRkFJTEVEKSB7CiAJCWlmICghbGVuZ3RoKQogCQkJcmV0dXJuIE5VTEw7Ci0JCXJlbGVhc2VfcGFja19tZW1vcnkobGVuZ3RoLCBmZCk7CisJCXJlbGVhc2VfcGFja19tZW1vcnkobGVuZ3RoKTsKIAkJcmV0ID0gbW1hcChzdGFydCwgbGVuZ3RoLCBwcm90LCBmbGFncywgZmQsIG9mZnNldCk7CiAJCWlmIChyZXQgPT0gTUFQX0ZBSUxFRCkKIAkJCWRpZV9lcnJubygiT3V0IG9mIG1lbW9yeT8gbW1hcCBmYWlsZWQiKTsKQEAgLTY4Miw2ICs2ODgsODMgQEAKIAl9CiB9CiAKKy8qCisgKiBUaGUgTFJVIHBhY2sgaXMgdGhlIG9uZSB3aXRoIHRoZSBvbGRlc3QgTVJVIHdpbmRvdywgcHJlZmVycmluZyBwYWNrcworICogd2l0aCBubyB1c2VkIHdpbmRvd3MsIG9yIHRoZSBvbGRlc3QgbXRpbWUgaWYgaXQgaGFzIG5vIHdpbmRvd3MgYWxsb2NhdGVkLgorICovCitzdGF0aWMgdm9pZCBmaW5kX2xydV9wYWNrKHN0cnVjdCBwYWNrZWRfZ2l0ICpwLCBzdHJ1Y3QgcGFja2VkX2dpdCAqKmxydV9wLCBzdHJ1Y3QgcGFja193aW5kb3cgKiptcnVfdywgaW50ICphY2NlcHRfd2luZG93c19pbnVzZSkKK3sKKwlzdHJ1Y3QgcGFja193aW5kb3cgKncsICp0aGlzX21ydV93OworCWludCBoYXNfd2luZG93c19pbnVzZSA9IDA7CisKKwkvKgorCSAqIFJlamVjdCB0aGlzIHBhY2sgaWYgaXQgaGFzIHdpbmRvd3MgYW5kIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkCisJICogb25lIGRvZXMgbm90LiAgSWYgdGhpcyBwYWNrIGRvZXMgbm90IGhhdmUgd2luZG93cywgcmVqZWN0CisJICogaXQgaWYgdGhlIHBhY2sgZmlsZSBpcyBuZXdlciB0aGFuIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIG9uZS4KKwkgKi8KKwlpZiAoKmxydV9wICYmICEqbXJ1X3cgJiYgKHAtPndpbmRvd3MgfHwgcC0+bXRpbWUgPiAoKmxydV9wKS0+bXRpbWUpKQorCQlyZXR1cm47CisKKwlmb3IgKHcgPSB0aGlzX21ydV93ID0gcC0+d2luZG93czsgdzsgdyA9IHctPm5leHQpIHsKKwkJLyoKKwkJICogUmVqZWN0IHRoaXMgcGFjayBpZiBhbnkgb2YgaXRzIHdpbmRvd3MgYXJlIGluIHVzZSwKKwkJICogYnV0IHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHBhY2sgZGlkIG5vdCBoYXZlIGFueQorCQkgKiBpbnVzZSB3aW5kb3dzLiAgT3RoZXJ3aXNlLCByZWNvcmQgdGhhdCB0aGlzIHBhY2sKKwkJICogaGFzIHdpbmRvd3MgaW4gdXNlLgorCQkgKi8KKwkJaWYgKHctPmludXNlX2NudCkgeworCQkJaWYgKCphY2NlcHRfd2luZG93c19pbnVzZSkKKwkJCQloYXNfd2luZG93c19pbnVzZSA9IDE7CisJCQllbHNlCisJCQkJcmV0dXJuOworCQl9CisKKwkJaWYgKHctPmxhc3RfdXNlZCA+IHRoaXNfbXJ1X3ctPmxhc3RfdXNlZCkKKwkJCXRoaXNfbXJ1X3cgPSB3OworCisJCS8qCisJCSAqIFJlamVjdCB0aGlzIHBhY2sgaWYgaXQgaGFzIHdpbmRvd3MgdGhhdCBoYXZlIGJlZW4KKwkJICogdXNlZCBtb3JlIHJlY2VudGx5IHRoYW4gdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgcGFjay4KKwkJICogSWYgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgcGFjayBoYWQgd2luZG93cyBpbnVzZSBhbmQKKwkJICogd2UgaGF2ZSBub3QgZW5jb3VudGVyZWQgYSB3aW5kb3cgaW4gdGhpcyBwYWNrIHRoYXQgaXMKKwkJICogaW51c2UsIHNraXAgdGhpcyBjaGVjayBzaW5jZSB3ZSBwcmVmZXIgYSBwYWNrIHdpdGggbm8KKwkJICogaW51c2Ugd2luZG93cyB0byBvbmUgdGhhdCBoYXMgaW51c2Ugd2luZG93cy4KKwkJICovCisJCWlmICgqbXJ1X3cgJiYgKmFjY2VwdF93aW5kb3dzX2ludXNlID09IGhhc193aW5kb3dzX2ludXNlICYmCisJCSAgICB0aGlzX21ydV93LT5sYXN0X3VzZWQgPiAoKm1ydV93KS0+bGFzdF91c2VkKQorCQkJcmV0dXJuOworCX0KKworCS8qCisJICogU2VsZWN0IHRoaXMgcGFjay4KKwkgKi8KKwkqbXJ1X3cgPSB0aGlzX21ydV93OworCSpscnVfcCA9IHA7CisJKmFjY2VwdF93aW5kb3dzX2ludXNlID0gaGFzX3dpbmRvd3NfaW51c2U7Cit9CisKK3N0YXRpYyBpbnQgY2xvc2Vfb25lX3BhY2sodm9pZCkKK3sKKwlzdHJ1Y3QgcGFja2VkX2dpdCAqcCwgKmxydV9wID0gTlVMTDsKKwlzdHJ1Y3QgcGFja193aW5kb3cgKm1ydV93ID0gTlVMTDsKKwlpbnQgYWNjZXB0X3dpbmRvd3NfaW51c2UgPSAxOworCisJZm9yIChwID0gcGFja2VkX2dpdDsgcDsgcCA9IHAtPm5leHQpIHsKKwkJaWYgKHAtPnBhY2tfZmQgPT0gLTEpCisJCQljb250aW51ZTsKKwkJZmluZF9scnVfcGFjayhwLCAmbHJ1X3AsICZtcnVfdywgJmFjY2VwdF93aW5kb3dzX2ludXNlKTsKKwl9CisKKwlpZiAobHJ1X3ApIHsKKwkJY2xvc2UobHJ1X3AtPnBhY2tfZmQpOworCQlwYWNrX29wZW5fZmRzLS07CisJCWxydV9wLT5wYWNrX2ZkID0gLTE7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCiB2b2lkIHVudXNlX3BhY2soc3RydWN0IHBhY2tfd2luZG93ICoqd19jdXJzb3IpCiB7CiAJc3RydWN0IHBhY2tfd2luZG93ICp3ID0gKndfY3Vyc29yOwpAQCAtNzM3LDE1ICs4MjAsMzggQEAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ2V0X21heF9mZF9saW1pdCh2b2lkKQogewogI2lmZGVmIFJMSU1JVF9OT0ZJTEUKLQlzdHJ1Y3QgcmxpbWl0IGxpbTsKKwl7CisJCXN0cnVjdCBybGltaXQgbGltOwogCi0JaWYgKGdldHJsaW1pdChSTElNSVRfTk9GSUxFLCAmbGltKSkKLQkJZGllX2Vycm5vKCJjYW5ub3QgZ2V0IFJMSU1JVF9OT0ZJTEUiKTsKKwkJaWYgKCFnZXRybGltaXQoUkxJTUlUX05PRklMRSwgJmxpbSkpCisJCQlyZXR1cm4gbGltLnJsaW1fY3VyOworCX0KKyNlbmRpZgogCi0JcmV0dXJuIGxpbS5ybGltX2N1cjsKLSNlbGlmIGRlZmluZWQoX1NDX09QRU5fTUFYKQotCXJldHVybiBzeXNjb25mKF9TQ19PUEVOX01BWCk7Ci0jZWxpZiBkZWZpbmVkKE9QRU5fTUFYKQorI2lmZGVmIF9TQ19PUEVOX01BWAorCXsKKwkJbG9uZyBvcGVuX21heCA9IHN5c2NvbmYoX1NDX09QRU5fTUFYKTsKKwkJaWYgKDAgPCBvcGVuX21heCkKKwkJCXJldHVybiBvcGVuX21heDsKKwkJLyoKKwkJICogT3RoZXJ3aXNlLCB3ZSBnb3QgLTEgZm9yIG9uZSBvZiB0aGUgdHdvCisJCSAqIHJlYXNvbnM6CisJCSAqCisJCSAqICgxKSBzeXNjb25mKCkgZGlkIG5vdCB1bmRlcnN0YW5kIF9TQ19PUEVOX01BWAorCQkgKiAgICAgYW5kIHNpZ25hbGVkIGFuIGVycm9yIHdpdGggLTE7IG9yCisJCSAqICgyKSBzeXNjb25mKCkgc2FpZCB0aGVyZSBpcyBubyBsaW1pdC4KKwkJICoKKwkJICogV2UgX2NvdWxkXyBjbGVhciBlcnJubyBiZWZvcmUgY2FsbGluZyBzeXNjb25mKCkgdG8KKwkJICogdGVsbCB0aGVzZSB0d28gY2FzZXMgYXBhcnQgYW5kIHJldHVybiBhIGh1Z2UgbnVtYmVyCisJCSAqIGluIHRoZSBsYXR0ZXIgY2FzZSB0byBsZXQgdGhlIGNhbGxlciBjYXAgaXQgdG8gYQorCQkgKiB2YWx1ZSB0aGF0IGlzIG5vdCBzbyBzZWxmaXNoLCBidXQgbGV0dGluZyB0aGUKKwkJICogZmFsbGJhY2sgT1BFTl9NQVggY29kZXBhdGggdGFrZSBjYXJlIG9mIHRoZXNlIGNhc2VzCisJCSAqIGlzIGEgbG90IHNpbXBsZXIuCisJCSAqLworCX0KKyNlbmRpZgorCisjaWZkZWYgT1BFTl9NQVgKIAlyZXR1cm4gT1BFTl9NQVg7CiAjZWxzZQogCXJldHVybiAxOyAvKiBzZWUgdGhlIGNhbGxlciA7LSkgKi8KQEAgLTc3Nyw3ICs4ODMsNyBAQAogCQkJcGFja19tYXhfZmRzID0gMTsKIAl9CiAKLQl3aGlsZSAocGFja19tYXhfZmRzIDw9IHBhY2tfb3Blbl9mZHMgJiYgdW51c2Vfb25lX3dpbmRvdyhOVUxMLCAtMSkpCisJd2hpbGUgKHBhY2tfbWF4X2ZkcyA8PSBwYWNrX29wZW5fZmRzICYmIGNsb3NlX29uZV9wYWNrKCkpCiAJCTsgLyogbm90aGluZyAqLwogCiAJcC0+cGFja19mZCA9IGdpdF9vcGVuX25vYXRpbWUocC0+cGFja19uYW1lKTsKQEAgLTg5Myw3ICs5OTksNyBAQAogCQkJd2luLT5sZW4gPSAoc2l6ZV90KWxlbjsKIAkJCXBhY2tfbWFwcGVkICs9IHdpbi0+bGVuOwogCQkJd2hpbGUgKHBhY2tlZF9naXRfbGltaXQgPCBwYWNrX21hcHBlZAotCQkJCSYmIHVudXNlX29uZV93aW5kb3cocCwgcC0+cGFja19mZCkpCisJCQkJJiYgdW51c2Vfb25lX3dpbmRvdyhwKSkKIAkJCQk7IC8qIG5vdGhpbmcgKi8KIAkJCXdpbi0+YmFzZSA9IHhtbWFwKE5VTEwsIHdpbi0+bGVuLAogCQkJCVBST1RfUkVBRCwgTUFQX1BSSVZBVEUsCkBAIC05MzksNyArMTA0NSw3IEBACiAKIHN0YXRpYyB2b2lkIHRyeV90b19mcmVlX3BhY2tfbWVtb3J5KHNpemVfdCBzaXplKQogewotCXJlbGVhc2VfcGFja19tZW1vcnkoc2l6ZSwgLTEpOworCXJlbGVhc2VfcGFja19tZW1vcnkoc2l6ZSk7CiB9CiAKIHN0cnVjdCBwYWNrZWRfZ2l0ICphZGRfcGFja2VkX2dpdChjb25zdCBjaGFyICpwYXRoLCBpbnQgcGF0aF9sZW4sIGludCBsb2NhbCkKQEAgLTEzNzIsNTEgKzE0NzgsNiBAQAogCXJldHVybiBtYXA7CiB9CiAKLS8qCi0gKiBUaGVyZSB1c2VkIHRvIGJlIGEgc2Vjb25kIGxvb3NlIG9iamVjdCBoZWFkZXIgZm9ybWF0IHdoaWNoCi0gKiB3YXMgbWVhbnQgdG8gbWltaWMgdGhlIGluLXBhY2sgZm9ybWF0LCBhbGxvd2luZyBmb3IgZGlyZWN0Ci0gKiBjb3B5IG9mIHRoZSBvYmplY3QgZGF0YS4gIFRoaXMgZm9ybWF0IHR1cm5lZCB1cCBub3QgdG8gYmUKLSAqIHJlYWxseSB3b3J0aCBpdCBhbmQgd2Ugbm8gbG9uZ2VyIHdyaXRlIGxvb3NlIG9iamVjdHMgaW4gdGhhdAotICogZm9ybWF0LgotICovCi1zdGF0aWMgaW50IGV4cGVyaW1lbnRhbF9sb29zZV9vYmplY3QodW5zaWduZWQgY2hhciAqbWFwKQotewotCXVuc2lnbmVkIGludCB3b3JkOwotCi0JLyoKLQkgKiBXZSBtdXN0IGRldGVybWluZSBpZiB0aGUgYnVmZmVyIGNvbnRhaW5zIHRoZSBzdGFuZGFyZAotCSAqIHpsaWItZGVmbGF0ZWQgc3RyZWFtIG9yIHRoZSBleHBlcmltZW50YWwgZm9ybWF0IGJhc2VkCi0JICogb24gdGhlIGluLXBhY2sgb2JqZWN0IGZvcm1hdC4gQ29tcGFyZSB0aGUgaGVhZGVyIGJ5dGUKLQkgKiBmb3IgZWFjaCBmb3JtYXQ6Ci0JICoKLQkgKiBSRkMxOTUwIHpsaWIgdy8gZGVmbGF0ZSA6IDB3d3cxMDAwIDogMCA8PSB3d3cgPD0gNwotCSAqIEV4cGVyaW1lbnRhbCBwYWNrLWJhc2VkIDogU3R0dHNzc3MgOiB0dHQgPSAxLDIsMyw0Ci0JICoKLQkgKiBJZiBiaXQgNyBpcyBjbGVhciBhbmQgYml0cyAwLTMgZXF1YWwgOCwgdGhlIGJ1ZmZlciBNVVNUIGJlCi0JICogaW4gc3RhbmRhcmQgbG9vc2Utb2JqZWN0IGZvcm1hdCwgVU5MRVNTIGl0IGlzIGEgR2l0LXBhY2sKLQkgKiBmb3JtYXQgb2JqZWN0ICpleGFjdGx5KiA4IGJ5dGVzIGluIHNpemUgd2hlbiBpbmZsYXRlZC4KLQkgKgotCSAqIEhvd2V2ZXIsIFJGQzE5NTAgYWxzbyBzcGVjaWZpZXMgdGhhdCB0aGUgMXN0IDE2LWJpdCB3b3JkCi0JICogbXVzdCBiZSBkaXZpc2libGUgYnkgMzEgLSB0aGlzIGNoZWNrc3VtIHRlbGxzIHVzIG91ciBidWZmZXIKLQkgKiBpcyBpbiB0aGUgc3RhbmRhcmQgZm9ybWF0LCBnaXZpbmcgYSBmYWxzZSBwb3NpdGl2ZSBvbmx5IGlmCi0JICogdGhlIDFzdCB3b3JkIG9mIHRoZSBHaXQtcGFjayBmb3JtYXQgb2JqZWN0IGhhcHBlbnMgdG8gYmUKLQkgKiBkaXZpc2libGUgYnkgMzEsIGllOgotCSAqICAgICAgKChieXRlMCAqIDI1NikgKyBieXRlMSkgJSAzMSA9IDAKLQkgKiAgID0+ICAgICAgICAwdHR0MTAwMDB3d3cxMDAwICUgMzEgPSAwCi0JICoKLQkgKiBBcyBpdCBoYXBwZW5zLCB0aGlzIGNhc2UgY2FuIG9ubHkgYXJpc2UgZm9yIHd3dz0zICYgdHR0PTEKLQkgKiAtIGllLCBhIENvbW1pdCBvYmplY3QsIHdoaWNoIHdvdWxkIGhhdmUgdG8gYmUgOCBieXRlcyBpbgotCSAqIHNpemUuIEFzIG5vIENvbW1pdCBjYW4gYmUgdGhhdCBzbWFsbCwgd2UgZmluZCB0aGF0IHRoZQotCSAqIGNvbWJpbmF0aW9uIG9mIHRoZXNlIHR3byBjcml0ZXJpYSAoYml0bWFzayAmIGNoZWNrc3VtKQotCSAqIGNhbiBhbHdheXMgY29ycmVjdGx5IGRldGVybWluZSB0aGUgYnVmZmVyIGZvcm1hdC4KLQkgKi8KLQl3b3JkID0gKG1hcFswXSA8PCA4KSArIG1hcFsxXTsKLQlpZiAoKG1hcFswXSAmIDB4OEYpID09IDB4MDggJiYgISh3b3JkICUgMzEpKQotCQlyZXR1cm4gMDsKLQllbHNlCi0JCXJldHVybiAxOwotfQotCiB1bnNpZ25lZCBsb25nIHVucGFja19vYmplY3RfaGVhZGVyX2J1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsCiAJCXVuc2lnbmVkIGxvbmcgbGVuLCBlbnVtIG9iamVjdF90eXBlICp0eXBlLCB1bnNpZ25lZCBsb25nICpzaXplcCkKIHsKQEAgLTE0NDQsMTQgKzE1MDUsNiBAQAogCiBpbnQgdW5wYWNrX3NoYTFfaGVhZGVyKGdpdF96c3RyZWFtICpzdHJlYW0sIHVuc2lnbmVkIGNoYXIgKm1hcCwgdW5zaWduZWQgbG9uZyBtYXBzaXplLCB2b2lkICpidWZmZXIsIHVuc2lnbmVkIGxvbmcgYnVmc2l6KQogewotCXVuc2lnbmVkIGxvbmcgc2l6ZSwgdXNlZDsKLQlzdGF0aWMgY29uc3QgY2hhciB2YWxpZF9sb29zZV9vYmplY3RfdHlwZVs4XSA9IHsKLQkJMCwgLyogT0JKX0VYVCAqLwotCQkxLCAxLCAxLCAxLCAvKiAiY29tbWl0IiwgInRyZWUiLCAiYmxvYiIsICJ0YWciICovCi0JCTAsIC8qICJkZWx0YSIgYW5kIG90aGVycyBhcmUgaW52YWxpZCBpbiBhIGxvb3NlIG9iamVjdCAqLwotCX07Ci0JZW51bSBvYmplY3RfdHlwZSB0eXBlOwotCiAJLyogR2V0IHRoZSBkYXRhIHN0cmVhbSAqLwogCW1lbXNldChzdHJlYW0sIDAsIHNpemVvZigqc3RyZWFtKSk7CiAJc3RyZWFtLT5uZXh0X2luID0gbWFwOwpAQCAtMTQ1OSwyNyArMTUxMiw2IEBACiAJc3RyZWFtLT5uZXh0X291dCA9IGJ1ZmZlcjsKIAlzdHJlYW0tPmF2YWlsX291dCA9IGJ1ZnNpejsKIAotCWlmIChleHBlcmltZW50YWxfbG9vc2Vfb2JqZWN0KG1hcCkpIHsKLQkJLyoKLQkJICogVGhlIG9sZCBleHBlcmltZW50YWwgZm9ybWF0IHdlIG5vIGxvbmdlciBwcm9kdWNlOwotCQkgKiB3ZSBjYW4gc3RpbGwgcmVhZCBpdC4KLQkJICovCi0JCXVzZWQgPSB1bnBhY2tfb2JqZWN0X2hlYWRlcl9idWZmZXIobWFwLCBtYXBzaXplLCAmdHlwZSwgJnNpemUpOwotCQlpZiAoIXVzZWQgfHwgIXZhbGlkX2xvb3NlX29iamVjdF90eXBlW3R5cGVdKQotCQkJcmV0dXJuIC0xOwotCQltYXAgKz0gdXNlZDsKLQkJbWFwc2l6ZSAtPSB1c2VkOwotCi0JCS8qIFNldCB1cCB0aGUgc3RyZWFtIGZvciB0aGUgcmVzdC4uICovCi0JCXN0cmVhbS0+bmV4dF9pbiA9IG1hcDsKLQkJc3RyZWFtLT5hdmFpbF9pbiA9IG1hcHNpemU7Ci0JCWdpdF9pbmZsYXRlX2luaXQoc3RyZWFtKTsKLQotCQkvKiBBbmQgZ2VuZXJhdGUgdGhlIGZha2UgdHJhZGl0aW9uYWwgaGVhZGVyICovCi0JCXN0cmVhbS0+dG90YWxfb3V0ID0gMSArIHNucHJpbnRmKGJ1ZmZlciwgYnVmc2l6LCAiJXMgJWx1IiwKLQkJCQkJCSB0eXBlbmFtZSh0eXBlKSwgc2l6ZSk7Ci0JCXJldHVybiAwOwotCX0KIAlnaXRfaW5mbGF0ZV9pbml0KHN0cmVhbSk7CiAJcmV0dXJuIGdpdF9pbmZsYXRlKHN0cmVhbSwgMCk7CiB9CkBAIC0xNjcxLDYgKzE3MDMsMzggQEAKIAlyZXR1cm4gYmFzZV9vZmZzZXQ7CiB9CiAKKy8qCisgKiBMaWtlIGdldF9kZWx0YV9iYXNlIGFib3ZlLCBidXQgd2UgcmV0dXJuIHRoZSBzaGExIGluc3RlYWQgb2YgdGhlIHBhY2sKKyAqIG9mZnNldC4gVGhpcyBtZWFucyBpdCBpcyBjaGVhcGVyIGZvciBSRUYgZGVsdGFzICh3ZSBkbyBub3QgaGF2ZSB0byBkbworICogdGhlIGZpbmFsIG9iamVjdCBsb29rdXApLCBidXQgbW9yZSBleHBlbnNpdmUgZm9yIE9GUyBkZWx0YXMgKHdlCisgKiBoYXZlIHRvIGxvYWQgdGhlIHJldmlkeCB0byBjb252ZXJ0IHRoZSBvZmZzZXQgYmFjayBpbnRvIGEgc2hhMSkuCisgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyICpnZXRfZGVsdGFfYmFzZV9zaGExKHN0cnVjdCBwYWNrZWRfZ2l0ICpwLAorCQkJCQkJc3RydWN0IHBhY2tfd2luZG93ICoqd19jdXJzLAorCQkJCQkJb2ZmX3QgY3VycG9zLAorCQkJCQkJZW51bSBvYmplY3RfdHlwZSB0eXBlLAorCQkJCQkJb2ZmX3QgZGVsdGFfb2JqX29mZnNldCkKK3sKKwlpZiAodHlwZSA9PSBPQkpfUkVGX0RFTFRBKSB7CisJCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSB1c2VfcGFjayhwLCB3X2N1cnMsIGN1cnBvcywgTlVMTCk7CisJCXJldHVybiBiYXNlOworCX0gZWxzZSBpZiAodHlwZSA9PSBPQkpfT0ZTX0RFTFRBKSB7CisJCXN0cnVjdCByZXZpbmRleF9lbnRyeSAqcmV2aWR4OworCQlvZmZfdCBiYXNlX29mZnNldCA9IGdldF9kZWx0YV9iYXNlKHAsIHdfY3VycywgJmN1cnBvcywKKwkJCQkJCSAgIHR5cGUsIGRlbHRhX29ial9vZmZzZXQpOworCisJCWlmICghYmFzZV9vZmZzZXQpCisJCQlyZXR1cm4gTlVMTDsKKworCQlyZXZpZHggPSBmaW5kX3BhY2tfcmV2aW5kZXgocCwgYmFzZV9vZmZzZXQpOworCQlpZiAoIXJldmlkeCkKKwkJCXJldHVybiBOVUxMOworCisJCXJldHVybiBudGhfcGFja2VkX29iamVjdF9zaGExKHAsIHJldmlkeC0+bnIpOworCX0gZWxzZQorCQlyZXR1cm4gTlVMTDsKK30KKwogaW50IHVucGFja19vYmplY3RfaGVhZGVyKHN0cnVjdCBwYWNrZWRfZ2l0ICpwLAogCQkJIHN0cnVjdCBwYWNrX3dpbmRvdyAqKndfY3VycywKIAkJCSBvZmZfdCAqY3VycG9zLApAQCAtMTgyOCw2ICsxODkyLDIyIEBACiAJCX0KIAl9CiAKKwlpZiAob2ktPmRlbHRhX2Jhc2Vfc2hhMSkgeworCQlpZiAodHlwZSA9PSBPQkpfT0ZTX0RFTFRBIHx8IHR5cGUgPT0gT0JKX1JFRl9ERUxUQSkgeworCQkJY29uc3QgdW5zaWduZWQgY2hhciAqYmFzZTsKKworCQkJYmFzZSA9IGdldF9kZWx0YV9iYXNlX3NoYTEocCwgJndfY3VycywgY3VycG9zLAorCQkJCQkJICAgdHlwZSwgb2JqX29mZnNldCk7CisJCQlpZiAoIWJhc2UpIHsKKwkJCQl0eXBlID0gT0JKX0JBRDsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQkJaGFzaGNweShvaS0+ZGVsdGFfYmFzZV9zaGExLCBiYXNlKTsKKwkJfSBlbHNlCisJCQloYXNoY2xyKG9pLT5kZWx0YV9iYXNlX3NoYTEpOworCX0KKwogb3V0OgogCXVudXNlX3BhY2soJndfY3Vycyk7CiAJcmV0dXJuIHR5cGU7CkBAIC0yMDU2LDYgKzIxMzYsMTYgQEAKIAkJaW50IGk7CiAJCXN0cnVjdCBkZWx0YV9iYXNlX2NhY2hlX2VudHJ5ICplbnQ7CiAKKwkJZW50ID0gZ2V0X2RlbHRhX2Jhc2VfY2FjaGVfZW50cnkocCwgY3VycG9zKTsKKwkJaWYgKGVxX2RlbHRhX2Jhc2VfY2FjaGVfZW50cnkoZW50LCBwLCBjdXJwb3MpKSB7CisJCQl0eXBlID0gZW50LT50eXBlOworCQkJZGF0YSA9IGVudC0+ZGF0YTsKKwkJCXNpemUgPSBlbnQtPnNpemU7CisJCQljbGVhcl9kZWx0YV9iYXNlX2NhY2hlX2VudHJ5KGVudCk7CisJCQliYXNlX2Zyb21fY2FjaGUgPSAxOworCQkJYnJlYWs7CisJCX0KKwogCQlpZiAoZG9fY2hlY2tfcGFja2VkX29iamVjdF9jcmMgJiYgcC0+aW5kZXhfdmVyc2lvbiA+IDEpIHsKIAkJCXN0cnVjdCByZXZpbmRleF9lbnRyeSAqcmV2aWR4ID0gZmluZF9wYWNrX3JldmluZGV4KHAsIG9ial9vZmZzZXQpOwogCQkJdW5zaWduZWQgbG9uZyBsZW4gPSByZXZpZHhbMV0ub2Zmc2V0IC0gb2JqX29mZnNldDsKQEAgLTIwNzAsMTYgKzIxNjAsNiBAQAogCQkJfQogCQl9CiAKLQkJZW50ID0gZ2V0X2RlbHRhX2Jhc2VfY2FjaGVfZW50cnkocCwgY3VycG9zKTsKLQkJaWYgKGVxX2RlbHRhX2Jhc2VfY2FjaGVfZW50cnkoZW50LCBwLCBjdXJwb3MpKSB7Ci0JCQl0eXBlID0gZW50LT50eXBlOwotCQkJZGF0YSA9IGVudC0+ZGF0YTsKLQkJCXNpemUgPSBlbnQtPnNpemU7Ci0JCQljbGVhcl9kZWx0YV9iYXNlX2NhY2hlX2VudHJ5KGVudCk7Ci0JCQliYXNlX2Zyb21fY2FjaGUgPSAxOwotCQkJYnJlYWs7Ci0JCX0KLQogCQl0eXBlID0gdW5wYWNrX29iamVjdF9oZWFkZXIocCwgJndfY3VycywgJmN1cnBvcywgJnNpemUpOwogCQlpZiAodHlwZSAhPSBPQkpfT0ZTX0RFTFRBICYmIHR5cGUgIT0gT0JKX1JFRl9ERUxUQSkKIAkJCWJyZWFrOwpAQCAtMjQxMSwxNyArMjQ5MSwyMyBAQAogCWdpdF96c3RyZWFtIHN0cmVhbTsKIAljaGFyIGhkclszMl07CiAKKwlpZiAob2ktPmRlbHRhX2Jhc2Vfc2hhMSkKKwkJaGFzaGNscihvaS0+ZGVsdGFfYmFzZV9zaGExKTsKKwogCS8qCiAJICogSWYgd2UgZG9uJ3QgY2FyZSBhYm91dCB0eXBlIG9yIHNpemUsIHRoZW4gd2UgZG9uJ3QKLQkgKiBuZWVkIHRvIGxvb2sgaW5zaWRlIHRoZSBvYmplY3QgYXQgYWxsLgorCSAqIG5lZWQgdG8gbG9vayBpbnNpZGUgdGhlIG9iamVjdCBhdCBhbGwuIE5vdGUgdGhhdCB3ZQorCSAqIGRvIG5vdCBvcHRpbWl6ZSBvdXQgdGhlIHN0YXQgY2FsbCwgZXZlbiBpZiB0aGUKKwkgKiBjYWxsZXIgZG9lc24ndCBjYXJlIGFib3V0IHRoZSBkaXNrLXNpemUsIHNpbmNlIG91cgorCSAqIHJldHVybiB2YWx1ZSBpbXBsaWNpdGx5IGluZGljYXRlcyB3aGV0aGVyIHRoZQorCSAqIG9iamVjdCBldmVuIGV4aXN0cy4KIAkgKi8KIAlpZiAoIW9pLT50eXBlcCAmJiAhb2ktPnNpemVwKSB7Ci0JCWlmIChvaS0+ZGlza19zaXplcCkgewotCQkJc3RydWN0IHN0YXQgc3Q7Ci0JCQlpZiAoc3RhdF9zaGExX2ZpbGUoc2hhMSwgJnN0KSA8IDApCi0JCQkJcmV0dXJuIC0xOworCQlzdHJ1Y3Qgc3RhdCBzdDsKKwkJaWYgKHN0YXRfc2hhMV9maWxlKHNoYTEsICZzdCkgPCAwKQorCQkJcmV0dXJuIC0xOworCQlpZiAob2ktPmRpc2tfc2l6ZXApCiAJCQkqb2ktPmRpc2tfc2l6ZXAgPSBzdC5zdF9zaXplOwotCQl9CiAJCXJldHVybiAwOwogCX0KIApAQCAtMjQ0NCwxMyArMjUzMCwxNCBAQAogCXJldHVybiAwOwogfQogCi1pbnQgc2hhMV9vYmplY3RfaW5mb19leHRlbmRlZChjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBzdHJ1Y3Qgb2JqZWN0X2luZm8gKm9pKQoraW50IHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgc3RydWN0IG9iamVjdF9pbmZvICpvaSwgdW5zaWduZWQgZmxhZ3MpCiB7CiAJc3RydWN0IGNhY2hlZF9vYmplY3QgKmNvOwogCXN0cnVjdCBwYWNrX2VudHJ5IGU7CiAJaW50IHJ0eXBlOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnJlYWwgPSBsb29rdXBfcmVwbGFjZV9vYmplY3RfZXh0ZW5kZWQoc2hhMSwgZmxhZ3MpOwogCi0JY28gPSBmaW5kX2NhY2hlZF9vYmplY3Qoc2hhMSk7CisJY28gPSBmaW5kX2NhY2hlZF9vYmplY3QocmVhbCk7CiAJaWYgKGNvKSB7CiAJCWlmIChvaS0+dHlwZXApCiAJCQkqKG9pLT50eXBlcCkgPSBjby0+dHlwZTsKQEAgLTI0NTgsMjcgKzI1NDUsMjkgQEAKIAkJCSoob2ktPnNpemVwKSA9IGNvLT5zaXplOwogCQlpZiAob2ktPmRpc2tfc2l6ZXApCiAJCQkqKG9pLT5kaXNrX3NpemVwKSA9IDA7CisJCWlmIChvaS0+ZGVsdGFfYmFzZV9zaGExKQorCQkJaGFzaGNscihvaS0+ZGVsdGFfYmFzZV9zaGExKTsKIAkJb2ktPndoZW5jZSA9IE9JX0NBQ0hFRDsKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKCFmaW5kX3BhY2tfZW50cnkoc2hhMSwgJmUpKSB7CisJaWYgKCFmaW5kX3BhY2tfZW50cnkocmVhbCwgJmUpKSB7CiAJCS8qIE1vc3QgbGlrZWx5IGl0J3MgYSBsb29zZSBvYmplY3QuICovCi0JCWlmICghc2hhMV9sb29zZV9vYmplY3RfaW5mbyhzaGExLCBvaSkpIHsKKwkJaWYgKCFzaGExX2xvb3NlX29iamVjdF9pbmZvKHJlYWwsIG9pKSkgewogCQkJb2ktPndoZW5jZSA9IE9JX0xPT1NFOwogCQkJcmV0dXJuIDA7CiAJCX0KIAogCQkvKiBOb3QgYSBsb29zZSBvYmplY3Q7IHNvbWVvbmUgZWxzZSBtYXkgaGF2ZSBqdXN0IHBhY2tlZCBpdC4gKi8KIAkJcmVwcmVwYXJlX3BhY2tlZF9naXQoKTsKLQkJaWYgKCFmaW5kX3BhY2tfZW50cnkoc2hhMSwgJmUpKQorCQlpZiAoIWZpbmRfcGFja19lbnRyeShyZWFsLCAmZSkpCiAJCQlyZXR1cm4gLTE7CiAJfQogCiAJcnR5cGUgPSBwYWNrZWRfb2JqZWN0X2luZm8oZS5wLCBlLm9mZnNldCwgb2kpOwogCWlmIChydHlwZSA8IDApIHsKLQkJbWFya19iYWRfcGFja2VkX29iamVjdChlLnAsIHNoYTEpOwotCQlyZXR1cm4gc2hhMV9vYmplY3RfaW5mb19leHRlbmRlZChzaGExLCBvaSk7CisJCW1hcmtfYmFkX3BhY2tlZF9vYmplY3QoZS5wLCByZWFsKTsKKwkJcmV0dXJuIHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQocmVhbCwgb2ksIDApOwogCX0gZWxzZSBpZiAoaW5fZGVsdGFfYmFzZV9jYWNoZShlLnAsIGUub2Zmc2V0KSkgewogCQlvaS0+d2hlbmNlID0gT0lfREJDQUNIRUQ7CiAJfSBlbHNlIHsKQEAgLTI1MDAsNyArMjU4OSw3IEBACiAKIAlvaS50eXBlcCA9ICZ0eXBlOwogCW9pLnNpemVwID0gc2l6ZXA7Ci0JaWYgKHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQoc2hhMSwgJm9pKSA8IDApCisJaWYgKHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQoc2hhMSwgJm9pLCBMT09LVVBfUkVQTEFDRV9PQkpFQ1QpIDwgMCkKIAkJcmV0dXJuIC0xOwogCXJldHVybiB0eXBlOwogfQpAQCAtMjU5Miw4ICsyNjgxLDcgQEAKIAl2b2lkICpkYXRhOwogCWNoYXIgKnBhdGg7CiAJY29uc3Qgc3RydWN0IHBhY2tlZF9naXQgKnA7Ci0JY29uc3QgdW5zaWduZWQgY2hhciAqcmVwbCA9IChmbGFnICYgUkVBRF9TSEExX0ZJTEVfUkVQTEFDRSkKLQkJPyBsb29rdXBfcmVwbGFjZV9vYmplY3Qoc2hhMSkgOiBzaGExOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnJlcGwgPSBsb29rdXBfcmVwbGFjZV9vYmplY3RfZXh0ZW5kZWQoc2hhMSwgZmxhZyk7CiAKIAllcnJubyA9IDA7CiAJZGF0YSA9IHJlYWRfb2JqZWN0KHJlcGwsIHR5cGUsIHNpemUpOwpAQCAtMjc4Nyw3ICsyODc1LDkgQEAKIAkJLyogTWFrZSBzdXJlIHRoZSBkaXJlY3RvcnkgZXhpc3RzICovCiAJCW1lbWNweShidWZmZXIsIGZpbGVuYW1lLCBkaXJsZW4pOwogCQlidWZmZXJbZGlybGVuLTFdID0gMDsKLQkJaWYgKG1rZGlyKGJ1ZmZlciwgMDc3NykgfHwgYWRqdXN0X3NoYXJlZF9wZXJtKGJ1ZmZlcikpCisJCWlmIChta2RpcihidWZmZXIsIDA3NzcpICYmIGVycm5vICE9IEVFWElTVCkKKwkJCXJldHVybiAtMTsKKwkJaWYgKGFkanVzdF9zaGFyZWRfcGVybShidWZmZXIpKQogCQkJcmV0dXJuIC0xOwogCiAJCS8qIFRyeSBhZ2FpbiAqLwpkaWZmIC0tZ2l0IGEvc2hhMV9uYW1lLmMgYi9zaGExX25hbWUuYwppbmRleCA2NWFkMDY2Li42ZmNhODY5IDEwMDY0NAotLS0gYS9zaGExX25hbWUuYworKysgYi9zaGExX25hbWUuYwpAQCAtMzQzLDcgKzM0Myw2IEBACiAJcmV0dXJuIHN0YXR1czsKIH0KIAotCiBpbnQgZm9yX2VhY2hfYWJicmV2KGNvbnN0IGNoYXIgKnByZWZpeCwgZWFjaF9hYmJyZXZfZm4gZm4sIHZvaWQgKmNiX2RhdGEpCiB7CiAJY2hhciBoZXhfcGZ4WzQwXTsKQEAgLTQzMSw3ICs0MzAsNyBAQAogfQogCiBzdGF0aWMgaW50IGdldF9zaGExXzEoY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbiwgdW5zaWduZWQgY2hhciAqc2hhMSwgdW5zaWduZWQgbG9va3VwX2ZsYWdzKTsKLXN0YXRpYyBpbnQgaW50ZXJwcmV0X250aF9wcmlvcl9jaGVja291dChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3RyYnVmICpidWYpOworc3RhdGljIGludCBpbnRlcnByZXRfbnRoX3ByaW9yX2NoZWNrb3V0KGNvbnN0IGNoYXIgKm5hbWUsIGludCBuYW1lbGVuLCBzdHJ1Y3Qgc3RyYnVmICpidWYpOwogCiBzdGF0aWMgaW50IGdldF9zaGExX2Jhc2ljKGNvbnN0IGNoYXIgKnN0ciwgaW50IGxlbiwgdW5zaWduZWQgY2hhciAqc2hhMSkKIHsKQEAgLTQ1Miw5ICs0NTEsOSBAQAogCWludCBhdCwgcmVmbG9nX2xlbiwgbnRoX3ByaW9yID0gMDsKIAogCWlmIChsZW4gPT0gNDAgJiYgIWdldF9zaGExX2hleChzdHIsIHNoYTEpKSB7Ci0JCWlmICh3YXJuX29uX29iamVjdF9yZWZuYW1lX2FtYmlndWl0eSkgeworCQlpZiAod2Fybl9hbWJpZ3VvdXNfcmVmcyAmJiB3YXJuX29uX29iamVjdF9yZWZuYW1lX2FtYmlndWl0eSkgewogCQkJcmVmc19mb3VuZCA9IGR3aW1fcmVmKHN0ciwgbGVuLCB0bXBfc2hhMSwgJnJlYWxfcmVmKTsKLQkJCWlmIChyZWZzX2ZvdW5kID4gMCAmJiB3YXJuX2FtYmlndW91c19yZWZzKSB7CisJCQlpZiAocmVmc19mb3VuZCA+IDApIHsKIAkJCQl3YXJuaW5nKHdhcm5fbXNnLCBsZW4sIHN0cik7CiAJCQkJaWYgKGFkdmljZV9vYmplY3RfbmFtZV93YXJuaW5nKQogCQkJCQlmcHJpbnRmKHN0ZGVyciwgIiVzXG4iLCBfKG9iamVjdF9uYW1lX21zZykpOwpAQCAtNDkzLDcgKzQ5Miw3IEBACiAJCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CiAJCWludCBkZXRhY2hlZDsKIAotCQlpZiAoaW50ZXJwcmV0X250aF9wcmlvcl9jaGVja291dChzdHIsICZidWYpID4gMCkgeworCQlpZiAoaW50ZXJwcmV0X250aF9wcmlvcl9jaGVja291dChzdHIsIGxlbiwgJmJ1ZikgPiAwKSB7CiAJCQlkZXRhY2hlZCA9IChidWYubGVuID09IDQwICYmICFnZXRfc2hhMV9oZXgoYnVmLmJ1Ziwgc2hhMSkpOwogCQkJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7CiAJCQlpZiAoZGV0YWNoZWQpCkBAIC01NDcsNyArNTQ2LDcgQEAKIAkJaWYgKHJlYWRfcmVmX2F0KHJlYWxfcmVmLCBhdF90aW1lLCBudGgsIHNoYTEsIE5VTEwsCiAJCQkJJmNvX3RpbWUsICZjb190eiwgJmNvX2NudCkpIHsKIAkJCWlmICghbGVuKSB7Ci0JCQkJaWYgKCFwcmVmaXhjbXAocmVhbF9yZWYsICJyZWZzL2hlYWRzLyIpKSB7CisJCQkJaWYgKHN0YXJ0c193aXRoKHJlYWxfcmVmLCAicmVmcy9oZWFkcy8iKSkgewogCQkJCQlzdHIgPSByZWFsX3JlZiArIDExOwogCQkJCQlsZW4gPSBzdHJsZW4ocmVhbF9yZWYgKyAxMSk7CiAJCQkJfSBlbHNlIHsKQEAgLTU4Miw4ICs1ODEsNiBAQAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAJY29tbWl0ID0gbG9va3VwX2NvbW1pdF9yZWZlcmVuY2Uoc2hhMSk7Ci0JaWYgKCFjb21taXQpCi0JCXJldHVybiAtMTsKIAlpZiAocGFyc2VfY29tbWl0KGNvbW1pdCkpCiAJCXJldHVybiAtMTsKIAlpZiAoIWlkeCkgewpAQCAtNjc3LDEzICs2NzQsMTUgQEAKIAkJcmV0dXJuIC0xOwogCiAJc3ArKzsgLyogYmVnaW5uaW5nIG9mIHR5cGUgbmFtZSwgb3IgY2xvc2luZyBicmFjZSBmb3IgZW1wdHkgKi8KLQlpZiAoIXN0cm5jbXAoY29tbWl0X3R5cGUsIHNwLCA2KSAmJiBzcFs2XSA9PSAnfScpCisJaWYgKHN0YXJ0c193aXRoKHNwLCAiY29tbWl0fSIpKQogCQlleHBlY3RlZF90eXBlID0gT0JKX0NPTU1JVDsKLQllbHNlIGlmICghc3RybmNtcCh0cmVlX3R5cGUsIHNwLCA0KSAmJiBzcFs0XSA9PSAnfScpCisJZWxzZSBpZiAoc3RhcnRzX3dpdGgoc3AsICJ0YWd9IikpCisJCWV4cGVjdGVkX3R5cGUgPSBPQkpfVEFHOworCWVsc2UgaWYgKHN0YXJ0c193aXRoKHNwLCAidHJlZX0iKSkKIAkJZXhwZWN0ZWRfdHlwZSA9IE9CSl9UUkVFOwotCWVsc2UgaWYgKCFzdHJuY21wKGJsb2JfdHlwZSwgc3AsIDQpICYmIHNwWzRdID09ICd9JykKKwllbHNlIGlmIChzdGFydHNfd2l0aChzcCwgImJsb2J9IikpCiAJCWV4cGVjdGVkX3R5cGUgPSBPQkpfQkxPQjsKLQllbHNlIGlmICghcHJlZml4Y21wKHNwLCAib2JqZWN0fSIpKQorCWVsc2UgaWYgKHN0YXJ0c193aXRoKHNwLCAib2JqZWN0fSIpKQogCQlleHBlY3RlZF90eXBlID0gT0JKX0FOWTsKIAllbHNlIGlmIChzcFswXSA9PSAnfScpCiAJCWV4cGVjdGVkX3R5cGUgPSBPQkpfTk9ORTsKQEAgLTkxMCw3ICs5MDksNyBAQAogCWNvbnN0IGNoYXIgKm1hdGNoID0gTlVMTCwgKnRhcmdldCA9IE5VTEw7CiAJc2l6ZV90IGxlbjsKIAotCWlmICghcHJlZml4Y21wKG1lc3NhZ2UsICJjaGVja291dDogbW92aW5nIGZyb20gIikpIHsKKwlpZiAoc3RhcnRzX3dpdGgobWVzc2FnZSwgImNoZWNrb3V0OiBtb3ZpbmcgZnJvbSAiKSkgewogCQltYXRjaCA9IG1lc3NhZ2UgKyBzdHJsZW4oImNoZWNrb3V0OiBtb3ZpbmcgZnJvbSAiKTsKIAkJdGFyZ2V0ID0gc3Ryc3RyKG1hdGNoLCAiIHRvICIpOwogCX0KQEAgLTkzMCw3ICs5MjksOCBAQAogICogUGFyc2UgQHstTn0gc3ludGF4LCByZXR1cm4gdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHBhcnNlZAogICogaWYgc3VjY2Vzc2Z1bDsgb3RoZXJ3aXNlIHNpZ25hbCBhbiBlcnJvciB3aXRoIG5lZ2F0aXZlIHZhbHVlLgogICovCi1zdGF0aWMgaW50IGludGVycHJldF9udGhfcHJpb3JfY2hlY2tvdXQoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHN0cmJ1ZiAqYnVmKQorc3RhdGljIGludCBpbnRlcnByZXRfbnRoX3ByaW9yX2NoZWNrb3V0KGNvbnN0IGNoYXIgKm5hbWUsIGludCBuYW1lbGVuLAorCQkJCQlzdHJ1Y3Qgc3RyYnVmICpidWYpCiB7CiAJbG9uZyBudGg7CiAJaW50IHJldHZhbDsKQEAgLTkzOCw5ICs5MzgsMTEgQEAKIAljb25zdCBjaGFyICpicmFjZTsKIAljaGFyICpudW1fZW5kOwogCisJaWYgKG5hbWVsZW4gPCA0KQorCQlyZXR1cm4gLTE7CiAJaWYgKG5hbWVbMF0gIT0gJ0AnIHx8IG5hbWVbMV0gIT0gJ3snIHx8IG5hbWVbMl0gIT0gJy0nKQogCQlyZXR1cm4gLTE7Ci0JYnJhY2UgPSBzdHJjaHIobmFtZSwgJ30nKTsKKwlicmFjZSA9IG1lbWNocihuYW1lLCAnfScsIG5hbWVsZW4pOwogCWlmICghYnJhY2UpCiAJCXJldHVybiAtMTsKIAludGggPSBzdHJ0b2wobmFtZSArIDMsICZudW1fZW5kLCAxMCk7CkBAIC0xMDA0LDYgKzEwMDYsMjggQEAKIAlyZXR1cm4gc3Q7CiB9CiAKKy8qIHBhcnNlIEBzb21ldGhpbmcgc3ludGF4LCB3aGVuICdzb21ldGhpbmcnIGlzIG5vdCB7Lip9ICovCitzdGF0aWMgaW50IGludGVycHJldF9lbXB0eV9hdChjb25zdCBjaGFyICpuYW1lLCBpbnQgbmFtZWxlbiwgaW50IGxlbiwgc3RydWN0IHN0cmJ1ZiAqYnVmKQoreworCWNvbnN0IGNoYXIgKm5leHQ7CisKKwlpZiAobGVuIHx8IG5hbWVbMV0gPT0gJ3snKQorCQlyZXR1cm4gLTE7CisKKwkvKiBtYWtlIHN1cmUgaXQncyBhIHNpbmdsZSBALCBvciBAQHsuKn0sIG5vdCBAZm9vICovCisJbmV4dCA9IG1lbWNocihuYW1lICsgbGVuICsgMSwgJ0AnLCBuYW1lbGVuIC0gbGVuIC0gMSk7CisJaWYgKG5leHQgJiYgbmV4dFsxXSAhPSAneycpCisJCXJldHVybiAtMTsKKwlpZiAoIW5leHQpCisJCW5leHQgPSBuYW1lICsgbmFtZWxlbjsKKwlpZiAobmV4dCAhPSBuYW1lICsgMSkKKwkJcmV0dXJuIC0xOworCisJc3RyYnVmX3Jlc2V0KGJ1Zik7CisJc3RyYnVmX2FkZChidWYsICJIRUFEIiwgNCk7CisJcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBpbnQgcmVpbnRlcnByZXQoY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVsZW4sIGludCBsZW4sIHN0cnVjdCBzdHJidWYgKmJ1ZikKIHsKIAkvKiB3ZSBoYXZlIGV4dHJhIGRhdGEsIHdoaWNoIG1pZ2h0IG5lZWQgZnVydGhlciBwcm9jZXNzaW5nICovCkBAIC0xMDEyLDcgKzEwMzYsNyBAQAogCWludCByZXQ7CiAKIAlzdHJidWZfYWRkKGJ1ZiwgbmFtZSArIGxlbiwgbmFtZWxlbiAtIGxlbik7Ci0JcmV0ID0gaW50ZXJwcmV0X2JyYW5jaF9uYW1lKGJ1Zi0+YnVmLCAmdG1wKTsKKwlyZXQgPSBpbnRlcnByZXRfYnJhbmNoX25hbWUoYnVmLT5idWYsIGJ1Zi0+bGVuLCAmdG1wKTsKIAkvKiB0aGF0IGRhdGEgd2FzIG5vdCBpbnRlcnByZXRlZCwgcmVtb3ZlIG91ciBjcnVmdCAqLwogCWlmIChyZXQgPCAwKSB7CiAJCXN0cmJ1Zl9zZXRsZW4oYnVmLCB1c2VkKTsKQEAgLTEwMjUsNiArMTA0OSw1NyBAQAogCXJldHVybiByZXQgLSB1c2VkICsgbGVuOwogfQogCitzdGF0aWMgdm9pZCBzZXRfc2hvcnRlbmVkX3JlZihzdHJ1Y3Qgc3RyYnVmICpidWYsIGNvbnN0IGNoYXIgKnJlZikKK3sKKwljaGFyICpzID0gc2hvcnRlbl91bmFtYmlndW91c19yZWYocmVmLCAwKTsKKwlzdHJidWZfcmVzZXQoYnVmKTsKKwlzdHJidWZfYWRkc3RyKGJ1Ziwgcyk7CisJZnJlZShzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmdldF91cHN0cmVhbV9icmFuY2goY29uc3QgY2hhciAqYnJhbmNoX2J1ZiwgaW50IGxlbikKK3sKKwljaGFyICpicmFuY2ggPSB4c3RybmR1cChicmFuY2hfYnVmLCBsZW4pOworCXN0cnVjdCBicmFuY2ggKnVwc3RyZWFtID0gYnJhbmNoX2dldCgqYnJhbmNoID8gYnJhbmNoIDogTlVMTCk7CisKKwkvKgorCSAqIFVwc3RyZWFtIGNhbiBiZSBOVUxMIG9ubHkgaWYgYnJhbmNoIHJlZmVycyB0byBIRUFEIGFuZCBIRUFECisJICogcG9pbnRzIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgdGhhbiBhIGJyYW5jaC4KKwkgKi8KKwlpZiAoIXVwc3RyZWFtKQorCQlkaWUoXygiSEVBRCBkb2VzIG5vdCBwb2ludCB0byBhIGJyYW5jaCIpKTsKKwlpZiAoIXVwc3RyZWFtLT5tZXJnZSB8fCAhdXBzdHJlYW0tPm1lcmdlWzBdLT5kc3QpIHsKKwkJaWYgKCFyZWZfZXhpc3RzKHVwc3RyZWFtLT5yZWZuYW1lKSkKKwkJCWRpZShfKCJObyBzdWNoIGJyYW5jaDogJyVzJyIpLCBicmFuY2gpOworCQlpZiAoIXVwc3RyZWFtLT5tZXJnZSkgeworCQkJZGllKF8oIk5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAnJXMnIiksCisJCQkJdXBzdHJlYW0tPm5hbWUpOworCQl9CisJCWRpZSgKKwkJCV8oIlVwc3RyZWFtIGJyYW5jaCAnJXMnIG5vdCBzdG9yZWQgYXMgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIiksCisJCQl1cHN0cmVhbS0+bWVyZ2VbMF0tPnNyYyk7CisJfQorCWZyZWUoYnJhbmNoKTsKKworCXJldHVybiB1cHN0cmVhbS0+bWVyZ2VbMF0tPmRzdDsKK30KKworc3RhdGljIGludCBpbnRlcnByZXRfdXBzdHJlYW1fbWFyayhjb25zdCBjaGFyICpuYW1lLCBpbnQgbmFtZWxlbiwKKwkJCQkgICBpbnQgYXQsIHN0cnVjdCBzdHJidWYgKmJ1ZikKK3sKKwlpbnQgbGVuOworCisJbGVuID0gdXBzdHJlYW1fbWFyayhuYW1lICsgYXQsIG5hbWVsZW4gLSBhdCk7CisJaWYgKCFsZW4pCisJCXJldHVybiAtMTsKKworCWlmIChtZW1jaHIobmFtZSwgJzonLCBhdCkpCisJCXJldHVybiAtMTsKKworCXNldF9zaG9ydGVuZWRfcmVmKGJ1ZiwgZ2V0X3Vwc3RyZWFtX2JyYW5jaChuYW1lLCBhdCkpOworCXJldHVybiBsZW4gKyBhdDsKK30KKwogLyoKICAqIFRoaXMgcmVhZHMgc2hvcnQtaGFuZCBzeW50YXggdGhhdCBub3Qgb25seSBldmFsdWF0ZXMgdG8gYSBjb21taXQKICAqIG9iamVjdCBuYW1lLCBidXQgYWxzbyBjYW4gYWN0IGFzIGlmIHRoZSBlbmQgdXNlciBzcGVsbGVkIHRoZSBuYW1lCkBAIC0xMDQ2LDEzICsxMTIxLDE0IEBACiAgKiBJZiB0aGUgaW5wdXQgd2FzIG9rIGJ1dCB0aGVyZSBhcmUgbm90IE4gYnJhbmNoIHN3aXRjaGVzIGluIHRoZQogICogcmVmbG9nLCBpdCByZXR1cm5zIDAuCiAgKi8KLWludCBpbnRlcnByZXRfYnJhbmNoX25hbWUoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHN0cmJ1ZiAqYnVmKQoraW50IGludGVycHJldF9icmFuY2hfbmFtZShjb25zdCBjaGFyICpuYW1lLCBpbnQgbmFtZWxlbiwgc3RydWN0IHN0cmJ1ZiAqYnVmKQogewotCWNoYXIgKmNwOwotCXN0cnVjdCBicmFuY2ggKnVwc3RyZWFtOwotCWludCBuYW1lbGVuID0gc3RybGVuKG5hbWUpOwotCWludCBsZW4gPSBpbnRlcnByZXRfbnRoX3ByaW9yX2NoZWNrb3V0KG5hbWUsIGJ1Zik7Ci0JaW50IHRtcF9sZW47CisJY2hhciAqYXQ7CisJY29uc3QgY2hhciAqc3RhcnQ7CisJaW50IGxlbiA9IGludGVycHJldF9udGhfcHJpb3JfY2hlY2tvdXQobmFtZSwgbmFtZWxlbiwgYnVmKTsKKworCWlmICghbmFtZWxlbikKKwkJbmFtZWxlbiA9IHN0cmxlbihuYW1lKTsKIAogCWlmICghbGVuKSB7CiAJCXJldHVybiBsZW47IC8qIHN5bnRheCBPaywgbm90IGVub3VnaCBzd2l0Y2hlcyAqLwpAQCAtMTA2Myw0NCArMTEzOSwyNiBAQAogCQkJcmV0dXJuIHJlaW50ZXJwcmV0KG5hbWUsIG5hbWVsZW4sIGxlbiwgYnVmKTsKIAl9CiAKLQljcCA9IHN0cmNocihuYW1lLCAnQCcpOwotCWlmICghY3ApCi0JCXJldHVybiAtMTsKLQl0bXBfbGVuID0gdXBzdHJlYW1fbWFyayhjcCwgbmFtZWxlbiAtIChjcCAtIG5hbWUpKTsKLQlpZiAoIXRtcF9sZW4pCi0JCXJldHVybiAtMTsKLQlsZW4gPSBjcCArIHRtcF9sZW4gLSBuYW1lOwotCWNwID0geHN0cm5kdXAobmFtZSwgY3AgLSBuYW1lKTsKLQl1cHN0cmVhbSA9IGJyYW5jaF9nZXQoKmNwID8gY3AgOiBOVUxMKTsKLQkvKgotCSAqIFVwc3RyZWFtIGNhbiBiZSBOVUxMIG9ubHkgaWYgY3AgcmVmZXJzIHRvIEhFQUQgYW5kIEhFQUQKLQkgKiBwb2ludHMgdG8gc29tZXRoaW5nIGRpZmZlcmVudCB0aGFuIGEgYnJhbmNoLgotCSAqLwotCWlmICghdXBzdHJlYW0pCi0JCWRpZShfKCJIRUFEIGRvZXMgbm90IHBvaW50IHRvIGEgYnJhbmNoIikpOwotCWlmICghdXBzdHJlYW0tPm1lcmdlIHx8ICF1cHN0cmVhbS0+bWVyZ2VbMF0tPmRzdCkgewotCQlpZiAoIXJlZl9leGlzdHModXBzdHJlYW0tPnJlZm5hbWUpKQotCQkJZGllKF8oIk5vIHN1Y2ggYnJhbmNoOiAnJXMnIiksIGNwKTsKLQkJaWYgKCF1cHN0cmVhbS0+bWVyZ2UpIHsKLQkJCWRpZShfKCJObyB1cHN0cmVhbSBjb25maWd1cmVkIGZvciBicmFuY2ggJyVzJyIpLAotCQkJCXVwc3RyZWFtLT5uYW1lKTsKLQkJfQotCQlkaWUoCi0JCQlfKCJVcHN0cmVhbSBicmFuY2ggJyVzJyBub3Qgc3RvcmVkIGFzIGEgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCIpLAotCQkJdXBzdHJlYW0tPm1lcmdlWzBdLT5zcmMpOworCWZvciAoc3RhcnQgPSBuYW1lOworCSAgICAgKGF0ID0gbWVtY2hyKHN0YXJ0LCAnQCcsIG5hbWVsZW4gLSAoc3RhcnQgLSBuYW1lKSkpOworCSAgICAgc3RhcnQgPSBhdCArIDEpIHsKKworCQlsZW4gPSBpbnRlcnByZXRfZW1wdHlfYXQobmFtZSwgbmFtZWxlbiwgYXQgLSBuYW1lLCBidWYpOworCQlpZiAobGVuID4gMCkKKwkJCXJldHVybiByZWludGVycHJldChuYW1lLCBuYW1lbGVuLCBsZW4sIGJ1Zik7CisKKwkJbGVuID0gaW50ZXJwcmV0X3Vwc3RyZWFtX21hcmsobmFtZSwgbmFtZWxlbiwgYXQgLSBuYW1lLCBidWYpOworCQlpZiAobGVuID4gMCkKKwkJCXJldHVybiBsZW47CiAJfQotCWZyZWUoY3ApOwotCWNwID0gc2hvcnRlbl91bmFtYmlndW91c19yZWYodXBzdHJlYW0tPm1lcmdlWzBdLT5kc3QsIDApOwotCXN0cmJ1Zl9yZXNldChidWYpOwotCXN0cmJ1Zl9hZGRzdHIoYnVmLCBjcCk7Ci0JZnJlZShjcCk7Ci0JcmV0dXJuIGxlbjsKKworCXJldHVybiAtMTsKIH0KIAogaW50IHN0cmJ1Zl9icmFuY2huYW1lKHN0cnVjdCBzdHJidWYgKnNiLCBjb25zdCBjaGFyICpuYW1lKQogewogCWludCBsZW4gPSBzdHJsZW4obmFtZSk7Ci0JaW50IHVzZWQgPSBpbnRlcnByZXRfYnJhbmNoX25hbWUobmFtZSwgc2IpOworCWludCB1c2VkID0gaW50ZXJwcmV0X2JyYW5jaF9uYW1lKG5hbWUsIGxlbiwgc2IpOwogCiAJaWYgKHVzZWQgPT0gbGVuKQogCQlyZXR1cm4gMDsKQEAgLTExMzAsMTMgKzExODgsMTMgQEAKIH0KIAogLyoKLSAqIE1hbnkgY2FsbGVycyBrbm93IHRoYXQgdGhlIHVzZXIgbWVhbnQgdG8gbmFtZSBhIGNvbW1pdHRpc2ggYnkKKyAqIE1hbnkgY2FsbGVycyBrbm93IHRoYXQgdGhlIHVzZXIgbWVhbnQgdG8gbmFtZSBhIGNvbW1pdC1pc2ggYnkKICAqIHN5bnRhY3RpY2FsIHBvc2l0aW9ucyB3aGVyZSB0aGUgb2JqZWN0IG5hbWUgYXBwZWFycy4gIENhbGxpbmcgdGhpcwogICogZnVuY3Rpb24gYWxsb3dzIHRoZSBtYWNoaW5lcnkgdG8gZGlzYW1iaWd1YXRlIHNob3J0ZXItdGhhbi11bmlxdWUKLSAqIGFiYnJldmlhdGVkIG9iamVjdCBuYW1lcyBiZXR3ZWVuIGNvbW1pdHRpc2ggYW5kIG90aGVycy4KKyAqIGFiYnJldmlhdGVkIG9iamVjdCBuYW1lcyBiZXR3ZWVuIGNvbW1pdC1pc2ggYW5kIG90aGVycy4KICAqCiAgKiBOb3RlIHRoYXQgdGhpcyBkb2VzIE5PVCBlcnJvciBvdXQgd2hlbiB0aGUgbmFtZWQgb2JqZWN0IGlzIG5vdCBhCi0gKiBjb21taXR0aXNoLiBJdCBpcyBtZXJlbHkgdG8gZ2l2ZSBhIGhpbnQgdG8gdGhlIGRpc2FtYmlndWF0aW9uCisgKiBjb21taXQtaXNoLiBJdCBpcyBtZXJlbHkgdG8gZ2l2ZSBhIGhpbnQgdG8gdGhlIGRpc2FtYmlndWF0aW9uCiAgKiBtYWNoaW5lcnkuCiAgKi8KIGludCBnZXRfc2hhMV9jb21taXR0aXNoKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGNoYXIgKnNoYTEpCkBAIC0xMjczLDcgKzEzMzEsNyBAQAogCiBzdGF0aWMgY2hhciAqcmVzb2x2ZV9yZWxhdGl2ZV9wYXRoKGNvbnN0IGNoYXIgKnJlbCkKIHsKLQlpZiAocHJlZml4Y21wKHJlbCwgIi4vIikgJiYgcHJlZml4Y21wKHJlbCwgIi4uLyIpKQorCWlmICghc3RhcnRzX3dpdGgocmVsLCAiLi8iKSAmJiAhc3RhcnRzX3dpdGgocmVsLCAiLi4vIikpCiAJCXJldHVybiBOVUxMOwogCiAJaWYgKCFzdGFydHVwX2luZm8pCmRpZmYgLS1naXQgYS9zaGFsbG93LmMgYi9zaGFsbG93LmMKaW5kZXggY2RmMzdkNi4uYmJjOThiNSAxMDA2NDQKLS0tIGEvc2hhbGxvdy5jCisrKyBiL3NoYWxsb3cuYwpAQCAtMiwxNSArMiwyMyBAQAogI2luY2x1ZGUgImNvbW1pdC5oIgogI2luY2x1ZGUgInRhZy5oIgogI2luY2x1ZGUgInBrdC1saW5lLmgiCisjaW5jbHVkZSAicmVtb3RlLmgiCisjaW5jbHVkZSAicmVmcy5oIgorI2luY2x1ZGUgInNoYTEtYXJyYXkuaCIKKyNpbmNsdWRlICJkaWZmLmgiCisjaW5jbHVkZSAicmV2aXNpb24uaCIKKyNpbmNsdWRlICJjb21taXQtc2xhYi5oIgogCiBzdGF0aWMgaW50IGlzX3NoYWxsb3cgPSAtMTsKIHN0YXRpYyBzdHJ1Y3Qgc3RhdCBzaGFsbG93X3N0YXQ7CiBzdGF0aWMgY2hhciAqYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZTsKIAotdm9pZCBzZXRfYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZShjb25zdCBjaGFyICpwYXRoKQordm9pZCBzZXRfYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZShjb25zdCBjaGFyICpwYXRoLCBpbnQgb3ZlcnJpZGUpCiB7CiAJaWYgKGlzX3NoYWxsb3cgIT0gLTEpCiAJCWRpZSgiQlVHOiBpc19yZXBvc2l0b3J5X3NoYWxsb3cgbXVzdCBub3QgYmUgY2FsbGVkIGJlZm9yZSBzZXRfYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZSIpOworCWlmIChhbHRlcm5hdGVfc2hhbGxvd19maWxlICYmICFvdmVycmlkZSkKKwkJcmV0dXJuOwogCWZyZWUoYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZSk7CiAJYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZSA9IHBhdGggPyB4c3RyZHVwKHBhdGgpIDogTlVMTDsKIH0KQEAgLTY5LDYgKzc3LDcgQEAKIAlzdHJ1Y3QgY29tbWl0X2xpc3QgKnJlc3VsdCA9IE5VTEw7CiAJc3RydWN0IG9iamVjdF9hcnJheSBzdGFjayA9IE9CSkVDVF9BUlJBWV9JTklUOwogCXN0cnVjdCBjb21taXQgKmNvbW1pdCA9IE5VTEw7CisJc3RydWN0IGNvbW1pdF9ncmFmdCAqZ3JhZnQ7CiAKIAl3aGlsZSAoY29tbWl0IHx8IGkgPCBoZWFkcy0+bnIgfHwgc3RhY2subnIpIHsKIAkJc3RydWN0IGNvbW1pdF9saXN0ICpwOwpAQCAtOTAsMTAgKzk5LDEyIEBACiAJCQkJY3VyX2RlcHRoID0gKihpbnQgKiljb21taXQtPnV0aWw7CiAJCQl9CiAJCX0KLQkJaWYgKHBhcnNlX2NvbW1pdChjb21taXQpKQotCQkJZGllKCJpbnZhbGlkIGNvbW1pdCIpOworCQlwYXJzZV9jb21taXRfb3JfZGllKGNvbW1pdCk7CiAJCWN1cl9kZXB0aCsrOwotCQlpZiAoY3VyX2RlcHRoID49IGRlcHRoKSB7CisJCWlmICgoZGVwdGggIT0gSU5GSU5JVEVfREVQVEggJiYgY3VyX2RlcHRoID49IGRlcHRoKSB8fAorCQkgICAgKGlzX3JlcG9zaXRvcnlfc2hhbGxvdygpICYmICFjb21taXQtPnBhcmVudHMgJiYKKwkJICAgICAoZ3JhZnQgPSBsb29rdXBfY29tbWl0X2dyYWZ0KGNvbW1pdC0+b2JqZWN0LnNoYTEpKSAhPSBOVUxMICYmCisJCSAgICAgZ3JhZnQtPm5yX3BhcmVudCA8IDApKSB7CiAJCQljb21taXRfbGlzdF9pbnNlcnQoY29tbWl0LCAmcmVzdWx0KTsKIAkJCWNvbW1pdC0+b2JqZWN0LmZsYWdzIHw9IHNoYWxsb3dfZmxhZzsKIAkJCWNvbW1pdCA9IE5VTEw7CkBAIC0xNDMsMTAgKzE1NCwxNCBAQAogCQlkaWUoInNoYWxsb3cgZmlsZSB3YXMgY2hhbmdlZCBkdXJpbmcgZmV0Y2giKTsKIH0KIAorI2RlZmluZSBTRUVOX09OTFkgMQorI2RlZmluZSBWRVJCT1NFICAgMgorCiBzdHJ1Y3Qgd3JpdGVfc2hhbGxvd19kYXRhIHsKIAlzdHJ1Y3Qgc3RyYnVmICpvdXQ7CiAJaW50IHVzZV9wYWNrX3Byb3RvY29sOwogCWludCBjb3VudDsKKwl1bnNpZ25lZCBmbGFnczsKIH07CiAKIHN0YXRpYyBpbnQgd3JpdGVfb25lX3NoYWxsb3coY29uc3Qgc3RydWN0IGNvbW1pdF9ncmFmdCAqZ3JhZnQsIHZvaWQgKmNiX2RhdGEpCkBAIC0xNTUsNiArMTcwLDE1IEBACiAJY29uc3QgY2hhciAqaGV4ID0gc2hhMV90b19oZXgoZ3JhZnQtPnNoYTEpOwogCWlmIChncmFmdC0+bnJfcGFyZW50ICE9IC0xKQogCQlyZXR1cm4gMDsKKwlpZiAoZGF0YS0+ZmxhZ3MgJiBTRUVOX09OTFkpIHsKKwkJc3RydWN0IGNvbW1pdCAqYyA9IGxvb2t1cF9jb21taXQoZ3JhZnQtPnNoYTEpOworCQlpZiAoIWMgfHwgIShjLT5vYmplY3QuZmxhZ3MgJiBTRUVOKSkgeworCQkJaWYgKGRhdGEtPmZsYWdzICYgVkVSQk9TRSkKKwkJCQlwcmludGYoIlJlbW92aW5nICVzIGZyb20gLmdpdC9zaGFsbG93XG4iLAorCQkJCSAgICAgICBzaGExX3RvX2hleChjLT5vYmplY3Quc2hhMSkpOworCQkJcmV0dXJuIDA7CisJCX0KKwl9CiAJZGF0YS0+Y291bnQrKzsKIAlpZiAoZGF0YS0+dXNlX3BhY2tfcHJvdG9jb2wpCiAJCXBhY2tldF9idWZfd3JpdGUoZGF0YS0+b3V0LCAic2hhbGxvdyAlcyIsIGhleCk7CkBAIC0xNjUsMjIgKzE4OSwzOSBAQAogCXJldHVybiAwOwogfQogCi1pbnQgd3JpdGVfc2hhbGxvd19jb21taXRzKHN0cnVjdCBzdHJidWYgKm91dCwgaW50IHVzZV9wYWNrX3Byb3RvY29sKQorc3RhdGljIGludCB3cml0ZV9zaGFsbG93X2NvbW1pdHNfMShzdHJ1Y3Qgc3RyYnVmICpvdXQsIGludCB1c2VfcGFja19wcm90b2NvbCwKKwkJCQkgICBjb25zdCBzdHJ1Y3Qgc2hhMV9hcnJheSAqZXh0cmEsCisJCQkJICAgdW5zaWduZWQgZmxhZ3MpCiB7CiAJc3RydWN0IHdyaXRlX3NoYWxsb3dfZGF0YSBkYXRhOworCWludCBpOwogCWRhdGEub3V0ID0gb3V0OwogCWRhdGEudXNlX3BhY2tfcHJvdG9jb2wgPSB1c2VfcGFja19wcm90b2NvbDsKIAlkYXRhLmNvdW50ID0gMDsKKwlkYXRhLmZsYWdzID0gZmxhZ3M7CiAJZm9yX2VhY2hfY29tbWl0X2dyYWZ0KHdyaXRlX29uZV9zaGFsbG93LCAmZGF0YSk7CisJaWYgKCFleHRyYSkKKwkJcmV0dXJuIGRhdGEuY291bnQ7CisJZm9yIChpID0gMDsgaSA8IGV4dHJhLT5ucjsgaSsrKSB7CisJCXN0cmJ1Zl9hZGRzdHIob3V0LCBzaGExX3RvX2hleChleHRyYS0+c2hhMVtpXSkpOworCQlzdHJidWZfYWRkY2gob3V0LCAnXG4nKTsKKwkJZGF0YS5jb3VudCsrOworCX0KIAlyZXR1cm4gZGF0YS5jb3VudDsKIH0KIAotY2hhciAqc2V0dXBfdGVtcG9yYXJ5X3NoYWxsb3codm9pZCkKK2ludCB3cml0ZV9zaGFsbG93X2NvbW1pdHMoc3RydWN0IHN0cmJ1ZiAqb3V0LCBpbnQgdXNlX3BhY2tfcHJvdG9jb2wsCisJCQkgIGNvbnN0IHN0cnVjdCBzaGExX2FycmF5ICpleHRyYSkKK3sKKwlyZXR1cm4gd3JpdGVfc2hhbGxvd19jb21taXRzXzEob3V0LCB1c2VfcGFja19wcm90b2NvbCwgZXh0cmEsIDApOworfQorCitjaGFyICpzZXR1cF90ZW1wb3Jhcnlfc2hhbGxvdyhjb25zdCBzdHJ1Y3Qgc2hhMV9hcnJheSAqZXh0cmEpCiB7CiAJc3RydWN0IHN0cmJ1ZiBzYiA9IFNUUkJVRl9JTklUOwogCWludCBmZDsKIAotCWlmICh3cml0ZV9zaGFsbG93X2NvbW1pdHMoJnNiLCAwKSkgeworCWlmICh3cml0ZV9zaGFsbG93X2NvbW1pdHMoJnNiLCAwLCBleHRyYSkpIHsKIAkJc3RydWN0IHN0cmJ1ZiBwYXRoID0gU1RSQlVGX0lOSVQ7CiAJCXN0cmJ1Zl9hZGRzdHIoJnBhdGgsIGdpdF9wYXRoKCJzaGFsbG93X1hYWFhYWCIpKTsKIAkJZmQgPSB4bWtzdGVtcChwYXRoLmJ1Zik7CkBAIC0xOTksNyArMjQwLDggQEAKIH0KIAogdm9pZCBzZXR1cF9hbHRlcm5hdGVfc2hhbGxvdyhzdHJ1Y3QgbG9ja19maWxlICpzaGFsbG93X2xvY2ssCi0JCQkgICAgIGNvbnN0IGNoYXIgKiphbHRlcm5hdGVfc2hhbGxvd19maWxlKQorCQkJICAgICBjb25zdCBjaGFyICoqYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZSwKKwkJCSAgICAgY29uc3Qgc3RydWN0IHNoYTFfYXJyYXkgKmV4dHJhKQogewogCXN0cnVjdCBzdHJidWYgc2IgPSBTVFJCVUZfSU5JVDsKIAlpbnQgZmQ7CkBAIC0yMDcsNyArMjQ5LDcgQEAKIAljaGVja19zaGFsbG93X2ZpbGVfZm9yX3VwZGF0ZSgpOwogCWZkID0gaG9sZF9sb2NrX2ZpbGVfZm9yX3VwZGF0ZShzaGFsbG93X2xvY2ssIGdpdF9wYXRoKCJzaGFsbG93IiksCiAJCQkJICAgICAgIExPQ0tfRElFX09OX0VSUk9SKTsKLQlpZiAod3JpdGVfc2hhbGxvd19jb21taXRzKCZzYiwgMCkpIHsKKwlpZiAod3JpdGVfc2hhbGxvd19jb21taXRzKCZzYiwgMCwgZXh0cmEpKSB7CiAJCWlmICh3cml0ZV9pbl9mdWxsKGZkLCBzYi5idWYsIHNiLmxlbikgIT0gc2IubGVuKQogCQkJZGllX2Vycm5vKCJmYWlsZWQgdG8gd3JpdGUgdG8gJXMiLAogCQkJCSAgc2hhbGxvd19sb2NrLT5maWxlbmFtZSk7CkBAIC0yMjAsMyArMjYyLDQxNSBAQAogCQkqYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZSA9ICIiOwogCXN0cmJ1Zl9yZWxlYXNlKCZzYik7CiB9CisKK3N0YXRpYyBpbnQgYWR2ZXJ0aXNlX3NoYWxsb3dfZ3JhZnRzX2NiKGNvbnN0IHN0cnVjdCBjb21taXRfZ3JhZnQgKmdyYWZ0LCB2b2lkICpjYikKK3sKKwlpbnQgZmQgPSAqKGludCAqKWNiOworCWlmIChncmFmdC0+bnJfcGFyZW50ID09IC0xKQorCQlwYWNrZXRfd3JpdGUoZmQsICJzaGFsbG93ICVzXG4iLCBzaGExX3RvX2hleChncmFmdC0+c2hhMSkpOworCXJldHVybiAwOworfQorCit2b2lkIGFkdmVydGlzZV9zaGFsbG93X2dyYWZ0cyhpbnQgZmQpCit7CisJaWYgKCFpc19yZXBvc2l0b3J5X3NoYWxsb3coKSkKKwkJcmV0dXJuOworCWZvcl9lYWNoX2NvbW1pdF9ncmFmdChhZHZlcnRpc2Vfc2hhbGxvd19ncmFmdHNfY2IsICZmZCk7Cit9CisKKy8qCisgKiBtYXJrX3JlYWNoYWJsZV9vYmplY3RzKCkgc2hvdWxkIGhhdmUgYmVlbiBydW4gcHJpb3IgdG8gdGhpcyBhbmQgYWxsCisgKiByZWFjaGFibGUgY29tbWl0cyBtYXJrZWQgYXMgIlNFRU4iLgorICovCit2b2lkIHBydW5lX3NoYWxsb3coaW50IHNob3dfb25seSkKK3sKKwlzdGF0aWMgc3RydWN0IGxvY2tfZmlsZSBzaGFsbG93X2xvY2s7CisJc3RydWN0IHN0cmJ1ZiBzYiA9IFNUUkJVRl9JTklUOworCWludCBmZDsKKworCWlmIChzaG93X29ubHkpIHsKKwkJd3JpdGVfc2hhbGxvd19jb21taXRzXzEoJnNiLCAwLCBOVUxMLCBTRUVOX09OTFkgfCBWRVJCT1NFKTsKKwkJc3RyYnVmX3JlbGVhc2UoJnNiKTsKKwkJcmV0dXJuOworCX0KKwljaGVja19zaGFsbG93X2ZpbGVfZm9yX3VwZGF0ZSgpOworCWZkID0gaG9sZF9sb2NrX2ZpbGVfZm9yX3VwZGF0ZSgmc2hhbGxvd19sb2NrLCBnaXRfcGF0aCgic2hhbGxvdyIpLAorCQkJCSAgICAgICBMT0NLX0RJRV9PTl9FUlJPUik7CisJaWYgKHdyaXRlX3NoYWxsb3dfY29tbWl0c18xKCZzYiwgMCwgTlVMTCwgU0VFTl9PTkxZKSkgeworCQlpZiAod3JpdGVfaW5fZnVsbChmZCwgc2IuYnVmLCBzYi5sZW4pICE9IHNiLmxlbikKKwkJCWRpZV9lcnJubygiZmFpbGVkIHRvIHdyaXRlIHRvICVzIiwKKwkJCQkgIHNoYWxsb3dfbG9jay5maWxlbmFtZSk7CisJCWNvbW1pdF9sb2NrX2ZpbGUoJnNoYWxsb3dfbG9jayk7CisJfSBlbHNlIHsKKwkJdW5saW5rKGdpdF9wYXRoKCJzaGFsbG93IikpOworCQlyb2xsYmFja19sb2NrX2ZpbGUoJnNoYWxsb3dfbG9jayk7CisJfQorCXN0cmJ1Zl9yZWxlYXNlKCZzYik7Cit9CisKKyNkZWZpbmUgVFJBQ0VfS0VZICJHSVRfVFJBQ0VfU0hBTExPVyIKKworLyoKKyAqIFN0ZXAgMSwgc3BsaXQgc2VuZGVyIHNoYWxsb3cgY29tbWl0cyBpbnRvICJvdXJzIiBhbmQgInRoZWlycyIKKyAqIFN0ZXAgMiwgY2xlYW4gIm91cnMiIGJhc2VkIG9uIC5naXQvc2hhbGxvdworICovCit2b2lkIHByZXBhcmVfc2hhbGxvd19pbmZvKHN0cnVjdCBzaGFsbG93X2luZm8gKmluZm8sIHN0cnVjdCBzaGExX2FycmF5ICpzYSkKK3sKKwlpbnQgaTsKKwl0cmFjZV9wcmludGZfa2V5KFRSQUNFX0tFWSwgInNoYWxsb3c6IHByZXBhcmVfc2hhbGxvd19pbmZvXG4iKTsKKwltZW1zZXQoaW5mbywgMCwgc2l6ZW9mKCppbmZvKSk7CisJaW5mby0+c2hhbGxvdyA9IHNhOworCWlmICghc2EpCisJCXJldHVybjsKKwlpbmZvLT5vdXJzID0geG1hbGxvYyhzaXplb2YoKmluZm8tPm91cnMpICogc2EtPm5yKTsKKwlpbmZvLT50aGVpcnMgPSB4bWFsbG9jKHNpemVvZigqaW5mby0+dGhlaXJzKSAqIHNhLT5ucik7CisJZm9yIChpID0gMDsgaSA8IHNhLT5ucjsgaSsrKSB7CisJCWlmIChoYXNfc2hhMV9maWxlKHNhLT5zaGExW2ldKSkgeworCQkJc3RydWN0IGNvbW1pdF9ncmFmdCAqZ3JhZnQ7CisJCQlncmFmdCA9IGxvb2t1cF9jb21taXRfZ3JhZnQoc2EtPnNoYTFbaV0pOworCQkJaWYgKGdyYWZ0ICYmIGdyYWZ0LT5ucl9wYXJlbnQgPCAwKQorCQkJCWNvbnRpbnVlOworCQkJaW5mby0+b3Vyc1tpbmZvLT5ucl9vdXJzKytdID0gaTsKKwkJfSBlbHNlCisJCQlpbmZvLT50aGVpcnNbaW5mby0+bnJfdGhlaXJzKytdID0gaTsKKwl9Cit9CisKK3ZvaWQgY2xlYXJfc2hhbGxvd19pbmZvKHN0cnVjdCBzaGFsbG93X2luZm8gKmluZm8pCit7CisJZnJlZShpbmZvLT5vdXJzKTsKKwlmcmVlKGluZm8tPnRoZWlycyk7Cit9CisKKy8qIFN0ZXAgNCwgcmVtb3ZlIG5vbi1leGlzdGVudCBvbmVzIGluICJ0aGVpcnMiIGFmdGVyIGdldHRpbmcgdGhlIHBhY2sgKi8KKwordm9pZCByZW1vdmVfbm9uZXhpc3RlbnRfdGhlaXJzX3NoYWxsb3coc3RydWN0IHNoYWxsb3dfaW5mbyAqaW5mbykKK3sKKwl1bnNpZ25lZCBjaGFyICgqc2hhMSlbMjBdID0gaW5mby0+c2hhbGxvdy0+c2hhMTsKKwlpbnQgaSwgZHN0OworCXRyYWNlX3ByaW50Zl9rZXkoVFJBQ0VfS0VZLCAic2hhbGxvdzogcmVtb3ZlX25vbmV4aXN0ZW50X3RoZWlyc19zaGFsbG93XG4iKTsKKwlmb3IgKGkgPSBkc3QgPSAwOyBpIDwgaW5mby0+bnJfdGhlaXJzOyBpKyspIHsKKwkJaWYgKGkgIT0gZHN0KQorCQkJaW5mby0+dGhlaXJzW2RzdF0gPSBpbmZvLT50aGVpcnNbaV07CisJCWlmIChoYXNfc2hhMV9maWxlKHNoYTFbaW5mby0+dGhlaXJzW2ldXSkpCisJCQlkc3QrKzsKKwl9CisJaW5mby0+bnJfdGhlaXJzID0gZHN0OworfQorCitkZWZpbmVfY29tbWl0X3NsYWIocmVmX2JpdG1hcCwgdWludDMyX3QgKik7CisKK3N0cnVjdCBwYWludF9pbmZvIHsKKwlzdHJ1Y3QgcmVmX2JpdG1hcCByZWZfYml0bWFwOworCXVuc2lnbmVkIG5yX2JpdHM7CisJY2hhciAqKnNsYWI7CisJY2hhciAqZnJlZSwgKmVuZDsKKwl1bnNpZ25lZCBzbGFiX2NvdW50OworfTsKKworc3RhdGljIHVpbnQzMl90ICpwYWludF9hbGxvYyhzdHJ1Y3QgcGFpbnRfaW5mbyAqaW5mbykKK3sKKwl1bnNpZ25lZCBuciA9IChpbmZvLT5ucl9iaXRzICsgMzEpIC8gMzI7CisJdW5zaWduZWQgc2l6ZSA9IG5yICogc2l6ZW9mKHVpbnQzMl90KTsKKwl2b2lkICpwOworCWlmICghaW5mby0+c2xhYl9jb3VudCB8fCBpbmZvLT5mcmVlICsgc2l6ZSA+IGluZm8tPmVuZCkgeworCQlpbmZvLT5zbGFiX2NvdW50Kys7CisJCWluZm8tPnNsYWIgPSB4cmVhbGxvYyhpbmZvLT5zbGFiLAorCQkJCSAgICAgIGluZm8tPnNsYWJfY291bnQgKiBzaXplb2YoKmluZm8tPnNsYWIpKTsKKwkJaW5mby0+ZnJlZSA9IHhtYWxsb2MoQ09NTUlUX1NMQUJfU0laRSk7CisJCWluZm8tPnNsYWJbaW5mby0+c2xhYl9jb3VudCAtIDFdID0gaW5mby0+ZnJlZTsKKwkJaW5mby0+ZW5kID0gaW5mby0+ZnJlZSArIENPTU1JVF9TTEFCX1NJWkU7CisJfQorCXAgPSBpbmZvLT5mcmVlOworCWluZm8tPmZyZWUgKz0gc2l6ZTsKKwlyZXR1cm4gcDsKK30KKworLyoKKyAqIEdpdmVuIGEgY29tbWl0IFNIQS0xLCB3YWxrIGRvd24gdG8gcGFyZW50cyB1bnRpbCBlaXRoZXIgU0VFTiwKKyAqIFVOSU5URVJFU1RJTkcgb3IgQk9UVE9NIGlzIGhpdC4gU2V0IHRoZSBpZC10aCBiaXQgaW4gcmVmX2JpdG1hcCBmb3IKKyAqIGFsbCB3YWxrZWQgY29tbWl0cy4KKyAqLworc3RhdGljIHZvaWQgcGFpbnRfZG93bihzdHJ1Y3QgcGFpbnRfaW5mbyAqaW5mbywgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKKwkJICAgICAgIGludCBpZCkKK3sKKwl1bnNpZ25lZCBpbnQgaSwgbnI7CisJc3RydWN0IGNvbW1pdF9saXN0ICpoZWFkID0gTlVMTDsKKwlpbnQgYml0bWFwX25yID0gKGluZm8tPm5yX2JpdHMgKyAzMSkgLyAzMjsKKwlpbnQgYml0bWFwX3NpemUgPSBiaXRtYXBfbnIgKiBzaXplb2YodWludDMyX3QpOworCXVpbnQzMl90ICp0bXAgPSB4bWFsbG9jKGJpdG1hcF9zaXplKTsgLyogdG8gYmUgZnJlZWQgYmVmb3JlIHJldHVybiAqLworCXVpbnQzMl90ICpiaXRtYXAgPSBwYWludF9hbGxvYyhpbmZvKTsKKwlzdHJ1Y3QgY29tbWl0ICpjID0gbG9va3VwX2NvbW1pdF9yZWZlcmVuY2VfZ2VudGx5KHNoYTEsIDEpOworCWlmICghYykKKwkJcmV0dXJuOworCW1lbXNldChiaXRtYXAsIDAsIGJpdG1hcF9zaXplKTsKKwliaXRtYXBbaWQgLyAzMl0gfD0gKDEgPDwgKGlkICUgMzIpKTsKKwljb21taXRfbGlzdF9pbnNlcnQoYywgJmhlYWQpOworCXdoaWxlIChoZWFkKSB7CisJCXN0cnVjdCBjb21taXRfbGlzdCAqcDsKKwkJc3RydWN0IGNvbW1pdCAqYyA9IGhlYWQtPml0ZW07CisJCXVpbnQzMl90ICoqcmVmcyA9IHJlZl9iaXRtYXBfYXQoJmluZm8tPnJlZl9iaXRtYXAsIGMpOworCisJCXAgPSBoZWFkOworCQloZWFkID0gaGVhZC0+bmV4dDsKKwkJZnJlZShwKTsKKworCQkvKiBYWFggY2hlY2sgIlVOSU5URVJFU1RJTkciIGZyb20gcGFjayBiaXRtYXBzIGlmIGF2YWlsYWJsZSAqLworCQlpZiAoYy0+b2JqZWN0LmZsYWdzICYgKFNFRU4gfCBVTklOVEVSRVNUSU5HKSkKKwkJCWNvbnRpbnVlOworCQllbHNlCisJCQljLT5vYmplY3QuZmxhZ3MgfD0gU0VFTjsKKworCQlpZiAoKnJlZnMgPT0gTlVMTCkKKwkJCSpyZWZzID0gYml0bWFwOworCQllbHNlIHsKKwkJCW1lbWNweSh0bXAsICpyZWZzLCBiaXRtYXBfc2l6ZSk7CisJCQlmb3IgKGkgPSAwOyBpIDwgYml0bWFwX25yOyBpKyspCisJCQkJdG1wW2ldIHw9IGJpdG1hcFtpXTsKKwkJCWlmIChtZW1jbXAodG1wLCAqcmVmcywgYml0bWFwX3NpemUpKSB7CisJCQkJKnJlZnMgPSBwYWludF9hbGxvYyhpbmZvKTsKKwkJCQltZW1jcHkoKnJlZnMsIHRtcCwgYml0bWFwX3NpemUpOworCQkJfQorCQl9CisKKwkJaWYgKGMtPm9iamVjdC5mbGFncyAmIEJPVFRPTSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChwYXJzZV9jb21taXQoYykpCisJCQlkaWUoInVuYWJsZSB0byBwYXJzZSBjb21taXQgJXMiLAorCQkJICAgIHNoYTFfdG9faGV4KGMtPm9iamVjdC5zaGExKSk7CisKKwkJZm9yIChwID0gYy0+cGFyZW50czsgcDsgcCA9IHAtPm5leHQpIHsKKwkJCXVpbnQzMl90ICoqcF9yZWZzID0gcmVmX2JpdG1hcF9hdCgmaW5mby0+cmVmX2JpdG1hcCwKKwkJCQkJCQkgIHAtPml0ZW0pOworCQkJaWYgKHAtPml0ZW0tPm9iamVjdC5mbGFncyAmIFNFRU4pCisJCQkJY29udGludWU7CisJCQlpZiAoKnBfcmVmcyA9PSBOVUxMIHx8ICpwX3JlZnMgPT0gKnJlZnMpCisJCQkJKnBfcmVmcyA9ICpyZWZzOworCQkJY29tbWl0X2xpc3RfaW5zZXJ0KHAtPml0ZW0sICZoZWFkKTsKKwkJfQorCX0KKworCW5yID0gZ2V0X21heF9vYmplY3RfaW5kZXgoKTsKKwlmb3IgKGkgPSAwOyBpIDwgbnI7IGkrKykgeworCQlzdHJ1Y3Qgb2JqZWN0ICpvID0gZ2V0X2luZGV4ZWRfb2JqZWN0KGkpOworCQlpZiAobyAmJiBvLT50eXBlID09IE9CSl9DT01NSVQpCisJCQlvLT5mbGFncyAmPSB+U0VFTjsKKwl9CisKKwlmcmVlKHRtcCk7Cit9CisKK3N0YXRpYyBpbnQgbWFya191bmludGVyZXN0aW5nKGNvbnN0IGNoYXIgKnJlZm5hbWUsCisJCQkgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAorCQkJICAgICAgaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKQoreworCXN0cnVjdCBjb21taXQgKmNvbW1pdCA9IGxvb2t1cF9jb21taXRfcmVmZXJlbmNlX2dlbnRseShzaGExLCAxKTsKKwlpZiAoIWNvbW1pdCkKKwkJcmV0dXJuIDA7CisJY29tbWl0LT5vYmplY3QuZmxhZ3MgfD0gVU5JTlRFUkVTVElORzsKKwltYXJrX3BhcmVudHNfdW5pbnRlcmVzdGluZyhjb21taXQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBwb3N0X2Fzc2lnbl9zaGFsbG93KHN0cnVjdCBzaGFsbG93X2luZm8gKmluZm8sCisJCQkJc3RydWN0IHJlZl9iaXRtYXAgKnJlZl9iaXRtYXAsCisJCQkJaW50ICpyZWZfc3RhdHVzKTsKKy8qCisgKiBTdGVwIDYoKzcpLCBhc3NvY2lhdGUgc2hhbGxvdyBjb21taXRzIHdpdGggbmV3IHJlZnMKKyAqCisgKiBpbmZvLT5yZWYgbXVzdCBiZSBpbml0aWFsaXplZCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgorICoKKyAqIElmIHVzZWQgaXMgbm90IE5VTEwsIGl0J3MgYW4gYXJyYXkgb2YgaW5mby0+c2hhbGxvdy0+bnIKKyAqIGJpdG1hcHMuIFRoZSBuLXRoIGJpdCBzZXQgaW4gdGhlIG0tdGggYml0bWFwIGlmIHJlZltuXSBuZWVkcyB0aGUKKyAqIG0tdGggc2hhbGxvdyBjb21taXQgZnJvbSBpbmZvLT5zaGFsbG93LgorICoKKyAqIElmIHVzZWQgaXMgTlVMTCwgIm91cnMiIGFuZCAidGhlaXJzIiBhcmUgdXBkYXRlZC4gQW5kIGlmIHJlZl9zdGF0dXMKKyAqIGlzIG5vdCBOVUxMIGl0J3MgYW4gYXJyYXkgb2YgcmVmLT5uciBpbnRzLiByZWZfc3RhdHVzW2ldIGlzIHRydWUgaWYKKyAqIHRoZSByZWYgbmVlZHMgc29tZSBzaGFsbG93IGNvbW1pdHMgZnJvbSBlaXRoZXIgaW5mby0+b3VycyBvcgorICogaW5mby0+dGhlaXJzLgorICovCit2b2lkIGFzc2lnbl9zaGFsbG93X2NvbW1pdHNfdG9fcmVmcyhzdHJ1Y3Qgc2hhbGxvd19pbmZvICppbmZvLAorCQkJCSAgICB1aW50MzJfdCAqKnVzZWQsIGludCAqcmVmX3N0YXR1cykKK3sKKwl1bnNpZ25lZCBjaGFyICgqc2hhMSlbMjBdID0gaW5mby0+c2hhbGxvdy0+c2hhMTsKKwlzdHJ1Y3Qgc2hhMV9hcnJheSAqcmVmID0gaW5mby0+cmVmOworCXVuc2lnbmVkIGludCBpLCBucjsKKwlpbnQgKnNoYWxsb3csIG5yX3NoYWxsb3cgPSAwOworCXN0cnVjdCBwYWludF9pbmZvIHBpOworCisJdHJhY2VfcHJpbnRmX2tleShUUkFDRV9LRVksICJzaGFsbG93OiBhc3NpZ25fc2hhbGxvd19jb21taXRzX3RvX3JlZnNcbiIpOworCXNoYWxsb3cgPSB4bWFsbG9jKHNpemVvZigqc2hhbGxvdykgKiAoaW5mby0+bnJfb3VycyArIGluZm8tPm5yX3RoZWlycykpOworCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5ucl9vdXJzOyBpKyspCisJCXNoYWxsb3dbbnJfc2hhbGxvdysrXSA9IGluZm8tPm91cnNbaV07CisJZm9yIChpID0gMDsgaSA8IGluZm8tPm5yX3RoZWlyczsgaSsrKQorCQlzaGFsbG93W25yX3NoYWxsb3crK10gPSBpbmZvLT50aGVpcnNbaV07CisKKwkvKgorCSAqIFByZXBhcmUgdGhlIGNvbW1pdCBncmFwaCB0byB0cmFjayB3aGF0IHJlZnMgY2FuIHJlYWNoIHdoYXQKKwkgKiAobmV3KSBzaGFsbG93IGNvbW1pdHMuCisJICovCisJbnIgPSBnZXRfbWF4X29iamVjdF9pbmRleCgpOworCWZvciAoaSA9IDA7IGkgPCBucjsgaSsrKSB7CisJCXN0cnVjdCBvYmplY3QgKm8gPSBnZXRfaW5kZXhlZF9vYmplY3QoaSk7CisJCWlmICghbyB8fCBvLT50eXBlICE9IE9CSl9DT01NSVQpCisJCQljb250aW51ZTsKKworCQlvLT5mbGFncyAmPSB+KFVOSU5URVJFU1RJTkcgfCBCT1RUT00gfCBTRUVOKTsKKwl9CisKKwltZW1zZXQoJnBpLCAwLCBzaXplb2YocGkpKTsKKwlpbml0X3JlZl9iaXRtYXAoJnBpLnJlZl9iaXRtYXApOworCXBpLm5yX2JpdHMgPSByZWYtPm5yOworCisJLyoKKwkgKiAiLS1ub3QgLS1hbGwiIHRvIGN1dCBzaG9ydCB0aGUgdHJhdmVyc2FsIGlmIG5ldyByZWZzCisJICogY29ubmVjdCB0byBvbGQgcmVmcy4gSWYgbm90IChlLmcuIGZvcmNlIHJlZiB1cGRhdGVzKSBpdCdsbAorCSAqIGhhdmUgdG8gZ28gZG93biB0byB0aGUgY3VycmVudCBzaGFsbG93IGNvbW1pdHMuCisJICovCisJaGVhZF9yZWYobWFya191bmludGVyZXN0aW5nLCBOVUxMKTsKKwlmb3JfZWFjaF9yZWYobWFya191bmludGVyZXN0aW5nLCBOVUxMKTsKKworCS8qIE1hcmsgcG90ZW50aWFsIGJvdHRvbXMgc28gd2Ugd29uJ3QgZ28gb3V0IG9mIGJvdW5kICovCisJZm9yIChpID0gMDsgaSA8IG5yX3NoYWxsb3c7IGkrKykgeworCQlzdHJ1Y3QgY29tbWl0ICpjID0gbG9va3VwX2NvbW1pdChzaGExW3NoYWxsb3dbaV1dKTsKKwkJYy0+b2JqZWN0LmZsYWdzIHw9IEJPVFRPTTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgcmVmLT5ucjsgaSsrKQorCQlwYWludF9kb3duKCZwaSwgcmVmLT5zaGExW2ldLCBpKTsKKworCWlmICh1c2VkKSB7CisJCWludCBiaXRtYXBfc2l6ZSA9ICgocGkubnJfYml0cyArIDMxKSAvIDMyKSAqIHNpemVvZih1aW50MzJfdCk7CisJCW1lbXNldCh1c2VkLCAwLCBzaXplb2YoKnVzZWQpICogaW5mby0+c2hhbGxvdy0+bnIpOworCQlmb3IgKGkgPSAwOyBpIDwgbnJfc2hhbGxvdzsgaSsrKSB7CisJCQljb25zdCBzdHJ1Y3QgY29tbWl0ICpjID0gbG9va3VwX2NvbW1pdChzaGExW3NoYWxsb3dbaV1dKTsKKwkJCXVpbnQzMl90ICoqbWFwID0gcmVmX2JpdG1hcF9hdCgmcGkucmVmX2JpdG1hcCwgYyk7CisJCQlpZiAoKm1hcCkKKwkJCQl1c2VkW3NoYWxsb3dbaV1dID0geG1lbWR1cHooKm1hcCwgYml0bWFwX3NpemUpOworCQl9CisJCS8qCisJCSAqIHVucmVhY2hhYmxlIHNoYWxsb3cgY29tbWl0cyBhcmUgbm90IHJlbW92ZWQgZnJvbQorCQkgKiAib3VycyIgYW5kICJ0aGVpcnMiLiBUaGUgdXNlciBpcyBzdXBwb3NlZCB0byBydW4KKwkJICogc3RlcCA3IG9uIGV2ZXJ5IHJlZiBzZXBhcmF0ZWx5IGFuZCBub3QgdHJ1c3QgIm91cnMiCisJCSAqIGFuZCAidGhlaXJzIiBhbnkgbW9yZS4KKwkJICovCisJfSBlbHNlCisJCXBvc3RfYXNzaWduX3NoYWxsb3coaW5mbywgJnBpLnJlZl9iaXRtYXAsIHJlZl9zdGF0dXMpOworCisJY2xlYXJfcmVmX2JpdG1hcCgmcGkucmVmX2JpdG1hcCk7CisJZm9yIChpID0gMDsgaSA8IHBpLnNsYWJfY291bnQ7IGkrKykKKwkJZnJlZShwaS5zbGFiW2ldKTsKKwlmcmVlKHBpLnNsYWIpOworCWZyZWUoc2hhbGxvdyk7Cit9CisKK3N0cnVjdCBjb21taXRfYXJyYXkgeworCXN0cnVjdCBjb21taXQgKipjb21taXRzOworCWludCBuciwgYWxsb2M7Cit9OworCitzdGF0aWMgaW50IGFkZF9yZWYoY29uc3QgY2hhciAqcmVmbmFtZSwKKwkJICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKQoreworCXN0cnVjdCBjb21taXRfYXJyYXkgKmNhID0gY2JfZGF0YTsKKwlBTExPQ19HUk9XKGNhLT5jb21taXRzLCBjYS0+bnIgKyAxLCBjYS0+YWxsb2MpOworCWNhLT5jb21taXRzW2NhLT5ucl0gPSBsb29rdXBfY29tbWl0X3JlZmVyZW5jZV9nZW50bHkoc2hhMSwgMSk7CisJaWYgKGNhLT5jb21taXRzW2NhLT5ucl0pCisJCWNhLT5ucisrOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB1cGRhdGVfcmVmc3RhdHVzKGludCAqcmVmX3N0YXR1cywgaW50IG5yLCB1aW50MzJfdCAqYml0bWFwKQoreworCWludCBpOworCWlmICghcmVmX3N0YXR1cykKKwkJcmV0dXJuOworCWZvciAoaSA9IDA7IGkgPCBucjsgaSsrKQorCQlpZiAoYml0bWFwW2kgLyAzMl0gJiAoMSA8PCAoaSAlIDMyKSkpCisJCQlyZWZfc3RhdHVzW2ldKys7Cit9CisKKy8qCisgKiBTdGVwIDcsIHJlYWNoYWJpbGl0eSB0ZXN0IG9uICJvdXJzIiBhdCBjb21taXQgbGV2ZWwKKyAqLworc3RhdGljIHZvaWQgcG9zdF9hc3NpZ25fc2hhbGxvdyhzdHJ1Y3Qgc2hhbGxvd19pbmZvICppbmZvLAorCQkJCXN0cnVjdCByZWZfYml0bWFwICpyZWZfYml0bWFwLAorCQkJCWludCAqcmVmX3N0YXR1cykKK3sKKwl1bnNpZ25lZCBjaGFyICgqc2hhMSlbMjBdID0gaW5mby0+c2hhbGxvdy0+c2hhMTsKKwlzdHJ1Y3QgY29tbWl0ICpjOworCXVpbnQzMl90ICoqYml0bWFwOworCWludCBkc3QsIGksIGo7CisJaW50IGJpdG1hcF9uciA9IChpbmZvLT5yZWYtPm5yICsgMzEpIC8gMzI7CisJc3RydWN0IGNvbW1pdF9hcnJheSBjYTsKKworCXRyYWNlX3ByaW50Zl9rZXkoVFJBQ0VfS0VZLCAic2hhbGxvdzogcG9zdF9hc3NpZ25fc2hhbGxvd1xuIik7CisJaWYgKHJlZl9zdGF0dXMpCisJCW1lbXNldChyZWZfc3RhdHVzLCAwLCBzaXplb2YoKnJlZl9zdGF0dXMpICogaW5mby0+cmVmLT5ucik7CisKKwkvKiBSZW1vdmUgdW5yZWFjaGFibGUgc2hhbGxvdyBjb21taXRzIGZyb20gInRoZWlycyIgKi8KKwlmb3IgKGkgPSBkc3QgPSAwOyBpIDwgaW5mby0+bnJfdGhlaXJzOyBpKyspIHsKKwkJaWYgKGkgIT0gZHN0KQorCQkJaW5mby0+dGhlaXJzW2RzdF0gPSBpbmZvLT50aGVpcnNbaV07CisJCWMgPSBsb29rdXBfY29tbWl0KHNoYTFbaW5mby0+dGhlaXJzW2ldXSk7CisJCWJpdG1hcCA9IHJlZl9iaXRtYXBfYXQocmVmX2JpdG1hcCwgYyk7CisJCWlmICghKmJpdG1hcCkKKwkJCWNvbnRpbnVlOworCQlmb3IgKGogPSAwOyBqIDwgYml0bWFwX25yOyBqKyspCisJCQlpZiAoYml0bWFwWzBdW2pdKSB7CisJCQkJdXBkYXRlX3JlZnN0YXR1cyhyZWZfc3RhdHVzLCBpbmZvLT5yZWYtPm5yLCAqYml0bWFwKTsKKwkJCQlkc3QrKzsKKwkJCQlicmVhazsKKwkJCX0KKwl9CisJaW5mby0+bnJfdGhlaXJzID0gZHN0OworCisJbWVtc2V0KCZjYSwgMCwgc2l6ZW9mKGNhKSk7CisJaGVhZF9yZWYoYWRkX3JlZiwgJmNhKTsKKwlmb3JfZWFjaF9yZWYoYWRkX3JlZiwgJmNhKTsKKworCS8qIFJlbW92ZSB1bnJlYWNoYWJsZSBzaGFsbG93IGNvbW1pdHMgZnJvbSAib3VycyIgKi8KKwlmb3IgKGkgPSBkc3QgPSAwOyBpIDwgaW5mby0+bnJfb3VyczsgaSsrKSB7CisJCWlmIChpICE9IGRzdCkKKwkJCWluZm8tPm91cnNbZHN0XSA9IGluZm8tPm91cnNbaV07CisJCWMgPSBsb29rdXBfY29tbWl0KHNoYTFbaW5mby0+b3Vyc1tpXV0pOworCQliaXRtYXAgPSByZWZfYml0bWFwX2F0KHJlZl9iaXRtYXAsIGMpOworCQlpZiAoISpiaXRtYXApCisJCQljb250aW51ZTsKKwkJZm9yIChqID0gMDsgaiA8IGJpdG1hcF9ucjsgaisrKQorCQkJaWYgKGJpdG1hcFswXVtqXSAmJgorCQkJICAgIC8qIFN0ZXAgNywgcmVhY2hhYmlsaXR5IHRlc3QgYXQgY29tbWl0IGxldmVsICovCisJCQkgICAgIWluX21lcmdlX2Jhc2VzX21hbnkoYywgY2EubnIsIGNhLmNvbW1pdHMpKSB7CisJCQkJdXBkYXRlX3JlZnN0YXR1cyhyZWZfc3RhdHVzLCBpbmZvLT5yZWYtPm5yLCAqYml0bWFwKTsKKwkJCQlkc3QrKzsKKwkJCQlicmVhazsKKwkJCX0KKwl9CisJaW5mby0+bnJfb3VycyA9IGRzdDsKKworCWZyZWUoY2EuY29tbWl0cyk7Cit9CisKKy8qIChEZWxheWVkKSBzdGVwIDcsIHJlYWNoYWJpbGl0eSB0ZXN0IGF0IGNvbW1pdCBsZXZlbCAqLworaW50IGRlbGF5ZWRfcmVhY2hhYmlsaXR5X3Rlc3Qoc3RydWN0IHNoYWxsb3dfaW5mbyAqc2ksIGludCBjKQoreworCWlmIChzaS0+bmVlZF9yZWFjaGFiaWxpdHlfdGVzdFtjXSkgeworCQlzdHJ1Y3QgY29tbWl0ICpjb21taXQgPSBsb29rdXBfY29tbWl0KHNpLT5zaGFsbG93LT5zaGExW2NdKTsKKworCQlpZiAoIXNpLT5jb21taXRzKSB7CisJCQlzdHJ1Y3QgY29tbWl0X2FycmF5IGNhOworCQkJbWVtc2V0KCZjYSwgMCwgc2l6ZW9mKGNhKSk7CisJCQloZWFkX3JlZihhZGRfcmVmLCAmY2EpOworCQkJZm9yX2VhY2hfcmVmKGFkZF9yZWYsICZjYSk7CisJCQlzaS0+Y29tbWl0cyA9IGNhLmNvbW1pdHM7CisJCQlzaS0+bnJfY29tbWl0cyA9IGNhLm5yOworCQl9CisKKwkJc2ktPnJlYWNoYWJsZVtjXSA9IGluX21lcmdlX2Jhc2VzX21hbnkoY29tbWl0LAorCQkJCQkJICAgICAgIHNpLT5ucl9jb21taXRzLAorCQkJCQkJICAgICAgIHNpLT5jb21taXRzKTsKKwkJc2ktPm5lZWRfcmVhY2hhYmlsaXR5X3Rlc3RbY10gPSAwOworCX0KKwlyZXR1cm4gc2ktPnJlYWNoYWJsZVtjXTsKK30KZGlmZiAtLWdpdCBhL3NoZWxsLmMgYi9zaGVsbC5jCmluZGV4IDY2MzUwYjIuLjVjMGQ0N2EgMTAwNjQ0Ci0tLSBhL3NoZWxsLmMKKysrIGIvc2hlbGwuYwpAQCAtMTUsNyArMTUsNyBAQAogCXNldHVwX3BhdGgoKTsKIAlpZiAoIWFyZyB8fCAhKGFyZyA9IHNxX2RlcXVvdGUoYXJnKSkpCiAJCWRpZSgiYmFkIGFyZ3VtZW50Iik7Ci0JaWYgKHByZWZpeGNtcChtZSwgImdpdC0iKSkKKwlpZiAoIXN0YXJ0c193aXRoKG1lLCAiZ2l0LSIpKQogCQlkaWUoImJhZCBjb21tYW5kIik7CiAKIAlteV9hcmd2WzBdID0gbWUgKyA0OwpkaWZmIC0tZ2l0IGEvc3RyYnVmLmMgYi9zdHJidWYuYwppbmRleCAxMTcwZDAxLi44M2NhZjRhIDEwMDY0NAotLS0gYS9zdHJidWYuYworKysgYi9zdHJidWYuYwpAQCAtMSw2ICsxLDE1IEBACiAjaW5jbHVkZSAiY2FjaGUuaCIKICNpbmNsdWRlICJyZWZzLmgiCiAKK2ludCBzdGFydHNfd2l0aChjb25zdCBjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnByZWZpeCkKK3sKKwlmb3IgKDsgOyBzdHIrKywgcHJlZml4KyspCisJCWlmICghKnByZWZpeCkKKwkJCXJldHVybiAxOworCQllbHNlIGlmICgqc3RyICE9ICpwcmVmaXgpCisJCQlyZXR1cm4gMDsKK30KKwogaW50IHByZWZpeGNtcChjb25zdCBjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnByZWZpeCkKIHsKIAlmb3IgKDsgOyBzdHIrKywgcHJlZml4KyspCkBAIC0xMCw2ICsxOSwxNSBAQAogCQkJcmV0dXJuICh1bnNpZ25lZCBjaGFyKSpwcmVmaXggLSAodW5zaWduZWQgY2hhcikqc3RyOwogfQogCitpbnQgZW5kc193aXRoKGNvbnN0IGNoYXIgKnN0ciwgY29uc3QgY2hhciAqc3VmZml4KQoreworCWludCBsZW4gPSBzdHJsZW4oc3RyKSwgc3VmbGVuID0gc3RybGVuKHN1ZmZpeCk7CisJaWYgKGxlbiA8IHN1ZmxlbikKKwkJcmV0dXJuIDA7CisJZWxzZQorCQlyZXR1cm4gIXN0cmNtcChzdHIgKyBsZW4gLSBzdWZsZW4sIHN1ZmZpeCk7Cit9CisKIGludCBzdWZmaXhjbXAoY29uc3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICpzdWZmaXgpCiB7CiAJaW50IGxlbiA9IHN0cmxlbihzdHIpLCBzdWZsZW4gPSBzdHJsZW4oc3VmZml4KTsKZGlmZiAtLWdpdCBhL3N0cmVhbWluZy5jIGIvc3RyZWFtaW5nLmMKaW5kZXggZGViZTkwNC4uZDdjOWYzMiAxMDA2NDQKLS0tIGEvc3RyZWFtaW5nLmMKKysrIGIvc3RyZWFtaW5nLmMKQEAgLTExMyw3ICsxMTMsNyBAQAogCiAJb2ktPnR5cGVwID0gdHlwZTsKIAlvaS0+c2l6ZXAgPSAmc2l6ZTsKLQlzdGF0dXMgPSBzaGExX29iamVjdF9pbmZvX2V4dGVuZGVkKHNoYTEsIG9pKTsKKwlzdGF0dXMgPSBzaGExX29iamVjdF9pbmZvX2V4dGVuZGVkKHNoYTEsIG9pLCAwKTsKIAlpZiAoc3RhdHVzIDwgMCkKIAkJcmV0dXJuIHN0cmVhbV9lcnJvcjsKIApAQCAtNTM4LDcgKzUzOCw3IEBACiAJCQlnb3RvIGNsb3NlX2FuZF9leGl0OwogCX0KIAlpZiAoa2VwdCAmJiAobHNlZWsoZmQsIGtlcHQgLSAxLCBTRUVLX0NVUikgPT0gKG9mZl90KSAtMSB8fAotCQkgICAgIHdyaXRlKGZkLCAiIiwgMSkgIT0gMSkpCisJCSAgICAgeHdyaXRlKGZkLCAiIiwgMSkgIT0gMSkpCiAJCWdvdG8gY2xvc2VfYW5kX2V4aXQ7CiAJcmVzdWx0ID0gMDsKIApkaWZmIC0tZ2l0IGEvc3VibW9kdWxlLmMgYi9zdWJtb2R1bGUuYwppbmRleCBjMGY5M2MyLi42MTM4NTdlIDEwMDY0NAotLS0gYS9zdWJtb2R1bGUuYworKysgYi9zdWJtb2R1bGUuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgInN0cmluZy1saXN0LmgiCiAjaW5jbHVkZSAic2hhMS1hcnJheS5oIgogI2luY2x1ZGUgImFyZ3YtYXJyYXkuaCIKKyNpbmNsdWRlICJibG9iLmgiCiAKIHN0YXRpYyBzdHJ1Y3Qgc3RyaW5nX2xpc3QgY29uZmlnX25hbWVfZm9yX3BhdGg7CiBzdGF0aWMgc3RydWN0IHN0cmluZ19saXN0IGNvbmZpZ19mZXRjaF9yZWN1cnNlX3N1Ym1vZHVsZXNfZm9yX25hbWU7CkBAIC0zMCw2ICszMSwxMTggQEAKICAqLwogc3RhdGljIGludCBnaXRtb2R1bGVzX2lzX3VubWVyZ2VkOwogCisvKgorICogVGhpcyBmbGFnIGlzIHNldCBpZiB0aGUgLmdpdG1vZHVsZXMgZmlsZSBoYWQgdW5zdGFnZWQgbW9kaWZpY2F0aW9ucyBvbgorICogc3RhcnR1cC4gVGhpcyBtdXN0IGJlIGNoZWNrZWQgYmVmb3JlIGFsbG93aW5nIG1vZGlmaWNhdGlvbnMgdG8gdGhlCisgKiAuZ2l0bW9kdWxlcyBmaWxlIHdpdGggdGhlIGludGVudGlvbiB0byBzdGFnZSB0aGVtIGxhdGVyLCBiZWNhdXNlIHdoZW4KKyAqIGNvbnRpbnVpbmcgd2Ugd291bGQgc3RhZ2UgdGhlIG1vZGlmaWNhdGlvbnMgdGhlIHVzZXIgZGlkbid0IHN0YWdlIGhlcnNlbGYKKyAqIHRvby4gVGhhdCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgdmVyc2lvbiB3aGVuIHdlIGxlYXJuIHRvIHN0YWdlIHRoZQorICogY2hhbmdlcyB3ZSBkbyBvdXJzZWx2ZXMgd2l0aG91dCBzdGFnaW5nIGFueSBwcmV2aW91cyBtb2RpZmljYXRpb25zLgorICovCitzdGF0aWMgaW50IGdpdG1vZHVsZXNfaXNfbW9kaWZpZWQ7CisKKworaW50IGlzX3N0YWdpbmdfZ2l0bW9kdWxlc19vayh2b2lkKQoreworCXJldHVybiAhZ2l0bW9kdWxlc19pc19tb2RpZmllZDsKK30KKworLyoKKyAqIFRyeSB0byB1cGRhdGUgdGhlICJwYXRoIiBlbnRyeSBpbiB0aGUgInN1Ym1vZHVsZS48bmFtZT4iIHNlY3Rpb24gb2YgdGhlCisgKiAuZ2l0bW9kdWxlcyBmaWxlLiBSZXR1cm4gMCBvbmx5IGlmIGEgLmdpdG1vZHVsZXMgZmlsZSB3YXMgZm91bmQsIGEgc2VjdGlvbgorICogd2l0aCB0aGUgY29ycmVjdCBwYXRoPTxvbGRwYXRoPiBzZXR0aW5nIHdhcyBmb3VuZCBhbmQgd2UgY291bGQgdXBkYXRlIGl0LgorICovCitpbnQgdXBkYXRlX3BhdGhfaW5fZ2l0bW9kdWxlcyhjb25zdCBjaGFyICpvbGRwYXRoLCBjb25zdCBjaGFyICpuZXdwYXRoKQoreworCXN0cnVjdCBzdHJidWYgZW50cnkgPSBTVFJCVUZfSU5JVDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqcGF0aF9vcHRpb247CisKKwlpZiAoIWZpbGVfZXhpc3RzKCIuZ2l0bW9kdWxlcyIpKSAvKiBEbyBub3RoaW5nIHdpdGhvdXQgLmdpdG1vZHVsZXMgKi8KKwkJcmV0dXJuIC0xOworCisJaWYgKGdpdG1vZHVsZXNfaXNfdW5tZXJnZWQpCisJCWRpZShfKCJDYW5ub3QgY2hhbmdlIHVubWVyZ2VkIC5naXRtb2R1bGVzLCByZXNvbHZlIG1lcmdlIGNvbmZsaWN0cyBmaXJzdCIpKTsKKworCXBhdGhfb3B0aW9uID0gdW5zb3J0ZWRfc3RyaW5nX2xpc3RfbG9va3VwKCZjb25maWdfbmFtZV9mb3JfcGF0aCwgb2xkcGF0aCk7CisJaWYgKCFwYXRoX29wdGlvbikgeworCQl3YXJuaW5nKF8oIkNvdWxkIG5vdCBmaW5kIHNlY3Rpb24gaW4gLmdpdG1vZHVsZXMgd2hlcmUgcGF0aD0lcyIpLCBvbGRwYXRoKTsKKwkJcmV0dXJuIC0xOworCX0KKwlzdHJidWZfYWRkc3RyKCZlbnRyeSwgInN1Ym1vZHVsZS4iKTsKKwlzdHJidWZfYWRkc3RyKCZlbnRyeSwgcGF0aF9vcHRpb24tPnV0aWwpOworCXN0cmJ1Zl9hZGRzdHIoJmVudHJ5LCAiLnBhdGgiKTsKKwlpZiAoZ2l0X2NvbmZpZ19zZXRfaW5fZmlsZSgiLmdpdG1vZHVsZXMiLCBlbnRyeS5idWYsIG5ld3BhdGgpIDwgMCkgeworCQkvKiBNYXliZSB0aGUgdXNlciBhbHJlYWR5IGRpZCB0aGF0LCBkb24ndCBlcnJvciBvdXQgaGVyZSAqLworCQl3YXJuaW5nKF8oIkNvdWxkIG5vdCB1cGRhdGUgLmdpdG1vZHVsZXMgZW50cnkgJXMiKSwgZW50cnkuYnVmKTsKKwkJc3RyYnVmX3JlbGVhc2UoJmVudHJ5KTsKKwkJcmV0dXJuIC0xOworCX0KKwlzdHJidWZfcmVsZWFzZSgmZW50cnkpOworCXJldHVybiAwOworfQorCisvKgorICogVHJ5IHRvIHJlbW92ZSB0aGUgInN1Ym1vZHVsZS48bmFtZT4iIHNlY3Rpb24gZnJvbSAuZ2l0bW9kdWxlcyB3aGVyZSB0aGUgZ2l2ZW4KKyAqIHBhdGggaXMgY29uZmlndXJlZC4gUmV0dXJuIDAgb25seSBpZiBhIC5naXRtb2R1bGVzIGZpbGUgd2FzIGZvdW5kLCBhIHNlY3Rpb24KKyAqIHdpdGggdGhlIGNvcnJlY3QgcGF0aD08cGF0aD4gc2V0dGluZyB3YXMgZm91bmQgYW5kIHdlIGNvdWxkIHJlbW92ZSBpdC4KKyAqLworaW50IHJlbW92ZV9wYXRoX2Zyb21fZ2l0bW9kdWxlcyhjb25zdCBjaGFyICpwYXRoKQoreworCXN0cnVjdCBzdHJidWYgc2VjdCA9IFNUUkJVRl9JTklUOworCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICpwYXRoX29wdGlvbjsKKworCWlmICghZmlsZV9leGlzdHMoIi5naXRtb2R1bGVzIikpIC8qIERvIG5vdGhpbmcgd2l0aG91dCAuZ2l0bW9kdWxlcyAqLworCQlyZXR1cm4gLTE7CisKKwlpZiAoZ2l0bW9kdWxlc19pc191bm1lcmdlZCkKKwkJZGllKF8oIkNhbm5vdCBjaGFuZ2UgdW5tZXJnZWQgLmdpdG1vZHVsZXMsIHJlc29sdmUgbWVyZ2UgY29uZmxpY3RzIGZpcnN0IikpOworCisJcGF0aF9vcHRpb24gPSB1bnNvcnRlZF9zdHJpbmdfbGlzdF9sb29rdXAoJmNvbmZpZ19uYW1lX2Zvcl9wYXRoLCBwYXRoKTsKKwlpZiAoIXBhdGhfb3B0aW9uKSB7CisJCXdhcm5pbmcoXygiQ291bGQgbm90IGZpbmQgc2VjdGlvbiBpbiAuZ2l0bW9kdWxlcyB3aGVyZSBwYXRoPSVzIiksIHBhdGgpOworCQlyZXR1cm4gLTE7CisJfQorCXN0cmJ1Zl9hZGRzdHIoJnNlY3QsICJzdWJtb2R1bGUuIik7CisJc3RyYnVmX2FkZHN0cigmc2VjdCwgcGF0aF9vcHRpb24tPnV0aWwpOworCWlmIChnaXRfY29uZmlnX3JlbmFtZV9zZWN0aW9uX2luX2ZpbGUoIi5naXRtb2R1bGVzIiwgc2VjdC5idWYsIE5VTEwpIDwgMCkgeworCQkvKiBNYXliZSB0aGUgdXNlciBhbHJlYWR5IGRpZCB0aGF0LCBkb24ndCBlcnJvciBvdXQgaGVyZSAqLworCQl3YXJuaW5nKF8oIkNvdWxkIG5vdCByZW1vdmUgLmdpdG1vZHVsZXMgZW50cnkgZm9yICVzIiksIHBhdGgpOworCQlzdHJidWZfcmVsZWFzZSgmc2VjdCk7CisJCXJldHVybiAtMTsKKwl9CisJc3RyYnVmX3JlbGVhc2UoJnNlY3QpOworCXJldHVybiAwOworfQorCit2b2lkIHN0YWdlX3VwZGF0ZWRfZ2l0bW9kdWxlcyh2b2lkKQoreworCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IHN0YXQgc3Q7CisJaW50IHBvczsKKwlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOworCWludCBuYW1lbGVuID0gc3RybGVuKCIuZ2l0bW9kdWxlcyIpOworCisJcG9zID0gY2FjaGVfbmFtZV9wb3MoIi5naXRtb2R1bGVzIiwgbmFtZWxlbik7CisJaWYgKHBvcyA8IDApIHsKKwkJd2FybmluZyhfKCJjb3VsZCBub3QgZmluZCAuZ2l0bW9kdWxlcyBpbiBpbmRleCIpKTsKKwkJcmV0dXJuOworCX0KKwljZSA9IGFjdGl2ZV9jYWNoZVtwb3NdOworCWNlLT5jZV9mbGFncyA9IG5hbWVsZW47CisJaWYgKHN0cmJ1Zl9yZWFkX2ZpbGUoJmJ1ZiwgIi5naXRtb2R1bGVzIiwgMCkgPCAwKQorCQlkaWUoXygicmVhZGluZyB1cGRhdGVkIC5naXRtb2R1bGVzIGZhaWxlZCIpKTsKKwlpZiAobHN0YXQoIi5naXRtb2R1bGVzIiwgJnN0KSA8IDApCisJCWRpZV9lcnJubyhfKCJ1bmFibGUgdG8gc3RhdCB1cGRhdGVkIC5naXRtb2R1bGVzIikpOworCWZpbGxfc3RhdF9jYWNoZV9pbmZvKGNlLCAmc3QpOworCWNlLT5jZV9tb2RlID0gY2VfbW9kZV9mcm9tX3N0YXQoY2UsIHN0LnN0X21vZGUpOworCWlmIChyZW1vdmVfY2FjaGVfZW50cnlfYXQocG9zKSA8IDApCisJCWRpZShfKCJ1bmFibGUgdG8gcmVtb3ZlIC5naXRtb2R1bGVzIGZyb20gaW5kZXgiKSk7CisJaWYgKHdyaXRlX3NoYTFfZmlsZShidWYuYnVmLCBidWYubGVuLCBibG9iX3R5cGUsIGNlLT5zaGExKSkKKwkJZGllKF8oImFkZGluZyB1cGRhdGVkIC5naXRtb2R1bGVzIGZhaWxlZCIpKTsKKwlpZiAoYWRkX2NhY2hlX2VudHJ5KGNlLCBBRERfQ0FDSEVfT0tfVE9fQUREfEFERF9DQUNIRV9PS19UT19SRVBMQUNFKSkKKwkJZGllKF8oInN0YWdpbmcgdXBkYXRlZCAuZ2l0bW9kdWxlcyBmYWlsZWQiKSk7Cit9CisKIHN0YXRpYyBpbnQgYWRkX3N1Ym1vZHVsZV9vZGIoY29uc3QgY2hhciAqcGF0aCkKIHsKIAlzdHJ1Y3Qgc3RyYnVmIG9iamVjdHNfZGlyZWN0b3J5ID0gU1RSQlVGX0lOSVQ7CkBAIC04OCw3ICsyMDEsNyBAQAogCiBpbnQgc3VibW9kdWxlX2NvbmZpZyhjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpjYikKIHsKLQlpZiAoIXByZWZpeGNtcCh2YXIsICJzdWJtb2R1bGUuIikpCisJaWYgKHN0YXJ0c193aXRoKHZhciwgInN1Ym1vZHVsZS4iKSkKIAkJcmV0dXJuIHBhcnNlX3N1Ym1vZHVsZV9jb25maWdfb3B0aW9uKHZhciwgdmFsdWUpOwogCWVsc2UgaWYgKCFzdHJjbXAodmFyLCAiZmV0Y2gucmVjdXJzZXN1Ym1vZHVsZXMiKSkgewogCQljb25maWdfZmV0Y2hfcmVjdXJzZV9zdWJtb2R1bGVzID0gcGFyc2VfZmV0Y2hfcmVjdXJzZV9zdWJtb2R1bGVzX2FyZyh2YXIsIHZhbHVlKTsKQEAgLTExNiw2ICsyMjksMTEgQEAKIAkJCQkgICAgIW1lbWNtcChjZS0+bmFtZSwgIi5naXRtb2R1bGVzIiwgMTEpKQogCQkJCQlnaXRtb2R1bGVzX2lzX3VubWVyZ2VkID0gMTsKIAkJCX0KKwkJfSBlbHNlIGlmIChwb3MgPCBhY3RpdmVfbnIpIHsKKwkJCXN0cnVjdCBzdGF0IHN0OworCQkJaWYgKGxzdGF0KCIuZ2l0bW9kdWxlcyIsICZzdCkgPT0gMCAmJgorCQkJICAgIGNlX21hdGNoX3N0YXQoYWN0aXZlX2NhY2hlW3Bvc10sICZzdCwgMCkgJiBEQVRBX0NIQU5HRUQpCisJCQkJZ2l0bW9kdWxlc19pc19tb2RpZmllZCA9IDE7CiAJCX0KIAogCQlpZiAoIWdpdG1vZHVsZXNfaXNfdW5tZXJnZWQpCkBAIC0xMDEwLDMgKzExMjgsMzQgQEAKIAlmcmVlKG1lcmdlcy5vYmplY3RzKTsKIAlyZXR1cm4gMDsKIH0KKworLyogVXBkYXRlIGdpdGZpbGUgYW5kIGNvcmUud29ya3RyZWUgc2V0dGluZyB0byBjb25uZWN0IHdvcmsgdHJlZSBhbmQgZ2l0IGRpciAqLwordm9pZCBjb25uZWN0X3dvcmtfdHJlZV9hbmRfZ2l0X2Rpcihjb25zdCBjaGFyICp3b3JrX3RyZWUsIGNvbnN0IGNoYXIgKmdpdF9kaXIpCit7CisJc3RydWN0IHN0cmJ1ZiBmaWxlX25hbWUgPSBTVFJCVUZfSU5JVDsKKwlzdHJ1Y3Qgc3RyYnVmIHJlbF9wYXRoID0gU1RSQlVGX0lOSVQ7CisJY29uc3QgY2hhciAqcmVhbF93b3JrX3RyZWUgPSB4c3RyZHVwKHJlYWxfcGF0aCh3b3JrX3RyZWUpKTsKKwlGSUxFICpmcDsKKworCS8qIFVwZGF0ZSBnaXRmaWxlICovCisJc3RyYnVmX2FkZGYoJmZpbGVfbmFtZSwgIiVzLy5naXQiLCB3b3JrX3RyZWUpOworCWZwID0gZm9wZW4oZmlsZV9uYW1lLmJ1ZiwgInciKTsKKwlpZiAoIWZwKQorCQlkaWUoXygiQ291bGQgbm90IGNyZWF0ZSBnaXQgbGluayAlcyIpLCBmaWxlX25hbWUuYnVmKTsKKwlmcHJpbnRmKGZwLCAiZ2l0ZGlyOiAlc1xuIiwgcmVsYXRpdmVfcGF0aChnaXRfZGlyLCByZWFsX3dvcmtfdHJlZSwKKwkJCQkJCSAgJnJlbF9wYXRoKSk7CisJZmNsb3NlKGZwKTsKKworCS8qIFVwZGF0ZSBjb3JlLndvcmt0cmVlIHNldHRpbmcgKi8KKwlzdHJidWZfcmVzZXQoJmZpbGVfbmFtZSk7CisJc3RyYnVmX2FkZGYoJmZpbGVfbmFtZSwgIiVzL2NvbmZpZyIsIGdpdF9kaXIpOworCWlmIChnaXRfY29uZmlnX3NldF9pbl9maWxlKGZpbGVfbmFtZS5idWYsICJjb3JlLndvcmt0cmVlIiwKKwkJCQkgICByZWxhdGl2ZV9wYXRoKHJlYWxfd29ya190cmVlLCBnaXRfZGlyLAorCQkJCQkJICZyZWxfcGF0aCkpKQorCQlkaWUoXygiQ291bGQgbm90IHNldCBjb3JlLndvcmt0cmVlIGluICVzIiksCisJCSAgICBmaWxlX25hbWUuYnVmKTsKKworCXN0cmJ1Zl9yZWxlYXNlKCZmaWxlX25hbWUpOworCXN0cmJ1Zl9yZWxlYXNlKCZyZWxfcGF0aCk7CisJZnJlZSgodm9pZCAqKXJlYWxfd29ya190cmVlKTsKK30KZGlmZiAtLWdpdCBhL3N1Ym1vZHVsZS5oIGIvc3VibW9kdWxlLmgKaW5kZXggYzdmZmM3Yy4uN2JlZWM0OCAxMDA2NDQKLS0tIGEvc3VibW9kdWxlLmgKKysrIGIvc3VibW9kdWxlLmgKQEAgLTExLDYgKzExLDEwIEBACiAJUkVDVVJTRV9TVUJNT0RVTEVTX09OID0gMgogfTsKIAoraW50IGlzX3N0YWdpbmdfZ2l0bW9kdWxlc19vayh2b2lkKTsKK2ludCB1cGRhdGVfcGF0aF9pbl9naXRtb2R1bGVzKGNvbnN0IGNoYXIgKm9sZHBhdGgsIGNvbnN0IGNoYXIgKm5ld3BhdGgpOworaW50IHJlbW92ZV9wYXRoX2Zyb21fZ2l0bW9kdWxlcyhjb25zdCBjaGFyICpwYXRoKTsKK3ZvaWQgc3RhZ2VfdXBkYXRlZF9naXRtb2R1bGVzKHZvaWQpOwogdm9pZCBzZXRfZGlmZm9wdF9mbGFnc19mcm9tX3N1Ym1vZHVsZV9jb25maWcoc3RydWN0IGRpZmZfb3B0aW9ucyAqZGlmZm9wdCwKIAkJY29uc3QgY2hhciAqcGF0aCk7CiBpbnQgc3VibW9kdWxlX2NvbmZpZyhjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpjYik7CkBAIC0zNiw1ICs0MCw2IEBACiBpbnQgZmluZF91bnB1c2hlZF9zdWJtb2R1bGVzKHVuc2lnbmVkIGNoYXIgbmV3X3NoYTFbMjBdLCBjb25zdCBjaGFyICpyZW1vdGVzX25hbWUsCiAJCXN0cnVjdCBzdHJpbmdfbGlzdCAqbmVlZHNfcHVzaGluZyk7CiBpbnQgcHVzaF91bnB1c2hlZF9zdWJtb2R1bGVzKHVuc2lnbmVkIGNoYXIgbmV3X3NoYTFbMjBdLCBjb25zdCBjaGFyICpyZW1vdGVzX25hbWUpOwordm9pZCBjb25uZWN0X3dvcmtfdHJlZV9hbmRfZ2l0X2Rpcihjb25zdCBjaGFyICp3b3JrX3RyZWUsIGNvbnN0IGNoYXIgKmdpdF9kaXIpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3QvLmdpdGF0dHJpYnV0ZXMgYi90Ly5naXRhdHRyaWJ1dGVzCmluZGV4IDFiOTdjNTQuLjJkNDQwODggMTAwNjQ0Ci0tLSBhL3QvLmdpdGF0dHJpYnV0ZXMKKysrIGIvdC8uZ2l0YXR0cmlidXRlcwpAQCAtMSArMSwyIEBACiB0WzAtOV1bMC05XVswLTldWzAtOV0vKiAtd2hpdGVzcGFjZQordDAxMTAvdXJsLSogYmluYXJ5CmRpZmYgLS1naXQgYS90L0dpdC1TVk4vMDBjb21waWxlLnQgYi90L0dpdC1TVk4vMDBjb21waWxlLnQKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvdC9HaXQtU1ZOL1V0aWxzL2FkZF9wYXRoX3RvX3VybC50IGIvdC9HaXQtU1ZOL1V0aWxzL2FkZF9wYXRoX3RvX3VybC50Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL3QvR2l0LVNWTi9VdGlscy9jYW5fY29tcHJlc3MudCBiL3QvR2l0LVNWTi9VdGlscy9jYW5fY29tcHJlc3MudApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS90L0dpdC1TVk4vVXRpbHMvY2Fub25pY2FsaXplX3VybC50IGIvdC9HaXQtU1ZOL1V0aWxzL2Nhbm9uaWNhbGl6ZV91cmwudApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS90L0dpdC1TVk4vVXRpbHMvY29sbGFwc2VfZG90ZG90LnQgYi90L0dpdC1TVk4vVXRpbHMvY29sbGFwc2VfZG90ZG90LnQKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvdC9HaXQtU1ZOL1V0aWxzL2ZhdGFsLnQgYi90L0dpdC1TVk4vVXRpbHMvZmF0YWwudApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS90L0dpdC1TVk4vVXRpbHMvam9pbl9wYXRocy50IGIvdC9HaXQtU1ZOL1V0aWxzL2pvaW5fcGF0aHMudApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS90L1JFQURNRSBiL3QvUkVBRE1FCmluZGV4IDBhOTM5ZWIuLmNhZWViOWQgMTAwNjQ0Ci0tLSBhL3QvUkVBRE1FCisrKyBiL3QvUkVBRE1FCkBAIC0zNDAsNyArMzQwLDExIEBACiAgLSB1c2UgcGVybCB3aXRob3V0IHNwZWxsaW5nIGl0IGFzICIkUEVSTF9QQVRIIi4gVGhpcyBpcyB0byBoZWxwIG91cgogICAgZnJpZW5kcyBvbiBXaW5kb3dzIHdoZXJlIHRoZSBwbGF0Zm9ybSBQZXJsIG9mdGVuIGFkZHMgQ1IgYmVmb3JlCiAgICB0aGUgZW5kIG9mIGxpbmUsIGFuZCB0aGV5IGJ1bmRsZSBHaXQgd2l0aCBhIHZlcnNpb24gb2YgUGVybCB0aGF0Ci0gICBkb2VzIG5vdCBkbyBzbywgd2hvc2UgcGF0aCBpcyBzcGVjaWZpZWQgd2l0aCAkUEVSTF9QQVRILgorICAgZG9lcyBub3QgZG8gc28sIHdob3NlIHBhdGggaXMgc3BlY2lmaWVkIHdpdGggJFBFUkxfUEFUSC4gTm90ZSB0aGF0IHdlCisgICBwcm92aWRlIGEgInBlcmwiIGZ1bmN0aW9uIHdoaWNoIHVzZXMgJFBFUkxfUEFUSCB1bmRlciB0aGUgaG9vZCwgc28KKyAgIHlvdSBkbyBub3QgbmVlZCB0byB3b3JyeSB3aGVuIHNpbXBseSBydW5uaW5nIHBlcmwgaW4gdGhlIHRlc3Qgc2NyaXB0cworICAgKGJ1dCB5b3UgZG8sIGZvciBleGFtcGxlLCBvbiBhIHNoZWJhbmcgbGluZSBvciBpbiBhIHN1YiBzY3JpcHQKKyAgIGNyZWF0ZWQgdmlhICJ3cml0ZV9zY3JpcHQiKS4KIAogIC0gdXNlIHNoIHdpdGhvdXQgc3BlbGxpbmcgaXQgYXMgIiRTSEVMTF9QQVRIIiwgd2hlbiB0aGUgc2NyaXB0IGNhbgogICAgYmUgbWlzaW50ZXJwcmV0ZWQgYnkgYnJva2VuIHBsYXRmb3JtIHNoZWxsIChlLmcuIFNvbGFyaXMpLgpAQCAtMzg3LDcgKzM5MSw3IEBACiBiZWxvdyksIGUuZy46CiAKICAgICB0ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ0kgbmVlZCBQZXJsJyAnCi0gICAgICAgICIkUEVSTF9QQVRIIiAtZSAiaGxhZ2goKSBpZiB1bmZfdW5mKCkiCisgICAgICAgIHBlcmwgLWUgImhsYWdoKCkgaWYgdW5mX3VuZigpIgogICAgICcKIAogVGhlIGFkdmFudGFnZSBvZiBza2lwcGluZyB0ZXN0cyBsaWtlIHRoaXMgaXMgdGhhdCBwbGF0Zm9ybXMgdGhhdCBkb24ndApAQCAtNTIwLDcgKzUyNCw3IEBACiAKIAl0ZXN0X2V4dGVybmFsIFwKIAkgICAgJ0dpdHdlYkNhY2hlOjoqRmlsZUNhY2hlKicgXAotCSAgICAiJFBFUkxfUEFUSCIgIiRURVNUX0RJUkVDVE9SWSIvdDk1MDMvdGVzdF9jYWNoZV9pbnRlcmZhY2UucGwKKwkgICAgcGVybCAiJFRFU1RfRElSRUNUT1JZIi90OTUwMy90ZXN0X2NhY2hlX2ludGVyZmFjZS5wbAogCiAgICBJZiB0aGUgdGVzdCBpcyBvdXRwdXR0aW5nIGl0cyBvd24gVEFQIHlvdSBzaG91bGQgc2V0IHRoZQogICAgdGVzdF9leHRlcm5hbF9oYXNfdGFwIHZhcmlhYmxlIHNvbWV3aGVyZSBiZWZvcmUgY2FsbGluZyB0aGUgZmlyc3QKQEAgLTUzNiw3ICs1NDAsNyBAQAogCiAJdGVzdF9leHRlcm5hbF93aXRob3V0X3N0ZGVyciBcCiAJICAgICdQZXJsIEFQSScgXAotCSAgICAiJFBFUkxfUEFUSCIgIiRURVNUX0RJUkVDVE9SWSIvdDk3MDAvdGVzdC5wbAorCSAgICBwZXJsICIkVEVTVF9ESVJFQ1RPUlkiL3Q5NzAwL3Rlc3QucGwKIAogIC0gdGVzdF9leHBlY3RfY29kZSA8ZXhpdC1jb2RlPiA8Y29tbWFuZD4KIApkaWZmIC0tZ2l0IGEvdC9hbm5vdGF0ZS10ZXN0cy5zaCBiL3QvYW5ub3RhdGUtdGVzdHMuc2gKaW5kZXggZDRlN2Y0Ny4uMzA0YzdiNyAxMDA2NDQKLS0tIGEvdC9hbm5vdGF0ZS10ZXN0cy5zaAorKysgYi90L2Fubm90YXRlLXRlc3RzLnNoCkBAIC05Miw3ICs5Miw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21lcmdlIGJyYW5jaDEgJiBicmFuY2gyJyAnCi0JZ2l0IHB1bGwgLiBicmFuY2gxCisJZ2l0IG1lcmdlIGJyYW5jaDEKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgMiBhdXRob3JzICsgMiBtZXJnZWQtaW4gYXV0aG9ycycgJwpAQCAtMTE2LDYgKzExNiwyNyBAQAogCWNoZWNrX2NvdW50IEEgMiBCIDEgQjEgMiBCMiAxICJBIFUgVGhvciIgMQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSBodWdlIGdyYWZ0JyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgY2hlY2tvdXQgYnJhbmNoMiIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1mIC5naXQvaW5mby9ncmFmdHMiICYmCisJZ3JhZnQ9ICYmCisJZm9yIGkgaW4gMCAxIDIKKwlkbworCQlmb3IgaiBpbiAwIDEgMiAzIDQgNSA2IDcgOCA5CisJCWRvCisJCQlnaXQgY2hlY2tvdXQgLS1vcnBoYW4gIiRpJGoiICYmCisJCQlwcmludGYgIiVzXG4iICIkaSIgIiRqIiA+ZmlsZSAmJgorCQkJdGVzdF90aWNrICYmCisJCQlHSVRfQVVUSE9SX05BTUU9JGkkaiBHSVRfQVVUSE9SX0VNQUlMPSRpJGpAdGVzdC5naXQgXAorCQkJZ2l0IGNvbW1pdCAtYSAtbSAiJGkkaiIgJiYKKwkJCWNvbW1pdD0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgSEVBRCkgJiYKKwkJCWdyYWZ0PSIkZ3JhZnQkY29tbWl0ICIKKwkJZG9uZQorCWRvbmUgJiYKKwlwcmludGYgIiVzICIgJGdyYWZ0ID4uZ2l0L2luZm8vZ3JhZnRzICYmCisJY2hlY2tfY291bnQgLWggMDAgMDEgMSAxMCAxCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGluY29tcGxldGUgbGluZScgJwogCWVjaG8gImluY29tcGxldGUiIHwgdHIgLWQgIlxcMDEyIiA+PmZpbGUgJiYKIAlHSVRfQVVUSE9SX05BTUU9IkMiIEdJVF9BVVRIT1JfRU1BSUw9IkNAdGVzdC5naXQiIFwKQEAgLTE4NSw2ICsyMDYsMjYgQEAKIAljaGVja19jb3VudCAtTDYsMyBCIDEgQjEgMSBCMiAxIEQgMQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAtWCcgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MLTEgZmlsZQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAwJyAnCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwwIGZpbGUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgLDAnICcKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTCwwIGZpbGUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgLCswJyAnCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwsKzAgZmlsZQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBYLCswJyAnCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwxLCswIGZpbGUKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgWCwrMScgJwogCWNoZWNrX2NvdW50IC1MMywrMSBCMiAxCiAnCkBAIC0xOTMsNiArMjM0LDE0IEBACiAJY2hlY2tfY291bnQgLUwzLCs0IEIgMSBCMSAxIEIyIDEgRCAxCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MICwtMCcgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MLC0wIGZpbGUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgWCwtMCcgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMSwtMCBmaWxlCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFgsLTEnICcKIAljaGVja19jb3VudCAtTDMsLTEgQjIgMQogJwpAQCAtMjI1LDE0ICsyNzQsMTA1IEBACiAJY2hlY2tfY291bnQgLUwvOTkvLC0zIEIgMSBCMiAxIEQgMQogJwogCisjICdmaWxlJyBlbmRzIHdpdGggYW4gaW5jb21wbGV0ZSBsaW5lLCBzbyAnd2MnIHJlcG9ydHMgb25lIGZld2VyIGxpbmVzIHRoYW4KKyMgZ2l0LWJsYW1lIHNlZXMsIGhlbmNlIHRoZSBsYXN0IGxpbmUgaXMgYWN0dWFsbHkgJCh3Yy4uLikrMS4KK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFggKFggPT0gbmxpbmVzKScgJworCW49JChleHByICQod2MgLWwgPGZpbGUpICsgMSkgJiYKKwljaGVja19jb3VudCAtTCRuIEMgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBYIChYID09IG5saW5lcyArIDEpJyAnCisJbj0kKGV4cHIgJCh3YyAtbCA8ZmlsZSkgKyAyKSAmJgorCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MJG4gZmlsZQorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBYIChYID4gbmxpbmVzKScgJwogCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMTIzNDUgZmlsZQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAsWSAoWSA9PSBubGluZXMpJyAnCisJbj0kKGV4cHIgJCh3YyAtbCA8ZmlsZSkgKyAxKSAmJgorCWNoZWNrX2NvdW50IC1MLCRuIEEgMSBCIDEgQjEgMSBCMiAxICJBIFUgVGhvciIgMSBDIDEgRCAxIEUgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAsWSAoWSA9PSBubGluZXMgKyAxKScgJworCW49JChleHByICQod2MgLWwgPGZpbGUpICsgMikgJiYKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTCwkbiBmaWxlCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MICxZIChZID4gbmxpbmVzKScgJwogCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MLDEyMzQ1IGZpbGUKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgbXVsdGlwbGUgKGRpc2pvaW50KScgJworCWNoZWNrX2NvdW50IC1MMiwzIC1MNiw3IEEgMSBCMSAxIEIyIDEgIkEgVSBUaG9yIiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIG11bHRpcGxlIChkaXNqb2ludDogdW5vcmRlcmVkKScgJworCWNoZWNrX2NvdW50IC1MNiw3IC1MMiwzIEEgMSBCMSAxIEIyIDEgIkEgVSBUaG9yIiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIG11bHRpcGxlIChhZGphY2VudCknICcKKwljaGVja19jb3VudCAtTDIsMyAtTDQsNSBBIDEgQiAxIEIyIDEgRCAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIG11bHRpcGxlIChhZGphY2VudDogdW5vcmRlcmVkKScgJworCWNoZWNrX2NvdW50IC1MNCw1IC1MMiwzIEEgMSBCIDEgQjIgMSBEIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgbXVsdGlwbGUgKG92ZXJsYXBwaW5nKScgJworCWNoZWNrX2NvdW50IC1MMiw0IC1MMyw1IEEgMSBCIDEgQjIgMSBEIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgbXVsdGlwbGUgKG92ZXJsYXBwaW5nOiB1bm9yZGVyZWQpJyAnCisJY2hlY2tfY291bnQgLUwzLDUgLUwyLDQgQSAxIEIgMSBCMiAxIEQgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBtdWx0aXBsZSAoc3VwZXJzZXQvc3Vic2V0KScgJworCWNoZWNrX2NvdW50IC1MMiw4IC1MMyw1IEEgMSBCIDEgQjEgMSBCMiAxIEMgMSBEIDEgIkEgVSBUaG9yIiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIG11bHRpcGxlIChzdXBlcnNldC9zdWJzZXQ6IHVub3JkZXJlZCknICcKKwljaGVja19jb3VudCAtTDMsNSAtTDIsOCBBIDEgQiAxIEIxIDEgQjIgMSBDIDEgRCAxICJBIFUgVGhvciIgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAvUkUvIChyZWxhdGl2ZSknICcKKwljaGVja19jb3VudCAtTDMsMyAtTC9mb3gvIEIxIDEgQjIgMSBDIDEgRCAxICJBIFUgVGhvciIgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAvUkUvIChyZWxhdGl2ZTogbm8gcHJlY2VkaW5nIHJhbmdlKScgJworCWNoZWNrX2NvdW50IC1ML2RvZy8gQSAxIEIgMSBCMSAxIEIyIDEgQyAxIEQgMSAiQSBVIFRob3IiIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgL1JFLyAocmVsYXRpdmU6IGFkamFjZW50KScgJworCWNoZWNrX2NvdW50IC1MMSwxIC1ML2RvZy8sKzEgQSAxIEUgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAvUkUvIChyZWxhdGl2ZTogbm90IGZvdW5kKScgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MNCw0IC1ML2RvZy8gZmlsZQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAvUkUvIChyZWxhdGl2ZTogZW5kLW9mLWZpbGUpJyAnCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwsIC1MLyQvIGZpbGUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgXi9SRS8gKGFic29sdXRlKScgJworCWNoZWNrX2NvdW50IC1MMywzIC1MXi9kb2cvLCsyIEEgMSBCMiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIF4vUkUvIChhYnNvbHV0ZTogbm8gcHJlY2VkaW5nIHJhbmdlKScgJworCWNoZWNrX2NvdW50IC1MXi9kb2cvLCsyIEEgMSBCMiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIF4vUkUvIChhYnNvbHV0ZTogbm90IGZvdW5kKScgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MNCw0IC1MXi90YW1ib3VyaW5lLyBmaWxlCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIF4vUkUvIChhYnNvbHV0ZTogZW5kLW9mLWZpbGUpJyAnCisJbj0kKGV4cHIgJCh3YyAtbCA8ZmlsZSkgKyAxKSAmJgorCWNoZWNrX2NvdW50IC1MJG4gLUxeLyQvLCsyIEEgMSBDIDEgRSAxCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIC1MIDpyZWdleCcgJwogCXRyIFEgIlxcdCIgPmhlbGxvLmMgPDwtXEVPRiAmJgogCWludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCkBAIC0yNzUsMTIgKzQxNSwxMzkgQEAKIAl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDpub21hdGNoIGhlbGxvLmMKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgYm9ndXMnICcKLQl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTCBmaWxlICYmCi0JdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwxLCsgZmlsZSAmJgotCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMSwtIGZpbGUgJiYKLQl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTFggZmlsZSAmJgotCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMSxYIGZpbGUgJiYKLQl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDEsK04gZmlsZSAmJgordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgOlJFIChyZWxhdGl2ZSknICcKKwljaGVja19jb3VudCAtZiBoZWxsby5jIC1MMywzIC1MOm1hLi4gRiAxIEggNAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCA6UkUgKHJlbGF0aXZlOiBubyBwcmVjZWRpbmcgcmFuZ2UpJyAnCisJY2hlY2tfY291bnQgLWYgaGVsbG8uYyAtTDptYS4uIEYgNCBHIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgOlJFIChyZWxhdGl2ZTogbm90IGZvdW5kKScgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMywzIC1MOnRhbWJvdXJpbmUgaGVsbG8uYworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCA6UkUgKHJlbGF0aXZlOiBlbmQtb2YtZmlsZSknICcKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTCwgLUw6bWFpbiBoZWxsby5jCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIF46UkUgKGFic29sdXRlKScgJworCWNoZWNrX2NvdW50IC1mIGhlbGxvLmMgLUwzLDMgLUxeOm1hLi4gRiA0IEcgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBeOlJFIChhYnNvbHV0ZTogbm8gcHJlY2VkaW5nIHJhbmdlKScgJworCWNoZWNrX2NvdW50IC1mIGhlbGxvLmMgLUxeOm1hLi4gRiA0IEcgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBeOlJFIChhYnNvbHV0ZTogbm90IGZvdW5kKScgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MNCw0IC1MXjp0YW1ib3VyaW5lIGhlbGxvLmMKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgXjpSRSAoYWJzb2x1dGU6IGVuZC1vZi1maWxlKScgJworCW49JChwcmludGYgIiVkIiAkKHdjIC1sIDxoZWxsby5jKSkgJiYKKwljaGVja19jb3VudCAtZiBoZWxsby5jIC1MJG4gLUxeOm1hLi4gRiA0IEcgMSBIIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgaW5jcmVtZW50YWwnICcKKwkoCisJR0lUX0FVVEhPUl9OQU1FPUkgJiYKKwlleHBvcnQgR0lUX0FVVEhPUl9OQU1FICYmCisJR0lUX0FVVEhPUl9FTUFJTD1JQHRlc3QuZ2l0ICYmCisJZXhwb3J0IEdJVF9BVVRIT1JfRU1BSUwgJiYKKwk+aW5jcmVtZW50YWwgJiYKKwlnaXQgYWRkIGluY3JlbWVudGFsICYmCisJZ2l0IGNvbW1pdCAtbSAic3RlcCAwIiAmJgorCXByaW50ZiAicGFydGlhbCIgPj5pbmNyZW1lbnRhbCAmJgorCWdpdCBjb21taXQgLWEgLW0gInN0ZXAgMC41IiAmJgorCWVjaG8gPj5pbmNyZW1lbnRhbCAmJgorCWdpdCBjb21taXQgLWEgLW0gInN0ZXAgMSIKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIGVtcHR5JyAnCisJY2hlY2tfY291bnQgLWggSEVBRF5eIC1mIGluY3JlbWVudGFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIDAgZW1wdHknICcKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDAgaW5jcmVtZW50YWwgSEVBRF5eCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIDEgZW1wdHknICcKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDEgaW5jcmVtZW50YWwgSEVBRF5eCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIDIgZW1wdHknICcKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDIgaW5jcmVtZW50YWwgSEVBRF5eCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIGhhbGYnICcKKwljaGVja19jb3VudCAtaCBIRUFEXiAtZiBpbmNyZW1lbnRhbCBJIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgMCBoYWxmJyAnCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwwIGluY3JlbWVudGFsIEhFQUReCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIDEgaGFsZicgJworCWNoZWNrX2NvdW50IC1oIEhFQUReIC1mIGluY3JlbWVudGFsIC1MMSBJIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgMiBoYWxmJyAnCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwyIGluY3JlbWVudGFsIEhFQUReCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIDMgaGFsZicgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMyBpbmNyZW1lbnRhbCBIRUFEXgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSBmdWxsJyAnCisJY2hlY2tfY291bnQgLWYgaW5jcmVtZW50YWwgSSAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIDAgZnVsbCcgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMCBpbmNyZW1lbnRhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAxIGZ1bGwnICcKKwljaGVja19jb3VudCAtZiBpbmNyZW1lbnRhbCAtTDEgSSAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIDIgZnVsbCcgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMiBpbmNyZW1lbnRhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAzIGZ1bGwnICcKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDMgaW5jcmVtZW50YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwnICcKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTCBmaWxlCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFgsKycgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMSwrIGZpbGUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgWCwtJyAnCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwxLC0gZmlsZQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBYIChub24tbnVtZXJpYyBYKScgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MWCBmaWxlCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFgsWSAobm9uLW51bWVyaWMgWSknICcKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDEsWSBmaWxlCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFgsK04gKG5vbi1udW1lcmljIE4pJyAnCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwxLCtOIGZpbGUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgWCwtTiAobm9uLW51bWVyaWMgTiknICcKIAl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDEsLU4gZmlsZQogJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAsXi9SRS8nICcKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDEsXi85OS8gZmlsZQorJwpkaWZmIC0tZ2l0IGEvdC9naXR3ZWItbGliLnNoIGIvdC9naXR3ZWItbGliLnNoCmluZGV4IDllMzgxZTAuLmQ1ZGFiNWEgMTAwNjQ0Ci0tLSBhL3QvZ2l0d2ViLWxpYi5zaAorKysgYi90L2dpdHdlYi1saWIuc2gKQEAgLTEsNCArMSw1IEBACi0jIS9iaW4vc2gKKyMgSW5pdGlhbGl6YXRpb24gYW5kIGhlbHBlcnMgZm9yIEdpdHdlYiB0ZXN0cywgd2hpY2ggc291cmNlIHRoaXMKKyMgc2hlbGwgbGlicmFyeSBpbnN0ZWFkIG9mIHRlc3QtbGliLnNoLgogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDcgSmFrdWIgTmFyZWJza2kKICMKQEAgLTY5LDcgKzcwLDcgQEAKIAkjIHdyaXR0ZW4gdG8gd2ViIHNlcnZlciBsb2dzLCBzbyB3ZSBhcmUgbm90IGludGVyZXN0ZWQgaW4gdGhhdDoKIAkjIHdlIGFyZSBpbnRlcmVzdGVkIG9ubHkgaW4gcHJvcGVybHkgZm9ybWF0dGVkIGVycm9ycy93YXJuaW5ncwogCXJtIC1mIGdpdHdlYi5sb2cgJiYKLQkiJFBFUkxfUEFUSCIgLS0gIiRTQ1JJUFRfTkFNRSIgXAorCXBlcmwgLS0gIiRTQ1JJUFRfTkFNRSIgXAogCQk+Z2l0d2ViLm91dHB1dCAyPmdpdHdlYi5sb2cgJiYKIAlwZXJsIC13IC1lICcKIAkJb3BlbiBPLCAiPmdpdHdlYi5oZWFkZXJzIjsKZGlmZiAtLWdpdCBhL3QvbGliLWJhc2guc2ggYi90L2xpYi1iYXNoLnNoCmluZGV4IDExMzk3ZjcuLjJiZTk1NWYgMTAwNjQ0Ci0tLSBhL3QvbGliLWJhc2guc2gKKysrIGIvdC9saWItYmFzaC5zaApAQCAtMSw3ICsxLDYgQEAKLSMhL2Jpbi9zaAotIwotIyBFbnN1cmVzIHRoYXQgdGVzdHMgYXJlIHJ1biB1bmRlciBCYXNoOyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIHJ1bm5pbmcgdGVzdHMKLSMgb2YgdGhlIGNvbXBsZXRpb24gc2NyaXB0LgorIyBTaGVsbCBsaWJyYXJ5IHNvdXJjZWQgaW5zdGVhZCBvZiAuL3Rlc3QtbGliLnNoIGJ5IHRlc3RzIHRoYXQgbmVlZAorIyB0byBydW4gdW5kZXIgQmFzaDsgcHJpbWFyaWx5IGludGVuZGVkIGZvciB0ZXN0cyBvZiB0aGUgY29tcGxldGlvbgorIyBzY3JpcHQuCiAKIGlmIHRlc3QgLW4gIiRCQVNIIiAmJiB0ZXN0IC16ICIkUE9TSVhMWV9DT1JSRUNUIjsgdGhlbgogCSMgd2UgYXJlIGluIGZ1bGwtb24gYmFzaCBtb2RlCmRpZmYgLS1naXQgYS90L2xpYi1jcmVkZW50aWFsLnNoIGIvdC9saWItY3JlZGVudGlhbC5zaAppbmRleCAzYzQzZmYxLi45NTdhZTkzIDEwMDc1NQotLS0gYS90L2xpYi1jcmVkZW50aWFsLnNoCisrKyBiL3QvbGliLWNyZWRlbnRpYWwuc2gKQEAgLTE4LDEwICsxOCw2IEBACiAJCWNhdCBzdGRlcnIgJiYKIAkJZmFsc2UKIAlmaSAmJgotCWlmIHRlc3RfaGF2ZV9wcmVyZXEgTUlOR1cKLQl0aGVuCi0JCWRvczJ1bml4IC1xIHN0ZGVycgotCWZpICYmCiAJdGVzdF9jbXAgZXhwZWN0LXN0ZG91dCBzdGRvdXQgJiYKIAl0ZXN0X2NtcCBleHBlY3Qtc3RkZXJyIHN0ZGVycgogfQpkaWZmIC0tZ2l0IGEvdC9saWItY3ZzLnNoIGIvdC9saWItY3ZzLnNoCmluZGV4IDQ0MjYzYWQuLjUwNzY3MTggMTAwNjQ0Ci0tLSBhL3QvbGliLWN2cy5zaAorKysgYi90L2xpYi1jdnMuc2gKQEAgLTEsNCArMSw0IEBACi0jIS9iaW4vc2gKKyMgU2hlbGwgbGlicmFyeSBzb3VyY2VkIGluc3RlYWQgb2YgLi90ZXN0LWxpYi5zaCBieSBjdnNpbXBvcnQgdGVzdHMuCiAKIC4gLi90ZXN0LWxpYi5zaAogCmRpZmYgLS1naXQgYS90L2xpYi1kaWZmLWFsdGVybmF0aXZlLnNoIGIvdC9saWItZGlmZi1hbHRlcm5hdGl2ZS5zaAppbmRleCA3NWZmZDkxLi44YjRkYmYyIDEwMDY0NAotLS0gYS90L2xpYi1kaWZmLWFsdGVybmF0aXZlLnNoCisrKyBiL3QvbGliLWRpZmYtYWx0ZXJuYXRpdmUuc2gKQEAgLTEsNCArMSw1IEBACi0jIS9iaW4vc2gKKyMgSGVscGVycyBzaGFyZWQgYnkgdGhlIHRlc3Qgc2NyaXB0cyBmb3IgZGlmZiBhbGdvcml0aG1zIChwYXRpZW5jZSwKKyMgaGlzdG9ncmFtLCBldGMpLgogCiB0ZXN0X2RpZmZfZnJvYm5pdHooKSB7CiAJY2F0ID5maWxlMSA8PFxFT0YKZGlmZiAtLWdpdCBhL3QvbGliLWdldHRleHQuc2ggYi90L2xpYi1nZXR0ZXh0LnNoCmluZGV4IGFlODg4M2EuLmVlYzc1N2YgMTAwNjQ0Ci0tLSBhL3QvbGliLWdldHRleHQuc2gKKysrIGIvdC9saWItZ2V0dGV4dC5zaApAQCAtMSw0ICsxLDUgQEAKLSMhL2Jpbi9zaAorIyBJbml0aWFsaXphdGlvbiBhbmQgSWNlbGFuZGljIGxvY2FsZSBmb3IgYmFzaWMgZ2l0IGkxOG4gdGVzdHMsCisjIHdoaWNoIHNvdXJjZSB0aGlzIHNjcmlwdGxldCBpbnN0ZWFkIG9mIC4vdGVzdC1saWIuc2guCiAjCiAjIENvcHlyaWdodCAoYykgMjAxMCDDhnZhciBBcm5masO2csOwIEJqYXJtYXNvbgogIwpkaWZmIC0tZ2l0IGEvdC9saWItZ2l0LWRhZW1vbi5zaCBiL3QvbGliLWdpdC1kYWVtb24uc2gKaW5kZXggODdmMGFkOC4uMzk0YjA2YiAxMDA2NDQKLS0tIGEvdC9saWItZ2l0LWRhZW1vbi5zaAorKysgYi90L2xpYi1naXQtZGFlbW9uLnNoCkBAIC0xLDQgKzEsMjAgQEAKLSMhL2Jpbi9zaAorIyBTaGVsbCBsaWJyYXJ5IHRvIHJ1biBnaXQtZGFlbW9uIGluIHRlc3RzLiAgRW5kcyB0aGUgdGVzdCBlYXJseSBpZgorIyBHSVRfVEVTVF9HSVRfREFFTU9OIGlzIG5vdCBzZXQuCisjCisjIFVzYWdlOgorIworIwkuIC4vdGVzdC1saWIuc2gKKyMJLiAiJFRFU1RfRElSRUNUT1JZIi9saWItZ2l0LWRhZW1vbi5zaAorIwlzdGFydF9naXRfZGFlbW9uCisjCisjCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJy4uLicgJworIwkJLi4uCisjCScKKyMKKyMJdGVzdF9leHBlY3Rfc3VjY2VzcyAuLi4KKyMKKyMJc3RvcF9naXRfZGFlbW9uCisjCXRlc3RfZG9uZQogCiBpZiB0ZXN0IC16ICIkR0lUX1RFU1RfR0lUX0RBRU1PTiIKIHRoZW4KZGlmZiAtLWdpdCBhL3QvbGliLWdpdC1wNC5zaCBiL3QvbGliLWdpdC1wNC5zaAppbmRleCAyMDk4YjliLi41YWE4YWRjIDEwMDY0NAotLS0gYS90L2xpYi1naXQtcDQuc2gKKysrIGIvdC9saWItZ2l0LXA0LnNoCkBAIC00NywxNCArNDcsMjIgQEAKIAogUDRQT1JUPWxvY2FsaG9zdDokUDREUE9SVAogUDRDTElFTlQ9Y2xpZW50Ci1QNEVESVRPUj06Ci1leHBvcnQgUDRQT1JUIFA0Q0xJRU5UIFA0RURJVE9SCitQNFVTRVI9YXV0aG9yCitQNEVESVRPUj10cnVlCit1bnNldCBQNENIQVJTRVQKK2V4cG9ydCBQNFBPUlQgUDRDTElFTlQgUDRVU0VSIFA0RURJVE9SIFA0Q0hBUlNFVAogCiBkYj0iJFRSQVNIX0RJUkVDVE9SWS9kYiIKIGNsaT0iJFRSQVNIX0RJUkVDVE9SWS9jbGkiCiBnaXQ9IiRUUkFTSF9ESVJFQ1RPUlkvZ2l0IgogcGlkZmlsZT0iJFRSQVNIX0RJUkVDVE9SWS9wNGQucGlkIgogCisjIGdpdCBwNCBzdWJtaXQgZ2VuZXJhdGVzIGEgdGVtcCBmaWxlLCB3aGljaCB3aWxsCisjIG5vdCBnZXQgY2xlYW5lZCB1cCBpZiB0aGUgc3VibWlzc2lvbiBmYWlscy4gIERvbid0CisjIGNsdXR0ZXIgdXAgL3RtcCBvbiB0aGUgdGVzdCBtYWNoaW5lLgorVE1QRElSPSIkVFJBU0hfRElSRUNUT1JZIgorZXhwb3J0IFRNUERJUgorCiBzdGFydF9wNGQoKSB7CiAJbWtkaXIgLXAgIiRkYiIgIiRjbGkiICIkZ2l0IiAmJgogCXJtIC1mICIkcGlkZmlsZSIgJiYKQEAgLTk1LDEyICsxMDMsMjQgQEAKIAkJcmV0dXJuIDEKIAlmaQogCisJIyBidWlsZCBhIHA0IHVzZXIgc28gYXV0aG9yQGV4YW1wbGUuY29tIGhhcyBhbiBlbnRyeQorCXA0X2FkZF91c2VyIGF1dGhvcgorCiAJIyBidWlsZCBhIGNsaWVudAogCWNsaWVudF92aWV3ICIvL2RlcG90Ly4uLiAvL2NsaWVudC8uLi4iICYmCiAKIAlyZXR1cm4gMAogfQogCitwNF9hZGRfdXNlcigpIHsKKwluYW1lPSQxICYmCisJcDQgdXNlciAtZiAtaSA8PC1FT0YKKwlVc2VyOiAkbmFtZQorCUVtYWlsOiAkbmFtZUBleGFtcGxlLmNvbQorCUZ1bGxOYW1lOiBEci4gJG5hbWUKKwlFT0YKK30KKwoga2lsbF9wNGQoKSB7CiAJcGlkPSQoY2F0ICIkcGlkZmlsZSIpCiAJIyBpdCBoYWQgYmV0dGVyIGV4aXN0IGZvciB0aGUgZmlyc3Qga2lsbApkaWZmIC0tZ2l0IGEvdC9saWItZ2l0LXN2bi5zaCBiL3QvbGliLWdpdC1zdm4uc2gKaW5kZXggYzVlNTViMS4uYjBlYzEyZiAxMDA2NDQKLS0tIGEvdC9saWItZ2l0LXN2bi5zaAorKysgYi90L2xpYi1naXQtc3ZuLnNoCkBAIC0yOSw3ICsyOSw3IEBACiBzdm5jb25mPSRQV0Qvc3ZuY29uZgogZXhwb3J0IHN2bmNvbmYKIAotIiRQRVJMX1BBVEgiIC13IC1lICIKK3BlcmwgLXcgLWUgIgogdXNlIFNWTjo6Q29yZTsKIHVzZSBTVk46OlJlcG9zOwogXCRTVk46OkNvcmU6OlZFUlNJT04gZ3QgJzEuMS4wJyBvciBleGl0KDQyKTsKQEAgLTE0Niw3ICsxNDYsNyBAQAogfQogCiBjb252ZXJ0X3RvX3Jldl9kYiAoKSB7Ci0JIiRQRVJMX1BBVEgiIC13IC0tIC0gIiRAIiA8PFxFT0YKKwlwZXJsIC13IC0tIC0gIiRAIiA8PFxFT0YKIHVzZSBzdHJpY3Q7CiBAQVJHViA9PSAyIG9yIGRpZSAidXNhZ2U6IGNvbnZlcnRfdG9fcmV2X2RiIDxpbnB1dD4gPG91dHB1dD4iOwogb3BlbiBteSAkd3IsICcrPicsICRBUkdWWzFdIG9yIGRpZSAiJCE6IGNvdWxkbid0IG9wZW46ICRBUkdWWzFdIjsKZGlmZiAtLWdpdCBhL3QvbGliLWh0dHBkLnNoIGIvdC9saWItaHR0cGQuc2gKaW5kZXggNzA1OWNjNi4uYmZkZmYyYSAxMDA2NDQKLS0tIGEvdC9saWItaHR0cGQuc2gKKysrIGIvdC9saWItaHR0cGQuc2gKQEAgLTEsNCArMSwzMSBAQAotIyEvYmluL3NoCisjIFNoZWxsIGxpYnJhcnkgdG8gcnVuIGFuIEhUVFAgc2VydmVyIGZvciB1c2UgaW4gdGVzdHMuCisjIEVuZHMgdGhlIHRlc3QgZWFybHkgaWYgaHR0cGQgdGVzdHMgc2hvdWxkIG5vdCBiZSBydW4sCisjIGZvciBleGFtcGxlIGJlY2F1c2UgdGhlIHVzZXIgaGFzIG5vdCBlbmFibGVkIHRoZW0uCisjCisjIFVzYWdlOgorIworIwkuIC4vdGVzdC1saWIuc2gKKyMJLiAiJFRFU1RfRElSRUNUT1JZIi9saWItaHR0cGQuc2gKKyMJc3RhcnRfaHR0cGQKKyMKKyMJdGVzdF9leHBlY3Rfc3VjY2VzcyAnLi4uJyAnCisjCQkuLi4KKyMJJworIworIwl0ZXN0X2V4cGVjdF9zdWNjZXNzIC4uLgorIworIwlzdG9wX2h0dHBkCisjCXRlc3RfZG9uZQorIworIyBDYW4gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcy4KKyMKKyMgICAgR0lUX1RFU1RfSFRUUEQgICAgICAgICAgICAgIGVuYWJsZSBIVFRQRCB0ZXN0cworIyAgICBMSUJfSFRUUERfUEFUSCAgICAgICAgICAgICAgd2ViIHNlcnZlciBwYXRoCisjICAgIExJQl9IVFRQRF9NT0RVTEVfUEFUSCAgICAgICB3ZWIgc2VydmVyIG1vZHVsZXMgcGF0aAorIyAgICBMSUJfSFRUUERfUE9SVCAgICAgICAgICAgICAgbGlzdGVuaW5nIHBvcnQKKyMgICAgTElCX0hUVFBEX0RBViAgICAgICAgICAgICAgIGVuYWJsZSBEQVYKKyMgICAgTElCX0hUVFBEX1NWTiAgICAgICAgICAgICAgIGVuYWJsZSBTVk4KKyMgICAgTElCX0hUVFBEX1NTTCAgICAgICAgICAgICAgIGVuYWJsZSBTU0wKICMKICMgQ29weXJpZ2h0IChjKSAyMDA4IENsZW1lbnMgQnVjaGFjaGVyIDxkcml6emRAYW9uLmF0PgogIwpAQCAtMTAyLDcgKzEyOSw3IEBACiAJSFRUUERfREVTVD0xMjcuMC4wLjE6JExJQl9IVFRQRF9QT1JUCiAJSFRUUERfVVJMPSRIVFRQRF9QUk9UTzovLyRIVFRQRF9ERVNUCiAJSFRUUERfVVJMX1VTRVI9JEhUVFBEX1BST1RPOi8vdXNlciU0MGhvc3RAJEhUVFBEX0RFU1QKLQlIVFRQRF9VUkxfVVNFUl9QQVNTPSRIVFRQRF9QUk9UTzovL3VzZXIlNDBob3N0OnVzZXIlNDBob3N0QCRIVFRQRF9ERVNUCisJSFRUUERfVVJMX1VTRVJfUEFTUz0kSFRUUERfUFJPVE86Ly91c2VyJTQwaG9zdDpwYXNzJTQwaG9zdEAkSFRUUERfREVTVAogCiAJaWYgdGVzdCAtbiAiJExJQl9IVFRQRF9EQVYiIC1vIC1uICIkTElCX0hUVFBEX1NWTiIKIAl0aGVuCkBAIC0xNDEsMTAgKzE2OCwxMSBAQAogCQktZiAiJFRFU1RfUEFUSC9hcGFjaGUuY29uZiIgJEhUVFBEX1BBUkEgLWsgc3RvcAogfQogCi10ZXN0X2h0dHBfcHVzaF9ub25mZigpIHsKK3Rlc3RfaHR0cF9wdXNoX25vbmZmICgpIHsKIAlSRU1PVEVfUkVQTz0kMQogCUxPQ0FMX1JFUE89JDIKIAlCUkFOQ0g9JDMKKwlFWFBFQ1RfQ0FTX1JFU1VMVD0kezQtZmFpbHVyZX0KIAogCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ25vbi1mYXN0LWZvcndhcmQgcHVzaCBmYWlscycgJwogCQljZCAiJFJFTU9URV9SRVBPIiAmJgpAQCAtMTY3LDEzICsxOTUsMzcgQEAKIAl0ZXN0X2V4cGVjdF9zdWNjZXNzICdub24tZmFzdC1mb3J3YXJkIHB1c2ggc2hvd3MgaGVscCBtZXNzYWdlJyAnCiAJCXRlc3RfaTE4bmdyZXAgIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIiBvdXRwdXQKIAknCisKKwl0ZXN0X2V4cGVjdF8ke0VYUEVDVF9DQVNfUkVTVUxUfSAnZm9yY2Ugd2l0aCBsZWFzZSBha2EgY2FzJyAnCisJCUhFQUQ9JCgJY2QgIiRSRU1PVEVfUkVQTyIgJiYgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBIRUFEICkgJiYKKwkJdGVzdF93aGVuX2ZpbmlzaGVkICdcJycKKwkJCShjZCAiJFJFTU9URV9SRVBPIiAmJiBnaXQgdXBkYXRlLXJlZiBIRUFEICIkSEVBRCIpCisJCSdcJycgJiYKKwkJKAorCQkJY2QgIiRMT0NBTF9SRVBPIiAmJgorCQkJZ2l0IHB1c2ggLXYgLS1mb3JjZS13aXRoLWxlYXNlPSRCUkFOQ0g6JEhFQUQgb3JpZ2luCisJCSkgJiYKKwkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAiJEJSQU5DSCIgPmV4cGVjdCAmJgorCQkoCisJCQljZCAiJFJFTU9URV9SRVBPIiAmJiBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQKKwkJKSA+YWN0dWFsICYmCisJCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwknCiB9CiAKIHNldHVwX2Fza3Bhc3NfaGVscGVyKCkgewogCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGFza3Bhc3MgaGVscGVyJyAnCiAJCXdyaXRlX3NjcmlwdCAiJFRSQVNIX0RJUkVDVE9SWS9hc2twYXNzIiA8PC1cRU9GICYmCiAJCWVjaG8gPj4iJFRSQVNIX0RJUkVDVE9SWS9hc2twYXNzLXF1ZXJ5IiAiYXNrcGFzczogJCoiICYmCi0JCWNhdCAiJFRSQVNIX0RJUkVDVE9SWS9hc2twYXNzLXJlc3BvbnNlIgorCQljYXNlICIkKiIgaW4KKwkJKlVzZXJuYW1lKikKKwkJCXdoYXQ9dXNlcgorCQkJOzsKKwkJKlBhc3N3b3JkKikKKwkJCXdoYXQ9cGFzcworCQkJOzsKKwkJZXNhYyAmJgorCQljYXQgIiRUUkFTSF9ESVJFQ1RPUlkvYXNrcGFzcy0kd2hhdCIKIAkJRU9GCiAJCUdJVF9BU0tQQVNTPSIkVFJBU0hfRElSRUNUT1JZL2Fza3Bhc3MiICYmCiAJCWV4cG9ydCBHSVRfQVNLUEFTUyAmJgpAQCAtMTgzLDcgKzIzNSw4IEBACiAKIHNldF9hc2twYXNzKCkgewogCT4iJFRSQVNIX0RJUkVDVE9SWS9hc2twYXNzLXF1ZXJ5IiAmJgotCWVjaG8gIiQqIiA+IiRUUkFTSF9ESVJFQ1RPUlkvYXNrcGFzcy1yZXNwb25zZSIKKwllY2hvICIkMSIgPiIkVFJBU0hfRElSRUNUT1JZL2Fza3Bhc3MtdXNlciIgJiYKKwllY2hvICIkMiIgPiIkVFJBU0hfRElSRUNUT1JZL2Fza3Bhc3MtcGFzcyIKIH0KIAogZXhwZWN0X2Fza3Bhc3MoKSB7CmRpZmYgLS1naXQgYS90L2xpYi1odHRwZC9hcGFjaGUuY29uZiBiL3QvbGliLWh0dHBkL2FwYWNoZS5jb25mCmluZGV4IDRhMjYxZjEuLjNhMDNlODIgMTAwNjQ0Ci0tLSBhL3QvbGliLWh0dHBkL2FwYWNoZS5jb25mCisrKyBiL3QvbGliLWh0dHBkL2FwYWNoZS5jb25mCkBAIC0yMiw2ICsyMiw5IEBACiA8SWZNb2R1bGUgIW1vZF92ZXJzaW9uLmM+CiAJTG9hZE1vZHVsZSB2ZXJzaW9uX21vZHVsZSBtb2R1bGVzL21vZF92ZXJzaW9uLnNvCiA8L0lmTW9kdWxlPgorPElmTW9kdWxlICFtb2RfaGVhZGVycy5jPgorCUxvYWRNb2R1bGUgaGVhZGVyc19tb2R1bGUgbW9kdWxlcy9tb2RfaGVhZGVycy5zbworPC9JZk1vZHVsZT4KIAogPElmVmVyc2lvbiA8IDIuND4KIExvY2tGaWxlIGFjY2VwdC5sb2NrCkBAIC04Nyw2ICs5MCwxMSBAQAogCVNldEVudiBHSVRfSFRUUF9FWFBPUlRfQUxMCiAJU2V0RW52IEdJVF9OQU1FU1BBQ0UgbnMKIDwvTG9jYXRpb25NYXRjaD4KKzxMb2NhdGlvbk1hdGNoIC9zbWFydF9jb29raWVzLz4KKwlTZXRFbnYgR0lUX0VYRUNfUEFUSCAke0dJVF9FWEVDX1BBVEh9CisJU2V0RW52IEdJVF9IVFRQX0VYUE9SVF9BTEwKKwlIZWFkZXIgc2V0IFNldC1Db29raWUgbmFtZT12YWx1ZQorPC9Mb2NhdGlvbk1hdGNoPgogU2NyaXB0QWxpYXNNYXRjaCAvc21hcnRfKlteL10qLyguKikgJHtHSVRfRVhFQ19QQVRIfS9naXQtaHR0cC1iYWNrZW5kLyQxCiBTY3JpcHRBbGlhcyAvYnJva2VuX3NtYXJ0LyBicm9rZW4tc21hcnQtaHR0cC5zaC8KIDxEaXJlY3RvcnkgJHtHSVRfRVhFQ19QQVRIfT4KZGlmZiAtLWdpdCBhL3QvbGliLWh0dHBkL3Bhc3N3ZCBiL3QvbGliLWh0dHBkL3Bhc3N3ZAppbmRleCBmMmZiY2FkLi45OWEzNGQ2IDEwMDY0NAotLS0gYS90L2xpYi1odHRwZC9wYXNzd2QKKysrIGIvdC9saWItaHR0cGQvcGFzc3dkCkBAIC0xICsxIEBACi11c2VyQGhvc3Q6bktwYThwWlVIeC9pYwordXNlckBob3N0OnhiNEU4cHFEODFLUXMKZGlmZiAtLWdpdCBhL3QvbGliLXBhY2suc2ggYi90L2xpYi1wYWNrLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MDk4NDYKLS0tIC9kZXYvbnVsbAorKysgYi90L2xpYi1wYWNrLnNoCkBAIC0wLDAgKzEsOTggQEAKKyMgU3VwcG9ydCByb3V0aW5lcyBmb3IgaGFuZC1jcmFmdGluZyB3ZWlyZCBvciBtYWxpY2lvdXMgcGFja3MuCisjCisjIFlvdSBjYW4gbWFrZSBhIGNvbXBsZXRlIHBhY2sgbGlrZToKKyMKKyMgICBwYWNrX2hlYWRlciAyID5mb28ucGFjayAmJgorIyAgIHBhY2tfb2JqIGU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgPj5mb28ucGFjayAmJgorIyAgIHBhY2tfb2JqIGU2OGZlODEyOWI1NDZiMTAxYWVlOTUxMGM1MzI4ZTdmMjFjYTFkMTggPj5mb28ucGFjayAmJgorIyAgIHBhY2tfdHJhaWxlciBmb28ucGFjaworCisjIFByaW50IHRoZSBiaWctZW5kaWFuIDQtYnl0ZSBvY3RhbCByZXByZXNlbnRhdGlvbiBvZiAkMQordWludDMyX29jdGFsICgpIHsKKwluPSQxCisJcHJpbnRmICdcXCVvJyAkKCgkbiAvIDE2Nzc3MjE2KSk7IG49JCgobiAlIDE2Nzc3MjE2KSkKKwlwcmludGYgJ1xcJW8nICQoKCRuIC8gICAgNjU1MzYpKTsgbj0kKChuICUgICAgNjU1MzYpKQorCXByaW50ZiAnXFwlbycgJCgoJG4gLyAgICAgIDI1NikpOyBuPSQoKG4gJSAgICAgIDI1NikpCisJcHJpbnRmICdcXCVvJyAkKCgkbiAgICAgICAgICAgKSk7Cit9CisKKyMgUHJpbnQgdGhlIGJpZy1lbmRpYW4gNC1ieXRlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiAkMQordWludDMyX2JpbmFyeSAoKSB7CisJcHJpbnRmICIkKHVpbnQzMl9vY3RhbCAiJDEiKSIKK30KKworIyBQcmludCBhIHBhY2sgaGVhZGVyLCB2ZXJzaW9uIDIsIGZvciBhIHBhY2sgd2l0aCAkMSBvYmplY3RzCitwYWNrX2hlYWRlciAoKSB7CisJcHJpbnRmICdQQUNLJyAmJgorCXByaW50ZiAnXDBcMFwwXDInICYmCisJdWludDMyX2JpbmFyeSAiJDEiCit9CisKKyMgUHJpbnQgdGhlIHBhY2sgZGF0YSBmb3Igb2JqZWN0ICQxLCBhcyBhIGRlbHRhIGFnYWluc3Qgb2JqZWN0ICQyIChvciBhcyBhIGZ1bGwKKyMgb2JqZWN0IGlmICQyIGlzIG1pc3Npbmcgb3IgZW1wdHkpLiBUaGUgb3V0cHV0IGlzIHN1aXRhYmxlIGZvciBpbmNsdWRpbmcKKyMgZGlyZWN0bHkgaW4gdGhlIHBhY2tmaWxlLCBhbmQgcmVwcmVzZW50cyB0aGUgZW50aXJldHkgb2YgdGhlIG9iamVjdCBlbnRyeS4KKyMgRG9pbmcgdGhpcyBvbiB0aGUgZmx5IChlc3BlY2lhbGx5IHBpY2tpbmcgeW91ciBkZWx0YXMpIGlzIHF1aXRlIHRyaWNreSwgc28gd2UKKyMgaGF2ZSBoYXJkY29kZWQgc29tZSB3ZWxsLWtub3duIG9iamVjdHMuIFNlZSB0aGUgY2FzZSBzdGF0ZW1lbnRzIGJlbG93IGZvciB0aGUKKyMgY29tcGxldGUgbGlzdC4KK3BhY2tfb2JqICgpIHsKKwljYXNlICIkMSIgaW4KKwkjIGVtcHR5IGJsb2IKKwllNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxKQorCQljYXNlICIkMiIgaW4KKwkJJycpCisJCQlwcmludGYgJ1wwNjBcMTcwXDIzNFwwMDNcMFwwXDBcMFwxJworCQkJcmV0dXJuCisJCQk7OworCQllc2FjCisJCTs7CisKKwkjIGJsb2IgY29udGFpbmluZyAiXDdcNzYiCisJZTY4ZmU4MTI5YjU0NmIxMDFhZWU5NTEwYzUzMjhlN2YyMWNhMWQxOCkKKwkJY2FzZSAiJDIiIGluCisJCScnKQorCQkJcHJpbnRmICdcMDYyXDE3MFwyMzRcMTQzXDI2N1wzXDBcMFwxMTZcMFwxMDYnCisJCQlyZXR1cm4KKwkJCTs7CisJCTAxZDc3MTM2NjZmNGRlODIyNzc2Yzc2MjJjMTBmMWIwN2RlMjgwZGMpCisJCQlwcmludGYgJ1wxNjVcMVwzMjdcMTYxXDY2XDE0NlwzNjRcMzM2XDIwMlw0N1wxNjYnICYmCisJCQlwcmludGYgJ1wzMDdcMTQyXDU0XDIwXDM2MVwyNjBcMTc1XDM0MlwyMDBcMzM0XDE3MCcgJiYKKwkJCXByaW50ZiAnXDIzNFwxNDNcMTQyXDE0MlwxNDJcMjY3XDAwM1wwXDBcMTUxXDBcMTE0JworCQkJcmV0dXJuCisJCQk7OworCQllc2FjCisJCTs7CisKKwkjIGJsb2IgY29udGFpbmluZyAiXDdcMCIKKwkwMWQ3NzEzNjY2ZjRkZTgyMjc3NmM3NjIyYzEwZjFiMDdkZTI4MGRjKQorCQljYXNlICIkMiIgaW4KKwkJJycpCisJCQlwcmludGYgJ1wwNjJcMTcwXDIzNFwxNDNcMTQ3XDBcMFwwXDIwXDBcMTAnCisJCQlyZXR1cm4KKwkJCTs7CisJCWU2OGZlODEyOWI1NDZiMTAxYWVlOTUxMGM1MzI4ZTdmMjFjYTFkMTgpCisJCQlwcmludGYgJ1wxNjVcMzQ2XDIxN1wzNTBcMjJcMjMzXDEyNFwxNTNcMjBcMzJcMzU2JyAmJgorCQkJcHJpbnRmICdcMjI1XDIwXDMwNVw2MlwyMTZcMTc3XDQxXDMxMlwzNVwzMFwxNzBcMjM0JyAmJgorCQkJcHJpbnRmICdcMTQzXDE0MlwxNDJcMTQyXDE0N1wwXDBcMFw1M1wwXDE2JworCQkJcmV0dXJuCisJCQk7OworCQllc2FjCisJCTs7CisJZXNhYworCisJZWNobyA+JjIgIkJVRzogZG9uJ3Qga25vdyBob3cgdG8gcHJpbnQgJDEkezI6KyAoZnJvbSAkMil9IgorCXJldHVybiAxCit9CisKKyMgQ29tcHV0ZSBhbmQgYXBwZW5kIHBhY2sgdHJhaWxlciB0byAiJDEiCitwYWNrX3RyYWlsZXIgKCkgeworCXRlc3Qtc2hhMSAtYiA8IiQxIiA+dHJhaWxlci50bXAgJiYKKwljYXQgdHJhaWxlci50bXAgPj4iJDEiICYmCisJcm0gLWYgdHJhaWxlci50bXAKK30KKworIyBSZW1vdmUgYW55IGV4aXN0aW5nIHBhY2tzIHRvIG1ha2Ugc3VyZSB0aGF0CisjIHdoYXRldmVyIHdlIGluZGV4IG5leHQgd2lsbCBiZSB0aGUgcGFjayB0aGF0IHdlCisjIGFjdHVhbGx5IHVzZS4KK2NsZWFyX3BhY2tzICgpIHsKKwlybSAtZiAuZ2l0L29iamVjdHMvcGFjay8qCit9CmRpZmYgLS1naXQgYS90L2xpYi1wYWdlci5zaCBiL3QvbGliLXBhZ2VyLnNoCmluZGV4IGJhMDNlYWIuLjNhYTdhM2YgMTAwNjQ0Ci0tLSBhL3QvbGliLXBhZ2VyLnNoCisrKyBiL3QvbGliLXBhZ2VyLnNoCkBAIC0xLDQgKzEsNCBAQAotIyEvYmluL3NoCisjIEhlbHBlcnMgZm9yIHRlc3RzIG9mIGdpdCdzIGNob2ljZSBvZiBwYWdlci4KIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZGV0ZXJtaW5lIGRlZmF1bHQgcGFnZXInICcKIAl0ZXN0X21pZ2h0X2ZhaWwgZ2l0IGNvbmZpZyAtLXVuc2V0IGNvcmUucGFnZXIgJiYKZGlmZiAtLWdpdCBhL3QvbGliLXByZXJlcS1GSUxFTU9ERS5zaCBiL3QvbGliLXByZXJlcS1GSUxFTU9ERS5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmNlNWE0Yy4uMDAwMDAwMAotLS0gYS90L2xpYi1wcmVyZXEtRklMRU1PREUuc2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0jIS9iaW4vc2gKLSMKLSMgQ29weXJpZ2h0IChjKSAyMDEwIMOGdmFyIEFybmZqw7Zyw7AgQmphcm1hc29uCi0jCi0KLWlmIHRlc3QgIiQoZ2l0IGNvbmZpZyAtLWJvb2wgY29yZS5maWxlbW9kZSkiID0gZmFsc2UKLXRoZW4KLQlzYXkgJ2ZpbGVtb2RlIGRpc2FibGVkIG9uIHRoZSBmaWxlc3lzdGVtJwotZWxzZQotCXRlc3Rfc2V0X3ByZXJlcSBGSUxFTU9ERQotZmkKZGlmZiAtLWdpdCBhL3QvbGliLXJlYWQtdHJlZS5zaCBiL3QvbGliLXJlYWQtdHJlZS5zaAppbmRleCBhYmMyYzZmLi5iOTVmNDg1IDEwMDY0NAotLS0gYS90L2xpYi1yZWFkLXRyZWUuc2gKKysrIGIvdC9saWItcmVhZC10cmVlLnNoCkBAIC0xLDQzICsxLDQxIEBACi0jIS9iaW4vc2gKLSMKICMgSGVscGVyIGZ1bmN0aW9ucyB0byBjaGVjayBpZiByZWFkLXRyZWUgd291bGQgc3VjY2VlZC9mYWlsIGFzIGV4cGVjdGVkIHdpdGgKICMgYW5kIHdpdGhvdXQgdGhlIGRyeS1ydW4gb3B0aW9uLiBUaGV5IGFsc28gdGVzdCB0aGF0IHRoZSBkcnktcnVuIGRvZXMgbm90CiAjIHdyaXRlIHRoZSBpbmRleCBhbmQgdGhhdCB0b2dldGhlciB3aXRoIC11IGl0IGRvZXNuJ3QgdG91Y2ggdGhlIHdvcmsgdHJlZS4KICMKIHJlYWRfdHJlZV9tdXN0X3N1Y2NlZWQgKCkgewotICAgIGdpdCBscy1maWxlcyAtcyA+cHJlLWRyeS1ydW4gJiYKLSAgICBnaXQgcmVhZC10cmVlIC1uICIkQCIgJiYKLSAgICBnaXQgbHMtZmlsZXMgLXMgPnBvc3QtZHJ5LXJ1biAmJgotICAgIHRlc3RfY21wIHByZS1kcnktcnVuIHBvc3QtZHJ5LXJ1biAmJgotICAgIGdpdCByZWFkLXRyZWUgIiRAIgorCWdpdCBscy1maWxlcyAtcyA+cHJlLWRyeS1ydW4gJiYKKwlnaXQgcmVhZC10cmVlIC1uICIkQCIgJiYKKwlnaXQgbHMtZmlsZXMgLXMgPnBvc3QtZHJ5LXJ1biAmJgorCXRlc3RfY21wIHByZS1kcnktcnVuIHBvc3QtZHJ5LXJ1biAmJgorCWdpdCByZWFkLXRyZWUgIiRAIgogfQogCiByZWFkX3RyZWVfbXVzdF9mYWlsICgpIHsKLSAgICBnaXQgbHMtZmlsZXMgLXMgPnByZS1kcnktcnVuICYmCi0gICAgdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlYWQtdHJlZSAtbiAiJEAiICYmCi0gICAgZ2l0IGxzLWZpbGVzIC1zID5wb3N0LWRyeS1ydW4gJiYKLSAgICB0ZXN0X2NtcCBwcmUtZHJ5LXJ1biBwb3N0LWRyeS1ydW4gJiYKLSAgICB0ZXN0X211c3RfZmFpbCBnaXQgcmVhZC10cmVlICIkQCIKKwlnaXQgbHMtZmlsZXMgLXMgPnByZS1kcnktcnVuICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlYWQtdHJlZSAtbiAiJEAiICYmCisJZ2l0IGxzLWZpbGVzIC1zID5wb3N0LWRyeS1ydW4gJiYKKwl0ZXN0X2NtcCBwcmUtZHJ5LXJ1biBwb3N0LWRyeS1ydW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmVhZC10cmVlICIkQCIKIH0KIAogcmVhZF90cmVlX3VfbXVzdF9zdWNjZWVkICgpIHsKLSAgICBnaXQgbHMtZmlsZXMgLXMgPnByZS1kcnktcnVuICYmCi0gICAgZ2l0IGRpZmYtZmlsZXMgLXAgPnByZS1kcnktcnVuLXd0ICYmCi0gICAgZ2l0IHJlYWQtdHJlZSAtbiAiJEAiICYmCi0gICAgZ2l0IGxzLWZpbGVzIC1zID5wb3N0LWRyeS1ydW4gJiYKLSAgICBnaXQgZGlmZi1maWxlcyAtcCA+cG9zdC1kcnktcnVuLXd0ICYmCi0gICAgdGVzdF9jbXAgcHJlLWRyeS1ydW4gcG9zdC1kcnktcnVuICYmCi0gICAgdGVzdF9jbXAgcHJlLWRyeS1ydW4td3QgcG9zdC1kcnktcnVuLXd0ICYmCi0gICAgZ2l0IHJlYWQtdHJlZSAiJEAiCisJZ2l0IGxzLWZpbGVzIC1zID5wcmUtZHJ5LXJ1biAmJgorCWdpdCBkaWZmLWZpbGVzIC1wID5wcmUtZHJ5LXJ1bi13dCAmJgorCWdpdCByZWFkLXRyZWUgLW4gIiRAIiAmJgorCWdpdCBscy1maWxlcyAtcyA+cG9zdC1kcnktcnVuICYmCisJZ2l0IGRpZmYtZmlsZXMgLXAgPnBvc3QtZHJ5LXJ1bi13dCAmJgorCXRlc3RfY21wIHByZS1kcnktcnVuIHBvc3QtZHJ5LXJ1biAmJgorCXRlc3RfY21wIHByZS1kcnktcnVuLXd0IHBvc3QtZHJ5LXJ1bi13dCAmJgorCWdpdCByZWFkLXRyZWUgIiRAIgogfQogCiByZWFkX3RyZWVfdV9tdXN0X2ZhaWwgKCkgewotICAgIGdpdCBscy1maWxlcyAtcyA+cHJlLWRyeS1ydW4gJiYKLSAgICBnaXQgZGlmZi1maWxlcyAtcCA+cHJlLWRyeS1ydW4td3QgJiYKLSAgICB0ZXN0X211c3RfZmFpbCBnaXQgcmVhZC10cmVlIC1uICIkQCIgJiYKLSAgICBnaXQgbHMtZmlsZXMgLXMgPnBvc3QtZHJ5LXJ1biAmJgotICAgIGdpdCBkaWZmLWZpbGVzIC1wID5wb3N0LWRyeS1ydW4td3QgJiYKLSAgICB0ZXN0X2NtcCBwcmUtZHJ5LXJ1biBwb3N0LWRyeS1ydW4gJiYKLSAgICB0ZXN0X2NtcCBwcmUtZHJ5LXJ1bi13dCBwb3N0LWRyeS1ydW4td3QgJiYKLSAgICB0ZXN0X211c3RfZmFpbCBnaXQgcmVhZC10cmVlICIkQCIKKwlnaXQgbHMtZmlsZXMgLXMgPnByZS1kcnktcnVuICYmCisJZ2l0IGRpZmYtZmlsZXMgLXAgPnByZS1kcnktcnVuLXd0ICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlYWQtdHJlZSAtbiAiJEAiICYmCisJZ2l0IGxzLWZpbGVzIC1zID5wb3N0LWRyeS1ydW4gJiYKKwlnaXQgZGlmZi1maWxlcyAtcCA+cG9zdC1kcnktcnVuLXd0ICYmCisJdGVzdF9jbXAgcHJlLWRyeS1ydW4gcG9zdC1kcnktcnVuICYmCisJdGVzdF9jbXAgcHJlLWRyeS1ydW4td3QgcG9zdC1kcnktcnVuLXd0ICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlYWQtdHJlZSAiJEAiCiB9CmRpZmYgLS1naXQgYS90L2xpYi1yZWJhc2Uuc2ggYi90L2xpYi1yZWJhc2Uuc2gKaW5kZXggOGZmODdmYi4uNmJkMjUyMiAxMDA2NDQKLS0tIGEvdC9saWItcmViYXNlLnNoCisrKyBiL3QvbGliLXJlYmFzZS5zaApAQCAtMSw0ICsxLDQgQEAKLSMhL2Jpbi9zaAorIyBIZWxwZXIgZnVuY3Rpb25zIHVzZWQgYnkgaW50ZXJhY3RpdmUgcmViYXNlIHRlc3RzLgogCiAjIEFmdGVyIHNldHRpbmcgdGhlIGZha2UgZWRpdG9yIHdpdGggdGhpcyBmdW5jdGlvbiwgeW91IGNhbgogIwpkaWZmIC0tZ2l0IGEvdC9saWItdGVybWluYWwuc2ggYi90L2xpYi10ZXJtaW5hbC5zaAppbmRleCA1OGQ5MTFkLi45YTJkY2E1IDEwMDY0NAotLS0gYS90L2xpYi10ZXJtaW5hbC5zaAorKysgYi90L2xpYi10ZXJtaW5hbC5zaApAQCAtMSw0ICsxLDQgQEAKLSMhL2Jpbi9zaAorIyBIZWxwZXJzIGZvciB0ZXJtaW5hbCBvdXRwdXQgdGVzdHMuCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCAnc2V0IHVwIHRlcm1pbmFsIGZvciB0ZXN0cycgJwogCSMgUmVhZGluZyBmcm9tIHRoZSBwdHkgbWFzdGVyIHNlZW1zIHRvIGdldCBzdHVjayBfc29tZXRpbWVzXwpAQCAtMTksNyArMTksNyBAQAogCXRoZW4KIAkJOgogCWVsaWYKLQkJIiRQRVJMX1BBVEgiICIkVEVTVF9ESVJFQ1RPUlkiL3Rlc3QtdGVybWluYWwucGVybCBcCisJCXBlcmwgIiRURVNUX0RJUkVDVE9SWSIvdGVzdC10ZXJtaW5hbC5wZXJsIFwKIAkJCXNoIC1jICJ0ZXN0IC10IDEgJiYgdGVzdCAtdCAyIgogCXRoZW4KIAkJdGVzdF9zZXRfcHJlcmVxIFRUWSAmJgpAQCAtMjksNyArMjksNyBAQAogCQkJCWVjaG8gPiY0ICJ0ZXN0X3Rlcm1pbmFsOiBuZWVkIHRvIGRlY2xhcmUgVFRZIHByZXJlcXVpc2l0ZSIKIAkJCQlyZXR1cm4gMTI3CiAJCQlmaQotCQkJIiRQRVJMX1BBVEgiICIkVEVTVF9ESVJFQ1RPUlkiL3Rlc3QtdGVybWluYWwucGVybCAiJEAiCisJCQlwZXJsICIkVEVTVF9ESVJFQ1RPUlkiL3Rlc3QtdGVybWluYWwucGVybCAiJEAiCiAJCX0KIAlmaQogJwpkaWZmIC0tZ2l0IGEvdC9wZXJmL3AwMDAxLXJldi1saXN0LnNoIGIvdC9wZXJmL3AwMDAxLXJldi1saXN0LnNoCmluZGV4IDRmNzFhNjMuLjE2MzU5ZDUgMTAwNzU1Ci0tLSBhL3QvcGVyZi9wMDAwMS1yZXYtbGlzdC5zaAorKysgYi90L3BlcmYvcDAwMDEtcmV2LWxpc3Quc2gKQEAgLTE0LDQgKzE0LDE2IEBACiAJZ2l0IHJldi1saXN0IC0tYWxsIC0tb2JqZWN0cyA+L2Rldi9udWxsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NyZWF0ZSBuZXcgdW5yZWZlcmVuY2VkIGNvbW1pdCcgJworCWNvbW1pdD0kKGdpdCBjb21taXQtdHJlZSBIRUFEXnt0cmVlfSAtcCBIRUFEKQorJworCit0ZXN0X3BlcmYgJ3Jldi1saXN0ICRjb21taXQgLS1ub3QgLS1hbGwnICcKKwlnaXQgcmV2LWxpc3QgJGNvbW1pdCAtLW5vdCAtLWFsbCA+L2Rldi9udWxsCisnCisKK3Rlc3RfcGVyZiAncmV2LWxpc3QgLS1vYmplY3RzICRjb21taXQgLS1ub3QgLS1hbGwnICcKKwlnaXQgcmV2LWxpc3QgLS1vYmplY3RzICRjb21taXQgLS1ub3QgLS1hbGwgPi9kZXYvbnVsbAorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvcGVyZi9wNDAwMS1kaWZmLW5vLWluZGV4LnNoIGIvdC9wZXJmL3A0MDAxLWRpZmYtbm8taW5kZXguc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjgzYmU2OQotLS0gL2Rldi9udWxsCisrKyBiL3QvcGVyZi9wNDAwMS1kaWZmLW5vLWluZGV4LnNoCkBAIC0wLDAgKzEsMjIgQEAKKyMhL2Jpbi9zaAorCit0ZXN0X2Rlc2NyaXB0aW9uPSJUZXN0IGRpZmYgLS1uby1pbmRleCBwZXJmb3JtYW5jZSIKKworLiAuL3BlcmYtbGliLnNoCisKK3Rlc3RfcGVyZl9sYXJnZV9yZXBvCit0ZXN0X2NoZWNrb3V0X3dvcmt0cmVlCisKK2ZpbGUxPSQoZ2l0IGxzLWZpbGVzIHwgdGFpbCAtbiAyIHwgaGVhZCAtMSkKK2ZpbGUyPSQoZ2l0IGxzLWZpbGVzIHwgdGFpbCAtbiAxIHwgaGVhZCAtMSkKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAiZW1wdHkgZmlsZXMsIHNvIHRoZXkgdGFrZSBubyB0aW1lIHRvIGRpZmYiICIKKwllY2hvID4kZmlsZTEgJiYKKwllY2hvID4kZmlsZTIKKyIKKwordGVzdF9wZXJmICJkaWZmIC0tbm8taW5kZXgiICIKKwlnaXQgZGlmZiAtLW5vLWluZGV4ICRmaWxlMSAkZmlsZTIgPi9kZXYvbnVsbAorIgorCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvcGVyZi9wZXJmLWxpYi5zaCBiL3QvcGVyZi9wZXJmLWxpYi5zaAppbmRleCBmNGVlY2FhLi5hOGM5NTc0IDEwMDY0NAotLS0gYS90L3BlcmYvcGVyZi1saWIuc2gKKysrIGIvdC9wZXJmL3BlcmYtbGliLnNoCkBAIC0xLDQgKzEsNiBAQAotIyEvYmluL3NoCisjIFBlcmZvcm1hbmNlIHRlc3RpbmcgZnJhbWV3b3JrLiAgRWFjaCBwZXJmIHNjcmlwdCBzdGFydHMgbXVjaCBsaWtlCisjIGEgbm9ybWFsIHRlc3Qgc2NyaXB0LCBleGNlcHQgaXQgc291cmNlcyB0aGlzIGxpYnJhcnkgaW5zdGVhZCBvZgorIyB0ZXN0LWxpYi5zaC4gIFNlZSB0L3BlcmYvUkVBRE1FIGZvciBkb2N1bWVudGF0aW9uLgogIwogIyBDb3B5cmlnaHQgKGMpIDIwMTEgVGhvbWFzIFJhc3QKICMKZGlmZiAtLWdpdCBhL3QvdDAwMDAtYmFzaWMuc2ggYi90L3QwMDAwLWJhc2ljLnNoCmluZGV4IDEwYmU1MmIuLmEyYmI2M2MgMTAwNzU1Ci0tLSBhL3QvdDAwMDAtYmFzaWMuc2gKKysrIGIvdC90MDAwMC1iYXNpYy5zaApAQCAtNDEsMjAgKzQxLDE3IEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdWNjZXNzIGlzIHJlcG9ydGVkIGxpa2UgdGhpcycgJwogCToKICcKLXRlc3RfZXhwZWN0X2ZhaWx1cmUgJ3ByZXRlbmQgd2UgaGF2ZSBhIGtub3duIGJyZWFrYWdlJyAnCi0JZmFsc2UKLScKIAogcnVuX3N1Yl90ZXN0X2xpYl90ZXN0ICgpIHsKIAluYW1lPSIkMSIgZGVzY3I9IiQyIiAjIHN0ZGluIGlzIHRoZSBib2R5IG9mIHRoZSB0ZXN0IGNvZGUKIAlzaGlmdCAyCiAJbWtkaXIgIiRuYW1lIiAmJgogCSgKLQkJIyBQcmV0ZW5kIHdlJ3JlIGEgdGVzdCBoYXJuZXNzLiAgVGhpcyBwcmV2ZW50cwotCQkjIHRlc3QtbGliIGZyb20gd3JpdGluZyB0aGUgY291bnRzIHRvIGEgZmlsZSB0aGF0IHdpbGwKLQkJIyBsYXRlciBiZSBzdW1tYXJpemVkLCBzaG93aW5nIHNwdXJpb3VzICJmYWlsZWQiIHRlc3RzCi0JCUhBUk5FU1NfQUNUSVZFPXQgJiYKLQkJZXhwb3J0IEhBUk5FU1NfQUNUSVZFICYmCisJCSMgUHJldGVuZCB3ZSdyZSBub3QgcnVubmluZyB1bmRlciBhIHRlc3QgaGFybmVzcywgd2hldGhlciB3ZQorCQkjIGFyZSBvciBub3QuIFRoZSB0ZXN0LWxpYiBvdXRwdXQgZGVwZW5kcyBvbiB0aGUgc2V0dGluZyBvZgorCQkjIHRoaXMgdmFyaWFibGUsIHNvIHdlIG5lZWQgYSBzdGFibGUgc2V0dGluZyB1bmRlciB3aGljaCB0byBydW4KKwkJIyB0aGUgc3ViLXRlc3QuCisJCXNhbmVfdW5zZXQgSEFSTkVTU19BQ1RJVkUgJiYKIAkJY2QgIiRuYW1lIiAmJgogCQljYXQgPiIkbmFtZS5zaCIgPDwtRU9GICYmCiAJCSMhJFNIRUxMX1BBVEgKQEAgLTcxLDYgKzY4LDggQEAKIAkJY2F0ID4+IiRuYW1lLnNoIiAmJgogCQljaG1vZCAreCAiJG5hbWUuc2giICYmCiAJCWV4cG9ydCBURVNUX0RJUkVDVE9SWSAmJgorCQlURVNUX09VVFBVVF9ESVJFQ1RPUlk9JChwd2QpICYmCisJCWV4cG9ydCBURVNUX09VVFBVVF9ESVJFQ1RPUlkgJiYKIAkJLi8iJG5hbWUuc2giICIkQCIgPm91dCAyPmVycgogCSkKIH0KQEAgLTIzMywxNiArMjMyLDEzIEBACiAJZ3JlcCAtdiAiXkluaXRpYWxpemVkIGVtcHR5IiB0ZXN0LXZlcmJvc2Uvb3V0KyA+dGVzdC12ZXJib3NlL291dCAmJgogCWNoZWNrX3N1Yl90ZXN0X2xpYl90ZXN0IHRlc3QtdmVyYm9zZSA8PC1cRU9GCiAJPiBleHBlY3Rpbmcgc3VjY2VzczogdHJ1ZQotCT4gWgogCT4gb2sgMSAtIHBhc3NpbmcgdGVzdAogCT4gWgogCT4gZXhwZWN0aW5nIHN1Y2Nlc3M6IGVjaG8gZm9vCiAJPiBmb28KLQk+IFoKIAk+IG9rIDIgLSB0ZXN0IHdpdGggb3V0cHV0CiAJPiBaCiAJPiBleHBlY3Rpbmcgc3VjY2VzczogZmFsc2UKLQk+IFoKIAk+IG5vdCBvayAzIC0gZmFpbGluZyB0ZXN0CiAJPiAjCWZhbHNlCiAJPiBaCkBAIC0yNjUsNyArMjYxLDYgQEAKIAk+IFoKIAk+IGV4cGVjdGluZyBzdWNjZXNzOiBlY2hvIGZvbwogCT4gZm9vCi0JPiBaCiAJPiBvayAyIC0gdGVzdCB3aXRoIG91dHB1dAogCT4gWgogCT4gbm90IG9rIDMgLSBmYWlsaW5nIHRlc3QKZGlmZiAtLWdpdCBhL3QvdDAwMDItZ2l0ZmlsZS5zaCBiL3QvdDAwMDItZ2l0ZmlsZS5zaAppbmRleCBjYjE0NDI1Li4zN2U5Mzk2IDEwMDc1NQotLS0gYS90L3QwMDAyLWdpdGZpbGUuc2gKKysrIGIvdC90MDAwMi1naXRmaWxlLnNoCkBAIC03LDcgKzcsNyBAQAogLiAuL3Rlc3QtbGliLnNoCiAKIG9ianBhdGgoKSB7Ci0gICAgZWNobyAiJDEiIHwgc2VkIC1lICdzfFwoLi5cKXxcMS98JworCWVjaG8gIiQxIiB8IHNlZCAtZSAnc3xcKC4uXCl8XDEvfCcKIH0KIAogb2JqY2soKSB7CkBAIC0xOSw3ICsxOSw2IEBACiAJZmkKIH0KIAotCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdpbml0aWFsIHNldHVwJyAnCiAJUkVBTD0iJChwd2QpLy5yZWFsIiAmJgogCW12IC5naXQgIiRSRUFMIgpkaWZmIC0tZ2l0IGEvdC90MDAwMy1hdHRyaWJ1dGVzLnNoIGIvdC90MDAwMy1hdHRyaWJ1dGVzLnNoCmluZGV4IDBiOThiNmYuLmI5ZDc5NDcgMTAwNzU1Ci0tLSBhL3QvdDAwMDMtYXR0cmlidXRlcy5zaAorKysgYi90L3QwMDAzLWF0dHJpYnV0ZXMuc2gKQEAgLTEzLDcgKzEzLDYgQEAKIAl0ZXN0X2xpbmVfY291bnQgPSAwIGVycgogfQogCi0KIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwJyAnCiAJbWtkaXIgLXAgYS9iL2QgYS9jIGIgJiYKIAkoCmRpZmYgLS1naXQgYS90L3QwMDA4LWlnbm9yZXMuc2ggYi90L3QwMDA4LWlnbm9yZXMuc2gKaW5kZXggYzI5MzQyZC4uYjRkOThlNiAxMDA3NTUKLS0tIGEvdC90MDAwOC1pZ25vcmVzLnNoCisrKyBiL3QvdDAwMDgtaWdub3Jlcy5zaApAQCAtMzcsNiArMzcsMTQgQEAKIAl0ZXN0X2NtcCAiJEhPTUUvZXhwZWN0ZWQtc3RkZXJyIiAiJEhPTUUvc3RkZXJyIgogfQogCiticm9rZW5fY191bnF1b3RlICgpIHsKKwkiJFBFUkxfUEFUSCIgLXBlICdzL14iLy87IHMvXFwvLzsgcy8iJC8vOyB0ci9cbi9cMC8nICIkQCIKK30KKworYnJva2VuX2NfdW5xdW90ZV92ZXJib3NlICgpIHsKKwkiJFBFUkxfUEFUSCIgLXBlICdzLwkiLwkvOyBzL1xcLy87IHMvIiQvLzsgdHIvOlx0XG4vXDAvJyAiJEAiCit9CisKIHN0ZGVycl9jb250YWlucyAoKSB7CiAJcmVnZXhwPSIkMSIKIAlpZiBncmVwICIkcmVnZXhwIiAiJEhPTUUvc3RkZXJyIgpAQCAtNjYsMTEgKzc0LDExIEBACiAKIAlpbml0X3ZhcnMgJiYKIAlybSAtZiAiJEhPTUUvc3Rkb3V0IiAiJEhPTUUvc3RkZXJyIiAiJEhPTUUvY21kIiAmJgotCWVjaG8gZ2l0ICRnbG9iYWxfYXJncyBjaGVjay1pZ25vcmUgJHF1aWV0X29wdCAkdmVyYm9zZV9vcHQgJG5vbl9tYXRjaGluZ19vcHQgJGFyZ3MgXAorCWVjaG8gZ2l0ICRnbG9iYWxfYXJncyBjaGVjay1pZ25vcmUgJHF1aWV0X29wdCAkdmVyYm9zZV9vcHQgJG5vbl9tYXRjaGluZ19vcHQgJG5vX2luZGV4X29wdCAkYXJncyBcCiAJCT4iJEhPTUUvY21kIiAmJgogCWVjaG8gIiRleHBlY3RfY29kZSIgPiIkSE9NRS9leHBlY3RlZC1leGl0LWNvZGUiICYmCiAJdGVzdF9leHBlY3RfY29kZSAiJGV4cGVjdF9jb2RlIiBcCi0JCWdpdCAkZ2xvYmFsX2FyZ3MgY2hlY2staWdub3JlICRxdWlldF9vcHQgJHZlcmJvc2Vfb3B0ICRub25fbWF0Y2hpbmdfb3B0ICRhcmdzIFwKKwkJZ2l0ICRnbG9iYWxfYXJncyBjaGVjay1pZ25vcmUgJHF1aWV0X29wdCAkdmVyYm9zZV9vcHQgJG5vbl9tYXRjaGluZ19vcHQgJG5vX2luZGV4X29wdCAkYXJncyBcCiAJCT4iJEhPTUUvc3Rkb3V0IiAyPiIkSE9NRS9zdGRlcnIiICYmCiAJdGVzdF9jbXAgIiRIT01FL2V4cGVjdGVkLXN0ZG91dCIgIiRIT01FL3N0ZG91dCIgJiYKIAlzdGRlcnJfZW1wdHlfb25fc3VjY2VzcyAiJGV4cGVjdF9jb2RlIgpAQCAtODcsNiArOTUsOSBAQAogIyBjaGVjay1pZ25vcmUgLS12ZXJib3NlIG91dHB1dCBpcyB0aGUgc2FtZSBhcyBub3JtYWwgb3V0cHV0IGV4Y2VwdAogIyBmb3IgdGhlIGV4dHJhIGZpcnN0IGNvbHVtbi4KICMKKyMgQSBwYXJhbWV0ZXIgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIHRlc3RzIGFyZSBydW4gd2l0aCB0aGUKKyMgbm9ybWFsIGNhc2UgKHVzaW5nIHRoZSBpbmRleCksIG9yIHdpdGggdGhlIC0tbm8taW5kZXggb3B0aW9uLgorIwogIyBBcmd1bWVudHM6CiAjICAgLSAob3B0aW9uYWwpIHByZXJlcXMgZm9yIHRoaXMgdGVzdCwgZS5nLiAnU1lNTElOS1MnCiAjICAgLSB0ZXN0IG5hbWUKQEAgLTk0LDE5ICsxMDUsMjYgQEAKICMgICAgIGZyb20gdGhlIG90aGVyIHZlcmJvc2l0eSBtb2RlcyBpcyBhdXRvbWF0aWNhbGx5IGluZmVycmVkCiAjICAgICBmcm9tIHRoaXMgdmFsdWUpCiAjICAgLSBjb2RlIHRvIHJ1biAoc2hvdWxkIGludm9rZSB0ZXN0X2NoZWNrX2lnbm9yZSkKLXRlc3RfZXhwZWN0X3N1Y2Nlc3NfbXVsdGkgKCkgeworIyAgIC0gaW5kZXggb3B0aW9uOiAtLWluZGV4IG9yIC0tbm8taW5kZXgKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3NfbXVsdGlwbGUgKCkgewogCXByZXJlcT0KLQlpZiB0ZXN0ICQjIC1lcSA0CisJaWYgdGVzdCAkIyAtZXEgNQogCXRoZW4KIAkJcHJlcmVxPSQxCiAJCXNoaWZ0CiAJZmkKKwlpZiB0ZXN0ICIkNCIgPSAiLS1pbmRleCIKKwl0aGVuCisJCW5vX2luZGV4X29wdD0KKwllbHNlCisJCW5vX2luZGV4X29wdD0kNAorCWZpCiAJdGVzdG5hbWU9IiQxIiBleHBlY3RfYWxsPSIkMiIgY29kZT0iJDMiCiAKIAlleHBlY3RfdmVyYm9zZT0kKCBlY2hvICIkZXhwZWN0X2FsbCIgfCBncmVwIC12ICdeOjoJJyApCiAJZXhwZWN0PSQoIGVjaG8gIiRleHBlY3RfdmVyYm9zZSIgfCBzZWQgLWUgJ3MvLioJLy8nICkKIAotCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJHByZXJlcSAiJHRlc3RuYW1lIiAnCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAkcHJlcmVxICIkdGVzdG5hbWUke25vX2luZGV4X29wdDorIHdpdGggJG5vX2luZGV4X29wdH0iICcKIAkJZXhwZWN0ICIkZXhwZWN0IiAmJgogCQlldmFsICIkY29kZSIKIAknCkBAIC0xMTYsNyArMTM0LDggQEAKIAl0aGVuCiAJCWZvciBxdWlldF9vcHQgaW4gJy1xJyAnLS1xdWlldCcKIAkJZG8KLQkJCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJHByZXJlcSAiJHRlc3RuYW1lJHtxdWlldF9vcHQ6KyB3aXRoICRxdWlldF9vcHR9IiAiCisJCQlvcHRzPSIke25vX2luZGV4X29wdDorJG5vX2luZGV4X29wdCB9JHF1aWV0X29wdCIKKwkJCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJHByZXJlcSAiJHRlc3RuYW1lJHtvcHRzOisgd2l0aCAkb3B0c30iICIKIAkJCWV4cGVjdCAnJyAmJgogCQkJJGNvZGUKIAkJIgpAQCAtMTI2LDcgKzE0NSw3IEBACiAKIAlmb3IgdmVyYm9zZV9vcHQgaW4gJy12JyAnLS12ZXJib3NlJwogCWRvCi0JCWZvciBub25fbWF0Y2hpbmdfb3B0IGluICcnICcgLW4nICcgLS1ub24tbWF0Y2hpbmcnCisJCWZvciBub25fbWF0Y2hpbmdfb3B0IGluICcnICctbicgJy0tbm9uLW1hdGNoaW5nJwogCQlkbwogCQkJaWYgdGVzdCAtbiAiJG5vbl9tYXRjaGluZ19vcHQiCiAJCQl0aGVuCkBAIC0xMzksMTIgKzE1OCwyMSBAQAogCQkJCWV4cGVjdCAnJG15X2V4cGVjdCcgJiYKIAkJCQkkY29kZQogCQkJIgotCQkJb3B0cz0iJHZlcmJvc2Vfb3B0JG5vbl9tYXRjaGluZ19vcHQiCisJCQlvcHRzPSIke25vX2luZGV4X29wdDorJG5vX2luZGV4X29wdCB9JHZlcmJvc2Vfb3B0JHtub25fbWF0Y2hpbmdfb3B0OisgJG5vbl9tYXRjaGluZ19vcHR9IgogCQkJdGVzdF9leHBlY3Rfc3VjY2VzcyAkcHJlcmVxICIkdGVzdG5hbWUke29wdHM6KyB3aXRoICRvcHRzfSIgIiR0ZXN0X2NvZGUiCiAJCWRvbmUKIAlkb25lCiAJdmVyYm9zZV9vcHQ9CiAJbm9uX21hdGNoaW5nX29wdD0KKwlub19pbmRleF9vcHQ9Cit9CisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3NfbXVsdGkgKCkgeworCXRlc3RfZXhwZWN0X3N1Y2Nlc3NfbXVsdGlwbGUgIiRAIiAiLS1pbmRleCIKK30KKwordGVzdF9leHBlY3Rfc3VjY2Vzc19ub19pbmRleF9tdWx0aSAoKSB7CisJdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aXBsZSAiJEAiICItLW5vLWluZGV4IgogfQogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCcgJwpAQCAtMjg4LDcgKzMxNiw3IEBACiAKICMgRmlyc3QgbWFrZSBzdXJlIHRoYXQgdGhlIHByZXNlbmNlIG9mIGEgZmlsZSBpbiB0aGUgd29ya2luZyB0cmVlCiAjIGRvZXMgbm90IGltcGFjdCByZXN1bHRzLCBidXQgdGhhdCB0aGUgcHJlc2VuY2Ugb2YgYSBmaWxlIGluIHRoZQotIyBpbmRleCBkb2VzLgorIyBpbmRleCBkb2VzIHVubGVzcyB0aGUgLS1uby1pbmRleCBvcHRpb24gaXMgdXNlZC4KIAogZm9yIHN1YmRpciBpbiAnJyAnYS8nCiBkbwpAQCAtMzAzLDIyICszMzEsNDIgQEAKIAkJIjo6CSR7c3ViZGlyfW5vbi1leGlzdGVudCIgXAogCQkidGVzdF9jaGVja19pZ25vcmUgJyR7c3ViZGlyfW5vbi1leGlzdGVudCcgMSIKIAorCXRlc3RfZXhwZWN0X3N1Y2Nlc3Nfbm9faW5kZXhfbXVsdGkgIm5vbi1leGlzdGVudCBmaWxlICR3aGVyZSBub3QgaWdub3JlZCIgXAorCQkiOjoJJHtzdWJkaXJ9bm9uLWV4aXN0ZW50IiBcCisJCSJ0ZXN0X2NoZWNrX2lnbm9yZSAnJHtzdWJkaXJ9bm9uLWV4aXN0ZW50JyAxIgorCiAJdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAibm9uLWV4aXN0ZW50IGZpbGUgJHdoZXJlIGlnbm9yZWQiIFwKIAkJIi5naXRpZ25vcmU6MTpvbmUJJHtzdWJkaXJ9b25lIiBcCiAJCSJ0ZXN0X2NoZWNrX2lnbm9yZSAnJHtzdWJkaXJ9b25lJyIKIAorCXRlc3RfZXhwZWN0X3N1Y2Nlc3Nfbm9faW5kZXhfbXVsdGkgIm5vbi1leGlzdGVudCBmaWxlICR3aGVyZSBpZ25vcmVkIiBcCisJCSIuZ2l0aWdub3JlOjE6b25lCSR7c3ViZGlyfW9uZSIgXAorCQkidGVzdF9jaGVja19pZ25vcmUgJyR7c3ViZGlyfW9uZSciCisKIAl0ZXN0X2V4cGVjdF9zdWNjZXNzX211bHRpICJleGlzdGluZyB1bnRyYWNrZWQgZmlsZSAkd2hlcmUgbm90IGlnbm9yZWQiIFwKIAkJIjo6CSR7c3ViZGlyfW5vdC1pZ25vcmVkIiBcCiAJCSJ0ZXN0X2NoZWNrX2lnbm9yZSAnJHtzdWJkaXJ9bm90LWlnbm9yZWQnIDEiCiAKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzX25vX2luZGV4X211bHRpICJleGlzdGluZyB1bnRyYWNrZWQgZmlsZSAkd2hlcmUgbm90IGlnbm9yZWQiIFwKKwkJIjo6CSR7c3ViZGlyfW5vdC1pZ25vcmVkIiBcCisJCSJ0ZXN0X2NoZWNrX2lnbm9yZSAnJHtzdWJkaXJ9bm90LWlnbm9yZWQnIDEiCisKIAl0ZXN0X2V4cGVjdF9zdWNjZXNzX211bHRpICJleGlzdGluZyB0cmFja2VkIGZpbGUgJHdoZXJlIG5vdCBpZ25vcmVkIiBcCiAJCSI6Ogkke3N1YmRpcn1pZ25vcmVkLWJ1dC1pbi1pbmRleCIgXAogCQkidGVzdF9jaGVja19pZ25vcmUgJyR7c3ViZGlyfWlnbm9yZWQtYnV0LWluLWluZGV4JyAxIgogCisJdGVzdF9leHBlY3Rfc3VjY2Vzc19ub19pbmRleF9tdWx0aSAiZXhpc3RpbmcgdHJhY2tlZCBmaWxlICR3aGVyZSBzaG93biBhcyBpZ25vcmVkIiBcCisJCSIuZ2l0aWdub3JlOjI6aWdub3JlZC0qCSR7c3ViZGlyfWlnbm9yZWQtYnV0LWluLWluZGV4IiBcCisJCSJ0ZXN0X2NoZWNrX2lnbm9yZSAnJHtzdWJkaXJ9aWdub3JlZC1idXQtaW4taW5kZXgnIgorCiAJdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAiZXhpc3RpbmcgdW50cmFja2VkIGZpbGUgJHdoZXJlIGlnbm9yZWQiIFwKIAkJIi5naXRpZ25vcmU6MjppZ25vcmVkLSoJJHtzdWJkaXJ9aWdub3JlZC1hbmQtdW50cmFja2VkIiBcCiAJCSJ0ZXN0X2NoZWNrX2lnbm9yZSAnJHtzdWJkaXJ9aWdub3JlZC1hbmQtdW50cmFja2VkJyIKIAorCXRlc3RfZXhwZWN0X3N1Y2Nlc3Nfbm9faW5kZXhfbXVsdGkgImV4aXN0aW5nIHVudHJhY2tlZCBmaWxlICR3aGVyZSBpZ25vcmVkIiBcCisJCSIuZ2l0aWdub3JlOjI6aWdub3JlZC0qCSR7c3ViZGlyfWlnbm9yZWQtYW5kLXVudHJhY2tlZCIgXAorCQkidGVzdF9jaGVja19pZ25vcmUgJyR7c3ViZGlyfWlnbm9yZWQtYW5kLXVudHJhY2tlZCciCisKIAl0ZXN0X2V4cGVjdF9zdWNjZXNzX211bHRpICJtaXggb2YgZmlsZSB0eXBlcyAkd2hlcmUiIFwKICI6Ogkke3N1YmRpcn1ub24tZXhpc3RlbnQKIC5naXRpZ25vcmU6MTpvbmUJJHtzdWJkaXJ9b25lCkBAIC0zMzIsNiArMzgwLDIwIEBACiAJCQkke3N1YmRpcn1pZ25vcmVkLWJ1dC1pbi1pbmRleAogCQkJJHtzdWJkaXJ9aWdub3JlZC1hbmQtdW50cmFja2VkJwogCQkiCisKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzX25vX2luZGV4X211bHRpICJtaXggb2YgZmlsZSB0eXBlcyAkd2hlcmUiIFwKKyI6Ogkke3N1YmRpcn1ub24tZXhpc3RlbnQKKy5naXRpZ25vcmU6MTpvbmUJJHtzdWJkaXJ9b25lCis6Ogkke3N1YmRpcn1ub3QtaWdub3JlZAorLmdpdGlnbm9yZToyOmlnbm9yZWQtKgkke3N1YmRpcn1pZ25vcmVkLWJ1dC1pbi1pbmRleAorLmdpdGlnbm9yZToyOmlnbm9yZWQtKgkke3N1YmRpcn1pZ25vcmVkLWFuZC11bnRyYWNrZWQiIFwKKwkJInRlc3RfY2hlY2tfaWdub3JlICcKKwkJCSR7c3ViZGlyfW5vbi1leGlzdGVudAorCQkJJHtzdWJkaXJ9b25lCisJCQkke3N1YmRpcn1ub3QtaWdub3JlZAorCQkJJHtzdWJkaXJ9aWdub3JlZC1idXQtaW4taW5kZXgKKwkJCSR7c3ViZGlyfWlnbm9yZWQtYW5kLXVudHJhY2tlZCcKKwkJIgogZG9uZQogCiAjIEhhdmluZyBlc3RhYmxpc2hlZCB0aGUgYWJvdmUsIGZyb20gbm93IG9uIHdlIG1vc3RseSB0ZXN0IGFnYWluc3QKQEAgLTQzMiw3ICs0OTQsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzX211bHRpIFNZTUxJTktTICdiZXlvbmQgYSBzeW1saW5rJyAnJyAnCiAJdGVzdF9jaGVja19pZ25vcmUgImEvc3ltbGluay9mb28iIDEyOCAmJgotCXRlc3Rfc3RkZXJyICJmYXRhbDogJ1wnJ2Evc3ltbGluay9mb28nXCcnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCisJdGVzdF9zdGRlcnIgImZhdGFsOiBwYXRoc3BlYyAnXCcnYS9zeW1saW5rL2ZvbydcJycgaXMgYmV5b25kIGEgc3ltYm9saWMgbGluayIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSBTWU1MSU5LUyAnYmV5b25kIGEgc3ltbGluayBmcm9tIHN1YmRpcmVjdG9yeScgJycgJwpAQCAtNDQwLDcgKzUwMiw3IEBACiAJCWNkIGEgJiYKIAkJdGVzdF9jaGVja19pZ25vcmUgInN5bWxpbmsvZm9vIiAxMjgKIAkpICYmCi0JdGVzdF9zdGRlcnIgImZhdGFsOiAnXCcnc3ltbGluay9mb28nXCcnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCisJdGVzdF9zdGRlcnIgImZhdGFsOiBwYXRoc3BlYyAnXCcnc3ltbGluay9mb28nXCcnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCiAnCiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTQ0OSw3ICs1MTEsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzX211bHRpICdzdWJtb2R1bGUnICcnICcKIAl0ZXN0X2NoZWNrX2lnbm9yZSAiYS9zdWJtb2R1bGUvb25lIiAxMjggJiYKLQl0ZXN0X3N0ZGVyciAiZmF0YWw6IFBhdGggJ1wnJ2Evc3VibW9kdWxlL29uZSdcJycgaXMgaW4gc3VibW9kdWxlICdcJydhL3N1Ym1vZHVsZSdcJyciCisJdGVzdF9zdGRlcnIgImZhdGFsOiBQYXRoc3BlYyAnXCcnYS9zdWJtb2R1bGUvb25lJ1wnJyBpcyBpbiBzdWJtb2R1bGUgJ1wnJ2Evc3VibW9kdWxlJ1wnJyIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAnc3VibW9kdWxlIGZyb20gc3ViZGlyZWN0b3J5JyAnJyAnCkBAIC00NTcsNyArNTE5LDcgQEAKIAkJY2QgYSAmJgogCQl0ZXN0X2NoZWNrX2lnbm9yZSAic3VibW9kdWxlL29uZSIgMTI4CiAJKSAmJgotCXRlc3Rfc3RkZXJyICJmYXRhbDogUGF0aCAnXCcnYS9zdWJtb2R1bGUvb25lJ1wnJyBpcyBpbiBzdWJtb2R1bGUgJ1wnJ2Evc3VibW9kdWxlJ1wnJyIKKwl0ZXN0X3N0ZGVyciAiZmF0YWw6IFBhdGhzcGVjICdcJydzdWJtb2R1bGUvb25lJ1wnJyBpcyBpbiBzdWJtb2R1bGUgJ1wnJ2Evc3VibW9kdWxlJ1wnJyIKICcKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpAQCAtNTUyLDEyICs2MTQsMTEgQEAKIAkkZ2xvYmFsX2V4Y2x1ZGVzOjI6IWdsb2JhbHR3bwliL2dsb2JhbHR3bwogRU9GCiAKLXNlZCAtZSAncy9eIi8vJyAtZSAncy9cXC8vJyAtZSAncy8iJC8vJyBzdGRpbiB8IFwKLQl0ciAiXG4iICJcMCIgPnN0ZGluMAotc2VkIC1lICdzL14iLy8nIC1lICdzL1xcLy8nIC1lICdzLyIkLy8nIGV4cGVjdGVkLWRlZmF1bHQgfCBcCi0JdHIgIlxuIiAiXDAiID5leHBlY3RlZC1kZWZhdWx0MAotc2VkIC1lICdzLwkiLwkvJyAtZSAncy9cXC8vJyAtZSAncy8iJC8vJyBleHBlY3RlZC12ZXJib3NlIHwgXAotCXRyICI6XHRcbiIgIlwwIiA+ZXhwZWN0ZWQtdmVyYm9zZTAKK2Jyb2tlbl9jX3VucXVvdGUgc3RkaW4gPnN0ZGluMAorCiticm9rZW5fY191bnF1b3RlIGV4cGVjdGVkLWRlZmF1bHQgPmV4cGVjdGVkLWRlZmF1bHQwCisKK2Jyb2tlbl9jX3VucXVvdGVfdmVyYm9zZSBleHBlY3RlZC12ZXJib3NlID5leHBlY3RlZC12ZXJib3NlMAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICctLXN0ZGluJyAnCiAJZXhwZWN0X2Zyb21fc3RkaW4gPGV4cGVjdGVkLWRlZmF1bHQgJiYKQEAgLTYzOCwxMiArNjk5LDExIEBACiBncmVwIC12ICdeOjoJJyBleHBlY3RlZC1hbGwgPmV4cGVjdGVkLXZlcmJvc2UKIHNlZCAtZSAncy8uKgkvLycgZXhwZWN0ZWQtdmVyYm9zZSA+ZXhwZWN0ZWQtZGVmYXVsdAogCi1zZWQgLWUgJ3MvXiIvLycgLWUgJ3MvXFwvLycgLWUgJ3MvIiQvLycgc3RkaW4gfCBcCi0JdHIgIlxuIiAiXDAiID5zdGRpbjAKLXNlZCAtZSAncy9eIi8vJyAtZSAncy9cXC8vJyAtZSAncy8iJC8vJyBleHBlY3RlZC1kZWZhdWx0IHwgXAotCXRyICJcbiIgIlwwIiA+ZXhwZWN0ZWQtZGVmYXVsdDAKLXNlZCAtZSAncy8JIi8JLycgLWUgJ3MvXFwvLycgLWUgJ3MvIiQvLycgZXhwZWN0ZWQtdmVyYm9zZSB8IFwKLQl0ciAiOlx0XG4iICJcMCIgPmV4cGVjdGVkLXZlcmJvc2UwCiticm9rZW5fY191bnF1b3RlIHN0ZGluID5zdGRpbjAKKworYnJva2VuX2NfdW5xdW90ZSBleHBlY3RlZC1kZWZhdWx0ID5leHBlY3RlZC1kZWZhdWx0MAorCiticm9rZW5fY191bnF1b3RlX3ZlcmJvc2UgZXhwZWN0ZWQtdmVyYm9zZSA+ZXhwZWN0ZWQtdmVyYm9zZTAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1zdGRpbiBmcm9tIHN1YmRpcmVjdG9yeScgJwogCWV4cGVjdF9mcm9tX3N0ZGluIDxleHBlY3RlZC1kZWZhdWx0ICYmCmRpZmYgLS1naXQgYS90L3QwMDUwLWZpbGVzeXN0ZW0uc2ggYi90L3QwMDUwLWZpbGVzeXN0ZW0uc2gKaW5kZXggMDVkNzhkMi4uNmIzY2VkYyAxMDA3NTUKLS0tIGEvdC90MDA1MC1maWxlc3lzdGVtLnNoCisrKyBiL3QvdDAwNTAtZmlsZXN5c3RlbS5zaApAQCAtOTEsNiArOTEsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAic2V0dXAgdW5pY29kZSBub3JtYWxpemF0aW9uIHRlc3RzIiAnCiAJdGVzdF9jcmVhdGVfcmVwbyB1bmljb2RlICYmCiAJY2QgdW5pY29kZSAmJgorCWdpdCBjb25maWcgY29yZS5wcmVjb21wb3NldW5pY29kZSBmYWxzZSAmJgogCXRvdWNoICIkYXVtbGNkaWFyIiAmJgogCWdpdCBhZGQgIiRhdW1sY2RpYXIiICYmCiAJZ2l0IGNvbW1pdCAtbSBpbml0aWFsICYmCmRpZmYgLS1naXQgYS90L3QwMDU2LWdpdC1DLnNoIGIvdC90MDA1Ni1naXQtQy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45OWMwMzc3Ci0tLSAvZGV2L251bGwKKysrIGIvdC90MDA1Ni1naXQtQy5zaApAQCAtMCwwICsxLDg0IEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0nIi1DIDxwYXRoPiIgb3B0aW9uIGFuZCBpdHMgZWZmZWN0cyBvbiBvdGhlciBwYXRoLXJlbGF0ZWQgb3B0aW9ucycKKworLiAuL3Rlc3QtbGliLnNoCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgLUMgPHBhdGg+IiBydW5zIGdpdCBmcm9tIHRoZSBkaXJlY3RvcnkgPHBhdGg+JyAnCisJdGVzdF9jcmVhdGVfcmVwbyBkaXIxICYmCisJZWNobyAxID5kaXIxL2EudHh0ICYmCisJbXNnPSJpbml0aWFsIGluIGRpcjEiICYmCisJKGNkIGRpcjEgJiYgZ2l0IGFkZCBhLnR4dCAmJiBnaXQgY29tbWl0IC1tICIkbXNnIikgJiYKKwllY2hvICIkbXNnIiA+ZXhwZWN0ZWQgJiYKKwlnaXQgLUMgZGlyMSBsb2cgLS1mb3JtYXQ9JXMgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdNdWx0aXBsZSAtQyBvcHRpb25zOiAiLUMgZGlyMSAtQyBkaXIyIiBpcyBlcXVpdmFsZW50IHRvICItQyBkaXIxL2RpcjIiJyAnCisJdGVzdF9jcmVhdGVfcmVwbyBkaXIxL2RpcjIgJiYKKwllY2hvIDEgPmRpcjEvZGlyMi9iLnR4dCAmJgorCWdpdCAtQyBkaXIxL2RpcjIgYWRkIGIudHh0ICYmCisJbXNnPSJpbml0aWFsIGluIGRpcjEvZGlyMiIgJiYKKwllY2hvICIkbXNnIiA+ZXhwZWN0ZWQgJiYKKwlnaXQgLUMgZGlyMS9kaXIyIGNvbW1pdCAtbSAiJG1zZyIgJiYKKwlnaXQgLUMgZGlyMSAtQyBkaXIyIGxvZyAtLWZvcm1hdD0lcyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ0VmZmVjdCBvbiAtLWdpdC1kaXIgb3B0aW9uOiAiLUMgYyAtLWdpdC1kaXI9YS5naXQiIGlzIGVxdWl2YWxlbnQgdG8gIi0tZ2l0LWRpciBjL2EuZ2l0IicgJworCW1rZGlyIGMgJiYKKwlta2RpciBjL2EgJiYKKwlta2RpciBjL2EuZ2l0ICYmCisJKGNkIGMvYS5naXQgJiYgZ2l0IGluaXQgLS1iYXJlKSAmJgorCWVjaG8gMSA+Yy9hL2EudHh0ICYmCisJZ2l0IC0tZ2l0LWRpciBjL2EuZ2l0IC0td29yay10cmVlPWMvYSBhZGQgYS50eHQgJiYKKwlnaXQgLS1naXQtZGlyIGMvYS5naXQgLS13b3JrLXRyZWU9Yy9hIGNvbW1pdCAtbSAiaW5pdGlhbCIgJiYKKwlnaXQgLS1naXQtZGlyPWMvYS5naXQgbG9nIC0xIC0tZm9ybWF0PSVzID5leHBlY3RlZCAmJgorCWdpdCAtQyBjIC0tZ2l0LWRpcj1hLmdpdCBsb2cgLTEgLS1mb3JtYXQ9JXMgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdPcmRlciBzaG91bGQgbm90IG1hdHRlcjogIi0tZ2l0LWRpcj1hLmdpdCAtQyBjIiBpcyBlcXVpdmFsZW50IHRvICItQyBjIC0tZ2l0LWRpcj1hLmdpdCInICcKKwlnaXQgLUMgYyAtLWdpdC1kaXI9YS5naXQgbG9nIC0xIC0tZm9ybWF0PSVzID5leHBlY3RlZCAmJgorCWdpdCAtLWdpdC1kaXI9YS5naXQgLUMgYyBsb2cgLTEgLS1mb3JtYXQ9JXMgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdFZmZlY3Qgb24gLS13b3JrLXRyZWUgb3B0aW9uOiAiLUMgYy9hLmdpdCAtLXdvcmstdHJlZT0uLi9hIiAgaXMgZXF1aXZhbGVudCB0byAiLS13b3JrLXRyZWU9Yy9hIC0tZ2l0LWRpcj1jL2EuZ2l0IicgJworCXJtIGMvYS9hLnR4dCAmJgorCWdpdCAtLWdpdC1kaXI9Yy9hLmdpdCAtLXdvcmstdHJlZT1jL2Egc3RhdHVzID5leHBlY3RlZCAmJgorCWdpdCAtQyBjL2EuZ2l0IC0td29yay10cmVlPS4uL2Egc3RhdHVzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnT3JkZXIgc2hvdWxkIG5vdCBtYXR0ZXI6ICItLXdvcmstdHJlZT0uLi9hIC1DIGMvYS5naXQiIGlzIGVxdWl2YWxlbnQgdG8gIi1DIGMvYS5naXQgLS13b3JrLXRyZWU9Li4vYSInICcKKwlnaXQgLUMgYy9hLmdpdCAtLXdvcmstdHJlZT0uLi9hIHN0YXR1cyA+ZXhwZWN0ZWQgJiYKKwlnaXQgLS13b3JrLXRyZWU9Li4vYSAtQyBjL2EuZ2l0IHN0YXR1cyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ0VmZmVjdCBvbiAtLWdpdC1kaXIgYW5kIC0td29yay10cmVlIG9wdGlvbnMgLSAiLUMgYyAtLWdpdC1kaXI9YS5naXQgLS13b3JrLXRyZWU9YSIgaXMgZXF1aXZhbGVudCB0byAiLS1naXQtZGlyPWMvYS5naXQgLS13b3JrLXRyZWU9Yy9hIicgJworCWdpdCAtLWdpdC1kaXI9Yy9hLmdpdCAtLXdvcmstdHJlZT1jL2Egc3RhdHVzID5leHBlY3RlZCAmJgorCWdpdCAtQyBjIC0tZ2l0LWRpcj1hLmdpdCAtLXdvcmstdHJlZT1hIHN0YXR1cyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ09yZGVyIHNob3VsZCBub3QgbWF0dGVyOiAiLUMgYyAtLWdpdC1kaXI9YS5naXQgLS13b3JrLXRyZWU9YSIgaXMgZXF1aXZhbGVudCB0byAiLS1naXQtZGlyPWEuZ2l0IC1DIGMgLS13b3JrLXRyZWU9YSInICcKKwlnaXQgLUMgYyAtLWdpdC1kaXI9YS5naXQgLS13b3JrLXRyZWU9YSBzdGF0dXMgPmV4cGVjdGVkICYmCisJZ2l0IC0tZ2l0LWRpcj1hLmdpdCAtQyBjIC0td29yay10cmVlPWEgc3RhdHVzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnT3JkZXIgc2hvdWxkIG5vdCBtYXR0ZXI6ICItQyBjIC0tZ2l0LWRpcj1hLmdpdCAtLXdvcmstdHJlZT1hIiBpcyBlcXVpdmFsZW50IHRvICItLWdpdC1kaXI9YS5naXQgLS13b3JrLXRyZWU9YSAtQyBjIicgJworCWdpdCAtQyBjIC0tZ2l0LWRpcj1hLmdpdCAtLXdvcmstdHJlZT1hIHN0YXR1cyA+ZXhwZWN0ZWQgJiYKKwlnaXQgLS1naXQtZGlyPWEuZ2l0IC0td29yay10cmVlPWEgLUMgYyBzdGF0dXMgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdSZWxhdGl2ZSBmb2xsb3dlZCBieSBmdWxscGF0aDogIi1DIC4vaGVyZSAtQyAvdGhlcmUiIGlzIGVxdWl2YWxlbnQgdG8gIi1DIC90aGVyZSInICcKKwllY2hvICJpbml0aWFsIGluIGRpcjEvZGlyMiIgPmV4cGVjdGVkICYmCisJZ2l0IC1DIGRpcjEgLUMgIiQocHdkKS9kaXIxL2RpcjIiIGxvZyAtLWZvcm1hdD0lcyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MDA2MC1wYXRoLXV0aWxzLnNoIGIvdC90MDA2MC1wYXRoLXV0aWxzLnNoCmluZGV4IDNhNDhkZTIuLjA3YzEwYzggMTAwNzU1Ci0tLSBhL3QvdDAwNjAtcGF0aC11dGlscy5zaAorKysgYi90L3QwMDYwLXBhdGgtdXRpbHMuc2gKQEAgLTgsMTMgKzgsMTMgQEAKIC4gLi90ZXN0LWxpYi5zaAogCiBub3JtX3BhdGgoKSB7Ci0JZXhwZWN0ZWQ9JCh0ZXN0LXBhdGgtdXRpbHMgbWluZ3dfcGF0aCAiJDIiKQorCWV4cGVjdGVkPSQodGVzdC1wYXRoLXV0aWxzIHByaW50X3BhdGggIiQyIikKIAl0ZXN0X2V4cGVjdF9zdWNjZXNzICQzICJub3JtYWxpemUgcGF0aDogJDEgPT4gJDIiIFwKIAkidGVzdCBcIlwkKHRlc3QtcGF0aC11dGlscyBub3JtYWxpemVfcGF0aF9jb3B5ICckMScpXCIgPSAnJGV4cGVjdGVkJyIKIH0KIAogcmVsYXRpdmVfcGF0aCgpIHsKLQlleHBlY3RlZD0kKHRlc3QtcGF0aC11dGlscyBtaW5nd19wYXRoICIkMyIpCisJZXhwZWN0ZWQ9JCh0ZXN0LXBhdGgtdXRpbHMgcHJpbnRfcGF0aCAiJDMiKQogCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJDQgInJlbGF0aXZlIHBhdGg6ICQxICQyID0+ICQzIiBcCiAJInRlc3QgXCJcJCh0ZXN0LXBhdGgtdXRpbHMgcmVsYXRpdmVfcGF0aCAnJDEnICckMicpXCIgPSAnJGV4cGVjdGVkJyIKIH0KQEAgLTE5MCwzMyArMTkwLDM3IEBACiAJdGVzdCAiJHN5bSIgPSAiJCh0ZXN0LXBhdGgtdXRpbHMgcmVhbF9wYXRoICIkZGlyMi9zeW1sIikiCiAnCiAKLXJlbGF0aXZlX3BhdGggL2EvYi9jLwkvYS9iLwkJYy8KLXJlbGF0aXZlX3BhdGggL2EvYi9jLwkvYS9iCQljLwotcmVsYXRpdmVfcGF0aCAvYS8vYi8vYy8JLy9hL2IvLwkJYy8JUE9TSVgKLXJlbGF0aXZlX3BhdGggL2EvYgkvYS9iCQkuLwotcmVsYXRpdmVfcGF0aCAvYS9iLwkvYS9iCQkuLwotcmVsYXRpdmVfcGF0aCAvYQkvYS9iCQkuLi8KLXJlbGF0aXZlX3BhdGggLwkJL2EvYi8JCS4uLy4uLwotcmVsYXRpdmVfcGF0aCAvYS9jCS9hL2IvCQkuLi9jCi1yZWxhdGl2ZV9wYXRoIC9hL2MJL2EvYgkJLi4vYwotcmVsYXRpdmVfcGF0aCAveC95CS9hL2IvCQkuLi8uLi94L3kKLXJlbGF0aXZlX3BhdGggL2EvYgkiPGVtcHR5PiIJL2EvYgotcmVsYXRpdmVfcGF0aCAvYS9iIAkiPG51bGw+IgkvYS9iCi1yZWxhdGl2ZV9wYXRoIGEvYi9jLwlhL2IvCQljLwotcmVsYXRpdmVfcGF0aCBhL2IvYy8JYS9iCQljLwotcmVsYXRpdmVfcGF0aCBhL2IvL2MJYS8vYgkJYwotcmVsYXRpdmVfcGF0aCBhL2IvCWEvYi8JCS4vCi1yZWxhdGl2ZV9wYXRoIGEvYi8JYS9iCQkuLwotcmVsYXRpdmVfcGF0aCBhCQlhL2IJCS4uLwotcmVsYXRpdmVfcGF0aCB4L3kJYS9iCQkuLi8uLi94L3kKLXJlbGF0aXZlX3BhdGggYS9jCWEvYgkJLi4vYwotcmVsYXRpdmVfcGF0aCBhL2IJIjxlbXB0eT4iCWEvYgotcmVsYXRpdmVfcGF0aCBhL2IgCSI8bnVsbD4iCWEvYgotcmVsYXRpdmVfcGF0aCAiPGVtcHR5PiIJL2EvYgkJLi8KLXJlbGF0aXZlX3BhdGggIjxlbXB0eT4iCSI8ZW1wdHk+IgkuLwotcmVsYXRpdmVfcGF0aCAiPGVtcHR5PiIJIjxudWxsPiIJLi8KLXJlbGF0aXZlX3BhdGggIjxudWxsPiIJIjxlbXB0eT4iCS4vCi1yZWxhdGl2ZV9wYXRoICI8bnVsbD4iCSI8bnVsbD4iCS4vCi1yZWxhdGl2ZV9wYXRoICI8bnVsbD4iCS9hL2IJCS4vCityZWxhdGl2ZV9wYXRoIC9mb28vYS9iL2MvCS9mb28vYS9iLwljLworcmVsYXRpdmVfcGF0aCAvZm9vL2EvYi9jLwkvZm9vL2EvYgljLworcmVsYXRpdmVfcGF0aCAvZm9vL2EvL2IvL2MvCS8vL2Zvby9hL2IvLwljLwkJUE9TSVgKK3JlbGF0aXZlX3BhdGggL2Zvby9hL2IJCS9mb28vYS9iCS4vCityZWxhdGl2ZV9wYXRoIC9mb28vYS9iLwkJL2Zvby9hL2IJLi8KK3JlbGF0aXZlX3BhdGggL2Zvby9hCQkvZm9vL2EvYgkuLi8KK3JlbGF0aXZlX3BhdGggLwkJCS9mb28vYS9iLwkuLi8uLi8uLi8KK3JlbGF0aXZlX3BhdGggL2Zvby9hL2MJCS9mb28vYS9iLwkuLi9jCityZWxhdGl2ZV9wYXRoIC9mb28vYS9jCQkvZm9vL2EvYgkuLi9jCityZWxhdGl2ZV9wYXRoIC9mb28veC95CQkvZm9vL2EvYi8JLi4vLi4veC95CityZWxhdGl2ZV9wYXRoIC9mb28vYS9iCQkiPGVtcHR5PiIJL2Zvby9hL2IKK3JlbGF0aXZlX3BhdGggL2Zvby9hL2IgCQkiPG51bGw+IgkvZm9vL2EvYgorcmVsYXRpdmVfcGF0aCBmb28vYS9iL2MvCWZvby9hL2IvCWMvCityZWxhdGl2ZV9wYXRoIGZvby9hL2IvYy8JZm9vL2EvYgkJYy8KK3JlbGF0aXZlX3BhdGggZm9vL2EvYi8vYwlmb28vYS8vYgljCityZWxhdGl2ZV9wYXRoIGZvby9hL2IvCQlmb28vYS9iLwkuLworcmVsYXRpdmVfcGF0aCBmb28vYS9iLwkJZm9vL2EvYgkJLi8KK3JlbGF0aXZlX3BhdGggZm9vL2EJCWZvby9hL2IJCS4uLworcmVsYXRpdmVfcGF0aCBmb28veC95CQlmb28vYS9iCQkuLi8uLi94L3kKK3JlbGF0aXZlX3BhdGggZm9vL2EvYwkJZm9vL2EvYgkJLi4vYworcmVsYXRpdmVfcGF0aCBmb28vYS9iCQkvZm9vL3gveQlmb28vYS9iCityZWxhdGl2ZV9wYXRoIC9mb28vYS9iCQlmb28veC95CQkvZm9vL2EvYgorcmVsYXRpdmVfcGF0aCBkOi9hL2IJCUQ6L2EvYwkJLi4vYgkJTUlOR1cKK3JlbGF0aXZlX3BhdGggQzovYS9iCQlEOi9hL2MJCUM6L2EvYgkJTUlOR1cKK3JlbGF0aXZlX3BhdGggZm9vL2EvYgkJIjxlbXB0eT4iCWZvby9hL2IKK3JlbGF0aXZlX3BhdGggZm9vL2EvYiAJCSI8bnVsbD4iCWZvby9hL2IKK3JlbGF0aXZlX3BhdGggIjxlbXB0eT4iCQkvZm9vL2EvYgkuLworcmVsYXRpdmVfcGF0aCAiPGVtcHR5PiIJCSI8ZW1wdHk+IgkuLworcmVsYXRpdmVfcGF0aCAiPGVtcHR5PiIJCSI8bnVsbD4iCS4vCityZWxhdGl2ZV9wYXRoICI8bnVsbD4iCQkiPGVtcHR5PiIJLi8KK3JlbGF0aXZlX3BhdGggIjxudWxsPiIJCSI8bnVsbD4iCS4vCityZWxhdGl2ZV9wYXRoICI8bnVsbD4iCQkvZm9vL2EvYgkuLwogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDAwNzAtZnVuZGFtZW50YWwuc2ggYi90L3QwMDcwLWZ1bmRhbWVudGFsLnNoCmluZGV4IDk4NmIyYTguLjVlZDY5YTYgMTAwNzU1Ci0tLSBhL3QvdDAwNzAtZnVuZGFtZW50YWwuc2gKKysrIGIvdC90MDA3MC1mdW5kYW1lbnRhbC5zaApAQCAtMjUsNiArMjUsMTAgQEAKIAlncmVwICJjYW5ub3R3cml0ZS90ZXN0IiBlcnIKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0X21rc3RlbXBzX21vZGUgZG9lcyBub3QgZmFpbCBpZiBmZCAwIGlzIG5vdCBvcGVuJyAnCisJZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tIG1lc3NhZ2UgPCYtCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrIGZvciBhIGJ1ZyBpbiB0aGUgcmVnZXggcm91dGluZXMnICcKIAkjIGlmIHRoaXMgdGVzdCBmYWlscywgcmUtYnVpbGQgZ2l0IHdpdGggTk9fUkVHRVg9MQogCXRlc3QtcmVnZXgKZGlmZiAtLWdpdCBhL3QvdDAxMTAtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbi5zaCBiL3QvdDAxMTAtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbi5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZDYwOTZkCi0tLSAvZGV2L251bGwKKysrIGIvdC90MDExMC11cmxtYXRjaC1ub3JtYWxpemF0aW9uLnNoCkBAIC0wLDAgKzEsMTc3IEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0ndXJsbWF0Y2ggVVJMIG5vcm1hbGl6YXRpb24nCisuIC4vdGVzdC1saWIuc2gKKworIyBUaGUgYmFzZSBuYW1lIG9mIHRoZSB0ZXN0IHVybCBmaWxlcwordHU9IiRURVNUX0RJUkVDVE9SWS90MDExMC91cmwiCisKKyMgTm90ZSB0aGF0IG9ubHkgZmlsZTogVVJMcyBzaG91bGQgYmUgYWxsb3dlZCB3aXRob3V0IGEgaG9zdAorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1cmwgc2NoZW1lJyAnCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gIiIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiXyIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lIiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJzY2hlbWU6IiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJzY2hlbWU6LyIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vIiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJmaWxlIiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJmaWxlOiIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiZmlsZTovIiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiZmlsZTovLyIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiOi8vYWNtZS5jbyIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAieF90ZXN0Oi8vYWNtZS5jbyIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiLXRlc3Q6Ly9hY21lLmNvIiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICIwdGVzdDovL2FjbWUuY28iICYmCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gIit0ZXN0Oi8vYWNtZS5jbyIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiLnRlc3Q6Ly9hY21lLmNvIiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJzY2hlbSU2ZTovLyIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gIngtVGVzdCt2MS4wOi8vYWNtZS5jbyIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAiQWJDZGVGOi8veC5ZIikiID0gImFiY2RlZjovL3gueS8iCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VybCBhdXRob3JpdHknICcKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vdXNlcjpwYXNzQCIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vPyIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vIyIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vLyIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vOiIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vOjU1NSIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gImZpbGU6Ly91c2VyOnBhc3NAIiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiZmlsZTovLz8iICYmCisJdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJmaWxlOi8vIyIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gImZpbGU6Ly8vIiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiZmlsZTovLzoiICYmCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gImZpbGU6Ly86NTU1IiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vdXNlcjpwYXNzQGhvc3QiICYmCisJdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJzY2hlbWU6Ly9AaG9zdCIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInNjaGVtZTovLyUwMEBob3N0IiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJzY2hlbWU6Ly8lJUBob3N0IiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJzY2hlbWU6Ly9ob3N0XyIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInNjaGVtZTovL3VzZXI6cGFzc0Bob3N0LyIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInNjaGVtZTovL0Bob3N0LyIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInNjaGVtZTovL2hvc3QvIiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vaG9zdD94IiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vaG9zdCN4IiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vaG9zdC9AIiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vaG9zdD9AeCIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInNjaGVtZTovL2hvc3QjQHgiICYmCisJdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJzY2hlbWU6Ly9bOjoxXSIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInNjaGVtZTovL1s6OjFdLyIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vaG9zJTQxLyIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInNjaGVtZTovL1tpbnZhbGlkLi4uLjovIiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAic2NoZW1lOi8vaW52YWxpZC4uLi46XS8iICYmCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInNjaGVtZTovL2ludmFsaWQuLi4uOlsvIiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJzY2hlbWU6Ly9pbnZhbGlkLi4uLjpbIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1cmwgcG9ydCBjaGVja3MnICcKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInh5ejovL3FAc29tZS5ob3N0OiIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInh5ejovL3FAc29tZS5ob3N0OjQ1Ni8iICYmCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInh5ejovL3FAc29tZS5ob3N0OjAiICYmCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInh5ejovL3FAc29tZS5ob3N0OjAwMDAwMDAiICYmCisJdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJ4eXo6Ly9xQHNvbWUuaG9zdDowMDAwMDAxPyIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInh5ejovL3FAc29tZS5ob3N0OjA2NTUzNSMiICYmCisJdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJ4eXo6Ly9xQHNvbWUuaG9zdDo2NTUzNSIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAieHl6Oi8vcUBzb21lLmhvc3Q6NjU1MzYiICYmCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInh5ejovL3FAc29tZS5ob3N0Ojk5OTk5IiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJ4eXo6Ly9xQHNvbWUuaG9zdDoxMDAwMDAiICYmCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInh5ejovL3FAc29tZS5ob3N0OjEwMDAwMSIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gImh0dHA6Ly9xQHNvbWUuaG9zdDo4MCIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gImh0dHBzOi8vcUBzb21lLmhvc3Q6NDQzIiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiaHR0cDovL3FAc29tZS5ob3N0OjgwLyIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gImh0dHBzOi8vcUBzb21lLmhvc3Q6NDQzPyIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiaHR0cDovL3FAOjgwMDgiICYmCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gImh0dHA6Ly86ODA4MCIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiaHR0cDovLzoiICYmCisJdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJ4eXo6Ly9xQHNvbWUuaG9zdDo0NTYvIiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAieHl6Oi8vWzo6MV06NDU2LyIgJiYKKwl0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInh5ejovL1s6OjFdOi8iICYmCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInh5ejovL1s6OjFdOjAwMC8iICYmCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInh5ejovL1s6OjFdOjAlMzAwLyIgJiYKKwkhIHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAieHl6Oi8vWzo6MV06MHg4MC8iICYmCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gInh5ejovL1s6OjFdOjQyOTQ5NjcyOTcvIiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJ4eXo6Ly9bOjoxXTowMzBmLyIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndXJsIHBvcnQgbm9ybWFsaXphdGlvbicgJworCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJodHRwOi8veDo4MDAiKSIgPSAiaHR0cDovL3g6ODAwLyIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAiaHR0cDovL3g6MDgwMCIpIiA9ICJodHRwOi8veDo4MDAvIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJodHRwOi8veDowMDAwMDgwMCIpIiA9ICJodHRwOi8veDo4MDAvIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJodHRwOi8veDowNjU1MzUiKSIgPSAiaHR0cDovL3g6NjU1MzUvIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJodHRwOi8veDoxIikiID0gImh0dHA6Ly94OjEvIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJodHRwOi8veDo4MCIpIiA9ICJodHRwOi8veC8iICYmCisJdGVzdCAiJCh0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gLXAgImh0dHA6Ly94OjA4MCIpIiA9ICJodHRwOi8veC8iICYmCisJdGVzdCAiJCh0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gLXAgImh0dHA6Ly94OjAwMDAwMDA4MCIpIiA9ICJodHRwOi8veC8iICYmCisJdGVzdCAiJCh0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gLXAgImh0dHBzOi8veDo0NDMiKSIgPSAiaHR0cHM6Ly94LyIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAiaHR0cHM6Ly94OjA0NDMiKSIgPSAiaHR0cHM6Ly94LyIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAiaHR0cHM6Ly94OjAwMDAwMDQ0MyIpIiA9ICJodHRwczovL3gvIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1cmwgZ2VuZXJhbCBlc2NhcGVzJyAnCisJISB0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gImh0dHA6Ly94Lnk/JWZnIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJYOi8vVy8lN2UlNDFeJTNhIikiID0gIng6Ly93L35BJTVFJTNBIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJYOi8vVy86Lz8jW11AIikiID0gIng6Ly93LzovPyNbXUAiICYmCisJdGVzdCAiJCh0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gLXAgIlg6Ly9XLyQmKCkqKyw7PSIpIiA9ICJ4Oi8vdy8kJigpKissOz0iICYmCisJdGVzdCAiJCh0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gLXAgIlg6Ly9XLydcJyciKSIgPSAieDovL3cvJ1wnJyIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAiWDovL1c/J1whJyIpIiA9ICJ4Oi8vdy8/J1whJyIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndXJsIGhpZ2gtYml0IGVzY2FwZXMnICcKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAiJChjYXQgIiR0dS0xIikiKSIgPSAieDovL3EvJTAxJTAyJTAzJTA0JTA1JTA2JTA3JTA4JTBFJTBGJTEwJTExJTEyIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICIkKGNhdCAiJHR1LTIiKSIpIiA9ICJ4Oi8vcS8lMTMlMTQlMTUlMTYlMTclMTglMTklMUIlMUMlMUQlMUUlMUYlN0YiICYmCisJdGVzdCAiJCh0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gLXAgIiQoY2F0ICIkdHUtMyIpIikiID0gIng6Ly9xLyU4MCU4MSU4MiU4MyU4NCU4NSU4NiU4NyU4OCU4OSU4QSU4QiU4QyU4RCU4RSU4RiIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAiJChjYXQgIiR0dS00IikiKSIgPSAieDovL3EvJTkwJTkxJTkyJTkzJTk0JTk1JTk2JTk3JTk4JTk5JTlBJTlCJTlDJTlEJTlFJTlGIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICIkKGNhdCAiJHR1LTUiKSIpIiA9ICJ4Oi8vcS8lQTAlQTElQTIlQTMlQTQlQTUlQTYlQTclQTglQTklQUElQUIlQUMlQUQlQUUlQUYiICYmCisJdGVzdCAiJCh0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gLXAgIiQoY2F0ICIkdHUtNiIpIikiID0gIng6Ly9xLyVCMCVCMSVCMiVCMyVCNCVCNSVCNiVCNyVCOCVCOSVCQSVCQiVCQyVCRCVCRSVCRiIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAiJChjYXQgIiR0dS03IikiKSIgPSAieDovL3EvJUMwJUMxJUMyJUMzJUM0JUM1JUM2JUM3JUM4JUM5JUNBJUNCJUNDJUNEJUNFJUNGIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICIkKGNhdCAiJHR1LTgiKSIpIiA9ICJ4Oi8vcS8lRDAlRDElRDIlRDMlRDQlRDUlRDYlRDclRDglRDklREElREIlREMlREQlREUlREYiICYmCisJdGVzdCAiJCh0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gLXAgIiQoY2F0ICIkdHUtOSIpIikiID0gIng6Ly9xLyVFMCVFMSVFMiVFMyVFNCVFNSVFNiVFNyVFOCVFOSVFQSVFQiVFQyVFRCVFRSVFRiIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAiJChjYXQgIiR0dS0xMCIpIikiID0gIng6Ly9xLyVGMCVGMSVGMiVGMyVGNCVGNSVGNiVGNyVGOCVGOSVGQSVGQiVGQyVGRCVGRSVGRiIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAiJChjYXQgIiR0dS0xMSIpIikiID0gIng6Ly9xLyVDMiU4MCVERiVCRiVFMCVBMCU4MCVFRiVCRiVCRCVGMCU5MCU4MCU4MCVGMCVBRiVCRiVCRCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndXJsIHVzZXJuYW1lL3Bhc3N3b3JkIGVzY2FwZXMnICcKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAieDovLyU0MSU2MiheKTolNzArZEBmb28iKSIgPSAieDovL0FiKCU1RSk6cCtkQGZvby8iCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VybCBub3JtYWxpemVkIGxlbmd0aHMnICcKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtbCAiSHR0cDovLyU0ZCU2NTolNGReJTcwQFRoZS5Ib3N0IikiID0gMjUgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtbCAiaHR0cDovLyU0MTolNDJAeC55LyU2MS8iKSIgPSAxNyAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1sICJodHRwOi8vQHgueS9eIikiID0gMTUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndXJsIC4gYW5kIC4uIHNlZ21lbnRzJyAnCisJdGVzdCAiJCh0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gLXAgIng6Ly95Ly4iKSIgPSAieDovL3kvIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJ4Oi8veS8uLyIpIiA9ICJ4Oi8veS8iICYmCisJdGVzdCAiJCh0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gLXAgIng6Ly95L2EvLiIpIiA9ICJ4Oi8veS9hIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJ4Oi8veS9hLy4vIikiID0gIng6Ly95L2EvIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJ4Oi8veS8uPyIpIiA9ICJ4Oi8veS8/IiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJ4Oi8veS8uLz8iKSIgPSAieDovL3kvPyIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAieDovL3kvYS8uPyIpIiA9ICJ4Oi8veS9hPyIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAieDovL3kvYS8uLz8iKSIgPSAieDovL3kvYS8/IiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJ4Oi8veS9hLy4vYi8uLi8uLy4uL2MiKSIgPSAieDovL3kvYyIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAieDovL3kvYS8uL2IvLi4vLi4vLi9jLyIpIiA9ICJ4Oi8veS9jLyIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAieDovL3kvYS8uL2IvLi4vLi8uLi9jLy4vLi8uLi8uLy4iKSIgPSAieDovL3kvIiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJ4Oi8veS9hLy4vYi8uLi8uLy4uL2MvLi8uLy4uLy4vLi4iICYmCisJdGVzdCAiJCh0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gLXAgIng6Ly95L2EvLi8/Ly4vLi8uLiIpIiA9ICJ4Oi8veS9hLz8vLi8uLy4uIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJ4Oi8veS8lMmUvIikiID0gIng6Ly95LyIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAieDovL3kvJTJFLyIpIiA9ICJ4Oi8veS8iICYmCisJdGVzdCAiJCh0ZXN0LXVybG1hdGNoLW5vcm1hbGl6YXRpb24gLXAgIng6Ly95L2EvJTJlLi8iKSIgPSAieDovL3kvIiAmJgorCXRlc3QgIiQodGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uIC1wICJ4Oi8veS9iLy4lMkUvIikiID0gIng6Ly95LyIgJiYKKwl0ZXN0ICIkKHRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAtcCAieDovL3kvYy8lMmUlMkUvIikiID0gIng6Ly95LyIKKycKKworIyBodHRwOi8vQGZvbyBzcGVjaWZpZXMgYW4gZW1wdHkgdXNlciBuYW1lIGJ1dCBkb2VzIG5vdCBzcGVjaWZ5IGEgcGFzc3dvcmQKKyMgaHR0cDovL2ZvbyAgc3BlY2lmaWVzIG5laXRoZXIgYSB1c2VyIG5hbWUgbm9yIGEgcGFzc3dvcmQKKyMgU28gdGhleSBzaG91bGQgbm90IGJlIGVxdWl2YWxlbnQKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VybCBlcXVpdmFsZW50cycgJworCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiaHR0UDovL3giICJIdHRwOi8vWC8iICYmCisJdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJIdHRwOi8vJTRkJTY1OiU0ZF4lNzBAVGhlLkhvc3QiICJoVFRQOi8vTWU6JTREXnBAdGhlLkhPU1Q6ODAvIiAmJgorCSEgdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uICJodHRwczovL0B4LnkvXiIgImh0dHBTOi8veC55OjQ0My9eIiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiaHR0cHM6Ly9AeC55L14iICJodHRwUzovL0B4Lnk6MDQ0My9eIiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiaHR0cHM6Ly9AeC55L14vLi4vYWJjIiAiaHR0cFM6Ly9AeC55OjA0NDMvYWJjIiAmJgorCXRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiAiaHR0cHM6Ly9AeC55L14vLi4iICJodHRwUzovL0B4Lnk6MDQ0My8iCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MDExMC9SRUFETUUgYi90L3QwMTEwL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDRhNTBlCi0tLSAvZGV2L251bGwKKysrIGIvdC90MDExMC9SRUFETUUKQEAgLTAsMCArMSw5IEBACitUaGUgdXJsIGRhdGEgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkgY29udGFpbiBVUkxzIHdpdGggY2hhcmFjdGVycworaW4gdGhlIHJhbmdlIDB4MDEtMHgxZiBhbmQgMHg3Zi0weGZmIHRvIHRlc3QgdGhlIHByb3BlciBub3JtYWxpemF0aW9uCitvZiB1bnByaW50YWJsZSBjaGFyYWN0ZXJzLgorCitBIHNlbGVjdCBmZXcgY2hhcmFjdGVycyBpbiB0aGUgMHgwMS0weDFmIHJhbmdlIGFyZSBza2lwcGVkIHRvIGhlbHAKK2F2b2lkIHByb2JsZW1zIHJ1bm5pbmcgdGhlIHRlc3QgaXRzZWxmLgorCitUaGUgdXJscyBhcmUgaW4gdGVzdCBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeSByYXRoZXIgdGhhbiBiZWluZworZW1iZWRkZWQgaW4gdGhlIHRlc3Qgc2NyaXB0IGZvciBwb3J0YWJpbGl0eS4KZGlmZiAtLWdpdCBhL3QvdDAxMTAvdXJsLTEgYi90L3QwMTEwL3VybC0xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxOTAxOWMKLS0tIC9kZXYvbnVsbAorKysgYi90L3QwMTEwL3VybC0xCkBAIC0wLDAgKzEgQEAKK3g6Ly9xLwECAwQFBgcIDg8QERIKZGlmZiAtLWdpdCBhL3QvdDAxMTAvdXJsLTEwIGIvdC90MDExMC91cmwtMTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk5NjVkZQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDAxMTAvdXJsLTEwCkBAIC0wLDAgKzEgQEAKK3g6Ly9xL/Dx8vP09fb3+Pn6+/z9/v8KZGlmZiAtLWdpdCBhL3QvdDAxMTAvdXJsLTExIGIvdC90MDExMC91cmwtMTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBhNTBmMQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDAxMTAvdXJsLTExCkBAIC0wLDAgKzEgQEAKK3g6Ly9xL8KA37/goIDvv73wkICA8K+/vQpkaWZmIC0tZ2l0IGEvdC90MDExMC91cmwtMiBiL3QvdDAxMTAvdXJsLTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDMzMzRiMAotLS0gL2Rldi9udWxsCisrKyBiL3QvdDAxMTAvdXJsLTIKQEAgLTAsMCArMSBAQAoreDovL3EvExQVFhcYGRscHR4ffwpkaWZmIC0tZ2l0IGEvdC90MDExMC91cmwtMyBiL3QvdDAxMTAvdXJsLTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM3OGM3YgotLS0gL2Rldi9udWxsCisrKyBiL3QvdDAxMTAvdXJsLTMKQEAgLTAsMCArMSBAQAoreDovL3EvgIGCg4SFhoeIiYqLjI2OjwpkaWZmIC0tZ2l0IGEvdC90MDExMC91cmwtNCBiL3QvdDAxMTAvdXJsLTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjIwYjE5OAotLS0gL2Rldi9udWxsCisrKyBiL3QvdDAxMTAvdXJsLTQKQEAgLTAsMCArMSBAQAoreDovL3EvkJGSk5SVlpeYmZqbnJ2enwpkaWZmIC0tZ2l0IGEvdC90MDExMC91cmwtNSBiL3QvdDAxMTAvdXJsLTUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNjZDkyNwotLS0gL2Rldi9udWxsCisrKyBiL3QvdDAxMTAvdXJsLTUKQEAgLTAsMCArMSBAQAoreDovL3EvoKGio6SlpqeoqaqrrK2urwpkaWZmIC0tZ2l0IGEvdC90MDExMC91cmwtNiBiL3QvdDAxMTAvdXJsLTYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTgyODNhYQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDAxMTAvdXJsLTYKQEAgLTAsMCArMSBAQAoreDovL3EvsLGys7S1tre4ubq7vL2+vwpkaWZmIC0tZ2l0IGEvdC90MDExMC91cmwtNyBiL3QvdDAxMTAvdXJsLTcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE3YzEwYgotLS0gL2Rldi9udWxsCisrKyBiL3QvdDAxMTAvdXJsLTcKQEAgLTAsMCArMSBAQAoreDovL3EvwMHCw8TFxsfIycrLzM3OzwpkaWZmIC0tZ2l0IGEvdC90MDExMC91cmwtOCBiL3QvdDAxMTAvdXJsLTgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzlhMGJhOAotLS0gL2Rldi9udWxsCisrKyBiL3QvdDAxMTAvdXJsLTgKQEAgLTAsMCArMSBAQAoreDovL3Ev0NHS09TV1tfY2drb3N3e3wpkaWZmIC0tZ2l0IGEvdC90MDExMC91cmwtOSBiL3QvdDAxMTAvdXJsLTkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGI0NGJlYwotLS0gL2Rldi9udWxsCisrKyBiL3QvdDAxMTAvdXJsLTkKQEAgLTAsMCArMSBAQAoreDovL3Ev4OHi4+Tl5ufo6err7O3u7wpkaWZmIC0tZ2l0IGEvdC90MDIwMi1nZXR0ZXh0LXBlcmwuc2ggYi90L3QwMjAyLWdldHRleHQtcGVybC5zaAppbmRleCA0MjhlYmIwLi5hMjlkMTY2IDEwMDc1NQotLS0gYS90L3QwMjAyLWdldHRleHQtcGVybC5zaAorKysgYi90L3QwMjAyLWdldHRleHQtcGVybC5zaApAQCAtMTIsNyArMTIsNyBAQAogCXRlc3RfZG9uZQogZmkKIAotIiRQRVJMX1BBVEgiIC1NVGVzdDo6TW9yZSAtZSAwIDI+L2Rldi9udWxsIHx8IHsKK3BlcmwgLU1UZXN0OjpNb3JlIC1lIDAgMj4vZGV2L251bGwgfHwgewogCXNraXBfYWxsPSJQZXJsIFRlc3Q6Ok1vcmUgdW5hdmFpbGFibGUsIHNraXBwaW5nIHRlc3QiCiAJdGVzdF9kb25lCiB9CkBAIC0yMiw2ICsyMiw2IEBACiAKIHRlc3RfZXh0ZXJuYWxfd2l0aG91dF9zdGRlcnIgXAogICAgICdQZXJsIEdpdDo6STE4TiBBUEknIFwKLSAgICAiJFBFUkxfUEFUSCIgIiRURVNUX0RJUkVDVE9SWSIvdDAyMDIvdGVzdC5wbAorICAgIHBlcmwgIiRURVNUX0RJUkVDVE9SWSIvdDAyMDIvdGVzdC5wbAogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDAyMDIvdGVzdC5wbCBiL3QvdDAyMDIvdGVzdC5wbApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS90L3QxMDA1LXJlYWQtdHJlZS1yZXNldC5zaCBiL3QvdDEwMDUtcmVhZC10cmVlLXJlc2V0LnNoCmluZGV4IGY1M2RlNzkuLjA3NDU2ODUgMTAwNzU1Ci0tLSBhL3QvdDEwMDUtcmVhZC10cmVlLXJlc2V0LnNoCisrKyBiL3QvdDEwMDUtcmVhZC10cmVlLXJlc2V0LnNoCkBAIC04LDg0ICs4LDk5IEBACiAjIHR3by10cmVlIHRlc3QKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAnICcKLSAgZ2l0IGluaXQgJiYKLSAgbWtkaXIgZGYgJiYKLSAgZWNobyBjb250ZW50ID5kZi9maWxlICYmCi0gIGdpdCBhZGQgZGYvZmlsZSAmJgotICBnaXQgY29tbWl0IC1tIG9uZSAmJgotICBnaXQgbHMtZmlsZXMgPmV4cGVjdCAmJgotICBybSAtcmYgZGYgJiYKLSAgZWNobyBjb250ZW50ID5kZiAmJgotICBnaXQgYWRkIGRmICYmCi0gIGVjaG8gY29udGVudCA+bmV3ICYmCi0gIGdpdCBhZGQgbmV3ICYmCi0gIGdpdCBjb21taXQgLW0gdHdvCisJZ2l0IGluaXQgJiYKKwlta2RpciBkZiAmJgorCWVjaG8gY29udGVudCA+ZGYvZmlsZSAmJgorCWdpdCBhZGQgZGYvZmlsZSAmJgorCWdpdCBjb21taXQgLW0gb25lICYmCisJZ2l0IGxzLWZpbGVzID5leHBlY3QgJiYKKwlybSAtcmYgZGYgJiYKKwllY2hvIGNvbnRlbnQgPmRmICYmCisJZ2l0IGFkZCBkZiAmJgorCWVjaG8gY29udGVudCA+bmV3ICYmCisJZ2l0IGFkZCBuZXcgJiYKKwlnaXQgY29tbWl0IC1tIHR3bwogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXNldCBzaG91bGQgd29yaycgJwotICByZWFkX3RyZWVfdV9tdXN0X3N1Y2NlZWQgLXUgLS1yZXNldCBIRUFEXiAmJgotICBnaXQgbHMtZmlsZXMgPmFjdHVhbCAmJgotICB0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisJcmVhZF90cmVlX3VfbXVzdF9zdWNjZWVkIC11IC0tcmVzZXQgSEVBRF4gJiYKKwlnaXQgbHMtZmlsZXMgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVzZXQgc2hvdWxkIHJlbW92ZSByZW1uYW50cyBmcm9tIGEgZmFpbGVkIG1lcmdlJyAnCi0gIHJlYWRfdHJlZV91X211c3Rfc3VjY2VlZCAtLXJlc2V0IC11IEhFQUQgJiYKLSAgZ2l0IGxzLWZpbGVzIC1zID5leHBlY3QgJiYKLSAgc2hhMT0kKGdpdCByZXYtcGFyc2UgOm5ldykgJiYKLSAgKAotCWVjaG8gIjEwMDY0NCAkc2hhMSAxCW9sZCIKLQllY2hvICIxMDA2NDQgJHNoYTEgMwlvbGQiCi0gICkgfCBnaXQgdXBkYXRlLWluZGV4IC0taW5kZXgtaW5mbyAmJgotICA+b2xkICYmCi0gIGdpdCBscy1maWxlcyAtcyAmJgotICByZWFkX3RyZWVfdV9tdXN0X3N1Y2NlZWQgLS1yZXNldCAtdSBIRUFEICYmCi0gIGdpdCBscy1maWxlcyAtcyA+YWN0dWFsICYmCi0gICEgdGVzdCAtZiBvbGQKKwlyZWFkX3RyZWVfdV9tdXN0X3N1Y2NlZWQgLS1yZXNldCAtdSBIRUFEICYmCisJZ2l0IGxzLWZpbGVzIC1zID5leHBlY3QgJiYKKwlzaGExPSQoZ2l0IHJldi1wYXJzZSA6bmV3KSAmJgorCSgKKwkJZWNobyAiMTAwNjQ0ICRzaGExIDEJb2xkIgorCQllY2hvICIxMDA2NDQgJHNoYTEgMwlvbGQiCisJKSB8IGdpdCB1cGRhdGUtaW5kZXggLS1pbmRleC1pbmZvICYmCisJPm9sZCAmJgorCWdpdCBscy1maWxlcyAtcyAmJgorCXJlYWRfdHJlZV91X211c3Rfc3VjY2VlZCAtLXJlc2V0IC11IEhFQUQgJiYKKwlnaXQgbHMtZmlsZXMgLXMgPmFjdHVhbCAmJgorCSEgdGVzdCAtZiBvbGQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndHdvLXdheSByZXNldCBzaG91bGQgcmVtb3ZlIHJlbW5hbnRzIHRvbycgJworCXJlYWRfdHJlZV91X211c3Rfc3VjY2VlZCAtLXJlc2V0IC11IEhFQUQgJiYKKwlnaXQgbHMtZmlsZXMgLXMgPmV4cGVjdCAmJgorCXNoYTE9JChnaXQgcmV2LXBhcnNlIDpuZXcpICYmCisJKAorCQllY2hvICIxMDA2NDQgJHNoYTEgMQlvbGQiCisJCWVjaG8gIjEwMDY0NCAkc2hhMSAzCW9sZCIKKwkpIHwgZ2l0IHVwZGF0ZS1pbmRleCAtLWluZGV4LWluZm8gJiYKKwk+b2xkICYmCisJZ2l0IGxzLWZpbGVzIC1zICYmCisJcmVhZF90cmVlX3VfbXVzdF9zdWNjZWVkIC0tcmVzZXQgLXUgSEVBRCBIRUFEICYmCisJZ2l0IGxzLWZpbGVzIC1zID5hY3R1YWwgJiYKKwkhIHRlc3QgLWYgb2xkCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1BvcmNlbGFpbiByZXNldCBzaG91bGQgcmVtb3ZlIHJlbW5hbnRzIHRvbycgJwotICByZWFkX3RyZWVfdV9tdXN0X3N1Y2NlZWQgLS1yZXNldCAtdSBIRUFEICYmCi0gIGdpdCBscy1maWxlcyAtcyA+ZXhwZWN0ICYmCi0gIHNoYTE9JChnaXQgcmV2LXBhcnNlIDpuZXcpICYmCi0gICgKLQllY2hvICIxMDA2NDQgJHNoYTEgMQlvbGQiCi0JZWNobyAiMTAwNjQ0ICRzaGExIDMJb2xkIgotICApIHwgZ2l0IHVwZGF0ZS1pbmRleCAtLWluZGV4LWluZm8gJiYKLSAgPm9sZCAmJgotICBnaXQgbHMtZmlsZXMgLXMgJiYKLSAgZ2l0IHJlc2V0IC0taGFyZCAmJgotICBnaXQgbHMtZmlsZXMgLXMgPmFjdHVhbCAmJgotICAhIHRlc3QgLWYgb2xkCisJcmVhZF90cmVlX3VfbXVzdF9zdWNjZWVkIC0tcmVzZXQgLXUgSEVBRCAmJgorCWdpdCBscy1maWxlcyAtcyA+ZXhwZWN0ICYmCisJc2hhMT0kKGdpdCByZXYtcGFyc2UgOm5ldykgJiYKKwkoCisJCWVjaG8gIjEwMDY0NCAkc2hhMSAxCW9sZCIKKwkJZWNobyAiMTAwNjQ0ICRzaGExIDMJb2xkIgorCSkgfCBnaXQgdXBkYXRlLWluZGV4IC0taW5kZXgtaW5mbyAmJgorCT5vbGQgJiYKKwlnaXQgbHMtZmlsZXMgLXMgJiYKKwlnaXQgcmVzZXQgLS1oYXJkICYmCisJZ2l0IGxzLWZpbGVzIC1zID5hY3R1YWwgJiYKKwkhIHRlc3QgLWYgb2xkCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1BvcmNlbGFpbiBjaGVja291dCAtZiBzaG91bGQgcmVtb3ZlIHJlbW5hbnRzIHRvbycgJwotICByZWFkX3RyZWVfdV9tdXN0X3N1Y2NlZWQgLS1yZXNldCAtdSBIRUFEICYmCi0gIGdpdCBscy1maWxlcyAtcyA+ZXhwZWN0ICYmCi0gIHNoYTE9JChnaXQgcmV2LXBhcnNlIDpuZXcpICYmCi0gICgKLQllY2hvICIxMDA2NDQgJHNoYTEgMQlvbGQiCi0JZWNobyAiMTAwNjQ0ICRzaGExIDMJb2xkIgotICApIHwgZ2l0IHVwZGF0ZS1pbmRleCAtLWluZGV4LWluZm8gJiYKLSAgPm9sZCAmJgotICBnaXQgbHMtZmlsZXMgLXMgJiYKLSAgZ2l0IGNoZWNrb3V0IC1mICYmCi0gIGdpdCBscy1maWxlcyAtcyA+YWN0dWFsICYmCi0gICEgdGVzdCAtZiBvbGQKKwlyZWFkX3RyZWVfdV9tdXN0X3N1Y2NlZWQgLS1yZXNldCAtdSBIRUFEICYmCisJZ2l0IGxzLWZpbGVzIC1zID5leHBlY3QgJiYKKwlzaGExPSQoZ2l0IHJldi1wYXJzZSA6bmV3KSAmJgorCSgKKwkJZWNobyAiMTAwNjQ0ICRzaGExIDEJb2xkIgorCQllY2hvICIxMDA2NDQgJHNoYTEgMwlvbGQiCisJKSB8IGdpdCB1cGRhdGUtaW5kZXggLS1pbmRleC1pbmZvICYmCisJPm9sZCAmJgorCWdpdCBscy1maWxlcyAtcyAmJgorCWdpdCBjaGVja291dCAtZiAmJgorCWdpdCBscy1maWxlcyAtcyA+YWN0dWFsICYmCisJISB0ZXN0IC1mIG9sZAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdQb3JjZWxhaW4gY2hlY2tvdXQgLWYgSEVBRCBzaG91bGQgcmVtb3ZlIHJlbW5hbnRzIHRvbycgJwotICByZWFkX3RyZWVfdV9tdXN0X3N1Y2NlZWQgLS1yZXNldCAtdSBIRUFEICYmCi0gIGdpdCBscy1maWxlcyAtcyA+ZXhwZWN0ICYmCi0gIHNoYTE9JChnaXQgcmV2LXBhcnNlIDpuZXcpICYmCi0gICgKLQllY2hvICIxMDA2NDQgJHNoYTEgMQlvbGQiCi0JZWNobyAiMTAwNjQ0ICRzaGExIDMJb2xkIgotICApIHwgZ2l0IHVwZGF0ZS1pbmRleCAtLWluZGV4LWluZm8gJiYKLSAgPm9sZCAmJgotICBnaXQgbHMtZmlsZXMgLXMgJiYKLSAgZ2l0IGNoZWNrb3V0IC1mIEhFQUQgJiYKLSAgZ2l0IGxzLWZpbGVzIC1zID5hY3R1YWwgJiYKLSAgISB0ZXN0IC1mIG9sZAorCXJlYWRfdHJlZV91X211c3Rfc3VjY2VlZCAtLXJlc2V0IC11IEhFQUQgJiYKKwlnaXQgbHMtZmlsZXMgLXMgPmV4cGVjdCAmJgorCXNoYTE9JChnaXQgcmV2LXBhcnNlIDpuZXcpICYmCisJKAorCQllY2hvICIxMDA2NDQgJHNoYTEgMQlvbGQiCisJCWVjaG8gIjEwMDY0NCAkc2hhMSAzCW9sZCIKKwkpIHwgZ2l0IHVwZGF0ZS1pbmRleCAtLWluZGV4LWluZm8gJiYKKwk+b2xkICYmCisJZ2l0IGxzLWZpbGVzIC1zICYmCisJZ2l0IGNoZWNrb3V0IC1mIEhFQUQgJiYKKwlnaXQgbHMtZmlsZXMgLXMgPmFjdHVhbCAmJgorCSEgdGVzdCAtZiBvbGQKICcKIAogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QxMDA2LWNhdC1maWxlLnNoIGIvdC90MTAwNi1jYXQtZmlsZS5zaAppbmRleCA0ZTkxMWZiLi5hNzJlNzAwIDEwMDc1NQotLS0gYS90L3QxMDA2LWNhdC1maWxlLnNoCisrKyBiL3QvdDEwMDYtY2F0LWZpbGUuc2gKQEAgLTc4LDYgKzc4LDM1IEBACiAJZWNobyAkc2hhMSB8IGdpdCBjYXQtZmlsZSAtLWJhdGNoLWNoZWNrPSIlKG9iamVjdHR5cGUpICUob2JqZWN0bmFtZSkiID5hY3R1YWwgJiYKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAgICAgJworCisgICAgdGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1iYXRjaC1jaGVjayB3aXRoICUocmVzdCknICcKKwllY2hvICIkdHlwZSB0aGlzIGlzIHNvbWUgZXh0cmEgY29udGVudCIgPmV4cGVjdCAmJgorCWVjaG8gIiRzaGExICAgIHRoaXMgaXMgc29tZSBleHRyYSBjb250ZW50IiB8CisJCWdpdCBjYXQtZmlsZSAtLWJhdGNoLWNoZWNrPSIlKG9iamVjdHR5cGUpICUocmVzdCkiID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisgICAgJworCisgICAgdGVzdCAteiAiJGNvbnRlbnQiIHx8CisgICAgdGVzdF9leHBlY3Rfc3VjY2VzcyAiLS1iYXRjaCB3aXRob3V0IHR5cGUgKCR0eXBlKSIgJworCXsKKwkJZWNobyAiJHNpemUiICYmCisJCW1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiRjb250ZW50IiAkbm9fdHMKKwl9ID5leHBlY3QgJiYKKwllY2hvICRzaGExIHwgZ2l0IGNhdC1maWxlIC0tYmF0Y2g9IiUob2JqZWN0c2l6ZSkiID5hY3R1YWwuZnVsbCAmJgorCW1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiQoY2F0IGFjdHVhbC5mdWxsKSIgJG5vX3RzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisgICAgJworCisgICAgdGVzdCAteiAiJGNvbnRlbnQiIHx8CisgICAgdGVzdF9leHBlY3Rfc3VjY2VzcyAiLS1iYXRjaCB3aXRob3V0IHNpemUgKCR0eXBlKSIgJworCXsKKwkJZWNobyAiJHR5cGUiICYmCisJCW1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiRjb250ZW50IiAkbm9fdHMKKwl9ID5leHBlY3QgJiYKKwllY2hvICRzaGExIHwgZ2l0IGNhdC1maWxlIC0tYmF0Y2g9IiUob2JqZWN0dHlwZSkiID5hY3R1YWwuZnVsbCAmJgorCW1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiQoY2F0IGFjdHVhbC5mdWxsKSIgJG5vX3RzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisgICAgJwogfQogCiBoZWxsb19jb250ZW50PSJIZWxsbyBXb3JsZCIKQEAgLTkxLDYgKzEyMCwxNCBAQAogCiBydW5fdGVzdHMgJ2Jsb2InICRoZWxsb19zaGExICRoZWxsb19zaXplICIkaGVsbG9fY29udGVudCIgIiRoZWxsb19jb250ZW50IgogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctLWJhdGNoLWNoZWNrIHdpdGhvdXQgJShyZXN0KSBjb25zaWRlcnMgd2hvbGUgbGluZScgJworCWVjaG8gIiRoZWxsb19zaGExIGJsb2IgJGhlbGxvX3NpemUiID5leHBlY3QgJiYKKwlnaXQgdXBkYXRlLWluZGV4IC0tYWRkIC0tY2FjaGVpbmZvIDEwMDY0NCAkaGVsbG9fc2hhMSAid2hpdGUgc3BhY2UiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgdXBkYXRlLWluZGV4IC0tcmVtb3ZlIFwid2hpdGUgc3BhY2VcIiIgJiYKKwllY2hvICI6d2hpdGUgc3BhY2UiIHwgZ2l0IGNhdC1maWxlIC0tYmF0Y2gtY2hlY2sgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogdHJlZV9zaGExPSQoZ2l0IHdyaXRlLXRyZWUpCiB0cmVlX3NpemU9MzMKIHRyZWVfcHJldHR5X2NvbnRlbnQ9IjEwMDY0NCBibG9iICRoZWxsb19zaGExCWhlbGxvIgpAQCAtMTc5LDYgKzIxNiwxMiBAQAogICAgIHRlc3QgIiBtaXNzaW5nIiA9ICIkKGVjaG8gfCBnaXQgY2F0LWZpbGUgLS1iYXRjaC1jaGVjaykiCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2VtcHR5IC0tYmF0Y2gtY2hlY2sgbm90aWNlcyBtaXNzaW5nIG9iamVjdCcgJworCWVjaG8gIiRfejQwIG1pc3NpbmciID5leHBlY3QgJiYKKwllY2hvICIkX3o0MCIgfCBnaXQgY2F0LWZpbGUgLS1iYXRjaC1jaGVjaz0iIiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCiBiYXRjaF9pbnB1dD0iJGhlbGxvX3NoYTEKICRjb21taXRfc2hhMQogJHRhZ19zaGExCkBAIC0yMTksNCArMjYyLDM4IEBACiAgICAgIiQoZWNob193aXRob3V0X25ld2xpbmUgIiRiYXRjaF9jaGVja19pbnB1dCIgfCBnaXQgY2F0LWZpbGUgLS1iYXRjaC1jaGVjaykiCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGJsb2JzIHdoaWNoIGFyZSBsaWtlbHkgdG8gZGVsdGEnICcKKwl0ZXN0LWdlbnJhbmRvbSBmb28gMTAyNDAgPmZvbyAmJgorCXsgY2F0IGZvbzsgZWNobyBwbHVzOyB9ID5mb28tcGx1cyAmJgorCWdpdCBhZGQgZm9vIGZvby1wbHVzICYmCisJZ2l0IGNvbW1pdCAtbSBmb28gJiYKKwljYXQgPmJsb2JzIDw8LVxFT0YKKwlIRUFEOmZvbworCUhFQUQ6Zm9vLXBsdXMKKwlFT0YKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY29uZmlybSB0aGF0IG5laXRoZXIgbG9vc2UgYmxvYiBpcyBhIGRlbHRhJyAnCisJY2F0ID5leHBlY3QgPDwtRU9GCisJJF96NDAKKwkkX3o0MAorCUVPRgorCWdpdCBjYXQtZmlsZSAtLWJhdGNoLWNoZWNrPSIlKGRlbHRhYmFzZSkiIDxibG9icyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCisjIFRvIGF2b2lkIHJlbHlpbmcgdG9vIG11Y2ggb24gdGhlIGN1cnJlbnQgZGVsdGEgaGV1cmlzdGljcywKKyMgd2Ugd2lsbCBjaGVjayBvbmx5IHRoYXQgb25lIG9mIHRoZSB0d28gb2JqZWN0cyBpcyBhIGRlbHRhCisjIGFnYWluc3QgdGhlIG90aGVyLCBidXQgbm90IHRoZSBvcmRlci4gV2UgY2FuIGRvIHNvIGJ5IGp1c3QKKyMgYXNraW5nIGZvciB0aGUgYmFzZSBvZiBib3RoLCBhbmQgY2hlY2tpbmcgd2hldGhlciBlaXRoZXIKKyMgc2hhMSBhcHBlYXJzIGluIHRoZSBvdXRwdXQuCit0ZXN0X2V4cGVjdF9zdWNjZXNzICclKGRlbHRhYmFzZSkgcmVwb3J0cyBwYWNrZWQgZGVsdGEgYmFzZXMnICcKKwlnaXQgcmVwYWNrIC1hZCAmJgorCWdpdCBjYXQtZmlsZSAtLWJhdGNoLWNoZWNrPSIlKGRlbHRhYmFzZSkiIDxibG9icyA+YWN0dWFsICYmCisJeworCQlncmVwICIkKGdpdCByZXYtcGFyc2UgSEVBRDpmb28pIiBhY3R1YWwgfHwKKwkJZ3JlcCAiJChnaXQgcmV2LXBhcnNlIEhFQUQ6Zm9vLXBsdXMpIiBhY3R1YWwKKwl9CisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MTAxMC1ta3RyZWUuc2ggYi90L3QxMDEwLW1rdHJlZS5zaAppbmRleCBkZjU3M2M0Li5iOTQ2Zjg3IDEwMDc1NQotLS0gYS90L3QxMDEwLW1rdHJlZS5zaAorKysgYi90L3QxMDEwLW1rdHJlZS5zaApAQCAtNDIsMTMgKzQyLDEzIEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2xzLXRyZWUgb3V0cHV0IGluIHdyb25nIG9yZGVyIGdpdmVuIHRvIG1rdHJlZSAoMSknICcKLQkiJFBFUkxfUEFUSCIgLWUgInByaW50IHJldmVyc2UgPD4iIDx0b3AgfAorCXBlcmwgLWUgInByaW50IHJldmVyc2UgPD4iIDx0b3AgfAogCWdpdCBta3RyZWUgPmFjdHVhbCAmJgogCXRlc3RfY21wIHRyZWUgYWN0dWFsCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2xzLXRyZWUgb3V0cHV0IGluIHdyb25nIG9yZGVyIGdpdmVuIHRvIG1rdHJlZSAoMiknICcKLQkiJFBFUkxfUEFUSCIgLWUgInByaW50IHJldmVyc2UgPD4iIDx0b3Aud2l0aHN1YiB8CisJcGVybCAtZSAicHJpbnQgcmV2ZXJzZSA8PiIgPHRvcC53aXRoc3ViIHwKIAlnaXQgbWt0cmVlID5hY3R1YWwgJiYKIAl0ZXN0X2NtcCB0cmVlLndpdGhzdWIgYWN0dWFsCiAnCmRpZmYgLS1naXQgYS90L3QxMDEzLWxvb3NlLW9iamVjdC1mb3JtYXQuc2ggYi90L3QxMDEzLWxvb3NlLW9iamVjdC1mb3JtYXQuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGZiZjVmMmYuLjAwMDAwMDAKLS0tIGEvdC90MTAxMy1sb29zZS1vYmplY3QtZm9ybWF0LnNoCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotIyEvYmluL3NoCi0jCi0jIENvcHlyaWdodCAoYykgMjAxMSBSb2JlcnRvIFR5bGV5Ci0jCi0KLXRlc3RfZGVzY3JpcHRpb249J0NvcnJlY3RseSBpZGVudGlmeSBhbmQgcGFyc2UgbG9vc2Ugb2JqZWN0IGhlYWRlcnMKLQotVGhlcmUgYXJlIHR3byBmaWxlIGZvcm1hdHMgZm9yIGxvb3NlIG9iamVjdHMgLSB0aGUgb3JpZ2luYWwgc3RhbmRhcmQKLWZvcm1hdCwgYW5kIHRoZSBleHBlcmltZW50YWwgZm9ybWF0IGludHJvZHVjZWQgd2l0aCBHaXQgdjEuNC4zLCBsYXRlcgotZGVwcmVjYXRlZCB3aXRoIHYxLjUuMy4gQWx0aG91Z2ggR2l0IG5vIGxvbmdlciB3cml0ZXMgdGhlCi1leHBlcmltZW50YWwgZm9ybWF0LCBvYmplY3RzIGluIGJvdGggZm9ybWF0cyBtdXN0IGJlIHJlYWQsIHdpdGggdGhlCi1mb3JtYXQgZm9yIGEgZ2l2ZW4gZmlsZSBiZWluZyBkZXRlcm1pbmVkIGJ5IHRoZSBoZWFkZXIuCi0KLURldGVjdGluZyBmaWxlIGZvcm1hdCBiYXNlZCBvbiBoZWFkZXIgaXMgbm90IGVudGlyZWx5IHRyaXZpYWwsIG5vdAotbGVhc3QgYmVjYXVzZSB0aGUgZmlyc3QgYnl0ZSBvZiBhIHpsaWItZGVmbGF0ZWQgc3RyZWFtIHdpbGwgdmFyeQotZGVwZW5kaW5nIG9uIGhvdyBtdWNoIG1lbW9yeSB3YXMgYWxsb2NhdGVkIGZvciB0aGUgZGVmbGF0aW9uIHdpbmRvdwotYnVmZmVyIHdoZW4gdGhlIG9iamVjdCB3YXMgd3JpdHRlbiBvdXQgKGZvciBleGFtcGxlIDRLQiBvbiBBbmRyb2lkLAotcmF0aGVyIHRoYXQgMzJLQiBvbiBhIG5vcm1hbCBQQykuCi0KLVRoZSBsb29zZSBvYmplY3RzIHVzZWQgYXMgdGVzdCB2ZWN0b3JzIGhhdmUgYmVlbiBnZW5lcmF0ZWQgd2l0aCB0aGUKLWZvbGxvd2luZyBHaXQgdmVyc2lvbnM6Ci0KLXN0YW5kYXJkIGZvcm1hdDogR2l0IHYxLjcuNC4xCi1leHBlcmltZW50YWwgZm9ybWF0OiBHaXQgdjEuNC4zIChsZWdhY3loZWFkZXJzPWZhbHNlKQotc3RhbmRhcmQgZm9ybWF0LCBkZWZsYXRlZCB3aXRoIDRLQiB3aW5kb3cgc2l6ZTogQWdpdC9KR2l0IG9uIEFuZHJvaWQKLScKLQotLiAuL3Rlc3QtbGliLnNoCi0KLWFzc2VydF9ibG9iX2VxdWFscygpIHsKLQlwcmludGYgIiVzIiAiJDIiID5leHBlY3RlZCAmJgotCWdpdCBjYXQtZmlsZSAtcCAiJDEiID5hY3R1YWwgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKLX0KLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCi0JY3AgLVIgIiRURVNUX0RJUkVDVE9SWS90MTAxMy9vYmplY3RzIiAuZ2l0LyAmJgotCWdpdCAtLXZlcnNpb24KLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVhZCBzdGFuZGFyZC1mb3JtYXQgbG9vc2Ugb2JqZWN0cycgJwotCWdpdCBjYXQtZmlsZSB0YWcgOGQ0ZTM2MGQ2YzcwZmJkNzI0MTE5OTFjMDJhMDljNDQyY2Y3YTlmYSAmJgotCWdpdCBjYXQtZmlsZSBjb21taXQgNmJhZWUwNTQwZWE5OTBkOTc2MWEzZWI5YWIxODMwMDNhNzFjMzY5NiAmJgotCWdpdCBscy10cmVlIDdhMzdiODg3YTczNzkxZDEyZDI2YzBkM2UzOTU2OGE4ZmIwZmE2ZTggJiYKLQlhc3NlcnRfYmxvYl9lcXVhbHMgIjI1N2NjNTY0MmNiMWEwNTRmMDhjYzgzZjJkOTQzZTU2ZmQzZWJlOTkiICJmb28kTEYiCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYWQgZXhwZXJpbWVudGFsLWZvcm1hdCBsb29zZSBvYmplY3RzJyAnCi0JZ2l0IGNhdC1maWxlIHRhZyA3NmU3ZmE5OTQxZjRkNWY5N2Y2NGZlYTY1YTJjYmE0MzZiYzc5Y2JiICYmCi0JZ2l0IGNhdC1maWxlIGNvbW1pdCA3ODc1YzYyMzdkM2ZjZGQwYWMyZjBkZWNjN2QzZmE2YTUwYjY2YzA5ICYmCi0JZ2l0IGxzLXRyZWUgOTViMTYyNWRlM2JhOGIyMjE0ZDFlMGQwNTkxMTM4YWVhNzMzZjY0ZiAmJgotCWFzc2VydF9ibG9iX2VxdWFscyAiMmU2NWVmZTJhMTQ1ZGRhN2VlNTFkMTc0MTI5OWY4NDhlNWJmNzUyZSIgImEiICYmCi0JYXNzZXJ0X2Jsb2JfZXF1YWxzICI5YWU5ZTg2YjdiZDZjYjE0NzJkOTM3MzcwMmQ4MjQ5OTczZGEwODMyIiAiYWIiICYmCi0JYXNzZXJ0X2Jsb2JfZXF1YWxzICI4NWRmNTA3ODVkNjJkM2IwNWFiMDNkOWNiZjdlNGEwYjQ5NDQ5NzMwIiAiYWJjZCIgJiYKLQlhc3NlcnRfYmxvYl9lcXVhbHMgIjE2NTZmOTIzM2Q5OTlmNjFlZjIzZWYzOTBiOWM3MWQ3NTM5OWY0MzUiICJhYmNkZWZnaCIgJiYKLQlhc3NlcnRfYmxvYl9lcXVhbHMgIjFlNzJhNmIyYzRhNTc3YWIwMzM4ODYwZmE5ZmU4N2Y3NjFmYzliYmQiICJhYmNkZWZnaGkiICYmCi0JYXNzZXJ0X2Jsb2JfZXF1YWxzICI3MGU2YTgzZDhkY2IyNmZjOGJjMGNmNzAyZTJkZGViNmFkY2ExOGZkIiAiYWJjZGVmZ2hpamtsbW5vcCIgJiYKLQlhc3NlcnRfYmxvYl9lcXVhbHMgImJkMTUwNDVmNmNlOGZmNzU3NDc1NjIxNzM2NDA0NTZhMzk0NDEyYzgiICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3giCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYWQgc3RhbmRhcmQtZm9ybWF0IG9iamVjdHMgZGVmbGF0ZWQgd2l0aCBzbWFsbGVyIHdpbmRvdyBidWZmZXInICcKLQlnaXQgY2F0LWZpbGUgdGFnIGY4MTZkNTI1NTg1NWFjMTYwNjUyZWU1MjUzYjA2Y2Q4ZWUxNDE2NWEgJiYKLQlnaXQgY2F0LWZpbGUgdGFnIDE0OWNlZGI1YzQ2OTI5ZDE4ZTBmMTE4ZTlmYTMxOTI3NDg3YWYzYjYKLScKLQotdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QxMDEzL29iamVjdHMvMTQvOWNlZGI1YzQ2OTI5ZDE4ZTBmMTE4ZTlmYTMxOTI3NDg3YWYzYjYgYi90L3QxMDEzL29iamVjdHMvMTQvOWNlZGI1YzQ2OTI5ZDE4ZTBmMTE4ZTlmYTMxOTI3NDg3YWYzYjYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MmZkMTQuLjAwMDAwMDAKLS0tIGEvdC90MTAxMy9vYmplY3RzLzE0LzljZWRiNWM0NjkyOWQxOGUwZjExOGU5ZmEzMTkyNzQ4N2FmM2I2CisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdC90MTAxMy9vYmplY3RzLzE2LzU2ZjkyMzNkOTk5ZjYxZWYyM2VmMzkwYjljNzFkNzUzOTlmNDM1IGIvdC90MTAxMy9vYmplY3RzLzE2LzU2ZjkyMzNkOTk5ZjYxZWYyM2VmMzkwYjljNzFkNzUzOTlmNDM1CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzc5ZDc0Li4wMDAwMDAwCi0tLSBhL3QvdDEwMTMvb2JqZWN0cy8xNi81NmY5MjMzZDk5OWY2MWVmMjNlZjM5MGI5YzcxZDc1Mzk5ZjQzNQorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3QvdDEwMTMvb2JqZWN0cy8xZS83MmE2YjJjNGE1NzdhYjAzMzg4NjBmYTlmZTg3Zjc2MWZjOWJiZCBiL3QvdDEwMTMvb2JqZWN0cy8xZS83MmE2YjJjNGE1NzdhYjAzMzg4NjBmYTlmZTg3Zjc2MWZjOWJiZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTM3MDYzMC4uMDAwMDAwMAotLS0gYS90L3QxMDEzL29iamVjdHMvMWUvNzJhNmIyYzRhNTc3YWIwMzM4ODYwZmE5ZmU4N2Y3NjFmYzliYmQKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90L3QxMDEzL29iamVjdHMvMjUvN2NjNTY0MmNiMWEwNTRmMDhjYzgzZjJkOTQzZTU2ZmQzZWJlOTkgYi90L3QxMDEzL29iamVjdHMvMjUvN2NjNTY0MmNiMWEwNTRmMDhjYzgzZjJkOTQzZTU2ZmQzZWJlOTkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkY2Y3MDQuLjAwMDAwMDAKLS0tIGEvdC90MTAxMy9vYmplY3RzLzI1LzdjYzU2NDJjYjFhMDU0ZjA4Y2M4M2YyZDk0M2U1NmZkM2ViZTk5CisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdC90MTAxMy9vYmplY3RzLzJlLzY1ZWZlMmExNDVkZGE3ZWU1MWQxNzQxMjk5Zjg0OGU1YmY3NTJlIGIvdC90MTAxMy9vYmplY3RzLzJlLzY1ZWZlMmExNDVkZGE3ZWU1MWQxNzQxMjk5Zjg0OGU1YmY3NTJlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDYyYzQzLi4wMDAwMDAwCi0tLSBhL3QvdDEwMTMvb2JqZWN0cy8yZS82NWVmZTJhMTQ1ZGRhN2VlNTFkMTc0MTI5OWY4NDhlNWJmNzUyZQorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3QvdDEwMTMvb2JqZWN0cy82Yi9hZWUwNTQwZWE5OTBkOTc2MWEzZWI5YWIxODMwMDNhNzFjMzY5NiBiL3QvdDEwMTMvb2JqZWN0cy82Yi9hZWUwNTQwZWE5OTBkOTc2MWEzZWI5YWIxODMwMDNhNzFjMzY5NgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2QyZjAzMy4uMDAwMDAwMAotLS0gYS90L3QxMDEzL29iamVjdHMvNmIvYWVlMDU0MGVhOTkwZDk3NjFhM2ViOWFiMTgzMDAzYTcxYzM2OTYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90L3QxMDEzL29iamVjdHMvNzAvZTZhODNkOGRjYjI2ZmM4YmMwY2Y3MDJlMmRkZWI2YWRjYTE4ZmQgYi90L3QxMDEzL29iamVjdHMvNzAvZTZhODNkOGRjYjI2ZmM4YmMwY2Y3MDJlMmRkZWI2YWRjYTE4ZmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzZjcxYTYuLjAwMDAwMDAKLS0tIGEvdC90MTAxMy9vYmplY3RzLzcwL2U2YTgzZDhkY2IyNmZjOGJjMGNmNzAyZTJkZGViNmFkY2ExOGZkCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdC90MTAxMy9vYmplY3RzLzc2L2U3ZmE5OTQxZjRkNWY5N2Y2NGZlYTY1YTJjYmE0MzZiYzc5Y2JiIGIvdC90MTAxMy9vYmplY3RzLzc2L2U3ZmE5OTQxZjRkNWY5N2Y2NGZlYTY1YTJjYmE0MzZiYzc5Y2JiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjRlOWE3Li4wMDAwMDAwCi0tLSBhL3QvdDEwMTMvb2JqZWN0cy83Ni9lN2ZhOTk0MWY0ZDVmOTdmNjRmZWE2NWEyY2JhNDM2YmM3OWNiYgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3QvdDEwMTMvb2JqZWN0cy83OC83NWM2MjM3ZDNmY2RkMGFjMmYwZGVjYzdkM2ZhNmE1MGI2NmMwOSBiL3QvdDEwMTMvb2JqZWN0cy83OC83NWM2MjM3ZDNmY2RkMGFjMmYwZGVjYzdkM2ZhNmE1MGI2NmMwOQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RkMjhiZS4uMDAwMDAwMAotLS0gYS90L3QxMDEzL29iamVjdHMvNzgvNzVjNjIzN2QzZmNkZDBhYzJmMGRlY2M3ZDNmYTZhNTBiNjZjMDkKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90L3QxMDEzL29iamVjdHMvN2EvMzdiODg3YTczNzkxZDEyZDI2YzBkM2UzOTU2OGE4ZmIwZmE2ZTggYi90L3QxMDEzL29iamVjdHMvN2EvMzdiODg3YTczNzkxZDEyZDI2YzBkM2UzOTU2OGE4ZmIwZmE2ZTgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiOTdiMjYuLjAwMDAwMDAKLS0tIGEvdC90MTAxMy9vYmplY3RzLzdhLzM3Yjg4N2E3Mzc5MWQxMmQyNmMwZDNlMzk1NjhhOGZiMGZhNmU4CisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdC90MTAxMy9vYmplY3RzLzg1L2RmNTA3ODVkNjJkM2IwNWFiMDNkOWNiZjdlNGEwYjQ5NDQ5NzMwIGIvdC90MTAxMy9vYmplY3RzLzg1L2RmNTA3ODVkNjJkM2IwNWFiMDNkOWNiZjdlNGEwYjQ5NDQ5NzMwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZGZmNzQ2Li4wMDAwMDAwCi0tLSBhL3QvdDEwMTMvb2JqZWN0cy84NS9kZjUwNzg1ZDYyZDNiMDVhYjAzZDljYmY3ZTRhMGI0OTQ0OTczMAorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3QvdDEwMTMvb2JqZWN0cy84ZC80ZTM2MGQ2YzcwZmJkNzI0MTE5OTFjMDJhMDljNDQyY2Y3YTlmYSBiL3QvdDEwMTMvb2JqZWN0cy84ZC80ZTM2MGQ2YzcwZmJkNzI0MTE5OTFjMDJhMDljNDQyY2Y3YTlmYQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2I0MWU5Mi4uMDAwMDAwMAotLS0gYS90L3QxMDEzL29iamVjdHMvOGQvNGUzNjBkNmM3MGZiZDcyNDExOTkxYzAyYTA5YzQ0MmNmN2E5ZmEKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90L3QxMDEzL29iamVjdHMvOTUvYjE2MjVkZTNiYThiMjIxNGQxZTBkMDU5MTEzOGFlYTczM2Y2NGYgYi90L3QxMDEzL29iamVjdHMvOTUvYjE2MjVkZTNiYThiMjIxNGQxZTBkMDU5MTEzOGFlYTczM2Y2NGYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhYzQ2YjQuLjAwMDAwMDAKLS0tIGEvdC90MTAxMy9vYmplY3RzLzk1L2IxNjI1ZGUzYmE4YjIyMTRkMWUwZDA1OTExMzhhZWE3MzNmNjRmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdC90MTAxMy9vYmplY3RzLzlhL2U5ZTg2YjdiZDZjYjE0NzJkOTM3MzcwMmQ4MjQ5OTczZGEwODMyIGIvdC90MTAxMy9vYmplY3RzLzlhL2U5ZTg2YjdiZDZjYjE0NzJkOTM3MzcwMmQ4MjQ5OTczZGEwODMyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZDgzMTZkLi4wMDAwMDAwCi0tLSBhL3QvdDEwMTMvb2JqZWN0cy85YS9lOWU4NmI3YmQ2Y2IxNDcyZDkzNzM3MDJkODI0OTk3M2RhMDgzMgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3QvdDEwMTMvb2JqZWN0cy9iZC8xNTA0NWY2Y2U4ZmY3NTc0NzU2MjE3MzY0MDQ1NmEzOTQ0MTJjOCBiL3QvdDEwMTMvb2JqZWN0cy9iZC8xNTA0NWY2Y2U4ZmY3NTc0NzU2MjE3MzY0MDQ1NmEzOTQ0MTJjOApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWViZjIzOS4uMDAwMDAwMAotLS0gYS90L3QxMDEzL29iamVjdHMvYmQvMTUwNDVmNmNlOGZmNzU3NDc1NjIxNzM2NDA0NTZhMzk0NDEyYzgKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90L3QxMDEzL29iamVjdHMvZTYvOWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgYi90L3QxMDEzL29iamVjdHMvZTYvOWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzNGNmMTkuLjAwMDAwMDAKLS0tIGEvdC90MTAxMy9vYmplY3RzL2U2LzlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdC90MTAxMy9vYmplY3RzL2Y4LzE2ZDUyNTU4NTVhYzE2MDY1MmVlNTI1M2IwNmNkOGVlMTQxNjVhIGIvdC90MTAxMy9vYmplY3RzL2Y4LzE2ZDUyNTU4NTVhYzE2MDY1MmVlNTI1M2IwNmNkOGVlMTQxNjVhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNmI3NWFlLi4wMDAwMDAwCi0tLSBhL3QvdDEwMTMvb2JqZWN0cy9mOC8xNmQ1MjU1ODU1YWMxNjA2NTJlZTUyNTNiMDZjZDhlZTE0MTY1YQorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3QvdDEzMDAtcmVwby1jb25maWcuc2ggYi90L3QxMzAwLXJlcG8tY29uZmlnLnNoCmluZGV4IGM0YTdkODQuLjk2NzM1OTMgMTAwNzU1Ci0tLSBhL3QvdDEzMDAtcmVwby1jb25maWcuc2gKKysrIGIvdC90MTMwMC1yZXBvLWNvbmZpZy5zaApAQCAtNjUyLDE2ICs2NTIsMjMgQEAKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0taW50IGlzIGF0IGxlYXN0IDY0IGJpdHMnICcKKwlnaXQgY29uZmlnIGdpZ2Eud2F0dHMgMTIxZyAmJgorCWVjaG8gMTI5OTIyNzYwNzA0ID5leHBlY3QgJiYKKwlnaXQgY29uZmlnIC0taW50IC0tZ2V0IGdpZ2Eud2F0dHMgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnaW52YWxpZCB1bml0JyAnCiAJZ2l0IGNvbmZpZyBhbmludmFsaWQudW5pdCAiMWF1dG8iICYmCiAJZWNobyAxYXV0byA+ZXhwZWN0ICYmCiAJZ2l0IGNvbmZpZyBhbmludmFsaWQudW5pdCA+YWN0dWFsICYmCiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgotCWNhdCA+IGV4cGVjdCA8PC1cRU9GCi0JZmF0YWw6IGJhZCBjb25maWcgdmFsdWUgZm9yICdcJydhbmludmFsaWQudW5pdCdcJycgaW4gLmdpdC9jb25maWcKKwljYXQgPmV4cGVjdCA8PC1cRU9GCisJZmF0YWw6IGJhZCBudW1lcmljIGNvbmZpZyB2YWx1ZSAnXCcnMWF1dG8nXCcnIGZvciAnXCcnYW5pbnZhbGlkLnVuaXQnXCcnIGluIC5naXQvY29uZmlnOiBpbnZhbGlkIHVuaXQKIAlFT0YKIAl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIC0taW50IC0tZ2V0IGFuaW52YWxpZC51bml0IDI+YWN0dWFsICYmCi0JdGVzdF9jbXAgYWN0dWFsIGV4cGVjdAorCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCiAnCiAKIGNhdCA+IGV4cGVjdCA8PCBFT0YKQEAgLTEwODcsNiArMTA5NCwzMSBAQAogCWdyZXAgIiBsaW5lIDMgIiBlcnJvcgogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1cmxtYXRjaCcgJworCWNhdCA+LmdpdC9jb25maWcgPDwtXEVPRiAmJgorCVtodHRwXQorCQlzc2xWZXJpZnkKKwlbaHR0cCAiaHR0cHM6Ly93ZWFrLmV4YW1wbGUuY29tIl0KKwkJc3NsVmVyaWZ5ID0gZmFsc2UKKwkJY29va2llRmlsZSA9IC90bXAvY29va2llLnR4dAorCUVPRgorCisJZWNobyB0cnVlID5leHBlY3QgJiYKKwlnaXQgY29uZmlnIC0tYm9vbCAtLWdldC11cmxtYXRjaCBodHRwLlNTTHZlcmlmeSBodHRwczovL2dvb2QuZXhhbXBsZS5jb20gPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCWVjaG8gZmFsc2UgPmV4cGVjdCAmJgorCWdpdCBjb25maWcgLS1ib29sIC0tZ2V0LXVybG1hdGNoIGh0dHAuc3NsdmVyaWZ5IGh0dHBzOi8vd2Vhay5leGFtcGxlLmNvbSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJeworCQllY2hvIGh0dHAuY29va2llZmlsZSAvdG1wL2Nvb2tpZS50eHQgJiYKKwkJZWNobyBodHRwLnNzbHZlcmlmeSBmYWxzZQorCX0gPmV4cGVjdCAmJgorCWdpdCBjb25maWcgLS1nZXQtdXJsbWF0Y2ggSFRUUCBodHRwczovL3dlYWsuZXhhbXBsZS5jb20gPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogIyBnb29kIHNlY3Rpb24gaHlnaWVuZQogdGVzdF9leHBlY3RfZmFpbHVyZSAndW5zZXR0aW5nIHRoZSBsYXN0IGtleSBpbiBhIHNlY3Rpb24gcmVtb3ZlcyBoZWFkZXInICcKIAljYXQgPi5naXQvY29uZmlnIDw8LVxFT0YgJiYKZGlmZiAtLWdpdCBhL3QvdDEzMDMtd2Fja3ktY29uZmlnLnNoIGIvdC90MTMwMy13YWNreS1jb25maWcuc2gKaW5kZXggNDYxMDNhMS4uM2EyYzgxOSAxMDA3NTUKLS0tIGEvdC90MTMwMy13YWNreS1jb25maWcuc2gKKysrIGIvdC90MTMwMy13YWNreS1jb25maWcuc2gKQEAgLTMsMTcgKzMsMjggQEAKIHRlc3RfZGVzY3JpcHRpb249J1Rlc3Qgd2Fja3kgaW5wdXQgdG8gZ2l0IGNvbmZpZycKIC4gLi90ZXN0LWxpYi5zaAogCisjIExlYXZpbmcgb2ZmIHRoZSBuZXdsaW5lIGlzIGludGVudGlvbmFsIQogc2V0dXAoKSB7CiAJKHByaW50ZiAiW3NlY3Rpb25dXG4iICYmCiAJcHJpbnRmICIgIGtleSA9IGZvbyIpID4uZ2l0L2NvbmZpZwogfQogCisjICdjaGVjayBzZWN0aW9uLmtleSB2YWx1ZScgdmVyaWZpZXMgdGhhdCB0aGUgZW50cnkgZm9yIHNlY3Rpb24ua2V5IGlzCisjICd2YWx1ZScKIGNoZWNrKCkgewogCWVjaG8gIiQyIiA+ZXhwZWN0ZWQKIAlnaXQgY29uZmlnIC0tZ2V0ICIkMSIgPmFjdHVhbCAyPiYxCiAJdGVzdF9jbXAgYWN0dWFsIGV4cGVjdGVkCiB9CiAKKyMgJ2NoZWNrIHNlY3Rpb24ua2V5IHJlZ2V4IHZhbHVlJyB2ZXJpZmllcyB0aGF0IHRoZSBlbnRyeSBmb3IKKyMgc2VjdGlvbi5rZXkgKnRoYXQgbWF0Y2hlcyAncmVnZXgnKiBpcyAndmFsdWUnCitjaGVja19yZWdleCgpIHsKKwllY2hvICIkMyIgPmV4cGVjdGVkCisJZ2l0IGNvbmZpZyAtLWdldCAiJDEiICIkMiIgPmFjdHVhbCAyPiYxCisJdGVzdF9jbXAgYWN0dWFsIGV4cGVjdGVkCit9CisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21vZGlmeSBzYW1lIGtleScgJwogCXNldHVwICYmCiAJZ2l0IGNvbmZpZyBzZWN0aW9uLmtleSBiYXIgJiYKQEAgLTQ3LDQgKzU4LDU3IEBACiAJY2hlY2sgc2VjdGlvbi5rZXkgIiRMT05HX1ZBTFVFIgogJwogCitzZXR1cF9tYW55KCkgeworCXNldHVwICYmCisJIyBUaGlzIHRpbWUgd2Ugd2FudCB0aGUgbmV3bGluZSBzbyB0aGF0IHdlIGNhbiB0YWNrIG9uIG1vcmUKKwkjIGVudHJpZXMuCisJZWNobyA+Pi5naXQvY29uZmlnICYmCisJIyBTZW1pLWVmZmljaWVudCB3YXkgb2YgY29uY2F0ZW5hdGluZyA1XjUgPSAzMTI1IGxpbmVzLiBOb3RlCisJIyB0aGF0IGJlY2F1c2UgJ3NldHVwJyBhbHJlYWR5IHB1dCBvbmUgbGluZSwgdGhpcyBtZWFucyAzMTI2CisJIyBlbnRyaWVzIGZvciBzZWN0aW9uLmtleSBpbiB0aGUgY29uZmlnIGZpbGUuCisJY2F0ID41dG8xIDw8LVxFT0YgJiYKKwkgIGtleSA9IGZvbworCSAga2V5ID0gZm9vCisJICBrZXkgPSBmb28KKwkgIGtleSA9IGZvbworCSAga2V5ID0gZm9vCisJRU9GCisJY2F0IDV0bzEgNXRvMSA1dG8xIDV0bzEgNXRvMSA+NXRvMiAmJgkgICAjIDI1CisJY2F0IDV0bzIgNXRvMiA1dG8yIDV0bzIgNXRvMiA+NXRvMyAmJgkgICAjIDEyNQorCWNhdCA1dG8zIDV0bzMgNXRvMyA1dG8zIDV0bzMgPjV0bzQgJiYJICAgIyA2MzUKKwljYXQgNXRvNCA1dG80IDV0bzQgNXRvNCA1dG80ID4+LmdpdC9jb25maWcgIyAzMTI1Cit9CisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dldCBtYW55IGVudHJpZXMnICcKKwlzZXR1cF9tYW55ICYmCisJZ2l0IGNvbmZpZyAtLWdldC1hbGwgc2VjdGlvbi5rZXkgPmFjdHVhbCAmJgorCXRlc3RfbGluZV9jb3VudCA9IDMxMjYgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dldCBtYW55IGVudHJpZXMgYnkgcmVnZXgnICcKKwlzZXR1cF9tYW55ICYmCisJZ2l0IGNvbmZpZyAtLWdldC1yZWdleHAgInNlYy4qa2UuIiA+YWN0dWFsICYmCisJdGVzdF9saW5lX2NvdW50ID0gMzEyNiBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYWRkIGFuZCByZXBsYWNlIG9uZSBvZiBtYW55IGVudHJpZXMnICcKKwlzZXR1cF9tYW55ICYmCisJZ2l0IGNvbmZpZyAtLWFkZCBzZWN0aW9uLmtleSBiYXIgJiYKKwljaGVja19yZWdleCBzZWN0aW9uLmtleSAiYi4qciIgYmFyICYmCisJZ2l0IGNvbmZpZyBzZWN0aW9uLmtleSBiZWVyICJiLipyIiAmJgorCWNoZWNrX3JlZ2V4IHNlY3Rpb24ua2V5ICJiLipyIiBiZWVyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlcGxhY2UgbWFueSBlbnRyaWVzJyAnCisJc2V0dXBfbWFueSAmJgorCWdpdCBjb25maWcgLS1yZXBsYWNlLWFsbCBzZWN0aW9uLmtleSBiYXIgJiYKKwljaGVjayBzZWN0aW9uLmtleSBiYXIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndW5zZXQgbWFueSBlbnRyaWVzJyAnCisJc2V0dXBfbWFueSAmJgorCWdpdCBjb25maWcgLS11bnNldC1hbGwgc2VjdGlvbi5rZXkgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIHNlY3Rpb24ua2V5CisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MTQwMC11cGRhdGUtcmVmLnNoIGIvdC90MTQwMC11cGRhdGUtcmVmLnNoCmluZGV4IGU0MTVlZTAuLjZmZmQ4MmYgMTAwNzU1Ci0tLSBhL3QvdDE0MDAtdXBkYXRlLXJlZi5zaAorKysgYi90L3QxNDAwLXVwZGF0ZS1yZWYuc2gKQEAgLTMwMiw0ICszMDIsNjM2IEBACiAJJ2dpdCBjYXQtZmlsZSBibG9iIG1hc3RlckB7MjAwNS0wNS0yNiAyMzo0Mn06RiAoZXhwZWN0IE9USEVSKScgXAogCSd0ZXN0IE9USEVSID0gJChnaXQgY2F0LWZpbGUgYmxvYiAibWFzdGVyQHsyMDA1LTA1LTI2IDIzOjQyfTpGIiknCiAKK2E9cmVmcy9oZWFkcy9hCitiPXJlZnMvaGVhZHMvYgorYz1yZWZzL2hlYWRzL2MKK0U9JyIiJworRj0nJXNcMCcKK3B3cz0ncGF0aCB3aXRoIHNwYWNlJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiB0ZXN0IHNldHVwJyAnCisJZWNobyAiJHB3cyIgPiIkcHdzIiAmJgorCWdpdCBhZGQgLS0gIiRwd3MiICYmCisJZ2l0IGNvbW1pdCAtbSAiJHB3cyIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnLXogZmFpbHMgd2l0aG91dCAtLXN0ZGluJyAnCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHVwZGF0ZS1yZWYgLXogJG0gJG0gJG0gMj5lcnIgJiYKKwlncmVwICJ1c2FnZTogZ2l0IHVwZGF0ZS1yZWYiIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiB3b3JrcyB3aXRoIG5vIGlucHV0JyAnCisJPnN0ZGluICYmCisJZ2l0IHVwZGF0ZS1yZWYgLS1zdGRpbiA8c3RkaW4gJiYKKwlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC1xICRtCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIGZhaWxzIG9uIGVtcHR5IGxpbmUnICcKKwllY2hvICIiID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IGVtcHR5IGNvbW1hbmQgaW4gaW5wdXQiIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiBmYWlscyBvbiBvbmx5IHdoaXRlc3BhY2UnICcKKwllY2hvICIgIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiB3aGl0ZXNwYWNlIGJlZm9yZSBjb21tYW5kOiAgIiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZmFpbHMgb24gbGVhZGluZyB3aGl0ZXNwYWNlJyAnCisJZWNobyAiIGNyZWF0ZSAkYSAkbSIgPnN0ZGluICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHVwZGF0ZS1yZWYgLS1zdGRpbiA8c3RkaW4gMj5lcnIgJiYKKwlncmVwICJmYXRhbDogd2hpdGVzcGFjZSBiZWZvcmUgY29tbWFuZDogIGNyZWF0ZSAkYSAkbSIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIGZhaWxzIG9uIHVua25vd24gY29tbWFuZCcgJworCWVjaG8gInVua25vd24gJGEiID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IHVua25vd24gY29tbWFuZDogdW5rbm93biAkYSIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIGZhaWxzIG9uIGJhZGx5IHF1b3RlZCBpbnB1dCcgJworCWVjaG8gImNyZWF0ZSAkYSBcIm1hc3RlciIgPnN0ZGluICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHVwZGF0ZS1yZWYgLS1zdGRpbiA8c3RkaW4gMj5lcnIgJiYKKwlncmVwICJmYXRhbDogYmFkbHkgcXVvdGVkIGFyZ3VtZW50OiBcXFwibWFzdGVyIiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZmFpbHMgb24gYXJndW1lbnRzIG5vdCBzZXBhcmF0ZWQgYnkgc3BhY2UnICcKKwllY2hvICJjcmVhdGUgXCIkYVwibWFzdGVyIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBleHBlY3RlZCBTUCBidXQgZ290OiBtYXN0ZXIiIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiBmYWlscyBjcmVhdGUgd2l0aCBubyByZWYnICcKKwllY2hvICJjcmVhdGUgIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBjcmVhdGUgbGluZSBtaXNzaW5nIDxyZWY+IiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZmFpbHMgY3JlYXRlIHdpdGggYmFkIHJlZiBuYW1lJyAnCisJZWNobyAiY3JlYXRlIH5hICRtIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBpbnZhbGlkIHJlZiBmb3JtYXQ6IH5hIiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZmFpbHMgY3JlYXRlIHdpdGggbm8gbmV3IHZhbHVlJyAnCisJZWNobyAiY3JlYXRlICRhIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBjcmVhdGUgJGEgbWlzc2luZyA8bmV3dmFsdWU+IiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZmFpbHMgY3JlYXRlIHdpdGggdG9vIG1hbnkgYXJndW1lbnRzJyAnCisJZWNobyAiY3JlYXRlICRhICRtICRtIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBjcmVhdGUgJGEgaGFzIGV4dHJhIGlucHV0OiAgJG0iIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiBmYWlscyB1cGRhdGUgd2l0aCBubyByZWYnICcKKwllY2hvICJ1cGRhdGUgIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiB1cGRhdGUgbGluZSBtaXNzaW5nIDxyZWY+IiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZmFpbHMgdXBkYXRlIHdpdGggYmFkIHJlZiBuYW1lJyAnCisJZWNobyAidXBkYXRlIH5hICRtIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBpbnZhbGlkIHJlZiBmb3JtYXQ6IH5hIiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZmFpbHMgdXBkYXRlIHdpdGggbm8gbmV3IHZhbHVlJyAnCisJZWNobyAidXBkYXRlICRhIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiB1cGRhdGUgJGEgbWlzc2luZyA8bmV3dmFsdWU+IiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZmFpbHMgdXBkYXRlIHdpdGggdG9vIG1hbnkgYXJndW1lbnRzJyAnCisJZWNobyAidXBkYXRlICRhICRtICRtICRtIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiB1cGRhdGUgJGEgaGFzIGV4dHJhIGlucHV0OiAgJG0iIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiBmYWlscyBkZWxldGUgd2l0aCBubyByZWYnICcKKwllY2hvICJkZWxldGUgIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBkZWxldGUgbGluZSBtaXNzaW5nIDxyZWY+IiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZmFpbHMgZGVsZXRlIHdpdGggYmFkIHJlZiBuYW1lJyAnCisJZWNobyAiZGVsZXRlIH5hICRtIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBpbnZhbGlkIHJlZiBmb3JtYXQ6IH5hIiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZmFpbHMgZGVsZXRlIHdpdGggdG9vIG1hbnkgYXJndW1lbnRzJyAnCisJZWNobyAiZGVsZXRlICRhICRtICRtIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBkZWxldGUgJGEgaGFzIGV4dHJhIGlucHV0OiAgJG0iIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiBmYWlscyB2ZXJpZnkgd2l0aCB0b28gbWFueSBhcmd1bWVudHMnICcKKwllY2hvICJ2ZXJpZnkgJGEgJG0gJG0iID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IHZlcmlmeSAkYSBoYXMgZXh0cmEgaW5wdXQ6ICAkbSIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIGZhaWxzIG9wdGlvbiB3aXRoIHVua25vd24gbmFtZScgJworCWVjaG8gIm9wdGlvbiB1bmtub3duIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBvcHRpb24gdW5rbm93bjogdW5rbm93biIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIGZhaWxzIHdpdGggZHVwbGljYXRlIHJlZnMnICcKKwljYXQgPnN0ZGluIDw8LUVPRiAmJgorCWNyZWF0ZSAkYSAkbQorCWNyZWF0ZSAkYiAkbQorCWNyZWF0ZSAkYSAkbQorCUVPRgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IE11bHRpcGxlIHVwZGF0ZXMgZm9yIHJlZiAnIiciJyRhJyInIicgbm90IGFsbG93ZWQuIiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gY3JlYXRlIHJlZiB3b3JrcycgJworCWVjaG8gImNyZWF0ZSAkYSAkbSIgPnN0ZGluICYmCisJZ2l0IHVwZGF0ZS1yZWYgLS1zdGRpbiA8c3RkaW4gJiYKKwlnaXQgcmV2LXBhcnNlICRtID5leHBlY3QgJiYKKwlnaXQgcmV2LXBhcnNlICRhID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIHVwZGF0ZSByZWYgY3JlYXRlcyB3aXRoIHplcm8gb2xkIHZhbHVlJyAnCisJZWNobyAidXBkYXRlICRiICRtICRaIiA+c3RkaW4gJiYKKwlnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAmJgorCWdpdCByZXYtcGFyc2UgJG0gPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgJGIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwlnaXQgdXBkYXRlLXJlZiAtZCAkYgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiB1cGRhdGUgcmVmIGNyZWF0ZXMgd2l0aCBlbXB0eSBvbGQgdmFsdWUnICcKKwllY2hvICJ1cGRhdGUgJGIgJG0gJEUiID5zdGRpbiAmJgorCWdpdCB1cGRhdGUtcmVmIC0tc3RkaW4gPHN0ZGluICYmCisJZ2l0IHJldi1wYXJzZSAkbSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1wYXJzZSAkYiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiBjcmVhdGUgcmVmIHdvcmtzIHdpdGggcGF0aCB3aXRoIHNwYWNlIHRvIGJsb2InICcKKwllY2hvICJjcmVhdGUgcmVmcy9ibG9icy9wd3MgXCIkbTokcHdzXCIiID5zdGRpbiAmJgorCWdpdCB1cGRhdGUtcmVmIC0tc3RkaW4gPHN0ZGluICYmCisJZ2l0IHJldi1wYXJzZSAiJG06JHB3cyIgPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgcmVmcy9ibG9icy9wd3MgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwlnaXQgdXBkYXRlLXJlZiAtZCByZWZzL2Jsb2JzL3B3cworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiB1cGRhdGUgcmVmIGZhaWxzIHdpdGggd3Jvbmcgb2xkIHZhbHVlJyAnCisJZWNobyAidXBkYXRlICRjICRtICRtfjEiID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IENhbm5vdCBsb2NrIHRoZSByZWYgJyInIickYyciJyInIiBlcnIgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC1xICRjCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIHVwZGF0ZSByZWYgZmFpbHMgd2l0aCBiYWQgb2xkIHZhbHVlJyAnCisJZWNobyAidXBkYXRlICRjICRtIGRvZXMtbm90LWV4aXN0IiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBpbnZhbGlkIG9sZCB2YWx1ZSBmb3IgcmVmICRjOiBkb2VzLW5vdC1leGlzdCIgZXJyICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtcSAkYworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiBjcmVhdGUgcmVmIGZhaWxzIHdpdGggYmFkIG5ldyB2YWx1ZScgJworCWVjaG8gImNyZWF0ZSAkYyBkb2VzLW5vdC1leGlzdCIgPnN0ZGluICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHVwZGF0ZS1yZWYgLS1zdGRpbiA8c3RkaW4gMj5lcnIgJiYKKwlncmVwICJmYXRhbDogaW52YWxpZCBuZXcgdmFsdWUgZm9yIHJlZiAkYzogZG9lcy1ub3QtZXhpc3QiIGVyciAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLXEgJGMKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gY3JlYXRlIHJlZiBmYWlscyB3aXRoIHplcm8gbmV3IHZhbHVlJyAnCisJZWNobyAiY3JlYXRlICRjICIgPnN0ZGluICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHVwZGF0ZS1yZWYgLS1zdGRpbiA8c3RkaW4gMj5lcnIgJiYKKwlncmVwICJmYXRhbDogY3JlYXRlICRjIGdpdmVuIHplcm8gbmV3IHZhbHVlIiBlcnIgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC1xICRjCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIHVwZGF0ZSByZWYgd29ya3Mgd2l0aCByaWdodCBvbGQgdmFsdWUnICcKKwllY2hvICJ1cGRhdGUgJGIgJG1+MSAkbSIgPnN0ZGluICYmCisJZ2l0IHVwZGF0ZS1yZWYgLS1zdGRpbiA8c3RkaW4gJiYKKwlnaXQgcmV2LXBhcnNlICRtfjEgPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgJGIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZGVsZXRlIHJlZiBmYWlscyB3aXRoIHdyb25nIG9sZCB2YWx1ZScgJworCWVjaG8gImRlbGV0ZSAkYSAkbX4xIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBDYW5ub3QgbG9jayB0aGUgcmVmICciJyInJGEnIiciJyIgZXJyICYmCisJZ2l0IHJldi1wYXJzZSAkbSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1wYXJzZSAkYSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiBkZWxldGUgcmVmIGZhaWxzIHdpdGggemVybyBvbGQgdmFsdWUnICcKKwllY2hvICJkZWxldGUgJGEgIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBkZWxldGUgJGEgZ2l2ZW4gemVybyBvbGQgdmFsdWUiIGVyciAmJgorCWdpdCByZXYtcGFyc2UgJG0gPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgJGEgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gdXBkYXRlIHN5bXJlZiB3b3JrcyBvcHRpb24gbm8tZGVyZWYnICcKKwlnaXQgc3ltYm9saWMtcmVmIFRFU1RTWU1SRUYgJGIgJiYKKwljYXQgPnN0ZGluIDw8LUVPRiAmJgorCW9wdGlvbiBuby1kZXJlZgorCXVwZGF0ZSBURVNUU1lNUkVGICRhICRiCisJRU9GCisJZ2l0IHVwZGF0ZS1yZWYgLS1zdGRpbiA8c3RkaW4gJiYKKwlnaXQgcmV2LXBhcnNlIFRFU1RTWU1SRUYgPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgJGEgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwlnaXQgcmV2LXBhcnNlICRtfjEgPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgJGIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZGVsZXRlIHN5bXJlZiB3b3JrcyBvcHRpb24gbm8tZGVyZWYnICcKKwlnaXQgc3ltYm9saWMtcmVmIFRFU1RTWU1SRUYgJGIgJiYKKwljYXQgPnN0ZGluIDw8LUVPRiAmJgorCW9wdGlvbiBuby1kZXJlZgorCWRlbGV0ZSBURVNUU1lNUkVGICRiCisJRU9GCisJZ2l0IHVwZGF0ZS1yZWYgLS1zdGRpbiA8c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC1xIFRFU1RTWU1SRUYgJiYKKwlnaXQgcmV2LXBhcnNlICRtfjEgPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgJGIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZGVsZXRlIHJlZiB3b3JrcyB3aXRoIHJpZ2h0IG9sZCB2YWx1ZScgJworCWVjaG8gImRlbGV0ZSAkYiAkbX4xIiA+c3RkaW4gJiYKKwlnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLXEgJGIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gdXBkYXRlL2NyZWF0ZS92ZXJpZnkgY29tYmluYXRpb24gd29ya3MnICcKKwljYXQgPnN0ZGluIDw8LUVPRiAmJgorCXVwZGF0ZSAkYSAkbQorCWNyZWF0ZSAkYiAkbQorCXZlcmlmeSAkYworCUVPRgorCWdpdCB1cGRhdGUtcmVmIC0tc3RkaW4gPHN0ZGluICYmCisJZ2l0IHJldi1wYXJzZSAkbSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1wYXJzZSAkYSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCWdpdCByZXYtcGFyc2UgJGIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC1xICRjCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIHVwZGF0ZSByZWZzIHdvcmtzIHdpdGggaWRlbnRpdHkgdXBkYXRlcycgJworCWNhdCA+c3RkaW4gPDwtRU9GICYmCisJdXBkYXRlICRhICRtICRtCisJdXBkYXRlICRiICRtICRtCisJdXBkYXRlICRjICRaICRFCisJRU9GCisJZ2l0IHVwZGF0ZS1yZWYgLS1zdGRpbiA8c3RkaW4gJiYKKwlnaXQgcmV2LXBhcnNlICRtID5leHBlY3QgJiYKKwlnaXQgcmV2LXBhcnNlICRhID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisJZ2l0IHJldi1wYXJzZSAkYiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLXEgJGMKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gdXBkYXRlIHJlZnMgZmFpbHMgd2l0aCB3cm9uZyBvbGQgdmFsdWUnICcKKwlnaXQgdXBkYXRlLXJlZiAkYyAkbSAmJgorCWNhdCA+c3RkaW4gPDwtRU9GICYmCisJdXBkYXRlICRhICRtICRtCisJdXBkYXRlICRiICRtICRtCisJdXBkYXRlICRjICAnJworCUVPRgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IENhbm5vdCBsb2NrIHRoZSByZWYgJyInIickYyciJyInIiBlcnIgJiYKKwlnaXQgcmV2LXBhcnNlICRtID5leHBlY3QgJiYKKwlnaXQgcmV2LXBhcnNlICRhID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisJZ2l0IHJldi1wYXJzZSAkYiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCWdpdCByZXYtcGFyc2UgJGMgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gZGVsZXRlIHJlZnMgd29ya3Mgd2l0aCBwYWNrZWQgYW5kIGxvb3NlIHJlZnMnICcKKwlnaXQgcGFjay1yZWZzIC0tYWxsICYmCisJZ2l0IHVwZGF0ZS1yZWYgJGMgJG1+MSAmJgorCWNhdCA+c3RkaW4gPDwtRU9GICYmCisJZGVsZXRlICRhICRtCisJdXBkYXRlICRiICRaICRtCisJdXBkYXRlICRjICRFICRtfjEKKwlFT0YKKwlnaXQgdXBkYXRlLXJlZiAtLXN0ZGluIDxzdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLXEgJGEgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC1xICRiICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtcSAkYworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiB3b3JrcyBvbiBlbXB0eSBpbnB1dCcgJworCT5zdGRpbiAmJgorCWdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluICYmCisJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtcSAkbQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiBmYWlscyBvbiBlbXB0eSBsaW5lJyAnCisJZWNobyAiIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiB3aGl0ZXNwYWNlIGJlZm9yZSBjb21tYW5kOiAiIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiBmYWlscyBvbiBlbXB0eSBjb21tYW5kJyAnCisJcHJpbnRmICRGICIiID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IGVtcHR5IGNvbW1hbmQgaW4gaW5wdXQiIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiBmYWlscyBvbiBvbmx5IHdoaXRlc3BhY2UnICcKKwlwcmludGYgJEYgIiAiID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IHdoaXRlc3BhY2UgYmVmb3JlIGNvbW1hbmQ6ICAiIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiBmYWlscyBvbiBsZWFkaW5nIHdoaXRlc3BhY2UnICcKKwlwcmludGYgJEYgIiBjcmVhdGUgJGEiICIkbSIgPnN0ZGluICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHVwZGF0ZS1yZWYgLXogLS1zdGRpbiA8c3RkaW4gMj5lcnIgJiYKKwlncmVwICJmYXRhbDogd2hpdGVzcGFjZSBiZWZvcmUgY29tbWFuZDogIGNyZWF0ZSAkYSIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IGZhaWxzIG9uIHVua25vd24gY29tbWFuZCcgJworCXByaW50ZiAkRiAidW5rbm93biAkYSIgPnN0ZGluICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHVwZGF0ZS1yZWYgLXogLS1zdGRpbiA8c3RkaW4gMj5lcnIgJiYKKwlncmVwICJmYXRhbDogdW5rbm93biBjb21tYW5kOiB1bmtub3duICRhIiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gLXogZmFpbHMgY3JlYXRlIHdpdGggbm8gcmVmJyAnCisJcHJpbnRmICRGICJjcmVhdGUgIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBjcmVhdGUgbGluZSBtaXNzaW5nIDxyZWY+IiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gLXogZmFpbHMgY3JlYXRlIHdpdGggYmFkIHJlZiBuYW1lJyAnCisJcHJpbnRmICRGICJjcmVhdGUgfmEgIiAiJG0iID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IGludmFsaWQgcmVmIGZvcm1hdDogfmEgIiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gLXogZmFpbHMgY3JlYXRlIHdpdGggbm8gbmV3IHZhbHVlJyAnCisJcHJpbnRmICRGICJjcmVhdGUgJGEiID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IGNyZWF0ZSAkYSBtaXNzaW5nIDxuZXd2YWx1ZT4iIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiBmYWlscyBjcmVhdGUgd2l0aCB0b28gbWFueSBhcmd1bWVudHMnICcKKwlwcmludGYgJEYgImNyZWF0ZSAkYSIgIiRtIiAiJG0iID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IHVua25vd24gY29tbWFuZDogJG0iIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiBmYWlscyB1cGRhdGUgd2l0aCBubyByZWYnICcKKwlwcmludGYgJEYgInVwZGF0ZSAiID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IHVwZGF0ZSBsaW5lIG1pc3NpbmcgPHJlZj4iIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiBmYWlscyB1cGRhdGUgd2l0aCBiYWQgcmVmIG5hbWUnICcKKwlwcmludGYgJEYgInVwZGF0ZSB+YSIgIiRtIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBpbnZhbGlkIHJlZiBmb3JtYXQ6IH5hIiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gLXogZmFpbHMgdXBkYXRlIHdpdGggbm8gbmV3IHZhbHVlJyAnCisJcHJpbnRmICRGICJ1cGRhdGUgJGEiID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IHVwZGF0ZSAkYSBtaXNzaW5nIDxuZXd2YWx1ZT4iIGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiBmYWlscyB1cGRhdGUgd2l0aCBubyBvbGQgdmFsdWUnICcKKwlwcmludGYgJEYgInVwZGF0ZSAkYSIgIiRtIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiB1cGRhdGUgJGEgbWlzc2luZyBcXFs8b2xkdmFsdWU+XFxdIE5VTCIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IGZhaWxzIHVwZGF0ZSB3aXRoIHRvbyBtYW55IGFyZ3VtZW50cycgJworCXByaW50ZiAkRiAidXBkYXRlICRhIiAiJG0iICIkbSIgIiRtIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiB1bmtub3duIGNvbW1hbmQ6ICRtIiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gLXogZmFpbHMgZGVsZXRlIHdpdGggbm8gcmVmJyAnCisJcHJpbnRmICRGICJkZWxldGUgIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBkZWxldGUgbGluZSBtaXNzaW5nIDxyZWY+IiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gLXogZmFpbHMgZGVsZXRlIHdpdGggYmFkIHJlZiBuYW1lJyAnCisJcHJpbnRmICRGICJkZWxldGUgfmEiICIkbSIgPnN0ZGluICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHVwZGF0ZS1yZWYgLXogLS1zdGRpbiA8c3RkaW4gMj5lcnIgJiYKKwlncmVwICJmYXRhbDogaW52YWxpZCByZWYgZm9ybWF0OiB+YSIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IGZhaWxzIGRlbGV0ZSB3aXRoIG5vIG9sZCB2YWx1ZScgJworCXByaW50ZiAkRiAiZGVsZXRlICRhIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBkZWxldGUgJGEgbWlzc2luZyBcXFs8b2xkdmFsdWU+XFxdIE5VTCIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IGZhaWxzIGRlbGV0ZSB3aXRoIHRvbyBtYW55IGFyZ3VtZW50cycgJworCXByaW50ZiAkRiAiZGVsZXRlICRhIiAiJG0iICIkbSIgPnN0ZGluICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHVwZGF0ZS1yZWYgLXogLS1zdGRpbiA8c3RkaW4gMj5lcnIgJiYKKwlncmVwICJmYXRhbDogdW5rbm93biBjb21tYW5kOiAkbSIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IGZhaWxzIHZlcmlmeSB3aXRoIHRvbyBtYW55IGFyZ3VtZW50cycgJworCXByaW50ZiAkRiAidmVyaWZ5ICRhIiAiJG0iICIkbSIgPnN0ZGluICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHVwZGF0ZS1yZWYgLXogLS1zdGRpbiA8c3RkaW4gMj5lcnIgJiYKKwlncmVwICJmYXRhbDogdW5rbm93biBjb21tYW5kOiAkbSIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IGZhaWxzIHZlcmlmeSB3aXRoIG5vIG9sZCB2YWx1ZScgJworCXByaW50ZiAkRiAidmVyaWZ5ICRhIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiB2ZXJpZnkgJGEgbWlzc2luZyBcXFs8b2xkdmFsdWU+XFxdIE5VTCIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IGZhaWxzIG9wdGlvbiB3aXRoIHVua25vd24gbmFtZScgJworCXByaW50ZiAkRiAib3B0aW9uIHVua25vd24iID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IG9wdGlvbiB1bmtub3duOiB1bmtub3duIiBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gLXogZmFpbHMgd2l0aCBkdXBsaWNhdGUgcmVmcycgJworCXByaW50ZiAkRiAiY3JlYXRlICRhIiAiJG0iICJjcmVhdGUgJGIiICIkbSIgImNyZWF0ZSAkYSIgIiRtIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBNdWx0aXBsZSB1cGRhdGVzIGZvciByZWYgJyInIickYSciJyInIG5vdCBhbGxvd2VkLiIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IGNyZWF0ZSByZWYgd29ya3MnICcKKwlwcmludGYgJEYgImNyZWF0ZSAkYSIgIiRtIiA+c3RkaW4gJiYKKwlnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAmJgorCWdpdCByZXYtcGFyc2UgJG0gPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgJGEgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gLXogdXBkYXRlIHJlZiBjcmVhdGVzIHdpdGggemVybyBvbGQgdmFsdWUnICcKKwlwcmludGYgJEYgInVwZGF0ZSAkYiIgIiRtIiAiJFoiID5zdGRpbiAmJgorCWdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluICYmCisJZ2l0IHJldi1wYXJzZSAkbSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1wYXJzZSAkYiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCWdpdCB1cGRhdGUtcmVmIC1kICRiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IHVwZGF0ZSByZWYgY3JlYXRlcyB3aXRoIGVtcHR5IG9sZCB2YWx1ZScgJworCXByaW50ZiAkRiAidXBkYXRlICRiIiAiJG0iICIiID5zdGRpbiAmJgorCWdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluICYmCisJZ2l0IHJldi1wYXJzZSAkbSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1wYXJzZSAkYiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiBjcmVhdGUgcmVmIHdvcmtzIHdpdGggcGF0aCB3aXRoIHNwYWNlIHRvIGJsb2InICcKKwlwcmludGYgJEYgImNyZWF0ZSByZWZzL2Jsb2JzL3B3cyIgIiRtOiRwd3MiID5zdGRpbiAmJgorCWdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluICYmCisJZ2l0IHJldi1wYXJzZSAiJG06JHB3cyIgPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgcmVmcy9ibG9icy9wd3MgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwlnaXQgdXBkYXRlLXJlZiAtZCByZWZzL2Jsb2JzL3B3cworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiB1cGRhdGUgcmVmIGZhaWxzIHdpdGggd3Jvbmcgb2xkIHZhbHVlJyAnCisJcHJpbnRmICRGICJ1cGRhdGUgJGMiICIkbSIgIiRtfjEiID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IENhbm5vdCBsb2NrIHRoZSByZWYgJyInIickYyciJyInIiBlcnIgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC1xICRjCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IHVwZGF0ZSByZWYgZmFpbHMgd2l0aCBiYWQgb2xkIHZhbHVlJyAnCisJcHJpbnRmICRGICJ1cGRhdGUgJGMiICIkbSIgImRvZXMtbm90LWV4aXN0IiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBpbnZhbGlkIG9sZCB2YWx1ZSBmb3IgcmVmICRjOiBkb2VzLW5vdC1leGlzdCIgZXJyICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtcSAkYworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiBjcmVhdGUgcmVmIGZhaWxzIHdpdGggYmFkIG5ldyB2YWx1ZScgJworCXByaW50ZiAkRiAiY3JlYXRlICRjIiAiZG9lcy1ub3QtZXhpc3QiID5zdGRpbiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluIDI+ZXJyICYmCisJZ3JlcCAiZmF0YWw6IGludmFsaWQgbmV3IHZhbHVlIGZvciByZWYgJGM6IGRvZXMtbm90LWV4aXN0IiBlcnIgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC1xICRjCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IGNyZWF0ZSByZWYgZmFpbHMgd2l0aCB6ZXJvIG5ldyB2YWx1ZScgJworCXByaW50ZiAkRiAiY3JlYXRlICRjIiAiIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBjcmVhdGUgJGMgZ2l2ZW4gemVybyBuZXcgdmFsdWUiIGVyciAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLXEgJGMKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gLXogdXBkYXRlIHJlZiB3b3JrcyB3aXRoIHJpZ2h0IG9sZCB2YWx1ZScgJworCXByaW50ZiAkRiAidXBkYXRlICRiIiAiJG1+MSIgIiRtIiA+c3RkaW4gJiYKKwlnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAmJgorCWdpdCByZXYtcGFyc2UgJG1+MSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1wYXJzZSAkYiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiBkZWxldGUgcmVmIGZhaWxzIHdpdGggd3Jvbmcgb2xkIHZhbHVlJyAnCisJcHJpbnRmICRGICJkZWxldGUgJGEiICIkbX4xIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBDYW5ub3QgbG9jayB0aGUgcmVmICciJyInJGEnIiciJyIgZXJyICYmCisJZ2l0IHJldi1wYXJzZSAkbSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1wYXJzZSAkYSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiBkZWxldGUgcmVmIGZhaWxzIHdpdGggemVybyBvbGQgdmFsdWUnICcKKwlwcmludGYgJEYgImRlbGV0ZSAkYSIgIiRaIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBkZWxldGUgJGEgZ2l2ZW4gemVybyBvbGQgdmFsdWUiIGVyciAmJgorCWdpdCByZXYtcGFyc2UgJG0gPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgJGEgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gLXogdXBkYXRlIHN5bXJlZiB3b3JrcyBvcHRpb24gbm8tZGVyZWYnICcKKwlnaXQgc3ltYm9saWMtcmVmIFRFU1RTWU1SRUYgJGIgJiYKKwlwcmludGYgJEYgIm9wdGlvbiBuby1kZXJlZiIgInVwZGF0ZSBURVNUU1lNUkVGIiAiJGEiICIkYiIgPnN0ZGluICYmCisJZ2l0IHVwZGF0ZS1yZWYgLXogLS1zdGRpbiA8c3RkaW4gJiYKKwlnaXQgcmV2LXBhcnNlIFRFU1RTWU1SRUYgPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgJGEgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwlnaXQgcmV2LXBhcnNlICRtfjEgPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgJGIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gLXogZGVsZXRlIHN5bXJlZiB3b3JrcyBvcHRpb24gbm8tZGVyZWYnICcKKwlnaXQgc3ltYm9saWMtcmVmIFRFU1RTWU1SRUYgJGIgJiYKKwlwcmludGYgJEYgIm9wdGlvbiBuby1kZXJlZiIgImRlbGV0ZSBURVNUU1lNUkVGIiAiJGIiID5zdGRpbiAmJgorCWdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtcSBURVNUU1lNUkVGICYmCisJZ2l0IHJldi1wYXJzZSAkbX4xID5leHBlY3QgJiYKKwlnaXQgcmV2LXBhcnNlICRiID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IGRlbGV0ZSByZWYgd29ya3Mgd2l0aCByaWdodCBvbGQgdmFsdWUnICcKKwlwcmludGYgJEYgImRlbGV0ZSAkYiIgIiRtfjEiID5zdGRpbiAmJgorCWdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtcSAkYgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiB1cGRhdGUvY3JlYXRlL3ZlcmlmeSBjb21iaW5hdGlvbiB3b3JrcycgJworCXByaW50ZiAkRiAidXBkYXRlICRhIiAiJG0iICIiICJjcmVhdGUgJGIiICIkbSIgInZlcmlmeSAkYyIgIiIgPnN0ZGluICYmCisJZ2l0IHVwZGF0ZS1yZWYgLXogLS1zdGRpbiA8c3RkaW4gJiYKKwlnaXQgcmV2LXBhcnNlICRtID5leHBlY3QgJiYKKwlnaXQgcmV2LXBhcnNlICRhID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisJZ2l0IHJldi1wYXJzZSAkYiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLXEgJGMKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RkaW4gLXogdXBkYXRlIHJlZnMgd29ya3Mgd2l0aCBpZGVudGl0eSB1cGRhdGVzJyAnCisJcHJpbnRmICRGICJ1cGRhdGUgJGEiICIkbSIgIiRtIiAidXBkYXRlICRiIiAiJG0iICIkbSIgInVwZGF0ZSAkYyIgIiRaIiAiIiA+c3RkaW4gJiYKKwlnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAmJgorCWdpdCByZXYtcGFyc2UgJG0gPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgJGEgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwlnaXQgcmV2LXBhcnNlICRiID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtcSAkYworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGRpbiAteiB1cGRhdGUgcmVmcyBmYWlscyB3aXRoIHdyb25nIG9sZCB2YWx1ZScgJworCWdpdCB1cGRhdGUtcmVmICRjICRtICYmCisJcHJpbnRmICRGICJ1cGRhdGUgJGEiICIkbSIgIiRtIiAidXBkYXRlICRiIiAiJG0iICIkbSIgInVwZGF0ZSAkYyIgIiIgIiRaIiA+c3RkaW4gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgdXBkYXRlLXJlZiAteiAtLXN0ZGluIDxzdGRpbiAyPmVyciAmJgorCWdyZXAgImZhdGFsOiBDYW5ub3QgbG9jayB0aGUgcmVmICciJyInJGMnIiciJyIgZXJyICYmCisJZ2l0IHJldi1wYXJzZSAkbSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1wYXJzZSAkYSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCWdpdCByZXYtcGFyc2UgJGIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwlnaXQgcmV2LXBhcnNlICRjID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0ZGluIC16IGRlbGV0ZSByZWZzIHdvcmtzIHdpdGggcGFja2VkIGFuZCBsb29zZSByZWZzJyAnCisJZ2l0IHBhY2stcmVmcyAtLWFsbCAmJgorCWdpdCB1cGRhdGUtcmVmICRjICRtfjEgJiYKKwlwcmludGYgJEYgImRlbGV0ZSAkYSIgIiRtIiAidXBkYXRlICRiIiAiJFoiICIkbSIgInVwZGF0ZSAkYyIgIiIgIiRtfjEiID5zdGRpbiAmJgorCWdpdCB1cGRhdGUtcmVmIC16IC0tc3RkaW4gPHN0ZGluICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtcSAkYSAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLXEgJGIgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC1xICRjCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MTUwMi1yZXYtcGFyc2UtcGFyc2VvcHQuc2ggYi90L3QxNTAyLXJldi1wYXJzZS1wYXJzZW9wdC5zaAppbmRleCAxM2M4OGM5Li44M2IxMzAwIDEwMDc1NQotLS0gYS90L3QxNTAyLXJldi1wYXJzZS1wYXJzZW9wdC5zaAorKysgYi90L3QxNTAyLXJldi1wYXJzZS1wYXJzZW9wdC5zaApAQCAtMTIsOSArMTIsMTEgQEAKICAgICAtaCwgLS1oZWxwICAgICAgICAgICAgc2hvdyB0aGUgaGVscAogICAgIC0tZm9vICAgICAgICAgICAgICAgICBzb21lIG5pZnR5IG9wdGlvbiAtLWZvbwogICAgIC0tYmFyIC4uLiAgICAgICAgICAgICBzb21lIGNvb2wgb3B0aW9uIC0tYmFyIHdpdGggYW4gYXJndW1lbnQKKyAgICAtYiwgLS1iYXogICAgICAgICAgICAgYSBzaG9ydCBhbmQgbG9uZyBvcHRpb24KIAogQW4gb3B0aW9uIGdyb3VwIEhlYWRlcgogICAgIC1DWy4uLl0gICAgICAgICAgICAgICBvcHRpb24gQyB3aXRoIGFuIG9wdGlvbmFsIGFyZ3VtZW50CisgICAgLWQsIC0tZGF0YVs9Li4uXSAgICAgIHNob3J0IGFuZCBsb25nIG9wdGlvbiB3aXRoIGFuIG9wdGlvbmFsIGFyZ3VtZW50CiAKIEV4dHJhcwogICAgIC0tZXh0cmExICAgICAgICAgICAgICBsaW5lIGFib3ZlIHVzZWQgdG8gY2F1c2UgYSBzZWdmYXVsdCBidXQgbm8gbG9uZ2VyIGRvZXMKQEAgLTMxLDkgKzMzLDExIEBACiAKIGZvbyAgICAgICBzb21lIG5pZnR5IG9wdGlvbiAtLWZvbwogYmFyPSAgICAgIHNvbWUgY29vbCBvcHRpb24gLS1iYXIgd2l0aCBhbiBhcmd1bWVudAorYixiYXogICAgIGEgc2hvcnQgYW5kIGxvbmcgb3B0aW9uCiAKICBBbiBvcHRpb24gZ3JvdXAgSGVhZGVyCiBDPyAgICAgICAgb3B0aW9uIEMgd2l0aCBhbiBvcHRpb25hbCBhcmd1bWVudAorZCxkYXRhPyAgIHNob3J0IGFuZCBsb25nIG9wdGlvbiB3aXRoIGFuIG9wdGlvbmFsIGFyZ3VtZW50CiAKIEV4dHJhcwogZXh0cmExICAgIGxpbmUgYWJvdmUgdXNlZCB0byBjYXVzZSBhIHNlZ2ZhdWx0IGJ1dCBubyBsb25nZXIgZG9lcwpAQCAtNDUsMTYgKzQ5LDE2IEBACiAnCiAKIGNhdCA+IGV4cGVjdCA8PEVPRgotc2V0IC0tIC0tZm9vIC0tYmFyICdoYW0nIC0tICdhcmcnCitzZXQgLS0gLS1mb28gLS1iYXIgJ2hhbScgLWIgLS0gJ2FyZycKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICd0ZXN0IC0tcGFyc2VvcHQnICcKLQlnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgLS0gLS1mb28gLS1iYXI9aGFtIGFyZyA8IG9wdGlvbnNwZWMgPiBvdXRwdXQgJiYKKwlnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgLS0gLS1mb28gLS1iYXI9aGFtIC0tYmF6IGFyZyA8IG9wdGlvbnNwZWMgPiBvdXRwdXQgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgLS1wYXJzZW9wdCB3aXRoIG1peGVkIG9wdGlvbnMgYW5kIGFyZ3VtZW50cycgJwotCWdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCAtLSAtLWZvbyBhcmcgLS1iYXI9aGFtIDwgb3B0aW9uc3BlYyA+IG91dHB1dCAmJgorCWdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCAtLSAtLWZvbyBhcmcgLS1iYXI9aGFtIC0tYmF6IDwgb3B0aW9uc3BlYyA+IG91dHB1dCAmJgogCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKICcKIApAQCAtOTksNCArMTAzLDM2IEBACiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCitjYXQgPiBleHBlY3QgPDxFT0YKK3NldCAtLSAtLWZvbyAtLWJhcj0neicgLS1iYXogLUMnWicgLS1kYXRhPSdBJyAtLSAnYXJnJworRU9GCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgLS1wYXJzZW9wdCAtLXN0dWNrLWxvbmcnICcKKwlnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgLS1zdHVjay1sb25nIC0tIC0tZm9vIC0tYmFyPXogLWIgYXJnIC1DWiAtZEEgPG9wdGlvbnNwZWMgPm91dHB1dCAmJgorCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKycKKworY2F0ID4gZXhwZWN0IDw8RU9GCitzZXQgLS0gLS1kYXRhPScnIC1DIC0tYmF6IC0tICdhcmcnCitFT0YKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndGVzdCAtLXBhcnNlb3B0IC0tc3R1Y2stbG9uZyBhbmQgZW1wdHkgb3B0aW9uYWwgYXJndW1lbnQnICcKKwlnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgLS1zdHVjay1sb25nIC0tIC0tZGF0YT0gYXJnIC1DIC1iIDxvcHRpb25zcGVjID5vdXRwdXQgJiYKKwl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CisnCisKK2NhdCA+IGV4cGVjdCA8PEVPRgorc2V0IC0tIC0tZGF0YSAtLWJheiAtLSAnYXJnJworRU9GCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgLS1wYXJzZW9wdCAtLXN0dWNrLWxvbmcgYW5kIGxvbmcgb3B0aW9uIHdpdGggdW5zZXQgb3B0aW9uYWwgYXJndW1lbnQnICcKKwlnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgLS1zdHVjay1sb25nIC0tIC0tZGF0YSBhcmcgLWIgPG9wdGlvbnNwZWMgPm91dHB1dCAmJgorCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndGVzdCAtLXBhcnNlb3B0IC0tc3R1Y2stbG9uZyBhbmQgc2hvcnQgb3B0aW9uIHdpdGggdW5zZXQgb3B0aW9uYWwgYXJndW1lbnQnICcKKwlnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgLS1zdHVjay1sb25nIC0tIC1kIGFyZyAtYiA8b3B0aW9uc3BlYyA+b3V0cHV0ICYmCisJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDE1MDYtcmV2LXBhcnNlLWRpYWdub3Npcy5zaCBiL3QvdDE1MDYtcmV2LXBhcnNlLWRpYWdub3Npcy5zaAppbmRleCBmOTUwYzEwLi42MTNkOWJmIDEwMDc1NQotLS0gYS90L3QxNTA2LXJldi1wYXJzZS1kaWFnbm9zaXMuc2gKKysrIGIvdC90MTUwNi1yZXYtcGFyc2UtZGlhZ25vc2lzLnNoCkBAIC0xOTYsNCArMTk2LDI4IEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdhcmcgYmVmb3JlIGRhc2hkYXNoIG11c3QgYmUgYSByZXZpc2lvbiAobWlzc2luZyknICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIGZvb2JhciAtLSAyPnN0ZGVyciAmJgorCXRlc3RfaTE4bmdyZXAgImJhZCByZXZpc2lvbiIgc3RkZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FyZyBiZWZvcmUgZGFzaGRhc2ggbXVzdCBiZSBhIHJldmlzaW9uIChmaWxlKScgJworCT5mb29iYXIgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIGZvb2JhciAtLSAyPnN0ZGVyciAmJgorCXRlc3RfaTE4bmdyZXAgImJhZCByZXZpc2lvbiIgc3RkZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FyZyBiZWZvcmUgZGFzaGRhc2ggbXVzdCBiZSBhIHJldmlzaW9uIChhbWJpZ3VvdXMpJyAnCisJPmZvb2JhciAmJgorCWdpdCB1cGRhdGUtcmVmIHJlZnMvaGVhZHMvZm9vYmFyIEhFQUQgJiYKKwl7CisJCSMgd2UgZG8gbm90IHdhbnQgdG8gdXNlIHJldi1wYXJzZSBoZXJlLCBiZWNhdXNlCisJCSMgd2UgYXJlIHRlc3RpbmcgaXQKKwkJY2F0IC5naXQvcmVmcy9oZWFkcy9mb29iYXIgJiYKKwkJcHJpbnRmICIlc1xuIiAtLQorCX0gPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgZm9vYmFyIC0tID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MTUwNy1yZXYtcGFyc2UtdXBzdHJlYW0uc2ggYi90L3QxNTA3LXJldi1wYXJzZS11cHN0cmVhbS5zaAppbmRleCAyYTE5ZTc5Li4xNzg2OTRlIDEwMDc1NQotLS0gYS90L3QxNTA3LXJldi1wYXJzZS11cHN0cmVhbS5zaAorKysgYi90L3QxNTA3LXJldi1wYXJzZS11cHN0cmVhbS5zaApAQCAtMTcsNiArMTcsOSBAQAogCSB0ZXN0X2NvbW1pdCA0ICYmCiAJIGdpdCBicmFuY2ggLS10cmFjayBteS1zaWRlIG9yaWdpbi9zaWRlICYmCiAJIGdpdCBicmFuY2ggLS10cmFjayBsb2NhbC1tYXN0ZXIgbWFzdGVyICYmCisJIGdpdCBicmFuY2ggLS10cmFjayBmdW5Abnkgb3JpZ2luL3NpZGUgJiYKKwkgZ2l0IGJyYW5jaCAtLXRyYWNrIEBmdW5ueSBvcmlnaW4vc2lkZSAmJgorCSBnaXQgYnJhbmNoIC0tdHJhY2sgZnVubnlAIG9yaWdpbi9zaWRlICYmCiAJIGdpdCByZW1vdGUgYWRkIC10IG1hc3RlciBtYXN0ZXItb25seSAuLiAmJgogCSBnaXQgZmV0Y2ggbWFzdGVyLW9ubHkgJiYKIAkgZ2l0IGJyYW5jaCBiYWQtdXBzdHJlYW0gJiYKQEAgLTU0LDYgKzU3LDI0IEBACiAJdGVzdCByZWZzL3JlbW90ZXMvb3JpZ2luL3NpZGUgPSAiJChmdWxsX25hbWUgbXktc2lkZUB7dX0pIgogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1cHN0cmVhbSBvZiBicmFuY2ggd2l0aCBAIGluIG1pZGRsZScgJworCWZ1bGxfbmFtZSBmdW5AbnlAe3V9ID5hY3R1YWwgJiYKKwllY2hvIHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZSA+ZXhwZWN0ICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1cHN0cmVhbSBvZiBicmFuY2ggd2l0aCBAIGF0IHN0YXJ0JyAnCisJZnVsbF9uYW1lIEBmdW5ueUB7dX0gPmFjdHVhbCAmJgorCWVjaG8gcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlID5leHBlY3QgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Vwc3RyZWFtIG9mIGJyYW5jaCB3aXRoIEAgYXQgZW5kJyAnCisJZnVsbF9uYW1lIGZ1bm55QEB7dX0gPmFjdHVhbCAmJgorCWVjaG8gcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlID5leHBlY3QgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlZnMvaGVhZHMvbXktc2lkZUB7dXBzdHJlYW19IGRvZXMgbm90IHJlc29sdmUgdG8gbXktc2lkZXt1cHN0cmVhbX0nICcKIAl0ZXN0X211c3RfZmFpbCBmdWxsX25hbWUgcmVmcy9oZWFkcy9teS1zaWRlQHt1cHN0cmVhbX0KICcKQEAgLTIxMCw0ICsyMzEsMjAgQEAKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ0B7cmVmbG9nfS1wYXJzaW5nIGRvZXMgbm90IGxvb2sgYmV5b25kIGNvbG9uJyAnCisJZWNobyBjb250ZW50ID5Ae3llc3RlcmRheX0gJiYKKwlnaXQgYWRkIEB7eWVzdGVyZGF5fSAmJgorCWdpdCBjb21taXQgLW0gImZ1bm55IHJlZmxvZyBmaWxlIiAmJgorCWdpdCBoYXNoLW9iamVjdCBAe3llc3RlcmRheX0gPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgSEVBRDpAe3llc3RlcmRheX0gPmFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdAe3Vwc3RyZWFtfS1wYXJzaW5nIGRvZXMgbm90IGxvb2sgYmV5b25kIGNvbG9uJyAnCisJZWNobyBjb250ZW50ID5Ae3Vwc3RyZWFtfSAmJgorCWdpdCBhZGQgQHt1cHN0cmVhbX0gJiYKKwlnaXQgY29tbWl0IC1tICJmdW5ueSB1cHN0cmVhbSBmaWxlIiAmJgorCWdpdCBoYXNoLW9iamVjdCBAe3Vwc3RyZWFtfSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1wYXJzZSBIRUFEOkB7dXBzdHJlYW19ID5hY3R1YWwKKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QxNTA4LWF0LWNvbWJpbmF0aW9ucy5zaCBiL3QvdDE1MDgtYXQtY29tYmluYXRpb25zLnNoCmluZGV4IGU1YWVhM2IuLjA3OGUxMTkgMTAwNzU1Ci0tLSBhL3QvdDE1MDgtYXQtY29tYmluYXRpb25zLnNoCisrKyBiL3QvdDE1MDgtYXQtY29tYmluYXRpb25zLnNoCkBAIC05LDggKzksMTEgQEAKIAkJaWYgdGVzdCAnJDInID0gJ2NvbW1pdCcKIAkJdGhlbgogCQkJZ2l0IGxvZyAtMSAtLWZvcm1hdD0lcyAnJDEnID5hY3R1YWwKLQkJZWxzZQorCQllbGlmIHRlc3QgJyQyJyA9ICdyZWYnCisJCXRoZW4KIAkJCWdpdCByZXYtcGFyc2UgLS1zeW1ib2xpYy1mdWxsLW5hbWUgJyQxJyA+YWN0dWFsCisJCWVsc2UKKwkJCWdpdCBjYXQtZmlsZSAtcCAnJDEnID5hY3R1YWwKIAkJZmkgJiYKIAkJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogCSIKQEAgLTMyLDYgKzM1LDkgQEAKIAlnaXQgY2hlY2tvdXQgLWIgdXBzdHJlYW0tYnJhbmNoICYmCiAJdGVzdF9jb21taXQgdXBzdHJlYW0tb25lICYmCiAJdGVzdF9jb21taXQgdXBzdHJlYW0tdHdvICYmCisJZ2l0IGNoZWNrb3V0IC1iIEAvYXQtdGVzdCAmJgorCWdpdCBjaGVja291dCAtYiBAQC9hdC10ZXN0ICYmCisJZ2l0IGNoZWNrb3V0IC1iIEBhdC10ZXN0ICYmCiAJZ2l0IGNoZWNrb3V0IC1iIG9sZC1icmFuY2ggJiYKIAl0ZXN0X2NvbW1pdCBvbGQtb25lICYmCiAJdGVzdF9jb21taXQgb2xkLXR3byAmJgpAQCAtNTUsNiArNjEsMTEgQEAKIGNoZWNrICJAe3V9QHsxfSIgY29tbWl0IHVwc3RyZWFtLW9uZQogY2hlY2sgIkB7LTF9QHt1fSIgcmVmIHJlZnMvaGVhZHMvbWFzdGVyCiBjaGVjayAiQHstMX1Ae3V9QHsxfSIgY29tbWl0IG1hc3Rlci1vbmUKK2NoZWNrICJAIiBjb21taXQgbmV3LXR3bworY2hlY2sgIkBAe3V9IiByZWYgcmVmcy9oZWFkcy91cHN0cmVhbS1icmFuY2gKK2NoZWNrICJAQC9hdC10ZXN0IiByZWYgcmVmcy9oZWFkcy9AQC9hdC10ZXN0CitjaGVjayAiQC9hdC10ZXN0IiByZWYgcmVmcy9oZWFkcy9AL2F0LXRlc3QKK2NoZWNrICJAYXQtdGVzdCIgcmVmIHJlZnMvaGVhZHMvQGF0LXRlc3QKIG5vbnNlbnNlICJAe3V9QHstMX0iCiBub25zZW5zZSAiQHswfUB7MH0iCiBub25zZW5zZSAiQHsxfUB7dX0iCkBAIC03NCw0ICs4NSwxNCBAQAogY2hlY2sgIkhFQURAezF9IiBjb21taXQgbmV3LXR3bwogY2hlY2sgIkB7MX0iIGNvbW1pdCBvbGQtb25lCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NyZWF0ZSBwYXRoIHdpdGggQCcgJworCWVjaG8gY29udGVudCA+bm9ybWFsICYmCisJZWNobyBjb250ZW50ID5mdW5AbnkgJiYKKwlnaXQgYWRkIG5vcm1hbCBmdW5AbnkgJiYKKwlnaXQgY29tbWl0IC1tICJmdW5ueSBwYXRoIgorJworCitjaGVjayAiQDpub3JtYWwiIGJsb2IgY29udGVudAorY2hlY2sgIkA6ZnVuQG55IiBibG9iIGNvbnRlbnQKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QxNTExLXJldi1wYXJzZS1jYXJldC5zaCBiL3QvdDE1MTEtcmV2LXBhcnNlLWNhcmV0LnNoCmluZGV4IGVhZWZjNzcuLjE1OTczZjIgMTAwNzU1Ci0tLSBhL3QvdDE1MTEtcmV2LXBhcnNlLWNhcmV0LnNoCisrKyBiL3QvdDE1MTEtcmV2LXBhcnNlLWNhcmV0LnNoCkBAIC01NCw2ICs1NCwxMyBAQAogCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgYmxvYi10YWdee3RyZWV9CiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlZl57dGFnfScgJworCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgSEVBRF57dGFnfSAmJgorCWdpdCByZXYtcGFyc2UgY29tbWl0LXRhZyA+ZXhwZWN0ZWQgJiYKKwlnaXQgcmV2LXBhcnNlIGNvbW1pdC10YWdee3RhZ30gPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWZeey8ufScgJwogCWdpdCByZXYtcGFyc2UgbWFzdGVyID5leHBlY3RlZCAmJgogCWdpdCByZXYtcGFyc2UgbWFzdGVyXnsvLn0gPmFjdHVhbCAmJgpkaWZmIC0tZ2l0IGEvdC90MjAwOC1jaGVja291dC1zdWJkaXIuc2ggYi90L3QyMDA4LWNoZWNrb3V0LXN1YmRpci5zaAppbmRleCAzZTA5OGFiLi5lYWRiOTQzIDEwMDc1NQotLS0gYS90L3QyMDA4LWNoZWNrb3V0LXN1YmRpci5zaAorKysgYi90L3QyMDA4LWNoZWNrb3V0LXN1YmRpci5zaApAQCAtNTgsMTMgKzU4LDEzIEBACiAKICcKIAotIyBUaGlzIGlzIG5vdCBleHBlY3RlZCB0byB3b3JrIGFzIGxzLWZpbGVzIHdhcyBub3QgZGVzaWduZWQKLSMgdG8gZGVhbCB3aXRoIHN1Y2guICBFbmFibGUgaXQgd2hlbiBscy1maWxlcyBpcyB1cGRhdGVkLgotOiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVja291dCB3aXRoIGNvbXBsZXggcmVsYXRpdmUgcGF0aCcgJwotCi0Jcm0gZmlsZTEgJiYKLQlnaXQgY2hlY2tvdXQgSEVBRCAtLSAuLi9kaXIxLy4uL2RpcjEvZmlsZTEgJiYgdGVzdCAtZiAuL2ZpbGUxCi0KK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrb3V0IHdpdGggY29tcGxleCByZWxhdGl2ZSBwYXRoJyAnCisJKAorCQljZCBkaXIxICYmCisJCXJtIGZpbGUxICYmCisJCWdpdCBjaGVja291dCBIRUFEIC0tIC4uL2RpcjEvLi4vZGlyMS9maWxlMSAmJgorCQl0ZXN0ICJoZWxsbyIgPSAiJChjYXQgZmlsZTEpIgorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVsYXRpdmUgcGF0aCBvdXRzaWRlIHRyZWUgc2hvdWxkIGZhaWwnIFwKZGlmZiAtLWdpdCBhL3QvdDMwMDEtbHMtZmlsZXMtb3RoZXJzLWV4Y2x1ZGUuc2ggYi90L3QzMDAxLWxzLWZpbGVzLW90aGVycy1leGNsdWRlLnNoCmluZGV4IGYwNDIxYzAuLmIyNzk4ZmUgMTAwNzU1Ci0tLSBhL3QvdDMwMDEtbHMtZmlsZXMtb3RoZXJzLWV4Y2x1ZGUuc2gKKysrIGIvdC90MzAwMS1scy1maWxlcy1vdGhlcnMtZXhjbHVkZS5zaApAQCAtMTE1LDcgKzExNSw3IEBACiAKIGdpdCBjb25maWcgY29yZS5leGNsdWRlc0ZpbGUgZXhjbHVkZXMtZmlsZQogCi1naXQgc3RhdHVzIHwgZ3JlcCAiXiMJIiA+IG91dHB1dAorZ2l0IC1jIHN0YXR1cy5kaXNwbGF5Q29tbWVudFByZWZpeD10cnVlIHN0YXR1cyB8IGdyZXAgIl4jCSIgPiBvdXRwdXQKIAogY2F0ID4gZXhwZWN0IDw8IEVPRgogIwkuZ2l0aWdub3JlCmRpZmYgLS1naXQgYS90L3QzMjAwLWJyYW5jaC5zaCBiL3QvdDMyMDAtYnJhbmNoLnNoCmluZGV4IDU1YzlhYjAuLmZjZGI4NjcgMTAwNzU1Ci0tLSBhL3QvdDMyMDAtYnJhbmNoLnNoCisrKyBiL3QvdDMyMDAtYnJhbmNoLnNoCkBAIC0xNCwxMCArMTQsMTEgQEAKIAllY2hvIFdvcmxkID4+QSAmJgogCWdpdCB1cGRhdGUtaW5kZXggLS1hZGQgQSAmJgogCWdpdCBjb21taXQgLW0gIlNlY29uZCBjb21taXQuIiAmJgotCUhFQUQ9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpJworCUhFQUQ9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpCisnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBicmFuY2ggLS1oZWxwIHNob3VsZCBub3QgaGF2ZSBjcmVhdGVkIGEgYm9ndXMgYnJhbmNoJyAnCi0JdGVzdF9taWdodF9mYWlsIGdpdCBicmFuY2ggLS1oZWxwIDwvZGV2L251bGwgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbCAmJgorCXRlc3RfbWlnaHRfZmFpbCBnaXQgYnJhbmNoIC0tbWFuIC0taGVscCA8L2Rldi9udWxsID4vZGV2L251bGwgMj4mMSAmJgogCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvcmVmcy9oZWFkcy8tLWhlbHAKICcKIApAQCAtMzUxLDcgKzM1Miw3IEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdubyB0cmFja2luZyB3aXRob3V0IC5mZXRjaCBlbnRyaWVzJyAnCiAJZ2l0IGNvbmZpZyBicmFuY2guYXV0b3NldHVwbWVyZ2UgdHJ1ZSAmJgogCWdpdCBicmFuY2ggbXk2IHMgJiYKLQlnaXQgY29uZmlnIGJyYW5jaC5hdXRvbXNldHVwbWVyZ2UgZmFsc2UgJiYKKwlnaXQgY29uZmlnIGJyYW5jaC5hdXRvc2V0dXBtZXJnZSBmYWxzZSAmJgogCXRlc3QgLXogIiQoZ2l0IGNvbmZpZyBicmFuY2gubXk2LnJlbW90ZSkiICYmCiAJdGVzdCAteiAiJChnaXQgY29uZmlnIGJyYW5jaC5teTYubWVyZ2UpIgogJwpAQCAtNDI1LDE0ICs0MjYsMTQgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VzZSAtLXNldC11cHN0cmVhbS10byBtb2RpZnkgSEVBRCcgJwogCXRlc3RfY29uZmlnIGJyYW5jaC5tYXN0ZXIucmVtb3RlIGZvbyAmJgogCXRlc3RfY29uZmlnIGJyYW5jaC5tYXN0ZXIubWVyZ2UgZm9vICYmCi0JZ2l0IGJyYW5jaCBteTEyCisJZ2l0IGJyYW5jaCBteTEyICYmCiAJZ2l0IGJyYW5jaCAtLXNldC11cHN0cmVhbS10byBteTEyICYmCiAJdGVzdCAiJChnaXQgY29uZmlnIGJyYW5jaC5tYXN0ZXIucmVtb3RlKSIgPSAiLiIgJiYKIAl0ZXN0ICIkKGdpdCBjb25maWcgYnJhbmNoLm1hc3Rlci5tZXJnZSkiID0gInJlZnMvaGVhZHMvbXkxMiIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndXNlIC0tc2V0LXVwc3RyZWFtLXRvIG1vZGlmeSBhIHBhcnRpY3VsYXIgYnJhbmNoJyAnCi0JZ2l0IGJyYW5jaCBteTEzCisJZ2l0IGJyYW5jaCBteTEzICYmCiAJZ2l0IGJyYW5jaCAtLXNldC11cHN0cmVhbS10byBtYXN0ZXIgbXkxMyAmJgogCXRlc3QgIiQoZ2l0IGNvbmZpZyBicmFuY2gubXkxMy5yZW1vdGUpIiA9ICIuIiAmJgogCXRlc3QgIiQoZ2l0IGNvbmZpZyBicmFuY2gubXkxMy5tZXJnZSkiID0gInJlZnMvaGVhZHMvbWFzdGVyIgpAQCAtNDQzLDcgKzQ0NCw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgLS11bnNldC11cHN0cmVhbSBvbiBIRUFEJyAnCi0JZ2l0IGJyYW5jaCBteTE0CisJZ2l0IGJyYW5jaCBteTE0ICYmCiAJdGVzdF9jb25maWcgYnJhbmNoLm1hc3Rlci5yZW1vdGUgZm9vICYmCiAJdGVzdF9jb25maWcgYnJhbmNoLm1hc3Rlci5tZXJnZSBmb28gJiYKIAlnaXQgYnJhbmNoIC0tc2V0LXVwc3RyZWFtLXRvIG15MTQgJiYKQEAgLTQ2NSw3ICs0NjYsNyBAQAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICd0ZXN0IC0tdW5zZXQtdXBzdHJlYW0gb24gYSBwYXJ0aWN1bGFyIGJyYW5jaCcgJwotCWdpdCBicmFuY2ggbXkxNQorCWdpdCBicmFuY2ggbXkxNSAmJgogCWdpdCBicmFuY2ggLS1zZXQtdXBzdHJlYW0tdG8gbWFzdGVyIG15MTQgJiYKIAlnaXQgYnJhbmNoIC0tdW5zZXQtdXBzdHJlYW0gbXkxNCAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCBjb25maWcgYnJhbmNoLm15MTQucmVtb3RlICYmCmRpZmYgLS1naXQgYS90L3QzMzAwLWZ1bm55LW5hbWVzLnNoIGIvdC90MzMwMC1mdW5ueS1uYW1lcy5zaAppbmRleCA3NDgwZDZlLi45YTE0NmYxIDEwMDc1NQotLS0gYS90L3QzMzAwLWZ1bm55LW5hbWVzLnNoCisrKyBiL3QvdDMzMDAtZnVubnktbmFtZXMuc2gKQEAgLTY5LDcgKzY5LDcgQEAKIAl0YWJzCSwiIChkcSkgYW5kIHNwYWNlcwogCUVPRgogCWdpdCBscy1maWxlcyAteiA+bHMtZmlsZXMueiAmJgotCSIkUEVSTF9QQVRIIiAtcGUgInkvXDAwMC9cMDEyLyIgPGxzLWZpbGVzLnogPmN1cnJlbnQgJiYKKwlwZXJsIC1wZSAieS9cMDAwL1wwMTIvIiA8bHMtZmlsZXMueiA+Y3VycmVudCAmJgogCXRlc3RfY21wIGV4cGVjdGVkIGN1cnJlbnQKICcKIApAQCAtMTA2LDcgKzEwNiw3IEBACiAJdGFicwksIiAoZHEpIGFuZCBzcGFjZXMKIAlFT0YKIAlnaXQgZGlmZi1pbmRleCAteiAtLW5hbWUtc3RhdHVzICR0MCA+ZGlmZi1pbmRleC56ICYmCi0JIiRQRVJMX1BBVEgiIC1wZSAieS9cMDAwL1wwMTIvIiA8ZGlmZi1pbmRleC56ID5jdXJyZW50ICYmCisJcGVybCAtcGUgInkvXDAwMC9cMDEyLyIgPGRpZmYtaW5kZXgueiA+Y3VycmVudCAmJgogCXRlc3RfY21wIGV4cGVjdGVkIGN1cnJlbnQKICcKIApAQCAtMTE2LDcgKzExNiw3IEBACiAJdGFicwksIiAoZHEpIGFuZCBzcGFjZXMKIAlFT0YKIAlnaXQgZGlmZi10cmVlIC16IC0tbmFtZS1zdGF0dXMgJHQwICR0MSA+ZGlmZi10cmVlLnogJiYKLQkiJFBFUkxfUEFUSCIgLXBlIHkvXFwwMDAvXFwwMTIvIDxkaWZmLXRyZWUueiA+Y3VycmVudCAmJgorCXBlcmwgLXBlIHkvXFwwMDAvXFwwMTIvIDxkaWZmLXRyZWUueiA+Y3VycmVudCAmJgogCXRlc3RfY21wIGV4cGVjdGVkIGN1cnJlbnQKICcKIApkaWZmIC0tZ2l0IGEvdC90MzQwMC1yZWJhc2Uuc2ggYi90L3QzNDAwLXJlYmFzZS5zaAppbmRleCBlYmY5M2IwLi42ZDk0YjFmIDEwMDc1NQotLS0gYS90L3QzNDAwLXJlYmFzZS5zaAorKysgYi90L3QzNDAwLXJlYmFzZS5zaApAQCAtMTM0LDEyICsxMzQsMjIgQEAKIAl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RlZmF1bHQgdG8gQHt1cHN0cmVhbX0gd2hlbiB1cHN0cmVhbSBhcmcgaXMgbWlzc2luZycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGVmYXVsdCB0byBjb21tb24gYmFzZSBpbiBAe3Vwc3RyZWFtfXMgcmVmbG9nIGlmIG5vIHVwc3RyZWFtIGFyZycgJworCWdpdCBjaGVja291dCAtYiBkZWZhdWx0LWJhc2UgbWFzdGVyICYmCiAJZ2l0IGNoZWNrb3V0IC1iIGRlZmF1bHQgdG9waWMgJiYKIAlnaXQgY29uZmlnIGJyYW5jaC5kZWZhdWx0LnJlbW90ZSAuICYmCi0JZ2l0IGNvbmZpZyBicmFuY2guZGVmYXVsdC5tZXJnZSByZWZzL2hlYWRzL21hc3RlciAmJgorCWdpdCBjb25maWcgYnJhbmNoLmRlZmF1bHQubWVyZ2UgcmVmcy9oZWFkcy9kZWZhdWx0LWJhc2UgJiYKIAlnaXQgcmViYXNlICYmCi0JdGVzdCAiJChnaXQgcmV2LXBhcnNlIGRlZmF1bHR+MSkiID0gIiQoZ2l0IHJldi1wYXJzZSBtYXN0ZXIpIgorCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgZGVmYXVsdC1iYXNlID5leHBlY3QgJiYKKwlnaXQgcmV2LXBhcnNlIGRlZmF1bHR+MSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCWdpdCBjaGVja291dCBkZWZhdWx0LWJhc2UgJiYKKwlnaXQgcmVzZXQgLS1oYXJkIEhFQUReICYmCisJZ2l0IGNoZWNrb3V0IGRlZmF1bHQgJiYKKwlnaXQgcmViYXNlICYmCisJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBkZWZhdWx0LWJhc2UgPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgZGVmYXVsdH4xID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtcSBpcyBxdWlldCcgJwpkaWZmIC0tZ2l0IGEvdC90MzUwMS1yZXZlcnQtY2hlcnJ5LXBpY2suc2ggYi90L3QzNTAxLXJldmVydC1jaGVycnktcGljay5zaAppbmRleCA2ZjQ4OWUyLi41MWYzYmJiIDEwMDc1NQotLS0gYS90L3QzNTAxLXJldmVydC1jaGVycnktcGljay5zaAorKysgYi90L3QzNTAxLXJldmVydC1jaGVycnktcGljay5zaApAQCAtMTAwLDcgKzEwMCw3IEBACiAKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlcnktcGljayBvbiB1bmJvcm4gYnJhbmNoJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVycnktcGljayBvbiB1bmJvcm4gYnJhbmNoJyAnCiAJZ2l0IGNoZWNrb3V0IC0tb3JwaGFuIHVuYm9ybiAmJgogCWdpdCBybSAtLWNhY2hlZCAtciAuICYmCiAJcm0gLXJmICogJiYKQEAgLTEwOSw0ICsxMDksMzYgQEAKIAkhIHRlc3RfY21wX3JldiBpbml0aWFsIEhFQUQKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlcnJ5LXBpY2sgIi0iIHRvIHBpY2sgZnJvbSBwcmV2aW91cyBicmFuY2gnICcKKwlnaXQgY2hlY2tvdXQgdW5ib3JuICYmCisJdGVzdF9jb21taXQgdG8tcGljayBhY3R1YWwgY29udGVudCAmJgorCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwlnaXQgY2hlcnJ5LXBpY2sgLSAmJgorCWVjaG8gY29udGVudCA+ZXhwZWN0ICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVycnktcGljayAiLSIgaXMgbWVhbmluZ2xlc3Mgd2l0aG91dCBjaGVja291dCcgJworCXRlc3RfY3JlYXRlX3JlcG8gYWZyZXNoICYmCisJKAorCQljZCBhZnJlc2ggJiYKKwkJdGVzdF9jb21taXQgb25lICYmCisJCXRlc3RfY29tbWl0IHR3byAmJgorCQl0ZXN0X2NvbW1pdCB0aHJlZSAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgY2hlcnJ5LXBpY2sgLQorCSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlcnJ5LXBpY2sgIi0iIHdvcmtzIHdpdGggYXJndW1lbnRzJyAnCisJZ2l0IGNoZWNrb3V0IC1iIHNpZGUtYnJhbmNoICYmCisJdGVzdF9jb21taXQgY2hhbmdlIGFjdHVhbCBjaGFuZ2UgJiYKKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJZ2l0IGNoZXJyeS1waWNrIC1zIC0gJiYKKwllY2hvICJTaWduZWQtb2ZmLWJ5OiBDIE8gTWl0dGVyIDxjb21taXR0ZXJAZXhhbXBsZS5jb20+IiA+ZXhwZWN0ICYmCisJZ2l0IGNhdC1maWxlIGNvbW1pdCBIRUFEIHwgZ3JlcCBeU2lnbmVkLW9mZi1ieTogPnNpZ25vZmYgJiYKKwl0ZXN0X2NtcCBleHBlY3Qgc2lnbm9mZiAmJgorCWVjaG8gY2hhbmdlID5leHBlY3QgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MzUwNi1jaGVycnktcGljay1mZi5zaCBiL3QvdDM1MDYtY2hlcnJ5LXBpY2stZmYuc2gKaW5kZXggMzczYWFkNi4uZmI4ODlhYyAxMDA3NTUKLS0tIGEvdC90MzUwNi1jaGVycnktcGljay1mZi5zaAorKysgYi90L3QzNTA2LWNoZXJyeS1waWNrLWZmLnNoCkBAIC0xMDUsNyArMTA1LDcgQEAKIAl0ZXN0ICIkKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgSEVBRCkiID0gIjFkZjE5MmNkOGJjNThhMmIyNzVkODQyY2VkZTRkMjIxYWQ5MDAwZDEiCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZXJ5LXBpY2sgLS1mZiBvbiB1bmJvcm4gYnJhbmNoJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVycnktcGljayAtLWZmIG9uIHVuYm9ybiBicmFuY2gnICcKIAlnaXQgY2hlY2tvdXQgLS1vcnBoYW4gdW5ib3JuICYmCiAJZ2l0IHJtIC0tY2FjaGVkIC1yIC4gJiYKIAlybSAtcmYgKiAmJgpkaWZmIC0tZ2l0IGEvdC90MzUwOS1jaGVycnktcGljay1tZXJnZS1kZi5zaCBiL3QvdDM1MDktY2hlcnJ5LXBpY2stbWVyZ2UtZGYuc2gKaW5kZXggYTViNmE1Zi4uMWU1YjM5NCAxMDA3NTUKLS0tIGEvdC90MzUwOS1jaGVycnktcGljay1tZXJnZS1kZi5zaAorKysgYi90L3QzNTA5LWNoZXJyeS1waWNrLW1lcmdlLWRmLnNoCkBAIC03NCw3ICs3NCw3IEBACiAJZWNobyBjb250ZW50ID4gc3ViL2ZpbGUgJiYKIAllY2hvIGZvbyA+IG90aGVyc3ViL3doYXRldmVyICYmCiAJZ2l0IGFkZCAtQSAmJgotCWdpdCBjb21taXQgLW0gIkNvbW1vbiBjb21tbWl0IiAmJgorCWdpdCBjb21taXQgLW0gIkNvbW1vbiBjb21taXQiICYmCiAKIAlnaXQgcm0gLXJmIG90aGVyc3ViICYmCiAJZ2l0IG12IHN1Yi9maWxlIG90aGVyc3ViICYmCmRpZmYgLS1naXQgYS90L3QzNjAwLXJtLnNoIGIvdC90MzYwMC1ybS5zaAppbmRleCA1Yzg3YjU1Li4zZDMwNTgxIDEwMDc1NQotLS0gYS90L3QzNjAwLXJtLnNoCisrKyBiL3QvdDM2MDAtcm0uc2gKQEAgLTI0MCwxOCArMjQwLDE1IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nob2tpbmcgImdpdCBybSIgc2hvdWxkIG5vdCBsZXQgaXQgZGllIHdpdGggY3J1ZnQnICcKIAlnaXQgcmVzZXQgLXEgLS1oYXJkICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtZiAuZ2l0L2luZGV4LmxvY2sgJiYgZ2l0IHJlc2V0IC1xIC0taGFyZCIgJiYKIAlpPTAgJiYKIAl3aGlsZSB0ZXN0ICRpIC1sdCAxMjAwMAogCWRvCi0JICAgIGVjaG8gIjEwMDY0NCAkX3o0MCAwCXNvbWUtZmlsZS0kaSIKKwkgICAgZWNobyAiMTAwNjQ0IDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAgMAlzb21lLWZpbGUtJGkiCiAJICAgIGk9JCgoICRpICsgMSApKQogCWRvbmUgfCBnaXQgdXBkYXRlLWluZGV4IC0taW5kZXgtaW5mbyAmJgotCWdpdCBybSAtbiAic29tZS1maWxlLSoiIHwgOjsKLQl0ZXN0IC1mIC5naXQvaW5kZXgubG9jawotCXN0YXR1cz0kPwotCXJtIC1mIC5naXQvaW5kZXgubG9jawotCWdpdCByZXNldCAtcSAtLWhhcmQKLQl0ZXN0ICIkc3RhdHVzIiAhPSAwCisJZ2l0IHJtIC1uICJzb21lLWZpbGUtKiIgfCA6ICYmCisJdGVzdF9wYXRoX2lzX21pc3NpbmcgLmdpdC9pbmRleC5sb2NrCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JtIHJlbW92ZXMgc3ViZGlyZWN0b3JpZXMgcmVjdXJzaXZlbHknICcKQEAgLTI2Myw2ICsyNjAsNyBAQAogJwogCiBjYXQgPmV4cGVjdCA8PEVPRgorTSAgLmdpdG1vZHVsZXMKIEQgIHN1Ym1vZAogRU9GCiAKQEAgLTI3MCw2ICsyNjgsMTUgQEAKICBNIHN1Ym1vZAogRU9GCiAKK2NhdCA+ZXhwZWN0LmNhY2hlZCA8PEVPRgorRCAgc3VibW9kCitFT0YKKworY2F0ID5leHBlY3QuYm90aF9kZWxldGVkPDxFT0YKK0QgIC5naXRtb2R1bGVzCitEICBzdWJtb2QKK0VPRgorCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdybSByZW1vdmVzIGVtcHR5IHN1Ym1vZHVsZXMgZnJvbSB3b3JrIHRyZWUnICcKIAlta2RpciBzdWJtb2QgJiYKIAlnaXQgdXBkYXRlLWluZGV4IC0tYWRkIC0tY2FjaGVpbmZvIDE2MDAwMCAkKGdpdCByZXYtcGFyc2UgSEVBRCkgc3VibW9kICYmCkBAIC0yODEsMTYgKzI4OCwyMCBAQAogCWdpdCBybSBzdWJtb2QgJiYKIAl0ZXN0ICEgLWUgc3VibW9kICYmCiAJZ2l0IHN0YXR1cyAtcyAtdW5vIC0taWdub3JlLXN1Ym1vZHVsZXM9bm9uZSA+IGFjdHVhbCAmJgotCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUuc3ViLnVybCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLnN1Yi5wYXRoCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JtIHJlbW92ZXMgcmVtb3ZlZCBzdWJtb2R1bGUgZnJvbSBpbmRleCcgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAncm0gcmVtb3ZlcyByZW1vdmVkIHN1Ym1vZHVsZSBmcm9tIGluZGV4IGFuZCAuZ2l0bW9kdWxlcycgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgc3VibW9kdWxlIHVwZGF0ZSAmJgogCXJtIC1yZiBzdWJtb2QgJiYKIAlnaXQgcm0gc3VibW9kICYmCiAJZ2l0IHN0YXR1cyAtcyAtdW5vIC0taWdub3JlLXN1Ym1vZHVsZXM9bm9uZSA+IGFjdHVhbCAmJgotCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUuc3ViLnVybCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLnN1Yi5wYXRoCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JtIHJlbW92ZXMgd29yayB0cmVlIG9mIHVubW9kaWZpZWQgc3VibW9kdWxlcycgJwpAQCAtMjk5LDcgKzMxMCw5IEBACiAJZ2l0IHJtIHN1Ym1vZCAmJgogCXRlc3QgISAtZCBzdWJtb2QgJiYKIAlnaXQgc3RhdHVzIC1zIC11bm8gLS1pZ25vcmUtc3VibW9kdWxlcz1ub25lID4gYWN0dWFsICYmCi0JdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5zdWIudXJsICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUuc3ViLnBhdGgKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncm0gcmVtb3ZlcyBhIHN1Ym1vZHVsZSB3aXRoIGEgdHJhaWxpbmcgLycgJwpAQCAtMzMzLDYgKzM0Niw3MiBAQAogCWdpdCBybSAtZiBzdWJtb2QgJiYKIAl0ZXN0ICEgLWQgc3VibW9kICYmCiAJZ2l0IHN0YXR1cyAtcyAtdW5vIC0taWdub3JlLXN1Ym1vZHVsZXM9bm9uZSA+IGFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5zdWIudXJsICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUuc3ViLnBhdGgKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncm0gLS1jYWNoZWQgbGVhdmVzIHdvcmsgdHJlZSBvZiBwb3B1bGF0ZWQgc3VibW9kdWxlcyBhbmQgLmdpdG1vZHVsZXMgYWxvbmUnICcKKwlnaXQgcmVzZXQgLS1oYXJkICYmCisJZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgJiYKKwlnaXQgcm0gLS1jYWNoZWQgc3VibW9kICYmCisJdGVzdCAtZCBzdWJtb2QgJiYKKwl0ZXN0IC1mIHN1Ym1vZC8uZ2l0ICYmCisJZ2l0IHN0YXR1cyAtcyAtdW5vID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QuY2FjaGVkIGFjdHVhbCAmJgorCWdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLnN1Yi51cmwgJiYKKwlnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5zdWIucGF0aAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdybSAtLWRyeS1ydW4gZG9lcyBub3QgdG91Y2ggdGhlIHN1Ym1vZHVsZSBvciAuZ2l0bW9kdWxlcycgJworCWdpdCByZXNldCAtLWhhcmQgJiYKKwlnaXQgc3VibW9kdWxlIHVwZGF0ZSAmJgorCWdpdCBybSAtbiBzdWJtb2QgJiYKKwl0ZXN0IC1mIHN1Ym1vZC8uZ2l0ICYmCisJZ2l0IGRpZmYtaW5kZXggLS1leGl0LWNvZGUgSEVBRAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdybSBkb2VzIG5vdCBjb21wbGFpbiB3aGVuIG5vIC5naXRtb2R1bGVzIGZpbGUgaXMgZm91bmQnICcKKwlnaXQgcmVzZXQgLS1oYXJkICYmCisJZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgJiYKKwlnaXQgcm0gLmdpdG1vZHVsZXMgJiYKKwlnaXQgcm0gc3VibW9kID5hY3R1YWwgMj5hY3R1YWwuZXJyICYmCisJISB0ZXN0IC1zIGFjdHVhbC5lcnIgJiYKKwkhIHRlc3QgLWQgc3VibW9kICYmCisJISB0ZXN0IC1mIHN1Ym1vZC8uZ2l0ICYmCisJZ2l0IHN0YXR1cyAtcyAtdW5vID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QuYm90aF9kZWxldGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdybSB3aWxsIGVycm9yIG91dCBvbiBhIG1vZGlmaWVkIC5naXRtb2R1bGVzIGZpbGUgdW5sZXNzIHN0YWdlZCcgJworCWdpdCByZXNldCAtLWhhcmQgJiYKKwlnaXQgc3VibW9kdWxlIHVwZGF0ZSAmJgorCWdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgZm9vLmJhciB0cnVlICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJtIHN1Ym1vZCA+YWN0dWFsIDI+YWN0dWFsLmVyciAmJgorCXRlc3QgLXMgYWN0dWFsLmVyciAmJgorCXRlc3QgLWQgc3VibW9kICYmCisJdGVzdCAtZiBzdWJtb2QvLmdpdCAmJgorCWdpdCBkaWZmLWZpbGVzIC0tcXVpZXQgLS0gc3VibW9kICYmCisJZ2l0IGFkZCAuZ2l0bW9kdWxlcyAmJgorCWdpdCBybSBzdWJtb2QgPmFjdHVhbCAyPmFjdHVhbC5lcnIgJiYKKwkhIHRlc3QgLXMgYWN0dWFsLmVyciAmJgorCSEgdGVzdCAtZCBzdWJtb2QgJiYKKwkhIHRlc3QgLWYgc3VibW9kLy5naXQgJiYKKwlnaXQgc3RhdHVzIC1zIC11bm8gPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncm0gaXNzdWVzIGEgd2FybmluZyB3aGVuIHNlY3Rpb24gaXMgbm90IGZvdW5kIGluIC5naXRtb2R1bGVzJyAnCisJZ2l0IHJlc2V0IC0taGFyZCAmJgorCWdpdCBzdWJtb2R1bGUgdXBkYXRlICYmCisJZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyAtLXJlbW92ZS1zZWN0aW9uIHN1Ym1vZHVsZS5zdWIgJiYKKwlnaXQgYWRkIC5naXRtb2R1bGVzICYmCisJZWNobyAid2FybmluZzogQ291bGQgbm90IGZpbmQgc2VjdGlvbiBpbiAuZ2l0bW9kdWxlcyB3aGVyZSBwYXRoPXN1Ym1vZCIgPmV4cGVjdC5lcnIgJiYKKwlnaXQgcm0gc3VibW9kID5hY3R1YWwgMj5hY3R1YWwuZXJyICYmCisJdGVzdF9pMThuY21wIGV4cGVjdC5lcnIgYWN0dWFsLmVyciAmJgorCSEgdGVzdCAtZCBzdWJtb2QgJiYKKwkhIHRlc3QgLWYgc3VibW9kLy5naXQgJiYKKwlnaXQgc3RhdHVzIC1zIC11bm8gPmFjdHVhbCAmJgogCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKICcKIApAQCAtNDI3LDcgKzUwNiw5IEBACiAJZ2l0IHJtIC1mIHN1Ym1vZCAmJgogCXRlc3QgISAtZCBzdWJtb2QgJiYKIAlnaXQgc3RhdHVzIC1zIC11bm8gLS1pZ25vcmUtc3VibW9kdWxlcz1ub25lID4gYWN0dWFsICYmCi0JdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5zdWIudXJsICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUuc3ViLnBhdGgKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncm0gb2YgYSBjb25mbGljdGVkIHBvcHVsYXRlZCBzdWJtb2R1bGUgd2l0aCBtb2RpZmljYXRpb25zIGZhaWxzIHVubGVzcyBmb3JjZWQnICcKQEAgLTQ0Niw3ICs1MjcsOSBAQAogCWdpdCBybSAtZiBzdWJtb2QgJiYKIAl0ZXN0ICEgLWQgc3VibW9kICYmCiAJZ2l0IHN0YXR1cyAtcyAtdW5vIC0taWdub3JlLXN1Ym1vZHVsZXM9bm9uZSA+IGFjdHVhbCAmJgotCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUuc3ViLnVybCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLnN1Yi5wYXRoCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JtIG9mIGEgY29uZmxpY3RlZCBwb3B1bGF0ZWQgc3VibW9kdWxlIHdpdGggdW50cmFja2VkIGZpbGVzIGZhaWxzIHVubGVzcyBmb3JjZWQnICcKQEAgLTYyMiw2ICs3MDUsMjIgQEAKIAlybSAtcmYgc3VibW9kCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNraW5nIG91dCBhIGNvbW1pdCBhZnRlciBzdWJtb2R1bGUgcmVtb3ZhbCBuZWVkcyBtYW51YWwgdXBkYXRlcycgJworCWdpdCBjb21taXQgLW0gInN1Ym1vZHVsZSByZW1vdmFsIiBzdWJtb2QgJiYKKwlnaXQgY2hlY2tvdXQgSEVBRF4gJiYKKwlnaXQgc3VibW9kdWxlIHVwZGF0ZSAmJgorCWdpdCBjaGVja291dCAtcSBIRUFEXiAyPmFjdHVhbCAmJgorCWdpdCBjaGVja291dCAtcSBtYXN0ZXIgMj5hY3R1YWwgJiYKKwllY2hvICJ3YXJuaW5nOiB1bmFibGUgdG8gcm1kaXIgc3VibW9kOiBEaXJlY3Rvcnkgbm90IGVtcHR5IiA+ZXhwZWN0ZWQgJiYKKwl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCisJZ2l0IHN0YXR1cyAtcyBzdWJtb2QgPmFjdHVhbCAmJgorCWVjaG8gIj8/IHN1Ym1vZC8iID5leHBlY3RlZCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbCAmJgorCXJtIC1yZiBzdWJtb2QgJiYKKwlnaXQgc3RhdHVzIC1zIC11bm8gLS1pZ25vcmUtc3VibW9kdWxlcz1ub25lID4gYWN0dWFsICYmCisJISB0ZXN0IC1zIGFjdHVhbAorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdybSBvZiBkL2Ygd2hlbiBkIGhhcyBiZWNvbWUgYSBub24tZGlyZWN0b3J5JyAnCiAJcm0gLXJmIGQgJiYKIAlta2RpciBkICYmCmRpZmYgLS1naXQgYS90L3QzNzAwLWFkZC5zaCBiL3QvdDM3MDAtYWRkLnNoCmluZGV4IGFhYjg2ZTguLmZlMjc0ZTIgMTAwNzU1Ci0tLSBhL3QvdDM3MDAtYWRkLnNoCisrKyBiL3QvdDM3MDAtYWRkLnNoCkBAIC0yNzIsNiArMjcyLDI1IEBACiAJISAoZ2l0IGxzLWZpbGVzIHwgZ3JlcCAibm9uLWV4aXN0ZW50IikKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGFkZCAtQSBvbiBlbXB0eSByZXBvIGRvZXMgbm90IGVycm9yIG91dCcgJworCXJtIC1mciBlbXB0eSAmJgorCWdpdCBpbml0IGVtcHR5ICYmCisJKAorCQljZCBlbXB0eSAmJgorCQlnaXQgYWRkIC1BIC4gJiYKKwkJZ2l0IGFkZCAtQQorCSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnImdpdCBhZGQgLiIgaW4gZW1wdHkgcmVwbycgJworCXJtIC1mciBlbXB0eSAmJgorCWdpdCBpbml0IGVtcHR5ICYmCisJKAorCQljZCBlbXB0eSAmJgorCQlnaXQgYWRkIC4KKwkpCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBhZGQgLS1kcnktcnVuIG9mIGV4aXN0aW5nIGNoYW5nZWQgZmlsZScgIgogCWVjaG8gbmV3ID4+dHJhY2stdGhpcyAmJgogCWdpdCBhZGQgLS1kcnktcnVuIHRyYWNrLXRoaXMgPmFjdHVhbCAyPiYxICYmCmRpZmYgLS1naXQgYS90L3QzNzAxLWFkZC1pbnRlcmFjdGl2ZS5zaCBiL3QvdDM3MDEtYWRkLWludGVyYWN0aXZlLnNoCmluZGV4IDlmYWIyNWMuLjI0ZGRkOGEgMTAwNzU1Ci0tLSBhL3QvdDM3MDEtYWRkLWludGVyYWN0aXZlLnNoCisrKyBiL3QvdDM3MDEtYWRkLWludGVyYWN0aXZlLnNoCkBAIC0yLDIwICsyLDI1IEBACiAKIHRlc3RfZGVzY3JpcHRpb249J2FkZCAtaSBiYXNpYyB0ZXN0cycKIC4gLi90ZXN0LWxpYi5zaAotLiAiJFRFU1RfRElSRUNUT1JZIi9saWItcHJlcmVxLUZJTEVNT0RFLnNoCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCAnc2V0dXAgKGluaXRpYWwpJyAnCitpZiAhIHRlc3RfaGF2ZV9wcmVyZXEgUEVSTAordGhlbgorCXNraXBfYWxsPSdza2lwcGluZyBhZGQgLWkgdGVzdHMsIHBlcmwgbm90IGF2YWlsYWJsZScKKwl0ZXN0X2RvbmUKK2ZpCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIChpbml0aWFsKScgJwogCWVjaG8gY29udGVudCA+ZmlsZSAmJgogCWdpdCBhZGQgZmlsZSAmJgogCWVjaG8gbW9yZSA+PmZpbGUgJiYKIAllY2hvIGxpbmVzID4+ZmlsZQogJwotdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdzdGF0dXMgd29ya3MgKGluaXRpYWwpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgd29ya3MgKGluaXRpYWwpJyAnCiAJZ2l0IGFkZCAtaSA8L2Rldi9udWxsID5vdXRwdXQgJiYKIAlncmVwICIrMS8tMCAqKzIvLTAgZmlsZSIgb3V0cHV0CiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCAnc2V0dXAgZXhwZWN0ZWQnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGV4cGVjdGVkJyAnCiBjYXQgPmV4cGVjdGVkIDw8RU9GCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogaW5kZXggMDAwMDAwMC4uZDk1ZjNhZApAQCAtMjYsMTkgKzMxLDE5IEBACiBFT0YKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdkaWZmIHdvcmtzIChpbml0aWFsKScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlmZiB3b3JrcyAoaW5pdGlhbCknICcKIAkoZWNobyBkOyBlY2hvIDEpIHwgZ2l0IGFkZCAtaSA+b3V0cHV0ICYmCiAJc2VkIC1uZSAiL25ldyBmaWxlLywvY29udGVudC9wIiA8b3V0cHV0ID5kaWZmICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgZGlmZgogJwotdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdyZXZlcnQgd29ya3MgKGluaXRpYWwpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXZlcnQgd29ya3MgKGluaXRpYWwpJyAnCiAJZ2l0IGFkZCBmaWxlICYmCiAJKGVjaG8gcjsgZWNobyAxKSB8IGdpdCBhZGQgLWkgJiYKIAlnaXQgbHMtZmlsZXMgPm91dHB1dCAmJgogCSEgZ3JlcCAuIG91dHB1dAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ3NldHVwIChjb21taXQpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCAoY29tbWl0KScgJwogCWVjaG8gYmFzZWxpbmUgPmZpbGUgJiYKIAlnaXQgYWRkIGZpbGUgJiYKIAlnaXQgY29tbWl0IC1tIGNvbW1pdCAmJgpAQCAtNDcsMTIgKzUyLDEyIEBACiAJZWNobyBtb3JlID4+ZmlsZSAmJgogCWVjaG8gbGluZXMgPj5maWxlCiAnCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ3N0YXR1cyB3b3JrcyAoY29tbWl0KScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzIHdvcmtzIChjb21taXQpJyAnCiAJZ2l0IGFkZCAtaSA8L2Rldi9udWxsID5vdXRwdXQgJiYKIAlncmVwICIrMS8tMCAqKzIvLTAgZmlsZSIgb3V0cHV0CiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCAnc2V0dXAgZXhwZWN0ZWQnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGV4cGVjdGVkJyAnCiBjYXQgPmV4cGVjdGVkIDw8RU9GCiBpbmRleCAxODBiNDdjLi5iNmYyYzA4IDEwMDY0NAogLS0tIGEvZmlsZQpAQCAtNjMsMTIgKzY4LDEyIEBACiBFT0YKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdkaWZmIHdvcmtzIChjb21taXQpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaWZmIHdvcmtzIChjb21taXQpJyAnCiAJKGVjaG8gZDsgZWNobyAxKSB8IGdpdCBhZGQgLWkgPm91dHB1dCAmJgogCXNlZCAtbmUgIi9eaW5kZXgvLC9jb250ZW50L3AiIDxvdXRwdXQgPmRpZmYgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCBkaWZmCiAnCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ3JldmVydCB3b3JrcyAoY29tbWl0KScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmV2ZXJ0IHdvcmtzIChjb21taXQpJyAnCiAJZ2l0IGFkZCBmaWxlICYmCiAJKGVjaG8gcjsgZWNobyAxKSB8IGdpdCBhZGQgLWkgJiYKIAlnaXQgYWRkIC1pIDwvZGV2L251bGwgPm91dHB1dCAmJgpAQCAtNzYsMjQgKzgxLDI0IEBACiAnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdzZXR1cCBleHBlY3RlZCcgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgZXhwZWN0ZWQnICcKIGNhdCA+ZXhwZWN0ZWQgPDxFT0YKIEVPRgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ3NldHVwIGZha2UgZWRpdG9yJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBmYWtlIGVkaXRvcicgJwogCT5mYWtlX2VkaXRvci5zaCAmJgogCWNobW9kIGEreCBmYWtlX2VkaXRvci5zaCAmJgogCXRlc3Rfc2V0X2VkaXRvciAiJChwd2QpL2Zha2VfZWRpdG9yLnNoIgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ2R1bW15IGVkaXQgd29ya3MnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2R1bW15IGVkaXQgd29ya3MnICcKIAkoZWNobyBlOyBlY2hvIGEpIHwgZ2l0IGFkZCAtcCAmJgogCWdpdCBkaWZmID4gZGlmZiAmJgogCXRlc3RfY21wIGV4cGVjdGVkIGRpZmYKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdzZXR1cCBwYXRjaCcgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgcGF0Y2gnICcKIGNhdCA+cGF0Y2ggPDxFT0YKIEBAIC0xLDEgKzEsNCBAQAogIHRoaXMKQEAgLTEwMyw3ICsxMDgsNyBAQAogRU9GCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCAnc2V0dXAgZmFrZSBlZGl0b3InICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGZha2UgZWRpdG9yJyAnCiAJZWNobyAiIyEkU0hFTExfUEFUSCIgPmZha2VfZWRpdG9yLnNoICYmCiAJY2F0ID4+ZmFrZV9lZGl0b3Iuc2ggPDxcRU9GICYmCiBtdiAtZiAiJDEiIG9sZHBhdGNoICYmCkBAIC0xMTMsMjYgKzExOCwyNiBAQAogCXRlc3Rfc2V0X2VkaXRvciAiJChwd2QpL2Zha2VfZWRpdG9yLnNoIgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ2JhZCBlZGl0IHJlamVjdGVkJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdiYWQgZWRpdCByZWplY3RlZCcgJwogCWdpdCByZXNldCAmJgogCShlY2hvIGU7IGVjaG8gbjsgZWNobyBkKSB8IGdpdCBhZGQgLXAgPm91dHB1dCAmJgogCWdyZXAgImh1bmsgZG9lcyBub3QgYXBwbHkiIG91dHB1dAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ3NldHVwIHBhdGNoJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBwYXRjaCcgJwogY2F0ID5wYXRjaCA8PEVPRgogdGhpcyBwYXRjaAogaXMgZ2FyYmFnZQogRU9GCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCAnZ2FyYmFnZSBlZGl0IHJlamVjdGVkJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnYXJiYWdlIGVkaXQgcmVqZWN0ZWQnICcKIAlnaXQgcmVzZXQgJiYKIAkoZWNobyBlOyBlY2hvIG47IGVjaG8gZCkgfCBnaXQgYWRkIC1wID5vdXRwdXQgJiYKIAlncmVwICJodW5rIGRvZXMgbm90IGFwcGx5IiBvdXRwdXQKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdzZXR1cCBwYXRjaCcgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgcGF0Y2gnICcKIGNhdCA+cGF0Y2ggPDxFT0YKIEBAIC0xLDAgKzEsMCBAQAogIGJhc2VsaW5lCkBAIC0xNDIsNyArMTQ3LDcgQEAKIEVPRgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ3NldHVwIGV4cGVjdGVkJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBleHBlY3RlZCcgJwogY2F0ID5leHBlY3RlZCA8PEVPRgogZGlmZiAtLWdpdCBhL2ZpbGUgYi9maWxlCiBpbmRleCBiNWRkNmM5Li5mOTEwYWU5IDEwMDY0NApAQCAtMTU3LDEzICsxNjIsMTMgQEAKIEVPRgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ3JlYWwgZWRpdCB3b3JrcycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVhbCBlZGl0IHdvcmtzJyAnCiAJKGVjaG8gZTsgZWNobyBuOyBlY2hvIGQpIHwgZ2l0IGFkZCAtcCAmJgogCWdpdCBkaWZmID5vdXRwdXQgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCBvdXRwdXQKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdza2lwIGZpbGVzIHNpbWlsYXJseSBhcyBjb21taXQgLWEnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NraXAgZmlsZXMgc2ltaWxhcmx5IGFzIGNvbW1pdCAtYScgJwogCWdpdCByZXNldCAmJgogCWVjaG8gZmlsZSA+LmdpdGlnbm9yZSAmJgogCWVjaG8gY2hhbmdlZCA+ZmlsZSAmJgpAQCAtMTc3LDcgKzE4Miw3IEBACiAnCiBybSAtZiAuZ2l0aWdub3JlCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCxGSUxFTU9ERSAncGF0Y2ggZG9lcyBub3QgYWZmZWN0IG1vZGUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgRklMRU1PREUgJ3BhdGNoIGRvZXMgbm90IGFmZmVjdCBtb2RlJyAnCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWVjaG8gY29udGVudCA+PmZpbGUgJiYKIAljaG1vZCAreCBmaWxlICYmCkBAIC0xODYsNyArMTkxLDcgQEAKIAlnaXQgZGlmZiBmaWxlIHwgZ3JlcCAibmV3IG1vZGUiCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCxGSUxFTU9ERSAnc3RhZ2UgbW9kZSBidXQgbm90IGh1bmsnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgRklMRU1PREUgJ3N0YWdlIG1vZGUgYnV0IG5vdCBodW5rJyAnCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWVjaG8gY29udGVudCA+PmZpbGUgJiYKIAljaG1vZCAreCBmaWxlICYmCkBAIC0xOTYsNyArMjAxLDcgQEAKICcKIAogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwsRklMRU1PREUgJ3N0YWdlIG1vZGUgYW5kIGh1bmsnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgRklMRU1PREUgJ3N0YWdlIG1vZGUgYW5kIGh1bmsnICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZWNobyBjb250ZW50ID4+ZmlsZSAmJgogCWNobW9kICt4IGZpbGUgJiYKQEAgLTIwOCwxNCArMjEzLDE0IEBACiAKICMgZW5kIG9mIHRlc3RzIGRpc2FibGVkIHdoZW4gZmlsZW1vZGUgaXMgbm90IHVzYWJsZQogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ3NldHVwIGFnYWluJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBhZ2FpbicgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAl0ZXN0X2NobW9kICt4IGZpbGUgJiYKIAllY2hvIGNvbnRlbnQgPj5maWxlCiAnCiAKICMgV3JpdGUgdGhlIHBhdGNoIGZpbGUgd2l0aCBhIG5ldyBsaW5lIGF0IHRoZSB0b3AgYW5kIGJvdHRvbQotdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdzZXR1cCBwYXRjaCcgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgcGF0Y2gnICcKIGNhdCA+cGF0Y2ggPDxFT0YKIGluZGV4IDE4MGI0N2MuLmI2ZjJjMDggMTAwNjQ0CiAtLS0gYS9maWxlCkBAIC0yMjksNyArMjM0LDcgQEAKICcKIAogIyBFeHBlY3RlZCBvdXRwdXQsIHNpbWlsYXIgdG8gdGhlIHBhdGNoIGJ1dCB3LyBkaWZmIGF0IHRoZSB0b3AKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCAnc2V0dXAgZXhwZWN0ZWQnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGV4cGVjdGVkJyAnCiBjYXQgPmV4cGVjdGVkIDw8RU9GCiBkaWZmIC0tZ2l0IGEvZmlsZSBiL2ZpbGUKIGluZGV4IGI2ZjJjMDguLjYxYjkwNTMgMTAwNzU1CkBAIC0yNDQsNyArMjQ5LDcgQEAKICcKIAogIyBUZXN0IHNwbGl0dGluZyB0aGUgZmlyc3QgcGF0Y2gsIHRoZW4gYWRkaW5nIGJvdGgKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCAnYWRkIGZpcnN0IGxpbmUgd29ya3MnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FkZCBmaXJzdCBsaW5lIHdvcmtzJyAnCiAJZ2l0IGNvbW1pdCAtYW0gImNsZWFyIGxvY2FsIGNoYW5nZXMiICYmCiAJZ2l0IGFwcGx5IHBhdGNoICYmCiAJKGVjaG8gczsgZWNobyB5OyBlY2hvIHkpIHwgZ2l0IGFkZCAtcCBmaWxlICYmCkBAIC0yNTIsNyArMjU3LDcgQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCBkaWZmCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCAnc2V0dXAgZXhwZWN0ZWQnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGV4cGVjdGVkJyAnCiBjYXQgPmV4cGVjdGVkIDw8RU9GCiBkaWZmIC0tZ2l0IGEvbm9uLWVtcHR5IGIvbm9uLWVtcHR5CiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKQEAgLTI2NCw3ICsyNjksNyBAQAogRU9GCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCAnZGVsZXRpbmcgYSBub24tZW1wdHkgZmlsZScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGVsZXRpbmcgYSBub24tZW1wdHkgZmlsZScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAllY2hvIGNvbnRlbnQgPm5vbi1lbXB0eSAmJgogCWdpdCBhZGQgbm9uLWVtcHR5ICYmCkBAIC0yNzUsNyArMjgwLDcgQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCBkaWZmCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUEVSTCAnc2V0dXAgZXhwZWN0ZWQnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGV4cGVjdGVkJyAnCiBjYXQgPmV4cGVjdGVkIDw8RU9GCiBkaWZmIC0tZ2l0IGEvZW1wdHkgYi9lbXB0eQogZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CkBAIC0yODMsNyArMjg4LDcgQEAKIEVPRgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ2RlbGV0aW5nIGFuIGVtcHR5IGZpbGUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RlbGV0aW5nIGFuIGVtcHR5IGZpbGUnICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJPiBlbXB0eSAmJgogCWdpdCBhZGQgZW1wdHkgJiYKQEAgLTI5NCw3ICsyOTksNyBAQAogCXRlc3RfY21wIGV4cGVjdGVkIGRpZmYKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdzcGxpdCBodW5rIHNldHVwJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzcGxpdCBodW5rIHNldHVwJyAnCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWZvciBpIGluIDEwIDIwIDMwIDQwIDUwIDYwCiAJZG8KQEAgLTMxMCw3ICszMTUsNyBAQAogCWRvbmUgPnRlc3QKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdzcGxpdCBodW5rICJhZGQgLXAgKGVkaXQpIicgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3BsaXQgaHVuayAiYWRkIC1wIChlZGl0KSInICcKIAkjIFNwbGl0LCBzYXkgRWRpdCBhbmQgZG8gbm90aGluZy4gIFRoZW46CiAJIwogCSMgMS4gQnJva2VuIHZlcnNpb24gcmVzdWx0cyBpbiBhIHBhdGNoIHRoYXQgZG9lcyBub3QgYXBwbHkgYW5kCmRpZmYgLS1naXQgYS90L3QzOTAzLXN0YXNoLnNoIGIvdC90MzkwMy1zdGFzaC5zaAppbmRleCBkZWJkYTdhLi41Yjc5YjIxIDEwMDc1NQotLS0gYS90L3QzOTAzLXN0YXNoLnNoCisrKyBiL3QvdDM5MDMtc3Rhc2guc2gKQEAgLTY3Myw0ICs2NzMsMTYgQEAKIAlncmVwIHF1dXggYmF6enkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnaGFuZGxlIHN0YXNoIHNwZWNpZmljYXRpb24gd2l0aCBzcGFjZXMnICcKKwlnaXQgc3Rhc2ggY2xlYXIgJiYKKwllY2hvIHBpZyA+ZmlsZSAmJgorCWdpdCBzdGFzaCAmJgorCXN0YW1wPSQoZ2l0IGxvZyAtZyAtLWZvcm1hdD0iJWNkIiAtMSByZWZzL3N0YXNoKSAmJgorCXRlc3RfdGljayAmJgorCWVjaG8gY293ID5maWxlICYmCisJZ2l0IHN0YXNoICYmCisJZ2l0IHN0YXNoIGFwcGx5ICJzdGFzaEB7JHN0YW1wfSIgJiYKKwlncmVwIHBpZyBmaWxlCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MzkxMC1tYWMtb3MtcHJlY29tcG9zZS5zaCBiL3QvdDM5MTAtbWFjLW9zLXByZWNvbXBvc2Uuc2gKaW5kZXggNWZlNTdjNS4uZTRiYTYwMSAxMDA3NTUKLS0tIGEvdC90MzkxMC1tYWMtb3MtcHJlY29tcG9zZS5zaAorKysgYi90L3QzOTEwLW1hYy1vcy1wcmVjb21wb3NlLnNoCkBAIC0zNiw3ICszNiw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgImRldGVjdCBpZiBuZmQgbmVlZGVkIiAnCiAJcHJlY29tcG9zZXVuaWNvZGU9YGdpdCBjb25maWcgY29yZS5wcmVjb21wb3NldW5pY29kZWAgJiYKLQl0ZXN0ICIkcHJlY29tcG9zZXVuaWNvZGUiID0gZmFsc2UgJiYKKwl0ZXN0ICIkcHJlY29tcG9zZXVuaWNvZGUiID0gdHJ1ZSAmJgogCWdpdCBjb25maWcgY29yZS5wcmVjb21wb3NldW5pY29kZSB0cnVlCiAnCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICJzZXR1cCIgJwpkaWZmIC0tZ2l0IGEvdC90NDAxMC1kaWZmLXBhdGhzcGVjLnNoIGIvdC90NDAxMC1kaWZmLXBhdGhzcGVjLnNoCmluZGV4IDU4OWJjNmIuLjlmNTY1OWYgMTAwNzU1Ci0tLSBhL3QvdDQwMTAtZGlmZi1wYXRoc3BlYy5zaAorKysgYi90L3Q0MDEwLWRpZmYtcGF0aHNwZWMuc2gKQEAgLTExMCw2ICsxMTAsMjMgQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCByZXN1bHQKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgc3VibW9kdWxlcycgJworCXRlc3RfdGljayAmJgorCWdpdCBpbml0IHN1Ym1vZCAmJgorCSggY2Qgc3VibW9kICYmIHRlc3RfY29tbWl0IGZpcnN0OyApICYmCisJZ2l0IGFkZCBzdWJtb2QgJiYKKwlnaXQgY29tbWl0IC1tIGZpcnN0ICYmCisJKCBjZCBzdWJtb2QgJiYgdGVzdF9jb21taXQgc2Vjb25kOyApICYmCisJZ2l0IGFkZCBzdWJtb2QgJiYKKwlnaXQgY29tbWl0IC1tIHNlY29uZAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaWZmLXRyZWUgaWdub3JlcyB0cmFpbGluZyBzbGFzaCBvbiBzdWJtb2R1bGUgcGF0aCcgJworCWdpdCBkaWZmIC0tbmFtZS1vbmx5IEhFQUReIEhFQUQgc3VibW9kID5leHBlY3QgJiYKKwlnaXQgZGlmZiAtLW5hbWUtb25seSBIRUFEXiBIRUFEIHN1Ym1vZC8gPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlmZiBtdWx0aXBsZSB3aWxkY2FyZCBwYXRoc3BlY3MnICcKIAlta2RpciBwYXRoMiAmJgogCWVjaG8gcmV6cm92ID5wYXRoMi9maWxlMSAmJgpkaWZmIC0tZ2l0IGEvdC90NDAxNC1mb3JtYXQtcGF0Y2guc2ggYi90L3Q0MDE0LWZvcm1hdC1wYXRjaC5zaAppbmRleCA4ZjI3MmJjLi43MzE5NGIyIDEwMDc1NQotLS0gYS90L3Q0MDE0LWZvcm1hdC1wYXRjaC5zaAorKysgYi90L3Q0MDE0LWZvcm1hdC1wYXRjaC5zaApAQCAtMjkzLDcgKzI5Myw3IEBACiAJKGdpdCBmb3JtYXQtcGF0Y2ggLS1zdGRvdXQgIiRAIjsgZWNobyAkPyA+IHN0YXR1cy5vdXQpIHwKIAkjIFByaW50cyBldmVyeXRoaW5nIGJldHdlZW4gdGhlIE1lc3NhZ2UtSUQgYW5kIEluLVJlcGx5LVRvLAogCSMgYW5kIHJlcGxhY2VzIGFsbCBNZXNzYWdlLUlELWxvb2thbGlrZXMgYnkgYSBzZXF1ZW5jZSBudW1iZXIKLQkiJFBFUkxfUEFUSCIgLW5lICcKKwlwZXJsIC1uZSAnCiAJCWlmICgvXihtZXNzYWdlLWlkfHJlZmVyZW5jZXN8aW4tcmVwbHktdG8pL2kpIHsKIAkJCSRwcmludGluZyA9IDE7CiAJCX0gZWxzaWYgKC9eXFMvKSB7CmRpZmYgLS1naXQgYS90L3Q0MDE1LWRpZmYtd2hpdGVzcGFjZS5zaCBiL3QvdDQwMTUtZGlmZi13aGl0ZXNwYWNlLnNoCmluZGV4IDNmYjRiOTcuLjYwNGE4MzggMTAwNzU1Ci0tLSBhL3QvdDQwMTUtZGlmZi13aGl0ZXNwYWNlLnNoCisrKyBiL3QvdDQwMTUtZGlmZi13aGl0ZXNwYWNlLnNoCkBAIC0xNDUsNyArMTQ1LDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2lnbm9yZS1ibGFuay1saW5lczogb25seSBuZXcgbGluZXMnICcKIAl0ZXN0X3NlcSA1ID54ICYmCiAJZ2l0IHVwZGF0ZS1pbmRleCB4ICYmCi0JdGVzdF9zZXEgNSB8IHNlZCAiLzMvaSBcXAorCXRlc3Rfc2VxIDUgfCBzZWQgIi8zL2lcXAogIiA+eCAmJgogCWdpdCBkaWZmIC0taWdub3JlLWJsYW5rLWxpbmVzID5vdXQgJiYKIAk+ZXhwZWN0ICYmCkBAIC0xNTUsNyArMTU1LDggQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2lnbm9yZS1ibGFuay1saW5lczogb25seSBuZXcgbGluZXMgd2l0aCBzcGFjZScgJwogCXRlc3Rfc2VxIDUgPnggJiYKIAlnaXQgdXBkYXRlLWluZGV4IHggJiYKLQl0ZXN0X3NlcSA1IHwgc2VkICIvMy9pIFwgIiA+eCAmJgorCXRlc3Rfc2VxIDUgfCBzZWQgIi8zL2lcXAorICIgPnggJiYKIAlnaXQgZGlmZiAtdyAtLWlnbm9yZS1ibGFuay1saW5lcyA+b3V0ICYmCiAJPmV4cGVjdCAmJgogCXRlc3RfY21wIG91dCBleHBlY3QKZGlmZiAtLWdpdCBhL3QvdDQwMjAtZGlmZi1leHRlcm5hbC5zaCBiL3QvdDQwMjAtZGlmZi1leHRlcm5hbC5zaAppbmRleCAyZTdkNzNmLi5iY2FlMzVhIDEwMDc1NQotLS0gYS90L3Q0MDIwLWRpZmYtZXh0ZXJuYWwuc2gKKysrIGIvdC90NDAyMC1kaWZmLWV4dGVybmFsLnNoCkBAIC0xNzcsNyArMTc3LDcgQEAKIAlnaXQgZGlmZiB8IGdyZXAgQmluYXJ5CiAnCiAKLWVjaG8gTlVMWmJldHdlZW5ad29yZHMgfCAiJFBFUkxfUEFUSCIgLXBlICd5L1ovXDAwMC8nID4gZmlsZQorZWNobyBOVUxaYmV0d2Vlblp3b3JkcyB8IHBlcmwgLXBlICd5L1ovXDAwMC8nID4gZmlsZQogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdmb3JjZSBkaWZmIHdpdGggImRpZmYiJyAnCiAJZWNobyA+LmdpdGF0dHJpYnV0ZXMgImZpbGUgZGlmZiIgJiYKQEAgLTE5Myw2ICsxOTMsMTkgQEAKIAlHSVRfRVhURVJOQUxfRElGRj1lY2hvIGdpdCBkaWZmCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ0dJVF9FWFRFUk5BTF9ESUZGIHBhdGggY291bnRlci90b3RhbCcgJworCXdyaXRlX3NjcmlwdCBleHRlcm5hbC1kaWZmLnNoIDw8LVxFT0YgJiYKKwllY2hvICRHSVRfRElGRl9QQVRIX0NPVU5URVIgb2YgJEdJVF9ESUZGX1BBVEhfVE9UQUwgPj5jb3VudGVyLnR4dAorCUVPRgorCT5jb3VudGVyLnR4dCAmJgorCWNhdCA+ZXhwZWN0IDw8LVxFT0YgJiYKKwkxIG9mIDIKKwkyIG9mIDIKKwlFT0YKKwlHSVRfRVhURVJOQUxfRElGRj0uL2V4dGVybmFsLWRpZmYuc2ggZ2l0IGRpZmYgJiYKKwl0ZXN0X2NtcCBleHBlY3QgY291bnRlci50eHQKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnR0lUX0VYVEVSTkFMX0RJRkYgZ2VuZXJhdGVzIHByZXR0eSBwYXRocycgJwogCXRvdWNoIGZpbGUuZXh0ICYmCiAJZ2l0IGFkZCBmaWxlLmV4dCAmJgpkaWZmIC0tZ2l0IGEvdC90NDAyOS1kaWZmLXRyYWlsaW5nLXNwYWNlLnNoIGIvdC90NDAyOS1kaWZmLXRyYWlsaW5nLXNwYWNlLnNoCmluZGV4IDM2ZTJmMDcuLjNjY2MyMzcgMTAwNzU1Ci0tLSBhL3QvdDQwMjktZGlmZi10cmFpbGluZy1zcGFjZS5zaAorKysgYi90L3Q0MDI5LWRpZmYtdHJhaWxpbmctc3BhY2Uuc2gKQEAgLTI3LDcgKzI3LDcgQEAKICAgICAgZ2l0IGNvbmZpZyAtLWJvb2wgZGlmZi5zdXBwcmVzc0JsYW5rRW1wdHkgdHJ1ZSAmJgogICAgICBnaXQgZGlmZiBmID4gYWN0dWFsICYmCiAgICAgIHRlc3RfY21wIGV4cCBhY3R1YWwgJiYKLSAgICAgIiRQRVJMX1BBVEgiIC1pLmJhayAtcCAtZSAicy9eXCQvIC8iIGV4cCAmJgorICAgICBwZXJsIC1pLmJhayAtcCAtZSAicy9eXCQvIC8iIGV4cCAmJgogICAgICBnaXQgY29uZmlnIC0tYm9vbCBkaWZmLnN1cHByZXNzQmxhbmtFbXB0eSBmYWxzZSAmJgogICAgICBnaXQgZGlmZiBmID4gYWN0dWFsICYmCiAgICAgIHRlc3RfY21wIGV4cCBhY3R1YWwgJiYKZGlmZiAtLWdpdCBhL3QvdDQwMzAtZGlmZi10ZXh0Y29udi5zaCBiL3QvdDQwMzAtZGlmZi10ZXh0Y29udi5zaAppbmRleCBmNzVmNDZmLi5hYWQ2YzdmIDEwMDc1NQotLS0gYS90L3Q0MDMwLWRpZmYtdGV4dGNvbnYuc2gKKysrIGIvdC90NDAzMC1kaWZmLXRleHRjb252LnNoCkBAIC01OCw2ICs1OCwxMiBAQAogCXRlc3RfY21wIGV4cGVjdC50ZXh0IGFjdHVhbAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaG93IGNvbW1pdCBwcm9kdWNlcyB0ZXh0JyAnCisJZ2l0IHNob3cgSEVBRCA+ZGlmZiAmJgorCWZpbmRfZGlmZiA8ZGlmZiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0LnRleHQgYWN0dWFsCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RpZmYtdHJlZSBwcm9kdWNlcyBiaW5hcnknICcKIAlnaXQgZGlmZi10cmVlIC1wIEhFQUReIEhFQUQgPmRpZmYgJiYKIAlmaW5kX2RpZmYgPGRpZmYgPmFjdHVhbCAmJgpAQCAtODQsNiArOTAsMjQgQEAKIAlnaXQgcmVzZXQgLS1zb2Z0IEhFQURAezF9CiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Nob3cgYmxvYiBwcm9kdWNlcyBiaW5hcnknICcKKwlnaXQgc2hvdyBIRUFEOmZpbGUgPmFjdHVhbCAmJgorCXByaW50ZiAiXFwwXFxuXFwwMVxcbiIgPmV4cGVjdCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2hvdyAtLXRleHRjb252IGJsb2IgcHJvZHVjZXMgdGV4dCcgJworCWdpdCBzaG93IC0tdGV4dGNvbnYgSEVBRDpmaWxlID5hY3R1YWwgJiYKKwlwcmludGYgIjBcXG4xXFxuIiA+ZXhwZWN0ICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaG93IC0tbm8tdGV4dGNvbnYgYmxvYiBwcm9kdWNlcyBiaW5hcnknICcKKwlnaXQgc2hvdyAtLW5vLXRleHRjb252IEhFQUQ6ZmlsZSA+YWN0dWFsICYmCisJcHJpbnRmICJcXDBcXG5cXDAxXFxuIiA+ZXhwZWN0ICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdncmVwLWRpZmYgKC1HKSBvcGVyYXRlcyBvbiB0ZXh0Y29udiBkYXRhIChhZGQpJyAnCiAJZWNobyBvbmUgPmV4cGVjdCAmJgogCWdpdCBsb2cgLS1yb290IC0tZm9ybWF0PSVzIC1HMCA+YWN0dWFsICYmCmRpZmYgLS1naXQgYS90L3Q0MDUzLWRpZmYtbm8taW5kZXguc2ggYi90L3Q0MDUzLWRpZmYtbm8taW5kZXguc2gKaW5kZXggOTc5ZTk4My4uMmFiM2M0OCAxMDA3NTUKLS0tIGEvdC90NDA1My1kaWZmLW5vLWluZGV4LnNoCisrKyBiL3QvdDQwNTMtZGlmZi1uby1pbmRleC5zaApAQCAtMjksNCArMjksMzAgQEAKIAkpCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBkaWZmIC0tbm8taW5kZXggd2l0aCBicm9rZW4gaW5kZXgnICcKKwkoCisJCWNkIHJlcG8gJiYKKwkJZWNobyBicm9rZW4gPi5naXQvaW5kZXggJiYKKwkJZ2l0IGRpZmYgLS1uby1pbmRleCBhIC4uL25vbi9naXQvYQorCSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGRpZmYgb3V0c2lkZSByZXBvIHdpdGggYnJva2VuIGluZGV4JyAnCisJKAorCQljZCByZXBvICYmCisJCWdpdCBkaWZmIC4uL25vbi9naXQvYSAuLi9ub24vZ2l0L2IKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBkaWZmIC0tbm8taW5kZXggZXhlY3V0ZWQgb3V0c2lkZSByZXBvIGdpdmVzIGNvcnJlY3QgZXJyb3IgbWVzc2FnZScgJworCSgKKwkJR0lUX0NFSUxJTkdfRElSRUNUT1JJRVM9JFRSQVNIX0RJUkVDVE9SWS9ub24gJiYKKwkJZXhwb3J0IEdJVF9DRUlMSU5HX0RJUkVDVE9SSUVTICYmCisJCWNkIG5vbi9naXQgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IGRpZmYgLS1uby1pbmRleCBhIDI+YWN0dWFsLmVyciAmJgorCQllY2hvICJ1c2FnZTogZ2l0IGRpZmYgLS1uby1pbmRleCA8cGF0aD4gPHBhdGg+IiA+ZXhwZWN0LmVyciAmJgorCQl0ZXN0X2NtcCBleHBlY3QuZXJyIGFjdHVhbC5lcnIKKwkpCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NDA1NS1kaWZmLWNvbnRleHQuc2ggYi90L3Q0MDU1LWRpZmYtY29udGV4dC5zaAppbmRleCA5NzE3MmI0Li5jZDA0NTQzIDEwMDc1NQotLS0gYS90L3Q0MDU1LWRpZmYtY29udGV4dC5zaAorKysgYi90L3Q0MDU1LWRpZmYtY29udGV4dC5zaApAQCAtNzMsNyArNzMsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbm9uLWludGVnZXIgY29uZmlnIHBhcnNpbmcnICcKIAlnaXQgY29uZmlnIGRpZmYuY29udGV4dCBubyAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCBkaWZmIDI+b3V0cHV0ICYmCi0JdGVzdF9pMThuZ3JlcCAiYmFkIGNvbmZpZyB2YWx1ZSIgb3V0cHV0CisJdGVzdF9pMThuZ3JlcCAiYmFkIG51bWVyaWMgY29uZmlnIHZhbHVlIiBvdXRwdXQKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbmVnYXRpdmUgaW50ZWdlciBjb25maWcgcGFyc2luZycgJwpkaWZmIC0tZ2l0IGEvdC90NDA1Ni1kaWZmLW9yZGVyLnNoIGIvdC90NDA1Ni1kaWZmLW9yZGVyLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllMmIyOWUKLS0tIC9kZXYvbnVsbAorKysgYi90L3Q0MDU2LWRpZmYtb3JkZXIuc2gKQEAgLTAsMCArMSwxMDAgQEAKKyMhL2Jpbi9zaAorCit0ZXN0X2Rlc2NyaXB0aW9uPSdkaWZmIG9yZGVyJworCisuIC4vdGVzdC1saWIuc2gKKworY3JlYXRlX2ZpbGVzICgpIHsKKwllY2hvICIkMSIgPmEuaCAmJgorCWVjaG8gIiQxIiA+Yi5jICYmCisJZWNobyAiJDEiID5jL01ha2VmaWxlICYmCisJZWNobyAiJDEiID5kLnR4dCAmJgorCWdpdCBhZGQgYS5oIGIuYyBjL01ha2VmaWxlIGQudHh0ICYmCisJZ2l0IGNvbW1pdCAtbSIkMSIKK30KKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAnICcKKwlta2RpciBjICYmCisJY3JlYXRlX2ZpbGVzIDEgJiYKKwljcmVhdGVfZmlsZXMgMiAmJgorCisJY2F0ID5vcmRlcl9maWxlXzEgPDwtXEVPRiAmJgorCSpNYWtlZmlsZQorCSoudHh0CisJKi5oCisJRU9GCisKKwljYXQgPm9yZGVyX2ZpbGVfMiA8PC1cRU9GICYmCisJKk1ha2VmaWxlCisJKi5oCisJKi5jCisJRU9GCisKKwljYXQgPmV4cGVjdF9ub25lIDw8LVxFT0YgJiYKKwlhLmgKKwliLmMKKwljL01ha2VmaWxlCisJZC50eHQKKwlFT0YKKworCWNhdCA+ZXhwZWN0XzEgPDwtXEVPRiAmJgorCWMvTWFrZWZpbGUKKwlkLnR4dAorCWEuaAorCWIuYworCUVPRgorCisJY2F0ID5leHBlY3RfMiA8PC1cRU9GCisJYy9NYWtlZmlsZQorCWEuaAorCWIuYworCWQudHh0CisJRU9GCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgIm5vIG9yZGVyICg9dHJlZSBvYmplY3Qgb3JkZXIpIiAnCisJZ2l0IGRpZmYgLS1uYW1lLW9ubHkgSEVBRF4uLkhFQUQgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdF9ub25lIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtaXNzaW5nIG9yZGVyZmlsZScgJworCXJtIC1mIGJvZ3VzX2ZpbGUgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgZGlmZiAtT2JvZ3VzX2ZpbGUgLS1uYW1lLW9ubHkgSEVBRF4uLkhFQUQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBQT1NJWFBFUk0sU0FOSVRZICd1bnJlYWRhYmxlIG9yZGVyZmlsZScgJworCT51bnJlYWRhYmxlX2ZpbGUgJiYKKwljaG1vZCAtciB1bnJlYWRhYmxlX2ZpbGUgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgZGlmZiAtT3VucmVhZGFibGVfZmlsZSAtLW5hbWUtb25seSBIRUFEXi4uSEVBRAorJworCitmb3IgaSBpbiAxIDIKK2RvCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAib3JkZXJmaWxlIHVzaW5nIG9wdGlvbiAoJGkpIiAnCisJCWdpdCBkaWZmIC1Pb3JkZXJfZmlsZV8kaSAtLW5hbWUtb25seSBIRUFEXi4uSEVBRCA+YWN0dWFsICYmCisJCXRlc3RfY21wIGV4cGVjdF8kaSBhY3R1YWwKKwknCisKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzIFBJUEUgIm9yZGVyZmlsZSBpcyBmaWZvICgkaSkiICcKKwkJcm0gLWYgb3JkZXJfZmlmbyAmJgorCQlta2ZpZm8gb3JkZXJfZmlmbyAmJgorCQl7CisJCQljYXQgb3JkZXJfZmlsZV8kaSA+b3JkZXJfZmlmbyAmCisJCX0gJiYKKwkJZ2l0IGRpZmYgLU8gb3JkZXJfZmlmbyAtLW5hbWUtb25seSBIRUFEXi4uSEVBRCA+YWN0dWFsICYmCisJCXdhaXQgJiYKKwkJdGVzdF9jbXAgZXhwZWN0XyRpIGFjdHVhbAorCScKKworCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgIm9yZGVyZmlsZSB1c2luZyBjb25maWcgKCRpKSIgJworCQlnaXQgLWMgZGlmZi5vcmRlcmZpbGU9b3JkZXJfZmlsZV8kaSBkaWZmIC0tbmFtZS1vbmx5IEhFQUReLi5IRUFEID5hY3R1YWwgJiYKKwkJdGVzdF9jbXAgZXhwZWN0XyRpIGFjdHVhbAorCScKKworCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImNhbmNlbGxpbmcgY29uZmlndXJlZCBvcmRlcmZpbGUgKCRpKSIgJworCQlnaXQgLWMgZGlmZi5vcmRlcmZpbGU9b3JkZXJfZmlsZV8kaSBkaWZmIC1PL2Rldi9udWxsIC0tbmFtZS1vbmx5IEhFQUReLi5IRUFEID5hY3R1YWwgJiYKKwkJdGVzdF9jbXAgZXhwZWN0X25vbmUgYWN0dWFsCisJJworZG9uZQorCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDQxMDItYXBwbHktcmVuYW1lLnNoIGIvdC90NDEwMi1hcHBseS1yZW5hbWUuc2gKaW5kZXggZTNlYTNkNS4uNDllMmQ2YyAxMDA3NTUKLS0tIGEvdC90NDEwMi1hcHBseS1yZW5hbWUuc2gKKysrIGIvdC90NDEwMi1hcHBseS1yZW5hbWUuc2gKQEAgLTcsNyArNyw2IEBACiAKICcKIC4gLi90ZXN0LWxpYi5zaAotLiAiJFRFU1RfRElSRUNUT1JZIi9saWItcHJlcmVxLUZJTEVNT0RFLnNoCiAKICMgc2V0dXAKIApkaWZmIC0tZ2l0IGEvdC90NDEwMy1hcHBseS1iaW5hcnkuc2ggYi90L3Q0MTAzLWFwcGx5LWJpbmFyeS5zaAppbmRleCBiMWI5MDZiLi4xYjQyMGUzIDEwMDc1NQotLS0gYS90L3Q0MTAzLWFwcGx5LWJpbmFyeS5zaAorKysgYi90L3Q0MTAzLWFwcGx5LWJpbmFyeS5zaApAQCAtMjMsMTAgKzIzLDEwIEBACiAJZ2l0IGNvbW1pdCAtbSAiSW5pdGlhbCBWZXJzaW9uIiAyPi9kZXYvbnVsbCAmJgogCiAJZ2l0IGNoZWNrb3V0IC1iIGJpbmFyeSAmJgotCSIkUEVSTF9QQVRIIiAtcGUgInkveC9cMDAwLyIgPGZpbGUxID5maWxlMyAmJgorCXBlcmwgLXBlICJ5L3gvXDAwMC8iIDxmaWxlMSA+ZmlsZTMgJiYKIAljYXQgZmlsZTMgPmZpbGU0ICYmCiAJZ2l0IGFkZCBmaWxlMiAmJgotCSIkUEVSTF9QQVRIIiAtcGUgInkvXDAwMC92LyIgPGZpbGUzID5maWxlMSAmJgorCXBlcmwgLXBlICJ5L1wwMDAvdi8iIDxmaWxlMyA+ZmlsZTEgJiYKIAlybSAtZiBmaWxlMiAmJgogCWdpdCB1cGRhdGUtaW5kZXggLS1hZGQgLS1yZW1vdmUgZmlsZTEgZmlsZTIgZmlsZTMgZmlsZTQgJiYKIAlnaXQgY29tbWl0IC1tICJTZWNvbmQgVmVyc2lvbiIgJiYKZGlmZiAtLWdpdCBhL3QvdDQxMTYtYXBwbHktcmV2ZXJzZS5zaCBiL3QvdDQxMTYtYXBwbHktcmV2ZXJzZS5zaAppbmRleCBmY2E4MTUzLi4xZTRkNDM4IDEwMDc1NQotLS0gYS90L3Q0MTE2LWFwcGx5LXJldmVyc2Uuc2gKKysrIGIvdC90NDExNi1hcHBseS1yZXZlcnNlLnNoCkBAIC0xMiwxNCArMTIsMTQgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3Mgc2V0dXAgJwogCiAJZm9yIGkgaW4gYSBiIGMgZCBlIGYgZyBoIGkgaiBrIGwgbSBuOyBkbyBlY2hvICRpOyBkb25lID5maWxlMSAmJgotCSIkUEVSTF9QQVRIIiAtcGUgInkvaWprL1xcMDAwXFwwMDFcXDAwMi8iIDxmaWxlMSA+ZmlsZTIgJiYKKwlwZXJsIC1wZSAieS9pamsvXFwwMDBcXDAwMVxcMDAyLyIgPGZpbGUxID5maWxlMiAmJgogCiAJZ2l0IGFkZCBmaWxlMSBmaWxlMiAmJgogCWdpdCBjb21taXQgLW0gaW5pdGlhbCAmJgogCWdpdCB0YWcgaW5pdGlhbCAmJgogCiAJZm9yIGkgaW4gYSBiIGMgZyBoIGkgSiBLIEwgbSBvIG4gcCBxOyBkbyBlY2hvICRpOyBkb25lID5maWxlMSAmJgotCSIkUEVSTF9QQVRIIiAtcGUgInkvbW9uL1xcMDAwXFwwMDFcXDAwMi8iIDxmaWxlMSA+ZmlsZTIgJiYKKwlwZXJsIC1wZSAieS9tb24vXFwwMDBcXDAwMVxcMDAyLyIgPGZpbGUxID5maWxlMiAmJgogCiAJZ2l0IGNvbW1pdCAtYSAtbSBzZWNvbmQgJiYKIAlnaXQgdGFnIHNlY29uZCAmJgpAQCAtNDgsMTIgKzQ4LDEyIEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIHNlcGFyYXRlIHJlcG9zaXRvcnkgbGFja2luZyBwb3N0aW1hZ2UnICcKIAotCWdpdCB0YXItdHJlZSBpbml0aWFsIGluaXRpYWwgfCAkVEFSIHhmIC0gJiYKKwlnaXQgYXJjaGl2ZSAtLWZvcm1hdD10YXIgLS1wcmVmaXg9aW5pdGlhbC8gaW5pdGlhbCB8ICRUQVIgeGYgLSAmJgogCSgKIAkJY2QgaW5pdGlhbCAmJiBnaXQgaW5pdCAmJiBnaXQgYWRkIC4KIAkpICYmCiAKLQlnaXQgdGFyLXRyZWUgc2Vjb25kIHNlY29uZCB8ICRUQVIgeGYgLSAmJgorCWdpdCBhcmNoaXZlIC0tZm9ybWF0PXRhciAtLXByZWZpeD1zZWNvbmQvIHNlY29uZCB8ICRUQVIgeGYgLSAmJgogCSgKIAkJY2Qgc2Vjb25kICYmIGdpdCBpbml0ICYmIGdpdCBhZGQgLgogCSkKZGlmZiAtLWdpdCBhL3QvdDQxMjAtYXBwbHktcG9wdC5zaCBiL3QvdDQxMjAtYXBwbHktcG9wdC5zaAppbmRleCBjNWZlY2RmLi40OTdiNjI4IDEwMDc1NQotLS0gYS90L3Q0MTIwLWFwcGx5LXBvcHQuc2gKKysrIGIvdC90NDEyMC1hcHBseS1wb3B0LnNoCkBAIC02LDcgKzYsNiBAQAogdGVzdF9kZXNjcmlwdGlvbj0nZ2l0IGFwcGx5IC1wIGhhbmRsaW5nLicKIAogLiAuL3Rlc3QtbGliLnNoCi0uICIkVEVTVF9ESVJFQ1RPUlkiL2xpYi1wcmVyZXEtRklMRU1PREUuc2gKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCiAJbWtkaXIgc3ViICYmCmRpZmYgLS1naXQgYS90L3Q0MTI5LWFwcGx5LXNhbWVtb2RlLnNoIGIvdC90NDEyOS1hcHBseS1zYW1lbW9kZS5zaAppbmRleCAwZDM2ZWJkLi5jMjY4Mjk4IDEwMDc1NQotLS0gYS90L3Q0MTI5LWFwcGx5LXNhbWVtb2RlLnNoCisrKyBiL3QvdDQxMjktYXBwbHktc2FtZW1vZGUuc2gKQEAgLTMsNyArMyw2IEBACiB0ZXN0X2Rlc2NyaXB0aW9uPSdhcHBseWluZyBwYXRjaCB3aXRoIG1vZGUgYml0cycKIAogLiAuL3Rlc3QtbGliLnNoCi0uICIkVEVTVF9ESVJFQ1RPUlkiL2xpYi1wcmVyZXEtRklMRU1PREUuc2gKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCiAJZWNobyBvcmlnaW5hbCA+ZmlsZSAmJgpkaWZmIC0tZ2l0IGEvdC90NDIwMC1yZXJlcmUuc2ggYi90L3Q0MjAwLXJlcmVyZS5zaAppbmRleCA3ZjY2NjZmLi5lZDljOTFlIDEwMDc1NQotLS0gYS90L3Q0MjAwLXJlcmVyZS5zaAorKysgYi90L3Q0MjAwLXJlcmVyZS5zaApAQCAtNzgsNyArNzgsNyBAQAogCXRlc3RfbWlnaHRfZmFpbCBnaXQgY29uZmlnIC0tdW5zZXQgcmVyZXJlLmVuYWJsZWQgJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgZmlyc3QgJiYKIAotCXNoYTE9JCgiJFBFUkxfUEFUSCIgLXBlICJzLwkuKi8vIiAuZ2l0L01FUkdFX1JSKSAmJgorCXNoYTE9JChwZXJsIC1wZSAicy8JLiovLyIgLmdpdC9NRVJHRV9SUikgJiYKIAlycj0uZ2l0L3JyLWNhY2hlLyRzaGExICYmCiAJZ3JlcCAiXj09PT09PT1cJCIgJHJyL3ByZWltYWdlICYmCiAJISB0ZXN0IC1mICRyci9wb3N0aW1hZ2UgJiYKQEAgLTkxLDcgKzkxLDcgQEAKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IG1lcmdlIGZpcnN0ICYmCiAKLQlzaGExPSQoIiRQRVJMX1BBVEgiIC1wZSAicy8JLiovLyIgLmdpdC9NRVJHRV9SUikgJiYKKwlzaGExPSQocGVybCAtcGUgInMvCS4qLy8iIC5naXQvTUVSR0VfUlIpICYmCiAJcnI9LmdpdC9yci1jYWNoZS8kc2hhMSAmJgogCWdyZXAgXj09PT09PT0kICRyci9wcmVpbWFnZQogJwpAQCAtMTAxLDcgKzEwMSw3IEBACiAJZ2l0IGNvbmZpZyByZXJlcmUuZW5hYmxlZCB0cnVlICYmCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSBmaXJzdCAmJgotCXNoYTE9JCgiJFBFUkxfUEFUSCIgLXBlICJzLwkuKi8vIiAuZ2l0L01FUkdFX1JSKSAmJgorCXNoYTE9JChwZXJsIC1wZSAicy8JLiovLyIgLmdpdC9NRVJHRV9SUikgJiYKIAlycj0uZ2l0L3JyLWNhY2hlLyRzaGExCiAnCiAKQEAgLTE3Miw3ICsxNzIsNyBAQAogCWdpdCBzaG93IHNlY29uZF46YTEgfCBzZWQgInMvVG8gZGllOiB0L1RvIGRpZSEgVC8iID5hMSAmJgogCWdpdCBjb21taXQgLXEgLWEgLW0gdGhpcmQgJiYKIAotCXRlc3RfbXVzdF9mYWlsIGdpdCBwdWxsIC4gZmlyc3QgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgZmlyc3QgJiYKIAkjIHJlcmVyZSBraWNrZWQgaW4KIAkhIGdyZXAgIl49PT09PT09XCQiIGExICYmCiAJdGVzdF9jbXAgZXhwZWN0IGExCkBAIC0xODUsNyArMTg1LDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVyZXJlIGNsZWFyJyAnCiAJcm0gJHJyL3Bvc3RpbWFnZSAmJgotCWVjaG8gIiRzaGExCWExIiB8ICIkUEVSTF9QQVRIIiAtcGUgInkvXDAxMi9cMDAwLyIgPi5naXQvTUVSR0VfUlIgJiYKKwllY2hvICIkc2hhMQlhMSIgfCBwZXJsIC1wZSAieS9cMDEyL1wwMDAvIiA+LmdpdC9NRVJHRV9SUiAmJgogCWdpdCByZXJlcmUgY2xlYXIgJiYKIAkhIHRlc3QgLWQgJHJyCiAnCmRpZmYgLS1naXQgYS90L3Q0MjA1LWxvZy1wcmV0dHktZm9ybWF0cy5zaCBiL3QvdDQyMDUtbG9nLXByZXR0eS1mb3JtYXRzLnNoCmluZGV4IGZiMDAwNDEuLjJhNjI3OGIgMTAwNzU1Ci0tLSBhL3QvdDQyMDUtbG9nLXByZXR0eS1mb3JtYXRzLnNoCisrKyBiL3QvdDQyMDUtbG9nLXByZXR0eS1mb3JtYXRzLnNoCkBAIC0zMTAsNCArMzEwLDE5IEBACiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2xvZyBkZWNvcmF0aW9uIHByb3Blcmx5IGZvbGxvd3MgdGFnIGNoYWluJyAnCisJZ2l0IHRhZyAtYSB0YWcxIC1tIHRhZzEgJiYKKwlnaXQgdGFnIC1hIHRhZzIgLW0gdGFnMiB0YWcxICYmCisJZ2l0IHRhZyAtZCB0YWcxICYmCisJZ2l0IGNvbW1pdCAtLWFtZW5kIC1tIHNob3J0ZXIgJiYKKwlnaXQgbG9nIC0tbm8td2FsayAtLXRhZ3MgLS1wcmV0dHk9IiVIICVkIiAtLWRlY29yYXRlPWZ1bGwgPmFjdHVhbCAmJgorCWNhdCA8PEVPRiA+ZXhwZWN0ZWQgJiYKKzZhOTA4YzEwNjg4YjI1MDMwNzNjMzljOWJhMjYzMjJjNzM5MDJiYjUgICh0YWc6IHJlZnMvdGFncy90YWcyKQorOWY3MTYzODRkOTIyODNmYjkxNWE0ZWVlNTA3M2YwMzA2MzhlMDVmOSAgKHRhZzogcmVmcy90YWdzL21lc3NhZ2Utb25lKQorYjg3ZTRjY2NkYjc3MzM2ZWE3OWQ4OTIyNDczN2JlN2VhOGU5NTM2NyAgKHRhZzogcmVmcy90YWdzL21lc3NhZ2UtdHdvKQorRU9GCisJc29ydCBhY3R1YWwgPmFjdHVhbDEgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwxCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NDIwOC1sb2ctbWFnaWMtcGF0aHNwZWMuc2ggYi90L3Q0MjA4LWxvZy1tYWdpYy1wYXRoc3BlYy5zaAppbmRleCA3MjMwMGI1Li5kOGYyM2Y0IDEwMDc1NQotLS0gYS90L3Q0MjA4LWxvZy1tYWdpYy1wYXRoc3BlYy5zaAorKysgYi90L3Q0MjA4LWxvZy1tYWdpYy1wYXRoc3BlYy5zaApAQCAtNDYsNCArNDYsMTkgQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnY29tbWFuZCBsaW5lIHBhdGhzcGVjIHBhcnNpbmcgZm9yICJnaXQgbG9nIicgJworCWdpdCByZXNldCAtLWhhcmQgJiYKKwk+YSAmJgorCWdpdCBhZGQgYSAmJgorCWdpdCBjb21taXQgLW0gImFkZCBhbiBlbXB0eSBhIiAtLWFsbG93LWVtcHR5ICYmCisJZWNobyAxID5hICYmCisJZ2l0IGNvbW1pdCAtYSAtbSAidXBkYXRlIGEgdG8gMSIgJiYKKwlnaXQgY2hlY2tvdXQgSEVBRF4gJiYKKwllY2hvIDIgPmEgJiYKKwlnaXQgY29tbWl0IC1hIC1tICJ1cGRhdGUgYSB0byAyIiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSBtYXN0ZXIgJiYKKwlnaXQgYWRkIGEgJiYKKwlnaXQgbG9nIC0tbWVyZ2UgLS0gYQorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDQyMTEtbGluZS1sb2cuc2ggYi90L3Q0MjExLWxpbmUtbG9nLnNoCmluZGV4IDc2NjVkNjcuLjczNjlkM2MgMTAwNzU1Ci0tLSBhL3QvdDQyMTEtbGluZS1sb2cuc2gKKysrIGIvdC90NDIxMS1saW5lLWxvZy5zaApAQCAtNDgsNyArNDgsNyBAQAogY2FubmVkX3Rlc3QgIi1NIC1MICc6ZjpiLmMnIHBhcmFsbGVsLWNoYW5nZSIgcGFyYWxsZWwtY2hhbmdlLWYtdG8tbWFpbgogCiBjYW5uZWRfdGVzdCAiLUwgNCwxMjphLmMgLUwgOm1haW46YS5jIHNpbXBsZSIgbXVsdGlwbGUKLWNhbm5lZF90ZXN0ICItTCA0LDE4OmEuYyAtTCA6bWFpbjphLmMgc2ltcGxlIiBtdWx0aXBsZS1vdmVybGFwcGluZworY2FubmVkX3Rlc3QgIi1MIDQsMTg6YS5jIC1MIF46bWFpbjphLmMgc2ltcGxlIiBtdWx0aXBsZS1vdmVybGFwcGluZwogY2FubmVkX3Rlc3QgIi1MIDptYWluOmEuYyAtTCA0LDE4OmEuYyBzaW1wbGUiIG11bHRpcGxlLW92ZXJsYXBwaW5nCiBjYW5uZWRfdGVzdCAiLUwgNDphLmMgLUwgOCwxMjphLmMgc2ltcGxlIiBtdWx0aXBsZS1zdXBlcnNldAogY2FubmVkX3Rlc3QgIi1MIDgsMTI6YS5jIC1MIDQ6YS5jIHNpbXBsZSIgbXVsdGlwbGUtc3VwZXJzZXQKQEAgLTY0LDE3ICs2NCwzNCBAQAogdGVzdF9iYWRfb3B0cyAiLUwgOmIuYyIgImFyZ3VtZW50Lipub3Qgb2YgdGhlIGZvcm0iCiB0ZXN0X2JhZF9vcHRzICItTCA6Zm9vOmIuYyIgIm5vIG1hdGNoIgogCi0jIFRoZXJlIGlzIGEgc2VwYXJhdGUgYnVnIHdoZW4gYW4gZW1wdHkgLUwgcmFuZ2UgaXMgdGhlIGZpcnN0IC1MIGVuY291bnRlcmVkLAotIyB0aHVzIHRvIGRlbW9uc3RyYXRlIHRoaXMgcGFydGljdWxhciBidWcsIHRoZSBlbXB0eSAtTCByYW5nZSBtdXN0IGZvbGxvdyBhCi0jIG5vbi1lbXB0eSAtTCByYW5nZS4KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJy1MIHtlbXB0eS1yYW5nZX0gKGFueSAtTCknICcKLQluPSQoZXhwciAkKHdjIC1sIDxiLmMpICsgMSkgJiYKLQlnaXQgbG9nIC1MMSwxOmIuYyAtTCRuOmIuYwordGVzdF9leHBlY3Rfc3VjY2VzcyAnLUwgWCAoWCA9PSBubGluZXMpJyAnCisJbj0kKHdjIC1sIDxiLmMpICYmCisJZ2l0IGxvZyAtTCAkbjpiLmMKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnLUwge2VtcHR5LXJhbmdlfSAoZmlyc3QgLUwpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctTCBYIChYID09IG5saW5lcyArIDEpJyAnCiAJbj0kKGV4cHIgJCh3YyAtbCA8Yi5jKSArIDEpICYmCi0JZ2l0IGxvZyAtTCRuOmIuYworCXRlc3RfbXVzdF9mYWlsIGdpdCBsb2cgLUwgJG46Yi5jCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy1MIFggKFggPT0gbmxpbmVzICsgMiknICcKKwluPSQoZXhwciAkKHdjIC1sIDxiLmMpICsgMikgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgbG9nIC1MICRuOmIuYworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctTCAsWSAoWSA9PSBubGluZXMpJyAnCisJbj0kKHByaW50ZiAiJWQiICQod2MgLWwgPGIuYykpICYmCisJZ2l0IGxvZyAtTCAsJG46Yi5jCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy1MICxZIChZID09IG5saW5lcyArIDEpJyAnCisJbj0kKGV4cHIgJCh3YyAtbCA8Yi5jKSArIDEpICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGxvZyAtTCAsJG46Yi5jCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy1MICxZIChZID09IG5saW5lcyArIDIpJyAnCisJbj0kKGV4cHIgJCh3YyAtbCA8Yi5jKSArIDIpICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGxvZyAtTCAsJG46Yi5jCiAnCiAKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NTAwMC10YXItdHJlZS5zaCBiL3QvdDUwMDAtdGFyLXRyZWUuc2gKaW5kZXggYzIwMjNiMS4uMDVmMDExZCAxMDA3NTUKLS0tIGEvdC90NTAwMC10YXItdHJlZS5zaAorKysgYi90L3Q1MDAwLXRhci10cmVlLnNoCkBAIC0zLDcgKzMsNyBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDUgUmVuZSBTY2hhcmZlCiAjCiAKLXRlc3RfZGVzY3JpcHRpb249J2dpdCB0YXItdHJlZSBhbmQgZ2l0IGdldC10YXItY29tbWl0LWlkIHRlc3QKK3Rlc3RfZGVzY3JpcHRpb249J2dpdCBhcmNoaXZlIGFuZCBnaXQgZ2V0LXRhci1jb21taXQtaWQgdGVzdAogCiBUaGlzIHRlc3QgY292ZXJzIHRoZSB0b3BpY3Mgb2YgZmlsZSBjb250ZW50cywgY29tbWl0IGRhdGUgaGFuZGxpbmcgYW5kCiBjb21taXQgaWQgZW1iZWRkaW5nOgpAQCAtMTMsMTEgKzEzLDExIEBACiAgIGJpbmFyeSBmaWxlICgvYmluL3NoKS4gIE9ubHkgcGF0aHMgc2hvcnRlciB0aGFuIDk5IGNoYXJhY3RlcnMgYXJlCiAgIHVzZWQuCiAKLSAgZ2l0IHRhci10cmVlIGFwcGxpZXMgdGhlIGNvbW1pdCBkYXRlIHRvIGV2ZXJ5IGZpbGUgaW4gdGhlIGFyY2hpdmUgaXQKKyAgZ2l0IGFyY2hpdmUgYXBwbGllcyB0aGUgY29tbWl0IGRhdGUgdG8gZXZlcnkgZmlsZSBpbiB0aGUgYXJjaGl2ZSBpdAogICBjcmVhdGVzLiAgVGhlIHRlc3Qgc2V0cyB0aGUgY29tbWl0IGRhdGUgdG8gYSBzcGVjaWZpYyB2YWx1ZSBhbmQgY2hlY2tzCiAgIGlmIHRoZSB0YXIgYXJjaGl2ZSBjb250YWlucyB0aGF0IHZhbHVlLgogCi0gIFdoZW4gZ2l2aW5nIGdpdCB0YXItdHJlZSBhIGNvbW1pdCBpZCAoaW4gY29udHJhc3QgdG8gYSB0cmVlIGlkKSBpdAorICBXaGVuIGdpdmluZyBnaXQgYXJjaGl2ZSBhIGNvbW1pdCBpZCAoaW4gY29udHJhc3QgdG8gYSB0cmVlIGlkKSBpdAogICBlbWJlZHMgdGhpcyBjb21taXQgaWQgaW50byB0aGUgdGFyIGFyY2hpdmUgYXMgYSBjb21tZW50LiAgVGhlIHRlc3QKICAgY2hlY2tzIHRoZSBhYmlsaXR5IG9mIGdpdCBnZXQtdGFyLWNvbW1pdC1pZCB0byBmaWd1cmUgaXQgb3V0IGZyb20gdGhlCiAgIHRhciBmaWxlLgpAQCAtMjUsOCArMjUsNiBAQAogJwogCiAuIC4vdGVzdC1saWIuc2gKLUdaSVA9JHtHWklQOi1nemlwfQotR1VOWklQPSR7R1VOWklQOi1nemlwIC1kfQogCiBTVUJTVEZPUk1BVD0lSCVuCiAKQEAgLTM5LDYgKzM3LDggQEAKIAkpCiAnCiAKK3Rlc3RfbGF6eV9wcmVyZXEgR1pJUCAnZ3ppcCAtLXZlcnNpb24nCisKIGdldF9wYXhfaGVhZGVyKCkgewogCWZpbGU9JDEKIAloZWFkZXI9JDI9CkBAIC0xOTYsMTYgKzE5Niw2IEBACiAgICAgJ2dpdCBnZXQtdGFyLWNvbW1pdC1pZCA8Yi50YXIgPmIuY29tbWl0aWQgJiYKICAgICAgdGVzdF9jbXAgLmdpdC8kKGdpdCBzeW1ib2xpYy1yZWYgSEVBRCkgYi5jb21taXRpZCcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHRhci10cmVlJyAnCi0JZ2l0IHRhci10cmVlIEhFQUQgPnRhci10cmVlLnRhciAmJgotCXRlc3RfY21wIGIudGFyIHRhci10cmVlLnRhcgotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgdGFyLXRyZWUgd2l0aCBwcmVmaXgnICcKLQlnaXQgdGFyLXRyZWUgSEVBRCBwcmVmaXggPnRhci10cmVlX3dpdGhfcHJlZml4LnRhciAmJgotCXRlc3RfY21wIHdpdGhfcHJlZml4LnRhciB0YXItdHJlZV93aXRoX3ByZWZpeC50YXIKLScKLQogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGFyY2hpdmUgd2l0aCAtLW91dHB1dCwgb3ZlcnJpZGUgaW5mZXJyZWQgZm9ybWF0JyAnCiAJZ2l0IGFyY2hpdmUgLS1mb3JtYXQ9dGFyIC0tb3V0cHV0PWQ0LnppcCBIRUFEICYmCiAJdGVzdF9jbXAgYi50YXIgZDQuemlwCkBAIC0yNzUsMTIgKzI2NSw2IEBACiAJdGVzdF9jbXAgcmVtb3RlLmJhciBjb25maWcuYmFyCiAnCiAKLWlmICRHWklQIC0tdmVyc2lvbiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLQl0ZXN0X3NldF9wcmVyZXEgR1pJUAotZWxzZQotCXNheSAiU2tpcHBpbmcgc29tZSB0YXIuZ3ogdGVzdHMgYmVjYXVzZSBnemlwIG5vdCBmb3VuZCIKLWZpCi0KIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgR1pJUCAnZ2l0IGFyY2hpdmUgLS1mb3JtYXQ9dGd6JyAnCiAJZ2l0IGFyY2hpdmUgLS1mb3JtYXQ9dGd6IEhFQUQgPmoudGd6CiAnCkBAIC0zMDAsMTQgKzI4NCw4IEBACiAJdGVzdF9jbXAgai50Z3ogajMudGFyLmd6CiAnCiAKLWlmICRHVU5aSVAgLS12ZXJzaW9uID4vZGV2L251bGwgMj4mMTsgdGhlbgotCXRlc3Rfc2V0X3ByZXJlcSBHVU5aSVAKLWVsc2UKLQlzYXkgIlNraXBwaW5nIHNvbWUgdGFyLmd6IHRlc3RzIGJlY2F1c2UgZ3VuemlwIHdhcyBub3QgZm91bmQiCi1maQotCi10ZXN0X2V4cGVjdF9zdWNjZXNzIEdaSVAsR1VOWklQICdleHRyYWN0IHRneiBmaWxlJyAnCi0JJEdVTlpJUCAtYyA8ai50Z3ogPmoudGFyICYmCit0ZXN0X2V4cGVjdF9zdWNjZXNzIEdaSVAgJ2V4dHJhY3QgdGd6IGZpbGUnICcKKwlnemlwIC1kIC1jIDxqLnRneiA+ai50YXIgJiYKIAl0ZXN0X2NtcCBiLnRhciBqLnRhcgogJwogCmRpZmYgLS1naXQgYS90L3Q1MDAxLWFyY2hpdmUtYXR0ci5zaCBiL3QvdDUwMDEtYXJjaGl2ZS1hdHRyLnNoCmluZGV4IGY0N2Q4NzEuLjUxZGVkYWIgMTAwNzU1Ci0tLSBhL3QvdDUwMDEtYXJjaGl2ZS1hdHRyLnNoCisrKyBiL3QvdDUwMDEtYXJjaGl2ZS1hdHRyLnNoCkBAIC04NywxNCArODcsNCBAQAogCXRlc3RfY21wIHN1YnN0ZmlsZTIgYXJjaGl2ZS9zdWJzdGZpbGUyCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCB0YXItdHJlZSB2cy4gZ2l0IGFyY2hpdmUgd2l0aCB3b3JrdHJlZSBhdHRyaWJ1dGVzJyAnCi0JZ2l0IHRhci10cmVlIEhFQUQgPnRhci10cmVlLnRhciAmJgotCXRlc3RfY21wIHdvcmt0cmVlLnRhciB0YXItdHJlZS50YXIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHRhci10cmVlIHZzLiBnaXQgYXJjaGl2ZSB3aXRoIHdvcmt0cmVlIGF0dHJzLCBiYXJlJyAnCi0JKGNkIGJhcmUgJiYgZ2l0IHRhci10cmVlIEhFQUQpID5iYXJlLXRhci10cmVlLnRhciAmJgotCXRlc3RfY21wIGJhcmUtd29ya3RyZWUudGFyIGJhcmUtdGFyLXRyZWUudGFyCi0nCi0KIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NTMwMC1wYWNrLW9iamVjdC5zaCBiL3QvdDUzMDAtcGFjay1vYmplY3Quc2gKaW5kZXggYTA3Yzg3MS4uMjBjMTk2MSAxMDA3NTUKLS0tIGEvdC90NTMwMC1wYWNrLW9iamVjdC5zaAorKysgYi90L3Q1MzAwLXBhY2stb2JqZWN0LnNoCkBAIC0xMyw5ICsxMyw5IEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAnc2V0dXAnIFwKICAgICAncm0gLWYgLmdpdC9pbmRleCogJiYKLSAgICAgIiRQRVJMX1BBVEgiIC1lICJwcmludCBcImFcIiB4IDQwOTY7IiA+IGEgJiYKLSAgICAgIiRQRVJMX1BBVEgiIC1lICJwcmludCBcImJcIiB4IDQwOTY7IiA+IGIgJiYKLSAgICAgIiRQRVJMX1BBVEgiIC1lICJwcmludCBcImNcIiB4IDQwOTY7IiA+IGMgJiYKKyAgICAgcGVybCAtZSAicHJpbnQgXCJhXCIgeCA0MDk2OyIgPiBhICYmCisgICAgIHBlcmwgLWUgInByaW50IFwiYlwiIHggNDA5NjsiID4gYiAmJgorICAgICBwZXJsIC1lICJwcmludCBcImNcIiB4IDQwOTY7IiA+IGMgJiYKICAgICAgdGVzdC1nZW5yYW5kb20gInNlZWQgYSIgMjA5NzE1MiA+IGFfYmlnICYmCiAgICAgIHRlc3QtZ2VucmFuZG9tICJzZWVkIGIiIDIwOTcxNTIgPiBiX2JpZyAmJgogICAgICBnaXQgdXBkYXRlLWluZGV4IC0tYWRkIGEgYV9iaWcgYiBiX2JpZyBjICYmCkBAIC0xMjksNyArMTI5LDcgQEAKIGNkICIkVFJBU0giCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NvbXBhcmUgZGVsdGEgZmxhdm9ycycgJwotCSIkUEVSTF9QQVRIIiAtZSAnXCcnCisJcGVybCAtZSAnXCcnCiAJCWRlZmluZWQoJF8gPSAtcyAkXykgb3IgZGllIGZvciBAQVJHVjsKIAkJZXhpdCAxIGlmICRBUkdWWzBdIDw9ICRBUkdWWzFdOwogCSdcJycgdGVzdC0yLSRwYWNrbmFtZV8yLnBhY2sgdGVzdC0zLSRwYWNrbmFtZV8zLnBhY2sKQEAgLTE1MSw3ICsxNTEsNyBAQAogCSAgICBnaXQgY2F0LWZpbGUgJHQgJG9iamVjdCB8fCByZXR1cm4gMQogCSBkb25lIDxvYmotbGlzdAogICAgIH0gPmN1cnJlbnQgJiYKLSAgICB0ZXN0X2NtcCBleHBlY3QgY3VycmVudCcKKyAgICBjbXAgZXhwZWN0IGN1cnJlbnQnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICd1c2UgcGFja2VkIGRlbHRpZmllZCAoUkVGX0RFTFRBKSBvYmplY3RzJyBcCkBAIC0xNjYsNyArMTY2LDcgQEAKIAkgICAgZ2l0IGNhdC1maWxlICR0ICRvYmplY3QgfHwgcmV0dXJuIDEKIAkgZG9uZSA8b2JqLWxpc3QKICAgICB9ID5jdXJyZW50ICYmCi0gICAgdGVzdF9jbXAgZXhwZWN0IGN1cnJlbnQnCisgICAgY21wIGV4cGVjdCBjdXJyZW50JwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAndXNlIHBhY2tlZCBkZWx0aWZpZWQgKE9GU19ERUxUQSkgb2JqZWN0cycgXApAQCAtMTgxLDcgKzE4MSw3IEBACiAJICAgIGdpdCBjYXQtZmlsZSAkdCAkb2JqZWN0IHx8IHJldHVybiAxCiAJIGRvbmUgPG9iai1saXN0CiAgICAgfSA+Y3VycmVudCAmJgotICAgIHRlc3RfY21wIGV4cGVjdCBjdXJyZW50JworICAgIGNtcCBleHBlY3QgY3VycmVudCcKIAogdW5zZXQgR0lUX09CSkVDVF9ESVJFQ1RPUlkKIApAQCAtMTk1LDkgKzE5NSw5IEBACiAJCXJtIC1mciAkR09QICYmCiAJCWdpdCBpbmRleC1wYWNrIC0tc3RkaW4gLS1rZWVwPXRlc3QgPC4uL3Rlc3QtMy0ke3BhY2tuYW1lXzN9LnBhY2sgJiYKIAkJdGVzdCAtZiAkR09QL3BhY2stJHtwYWNrbmFtZV8zfS5wYWNrICYmCi0JCXRlc3RfY21wICRHT1AvcGFjay0ke3BhY2tuYW1lXzN9LnBhY2sgLi4vdGVzdC0zLSR7cGFja25hbWVfM30ucGFjayAmJgorCQljbXAgJEdPUC9wYWNrLSR7cGFja25hbWVfM30ucGFjayAuLi90ZXN0LTMtJHtwYWNrbmFtZV8zfS5wYWNrICYmCiAJCXRlc3QgLWYgJEdPUC9wYWNrLSR7cGFja25hbWVfM30uaWR4ICYmCi0JCXRlc3RfY21wICRHT1AvcGFjay0ke3BhY2tuYW1lXzN9LmlkeCAuLi90ZXN0LTMtJHtwYWNrbmFtZV8zfS5pZHggJiYKKwkJY21wICRHT1AvcGFjay0ke3BhY2tuYW1lXzN9LmlkeCAuLi90ZXN0LTMtJHtwYWNrbmFtZV8zfS5pZHggJiYKIAkJdGVzdCAtZiAkR09QL3BhY2stJHtwYWNrbmFtZV8zfS5rZWVwCiAJKQogJwpkaWZmIC0tZ2l0IGEvdC90NTMwMi1wYWNrLWluZGV4LnNoIGIvdC90NTMwMi1wYWNrLWluZGV4LnNoCmluZGV4IGZlODIwMjUuLjRiYmI3MTggMTAwNzU1Ci0tLSBhL3QvdDUzMDItcGFjay1pbmRleC5zaAorKysgYi90L3Q1MzAyLXBhY2staW5kZXguc2gKQEAgLTE3NCwxMSArMTc0LDExIEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAnW2luZGV4IHYxXSA1KSBwYWNrLW9iamVjdHMgaGFwcGlseSByZXVzZXMgY29ycnVwdGVkIGRhdGEnIFwKICAgICAncGFjazQ9JChnaXQgcGFjay1vYmplY3RzIHRlc3QtNCA8b2JqLWxpc3QpICYmCi0gICAgIHRlc3QgLWYgInRlc3QtNC0ke3BhY2sxfS5wYWNrIicKKyAgICAgdGVzdCAtZiAidGVzdC00LSR7cGFjazR9LnBhY2siJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAnW2luZGV4IHYxXSA2KSBuZXdseSBjcmVhdGVkIHBhY2sgaXMgQkFEICEnIFwKLSAgICAndGVzdF9tdXN0X2ZhaWwgZ2l0IHZlcmlmeS1wYWNrIC12ICJ0ZXN0LTQtJHtwYWNrMX0ucGFjayInCisgICAgJ3Rlc3RfbXVzdF9mYWlsIGdpdCB2ZXJpZnktcGFjayAtdiAidGVzdC00LSR7cGFjazR9LnBhY2siJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAnW2luZGV4IHYyXSAxKSBzdHJlYW0gcGFjayB0byByZXBvc2l0b3J5JyBcCmRpZmYgLS1naXQgYS90L3Q1MzAzLXBhY2stY29ycnVwdGlvbi1yZXNpbGllbmNlLnNoIGIvdC90NTMwMy1wYWNrLWNvcnJ1cHRpb24tcmVzaWxpZW5jZS5zaAppbmRleCAzNTkyNmRlLi42NjNiMDJiIDEwMDc1NQotLS0gYS90L3Q1MzAzLXBhY2stY29ycnVwdGlvbi1yZXNpbGllbmNlLnNoCisrKyBiL3QvdDUzMDMtcGFjay1jb3JydXB0aW9uLXJlc2lsaWVuY2Uuc2gKQEAgLTk4LDcgKzk4LDcgQEAKICAgICAnY3JlYXRlX25ld19wYWNrICYmCiAgICAgIGdpdCBwcnVuZS1wYWNrZWQgJiYKICAgICAgY2htb2QgK3cgJHtwYWNrfS5wYWNrICYmCi0gICAgICIkUEVSTF9QQVRIIiAtaS5iYWsgLXBlICJzLyBiYXNlIC9hYmNkZWYvIiAke3BhY2t9LnBhY2sgJiYKKyAgICAgcGVybCAtaS5iYWsgLXBlICJzLyBiYXNlIC9hYmNkZWYvIiAke3BhY2t9LnBhY2sgJiYKICAgICAgdGVzdF9tdXN0X2ZhaWwgZ2l0IGNhdC1maWxlIGJsb2IgJGJsb2JfMSA+IC9kZXYvbnVsbCAmJgogICAgICB0ZXN0X211c3RfZmFpbCBnaXQgY2F0LWZpbGUgYmxvYiAkYmxvYl8yID4gL2Rldi9udWxsICYmCiAgICAgIHRlc3RfbXVzdF9mYWlsIGdpdCBjYXQtZmlsZSBibG9iICRibG9iXzMgPiAvZGV2L251bGwnCkBAIC0xNTUsNyArMTU1LDcgQEAKICAgICAnY3JlYXRlX25ld19wYWNrICYmCiAgICAgIGdpdCBwcnVuZS1wYWNrZWQgJiYKICAgICAgY2htb2QgK3cgJHtwYWNrfS5wYWNrICYmCi0gICAgICIkUEVSTF9QQVRIIiAtaS5iYWsgLXBlICJzLyBkZWx0YTEgL2FiY2RlZmdoLyIgJHtwYWNrfS5wYWNrICYmCisgICAgIHBlcmwgLWkuYmFrIC1wZSAicy8gZGVsdGExIC9hYmNkZWZnaC8iICR7cGFja30ucGFjayAmJgogICAgICBnaXQgY2F0LWZpbGUgYmxvYiAkYmxvYl8xID4gL2Rldi9udWxsICYmCiAgICAgIHRlc3RfbXVzdF9mYWlsIGdpdCBjYXQtZmlsZSBibG9iICRibG9iXzIgPiAvZGV2L251bGwgJiYKICAgICAgdGVzdF9tdXN0X2ZhaWwgZ2l0IGNhdC1maWxlIGJsb2IgJGJsb2JfMyA+IC9kZXYvbnVsbCcKZGlmZiAtLWdpdCBhL3QvdDUzMDQtcHJ1bmUuc2ggYi90L3Q1MzA0LXBydW5lLnNoCmluZGV4IGU0YmIzYTEuLjY2YzlhNDEgMTAwNzU1Ci0tLSBhL3QvdDUzMDQtcHJ1bmUuc2gKKysrIGIvdC90NTMwNC1wcnVuZS5zaApAQCAtMjIxLDQgKzIyMSwxNCBAQAogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcnVuZSAuZ2l0L3NoYWxsb3cnICcKKwlTSEExPWBlY2hvIGhpfGdpdCBjb21taXQtdHJlZSBIRUFEXnt0cmVlfWAgJiYKKwllY2hvICRTSEExID4uZ2l0L3NoYWxsb3cgJiYKKwlnaXQgcHJ1bmUgLS1kcnktcnVuID5vdXQgJiYKKwlncmVwICRTSEExIC5naXQvc2hhbGxvdyAmJgorCWdyZXAgJFNIQTEgb3V0ICYmCisJZ2l0IHBydW5lICYmCisJISB0ZXN0IC1mIC5naXQvc2hhbGxvdworJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDUzMDgtcGFjay1kZXRlY3QtZHVwbGljYXRlcy5zaCBiL3QvdDUzMDgtcGFjay1kZXRlY3QtZHVwbGljYXRlcy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YzVhODc2Ci0tLSAvZGV2L251bGwKKysrIGIvdC90NTMwOC1wYWNrLWRldGVjdC1kdXBsaWNhdGVzLnNoCkBAIC0wLDAgKzEsODAgQEAKKyMhL2Jpbi9zaAorCit0ZXN0X2Rlc2NyaXB0aW9uPSdoYW5kbGluZyBvZiBkdXBsaWNhdGUgb2JqZWN0cyBpbiBpbmNvbWluZyBwYWNrZmlsZXMnCisuIC4vdGVzdC1saWIuc2gKKy4gIiRURVNUX0RJUkVDVE9SWSIvbGliLXBhY2suc2gKKworIyBUaGUgc2hhMXMgd2UgaGF2ZSBpbiBvdXIgcGFjay4gSXQncyBpbXBvcnRhbnQgdGhhdCB0aGVzZSBoYXZlIHRoZSBzYW1lCisjIHN0YXJ0aW5nIGJ5dGUsIHNvIHRoYXQgdGhleSBlbmQgdXAgaW4gdGhlIHNhbWUgZmFub3V0IHNlY3Rpb24gb2YgdGhlIGluZGV4LgorIyBUaGF0IGxldHMgdXMgbWFrZSBzdXJlIHdlIGFyZSBleGVyY2lzaW5nIHRoZSBiaW5hcnkgc2VhcmNoIHdpdGggYm90aCBzZXRzLgorTE9fU0hBMT1lNjhmZTgxMjliNTQ2YjEwMWFlZTk1MTBjNTMyOGU3ZjIxY2ExZDE4CitISV9TSEExPWU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEKKworIyBBbmQgaGVyZSdzIGEgIm1pc3Npbmcgc2hhMSIgd2hpY2ggd2lsbCBwcm9kdWNlIGZhaWxlZCBsb29rdXBzLiBJdCBtdXN0IGFsc28KKyMgYmUgaW4gdGhlIHNhbWUgZmFub3V0IHNlY3Rpb24sIGFuZCBzaG91bGQgYmUgYmV0d2VlbiB0aGUgdHdvIChzbyB0aGF0IGR1cmluZworIyBvdXIgYmluYXJ5IHNlYXJjaCwgd2UgYXJlIHN1cmUgdG8gZW5kIHVwIGxvb2tpbmcgYXQgb25lIG9yIHRoZSBvdGhlciBvZiB0aGUKKyMgZHVwbGljYXRlIHJ1bnMpLgorTUlTU0lOR19TSEExPSdlNjlkMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJworCisjIGdpdCB3aWxsIG5ldmVyIGludGVudGlvbmFsbHkgY3JlYXRlIHBhY2tmaWxlcyB3aXRoCisjIGR1cGxpY2F0ZSBvYmplY3RzLCBzbyB3ZSBoYXZlIHRvIGNvbnN0cnVjdCB0aGVtIGJ5IGhhbmQuCisjCisjICQxIGlzIHRoZSBuYW1lIG9mIHRoZSBwYWNrZmlsZSB0byBjcmVhdGUKKyMKKyMgJDIgaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0byBkdXBsaWNhdGUgZWFjaCBvYmplY3QKK2NyZWF0ZV9wYWNrICgpIHsKKwlwYWNrX2hlYWRlciAiJCgoMiAqICQyKSkiID4iJDEiICYmCisJZm9yIGkgaW4gJCh0ZXN0X3NlcSAxICIkMiIpOyBkbworCQlwYWNrX29iaiAkTE9fU0hBMSAmJgorCQlwYWNrX29iaiAkSElfU0hBMQorCWRvbmUgPj4iJDEiICYmCisJcGFja190cmFpbGVyICIkMSIKK30KKworIyBkb3VibGUtY2hlY2sgdGhhdCBjcmVhdGVfcGFjayBhY3R1YWxseSB3b3JrcwordGVzdF9leHBlY3Rfc3VjY2VzcyAncGFjayB3aXRoIG5vIGR1cGxpY2F0ZXMnICcKKwljcmVhdGVfcGFjayBuby1kdXBzLnBhY2sgMSAmJgorCWdpdCBpbmRleC1wYWNrIC0tc3RkaW4gPG5vLWR1cHMucGFjaworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdpbmRleC1wYWNrIHdpbGwgYWxsb3cgZHVwbGljYXRlIG9iamVjdHMgYnkgZGVmYXVsdCcgJworCWNsZWFyX3BhY2tzICYmCisJY3JlYXRlX3BhY2sgZHVwcy5wYWNrIDEwMCAmJgorCWdpdCBpbmRleC1wYWNrIC0tc3RkaW4gPGR1cHMucGFjaworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjcmVhdGUgYmF0Y2gtY2hlY2sgdGVzdCB2ZWN0b3JzJyAnCisJY2F0ID5pbnB1dCA8PC1FT0YgJiYKKwkkTE9fU0hBMQorCSRISV9TSEExCisJJE1JU1NJTkdfU0hBMQorCUVPRgorCWNhdCA+ZXhwZWN0IDw8LUVPRgorCSRMT19TSEExIGJsb2IgMgorCSRISV9TSEExIGJsb2IgMAorCSRNSVNTSU5HX1NIQTEgbWlzc2luZworCUVPRgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdsb29rdXAgaW4gZHVwbGljYXRlZCBwYWNrIChiaW5hcnkgc2VhcmNoKScgJworCWdpdCBjYXQtZmlsZSAtLWJhdGNoLWNoZWNrIDxpbnB1dCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdsb29rdXAgaW4gZHVwbGljYXRlZCBwYWNrIChHSVRfVVNFX0xPT0tVUCknICcKKwkoCisJCUdJVF9VU0VfTE9PS1VQPTEgJiYKKwkJZXhwb3J0IEdJVF9VU0VfTE9PS1VQICYmCisJCWdpdCBjYXQtZmlsZSAtLWJhdGNoLWNoZWNrIDxpbnB1dCA+YWN0dWFsCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnaW5kZXgtcGFjayBjYW4gcmVqZWN0IHBhY2tzIHdpdGggZHVwbGljYXRlcycgJworCWNsZWFyX3BhY2tzICYmCisJY3JlYXRlX3BhY2sgZHVwcy5wYWNrIDIgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgaW5kZXgtcGFjayAtLXN0cmljdCAtLXN0ZGluIDxkdXBzLnBhY2sgJiYKKwl0ZXN0X2V4cGVjdF9jb2RlIDEgZ2l0IGNhdC1maWxlIC1lICRMT19TSEExCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NTMwOS1wYWNrLWRlbHRhLWN5Y2xlcy5zaCBiL3QvdDUzMDktcGFjay1kZWx0YS1jeWNsZXMuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2U3ODYxYgotLS0gL2Rldi9udWxsCisrKyBiL3QvdDUzMDktcGFjay1kZWx0YS1jeWNsZXMuc2gKQEAgLTAsMCArMSw3NyBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249J3Rlc3QgaW5kZXgtcGFjayBoYW5kbGluZyBvZiBkZWx0YSBjeWNsZXMgaW4gcGFja2ZpbGVzJworLiAuL3Rlc3QtbGliLnNoCisuICIkVEVTVF9ESVJFQ1RPUlkiL2xpYi1wYWNrLnNoCisKKyMgVHdvIHNpbWlsYXItaXNoIG9iamVjdHMgdGhhdCB3ZSBoYXZlIGNvbXB1dGVkIGRlbHRhcyBiZXR3ZWVuLgorQT0wMWQ3NzEzNjY2ZjRkZTgyMjc3NmM3NjIyYzEwZjFiMDdkZTI4MGRjCitCPWU2OGZlODEyOWI1NDZiMTAxYWVlOTUxMGM1MzI4ZTdmMjFjYTFkMTgKKworIyBkb3VibGUtY2hlY2sgb3VyIGhhbmQtY29uc3R1Y3RlZCBwYWNrcwordGVzdF9leHBlY3Rfc3VjY2VzcyAnaW5kZXgtcGFjayB3b3JrcyB3aXRoIGEgc2luZ2xlIGRlbHRhIChBLT5CKScgJworCWNsZWFyX3BhY2tzICYmCisJeworCQlwYWNrX2hlYWRlciAyICYmCisJCXBhY2tfb2JqICRBICRCICYmCisJCXBhY2tfb2JqICRCCisJfSA+YWIucGFjayAmJgorCXBhY2tfdHJhaWxlciBhYi5wYWNrICYmCisJZ2l0IGluZGV4LXBhY2sgLS1zdGRpbiA8YWIucGFjayAmJgorCWdpdCBjYXQtZmlsZSAtdCAkQSAmJgorCWdpdCBjYXQtZmlsZSAtdCAkQgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdpbmRleC1wYWNrIHdvcmtzIHdpdGggYSBzaW5nbGUgZGVsdGEgKEItPkEpJyAnCisJY2xlYXJfcGFja3MgJiYKKwl7CisJCXBhY2tfaGVhZGVyIDIgJiYKKwkJcGFja19vYmogJEEgJiYKKwkJcGFja19vYmogJEIgJEEKKwl9ID5iYS5wYWNrICYmCisJcGFja190cmFpbGVyIGJhLnBhY2sgJiYKKwlnaXQgaW5kZXgtcGFjayAtLXN0ZGluIDxiYS5wYWNrICYmCisJZ2l0IGNhdC1maWxlIC10ICRBICYmCisJZ2l0IGNhdC1maWxlIC10ICRCCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2luZGV4LXBhY2sgZGV0ZWN0cyBtaXNzaW5nIGJhc2Ugb2JqZWN0cycgJworCWNsZWFyX3BhY2tzICYmCisJeworCQlwYWNrX2hlYWRlciAxICYmCisJCXBhY2tfb2JqICRBICRCCisJfSA+bWlzc2luZy5wYWNrICYmCisJcGFja190cmFpbGVyIG1pc3NpbmcucGFjayAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCBpbmRleC1wYWNrIC0tZml4LXRoaW4gLS1zdGRpbiA8bWlzc2luZy5wYWNrCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2luZGV4LXBhY2sgZGV0ZWN0cyBSRUZfREVMVEEgY3ljbGVzJyAnCisJY2xlYXJfcGFja3MgJiYKKwl7CisJCXBhY2tfaGVhZGVyIDIgJiYKKwkJcGFja19vYmogJEEgJEIgJiYKKwkJcGFja19vYmogJEIgJEEKKwl9ID5jeWNsZS5wYWNrICYmCisJcGFja190cmFpbGVyIGN5Y2xlLnBhY2sgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgaW5kZXgtcGFjayAtLWZpeC10aGluIC0tc3RkaW4gPGN5Y2xlLnBhY2sKKycKKwordGVzdF9leHBlY3RfZmFpbHVyZSAnZmFpbG92ZXIgdG8gYW4gb2JqZWN0IGluIGFub3RoZXIgcGFjaycgJworCWNsZWFyX3BhY2tzICYmCisJZ2l0IGluZGV4LXBhY2sgLS1zdGRpbiA8YWIucGFjayAmJgorCWdpdCBpbmRleC1wYWNrIC0tc3RkaW4gLS1maXgtdGhpbiA8Y3ljbGUucGFjaworJworCit0ZXN0X2V4cGVjdF9mYWlsdXJlICdmYWlsb3ZlciB0byBhIGR1cGxpY2F0ZSBvYmplY3QgaW4gdGhlIHNhbWUgcGFjaycgJworCWNsZWFyX3BhY2tzICYmCisJeworCQlwYWNrX2hlYWRlciAzICYmCisJCXBhY2tfb2JqICRBICRCICYmCisJCXBhY2tfb2JqICRCICRBICYmCisJCXBhY2tfb2JqICRBCisJfSA+cmVjb3ZlcmFibGUucGFjayAmJgorCXBhY2tfdHJhaWxlciByZWNvdmVyYWJsZS5wYWNrICYmCisJZ2l0IGluZGV4LXBhY2sgLS1maXgtdGhpbiAtLXN0ZGluIDxyZWNvdmVyYWJsZS5wYWNrCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NTUwMC1mZXRjaC1wYWNrLnNoIGIvdC90NTUwMC1mZXRjaC1wYWNrLnNoCmluZGV4IGQ4N2RkZjcuLjViMmIxYzIgMTAwNzU1Ci0tLSBhL3QvdDU1MDAtZmV0Y2gtcGFjay5zaAorKysgYi90L3Q1NTAwLWZldGNoLXBhY2suc2gKQEAgLTUzMSw1ICs1MzEsOTIgQEAKIAkJZ2l0IGZzY2sKIAkpCiAnCitjaGVja19wcm90X3BhdGggKCkgeworCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCisJRGlhZzogdXJsPSQxCisJRGlhZzogcHJvdG9jb2w9JDIKKwlEaWFnOiBwYXRoPSQzCisJRU9GCisJZ2l0IGZldGNoLXBhY2sgLS1kaWFnLXVybCAiJDEiIHwgZ3JlcCAtdiBob3N0YW5kcG9ydD0gPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorfQorCitjaGVja19wcm90X2hvc3RfcGF0aCAoKSB7CisJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKKwlEaWFnOiB1cmw9JDEKKwlEaWFnOiBwcm90b2NvbD0kMgorCURpYWc6IGhvc3RhbmRwb3J0PSQzCisJRGlhZzogcGF0aD0kNAorCUVPRgorCWdpdCBmZXRjaC1wYWNrIC0tZGlhZy11cmwgIiQxIiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCit9CisKK2ZvciByIGluIHJlcG8gcmU6cG8gcmUvcG8KK2RvCisJIyBnaXQgb3Igc3NoIHdpdGggc2NoZW1lCisJZm9yIHAgaW4gInNzaCtnaXQiICJnaXQrc3NoIiBnaXQgc3NoCisJZG8KKwkJZm9yIGggaW4gaG9zdCBob3N0OjEyIFs6OjFdIFs6OjFdOjIzCisJCWRvCisJCQljYXNlICIkcCIgaW4KKwkJCSpzc2gqKQorCQkJCXBwPXNzaAorCQkJCTs7CisJCQkqKQorCQkJCXBwPSRwCisJCQk7OworCQkJZXNhYworCQkJdGVzdF9leHBlY3Rfc3VjY2VzcyAiZmV0Y2gtcGFjayAtLWRpYWctdXJsICRwOi8vJGgvJHIiICcKKwkJCQljaGVja19wcm90X2hvc3RfcGF0aCAkcDovLyRoLyRyICRwcCAiJGgiICIvJHIiCisJCQknCisJCQkjICIvfiIgLT4gIn4iIGNvbnZlcnNpb24KKwkJCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImZldGNoLXBhY2sgLS1kaWFnLXVybCAkcDovLyRoL34kciIgJworCQkJCWNoZWNrX3Byb3RfaG9zdF9wYXRoICRwOi8vJGgvfiRyICRwcCAiJGgiICJ+JHIiCisJCQknCisJCWRvbmUKKwlkb25lCisJIyBmaWxlIHdpdGggc2NoZW1lCisJZm9yIHAgaW4gZmlsZQorCWRvCisJCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImZldGNoLXBhY2sgLS1kaWFnLXVybCAkcDovLyRoLyRyIiAnCisJCQljaGVja19wcm90X3BhdGggJHA6Ly8kaC8kciAkcCAiLyRyIgorCQknCisJCSMgTm8gIi9+IiAtPiAifiIgY29udmVyc2lvbiBmb3IgZmlsZQorCQl0ZXN0X2V4cGVjdF9zdWNjZXNzICJmZXRjaC1wYWNrIC0tZGlhZy11cmwgJHA6Ly8kaC9+JHIiICcKKwkJCWNoZWNrX3Byb3RfcGF0aCAkcDovLyRoL34kciAkcCAiL34kciIKKwkJJworCWRvbmUKKwkjIGZpbGUgd2l0aG91dCBzY2hlbWUKKwlmb3IgaCBpbiBub2hvc3Qgbm9ob3N0OjEyIFs6OjFdIFs6OjFdOjIzIFsgWzphYQorCWRvCisJCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImZldGNoLXBhY2sgLS1kaWFnLXVybCAuLyRoOiRyIiAnCisJCQljaGVja19wcm90X3BhdGggLi8kaDokciAkcCAiLi8kaDokciIKKwkJJworCQkjIE5vICIvfiIgLT4gIn4iIGNvbnZlcnNpb24gZm9yIGZpbGUKKwkJdGVzdF9leHBlY3Rfc3VjY2VzcyAiZmV0Y2gtcGFjayAtLWRpYWctdXJsIC4vJHA6JGgvfiRyIiAnCisJCWNoZWNrX3Byb3RfcGF0aCAuLyRwOiRoL34kciAkcCAiLi8kcDokaC9+JHIiCisJCScKKwlkb25lCisJI3NzaCB3aXRob3V0IHNjaGVtZQorCXA9c3NoCisJZm9yIGggaW4gaG9zdCBbOjoxXQorCWRvCisJCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImZldGNoLXBhY2sgLS1kaWFnLXVybCAkaDokciIgJworCQkJY2hlY2tfcHJvdF9wYXRoICRoOiRyICRwICIkciIKKwkJJworCQkjIERvICIvfiIgLT4gIn4iIGNvbnZlcnNpb24KKwkJdGVzdF9leHBlY3Rfc3VjY2VzcyAiZmV0Y2gtcGFjayAtLWRpYWctdXJsICRoOi9+JHIiICcKKwkJCWNoZWNrX3Byb3RfaG9zdF9wYXRoICRoOi9+JHIgJHAgIiRoIiAifiRyIgorCQknCisJZG9uZQorZG9uZQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzIE1JTkdXICdmZXRjaC1wYWNrIC0tZGlhZy11cmwgZmlsZTovL2M6L3JlcG8nICcKKwljaGVja19wcm90X3BhdGggZmlsZTovL2M6L3JlcG8gZmlsZSBjOi9yZXBvCisnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIE1JTkdXICdmZXRjaC1wYWNrIC0tZGlhZy11cmwgYzpyZXBvJyAnCisJY2hlY2tfcHJvdF9wYXRoIGM6cmVwbyBmaWxlIGM6cmVwbworJwogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDU1MTAtZmV0Y2guc2ggYi90L3Q1NTEwLWZldGNoLnNoCmluZGV4IGZkZTY4OTEuLmFiMjg1OTQgMTAwNzU1Ci0tLSBhL3QvdDU1MTAtZmV0Y2guc2gKKysrIGIvdC90NTUxMC1mZXRjaC5zaApAQCAtODgsNyArODgsNyBAQAogCWNkICIkRCIgJiYKIAlnaXQgY2xvbmUgLiBwcnVuZSAmJgogCWNkIHBydW5lICYmCi0JZ2l0IGZldGNoIG9yaWdpbiByZWZzL2hlYWRzL21hc3RlcjpyZWZzL3JlbW90ZXMvb3JpZ2luL2V4dHJhYnJhbmNoICYmCisJZ2l0IHVwZGF0ZS1yZWYgcmVmcy9yZW1vdGVzL29yaWdpbi9leHRyYWJyYW5jaCBtYXN0ZXIgJiYKIAogCWdpdCBmZXRjaCAtLXBydW5lIG9yaWdpbiAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2Ugb3JpZ2luL2V4dHJhYnJhbmNoCkBAIC05OCw3ICs5OCw3IEBACiAJY2QgIiREIiAmJgogCWdpdCBjbG9uZSAuIHBydW5lLWJyYW5jaCAmJgogCWNkIHBydW5lLWJyYW5jaCAmJgotCWdpdCBmZXRjaCBvcmlnaW4gcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9yZW1vdGVzL29yaWdpbi9leHRyYWJyYW5jaCAmJgorCWdpdCB1cGRhdGUtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vZXh0cmFicmFuY2ggbWFzdGVyICYmCiAKIAlnaXQgZmV0Y2ggLS1wcnVuZSBvcmlnaW4gbWFzdGVyICYmCiAJZ2l0IHJldi1wYXJzZSBvcmlnaW4vZXh0cmFicmFuY2gKQEAgLTExMywyNSArMTEzLDQ1IEBACiAJZ2l0IHJldi1wYXJzZSBvcmlnaW4vbWFzdGVyCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZldGNoIC0tcHJ1bmUgLS10YWdzIGRvZXMgbm90IGRlbGV0ZSB0aGUgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmZXRjaCAtLXBydW5lIC0tdGFncyBwcnVuZXMgYnJhbmNoZXMgYnV0IG5vdCB0YWdzJyAnCiAJY2QgIiREIiAmJgogCWdpdCBjbG9uZSAuIHBydW5lLXRhZ3MgJiYKIAljZCBwcnVuZS10YWdzICYmCi0JZ2l0IGZldGNoIG9yaWdpbiByZWZzL2hlYWRzL21hc3RlcjpyZWZzL3RhZ3Mvc29tZXRhZyAmJgorCWdpdCB0YWcgc29tZXRhZyBtYXN0ZXIgJiYKKwkjIENyZWF0ZSB3aGF0IGxvb2tzIGxpa2UgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIGZyb20gYW4gZWFybGllcgorCSMgZmV0Y2ggdGhhdCBoYXMgc2luY2UgYmVlbiBkZWxldGVkIGZyb20gdGhlIHJlbW90ZToKKwlnaXQgdXBkYXRlLXJlZiByZWZzL3JlbW90ZXMvb3JpZ2luL2Zha2UtcmVtb3RlIG1hc3RlciAmJgogCiAJZ2l0IGZldGNoIC0tcHJ1bmUgLS10YWdzIG9yaWdpbiAmJgogCWdpdCByZXYtcGFyc2Ugb3JpZ2luL21hc3RlciAmJgotCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2Ugc29tZWJyYW5jaAorCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2Ugb3JpZ2luL2Zha2UtcmVtb3RlICYmCisJZ2l0IHJldi1wYXJzZSBzb21ldGFnCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZldGNoIC0tcHJ1bmUgLS10YWdzIHdpdGggYnJhbmNoIGRvZXMgbm90IGRlbGV0ZSBvdGhlciByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZldGNoIC0tcHJ1bmUgLS10YWdzIHdpdGggYnJhbmNoIGRvZXMgbm90IHBydW5lIG90aGVyIHRoaW5ncycgJwogCWNkICIkRCIgJiYKIAlnaXQgY2xvbmUgLiBwcnVuZS10YWdzLWJyYW5jaCAmJgogCWNkIHBydW5lLXRhZ3MtYnJhbmNoICYmCi0JZ2l0IGZldGNoIG9yaWdpbiByZWZzL2hlYWRzL21hc3RlcjpyZWZzL3JlbW90ZXMvb3JpZ2luL2V4dHJhYnJhbmNoICYmCisJZ2l0IHRhZyBzb21ldGFnIG1hc3RlciAmJgorCWdpdCB1cGRhdGUtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vZXh0cmFicmFuY2ggbWFzdGVyICYmCiAKIAlnaXQgZmV0Y2ggLS1wcnVuZSAtLXRhZ3Mgb3JpZ2luIG1hc3RlciAmJgotCWdpdCByZXYtcGFyc2Ugb3JpZ2luL2V4dHJhYnJhbmNoCisJZ2l0IHJldi1wYXJzZSBvcmlnaW4vZXh0cmFicmFuY2ggJiYKKwlnaXQgcmV2LXBhcnNlIHNvbWV0YWcKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggLS1wcnVuZSAtLXRhZ3Mgd2l0aCByZWZzcGVjIHBydW5lcyBiYXNlZCBvbiByZWZzcGVjJyAnCisJY2QgIiREIiAmJgorCWdpdCBjbG9uZSAuIHBydW5lLXRhZ3MtcmVmc3BlYyAmJgorCWNkIHBydW5lLXRhZ3MtcmVmc3BlYyAmJgorCWdpdCB0YWcgc29tZXRhZyBtYXN0ZXIgJiYKKwlnaXQgdXBkYXRlLXJlZiByZWZzL3JlbW90ZXMvb3JpZ2luL2Zvby9vdGhlcmJyYW5jaCBtYXN0ZXIgJiYKKwlnaXQgdXBkYXRlLXJlZiByZWZzL3JlbW90ZXMvb3JpZ2luL2V4dHJhYnJhbmNoIG1hc3RlciAmJgorCisJZ2l0IGZldGNoIC0tcHJ1bmUgLS10YWdzIG9yaWdpbiByZWZzL2hlYWRzL2Zvby8qOnJlZnMvcmVtb3Rlcy9vcmlnaW4vZm9vLyogJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIHJlZnMvcmVtb3Rlcy9vcmlnaW4vZm9vL290aGVyYnJhbmNoICYmCisJZ2l0IHJldi1wYXJzZSBvcmlnaW4vZXh0cmFicmFuY2ggJiYKKwlnaXQgcmV2LXBhcnNlIHNvbWV0YWcKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggdGFncyB3aGVuIHRoZXJlIGlzIG5vIHRhZ3MnICcKQEAgLTQ5Nyw2ICs1MTcsODggQEAKIAkpCiAnCiAKKyMgY29uZmlndXJlZCBwcnVuZSB0ZXN0cworCitzZXRfY29uZmlnX3RyaXN0YXRlICgpIHsKKwkjIHZhcj0kMSB2YWw9JDIKKwljYXNlICIkMiIgaW4KKwl1bnNldCkgIHRlc3RfdW5jb25maWcgIiQxIiA7OworCSopCWdpdCBjb25maWcgIiQxIiAiJDIiIDs7CisJZXNhYworfQorCit0ZXN0X2NvbmZpZ3VyZWRfcHJ1bmUgKCkgeworCWZldGNoX3BydW5lPSQxIHJlbW90ZV9vcmlnaW5fcHJ1bmU9JDIgY21kbGluZT0kMyBleHBlY3RlZD0kNAorCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicHJ1bmUgZmV0Y2gucHJ1bmU9JDEgcmVtb3RlLm9yaWdpbi5wcnVuZT0kMiR7MzorICQzfTsgJDQiICcKKwkJIyBtYWtlIHN1cmUgYSBuZXdicmFuY2ggaXMgdGhlcmUgaW4gLiBhbmQgYWxzbyBpbiBvbmUKKwkJZ2l0IGJyYW5jaCAtZiBuZXdicmFuY2ggJiYKKwkJKAorCQkJY2Qgb25lICYmCisJCQl0ZXN0X3VuY29uZmlnIGZldGNoLnBydW5lICYmCisJCQl0ZXN0X3VuY29uZmlnIHJlbW90ZS5vcmlnaW4ucHJ1bmUgJiYKKwkJCWdpdCBmZXRjaCAmJgorCQkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL3JlbW90ZXMvb3JpZ2luL25ld2JyYW5jaAorCQkpCisKKwkJIyBub3cgcmVtb3ZlIGl0CisJCWdpdCBicmFuY2ggLWQgbmV3YnJhbmNoICYmCisKKwkJIyB0aGVuIHRlc3QKKwkJKAorCQkJY2Qgb25lICYmCisJCQlzZXRfY29uZmlnX3RyaXN0YXRlIGZldGNoLnBydW5lICRmZXRjaF9wcnVuZSAmJgorCQkJc2V0X2NvbmZpZ190cmlzdGF0ZSByZW1vdGUub3JpZ2luLnBydW5lICRyZW1vdGVfb3JpZ2luX3BydW5lICYmCisKKwkJCWdpdCBmZXRjaCAkY21kbGluZSAmJgorCQkJY2FzZSAiJGV4cGVjdGVkIiBpbgorCQkJcHJ1bmVkKQorCQkJCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9uZXdicmFuY2gKKwkJCQk7OworCQkJa2VwdCkKKwkJCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vbmV3YnJhbmNoCisJCQkJOzsKKwkJCWVzYWMKKwkJKQorCScKK30KKwordGVzdF9jb25maWd1cmVkX3BydW5lIHVuc2V0IHVuc2V0ICIiCQlrZXB0Cit0ZXN0X2NvbmZpZ3VyZWRfcHJ1bmUgdW5zZXQgdW5zZXQgIi0tbm8tcHJ1bmUiCWtlcHQKK3Rlc3RfY29uZmlndXJlZF9wcnVuZSB1bnNldCB1bnNldCAiLS1wcnVuZSIJcHJ1bmVkCisKK3Rlc3RfY29uZmlndXJlZF9wcnVuZSBmYWxzZSB1bnNldCAiIgkJa2VwdAordGVzdF9jb25maWd1cmVkX3BydW5lIGZhbHNlIHVuc2V0ICItLW5vLXBydW5lIglrZXB0Cit0ZXN0X2NvbmZpZ3VyZWRfcHJ1bmUgZmFsc2UgdW5zZXQgIi0tcHJ1bmUiCXBydW5lZAorCit0ZXN0X2NvbmZpZ3VyZWRfcHJ1bmUgdHJ1ZSAgdW5zZXQgIiIJCXBydW5lZAordGVzdF9jb25maWd1cmVkX3BydW5lIHRydWUgIHVuc2V0ICItLXBydW5lIglwcnVuZWQKK3Rlc3RfY29uZmlndXJlZF9wcnVuZSB0cnVlICB1bnNldCAiLS1uby1wcnVuZSIJa2VwdAorCit0ZXN0X2NvbmZpZ3VyZWRfcHJ1bmUgdW5zZXQgZmFsc2UgIiIJCWtlcHQKK3Rlc3RfY29uZmlndXJlZF9wcnVuZSB1bnNldCBmYWxzZSAiLS1uby1wcnVuZSIJa2VwdAordGVzdF9jb25maWd1cmVkX3BydW5lIHVuc2V0IGZhbHNlICItLXBydW5lIglwcnVuZWQKKwordGVzdF9jb25maWd1cmVkX3BydW5lIGZhbHNlIGZhbHNlICIiCQlrZXB0Cit0ZXN0X2NvbmZpZ3VyZWRfcHJ1bmUgZmFsc2UgZmFsc2UgIi0tbm8tcHJ1bmUiCWtlcHQKK3Rlc3RfY29uZmlndXJlZF9wcnVuZSBmYWxzZSBmYWxzZSAiLS1wcnVuZSIJcHJ1bmVkCisKK3Rlc3RfY29uZmlndXJlZF9wcnVuZSB0cnVlICBmYWxzZSAiIgkJa2VwdAordGVzdF9jb25maWd1cmVkX3BydW5lIHRydWUgIGZhbHNlICItLXBydW5lIglwcnVuZWQKK3Rlc3RfY29uZmlndXJlZF9wcnVuZSB0cnVlICBmYWxzZSAiLS1uby1wcnVuZSIJa2VwdAorCit0ZXN0X2NvbmZpZ3VyZWRfcHJ1bmUgdW5zZXQgdHJ1ZSAgIiIJCXBydW5lZAordGVzdF9jb25maWd1cmVkX3BydW5lIHVuc2V0IHRydWUgICItLW5vLXBydW5lIglrZXB0Cit0ZXN0X2NvbmZpZ3VyZWRfcHJ1bmUgdW5zZXQgdHJ1ZSAgIi0tcHJ1bmUiCXBydW5lZAorCit0ZXN0X2NvbmZpZ3VyZWRfcHJ1bmUgZmFsc2UgdHJ1ZSAgIiIJCXBydW5lZAordGVzdF9jb25maWd1cmVkX3BydW5lIGZhbHNlIHRydWUgICItLW5vLXBydW5lIglrZXB0Cit0ZXN0X2NvbmZpZ3VyZWRfcHJ1bmUgZmFsc2UgdHJ1ZSAgIi0tcHJ1bmUiCXBydW5lZAorCit0ZXN0X2NvbmZpZ3VyZWRfcHJ1bmUgdHJ1ZSAgdHJ1ZSAgIiIJCXBydW5lZAordGVzdF9jb25maWd1cmVkX3BydW5lIHRydWUgIHRydWUgICItLXBydW5lIglwcnVuZWQKK3Rlc3RfY29uZmlndXJlZF9wcnVuZSB0cnVlICB0cnVlICAiLS1uby1wcnVuZSIJa2VwdAorCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhbGwgYm91bmRhcnkgY29tbWl0cyBhcmUgZXhjbHVkZWQnICcKIAl0ZXN0X2NvbW1pdCBiYXNlICYmCiAJdGVzdF9jb21taXQgb25lc2lkZSAmJgpAQCAtNTEyLDQgKzYxNCw0MSBAQAogCXRlc3RfYnVuZGxlX29iamVjdF9jb3VudCAuZ2l0L29iamVjdHMvcGFjay9wYWNrLSR7cGFjayMjcGFjawl9LnBhY2sgMwogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmZXRjaCAtLXBydW5lIHByaW50cyB0aGUgcmVtb3RlcyB1cmwnICcKKwlnaXQgYnJhbmNoIGdvb2RieWUgJiYKKwlnaXQgY2xvbmUgLiBvbmx5LXBydW5lcyAmJgorCWdpdCBicmFuY2ggLUQgZ29vZGJ5ZSAmJgorCSgKKwkJY2Qgb25seS1wcnVuZXMgJiYKKwkJZ2l0IGZldGNoIC0tcHJ1bmUgb3JpZ2luIDI+JjEgfCBoZWFkIC1uMSA+Li4vYWN0dWFsCisJKSAmJgorCWVjaG8gIkZyb20gJHtEfS8uIiA+ZXhwZWN0ICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdicmFuY2huYW1lIEQvRiBjb25mbGljdCByZXNvbHZlZCBieSAtLXBydW5lJyAnCisJZ2l0IGJyYW5jaCBkaXIvZmlsZSAmJgorCWdpdCBjbG9uZSAuIHBydW5lLWRmLWNvbmZsaWN0ICYmCisJZ2l0IGJyYW5jaCAtRCBkaXIvZmlsZSAmJgorCWdpdCBicmFuY2ggZGlyICYmCisJKAorCQljZCBwcnVuZS1kZi1jb25mbGljdCAmJgorCQlnaXQgZmV0Y2ggLS1wcnVuZSAmJgorCQlnaXQgcmV2LXBhcnNlIG9yaWdpbi9kaXIgPi4uL2FjdHVhbAorCSkgJiYKKwlnaXQgcmV2LXBhcnNlIGRpciA+ZXhwZWN0ICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmZXRjaGluZyBhIG9uZS1sZXZlbCByZWYgd29ya3MnICcKKwl0ZXN0X2NvbW1pdCBleHRyYSAmJgorCWdpdCByZXNldCAtLWhhcmQgSEVBRF4gJiYKKwlnaXQgdXBkYXRlLXJlZiByZWZzL2ZvbyBleHRyYSAmJgorCWdpdCBpbml0IG9uZS1sZXZlbCAmJgorCSgKKwkJY2Qgb25lLWxldmVsICYmCisJCWdpdCBmZXRjaCAuLiBIRUFEIHJlZnMvZm9vCisJKQorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDU1MTUvZmV0Y2guYnItdW5jb25maWdfLS10YWdzXy4uXy5naXQgYi90L3Q1NTE1L2ZldGNoLmJyLXVuY29uZmlnXy0tdGFnc18uLl8uZ2l0CmluZGV4IDE2NjljYzQuLjBmNzBmNjYgMTAwNjQ0Ci0tLSBhL3QvdDU1MTUvZmV0Y2guYnItdW5jb25maWdfLS10YWdzXy4uXy5naXQKKysrIGIvdC90NTUxNS9mZXRjaC5ici11bmNvbmZpZ18tLXRhZ3NfLi5fLmdpdApAQCAtMSw0ICsxLDUgQEAKICMgYnItdW5jb25maWcgLS10YWdzIC4uLy5naXQKKzA1NjdkYTRkNWVkZDJmZjRiYjI5MmE0NjViYTllNjRkY2FkOTUzNmIJCS4uLwogNmM5ZGVjMmI5MjMyMjhjOWZmOTk0YzZjZmU0YWUxNmMxMjQwOGRjNQlub3QtZm9yLW1lcmdlCXRhZyAndGFnLW1hc3Rlcicgb2YgLi4vCiA4ZTMyYTZkOTAxMzI3YTIzZWY4MzE1MTFiYWRjZTdiZjNiZjQ2Njg5CW5vdC1mb3ItbWVyZ2UJdGFnICd0YWctb25lJyBvZiAuLi8KIDIyZmVlYTQ0OGIwMjNhMmQ4NjRlZjk0YjAxMzczNWFmMzRkMjM4YmEJbm90LWZvci1tZXJnZQl0YWcgJ3RhZy1vbmUtdHJlZScgb2YgLi4vCmRpZmYgLS1naXQgYS90L3Q1NTE1L2ZldGNoLm1hc3Rlcl8tLXRhZ3NfLi5fLmdpdCBiL3QvdDU1MTUvZmV0Y2gubWFzdGVyXy0tdGFnc18uLl8uZ2l0CmluZGV4IDhhNzQ5MzUuLmFiNDczYTYgMTAwNjQ0Ci0tLSBhL3QvdDU1MTUvZmV0Y2gubWFzdGVyXy0tdGFnc18uLl8uZ2l0CisrKyBiL3QvdDU1MTUvZmV0Y2gubWFzdGVyXy0tdGFnc18uLl8uZ2l0CkBAIC0xLDQgKzEsNSBAQAogIyBtYXN0ZXIgLS10YWdzIC4uLy5naXQKKzA1NjdkYTRkNWVkZDJmZjRiYjI5MmE0NjViYTllNjRkY2FkOTUzNmIJCS4uLwogNmM5ZGVjMmI5MjMyMjhjOWZmOTk0YzZjZmU0YWUxNmMxMjQwOGRjNQlub3QtZm9yLW1lcmdlCXRhZyAndGFnLW1hc3Rlcicgb2YgLi4vCiA4ZTMyYTZkOTAxMzI3YTIzZWY4MzE1MTFiYWRjZTdiZjNiZjQ2Njg5CW5vdC1mb3ItbWVyZ2UJdGFnICd0YWctb25lJyBvZiAuLi8KIDIyZmVlYTQ0OGIwMjNhMmQ4NjRlZjk0YjAxMzczNWFmMzRkMjM4YmEJbm90LWZvci1tZXJnZQl0YWcgJ3RhZy1vbmUtdHJlZScgb2YgLi4vCmRpZmYgLS1naXQgYS90L3Q1NTE2LWZldGNoLXB1c2guc2ggYi90L3Q1NTE2LWZldGNoLXB1c2guc2gKaW5kZXggNDY5MWQ1MS4uOTI2ZTdmNiAxMDA3NTUKLS0tIGEvdC90NTUxNi1mZXRjaC1wdXNoLnNoCisrKyBiL3QvdDU1MTYtZmV0Y2gtcHVzaC5zaApAQCAtMTEyNiw2ICsxMTI2LDgxIEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoaW5nIGEgc3BlY2lmaWMgcmVmIGFwcGxpZXMgcmVtb3RlLiRuYW1lLnB1c2ggYXMgcmVmbWFwJyAnCisJbWtfdGVzdCB0ZXN0cmVwbyBoZWFkcy9tYXN0ZXIgJiYKKwlybSAtZnIgc3JjIGRzdCAmJgorCWdpdCBpbml0IHNyYyAmJgorCWdpdCBpbml0IC0tYmFyZSBkc3QgJiYKKwkoCisJCWNkIHNyYyAmJgorCQlnaXQgcHVsbCAuLi90ZXN0cmVwbyBtYXN0ZXIgJiYKKwkJZ2l0IGJyYW5jaCBuZXh0ICYmCisJCWdpdCBjb25maWcgcmVtb3RlLmRzdC51cmwgLi4vZHN0ICYmCisJCWdpdCBjb25maWcgcmVtb3RlLmRzdC5wdXNoICIrcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy9zcmMvKiIgJiYKKwkJZ2l0IHB1c2ggZHN0IG1hc3RlciAmJgorCQlnaXQgc2hvdy1yZWYgcmVmcy9oZWFkcy9tYXN0ZXIgfAorCQlzZWQgLWUgInN8cmVmcy9oZWFkcy98cmVmcy9yZW1vdGVzL3NyYy98IiA+Li4vZHN0L2V4cGVjdAorCSkgJiYKKwkoCisJCWNkIGRzdCAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgc2hvdy1yZWYgcmVmcy9oZWFkcy9uZXh0ICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBzaG93LXJlZiByZWZzL2hlYWRzL21hc3RlciAmJgorCQlnaXQgc2hvdy1yZWYgcmVmcy9yZW1vdGVzL3NyYy9tYXN0ZXIgPmFjdHVhbAorCSkgJiYKKwl0ZXN0X2NtcCBkc3QvZXhwZWN0IGRzdC9hY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnd2l0aCBubyByZW1vdGUuJG5hbWUucHVzaCwgaXQgaXMgbm90IHVzZWQgYXMgcmVmbWFwJyAnCisJbWtfdGVzdCB0ZXN0cmVwbyBoZWFkcy9tYXN0ZXIgJiYKKwlybSAtZnIgc3JjIGRzdCAmJgorCWdpdCBpbml0IHNyYyAmJgorCWdpdCBpbml0IC0tYmFyZSBkc3QgJiYKKwkoCisJCWNkIHNyYyAmJgorCQlnaXQgcHVsbCAuLi90ZXN0cmVwbyBtYXN0ZXIgJiYKKwkJZ2l0IGJyYW5jaCBuZXh0ICYmCisJCWdpdCBjb25maWcgcmVtb3RlLmRzdC51cmwgLi4vZHN0ICYmCisJCWdpdCBjb25maWcgcHVzaC5kZWZhdWx0IG1hdGNoaW5nICYmCisJCWdpdCBwdXNoIGRzdCBtYXN0ZXIgJiYKKwkJZ2l0IHNob3ctcmVmIHJlZnMvaGVhZHMvbWFzdGVyID4uLi9kc3QvZXhwZWN0CisJKSAmJgorCSgKKwkJY2QgZHN0ICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBzaG93LXJlZiByZWZzL2hlYWRzL25leHQgJiYKKwkJZ2l0IHNob3ctcmVmIHJlZnMvaGVhZHMvbWFzdGVyID5hY3R1YWwKKwkpICYmCisJdGVzdF9jbXAgZHN0L2V4cGVjdCBkc3QvYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3dpdGggbm8gcmVtb3RlLiRuYW1lLnB1c2gsIHVwc3RyZWFtIG1hcHBpbmcgaXMgdXNlZCcgJworCW1rX3Rlc3QgdGVzdHJlcG8gaGVhZHMvbWFzdGVyICYmCisJcm0gLWZyIHNyYyBkc3QgJiYKKwlnaXQgaW5pdCBzcmMgJiYKKwlnaXQgaW5pdCAtLWJhcmUgZHN0ICYmCisJKAorCQljZCBzcmMgJiYKKwkJZ2l0IHB1bGwgLi4vdGVzdHJlcG8gbWFzdGVyICYmCisJCWdpdCBicmFuY2ggbmV4dCAmJgorCQlnaXQgY29uZmlnIHJlbW90ZS5kc3QudXJsIC4uL2RzdCAmJgorCQlnaXQgY29uZmlnIHJlbW90ZS5kc3QuZmV0Y2ggIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL2RzdC8qIiAmJgorCQlnaXQgY29uZmlnIHB1c2guZGVmYXVsdCB1cHN0cmVhbSAmJgorCisJCWdpdCBjb25maWcgYnJhbmNoLm1hc3Rlci5tZXJnZSByZWZzL2hlYWRzL3RydW5rICYmCisJCWdpdCBjb25maWcgYnJhbmNoLm1hc3Rlci5yZW1vdGUgZHN0ICYmCisKKwkJZ2l0IHB1c2ggZHN0IG1hc3RlciAmJgorCQlnaXQgc2hvdy1yZWYgcmVmcy9oZWFkcy9tYXN0ZXIgfAorCQlzZWQgLWUgInN8cmVmcy9oZWFkcy9tYXN0ZXJ8cmVmcy9oZWFkcy90cnVua3wiID4uLi9kc3QvZXhwZWN0CisJKSAmJgorCSgKKwkJY2QgZHN0ICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBzaG93LXJlZiByZWZzL2hlYWRzL21hc3RlciAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgc2hvdy1yZWYgcmVmcy9oZWFkcy9uZXh0ICYmCisJCWdpdCBzaG93LXJlZiByZWZzL2hlYWRzL3RydW5rID5hY3R1YWwKKwkpICYmCisJdGVzdF9jbXAgZHN0L2V4cGVjdCBkc3QvYWN0dWFsCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1c2ggZG9lcyBub3QgZm9sbG93IHRhZ3MgYnkgZGVmYXVsdCcgJwogCW1rX3Rlc3QgdGVzdHJlcG8gaGVhZHMvbWFzdGVyICYmCiAJcm0gLWZyIHNyYyBkc3QgJiYKQEAgLTExNzIsNCArMTI0NywyMSBAQAogCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaCAtLW5vLXRoaW4gbXVzdCBwcm9kdWNlIG5vbi10aGluIHBhY2snICcKKwljYXQgPj5wYXRoMSA8PFxFT0YgJiYKK2tlZXAgYmFzZSB2ZXJzaW9uIG9mIHBhdGgxIGJpZyBlbm91Z2gsIGNvbXBhcmVkIHRvIHRoZSBuZXcgY2hhbmdlcworbGF0ZXIsIGluIG9yZGVyIHRvIHBhc3Mgc2l6ZSBoZXVyaXN0aWNzIGluCitidWlsdGluL3BhY2stb2JqZWN0cy5jOnRyeV9kZWx0YSgpCitFT0YKKwlnaXQgY29tbWl0IC1hbSBpbml0aWFsICYmCisJZ2l0IGluaXQgbm8tdGhpbiAmJgorCWdpdCAtLWdpdC1kaXI9bm8tdGhpbi8uZ2l0IGNvbmZpZyByZWNlaXZlLnVucGFja2xpbWl0IDAgJiYKKwlnaXQgcHVzaCBuby10aGluLy5naXQgcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy9mb28gJiYKKwllY2hvIG1vZGlmaWVkID4+IHBhdGgxICYmCisJZ2l0IGNvbW1pdCAtYW0gbW9kaWZpZWQgJiYKKwlnaXQgcmVwYWNrIC1hZGYgJiYKKwlyY3ZwY2s9ImdpdCByZWNlaXZlLXBhY2sgLS1yZWplY3QtdGhpbi1wYWNrLWZvci10ZXN0aW5nIiAmJgorCWdpdCBwdXNoIC0tbm8tdGhpbiAtLXJlY2VpdmUtcGFjaz0iJHJjdnBjayIgbm8tdGhpbi8uZ2l0IHJlZnMvaGVhZHMvbWFzdGVyOnJlZnMvaGVhZHMvZm9vCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NTUyMC1wdWxsLnNoIGIvdC90NTUyMC1wdWxsLnNoCmluZGV4IGVkNGQ5YzguLjIyN2QyOTMgMTAwNzU1Ci0tLSBhL3QvdDU1MjAtcHVsbC5zaAorKysgYi90L3Q1NTIwLXB1bGwuc2gKQEAgLTE0OCw2ICsxNDgsOTUgQEAKIAl0ZXN0IG5ldyA9ICQoZ2l0IHNob3cgSEVBRDpmaWxlMikKICcKIAorIyBhZGQgYSBmZWF0dXJlIGJyYW5jaCwga2VlcC1tZXJnZSwgdGhhdCBpcyBtZXJnZWQgaW50byBtYXN0ZXIsIHNvIHRoZQorIyB0ZXN0IGNhbiB0cnkgcHJlc2VydmluZyB0aGUgbWVyZ2UgY29tbWl0IChvciBub3QpIHdpdGggdmFyaW91cworIyAtLXJlYmFzZSBmbGFncy9wdWxsLnJlYmFzZSBzZXR0aW5ncy4KK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ByZXNlcnZlIG1lcmdlIHNldHVwJyAnCisJZ2l0IHJlc2V0IC0taGFyZCBiZWZvcmUtcmViYXNlICYmCisJZ2l0IGNoZWNrb3V0IC1iIGtlZXAtbWVyZ2Ugc2Vjb25kXiAmJgorCXRlc3RfY29tbWl0IGZpbGUzICYmCisJZ2l0IGNoZWNrb3V0IHRvLXJlYmFzZSAmJgorCWdpdCBtZXJnZSBrZWVwLW1lcmdlICYmCisJZ2l0IHRhZyBiZWZvcmUtcHJlc2VydmUtcmViYXNlCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1bGwucmViYXNlPWZhbHNlIGNyZWF0ZSBhIG5ldyBtZXJnZSBjb21taXQnICcKKwlnaXQgcmVzZXQgLS1oYXJkIGJlZm9yZS1wcmVzZXJ2ZS1yZWJhc2UgJiYKKwl0ZXN0X2NvbmZpZyBwdWxsLnJlYmFzZSBmYWxzZSAmJgorCWdpdCBwdWxsIC4gY29weSAmJgorCXRlc3QgJChnaXQgcmV2LXBhcnNlIEhFQUReMSkgPSAkKGdpdCByZXYtcGFyc2UgYmVmb3JlLXByZXNlcnZlLXJlYmFzZSkgJiYKKwl0ZXN0ICQoZ2l0IHJldi1wYXJzZSBIRUFEXjIpID0gJChnaXQgcmV2LXBhcnNlIGNvcHkpICYmCisJdGVzdCBmaWxlMyA9ICQoZ2l0IHNob3cgSEVBRDpmaWxlMy50KQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdWxsLnJlYmFzZT10cnVlIGZsYXR0ZW5zIGtlZXAtbWVyZ2UnICcKKwlnaXQgcmVzZXQgLS1oYXJkIGJlZm9yZS1wcmVzZXJ2ZS1yZWJhc2UgJiYKKwl0ZXN0X2NvbmZpZyBwdWxsLnJlYmFzZSB0cnVlICYmCisJZ2l0IHB1bGwgLiBjb3B5ICYmCisJdGVzdCAkKGdpdCByZXYtcGFyc2UgSEVBRF5eKSA9ICQoZ2l0IHJldi1wYXJzZSBjb3B5KSAmJgorCXRlc3QgZmlsZTMgPSAkKGdpdCBzaG93IEhFQUQ6ZmlsZTMudCkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHVsbC5yZWJhc2U9MSBpcyB0cmVhdGVkIGFzIHRydWUgYW5kIGZsYXR0ZW5zIGtlZXAtbWVyZ2UnICcKKwlnaXQgcmVzZXQgLS1oYXJkIGJlZm9yZS1wcmVzZXJ2ZS1yZWJhc2UgJiYKKwl0ZXN0X2NvbmZpZyBwdWxsLnJlYmFzZSAxICYmCisJZ2l0IHB1bGwgLiBjb3B5ICYmCisJdGVzdCAkKGdpdCByZXYtcGFyc2UgSEVBRF5eKSA9ICQoZ2l0IHJldi1wYXJzZSBjb3B5KSAmJgorCXRlc3QgZmlsZTMgPSAkKGdpdCBzaG93IEhFQUQ6ZmlsZTMudCkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHVsbC5yZWJhc2U9cHJlc2VydmUgcmViYXNlcyBhbmQgbWVyZ2VzIGtlZXAtbWVyZ2UnICcKKwlnaXQgcmVzZXQgLS1oYXJkIGJlZm9yZS1wcmVzZXJ2ZS1yZWJhc2UgJiYKKwl0ZXN0X2NvbmZpZyBwdWxsLnJlYmFzZSBwcmVzZXJ2ZSAmJgorCWdpdCBwdWxsIC4gY29weSAmJgorCXRlc3QgJChnaXQgcmV2LXBhcnNlIEhFQUReXikgPSAkKGdpdCByZXYtcGFyc2UgY29weSkgJiYKKwl0ZXN0ICQoZ2l0IHJldi1wYXJzZSBIRUFEXjIpID0gJChnaXQgcmV2LXBhcnNlIGtlZXAtbWVyZ2UpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1bGwucmViYXNlPWludmFsaWQgZmFpbHMnICcKKwlnaXQgcmVzZXQgLS1oYXJkIGJlZm9yZS1wcmVzZXJ2ZS1yZWJhc2UgJiYKKwl0ZXN0X2NvbmZpZyBwdWxsLnJlYmFzZSBpbnZhbGlkICYmCisJISBnaXQgcHVsbCAuIGNvcHkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1yZWJhc2U9ZmFsc2UgY3JlYXRlIGEgbmV3IG1lcmdlIGNvbW1pdCcgJworCWdpdCByZXNldCAtLWhhcmQgYmVmb3JlLXByZXNlcnZlLXJlYmFzZSAmJgorCXRlc3RfY29uZmlnIHB1bGwucmViYXNlIHRydWUgJiYKKwlnaXQgcHVsbCAtLXJlYmFzZT1mYWxzZSAuIGNvcHkgJiYKKwl0ZXN0ICQoZ2l0IHJldi1wYXJzZSBIRUFEXjEpID0gJChnaXQgcmV2LXBhcnNlIGJlZm9yZS1wcmVzZXJ2ZS1yZWJhc2UpICYmCisJdGVzdCAkKGdpdCByZXYtcGFyc2UgSEVBRF4yKSA9ICQoZ2l0IHJldi1wYXJzZSBjb3B5KSAmJgorCXRlc3QgZmlsZTMgPSAkKGdpdCBzaG93IEhFQUQ6ZmlsZTMudCkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1yZWJhc2U9dHJ1ZSByZWJhc2VzIGFuZCBmbGF0dGVucyBrZWVwLW1lcmdlJyAnCisJZ2l0IHJlc2V0IC0taGFyZCBiZWZvcmUtcHJlc2VydmUtcmViYXNlICYmCisJdGVzdF9jb25maWcgcHVsbC5yZWJhc2UgcHJlc2VydmUgJiYKKwlnaXQgcHVsbCAtLXJlYmFzZT10cnVlIC4gY29weSAmJgorCXRlc3QgJChnaXQgcmV2LXBhcnNlIEhFQUReXikgPSAkKGdpdCByZXYtcGFyc2UgY29weSkgJiYKKwl0ZXN0IGZpbGUzID0gJChnaXQgc2hvdyBIRUFEOmZpbGUzLnQpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tcmViYXNlPXByZXNlcnZlIHJlYmFzZXMgYW5kIG1lcmdlcyBrZWVwLW1lcmdlJyAnCisJZ2l0IHJlc2V0IC0taGFyZCBiZWZvcmUtcHJlc2VydmUtcmViYXNlICYmCisJdGVzdF9jb25maWcgcHVsbC5yZWJhc2UgdHJ1ZSAmJgorCWdpdCBwdWxsIC0tcmViYXNlPXByZXNlcnZlIC4gY29weSAmJgorCXRlc3QgJChnaXQgcmV2LXBhcnNlIEhFQUReXikgPSAkKGdpdCByZXYtcGFyc2UgY29weSkgJiYKKwl0ZXN0ICQoZ2l0IHJldi1wYXJzZSBIRUFEXjIpID0gJChnaXQgcmV2LXBhcnNlIGtlZXAtbWVyZ2UpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tcmViYXNlPWludmFsaWQgZmFpbHMnICcKKwlnaXQgcmVzZXQgLS1oYXJkIGJlZm9yZS1wcmVzZXJ2ZS1yZWJhc2UgJiYKKwkhIGdpdCBwdWxsIC0tcmViYXNlPWludmFsaWQgLiBjb3B5CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tcmViYXNlIG92ZXJyaWRlcyBwdWxsLnJlYmFzZT1wcmVzZXJ2ZSBhbmQgZmxhdHRlbnMga2VlcC1tZXJnZScgJworCWdpdCByZXNldCAtLWhhcmQgYmVmb3JlLXByZXNlcnZlLXJlYmFzZSAmJgorCXRlc3RfY29uZmlnIHB1bGwucmViYXNlIHByZXNlcnZlICYmCisJZ2l0IHB1bGwgLS1yZWJhc2UgLiBjb3B5ICYmCisJdGVzdCAkKGdpdCByZXYtcGFyc2UgSEVBRF5eKSA9ICQoZ2l0IHJldi1wYXJzZSBjb3B5KSAmJgorCXRlc3QgZmlsZTMgPSAkKGdpdCBzaG93IEhFQUQ6ZmlsZTMudCkKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1yZWJhc2Ugd2l0aCByZWJhc2VkIHVwc3RyZWFtJyAnCiAKIAlnaXQgcmVtb3RlIGFkZCAtZiBtZSAuICYmCmRpZmYgLS1naXQgYS90L3Q1NTI1LWZldGNoLXRhZ29wdC5zaCBiL3QvdDU1MjUtZmV0Y2gtdGFnb3B0LnNoCmluZGV4IDRmYmY3YTEuLjQ1ODE1ZjcgMTAwNzU1Ci0tLSBhL3QvdDU1MjUtZmV0Y2gtdGFnb3B0LnNoCisrKyBiL3QvdDU1MjUtZmV0Y2gtdGFnb3B0LnNoCkBAIC04LDcgKzgsOCBAQAogCWdpdCBjbG9uZSAtLW1pcnJvciAuICQxICYmCiAJZ2l0IHJlbW90ZSBhZGQgcmVtb3RlXyQxICQxICYmCiAJKGNkICQxICYmCi0JZ2l0IHRhZyB0YWdfJDEpCisJZ2l0IHRhZyB0YWdfJDEgJiYKKwlnaXQgYnJhbmNoIGJyYW5jaF8kMSkKIH0KIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCkBAIC0yMSwyMSArMjIsMzMgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAiZmV0Y2ggd2l0aCB0YWdvcHQ9LS1uby10YWdzIGRvZXMgbm90IGdldCB0YWciICcKIAlnaXQgZmV0Y2ggcmVtb3RlX29uZSAmJgotCXRlc3RfbXVzdF9mYWlsIGdpdCBzaG93LXJlZiB0YWdfb25lCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHNob3ctcmVmIHRhZ19vbmUgJiYKKwlnaXQgc2hvdy1yZWYgcmVtb3RlX29uZS9icmFuY2hfb25lCiAJJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICJmZXRjaCAtLXRhZ3Mgd2l0aCB0YWdvcHQ9LS1uby10YWdzIGdldHMgdGFnIiAnCisJKAorCQljZCBvbmUgJiYKKwkJZ2l0IGJyYW5jaCBzZWNvbmRfYnJhbmNoX29uZQorCSkgJiYKIAlnaXQgZmV0Y2ggLS10YWdzIHJlbW90ZV9vbmUgJiYKLQlnaXQgc2hvdy1yZWYgdGFnX29uZQorCWdpdCBzaG93LXJlZiB0YWdfb25lICYmCisJZ2l0IHNob3ctcmVmIHJlbW90ZV9vbmUvc2Vjb25kX2JyYW5jaF9vbmUKIAknCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgImZldGNoIC0tbm8tdGFncyB3aXRoIHRhZ29wdD0tLXRhZ3MgZG9lcyBub3QgZ2V0IHRhZyIgJwogCWdpdCBmZXRjaCAtLW5vLXRhZ3MgcmVtb3RlX3R3byAmJgotCXRlc3RfbXVzdF9mYWlsIGdpdCBzaG93LXJlZiB0YWdfdHdvCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHNob3ctcmVmIHRhZ190d28gJiYKKwlnaXQgc2hvdy1yZWYgcmVtb3RlX3R3by9icmFuY2hfdHdvCiAJJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICJmZXRjaCB3aXRoIHRhZ29wdD0tLXRhZ3MgZ2V0cyB0YWciICcKKwkoCisJCWNkIHR3byAmJgorCQlnaXQgYnJhbmNoIHNlY29uZF9icmFuY2hfdHdvCisJKSAmJgogCWdpdCBmZXRjaCByZW1vdGVfdHdvICYmCi0JZ2l0IHNob3ctcmVmIHRhZ190d28KKwlnaXQgc2hvdy1yZWYgdGFnX3R3byAmJgorCWdpdCBzaG93LXJlZiByZW1vdGVfdHdvL3NlY29uZF9icmFuY2hfdHdvCiAJJwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q1NTMxLWRlZXAtc3VibW9kdWxlLXB1c2guc2ggYi90L3Q1NTMxLWRlZXAtc3VibW9kdWxlLXB1c2guc2gKaW5kZXggOGMxNmUwNC4uNDQ1YmI1ZiAxMDA3NTUKLS0tIGEvdC90NTUzMS1kZWVwLXN1Ym1vZHVsZS1wdXNoLnNoCisrKyBiL3QvdDU1MzEtZGVlcC1zdWJtb2R1bGUtcHVzaC5zaApAQCAtMTIsNiArMTIsNyBAQAogCSgKIAkJY2Qgd29yayAmJgogCQlnaXQgaW5pdCAmJgorCQlnaXQgY29uZmlnIHB1c2guZGVmYXVsdCBtYXRjaGluZyAmJgogCQlta2RpciAtcCBnYXIvYmFnZSAmJgogCQkoCiAJCQljZCBnYXIvYmFnZSAmJgpkaWZmIC0tZ2l0IGEvdC90NTUzMy1wdXNoLWNhcy5zaCBiL3QvdDU1MzMtcHVzaC1jYXMuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmEyMGQ4MwotLS0gL2Rldi9udWxsCisrKyBiL3QvdDU1MzMtcHVzaC1jYXMuc2gKQEAgLTAsMCArMSwxODkgQEAKKyMhL2Jpbi9zaAorCit0ZXN0X2Rlc2NyaXB0aW9uPSdjb21wYXJlICYgc3dhcCBwdXNoIGZvcmNlL2RlbGV0ZSBzYWZldHknCisKKy4gLi90ZXN0LWxpYi5zaAorCitzZXR1cF9zcmNkc3RfYmFzaWMgKCkgeworCXJtIC1mciBzcmMgZHN0ICYmCisJZ2l0IGNsb25lIC0tbm8tbG9jYWwgLiBzcmMgJiYKKwlnaXQgY2xvbmUgLS1uby1sb2NhbCBzcmMgZHN0ICYmCisJKAorCQljZCBzcmMgJiYgZ2l0IGNoZWNrb3V0IEhFQUReMAorCSkKK30KKwordGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCisJOiBjcmVhdGUgdGVtcGxhdGUgcmVwb3NpdG9yeQorCXRlc3RfY29tbWl0IEEgJiYKKwl0ZXN0X2NvbW1pdCBCICYmCisJdGVzdF9jb21taXQgQworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIHRvIHVwZGF0ZSAocHJvdGVjdGVkKScgJworCXNldHVwX3NyY2RzdF9iYXNpYyAmJgorCSgKKwkJY2QgZHN0ICYmCisJCXRlc3RfY29tbWl0IEQgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHB1c2ggLS1mb3JjZS13aXRoLWxlYXNlPW1hc3RlcjptYXN0ZXIgb3JpZ2luIG1hc3RlcgorCSkgJiYKKwlnaXQgbHMtcmVtb3RlIC4gcmVmcy9oZWFkcy9tYXN0ZXIgPmV4cGVjdCAmJgorCWdpdCBscy1yZW1vdGUgc3JjIHJlZnMvaGVhZHMvbWFzdGVyID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1c2ggdG8gdXBkYXRlIChwcm90ZWN0ZWQsIGZvcmNlZCknICcKKwlzZXR1cF9zcmNkc3RfYmFzaWMgJiYKKwkoCisJCWNkIGRzdCAmJgorCQl0ZXN0X2NvbW1pdCBEICYmCisJCWdpdCBwdXNoIC0tZm9yY2UgLS1mb3JjZS13aXRoLWxlYXNlPW1hc3RlcjptYXN0ZXIgb3JpZ2luIG1hc3RlcgorCSkgJiYKKwlnaXQgbHMtcmVtb3RlIGRzdCByZWZzL2hlYWRzL21hc3RlciA+ZXhwZWN0ICYmCisJZ2l0IGxzLXJlbW90ZSBzcmMgcmVmcy9oZWFkcy9tYXN0ZXIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaCB0byB1cGRhdGUgKHByb3RlY3RlZCwgdHJhY2tpbmcpJyAnCisJc2V0dXBfc3JjZHN0X2Jhc2ljICYmCisJKAorCQljZCBzcmMgJiYKKwkJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCQl0ZXN0X2NvbW1pdCBEICYmCisJCWdpdCBjaGVja291dCBIRUFEXjAKKwkpICYmCisJZ2l0IGxzLXJlbW90ZSBzcmMgcmVmcy9oZWFkcy9tYXN0ZXIgPmV4cGVjdCAmJgorCSgKKwkJY2QgZHN0ICYmCisJCXRlc3RfY29tbWl0IEUgJiYKKwkJZ2l0IGxzLXJlbW90ZSAuIHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyID5leHBlY3QgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHB1c2ggLS1mb3JjZS13aXRoLWxlYXNlPW1hc3RlciBvcmlnaW4gbWFzdGVyICYmCisJCWdpdCBscy1yZW1vdGUgLiByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlciA+YWN0dWFsICYmCisJCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwkpICYmCisJZ2l0IGxzLXJlbW90ZSBzcmMgcmVmcy9oZWFkcy9tYXN0ZXIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaCB0byB1cGRhdGUgKHByb3RlY3RlZCwgdHJhY2tpbmcsIGZvcmNlZCknICcKKwlzZXR1cF9zcmNkc3RfYmFzaWMgJiYKKwkoCisJCWNkIHNyYyAmJgorCQlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJCXRlc3RfY29tbWl0IEQgJiYKKwkJZ2l0IGNoZWNrb3V0IEhFQUReMAorCSkgJiYKKwkoCisJCWNkIGRzdCAmJgorCQl0ZXN0X2NvbW1pdCBFICYmCisJCWdpdCBscy1yZW1vdGUgLiByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlciA+ZXhwZWN0ICYmCisJCWdpdCBwdXNoIC0tZm9yY2UgLS1mb3JjZS13aXRoLWxlYXNlPW1hc3RlciBvcmlnaW4gbWFzdGVyCisJKSAmJgorCWdpdCBscy1yZW1vdGUgZHN0IHJlZnMvaGVhZHMvbWFzdGVyID5leHBlY3QgJiYKKwlnaXQgbHMtcmVtb3RlIHNyYyByZWZzL2hlYWRzL21hc3RlciA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIHRvIHVwZGF0ZSAoYWxsb3dlZCknICcKKwlzZXR1cF9zcmNkc3RfYmFzaWMgJiYKKwkoCisJCWNkIGRzdCAmJgorCQl0ZXN0X2NvbW1pdCBEICYmCisJCWdpdCBwdXNoIC0tZm9yY2Utd2l0aC1sZWFzZT1tYXN0ZXI6bWFzdGVyXiBvcmlnaW4gbWFzdGVyCisJKSAmJgorCWdpdCBscy1yZW1vdGUgZHN0IHJlZnMvaGVhZHMvbWFzdGVyID5leHBlY3QgJiYKKwlnaXQgbHMtcmVtb3RlIHNyYyByZWZzL2hlYWRzL21hc3RlciA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIHRvIHVwZGF0ZSAoYWxsb3dlZCwgdHJhY2tpbmcpJyAnCisJc2V0dXBfc3JjZHN0X2Jhc2ljICYmCisJKAorCQljZCBkc3QgJiYKKwkJdGVzdF9jb21taXQgRCAmJgorCQlnaXQgcHVzaCAtLWZvcmNlLXdpdGgtbGVhc2U9bWFzdGVyIG9yaWdpbiBtYXN0ZXIKKwkpICYmCisJZ2l0IGxzLXJlbW90ZSBkc3QgcmVmcy9oZWFkcy9tYXN0ZXIgPmV4cGVjdCAmJgorCWdpdCBscy1yZW1vdGUgc3JjIHJlZnMvaGVhZHMvbWFzdGVyID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1c2ggdG8gdXBkYXRlIChhbGxvd2VkIGV2ZW4gdGhvdWdoIG5vLWZmKScgJworCXNldHVwX3NyY2RzdF9iYXNpYyAmJgorCSgKKwkJY2QgZHN0ICYmCisJCWdpdCByZXNldCAtLWhhcmQgSEVBRF4gJiYKKwkJdGVzdF9jb21taXQgRCAmJgorCQlnaXQgcHVzaCAtLWZvcmNlLXdpdGgtbGVhc2U9bWFzdGVyIG9yaWdpbiBtYXN0ZXIKKwkpICYmCisJZ2l0IGxzLXJlbW90ZSBkc3QgcmVmcy9oZWFkcy9tYXN0ZXIgPmV4cGVjdCAmJgorCWdpdCBscy1yZW1vdGUgc3JjIHJlZnMvaGVhZHMvbWFzdGVyID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1c2ggdG8gZGVsZXRlIChwcm90ZWN0ZWQpJyAnCisJc2V0dXBfc3JjZHN0X2Jhc2ljICYmCisJZ2l0IGxzLXJlbW90ZSBzcmMgcmVmcy9oZWFkcy9tYXN0ZXIgPmV4cGVjdCAmJgorCSgKKwkJY2QgZHN0ICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBwdXNoIC0tZm9yY2Utd2l0aC1sZWFzZT1tYXN0ZXI6bWFzdGVyXiBvcmlnaW4gOm1hc3RlcgorCSkgJiYKKwlnaXQgbHMtcmVtb3RlIHNyYyByZWZzL2hlYWRzL21hc3RlciA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIHRvIGRlbGV0ZSAocHJvdGVjdGVkLCBmb3JjZWQpJyAnCisJc2V0dXBfc3JjZHN0X2Jhc2ljICYmCisJKAorCQljZCBkc3QgJiYKKwkJZ2l0IHB1c2ggLS1mb3JjZSAtLWZvcmNlLXdpdGgtbGVhc2U9bWFzdGVyOm1hc3Rlcl4gb3JpZ2luIDptYXN0ZXIKKwkpICYmCisJPmV4cGVjdCAmJgorCWdpdCBscy1yZW1vdGUgc3JjIHJlZnMvaGVhZHMvbWFzdGVyID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1c2ggdG8gZGVsZXRlIChhbGxvd2VkKScgJworCXNldHVwX3NyY2RzdF9iYXNpYyAmJgorCSgKKwkJY2QgZHN0ICYmCisJCWdpdCBwdXNoIC0tZm9yY2Utd2l0aC1sZWFzZT1tYXN0ZXIgb3JpZ2luIDptYXN0ZXIKKwkpICYmCisJPmV4cGVjdCAmJgorCWdpdCBscy1yZW1vdGUgc3JjIHJlZnMvaGVhZHMvbWFzdGVyID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NvdmVyIGV2ZXJ5dGhpbmcgd2l0aCBkZWZhdWx0IGZvcmNlLXdpdGgtbGVhc2UgKHByb3RlY3RlZCknICcKKwlzZXR1cF9zcmNkc3RfYmFzaWMgJiYKKwkoCisJCWNkIHNyYyAmJgorCQlnaXQgYnJhbmNoIG5hc3RlciBtYXN0ZXJeCisJKQorCWdpdCBscy1yZW1vdGUgc3JjIHJlZnMvaGVhZHMvXCogPmV4cGVjdCAmJgorCSgKKwkJY2QgZHN0ICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBwdXNoIC0tZm9yY2Utd2l0aC1sZWFzZSBvcmlnaW4gbWFzdGVyIG1hc3RlcjpuYXN0ZXIKKwkpICYmCisJZ2l0IGxzLXJlbW90ZSBzcmMgcmVmcy9oZWFkcy9cKiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjb3ZlciBldmVyeXRoaW5nIHdpdGggZGVmYXVsdCBmb3JjZS13aXRoLWxlYXNlIChhbGxvd2VkKScgJworCXNldHVwX3NyY2RzdF9iYXNpYyAmJgorCSgKKwkJY2Qgc3JjICYmCisJCWdpdCBicmFuY2ggbmFzdGVyIG1hc3Rlcl4KKwkpCisJKAorCQljZCBkc3QgJiYKKwkJZ2l0IGZldGNoICYmCisJCWdpdCBwdXNoIC0tZm9yY2Utd2l0aC1sZWFzZSBvcmlnaW4gbWFzdGVyIG1hc3RlcjpuYXN0ZXIKKwkpICYmCisJZ2l0IGxzLXJlbW90ZSBkc3QgcmVmcy9oZWFkcy9tYXN0ZXIgfAorCXNlZCAtZSAicy9tYXN0ZXIvbmFzdGVyLyIgPmV4cGVjdCAmJgorCWdpdCBscy1yZW1vdGUgc3JjIHJlZnMvaGVhZHMvbmFzdGVyID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NTUzNi1mZXRjaC1jb25mbGljdHMuc2ggYi90L3Q1NTM2LWZldGNoLWNvbmZsaWN0cy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YzVkM2E0Ci0tLSAvZGV2L251bGwKKysrIGIvdC90NTUzNi1mZXRjaC1jb25mbGljdHMuc2gKQEAgLTAsMCArMSwxMDAgQEAKKyMhL2Jpbi9zaAorCit0ZXN0X2Rlc2NyaXB0aW9uPSdmZXRjaCBoYW5kbGVzIGNvbmZsaWN0aW5nIHJlZnNwZWNzIGNvcnJlY3RseScKKworLiAuL3Rlc3QtbGliLnNoCisKK0Q9JChwd2QpCisKK3NldHVwX3JlcG9zaXRvcnkgKCkgeworCWdpdCBpbml0ICIkMSIgJiYgKAorCQljZCAiJDEiICYmCisJCWdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwgIiREIiAmJgorCQlzaGlmdCAmJgorCQlmb3IgcmVmc3BlYyBpbiAiJEAiCisJCWRvCisJCQlnaXQgY29uZmlnIC0tYWRkIHJlbW90ZS5vcmlnaW4uZmV0Y2ggIiRyZWZzcGVjIgorCQlkb25lCisJKQorfQorCit2ZXJpZnlfc3RkZXJyICgpIHsKKwljYXQgPmV4cGVjdGVkICYmCisJIyBXZSdyZSBub3QgaW50ZXJlc3RlZCBpbiB0aGUgZXJyb3IKKwkjICJmYXRhbDogVGhlIHJlbW90ZSBlbmQgaHVuZyB1cCB1bmV4cGVjdGVkbHkiOgorCWdyZXAgLUUgJ14oZmF0YWx8d2FybmluZyk6JyA8ZXJyb3IgfCBncmVwIC12ICdodW5nIHVwJyA+YWN0dWFsIHwgc29ydCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorfQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCcgJworCWdpdCBjb21taXQgLS1hbGxvdy1lbXB0eSAtbSAiSW5pdGlhbCIgJiYKKwlnaXQgYnJhbmNoIGJyYW5jaDEgJiYKKwlnaXQgdGFnIHRhZzEgJiYKKwlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gIkZpcnN0IiAmJgorCWdpdCBicmFuY2ggYnJhbmNoMiAmJgorCWdpdCB0YWcgdGFnMgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmZXRjaCB3aXRoIG5vIGNvbmZsaWN0JyAnCisJc2V0dXBfcmVwb3NpdG9yeSBvayAiK3JlZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvb3JpZ2luLyoiICYmICgKKwkJY2Qgb2sgJiYKKwkJZ2l0IGZldGNoIG9yaWdpbgorCSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggY29uZmxpY3Q6IGNvbmZpZyB2cy4gY29uZmlnJyAnCisJc2V0dXBfcmVwb3NpdG9yeSBjY2MgXAorCQkiK3JlZnMvaGVhZHMvYnJhbmNoMTpyZWZzL3JlbW90ZXMvb3JpZ2luL2JyYW5jaDEiIFwKKwkJIityZWZzL2hlYWRzL2JyYW5jaDI6cmVmcy9yZW1vdGVzL29yaWdpbi9icmFuY2gxIiAmJiAoCisJCWNkIGNjYyAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgZmV0Y2ggb3JpZ2luIDI+ZXJyb3IgJiYKKwkJdmVyaWZ5X3N0ZGVyciA8PC1cRU9GCisJCWZhdGFsOiBDYW5ub3QgZmV0Y2ggYm90aCByZWZzL2hlYWRzL2JyYW5jaDEgYW5kIHJlZnMvaGVhZHMvYnJhbmNoMiB0byByZWZzL3JlbW90ZXMvb3JpZ2luL2JyYW5jaDEKKwkJRU9GCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmZXRjaCBkdXBsaWNhdGU6IGNvbmZpZyB2cy4gY29uZmlnJyAnCisJc2V0dXBfcmVwb3NpdG9yeSBkY2MgXAorCQkiK3JlZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvb3JpZ2luLyoiIFwKKwkJIityZWZzL2hlYWRzL2JyYW5jaDE6cmVmcy9yZW1vdGVzL29yaWdpbi9icmFuY2gxIiAmJiAoCisJCWNkIGRjYyAmJgorCQlnaXQgZmV0Y2ggb3JpZ2luCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmZXRjaCBjb25mbGljdDogYXJnIG92ZXJyaWRlcyBjb25maWcnICcKKwlzZXR1cF9yZXBvc2l0b3J5IGFvYyBcCisJCSIrcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy9vcmlnaW4vKiIgJiYgKAorCQljZCBhb2MgJiYKKwkJZ2l0IGZldGNoIG9yaWdpbiByZWZzL2hlYWRzL2JyYW5jaDI6cmVmcy9yZW1vdGVzL29yaWdpbi9icmFuY2gxCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmZXRjaCBjb25mbGljdDogYXJnIHZzLiBhcmcnICcKKwlzZXR1cF9yZXBvc2l0b3J5IGNhYSAmJiAoCisJCWNkIGNhYSAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgZmV0Y2ggb3JpZ2luIFwKKwkJCXJlZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvb3JpZ2luLyogXAorCQkJcmVmcy9oZWFkcy9icmFuY2gyOnJlZnMvcmVtb3Rlcy9vcmlnaW4vYnJhbmNoMSAyPmVycm9yICYmCisJCXZlcmlmeV9zdGRlcnIgPDwtXEVPRgorCQlmYXRhbDogQ2Fubm90IGZldGNoIGJvdGggcmVmcy9oZWFkcy9icmFuY2gxIGFuZCByZWZzL2hlYWRzL2JyYW5jaDIgdG8gcmVmcy9yZW1vdGVzL29yaWdpbi9icmFuY2gxCisJCUVPRgorCSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggY29uZmxpY3Q6IGNyaXNzLWNyb3NzIGFyZ3MnICcKKwlzZXR1cF9yZXBvc2l0b3J5IHhhYSBcCisJCSIrcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy9vcmlnaW4vKiIgJiYgKAorCQljZCB4YWEgJiYKKwkJZ2l0IGZldGNoIG9yaWdpbiBcCisJCQlyZWZzL2hlYWRzL2JyYW5jaDE6cmVmcy9yZW1vdGVzL29yaWdpbi9icmFuY2gyIFwKKwkJCXJlZnMvaGVhZHMvYnJhbmNoMjpyZWZzL3JlbW90ZXMvb3JpZ2luL2JyYW5jaDEgMj5lcnJvciAmJgorCQl2ZXJpZnlfc3RkZXJyIDw8LVxFT0YKKwkJd2FybmluZzogcmVmcy9yZW1vdGVzL29yaWdpbi9icmFuY2gxIHVzdWFsbHkgdHJhY2tzIHJlZnMvaGVhZHMvYnJhbmNoMSwgbm90IHJlZnMvaGVhZHMvYnJhbmNoMgorCQl3YXJuaW5nOiByZWZzL3JlbW90ZXMvb3JpZ2luL2JyYW5jaDIgdXN1YWxseSB0cmFja3MgcmVmcy9oZWFkcy9icmFuY2gyLCBub3QgcmVmcy9oZWFkcy9icmFuY2gxCisJCUVPRgorCSkKKycKKwordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q1NTM3LWZldGNoLXNoYWxsb3cuc2ggYi90L3Q1NTM3LWZldGNoLXNoYWxsb3cuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjBmYTczOAotLS0gL2Rldi9udWxsCisrKyBiL3QvdDU1MzctZmV0Y2gtc2hhbGxvdy5zaApAQCAtMCwwICsxLDIwNCBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249J2ZldGNoL2Nsb25lIGZyb20gYSBzaGFsbG93IGNsb25lJworCisuIC4vdGVzdC1saWIuc2gKKworY29tbWl0KCkgeworCWVjaG8gIiQxIiA+dHJhY2tlZCAmJgorCWdpdCBhZGQgdHJhY2tlZCAmJgorCWdpdCBjb21taXQgLW0gIiQxIgorfQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCcgJworCWNvbW1pdCAxICYmCisJY29tbWl0IDIgJiYKKwljb21taXQgMyAmJgorCWNvbW1pdCA0ICYmCisJZ2l0IGNvbmZpZyAtLWdsb2JhbCB0cmFuc2Zlci5mc2NrT2JqZWN0cyB0cnVlCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIHNoYWxsb3cgY2xvbmUnICcKKwlnaXQgY2xvbmUgLS1uby1sb2NhbCAtLWRlcHRoPTIgLmdpdCBzaGFsbG93ICYmCisJZ2l0IC0tZ2l0LWRpcj1zaGFsbG93Ly5naXQgbG9nIC0tZm9ybWF0PSVzID5hY3R1YWwgJiYKKwljYXQgPDxFT0YgPmV4cGVjdCAmJgorNAorMworRU9GCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZSBmcm9tIHNoYWxsb3cgY2xvbmUnICcKKwlnaXQgY2xvbmUgLS1uby1sb2NhbCBzaGFsbG93IHNoYWxsb3cyICYmCisJKAorCWNkIHNoYWxsb3cyICYmCisJZ2l0IGZzY2sgJiYKKwlnaXQgbG9nIC0tZm9ybWF0PSVzID5hY3R1YWwgJiYKKwljYXQgPDxFT0YgPmV4cGVjdCAmJgorNAorMworRU9GCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorCSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggZnJvbSBzaGFsbG93IGNsb25lJyAnCisJKAorCWNkIHNoYWxsb3cgJiYKKwljb21taXQgNQorCSkgJiYKKwkoCisJY2Qgc2hhbGxvdzIgJiYKKwlnaXQgZmV0Y2ggJiYKKwlnaXQgZnNjayAmJgorCWdpdCBsb2cgLS1mb3JtYXQ9JXMgb3JpZ2luL21hc3RlciA+YWN0dWFsICYmCisJY2F0IDw8RU9GID5leHBlY3QgJiYKKzUKKzQKKzMKK0VPRgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZldGNoIC0tZGVwdGggZnJvbSBzaGFsbG93IGNsb25lJyAnCisJKAorCWNkIHNoYWxsb3cgJiYKKwljb21taXQgNgorCSkgJiYKKwkoCisJY2Qgc2hhbGxvdzIgJiYKKwlnaXQgZmV0Y2ggLS1kZXB0aD0yICYmCisJZ2l0IGZzY2sgJiYKKwlnaXQgbG9nIC0tZm9ybWF0PSVzIG9yaWdpbi9tYXN0ZXIgPmFjdHVhbCAmJgorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCis2Cis1CitFT0YKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmZXRjaCAtLXVuc2hhbGxvdyBmcm9tIHNoYWxsb3cgY2xvbmUnICcKKwkoCisJY2Qgc2hhbGxvdzIgJiYKKwlnaXQgZmV0Y2ggLS11bnNoYWxsb3cgJiYKKwlnaXQgZnNjayAmJgorCWdpdCBsb2cgLS1mb3JtYXQ9JXMgb3JpZ2luL21hc3RlciA+YWN0dWFsICYmCisJY2F0IDw8RU9GID5leHBlY3QgJiYKKzYKKzUKKzQKKzMKK0VPRgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZldGNoIHNvbWV0aGluZyB1cHN0cmVhbSBoYXMgYnV0IGhpZGRlbiBieSBjbGllbnRzIHNoYWxsb3cgYm91bmRhcmllcycgJworCSMgdGhlIGJsb2IgIjEiIGlzIGF2YWlsYWJsZSBpbiAuZ2l0IGJ1dCBoaWRkZW4gYnkgdGhlCisJIyBzaGFsbG93Mi8uZ2l0L3NoYWxsb3cgYW5kIGl0IHNob3VsZCBiZSByZXNlbnQKKwkhIGdpdCAtLWdpdC1kaXI9c2hhbGxvdzIvLmdpdCBjYXQtZmlsZSBibG9iIGBlY2hvIDF8Z2l0IGhhc2gtb2JqZWN0IC0tc3RkaW5gID4vZGV2L251bGwgJiYKKwllY2hvIDEgPjEudCAmJgorCWdpdCBhZGQgMS50ICYmCisJZ2l0IGNvbW1pdCAtbSBhZGQtMS1iYWNrICYmCisJKAorCWNkIHNoYWxsb3cyICYmCisJZ2l0IGZldGNoIC4uLy5naXQgK3JlZnMvaGVhZHMvbWFzdGVyOnJlZnMvcmVtb3Rlcy90b3AvbWFzdGVyICYmCisJZ2l0IGZzY2sgJiYKKwlnaXQgbG9nIC0tZm9ybWF0PSVzIHRvcC9tYXN0ZXIgPmFjdHVhbCAmJgorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCithZGQtMS1iYWNrCis0CiszCitFT0YKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisJKSAmJgorCWdpdCAtLWdpdC1kaXI9c2hhbGxvdzIvLmdpdCBjYXQtZmlsZSBibG9iIGBlY2hvIDF8Z2l0IGhhc2gtb2JqZWN0IC0tc3RkaW5gID4vZGV2L251bGwKKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmZXRjaCB0aGF0IHJlcXVpcmVzIGNoYW5nZXMgaW4gLmdpdC9zaGFsbG93IGlzIGZpbHRlcmVkJyAnCisJKAorCWNkIHNoYWxsb3cgJiYKKwlnaXQgY2hlY2tvdXQgLS1vcnBoYW4gbm8tc2hhbGxvdyAmJgorCWNvbW1pdCBuby1zaGFsbG93CisJKSAmJgorCWdpdCBpbml0IG5vdHNoYWxsb3cgJiYKKwkoCisJY2Qgbm90c2hhbGxvdyAmJgorCWdpdCBmZXRjaCAuLi9zaGFsbG93Ly5naXQgcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy9zaGFsbG93LyomJgorCWdpdCBmb3ItZWFjaC1yZWYgLS1mb3JtYXQ9IiUocmVmbmFtZSkiID5hY3R1YWwucmVmcyAmJgorCWNhdCA8PEVPRiA+ZXhwZWN0LnJlZnMgJiYKK3JlZnMvcmVtb3Rlcy9zaGFsbG93L25vLXNoYWxsb3cKK0VPRgorCXRlc3RfY21wIGV4cGVjdC5yZWZzIGFjdHVhbC5yZWZzICYmCisJZ2l0IGxvZyAtLWZvcm1hdD0lcyBzaGFsbG93L25vLXNoYWxsb3cgPmFjdHVhbCAmJgorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCituby1zaGFsbG93CitFT0YKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmZXRjaCAtLXVwZGF0ZS1zaGFsbG93JyAnCisJKAorCWNkIHNoYWxsb3cgJiYKKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJY29tbWl0IDcgJiYKKwlnaXQgdGFnIC1tIGZvbyBoZWF2eS10YWcgSEVBRF4gJiYKKwlnaXQgdGFnIGxpZ2h0LXRhZyBIRUFEXjp0cmFja2VkCisJKSAmJgorCSgKKwljZCBub3RzaGFsbG93ICYmCisJZ2l0IGZldGNoIC0tdXBkYXRlLXNoYWxsb3cgLi4vc2hhbGxvdy8uZ2l0IHJlZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvc2hhbGxvdy8qICYmCisJZ2l0IGZzY2sgJiYKKwlnaXQgZm9yLWVhY2gtcmVmIC0tc29ydD1yZWZuYW1lIC0tZm9ybWF0PSIlKHJlZm5hbWUpIiA+YWN0dWFsLnJlZnMgJiYKKwljYXQgPDxFT0YgPmV4cGVjdC5yZWZzICYmCityZWZzL3JlbW90ZXMvc2hhbGxvdy9tYXN0ZXIKK3JlZnMvcmVtb3Rlcy9zaGFsbG93L25vLXNoYWxsb3cKK3JlZnMvdGFncy9oZWF2eS10YWcKK3JlZnMvdGFncy9saWdodC10YWcKK0VPRgorCXRlc3RfY21wIGV4cGVjdC5yZWZzIGFjdHVhbC5yZWZzICYmCisJZ2l0IGxvZyAtLWZvcm1hdD0lcyBzaGFsbG93L21hc3RlciA+YWN0dWFsICYmCisJY2F0IDw8RU9GID5leHBlY3QgJiYKKzcKKzYKKzUKKzQKKzMKK0VPRgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwkpCisnCisKK2lmIHRlc3QgLW4gIiROT19DVVJMIiAtbyAteiAiJEdJVF9URVNUX0hUVFBEIjsgdGhlbgorCXNheSAnc2tpcHBpbmcgcmVtYWluaW5nIHRlc3RzLCBnaXQgYnVpbHQgd2l0aG91dCBodHRwIHN1cHBvcnQnCisJdGVzdF9kb25lCitmaQorCitMSUJfSFRUUERfUE9SVD0ke0xJQl9IVFRQRF9QT1JULSc1NTM3J30KKy4gIiRURVNUX0RJUkVDVE9SWSIvbGliLWh0dHBkLnNoCitzdGFydF9odHRwZAorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZSBodHRwIHJlcG9zaXRvcnknICcKKwlnaXQgY2xvbmUgLS1iYXJlIC0tbm8tbG9jYWwgc2hhbGxvdyAiJEhUVFBEX0RPQ1VNRU5UX1JPT1RfUEFUSC9yZXBvLmdpdCIgJiYKKwlnaXQgY2xvbmUgJEhUVFBEX1VSTC9zbWFydC9yZXBvLmdpdCBjbG9uZSAmJgorCSgKKwljZCBjbG9uZSAmJgorCWdpdCBmc2NrICYmCisJZ2l0IGxvZyAtLWZvcm1hdD0lcyBvcmlnaW4vbWFzdGVyID5hY3R1YWwgJiYKKwljYXQgPDxFT0YgPmV4cGVjdCAmJgorNworNgorNQorNAorMworRU9GCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorCSkKKycKKworc3RvcF9odHRwZAordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q1NTM4LXB1c2gtc2hhbGxvdy5zaCBiL3QvdDU1MzgtcHVzaC1zaGFsbG93LnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBhNmU0MGYKLS0tIC9kZXYvbnVsbAorKysgYi90L3Q1NTM4LXB1c2gtc2hhbGxvdy5zaApAQCAtMCwwICsxLDE4MyBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249J3B1c2ggZnJvbS90byBhIHNoYWxsb3cgY2xvbmUnCisKKy4gLi90ZXN0LWxpYi5zaAorCitjb21taXQoKSB7CisJZWNobyAiJDEiID50cmFja2VkICYmCisJZ2l0IGFkZCB0cmFja2VkICYmCisJZ2l0IGNvbW1pdCAtbSAiJDEiCit9CisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwJyAnCisJZ2l0IGNvbmZpZyAtLWdsb2JhbCB0cmFuc2Zlci5mc2NrT2JqZWN0cyB0cnVlICYmCisJY29tbWl0IDEgJiYKKwljb21taXQgMiAmJgorCWNvbW1pdCAzICYmCisJY29tbWl0IDQgJiYKKwlnaXQgY2xvbmUgLiBmdWxsICYmCisJKAorCWdpdCBpbml0IGZ1bGwtYWJjICYmCisJY2QgZnVsbC1hYmMgJiYKKwljb21taXQgYSAmJgorCWNvbW1pdCBiICYmCisJY29tbWl0IGMKKwkpICYmCisJZ2l0IGNsb25lIC0tbm8tbG9jYWwgLS1kZXB0aD0yIC5naXQgc2hhbGxvdyAmJgorCWdpdCAtLWdpdC1kaXI9c2hhbGxvdy8uZ2l0IGxvZyAtLWZvcm1hdD0lcyA+YWN0dWFsICYmCisJY2F0IDw8RU9GID5leHBlY3QgJiYKKzQKKzMKK0VPRgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwlnaXQgY2xvbmUgLS1uby1sb2NhbCAtLWRlcHRoPTIgZnVsbC1hYmMvLmdpdCBzaGFsbG93MiAmJgorCWdpdCAtLWdpdC1kaXI9c2hhbGxvdzIvLmdpdCBsb2cgLS1mb3JtYXQ9JXMgPmFjdHVhbCAmJgorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCitjCitiCitFT0YKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1c2ggZnJvbSBzaGFsbG93IGNsb25lJyAnCisJKAorCWNkIHNoYWxsb3cgJiYKKwljb21taXQgNSAmJgorCWdpdCBwdXNoIC4uLy5naXQgK21hc3RlcjpyZWZzL3JlbW90ZXMvc2hhbGxvdy9tYXN0ZXIKKwkpICYmCisJZ2l0IGxvZyAtLWZvcm1hdD0lcyBzaGFsbG93L21hc3RlciA+YWN0dWFsICYmCisJZ2l0IGZzY2sgJiYKKwljYXQgPDxFT0YgPmV4cGVjdCAmJgorNQorNAorMworMgorMQorRU9GCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIGZyb20gc2hhbGxvdyBjbG9uZSwgd2l0aCBncmFmdGVkIHJvb3RzJyAnCisJKAorCWNkIHNoYWxsb3cyICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHB1c2ggLi4vLmdpdCArbWFzdGVyOnJlZnMvcmVtb3Rlcy9zaGFsbG93Mi9tYXN0ZXIgMj5lcnIgJiYKKwlncmVwICJzaGFsbG93Mi9tYXN0ZXIuKnNoYWxsb3cgdXBkYXRlIG5vdCBhbGxvd2VkIiBlcnIKKwkpICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSBzaGFsbG93Mi9tYXN0ZXIgJiYKKwlnaXQgZnNjaworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdhZGQgbmV3IHNoYWxsb3cgcm9vdCB3aXRoIHJlY2VpdmUudXBkYXRlc2hhbGxvdyBvbicgJworCXRlc3RfY29uZmlnIHJlY2VpdmUuc2hhbGxvd3VwZGF0ZSB0cnVlICYmCisJKAorCWNkIHNoYWxsb3cyICYmCisJZ2l0IHB1c2ggLi4vLmdpdCArbWFzdGVyOnJlZnMvcmVtb3Rlcy9zaGFsbG93Mi9tYXN0ZXIKKwkpICYmCisJZ2l0IGxvZyAtLWZvcm1hdD0lcyBzaGFsbG93Mi9tYXN0ZXIgPmFjdHVhbCAmJgorCWdpdCBmc2NrICYmCisJY2F0IDw8RU9GID5leHBlY3QgJiYKK2MKK2IKK0VPRgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaCBmcm9tIHNoYWxsb3cgdG8gc2hhbGxvdycgJworCSgKKwljZCBzaGFsbG93ICYmCisJZ2l0IC0tZ2l0LWRpcj0uLi9zaGFsbG93Mi8uZ2l0IGNvbmZpZyByZWNlaXZlLnNoYWxsb3d1cGRhdGUgdHJ1ZSAmJgorCWdpdCBwdXNoIC4uL3NoYWxsb3cyLy5naXQgK21hc3RlcjpyZWZzL3JlbW90ZXMvc2hhbGxvdy9tYXN0ZXIgJiYKKwlnaXQgLS1naXQtZGlyPS4uL3NoYWxsb3cyLy5naXQgY29uZmlnIHJlY2VpdmUuc2hhbGxvd3VwZGF0ZSBmYWxzZQorCSkgJiYKKwkoCisJY2Qgc2hhbGxvdzIgJiYKKwlnaXQgbG9nIC0tZm9ybWF0PSVzIHNoYWxsb3cvbWFzdGVyID5hY3R1YWwgJiYKKwlnaXQgZnNjayAmJgorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCis1Cis0CiszCitFT0YKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIGZyb20gZnVsbCB0byBzaGFsbG93JyAnCisJISBnaXQgLS1naXQtZGlyPXNoYWxsb3cyLy5naXQgY2F0LWZpbGUgYmxvYiBgZWNobyAxfGdpdCBoYXNoLW9iamVjdCAtLXN0ZGluYCAmJgorCWNvbW1pdCAxICYmCisJZ2l0IHB1c2ggc2hhbGxvdzIvLmdpdCArbWFzdGVyOnJlZnMvcmVtb3Rlcy90b3AvbWFzdGVyICYmCisJKAorCWNkIHNoYWxsb3cyICYmCisJZ2l0IGxvZyAtLWZvcm1hdD0lcyB0b3AvbWFzdGVyID5hY3R1YWwgJiYKKwlnaXQgZnNjayAmJgorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCisxCis0CiszCitFT0YKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisJZ2l0IGNhdC1maWxlIGJsb2IgYGVjaG8gMXxnaXQgaGFzaC1vYmplY3QgLS1zdGRpbmAgPi9kZXYvbnVsbAorCSkKKycKKworaWYgdGVzdCAtbiAiJE5PX0NVUkwiIC1vIC16ICIkR0lUX1RFU1RfSFRUUEQiOyB0aGVuCisJc2F5ICdza2lwcGluZyByZW1haW5pbmcgdGVzdHMsIGdpdCBidWlsdCB3aXRob3V0IGh0dHAgc3VwcG9ydCcKKwl0ZXN0X2RvbmUKK2ZpCisKK0xJQl9IVFRQRF9QT1JUPSR7TElCX0hUVFBEX1BPUlQtJzU1MzcnfQorLiAiJFRFU1RfRElSRUNUT1JZIi9saWItaHR0cGQuc2gKK3N0YXJ0X2h0dHBkCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1c2ggdG8gc2hhbGxvdyByZXBvIHZpYSBodHRwJyAnCisJZ2l0IGNsb25lIC0tYmFyZSAtLW5vLWxvY2FsIHNoYWxsb3cgIiRIVFRQRF9ET0NVTUVOVF9ST09UX1BBVEgvcmVwby5naXQiICYmCisJKAorCWNkICIkSFRUUERfRE9DVU1FTlRfUk9PVF9QQVRIL3JlcG8uZ2l0IiAmJgorCWdpdCBjb25maWcgaHR0cC5yZWNlaXZlcGFjayB0cnVlCisJKSAmJgorCSgKKwljZCBmdWxsICYmCisJY29tbWl0IDkgJiYKKwlnaXQgcHVzaCAkSFRUUERfVVJML3NtYXJ0L3JlcG8uZ2l0ICttYXN0ZXI6cmVmcy9yZW1vdGVzL3RvcC9tYXN0ZXIKKwkpICYmCisJKAorCWNkICIkSFRUUERfRE9DVU1FTlRfUk9PVF9QQVRIL3JlcG8uZ2l0IiAmJgorCWdpdCBmc2NrICYmCisJZ2l0IGxvZyAtLWZvcm1hdD0lcyB0b3AvbWFzdGVyID5hY3R1YWwgJiYKKwljYXQgPDxFT0YgPmV4cGVjdCAmJgorOQorNAorMworRU9GCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorCSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaCBmcm9tIHNoYWxsb3cgcmVwbyB2aWEgaHR0cCcgJworCW12ICIkSFRUUERfRE9DVU1FTlRfUk9PVF9QQVRIL3JlcG8uZ2l0IiBzaGFsbG93LXVwc3RyZWFtLmdpdCAmJgorCWdpdCBjbG9uZSAtLWJhcmUgLS1uby1sb2NhbCBmdWxsICIkSFRUUERfRE9DVU1FTlRfUk9PVF9QQVRIL3JlcG8uZ2l0IiAmJgorCSgKKwljZCAiJEhUVFBEX0RPQ1VNRU5UX1JPT1RfUEFUSC9yZXBvLmdpdCIgJiYKKwlnaXQgY29uZmlnIGh0dHAucmVjZWl2ZXBhY2sgdHJ1ZQorCSkgJiYKKwljb21taXQgMTAgJiYKKwlnaXQgcHVzaCAkSFRUUERfVVJML3NtYXJ0L3JlcG8uZ2l0ICttYXN0ZXI6cmVmcy9yZW1vdGVzL3RvcC9tYXN0ZXIgJiYKKwkoCisJY2QgIiRIVFRQRF9ET0NVTUVOVF9ST09UX1BBVEgvcmVwby5naXQiICYmCisJZ2l0IGZzY2sgJiYKKwlnaXQgbG9nIC0tZm9ybWF0PSVzIHRvcC9tYXN0ZXIgPmFjdHVhbCAmJgorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCisxMAorMQorNAorMworMgorMQorRU9GCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorCSkKKycKKworc3RvcF9odHRwZAordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q1NTQwLWh0dHAtcHVzaC5zaCBiL3QvdDU1NDAtaHR0cC1wdXNoLnNoCmluZGV4IDAxZDBkOTUuLjViMDE5OGMgMTAwNzU1Ci0tLSBhL3QvdDU1NDAtaHR0cC1wdXNoLnNoCisrKyBiL3QvdDU1NDAtaHR0cC1wdXNoLnNoCkBAIC0xNTQsNyArMTU0LDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaCB0byBwYXNzd29yZC1wcm90ZWN0ZWQgcmVwb3NpdG9yeSAodXNlciBpbiBVUkwpJyAnCiAJdGVzdF9jb21taXQgcHctdXNlciAmJgotCXNldF9hc2twYXNzIHVzZXJAaG9zdCAmJgorCXNldF9hc2twYXNzIHVzZXJAaG9zdCBwYXNzQGhvc3QgJiYKIAlnaXQgcHVzaCAiJEhUVFBEX1VSTF9VU0VSL2F1dGgvZHVtYi90ZXN0X3JlcG8uZ2l0IiBIRUFEICYmCiAJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBIRUFEID5leHBlY3QgJiYKIAlnaXQgLS1naXQtZGlyPSIkSFRUUERfRE9DVU1FTlRfUk9PVF9QQVRIL2F1dGgvZHVtYi90ZXN0X3JlcG8uZ2l0IiBcCkBAIC0xNjgsNyArMTY4LDcgQEAKIAogdGVzdF9leHBlY3RfZmFpbHVyZSAncHVzaCB0byBwYXNzd29yZC1wcm90ZWN0ZWQgcmVwb3NpdG9yeSAobm8gdXNlciBpbiBVUkwpJyAnCiAJdGVzdF9jb21taXQgcHctbm91c2VyICYmCi0Jc2V0X2Fza3Bhc3MgdXNlckBob3N0ICYmCisJc2V0X2Fza3Bhc3MgdXNlckBob3N0IHBhc3NAaG9zdCAmJgogCWdpdCBwdXNoICIkSFRUUERfVVJML2F1dGgvZHVtYi90ZXN0X3JlcG8uZ2l0IiBIRUFEICYmCiAJZXhwZWN0X2Fza3Bhc3MgYm90aCB1c2VyQGhvc3QKIAlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQgPmV4cGVjdCAmJgpkaWZmIC0tZ2l0IGEvdC90NTU0MS1odHRwLXB1c2guc2ggYi90L3Q1NTQxLWh0dHAtcHVzaC5zaAppbmRleCBiZWIwMGJlLi5iZmQyNDFlIDEwMDc1NQotLS0gYS90L3Q1NTQxLWh0dHAtcHVzaC5zaAorKysgYi90L3Q1NTQxLWh0dHAtcHVzaC5zaApAQCAtMTUzLDcgKzE1Myw3IEBACiAnCiAKIHRlc3RfaHR0cF9wdXNoX25vbmZmICIkSFRUUERfRE9DVU1FTlRfUk9PVF9QQVRIIi90ZXN0X3JlcG8uZ2l0IFwKLQkiJFJPT1RfUEFUSCIvdGVzdF9yZXBvX2Nsb25lIG1hc3RlcgorCSIkUk9PVF9QQVRIIi90ZXN0X3JlcG9fY2xvbmUgbWFzdGVyIAkJc3VjY2VzcwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIGZhaWxzIGZvciBub24tZmFzdC1mb3J3YXJkIHJlZnMgdW5tYXRjaGVkIGJ5IHJlbW90ZSBoZWxwZXInICcKIAkjIGNyZWF0ZSBhIGRpc3NpbWlsYXJseS1uYW1lZCByZW1vdGUgcmVmIHNvIHRoYXQgZ2l0IGlzIHVuYWJsZSB0byBtYXRjaCB0aGUKQEAgLTI3NCw3ICsyNzQsNyBAQAogCWNkICIkUk9PVF9QQVRIL3Rlc3RfcmVwb19jbG9uZSIgJiYKIAllY2hvIHB1c2gtYXV0aC10ZXN0ID5leHBlY3QgJiYKIAl0ZXN0X2NvbW1pdCBwdXNoLWF1dGgtdGVzdCAmJgotCXNldF9hc2twYXNzIHVzZXJAaG9zdCAmJgorCXNldF9hc2twYXNzIHVzZXJAaG9zdCBwYXNzQGhvc3QgJiYKIAlnaXQgcHVzaCAiJEhUVFBEX1VSTCIvYXV0aC9zbWFydC90ZXN0X3JlcG8uZ2l0ICYmCiAJZ2l0IC0tZ2l0LWRpcj0iJEhUVFBEX0RPQ1VNRU5UX1JPT1RfUEFUSC90ZXN0X3JlcG8uZ2l0IiBcCiAJCWxvZyAtMSAtLWZvcm1hdD0lcyA+YWN0dWFsICYmCkBAIC0yODYsNyArMjg2LDcgQEAKIAljZCAiJFJPT1RfUEFUSC90ZXN0X3JlcG9fY2xvbmUiICYmCiAJZWNobyBwdXNoLWhhbGYtYXV0aCA+ZXhwZWN0ICYmCiAJdGVzdF9jb21taXQgcHVzaC1oYWxmLWF1dGggJiYKLQlzZXRfYXNrcGFzcyB1c2VyQGhvc3QgJiYKKwlzZXRfYXNrcGFzcyB1c2VyQGhvc3QgcGFzc0Bob3N0ICYmCiAJZ2l0IHB1c2ggIiRIVFRQRF9VUkwiL2F1dGgtcHVzaC9zbWFydC90ZXN0X3JlcG8uZ2l0ICYmCiAJZ2l0IC0tZ2l0LWRpcj0iJEhUVFBEX0RPQ1VNRU5UX1JPT1RfUEFUSC90ZXN0X3JlcG8uZ2l0IiBcCiAJCWxvZyAtMSAtLWZvcm1hdD0lcyA+YWN0dWFsICYmCkBAIC0zMTYsNyArMzE2LDcgQEAKIAljZCAiJFJPT1RfUEFUSC9oYWxmLWF1dGgtY2xvbmUiICYmCiAJZWNobyB0d28gPmV4cGVjdCAmJgogCXRlc3RfY29tbWl0IHR3byAmJgotCXNldF9hc2twYXNzIHVzZXJAaG9zdCAmJgorCXNldF9hc2twYXNzIHVzZXJAaG9zdCBwYXNzQGhvc3QgJiYKIAlnaXQgcHVzaCAiJEhUVFBEX1VSTC9oYWxmLWF1dGgtY29tcGxldGUvc21hcnQvaGFsZi1hdXRoLmdpdCIgJiYKIAlnaXQgLS1naXQtZGlyPSIkSFRUUERfRE9DVU1FTlRfUk9PVF9QQVRIL2hhbGYtYXV0aC5naXQiIFwKIAkJbG9nIC0xIC0tZm9ybWF0PSVzID5hY3R1YWwgJiYKZGlmZiAtLWdpdCBhL3QvdDU1NTAtaHR0cC1mZXRjaC5zaCBiL3QvdDU1NTAtaHR0cC1mZXRjaC5zaAppbmRleCBmN2QwZjE0Li44MzkyNjI0IDEwMDc1NQotLS0gYS90L3Q1NTUwLWh0dHAtZmV0Y2guc2gKKysrIGIvdC90NTU1MC1odHRwLWZldGNoLnNoCkBAIC02MiwxMyArNjIsMTMgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnaHR0cCBhdXRoIGNhbiB1c2UganVzdCB1c2VyIGluIFVSTCcgJwotCXNldF9hc2twYXNzIHVzZXJAaG9zdCAmJgorCXNldF9hc2twYXNzIHdyb25nIHBhc3NAaG9zdCAmJgogCWdpdCBjbG9uZSAiJEhUVFBEX1VSTF9VU0VSL2F1dGgvZHVtYi9yZXBvLmdpdCIgY2xvbmUtYXV0aC1wYXNzICYmCiAJZXhwZWN0X2Fza3Bhc3MgcGFzcyB1c2VyQGhvc3QKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnaHR0cCBhdXRoIGNhbiByZXF1ZXN0IGJvdGggdXNlciBhbmQgcGFzcycgJwotCXNldF9hc2twYXNzIHVzZXJAaG9zdCAmJgorCXNldF9hc2twYXNzIHVzZXJAaG9zdCBwYXNzQGhvc3QgJiYKIAlnaXQgY2xvbmUgIiRIVFRQRF9VUkwvYXV0aC9kdW1iL3JlcG8uZ2l0IiBjbG9uZS1hdXRoLWJvdGggJiYKIAlleHBlY3RfYXNrcGFzcyBib3RoIHVzZXJAaG9zdAogJwpAQCAtNzcsNyArNzcsNyBAQAogCXRlc3RfY29uZmlnX2dsb2JhbCBjcmVkZW50aWFsLmhlbHBlciAiIWYoKSB7CiAJCWNhdCA+L2Rldi9udWxsCiAJCWVjaG8gdXNlcm5hbWU9dXNlckBob3N0Ci0JCWVjaG8gcGFzc3dvcmQ9dXNlckBob3N0CisJCWVjaG8gcGFzc3dvcmQ9cGFzc0Bob3N0CiAJfTsgZiIgJiYKIAlzZXRfYXNrcGFzcyB3cm9uZyAmJgogCWdpdCBjbG9uZSAiJEhUVFBEX1VSTC9hdXRoL2R1bWIvcmVwby5naXQiIGNsb25lLWF1dGgtaGVscGVyICYmCkBAIC04NiwxNCArODYsMTQgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnaHR0cCBhdXRoIGNhbiBnZXQgdXNlcm5hbWUgZnJvbSBjb25maWcnICcKIAl0ZXN0X2NvbmZpZ19nbG9iYWwgImNyZWRlbnRpYWwuJEhUVFBEX1VSTC51c2VybmFtZSIgdXNlckBob3N0ICYmCi0Jc2V0X2Fza3Bhc3MgdXNlckBob3N0ICYmCisJc2V0X2Fza3Bhc3Mgd3JvbmcgcGFzc0Bob3N0ICYmCiAJZ2l0IGNsb25lICIkSFRUUERfVVJML2F1dGgvZHVtYi9yZXBvLmdpdCIgY2xvbmUtYXV0aC11c2VyICYmCiAJZXhwZWN0X2Fza3Bhc3MgcGFzcyB1c2VyQGhvc3QKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY29uZmlndXJlZCB1c2VybmFtZSBkb2VzIG5vdCBvdmVycmlkZSBVUkwnICcKIAl0ZXN0X2NvbmZpZ19nbG9iYWwgImNyZWRlbnRpYWwuJEhUVFBEX1VSTC51c2VybmFtZSIgd3JvbmcgJiYKLQlzZXRfYXNrcGFzcyB1c2VyQGhvc3QgJiYKKwlzZXRfYXNrcGFzcyB3cm9uZyBwYXNzQGhvc3QgJiYKIAlnaXQgY2xvbmUgIiRIVFRQRF9VUkxfVVNFUi9hdXRoL2R1bWIvcmVwby5naXQiIGNsb25lLWF1dGgtdXNlcjIgJiYKIAlleHBlY3RfYXNrcGFzcyBwYXNzIHVzZXJAaG9zdAogJwpkaWZmIC0tZ2l0IGEvdC90NTU1MS1odHRwLWZldGNoLnNoIGIvdC90NTU1MS1odHRwLWZldGNoLnNoCmluZGV4IDFiNzFiYjUuLmExMjRlZmUgMTAwNzU1Ci0tLSBhL3QvdDU1NTEtaHR0cC1mZXRjaC5zaAorKysgYi90L3Q1NTUxLWh0dHAtZmV0Y2guc2gKQEAgLTExOSw3ICsxMTksNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZSBmcm9tIHBhc3N3b3JkLXByb3RlY3RlZCByZXBvc2l0b3J5JyAnCiAJZWNobyB0d28gPmV4cGVjdCAmJgotCXNldF9hc2twYXNzIHVzZXJAaG9zdCAmJgorCXNldF9hc2twYXNzIHVzZXJAaG9zdCBwYXNzQGhvc3QgJiYKIAlnaXQgY2xvbmUgLS1iYXJlICIkSFRUUERfVVJML2F1dGgvc21hcnQvcmVwby5naXQiIHNtYXJ0LWF1dGggJiYKIAlleHBlY3RfYXNrcGFzcyBib3RoIHVzZXJAaG9zdCAmJgogCWdpdCAtLWdpdC1kaXI9c21hcnQtYXV0aCBsb2cgLTEgLS1mb3JtYXQ9JXMgPmFjdHVhbCAmJgpAQCAtMTM3LDcgKzEzNyw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25lIGZyb20gYXV0aC1vbmx5LWZvci1vYmplY3RzIHJlcG9zaXRvcnknICcKIAllY2hvIHR3byA+ZXhwZWN0ICYmCi0Jc2V0X2Fza3Bhc3MgdXNlckBob3N0ICYmCisJc2V0X2Fza3Bhc3MgdXNlckBob3N0IHBhc3NAaG9zdCAmJgogCWdpdCBjbG9uZSAtLWJhcmUgIiRIVFRQRF9VUkwvYXV0aC1mZXRjaC9zbWFydC9yZXBvLmdpdCIgaGFsZi1hdXRoICYmCiAJZXhwZWN0X2Fza3Bhc3MgYm90aCB1c2VyQGhvc3QgJiYKIAlnaXQgLS1naXQtZGlyPWhhbGYtYXV0aCBsb2cgLTEgLS1mb3JtYXQ9JXMgPmFjdHVhbCAmJgpAQCAtMTUxLDcgKzE1MSw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlZGlyZWN0cyBzZW5kIGF1dGggdG8gbmV3IGxvY2F0aW9uJyAnCi0Jc2V0X2Fza3Bhc3MgdXNlckBob3N0ICYmCisJc2V0X2Fza3Bhc3MgdXNlckBob3N0IHBhc3NAaG9zdCAmJgogCWdpdCAtYyBjcmVkZW50aWFsLnVzZUh0dHBQYXRoPXRydWUgXAogCSAgY2xvbmUgJEhUVFBEX1VSTC9zbWFydC1yZWRpci1hdXRoL3JlcG8uZ2l0IHJlcG8tcmVkaXItYXV0aCAmJgogCWV4cGVjdF9hc2twYXNzIGJvdGggdXNlckBob3N0IGF1dGgvc21hcnQvcmVwby5naXQKQEAgLTE5OCw2ICsxOTgsMjIgQEAKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKK2NhdCA+Y29va2llcy50eHQgPDxFT0YKKzEyNy4wLjAuMQlGQUxTRQkvc21hcnRfY29va2llcy8JRkFMU0UJMAlvdGhlcm5hbWUJb3RoZXJ2YWx1ZQorRU9GCitjYXQgPmV4cGVjdF9jb29raWVzLnR4dCA8PEVPRgorCisxMjcuMC4wLjEJRkFMU0UJL3NtYXJ0X2Nvb2tpZXMvCUZBTFNFCTAJb3RoZXJuYW1lCW90aGVydmFsdWUKKzEyNy4wLjAuMQlGQUxTRQkvc21hcnRfY29va2llcy9yZXBvLmdpdC9pbmZvLwlGQUxTRQkwCW5hbWUJdmFsdWUKK0VPRgordGVzdF9leHBlY3Rfc3VjY2VzcyAnY29va2llcyBzdG9yZWQgaW4gaHR0cC5jb29raWVmaWxlIHdoZW4gaHR0cC5zYXZlY29va2llcyBzZXQnICcKKwlnaXQgY29uZmlnIGh0dHAuY29va2llZmlsZSBjb29raWVzLnR4dCAmJgorCWdpdCBjb25maWcgaHR0cC5zYXZlY29va2llcyB0cnVlICYmCisJZ2l0IGxzLXJlbW90ZSAkSFRUUERfVVJML3NtYXJ0X2Nvb2tpZXMvcmVwby5naXQgbWFzdGVyICYmCisJdGFpbCAtMyBjb29raWVzLnR4dCA+IGNvb2tpZXNfdGFpbC50eHQKKwl0ZXN0X2NtcCBleHBlY3RfY29va2llcy50eHQgY29va2llc190YWlsLnR4dAorJworCiB0ZXN0IC1uICIkR0lUX1RFU1RfTE9ORyIgJiYgdGVzdF9zZXRfcHJlcmVxIEVYUEVOU0lWRQogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIEVYUEVOU0lWRSAnY3JlYXRlIDUwLDAwMCB0YWdzIGluIHRoZSByZXBvJyAnCkBAIC0yMTksNyArMjM1LDcgQEAKIAlkb25lIHwgZ2l0IGZhc3QtaW1wb3J0IC0tZXhwb3J0LW1hcmtzPW1hcmtzICYmCiAKIAkjIG5vdyBhc3NpZ24gdGFncyB0byBhbGwgdGhlIGRhbmdsaW5nIGNvbW1pdHMgd2UgY3JlYXRlZCBhYm92ZQotCXRhZz0kKCIkUEVSTF9QQVRIIiAtZSAicHJpbnQgXCJibGFcIiB4IDMwIikgJiYKKwl0YWc9JChwZXJsIC1lICJwcmludCBcImJsYVwiIHggMzAiKSAmJgogCXNlZCAtZSAic3xeOlwoW14gXSpcKSBcKC4qXCkkfFwyIHJlZnMvdGFncy8kdGFnLVwxfCIgPG1hcmtzID4+cGFja2VkLXJlZnMKIAkpCiAnCmRpZmYgLS1naXQgYS90L3Q1NjAxLWNsb25lLnNoIGIvdC90NTYwMS1jbG9uZS5zaAppbmRleCBmOGU1YTlhLi41ZTY3MDM1IDEwMDc1NQotLS0gYS90L3Q1NjAxLWNsb25lLnNoCisrKyBiL3QvdDU2MDEtY2xvbmUuc2gKQEAgLTI4MCw5ICsyODAsMTQzIEBACiAJdGVzdF9jbXAgZmV0Y2guZXhwZWN0ZWQgZmV0Y2guYWN0dWFsCiAnCiAKK3NldHVwX3NzaF93cmFwcGVyICgpIHsKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBzc2ggd3JhcHBlcicgJworCQl3cml0ZV9zY3JpcHQgIiRUUkFTSF9ESVJFQ1RPUlkvc3NoLXdyYXBwZXIiIDw8LVxFT0YgJiYKKwkJZWNobyA+PiIkVFJBU0hfRElSRUNUT1JZL3NzaC1vdXRwdXQiICJzc2g6ICQqIiAmJgorCQkjIHRocm93IGF3YXkgYWxsIGJ1dCB0aGUgbGFzdCBhcmd1bWVudCwgd2hpY2ggc2hvdWxkIGJlIHRoZQorCQkjIGNvbW1hbmQKKwkJd2hpbGUgdGVzdCAkIyAtZ3QgMTsgZG8gc2hpZnQ7IGRvbmUKKwkJZXZhbCAiJDEiCisJCUVPRgorCQlHSVRfU1NIPSIkVFJBU0hfRElSRUNUT1JZL3NzaC13cmFwcGVyIiAmJgorCQlleHBvcnQgR0lUX1NTSCAmJgorCQlleHBvcnQgVFJBU0hfRElSRUNUT1JZICYmCisJCT4iJFRSQVNIX0RJUkVDVE9SWSIvc3NoLW91dHB1dAorCScKK30KKworZXhwZWN0X3NzaCAoKSB7CisJdGVzdF93aGVuX2ZpbmlzaGVkICcKKwkJKGNkICIkVFJBU0hfRElSRUNUT1JZIiAmJiBybSAtZiBzc2gtZXhwZWN0ICYmID5zc2gtb3V0cHV0KQorCScgJiYKKwl7CisJCWNhc2UgIiQxIiBpbgorCQlub25lKQorCQkJOzsKKwkJKikKKwkJCWVjaG8gInNzaDogJDEgZ2l0LXVwbG9hZC1wYWNrICckMiciCisJCWVzYWMKKwl9ID4iJFRSQVNIX0RJUkVDVE9SWS9zc2gtZXhwZWN0IiAmJgorCShjZCAiJFRSQVNIX0RJUkVDVE9SWSIgJiYgdGVzdF9jbXAgc3NoLWV4cGVjdCBzc2gtb3V0cHV0KQorfQorCitzZXR1cF9zc2hfd3JhcHBlcgorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZSBteWhvc3Q6c3JjIHVzZXMgc3NoJyAnCisJZ2l0IGNsb25lIG15aG9zdDpzcmMgc3NoLWNsb25lICYmCisJZXhwZWN0X3NzaCBteWhvc3Qgc3JjCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgTk9UX01JTkdXLE5PVF9DWUdXSU4gJ2Nsb25lIGxvY2FsIHBhdGggZm9vOmJhcicgJwogCWNwIC1SIHNyYyAiZm9vOmJhciIgJiYKLQlnaXQgY2xvbmUgIi4vZm9vOmJhciIgZm9vYmFyCisJZ2l0IGNsb25lICJmb286YmFyIiBmb29iYXIgJiYKKwlleHBlY3Rfc3NoIG5vbmUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYnJhY2tldGVkIGhvc3RuYW1lcyBhcmUgc3RpbGwgc3NoJyAnCisJZ2l0IGNsb25lICJbbXlob3N0OjEyM106c3JjIiBzc2gtYnJhY2tldC1jbG9uZSAmJgorCWV4cGVjdF9zc2ggbXlob3N0OjEyMyBzcmMKKycKKworY291bnRlcj0wCisjICQxIHVybAorIyAkMiBub25lfGhvc3QKKyMgJDMgcGF0aAordGVzdF9jbG9uZV91cmwgKCkgeworCWNvdW50ZXI9JCgoJGNvdW50ZXIgKyAxKSkKKwl0ZXN0X21pZ2h0X2ZhaWwgZ2l0IGNsb25lICIkMSIgdG1wJGNvdW50ZXIgJiYKKwlleHBlY3Rfc3NoICIkMiIgIiQzIgorfQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzIE5PVF9NSU5HVyAnY2xvbmUgYzp0ZW1wIGlzIHNzbCcgJworCXRlc3RfY2xvbmVfdXJsIGM6dGVtcCBjIHRlbXAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBNSU5HVyAnY2xvbmUgYzp0ZW1wIGlzIGRvcyBkcml2ZScgJworCXRlc3RfY2xvbmVfdXJsIGM6dGVtcCBub25lCisnCisKKyNpcCB2NAorZm9yIHJlcG8gaW4gcmVwIHJlcC9ob21lL3Byb2plY3QgMTIzCitkbworCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImNsb25lIGhvc3Q6JHJlcG8iICcKKwkJdGVzdF9jbG9uZV91cmwgaG9zdDokcmVwbyBob3N0ICRyZXBvCisJJworZG9uZQorCisjaXB2NgorZm9yIHJlcG8gaW4gcmVwIHJlcC9ob21lL3Byb2plY3QgMTIzCitkbworCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImNsb25lIFs6OjFdOiRyZXBvIiAnCisJCXRlc3RfY2xvbmVfdXJsIFs6OjFdOiRyZXBvIDo6MSAkcmVwbworCScKK2RvbmUKKyNob21lIGRpcmVjdG9yeQordGVzdF9leHBlY3Rfc3VjY2VzcyAiY2xvbmUgaG9zdDovfnJlcG8iICcKKwl0ZXN0X2Nsb25lX3VybCBob3N0Oi9+cmVwbyBob3N0ICJ+cmVwbyIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAiY2xvbmUgWzo6MV06L35yZXBvIiAnCisJdGVzdF9jbG9uZV91cmwgWzo6MV06L35yZXBvIDo6MSAifnJlcG8iCisnCisKKyMgQ29ybmVyIGNhc2VzCitmb3IgdXJsIGluIGZvby9iYXI6YmF6IFtmb29dYmFyL2JhejpxdXggW2Zvby9iYXJdOmJhegorZG8KKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJjbG9uZSAkdXJsIGlzIG5vdCBzc2giICcKKwkJdGVzdF9jbG9uZV91cmwgJHVybCBub25lCisJJworZG9uZQorCisjd2l0aCBzc2g6Ly8gc2NoZW1lCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZSBzc2g6Ly9ob3N0Lnh6L2hvbWUvdXNlci9yZXBvJyAnCisJdGVzdF9jbG9uZV91cmwgInNzaDovL2hvc3QueHovaG9tZS91c2VyL3JlcG8iIGhvc3QueHogIi9ob21lL3VzZXIvcmVwbyIKKycKKworIyBmcm9tIGhvbWUgZGlyZWN0b3J5Cit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZSBzc2g6Ly9ob3N0Lnh6L35yZXBvJyAnCisJdGVzdF9jbG9uZV91cmwgInNzaDovL2hvc3QueHovfnJlcG8iIGhvc3QueHogIn5yZXBvIgorJworCisjIHdpdGggcG9ydCBudW1iZXIKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25lIHNzaDovL2hvc3QueHo6MjIvaG9tZS91c2VyL3JlcG8nICcKKwl0ZXN0X2Nsb25lX3VybCAic3NoOi8vaG9zdC54ejoyMi9ob21lL3VzZXIvcmVwbyIgIi1wIDIyIGhvc3QueHoiICIvaG9tZS91c2VyL3JlcG8iCisnCisKKyMgZnJvbSBob21lIGRpcmVjdG9yeSB3aXRoIHBvcnQgbnVtYmVyCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZSBzc2g6Ly9ob3N0Lnh6OjIyL35yZXBvJyAnCisJdGVzdF9jbG9uZV91cmwgInNzaDovL2hvc3QueHo6MjIvfnJlcG8iICItcCAyMiBob3N0Lnh6IiAifnJlcG8iCisnCisKKyNJUHY2Cit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZSBzc2g6Ly9bOjoxXS9ob21lL3VzZXIvcmVwbycgJworCXRlc3RfY2xvbmVfdXJsICJzc2g6Ly9bOjoxXS9ob21lL3VzZXIvcmVwbyIgIjo6MSIgIi9ob21lL3VzZXIvcmVwbyIKKycKKworI0lQdjYgZnJvbSBob21lIGRpcmVjdG9yeQordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmUgc3NoOi8vWzo6MV0vfnJlcG8nICcKKwl0ZXN0X2Nsb25lX3VybCAic3NoOi8vWzo6MV0vfnJlcG8iICI6OjEiICJ+cmVwbyIKKycKKworI0lQdjYgd2l0aCBwb3J0IG51bWJlcgordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmUgc3NoOi8vWzo6MV06MjIvaG9tZS91c2VyL3JlcG8nICcKKwl0ZXN0X2Nsb25lX3VybCAic3NoOi8vWzo6MV06MjIvaG9tZS91c2VyL3JlcG8iICItcCAyMiA6OjEiICIvaG9tZS91c2VyL3JlcG8iCisnCisKKyNJUHY2IGZyb20gaG9tZSBkaXJlY3Rvcnkgd2l0aCBwb3J0IG51bWJlcgordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmUgc3NoOi8vWzo6MV06MjIvfnJlcG8nICcKKwl0ZXN0X2Nsb25lX3VybCAic3NoOi8vWzo6MV06MjIvfnJlcG8iICItcCAyMiA6OjEiICJ+cmVwbyIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmUgZnJvbSBhIHJlcG9zaXRvcnkgd2l0aCB0d28gaWRlbnRpY2FsIGJyYW5jaGVzJyAnCkBAIC0yOTYsNCArNDMwLDExIEBACiAKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2hhbGxvdyBjbG9uZSBsb2NhbGx5JyAnCisJZ2l0IGNsb25lIC0tZGVwdGg9MSAtLW5vLWxvY2FsIHNyYyBzc3JyY2MgJiYKKwlnaXQgY2xvbmUgc3NycmNjIGRkc3N0dCAmJgorCXRlc3RfY21wIHNzcnJjYy8uZ2l0L3NoYWxsb3cgZGRzc3R0Ly5naXQvc2hhbGxvdyAmJgorCSggY2QgZGRzc3R0ICYmIGdpdCBmc2NrICkKKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q1ODAwLXJlbW90ZS10ZXN0cHkuc2ggYi90L3Q1ODAwLXJlbW90ZS10ZXN0cHkuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDFlNjgzZDQuLjAwMDAwMDAKLS0tIGEvdC90NTgwMC1yZW1vdGUtdGVzdHB5LnNoCisrKyAvZGV2L251bGwKQEAgLTEsMTY5ICswLDAgQEAKLSMhL2Jpbi9zaAotIwotIyBDb3B5cmlnaHQgKGMpIDIwMTAgU3ZlcnJlIFJhYmJlbGllcgotIwotCi10ZXN0X2Rlc2NyaXB0aW9uPSdUZXN0IHB5dGhvbiByZW1vdGUtaGVscGVyIGZyYW1ld29yaycKLQotLiAuL3Rlc3QtbGliLnNoCi0KLWlmICEgdGVzdF9oYXZlX3ByZXJlcSBQWVRIT04gOyB0aGVuCi0Jc2tpcF9hbGw9J3NraXBwaW5nIHB5dGhvbiByZW1vdGUtaGVscGVyIHRlc3RzLCBweXRob24gbm90IGF2YWlsYWJsZScKLQl0ZXN0X2RvbmUKLWZpCi0KLSIkUFlUSE9OX1BBVEgiIC1jICcKLWltcG9ydCBzeXMKLWlmIHN5cy5oZXh2ZXJzaW9uIDwgMHgwMjA0MDAwMDoKLSAgICBzeXMuZXhpdCgxKQotJyB8fCB7Ci0Jc2tpcF9hbGw9J3NraXBwaW5nIHB5dGhvbiByZW1vdGUtaGVscGVyIHRlc3RzLCBweXRob24gdmVyc2lvbiA8IDIuNCcKLQl0ZXN0X2RvbmUKLX0KLQotY29tcGFyZV9yZWZzKCkgewotCWdpdCAtLWdpdC1kaXI9IiQxLy5naXQiIHJldi1wYXJzZSAtLXZlcmlmeSAkMiA+ZXhwZWN0ICYmCi0JZ2l0IC0tZ2l0LWRpcj0iJDMvLmdpdCIgcmV2LXBhcnNlIC0tdmVyaWZ5ICQ0ID5hY3R1YWwgJiYKLQl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCi19Ci0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIHJlcG9zaXRvcnknICcKLQlnaXQgaW5pdCAtLWJhcmUgc2VydmVyLy5naXQgJiYKLQlnaXQgY2xvbmUgc2VydmVyIHB1YmxpYyAmJgotCShjZCBwdWJsaWMgJiYKLQkgZWNobyBjb250ZW50ID5maWxlICYmCi0JIGdpdCBhZGQgZmlsZSAmJgotCSBnaXQgY29tbWl0IC1tIG9uZSAmJgotCSBnaXQgcHVzaCBvcmlnaW4gbWFzdGVyKQotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uaW5nIGZyb20gbG9jYWwgcmVwbycgJwotCWdpdCBjbG9uZSAidGVzdHB5Ojoke1BXRH0vc2VydmVyIiBsb2NhbGNsb25lICYmCi0JdGVzdF9jbXAgcHVibGljL2ZpbGUgbG9jYWxjbG9uZS9maWxlCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25pbmcgZnJvbSByZW1vdGUgcmVwbycgJwotCWdpdCBjbG9uZSAidGVzdHB5OjpmaWxlOi8vJHtQV0R9L3NlcnZlciIgY2xvbmUgJiYKLQl0ZXN0X2NtcCBwdWJsaWMvZmlsZSBjbG9uZS9maWxlCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NyZWF0ZSBuZXcgY29tbWl0IG9uIHJlbW90ZScgJwotCShjZCBwdWJsaWMgJiYKLQkgZWNobyBjb250ZW50ID4+ZmlsZSAmJgotCSBnaXQgY29tbWl0IC1hIC1tIHR3byAmJgotCSBnaXQgcHVzaCkKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVsbGluZyBmcm9tIGxvY2FsIHJlcG8nICcKLQkoY2QgbG9jYWxjbG9uZSAmJiBnaXQgcHVsbCkgJiYKLQl0ZXN0X2NtcCBwdWJsaWMvZmlsZSBsb2NhbGNsb25lL2ZpbGUKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVsbGluZyBmcm9tIHJlbW90ZSByZW1vdGUnICcKLQkoY2QgY2xvbmUgJiYgZ2l0IHB1bGwpICYmCi0JdGVzdF9jbXAgcHVibGljL2ZpbGUgY2xvbmUvZmlsZQotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoaW5nIHRvIGxvY2FsIHJlcG8nICcKLQkoY2QgbG9jYWxjbG9uZSAmJgotCWVjaG8gY29udGVudCA+PmZpbGUgJiYKLQlnaXQgY29tbWl0IC1hIC1tIHRocmVlICYmCi0JZ2l0IHB1c2gpICYmCi0JY29tcGFyZV9yZWZzIGxvY2FsY2xvbmUgSEVBRCBzZXJ2ZXIgSEVBRAotJwotCi0jIEdlbmVyYWxseSwgc2tpcCB0aGlzIHRlc3QuICBJdCBkZW1vbnN0cmF0ZXMgYSBub3ctZml4ZWQgcmFjZSBpbgotIyBnaXQtcmVtb3RlLXRlc3RweSwgYnV0IGlzIHRvbyBzbG93IHRvIGxlYXZlIGluIGZvciBnZW5lcmFsIHVzZS4KLTogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmFjaWx5IHB1c2hpbmcgdG8gbG9jYWwgcmVwbycgJwotCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIHNlcnZlcjIgbG9jYWxjbG9uZTIiICYmCi0JY3AgLVIgc2VydmVyIHNlcnZlcjIgJiYKLQlnaXQgY2xvbmUgInRlc3RweTo6JHtQV0R9L3NlcnZlcjIiIGxvY2FsY2xvbmUyICYmCi0JKGNkIGxvY2FsY2xvbmUyICYmCi0JZWNobyBjb250ZW50ID4+ZmlsZSAmJgotCWdpdCBjb21taXQgLWEgLW0gdGhyZWUgJiYKLQlHSVRfUkVNT1RFX1RFU1RHSVRfU0xFRVBZPTIgZ2l0IHB1c2gpICYmCi0JY29tcGFyZV9yZWZzIGxvY2FsY2xvbmUyIEhFQUQgc2VydmVyMiBIRUFECi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N5bmNoIHdpdGggY2hhbmdlcyBmcm9tIGxvY2FsY2xvbmUnICcKLQkoY2QgY2xvbmUgJiYKLQkgZ2l0IHB1bGwpCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1c2hpbmcgcmVtb3RlIGxvY2FsIHJlcG8nICcKLQkoY2QgY2xvbmUgJiYKLQllY2hvIGNvbnRlbnQgPj5maWxlICYmCi0JZ2l0IGNvbW1pdCAtYSAtbSBmb3VyICYmCi0JZ2l0IHB1c2gpICYmCi0JY29tcGFyZV9yZWZzIGNsb25lIEhFQUQgc2VydmVyIEhFQUQKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggbmV3IGJyYW5jaCcgJwotCShjZCBwdWJsaWMgJiYKLQkgZ2l0IGNoZWNrb3V0IC1iIG5ldyAmJgotCSBlY2hvIGNvbnRlbnQgPj5maWxlICYmCi0JIGdpdCBjb21taXQgLWEgLW0gZml2ZSAmJgotCSBnaXQgcHVzaCBvcmlnaW4gbmV3Ci0JKSAmJgotCShjZCBsb2NhbGNsb25lICYmCi0JIGdpdCBmZXRjaCBvcmlnaW4gbmV3Ci0JKSAmJgotCWNvbXBhcmVfcmVmcyBwdWJsaWMgSEVBRCBsb2NhbGNsb25lIEZFVENIX0hFQUQKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggbXVsdGlwbGUgYnJhbmNoZXMnICcKLQkoY2QgbG9jYWxjbG9uZSAmJgotCSBnaXQgZmV0Y2gKLQkpICYmCi0JY29tcGFyZV9yZWZzIHNlcnZlciBtYXN0ZXIgbG9jYWxjbG9uZSByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlciAmJgotCWNvbXBhcmVfcmVmcyBzZXJ2ZXIgbmV3IGxvY2FsY2xvbmUgcmVmcy9yZW1vdGVzL29yaWdpbi9uZXcKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaCB3aGVuIHJlbW90ZSBoYXMgZXh0cmEgcmVmcycgJwotCShjZCBjbG9uZSAmJgotCSBlY2hvIGNvbnRlbnQgPj5maWxlICYmCi0JIGdpdCBjb21taXQgLWEgLW0gc2l4ICYmCi0JIGdpdCBwdXNoCi0JKSAmJgotCWNvbXBhcmVfcmVmcyBjbG9uZSBtYXN0ZXIgc2VydmVyIG1hc3RlcgotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIG5ldyBicmFuY2ggYnkgbmFtZScgJwotCShjZCBjbG9uZSAmJgotCSBnaXQgY2hlY2tvdXQgLWIgbmV3LW5hbWUgICYmCi0JIGVjaG8gY29udGVudCA+PmZpbGUgJiYKLQkgZ2l0IGNvbW1pdCAtYSAtbSBzZXZlbiAmJgotCSBnaXQgcHVzaCBvcmlnaW4gbmV3LW5hbWUKLQkpICYmCi0JY29tcGFyZV9yZWZzIGNsb25lIEhFQUQgc2VydmVyIHJlZnMvaGVhZHMvbmV3LW5hbWUKLScKLQotdGVzdF9leHBlY3RfZmFpbHVyZSAncHVzaCBuZXcgYnJhbmNoIHdpdGggb2xkOm5ldyByZWZzcGVjJyAnCi0JKGNkIGNsb25lICYmCi0JIGdpdCBwdXNoIG9yaWdpbiBuZXctbmFtZTpuZXctcmVmc3BlYwotCSkgJiYKLQljb21wYXJlX3JlZnMgY2xvbmUgSEVBRCBzZXJ2ZXIgcmVmcy9oZWFkcy9uZXctcmVmc3BlYwotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9wZXIgZmFpbHVyZSBjaGVja3MgZm9yIGZldGNoaW5nJyAnCi0JKEdJVF9SRU1PVEVfVEVTVEdJVF9GQUlMVVJFPTEgJiYKLQlleHBvcnQgR0lUX1JFTU9URV9URVNUR0lUX0ZBSUxVUkUgJiYKLQljZCBsb2NhbGNsb25lICYmCi0JdGVzdF9tdXN0X2ZhaWwgZ2l0IGZldGNoIDI+JjEgfCBcCi0JCWdyZXAgIkVycm9yIHdoaWxlIHJ1bm5pbmcgZmFzdC1pbXBvcnQiCi0JKQotJwotCi0jIFdlIHNsZWVwIHRvIGdpdmUgZmFzdC1leHBvcnQgYSBjaGFuY2UgdG8gY2F0Y2ggdGhlIFNJR1BJUEUKLXRlc3RfZXhwZWN0X2ZhaWx1cmUgJ3Byb3BlciBmYWlsdXJlIGNoZWNrcyBmb3IgcHVzaGluZycgJwotCShHSVRfUkVNT1RFX1RFU1RHSVRfRkFJTFVSRT0xICYmCi0JZXhwb3J0IEdJVF9SRU1PVEVfVEVTVEdJVF9GQUlMVVJFICYmCi0JR0lUX1JFTU9URV9URVNUR0lUX1NMRUVQWT0xICYmCi0JZXhwb3J0IEdJVF9SRU1PVEVfVEVTVEdJVF9TTEVFUFkgJiYKLQljZCBsb2NhbGNsb25lICYmCi0JdGVzdF9tdXN0X2ZhaWwgZ2l0IHB1c2ggLS1hbGwgMj4mMSB8IFwKLQkJZ3JlcCAiRXJyb3Igd2hpbGUgcnVubmluZyBmYXN0LWV4cG9ydCIKLQkpCi0nCi0KLXRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NTgwMS1yZW1vdGUtaGVscGVycy5zaCBiL3QvdDU4MDEtcmVtb3RlLWhlbHBlcnMuc2gKaW5kZXggOGM0YzUzOS4uNjEzZjY5YSAxMDA3NTUKLS0tIGEvdC90NTgwMS1yZW1vdGUtaGVscGVycy5zaAorKysgYi90L3Q1ODAxLXJlbW90ZS1oZWxwZXJzLnNoCkBAIC0xODIsNiArMTgyLDE3IEBACiAJKQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIHVwZGF0ZSByZWZzIGRpc2FibGVkIGJ5IG5vLXByaXZhdGUtdXBkYXRlJyAnCisJKGNkIGxvY2FsICYmCisJZWNobyBtb3JlLXVwZGF0ZSA+PmZpbGUgJiYKKwlnaXQgY29tbWl0IC1hIC1tIG1vcmUtdXBkYXRlICYmCisJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSB0ZXN0Z2l0L29yaWdpbi9oZWFkcy91cGRhdGUgPmV4cGVjdCAmJgorCUdJVF9SRU1PVEVfVEVTVEdJVF9OT19QUklWQVRFX1VQREFURT10IGdpdCBwdXNoIG9yaWdpbiB1cGRhdGUgJiYKKwlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHRlc3RnaXQvb3JpZ2luL2hlYWRzL3VwZGF0ZSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorCSkKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaCB1cGRhdGUgcmVmcyBmYWlsdXJlJyAnCiAJKGNkIGxvY2FsICYmCiAJZ2l0IGNoZWNrb3V0IHVwZGF0ZSAmJgpkaWZmIC0tZ2l0IGEvdC90NjAwMC1yZXYtbGlzdC1taXNjLnNoIGIvdC90NjAwMC1yZXYtbGlzdC1taXNjLnNoCmluZGV4IDE1ZTNkNjQuLjM3OTRlNGMgMTAwNzU1Ci0tLSBhL3QvdDYwMDAtcmV2LWxpc3QtbWlzYy5zaAorKysgYi90L3Q2MDAwLXJldi1saXN0LW1pc2Muc2gKQEAgLTU2LDQgKzU2LDIxIEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9wYWdhdGUgdW5pbnRlcmVzdGluZyBmbGFnIGRvd24gY29ycmVjdGx5JyAnCisJZ2l0IHJldi1saXN0IC0tb2JqZWN0cyBeSEVBRF57dHJlZX0gSEVBRF57dHJlZX0gPmFjdHVhbCAmJgorCT5leHBlY3QgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N5bWxlZnQgZmxhZyBiaXQgaXMgcHJvcGFnYXRlZCBkb3duIGZyb20gdGFnJyAnCisJZ2l0IGxvZyAtLWZvcm1hdD0iJW0gJXMiIC0tbGVmdC1yaWdodCB2MS4wLi4ubWFzdGVyID5hY3R1YWwgJiYKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJPiB0d28KKwk+IG9uZQorCTwgYW5vdGhlcgorCTwgdGhhdAorCUVPRgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q2MDEwLW1lcmdlLWJhc2Uuc2ggYi90L3Q2MDEwLW1lcmdlLWJhc2Uuc2gKaW5kZXggZjgwYmJhOC4uMzliMzIzOCAxMDA3NTUKLS0tIGEvdC90NjAxMC1tZXJnZS1iYXNlLnNoCisrKyBiL3QvdDYwMTAtbWVyZ2UtYmFzZS5zaApAQCAtMjMwLDQgKzIzMCw3MSBAQAogCXRlc3RfY21wIGV4cGVjdGVkLnNvcnRlZCBhY3R1YWwuc29ydGVkCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VzaW5nIHJlZmxvZyB0byBmaW5kIHRoZSBmb3JrIHBvaW50JyAnCisJZ2l0IHJlc2V0IC0taGFyZCAmJgorCWdpdCBjaGVja291dCAtYiBiYXNlICRFICYmCisKKwkoCisJCWZvciBjb3VudCBpbiAxIDIgMworCQlkbworCQkJZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tICJCYXNlIGNvbW1pdCAjJGNvdW50IiAmJgorCQkJZ2l0IHJldi1wYXJzZSBIRUFEID5leHBlY3QkY291bnQgJiYKKwkJCWdpdCBjaGVja291dCAtQiBkZXJpdmVkICYmCisJCQlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gIkRlcml2ZWQgIyRjb3VudCIgJiYKKwkJCWdpdCByZXYtcGFyc2UgSEVBRCA+ZGVyaXZlZCRjb3VudCAmJgorCQkJZ2l0IGNoZWNrb3V0IC1CIGJhc2UgJEUgfHwgZXhpdCAxCisJCWRvbmUKKworCQlmb3IgY291bnQgaW4gMSAyIDMKKwkJZG8KKwkJCWdpdCBtZXJnZS1iYXNlIC0tZm9yay1wb2ludCBiYXNlICQoY2F0IGRlcml2ZWQkY291bnQpID5hY3R1YWwgJiYKKwkJCXRlc3RfY21wIGV4cGVjdCRjb3VudCBhY3R1YWwgfHwgZXhpdCAxCisJCWRvbmUKKworCSkgJiYKKwkjIGNoZWNrIHRoYXQgd2UgY29ycmVjdGx5IGRlZmF1bHQgdG8gSEVBRAorCWdpdCBjaGVja291dCBkZXJpdmVkICYmCisJZ2l0IG1lcmdlLWJhc2UgLS1mb3JrLXBvaW50IGJhc2UgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdDMgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21lcmdlLWJhc2UgLS1vY3RvcHVzIC0tYWxsIGZvciBjb21wbGV4IHRyZWUnICcKKwkjIEJlc3QgY29tbW9uIGFuY2VzdG9yIGZvciBKRSwgSkFBIGFuZCBKREQgaXMgSkMKKwkjICAgICAgICAgICAgIEpFCisJIyAgICAgICAgICAgIC8gfAorCSMgICAgICAgICAgIC8gIHwKKwkjICAgICAgICAgIC8gICB8CisJIyAgSkFBICAgIC8gICAgfAorCSMgICB8XCAgIC8gICAgIHwKKwkjICAgfCBcICB8IEpERCB8CisJIyAgIHwgIFwgfC8gfCAgfAorCSMgICB8ICAgSkMgSkQgIHwKKwkjICAgfCAgICB8IC98ICB8CisJIyAgIHwgICAgfC8gfCAgfAorCSMgIEpBICAgIHwgIHwgIHwKKwkjICAgfFwgIC98ICB8ICB8CisJIyAgIFggSkIgfCAgWCAgWAorCSMgICBcICBcIHwgLyAgIC8KKwkjICAgIFxfX1x8L19fXy8KKwkjICAgICAgICBKCisJdGVzdF9jb21taXQgSiAmJgorCXRlc3RfY29tbWl0IEpCICYmCisJZ2l0IHJlc2V0IC0taGFyZCBKICYmCisJdGVzdF9jb21taXQgSkMgJiYKKwlnaXQgcmVzZXQgLS1oYXJkIEogJiYKKwl0ZXN0X2NvbW1pdCBKVEVNUDEgJiYKKwl0ZXN0X21lcmdlIEpBIEpCICYmCisJdGVzdF9tZXJnZSBKQUEgSkMgJiYKKwlnaXQgcmVzZXQgLS1oYXJkIEogJiYKKwl0ZXN0X2NvbW1pdCBKVEVNUDIgJiYKKwl0ZXN0X21lcmdlIEpEIEpCICYmCisJdGVzdF9tZXJnZSBKREQgSkMgJiYKKwlnaXQgcmVzZXQgLS1oYXJkIEogJiYKKwl0ZXN0X2NvbW1pdCBKVEVNUDMgJiYKKwl0ZXN0X21lcmdlIEpFIEpDICYmCisJZ2l0IHJldi1wYXJzZSBKQyA+ZXhwZWN0ZWQgJiYKKwlnaXQgbWVyZ2UtYmFzZSAtLWFsbCAtLW9jdG9wdXMgSkFBIEpERCBKRSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NjAxMS1yZXYtbGlzdC13aXRoLWJhZC1jb21taXQuc2ggYi90L3Q2MDExLXJldi1saXN0LXdpdGgtYmFkLWNvbW1pdC5zaAppbmRleCBiYmIwNTgxLi5lNTFlYjQxIDEwMDc1NQotLS0gYS90L3Q2MDExLXJldi1saXN0LXdpdGgtYmFkLWNvbW1pdC5zaAorKysgYi90L3Q2MDExLXJldi1saXN0LXdpdGgtYmFkLWNvbW1pdC5zaApAQCAtMzcsNyArMzcsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjb3JydXB0IHNlY29uZCBjb21taXQgb2JqZWN0JyBcCiAgICAnCi0gICAiJFBFUkxfUEFUSCIgLWkuYmFrIC1wZSAicy9zZWNvbmQgY29tbWl0L3NvY29uZCBjb21taXQvIiAuZ2l0L29iamVjdHMvcGFjay8qLnBhY2sgJiYKKyAgIHBlcmwgLWkuYmFrIC1wZSAicy9zZWNvbmQgY29tbWl0L3NvY29uZCBjb21taXQvIiAuZ2l0L29iamVjdHMvcGFjay8qLnBhY2sgJiYKICAgIHRlc3RfbXVzdF9mYWlsIGdpdCBmc2NrIC0tZnVsbAogICAgJwogCmRpZmYgLS1naXQgYS90L3Q2MDEzLXJldi1saXN0LXJldmVyc2UtcGFyZW50cy5zaCBiL3QvdDYwMTMtcmV2LWxpc3QtcmV2ZXJzZS1wYXJlbnRzLnNoCmluZGV4IDg5MmE1MzcuLjU5ZmMyZjAgMTAwNzU1Ci0tLSBhL3QvdDYwMTMtcmV2LWxpc3QtcmV2ZXJzZS1wYXJlbnRzLnNoCisrKyBiL3QvdDYwMTMtcmV2LWxpc3QtcmV2ZXJzZS1wYXJlbnRzLnNoCkBAIC0yNSw3ICsyNSw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tcmV2ZXJzZSAtLXBhcmVudHMgLS1mdWxsLWhpc3RvcnkgY29tYmluZXMgY29ycmVjdGx5JyAnCiAJZ2l0IHJldi1saXN0IC0tcGFyZW50cyAtLWZ1bGwtaGlzdG9yeSBtYXN0ZXIgLS0gZm9vIHwKLQkJIiRQRVJMX1BBVEgiIC1lICJwcmludCByZXZlcnNlIDw+IiA+IGV4cGVjdGVkICYmCisJCXBlcmwgLWUgInByaW50IHJldmVyc2UgPD4iID4gZXhwZWN0ZWQgJiYKIAlnaXQgcmV2LWxpc3QgLS1yZXZlcnNlIC0tcGFyZW50cyAtLWZ1bGwtaGlzdG9yeSBtYXN0ZXIgLS0gZm9vIFwKIAkJPiBhY3R1YWwgJiYKIAl0ZXN0X2NtcCBhY3R1YWwgZXhwZWN0ZWQKQEAgLTMzLDcgKzMzLDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1ib3VuZGFyeSBkb2VzIHRvbycgJwogCWdpdCByZXYtbGlzdCAtLWJvdW5kYXJ5IC0tcGFyZW50cyAtLWZ1bGwtaGlzdG9yeSBtYXN0ZXIgXnJvb3QgLS0gZm9vIHwKLQkJIiRQRVJMX1BBVEgiIC1lICJwcmludCByZXZlcnNlIDw+IiA+IGV4cGVjdGVkICYmCisJCXBlcmwgLWUgInByaW50IHJldmVyc2UgPD4iID4gZXhwZWN0ZWQgJiYKIAlnaXQgcmV2LWxpc3QgLS1ib3VuZGFyeSAtLXJldmVyc2UgLS1wYXJlbnRzIC0tZnVsbC1oaXN0b3J5IFwKIAkJbWFzdGVyIF5yb290IC0tIGZvbyA+IGFjdHVhbCAmJgogCXRlc3RfY21wIGFjdHVhbCBleHBlY3RlZApkaWZmIC0tZ2l0IGEvdC90NjAxOC1yZXYtbGlzdC1nbG9iLnNoIGIvdC90NjAxOC1yZXYtbGlzdC1nbG9iLnNoCmluZGV4IGYwMGNlYmYuLmQwMGY3ZGIgMTAwNzU1Ci0tLSBhL3QvdDYwMTgtcmV2LWxpc3QtZ2xvYi5zaAorKysgYi90L3Q2MDE4LXJldi1saXN0LWdsb2Iuc2gKQEAgLTEyOSw2ICsxMjksMTggQEAKIAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXYtcGFyc2UgLS1leGNsdWRlIHdpdGggLS1icmFuY2hlcycgJworCWNvbXBhcmUgcmV2LXBhcnNlICItLWV4Y2x1ZGU9Ki8qIC0tYnJhbmNoZXMiICJtYXN0ZXIgc29tZXJlZiBzdWJzcGFjZS14IgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXYtcGFyc2UgLS1leGNsdWRlIHdpdGggLS1hbGwnICcKKwljb21wYXJlIHJldi1wYXJzZSAiLS1leGNsdWRlPXJlZnMvcmVtb3Rlcy8qIC0tYWxsIiAiLS1icmFuY2hlcyAtLXRhZ3MiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Jldi1wYXJzZSBhY2N1bXVsYXRlcyBtdWx0aXBsZSAtLWV4Y2x1ZGUnICcKKwljb21wYXJlIHJldi1wYXJzZSAiLS1leGNsdWRlPXJlZnMvcmVtb3Rlcy8qIC0tZXhjbHVkZT1yZWZzL3RhZ3MvKiAtLWFsbCIgLS1icmFuY2hlcworJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXYtbGlzdCAtLWdsb2I9cmVmcy9oZWFkcy9zdWJzcGFjZS8qJyAnCiAKIAljb21wYXJlIHJldi1saXN0ICJzdWJzcGFjZS9vbmUgc3Vic3BhY2UvdHdvIiAiLS1nbG9iPXJlZnMvaGVhZHMvc3Vic3BhY2UvKiIKQEAgLTIzMSw2ICsyNDMsNDggQEAKIAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXYtbGlzdCAtLWV4Y2x1ZGUgd2l0aCAtLWJyYW5jaGVzJyAnCisJY29tcGFyZSByZXYtbGlzdCAiLS1leGNsdWRlPSovKiAtLWJyYW5jaGVzIiAibWFzdGVyIHNvbWVyZWYgc3Vic3BhY2UteCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmV2LWxpc3QgLS1leGNsdWRlIHdpdGggLS1hbGwnICcKKwljb21wYXJlIHJldi1saXN0ICItLWV4Y2x1ZGU9cmVmcy9yZW1vdGVzLyogLS1hbGwiICItLWJyYW5jaGVzIC0tdGFncyIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmV2LWxpc3QgYWNjdW11bGF0ZXMgbXVsdGlwbGUgLS1leGNsdWRlJyAnCisJY29tcGFyZSByZXYtbGlzdCAiLS1leGNsdWRlPXJlZnMvcmVtb3Rlcy8qIC0tZXhjbHVkZT1yZWZzL3RhZ3MvKiAtLWFsbCIgLS1icmFuY2hlcworJworCisKKyMgImdpdCByZXYtbGlzdDxFTlRFUj4iIGlzIGxpa2VseSB0byBiZSBhIGJ1ZyBpbiB0aGUgY2FsbGluZyBzY3JpcHQgYW5kIG1heQorIyBkZXNlcnZlIGFuIGVycm9yIG1lc3NhZ2UsIGJ1dCBkbyBjYXNlcyB3aGVyZSBzZXQgb2YgcmVmcyBwcm9ncmFtYXRpY2FsbHkKKyMgZ2l2ZW4gdXNpbmcgZ2xvYmJpbmcgYW5kL29yIC0tc3RkaW4gbmVlZCB0byBmYWlsIHdpdGggdGhlIHNhbWUgZXJyb3IsIG9yCisjIGFyZSB3ZSBiZXR0ZXIgb2ZmIHJlcG9ydGluZyBhIHN1Y2Nlc3Mgd2l0aCBubyBvdXRwdXQ/ICBUaGUgZm9sbG93aW5nIGZldworIyB0ZXN0cyBkb2N1bWVudCB0aGUgY3VycmVudCBiZWhhdmlvdXIgdG8gcmVtaW5kIHVzIHRoYXQgd2UgbWlnaHQgd2FudCB0bworIyB0aGluayBhYm91dCB0aGlzIGlzc3VlLgorCit0ZXN0X2V4cGVjdF9mYWlsdXJlICdyZXYtbGlzdCBtYXkgd2FudCB0byBzdWNjZWVkIHdpdGggZW1wdHkgb3V0cHV0IG9uIG5vIGlucHV0ICgxKScgJworCT5leHBlY3QgJiYKKwlnaXQgcmV2LWxpc3QgLS1zdGRpbiA8ZXhwZWN0ID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X2ZhaWx1cmUgJ3Jldi1saXN0IG1heSB3YW50IHRvIHN1Y2NlZWQgd2l0aCBlbXB0eSBvdXRwdXQgb24gbm8gaW5wdXQgKDIpJyAnCisJPmV4cGVjdCAmJgorCWdpdCByZXYtbGlzdCAtLWV4Y2x1ZGU9KiAtLWFsbCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9mYWlsdXJlICdyZXYtbGlzdCBtYXkgd2FudCB0byBzdWNjZWVkIHdpdGggZW1wdHkgb3V0cHV0IG9uIG5vIGlucHV0ICgzKScgJworCSgKKwkJdGVzdF9jcmVhdGVfcmVwbyBlbXB0eSAmJgorCQljZCBlbXB0eSAmJgorCQk+ZXhwZWN0ICYmCisJCWdpdCByZXYtbGlzdCAtLWFsbCA+YWN0dWFsICYmCisJCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwkpCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Nob3J0bG9nIGFjY2VwdHMgLS1nbG9iLy0tdGFncy8tLXJlbW90ZXMnICcKIAogCWNvbXBhcmUgc2hvcnRsb2cgInN1YnNwYWNlL29uZSBzdWJzcGFjZS90d28iIC0tYnJhbmNoZXM9c3Vic3BhY2UgJiYKZGlmZiAtLWdpdCBhL3QvdDYwMjItbWVyZ2UtcmVuYW1lLnNoIGIvdC90NjAyMi1tZXJnZS1yZW5hbWUuc2gKaW5kZXggYzY4MGY3OC4uYTg5ZGZiZSAxMDA3NTUKLS0tIGEvdC90NjAyMi1tZXJnZS1yZW5hbWUuc2gKKysrIGIvdC90NjAyMi1tZXJnZS1yZW5hbWUuc2gKQEAgLTI1OSw3ICsyNTksNyBAQAogCXByaW50ZiAiMVxuMlxuM1xuNFxuNVxuNlxuN1xuOFxuOVxuMTBcbiIgPnN1Yi9maWxlICYmCiAJZWNobyBmb28gPmRpci9maWxlLWluLXRoZS13YXkgJiYKIAlnaXQgYWRkIC1BICYmCi0JZ2l0IGNvbW1pdCAtbSAiQ29tbW9uIGNvbW1taXQiICYmCisJZ2l0IGNvbW1pdCAtbSAiQ29tbW9uIGNvbW1pdCIgJiYKIAogCWVjaG8gMTEgPj5zdWIvZmlsZSAmJgogCWVjaG8gbW9yZSA+PmRpci9maWxlLWluLXRoZS13YXkgJiYKQEAgLTQzOSw3ICs0MzksNyBAQAogCW1rZGlyIG9uZSAmJgogCWVjaG8gc3R1ZmYgPm9uZS9maWxlICYmCiAJZ2l0IGFkZCAtQSAmJgotCWdpdCBjb21taXQgLW0gIkNvbW1vbiBjb21tbWl0IiAmJgorCWdpdCBjb21taXQgLW0gIkNvbW1vbiBjb21taXQiICYmCiAKIAlnaXQgbXYgb25lL2ZpbGUgZGVzdGRpciAmJgogCWdpdCBjb21taXQgLW0gIlJlbmFtZWQgdG8gZGVzdGRpciIgJiYKQEAgLTQ3OSw3ICs0NzksNyBAQAogCWVjaG8gc3R1ZmYgPm9uZS9maWxlICYmCiAJZWNobyBvdGhlciA+dHdvL2ZpbGUgJiYKIAlnaXQgYWRkIC1BICYmCi0JZ2l0IGNvbW1pdCAtbSAiQ29tbW9uIGNvbW1taXQiICYmCisJZ2l0IGNvbW1pdCAtbSAiQ29tbW9uIGNvbW1pdCIgJiYKIAogCWdpdCBybSAtcmYgb25lICYmCiAJZ2l0IG12IHR3by9maWxlIG9uZSAmJgpAQCAtNTM5LDcgKzUzOSw3IEBACiAKIAllY2hvIHN0dWZmID5vcmlnaW5hbCAmJgogCWdpdCBhZGQgLUEgJiYKLQlnaXQgY29tbWl0IC1tICJDb21tb24gY29tbW1pdCIgJiYKKwlnaXQgY29tbWl0IC1tICJDb21tb24gY29tbWl0IiAmJgogCiAJbWtkaXIgdHdvICYmCiAJPnR3by9maWxlICYmCkBAIC01ODMsNyArNTgzLDcgQEAKIAlta2RpciBvbmUgdHdvICYmCiAJdG91Y2ggb25lL2ZpbGUgdHdvL2ZpbGUgJiYKIAlnaXQgYWRkIC1BICYmCi0JZ2l0IGNvbW1pdCAtbSAiQ29tbW9uIGNvbW1taXQiICYmCisJZ2l0IGNvbW1pdCAtbSAiQ29tbW9uIGNvbW1pdCIgJiYKIAogCWdpdCBybSAtcmYgb25lICYmCiAJZ2l0IG12IG9yaWdpbmFsIG9uZSAmJgpAQCAtNjE4LDcgKzYxOCw3IEBACiAKIAlwcmludGYgIjFcbjJcbjNcbjRcbjVcbjZcbjdcbjhcbjlcbjEwXG4iID5vcmlnaW5hbCAmJgogCWdpdCBhZGQgLUEgJiYKLQlnaXQgY29tbWl0IC1tICJDb21tb24gY29tbW1pdCIgJiYKKwlnaXQgY29tbWl0IC1tICJDb21tb24gY29tbWl0IiAmJgogCiAJZ2l0IG12IG9yaWdpbmFsIHJlbmFtZSAmJgogCWVjaG8gMTEgPj5yZW5hbWUgJiYKQEAgLTY0OSw3ICs2NDksNyBAQAogCW1rZGlyIGRmICYmCiAJcHJpbnRmICIxXG4yXG4zXG40XG41XG42XG43XG44XG45XG4xMFxuIiA+ZGYvZmlsZSAmJgogCWdpdCBhZGQgLUEgJiYKLQlnaXQgY29tbWl0IC1tICJDb21tb24gY29tbW1pdCIgJiYKKwlnaXQgY29tbWl0IC1tICJDb21tb24gY29tbWl0IiAmJgogCiAJZ2l0IG12IGRmL2ZpbGUgdGVtcCAmJgogCXJtIC1yZiBkZiAmJgpkaWZmIC0tZ2l0IGEvdC90NjAzMS1tZXJnZS1yZWN1cnNpdmUuc2ggYi90L3Q2MDMxLW1lcmdlLXJlY3Vyc2l2ZS5zaAppbmRleCAxY2Q2NDllLi5hOTUzZjFiIDEwMDc1NQotLS0gYS90L3Q2MDMxLW1lcmdlLXJlY3Vyc2l2ZS5zaAorKysgYi90L3Q2MDMxLW1lcmdlLXJlY3Vyc2l2ZS5zaApAQCAtMiw3ICsyLDYgQEAKIAogdGVzdF9kZXNjcmlwdGlvbj0nbWVyZ2UtcmVjdXJzaXZlOiBoYW5kbGUgZmlsZSBtb2RlJwogLiAuL3Rlc3QtbGliLnNoCi0uICIkVEVTVF9ESVJFQ1RPUlkiL2xpYi1wcmVyZXEtRklMRU1PREUuc2gKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbW9kZSBjaGFuZ2UgaW4gb25lIGJyYW5jaDoga2VlcCBjaGFuZ2VkIHZlcnNpb24nICcKIAk6ID5maWxlMSAmJgpkaWZmIC0tZ2l0IGEvdC90NjA0MC10cmFja2luZy1pbmZvLnNoIGIvdC90NjA0MC10cmFja2luZy1pbmZvLnNoCmluZGV4IGVjMmI1MTYuLjdhYzhmZDAgMTAwNzU1Ci0tLSBhL3QvdDYwNDAtdHJhY2tpbmctaW5mby5zaAorKysgYi90L3Q2MDQwLXRyYWNraW5nLWluZm8uc2gKQEAgLTI4LDE4ICsyOCwyNSBAQAogCQlnaXQgcmVzZXQgLS1oYXJkIEhFQUReICYmCiAJCWdpdCBjaGVja291dCAtYiBiNCBvcmlnaW4gJiYKIAkJYWR2YW5jZSBlICYmCi0JCWFkdmFuY2UgZgorCQlhZHZhbmNlIGYgJiYKKwkJZ2l0IGNoZWNrb3V0IC1iIGJyb2tlbmJhc2Ugb3JpZ2luICYmCisJCWdpdCBjaGVja291dCAtYiBiNSAtLXRyYWNrIGJyb2tlbmJhc2UgJiYKKwkJYWR2YW5jZSBnICYmCisJCWdpdCBicmFuY2ggLWQgYnJva2VuYmFzZSAmJgorCQlnaXQgY2hlY2tvdXQgLWIgYjYgb3JpZ2luCiAJKSAmJgogCWdpdCBjaGVja291dCAtYiBmb2xsb3dlciAtLXRyYWNrIG1hc3RlciAmJgotCWFkdmFuY2UgZworCWFkdmFuY2UgaAogJwogCi1zY3JpcHQ9J3MvXi4uXChiLlwpWwkgMC05YS1mXSpcW1woW15dXSpcKVxdLiovXDEgXDIvcCcKK3NjcmlwdD0ncy9eLi5cKGIuXCkgKlswLTlhLWZdKiBcKC4qXCkkL1wxIFwyL3AnCiBjYXQgPmV4cGVjdCA8PFxFT0YKLWIxIGFoZWFkIDEsIGJlaGluZCAxCi1iMiBhaGVhZCAxLCBiZWhpbmQgMQotYjMgYmVoaW5kIDEKLWI0IGFoZWFkIDIKK2IxIFthaGVhZCAxLCBiZWhpbmQgMV0gZAorYjIgW2FoZWFkIDEsIGJlaGluZCAxXSBkCitiMyBbYmVoaW5kIDFdIGIKK2I0IFthaGVhZCAyXSBmCitiNSBnCitiNiBjCiBFT0YKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYnJhbmNoIC12JyAnCkBAIC01MiwxMCArNTksMTIgQEAKICcKIAogY2F0ID5leHBlY3QgPDxcRU9GCi1iMSBvcmlnaW4vbWFzdGVyOiBhaGVhZCAxLCBiZWhpbmQgMQotYjIgb3JpZ2luL21hc3RlcjogYWhlYWQgMSwgYmVoaW5kIDEKLWIzIG9yaWdpbi9tYXN0ZXI6IGJlaGluZCAxCi1iNCBvcmlnaW4vbWFzdGVyOiBhaGVhZCAyCitiMSBbb3JpZ2luL21hc3RlcjogYWhlYWQgMSwgYmVoaW5kIDFdIGQKK2IyIFtvcmlnaW4vbWFzdGVyOiBhaGVhZCAxLCBiZWhpbmQgMV0gZAorYjMgW29yaWdpbi9tYXN0ZXI6IGJlaGluZCAxXSBiCitiNCBbb3JpZ2luL21hc3RlcjogYWhlYWQgMl0gZgorYjUgW2Jyb2tlbmJhc2U6IGdvbmVdIGcKK2I2IFtvcmlnaW4vbWFzdGVyXSBjCiBFT0YKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYnJhbmNoIC12dicgJwpAQCAtNjcsNyArNzYsNyBAQAogCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrb3V0JyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVja291dCAoZGl2ZXJnZWQgZnJvbSB1cHN0cmVhbSknICcKIAkoCiAJCWNkIHRlc3QgJiYgZ2l0IGNoZWNrb3V0IGIxCiAJKSA+YWN0dWFsICYmCkBAIC04MCw3ICs4OSwyMiBAQAogCXRlc3RfaTE4bmdyZXAgImlzIGFoZWFkIG9mIiBhY3R1YWwKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVja291dCAodXBzdHJlYW0gaXMgZ29uZSknICcKKwkoCisJCWNkIHRlc3QgJiYKKwkJZ2l0IGNoZWNrb3V0IGI1CisJKSA+YWN0dWFsICYmCisJdGVzdF9pMThuZ3JlcCAiaXMgYmFzZWQgb24gLiosIGJ1dCB0aGUgdXBzdHJlYW0gaXMgZ29uZS4iIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVja291dCAodXAtdG8tZGF0ZSB3aXRoIHVwc3RyZWFtKScgJworCSgKKwkJY2QgdGVzdCAmJiBnaXQgY2hlY2tvdXQgYjYKKwkpID5hY3R1YWwgJiYKKwl0ZXN0X2kxOG5ncmVwICJZb3VyIGJyYW5jaCBpcyB1cC10by1kYXRlIHdpdGggLm9yaWdpbi9tYXN0ZXIiIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgKGRpdmVyZ2VkIGZyb20gdXBzdHJlYW0pJyAnCiAJKAogCQljZCB0ZXN0ICYmCiAJCWdpdCBjaGVja291dCBiMSA+L2Rldi9udWxsICYmCkBAIC05MCw2ICsxMTQsNjUgQEAKIAl0ZXN0X2kxOG5ncmVwICJoYXZlIDEgYW5kIDEgZGlmZmVyZW50IiBhY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzICh1cHN0cmVhbSBpcyBnb25lKScgJworCSgKKwkJY2QgdGVzdCAmJgorCQlnaXQgY2hlY2tvdXQgYjUgPi9kZXYvbnVsbCAmJgorCQkjIHJlcG9ydHMgbm90aGluZyB0byBjb21taXQKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbW1pdCAtLWRyeS1ydW4KKwkpID5hY3R1YWwgJiYKKwl0ZXN0X2kxOG5ncmVwICJpcyBiYXNlZCBvbiAuKiwgYnV0IHRoZSB1cHN0cmVhbSBpcyBnb25lLiIgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyAodXAtdG8tZGF0ZSB3aXRoIHVwc3RyZWFtKScgJworCSgKKwkJY2QgdGVzdCAmJgorCQlnaXQgY2hlY2tvdXQgYjYgPi9kZXYvbnVsbCAmJgorCQkjIHJlcG9ydHMgbm90aGluZyB0byBjb21taXQKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbW1pdCAtLWRyeS1ydW4KKwkpID5hY3R1YWwgJiYKKwl0ZXN0X2kxOG5ncmVwICJZb3VyIGJyYW5jaCBpcyB1cC10by1kYXRlIHdpdGggLm9yaWdpbi9tYXN0ZXIiIGFjdHVhbAorJworCitjYXQgPmV4cGVjdCA8PFxFT0YKKyMjIGIxLi4ub3JpZ2luL21hc3RlciBbYWhlYWQgMSwgYmVoaW5kIDFdCitFT0YKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzIC1zIC1iIChkaXZlcmdlZCBmcm9tIHVwc3RyZWFtKScgJworCSgKKwkJY2QgdGVzdCAmJgorCQlnaXQgY2hlY2tvdXQgYjEgPi9kZXYvbnVsbCAmJgorCQlnaXQgc3RhdHVzIC1zIC1iIHwgaGVhZCAtMQorCSkgPmFjdHVhbCAmJgorCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCisnCisKK2NhdCA+ZXhwZWN0IDw8XEVPRgorIyMgYjUuLi5icm9rZW5iYXNlIFtnb25lXQorRU9GCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyAtcyAtYiAodXBzdHJlYW0gaXMgZ29uZSknICcKKwkoCisJCWNkIHRlc3QgJiYKKwkJZ2l0IGNoZWNrb3V0IGI1ID4vZGV2L251bGwgJiYKKwkJZ2l0IHN0YXR1cyAtcyAtYiB8IGhlYWQgLTEKKwkpID5hY3R1YWwgJiYKKwl0ZXN0X2kxOG5jbXAgZXhwZWN0IGFjdHVhbAorJworCitjYXQgPmV4cGVjdCA8PFxFT0YKKyMjIGI2Li4ub3JpZ2luL21hc3RlcgorRU9GCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyAtcyAtYiAodXAtdG8tZGF0ZSB3aXRoIHVwc3RyZWFtKScgJworCSgKKwkJY2QgdGVzdCAmJgorCQlnaXQgY2hlY2tvdXQgYjYgPi9kZXYvbnVsbCAmJgorCQlnaXQgc3RhdHVzIC1zIC1iIHwgaGVhZCAtMQorCSkgPmFjdHVhbCAmJgorCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZhaWwgdG8gdHJhY2sgbGlnaHR3ZWlnaHQgdGFncycgJwogCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKIAlnaXQgdGFnIGxpZ2h0ICYmCmRpZmYgLS1naXQgYS90L3Q2MDUwLXJlcGxhY2Uuc2ggYi90L3Q2MDUwLXJlcGxhY2Uuc2gKaW5kZXggZGVjZGMzMy4uNzE5YTExNiAxMDA3NTUKLS0tIGEvdC90NjA1MC1yZXBsYWNlLnNoCisrKyBiL3QvdDYwNTAtcmVwbGFjZS5zaApAQCAtMTIyLDkgKzEyMiw5IEBACiAgICAgIHRlc3QgIiRIQVNIMiIgPSAiJChnaXQgcmVwbGFjZSAtbCkiICYmCiAgICAgIHRlc3QgIiRIQVNIMiIgPSAiJChnaXQgcmVwbGFjZSkiICYmCiAgICAgIGFhPSR7SEFTSDIlPz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz99ICYmCi0gICAgIHRlc3QgIiRIQVNIMiIgPSAiJChnaXQgcmVwbGFjZSAtbCAiJGFhKiIpIiAmJgorICAgICB0ZXN0ICIkSEFTSDIiID0gIiQoZ2l0IHJlcGxhY2UgLS1saXN0ICIkYWEqIikiICYmCiAgICAgIHRlc3RfbXVzdF9mYWlsIGdpdCByZXBsYWNlIC1kICRSICYmCi0gICAgIHRlc3RfbXVzdF9mYWlsIGdpdCByZXBsYWNlIC1kICYmCisgICAgIHRlc3RfbXVzdF9mYWlsIGdpdCByZXBsYWNlIC0tZGVsZXRlICYmCiAgICAgIHRlc3RfbXVzdF9mYWlsIGdpdCByZXBsYWNlIC1sIC1kICRIQVNIMiAmJgogICAgICBnaXQgcmVwbGFjZSAtZCAkSEFTSDIgJiYKICAgICAgZ2l0IHNob3cgJEhBU0gyIHwgZ3JlcCAiQSBVIFRob3IiICYmCkBAIC0xNDcsNyArMTQ3LDcgQEAKICAgICAgZ2l0IHNob3cgJEhBU0gyIHwgZ3JlcCAiTyBUaG9yIiAmJgogICAgICB0ZXN0X211c3RfZmFpbCBnaXQgcmVwbGFjZSAkSEFTSDIgJFIgJiYKICAgICAgZ2l0IHJlcGxhY2UgLWYgJEhBU0gyICRSICYmCi0gICAgIHRlc3RfbXVzdF9mYWlsIGdpdCByZXBsYWNlIC1mICYmCisgICAgIHRlc3RfbXVzdF9mYWlsIGdpdCByZXBsYWNlIC0tZm9yY2UgJiYKICAgICAgdGVzdCAiJEhBU0gyIiA9ICIkKGdpdCByZXBsYWNlKSIKICcKIApAQCAtMjYzLDQgKzI2Myw2NSBAQAogCXRlc3RfY21wIGZpbGUucmVwbGFjZWQgZmlsZQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXBsYWNlZCBhbmQgcmVwbGFjZW1lbnQgb2JqZWN0cyBtdXN0IGJlIG9mIHRoZSBzYW1lIHR5cGUnICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmVwbGFjZSBteXRhZyAkSEFTSDEgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmVwbGFjZSBIRUFEXnt0cmVlfSBIRUFEfjEgJiYKKwlCTE9CPSQoZ2l0IHJldi1wYXJzZSA6ZmlsZSkgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmVwbGFjZSBIRUFEXiAkQkxPQgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctZiBvcHRpb24gYnlwYXNzZXMgdGhlIHR5cGUgY2hlY2snICcKKwlnaXQgcmVwbGFjZSAtZiBteXRhZyAkSEFTSDEgJiYKKwlnaXQgcmVwbGFjZSAtLWZvcmNlIEhFQURee3RyZWV9IEhFQUR+MSAmJgorCWdpdCByZXBsYWNlIC1mIEhFQUReICRCTE9CCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjYXQtZmlsZSAtLWJhdGNoIHdvcmtzIG9uIHJlcGxhY2Ugb2JqZWN0cycgJworCWdpdCByZXBsYWNlIHwgZ3JlcCAkUEFSQTMgJiYKKwllY2hvICRQQVJBMyB8IGdpdCBjYXQtZmlsZSAtLWJhdGNoCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgLS1mb3JtYXQgYm9ndXMnICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmVwbGFjZSAtLWZvcm1hdCBib2d1cyA+L2Rldi9udWxsIDI+JjEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndGVzdCAtLWZvcm1hdCBzaG9ydCcgJworCWdpdCByZXBsYWNlIC0tZm9ybWF0PXNob3J0ID5hY3R1YWwgJiYKKwlnaXQgcmVwbGFjZSA+ZXhwZWN0ZWQgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndGVzdCAtLWZvcm1hdCBtZWRpdW0nICcKKwlIMT0kKGdpdCAtLW5vLXJlcGxhY2Utb2JqZWN0cyByZXYtcGFyc2UgSEVBRH4xKSAmJgorCUhUPSQoZ2l0IC0tbm8tcmVwbGFjZS1vYmplY3RzIHJldi1wYXJzZSBIRUFEXnt0cmVlfSkgJiYKKwlNWVRBRz0kKGdpdCAtLW5vLXJlcGxhY2Utb2JqZWN0cyByZXYtcGFyc2UgbXl0YWcpICYmCisJeworCQllY2hvICIkSDEgLT4gJEJMT0IiICYmCisJCWVjaG8gIiRCTE9CIC0+ICRSRVBMQUNFRCIgJiYKKwkJZWNobyAiJEhUIC0+ICRIMSIgJiYKKwkJZWNobyAiJFBBUkEzIC0+ICRTIiAmJgorCQllY2hvICIkTVlUQUcgLT4gJEhBU0gxIgorCX0gfCBzb3J0ID5leHBlY3RlZCAmJgorCWdpdCByZXBsYWNlIC1sIC0tZm9ybWF0IG1lZGl1bSB8IHNvcnQgPiBhY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndGVzdCAtLWZvcm1hdCBsb25nJyAnCisJeworCQllY2hvICIkSDEgKGNvbW1pdCkgLT4gJEJMT0IgKGJsb2IpIiAmJgorCQllY2hvICIkQkxPQiAoYmxvYikgLT4gJFJFUExBQ0VEIChibG9iKSIgJiYKKwkJZWNobyAiJEhUICh0cmVlKSAtPiAkSDEgKGNvbW1pdCkiICYmCisJCWVjaG8gIiRQQVJBMyAoY29tbWl0KSAtPiAkUyAoY29tbWl0KSIgJiYKKwkJZWNobyAiJE1ZVEFHICh0YWcpIC0+ICRIQVNIMSAoY29tbWl0KSIKKwl9IHwgc29ydCA+ZXhwZWN0ZWQgJiYKKwlnaXQgcmVwbGFjZSAtLWZvcm1hdD1sb25nIHwgc29ydCA+IGFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXBsYWNlIHJlZiBjbGVhbnVwJyAnCisJdGVzdCAtbiAiJChnaXQgcmVwbGFjZSkiICYmCisJZ2l0IHJlcGxhY2UgLWQgJChnaXQgcmVwbGFjZSkgJiYKKwl0ZXN0IC16ICIkKGdpdCByZXBsYWNlKSIKKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q2MTAxLXJldi1wYXJzZS1wYXJlbnRzLnNoIGIvdC90NjEwMS1yZXYtcGFyc2UtcGFyZW50cy5zaAppbmRleCBlNjczYzI1Li4xMGIxNDUyIDEwMDc1NQotLS0gYS90L3Q2MTAxLXJldi1wYXJzZS1wYXJlbnRzLnNoCisrKyBiL3QvdDYxMDEtcmV2LXBhcnNlLXBhcmVudHMuc2gKQEAgLTYsMzkgKzYsMTAwIEBACiB0ZXN0X2Rlc2NyaXB0aW9uPSdUZXN0IGdpdCByZXYtcGFyc2Ugd2l0aCBkaWZmZXJlbnQgcGFyZW50IG9wdGlvbnMnCiAKIC4gLi90ZXN0LWxpYi5zaAotLiAiJFRFU1RfRElSRUNUT1JZIi9saWItdDYwMDAuc2ggIyB0Nnh4eCBzcGVjaWZpYyBmdW5jdGlvbnMKIAotZGF0ZSA+cGF0aDAKLWdpdCB1cGRhdGUtaW5kZXggLS1hZGQgcGF0aDAKLXNhdmVfdGFnIHRyZWUgZ2l0IHdyaXRlLXRyZWUKLWhpZGVfZXJyb3Igc2F2ZV90YWcgc3RhcnQgdW5pcXVlX2NvbW1pdCAic3RhcnQiIHRyZWUKLXNhdmVfdGFnIHNlY29uZCB1bmlxdWVfY29tbWl0ICJzZWNvbmQiIHRyZWUgLXAgc3RhcnQKLWhpZGVfZXJyb3Igc2F2ZV90YWcgc3RhcnQyIHVuaXF1ZV9jb21taXQgInN0YXJ0MiIgdHJlZQotc2F2ZV90YWcgdHdvX3BhcmVudHMgdW5pcXVlX2NvbW1pdCAibmV4dCIgdHJlZSAtcCBzZWNvbmQgLXAgc3RhcnQyCi1zYXZlX3RhZyBmaW5hbCB1bmlxdWVfY29tbWl0ICJmaW5hbCIgdHJlZSAtcCB0d29fcGFyZW50cwordGVzdF9jbXBfcmV2X291dHB1dCAoKSB7CisJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAiJDEiID5leHBlY3QgJiYKKwlldmFsICIkMiIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKK30KIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhcnQgaXMgdmFsaWQnICdnaXQgcmV2LXBhcnNlIHN0YXJ0IHwgZ3JlcCAiXlswLTlhLWZdXHs0MFx9JCInCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGFydF4wJyAidGVzdCAkKGNhdCAuZ2l0L3JlZnMvdGFncy9zdGFydCkgPSAkKGdpdCByZXYtcGFyc2Ugc3RhcnReMCkiCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGFydF4xIG5vdCB2YWxpZCcgImlmIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgc3RhcnReMTsgdGhlbiBmYWxzZTsgZWxzZSA6OyBmaSIKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NlY29uZF4xID0gc2Vjb25kXicgInRlc3QgJChnaXQgcmV2LXBhcnNlIHNlY29uZF4xKSA9ICQoZ2l0IHJldi1wYXJzZSBzZWNvbmReKSIKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbmFsXjFeMV4xJyAidGVzdCAkKGdpdCByZXYtcGFyc2Ugc3RhcnQpID0gJChnaXQgcmV2LXBhcnNlIGZpbmFsXjFeMV4xKSIKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbmFsXjFeMV4xID0gZmluYWxeXl4nICJ0ZXN0ICQoZ2l0IHJldi1wYXJzZSBmaW5hbF4xXjFeMSkgPSAkKGdpdCByZXYtcGFyc2UgZmluYWxeXl4pIgotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmluYWxeMV4yJyAidGVzdCAkKGdpdCByZXYtcGFyc2Ugc3RhcnQyKSA9ICQoZ2l0IHJldi1wYXJzZSBmaW5hbF4xXjIpIgotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmluYWxeMV4yICE9IGZpbmFsXjFeMScgInRlc3QgJChnaXQgcmV2LXBhcnNlIGZpbmFsXjFeMikgIT0gJChnaXQgcmV2LXBhcnNlIGZpbmFsXjFeMSkiCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdmaW5hbF4xXjMgbm90IHZhbGlkJyAiaWYgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBmaW5hbF4xXjM7IHRoZW4gZmFsc2U7IGVsc2UgOjsgZmkiCi10ZXN0X2V4cGVjdF9zdWNjZXNzICctLXZlcmlmeSBzdGFydDJeMScgJ3Rlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgc3RhcnQyXjEnCi10ZXN0X2V4cGVjdF9zdWNjZXNzICctLXZlcmlmeSBzdGFydDJeMCcgJ2dpdCByZXYtcGFyc2UgLS12ZXJpZnkgc3RhcnQyXjAnCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdmaW5hbF4xXkAgPSBmaW5hbF4xXjEgZmluYWxeMV4yJyAidGVzdCBcIiQoZ2l0IHJldi1wYXJzZSBmaW5hbF4xXkApXCIgPSBcIiQoZ2l0IHJldi1wYXJzZSBmaW5hbF4xXjEgZmluYWxeMV4yKVwiIgotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmluYWxeMV4hID0gZmluYWxeMSBeZmluYWxeMV4xIF5maW5hbF4xXjInICJ0ZXN0IFwiJChnaXQgcmV2LXBhcnNlIGZpbmFsXjFeXCEpXCIgPSBcIiQoZ2l0IHJldi1wYXJzZSBmaW5hbF4xIF5maW5hbF4xXjEgXmZpbmFsXjFeMilcIiIKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwJyAnCisJdGVzdF9jb21taXQgc3RhcnQgJiYKKwl0ZXN0X2NvbW1pdCBzZWNvbmQgJiYKKwlnaXQgY2hlY2tvdXQgLS1vcnBoYW4gdG1wICYmCisJdGVzdF9jb21taXQgc3RhcnQyICYmCisJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCWdpdCBtZXJnZSAtbSBuZXh0IHN0YXJ0MiAmJgorCXRlc3RfY29tbWl0IGZpbmFsICYmCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlcGFjayBmb3IgbmV4dCB0ZXN0JyAnZ2l0IHJlcGFjayAtYSAtZCcKKwl0ZXN0X3NlcSA0MCB8CisJd2hpbGUgcmVhZCBpCisJZG8KKwkJZ2l0IGNoZWNrb3V0IC0tb3JwaGFuICJiJGkiICYmCisJCXRlc3RfdGljayAmJgorCQlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gIiRpIiAmJgorCQljb21taXQ9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpICYmCisJCXByaW50ZiAiJGNvbW1pdCAiID4+LmdpdC9pbmZvL2dyYWZ0cworCWRvbmUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhcnQgaXMgdmFsaWQnICcKKwlnaXQgcmV2LXBhcnNlIHN0YXJ0IHwgZ3JlcCAiXlswLTlhLWZdXHs0MFx9JCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhcnReMCcgJworCXRlc3RfY21wX3Jldl9vdXRwdXQgdGFncy9zdGFydCAiZ2l0IHJldi1wYXJzZSBzdGFydF4wIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGFydF4xIG5vdCB2YWxpZCcgJworCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgc3RhcnReMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZWNvbmReMSA9IHNlY29uZF4nICcKKwl0ZXN0X2NtcF9yZXZfb3V0cHV0IHNlY29uZF4gImdpdCByZXYtcGFyc2Ugc2Vjb25kXjEiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbmFsXjFeMV4xJyAnCisJdGVzdF9jbXBfcmV2X291dHB1dCBzdGFydCAiZ2l0IHJldi1wYXJzZSBmaW5hbF4xXjFeMSIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmluYWxeMV4xXjEgPSBmaW5hbF5eXicgJworCXRlc3RfY21wX3Jldl9vdXRwdXQgZmluYWxeXl4gImdpdCByZXYtcGFyc2UgZmluYWxeMV4xXjEiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbmFsXjFeMicgJworCXRlc3RfY21wX3Jldl9vdXRwdXQgc3RhcnQyICJnaXQgcmV2LXBhcnNlIGZpbmFsXjFeMiIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmluYWxeMV4yICE9IGZpbmFsXjFeMScgJworCXRlc3QgJChnaXQgcmV2LXBhcnNlIGZpbmFsXjFeMikgIT0gJChnaXQgcmV2LXBhcnNlIGZpbmFsXjFeMSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmluYWxeMV4zIG5vdCB2YWxpZCcgJworCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgZmluYWxeMV4zCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tdmVyaWZ5IHN0YXJ0Ml4xJyAnCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBzdGFydDJeMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctLXZlcmlmeSBzdGFydDJeMCcgJworCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgc3RhcnQyXjAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmluYWxeMV5AID0gZmluYWxeMV4xIGZpbmFsXjFeMicgJworCWdpdCByZXYtcGFyc2UgZmluYWxeMV4xIGZpbmFsXjFeMiA+ZXhwZWN0ICYmCisJZ2l0IHJldi1wYXJzZSBmaW5hbF4xXkAgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmluYWxeMV4hID0gZmluYWxeMSBeZmluYWxeMV4xIF5maW5hbF4xXjInICcKKwlnaXQgcmV2LXBhcnNlIGZpbmFsXjEgXmZpbmFsXjFeMSBeZmluYWxeMV4yID5leHBlY3QgJiYKKwlnaXQgcmV2LXBhcnNlIGZpbmFsXjFeISA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdsYXJnZSBncmFmdCBvY3RvcHVzJyAnCisJdGVzdF9jbXBfcmV2X291dHB1dCBiMzEgImdpdCByZXYtcGFyc2UgLS12ZXJpZnkgYjFeMzAiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlcGFjayBmb3IgbmV4dCB0ZXN0JyAnCisJZ2l0IHJlcGFjayAtYSAtZAorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaG9ydCBTSEEtMSB3b3JrcycgJwotCXN0YXJ0PWBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHN0YXJ0YCAmJgotCWVjaG8gJHN0YXJ0ICYmCi0JYWJicnY9YGVjaG8gJHN0YXJ0IHwgc2VkIHMvLlwkLy9gICYmCi0JZWNobyAkYWJicnYgJiYKLQlhYmJydj1gZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAkYWJicnZgICYmCi0JZWNobyAkYWJicnYgJiYKLQl0ZXN0ICRzdGFydCA9ICRhYmJydicKKwlzdGFydD0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgc3RhcnQpICYmCisJdGVzdF9jbXBfcmV2X291dHB1dCBzdGFydCAiZ2l0IHJldi1wYXJzZSAke3N0YXJ0JT99IgorJwogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDYxMzAtcGF0aHNwZWMtbm9nbG9iLnNoIGIvdC90NjEzMC1wYXRoc3BlYy1ub2dsb2Iuc2gKaW5kZXggMzllZjYxOS4uNjU4MzUzMiAxMDA3NTUKLS0tIGEvdC90NjEzMC1wYXRoc3BlYy1ub2dsb2Iuc2gKKysrIGIvdC90NjEzMC1wYXRoc3BlYy1ub2dsb2Iuc2gKQEAgLTMyLDYgKzMyLDE2IEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGFyIHBhdGhzcGVjIGdsb2JzJyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCWJyYWNrZXQKKwlzdGFyCisJdmFuaWxsYQorCUVPRgorCWdpdCBsb2cgLS1mb3JtYXQ9JXMgLS0gIjooZ2xvYilmKiIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYnJhY2tldCBwYXRoc3BlYyBnbG9icyBhbmQgbWF0Y2hlcyBsaXRlcmFsIGJyYWNrZXRzJyAnCiAJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgogCWJyYWNrZXQKQEAgLTQxLDI4ICs1MSwxMTIgQEAKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JyYWNrZXQgcGF0aHNwZWMgZ2xvYnMgYW5kIG1hdGNoZXMgbGl0ZXJhbCBicmFja2V0cycgJworCWNhdCA+ZXhwZWN0IDw8LVxFT0YgJiYKKwlicmFja2V0CisJdmFuaWxsYQorCUVPRgorCWdpdCBsb2cgLS1mb3JtYXQ9JXMgLS0gIjooZ2xvYilmW29dW29dIiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICduby1nbG9iIG9wdGlvbiBtYXRjaGVzIGxpdGVyYWxseSAodmFuaWxsYSknICcKIAllY2hvIHZhbmlsbGEgPmV4cGVjdCAmJgogCWdpdCAtLWxpdGVyYWwtcGF0aHNwZWNzIGxvZyAtLWZvcm1hdD0lcyAtLSBmb28gPmFjdHVhbCAmJgogCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnbm8tZ2xvYiBvcHRpb24gbWF0Y2hlcyBsaXRlcmFsbHkgKHZhbmlsbGEpJyAnCisJZWNobyB2YW5pbGxhID5leHBlY3QgJiYKKwlnaXQgbG9nIC0tZm9ybWF0PSVzIC0tICI6KGxpdGVyYWwpZm9vIiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICduby1nbG9iIG9wdGlvbiBtYXRjaGVzIGxpdGVyYWxseSAoc3RhciknICcKIAllY2hvIHN0YXIgPmV4cGVjdCAmJgogCWdpdCAtLWxpdGVyYWwtcGF0aHNwZWNzIGxvZyAtLWZvcm1hdD0lcyAtLSAiZioiID5hY3R1YWwgJiYKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ25vLWdsb2Igb3B0aW9uIG1hdGNoZXMgbGl0ZXJhbGx5IChzdGFyKScgJworCWVjaG8gc3RhciA+ZXhwZWN0ICYmCisJZ2l0IGxvZyAtLWZvcm1hdD0lcyAtLSAiOihsaXRlcmFsKWYqIiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICduby1nbG9iIG9wdGlvbiBtYXRjaGVzIGxpdGVyYWxseSAoYnJhY2tldCknICcKIAllY2hvIGJyYWNrZXQgPmV4cGVjdCAmJgogCWdpdCAtLWxpdGVyYWwtcGF0aHNwZWNzIGxvZyAtLWZvcm1hdD0lcyAtLSAiZltvXVtvXSIgPmFjdHVhbCAmJgogCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnbm8tZ2xvYiBvcHRpb24gbWF0Y2hlcyBsaXRlcmFsbHkgKGJyYWNrZXQpJyAnCisJZWNobyBicmFja2V0ID5leHBlY3QgJiYKKwlnaXQgbG9nIC0tZm9ybWF0PSVzIC0tICI6KGxpdGVyYWwpZltvXVtvXSIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbm8tZ2xvYiBvcHRpb24gZGlzYWJsZXMgOihsaXRlcmFsKScgJworCTogPmV4cGVjdCAmJgorCWdpdCAtLWxpdGVyYWwtcGF0aHNwZWNzIGxvZyAtLWZvcm1hdD0lcyAtLSAiOihsaXRlcmFsKWZvbyIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbm8tZ2xvYiBlbnZpcm9ubWVudCB2YXJpYWJsZSB3b3JrcycgJwogCWVjaG8gc3RhciA+ZXhwZWN0ICYmCiAJR0lUX0xJVEVSQUxfUEFUSFNQRUNTPTEgZ2l0IGxvZyAtLWZvcm1hdD0lcyAtLSAiZioiID5hY3R1YWwgJiYKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIHRha2VzIGdsb2JhbCBwYXRoc3BlYyBmbGFncycgJworCWdpdCAtLWxpdGVyYWwtcGF0aHNwZWNzIGJsYW1lIC0tIGZvbyAmJgorCWdpdCAtLWljYXNlLXBhdGhzcGVjcyAgIGJsYW1lIC0tIGZvbyAmJgorCWdpdCAtLWdsb2ItcGF0aHNwZWNzICAgIGJsYW1lIC0tIGZvbyAmJgorCWdpdCAtLW5vZ2xvYi1wYXRoc3BlY3MgIGJsYW1lIC0tIGZvbworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCB4eHgvYmFyJyAnCisJbWtkaXIgeHh4ICYmCisJdGVzdF9jb21taXQgeHh4IHh4eC9iYXIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnKiovIHdvcmtzIHdpdGggOihnbG9iKScgJworCWNhdCA+ZXhwZWN0IDw8LVxFT0YgJiYKKwl4eHgKKwl1bnJlbGF0ZWQKKwlFT0YKKwlnaXQgbG9nIC0tZm9ybWF0PSVzIC0tICI6KGdsb2IpKiovYmFyIiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICcqKi8gZG9lcyBub3Qgd29yayB3aXRoIC0tbm9nbG9iLXBhdGhzcGVjcycgJworCTogPmV4cGVjdCAmJgorCWdpdCAtLW5vZ2xvYi1wYXRoc3BlY3MgbG9nIC0tZm9ybWF0PSVzIC0tICIqKi9iYXIiID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyoqLyB3b3JrcyB3aXRoIDooZ2xvYikgYW5kIC0tbm9nbG9iLXBhdGhzcGVjcycgJworCWNhdCA+ZXhwZWN0IDw8LVxFT0YgJiYKKwl4eHgKKwl1bnJlbGF0ZWQKKwlFT0YKKwlnaXQgLS1ub2dsb2ItcGF0aHNwZWNzIGxvZyAtLWZvcm1hdD0lcyAtLSAiOihnbG9iKSoqL2JhciIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnKiovIHdvcmtzIHdpdGggLS1nbG9iLXBhdGhzcGVjcycgJworCWNhdCA+ZXhwZWN0IDw8LVxFT0YgJiYKKwl4eHgKKwl1bnJlbGF0ZWQKKwlFT0YKKwlnaXQgLS1nbG9iLXBhdGhzcGVjcyBsb2cgLS1mb3JtYXQ9JXMgLS0gIioqL2JhciIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnKiovIGRvZXMgbm90IHdvcmsgd2l0aCA6KGxpdGVyYWwpIGFuZCAtLWdsb2ItcGF0aHNwZWNzJyAnCisJOiA+ZXhwZWN0ICYmCisJZ2l0IC0tZ2xvYi1wYXRoc3BlY3MgbG9nIC0tZm9ybWF0PSVzIC0tICI6KGxpdGVyYWwpKiovYmFyIiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDYxMzEtcGF0aHNwZWMtaWNhc2Uuc2ggYi90L3Q2MTMxLXBhdGhzcGVjLWljYXNlLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3YzdmZjUKLS0tIC9kZXYvbnVsbAorKysgYi90L3Q2MTMxLXBhdGhzcGVjLWljYXNlLnNoCkBAIC0wLDAgKzEsMTA5IEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0ndGVzdCBjYXNlIGluc2Vuc2l0aXZlIHBhdGhzcGVjIGxpbWl0aW5nJworLiAuL3Rlc3QtbGliLnNoCisKK2lmIHRlc3RfaGF2ZV9wcmVyZXEgQ0FTRV9JTlNFTlNJVElWRV9GUwordGhlbgorCXNraXBfYWxsPSdza2lwcGluZyBjYXNlIHNlbnNpdGl2ZSB0ZXN0cyAtIGNhc2UgaW5zZW5zaXRpdmUgZmlsZSBzeXN0ZW0nCisJdGVzdF9kb25lCitmaQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjcmVhdGUgY29tbWl0cyB3aXRoIGdsb2IgY2hhcmFjdGVycycgJworCXRlc3RfY29tbWl0IGJhciBiYXIgJiYKKwl0ZXN0X2NvbW1pdCBiQXIgYkFyICYmCisJdGVzdF9jb21taXQgQkFSIEJBUiAmJgorCW1rZGlyIGZvbyAmJgorCXRlc3RfY29tbWl0IGZvby9iYXIgZm9vL2JhciAmJgorCXRlc3RfY29tbWl0IGZvby9iQXIgZm9vL2JBciAmJgorCXRlc3RfY29tbWl0IGZvby9CQVIgZm9vL0JBUiAmJgorCW1rZGlyIGZPbyAmJgorCXRlc3RfY29tbWl0IGZPby9iYXIgZk9vL2JhciAmJgorCXRlc3RfY29tbWl0IGZPby9iQXIgZk9vL2JBciAmJgorCXRlc3RfY29tbWl0IGZPby9CQVIgZk9vL0JBUiAmJgorCW1rZGlyIEZPTyAmJgorCXRlc3RfY29tbWl0IEZPTy9iYXIgRk9PL2JhciAmJgorCXRlc3RfY29tbWl0IEZPTy9iQXIgRk9PL2JBciAmJgorCXRlc3RfY29tbWl0IEZPTy9CQVIgRk9PL0JBUgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd0cmVlX2VudHJ5X2ludGVyZXN0aW5nIG1hdGNoZXMgYmFyJyAnCisJZWNobyBiYXIgPmV4cGVjdCAmJgorCWdpdCBsb2cgLS1mb3JtYXQ9JXMgLS0gImJhciIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndHJlZV9lbnRyeV9pbnRlcmVzdGluZyBtYXRjaGVzIDooaWNhc2UpYmFyJyAnCisJY2F0IDw8LUVPRiA+ZXhwZWN0ICYmCisJQkFSCisJYkFyCisJYmFyCisJRU9GCisJZ2l0IGxvZyAtLWZvcm1hdD0lcyAtLSAiOihpY2FzZSliYXIiID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3RyZWVfZW50cnlfaW50ZXJlc3RpbmcgbWF0Y2hlcyA6KGljYXNlKWJhciB3aXRoIHByZWZpeCcgJworCWNhdCA8PC1FT0YgPmV4cGVjdCAmJgorCWZPby9CQVIKKwlmT28vYkFyCisJZk9vL2JhcgorCUVPRgorCSggY2QgZk9vICYmIGdpdCBsb2cgLS1mb3JtYXQ9JXMgLS0gIjooaWNhc2UpYmFyIiApID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3RyZWVfZW50cnlfaW50ZXJlc3RpbmcgbWF0Y2hlcyA6KGljYXNlKWJhciB3aXRoIGVtcHR5IHByZWZpeCcgJworCWNhdCA8PC1FT0YgPmV4cGVjdCAmJgorCUZPTy9CQVIKKwlGT08vYkFyCisJRk9PL2JhcgorCWZPby9CQVIKKwlmT28vYkFyCisJZk9vL2JhcgorCWZvby9CQVIKKwlmb28vYkFyCisJZm9vL2JhcgorCUVPRgorCSggY2QgZk9vICYmIGdpdCBsb2cgLS1mb3JtYXQ9JXMgLS0gIjooaWNhc2UpLi4vZm9vL2JhciIgKSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtYXRjaF9wYXRoc3BlY19kZXB0aCBtYXRjaGVzIDooaWNhc2UpYmFyJyAnCisJY2F0IDw8LUVPRiA+ZXhwZWN0ICYmCisJQkFSCisJYkFyCisJYmFyCisJRU9GCisJZ2l0IGxzLWZpbGVzICI6KGljYXNlKWJhciIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbWF0Y2hfcGF0aHNwZWNfZGVwdGggbWF0Y2hlcyA6KGljYXNlKWJhciB3aXRoIHByZWZpeCcgJworCWNhdCA8PC1FT0YgPmV4cGVjdCAmJgorCWZPby9CQVIKKwlmT28vYkFyCisJZk9vL2JhcgorCUVPRgorCSggY2QgZk9vICYmIGdpdCBscy1maWxlcyAtLWZ1bGwtbmFtZSAiOihpY2FzZSliYXIiICkgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbWF0Y2hfcGF0aHNwZWNfZGVwdGggbWF0Y2hlcyA6KGljYXNlKWJhciB3aXRoIGVtcHR5IHByZWZpeCcgJworCWNhdCA8PC1FT0YgPmV4cGVjdCAmJgorCWJhcgorCWZPby9CQVIKKwlmT28vYkFyCisJZk9vL2JhcgorCUVPRgorCSggY2QgZk9vICYmIGdpdCBscy1maWxlcyAtLWZ1bGwtbmFtZSAiOihpY2FzZSliYXIiIC4uL2JhciApID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgZGlmZiIgY2FuIHRha2UgbWFnaWMgOihpY2FzZSkgcGF0aHNwZWMnICcKKwllY2hvIEZPTy9CQVIgPmV4cGVjdCAmJgorCWdpdCBkaWZmIC0tbmFtZS1vbmx5IEhFQUReIEhFQUQgLS0gIjooaWNhc2UpZm9vL2JhciIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q2MTMyLXBhdGhzcGVjLWV4Y2x1ZGUuc2ggYi90L3Q2MTMyLXBhdGhzcGVjLWV4Y2x1ZGUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjIwNDliZQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDYxMzItcGF0aHNwZWMtZXhjbHVkZS5zaApAQCAtMCwwICsxLDE4NCBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249J3Rlc3QgY2FzZSBleGNsdWRlIHBhdGhzcGVjJworCisuIC4vdGVzdC1saWIuc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAnICcKKwlmb3IgcCBpbiBmaWxlIHN1Yi9maWxlIHN1Yi9zdWIvZmlsZSBzdWIvZmlsZTIgc3ViL3N1Yi9zdWIvZmlsZSBzdWIyL2ZpbGU7IGRvCisJCWlmIGVjaG8gJHAgfCBncmVwIC87IHRoZW4KKwkJCW1rZGlyIC1wIGBkaXJuYW1lICRwYAorCQlmaSAmJgorCQk6ID4kcCAmJgorCQlnaXQgYWRkICRwICYmCisJCWdpdCBjb21taXQgLW0gJHAKKwlkb25lICYmCisJZ2l0IGxvZyAtLW9uZWxpbmUgLS1mb3JtYXQ9JXMgPmFjdHVhbCAmJgorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCitzdWIyL2ZpbGUKK3N1Yi9zdWIvc3ViL2ZpbGUKK3N1Yi9maWxlMgorc3ViL3N1Yi9maWxlCitzdWIvZmlsZQorZmlsZQorRU9GCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdleGNsdWRlIG9ubHkgc2hvdWxkIGVycm9yIG91dCcgJworCXRlc3RfbXVzdF9mYWlsIGdpdCBsb2cgLS1vbmVsaW5lIC0tZm9ybWF0PSVzIC0tICI6KGV4Y2x1ZGUpc3ViIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd0X2VfaSgpIGV4Y2x1ZGUgc3ViJyAnCisJZ2l0IGxvZyAtLW9uZWxpbmUgLS1mb3JtYXQ9JXMgLS0gLiAiOihleGNsdWRlKXN1YiIgPmFjdHVhbAorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCitzdWIyL2ZpbGUKK2ZpbGUKK0VPRgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndF9lX2koKSBleGNsdWRlIHN1Yi9zdWIvZmlsZScgJworCWdpdCBsb2cgLS1vbmVsaW5lIC0tZm9ybWF0PSVzIC0tIC4gIjooZXhjbHVkZSlzdWIvc3ViL2ZpbGUiID5hY3R1YWwKKwljYXQgPDxFT0YgPmV4cGVjdCAmJgorc3ViMi9maWxlCitzdWIvc3ViL3N1Yi9maWxlCitzdWIvZmlsZTIKK3N1Yi9maWxlCitmaWxlCitFT0YKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3RfZV9pKCkgZXhjbHVkZSBzdWIgdXNpbmcgbW5lbW9uaWMnICcKKwlnaXQgbG9nIC0tb25lbGluZSAtLWZvcm1hdD0lcyAtLSAuICI6IXN1YiIgPmFjdHVhbAorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCitzdWIyL2ZpbGUKK2ZpbGUKK0VPRgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndF9lX2koKSBleGNsdWRlIDooaWNhc2UpU1VCJyAnCisJZ2l0IGxvZyAtLW9uZWxpbmUgLS1mb3JtYXQ9JXMgLS0gLiAiOihleGNsdWRlLGljYXNlKVNVQiIgPmFjdHVhbAorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCitzdWIyL2ZpbGUKK2ZpbGUKK0VPRgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndF9lX2koKSBleGNsdWRlIHN1YjIgZnJvbSBzdWInICcKKwkoCisJY2Qgc3ViICYmCisJZ2l0IGxvZyAtLW9uZWxpbmUgLS1mb3JtYXQ9JXMgLS0gOi8gIjovIXN1YjIiID5hY3R1YWwKKwljYXQgPDxFT0YgPmV4cGVjdCAmJgorc3ViL3N1Yi9zdWIvZmlsZQorc3ViL2ZpbGUyCitzdWIvc3ViL2ZpbGUKK3N1Yi9maWxlCitmaWxlCitFT0YKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd0X2VfaSgpIGV4Y2x1ZGUgc3ViLypmaWxlJyAnCisJZ2l0IGxvZyAtLW9uZWxpbmUgLS1mb3JtYXQ9JXMgLS0gLiAiOihleGNsdWRlKXN1Yi8qZmlsZSIgPmFjdHVhbAorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCitzdWIyL2ZpbGUKK3N1Yi9maWxlMgorZmlsZQorRU9GCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd0X2VfaSgpIGV4Y2x1ZGUgOihnbG9iKXN1Yi8qL2ZpbGUnICcKKwlnaXQgbG9nIC0tb25lbGluZSAtLWZvcm1hdD0lcyAtLSAuICI6KGV4Y2x1ZGUsZ2xvYilzdWIvKi9maWxlIiA+YWN0dWFsCisJY2F0IDw8RU9GID5leHBlY3QgJiYKK3N1YjIvZmlsZQorc3ViL3N1Yi9zdWIvZmlsZQorc3ViL2ZpbGUyCitzdWIvZmlsZQorZmlsZQorRU9GCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtX3BfZCgpIGV4Y2x1ZGUgc3ViJyAnCisJZ2l0IGxzLWZpbGVzIC0tIC4gIjooZXhjbHVkZSlzdWIiID5hY3R1YWwKKwljYXQgPDxFT0YgPmV4cGVjdCAmJgorZmlsZQorc3ViMi9maWxlCitFT0YKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21fcF9kKCkgZXhjbHVkZSBzdWIvc3ViL2ZpbGUnICcKKwlnaXQgbHMtZmlsZXMgLS0gLiAiOihleGNsdWRlKXN1Yi9zdWIvZmlsZSIgPmFjdHVhbAorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCitmaWxlCitzdWIvZmlsZQorc3ViL2ZpbGUyCitzdWIvc3ViL3N1Yi9maWxlCitzdWIyL2ZpbGUKK0VPRgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbV9wX2QoKSBleGNsdWRlIHN1YiB1c2luZyBtbmVtb25pYycgJworCWdpdCBscy1maWxlcyAtLSAuICI6IXN1YiIgPmFjdHVhbAorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCitmaWxlCitzdWIyL2ZpbGUKK0VPRgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbV9wX2QoKSBleGNsdWRlIDooaWNhc2UpU1VCJyAnCisJZ2l0IGxzLWZpbGVzIC0tIC4gIjooZXhjbHVkZSxpY2FzZSlTVUIiID5hY3R1YWwKKwljYXQgPDxFT0YgPmV4cGVjdCAmJgorZmlsZQorc3ViMi9maWxlCitFT0YKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21fcF9kKCkgZXhjbHVkZSBzdWIyIGZyb20gc3ViJyAnCisJKAorCWNkIHN1YiAmJgorCWdpdCBscy1maWxlcyAtLSA6LyAiOi8hc3ViMiIgPmFjdHVhbAorCWNhdCA8PEVPRiA+ZXhwZWN0ICYmCisuLi9maWxlCitmaWxlCitmaWxlMgorc3ViL2ZpbGUKK3N1Yi9zdWIvZmlsZQorRU9GCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorCSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbV9wX2QoKSBleGNsdWRlIHN1Yi8qZmlsZScgJworCWdpdCBscy1maWxlcyAtLSAuICI6KGV4Y2x1ZGUpc3ViLypmaWxlIiA+YWN0dWFsCisJY2F0IDw8RU9GID5leHBlY3QgJiYKK2ZpbGUKK3N1Yi9maWxlMgorc3ViMi9maWxlCitFT0YKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21fcF9kKCkgZXhjbHVkZSA6KGdsb2Ipc3ViLyovZmlsZScgJworCWdpdCBscy1maWxlcyAtLSAuICI6KGV4Y2x1ZGUsZ2xvYilzdWIvKi9maWxlIiA+YWN0dWFsCisJY2F0IDw8RU9GID5leHBlY3QgJiYKK2ZpbGUKK3N1Yi9maWxlCitzdWIvZmlsZTIKK3N1Yi9zdWIvc3ViL2ZpbGUKK3N1YjIvZmlsZQorRU9GCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDYzMDAtZm9yLWVhY2gtcmVmLnNoIGIvdC90NjMwMC1mb3ItZWFjaC1yZWYuc2gKaW5kZXggNzUyZjVjYi4uYmRhMzU0YyAxMDA3NTUKLS0tIGEvdC90NjMwMC1mb3ItZWFjaC1yZWYuc2gKKysrIGIvdC90NjMwMC1mb3ItZWFjaC1yZWYuc2gKQEAgLTE4LDE2ICsxOCwxMyBAQAogICAgIGV4cG9ydCBHSVRfQ09NTUlUVEVSX0RBVEUgR0lUX0FVVEhPUl9EQVRFCiB9CiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ0NyZWF0ZSBzYW1wbGUgY29tbWl0IHdpdGgga25vd24gdGltZXN0YW1wJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIHNldHVwICcKIAlzZXRkYXRlX2FuZF9pbmNyZW1lbnQgJiYKIAllY2hvICJVc2luZyAkZGF0ZXN0YW1wIiA+IG9uZSAmJgogCWdpdCBhZGQgb25lICYmCiAJZ2l0IGNvbW1pdCAtbSAiSW5pdGlhbCIgJiYKIAlzZXRkYXRlX2FuZF9pbmNyZW1lbnQgJiYKLQlnaXQgdGFnIC1hIC1tICJUYWdnaW5nIGF0ICRkYXRlc3RhbXAiIHRlc3R0YWcKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnQ3JlYXRlIHVwc3RyZWFtIGNvbmZpZycgJworCWdpdCB0YWcgLWEgLW0gIlRhZ2dpbmcgYXQgJGRhdGVzdGFtcCIgdGVzdHRhZyAmJgogCWdpdCB1cGRhdGUtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyIG1hc3RlciAmJgogCWdpdCByZW1vdGUgYWRkIG9yaWdpbiBub3doZXJlICYmCiAJZ2l0IGNvbmZpZyBicmFuY2gubWFzdGVyLnJlbW90ZSBvcmlnaW4gJiYKQEAgLTUyLDEyICs0OSwxNCBAQAogdGVzdF9hdG9tIGhlYWQgdXBzdHJlYW0gcmVmcy9yZW1vdGVzL29yaWdpbi9tYXN0ZXIKIHRlc3RfYXRvbSBoZWFkIG9iamVjdHR5cGUgY29tbWl0CiB0ZXN0X2F0b20gaGVhZCBvYmplY3RzaXplIDE3MQotdGVzdF9hdG9tIGhlYWQgb2JqZWN0bmFtZSA2N2EzNmYxMDcyMjg0NmU4OTFmYmFkYTFiYTQ4ZWQwMzVkZTc1NTgxCi10ZXN0X2F0b20gaGVhZCB0cmVlIDBlNTFjMDBmY2I5M2RmZmM3NTU1NDZmMjc1OTNkNTExZTFiZGI0NmYKK3Rlc3RfYXRvbSBoZWFkIG9iamVjdG5hbWUgJChnaXQgcmV2LXBhcnNlIHJlZnMvaGVhZHMvbWFzdGVyKQordGVzdF9hdG9tIGhlYWQgdHJlZSAkKGdpdCByZXYtcGFyc2UgcmVmcy9oZWFkcy9tYXN0ZXJee3RyZWV9KQogdGVzdF9hdG9tIGhlYWQgcGFyZW50ICcnCiB0ZXN0X2F0b20gaGVhZCBudW1wYXJlbnQgMAogdGVzdF9hdG9tIGhlYWQgb2JqZWN0ICcnCiB0ZXN0X2F0b20gaGVhZCB0eXBlICcnCit0ZXN0X2F0b20gaGVhZCAnKm9iamVjdG5hbWUnICcnCit0ZXN0X2F0b20gaGVhZCAnKm9iamVjdHR5cGUnICcnCiB0ZXN0X2F0b20gaGVhZCBhdXRob3IgJ0EgVSBUaG9yIDxhdXRob3JAZXhhbXBsZS5jb20+IDExNTE5Mzk5MjQgKzAyMDAnCiB0ZXN0X2F0b20gaGVhZCBhdXRob3JuYW1lICdBIFUgVGhvcicKIHRlc3RfYXRvbSBoZWFkIGF1dGhvcmVtYWlsICc8YXV0aG9yQGV4YW1wbGUuY29tPicKQEAgLTgwLDE3ICs3OSwyMCBAQAogdGVzdF9hdG9tIGhlYWQgY29udGVudHM6c2lnbmF0dXJlICcnCiB0ZXN0X2F0b20gaGVhZCBjb250ZW50cyAnSW5pdGlhbAogJwordGVzdF9hdG9tIGhlYWQgSEVBRCAnKicKIAogdGVzdF9hdG9tIHRhZyByZWZuYW1lIHJlZnMvdGFncy90ZXN0dGFnCiB0ZXN0X2F0b20gdGFnIHVwc3RyZWFtICcnCiB0ZXN0X2F0b20gdGFnIG9iamVjdHR5cGUgdGFnCiB0ZXN0X2F0b20gdGFnIG9iamVjdHNpemUgMTU0Ci10ZXN0X2F0b20gdGFnIG9iamVjdG5hbWUgOThiNDZiMWQzNmU1YjA3OTA5ZGUxYjM4ODYyMjRlM2U4MWU4NzMyMgordGVzdF9hdG9tIHRhZyBvYmplY3RuYW1lICQoZ2l0IHJldi1wYXJzZSByZWZzL3RhZ3MvdGVzdHRhZykKIHRlc3RfYXRvbSB0YWcgdHJlZSAnJwogdGVzdF9hdG9tIHRhZyBwYXJlbnQgJycKIHRlc3RfYXRvbSB0YWcgbnVtcGFyZW50ICcnCi10ZXN0X2F0b20gdGFnIG9iamVjdCAnNjdhMzZmMTA3MjI4NDZlODkxZmJhZGExYmE0OGVkMDM1ZGU3NTU4MScKK3Rlc3RfYXRvbSB0YWcgb2JqZWN0ICQoZ2l0IHJldi1wYXJzZSByZWZzL3RhZ3MvdGVzdHRhZ14wKQogdGVzdF9hdG9tIHRhZyB0eXBlICdjb21taXQnCit0ZXN0X2F0b20gdGFnICcqb2JqZWN0bmFtZScgJzY3YTM2ZjEwNzIyODQ2ZTg5MWZiYWRhMWJhNDhlZDAzNWRlNzU1ODEnCit0ZXN0X2F0b20gdGFnICcqb2JqZWN0dHlwZScgJ2NvbW1pdCcKIHRlc3RfYXRvbSB0YWcgYXV0aG9yICcnCiB0ZXN0X2F0b20gdGFnIGF1dGhvcm5hbWUgJycKIHRlc3RfYXRvbSB0YWcgYXV0aG9yZW1haWwgJycKQEAgLTExMyw2ICsxMTUsNyBAQAogdGVzdF9hdG9tIHRhZyBjb250ZW50czpzaWduYXR1cmUgJycKIHRlc3RfYXRvbSB0YWcgY29udGVudHMgJ1RhZ2dpbmcgYXQgMTE1MTkzOTkyNwogJwordGVzdF9hdG9tIHRhZyBIRUFEICcgJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdDaGVjayBpbnZhbGlkIGF0b21zIG5hbWVzIGFyZSBlcnJvcnMnICcKIAl0ZXN0X211c3RfZmFpbCBnaXQgZm9yLWVhY2gtcmVmIC0tZm9ybWF0PSIlKElOVkFMSUQpIiByZWZzL2hlYWRzCkBAIC0zMDQsOCArMzA3LDM1IEBACiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGZvciB1cHN0cmVhbTp0cmFja1tzaG9ydF0nICcKKwl0ZXN0X2NvbW1pdCB0d28KKycKKwogY2F0ID5leHBlY3RlZCA8PEVPRgotNjdhMzZmMQorW2FoZWFkIDFdCitFT0YKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnQ2hlY2sgdXBzdHJlYW06dHJhY2sgZm9ybWF0JyAnCisJZ2l0IGZvci1lYWNoLXJlZiAtLWZvcm1hdD0iJSh1cHN0cmVhbTp0cmFjaykiIHJlZnMvaGVhZHMgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCitjYXQgPmV4cGVjdGVkIDw8RU9GCis+CitFT0YKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnQ2hlY2sgdXBzdHJlYW06dHJhY2tzaG9ydCBmb3JtYXQnICcKKwlnaXQgZm9yLWVhY2gtcmVmIC0tZm9ybWF0PSIlKHVwc3RyZWFtOnRyYWNrc2hvcnQpIiByZWZzL2hlYWRzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnQ2hlY2sgdGhhdCA6dHJhY2tbc2hvcnRdIGNhbm5vdCBiZSB1c2VkIHdpdGggb3RoZXIgYXRvbXMnICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgZm9yLWVhY2gtcmVmIC0tZm9ybWF0PSIlKHJlZm5hbWU6dHJhY2spIiAyPi9kZXYvbnVsbCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCBmb3ItZWFjaC1yZWYgLS1mb3JtYXQ9IiUocmVmbmFtZTp0cmFja3Nob3J0KSIgMj4vZGV2L251bGwKKycKKworY2F0ID5leHBlY3RlZCA8PEVPRgorJChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgSEVBRCkKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdDaGVjayBzaG9ydCBvYmplY3RuYW1lIGZvcm1hdCcgJwpAQCAtMzE3LDYgKzM0NywyMyBAQAogCXRlc3RfbXVzdF9mYWlsIGdpdCBmb3ItZWFjaC1yZWYgLS1mb3JtYXQ9IiUocmVmbmFtZTpJTlZBTElEKSIKICcKIAorZ2V0X2NvbG9yICgpCit7CisJZ2l0IGNvbmZpZyAtLWdldC1jb2xvciBuby5zdWNoLnNsb3QgIiQxIgorfQorCitjYXQgPmV4cGVjdGVkIDw8RU9GCiskKGdpdCByZXYtcGFyc2UgLS1zaG9ydCByZWZzL2hlYWRzL21hc3RlcikgJChnZXRfY29sb3IgZ3JlZW4pbWFzdGVyJChnZXRfY29sb3IgcmVzZXQpCiskKGdpdCByZXYtcGFyc2UgLS1zaG9ydCByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlcikgJChnZXRfY29sb3IgZ3JlZW4pb3JpZ2luL21hc3RlciQoZ2V0X2NvbG9yIHJlc2V0KQorJChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgcmVmcy90YWdzL3Rlc3R0YWcpICQoZ2V0X2NvbG9yIGdyZWVuKXRlc3R0YWckKGdldF9jb2xvciByZXNldCkKKyQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IHJlZnMvdGFncy90d28pICQoZ2V0X2NvbG9yIGdyZWVuKXR3byQoZ2V0X2NvbG9yIHJlc2V0KQorRU9GCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ0NoZWNrICUoY29sb3I6Li4uKSAnICcKKwlnaXQgZm9yLWVhY2gtcmVmIC0tZm9ybWF0PSIlKG9iamVjdG5hbWU6c2hvcnQpICUoY29sb3I6Z3JlZW4pJShyZWZuYW1lOnNob3J0KSIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCiBjYXQgPmV4cGVjdGVkIDw8XEVPRgogaGVhZHMvbWFzdGVyCiB0YWdzL21hc3RlcgpAQCAtNDU2LDkgKzUwMyw5IEBACiBib2R5IGNvbnRlbnRzCiAkc2lnIgogCi1jYXQgPmV4cGVjdGVkIDw8XEVPRgotNDA4ZmU3NmQwMmE3ODVhMDA2YzJlOWM2NjliN2JlNTU4OWVkZTk2ZCA8Y29tbWl0dGVyQGV4YW1wbGUuY29tPiByZWZzL3RhZ3MvbWFzdGVyCi05MGI1ZWJlZGU0ODk5ZWRhNjQ4OTNiYzJhNGM4ZjFkNmZiNmRmYzQwIDxjb21taXR0ZXJAZXhhbXBsZS5jb20+IHJlZnMvdGFncy9ib2dvCitjYXQgPmV4cGVjdGVkIDw8RU9GCiskKGdpdCByZXYtcGFyc2UgcmVmcy90YWdzL21hc3RlcikgPGNvbW1pdHRlckBleGFtcGxlLmNvbT4gcmVmcy90YWdzL21hc3RlcgorJChnaXQgcmV2LXBhcnNlIHJlZnMvdGFncy9ib2dvKSA8Y29tbWl0dGVyQGV4YW1wbGUuY29tPiByZWZzL3RhZ3MvYm9nbwogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1ZlcmlmeSBzb3J0IHdpdGggbXVsdGlwbGUga2V5cycgJwpkaWZmIC0tZ2l0IGEvdC90NjUwMC1nYy5zaCBiL3QvdDY1MDAtZ2Muc2gKaW5kZXggYjFhNjM2NS4uNjMxOTRkOCAxMDA3NTUKLS0tIGEvdC90NjUwMC1nYy5zaAorKysgYi90L3Q2NTAwLWdjLnNoCkBAIC05LDYgKzksMTEgQEAKIAlnaXQgZ2MKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2MgZG9lcyBub3QgbGVhdmUgYmVoaW5kIHBpZCBmaWxlJyAnCisJZ2l0IGdjICYmCisJdGVzdF9wYXRoX2lzX21pc3NpbmcgLmdpdC9nYy5waWQKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2MgLS1nb2JibGVkZWdvb2snICcKIAl0ZXN0X2V4cGVjdF9jb2RlIDEyOSBnaXQgZ2MgLS1ub25zZW5zZSAyPmVyciAmJgogCXRlc3RfaTE4bmdyZXAgIltVdV1zYWdlOiBnaXQgZ2MiIGVycgpkaWZmIC0tZ2l0IGEvdC90NzAwMS1tdi5zaCBiL3QvdDcwMDEtbXYuc2gKaW5kZXggMTAxODE2ZS4uZTNjOGMyYyAxMDA3NTUKLS0tIGEvdC90NzAwMS1tdi5zaAorKysgYi90L3Q3MDAxLW12LnNoCkBAIC03MCw2ICs3MCwzNSBAQAogcm0gLWYgaWRvbnRleGlzdCB1bnRyYWNrZWQxIHVudHJhY2tlZDIgXAogICAgICBwYXRoMC9pZG9udGV4aXN0IHBhdGgwL3VudHJhY2tlZDEgcGF0aDAvdW50cmFja2VkMiBcCiAgICAgIC5naXQvaW5kZXgubG9jaworcm1kaXIgcGF0aDEKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBcCisgICAgJ21vdmluZyB0byBhYnNlbnQgdGFyZ2V0IHdpdGggdHJhaWxpbmcgc2xhc2gnIFwKKyAgICAndGVzdF9tdXN0X2ZhaWwgZ2l0IG12IHBhdGgwL0NPUFlJTkcgbm8tc3VjaC1kaXIvICYmCisgICAgIHRlc3RfbXVzdF9mYWlsIGdpdCBtdiBwYXRoMC9DT1BZSU5HIG5vLXN1Y2gtZGlyLy8gJiYKKyAgICAgZ2l0IG12IHBhdGgwLyBuby1zdWNoLWRpci8gJiYKKyAgICAgdGVzdF9wYXRoX2lzX2RpciBuby1zdWNoLWRpcicKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBcCisgICAgJ2NsZWFuIHVwJyBcCisgICAgJ2dpdCByZXNldCAtLWhhcmQnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgXAorICAgICdtb3ZpbmcgdG8gZXhpc3RpbmcgdW50cmFja2VkIHRhcmdldCB3aXRoIHRyYWlsaW5nIHNsYXNoJyBcCisgICAgJ21rZGlyIHBhdGgxICYmCisgICAgIGdpdCBtdiBwYXRoMC8gcGF0aDEvICYmCisgICAgIHRlc3RfcGF0aF9pc19kaXIgcGF0aDEvcGF0aDAvJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKKyAgICAnbW92aW5nIHRvIGV4aXN0aW5nIHRyYWNrZWQgdGFyZ2V0IHdpdGggdHJhaWxpbmcgc2xhc2gnIFwKKyAgICAnbWtkaXIgcGF0aDIgJiYKKyAgICAgPnBhdGgyL2ZpbGUgJiYgZ2l0IGFkZCBwYXRoMi9maWxlICYmCisgICAgIGdpdCBtdiBwYXRoMS9wYXRoMC8gcGF0aDIvICYmCisgICAgIHRlc3RfcGF0aF9pc19kaXIgcGF0aDIvcGF0aDAvJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKKyAgICAnY2xlYW4gdXAnIFwKKyAgICAnZ2l0IHJlc2V0IC0taGFyZCcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2FkZGluZyBhbm90aGVyIGZpbGUnIFwKQEAgLTI1OSw0ICsyODgsMTc5IEBACiAKIHJtIC1mIG1vdmVkIHN5bWxpbmsKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgc3VibW9kdWxlJyAnCisJZ2l0IGNvbW1pdCAtbSBpbml0aWFsICYmCisJZ2l0IHJlc2V0IC0taGFyZCAmJgorCWdpdCBzdWJtb2R1bGUgYWRkIC4vLiBzdWIgJiYKKwllY2hvIGNvbnRlbnQgPmZpbGUgJiYKKwlnaXQgYWRkIGZpbGUgJiYKKwlnaXQgY29tbWl0IC1tICJhZGRlZCBzdWIgYW5kIGZpbGUiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBtdiBjYW5ub3QgbW92ZSBhIHN1Ym1vZHVsZSBpbiBhIGZpbGUnICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgbXYgc3ViIGZpbGUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IG12IG1vdmVzIGEgc3VibW9kdWxlIHdpdGggYSAuZ2l0IGRpcmVjdG9yeSBhbmQgbm8gLmdpdG1vZHVsZXMnICcKKwllbnRyeT0iJChnaXQgbHMtZmlsZXMgLS1zdGFnZSBzdWIgfCBjdXQgLWYgMSkiICYmCisJZ2l0IHJtIC5naXRtb2R1bGVzICYmCisJKAorCQljZCBzdWIgJiYKKwkJcm0gLWYgLmdpdCAmJgorCQljcCAtYSAuLi8uZ2l0L21vZHVsZXMvc3ViIC5naXQgJiYKKwkJR0lUX1dPUktfVFJFRT0uIGdpdCBjb25maWcgLS11bnNldCBjb3JlLndvcmt0cmVlCisJKSAmJgorCW1rZGlyIG1vZCAmJgorCWdpdCBtdiBzdWIgbW9kL3N1YiAmJgorCSEgdGVzdCAtZSBzdWIgJiYKKwlbICIkZW50cnkiID0gIiQoZ2l0IGxzLWZpbGVzIC0tc3RhZ2UgbW9kL3N1YiB8IGN1dCAtZiAxKSIgXSAmJgorCSgKKwkJY2QgbW9kL3N1YiAmJgorCQlnaXQgc3RhdHVzCisJKSAmJgorCWdpdCB1cGRhdGUtaW5kZXggLS1yZWZyZXNoICYmCisJZ2l0IGRpZmYtZmlsZXMgLS1xdWlldAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbXYgbW92ZXMgYSBzdWJtb2R1bGUgd2l0aCBhIC5naXQgZGlyZWN0b3J5IGFuZCAuZ2l0bW9kdWxlcycgJworCXJtIC1yZiBtb2QgJiYKKwlnaXQgcmVzZXQgLS1oYXJkICYmCisJZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgJiYKKwllbnRyeT0iJChnaXQgbHMtZmlsZXMgLS1zdGFnZSBzdWIgfCBjdXQgLWYgMSkiICYmCisJKAorCQljZCBzdWIgJiYKKwkJcm0gLWYgLmdpdCAmJgorCQljcCAtYSAuLi8uZ2l0L21vZHVsZXMvc3ViIC5naXQgJiYKKwkJR0lUX1dPUktfVFJFRT0uIGdpdCBjb25maWcgLS11bnNldCBjb3JlLndvcmt0cmVlCisJKSAmJgorCW1rZGlyIG1vZCAmJgorCWdpdCBtdiBzdWIgbW9kL3N1YiAmJgorCSEgdGVzdCAtZSBzdWIgJiYKKwlbICIkZW50cnkiID0gIiQoZ2l0IGxzLWZpbGVzIC0tc3RhZ2UgbW9kL3N1YiB8IGN1dCAtZiAxKSIgXSAmJgorCSgKKwkJY2QgbW9kL3N1YiAmJgorCQlnaXQgc3RhdHVzCisJKSAmJgorCWVjaG8gbW9kL3N1YiA+ZXhwZWN0ZWQgJiYKKwlnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5zdWIucGF0aCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCisJZ2l0IHVwZGF0ZS1pbmRleCAtLXJlZnJlc2ggJiYKKwlnaXQgZGlmZi1maWxlcyAtLXF1aWV0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBtdiBtb3ZlcyBhIHN1Ym1vZHVsZSB3aXRoIGdpdGZpbGUnICcKKwlybSAtcmYgbW9kL3N1YiAmJgorCWdpdCByZXNldCAtLWhhcmQgJiYKKwlnaXQgc3VibW9kdWxlIHVwZGF0ZSAmJgorCWVudHJ5PSIkKGdpdCBscy1maWxlcyAtLXN0YWdlIHN1YiB8IGN1dCAtZiAxKSIgJiYKKwkoCisJCWNkIG1vZCAmJgorCQlnaXQgbXYgLi4vc3ViLyAuCisJKSAmJgorCSEgdGVzdCAtZSBzdWIgJiYKKwlbICIkZW50cnkiID0gIiQoZ2l0IGxzLWZpbGVzIC0tc3RhZ2UgbW9kL3N1YiB8IGN1dCAtZiAxKSIgXSAmJgorCSgKKwkJY2QgbW9kL3N1YiAmJgorCQlnaXQgc3RhdHVzCisJKSAmJgorCWVjaG8gbW9kL3N1YiA+ZXhwZWN0ZWQgJiYKKwlnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5zdWIucGF0aCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCisJZ2l0IHVwZGF0ZS1pbmRleCAtLXJlZnJlc2ggJiYKKwlnaXQgZGlmZi1maWxlcyAtLXF1aWV0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ212IGRvZXMgbm90IGNvbXBsYWluIHdoZW4gbm8gLmdpdG1vZHVsZXMgZmlsZSBpcyBmb3VuZCcgJworCXJtIC1yZiBtb2Qvc3ViICYmCisJZ2l0IHJlc2V0IC0taGFyZCAmJgorCWdpdCBzdWJtb2R1bGUgdXBkYXRlICYmCisJZ2l0IHJtIC5naXRtb2R1bGVzICYmCisJZW50cnk9IiQoZ2l0IGxzLWZpbGVzIC0tc3RhZ2Ugc3ViIHwgY3V0IC1mIDEpIiAmJgorCWdpdCBtdiBzdWIgbW9kL3N1YiAyPmFjdHVhbC5lcnIgJiYKKwkhIHRlc3QgLXMgYWN0dWFsLmVyciAmJgorCSEgdGVzdCAtZSBzdWIgJiYKKwlbICIkZW50cnkiID0gIiQoZ2l0IGxzLWZpbGVzIC0tc3RhZ2UgbW9kL3N1YiB8IGN1dCAtZiAxKSIgXSAmJgorCSgKKwkJY2QgbW9kL3N1YiAmJgorCQlnaXQgc3RhdHVzCisJKSAmJgorCWdpdCB1cGRhdGUtaW5kZXggLS1yZWZyZXNoICYmCisJZ2l0IGRpZmYtZmlsZXMgLS1xdWlldAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtdiB3aWxsIGVycm9yIG91dCBvbiBhIG1vZGlmaWVkIC5naXRtb2R1bGVzIGZpbGUgdW5sZXNzIHN0YWdlZCcgJworCXJtIC1yZiBtb2Qvc3ViICYmCisJZ2l0IHJlc2V0IC0taGFyZCAmJgorCWdpdCBzdWJtb2R1bGUgdXBkYXRlICYmCisJZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBmb28uYmFyIHRydWUgJiYKKwllbnRyeT0iJChnaXQgbHMtZmlsZXMgLS1zdGFnZSBzdWIgfCBjdXQgLWYgMSkiICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IG12IHN1YiBtb2Qvc3ViIDI+YWN0dWFsLmVyciAmJgorCXRlc3QgLXMgYWN0dWFsLmVyciAmJgorCXRlc3QgLWUgc3ViICYmCisJZ2l0IGRpZmYtZmlsZXMgLS1xdWlldCAtLSBzdWIgJiYKKwlnaXQgYWRkIC5naXRtb2R1bGVzICYmCisJZ2l0IG12IHN1YiBtb2Qvc3ViIDI+YWN0dWFsLmVyciAmJgorCSEgdGVzdCAtcyBhY3R1YWwuZXJyICYmCisJISB0ZXN0IC1lIHN1YiAmJgorCVsgIiRlbnRyeSIgPSAiJChnaXQgbHMtZmlsZXMgLS1zdGFnZSBtb2Qvc3ViIHwgY3V0IC1mIDEpIiBdICYmCisJKAorCQljZCBtb2Qvc3ViICYmCisJCWdpdCBzdGF0dXMKKwkpICYmCisJZ2l0IHVwZGF0ZS1pbmRleCAtLXJlZnJlc2ggJiYKKwlnaXQgZGlmZi1maWxlcyAtLXF1aWV0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ212IGlzc3VlcyBhIHdhcm5pbmcgd2hlbiBzZWN0aW9uIGlzIG5vdCBmb3VuZCBpbiAuZ2l0bW9kdWxlcycgJworCXJtIC1yZiBtb2Qvc3ViICYmCisJZ2l0IHJlc2V0IC0taGFyZCAmJgorCWdpdCBzdWJtb2R1bGUgdXBkYXRlICYmCisJZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyAtLXJlbW92ZS1zZWN0aW9uIHN1Ym1vZHVsZS5zdWIgJiYKKwlnaXQgYWRkIC5naXRtb2R1bGVzICYmCisJZW50cnk9IiQoZ2l0IGxzLWZpbGVzIC0tc3RhZ2Ugc3ViIHwgY3V0IC1mIDEpIiAmJgorCWVjaG8gIndhcm5pbmc6IENvdWxkIG5vdCBmaW5kIHNlY3Rpb24gaW4gLmdpdG1vZHVsZXMgd2hlcmUgcGF0aD1zdWIiID5leHBlY3QuZXJyICYmCisJZ2l0IG12IHN1YiBtb2Qvc3ViIDI+YWN0dWFsLmVyciAmJgorCXRlc3RfaTE4bmNtcCBleHBlY3QuZXJyIGFjdHVhbC5lcnIgJiYKKwkhIHRlc3QgLWUgc3ViICYmCisJWyAiJGVudHJ5IiA9ICIkKGdpdCBscy1maWxlcyAtLXN0YWdlIG1vZC9zdWIgfCBjdXQgLWYgMSkiIF0gJiYKKwkoCisJCWNkIG1vZC9zdWIgJiYKKwkJZ2l0IHN0YXR1cworCSkgJiYKKwlnaXQgdXBkYXRlLWluZGV4IC0tcmVmcmVzaCAmJgorCWdpdCBkaWZmLWZpbGVzIC0tcXVpZXQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbXYgLS1kcnktcnVuIGRvZXMgbm90IHRvdWNoIHRoZSBzdWJtb2R1bGUgb3IgLmdpdG1vZHVsZXMnICcKKwlybSAtcmYgbW9kL3N1YiAmJgorCWdpdCByZXNldCAtLWhhcmQgJiYKKwlnaXQgc3VibW9kdWxlIHVwZGF0ZSAmJgorCWdpdCBtdiAtbiBzdWIgbW9kL3N1YiAyPmFjdHVhbC5lcnIgJiYKKwl0ZXN0IC1mIHN1Yi8uZ2l0ICYmCisJZ2l0IGRpZmYtaW5kZXggLS1leGl0LWNvZGUgSEVBRCAmJgorCWdpdCB1cGRhdGUtaW5kZXggLS1yZWZyZXNoICYmCisJZ2l0IGRpZmYtZmlsZXMgLS1xdWlldCAtLSBzdWIgLmdpdG1vZHVsZXMKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2tpbmcgb3V0IGEgY29tbWl0IGJlZm9yZSBzdWJtb2R1bGUgbW92ZWQgbmVlZHMgbWFudWFsIHVwZGF0ZXMnICcKKwlnaXQgbXYgc3ViIHN1YjIgJiYKKwlnaXQgY29tbWl0IC1tICJtb3ZlZCBzdWIgdG8gc3ViMiIgJiYKKwlnaXQgY2hlY2tvdXQgLXEgSEVBRF4gMj5hY3R1YWwgJiYKKwllY2hvICJ3YXJuaW5nOiB1bmFibGUgdG8gcm1kaXIgc3ViMjogRGlyZWN0b3J5IG5vdCBlbXB0eSIgPmV4cGVjdGVkICYmCisJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbCAmJgorCWdpdCBzdGF0dXMgLXMgc3ViMiA+YWN0dWFsICYmCisJZWNobyAiPz8gc3ViMi8iID5leHBlY3RlZCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbCAmJgorCSEgdGVzdCAtZiBzdWIvLmdpdCAmJgorCXRlc3QgLWYgc3ViMi8uZ2l0ICYmCisJZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgJiYKKwl0ZXN0IC1mIHN1Yi8uZ2l0ICYmCisJcm0gLXJmIHN1YjIgJiYKKwlnaXQgZGlmZi1pbmRleCAtLWV4aXQtY29kZSBIRUFEICYmCisJZ2l0IHVwZGF0ZS1pbmRleCAtLXJlZnJlc2ggJiYKKwlnaXQgZGlmZi1maWxlcyAtLXF1aWV0IC0tIHN1YiAuZ2l0bW9kdWxlcyAmJgorCWdpdCBzdGF0dXMgLXMgc3ViMiA+YWN0dWFsICYmCisJISB0ZXN0IC1zIGFjdHVhbAorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDcwMDYtcGFnZXIuc2ggYi90L3Q3MDA2LXBhZ2VyLnNoCmluZGV4IGZmMjU5MDguLjdmZTMzNjcgMTAwNzU1Ci0tLSBhL3QvdDcwMDYtcGFnZXIuc2gKKysrIGIvdC90NzAwNi1wYWdlci5zaApAQCAtMzcsNiArMzcsMTggQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyBUVFkgJ0xFU1MgYW5kIExWIGVudnZhcnMgYXJlIHNldCBmb3IgcGFnaW5hdGlvbicgJworCSgKKwkJc2FuZV91bnNldCBMRVNTIExWICYmCisJCVBBR0VSPSJlbnYgPnBhZ2VyLWVudi5vdXQiICYmCisJCWV4cG9ydCBQQUdFUiAmJgorCisJCXRlc3RfdGVybWluYWwgZ2l0IGxvZworCSkgJiYKKwlncmVwIF5MRVNTPSBwYWdlci1lbnYub3V0ICYmCisJZ3JlcCBeTFY9IHBhZ2VyLWVudi5vdXQKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyBUVFkgJ3NvbWUgY29tbWFuZHMgZG8gbm90IHVzZSBhIHBhZ2VyJyAnCiAJcm0gLWYgcGFnaW5hdGVkLm91dCAmJgogCXRlc3RfdGVybWluYWwgZ2l0IHJldi1saXN0IEhFQUQgJiYKZGlmZiAtLWdpdCBhL3QvdDcwMDgtZ3JlcC1iaW5hcnkuc2ggYi90L3Q3MDA4LWdyZXAtYmluYXJ5LnNoCmluZGV4IDI2ZjgzMTkuLmIxNDY0MDYgMTAwNzU1Ci0tLSBhL3QvdDcwMDgtZ3JlcC1iaW5hcnkuc2gKKysrIGIvdC90NzAwOC1ncmVwLWJpbmFyeS5zaApAQCAtMTQ1LDQgKzE0NSwzNSBAQAogCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKICcKIAorY2F0ID5udWxfdG9fcV90ZXh0Y29udiA8PCdFT0YnCisjIS9iaW4vc2gKKyIkUEVSTF9QQVRIIiAtcGUgJ3kvXDAwMC9RLycgPCAiJDEiCitFT0YKK2NobW9kICt4IG51bF90b19xX3RleHRjb252CisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIHRleHRjb252IGZpbHRlcnMnICcKKwllY2hvIGEgZGlmZj1mb28gPi5naXRhdHRyaWJ1dGVzICYmCisJZ2l0IGNvbmZpZyBkaWZmLmZvby50ZXh0Y29udiAiXCIkKHB3ZClcIiIvbnVsX3RvX3FfdGV4dGNvbnYKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ3JlcCBkb2VzIG5vdCBob25vciB0ZXh0Y29udicgJworCXRlc3RfbXVzdF9mYWlsIGdpdCBncmVwIFFmaWxlCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dyZXAgLS10ZXh0Y29udiBob25vcnMgdGV4dGNvbnYnICcKKwllY2hvICJhOmJpbmFyeVFmaWxlIiA+ZXhwZWN0ICYmCisJZ2l0IGdyZXAgLS10ZXh0Y29udiBRZmlsZSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdncmVwIC0tbm8tdGV4dGNvbnYgZG9lcyBub3QgaG9ub3IgdGV4dGNvbnYnICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgZ3JlcCAtLW5vLXRleHRjb252IFFmaWxlCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dyZXAgLS10ZXh0Y29udiBibG9iIGhvbm9ycyB0ZXh0Y29udicgJworCWVjaG8gIkhFQUQ6YTpiaW5hcnlRZmlsZSIgPmV4cGVjdCAmJgorCWdpdCBncmVwIC0tdGV4dGNvbnYgUWZpbGUgSEVBRDphID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NzAwOS1maWx0ZXItYnJhbmNoLW51bGwtc2hhMS5zaCBiL3QvdDcwMDktZmlsdGVyLWJyYW5jaC1udWxsLXNoYTEuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTk5N2Y3YQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDcwMDktZmlsdGVyLWJyYW5jaC1udWxsLXNoYTEuc2gKQEAgLTAsMCArMSw0OSBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249J2ZpbHRlci1icmFuY2ggcmVtb3ZhbCBvZiB0cmVlcyB3aXRoIG51bGwgc2hhMScKKy4gLi90ZXN0LWxpYi5zaAorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cDogYmFzZSBjb21taXRzJyAnCisJdGVzdF9jb21taXQgb25lICYmCisJdGVzdF9jb21taXQgdHdvICYmCisJdGVzdF9jb21taXQgdGhyZWUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXA6IGEgY29tbWl0IHdpdGggYSBib2d1cyBudWxsIHNoYTEgaW4gdGhlIHRyZWUnICcKKwl7CisJCWdpdCBscy10cmVlIEhFQUQgJiYKKwkJcHJpbnRmICIxNjAwMDAgY29tbWl0ICRfejQwXFx0YnJva2VuXFxuIgorCX0gPmJyb2tlbi10cmVlCisJZWNobyAiYWRkIGJyb2tlbiBlbnRyeSIgPm1zZyAmJgorCisJdHJlZT0kKGdpdCBta3RyZWUgPGJyb2tlbi10cmVlKSAmJgorCXRlc3RfdGljayAmJgorCWNvbW1pdD0kKGdpdCBjb21taXQtdHJlZSAkdHJlZSAtcCBIRUFEIDxtc2cpICYmCisJZ2l0IHVwZGF0ZS1yZWYgSEVBRCAiJGNvbW1pdCIKKycKKworIyB3ZSBoYXZlIHRvIG1ha2Ugb25lIG1vcmUgY29tbWl0IG9uIHRvcCByZW1vdmluZyB0aGUgYnJva2VuCisjIGVudHJ5LCBzaW5jZSBvdGhlcndpc2Ugb3VyIGluZGV4IGRvZXMgbm90IG1hdGNoIEhFQUQgKGFuZCBmaWx0ZXItYnJhbmNoIHdpbGwKKyMgY29tcGxhaW4pLiBXZSBjb3VsZCBtYWtlIHRoZSBpbmRleCBtYXRjaCBIRUFELCBidXQgZG9pbmcgc28gd291bGQgaW52b2x2ZQorIyB3cml0aW5nIGEgbnVsbCBzaGExIGludG8gdGhlIGluZGV4LgordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXA6IGJyaW5nIEhFQUQgYW5kIGluZGV4IGluIHN5bmMnICcKKwl0ZXN0X3RpY2sgJiYKKwlnaXQgY29tbWl0IC1hIC1tICJiYWNrIHRvIG5vcm1hbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmlsdGVyIGNvbW1hbmRzIGFyZSBzdGlsbCBjaGVja2VkJyAnCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGZpbHRlci1icmFuY2ggXAorCQktLWZvcmNlIC0tcHJ1bmUtZW1wdHkgXAorCQktLWluZGV4LWZpbHRlciAiZ2l0IHJtIC0tY2FjaGVkIC0taWdub3JlLXVubWF0Y2ggdGhyZWUudCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVtb3ZpbmcgdGhlIGJyb2tlbiBlbnRyeSB3b3JrcycgJworCWVjaG8gdGhyZWUgPmV4cGVjdCAmJgorCWdpdCBmaWx0ZXItYnJhbmNoIFwKKwkJLS1mb3JjZSAtLXBydW5lLWVtcHR5IFwKKwkJLS1pbmRleC1maWx0ZXIgImdpdCBybSAtLWNhY2hlZCAtLWlnbm9yZS11bm1hdGNoIGJyb2tlbiIgJiYKKwlnaXQgbG9nIC0xIC0tZm9ybWF0PSVzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NzA2MC13dHN0YXR1cy5zaCBiL3QvdDcwNjAtd3RzdGF0dXMuc2gKaW5kZXggNTJlZjA2Yi4uN2Q0NjdjMCAxMDA3NTUKLS0tIGEvdC90NzA2MC13dHN0YXR1cy5zaAorKysgYi90L3Q3MDYwLXd0c3RhdHVzLnNoCkBAIC0yOSwyMCArMjksMTkgQEAKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKLWNhdCA+ZXhwZWN0IDw8RU9GCi0jIE9uIGJyYW5jaCBzaWRlCi0jIFlvdSBoYXZlIHVubWVyZ2VkIHBhdGhzLgotIyAgIChmaXggY29uZmxpY3RzIGFuZCBydW4gImdpdCBjb21taXQiKQotIwotIyBVbm1lcmdlZCBwYXRoczoKLSMgICAodXNlICJnaXQgYWRkL3JtIDxmaWxlPi4uLiIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKQotIwotIwlkZWxldGVkIGJ5IHVzOiAgICAgIGZvbwotIwordGVzdF9leHBlY3Rfc3VjY2VzcyAnTS9EIGNvbmZsaWN0IGRvZXMgbm90IHNlZ2ZhdWx0JyAnCisJY2F0ID5leHBlY3QgPDxFT0YgJiYKK09uIGJyYW5jaCBzaWRlCitZb3UgaGF2ZSB1bm1lcmdlZCBwYXRocy4KKyAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biAiZ2l0IGNvbW1pdCIpCisKK1VubWVyZ2VkIHBhdGhzOgorICAodXNlICJnaXQgYWRkL3JtIDxmaWxlPi4uLiIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKQorCisJZGVsZXRlZCBieSB1czogICAgICBmb28KKwogbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSAiZ2l0IGFkZCIgYW5kL29yICJnaXQgY29tbWl0IC1hIikKIEVPRgotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdNL0QgY29uZmxpY3QgZG9lcyBub3Qgc2VnZmF1bHQnICcKIAlta2RpciBtZGNvbmZsaWN0ICYmCiAJKAogCQljZCBtZGNvbmZsaWN0ICYmCkBAIC0xMzUsMTkgKzEzNCwxOSBAQAogCXRlc3RfY29tbWl0IG9uX3NlY29uZCBtYWluLnR4dCBvbl9zZWNvbmQgJiYKIAl0ZXN0X2NvbW1pdCBtYXN0ZXIgY29uZmxpY3QudHh0IG1hc3RlciAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSBzZWNvbmRfYnJhbmNoICYmCi0JY2F0ID5leHBlY3RlZCA8PC1cRU9GICYmCi0JIyBPbiBicmFuY2ggbWFzdGVyCi0JIyBZb3UgaGF2ZSB1bm1lcmdlZCBwYXRocy4KLQkjICAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biAiZ2l0IGNvbW1pdCIpCi0JIwotCSMgVW5tZXJnZWQgcGF0aHM6Ci0JIyAgICh1c2UgImdpdCBhZGQvcm0gPGZpbGU+Li4uIiBhcyBhcHByb3ByaWF0ZSB0byBtYXJrIHJlc29sdXRpb24pCi0JIwotCSMJYm90aCBhZGRlZDogICAgICAgICBjb25mbGljdC50eHQKLQkjCWRlbGV0ZWQgYnkgdGhlbTogICAgbWFpbi50eHQKLQkjCi0Jbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSAiZ2l0IGFkZCIgYW5kL29yICJnaXQgY29tbWl0IC1hIikKLQlFT0YKKwljYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgorT24gYnJhbmNoIG1hc3RlcgorWW91IGhhdmUgdW5tZXJnZWQgcGF0aHMuCisgIChmaXggY29uZmxpY3RzIGFuZCBydW4gImdpdCBjb21taXQiKQorCitVbm1lcmdlZCBwYXRoczoKKyAgKHVzZSAiZ2l0IGFkZC9ybSA8ZmlsZT4uLi4iIGFzIGFwcHJvcHJpYXRlIHRvIG1hcmsgcmVzb2x1dGlvbikKKworCWJvdGggYWRkZWQ6ICAgICAgICAgY29uZmxpY3QudHh0CisJZGVsZXRlZCBieSB0aGVtOiAgICBtYWluLnR4dAorCitubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlICJnaXQgYWRkIiBhbmQvb3IgImdpdCBjb21taXQgLWEiKQorRU9GCiAJZ2l0IHN0YXR1cyAtLXVudHJhY2tlZC1maWxlcz1ubyA+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTY4LDIwICsxNjcsMjAgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzIHdoZW4gY29uZmxpY3RzIHdpdGggYWRkIGFuZCBybSBhZHZpY2UgKGJvdGggZGVsZXRlZCknICcKIAl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgY29uZmxpY3QgJiYKLQljYXQgPmV4cGVjdGVkIDw8LVxFT0YgJiYKLQkjIE9uIGJyYW5jaCBjb25mbGljdF9zZWNvbmQKLQkjIFlvdSBoYXZlIHVubWVyZ2VkIHBhdGhzLgotCSMgICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuICJnaXQgY29tbWl0IikKLQkjCi0JIyBVbm1lcmdlZCBwYXRoczoKLQkjICAgKHVzZSAiZ2l0IGFkZC9ybSA8ZmlsZT4uLi4iIGFzIGFwcHJvcHJpYXRlIHRvIG1hcmsgcmVzb2x1dGlvbikKLQkjCi0JIwlib3RoIGRlbGV0ZWQ6ICAgICAgIG1haW4udHh0Ci0JIwlhZGRlZCBieSB0aGVtOiAgICAgIHN1Yl9tYXN0ZXIudHh0Ci0JIwlhZGRlZCBieSB1czogICAgICAgIHN1Yl9zZWNvbmQudHh0Ci0JIwotCW5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgImdpdCBhZGQiIGFuZC9vciAiZ2l0IGNvbW1pdCAtYSIpCi0JRU9GCisJY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKK09uIGJyYW5jaCBjb25mbGljdF9zZWNvbmQKK1lvdSBoYXZlIHVubWVyZ2VkIHBhdGhzLgorICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuICJnaXQgY29tbWl0IikKKworVW5tZXJnZWQgcGF0aHM6CisgICh1c2UgImdpdCBhZGQvcm0gPGZpbGU+Li4uIiBhcyBhcHByb3ByaWF0ZSB0byBtYXJrIHJlc29sdXRpb24pCisKKwlib3RoIGRlbGV0ZWQ6ICAgICAgIG1haW4udHh0CisJYWRkZWQgYnkgdGhlbTogICAgICBzdWJfbWFzdGVyLnR4dAorCWFkZGVkIGJ5IHVzOiAgICAgICAgc3ViX3NlY29uZC50eHQKKworbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSAiZ2l0IGFkZCIgYW5kL29yICJnaXQgY29tbWl0IC1hIikKK0VPRgogCWdpdCBzdGF0dXMgLS11bnRyYWNrZWQtZmlsZXM9bm8gPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTE5MiwyMiArMTkxLDIyIEBACiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IG1lcmdlIGNvbmZsaWN0ICYmCiAJZ2l0IGFkZCBzdWJfbWFzdGVyLnR4dCAmJgogCWdpdCBhZGQgc3ViX3NlY29uZC50eHQgJiYKLQljYXQgPmV4cGVjdGVkIDw8LVxFT0YgJiYKLQkjIE9uIGJyYW5jaCBjb25mbGljdF9zZWNvbmQKLQkjIFlvdSBoYXZlIHVubWVyZ2VkIHBhdGhzLgotCSMgICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuICJnaXQgY29tbWl0IikKLQkjCi0JIyBDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKLQkjCi0JIwluZXcgZmlsZTogICBzdWJfbWFzdGVyLnR4dAotCSMKLQkjIFVubWVyZ2VkIHBhdGhzOgotCSMgICAodXNlICJnaXQgcm0gPGZpbGU+Li4uIiB0byBtYXJrIHJlc29sdXRpb24pCi0JIwotCSMJYm90aCBkZWxldGVkOiAgICAgICBtYWluLnR4dAotCSMKLQkjIFVudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQotCUVPRgorCWNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCitPbiBicmFuY2ggY29uZmxpY3Rfc2Vjb25kCitZb3UgaGF2ZSB1bm1lcmdlZCBwYXRocy4KKyAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biAiZ2l0IGNvbW1pdCIpCisKK0NoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorCisJbmV3IGZpbGU6ICAgc3ViX21hc3Rlci50eHQKKworVW5tZXJnZWQgcGF0aHM6CisgICh1c2UgImdpdCBybSA8ZmlsZT4uLi4iIHRvIG1hcmsgcmVzb2x1dGlvbikKKworCWJvdGggZGVsZXRlZDogICAgICAgbWFpbi50eHQKKworVW50cmFja2VkIGZpbGVzIG5vdCBsaXN0ZWQgKHVzZSAtdSBvcHRpb24gdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgpkaWZmIC0tZ2l0IGEvdC90NzEwNS1yZXNldC1wYXRjaC5zaCBiL3QvdDcxMDUtcmVzZXQtcGF0Y2guc2gKaW5kZXggOTVmYWIyMC4uOThiN2Q3YiAxMDA3NTUKLS0tIGEvdC90NzEwNS1yZXNldC1wYXRjaC5zaAorKysgYi90L3Q3MTA1LXJlc2V0LXBhdGNoLnNoCkBAIC0yNSwxNSArMjUsMTcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdnaXQgcmVzZXQgLXAnICcKLQkoZWNobyBuOyBlY2hvIHkpIHwgZ2l0IHJlc2V0IC1wICYmCisJKGVjaG8gbjsgZWNobyB5KSB8IGdpdCByZXNldCAtcCA+b3V0cHV0ICYmCiAJdmVyaWZ5X3N0YXRlIGRpci9mb28gd29yayBoZWFkICYmCi0JdmVyaWZ5X3NhdmVkX3N0YXRlIGJhcgorCXZlcmlmeV9zYXZlZF9zdGF0ZSBiYXIgJiYKKwl0ZXN0X2kxOG5ncmVwICJVbnN0YWdlIiBvdXRwdXQKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBQRVJMICdnaXQgcmVzZXQgLXAgSEVBRF4nICcKLQkoZWNobyBuOyBlY2hvIHkpIHwgZ2l0IHJlc2V0IC1wIEhFQUReICYmCisJKGVjaG8gbjsgZWNobyB5KSB8IGdpdCByZXNldCAtcCBIRUFEXiA+b3V0cHV0ICYmCiAJdmVyaWZ5X3N0YXRlIGRpci9mb28gd29yayBwYXJlbnQgJiYKLQl2ZXJpZnlfc2F2ZWRfc3RhdGUgYmFyCisJdmVyaWZ5X3NhdmVkX3N0YXRlIGJhciAmJgorCXRlc3RfaTE4bmdyZXAgIkFwcGx5IiBvdXRwdXQKICcKIAogIyBUaGUgaWRlYSBpbiB0aGUgcmVzdCBpcyB0aGF0IGJhciBzb3J0cyBmaXJzdCwgc28gd2UgYWx3YXlzIHNheSAneScKZGlmZiAtLWdpdCBhL3QvdDcxMDYtcmVzZXQtdW5ib3JuLWJyYW5jaC5zaCBiL3QvdDcxMDYtcmVzZXQtdW5ib3JuLWJyYW5jaC5zaAppbmRleCA4MDYyY2Y1Li4wZjk1ZjAwIDEwMDc1NQotLS0gYS90L3Q3MTA2LXJlc2V0LXVuYm9ybi1icmFuY2guc2gKKysrIGIvdC90NzEwNi1yZXNldC11bmJvcm4tYnJhbmNoLnNoCkBAIC0xMSw3ICsxMSwxMCBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVzZXQnICcKIAlnaXQgYWRkIGEgYiAmJgogCWdpdCByZXNldCAmJgotCXRlc3QgIiQoZ2l0IGxzLWZpbGVzKSIgPSAiIgorCisJPmV4cGVjdCAmJgorCWdpdCBscy1maWxlcyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXNldCBIRUFEJyAnCkBAIC0yNCwyOCArMjcsNDMgQEAKIAlybSAuZ2l0L2luZGV4ICYmCiAJZ2l0IGFkZCBhIGIgJiYKIAlnaXQgcmVzZXQgYSAmJgotCXRlc3QgIiQoZ2l0IGxzLWZpbGVzKSIgPSAiYiIKKworCWVjaG8gYiA+ZXhwZWN0ICYmCisJZ2l0IGxzLWZpbGVzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Jlc2V0IC1wJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFBFUkwgJ3Jlc2V0IC1wJyAnCiAJcm0gLmdpdC9pbmRleCAmJgogCWdpdCBhZGQgYSAmJgotCWVjaG8geSB8IGdpdCByZXNldCAtcCAmJgotCXRlc3QgIiQoZ2l0IGxzLWZpbGVzKSIgPSAiIgorCWVjaG8geSA+eWVzICYmCisJZ2l0IHJlc2V0IC1wIDx5ZXMgPm91dHB1dCAmJgorCisJPmV4cGVjdCAmJgorCWdpdCBscy1maWxlcyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCXRlc3RfaTE4bmdyZXAgIlVuc3RhZ2UiIG91dHB1dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXNldCAtLXNvZnQgaXMgYSBuby1vcCcgJwogCXJtIC5naXQvaW5kZXggJiYKIAlnaXQgYWRkIGEgJiYKLQlnaXQgcmVzZXQgLS1zb2Z0Ci0JdGVzdCAiJChnaXQgbHMtZmlsZXMpIiA9ICJhIgorCWdpdCByZXNldCAtLXNvZnQgJiYKKworCWVjaG8gYSA+ZXhwZWN0ICYmCisJZ2l0IGxzLWZpbGVzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Jlc2V0IC0taGFyZCcgJwogCXJtIC5naXQvaW5kZXggJiYKIAlnaXQgYWRkIGEgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgImVjaG8gYSA+YSIgJiYKIAlnaXQgcmVzZXQgLS1oYXJkICYmCi0JdGVzdCAiJChnaXQgbHMtZmlsZXMpIiA9ICIiICYmCisKKwk+ZXhwZWN0ICYmCisJZ2l0IGxzLWZpbGVzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCiAJdGVzdF9wYXRoX2lzX21pc3NpbmcgYQogJwogCmRpZmYgLS1naXQgYS90L3Q3NDAwLXN1Ym1vZHVsZS1iYXNpYy5zaCBiL3QvdDc0MDAtc3VibW9kdWxlLWJhc2ljLnNoCmluZGV4IGEzOWQwNzQuLmMyOGU4ZDggMTAwNzU1Ci0tLSBhL3QvdDc0MDAtc3VibW9kdWxlLWJhc2ljLnNoCisrKyBiL3QvdDc0MDAtc3VibW9kdWxlLWJhc2ljLnNoCkBAIC00ODEsNyArNDgxLDcgQEAKIAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdncmFjZWZ1bGx5IGFkZCBzdWJtb2R1bGUgd2l0aCBhIHRyYWlsaW5nIHNsYXNoJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdncmFjZWZ1bGx5IGFkZC9yZXNldCBzdWJtb2R1bGUgd2l0aCBhIHRyYWlsaW5nIHNsYXNoJyAnCiAKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNvbW1pdCAtbSAiY29tbWl0IHN1YnByb2plY3QiIGluaXQgJiYKQEAgLTQ5NSw3ICs0OTUsOSBAQAogCWdpdCBhZGQgaW5pdC8gJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgZGlmZiAtLWV4aXQtY29kZSAtLWNhY2hlZCBpbml0ICYmCiAJdGVzdCAkY29tbWl0ID0gJChnaXQgbHMtZmlsZXMgLS1zdGFnZSB8Ci0JCXNlZCAtbiAicy9eMTYwMDAwIFwoW14gXSpcKS4qL1wxL3AiKQorCQlzZWQgLW4gInMvXjE2MDAwMCBcKFteIF0qXCkuKi9cMS9wIikgJiYKKwlnaXQgcmVzZXQgaW5pdC8gJiYKKwlnaXQgZGlmZiAtLWV4aXQtY29kZSAtLWNhY2hlZCBpbml0CiAKICcKIApAQCAtNzgzLDEzICs3ODUsMTEgQEAKIAkJCXRlc3RfY21wIGV4cGVjdCAuZ2l0CiAJCSkgJiYKIAkJZWNobyAicmVwbyIgPmV4cGVjdCAmJgotCQlnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5yZXBvLnBhdGggPmFjdHVhbCAmJgotCQl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLnJlcG8ucGF0aCAmJgogCQlnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5yZXBvX25ldy5wYXRoID5hY3R1YWwgJiYKIAkJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCYmCiAJCWVjaG8gIiRzdWJtb2R1cmwvcmVwbyIgPmV4cGVjdCAmJgotCQlnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5yZXBvLnVybCA+YWN0dWFsICYmCi0JCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUucmVwby51cmwgJiYKIAkJZWNobyAiJHN1Ym1vZHVybC9iYXJlLmdpdCIgPmV4cGVjdCAmJgogCQlnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5yZXBvX25ldy51cmwgPmFjdHVhbCAmJgogCQl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCkBAIC04MDksMTIgKzgwOSw4IEBACiAJCWdpdCBybSByZXBvICYmCiAJCXRlc3RfbXVzdF9mYWlsIGdpdCBzdWJtb2R1bGUgYWRkIC1xIC0tbmFtZSByZXBvX25ldyAiJHN1Ym1vZHVybC9yZXBvLmdpdCIgcmVwbyAmJgogCQl0ZXN0ICEgLWQgcmVwbyAmJgotCQllY2hvICJyZXBvIiA+ZXhwZWN0ICYmCi0JCWdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLnJlcG9fbmV3LnBhdGggPmFjdHVhbCAmJgotCQl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsJiYKLQkJZWNobyAiJHN1Ym1vZHVybC9iYXJlLmdpdCIgPmV4cGVjdCAmJgotCQlnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5yZXBvX25ldy51cmwgPmFjdHVhbCAmJgotCQl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLnJlcG9fbmV3LnBhdGggJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUucmVwb19uZXcudXJsICYmCiAJCWVjaG8gIiRzdWJtb2R1cmwvYmFyZS5naXQiID5leHBlY3QgJiYKIAkJZ2l0IGNvbmZpZyBzdWJtb2R1bGUucmVwb19uZXcudXJsID5hY3R1YWwgJiYKIAkJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgpAQCAtOTY4LDcgKzk2NCw2IEBACiAJCWdpdCBhZGQgc3ViICYmCiAJCWdpdCBjb21taXQgLW0gImluaXQgc3ViIgogCSkgJiYKLQl0ZXN0X2NvbmZpZyBjb3JlLnByZWNvbXBvc2V1bmljb2RlIHRydWUgJiYKIAlnaXQgc3VibW9kdWxlIGFkZCAuLyIkc3ZuYW1lIiAmJgogCWdpdCBzdWJtb2R1bGUgPiYyICYmCiAJdGVzdCAtbiAiJChnaXQgc3VibW9kdWxlIHwgZ3JlcCAiJHN2bmFtZSIpIgpkaWZmIC0tZ2l0IGEvdC90NzQwMS1zdWJtb2R1bGUtc3VtbWFyeS5zaCBiL3QvdDc0MDEtc3VibW9kdWxlLXN1bW1hcnkuc2gKaW5kZXggYWMyNDM0Yy4uMzY2NzQ2ZiAxMDA3NTUKLS0tIGEvdC90NzQwMS1zdWJtb2R1bGUtc3VtbWFyeS5zaAorKysgYi90L3Q3NDAxLXN1Ym1vZHVsZS1zdW1tYXJ5LnNoCkBAIC0xMDQsNiArMTA0LDI0IEBACiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAiCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ25vIGlnbm9yZT1hbGwgc2V0dGluZyBoYXMgYW55IGVmZmVjdCcgIgorCWdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLnNtMS5wYXRoIHNtMSAmJgorCWdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLnNtMS5pZ25vcmUgYWxsICYmCisJZ2l0IGNvbmZpZyBzdWJtb2R1bGUuc20xLmlnbm9yZSBhbGwgJiYKKwlnaXQgY29uZmlnIGRpZmYuaWdub3JlU3VibW9kdWxlcyBhbGwgJiYKKwlnaXQgc3VibW9kdWxlIHN1bW1hcnkgPmFjdHVhbCAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCisqIHNtMSAkaGVhZDEuLi4kaGVhZDIgKDEpOgorICA+IEFkZCBmb28zCisKK0VPRgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbCAmJgorCWdpdCBjb25maWcgLS11bnNldCBkaWZmLmlnbm9yZVN1Ym1vZHVsZXMgJiYKKwlnaXQgY29uZmlnIC0tcmVtb3ZlLXNlY3Rpb24gc3VibW9kdWxlLnNtMSAmJgorCWdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgLS1yZW1vdmUtc2VjdGlvbiBzdWJtb2R1bGUuc20xCisiCisKKwogY29tbWl0X2ZpbGUgc20xICYmCiBoZWFkMz0kKAogCWNkIHNtMSAmJgpAQCAtMjY1LDEzICsyODMsMTEgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tZm9yLXN0YXR1cycgIgogCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSAtLWZvci1zdGF0dXMgSEVBRF4gPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBhY3R1YWwgLSA8PEVPRgotIyBTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6Ci0jCi0jICogc20xICRoZWFkNi4uLjAwMDAwMDA6Ci0jCi0jICogc20yIDAwMDAwMDAuLi4kaGVhZDcgKDIpOgotIyAgID4gQWRkIGZvbzkKLSMKKyogc20xICRoZWFkNi4uLjAwMDAwMDA6CisKKyogc20yIDAwMDAwMDAuLi4kaGVhZDcgKDIpOgorICA+IEFkZCBmb285CisKIEVPRgogIgogCmRpZmYgLS1naXQgYS90L3Q3NDA2LXN1Ym1vZHVsZS11cGRhdGUuc2ggYi90L3Q3NDA2LXN1Ym1vZHVsZS11cGRhdGUuc2gKaW5kZXggMDgyNWE5Mi4uMDI0NmU4MCAxMDA3NTUKLS0tIGEvdC90NzQwNi1zdWJtb2R1bGUtdXBkYXRlLnNoCisrKyBiL3QvdDc0MDYtc3VibW9kdWxlLXVwZGF0ZS5zaApAQCAtNzYyLDYgKzc2MiwxNyBAQAogCSAoY2Qgc3VibW9kdWxlICYmCiAJICB0ZXN0IDEgPSAkKGdpdCBsb2cgLS1vbmVsaW5lIHwgd2MgLWwpCiAJICkKKykKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIHVwZGF0ZSAtLXJlY3Vyc2l2ZSBkcm9wcyBtb2R1bGUgbmFtZSBiZWZvcmUgcmVjdXJzaW5nJyAnCisJKGNkIHN1cGVyMiAmJgorCSAoY2QgZGVlcGVyL3N1Ym1vZHVsZS9zdWJzdWJtb2R1bGUgJiYKKwkgIGdpdCBjaGVja291dCBIRUFEXgorCSApICYmCisJIGdpdCBzdWJtb2R1bGUgdXBkYXRlIC0tcmVjdXJzaXZlIGRlZXBlci9zdWJtb2R1bGUgPmFjdHVhbCAmJgorCSB0ZXN0X2kxOG5ncmVwICJTdWJtb2R1bGUgcGF0aCAuZGVlcGVyL3N1Ym1vZHVsZS9zdWJzdWJtb2R1bGUuOiBjaGVja2VkIG91dCIgYWN0dWFsCiAJKQogJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDc0MDctc3VibW9kdWxlLWZvcmVhY2guc2ggYi90L3Q3NDA3LXN1Ym1vZHVsZS1mb3JlYWNoLnNoCmluZGV4IGJlOTNmMTAuLjdjYTEwYjggMTAwNzU1Ci0tLSBhL3QvdDc0MDctc3VibW9kdWxlLWZvcmVhY2guc2gKKysrIGIvdC90NzQwNy1zdWJtb2R1bGUtZm9yZWFjaC5zaApAQCAtMjU0LDEwICsyNTQsNiBAQAogCQkpICYmCiAJCWdpdCBzdWJtb2R1bGUgc3RhdHVzIC0tY2FjaGVkIC0tcmVjdXJzaXZlIC0tIG5lc3RlZDEgPiAuLi9hY3R1YWwKIAkpICYmCi0JaWYgdGVzdF9oYXZlX3ByZXJlcSBNSU5HVwotCXRoZW4KLQkJZG9zMnVuaXggYWN0dWFsCi0JZmkgJiYKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKQEAgLTMyOSw0ICszMjUsMTMgQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnbXVsdGktYXJndW1lbnQgY29tbWFuZCBwYXNzZWQgdG8gZm9yZWFjaCBpcyBub3Qgc2hlbGwtZXZhbHVhdGVkIHR3aWNlJyAnCisJKAorCQljZCBzdXBlciAmJgorCQlnaXQgc3VibW9kdWxlIGZvcmVhY2ggImVjaG8gXFxcInF1b3RlZFxcXCIiID4gLi4vZXhwZWN0ZWQgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBmb3JlYWNoIGVjaG8gXCJxdW90ZWRcIiA+IC4uL2FjdHVhbAorCSkgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q3NTAxLWNvbW1pdC5zaCBiL3QvdDc1MDEtY29tbWl0LnNoCmluZGV4IDk5Y2UzNmYuLjk0ZWVjODMgMTAwNzU1Ci0tLSBhL3QvdDc1MDEtY29tbWl0LnNoCisrKyBiL3QvdDc1MDEtY29tbWl0LnNoCkBAIC01MywxMCArNTMsMTEgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndXNpbmcgaW52YWxpZCBjb21taXQgd2l0aCAtQycgJwotCXRlc3RfbXVzdF9mYWlsIGdpdCBjb21taXQgLUMgYm9ndXMKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLUMgYm9ndXMKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbm90aGluZyB0byBjb21taXQnICcKKwlnaXQgcmVzZXQgLS1oYXJkICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbW1pdCAtbSBpbml0aWFsCiAnCiAKZGlmZiAtLWdpdCBhL3QvdDc1MDctY29tbWl0LXZlcmJvc2Uuc2ggYi90L3Q3NTA3LWNvbW1pdC12ZXJib3NlLnNoCmluZGV4IGRhNWJkM2IuLjJkZGYyOGMgMTAwNzU1Ci0tLSBhL3QvdDc1MDctY29tbWl0LXZlcmJvc2Uuc2gKKysrIGIvdC90NzUwNy1jb21taXQtdmVyYm9zZS5zaApAQCAtNjUsOSArNjUsMzUgQEAKIAljaGVja19tZXNzYWdlIGRpZmYKICcKIAotdGVzdF9leHBlY3RfZmFpbHVyZSAnZGlmZiBpbiBtZXNzYWdlIGlzIHJldGFpbmVkIHdpdGggLXYnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RpZmYgaW4gbWVzc2FnZSBpcyByZXRhaW5lZCB3aXRoIC12JyAnCiAJZ2l0IGNvbW1pdCAtLWFtZW5kIC1GIGRpZmYgLXYgJiYKIAljaGVja19tZXNzYWdlIGRpZmYKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIGxvZyBpcyBzdHJpcHBlZCBvdXQgdG9vIHdpdGggLXYnICcKKwlnaXQgY29uZmlnIGRpZmYuc3VibW9kdWxlIGxvZyAmJgorCWdpdCBzdWJtb2R1bGUgYWRkIC4vLiBzdWIgJiYKKwlnaXQgY29tbWl0IC1tICJzdWIgYWRkZWQiICYmCisJKAorCQljZCBzdWIgJiYKKwkJZWNobyAibW9yZSIgPj5maWxlICYmCisJCWdpdCBjb21taXQgLWEgLW0gInN1Ym1vZHVsZSBjb21taXQiCisJKSAmJgorCSgKKwkJR0lUX0VESVRPUj1jYXQgJiYKKwkJZXhwb3J0IEdJVF9FRElUT1IgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbW1pdCAtYSAtdiAyPmVycgorCSkgJiYKKwl0ZXN0X2kxOG5ncmVwICJBYm9ydGluZyBjb21taXQgZHVlIHRvIGVtcHR5IGNvbW1pdCBtZXNzYWdlLiIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ZlcmJvc2UgZGlmZiBpcyBzdHJpcHBlZCBvdXQgd2l0aCBzZXQgY29yZS5jb21tZW50Q2hhcicgJworCSgKKwkJR0lUX0VESVRPUj1jYXQgJiYKKwkJZXhwb3J0IEdJVF9FRElUT1IgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IC1jIGNvcmUuY29tbWVudGNoYXI9IjsiIGNvbW1pdCAtYSAtdiAyPmVycgorCSkgJiYKKwl0ZXN0X2kxOG5ncmVwICJBYm9ydGluZyBjb21taXQgZHVlIHRvIGVtcHR5IGNvbW1pdCBtZXNzYWdlLiIgZXJyCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NzUwOC1zdGF0dXMuc2ggYi90L3Q3NTA4LXN0YXR1cy5zaAppbmRleCBhYzNkMGZlLi5jOTg3YjVlIDEwMDc1NQotLS0gYS90L3Q3NTA4LXN0YXR1cy5zaAorKysgYi90L3Q3NTA4LXN0YXR1cy5zaApAQCAtNjAsOCArNjAsMTMgQEAKIAl0ZXN0X2kxOG5ncmVwICJ1c2UgXCJnaXQgcm0gLS1jYWNoZWQgPGZpbGU+XC5cLlwuXCIgdG8gdW5zdGFnZSIgb3V0cHV0CiAnCiAKK3N0cmlwX2NvbW1lbnRzICgpIHsKKwl0YWI9JwknCisJc2VkICJzL15cIyAvLzsgcy9eXCMkLy87IHMvXiMkdGFiLyR0YWIvIiA8IiQxIiA+IiQxIi50bXAgJiYKKwlybSAiJDEiICYmIG12ICIkMSIudG1wICIkMSIKK30KKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzIC0tY29sdW1uJyAnCi0JQ09MVU1OUz01MCBnaXQgc3RhdHVzIC0tY29sdW1uPSJjb2x1bW4gZGVuc2UiID5vdXRwdXQgJiYKIAljYXQgPmV4cGVjdCA8PFxFT0YgJiYKICMgT24gYnJhbmNoIG1hc3RlcgogIyBDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKQEAgLTc4LDkgKzgzLDE3IEBACiAjIFVudHJhY2tlZCBmaWxlczoKICMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQogIwotIwlkaXIxL3VudHJhY2tlZCBkaXIyL3VudHJhY2tlZCB1bnRyYWNrZWQKLSMJZGlyMi9tb2RpZmllZCAgb3V0cHV0CisjCWRpcjEvdW50cmFja2VkIGRpcjIvdW50cmFja2VkIG91dHB1dAorIwlkaXIyL21vZGlmaWVkICBleHBlY3QgICAgICAgICB1bnRyYWNrZWQKKyMKIEVPRgorCUNPTFVNTlM9NTAgZ2l0IC1jIHN0YXR1cy5kaXNwbGF5Q29tbWVudFByZWZpeD10cnVlIHN0YXR1cyAtLWNvbHVtbj0iY29sdW1uIGRlbnNlIiA+b3V0cHV0ICYmCisJdGVzdF9pMThuY21wIGV4cGVjdCBvdXRwdXQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzIC0tY29sdW1uIHN0YXR1cy5kaXNwbGF5Q29tbWVudFByZWZpeD1mYWxzZScgJworCXN0cmlwX2NvbW1lbnRzIGV4cGVjdCAmJgorCUNPTFVNTlM9NDkgZ2l0IC1jIHN0YXR1cy5kaXNwbGF5Q29tbWVudFByZWZpeD1mYWxzZSBzdGF0dXMgLS1jb2x1bW49ImNvbHVtbiBkZW5zZSIgPm91dHB1dCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTEwNiwyOCArMTE5LDU4IEBACiAjCWV4cGVjdAogIwlvdXRwdXQKICMJdW50cmFja2VkCisjCiBFT0YKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzICgyKScgJwotCWdpdCBzdGF0dXMgPm91dHB1dCAmJgordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzIHdpdGggc3RhdHVzLmRpc3BsYXlDb21tZW50UHJlZml4PXRydWUnICcKKwlnaXQgLWMgc3RhdHVzLmRpc3BsYXlDb21tZW50UHJlZml4PXRydWUgc3RhdHVzID5vdXRwdXQgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgd2l0aCBzdGF0dXMuZGlzcGxheUNvbW1lbnRQcmVmaXg9ZmFsc2UnICcKKwlzdHJpcF9jb21tZW50cyBleHBlY3QgJiYKKwlnaXQgLWMgc3RhdHVzLmRpc3BsYXlDb21tZW50UHJlZml4PWZhbHNlIHN0YXR1cyA+b3V0cHV0ICYmCisJdGVzdF9pMThuY21wIGV4cGVjdCBvdXRwdXQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgZmFrZSBlZGl0b3InICcKKwljYXQgPi5naXQvZWRpdG9yIDw8LVxFT0YgJiYKKwkjISAvYmluL3NoCisJY3AgIiQxIiBvdXRwdXQKK0VPRgorCWNobW9kIDc1NSAuZ2l0L2VkaXRvcgorJworCitjb21taXRfdGVtcGxhdGVfY29tbWVudGVkICgpIHsKKwkoCisJCUVESVRPUj0uZ2l0L2VkaXRvciAmJgorCQlleHBvcnQgRURJVE9SICYmCisJCSMgRmFpbHMgZHVlIHRvIGVtcHR5IG1lc3NhZ2UKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbW1pdAorCSkgJiYKKwkhIGdyZXAgJ15bXiNdJyBvdXRwdXQKK30KKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY29tbWl0IGlnbm9yZXMgc3RhdHVzLmRpc3BsYXlDb21tZW50UHJlZml4PWZhbHNlIGluIENPTU1JVF9FRElUTVNHJyAnCisJY29tbWl0X3RlbXBsYXRlX2NvbW1lbnRlZAorJworCiBjYXQgPmV4cGVjdCA8PFxFT0YKLSMgT24gYnJhbmNoIG1hc3RlcgotIyBDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKLSMJbmV3IGZpbGU6ICAgZGlyMi9hZGRlZAotIwotIyBDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKLSMJbW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZAotIwotIyBVbnRyYWNrZWQgZmlsZXM6Ci0jCWRpcjEvdW50cmFja2VkCi0jCWRpcjIvbW9kaWZpZWQKLSMJZGlyMi91bnRyYWNrZWQKLSMJZXhwZWN0Ci0jCW91dHB1dAotIwl1bnRyYWNrZWQKK09uIGJyYW5jaCBtYXN0ZXIKK0NoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorCW5ldyBmaWxlOiAgIGRpcjIvYWRkZWQKKworQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6CisJbW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZAorCitVbnRyYWNrZWQgZmlsZXM6CisJZGlyMS91bnRyYWNrZWQKKwlkaXIyL21vZGlmaWVkCisJZGlyMi91bnRyYWNrZWQKKwlleHBlY3QKKwlvdXRwdXQKKwl1bnRyYWNrZWQKKwogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyAoYWR2aWNlLnN0YXR1c0hpbnRzIGZhbHNlKScgJwpAQCAtMTg1LDMzICsyMjgsMzUgQEAKIAlnaXQgc3RhdHVzIC1zIC0taWdub3JlZCA+b3V0cHV0ICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dCAmJgogCi0JY2F0ID5leHBlY3QgPDwtXEVPRiAmJgotCSMgT24gYnJhbmNoIG1hc3RlcgotCSMgQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6Ci0JIyAgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKLQkjCi0JIwluZXcgZmlsZTogICBkaXIyL2FkZGVkCi0JIwotCSMgQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6Ci0JIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLQkjICAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQotCSMKLQkjCW1vZGlmaWVkOiAgIGRpcjEvbW9kaWZpZWQKLQkjCi0JIyBVbnRyYWNrZWQgZmlsZXM6Ci0JIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0JIwotCSMJZGlyMi9tb2RpZmllZAotCSMgSWdub3JlZCBmaWxlczoKLQkjICAgKHVzZSAiZ2l0IGFkZCAtZiA8ZmlsZT4uLi4iIHRvIGluY2x1ZGUgaW4gd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLQkjCi0JIwkuZ2l0aWdub3JlCi0JIwlkaXIxL3VudHJhY2tlZAotCSMJZGlyMi91bnRyYWNrZWQKLQkjCWV4cGVjdAotCSMJb3V0cHV0Ci0JIwl1bnRyYWNrZWQKLQlFT0YKKwljYXQgPmV4cGVjdCA8PFxFT0YgJiYKK09uIGJyYW5jaCBtYXN0ZXIKK0NoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCisKKwluZXcgZmlsZTogICBkaXIyL2FkZGVkCisKK0NoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCisgICh1c2UgImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi4iIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkKKworCW1vZGlmaWVkOiAgIGRpcjEvbW9kaWZpZWQKKworVW50cmFja2VkIGZpbGVzOgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorCisJZGlyMi9tb2RpZmllZAorCitJZ25vcmVkIGZpbGVzOgorICAodXNlICJnaXQgYWRkIC1mIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorCisJLmdpdGlnbm9yZQorCWRpcjEvdW50cmFja2VkCisJZGlyMi91bnRyYWNrZWQKKwlleHBlY3QKKwlvdXRwdXQKKwl1bnRyYWNrZWQKKworRU9GCiAJZ2l0IHN0YXR1cyAtLWlnbm9yZWQgPm91dHB1dCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0CiAnCkBAIC0yNDYsMzAgKzI5MSwzMSBAQAogCWdpdCBzdGF0dXMgLXMgLS1pZ25vcmVkID5vdXRwdXQgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0ICYmCiAKLQljYXQgPmV4cGVjdCA8PC1cRU9GICYmCi0JIyBPbiBicmFuY2ggbWFzdGVyCi0JIyBDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKLQkjICAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQotCSMKLQkjCW5ldyBmaWxlOiAgIGRpcjIvYWRkZWQKLQkjCi0JIyBDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKLQkjICAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQotCSMgICAodXNlICJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpCi0JIwotCSMJbW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZAotCSMKLQkjIElnbm9yZWQgZmlsZXM6Ci0JIyAgICh1c2UgImdpdCBhZGQgLWYgPGZpbGU+Li4uIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0JIwotCSMJLmdpdGlnbm9yZQotCSMJZGlyMS91bnRyYWNrZWQKLQkjCWRpcjIvbW9kaWZpZWQKLQkjCWRpcjIvdW50cmFja2VkCi0JIwlleHBlY3QKLQkjCW91dHB1dAotCSMJdW50cmFja2VkCi0JRU9GCisJY2F0ID5leHBlY3QgPDxcRU9GICYmCitPbiBicmFuY2ggbWFzdGVyCitDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKKyAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQorCisJbmV3IGZpbGU6ICAgZGlyMi9hZGRlZAorCitDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKKyAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorICAodXNlICJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpCisKKwltb2RpZmllZDogICBkaXIxL21vZGlmaWVkCisKK0lnbm9yZWQgZmlsZXM6CisgICh1c2UgImdpdCBhZGQgLWYgPGZpbGU+Li4uIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCisKKwkuZ2l0aWdub3JlCisJZGlyMS91bnRyYWNrZWQKKwlkaXIyL21vZGlmaWVkCisJZGlyMi91bnRyYWNrZWQKKwlleHBlY3QKKwlvdXRwdXQKKwl1bnRyYWNrZWQKKworRU9GCiAJZ2l0IHN0YXR1cyAtLWlnbm9yZWQgPm91dHB1dCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0CiAnCkBAIC0zMTAsMjIgKzM1NiwyMiBAQAogCTogPmRpcjMvdW50cmFja2VkMgogJwogCi1jYXQgPmV4cGVjdCA8PEVPRgotIyBPbiBicmFuY2ggbWFzdGVyCi0jIENoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgotIyAgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKLSMKLSMJbmV3IGZpbGU6ICAgZGlyMi9hZGRlZAotIwotIyBDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKLSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0jICAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQotIwotIwltb2RpZmllZDogICBkaXIxL21vZGlmaWVkCi0jCi0jIFVudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQotRU9GCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgLXVubycgJworCWNhdCA+ZXhwZWN0IDw8RU9GICYmCitPbiBicmFuY2ggbWFzdGVyCitDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKKyAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQorCisJbmV3IGZpbGU6ICAgZGlyMi9hZGRlZAorCitDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKKyAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorICAodXNlICJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpCisKKwltb2RpZmllZDogICBkaXIxL21vZGlmaWVkCisKK1VudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQorRU9GCiAJZ2l0IHN0YXR1cyAtdW5vID5vdXRwdXQgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAogJwpAQCAtMzM2LDE3ICszODIsMTcgQEAKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAogJwogCi1jYXQgPmV4cGVjdCA8PEVPRgotIyBPbiBicmFuY2ggbWFzdGVyCi0jIENoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgotIwluZXcgZmlsZTogICBkaXIyL2FkZGVkCi0jCi0jIENoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgotIwltb2RpZmllZDogICBkaXIxL21vZGlmaWVkCi0jCi0jIFVudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkCi1FT0YKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyAtdW5vIChhZHZpY2Uuc3RhdHVzSGludHMgZmFsc2UpJyAnCisJY2F0ID5leHBlY3QgPDxFT0YgJiYKK09uIGJyYW5jaCBtYXN0ZXIKK0NoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorCW5ldyBmaWxlOiAgIGRpcjIvYWRkZWQKKworQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6CisJbW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZAorCitVbnRyYWNrZWQgZmlsZXMgbm90IGxpc3RlZAorRU9GCiAJdGVzdF9jb25maWcgYWR2aWNlLnN0YXR1c0hpbnRzIGZhbHNlICYmCiAJZ2l0IHN0YXR1cyAtdW5vID5vdXRwdXQgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dApAQCAtMzY3LDMxICs0MTMsMzIgQEAKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKLWNhdCA+ZXhwZWN0IDw8RU9GCi0jIE9uIGJyYW5jaCBtYXN0ZXIKLSMgQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6Ci0jICAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQotIwotIwluZXcgZmlsZTogICBkaXIyL2FkZGVkCi0jCi0jIENoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgotIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLSMgICAodXNlICJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpCi0jCi0jCW1vZGlmaWVkOiAgIGRpcjEvbW9kaWZpZWQKLSMKLSMgVW50cmFja2VkIGZpbGVzOgotIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0jCi0jCWRpcjEvdW50cmFja2VkCi0jCWRpcjIvbW9kaWZpZWQKLSMJZGlyMi91bnRyYWNrZWQKLSMJZGlyMy8KLSMJZXhwZWN0Ci0jCW91dHB1dAotIwl1bnRyYWNrZWQKLUVPRgogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzIC11bm9ybWFsJyAnCisJY2F0ID5leHBlY3QgPDxFT0YgJiYKK09uIGJyYW5jaCBtYXN0ZXIKK0NoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCisKKwluZXcgZmlsZTogICBkaXIyL2FkZGVkCisKK0NoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCisgICh1c2UgImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi4iIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkKKworCW1vZGlmaWVkOiAgIGRpcjEvbW9kaWZpZWQKKworVW50cmFja2VkIGZpbGVzOgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorCisJZGlyMS91bnRyYWNrZWQKKwlkaXIyL21vZGlmaWVkCisJZGlyMi91bnRyYWNrZWQKKwlkaXIzLworCWV4cGVjdAorCW91dHB1dAorCXVudHJhY2tlZAorCitFT0YKIAlnaXQgc3RhdHVzIC11bm9ybWFsID5vdXRwdXQgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAogJwpAQCAtNDI0LDMyICs0NzEsMzMgQEAKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKLWNhdCA+ZXhwZWN0IDw8RU9GCi0jIE9uIGJyYW5jaCBtYXN0ZXIKLSMgQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6Ci0jICAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQotIwotIwluZXcgZmlsZTogICBkaXIyL2FkZGVkCi0jCi0jIENoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgotIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLSMgICAodXNlICJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpCi0jCi0jCW1vZGlmaWVkOiAgIGRpcjEvbW9kaWZpZWQKLSMKLSMgVW50cmFja2VkIGZpbGVzOgotIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0jCi0jCWRpcjEvdW50cmFja2VkCi0jCWRpcjIvbW9kaWZpZWQKLSMJZGlyMi91bnRyYWNrZWQKLSMJZGlyMy91bnRyYWNrZWQxCi0jCWRpcjMvdW50cmFja2VkMgotIwlleHBlY3QKLSMJb3V0cHV0Ci0jCXVudHJhY2tlZAotRU9GCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgLXVhbGwnICcKKwljYXQgPmV4cGVjdCA8PEVPRiAmJgorT24gYnJhbmNoIG1hc3RlcgorQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6CisgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKKworCW5ldyBmaWxlOiAgIGRpcjIvYWRkZWQKKworQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKKyAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQorCisJbW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZAorCitVbnRyYWNrZWQgZmlsZXM6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCisKKwlkaXIxL3VudHJhY2tlZAorCWRpcjIvbW9kaWZpZWQKKwlkaXIyL3VudHJhY2tlZAorCWRpcjMvdW50cmFja2VkMQorCWRpcjMvdW50cmFja2VkMgorCWV4cGVjdAorCW91dHB1dAorCXVudHJhY2tlZAorCitFT0YKIAlnaXQgc3RhdHVzIC11YWxsID5vdXRwdXQgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAogJwpAQCAtNDg2LDMxICs1MzQsMzEgQEAKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKLWNhdCA+ZXhwZWN0IDw8XEVPRgotIyBPbiBicmFuY2ggbWFzdGVyCi0jIENoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgotIyAgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKLSMKLSMJbmV3IGZpbGU6ICAgLi4vZGlyMi9hZGRlZAotIwotIyBDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKLSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0jICAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQotIwotIwltb2RpZmllZDogICBtb2RpZmllZAotIwotIyBVbnRyYWNrZWQgZmlsZXM6Ci0jICAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIGluY2x1ZGUgaW4gd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLSMKLSMJdW50cmFja2VkCi0jCS4uL2RpcjIvbW9kaWZpZWQKLSMJLi4vZGlyMi91bnRyYWNrZWQKLSMJLi4vZXhwZWN0Ci0jCS4uL291dHB1dAotIwkuLi91bnRyYWNrZWQKLUVPRgotCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgd2l0aCByZWxhdGl2ZSBwYXRocycgJworCWNhdCA+ZXhwZWN0IDw8XEVPRiAmJgorT24gYnJhbmNoIG1hc3RlcgorQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6CisgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKKworCW5ldyBmaWxlOiAgIC4uL2RpcjIvYWRkZWQKKworQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKKyAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQorCisJbW9kaWZpZWQ6ICAgbW9kaWZpZWQKKworVW50cmFja2VkIGZpbGVzOgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorCisJdW50cmFja2VkCisJLi4vZGlyMi9tb2RpZmllZAorCS4uL2RpcjIvdW50cmFja2VkCisJLi4vZXhwZWN0CisJLi4vb3V0cHV0CisJLi4vdW50cmFja2VkCisKK0VPRgogCShjZCBkaXIxICYmIGdpdCBzdGF0dXMpID5vdXRwdXQgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAogJwpAQCAtNTU3LDMxICs2MDUsMzEgQEAKIAogJwogCi1jYXQgPmV4cGVjdCA8PFxFT0YKLSMgT24gYnJhbmNoIDxHUkVFTj5tYXN0ZXI8UkVTRVQ+Ci0jIENoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgotIyAgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKLSMKLSMJPEdSRUVOPm5ldyBmaWxlOiAgIGRpcjIvYWRkZWQ8UkVTRVQ+Ci0jCi0jIENoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgotIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLSMgICAodXNlICJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpCi0jCi0jCTxSRUQ+bW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZDxSRVNFVD4KLSMKLSMgVW50cmFja2VkIGZpbGVzOgotIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0jCi0jCTxCTFVFPmRpcjEvdW50cmFja2VkPFJFU0VUPgotIwk8QkxVRT5kaXIyL21vZGlmaWVkPFJFU0VUPgotIwk8QkxVRT5kaXIyL3VudHJhY2tlZDxSRVNFVD4KLSMJPEJMVUU+ZXhwZWN0PFJFU0VUPgotIwk8QkxVRT5vdXRwdXQ8UkVTRVQ+Ci0jCTxCTFVFPnVudHJhY2tlZDxSRVNFVD4KLUVPRgotCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgd2l0aCBjb2xvci51aScgJworCWNhdCA+ZXhwZWN0IDw8XEVPRiAmJgorT24gYnJhbmNoIDxHUkVFTj5tYXN0ZXI8UkVTRVQ+CitDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKKyAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQorCisJPEdSRUVOPm5ldyBmaWxlOiAgIGRpcjIvYWRkZWQ8UkVTRVQ+CisKK0NoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCisgICh1c2UgImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi4iIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkKKworCTxSRUQ+bW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZDxSRVNFVD4KKworVW50cmFja2VkIGZpbGVzOgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorCisJPEJMVUU+ZGlyMS91bnRyYWNrZWQ8UkVTRVQ+CisJPEJMVUU+ZGlyMi9tb2RpZmllZDxSRVNFVD4KKwk8QkxVRT5kaXIyL3VudHJhY2tlZDxSRVNFVD4KKwk8QkxVRT5leHBlY3Q8UkVTRVQ+CisJPEJMVUU+b3V0cHV0PFJFU0VUPgorCTxCTFVFPnVudHJhY2tlZDxSRVNFVD4KKworRU9GCiAJdGVzdF9jb25maWcgY29sb3IudWkgYWx3YXlzICYmCiAJZ2l0IHN0YXR1cyB8IHRlc3RfZGVjb2RlX2NvbG9yID5vdXRwdXQgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dApAQCAtNjg1LDMzICs3MzMsMzMgQEAKIAogJwogCi1jYXQgPmV4cGVjdCA8PFxFT0YKLSMgT24gYnJhbmNoIG1hc3RlcgotIyBDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKLSMgICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCi0jCi0jCW5ldyBmaWxlOiAgIGRpcjIvYWRkZWQKLSMKLSMgQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6Ci0jICAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQotIyAgICh1c2UgImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi4iIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkKLSMKLSMJbW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZAotIwotIyBVbnRyYWNrZWQgZmlsZXM6Ci0jICAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIGluY2x1ZGUgaW4gd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLSMKLSMJZGlyMS91bnRyYWNrZWQKLSMJZGlyMi9tb2RpZmllZAotIwlkaXIyL3VudHJhY2tlZAotIwlleHBlY3QKLSMJb3V0cHV0Ci0jCXVudHJhY2tlZAotRU9GCiAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzIHdpdGhvdXQgcmVsYXRpdmUgcGF0aHMnICcKKwljYXQgPmV4cGVjdCA8PFxFT0YgJiYKK09uIGJyYW5jaCBtYXN0ZXIKK0NoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCiAKKwluZXcgZmlsZTogICBkaXIyL2FkZGVkCisKK0NoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCisgICh1c2UgImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi4iIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkKKworCW1vZGlmaWVkOiAgIGRpcjEvbW9kaWZpZWQKKworVW50cmFja2VkIGZpbGVzOgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorCisJZGlyMS91bnRyYWNrZWQKKwlkaXIyL21vZGlmaWVkCisJZGlyMi91bnRyYWNrZWQKKwlleHBlY3QKKwlvdXRwdXQKKwl1bnRyYWNrZWQKKworRU9GCiAJdGVzdF9jb25maWcgc3RhdHVzLnJlbGF0aXZlUGF0aHMgZmFsc2UgJiYKIAkoY2QgZGlyMSAmJiBnaXQgc3RhdHVzKSA+b3V0cHV0ICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdCBvdXRwdXQKQEAgLTczNywyMyArNzg1LDI0IEBACiAKICcKIAotY2F0IDw8RU9GID5leHBlY3QKLSMgT24gYnJhbmNoIG1hc3RlcgotIyBDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKLSMgICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCi0jCi0jCW1vZGlmaWVkOiAgIGRpcjEvbW9kaWZpZWQKLSMKLSMgVW50cmFja2VkIGZpbGVzOgotIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0jCi0jCWRpcjEvdW50cmFja2VkCi0jCWRpcjIvCi0jCWV4cGVjdAotIwlvdXRwdXQKLSMJdW50cmFja2VkCi1FT0YKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RyeS1ydW4gb2YgcGFydGlhbCBjb21taXQgZXhjbHVkaW5nIG5ldyBmaWxlIGluIGluZGV4JyAnCisJY2F0ID5leHBlY3QgPDxFT0YgJiYKK09uIGJyYW5jaCBtYXN0ZXIKK0NoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCisKKwltb2RpZmllZDogICBkaXIxL21vZGlmaWVkCisKK1VudHJhY2tlZCBmaWxlczoKKyAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIGluY2x1ZGUgaW4gd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKKworCWRpcjEvdW50cmFja2VkCisJZGlyMi8KKwlleHBlY3QKKwlvdXRwdXQKKwl1bnRyYWNrZWQKKworRU9GCiAJZ2l0IGNvbW1pdCAtLWRyeS1ydW4gZGlyMS9tb2RpZmllZCA+b3V0cHV0ICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdCBvdXRwdXQKICcKQEAgLTc3OCwzMSArODI3LDMyIEBACiAJZ2l0IGFkZCBzbQogJwogCi1jYXQgPmV4cGVjdCA8PEVPRgotIyBPbiBicmFuY2ggbWFzdGVyCi0jIENoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgotIyAgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKLSMKLSMJbmV3IGZpbGU6ICAgZGlyMi9hZGRlZAotIwluZXcgZmlsZTogICBzbQotIwotIyBDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKLSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0jICAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQotIwotIwltb2RpZmllZDogICBkaXIxL21vZGlmaWVkCi0jCi0jIFVudHJhY2tlZCBmaWxlczoKLSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQotIwotIwlkaXIxL3VudHJhY2tlZAotIwlkaXIyL21vZGlmaWVkCi0jCWRpcjIvdW50cmFja2VkCi0jCWV4cGVjdAotIwlvdXRwdXQKLSMJdW50cmFja2VkCi1FT0YKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyBzdWJtb2R1bGUgc3VtbWFyeSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0JyAnCisJY2F0ID5leHBlY3QgPDxFT0YgJiYKK09uIGJyYW5jaCBtYXN0ZXIKK0NoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCisKKwluZXcgZmlsZTogICBkaXIyL2FkZGVkCisJbmV3IGZpbGU6ICAgc20KKworQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKKyAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQorCisJbW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZAorCitVbnRyYWNrZWQgZmlsZXM6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCisKKwlkaXIxL3VudHJhY2tlZAorCWRpcjIvbW9kaWZpZWQKKwlkaXIyL3VudHJhY2tlZAorCWV4cGVjdAorCW91dHB1dAorCXVudHJhY2tlZAorCitFT0YKIAlnaXQgc3RhdHVzID5vdXRwdXQgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAogJwpAQCAtODM3LDQxICs4ODcsNTIgQEAKIAogaGVhZD0kKGNkIHNtICYmIGdpdCByZXYtcGFyc2UgLS1zaG9ydD03IC0tdmVyaWZ5IEhFQUQpCiAKLWNhdCA+ZXhwZWN0IDw8RU9GCi0jIE9uIGJyYW5jaCBtYXN0ZXIKLSMgQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6Ci0jICAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQotIwotIwluZXcgZmlsZTogICBkaXIyL2FkZGVkCi0jCW5ldyBmaWxlOiAgIHNtCi0jCi0jIENoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgotIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLSMgICAodXNlICJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpCi0jCi0jCW1vZGlmaWVkOiAgIGRpcjEvbW9kaWZpZWQKLSMKLSMgU3VibW9kdWxlIGNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgotIwotIyAqIHNtIDAwMDAwMDAuLi4kaGVhZCAoMSk6Ci0jICAgPiBBZGQgZm9vCi0jCi0jIFVudHJhY2tlZCBmaWxlczoKLSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQotIwotIwlkaXIxL3VudHJhY2tlZAotIwlkaXIyL21vZGlmaWVkCi0jCWRpcjIvdW50cmFja2VkCi0jCWV4cGVjdAotIwlvdXRwdXQKLSMJdW50cmFja2VkCi1FT0YKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyBzdWJtb2R1bGUgc3VtbWFyeScgJworCWNhdCA+ZXhwZWN0IDw8RU9GICYmCitPbiBicmFuY2ggbWFzdGVyCitDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKKyAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQorCisJbmV3IGZpbGU6ICAgZGlyMi9hZGRlZAorCW5ldyBmaWxlOiAgIHNtCisKK0NoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCisgICh1c2UgImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi4iIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkKKworCW1vZGlmaWVkOiAgIGRpcjEvbW9kaWZpZWQKKworU3VibW9kdWxlIGNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorCisqIHNtIDAwMDAwMDAuLi4kaGVhZCAoMSk6CisgID4gQWRkIGZvbworCitVbnRyYWNrZWQgZmlsZXM6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCisKKwlkaXIxL3VudHJhY2tlZAorCWRpcjIvbW9kaWZpZWQKKwlkaXIyL3VudHJhY2tlZAorCWV4cGVjdAorCW91dHB1dAorCXVudHJhY2tlZAorCitFT0YKIAlnaXQgY29uZmlnIHN0YXR1cy5zdWJtb2R1bGVzdW1tYXJ5IDEwICYmCiAJZ2l0IHN0YXR1cyA+b3V0cHV0ICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdCBvdXRwdXQKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzIHN1Ym1vZHVsZSBzdW1tYXJ5IHdpdGggc3RhdHVzLmRpc3BsYXlDb21tZW50UHJlZml4PWZhbHNlJyAnCisJc3RyaXBfY29tbWVudHMgZXhwZWN0ICYmCisJZ2l0IC1jIHN0YXR1cy5kaXNwbGF5Q29tbWVudFByZWZpeD1mYWxzZSBzdGF0dXMgPm91dHB1dCAmJgorCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NvbW1pdCB3aXRoIHN1Ym1vZHVsZSBzdW1tYXJ5IGlnbm9yZXMgc3RhdHVzLmRpc3BsYXlDb21tZW50UHJlZml4JyAnCisJY29tbWl0X3RlbXBsYXRlX2NvbW1lbnRlZAorJworCiBjYXQgPmV4cGVjdCA8PEVPRgogIE0gZGlyMS9tb2RpZmllZAogQSAgZGlyMi9hZGRlZApAQCAtODg4LDI2ICs5NDksMjcgQEAKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKLWNhdCA+ZXhwZWN0IDw8RU9GCi0jIE9uIGJyYW5jaCBtYXN0ZXIKLSMgQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6Ci0jICAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQotIyAgICh1c2UgImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi4iIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkKLSMKLSMJbW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZAotIwotIyBVbnRyYWNrZWQgZmlsZXM6Ci0jICAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIGluY2x1ZGUgaW4gd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLSMKLSMJZGlyMS91bnRyYWNrZWQKLSMJZGlyMi9tb2RpZmllZAotIwlkaXIyL3VudHJhY2tlZAotIwlleHBlY3QKLSMJb3V0cHV0Ci0jCXVudHJhY2tlZAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzIHN1Ym1vZHVsZSBzdW1tYXJ5IChjbGVhbiBzdWJtb2R1bGUpOiBjb21taXQnICcKKwljYXQgPmV4cGVjdCA8PEVPRiAmJgorT24gYnJhbmNoIG1hc3RlcgorQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKKyAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQorCisJbW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZAorCitVbnRyYWNrZWQgZmlsZXM6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCisKKwlkaXIxL3VudHJhY2tlZAorCWRpcjIvbW9kaWZpZWQKKwlkaXIyL3VudHJhY2tlZAorCWV4cGVjdAorCW91dHB1dAorCXVudHJhY2tlZAorCiBubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlICJnaXQgYWRkIiBhbmQvb3IgImdpdCBjb21taXQgLWEiKQogRU9GCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgc3VibW9kdWxlIHN1bW1hcnkgKGNsZWFuIHN1Ym1vZHVsZSk6IGNvbW1pdCcgJwogCWdpdCBjb21taXQgLW0gImNvbW1pdCBzdWJtb2R1bGUiICYmCiAJZ2l0IGNvbmZpZyBzdGF0dXMuc3VibW9kdWxlc3VtbWFyeSAxMCAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCBjb21taXQgLS1kcnktcnVuID5vdXRwdXQgJiYKQEAgLTkzMiw0MSArOTk0LDQyIEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyAteiBpbXBsaWVzIHBvcmNlbGFpbicgJwogCWdpdCBzdGF0dXMgLS1wb3JjZWxhaW4gfAotCSIkUEVSTF9QQVRIIiAtcGUgInMvXDAxMi9cMDAwL2ciID5leHBlY3QgJiYKKwlwZXJsIC1wZSAicy9cMDEyL1wwMDAvZyIgPmV4cGVjdCAmJgogCWdpdCBzdGF0dXMgLXogPm91dHB1dCAmJgogCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKICcKIAotY2F0ID5leHBlY3QgPDxFT0YKLSMgT24gYnJhbmNoIG1hc3RlcgotIyBDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKLSMgICAodXNlICJnaXQgcmVzZXQgSEVBRF4xIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKLSMKLSMJbmV3IGZpbGU6ICAgZGlyMi9hZGRlZAotIwluZXcgZmlsZTogICBzbQotIwotIyBDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKLSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0jICAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQotIwotIwltb2RpZmllZDogICBkaXIxL21vZGlmaWVkCi0jCi0jIFN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKLSMKLSMgKiBzbSAwMDAwMDAwLi4uJGhlYWQgKDEpOgotIyAgID4gQWRkIGZvbwotIwotIyBVbnRyYWNrZWQgZmlsZXM6Ci0jICAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIGluY2x1ZGUgaW4gd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLSMKLSMJZGlyMS91bnRyYWNrZWQKLSMJZGlyMi9tb2RpZmllZAotIwlkaXIyL3VudHJhY2tlZAotIwlleHBlY3QKLSMJb3V0cHV0Ci0jCXVudHJhY2tlZAotRU9GCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjb21taXQgLS1kcnktcnVuIHN1Ym1vZHVsZSBzdW1tYXJ5ICgtLWFtZW5kKScgJworCWNhdCA+ZXhwZWN0IDw8RU9GICYmCitPbiBicmFuY2ggbWFzdGVyCitDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKKyAgKHVzZSAiZ2l0IHJlc2V0IEhFQUReMSA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCisKKwluZXcgZmlsZTogICBkaXIyL2FkZGVkCisJbmV3IGZpbGU6ICAgc20KKworQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKKyAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQorCisJbW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZAorCitTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6CisKKyogc20gMDAwMDAwMC4uLiRoZWFkICgxKToKKyAgPiBBZGQgZm9vCisKK1VudHJhY2tlZCBmaWxlczoKKyAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIGluY2x1ZGUgaW4gd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKKworCWRpcjEvdW50cmFja2VkCisJZGlyMi9tb2RpZmllZAorCWRpcjIvdW50cmFja2VkCisJZXhwZWN0CisJb3V0cHV0CisJdW50cmFja2VkCisKK0VPRgogCWdpdCBjb25maWcgc3RhdHVzLnN1Ym1vZHVsZXN1bW1hcnkgMTAgJiYKIAlnaXQgY29tbWl0IC0tZHJ5LXJ1biAtLWFtZW5kID5vdXRwdXQgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dApAQCAtOTkxLDM3ICsxMDU0LDM3IEBACiBuZXdfaGVhZD0kKGNkIHNtICYmIGdpdCByZXYtcGFyc2UgLS1zaG9ydD03IC0tdmVyaWZ5IEhFQUQpCiB0b3VjaCAuZ2l0bW9kdWxlcwogCi1jYXQgPiBleHBlY3QgPDwgRU9GCi0jIE9uIGJyYW5jaCBtYXN0ZXIKLSMgQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6Ci0jICAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQotIwotIwltb2RpZmllZDogICBzbQotIwotIyBDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKLSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0jICAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQotIwotIwltb2RpZmllZDogICBkaXIxL21vZGlmaWVkCi0jCi0jIFN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKLSMKLSMgKiBzbSAkaGVhZC4uLiRuZXdfaGVhZCAoMSk6Ci0jICAgPiBBZGQgYmFyCi0jCi0jIFVudHJhY2tlZCBmaWxlczoKLSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQotIwotIwkuZ2l0bW9kdWxlcwotIwlkaXIxL3VudHJhY2tlZAotIwlkaXIyL21vZGlmaWVkCi0jCWRpcjIvdW50cmFja2VkCi0jCWV4cGVjdAotIwlvdXRwdXQKLSMJdW50cmFja2VkCi1FT0YKLQogdGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1pZ25vcmUtc3VibW9kdWxlcz11bnRyYWNrZWQgc3VwcHJlc3NlcyBzdWJtb2R1bGVzIHdpdGggdW50cmFja2VkIGNvbnRlbnQnICcKKwljYXQgPiBleHBlY3QgPDwgRU9GICYmCitPbiBicmFuY2ggbWFzdGVyCitDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKKyAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQorCisJbW9kaWZpZWQ6ICAgc20KKworQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKKyAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQorCisJbW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZAorCitTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6CisKKyogc20gJGhlYWQuLi4kbmV3X2hlYWQgKDEpOgorICA+IEFkZCBiYXIKKworVW50cmFja2VkIGZpbGVzOgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorCisJLmdpdG1vZHVsZXMKKwlkaXIxL3VudHJhY2tlZAorCWRpcjIvbW9kaWZpZWQKKwlkaXIyL3VudHJhY2tlZAorCWV4cGVjdAorCW91dHB1dAorCXVudHJhY2tlZAorCitFT0YKIAllY2hvIG1vZGlmaWVkICBzbS91bnRyYWNrZWQgJiYKIAlnaXQgc3RhdHVzIC0taWdub3JlLXN1Ym1vZHVsZXM9dW50cmFja2VkID5vdXRwdXQgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dApAQCAtMTEwMSwzOSArMTE2NCwzOSBAQAogCWdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgIC0tcmVtb3ZlLXNlY3Rpb24gc3VibW9kdWxlLnN1Ym5hbWUKICcKIAotY2F0ID4gZXhwZWN0IDw8IEVPRgotIyBPbiBicmFuY2ggbWFzdGVyCi0jIENoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgotIyAgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKLSMKLSMJbW9kaWZpZWQ6ICAgc20KLSMKLSMgQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6Ci0jICAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQotIyAgICh1c2UgImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi4iIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkKLSMgICAoY29tbWl0IG9yIGRpc2NhcmQgdGhlIHVudHJhY2tlZCBvciBtb2RpZmllZCBjb250ZW50IGluIHN1Ym1vZHVsZXMpCi0jCi0jCW1vZGlmaWVkOiAgIGRpcjEvbW9kaWZpZWQKLSMJbW9kaWZpZWQ6ICAgc20gKG1vZGlmaWVkIGNvbnRlbnQpCi0jCi0jIFN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKLSMKLSMgKiBzbSAkaGVhZC4uLiRuZXdfaGVhZCAoMSk6Ci0jICAgPiBBZGQgYmFyCi0jCi0jIFVudHJhY2tlZCBmaWxlczoKLSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQotIwotIwkuZ2l0bW9kdWxlcwotIwlkaXIxL3VudHJhY2tlZAotIwlkaXIyL21vZGlmaWVkCi0jCWRpcjIvdW50cmFja2VkCi0jCWV4cGVjdAotIwlvdXRwdXQKLSMJdW50cmFja2VkCi1FT0YKLQogdGVzdF9leHBlY3Rfc3VjY2VzcyAiLS1pZ25vcmUtc3VibW9kdWxlcz11bnRyYWNrZWQgZG9lc24ndCBzdXBwcmVzcyBzdWJtb2R1bGVzIHdpdGggbW9kaWZpZWQgY29udGVudCIgJworCWNhdCA+IGV4cGVjdCA8PCBFT0YgJiYKK09uIGJyYW5jaCBtYXN0ZXIKK0NoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCisKKwltb2RpZmllZDogICBzbQorCitDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKKyAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorICAodXNlICJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpCisgIChjb21taXQgb3IgZGlzY2FyZCB0aGUgdW50cmFja2VkIG9yIG1vZGlmaWVkIGNvbnRlbnQgaW4gc3VibW9kdWxlcykKKworCW1vZGlmaWVkOiAgIGRpcjEvbW9kaWZpZWQKKwltb2RpZmllZDogICBzbSAobW9kaWZpZWQgY29udGVudCkKKworU3VibW9kdWxlIGNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorCisqIHNtICRoZWFkLi4uJG5ld19oZWFkICgxKToKKyAgPiBBZGQgYmFyCisKK1VudHJhY2tlZCBmaWxlczoKKyAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIGluY2x1ZGUgaW4gd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKKworCS5naXRtb2R1bGVzCisJZGlyMS91bnRyYWNrZWQKKwlkaXIyL21vZGlmaWVkCisJZGlyMi91bnRyYWNrZWQKKwlleHBlY3QKKwlvdXRwdXQKKwl1bnRyYWNrZWQKKworRU9GCiAJZ2l0IHN0YXR1cyAtLWlnbm9yZS1zdWJtb2R1bGVzPXVudHJhY2tlZCA+IG91dHB1dCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0CiAnCkBAIC0xMTU5LDQzICsxMjIyLDQzIEBACiAKIGhlYWQyPSQoY2Qgc20gJiYgZ2l0IGNvbW1pdCAtcSAtbSAiMm5kIGNvbW1pdCIgZm9vICYmIGdpdCByZXYtcGFyc2UgLS1zaG9ydD03IC0tdmVyaWZ5IEhFQUQpCiAKLWNhdCA+IGV4cGVjdCA8PCBFT0YKLSMgT24gYnJhbmNoIG1hc3RlcgotIyBDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKLSMgICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCi0jCi0jCW1vZGlmaWVkOiAgIHNtCi0jCi0jIENoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgotIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLSMgICAodXNlICJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpCi0jCi0jCW1vZGlmaWVkOiAgIGRpcjEvbW9kaWZpZWQKLSMJbW9kaWZpZWQ6ICAgc20gKG5ldyBjb21taXRzKQotIwotIyBTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6Ci0jCi0jICogc20gJGhlYWQuLi4kbmV3X2hlYWQgKDEpOgotIyAgID4gQWRkIGJhcgotIwotIyBTdWJtb2R1bGVzIGNoYW5nZWQgYnV0IG5vdCB1cGRhdGVkOgotIwotIyAqIHNtICRuZXdfaGVhZC4uLiRoZWFkMiAoMSk6Ci0jICAgPiAybmQgY29tbWl0Ci0jCi0jIFVudHJhY2tlZCBmaWxlczoKLSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQotIwotIwkuZ2l0bW9kdWxlcwotIwlkaXIxL3VudHJhY2tlZAotIwlkaXIyL21vZGlmaWVkCi0jCWRpcjIvdW50cmFja2VkCi0jCWV4cGVjdAotIwlvdXRwdXQKLSMJdW50cmFja2VkCi1FT0YKLQogdGVzdF9leHBlY3Rfc3VjY2VzcyAiLS1pZ25vcmUtc3VibW9kdWxlcz11bnRyYWNrZWQgZG9lc24ndCBzdXBwcmVzcyBzdWJtb2R1bGUgc3VtbWFyeSIgJworCWNhdCA+IGV4cGVjdCA8PCBFT0YgJiYKK09uIGJyYW5jaCBtYXN0ZXIKK0NoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCisKKwltb2RpZmllZDogICBzbQorCitDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKKyAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorICAodXNlICJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpCisKKwltb2RpZmllZDogICBkaXIxL21vZGlmaWVkCisJbW9kaWZpZWQ6ICAgc20gKG5ldyBjb21taXRzKQorCitTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6CisKKyogc20gJGhlYWQuLi4kbmV3X2hlYWQgKDEpOgorICA+IEFkZCBiYXIKKworU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoKKworKiBzbSAkbmV3X2hlYWQuLi4kaGVhZDIgKDEpOgorICA+IDJuZCBjb21taXQKKworVW50cmFja2VkIGZpbGVzOgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorCisJLmdpdG1vZHVsZXMKKwlkaXIxL3VudHJhY2tlZAorCWRpcjIvbW9kaWZpZWQKKwlkaXIyL3VudHJhY2tlZAorCWV4cGVjdAorCW91dHB1dAorCXVudHJhY2tlZAorCitFT0YKIAlnaXQgc3RhdHVzIC0taWdub3JlLXN1Ym1vZHVsZXM9dW50cmFja2VkID4gb3V0cHV0ICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdCBvdXRwdXQKICcKQEAgLTEyNzYsNDcgKzEzMzksNDggQEAKIDsJZXhwZWN0CiA7CW91dHB1dAogOwl1bnRyYWNrZWQKKzsKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICJzdGF0dXMgKGNvcmUuY29tbWVudGNoYXIgd2l0aCBzdWJtb2R1bGUgc3VtbWFyeSkiICcKIAl0ZXN0X2NvbmZpZyBjb3JlLmNvbW1lbnRjaGFyICI7IiAmJgotCWdpdCBzdGF0dXMgPm91dHB1dCAmJgorCWdpdCAtYyBzdGF0dXMuZGlzcGxheUNvbW1lbnRQcmVmaXg9dHJ1ZSBzdGF0dXMgPm91dHB1dCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0CiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgInN0YXR1cyAoY29yZS5jb21tZW50Y2hhciB3aXRoIHR3byBjaGFycyB3aXRoIHN1Ym1vZHVsZSBzdW1tYXJ5KSIgJwogCXRlc3RfY29uZmlnIGNvcmUuY29tbWVudGNoYXIgIjs7IiAmJgotCWdpdCBzdGF0dXMgPm91dHB1dCAmJgorCWdpdCAtYyBzdGF0dXMuZGlzcGxheUNvbW1lbnRQcmVmaXg9dHJ1ZSBzdGF0dXMgPm91dHB1dCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0CiAnCiAKLWNhdCA+IGV4cGVjdCA8PCBFT0YKLSMgT24gYnJhbmNoIG1hc3RlcgotIyBDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKLSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0jICAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQotIwotIwltb2RpZmllZDogICBkaXIxL21vZGlmaWVkCi0jCi0jIFVudHJhY2tlZCBmaWxlczoKLSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQotIwotIwkuZ2l0bW9kdWxlcwotIwlkaXIxL3VudHJhY2tlZAotIwlkaXIyL21vZGlmaWVkCi0jCWRpcjIvdW50cmFja2VkCi0jCWV4cGVjdAotIwlvdXRwdXQKLSMJdW50cmFja2VkCit0ZXN0X2V4cGVjdF9zdWNjZXNzICItLWlnbm9yZS1zdWJtb2R1bGVzPWFsbCBzdXBwcmVzc2VzIHN1Ym1vZHVsZSBzdW1tYXJ5IiAnCisJY2F0ID4gZXhwZWN0IDw8IEVPRiAmJgorT24gYnJhbmNoIG1hc3RlcgorQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKKyAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQorCisJbW9kaWZpZWQ6ICAgZGlyMS9tb2RpZmllZAorCitVbnRyYWNrZWQgZmlsZXM6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCisKKwkuZ2l0bW9kdWxlcworCWRpcjEvdW50cmFja2VkCisJZGlyMi9tb2RpZmllZAorCWRpcjIvdW50cmFja2VkCisJZXhwZWN0CisJb3V0cHV0CisJdW50cmFja2VkCisKIG5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgImdpdCBhZGQiIGFuZC9vciAiZ2l0IGNvbW1pdCAtYSIpCiBFT0YKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAiLS1pZ25vcmUtc3VibW9kdWxlcz1hbGwgc3VwcHJlc3NlcyBzdWJtb2R1bGUgc3VtbWFyeSIgJwogCWdpdCBzdGF0dXMgLS1pZ25vcmUtc3VibW9kdWxlcz1hbGwgPiBvdXRwdXQgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAogJwogCi10ZXN0X2V4cGVjdF9mYWlsdXJlICcuZ2l0bW9kdWxlcyBpZ25vcmU9YWxsIHN1cHByZXNzZXMgc3VibW9kdWxlIHN1bW1hcnknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy5naXRtb2R1bGVzIGlnbm9yZT1hbGwgc3VwcHJlc3NlcyBzdWJtb2R1bGUgc3VtbWFyeScgJwogCWdpdCBjb25maWcgLS1hZGQgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLnN1Ym5hbWUuaWdub3JlIGFsbCAmJgogCWdpdCBjb25maWcgLS1hZGQgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLnN1Ym5hbWUucGF0aCBzbSAmJgogCWdpdCBzdGF0dXMgPiBvdXRwdXQgJiYKQEAgLTEzMjQsNyArMTM4OCw3IEBACiAJZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyAgLS1yZW1vdmUtc2VjdGlvbiBzdWJtb2R1bGUuc3VibmFtZQogJwogCi10ZXN0X2V4cGVjdF9mYWlsdXJlICcuZ2l0L2NvbmZpZyBpZ25vcmU9YWxsIHN1cHByZXNzZXMgc3VibW9kdWxlIHN1bW1hcnknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy5naXQvY29uZmlnIGlnbm9yZT1hbGwgc3VwcHJlc3NlcyBzdWJtb2R1bGUgc3VtbWFyeScgJwogCWdpdCBjb25maWcgLS1hZGQgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLnN1Ym5hbWUuaWdub3JlIG5vbmUgJiYKIAlnaXQgY29uZmlnIC0tYWRkIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5zdWJuYW1lLnBhdGggc20gJiYKIAlnaXQgY29uZmlnIC0tYWRkIHN1Ym1vZHVsZS5zdWJuYW1lLmlnbm9yZSBhbGwgJiYKZGlmZiAtLWdpdCBhL3QvdDc1MTItc3RhdHVzLWhlbHAuc2ggYi90L3Q3NTEyLXN0YXR1cy1oZWxwLnNoCmluZGV4IDMxYTc5OGYuLjNjZWM1N2EgMTAwNzU1Ci0tLSBhL3QvdDc1MTItc3RhdHVzLWhlbHAuc2gKKysrIGIvdC90NzUxMi1zdGF0dXMtaGVscC5zaApAQCAtMjUsMTggKzI1LDE4IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyB3aGVuIGNvbmZsaWN0cyB1bnJlc29sdmVkJyAnCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IG1lcmdlIG1hc3RlciAmJgotCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgotCSMgT24gYnJhbmNoIGNvbmZsaWN0cwotCSMgWW91IGhhdmUgdW5tZXJnZWQgcGF0aHMuCi0JIyAgIChmaXggY29uZmxpY3RzIGFuZCBydW4gImdpdCBjb21taXQiKQotCSMKLQkjIFVubWVyZ2VkIHBhdGhzOgotCSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gbWFyayByZXNvbHV0aW9uKQotCSMKLQkjCWJvdGggbW9kaWZpZWQ6ICAgICAgbWFpbi50eHQKLQkjCi0Jbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSAiZ2l0IGFkZCIgYW5kL29yICJnaXQgY29tbWl0IC1hIikKLQlFT0YKKwljYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgorT24gYnJhbmNoIGNvbmZsaWN0cworWW91IGhhdmUgdW5tZXJnZWQgcGF0aHMuCisgIChmaXggY29uZmxpY3RzIGFuZCBydW4gImdpdCBjb21taXQiKQorCitVbm1lcmdlZCBwYXRoczoKKyAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIG1hcmsgcmVzb2x1dGlvbikKKworCWJvdGggbW9kaWZpZWQ6ICAgICAgbWFpbi50eHQKKworbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSAiZ2l0IGFkZCIgYW5kL29yICJnaXQgY29tbWl0IC1hIikKK0VPRgogCWdpdCBzdGF0dXMgLS11bnRyYWNrZWQtZmlsZXM9bm8gPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTQ3LDE3ICs0NywxNyBAQAogCXRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSBtYXN0ZXIgJiYKIAllY2hvIG9uZSA+bWFpbi50eHQgJiYKIAlnaXQgYWRkIG1haW4udHh0ICYmCi0JY2F0ID5leHBlY3RlZCA8PC1cRU9GICYmCi0JIyBPbiBicmFuY2ggY29uZmxpY3RzCi0JIyBBbGwgY29uZmxpY3RzIGZpeGVkIGJ1dCB5b3UgYXJlIHN0aWxsIG1lcmdpbmcuCi0JIyAgICh1c2UgImdpdCBjb21taXQiIHRvIGNvbmNsdWRlIG1lcmdlKQotCSMKLQkjIENoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgotCSMKLQkjCW1vZGlmaWVkOiAgIG1haW4udHh0Ci0JIwotCSMgVW50cmFja2VkIGZpbGVzIG5vdCBsaXN0ZWQgKHVzZSAtdSBvcHRpb24gdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCi0JRU9GCisJY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKK09uIGJyYW5jaCBjb25mbGljdHMKK0FsbCBjb25mbGljdHMgZml4ZWQgYnV0IHlvdSBhcmUgc3RpbGwgbWVyZ2luZy4KKyAgKHVzZSAiZ2l0IGNvbW1pdCIgdG8gY29uY2x1ZGUgbWVyZ2UpCisKK0NoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorCisJbW9kaWZpZWQ6ICAgbWFpbi50eHQKKworVW50cmFja2VkIGZpbGVzIG5vdCBsaXN0ZWQgKHVzZSAtdSBvcHRpb24gdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC03NiwyMSArNzYsMjEgQEAKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZWJhc2UgLS1hYm9ydCIgJiYKIAlPTlRPPSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IEhFQUReXikgJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlIEhFQUReIC0tb250byBIRUFEXl4gJiYKLQljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCi0JIyBZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZyBicmFuY2ggJ1wnJ3JlYmFzZV9jb25mbGljdHMnXCcnIG9uICdcJyckT05UTydcJycuCi0JIyAgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIikKLQkjICAgKHVzZSAiZ2l0IHJlYmFzZSAtLXNraXAiIHRvIHNraXAgdGhpcyBwYXRjaCkKLQkjICAgKHVzZSAiZ2l0IHJlYmFzZSAtLWFib3J0IiB0byBjaGVjayBvdXQgdGhlIG9yaWdpbmFsIGJyYW5jaCkKLQkjCi0JIyBVbm1lcmdlZCBwYXRoczoKLQkjICAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQotCSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gbWFyayByZXNvbHV0aW9uKQotCSMKLQkjCWJvdGggbW9kaWZpZWQ6ICAgICAgbWFpbi50eHQKLQkjCi0Jbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSAiZ2l0IGFkZCIgYW5kL29yICJnaXQgY29tbWl0IC1hIikKLQlFT0YKKwljYXQgPmV4cGVjdGVkIDw8RU9GICYmCityZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KK1lvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnXCcncmViYXNlX2NvbmZsaWN0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KKyAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQorICAodXNlICJnaXQgcmViYXNlIC0tc2tpcCIgdG8gc2tpcCB0aGlzIHBhdGNoKQorICAodXNlICJnaXQgcmViYXNlIC0tYWJvcnQiIHRvIGNoZWNrIG91dCB0aGUgb3JpZ2luYWwgYnJhbmNoKQorCitVbm1lcmdlZCBwYXRoczoKKyAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gbWFyayByZXNvbHV0aW9uKQorCisJYm90aCBtb2RpZmllZDogICAgICBtYWluLnR4dAorCitubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlICJnaXQgYWRkIiBhbmQvb3IgImdpdCBjb21taXQgLWEiKQorRU9GCiAJZ2l0IHN0YXR1cyAtLXVudHJhY2tlZC1maWxlcz1ubyA+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTAzLDE4ICsxMDMsMTggQEAKIAl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlIEhFQUReIC0tb250byBIRUFEXl4gJiYKIAllY2hvIHRocmVlID5tYWluLnR4dCAmJgogCWdpdCBhZGQgbWFpbi50eHQgJiYKLQljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCi0JIyBZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZyBicmFuY2ggJ1wnJ3JlYmFzZV9jb25mbGljdHMnXCcnIG9uICdcJyckT05UTydcJycuCi0JIyAgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gImdpdCByZWJhc2UgLS1jb250aW51ZSIpCi0JIwotCSMgQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6Ci0JIyAgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKLQkjCi0JIwltb2RpZmllZDogICBtYWluLnR4dAotCSMKLQkjIFVudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQotCUVPRgorCWNhdCA+ZXhwZWN0ZWQgPDxFT0YgJiYKK3JlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTworWW91IGFyZSBjdXJyZW50bHkgcmViYXNpbmcgYnJhbmNoICdcJydyZWJhc2VfY29uZmxpY3RzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgorICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQorCitDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKKyAgKHVzZSAiZ2l0IHJlc2V0IEhFQUQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQorCisJbW9kaWZpZWQ6ICAgbWFpbi50eHQKKworVW50cmFja2VkIGZpbGVzIG5vdCBsaXN0ZWQgKHVzZSAtdSBvcHRpb24gdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0xMzUsMjEgKzEzNSwyMSBAQAogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlYmFzZSAtLWFib3J0IiAmJgogCU9OVE89JChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgcmViYXNlX2lfY29uZmxpY3RzKSAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCByZWJhc2UgLWkgcmViYXNlX2lfY29uZmxpY3RzICYmCi0JY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwotCSMgWW91IGFyZSBjdXJyZW50bHkgcmViYXNpbmcgYnJhbmNoICdcJydyZWJhc2VfaV9jb25mbGljdHNfc2Vjb25kJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgotCSMgICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gImdpdCByZWJhc2UgLS1jb250aW51ZSIpCi0JIyAgICh1c2UgImdpdCByZWJhc2UgLS1za2lwIiB0byBza2lwIHRoaXMgcGF0Y2gpCi0JIyAgICh1c2UgImdpdCByZWJhc2UgLS1hYm9ydCIgdG8gY2hlY2sgb3V0IHRoZSBvcmlnaW5hbCBicmFuY2gpCi0JIwotCSMgVW5tZXJnZWQgcGF0aHM6Ci0JIyAgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKLQkjICAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIG1hcmsgcmVzb2x1dGlvbikKLQkjCi0JIwlib3RoIG1vZGlmaWVkOiAgICAgIG1haW4udHh0Ci0JIwotCW5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgImdpdCBhZGQiIGFuZC9vciAiZ2l0IGNvbW1pdCAtYSIpCi0JRU9GCisJY2F0ID5leHBlY3RlZCA8PEVPRiAmJgorcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCitZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZyBicmFuY2ggJ1wnJ3JlYmFzZV9pX2NvbmZsaWN0c19zZWNvbmQnXCcnIG9uICdcJyckT05UTydcJycuCisgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIikKKyAgKHVzZSAiZ2l0IHJlYmFzZSAtLXNraXAiIHRvIHNraXAgdGhpcyBwYXRjaCkKKyAgKHVzZSAiZ2l0IHJlYmFzZSAtLWFib3J0IiB0byBjaGVjayBvdXQgdGhlIG9yaWdpbmFsIGJyYW5jaCkKKworVW5tZXJnZWQgcGF0aHM6CisgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKKyAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIG1hcmsgcmVzb2x1dGlvbikKKworCWJvdGggbW9kaWZpZWQ6ICAgICAgbWFpbi50eHQKKworbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSAiZ2l0IGFkZCIgYW5kL29yICJnaXQgY29tbWl0IC1hIikKK0VPRgogCWdpdCBzdGF0dXMgLS11bnRyYWNrZWQtZmlsZXM9bm8gPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTE2MSwxOCArMTYxLDE4IEBACiAJT05UTz0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCByZWJhc2VfaV9jb25mbGljdHMpICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlYmFzZSAtaSByZWJhc2VfaV9jb25mbGljdHMgJiYKIAlnaXQgYWRkIG1haW4udHh0ICYmCi0JY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwotCSMgWW91IGFyZSBjdXJyZW50bHkgcmViYXNpbmcgYnJhbmNoICdcJydyZWJhc2VfaV9jb25mbGljdHNfc2Vjb25kJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgotCSMgICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQotCSMKLQkjIENoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgotCSMgICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCi0JIwotCSMJbW9kaWZpZWQ6ICAgbWFpbi50eHQKLQkjCi0JIyBVbnRyYWNrZWQgZmlsZXMgbm90IGxpc3RlZCAodXNlIC11IG9wdGlvbiB0byBzaG93IHVudHJhY2tlZCBmaWxlcykKLQlFT0YKKwljYXQgPmV4cGVjdGVkIDw8RU9GICYmCityZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KK1lvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnXCcncmViYXNlX2lfY29uZmxpY3RzX3NlY29uZCdcJycgb24gJ1wnJyRPTlRPJ1wnJy4KKyAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIikKKworQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6CisgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKKworCW1vZGlmaWVkOiAgIG1haW4udHh0CisKK1VudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQorRU9GCiAJZ2l0IHN0YXR1cyAtLXVudHJhY2tlZC1maWxlcz1ubyA+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTg5LDE0ICsxODksMTQgQEAKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZWJhc2UgLS1hYm9ydCIgJiYKIAlPTlRPPSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IEhFQUR+MikgJiYKIAlnaXQgcmViYXNlIC1pIEhFQUR+MiAmJgotCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KLQkjIFlvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydyZWJhc2VfaV9lZGl0J1wnJyBvbiAnXCcnJE9OVE8nXCcnLgotCSMgICAodXNlICJnaXQgY29tbWl0IC0tYW1lbmQiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkKLQkjICAgKHVzZSAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKQotCSMKLQlub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQotCUVPRgorCWNhdCA+ZXhwZWN0ZWQgPDxFT0YgJiYKK3JlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTworWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3JlYmFzZV9pX2VkaXQnXCcnIG9uICdcJyckT05UTydcJycuCisgICh1c2UgImdpdCBjb21taXQgLS1hbWVuZCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KQorICAodXNlICJnaXQgcmViYXNlIC0tY29udGludWUiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpCisKK25vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0yMTUsMTkgKzIxNSwxOSBAQAogCU9OVE89JChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgSEVBRH4zKSAmJgogCWdpdCByZWJhc2UgLWkgSEVBRH4zICYmCiAJZ2l0IHJlc2V0IEhFQUReICYmCi0JY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwotCSMgWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc3BsaXRfY29tbWl0J1wnJyBvbiAnXCcnJE9OVE8nXCcnLgotCSMgICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gImdpdCByZWJhc2UgLS1jb250aW51ZSIpCi0JIwotCSMgQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6Ci0JIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLQkjICAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQotCSMKLQkjCW1vZGlmaWVkOiAgIG1haW4udHh0Ci0JIwotCW5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgImdpdCBhZGQiIGFuZC9vciAiZ2l0IGNvbW1pdCAtYSIpCi0JRU9GCisJY2F0ID5leHBlY3RlZCA8PEVPRiAmJgorcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCitZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzcGxpdF9jb21taXQnXCcnIG9uICdcJyckT05UTydcJycuCisgIChPbmNlIHlvdXIgd29ya2luZyBkaXJlY3RvcnkgaXMgY2xlYW4sIHJ1biAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIikKKworQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKKyAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQorCisJbW9kaWZpZWQ6ICAgbWFpbi50eHQKKworbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSAiZ2l0IGFkZCIgYW5kL29yICJnaXQgY29tbWl0IC1hIikKK0VPRgogCWdpdCBzdGF0dXMgLS11bnRyYWNrZWQtZmlsZXM9bm8gPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTI0NiwxNCArMjQ2LDE0IEBACiAJT05UTz0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCBIRUFEfjMpICYmCiAJZ2l0IHJlYmFzZSAtaSBIRUFEfjMgJiYKIAlnaXQgY29tbWl0IC0tYW1lbmQgLW0gImZvbyIgJiYKLQljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCi0JIyBZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnYW1lbmRfbGFzdCdcJycgb24gJ1wnJyRPTlRPJ1wnJy4KLQkjICAgKHVzZSAiZ2l0IGNvbW1pdCAtLWFtZW5kIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpCi0JIyAgICh1c2UgImdpdCByZWJhc2UgLS1jb250aW51ZSIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykKLQkjCi0Jbm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcykKLQlFT0YKKwljYXQgPmV4cGVjdGVkIDw8RU9GICYmCityZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KK1lvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydhbWVuZF9sYXN0J1wnJyBvbiAnXCcnJE9OVE8nXCcnLgorICAodXNlICJnaXQgY29tbWl0IC0tYW1lbmQiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkKKyAgKHVzZSAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKQorCitub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQorRU9GCiAJZ2l0IHN0YXR1cyAtLXVudHJhY2tlZC1maWxlcz1ubyA+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMjc2LDE0ICsyNzYsMTQgQEAKIAlPTlRPPSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IEhFQUR+MykgJiYKIAlnaXQgcmViYXNlIC1pIEhFQUR+MyAmJgogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgotCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KLQkjIFlvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzZXZlcmFsX2VkaXRzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgotCSMgICAodXNlICJnaXQgY29tbWl0IC0tYW1lbmQiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkKLQkjICAgKHVzZSAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKQotCSMKLQlub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQotCUVPRgorCWNhdCA+ZXhwZWN0ZWQgPDxFT0YgJiYKK3JlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTworWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3NldmVyYWxfZWRpdHMnXCcnIG9uICdcJyckT05UTydcJycuCisgICh1c2UgImdpdCBjb21taXQgLS1hbWVuZCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KQorICAodXNlICJnaXQgcmViYXNlIC0tY29udGludWUiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpCisKK25vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0yOTgsMTkgKzI5OCwxOSBAQAogCWdpdCByZWJhc2UgLWkgSEVBRH4zICYmCiAJZ2l0IHJlYmFzZSAtLWNvbnRpbnVlICYmCiAJZ2l0IHJlc2V0IEhFQUReICYmCi0JY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwotCSMgWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KLQkjICAgKE9uY2UgeW91ciB3b3JraW5nIGRpcmVjdG9yeSBpcyBjbGVhbiwgcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQotCSMKLQkjIENoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgotCSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCi0JIyAgICh1c2UgImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi4iIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkKLQkjCi0JIwltb2RpZmllZDogICBtYWluLnR4dAotCSMKLQlubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlICJnaXQgYWRkIiBhbmQvb3IgImdpdCBjb21taXQgLWEiKQotCUVPRgorCWNhdCA+ZXhwZWN0ZWQgPDxFT0YgJiYKK3JlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTworWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KKyAgKE9uY2UgeW91ciB3b3JraW5nIGRpcmVjdG9yeSBpcyBjbGVhbiwgcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQorCitDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKKyAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQorICAodXNlICJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpCisKKwltb2RpZmllZDogICBtYWluLnR4dAorCitubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlICJnaXQgYWRkIiBhbmQvb3IgImdpdCBjb21taXQgLWEiKQorRU9GCiAJZ2l0IHN0YXR1cyAtLXVudHJhY2tlZC1maWxlcz1ubyA+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMzI1LDE0ICszMjUsMTQgQEAKIAlnaXQgcmViYXNlIC1pIEhFQUR+MyAmJgogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgogCWdpdCBjb21taXQgLS1hbWVuZCAtbSAiZm9vIiAmJgotCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KLQkjIFlvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzZXZlcmFsX2VkaXRzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgotCSMgICAodXNlICJnaXQgY29tbWl0IC0tYW1lbmQiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkKLQkjICAgKHVzZSAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKQotCSMKLQlub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQotCUVPRgorCWNhdCA+ZXhwZWN0ZWQgPDxFT0YgJiYKK3JlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTworWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3NldmVyYWxfZWRpdHMnXCcnIG9uICdcJyckT05UTydcJycuCisgICh1c2UgImdpdCBjb21taXQgLS1hbWVuZCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KQorICAodXNlICJnaXQgcmViYXNlIC0tY29udGludWUiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpCisKK25vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0zNDcsMTQgKzM0NywxNCBAQAogCWdpdCByZWJhc2UgLWkgSEVBRH4zICYmCiAJZ2l0IGNvbW1pdCAtLWFtZW5kIC1tICJhIiAmJgogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgotCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KLQkjIFlvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzZXZlcmFsX2VkaXRzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgotCSMgICAodXNlICJnaXQgY29tbWl0IC0tYW1lbmQiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkKLQkjICAgKHVzZSAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKQotCSMKLQlub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQotCUVPRgorCWNhdCA+ZXhwZWN0ZWQgPDxFT0YgJiYKK3JlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTworWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3NldmVyYWxfZWRpdHMnXCcnIG9uICdcJyckT05UTydcJycuCisgICh1c2UgImdpdCBjb21taXQgLS1hbWVuZCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KQorICAodXNlICJnaXQgcmViYXNlIC0tY29udGludWUiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpCisKK25vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0zNzAsMTkgKzM3MCwxOSBAQAogCWdpdCBjb21taXQgLS1hbWVuZCAtbSAiYiIgJiYKIAlnaXQgcmViYXNlIC0tY29udGludWUgJiYKIAlnaXQgcmVzZXQgSEVBRF4gJiYKLQljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCi0JIyBZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzZXZlcmFsX2VkaXRzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgotCSMgICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gImdpdCByZWJhc2UgLS1jb250aW51ZSIpCi0JIwotCSMgQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6Ci0JIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKLQkjICAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQotCSMKLQkjCW1vZGlmaWVkOiAgIG1haW4udHh0Ci0JIwotCW5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgImdpdCBhZGQiIGFuZC9vciAiZ2l0IGNvbW1pdCAtYSIpCi0JRU9GCisJY2F0ID5leHBlY3RlZCA8PEVPRiAmJgorcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCitZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzZXZlcmFsX2VkaXRzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgorICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gImdpdCByZWJhc2UgLS1jb250aW51ZSIpCisKK0NoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OgorICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpCisgICh1c2UgImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi4iIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkKKworCW1vZGlmaWVkOiAgIG1haW4udHh0CisKK25vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgImdpdCBhZGQiIGFuZC9vciAiZ2l0IGNvbW1pdCAtYSIpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0zOTgsMTQgKzM5OCwxNCBAQAogCWdpdCBjb21taXQgLS1hbWVuZCAtbSAiYyIgJiYKIAlnaXQgcmViYXNlIC0tY29udGludWUgJiYKIAlnaXQgY29tbWl0IC0tYW1lbmQgLW0gImQiICYmCi0JY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwotCSMgWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3NldmVyYWxfZWRpdHMnXCcnIG9uICdcJyckT05UTydcJycuCi0JIyAgICh1c2UgImdpdCBjb21taXQgLS1hbWVuZCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KQotCSMgICAodXNlICJnaXQgcmViYXNlIC0tY29udGludWUiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpCi0JIwotCW5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCi0JRU9GCisJY2F0ID5leHBlY3RlZCA8PEVPRiAmJgorcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCitZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KKyAgKHVzZSAiZ2l0IGNvbW1pdCAtLWFtZW5kIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpCisgICh1c2UgImdpdCByZWJhc2UgLS1jb250aW51ZSIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykKKworbm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcykKK0VPRgogCWdpdCBzdGF0dXMgLS11bnRyYWNrZWQtZmlsZXM9bm8gPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTQyMiwxNCArNDIyLDE0IEBACiAJZ2l0IGFkZCBtYWluLnR4dCAmJgogCWdpdCBjb21taXQgLW0gImUiICYmCiAJZ2l0IHJlYmFzZSAtLWNvbnRpbnVlICYmCi0JY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwotCSMgWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3NldmVyYWxfZWRpdHMnXCcnIG9uICdcJyckT05UTydcJycuCi0JIyAgICh1c2UgImdpdCBjb21taXQgLS1hbWVuZCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KQotCSMgICAodXNlICJnaXQgcmViYXNlIC0tY29udGludWUiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpCi0JIwotCW5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCi0JRU9GCisJY2F0ID5leHBlY3RlZCA8PEVPRiAmJgorcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCitZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KKyAgKHVzZSAiZ2l0IGNvbW1pdCAtLWFtZW5kIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpCisgICh1c2UgImdpdCByZWJhc2UgLS1jb250aW51ZSIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykKKworbm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcykKK0VPRgogCWdpdCBzdGF0dXMgLS11bnRyYWNrZWQtZmlsZXM9bm8gPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTQ0NywxOSArNDQ3LDE5IEBACiAJZ2l0IGNvbW1pdCAtLWFtZW5kIC1tICJmIiAmJgogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgogCWdpdCByZXNldCBIRUFEXiAmJgotCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KLQkjIFlvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3NldmVyYWxfZWRpdHMnXCcnIG9uICdcJyckT05UTydcJycuCi0JIyAgIChPbmNlIHlvdXIgd29ya2luZyBkaXJlY3RvcnkgaXMgY2xlYW4sIHJ1biAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIikKLQkjCi0JIyBDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoKLQkjICAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKQotCSMgICAodXNlICJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpCi0JIwotCSMJbW9kaWZpZWQ6ICAgbWFpbi50eHQKLQkjCi0Jbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSAiZ2l0IGFkZCIgYW5kL29yICJnaXQgY29tbWl0IC1hIikKLQlFT0YKKwljYXQgPmV4cGVjdGVkIDw8RU9GICYmCityZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KK1lvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3NldmVyYWxfZWRpdHMnXCcnIG9uICdcJyckT05UTydcJycuCisgIChPbmNlIHlvdXIgd29ya2luZyBkaXJlY3RvcnkgaXMgY2xlYW4sIHJ1biAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIikKKworQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkKKyAgKHVzZSAiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLiIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KQorCisJbW9kaWZpZWQ6ICAgbWFpbi50eHQKKworbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSAiZ2l0IGFkZCIgYW5kL29yICJnaXQgY29tbWl0IC1hIikKK0VPRgogCWdpdCBzdGF0dXMgLS11bnRyYWNrZWQtZmlsZXM9bm8gPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTQ3NywxNCArNDc3LDE0IEBACiAJZ2l0IGNvbW1pdCAtLWFtZW5kIC1tICJnIiAmJgogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgogCWdpdCBjb21taXQgLS1hbWVuZCAtbSAiaCIgJiYKLQljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCi0JIyBZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KLQkjICAgKHVzZSAiZ2l0IGNvbW1pdCAtLWFtZW5kIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpCi0JIyAgICh1c2UgImdpdCByZWJhc2UgLS1jb250aW51ZSIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykKLQkjCi0Jbm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcykKLQlFT0YKKwljYXQgPmV4cGVjdGVkIDw8RU9GICYmCityZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KK1lvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzZXZlcmFsX2VkaXRzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgorICAodXNlICJnaXQgY29tbWl0IC0tYW1lbmQiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkKKyAgKHVzZSAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKQorCitub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQorRU9GCiAJZ2l0IHN0YXR1cyAtLXVudHJhY2tlZC1maWxlcz1ubyA+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtNTA0LDE1ICs1MDQsMTUgQEAKIAl0ZXN0X3doZW5fZmluaXNoZWQgInJtIE1haWxkaXIvKiAmJiBnaXQgYW0gLS1hYm9ydCIgJiYKIAlnaXQgZm9ybWF0LXBhdGNoIC0xIC1vTWFpbGRpciAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCBhbSBNYWlsZGlyLyoucGF0Y2ggJiYKLQljYXQgPmV4cGVjdGVkIDw8LVxFT0YgJiYKLQkjIE9uIGJyYW5jaCBhbV9hbHJlYWR5X2V4aXN0cwotCSMgWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGFuIGFtIHNlc3Npb24uCi0JIyAgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biAiZ2l0IGFtIC0tY29udGludWUiKQotCSMgICAodXNlICJnaXQgYW0gLS1za2lwIiB0byBza2lwIHRoaXMgcGF0Y2gpCi0JIyAgICh1c2UgImdpdCBhbSAtLWFib3J0IiB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBicmFuY2gpCi0JIwotCW5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCi0JRU9GCisJY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKK09uIGJyYW5jaCBhbV9hbHJlYWR5X2V4aXN0cworWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGFuIGFtIHNlc3Npb24uCisgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biAiZ2l0IGFtIC0tY29udGludWUiKQorICAodXNlICJnaXQgYW0gLS1za2lwIiB0byBza2lwIHRoaXMgcGF0Y2gpCisgICh1c2UgImdpdCBhbSAtLWFib3J0IiB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBicmFuY2gpCisKK25vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC01MjYsMTUgKzUyNiwxNSBAQAogCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gTWFpbGRpci8qICYmIGdpdCBhbSAtLWFib3J0IiAmJgogCWdpdCBmb3JtYXQtcGF0Y2ggLTEgLW9NYWlsZGlyICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGFtIE1haWxkaXIvKi5wYXRjaCAmJgotCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgotCSMgT24gYnJhbmNoIGFtX25vdF9leGlzdHMKLQkjIFlvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhbiBhbSBzZXNzaW9uLgotCSMgICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gImdpdCBhbSAtLWNvbnRpbnVlIikKLQkjICAgKHVzZSAiZ2l0IGFtIC0tc2tpcCIgdG8gc2tpcCB0aGlzIHBhdGNoKQotCSMgICAodXNlICJnaXQgYW0gLS1hYm9ydCIgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoKQotCSMKLQlub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQotCUVPRgorCWNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCitPbiBicmFuY2ggYW1fbm90X2V4aXN0cworWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGFuIGFtIHNlc3Npb24uCisgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biAiZ2l0IGFtIC0tY29udGludWUiKQorICAodXNlICJnaXQgYW0gLS1za2lwIiB0byBza2lwIHRoaXMgcGF0Y2gpCisgICh1c2UgImdpdCBhbSAtLWFib3J0IiB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBicmFuY2gpCisKK25vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC01NDksMTUgKzU0OSwxNSBAQAogCWdpdCBjb21taXQgLW0gImRlbGV0ZSBhbGwgYW1fZW1wdHkiICYmCiAJZWNobyBlcnJvciA+TWFpbGRpci8wMDAyLXR3b19hbS5wYXRjaCAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCBhbSBNYWlsZGlyLyoucGF0Y2ggJiYKLQljYXQgPmV4cGVjdGVkIDw8LVxFT0YgJiYKLQkjIE9uIGJyYW5jaCBhbV9lbXB0eQotCSMgWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGFuIGFtIHNlc3Npb24uCi0JIyBUaGUgY3VycmVudCBwYXRjaCBpcyBlbXB0eS4KLQkjICAgKHVzZSAiZ2l0IGFtIC0tc2tpcCIgdG8gc2tpcCB0aGlzIHBhdGNoKQotCSMgICAodXNlICJnaXQgYW0gLS1hYm9ydCIgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoKQotCSMKLQlub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQotCUVPRgorCWNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCitPbiBicmFuY2ggYW1fZW1wdHkKK1lvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhbiBhbSBzZXNzaW9uLgorVGhlIGN1cnJlbnQgcGF0Y2ggaXMgZW1wdHkuCisgICh1c2UgImdpdCBhbSAtLXNraXAiIHRvIHNraXAgdGhpcyBwYXRjaCkKKyAgKHVzZSAiZ2l0IGFtIC0tYWJvcnQiIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCkKKworbm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcykKK0VPRgogCWdpdCBzdGF0dXMgLS11bnRyYWNrZWQtZmlsZXM9bm8gPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTU3NCwxMyArNTc0LDEzIEBACiAJZ2l0IGJpc2VjdCBiYWQgJiYKIAlnaXQgYmlzZWN0IGdvb2Qgb25lX2Jpc2VjdCAmJgogCVRHVD0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCB0d29fYmlzZWN0KSAmJgotCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGF0ICRUR1QKLQkjIFlvdSBhcmUgY3VycmVudGx5IGJpc2VjdGluZywgc3RhcnRlZCBmcm9tIGJyYW5jaCAnXCcnYmlzZWN0J1wnJy4KLQkjICAgKHVzZSAiZ2l0IGJpc2VjdCByZXNldCIgdG8gZ2V0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGJyYW5jaCkKLQkjCi0Jbm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcykKLQlFT0YKKwljYXQgPmV4cGVjdGVkIDw8RU9GICYmCitIRUFEIGRldGFjaGVkIGF0ICRUR1QKK1lvdSBhcmUgY3VycmVudGx5IGJpc2VjdGluZywgc3RhcnRlZCBmcm9tIGJyYW5jaCAnXCcnYmlzZWN0J1wnJy4KKyAgKHVzZSAiZ2l0IGJpc2VjdCByZXNldCIgdG8gZ2V0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGJyYW5jaCkKKworbm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcykKK0VPRgogCWdpdCBzdGF0dXMgLS11bnRyYWNrZWQtZmlsZXM9bm8gPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTU5NywxNSArNTk3LDE1IEBACiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgcmViYXNlIC0tYWJvcnQiICYmCiAJT05UTz0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCBIRUFEXl4pICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlYmFzZSBIRUFEXiAtLW9udG8gSEVBRF5eICYmCi0JY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwotCSMgWW91IGFyZSBjdXJyZW50bHkgcmViYXNpbmcgYnJhbmNoICdcJydzdGF0dXNoaW50c19kaXNhYmxlZCdcJycgb24gJ1wnJyRPTlRPJ1wnJy4KLQkjCi0JIyBVbm1lcmdlZCBwYXRoczoKLQkjCWJvdGggbW9kaWZpZWQ6ICAgICAgbWFpbi50eHQKLQkjCi0Jbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQKLQlFT0YKKwljYXQgPmV4cGVjdGVkIDw8RU9GICYmCityZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KK1lvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnXCcnc3RhdHVzaGludHNfZGlzYWJsZWQnXCcnIG9uICdcJyckT05UTydcJycuCisKK1VubWVyZ2VkIHBhdGhzOgorCWJvdGggbW9kaWZpZWQ6ICAgICAgbWFpbi50eHQKKworbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQKK0VPRgogCWdpdCBzdGF0dXMgLS11bnRyYWNrZWQtZmlsZXM9bm8gPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTYyNiwxOSArNjI2LDIwIEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgd2hlbiBjaGVycnktcGlja2luZyBiZWZvcmUgcmVzb2x2aW5nIGNvbmZsaWN0cycgJwogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnQiICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZXJyeS1waWNrIGNoZXJyeV9icmFuY2hfc2Vjb25kICYmCi0JY2F0ID5leHBlY3RlZCA8PC1cRU9GICYmCi0JIyBPbiBicmFuY2ggY2hlcnJ5X2JyYW5jaAotCSMgWW91IGFyZSBjdXJyZW50bHkgY2hlcnJ5LXBpY2tpbmcuCi0JIyAgIChmaXggY29uZmxpY3RzIGFuZCBydW4gImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlIikKLQkjICAgKHVzZSAiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnQiIHRvIGNhbmNlbCB0aGUgY2hlcnJ5LXBpY2sgb3BlcmF0aW9uKQotCSMKLQkjIFVubWVyZ2VkIHBhdGhzOgotCSMgICAodXNlICJnaXQgYWRkIDxmaWxlPi4uLiIgdG8gbWFyayByZXNvbHV0aW9uKQotCSMKLQkjCWJvdGggbW9kaWZpZWQ6ICAgICAgbWFpbi50eHQKLQkjCi0Jbm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSAiZ2l0IGFkZCIgYW5kL29yICJnaXQgY29tbWl0IC1hIikKLQlFT0YKKwlUT19DSEVSUllfUElDSz0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCBDSEVSUllfUElDS19IRUFEKSAmJgorCWNhdCA+ZXhwZWN0ZWQgPDxFT0YgJiYKK09uIGJyYW5jaCBjaGVycnlfYnJhbmNoCitZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZyBjb21taXQgJFRPX0NIRVJSWV9QSUNLLgorICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuICJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZSIpCisgICh1c2UgImdpdCBjaGVycnktcGljayAtLWFib3J0IiB0byBjYW5jZWwgdGhlIGNoZXJyeS1waWNrIG9wZXJhdGlvbikKKworVW5tZXJnZWQgcGF0aHM6CisgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byBtYXJrIHJlc29sdXRpb24pCisKKwlib3RoIG1vZGlmaWVkOiAgICAgIG1haW4udHh0CisKK25vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgImdpdCBhZGQiIGFuZC9vciAiZ2l0IGNvbW1pdCAtYSIpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC02NDgsMjAgKzY0OSwyMSBAQAogCWdpdCByZXNldCAtLWhhcmQgY2hlcnJ5X2JyYW5jaCAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnQiICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZXJyeS1waWNrIGNoZXJyeV9icmFuY2hfc2Vjb25kICYmCisJVE9fQ0hFUlJZX1BJQ0s9JChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgQ0hFUlJZX1BJQ0tfSEVBRCkgJiYKIAllY2hvIGVuZCA+bWFpbi50eHQgJiYKIAlnaXQgYWRkIG1haW4udHh0ICYmCi0JY2F0ID5leHBlY3RlZCA8PC1cRU9GICYmCi0JIyBPbiBicmFuY2ggY2hlcnJ5X2JyYW5jaAotCSMgWW91IGFyZSBjdXJyZW50bHkgY2hlcnJ5LXBpY2tpbmcuCi0JIyAgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlIikKLQkjICAgKHVzZSAiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnQiIHRvIGNhbmNlbCB0aGUgY2hlcnJ5LXBpY2sgb3BlcmF0aW9uKQotCSMKLQkjIENoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgotCSMKLQkjCW1vZGlmaWVkOiAgIG1haW4udHh0Ci0JIwotCSMgVW50cmFja2VkIGZpbGVzIG5vdCBsaXN0ZWQgKHVzZSAtdSBvcHRpb24gdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCi0JRU9GCisJY2F0ID5leHBlY3RlZCA8PEVPRiAmJgorT24gYnJhbmNoIGNoZXJyeV9icmFuY2gKK1lvdSBhcmUgY3VycmVudGx5IGNoZXJyeS1waWNraW5nIGNvbW1pdCAkVE9fQ0hFUlJZX1BJQ0suCisgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlIikKKyAgKHVzZSAiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnQiIHRvIGNhbmNlbCB0aGUgY2hlcnJ5LXBpY2sgb3BlcmF0aW9uKQorCitDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoKKworCW1vZGlmaWVkOiAgIG1haW4udHh0CisKK1VudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQorRU9GCiAJZ2l0IHN0YXR1cyAtLXVudHJhY2tlZC1maWxlcz1ubyA+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtNjY5LDE4ICs2NzEsMTggQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyBzaG93aW5nIGRldGFjaGVkIGF0IGFuZCBmcm9tIGEgdGFnJyAnCiAJdGVzdF9jb21taXQgYXRhZyB0YWdnaW5nICYmCiAJZ2l0IGNoZWNrb3V0IGF0YWcgJiYKLQljYXQgPmV4cGVjdGVkIDw8LVxFT0YKLQkjIEhFQUQgZGV0YWNoZWQgYXQgYXRhZwotCW5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCi0JRU9GCisJY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKK0hFQUQgZGV0YWNoZWQgYXQgYXRhZworbm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcykKK0VPRgogCWdpdCBzdGF0dXMgLS11bnRyYWNrZWQtZmlsZXM9bm8gPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwgJiYKIAogCWdpdCByZXNldCAtLWhhcmQgSEVBRF4gJiYKLQljYXQgPmV4cGVjdGVkIDw8LVxFT0YKLQkjIEhFQUQgZGV0YWNoZWQgZnJvbSBhdGFnCi0Jbm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcykKLQlFT0YKKwljYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgorSEVBRCBkZXRhY2hlZCBmcm9tIGF0YWcKK25vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC02OTUsMjAgKzY5NywyMCBAQAogCXRlc3RfY29tbWl0IG5ldyB0by1yZXZlcnQudHh0ICYmCiAJVE9fUkVWRVJUPSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IEhFQUReKSAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCByZXZlcnQgJFRPX1JFVkVSVCAmJgotCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GCi0JIyBPbiBicmFuY2ggbWFzdGVyCi0JIyBZb3UgYXJlIGN1cnJlbnRseSByZXZlcnRpbmcgY29tbWl0ICRUT19SRVZFUlQuCi0JIyAgIChmaXggY29uZmxpY3RzIGFuZCBydW4gImdpdCByZXZlcnQgLS1jb250aW51ZSIpCi0JIyAgICh1c2UgImdpdCByZXZlcnQgLS1hYm9ydCIgdG8gY2FuY2VsIHRoZSByZXZlcnQgb3BlcmF0aW9uKQotCSMKLQkjIFVubWVyZ2VkIHBhdGhzOgotCSMgICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCi0JIyAgICh1c2UgImdpdCBhZGQgPGZpbGU+Li4uIiB0byBtYXJrIHJlc29sdXRpb24pCi0JIwotCSMJYm90aCBtb2RpZmllZDogICAgICB0by1yZXZlcnQudHh0Ci0JIwotCW5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgImdpdCBhZGQiIGFuZC9vciAiZ2l0IGNvbW1pdCAtYSIpCi0JRU9GCisJY2F0ID5leHBlY3RlZCA8PEVPRiAmJgorT24gYnJhbmNoIG1hc3RlcgorWW91IGFyZSBjdXJyZW50bHkgcmV2ZXJ0aW5nIGNvbW1pdCAkVE9fUkVWRVJULgorICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuICJnaXQgcmV2ZXJ0IC0tY29udGludWUiKQorICAodXNlICJnaXQgcmV2ZXJ0IC0tYWJvcnQiIHRvIGNhbmNlbCB0aGUgcmV2ZXJ0IG9wZXJhdGlvbikKKworVW5tZXJnZWQgcGF0aHM6CisgICh1c2UgImdpdCByZXNldCBIRUFEIDxmaWxlPi4uLiIgdG8gdW5zdGFnZSkKKyAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIG1hcmsgcmVzb2x1dGlvbikKKworCWJvdGggbW9kaWZpZWQ6ICAgICAgdG8tcmV2ZXJ0LnR4dAorCitubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlICJnaXQgYWRkIiBhbmQvb3IgImdpdCBjb21taXQgLWEiKQorRU9GCiAJZ2l0IHN0YXR1cyAtLXVudHJhY2tlZC1maWxlcz1ubyA+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtNzE2LDI5ICs3MTgsMjkgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyB3aGlsZSByZXZlcnRpbmcgY29tbWl0IChjb25mbGljdHMgcmVzb2x2ZWQpJyAnCiAJZWNobyByZXZlcnRlZCA+dG8tcmV2ZXJ0LnR4dCAmJgogCWdpdCBhZGQgdG8tcmV2ZXJ0LnR4dCAmJgotCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GCi0JIyBPbiBicmFuY2ggbWFzdGVyCi0JIyBZb3UgYXJlIGN1cnJlbnRseSByZXZlcnRpbmcgY29tbWl0ICRUT19SRVZFUlQuCi0JIyAgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gImdpdCByZXZlcnQgLS1jb250aW51ZSIpCi0JIyAgICh1c2UgImdpdCByZXZlcnQgLS1hYm9ydCIgdG8gY2FuY2VsIHRoZSByZXZlcnQgb3BlcmF0aW9uKQotCSMKLQkjIENoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgotCSMgICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCi0JIwotCSMJbW9kaWZpZWQ6ICAgdG8tcmV2ZXJ0LnR4dAotCSMKLQkjIFVudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQotCUVPRgorCWNhdCA+ZXhwZWN0ZWQgPDxFT0YgJiYKK09uIGJyYW5jaCBtYXN0ZXIKK1lvdSBhcmUgY3VycmVudGx5IHJldmVydGluZyBjb21taXQgJFRPX1JFVkVSVC4KKyAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biAiZ2l0IHJldmVydCAtLWNvbnRpbnVlIikKKyAgKHVzZSAiZ2l0IHJldmVydCAtLWFib3J0IiB0byBjYW5jZWwgdGhlIHJldmVydCBvcGVyYXRpb24pCisKK0NoYW5nZXMgdG8gYmUgY29tbWl0dGVkOgorICAodXNlICJnaXQgcmVzZXQgSEVBRCA8ZmlsZT4uLi4iIHRvIHVuc3RhZ2UpCisKKwltb2RpZmllZDogICB0by1yZXZlcnQudHh0CisKK1VudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKQorRU9GCiAJZ2l0IHN0YXR1cyAtLXVudHJhY2tlZC1maWxlcz1ubyA+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgYWZ0ZXIgcmV2ZXJ0aW5nIGNvbW1pdCcgJwogCWdpdCByZXZlcnQgLS1jb250aW51ZSAmJgotCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRgotCSMgT24gYnJhbmNoIG1hc3RlcgotCW5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCi0JRU9GCisJY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKK09uIGJyYW5jaCBtYXN0ZXIKK25vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCitFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCmRpZmYgLS1naXQgYS90L3Q3NjEwLW1lcmdldG9vbC5zaCBiL3QvdDc2MTAtbWVyZ2V0b29sLnNoCmluZGV4IGQ1MjZiMWQuLjA1ZDlkYjAgMTAwNzU1Ci0tLSBhL3QvdDc2MTAtbWVyZ2V0b29sLnNoCisrKyBiL3QvdDc2MTAtbWVyZ2V0b29sLnNoCkBAIC0yNTMsNyArMjUzLDcgQEAKICAgICBnaXQgY2hlY2tvdXQgLWIgdGVzdDYgYnJhbmNoMSAmJgogICAgIGdpdCBzdWJtb2R1bGUgdXBkYXRlIC1OICYmCiAgICAgbXYgc3VibW9kIHN1Ym1vZC1tb3ZlZGFzaWRlICYmCi0gICAgZ2l0IHJtIHN1Ym1vZCAmJgorICAgIGdpdCBybSAtLWNhY2hlZCBzdWJtb2QgJiYKICAgICBnaXQgY29tbWl0IC1tICJTdWJtb2R1bGUgZGVsZXRlZCBmcm9tIGJyYW5jaCIgJiYKICAgICBnaXQgY2hlY2tvdXQgLWIgdGVzdDYuYSB0ZXN0NiAmJgogICAgIHRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSBtYXN0ZXIgJiYKQEAgLTMyMiw3ICszMjIsNyBAQAogICAgIGdpdCBjaGVja291dCAtYiB0ZXN0NyBicmFuY2gxICYmCiAgICAgZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLU4gJiYKICAgICBtdiBzdWJtb2Qgc3VibW9kLW1vdmVkYXNpZGUgJiYKLSAgICBnaXQgcm0gc3VibW9kICYmCisgICAgZ2l0IHJtIC0tY2FjaGVkIHN1Ym1vZCAmJgogICAgIGVjaG8gbm90IGEgc3VibW9kdWxlID5zdWJtb2QgJiYKICAgICBnaXQgYWRkIHN1Ym1vZCAmJgogICAgIGdpdCBjb21taXQgLW0gIlN1Ym1vZHVsZSBwYXRoIGJlY29tZXMgZmlsZSIgJiYKQEAgLTQ1Myw3ICs0NTMsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlyZWN0b3J5IHZzIG1vZGlmaWVkIHN1Ym1vZHVsZScgJwogICAgIGdpdCBjaGVja291dCAtYiB0ZXN0MTEgYnJhbmNoMSAmJgogICAgIG12IHN1Ym1vZCBzdWJtb2QtbW92ZWRhc2lkZSAmJgotICAgIGdpdCBybSBzdWJtb2QgJiYKKyAgICBnaXQgcm0gLS1jYWNoZWQgc3VibW9kICYmCiAgICAgbWtkaXIgc3VibW9kICYmCiAgICAgZWNobyBub3QgYSBzdWJtb2R1bGUgPnN1Ym1vZC9maWxlMTYgJiYKICAgICBnaXQgYWRkIHN1Ym1vZC9maWxlMTYgJiYKZGlmZiAtLWdpdCBhL3QvdDc3MDAtcmVwYWNrLnNoIGIvdC90NzcwMC1yZXBhY2suc2gKaW5kZXggZDk1NGI4NC4uYjQ1YmQxZSAxMDA3NTUKLS0tIGEvdC90NzcwMC1yZXBhY2suc2gKKysrIGIvdC90NzcwMC1yZXBhY2suc2gKQEAgLTE3LDcgKzE3LDcgQEAKIAkjIFRoZSBzZWNvbmQgcGFjayB3aWxsIGNvbnRhaW4gdGhlIGV4Y2x1ZGVkIG9iamVjdAogCXBhY2tzaGExPSQoZ2l0IHJldi1saXN0IC0tb2JqZWN0cyAtLWFsbCB8IGdyZXAgZmlsZTIgfAogCQlnaXQgcGFjay1vYmplY3RzIHBhY2spICYmCi0JdG91Y2ggLXIgcGFjay0kcGFja3NoYTEucGFjayBwYWNrLSRwYWNrc2hhMS5rZWVwICYmCisJPnBhY2stJHBhY2tzaGExLmtlZXAgJiYKIAlvYmpzaGExPSQoZ2l0IHZlcmlmeS1wYWNrIC12IHBhY2stJHBhY2tzaGExLmlkeCB8IGhlYWQgLW4gMSB8CiAJCXNlZCAtZSAicy9eXChbMC05YS1mXVx7NDBcfVwpLiovXDEvIikgJiYKIAltdiBwYWNrLSogLmdpdC9vYmplY3RzL3BhY2svICYmCmRpZmYgLS1naXQgYS90L3Q4MDA3LWNhdC1maWxlLXRleHRjb252LnNoIGIvdC90ODAwNy1jYXQtZmlsZS10ZXh0Y29udi5zaAppbmRleCBiOTVlMTAyLi5lYWNkNDlhIDEwMDc1NQotLS0gYS90L3Q4MDA3LWNhdC1maWxlLXRleHRjb252LnNoCisrKyBiL3QvdDgwMDctY2F0LWZpbGUtdGV4dGNvbnYuc2gKQEAgLTIwLDExICsyMCwxMSBAQAogJwogCiBjYXQgPmV4cGVjdGVkIDw8RU9GCi1mYXRhbDogZ2l0IGNhdC1maWxlIC0tdGV4dGNvbnY6IHVuYWJsZSB0byBydW4gdGV4dGNvbnYgb24gOm9uZS5iaW4KK2JpbjogdGVzdCB2ZXJzaW9uIDIKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdubyBmaWx0ZXIgc3BlY2lmaWVkJyAnCi0JZ2l0IGNhdC1maWxlIC0tdGV4dGNvbnYgOm9uZS5iaW4gMj5yZXN1bHQKKwlnaXQgY2F0LWZpbGUgLS10ZXh0Y29udiA6b25lLmJpbiA+cmVzdWx0ICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgcmVzdWx0CiAnCiAKQEAgLTM0LDEwICszNCw2IEBACiAJZ2l0IGNvbmZpZyBkaWZmLnRlc3QuY2FjaGV0ZXh0Y29udiBmYWxzZQogJwogCi1jYXQgPmV4cGVjdGVkIDw8RU9GCi1iaW46IHRlc3QgdmVyc2lvbiAyCi1FT0YKLQogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2F0LWZpbGUgd2l0aG91dCAtLXRleHRjb252JyAnCiAJZ2l0IGNhdC1maWxlIGJsb2IgOm9uZS5iaW4gPnJlc3VsdCAmJgogCXRlc3RfY21wIGV4cGVjdGVkIHJlc3VsdApAQCAtNzEsMjUgKzY3LDE5IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NhdC1maWxlIHdpdGhvdXQgLS10ZXh0Y29udiAoc3ltbGluayknICcKKwlwcmludGYgIiVzIiAib25lLmJpbiIgPmV4cGVjdGVkICYmCiAJZ2l0IGNhdC1maWxlIGJsb2IgOnN5bWxpbmsuYmluID5yZXN1bHQgJiYKLQlwcmludGYgIiVzIiAib25lLmJpbiIgPmV4cGVjdGVkCiAJdGVzdF9jbXAgZXhwZWN0ZWQgcmVzdWx0CiAnCiAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2F0LWZpbGUgLS10ZXh0Y29udiBvbiBpbmRleCAoc3ltbGluayknICcKLQkhIGdpdCBjYXQtZmlsZSAtLXRleHRjb252IDpzeW1saW5rLmJpbiAyPnJlc3VsdCAmJgotCWNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCi1mYXRhbDogZ2l0IGNhdC1maWxlIC0tdGV4dGNvbnY6IHVuYWJsZSB0byBydW4gdGV4dGNvbnYgb24gOnN5bWxpbmsuYmluCi1FT0YKKwlnaXQgY2F0LWZpbGUgLS10ZXh0Y29udiA6c3ltbGluay5iaW4gPnJlc3VsdCAmJgogCXRlc3RfY21wIGV4cGVjdGVkIHJlc3VsdAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjYXQtZmlsZSAtLXRleHRjb252IG9uIEhFQUQgKHN5bWxpbmspJyAnCi0JISBnaXQgY2F0LWZpbGUgLS10ZXh0Y29udiBIRUFEOnN5bWxpbmsuYmluIDI+cmVzdWx0ICYmCi0JY2F0ID5leHBlY3RlZCA8PEVPRiAmJgotZmF0YWw6IGdpdCBjYXQtZmlsZSAtLXRleHRjb252OiB1bmFibGUgdG8gcnVuIHRleHRjb252IG9uIEhFQUQ6c3ltbGluay5iaW4KLUVPRgorCWdpdCBjYXQtZmlsZSAtLXRleHRjb252IEhFQUQ6c3ltbGluay5iaW4gPnJlc3VsdCAmJgogCXRlc3RfY21wIGV4cGVjdGVkIHJlc3VsdAogJwogCmRpZmYgLS1naXQgYS90L3Q5MDAxLXNlbmQtZW1haWwuc2ggYi90L3Q5MDAxLXNlbmQtZW1haWwuc2gKaW5kZXggMjgxM2FhOS4uMzExOWM4YyAxMDA3NTUKLS0tIGEvdC90OTAwMS1zZW5kLWVtYWlsLnNoCisrKyBiL3QvdDkwMDEtc2VuZC1lbWFpbC5zaApAQCAtMjMsNyArMjMsNiBAQAogICAgICAgZWNobyBkbwogICAgICAgZWNobyAiICBlY2hvIFwiIVwkYSFcIiIKICAgICAgIGVjaG8gImRvbmUgPmNvbW1hbmRsaW5lXCRvdXRwdXQiCi0gICAgICB0ZXN0X2hhdmVfcHJlcmVxIE1JTkdXICYmIGVjaG8gImRvczJ1bml4IGNvbW1hbmRsaW5lXCRvdXRwdXQiCiAgICAgICBlY2hvICJjYXQgPiBtc2d0eHRcJG91dHB1dCIKICAgICAgICkgPmZha2Uuc2VuZG1haWwgJiYKICAgICAgY2htb2QgK3ggLi9mYWtlLnNlbmRtYWlsICYmCmRpZmYgLS1naXQgYS90L3Q5MTE0LWdpdC1zdm4tZGNvbW1pdC1tZXJnZS5zaCBiL3QvdDkxMTQtZ2l0LXN2bi1kY29tbWl0LW1lcmdlLnNoCmluZGV4IGY1MjRkMmYuLmQzM2Q3MTQgMTAwNzU1Ci0tLSBhL3QvdDkxMTQtZ2l0LXN2bi1kY29tbWl0LW1lcmdlLnNoCisrKyBiL3QvdDkxMTQtZ2l0LXN2bi1kY29tbWl0LW1lcmdlLnNoCkBAIC02Miw3ICs2Miw3IEBACiAJZWNobyBmcmllbmQgPiBSRUFETUUgJiYKIAljYXQgdG1wID4+IFJFQURNRSAmJgogCWdpdCBjb21taXQgLWEgLW0gImZyaWVuZCIgJiYKLQlnaXQgcHVsbCAuIG1lcmdlCisJZ2l0IG1lcmdlIG1lcmdlCiAJJwogCiB0ZXN0X2RlYnVnICdnaXRrIC0tYWxsICYgc2xlZXAgMScKZGlmZiAtLWdpdCBhL3QvdDkxMTctZ2l0LXN2bi1pbml0LWNsb25lLnNoIGIvdC90OTExNy1naXQtc3ZuLWluaXQtY2xvbmUuc2gKaW5kZXggYjdlZjllMi4uNjllOWMwZCAxMDA3NTUKLS0tIGEvdC90OTExNy1naXQtc3ZuLWluaXQtY2xvbmUuc2gKKysrIGIvdC90OTExNy1naXQtc3ZuLWluaXQtY2xvbmUuc2gKQEAgLTUyLDQgKzUyLDcxIEBACiAJcm0gLXJmIHRhcmdldAogCScKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnaW5pdCB3aXRob3V0IC1zLy1ULy1iLy10IGRvZXMgbm90IHdhcm4nICcKKwl0ZXN0ICEgLWQgdHJ1bmsgJiYKKwlnaXQgc3ZuIGluaXQgIiRzdm5yZXBvIi9wcm9qZWN0L3RydW5rIHRydW5rIDI+d2FybmluZyAmJgorCXRlc3RfbXVzdF9mYWlsIGdyZXAgLXEgcHJlZml4IHdhcm5pbmcgJiYKKwlybSAtcmYgdHJ1bmsgJiYKKwlybSAtZiB3YXJuaW5nCisJJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZSB3aXRob3V0IC1zLy1ULy1iLy10IGRvZXMgbm90IHdhcm4nICcKKwl0ZXN0ICEgLWQgdHJ1bmsgJiYKKwlnaXQgc3ZuIGNsb25lICIkc3ZucmVwbyIvcHJvamVjdC90cnVuayAyPndhcm5pbmcgJiYKKwl0ZXN0X211c3RfZmFpbCBncmVwIC1xIHByZWZpeCB3YXJuaW5nICYmCisJcm0gLXJmIHRydW5rICYmCisJcm0gLWYgd2FybmluZworCScKKwordGVzdF9zdm5fY29uZmlndXJlZF9wcmVmaXggKCkgeworCXByZWZpeD0kMSAmJgorCWNhdCA+ZXhwZWN0IDw8RU9GICYmCitwcm9qZWN0L3RydW5rOnJlZnMvcmVtb3Rlcy8ke3ByZWZpeH10cnVuaworcHJvamVjdC9icmFuY2hlcy8qOnJlZnMvcmVtb3Rlcy8ke3ByZWZpeH0qCitwcm9qZWN0L3RhZ3MvKjpyZWZzL3JlbW90ZXMvJHtwcmVmaXh9dGFncy8qCitFT0YKKwl0ZXN0ICEgLWYgYWN0dWFsICYmCisJZ2l0IC0tZ2l0LWRpcj1wcm9qZWN0Ly5naXQgY29uZmlnIHN2bi1yZW1vdGUuc3ZuLmZldGNoID4+YWN0dWFsICYmCisJZ2l0IC0tZ2l0LWRpcj1wcm9qZWN0Ly5naXQgY29uZmlnIHN2bi1yZW1vdGUuc3ZuLmJyYW5jaGVzID4+YWN0dWFsICYmCisJZ2l0IC0tZ2l0LWRpcj1wcm9qZWN0Ly5naXQgY29uZmlnIHN2bi1yZW1vdGUuc3ZuLnRhZ3MgPj5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisJcm0gLWYgZXhwZWN0IGFjdHVhbAorfQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdpbml0IHdpdGggLXMvLVQvLWIvLXQgd2l0aG91dCAtLXByZWZpeCB3YXJucycgJworCXRlc3QgISAtZCBwcm9qZWN0ICYmCisJZ2l0IHN2biBpbml0IC1zICIkc3ZucmVwbyIvcHJvamVjdCBwcm9qZWN0IDI+d2FybmluZyAmJgorCWdyZXAgLXEgcHJlZml4IHdhcm5pbmcgJiYKKwl0ZXN0X3N2bl9jb25maWd1cmVkX3ByZWZpeCAiIiAmJgorCXJtIC1yZiBwcm9qZWN0ICYmCisJcm0gLWYgd2FybmluZworCScKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmUgd2l0aCAtcy8tVC8tYi8tdCB3aXRob3V0IC0tcHJlZml4IHdhcm5zJyAnCisJdGVzdCAhIC1kIHByb2plY3QgJiYKKwlnaXQgc3ZuIGNsb25lIC1zICIkc3ZucmVwbyIvcHJvamVjdCAyPndhcm5pbmcgJiYKKwlncmVwIC1xIHByZWZpeCB3YXJuaW5nICYmCisJdGVzdF9zdm5fY29uZmlndXJlZF9wcmVmaXggIiIgJiYKKwlybSAtcmYgcHJvamVjdCAmJgorCXJtIC1mIHdhcm5pbmcKKwknCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2luaXQgd2l0aCAtcy8tVC8tYi8tdCBhbmQgLS1wcmVmaXggZG9lcyBub3Qgd2FybicgJworCXRlc3QgISAtZCBwcm9qZWN0ICYmCisJZ2l0IHN2biBpbml0IC1zICIkc3ZucmVwbyIvcHJvamVjdCBwcm9qZWN0IC0tcHJlZml4PSIiIDI+d2FybmluZyAmJgorCXRlc3RfbXVzdF9mYWlsIGdyZXAgLXEgcHJlZml4IHdhcm5pbmcgJiYKKwl0ZXN0X3N2bl9jb25maWd1cmVkX3ByZWZpeCAiIiAmJgorCXJtIC1yZiBwcm9qZWN0ICYmCisJcm0gLWYgd2FybmluZworCScKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmUgd2l0aCAtcy8tVC8tYi8tdCBhbmQgLS1wcmVmaXggZG9lcyBub3Qgd2FybicgJworCXRlc3QgISAtZCBwcm9qZWN0ICYmCisJZ2l0IHN2biBjbG9uZSAtcyAiJHN2bnJlcG8iL3Byb2plY3QgLS1wcmVmaXg9IiIgMj53YXJuaW5nICYmCisJdGVzdF9tdXN0X2ZhaWwgZ3JlcCAtcSBwcmVmaXggd2FybmluZyAmJgorCXRlc3Rfc3ZuX2NvbmZpZ3VyZWRfcHJlZml4ICIiICYmCisJcm0gLXJmIHByb2plY3QgJiYKKwlybSAtZiB3YXJuaW5nCisJJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDkxMjktZ2l0LXN2bi1pMThuLWNvbW1pdGVuY29kaW5nLnNoIGIvdC90OTEyOS1naXQtc3ZuLWkxOG4tY29tbWl0ZW5jb2Rpbmcuc2gKaW5kZXggOWE0MGYxZS4uOGNmZGZlNyAxMDA3NTUKLS0tIGEvdC90OTEyOS1naXQtc3ZuLWkxOG4tY29tbWl0ZW5jb2Rpbmcuc2gKKysrIGIvdC90OTEyOS1naXQtc3ZuLWkxOG4tY29tbWl0ZW5jb2Rpbmcuc2gKQEAgLTI5LDcgKzI5LDcgQEAKIGNvbXBhcmVfc3ZuX2hlYWRfd2l0aCAoKSB7CiAJIyBleHRyYWN0IGp1c3QgdGhlIGxvZyBtZXNzYWdlIGFuZCBzdHJpcCBvdXQgY29tbWl0dGVyIGluZm8uCiAJIyBkb24ndCB1c2UgLS1saW1pdCBoZXJlIHNpbmNlIHN2biAxLjEueCBkb2Vzbid0IGhhdmUgaXQsCi0JTENfQUxMPSIkYV91dGY4X2xvY2FsZSIgc3ZuIGxvZyBgZ2l0IHN2biBpbmZvIC0tdXJsYCB8ICIkUEVSTF9QQVRIIiAtdyAtZSAnCisJTENfQUxMPSIkYV91dGY4X2xvY2FsZSIgc3ZuIGxvZyBgZ2l0IHN2biBpbmZvIC0tdXJsYCB8IHBlcmwgLXcgLWUgJwogCQl1c2UgYnl0ZXM7CiAJCSQvID0gKCItIng3MikgLiAiXG4iOwogCQlteSBAeCA9IDxTVERJTj47CmRpZmYgLS1naXQgYS90L3Q5MTM3LWdpdC1zdm4tZGNvbW1pdC1jbG9iYmVyLXNlcmllcy5zaCBiL3QvdDkxMzctZ2l0LXN2bi1kY29tbWl0LWNsb2JiZXItc2VyaWVzLnNoCmluZGV4IGMxN2FhMzEuLmQ2MGRhNjMgMTAwNzU1Ci0tLSBhL3QvdDkxMzctZ2l0LXN2bi1kY29tbWl0LWNsb2JiZXItc2VyaWVzLnNoCisrKyBiL3QvdDkxMzctZ2l0LXN2bi1kY29tbWl0LWNsb2JiZXItc2VyaWVzLnNoCkBAIC0yMCw4ICsyMCw4IEBACiAJdGVzdCB4ImBzZWQgLW4gLWUgNjFwIDwgZmlsZWAiID0geDYxICYmCiAJc3ZuX2NtZCBjbyAiJHN2bnJlcG8iIHRtcCAmJgogCShjZCB0bXAgJiYKLQkJIiRQRVJMX1BBVEgiIC1pLmJhayAtcCAtZSAicy9eNTgkLzU1ODgvIiBmaWxlICYmCi0JCSIkUEVSTF9QQVRIIiAtaS5iYWsgLXAgLWUgInMvXjYxJC82NjExLyIgZmlsZSAmJgorCQlwZXJsIC1pLmJhayAtcCAtZSAicy9eNTgkLzU1ODgvIiBmaWxlICYmCisJCXBlcmwgLWkuYmFrIC1wIC1lICJzL142MSQvNjYxMS8iIGZpbGUgJiYKIAkJcG9rZSBmaWxlICYmCiAJCXRlc3QgeCJgc2VkIC1uIC1lIDU4cCA8IGZpbGVgIiA9IHg1NTg4ICYmCiAJCXRlc3QgeCJgc2VkIC1uIC1lIDYxcCA8IGZpbGVgIiA9IHg2NjExICYmCkBAIC00MCw4ICs0MCw4IEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGFuZ2UgZmlsZSBidXQgaW4gdW5yZWxhdGVkIGFyZWEnICIKIAl0ZXN0IHhcIlxgc2VkIC1uIC1lIDRwIDwgZmlsZVxgXCIgPSB4NCAmJgogCXRlc3QgeFwiXGBzZWQgLW4gLWUgN3AgPCBmaWxlXGBcIiA9IHg3ICYmCi0JIiRQRVJMX1BBVEgiIC1pLmJhayAtcCAtZSAncy9eNFwkLzQ0NDQvJyBmaWxlICYmCi0JIiRQRVJMX1BBVEgiIC1pLmJhayAtcCAtZSAncy9eN1wkLzc3NzcvJyBmaWxlICYmCisJcGVybCAtaS5iYWsgLXAgLWUgJ3MvXjRcJC80NDQ0LycgZmlsZSAmJgorCXBlcmwgLWkuYmFrIC1wIC1lICdzL143XCQvNzc3Ny8nIGZpbGUgJiYKIAl0ZXN0IHhcIlxgc2VkIC1uIC1lIDRwIDwgZmlsZVxgXCIgPSB4NDQ0NCAmJgogCXRlc3QgeFwiXGBzZWQgLW4gLWUgN3AgPCBmaWxlXGBcIiA9IHg3Nzc3ICYmCiAJZ2l0IGNvbW1pdCAtbSAnNCA9PiA0NDQ0LCA3ID0+IDc3NzcnIGZpbGUgJiYKZGlmZiAtLWdpdCBhL3QvdDkxNTAvbWFrZS1zdmstZHVtcCBiL3QvdDkxNTAvbWFrZS1zdmstZHVtcApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS90L3Q5MTUxL21ha2Utc3ZubWVyZ2UtZHVtcCBiL3QvdDkxNTEvbWFrZS1zdm5tZXJnZS1kdW1wCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL3QvdDkyMDAtZ2l0LWN2c2V4cG9ydGNvbW1pdC5zaCBiL3QvdDkyMDAtZ2l0LWN2c2V4cG9ydGNvbW1pdC5zaAppbmRleCAzZmIzMzY4Li44MTJjOWNkIDEwMDc1NQotLS0gYS90L3Q5MjAwLWdpdC1jdnNleHBvcnRjb21taXQuc2gKKysrIGIvdC90OTIwMC1naXQtY3ZzZXhwb3J0Y29tbWl0LnNoCkBAIC01LDcgKzUsNiBAQAogdGVzdF9kZXNjcmlwdGlvbj0nVGVzdCBleHBvcnQgb2YgY29tbWl0cyB0byBDVlMnCiAKIC4gLi90ZXN0LWxpYi5zaAotLiAiJFRFU1RfRElSRUNUT1JZIi9saWItcHJlcmVxLUZJTEVNT0RFLnNoCiAKIGlmICEgdGVzdF9oYXZlX3ByZXJlcSBQRVJMOyB0aGVuCiAJc2tpcF9hbGw9J3NraXBwaW5nIGdpdCBjdnNleHBvcnRjb21taXQgdGVzdHMsIHBlcmwgbm90IGF2YWlsYWJsZScKZGlmZiAtLWdpdCBhL3QvdDkzMDAtZmFzdC1pbXBvcnQuc2ggYi90L3Q5MzAwLWZhc3QtaW1wb3J0LnNoCmluZGV4IGFjNmYzYjYuLjI3MjYzZGYgMTAwNzU1Ci0tLSBhL3QvdDkzMDAtZmFzdC1pbXBvcnQuc2gKKysrIGIvdC90OTMwMC1mYXN0LWltcG9ydC5zaApAQCAtMTIsNyArMTIsNyBAQAogIyBUaGlzIGNvdWxkIGJlIHdyaXR0ZW4gYXMgImhlYWQgLWMgJDEiLCBidXQgSVJJWCAiaGVhZCIgZG9lcyBub3QKICMgc3VwcG9ydCB0aGUgLWMgb3B0aW9uLgogaGVhZF9jICgpIHsKLQkiJFBFUkxfUEFUSCIgLWUgJworCXBlcmwgLWUgJwogCQlteSAkbGVuID0gJEFSR1ZbMV07CiAJCXdoaWxlICgkbGVuID4gMCkgewogCQkJbXkgJHM7CkBAIC0xMDMxLDYgKzEwMzEsMzIgQEAKIAkgZ2l0IGRpZmYtdHJlZSAtTSAtciBNM14gTTMgPmFjdHVhbCAmJgogCSBjb21wYXJlX2RpZmZfcmF3IGV4cGVjdCBhY3R1YWwnCiAKK2NhdCA+aW5wdXQgPDxJTlBVVF9FTkQKK2NvbW1pdCByZWZzL2hlYWRzL000Citjb21taXR0ZXIgJEdJVF9DT01NSVRURVJfTkFNRSA8JEdJVF9DT01NSVRURVJfRU1BSUw+ICRHSVRfQ09NTUlUVEVSX0RBVEUKK2RhdGEgPDxDT01NSVQKK3JlbmFtZSByb290CitDT01NSVQKKworZnJvbSByZWZzL2hlYWRzL00yXjAKK1IgIiIgc3ViCisKK0lOUFVUX0VORAorCitjYXQgPmV4cGVjdCA8PEVPRgorOjEwMDY0NCAxMDA2NDQgNzEyM2Y3ZjQ0ZTM5YmUxMjdjNWViNzAxZTU5NjgxNzZlZTlkNzhiMSA3MTIzZjdmNDRlMzliZTEyN2M1ZWI3MDFlNTk2ODE3NmVlOWQ3OGIxIFIxMDAJZmlsZTIvb2xkZglzdWIvZmlsZTIvb2xkZgorOjEwMDc1NSAxMDA3NTUgODVkZjUwNzg1ZDYyZDNiMDVhYjAzZDljYmY3ZTRhMGI0OTQ0OTczMCA4NWRmNTA3ODVkNjJkM2IwNWFiMDNkOWNiZjdlNGEwYjQ5NDQ5NzMwIFIxMDAJZmlsZTQJc3ViL2ZpbGU0Cis6MTAwNzU1IDEwMDc1NSBmMWZiNWRhNzE4MzkyNjk0ZDAwNzZkNjc3ZDZkMGUzNjRjNzliMGJjIGYxZmI1ZGE3MTgzOTI2OTRkMDA3NmQ2NzdkNmQwZTM2NGM3OWIwYmMgUjEwMAlpL2FtL25ldy90by95b3UJc3ViL2kvYW0vbmV3L3RvL3lvdQorOjEwMDc1NSAxMDA3NTUgZTc0YjdkNDY1ZTUyNzQ2YmUyYjRiYWU5ODM2NzA3MTFlNmU2NjY1NyBlNzRiN2Q0NjVlNTI3NDZiZTJiNGJhZTk4MzY3MDcxMWU2ZTY2NjU3IFIxMDAJbmV3ZGlyL2V4ZWMuc2gJc3ViL25ld2Rpci9leGVjLnNoCis6MTAwNjQ0IDEwMDY0NCBmY2Y3NzhjZGExODFlYWExY2JjOWU5Y2UzYTJlMTVlZTlmOWZlNzkxIGZjZjc3OGNkYTE4MWVhYTFjYmM5ZTljZTNhMmUxNWVlOWY5ZmU3OTEgUjEwMAluZXdkaXIvaW50ZXJlc3RpbmcJc3ViL25ld2Rpci9pbnRlcmVzdGluZworRU9GCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKKwknTTogcmVuYW1lIHJvb3QgdG8gc3ViZGlyZWN0b3J5JyBcCisJJ2dpdCBmYXN0LWltcG9ydCA8aW5wdXQgJiYKKwkgZ2l0IGRpZmYtdHJlZSAtTSAtciBNNF4gTTQgPmFjdHVhbCAmJgorCSBjYXQgYWN0dWFsICYmCisJIGNvbXBhcmVfZGlmZl9yYXcgZXhwZWN0IGFjdHVhbCcKKwogIyMjCiAjIyMgc2VyaWVzIE4KICMjIwpAQCAtMTIyOCw2ICsxMjU0LDI5IEBACiAJIGNvbXBhcmVfZGlmZl9yYXcgZXhwZWN0IGFjdHVhbCcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCisJJ046IGNvcHkgcm9vdCBieSBwYXRoJyBcCisJJ2NhdCA+ZXhwZWN0IDw8LVxFT0YgJiYKKwk6MTAwNzU1IDEwMDc1NSBmMWZiNWRhNzE4MzkyNjk0ZDAwNzZkNjc3ZDZkMGUzNjRjNzliMGJjIGYxZmI1ZGE3MTgzOTI2OTRkMDA3NmQ2NzdkNmQwZTM2NGM3OWIwYmMgQzEwMAlmaWxlMi9uZXdmCW9sZHJvb3QvZmlsZTIvbmV3ZgorCToxMDA2NDQgMTAwNjQ0IDcxMjNmN2Y0NGUzOWJlMTI3YzVlYjcwMWU1OTY4MTc2ZWU5ZDc4YjEgNzEyM2Y3ZjQ0ZTM5YmUxMjdjNWViNzAxZTU5NjgxNzZlZTlkNzhiMSBDMTAwCWZpbGUyL29sZGYJb2xkcm9vdC9maWxlMi9vbGRmCisJOjEwMDc1NSAxMDA3NTUgODVkZjUwNzg1ZDYyZDNiMDVhYjAzZDljYmY3ZTRhMGI0OTQ0OTczMCA4NWRmNTA3ODVkNjJkM2IwNWFiMDNkOWNiZjdlNGEwYjQ5NDQ5NzMwIEMxMDAJZmlsZTQJb2xkcm9vdC9maWxlNAorCToxMDA3NTUgMTAwNzU1IGU3NGI3ZDQ2NWU1Mjc0NmJlMmI0YmFlOTgzNjcwNzExZTZlNjY2NTcgZTc0YjdkNDY1ZTUyNzQ2YmUyYjRiYWU5ODM2NzA3MTFlNmU2NjY1NyBDMTAwCW5ld2Rpci9leGVjLnNoCW9sZHJvb3QvbmV3ZGlyL2V4ZWMuc2gKKwk6MTAwNjQ0IDEwMDY0NCBmY2Y3NzhjZGExODFlYWExY2JjOWU5Y2UzYTJlMTVlZTlmOWZlNzkxIGZjZjc3OGNkYTE4MWVhYTFjYmM5ZTljZTNhMmUxNWVlOWY5ZmU3OTEgQzEwMAluZXdkaXIvaW50ZXJlc3RpbmcJb2xkcm9vdC9uZXdkaXIvaW50ZXJlc3RpbmcKKwlFT0YKKwkgY2F0ID5pbnB1dCA8PC1JTlBVVF9FTkQgJiYKKwljb21taXQgcmVmcy9oZWFkcy9OLWNvcHktcm9vdC1wYXRoCisJY29tbWl0dGVyICRHSVRfQ09NTUlUVEVSX05BTUUgPCRHSVRfQ09NTUlUVEVSX0VNQUlMPiAkR0lUX0NPTU1JVFRFUl9EQVRFCisJZGF0YSA8PENPTU1JVAorCWNvcHkgcm9vdCBkaXJlY3RvcnkgYnkgKGVtcHR5KSBwYXRoCisJQ09NTUlUCisKKwlmcm9tIHJlZnMvaGVhZHMvYnJhbmNoXjAKKwlDICIiIG9sZHJvb3QKKwlJTlBVVF9FTkQKKwkgZ2l0IGZhc3QtaW1wb3J0IDxpbnB1dCAmJgorCSBnaXQgZGlmZi10cmVlIC1DIC0tZmluZC1jb3BpZXMtaGFyZGVyIC1yIGJyYW5jaCBOLWNvcHktcm9vdC1wYXRoID5hY3R1YWwgJiYKKwkgY29tcGFyZV9kaWZmX3JhdyBleHBlY3QgYWN0dWFsJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKIAknTjogZGVsZXRlIGRpcmVjdG9yeSBieSBjb3B5aW5nJyBcCiAJJ2NhdCA+ZXhwZWN0IDw8LVxFT0YgJiYKIAlPQkpJRApAQCAtMjgxNSwxNCArMjg2NCwxNCBAQAogJwogCiAjCi0jIG5vdGVtb2RpZnksIG1hcmsgaW4gY29tbWl0dGlzaAorIyBub3RlbW9kaWZ5LCBtYXJrIGluIGNvbW1pdC1pc2gKICMKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1M6IG5vdGVtb2RpZnkgd2l0aCBnYXJiYXJnZSBhZnRlciBtYXJrIGNvbW1pdHRpc2ggbXVzdCBmYWlsJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdTOiBub3RlbW9kaWZ5IHdpdGggZ2FyYmFyZ2UgYWZ0ZXIgbWFyayBjb21taXQtaXNoIG11c3QgZmFpbCcgJwogCXRlc3RfbXVzdF9mYWlsIGdpdCBmYXN0LWltcG9ydCAtLWltcG9ydC1tYXJrcz1tYXJrcyA8PC1FT0YgMj5lcnIgJiYKIAljb21taXQgcmVmcy9oZWFkcy9Tbm90ZXMKIAljb21taXR0ZXIgJEdJVF9DT01NSVRURVJfTkFNRSA8JEdJVF9DT01NSVRURVJfRU1BSUw+ICRHSVRfQ09NTUlUVEVSX0RBVEUKIAlkYXRhIDw8Q09NTUlUCi0JY29tbWl0IFMgbm90ZSBjb21taXR0aXNoCisJY29tbWl0IFMgbm90ZSBjb21taXQtaXNoCiAJQ09NTUlUCiAJTiA6MjAyIDozMDJ4CiAJRU9GCkBAIC0yOTM0LDQgKzI5ODMsMjAgQEAKIAl0ZXN0X2kxOG5ncmVwICJzcGFjZSBhZnRlciB0cmVlLWlzaCIgZXJyCiAnCiAKKyMjIworIyMjIHNlcmllcyBUIChscykKKyMjIworIyBTZXR1cCBpcyBjYXJyaWVkIG92ZXIgZnJvbSBzZXJpZXMgUy4KKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnVDogbHMgcm9vdCB0cmVlJyAnCisJc2VkIC1lICJzL1pcJC8vIiA+ZXhwZWN0IDw8LUVPRiAmJgorCTA0MDAwMCB0cmVlICQoZ2l0IHJldi1wYXJzZSBTXnt0cmVlfSkJWgorCUVPRgorCXNoYTE9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IFMpICYmCisJZ2l0IGZhc3QtaW1wb3J0IC0taW1wb3J0LW1hcmtzPW1hcmtzIDw8LUVPRiA+YWN0dWFsICYmCisJbHMgJHNoYTEgIiIKKwlFT0YKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90OTM1MC1mYXN0LWV4cG9ydC5zaCBiL3QvdDkzNTAtZmFzdC1leHBvcnQuc2gKaW5kZXggMzRjMmQ4Zi4uMjMxMmRlYyAxMDA3NTUKLS0tIGEvdC90OTM1MC1mYXN0LWV4cG9ydC5zaAorKysgYi90L3Q5MzUwLWZhc3QtZXhwb3J0LnNoCkBAIC00MjksNyArNDI5LDcgQEAKIAkJLS1jYWNoZWluZm8gMTAwNjQ0ICRibG9iICJwYXRoIHdpdGggXFxiYWNrc2xhc2giIFwKIAkJLS1jYWNoZWluZm8gMTAwNjQ0ICRibG9iICJwYXRoIHdpdGggc3BhY2UiICYmCiAJIGdpdCBjb21taXQgLW0gYWRkaXRpb24gJiYKLQkgZ2l0IGxzLWZpbGVzIC16IC1zIHwgIiRQRVJMX1BBVEgiIC0wcGUgInN7XFx0fXskJnN1YmRpci99IiA+aW5kZXggJiYKKwkgZ2l0IGxzLWZpbGVzIC16IC1zIHwgcGVybCAtMHBlICJze1xcdH17JCZzdWJkaXIvfSIgPmluZGV4ICYmCiAJIGdpdCByZWFkLXRyZWUgLS1lbXB0eSAmJgogCSBnaXQgdXBkYXRlLWluZGV4IC16IC0taW5kZXgtaW5mbyA8aW5kZXggJiYKIAkgZ2l0IGNvbW1pdCAtbSByZW5hbWUgJiYKZGlmZiAtLWdpdCBhL3QvdDk0MDAtZ2l0LWN2c3NlcnZlci1zZXJ2ZXIuc2ggYi90L3Q5NDAwLWdpdC1jdnNzZXJ2ZXItc2VydmVyLnNoCmluZGV4IDA0MzEzODYuLjNlZGM0MDggMTAwNzU1Ci0tLSBhL3QvdDk0MDAtZ2l0LWN2c3NlcnZlci1zZXJ2ZXIuc2gKKysrIGIvdC90OTQwMC1naXQtY3Zzc2VydmVyLXNlcnZlci5zaApAQCAtMjAsNyArMjAsNyBAQAogICAgIHNraXBfYWxsPSdza2lwcGluZyBnaXQtY3Zzc2VydmVyIHRlc3RzLCBjdnMgbm90IGZvdW5kJwogICAgIHRlc3RfZG9uZQogZmkKLSIkUEVSTF9QQVRIIiAtZSAndXNlIERCSTsgdXNlIERCRDo6U1FMaXRlJyA+L2Rldi9udWxsIDI+JjEgfHwgeworcGVybCAtZSAndXNlIERCSTsgdXNlIERCRDo6U1FMaXRlJyA+L2Rldi9udWxsIDI+JjEgfHwgewogICAgIHNraXBfYWxsPSdza2lwcGluZyBnaXQtY3Zzc2VydmVyIHRlc3RzLCBQZXJsIFNRTGl0ZSBpbnRlcmZhY2UgdW5hdmFpbGFibGUnCiAgICAgdGVzdF9kb25lCiB9CmRpZmYgLS1naXQgYS90L3Q5NDAxLWdpdC1jdnNzZXJ2ZXItY3JsZi5zaCBiL3QvdDk0MDEtZ2l0LWN2c3NlcnZlci1jcmxmLnNoCmluZGV4IDhjM2RiNzYuLjVhNGVkMjggMTAwNzU1Ci0tLSBhL3QvdDk0MDEtZ2l0LWN2c3NlcnZlci1jcmxmLnNoCisrKyBiL3QvdDk0MDEtZ2l0LWN2c3NlcnZlci1jcmxmLnNoCkBAIC02OCw3ICs2OCw3IEBACiAgICAgc2tpcF9hbGw9J3NraXBwaW5nIGdpdC1jdnNzZXJ2ZXIgdGVzdHMsIHBlcmwgbm90IGF2YWlsYWJsZScKICAgICB0ZXN0X2RvbmUKIGZpCi0iJFBFUkxfUEFUSCIgLWUgJ3VzZSBEQkk7IHVzZSBEQkQ6OlNRTGl0ZScgPi9kZXYvbnVsbCAyPiYxIHx8IHsKK3BlcmwgLWUgJ3VzZSBEQkk7IHVzZSBEQkQ6OlNRTGl0ZScgPi9kZXYvbnVsbCAyPiYxIHx8IHsKICAgICBza2lwX2FsbD0nc2tpcHBpbmcgZ2l0LWN2c3NlcnZlciB0ZXN0cywgUGVybCBTUUxpdGUgaW50ZXJmYWNlIHVuYXZhaWxhYmxlJwogICAgIHRlc3RfZG9uZQogfQpkaWZmIC0tZ2l0IGEvdC90OTQwMi1naXQtY3Zzc2VydmVyLXJlZnMuc2ggYi90L3Q5NDAyLWdpdC1jdnNzZXJ2ZXItcmVmcy5zaAppbmRleCBkYjY5YWYyLi4xZTI2NmVmIDEwMDc1NQotLS0gYS90L3Q5NDAyLWdpdC1jdnNzZXJ2ZXItcmVmcy5zaAorKysgYi90L3Q5NDAyLWdpdC1jdnNzZXJ2ZXItcmVmcy5zaApAQCAtNzYsNyArNzYsNyBAQAogCXNraXBfYWxsPSdza2lwcGluZyBnaXQtY3Zzc2VydmVyIHRlc3RzLCBwZXJsIG5vdCBhdmFpbGFibGUnCiAJdGVzdF9kb25lCiBmaQotIiRQRVJMX1BBVEgiIC1lICd1c2UgREJJOyB1c2UgREJEOjpTUUxpdGUnID4vZGV2L251bGwgMj4mMSB8fCB7CitwZXJsIC1lICd1c2UgREJJOyB1c2UgREJEOjpTUUxpdGUnID4vZGV2L251bGwgMj4mMSB8fCB7CiAJc2tpcF9hbGw9J3NraXBwaW5nIGdpdC1jdnNzZXJ2ZXIgdGVzdHMsIFBlcmwgU1FMaXRlIGludGVyZmFjZSB1bmF2YWlsYWJsZScKIAl0ZXN0X2RvbmUKIH0KZGlmZiAtLWdpdCBhL3QvdDk1MDAtZ2l0d2ViLXN0YW5kYWxvbmUtbm8tZXJyb3JzLnNoIGIvdC90OTUwMC1naXR3ZWItc3RhbmRhbG9uZS1uby1lcnJvcnMuc2gKaW5kZXggNmZjYTE5My4uZTc0YjlhYiAxMDA3NTUKLS0tIGEvdC90OTUwMC1naXR3ZWItc3RhbmRhbG9uZS1uby1lcnJvcnMuc2gKKysrIGIvdC90OTUwMC1naXR3ZWItc3RhbmRhbG9uZS1uby1lcnJvcnMuc2gKQEAgLTMyOCw3ICszMjgsNyBAQAogCSBnaXQgYWRkIGIgJiYKIAkgZ2l0IGNvbW1pdCAtYSAtbSAiT24gYnJhbmNoIiAmJgogCSBnaXQgY2hlY2tvdXQgbWFzdGVyICYmCi0JIGdpdCBwdWxsIC4gYiAmJgorCSBnaXQgbWVyZ2UgYiAmJgogCSBnaXQgdGFnIG1lcmdlX2NvbW1pdCcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCkBAIC02ODMsOSArNjgzLDExIEBACiAjIHN5bnRheCBoaWdobGlnaHRpbmcKIAogCi1oaWdobGlnaHQgLS12ZXJzaW9uID4vZGV2L251bGwgMj4mMQoraGlnaGxpZ2h0X3ZlcnNpb249JChoaWdobGlnaHQgLS12ZXJzaW9uIDwvZGV2L251bGwgMj4vZGV2L251bGwpCiBpZiBbICQ/IC1lcSAxMjcgXTsgdGhlbgotCXNheSAiU2tpcHBpbmcgc3ludGF4IGhpZ2hsaWdodGluZyB0ZXN0LCBiZWNhdXNlICdoaWdobGlnaHQnIHdhcyBub3QgZm91bmQiCisJc2F5ICJTa2lwcGluZyBzeW50YXggaGlnaGxpZ2h0aW5nIHRlc3RzOiAnaGlnaGxpZ2h0JyBub3QgZm91bmQiCitlbGlmIHRlc3QgLXogIiRoaWdobGlnaHRfdmVyc2lvbiI7IHRoZW4KKwlzYXkgIlNraXBwaW5nIHN5bnRheCBoaWdobGlnaHRpbmcgdGVzdHM6IGluY29ycmVjdCAnaGlnaGxpZ2h0JyBmb3VuZCIKIGVsc2UKIAl0ZXN0X3NldF9wcmVyZXEgSElHSExJR0hUCiAJY2F0ID4+Z2l0d2ViX2NvbmZpZy5wZXJsIDw8LVxFT0YKZGlmZiAtLWdpdCBhL3QvdDk3MDAtcGVybC1naXQuc2ggYi90L3Q5NzAwLXBlcmwtZ2l0LnNoCmluZGV4IDQzNWQ4OTYuLjEwMmMxMzMgMTAwNzU1Ci0tLSBhL3QvdDk3MDAtcGVybC1naXQuc2gKKysrIGIvdC90OTcwMC1wZXJsLWdpdC5zaApAQCAtMTEsNyArMTEsNyBAQAogCXRlc3RfZG9uZQogZmkKIAotIiRQRVJMX1BBVEgiIC1NVGVzdDo6TW9yZSAtZSAwIDI+L2Rldi9udWxsIHx8IHsKK3BlcmwgLU1UZXN0OjpNb3JlIC1lIDAgMj4vZGV2L251bGwgfHwgewogCXNraXBfYWxsPSJQZXJsIFRlc3Q6Ok1vcmUgdW5hdmFpbGFibGUsIHNraXBwaW5nIHRlc3QiCiAJdGVzdF9kb25lCiB9CkBAIC01NSw2ICs1NSw2IEBACiAKIHRlc3RfZXh0ZXJuYWxfd2l0aG91dF9zdGRlcnIgXAogICAgICdQZXJsIEFQSScgXAotICAgICIkUEVSTF9QQVRIIiAiJFRFU1RfRElSRUNUT1JZIi90OTcwMC90ZXN0LnBsCisgICAgcGVybCAiJFRFU1RfRElSRUNUT1JZIi90OTcwMC90ZXN0LnBsCiAKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90OTgwMi1naXQtcDQtZmlsZXR5cGUuc2ggYi90L3Q5ODAyLWdpdC1wNC1maWxldHlwZS5zaAppbmRleCBhODI3NDRiLi42NmQzZmM5IDEwMDc1NQotLS0gYS90L3Q5ODAyLWdpdC1wNC1maWxldHlwZS5zaAorKysgYi90L3Q5ODAyLWdpdC1wNC1maWxldHlwZS5zaApAQCAtMjUwLDYgKzI1MCw4OSBAQAogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnY3JlYXRlIHA0IHN5bWxpbmsnICcKKwljZCAiJGNsaSIgJiYKKwlsbiAtcyBzeW1saW5rLXRhcmdldCBzeW1saW5rICYmCisJcDQgYWRkIHN5bWxpbmsgJiYKKwlwNCBzdWJtaXQgLWQgImFkZCBzeW1saW5rIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdlbnN1cmUgcDQgc3ltbGluayBwYXJzZWQgY29ycmVjdGx5JyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkIGNsZWFudXBfZ2l0ICYmCisJZ2l0IHA0IGNsb25lIC0tZGVzdD0iJGdpdCIgLy9kZXBvdEBhbGwgJiYKKwkoCisJCWNkICIkZ2l0IiAmJgorCQl0ZXN0IC1MIHN5bWxpbmsgJiYKKwkJdGVzdCAkKHJlYWRsaW5rIHN5bWxpbmspID0gc3ltbGluay10YXJnZXQKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2VtcHR5IHN5bWxpbmsgdGFyZ2V0JyAnCisJKAorCQkjIGZpcnN0IGNyZWF0ZSB0aGUgZmlsZSBhcyBhIGZpbGUKKwkJY2QgIiRjbGkiICYmCisJCT5lbXB0eS1zeW1saW5rICYmCisJCXA0IGFkZCBlbXB0eS1zeW1saW5rICYmCisJCXA0IHN1Ym1pdCAtZCAiYWRkIGVtcHR5LXN5bWxpbmsgYXMgYSBmaWxlIgorCSkgJiYKKwkoCisJCSMgbm93IGNoYW5nZSBpdCB0byBiZSBhIHN5bWxpbmsgdG8gInRhcmdldDEiCisJCWNkICIkY2xpIiAmJgorCQlwNCBlZGl0IGVtcHR5LXN5bWxpbmsgJiYKKwkJcDQgcmVvcGVuIC10IHN5bWxpbmsgZW1wdHktc3ltbGluayAmJgorCQlybSBlbXB0eS1zeW1saW5rICYmCisJCWxuIC1zIHRhcmdldDEgZW1wdHktc3ltbGluayAmJgorCQlwNCBhZGQgZW1wdHktc3ltbGluayAmJgorCQlwNCBzdWJtaXQgLWQgIm1ha2UgZW1wdHktc3ltbGluayBwb2ludCB0byB0YXJnZXQxIgorCSkgJiYKKwkoCisJCSMgSGFjayB0aGUgcDQgZGVwb3QgdG8gbWFrZSB0aGUgc3ltbGluayBwb2ludCB0byBub3RoaW5nOworCQkjIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gaW4gcmVhbGl0eSwgYnV0IHNob3dzIHVwCisJCSMgaW4gcDQgcmVwb3MgaW4gdGhlIHdpbGQuCisJCSMKKwkJIyBUaGUgc2VkIGV4cHJlc3Npb24gY2hhbmdlcyB0aGlzOgorCQkjICAgICBAQAorCQkjICAgICB0ZXh0CisJCSMgICAgIEB0YXJnZXQxCisJCSMgICAgIEAKKwkJIyB0byB0aGlzOgorCQkjICAgICBAQAorCQkjICAgICB0ZXh0CisJCSMgICAgIEBACisJCSMKKwkJY2QgIiRkYi9kZXBvdCIgJiYKKwkJc2VkICIvQHRhcmdldDEvezsgcy90YXJnZXQxL0AvOyBuOyBkOyB9IiBcCisJCSAgICBlbXB0eS1zeW1saW5rLHYgPmVtcHR5LXN5bWxpbmssdi50bXAgJiYKKwkJbXYgZW1wdHktc3ltbGluayx2LnRtcCBlbXB0eS1zeW1saW5rLHYKKwkpICYmCisJKAorCQkjIE1ha2Ugc3VyZSBzeW1saW5rIHJlYWxseSBpcyBlbXB0eS4gIEFza2luZworCQkjIHA0IHRvIHN5bmMgaGVyZSB3aWxsIG1ha2UgaXQgZ2VuZXJhdGUgZXJyb3JzLgorCQljZCAiJGNsaSIgJiYKKwkJcDQgcHJpbnQgLXEgLy9kZXBvdC9lbXB0eS1zeW1saW5rIzIgPm91dCAmJgorCQl0ZXN0ICEgLXMgb3V0CisJKSAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCBjbGVhbnVwX2dpdCAmJgorCisJIyBtYWtlIHN1cmUgZ2l0IHA0IGhhbmRsZXMgaXQgd2l0aG91dCBlcnJvcgorCWdpdCBwNCBjbG9uZSAtLWRlc3Q9IiRnaXQiIC8vZGVwb3RAYWxsICYmCisKKwkjIGZpeCB0aGUgc3ltbGluaywgbWFrZSBpdCBwb2ludCB0byAidGFyZ2V0MiIKKwkoCisJCWNkICIkY2xpIiAmJgorCQlwNCBvcGVuIGVtcHR5LXN5bWxpbmsgJiYKKwkJcm0gZW1wdHktc3ltbGluayAmJgorCQlsbiAtcyB0YXJnZXQyIGVtcHR5LXN5bWxpbmsgJiYKKwkJcDQgc3VibWl0IC1kICJtYWtlIGVtcHR5LXN5bWxpbmsgcG9pbnQgdG8gdGFyZ2V0MiIKKwkpICYmCisJY2xlYW51cF9naXQgJiYKKwlnaXQgcDQgY2xvbmUgLS1kZXN0PSIkZ2l0IiAvL2RlcG90QGFsbCAmJgorCSgKKwkJY2QgIiRnaXQiICYmCisJCXRlc3QgJChyZWFkbGluayBlbXB0eS1zeW1saW5rKSA9IHRhcmdldDIKKwkpCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2tpbGwgcDRkJyAnCiAJa2lsbF9wNGQKICcKZGlmZiAtLWdpdCBhL3QvdDk4MDUtZ2l0LXA0LXNraXAtc3VibWl0LWVkaXQuc2ggYi90L3Q5ODA1LWdpdC1wNC1za2lwLXN1Ym1pdC1lZGl0LnNoCmluZGV4IGZmMmNjNzkuLjg5MzExODggMTAwNzU1Ci0tLSBhL3QvdDk4MDUtZ2l0LXA0LXNraXAtc3VibWl0LWVkaXQuc2gKKysrIGIvdC90OTgwNS1naXQtcDQtc2tpcC1zdWJtaXQtZWRpdC5zaApAQCAtMTcsNyArMTcsNyBAQAogCSkKICcKIAotIyB0aGlzIHdvcmtzIGJlY2F1c2UgRURJVE9SIGlzIHNldCB0byA6CisjIHRoaXMgd29ya3MgYmVjYXVzZSBQNEVESVRPUiBpcyBzZXQgdG8gdHJ1ZQogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbm8gY29uZmlnLCB1bmVkaXRlZCwgc2F5IHllcycgJwogCWdpdCBwNCBjbG9uZSAtLWRlc3Q9IiRnaXQiIC8vZGVwb3QgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgY2xlYW51cF9naXQgJiYKQEAgLTkwLDcgKzkwLDkgQEAKIAkJY2QgIiRnaXQiICYmCiAJCWVjaG8gbGluZSA+PmZpbGUxICYmCiAJCWdpdCBjb21taXQgLWEgLW0gImNoYW5nZSA1IiAmJgotCQlQNEVESVRPUj0iIiBFRElUT1I9IlwiJFRSQVNIX0RJUkVDVE9SWS9lZC5zaFwiIiBnaXQgcDQgc3VibWl0ICYmCisJCVA0RURJVE9SPSIkVFJBU0hfRElSRUNUT1JZL2VkLnNoIiAmJgorCQlleHBvcnQgUDRFRElUT1IgJiYKKwkJZ2l0IHA0IHN1Ym1pdCAmJgogCQlwNCBjaGFuZ2VzIC8vZGVwb3QvLi4uID53YyAmJgogCQl0ZXN0X2xpbmVfY291bnQgPSA1IHdjCiAJKQpkaWZmIC0tZ2l0IGEvdC90OTgwNy1naXQtcDQtc3VibWl0LnNoIGIvdC90OTgwNy1naXQtcDQtc3VibWl0LnNoCmluZGV4IDFmYjdiYzcuLjRjYWYzNmUgMTAwNzU1Ci0tLSBhL3QvdDk4MDctZ2l0LXA0LXN1Ym1pdC5zaAorKysgYi90L3Q5ODA3LWdpdC1wNC1zdWJtaXQuc2gKQEAgLTE3LDcgKzE3LDcgQEAKIAkpCiAnCiAKLXRlc3RfZXhwZWN0X2ZhaWx1cmUgJ2lzX2NsaV9maWxlX3dyaXRlYWJsZSBmdW5jdGlvbicgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnaXNfY2xpX2ZpbGVfd3JpdGVhYmxlIGZ1bmN0aW9uJyAnCiAJKAogCQljZCAiJGNsaSIgJiYKIAkJZWNobyBhID5hICYmCmRpZmYgLS1naXQgYS90L3Q5ODA5LWdpdC1wNC1jbGllbnQtdmlldy5zaCBiL3QvdDk4MDktZ2l0LXA0LWNsaWVudC12aWV3LnNoCmluZGV4IDc3ZjYzNDkuLjIzYTgyN2YgMTAwNzU1Ci0tLSBhL3QvdDk4MDktZ2l0LXA0LWNsaWVudC12aWV3LnNoCisrKyBiL3QvdDk4MDktZ2l0LXA0LWNsaWVudC12aWV3LnNoCkBAIC03NiwyOCArNzYsMjggQEAKICcKIAogIyBkb3VibGUgJSBmb3IgcHJpbnRmCi10ZXN0X2V4cGVjdF9zdWNjZXNzICd1bnN1cHBvcnRlZCB2aWV3IHdpbGRjYXJkICUlbicgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAndmlldyB3aWxkY2FyZCAlJW4nICcKIAljbGllbnRfdmlldyAiLy9kZXBvdC8lJSUlMS9zdWIvLi4uIC8vY2xpZW50L3N1Yi8lJSUlMS8uLi4iICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkIGNsZWFudXBfZ2l0ICYmCi0JdGVzdF9tdXN0X2ZhaWwgZ2l0IHA0IGNsb25lIC0tdXNlLWNsaWVudC1zcGVjIC0tZGVzdD0iJGdpdCIgLy9kZXBvdAorCWdpdCBwNCBjbG9uZSAtLXVzZS1jbGllbnQtc3BlYyAtLWRlc3Q9IiRnaXQiIC8vZGVwb3QKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAndW5zdXBwb3J0ZWQgdmlldyB3aWxkY2FyZCAqJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd2aWV3IHdpbGRjYXJkIConICcKIAljbGllbnRfdmlldyAiLy9kZXBvdC8qL2Jhci8uLi4gLy9jbGllbnQvKi9iYXIvLi4uIiAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCBjbGVhbnVwX2dpdCAmJgotCXRlc3RfbXVzdF9mYWlsIGdpdCBwNCBjbG9uZSAtLXVzZS1jbGllbnQtc3BlYyAtLWRlc3Q9IiRnaXQiIC8vZGVwb3QKKwlnaXQgcDQgY2xvbmUgLS11c2UtY2xpZW50LXNwZWMgLS1kZXN0PSIkZ2l0IiAvL2RlcG90CiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3dpbGRjYXJkIC4uLiBvbmx5IHN1cHBvcnRlZCBhdCBlbmQgb2Ygc3BlYyAxJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd3aWxkY2FyZCAuLi4gaW4gdGhlIG1pZGRsZScgJwogCWNsaWVudF92aWV3ICIvL2RlcG90Ly4uLi9maWxlMTEgLy9jbGllbnQvLi4uL2ZpbGUxMSIgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgY2xlYW51cF9naXQgJiYKLQl0ZXN0X211c3RfZmFpbCBnaXQgcDQgY2xvbmUgLS11c2UtY2xpZW50LXNwZWMgLS1kZXN0PSIkZ2l0IiAvL2RlcG90CisJZ2l0IHA0IGNsb25lIC0tdXNlLWNsaWVudC1zcGVjIC0tZGVzdD0iJGdpdCIgLy9kZXBvdAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICd3aWxkY2FyZCAuLi4gb25seSBzdXBwb3J0ZWQgYXQgZW5kIG9mIHNwZWMgMicgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnd2lsZGNhcmQgLi4uIGluIHRoZSBtaWRkbGUgYW5kIGF0IHRoZSBlbmQnICcKIAljbGllbnRfdmlldyAiLy9kZXBvdC8uLi4vYS8uLi4gLy9jbGllbnQvLi4uL2EvLi4uIiAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCBjbGVhbnVwX2dpdCAmJgotCXRlc3RfbXVzdF9mYWlsIGdpdCBwNCBjbG9uZSAtLXVzZS1jbGllbnQtc3BlYyAtLWRlc3Q9IiRnaXQiIC8vZGVwb3QKKwlnaXQgcDQgY2xvbmUgLS11c2UtY2xpZW50LXNwZWMgLS1kZXN0PSIkZ2l0IiAvL2RlcG90CiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Jhc2ljIG1hcCcgJwpkaWZmIC0tZ2l0IGEvdC90OTgxMC1naXQtcDQtcmNzLnNoIGIvdC90OTgxMC1naXQtcDQtcmNzLnNoCmluZGV4IDM0ZmJjOTAuLjgxMzRhYjQgMTAwNzU1Ci0tLSBhL3QvdDk4MTAtZ2l0LXA0LXJjcy5zaAorKysgYi90L3Q5ODEwLWdpdC1wNC1yY3Muc2gKQEAgLTI2Myw3ICsyNjMsNyBAQAogCQlnaXQgY29uZmlnIGdpdC1wNC5hdHRlbXB0UkNTQ2xlYW51cCB0cnVlICYmCiAJCShjZCAiJGNsaSIgJiYgcDRfYXBwZW5kX3RvX2ZpbGUga3dmaWxlMS5jKSAmJgogCQlvbGRfbGluZXM9JCh3YyAtbCA8a3dmaWxlMS5jKSAmJgotCQkiJFBFUkxfUEFUSCIgLW4gLWkgLWUgInByaW50IHVubGVzcyBtL1JldmlzaW9uOi8iIGt3ZmlsZTEuYyAmJgorCQlwZXJsIC1uIC1pIC1lICJwcmludCB1bmxlc3MgbS9SZXZpc2lvbjovIiBrd2ZpbGUxLmMgJiYKIAkJbmV3X2xpbmVzPSQod2MgLWwgPGt3ZmlsZTEuYykgJiYKIAkJdGVzdCAkbmV3X2xpbmVzID0gJCgoJG9sZF9saW5lcyAtIDEpKSAmJgogCmRpZmYgLS1naXQgYS90L3Q5ODEyLWdpdC1wNC13aWxkY2FyZHMuc2ggYi90L3Q5ODEyLWdpdC1wNC13aWxkY2FyZHMuc2gKaW5kZXggNjc2MzMyNS4uYzc0NzJjYiAxMDA3NTUKLS0tIGEvdC90OTgxMi1naXQtcDQtd2lsZGNhcmRzLnNoCisrKyBiL3QvdDk4MTItZ2l0LXA0LXdpbGRjYXJkcy5zaApAQCAtMTYxLDYgKzE2MSw1NiBAQAogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAncDQgZGVsZXRlZCBhIHdpbGRjYXJkIGZpbGUnICcKKwkoCisJCWNkICIkY2xpIiAmJgorCQllY2hvICJ3aWxkIGRlbGV0ZSB0ZXN0IiA+d2lsZEBkZWxldGUgJiYKKwkJcDQgYWRkIC1mIHdpbGRAZGVsZXRlICYmCisJCXA0IHN1Ym1pdCAtZCAiYWRkIHdpbGRAZGVsZXRlIgorCSkgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgY2xlYW51cF9naXQgJiYKKwlnaXQgcDQgY2xvbmUgLS1kZXN0PSIkZ2l0IiAvL2RlcG90ICYmCisJKAorCQljZCAiJGdpdCIgJiYKKwkJdGVzdF9wYXRoX2lzX2ZpbGUgd2lsZEBkZWxldGUKKwkpICYmCisJKAorCQljZCAiJGNsaSIgJiYKKwkJIyBtdXN0IHVzZSBpdHMgZW5jb2RlZCBuYW1lCisJCXA0IGRlbGV0ZSB3aWxkJTQwZGVsZXRlICYmCisJCXA0IHN1Ym1pdCAtZCAiZGVsZXRlIHdpbGRAZGVsZXRlIgorCSkgJiYKKwkoCisJCWNkICIkZ2l0IiAmJgorCQlnaXQgcDQgc3luYyAmJgorCQlnaXQgbWVyZ2UgLS1mZi1vbmx5IHA0L21hc3RlciAmJgorCQl0ZXN0X3BhdGhfaXNfbWlzc2luZyB3aWxkQGRlbGV0ZQorCSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnd2lsZGNhcmQgZmlsZXMgcmVxdWlyaW5nIGtleXdvcmQgc2NydWInICcKKwkoCisJCWNkICIkY2xpIiAmJgorCQljYXQgPDwtXEVPRiA+c2NydWJAd2lsZCAmJgorCQkkSWQkCisJCWxpbmUyCisJCUVPRgorCQlwNCBhZGQgLXQgdGV4dCtrIC1mIHNjcnViQHdpbGQgJiYKKwkJcDQgc3VibWl0IC1kICJzY3J1YiBhdCB3aWxkIgorCSkgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgY2xlYW51cF9naXQgJiYKKwlnaXQgcDQgY2xvbmUgLS1kZXN0PSIkZ2l0IiAvL2RlcG90ICYmCisJKAorCQljZCAiJGdpdCIgJiYKKwkJZ2l0IGNvbmZpZyBnaXQtcDQuc2tpcFN1Ym1pdEVkaXQgdHJ1ZSAmJgorCQlnaXQgY29uZmlnIGdpdC1wNC5hdHRlbXB0UkNTQ2xlYW51cCB0cnVlICYmCisJCXNlZCAicy9ebGluZTIvbGluZTIgZWRpdC8iIDxzY3J1YkB3aWxkID5zY3J1YkB3aWxkLnRtcCAmJgorCQltdiAtZiBzY3J1YkB3aWxkLnRtcCBzY3J1YkB3aWxkICYmCisJCWdpdCBjb21taXQgLW0gInNjcnViIGF0IHdpbGQgbGluZTIgZWRpdCIgc2NydWJAd2lsZCAmJgorCQlnaXQgcDQgc3VibWl0CisJKQorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdraWxsIHA0ZCcgJwogCWtpbGxfcDRkCiAnCmRpZmYgLS1naXQgYS90L3Q5ODEzLWdpdC1wNC1wcmVzZXJ2ZS11c2Vycy5zaCBiL3QvdDk4MTMtZ2l0LXA0LXByZXNlcnZlLXVzZXJzLnNoCmluZGV4IGYyZTg1ZTUuLjE2NmI4NDAgMTAwNzU1Ci0tLSBhL3QvdDk4MTMtZ2l0LXA0LXByZXNlcnZlLXVzZXJzLnNoCisrKyBiL3QvdDk4MTMtZ2l0LXA0LXByZXNlcnZlLXVzZXJzLnNoCkBAIC0xOSwxNiArMTksNiBAQAogCSkKICcKIAotcDRfYWRkX3VzZXIoKSB7Ci0JbmFtZT0kMSBmdWxsbmFtZT0kMiAmJgotCXA0IHVzZXIgLWYgLWkgPDwtRU9GICYmCi0JVXNlcjogJG5hbWUKLQlFbWFpbDogJG5hbWVAbG9jYWxob3N0Ci0JRnVsbE5hbWU6ICRmdWxsbmFtZQotCUVPRgotCXA0IHBhc3N3ZCAtUCBzZWNyZXQgJG5hbWUKLX0KLQogcDRfZ3JhbnRfYWRtaW4oKSB7CiAJbmFtZT0kMSAmJgogCXsKQEAgLTUxLDggKzQxLDggQEAKIAogIyBUZXN0IHVzZXJuYW1lIHN1cHBvcnQsIHN1Ym1pdHRpbmcgYXMgdXNlciAnYWxpY2UnCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcmVzZXJ2ZSB1c2VycycgJwotCXA0X2FkZF91c2VyIGFsaWNlIEFsaWNlICYmCi0JcDRfYWRkX3VzZXIgYm9iIEJvYiAmJgorCXA0X2FkZF91c2VyIGFsaWNlICYmCisJcDRfYWRkX3VzZXIgYm9iICYmCiAJcDRfZ3JhbnRfYWRtaW4gYWxpY2UgJiYKIAlnaXQgcDQgY2xvbmUgLS1kZXN0PSIkZ2l0IiAvL2RlcG90ICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkIGNsZWFudXBfZ2l0ICYmCkBAIC02MCw4ICs1MCw4IEBACiAJCWNkICIkZ2l0IiAmJgogCQllY2hvICJ1c2VybmFtZTogYSBjaGFuZ2UgYnkgYWxpY2UiID4+ZmlsZTEgJiYKIAkJZWNobyAidXNlcm5hbWU6IGEgY2hhbmdlIGJ5IGJvYiIgPj5maWxlMiAmJgotCQlnaXQgY29tbWl0IC0tYXV0aG9yICJBbGljZSA8YWxpY2VAbG9jYWxob3N0PiIgLW0gImEgY2hhbmdlIGJ5IGFsaWNlIiBmaWxlMSAmJgotCQlnaXQgY29tbWl0IC0tYXV0aG9yICJCb2IgPGJvYkBsb2NhbGhvc3Q+IiAtbSAiYSBjaGFuZ2UgYnkgYm9iIiBmaWxlMiAmJgorCQlnaXQgY29tbWl0IC0tYXV0aG9yICJBbGljZSA8YWxpY2VAZXhhbXBsZS5jb20+IiAtbSAiYSBjaGFuZ2UgYnkgYWxpY2UiIGZpbGUxICYmCisJCWdpdCBjb21taXQgLS1hdXRob3IgIkJvYiA8Ym9iQGV4YW1wbGUuY29tPiIgLW0gImEgY2hhbmdlIGJ5IGJvYiIgZmlsZTIgJiYKIAkJZ2l0IGNvbmZpZyBnaXQtcDQuc2tpcFN1Ym1pdEVkaXRDaGVjayB0cnVlICYmCiAJCVA0RURJVE9SPXRvdWNoIFA0VVNFUj1hbGljZSBQNFBBU1NXRD1zZWNyZXQgZ2l0IHA0IGNvbW1pdCAtLXByZXNlcnZlLXVzZXIgJiYKIAkJcDRfY2hlY2tfY29tbWl0X2F1dGhvciBmaWxlMSBhbGljZSAmJgpAQCAtNzgsNyArNjgsNyBAQAogCQljZCAiJGdpdCIgJiYKIAkJZ2l0IGNvbmZpZyBnaXQtcDQuc2tpcFN1Ym1pdEVkaXRDaGVjayB0cnVlICYmCiAJCWVjaG8gInVzZXJuYW1lLW5vcGVybXM6IGEgY2hhbmdlIGJ5IGFsaWNlIiA+PmZpbGUxICYmCi0JCWdpdCBjb21taXQgLS1hdXRob3IgIkFsaWNlIDxhbGljZUBsb2NhbGhvc3Q+IiAtbSAicGVybXM6IGEgY2hhbmdlIGJ5IGFsaWNlIiBmaWxlMSAmJgorCQlnaXQgY29tbWl0IC0tYXV0aG9yICJBbGljZSA8YWxpY2VAZXhhbXBsZS5jb20+IiAtbSAicGVybXM6IGEgY2hhbmdlIGJ5IGFsaWNlIiBmaWxlMSAmJgogCQlQNEVESVRPUj10b3VjaCBQNFVTRVI9Ym9iIFA0UEFTU1dEPXNlY3JldCAmJgogCQlleHBvcnQgUDRFRElUT1IgUDRVU0VSIFA0UEFTU1dEICYmCiAJCXRlc3RfbXVzdF9mYWlsIGdpdCBwNCBjb21taXQgLS1wcmVzZXJ2ZS11c2VyICYmCkBAIC05NCw5ICs4NCw5IEBACiAJCWNkICIkZ2l0IiAmJgogCQlnaXQgY29uZmlnIGdpdC1wNC5za2lwU3VibWl0RWRpdENoZWNrIHRydWUgJiYKIAkJZWNobyAidXNlcm5hbWUtYm9iOiBhIGNoYW5nZSBieSBib2IiID4+ZmlsZTEgJiYKLQkJZ2l0IGNvbW1pdCAtLWF1dGhvciAiQm9iIDxib2JAbG9jYWxob3N0PiIgLW0gInByZXNlcnZlOiBhIGNoYW5nZSBieSBib2IiIGZpbGUxICYmCisJCWdpdCBjb21taXQgLS1hdXRob3IgIkJvYiA8Ym9iQGV4YW1wbGUuY29tPiIgLW0gInByZXNlcnZlOiBhIGNoYW5nZSBieSBib2IiIGZpbGUxICYmCiAJCWVjaG8gInVzZXJuYW1lLXVua25vd246IGEgY2hhbmdlIGJ5IGNoYXJsaWUiID4+ZmlsZTEgJiYKLQkJZ2l0IGNvbW1pdCAtLWF1dGhvciAiQ2hhcmxpZSA8Y2hhcmxpZUBsb2NhbGhvc3Q+IiAtbSAicHJlc2VydmU6IGEgY2hhbmdlIGJ5IGNoYXJsaWUiIGZpbGUxICYmCisJCWdpdCBjb21taXQgLS1hdXRob3IgIkNoYXJsaWUgPGNoYXJsaWVAZXhhbXBsZS5jb20+IiAtbSAicHJlc2VydmU6IGEgY2hhbmdlIGJ5IGNoYXJsaWUiIGZpbGUxICYmCiAJCVA0RURJVE9SPXRvdWNoIFA0VVNFUj1hbGljZSBQNFBBU1NXRD1zZWNyZXQgJiYKIAkJZXhwb3J0IFA0RURJVE9SIFA0VVNFUiBQNFBBU1NXRCAmJgogCQl0ZXN0X211c3RfZmFpbCBnaXQgcDQgY29tbWl0IC0tcHJlc2VydmUtdXNlciAmJgpAQCAtMTIxLDI0ICsxMTEsMjQgQEAKIAkoCiAJCWNkICIkZ2l0IiAmJgogCQlnaXQgY29uZmlnIGdpdC1wNC5za2lwU3VibWl0RWRpdENoZWNrIHRydWUgJiYKLQkJcDRfYWRkX3VzZXIgZGVyZWsgRGVyZWsgJiYKKwkJcDRfYWRkX3VzZXIgZGVyZWsgJiYKIAotCQltYWtlX2NoYW5nZV9ieV91c2VyIHVzZXJuYW1lZmlsZTMgRGVyZWsgZGVyZWtAbG9jYWxob3N0ICYmCisJCW1ha2VfY2hhbmdlX2J5X3VzZXIgdXNlcm5hbWVmaWxlMyBEZXJlayBkZXJla0BleGFtcGxlLmNvbSAmJgogCQlQNEVESVRPUj1jYXQgUDRVU0VSPWFsaWNlIFA0UEFTU1dEPXNlY3JldCAmJgogCQlleHBvcnQgUDRFRElUT1IgUDRVU0VSIFA0UEFTU1dEICYmCiAJCWdpdCBwNCBjb21taXQgfFwKLQkJZ3JlcCAiZ2l0IGF1dGhvciBkZXJla0Bsb2NhbGhvc3QgZG9lcyBub3QgbWF0Y2giICYmCisJCWdyZXAgImdpdCBhdXRob3IgZGVyZWtAZXhhbXBsZS5jb20gZG9lcyBub3QgbWF0Y2giICYmCiAKLQkJbWFrZV9jaGFuZ2VfYnlfdXNlciB1c2VybmFtZWZpbGUzIENoYXJsaWUgY2hhcmxpZUBsb2NhbGhvc3QgJiYKKwkJbWFrZV9jaGFuZ2VfYnlfdXNlciB1c2VybmFtZWZpbGUzIENoYXJsaWUgY2hhcmxpZUBleGFtcGxlLmNvbSAmJgogCQlnaXQgcDQgY29tbWl0IHxcCi0JCWdyZXAgImdpdCBhdXRob3IgY2hhcmxpZUBsb2NhbGhvc3QgZG9lcyBub3QgbWF0Y2giICYmCisJCWdyZXAgImdpdCBhdXRob3IgY2hhcmxpZUBleGFtcGxlLmNvbSBkb2VzIG5vdCBtYXRjaCIgJiYKIAotCQltYWtlX2NoYW5nZV9ieV91c2VyIHVzZXJuYW1lZmlsZTMgYWxpY2UgYWxpY2VAbG9jYWxob3N0ICYmCisJCW1ha2VfY2hhbmdlX2J5X3VzZXIgdXNlcm5hbWVmaWxlMyBhbGljZSBhbGljZUBleGFtcGxlLmNvbSAmJgogCQlnaXQgcDQgY29tbWl0IHxcCiAJCXRlc3RfbXVzdF9mYWlsIGdyZXAgImdpdCBhdXRob3IuKmRvZXMgbm90IG1hdGNoIiAmJgogCiAJCWdpdCBjb25maWcgZ2l0LXA0LnNraXBVc2VyTmFtZUNoZWNrIHRydWUgJiYKLQkJbWFrZV9jaGFuZ2VfYnlfdXNlciB1c2VybmFtZWZpbGUzIENoYXJsaWUgY2hhcmxpZUBsb2NhbGhvc3QgJiYKKwkJbWFrZV9jaGFuZ2VfYnlfdXNlciB1c2VybmFtZWZpbGUzIENoYXJsaWUgY2hhcmxpZUBleGFtcGxlLmNvbSAmJgogCQlnaXQgcDQgY29tbWl0IHxcCiAJCXRlc3RfbXVzdF9mYWlsIGdyZXAgImdpdCBhdXRob3IuKmRvZXMgbm90IG1hdGNoIiAmJgogCmRpZmYgLS1naXQgYS90L3Q5ODE2LWdpdC1wNC1sb2NrZWQuc2ggYi90L3Q5ODE2LWdpdC1wNC1sb2NrZWQuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTcxZTU0MwotLS0gL2Rldi9udWxsCisrKyBiL3QvdDk4MTYtZ2l0LXA0LWxvY2tlZC5zaApAQCAtMCwwICsxLDE0NSBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249J2dpdCBwNCBsb2NrZWQgZmlsZSBiZWhhdmlvcicKKworLiAuL2xpYi1naXQtcDQuc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhcnQgcDRkJyAnCisJc3RhcnRfcDRkCisnCisKKyMgU2VlCisjIGh0dHA6Ly93d3cucGVyZm9yY2UuY29tL3BlcmZvcmNlL2RvYy5jdXJyZW50L21hbnVhbHMvcDRzYWcvMDNfc3VwZXJ1c2VyLmh0bWwjMTA4ODU2MworIyBmb3Igc3VnZ2VzdGlvbnMgb24gaG93IHRvIGNvbmZpZ3VyZSAic2l0ZXdpZGUgcGVzc2ltaXN0aWMgbG9ja2luZyIKKyMgd2hlcmUgb25seSBvbmUgcGVyc29uIGNhbiBoYXZlIGEgZmlsZSBvcGVuIGZvciBlZGl0IGF0IGEgdGltZS4KK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2luaXQgZGVwb3QnICcKKwkoCisJCWNkICIkY2xpIiAmJgorCQllY2hvICJUeXBlTWFwOiArbCAvL2RlcG90Ly4uLiIgfCBwNCB0eXBlbWFwIC1pICYmCisJCWVjaG8gZmlsZTEgPmZpbGUxICYmCisJCXA0IGFkZCBmaWxlMSAmJgorCQlwNCBzdWJtaXQgLWQgImFkZCBmaWxlMSIKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2VkaXQgd2l0aCBsb2NrIG5vdCB0YWtlbicgJworCXRlc3Rfd2hlbl9maW5pc2hlZCBjbGVhbnVwX2dpdCAmJgorCWdpdCBwNCBjbG9uZSAtLWRlc3Q9IiRnaXQiIC8vZGVwb3QgJiYKKwkoCisJCWNkICIkZ2l0IiAmJgorCQllY2hvIGxpbmUyID4+ZmlsZTEgJiYKKwkJZ2l0IGFkZCBmaWxlMSAmJgorCQlnaXQgY29tbWl0IC1tICJsaW5lMiBpbiBmaWxlMSIgJiYKKwkJZ2l0IGNvbmZpZyBnaXQtcDQuc2tpcFN1Ym1pdEVkaXQgdHJ1ZSAmJgorCQlnaXQgcDQgc3VibWl0CisJKQorJworCit0ZXN0X2V4cGVjdF9mYWlsdXJlICdhZGQgd2l0aCBsb2NrIG5vdCB0YWtlbicgJworCXRlc3Rfd2hlbl9maW5pc2hlZCBjbGVhbnVwX2dpdCAmJgorCWdpdCBwNCBjbG9uZSAtLWRlc3Q9IiRnaXQiIC8vZGVwb3QgJiYKKwkoCisJCWNkICIkZ2l0IiAmJgorCQllY2hvIGxpbmUxID4+YWRkLWxvY2stbm90LXRha2VuICYmCisJCWdpdCBhZGQgZmlsZTIgJiYKKwkJZ2l0IGNvbW1pdCAtbSAiYWRkIGFkZC1sb2NrLW5vdC10YWtlbiIgJiYKKwkJZ2l0IGNvbmZpZyBnaXQtcDQuc2tpcFN1Ym1pdEVkaXQgdHJ1ZSAmJgorCQlnaXQgcDQgc3VibWl0IC0tdmVyYm9zZQorCSkKKycKKworbG9ja19pbl9hbm90aGVyX2NsaWVudCgpIHsKKwkjIGJ1aWxkIGEgZGlmZmVyZW50IGNsaWVudAorCWNsaTI9IiRUUkFTSF9ESVJFQ1RPUlkvY2xpMiIgJiYKKwlta2RpciAtcCAiJGNsaTIiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJwNCBjbGllbnQgLWYgLWQgY2xpZW50MiAmJiBybSAtcmYgXCIkY2xpMlwiIiAmJgorCSgKKwkJY2QgIiRjbGkyIiAmJgorCQlQNENMSUVOVD1jbGllbnQyICYmCisJCWNsaT0iJGNsaTIiICYmCisJCWNsaWVudF92aWV3ICIvL2RlcG90Ly4uLiAvL2NsaWVudDIvLi4uIiAmJgorCQlwNCBzeW5jICYmCisJCXA0IG9wZW4gZmlsZTEKKwkpCit9CisKK3Rlc3RfZXhwZWN0X2ZhaWx1cmUgJ2VkaXQgd2l0aCBsb2NrIHRha2VuJyAnCisJbG9ja19pbl9hbm90aGVyX2NsaWVudCAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCBjbGVhbnVwX2dpdCAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgXCIkY2xpXCIgJiYgcDQgc3luYyAtZiBmaWxlMSIgJiYKKwlnaXQgcDQgY2xvbmUgLS1kZXN0PSIkZ2l0IiAvL2RlcG90ICYmCisJKAorCQljZCAiJGdpdCIgJiYKKwkJZWNobyBsaW5lMyA+PmZpbGUxICYmCisJCWdpdCBhZGQgZmlsZTEgJiYKKwkJZ2l0IGNvbW1pdCAtbSAibGluZTMgaW4gZmlsZTEiICYmCisJCWdpdCBjb25maWcgZ2l0LXA0LnNraXBTdWJtaXRFZGl0IHRydWUgJiYKKwkJZ2l0IHA0IHN1Ym1pdCAtLXZlcmJvc2UKKwkpCisnCisKK3Rlc3RfZXhwZWN0X2ZhaWx1cmUgJ2RlbGV0ZSB3aXRoIGxvY2sgdGFrZW4nICcKKwlsb2NrX2luX2Fub3RoZXJfY2xpZW50ICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkIGNsZWFudXBfZ2l0ICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJjZCBcIiRjbGlcIiAmJiBwNCBzeW5jIC1mIGZpbGUxIiAmJgorCWdpdCBwNCBjbG9uZSAtLWRlc3Q9IiRnaXQiIC8vZGVwb3QgJiYKKwkoCisJCWNkICIkZ2l0IiAmJgorCQlnaXQgcm0gZmlsZTEgJiYKKwkJZ2l0IGNvbW1pdCAtbSAiZGVsZXRlIGZpbGUxIiAmJgorCQlnaXQgY29uZmlnIGdpdC1wNC5za2lwU3VibWl0RWRpdCB0cnVlICYmCisJCWdpdCBwNCBzdWJtaXQgLS12ZXJib3NlCisJKQorJworCit0ZXN0X2V4cGVjdF9mYWlsdXJlICdjaG1vZCB3aXRoIGxvY2sgdGFrZW4nICcKKwlsb2NrX2luX2Fub3RoZXJfY2xpZW50ICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkIGNsZWFudXBfZ2l0ICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJjZCBcIiRjbGlcIiAmJiBwNCBzeW5jIC1mIGZpbGUxIiAmJgorCWdpdCBwNCBjbG9uZSAtLWRlc3Q9IiRnaXQiIC8vZGVwb3QgJiYKKwkoCisJCWNkICIkZ2l0IiAmJgorCQljaG1vZCAreCBmaWxlMSAmJgorCQlnaXQgYWRkIGZpbGUxICYmCisJCWdpdCBjb21taXQgLW0gImNobW9kICt4IGZpbGUxIiAmJgorCQlnaXQgY29uZmlnIGdpdC1wNC5za2lwU3VibWl0RWRpdCB0cnVlICYmCisJCWdpdCBwNCBzdWJtaXQgLS12ZXJib3NlCisJKQorJworCit0ZXN0X2V4cGVjdF9mYWlsdXJlICdjb3B5IHdpdGggbG9jayB0YWtlbicgJworCWxvY2tfaW5fYW5vdGhlcl9jbGllbnQgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgY2xlYW51cF9naXQgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgImNkIFwiJGNsaVwiICYmIHA0IHJldmVydCBmaWxlMiAmJiBybSAtZiBmaWxlMiIgJiYKKwlnaXQgcDQgY2xvbmUgLS1kZXN0PSIkZ2l0IiAvL2RlcG90ICYmCisJKAorCQljZCAiJGdpdCIgJiYKKwkJY3AgZmlsZTEgZmlsZTIgJiYKKwkJZ2l0IGFkZCBmaWxlMiAmJgorCQlnaXQgY29tbWl0IC1tICJjcCBmaWxlMSB0byBmaWxlMiIgJiYKKwkJZ2l0IGNvbmZpZyBnaXQtcDQuc2tpcFN1Ym1pdEVkaXQgdHJ1ZSAmJgorCQlnaXQgY29uZmlnIGdpdC1wNC5kZXRlY3RDb3BpZXMgdHJ1ZSAmJgorCQlnaXQgcDQgc3VibWl0IC0tdmVyYm9zZQorCSkKKycKKwordGVzdF9leHBlY3RfZmFpbHVyZSAnbW92ZSB3aXRoIGxvY2sgdGFrZW4nICcKKwlsb2NrX2luX2Fub3RoZXJfY2xpZW50ICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkIGNsZWFudXBfZ2l0ICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJjZCBcIiRjbGlcIiAmJiBwNCBzeW5jIGZpbGUxICYmIHJtIC1mIGZpbGUyIiAmJgorCWdpdCBwNCBjbG9uZSAtLWRlc3Q9IiRnaXQiIC8vZGVwb3QgJiYKKwkoCisJCWNkICIkZ2l0IiAmJgorCQlnaXQgbXYgZmlsZTEgZmlsZTIgJiYKKwkJZ2l0IGNvbW1pdCAtbSAibXYgZmlsZTEgdG8gZmlsZTIiICYmCisJCWdpdCBjb25maWcgZ2l0LXA0LnNraXBTdWJtaXRFZGl0IHRydWUgJiYKKwkJZ2l0IGNvbmZpZyBnaXQtcDQuZGV0ZWN0UmVuYW1lcyB0cnVlICYmCisJCWdpdCBwNCBzdWJtaXQgLS12ZXJib3NlCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdraWxsIHA0ZCcgJworCWtpbGxfcDRkCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90OTkwMy1iYXNoLXByb21wdC5zaCBiL3QvdDk5MDMtYmFzaC1wcm9tcHQuc2gKaW5kZXggM2MzZTRlOC4uNTlmODc1ZSAxMDA3NTUKLS0tIGEvdC90OTkwMy1iYXNoLXByb21wdC5zaAorKysgYi90L3Q5OTAzLWJhc2gtcHJvbXB0LnNoCkBAIC02MSw2ICs2MSwyOSBAQAogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCityZXBvX3dpdGhfbmV3bGluZT0ncmVwbword2l0aAorbmV3bGluZScKKworaWYgbWtkaXIgIiRyZXBvX3dpdGhfbmV3bGluZSIgMj4vZGV2L251bGwKK3RoZW4KKwl0ZXN0X3NldF9wcmVyZXEgRlVOTllOQU1FUworZWxzZQorCXNheSAnWW91ciBmaWxlc3lzdGVtIGRvZXMgbm90IGFsbG93IG5ld2xpbmVzIGluIGZpbGVuYW1lcy4nCitmaQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzIEZVTk5ZTkFNRVMgJ3Byb21wdCAtIHdpdGggbmV3bGluZSBpbiBwYXRoJyAnCisJcHJpbnRmICIgKG1hc3RlcikiID5leHBlY3RlZCAmJgorCWdpdCBpbml0ICIkcmVwb193aXRoX25ld2xpbmUiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgXCIkcmVwb193aXRoX25ld2xpbmVcIiIgJiYKKwlta2RpciAiJHJlcG9fd2l0aF9uZXdsaW5lIi9zdWJkaXIgJiYKKwkoCisJCWNkICIkcmVwb193aXRoX25ld2xpbmUvc3ViZGlyIiAmJgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgorCSkgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZGV0YWNoZWQgaGVhZCcgJwogCXByaW50ZiAiICgoJXMuLi4pKSIgJChnaXQgbG9nIC0xIC0tZm9ybWF0PSIlaCIgLS1hYmJyZXY9MTMgYjFeKSA+ZXhwZWN0ZWQgJiYKIAl0ZXN0X2NvbmZpZyBjb3JlLmFiYnJldiAxMyAmJgpkaWZmIC0tZ2l0IGEvdC90ZXN0LWxpYi1mdW5jdGlvbnMuc2ggYi90L3Rlc3QtbGliLWZ1bmN0aW9ucy5zaAppbmRleCBhN2U5YWFjLi5hZWFlM2NhIDEwMDY0NAotLS0gYS90L3Rlc3QtbGliLWZ1bmN0aW9ucy5zaAorKysgYi90L3Rlc3QtbGliLWZ1bmN0aW9ucy5zaApAQCAtMSw0ICsxLDUgQEAKLSMhL2Jpbi9zaAorIyBMaWJyYXJ5IG9mIGZ1bmN0aW9ucyBzaGFyZWQgYnkgYWxsIHRlc3RzIHNjcmlwdHMsIGluY2x1ZGVkIGJ5CisjIHRlc3QtbGliLnNoLgogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDUgSnVuaW8gQyBIYW1hbm8KICMKQEAgLTc2LDExICs3NywxMSBAQAogfQogCiBudWxfdG9fcSAoKSB7Ci0JIiRQRVJMX1BBVEgiIC1wZSAneS9cMDAwL1EvJworCXBlcmwgLXBlICd5L1wwMDAvUS8nCiB9CiAKIHFfdG9fbnVsICgpIHsKLQkiJFBFUkxfUEFUSCIgLXBlICd5L1EvXDAwMC8nCisJcGVybCAtcGUgJ3kvUS9cMDAwLycKIH0KIAogcV90b19jciAoKSB7CkBAIC02NDgsNyArNjQ5LDcgQEAKIAkyKQk7OwogCSopCWVycm9yICJidWcgaW4gdGhlIHRlc3Qgc2NyaXB0OiBub3QgMSBvciAyIHBhcmFtZXRlcnMgdG8gdGVzdF9zZXEiIDs7CiAJZXNhYwotCSIkUEVSTF9QQVRIIiAtbGUgJ3ByaW50IGZvciAkQVJHVlswXS4uJEFSR1ZbMV0nIC0tICIkQCIKKwlwZXJsIC1sZSAncHJpbnQgZm9yICRBUkdWWzBdLi4kQVJHVlsxXScgLS0gIiRAIgogfQogCiAjIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gc2NoZWR1bGUgc29tZSBjb21tYW5kcyB0byBiZSBydW4KQEAgLTcxMCwzICs3MTEsNzMgQEAKIAkJZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCAtLWNhY2hlaW5mbyAxMjAwMDAgJGxuX3Nfb2JqICIkMiIKIAlmaQogfQorCitwZXJsICgpIHsKKwljb21tYW5kICIkUEVSTF9QQVRIIiAiJEAiCit9CisKKyMgVGhlIGZvbGxvd2luZyBtaW5nd18qIGZ1bmN0aW9ucyBvYmV5IFBPU0lYIHNoZWxsIHN5bnRheCwgYnV0IGFyZSBhY3R1YWxseQorIyBiYXNoIHNjcmlwdHMsIGFuZCBhcmUgbWVhbnQgdG8gYmUgdXNlZCBvbmx5IHdpdGggYmFzaCBvbiBXaW5kb3dzLgorCisjIEEgdGVzdF9jbXAgZnVuY3Rpb24gdGhhdCB0cmVhdHMgTEYgYW5kIENSTEYgZXF1YWwgYW5kIGF2b2lkcyB0byBmb3JrCisjIGRpZmYgd2hlbiBwb3NzaWJsZS4KK21pbmd3X3Rlc3RfY21wICgpIHsKKwkjIFJlYWQgdGV4dCBpbnRvIHNoZWxsIHZhcmlhYmxlcyBhbmQgY29tcGFyZSB0aGVtLiBJZiB0aGUgcmVzdWx0cworCSMgYXJlIGRpZmZlcmVudCwgdXNlIHJlZ3VsYXIgZGlmZiB0byByZXBvcnQgdGhlIGRpZmZlcmVuY2UuCisJbG9jYWwgdGVzdF9jbXBfYT0gdGVzdF9jbXBfYj0KKworCSMgV2hlbiB0ZXh0IGNhbWUgZnJvbSBzdGRpbiAob25lIGFyZ3VtZW50IGlzICctJykgd2UgbXVzdCBmZWVkIGl0CisJIyB0byBkaWZmLgorCWxvY2FsIHN0ZGluX2Zvcl9kaWZmPQorCisJIyBTaW5jZSBpdCBpcyBkaWZmaWN1bHQgdG8gZGV0ZWN0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYW4KKwkjIGVtcHR5IGlucHV0IGZpbGUgYW5kIGEgZmFpbHVyZSB0byByZWFkIHRoZSBmaWxlcywgd2UgZ28gc3RyYWlnaHQKKwkjIHRvIGRpZmYgaWYgb25lIG9mIHRoZSBpbnB1dHMgaXMgZW1wdHkuCisJaWYgdGVzdCAtcyAiJDEiICYmIHRlc3QgLXMgIiQyIgorCXRoZW4KKwkJIyByZWd1bGFyIGNhc2U6IGJvdGggZmlsZXMgbm9uLWVtcHR5CisJCW1pbmd3X3JlYWRfZmlsZV9zdHJpcF9jcl8gdGVzdF9jbXBfYSA8IiQxIgorCQltaW5nd19yZWFkX2ZpbGVfc3RyaXBfY3JfIHRlc3RfY21wX2IgPCIkMiIKKwllbGlmIHRlc3QgLXMgIiQxIiAmJiB0ZXN0ICIkMiIgPSAtCisJdGhlbgorCQkjIHJlYWQgMm5kIGZpbGUgZnJvbSBzdGRpbgorCQltaW5nd19yZWFkX2ZpbGVfc3RyaXBfY3JfIHRlc3RfY21wX2EgPCIkMSIKKwkJbWluZ3dfcmVhZF9maWxlX3N0cmlwX2NyXyB0ZXN0X2NtcF9iCisJCXN0ZGluX2Zvcl9kaWZmPSc8PDwiJHRlc3RfY21wX2IiJworCWVsaWYgdGVzdCAiJDEiID0gLSAmJiB0ZXN0IC1zICIkMiIKKwl0aGVuCisJCSMgcmVhZCAxc3QgZmlsZSBmcm9tIHN0ZGluCisJCW1pbmd3X3JlYWRfZmlsZV9zdHJpcF9jcl8gdGVzdF9jbXBfYQorCQltaW5nd19yZWFkX2ZpbGVfc3RyaXBfY3JfIHRlc3RfY21wX2IgPCIkMiIKKwkJc3RkaW5fZm9yX2RpZmY9Jzw8PCIkdGVzdF9jbXBfYSInCisJZmkKKwl0ZXN0IC1uICIkdGVzdF9jbXBfYSIgJiYKKwl0ZXN0IC1uICIkdGVzdF9jbXBfYiIgJiYKKwl0ZXN0ICIkdGVzdF9jbXBfYSIgPSAiJHRlc3RfY21wX2IiIHx8CisJZXZhbCAiZGlmZiAtdSBcIlwkQFwiICRzdGRpbl9mb3JfZGlmZiIKK30KKworIyAkMSBpcyB0aGUgbmFtZSBvZiB0aGUgc2hlbGwgdmFyaWFibGUgdG8gZmlsbCBpbgorbWluZ3dfcmVhZF9maWxlX3N0cmlwX2NyXyAoKSB7CisJIyBSZWFkIGxpbmUtd2lzZSB1c2luZyBMRiBhcyB0aGUgbGluZSBzZXBhcmF0b3IKKwkjIGFuZCB1c2UgSUZTIHRvIHN0cmlwIENSLgorCWxvY2FsIGxpbmUKKwl3aGlsZSA6CisJZG8KKwkJaWYgSUZTPSQnXHInIHJlYWQgLXIgLWQgJCdcbicgbGluZQorCQl0aGVuCisJCQkjIGdvb2QKKwkJCWxpbmU9JGxpbmUkJ1xuJworCQllbHNlCisJCQkjIHdlIGdldCBoZXJlIGF0IEVPRiwgYnV0IGFsc28gaWYgdGhlIGxhc3QgbGluZQorCQkJIyB3YXMgbm90IHRlcm1pbmF0ZWQgYnkgTEY7IGluIHRoZSBsYXR0ZXIgY2FzZSwKKwkJCSMgc29tZSB0ZXh0IHdhcyByZWFkCisJCQlpZiB0ZXN0IC16ICIkbGluZSIKKwkJCXRoZW4KKwkJCQkjIEVPRiwgcmVhbGx5CisJCQkJYnJlYWsKKwkJCWZpCisJCWZpCisJCWV2YWwgIiQxPVwkJDFcJGxpbmUiCisJZG9uZQorfQpkaWZmIC0tZ2l0IGEvdC90ZXN0LWxpYi5zaCBiL3QvdGVzdC1saWIuc2gKaW5kZXggYzVlOTE0YS4uMTUzMWMyNCAxMDA2NDQKLS0tIGEvdC90ZXN0LWxpYi5zaAorKysgYi90L3Rlc3QtbGliLnNoCkBAIC0xLDQgKzEsNCBAQAotIyEvYmluL3NoCisjIFRlc3QgZnJhbWV3b3JrIGZvciBnaXQuICBTZWUgdC9SRUFETUUgZm9yIHVzYWdlLgogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDUgSnVuaW8gQyBIYW1hbm8KICMKQEAgLTI2LDYgKzI2LDEwIEBACiAJIyBvdXRzaWRlIG9mIHQvLCBlLmcuIGZvciBydW5uaW5nIHRlc3RzIG9uIHRoZSB0ZXN0IGxpYnJhcnkKIAkjIGl0c2VsZi4KIAlURVNUX0RJUkVDVE9SWT0kKHB3ZCkKK2Vsc2UKKwkjIGVuc3VyZSB0aGF0IFRFU1RfRElSRUNUT1JZIGlzIGFuIGFic29sdXRlIHBhdGggc28gdGhhdCBpdAorCSMgaXMgdmFsaWQgZXZlbiBpZiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBpcyBjaGFuZ2VkCisJVEVTVF9ESVJFQ1RPUlk9JChjZCAiJFRFU1RfRElSRUNUT1JZIiAmJiBwd2QpIHx8IGV4aXQgMQogZmkKIGlmIHRlc3QgLXogIiRURVNUX09VVFBVVF9ESVJFQ1RPUlkiCiB0aGVuCkBAIC0yMDUsMjkgKzIwOSwxNyBAQAogCS0tdmFsZ3JpbmQtb25seT0qKQogCQl2YWxncmluZF9vbmx5PSQoZXhwciAieiQxIiA6ICd6W149XSo9XCguKlwpJykKIAkJc2hpZnQgOzsKLQktLXZhbGdyaW5kLXBhcmFsbGVsPSopCi0JCXZhbGdyaW5kX3BhcmFsbGVsPSQoZXhwciAieiQxIiA6ICd6W149XSo9XCguKlwpJykKLQkJc2hpZnQgOzsKLQktLXZhbGdyaW5kLW9ubHktc3RyaWRlPSopCi0JCXZhbGdyaW5kX29ubHlfc3RyaWRlPSQoZXhwciAieiQxIiA6ICd6W149XSo9XCguKlwpJykKLQkJc2hpZnQgOzsKLQktLXZhbGdyaW5kLW9ubHktb2Zmc2V0PSopCi0JCXZhbGdyaW5kX29ubHlfb2Zmc2V0PSQoZXhwciAieiQxIiA6ICd6W149XSo9XCguKlwpJykKLQkJc2hpZnQgOzsKIAktLXRlZSkKIAkJc2hpZnQgOzsgIyB3YXMgaGFuZGxlZCBhbHJlYWR5CiAJLS1yb290PSopCiAJCXJvb3Q9JChleHByICJ6JDEiIDogJ3pbXj1dKj1cKC4qXCknKQogCQlzaGlmdCA7OwotCS0tc3RhdHVzcHJlZml4PSopCi0JCXN0YXR1c3ByZWZpeD0kKGV4cHIgInokMSIgOiAneltePV0qPVwoLipcKScpCi0JCXNoaWZ0IDs7CiAJKikKIAkJZWNobyAiZXJyb3I6IHVua25vd24gdGVzdCBvcHRpb24gJyQxJyIgPiYyOyBleGl0IDEgOzsKIAllc2FjCiBkb25lCiAKLWlmIHRlc3QgLW4gIiR2YWxncmluZF9vbmx5IiB8fCB0ZXN0IC1uICIkdmFsZ3JpbmRfb25seV9zdHJpZGUiCitpZiB0ZXN0IC1uICIkdmFsZ3JpbmRfb25seSIKIHRoZW4KIAl0ZXN0IC16ICIkdmFsZ3JpbmQiICYmIHZhbGdyaW5kPW1lbWNoZWNrCiAJdGVzdCAteiAiJHZlcmJvc2UiICYmIHZlcmJvc2Vfb25seT0iJHZhbGdyaW5kX29ubHkiCkBAIC0zMjksMTIgKzMyMSwxMiBAQAogCiB0ZXN0X29rXyAoKSB7CiAJdGVzdF9zdWNjZXNzPSQoKCR0ZXN0X3N1Y2Nlc3MgKyAxKSkKLQlzYXlfY29sb3IgIiIgIiR7c3RhdHVzcHJlZml4fW9rICR0ZXN0X2NvdW50IC0gJEAiCisJc2F5X2NvbG9yICIiICJvayAkdGVzdF9jb3VudCAtICRAIgogfQogCiB0ZXN0X2ZhaWx1cmVfICgpIHsKIAl0ZXN0X2ZhaWx1cmU9JCgoJHRlc3RfZmFpbHVyZSArIDEpKQotCXNheV9jb2xvciBlcnJvciAiJHtzdGF0dXNwcmVmaXh9bm90IG9rICR0ZXN0X2NvdW50IC0gJDEiCisJc2F5X2NvbG9yIGVycm9yICJub3Qgb2sgJHRlc3RfY291bnQgLSAkMSIKIAlzaGlmdAogCWVjaG8gIiRAIiB8IHNlZCAtZSAncy9eLyMJLycKIAl0ZXN0ICIkaW1tZWRpYXRlIiA9ICIiIHx8IHsgR0lUX0VYSVRfT0s9dDsgZXhpdCAxOyB9CkBAIC0zNDIsMTIgKzMzNCwxMiBAQAogCiB0ZXN0X2tub3duX2Jyb2tlbl9va18gKCkgewogCXRlc3RfZml4ZWQ9JCgoJHRlc3RfZml4ZWQrMSkpCi0Jc2F5X2NvbG9yIGVycm9yICIke3N0YXR1c3ByZWZpeH1vayAkdGVzdF9jb3VudCAtICRAICMgVE9ETyBrbm93biBicmVha2FnZSB2YW5pc2hlZCIKKwlzYXlfY29sb3IgZXJyb3IgIm9rICR0ZXN0X2NvdW50IC0gJEAgIyBUT0RPIGtub3duIGJyZWFrYWdlIHZhbmlzaGVkIgogfQogCiB0ZXN0X2tub3duX2Jyb2tlbl9mYWlsdXJlXyAoKSB7CiAJdGVzdF9icm9rZW49JCgoJHRlc3RfYnJva2VuKzEpKQotCXNheV9jb2xvciB3YXJuICIke3N0YXR1c3ByZWZpeH1ub3Qgb2sgJHRlc3RfY291bnQgLSAkQCAjIFRPRE8ga25vd24gYnJlYWthZ2UiCisJc2F5X2NvbG9yIHdhcm4gIm5vdCBvayAkdGVzdF9jb3VudCAtICRAICMgVE9ETyBrbm93biBicmVha2FnZSIKIH0KIAogdGVzdF9kZWJ1ZyAoKSB7CkBAIC0zNzcsOSArMzY5LDcgQEAKIGxhc3RfdmVyYm9zZT10CiBtYXliZV9zZXR1cF92ZXJib3NlICgpIHsKIAl0ZXN0IC16ICIkdmVyYm9zZV9vbmx5IiAmJiByZXR1cm4KLQlpZiBtYXRjaF9wYXR0ZXJuX2xpc3QgJHRlc3RfY291bnQgJHZlcmJvc2Vfb25seSB8fAotCQl7IHRlc3QgLW4gIiR2YWxncmluZF9vbmx5X3N0cmlkZSIgJiYKLQkJZXhwciAkdGVzdF9jb3VudCAiJSIgJHZhbGdyaW5kX29ubHlfc3RyaWRlIC0gJHZhbGdyaW5kX29ubHlfb2Zmc2V0ID0gMCA+L2Rldi9udWxsOyB9CisJaWYgbWF0Y2hfcGF0dGVybl9saXN0ICR0ZXN0X2NvdW50ICR2ZXJib3NlX29ubHkKIAl0aGVuCiAJCWV4ZWMgND4mMiAzPiYxCiAJCSMgRW1pdCBhIGRlbGltaXRpbmcgYmxhbmsgbGluZSB3aGVuIGdvaW5nIGZyb20KQEAgLTQwMyw3ICszOTMsNyBAQAogCiBtYXliZV9zZXR1cF92YWxncmluZCAoKSB7CiAJdGVzdCAteiAiJEdJVF9WQUxHUklORCIgJiYgcmV0dXJuCi0JaWYgdGVzdCAteiAiJHZhbGdyaW5kX29ubHkiICYmIHRlc3QgLXogIiR2YWxncmluZF9vbmx5X3N0cmlkZSIKKwlpZiB0ZXN0IC16ICIkdmFsZ3JpbmRfb25seSIKIAl0aGVuCiAJCUdJVF9WQUxHUklORF9FTkFCTEVEPXQKIAkJcmV0dXJuCkBAIC00MTIsMTAgKzQwMiw2IEBACiAJaWYgbWF0Y2hfcGF0dGVybl9saXN0ICR0ZXN0X2NvdW50ICR2YWxncmluZF9vbmx5CiAJdGhlbgogCQlHSVRfVkFMR1JJTkRfRU5BQkxFRD10Ci0JZWxpZiB0ZXN0IC1uICIkdmFsZ3JpbmRfb25seV9zdHJpZGUiICYmCi0JCWV4cHIgJHRlc3RfY291bnQgIiUiICR2YWxncmluZF9vbmx5X3N0cmlkZSAtICR2YWxncmluZF9vbmx5X29mZnNldCA9IDAgPi9kZXYvbnVsbAotCXRoZW4KLQkJR0lUX1ZBTEdSSU5EX0VOQUJMRUQ9dAogCWZpCiB9CiAKQEAgLTQ3Nyw4ICs0NjMsOCBAQAogCQkJb2ZfcHJlcmVxPSIgb2YgJHRlc3RfcHJlcmVxIgogCQlmaQogCi0JCXNheV9jb2xvciBza2lwID4mMyAiJHtzdGF0dXNwcmVmaXh9c2tpcHBpbmcgdGVzdDogJEAiCi0JCXNheV9jb2xvciBza2lwICIke3N0YXR1c3ByZWZpeH1vayAkdGVzdF9jb3VudCAjIHNraXAgJDEgKG1pc3NpbmcgJG1pc3NpbmdfcHJlcmVxJHtvZl9wcmVyZXF9KSIKKwkJc2F5X2NvbG9yIHNraXAgPiYzICJza2lwcGluZyB0ZXN0OiAkQCIKKwkJc2F5X2NvbG9yIHNraXAgIm9rICR0ZXN0X2NvdW50ICMgc2tpcCAkMSAobWlzc2luZyAkbWlzc2luZ19wcmVyZXEke29mX3ByZXJlcX0pIgogCQk6IHRydWUKIAkJOzsKIAkqKQpAQCAtNDk1LDggKzQ4MSw2IEBACiB0ZXN0X2RvbmUgKCkgewogCUdJVF9FWElUX09LPXQKIAotCSMgTm90ZTogdDAwMDAgcmVsaWVzIG9uICRIQVJORVNTX0FDVElWRSBkaXNhYmxpbmcgdGhlIC5jb3VudHMKLQkjIG91dHB1dCBmaWxlCiAJaWYgdGVzdCAteiAiJEhBUk5FU1NfQUNUSVZFIgogCXRoZW4KIAkJdGVzdF9yZXN1bHRzX2Rpcj0iJFRFU1RfT1VUUFVUX0RJUkVDVE9SWS90ZXN0LXJlc3VsdHMiCkBAIC01MTYsMTEgKzUwMCwxMSBAQAogCiAJaWYgdGVzdCAiJHRlc3RfZml4ZWQiICE9IDAKIAl0aGVuCi0JCXNheV9jb2xvciBlcnJvciAiJHtzdGF0dXNwcmVmaXh9IyAkdGVzdF9maXhlZCBrbm93biBicmVha2FnZShzKSB2YW5pc2hlZDsgcGxlYXNlIHVwZGF0ZSB0ZXN0KHMpIgorCQlzYXlfY29sb3IgZXJyb3IgIiMgJHRlc3RfZml4ZWQga25vd24gYnJlYWthZ2UocykgdmFuaXNoZWQ7IHBsZWFzZSB1cGRhdGUgdGVzdChzKSIKIAlmaQogCWlmIHRlc3QgIiR0ZXN0X2Jyb2tlbiIgIT0gMAogCXRoZW4KLQkJc2F5X2NvbG9yIHdhcm4gIiR7c3RhdHVzcHJlZml4fSMgc3RpbGwgaGF2ZSAkdGVzdF9icm9rZW4ga25vd24gYnJlYWthZ2UocykiCisJCXNheV9jb2xvciB3YXJuICIjIHN0aWxsIGhhdmUgJHRlc3RfYnJva2VuIGtub3duIGJyZWFrYWdlKHMpIgogCWZpCiAJaWYgdGVzdCAiJHRlc3RfYnJva2VuIiAhPSAwIHx8IHRlc3QgIiR0ZXN0X2ZpeGVkIiAhPSAwCiAJdGhlbgpAQCAtNTQzLDkgKzUyNyw5IEBACiAJCXRoZW4KIAkJCWlmIHRlc3QgJHRlc3RfcmVtYWluaW5nIC1ndCAwCiAJCQl0aGVuCi0JCQkJc2F5X2NvbG9yIHBhc3MgIiR7c3RhdHVzcHJlZml4fSMgcGFzc2VkIGFsbCAkbXNnIgorCQkJCXNheV9jb2xvciBwYXNzICIjIHBhc3NlZCBhbGwgJG1zZyIKIAkJCWZpCi0JCQlzYXkgIiR7c3RhdHVzcHJlZml4fTEuLiR0ZXN0X2NvdW50JHNraXBfYWxsIgorCQkJc2F5ICIxLi4kdGVzdF9jb3VudCRza2lwX2FsbCIKIAkJZmkKIAogCQl0ZXN0IC1kICIkcmVtb3ZlX3RyYXNoIiAmJgpAQCAtNTU5LDggKzU0Myw4IEBACiAJKikKIAkJaWYgdGVzdCAkdGVzdF9leHRlcm5hbF9oYXNfdGFwIC1lcSAwCiAJCXRoZW4KLQkJCXNheV9jb2xvciBlcnJvciAiJHtzdGF0dXNwcmVmaXh9IyBmYWlsZWQgJHRlc3RfZmFpbHVyZSBhbW9uZyAkbXNnIgotCQkJc2F5ICIke3N0YXR1c3ByZWZpeH0xLi4kdGVzdF9jb3VudCIKKwkJCXNheV9jb2xvciBlcnJvciAiIyBmYWlsZWQgJHRlc3RfZmFpbHVyZSBhbW9uZyAkbXNnIgorCQkJc2F5ICIxLi4kdGVzdF9jb3VudCIKIAkJZmkKIAogCQlleGl0IDEgOzsKQEAgLTU2OCw5ICs1NTIsNiBAQAogCWVzYWMKIH0KIAotCi0jIFNldCB1cCBhIGRpcmVjdG9yeSB0aGF0IHdlIGNhbiBwdXQgaW4gUEFUSCB3aGljaCByZWRpcmVjdHMgYWxsIGdpdAotIyBjYWxscyB0byAndmFsZ3JpbmQgZ2l0IC4uLicuCiBpZiB0ZXN0IC1uICIkdmFsZ3JpbmQiCiB0aGVuCiAJbWFrZV9zeW1saW5rICgpIHsKQEAgLTU5NCwxMSArNTc1LDkgQEAKIAogCW1ha2VfdmFsZ3JpbmRfc3ltbGluayAoKSB7CiAJCSMgaGFuZGxlIG9ubHkgZXhlY3V0YWJsZXMsIHVubGVzcyB0aGV5IGFyZSBzaGVsbCBsaWJyYXJpZXMgdGhhdAotCQkjIG5lZWQgdG8gYmUgaW4gdGhlIGV4ZWMtcGF0aC4gIFdlIHdpbGwganVzdCB1c2UgIiMhIiBhcyBhCi0JCSMgZ3Vlc3MgZm9yIGEgc2hlbGwtc2NyaXB0LCBzaW5jZSB3ZSBoYXZlIG5vIGlkZWEgd2hhdCB0aGUgdXNlcgotCQkjIG1heSBoYXZlIGNvbmZpZ3VyZWQgYXMgdGhlIHNoZWxsIHBhdGguCisJCSMgbmVlZCB0byBiZSBpbiB0aGUgZXhlYy1wYXRoLgogCQl0ZXN0IC14ICIkMSIgfHwKLQkJdGVzdCAiIyEiID0gIiQoaGVhZCAtYyAyIDwiJDEiKSIgfHwKKwkJdGVzdCAiIyAiID0gIiQoaGVhZCAtYyAyIDwiJDEiKSIgfHwKIAkJcmV0dXJuOwogCiAJCWJhc2U9JChiYXNlbmFtZSAiJDEiKQpAQCAtNjE4LDQyICs1OTcsMzMgQEAKIAkJbWFrZV9zeW1saW5rICIkc3ltbGlua190YXJnZXQiICIkR0lUX1ZBTEdSSU5EL2Jpbi8kYmFzZSIgfHwgZXhpdAogCX0KIAotCSMgSW4gdGhlIGNhc2Ugb2YgLS12YWxncmluZC1wYXJhbGxlbCwgd2Ugb25seSBuZWVkIHRvIGRvIHRoZQotCSMgd3JhcHBpbmcgb25jZSwgaW4gdGhlIG1haW4gc2NyaXB0LiAgVGhlIHdvcmtlciBjaGlsZHJlbiBhbGwKLQkjIGhhdmUgJHZhbGdyaW5kX29ubHlfc3RyaWRlIHNldCwgc28gd2UgY2FuIHNraXAgYmFzZWQgb24gdGhhdC4KLQlpZiB0ZXN0IC16ICIkdmFsZ3JpbmRfb25seV9zdHJpZGUiCi0JdGhlbgotCQkjIG92ZXJyaWRlIGFsbCBnaXQgZXhlY3V0YWJsZXMgaW4gVEVTVF9ESVJFQ1RPUlkvLi4KLQkJR0lUX1ZBTEdSSU5EPSRURVNUX0RJUkVDVE9SWS92YWxncmluZAotCQlta2RpciAtcCAiJEdJVF9WQUxHUklORCIvYmluCi0JCWZvciBmaWxlIGluICRHSVRfQlVJTERfRElSL2dpdCogJEdJVF9CVUlMRF9ESVIvdGVzdC0qCisJIyBvdmVycmlkZSBhbGwgZ2l0IGV4ZWN1dGFibGVzIGluIFRFU1RfRElSRUNUT1JZLy4uCisJR0lUX1ZBTEdSSU5EPSRURVNUX0RJUkVDVE9SWS92YWxncmluZAorCW1rZGlyIC1wICIkR0lUX1ZBTEdSSU5EIi9iaW4KKwlmb3IgZmlsZSBpbiAkR0lUX0JVSUxEX0RJUi9naXQqICRHSVRfQlVJTERfRElSL3Rlc3QtKgorCWRvCisJCW1ha2VfdmFsZ3JpbmRfc3ltbGluayAkZmlsZQorCWRvbmUKKwkjIHNwZWNpYWwtY2FzZSB0aGUgbWVyZ2V0b29scyBsb2FkYWJsZXMKKwltYWtlX3N5bWxpbmsgIiRHSVRfQlVJTERfRElSIi9tZXJnZXRvb2xzICIkR0lUX1ZBTEdSSU5EL2Jpbi9tZXJnZXRvb2xzIgorCU9MRElGUz0kSUZTCisJSUZTPToKKwlmb3IgcGF0aCBpbiAkUEFUSAorCWRvCisJCWxzICIkcGF0aCIvZ2l0LSogMj4gL2Rldi9udWxsIHwKKwkJd2hpbGUgcmVhZCBmaWxlCiAJCWRvCi0JCQltYWtlX3ZhbGdyaW5kX3N5bWxpbmsgJGZpbGUKKwkJCW1ha2VfdmFsZ3JpbmRfc3ltbGluayAiJGZpbGUiCiAJCWRvbmUKLQkJIyBzcGVjaWFsLWNhc2UgdGhlIG1lcmdldG9vbHMgbG9hZGFibGVzCi0JCW1ha2Vfc3ltbGluayAiJEdJVF9CVUlMRF9ESVIiL21lcmdldG9vbHMgIiRHSVRfVkFMR1JJTkQvYmluL21lcmdldG9vbHMiCi0JCU9MRElGUz0kSUZTCi0JCUlGUz06Ci0JCWZvciBwYXRoIGluICRQQVRICi0JCWRvCi0JCQlscyAiJHBhdGgiL2dpdC0qIDI+IC9kZXYvbnVsbCB8Ci0JCQl3aGlsZSByZWFkIGZpbGUKLQkJCWRvCi0JCQkJbWFrZV92YWxncmluZF9zeW1saW5rICIkZmlsZSIKLQkJCWRvbmUKLQkJZG9uZQotCQlJRlM9JE9MRElGUwotCWZpCisJZG9uZQorCUlGUz0kT0xESUZTCiAJUEFUSD0kR0lUX1ZBTEdSSU5EL2JpbjokUEFUSAogCUdJVF9FWEVDX1BBVEg9JEdJVF9WQUxHUklORC9iaW4KIAlleHBvcnQgR0lUX1ZBTEdSSU5ECiAJR0lUX1ZBTEdSSU5EX01PREU9IiR2YWxncmluZCIKIAlleHBvcnQgR0lUX1ZBTEdSSU5EX01PREUKIAlHSVRfVkFMR1JJTkRfRU5BQkxFRD10Ci0JaWYgdGVzdCAtbiAiJHZhbGdyaW5kX29ubHkiIHx8IHRlc3QgLW4gIiR2YWxncmluZF9vbmx5X3N0cmlkZSIKLQl0aGVuCi0JCUdJVF9WQUxHUklORF9FTkFCTEVEPQotCWZpCisJdGVzdCAtbiAiJHZhbGdyaW5kX29ubHkiICYmIEdJVF9WQUxHUklORF9FTkFCTEVEPQogCWV4cG9ydCBHSVRfVkFMR1JJTkRfRU5BQkxFRAogZWxpZiB0ZXN0IC1uICIkR0lUX1RFU1RfSU5TVEFMTEVEIgogdGhlbgpAQCAtNzAwLDE1ICs2NzAsNiBAQAogCWVycm9yICJZb3UgaGF2ZW4ndCBidWlsdCB0aGluZ3MgeWV0LCBoYXZlIHlvdT8iCiB9CiAKLWlmIHRlc3QgLXogIiRHSVRfVEVTVF9JTlNUQUxMRUQiICYmIHRlc3QgLXogIiROT19QWVRIT04iCi10aGVuCi0JR0lUUFlUSE9OTElCPSIkR0lUX0JVSUxEX0RJUi9naXRfcmVtb3RlX2hlbHBlcnMvYnVpbGQvbGliIgotCWV4cG9ydCBHSVRQWVRIT05MSUIKLQl0ZXN0IC1kICIkR0lUX0JVSUxEX0RJUiIvZ2l0X3JlbW90ZV9oZWxwZXJzL2J1aWxkIHx8IHsKLQkJZXJyb3IgIllvdSBoYXZlbid0IGJ1aWx0IGdpdF9yZW1vdGVfaGVscGVycyB5ZXQsIGhhdmUgeW91PyIKLQl9Ci1maQotCiBpZiAhIHRlc3QgLXggIiRHSVRfQlVJTERfRElSIi90ZXN0LWNobXRpbWUKIHRoZW4KIAllY2hvID4mMiAnWW91IG5lZWQgdG8gYnVpbGQgdGVzdC1jaG10aW1lOicKQEAgLTczOSw0MSArNzAwLDYgQEAKIGVsc2UKIAlta2RpciAtcCAiJFRSQVNIX0RJUkVDVE9SWSIKIGZpCi0KLSMgR3Jvc3MgaGFjayB0byBzcGF3biBOIHN1Yi1pbnN0YW5jZXMgb2YgdGhlIHRlc3RzIGluIHBhcmFsbGVsLCBhbmQKLSMgc3VtbWFyaXplIHRoZSByZXN1bHRzLiAgTm90ZSB0aGF0IGlmIHRoaXMgaXMgZW5hYmxlZCwgdGhlIHNjcmlwdAotIyB0ZXJtaW5hdGVzIGF0IHRoZSBlbmQgb2YgdGhpcyAnaWYnIGJsb2NrLgotaWYgdGVzdCAtbiAiJHZhbGdyaW5kX3BhcmFsbGVsIgotdGhlbgotCWZvciBpIGluICQodGVzdF9zZXEgMSAkdmFsZ3JpbmRfcGFyYWxsZWwpCi0JZG8KLQkJcm9vdD0iJFRSQVNIX0RJUkVDVE9SWS92Z3BhcmFsbGVsLSRpIgotCQlta2RpciAiJHJvb3QiCi0JCVRFU1RfT1VUUFVUX0RJUkVDVE9SWT0iJHJvb3QiIFwKLQkJCSR7U0hFTExfUEFUSH0gIiQwIiBcCi0JCQktLXJvb3Q9IiRyb290IiAtLXN0YXR1c3ByZWZpeD0iWyRpXSAiIFwKLQkJCS0tdmFsZ3JpbmQ9IiR2YWxncmluZCIgXAotCQkJLS12YWxncmluZC1vbmx5LXN0cmlkZT0iJHZhbGdyaW5kX3BhcmFsbGVsIiBcCi0JCQktLXZhbGdyaW5kLW9ubHktb2Zmc2V0PSIkaSIgJgotCQlwaWRzPSIkcGlkcyAkISIKLQlkb25lCi0JdHJhcCAia2lsbCAkcGlkcyIgSU5UIFRFUk0gSFVQCi0Jd2FpdCAkcGlkcwotCXRyYXAgLSBJTlQgVEVSTSBIVVAKLQlmb3IgaSBpbiAkKHRlc3Rfc2VxIDEgJHZhbGdyaW5kX3BhcmFsbGVsKQotCWRvCi0JCXJvb3Q9IiRUUkFTSF9ESVJFQ1RPUlkvdmdwYXJhbGxlbC0kaSIKLQkJZXZhbCAiJChjYXQgIiRyb290L3Rlc3QtcmVzdWx0cy8kKGJhc2VuYW1lICIkMCIgLnNoKSItKi5jb3VudHMgfAotCQkJc2VkICdzL15cKFthLXpdW2Etel0qXCkgXChbMC05XVswLTldKlwpL2lubmVyX1wxPVwyLycpIgotCQl0ZXN0X2NvdW50PSQoZXhwciAkdGVzdF9jb3VudCArICRpbm5lcl90b3RhbCkKLQkJdGVzdF9zdWNjZXNzPSQoZXhwciAkdGVzdF9zdWNjZXNzICsgJGlubmVyX3N1Y2Nlc3MpCi0JCXRlc3RfZml4ZWQ9JChleHByICR0ZXN0X2ZpeGVkICsgJGlubmVyX2ZpeGVkKQotCQl0ZXN0X2Jyb2tlbj0kKGV4cHIgJHRlc3RfYnJva2VuICsgJGlubmVyX2Jyb2tlbikKLQkJdGVzdF9mYWlsdXJlPSQoZXhwciAkdGVzdF9mYWlsdXJlICsgJGlubmVyX2ZhaWxlZCkKLQlkb25lCi0JdGVzdF9kb25lCi1maQotCiAjIFVzZSAtUCB0byByZXNvbHZlIHN5bWxpbmtzIGluIG91ciB3b3JraW5nIGRpcmVjdG9yeSBzbyB0aGF0IHRoZSBjd2QKICMgaW4gc3VicHJvY2Vzc2VzIGxpa2UgZ2l0IGVxdWFscyBvdXIgJFBXRCAoZm9yIHBhdGhuYW1lIGNvbXBhcmlzb25zKS4KIGNkIC1QICIkVFJBU0hfRElSRUNUT1JZIiB8fCBleGl0IDEKQEAgLTgyNiw2ICs3NTIsNyBAQAogCXRlc3Rfc2V0X3ByZXJlcSBOT1RfQ1lHV0lOCiAJdGVzdF9zZXRfcHJlcmVxIFNFRF9TVFJJUFNfQ1IKIAl0ZXN0X3NldF9wcmVyZXEgR1JFUF9TVFJJUFNfQ1IKKwlHSVRfVEVTVF9DTVA9bWluZ3dfdGVzdF9jbXAKIAk7OwogKkNZR1dJTiopCiAJdGVzdF9zZXRfcHJlcmVxIFBPU0lYUEVSTQpAQCAtOTAzLDYgKzgzMCwxMCBAQAogCWxuIC1zIHggeSAmJiB0ZXN0IC1oIHkKICcKIAordGVzdF9sYXp5X3ByZXJlcSBGSUxFTU9ERSAnCisJdGVzdCAiJChnaXQgY29uZmlnIC0tYm9vbCBjb3JlLmZpbGVtb2RlKSIgPSB0cnVlCisnCisKIHRlc3RfbGF6eV9wcmVyZXEgQ0FTRV9JTlNFTlNJVElWRV9GUyAnCiAJZWNobyBnb29kID5DYW1lbENhc2UgJiYKIAllY2hvIGJhZCA+Y2FtZWxjYXNlICYmCmRpZmYgLS1naXQgYS90YWcuYyBiL3RhZy5jCmluZGV4IDc4ZDI3MmIuLjdiMDc5MjEgMTAwNjQ0Ci0tLSBhL3RhZy5jCisrKyBiL3RhZy5jCkBAIC04Niw3ICs4Niw3IEBACiAJCXJldHVybiAtMTsKIAlidWZwdHIgKz0gNDg7IC8qICJvYmplY3QgIiArIHNoYTEgKyAiXG4iICovCiAKLQlpZiAocHJlZml4Y21wKGJ1ZnB0ciwgInR5cGUgIikpCisJaWYgKCFzdGFydHNfd2l0aChidWZwdHIsICJ0eXBlICIpKQogCQlyZXR1cm4gLTE7CiAJYnVmcHRyICs9IDU7CiAJbmwgPSBtZW1jaHIoYnVmcHRyLCAnXG4nLCB0YWlsIC0gYnVmcHRyKTsKQEAgLTEwOSw3ICsxMDksNyBAQAogCQlpdGVtLT50YWdnZWQgPSBOVUxMOwogCX0KIAotCWlmIChidWZwdHIgKyA0IDwgdGFpbCAmJiAhcHJlZml4Y21wKGJ1ZnB0ciwgInRhZyAiKSkKKwlpZiAoYnVmcHRyICsgNCA8IHRhaWwgJiYgc3RhcnRzX3dpdGgoYnVmcHRyLCAidGFnICIpKQogCQk7IAkJLyogZ29vZCAqLwogCWVsc2UKIAkJcmV0dXJuIC0xOwpAQCAtMTIwLDcgKzEyMCw3IEBACiAJaXRlbS0+dGFnID0geG1lbWR1cHooYnVmcHRyLCBubCAtIGJ1ZnB0cik7CiAJYnVmcHRyID0gbmwgKyAxOwogCi0JaWYgKGJ1ZnB0ciArIDcgPCB0YWlsICYmICFwcmVmaXhjbXAoYnVmcHRyLCAidGFnZ2VyICIpKQorCWlmIChidWZwdHIgKyA3IDwgdGFpbCAmJiBzdGFydHNfd2l0aChidWZwdHIsICJ0YWdnZXIgIikpCiAJCWl0ZW0tPmRhdGUgPSBwYXJzZV90YWdfZGF0ZShidWZwdHIsIHRhaWwpOwogCWVsc2UKIAkJaXRlbS0+ZGF0ZSA9IDA7CkBAIC0xNjAsOCArMTYwLDggQEAKIHsKIAljaGFyICplb2w7CiAJc2l6ZV90IGxlbiA9IDA7Ci0Jd2hpbGUgKGxlbiA8IHNpemUgJiYgcHJlZml4Y21wKGJ1ZiArIGxlbiwgUEdQX1NJR05BVFVSRSkgJiYKLQkJCXByZWZpeGNtcChidWYgKyBsZW4sIFBHUF9NRVNTQUdFKSkgeworCXdoaWxlIChsZW4gPCBzaXplICYmICFzdGFydHNfd2l0aChidWYgKyBsZW4sIFBHUF9TSUdOQVRVUkUpICYmCisJCQkhc3RhcnRzX3dpdGgoYnVmICsgbGVuLCBQR1BfTUVTU0FHRSkpIHsKIAkJZW9sID0gbWVtY2hyKGJ1ZiArIGxlbiwgJ1xuJywgc2l6ZSAtIGxlbik7CiAJCWxlbiArPSBlb2wgPyBlb2wgLSAoYnVmICsgbGVuKSArIDEgOiBzaXplIC0gbGVuOwogCX0KZGlmZiAtLWdpdCBhL3RlbXBsYXRlcy9ob29rcy0tcHJlLWNvbW1pdC5zYW1wbGUgYi90ZW1wbGF0ZXMvaG9va3MtLXByZS1jb21taXQuc2FtcGxlCmluZGV4IDU4NmUzYmYuLjY4ZDYyZDUgMTAwNzU1Ci0tLSBhL3RlbXBsYXRlcy9ob29rcy0tcHJlLWNvbW1pdC5zYW1wbGUKKysrIGIvdGVtcGxhdGVzL2hvb2tzLS1wcmUtY29tbWl0LnNhbXBsZQpAQCAtMTYsNyArMTYsNyBAQAogZmkKIAogIyBJZiB5b3Ugd2FudCB0byBhbGxvdyBub24tQVNDSUkgZmlsZW5hbWVzIHNldCB0aGlzIHZhcmlhYmxlIHRvIHRydWUuCi1hbGxvd25vbmFzY2lpPSQoZ2l0IGNvbmZpZyBob29rcy5hbGxvd25vbmFzY2lpKQorYWxsb3dub25hc2NpaT0kKGdpdCBjb25maWcgLS1ib29sIGhvb2tzLmFsbG93bm9uYXNjaWkpCiAKICMgUmVkaXJlY3Qgb3V0cHV0IHRvIHN0ZGVyci4KIGV4ZWMgMT4mMgpkaWZmIC0tZ2l0IGEvdGVzdC1saW5lLWJ1ZmZlci5jIGIvdGVzdC1saW5lLWJ1ZmZlci5jCmluZGV4IGVmMWQ3YmEuLjFlNThmMDQgMTAwNjQ0Ci0tLSBhL3Rlc3QtbGluZS1idWZmZXIuYworKysgYi90ZXN0LWxpbmUtYnVmZmVyLmMKQEAgLTE5LDcgKzE5LDcgQEAKIHsKIAlzd2l0Y2ggKCpjb21tYW5kKSB7CiAJY2FzZSAnYic6Ci0JCWlmICghcHJlZml4Y21wKGNvbW1hbmQsICJiaW5hcnkgIikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKGNvbW1hbmQsICJiaW5hcnkgIikpIHsKIAkJCXN0cnVjdCBzdHJidWYgc2IgPSBTVFJCVUZfSU5JVDsKIAkJCXN0cmJ1Zl9hZGRjaCgmc2IsICc+Jyk7CiAJCQlidWZmZXJfcmVhZF9iaW5hcnkoYnVmLCAmc2IsIHN0cnRvdWludDMyKGFyZykpOwpAQCAtMjgsMTIgKzI4LDEyIEBACiAJCQlyZXR1cm47CiAJCX0KIAljYXNlICdjJzoKLQkJaWYgKCFwcmVmaXhjbXAoY29tbWFuZCwgImNvcHkgIikpIHsKKwkJaWYgKHN0YXJ0c193aXRoKGNvbW1hbmQsICJjb3B5ICIpKSB7CiAJCQlidWZmZXJfY29weV9ieXRlcyhidWYsIHN0cnRvdWludDMyKGFyZykpOwogCQkJcmV0dXJuOwogCQl9CiAJY2FzZSAncyc6Ci0JCWlmICghcHJlZml4Y21wKGNvbW1hbmQsICJza2lwICIpKSB7CisJCWlmIChzdGFydHNfd2l0aChjb21tYW5kLCAic2tpcCAiKSkgewogCQkJYnVmZmVyX3NraXBfYnl0ZXMoYnVmLCBzdHJ0b3VpbnQzMihhcmcpKTsKIAkJCXJldHVybjsKIAkJfQpkaWZmIC0tZ2l0IGEvdGVzdC1tYXRjaC10cmVlcy5jIGIvdGVzdC1tYXRjaC10cmVlcy5jCmluZGV4IGEzYzQ2ODguLjJlZjcyNWUgMTAwNjQ0Ci0tLSBhL3Rlc3QtbWF0Y2gtdHJlZXMuYworKysgYi90ZXN0LW1hdGNoLXRyZWVzLmMKQEAgLTEyLDEwICsxMiwxMCBAQAogCQlkaWUoImNhbm5vdCBwYXJzZSAlcyBhcyBhbiBvYmplY3QgbmFtZSIsIGF2WzJdKTsKIAlvbmUgPSBwYXJzZV90cmVlX2luZGlyZWN0KGhhc2gxKTsKIAlpZiAoIW9uZSkKLQkJZGllKCJub3QgYSB0cmVlaXNoICVzIiwgYXZbMV0pOworCQlkaWUoIm5vdCBhIHRyZWUtaXNoICVzIiwgYXZbMV0pOwogCXR3byA9IHBhcnNlX3RyZWVfaW5kaXJlY3QoaGFzaDIpOwogCWlmICghdHdvKQotCQlkaWUoIm5vdCBhIHRyZWVpc2ggJXMiLCBhdlsyXSk7CisJCWRpZSgibm90IGEgdHJlZS1pc2ggJXMiLCBhdlsyXSk7CiAKIAlzaGlmdF90cmVlKG9uZS0+b2JqZWN0LnNoYTEsIHR3by0+b2JqZWN0LnNoYTEsIHNoaWZ0ZWQsIC0xKTsKIAlwcmludGYoInNoaWZ0ZWQ6ICVzXG4iLCBzaGExX3RvX2hleChzaGlmdGVkKSk7CmRpZmYgLS1naXQgYS90ZXN0LXBhdGgtdXRpbHMuYyBiL3Rlc3QtcGF0aC11dGlscy5jCmluZGV4IGJiOTc1ZTQuLjNkZDM3NDQgMTAwNjQ0Ci0tLSBhL3Rlc3QtcGF0aC11dGlscy5jCisrKyBiL3Rlc3QtcGF0aC11dGlscy5jCkBAIC0xMTYsNyArMTE2LDcgQEAKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKGFyZ2MgPT0gMyAmJiAhc3RyY21wKGFyZ3ZbMV0sICJtaW5nd19wYXRoIikpIHsKKwlpZiAoYXJnYyA9PSAzICYmICFzdHJjbXAoYXJndlsxXSwgInByaW50X3BhdGgiKSkgewogCQlwdXRzKGFyZ3ZbMl0pOwogCQlyZXR1cm4gMDsKIAl9CmRpZmYgLS1naXQgYS90ZXN0LXNoYTEuYyBiL3Rlc3Qtc2hhMS5jCmluZGV4IDgwZGFiYTkuLmU1N2VhZTEgMTAwNjQ0Ci0tLSBhL3Rlc3Qtc2hhMS5jCisrKyBiL3Rlc3Qtc2hhMS5jCkBAIC01LDEwICs1LDE1IEBACiAJZ2l0X1NIQV9DVFggY3R4OwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CiAJdW5zaWduZWQgYnVmc3ogPSA4MTkyOworCWludCBiaW5hcnkgPSAwOwogCWNoYXIgKmJ1ZmZlcjsKIAotCWlmIChhYyA9PSAyKQotCQlidWZzeiA9IHN0cnRvdWwoYXZbMV0sIE5VTEwsIDEwKSAqIDEwMjQgKiAxMDI0OworCWlmIChhYyA9PSAyKSB7CisJCWlmICghc3RyY21wKGF2WzFdLCAiLWIiKSkKKwkJCWJpbmFyeSA9IDE7CisJCWVsc2UKKwkJCWJ1ZnN6ID0gc3RydG91bChhdlsxXSwgTlVMTCwgMTApICogMTAyNCAqIDEwMjQ7CisJfQogCiAJaWYgKCFidWZzeikKIAkJYnVmc3ogPSA4MTkyOwpAQCAtNDIsNiArNDcsMTAgQEAKIAkJZ2l0X1NIQTFfVXBkYXRlKCZjdHgsIGJ1ZmZlciwgdGhpc19zeik7CiAJfQogCWdpdF9TSEExX0ZpbmFsKHNoYTEsICZjdHgpOwotCXB1dHMoc2hhMV90b19oZXgoc2hhMSkpOworCisJaWYgKGJpbmFyeSkKKwkJZndyaXRlKHNoYTEsIDEsIDIwLCBzdGRvdXQpOworCWVsc2UKKwkJcHV0cyhzaGExX3RvX2hleChzaGExKSk7CiAJZXhpdCgwKTsKIH0KZGlmZiAtLWdpdCBhL3Rlc3Qtc3RyaW5nLWxpc3QuYyBiL3Rlc3Qtc3RyaW5nLWxpc3QuYwppbmRleCAwMGNlNmM5Li4xNGJkZjlkIDEwMDY0NAotLS0gYS90ZXN0LXN0cmluZy1saXN0LmMKKysrIGIvdGVzdC1zdHJpbmctbGlzdC5jCkBAIC0zOCw3ICszOCw3IEBACiBzdGF0aWMgaW50IHByZWZpeF9jYihzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbSwgdm9pZCAqY2JfZGF0YSkKIHsKIAljb25zdCBjaGFyICpwcmVmaXggPSAoY29uc3QgY2hhciAqKWNiX2RhdGE7Ci0JcmV0dXJuICFwcmVmaXhjbXAoaXRlbS0+c3RyaW5nLCBwcmVmaXgpOworCXJldHVybiBzdGFydHNfd2l0aChpdGVtLT5zdHJpbmcsIHByZWZpeCk7CiB9CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKZGlmZiAtLWdpdCBhL3Rlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbi5jIGIvdGVzdC11cmxtYXRjaC1ub3JtYWxpemF0aW9uLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDkwYmYyMQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbi5jCkBAIC0wLDAgKzEsNTAgQEAKKyNpbmNsdWRlICJnaXQtY29tcGF0LXV0aWwuaCIKKyNpbmNsdWRlICJ1cmxtYXRjaC5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJY29uc3QgY2hhciB1c2FnZVtdID0gInRlc3QtdXJsbWF0Y2gtbm9ybWFsaXphdGlvbiBbLXAgfCAtbF0gPHVybDE+IHwgPHVybDE+IDx1cmwyPiI7CisJY2hhciAqdXJsMSwgKnVybDI7CisJaW50IG9wdF9wID0gMCwgb3B0X2wgPSAwOworCisJLyoKKwkgKiBGb3Igb25lIHVybCwgc3VjY2VlZCBpZiB1cmxfbm9ybWFsaXplIHN1Y2NlZWRzIG9uIGl0LCBmYWlsIG90aGVyd2lzZS4KKwkgKiBGb3IgdHdvIHVybHMsIHN1Y2NlZWQgb25seSBpZiB1cmxfbm9ybWFsaXplIHN1Y2NlZWRzIG9uIGJvdGggYW5kCisJICogdGhlIHJlc3VsdHMgY29tcGFyZSBlcXVhbCB3aXRoIHN0cmNtcC4gIElmIC1wIGlzIGdpdmVuIChvbmUgdXJsIG9ubHkpCisJICogYW5kIHVybF9ub3JtYWxpemUgc3VjY2VlZHMsIHByaW50IHRoZSByZXN1bHQgZm9sbG93ZWQgYnkgIlxuIi4gIElmCisJICogLWwgaXMgZ2l2ZW4gKG9uZSB1cmwgb25seSkgYW5kIHVybF9ub3JtYWxpemUgc3VjY2VlZHMsIHByaW50IHRoZQorCSAqIHJldHVybmVkIGxlbmd0aCBpbiBkZWNpbWFsIGZvbGxvd2VkIGJ5ICJcbiIuCisJICovCisKKwlpZiAoYXJnYyA+IDEgJiYgIXN0cmNtcChhcmd2WzFdLCAiLXAiKSkgeworCQlvcHRfcCA9IDE7CisJCWFyZ2MtLTsKKwkJYXJndisrOworCX0gZWxzZSBpZiAoYXJnYyA+IDEgJiYgIXN0cmNtcChhcmd2WzFdLCAiLWwiKSkgeworCQlvcHRfbCA9IDE7CisJCWFyZ2MtLTsKKwkJYXJndisrOworCX0KKworCWlmIChhcmdjIDwgMiB8fCBhcmdjID4gMykKKwkJZGllKCIlcyIsIHVzYWdlKTsKKworCWlmIChhcmdjID09IDIpIHsKKwkJc3RydWN0IHVybF9pbmZvIGluZm87CisJCXVybDEgPSB1cmxfbm9ybWFsaXplKGFyZ3ZbMV0sICZpbmZvKTsKKwkJaWYgKCF1cmwxKQorCQkJcmV0dXJuIDE7CisJCWlmIChvcHRfcCkKKwkJCXByaW50ZigiJXNcbiIsIHVybDEpOworCQlpZiAob3B0X2wpCisJCQlwcmludGYoIiV1XG4iLCAodW5zaWduZWQpaW5mby51cmxfbGVuKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKG9wdF9wIHx8IG9wdF9sKQorCQlkaWUoIiVzIiwgdXNhZ2UpOworCisJdXJsMSA9IHVybF9ub3JtYWxpemUoYXJndlsxXSwgTlVMTCk7CisJdXJsMiA9IHVybF9ub3JtYWxpemUoYXJndlsyXSwgTlVMTCk7CisJcmV0dXJuICh1cmwxICYmIHVybDIgJiYgIXN0cmNtcCh1cmwxLCB1cmwyKSkgPyAwIDogMTsKK30KZGlmZiAtLWdpdCBhL3RyYWNlLmMgYi90cmFjZS5jCmluZGV4IDNkNzQ0ZDEuLjA4MTgwYTkgMTAwNjQ0Ci0tLSBhL3RyYWNlLmMKKysrIGIvdHJhY2UuYwpAQCAtNzYsNyArNzYsNyBAQAogfQogCiBfX2F0dHJpYnV0ZV9fKChmb3JtYXQgKHByaW50ZiwgMiwgMykpKQotc3RhdGljIHZvaWQgdHJhY2VfcHJpbnRmX2tleShjb25zdCBjaGFyICprZXksIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQordm9pZCB0cmFjZV9wcmludGZfa2V5KGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdCBhcDsKIAl2YV9zdGFydChhcCwgZm10KTsKZGlmZiAtLWdpdCBhL3RyYW5zcG9ydC1oZWxwZXIuYyBiL3RyYW5zcG9ydC1oZWxwZXIuYwppbmRleCA2M2NhYmMzLi5hZDcyZmJkIDEwMDY0NAotLS0gYS90cmFuc3BvcnQtaGVscGVyLmMKKysrIGIvdHJhbnNwb3J0LWhlbHBlci5jCkBAIC0yNyw3ICsyNyw5IEBACiAJCXB1c2ggOiAxLAogCQljb25uZWN0IDogMSwKIAkJc2lnbmVkX3RhZ3MgOiAxLAotCQlub19kaXNjb25uZWN0X3JlcSA6IDE7CisJCWNoZWNrX2Nvbm5lY3Rpdml0eSA6IDEsCisJCW5vX2Rpc2Nvbm5lY3RfcmVxIDogMSwKKwkJbm9fcHJpdmF0ZV91cGRhdGUgOiAxOwogCWNoYXIgKmV4cG9ydF9tYXJrczsKIAljaGFyICppbXBvcnRfbWFya3M7CiAJLyogVGhlc2UgZ28gZnJvbSByZW1vdGUgbmFtZSAoYXMgaW4gImxpc3QiKSB0byBwcml2YXRlIG5hbWUgKi8KQEAgLTE4Niw3ICsxODgsOSBAQAogCQkJZGF0YS0+YmlkaV9pbXBvcnQgPSAxOwogCQllbHNlIGlmICghc3RyY21wKGNhcG5hbWUsICJleHBvcnQiKSkKIAkJCWRhdGEtPmV4cG9ydCA9IDE7Ci0JCWVsc2UgaWYgKCFkYXRhLT5yZWZzcGVjcyAmJiAhcHJlZml4Y21wKGNhcG5hbWUsICJyZWZzcGVjICIpKSB7CisJCWVsc2UgaWYgKCFzdHJjbXAoY2FwbmFtZSwgImNoZWNrLWNvbm5lY3Rpdml0eSIpKQorCQkJZGF0YS0+Y2hlY2tfY29ubmVjdGl2aXR5ID0gMTsKKwkJZWxzZSBpZiAoIWRhdGEtPnJlZnNwZWNzICYmIHN0YXJ0c193aXRoKGNhcG5hbWUsICJyZWZzcGVjICIpKSB7CiAJCQlBTExPQ19HUk9XKHJlZnNwZWNzLAogCQkJCSAgIHJlZnNwZWNfbnIgKyAxLAogCQkJCSAgIHJlZnNwZWNfYWxsb2MpOwpAQCAtMTk1LDE2ICsxOTksMTggQEAKIAkJCWRhdGEtPmNvbm5lY3QgPSAxOwogCQl9IGVsc2UgaWYgKCFzdHJjbXAoY2FwbmFtZSwgInNpZ25lZC10YWdzIikpIHsKIAkJCWRhdGEtPnNpZ25lZF90YWdzID0gMTsKLQkJfSBlbHNlIGlmICghcHJlZml4Y21wKGNhcG5hbWUsICJleHBvcnQtbWFya3MgIikpIHsKKwkJfSBlbHNlIGlmIChzdGFydHNfd2l0aChjYXBuYW1lLCAiZXhwb3J0LW1hcmtzICIpKSB7CiAJCQlzdHJ1Y3Qgc3RyYnVmIGFyZyA9IFNUUkJVRl9JTklUOwogCQkJc3RyYnVmX2FkZHN0cigmYXJnLCAiLS1leHBvcnQtbWFya3M9Iik7CiAJCQlzdHJidWZfYWRkc3RyKCZhcmcsIGNhcG5hbWUgKyBzdHJsZW4oImV4cG9ydC1tYXJrcyAiKSk7CiAJCQlkYXRhLT5leHBvcnRfbWFya3MgPSBzdHJidWZfZGV0YWNoKCZhcmcsIE5VTEwpOwotCQl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoY2FwbmFtZSwgImltcG9ydC1tYXJrcyIpKSB7CisJCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgoY2FwbmFtZSwgImltcG9ydC1tYXJrcyIpKSB7CiAJCQlzdHJ1Y3Qgc3RyYnVmIGFyZyA9IFNUUkJVRl9JTklUOwogCQkJc3RyYnVmX2FkZHN0cigmYXJnLCAiLS1pbXBvcnQtbWFya3M9Iik7CiAJCQlzdHJidWZfYWRkc3RyKCZhcmcsIGNhcG5hbWUgKyBzdHJsZW4oImltcG9ydC1tYXJrcyAiKSk7CiAJCQlkYXRhLT5pbXBvcnRfbWFya3MgPSBzdHJidWZfZGV0YWNoKCZhcmcsIE5VTEwpOworCQl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGNhcG5hbWUsICJuby1wcml2YXRlLXVwZGF0ZSIpKSB7CisJCQlkYXRhLT5ub19wcml2YXRlX3VwZGF0ZSA9IDE7CiAJCX0gZWxzZSBpZiAobWFuZGF0b3J5KSB7CiAJCQlkaWUoIlVua25vd24gbWFuZGF0b3J5IGNhcGFiaWxpdHkgJXMuIFRoaXMgcmVtb3RlICIKIAkJCSAgICAiaGVscGVyIHByb2JhYmx5IG5lZWRzIG5ld2VyIHZlcnNpb24gb2YgR2l0LiIsCkBAIC0yNjMsNiArMjY5LDcgQEAKIAlUUkFOU19PUFRfVEhJTiwKIAlUUkFOU19PUFRfS0VFUAogCX07CisKIHN0YXRpYyBjb25zdCBjaGFyICpib29sZWFuX29wdGlvbnNbXSA9IHsKIAlUUkFOU19PUFRfVEhJTiwKIAlUUkFOU19PUFRfS0VFUCwKQEAgLTMwNCw3ICszMTEsNyBAQAogCiAJaWYgKCFzdHJjbXAoYnVmLmJ1ZiwgIm9rIikpCiAJCXJldCA9IDA7Ci0JZWxzZSBpZiAoIXByZWZpeGNtcChidWYuYnVmLCAiZXJyb3IiKSkgeworCWVsc2UgaWYgKHN0YXJ0c193aXRoKGJ1Zi5idWYsICJlcnJvciIpKSB7CiAJCXJldCA9IC0xOwogCX0gZWxzZSBpZiAoIXN0cmNtcChidWYuYnVmLCAidW5zdXBwb3J0ZWQiKSkKIAkJcmV0ID0gMTsKQEAgLTM0OSw2ICszNTYsMTUgQEAKIAlzdHJ1Y3Qgc3RyYnVmIGJ1ZiA9IFNUUkJVRl9JTklUOwogCiAJc3RhbmRhcmRfb3B0aW9ucyh0cmFuc3BvcnQpOworCWlmIChkYXRhLT5jaGVja19jb25uZWN0aXZpdHkgJiYKKwkgICAgZGF0YS0+dHJhbnNwb3J0X29wdGlvbnMuY2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCkKKwkJc2V0X2hlbHBlcl9vcHRpb24odHJhbnNwb3J0LCAiY2hlY2stY29ubmVjdGl2aXR5IiwgInRydWUiKTsKKworCWlmICh0cmFuc3BvcnQtPmNsb25pbmcpCisJCXNldF9oZWxwZXJfb3B0aW9uKHRyYW5zcG9ydCwgImNsb25pbmciLCAidHJ1ZSIpOworCisJaWYgKGRhdGEtPnRyYW5zcG9ydF9vcHRpb25zLnVwZGF0ZV9zaGFsbG93KQorCQlzZXRfaGVscGVyX29wdGlvbih0cmFuc3BvcnQsICJ1cGRhdGUtc2hhbGxvdyIsICJ0cnVlIik7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbnJfaGVhZHM7IGkrKykgewogCQljb25zdCBzdHJ1Y3QgcmVmICpwb3NuID0gdG9fZmV0Y2hbaV07CkBAIC0zNjUsMTMgKzM4MSwxNyBAQAogCXdoaWxlICgxKSB7CiAJCXJlY3ZsaW5lKGRhdGEsICZidWYpOwogCi0JCWlmICghcHJlZml4Y21wKGJ1Zi5idWYsICJsb2NrICIpKSB7CisJCWlmIChzdGFydHNfd2l0aChidWYuYnVmLCAibG9jayAiKSkgewogCQkJY29uc3QgY2hhciAqbmFtZSA9IGJ1Zi5idWYgKyA1OwogCQkJaWYgKHRyYW5zcG9ydC0+cGFja19sb2NrZmlsZSkKIAkJCQl3YXJuaW5nKCIlcyBhbHNvIGxvY2tlZCAlcyIsIGRhdGEtPm5hbWUsIG5hbWUpOwogCQkJZWxzZQogCQkJCXRyYW5zcG9ydC0+cGFja19sb2NrZmlsZSA9IHhzdHJkdXAobmFtZSk7CiAJCX0KKwkJZWxzZSBpZiAoZGF0YS0+Y2hlY2tfY29ubmVjdGl2aXR5ICYmCisJCQkgZGF0YS0+dHJhbnNwb3J0X29wdGlvbnMuY2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCAmJgorCQkJICFzdHJjbXAoYnVmLmJ1ZiwgImNvbm5lY3Rpdml0eS1vayIpKQorCQkJZGF0YS0+dHJhbnNwb3J0X29wdGlvbnMuc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCA9IDE7CiAJCWVsc2UgaWYgKCFidWYubGVuKQogCQkJYnJlYWs7CiAJCWVsc2UKQEAgLTYzMiwxMCArNjUyLDEwIEBACiAJY2hhciAqcmVmbmFtZSwgKm1zZzsKIAlpbnQgc3RhdHVzOwogCi0JaWYgKCFwcmVmaXhjbXAoYnVmLT5idWYsICJvayAiKSkgeworCWlmIChzdGFydHNfd2l0aChidWYtPmJ1ZiwgIm9rICIpKSB7CiAJCXN0YXR1cyA9IFJFRl9TVEFUVVNfT0s7CiAJCXJlZm5hbWUgPSBidWYtPmJ1ZiArIDM7Ci0JfSBlbHNlIGlmICghcHJlZml4Y21wKGJ1Zi0+YnVmLCAiZXJyb3IgIikpIHsKKwl9IGVsc2UgaWYgKHN0YXJ0c193aXRoKGJ1Zi0+YnVmLCAiZXJyb3IgIikpIHsKIAkJc3RhdHVzID0gUkVGX1NUQVRVU19SRU1PVEVfUkVKRUNUOwogCQlyZWZuYW1lID0gYnVmLT5idWYgKyA2OwogCX0gZWxzZQpAQCAtNjgzLDYgKzcwMywxMSBAQAogCQkJZnJlZShtc2cpOwogCQkJbXNnID0gTlVMTDsKIAkJfQorCQllbHNlIGlmICghc3RyY21wKG1zZywgInN0YWxlIGluZm8iKSkgeworCQkJc3RhdHVzID0gUkVGX1NUQVRVU19SRUpFQ1RfU1RBTEU7CisJCQlmcmVlKG1zZyk7CisJCQltc2cgPSBOVUxMOworCQl9CiAJfQogCiAJaWYgKCpyZWYpCkBAIC03MjMsNyArNzQ4LDcgQEAKIAkJaWYgKHB1c2hfdXBkYXRlX3JlZl9zdGF0dXMoJmJ1ZiwgJnJlZiwgcmVtb3RlX3JlZnMpKQogCQkJY29udGludWU7CiAKLQkJaWYgKCFkYXRhLT5yZWZzcGVjcykKKwkJaWYgKCFkYXRhLT5yZWZzcGVjcyB8fCBkYXRhLT5ub19wcml2YXRlX3VwZGF0ZSkKIAkJCWNvbnRpbnVlOwogCiAJCS8qIHByb3BhZ2F0ZSBiYWNrIHRoZSB1cGRhdGUgdG8gdGhlIHJlbW90ZSBuYW1lc3BhY2UgKi8KQEAgLTczNywxMyArNzYyLDE1IEBACiB9CiAKIHN0YXRpYyBpbnQgcHVzaF9yZWZzX3dpdGhfcHVzaChzdHJ1Y3QgdHJhbnNwb3J0ICp0cmFuc3BvcnQsCi0JCXN0cnVjdCByZWYgKnJlbW90ZV9yZWZzLCBpbnQgZmxhZ3MpCisJCQkgICAgICAgc3RydWN0IHJlZiAqcmVtb3RlX3JlZnMsIGludCBmbGFncykKIHsKIAlpbnQgZm9yY2VfYWxsID0gZmxhZ3MgJiBUUkFOU1BPUlRfUFVTSF9GT1JDRTsKIAlpbnQgbWlycm9yID0gZmxhZ3MgJiBUUkFOU1BPUlRfUFVTSF9NSVJST1I7CiAJc3RydWN0IGhlbHBlcl9kYXRhICpkYXRhID0gdHJhbnNwb3J0LT5kYXRhOwogCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CiAJc3RydWN0IHJlZiAqcmVmOworCXN0cnVjdCBzdHJpbmdfbGlzdCBjYXNfb3B0aW9ucyA9IFNUUklOR19MSVNUX0lOSVRfRFVQOworCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICpjYXNfb3B0aW9uOwogCiAJZ2V0X2hlbHBlcih0cmFuc3BvcnQpOwogCWlmICghZGF0YS0+cHVzaCkKQEAgLTc1Niw2ICs3ODMsNyBAQAogCQkvKiBDaGVjayBmb3Igc3RhdHVzZXMgc2V0IGJ5IHNldF9yZWZfc3RhdHVzX2Zvcl9wdXNoKCkgKi8KIAkJc3dpdGNoIChyZWYtPnN0YXR1cykgewogCQljYXNlIFJFRl9TVEFUVVNfUkVKRUNUX05PTkZBU1RGT1JXQVJEOgorCQljYXNlIFJFRl9TVEFUVVNfUkVKRUNUX1NUQUxFOgogCQljYXNlIFJFRl9TVEFUVVNfUkVKRUNUX0FMUkVBRFlfRVhJU1RTOgogCQljYXNlIFJFRl9TVEFUVVNfVVBUT0RBVEU6CiAJCQljb250aW51ZTsKQEAgLTc3OCwxMSArODA2LDI5IEBACiAJCXN0cmJ1Zl9hZGRjaCgmYnVmLCAnOicpOwogCQlzdHJidWZfYWRkc3RyKCZidWYsIHJlZi0+bmFtZSk7CiAJCXN0cmJ1Zl9hZGRjaCgmYnVmLCAnXG4nKTsKKworCQkvKgorCQkgKiBUaGUgIi0tZm9yY2Utd2l0aC1sZWFzZSIgb3B0aW9ucyB3aXRob3V0IGV4cGxpY2l0CisJCSAqIHZhbHVlcyB0byBleHBlY3QgaGF2ZSBhbHJlYWR5IGJlZW4gZXhwYW5kZWQgaW50bworCQkgKiB0aGUgcmVmLT5vbGRfc2hhMV9leHBlY3RbXSBmaWVsZDsgd2UgY2FuIGlnbm9yZQorCQkgKiB0cmFuc3BvcnQtPnNtYXJ0X29wdGlvbnMtPmNhcyBhbHRvZ2V0aGVyIGFuZCBpbnN0ZWFkCisJCSAqIGNhbiBlbnVtZXJhdGUgdGhlbSBmcm9tIHRoZSByZWZzLgorCQkgKi8KKwkJaWYgKHJlZi0+ZXhwZWN0X29sZF9zaGExKSB7CisJCQlzdHJ1Y3Qgc3RyYnVmIGNhcyA9IFNUUkJVRl9JTklUOworCQkJc3RyYnVmX2FkZGYoJmNhcywgIiVzOiVzIiwKKwkJCQkgICAgcmVmLT5uYW1lLCBzaGExX3RvX2hleChyZWYtPm9sZF9zaGExX2V4cGVjdCkpOworCQkJc3RyaW5nX2xpc3RfYXBwZW5kKCZjYXNfb3B0aW9ucywgc3RyYnVmX2RldGFjaCgmY2FzLCBOVUxMKSk7CisJCX0KIAl9Ci0JaWYgKGJ1Zi5sZW4gPT0gMCkKKwlpZiAoYnVmLmxlbiA9PSAwKSB7CisJCXN0cmluZ19saXN0X2NsZWFyKCZjYXNfb3B0aW9ucywgMCk7CiAJCXJldHVybiAwOworCX0KIAogCXN0YW5kYXJkX29wdGlvbnModHJhbnNwb3J0KTsKKwlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKGNhc19vcHRpb24sICZjYXNfb3B0aW9ucykKKwkJc2V0X2hlbHBlcl9vcHRpb24odHJhbnNwb3J0LCAiY2FzIiwgY2FzX29wdGlvbi0+c3RyaW5nKTsKIAogCWlmIChmbGFncyAmIFRSQU5TUE9SVF9QVVNIX0RSWV9SVU4pIHsKIAkJaWYgKHNldF9oZWxwZXJfb3B0aW9uKHRyYW5zcG9ydCwgImRyeS1ydW4iLCAidHJ1ZSIpICE9IDApCkBAIC0xMDg5LDkgKzExMzUsOCBAQAogCQlyZXR1cm4gMDsJLyogTm90aGluZyB0byB3cml0ZS4gKi8KIAogCXRyYW5zZmVyX2RlYnVnKCIlcyBpcyB3cml0YWJsZSIsIHQtPmRlc3RfbmFtZSk7Ci0JYnl0ZXMgPSB3cml0ZSh0LT5kZXN0LCB0LT5idWYsIHQtPmJ1ZnVzZSk7Ci0JaWYgKGJ5dGVzIDwgMCAmJiBlcnJubyAhPSBFV09VTERCTE9DSyAmJiBlcnJubyAhPSBFQUdBSU4gJiYKLQkJZXJybm8gIT0gRUlOVFIpIHsKKwlieXRlcyA9IHh3cml0ZSh0LT5kZXN0LCB0LT5idWYsIHQtPmJ1ZnVzZSk7CisJaWYgKGJ5dGVzIDwgMCAmJiBlcnJubyAhPSBFV09VTERCTE9DSykgewogCQllcnJvcigid3JpdGUoJXMpIGZhaWxlZDogJXMiLCB0LT5kZXN0X25hbWUsIHN0cmVycm9yKGVycm5vKSk7CiAJCXJldHVybiAtMTsKIAl9IGVsc2UgaWYgKGJ5dGVzID4gMCkgewpkaWZmIC0tZ2l0IGEvdHJhbnNwb3J0LmMgYi90cmFuc3BvcnQuYwppbmRleCBkZTI1NTg4Li5jYTdiYjQ0IDEwMDY0NAotLS0gYS90cmFuc3BvcnQuYworKysgYi90cmFuc3BvcnQuYwpAQCAtMyw2ICszLDggQEAKICNpbmNsdWRlICJydW4tY29tbWFuZC5oIgogI2luY2x1ZGUgInBrdC1saW5lLmgiCiAjaW5jbHVkZSAiZmV0Y2gtcGFjay5oIgorI2luY2x1ZGUgInJlbW90ZS5oIgorI2luY2x1ZGUgImNvbm5lY3QuaCIKICNpbmNsdWRlICJzZW5kLXBhY2suaCIKICNpbmNsdWRlICJ3YWxrZXIuaCIKICNpbmNsdWRlICJidW5kbGUuaCIKQEAgLTEyLDYgKzE0LDcgQEAKICNpbmNsdWRlICJ1cmwuaCIKICNpbmNsdWRlICJzdWJtb2R1bGUuaCIKICNpbmNsdWRlICJzdHJpbmctbGlzdC5oIgorI2luY2x1ZGUgInNoYTEtYXJyYXkuaCIKIAogLyogcnN5bmMgc3VwcG9ydCAqLwogCkBAIC0xNjcsMTMgKzE3MCwxMyBAQAogCQlyZW1vdGVuYW1lID0gcmVmLT5uYW1lOwogCQl0bXAgPSByZXNvbHZlX3JlZl91bnNhZmUobG9jYWxuYW1lLCBzaGEsIDEsICZmbGFnKTsKIAkJaWYgKHRtcCAmJiBmbGFnICYgUkVGX0lTU1lNUkVGICYmCi0JCQkhcHJlZml4Y21wKHRtcCwgInJlZnMvaGVhZHMvIikpCisJCQlzdGFydHNfd2l0aCh0bXAsICJyZWZzL2hlYWRzLyIpKQogCQkJbG9jYWxuYW1lID0gdG1wOwogCiAJCS8qIEJvdGggc291cmNlIGFuZCBkZXN0aW5hdGlvbiBtdXN0IGJlIGxvY2FsIGJyYW5jaGVzLiAqLwotCQlpZiAoIWxvY2FsbmFtZSB8fCBwcmVmaXhjbXAobG9jYWxuYW1lLCAicmVmcy9oZWFkcy8iKSkKKwkJaWYgKCFsb2NhbG5hbWUgfHwgIXN0YXJ0c193aXRoKGxvY2FsbmFtZSwgInJlZnMvaGVhZHMvIikpCiAJCQljb250aW51ZTsKLQkJaWYgKCFyZW1vdGVuYW1lIHx8IHByZWZpeGNtcChyZW1vdGVuYW1lLCAicmVmcy9oZWFkcy8iKSkKKwkJaWYgKCFyZW1vdGVuYW1lIHx8ICFzdGFydHNfd2l0aChyZW1vdGVuYW1lLCAicmVmcy9oZWFkcy8iKSkKIAkJCWNvbnRpbnVlOwogCiAJCWlmICghcHJldGVuZCkKQEAgLTE4OSw3ICsxOTIsNyBAQAogCiBzdGF0aWMgY29uc3QgY2hhciAqcnN5bmNfdXJsKGNvbnN0IGNoYXIgKnVybCkKIHsKLQlyZXR1cm4gcHJlZml4Y21wKHVybCwgInJzeW5jOi8vIikgPyBza2lwX3ByZWZpeCh1cmwsICJyc3luYzoiKSA6IHVybDsKKwlyZXR1cm4gIXN0YXJ0c193aXRoKHVybCwgInJzeW5jOi8vIikgPyBza2lwX3ByZWZpeCh1cmwsICJyc3luYzoiKSA6IHVybDsKIH0KIAogc3RhdGljIHN0cnVjdCByZWYgKmdldF9yZWZzX3ZpYV9yc3luYyhzdHJ1Y3QgdHJhbnNwb3J0ICp0cmFuc3BvcnQsIGludCBmb3JfcHVzaCkKQEAgLTI5NCw4ICsyOTcsOCBAQAogCUZJTEUgKmY7CiAKIAkvKiB3aGVuIGNhbGxlZCB2aWEgZm9yX2VhY2hfcmVmKCksIGZsYWdzIGlzIG5vbi16ZXJvICovCi0JaWYgKGZsYWdzICYmIHByZWZpeGNtcChuYW1lLCAicmVmcy9oZWFkcy8iKSAmJgotCQkJcHJlZml4Y21wKG5hbWUsICJyZWZzL3RhZ3MvIikpCisJaWYgKGZsYWdzICYmICFzdGFydHNfd2l0aChuYW1lLCAicmVmcy9oZWFkcy8iKSAmJgorCQkJIXN0YXJ0c193aXRoKG5hbWUsICJyZWZzL3RhZ3MvIikpCiAJCXJldHVybiAwOwogCiAJc3RyYnVmX2FkZHN0cihidWYsIG5hbWUpOwpAQCAtNDUyLDcgKzQ1NSw4IEBACiAJc3RydWN0IGNoaWxkX3Byb2Nlc3MgKmNvbm47CiAJaW50IGZkWzJdOwogCXVuc2lnbmVkIGdvdF9yZW1vdGVfaGVhZHMgOiAxOwotCXN0cnVjdCBleHRyYV9oYXZlX29iamVjdHMgZXh0cmFfaGF2ZTsKKwlzdHJ1Y3Qgc2hhMV9hcnJheSBleHRyYV9oYXZlOworCXN0cnVjdCBzaGExX2FycmF5IHNoYWxsb3c7CiB9OwogCiBzdGF0aWMgaW50IHNldF9naXRfb3B0aW9uKHN0cnVjdCBnaXRfdHJhbnNwb3J0X29wdGlvbnMgKm9wdHMsCkBAIC00NzMsNiArNDc3LDkgQEAKIAl9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgVFJBTlNfT1BUX0tFRVApKSB7CiAJCW9wdHMtPmtlZXAgPSAhIXZhbHVlOwogCQlyZXR1cm4gMDsKKwl9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgVFJBTlNfT1BUX1VQREFURV9TSEFMTE9XKSkgeworCQlvcHRzLT51cGRhdGVfc2hhbGxvdyA9ICEhdmFsdWU7CisJCXJldHVybiAwOwogCX0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCBUUkFOU19PUFRfREVQVEgpKSB7CiAJCWlmICghdmFsdWUpCiAJCQlvcHRzLT5kZXB0aCA9IDA7CkBAIC01MDksNyArNTE2LDkgQEAKIAogCWNvbm5lY3Rfc2V0dXAodHJhbnNwb3J0LCBmb3JfcHVzaCwgMCk7CiAJZ2V0X3JlbW90ZV9oZWFkcyhkYXRhLT5mZFswXSwgTlVMTCwgMCwgJnJlZnMsCi0JCQkgZm9yX3B1c2ggPyBSRUZfTk9STUFMIDogMCwgJmRhdGEtPmV4dHJhX2hhdmUpOworCQkJIGZvcl9wdXNoID8gUkVGX05PUk1BTCA6IDAsCisJCQkgJmRhdGEtPmV4dHJhX2hhdmUsCisJCQkgJmRhdGEtPnNoYWxsb3cpOwogCWRhdGEtPmdvdF9yZW1vdGVfaGVhZHMgPSAxOwogCiAJcmV0dXJuIHJlZnM7CkBAIC01MzYsMTYgKzU0NSwxOSBAQAogCWFyZ3MuZGVwdGggPSBkYXRhLT5vcHRpb25zLmRlcHRoOwogCWFyZ3MuY2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCA9CiAJCWRhdGEtPm9wdGlvbnMuY2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZDsKKwlhcmdzLmNsb25pbmcgPSB0cmFuc3BvcnQtPmNsb25pbmc7CisJYXJncy51cGRhdGVfc2hhbGxvdyA9IGRhdGEtPm9wdGlvbnMudXBkYXRlX3NoYWxsb3c7CiAKIAlpZiAoIWRhdGEtPmdvdF9yZW1vdGVfaGVhZHMpIHsKIAkJY29ubmVjdF9zZXR1cCh0cmFuc3BvcnQsIDAsIDApOwotCQlnZXRfcmVtb3RlX2hlYWRzKGRhdGEtPmZkWzBdLCBOVUxMLCAwLCAmcmVmc190bXAsIDAsIE5VTEwpOworCQlnZXRfcmVtb3RlX2hlYWRzKGRhdGEtPmZkWzBdLCBOVUxMLCAwLCAmcmVmc190bXAsIDAsCisJCQkJIE5VTEwsICZkYXRhLT5zaGFsbG93KTsKIAkJZGF0YS0+Z290X3JlbW90ZV9oZWFkcyA9IDE7CiAJfQogCiAJcmVmcyA9IGZldGNoX3BhY2soJmFyZ3MsIGRhdGEtPmZkLCBkYXRhLT5jb25uLAogCQkJICByZWZzX3RtcCA/IHJlZnNfdG1wIDogdHJhbnNwb3J0LT5yZW1vdGVfcmVmcywKLQkJCSAgZGVzdCwgdG9fZmV0Y2gsIG5yX2hlYWRzLAorCQkJICBkZXN0LCB0b19mZXRjaCwgbnJfaGVhZHMsICZkYXRhLT5zaGFsbG93LAogCQkJICAmdHJhbnNwb3J0LT5wYWNrX2xvY2tmaWxlKTsKIAljbG9zZShkYXRhLT5mZFswXSk7CiAJY2xvc2UoZGF0YS0+ZmRbMV0pOwpAQCAtNjUwLDcgKzY2Miw3IEBACiAJCXByaW50X3JlZl9zdGF0dXMoJy0nLCAiW2RlbGV0ZWRdIiwgcmVmLCBOVUxMLCBOVUxMLCBwb3JjZWxhaW4pOwogCWVsc2UgaWYgKGlzX251bGxfc2hhMShyZWYtPm9sZF9zaGExKSkKIAkJcHJpbnRfcmVmX3N0YXR1cygnKicsCi0JCQkoIXByZWZpeGNtcChyZWYtPm5hbWUsICJyZWZzL3RhZ3MvIikgPyAiW25ldyB0YWddIiA6CisJCQkoc3RhcnRzX3dpdGgocmVmLT5uYW1lLCAicmVmcy90YWdzLyIpID8gIltuZXcgdGFnXSIgOgogCQkJIltuZXcgYnJhbmNoXSIpLAogCQkJcmVmLCByZWYtPnBlZXJfcmVmLCBOVUxMLCBwb3JjZWxhaW4pOwogCWVsc2UgewpAQCAtNzA3LDYgKzcxOSwxNCBAQAogCQlwcmludF9yZWZfc3RhdHVzKCchJywgIltyZWplY3RlZF0iLCByZWYsIHJlZi0+cGVlcl9yZWYsCiAJCQkJCQkgIm5lZWRzIGZvcmNlIiwgcG9yY2VsYWluKTsKIAkJYnJlYWs7CisJY2FzZSBSRUZfU1RBVFVTX1JFSkVDVF9TVEFMRToKKwkJcHJpbnRfcmVmX3N0YXR1cygnIScsICJbcmVqZWN0ZWRdIiwgcmVmLCByZWYtPnBlZXJfcmVmLAorCQkJCQkJICJzdGFsZSBpbmZvIiwgcG9yY2VsYWluKTsKKwkJYnJlYWs7CisJY2FzZSBSRUZfU1RBVFVTX1JFSkVDVF9TSEFMTE9XOgorCQlwcmludF9yZWZfc3RhdHVzKCchJywgIltyZWplY3RlZF0iLCByZWYsIHJlZi0+cGVlcl9yZWYsCisJCQkJCQkgIm5ldyBzaGFsbG93IHJvb3RzIG5vdCBhbGxvd2VkIiwgcG9yY2VsYWluKTsKKwkJYnJlYWs7CiAJY2FzZSBSRUZfU1RBVFVTX1JFTU9URV9SRUpFQ1Q6CiAJCXByaW50X3JlZl9zdGF0dXMoJyEnLCAiW3JlbW90ZSByZWplY3RlZF0iLCByZWYsCiAJCQkJCQkgcmVmLT5kZWxldGlvbiA/IE5VTEwgOiByZWYtPnBlZXJfcmVmLApAQCAtNzk5LDcgKzgxOSw4IEBACiAJCXN0cnVjdCByZWYgKnRtcF9yZWZzOwogCQljb25uZWN0X3NldHVwKHRyYW5zcG9ydCwgMSwgMCk7CiAKLQkJZ2V0X3JlbW90ZV9oZWFkcyhkYXRhLT5mZFswXSwgTlVMTCwgMCwgJnRtcF9yZWZzLCBSRUZfTk9STUFMLCBOVUxMKTsKKwkJZ2V0X3JlbW90ZV9oZWFkcyhkYXRhLT5mZFswXSwgTlVMTCwgMCwgJnRtcF9yZWZzLCBSRUZfTk9STUFMLAorCQkJCSBOVUxMLCAmZGF0YS0+c2hhbGxvdyk7CiAJCWRhdGEtPmdvdF9yZW1vdGVfaGVhZHMgPSAxOwogCX0KIApAQCAtODc5LDE0ICs5MDAsNiBAQAogCXRyYW5zcG9ydC0+Y2Fubm90X3JldXNlID0gMTsKIH0KIAotc3RhdGljIGludCBpc19sb2NhbChjb25zdCBjaGFyICp1cmwpCi17Ci0JY29uc3QgY2hhciAqY29sb24gPSBzdHJjaHIodXJsLCAnOicpOwotCWNvbnN0IGNoYXIgKnNsYXNoID0gc3RyY2hyKHVybCwgJy8nKTsKLQlyZXR1cm4gIWNvbG9uIHx8IChzbGFzaCAmJiBzbGFzaCA8IGNvbG9uKSB8fAotCQloYXNfZG9zX2RyaXZlX3ByZWZpeCh1cmwpOwotfQotCiBzdGF0aWMgaW50IGlzX2ZpbGUoY29uc3QgY2hhciAqdXJsKQogewogCXN0cnVjdCBzdGF0IGJ1ZjsKQEAgLTkyNCwxOCArOTM3LDE4IEBACiAKIAkJd2hpbGUgKGlzX3VybHNjaGVtZWNoYXIocCA9PSB1cmwsICpwKSkKIAkJCXArKzsKLQkJaWYgKCFwcmVmaXhjbXAocCwgIjo6IikpCisJCWlmIChzdGFydHNfd2l0aChwLCAiOjoiKSkKIAkJCWhlbHBlciA9IHhzdHJuZHVwKHVybCwgcCAtIHVybCk7CiAJfQogCiAJaWYgKGhlbHBlcikgewogCQl0cmFuc3BvcnRfaGVscGVyX2luaXQocmV0LCBoZWxwZXIpOwotCX0gZWxzZSBpZiAoIXByZWZpeGNtcCh1cmwsICJyc3luYzoiKSkgeworCX0gZWxzZSBpZiAoc3RhcnRzX3dpdGgodXJsLCAicnN5bmM6IikpIHsKIAkJcmV0LT5nZXRfcmVmc19saXN0ID0gZ2V0X3JlZnNfdmlhX3JzeW5jOwogCQlyZXQtPmZldGNoID0gZmV0Y2hfb2Jqc192aWFfcnN5bmM7CiAJCXJldC0+cHVzaCA9IHJzeW5jX3RyYW5zcG9ydF9wdXNoOwogCQlyZXQtPnNtYXJ0X29wdGlvbnMgPSBOVUxMOwotCX0gZWxzZSBpZiAoaXNfbG9jYWwodXJsKSAmJiBpc19maWxlKHVybCkgJiYgaXNfYnVuZGxlKHVybCwgMSkpIHsKKwl9IGVsc2UgaWYgKHVybF9pc19sb2NhbF9ub3Rfc3NoKHVybCkgJiYgaXNfZmlsZSh1cmwpICYmIGlzX2J1bmRsZSh1cmwsIDEpKSB7CiAJCXN0cnVjdCBidW5kbGVfdHJhbnNwb3J0X2RhdGEgKmRhdGEgPSB4Y2FsbG9jKDEsIHNpemVvZigqZGF0YSkpOwogCQlyZXQtPmRhdGEgPSBkYXRhOwogCQlyZXQtPmdldF9yZWZzX2xpc3QgPSBnZXRfcmVmc19mcm9tX2J1bmRsZTsKQEAgLTk0MywxMSArOTU2LDExIEBACiAJCXJldC0+ZGlzY29ubmVjdCA9IGNsb3NlX2J1bmRsZTsKIAkJcmV0LT5zbWFydF9vcHRpb25zID0gTlVMTDsKIAl9IGVsc2UgaWYgKCFpc191cmwodXJsKQotCQl8fCAhcHJlZml4Y21wKHVybCwgImZpbGU6Ly8iKQotCQl8fCAhcHJlZml4Y21wKHVybCwgImdpdDovLyIpCi0JCXx8ICFwcmVmaXhjbXAodXJsLCAic3NoOi8vIikKLQkJfHwgIXByZWZpeGNtcCh1cmwsICJnaXQrc3NoOi8vIikKLQkJfHwgIXByZWZpeGNtcCh1cmwsICJzc2grZ2l0Oi8vIikpIHsKKwkJfHwgc3RhcnRzX3dpdGgodXJsLCAiZmlsZTovLyIpCisJCXx8IHN0YXJ0c193aXRoKHVybCwgImdpdDovLyIpCisJCXx8IHN0YXJ0c193aXRoKHVybCwgInNzaDovLyIpCisJCXx8IHN0YXJ0c193aXRoKHVybCwgImdpdCtzc2g6Ly8iKQorCQl8fCBzdGFydHNfd2l0aCh1cmwsICJzc2grZ2l0Oi8vIikpIHsKIAkJLyogVGhlc2UgYXJlIGJ1aWx0aW4gc21hcnQgdHJhbnNwb3J0cy4gKi8KIAkJc3RydWN0IGdpdF90cmFuc3BvcnRfZGF0YSAqZGF0YSA9IHhjYWxsb2MoMSwgc2l6ZW9mKCpkYXRhKSk7CiAJCXJldC0+ZGF0YSA9IGRhdGE7CkBAIC0xMDc4LDYgKzEwOTEsNyBAQAogCWZvciAociA9IHJlbW90ZV9yZWZzOyByOyByID0gci0+bmV4dCkgewogCQlpZiAoIXItPnBlZXJfcmVmKSBjb250aW51ZTsKIAkJaWYgKHItPnN0YXR1cyA9PSBSRUZfU1RBVFVTX1JFSkVDVF9OT05GQVNURk9SV0FSRCkgY29udGludWU7CisJCWlmIChyLT5zdGF0dXMgPT0gUkVGX1NUQVRVU19SRUpFQ1RfU1RBTEUpIGNvbnRpbnVlOwogCQlpZiAoci0+c3RhdHVzID09IFJFRl9TVEFUVVNfVVBUT0RBVEUpIGNvbnRpbnVlOwogCiAJCXN0cmJ1Zl9yZXNldCgmYnVmKTsKQEAgLTExNDIsNiArMTE1NiwxMiBAQAogCQkJcmV0dXJuIC0xOwogCQl9CiAKKwkJaWYgKHRyYW5zcG9ydC0+c21hcnRfb3B0aW9ucyAmJgorCQkgICAgdHJhbnNwb3J0LT5zbWFydF9vcHRpb25zLT5jYXMgJiYKKwkJICAgICFpc19lbXB0eV9jYXModHJhbnNwb3J0LT5zbWFydF9vcHRpb25zLT5jYXMpKQorCQkJYXBwbHlfcHVzaF9jYXModHJhbnNwb3J0LT5zbWFydF9vcHRpb25zLT5jYXMsCisJCQkJICAgICAgIHRyYW5zcG9ydC0+cmVtb3RlLCByZW1vdGVfcmVmcyk7CisKIAkJc2V0X3JlZl9zdGF0dXNfZm9yX3B1c2gocmVtb3RlX3JlZnMsCiAJCQlmbGFncyAmIFRSQU5TUE9SVF9QVVNIX01JUlJPUiwKIAkJCWZsYWdzICYgVFJBTlNQT1JUX1BVU0hfRk9SQ0UpOwpAQCAtMTI4NCw3ICsxMzA0LDcgQEAKIAlzaXplX3QgYW5vbl9sZW4sIHByZWZpeF9sZW4gPSAwOwogCiAJYW5vbl9wYXJ0ID0gc3RyY2hyKHVybCwgJ0AnKTsKLQlpZiAoaXNfbG9jYWwodXJsKSB8fCAhYW5vbl9wYXJ0KQorCWlmICh1cmxfaXNfbG9jYWxfbm90X3NzaCh1cmwpIHx8ICFhbm9uX3BhcnQpCiAJCWdvdG8gbGl0ZXJhbF9jb3B5OwogCiAJYW5vbl9sZW4gPSBzdHJsZW4oKythbm9uX3BhcnQpOwpkaWZmIC0tZ2l0IGEvdHJhbnNwb3J0LmggYi90cmFuc3BvcnQuaAppbmRleCA5NmUwZWRlLi4wMmVhMjQ4IDEwMDY0NAotLS0gYS90cmFuc3BvcnQuaAorKysgYi90cmFuc3BvcnQuaApAQCAtMiw2ICsyLDcgQEAKICNkZWZpbmUgVFJBTlNQT1JUX0gKIAogI2luY2x1ZGUgImNhY2hlLmgiCisjaW5jbHVkZSAicnVuLWNvbW1hbmQuaCIKICNpbmNsdWRlICJyZW1vdGUuaCIKIAogc3RydWN0IGdpdF90cmFuc3BvcnRfb3B0aW9ucyB7CkBAIC0xMCw5ICsxMSwxMSBAQAogCXVuc2lnbmVkIGZvbGxvd3RhZ3MgOiAxOwogCXVuc2lnbmVkIGNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgOiAxOwogCXVuc2lnbmVkIHNlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgOiAxOworCXVuc2lnbmVkIHVwZGF0ZV9zaGFsbG93IDogMTsKIAlpbnQgZGVwdGg7CiAJY29uc3QgY2hhciAqdXBsb2FkcGFjazsKIAljb25zdCBjaGFyICpyZWNlaXZlcGFjazsKKwlzdHJ1Y3QgcHVzaF9jYXNfb3B0aW9uICpjYXM7CiB9OwogCiBzdHJ1Y3QgdHJhbnNwb3J0IHsKQEAgLTMzLDYgKzM2LDEyIEBACiAJICovCiAJdW5zaWduZWQgY2Fubm90X3JldXNlIDogMTsKIAorCS8qCisJICogQSBoaW50IGZyb20gY2FsbGVyIHRoYXQgaXQgd2lsbCBiZSBwZXJmb3JtaW5nIGEgY2xvbmUsIG5vdAorCSAqIG5vcm1hbCBmZXRjaC4gSU9XIHRoZSByZXBvc2l0b3J5IGlzIGd1YXJhbnRlZWQgZW1wdHkuCisJICovCisJdW5zaWduZWQgY2xvbmluZyA6IDE7CisKIAkvKioKIAkgKiBSZXR1cm5zIDAgaWYgc3VjY2Vzc2Z1bCwgcG9zaXRpdmUgaWYgdGhlIG9wdGlvbiBpcyBub3QKIAkgKiByZWNvZ25pemVkIG9yIGlzIGluYXBwbGljYWJsZSwgYW5kIG5lZ2F0aXZlIGlmIHRoZSBvcHRpb24KQEAgLTEzMiw2ICsxNDEsOSBAQAogLyogVHJhbnNmZXIgdGhlIGRhdGEgYXMgYSB0aGluIHBhY2sgaWYgbm90IG51bGwgKi8KICNkZWZpbmUgVFJBTlNfT1BUX1RISU4gInRoaW4iCiAKKy8qIENoZWNrIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSByZW1vdGUgcmVmICovCisjZGVmaW5lIFRSQU5TX09QVF9DQVMgImNhcyIKKwogLyogS2VlcCB0aGUgcGFjayB0aGF0IHdhcyB0cmFuc2ZlcnJlZCBpZiBub3QgbnVsbCAqLwogI2RlZmluZSBUUkFOU19PUFRfS0VFUCAia2VlcCIKIApAQCAtMTQxLDYgKzE1Myw5IEBACiAvKiBBZ2dyZXNzaXZlbHkgZmV0Y2ggYW5ub3RhdGVkIHRhZ3MgaWYgcG9zc2libGUgKi8KICNkZWZpbmUgVFJBTlNfT1BUX0ZPTExPV1RBR1MgImZvbGxvd3RhZ3MiCiAKKy8qIEFjY2VwdCByZWZzIHRoYXQgbWF5IHVwZGF0ZSAuZ2l0L3NoYWxsb3cgd2l0aG91dCAtLWRlcHRoICovCisjZGVmaW5lIFRSQU5TX09QVF9VUERBVEVfU0hBTExPVyAidXBkYXRlc2hhbGxvdyIKKwogLyoqCiAgKiBSZXR1cm5zIDAgaWYgdGhlIG9wdGlvbiB3YXMgdXNlZCwgbm9uLXplcm8gb3RoZXJ3aXNlLiBQcmludHMgYQogICogbWVzc2FnZSB0byBzdGRlcnIgaWYgdGhlIG9wdGlvbiBpcyBub3QgdXNlZC4KQEAgLTE4OCwxMCArMjAzLDQgQEAKIAogdHlwZWRlZiB2b2lkIGFsdGVybmF0ZV9yZWZfZm4oY29uc3Qgc3RydWN0IHJlZiAqLCB2b2lkICopOwogZXh0ZXJuIHZvaWQgZm9yX2VhY2hfYWx0ZXJuYXRlX3JlZihhbHRlcm5hdGVfcmVmX2ZuLCB2b2lkICopOwotCi1zdHJ1Y3Qgc2VuZF9wYWNrX2FyZ3M7Ci1leHRlcm4gaW50IHNlbmRfcGFjayhzdHJ1Y3Qgc2VuZF9wYWNrX2FyZ3MgKmFyZ3MsCi0JCSAgICAgaW50IGZkW10sIHN0cnVjdCBjaGlsZF9wcm9jZXNzICpjb25uLAotCQkgICAgIHN0cnVjdCByZWYgKnJlbW90ZV9yZWZzLAotCQkgICAgIHN0cnVjdCBleHRyYV9oYXZlX29iamVjdHMgKmV4dHJhX2hhdmUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS90cmVlLWRpZmYuYyBiL3RyZWUtZGlmZi5jCmluZGV4IGJhMDE1NjMuLjQ1NjY2MGMgMTAwNjQ0Ci0tLSBhL3RyZWUtZGlmZi5jCisrKyBiL3RyZWUtZGlmZi5jCkBAIC0xMzgsNyArMTM4LDYgQEAKIAogCS8qIEVuYWJsZSByZWN1cnNpb24gaW5kZWZpbml0ZWx5ICovCiAJb3B0LT5wYXRoc3BlYy5yZWN1cnNpdmUgPSBESUZGX09QVF9UU1Qob3B0LCBSRUNVUlNJVkUpOwotCW9wdC0+cGF0aHNwZWMubWF4X2RlcHRoID0gLTE7CiAKIAlzdHJidWZfaW5pdCgmYmFzZSwgUEFUSF9NQVgpOwogCXN0cmJ1Zl9hZGQoJmJhc2UsIGJhc2Vfc3RyLCBiYXNlbGVuKTsKQEAgLTE5Niw5ICsxOTUsMjcgQEAKIAlzdHJ1Y3QgZGlmZl9vcHRpb25zIGRpZmZfb3B0czsKIAlzdHJ1Y3QgZGlmZl9xdWV1ZV9zdHJ1Y3QgKnEgPSAmZGlmZl9xdWV1ZWRfZGlmZjsKIAlzdHJ1Y3QgZGlmZl9maWxlcGFpciAqY2hvaWNlOwotCWNvbnN0IGNoYXIgKnBhdGhzWzFdOwogCWludCBpOwogCisJLyoKKwkgKiBmb2xsb3ctcmVuYW1lIGNvZGUgaXMgdmVyeSBzcGVjaWZpYywgd2UgbmVlZCBleGFjdGx5IG9uZQorCSAqIHBhdGguIE1hZ2ljIHRoYXQgbWF0Y2hlcyBtb3JlIHRoYW4gb25lIHBhdGggaXMgbm90CisJICogc3VwcG9ydGVkLgorCSAqLworCUdVQVJEX1BBVEhTUEVDKCZvcHQtPnBhdGhzcGVjLCBQQVRIU1BFQ19GUk9NVE9QIHwgUEFUSFNQRUNfTElURVJBTCk7CisjaWYgMAorCS8qCisJICogV2Ugc2hvdWxkIHJlamVjdCB3aWxkY2FyZHMgYXMgd2VsbC4gVW5mb3J0dW5hdGVseSB3ZQorCSAqIGhhdmVuJ3QgZ290IGEgcmVsaWFibGUgd2F5IHRvIGRldGVjdCB0aGF0ICdmb29cKmJhcicgaW4KKwkgKiBmYWN0IGhhcyBubyB3aWxkY2FyZHMuIG5vd2lsZGNhcmRfbGVuIGlzIG1lcmVseSBhIGhpbnQgZm9yCisJICogb3B0aW1pemF0aW9uLiBMZXQgaXQgc2xpcCBmb3Igbm93IHVudGlsIHdpbGRtYXRjaCBpcyB0YXVnaHQKKwkgKiBhYm91dCBkcnktcnVuIG1vZGUgYW5kIHJldHVybnMgd2lsZGNhcmQgaW5mby4KKwkgKi8KKwlpZiAob3B0LT5wYXRoc3BlYy5oYXNfd2lsZGNhcmQpCisJCWRpZSgiQlVHOiVzOiVkOiB3aWxkY2FyZHMgYXJlIG5vdCBzdXBwb3J0ZWQiLAorCQkgICAgX19GSUxFX18sIF9fTElORV9fKTsKKyNlbmRpZgorCiAJLyogUmVtb3ZlIHRoZSBmaWxlIGNyZWF0aW9uIGVudHJ5IGZyb20gdGhlIGRpZmYgcXVldWUsIGFuZCByZW1lbWJlciBpdCAqLwogCWNob2ljZSA9IHEtPnF1ZXVlWzBdOwogCXEtPm5yID0gMDsKQEAgLTIwNywxNSArMjI0LDEzIEBACiAJRElGRl9PUFRfU0VUKCZkaWZmX29wdHMsIFJFQ1VSU0lWRSk7CiAJRElGRl9PUFRfU0VUKCZkaWZmX29wdHMsIEZJTkRfQ09QSUVTX0hBUkRFUik7CiAJZGlmZl9vcHRzLm91dHB1dF9mb3JtYXQgPSBESUZGX0ZPUk1BVF9OT19PVVRQVVQ7Ci0JZGlmZl9vcHRzLnNpbmdsZV9mb2xsb3cgPSBvcHQtPnBhdGhzcGVjLnJhd1swXTsKKwlkaWZmX29wdHMuc2luZ2xlX2ZvbGxvdyA9IG9wdC0+cGF0aHNwZWMuaXRlbXNbMF0ubWF0Y2g7CiAJZGlmZl9vcHRzLmJyZWFrX29wdCA9IG9wdC0+YnJlYWtfb3B0OwogCWRpZmZfb3B0cy5yZW5hbWVfc2NvcmUgPSBvcHQtPnJlbmFtZV9zY29yZTsKLQlwYXRoc1swXSA9IE5VTEw7Ci0JZGlmZl90cmVlX3NldHVwX3BhdGhzKHBhdGhzLCAmZGlmZl9vcHRzKTsKIAlkaWZmX3NldHVwX2RvbmUoJmRpZmZfb3B0cyk7CiAJZGlmZl90cmVlKHQxLCB0MiwgYmFzZSwgJmRpZmZfb3B0cyk7CiAJZGlmZmNvcmVfc3RkKCZkaWZmX29wdHMpOwotCWRpZmZfdHJlZV9yZWxlYXNlX3BhdGhzKCZkaWZmX29wdHMpOworCWZyZWVfcGF0aHNwZWMoJmRpZmZfb3B0cy5wYXRoc3BlYyk7CiAKIAkvKiBHbyB0aHJvdWdoIHRoZSBuZXcgc2V0IG9mIGZpbGVwYWlyaW5nLCBhbmQgc2VlIGlmIHdlIGZpbmQgYSBtb3JlIGludGVyZXN0aW5nIG9uZSAqLwogCW9wdC0+Zm91bmRfZm9sbG93ID0gMDsKQEAgLTIyOCwxNSArMjQzLDIwIEBACiAJCSAqIHRoZSBmdXR1cmUhCiAJCSAqLwogCQlpZiAoKHAtPnN0YXR1cyA9PSAnUicgfHwgcC0+c3RhdHVzID09ICdDJykgJiYKLQkJICAgICFzdHJjbXAocC0+dHdvLT5wYXRoLCBvcHQtPnBhdGhzcGVjLnJhd1swXSkpIHsKKwkJICAgICFzdHJjbXAocC0+dHdvLT5wYXRoLCBvcHQtPnBhdGhzcGVjLml0ZW1zWzBdLm1hdGNoKSkgeworCQkJY29uc3QgY2hhciAqcGF0aFsyXTsKKwogCQkJLyogU3dpdGNoIHRoZSBmaWxlLXBhaXJzIGFyb3VuZCAqLwogCQkJcS0+cXVldWVbaV0gPSBjaG9pY2U7CiAJCQljaG9pY2UgPSBwOwogCiAJCQkvKiBVcGRhdGUgdGhlIHBhdGggd2UgdXNlIGZyb20gbm93IG9uLi4gKi8KLQkJCWRpZmZfdHJlZV9yZWxlYXNlX3BhdGhzKG9wdCk7Ci0JCQlvcHQtPnBhdGhzcGVjLnJhd1swXSA9IHhzdHJkdXAocC0+b25lLT5wYXRoKTsKLQkJCWRpZmZfdHJlZV9zZXR1cF9wYXRocyhvcHQtPnBhdGhzcGVjLnJhdywgb3B0KTsKKwkJCXBhdGhbMF0gPSBwLT5vbmUtPnBhdGg7CisJCQlwYXRoWzFdID0gTlVMTDsKKwkJCWZyZWVfcGF0aHNwZWMoJm9wdC0+cGF0aHNwZWMpOworCQkJcGFyc2VfcGF0aHNwZWMoJm9wdC0+cGF0aHNwZWMsCisJCQkJICAgICAgIFBBVEhTUEVDX0FMTF9NQUdJQyAmIH5QQVRIU1BFQ19MSVRFUkFMLAorCQkJCSAgICAgICBQQVRIU1BFQ19MSVRFUkFMX1BBVEgsICIiLCBwYXRoKTsKIAogCQkJLyoKIAkJCSAqIFRoZSBjYWxsZXIgZXhwZWN0cyB1cyB0byByZXR1cm4gYSBzZXQgb2YgdmFuaWxsYQpAQCAtMzEwLDEzICszMzAsMyBAQAogCWZyZWUodHJlZSk7CiAJcmV0dXJuIHJldHZhbDsKIH0KLQotdm9pZCBkaWZmX3RyZWVfcmVsZWFzZV9wYXRocyhzdHJ1Y3QgZGlmZl9vcHRpb25zICpvcHQpCi17Ci0JZnJlZV9wYXRoc3BlYygmb3B0LT5wYXRoc3BlYyk7Ci19Ci0KLXZvaWQgZGlmZl90cmVlX3NldHVwX3BhdGhzKGNvbnN0IGNoYXIgKipwLCBzdHJ1Y3QgZGlmZl9vcHRpb25zICpvcHQpCi17Ci0JaW5pdF9wYXRoc3BlYygmb3B0LT5wYXRoc3BlYywgcCk7Ci19CmRpZmYgLS1naXQgYS90cmVlLXdhbGsuYyBiL3RyZWUtd2Fsay5jCmluZGV4IGQ1OTE0ZjUuLjc5ZGJhMWQgMTAwNjQ0Ci0tLSBhL3RyZWUtd2Fsay5jCisrKyBiL3RyZWUtd2Fsay5jCkBAIC0zLDYgKzMsNyBAQAogI2luY2x1ZGUgInVucGFjay10cmVlcy5oIgogI2luY2x1ZGUgImRpci5oIgogI2luY2x1ZGUgInRyZWUuaCIKKyNpbmNsdWRlICJwYXRoc3BlYy5oIgogCiBzdGF0aWMgY29uc3QgY2hhciAqZ2V0X21vZGUoY29uc3QgY2hhciAqc3RyLCB1bnNpZ25lZCBpbnQgKm1vZGVwKQogewpAQCAtNDg3LDEzICs0ODgsMjUgQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCi1zdGF0aWMgaW50IG1hdGNoX2VudHJ5KGNvbnN0IHN0cnVjdCBuYW1lX2VudHJ5ICplbnRyeSwgaW50IHBhdGhsZW4sCitzdGF0aWMgaW50IG1hdGNoX2VudHJ5KGNvbnN0IHN0cnVjdCBwYXRoc3BlY19pdGVtICppdGVtLAorCQkgICAgICAgY29uc3Qgc3RydWN0IG5hbWVfZW50cnkgKmVudHJ5LCBpbnQgcGF0aGxlbiwKIAkJICAgICAgIGNvbnN0IGNoYXIgKm1hdGNoLCBpbnQgbWF0Y2hsZW4sCiAJCSAgICAgICBlbnVtIGludGVyZXN0aW5nICpuZXZlcl9pbnRlcmVzdGluZykKIHsKIAlpbnQgbSA9IC0xOyAvKiBzaWduYWxzIHRoYXQgd2UgaGF2ZW4ndCBjYWxsZWQgc3RybmNtcCgpICovCiAKLQlpZiAoKm5ldmVyX2ludGVyZXN0aW5nICE9IGVudHJ5X25vdF9pbnRlcmVzdGluZykgeworCWlmIChpdGVtLT5tYWdpYyAmIFBBVEhTUEVDX0lDQVNFKQorCQkvKgorCQkgKiAiTmV2ZXIgaW50ZXJlc3RpbmciIHRyaWNrIHJlcXVpcmVzIGV4YWN0CisJCSAqIG1hdGNoaW5nLiBXZSBjb3VsZCBkbyBzb21ldGhpbmcgY2xldmVyIHdpdGggaW5leGFjdAorCQkgKiBtYXRjaGluZywgYnV0IGl0J3MgdHJpY2tpZXIgKGFuZCBub3QgdG8gZm9yZ2V0IHRoYXQKKwkJICogc3RyY2FzZWNtcCBpcyBsb2NhbGUtZGVwZW5kZW50LCBhdCBsZWFzdCBpbgorCQkgKiBnbGliYykuIEp1c3QgZGlzYWJsZSBpdCBmb3Igbm93LiBJdCBjYW4ndCBiZSB3b3JzZQorCQkgKiB0aGFuIHRoZSB3aWxkY2FyZCdzIGNvZGVwYXRoIG9mICdbVHRdW0hpXVtJc11bU3NdJworCQkgKiBwYXR0ZXJuLgorCQkgKi8KKwkJKm5ldmVyX2ludGVyZXN0aW5nID0gZW50cnlfbm90X2ludGVyZXN0aW5nOworCWVsc2UgaWYgKCpuZXZlcl9pbnRlcmVzdGluZyAhPSBlbnRyeV9ub3RfaW50ZXJlc3RpbmcpIHsKIAkJLyoKIAkJICogV2UgaGF2ZSBub3Qgc2VlbiBhbnkgbWF0Y2ggdGhhdCBzb3J0cyBsYXRlcgogCQkgKiB0aGFuIHRoZSBjdXJyZW50IHBhdGguCkBAIC01MzAsNyArNTQzLDcgQEAKIAlpZiAobWF0Y2hsZW4gPiBwYXRobGVuKSB7CiAJCWlmIChtYXRjaFtwYXRobGVuXSAhPSAnLycpCiAJCQlyZXR1cm4gMDsKLQkJaWYgKCFTX0lTRElSKGVudHJ5LT5tb2RlKSkKKwkJaWYgKCFTX0lTRElSKGVudHJ5LT5tb2RlKSAmJiAhU19JU0dJVExJTksoZW50cnktPm1vZGUpKQogCQkJcmV0dXJuIDA7CiAJfQogCkBAIC01MzksNyArNTUyLDcgQEAKIAkJICogd2UgY2hlYXRlZCBhbmQgZGlkIG5vdCBkbyBzdHJuY21wKCksIHNvIHdlIGRvCiAJCSAqIHRoYXQgaGVyZS4KIAkJICovCi0JCW0gPSBzdHJuY21wKG1hdGNoLCBlbnRyeS0+cGF0aCwgcGF0aGxlbik7CisJCW0gPSBwc19zdHJuY21wKGl0ZW0sIG1hdGNoLCBlbnRyeS0+cGF0aCwgcGF0aGxlbik7CiAKIAkvKgogCSAqIElmIGNvbW1vbiBwYXJ0IG1hdGNoZWQgZWFybGllciB0aGVuIGl0IGlzIGEgaGl0LApAQCAtNTQ3LDE1ICs1NjAsMzkgQEAKIAkgKiBsZWFkaW5nIGRpcmVjdG9yeSBhbmQgaXMgc2hvcnRlciB0aGFuIG1hdGNoLgogCSAqLwogCWlmICghbSkKKwkJLyoKKwkJICogbWF0Y2hfZW50cnkgZG9lcyBub3QgY2hlY2sgaWYgdGhlIHByZWZpeCBwYXJ0IGlzCisJCSAqIG1hdGNoZWQgY2FzZS1zZW5zaXRpdmVseS4gSWYgdGhlIGVudHJ5IGlzIGEKKwkJICogZGlyZWN0b3J5IGFuZCBwYXJ0IG9mIHByZWZpeCwgaXQnbGwgYmUgcmVtYXRjaGVkCisJCSAqIGV2ZW50dWFsbHkgYnkgYmFzZWNtcCB3aXRoIHNwZWNpYWwgdHJlYXRtZW50IGZvcgorCQkgKiB0aGUgcHJlZml4LgorCQkgKi8KIAkJcmV0dXJuIDE7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtYXRjaF9kaXJfcHJlZml4KGNvbnN0IGNoYXIgKmJhc2UsCisvKiA6KGljYXNlKS1hd2FyZSBzdHJpbmcgY29tcGFyZSAqLworc3RhdGljIGludCBiYXNlY21wKGNvbnN0IHN0cnVjdCBwYXRoc3BlY19pdGVtICppdGVtLAorCQkgICBjb25zdCBjaGFyICpiYXNlLCBjb25zdCBjaGFyICptYXRjaCwgaW50IGxlbikKK3sKKwlpZiAoaXRlbS0+bWFnaWMgJiBQQVRIU1BFQ19JQ0FTRSkgeworCQlpbnQgcmV0LCBuID0gbGVuID4gaXRlbS0+cHJlZml4ID8gaXRlbS0+cHJlZml4IDogbGVuOworCQlyZXQgPSBzdHJuY21wKGJhc2UsIG1hdGNoLCBuKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJCWJhc2UgKz0gbjsKKwkJbWF0Y2ggKz0gbjsKKwkJbGVuIC09IG47CisJfQorCXJldHVybiBwc19zdHJuY21wKGl0ZW0sIGJhc2UsIG1hdGNoLCBsZW4pOworfQorCitzdGF0aWMgaW50IG1hdGNoX2Rpcl9wcmVmaXgoY29uc3Qgc3RydWN0IHBhdGhzcGVjX2l0ZW0gKml0ZW0sCisJCQkgICAgY29uc3QgY2hhciAqYmFzZSwKIAkJCSAgICBjb25zdCBjaGFyICptYXRjaCwgaW50IG1hdGNobGVuKQogewotCWlmIChzdHJuY21wKGJhc2UsIG1hdGNoLCBtYXRjaGxlbikpCisJaWYgKGJhc2VjbXAoaXRlbSwgYmFzZSwgbWF0Y2gsIG1hdGNobGVuKSkKIAkJcmV0dXJuIDA7CiAKIAkvKgpAQCAtNTkyLDcgKzYyOSw3IEBACiAJCSAqLwogCQlpZiAoYmFzZWxlbiA+PSBtYXRjaGxlbikgewogCQkJKm1hdGNoZWQgPSBtYXRjaGxlbjsKLQkJCXJldHVybiAhc3RybmNtcChiYXNlLCBtYXRjaCwgbWF0Y2hsZW4pOworCQkJcmV0dXJuICFiYXNlY21wKGl0ZW0sIGJhc2UsIG1hdGNoLCBtYXRjaGxlbik7CiAJCX0KIAogCQlkaXJsZW4gPSBtYXRjaGxlbjsKQEAgLTYwNSw3ICs2NDIsNyBAQAogCQkgKiBiYXNlIGVuZHMgd2l0aCAnLycgc28gd2UgYXJlIHN1cmUgaXQgcmVhbGx5IG1hdGNoZXMKIAkJICogZGlyZWN0b3J5CiAJCSAqLwotCQlpZiAoc3RybmNtcChiYXNlLCBtYXRjaCwgYmFzZWxlbikpCisJCWlmIChiYXNlY21wKGl0ZW0sIGJhc2UsIG1hdGNoLCBiYXNlbGVuKSkKIAkJCXJldHVybiAwOwogCQkqbWF0Y2hlZCA9IGJhc2VsZW47CiAJfSBlbHNlCkBAIC02MjUsMTcgKzY2MiwyOCBAQAogICogUHJlLWNvbmRpdGlvbjogZWl0aGVyIGJhc2VsZW4gPT0gYmFzZV9vZmZzZXQgKGkuZS4gZW1wdHkgcGF0aCkKICAqIG9yIGJhc2VbYmFzZWxlbi0xXSA9PSAnLycgKGkuZS4gd2l0aCB0cmFpbGluZyBzbGFzaCkuCiAgKi8KLWVudW0gaW50ZXJlc3RpbmcgdHJlZV9lbnRyeV9pbnRlcmVzdGluZyhjb25zdCBzdHJ1Y3QgbmFtZV9lbnRyeSAqZW50cnksCi0JCQkJCXN0cnVjdCBzdHJidWYgKmJhc2UsIGludCBiYXNlX29mZnNldCwKLQkJCQkJY29uc3Qgc3RydWN0IHBhdGhzcGVjICpwcykKK3N0YXRpYyBlbnVtIGludGVyZXN0aW5nIGRvX21hdGNoKGNvbnN0IHN0cnVjdCBuYW1lX2VudHJ5ICplbnRyeSwKKwkJCQkgc3RydWN0IHN0cmJ1ZiAqYmFzZSwgaW50IGJhc2Vfb2Zmc2V0LAorCQkJCSBjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBzLAorCQkJCSBpbnQgZXhjbHVkZSkKIHsKIAlpbnQgaTsKIAlpbnQgcGF0aGxlbiwgYmFzZWxlbiA9IGJhc2UtPmxlbiAtIGJhc2Vfb2Zmc2V0OwogCWVudW0gaW50ZXJlc3RpbmcgbmV2ZXJfaW50ZXJlc3RpbmcgPSBwcy0+aGFzX3dpbGRjYXJkID8KIAkJZW50cnlfbm90X2ludGVyZXN0aW5nIDogYWxsX2VudHJpZXNfbm90X2ludGVyZXN0aW5nOwogCisJR1VBUkRfUEFUSFNQRUMocHMsCisJCSAgICAgICBQQVRIU1BFQ19GUk9NVE9QIHwKKwkJICAgICAgIFBBVEhTUEVDX01BWERFUFRIIHwKKwkJICAgICAgIFBBVEhTUEVDX0xJVEVSQUwgfAorCQkgICAgICAgUEFUSFNQRUNfR0xPQiB8CisJCSAgICAgICBQQVRIU1BFQ19JQ0FTRSB8CisJCSAgICAgICBQQVRIU1BFQ19FWENMVURFKTsKKwogCWlmICghcHMtPm5yKSB7Ci0JCWlmICghcHMtPnJlY3Vyc2l2ZSB8fCBwcy0+bWF4X2RlcHRoID09IC0xKQorCQlpZiAoIXBzLT5yZWN1cnNpdmUgfHwKKwkJICAgICEocHMtPm1hZ2ljICYgUEFUSFNQRUNfTUFYREVQVEgpIHx8CisJCSAgICBwcy0+bWF4X2RlcHRoID09IC0xKQogCQkJcmV0dXJuIGFsbF9lbnRyaWVzX2ludGVyZXN0aW5nOwogCQlyZXR1cm4gd2l0aGluX2RlcHRoKGJhc2UtPmJ1ZiArIGJhc2Vfb2Zmc2V0LCBiYXNlbGVuLAogCQkJCSAgICAhIVNfSVNESVIoZW50cnktPm1vZGUpLApAQCAtNjUxLDEyICs2OTksMTggQEAKIAkJY29uc3QgY2hhciAqYmFzZV9zdHIgPSBiYXNlLT5idWYgKyBiYXNlX29mZnNldDsKIAkJaW50IG1hdGNobGVuID0gaXRlbS0+bGVuLCBtYXRjaGVkID0gMDsKIAorCQlpZiAoKCFleGNsdWRlICYmICAgaXRlbS0+bWFnaWMgJiBQQVRIU1BFQ19FWENMVURFKSB8fAorCQkgICAgKCBleGNsdWRlICYmICEoaXRlbS0+bWFnaWMgJiBQQVRIU1BFQ19FWENMVURFKSkpCisJCQljb250aW51ZTsKKwogCQlpZiAoYmFzZWxlbiA+PSBtYXRjaGxlbikgewogCQkJLyogSWYgaXQgZG9lc24ndCBtYXRjaCwgbW92ZSBhbG9uZy4uLiAqLwotCQkJaWYgKCFtYXRjaF9kaXJfcHJlZml4KGJhc2Vfc3RyLCBtYXRjaCwgbWF0Y2hsZW4pKQorCQkJaWYgKCFtYXRjaF9kaXJfcHJlZml4KGl0ZW0sIGJhc2Vfc3RyLCBtYXRjaCwgbWF0Y2hsZW4pKQogCQkJCWdvdG8gbWF0Y2hfd2lsZGNhcmRzOwogCi0JCQlpZiAoIXBzLT5yZWN1cnNpdmUgfHwgcHMtPm1heF9kZXB0aCA9PSAtMSkKKwkJCWlmICghcHMtPnJlY3Vyc2l2ZSB8fAorCQkJICAgICEocHMtPm1hZ2ljICYgUEFUSFNQRUNfTUFYREVQVEgpIHx8CisJCQkgICAgcHMtPm1heF9kZXB0aCA9PSAtMSkKIAkJCQlyZXR1cm4gYWxsX2VudHJpZXNfaW50ZXJlc3Rpbmc7CiAKIAkJCXJldHVybiB3aXRoaW5fZGVwdGgoYmFzZV9zdHIgKyBtYXRjaGxlbiArIDEsCkBAIC02NjcsMTUgKzcyMSwxNCBAQAogCQl9CiAKIAkJLyogRWl0aGVyIHRoZXJlIG11c3QgYmUgbm8gYmFzZSwgb3IgdGhlIGJhc2UgbXVzdCBtYXRjaC4gKi8KLQkJaWYgKGJhc2VsZW4gPT0gMCB8fCAhc3RybmNtcChiYXNlX3N0ciwgbWF0Y2gsIGJhc2VsZW4pKSB7Ci0JCQlpZiAobWF0Y2hfZW50cnkoZW50cnksIHBhdGhsZW4sCisJCWlmIChiYXNlbGVuID09IDAgfHwgIWJhc2VjbXAoaXRlbSwgYmFzZV9zdHIsIG1hdGNoLCBiYXNlbGVuKSkgeworCQkJaWYgKG1hdGNoX2VudHJ5KGl0ZW0sIGVudHJ5LCBwYXRobGVuLAogCQkJCQltYXRjaCArIGJhc2VsZW4sIG1hdGNobGVuIC0gYmFzZWxlbiwKIAkJCQkJJm5ldmVyX2ludGVyZXN0aW5nKSkKIAkJCQlyZXR1cm4gZW50cnlfaW50ZXJlc3Rpbmc7CiAKIAkJCWlmIChpdGVtLT5ub3dpbGRjYXJkX2xlbiA8IGl0ZW0tPmxlbikgewotCQkJCWlmICghZ2l0X2ZubWF0Y2gobWF0Y2ggKyBiYXNlbGVuLCBlbnRyeS0+cGF0aCwKLQkJCQkJCSBpdGVtLT5mbGFncyAmIFBBVEhTUEVDX09ORVNUQVIgPyBHRk5NX09ORVNUQVIgOiAwLAorCQkJCWlmICghZ2l0X2ZubWF0Y2goaXRlbSwgbWF0Y2ggKyBiYXNlbGVuLCBlbnRyeS0+cGF0aCwKIAkJCQkJCSBpdGVtLT5ub3dpbGRjYXJkX2xlbiAtIGJhc2VsZW4pKQogCQkJCQlyZXR1cm4gZW50cnlfaW50ZXJlc3Rpbmc7CiAKQEAgLTcxNiw4ICs3NjksNyBAQAogCiAJCXN0cmJ1Zl9hZGQoYmFzZSwgZW50cnktPnBhdGgsIHBhdGhsZW4pOwogCi0JCWlmICghZ2l0X2ZubWF0Y2gobWF0Y2gsIGJhc2UtPmJ1ZiArIGJhc2Vfb2Zmc2V0LAotCQkJCSBpdGVtLT5mbGFncyAmIFBBVEhTUEVDX09ORVNUQVIgPyBHRk5NX09ORVNUQVIgOiAwLAorCQlpZiAoIWdpdF9mbm1hdGNoKGl0ZW0sIG1hdGNoLCBiYXNlLT5idWYgKyBiYXNlX29mZnNldCwKIAkJCQkgaXRlbS0+bm93aWxkY2FyZF9sZW4pKSB7CiAJCQlzdHJidWZfc2V0bGVuKGJhc2UsIGJhc2Vfb2Zmc2V0ICsgYmFzZWxlbik7CiAJCQlyZXR1cm4gZW50cnlfaW50ZXJlc3Rpbmc7CkBAIC03MzYsMyArNzg4LDcyIEBACiAJfQogCXJldHVybiBuZXZlcl9pbnRlcmVzdGluZzsgLyogTm8gbWF0Y2hlcyAqLwogfQorCisvKgorICogSXMgYSB0cmVlIGVudHJ5IGludGVyZXN0aW5nIGdpdmVuIHRoZSBwYXRoc3BlYyB3ZSBoYXZlPworICoKKyAqIFByZS1jb25kaXRpb246IGVpdGhlciBiYXNlbGVuID09IGJhc2Vfb2Zmc2V0IChpLmUuIGVtcHR5IHBhdGgpCisgKiBvciBiYXNlW2Jhc2VsZW4tMV0gPT0gJy8nIChpLmUuIHdpdGggdHJhaWxpbmcgc2xhc2gpLgorICovCitlbnVtIGludGVyZXN0aW5nIHRyZWVfZW50cnlfaW50ZXJlc3RpbmcoY29uc3Qgc3RydWN0IG5hbWVfZW50cnkgKmVudHJ5LAorCQkJCQlzdHJ1Y3Qgc3RyYnVmICpiYXNlLCBpbnQgYmFzZV9vZmZzZXQsCisJCQkJCWNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcHMpCit7CisJZW51bSBpbnRlcmVzdGluZyBwb3NpdGl2ZSwgbmVnYXRpdmU7CisJcG9zaXRpdmUgPSBkb19tYXRjaChlbnRyeSwgYmFzZSwgYmFzZV9vZmZzZXQsIHBzLCAwKTsKKworCS8qCisJICogY2FzZSB8IGVudHJ5IHwgcG9zaXRpdmUgfCBuZWdhdGl2ZSB8IHJlc3VsdAorCSAqIC0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0KKwkgKiAgIDEgIHwgIGZpbGUgfCAgIC0xICAgICB8ICAtMS4uMiAgIHwgIC0xCisJICogICAyICB8ICBmaWxlIHwgICAgMCAgICAgfCAgLTEuLjIgICB8ICAgMAorCSAqICAgMyAgfCAgZmlsZSB8ICAgIDEgICAgIHwgICAtMSAgICAgfCAgIDEKKwkgKiAgIDQgIHwgIGZpbGUgfCAgICAxICAgICB8ICAgIDAgICAgIHwgICAxCisJICogICA1ICB8ICBmaWxlIHwgICAgMSAgICAgfCAgICAxICAgICB8ICAgMAorCSAqICAgNiAgfCAgZmlsZSB8ICAgIDEgICAgIHwgICAgMiAgICAgfCAgIDAKKwkgKiAgIDcgIHwgIGZpbGUgfCAgICAyICAgICB8ICAgLTEgICAgIHwgICAyCisJICogICA4ICB8ICBmaWxlIHwgICAgMiAgICAgfCAgICAwICAgICB8ICAgMgorCSAqICAgOSAgfCAgZmlsZSB8ICAgIDIgICAgIHwgICAgMSAgICAgfCAgIDAKKwkgKiAgMTAgIHwgIGZpbGUgfCAgICAyICAgICB8ICAgIDIgICAgIHwgIC0xCisJICogLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLQorCSAqICAxMSAgfCAgZGlyICB8ICAgLTEgICAgIHwgIC0xLi4yICAgfCAgLTEKKwkgKiAgMTIgIHwgIGRpciAgfCAgICAwICAgICB8ICAtMS4uMiAgIHwgICAwCisJICogIDEzICB8ICBkaXIgIHwgICAgMSAgICAgfCAgIC0xICAgICB8ICAgMQorCSAqICAxNCAgfCAgZGlyICB8ICAgIDEgICAgIHwgICAgMCAgICAgfCAgIDEKKwkgKiAgMTUgIHwgIGRpciAgfCAgICAxICAgICB8ICAgIDEgICAgIHwgICAxICgqKQorCSAqICAxNiAgfCAgZGlyICB8ICAgIDEgICAgIHwgICAgMiAgICAgfCAgIDAKKwkgKiAgMTcgIHwgIGRpciAgfCAgICAyICAgICB8ICAgLTEgICAgIHwgICAyCisJICogIDE4ICB8ICBkaXIgIHwgICAgMiAgICAgfCAgICAwICAgICB8ICAgMgorCSAqICAxOSAgfCAgZGlyICB8ICAgIDIgICAgIHwgICAgMSAgICAgfCAgIDEgKCopCisJICogIDIwICB8ICBkaXIgIHwgICAgMiAgICAgfCAgICAyICAgICB8ICAtMQorCSAqCisJICogKCopIEFuIGV4Y2x1ZGUgcGF0dGVybiBpbnRlcmVzdGVkIGluIGEgZGlyZWN0b3J5IGRvZXMgbm90CisJICogbmVjZXNzYXJpbHkgbWVhbiBpdCB3aWxsIGV4Y2x1ZGUgYWxsIG9mIHRoZSBkaXJlY3RvcnkuIEluCisJICogd2lsZGNhcmQgY2FzZSwgaXQgY2FuJ3QgZGVjaWRlIHVudGlsIGxvb2tpbmcgYXQgaW5kaXZpZHVhbAorCSAqIGZpbGVzIGluc2lkZS4gU28gZG9uJ3Qgd3JpdGUgc3VjaCBkaXJlY3RvcmllcyBvZmYgeWV0LgorCSAqLworCisJaWYgKCEocHMtPm1hZ2ljICYgUEFUSFNQRUNfRVhDTFVERSkgfHwKKwkgICAgcG9zaXRpdmUgPD0gZW50cnlfbm90X2ludGVyZXN0aW5nKSAvKiAjMSwgIzIsICMxMSwgIzEyICovCisJCXJldHVybiBwb3NpdGl2ZTsKKworCW5lZ2F0aXZlID0gZG9fbWF0Y2goZW50cnksIGJhc2UsIGJhc2Vfb2Zmc2V0LCBwcywgMSk7CisKKwkvKiAjMywgIzQsICM3LCAjOCwgIzEzLCAjMTQsICMxNywgIzE4ICovCisJaWYgKG5lZ2F0aXZlIDw9IGVudHJ5X25vdF9pbnRlcmVzdGluZykKKwkJcmV0dXJuIHBvc2l0aXZlOworCisJLyogIzE1LCAjMTkgKi8KKwlpZiAoU19JU0RJUihlbnRyeS0+bW9kZSkgJiYKKwkgICAgcG9zaXRpdmUgPj0gZW50cnlfaW50ZXJlc3RpbmcgJiYKKwkgICAgbmVnYXRpdmUgPT0gZW50cnlfaW50ZXJlc3RpbmcpCisJCXJldHVybiBlbnRyeV9pbnRlcmVzdGluZzsKKworCWlmICgocG9zaXRpdmUgPT0gZW50cnlfaW50ZXJlc3RpbmcgJiYKKwkgICAgIG5lZ2F0aXZlID49IGVudHJ5X2ludGVyZXN0aW5nKSB8fCAvKiAjNSwgIzYsICMxNiAqLworCSAgICAocG9zaXRpdmUgPT0gYWxsX2VudHJpZXNfaW50ZXJlc3RpbmcgJiYKKwkgICAgIG5lZ2F0aXZlID09IGVudHJ5X2ludGVyZXN0aW5nKSkgLyogIzkgKi8KKwkJcmV0dXJuIGVudHJ5X25vdF9pbnRlcmVzdGluZzsKKworCXJldHVybiBhbGxfZW50cmllc19ub3RfaW50ZXJlc3Rpbmc7IC8qICMxMCwgIzIwICovCit9CmRpZmYgLS1naXQgYS90cmVlLmMgYi90cmVlLmMKaW5kZXggYzBlNTY4Yy4uYzhjNDlkNyAxMDA2NDQKLS0tIGEvdHJlZS5jCisrKyBiL3RyZWUuYwpAQCAtNDcsNyArNDcsNyBAQAogfQogCiBzdGF0aWMgaW50IHJlYWRfdHJlZV8xKHN0cnVjdCB0cmVlICp0cmVlLCBzdHJ1Y3Qgc3RyYnVmICpiYXNlLAotCQkgICAgICAgaW50IHN0YWdlLCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjLAorCQkgICAgICAgaW50IHN0YWdlLCBjb25zdCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjLAogCQkgICAgICAgcmVhZF90cmVlX2ZuX3QgZm4sIHZvaWQgKmNvbnRleHQpCiB7CiAJc3RydWN0IHRyZWVfZGVzYyBkZXNjOwpAQCAtMTE2LDcgKzExNiw3IEBACiAKIGludCByZWFkX3RyZWVfcmVjdXJzaXZlKHN0cnVjdCB0cmVlICp0cmVlLAogCQkJY29uc3QgY2hhciAqYmFzZSwgaW50IGJhc2VsZW4sCi0JCQlpbnQgc3RhZ2UsIHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMsCisJCQlpbnQgc3RhZ2UsIGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMsCiAJCQlyZWFkX3RyZWVfZm5fdCBmbiwgdm9pZCAqY29udGV4dCkKIHsKIAlzdHJ1Y3Qgc3RyYnVmIHNiID0gU1RSQlVGX0lOSVQ7CkBAIC0yMjUsNiArMjI1LDE0IEBACiAJcmV0dXJuIHBhcnNlX3RyZWVfYnVmZmVyKGl0ZW0sIGJ1ZmZlciwgc2l6ZSk7CiB9CiAKK3ZvaWQgZnJlZV90cmVlX2J1ZmZlcihzdHJ1Y3QgdHJlZSAqdHJlZSkKK3sKKwlmcmVlKHRyZWUtPmJ1ZmZlcik7CisJdHJlZS0+YnVmZmVyID0gTlVMTDsKKwl0cmVlLT5zaXplID0gMDsKKwl0cmVlLT5vYmplY3QucGFyc2VkID0gMDsKK30KKwogc3RydWN0IHRyZWUgKnBhcnNlX3RyZWVfaW5kaXJlY3QoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSkKIHsKIAlzdHJ1Y3Qgb2JqZWN0ICpvYmogPSBwYXJzZV9vYmplY3Qoc2hhMSk7CmRpZmYgLS1naXQgYS90cmVlLmggYi90cmVlLmgKaW5kZXggNjliY2I1ZS4uZDg0YWM2MyAxMDA2NDQKLS0tIGEvdHJlZS5oCisrKyBiL3RyZWUuaApAQCAtMTYsNiArMTYsNyBAQAogaW50IHBhcnNlX3RyZWVfYnVmZmVyKHN0cnVjdCB0cmVlICppdGVtLCB2b2lkICpidWZmZXIsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CiAKIGludCBwYXJzZV90cmVlKHN0cnVjdCB0cmVlICp0cmVlKTsKK3ZvaWQgZnJlZV90cmVlX2J1ZmZlcihzdHJ1Y3QgdHJlZSAqdHJlZSk7CiAKIC8qIFBhcnNlcyBhbmQgcmV0dXJucyB0aGUgdHJlZSBpbiB0aGUgZ2l2ZW4gZW50LCBjaGFzaW5nIHRhZ3MgYW5kIGNvbW1pdHMuICovCiBzdHJ1Y3QgdHJlZSAqcGFyc2VfdHJlZV9pbmRpcmVjdChjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKTsKQEAgLTI1LDcgKzI2LDcgQEAKIAogZXh0ZXJuIGludCByZWFkX3RyZWVfcmVjdXJzaXZlKHN0cnVjdCB0cmVlICp0cmVlLAogCQkJICAgICAgIGNvbnN0IGNoYXIgKmJhc2UsIGludCBiYXNlbGVuLAotCQkJICAgICAgIGludCBzdGFnZSwgc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYywKKwkJCSAgICAgICBpbnQgc3RhZ2UsIGNvbnN0IHN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWMsCiAJCQkgICAgICAgcmVhZF90cmVlX2ZuX3QgZm4sIHZvaWQgKmNvbnRleHQpOwogCiBleHRlcm4gaW50IHJlYWRfdHJlZShzdHJ1Y3QgdHJlZSAqdHJlZSwgaW50IHN0YWdlLCBzdHJ1Y3QgcGF0aHNwZWMgKnBhdGhzcGVjKTsKZGlmZiAtLWdpdCBhL3VucGFjay10cmVlcy5jIGIvdW5wYWNrLXRyZWVzLmMKaW5kZXggYmYwMTcxNy4uMTY0MzU0ZCAxMDA2NDQKLS0tIGEvdW5wYWNrLXRyZWVzLmMKKysrIGIvdW5wYWNrLXRyZWVzLmMKQEAgLTgzMCwyMyArODMwLDI0IEBACiB9CiAKIHN0YXRpYyBpbnQgY2xlYXJfY2VfZmxhZ3NfMShzdHJ1Y3QgY2FjaGVfZW50cnkgKipjYWNoZSwgaW50IG5yLAotCQkJICAgIGNoYXIgKnByZWZpeCwgaW50IHByZWZpeF9sZW4sCisJCQkgICAgc3RydWN0IHN0cmJ1ZiAqcHJlZml4LAogCQkJICAgIGludCBzZWxlY3RfbWFzaywgaW50IGNsZWFyX21hc2ssCiAJCQkgICAgc3RydWN0IGV4Y2x1ZGVfbGlzdCAqZWwsIGludCBkZWZ2YWwpOwogCiAvKiBXaG9sZSBkaXJlY3RvcnkgbWF0Y2hpbmcgKi8KIHN0YXRpYyBpbnQgY2xlYXJfY2VfZmxhZ3NfZGlyKHN0cnVjdCBjYWNoZV9lbnRyeSAqKmNhY2hlLCBpbnQgbnIsCi0JCQkgICAgICBjaGFyICpwcmVmaXgsIGludCBwcmVmaXhfbGVuLAorCQkJICAgICAgc3RydWN0IHN0cmJ1ZiAqcHJlZml4LAogCQkJICAgICAgY2hhciAqYmFzZW5hbWUsCiAJCQkgICAgICBpbnQgc2VsZWN0X21hc2ssIGludCBjbGVhcl9tYXNrLAogCQkJICAgICAgc3RydWN0IGV4Y2x1ZGVfbGlzdCAqZWwsIGludCBkZWZ2YWwpCiB7CiAJc3RydWN0IGNhY2hlX2VudHJ5ICoqY2FjaGVfZW5kOwogCWludCBkdHlwZSA9IERUX0RJUjsKLQlpbnQgcmV0ID0gaXNfZXhjbHVkZWRfZnJvbV9saXN0KHByZWZpeCwgcHJlZml4X2xlbiwKKwlpbnQgcmV0ID0gaXNfZXhjbHVkZWRfZnJvbV9saXN0KHByZWZpeC0+YnVmLCBwcmVmaXgtPmxlbiwKIAkJCQkJYmFzZW5hbWUsICZkdHlwZSwgZWwpOworCWludCByYzsKIAotCXByZWZpeFtwcmVmaXhfbGVuKytdID0gJy8nOworCXN0cmJ1Zl9hZGRjaChwcmVmaXgsICcvJyk7CiAKIAkvKiBJZiB1bmRlY2lkZWQsIHVzZSBtYXRjaGluZyByZXN1bHQgb2YgcGFyZW50IGRpciBpbiBkZWZ2YWwgKi8KIAlpZiAocmV0IDwgMCkKQEAgLTg1NCw3ICs4NTUsNyBAQAogCiAJZm9yIChjYWNoZV9lbmQgPSBjYWNoZTsgY2FjaGVfZW5kICE9IGNhY2hlICsgbnI7IGNhY2hlX2VuZCsrKSB7CiAJCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSAqY2FjaGVfZW5kOwotCQlpZiAoc3RybmNtcChjZS0+bmFtZSwgcHJlZml4LCBwcmVmaXhfbGVuKSkKKwkJaWYgKHN0cm5jbXAoY2UtPm5hbWUsIHByZWZpeC0+YnVmLCBwcmVmaXgtPmxlbikpCiAJCQlicmVhazsKIAl9CiAKQEAgLTg2NSwxMCArODY2LDEyIEBACiAJICogY2FsbGluZyBjbGVhcl9jZV9mbGFnc18xKCkuIFRoYXQgZnVuY3Rpb24gd2lsbCBjYWxsCiAJICogdGhlIGV4cGVuc2l2ZSBpc19leGNsdWRlZF9mcm9tX2xpc3QoKSBvbiBldmVyeSBlbnRyeS4KIAkgKi8KLQlyZXR1cm4gY2xlYXJfY2VfZmxhZ3NfMShjYWNoZSwgY2FjaGVfZW5kIC0gY2FjaGUsCi0JCQkJcHJlZml4LCBwcmVmaXhfbGVuLAotCQkJCXNlbGVjdF9tYXNrLCBjbGVhcl9tYXNrLAotCQkJCWVsLCByZXQpOworCXJjID0gY2xlYXJfY2VfZmxhZ3NfMShjYWNoZSwgY2FjaGVfZW5kIC0gY2FjaGUsCisJCQkgICAgICBwcmVmaXgsCisJCQkgICAgICBzZWxlY3RfbWFzaywgY2xlYXJfbWFzaywKKwkJCSAgICAgIGVsLCByZXQpOworCXN0cmJ1Zl9zZXRsZW4ocHJlZml4LCBwcmVmaXgtPmxlbiAtIDEpOworCXJldHVybiByYzsKIH0KIAogLyoKQEAgLTg4Nyw3ICs4OTAsNyBAQAogICogVG9wIGxldmVsIHBhdGggaGFzIHByZWZpeF9sZW4gemVyby4KICAqLwogc3RhdGljIGludCBjbGVhcl9jZV9mbGFnc18xKHN0cnVjdCBjYWNoZV9lbnRyeSAqKmNhY2hlLCBpbnQgbnIsCi0JCQkgICAgY2hhciAqcHJlZml4LCBpbnQgcHJlZml4X2xlbiwKKwkJCSAgICBzdHJ1Y3Qgc3RyYnVmICpwcmVmaXgsCiAJCQkgICAgaW50IHNlbGVjdF9tYXNrLCBpbnQgY2xlYXJfbWFzaywKIAkJCSAgICBzdHJ1Y3QgZXhjbHVkZV9saXN0ICplbCwgaW50IGRlZnZhbCkKIHsKQEAgLTkwNywxMCArOTEwLDEwIEBACiAJCQljb250aW51ZTsKIAkJfQogCi0JCWlmIChwcmVmaXhfbGVuICYmIHN0cm5jbXAoY2UtPm5hbWUsIHByZWZpeCwgcHJlZml4X2xlbikpCisJCWlmIChwcmVmaXgtPmxlbiAmJiBzdHJuY21wKGNlLT5uYW1lLCBwcmVmaXgtPmJ1ZiwgcHJlZml4LT5sZW4pKQogCQkJYnJlYWs7CiAKLQkJbmFtZSA9IGNlLT5uYW1lICsgcHJlZml4X2xlbjsKKwkJbmFtZSA9IGNlLT5uYW1lICsgcHJlZml4LT5sZW47CiAJCXNsYXNoID0gc3RyY2hyKG5hbWUsICcvJyk7CiAKIAkJLyogSWYgaXQncyBhIGRpcmVjdG9yeSwgdHJ5IHdob2xlIGRpcmVjdG9yeSBtYXRjaCBmaXJzdCAqLwpAQCAtOTE4LDI5ICs5MjEsMjYgQEAKIAkJCWludCBwcm9jZXNzZWQ7CiAKIAkJCWxlbiA9IHNsYXNoIC0gbmFtZTsKLQkJCW1lbWNweShwcmVmaXggKyBwcmVmaXhfbGVuLCBuYW1lLCBsZW4pOworCQkJc3RyYnVmX2FkZChwcmVmaXgsIG5hbWUsIGxlbik7CiAKLQkJCS8qCi0JCQkgKiB0ZXJtaW5hdGUgdGhlIHN0cmluZyAobm8gdHJhaWxpbmcgc2xhc2gpLAotCQkJICogY2xlYXJfY19mX2RpciBuZWVkcyBpdAotCQkJICovCi0JCQlwcmVmaXhbcHJlZml4X2xlbiArIGxlbl0gPSAnXDAnOwogCQkJcHJvY2Vzc2VkID0gY2xlYXJfY2VfZmxhZ3NfZGlyKGNhY2hlLCBjYWNoZV9lbmQgLSBjYWNoZSwKLQkJCQkJCSAgICAgICBwcmVmaXgsIHByZWZpeF9sZW4gKyBsZW4sCi0JCQkJCQkgICAgICAgcHJlZml4ICsgcHJlZml4X2xlbiwKKwkJCQkJCSAgICAgICBwcmVmaXgsCisJCQkJCQkgICAgICAgcHJlZml4LT5idWYgKyBwcmVmaXgtPmxlbiAtIGxlbiwKIAkJCQkJCSAgICAgICBzZWxlY3RfbWFzaywgY2xlYXJfbWFzaywKIAkJCQkJCSAgICAgICBlbCwgZGVmdmFsKTsKIAogCQkJLyogY2xlYXJfY19mX2RpciBlYXRzIGEgd2hvbGUgZGlyIGFscmVhZHk/ICovCiAJCQlpZiAocHJvY2Vzc2VkKSB7CiAJCQkJY2FjaGUgKz0gcHJvY2Vzc2VkOworCQkJCXN0cmJ1Zl9zZXRsZW4ocHJlZml4LCBwcmVmaXgtPmxlbiAtIGxlbik7CiAJCQkJY29udGludWU7CiAJCQl9CiAKLQkJCXByZWZpeFtwcmVmaXhfbGVuICsgbGVuKytdID0gJy8nOworCQkJc3RyYnVmX2FkZGNoKHByZWZpeCwgJy8nKTsKIAkJCWNhY2hlICs9IGNsZWFyX2NlX2ZsYWdzXzEoY2FjaGUsIGNhY2hlX2VuZCAtIGNhY2hlLAotCQkJCQkJICBwcmVmaXgsIHByZWZpeF9sZW4gKyBsZW4sCisJCQkJCQkgIHByZWZpeCwKIAkJCQkJCSAgc2VsZWN0X21hc2ssIGNsZWFyX21hc2ssIGVsLCBkZWZ2YWwpOworCQkJc3RyYnVmX3NldGxlbihwcmVmaXgsIHByZWZpeC0+bGVuIC0gbGVuIC0gMSk7CiAJCQljb250aW51ZTsKIAkJfQogCkBAIC05NjEsOSArOTYxLDEyIEBACiAJCQkgICAgaW50IHNlbGVjdF9tYXNrLCBpbnQgY2xlYXJfbWFzaywKIAkJCSAgICBzdHJ1Y3QgZXhjbHVkZV9saXN0ICplbCkKIHsKLQljaGFyIHByZWZpeFtQQVRIX01BWF07CisJc3RhdGljIHN0cnVjdCBzdHJidWYgcHJlZml4ID0gU1RSQlVGX0lOSVQ7CisKKwlzdHJidWZfcmVzZXQoJnByZWZpeCk7CisKIAlyZXR1cm4gY2xlYXJfY2VfZmxhZ3NfMShjYWNoZSwgbnIsCi0JCQkJcHJlZml4LCAwLAorCQkJCSZwcmVmaXgsCiAJCQkJc2VsZWN0X21hc2ssIGNsZWFyX21hc2ssCiAJCQkJZWwsIDApOwogfQpAQCAtMTE1NCw4ICsxMTU3LDEwIEBACiAKIAlvLT5zcmNfaW5kZXggPSBOVUxMOwogCXJldCA9IGNoZWNrX3VwZGF0ZXMobykgPyAoLTIpIDogMDsKLQlpZiAoby0+ZHN0X2luZGV4KQorCWlmIChvLT5kc3RfaW5kZXgpIHsKKwkJZGlzY2FyZF9pbmRleChvLT5kc3RfaW5kZXgpOwogCQkqby0+ZHN0X2luZGV4ID0gby0+cmVzdWx0OworCX0KIAogZG9uZToKIAljbGVhcl9leGNsdWRlX2xpc3QoJmVsKTsKQEAgLTEzNTUsNyArMTM2MCw3IEBACiB7CiAJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpzcmM7CiAKLQlzcmMgPSBpbmRleF9uYW1lX2V4aXN0cyhvLT5zcmNfaW5kZXgsIG5hbWUsIGxlbiwgMSk7CisJc3JjID0gaW5kZXhfZmlsZV9leGlzdHMoby0+c3JjX2luZGV4LCBuYW1lLCBsZW4sIDEpOwogCXJldHVybiBzcmMgJiYgIWllX21hdGNoX3N0YXQoby0+c3JjX2luZGV4LCBzcmMsIHN0LCBDRV9NQVRDSF9JR05PUkVfVkFMSUR8Q0VfTUFUQ0hfSUdOT1JFX1NLSVBfV09SS1RSRUUpOwogfQogCkBAIC0xNDAxLDcgKzE0MDYsNyBAQAogCSAqIGRlbGV0ZSB0aGlzIHBhdGgsIHdoaWNoIGlzIGluIGEgc3ViZGlyZWN0b3J5IHRoYXQKIAkgKiBpcyBiZWluZyByZXBsYWNlZCB3aXRoIGEgYmxvYi4KIAkgKi8KLQlyZXN1bHQgPSBpbmRleF9uYW1lX2V4aXN0cygmby0+cmVzdWx0LCBuYW1lLCBsZW4sIDApOworCXJlc3VsdCA9IGluZGV4X2ZpbGVfZXhpc3RzKCZvLT5yZXN1bHQsIG5hbWUsIGxlbiwgMCk7CiAJaWYgKHJlc3VsdCkgewogCQlpZiAocmVzdWx0LT5jZV9mbGFncyAmIENFX1JFTU9WRSkKIAkJCXJldHVybiAwOwpAQCAtMTc2MSwxNCArMTc2NiwyMyBAQAogCQluZXd0cmVlID0gTlVMTDsKIAogCWlmIChjdXJyZW50KSB7Ci0JCWlmICgoIW9sZHRyZWUgJiYgIW5ld3RyZWUpIHx8IC8qIDQgYW5kIDUgKi8KLQkJICAgICghb2xkdHJlZSAmJiBuZXd0cmVlICYmCi0JCSAgICAgc2FtZShjdXJyZW50LCBuZXd0cmVlKSkgfHwgLyogNiBhbmQgNyAqLwotCQkgICAgKG9sZHRyZWUgJiYgbmV3dHJlZSAmJgotCQkgICAgIHNhbWUob2xkdHJlZSwgbmV3dHJlZSkpIHx8IC8qIDE0IGFuZCAxNSAqLwotCQkgICAgKG9sZHRyZWUgJiYgbmV3dHJlZSAmJgotCQkgICAgICFzYW1lKG9sZHRyZWUsIG5ld3RyZWUpICYmIC8qIDE4IGFuZCAxOSAqLwotCQkgICAgIHNhbWUoY3VycmVudCwgbmV3dHJlZSkpKSB7CisJCWlmIChjdXJyZW50LT5jZV9mbGFncyAmIENFX0NPTkZMSUNURUQpIHsKKwkJCWlmIChzYW1lKG9sZHRyZWUsIG5ld3RyZWUpIHx8IG8tPnJlc2V0KSB7CisJCQkJaWYgKCFuZXd0cmVlKQorCQkJCQlyZXR1cm4gZGVsZXRlZF9lbnRyeShjdXJyZW50LCBjdXJyZW50LCBvKTsKKwkJCQllbHNlCisJCQkJCXJldHVybiBtZXJnZWRfZW50cnkobmV3dHJlZSwgY3VycmVudCwgbyk7CisJCQl9CisJCQlyZXR1cm4gby0+Z2VudGx5ID8gLTEgOiByZWplY3RfbWVyZ2UoY3VycmVudCwgbyk7CisJCX0KKwkJZWxzZSBpZiAoKCFvbGR0cmVlICYmICFuZXd0cmVlKSB8fCAvKiA0IGFuZCA1ICovCisJCQkgKCFvbGR0cmVlICYmIG5ld3RyZWUgJiYKKwkJCSAgc2FtZShjdXJyZW50LCBuZXd0cmVlKSkgfHwgLyogNiBhbmQgNyAqLworCQkJIChvbGR0cmVlICYmIG5ld3RyZWUgJiYKKwkJCSAgc2FtZShvbGR0cmVlLCBuZXd0cmVlKSkgfHwgLyogMTQgYW5kIDE1ICovCisJCQkgKG9sZHRyZWUgJiYgbmV3dHJlZSAmJgorCQkJICAhc2FtZShvbGR0cmVlLCBuZXd0cmVlKSAmJiAvKiAxOCBhbmQgMTkgKi8KKwkJCSAgc2FtZShjdXJyZW50LCBuZXd0cmVlKSkpIHsKIAkJCXJldHVybiBrZWVwX2VudHJ5KGN1cnJlbnQsIG8pOwogCQl9CiAJCWVsc2UgaWYgKG9sZHRyZWUgJiYgIW5ld3RyZWUgJiYgc2FtZShjdXJyZW50LCBvbGR0cmVlKSkgewpkaWZmIC0tZ2l0IGEvdXBsb2FkLXBhY2suYyBiL3VwbG9hZC1wYWNrLmMKaW5kZXggYTAyMGQzMC4uMGM0NGY2YiAxMDA2NDQKLS0tIGEvdXBsb2FkLXBhY2suYworKysgYi91cGxvYWQtcGFjay5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSAicmV2aXNpb24uaCIKICNpbmNsdWRlICJsaXN0LW9iamVjdHMuaCIKICNpbmNsdWRlICJydW4tY29tbWFuZC5oIgorI2luY2x1ZGUgImNvbm5lY3QuaCIKICNpbmNsdWRlICJzaWdjaGFpbi5oIgogI2luY2x1ZGUgInZlcnNpb24uaCIKICNpbmNsdWRlICJzdHJpbmctbGlzdC5oIgpAQCAtODMsNyArODQsNyBAQAogCWNoYXIgKnNoYWxsb3dfZmlsZSA9IE5VTEw7CiAKIAlpZiAoc2hhbGxvd19ucikgewotCQlzaGFsbG93X2ZpbGUgPSBzZXR1cF90ZW1wb3Jhcnlfc2hhbGxvdygpOworCQlzaGFsbG93X2ZpbGUgPSBzZXR1cF90ZW1wb3Jhcnlfc2hhbGxvdyhOVUxMKTsKIAkJYXJndlthcmcrK10gPSAiLS1zaGFsbG93LWZpbGUiOwogCQlhcmd2W2FyZysrXSA9IHNoYWxsb3dfZmlsZTsKIAl9CkBAIC0zOTMsNyArMzk0LDcgQEAKIAkJCWdvdF9vdGhlciA9IDA7CiAJCQljb250aW51ZTsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChsaW5lLCAiaGF2ZSAiKSkgeworCQlpZiAoc3RhcnRzX3dpdGgobGluZSwgImhhdmUgIikpIHsKIAkJCXN3aXRjaCAoZ290X3NoYTEobGluZSs1LCBzaGExKSkgewogCQkJY2FzZSAtMTogLyogdGhleSBoYXZlIHdoYXQgd2UgZG8gbm90ICovCiAJCQkJZ290X290aGVyID0gMTsKQEAgLTUzOSw3ICs1NDAsNyBAQAogCQlpZiAoIWxpbmUpCiAJCQlicmVhazsKIAotCQlpZiAoIXByZWZpeGNtcChsaW5lLCAic2hhbGxvdyAiKSkgeworCQlpZiAoc3RhcnRzX3dpdGgobGluZSwgInNoYWxsb3cgIikpIHsKIAkJCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CiAJCQlzdHJ1Y3Qgb2JqZWN0ICpvYmplY3Q7CiAJCQlpZiAoZ2V0X3NoYTFfaGV4KGxpbmUgKyA4LCBzaGExKSkKQEAgLTU1NSwxNCArNTU2LDE0IEBACiAJCQl9CiAJCQljb250aW51ZTsKIAkJfQotCQlpZiAoIXByZWZpeGNtcChsaW5lLCAiZGVlcGVuICIpKSB7CisJCWlmIChzdGFydHNfd2l0aChsaW5lLCAiZGVlcGVuICIpKSB7CiAJCQljaGFyICplbmQ7CiAJCQlkZXB0aCA9IHN0cnRvbChsaW5lICsgNywgJmVuZCwgMCk7CiAJCQlpZiAoZW5kID09IGxpbmUgKyA3IHx8IGRlcHRoIDw9IDApCiAJCQkJZGllKCJJbnZhbGlkIGRlZXBlbjogJXMiLCBsaW5lKTsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWlmIChwcmVmaXhjbXAobGluZSwgIndhbnQgIikgfHwKKwkJaWYgKCFzdGFydHNfd2l0aChsaW5lLCAid2FudCAiKSB8fAogCQkgICAgZ2V0X3NoYTFfaGV4KGxpbmUrNSwgc2hhMV9idWYpKQogCQkJZGllKCJnaXQgdXBsb2FkLXBhY2s6IHByb3RvY29sIGVycm9yLCAiCiAJCQkgICAgImV4cGVjdGVkIHRvIGdldCBzaGEsIG5vdCAnJXMnIiwgbGluZSk7CkBAIC02MTgsNyArNjE5LDcgQEAKIAlpZiAoZGVwdGggPiAwKSB7CiAJCXN0cnVjdCBjb21taXRfbGlzdCAqcmVzdWx0ID0gTlVMTCwgKmJhY2t1cCA9IE5VTEw7CiAJCWludCBpOwotCQlpZiAoZGVwdGggPT0gSU5GSU5JVEVfREVQVEgpCisJCWlmIChkZXB0aCA9PSBJTkZJTklURV9ERVBUSCAmJiAhaXNfcmVwb3NpdG9yeV9zaGFsbG93KCkpCiAJCQlmb3IgKGkgPSAwOyBpIDwgc2hhbGxvd3MubnI7IGkrKykgewogCQkJCXN0cnVjdCBvYmplY3QgKm9iamVjdCA9IHNoYWxsb3dzLm9iamVjdHNbaV0uaXRlbTsKIAkJCQlvYmplY3QtPmZsYWdzIHw9IE5PVF9TSEFMTE9XOwpAQCAtNjQ4LDggKzY0OSw3IEBACiAJCQkJLyogbWFrZSBzdXJlIHRoZSByZWFsIHBhcmVudHMgYXJlIHBhcnNlZCAqLwogCQkJCXVucmVnaXN0ZXJfc2hhbGxvdyhvYmplY3QtPnNoYTEpOwogCQkJCW9iamVjdC0+cGFyc2VkID0gMDsKLQkJCQlpZiAocGFyc2VfY29tbWl0KChzdHJ1Y3QgY29tbWl0ICopb2JqZWN0KSkKLQkJCQkJZGllKCJpbnZhbGlkIGNvbW1pdCIpOworCQkJCXBhcnNlX2NvbW1pdF9vcl9kaWUoKHN0cnVjdCBjb21taXQgKilvYmplY3QpOwogCQkJCXBhcmVudHMgPSAoKHN0cnVjdCBjb21taXQgKilvYmplY3QpLT5wYXJlbnRzOwogCQkJCXdoaWxlIChwYXJlbnRzKSB7CiAJCQkJCWFkZF9vYmplY3RfYXJyYXkoJnBhcmVudHMtPml0ZW0tPm9iamVjdCwKQEAgLTc1Nyw2ICs3NTcsNyBAQAogCQlyZXNldF90aW1lb3V0KCk7CiAJCWhlYWRfcmVmX25hbWVzcGFjZWQoc2VuZF9yZWYsICZzeW1yZWYpOwogCQlmb3JfZWFjaF9uYW1lc3BhY2VkX3JlZihzZW5kX3JlZiwgJnN5bXJlZik7CisJCWFkdmVydGlzZV9zaGFsbG93X2dyYWZ0cygxKTsKIAkJcGFja2V0X2ZsdXNoKDEpOwogCX0gZWxzZSB7CiAJCWhlYWRfcmVmX25hbWVzcGFjZWQobWFya19vdXJfcmVmLCBOVUxMKTsKQEAgLTgxNCw3ICs4MTUsNyBAQAogCQkJc3RyaWN0ID0gMTsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWlmICghcHJlZml4Y21wKGFyZywgIi0tdGltZW91dD0iKSkgeworCQlpZiAoc3RhcnRzX3dpdGgoYXJnLCAiLS10aW1lb3V0PSIpKSB7CiAJCQl0aW1lb3V0ID0gYXRvaShhcmcrMTApOwogCQkJZGFlbW9uX21vZGUgPSAxOwogCQkJY29udGludWU7CkBAIC04MzQsOCArODM1LDcgQEAKIAogCWlmICghZW50ZXJfcmVwbyhkaXIsIHN0cmljdCkpCiAJCWRpZSgiJyVzJyBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSBnaXQgcmVwb3NpdG9yeSIsIGRpcik7Ci0JaWYgKGlzX3JlcG9zaXRvcnlfc2hhbGxvdygpKQotCQlkaWUoImF0dGVtcHQgdG8gZmV0Y2gvY2xvbmUgZnJvbSBhIHNoYWxsb3cgcmVwb3NpdG9yeSIpOworCiAJZ2l0X2NvbmZpZyh1cGxvYWRfcGFja19jb25maWcsIE5VTEwpOwogCXVwbG9hZF9wYWNrKCk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS91cmxtYXRjaC5jIGIvdXJsbWF0Y2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzg3Y2JhCi0tLSAvZGV2L251bGwKKysrIGIvdXJsbWF0Y2guYwpAQCAtMCwwICsxLDUzOSBAQAorI2luY2x1ZGUgImNhY2hlLmgiCisjaW5jbHVkZSAidXJsbWF0Y2guaCIKKworI2RlZmluZSBVUkxfQUxQSEEgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiCisjZGVmaW5lIFVSTF9ESUdJVCAiMDEyMzQ1Njc4OSIKKyNkZWZpbmUgVVJMX0FMUEhBRElHSVQgVVJMX0FMUEhBIFVSTF9ESUdJVAorI2RlZmluZSBVUkxfU0NIRU1FX0NIQVJTIFVSTF9BTFBIQURJR0lUICIrLi0iCisjZGVmaW5lIFVSTF9IT1NUX0NIQVJTIFVSTF9BTFBIQURJR0lUICIuLVs6XSIgLyogSVB2NiBsaXRlcmFscyBuZWVkIFs6XSAqLworI2RlZmluZSBVUkxfVU5TQUZFX0NIQVJTICIgPD5cIiV7fXxcXF5gIiAvKiBwbHVzIDB4MDAtMHgxRiwweDdGLTB4RkYgKi8KKyNkZWZpbmUgVVJMX0dFTl9SRVNFUlZFRCAiOi8/I1tdQCIKKyNkZWZpbmUgVVJMX1NVQl9SRVNFUlZFRCAiISQmJygpKissOz0iCisjZGVmaW5lIFVSTF9SRVNFUlZFRCBVUkxfR0VOX1JFU0VSVkVEIFVSTF9TVUJfUkVTRVJWRUQgLyogb25seSBhbGxvd2VkIGRlbGltcyAqLworCitzdGF0aWMgaW50IGFwcGVuZF9ub3JtYWxpemVkX2VzY2FwZXMoc3RydWN0IHN0cmJ1ZiAqYnVmLAorCQkJCSAgICAgY29uc3QgY2hhciAqZnJvbSwKKwkJCQkgICAgIHNpemVfdCBmcm9tX2xlbiwKKwkJCQkgICAgIGNvbnN0IGNoYXIgKmVzY19leHRyYSwKKwkJCQkgICAgIGNvbnN0IGNoYXIgKmVzY19vaykKK3sKKwkvKgorCSAqIEFwcGVuZCB0byBzdHJidWYgJ2J1ZicgY2hhcmFjdGVycyBmcm9tIHN0cmluZyAnZnJvbScgd2l0aCBsZW5ndGgKKwkgKiAnZnJvbV9sZW4nIHdoaWxlIHVuZXNjYXBpbmcgY2hhcmFjdGVycyB0aGF0IGRvIG5vdCBuZWVkIHRvIGJlIGVzY2FwZWQKKwkgKiBhbmQgZXNjYXBpbmcgY2hhcmFjdGVycyB0aGF0IGRvLiAgVGhlIHNldCBvZiBjaGFyYWN0ZXJzIHRvIGVzY2FwZQorCSAqICh0aGUgY29tcGxlbWVudCBvZiB3aGljaCBpcyB1bmVzY2FwZWQpIHN0YXJ0cyBvdXQgYXMgdGhlIFJGQyAzOTg2CisJICogdW5zYWZlIGNoYXJhY3RlcnMgKDB4MDAtMHgxRiwweDdGLTB4RkYsIiA8PlwiIyV7fXxcXF5gIikuICBJZgorCSAqICdlc2NfZXh0cmEnIGlzIG5vdCBOVUxMLCB0aG9zZSBhZGRpdGlvbmFsIGNoYXJhY3RlcnMgd2lsbCBhbHNvIGFsd2F5cworCSAqIGJlIGVzY2FwZWQuICBJZiAnZXNjX29rJyBpcyBub3QgTlVMTCwgdGhvc2UgY2hhcmFjdGVycyB3aWxsIGJlIGxlZnQKKwkgKiBlc2NhcGVkIGlmIGZvdW5kIHRoYXQgd2F5LCBidXQgd2lsbCBub3QgYmUgdW5lc2NhcGVkIG90aGVyd2lzZSAodXNlZAorCSAqIGZvciBkZWxpbWl0ZXJzKS4gIElmIGEgJS1lc2NhcGUgc2VxdWVuY2UgaXMgZW5jb3VudGVyZWQgdGhhdCBpcyBub3QKKwkgKiBmb2xsb3dlZCBieSAyIGhleGFkZWNpbWFsIGRpZ2l0cywgdGhlIHNlcXVlbmNlIGlzIGludmFsaWQgYW5kCisJICogZmFsc2UgKDApIHdpbGwgYmUgcmV0dXJuZWQuICBPdGhlcndpc2UgdHJ1ZSAoMSkgd2lsbCBiZSByZXR1cm5lZCBmb3IKKwkgKiBzdWNjZXNzLgorCSAqCisJICogTm90ZSB0aGF0IGFsbCAlLWVzY2FwZSBzZXF1ZW5jZXMgd2lsbCBiZSBub3JtYWxpemVkIHRvIFVQUEVSQ0FTRQorCSAqIGFzIGluZGljYXRlZCBpbiBSRkMgMzk4Ni4gIFVubGVzcyBpbmNsdWRlZCBpbiBlc2NfZXh0cmEgb3IgZXNjX29rCisJICogYWxwaGFudW1lcmljcyBhbmQgIi0uX34iIHdpbGwgYWx3YXlzIGJlIHVuZXNjYXBlZCBhcyBwZXIgUkZDIDM5ODYuCisJICovCisKKwl3aGlsZSAoZnJvbV9sZW4pIHsKKwkJaW50IGNoID0gKmZyb20rKzsKKwkJaW50IHdhc19lc2MgPSAwOworCisJCWZyb21fbGVuLS07CisJCWlmIChjaCA9PSAnJScpIHsKKwkJCWlmIChmcm9tX2xlbiA8IDIgfHwKKwkJCSAgICAhaXN4ZGlnaXQoKHVuc2lnbmVkIGNoYXIpZnJvbVswXSkgfHwKKwkJCSAgICAhaXN4ZGlnaXQoKHVuc2lnbmVkIGNoYXIpZnJvbVsxXSkpCisJCQkJcmV0dXJuIDA7CisJCQljaCA9IGhleHZhbF90YWJsZVsodW5zaWduZWQgY2hhcikqZnJvbSsrXSA8PCA0OworCQkJY2ggfD0gaGV4dmFsX3RhYmxlWyh1bnNpZ25lZCBjaGFyKSpmcm9tKytdOworCQkJZnJvbV9sZW4gLT0gMjsKKwkJCXdhc19lc2MgPSAxOworCQl9CisJCWlmICgodW5zaWduZWQgY2hhciljaCA8PSAweDFGIHx8ICh1bnNpZ25lZCBjaGFyKWNoID49IDB4N0YgfHwKKwkJICAgIHN0cmNocihVUkxfVU5TQUZFX0NIQVJTLCBjaCkgfHwKKwkJICAgIChlc2NfZXh0cmEgJiYgc3RyY2hyKGVzY19leHRyYSwgY2gpKSB8fAorCQkgICAgKHdhc19lc2MgJiYgc3RyY2hyKGVzY19vaywgY2gpKSkKKwkJCXN0cmJ1Zl9hZGRmKGJ1ZiwgIiUlJTAyWCIsICh1bnNpZ25lZCBjaGFyKWNoKTsKKwkJZWxzZQorCQkJc3RyYnVmX2FkZGNoKGJ1ZiwgY2gpOworCX0KKworCXJldHVybiAxOworfQorCitjaGFyICp1cmxfbm9ybWFsaXplKGNvbnN0IGNoYXIgKnVybCwgc3RydWN0IHVybF9pbmZvICpvdXRfaW5mbykKK3sKKwkvKgorCSAqIE5vcm1hbGl6ZSBOVUwtdGVybWluYXRlZCB1cmwgdXNpbmcgdGhlIGZvbGxvd2luZyBydWxlczoKKwkgKgorCSAqIDEuIENhc2UtaW5zZW5zaXRpdmUgcGFydHMgb2YgdXJsIHdpbGwgYmUgY29udmVydGVkIHRvIGxvd2VyIGNhc2UKKwkgKiAyLiAlLWVuY29kZWQgY2hhcmFjdGVycyB0aGF0IGRvIG5vdCBuZWVkIHRvIGJlIHdpbGwgYmUgdW5lbmNvZGVkCisJICogMy4gQ2hhcmFjdGVycyB0aGF0IGFyZSBub3QgJS1lbmNvZGVkIGFuZCBtdXN0IGJlIHdpbGwgYmUgZW5jb2RlZAorCSAqIDQuIEFsbCAlLWVuY29kaW5ncyB3aWxsIGJlIGNvbnZlcnRlZCB0byB1cHBlciBjYXNlIGhleGFkZWNpbWFsCisJICogNS4gTGVhZGluZyAwcyBhcmUgcmVtb3ZlZCBmcm9tIHBvcnQgbnVtYmVycworCSAqIDYuIElmIHRoZSBkZWZhdWx0IHBvcnQgZm9yIHRoZSBzY2hlbWUgaXMgZ2l2ZW4gaXQgd2lsbCBiZSByZW1vdmVkCisJICogNy4gQSBwYXRoIHBhcnQgKGluY2x1ZGluZyBlbXB0eSkgbm90IHN0YXJ0aW5nIHdpdGggJy8nIGhhcyBvbmUgYWRkZWQKKwkgKiA4LiBBbnkgZG90IHNlZ21lbnRzICguIG9yIC4uKSBpbiB0aGUgcGF0aCBhcmUgcmVzb2x2ZWQgYW5kIHJlbW92ZWQKKwkgKiA5LiBJUHY2IGhvc3QgbGl0ZXJhbHMgYXJlIGFsbG93ZWQgKGJ1dCBub3Qgbm9ybWFsaXplZCBvciB2YWxpZGF0ZWQpCisJICoKKwkgKiBUaGUgcnVsZXMgYXJlIGJhc2VkIG9uIGluZm9ybWF0aW9uIGluIFJGQyAzOTg2LgorCSAqCisJICogUGxlYXNlIG5vdGUgdGhpcyBmdW5jdGlvbiByZXF1aXJlcyBhIGZ1bGwgVVJMIGluY2x1ZGluZyBhIHNjaGVtZQorCSAqIGFuZCBob3N0IHBhcnQgKGV4Y2VwdCBmb3IgZmlsZTogVVJMcyB3aGljaCBtYXkgaGF2ZSBhbiBlbXB0eSBob3N0KS4KKwkgKgorCSAqIFRoZSByZXR1cm4gdmFsdWUgaXMgYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIHRoYXQgbXVzdCBiZSBmcmVlZAorCSAqIG9yIE5VTEwgaWYgdGhlIHVybCBpcyBub3QgdmFsaWQuCisJICoKKwkgKiBJZiBvdXRfaW5mbyBpcyBub24tTlVMTCwgdGhlIHVybCBhbmQgZXJyIGZpZWxkcyB0aGVyZWluIHdpbGwgYWx3YXlzCisJICogYmUgc2V0LiAgSWYgYSBub24tTlVMTCB2YWx1ZSBpcyByZXR1cm5lZCwgaXQgd2lsbCBiZSBzdG9yZWQgaW4KKwkgKiBvdXRfaW5mby0+dXJsIGFzIHdlbGwsIG91dF9pbmZvLT5lcnIgd2lsbCBiZSBzZXQgdG8gTlVMTCBhbmQgdGhlCisJICogb3RoZXIgZmllbGRzIG9mICpvdXRfaW5mbyB3aWxsIGFsc28gYmUgZmlsbGVkIGluLiAgSWYgYSBOVUxMIHZhbHVlCisJICogaXMgcmV0dXJuZWQsIE5VTEwgd2lsbCBiZSBzdG9yZWQgaW4gb3V0X2luZm8tPnVybCBhbmQgb3V0X2luZm8tPmVycgorCSAqIHdpbGwgYmUgc2V0IHRvIGEgYnJpZWYsIHRyYW5zbGF0ZWQsIGVycm9yIG1lc3NhZ2UsIGJ1dCBubyBvdGhlcgorCSAqIGZpZWxkcyB3aWxsIGJlIGZpbGxlZCBpbi4KKwkgKgorCSAqIFRoaXMgaXMgTk9UIGEgVVJMIHZhbGlkYXRpb24gZnVuY3Rpb24uICBGdWxsIFVSTCB2YWxpZGF0aW9uIGlzIE5PVAorCSAqIHBlcmZvcm1lZC4gIFNvbWUgaW52YWxpZCBob3N0IG5hbWVzIGFyZSBwYXNzZWQgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uCisJICogdW5kZXRlY3RlZC4gIEhvd2V2ZXIsIG1vc3QgYWxsIG90aGVyIHByb2JsZW1zIHRoYXQgbWFrZSBhIFVSTCBpbnZhbGlkCisJICogd2lsbCBiZSBkZXRlY3RlZCAoaW5jbHVkaW5nIGEgbWlzc2luZyBob3N0IGZvciBub24gZmlsZTogVVJMcykuCisJICovCisKKwlzaXplX3QgdXJsX2xlbiA9IHN0cmxlbih1cmwpOworCXN0cnVjdCBzdHJidWYgbm9ybTsKKwlzaXplX3Qgc3Bhbm5lZDsKKwlzaXplX3Qgc2NoZW1lX2xlbiwgdXNlcl9vZmY9MCwgdXNlcl9sZW49MCwgcGFzc3dkX29mZj0wLCBwYXNzd2RfbGVuPTA7CisJc2l6ZV90IGhvc3Rfb2ZmPTAsIGhvc3RfbGVuPTAsIHBvcnRfbGVuPTAsIHBhdGhfb2ZmLCBwYXRoX2xlbiwgcmVzdWx0X2xlbjsKKwljb25zdCBjaGFyICpzbGFzaF9wdHIsICphdF9wdHIsICpjb2xvbl9wdHIsICpwYXRoX3N0YXJ0OworCWNoYXIgKnJlc3VsdDsKKworCS8qCisJICogQ29weSBsb3dlcmNhc2VkIHNjaGVtZSBhbmQgOi8vIHN1ZmZpeCwgJS1lc2NhcGVzIGFyZSBub3QgYWxsb3dlZAorCSAqIEZpcnN0IGNoYXJhY3RlciBvZiBzY2hlbWUgbXVzdCBiZSBVUkxfQUxQSEEKKwkgKi8KKwlzcGFubmVkID0gc3Ryc3BuKHVybCwgVVJMX1NDSEVNRV9DSEFSUyk7CisJaWYgKCFzcGFubmVkIHx8ICFpc2FscGhhKHVybFswXSkgfHwgc3Bhbm5lZCArIDMgPiB1cmxfbGVuIHx8CisJICAgIHVybFtzcGFubmVkXSAhPSAnOicgfHwgdXJsW3NwYW5uZWQrMV0gIT0gJy8nIHx8IHVybFtzcGFubmVkKzJdICE9ICcvJykgeworCQlpZiAob3V0X2luZm8pIHsKKwkJCW91dF9pbmZvLT51cmwgPSBOVUxMOworCQkJb3V0X2luZm8tPmVyciA9IF8oImludmFsaWQgVVJMIHNjaGVtZSBuYW1lIG9yIG1pc3NpbmcgJzovLycgc3VmZml4Iik7CisJCX0KKwkJcmV0dXJuIE5VTEw7IC8qIEJhZCBzY2hlbWUgYW5kL29yIG1pc3NpbmcgIjovLyIgcGFydCAqLworCX0KKwlzdHJidWZfaW5pdCgmbm9ybSwgdXJsX2xlbik7CisJc2NoZW1lX2xlbiA9IHNwYW5uZWQ7CisJc3Bhbm5lZCArPSAzOworCXVybF9sZW4gLT0gc3Bhbm5lZDsKKwl3aGlsZSAoc3Bhbm5lZC0tKQorCQlzdHJidWZfYWRkY2goJm5vcm0sIHRvbG93ZXIoKnVybCsrKSk7CisKKworCS8qCisJICogQ29weSBhbnkgdXNlcm5hbWU6cGFzc3dvcmQgaWYgcHJlc2VudCBub3JtYWxpemluZyAlLWVzY2FwZXMKKwkgKi8KKwlhdF9wdHIgPSBzdHJjaHIodXJsLCAnQCcpOworCXNsYXNoX3B0ciA9IHVybCArIHN0cmNzcG4odXJsLCAiLz8jIik7CisJaWYgKGF0X3B0ciAmJiBhdF9wdHIgPCBzbGFzaF9wdHIpIHsKKwkJdXNlcl9vZmYgPSBub3JtLmxlbjsKKwkJaWYgKGF0X3B0ciA+IHVybCkgeworCQkJaWYgKCFhcHBlbmRfbm9ybWFsaXplZF9lc2NhcGVzKCZub3JtLCB1cmwsIGF0X3B0ciAtIHVybCwKKwkJCQkJCSAgICAgICAiIiwgVVJMX1JFU0VSVkVEKSkgeworCQkJCWlmIChvdXRfaW5mbykgeworCQkJCQlvdXRfaW5mby0+dXJsID0gTlVMTDsKKwkJCQkJb3V0X2luZm8tPmVyciA9IF8oImludmFsaWQgJVhYIGVzY2FwZSBzZXF1ZW5jZSIpOworCQkJCX0KKwkJCQlzdHJidWZfcmVsZWFzZSgmbm9ybSk7CisJCQkJcmV0dXJuIE5VTEw7CisJCQl9CisJCQljb2xvbl9wdHIgPSBzdHJjaHIobm9ybS5idWYgKyBzY2hlbWVfbGVuICsgMywgJzonKTsKKwkJCWlmIChjb2xvbl9wdHIpIHsKKwkJCQlwYXNzd2Rfb2ZmID0gKGNvbG9uX3B0ciArIDEpIC0gbm9ybS5idWY7CisJCQkJcGFzc3dkX2xlbiA9IG5vcm0ubGVuIC0gcGFzc3dkX29mZjsKKwkJCQl1c2VyX2xlbiA9IChwYXNzd2Rfb2ZmIC0gMSkgLSAoc2NoZW1lX2xlbiArIDMpOworCQkJfSBlbHNlIHsKKwkJCQl1c2VyX2xlbiA9IG5vcm0ubGVuIC0gKHNjaGVtZV9sZW4gKyAzKTsKKwkJCX0KKwkJfQorCQlzdHJidWZfYWRkY2goJm5vcm0sICdAJyk7CisJCXVybF9sZW4gLT0gKCsrYXRfcHRyIC0gdXJsKTsKKwkJdXJsID0gYXRfcHRyOworCX0KKworCisJLyoKKwkgKiBDb3B5IHRoZSBob3N0IHBhcnQgZXhjbHVkaW5nIGFueSBwb3J0IHBhcnQsIG5vICUtZXNjYXBlcyBhbGxvd2VkCisJICovCisJaWYgKCF1cmxfbGVuIHx8IHN0cmNocigiOi8/IyIsICp1cmwpKSB7CisJCS8qIE1pc3NpbmcgaG9zdCBpbnZhbGlkIGZvciBhbGwgVVJMIHNjaGVtZXMgZXhjZXB0IGZpbGUgKi8KKwkJaWYgKHN0cm5jbXAobm9ybS5idWYsICJmaWxlOiIsIDUpKSB7CisJCQlpZiAob3V0X2luZm8pIHsKKwkJCQlvdXRfaW5mby0+dXJsID0gTlVMTDsKKwkJCQlvdXRfaW5mby0+ZXJyID0gXygibWlzc2luZyBob3N0IGFuZCBzY2hlbWUgaXMgbm90ICdmaWxlOiciKTsKKwkJCX0KKwkJCXN0cmJ1Zl9yZWxlYXNlKCZub3JtKTsKKwkJCXJldHVybiBOVUxMOworCQl9CisJfSBlbHNlIHsKKwkJaG9zdF9vZmYgPSBub3JtLmxlbjsKKwl9CisJY29sb25fcHRyID0gc2xhc2hfcHRyIC0gMTsKKwl3aGlsZSAoY29sb25fcHRyID4gdXJsICYmICpjb2xvbl9wdHIgIT0gJzonICYmICpjb2xvbl9wdHIgIT0gJ10nKQorCQljb2xvbl9wdHItLTsKKwlpZiAoKmNvbG9uX3B0ciAhPSAnOicpIHsKKwkJY29sb25fcHRyID0gc2xhc2hfcHRyOworCX0gZWxzZSBpZiAoIWhvc3Rfb2ZmICYmIGNvbG9uX3B0ciA8IHNsYXNoX3B0ciAmJiBjb2xvbl9wdHIgKyAxICE9IHNsYXNoX3B0cikgeworCQkvKiBmaWxlOiBVUkxzIG1heSBub3QgaGF2ZSBhIHBvcnQgbnVtYmVyICovCisJCWlmIChvdXRfaW5mbykgeworCQkJb3V0X2luZm8tPnVybCA9IE5VTEw7CisJCQlvdXRfaW5mby0+ZXJyID0gXygiYSAnZmlsZTonIFVSTCBtYXkgbm90IGhhdmUgYSBwb3J0IG51bWJlciIpOworCQl9CisJCXN0cmJ1Zl9yZWxlYXNlKCZub3JtKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCXNwYW5uZWQgPSBzdHJzcG4odXJsLCBVUkxfSE9TVF9DSEFSUyk7CisJaWYgKHNwYW5uZWQgPCBjb2xvbl9wdHIgLSB1cmwpIHsKKwkJLyogSG9zdCBuYW1lIGhhcyBpbnZhbGlkIGNoYXJhY3RlcnMgKi8KKwkJaWYgKG91dF9pbmZvKSB7CisJCQlvdXRfaW5mby0+dXJsID0gTlVMTDsKKwkJCW91dF9pbmZvLT5lcnIgPSBfKCJpbnZhbGlkIGNoYXJhY3RlcnMgaW4gaG9zdCBuYW1lIik7CisJCX0KKwkJc3RyYnVmX3JlbGVhc2UoJm5vcm0pOworCQlyZXR1cm4gTlVMTDsKKwl9CisJd2hpbGUgKHVybCA8IGNvbG9uX3B0cikgeworCQlzdHJidWZfYWRkY2goJm5vcm0sIHRvbG93ZXIoKnVybCsrKSk7CisJCXVybF9sZW4tLTsKKwl9CisKKworCS8qCisJICogQ2hlY2sgdGhlIHBvcnQgcGFydCBhbmQgY29weSBpZiBub3QgdGhlIGRlZmF1bHQgKGFmdGVyIHJlbW92aW5nIGFueQorCSAqIGxlYWRpbmcgMHMpOyBubyAlLWVzY2FwZXMgYWxsb3dlZAorCSAqLworCWlmIChjb2xvbl9wdHIgPCBzbGFzaF9wdHIpIHsKKwkJLyogc2tpcCB0aGUgJzonIGFuZCBsZWFkaW5nIDBzIGJ1dCBub3QgdGhlIGxhc3Qgb25lIGlmIGFsbCAwcyAqLworCQl1cmwrKzsKKwkJdXJsICs9IHN0cnNwbih1cmwsICIwIik7CisJCWlmICh1cmwgPT0gc2xhc2hfcHRyICYmIHVybFstMV0gPT0gJzAnKQorCQkJdXJsLS07CisJCWlmICh1cmwgPT0gc2xhc2hfcHRyKSB7CisJCQkvKiBTa2lwICI6IiBwb3J0IHdpdGggbm8gbnVtYmVyLCBpdCdzIHNhbWUgYXMgZGVmYXVsdCAqLworCQl9IGVsc2UgaWYgKHNsYXNoX3B0ciAtIHVybCA9PSAyICYmCisJCQkgICAhc3RybmNtcChub3JtLmJ1ZiwgImh0dHA6IiwgNSkgJiYKKwkJCSAgICFzdHJuY21wKHVybCwgIjgwIiwgMikpIHsKKwkJCS8qIFNraXAgaHR0cCA6ODAgYXMgaXQncyB0aGUgZGVmYXVsdCAqLworCQl9IGVsc2UgaWYgKHNsYXNoX3B0ciAtIHVybCA9PSAzICYmCisJCQkgICAhc3RybmNtcChub3JtLmJ1ZiwgImh0dHBzOiIsIDYpICYmCisJCQkgICAhc3RybmNtcCh1cmwsICI0NDMiLCAzKSkgeworCQkJLyogU2tpcCBodHRwcyA6NDQzIGFzIGl0J3MgdGhlIGRlZmF1bHQgKi8KKwkJfSBlbHNlIHsKKwkJCS8qCisJCQkgKiBQb3J0IG51bWJlciBtdXN0IGJlIGFsbCBkaWdpdHMgd2l0aCBsZWFkaW5nIDBzIHJlbW92ZWQKKwkJCSAqIGFuZCBzaW5jZSBhbGwgdGhlIHByb3RvY29scyB3ZSBkZWFsIHdpdGggaGF2ZSBhIDE2LWJpdAorCQkJICogcG9ydCBudW1iZXIgaXQgbXVzdCBhbHNvIGJlIGluIHRoZSByYW5nZSAxLi42NTUzNQorCQkJICogMCBpcyBub3QgYWxsb3dlZCBiZWNhdXNlIHRoYXQgbWVhbnMgIm5leHQgYXZhaWxhYmxlIgorCQkJICogb24ganVzdCBhYm91dCBldmVyeSBzeXN0ZW0gYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgdXNlZAorCQkJICovCisJCQl1bnNpZ25lZCBsb25nIHBudW0gPSAwOworCQkJc3Bhbm5lZCA9IHN0cnNwbih1cmwsIFVSTF9ESUdJVCk7CisJCQlpZiAoc3Bhbm5lZCA8IHNsYXNoX3B0ciAtIHVybCkgeworCQkJCS8qIHBvcnQgbnVtYmVyIGhhcyBpbnZhbGlkIGNoYXJhY3RlcnMgKi8KKwkJCQlpZiAob3V0X2luZm8pIHsKKwkJCQkJb3V0X2luZm8tPnVybCA9IE5VTEw7CisJCQkJCW91dF9pbmZvLT5lcnIgPSBfKCJpbnZhbGlkIHBvcnQgbnVtYmVyIik7CisJCQkJfQorCQkJCXN0cmJ1Zl9yZWxlYXNlKCZub3JtKTsKKwkJCQlyZXR1cm4gTlVMTDsKKwkJCX0KKwkJCWlmIChzbGFzaF9wdHIgLSB1cmwgPD0gNSkKKwkJCQlwbnVtID0gc3RydG91bCh1cmwsIE5VTEwsIDEwKTsKKwkJCWlmIChwbnVtID09IDAgfHwgcG51bSA+IDY1NTM1KSB7CisJCQkJLyogcG9ydCBudW1iZXIgbm90IGluIHJhbmdlIDEuLjY1NTM1ICovCisJCQkJaWYgKG91dF9pbmZvKSB7CisJCQkJCW91dF9pbmZvLT51cmwgPSBOVUxMOworCQkJCQlvdXRfaW5mby0+ZXJyID0gXygiaW52YWxpZCBwb3J0IG51bWJlciIpOworCQkJCX0KKwkJCQlzdHJidWZfcmVsZWFzZSgmbm9ybSk7CisJCQkJcmV0dXJuIE5VTEw7CisJCQl9CisJCQlzdHJidWZfYWRkY2goJm5vcm0sICc6Jyk7CisJCQlzdHJidWZfYWRkKCZub3JtLCB1cmwsIHNsYXNoX3B0ciAtIHVybCk7CisJCQlwb3J0X2xlbiA9IHNsYXNoX3B0ciAtIHVybDsKKwkJfQorCQl1cmxfbGVuIC09IHNsYXNoX3B0ciAtIGNvbG9uX3B0cjsKKwkJdXJsID0gc2xhc2hfcHRyOworCX0KKwlpZiAoaG9zdF9vZmYpCisJCWhvc3RfbGVuID0gbm9ybS5sZW4gLSBob3N0X29mZjsKKworCisJLyoKKwkgKiBOb3cgY29weSB0aGUgcGF0aCByZXNvbHZpbmcgYW55IC4gYW5kIC4uIHNlZ21lbnRzIGJlaW5nIGNhcmVmdWwgbm90CisJICogdG8gY29ycnVwdCB0aGUgVVJMIGJ5IHVuZXNjYXBpbmcgYW55IGRlbGltaXRlcnMsIGJ1dCBkbyBhZGQgYW4KKwkgKiBpbml0aWFsICcvJyBpZiBpdCdzIG1pc3NpbmcgYW5kIGRvIG5vcm1hbGl6ZSBhbnkgJS1lc2NhcGUgc2VxdWVuY2VzLgorCSAqLworCXBhdGhfb2ZmID0gbm9ybS5sZW47CisJcGF0aF9zdGFydCA9IG5vcm0uYnVmICsgcGF0aF9vZmY7CisJc3RyYnVmX2FkZGNoKCZub3JtLCAnLycpOworCWlmICgqdXJsID09ICcvJykgeworCQl1cmwrKzsKKwkJdXJsX2xlbi0tOworCX0KKwlmb3IgKDs7KSB7CisJCWNvbnN0IGNoYXIgKnNlZ19zdGFydDsKKwkJc2l6ZV90IHNlZ19zdGFydF9vZmYgPSBub3JtLmxlbjsKKwkJY29uc3QgY2hhciAqbmV4dF9zbGFzaCA9IHVybCArIHN0cmNzcG4odXJsLCAiLz8jIik7CisJCWludCBza2lwX2FkZF9zbGFzaCA9IDA7CisKKwkJLyoKKwkJICogUkZDIDM2ODkgaW5kaWNhdGVzIHRoYXQgYW55IC4gb3IgLi4gc2VnbWVudHMgc2hvdWxkIGJlCisJCSAqIHVuZXNjYXBlZCBiZWZvcmUgYmVpbmcgY2hlY2tlZCBmb3IuCisJCSAqLworCQlpZiAoIWFwcGVuZF9ub3JtYWxpemVkX2VzY2FwZXMoJm5vcm0sIHVybCwgbmV4dF9zbGFzaCAtIHVybCwgIiIsCisJCQkJCSAgICAgICBVUkxfUkVTRVJWRUQpKSB7CisJCQlpZiAob3V0X2luZm8pIHsKKwkJCQlvdXRfaW5mby0+dXJsID0gTlVMTDsKKwkJCQlvdXRfaW5mby0+ZXJyID0gXygiaW52YWxpZCAlWFggZXNjYXBlIHNlcXVlbmNlIik7CisJCQl9CisJCQlzdHJidWZfcmVsZWFzZSgmbm9ybSk7CisJCQlyZXR1cm4gTlVMTDsKKwkJfQorCisJCXNlZ19zdGFydCA9IG5vcm0uYnVmICsgc2VnX3N0YXJ0X29mZjsKKwkJaWYgKCFzdHJjbXAoc2VnX3N0YXJ0LCAiLiIpKSB7CisJCQkvKiBpZ25vcmUgYSAuIHNlZ21lbnQ7IGJlIGNhcmVmdWwgbm90IHRvIHJlbW92ZSBpbml0aWFsICcvJyAqLworCQkJaWYgKHNlZ19zdGFydCA9PSBwYXRoX3N0YXJ0ICsgMSkgeworCQkJCXN0cmJ1Zl9zZXRsZW4oJm5vcm0sIG5vcm0ubGVuIC0gMSk7CisJCQkJc2tpcF9hZGRfc2xhc2ggPSAxOworCQkJfSBlbHNlIHsKKwkJCQlzdHJidWZfc2V0bGVuKCZub3JtLCBub3JtLmxlbiAtIDIpOworCQkJfQorCQl9IGVsc2UgaWYgKCFzdHJjbXAoc2VnX3N0YXJ0LCAiLi4iKSkgeworCQkJLyoKKwkJCSAqIGlnbm9yZSBhIC4uIHNlZ21lbnQgYW5kIHJlbW92ZSB0aGUgcHJldmlvdXMgc2VnbWVudDsKKwkJCSAqIGJlIGNhcmVmdWwgbm90IHRvIHJlbW92ZSBpbml0aWFsICcvJyBmcm9tIHBhdGgKKwkJCSAqLworCQkJY29uc3QgY2hhciAqcHJldl9zbGFzaCA9IG5vcm0uYnVmICsgbm9ybS5sZW4gLSAzOworCQkJaWYgKHByZXZfc2xhc2ggPT0gcGF0aF9zdGFydCkgeworCQkJCS8qIGludmFsaWQgLi4gYmVjYXVzZSBubyBwcmV2aW91cyBzZWdtZW50IHRvIHJlbW92ZSAqLworCQkJCWlmIChvdXRfaW5mbykgeworCQkJCQlvdXRfaW5mby0+dXJsID0gTlVMTDsKKwkJCQkJb3V0X2luZm8tPmVyciA9IF8oImludmFsaWQgJy4uJyBwYXRoIHNlZ21lbnQiKTsKKwkJCQl9CisJCQkJc3RyYnVmX3JlbGVhc2UoJm5vcm0pOworCQkJCXJldHVybiBOVUxMOworCQkJfQorCQkJd2hpbGUgKCotLXByZXZfc2xhc2ggIT0gJy8nKSB7fQorCQkJaWYgKHByZXZfc2xhc2ggPT0gcGF0aF9zdGFydCkgeworCQkJCXN0cmJ1Zl9zZXRsZW4oJm5vcm0sIHByZXZfc2xhc2ggLSBub3JtLmJ1ZiArIDEpOworCQkJCXNraXBfYWRkX3NsYXNoID0gMTsKKwkJCX0gZWxzZSB7CisJCQkJc3RyYnVmX3NldGxlbigmbm9ybSwgcHJldl9zbGFzaCAtIG5vcm0uYnVmKTsKKwkJCX0KKwkJfQorCQl1cmxfbGVuIC09IG5leHRfc2xhc2ggLSB1cmw7CisJCXVybCA9IG5leHRfc2xhc2g7CisJCS8qIGlmIHRoZSBuZXh0IGNoYXIgaXMgbm90ICcvJyBkb25lIHdpdGggdGhlIHBhdGggKi8KKwkJaWYgKCp1cmwgIT0gJy8nKQorCQkJYnJlYWs7CisJCXVybCsrOworCQl1cmxfbGVuLS07CisJCWlmICghc2tpcF9hZGRfc2xhc2gpCisJCQlzdHJidWZfYWRkY2goJm5vcm0sICcvJyk7CisJfQorCXBhdGhfbGVuID0gbm9ybS5sZW4gLSBwYXRoX29mZjsKKworCisJLyoKKwkgKiBOb3cgc2ltcGx5IGNvcHkgdGhlIHJlc3QsIGlmIGFueSwgb25seSBub3JtYWxpemluZyAlLWVzY2FwZXMgYW5kCisJICogYmVpbmcgY2FyZWZ1bCBub3QgdG8gY29ycnVwdCB0aGUgVVJMIGJ5IHVuZXNjYXBpbmcgYW55IGRlbGltaXRlcnMuCisJICovCisJaWYgKCp1cmwpIHsKKwkJaWYgKCFhcHBlbmRfbm9ybWFsaXplZF9lc2NhcGVzKCZub3JtLCB1cmwsIHVybF9sZW4sICIiLCBVUkxfUkVTRVJWRUQpKSB7CisJCQlpZiAob3V0X2luZm8pIHsKKwkJCQlvdXRfaW5mby0+dXJsID0gTlVMTDsKKwkJCQlvdXRfaW5mby0+ZXJyID0gXygiaW52YWxpZCAlWFggZXNjYXBlIHNlcXVlbmNlIik7CisJCQl9CisJCQlzdHJidWZfcmVsZWFzZSgmbm9ybSk7CisJCQlyZXR1cm4gTlVMTDsKKwkJfQorCX0KKworCisJcmVzdWx0ID0gc3RyYnVmX2RldGFjaCgmbm9ybSwgJnJlc3VsdF9sZW4pOworCWlmIChvdXRfaW5mbykgeworCQlvdXRfaW5mby0+dXJsID0gcmVzdWx0OworCQlvdXRfaW5mby0+ZXJyID0gTlVMTDsKKwkJb3V0X2luZm8tPnVybF9sZW4gPSByZXN1bHRfbGVuOworCQlvdXRfaW5mby0+c2NoZW1lX2xlbiA9IHNjaGVtZV9sZW47CisJCW91dF9pbmZvLT51c2VyX29mZiA9IHVzZXJfb2ZmOworCQlvdXRfaW5mby0+dXNlcl9sZW4gPSB1c2VyX2xlbjsKKwkJb3V0X2luZm8tPnBhc3N3ZF9vZmYgPSBwYXNzd2Rfb2ZmOworCQlvdXRfaW5mby0+cGFzc3dkX2xlbiA9IHBhc3N3ZF9sZW47CisJCW91dF9pbmZvLT5ob3N0X29mZiA9IGhvc3Rfb2ZmOworCQlvdXRfaW5mby0+aG9zdF9sZW4gPSBob3N0X2xlbjsKKwkJb3V0X2luZm8tPnBvcnRfbGVuID0gcG9ydF9sZW47CisJCW91dF9pbmZvLT5wYXRoX29mZiA9IHBhdGhfb2ZmOworCQlvdXRfaW5mby0+cGF0aF9sZW4gPSBwYXRoX2xlbjsKKwl9CisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIHNpemVfdCB1cmxfbWF0Y2hfcHJlZml4KGNvbnN0IGNoYXIgKnVybCwKKwkJCSAgICAgICBjb25zdCBjaGFyICp1cmxfcHJlZml4LAorCQkJICAgICAgIHNpemVfdCB1cmxfcHJlZml4X2xlbikKK3sKKwkvKgorCSAqIHVybF9wcmVmaXggbWF0Y2hlcyB1cmwgaWYgdXJsX3ByZWZpeCBpcyBhbiBleGFjdCBtYXRjaCBmb3IgdXJsIG9yIGl0CisJICogaXMgYSBwcmVmaXggb2YgdXJsIGFuZCB0aGUgbWF0Y2ggZW5kcyBvbiBhIHBhdGggY29tcG9uZW50IGJvdW5kYXJ5LgorCSAqIEJvdGggdXJsIGFuZCB1cmxfcHJlZml4IGFyZSBjb25zaWRlcmVkIHRvIGhhdmUgYW4gaW1wbGljaXQgJy8nIG9uIHRoZQorCSAqIGVuZCBmb3IgbWF0Y2hpbmcgcHVycG9zZXMgaWYgdGhleSBkbyBub3QgYWxyZWFkeS4KKwkgKgorCSAqIHVybCBtdXN0IGJlIE5VTCB0ZXJtaW5hdGVkLiAgdXJsX3ByZWZpeF9sZW4gaXMgdGhlIGxlbmd0aCBvZgorCSAqIHVybF9wcmVmaXggd2hpY2ggbmVlZCBub3QgYmUgTlVMIHRlcm1pbmF0ZWQuCisJICoKKwkgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIHRoZSBsZW5ndGggb2YgdGhlIG1hdGNoIGluIGNoYXJhY3RlcnMgKGluY2x1ZGluZworCSAqIHRoZSBmaW5hbCAnLycgZXZlbiBpZiBpdCdzIGltcGxpY2l0KSBvciAwIGZvciBubyBtYXRjaC4KKwkgKgorCSAqIFBhc3NpbmcgTlVMTCBhcyB1cmwgYW5kL29yIHVybF9wcmVmaXggd2lsbCBhbHdheXMgY2F1c2UgMCB0byBiZQorCSAqIHJldHVybmVkIHdpdGhvdXQgY2F1c2luZyBhbnkgZmF1bHRzLgorCSAqLworCWlmICghdXJsIHx8ICF1cmxfcHJlZml4KQorCQlyZXR1cm4gMDsKKwlpZiAoIXVybF9wcmVmaXhfbGVuIHx8ICh1cmxfcHJlZml4X2xlbiA9PSAxICYmICp1cmxfcHJlZml4ID09ICcvJykpCisJCXJldHVybiAoISp1cmwgfHwgKnVybCA9PSAnLycpID8gMSA6IDA7CisJaWYgKHVybF9wcmVmaXhbdXJsX3ByZWZpeF9sZW4gLSAxXSA9PSAnLycpCisJCXVybF9wcmVmaXhfbGVuLS07CisJaWYgKHN0cm5jbXAodXJsLCB1cmxfcHJlZml4LCB1cmxfcHJlZml4X2xlbikpCisJCXJldHVybiAwOworCWlmICgoc3RybGVuKHVybCkgPT0gdXJsX3ByZWZpeF9sZW4pIHx8ICh1cmxbdXJsX3ByZWZpeF9sZW5dID09ICcvJykpCisJCXJldHVybiB1cmxfcHJlZml4X2xlbiArIDE7CisJcmV0dXJuIDA7Cit9CisKK2ludCBtYXRjaF91cmxzKGNvbnN0IHN0cnVjdCB1cmxfaW5mbyAqdXJsLAorCSAgICAgICBjb25zdCBzdHJ1Y3QgdXJsX2luZm8gKnVybF9wcmVmaXgsCisJICAgICAgIGludCAqZXhhY3R1c2VybWF0Y2gpCit7CisJLyoKKwkgKiB1cmxfcHJlZml4IG1hdGNoZXMgdXJsIGlmIHRoZSBzY2hlbWUsIGhvc3QgYW5kIHBvcnQgb2YgdXJsX3ByZWZpeAorCSAqIGFyZSB0aGUgc2FtZSBhcyB0aG9zZSBvZiB1cmwgYW5kIHRoZSBwYXRoIHBvcnRpb24gb2YgdXJsX3ByZWZpeAorCSAqIGlzIHRoZSBzYW1lIGFzIHRoZSBwYXRoIHBvcnRpb24gb2YgdXJsIG9yIGl0IGlzIGEgcHJlZml4IHRoYXQKKwkgKiBtYXRjaGVzIGF0IGEgJy8nIGJvdW5kYXJ5LiAgSWYgdXJsX3ByZWZpeCBjb250YWlucyBhIHVzZXIgbmFtZSwKKwkgKiB0aGF0IG11c3QgYWxzbyBleGFjdGx5IG1hdGNoIHRoZSB1c2VyIG5hbWUgaW4gdXJsLgorCSAqCisJICogSWYgdGhlIHVzZXIsIGhvc3QsIHBvcnQgYW5kIHBhdGggbWF0Y2ggaW4gdGhpcyBmYXNoaW9uLCB0aGUgcmV0dXJuZWQKKwkgKiB2YWx1ZSBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBwYXRoIG1hdGNoIGluY2x1ZGluZyBhbnkgaW1wbGljaXQKKwkgKiBmaW5hbCAnLycuICBGb3IgZXhhbXBsZSwgImh0dHA6Ly9tZUBleGFtcGxlLmNvbS9wYXRoIiBpcyBtYXRjaGVkIGJ5CisJICogImh0dHA6Ly9leGFtcGxlLmNvbSIgd2l0aCBhIHBhdGggbGVuZ3RoIG9mIDEuCisJICoKKwkgKiBJZiB0aGVyZSBpcyBhIG1hdGNoIGFuZCBleGFjdHVzZXJtYXRjaCBpcyBub3QgTlVMTCwgdGhlbgorCSAqICpleGFjdHVzZXJtYXRjaCB3aWxsIGJlIHNldCB0byB0cnVlIGlmIGJvdGggdXJsIGFuZCB1cmxfcHJlZml4CisJICogY29udGFpbmVkIGEgdXNlciBuYW1lIG9yIGZhbHNlIGlmIHVybF9wcmVmaXggZGlkIG5vdCBoYXZlIGEKKwkgKiB1c2VyIG5hbWUuICBJZiB0aGVyZSBpcyBubyBtYXRjaCAqZXhhY3R1c2VybWF0Y2ggaXMgbGVmdCB1bnRvdWNoZWQuCisJICovCisJaW50IHVzZXJtYXRjaGVkID0gMDsKKwlpbnQgcGF0aG1hdGNobGVuOworCisJaWYgKCF1cmwgfHwgIXVybF9wcmVmaXggfHwgIXVybC0+dXJsIHx8ICF1cmxfcHJlZml4LT51cmwpCisJCXJldHVybiAwOworCisJLyogY2hlY2sgdGhlIHNjaGVtZSAqLworCWlmICh1cmxfcHJlZml4LT5zY2hlbWVfbGVuICE9IHVybC0+c2NoZW1lX2xlbiB8fAorCSAgICBzdHJuY21wKHVybC0+dXJsLCB1cmxfcHJlZml4LT51cmwsIHVybC0+c2NoZW1lX2xlbikpCisJCXJldHVybiAwOyAvKiBzY2hlbWVzIGRvIG5vdCBtYXRjaCAqLworCisJLyogY2hlY2sgdGhlIHVzZXIgbmFtZSBpZiB1cmxfcHJlZml4IGhhcyBvbmUgKi8KKwlpZiAodXJsX3ByZWZpeC0+dXNlcl9vZmYpIHsKKwkJaWYgKCF1cmwtPnVzZXJfb2ZmIHx8IHVybC0+dXNlcl9sZW4gIT0gdXJsX3ByZWZpeC0+dXNlcl9sZW4gfHwKKwkJICAgIHN0cm5jbXAodXJsLT51cmwgKyB1cmwtPnVzZXJfb2ZmLAorCQkJICAgIHVybF9wcmVmaXgtPnVybCArIHVybF9wcmVmaXgtPnVzZXJfb2ZmLAorCQkJICAgIHVybC0+dXNlcl9sZW4pKQorCQkJcmV0dXJuIDA7IC8qIHVybF9wcmVmaXggaGFzIGEgdXNlciBidXQgaXQncyBub3QgYSBtYXRjaCAqLworCQl1c2VybWF0Y2hlZCA9IDE7CisJfQorCisJLyogY2hlY2sgdGhlIGhvc3QgYW5kIHBvcnQgKi8KKwlpZiAodXJsX3ByZWZpeC0+aG9zdF9sZW4gIT0gdXJsLT5ob3N0X2xlbiB8fAorCSAgICBzdHJuY21wKHVybC0+dXJsICsgdXJsLT5ob3N0X29mZiwKKwkJICAgIHVybF9wcmVmaXgtPnVybCArIHVybF9wcmVmaXgtPmhvc3Rfb2ZmLCB1cmwtPmhvc3RfbGVuKSkKKwkJcmV0dXJuIDA7IC8qIGhvc3QgbmFtZXMgYW5kL29yIHBvcnRzIGRvIG5vdCBtYXRjaCAqLworCisJLyogY2hlY2sgdGhlIHBhdGggKi8KKwlwYXRobWF0Y2hsZW4gPSB1cmxfbWF0Y2hfcHJlZml4KAorCQl1cmwtPnVybCArIHVybC0+cGF0aF9vZmYsCisJCXVybF9wcmVmaXgtPnVybCArIHVybF9wcmVmaXgtPnBhdGhfb2ZmLAorCQl1cmxfcHJlZml4LT51cmxfbGVuIC0gdXJsX3ByZWZpeC0+cGF0aF9vZmYpOworCisJaWYgKHBhdGhtYXRjaGxlbiAmJiBleGFjdHVzZXJtYXRjaCkKKwkJKmV4YWN0dXNlcm1hdGNoID0gdXNlcm1hdGNoZWQ7CisJcmV0dXJuIHBhdGhtYXRjaGxlbjsKK30KKworaW50IHVybG1hdGNoX2NvbmZpZ19lbnRyeShjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpjYikKK3sKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbTsKKwlzdHJ1Y3QgdXJsbWF0Y2hfY29uZmlnICpjb2xsZWN0ID0gY2I7CisJc3RydWN0IHVybG1hdGNoX2l0ZW0gKm1hdGNoZWQ7CisJc3RydWN0IHVybF9pbmZvICp1cmwgPSAmY29sbGVjdC0+dXJsOworCWNvbnN0IGNoYXIgKmtleSwgKmRvdDsKKwlzdHJ1Y3Qgc3RyYnVmIHN5bnRoa2V5ID0gU1RSQlVGX0lOSVQ7CisJc2l6ZV90IG1hdGNoZWRfbGVuID0gMDsKKwlpbnQgdXNlcl9tYXRjaGVkID0gMDsKKwlpbnQgcmV0dmFsOworCisJa2V5ID0gc2tpcF9wcmVmaXgodmFyLCBjb2xsZWN0LT5zZWN0aW9uKTsKKwlpZiAoIWtleSB8fCAqKGtleSsrKSAhPSAnLicpIHsKKwkJaWYgKGNvbGxlY3QtPmNhc2NhZGVfZm4pCisJCQlyZXR1cm4gY29sbGVjdC0+Y2FzY2FkZV9mbih2YXIsIHZhbHVlLCBjYik7CisJCXJldHVybiAwOyAvKiBub3QgaW50ZXJlc3RlZCAqLworCX0KKwlkb3QgPSBzdHJyY2hyKGtleSwgJy4nKTsKKwlpZiAoZG90KSB7CisJCWNoYXIgKmNvbmZpZ191cmwsICpub3JtX3VybDsKKwkJc3RydWN0IHVybF9pbmZvIG5vcm1faW5mbzsKKworCQljb25maWdfdXJsID0geG1lbWR1cHooa2V5LCBkb3QgLSBrZXkpOworCQlub3JtX3VybCA9IHVybF9ub3JtYWxpemUoY29uZmlnX3VybCwgJm5vcm1faW5mbyk7CisJCWZyZWUoY29uZmlnX3VybCk7CisJCWlmICghbm9ybV91cmwpCisJCQlyZXR1cm4gMDsKKwkJbWF0Y2hlZF9sZW4gPSBtYXRjaF91cmxzKHVybCwgJm5vcm1faW5mbywgJnVzZXJfbWF0Y2hlZCk7CisJCWZyZWUobm9ybV91cmwpOworCQlpZiAoIW1hdGNoZWRfbGVuKQorCQkJcmV0dXJuIDA7CisJCWtleSA9IGRvdCArIDE7CisJfQorCisJaWYgKGNvbGxlY3QtPmtleSAmJiBzdHJjbXAoa2V5LCBjb2xsZWN0LT5rZXkpKQorCQlyZXR1cm4gMDsKKworCWl0ZW0gPSBzdHJpbmdfbGlzdF9pbnNlcnQoJmNvbGxlY3QtPnZhcnMsIGtleSk7CisJaWYgKCFpdGVtLT51dGlsKSB7CisJCW1hdGNoZWQgPSB4Y2FsbG9jKDEsIHNpemVvZigqbWF0Y2hlZCkpOworCQlpdGVtLT51dGlsID0gbWF0Y2hlZDsKKwl9IGVsc2UgeworCQltYXRjaGVkID0gaXRlbS0+dXRpbDsKKwkJLyoKKwkJICogSXMgb3VyIG1hdGNoIHNob3J0ZXI/ICBJcyBvdXIgbWF0Y2ggdGhlIHNhbWUKKwkJICogbGVuZ3RoLCBhbmQgd2l0aG91dCB1c2VyIHdoaWxlIHRoZSBjdXJyZW50CisJCSAqIGNhbmRpZGF0ZSBpcyB3aXRoIHVzZXI/ICBUaGVuIHdlIGNhbm5vdCB1c2UgaXQuCisJCSAqLworCQlpZiAobWF0Y2hlZF9sZW4gPCBtYXRjaGVkLT5tYXRjaGVkX2xlbiB8fAorCQkgICAgKChtYXRjaGVkX2xlbiA9PSBtYXRjaGVkLT5tYXRjaGVkX2xlbikgJiYKKwkJICAgICAoIXVzZXJfbWF0Y2hlZCAmJiBtYXRjaGVkLT51c2VyX21hdGNoZWQpKSkKKwkJCXJldHVybiAwOworCQkvKiBPdGhlcndpc2UsIHJlcGxhY2UgaXQgd2l0aCB0aGlzIG9uZS4gKi8KKwl9CisKKwltYXRjaGVkLT5tYXRjaGVkX2xlbiA9IG1hdGNoZWRfbGVuOworCW1hdGNoZWQtPnVzZXJfbWF0Y2hlZCA9IHVzZXJfbWF0Y2hlZDsKKwlzdHJidWZfYWRkc3RyKCZzeW50aGtleSwgY29sbGVjdC0+c2VjdGlvbik7CisJc3RyYnVmX2FkZGNoKCZzeW50aGtleSwgJy4nKTsKKwlzdHJidWZfYWRkc3RyKCZzeW50aGtleSwga2V5KTsKKwlyZXR2YWwgPSBjb2xsZWN0LT5jb2xsZWN0X2ZuKHN5bnRoa2V5LmJ1ZiwgdmFsdWUsIGNvbGxlY3QtPmNiKTsKKworCXN0cmJ1Zl9yZWxlYXNlKCZzeW50aGtleSk7CisJcmV0dXJuIHJldHZhbDsKK30KZGlmZiAtLWdpdCBhL3VybG1hdGNoLmggYi91cmxtYXRjaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NjFkZmQKLS0tIC9kZXYvbnVsbAorKysgYi91cmxtYXRjaC5oCkBAIC0wLDAgKzEsNTQgQEAKKyNpZm5kZWYgVVJMX01BVENIX0gKKyNpbmNsdWRlICJzdHJpbmctbGlzdC5oIgorCitzdHJ1Y3QgdXJsX2luZm8geworCS8qIG5vcm1hbGl6ZWQgdXJsIG9uIHN1Y2Nlc3MsIG11c3QgYmUgZnJlZWQsIG90aGVyd2lzZSBOVUxMICovCisJY2hhciAqdXJsOworCS8qIGlmICF1cmwsIGEgYnJpZWYgcmVhc29uIGZvciB0aGUgZmFpbHVyZSwgb3RoZXJ3aXNlIE5VTEwgKi8KKwljb25zdCBjaGFyICplcnI7CisKKwkvKiB0aGUgcmVzdCBvZiB0aGUgZmllbGRzIGFyZSBvbmx5IHNldCBpZiB1cmwgIT0gTlVMTCAqLworCisJc2l6ZV90IHVybF9sZW47CQkvKiB0b3RhbCBsZW5ndGggb2YgdXJsICh3aGljaCBpcyBub3cgbm9ybWFsaXplZCkgKi8KKwlzaXplX3Qgc2NoZW1lX2xlbjsJLyogbGVuZ3RoIG9mIHNjaGVtZSBuYW1lIChleGNsdWRpbmcgZmluYWwgOikgKi8KKwlzaXplX3QgdXNlcl9vZmY7CS8qIG9mZnNldCBpbnRvIHVybCB0byBzdGFydCBvZiB1c2VyIG5hbWUgKDAgPT4gbm9uZSkgKi8KKwlzaXplX3QgdXNlcl9sZW47CS8qIGxlbmd0aCBvZiB1c2VyIG5hbWU7IGlmIHVzZXJfb2ZmICE9IDAgYnV0CisJCQkJICAgdXNlcl9sZW4gPT0gMCwgYW4gZW1wdHkgdXNlciBuYW1lIHdhcyBnaXZlbiAqLworCXNpemVfdCBwYXNzd2Rfb2ZmOwkvKiBvZmZzZXQgaW50byB1cmwgdG8gc3RhcnQgb2YgcGFzc3dkICgwID0+IG5vbmUpICovCisJc2l6ZV90IHBhc3N3ZF9sZW47CS8qIGxlbmd0aCBvZiBwYXNzd2Q7IGlmIHBhc3N3ZF9vZmYgIT0gMCBidXQKKwkJCQkgICBwYXNzd2RfbGVuID09IDAsIGFuIGVtcHR5IHBhc3N3ZCB3YXMgZ2l2ZW4gKi8KKwlzaXplX3QgaG9zdF9vZmY7CS8qIG9mZnNldCBpbnRvIHVybCB0byBzdGFydCBvZiBob3N0IG5hbWUgKDAgPT4gbm9uZSkgKi8KKwlzaXplX3QgaG9zdF9sZW47CS8qIGxlbmd0aCBvZiBob3N0IG5hbWU7IHRoaXMgSU5DTFVERVMgYW55ICc6cG9ydG51bSc7CisJCQkJICogZmlsZSB1cmxzIG1heSBoYXZlIGhvc3RfbGVuID09IDAgKi8KKwlzaXplX3QgcG9ydF9sZW47CS8qIGlmIGEgcG9ydG51bSBpcyBwcmVzZW50IChwb3J0X2xlbiAhPSAwKSwgaXQgaGFzCisJCQkJICogdGhpcyBsZW5ndGggKGV4Y2x1ZGluZyB0aGUgbGVhZGluZyAnOicpIGF0IHRoZQorCQkJCSAqIGVuZCBvZiB0aGUgaG9zdCBuYW1lIChhbHdheXMgMCBmb3IgZmlsZSB1cmxzKSAqLworCXNpemVfdCBwYXRoX29mZjsJLyogb2Zmc2V0IGludG8gdXJsIHRvIHRoZSBzdGFydCBvZiB0aGUgdXJsIHBhdGg7CisJCQkJICogdGhpcyB3aWxsIGFsd2F5cyBwb2ludCB0byBhICcvJyBjaGFyYWN0ZXIKKwkJCQkgKiBhZnRlciB0aGUgdXJsIGhhcyBiZWVuIG5vcm1hbGl6ZWQgKi8KKwlzaXplX3QgcGF0aF9sZW47CS8qIGxlbmd0aCBvZiBwYXRoIHBvcnRpb24gZXhjbHVkaW5nIGFueSB0cmFpbGluZworCQkJCSAqICc/Li4uJyBhbmQgJyMuLi4nIHBvcnRpb247IHdpbGwgYWx3YXlzIGJlID49IDEgKi8KK307CisKK2V4dGVybiBjaGFyICp1cmxfbm9ybWFsaXplKGNvbnN0IGNoYXIgKiwgc3RydWN0IHVybF9pbmZvICopOworZXh0ZXJuIGludCBtYXRjaF91cmxzKGNvbnN0IHN0cnVjdCB1cmxfaW5mbyAqdXJsLCBjb25zdCBzdHJ1Y3QgdXJsX2luZm8gKnVybF9wcmVmaXgsIGludCAqZXhhY3R1c2VybWF0Y2gpOworCitzdHJ1Y3QgdXJsbWF0Y2hfaXRlbSB7CisJc2l6ZV90IG1hdGNoZWRfbGVuOworCWNoYXIgdXNlcl9tYXRjaGVkOworfTsKKworc3RydWN0IHVybG1hdGNoX2NvbmZpZyB7CisJc3RydWN0IHN0cmluZ19saXN0IHZhcnM7CisJc3RydWN0IHVybF9pbmZvIHVybDsKKwljb25zdCBjaGFyICpzZWN0aW9uOworCWNvbnN0IGNoYXIgKmtleTsKKworCXZvaWQgKmNiOworCWludCAoKmNvbGxlY3RfZm4pKGNvbnN0IGNoYXIgKnZhciwgY29uc3QgY2hhciAqdmFsdWUsIHZvaWQgKmNiKTsKKwlpbnQgKCpjYXNjYWRlX2ZuKShjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpjYik7Cit9OworCitleHRlcm4gaW50IHVybG1hdGNoX2NvbmZpZ19lbnRyeShjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpjYik7CisKKyNlbmRpZiAvKiBVUkxfTUFUQ0hfSCAqLwpkaWZmIC0tZ2l0IGEvdmNzLXN2bi9mYXN0X2V4cG9ydC5jIGIvdmNzLXN2bi9mYXN0X2V4cG9ydC5jCmluZGV4IGYyYjIzYzguLmJkMGYyYzIgMTAwNjQ0Ci0tLSBhL3Zjcy1zdm4vZmFzdF9leHBvcnQuYworKysgYi92Y3Mtc3ZuL2Zhc3RfZXhwb3J0LmMKQEAgLTE2MiwyMiArMTYyLDEzIEBACiAJZGllKCJpbnZhbGlkIGR1bXA6IHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUiKTsKIH0KIAotc3RhdGljIGludCBlbmRzX3dpdGgoY29uc3QgY2hhciAqcywgc2l6ZV90IGxlbiwgY29uc3QgY2hhciAqc3VmZml4KQotewotCWNvbnN0IHNpemVfdCBzdWZmaXhsZW4gPSBzdHJsZW4oc3VmZml4KTsKLQlpZiAobGVuIDwgc3VmZml4bGVuKQotCQlyZXR1cm4gMDsKLQlyZXR1cm4gIW1lbWNtcChzICsgbGVuIC0gc3VmZml4bGVuLCBzdWZmaXgsIHN1ZmZpeGxlbik7Ci19Ci0KIHN0YXRpYyBpbnQgcGFyc2VfY2F0X3Jlc3BvbnNlX2xpbmUoY29uc3QgY2hhciAqaGVhZGVyLCBvZmZfdCAqbGVuKQogewotCXNpemVfdCBoZWFkZXJsZW4gPSBzdHJsZW4oaGVhZGVyKTsKIAl1aW50bWF4X3QgbjsKIAljb25zdCBjaGFyICp0eXBlOwogCWNvbnN0IGNoYXIgKmVuZDsKIAotCWlmIChlbmRzX3dpdGgoaGVhZGVyLCBoZWFkZXJsZW4sICIgbWlzc2luZyIpKQorCWlmIChlbmRzX3dpdGgoaGVhZGVyLCAiIG1pc3NpbmciKSkKIAkJcmV0dXJuIGVycm9yKCJjYXQtYmxvYiByZXBvcnRzIG1pc3NpbmcgYmxvYjogJXMiLCBoZWFkZXIpOwogCXR5cGUgPSBzdHJzdHIoaGVhZGVyLCAiIGJsb2IgIik7CiAJaWYgKCF0eXBlKQpkaWZmIC0tZ2l0IGEvd2Fsa2VyLmMgYi93YWxrZXIuYwppbmRleCBiZTM4OWRjLi42MzM1OTZlIDEwMDY0NAotLS0gYS93YWxrZXIuYworKysgYi93YWxrZXIuYwpAQCAtNTYsMTAgKzU2LDcgQEAKIAkJaWYgKCFvYmogfHwgcHJvY2Vzcyh3YWxrZXIsIG9iaikpCiAJCQlyZXR1cm4gLTE7CiAJfQotCWZyZWUodHJlZS0+YnVmZmVyKTsKLQl0cmVlLT5idWZmZXIgPSBOVUxMOwotCXRyZWUtPnNpemUgPSAwOwotCXRyZWUtPm9iamVjdC5wYXJzZWQgPSAwOworCWZyZWVfdHJlZV9idWZmZXIodHJlZSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3dyYXBwZXIuYyBiL3dyYXBwZXIuYwppbmRleCBmOTJiMTQ3Li4wY2M1NjM2IDEwMDY0NAotLS0gYS93cmFwcGVyLmMKKysrIGIvd3JhcHBlci5jCkBAIC0xMzMsNyArMTMzLDcgQEAKIC8qCiAgKiBMaW1pdCBzaXplIG9mIElPIGNodW5rcywgYmVjYXVzZSBodWdlIGNodW5rcyBvbmx5IGNhdXNlIHBhaW4uICBPUyBYCiAgKiA2NC1iaXQgaXMgYnVnZ3ksIHJldHVybmluZyBFSU5WQUwgaWYgbGVuID49IElOVF9NQVg7IGFuZCBldmVuIGluCi0gKiB0aGUgYWJzZW5zZSBvZiBidWdzLCBsYXJnZSBjaHVua3MgY2FuIHJlc3VsdCBpbiBiYWQgbGF0ZW5jaWVzIHdoZW4KKyAqIHRoZSBhYnNlbmNlIG9mIGJ1Z3MsIGxhcmdlIGNodW5rcyBjYW4gcmVzdWx0IGluIGJhZCBsYXRlbmNpZXMgd2hlbgogICogeW91IGRlY2lkZSB0byBraWxsIHRoZSBwcm9jZXNzLgogICovCiAjZGVmaW5lIE1BWF9JT19TSVpFICg4KjEwMjQqMTAyNCkKQEAgLTM2MCwxMCArMzYwLDEyIEBACiAJcmV0dXJuIGdpdF9ta3N0ZW1wc19tb2RlKHBhdHRlcm4sIDAsIG1vZGUpOwogfQogCisjaWZkZWYgTk9fTUtTVEVNUFMKIGludCBnaXRta3N0ZW1wcyhjaGFyICpwYXR0ZXJuLCBpbnQgc3VmZml4X2xlbikKIHsKIAlyZXR1cm4gZ2l0X21rc3RlbXBzX21vZGUocGF0dGVybiwgc3VmZml4X2xlbiwgMDYwMCk7CiB9CisjZW5kaWYKIAogaW50IHhta3N0ZW1wX21vZGUoY2hhciAqdGVtcGxhdGUsIGludCBtb2RlKQogewpkaWZmIC0tZ2l0IGEvd3Qtc3RhdHVzLmMgYi93dC1zdGF0dXMuYwppbmRleCBjYjI0ZjFmLi40ZTU1ODEwIDEwMDY0NAotLS0gYS93dC1zdGF0dXMuYworKysgYi93dC1zdGF0dXMuYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlICJjYWNoZS5oIgorI2luY2x1ZGUgInBhdGhzcGVjLmgiCiAjaW5jbHVkZSAid3Qtc3RhdHVzLmgiCiAjaW5jbHVkZSAib2JqZWN0LmgiCiAjaW5jbHVkZSAiZGlyLmgiCkBAIC04LDExICs5LDE2IEBACiAjaW5jbHVkZSAiZGlmZmNvcmUuaCIKICNpbmNsdWRlICJxdW90ZS5oIgogI2luY2x1ZGUgInJ1bi1jb21tYW5kLmgiCisjaW5jbHVkZSAiYXJndi1hcnJheS5oIgogI2luY2x1ZGUgInJlbW90ZS5oIgogI2luY2x1ZGUgInJlZnMuaCIKICNpbmNsdWRlICJzdWJtb2R1bGUuaCIKICNpbmNsdWRlICJjb2x1bW4uaCIKICNpbmNsdWRlICJzdHJidWYuaCIKKyNpbmNsdWRlICJ1dGY4LmgiCisKK3N0YXRpYyBjaGFyIGN1dF9saW5lW10gPQorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSA+OCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7CiAKIHN0YXRpYyBjaGFyIGRlZmF1bHRfd3Rfc3RhdHVzX2NvbG9yc1tdW0NPTE9SX01BWExFTl0gPSB7CiAJR0lUX0NPTE9SX05PUk1BTCwgLyogV1RfU1RBVFVTX0hFQURFUiAqLwpAQCAtNDUsOSArNTEsMTEgQEAKIAogCXN0cmJ1Zl92YWRkZigmc2IsIGZtdCwgYXApOwogCWlmICghc2IubGVuKSB7Ci0JCXN0cmJ1Zl9hZGRjaCgmc2IsIGNvbW1lbnRfbGluZV9jaGFyKTsKLQkJaWYgKCF0cmFpbCkKLQkJCXN0cmJ1Zl9hZGRjaCgmc2IsICcgJyk7CisJCWlmIChzLT5kaXNwbGF5X2NvbW1lbnRfcHJlZml4KSB7CisJCQlzdHJidWZfYWRkY2goJnNiLCBjb21tZW50X2xpbmVfY2hhcik7CisJCQlpZiAoIXRyYWlsKQorCQkJCXN0cmJ1Zl9hZGRjaCgmc2IsICcgJyk7CisJCX0KIAkJY29sb3JfcHJpbnRfc3RyYnVmKHMtPmZwLCBjb2xvciwgJnNiKTsKIAkJaWYgKHRyYWlsKQogCQkJZnByaW50ZihzLT5mcCwgIiVzIiwgdHJhaWwpOwpAQCAtNTgsNyArNjYsNyBAQAogCQllb2wgPSBzdHJjaHIobGluZSwgJ1xuJyk7CiAKIAkJc3RyYnVmX3Jlc2V0KCZsaW5lYnVmKTsKLQkJaWYgKGF0X2JvbCkgeworCQlpZiAoYXRfYm9sICYmIHMtPmRpc3BsYXlfY29tbWVudF9wcmVmaXgpIHsKIAkJCXN0cmJ1Zl9hZGRjaCgmbGluZWJ1ZiwgY29tbWVudF9saW5lX2NoYXIpOwogCQkJaWYgKCpsaW5lICE9ICdcbicgJiYgKmxpbmUgIT0gJ1x0JykKIAkJCQlzdHJidWZfYWRkY2goJmxpbmVidWYsICcgJyk7CkBAIC0xMjgsNiArMTM2LDcgQEAKIAlzLT51bnRyYWNrZWQuc3RyZHVwX3N0cmluZ3MgPSAxOwogCXMtPmlnbm9yZWQuc3RyZHVwX3N0cmluZ3MgPSAxOwogCXMtPnNob3dfYnJhbmNoID0gLTE7ICAvKiB1bnNwZWNpZmllZCAqLworCXMtPmRpc3BsYXlfY29tbWVudF9wcmVmaXggPSAwOwogfQogCiBzdGF0aWMgdm9pZCB3dF9zdGF0dXNfcHJpbnRfdW5tZXJnZWRfaGVhZGVyKHN0cnVjdCB3dF9zdGF0dXMgKnMpCkBAIC0xNjAsNyArMTY5LDcgQEAKIAkJfQogCX0KIAotCWlmICghYWR2aWNlX3N0YXR1c19oaW50cykKKwlpZiAoIXMtPmhpbnRzKQogCQlyZXR1cm47CiAJaWYgKHMtPndoZW5jZSAhPSBGUk9NX0NPTU1JVCkKIAkJOwpAQCAtMTg3LDcgKzE5Niw3IEBACiAJY29uc3QgY2hhciAqYyA9IGNvbG9yKFdUX1NUQVRVU19IRUFERVIsIHMpOwogCiAJc3RhdHVzX3ByaW50Zl9sbihzLCBjLCBfKCJDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiKSk7Ci0JaWYgKCFhZHZpY2Vfc3RhdHVzX2hpbnRzKQorCWlmICghcy0+aGludHMpCiAJCXJldHVybjsKIAlpZiAocy0+d2hlbmNlICE9IEZST01fQ09NTUlUKQogCQk7IC8qIE5FRURTV09SSzogdXNlICJnaXQgcmVzZXQgLS11bnJlc29sdmUiPz8/ICovCkBAIC0yMDUsNyArMjE0LDcgQEAKIAljb25zdCBjaGFyICpjID0gY29sb3IoV1RfU1RBVFVTX0hFQURFUiwgcyk7CiAKIAlzdGF0dXNfcHJpbnRmX2xuKHMsIGMsIF8oIkNoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OiIpKTsKLQlpZiAoIWFkdmljZV9zdGF0dXNfaGludHMpCisJaWYgKCFzLT5oaW50cykKIAkJcmV0dXJuOwogCWlmICghaGFzX2RlbGV0ZWQpCiAJCXN0YXR1c19wcmludGZfbG4ocywgYywgXygiICAodXNlIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiKSk7CkBAIC0yMjMsNyArMjMyLDcgQEAKIHsKIAljb25zdCBjaGFyICpjID0gY29sb3IoV1RfU1RBVFVTX0hFQURFUiwgcyk7CiAJc3RhdHVzX3ByaW50Zl9sbihzLCBjLCAiJXM6Iiwgd2hhdCk7Ci0JaWYgKCFhZHZpY2Vfc3RhdHVzX2hpbnRzKQorCWlmICghcy0+aGludHMpCiAJCXJldHVybjsKIAlzdGF0dXNfcHJpbnRmX2xuKHMsIGMsIF8oIiAgKHVzZSBcImdpdCAlcyA8ZmlsZT4uLi5cIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIiksIGhvdyk7CiAJc3RhdHVzX3ByaW50Zl9sbihzLCBjLCAiIik7CkBAIC0yNTksNiArMjY4LDMwIEBACiAJc3RyYnVmX3JlbGVhc2UoJm9uZWJ1Zik7CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyICp3dF9zdGF0dXNfZGlmZl9zdGF0dXNfc3RyaW5nKGludCBzdGF0dXMpCit7CisJc3dpdGNoIChzdGF0dXMpIHsKKwljYXNlIERJRkZfU1RBVFVTX0FEREVEOgorCQlyZXR1cm4gXygibmV3IGZpbGUiKTsKKwljYXNlIERJRkZfU1RBVFVTX0NPUElFRDoKKwkJcmV0dXJuIF8oImNvcGllZCIpOworCWNhc2UgRElGRl9TVEFUVVNfREVMRVRFRDoKKwkJcmV0dXJuIF8oImRlbGV0ZWQiKTsKKwljYXNlIERJRkZfU1RBVFVTX01PRElGSUVEOgorCQlyZXR1cm4gXygibW9kaWZpZWQiKTsKKwljYXNlIERJRkZfU1RBVFVTX1JFTkFNRUQ6CisJCXJldHVybiBfKCJyZW5hbWVkIik7CisJY2FzZSBESUZGX1NUQVRVU19UWVBFX0NIQU5HRUQ6CisJCXJldHVybiBfKCJ0eXBlY2hhbmdlIik7CisJY2FzZSBESUZGX1NUQVRVU19VTktOT1dOOgorCQlyZXR1cm4gXygidW5rbm93biIpOworCWNhc2UgRElGRl9TVEFUVVNfVU5NRVJHRUQ6CisJCXJldHVybiBfKCJ1bm1lcmdlZCIpOworCWRlZmF1bHQ6CisJCXJldHVybiBOVUxMOworCX0KK30KKwogc3RhdGljIHZvaWQgd3Rfc3RhdHVzX3ByaW50X2NoYW5nZV9kYXRhKHN0cnVjdCB3dF9zdGF0dXMgKnMsCiAJCQkJCWludCBjaGFuZ2VfdHlwZSwKIAkJCQkJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0KQpAQCAtMjcxLDYgKzMwNCwyMyBAQAogCWNvbnN0IGNoYXIgKm9uZSwgKnR3bzsKIAlzdHJ1Y3Qgc3RyYnVmIG9uZWJ1ZiA9IFNUUkJVRl9JTklULCB0d29idWYgPSBTVFJCVUZfSU5JVDsKIAlzdHJ1Y3Qgc3RyYnVmIGV4dHJhID0gU1RSQlVGX0lOSVQ7CisJc3RhdGljIGNoYXIgKnBhZGRpbmc7CisJY29uc3QgY2hhciAqd2hhdDsKKwlpbnQgbGVuOworCisJaWYgKCFwYWRkaW5nKSB7CisJCWludCB3aWR0aCA9IDA7CisJCS8qIElmIERJRkZfU1RBVFVTXyogdXNlcyBvdXRzaWRlIHRoaXMgcmFuZ2UsIHdlJ3JlIGluIHRyb3VibGUgKi8KKwkJZm9yIChzdGF0dXMgPSAnQSc7IHN0YXR1cyA8PSAnWic7IHN0YXR1cysrKSB7CisJCQl3aGF0ID0gd3Rfc3RhdHVzX2RpZmZfc3RhdHVzX3N0cmluZyhzdGF0dXMpOworCQkJbGVuID0gd2hhdCA/IHN0cmxlbih3aGF0KSA6IDA7CisJCQlpZiAobGVuID4gd2lkdGgpCisJCQkJd2lkdGggPSBsZW47CisJCX0KKwkJd2lkdGggKz0gMjsJLyogY29sb24gYW5kIGEgc3BhY2UgKi8KKwkJcGFkZGluZyA9IHhtYWxsb2N6KHdpZHRoKTsKKwkJbWVtc2V0KHBhZGRpbmcsICcgJywgd2lkdGgpOworCX0KIAogCW9uZV9uYW1lID0gdHdvX25hbWUgPSBpdC0+c3RyaW5nOwogCXN3aXRjaCAoY2hhbmdlX3R5cGUpIHsKQEAgLTMwMiwzNCArMzUyLDE4IEBACiAJdHdvID0gcXVvdGVfcGF0aCh0d29fbmFtZSwgcy0+cHJlZml4LCAmdHdvYnVmKTsKIAogCXN0YXR1c19wcmludGYocywgY29sb3IoV1RfU1RBVFVTX0hFQURFUiwgcyksICJcdCIpOwotCXN3aXRjaCAoc3RhdHVzKSB7Ci0JY2FzZSBESUZGX1NUQVRVU19BRERFRDoKLQkJc3RhdHVzX3ByaW50Zl9tb3JlKHMsIGMsIF8oIm5ldyBmaWxlOiAgICVzIiksIG9uZSk7Ci0JCWJyZWFrOwotCWNhc2UgRElGRl9TVEFUVVNfQ09QSUVEOgotCQlzdGF0dXNfcHJpbnRmX21vcmUocywgYywgXygiY29waWVkOiAgICAgJXMgLT4gJXMiKSwgb25lLCB0d28pOwotCQlicmVhazsKLQljYXNlIERJRkZfU1RBVFVTX0RFTEVURUQ6Ci0JCXN0YXR1c19wcmludGZfbW9yZShzLCBjLCBfKCJkZWxldGVkOiAgICAlcyIpLCBvbmUpOwotCQlicmVhazsKLQljYXNlIERJRkZfU1RBVFVTX01PRElGSUVEOgotCQlzdGF0dXNfcHJpbnRmX21vcmUocywgYywgXygibW9kaWZpZWQ6ICAgJXMiKSwgb25lKTsKLQkJYnJlYWs7Ci0JY2FzZSBESUZGX1NUQVRVU19SRU5BTUVEOgotCQlzdGF0dXNfcHJpbnRmX21vcmUocywgYywgXygicmVuYW1lZDogICAgJXMgLT4gJXMiKSwgb25lLCB0d28pOwotCQlicmVhazsKLQljYXNlIERJRkZfU1RBVFVTX1RZUEVfQ0hBTkdFRDoKLQkJc3RhdHVzX3ByaW50Zl9tb3JlKHMsIGMsIF8oInR5cGVjaGFuZ2U6ICVzIiksIG9uZSk7Ci0JCWJyZWFrOwotCWNhc2UgRElGRl9TVEFUVVNfVU5LTk9XTjoKLQkJc3RhdHVzX3ByaW50Zl9tb3JlKHMsIGMsIF8oInVua25vd246ICAgICVzIiksIG9uZSk7Ci0JCWJyZWFrOwotCWNhc2UgRElGRl9TVEFUVVNfVU5NRVJHRUQ6Ci0JCXN0YXR1c19wcmludGZfbW9yZShzLCBjLCBfKCJ1bm1lcmdlZDogICAlcyIpLCBvbmUpOwotCQlicmVhazsKLQlkZWZhdWx0OgorCXdoYXQgPSB3dF9zdGF0dXNfZGlmZl9zdGF0dXNfc3RyaW5nKHN0YXR1cyk7CisJaWYgKCF3aGF0KQogCQlkaWUoXygiYnVnOiB1bmhhbmRsZWQgZGlmZiBzdGF0dXMgJWMiKSwgc3RhdHVzKTsKLQl9CisJLyogMSBmb3IgY29sb24sIHdoaWNoIGlzIG5vdCBwYXJ0IG9mICJ3aGF0IiAqLworCWxlbiA9IHN0cmxlbihwYWRkaW5nKSAtICh1dGY4X3N0cndpZHRoKHdoYXQpICsgMSk7CisJYXNzZXJ0KGxlbiA+PSAwKTsKKwlpZiAoc3RhdHVzID09IERJRkZfU1RBVFVTX0NPUElFRCB8fCBzdGF0dXMgPT0gRElGRl9TVEFUVVNfUkVOQU1FRCkKKwkJc3RhdHVzX3ByaW50Zl9tb3JlKHMsIGMsICIlczolLipzJXMgLT4gJXMiLAorCQkJCSAgIHdoYXQsIGxlbiwgcGFkZGluZywgb25lLCB0d28pOworCWVsc2UKKwkJc3RhdHVzX3ByaW50Zl9tb3JlKHMsIGMsICIlczolLipzJXMiLAorCQkJCSAgIHdoYXQsIGxlbiwgcGFkZGluZywgb25lKTsKIAlpZiAoZXh0cmEubGVuKSB7CiAJCXN0YXR1c19wcmludGZfbW9yZShzLCBjb2xvcihXVF9TVEFUVVNfSEVBREVSLCBzKSwgIiVzIiwgZXh0cmEuYnVmKTsKIAkJc3RyYnVmX3JlbGVhc2UoJmV4dHJhKTsKQEAgLTQzOCw3ICs0NzIsNyBAQAogCX0KIAlyZXYuZGlmZm9wdC5mb3JtYXRfY2FsbGJhY2sgPSB3dF9zdGF0dXNfY29sbGVjdF9jaGFuZ2VkX2NiOwogCXJldi5kaWZmb3B0LmZvcm1hdF9jYWxsYmFja19kYXRhID0gczsKLQlpbml0X3BhdGhzcGVjKCZyZXYucHJ1bmVfZGF0YSwgcy0+cGF0aHNwZWMpOworCWNvcHlfcGF0aHNwZWMoJnJldi5wcnVuZV9kYXRhLCAmcy0+cGF0aHNwZWMpOwogCXJ1bl9kaWZmX2ZpbGVzKCZyZXYsIDApOwogfQogCkBAIC00NjMsMjIgKzQ5NywyMCBAQAogCXJldi5kaWZmb3B0LmRldGVjdF9yZW5hbWUgPSAxOwogCXJldi5kaWZmb3B0LnJlbmFtZV9saW1pdCA9IDIwMDsKIAlyZXYuZGlmZm9wdC5icmVha19vcHQgPSAwOwotCWluaXRfcGF0aHNwZWMoJnJldi5wcnVuZV9kYXRhLCBzLT5wYXRoc3BlYyk7CisJY29weV9wYXRoc3BlYygmcmV2LnBydW5lX2RhdGEsICZzLT5wYXRoc3BlYyk7CiAJcnVuX2RpZmZfaW5kZXgoJnJldiwgMSk7CiB9CiAKIHN0YXRpYyB2b2lkIHd0X3N0YXR1c19jb2xsZWN0X2NoYW5nZXNfaW5pdGlhbChzdHJ1Y3Qgd3Rfc3RhdHVzICpzKQogewotCXN0cnVjdCBwYXRoc3BlYyBwYXRoc3BlYzsKIAlpbnQgaTsKIAotCWluaXRfcGF0aHNwZWMoJnBhdGhzcGVjLCBzLT5wYXRoc3BlYyk7CiAJZm9yIChpID0gMDsgaSA8IGFjdGl2ZV9ucjsgaSsrKSB7CiAJCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdDsKIAkJc3RydWN0IHd0X3N0YXR1c19jaGFuZ2VfZGF0YSAqZDsKIAkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAotCQlpZiAoIWNlX3BhdGhfbWF0Y2goY2UsICZwYXRoc3BlYykpCisJCWlmICghY2VfcGF0aF9tYXRjaChjZSwgJnMtPnBhdGhzcGVjKSkKIAkJCWNvbnRpbnVlOwogCQlpdCA9IHN0cmluZ19saXN0X2luc2VydCgmcy0+Y2hhbmdlLCBjZS0+bmFtZSk7CiAJCWQgPSBpdC0+dXRpbDsKQEAgLTQ5Myw3ICs1MjUsNiBAQAogCQllbHNlCiAJCQlkLT5pbmRleF9zdGF0dXMgPSBESUZGX1NUQVRVU19BRERFRDsKIAl9Ci0JZnJlZV9wYXRoc3BlYygmcGF0aHNwZWMpOwogfQogCiBzdGF0aWMgdm9pZCB3dF9zdGF0dXNfY29sbGVjdF91bnRyYWNrZWQoc3RydWN0IHd0X3N0YXR1cyAqcykKQEAgLTUxNiwxMiArNTQ3LDEyIEBACiAJCWRpci5mbGFncyB8PSBESVJfU0hPV19JR05PUkVEX1RPTzsKIAlzZXR1cF9zdGFuZGFyZF9leGNsdWRlcygmZGlyKTsKIAotCWZpbGxfZGlyZWN0b3J5KCZkaXIsIHMtPnBhdGhzcGVjKTsKKwlmaWxsX2RpcmVjdG9yeSgmZGlyLCAmcy0+cGF0aHNwZWMpOwogCiAJZm9yIChpID0gMDsgaSA8IGRpci5ucjsgaSsrKSB7CiAJCXN0cnVjdCBkaXJfZW50cnkgKmVudCA9IGRpci5lbnRyaWVzW2ldOwogCQlpZiAoY2FjaGVfbmFtZV9pc19vdGhlcihlbnQtPm5hbWUsIGVudC0+bGVuKSAmJgotCQkgICAgbWF0Y2hfcGF0aHNwZWMocy0+cGF0aHNwZWMsIGVudC0+bmFtZSwgZW50LT5sZW4sIDAsIE5VTEwpKQorCQkgICAgbWF0Y2hfcGF0aHNwZWNfZGVwdGgoJnMtPnBhdGhzcGVjLCBlbnQtPm5hbWUsIGVudC0+bGVuLCAwLCBOVUxMKSkKIAkJCXN0cmluZ19saXN0X2luc2VydCgmcy0+dW50cmFja2VkLCBlbnQtPm5hbWUpOwogCQlmcmVlKGVudCk7CiAJfQpAQCAtNTI5LDcgKzU2MCw3IEBACiAJZm9yIChpID0gMDsgaSA8IGRpci5pZ25vcmVkX25yOyBpKyspIHsKIAkJc3RydWN0IGRpcl9lbnRyeSAqZW50ID0gZGlyLmlnbm9yZWRbaV07CiAJCWlmIChjYWNoZV9uYW1lX2lzX290aGVyKGVudC0+bmFtZSwgZW50LT5sZW4pICYmCi0JCSAgICBtYXRjaF9wYXRoc3BlYyhzLT5wYXRoc3BlYywgZW50LT5uYW1lLCBlbnQtPmxlbiwgMCwgTlVMTCkpCisJCSAgICBtYXRjaF9wYXRoc3BlY19kZXB0aCgmcy0+cGF0aHNwZWMsIGVudC0+bmFtZSwgZW50LT5sZW4sIDAsIE5VTEwpKQogCQkJc3RyaW5nX2xpc3RfaW5zZXJ0KCZzLT5pZ25vcmVkLCBlbnQtPm5hbWUpOwogCQlmcmVlKGVudCk7CiAJfQpAQCAtNjYzLDI5ICs2OTQsNTcgQEAKIAljaGFyIHN1bW1hcnlfbGltaXRbNjRdOwogCWNoYXIgaW5kZXhbUEFUSF9NQVhdOwogCWNvbnN0IGNoYXIgKmVudltdID0geyBOVUxMLCBOVUxMIH07Ci0JY29uc3QgY2hhciAqYXJndls4XTsKLQotCWVudlswXSA9CWluZGV4OwotCWFyZ3ZbMF0gPQkic3VibW9kdWxlIjsKLQlhcmd2WzFdID0JInN1bW1hcnkiOwotCWFyZ3ZbMl0gPQl1bmNvbW1pdHRlZCA/ICItLWZpbGVzIiA6ICItLWNhY2hlZCI7Ci0JYXJndlszXSA9CSItLWZvci1zdGF0dXMiOwotCWFyZ3ZbNF0gPQkiLS1zdW1tYXJ5LWxpbWl0IjsKLQlhcmd2WzVdID0Jc3VtbWFyeV9saW1pdDsKLQlhcmd2WzZdID0JdW5jb21taXR0ZWQgPyBOVUxMIDogKHMtPmFtZW5kID8gIkhFQUReIiA6ICJIRUFEIik7Ci0JYXJndls3XSA9CU5VTEw7CisJc3RydWN0IGFyZ3ZfYXJyYXkgYXJndiA9IEFSR1ZfQVJSQVlfSU5JVDsKKwlzdHJ1Y3Qgc3RyYnVmIGNtZF9zdGRvdXQgPSBTVFJCVUZfSU5JVDsKKwlzdHJ1Y3Qgc3RyYnVmIHN1bW1hcnkgPSBTVFJCVUZfSU5JVDsKKwljaGFyICpzdW1tYXJ5X2NvbnRlbnQ7CisJc2l6ZV90IGxlbjsKIAogCXNwcmludGYoc3VtbWFyeV9saW1pdCwgIiVkIiwgcy0+c3VibW9kdWxlX3N1bW1hcnkpOwogCXNucHJpbnRmKGluZGV4LCBzaXplb2YoaW5kZXgpLCAiR0lUX0lOREVYX0ZJTEU9JXMiLCBzLT5pbmRleF9maWxlKTsKIAorCWVudlswXSA9IGluZGV4OworCWFyZ3ZfYXJyYXlfcHVzaCgmYXJndiwgInN1Ym1vZHVsZSIpOworCWFyZ3ZfYXJyYXlfcHVzaCgmYXJndiwgInN1bW1hcnkiKTsKKwlhcmd2X2FycmF5X3B1c2goJmFyZ3YsIHVuY29tbWl0dGVkID8gIi0tZmlsZXMiIDogIi0tY2FjaGVkIik7CisJYXJndl9hcnJheV9wdXNoKCZhcmd2LCAiLS1mb3Itc3RhdHVzIik7CisJYXJndl9hcnJheV9wdXNoKCZhcmd2LCAiLS1zdW1tYXJ5LWxpbWl0Iik7CisJYXJndl9hcnJheV9wdXNoKCZhcmd2LCBzdW1tYXJ5X2xpbWl0KTsKKwlpZiAoIXVuY29tbWl0dGVkKQorCQlhcmd2X2FycmF5X3B1c2goJmFyZ3YsIHMtPmFtZW5kID8gIkhFQUReIiA6ICJIRUFEIik7CisKIAltZW1zZXQoJnNtX3N1bW1hcnksIDAsIHNpemVvZihzbV9zdW1tYXJ5KSk7Ci0Jc21fc3VtbWFyeS5hcmd2ID0gYXJndjsKKwlzbV9zdW1tYXJ5LmFyZ3YgPSBhcmd2LmFyZ3Y7CiAJc21fc3VtbWFyeS5lbnYgPSBlbnY7CiAJc21fc3VtbWFyeS5naXRfY21kID0gMTsKIAlzbV9zdW1tYXJ5Lm5vX3N0ZGluID0gMTsKIAlmZmx1c2gocy0+ZnApOwotCXNtX3N1bW1hcnkub3V0ID0gZHVwKGZpbGVubyhzLT5mcCkpOyAgICAvKiBydW5fY29tbWFuZCBjbG9zZXMgaXQgKi8KKwlzbV9zdW1tYXJ5Lm91dCA9IC0xOworCiAJcnVuX2NvbW1hbmQoJnNtX3N1bW1hcnkpOworCWFyZ3ZfYXJyYXlfY2xlYXIoJmFyZ3YpOworCisJbGVuID0gc3RyYnVmX3JlYWQoJmNtZF9zdGRvdXQsIHNtX3N1bW1hcnkub3V0LCAxMDI0KTsKKworCS8qIHByZXBlbmQgaGVhZGVyLCBvbmx5IGlmIHRoZXJlJ3MgYW4gYWN0dWFsIG91dHB1dCAqLworCWlmIChsZW4pIHsKKwkJaWYgKHVuY29tbWl0dGVkKQorCQkJc3RyYnVmX2FkZHN0cigmc3VtbWFyeSwgXygiU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiKSk7CisJCWVsc2UKKwkJCXN0cmJ1Zl9hZGRzdHIoJnN1bW1hcnksIF8oIlN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiKSk7CisJCXN0cmJ1Zl9hZGRzdHIoJnN1bW1hcnksICJcblxuIik7CisJfQorCXN0cmJ1Zl9hZGRidWYoJnN1bW1hcnksICZjbWRfc3Rkb3V0KTsKKwlzdHJidWZfcmVsZWFzZSgmY21kX3N0ZG91dCk7CisKKwlpZiAocy0+ZGlzcGxheV9jb21tZW50X3ByZWZpeCkgeworCQlzdW1tYXJ5X2NvbnRlbnQgPSBzdHJidWZfZGV0YWNoKCZzdW1tYXJ5LCAmbGVuKTsKKwkJc3RyYnVmX2FkZF9jb21tZW50ZWRfbGluZXMoJnN1bW1hcnksIHN1bW1hcnlfY29udGVudCwgbGVuKTsKKwkJZnJlZShzdW1tYXJ5X2NvbnRlbnQpOworCX0KKworCWZwdXRzKHN1bW1hcnkuYnVmLCBzLT5mcCk7CisJc3RyYnVmX3JlbGVhc2UoJnN1bW1hcnkpOwogfQogCiBzdGF0aWMgdm9pZCB3dF9zdGF0dXNfcHJpbnRfb3RoZXIoc3RydWN0IHd0X3N0YXR1cyAqcywKQEAgLTcxOSwxMCArNzc4LDExIEBACiAKIAlzdHJidWZfcmVsZWFzZSgmYnVmKTsKIAlpZiAoIWNvbHVtbl9hY3RpdmUocy0+Y29sb3B0cykpCi0JCXJldHVybjsKKwkJZ290byBjb25jbHVkZTsKIAotCXN0cmJ1Zl9hZGRmKCZidWYsICIlcyNcdCVzIiwKKwlzdHJidWZfYWRkZigmYnVmLCAiJXMlc1x0JXMiLAogCQkgICAgY29sb3IoV1RfU1RBVFVTX0hFQURFUiwgcyksCisJCSAgICBzLT5kaXNwbGF5X2NvbW1lbnRfcHJlZml4ID8gIiMiIDogIiIsCiAJCSAgICBjb2xvcihXVF9TVEFUVVNfVU5UUkFDS0VELCBzKSk7CiAJbWVtc2V0KCZjb3B0cywgMCwgc2l6ZW9mKGNvcHRzKSk7CiAJY29wdHMucGFkZGluZyA9IDE7CkBAIC03MzIsNiArNzkyLDIwIEBACiAJcHJpbnRfY29sdW1ucygmb3V0cHV0LCBzLT5jb2xvcHRzLCAmY29wdHMpOwogCXN0cmluZ19saXN0X2NsZWFyKCZvdXRwdXQsIDApOwogCXN0cmJ1Zl9yZWxlYXNlKCZidWYpOworY29uY2x1ZGU6CisJc3RhdHVzX3ByaW50Zl9sbihzLCBHSVRfQ09MT1JfTk9STUFMLCAiIik7Cit9CisKK3ZvaWQgd3Rfc3RhdHVzX3RydW5jYXRlX21lc3NhZ2VfYXRfY3V0X2xpbmUoc3RydWN0IHN0cmJ1ZiAqYnVmKQoreworCWNvbnN0IGNoYXIgKnA7CisJc3RydWN0IHN0cmJ1ZiBwYXR0ZXJuID0gU1RSQlVGX0lOSVQ7CisKKwlzdHJidWZfYWRkZigmcGF0dGVybiwgIiVjICVzIiwgY29tbWVudF9saW5lX2NoYXIsIGN1dF9saW5lKTsKKwlwID0gc3Ryc3RyKGJ1Zi0+YnVmLCBwYXR0ZXJuLmJ1Zik7CisJaWYgKHAgJiYgKHAgPT0gYnVmLT5idWYgfHwgcFstMV0gPT0gJ1xuJykpCisJCXN0cmJ1Zl9zZXRsZW4oYnVmLCBwIC0gYnVmLT5idWYpOworCXN0cmJ1Zl9yZWxlYXNlKCZwYXR0ZXJuKTsKIH0KIAogc3RhdGljIHZvaWQgd3Rfc3RhdHVzX3ByaW50X3ZlcmJvc2Uoc3RydWN0IHd0X3N0YXR1cyAqcykKQEAgLTc1NCwxMCArODI4LDIwIEBACiAJICogSWYgd2UncmUgbm90IGdvaW5nIHRvIHN0ZG91dCwgdGhlbiB3ZSBkZWZpbml0ZWx5IGRvbid0CiAJICogd2FudCBjb2xvciwgc2luY2Ugd2UgYXJlIGdvaW5nIHRvIHRoZSBjb21taXQgbWVzc2FnZQogCSAqIGZpbGUgKGFuZCBldmVuIHRoZSAiYXV0byIgc2V0dGluZyB3b24ndCB3b3JrLCBzaW5jZSBpdAotCSAqIHdpbGwgaGF2ZSBjaGVja2VkIGlzYXR0eSBvbiBzdGRvdXQpLgorCSAqIHdpbGwgaGF2ZSBjaGVja2VkIGlzYXR0eSBvbiBzdGRvdXQpLiBCdXQgd2UgdGhlbiBkbyB3YW50CisJICogdG8gaW5zZXJ0IHRoZSBzY2lzc29yIGxpbmUgaGVyZSB0byByZWxpYWJseSByZW1vdmUgdGhlCisJICogZGlmZiBiZWZvcmUgY29tbWl0dGluZy4KIAkgKi8KLQlpZiAocy0+ZnAgIT0gc3Rkb3V0KQorCWlmIChzLT5mcCAhPSBzdGRvdXQpIHsKKwkJY29uc3QgY2hhciAqZXhwbGFuYXRpb24gPSBfKCJEbyBub3QgdG91Y2ggdGhlIGxpbmUgYWJvdmUuXG5FdmVyeXRoaW5nIGJlbG93IHdpbGwgYmUgcmVtb3ZlZC4iKTsKKwkJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKKwogCQlyZXYuZGlmZm9wdC51c2VfY29sb3IgPSAwOworCQlmcHJpbnRmKHMtPmZwLCAiJWMgJXMiLCBjb21tZW50X2xpbmVfY2hhciwgY3V0X2xpbmUpOworCQlzdHJidWZfYWRkX2NvbW1lbnRlZF9saW5lcygmYnVmLCBleHBsYW5hdGlvbiwgc3RybGVuKGV4cGxhbmF0aW9uKSk7CisJCWZwdXRzKGJ1Zi5idWYsIHMtPmZwKTsKKwkJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7CisJfQogCXJ1bl9kaWZmX2luZGV4KCZyZXYsIDEpOwogfQogCkBAIC03NjYsMjAgKzg1MCwzMiBAQAogCXN0cnVjdCBzdHJidWYgc2IgPSBTVFJCVUZfSU5JVDsKIAljb25zdCBjaGFyICpjcCwgKmVwOwogCXN0cnVjdCBicmFuY2ggKmJyYW5jaDsKKwljaGFyIGNvbW1lbnRfbGluZV9zdHJpbmdbM107CisJaW50IGk7CiAKIAlhc3NlcnQocy0+YnJhbmNoICYmICFzLT5pc19pbml0aWFsKTsKLQlpZiAocHJlZml4Y21wKHMtPmJyYW5jaCwgInJlZnMvaGVhZHMvIikpCisJaWYgKCFzdGFydHNfd2l0aChzLT5icmFuY2gsICJyZWZzL2hlYWRzLyIpKQogCQlyZXR1cm47CiAJYnJhbmNoID0gYnJhbmNoX2dldChzLT5icmFuY2ggKyAxMSk7CiAJaWYgKCFmb3JtYXRfdHJhY2tpbmdfaW5mbyhicmFuY2gsICZzYikpCiAJCXJldHVybjsKIAorCWkgPSAwOworCWlmIChzLT5kaXNwbGF5X2NvbW1lbnRfcHJlZml4KSB7CisJCWNvbW1lbnRfbGluZV9zdHJpbmdbaSsrXSA9IGNvbW1lbnRfbGluZV9jaGFyOworCQljb21tZW50X2xpbmVfc3RyaW5nW2krK10gPSAnICc7CisJfQorCWNvbW1lbnRfbGluZV9zdHJpbmdbaV0gPSAnXDAnOworCiAJZm9yIChjcCA9IHNiLmJ1ZjsgKGVwID0gc3RyY2hyKGNwLCAnXG4nKSkgIT0gTlVMTDsgY3AgPSBlcCArIDEpCiAJCWNvbG9yX2ZwcmludGZfbG4ocy0+ZnAsIGNvbG9yKFdUX1NUQVRVU19IRUFERVIsIHMpLAotCQkJCSAiJWMgJS4qcyIsIGNvbW1lbnRfbGluZV9jaGFyLAorCQkJCSAiJXMlLipzIiwgY29tbWVudF9saW5lX3N0cmluZywKIAkJCQkgKGludCkoZXAgLSBjcCksIGNwKTsKLQljb2xvcl9mcHJpbnRmX2xuKHMtPmZwLCBjb2xvcihXVF9TVEFUVVNfSEVBREVSLCBzKSwgIiVjIiwKLQkJCSBjb21tZW50X2xpbmVfY2hhcik7CisJaWYgKHMtPmRpc3BsYXlfY29tbWVudF9wcmVmaXgpCisJCWNvbG9yX2ZwcmludGZfbG4ocy0+ZnAsIGNvbG9yKFdUX1NUQVRVU19IRUFERVIsIHMpLCAiJWMiLAorCQkJCSBjb21tZW50X2xpbmVfY2hhcik7CisJZWxzZQorCQlmcHJpbnRmX2xuKHMtPmZwLCAiIik7CiB9CiAKIHN0YXRpYyBpbnQgaGFzX3VubWVyZ2VkKHN0cnVjdCB3dF9zdGF0dXMgKnMpCkBAIC04MDEsMTMgKzg5NywxMyBAQAogewogCWlmIChoYXNfdW5tZXJnZWQocykpIHsKIAkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwgXygiWW91IGhhdmUgdW5tZXJnZWQgcGF0aHMuIikpOwotCQlpZiAoYWR2aWNlX3N0YXR1c19oaW50cykKKwkJaWYgKHMtPmhpbnRzKQogCQkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwKIAkJCQlfKCIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY29tbWl0XCIpIikpOwogCX0gZWxzZSB7CiAJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCiAJCQlfKCJBbGwgY29uZmxpY3RzIGZpeGVkIGJ1dCB5b3UgYXJlIHN0aWxsIG1lcmdpbmcuIikpOwotCQlpZiAoYWR2aWNlX3N0YXR1c19oaW50cykKKwkJaWYgKHMtPmhpbnRzKQogCQkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwKIAkJCQlfKCIgICh1c2UgXCJnaXQgY29tbWl0XCIgdG8gY29uY2x1ZGUgbWVyZ2UpIikpOwogCX0KQEAgLTgyMyw3ICs5MTksNyBAQAogCWlmIChzdGF0ZS0+YW1fZW1wdHlfcGF0Y2gpCiAJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCiAJCQlfKCJUaGUgY3VycmVudCBwYXRjaCBpcyBlbXB0eS4iKSk7Ci0JaWYgKGFkdmljZV9zdGF0dXNfaGludHMpIHsKKwlpZiAocy0+aGludHMpIHsKIAkJaWYgKCFzdGF0ZS0+YW1fZW1wdHlfcGF0Y2gpCiAJCQlzdGF0dXNfcHJpbnRmX2xuKHMsIGNvbG9yLAogCQkJCV8oIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tY29udGludWVcIikiKSk7CkBAIC04OTYsNyArOTkyLDcgQEAKIAkJZWxzZQogCQkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwKIAkJCQkJIF8oIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nLiIpKTsKLQkJaWYgKGFkdmljZV9zdGF0dXNfaGludHMpIHsKKwkJaWYgKHMtPmhpbnRzKSB7CiAJCQlzdGF0dXNfcHJpbnRmX2xuKHMsIGNvbG9yLAogCQkJCV8oIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIikpOwogCQkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwKQEAgLTkxMyw3ICsxMDA5LDcgQEAKIAkJZWxzZQogCQkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwKIAkJCQkJIF8oIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nLiIpKTsKLQkJaWYgKGFkdmljZV9zdGF0dXNfaGludHMpCisJCWlmIChzLT5oaW50cykKIAkJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCiAJCQkJXygiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIikpOwogCX0gZWxzZSBpZiAoc3BsaXRfY29tbWl0X2luX3Byb2dyZXNzKHMpKSB7CkBAIC05MjUsNyArMTAyMSw3IEBACiAJCWVsc2UKIAkJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCiAJCQkJCSBfKCJZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIpKTsKLQkJaWYgKGFkdmljZV9zdGF0dXNfaGludHMpCisJCWlmIChzLT5oaW50cykKIAkJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCiAJCQkJXygiICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiKSk7CiAJfSBlbHNlIHsKQEAgLTkzNyw3ICsxMDMzLDcgQEAKIAkJZWxzZQogCQkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwKIAkJCQkJIF8oIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIpKTsKLQkJaWYgKGFkdmljZV9zdGF0dXNfaGludHMgJiYgIXMtPmFtZW5kKSB7CisJCWlmIChzLT5oaW50cyAmJiAhcy0+YW1lbmQpIHsKIAkJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCiAJCQkJXygiICAodXNlIFwiZ2l0IGNvbW1pdCAtLWFtZW5kXCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KSIpKTsKIAkJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCkBAIC05NTEsOCArMTA0Nyw5IEBACiAJCQkJCXN0cnVjdCB3dF9zdGF0dXNfc3RhdGUgKnN0YXRlLAogCQkJCQljb25zdCBjaGFyICpjb2xvcikKIHsKLQlzdGF0dXNfcHJpbnRmX2xuKHMsIGNvbG9yLCBfKCJZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZy4iKSk7Ci0JaWYgKGFkdmljZV9zdGF0dXNfaGludHMpIHsKKwlzdGF0dXNfcHJpbnRmX2xuKHMsIGNvbG9yLCBfKCJZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZyBjb21taXQgJXMuIiksCisJCQlmaW5kX3VuaXF1ZV9hYmJyZXYoc3RhdGUtPmNoZXJyeV9waWNrX2hlYWRfc2hhMSwgREVGQVVMVF9BQkJSRVYpKTsKKwlpZiAocy0+aGludHMpIHsKIAkJaWYgKGhhc191bm1lcmdlZChzKSkKIAkJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCiAJCQkJXygiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIikiKSk7CkBAIC05NzEsNyArMTA2OCw3IEBACiB7CiAJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwgXygiWW91IGFyZSBjdXJyZW50bHkgcmV2ZXJ0aW5nIGNvbW1pdCAlcy4iKSwKIAkJCSBmaW5kX3VuaXF1ZV9hYmJyZXYoc3RhdGUtPnJldmVydF9oZWFkX3NoYTEsIERFRkFVTFRfQUJCUkVWKSk7Ci0JaWYgKGFkdmljZV9zdGF0dXNfaGludHMpIHsKKwlpZiAocy0+aGludHMpIHsKIAkJaWYgKGhhc191bm1lcmdlZChzKSkKIAkJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCiAJCQkJXygiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCIpIikpOwpAQCAtOTk1LDcgKzEwOTIsNyBAQAogCWVsc2UKIAkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwKIAkJCQkgXygiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLiIpKTsKLQlpZiAoYWR2aWNlX3N0YXR1c19oaW50cykKKwlpZiAocy0+aGludHMpCiAJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCiAJCQlfKCIgICh1c2UgXCJnaXQgYmlzZWN0IHJlc2V0XCIgdG8gZ2V0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGJyYW5jaCkiKSk7CiAJd3Rfc3RhdHVzX3ByaW50X3RyYWlsZXIocyk7CkBAIC0xMDE2LDkgKzExMTMsOSBAQAogCQlzdHJidWZfc2V0bGVuKCZzYiwgc2IubGVuIC0gMSk7CiAJaWYgKCFzYi5sZW4pCiAJCWdvdG8gZ290X25vdGhpbmc7Ci0JaWYgKCFwcmVmaXhjbXAoc2IuYnVmLCAicmVmcy9oZWFkcy8iKSkKKwlpZiAoc3RhcnRzX3dpdGgoc2IuYnVmLCAicmVmcy9oZWFkcy8iKSkKIAkJc3RyYnVmX3JlbW92ZSgmc2IsMCwgc3RybGVuKCJyZWZzL2hlYWRzLyIpKTsKLQllbHNlIGlmICghcHJlZml4Y21wKHNiLmJ1ZiwgInJlZnMvIikpCisJZWxzZSBpZiAoc3RhcnRzX3dpdGgoc2IuYnVmLCAicmVmcy8iKSkKIAkJOwogCWVsc2UgaWYgKCFnZXRfc2hhMV9oZXgoc2IuYnVmLCBzaGExKSkgewogCQljb25zdCBjaGFyICphYmJyZXY7CkBAIC0xMDQ4LDcgKzExNDUsNyBAQAogCXN0cnVjdCBncmFiXzFzdF9zd2l0Y2hfY2JkYXRhICpjYiA9IGNiX2RhdGE7CiAJY29uc3QgY2hhciAqdGFyZ2V0ID0gTlVMTCwgKmVuZDsKIAotCWlmIChwcmVmaXhjbXAobWVzc2FnZSwgImNoZWNrb3V0OiBtb3ZpbmcgZnJvbSAiKSkKKwlpZiAoIXN0YXJ0c193aXRoKG1lc3NhZ2UsICJjaGVja291dDogbW92aW5nIGZyb20gIikpCiAJCXJldHVybiAwOwogCW1lc3NhZ2UgKz0gc3RybGVuKCJjaGVja291dDogbW92aW5nIGZyb20gIik7CiAJdGFyZ2V0ID0gc3Ryc3RyKG1lc3NhZ2UsICIgdG8gIik7CkBAIC0xMDgzLDkgKzExODAsOSBAQAogCSAgICAgKChjb21taXQgPSBsb29rdXBfY29tbWl0X3JlZmVyZW5jZV9nZW50bHkoc2hhMSwgMSkpICE9IE5VTEwgJiYKIAkgICAgICAhaGFzaGNtcChjYi5uc2hhMSwgY29tbWl0LT5vYmplY3Quc2hhMSkpKSkgewogCQlpbnQgb2ZzOwotCQlpZiAoIXByZWZpeGNtcChyZWYsICJyZWZzL3RhZ3MvIikpCisJCWlmIChzdGFydHNfd2l0aChyZWYsICJyZWZzL3RhZ3MvIikpCiAJCQlvZnMgPSBzdHJsZW4oInJlZnMvdGFncy8iKTsKLQkJZWxzZSBpZiAoIXByZWZpeGNtcChyZWYsICJyZWZzL3JlbW90ZXMvIikpCisJCWVsc2UgaWYgKHN0YXJ0c193aXRoKHJlZiwgInJlZnMvcmVtb3Rlcy8iKSkKIAkJCW9mcyA9IHN0cmxlbigicmVmcy9yZW1vdGVzLyIpOwogCQllbHNlCiAJCQlvZnMgPSAwOwpAQCAtMTEyNCw4ICsxMjIxLDEwIEBACiAJCQlzdGF0ZS0+cmViYXNlX2luX3Byb2dyZXNzID0gMTsKIAkJc3RhdGUtPmJyYW5jaCA9IHJlYWRfYW5kX3N0cmlwX2JyYW5jaCgicmViYXNlLW1lcmdlL2hlYWQtbmFtZSIpOwogCQlzdGF0ZS0+b250byA9IHJlYWRfYW5kX3N0cmlwX2JyYW5jaCgicmViYXNlLW1lcmdlL29udG8iKTsKLQl9IGVsc2UgaWYgKCFzdGF0KGdpdF9wYXRoKCJDSEVSUllfUElDS19IRUFEIiksICZzdCkpIHsKKwl9IGVsc2UgaWYgKCFzdGF0KGdpdF9wYXRoKCJDSEVSUllfUElDS19IRUFEIiksICZzdCkgJiYKKwkJCSFnZXRfc2hhMSgiQ0hFUlJZX1BJQ0tfSEVBRCIsIHNoYTEpKSB7CiAJCXN0YXRlLT5jaGVycnlfcGlja19pbl9wcm9ncmVzcyA9IDE7CisJCWhhc2hjcHkoc3RhdGUtPmNoZXJyeV9waWNrX2hlYWRfc2hhMSwgc2hhMSk7CiAJfQogCWlmICghc3RhdChnaXRfcGF0aCgiQklTRUNUX0xPRyIpLCAmc3QpKSB7CiAJCXN0YXRlLT5iaXNlY3RfaW5fcHJvZ3Jlc3MgPSAxOwpAQCAtMTE3Miw3ICsxMjcxLDcgQEAKIAlpZiAocy0+YnJhbmNoKSB7CiAJCWNvbnN0IGNoYXIgKm9uX3doYXQgPSBfKCJPbiBicmFuY2ggIik7CiAJCWNvbnN0IGNoYXIgKmJyYW5jaF9uYW1lID0gcy0+YnJhbmNoOwotCQlpZiAoIXByZWZpeGNtcChicmFuY2hfbmFtZSwgInJlZnMvaGVhZHMvIikpCisJCWlmIChzdGFydHNfd2l0aChicmFuY2hfbmFtZSwgInJlZnMvaGVhZHMvIikpCiAJCQlicmFuY2hfbmFtZSArPSAxMTsKIAkJZWxzZSBpZiAoIXN0cmNtcChicmFuY2hfbmFtZSwgIkhFQUQiKSkgewogCQkJYnJhbmNoX3N0YXR1c19jb2xvciA9IGNvbG9yKFdUX1NUQVRVU19OT0JSQU5DSCwgcyk7CkBAIC0xMjMzLDcgKzEzMzIsNyBAQAogCQl9CiAJfSBlbHNlIGlmIChzLT5jb21taXRhYmxlKQogCQlzdGF0dXNfcHJpbnRmX2xuKHMsIEdJVF9DT0xPUl9OT1JNQUwsIF8oIlVudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkJXMiKSwKLQkJCWFkdmljZV9zdGF0dXNfaGludHMKKwkJCXMtPmhpbnRzCiAJCQk/IF8oIiAodXNlIC11IG9wdGlvbiB0byBzaG93IHVudHJhY2tlZCBmaWxlcykiKSA6ICIiKTsKIAogCWlmIChzLT52ZXJib3NlKQpAQCAtMTI0NCwyNSArMTM0MywyNSBAQAogCQllbHNlIGlmIChzLT5ub3dhcm4pCiAJCQk7IC8qIG5vdGhpbmcgKi8KIAkJZWxzZSBpZiAocy0+d29ya2Rpcl9kaXJ0eSkgewotCQkJaWYgKGFkdmljZV9zdGF0dXNfaGludHMpCisJCQlpZiAocy0+aGludHMpCiAJCQkJcHJpbnRmKF8oIm5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICIKIAkJCQkJICIodXNlIFwiZ2l0IGFkZFwiIGFuZC9vciBcImdpdCBjb21taXQgLWFcIilcbiIpKTsKIAkJCWVsc2UKIAkJCQlwcmludGYoXygibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcbiIpKTsKIAkJfSBlbHNlIGlmIChzLT51bnRyYWNrZWQubnIpIHsKLQkJCWlmIChhZHZpY2Vfc3RhdHVzX2hpbnRzKQorCQkJaWYgKHMtPmhpbnRzKQogCQkJCXByaW50ZihfKCJub3RoaW5nIGFkZGVkIHRvIGNvbW1pdCBidXQgdW50cmFja2VkIGZpbGVzICIKIAkJCQkJICJwcmVzZW50ICh1c2UgXCJnaXQgYWRkXCIgdG8gdHJhY2spXG4iKSk7CiAJCQllbHNlCiAJCQkJcHJpbnRmKF8oIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudFxuIikpOwogCQl9IGVsc2UgaWYgKHMtPmlzX2luaXRpYWwpIHsKLQkJCWlmIChhZHZpY2Vfc3RhdHVzX2hpbnRzKQorCQkJaWYgKHMtPmhpbnRzKQogCQkJCXByaW50ZihfKCJub3RoaW5nIHRvIGNvbW1pdCAoY3JlYXRlL2NvcHkgZmlsZXMgIgogCQkJCQkgImFuZCB1c2UgXCJnaXQgYWRkXCIgdG8gdHJhY2spXG4iKSk7CiAJCQllbHNlCiAJCQkJcHJpbnRmKF8oIm5vdGhpbmcgdG8gY29tbWl0XG4iKSk7CiAJCX0gZWxzZSBpZiAoIXMtPnNob3dfdW50cmFja2VkX2ZpbGVzKSB7Ci0JCQlpZiAoYWR2aWNlX3N0YXR1c19oaW50cykKKwkJCWlmIChzLT5oaW50cykKIAkJCQlwcmludGYoXygibm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcylcbiIpKTsKIAkJCWVsc2UKIAkJCQlwcmludGYoXygibm90aGluZyB0byBjb21taXRcbiIpKTsKQEAgLTEzNjUsNiArMTQ2NCw3IEBACiAJY29uc3QgY2hhciAqYmFzZTsKIAljb25zdCBjaGFyICpicmFuY2hfbmFtZTsKIAlpbnQgbnVtX291cnMsIG51bV90aGVpcnM7CisJaW50IHVwc3RyZWFtX2lzX2dvbmUgPSAwOwogCiAJY29sb3JfZnByaW50ZihzLT5mcCwgY29sb3IoV1RfU1RBVFVTX0hFQURFUiwgcyksICIjIyAiKTsKIApAQCAtMTM3Miw3ICsxNDcyLDcgQEAKIAkJcmV0dXJuOwogCWJyYW5jaF9uYW1lID0gcy0+YnJhbmNoOwogCi0JaWYgKCFwcmVmaXhjbXAoYnJhbmNoX25hbWUsICJyZWZzL2hlYWRzLyIpKQorCWlmIChzdGFydHNfd2l0aChicmFuY2hfbmFtZSwgInJlZnMvaGVhZHMvIikpCiAJCWJyYW5jaF9uYW1lICs9IDExOwogCWVsc2UgaWYgKCFzdHJjbXAoYnJhbmNoX25hbWUsICJIRUFEIikpIHsKIAkJYnJhbmNoX25hbWUgPSBfKCJIRUFEIChubyBicmFuY2gpIik7CkBAIC0xMzgyLDIwICsxNDgyLDM3IEBACiAJYnJhbmNoID0gYnJhbmNoX2dldChzLT5icmFuY2ggKyAxMSk7CiAJaWYgKHMtPmlzX2luaXRpYWwpCiAJCWNvbG9yX2ZwcmludGYocy0+ZnAsIGhlYWRlcl9jb2xvciwgXygiSW5pdGlhbCBjb21taXQgb24gIikpOwotCWlmICghc3RhdF90cmFja2luZ19pbmZvKGJyYW5jaCwgJm51bV9vdXJzLCAmbnVtX3RoZWlycykpIHsKLQkJY29sb3JfZnByaW50ZihzLT5mcCwgYnJhbmNoX2NvbG9yX2xvY2FsLCAiJXMiLCBicmFuY2hfbmFtZSk7CisKKwljb2xvcl9mcHJpbnRmKHMtPmZwLCBicmFuY2hfY29sb3JfbG9jYWwsICIlcyIsIGJyYW5jaF9uYW1lKTsKKworCXN3aXRjaCAoc3RhdF90cmFja2luZ19pbmZvKGJyYW5jaCwgJm51bV9vdXJzLCAmbnVtX3RoZWlycykpIHsKKwljYXNlIDA6CisJCS8qIG5vIGJhc2UgKi8KIAkJZnB1dGMocy0+bnVsbF90ZXJtaW5hdGlvbiA/ICdcMCcgOiAnXG4nLCBzLT5mcCk7CiAJCXJldHVybjsKKwljYXNlIC0xOgorCQkvKiB3aXRoICJnb25lIiBiYXNlICovCisJCXVwc3RyZWFtX2lzX2dvbmUgPSAxOworCQlicmVhazsKKwlkZWZhdWx0OgorCQkvKiB3aXRoIGJhc2UgKi8KKwkJYnJlYWs7CiAJfQogCiAJYmFzZSA9IGJyYW5jaC0+bWVyZ2VbMF0tPmRzdDsKIAliYXNlID0gc2hvcnRlbl91bmFtYmlndW91c19yZWYoYmFzZSwgMCk7Ci0JY29sb3JfZnByaW50ZihzLT5mcCwgYnJhbmNoX2NvbG9yX2xvY2FsLCAiJXMiLCBicmFuY2hfbmFtZSk7CiAJY29sb3JfZnByaW50ZihzLT5mcCwgaGVhZGVyX2NvbG9yLCAiLi4uIik7CiAJY29sb3JfZnByaW50ZihzLT5mcCwgYnJhbmNoX2NvbG9yX3JlbW90ZSwgIiVzIiwgYmFzZSk7CiAKKwlpZiAoIXVwc3RyZWFtX2lzX2dvbmUgJiYgIW51bV9vdXJzICYmICFudW1fdGhlaXJzKSB7CisJCWZwdXRjKHMtPm51bGxfdGVybWluYXRpb24gPyAnXDAnIDogJ1xuJywgcy0+ZnApOworCQlyZXR1cm47CisJfQorCiAJY29sb3JfZnByaW50ZihzLT5mcCwgaGVhZGVyX2NvbG9yLCAiIFsiKTsKLQlpZiAoIW51bV9vdXJzKSB7CisJaWYgKHVwc3RyZWFtX2lzX2dvbmUpIHsKKwkJY29sb3JfZnByaW50ZihzLT5mcCwgaGVhZGVyX2NvbG9yLCBfKCJnb25lIikpOworCX0gZWxzZSBpZiAoIW51bV9vdXJzKSB7CiAJCWNvbG9yX2ZwcmludGYocy0+ZnAsIGhlYWRlcl9jb2xvciwgXygiYmVoaW5kICIpKTsKIAkJY29sb3JfZnByaW50ZihzLT5mcCwgYnJhbmNoX2NvbG9yX3JlbW90ZSwgIiVkIiwgbnVtX3RoZWlycyk7CiAJfSBlbHNlIGlmICghbnVtX3RoZWlycykgewpkaWZmIC0tZ2l0IGEvd3Qtc3RhdHVzLmggYi93dC1zdGF0dXMuaAppbmRleCBmYjcxNTJlLi4zMGE0ODEyIDEwMDY0NAotLS0gYS93dC1zdGF0dXMuaAorKysgYi93dC1zdGF0dXMuaApAQCAtNDQsMTIgKzQ0LDEzIEBACiAJaW50IGlzX2luaXRpYWw7CiAJY2hhciAqYnJhbmNoOwogCWNvbnN0IGNoYXIgKnJlZmVyZW5jZTsKLQljb25zdCBjaGFyICoqcGF0aHNwZWM7CisJc3RydWN0IHBhdGhzcGVjIHBhdGhzcGVjOwogCWludCB2ZXJib3NlOwogCWludCBhbWVuZDsKIAllbnVtIGNvbW1pdF93aGVuY2Ugd2hlbmNlOwogCWludCBub3dhcm47CiAJaW50IHVzZV9jb2xvcjsKKwlpbnQgZGlzcGxheV9jb21tZW50X3ByZWZpeDsKIAlpbnQgcmVsYXRpdmVfcGF0aHM7CiAJaW50IHN1Ym1vZHVsZV9zdW1tYXJ5OwogCWludCBzaG93X2lnbm9yZWRfZmlsZXM7CkBAIC01OSw2ICs2MCw3IEBACiAJdW5zaWduZWQgY29sb3B0czsKIAlpbnQgbnVsbF90ZXJtaW5hdGlvbjsKIAlpbnQgc2hvd19icmFuY2g7CisJaW50IGhpbnRzOwogCiAJLyogVGhlc2UgYXJlIGNvbXB1dGVkIGR1cmluZyBwcm9jZXNzaW5nIG9mIHRoZSBpbmRpdmlkdWFsIHNlY3Rpb25zICovCiAJaW50IGNvbW1pdGFibGU7CkBAIC04Niw4ICs4OCwxMCBAQAogCWNoYXIgKmRldGFjaGVkX2Zyb207CiAJdW5zaWduZWQgY2hhciBkZXRhY2hlZF9zaGExWzIwXTsKIAl1bnNpZ25lZCBjaGFyIHJldmVydF9oZWFkX3NoYTFbMjBdOworCXVuc2lnbmVkIGNoYXIgY2hlcnJ5X3BpY2tfaGVhZF9zaGExWzIwXTsKIH07CiAKK3ZvaWQgd3Rfc3RhdHVzX3RydW5jYXRlX21lc3NhZ2VfYXRfY3V0X2xpbmUoc3RydWN0IHN0cmJ1ZiAqKTsKIHZvaWQgd3Rfc3RhdHVzX3ByZXBhcmUoc3RydWN0IHd0X3N0YXR1cyAqcyk7CiB2b2lkIHd0X3N0YXR1c19wcmludChzdHJ1Y3Qgd3Rfc3RhdHVzICpzKTsKIHZvaWQgd3Rfc3RhdHVzX2NvbGxlY3Qoc3RydWN0IHd0X3N0YXR1cyAqcyk7CmRpZmYgLS1naXQgYS94ZGlmZi94ZW1pdC5jIGIveGRpZmYveGVtaXQuYwppbmRleCA0ZDg2NDU4Li40MjY2YWRhIDEwMDY0NAotLS0gYS94ZGlmZi94ZW1pdC5jCisrKyBiL3hkaWZmL3hlbWl0LmMKQEAgLTEwOCw3ICsxMDgsNyBAQAogewogCWlmIChsZW4gPiAwICYmCiAJCQkoaXNhbHBoYSgodW5zaWduZWQgY2hhcikqcmVjKSB8fCAvKiBpZGVudGlmaWVyPyAqLwotCQkJICpyZWMgPT0gJ18nIHx8CS8qIGFsc28gaWRlbnRpZmllcj8gKi8KKwkJCSAqcmVjID09ICdfJyB8fCAvKiBhbHNvIGlkZW50aWZpZXI/ICovCiAJCQkgKnJlYyA9PSAnJCcpKSB7IC8qIGlkZW50aWZpZXJzIGZyb20gVk1TIGFuZCBvdGhlciBlc290ZXJpY28gKi8KIAkJaWYgKGxlbiA+IHN6KQogCQkJbGVuID0gc3o7Cg==