Name: series-workflow9nxwp Phase: Failed StartedAt: 2026-06-29 08:33:31 +0000 UTC FinishedAt: 2026-06-29 08:55:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9nxwp[0] Phase: Succeeded StartedAt: 2026-06-29 08:33:31 +0000 UTC FinishedAt: 2026-06-29 08:53:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9nxwp[0].run-triage Phase: Succeeded StartedAt: 2026-06-29 08:33:31 +0000 UTC FinishedAt: 2026-06-29 08:53:13 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA4OjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlIGFuZCBmaXJtd2FyZSB0byBpbml0aWFsaXplLiBXaXRob3V0IGhhcmR3YXJlIGVtdWxhdGlvbiwgdGhlIGRyaXZlciBjYW5ub3QgY29tcGxldGUgaXRzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIChlLmcuLCBRTUkgZmlybXdhcmUgcmVhZGluZXNzKSwgbWVhbmluZyBpdCB3aWxsIG5vdCByZWdpc3RlciB3aXRoIG1hYzgwMjExLiBBcyBhIHJlc3VsdCwgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWRgIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGYwZWUzMjNmNzYyMjI0Yzc3OGYwM2Q5ODZhODg4ZjdiMTYyNDgyNzBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1biAyOSAwODo1MDowOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuaW5kZXggNjVhMDVhOTUyMGZmY2IuLjllMWQzYzY2Mjg1MjVhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuQEAgLTI1NzEsNyAmIzQzOzI1NzEsOCBAQCBpbnQgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kKHN0cnVjdCBhdGgxMmsgKmFyLFxuIFx0c3RydWN0IHdtaV90bHYgKnRsdjtcbiBcdHZvaWQgKnB0cjtcbiBcdGludCBpLCByZXQsIGxlbjtcbi1cdHUzMiAqdG1wX3B0ciwgZXh0cmFpZV9sZW5fd2l0aF9wYWQgPSAwO1xuJiM0MztcdF9fbGUzMiAqdG1wX3B0cjtcbiYjNDM7XHR1MzIgZXh0cmFpZV9sZW5fd2l0aF9wYWQgPSAwO1xuIFx0c3RydWN0IGF0aDEya193bWlfaGludF9zaG9ydF9zc2lkX2FyZyAqc19zc2lkID0gTlVMTDtcbiBcdHN0cnVjdCBhdGgxMmtfd21pX2hpbnRfYnNzaWRfYXJnICpoaW50X2Jzc2lkID0gTlVMTDtcbiBcbkBAIC0yNjU2LDkgJiM0MzsyNjU3LDEwIEBAIGludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsXG4gXHR0bHYgPSBwdHI7XG4gXHR0bHYtXHUwMDNlaGVhZGVyID0gYXRoMTJrX3dtaV90bHZfaGRyKFdNSV9UQUdfQVJSQVlfVUlOVDMyLCBsZW4pO1xuIFx0cHRyICYjNDM7PSBUTFZfSERSX1NJWkU7XG4tXHR0bXBfcHRyID0gKHUzMiAqKXB0cjtcbiYjNDM7XHR0bXBfcHRyID0gKF9fbGUzMiAqKXB0cjtcbiBcbi1cdG1lbWNweSh0bXBfcHRyLCBhcmctXHUwMDNlY2hhbl9saXN0LCBhcmctXHUwMDNlbnVtX2NoYW4gKiA0KTtcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhcmctXHUwMDNlbnVtX2NoYW47IGkmIzQzOyYjNDM7KVxuJiM0MztcdFx0dG1wX3B0cltpXSA9IGNwdV90b19sZTMyKGFyZy1cdTAwM2VjaGFuX2xpc3RbaV0pO1xuIFxuIFx0cHRyICYjNDM7PSBsZW47XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDg6NTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDEyayBkcml2ZXIsIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUgYW5kIGZpcm13YXJlIHRvIGluaXRpYWxpemUuIFdpdGhvdXQgaGFyZHdhcmUgZW11bGF0aW9uLCB0aGUgZHJpdmVyIGNhbm5vdCBjb21wbGV0ZSBpdHMgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgKGUuZy4sIFFNSSBmaXJtd2FyZSByZWFkaW5lc3MpLCBtZWFuaW5nIGl0IHdpbGwgbm90IHJlZ2lzdGVyIHdpdGggbWFjODAyMTEuIEFzIGEgcmVzdWx0LCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gYGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZGAgaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmMGVlMzIzZjc2MjIyNGM3NzhmMDNkOTg2YTg4OGY3YjE2MjQ4MjcwCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBKdW4gMjkgMDg6NTA6MDggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYwppbmRleCA2NWEwNWE5NTIwZmZjYi4uOWUxZDNjNjYyODUyNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYwpAQCAtMjU3MSw3ICYjNDM7MjU3MSw4IEBAIGludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsCiAJc3RydWN0IHdtaV90bHYgKnRsdjsKIAl2b2lkICpwdHI7CiAJaW50IGksIHJldCwgbGVuOwotCXUzMiAqdG1wX3B0ciwgZXh0cmFpZV9sZW5fd2l0aF9wYWQgPSAwOwomIzQzOwlfX2xlMzIgKnRtcF9wdHI7CiYjNDM7CXUzMiBleHRyYWllX2xlbl93aXRoX3BhZCA9IDA7CiAJc3RydWN0IGF0aDEya193bWlfaGludF9zaG9ydF9zc2lkX2FyZyAqc19zc2lkID0gTlVMTDsKIAlzdHJ1Y3QgYXRoMTJrX3dtaV9oaW50X2Jzc2lkX2FyZyAqaGludF9ic3NpZCA9IE5VTEw7CiAKQEAgLTI2NTYsOSAmIzQzOzI2NTcsMTAgQEAgaW50IGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZChzdHJ1Y3QgYXRoMTJrICphciwKIAl0bHYgPSBwdHI7CiAJdGx2LSZndDtoZWFkZXIgPSBhdGgxMmtfd21pX3Rsdl9oZHIoV01JX1RBR19BUlJBWV9VSU5UMzIsIGxlbik7CiAJcHRyICYjNDM7PSBUTFZfSERSX1NJWkU7Ci0JdG1wX3B0ciA9ICh1MzIgKilwdHI7CiYjNDM7CXRtcF9wdHIgPSAoX19sZTMyICopcHRyOwogCi0JbWVtY3B5KHRtcF9wdHIsIGFyZy0mZ3Q7Y2hhbl9saXN0LCBhcmctJmd0O251bV9jaGFuICogNCk7CiYjNDM7CWZvciAoaSA9IDA7IGkgJmx0OyBhcmctJmd0O251bV9jaGFuOyBpJiM0MzsmIzQzOykKJiM0MzsJCXRtcF9wdHJbaV0gPSBjcHVfdG9fbGUzMihhcmctJmd0O2NoYW5fbGlzdFtpXSk7CiAKIAlwdHIgJiM0Mzs9IGxlbjsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTM0CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogNDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkVuZGlhbm5lc3MgRml4IEFuYWx5c2lzIGZvciBhdGgxMmsgRHJpdmVyKioKCk9rYXksIHNvIHRoZXJlJiMzOTtzIGEgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmNgIHRoYXQgdHdlYWtzIGBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWRgLiAgSXQmIzM5O3MgYSBzdHJhaWdodGZvcndhcmQgZW5kaWFubmVzcyBmaXg6IGNoYW5naW5nIGB1MzIgKnRtcF9wdHJgIHRvIGBfX2xlMzIgKnRtcF9wdHJgIGFuZCByZXBsYWNpbmcgYSBgbWVtY3B5YCB3aXRoIGEgbG9vcCB0aGF0IGNhbGxzIGBjcHVfdG9fbGUzMmAuICBDbGVhbiBhbmQgc2ltcGxlLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtDYW4gd2UgZXZlbiAqc2VlKiB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/JiMzNDsuIFRoaXMgaXMgYSBkcml2ZXIgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcy4KCk5vdywgaGFyZHdhcmUtc3BlY2lmaWMgd2lyZWxlc3MgZHJpdmVycyBsaWtlIGF0aDEyayBhcmUgdHlwaWNhbGx5IGEgcGFpbiBpbiB0aGUgbmVjayB0byBleGVyY2lzZSB3aXRob3V0IGFjdHVhbCBoYXJkd2FyZS4gIFlvdSYjMzk7ZCBuZWVkIHNvbWV0aGluZyBsaWtlIG1hYzgwMjExX2h3c2ltLCBidXQgYXRoMTJrIGlzIGEgKnNwZWNpZmljKiBkcml2ZXIsIG5vdCBhIGdlbmVyYWwgaGFyZHdhcmUgc2ltdWxhdGlvbi4gSSBkb24mIzM5O3QgcmVtZW1iZXIgUUVNVSBlbXVsYXRpbmcgYXRoMTJrIGRpcmVjdGx5LiAgU28gdGhlIG1pbGxpb24tZG9sbGFyIHF1ZXN0aW9uIGlzOiBjYW4gd2UgdHJpZ2dlciBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYCB3aXRob3V0IHBoeXNpY2FsIGhhcmR3YXJlPwoKTGV0JiMzOTtzIGRvIGEgcXVpY2sgaW52ZXN0aWdhdGlvbi4gSSBzaG91bGQgY2hlY2sgaWYgYXRoMTJrIGNhbiBwcm9iZSBhdCBhbGwgd2l0aG91dCBoYXJkd2FyZS4gIElzIGl0IGEgUENJIG9yIEFIQiBkZXZpY2U/IEFoYSwgaXQgc3VwcG9ydHMgYm90aC4gV2l0aG91dCBoYXJkd2FyZSwgdGhlIGRyaXZlciBsaWtlbHkgd29uJiMzOTt0IGV2ZW4gbG9hZCwgbWVhbmluZyBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYCB3aWxsIHN0YXkgdW50b3VjaGVkLgoKSG9sZCBvbiBhIHNlY29uZCwgdGhvdWdoLiBTeXprYWxsZXIgY2FuIGRvIHdvbmRlcnMsIHJpZ2h0PyAgSXQgbWlnaHQgdXNlIGB2aGNpYCBvciBgbWFjODAyMTFfaHdzaW1gLCBhbmQgZm9yIFBDSSBkZXZpY2VzLCBpZiBmdXp6aW5nIGlzIGVuYWJsZWQsIGl0IGNhbiB1c2UgUENJIGZ1enppbmcsIGJ1dCBldmVuIHRoZW4sIGl0JiMzOTtzIHVzdWFsbHkgcmVhbGx5IHRyaWNreSB0byBnZXQgZGVlcCBpbnRvIHRoZSBXTUkgKFdpcmVsZXNzIE1lc3NhZ2UgSW50ZXJmYWNlKSB3aGljaCBpbnZvbHZlcyB0YWxraW5nIHRvIHRoZSBmaXJtd2FyZS4gTGV0IG1lIGNoZWNrIGlmIGF0aDEyayBoYXMgYW55IHNwZWNpZmljIGZ1enppbmcgaG9va3Mgb3IgaWYgaXQmIzM5O3MganVzdCB5b3VyIHN0YW5kYXJkIGRyaXZlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTUzMTk9c3RhdGljIGludCBhdGgxMmtfc3RhcnRfc2NhbihzdHJ1Y3QgYXRoMTJrICphcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTUzMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjUzMjY6XHRyZXQgPSBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoYXIsIGFyZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTUzMjctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmM9MjQ5MD1zdGF0aWMgdm9pZCBhdGgxMmtfd21pX2NvcHlfc2Nhbl9ldmVudF9jbnRybF9mbGFncyhzdHJ1Y3Qgd21pX3N0YXJ0X3NjYW5fY21kICpjbWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYy0yNTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYzoyNTYzOmludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jLTI1NjQtXHRcdFx0XHQgICBzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oPTY0MTI9dm9pZCBhdGgxMmtfd21pX3N0YXJ0X3NjYW5faW5pdChzdHJ1Y3QgYXRoMTJrICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmgtNjQxMy1cdFx0XHRcdHN0cnVjdCBhdGgxMmtfd21pX3NjYW5fcmVxX2FyZyAqYXJnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmg6NjQxNDppbnQgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kKHN0cnVjdCBhdGgxMmsgKmFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaC02NDE1LVx0XHRcdFx0ICAgc3RydWN0IGF0aDEya193bWlfc2Nhbl9yZXFfYXJnICphcmcpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA4OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NjEKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxNDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBhdGgxMmsgRHJpdmVyIENvbnRleHQqKgoKT2theSwgc28gdGhlIGBhdGgxMmtfc3RhcnRfc2NhbmAgZnVuY3Rpb24gaXMgdGhlIGVudHJ5IHBvaW50LCBjYWxsZWQgdGhyb3VnaCB0aGUgbWFjODAyMTEgb3BlcmF0aW9ucywgd2hpY2ggaXMgZ29vZCBjb250ZXh0LiBCdXQgZ2V0dGluZyB0aGVyZSBpbXBsaWVzIHRoZSBhdGgxMmsgZHJpdmVyIGlzIHByb3Blcmx5IGluaXRpYWxpemVkLCBhbmQgdGhhdCYjMzk7cyB0aGUgcnViLiBUaGlzIGRyaXZlciBpcyBpbmhlcmVudGx5IHRpZWQgdG8gc3BlY2lmaWMgaGFyZHdhcmU6IFBDSWUgb3IgQUhCLCBhbmQgcmVxdWlyZXMgdGhlIGNvcnJlc3BvbmRpbmcgZmlybXdhcmUgdG8gZXZlbiBnZXQgb2ZmIHRoZSBncm91bmQuIEluIGEgdmlydHVhbCBlbnZpcm9ubWVudCBsaWtlIEdDRSBvciBRRU1VLCB3aXRob3V0IHNvbWUgc2VyaW91c2x5IHNvcGhpc3RpY2F0ZWQgaGFyZHdhcmUgZW11bGF0aW9uLCB0aGUgY2hhbmNlIG9mIHRoaXMgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2Ugc3VjY2VlZGluZyBpcyBpbmNyZWRpYmx5IHNsaW0uCgpIbW0sIEkgcmVtZW1iZXIgc3l6a2FsbGVyIGRvZXMgZGFiYmxlIGluIFBDSSBmdXp6aW5nLiBCdXQsIGV2ZW4gd2l0aCB0aGF0LCBpdCByYXJlbHkgZ2V0cyBwYXN0IHRoZSBpbml0aWFsIGZpcm13YXJlIGxvYWQgYW5kIHRob3NlIGluY3JlZGlibHkgY29tcGxleCBoYW5kc2hha2VzIHRoYXQgZHJpdmVycyBsaWtlIGF0aDEyayBkZXBlbmQgb24uIEl04oCZcyB1c3VhbGx5IHRvbyBtdWNoIGZvciBpdCB0byBoYW5kbGUuIFRoYXTigJlzIHByb2JhYmx5IHdoZXJlIHRoaW5ncyBhcmUgZ29pbmcgc2lkZXdheXMuCgpBbHJpZ2h0LCBhIG1vcmUgcHJvbWlzaW5nIGF2ZW51ZTogaXMgdGhlcmUgYSBtb2NrIG9yIHRlc3RpbmcgZnJhbWV3b3JrIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgYXRoMTJrPyBUaGF0IHdvdWxkIGJlIHRoZSBiZXN0IGNhc2Ugc2NlbmFyaW8gYXQgdGhpcyBzdGFnZS4gSXQgbWlnaHQgYmUgcG9zc2libGUgdG8gaW5qZWN0IHNvbWUgc2lnbmFscyBmb3IgdGVzdGluZyB0aGF0IGFyZSBub3QgcmVsaWFudCBvbiB0aGUgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gcGF0aC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQVRIMTJLJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyOm9iai0kKENPTkZJR19BVEgxMkspICYjNDM7PSBhdGgxMmsub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0zLWF0aDEyay15ICYjNDM7PSBjb3JlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNTphdGgxMmstJChDT05GSUdfQVRIMTJLX0FIQikgJiM0Mzs9IGFoYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfQVRIMTJLKSAmIzQzOz0gd2lmaTcvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyOTphdGgxMmstJChDT05GSUdfQVRIMTJLX0RFQlVHRlMpICYjNDM7PSBkZWJ1Z2ZzLm8gZGVidWdmc19odHRfc3RhdHMubyBkZWJ1Z2ZzX3N0YS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTMwLWF0aDEyay0kKENPTkZJR19BQ1BJKSAmIzQzOz0gYWNwaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjMxOmF0aDEyay0kKENPTkZJR19BVEgxMktfVFJBQ0lORykgJiM0Mzs9IHRyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMzItYXRoMTJrLSQoQ09ORklHX1BNKSAmIzQzOz0gd293Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzM6YXRoMTJrLSQoQ09ORklHX0FUSDEyS19DT1JFRFVNUCkgJiM0Mzs9IGNvcmVkdW1wLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMzQtYXRoMTJrLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICYjNDM7PSB0ZXN0bW9kZS5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmg9NjE0PXN0cnVjdCBhdGgxMmsge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oLTczMS1cdHUzMiBjYWNoZWRfcHBkdV9pZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oOjczMjojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuaC03MzMtXHRzdHJ1Y3QgYXRoMTJrX2RlYnVnIGRlYnVnO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oPTkzNz1zdHJ1Y3QgYXRoMTJrX2Jhc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oLTEwMzUtXHRlbnVtIGF0aDEya19kZnNfcmVnaW9uIGRmc19yZWdpb247XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuaDoxMDM2OiNpZmRlZiBDT05GSUdfQVRIMTJLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oLTEwMzctXHRzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX3NvYztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmVkdW1wLmg9Mzc9c3RydWN0IGF0aDEya19kdW1wX2ZpbGVfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlZHVtcC5oLTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlZHVtcC5oOjYwOiNpZmRlZiBDT05GSUdfQVRIMTJLX0NPUkVEVU1QXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmVkdW1wLmgtNjEtZW51bSBhdGgxMmtfZndfY3Jhc2hfZHVtcF90eXBlIGF0aDEya19jb3JlZHVtcF9nZXRfZHVtcF90eXBlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5jPTU1PUVYUE9SVF9TWU1CT0woX19hdGgxMmtfd2Fybik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmMtNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmM6NTc6I2lmZGVmIENPTkZJR19BVEgxMktfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuYy01OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmM9MTA4PUVYUE9SVF9TWU1CT0woYXRoMTJrX2RiZ19kdW1wKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuYy0xMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmM6MTEwOiNlbmRpZiAvKiBDT05GSUdfQVRIMTJLX0RFQlVHICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oPTQxPWV4dGVybiBib29sIGF0aDEya19mdG1fbW9kZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuaC00Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuaDo0MzojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oLTQ0LV9fcHJpbnRmKDMsIDQpIHZvaWQgX19hdGgxMmtfZGJnKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oPTQ3PXZvaWQgYXRoMTJrX2RiZ19kdW1wKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oLTUwLVx0XHQgICAgIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmg6NTE6I2Vsc2UgLyogQ09ORklHX0FUSDEyS19ERUJVRyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oLTUyLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2F0aDEya19kYmcoc3RydWN0IGF0aDEya19iYXNlICphYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmg9NTg9c3RhdGljIGlubGluZSB2b2lkIGF0aDEya19kYmdfZHVtcChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuaC02My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmg6NjQ6I2VuZGlmIC8qIENPTkZJR19BVEgxMktfREVCVUcgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuaC02NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnMuaC05LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmg6MTA6I2lmZGVmIENPTkZJR19BVEgxMktfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmgtMTEtdm9pZCBhdGgxMmtfZGVidWdmc19zb2NfY3JlYXRlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmcy5oPTE0Mj1zdGF0aWMgaW5saW5lIHZvaWQgYXRoMTJrX2RlYnVnZnNfcGRldl9jcmVhdGUoc3RydWN0IGF0aDEya19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnMuaC0xNDQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmg6MTQ1OiNlbmRpZiAvKiBDT05GSUdfQVRIMTJLX0RFQlVHRlMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmcy5oLTE0Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnNfaHR0X3N0YXRzLmg9MjY9dm9pZCBhdGgxMmtfZGVidWdmc19odHRfc3RhdHNfcmVnaXN0ZXIoc3RydWN0IGF0aDEyayAqYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oOjI4OiNpZmRlZiBDT05GSUdfQVRIMTJLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19odHRfc3RhdHMuaC0yOS12b2lkIGF0aDEya19kZWJ1Z2ZzX2h0dF9leHRfc3RhdHNfaGFuZGxlcihzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oLTMwLVx0XHRcdFx0XHQgIHN0cnVjdCBza19idWZmICpza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oOjMxOiNlbHNlIC8qIENPTkZJR19BVEgxMktfREVCVUdGUyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oLTMyLXN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMmtfZGVidWdmc19odHRfZXh0X3N0YXRzX2hhbmRsZXIoc3RydWN0IGF0aDEya19iYXNlICphYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnNfc3RhLmgtMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnNfc3RhLmg6MTU6I2lmZGVmIENPTkZJR19BVEgxMktfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX3N0YS5oLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX3N0YS5oPTE3PXZvaWQgYXRoMTJrX2RlYnVnZnNfbGlua19zdGFfb3BfYWRkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19zdGEuaC0yMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19zdGEuaDoyMjojZW5kaWYgLyogQ09ORklHX0FUSDEyS19ERUJVR0ZTICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnNfc3RhLmgtMjMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYz0xMTk4PXZvaWQgYXRoMTJrX3BjaV93cml0ZTMyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTEyNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjEyNDQ6I2lmZGVmIENPTkZJR19BVEgxMktfQ09SRURVTVBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTI0NS1zdGF0aWMgaW50IGF0aDEya19wY2lfY29yZWR1bXBfY2FsY3VsYXRlX3NpemUoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTMyICpkdW1wX3NlZ19zeilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jPTE0Nzk9c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMmtfaGlmX29wcyBhdGgxMmtfcGNpX2hpZl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNDk2LVx0LnBhbmljX2hhbmRsZXIgPSBhdGgxMmtfcGNpX3BhbmljX2hhbmRsZXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE0OTc6I2lmZGVmIENPTkZJR19BVEgxMktfQ09SRURVTVBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTQ5OC1cdC5jb3JlZHVtcF9kb3dubG9hZCA9IGF0aDEya19wY2lfY29yZWR1bXBfZG93bmxvYWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90cmFjZS5oLTE0LS8qIGNyZWF0ZSBlbXB0eSBmdW5jdGlvbnMgd2hlbiB0cmFjaW5nIGlzIGRpc2FibGVkICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmg6MTU6I2lmICFkZWZpbmVkKENPTkZJR19BVEgxMktfVFJBQ0lORylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdHJhY2UuaC0xNi0jdW5kZWYgVFJBQ0VfRVZFTlRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmg9MTg9c3RhdGljIGlubGluZSB2b2lkIHRyYWNlXyAjIyBuYW1lKHByb3RvKSB7fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90cmFjZS5oOjE5OiNlbmRpZiAvKiAhQ09ORklHX0FUSDEyS19UUkFDSU5HIHx8IF9fQ0hFQ0tFUl9fICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmgtMjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19BVEgxMkspICYjNDM7PSBhdGgxMmtfd2lmaTcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9NYWtlZmlsZS0zLWF0aDEya193aWZpNy15ICYjNDM7PSBjb3JlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L01ha2VmaWxlLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9NYWtlZmlsZToyMDphdGgxMmtfd2lmaTctJChDT05GSUdfQVRIMTJLX0FIQikgJiM0Mzs9IGFoYi5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9haGIuaC04LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9haGIuaDo5OiNpZmRlZiBDT05GSUdfQVRIMTJLX0FIQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9haGIuaC0xMC1pbnQgYXRoMTJrX3dpZmk3X2FoYl9pbml0KHZvaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYz0xMDU3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBhdGgxMmtfb3BzX3dpZmk3ID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0xMTA0LSNlbmRpZlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jOjExMDU6I2lmZGVmIENPTkZJR19BVEgxMktfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTExMDYtXHQudmlmX2FkZF9kZWJ1Z2ZzICAgICAgICAgICAgICAgID0gYXRoMTJrX2RlYnVnZnNfb3BfdmlmX2FkZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTEwOC1cdENGRzgwMjExX1RFU1RNT0RFX0NNRChhdGgxMmtfdG1fY21kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jOjExMDk6I2lmZGVmIENPTkZJR19BVEgxMktfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTExMTAtXHQubGlua19zdGFfYWRkX2RlYnVnZnMgICAgICAgICAgID0gYXRoMTJrX2RlYnVnZnNfbGlua19zdGFfb3BfYWRkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmM9OTE5Mz1zdGF0aWMgdm9pZCBhdGgxMmtfd21pX2V2ZW50X3RlYXJkb3duX2NvbXBsZXRlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYy05MjE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYzo5MjE3OiNpZmRlZiBDT05GSUdfQVRIMTJLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMtOTIxOC1zdGF0aWMgaW50IGF0aDEya193bWlfdHBjX3N0YXRzX2NvcHlfYnVmZmVyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDg6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzUzMQoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDI1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBhdGgxMmsgRHJpdmVyIHdpdGggU3l6a2FsbGVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgYXRoMTJrYCBoZXJlLiBJIHNlZSBgQ09ORklHX0FUSDEyS2AgYW5kIGBDT05GSUdfQVRIMTJLX0FIQmAgYXJlIGRlZmluZWQuIE5vdywgSSByZWNhbGwgdGhhdCBzeXprYWxsZXIgaGFzIGBtYWM4MDIxMV9od3NpbWAsIHdoaWNoIGlzIGdyZWF0IGZvciBzaW11bGF0aW5nIGhhcmR3YXJlLiBCdXQgYGF0aDEya2AgaXMgYSAqcmVhbCogaGFyZHdhcmUgZHJpdmVyLCBzbyBjYW4gc3l6a2FsbGVyIGV2ZW4gZnV6eiBpdCBkaXJlY3RseT8KCkkga25vdyBzeXprYWxsZXIgaGFzIGEgYHdpZmlgIGZ1enppbmcgc3Vic3lzdGVtLCBhbmQgaXQgZGVmaW5pdGVseSB1c2VzIGBtYWM4MDIxMV9od3NpbWAgdG8gaW5qZWN0IHBhY2tldHMuIEJ1dCwgSSBkb24mIzM5O3QgdGhpbmsgaXQmIzM5O3MgZGlyZWN0bHkgdXNpbmcgYGF0aDEya2AsIHJpZ2h0PyBXYWl0IGEgc2Vjb25kLCB3YXNuJiMzOTt0IHRoZXJlIFBDSSBmdXp6aW5nIGFzIHdlbGw/IFllcywgc3l6a2FsbGVyICpjYW4qIGVtdWxhdGUgUENJIGRldmljZXMuIFRoYXQmIzM5O3MgYSBwb3NzaWJpbGl0eS4KCkJ1dCBoZXJlJiMzOTtzIHRoZSBraWNrZXI6IGBhdGgxMmtgIG5lZWRzIGZpcm13YXJlIHRvIGJlIGxvYWRlZCDigJMgdGhpbmdzIGxpa2UgYGF0aDEya19jb3JlX2ZldGNoX2JkZmAgYXJlIGludm9sdmVkLiBJZiB0aGF0IGZpcm13YXJlIGlzbiYjMzk7dCBwcmVzZW50LCBvciBpZiB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgZmFpbHMsIHRoZSBkcml2ZXIgd29uJiMzOTt0IHJlZ2lzdGVyIHdpdGggbWFjODAyMTEsIGFuZCBjcnVjaWFsbHksIHNvbWV0aGluZyBsaWtlIGBhdGgxMmtfc3RhcnRfc2NhbmAgd2lsbCBuZXZlciBnZXQgY2FsbGVkLiBUaGF0JiMzOTtzIGEgaHVnZSBibG9ja2VyLgoKU28sIHRoZSBxdWVzdGlvbiBpcywgaXMgdGhlcmUgYW55IGtpbmQgb2YgdGVzdG1vZGUgb3IgbW9jayBzZXR1cCBmb3IgYGF0aDEya2A/IExldCBtZSBzZWXigKYgQWgsIGBDT05GSUdfTkw4MDIxMV9URVNUTU9ERWAgaXMgdXNlZCBmb3IgYHRlc3Rtb2RlLmNgLiBOb3csIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCB0aGF04oCmCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDg6NTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA4OjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgyMDgKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBXaXJlbGVzcyBTY2FuIEluaXRpYXRpb24gRmxvdyoqCgpPa2F5LCBsZXQmIzM5O3MgdHJhY2UgdGhpcy4gTXkgcHJpbWFyeSBjb25jZXJuIGlzIGNvbmZpcm1pbmcgdGhlIGFjY2Vzc2liaWxpdHkgb2YgYGF0aDEya19zdGFydF9zY2FuYC4gSXQmIzM5O3MgdGhlIGRlc2lnbmF0ZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGBzdGFydF9zY2FuYCBvciBgc2NhbmAgb3BlcmF0aW9uIGRlZmluZWQgd2l0aGluIGBpZWVlODAyMTFfb3BzYCwgd2hpY2gsIGlmIEkgcmVjYWxsIGNvcnJlY3RseSwgaXMgdGhlIHN0YW5kYXJkIHN0cnVjdHVyZSBmb3Igd2lyZWxlc3MgZHJpdmVyIG9wZXJhdGlvbnMuIAoKSSBzZWUgYGF0aDEya19vcHNfd2lmaTdgIGhhcyBgLnN0YXJ0X3NjYW4gPSBhdGgxMmtfc3RhcnRfc2NhbmAuIFRoYXQgc2VlbXMgc3RyYWlnaHRmb3J3YXJkLCBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgZHJpdmVyJiMzOTtzIHByb3Blcmx5IHNldCB1cC4gVGhlIG5leHQgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGhvdyB0aGVzZSBvcGVyYXRpb25zIGdldCByZWdpc3RlcmVkLCBhbmQgdGhhdCB0eXBpY2FsbHkgbWVhbnMgYSBzdWNjZXNzZnVsIGRyaXZlciBwcm9iZS4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZSBwcm9iZSByb3V0aW5lLCBsaWtlbHkgc29tZXRoaW5nIGxpa2UgYGF0aDEya19jb3JlX3Byb2JlYCDigJMgb3IgYSBzaW1pbGFybHkgbmFtZWQgZnVuY3Rpb24gZm9yIHRoaXMgc3BlY2lmaWMgYXJjaGl0ZWN0dXJlLCBhdCBsZWFzdCDigJMgaXMgY2FsbGVkIHN1Y2Nlc3NmdWxseSBhbmQsIG1vcmUgaW1wb3J0YW50bHksIHRoYXQgaXQgY2FsbHMgYGllZWU4MDIxMV9od19zZXR1cGAgb3IgYHdpcGh5X3JlZ2lzdGVyYC4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgbWFnaWMgb2YgbGlua2luZyB0aGUgZHJpdmVyIHRvIHRoZSB3aXJlbGVzcyBzdGFjayBoYXBwZW5zLCBpc24mIzM5O3QgaXQ/IEkgbmVlZCB0byBmb2N1cyB0aGVyZSBuZXh0IHRvIGdldCB0aGUgY29tcGxldGUgcGljdHVyZSBvZiBob3cgdGhlIHNjYW4gaXMgaW5pdGlhdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3dpcGh5X3JlZ2lzdGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4NjQzCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKlBvdGVudGlhbCBDbHVlIERldGVjdGVkOiBgYXRoMTJrX21hY19yZWdpc3RlcmAqKgoKSG9sZCBvbiBhIHNlY29uZC4uLiBqdXN0IHNhdyBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSB2ZXJ5IGltcG9ydGFudC4gVGhhdCAmIzM0O3dhaXQmIzM0OyByZWFjdGlvbiBsaWtlbHkgaW5kaWNhdGVzIEkmIzM5O20gcmUtZXZhbHVhdGluZyBzb21ldGhpbmcuIFRoZSBtZW50aW9uIG9mIGBhdGgxMmtfbWFjX3JlZ2lzdGVyYC4uLiB0aGF0JiMzOTtzIGdvdCBteSBhdHRlbnRpb24uIFRoYXQgZnVuY3Rpb24gbmFtZSBpdHNlbGYgaXMgYSBwcmV0dHkgc2lnbmlmaWNhbnQgc2lnbmFsLiBJdCBpbW1lZGlhdGVseSBzdWdnZXN0cyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBBdGhlcm9zIDgwMi4xMWF4IE1BQyBsYXllciwgc3BlY2lmaWNhbGx5IHRoZSBhdGgxMmsgZHJpdmVyLiBJZiB0aGUgY29kZSBmbG93IGFjdHVhbGx5IHV0aWxpemVzIHRoaXMgZnVuY3Rpb24sIHRoZW4gdGhlIHByb2JsZW0gbGllcyB3aXRoaW4gdGhpcyBjb21wb25lbnQuIEl0IGFsc28gaW5kaWNhdGVzIHRoaXMgY29kZSBvcGVyYXRlcyBhdCB0aGF0IGxvdy1sZXZlbCB3aXRoaW4gdGhlIGhhcmR3YXJlIGFuZCB0aGUgZHJpdmVyLiBNeSB0aG91Z2h0IGlzIHRoYXQgaXQgY291bGQgZWl0aGVyIGJlIGEgZ29vZCB0aGluZyBvciBhIGJhZCB0aGluZywgZGVwZW5kaW5nIG9uIGNvbnRleHQuIEkgbmVlZCB0byB0cmFjayB3aGVyZSB0aGF0IGZ1bmN0aW9uIGlzIGFjdHVhbGx5ICpjYWxsZWQqIGFuZCB3aGF0JiMzOTtzIGJlaW5nIHBhc3NlZCB0byBpdC4gSXMgaXQgYmVpbmcgY2FsbGVkIGF0IHRoZSBhcHByb3ByaWF0ZSB0aW1lPyBBcmUgdGhlIHJlZ2lzdGVyIHZhbHVlcyBiZWluZyBpbml0aWFsaXplZCBjb3JyZWN0bHk/IElzIHRoZSByZWdpc3RlciBzdHJ1Y3R1cmUgaXRzZWxmIHByb3Blcmx5IGRlZmluZWQgYW5kIGFjY2Vzc2VkPyBOZWVkIHRvIGRpZyBpbnRvIHRoYXQgZnVuY3Rpb24mIzM5O3MgaW1wbGVtZW50YXRpb24gYW5kIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGF0aDEyayBkcml2ZXIuIFRoaXMgY291bGQgYmUgYSBjcml0aWNhbCBwaWVjZSBvZiB0aGUgcHV6emxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfbWFjX3JlZ2lzdGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmM9MTEzMj1zdGF0aWMgaW50IGF0aDEya19jb3JlX2h3X2dyb3VwX3N0YXJ0KHN0cnVjdCBhdGgxMmtfaHdfZ3JvdXAgKmFnKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jLTExNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxMTU2Olx0cmV0ID0gYXRoMTJrX21hY19yZWdpc3RlcihhZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYy0xMTU3LVx0aWYgKFdBUk5fT04ocmV0KSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTE0OTYyPXZvaWQgYXRoMTJrX21hY19tbG9fdGVhcmRvd24oc3RydWN0IGF0aDEya19od19ncm91cCAqYWcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDk4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6MTQ5ODQ6aW50IGF0aDEya19tYWNfcmVnaXN0ZXIoc3RydWN0IGF0aDEya19od19ncm91cCAqYWcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0OTg1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oPTE1ND12b2lkIGF0aDEya19tYWNfdW5yZWdpc3RlcihzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oOjE1NTppbnQgYXRoMTJrX21hY19yZWdpc3RlcihzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oLTE1Ni1pbnQgYXRoMTJrX21hY19hbGxvY2F0ZShzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA4OjUyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk0MTMKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA0MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgc25pcHBldCwgYXMgaWYgaXQgd2VyZSBteSB0aG91Z2h0IHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBEcml2ZXIgQ29kZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnRgIGZ1bmN0aW9uIGNhbGwuIFRoZSBpbnRlcmVzdGluZyB0aGluZyBoZXJlIGlzIHRoYXQgd2l0aGluIHRoaXMgZnVuY3Rpb24gY2FsbCwgYGF0aDEya19tYWNfcmVnaXN0ZXJgIGlzIGNhbGxlZC4gVGhhdCBtYWtlcyBtZSB0aGluayBhYm91dCB0aGUgcmVnaXN0ZXIgb3BlcmF0aW9ucy4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzOiB3aG8gaXMgY2FsbGluZyBgYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnRgIGluIHRoZSBmaXJzdCBwbGFjZT8gSSBuZWVkIHRvIHRyYWNlIGJhY2sgZnJvbSB0aGlzIHBvaW50LiBJcyB0aGlzIGEgdG9wLWxldmVsIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIG9yIGlzIGl0IGludm9rZWQgYXMgcGFydCBvZiBzb21lIG90aGVyIHByb2Nlc3M/IEkgbmVlZCB0byBmaW5kIHRoZSBjYWxsIGdyYXBoIHRvIGZ1bGx5IGdyYXNwIHRoaXMgcGFydCBvZiB0aGUgZHJpdmVyJiMzOTtzIGV4ZWN1dGlvbiBmbG93LiBVbmRlcnN0YW5kaW5nIHRoZSBjYWxsZXIgd2lsbCBnaXZlIG1lIGNydWNpYWwgY29udGV4dCByZWdhcmRpbmcgd2h5IHRoZSBNQUMgcmVnaXN0cmF0aW9uIGlzIGhhcHBlbmluZyBhdCB0aGlzIHN0YWdlIG9mIHRoZSBpbml0aWFsaXphdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDg6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYz0xMTA2PXN0YXRpYyBpbnQgYXRoMTJrX2NvcmVfbWxvX3NldHVwKHN0cnVjdCBhdGgxMmtfaHdfZ3JvdXAgKmFnKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jLTExMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxMTMyOnN0YXRpYyBpbnQgYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnQoc3RydWN0IGF0aDEya19od19ncm91cCAqYWcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYy0xMTMzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYz0xMjIyPXN0YXRpYyBpbmxpbmVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jOjEyMjM6Ym9vbCBhdGgxMmtfY29yZV9od19ncm91cF9zdGFydF9yZWFkeShzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jLTEyMjQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jPTEzMDM9aW50IGF0aDEya19jb3JlX3FtaV9maXJtd2FyZV9yZWFkeShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jLTEzMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxMzM3Olx0aWYgKGF0aDEya19jb3JlX2h3X2dyb3VwX3N0YXJ0X3JlYWR5KGFnKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmM6MTMzODpcdFx0cmV0ID0gYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnQoYWcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTMzOS1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jPTE2Mjg9c3RhdGljIHZvaWQgYXRoMTJrX2NvcmVfcmVzdGFydChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTY1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jOjE2NTI6XHRcdGlmICghYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnRfcmVhZHkoYWcpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYy0xNjUzLVx0XHRcdG11dGV4X3VubG9jayhcdTAwMjZhZy1cdTAwM2VtdXRleCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA4OjUyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwMjgwCgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMjQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlVucmVhY2hhYmxlIENvZGUgaW4gYSBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgYXRoMTJrX2NvcmVfcW1pX2Zpcm13YXJlX3JlYWR5YCBmdW5jdGlvbiwgYW5kIGl0JiMzOTtzIHByZXR0eSBjbGVhciB3aGF0JiMzOTtzIGhhcHBlbmluZy4gVGhlIGRyaXZlciYjMzk7cyB3YWl0aW5nIGZvciB0aGUgZmlybXdhcmUgdG8gYmVjb21lIHJlYWR5LCBzaWduYWxlZCB0aHJvdWdoIHRoZSBRTUkgaW50ZXJmYWNlLiBUaGlzIGlzIGhvdyB0aGUgTUFDIGdldHMgcmVnaXN0ZXJlZC4gTWFrZXMgc2Vuc2UuIEJ1dCBoZXJlJiMzOTtzIHRoZSBwcm9ibGVtOiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCB3aGVyZSB0aGVyZSYjMzk7cyBubyByZWFsIGhhcmR3YXJlIGVtdWxhdGlvbiwgdGhlIGZpcm13YXJlIGlzbiYjMzk7dCBnb2luZyB0byBsb2FkLiBRTUkgd2lsbCByZW1haW4gc2lsZW50LCBubyAmIzM0O3JlYWR5JiMzNDsgc2lnbmFsLCBhbmQgdGhlIE1BQyB3b24mIzM5O3QgYmUgcmVnaXN0ZXJlZC4gVGhhdCBtZWFucyBgYXRoMTJrX3N0YXJ0X3NjYW5gIGFuZCwgY29uc2VxdWVudGx5LCBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYCBhcmUgbmV2ZXIgcmVhY2hlZC4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBpc3N1ZSB3aXRoIHRoZSBlbnZpcm9ubWVudC4KCk5vdywgSSYjMzk7bSB0cnlpbmcgdG8gdGhpbmsgb3V0c2lkZSB0aGUgYm94LiBDb3VsZCBzeXprYWxsZXIsIHdpdGggaXRzIFBDSSBmdXp6ZXIsIHBvc3NpYmx5IHRyaWNrIHRoZSBzeXN0ZW0gaW50byB0aGlua2luZyB0aGUgZmlybXdhcmUgaXMgcmVhZHk/IEl0IGNhbiBnZW5lcmF0ZSBhcmJpdHJhcnkgcmVzcG9uc2VzIHRvIE1NSU8gcmVhZHMsIHdoaWNoIGlzIGEgcG93ZXJmdWwgdG9vbC4gQnV0LCByZWFsaXN0aWNhbGx5LCBnZXR0aW5nIHRocm91Z2ggYSBjb21wbGV4IGZpcm13YXJlIGJvb3Qgc2VxdWVuY2UgdGhhdCBpbnZvbHZlcyBETUFpbmcgZmlybXdhcmUgZGF0YSwgd2FpdGluZyBmb3Igc3BlY2lmaWMgaW50ZXJydXB0cywgYW5kIHRoZW4gdGhlIHdob2xlIFFNSSBtZXNzYWdlIGV4Y2hhbmdlLCB3aXRoIHB1cmVseSByYW5kb20gZnV6emluZz8gSXQmIzM5O3MgcHJhY3RpY2FsbHkgaW1wb3NzaWJsZS4gVGhlIGNvbXBsZXhpdHkgaXMganVzdCB0b28gaGlnaC4gU28sIGl0IHN0aWxsIGZlZWxzIHVucmVhY2hhYmxlLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEkgc2hvdWxkIGNoZWNrIG9uZSBtb3JlIHRoaW5nLiBJJiMzOTttIGdvaW5nIHRvIGRvdWJsZSBjaGVjayBhbmQgbWFrZSBzdXJlIHRoYXQgdGhlcmUmIzM5O3Mgbm8gb3RoZXIgcGF0aCB0aGF0IGNvdWxkIGNhbGwgYGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZGAuIEkgbmVlZCB0byBiZSAxMDAlIHN1cmUgdGhpcyBpc24mIzM5O3QgcmVhY2hhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTUzMTk9c3RhdGljIGludCBhdGgxMmtfc3RhcnRfc2NhbihzdHJ1Y3QgYXRoMTJrICphcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTUzMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjUzMjY6XHRyZXQgPSBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoYXIsIGFyZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTUzMjctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmM9MjQ5MD1zdGF0aWMgdm9pZCBhdGgxMmtfd21pX2NvcHlfc2Nhbl9ldmVudF9jbnRybF9mbGFncyhzdHJ1Y3Qgd21pX3N0YXJ0X3NjYW5fY21kICpjbWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYy0yNTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYzoyNTYzOmludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jLTI1NjQtXHRcdFx0XHQgICBzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oPTY0MTI9dm9pZCBhdGgxMmtfd21pX3N0YXJ0X3NjYW5faW5pdChzdHJ1Y3QgYXRoMTJrICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmgtNjQxMy1cdFx0XHRcdHN0cnVjdCBhdGgxMmtfd21pX3NjYW5fcmVxX2FyZyAqYXJnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmg6NjQxNDppbnQgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kKHN0cnVjdCBhdGgxMmsgKmFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaC02NDE1LVx0XHRcdFx0ICAgc3RydWN0IGF0aDEya193bWlfc2Nhbl9yZXFfYXJnICphcmcpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTQ0MwoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFuYWx5emluZyB0aGUgV2ktRmkgNyBTY2FuIEluaXRpYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhlIFdpLUZpIDcgZHJpdmVyIGNvZGUsIGFuZCBJJiMzOTt2ZSB0cmFjZWQgdGhlIHNjYW4gaW5pdGlhdGlvbiBwcm9jZXNzIGJhY2sgdG8gaXRzIGNvcmUuIE15IGltbWVkaWF0ZSBvYnNlcnZhdGlvbiBpcyB0aGF0IHRoZSBzY2FuIGlzIHN0cmljdGx5IHRyaWdnZXJlZCB0aHJvdWdoIGBhdGgxMmtfc3RhcnRfc2NhbmAuIFRoYXQmIzM5O3Mgd2hlcmUgaXQgYWxsIGJlZ2lucy4gRGlnZ2luZyBkZWVwZXIsIGl0IGlzIGFwcGFyZW50IHRoaXMgZnVuY3Rpb24gaXNuJiMzOTt0IHVzZWQgZXZlcnl3aGVyZSwgaW4gZmFjdCwgaXQgaXMgZXhjbHVzaXZlbHkgY2FsbGVkIHdpdGhpbiB0aGUgYGllZWU4MDIxMV9vcHNgIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgaXMgdGhlIGZ1bmRhbWVudGFsIGludGVyZmFjZSBiZXR3ZWVuIHRoZSA4MDIuMTEgbGF5ZXIgKHRoZSBjb3JlIFdpLUZpIHN0YWNrKSBhbmQgdGhlIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlci4gVGhlcmVmb3JlIHRoZSBzY2FuIGZ1bmN0aW9uYWxpdHkgaXMgc3BlY2lmaWNhbGx5IHRpZWQgdG8gV2ktRmkgNyB3aXRoaW4gdGhlIElFRUUgODAyLjExIGltcGxlbWVudGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfc3RhcnRfc2NhbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM9NTI3Mj1zdGF0aWMgdm9pZCBhdGgxMmtfc2Nhbl92ZGV2X2NsZWFuX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy01MzE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzo1MzE5OnN0YXRpYyBpbnQgYXRoMTJrX3N0YXJ0X3NjYW4oc3RydWN0IGF0aDEyayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTUzMjAtXHRcdFx0ICAgICBzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTU1MTc9c3RhdGljIGludCBhdGgxMmtfbWFjX2luaXRpYXRlX2h3X3NjYW4oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy01NjUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzo1NjU0Olx0cmV0ID0gYXRoMTJrX3N0YXJ0X3NjYW4oYXIsIGFyZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTU2NTUtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYz0xMzY0NT1pbnQgYXRoMTJrX21hY19vcF9yZW1haW5fb25fY2hhbm5lbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTEzNzU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzoxMzc2MDpcdHJldCA9IGF0aDEya19zdGFydF9zY2FuKGFyLCBhcmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xMzc2MS1cdGlmIChyZXQpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDg6NTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTIxNzYKCQkJCQkJCW91dHB1dDogMTI4CgkJCQkJCQl0aG91Z2h0czogMTIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlVucmVhY2hhYmxlIENvZGUgaW4gdGhlIGF0aDEyayBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBmdW5jdGlvbiBjYWxsLCB0aGF0JiMzOTtzIGJlaW5nIGNoZWNrZWQsIGNvbWVzIGZyb20gYGF0aDEya19tYWNfaW5pdGlhdGVfaHdfc2NhbmAgYW5kIGBhdGgxMmtfbWFjX29wX3JlbWFpbl9vbl9jaGFubmVsYC4gQm90aCBhcmUsIGFzIEkgcmVjYWxsLCBtYWM4MDIxMSBvcGVyYXRpb25zLCB3aGljaCBpcyBpbXBvcnRhbnQuIFRoZSBjcnVjaWFsIHBvaW50IGhlcmUgaXMgdGhhdCBtYWM4MDIxMSBvcGVyYXRpb25zLCBieSBkZXNpZ24sIGFyZSAqb25seSogcmVnaXN0ZXJlZCB3aGVuIHRoZSB3aXJlbGVzcyBkZXZpY2UgaXMgY29tcGxldGVseSBpbml0aWFsaXplZCBhbmQgdGhlIGZpcm13YXJlIGhhcyBsb2FkZWQgYW5kIGlzIHJlYWR5IHRvIGdvLiBJIGtub3cgdGhpcyBpbnRpbWF0ZWx5IGZyb20gbXkgd29yayB3aXRoIHRoZSBjb2RlYmFzZS4KCkdpdmVuIHRoaXMgZGVwZW5kZW5jeSBvbiBmdWxseSBpbml0aWFsaXplZCBoYXJkd2FyZSwgYW5kIHRoZSBjdXJyZW50IHN0YXRlIG9mIG91ciB0ZXN0aW5nIGVudmlyb25tZW50LCB0aGlzIGNvZGUgcGF0aCBpcyBzaW1wbHkgdW5yZWFjaGFibGUuIFdlJiMzOTtyZSBlaXRoZXIgcnVubmluZyBvbiByZWFsIGhhcmR3YXJlICh3aGljaCB3ZSYjMzk7cmUgbm90IGZvY3VzZWQgb24pLCBvciB3ZSYjMzk7cmUgdXNpbmcgYW4gZW11bGF0b3IuIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhlcmUgaXNuJiMzOTt0IGEgc3VmZmljaWVudGx5IGNvbXBsZXggZW11bGF0b3IgYXZhaWxhYmxlIGZvciBhdGgxMmsgd2l0aGluIHN5emthbGxlci9RRU1VIHRoYXQgY291bGQgdHJpZ2dlciB0aGlzIGJlaGF2aW9yLgoKVGhlcmVmb3JlLCBhZnRlciBjYXJlZnVsIGNvbnNpZGVyYXRpb24gb2YgdGhlIGRlcGVuZGVuY2llcywgSSYjMzk7bSBjb25maWRlbnQgdGhhdCB0aGUgb3B0aW1hbCByZXR1cm4gdmFsdWUgZm9yIGBXb3J0aEZ1enppbmdgIGlzIGBmYWxzZWAuIEl0JiMzOTtzIGEgd2FzdGUgb2YgdGltZSB0byBldmVuIGF0dGVtcHQgdG8gZnV6eiB0aGlzIGFyZWE7IGl0JiMzOTtzIHNpbXBseSBuZXZlciBnb2luZyB0byBiZSBoaXQgaW4gb3VyIGN1cnJlbnQgc2V0dXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA4OjUyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDEyayBkcml2ZXIsIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUgYW5kIGZpcm13YXJlIHRvIGluaXRpYWxpemUuIFdpdGhvdXQgaGFyZHdhcmUgZW11bGF0aW9uLCB0aGUgZHJpdmVyIGNhbm5vdCBjb21wbGV0ZSBpdHMgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgKGUuZy4sIFFNSSBmaXJtd2FyZSByZWFkaW5lc3MpLCBtZWFuaW5nIGl0IHdpbGwgbm90IHJlZ2lzdGVyIHdpdGggbWFjODAyMTEuIEFzIGEgcmVzdWx0LCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gYGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZGAgaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSBhbmQgZmlybXdhcmUgdG8gaW5pdGlhbGl6ZS4gV2l0aG91dCBoYXJkd2FyZSBlbXVsYXRpb24sIHRoZSBkcml2ZXIgY2Fubm90IGNvbXBsZXRlIGl0cyBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSAoZS5nLiwgUU1JIGZpcm13YXJlIHJlYWRpbmVzcyksIG1lYW5pbmcgaXQgd2lsbCBub3QgcmVnaXN0ZXIgd2l0aCBtYWM4MDIxMS4gQXMgYSByZXN1bHQsIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYCBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MDoxMC4yMzk2MTc2NDhaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjAwODgxMzM3NDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlIGFuZCBmaXJtd2FyZSB0byBpbml0aWFsaXplLiBXaXRob3V0IGhhcmR3YXJlIGVtdWxhdGlvbiwgdGhlIGRyaXZlciBjYW5ub3QgY29tcGxldGUgaXRzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIChlLmcuLCBRTUkgZmlybXdhcmUgcmVhZGluZXNzKSwgbWVhbmluZyBpdCB3aWxsIG5vdCByZWdpc3RlciB3aXRoIG1hYzgwMjExLiBBcyBhIHJlc3VsdCwgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWRgIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTA6MTAuMjM5NjI2MzE4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTI0NzY4MDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmMGVlMzIzZjc2MjIyNGM3NzhmMDNkOTg2YTg4OGY3YjE2MjQ4MjcwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVuIDI5IDA4OjUwOjA4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jXFxuaW5kZXggNjVhMDVhOTUyMGZmY2IuLjllMWQzYzY2Mjg1MjVhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jXFxuQEAgLTI1NzEsNyArMjU3MSw4IEBAIGludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsXFxuIFxcdHN0cnVjdCB3bWlfdGx2ICp0bHY7XFxuIFxcdHZvaWQgKnB0cjtcXG4gXFx0aW50IGksIHJldCwgbGVuO1xcbi1cXHR1MzIgKnRtcF9wdHIsIGV4dHJhaWVfbGVuX3dpdGhfcGFkID0gMDtcXG4rXFx0X19sZTMyICp0bXBfcHRyO1xcbitcXHR1MzIgZXh0cmFpZV9sZW5fd2l0aF9wYWQgPSAwO1xcbiBcXHRzdHJ1Y3QgYXRoMTJrX3dtaV9oaW50X3Nob3J0X3NzaWRfYXJnICpzX3NzaWQgPSBOVUxMO1xcbiBcXHRzdHJ1Y3QgYXRoMTJrX3dtaV9oaW50X2Jzc2lkX2FyZyAqaGludF9ic3NpZCA9IE5VTEw7XFxuIFxcbkBAIC0yNjU2LDkgKzI2NTcsMTAgQEAgaW50IGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZChzdHJ1Y3QgYXRoMTJrICphcixcXG4gXFx0dGx2ID0gcHRyO1xcbiBcXHR0bHYtXFx1MDAzZWhlYWRlciA9IGF0aDEya193bWlfdGx2X2hkcihXTUlfVEFHX0FSUkFZX1VJTlQzMiwgbGVuKTtcXG4gXFx0cHRyICs9IFRMVl9IRFJfU0laRTtcXG4tXFx0dG1wX3B0ciA9ICh1MzIgKilwdHI7XFxuK1xcdHRtcF9wdHIgPSAoX19sZTMyICopcHRyO1xcbiBcXG4tXFx0bWVtY3B5KHRtcF9wdHIsIGFyZy1cXHUwMDNlY2hhbl9saXN0LCBhcmctXFx1MDAzZW51bV9jaGFuICogNCk7XFxuK1xcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhcmctXFx1MDAzZW51bV9jaGFuOyBpKyspXFxuK1xcdFxcdHRtcF9wdHJbaV0gPSBjcHVfdG9fbGUzMihhcmctXFx1MDAzZWNoYW5fbGlzdFtpXSk7XFxuIFxcbiBcXHRwdHIgKz0gbGVuO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTA6MTAuODMzMDU3ODcxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTk0OTQ2ODYwNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlIGFuZCBmaXJtd2FyZSB0byBpbml0aWFsaXplLiBXaXRob3V0IGhhcmR3YXJlIGVtdWxhdGlvbiwgdGhlIGRyaXZlciBjYW5ub3QgY29tcGxldGUgaXRzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIChlLmcuLCBRTUkgZmlybXdhcmUgcmVhZGluZXNzKSwgbWVhbmluZyBpdCB3aWxsIG5vdCByZWdpc3RlciB3aXRoIG1hYzgwMjExLiBBcyBhIHJlc3VsdCwgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWRgIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBmMGVlMzIzZjc2MjIyNGM3NzhmMDNkOTg2YTg4OGY3YjE2MjQ4MjcwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdW4gMjkgMDg6NTA6MDggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuaW5kZXggNjVhMDVhOTUyMGZmY2IuLjllMWQzYzY2Mjg1MjVhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuQEAgLTI1NzEsNyArMjU3MSw4IEBAIGludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsXG4gXHRzdHJ1Y3Qgd21pX3RsdiAqdGx2O1xuIFx0dm9pZCAqcHRyO1xuIFx0aW50IGksIHJldCwgbGVuO1xuLVx0dTMyICp0bXBfcHRyLCBleHRyYWllX2xlbl93aXRoX3BhZCA9IDA7XG4rXHRfX2xlMzIgKnRtcF9wdHI7XG4rXHR1MzIgZXh0cmFpZV9sZW5fd2l0aF9wYWQgPSAwO1xuIFx0c3RydWN0IGF0aDEya193bWlfaGludF9zaG9ydF9zc2lkX2FyZyAqc19zc2lkID0gTlVMTDtcbiBcdHN0cnVjdCBhdGgxMmtfd21pX2hpbnRfYnNzaWRfYXJnICpoaW50X2Jzc2lkID0gTlVMTDtcbiBcbkBAIC0yNjU2LDkgKzI2NTcsMTAgQEAgaW50IGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZChzdHJ1Y3QgYXRoMTJrICphcixcbiBcdHRsdiA9IHB0cjtcbiBcdHRsdi1cdTAwM2VoZWFkZXIgPSBhdGgxMmtfd21pX3Rsdl9oZHIoV01JX1RBR19BUlJBWV9VSU5UMzIsIGxlbik7XG4gXHRwdHIgKz0gVExWX0hEUl9TSVpFO1xuLVx0dG1wX3B0ciA9ICh1MzIgKilwdHI7XG4rXHR0bXBfcHRyID0gKF9fbGUzMiAqKXB0cjtcbiBcbi1cdG1lbWNweSh0bXBfcHRyLCBhcmctXHUwMDNlY2hhbl9saXN0LCBhcmctXHUwMDNlbnVtX2NoYW4gKiA0KTtcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFyZy1cdTAwM2VudW1fY2hhbjsgaSsrKVxuK1x0XHR0bXBfcHRyW2ldID0gY3B1X3RvX2xlMzIoYXJnLVx1MDAzZWNoYW5fbGlzdFtpXSk7XG4gXG4gXHRwdHIgKz0gbGVuO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTA6MTAuODMzMDYxMDIxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODA0MDYwNTkwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipFbmRpYW5uZXNzIEZpeCBBbmFseXNpcyBmb3IgYXRoMTJrIERyaXZlcioqXG5cbk9rYXksIHNvIHRoZXJlJ3MgYSBwYXRjaCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY2AgdGhhdCB0d2Vha3MgYGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZGAuICBJdCdzIGEgc3RyYWlnaHRmb3J3YXJkIGVuZGlhbm5lc3MgZml4OiBjaGFuZ2luZyBgdTMyICp0bXBfcHRyYCB0byBgX19sZTMyICp0bXBfcHRyYCBhbmQgcmVwbGFjaW5nIGEgYG1lbWNweWAgd2l0aCBhIGxvb3AgdGhhdCBjYWxscyBgY3B1X3RvX2xlMzJgLiAgQ2xlYW4gYW5kIHNpbXBsZS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiQ2FuIHdlIGV2ZW4gKnNlZSogdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50P1wiLiBUaGlzIGlzIGEgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMuXG5cbk5vdywgaGFyZHdhcmUtc3BlY2lmaWMgd2lyZWxlc3MgZHJpdmVycyBsaWtlIGF0aDEyayBhcmUgdHlwaWNhbGx5IGEgcGFpbiBpbiB0aGUgbmVjayB0byBleGVyY2lzZSB3aXRob3V0IGFjdHVhbCBoYXJkd2FyZS4gIFlvdSdkIG5lZWQgc29tZXRoaW5nIGxpa2UgbWFjODAyMTFfaHdzaW0sIGJ1dCBhdGgxMmsgaXMgYSAqc3BlY2lmaWMqIGRyaXZlciwgbm90IGEgZ2VuZXJhbCBoYXJkd2FyZSBzaW11bGF0aW9uLiBJIGRvbid0IHJlbWVtYmVyIFFFTVUgZW11bGF0aW5nIGF0aDEyayBkaXJlY3RseS4gIFNvIHRoZSBtaWxsaW9uLWRvbGxhciBxdWVzdGlvbiBpczogY2FuIHdlIHRyaWdnZXIgYGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZGAgd2l0aG91dCBwaHlzaWNhbCBoYXJkd2FyZT9cblxuTGV0J3MgZG8gYSBxdWljayBpbnZlc3RpZ2F0aW9uLiBJIHNob3VsZCBjaGVjayBpZiBhdGgxMmsgY2FuIHByb2JlIGF0IGFsbCB3aXRob3V0IGhhcmR3YXJlLiAgSXMgaXQgYSBQQ0kgb3IgQUhCIGRldmljZT8gQWhhLCBpdCBzdXBwb3J0cyBib3RoLiBXaXRob3V0IGhhcmR3YXJlLCB0aGUgZHJpdmVyIGxpa2VseSB3b24ndCBldmVuIGxvYWQsIG1lYW5pbmcgYGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZGAgd2lsbCBzdGF5IHVudG91Y2hlZC5cblxuSG9sZCBvbiBhIHNlY29uZCwgdGhvdWdoLiBTeXprYWxsZXIgY2FuIGRvIHdvbmRlcnMsIHJpZ2h0PyAgSXQgbWlnaHQgdXNlIGB2aGNpYCBvciBgbWFjODAyMTFfaHdzaW1gLCBhbmQgZm9yIFBDSSBkZXZpY2VzLCBpZiBmdXp6aW5nIGlzIGVuYWJsZWQsIGl0IGNhbiB1c2UgUENJIGZ1enppbmcsIGJ1dCBldmVuIHRoZW4sIGl0J3MgdXN1YWxseSByZWFsbHkgdHJpY2t5IHRvIGdldCBkZWVwIGludG8gdGhlIFdNSSAoV2lyZWxlc3MgTWVzc2FnZSBJbnRlcmZhY2UpIHdoaWNoIGludm9sdmVzIHRhbGtpbmcgdG8gdGhlIGZpcm13YXJlLiBMZXQgbWUgY2hlY2sgaWYgYXRoMTJrIGhhcyBhbnkgc3BlY2lmaWMgZnV6emluZyBob29rcyBvciBpZiBpdCdzIGp1c3QgeW91ciBzdGFuZGFyZCBkcml2ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMzQsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MjUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MDoxOC44NzM2NzA5NDNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI1NzA0Nzk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTUzMTk9c3RhdGljIGludCBhdGgxMmtfc3RhcnRfc2NhbihzdHJ1Y3QgYXRoMTJrICphcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtNTMyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjUzMjY6XFx0cmV0ID0gYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kKGFyLCBhcmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtNTMyNy1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYz0yNDkwPXN0YXRpYyB2b2lkIGF0aDEya193bWlfY29weV9zY2FuX2V2ZW50X2NudHJsX2ZsYWdzKHN0cnVjdCB3bWlfc3RhcnRfc2Nhbl9jbWQgKmNtZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMtMjU2Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jOjI1NjM6aW50IGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZChzdHJ1Y3QgYXRoMTJrICphcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jLTI1NjQtXFx0XFx0XFx0XFx0ICAgc3RydWN0IGF0aDEya193bWlfc2Nhbl9yZXFfYXJnICphcmcpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oPTY0MTI9dm9pZCBhdGgxMmtfd21pX3N0YXJ0X3NjYW5faW5pdChzdHJ1Y3QgYXRoMTJrICphcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oLTY0MTMtXFx0XFx0XFx0XFx0c3RydWN0IGF0aDEya193bWlfc2Nhbl9yZXFfYXJnICphcmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmg6NjQxNDppbnQgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kKHN0cnVjdCBhdGgxMmsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmgtNjQxNS1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA4OjUwOjE4Ljk5OTM4ODM0MVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkxMjk4NTMwMTg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYXRoMTJrIERyaXZlciBDb250ZXh0KipcblxuT2theSwgc28gdGhlIGBhdGgxMmtfc3RhcnRfc2NhbmAgZnVuY3Rpb24gaXMgdGhlIGVudHJ5IHBvaW50LCBjYWxsZWQgdGhyb3VnaCB0aGUgbWFjODAyMTEgb3BlcmF0aW9ucywgd2hpY2ggaXMgZ29vZCBjb250ZXh0LiBCdXQgZ2V0dGluZyB0aGVyZSBpbXBsaWVzIHRoZSBhdGgxMmsgZHJpdmVyIGlzIHByb3Blcmx5IGluaXRpYWxpemVkLCBhbmQgdGhhdCdzIHRoZSBydWIuIFRoaXMgZHJpdmVyIGlzIGluaGVyZW50bHkgdGllZCB0byBzcGVjaWZpYyBoYXJkd2FyZTogUENJZSBvciBBSEIsIGFuZCByZXF1aXJlcyB0aGUgY29ycmVzcG9uZGluZyBmaXJtd2FyZSB0byBldmVuIGdldCBvZmYgdGhlIGdyb3VuZC4gSW4gYSB2aXJ0dWFsIGVudmlyb25tZW50IGxpa2UgR0NFIG9yIFFFTVUsIHdpdGhvdXQgc29tZSBzZXJpb3VzbHkgc29waGlzdGljYXRlZCBoYXJkd2FyZSBlbXVsYXRpb24sIHRoZSBjaGFuY2Ugb2YgdGhpcyBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBzdWNjZWVkaW5nIGlzIGluY3JlZGlibHkgc2xpbS5cblxuSG1tLCBJIHJlbWVtYmVyIHN5emthbGxlciBkb2VzIGRhYmJsZSBpbiBQQ0kgZnV6emluZy4gQnV0LCBldmVuIHdpdGggdGhhdCwgaXQgcmFyZWx5IGdldHMgcGFzdCB0aGUgaW5pdGlhbCBmaXJtd2FyZSBsb2FkIGFuZCB0aG9zZSBpbmNyZWRpYmx5IGNvbXBsZXggaGFuZHNoYWtlcyB0aGF0IGRyaXZlcnMgbGlrZSBhdGgxMmsgZGVwZW5kIG9uLiBJdOKAmXMgdXN1YWxseSB0b28gbXVjaCBmb3IgaXQgdG8gaGFuZGxlLiBUaGF04oCZcyBwcm9iYWJseSB3aGVyZSB0aGluZ3MgYXJlIGdvaW5nIHNpZGV3YXlzLlxuXG5BbHJpZ2h0LCBhIG1vcmUgcHJvbWlzaW5nIGF2ZW51ZTogaXMgdGhlcmUgYSBtb2NrIG9yIHRlc3RpbmcgZnJhbWV3b3JrIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgYXRoMTJrPyBUaGF0IHdvdWxkIGJlIHRoZSBiZXN0IGNhc2Ugc2NlbmFyaW8gYXQgdGhpcyBzdGFnZS4gSXQgbWlnaHQgYmUgcG9zc2libGUgdG8gaW5qZWN0IHNvbWUgc2lnbmFscyBmb3IgdGVzdGluZyB0aGF0IGFyZSBub3QgcmVsaWFudCBvbiB0aGUgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gcGF0aC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU2MSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MTo1MC4yOTc5MjI3NTdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ4ODkzODI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19BVEgxMktcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfQVRIMTJLKSArPSBhdGgxMmsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMy1hdGgxMmsteSArPSBjb3JlLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0yNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjI1OmF0aDEyay0kKENPTkZJR19BVEgxMktfQUhCKSArPSBhaGIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfQVRIMTJLKSArPSB3aWZpNy9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6Mjk6YXRoMTJrLSQoQ09ORklHX0FUSDEyS19ERUJVR0ZTKSArPSBkZWJ1Z2ZzLm8gZGVidWdmc19odHRfc3RhdHMubyBkZWJ1Z2ZzX3N0YS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0zMC1hdGgxMmstJChDT05GSUdfQUNQSSkgKz0gYWNwaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozMTphdGgxMmstJChDT05GSUdfQVRIMTJLX1RSQUNJTkcpICs9IHRyYWNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTMyLWF0aDEyay0kKENPTkZJR19QTSkgKz0gd293Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjMzOmF0aDEyay0kKENPTkZJR19BVEgxMktfQ09SRURVTVApICs9IGNvcmVkdW1wLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTM0LWF0aDEyay0kKENPTkZJR19OTDgwMjExX1RFU1RNT0RFKSArPSB0ZXN0bW9kZS5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuaD02MTQ9c3RydWN0IGF0aDEyayB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuaC03MzEtXFx0dTMyIGNhY2hlZF9wcGR1X2lkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oOjczMjojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmgtNzMzLVxcdHN0cnVjdCBhdGgxMmtfZGVidWcgZGVidWc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuaD05Mzc9c3RydWN0IGF0aDEya19iYXNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oLTEwMzUtXFx0ZW51bSBhdGgxMmtfZGZzX3JlZ2lvbiBkZnNfcmVnaW9uO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oOjEwMzY6I2lmZGVmIENPTkZJR19BVEgxMktfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oLTEwMzctXFx0c3RydWN0IGRlbnRyeSAqZGVidWdmc19zb2M7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmVkdW1wLmg9Mzc9c3RydWN0IGF0aDEya19kdW1wX2ZpbGVfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmVkdW1wLmgtNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlZHVtcC5oOjYwOiNpZmRlZiBDT05GSUdfQVRIMTJLX0NPUkVEVU1QXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlZHVtcC5oLTYxLWVudW0gYXRoMTJrX2Z3X2NyYXNoX2R1bXBfdHlwZSBhdGgxMmtfY29yZWR1bXBfZ2V0X2R1bXBfdHlwZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5jPTU1PUVYUE9SVF9TWU1CT0woX19hdGgxMmtfd2Fybik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5jLTU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuYzo1NzojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuYy01OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuYz0xMDg9RVhQT1JUX1NZTUJPTChhdGgxMmtfZGJnX2R1bXApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuYy0xMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5jOjExMDojZW5kaWYgLyogQ09ORklHX0FUSDEyS19ERUJVRyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oPTQxPWV4dGVybiBib29sIGF0aDEya19mdG1fbW9kZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmgtNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oOjQzOiNpZmRlZiBDT05GSUdfQVRIMTJLX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oLTQ0LV9fcHJpbnRmKDMsIDQpIHZvaWQgX19hdGgxMmtfZGJnKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmg9NDc9dm9pZCBhdGgxMmtfZGJnX2R1bXAoc3RydWN0IGF0aDEya19iYXNlICphYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuaC01MC1cXHRcXHQgICAgIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oOjUxOiNlbHNlIC8qIENPTkZJR19BVEgxMktfREVCVUcgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmgtNTItc3RhdGljIGlubGluZSB2b2lkIF9fYXRoMTJrX2RiZyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oPTU4PXN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMmtfZGJnX2R1bXAoc3RydWN0IGF0aDEya19iYXNlICphYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuaC02My19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oOjY0OiNlbmRpZiAvKiBDT05GSUdfQVRIMTJLX0RFQlVHICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oLTY1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmgtOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnMuaDoxMDojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmgtMTEtdm9pZCBhdGgxMmtfZGVidWdmc19zb2NfY3JlYXRlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmg9MTQyPXN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMmtfZGVidWdmc19wZGV2X2NyZWF0ZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmgtMTQ0LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnMuaDoxNDU6I2VuZGlmIC8qIENPTkZJR19BVEgxMktfREVCVUdGUyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmcy5oLTE0Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19odHRfc3RhdHMuaD0yNj12b2lkIGF0aDEya19kZWJ1Z2ZzX2h0dF9zdGF0c19yZWdpc3RlcihzdHJ1Y3QgYXRoMTJrICphcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19odHRfc3RhdHMuaDoyODojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oLTI5LXZvaWQgYXRoMTJrX2RlYnVnZnNfaHR0X2V4dF9zdGF0c19oYW5kbGVyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oLTMwLVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oOjMxOiNlbHNlIC8qIENPTkZJR19BVEgxMktfREVCVUdGUyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19odHRfc3RhdHMuaC0zMi1zdGF0aWMgaW5saW5lIHZvaWQgYXRoMTJrX2RlYnVnZnNfaHR0X2V4dF9zdGF0c19oYW5kbGVyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnNfc3RhLmgtMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX3N0YS5oOjE1OiNpZmRlZiBDT05GSUdfQVRIMTJLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnNfc3RhLmgtMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX3N0YS5oPTE3PXZvaWQgYXRoMTJrX2RlYnVnZnNfbGlua19zdGFfb3BfYWRkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX3N0YS5oLTIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19zdGEuaDoyMjojZW5kaWYgLyogQ09ORklHX0FUSDEyS19ERUJVR0ZTICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX3N0YS5oLTIzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYz0xMTk4PXZvaWQgYXRoMTJrX3BjaV93cml0ZTMyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTI0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjEyNDQ6I2lmZGVmIENPTkZJR19BVEgxMktfQ09SRURVTVBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTEyNDUtc3RhdGljIGludCBhdGgxMmtfcGNpX2NvcmVkdW1wX2NhbGN1bGF0ZV9zaXplKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiAqZHVtcF9zZWdfc3opXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jPTE0Nzk9c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMmtfaGlmX29wcyBhdGgxMmtfcGNpX2hpZl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE0OTYtXFx0LnBhbmljX2hhbmRsZXIgPSBhdGgxMmtfcGNpX3BhbmljX2hhbmRsZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxNDk3OiNpZmRlZiBDT05GSUdfQVRIMTJLX0NPUkVEVU1QXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNDk4LVxcdC5jb3JlZHVtcF9kb3dubG9hZCA9IGF0aDEya19wY2lfY29yZWR1bXBfZG93bmxvYWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmgtMTQtLyogY3JlYXRlIGVtcHR5IGZ1bmN0aW9ucyB3aGVuIHRyYWNpbmcgaXMgZGlzYWJsZWQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmg6MTU6I2lmICFkZWZpbmVkKENPTkZJR19BVEgxMktfVFJBQ0lORylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmgtMTYtI3VuZGVmIFRSQUNFX0VWRU5UXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmg9MTg9c3RhdGljIGlubGluZSB2b2lkIHRyYWNlXyAjIyBuYW1lKHByb3RvKSB7fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdHJhY2UuaDoxOTojZW5kaWYgLyogIUNPTkZJR19BVEgxMktfVFJBQ0lORyB8fCBfX0NIRUNLRVJfXyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdHJhY2UuaC0yMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX0FUSDEySykgKz0gYXRoMTJrX3dpZmk3Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L01ha2VmaWxlLTMtYXRoMTJrX3dpZmk3LXkgKz0gY29yZS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvTWFrZWZpbGUtMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9NYWtlZmlsZToyMDphdGgxMmtfd2lmaTctJChDT05GSUdfQVRIMTJLX0FIQikgKz0gYWhiLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvYWhiLmgtOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2FoYi5oOjk6I2lmZGVmIENPTkZJR19BVEgxMktfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9haGIuaC0xMC1pbnQgYXRoMTJrX3dpZmk3X2FoYl9pbml0KHZvaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jPTEwNTc9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGF0aDEya19vcHNfd2lmaTcgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTEwNC0jZW5kaWZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM6MTEwNTojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTExMDYtXFx0LnZpZl9hZGRfZGVidWdmcyAgICAgICAgICAgICAgICA9IGF0aDEya19kZWJ1Z2ZzX29wX3ZpZl9hZGQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTEwOC1cXHRDRkc4MDIxMV9URVNUTU9ERV9DTUQoYXRoMTJrX3RtX2NtZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM6MTEwOTojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTExMTAtXFx0Lmxpbmtfc3RhX2FkZF9kZWJ1Z2ZzICAgICAgICAgICA9IGF0aDEya19kZWJ1Z2ZzX2xpbmtfc3RhX29wX2FkZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmM9OTE5Mz1zdGF0aWMgdm9pZCBhdGgxMmtfd21pX2V2ZW50X3RlYXJkb3duX2NvbXBsZXRlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jLTkyMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYzo5MjE3OiNpZmRlZiBDT05GSUdfQVRIMTJLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jLTkyMTgtc3RhdGljIGludCBhdGgxMmtfd21pX3RwY19zdGF0c19jb3B5X2J1ZmZlcihzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MTo1MC40NDY4NDMwNzNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MjU1NDMxMTY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIGF0aDEyayBEcml2ZXIgd2l0aCBTeXprYWxsZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgYXRoMTJrYCBoZXJlLiBJIHNlZSBgQ09ORklHX0FUSDEyS2AgYW5kIGBDT05GSUdfQVRIMTJLX0FIQmAgYXJlIGRlZmluZWQuIE5vdywgSSByZWNhbGwgdGhhdCBzeXprYWxsZXIgaGFzIGBtYWM4MDIxMV9od3NpbWAsIHdoaWNoIGlzIGdyZWF0IGZvciBzaW11bGF0aW5nIGhhcmR3YXJlLiBCdXQgYGF0aDEya2AgaXMgYSAqcmVhbCogaGFyZHdhcmUgZHJpdmVyLCBzbyBjYW4gc3l6a2FsbGVyIGV2ZW4gZnV6eiBpdCBkaXJlY3RseT9cblxuSSBrbm93IHN5emthbGxlciBoYXMgYSBgd2lmaWAgZnV6emluZyBzdWJzeXN0ZW0sIGFuZCBpdCBkZWZpbml0ZWx5IHVzZXMgYG1hYzgwMjExX2h3c2ltYCB0byBpbmplY3QgcGFja2V0cy4gQnV0LCBJIGRvbid0IHRoaW5rIGl0J3MgZGlyZWN0bHkgdXNpbmcgYGF0aDEya2AsIHJpZ2h0PyBXYWl0IGEgc2Vjb25kLCB3YXNuJ3QgdGhlcmUgUENJIGZ1enppbmcgYXMgd2VsbD8gWWVzLCBzeXprYWxsZXIgKmNhbiogZW11bGF0ZSBQQ0kgZGV2aWNlcy4gVGhhdCdzIGEgcG9zc2liaWxpdHkuXG5cbkJ1dCBoZXJlJ3MgdGhlIGtpY2tlcjogYGF0aDEya2AgbmVlZHMgZmlybXdhcmUgdG8gYmUgbG9hZGVkIOKAkyB0aGluZ3MgbGlrZSBgYXRoMTJrX2NvcmVfZmV0Y2hfYmRmYCBhcmUgaW52b2x2ZWQuIElmIHRoYXQgZmlybXdhcmUgaXNuJ3QgcHJlc2VudCwgb3IgaWYgdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIGZhaWxzLCB0aGUgZHJpdmVyIHdvbid0IHJlZ2lzdGVyIHdpdGggbWFjODAyMTEsIGFuZCBjcnVjaWFsbHksIHNvbWV0aGluZyBsaWtlIGBhdGgxMmtfc3RhcnRfc2NhbmAgd2lsbCBuZXZlciBnZXQgY2FsbGVkLiBUaGF0J3MgYSBodWdlIGJsb2NrZXIuXG5cblNvLCB0aGUgcXVlc3Rpb24gaXMsIGlzIHRoZXJlIGFueSBraW5kIG9mIHRlc3Rtb2RlIG9yIG1vY2sgc2V0dXAgZm9yIGBhdGgxMmtgPyBMZXQgbWUgc2Vl4oCmIEFoLCBgQ09ORklHX05MODAyMTFfVEVTVE1PREVgIGlzIHVzZWQgZm9yIGB0ZXN0bW9kZS5jYC4gTm93LCBsZXQncyB0YWtlIGEgbG9vayBhdCB0aGF04oCmXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc1MzEsIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTE6NTYuNzAyMjc3ODI4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0Mjg4MTA1NywiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTE6NTcuMDQ1MTcwMjY0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQ2NjY2NzIzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFdpcmVsZXNzIFNjYW4gSW5pdGlhdGlvbiBGbG93KipcblxuT2theSwgbGV0J3MgdHJhY2UgdGhpcy4gTXkgcHJpbWFyeSBjb25jZXJuIGlzIGNvbmZpcm1pbmcgdGhlIGFjY2Vzc2liaWxpdHkgb2YgYGF0aDEya19zdGFydF9zY2FuYC4gSXQncyB0aGUgZGVzaWduYXRlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYHN0YXJ0X3NjYW5gIG9yIGBzY2FuYCBvcGVyYXRpb24gZGVmaW5lZCB3aXRoaW4gYGllZWU4MDIxMV9vcHNgLCB3aGljaCwgaWYgSSByZWNhbGwgY29ycmVjdGx5LCBpcyB0aGUgc3RhbmRhcmQgc3RydWN0dXJlIGZvciB3aXJlbGVzcyBkcml2ZXIgb3BlcmF0aW9ucy4gXG5cbkkgc2VlIGBhdGgxMmtfb3BzX3dpZmk3YCBoYXMgYC5zdGFydF9zY2FuID0gYXRoMTJrX3N0YXJ0X3NjYW5gLiBUaGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCwgYnV0IEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGRyaXZlcidzIHByb3Blcmx5IHNldCB1cC4gVGhlIG5leHQgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGhvdyB0aGVzZSBvcGVyYXRpb25zIGdldCByZWdpc3RlcmVkLCBhbmQgdGhhdCB0eXBpY2FsbHkgbWVhbnMgYSBzdWNjZXNzZnVsIGRyaXZlciBwcm9iZS4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZSBwcm9iZSByb3V0aW5lLCBsaWtlbHkgc29tZXRoaW5nIGxpa2UgYGF0aDEya19jb3JlX3Byb2JlYCDigJMgb3IgYSBzaW1pbGFybHkgbmFtZWQgZnVuY3Rpb24gZm9yIHRoaXMgc3BlY2lmaWMgYXJjaGl0ZWN0dXJlLCBhdCBsZWFzdCDigJMgaXMgY2FsbGVkIHN1Y2Nlc3NmdWxseSBhbmQsIG1vcmUgaW1wb3J0YW50bHksIHRoYXQgaXQgY2FsbHMgYGllZWU4MDIxMV9od19zZXR1cGAgb3IgYHdpcGh5X3JlZ2lzdGVyYC4gVGhhdCdzIHdoZXJlIHRoZSBtYWdpYyBvZiBsaW5raW5nIHRoZSBkcml2ZXIgdG8gdGhlIHdpcmVsZXNzIHN0YWNrIGhhcHBlbnMsIGlzbid0IGl0PyBJIG5lZWQgdG8gZm9jdXMgdGhlcmUgbmV4dCB0byBnZXQgdGhlIGNvbXBsZXRlIHBpY3R1cmUgb2YgaG93IHRoZSBzY2FuIGlzIGluaXRpYXRlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODIwOCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MjowMS41MTE4NDE3NTJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjkxMTU0OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid2lwaHlfcmVnaXN0ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA4OjUyOjAxLjYyODc2Mzc0MVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTU0OTYzNzIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqUG90ZW50aWFsIENsdWUgRGV0ZWN0ZWQ6IGBhdGgxMmtfbWFjX3JlZ2lzdGVyYCoqXG5cbkhvbGQgb24gYSBzZWNvbmQuLi4ganVzdCBzYXcgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgdmVyeSBpbXBvcnRhbnQuIFRoYXQgXCJ3YWl0XCIgcmVhY3Rpb24gbGlrZWx5IGluZGljYXRlcyBJJ20gcmUtZXZhbHVhdGluZyBzb21ldGhpbmcuIFRoZSBtZW50aW9uIG9mIGBhdGgxMmtfbWFjX3JlZ2lzdGVyYC4uLiB0aGF0J3MgZ290IG15IGF0dGVudGlvbi4gVGhhdCBmdW5jdGlvbiBuYW1lIGl0c2VsZiBpcyBhIHByZXR0eSBzaWduaWZpY2FudCBzaWduYWwuIEl0IGltbWVkaWF0ZWx5IHN1Z2dlc3RzIHdlJ3JlIGRlYWxpbmcgd2l0aCB0aGUgQXRoZXJvcyA4MDIuMTFheCBNQUMgbGF5ZXIsIHNwZWNpZmljYWxseSB0aGUgYXRoMTJrIGRyaXZlci4gSWYgdGhlIGNvZGUgZmxvdyBhY3R1YWxseSB1dGlsaXplcyB0aGlzIGZ1bmN0aW9uLCB0aGVuIHRoZSBwcm9ibGVtIGxpZXMgd2l0aGluIHRoaXMgY29tcG9uZW50LiBJdCBhbHNvIGluZGljYXRlcyB0aGlzIGNvZGUgb3BlcmF0ZXMgYXQgdGhhdCBsb3ctbGV2ZWwgd2l0aGluIHRoZSBoYXJkd2FyZSBhbmQgdGhlIGRyaXZlci4gTXkgdGhvdWdodCBpcyB0aGF0IGl0IGNvdWxkIGVpdGhlciBiZSBhIGdvb2QgdGhpbmcgb3IgYSBiYWQgdGhpbmcsIGRlcGVuZGluZyBvbiBjb250ZXh0LiBJIG5lZWQgdG8gdHJhY2sgd2hlcmUgdGhhdCBmdW5jdGlvbiBpcyBhY3R1YWxseSAqY2FsbGVkKiBhbmQgd2hhdCdzIGJlaW5nIHBhc3NlZCB0byBpdC4gSXMgaXQgYmVpbmcgY2FsbGVkIGF0IHRoZSBhcHByb3ByaWF0ZSB0aW1lPyBBcmUgdGhlIHJlZ2lzdGVyIHZhbHVlcyBiZWluZyBpbml0aWFsaXplZCBjb3JyZWN0bHk/IElzIHRoZSByZWdpc3RlciBzdHJ1Y3R1cmUgaXRzZWxmIHByb3Blcmx5IGRlZmluZWQgYW5kIGFjY2Vzc2VkPyBOZWVkIHRvIGRpZyBpbnRvIHRoYXQgZnVuY3Rpb24ncyBpbXBsZW1lbnRhdGlvbiBhbmQgaG93IGl0J3MgaW50ZWdyYXRlZCB3aXRoIHRoZSByZXN0IG9mIHRoZSBhdGgxMmsgZHJpdmVyLiBUaGlzIGNvdWxkIGJlIGEgY3JpdGljYWwgcGllY2Ugb2YgdGhlIHB1enpsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6ODY0MywiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA4OjUyOjA3LjE4MzczMTM3NFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU3ODc4NTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEya19tYWNfcmVnaXN0ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmM9MTEzMj1zdGF0aWMgaW50IGF0aDEya19jb3JlX2h3X2dyb3VwX3N0YXJ0KHN0cnVjdCBhdGgxMmtfaHdfZ3JvdXAgKmFnKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTE1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxMTU2OlxcdHJldCA9IGF0aDEya19tYWNfcmVnaXN0ZXIoYWcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jLTExNTctXFx0aWYgKFdBUk5fT04ocmV0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM9MTQ5NjI9dm9pZCBhdGgxMmtfbWFjX21sb190ZWFyZG93bihzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQ5ODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzoxNDk4NDppbnQgYXRoMTJrX21hY19yZWdpc3RlcihzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0OTg1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmg9MTU0PXZvaWQgYXRoMTJrX21hY191bnJlZ2lzdGVyKHN0cnVjdCBhdGgxMmtfaHdfZ3JvdXAgKmFnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oOjE1NTppbnQgYXRoMTJrX21hY19yZWdpc3RlcihzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuaC0xNTYtaW50IGF0aDEya19tYWNfYWxsb2NhdGUoc3RydWN0IGF0aDEya19od19ncm91cCAqYWcpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MjowNy40NDE2MjI0MDlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjQyNTMxMjIwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBwcm92aWRlZCBzbmlwcGV0LCBhcyBpZiBpdCB3ZXJlIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byB0aGUgRHJpdmVyIENvZGUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBhdGgxMmtfY29yZV9od19ncm91cF9zdGFydGAgZnVuY3Rpb24gY2FsbC4gVGhlIGludGVyZXN0aW5nIHRoaW5nIGhlcmUgaXMgdGhhdCB3aXRoaW4gdGhpcyBmdW5jdGlvbiBjYWxsLCBgYXRoMTJrX21hY19yZWdpc3RlcmAgaXMgY2FsbGVkLiBUaGF0IG1ha2VzIG1lIHRoaW5rIGFib3V0IHRoZSByZWdpc3RlciBvcGVyYXRpb25zLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXM6IHdobyBpcyBjYWxsaW5nIGBhdGgxMmtfY29yZV9od19ncm91cF9zdGFydGAgaW4gdGhlIGZpcnN0IHBsYWNlPyBJIG5lZWQgdG8gdHJhY2UgYmFjayBmcm9tIHRoaXMgcG9pbnQuIElzIHRoaXMgYSB0b3AtbGV2ZWwgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gb3IgaXMgaXQgaW52b2tlZCBhcyBwYXJ0IG9mIHNvbWUgb3RoZXIgcHJvY2Vzcz8gSSBuZWVkIHRvIGZpbmQgdGhlIGNhbGwgZ3JhcGggdG8gZnVsbHkgZ3Jhc3AgdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIncyBleGVjdXRpb24gZmxvdy4gVW5kZXJzdGFuZGluZyB0aGUgY2FsbGVyIHdpbGwgZ2l2ZSBtZSBjcnVjaWFsIGNvbnRleHQgcmVnYXJkaW5nIHdoeSB0aGUgTUFDIHJlZ2lzdHJhdGlvbiBpcyBoYXBwZW5pbmcgYXQgdGhpcyBzdGFnZSBvZiB0aGUgaW5pdGlhbGl6YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk0MTMsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MjoxMy44NjY5MzkzNTdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0OTgyOTE0NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhdGgxMmtfY29yZV9od19ncm91cF9zdGFydFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYz0xMTA2PXN0YXRpYyBpbnQgYXRoMTJrX2NvcmVfbWxvX3NldHVwKHN0cnVjdCBhdGgxMmtfaHdfZ3JvdXAgKmFnKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTEzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxMTMyOnN0YXRpYyBpbnQgYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnQoc3RydWN0IGF0aDEya19od19ncm91cCAqYWcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTEzMy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYz0xMjIyPXN0YXRpYyBpbmxpbmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxMjIzOmJvb2wgYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnRfcmVhZHkoc3RydWN0IGF0aDEya19od19ncm91cCAqYWcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTIyNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYz0xMzAzPWludCBhdGgxMmtfY29yZV9xbWlfZmlybXdhcmVfcmVhZHkoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jLTEzMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmM6MTMzNzpcXHRpZiAoYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnRfcmVhZHkoYWcpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmM6MTMzODpcXHRcXHRyZXQgPSBhdGgxMmtfY29yZV9od19ncm91cF9zdGFydChhZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTMzOS1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYz0xNjI4PXN0YXRpYyB2b2lkIGF0aDEya19jb3JlX3Jlc3RhcnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTY1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxNjUyOlxcdFxcdGlmICghYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnRfcmVhZHkoYWcpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTY1My1cXHRcXHRcXHRtdXRleF91bmxvY2soXFx1MDAyNmFnLVxcdTAwM2VtdXRleCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA4OjUyOjE0LjIxNjc3NzU1M1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTc0NzkxMTk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVucmVhY2hhYmxlIENvZGUgaW4gYSBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGF0aDEya19jb3JlX3FtaV9maXJtd2FyZV9yZWFkeWAgZnVuY3Rpb24sIGFuZCBpdCdzIHByZXR0eSBjbGVhciB3aGF0J3MgaGFwcGVuaW5nLiBUaGUgZHJpdmVyJ3Mgd2FpdGluZyBmb3IgdGhlIGZpcm13YXJlIHRvIGJlY29tZSByZWFkeSwgc2lnbmFsZWQgdGhyb3VnaCB0aGUgUU1JIGludGVyZmFjZS4gVGhpcyBpcyBob3cgdGhlIE1BQyBnZXRzIHJlZ2lzdGVyZWQuIE1ha2VzIHNlbnNlLiBCdXQgaGVyZSdzIHRoZSBwcm9ibGVtOiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCB3aGVyZSB0aGVyZSdzIG5vIHJlYWwgaGFyZHdhcmUgZW11bGF0aW9uLCB0aGUgZmlybXdhcmUgaXNuJ3QgZ29pbmcgdG8gbG9hZC4gUU1JIHdpbGwgcmVtYWluIHNpbGVudCwgbm8gXCJyZWFkeVwiIHNpZ25hbCwgYW5kIHRoZSBNQUMgd29uJ3QgYmUgcmVnaXN0ZXJlZC4gVGhhdCBtZWFucyBgYXRoMTJrX3N0YXJ0X3NjYW5gIGFuZCwgY29uc2VxdWVudGx5LCBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYCBhcmUgbmV2ZXIgcmVhY2hlZC4gSXQncyBhIGZ1bmRhbWVudGFsIGlzc3VlIHdpdGggdGhlIGVudmlyb25tZW50LlxuXG5Ob3csIEknbSB0cnlpbmcgdG8gdGhpbmsgb3V0c2lkZSB0aGUgYm94LiBDb3VsZCBzeXprYWxsZXIsIHdpdGggaXRzIFBDSSBmdXp6ZXIsIHBvc3NpYmx5IHRyaWNrIHRoZSBzeXN0ZW0gaW50byB0aGlua2luZyB0aGUgZmlybXdhcmUgaXMgcmVhZHk/IEl0IGNhbiBnZW5lcmF0ZSBhcmJpdHJhcnkgcmVzcG9uc2VzIHRvIE1NSU8gcmVhZHMsIHdoaWNoIGlzIGEgcG93ZXJmdWwgdG9vbC4gQnV0LCByZWFsaXN0aWNhbGx5LCBnZXR0aW5nIHRocm91Z2ggYSBjb21wbGV4IGZpcm13YXJlIGJvb3Qgc2VxdWVuY2UgdGhhdCBpbnZvbHZlcyBETUFpbmcgZmlybXdhcmUgZGF0YSwgd2FpdGluZyBmb3Igc3BlY2lmaWMgaW50ZXJydXB0cywgYW5kIHRoZW4gdGhlIHdob2xlIFFNSSBtZXNzYWdlIGV4Y2hhbmdlLCB3aXRoIHB1cmVseSByYW5kb20gZnV6emluZz8gSXQncyBwcmFjdGljYWxseSBpbXBvc3NpYmxlLiBUaGUgY29tcGxleGl0eSBpcyBqdXN0IHRvbyBoaWdoLiBTbywgaXQgc3RpbGwgZmVlbHMgdW5yZWFjaGFibGUuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJIHNob3VsZCBjaGVjayBvbmUgbW9yZSB0aGluZy4gSSdtIGdvaW5nIHRvIGRvdWJsZSBjaGVjayBhbmQgbWFrZSBzdXJlIHRoYXQgdGhlcmUncyBubyBvdGhlciBwYXRoIHRoYXQgY291bGQgY2FsbCBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYC4gSSBuZWVkIHRvIGJlIDEwMCUgc3VyZSB0aGlzIGlzbid0IHJlYWNoYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTAyODAsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTI6MjAuNzkxNTczMjE3WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDI3ODEyODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM9NTMxOT1zdGF0aWMgaW50IGF0aDEya19zdGFydF9zY2FuKHN0cnVjdCBhdGgxMmsgKmFyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy01MzI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6NTMyNjpcXHRyZXQgPSBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoYXIsIGFyZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy01MzI3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jPTI0OTA9c3RhdGljIHZvaWQgYXRoMTJrX3dtaV9jb3B5X3NjYW5fZXZlbnRfY250cmxfZmxhZ3Moc3RydWN0IHdtaV9zdGFydF9zY2FuX2NtZCAqY21kLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYy0yNTYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmM6MjU2MzppbnQgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kKHN0cnVjdCBhdGgxMmsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMtMjU2NC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmg9NjQxMj12b2lkIGF0aDEya193bWlfc3RhcnRfc2Nhbl9pbml0KHN0cnVjdCBhdGgxMmsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmgtNjQxMy1cXHRcXHRcXHRcXHRzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaDo2NDE0OmludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaC02NDE1LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBhdGgxMmtfd21pX3NjYW5fcmVxX2FyZyAqYXJnKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTI6MjAuOTM0MzYyNTIzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIyMjk1ODgwMTQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipBbmFseXppbmcgdGhlIFdpLUZpIDcgU2NhbiBJbml0aWF0aW9uKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGUgV2ktRmkgNyBkcml2ZXIgY29kZSwgYW5kIEkndmUgdHJhY2VkIHRoZSBzY2FuIGluaXRpYXRpb24gcHJvY2VzcyBiYWNrIHRvIGl0cyBjb3JlLiBNeSBpbW1lZGlhdGUgb2JzZXJ2YXRpb24gaXMgdGhhdCB0aGUgc2NhbiBpcyBzdHJpY3RseSB0cmlnZ2VyZWQgdGhyb3VnaCBgYXRoMTJrX3N0YXJ0X3NjYW5gLiBUaGF0J3Mgd2hlcmUgaXQgYWxsIGJlZ2lucy4gRGlnZ2luZyBkZWVwZXIsIGl0IGlzIGFwcGFyZW50IHRoaXMgZnVuY3Rpb24gaXNuJ3QgdXNlZCBldmVyeXdoZXJlLCBpbiBmYWN0LCBpdCBpcyBleGNsdXNpdmVseSBjYWxsZWQgd2l0aGluIHRoZSBgaWVlZTgwMjExX29wc2Agc3RydWN0dXJlLiBUaGlzIHN0cnVjdHVyZSBpcyB0aGUgZnVuZGFtZW50YWwgaW50ZXJmYWNlIGJldHdlZW4gdGhlIDgwMi4xMSBsYXllciAodGhlIGNvcmUgV2ktRmkgc3RhY2spIGFuZCB0aGUgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLiBUaGVyZWZvcmUgdGhlIHNjYW4gZnVuY3Rpb25hbGl0eSBpcyBzcGVjaWZpY2FsbHkgdGllZCB0byBXaS1GaSA3IHdpdGhpbiB0aGUgSUVFRSA4MDIuMTEgaW1wbGVtZW50YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNDQzLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTI6NDMuMjMwMjQ2NTM1WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjM3OTY1NjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTJrX3N0YXJ0X3NjYW5cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYz01MjcyPXN0YXRpYyB2b2lkIGF0aDEya19zY2FuX3ZkZXZfY2xlYW5fd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lwaHlfd29yayAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtNTMxOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjUzMTk6c3RhdGljIGludCBhdGgxMmtfc3RhcnRfc2NhbihzdHJ1Y3QgYXRoMTJrICphcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTUzMjAtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM9NTUxNz1zdGF0aWMgaW50IGF0aDEya19tYWNfaW5pdGlhdGVfaHdfc2NhbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtNTY1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjU2NTQ6XFx0cmV0ID0gYXRoMTJrX3N0YXJ0X3NjYW4oYXIsIGFyZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy01NjU1LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM9MTM2NDU9aW50IGF0aDEya19tYWNfb3BfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTEzNzU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6MTM3NjA6XFx0cmV0ID0gYXRoMTJrX3N0YXJ0X3NjYW4oYXIsIGFyZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xMzc2MS1cXHRpZiAocmV0KSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA4OjUyOjQzLjQ5NDA1MDI1OVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2ODMzNjUyNzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVucmVhY2hhYmxlIENvZGUgaW4gdGhlIGF0aDEyayBEcml2ZXIqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoaXMgZnVuY3Rpb24gY2FsbCwgdGhhdCdzIGJlaW5nIGNoZWNrZWQsIGNvbWVzIGZyb20gYGF0aDEya19tYWNfaW5pdGlhdGVfaHdfc2NhbmAgYW5kIGBhdGgxMmtfbWFjX29wX3JlbWFpbl9vbl9jaGFubmVsYC4gQm90aCBhcmUsIGFzIEkgcmVjYWxsLCBtYWM4MDIxMSBvcGVyYXRpb25zLCB3aGljaCBpcyBpbXBvcnRhbnQuIFRoZSBjcnVjaWFsIHBvaW50IGhlcmUgaXMgdGhhdCBtYWM4MDIxMSBvcGVyYXRpb25zLCBieSBkZXNpZ24sIGFyZSAqb25seSogcmVnaXN0ZXJlZCB3aGVuIHRoZSB3aXJlbGVzcyBkZXZpY2UgaXMgY29tcGxldGVseSBpbml0aWFsaXplZCBhbmQgdGhlIGZpcm13YXJlIGhhcyBsb2FkZWQgYW5kIGlzIHJlYWR5IHRvIGdvLiBJIGtub3cgdGhpcyBpbnRpbWF0ZWx5IGZyb20gbXkgd29yayB3aXRoIHRoZSBjb2RlYmFzZS5cblxuR2l2ZW4gdGhpcyBkZXBlbmRlbmN5IG9uIGZ1bGx5IGluaXRpYWxpemVkIGhhcmR3YXJlLCBhbmQgdGhlIGN1cnJlbnQgc3RhdGUgb2Ygb3VyIHRlc3RpbmcgZW52aXJvbm1lbnQsIHRoaXMgY29kZSBwYXRoIGlzIHNpbXBseSB1bnJlYWNoYWJsZS4gV2UncmUgZWl0aGVyIHJ1bm5pbmcgb24gcmVhbCBoYXJkd2FyZSAod2hpY2ggd2UncmUgbm90IGZvY3VzZWQgb24pLCBvciB3ZSdyZSB1c2luZyBhbiBlbXVsYXRvci4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGVyZSBpc24ndCBhIHN1ZmZpY2llbnRseSBjb21wbGV4IGVtdWxhdG9yIGF2YWlsYWJsZSBmb3IgYXRoMTJrIHdpdGhpbiBzeXprYWxsZXIvUUVNVSB0aGF0IGNvdWxkIHRyaWdnZXIgdGhpcyBiZWhhdmlvci5cblxuVGhlcmVmb3JlLCBhZnRlciBjYXJlZnVsIGNvbnNpZGVyYXRpb24gb2YgdGhlIGRlcGVuZGVuY2llcywgSSdtIGNvbmZpZGVudCB0aGF0IHRoZSBvcHRpbWFsIHJldHVybiB2YWx1ZSBmb3IgYFdvcnRoRnV6emluZ2AgaXMgYGZhbHNlYC4gSXQncyBhIHdhc3RlIG9mIHRpbWUgdG8gZXZlbiBhdHRlbXB0IHRvIGZ1enogdGhpcyBhcmVhOyBpdCdzIHNpbXBseSBuZXZlciBnb2luZyB0byBiZSBoaXQgaW4gb3VyIGN1cnJlbnQgc2V0dXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMTc2LCJPdXRwdXRUb2tlbnMiOjEyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1Mjo1MC4zMjc3MDcxMThaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTI5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSBhbmQgZmlybXdhcmUgdG8gaW5pdGlhbGl6ZS4gV2l0aG91dCBoYXJkd2FyZSBlbXVsYXRpb24sIHRoZSBkcml2ZXIgY2Fubm90IGNvbXBsZXRlIGl0cyBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSAoZS5nLiwgUU1JIGZpcm13YXJlIHJlYWRpbmVzcyksIG1lYW5pbmcgaXQgd2lsbCBub3QgcmVnaXN0ZXIgd2l0aCBtYWM4MDIxMS4gQXMgYSByZXN1bHQsIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYCBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlIGFuZCBmaXJtd2FyZSB0byBpbml0aWFsaXplLiBXaXRob3V0IGhhcmR3YXJlIGVtdWxhdGlvbiwgdGhlIGRyaXZlciBjYW5ub3QgY29tcGxldGUgaXRzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIChlLmcuLCBRTUkgZmlybXdhcmUgcmVhZGluZXNzKSwgbWVhbmluZyBpdCB3aWxsIG5vdCByZWdpc3RlciB3aXRoIG1hYzgwMjExLiBBcyBhIHJlc3VsdCwgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWRgIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow9nxwp[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-29 08:33:31 +0000 UTC FinishedAt: 2026-06-29 08:52:52 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA4OjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlIGFuZCBmaXJtd2FyZSB0byBpbml0aWFsaXplLiBXaXRob3V0IGhhcmR3YXJlIGVtdWxhdGlvbiwgdGhlIGRyaXZlciBjYW5ub3QgY29tcGxldGUgaXRzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIChlLmcuLCBRTUkgZmlybXdhcmUgcmVhZGluZXNzKSwgbWVhbmluZyBpdCB3aWxsIG5vdCByZWdpc3RlciB3aXRoIG1hYzgwMjExLiBBcyBhIHJlc3VsdCwgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWRgIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGYwZWUzMjNmNzYyMjI0Yzc3OGYwM2Q5ODZhODg4ZjdiMTYyNDgyNzBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1biAyOSAwODo1MDowOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuaW5kZXggNjVhMDVhOTUyMGZmY2IuLjllMWQzYzY2Mjg1MjVhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuQEAgLTI1NzEsNyAmIzQzOzI1NzEsOCBAQCBpbnQgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kKHN0cnVjdCBhdGgxMmsgKmFyLFxuIFx0c3RydWN0IHdtaV90bHYgKnRsdjtcbiBcdHZvaWQgKnB0cjtcbiBcdGludCBpLCByZXQsIGxlbjtcbi1cdHUzMiAqdG1wX3B0ciwgZXh0cmFpZV9sZW5fd2l0aF9wYWQgPSAwO1xuJiM0MztcdF9fbGUzMiAqdG1wX3B0cjtcbiYjNDM7XHR1MzIgZXh0cmFpZV9sZW5fd2l0aF9wYWQgPSAwO1xuIFx0c3RydWN0IGF0aDEya193bWlfaGludF9zaG9ydF9zc2lkX2FyZyAqc19zc2lkID0gTlVMTDtcbiBcdHN0cnVjdCBhdGgxMmtfd21pX2hpbnRfYnNzaWRfYXJnICpoaW50X2Jzc2lkID0gTlVMTDtcbiBcbkBAIC0yNjU2LDkgJiM0MzsyNjU3LDEwIEBAIGludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsXG4gXHR0bHYgPSBwdHI7XG4gXHR0bHYtXHUwMDNlaGVhZGVyID0gYXRoMTJrX3dtaV90bHZfaGRyKFdNSV9UQUdfQVJSQVlfVUlOVDMyLCBsZW4pO1xuIFx0cHRyICYjNDM7PSBUTFZfSERSX1NJWkU7XG4tXHR0bXBfcHRyID0gKHUzMiAqKXB0cjtcbiYjNDM7XHR0bXBfcHRyID0gKF9fbGUzMiAqKXB0cjtcbiBcbi1cdG1lbWNweSh0bXBfcHRyLCBhcmctXHUwMDNlY2hhbl9saXN0LCBhcmctXHUwMDNlbnVtX2NoYW4gKiA0KTtcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhcmctXHUwMDNlbnVtX2NoYW47IGkmIzQzOyYjNDM7KVxuJiM0MztcdFx0dG1wX3B0cltpXSA9IGNwdV90b19sZTMyKGFyZy1cdTAwM2VjaGFuX2xpc3RbaV0pO1xuIFxuIFx0cHRyICYjNDM7PSBsZW47XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDg6NTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDEyayBkcml2ZXIsIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUgYW5kIGZpcm13YXJlIHRvIGluaXRpYWxpemUuIFdpdGhvdXQgaGFyZHdhcmUgZW11bGF0aW9uLCB0aGUgZHJpdmVyIGNhbm5vdCBjb21wbGV0ZSBpdHMgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgKGUuZy4sIFFNSSBmaXJtd2FyZSByZWFkaW5lc3MpLCBtZWFuaW5nIGl0IHdpbGwgbm90IHJlZ2lzdGVyIHdpdGggbWFjODAyMTEuIEFzIGEgcmVzdWx0LCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gYGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZGAgaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmMGVlMzIzZjc2MjIyNGM3NzhmMDNkOTg2YTg4OGY3YjE2MjQ4MjcwCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBKdW4gMjkgMDg6NTA6MDggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYwppbmRleCA2NWEwNWE5NTIwZmZjYi4uOWUxZDNjNjYyODUyNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYwpAQCAtMjU3MSw3ICYjNDM7MjU3MSw4IEBAIGludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsCiAJc3RydWN0IHdtaV90bHYgKnRsdjsKIAl2b2lkICpwdHI7CiAJaW50IGksIHJldCwgbGVuOwotCXUzMiAqdG1wX3B0ciwgZXh0cmFpZV9sZW5fd2l0aF9wYWQgPSAwOwomIzQzOwlfX2xlMzIgKnRtcF9wdHI7CiYjNDM7CXUzMiBleHRyYWllX2xlbl93aXRoX3BhZCA9IDA7CiAJc3RydWN0IGF0aDEya193bWlfaGludF9zaG9ydF9zc2lkX2FyZyAqc19zc2lkID0gTlVMTDsKIAlzdHJ1Y3QgYXRoMTJrX3dtaV9oaW50X2Jzc2lkX2FyZyAqaGludF9ic3NpZCA9IE5VTEw7CiAKQEAgLTI2NTYsOSAmIzQzOzI2NTcsMTAgQEAgaW50IGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZChzdHJ1Y3QgYXRoMTJrICphciwKIAl0bHYgPSBwdHI7CiAJdGx2LSZndDtoZWFkZXIgPSBhdGgxMmtfd21pX3Rsdl9oZHIoV01JX1RBR19BUlJBWV9VSU5UMzIsIGxlbik7CiAJcHRyICYjNDM7PSBUTFZfSERSX1NJWkU7Ci0JdG1wX3B0ciA9ICh1MzIgKilwdHI7CiYjNDM7CXRtcF9wdHIgPSAoX19sZTMyICopcHRyOwogCi0JbWVtY3B5KHRtcF9wdHIsIGFyZy0mZ3Q7Y2hhbl9saXN0LCBhcmctJmd0O251bV9jaGFuICogNCk7CiYjNDM7CWZvciAoaSA9IDA7IGkgJmx0OyBhcmctJmd0O251bV9jaGFuOyBpJiM0MzsmIzQzOykKJiM0MzsJCXRtcF9wdHJbaV0gPSBjcHVfdG9fbGUzMihhcmctJmd0O2NoYW5fbGlzdFtpXSk7CiAKIAlwdHIgJiM0Mzs9IGxlbjsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTM0CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogNDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkVuZGlhbm5lc3MgRml4IEFuYWx5c2lzIGZvciBhdGgxMmsgRHJpdmVyKioKCk9rYXksIHNvIHRoZXJlJiMzOTtzIGEgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmNgIHRoYXQgdHdlYWtzIGBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWRgLiAgSXQmIzM5O3MgYSBzdHJhaWdodGZvcndhcmQgZW5kaWFubmVzcyBmaXg6IGNoYW5naW5nIGB1MzIgKnRtcF9wdHJgIHRvIGBfX2xlMzIgKnRtcF9wdHJgIGFuZCByZXBsYWNpbmcgYSBgbWVtY3B5YCB3aXRoIGEgbG9vcCB0aGF0IGNhbGxzIGBjcHVfdG9fbGUzMmAuICBDbGVhbiBhbmQgc2ltcGxlLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtDYW4gd2UgZXZlbiAqc2VlKiB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/JiMzNDsuIFRoaXMgaXMgYSBkcml2ZXIgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcy4KCk5vdywgaGFyZHdhcmUtc3BlY2lmaWMgd2lyZWxlc3MgZHJpdmVycyBsaWtlIGF0aDEyayBhcmUgdHlwaWNhbGx5IGEgcGFpbiBpbiB0aGUgbmVjayB0byBleGVyY2lzZSB3aXRob3V0IGFjdHVhbCBoYXJkd2FyZS4gIFlvdSYjMzk7ZCBuZWVkIHNvbWV0aGluZyBsaWtlIG1hYzgwMjExX2h3c2ltLCBidXQgYXRoMTJrIGlzIGEgKnNwZWNpZmljKiBkcml2ZXIsIG5vdCBhIGdlbmVyYWwgaGFyZHdhcmUgc2ltdWxhdGlvbi4gSSBkb24mIzM5O3QgcmVtZW1iZXIgUUVNVSBlbXVsYXRpbmcgYXRoMTJrIGRpcmVjdGx5LiAgU28gdGhlIG1pbGxpb24tZG9sbGFyIHF1ZXN0aW9uIGlzOiBjYW4gd2UgdHJpZ2dlciBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYCB3aXRob3V0IHBoeXNpY2FsIGhhcmR3YXJlPwoKTGV0JiMzOTtzIGRvIGEgcXVpY2sgaW52ZXN0aWdhdGlvbi4gSSBzaG91bGQgY2hlY2sgaWYgYXRoMTJrIGNhbiBwcm9iZSBhdCBhbGwgd2l0aG91dCBoYXJkd2FyZS4gIElzIGl0IGEgUENJIG9yIEFIQiBkZXZpY2U/IEFoYSwgaXQgc3VwcG9ydHMgYm90aC4gV2l0aG91dCBoYXJkd2FyZSwgdGhlIGRyaXZlciBsaWtlbHkgd29uJiMzOTt0IGV2ZW4gbG9hZCwgbWVhbmluZyBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYCB3aWxsIHN0YXkgdW50b3VjaGVkLgoKSG9sZCBvbiBhIHNlY29uZCwgdGhvdWdoLiBTeXprYWxsZXIgY2FuIGRvIHdvbmRlcnMsIHJpZ2h0PyAgSXQgbWlnaHQgdXNlIGB2aGNpYCBvciBgbWFjODAyMTFfaHdzaW1gLCBhbmQgZm9yIFBDSSBkZXZpY2VzLCBpZiBmdXp6aW5nIGlzIGVuYWJsZWQsIGl0IGNhbiB1c2UgUENJIGZ1enppbmcsIGJ1dCBldmVuIHRoZW4sIGl0JiMzOTtzIHVzdWFsbHkgcmVhbGx5IHRyaWNreSB0byBnZXQgZGVlcCBpbnRvIHRoZSBXTUkgKFdpcmVsZXNzIE1lc3NhZ2UgSW50ZXJmYWNlKSB3aGljaCBpbnZvbHZlcyB0YWxraW5nIHRvIHRoZSBmaXJtd2FyZS4gTGV0IG1lIGNoZWNrIGlmIGF0aDEyayBoYXMgYW55IHNwZWNpZmljIGZ1enppbmcgaG9va3Mgb3IgaWYgaXQmIzM5O3MganVzdCB5b3VyIHN0YW5kYXJkIGRyaXZlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTUzMTk9c3RhdGljIGludCBhdGgxMmtfc3RhcnRfc2NhbihzdHJ1Y3QgYXRoMTJrICphcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTUzMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjUzMjY6XHRyZXQgPSBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoYXIsIGFyZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTUzMjctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmM9MjQ5MD1zdGF0aWMgdm9pZCBhdGgxMmtfd21pX2NvcHlfc2Nhbl9ldmVudF9jbnRybF9mbGFncyhzdHJ1Y3Qgd21pX3N0YXJ0X3NjYW5fY21kICpjbWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYy0yNTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYzoyNTYzOmludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jLTI1NjQtXHRcdFx0XHQgICBzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oPTY0MTI9dm9pZCBhdGgxMmtfd21pX3N0YXJ0X3NjYW5faW5pdChzdHJ1Y3QgYXRoMTJrICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmgtNjQxMy1cdFx0XHRcdHN0cnVjdCBhdGgxMmtfd21pX3NjYW5fcmVxX2FyZyAqYXJnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmg6NjQxNDppbnQgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kKHN0cnVjdCBhdGgxMmsgKmFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaC02NDE1LVx0XHRcdFx0ICAgc3RydWN0IGF0aDEya193bWlfc2Nhbl9yZXFfYXJnICphcmcpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA4OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NjEKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxNDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBhdGgxMmsgRHJpdmVyIENvbnRleHQqKgoKT2theSwgc28gdGhlIGBhdGgxMmtfc3RhcnRfc2NhbmAgZnVuY3Rpb24gaXMgdGhlIGVudHJ5IHBvaW50LCBjYWxsZWQgdGhyb3VnaCB0aGUgbWFjODAyMTEgb3BlcmF0aW9ucywgd2hpY2ggaXMgZ29vZCBjb250ZXh0LiBCdXQgZ2V0dGluZyB0aGVyZSBpbXBsaWVzIHRoZSBhdGgxMmsgZHJpdmVyIGlzIHByb3Blcmx5IGluaXRpYWxpemVkLCBhbmQgdGhhdCYjMzk7cyB0aGUgcnViLiBUaGlzIGRyaXZlciBpcyBpbmhlcmVudGx5IHRpZWQgdG8gc3BlY2lmaWMgaGFyZHdhcmU6IFBDSWUgb3IgQUhCLCBhbmQgcmVxdWlyZXMgdGhlIGNvcnJlc3BvbmRpbmcgZmlybXdhcmUgdG8gZXZlbiBnZXQgb2ZmIHRoZSBncm91bmQuIEluIGEgdmlydHVhbCBlbnZpcm9ubWVudCBsaWtlIEdDRSBvciBRRU1VLCB3aXRob3V0IHNvbWUgc2VyaW91c2x5IHNvcGhpc3RpY2F0ZWQgaGFyZHdhcmUgZW11bGF0aW9uLCB0aGUgY2hhbmNlIG9mIHRoaXMgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2Ugc3VjY2VlZGluZyBpcyBpbmNyZWRpYmx5IHNsaW0uCgpIbW0sIEkgcmVtZW1iZXIgc3l6a2FsbGVyIGRvZXMgZGFiYmxlIGluIFBDSSBmdXp6aW5nLiBCdXQsIGV2ZW4gd2l0aCB0aGF0LCBpdCByYXJlbHkgZ2V0cyBwYXN0IHRoZSBpbml0aWFsIGZpcm13YXJlIGxvYWQgYW5kIHRob3NlIGluY3JlZGlibHkgY29tcGxleCBoYW5kc2hha2VzIHRoYXQgZHJpdmVycyBsaWtlIGF0aDEyayBkZXBlbmQgb24uIEl04oCZcyB1c3VhbGx5IHRvbyBtdWNoIGZvciBpdCB0byBoYW5kbGUuIFRoYXTigJlzIHByb2JhYmx5IHdoZXJlIHRoaW5ncyBhcmUgZ29pbmcgc2lkZXdheXMuCgpBbHJpZ2h0LCBhIG1vcmUgcHJvbWlzaW5nIGF2ZW51ZTogaXMgdGhlcmUgYSBtb2NrIG9yIHRlc3RpbmcgZnJhbWV3b3JrIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgYXRoMTJrPyBUaGF0IHdvdWxkIGJlIHRoZSBiZXN0IGNhc2Ugc2NlbmFyaW8gYXQgdGhpcyBzdGFnZS4gSXQgbWlnaHQgYmUgcG9zc2libGUgdG8gaW5qZWN0IHNvbWUgc2lnbmFscyBmb3IgdGVzdGluZyB0aGF0IGFyZSBub3QgcmVsaWFudCBvbiB0aGUgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gcGF0aC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQVRIMTJLJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyOm9iai0kKENPTkZJR19BVEgxMkspICYjNDM7PSBhdGgxMmsub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0zLWF0aDEyay15ICYjNDM7PSBjb3JlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNTphdGgxMmstJChDT05GSUdfQVRIMTJLX0FIQikgJiM0Mzs9IGFoYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfQVRIMTJLKSAmIzQzOz0gd2lmaTcvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyOTphdGgxMmstJChDT05GSUdfQVRIMTJLX0RFQlVHRlMpICYjNDM7PSBkZWJ1Z2ZzLm8gZGVidWdmc19odHRfc3RhdHMubyBkZWJ1Z2ZzX3N0YS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTMwLWF0aDEyay0kKENPTkZJR19BQ1BJKSAmIzQzOz0gYWNwaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjMxOmF0aDEyay0kKENPTkZJR19BVEgxMktfVFJBQ0lORykgJiM0Mzs9IHRyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMzItYXRoMTJrLSQoQ09ORklHX1BNKSAmIzQzOz0gd293Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzM6YXRoMTJrLSQoQ09ORklHX0FUSDEyS19DT1JFRFVNUCkgJiM0Mzs9IGNvcmVkdW1wLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMzQtYXRoMTJrLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICYjNDM7PSB0ZXN0bW9kZS5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmg9NjE0PXN0cnVjdCBhdGgxMmsge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oLTczMS1cdHUzMiBjYWNoZWRfcHBkdV9pZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oOjczMjojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuaC03MzMtXHRzdHJ1Y3QgYXRoMTJrX2RlYnVnIGRlYnVnO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oPTkzNz1zdHJ1Y3QgYXRoMTJrX2Jhc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oLTEwMzUtXHRlbnVtIGF0aDEya19kZnNfcmVnaW9uIGRmc19yZWdpb247XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuaDoxMDM2OiNpZmRlZiBDT05GSUdfQVRIMTJLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oLTEwMzctXHRzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX3NvYztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmVkdW1wLmg9Mzc9c3RydWN0IGF0aDEya19kdW1wX2ZpbGVfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlZHVtcC5oLTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlZHVtcC5oOjYwOiNpZmRlZiBDT05GSUdfQVRIMTJLX0NPUkVEVU1QXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmVkdW1wLmgtNjEtZW51bSBhdGgxMmtfZndfY3Jhc2hfZHVtcF90eXBlIGF0aDEya19jb3JlZHVtcF9nZXRfZHVtcF90eXBlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5jPTU1PUVYUE9SVF9TWU1CT0woX19hdGgxMmtfd2Fybik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmMtNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmM6NTc6I2lmZGVmIENPTkZJR19BVEgxMktfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuYy01OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmM9MTA4PUVYUE9SVF9TWU1CT0woYXRoMTJrX2RiZ19kdW1wKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuYy0xMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmM6MTEwOiNlbmRpZiAvKiBDT05GSUdfQVRIMTJLX0RFQlVHICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oPTQxPWV4dGVybiBib29sIGF0aDEya19mdG1fbW9kZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuaC00Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuaDo0MzojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oLTQ0LV9fcHJpbnRmKDMsIDQpIHZvaWQgX19hdGgxMmtfZGJnKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oPTQ3PXZvaWQgYXRoMTJrX2RiZ19kdW1wKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oLTUwLVx0XHQgICAgIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmg6NTE6I2Vsc2UgLyogQ09ORklHX0FUSDEyS19ERUJVRyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oLTUyLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2F0aDEya19kYmcoc3RydWN0IGF0aDEya19iYXNlICphYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmg9NTg9c3RhdGljIGlubGluZSB2b2lkIGF0aDEya19kYmdfZHVtcChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuaC02My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmg6NjQ6I2VuZGlmIC8qIENPTkZJR19BVEgxMktfREVCVUcgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuaC02NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnMuaC05LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmg6MTA6I2lmZGVmIENPTkZJR19BVEgxMktfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmgtMTEtdm9pZCBhdGgxMmtfZGVidWdmc19zb2NfY3JlYXRlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmcy5oPTE0Mj1zdGF0aWMgaW5saW5lIHZvaWQgYXRoMTJrX2RlYnVnZnNfcGRldl9jcmVhdGUoc3RydWN0IGF0aDEya19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnMuaC0xNDQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmg6MTQ1OiNlbmRpZiAvKiBDT05GSUdfQVRIMTJLX0RFQlVHRlMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmcy5oLTE0Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnNfaHR0X3N0YXRzLmg9MjY9dm9pZCBhdGgxMmtfZGVidWdmc19odHRfc3RhdHNfcmVnaXN0ZXIoc3RydWN0IGF0aDEyayAqYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oOjI4OiNpZmRlZiBDT05GSUdfQVRIMTJLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19odHRfc3RhdHMuaC0yOS12b2lkIGF0aDEya19kZWJ1Z2ZzX2h0dF9leHRfc3RhdHNfaGFuZGxlcihzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oLTMwLVx0XHRcdFx0XHQgIHN0cnVjdCBza19idWZmICpza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oOjMxOiNlbHNlIC8qIENPTkZJR19BVEgxMktfREVCVUdGUyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oLTMyLXN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMmtfZGVidWdmc19odHRfZXh0X3N0YXRzX2hhbmRsZXIoc3RydWN0IGF0aDEya19iYXNlICphYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnNfc3RhLmgtMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnNfc3RhLmg6MTU6I2lmZGVmIENPTkZJR19BVEgxMktfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX3N0YS5oLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX3N0YS5oPTE3PXZvaWQgYXRoMTJrX2RlYnVnZnNfbGlua19zdGFfb3BfYWRkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19zdGEuaC0yMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19zdGEuaDoyMjojZW5kaWYgLyogQ09ORklHX0FUSDEyS19ERUJVR0ZTICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnNfc3RhLmgtMjMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYz0xMTk4PXZvaWQgYXRoMTJrX3BjaV93cml0ZTMyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTEyNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjEyNDQ6I2lmZGVmIENPTkZJR19BVEgxMktfQ09SRURVTVBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTI0NS1zdGF0aWMgaW50IGF0aDEya19wY2lfY29yZWR1bXBfY2FsY3VsYXRlX3NpemUoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTMyICpkdW1wX3NlZ19zeilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jPTE0Nzk9c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMmtfaGlmX29wcyBhdGgxMmtfcGNpX2hpZl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNDk2LVx0LnBhbmljX2hhbmRsZXIgPSBhdGgxMmtfcGNpX3BhbmljX2hhbmRsZXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE0OTc6I2lmZGVmIENPTkZJR19BVEgxMktfQ09SRURVTVBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTQ5OC1cdC5jb3JlZHVtcF9kb3dubG9hZCA9IGF0aDEya19wY2lfY29yZWR1bXBfZG93bmxvYWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90cmFjZS5oLTE0LS8qIGNyZWF0ZSBlbXB0eSBmdW5jdGlvbnMgd2hlbiB0cmFjaW5nIGlzIGRpc2FibGVkICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmg6MTU6I2lmICFkZWZpbmVkKENPTkZJR19BVEgxMktfVFJBQ0lORylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdHJhY2UuaC0xNi0jdW5kZWYgVFJBQ0VfRVZFTlRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmg9MTg9c3RhdGljIGlubGluZSB2b2lkIHRyYWNlXyAjIyBuYW1lKHByb3RvKSB7fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90cmFjZS5oOjE5OiNlbmRpZiAvKiAhQ09ORklHX0FUSDEyS19UUkFDSU5HIHx8IF9fQ0hFQ0tFUl9fICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmgtMjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19BVEgxMkspICYjNDM7PSBhdGgxMmtfd2lmaTcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9NYWtlZmlsZS0zLWF0aDEya193aWZpNy15ICYjNDM7PSBjb3JlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L01ha2VmaWxlLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9NYWtlZmlsZToyMDphdGgxMmtfd2lmaTctJChDT05GSUdfQVRIMTJLX0FIQikgJiM0Mzs9IGFoYi5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9haGIuaC04LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9haGIuaDo5OiNpZmRlZiBDT05GSUdfQVRIMTJLX0FIQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9haGIuaC0xMC1pbnQgYXRoMTJrX3dpZmk3X2FoYl9pbml0KHZvaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYz0xMDU3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBhdGgxMmtfb3BzX3dpZmk3ID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0xMTA0LSNlbmRpZlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jOjExMDU6I2lmZGVmIENPTkZJR19BVEgxMktfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTExMDYtXHQudmlmX2FkZF9kZWJ1Z2ZzICAgICAgICAgICAgICAgID0gYXRoMTJrX2RlYnVnZnNfb3BfdmlmX2FkZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTEwOC1cdENGRzgwMjExX1RFU1RNT0RFX0NNRChhdGgxMmtfdG1fY21kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jOjExMDk6I2lmZGVmIENPTkZJR19BVEgxMktfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTExMTAtXHQubGlua19zdGFfYWRkX2RlYnVnZnMgICAgICAgICAgID0gYXRoMTJrX2RlYnVnZnNfbGlua19zdGFfb3BfYWRkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmM9OTE5Mz1zdGF0aWMgdm9pZCBhdGgxMmtfd21pX2V2ZW50X3RlYXJkb3duX2NvbXBsZXRlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYy05MjE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYzo5MjE3OiNpZmRlZiBDT05GSUdfQVRIMTJLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMtOTIxOC1zdGF0aWMgaW50IGF0aDEya193bWlfdHBjX3N0YXRzX2NvcHlfYnVmZmVyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDg6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzUzMQoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDI1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBhdGgxMmsgRHJpdmVyIHdpdGggU3l6a2FsbGVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgYXRoMTJrYCBoZXJlLiBJIHNlZSBgQ09ORklHX0FUSDEyS2AgYW5kIGBDT05GSUdfQVRIMTJLX0FIQmAgYXJlIGRlZmluZWQuIE5vdywgSSByZWNhbGwgdGhhdCBzeXprYWxsZXIgaGFzIGBtYWM4MDIxMV9od3NpbWAsIHdoaWNoIGlzIGdyZWF0IGZvciBzaW11bGF0aW5nIGhhcmR3YXJlLiBCdXQgYGF0aDEya2AgaXMgYSAqcmVhbCogaGFyZHdhcmUgZHJpdmVyLCBzbyBjYW4gc3l6a2FsbGVyIGV2ZW4gZnV6eiBpdCBkaXJlY3RseT8KCkkga25vdyBzeXprYWxsZXIgaGFzIGEgYHdpZmlgIGZ1enppbmcgc3Vic3lzdGVtLCBhbmQgaXQgZGVmaW5pdGVseSB1c2VzIGBtYWM4MDIxMV9od3NpbWAgdG8gaW5qZWN0IHBhY2tldHMuIEJ1dCwgSSBkb24mIzM5O3QgdGhpbmsgaXQmIzM5O3MgZGlyZWN0bHkgdXNpbmcgYGF0aDEya2AsIHJpZ2h0PyBXYWl0IGEgc2Vjb25kLCB3YXNuJiMzOTt0IHRoZXJlIFBDSSBmdXp6aW5nIGFzIHdlbGw/IFllcywgc3l6a2FsbGVyICpjYW4qIGVtdWxhdGUgUENJIGRldmljZXMuIFRoYXQmIzM5O3MgYSBwb3NzaWJpbGl0eS4KCkJ1dCBoZXJlJiMzOTtzIHRoZSBraWNrZXI6IGBhdGgxMmtgIG5lZWRzIGZpcm13YXJlIHRvIGJlIGxvYWRlZCDigJMgdGhpbmdzIGxpa2UgYGF0aDEya19jb3JlX2ZldGNoX2JkZmAgYXJlIGludm9sdmVkLiBJZiB0aGF0IGZpcm13YXJlIGlzbiYjMzk7dCBwcmVzZW50LCBvciBpZiB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgZmFpbHMsIHRoZSBkcml2ZXIgd29uJiMzOTt0IHJlZ2lzdGVyIHdpdGggbWFjODAyMTEsIGFuZCBjcnVjaWFsbHksIHNvbWV0aGluZyBsaWtlIGBhdGgxMmtfc3RhcnRfc2NhbmAgd2lsbCBuZXZlciBnZXQgY2FsbGVkLiBUaGF0JiMzOTtzIGEgaHVnZSBibG9ja2VyLgoKU28sIHRoZSBxdWVzdGlvbiBpcywgaXMgdGhlcmUgYW55IGtpbmQgb2YgdGVzdG1vZGUgb3IgbW9jayBzZXR1cCBmb3IgYGF0aDEya2A/IExldCBtZSBzZWXigKYgQWgsIGBDT05GSUdfTkw4MDIxMV9URVNUTU9ERWAgaXMgdXNlZCBmb3IgYHRlc3Rtb2RlLmNgLiBOb3csIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCB0aGF04oCmCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDg6NTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA4OjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgyMDgKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBXaXJlbGVzcyBTY2FuIEluaXRpYXRpb24gRmxvdyoqCgpPa2F5LCBsZXQmIzM5O3MgdHJhY2UgdGhpcy4gTXkgcHJpbWFyeSBjb25jZXJuIGlzIGNvbmZpcm1pbmcgdGhlIGFjY2Vzc2liaWxpdHkgb2YgYGF0aDEya19zdGFydF9zY2FuYC4gSXQmIzM5O3MgdGhlIGRlc2lnbmF0ZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGBzdGFydF9zY2FuYCBvciBgc2NhbmAgb3BlcmF0aW9uIGRlZmluZWQgd2l0aGluIGBpZWVlODAyMTFfb3BzYCwgd2hpY2gsIGlmIEkgcmVjYWxsIGNvcnJlY3RseSwgaXMgdGhlIHN0YW5kYXJkIHN0cnVjdHVyZSBmb3Igd2lyZWxlc3MgZHJpdmVyIG9wZXJhdGlvbnMuIAoKSSBzZWUgYGF0aDEya19vcHNfd2lmaTdgIGhhcyBgLnN0YXJ0X3NjYW4gPSBhdGgxMmtfc3RhcnRfc2NhbmAuIFRoYXQgc2VlbXMgc3RyYWlnaHRmb3J3YXJkLCBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgZHJpdmVyJiMzOTtzIHByb3Blcmx5IHNldCB1cC4gVGhlIG5leHQgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGhvdyB0aGVzZSBvcGVyYXRpb25zIGdldCByZWdpc3RlcmVkLCBhbmQgdGhhdCB0eXBpY2FsbHkgbWVhbnMgYSBzdWNjZXNzZnVsIGRyaXZlciBwcm9iZS4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZSBwcm9iZSByb3V0aW5lLCBsaWtlbHkgc29tZXRoaW5nIGxpa2UgYGF0aDEya19jb3JlX3Byb2JlYCDigJMgb3IgYSBzaW1pbGFybHkgbmFtZWQgZnVuY3Rpb24gZm9yIHRoaXMgc3BlY2lmaWMgYXJjaGl0ZWN0dXJlLCBhdCBsZWFzdCDigJMgaXMgY2FsbGVkIHN1Y2Nlc3NmdWxseSBhbmQsIG1vcmUgaW1wb3J0YW50bHksIHRoYXQgaXQgY2FsbHMgYGllZWU4MDIxMV9od19zZXR1cGAgb3IgYHdpcGh5X3JlZ2lzdGVyYC4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgbWFnaWMgb2YgbGlua2luZyB0aGUgZHJpdmVyIHRvIHRoZSB3aXJlbGVzcyBzdGFjayBoYXBwZW5zLCBpc24mIzM5O3QgaXQ/IEkgbmVlZCB0byBmb2N1cyB0aGVyZSBuZXh0IHRvIGdldCB0aGUgY29tcGxldGUgcGljdHVyZSBvZiBob3cgdGhlIHNjYW4gaXMgaW5pdGlhdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3dpcGh5X3JlZ2lzdGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4NjQzCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKlBvdGVudGlhbCBDbHVlIERldGVjdGVkOiBgYXRoMTJrX21hY19yZWdpc3RlcmAqKgoKSG9sZCBvbiBhIHNlY29uZC4uLiBqdXN0IHNhdyBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSB2ZXJ5IGltcG9ydGFudC4gVGhhdCAmIzM0O3dhaXQmIzM0OyByZWFjdGlvbiBsaWtlbHkgaW5kaWNhdGVzIEkmIzM5O20gcmUtZXZhbHVhdGluZyBzb21ldGhpbmcuIFRoZSBtZW50aW9uIG9mIGBhdGgxMmtfbWFjX3JlZ2lzdGVyYC4uLiB0aGF0JiMzOTtzIGdvdCBteSBhdHRlbnRpb24uIFRoYXQgZnVuY3Rpb24gbmFtZSBpdHNlbGYgaXMgYSBwcmV0dHkgc2lnbmlmaWNhbnQgc2lnbmFsLiBJdCBpbW1lZGlhdGVseSBzdWdnZXN0cyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBBdGhlcm9zIDgwMi4xMWF4IE1BQyBsYXllciwgc3BlY2lmaWNhbGx5IHRoZSBhdGgxMmsgZHJpdmVyLiBJZiB0aGUgY29kZSBmbG93IGFjdHVhbGx5IHV0aWxpemVzIHRoaXMgZnVuY3Rpb24sIHRoZW4gdGhlIHByb2JsZW0gbGllcyB3aXRoaW4gdGhpcyBjb21wb25lbnQuIEl0IGFsc28gaW5kaWNhdGVzIHRoaXMgY29kZSBvcGVyYXRlcyBhdCB0aGF0IGxvdy1sZXZlbCB3aXRoaW4gdGhlIGhhcmR3YXJlIGFuZCB0aGUgZHJpdmVyLiBNeSB0aG91Z2h0IGlzIHRoYXQgaXQgY291bGQgZWl0aGVyIGJlIGEgZ29vZCB0aGluZyBvciBhIGJhZCB0aGluZywgZGVwZW5kaW5nIG9uIGNvbnRleHQuIEkgbmVlZCB0byB0cmFjayB3aGVyZSB0aGF0IGZ1bmN0aW9uIGlzIGFjdHVhbGx5ICpjYWxsZWQqIGFuZCB3aGF0JiMzOTtzIGJlaW5nIHBhc3NlZCB0byBpdC4gSXMgaXQgYmVpbmcgY2FsbGVkIGF0IHRoZSBhcHByb3ByaWF0ZSB0aW1lPyBBcmUgdGhlIHJlZ2lzdGVyIHZhbHVlcyBiZWluZyBpbml0aWFsaXplZCBjb3JyZWN0bHk/IElzIHRoZSByZWdpc3RlciBzdHJ1Y3R1cmUgaXRzZWxmIHByb3Blcmx5IGRlZmluZWQgYW5kIGFjY2Vzc2VkPyBOZWVkIHRvIGRpZyBpbnRvIHRoYXQgZnVuY3Rpb24mIzM5O3MgaW1wbGVtZW50YXRpb24gYW5kIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGF0aDEyayBkcml2ZXIuIFRoaXMgY291bGQgYmUgYSBjcml0aWNhbCBwaWVjZSBvZiB0aGUgcHV6emxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfbWFjX3JlZ2lzdGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmM9MTEzMj1zdGF0aWMgaW50IGF0aDEya19jb3JlX2h3X2dyb3VwX3N0YXJ0KHN0cnVjdCBhdGgxMmtfaHdfZ3JvdXAgKmFnKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jLTExNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxMTU2Olx0cmV0ID0gYXRoMTJrX21hY19yZWdpc3RlcihhZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYy0xMTU3LVx0aWYgKFdBUk5fT04ocmV0KSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTE0OTYyPXZvaWQgYXRoMTJrX21hY19tbG9fdGVhcmRvd24oc3RydWN0IGF0aDEya19od19ncm91cCAqYWcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDk4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6MTQ5ODQ6aW50IGF0aDEya19tYWNfcmVnaXN0ZXIoc3RydWN0IGF0aDEya19od19ncm91cCAqYWcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0OTg1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oPTE1ND12b2lkIGF0aDEya19tYWNfdW5yZWdpc3RlcihzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oOjE1NTppbnQgYXRoMTJrX21hY19yZWdpc3RlcihzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oLTE1Ni1pbnQgYXRoMTJrX21hY19hbGxvY2F0ZShzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA4OjUyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk0MTMKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA0MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgc25pcHBldCwgYXMgaWYgaXQgd2VyZSBteSB0aG91Z2h0IHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBEcml2ZXIgQ29kZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnRgIGZ1bmN0aW9uIGNhbGwuIFRoZSBpbnRlcmVzdGluZyB0aGluZyBoZXJlIGlzIHRoYXQgd2l0aGluIHRoaXMgZnVuY3Rpb24gY2FsbCwgYGF0aDEya19tYWNfcmVnaXN0ZXJgIGlzIGNhbGxlZC4gVGhhdCBtYWtlcyBtZSB0aGluayBhYm91dCB0aGUgcmVnaXN0ZXIgb3BlcmF0aW9ucy4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzOiB3aG8gaXMgY2FsbGluZyBgYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnRgIGluIHRoZSBmaXJzdCBwbGFjZT8gSSBuZWVkIHRvIHRyYWNlIGJhY2sgZnJvbSB0aGlzIHBvaW50LiBJcyB0aGlzIGEgdG9wLWxldmVsIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIG9yIGlzIGl0IGludm9rZWQgYXMgcGFydCBvZiBzb21lIG90aGVyIHByb2Nlc3M/IEkgbmVlZCB0byBmaW5kIHRoZSBjYWxsIGdyYXBoIHRvIGZ1bGx5IGdyYXNwIHRoaXMgcGFydCBvZiB0aGUgZHJpdmVyJiMzOTtzIGV4ZWN1dGlvbiBmbG93LiBVbmRlcnN0YW5kaW5nIHRoZSBjYWxsZXIgd2lsbCBnaXZlIG1lIGNydWNpYWwgY29udGV4dCByZWdhcmRpbmcgd2h5IHRoZSBNQUMgcmVnaXN0cmF0aW9uIGlzIGhhcHBlbmluZyBhdCB0aGlzIHN0YWdlIG9mIHRoZSBpbml0aWFsaXphdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDg6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYz0xMTA2PXN0YXRpYyBpbnQgYXRoMTJrX2NvcmVfbWxvX3NldHVwKHN0cnVjdCBhdGgxMmtfaHdfZ3JvdXAgKmFnKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jLTExMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxMTMyOnN0YXRpYyBpbnQgYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnQoc3RydWN0IGF0aDEya19od19ncm91cCAqYWcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYy0xMTMzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYz0xMjIyPXN0YXRpYyBpbmxpbmVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jOjEyMjM6Ym9vbCBhdGgxMmtfY29yZV9od19ncm91cF9zdGFydF9yZWFkeShzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jLTEyMjQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jPTEzMDM9aW50IGF0aDEya19jb3JlX3FtaV9maXJtd2FyZV9yZWFkeShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jLTEzMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxMzM3Olx0aWYgKGF0aDEya19jb3JlX2h3X2dyb3VwX3N0YXJ0X3JlYWR5KGFnKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmM6MTMzODpcdFx0cmV0ID0gYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnQoYWcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTMzOS1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jPTE2Mjg9c3RhdGljIHZvaWQgYXRoMTJrX2NvcmVfcmVzdGFydChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTY1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jOjE2NTI6XHRcdGlmICghYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnRfcmVhZHkoYWcpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYy0xNjUzLVx0XHRcdG11dGV4X3VubG9jayhcdTAwMjZhZy1cdTAwM2VtdXRleCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA4OjUyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwMjgwCgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMjQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlVucmVhY2hhYmxlIENvZGUgaW4gYSBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgYXRoMTJrX2NvcmVfcW1pX2Zpcm13YXJlX3JlYWR5YCBmdW5jdGlvbiwgYW5kIGl0JiMzOTtzIHByZXR0eSBjbGVhciB3aGF0JiMzOTtzIGhhcHBlbmluZy4gVGhlIGRyaXZlciYjMzk7cyB3YWl0aW5nIGZvciB0aGUgZmlybXdhcmUgdG8gYmVjb21lIHJlYWR5LCBzaWduYWxlZCB0aHJvdWdoIHRoZSBRTUkgaW50ZXJmYWNlLiBUaGlzIGlzIGhvdyB0aGUgTUFDIGdldHMgcmVnaXN0ZXJlZC4gTWFrZXMgc2Vuc2UuIEJ1dCBoZXJlJiMzOTtzIHRoZSBwcm9ibGVtOiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCB3aGVyZSB0aGVyZSYjMzk7cyBubyByZWFsIGhhcmR3YXJlIGVtdWxhdGlvbiwgdGhlIGZpcm13YXJlIGlzbiYjMzk7dCBnb2luZyB0byBsb2FkLiBRTUkgd2lsbCByZW1haW4gc2lsZW50LCBubyAmIzM0O3JlYWR5JiMzNDsgc2lnbmFsLCBhbmQgdGhlIE1BQyB3b24mIzM5O3QgYmUgcmVnaXN0ZXJlZC4gVGhhdCBtZWFucyBgYXRoMTJrX3N0YXJ0X3NjYW5gIGFuZCwgY29uc2VxdWVudGx5LCBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYCBhcmUgbmV2ZXIgcmVhY2hlZC4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBpc3N1ZSB3aXRoIHRoZSBlbnZpcm9ubWVudC4KCk5vdywgSSYjMzk7bSB0cnlpbmcgdG8gdGhpbmsgb3V0c2lkZSB0aGUgYm94LiBDb3VsZCBzeXprYWxsZXIsIHdpdGggaXRzIFBDSSBmdXp6ZXIsIHBvc3NpYmx5IHRyaWNrIHRoZSBzeXN0ZW0gaW50byB0aGlua2luZyB0aGUgZmlybXdhcmUgaXMgcmVhZHk/IEl0IGNhbiBnZW5lcmF0ZSBhcmJpdHJhcnkgcmVzcG9uc2VzIHRvIE1NSU8gcmVhZHMsIHdoaWNoIGlzIGEgcG93ZXJmdWwgdG9vbC4gQnV0LCByZWFsaXN0aWNhbGx5LCBnZXR0aW5nIHRocm91Z2ggYSBjb21wbGV4IGZpcm13YXJlIGJvb3Qgc2VxdWVuY2UgdGhhdCBpbnZvbHZlcyBETUFpbmcgZmlybXdhcmUgZGF0YSwgd2FpdGluZyBmb3Igc3BlY2lmaWMgaW50ZXJydXB0cywgYW5kIHRoZW4gdGhlIHdob2xlIFFNSSBtZXNzYWdlIGV4Y2hhbmdlLCB3aXRoIHB1cmVseSByYW5kb20gZnV6emluZz8gSXQmIzM5O3MgcHJhY3RpY2FsbHkgaW1wb3NzaWJsZS4gVGhlIGNvbXBsZXhpdHkgaXMganVzdCB0b28gaGlnaC4gU28sIGl0IHN0aWxsIGZlZWxzIHVucmVhY2hhYmxlLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEkgc2hvdWxkIGNoZWNrIG9uZSBtb3JlIHRoaW5nLiBJJiMzOTttIGdvaW5nIHRvIGRvdWJsZSBjaGVjayBhbmQgbWFrZSBzdXJlIHRoYXQgdGhlcmUmIzM5O3Mgbm8gb3RoZXIgcGF0aCB0aGF0IGNvdWxkIGNhbGwgYGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZGAuIEkgbmVlZCB0byBiZSAxMDAlIHN1cmUgdGhpcyBpc24mIzM5O3QgcmVhY2hhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTUzMTk9c3RhdGljIGludCBhdGgxMmtfc3RhcnRfc2NhbihzdHJ1Y3QgYXRoMTJrICphcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTUzMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjUzMjY6XHRyZXQgPSBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoYXIsIGFyZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTUzMjctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmM9MjQ5MD1zdGF0aWMgdm9pZCBhdGgxMmtfd21pX2NvcHlfc2Nhbl9ldmVudF9jbnRybF9mbGFncyhzdHJ1Y3Qgd21pX3N0YXJ0X3NjYW5fY21kICpjbWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYy0yNTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYzoyNTYzOmludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jLTI1NjQtXHRcdFx0XHQgICBzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oPTY0MTI9dm9pZCBhdGgxMmtfd21pX3N0YXJ0X3NjYW5faW5pdChzdHJ1Y3QgYXRoMTJrICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmgtNjQxMy1cdFx0XHRcdHN0cnVjdCBhdGgxMmtfd21pX3NjYW5fcmVxX2FyZyAqYXJnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmg6NjQxNDppbnQgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kKHN0cnVjdCBhdGgxMmsgKmFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaC02NDE1LVx0XHRcdFx0ICAgc3RydWN0IGF0aDEya193bWlfc2Nhbl9yZXFfYXJnICphcmcpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTQ0MwoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFuYWx5emluZyB0aGUgV2ktRmkgNyBTY2FuIEluaXRpYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhlIFdpLUZpIDcgZHJpdmVyIGNvZGUsIGFuZCBJJiMzOTt2ZSB0cmFjZWQgdGhlIHNjYW4gaW5pdGlhdGlvbiBwcm9jZXNzIGJhY2sgdG8gaXRzIGNvcmUuIE15IGltbWVkaWF0ZSBvYnNlcnZhdGlvbiBpcyB0aGF0IHRoZSBzY2FuIGlzIHN0cmljdGx5IHRyaWdnZXJlZCB0aHJvdWdoIGBhdGgxMmtfc3RhcnRfc2NhbmAuIFRoYXQmIzM5O3Mgd2hlcmUgaXQgYWxsIGJlZ2lucy4gRGlnZ2luZyBkZWVwZXIsIGl0IGlzIGFwcGFyZW50IHRoaXMgZnVuY3Rpb24gaXNuJiMzOTt0IHVzZWQgZXZlcnl3aGVyZSwgaW4gZmFjdCwgaXQgaXMgZXhjbHVzaXZlbHkgY2FsbGVkIHdpdGhpbiB0aGUgYGllZWU4MDIxMV9vcHNgIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgaXMgdGhlIGZ1bmRhbWVudGFsIGludGVyZmFjZSBiZXR3ZWVuIHRoZSA4MDIuMTEgbGF5ZXIgKHRoZSBjb3JlIFdpLUZpIHN0YWNrKSBhbmQgdGhlIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlci4gVGhlcmVmb3JlIHRoZSBzY2FuIGZ1bmN0aW9uYWxpdHkgaXMgc3BlY2lmaWNhbGx5IHRpZWQgdG8gV2ktRmkgNyB3aXRoaW4gdGhlIElFRUUgODAyLjExIGltcGxlbWVudGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwODo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfc3RhcnRfc2NhbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM9NTI3Mj1zdGF0aWMgdm9pZCBhdGgxMmtfc2Nhbl92ZGV2X2NsZWFuX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy01MzE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzo1MzE5OnN0YXRpYyBpbnQgYXRoMTJrX3N0YXJ0X3NjYW4oc3RydWN0IGF0aDEyayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTUzMjAtXHRcdFx0ICAgICBzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTU1MTc9c3RhdGljIGludCBhdGgxMmtfbWFjX2luaXRpYXRlX2h3X3NjYW4oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy01NjUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzo1NjU0Olx0cmV0ID0gYXRoMTJrX3N0YXJ0X3NjYW4oYXIsIGFyZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTU2NTUtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYz0xMzY0NT1pbnQgYXRoMTJrX21hY19vcF9yZW1haW5fb25fY2hhbm5lbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTEzNzU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzoxMzc2MDpcdHJldCA9IGF0aDEya19zdGFydF9zY2FuKGFyLCBhcmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xMzc2MS1cdGlmIChyZXQpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDg6NTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTIxNzYKCQkJCQkJCW91dHB1dDogMTI4CgkJCQkJCQl0aG91Z2h0czogMTIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlVucmVhY2hhYmxlIENvZGUgaW4gdGhlIGF0aDEyayBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBmdW5jdGlvbiBjYWxsLCB0aGF0JiMzOTtzIGJlaW5nIGNoZWNrZWQsIGNvbWVzIGZyb20gYGF0aDEya19tYWNfaW5pdGlhdGVfaHdfc2NhbmAgYW5kIGBhdGgxMmtfbWFjX29wX3JlbWFpbl9vbl9jaGFubmVsYC4gQm90aCBhcmUsIGFzIEkgcmVjYWxsLCBtYWM4MDIxMSBvcGVyYXRpb25zLCB3aGljaCBpcyBpbXBvcnRhbnQuIFRoZSBjcnVjaWFsIHBvaW50IGhlcmUgaXMgdGhhdCBtYWM4MDIxMSBvcGVyYXRpb25zLCBieSBkZXNpZ24sIGFyZSAqb25seSogcmVnaXN0ZXJlZCB3aGVuIHRoZSB3aXJlbGVzcyBkZXZpY2UgaXMgY29tcGxldGVseSBpbml0aWFsaXplZCBhbmQgdGhlIGZpcm13YXJlIGhhcyBsb2FkZWQgYW5kIGlzIHJlYWR5IHRvIGdvLiBJIGtub3cgdGhpcyBpbnRpbWF0ZWx5IGZyb20gbXkgd29yayB3aXRoIHRoZSBjb2RlYmFzZS4KCkdpdmVuIHRoaXMgZGVwZW5kZW5jeSBvbiBmdWxseSBpbml0aWFsaXplZCBoYXJkd2FyZSwgYW5kIHRoZSBjdXJyZW50IHN0YXRlIG9mIG91ciB0ZXN0aW5nIGVudmlyb25tZW50LCB0aGlzIGNvZGUgcGF0aCBpcyBzaW1wbHkgdW5yZWFjaGFibGUuIFdlJiMzOTtyZSBlaXRoZXIgcnVubmluZyBvbiByZWFsIGhhcmR3YXJlICh3aGljaCB3ZSYjMzk7cmUgbm90IGZvY3VzZWQgb24pLCBvciB3ZSYjMzk7cmUgdXNpbmcgYW4gZW11bGF0b3IuIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhlcmUgaXNuJiMzOTt0IGEgc3VmZmljaWVudGx5IGNvbXBsZXggZW11bGF0b3IgYXZhaWxhYmxlIGZvciBhdGgxMmsgd2l0aGluIHN5emthbGxlci9RRU1VIHRoYXQgY291bGQgdHJpZ2dlciB0aGlzIGJlaGF2aW9yLgoKVGhlcmVmb3JlLCBhZnRlciBjYXJlZnVsIGNvbnNpZGVyYXRpb24gb2YgdGhlIGRlcGVuZGVuY2llcywgSSYjMzk7bSBjb25maWRlbnQgdGhhdCB0aGUgb3B0aW1hbCByZXR1cm4gdmFsdWUgZm9yIGBXb3J0aEZ1enppbmdgIGlzIGBmYWxzZWAuIEl0JiMzOTtzIGEgd2FzdGUgb2YgdGltZSB0byBldmVuIGF0dGVtcHQgdG8gZnV6eiB0aGlzIGFyZWE7IGl0JiMzOTtzIHNpbXBseSBuZXZlciBnb2luZyB0byBiZSBoaXQgaW4gb3VyIGN1cnJlbnQgc2V0dXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA4OjUyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDEyayBkcml2ZXIsIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUgYW5kIGZpcm13YXJlIHRvIGluaXRpYWxpemUuIFdpdGhvdXQgaGFyZHdhcmUgZW11bGF0aW9uLCB0aGUgZHJpdmVyIGNhbm5vdCBjb21wbGV0ZSBpdHMgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgKGUuZy4sIFFNSSBmaXJtd2FyZSByZWFkaW5lc3MpLCBtZWFuaW5nIGl0IHdpbGwgbm90IHJlZ2lzdGVyIHdpdGggbWFjODAyMTEuIEFzIGEgcmVzdWx0LCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gYGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZGAgaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSBhbmQgZmlybXdhcmUgdG8gaW5pdGlhbGl6ZS4gV2l0aG91dCBoYXJkd2FyZSBlbXVsYXRpb24sIHRoZSBkcml2ZXIgY2Fubm90IGNvbXBsZXRlIGl0cyBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSAoZS5nLiwgUU1JIGZpcm13YXJlIHJlYWRpbmVzcyksIG1lYW5pbmcgaXQgd2lsbCBub3QgcmVnaXN0ZXIgd2l0aCBtYWM4MDIxMS4gQXMgYSByZXN1bHQsIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYCBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MDoxMC4yMzk2MTc2NDhaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjAwODgxMzM3NDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlIGFuZCBmaXJtd2FyZSB0byBpbml0aWFsaXplLiBXaXRob3V0IGhhcmR3YXJlIGVtdWxhdGlvbiwgdGhlIGRyaXZlciBjYW5ub3QgY29tcGxldGUgaXRzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIChlLmcuLCBRTUkgZmlybXdhcmUgcmVhZGluZXNzKSwgbWVhbmluZyBpdCB3aWxsIG5vdCByZWdpc3RlciB3aXRoIG1hYzgwMjExLiBBcyBhIHJlc3VsdCwgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWRgIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTA6MTAuMjM5NjI2MzE4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTI0NzY4MDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmMGVlMzIzZjc2MjIyNGM3NzhmMDNkOTg2YTg4OGY3YjE2MjQ4MjcwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVuIDI5IDA4OjUwOjA4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jXFxuaW5kZXggNjVhMDVhOTUyMGZmY2IuLjllMWQzYzY2Mjg1MjVhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jXFxuQEAgLTI1NzEsNyArMjU3MSw4IEBAIGludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsXFxuIFxcdHN0cnVjdCB3bWlfdGx2ICp0bHY7XFxuIFxcdHZvaWQgKnB0cjtcXG4gXFx0aW50IGksIHJldCwgbGVuO1xcbi1cXHR1MzIgKnRtcF9wdHIsIGV4dHJhaWVfbGVuX3dpdGhfcGFkID0gMDtcXG4rXFx0X19sZTMyICp0bXBfcHRyO1xcbitcXHR1MzIgZXh0cmFpZV9sZW5fd2l0aF9wYWQgPSAwO1xcbiBcXHRzdHJ1Y3QgYXRoMTJrX3dtaV9oaW50X3Nob3J0X3NzaWRfYXJnICpzX3NzaWQgPSBOVUxMO1xcbiBcXHRzdHJ1Y3QgYXRoMTJrX3dtaV9oaW50X2Jzc2lkX2FyZyAqaGludF9ic3NpZCA9IE5VTEw7XFxuIFxcbkBAIC0yNjU2LDkgKzI2NTcsMTAgQEAgaW50IGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZChzdHJ1Y3QgYXRoMTJrICphcixcXG4gXFx0dGx2ID0gcHRyO1xcbiBcXHR0bHYtXFx1MDAzZWhlYWRlciA9IGF0aDEya193bWlfdGx2X2hkcihXTUlfVEFHX0FSUkFZX1VJTlQzMiwgbGVuKTtcXG4gXFx0cHRyICs9IFRMVl9IRFJfU0laRTtcXG4tXFx0dG1wX3B0ciA9ICh1MzIgKilwdHI7XFxuK1xcdHRtcF9wdHIgPSAoX19sZTMyICopcHRyO1xcbiBcXG4tXFx0bWVtY3B5KHRtcF9wdHIsIGFyZy1cXHUwMDNlY2hhbl9saXN0LCBhcmctXFx1MDAzZW51bV9jaGFuICogNCk7XFxuK1xcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhcmctXFx1MDAzZW51bV9jaGFuOyBpKyspXFxuK1xcdFxcdHRtcF9wdHJbaV0gPSBjcHVfdG9fbGUzMihhcmctXFx1MDAzZWNoYW5fbGlzdFtpXSk7XFxuIFxcbiBcXHRwdHIgKz0gbGVuO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTA6MTAuODMzMDU3ODcxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTk0OTQ2ODYwNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlIGFuZCBmaXJtd2FyZSB0byBpbml0aWFsaXplLiBXaXRob3V0IGhhcmR3YXJlIGVtdWxhdGlvbiwgdGhlIGRyaXZlciBjYW5ub3QgY29tcGxldGUgaXRzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIChlLmcuLCBRTUkgZmlybXdhcmUgcmVhZGluZXNzKSwgbWVhbmluZyBpdCB3aWxsIG5vdCByZWdpc3RlciB3aXRoIG1hYzgwMjExLiBBcyBhIHJlc3VsdCwgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWRgIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBmMGVlMzIzZjc2MjIyNGM3NzhmMDNkOTg2YTg4OGY3YjE2MjQ4MjcwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdW4gMjkgMDg6NTA6MDggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuaW5kZXggNjVhMDVhOTUyMGZmY2IuLjllMWQzYzY2Mjg1MjVhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuQEAgLTI1NzEsNyArMjU3MSw4IEBAIGludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsXG4gXHRzdHJ1Y3Qgd21pX3RsdiAqdGx2O1xuIFx0dm9pZCAqcHRyO1xuIFx0aW50IGksIHJldCwgbGVuO1xuLVx0dTMyICp0bXBfcHRyLCBleHRyYWllX2xlbl93aXRoX3BhZCA9IDA7XG4rXHRfX2xlMzIgKnRtcF9wdHI7XG4rXHR1MzIgZXh0cmFpZV9sZW5fd2l0aF9wYWQgPSAwO1xuIFx0c3RydWN0IGF0aDEya193bWlfaGludF9zaG9ydF9zc2lkX2FyZyAqc19zc2lkID0gTlVMTDtcbiBcdHN0cnVjdCBhdGgxMmtfd21pX2hpbnRfYnNzaWRfYXJnICpoaW50X2Jzc2lkID0gTlVMTDtcbiBcbkBAIC0yNjU2LDkgKzI2NTcsMTAgQEAgaW50IGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZChzdHJ1Y3QgYXRoMTJrICphcixcbiBcdHRsdiA9IHB0cjtcbiBcdHRsdi1cdTAwM2VoZWFkZXIgPSBhdGgxMmtfd21pX3Rsdl9oZHIoV01JX1RBR19BUlJBWV9VSU5UMzIsIGxlbik7XG4gXHRwdHIgKz0gVExWX0hEUl9TSVpFO1xuLVx0dG1wX3B0ciA9ICh1MzIgKilwdHI7XG4rXHR0bXBfcHRyID0gKF9fbGUzMiAqKXB0cjtcbiBcbi1cdG1lbWNweSh0bXBfcHRyLCBhcmctXHUwMDNlY2hhbl9saXN0LCBhcmctXHUwMDNlbnVtX2NoYW4gKiA0KTtcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFyZy1cdTAwM2VudW1fY2hhbjsgaSsrKVxuK1x0XHR0bXBfcHRyW2ldID0gY3B1X3RvX2xlMzIoYXJnLVx1MDAzZWNoYW5fbGlzdFtpXSk7XG4gXG4gXHRwdHIgKz0gbGVuO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTA6MTAuODMzMDYxMDIxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODA0MDYwNTkwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipFbmRpYW5uZXNzIEZpeCBBbmFseXNpcyBmb3IgYXRoMTJrIERyaXZlcioqXG5cbk9rYXksIHNvIHRoZXJlJ3MgYSBwYXRjaCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY2AgdGhhdCB0d2Vha3MgYGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZGAuICBJdCdzIGEgc3RyYWlnaHRmb3J3YXJkIGVuZGlhbm5lc3MgZml4OiBjaGFuZ2luZyBgdTMyICp0bXBfcHRyYCB0byBgX19sZTMyICp0bXBfcHRyYCBhbmQgcmVwbGFjaW5nIGEgYG1lbWNweWAgd2l0aCBhIGxvb3AgdGhhdCBjYWxscyBgY3B1X3RvX2xlMzJgLiAgQ2xlYW4gYW5kIHNpbXBsZS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiQ2FuIHdlIGV2ZW4gKnNlZSogdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50P1wiLiBUaGlzIGlzIGEgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMuXG5cbk5vdywgaGFyZHdhcmUtc3BlY2lmaWMgd2lyZWxlc3MgZHJpdmVycyBsaWtlIGF0aDEyayBhcmUgdHlwaWNhbGx5IGEgcGFpbiBpbiB0aGUgbmVjayB0byBleGVyY2lzZSB3aXRob3V0IGFjdHVhbCBoYXJkd2FyZS4gIFlvdSdkIG5lZWQgc29tZXRoaW5nIGxpa2UgbWFjODAyMTFfaHdzaW0sIGJ1dCBhdGgxMmsgaXMgYSAqc3BlY2lmaWMqIGRyaXZlciwgbm90IGEgZ2VuZXJhbCBoYXJkd2FyZSBzaW11bGF0aW9uLiBJIGRvbid0IHJlbWVtYmVyIFFFTVUgZW11bGF0aW5nIGF0aDEyayBkaXJlY3RseS4gIFNvIHRoZSBtaWxsaW9uLWRvbGxhciBxdWVzdGlvbiBpczogY2FuIHdlIHRyaWdnZXIgYGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZGAgd2l0aG91dCBwaHlzaWNhbCBoYXJkd2FyZT9cblxuTGV0J3MgZG8gYSBxdWljayBpbnZlc3RpZ2F0aW9uLiBJIHNob3VsZCBjaGVjayBpZiBhdGgxMmsgY2FuIHByb2JlIGF0IGFsbCB3aXRob3V0IGhhcmR3YXJlLiAgSXMgaXQgYSBQQ0kgb3IgQUhCIGRldmljZT8gQWhhLCBpdCBzdXBwb3J0cyBib3RoLiBXaXRob3V0IGhhcmR3YXJlLCB0aGUgZHJpdmVyIGxpa2VseSB3b24ndCBldmVuIGxvYWQsIG1lYW5pbmcgYGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZGAgd2lsbCBzdGF5IHVudG91Y2hlZC5cblxuSG9sZCBvbiBhIHNlY29uZCwgdGhvdWdoLiBTeXprYWxsZXIgY2FuIGRvIHdvbmRlcnMsIHJpZ2h0PyAgSXQgbWlnaHQgdXNlIGB2aGNpYCBvciBgbWFjODAyMTFfaHdzaW1gLCBhbmQgZm9yIFBDSSBkZXZpY2VzLCBpZiBmdXp6aW5nIGlzIGVuYWJsZWQsIGl0IGNhbiB1c2UgUENJIGZ1enppbmcsIGJ1dCBldmVuIHRoZW4sIGl0J3MgdXN1YWxseSByZWFsbHkgdHJpY2t5IHRvIGdldCBkZWVwIGludG8gdGhlIFdNSSAoV2lyZWxlc3MgTWVzc2FnZSBJbnRlcmZhY2UpIHdoaWNoIGludm9sdmVzIHRhbGtpbmcgdG8gdGhlIGZpcm13YXJlLiBMZXQgbWUgY2hlY2sgaWYgYXRoMTJrIGhhcyBhbnkgc3BlY2lmaWMgZnV6emluZyBob29rcyBvciBpZiBpdCdzIGp1c3QgeW91ciBzdGFuZGFyZCBkcml2ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMzQsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MjUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MDoxOC44NzM2NzA5NDNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI1NzA0Nzk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTUzMTk9c3RhdGljIGludCBhdGgxMmtfc3RhcnRfc2NhbihzdHJ1Y3QgYXRoMTJrICphcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtNTMyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjUzMjY6XFx0cmV0ID0gYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kKGFyLCBhcmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtNTMyNy1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYz0yNDkwPXN0YXRpYyB2b2lkIGF0aDEya193bWlfY29weV9zY2FuX2V2ZW50X2NudHJsX2ZsYWdzKHN0cnVjdCB3bWlfc3RhcnRfc2Nhbl9jbWQgKmNtZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMtMjU2Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jOjI1NjM6aW50IGF0aDEya193bWlfc2VuZF9zY2FuX3N0YXJ0X2NtZChzdHJ1Y3QgYXRoMTJrICphcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jLTI1NjQtXFx0XFx0XFx0XFx0ICAgc3RydWN0IGF0aDEya193bWlfc2Nhbl9yZXFfYXJnICphcmcpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oPTY0MTI9dm9pZCBhdGgxMmtfd21pX3N0YXJ0X3NjYW5faW5pdChzdHJ1Y3QgYXRoMTJrICphcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oLTY0MTMtXFx0XFx0XFx0XFx0c3RydWN0IGF0aDEya193bWlfc2Nhbl9yZXFfYXJnICphcmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmg6NjQxNDppbnQgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kKHN0cnVjdCBhdGgxMmsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmgtNjQxNS1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA4OjUwOjE4Ljk5OTM4ODM0MVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkxMjk4NTMwMTg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYXRoMTJrIERyaXZlciBDb250ZXh0KipcblxuT2theSwgc28gdGhlIGBhdGgxMmtfc3RhcnRfc2NhbmAgZnVuY3Rpb24gaXMgdGhlIGVudHJ5IHBvaW50LCBjYWxsZWQgdGhyb3VnaCB0aGUgbWFjODAyMTEgb3BlcmF0aW9ucywgd2hpY2ggaXMgZ29vZCBjb250ZXh0LiBCdXQgZ2V0dGluZyB0aGVyZSBpbXBsaWVzIHRoZSBhdGgxMmsgZHJpdmVyIGlzIHByb3Blcmx5IGluaXRpYWxpemVkLCBhbmQgdGhhdCdzIHRoZSBydWIuIFRoaXMgZHJpdmVyIGlzIGluaGVyZW50bHkgdGllZCB0byBzcGVjaWZpYyBoYXJkd2FyZTogUENJZSBvciBBSEIsIGFuZCByZXF1aXJlcyB0aGUgY29ycmVzcG9uZGluZyBmaXJtd2FyZSB0byBldmVuIGdldCBvZmYgdGhlIGdyb3VuZC4gSW4gYSB2aXJ0dWFsIGVudmlyb25tZW50IGxpa2UgR0NFIG9yIFFFTVUsIHdpdGhvdXQgc29tZSBzZXJpb3VzbHkgc29waGlzdGljYXRlZCBoYXJkd2FyZSBlbXVsYXRpb24sIHRoZSBjaGFuY2Ugb2YgdGhpcyBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBzdWNjZWVkaW5nIGlzIGluY3JlZGlibHkgc2xpbS5cblxuSG1tLCBJIHJlbWVtYmVyIHN5emthbGxlciBkb2VzIGRhYmJsZSBpbiBQQ0kgZnV6emluZy4gQnV0LCBldmVuIHdpdGggdGhhdCwgaXQgcmFyZWx5IGdldHMgcGFzdCB0aGUgaW5pdGlhbCBmaXJtd2FyZSBsb2FkIGFuZCB0aG9zZSBpbmNyZWRpYmx5IGNvbXBsZXggaGFuZHNoYWtlcyB0aGF0IGRyaXZlcnMgbGlrZSBhdGgxMmsgZGVwZW5kIG9uLiBJdOKAmXMgdXN1YWxseSB0b28gbXVjaCBmb3IgaXQgdG8gaGFuZGxlLiBUaGF04oCZcyBwcm9iYWJseSB3aGVyZSB0aGluZ3MgYXJlIGdvaW5nIHNpZGV3YXlzLlxuXG5BbHJpZ2h0LCBhIG1vcmUgcHJvbWlzaW5nIGF2ZW51ZTogaXMgdGhlcmUgYSBtb2NrIG9yIHRlc3RpbmcgZnJhbWV3b3JrIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgYXRoMTJrPyBUaGF0IHdvdWxkIGJlIHRoZSBiZXN0IGNhc2Ugc2NlbmFyaW8gYXQgdGhpcyBzdGFnZS4gSXQgbWlnaHQgYmUgcG9zc2libGUgdG8gaW5qZWN0IHNvbWUgc2lnbmFscyBmb3IgdGVzdGluZyB0aGF0IGFyZSBub3QgcmVsaWFudCBvbiB0aGUgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gcGF0aC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU2MSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MTo1MC4yOTc5MjI3NTdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ4ODkzODI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19BVEgxMktcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfQVRIMTJLKSArPSBhdGgxMmsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMy1hdGgxMmsteSArPSBjb3JlLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0yNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjI1OmF0aDEyay0kKENPTkZJR19BVEgxMktfQUhCKSArPSBhaGIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfQVRIMTJLKSArPSB3aWZpNy9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6Mjk6YXRoMTJrLSQoQ09ORklHX0FUSDEyS19ERUJVR0ZTKSArPSBkZWJ1Z2ZzLm8gZGVidWdmc19odHRfc3RhdHMubyBkZWJ1Z2ZzX3N0YS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0zMC1hdGgxMmstJChDT05GSUdfQUNQSSkgKz0gYWNwaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozMTphdGgxMmstJChDT05GSUdfQVRIMTJLX1RSQUNJTkcpICs9IHRyYWNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTMyLWF0aDEyay0kKENPTkZJR19QTSkgKz0gd293Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjMzOmF0aDEyay0kKENPTkZJR19BVEgxMktfQ09SRURVTVApICs9IGNvcmVkdW1wLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTM0LWF0aDEyay0kKENPTkZJR19OTDgwMjExX1RFU1RNT0RFKSArPSB0ZXN0bW9kZS5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuaD02MTQ9c3RydWN0IGF0aDEyayB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuaC03MzEtXFx0dTMyIGNhY2hlZF9wcGR1X2lkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oOjczMjojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmgtNzMzLVxcdHN0cnVjdCBhdGgxMmtfZGVidWcgZGVidWc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuaD05Mzc9c3RydWN0IGF0aDEya19iYXNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oLTEwMzUtXFx0ZW51bSBhdGgxMmtfZGZzX3JlZ2lvbiBkZnNfcmVnaW9uO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oOjEwMzY6I2lmZGVmIENPTkZJR19BVEgxMktfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5oLTEwMzctXFx0c3RydWN0IGRlbnRyeSAqZGVidWdmc19zb2M7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmVkdW1wLmg9Mzc9c3RydWN0IGF0aDEya19kdW1wX2ZpbGVfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmVkdW1wLmgtNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlZHVtcC5oOjYwOiNpZmRlZiBDT05GSUdfQVRIMTJLX0NPUkVEVU1QXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlZHVtcC5oLTYxLWVudW0gYXRoMTJrX2Z3X2NyYXNoX2R1bXBfdHlwZSBhdGgxMmtfY29yZWR1bXBfZ2V0X2R1bXBfdHlwZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5jPTU1PUVYUE9SVF9TWU1CT0woX19hdGgxMmtfd2Fybik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5jLTU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuYzo1NzojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuYy01OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuYz0xMDg9RVhQT1JUX1NZTUJPTChhdGgxMmtfZGJnX2R1bXApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuYy0xMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5jOjExMDojZW5kaWYgLyogQ09ORklHX0FUSDEyS19ERUJVRyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oPTQxPWV4dGVybiBib29sIGF0aDEya19mdG1fbW9kZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmgtNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oOjQzOiNpZmRlZiBDT05GSUdfQVRIMTJLX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oLTQ0LV9fcHJpbnRmKDMsIDQpIHZvaWQgX19hdGgxMmtfZGJnKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmg9NDc9dm9pZCBhdGgxMmtfZGJnX2R1bXAoc3RydWN0IGF0aDEya19iYXNlICphYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuaC01MC1cXHRcXHQgICAgIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oOjUxOiNlbHNlIC8qIENPTkZJR19BVEgxMktfREVCVUcgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnLmgtNTItc3RhdGljIGlubGluZSB2b2lkIF9fYXRoMTJrX2RiZyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oPTU4PXN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMmtfZGJnX2R1bXAoc3RydWN0IGF0aDEya19iYXNlICphYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWcuaC02My19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oOjY0OiNlbmRpZiAvKiBDT05GSUdfQVRIMTJLX0RFQlVHICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Zy5oLTY1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmgtOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnMuaDoxMDojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmgtMTEtdm9pZCBhdGgxMmtfZGVidWdmc19zb2NfY3JlYXRlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmg9MTQyPXN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMmtfZGVidWdmc19wZGV2X2NyZWF0ZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzLmgtMTQ0LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnMuaDoxNDU6I2VuZGlmIC8qIENPTkZJR19BVEgxMktfREVCVUdGUyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmcy5oLTE0Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19odHRfc3RhdHMuaD0yNj12b2lkIGF0aDEya19kZWJ1Z2ZzX2h0dF9zdGF0c19yZWdpc3RlcihzdHJ1Y3QgYXRoMTJrICphcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19odHRfc3RhdHMuaDoyODojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oLTI5LXZvaWQgYXRoMTJrX2RlYnVnZnNfaHR0X2V4dF9zdGF0c19oYW5kbGVyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oLTMwLVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX2h0dF9zdGF0cy5oOjMxOiNlbHNlIC8qIENPTkZJR19BVEgxMktfREVCVUdGUyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19odHRfc3RhdHMuaC0zMi1zdGF0aWMgaW5saW5lIHZvaWQgYXRoMTJrX2RlYnVnZnNfaHR0X2V4dF9zdGF0c19oYW5kbGVyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnNfc3RhLmgtMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX3N0YS5oOjE1OiNpZmRlZiBDT05GSUdfQVRIMTJLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2RlYnVnZnNfc3RhLmgtMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX3N0YS5oPTE3PXZvaWQgYXRoMTJrX2RlYnVnZnNfbGlua19zdGFfb3BfYWRkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX3N0YS5oLTIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvZGVidWdmc19zdGEuaDoyMjojZW5kaWYgLyogQ09ORklHX0FUSDEyS19ERUJVR0ZTICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9kZWJ1Z2ZzX3N0YS5oLTIzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYz0xMTk4PXZvaWQgYXRoMTJrX3BjaV93cml0ZTMyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTI0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjEyNDQ6I2lmZGVmIENPTkZJR19BVEgxMktfQ09SRURVTVBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTEyNDUtc3RhdGljIGludCBhdGgxMmtfcGNpX2NvcmVkdW1wX2NhbGN1bGF0ZV9zaXplKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiAqZHVtcF9zZWdfc3opXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jPTE0Nzk9c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMmtfaGlmX29wcyBhdGgxMmtfcGNpX2hpZl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE0OTYtXFx0LnBhbmljX2hhbmRsZXIgPSBhdGgxMmtfcGNpX3BhbmljX2hhbmRsZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxNDk3OiNpZmRlZiBDT05GSUdfQVRIMTJLX0NPUkVEVU1QXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNDk4LVxcdC5jb3JlZHVtcF9kb3dubG9hZCA9IGF0aDEya19wY2lfY29yZWR1bXBfZG93bmxvYWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmgtMTQtLyogY3JlYXRlIGVtcHR5IGZ1bmN0aW9ucyB3aGVuIHRyYWNpbmcgaXMgZGlzYWJsZWQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmg6MTU6I2lmICFkZWZpbmVkKENPTkZJR19BVEgxMktfVFJBQ0lORylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmgtMTYtI3VuZGVmIFRSQUNFX0VWRU5UXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3RyYWNlLmg9MTg9c3RhdGljIGlubGluZSB2b2lkIHRyYWNlXyAjIyBuYW1lKHByb3RvKSB7fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdHJhY2UuaDoxOTojZW5kaWYgLyogIUNPTkZJR19BVEgxMktfVFJBQ0lORyB8fCBfX0NIRUNLRVJfXyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdHJhY2UuaC0yMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX0FUSDEySykgKz0gYXRoMTJrX3dpZmk3Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L01ha2VmaWxlLTMtYXRoMTJrX3dpZmk3LXkgKz0gY29yZS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvTWFrZWZpbGUtMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9NYWtlZmlsZToyMDphdGgxMmtfd2lmaTctJChDT05GSUdfQVRIMTJLX0FIQikgKz0gYWhiLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvYWhiLmgtOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2FoYi5oOjk6I2lmZGVmIENPTkZJR19BVEgxMktfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9haGIuaC0xMC1pbnQgYXRoMTJrX3dpZmk3X2FoYl9pbml0KHZvaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jPTEwNTc9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGF0aDEya19vcHNfd2lmaTcgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTEwNC0jZW5kaWZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM6MTEwNTojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTExMDYtXFx0LnZpZl9hZGRfZGVidWdmcyAgICAgICAgICAgICAgICA9IGF0aDEya19kZWJ1Z2ZzX29wX3ZpZl9hZGQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTEwOC1cXHRDRkc4MDIxMV9URVNUTU9ERV9DTUQoYXRoMTJrX3RtX2NtZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM6MTEwOTojaWZkZWYgQ09ORklHX0FUSDEyS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTExMTAtXFx0Lmxpbmtfc3RhX2FkZF9kZWJ1Z2ZzICAgICAgICAgICA9IGF0aDEya19kZWJ1Z2ZzX2xpbmtfc3RhX29wX2FkZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmM9OTE5Mz1zdGF0aWMgdm9pZCBhdGgxMmtfd21pX2V2ZW50X3RlYXJkb3duX2NvbXBsZXRlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jLTkyMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYzo5MjE3OiNpZmRlZiBDT05GSUdfQVRIMTJLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jLTkyMTgtc3RhdGljIGludCBhdGgxMmtfd21pX3RwY19zdGF0c19jb3B5X2J1ZmZlcihzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MTo1MC40NDY4NDMwNzNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MjU1NDMxMTY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIGF0aDEyayBEcml2ZXIgd2l0aCBTeXprYWxsZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgYXRoMTJrYCBoZXJlLiBJIHNlZSBgQ09ORklHX0FUSDEyS2AgYW5kIGBDT05GSUdfQVRIMTJLX0FIQmAgYXJlIGRlZmluZWQuIE5vdywgSSByZWNhbGwgdGhhdCBzeXprYWxsZXIgaGFzIGBtYWM4MDIxMV9od3NpbWAsIHdoaWNoIGlzIGdyZWF0IGZvciBzaW11bGF0aW5nIGhhcmR3YXJlLiBCdXQgYGF0aDEya2AgaXMgYSAqcmVhbCogaGFyZHdhcmUgZHJpdmVyLCBzbyBjYW4gc3l6a2FsbGVyIGV2ZW4gZnV6eiBpdCBkaXJlY3RseT9cblxuSSBrbm93IHN5emthbGxlciBoYXMgYSBgd2lmaWAgZnV6emluZyBzdWJzeXN0ZW0sIGFuZCBpdCBkZWZpbml0ZWx5IHVzZXMgYG1hYzgwMjExX2h3c2ltYCB0byBpbmplY3QgcGFja2V0cy4gQnV0LCBJIGRvbid0IHRoaW5rIGl0J3MgZGlyZWN0bHkgdXNpbmcgYGF0aDEya2AsIHJpZ2h0PyBXYWl0IGEgc2Vjb25kLCB3YXNuJ3QgdGhlcmUgUENJIGZ1enppbmcgYXMgd2VsbD8gWWVzLCBzeXprYWxsZXIgKmNhbiogZW11bGF0ZSBQQ0kgZGV2aWNlcy4gVGhhdCdzIGEgcG9zc2liaWxpdHkuXG5cbkJ1dCBoZXJlJ3MgdGhlIGtpY2tlcjogYGF0aDEya2AgbmVlZHMgZmlybXdhcmUgdG8gYmUgbG9hZGVkIOKAkyB0aGluZ3MgbGlrZSBgYXRoMTJrX2NvcmVfZmV0Y2hfYmRmYCBhcmUgaW52b2x2ZWQuIElmIHRoYXQgZmlybXdhcmUgaXNuJ3QgcHJlc2VudCwgb3IgaWYgdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIGZhaWxzLCB0aGUgZHJpdmVyIHdvbid0IHJlZ2lzdGVyIHdpdGggbWFjODAyMTEsIGFuZCBjcnVjaWFsbHksIHNvbWV0aGluZyBsaWtlIGBhdGgxMmtfc3RhcnRfc2NhbmAgd2lsbCBuZXZlciBnZXQgY2FsbGVkLiBUaGF0J3MgYSBodWdlIGJsb2NrZXIuXG5cblNvLCB0aGUgcXVlc3Rpb24gaXMsIGlzIHRoZXJlIGFueSBraW5kIG9mIHRlc3Rtb2RlIG9yIG1vY2sgc2V0dXAgZm9yIGBhdGgxMmtgPyBMZXQgbWUgc2Vl4oCmIEFoLCBgQ09ORklHX05MODAyMTFfVEVTVE1PREVgIGlzIHVzZWQgZm9yIGB0ZXN0bW9kZS5jYC4gTm93LCBsZXQncyB0YWtlIGEgbG9vayBhdCB0aGF04oCmXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc1MzEsIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTE6NTYuNzAyMjc3ODI4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0Mjg4MTA1NywiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTE6NTcuMDQ1MTcwMjY0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQ2NjY2NzIzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFdpcmVsZXNzIFNjYW4gSW5pdGlhdGlvbiBGbG93KipcblxuT2theSwgbGV0J3MgdHJhY2UgdGhpcy4gTXkgcHJpbWFyeSBjb25jZXJuIGlzIGNvbmZpcm1pbmcgdGhlIGFjY2Vzc2liaWxpdHkgb2YgYGF0aDEya19zdGFydF9zY2FuYC4gSXQncyB0aGUgZGVzaWduYXRlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYHN0YXJ0X3NjYW5gIG9yIGBzY2FuYCBvcGVyYXRpb24gZGVmaW5lZCB3aXRoaW4gYGllZWU4MDIxMV9vcHNgLCB3aGljaCwgaWYgSSByZWNhbGwgY29ycmVjdGx5LCBpcyB0aGUgc3RhbmRhcmQgc3RydWN0dXJlIGZvciB3aXJlbGVzcyBkcml2ZXIgb3BlcmF0aW9ucy4gXG5cbkkgc2VlIGBhdGgxMmtfb3BzX3dpZmk3YCBoYXMgYC5zdGFydF9zY2FuID0gYXRoMTJrX3N0YXJ0X3NjYW5gLiBUaGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCwgYnV0IEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGRyaXZlcidzIHByb3Blcmx5IHNldCB1cC4gVGhlIG5leHQgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGhvdyB0aGVzZSBvcGVyYXRpb25zIGdldCByZWdpc3RlcmVkLCBhbmQgdGhhdCB0eXBpY2FsbHkgbWVhbnMgYSBzdWNjZXNzZnVsIGRyaXZlciBwcm9iZS4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZSBwcm9iZSByb3V0aW5lLCBsaWtlbHkgc29tZXRoaW5nIGxpa2UgYGF0aDEya19jb3JlX3Byb2JlYCDigJMgb3IgYSBzaW1pbGFybHkgbmFtZWQgZnVuY3Rpb24gZm9yIHRoaXMgc3BlY2lmaWMgYXJjaGl0ZWN0dXJlLCBhdCBsZWFzdCDigJMgaXMgY2FsbGVkIHN1Y2Nlc3NmdWxseSBhbmQsIG1vcmUgaW1wb3J0YW50bHksIHRoYXQgaXQgY2FsbHMgYGllZWU4MDIxMV9od19zZXR1cGAgb3IgYHdpcGh5X3JlZ2lzdGVyYC4gVGhhdCdzIHdoZXJlIHRoZSBtYWdpYyBvZiBsaW5raW5nIHRoZSBkcml2ZXIgdG8gdGhlIHdpcmVsZXNzIHN0YWNrIGhhcHBlbnMsIGlzbid0IGl0PyBJIG5lZWQgdG8gZm9jdXMgdGhlcmUgbmV4dCB0byBnZXQgdGhlIGNvbXBsZXRlIHBpY3R1cmUgb2YgaG93IHRoZSBzY2FuIGlzIGluaXRpYXRlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODIwOCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MjowMS41MTE4NDE3NTJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjkxMTU0OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid2lwaHlfcmVnaXN0ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA4OjUyOjAxLjYyODc2Mzc0MVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTU0OTYzNzIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqUG90ZW50aWFsIENsdWUgRGV0ZWN0ZWQ6IGBhdGgxMmtfbWFjX3JlZ2lzdGVyYCoqXG5cbkhvbGQgb24gYSBzZWNvbmQuLi4ganVzdCBzYXcgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgdmVyeSBpbXBvcnRhbnQuIFRoYXQgXCJ3YWl0XCIgcmVhY3Rpb24gbGlrZWx5IGluZGljYXRlcyBJJ20gcmUtZXZhbHVhdGluZyBzb21ldGhpbmcuIFRoZSBtZW50aW9uIG9mIGBhdGgxMmtfbWFjX3JlZ2lzdGVyYC4uLiB0aGF0J3MgZ290IG15IGF0dGVudGlvbi4gVGhhdCBmdW5jdGlvbiBuYW1lIGl0c2VsZiBpcyBhIHByZXR0eSBzaWduaWZpY2FudCBzaWduYWwuIEl0IGltbWVkaWF0ZWx5IHN1Z2dlc3RzIHdlJ3JlIGRlYWxpbmcgd2l0aCB0aGUgQXRoZXJvcyA4MDIuMTFheCBNQUMgbGF5ZXIsIHNwZWNpZmljYWxseSB0aGUgYXRoMTJrIGRyaXZlci4gSWYgdGhlIGNvZGUgZmxvdyBhY3R1YWxseSB1dGlsaXplcyB0aGlzIGZ1bmN0aW9uLCB0aGVuIHRoZSBwcm9ibGVtIGxpZXMgd2l0aGluIHRoaXMgY29tcG9uZW50LiBJdCBhbHNvIGluZGljYXRlcyB0aGlzIGNvZGUgb3BlcmF0ZXMgYXQgdGhhdCBsb3ctbGV2ZWwgd2l0aGluIHRoZSBoYXJkd2FyZSBhbmQgdGhlIGRyaXZlci4gTXkgdGhvdWdodCBpcyB0aGF0IGl0IGNvdWxkIGVpdGhlciBiZSBhIGdvb2QgdGhpbmcgb3IgYSBiYWQgdGhpbmcsIGRlcGVuZGluZyBvbiBjb250ZXh0LiBJIG5lZWQgdG8gdHJhY2sgd2hlcmUgdGhhdCBmdW5jdGlvbiBpcyBhY3R1YWxseSAqY2FsbGVkKiBhbmQgd2hhdCdzIGJlaW5nIHBhc3NlZCB0byBpdC4gSXMgaXQgYmVpbmcgY2FsbGVkIGF0IHRoZSBhcHByb3ByaWF0ZSB0aW1lPyBBcmUgdGhlIHJlZ2lzdGVyIHZhbHVlcyBiZWluZyBpbml0aWFsaXplZCBjb3JyZWN0bHk/IElzIHRoZSByZWdpc3RlciBzdHJ1Y3R1cmUgaXRzZWxmIHByb3Blcmx5IGRlZmluZWQgYW5kIGFjY2Vzc2VkPyBOZWVkIHRvIGRpZyBpbnRvIHRoYXQgZnVuY3Rpb24ncyBpbXBsZW1lbnRhdGlvbiBhbmQgaG93IGl0J3MgaW50ZWdyYXRlZCB3aXRoIHRoZSByZXN0IG9mIHRoZSBhdGgxMmsgZHJpdmVyLiBUaGlzIGNvdWxkIGJlIGEgY3JpdGljYWwgcGllY2Ugb2YgdGhlIHB1enpsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6ODY0MywiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA4OjUyOjA3LjE4MzczMTM3NFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU3ODc4NTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEya19tYWNfcmVnaXN0ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmM9MTEzMj1zdGF0aWMgaW50IGF0aDEya19jb3JlX2h3X2dyb3VwX3N0YXJ0KHN0cnVjdCBhdGgxMmtfaHdfZ3JvdXAgKmFnKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTE1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxMTU2OlxcdHJldCA9IGF0aDEya19tYWNfcmVnaXN0ZXIoYWcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jLTExNTctXFx0aWYgKFdBUk5fT04ocmV0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM9MTQ5NjI9dm9pZCBhdGgxMmtfbWFjX21sb190ZWFyZG93bihzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQ5ODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzoxNDk4NDppbnQgYXRoMTJrX21hY19yZWdpc3RlcihzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0OTg1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmg9MTU0PXZvaWQgYXRoMTJrX21hY191bnJlZ2lzdGVyKHN0cnVjdCBhdGgxMmtfaHdfZ3JvdXAgKmFnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oOjE1NTppbnQgYXRoMTJrX21hY19yZWdpc3RlcihzdHJ1Y3QgYXRoMTJrX2h3X2dyb3VwICphZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuaC0xNTYtaW50IGF0aDEya19tYWNfYWxsb2NhdGUoc3RydWN0IGF0aDEya19od19ncm91cCAqYWcpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MjowNy40NDE2MjI0MDlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjQyNTMxMjIwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBwcm92aWRlZCBzbmlwcGV0LCBhcyBpZiBpdCB3ZXJlIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byB0aGUgRHJpdmVyIENvZGUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBhdGgxMmtfY29yZV9od19ncm91cF9zdGFydGAgZnVuY3Rpb24gY2FsbC4gVGhlIGludGVyZXN0aW5nIHRoaW5nIGhlcmUgaXMgdGhhdCB3aXRoaW4gdGhpcyBmdW5jdGlvbiBjYWxsLCBgYXRoMTJrX21hY19yZWdpc3RlcmAgaXMgY2FsbGVkLiBUaGF0IG1ha2VzIG1lIHRoaW5rIGFib3V0IHRoZSByZWdpc3RlciBvcGVyYXRpb25zLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXM6IHdobyBpcyBjYWxsaW5nIGBhdGgxMmtfY29yZV9od19ncm91cF9zdGFydGAgaW4gdGhlIGZpcnN0IHBsYWNlPyBJIG5lZWQgdG8gdHJhY2UgYmFjayBmcm9tIHRoaXMgcG9pbnQuIElzIHRoaXMgYSB0b3AtbGV2ZWwgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gb3IgaXMgaXQgaW52b2tlZCBhcyBwYXJ0IG9mIHNvbWUgb3RoZXIgcHJvY2Vzcz8gSSBuZWVkIHRvIGZpbmQgdGhlIGNhbGwgZ3JhcGggdG8gZnVsbHkgZ3Jhc3AgdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIncyBleGVjdXRpb24gZmxvdy4gVW5kZXJzdGFuZGluZyB0aGUgY2FsbGVyIHdpbGwgZ2l2ZSBtZSBjcnVjaWFsIGNvbnRleHQgcmVnYXJkaW5nIHdoeSB0aGUgTUFDIHJlZ2lzdHJhdGlvbiBpcyBoYXBwZW5pbmcgYXQgdGhpcyBzdGFnZSBvZiB0aGUgaW5pdGlhbGl6YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk0MTMsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1MjoxMy44NjY5MzkzNTdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0OTgyOTE0NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhdGgxMmtfY29yZV9od19ncm91cF9zdGFydFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYz0xMTA2PXN0YXRpYyBpbnQgYXRoMTJrX2NvcmVfbWxvX3NldHVwKHN0cnVjdCBhdGgxMmtfaHdfZ3JvdXAgKmFnKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTEzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxMTMyOnN0YXRpYyBpbnQgYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnQoc3RydWN0IGF0aDEya19od19ncm91cCAqYWcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTEzMy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYz0xMjIyPXN0YXRpYyBpbmxpbmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxMjIzOmJvb2wgYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnRfcmVhZHkoc3RydWN0IGF0aDEya19od19ncm91cCAqYWcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTIyNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYz0xMzAzPWludCBhdGgxMmtfY29yZV9xbWlfZmlybXdhcmVfcmVhZHkoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvY29yZS5jLTEzMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmM6MTMzNzpcXHRpZiAoYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnRfcmVhZHkoYWcpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmM6MTMzODpcXHRcXHRyZXQgPSBhdGgxMmtfY29yZV9od19ncm91cF9zdGFydChhZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTMzOS1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYz0xNjI4PXN0YXRpYyB2b2lkIGF0aDEya19jb3JlX3Jlc3RhcnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTY1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2NvcmUuYzoxNjUyOlxcdFxcdGlmICghYXRoMTJrX2NvcmVfaHdfZ3JvdXBfc3RhcnRfcmVhZHkoYWcpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9jb3JlLmMtMTY1My1cXHRcXHRcXHRtdXRleF91bmxvY2soXFx1MDAyNmFnLVxcdTAwM2VtdXRleCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA4OjUyOjE0LjIxNjc3NzU1M1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTc0NzkxMTk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVucmVhY2hhYmxlIENvZGUgaW4gYSBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGF0aDEya19jb3JlX3FtaV9maXJtd2FyZV9yZWFkeWAgZnVuY3Rpb24sIGFuZCBpdCdzIHByZXR0eSBjbGVhciB3aGF0J3MgaGFwcGVuaW5nLiBUaGUgZHJpdmVyJ3Mgd2FpdGluZyBmb3IgdGhlIGZpcm13YXJlIHRvIGJlY29tZSByZWFkeSwgc2lnbmFsZWQgdGhyb3VnaCB0aGUgUU1JIGludGVyZmFjZS4gVGhpcyBpcyBob3cgdGhlIE1BQyBnZXRzIHJlZ2lzdGVyZWQuIE1ha2VzIHNlbnNlLiBCdXQgaGVyZSdzIHRoZSBwcm9ibGVtOiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCB3aGVyZSB0aGVyZSdzIG5vIHJlYWwgaGFyZHdhcmUgZW11bGF0aW9uLCB0aGUgZmlybXdhcmUgaXNuJ3QgZ29pbmcgdG8gbG9hZC4gUU1JIHdpbGwgcmVtYWluIHNpbGVudCwgbm8gXCJyZWFkeVwiIHNpZ25hbCwgYW5kIHRoZSBNQUMgd29uJ3QgYmUgcmVnaXN0ZXJlZC4gVGhhdCBtZWFucyBgYXRoMTJrX3N0YXJ0X3NjYW5gIGFuZCwgY29uc2VxdWVudGx5LCBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYCBhcmUgbmV2ZXIgcmVhY2hlZC4gSXQncyBhIGZ1bmRhbWVudGFsIGlzc3VlIHdpdGggdGhlIGVudmlyb25tZW50LlxuXG5Ob3csIEknbSB0cnlpbmcgdG8gdGhpbmsgb3V0c2lkZSB0aGUgYm94LiBDb3VsZCBzeXprYWxsZXIsIHdpdGggaXRzIFBDSSBmdXp6ZXIsIHBvc3NpYmx5IHRyaWNrIHRoZSBzeXN0ZW0gaW50byB0aGlua2luZyB0aGUgZmlybXdhcmUgaXMgcmVhZHk/IEl0IGNhbiBnZW5lcmF0ZSBhcmJpdHJhcnkgcmVzcG9uc2VzIHRvIE1NSU8gcmVhZHMsIHdoaWNoIGlzIGEgcG93ZXJmdWwgdG9vbC4gQnV0LCByZWFsaXN0aWNhbGx5LCBnZXR0aW5nIHRocm91Z2ggYSBjb21wbGV4IGZpcm13YXJlIGJvb3Qgc2VxdWVuY2UgdGhhdCBpbnZvbHZlcyBETUFpbmcgZmlybXdhcmUgZGF0YSwgd2FpdGluZyBmb3Igc3BlY2lmaWMgaW50ZXJydXB0cywgYW5kIHRoZW4gdGhlIHdob2xlIFFNSSBtZXNzYWdlIGV4Y2hhbmdlLCB3aXRoIHB1cmVseSByYW5kb20gZnV6emluZz8gSXQncyBwcmFjdGljYWxseSBpbXBvc3NpYmxlLiBUaGUgY29tcGxleGl0eSBpcyBqdXN0IHRvbyBoaWdoLiBTbywgaXQgc3RpbGwgZmVlbHMgdW5yZWFjaGFibGUuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJIHNob3VsZCBjaGVjayBvbmUgbW9yZSB0aGluZy4gSSdtIGdvaW5nIHRvIGRvdWJsZSBjaGVjayBhbmQgbWFrZSBzdXJlIHRoYXQgdGhlcmUncyBubyBvdGhlciBwYXRoIHRoYXQgY291bGQgY2FsbCBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYC4gSSBuZWVkIHRvIGJlIDEwMCUgc3VyZSB0aGlzIGlzbid0IHJlYWNoYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTAyODAsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTI6MjAuNzkxNTczMjE3WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDI3ODEyODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM9NTMxOT1zdGF0aWMgaW50IGF0aDEya19zdGFydF9zY2FuKHN0cnVjdCBhdGgxMmsgKmFyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy01MzI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6NTMyNjpcXHRyZXQgPSBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoYXIsIGFyZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy01MzI3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jPTI0OTA9c3RhdGljIHZvaWQgYXRoMTJrX3dtaV9jb3B5X3NjYW5fZXZlbnRfY250cmxfZmxhZ3Moc3RydWN0IHdtaV9zdGFydF9zY2FuX2NtZCAqY21kLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYy0yNTYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmM6MjU2MzppbnQgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kKHN0cnVjdCBhdGgxMmsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMtMjU2NC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmg9NjQxMj12b2lkIGF0aDEya193bWlfc3RhcnRfc2Nhbl9pbml0KHN0cnVjdCBhdGgxMmsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmgtNjQxMy1cXHRcXHRcXHRcXHRzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaDo2NDE0OmludCBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWQoc3RydWN0IGF0aDEyayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaC02NDE1LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBhdGgxMmtfd21pX3NjYW5fcmVxX2FyZyAqYXJnKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTI6MjAuOTM0MzYyNTIzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIyMjk1ODgwMTQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipBbmFseXppbmcgdGhlIFdpLUZpIDcgU2NhbiBJbml0aWF0aW9uKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGUgV2ktRmkgNyBkcml2ZXIgY29kZSwgYW5kIEkndmUgdHJhY2VkIHRoZSBzY2FuIGluaXRpYXRpb24gcHJvY2VzcyBiYWNrIHRvIGl0cyBjb3JlLiBNeSBpbW1lZGlhdGUgb2JzZXJ2YXRpb24gaXMgdGhhdCB0aGUgc2NhbiBpcyBzdHJpY3RseSB0cmlnZ2VyZWQgdGhyb3VnaCBgYXRoMTJrX3N0YXJ0X3NjYW5gLiBUaGF0J3Mgd2hlcmUgaXQgYWxsIGJlZ2lucy4gRGlnZ2luZyBkZWVwZXIsIGl0IGlzIGFwcGFyZW50IHRoaXMgZnVuY3Rpb24gaXNuJ3QgdXNlZCBldmVyeXdoZXJlLCBpbiBmYWN0LCBpdCBpcyBleGNsdXNpdmVseSBjYWxsZWQgd2l0aGluIHRoZSBgaWVlZTgwMjExX29wc2Agc3RydWN0dXJlLiBUaGlzIHN0cnVjdHVyZSBpcyB0aGUgZnVuZGFtZW50YWwgaW50ZXJmYWNlIGJldHdlZW4gdGhlIDgwMi4xMSBsYXllciAodGhlIGNvcmUgV2ktRmkgc3RhY2spIGFuZCB0aGUgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLiBUaGVyZWZvcmUgdGhlIHNjYW4gZnVuY3Rpb25hbGl0eSBpcyBzcGVjaWZpY2FsbHkgdGllZCB0byBXaS1GaSA3IHdpdGhpbiB0aGUgSUVFRSA4MDIuMTEgaW1wbGVtZW50YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNDQzLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDg6NTI6NDMuMjMwMjQ2NTM1WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjM3OTY1NjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTJrX3N0YXJ0X3NjYW5cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYz01MjcyPXN0YXRpYyB2b2lkIGF0aDEya19zY2FuX3ZkZXZfY2xlYW5fd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lwaHlfd29yayAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtNTMxOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjUzMTk6c3RhdGljIGludCBhdGgxMmtfc3RhcnRfc2NhbihzdHJ1Y3QgYXRoMTJrICphcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTUzMjAtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgYXRoMTJrX3dtaV9zY2FuX3JlcV9hcmcgKmFyZylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM9NTUxNz1zdGF0aWMgaW50IGF0aDEya19tYWNfaW5pdGlhdGVfaHdfc2NhbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtNTY1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjU2NTQ6XFx0cmV0ID0gYXRoMTJrX3N0YXJ0X3NjYW4oYXIsIGFyZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy01NjU1LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM9MTM2NDU9aW50IGF0aDEya19tYWNfb3BfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTEzNzU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6MTM3NjA6XFx0cmV0ID0gYXRoMTJrX3N0YXJ0X3NjYW4oYXIsIGFyZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xMzc2MS1cXHRpZiAocmV0KSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA4OjUyOjQzLjQ5NDA1MDI1OVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2ODMzNjUyNzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVucmVhY2hhYmxlIENvZGUgaW4gdGhlIGF0aDEyayBEcml2ZXIqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoaXMgZnVuY3Rpb24gY2FsbCwgdGhhdCdzIGJlaW5nIGNoZWNrZWQsIGNvbWVzIGZyb20gYGF0aDEya19tYWNfaW5pdGlhdGVfaHdfc2NhbmAgYW5kIGBhdGgxMmtfbWFjX29wX3JlbWFpbl9vbl9jaGFubmVsYC4gQm90aCBhcmUsIGFzIEkgcmVjYWxsLCBtYWM4MDIxMSBvcGVyYXRpb25zLCB3aGljaCBpcyBpbXBvcnRhbnQuIFRoZSBjcnVjaWFsIHBvaW50IGhlcmUgaXMgdGhhdCBtYWM4MDIxMSBvcGVyYXRpb25zLCBieSBkZXNpZ24sIGFyZSAqb25seSogcmVnaXN0ZXJlZCB3aGVuIHRoZSB3aXJlbGVzcyBkZXZpY2UgaXMgY29tcGxldGVseSBpbml0aWFsaXplZCBhbmQgdGhlIGZpcm13YXJlIGhhcyBsb2FkZWQgYW5kIGlzIHJlYWR5IHRvIGdvLiBJIGtub3cgdGhpcyBpbnRpbWF0ZWx5IGZyb20gbXkgd29yayB3aXRoIHRoZSBjb2RlYmFzZS5cblxuR2l2ZW4gdGhpcyBkZXBlbmRlbmN5IG9uIGZ1bGx5IGluaXRpYWxpemVkIGhhcmR3YXJlLCBhbmQgdGhlIGN1cnJlbnQgc3RhdGUgb2Ygb3VyIHRlc3RpbmcgZW52aXJvbm1lbnQsIHRoaXMgY29kZSBwYXRoIGlzIHNpbXBseSB1bnJlYWNoYWJsZS4gV2UncmUgZWl0aGVyIHJ1bm5pbmcgb24gcmVhbCBoYXJkd2FyZSAod2hpY2ggd2UncmUgbm90IGZvY3VzZWQgb24pLCBvciB3ZSdyZSB1c2luZyBhbiBlbXVsYXRvci4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGVyZSBpc24ndCBhIHN1ZmZpY2llbnRseSBjb21wbGV4IGVtdWxhdG9yIGF2YWlsYWJsZSBmb3IgYXRoMTJrIHdpdGhpbiBzeXprYWxsZXIvUUVNVSB0aGF0IGNvdWxkIHRyaWdnZXIgdGhpcyBiZWhhdmlvci5cblxuVGhlcmVmb3JlLCBhZnRlciBjYXJlZnVsIGNvbnNpZGVyYXRpb24gb2YgdGhlIGRlcGVuZGVuY2llcywgSSdtIGNvbmZpZGVudCB0aGF0IHRoZSBvcHRpbWFsIHJldHVybiB2YWx1ZSBmb3IgYFdvcnRoRnV6emluZ2AgaXMgYGZhbHNlYC4gSXQncyBhIHdhc3RlIG9mIHRpbWUgdG8gZXZlbiBhdHRlbXB0IHRvIGZ1enogdGhpcyBhcmVhOyBpdCdzIHNpbXBseSBuZXZlciBnb2luZyB0byBiZSBoaXQgaW4gb3VyIGN1cnJlbnQgc2V0dXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMTc2LCJPdXRwdXRUb2tlbnMiOjEyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwODo1Mjo1MC4zMjc3MDcxMThaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTI5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSBhbmQgZmlybXdhcmUgdG8gaW5pdGlhbGl6ZS4gV2l0aG91dCBoYXJkd2FyZSBlbXVsYXRpb24sIHRoZSBkcml2ZXIgY2Fubm90IGNvbXBsZXRlIGl0cyBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSAoZS5nLiwgUU1JIGZpcm13YXJlIHJlYWRpbmVzcyksIG1lYW5pbmcgaXQgd2lsbCBub3QgcmVnaXN0ZXIgd2l0aCBtYWM4MDIxMS4gQXMgYSByZXN1bHQsIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBgYXRoMTJrX3dtaV9zZW5kX3NjYW5fc3RhcnRfY21kYCBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlIGFuZCBmaXJtd2FyZSB0byBpbml0aWFsaXplLiBXaXRob3V0IGhhcmR3YXJlIGVtdWxhdGlvbiwgdGhlIGRyaXZlciBjYW5ub3QgY29tcGxldGUgaXRzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIChlLmcuLCBRTUkgZmlybXdhcmUgcmVhZGluZXNzKSwgbWVhbmluZyBpdCB3aWxsIG5vdCByZWdpc3RlciB3aXRoIG1hYzgwMjExLiBBcyBhIHJlc3VsdCwgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGBhdGgxMmtfd21pX3NlbmRfc2Nhbl9zdGFydF9jbWRgIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow9nxwp[1] Phase: Running StartedAt: 2026-06-29 08:53:13 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9nxwp[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-29 08:53:13 +0000 UTC FinishedAt: 2026-06-29 08:54:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}