Name: series-workflowmr6cn Phase: Failed StartedAt: 2026-09-11 15:30:35 +0000 UTC FinishedAt: 2026-09-11 16:20:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmr6cn[0] Phase: Succeeded StartedAt: 2026-09-11 15:30:35 +0000 UTC FinishedAt: 2026-09-11 16:20:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmr6cn[0].run-triage Phase: Succeeded StartedAt: 2026-09-11 15:30:35 +0000 UTC FinishedAt: 2026-09-11 16:20:40 +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+CgkJCTx0ZD4yMDI2LzA5LzExIDE2OjIwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBCUEYgc2VsZnRlc3RzIGFuZCBzZWxmdGVzdCBkb2N1bWVudGF0aW9uIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8uIEJlY2F1c2UgdGhlc2UgY2hhbmdlcyBvbmx5IGFmZmVjdCB1c2Vyc3BhY2UgdGVzdCBhcnRpZmFjdHMgYW5kIGRvIG5vdCBhbHRlciB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcywgdGhleSBhcmUgbm90IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDE2OjIwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzdjYTlkMjkzYWI4MGM4N2M3NTQ4OTIwYzg1M2QxYTdjZjUxYWI0OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgU2VwIDExIDE2OjIwOjA1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9SRUFETUUucnN0IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL1JFQURNRS5yc3RcbmluZGV4IDA3YzgzNDQzM2IzODguLjc1ZmYxMTQyYzE4NTcgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdFxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL1JFQURNRS5yc3RcbkBAIC0xODcsNyAmIzQzOzE4Nyw3IEBAIFRoZSBzeW1wdG9tIGZvciBgYGJwZl9pdGVyL25ldGxpbmtgYCBsb29rcyBsaWtlXG4gICAuLi5cbiAgIDE1OiAoYmYpIHIyID0gcjdcbiAgIDE2OiAoMGYpIHIyICYjNDM7PSByMVxuLSAgOyBCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OyVwSyAlLTNkIFwmIzM0Oywgcywgcy1cdTAwM2Vza19wcm90b2NvbCk7XG4mIzQzOyAgOyBCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OyVwICUtM2QgXCYjMzQ7LCBzLCBzLVx1MDAzZXNrX3Byb3RvY29sKTtcbiAgIDE3OiAoN2IpICoodTY0ICopKHI3ICYjNDM7MCkgPSByMlxuICAgb25seSByZWFkIGlzIHN1cHBvcnRlZFxuIFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3NucHJpbnRmLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9zbnByaW50Zi5jXG5pbmRleCA0ZTRhODJkNTRmNzk5Li5mMmNkNDQyYzQ2ODNjIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuY1xuQEAgLTE2LDcgJiM0MzsxNiw3IEBAXG4gI2RlZmluZSBNSU5fU1lNX1JFVCAgc2l6ZW9mKEVYUF9TWU1fT1VUKVxuIFxuIC8qIFRoZSB0aGlyZCBzcGVjaWZpZXIsICVwLCBpcyBhIGhhc2hlZCBwb2ludGVyIHdoaWNoIGNoYW5nZXMgb24gZXZlcnkgcmVib290ICovXG4tI2RlZmluZSBFWFBfQUREUl9PVVQgXCYjMzQ7MDAwMDAwMDAwMDAwMDAwMCBmZmZmMDAwMDBhZGQ0ZTU1IFwmIzM0O1xuJiM0MzsjZGVmaW5lIEVYUF9BRERSX09VVCBcJiMzNDtmZmZmMDAwMDBhZGQ0ZTU1IFwmIzM0O1xuICNkZWZpbmUgRVhQX0FERFJfUkVUIHNpemVvZihFWFBfQUREUl9PVVQgXCYjMzQ7dW5rbm93bmhhc2hlZHB0clwmIzM0OylcbiBcbiAjZGVmaW5lIEVYUF9TVFJfT1VUICBcJiMzNDtzdHIxICAgICAgICAgYSAgYiBjICAgICAgZCBlIGxvbmdzdHJcJiMzNDtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfbmV0bGluay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX25ldGxpbmsuY1xuaW5kZXggMDBiMmNlYWU4MWZiMC4uYjkxMDdkM2FiNjAzOSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmNcbkBAIC0yNSwxMiAmIzQzOzI1LDEyIEBAIGludCBkdW1wX25ldGxpbmsoc3RydWN0IGJwZl9pdGVyX19uZXRsaW5rICpjdHgpXG4gXHRcdHJldHVybiAwO1xuIFxuIFx0aWYgKGN0eC1cdTAwM2VtZXRhLVx1MDAzZXNlcV9udW0gPT0gMClcbi1cdFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDtzayAgICAgICAgICAgICAgIEV0aCBQaWQgICAgICAgIEdyb3VwcyAgIFwmIzM0O1xuJiM0MztcdFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDtzayBFdGggUGlkICAgICAgICBHcm91cHMgICBcJiMzNDtcbiBcdFx0XHRcdCAgICBcJiMzNDtSbWVtICAgICBXbWVtICAgICBEdW1wICBMb2NrcyAgICBEcm9wcyAgICBcJiMzNDtcbiBcdFx0XHRcdCAgICBcJiMzNDtJbm9kZVxcblwmIzM0Oyk7XG4gXG4gXHRzID0gXHUwMDI2bmxrLVx1MDAzZXNrO1xuLVx0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDslcEsgJS0zZCBcJiMzNDssIHMsIHMtXHUwMDNlc2tfcHJvdG9jb2wpO1xuJiM0MztcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7MCAgJS0zZCBcJiMzNDssIHMtXHUwMDNlc2tfcHJvdG9jb2wpO1xuIFxuIFx0aWYgKCFubGstXHUwMDNlZ3JvdXBzKSAge1xuIFx0XHRncm91cCA9IDA7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A0LmNcbmluZGV4IGIxZTUwOWIyMzFjZDkuLmQxNDljZjBkMDdiZTYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jXG5AQCAtMTMxLDggJiM0MzsxMzEsNyBAQCBzdGF0aWMgaW50IGR1bXBfdGNwX3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3Bfc29jayAqdHAsXG4gXHRcdCAgICAgICBpY3NrLVx1MDAzZWljc2tfcHJvYmVzX291dCxcbiBcdFx0ICAgICAgIHNvY2tfaV9pbm8oc3ApLFxuIFx0XHQgICAgICAgc3AtXHUwMDNlc2tfcmVmY250LnJlZnMuY291bnRlcik7XG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OyVwSyAlbHUgJWx1ICV1ICV1ICVkXFxuXCYjMzQ7LFxuLVx0XHQgICAgICAgdHAsXG4mIzQzO1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDswICVsdSAlbHUgJXUgJXUgJWRcXG5cJiMzNDssXG4gXHRcdCAgICAgICBqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay1cdTAwM2VpY3NrX3J0byksXG4gXHRcdCAgICAgICBqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay1cdTAwM2VpY3NrX2Fjay5hdG8pLFxuIFx0XHQgICAgICAgKGljc2stXHUwMDNlaWNza19hY2sucXVpY2sgXHUwMDNjXHUwMDNjIDEpIHwgaW5ldF9jc2tfaW5fcGluZ3BvbmdfbW9kZShpY3NrKSxcbkBAIC0xNjEsMTAgJiM0MzsxNjAsMTAgQEAgc3RhdGljIGludCBkdW1wX3R3X3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3BfdGltZXdhaXRfc29jayAqdHR3LFxuIFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDslNGQ6ICUwOFg6JTA0WCAlMDhYOiUwNFggXCYjMzQ7LFxuIFx0XHQgICAgICAgc2VxX251bSwgc3JjLCBzcmNwLCBkZXN0LCBkZXN0cCk7XG4gXG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OyUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkICVwS1xcblwmIzM0OyxcbiYjNDM7XHRCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OyUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkIDBcXG5cJiMzNDssXG4gXHRcdCAgICAgICB0dy1cdTAwM2V0d19zdWJzdGF0ZSwgMCwgMCxcbiBcdFx0ICAgICAgIDMsIGppZmZpZXNfZGVsdGFfdG9fY2xvY2tfdChkZWx0YSksIDAsIDAsIDAsIDAsXG4tXHRcdCAgICAgICB0dy1cdTAwM2V0d19yZWZjbnQucmVmcy5jb3VudGVyLCB0dyk7XG4mIzQzO1x0XHQgICAgICAgdHctXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlcik7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG5AQCAtMTg1LDkgJiM0MzsxODQsOSBAQCBzdGF0aWMgaW50IGR1bXBfcmVxX3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3BfcmVxdWVzdF9zb2NrICp0cmVxLFxuIFx0XHQgICAgICAgc2VxX251bSwgaXJzay1cdTAwM2Vpcl9sb2NfYWRkcixcbiBcdFx0ICAgICAgIGlyc2stXHUwMDNlaXJfbnVtLCBpcnNrLVx1MDAzZWlyX3JtdF9hZGRyLFxuIFx0XHQgICAgICAgYnBmX250b2hzKGlyc2stXHUwMDNlaXJfcm10X3BvcnQpKTtcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxuXCYjMzQ7LFxuJiM0MztcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxcblwmIzM0OyxcbiBcdFx0ICAgICAgIFRDUF9TWU5fUkVDViwgMCwgMCwgMSwgamlmZmllc190b19jbG9ja190KHR0ZCksXG4tXHRcdCAgICAgICByZXEtXHUwMDNlbnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCwgcmVxKTtcbiYjNDM7XHRcdCAgICAgICByZXEtXHUwMDNlbnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCk7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A2LmNcbmluZGV4IGRiYzcxNjZhZWU5MWYuLmNkNjVmYTgxZjEyMTkgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNi5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNi5jXG5AQCAtMTM1LDggJiM0MzsxMzUsNyBAQCBzdGF0aWMgaW50IGR1bXBfdGNwNl9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwNl9zb2NrICp0cCxcbiBcdFx0ICAgICAgIGljc2stXHUwMDNlaWNza19wcm9iZXNfb3V0LFxuIFx0XHQgICAgICAgc29ja19pX2lubyhzcCksXG4gXHRcdCAgICAgICBzcC1cdTAwM2Vza19yZWZjbnQucmVmcy5jb3VudGVyKTtcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JXBLICVsdSAlbHUgJXUgJXUgJWRcXG5cJiMzNDssXG4tXHRcdCAgICAgICB0cCxcbiYjNDM7XHRCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OzAgJWx1ICVsdSAldSAldSAlZFxcblwmIzM0OyxcbiBcdFx0ICAgICAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLVx1MDAzZWljc2tfcnRvKSxcbiBcdFx0ICAgICAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLVx1MDAzZWljc2tfYWNrLmF0byksXG4gXHRcdCAgICAgICAoaWNzay1cdTAwM2VpY3NrX2Fjay5xdWljayBcdTAwM2NcdTAwM2MgMSkgfCBpbmV0X2Nza19pbl9waW5ncG9uZ19tb2RlKGljc2spLFxuQEAgLTE3MCwxMCAmIzQzOzE2OSwxMCBAQCBzdGF0aWMgaW50IGR1bXBfdHdfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcF90aW1ld2FpdF9zb2NrICp0dHcsXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlswXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMV0sXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlsyXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbM10sIGRlc3RwKTtcbiBcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxuXCYjMzQ7LFxuJiM0MztcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxcblwmIzM0OyxcbiBcdFx0ICAgICAgIHR3LVx1MDAzZXR3X3N1YnN0YXRlLCAwLCAwLFxuIFx0XHQgICAgICAgMywgamlmZmllc19kZWx0YV90b19jbG9ja190KGRlbHRhKSwgMCwgMCwgMCwgMCxcbi1cdFx0ICAgICAgIHR3LVx1MDAzZXR3X3JlZmNudC5yZWZzLmNvdW50ZXIsIHR3KTtcbiYjNDM7XHRcdCAgICAgICB0dy1cdTAwM2V0d19yZWZjbnQucmVmcy5jb3VudGVyKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbkBAIC0yMDEsOSAmIzQzOzIwMCw5IEBAIHN0YXRpYyBpbnQgZHVtcF9yZXFfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcF9yZXF1ZXN0X3NvY2sgKnRyZXEsXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlswXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMV0sXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlsyXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbM10sXG4gXHRcdCAgICAgICBicGZfbnRvaHMoaXJzay1cdTAwM2Vpcl9ybXRfcG9ydCkpO1xuLVx0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAlcEtcXG5cJiMzNDssXG4mIzQzO1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAwXFxuXCYjMzQ7LFxuIFx0XHQgICAgICAgVENQX1NZTl9SRUNWLCAwLCAwLCAxLCBqaWZmaWVzX3RvX2Nsb2NrX3QodHRkKSxcbi1cdFx0ICAgICAgIHJlcS1cdTAwM2VudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwLCByZXEpO1xuJiM0MztcdFx0ICAgICAgIHJlcS1cdTAwM2VudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDQuY1xuaW5kZXggMjNiMmFhMjYwNGRlMi4uOWI3ODlmMDlmMTQ2MiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA0LmNcbkBAIC01NywxMyAmIzQzOzU3LDEzIEBAIGludCBkdW1wX3VkcDQoc3RydWN0IGJwZl9pdGVyX191ZHAgKmN0eClcbiBcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTVkOiAlMDhYOiUwNFggJTA4WDolMDRYIFwmIzM0OyxcbiBcdFx0ICAgICAgIGN0eC1cdTAwM2VidWNrZXQsIHNyYywgc3JjcCwgZGVzdCwgZGVzdHApO1xuIFxuLVx0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTV1ICU4ZCAlbHUgJWQgJXBLICV1XFxuXCYjMzQ7LFxuJiM0MztcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1dSAlOGQgJWx1ICVkICU4ZCAldVxcblwmIzM0OyxcbiBcdFx0ICAgICAgIGluZXQtXHUwMDNlc2suc2tfc3RhdGUsXG4gXHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3dtZW1fYWxsb2MucmVmcy5jb3VudGVyIC0gMSxcbiBcdFx0ICAgICAgIHJxdWV1ZSxcbiBcdFx0ICAgICAgIDAsIDBMLCAwLCBjdHgtXHUwMDNldWlkLCAwLFxuIFx0XHQgICAgICAgc29ja19pX2lubyhcdTAwMjZpbmV0LVx1MDAzZXNrKSxcbi1cdFx0ICAgICAgIGluZXQtXHUwMDNlc2suc2tfcmVmY250LnJlZnMuY291bnRlciwgdWRwX3NrLFxuJiM0MztcdFx0ICAgICAgIGluZXQtXHUwMDNlc2suc2tfcmVmY250LnJlZnMuY291bnRlciwgMCxcbiBcdFx0ICAgICAgIHVkcF9zay1cdTAwM2Vkcm9wX2NvdW50ZXJzLmRyb3BzMC5jb3VudGVyICYjNDM7XG4gXHRcdCAgICAgICB1ZHBfc2stXHUwMDNlZHJvcF9jb3VudGVycy5kcm9wczEuY291bnRlcik7XG4gXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA2LmNcbmluZGV4IGM0OGIwNWFhMmE0YjIuLjk3NjZlZmY3MDY5ZmYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNi5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNi5jXG5AQCAtNjUsMTMgJiM0Mzs2NSwxMyBAQCBpbnQgZHVtcF91ZHA2KHN0cnVjdCBicGZfaXRlcl9fdWRwICpjdHgpXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlswXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMV0sXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlsyXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbM10sIGRlc3RwKTtcbiBcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1dSAlOGQgJWx1ICVkICVwSyAldVxcblwmIzM0OyxcbiYjNDM7XHRCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OyUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlOGQgJXVcXG5cJiMzNDssXG4gXHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3N0YXRlLFxuIFx0XHQgICAgICAgaW5ldC1cdTAwM2Vzay5za193bWVtX2FsbG9jLnJlZnMuY291bnRlciAtIDEsXG4gXHRcdCAgICAgICBycXVldWUsXG4gXHRcdCAgICAgICAwLCAwTCwgMCwgY3R4LVx1MDAzZXVpZCwgMCxcbiBcdFx0ICAgICAgIHNvY2tfaV9pbm8oXHUwMDI2aW5ldC1cdTAwM2VzayksXG4tXHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3JlZmNudC5yZWZzLmNvdW50ZXIsIHVkcF9zayxcbiYjNDM7XHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3JlZmNudC5yZWZzLmNvdW50ZXIsIDAsXG4gXHRcdCAgICAgICB1ZHBfc2stXHUwMDNlZHJvcF9jb3VudGVycy5kcm9wczAuY291bnRlciAmIzQzO1xuIFx0XHQgICAgICAgdWRwX3NrLVx1MDAzZWRyb3BfY291bnRlcnMuZHJvcHMxLmNvdW50ZXIpO1xuIFx0cmV0dXJuIDA7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VuaXguYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91bml4LmNcbmluZGV4IGEyNjUyYzhjMzYxNmYuLjM2NjkwNDc4OTkyZjggMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jXG5AQCAtNDQsOCAmIzQzOzQ0LDcgQEAgaW50IGR1bXBfdW5peChzdHJ1Y3QgYnBmX2l0ZXJfX3VuaXggKmN0eClcbiBcdGlmIChzZXFfbnVtID09IDApXG4gXHRcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7TnVtICAgICAgICAgICAgICAgUmVmQ291bnQgUHJvdG9jb2wgRmxhZ3MgICAgVHlwZSBTdCAgICBJbm9kZSBQYXRoXFxuXCYjMzQ7KTtcbiBcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JXBLOiAlMDhYICUwOFggJTA4WCAlMDRYICUwMlggJThsdVwmIzM0Oyxcbi1cdFx0ICAgICAgIHVuaXhfc2ssXG4mIzQzO1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDslMDh1OiAlMDhYICUwOFggJTA4WCAlMDRYICUwMlggJThsdVwmIzM0OywgMCxcbiBcdFx0ICAgICAgIHNrLVx1MDAzZXNrX3JlZmNudC5yZWZzLmNvdW50ZXIsXG4gXHRcdCAgICAgICAwLFxuIFx0XHQgICAgICAgc2stXHUwMDNlc2tfc3RhdGUgPT0gVENQX0xJU1RFTiA/IF9fU09fQUNDRVBUQ09OIDogMCxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGVzdF9zbnByaW50Zi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3Rlc3Rfc25wcmludGYuY1xuaW5kZXggOGZkYTA3NTQ0MDIzNS4uNDhhMDAyNWNmMmNhOCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90ZXN0X3NucHJpbnRmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90ZXN0X3NucHJpbnRmLmNcbkBAIC01Nyw4ICYjNDM7NTcsOCBAQCBpbnQgaGFuZGxlcihjb25zdCB2b2lkICpjdHgpXG4gXHRzeW1fcmV0ICA9IEJQRl9TTlBSSU5URihzeW1fb3V0LCAgc2l6ZW9mKHN5bV9vdXQpLCBcJiMzNDslcHMgJXBTICVwQlwmIzM0OyxcbiBcdFx0XHRcdFx1MDAyNnNjaGVkdWxlLCBcdTAwMjZzY2hlZHVsZSwgXHUwMDI2c2NoZWR1bGUpO1xuIFx0LyogS2VybmVsIHBvaW50ZXJzICovXG4tXHRhZGRyX3JldCA9IEJQRl9TTlBSSU5URihhZGRyX291dCwgc2l6ZW9mKGFkZHJfb3V0KSwgXCYjMzQ7JXBLICVweCAlcFwmIzM0Oyxcbi1cdFx0XHRcdDAsIDB4RkZGRjAwMDAwQURENEU1NSwgMHhGRkZGMDAwMDBBREQ0RTU1KTtcbiYjNDM7XHRhZGRyX3JldCA9IEJQRl9TTlBSSU5URihhZGRyX291dCwgc2l6ZW9mKGFkZHJfb3V0KSwgXCYjMzQ7JXB4ICVwXCYjMzQ7LFxuJiM0MztcdFx0XHRcdDB4RkZGRjAwMDAwQURENEU1NSwgMHhGRkZGMDAwMDBBREQ0RTU1KTtcbiBcdC8qIFN0cmluZ3MgYW5kIHNpbmdsZS1ieXRlIGNoYXJhY3RlciBlbWJlZGRpbmcgKi9cbiBcdHN0cl9yZXQgID0gQlBGX1NOUFJJTlRGKHN0cl9vdXQsIHNpemVvZihzdHJfb3V0KSwgXCYjMzQ7JXMgJSA5YyAlJiM0MzsyYyAlLTNjICUwNGMgJTBjICUmIzQzOzA1c1wmIzM0OyxcbiBcdFx0XHRcdHN0cjEsICYjMzk7YSYjMzk7LCAmIzM5O2ImIzM5OywgJiMzOTtjJiMzOTssICYjMzk7ZCYjMzk7LCAmIzM5O2UmIzM5OywgbG9uZ3N0cik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMTY6MjA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBCUEYgc2VsZnRlc3RzIGFuZCBzZWxmdGVzdCBkb2N1bWVudGF0aW9uIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8uIEJlY2F1c2UgdGhlc2UgY2hhbmdlcyBvbmx5IGFmZmVjdCB1c2Vyc3BhY2UgdGVzdCBhcnRpZmFjdHMgYW5kIGRvIG5vdCBhbHRlciB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcywgdGhleSBhcmUgbm90IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3MKdG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncywKYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy4KCi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6CiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZAogIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuCiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLAogIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy4KCi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgJiMzNDtOTyBGVU5DVElPTkFMIENIQU5HRSYjMzQ7IChORkNJKSBPUiAmIzM0O1JFRkFDVE9SSU5HJiMzNDsgQ0xBSU1TOgogIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgJiMzNDtjbGVhbnVwcyYjMzQ7LCAmIzM0O3JlZmFjdG9yaW5ncyYjMzQ7LCBvciBzdGF0ZQogICYjMzQ7Tm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQmIzM0Oy4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuCiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50CiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuCiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC4KCi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6CiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLAogIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLgogIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXIKICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoyLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOgoKLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOgogICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLgogICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pCiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuCiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50cwogICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy4KICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy4KLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6CiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczoKICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZwogICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuCiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQozLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6Ci0gQ29yZSBTdWJzeXN0ZW1zOgogICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLAogICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLgotIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczoKICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy4KLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6CiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuCi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczoKICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpXaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjoKCi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOgogIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzCiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHQKICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS4KICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgJiMzNDtmb2N1c2VkJiMzNDssCiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLgoKLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6CiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzCiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuCgotIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKToKICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrCiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuCiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyCiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlncwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOgotIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCi0gQ2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC4KLSBTdHJpcCBhbnkgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+VGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjQKCkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNzdjYTlkMjkzYWI4MGM4N2M3NTQ4OTIwYzg1M2QxYTdjZjUxYWI0OQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgU2VwIDExIDE2OjIwOjA1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL1JFQURNRS5yc3QgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdAppbmRleCAwN2M4MzQ0MzNiMzg4Li43NWZmMTE0MmMxODU3IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdApAQCAtMTg3LDcgJiM0MzsxODcsNyBAQCBUaGUgc3ltcHRvbSBmb3IgYGBicGZfaXRlci9uZXRsaW5rYGAgbG9va3MgbGlrZQogICAuLi4KICAgMTU6IChiZikgcjIgPSByNwogICAxNjogKDBmKSByMiAmIzQzOz0gcjEKLSAgOyBCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JXBLICUtM2QgJiMzNDssIHMsIHMtJmd0O3NrX3Byb3RvY29sKTsKJiM0MzsgIDsgQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OyVwICUtM2QgJiMzNDssIHMsIHMtJmd0O3NrX3Byb3RvY29sKTsKICAgMTc6ICg3YikgKih1NjQgKikocjcgJiM0MzswKSA9IHIyCiAgIG9ubHkgcmVhZCBpcyBzdXBwb3J0ZWQKIApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3NucHJpbnRmLmMKaW5kZXggNGU0YTgyZDU0Zjc5OS4uZjJjZDQ0MmM0NjgzYyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9zbnByaW50Zi5jCkBAIC0xNiw3ICYjNDM7MTYsNyBAQAogI2RlZmluZSBNSU5fU1lNX1JFVCAgc2l6ZW9mKEVYUF9TWU1fT1VUKQogCiAvKiBUaGUgdGhpcmQgc3BlY2lmaWVyLCAlcCwgaXMgYSBoYXNoZWQgcG9pbnRlciB3aGljaCBjaGFuZ2VzIG9uIGV2ZXJ5IHJlYm9vdCAqLwotI2RlZmluZSBFWFBfQUREUl9PVVQgJiMzNDswMDAwMDAwMDAwMDAwMDAwIGZmZmYwMDAwMGFkZDRlNTUgJiMzNDsKJiM0MzsjZGVmaW5lIEVYUF9BRERSX09VVCAmIzM0O2ZmZmYwMDAwMGFkZDRlNTUgJiMzNDsKICNkZWZpbmUgRVhQX0FERFJfUkVUIHNpemVvZihFWFBfQUREUl9PVVQgJiMzNDt1bmtub3duaGFzaGVkcHRyJiMzNDspCiAKICNkZWZpbmUgRVhQX1NUUl9PVVQgICYjMzQ7c3RyMSAgICAgICAgIGEgIGIgYyAgICAgIGQgZSBsb25nc3RyJiMzNDsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfbmV0bGluay5jCmluZGV4IDAwYjJjZWFlODFmYjAuLmI5MTA3ZDNhYjYwMzkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX25ldGxpbmsuYwpAQCAtMjUsMTIgJiM0MzsyNSwxMiBAQCBpbnQgZHVtcF9uZXRsaW5rKHN0cnVjdCBicGZfaXRlcl9fbmV0bGluayAqY3R4KQogCQlyZXR1cm4gMDsKIAogCWlmIChjdHgtJmd0O21ldGEtJmd0O3NlcV9udW0gPT0gMCkKLQkJQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0O3NrICAgICAgICAgICAgICAgRXRoIFBpZCAgICAgICAgR3JvdXBzICAgJiMzNDsKJiM0MzsJCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDtzayBFdGggUGlkICAgICAgICBHcm91cHMgICAmIzM0OwogCQkJCSAgICAmIzM0O1JtZW0gICAgIFdtZW0gICAgIER1bXAgIExvY2tzICAgIERyb3BzICAgICYjMzQ7CiAJCQkJICAgICYjMzQ7SW5vZGVcbiYjMzQ7KTsKIAogCXMgPSAmYW1wO25say0mZ3Q7c2s7Ci0JQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OyVwSyAlLTNkICYjMzQ7LCBzLCBzLSZndDtza19wcm90b2NvbCk7CiYjNDM7CUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDswICAlLTNkICYjMzQ7LCBzLSZndDtza19wcm90b2NvbCk7CiAKIAlpZiAoIW5say0mZ3Q7Z3JvdXBzKSAgewogCQlncm91cCA9IDA7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDQuYwppbmRleCBiMWU1MDliMjMxY2Q5Li5kMTQ5Y2YwZDA3YmU2IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A0LmMKQEAgLTEzMSw4ICYjNDM7MTMxLDcgQEAgc3RhdGljIGludCBkdW1wX3RjcF9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwX3NvY2sgKnRwLAogCQkgICAgICAgaWNzay0mZ3Q7aWNza19wcm9iZXNfb3V0LAogCQkgICAgICAgc29ja19pX2lubyhzcCksCiAJCSAgICAgICBzcC0mZ3Q7c2tfcmVmY250LnJlZnMuY291bnRlcik7Ci0JQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OyVwSyAlbHUgJWx1ICV1ICV1ICVkXG4mIzM0OywKLQkJICAgICAgIHRwLAomIzQzOwlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7MCAlbHUgJWx1ICV1ICV1ICVkXG4mIzM0OywKIAkJICAgICAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLSZndDtpY3NrX3J0byksCiAJCSAgICAgICBqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay0mZ3Q7aWNza19hY2suYXRvKSwKIAkJICAgICAgIChpY3NrLSZndDtpY3NrX2Fjay5xdWljayAmbHQ7Jmx0OyAxKSB8IGluZXRfY3NrX2luX3Bpbmdwb25nX21vZGUoaWNzayksCkBAIC0xNjEsMTAgJiM0MzsxNjAsMTAgQEAgc3RhdGljIGludCBkdW1wX3R3X3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3BfdGltZXdhaXRfc29jayAqdHR3LAogCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslNGQ6ICUwOFg6JTA0WCAlMDhYOiUwNFggJiMzNDssCiAJCSAgICAgICBzZXFfbnVtLCBzcmMsIHNyY3AsIGRlc3QsIGRlc3RwKTsKIAotCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAlcEtcbiYjMzQ7LAomIzQzOwlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxuJiMzNDssCiAJCSAgICAgICB0dy0mZ3Q7dHdfc3Vic3RhdGUsIDAsIDAsCiAJCSAgICAgICAzLCBqaWZmaWVzX2RlbHRhX3RvX2Nsb2NrX3QoZGVsdGEpLCAwLCAwLCAwLCAwLAotCQkgICAgICAgdHctJmd0O3R3X3JlZmNudC5yZWZzLmNvdW50ZXIsIHR3KTsKJiM0MzsJCSAgICAgICB0dy0mZ3Q7dHdfcmVmY250LnJlZnMuY291bnRlcik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE4NSw5ICYjNDM7MTg0LDkgQEAgc3RhdGljIGludCBkdW1wX3JlcV9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwX3JlcXVlc3Rfc29jayAqdHJlcSwKIAkJICAgICAgIHNlcV9udW0sIGlyc2stJmd0O2lyX2xvY19hZGRyLAogCQkgICAgICAgaXJzay0mZ3Q7aXJfbnVtLCBpcnNrLSZndDtpcl9ybXRfYWRkciwKIAkJICAgICAgIGJwZl9udG9ocyhpcnNrLSZndDtpcl9ybXRfcG9ydCkpOwotCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAlcEtcbiYjMzQ7LAomIzQzOwlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxuJiMzNDssCiAJCSAgICAgICBUQ1BfU1lOX1JFQ1YsIDAsIDAsIDEsIGppZmZpZXNfdG9fY2xvY2tfdCh0dGQpLAotCQkgICAgICAgcmVxLSZndDtudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwLCByZXEpOwomIzQzOwkJICAgICAgIHJlcS0mZ3Q7bnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A2LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNi5jCmluZGV4IGRiYzcxNjZhZWU5MWYuLmNkNjVmYTgxZjEyMTkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A2LmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDYuYwpAQCAtMTM1LDggJiM0MzsxMzUsNyBAQCBzdGF0aWMgaW50IGR1bXBfdGNwNl9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwNl9zb2NrICp0cCwKIAkJICAgICAgIGljc2stJmd0O2ljc2tfcHJvYmVzX291dCwKIAkJICAgICAgIHNvY2tfaV9pbm8oc3ApLAogCQkgICAgICAgc3AtJmd0O3NrX3JlZmNudC5yZWZzLmNvdW50ZXIpOwotCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslcEsgJWx1ICVsdSAldSAldSAlZFxuJiMzNDssCi0JCSAgICAgICB0cCwKJiM0MzsJQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OzAgJWx1ICVsdSAldSAldSAlZFxuJiMzNDssCiAJCSAgICAgICBqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay0mZ3Q7aWNza19ydG8pLAogCQkgICAgICAgamlmZmllc190b19jbG9ja190KGljc2stJmd0O2ljc2tfYWNrLmF0byksCiAJCSAgICAgICAoaWNzay0mZ3Q7aWNza19hY2sucXVpY2sgJmx0OyZsdDsgMSkgfCBpbmV0X2Nza19pbl9waW5ncG9uZ19tb2RlKGljc2spLApAQCAtMTcwLDEwICYjNDM7MTY5LDEwIEBAIHN0YXRpYyBpbnQgZHVtcF90d19zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwX3RpbWV3YWl0X3NvY2sgKnR0dywKIAkJICAgICAgIGRlc3QtJmd0O3M2X2FkZHIzMlswXSwgZGVzdC0mZ3Q7czZfYWRkcjMyWzFdLAogCQkgICAgICAgZGVzdC0mZ3Q7czZfYWRkcjMyWzJdLCBkZXN0LSZndDtzNl9hZGRyMzJbM10sIGRlc3RwKTsKIAotCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAlcEtcbiYjMzQ7LAomIzQzOwlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxuJiMzNDssCiAJCSAgICAgICB0dy0mZ3Q7dHdfc3Vic3RhdGUsIDAsIDAsCiAJCSAgICAgICAzLCBqaWZmaWVzX2RlbHRhX3RvX2Nsb2NrX3QoZGVsdGEpLCAwLCAwLCAwLCAwLAotCQkgICAgICAgdHctJmd0O3R3X3JlZmNudC5yZWZzLmNvdW50ZXIsIHR3KTsKJiM0MzsJCSAgICAgICB0dy0mZ3Q7dHdfcmVmY250LnJlZnMuY291bnRlcik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTIwMSw5ICYjNDM7MjAwLDkgQEAgc3RhdGljIGludCBkdW1wX3JlcV9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwX3JlcXVlc3Rfc29jayAqdHJlcSwKIAkJICAgICAgIGRlc3QtJmd0O3M2X2FkZHIzMlswXSwgZGVzdC0mZ3Q7czZfYWRkcjMyWzFdLAogCQkgICAgICAgZGVzdC0mZ3Q7czZfYWRkcjMyWzJdLCBkZXN0LSZndDtzNl9hZGRyMzJbM10sCiAJCSAgICAgICBicGZfbnRvaHMoaXJzay0mZ3Q7aXJfcm10X3BvcnQpKTsKLQlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXG4mIzM0OywKJiM0MzsJQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OyUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkIDBcbiYjMzQ7LAogCQkgICAgICAgVENQX1NZTl9SRUNWLCAwLCAwLCAxLCBqaWZmaWVzX3RvX2Nsb2NrX3QodHRkKSwKLQkJICAgICAgIHJlcS0mZ3Q7bnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCwgcmVxKTsKJiM0MzsJCSAgICAgICByZXEtJmd0O251bV90aW1lb3V0LCB1aWQsIDAsIDAsIDApOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDQuYwppbmRleCAyM2IyYWEyNjA0ZGUyLi45Yjc4OWYwOWYxNDYyIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNC5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA0LmMKQEAgLTU3LDEzICYjNDM7NTcsMTMgQEAgaW50IGR1bXBfdWRwNChzdHJ1Y3QgYnBmX2l0ZXJfX3VkcCAqY3R4KQogCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslNWQ6ICUwOFg6JTA0WCAlMDhYOiUwNFggJiMzNDssCiAJCSAgICAgICBjdHgtJmd0O2J1Y2tldCwgc3JjLCBzcmNwLCBkZXN0LCBkZXN0cCk7CiAKLQlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1dSAlOGQgJWx1ICVkICVwSyAldVxuJiMzNDssCiYjNDM7CUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTV1ICU4ZCAlbHUgJWQgJThkICV1XG4mIzM0OywKIAkJICAgICAgIGluZXQtJmd0O3NrLnNrX3N0YXRlLAogCQkgICAgICAgaW5ldC0mZ3Q7c2suc2tfd21lbV9hbGxvYy5yZWZzLmNvdW50ZXIgLSAxLAogCQkgICAgICAgcnF1ZXVlLAogCQkgICAgICAgMCwgMEwsIDAsIGN0eC0mZ3Q7dWlkLCAwLAogCQkgICAgICAgc29ja19pX2lubygmYW1wO2luZXQtJmd0O3NrKSwKLQkJICAgICAgIGluZXQtJmd0O3NrLnNrX3JlZmNudC5yZWZzLmNvdW50ZXIsIHVkcF9zaywKJiM0MzsJCSAgICAgICBpbmV0LSZndDtzay5za19yZWZjbnQucmVmcy5jb3VudGVyLCAwLAogCQkgICAgICAgdWRwX3NrLSZndDtkcm9wX2NvdW50ZXJzLmRyb3BzMC5jb3VudGVyICYjNDM7CiAJCSAgICAgICB1ZHBfc2stJmd0O2Ryb3BfY291bnRlcnMuZHJvcHMxLmNvdW50ZXIpOwogCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDYuYwppbmRleCBjNDhiMDVhYTJhNGIyLi45NzY2ZWZmNzA2OWZmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNi5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA2LmMKQEAgLTY1LDEzICYjNDM7NjUsMTMgQEAgaW50IGR1bXBfdWRwNihzdHJ1Y3QgYnBmX2l0ZXJfX3VkcCAqY3R4KQogCQkgICAgICAgZGVzdC0mZ3Q7czZfYWRkcjMyWzBdLCBkZXN0LSZndDtzNl9hZGRyMzJbMV0sCiAJCSAgICAgICBkZXN0LSZndDtzNl9hZGRyMzJbMl0sIGRlc3QtJmd0O3M2X2FkZHIzMlszXSwgZGVzdHApOwogCi0JQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OyUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlcEsgJXVcbiYjMzQ7LAomIzQzOwlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1dSAlOGQgJWx1ICVkICU4ZCAldVxuJiMzNDssCiAJCSAgICAgICBpbmV0LSZndDtzay5za19zdGF0ZSwKIAkJICAgICAgIGluZXQtJmd0O3NrLnNrX3dtZW1fYWxsb2MucmVmcy5jb3VudGVyIC0gMSwKIAkJICAgICAgIHJxdWV1ZSwKIAkJICAgICAgIDAsIDBMLCAwLCBjdHgtJmd0O3VpZCwgMCwKIAkJICAgICAgIHNvY2tfaV9pbm8oJmFtcDtpbmV0LSZndDtzayksCi0JCSAgICAgICBpbmV0LSZndDtzay5za19yZWZjbnQucmVmcy5jb3VudGVyLCB1ZHBfc2ssCiYjNDM7CQkgICAgICAgaW5ldC0mZ3Q7c2suc2tfcmVmY250LnJlZnMuY291bnRlciwgMCwKIAkJICAgICAgIHVkcF9zay0mZ3Q7ZHJvcF9jb3VudGVycy5kcm9wczAuY291bnRlciAmIzQzOwogCQkgICAgICAgdWRwX3NrLSZndDtkcm9wX2NvdW50ZXJzLmRyb3BzMS5jb3VudGVyKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91bml4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jCmluZGV4IGEyNjUyYzhjMzYxNmYuLjM2NjkwNDc4OTkyZjggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91bml4LmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VuaXguYwpAQCAtNDQsOCAmIzQzOzQ0LDcgQEAgaW50IGR1bXBfdW5peChzdHJ1Y3QgYnBmX2l0ZXJfX3VuaXggKmN0eCkKIAlpZiAoc2VxX251bSA9PSAwKQogCQlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7TnVtICAgICAgICAgICAgICAgUmVmQ291bnQgUHJvdG9jb2wgRmxhZ3MgICAgVHlwZSBTdCAgICBJbm9kZSBQYXRoXG4mIzM0Oyk7CiAKLQlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JXBLOiAlMDhYICUwOFggJTA4WCAlMDRYICUwMlggJThsdSYjMzQ7LAotCQkgICAgICAgdW5peF9zaywKJiM0MzsJQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OyUwOHU6ICUwOFggJTA4WCAlMDhYICUwNFggJTAyWCAlOGx1JiMzNDssIDAsCiAJCSAgICAgICBzay0mZ3Q7c2tfcmVmY250LnJlZnMuY291bnRlciwKIAkJICAgICAgIDAsCiAJCSAgICAgICBzay0mZ3Q7c2tfc3RhdGUgPT0gVENQX0xJU1RFTiA/IF9fU09fQUNDRVBUQ09OIDogMCwKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90ZXN0X3NucHJpbnRmLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGVzdF9zbnByaW50Zi5jCmluZGV4IDhmZGEwNzU0NDAyMzUuLjQ4YTAwMjVjZjJjYTggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90ZXN0X3NucHJpbnRmLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3Rlc3Rfc25wcmludGYuYwpAQCAtNTcsOCAmIzQzOzU3LDggQEAgaW50IGhhbmRsZXIoY29uc3Qgdm9pZCAqY3R4KQogCXN5bV9yZXQgID0gQlBGX1NOUFJJTlRGKHN5bV9vdXQsICBzaXplb2Yoc3ltX291dCksICYjMzQ7JXBzICVwUyAlcEImIzM0OywKIAkJCQkmYW1wO3NjaGVkdWxlLCAmYW1wO3NjaGVkdWxlLCAmYW1wO3NjaGVkdWxlKTsKIAkvKiBLZXJuZWwgcG9pbnRlcnMgKi8KLQlhZGRyX3JldCA9IEJQRl9TTlBSSU5URihhZGRyX291dCwgc2l6ZW9mKGFkZHJfb3V0KSwgJiMzNDslcEsgJXB4ICVwJiMzNDssCi0JCQkJMCwgMHhGRkZGMDAwMDBBREQ0RTU1LCAweEZGRkYwMDAwMEFERDRFNTUpOwomIzQzOwlhZGRyX3JldCA9IEJQRl9TTlBSSU5URihhZGRyX291dCwgc2l6ZW9mKGFkZHJfb3V0KSwgJiMzNDslcHggJXAmIzM0OywKJiM0MzsJCQkJMHhGRkZGMDAwMDBBREQ0RTU1LCAweEZGRkYwMDAwMEFERDRFNTUpOwogCS8qIFN0cmluZ3MgYW5kIHNpbmdsZS1ieXRlIGNoYXJhY3RlciBlbWJlZGRpbmcgKi8KIAlzdHJfcmV0ICA9IEJQRl9TTlBSSU5URihzdHJfb3V0LCBzaXplb2Yoc3RyX291dCksICYjMzQ7JXMgJSA5YyAlJiM0MzsyYyAlLTNjICUwNGMgJTBjICUmIzQzOzA1cyYjMzQ7LAogCQkJCXN0cjEsICYjMzk7YSYjMzk7LCAmIzM5O2ImIzM5OywgJiMzOTtjJiMzOTssICYjMzk7ZCYjMzk7LCAmIzM5O2UmIzM5OywgbG9uZ3N0cik7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDE2OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcyMjMKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiA0MzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nPUZhbHNlIERlY2lzaW9uKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIG5lZWQgdG8gbWV0aWN1bG91c2x5IGV4YW1pbmUgdGhlIGRpZmYuIFJpZ2h0IGF3YXksIEkgc2VlIHRoZSBjaGFuZ2VzIGFyZSBjb25maW5lZCB0byB0aGUgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gIGRpcmVjdG9yeS4gVGhlIHNwZWNpZmljIGZpbGVzIG1vZGlmaWVkIGFyZSBgUkVBRE1FLnJzdGAsIGBzbnByaW50Zi5jYCwgYW5kIGEgc2VyaWVzIG9mIHByb2dyYW1zIHJlbGF0ZWQgdG8gYGJwZl9pdGVyYCBmb3IgdmFyaW91cyBuZXR3b3JrIHByb3RvY29scyAoVENQNCwgVENQNiwgVURQNCwgVURQNiwgVW5peCBzb2NrZXRzKSwgYWxvbmcgd2l0aCBhIGB0ZXN0X3NucHJpbnRmLmNgLgoKTm93LCBJJiMzOTttIGdvaW5nIHRvIGFwcGx5IHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSBmcm9tIFNlY3Rpb24gMi4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uOiBkbyB0aGVzZSBjaGFuZ2VzIGZhbGwgaW50byB0aGUgJiMzNDtOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzJiMzNDsgY2F0ZWdvcnk/IFNwZWNpZmljYWxseSwgYXJlIHRoZXNlIG1vZGlmaWNhdGlvbnMgdG8gdXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyB0aGF0ICpkb24mIzM5O3QqIGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlPwoKTG9va2luZyBhdCB0aGUgY29udGV4dCwgdGhpcyBpcyBwcmV0dHkgY2xlYXIgY3V0LiBUaGUgY2hhbmdlcyBhcmUgYWxsIHdpdGhpbiB0aGUgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gIGRpcmVjdG9yeS4gVGhlc2UgYXJlIHVzZXItc3BhY2UgQlBGIHNlbGYtdGVzdHMuIFRoZXkgYXJlIG5vdCB0b3VjaGluZyBhbnkga2VybmVsIGNvZGUsIHZtbGludXgsIG9yIGtlcm5lbCBtb2R1bGVzLgoKSSYjMzk7bGwgZG8gYSBmaW5hbCBxdWljayBjaGVjayB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1cnByaXNlcyBlbHNld2hlcmUgaW4gdGhlIEhFQUQgY29tbWl0LiBIb3dldmVyLCBiYXNlZCBvbiB0aGUgaWRlbnRpZmllZCBmaWxlcywgaXQmIzM5O3MgYSBzdHJhaWdodGZvcndhcmQgZGVjaXNpb24uICoqV29ydGhGdXp6aW5nID0gRmFsc2UuKioKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAxNjoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDsuKiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTgwNDIxIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5rZXJuZWwvLmdpdGlnbm9yZToxOiMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxua2VybmVsLy5naXRpZ25vcmU6MjovY29uZmlnX2RhdGFcbmtlcm5lbC8uZ2l0aWdub3JlOjM6L2toZWFkZXJzLm1kNVxua2VybmVsLy5naXRpZ25vcmU6NDova2hlYWRlcnMtb2JqbGlzdFxua2VybmVsLy5naXRpZ25vcmU6NTova2hlYWRlcnMtc3JjbGlzdFxuLS1cbmtlcm5lbC9LY29uZmlnLmZyZWV6ZXI6MTojIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmtlcm5lbC9LY29uZmlnLmZyZWV6ZXI6Mjpjb25maWcgRlJFRVpFUlxua2VybmVsL0tjb25maWcuZnJlZXplcjozOlx0ZGVmX2Jvb2wgUE1fU0xFRVAgfHwgQ0dST1VQX0ZSRUVaRVJcbi0tXG5rZXJuZWwvS2NvbmZpZy5oejoxOiMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxua2VybmVsL0tjb25maWcuaHo6MjojXG5rZXJuZWwvS2NvbmZpZy5oejozOiMgVGltZXIgSW50ZXJydXB0IEZyZXF1ZW5jeSBDb25maWd1cmF0aW9uXG5rZXJuZWwvS2NvbmZpZy5oejo0OiNcbmtlcm5lbC9LY29uZmlnLmh6OjU6XG5rZXJuZWwvS2NvbmZpZy5oejo2OmNob2ljZVxua2VybmVsL0tjb25maWcuaHo6NzpcdHByb21wdCBcJiMzNDtUaW1lciBmcmVxdWVuY3lcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmh6Ojg6XHRkZWZhdWx0IEhaXzI1MFxua2VybmVsL0tjb25maWcuaHo6OTpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmh6OjEwOlx0IEFsbG93cyB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgdGltZXIgZnJlcXVlbmN5LiBJdCBpcyBjdXN0b21hcnlcbmtlcm5lbC9LY29uZmlnLmh6OjExOlx0IHRvIGhhdmUgdGhlIHRpbWVyIGludGVycnVwdCBydW4gYXQgMTAwMCBIeiBidXQgMTAwIEh6IG1heSBiZSBtb3JlXG5rZXJuZWwvS2NvbmZpZy5oejoxMjpcdCBiZW5lZmljaWFsIGZvciBzZXJ2ZXJzIGFuZCBOVU1BIHN5c3RlbXMgdGhhdCBkbyBub3QgbmVlZCB0byBoYXZlXG5rZXJuZWwvS2NvbmZpZy5oejoxMzpcdCBhIGZhc3QgcmVzcG9uc2UgZm9yIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRoYXQgbWF5IGV4cGVyaWVuY2UgYnVzXG5rZXJuZWwvS2NvbmZpZy5oejoxNDpcdCBjb250ZW50aW9uIGFuZCBjYWNoZWxpbmUgYm91bmNlcyBhcyBhIHJlc3VsdCBvZiB0aW1lciBpbnRlcnJ1cHRzLlxua2VybmVsL0tjb25maWcuaHo6MTU6XHQgTm90ZSB0aGF0IHRoZSB0aW1lciBpbnRlcnJ1cHQgb2NjdXJzIG9uIGVhY2ggcHJvY2Vzc29yIGluIGFuIFNNUFxua2VybmVsL0tjb25maWcuaHo6MTY6XHQgZW52aXJvbm1lbnQgbGVhZGluZyB0byBOUl9DUFVTICogSFogbnVtYmVyIG9mIHRpbWVyIGludGVycnVwdHNcbmtlcm5lbC9LY29uZmlnLmh6OjE3Olx0IHBlciBzZWNvbmQuXG5rZXJuZWwvS2NvbmZpZy5oejoxODpcbmtlcm5lbC9LY29uZmlnLmh6OjE5Olxua2VybmVsL0tjb25maWcuaHo6MjA6XHRjb25maWcgSFpfMTAwXG5rZXJuZWwvS2NvbmZpZy5oejoyMTpcdFx0Ym9vbCBcJiMzNDsxMDAgSFpcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmh6OjIyOlx0aGVscFxua2VybmVsL0tjb25maWcuaHo6MjM6XHQgIDEwMCBIeiBpcyBhIHR5cGljYWwgY2hvaWNlIGZvciBzZXJ2ZXJzLCBTTVAgYW5kIE5VTUEgc3lzdGVtc1xua2VybmVsL0tjb25maWcuaHo6MjQ6XHQgIHdpdGggbG90cyBvZiBwcm9jZXNzb3JzIHRoYXQgbWF5IHNob3cgcmVkdWNlZCBwZXJmb3JtYW5jZSBpZlxua2VybmVsL0tjb25maWcuaHo6MjU6XHQgIHRvbyBtYW55IHRpbWVyIGludGVycnVwdHMgYXJlIG9jY3VycmluZy5cbmtlcm5lbC9LY29uZmlnLmh6OjI2Olxua2VybmVsL0tjb25maWcuaHo6Mjc6XHRjb25maWcgSFpfMjUwXG5rZXJuZWwvS2NvbmZpZy5oejoyODpcdFx0Ym9vbCBcJiMzNDsyNTAgSFpcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmh6OjI5Olx0aGVscFxua2VybmVsL0tjb25maWcuaHo6MzA6XHQgMjUwIEh6IGlzIGEgZ29vZCBjb21wcm9taXNlIGNob2ljZSBhbGxvd2luZyBzZXJ2ZXIgcGVyZm9ybWFuY2Vcbmtlcm5lbC9LY29uZmlnLmh6OjMxOlx0IHdoaWxlIGFsc28gc2hvd2luZyBnb29kIGludGVyYWN0aXZlIHJlc3BvbnNpdmVuZXNzIGV2ZW5cbmtlcm5lbC9LY29uZmlnLmh6OjMyOlx0IG9uIFNNUCBhbmQgTlVNQSBzeXN0ZW1zLiBJZiB5b3UgYXJlIGdvaW5nIHRvIGJlIHVzaW5nIE5UU0MgdmlkZW9cbmtlcm5lbC9LY29uZmlnLmh6OjMzOlx0IG9yIG11bHRpbWVkaWEsIHNlbGVjdCAzMDBIeiBpbnN0ZWFkLlxua2VybmVsL0tjb25maWcuaHo6MzQ6XG5rZXJuZWwvS2NvbmZpZy5oejozNTpcdGNvbmZpZyBIWl8zMDBcbmtlcm5lbC9LY29uZmlnLmh6OjM2Olx0XHRib29sIFwmIzM0OzMwMCBIWlwmIzM0O1xua2VybmVsL0tjb25maWcuaHo6Mzc6XHRoZWxwXG5rZXJuZWwvS2NvbmZpZy5oejozODpcdCAzMDAgSHogaXMgYSBnb29kIGNvbXByb21pc2UgY2hvaWNlIGFsbG93aW5nIHNlcnZlciBwZXJmb3JtYW5jZVxua2VybmVsL0tjb25maWcuaHo6Mzk6XHQgd2hpbGUgYWxzbyBzaG93aW5nIGdvb2QgaW50ZXJhY3RpdmUgcmVzcG9uc2l2ZW5lc3MgZXZlblxua2VybmVsL0tjb25maWcuaHo6NDA6XHQgb24gU01QIGFuZCBOVU1BIHN5c3RlbXMgYW5kIGV4YWN0bHkgZGl2aWRpbmcgYnkgYm90aCBQQUwgYW5kXG5rZXJuZWwvS2NvbmZpZy5oejo0MTpcdCBOVFNDIGZyYW1lIHJhdGVzIGZvciB2aWRlbyBhbmQgbXVsdGltZWRpYSB3b3JrLlxua2VybmVsL0tjb25maWcuaHo6NDI6XG5rZXJuZWwvS2NvbmZpZy5oejo0MzpcdGNvbmZpZyBIWl8xMDAwXG5rZXJuZWwvS2NvbmZpZy5oejo0NDpcdFx0Ym9vbCBcJiMzNDsxMDAwIEhaXCYjMzQ7XG5rZXJuZWwvS2NvbmZpZy5oejo0NTpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmh6OjQ2Olx0IDEwMDAgSHogaXMgdGhlIHByZWZlcnJlZCBjaG9pY2UgZm9yIGRlc2t0b3Agc3lzdGVtcyBhbmQgb3RoZXJcbmtlcm5lbC9LY29uZmlnLmh6OjQ3Olx0IHN5c3RlbXMgcmVxdWlyaW5nIGZhc3QgaW50ZXJhY3RpdmUgcmVzcG9uc2VzIHRvIGV2ZW50cy5cbmtlcm5lbC9LY29uZmlnLmh6OjQ4Olxua2VybmVsL0tjb25maWcuaHo6NDk6ZW5kY2hvaWNlXG5rZXJuZWwvS2NvbmZpZy5oejo1MDpcbmtlcm5lbC9LY29uZmlnLmh6OjUxOmNvbmZpZyBIWlxua2VybmVsL0tjb25maWcuaHo6NTI6XHRpbnRcbmtlcm5lbC9LY29uZmlnLmh6OjUzOlx0ZGVmYXVsdCAxMDAgaWYgSFpfMTAwXG5rZXJuZWwvS2NvbmZpZy5oejo1NDpcdGRlZmF1bHQgMjUwIGlmIEhaXzI1MFxua2VybmVsL0tjb25maWcuaHo6NTU6XHRkZWZhdWx0IDMwMCBpZiBIWl8zMDBcbmtlcm5lbC9LY29uZmlnLmh6OjU2Olx0ZGVmYXVsdCAxMDAwIGlmIEhaXzEwMDBcbmtlcm5lbC9LY29uZmlnLmh6OjU3Olxua2VybmVsL0tjb25maWcuaHo6NTg6Y29uZmlnIFNDSEVEX0hSVElDS1xua2VybmVsL0tjb25maWcuaHo6NTk6XHRkZWZfYm9vbCBISUdIX1JFU19USU1FUlNcbi0tXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxOiMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxua2VybmVsL0tjb25maWcua2V4ZWM6Mjpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjM6bWVudSBcJiMzNDtLZXhlYyBhbmQgY3Jhc2ggZmVhdHVyZXNcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQ6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo1OmNvbmZpZyBDUkFTSF9SRVNFUlZFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2Olx0Ym9vbFxua2VybmVsL0tjb25maWcua2V4ZWM6Nzpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjg6Y29uZmlnIFZNQ09SRV9JTkZPXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo5Olx0Ym9vbFxua2VybmVsL0tjb25maWcua2V4ZWM6MTA6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTpjb25maWcgS0VYRUNfQ09SRVxua2VybmVsL0tjb25maWcua2V4ZWM6MTI6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0OmNvbmZpZyBLRVhFQ19FTEZcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE1Olx0Ym9vbFxua2VybmVsL0tjb25maWcua2V4ZWM6MTY6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNzpjb25maWcgSEFWRV9JTUFfS0VYRUNcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE4Olx0Ym9vbFxua2VybmVsL0tjb25maWcua2V4ZWM6MTk6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyMDpjb25maWcgS0VYRUNcbmtlcm5lbC9LY29uZmlnLmtleGVjOjIxOlx0Ym9vbCBcJiMzNDtFbmFibGUga2V4ZWMgc3lzdGVtIGNhbGxcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmtleGVjOjIyOlx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyMzpcdHNlbGVjdCBLRVhFQ19DT1JFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyNDpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjI1Olx0ICBrZXhlYyBpcyBhIHN5c3RlbSBjYWxsIHRoYXQgaW1wbGVtZW50cyB0aGUgYWJpbGl0eSB0byBzaHV0ZG93biB5b3VyXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyNjpcdCAgY3VycmVudCBrZXJuZWwsIGFuZCB0byBzdGFydCBhbm90aGVyIGtlcm5lbC4gSXQgaXMgbGlrZSBhIHJlYm9vdFxua2VybmVsL0tjb25maWcua2V4ZWM6Mjc6XHQgIGJ1dCBpdCBpcyBpbmRlcGVuZGVudCBvZiB0aGUgc3lzdGVtIGZpcm13YXJlLiBBbmQgbGlrZSBhIHJlYm9vdFxua2VybmVsL0tjb25maWcua2V4ZWM6Mjg6XHQgIHlvdSBjYW4gc3RhcnQgYW55IGtlcm5lbCB3aXRoIGl0LCBub3QganVzdCBMaW51eC5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjI5Olxua2VybmVsL0tjb25maWcua2V4ZWM6MzA6XHQgIFRoZSBuYW1lIGNvbWVzIGZyb20gdGhlIHNpbWlsYXJpdHkgdG8gdGhlIGV4ZWMgc3lzdGVtIGNhbGwuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozMTpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjMyOlx0ICBJdCBpcyBhbiBvbmdvaW5nIHByb2Nlc3MgdG8gYmUgY2VydGFpbiB0aGUgaGFyZHdhcmUgaW4gYSBtYWNoaW5lXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozMzpcdCAgaXMgcHJvcGVybHkgc2h1dGRvd24sIHNvIGRvIG5vdCBiZSBzdXJwcmlzZWQgaWYgdGhpcyBjb2RlIGRvZXMgbm90XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozNDpcdCAgaW5pdGlhbGx5IHdvcmsgZm9yIHlvdS4gQXMgb2YgdGhpcyB3cml0aW5nIHRoZSBleGFjdCBoYXJkd2FyZVxua2VybmVsL0tjb25maWcua2V4ZWM6MzU6XHQgIGludGVyZmFjZSBpcyBzdHJvbmdseSBpbiBmbHV4LCBzbyBubyBnb29kIHJlY29tbWVuZGF0aW9uIGNhbiBiZVxua2VybmVsL0tjb25maWcua2V4ZWM6MzY6XHQgIG1hZGUuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozNzpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjM4OmNvbmZpZyBLRVhFQ19GSUxFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozOTpcdGJvb2wgXCYjMzQ7RW5hYmxlIGtleGVjIGZpbGUgYmFzZWQgc3lzdGVtIGNhbGxcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQwOlx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDX0ZJTEVcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQxOlx0c2VsZWN0IENSWVBUT19MSUJfU0hBMjU2XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo0MjpcdHNlbGVjdCBLRVhFQ19DT1JFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo0MzpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQ0Olx0ICBUaGlzIGlzIG5ldyB2ZXJzaW9uIG9mIGtleGVjIHN5c3RlbSBjYWxsLiBUaGlzIHN5c3RlbSBjYWxsIGlzXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo0NTpcdCAgZmlsZSBiYXNlZCBhbmQgdGFrZXMgZmlsZSBkZXNjcmlwdG9ycyBhcyBzeXN0ZW0gY2FsbCBhcmd1bWVudFxua2VybmVsL0tjb25maWcua2V4ZWM6NDY6XHQgIGZvciBrZXJuZWwgYW5kIGluaXRyYW1mcyBhcyBvcHBvc2VkIHRvIGxpc3Qgb2Ygc2VnbWVudHMgYXNcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQ3Olx0ICBhY2NlcHRlZCBieSBrZXhlYyBzeXN0ZW0gY2FsbC5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjQ4Olxua2VybmVsL0tjb25maWcua2V4ZWM6NDk6Y29uZmlnIEtFWEVDX1NJR1xua2VybmVsL0tjb25maWcua2V4ZWM6NTA6XHRib29sIFwmIzM0O1ZlcmlmeSBrZXJuZWwgc2lnbmF0dXJlIGR1cmluZyBrZXhlY19maWxlX2xvYWQoKSBzeXNjYWxsXCYjMzQ7XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo1MTpcdGRlcGVuZHMgb24gQVJDSF9TVVBQT1JUU19LRVhFQ19TSUdcbmtlcm5lbC9LY29uZmlnLmtleGVjOjUyOlx0ZGVwZW5kcyBvbiBLRVhFQ19GSUxFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo1MzpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjU0Olx0ICBUaGlzIG9wdGlvbiBtYWtlcyB0aGUga2V4ZWNfZmlsZV9sb2FkKCkgc3lzY2FsbCBjaGVjayBmb3IgYSB2YWxpZFxua2VybmVsL0tjb25maWcua2V4ZWM6NTU6XHQgIHNpZ25hdHVyZSBvZiB0aGUga2VybmVsIGltYWdlLiBUaGUgaW1hZ2UgY2FuIHN0aWxsIGJlIGxvYWRlZCB3aXRob3V0XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo1NjpcdCAgYSB2YWxpZCBzaWduYXR1cmUgdW5sZXNzIHlvdSBhbHNvIGVuYWJsZSBLRVhFQ19TSUdfRk9SQ0UsIHRob3VnaCBpZlxua2VybmVsL0tjb25maWcua2V4ZWM6NTc6XHQgIHRoZXJlJiMzOTtzIGEgc2lnbmF0dXJlIHRoYXQgd2UgY2FuIGNoZWNrLCB0aGVuIGl0IG11c3QgYmUgdmFsaWQuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo1ODpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjU5Olx0ICBJbiBhZGRpdGlvbiB0byB0aGlzIG9wdGlvbiwgeW91IG5lZWQgdG8gZW5hYmxlIHNpZ25hdHVyZVxua2VybmVsL0tjb25maWcua2V4ZWM6NjA6XHQgIHZlcmlmaWNhdGlvbiBmb3IgdGhlIGNvcnJlc3BvbmRpbmcga2VybmVsIGltYWdlIHR5cGUgYmVpbmdcbmtlcm5lbC9LY29uZmlnLmtleGVjOjYxOlx0ICBsb2FkZWQgaW4gb3JkZXIgZm9yIHRoaXMgdG8gd29yay5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjYyOlxua2VybmVsL0tjb25maWcua2V4ZWM6NjM6Y29uZmlnIEtFWEVDX1NJR19GT1JDRVxua2VybmVsL0tjb25maWcua2V4ZWM6NjQ6XHRib29sIFwmIzM0O1JlcXVpcmUgYSB2YWxpZCBzaWduYXR1cmUgaW4ga2V4ZWNfZmlsZV9sb2FkKCkgc3lzY2FsbFwmIzM0O1xua2VybmVsL0tjb25maWcua2V4ZWM6NjU6XHRkZXBlbmRzIG9uIEFSQ0hfU1VQUE9SVFNfS0VYRUNfU0lHX0ZPUkNFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2NjpcdGRlcGVuZHMgb24gS0VYRUNfU0lHXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2NzpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjY4Olx0ICBUaGlzIG9wdGlvbiBtYWtlcyBrZXJuZWwgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBtYW5kYXRvcnkgZm9yXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2OTpcdCAgdGhlIGtleGVjX2ZpbGVfbG9hZCgpIHN5c2NhbGwuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3MDpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjcxOmNvbmZpZyBLRVhFQ19JTUFHRV9WRVJJRllfU0lHXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3MjpcdGJvb2wgXCYjMzQ7RW5hYmxlIEltYWdlIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gc3VwcG9ydCAoQVJNKVwmIzM0O1xua2VybmVsL0tjb25maWcua2V4ZWM6NzM6XHRkZWZhdWx0IEFSQ0hfREVGQVVMVF9LRVhFQ19JTUFHRV9WRVJJRllfU0lHXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3NDpcdGRlcGVuZHMgb24gQVJDSF9TVVBQT1JUU19LRVhFQ19JTUFHRV9WRVJJRllfU0lHXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3NTpcdGRlcGVuZHMgb24gS0VYRUNfU0lHXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3NjpcdGRlcGVuZHMgb24gRUZJIFx1MDAyNlx1MDAyNiBTSUdORURfUEVfRklMRV9WRVJJRklDQVRJT05cbmtlcm5lbC9LY29uZmlnLmtleGVjOjc3Olx0aGVscFxua2VybmVsL0tjb25maWcua2V4ZWM6Nzg6XHQgIEVuYWJsZSBJbWFnZSBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHN1cHBvcnQuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3OTpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjgwOmNvbmZpZyBLRVhFQ19CWklNQUdFX1ZFUklGWV9TSUdcbmtlcm5lbC9LY29uZmlnLmtleGVjOjgxOlx0Ym9vbCBcJiMzNDtFbmFibGUgYnpJbWFnZSBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHN1cHBvcnRcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmtleGVjOjgyOlx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDX0JaSU1BR0VfVkVSSUZZX1NJR1xua2VybmVsL0tjb25maWcua2V4ZWM6ODM6XHRkZXBlbmRzIG9uIEtFWEVDX1NJR1xua2VybmVsL0tjb25maWcua2V4ZWM6ODQ6XHRkZXBlbmRzIG9uIFNJR05FRF9QRV9GSUxFX1ZFUklGSUNBVElPTlxua2VybmVsL0tjb25maWcua2V4ZWM6ODU6XHRzZWxlY3QgU1lTVEVNX1RSVVNURURfS0VZUklOR1xua2VybmVsL0tjb25maWcua2V4ZWM6ODY6XHRoZWxwXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo4NzpcdCAgRW5hYmxlIGJ6SW1hZ2Ugc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBzdXBwb3J0Llxua2VybmVsL0tjb25maWcua2V4ZWM6ODg6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo4OTpjb25maWcgS0VYRUNfSlVNUFxua2VybmVsL0tjb25maWcua2V4ZWM6OTA6XHRib29sIFwmIzM0O2tleGVjIGp1bXBcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmtleGVjOjkxOlx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDX0pVTVBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjkyOlx0ZGVwZW5kcyBvbiBLRVhFQyBcdTAwMjZcdTAwMjYgSElCRVJOQVRJT05cbmtlcm5lbC9LY29uZmlnLmtleGVjOjkzOlx0aGVscFxua2VybmVsL0tjb25maWcua2V4ZWM6OTQ6XHQgIEp1bXAgYmV0d2VlbiBvcmlnaW5hbCBrZXJuZWwgYW5kIGtleGVjZWQga2VybmVsIGFuZCBpbnZva2Vcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk1Olx0ICBjb2RlIGluIHBoeXNpY2FsIGFkZHJlc3MgbW9kZSB2aWEgS0VYRUNcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk2Olxua2VybmVsL0tjb25maWcua2V4ZWM6OTc6Y29uZmlnIENSQVNIX0RVTVBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk4Olx0Ym9vbCBcJiMzNDtrZXJuZWwgY3Jhc2ggZHVtcHNcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk5Olx0ZGVmYXVsdCBBUkNIX0RFRkFVTFRfQ1JBU0hfRFVNUFxua2VybmVsL0tjb25maWcua2V4ZWM6MTAwOlx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0NSQVNIX0RVTVBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEwMTpcdGRlcGVuZHMgb24gS0VYRUNfQ09SRVxua2VybmVsL0tjb25maWcua2V4ZWM6MTAyOlx0c2VsZWN0IFZNQ09SRV9JTkZPXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMDM6XHRzZWxlY3QgQ1JBU0hfUkVTRVJWRVxua2VybmVsL0tjb25maWcua2V4ZWM6MTA0Olx0aGVscFxua2VybmVsL0tjb25maWcua2V4ZWM6MTA1Olx0ICBHZW5lcmF0ZSBjcmFzaCBkdW1wIGFmdGVyIGJlaW5nIHN0YXJ0ZWQgYnkga2V4ZWMuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMDY6XHQgIFRoaXMgc2hvdWxkIGJlIG5vcm1hbGx5IG9ubHkgc2V0IGluIHNwZWNpYWwgY3Jhc2ggZHVtcCBrZXJuZWxzXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMDc6XHQgIHdoaWNoIGFyZSBsb2FkZWQgaW4gdGhlIG1haW4ga2VybmVsIHdpdGgga2V4ZWMtdG9vbHMgaW50b1xua2VybmVsL0tjb25maWcua2V4ZWM6MTA4Olx0ICBhIHNwZWNpYWxseSByZXNlcnZlZCByZWdpb24gYW5kIHRoZW4gbGF0ZXIgZXhlY3V0ZWQgYWZ0ZXJcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEwOTpcdCAgYSBjcmFzaCBieSBrZHVtcC9rZXhlYy4gVGhlIGNyYXNoIGR1bXAga2VybmVsIG11c3QgYmUgY29tcGlsZWRcbmtlcm5lbC9LY29uZmlnLmtleGVjOjExMDpcdCAgdG8gYSBtZW1vcnkgYWRkcmVzcyBub3QgdXNlZCBieSB0aGUgbWFpbiBrZXJuZWwgb3IgQklPUyB1c2luZ1xua2VybmVsL0tjb25maWcua2V4ZWM6MTExOlx0ICBQSFlTSUNBTF9TVEFSVCwgb3IgaXQgbXVzdCBiZSBidWlsdCBhcyBhIHJlbG9jYXRhYmxlIGltYWdlXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTI6XHQgIChDT05GSUdfUkVMT0NBVEFCTEU9eSkuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTM6XHQgIEZvciBtb3JlIGRldGFpbHMgc2VlIERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2R1bXAva2R1bXAucnN0XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTQ6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTU6XHQgIEZvciBzMzkwLCB0aGlzIG9wdGlvbiBhbHNvIGVuYWJsZXMgemZjcGR1bXAuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTY6XHQgIFNlZSBhbHNvIFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi9hcmNoL3MzOTAvemZjcGR1bXAucnN0XHUwMDNlXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTc6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTg6Y29uZmlnIENSQVNIX0RNX0NSWVBUXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTk6XHRib29sIFwmIzM0O1N1cHBvcnQgc2F2aW5nIGNyYXNoIGR1bXAgdG8gZG0tY3J5cHQgZW5jcnlwdGVkIHZvbHVtZVwmIzM0O1xua2VybmVsL0tjb25maWcua2V4ZWM6MTIwOlx0ZGVwZW5kcyBvbiBLRVhFQ19GSUxFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjE6XHRkZXBlbmRzIG9uIENSQVNIX0RVTVBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyMjpcdGRlcGVuZHMgb24gRE1fQ1JZUFRcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyMzpcdGRlcGVuZHMgb24gS0VZU1xua2VybmVsL0tjb25maWcua2V4ZWM6MTI0Olx0aGVscFxua2VybmVsL0tjb25maWcua2V4ZWM6MTI1Olx0ICBXaXRoIHRoaXMgb3B0aW9uIGVuYWJsZWQsIHVzZXIgc3BhY2UgY2FuIGludGVyZWFjdCB3aXRoXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjY6XHQgIC9zeXMva2VybmVsL2NvbmZpZy9jcmFzaF9kbV9jcnlwdF9rZXlzIHRvIG1ha2UgdGhlIGRtIGNyeXB0IGtleXNcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyNzpcdCAgcGVyc2lzdGVudCBmb3IgdGhlIGR1bXAtY2FwdHVyZSBrZXJuZWwuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjg6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjk6Y29uZmlnIENSQVNIX0RNX0NSWVBUX0NPTkZJR1Ncbmtlcm5lbC9LY29uZmlnLmtleGVjOjEzMDpcdGRlZl90cmlzdGF0ZSBDUkFTSF9ETV9DUllQVFxua2VybmVsL0tjb25maWcua2V4ZWM6MTMxOlx0c2VsZWN0IENPTkZJR0ZTX0ZTXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzI6XHRoZWxwXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzM6XHQgIENSQVNIX0RNX0NSWVBUIGNhbm5vdCBkaXJlY3RseSBzZWxlY3QgQ09ORklHRlNfRlMsIGJlY2F1c2UgdGhhdFxua2VybmVsL0tjb25maWcua2V4ZWM6MTM0Olx0ICBpcyByZXF1aXJlZCB0byBiZSBidWlsdC1pbi5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjEzNTpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEzNjpjb25maWcgQ1JBU0hfRFVNUF9LVU5JVF9URVNUXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzc6XHR0cmlzdGF0ZSBcJiMzNDtVbml0IFRlc3RzIGZvciBrZXJuZWwgY3Jhc2ggZHVtcHNcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xua2VybmVsL0tjb25maWcua2V4ZWM6MTM4Olx0ZGVwZW5kcyBvbiBDUkFTSF9EVU1QIFx1MDAyNlx1MDAyNiBLVU5JVFxua2VybmVsL0tjb25maWcua2V4ZWM6MTM5Olx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0MDpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0MTpcdCAgVGhpcyBvcHRpb24gYnVpbGRzIEtVbml0IHVuaXQgdGVzdHMgZm9yIGtlcm5lbCBjcmFzaCBkdW1wcy4gVGhlIHVuaXRcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0MjpcdCAgdGVzdHMgd2lsbCBiZSB1c2VkIHRvIHZlcmlmeSB0aGUgY29ycmVjdG5lc3Mgb2YgY292ZXJlZCBmdW5jdGlvbnMgYW5kXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNDM6XHQgIGFsc28gcHJldmVudCBhbnkgcmVncmVzc2lvbi5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0NDpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0NTpcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0Njpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0Nzpjb25maWcgQ1JBU0hfSE9UUExVR1xua2VybmVsL0tjb25maWcua2V4ZWM6MTQ4Olx0Ym9vbCBcJiMzNDtVcGRhdGUgdGhlIGNyYXNoIGVsZmNvcmVoZHIgb24gc3lzdGVtIGNvbmZpZ3VyYXRpb24gY2hhbmdlc1wmIzM0O1xua2VybmVsL0tjb25maWcua2V4ZWM6MTQ5Olx0ZGVmYXVsdCB5XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTA6XHRkZXBlbmRzIG9uIENSQVNIX0RVTVAgXHUwMDI2XHUwMDI2IChIT1RQTFVHX0NQVSB8fCBNRU1PUllfSE9UUExVRylcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE1MTpcdGRlcGVuZHMgb24gQVJDSF9TVVBQT1JUU19DUkFTSF9IT1RQTFVHXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTI6XHRoZWxwXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTM6XHQgIEVuYWJsZSBkaXJlY3QgdXBkYXRlIHRvIHRoZSBjcmFzaCBlbGZjb3JlaGRyICh3aGljaCBjb250YWluc1xua2VybmVsL0tjb25maWcua2V4ZWM6MTU0Olx0ICB0aGUgbGlzdCBvZiBDUFVzIGFuZCBtZW1vcnkgcmVnaW9ucyB0byBiZSBkdW1wZWQgdXBvbiBhIGNyYXNoKVxua2VybmVsL0tjb25maWcua2V4ZWM6MTU1Olx0ICBpbiByZXNwb25zZSB0byBob3QgcGx1Zy91bnBsdWcgb3Igb25saW5lL29mZmxpbmUgb2YgQ1BVcyBvclxua2VybmVsL0tjb25maWcua2V4ZWM6MTU2Olx0ICBtZW1vcnkuIFRoaXMgaXMgYSBtdWNoIG1vcmUgYWR2YW5jZWQgYXBwcm9hY2ggdGhhbiB1c2Vyc3BhY2Vcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE1NzpcdCAgYXR0ZW1wdGluZyB0aGF0Llxua2VybmVsL0tjb25maWcua2V4ZWM6MTU4Olxua2VybmVsL0tjb25maWcua2V4ZWM6MTU5Olx0ICBJZiB1bnN1cmUsIHNheSBZLlxua2VybmVsL0tjb25maWcua2V4ZWM6MTYwOlxua2VybmVsL0tjb25maWcua2V4ZWM6MTYxOmNvbmZpZyBDUkFTSF9NQVhfTUVNT1JZX1JBTkdFU1xua2VybmVsL0tjb25maWcua2V4ZWM6MTYyOlx0aW50IFwmIzM0O1NwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIG1lbW9yeSByZWdpb25zIGZvciB0aGUgZWxmY29yZWhkclwmIzM0O1xua2VybmVsL0tjb25maWcua2V4ZWM6MTYzOlx0ZGVmYXVsdCA4MTkyXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNjQ6XHRkZXBlbmRzIG9uIENSQVNIX0hPVFBMVUdcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2NTpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2NjpcdCAgRm9yIHRoZSBrZXhlY19maWxlX2xvYWQoKSBzeXNjYWxsIHBhdGgsIHNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNjc6XHQgIG1lbW9yeSByZWdpb25zIHRoYXQgdGhlIGVsZmNvcmVoZHIgYnVmZmVyL3NlZ21lbnQgY2FuIGFjY29tbW9kYXRlLlxua2VybmVsL0tjb25maWcua2V4ZWM6MTY4Olx0ICBUaGVzZSByZWdpb25zIGFyZSBvYnRhaW5lZCB2aWEgd2Fsa19zeXN0ZW1fcmFtX3JlcygpOyBlZy4gdGhlXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNjk6XHQgICYjMzk7U3lzdGVtIFJBTSYjMzk7IGVudHJpZXMgaW4gL3Byb2MvaW9tZW0uXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNzA6XHQgIFRoaXMgdmFsdWUgaXMgY29tYmluZWQgd2l0aCBOUl9DUFVTX0RFRkFVTFQgYW5kIG11bHRpcGxpZWQgYnlcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE3MTpcdCAgc2l6ZW9mKEVsZjY0X1BoZHIpIHRvIGRldGVybWluZSB0aGUgZmluYWwgZWxmY29yZWhkciBtZW1vcnkgYnVmZmVyL1xua2VybmVsL0tjb25maWcua2V4ZWM6MTcyOlx0ICBzZWdtZW50IHNpemUuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNzM6XHQgIFRoZSB2YWx1ZSA4MTkyLCBmb3IgZXhhbXBsZSwgY292ZXJzIGEgKHNwYXJzZWx5IHBvcHVsYXRlZCkgMVRpQiBzeXN0ZW1cbmtlcm5lbC9LY29uZmlnLmtleGVjOjE3NDpcdCAgY29uc2lzdGluZyBvZiAxMjhNaUIgbWVtYmxvY2tzLCB3aGlsZSByZXN1bHRpbmcgaW4gYW4gZWxmY29yZWhkclxua2VybmVsL0tjb25maWcua2V4ZWM6MTc1Olx0ICBtZW1vcnkgYnVmZmVyL3NlZ21lbnQgc2l6ZSB1bmRlciAxTWlCLiBUaGlzIHJlcHJlc2VudHMgYSBzYW5lIGNob2ljZVxua2VybmVsL0tjb25maWcua2V4ZWM6MTc2Olx0ICB0byBhY2NvbW1vZGF0ZSBib3RoIGJhcmVtZXRhbCBhbmQgdmlydHVhbCBtYWNoaW5lIGNvbmZpZ3VyYXRpb25zLlxua2VybmVsL0tjb25maWcua2V4ZWM6MTc3Olxua2VybmVsL0tjb25maWcua2V4ZWM6MTc4Olx0ICBGb3IgdGhlIGtleGVjX2xvYWQoKSBzeXNjYWxsIHBhdGgsIENSQVNIX01BWF9NRU1PUllfUkFOR0VTIGlzIHBhcnQgb2Zcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE3OTpcdCAgdGhlIGNvbXB1dGF0aW9uIGJlaGluZCB0aGUgdmFsdWUgcHJvdmlkZWQgdGhyb3VnaCB0aGVcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE4MDpcdCAgL3N5cy9rZXJuZWwvY3Jhc2hfZWxmY29yZWhkcl9zaXplIGF0dHJpYnV0ZS5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjE4MTpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE4MjplbmRtZW51XG4tLVxua2VybmVsL0tjb25maWcubG9ja3M6MTojIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI6I1xua2VybmVsL0tjb25maWcubG9ja3M6MzojIFRoZSBBUkNIX0lOTElORSBmb28gaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugc2VsZWN0IGlnbm9yZXMgXCYjMzQ7ZGVwZW5kcyBvblwmIzM0O1xua2VybmVsL0tjb25maWcubG9ja3M6NDojXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1OmNvbmZpZyBBUkNIX0lOTElORV9TUElOX1RSWUxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjY6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3Olxua2VybmVsL0tjb25maWcubG9ja3M6ODpjb25maWcgQVJDSF9JTkxJTkVfU1BJTl9UUllMT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5Olx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6MTA6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTpjb25maWcgQVJDSF9JTkxJTkVfU1BJTl9MT0NLXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMjpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzOlxua2VybmVsL0tjb25maWcubG9ja3M6MTQ6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19CSFxua2VybmVsL0tjb25maWcubG9ja3M6MTU6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3OmNvbmZpZyBBUkNIX0lOTElORV9TUElOX0xPQ0tfSVJRXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5Olxua2VybmVsL0tjb25maWcubG9ja3M6MjA6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19JUlFTQVZFXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMTpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyOlxua2VybmVsL0tjb25maWcubG9ja3M6MjM6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI1Olxua2VybmVsL0tjb25maWcubG9ja3M6MjY6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNzpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI4Olxua2VybmVsL0tjb25maWcubG9ja3M6Mjk6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLX0lSUVxua2VybmVsL0tjb25maWcubG9ja3M6MzA6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2NrczozMTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjMyOmNvbmZpZyBBUkNIX0lOTElORV9TUElOX1VOTE9DS19JUlFSRVNUT1JFXG5rZXJuZWwvS2NvbmZpZy5sb2NrczozMzpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjM0Olxua2VybmVsL0tjb25maWcubG9ja3M6MzU6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczozNjpjb25maWcgQVJDSF9JTkxJTkVfUkVBRF9UUllMT0NLXG5rZXJuZWwvS2NvbmZpZy5sb2NrczozNzpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjM4Olxua2VybmVsL0tjb25maWcubG9ja3M6Mzk6Y29uZmlnIEFSQ0hfSU5MSU5FX1JFQURfTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6NDA6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo0MTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQyOmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX0xPQ0tfQkhcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQzOlx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6NDQ6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo0NTpjb25maWcgQVJDSF9JTkxJTkVfUkVBRF9MT0NLX0lSUVxua2VybmVsL0tjb25maWcubG9ja3M6NDY6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo0Nzpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQ4OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX0xPQ0tfSVJRU0FWRVxua2VybmVsL0tjb25maWcubG9ja3M6NDk6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1MDpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjUxOmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX1VOTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6NTI6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1Mzpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjU0OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX1VOTE9DS19CSFxua2VybmVsL0tjb25maWcubG9ja3M6NTU6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1Njpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjU3OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX1VOTE9DS19JUlFcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjU4Olx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6NTk6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2MDpjb25maWcgQVJDSF9JTkxJTkVfUkVBRF9VTkxPQ0tfSVJRUkVTVE9SRVxua2VybmVsL0tjb25maWcubG9ja3M6NjE6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2Mjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjYzOlxua2VybmVsL0tjb25maWcubG9ja3M6NjQ6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX1RSWUxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjY1Olx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6NjY6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2Nzpjb25maWcgQVJDSF9JTkxJTkVfV1JJVEVfTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6Njg6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2OTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjcwOmNvbmZpZyBBUkNIX0lOTElORV9XUklURV9MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3MTpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjcyOlxua2VybmVsL0tjb25maWcubG9ja3M6NzM6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tfSVJRXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3NDpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjc1Olxua2VybmVsL0tjb25maWcubG9ja3M6NzY6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tfSVJRU0FWRVxua2VybmVsL0tjb25maWcubG9ja3M6Nzc6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3ODpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjc5OmNvbmZpZyBBUkNIX0lOTElORV9XUklURV9VTkxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjgwOlx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6ODE6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo4Mjpjb25maWcgQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo4MzpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg0Olxua2VybmVsL0tjb25maWcubG9ja3M6ODU6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX1VOTE9DS19JUlFcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg2Olx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6ODc6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo4ODpjb25maWcgQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0lSUVJFU1RPUkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg5Olx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6OTA6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5MTpjb25maWcgVU5JTkxJTkVfU1BJTl9VTkxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjkyOlx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6OTM6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5NDojXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5NTojIGxvY2tfKiBmdW5jdGlvbnMgYXJlIGlubGluZWQgd2hlbjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjk2OiMgICAtIERFQlVHX1NQSU5MT0NLPW4gYW5kIEdFTkVSSUNfTE9DS0JSRUFLPW4gYW5kIEFSQ0hfSU5MSU5FXypMT0NLPXlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjk3OiNcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjk4OiMgdHJ5bG9ja18qIGZ1bmN0aW9ucyBhcmUgaW5saW5lZCB3aGVuOlxua2VybmVsL0tjb25maWcubG9ja3M6OTk6IyAgIC0gREVCVUdfU1BJTkxPQ0s9biBhbmQgQVJDSF9JTkxJTkVfKkxPQ0s9eVxua2VybmVsL0tjb25maWcubG9ja3M6MTAwOiNcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwMTojIHVubG9jayBhbmQgdW5sb2NrX2lycSBmdW5jdGlvbnMgYXJlIGlubGluZWQgd2hlbjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwMjojICAgLSBERUJVR19TUElOTE9DSz1uIGFuZCBBUkNIX0lOTElORV8qTE9DSz15XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMDM6IyAgb3Jcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwNDojICAgLSBERUJVR19TUElOTE9DSz1uIGFuZCBQUkVFTVBUSU9OPW5cbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwNTojXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMDY6IyB1bmxvY2tfYmggYW5kIHVubG9ja19pcnFyZXN0b3JlIGZ1bmN0aW9ucyBhcmUgaW5saW5lZCB3aGVuOlxua2VybmVsL0tjb25maWcubG9ja3M6MTA3OiMgICAtIERFQlVHX1NQSU5MT0NLPW4gYW5kIEFSQ0hfSU5MSU5FXypMT0NLPXlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwODojXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMDk6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTA6aWYgIURFQlVHX1NQSU5MT0NLXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTE6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTI6Y29uZmlnIElOTElORV9TUElOX1RSWUxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjExMzpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjExNDpcdGRlcGVuZHMgb24gQVJDSF9JTkxJTkVfU1BJTl9UUllMT0NLXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTU6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTY6Y29uZmlnIElOTElORV9TUElOX1RSWUxPQ0tfQkhcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjExNzpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjExODpcdGRlcGVuZHMgb24gQVJDSF9JTkxJTkVfU1BJTl9UUllMT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTk6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMjA6Y29uZmlnIElOTElORV9TUElOX0xPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyMTpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyMjpcdGRlcGVuZHMgb24gIUdFTkVSSUNfTE9DS0JSRUFLIFx1MDAyNlx1MDAyNiBBUkNIX0lOTElORV9TUElOX0xPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyMzpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyNDpjb25maWcgSU5MSU5FX1NQSU5fTE9DS19CSFxua2VybmVsL0tjb25maWcubG9ja3M6MTI1Olx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MTI2Olx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXHUwMDI2XHUwMDI2IEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19CSFxua2VybmVsL0tjb25maWcubG9ja3M6MTI3Olxua2VybmVsL0tjb25maWcubG9ja3M6MTI4OmNvbmZpZyBJTkxJTkVfU1BJTl9MT0NLX0lSUVxua2VybmVsL0tjb25maWcubG9ja3M6MTI5Olx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MTMwOlx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXHUwMDI2XHUwMDI2IEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19JUlFcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzMTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzMjpjb25maWcgSU5MSU5FX1NQSU5fTE9DS19JUlFTQVZFXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzM6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzQ6XHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcdTAwMjZcdTAwMjYgQVJDSF9JTkxJTkVfU1BJTl9MT0NLX0lSUVNBVkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzNTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzNjpjb25maWcgSU5MSU5FX1NQSU5fVU5MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzc6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzg6XHRkZXBlbmRzIG9uIEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzk6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDA6Y29uZmlnIElOTElORV9TUElOX1VOTE9DS19JUlFcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0MTpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0MjpcdGRlcGVuZHMgb24gIVBSRUVNUFRJT04gfHwgQVJDSF9JTkxJTkVfU1BJTl9VTkxPQ0tfSVJRXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDM6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDQ6Y29uZmlnIElOTElORV9TUElOX1VOTE9DS19JUlFSRVNUT1JFXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDU6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDY6XHRkZXBlbmRzIG9uIEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLX0lSUVJFU1RPUkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0Nzpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0ODpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0OTpjb25maWcgSU5MSU5FX1JFQURfVFJZTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6MTUwOlx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MTUxOlx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9SRUFEX1RSWUxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE1Mjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE1Mzpjb25maWcgSU5MSU5FX1JFQURfTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6MTU0Olx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MTU1Olx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXHUwMDI2XHUwMDI2IEFSQ0hfSU5MSU5FX1JFQURfTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6MTU2Olxua2VybmVsL0tjb25maWcubG9ja3M6MTU3OmNvbmZpZyBJTkxJTkVfUkVBRF9MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTg6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTk6XHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcdTAwMjZcdTAwMjYgQVJDSF9JTkxJTkVfUkVBRF9MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjA6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjE6Y29uZmlnIElOTElORV9SRUFEX0xPQ0tfSVJRXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjI6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjM6XHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcdTAwMjZcdTAwMjYgQVJDSF9JTkxJTkVfUkVBRF9MT0NLX0lSUVxua2VybmVsL0tjb25maWcubG9ja3M6MTY0Olxua2VybmVsL0tjb25maWcubG9ja3M6MTY1OmNvbmZpZyBJTkxJTkVfUkVBRF9MT0NLX0lSUVNBVkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE2NjpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE2NzpcdGRlcGVuZHMgb24gIUdFTkVSSUNfTE9DS0JSRUFLIFx1MDAyNlx1MDAyNiBBUkNIX0lOTElORV9SRUFEX0xPQ0tfSVJRU0FWRVxua2VybmVsL0tjb25maWcubG9ja3M6MTY4Olxua2VybmVsL0tjb25maWcubG9ja3M6MTY5OmNvbmZpZyBJTkxJTkVfUkVBRF9VTkxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3MDpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3MTpcdGRlcGVuZHMgb24gIVBSRUVNUFRJT04gfHwgQVJDSF9JTkxJTkVfUkVBRF9VTkxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3Mjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3Mzpjb25maWcgSU5MSU5FX1JFQURfVU5MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzQ6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzU6XHRkZXBlbmRzIG9uIEFSQ0hfSU5MSU5FX1JFQURfVU5MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzY6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzc6Y29uZmlnIElOTElORV9SRUFEX1VOTE9DS19JUlFcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3ODpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3OTpcdGRlcGVuZHMgb24gIVBSRUVNUFRJT04gfHwgQVJDSF9JTkxJTkVfUkVBRF9VTkxPQ0tfSVJRXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODA6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODE6Y29uZmlnIElOTElORV9SRUFEX1VOTE9DS19JUlFSRVNUT1JFXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODI6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODM6XHRkZXBlbmRzIG9uIEFSQ0hfSU5MSU5FX1JFQURfVU5MT0NLX0lSUVJFU1RPUkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4NDpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4NTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4Njpjb25maWcgSU5MSU5FX1dSSVRFX1RSWUxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4NzpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4ODpcdGRlcGVuZHMgb24gQVJDSF9JTkxJTkVfV1JJVEVfVFJZTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6MTg5Olxua2VybmVsL0tjb25maWcubG9ja3M6MTkwOmNvbmZpZyBJTkxJTkVfV1JJVEVfTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6MTkxOlx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MTkyOlx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXHUwMDI2XHUwMDI2IEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5Mzpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5NDpjb25maWcgSU5MSU5FX1dSSVRFX0xPQ0tfQkhcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5NTpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5NjpcdGRlcGVuZHMgb24gIUdFTkVSSUNfTE9DS0JSRUFLIFx1MDAyNlx1MDAyNiBBUkNIX0lOTElORV9XUklURV9MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxOTc6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxOTg6Y29uZmlnIElOTElORV9XUklURV9MT0NLX0lSUVxua2VybmVsL0tjb25maWcubG9ja3M6MTk5Olx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MjAwOlx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXHUwMDI2XHUwMDI2IEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tfSVJRXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMDE6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMDI6Y29uZmlnIElOTElORV9XUklURV9MT0NLX0lSUVNBVkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwMzpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwNDpcdGRlcGVuZHMgb24gIUdFTkVSSUNfTE9DS0JSRUFLIFx1MDAyNlx1MDAyNiBBUkNIX0lOTElORV9XUklURV9MT0NLX0lSUVNBVkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwNTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwNjpjb25maWcgSU5MSU5FX1dSSVRFX1VOTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6MjA3Olx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MjA4Olx0ZGVwZW5kcyBvbiAhUFJFRU1QVElPTiB8fCBBUkNIX0lOTElORV9XUklURV9VTkxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwOTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxMDpjb25maWcgSU5MSU5FX1dSSVRFX1VOTE9DS19CSFxua2VybmVsL0tjb25maWcubG9ja3M6MjExOlx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MjEyOlx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9XUklURV9VTkxPQ0tfQkhcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxMzpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxNDpjb25maWcgSU5MSU5FX1dSSVRFX1VOTE9DS19JUlFcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxNTpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxNjpcdGRlcGVuZHMgb24gIVBSRUVNUFRJT04gfHwgQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0lSUVxua2VybmVsL0tjb25maWcubG9ja3M6MjE3Olxua2VybmVsL0tjb25maWcubG9ja3M6MjE4OmNvbmZpZyBJTkxJTkVfV1JJVEVfVU5MT0NLX0lSUVJFU1RPUkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxOTpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyMDpcdGRlcGVuZHMgb24gQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0lSUVJFU1RPUkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyMTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyMjplbmRpZlxua2VybmVsL0tjb25maWcubG9ja3M6MjIzOlxua2VybmVsL0tjb25maWcubG9ja3M6MjI0OmNvbmZpZyBBUkNIX1NVUFBPUlRTX0FUT01JQ19STVdcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyNTpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyNjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyNzpjb25maWcgTVVURVhfU1BJTl9PTl9PV05FUlxua2VybmVsL0tjb25maWcubG9ja3M6MjI4Olx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MjI5Olx0ZGVwZW5kcyBvbiBTTVAgXHUwMDI2XHUwMDI2IEFSQ0hfU1VQUE9SVFNfQVRPTUlDX1JNV1xua2VybmVsL0tjb25maWcubG9ja3M6MjMwOlxua2VybmVsL0tjb25maWcubG9ja3M6MjMxOmNvbmZpZyBSV1NFTV9TUElOX09OX09XTkVSXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMzI6ICAgICAgIGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIzMzogICAgICAgZGVwZW5kcyBvbiBTTVAgXHUwMDI2XHUwMDI2IEFSQ0hfU1VQUE9SVFNfQVRPTUlDX1JNV1xua2VybmVsL0tjb25maWcubG9ja3M6MjM0Olxua2VybmVsL0tjb25maWcubG9ja3M6MjM1OmNvbmZpZyBMT0NLX1NQSU5fT05fT1dORVJcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIzNjogICAgICAgZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MjM3OiAgICAgICBkZXBlbmRzIG9uIE1VVEVYX1NQSU5fT05fT1dORVIgfHwgUldTRU1fU1BJTl9PTl9PV05FUlxua2VybmVsL0tjb25maWcubG9ja3M6MjM4Olxua2VybmVsL0tjb25maWcubG9ja3M6MjM5OmNvbmZpZyBBUkNIX1VTRV9RVUVVRURfU1BJTkxPQ0tTXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDA6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDE6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDI6Y29uZmlnIFFVRVVFRF9TUElOTE9DS1Ncbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI0MzpcdGRlZl9ib29sIHkgaWYgQVJDSF9VU0VfUVVFVUVEX1NQSU5MT0NLU1xua2VybmVsL0tjb25maWcubG9ja3M6MjQ0Olx0ZGVwZW5kcyBvbiBTTVBcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI0NTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI0Njpjb25maWcgUVVFVUVEX1NQSU5MT0NLU19UUkFDRV9DT05URU5ERURfUkVMRUFTRVxua2VybmVsL0tjb25maWcubG9ja3M6MjQ3Olx0Ym9vbCBcJiMzNDtUcmFjZSBjb250ZW5kZWRfcmVsZWFzZSBvbiBxdWV1ZWQgc3BpbmxvY2tzXCYjMzQ7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAxNjoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzYzOAoJCQkJCQkJb3V0cHV0OiA4OQoJCQkJCQkJdGhvdWdodHM6IDY1OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFJlbGV2YW5jZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBkaWZmIGFuZCBpbW1lZGlhdGVseSBzZWUgdGhhdCBhbGwgdGhlIGNoYW5nZXMgYXJlIHdpdGhpbiB0aGUgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gIGRpcmVjdG9yeS4gVGhhdCYjMzk7cyBhIGtleSBpbml0aWFsIG9ic2VydmF0aW9uLiBMZXQmIzM5O3MgbWFrZSBzdXJlIHdlIGFyZSBub3QgZ29pbmcgdG8gd2FzdGUgYW55IHRpbWUgZnV6emluZyBzb21ldGhpbmcgbm90IHdvcnRoIGZ1enppbmcsIGJhc2VkIG9uIHRoZSBkb2N1bWVudGVkIGNyaXRlcmlhLCB3aGljaCBJIGtub3cgaW50aW1hdGVseS4KCkkmIzM5O20gbWVudGFsbHkgcmVmZXJlbmNpbmcgU2VjdGlvbiAyIG9mIG91ciBpbnRlcm5hbCBndWlkZWxpbmVzIHJlZ2FyZGluZyBmdXp6aW5nIHJlbGV2YW5jZS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7dGhpcyBpcyBsaWtlbHkgYSBuby1nbyBmb3IgZnV6emluZy4mIzM0OyBUaGUgdGV4dCBjbGVhcmx5IHN0YXRlcyB0aGF0IGNoYW5nZXMgaW4gYHVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKSB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXNgIGFyZSBzcGVjaWZpY2FsbHkgZXhlbXB0ZWQgZnJvbSBmdXp6aW5nIGNvbnNpZGVyYXRpb24gaWYgKmFsbCogdGhlIGNoYW5nZXMgZml0IHRoYXQgY3JpdGVyaWEuCgpHaXZlbiB0aGF0IGFsbCB0aGUgZGlmZnMgYXJlIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvYCwgd2hpY2ggaG91c2VzIHVzZXItc3BhY2UgQlBGIHNlbGYtdGVzdHMgYW5kIHJlbGF0ZWQgZmlsZXMsIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGF0IHRoZXNlIGNoYW5nZXMgZmFsbCBzcXVhcmVseSB3aXRoaW4gdGhhdCBleGVtcHRpb24uIE5vbmUgb2YgdGhlIGZpbGVzIG1vZGlmaWVkIGFmZmVjdCB0aGUga2VybmVsIGltYWdlIG9yIGtlcm5lbCBtb2R1bGVzLCBhbmQgaGVuY2UsIGJhc2VkIG9uIHRoZSBkZWZpbml0aW9uOgoKKiAgIGBXb3J0aEZ1enppbmcgPSBmYWxzZWAKKiAgIGBGb2N1c1N5bWJvbHMgPSBbXWAgKG5vIHNwZWNpZmljIGtlcm5lbCBzeW1ib2xzIHRvIHRhcmdldCkKKiAgIGBFbmFibGVDb25maWdzID0gW11gIChubyBrZXJuZWwgY29uZmlndXJhdGlvbnMgbmVlZCB0byBiZSBlbmFibGVkKQoKTXkgcmVhc29uaW5nIGlzIHN0cmFpZ2h0Zm9yd2FyZDogdGhlc2UgYXJlIGNoYW5nZXMgdG8gQlBGICpzZWxmLXRlc3RzKiBhbmQgZG9jdW1lbnRhdGlvbiwgd2hpY2ggbGl2ZSBpbiB1c2Vyc3BhY2UsIGFuZCB0aHVzIGRvbiYjMzk7dCBpbXBhY3QgdGhlIGtlcm5lbCBpdHNlbGYuIFdlIGRvbiYjMzk7dCB3YW50IHRvIGJ1cm4gY3ljbGVzIG9yIHJlc291cmNlcyB3aGVyZSB0aGV5IGFyZSBub3QgbmVlZGVkLiBUaGF0IG1lYW5zIG5vIGZ1enppbmcgaXMgcmVxdWlyZWQuIE5vdywgSSYjMzk7bGwgZ28gYWhlYWQgYW5kIHNldCB0aGUgcmVzdWx0cyBhY2NvcmRpbmdseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAxNjoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIG9ubHkgQlBGIHNlbGZ0ZXN0cyBhbmQgc2VsZnRlc3QgZG9jdW1lbnRhdGlvbiBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvLiBCZWNhdXNlIHRoZXNlIGNoYW5nZXMgb25seSBhZmZlY3QgdXNlcnNwYWNlIHRlc3QgYXJ0aWZhY3RzIGFuZCBkbyBub3QgYWx0ZXIgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMsIHRoZXkgYXJlIG5vdCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBCUEYgc2VsZnRlc3RzIGFuZCBzZWxmdGVzdCBkb2N1bWVudGF0aW9uIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8uIEJlY2F1c2UgdGhlc2UgY2hhbmdlcyBvbmx5IGFmZmVjdCB1c2Vyc3BhY2UgdGVzdCBhcnRpZmFjdHMgYW5kIGRvIG5vdCBhbHRlciB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcywgdGhleSBhcmUgbm90IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDE2OjIwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0xMVQxNjoyMDowNy41NzgzNjM5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE5NTc5NzQ4NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBvbmx5IEJQRiBzZWxmdGVzdHMgYW5kIHNlbGZ0ZXN0IGRvY3VtZW50YXRpb24gaW4gdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmLy4gQmVjYXVzZSB0aGVzZSBjaGFuZ2VzIG9ubHkgYWZmZWN0IHVzZXJzcGFjZSB0ZXN0IGFydGlmYWN0cyBhbmQgZG8gbm90IGFsdGVyIHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLCB0aGV5IGFyZSBub3Qgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDE2OjIwOjA3LjU3ODM3MDc1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTk1NzA3ODExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNzdjYTlkMjkzYWI4MGM4N2M3NTQ4OTIwYzg1M2QxYTdjZjUxYWI0OVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIFNlcCAxMSAxNjoyMDowNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9SRUFETUUucnN0XFxuaW5kZXggMDdjODM0NDMzYjM4OC4uNzVmZjExNDJjMTg1NyAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdFxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9SRUFETUUucnN0XFxuQEAgLTE4Nyw3ICsxODcsNyBAQCBUaGUgc3ltcHRvbSBmb3IgYGBicGZfaXRlci9uZXRsaW5rYGAgbG9va3MgbGlrZVxcbiAgIC4uLlxcbiAgIDE1OiAoYmYpIHIyID0gcjdcXG4gICAxNjogKDBmKSByMiArPSByMVxcbi0gIDsgQlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJXBLICUtM2QgXFxcIiwgcywgcy1cXHUwMDNlc2tfcHJvdG9jb2wpO1xcbisgIDsgQlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJXAgJS0zZCBcXFwiLCBzLCBzLVxcdTAwM2Vza19wcm90b2NvbCk7XFxuICAgMTc6ICg3YikgKih1NjQgKikocjcgKzApID0gcjJcXG4gICBvbmx5IHJlYWQgaXMgc3VwcG9ydGVkXFxuIFxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9zbnByaW50Zi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuY1xcbmluZGV4IDRlNGE4MmQ1NGY3OTkuLmYyY2Q0NDJjNDY4M2MgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3NucHJpbnRmLmNcXG5AQCAtMTYsNyArMTYsNyBAQFxcbiAjZGVmaW5lIE1JTl9TWU1fUkVUICBzaXplb2YoRVhQX1NZTV9PVVQpXFxuIFxcbiAvKiBUaGUgdGhpcmQgc3BlY2lmaWVyLCAlcCwgaXMgYSBoYXNoZWQgcG9pbnRlciB3aGljaCBjaGFuZ2VzIG9uIGV2ZXJ5IHJlYm9vdCAqL1xcbi0jZGVmaW5lIEVYUF9BRERSX09VVCBcXFwiMDAwMDAwMDAwMDAwMDAwMCBmZmZmMDAwMDBhZGQ0ZTU1IFxcXCJcXG4rI2RlZmluZSBFWFBfQUREUl9PVVQgXFxcImZmZmYwMDAwMGFkZDRlNTUgXFxcIlxcbiAjZGVmaW5lIEVYUF9BRERSX1JFVCBzaXplb2YoRVhQX0FERFJfT1VUIFxcXCJ1bmtub3duaGFzaGVkcHRyXFxcIilcXG4gXFxuICNkZWZpbmUgRVhQX1NUUl9PVVQgIFxcXCJzdHIxICAgICAgICAgYSAgYiBjICAgICAgZCBlIGxvbmdzdHJcXFwiXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfbmV0bGluay5jXFxuaW5kZXggMDBiMmNlYWU4MWZiMC4uYjkxMDdkM2FiNjAzOSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfbmV0bGluay5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX25ldGxpbmsuY1xcbkBAIC0yNSwxMiArMjUsMTIgQEAgaW50IGR1bXBfbmV0bGluayhzdHJ1Y3QgYnBmX2l0ZXJfX25ldGxpbmsgKmN0eClcXG4gXFx0XFx0cmV0dXJuIDA7XFxuIFxcbiBcXHRpZiAoY3R4LVxcdTAwM2VtZXRhLVxcdTAwM2VzZXFfbnVtID09IDApXFxuLVxcdFxcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXFxcInNrICAgICAgICAgICAgICAgRXRoIFBpZCAgICAgICAgR3JvdXBzICAgXFxcIlxcbitcXHRcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCJzayBFdGggUGlkICAgICAgICBHcm91cHMgICBcXFwiXFxuIFxcdFxcdFxcdFxcdCAgICBcXFwiUm1lbSAgICAgV21lbSAgICAgRHVtcCAgTG9ja3MgICAgRHJvcHMgICAgXFxcIlxcbiBcXHRcXHRcXHRcXHQgICAgXFxcIklub2RlXFxcXG5cXFwiKTtcXG4gXFxuIFxcdHMgPSBcXHUwMDI2bmxrLVxcdTAwM2VzaztcXG4tXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJXBLICUtM2QgXFxcIiwgcywgcy1cXHUwMDNlc2tfcHJvdG9jb2wpO1xcbitcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIwICAlLTNkIFxcXCIsIHMtXFx1MDAzZXNrX3Byb3RvY29sKTtcXG4gXFxuIFxcdGlmICghbmxrLVxcdTAwM2Vncm91cHMpICB7XFxuIFxcdFxcdGdyb3VwID0gMDtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A0LmNcXG5pbmRleCBiMWU1MDliMjMxY2Q5Li5kMTQ5Y2YwZDA3YmU2IDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A0LmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jXFxuQEAgLTEzMSw4ICsxMzEsNyBAQCBzdGF0aWMgaW50IGR1bXBfdGNwX3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3Bfc29jayAqdHAsXFxuIFxcdFxcdCAgICAgICBpY3NrLVxcdTAwM2VpY3NrX3Byb2Jlc19vdXQsXFxuIFxcdFxcdCAgICAgICBzb2NrX2lfaW5vKHNwKSxcXG4gXFx0XFx0ICAgICAgIHNwLVxcdTAwM2Vza19yZWZjbnQucmVmcy5jb3VudGVyKTtcXG4tXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJXBLICVsdSAlbHUgJXUgJXUgJWRcXFxcblxcXCIsXFxuLVxcdFxcdCAgICAgICB0cCxcXG4rXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiMCAlbHUgJWx1ICV1ICV1ICVkXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgamlmZmllc190b19jbG9ja190KGljc2stXFx1MDAzZWljc2tfcnRvKSxcXG4gXFx0XFx0ICAgICAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLVxcdTAwM2VpY3NrX2Fjay5hdG8pLFxcbiBcXHRcXHQgICAgICAgKGljc2stXFx1MDAzZWljc2tfYWNrLnF1aWNrIFxcdTAwM2NcXHUwMDNjIDEpIHwgaW5ldF9jc2tfaW5fcGluZ3BvbmdfbW9kZShpY3NrKSxcXG5AQCAtMTYxLDEwICsxNjAsMTAgQEAgc3RhdGljIGludCBkdW1wX3R3X3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3BfdGltZXdhaXRfc29jayAqdHR3LFxcbiBcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlNGQ6ICUwOFg6JTA0WCAlMDhYOiUwNFggXFxcIixcXG4gXFx0XFx0ICAgICAgIHNlcV9udW0sIHNyYywgc3JjcCwgZGVzdCwgZGVzdHApO1xcbiBcXG4tXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxcXG5cXFwiLFxcbitcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAwXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgdHctXFx1MDAzZXR3X3N1YnN0YXRlLCAwLCAwLFxcbiBcXHRcXHQgICAgICAgMywgamlmZmllc19kZWx0YV90b19jbG9ja190KGRlbHRhKSwgMCwgMCwgMCwgMCxcXG4tXFx0XFx0ICAgICAgIHR3LVxcdTAwM2V0d19yZWZjbnQucmVmcy5jb3VudGVyLCB0dyk7XFxuK1xcdFxcdCAgICAgICB0dy1cXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlcik7XFxuIFxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbkBAIC0xODUsOSArMTg0LDkgQEAgc3RhdGljIGludCBkdW1wX3JlcV9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwX3JlcXVlc3Rfc29jayAqdHJlcSxcXG4gXFx0XFx0ICAgICAgIHNlcV9udW0sIGlyc2stXFx1MDAzZWlyX2xvY19hZGRyLFxcbiBcXHRcXHQgICAgICAgaXJzay1cXHUwMDNlaXJfbnVtLCBpcnNrLVxcdTAwM2Vpcl9ybXRfYWRkcixcXG4gXFx0XFx0ICAgICAgIGJwZl9udG9ocyhpcnNrLVxcdTAwM2Vpcl9ybXRfcG9ydCkpO1xcbi1cXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAlcEtcXFxcblxcXCIsXFxuK1xcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXFxcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkIDBcXFxcblxcXCIsXFxuIFxcdFxcdCAgICAgICBUQ1BfU1lOX1JFQ1YsIDAsIDAsIDEsIGppZmZpZXNfdG9fY2xvY2tfdCh0dGQpLFxcbi1cXHRcXHQgICAgICAgcmVxLVxcdTAwM2VudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwLCByZXEpO1xcbitcXHRcXHQgICAgICAgcmVxLVxcdTAwM2VudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwKTtcXG4gXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A2LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNi5jXFxuaW5kZXggZGJjNzE2NmFlZTkxZi4uY2Q2NWZhODFmMTIxOSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNi5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDYuY1xcbkBAIC0xMzUsOCArMTM1LDcgQEAgc3RhdGljIGludCBkdW1wX3RjcDZfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcDZfc29jayAqdHAsXFxuIFxcdFxcdCAgICAgICBpY3NrLVxcdTAwM2VpY3NrX3Byb2Jlc19vdXQsXFxuIFxcdFxcdCAgICAgICBzb2NrX2lfaW5vKHNwKSxcXG4gXFx0XFx0ICAgICAgIHNwLVxcdTAwM2Vza19yZWZjbnQucmVmcy5jb3VudGVyKTtcXG4tXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJXBLICVsdSAlbHUgJXUgJXUgJWRcXFxcblxcXCIsXFxuLVxcdFxcdCAgICAgICB0cCxcXG4rXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiMCAlbHUgJWx1ICV1ICV1ICVkXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgamlmZmllc190b19jbG9ja190KGljc2stXFx1MDAzZWljc2tfcnRvKSxcXG4gXFx0XFx0ICAgICAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLVxcdTAwM2VpY3NrX2Fjay5hdG8pLFxcbiBcXHRcXHQgICAgICAgKGljc2stXFx1MDAzZWljc2tfYWNrLnF1aWNrIFxcdTAwM2NcXHUwMDNjIDEpIHwgaW5ldF9jc2tfaW5fcGluZ3BvbmdfbW9kZShpY3NrKSxcXG5AQCAtMTcwLDEwICsxNjksMTAgQEAgc3RhdGljIGludCBkdW1wX3R3X3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3BfdGltZXdhaXRfc29jayAqdHR3LFxcbiBcXHRcXHQgICAgICAgZGVzdC1cXHUwMDNlczZfYWRkcjMyWzBdLCBkZXN0LVxcdTAwM2VzNl9hZGRyMzJbMV0sXFxuIFxcdFxcdCAgICAgICBkZXN0LVxcdTAwM2VzNl9hZGRyMzJbMl0sIGRlc3QtXFx1MDAzZXM2X2FkZHIzMlszXSwgZGVzdHApO1xcbiBcXG4tXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxcXG5cXFwiLFxcbitcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAwXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgdHctXFx1MDAzZXR3X3N1YnN0YXRlLCAwLCAwLFxcbiBcXHRcXHQgICAgICAgMywgamlmZmllc19kZWx0YV90b19jbG9ja190KGRlbHRhKSwgMCwgMCwgMCwgMCxcXG4tXFx0XFx0ICAgICAgIHR3LVxcdTAwM2V0d19yZWZjbnQucmVmcy5jb3VudGVyLCB0dyk7XFxuK1xcdFxcdCAgICAgICB0dy1cXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlcik7XFxuIFxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbkBAIC0yMDEsOSArMjAwLDkgQEAgc3RhdGljIGludCBkdW1wX3JlcV9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwX3JlcXVlc3Rfc29jayAqdHJlcSxcXG4gXFx0XFx0ICAgICAgIGRlc3QtXFx1MDAzZXM2X2FkZHIzMlswXSwgZGVzdC1cXHUwMDNlczZfYWRkcjMyWzFdLFxcbiBcXHRcXHQgICAgICAgZGVzdC1cXHUwMDNlczZfYWRkcjMyWzJdLCBkZXN0LVxcdTAwM2VzNl9hZGRyMzJbM10sXFxuIFxcdFxcdCAgICAgICBicGZfbnRvaHMoaXJzay1cXHUwMDNlaXJfcm10X3BvcnQpKTtcXG4tXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxcXG5cXFwiLFxcbitcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAwXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgVENQX1NZTl9SRUNWLCAwLCAwLCAxLCBqaWZmaWVzX3RvX2Nsb2NrX3QodHRkKSxcXG4tXFx0XFx0ICAgICAgIHJlcS1cXHUwMDNlbnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCwgcmVxKTtcXG4rXFx0XFx0ICAgICAgIHJlcS1cXHUwMDNlbnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCk7XFxuIFxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDQuY1xcbmluZGV4IDIzYjJhYTI2MDRkZTIuLjliNzg5ZjA5ZjE0NjIgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDQuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA0LmNcXG5AQCAtNTcsMTMgKzU3LDEzIEBAIGludCBkdW1wX3VkcDQoc3RydWN0IGJwZl9pdGVyX191ZHAgKmN0eClcXG4gXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJTVkOiAlMDhYOiUwNFggJTA4WDolMDRYIFxcXCIsXFxuIFxcdFxcdCAgICAgICBjdHgtXFx1MDAzZWJ1Y2tldCwgc3JjLCBzcmNwLCBkZXN0LCBkZXN0cCk7XFxuIFxcbi1cXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTV1ICU4ZCAlbHUgJWQgJXBLICV1XFxcXG5cXFwiLFxcbitcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTV1ICU4ZCAlbHUgJWQgJThkICV1XFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgaW5ldC1cXHUwMDNlc2suc2tfc3RhdGUsXFxuIFxcdFxcdCAgICAgICBpbmV0LVxcdTAwM2Vzay5za193bWVtX2FsbG9jLnJlZnMuY291bnRlciAtIDEsXFxuIFxcdFxcdCAgICAgICBycXVldWUsXFxuIFxcdFxcdCAgICAgICAwLCAwTCwgMCwgY3R4LVxcdTAwM2V1aWQsIDAsXFxuIFxcdFxcdCAgICAgICBzb2NrX2lfaW5vKFxcdTAwMjZpbmV0LVxcdTAwM2VzayksXFxuLVxcdFxcdCAgICAgICBpbmV0LVxcdTAwM2Vzay5za19yZWZjbnQucmVmcy5jb3VudGVyLCB1ZHBfc2ssXFxuK1xcdFxcdCAgICAgICBpbmV0LVxcdTAwM2Vzay5za19yZWZjbnQucmVmcy5jb3VudGVyLCAwLFxcbiBcXHRcXHQgICAgICAgdWRwX3NrLVxcdTAwM2Vkcm9wX2NvdW50ZXJzLmRyb3BzMC5jb3VudGVyICtcXG4gXFx0XFx0ICAgICAgIHVkcF9zay1cXHUwMDNlZHJvcF9jb3VudGVycy5kcm9wczEuY291bnRlcik7XFxuIFxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDYuY1xcbmluZGV4IGM0OGIwNWFhMmE0YjIuLjk3NjZlZmY3MDY5ZmYgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDYuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA2LmNcXG5AQCAtNjUsMTMgKzY1LDEzIEBAIGludCBkdW1wX3VkcDYoc3RydWN0IGJwZl9pdGVyX191ZHAgKmN0eClcXG4gXFx0XFx0ICAgICAgIGRlc3QtXFx1MDAzZXM2X2FkZHIzMlswXSwgZGVzdC1cXHUwMDNlczZfYWRkcjMyWzFdLFxcbiBcXHRcXHQgICAgICAgZGVzdC1cXHUwMDNlczZfYWRkcjMyWzJdLCBkZXN0LVxcdTAwM2VzNl9hZGRyMzJbM10sIGRlc3RwKTtcXG4gXFxuLVxcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXFxcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlcEsgJXVcXFxcblxcXCIsXFxuK1xcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXFxcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlOGQgJXVcXFxcblxcXCIsXFxuIFxcdFxcdCAgICAgICBpbmV0LVxcdTAwM2Vzay5za19zdGF0ZSxcXG4gXFx0XFx0ICAgICAgIGluZXQtXFx1MDAzZXNrLnNrX3dtZW1fYWxsb2MucmVmcy5jb3VudGVyIC0gMSxcXG4gXFx0XFx0ICAgICAgIHJxdWV1ZSxcXG4gXFx0XFx0ICAgICAgIDAsIDBMLCAwLCBjdHgtXFx1MDAzZXVpZCwgMCxcXG4gXFx0XFx0ICAgICAgIHNvY2tfaV9pbm8oXFx1MDAyNmluZXQtXFx1MDAzZXNrKSxcXG4tXFx0XFx0ICAgICAgIGluZXQtXFx1MDAzZXNrLnNrX3JlZmNudC5yZWZzLmNvdW50ZXIsIHVkcF9zayxcXG4rXFx0XFx0ICAgICAgIGluZXQtXFx1MDAzZXNrLnNrX3JlZmNudC5yZWZzLmNvdW50ZXIsIDAsXFxuIFxcdFxcdCAgICAgICB1ZHBfc2stXFx1MDAzZWRyb3BfY291bnRlcnMuZHJvcHMwLmNvdW50ZXIgK1xcbiBcXHRcXHQgICAgICAgdWRwX3NrLVxcdTAwM2Vkcm9wX2NvdW50ZXJzLmRyb3BzMS5jb3VudGVyKTtcXG4gXFx0cmV0dXJuIDA7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91bml4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jXFxuaW5kZXggYTI2NTJjOGMzNjE2Zi4uMzY2OTA0Nzg5OTJmOCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VuaXguY1xcbkBAIC00NCw4ICs0NCw3IEBAIGludCBkdW1wX3VuaXgoc3RydWN0IGJwZl9pdGVyX191bml4ICpjdHgpXFxuIFxcdGlmIChzZXFfbnVtID09IDApXFxuIFxcdFxcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXFxcIk51bSAgICAgICAgICAgICAgIFJlZkNvdW50IFByb3RvY29sIEZsYWdzICAgIFR5cGUgU3QgICAgSW5vZGUgUGF0aFxcXFxuXFxcIik7XFxuIFxcbi1cXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlcEs6ICUwOFggJTA4WCAlMDhYICUwNFggJTAyWCAlOGx1XFxcIixcXG4tXFx0XFx0ICAgICAgIHVuaXhfc2ssXFxuK1xcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXFxcIiUwOHU6ICUwOFggJTA4WCAlMDhYICUwNFggJTAyWCAlOGx1XFxcIiwgMCxcXG4gXFx0XFx0ICAgICAgIHNrLVxcdTAwM2Vza19yZWZjbnQucmVmcy5jb3VudGVyLFxcbiBcXHRcXHQgICAgICAgMCxcXG4gXFx0XFx0ICAgICAgIHNrLVxcdTAwM2Vza19zdGF0ZSA9PSBUQ1BfTElTVEVOID8gX19TT19BQ0NFUFRDT04gOiAwLFxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGVzdF9zbnByaW50Zi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3Rlc3Rfc25wcmludGYuY1xcbmluZGV4IDhmZGEwNzU0NDAyMzUuLjQ4YTAwMjVjZjJjYTggMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3Rlc3Rfc25wcmludGYuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90ZXN0X3NucHJpbnRmLmNcXG5AQCAtNTcsOCArNTcsOCBAQCBpbnQgaGFuZGxlcihjb25zdCB2b2lkICpjdHgpXFxuIFxcdHN5bV9yZXQgID0gQlBGX1NOUFJJTlRGKHN5bV9vdXQsICBzaXplb2Yoc3ltX291dCksIFxcXCIlcHMgJXBTICVwQlxcXCIsXFxuIFxcdFxcdFxcdFxcdFxcdTAwMjZzY2hlZHVsZSwgXFx1MDAyNnNjaGVkdWxlLCBcXHUwMDI2c2NoZWR1bGUpO1xcbiBcXHQvKiBLZXJuZWwgcG9pbnRlcnMgKi9cXG4tXFx0YWRkcl9yZXQgPSBCUEZfU05QUklOVEYoYWRkcl9vdXQsIHNpemVvZihhZGRyX291dCksIFxcXCIlcEsgJXB4ICVwXFxcIixcXG4tXFx0XFx0XFx0XFx0MCwgMHhGRkZGMDAwMDBBREQ0RTU1LCAweEZGRkYwMDAwMEFERDRFNTUpO1xcbitcXHRhZGRyX3JldCA9IEJQRl9TTlBSSU5URihhZGRyX291dCwgc2l6ZW9mKGFkZHJfb3V0KSwgXFxcIiVweCAlcFxcXCIsXFxuK1xcdFxcdFxcdFxcdDB4RkZGRjAwMDAwQURENEU1NSwgMHhGRkZGMDAwMDBBREQ0RTU1KTtcXG4gXFx0LyogU3RyaW5ncyBhbmQgc2luZ2xlLWJ5dGUgY2hhcmFjdGVyIGVtYmVkZGluZyAqL1xcbiBcXHRzdHJfcmV0ICA9IEJQRl9TTlBSSU5URihzdHJfb3V0LCBzaXplb2Yoc3RyX291dCksIFxcXCIlcyAlIDljICUrMmMgJS0zYyAlMDRjICUwYyAlKzA1c1xcXCIsXFxuIFxcdFxcdFxcdFxcdHN0cjEsICdhJywgJ2InLCAnYycsICdkJywgJ2UnLCBsb25nc3RyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMTY6MjA6MDkuMTc0Nzc0NTQxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoyMDM2MTU0OTQ4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBCUEYgc2VsZnRlc3RzIGFuZCBzZWxmdGVzdCBkb2N1bWVudGF0aW9uIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8uIEJlY2F1c2UgdGhlc2UgY2hhbmdlcyBvbmx5IGFmZmVjdCB1c2Vyc3BhY2UgdGVzdCBhcnRpZmFjdHMgYW5kIGRvIG5vdCBhbHRlciB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcywgdGhleSBhcmUgbm90IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDc3Y2E5ZDI5M2FiODBjODdjNzU0ODkyMGM4NTNkMWE3Y2Y1MWFiNDlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIFNlcCAxMSAxNjoyMDowNSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9SRUFETUUucnN0IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL1JFQURNRS5yc3RcbmluZGV4IDA3YzgzNDQzM2IzODguLjc1ZmYxMTQyYzE4NTcgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL1JFQURNRS5yc3RcbkBAIC0xODcsNyArMTg3LDcgQEAgVGhlIHN5bXB0b20gZm9yIGBgYnBmX2l0ZXIvbmV0bGlua2BgIGxvb2tzIGxpa2VcbiAgIC4uLlxuICAgMTU6IChiZikgcjIgPSByN1xuICAgMTY6ICgwZikgcjIgKz0gcjFcbi0gIDsgQlBGX1NFUV9QUklOVEYoc2VxLCBcIiVwSyAlLTNkIFwiLCBzLCBzLVx1MDAzZXNrX3Byb3RvY29sKTtcbisgIDsgQlBGX1NFUV9QUklOVEYoc2VxLCBcIiVwICUtM2QgXCIsIHMsIHMtXHUwMDNlc2tfcHJvdG9jb2wpO1xuICAgMTc6ICg3YikgKih1NjQgKikocjcgKzApID0gcjJcbiAgIG9ubHkgcmVhZCBpcyBzdXBwb3J0ZWRcbiBcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9zbnByaW50Zi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuY1xuaW5kZXggNGU0YTgyZDU0Zjc5OS4uZjJjZDQ0MmM0NjgzYyAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3NucHJpbnRmLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3NucHJpbnRmLmNcbkBAIC0xNiw3ICsxNiw3IEBAXG4gI2RlZmluZSBNSU5fU1lNX1JFVCAgc2l6ZW9mKEVYUF9TWU1fT1VUKVxuIFxuIC8qIFRoZSB0aGlyZCBzcGVjaWZpZXIsICVwLCBpcyBhIGhhc2hlZCBwb2ludGVyIHdoaWNoIGNoYW5nZXMgb24gZXZlcnkgcmVib290ICovXG4tI2RlZmluZSBFWFBfQUREUl9PVVQgXCIwMDAwMDAwMDAwMDAwMDAwIGZmZmYwMDAwMGFkZDRlNTUgXCJcbisjZGVmaW5lIEVYUF9BRERSX09VVCBcImZmZmYwMDAwMGFkZDRlNTUgXCJcbiAjZGVmaW5lIEVYUF9BRERSX1JFVCBzaXplb2YoRVhQX0FERFJfT1VUIFwidW5rbm93bmhhc2hlZHB0clwiKVxuIFxuICNkZWZpbmUgRVhQX1NUUl9PVVQgIFwic3RyMSAgICAgICAgIGEgIGIgYyAgICAgIGQgZSBsb25nc3RyXCJcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfbmV0bGluay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX25ldGxpbmsuY1xuaW5kZXggMDBiMmNlYWU4MWZiMC4uYjkxMDdkM2FiNjAzOSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmNcbkBAIC0yNSwxMiArMjUsMTIgQEAgaW50IGR1bXBfbmV0bGluayhzdHJ1Y3QgYnBmX2l0ZXJfX25ldGxpbmsgKmN0eClcbiBcdFx0cmV0dXJuIDA7XG4gXG4gXHRpZiAoY3R4LVx1MDAzZW1ldGEtXHUwMDNlc2VxX251bSA9PSAwKVxuLVx0XHRCUEZfU0VRX1BSSU5URihzZXEsIFwic2sgICAgICAgICAgICAgICBFdGggUGlkICAgICAgICBHcm91cHMgICBcIlxuK1x0XHRCUEZfU0VRX1BSSU5URihzZXEsIFwic2sgRXRoIFBpZCAgICAgICAgR3JvdXBzICAgXCJcbiBcdFx0XHRcdCAgICBcIlJtZW0gICAgIFdtZW0gICAgIER1bXAgIExvY2tzICAgIERyb3BzICAgIFwiXG4gXHRcdFx0XHQgICAgXCJJbm9kZVxcblwiKTtcbiBcbiBcdHMgPSBcdTAwMjZubGstXHUwMDNlc2s7XG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJXBLICUtM2QgXCIsIHMsIHMtXHUwMDNlc2tfcHJvdG9jb2wpO1xuK1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcIjAgICUtM2QgXCIsIHMtXHUwMDNlc2tfcHJvdG9jb2wpO1xuIFxuIFx0aWYgKCFubGstXHUwMDNlZ3JvdXBzKSAge1xuIFx0XHRncm91cCA9IDA7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A0LmNcbmluZGV4IGIxZTUwOWIyMzFjZDkuLmQxNDljZjBkMDdiZTYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jXG5AQCAtMTMxLDggKzEzMSw3IEBAIHN0YXRpYyBpbnQgZHVtcF90Y3Bfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcF9zb2NrICp0cCxcbiBcdFx0ICAgICAgIGljc2stXHUwMDNlaWNza19wcm9iZXNfb3V0LFxuIFx0XHQgICAgICAgc29ja19pX2lubyhzcCksXG4gXHRcdCAgICAgICBzcC1cdTAwM2Vza19yZWZjbnQucmVmcy5jb3VudGVyKTtcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCIlcEsgJWx1ICVsdSAldSAldSAlZFxcblwiLFxuLVx0XHQgICAgICAgdHAsXG4rXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiMCAlbHUgJWx1ICV1ICV1ICVkXFxuXCIsXG4gXHRcdCAgICAgICBqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay1cdTAwM2VpY3NrX3J0byksXG4gXHRcdCAgICAgICBqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay1cdTAwM2VpY3NrX2Fjay5hdG8pLFxuIFx0XHQgICAgICAgKGljc2stXHUwMDNlaWNza19hY2sucXVpY2sgXHUwMDNjXHUwMDNjIDEpIHwgaW5ldF9jc2tfaW5fcGluZ3BvbmdfbW9kZShpY3NrKSxcbkBAIC0xNjEsMTAgKzE2MCwxMCBAQCBzdGF0aWMgaW50IGR1bXBfdHdfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcF90aW1ld2FpdF9zb2NrICp0dHcsXG4gXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJTRkOiAlMDhYOiUwNFggJTA4WDolMDRYIFwiLFxuIFx0XHQgICAgICAgc2VxX251bSwgc3JjLCBzcmNwLCBkZXN0LCBkZXN0cCk7XG4gXG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxuXCIsXG4rXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxcblwiLFxuIFx0XHQgICAgICAgdHctXHUwMDNldHdfc3Vic3RhdGUsIDAsIDAsXG4gXHRcdCAgICAgICAzLCBqaWZmaWVzX2RlbHRhX3RvX2Nsb2NrX3QoZGVsdGEpLCAwLCAwLCAwLCAwLFxuLVx0XHQgICAgICAgdHctXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlciwgdHcpO1xuK1x0XHQgICAgICAgdHctXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlcik7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG5AQCAtMTg1LDkgKzE4NCw5IEBAIHN0YXRpYyBpbnQgZHVtcF9yZXFfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcF9yZXF1ZXN0X3NvY2sgKnRyZXEsXG4gXHRcdCAgICAgICBzZXFfbnVtLCBpcnNrLVx1MDAzZWlyX2xvY19hZGRyLFxuIFx0XHQgICAgICAgaXJzay1cdTAwM2Vpcl9udW0sIGlyc2stXHUwMDNlaXJfcm10X2FkZHIsXG4gXHRcdCAgICAgICBicGZfbnRvaHMoaXJzay1cdTAwM2Vpcl9ybXRfcG9ydCkpO1xuLVx0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkICVwS1xcblwiLFxuK1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkIDBcXG5cIixcbiBcdFx0ICAgICAgIFRDUF9TWU5fUkVDViwgMCwgMCwgMSwgamlmZmllc190b19jbG9ja190KHR0ZCksXG4tXHRcdCAgICAgICByZXEtXHUwMDNlbnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCwgcmVxKTtcbitcdFx0ICAgICAgIHJlcS1cdTAwM2VudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDYuY1xuaW5kZXggZGJjNzE2NmFlZTkxZi4uY2Q2NWZhODFmMTIxOSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A2LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A2LmNcbkBAIC0xMzUsOCArMTM1LDcgQEAgc3RhdGljIGludCBkdW1wX3RjcDZfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcDZfc29jayAqdHAsXG4gXHRcdCAgICAgICBpY3NrLVx1MDAzZWljc2tfcHJvYmVzX291dCxcbiBcdFx0ICAgICAgIHNvY2tfaV9pbm8oc3ApLFxuIFx0XHQgICAgICAgc3AtXHUwMDNlc2tfcmVmY250LnJlZnMuY291bnRlcik7XG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJXBLICVsdSAlbHUgJXUgJXUgJWRcXG5cIixcbi1cdFx0ICAgICAgIHRwLFxuK1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcIjAgJWx1ICVsdSAldSAldSAlZFxcblwiLFxuIFx0XHQgICAgICAgamlmZmllc190b19jbG9ja190KGljc2stXHUwMDNlaWNza19ydG8pLFxuIFx0XHQgICAgICAgamlmZmllc190b19jbG9ja190KGljc2stXHUwMDNlaWNza19hY2suYXRvKSxcbiBcdFx0ICAgICAgIChpY3NrLVx1MDAzZWljc2tfYWNrLnF1aWNrIFx1MDAzY1x1MDAzYyAxKSB8IGluZXRfY3NrX2luX3Bpbmdwb25nX21vZGUoaWNzayksXG5AQCAtMTcwLDEwICsxNjksMTAgQEAgc3RhdGljIGludCBkdW1wX3R3X3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3BfdGltZXdhaXRfc29jayAqdHR3LFxuIFx0XHQgICAgICAgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMF0sIGRlc3QtXHUwMDNlczZfYWRkcjMyWzFdLFxuIFx0XHQgICAgICAgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMl0sIGRlc3QtXHUwMDNlczZfYWRkcjMyWzNdLCBkZXN0cCk7XG4gXG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxuXCIsXG4rXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxcblwiLFxuIFx0XHQgICAgICAgdHctXHUwMDNldHdfc3Vic3RhdGUsIDAsIDAsXG4gXHRcdCAgICAgICAzLCBqaWZmaWVzX2RlbHRhX3RvX2Nsb2NrX3QoZGVsdGEpLCAwLCAwLCAwLCAwLFxuLVx0XHQgICAgICAgdHctXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlciwgdHcpO1xuK1x0XHQgICAgICAgdHctXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlcik7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG5AQCAtMjAxLDkgKzIwMCw5IEBAIHN0YXRpYyBpbnQgZHVtcF9yZXFfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcF9yZXF1ZXN0X3NvY2sgKnRyZXEsXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlswXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMV0sXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlsyXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbM10sXG4gXHRcdCAgICAgICBicGZfbnRvaHMoaXJzay1cdTAwM2Vpcl9ybXRfcG9ydCkpO1xuLVx0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkICVwS1xcblwiLFxuK1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkIDBcXG5cIixcbiBcdFx0ICAgICAgIFRDUF9TWU5fUkVDViwgMCwgMCwgMSwgamlmZmllc190b19jbG9ja190KHR0ZCksXG4tXHRcdCAgICAgICByZXEtXHUwMDNlbnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCwgcmVxKTtcbitcdFx0ICAgICAgIHJlcS1cdTAwM2VudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDQuY1xuaW5kZXggMjNiMmFhMjYwNGRlMi4uOWI3ODlmMDlmMTQ2MiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA0LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA0LmNcbkBAIC01NywxMyArNTcsMTMgQEAgaW50IGR1bXBfdWRwNChzdHJ1Y3QgYnBmX2l0ZXJfX3VkcCAqY3R4KVxuIFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiU1ZDogJTA4WDolMDRYICUwOFg6JTA0WCBcIixcbiBcdFx0ICAgICAgIGN0eC1cdTAwM2VidWNrZXQsIHNyYywgc3JjcCwgZGVzdCwgZGVzdHApO1xuIFxuLVx0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlcEsgJXVcXG5cIixcbitcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTV1ICU4ZCAlbHUgJWQgJThkICV1XFxuXCIsXG4gXHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3N0YXRlLFxuIFx0XHQgICAgICAgaW5ldC1cdTAwM2Vzay5za193bWVtX2FsbG9jLnJlZnMuY291bnRlciAtIDEsXG4gXHRcdCAgICAgICBycXVldWUsXG4gXHRcdCAgICAgICAwLCAwTCwgMCwgY3R4LVx1MDAzZXVpZCwgMCxcbiBcdFx0ICAgICAgIHNvY2tfaV9pbm8oXHUwMDI2aW5ldC1cdTAwM2VzayksXG4tXHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3JlZmNudC5yZWZzLmNvdW50ZXIsIHVkcF9zayxcbitcdFx0ICAgICAgIGluZXQtXHUwMDNlc2suc2tfcmVmY250LnJlZnMuY291bnRlciwgMCxcbiBcdFx0ICAgICAgIHVkcF9zay1cdTAwM2Vkcm9wX2NvdW50ZXJzLmRyb3BzMC5jb3VudGVyICtcbiBcdFx0ICAgICAgIHVkcF9zay1cdTAwM2Vkcm9wX2NvdW50ZXJzLmRyb3BzMS5jb3VudGVyKTtcbiBcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDYuY1xuaW5kZXggYzQ4YjA1YWEyYTRiMi4uOTc2NmVmZjcwNjlmZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA2LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA2LmNcbkBAIC02NSwxMyArNjUsMTMgQEAgaW50IGR1bXBfdWRwNihzdHJ1Y3QgYnBmX2l0ZXJfX3VkcCAqY3R4KVxuIFx0XHQgICAgICAgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMF0sIGRlc3QtXHUwMDNlczZfYWRkcjMyWzFdLFxuIFx0XHQgICAgICAgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMl0sIGRlc3QtXHUwMDNlczZfYWRkcjMyWzNdLCBkZXN0cCk7XG4gXG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1dSAlOGQgJWx1ICVkICVwSyAldVxcblwiLFxuK1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlOGQgJXVcXG5cIixcbiBcdFx0ICAgICAgIGluZXQtXHUwMDNlc2suc2tfc3RhdGUsXG4gXHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3dtZW1fYWxsb2MucmVmcy5jb3VudGVyIC0gMSxcbiBcdFx0ICAgICAgIHJxdWV1ZSxcbiBcdFx0ICAgICAgIDAsIDBMLCAwLCBjdHgtXHUwMDNldWlkLCAwLFxuIFx0XHQgICAgICAgc29ja19pX2lubyhcdTAwMjZpbmV0LVx1MDAzZXNrKSxcbi1cdFx0ICAgICAgIGluZXQtXHUwMDNlc2suc2tfcmVmY250LnJlZnMuY291bnRlciwgdWRwX3NrLFxuK1x0XHQgICAgICAgaW5ldC1cdTAwM2Vzay5za19yZWZjbnQucmVmcy5jb3VudGVyLCAwLFxuIFx0XHQgICAgICAgdWRwX3NrLVx1MDAzZWRyb3BfY291bnRlcnMuZHJvcHMwLmNvdW50ZXIgK1xuIFx0XHQgICAgICAgdWRwX3NrLVx1MDAzZWRyb3BfY291bnRlcnMuZHJvcHMxLmNvdW50ZXIpO1xuIFx0cmV0dXJuIDA7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VuaXguYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91bml4LmNcbmluZGV4IGEyNjUyYzhjMzYxNmYuLjM2NjkwNDc4OTkyZjggMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jXG5AQCAtNDQsOCArNDQsNyBAQCBpbnQgZHVtcF91bml4KHN0cnVjdCBicGZfaXRlcl9fdW5peCAqY3R4KVxuIFx0aWYgKHNlcV9udW0gPT0gMClcbiBcdFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcIk51bSAgICAgICAgICAgICAgIFJlZkNvdW50IFByb3RvY29sIEZsYWdzICAgIFR5cGUgU3QgICAgSW5vZGUgUGF0aFxcblwiKTtcbiBcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCIlcEs6ICUwOFggJTA4WCAlMDhYICUwNFggJTAyWCAlOGx1XCIsXG4tXHRcdCAgICAgICB1bml4X3NrLFxuK1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwOHU6ICUwOFggJTA4WCAlMDhYICUwNFggJTAyWCAlOGx1XCIsIDAsXG4gXHRcdCAgICAgICBzay1cdTAwM2Vza19yZWZjbnQucmVmcy5jb3VudGVyLFxuIFx0XHQgICAgICAgMCxcbiBcdFx0ICAgICAgIHNrLVx1MDAzZXNrX3N0YXRlID09IFRDUF9MSVNURU4gPyBfX1NPX0FDQ0VQVENPTiA6IDAsXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3Rlc3Rfc25wcmludGYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90ZXN0X3NucHJpbnRmLmNcbmluZGV4IDhmZGEwNzU0NDAyMzUuLjQ4YTAwMjVjZjJjYTggMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGVzdF9zbnByaW50Zi5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGVzdF9zbnByaW50Zi5jXG5AQCAtNTcsOCArNTcsOCBAQCBpbnQgaGFuZGxlcihjb25zdCB2b2lkICpjdHgpXG4gXHRzeW1fcmV0ICA9IEJQRl9TTlBSSU5URihzeW1fb3V0LCAgc2l6ZW9mKHN5bV9vdXQpLCBcIiVwcyAlcFMgJXBCXCIsXG4gXHRcdFx0XHRcdTAwMjZzY2hlZHVsZSwgXHUwMDI2c2NoZWR1bGUsIFx1MDAyNnNjaGVkdWxlKTtcbiBcdC8qIEtlcm5lbCBwb2ludGVycyAqL1xuLVx0YWRkcl9yZXQgPSBCUEZfU05QUklOVEYoYWRkcl9vdXQsIHNpemVvZihhZGRyX291dCksIFwiJXBLICVweCAlcFwiLFxuLVx0XHRcdFx0MCwgMHhGRkZGMDAwMDBBREQ0RTU1LCAweEZGRkYwMDAwMEFERDRFNTUpO1xuK1x0YWRkcl9yZXQgPSBCUEZfU05QUklOVEYoYWRkcl9vdXQsIHNpemVvZihhZGRyX291dCksIFwiJXB4ICVwXCIsXG4rXHRcdFx0XHQweEZGRkYwMDAwMEFERDRFNTUsIDB4RkZGRjAwMDAwQURENEU1NSk7XG4gXHQvKiBTdHJpbmdzIGFuZCBzaW5nbGUtYnl0ZSBjaGFyYWN0ZXIgZW1iZWRkaW5nICovXG4gXHRzdHJfcmV0ICA9IEJQRl9TTlBSSU5URihzdHJfb3V0LCBzaXplb2Yoc3RyX291dCksIFwiJXMgJSA5YyAlKzJjICUtM2MgJTA0YyAlMGMgJSswNXNcIixcbiBcdFx0XHRcdHN0cjEsICdhJywgJ2InLCAnYycsICdkJywgJ2UnLCBsb25nc3RyKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDE2OjIwOjA5LjE3NDc3NjIyMVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjgxMTc5NTUwODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nPUZhbHNlIERlY2lzaW9uKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSBuZWVkIHRvIG1ldGljdWxvdXNseSBleGFtaW5lIHRoZSBkaWZmLiBSaWdodCBhd2F5LCBJIHNlZSB0aGUgY2hhbmdlcyBhcmUgY29uZmluZWQgdG8gdGhlIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvYCBkaXJlY3RvcnkuIFRoZSBzcGVjaWZpYyBmaWxlcyBtb2RpZmllZCBhcmUgYFJFQURNRS5yc3RgLCBgc25wcmludGYuY2AsIGFuZCBhIHNlcmllcyBvZiBwcm9ncmFtcyByZWxhdGVkIHRvIGBicGZfaXRlcmAgZm9yIHZhcmlvdXMgbmV0d29yayBwcm90b2NvbHMgKFRDUDQsIFRDUDYsIFVEUDQsIFVEUDYsIFVuaXggc29ja2V0cyksIGFsb25nIHdpdGggYSBgdGVzdF9zbnByaW50Zi5jYC5cblxuTm93LCBJJ20gZ29pbmcgdG8gYXBwbHkgdGhlIG5lZ2F0aXZlIGNyaXRlcmlhIGZyb20gU2VjdGlvbiAyLiBUaGUgY3JpdGljYWwgcXVlc3Rpb246IGRvIHRoZXNlIGNoYW5nZXMgZmFsbCBpbnRvIHRoZSBcIk5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXNcIiBjYXRlZ29yeT8gU3BlY2lmaWNhbGx5LCBhcmUgdGhlc2UgbW9kaWZpY2F0aW9ucyB0byB1c2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIHRoYXQgKmRvbid0KiBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZT9cblxuTG9va2luZyBhdCB0aGUgY29udGV4dCwgdGhpcyBpcyBwcmV0dHkgY2xlYXIgY3V0LiBUaGUgY2hhbmdlcyBhcmUgYWxsIHdpdGhpbiB0aGUgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gIGRpcmVjdG9yeS4gVGhlc2UgYXJlIHVzZXItc3BhY2UgQlBGIHNlbGYtdGVzdHMuIFRoZXkgYXJlIG5vdCB0b3VjaGluZyBhbnkga2VybmVsIGNvZGUsIHZtbGludXgsIG9yIGtlcm5lbCBtb2R1bGVzLlxuXG5JJ2xsIGRvIGEgZmluYWwgcXVpY2sgY2hlY2sgdG8gZW5zdXJlIHRoZXJlIGFyZSBubyBzdXJwcmlzZXMgZWxzZXdoZXJlIGluIHRoZSBIRUFEIGNvbW1pdC4gSG93ZXZlciwgYmFzZWQgb24gdGhlIGlkZW50aWZpZWQgZmlsZXMsIGl0J3MgYSBzdHJhaWdodGZvcndhcmQgZGVjaXNpb24uICoqV29ydGhGdXp6aW5nID0gRmFsc2UuKipcblxuXG4iLCJJbnB1dFRva2VucyI6NzIyMywiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQzOCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDE2OjIwOjE3LjI5MjczNzc2M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzU1MzA5ODIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiLipcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwia2VybmVsXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTgwNDIxIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5rZXJuZWwvLmdpdGlnbm9yZToxOiMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmtlcm5lbC8uZ2l0aWdub3JlOjI6L2NvbmZpZ19kYXRhXFxua2VybmVsLy5naXRpZ25vcmU6Mzova2hlYWRlcnMubWQ1XFxua2VybmVsLy5naXRpZ25vcmU6NDova2hlYWRlcnMtb2JqbGlzdFxcbmtlcm5lbC8uZ2l0aWdub3JlOjU6L2toZWFkZXJzLXNyY2xpc3RcXG4tLVxcbmtlcm5lbC9LY29uZmlnLmZyZWV6ZXI6MTojIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5rZXJuZWwvS2NvbmZpZy5mcmVlemVyOjI6Y29uZmlnIEZSRUVaRVJcXG5rZXJuZWwvS2NvbmZpZy5mcmVlemVyOjM6XFx0ZGVmX2Jvb2wgUE1fU0xFRVAgfHwgQ0dST1VQX0ZSRUVaRVJcXG4tLVxcbmtlcm5lbC9LY29uZmlnLmh6OjE6IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxua2VybmVsL0tjb25maWcuaHo6MjojXFxua2VybmVsL0tjb25maWcuaHo6MzojIFRpbWVyIEludGVycnVwdCBGcmVxdWVuY3kgQ29uZmlndXJhdGlvblxcbmtlcm5lbC9LY29uZmlnLmh6OjQ6I1xcbmtlcm5lbC9LY29uZmlnLmh6OjU6XFxua2VybmVsL0tjb25maWcuaHo6NjpjaG9pY2VcXG5rZXJuZWwvS2NvbmZpZy5oejo3OlxcdHByb21wdCBcXFwiVGltZXIgZnJlcXVlbmN5XFxcIlxcbmtlcm5lbC9LY29uZmlnLmh6Ojg6XFx0ZGVmYXVsdCBIWl8yNTBcXG5rZXJuZWwvS2NvbmZpZy5oejo5OlxcdGhlbHBcXG5rZXJuZWwvS2NvbmZpZy5oejoxMDpcXHQgQWxsb3dzIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSB0aW1lciBmcmVxdWVuY3kuIEl0IGlzIGN1c3RvbWFyeVxcbmtlcm5lbC9LY29uZmlnLmh6OjExOlxcdCB0byBoYXZlIHRoZSB0aW1lciBpbnRlcnJ1cHQgcnVuIGF0IDEwMDAgSHogYnV0IDEwMCBIeiBtYXkgYmUgbW9yZVxcbmtlcm5lbC9LY29uZmlnLmh6OjEyOlxcdCBiZW5lZmljaWFsIGZvciBzZXJ2ZXJzIGFuZCBOVU1BIHN5c3RlbXMgdGhhdCBkbyBub3QgbmVlZCB0byBoYXZlXFxua2VybmVsL0tjb25maWcuaHo6MTM6XFx0IGEgZmFzdCByZXNwb25zZSBmb3IgdXNlciBpbnRlcmFjdGlvbiBhbmQgdGhhdCBtYXkgZXhwZXJpZW5jZSBidXNcXG5rZXJuZWwvS2NvbmZpZy5oejoxNDpcXHQgY29udGVudGlvbiBhbmQgY2FjaGVsaW5lIGJvdW5jZXMgYXMgYSByZXN1bHQgb2YgdGltZXIgaW50ZXJydXB0cy5cXG5rZXJuZWwvS2NvbmZpZy5oejoxNTpcXHQgTm90ZSB0aGF0IHRoZSB0aW1lciBpbnRlcnJ1cHQgb2NjdXJzIG9uIGVhY2ggcHJvY2Vzc29yIGluIGFuIFNNUFxcbmtlcm5lbC9LY29uZmlnLmh6OjE2OlxcdCBlbnZpcm9ubWVudCBsZWFkaW5nIHRvIE5SX0NQVVMgKiBIWiBudW1iZXIgb2YgdGltZXIgaW50ZXJydXB0c1xcbmtlcm5lbC9LY29uZmlnLmh6OjE3OlxcdCBwZXIgc2Vjb25kLlxcbmtlcm5lbC9LY29uZmlnLmh6OjE4Olxcbmtlcm5lbC9LY29uZmlnLmh6OjE5Olxcbmtlcm5lbC9LY29uZmlnLmh6OjIwOlxcdGNvbmZpZyBIWl8xMDBcXG5rZXJuZWwvS2NvbmZpZy5oejoyMTpcXHRcXHRib29sIFxcXCIxMDAgSFpcXFwiXFxua2VybmVsL0tjb25maWcuaHo6MjI6XFx0aGVscFxcbmtlcm5lbC9LY29uZmlnLmh6OjIzOlxcdCAgMTAwIEh6IGlzIGEgdHlwaWNhbCBjaG9pY2UgZm9yIHNlcnZlcnMsIFNNUCBhbmQgTlVNQSBzeXN0ZW1zXFxua2VybmVsL0tjb25maWcuaHo6MjQ6XFx0ICB3aXRoIGxvdHMgb2YgcHJvY2Vzc29ycyB0aGF0IG1heSBzaG93IHJlZHVjZWQgcGVyZm9ybWFuY2UgaWZcXG5rZXJuZWwvS2NvbmZpZy5oejoyNTpcXHQgIHRvbyBtYW55IHRpbWVyIGludGVycnVwdHMgYXJlIG9jY3VycmluZy5cXG5rZXJuZWwvS2NvbmZpZy5oejoyNjpcXG5rZXJuZWwvS2NvbmZpZy5oejoyNzpcXHRjb25maWcgSFpfMjUwXFxua2VybmVsL0tjb25maWcuaHo6Mjg6XFx0XFx0Ym9vbCBcXFwiMjUwIEhaXFxcIlxcbmtlcm5lbC9LY29uZmlnLmh6OjI5OlxcdGhlbHBcXG5rZXJuZWwvS2NvbmZpZy5oejozMDpcXHQgMjUwIEh6IGlzIGEgZ29vZCBjb21wcm9taXNlIGNob2ljZSBhbGxvd2luZyBzZXJ2ZXIgcGVyZm9ybWFuY2VcXG5rZXJuZWwvS2NvbmZpZy5oejozMTpcXHQgd2hpbGUgYWxzbyBzaG93aW5nIGdvb2QgaW50ZXJhY3RpdmUgcmVzcG9uc2l2ZW5lc3MgZXZlblxcbmtlcm5lbC9LY29uZmlnLmh6OjMyOlxcdCBvbiBTTVAgYW5kIE5VTUEgc3lzdGVtcy4gSWYgeW91IGFyZSBnb2luZyB0byBiZSB1c2luZyBOVFNDIHZpZGVvXFxua2VybmVsL0tjb25maWcuaHo6MzM6XFx0IG9yIG11bHRpbWVkaWEsIHNlbGVjdCAzMDBIeiBpbnN0ZWFkLlxcbmtlcm5lbC9LY29uZmlnLmh6OjM0Olxcbmtlcm5lbC9LY29uZmlnLmh6OjM1OlxcdGNvbmZpZyBIWl8zMDBcXG5rZXJuZWwvS2NvbmZpZy5oejozNjpcXHRcXHRib29sIFxcXCIzMDAgSFpcXFwiXFxua2VybmVsL0tjb25maWcuaHo6Mzc6XFx0aGVscFxcbmtlcm5lbC9LY29uZmlnLmh6OjM4OlxcdCAzMDAgSHogaXMgYSBnb29kIGNvbXByb21pc2UgY2hvaWNlIGFsbG93aW5nIHNlcnZlciBwZXJmb3JtYW5jZVxcbmtlcm5lbC9LY29uZmlnLmh6OjM5OlxcdCB3aGlsZSBhbHNvIHNob3dpbmcgZ29vZCBpbnRlcmFjdGl2ZSByZXNwb25zaXZlbmVzcyBldmVuXFxua2VybmVsL0tjb25maWcuaHo6NDA6XFx0IG9uIFNNUCBhbmQgTlVNQSBzeXN0ZW1zIGFuZCBleGFjdGx5IGRpdmlkaW5nIGJ5IGJvdGggUEFMIGFuZFxcbmtlcm5lbC9LY29uZmlnLmh6OjQxOlxcdCBOVFNDIGZyYW1lIHJhdGVzIGZvciB2aWRlbyBhbmQgbXVsdGltZWRpYSB3b3JrLlxcbmtlcm5lbC9LY29uZmlnLmh6OjQyOlxcbmtlcm5lbC9LY29uZmlnLmh6OjQzOlxcdGNvbmZpZyBIWl8xMDAwXFxua2VybmVsL0tjb25maWcuaHo6NDQ6XFx0XFx0Ym9vbCBcXFwiMTAwMCBIWlxcXCJcXG5rZXJuZWwvS2NvbmZpZy5oejo0NTpcXHRoZWxwXFxua2VybmVsL0tjb25maWcuaHo6NDY6XFx0IDEwMDAgSHogaXMgdGhlIHByZWZlcnJlZCBjaG9pY2UgZm9yIGRlc2t0b3Agc3lzdGVtcyBhbmQgb3RoZXJcXG5rZXJuZWwvS2NvbmZpZy5oejo0NzpcXHQgc3lzdGVtcyByZXF1aXJpbmcgZmFzdCBpbnRlcmFjdGl2ZSByZXNwb25zZXMgdG8gZXZlbnRzLlxcbmtlcm5lbC9LY29uZmlnLmh6OjQ4Olxcbmtlcm5lbC9LY29uZmlnLmh6OjQ5OmVuZGNob2ljZVxcbmtlcm5lbC9LY29uZmlnLmh6OjUwOlxcbmtlcm5lbC9LY29uZmlnLmh6OjUxOmNvbmZpZyBIWlxcbmtlcm5lbC9LY29uZmlnLmh6OjUyOlxcdGludFxcbmtlcm5lbC9LY29uZmlnLmh6OjUzOlxcdGRlZmF1bHQgMTAwIGlmIEhaXzEwMFxcbmtlcm5lbC9LY29uZmlnLmh6OjU0OlxcdGRlZmF1bHQgMjUwIGlmIEhaXzI1MFxcbmtlcm5lbC9LY29uZmlnLmh6OjU1OlxcdGRlZmF1bHQgMzAwIGlmIEhaXzMwMFxcbmtlcm5lbC9LY29uZmlnLmh6OjU2OlxcdGRlZmF1bHQgMTAwMCBpZiBIWl8xMDAwXFxua2VybmVsL0tjb25maWcuaHo6NTc6XFxua2VybmVsL0tjb25maWcuaHo6NTg6Y29uZmlnIFNDSEVEX0hSVElDS1xcbmtlcm5lbC9LY29uZmlnLmh6OjU5OlxcdGRlZl9ib29sIEhJR0hfUkVTX1RJTUVSU1xcbi0tXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTojIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyOlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjM6bWVudSBcXFwiS2V4ZWMgYW5kIGNyYXNoIGZlYXR1cmVzXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQ6XFxua2VybmVsL0tjb25maWcua2V4ZWM6NTpjb25maWcgQ1JBU0hfUkVTRVJWRVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjY6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjc6XFxua2VybmVsL0tjb25maWcua2V4ZWM6ODpjb25maWcgVk1DT1JFX0lORk9cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo5OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMDpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTpjb25maWcgS0VYRUNfQ09SRVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyOlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNDpjb25maWcgS0VYRUNfRUxGXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTU6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2Olxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE3OmNvbmZpZyBIQVZFX0lNQV9LRVhFQ1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE4OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxOTpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyMDpjb25maWcgS0VYRUNcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyMTpcXHRib29sIFxcXCJFbmFibGUga2V4ZWMgc3lzdGVtIGNhbGxcXFwiXFxua2VybmVsL0tjb25maWcua2V4ZWM6MjI6XFx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDXFxua2VybmVsL0tjb25maWcua2V4ZWM6MjM6XFx0c2VsZWN0IEtFWEVDX0NPUkVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyNDpcXHRoZWxwXFxua2VybmVsL0tjb25maWcua2V4ZWM6MjU6XFx0ICBrZXhlYyBpcyBhIHN5c3RlbSBjYWxsIHRoYXQgaW1wbGVtZW50cyB0aGUgYWJpbGl0eSB0byBzaHV0ZG93biB5b3VyXFxua2VybmVsL0tjb25maWcua2V4ZWM6MjY6XFx0ICBjdXJyZW50IGtlcm5lbCwgYW5kIHRvIHN0YXJ0IGFub3RoZXIga2VybmVsLiBJdCBpcyBsaWtlIGEgcmVib290XFxua2VybmVsL0tjb25maWcua2V4ZWM6Mjc6XFx0ICBidXQgaXQgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIHN5c3RlbSBmaXJtd2FyZS4gQW5kIGxpa2UgYSByZWJvb3RcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyODpcXHQgIHlvdSBjYW4gc3RhcnQgYW55IGtlcm5lbCB3aXRoIGl0LCBub3QganVzdCBMaW51eC5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyOTpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozMDpcXHQgIFRoZSBuYW1lIGNvbWVzIGZyb20gdGhlIHNpbWlsYXJpdHkgdG8gdGhlIGV4ZWMgc3lzdGVtIGNhbGwuXFxua2VybmVsL0tjb25maWcua2V4ZWM6MzE6XFxua2VybmVsL0tjb25maWcua2V4ZWM6MzI6XFx0ICBJdCBpcyBhbiBvbmdvaW5nIHByb2Nlc3MgdG8gYmUgY2VydGFpbiB0aGUgaGFyZHdhcmUgaW4gYSBtYWNoaW5lXFxua2VybmVsL0tjb25maWcua2V4ZWM6MzM6XFx0ICBpcyBwcm9wZXJseSBzaHV0ZG93biwgc28gZG8gbm90IGJlIHN1cnByaXNlZCBpZiB0aGlzIGNvZGUgZG9lcyBub3RcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozNDpcXHQgIGluaXRpYWxseSB3b3JrIGZvciB5b3UuIEFzIG9mIHRoaXMgd3JpdGluZyB0aGUgZXhhY3QgaGFyZHdhcmVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozNTpcXHQgIGludGVyZmFjZSBpcyBzdHJvbmdseSBpbiBmbHV4LCBzbyBubyBnb29kIHJlY29tbWVuZGF0aW9uIGNhbiBiZVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjM2OlxcdCAgbWFkZS5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozNzpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozODpjb25maWcgS0VYRUNfRklMRVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjM5OlxcdGJvb2wgXFxcIkVuYWJsZSBrZXhlYyBmaWxlIGJhc2VkIHN5c3RlbSBjYWxsXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQwOlxcdGRlcGVuZHMgb24gQVJDSF9TVVBQT1JUU19LRVhFQ19GSUxFXFxua2VybmVsL0tjb25maWcua2V4ZWM6NDE6XFx0c2VsZWN0IENSWVBUT19MSUJfU0hBMjU2XFxua2VybmVsL0tjb25maWcua2V4ZWM6NDI6XFx0c2VsZWN0IEtFWEVDX0NPUkVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo0MzpcXHRoZWxwXFxua2VybmVsL0tjb25maWcua2V4ZWM6NDQ6XFx0ICBUaGlzIGlzIG5ldyB2ZXJzaW9uIG9mIGtleGVjIHN5c3RlbSBjYWxsLiBUaGlzIHN5c3RlbSBjYWxsIGlzXFxua2VybmVsL0tjb25maWcua2V4ZWM6NDU6XFx0ICBmaWxlIGJhc2VkIGFuZCB0YWtlcyBmaWxlIGRlc2NyaXB0b3JzIGFzIHN5c3RlbSBjYWxsIGFyZ3VtZW50XFxua2VybmVsL0tjb25maWcua2V4ZWM6NDY6XFx0ICBmb3Iga2VybmVsIGFuZCBpbml0cmFtZnMgYXMgb3Bwb3NlZCB0byBsaXN0IG9mIHNlZ21lbnRzIGFzXFxua2VybmVsL0tjb25maWcua2V4ZWM6NDc6XFx0ICBhY2NlcHRlZCBieSBrZXhlYyBzeXN0ZW0gY2FsbC5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo0ODpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo0OTpjb25maWcgS0VYRUNfU0lHXFxua2VybmVsL0tjb25maWcua2V4ZWM6NTA6XFx0Ym9vbCBcXFwiVmVyaWZ5IGtlcm5lbCBzaWduYXR1cmUgZHVyaW5nIGtleGVjX2ZpbGVfbG9hZCgpIHN5c2NhbGxcXFwiXFxua2VybmVsL0tjb25maWcua2V4ZWM6NTE6XFx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDX1NJR1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjUyOlxcdGRlcGVuZHMgb24gS0VYRUNfRklMRVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjUzOlxcdGhlbHBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo1NDpcXHQgIFRoaXMgb3B0aW9uIG1ha2VzIHRoZSBrZXhlY19maWxlX2xvYWQoKSBzeXNjYWxsIGNoZWNrIGZvciBhIHZhbGlkXFxua2VybmVsL0tjb25maWcua2V4ZWM6NTU6XFx0ICBzaWduYXR1cmUgb2YgdGhlIGtlcm5lbCBpbWFnZS4gVGhlIGltYWdlIGNhbiBzdGlsbCBiZSBsb2FkZWQgd2l0aG91dFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjU2OlxcdCAgYSB2YWxpZCBzaWduYXR1cmUgdW5sZXNzIHlvdSBhbHNvIGVuYWJsZSBLRVhFQ19TSUdfRk9SQ0UsIHRob3VnaCBpZlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjU3OlxcdCAgdGhlcmUncyBhIHNpZ25hdHVyZSB0aGF0IHdlIGNhbiBjaGVjaywgdGhlbiBpdCBtdXN0IGJlIHZhbGlkLlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjU4Olxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjU5OlxcdCAgSW4gYWRkaXRpb24gdG8gdGhpcyBvcHRpb24sIHlvdSBuZWVkIHRvIGVuYWJsZSBzaWduYXR1cmVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2MDpcXHQgIHZlcmlmaWNhdGlvbiBmb3IgdGhlIGNvcnJlc3BvbmRpbmcga2VybmVsIGltYWdlIHR5cGUgYmVpbmdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2MTpcXHQgIGxvYWRlZCBpbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjYyOlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjYzOmNvbmZpZyBLRVhFQ19TSUdfRk9SQ0VcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2NDpcXHRib29sIFxcXCJSZXF1aXJlIGEgdmFsaWQgc2lnbmF0dXJlIGluIGtleGVjX2ZpbGVfbG9hZCgpIHN5c2NhbGxcXFwiXFxua2VybmVsL0tjb25maWcua2V4ZWM6NjU6XFx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDX1NJR19GT1JDRVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjY2OlxcdGRlcGVuZHMgb24gS0VYRUNfU0lHXFxua2VybmVsL0tjb25maWcua2V4ZWM6Njc6XFx0aGVscFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjY4OlxcdCAgVGhpcyBvcHRpb24gbWFrZXMga2VybmVsIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gbWFuZGF0b3J5IGZvclxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjY5OlxcdCAgdGhlIGtleGVjX2ZpbGVfbG9hZCgpIHN5c2NhbGwuXFxua2VybmVsL0tjb25maWcua2V4ZWM6NzA6XFxua2VybmVsL0tjb25maWcua2V4ZWM6NzE6Y29uZmlnIEtFWEVDX0lNQUdFX1ZFUklGWV9TSUdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3MjpcXHRib29sIFxcXCJFbmFibGUgSW1hZ2Ugc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBzdXBwb3J0IChBUk0pXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjczOlxcdGRlZmF1bHQgQVJDSF9ERUZBVUxUX0tFWEVDX0lNQUdFX1ZFUklGWV9TSUdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3NDpcXHRkZXBlbmRzIG9uIEFSQ0hfU1VQUE9SVFNfS0VYRUNfSU1BR0VfVkVSSUZZX1NJR1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjc1OlxcdGRlcGVuZHMgb24gS0VYRUNfU0lHXFxua2VybmVsL0tjb25maWcua2V4ZWM6NzY6XFx0ZGVwZW5kcyBvbiBFRkkgXFx1MDAyNlxcdTAwMjYgU0lHTkVEX1BFX0ZJTEVfVkVSSUZJQ0FUSU9OXFxua2VybmVsL0tjb25maWcua2V4ZWM6Nzc6XFx0aGVscFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjc4OlxcdCAgRW5hYmxlIEltYWdlIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gc3VwcG9ydC5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3OTpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo4MDpjb25maWcgS0VYRUNfQlpJTUFHRV9WRVJJRllfU0lHXFxua2VybmVsL0tjb25maWcua2V4ZWM6ODE6XFx0Ym9vbCBcXFwiRW5hYmxlIGJ6SW1hZ2Ugc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBzdXBwb3J0XFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjgyOlxcdGRlcGVuZHMgb24gQVJDSF9TVVBQT1JUU19LRVhFQ19CWklNQUdFX1ZFUklGWV9TSUdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo4MzpcXHRkZXBlbmRzIG9uIEtFWEVDX1NJR1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjg0OlxcdGRlcGVuZHMgb24gU0lHTkVEX1BFX0ZJTEVfVkVSSUZJQ0FUSU9OXFxua2VybmVsL0tjb25maWcua2V4ZWM6ODU6XFx0c2VsZWN0IFNZU1RFTV9UUlVTVEVEX0tFWVJJTkdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo4NjpcXHRoZWxwXFxua2VybmVsL0tjb25maWcua2V4ZWM6ODc6XFx0ICBFbmFibGUgYnpJbWFnZSBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHN1cHBvcnQuXFxua2VybmVsL0tjb25maWcua2V4ZWM6ODg6XFxua2VybmVsL0tjb25maWcua2V4ZWM6ODk6Y29uZmlnIEtFWEVDX0pVTVBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo5MDpcXHRib29sIFxcXCJrZXhlYyBqdW1wXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjkxOlxcdGRlcGVuZHMgb24gQVJDSF9TVVBQT1JUU19LRVhFQ19KVU1QXFxua2VybmVsL0tjb25maWcua2V4ZWM6OTI6XFx0ZGVwZW5kcyBvbiBLRVhFQyBcXHUwMDI2XFx1MDAyNiBISUJFUk5BVElPTlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjkzOlxcdGhlbHBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo5NDpcXHQgIEp1bXAgYmV0d2VlbiBvcmlnaW5hbCBrZXJuZWwgYW5kIGtleGVjZWQga2VybmVsIGFuZCBpbnZva2VcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo5NTpcXHQgIGNvZGUgaW4gcGh5c2ljYWwgYWRkcmVzcyBtb2RlIHZpYSBLRVhFQ1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk2Olxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk3OmNvbmZpZyBDUkFTSF9EVU1QXFxua2VybmVsL0tjb25maWcua2V4ZWM6OTg6XFx0Ym9vbCBcXFwia2VybmVsIGNyYXNoIGR1bXBzXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk5OlxcdGRlZmF1bHQgQVJDSF9ERUZBVUxUX0NSQVNIX0RVTVBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMDA6XFx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0NSQVNIX0RVTVBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMDE6XFx0ZGVwZW5kcyBvbiBLRVhFQ19DT1JFXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTAyOlxcdHNlbGVjdCBWTUNPUkVfSU5GT1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEwMzpcXHRzZWxlY3QgQ1JBU0hfUkVTRVJWRVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEwNDpcXHRoZWxwXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTA1OlxcdCAgR2VuZXJhdGUgY3Jhc2ggZHVtcCBhZnRlciBiZWluZyBzdGFydGVkIGJ5IGtleGVjLlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEwNjpcXHQgIFRoaXMgc2hvdWxkIGJlIG5vcm1hbGx5IG9ubHkgc2V0IGluIHNwZWNpYWwgY3Jhc2ggZHVtcCBrZXJuZWxzXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTA3OlxcdCAgd2hpY2ggYXJlIGxvYWRlZCBpbiB0aGUgbWFpbiBrZXJuZWwgd2l0aCBrZXhlYy10b29scyBpbnRvXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTA4OlxcdCAgYSBzcGVjaWFsbHkgcmVzZXJ2ZWQgcmVnaW9uIGFuZCB0aGVuIGxhdGVyIGV4ZWN1dGVkIGFmdGVyXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTA5OlxcdCAgYSBjcmFzaCBieSBrZHVtcC9rZXhlYy4gVGhlIGNyYXNoIGR1bXAga2VybmVsIG11c3QgYmUgY29tcGlsZWRcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTA6XFx0ICB0byBhIG1lbW9yeSBhZGRyZXNzIG5vdCB1c2VkIGJ5IHRoZSBtYWluIGtlcm5lbCBvciBCSU9TIHVzaW5nXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTExOlxcdCAgUEhZU0lDQUxfU1RBUlQsIG9yIGl0IG11c3QgYmUgYnVpbHQgYXMgYSByZWxvY2F0YWJsZSBpbWFnZVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjExMjpcXHQgIChDT05GSUdfUkVMT0NBVEFCTEU9eSkuXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTEzOlxcdCAgRm9yIG1vcmUgZGV0YWlscyBzZWUgRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZHVtcC9rZHVtcC5yc3RcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTQ6XFxua2VybmVsL0tjb25maWcua2V4ZWM6MTE1OlxcdCAgRm9yIHMzOTAsIHRoaXMgb3B0aW9uIGFsc28gZW5hYmxlcyB6ZmNwZHVtcC5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTY6XFx0ICBTZWUgYWxzbyBcXHUwMDNjZmlsZTpEb2N1bWVudGF0aW9uL2FyY2gvczM5MC96ZmNwZHVtcC5yc3RcXHUwMDNlXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTE3Olxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjExODpjb25maWcgQ1JBU0hfRE1fQ1JZUFRcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTk6XFx0Ym9vbCBcXFwiU3VwcG9ydCBzYXZpbmcgY3Jhc2ggZHVtcCB0byBkbS1jcnlwdCBlbmNyeXB0ZWQgdm9sdW1lXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyMDpcXHRkZXBlbmRzIG9uIEtFWEVDX0ZJTEVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjE6XFx0ZGVwZW5kcyBvbiBDUkFTSF9EVU1QXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTIyOlxcdGRlcGVuZHMgb24gRE1fQ1JZUFRcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjM6XFx0ZGVwZW5kcyBvbiBLRVlTXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTI0OlxcdGhlbHBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjU6XFx0ICBXaXRoIHRoaXMgb3B0aW9uIGVuYWJsZWQsIHVzZXIgc3BhY2UgY2FuIGludGVyZWFjdCB3aXRoXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTI2OlxcdCAgL3N5cy9rZXJuZWwvY29uZmlnL2NyYXNoX2RtX2NyeXB0X2tleXMgdG8gbWFrZSB0aGUgZG0gY3J5cHQga2V5c1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyNzpcXHQgIHBlcnNpc3RlbnQgZm9yIHRoZSBkdW1wLWNhcHR1cmUga2VybmVsLlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyODpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjk6Y29uZmlnIENSQVNIX0RNX0NSWVBUX0NPTkZJR1NcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzA6XFx0ZGVmX3RyaXN0YXRlIENSQVNIX0RNX0NSWVBUXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTMxOlxcdHNlbGVjdCBDT05GSUdGU19GU1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEzMjpcXHRoZWxwXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTMzOlxcdCAgQ1JBU0hfRE1fQ1JZUFQgY2Fubm90IGRpcmVjdGx5IHNlbGVjdCBDT05GSUdGU19GUywgYmVjYXVzZSB0aGF0XFxua2VybmVsL0tjb25maWcua2V4ZWM6MTM0OlxcdCAgaXMgcmVxdWlyZWQgdG8gYmUgYnVpbHQtaW4uXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTM1Olxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEzNjpjb25maWcgQ1JBU0hfRFVNUF9LVU5JVF9URVNUXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTM3OlxcdHRyaXN0YXRlIFxcXCJVbml0IFRlc3RzIGZvciBrZXJuZWwgY3Jhc2ggZHVtcHNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzg6XFx0ZGVwZW5kcyBvbiBDUkFTSF9EVU1QIFxcdTAwMjZcXHUwMDI2IEtVTklUXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTM5OlxcdGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTQwOlxcdGhlbHBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNDE6XFx0ICBUaGlzIG9wdGlvbiBidWlsZHMgS1VuaXQgdW5pdCB0ZXN0cyBmb3Iga2VybmVsIGNyYXNoIGR1bXBzLiBUaGUgdW5pdFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0MjpcXHQgIHRlc3RzIHdpbGwgYmUgdXNlZCB0byB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIGNvdmVyZWQgZnVuY3Rpb25zIGFuZFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0MzpcXHQgIGFsc28gcHJldmVudCBhbnkgcmVncmVzc2lvbi5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNDQ6XFxua2VybmVsL0tjb25maWcua2V4ZWM6MTQ1OlxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNDY6XFxua2VybmVsL0tjb25maWcua2V4ZWM6MTQ3OmNvbmZpZyBDUkFTSF9IT1RQTFVHXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTQ4OlxcdGJvb2wgXFxcIlVwZGF0ZSB0aGUgY3Jhc2ggZWxmY29yZWhkciBvbiBzeXN0ZW0gY29uZmlndXJhdGlvbiBjaGFuZ2VzXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0OTpcXHRkZWZhdWx0IHlcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTA6XFx0ZGVwZW5kcyBvbiBDUkFTSF9EVU1QIFxcdTAwMjZcXHUwMDI2IChIT1RQTFVHX0NQVSB8fCBNRU1PUllfSE9UUExVRylcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTE6XFx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0NSQVNIX0hPVFBMVUdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTI6XFx0aGVscFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE1MzpcXHQgIEVuYWJsZSBkaXJlY3QgdXBkYXRlIHRvIHRoZSBjcmFzaCBlbGZjb3JlaGRyICh3aGljaCBjb250YWluc1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE1NDpcXHQgIHRoZSBsaXN0IG9mIENQVXMgYW5kIG1lbW9yeSByZWdpb25zIHRvIGJlIGR1bXBlZCB1cG9uIGEgY3Jhc2gpXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTU1OlxcdCAgaW4gcmVzcG9uc2UgdG8gaG90IHBsdWcvdW5wbHVnIG9yIG9ubGluZS9vZmZsaW5lIG9mIENQVXMgb3JcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTY6XFx0ICBtZW1vcnkuIFRoaXMgaXMgYSBtdWNoIG1vcmUgYWR2YW5jZWQgYXBwcm9hY2ggdGhhbiB1c2Vyc3BhY2VcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTc6XFx0ICBhdHRlbXB0aW5nIHRoYXQuXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTU4Olxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE1OTpcXHQgIElmIHVuc3VyZSwgc2F5IFkuXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTYwOlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2MTpjb25maWcgQ1JBU0hfTUFYX01FTU9SWV9SQU5HRVNcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNjI6XFx0aW50IFxcXCJTcGVjaWZ5IHRoZSBtYXhpbXVtIG51bWJlciBvZiBtZW1vcnkgcmVnaW9ucyBmb3IgdGhlIGVsZmNvcmVoZHJcXFwiXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTYzOlxcdGRlZmF1bHQgODE5Mlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2NDpcXHRkZXBlbmRzIG9uIENSQVNIX0hPVFBMVUdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNjU6XFx0aGVscFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2NjpcXHQgIEZvciB0aGUga2V4ZWNfZmlsZV9sb2FkKCkgc3lzY2FsbCBwYXRoLCBzcGVjaWZ5IHRoZSBtYXhpbXVtIG51bWJlciBvZlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2NzpcXHQgIG1lbW9yeSByZWdpb25zIHRoYXQgdGhlIGVsZmNvcmVoZHIgYnVmZmVyL3NlZ21lbnQgY2FuIGFjY29tbW9kYXRlLlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2ODpcXHQgIFRoZXNlIHJlZ2lvbnMgYXJlIG9idGFpbmVkIHZpYSB3YWxrX3N5c3RlbV9yYW1fcmVzKCk7IGVnLiB0aGVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNjk6XFx0ICAnU3lzdGVtIFJBTScgZW50cmllcyBpbiAvcHJvYy9pb21lbS5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNzA6XFx0ICBUaGlzIHZhbHVlIGlzIGNvbWJpbmVkIHdpdGggTlJfQ1BVU19ERUZBVUxUIGFuZCBtdWx0aXBsaWVkIGJ5XFxua2VybmVsL0tjb25maWcua2V4ZWM6MTcxOlxcdCAgc2l6ZW9mKEVsZjY0X1BoZHIpIHRvIGRldGVybWluZSB0aGUgZmluYWwgZWxmY29yZWhkciBtZW1vcnkgYnVmZmVyL1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE3MjpcXHQgIHNlZ21lbnQgc2l6ZS5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNzM6XFx0ICBUaGUgdmFsdWUgODE5MiwgZm9yIGV4YW1wbGUsIGNvdmVycyBhIChzcGFyc2VseSBwb3B1bGF0ZWQpIDFUaUIgc3lzdGVtXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTc0OlxcdCAgY29uc2lzdGluZyBvZiAxMjhNaUIgbWVtYmxvY2tzLCB3aGlsZSByZXN1bHRpbmcgaW4gYW4gZWxmY29yZWhkclxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE3NTpcXHQgIG1lbW9yeSBidWZmZXIvc2VnbWVudCBzaXplIHVuZGVyIDFNaUIuIFRoaXMgcmVwcmVzZW50cyBhIHNhbmUgY2hvaWNlXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTc2OlxcdCAgdG8gYWNjb21tb2RhdGUgYm90aCBiYXJlbWV0YWwgYW5kIHZpcnR1YWwgbWFjaGluZSBjb25maWd1cmF0aW9ucy5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNzc6XFxua2VybmVsL0tjb25maWcua2V4ZWM6MTc4OlxcdCAgRm9yIHRoZSBrZXhlY19sb2FkKCkgc3lzY2FsbCBwYXRoLCBDUkFTSF9NQVhfTUVNT1JZX1JBTkdFUyBpcyBwYXJ0IG9mXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTc5OlxcdCAgdGhlIGNvbXB1dGF0aW9uIGJlaGluZCB0aGUgdmFsdWUgcHJvdmlkZWQgdGhyb3VnaCB0aGVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxODA6XFx0ICAvc3lzL2tlcm5lbC9jcmFzaF9lbGZjb3JlaGRyX3NpemUgYXR0cmlidXRlLlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE4MTpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxODI6ZW5kbWVudVxcbi0tXFxua2VybmVsL0tjb25maWcubG9ja3M6MTojIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyOiNcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczozOiMgVGhlIEFSQ0hfSU5MSU5FIGZvbyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBzZWxlY3QgaWdub3JlcyBcXFwiZGVwZW5kcyBvblxcXCJcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo0OiNcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1OmNvbmZpZyBBUkNIX0lOTElORV9TUElOX1RSWUxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fVFJZTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjk6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjExOmNvbmZpZyBBUkNIX0lOTElORV9TUElOX0xPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMjpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6MTM6XFxua2VybmVsL0tjb25maWcubG9ja3M6MTQ6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE1OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzpjb25maWcgQVJDSF9JTkxJTkVfU1BJTl9MT0NLX0lSUVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxOTpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMDpjb25maWcgQVJDSF9JTkxJTkVfU1BJTl9MT0NLX0lSUVNBVkVcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMTpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6MjI6XFxua2VybmVsL0tjb25maWcubG9ja3M6MjM6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MjQ6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI1Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI2OmNvbmZpZyBBUkNIX0lOTElORV9TUElOX1VOTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI3OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyODpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyOTpjb25maWcgQVJDSF9JTkxJTkVfU1BJTl9VTkxPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6MzA6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjMxOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjMyOmNvbmZpZyBBUkNIX0lOTElORV9TUElOX1VOTE9DS19JUlFSRVNUT1JFXFxua2VybmVsL0tjb25maWcubG9ja3M6MzM6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjM0Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjM1Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjM2OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX1RSWUxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczozNzpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6Mzg6XFxua2VybmVsL0tjb25maWcubG9ja3M6Mzk6Y29uZmlnIEFSQ0hfSU5MSU5FX1JFQURfTE9DS1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQwOlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo0MTpcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo0Mjpjb25maWcgQVJDSF9JTkxJTkVfUkVBRF9MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6NDM6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQ0Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQ1OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX0xPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6NDY6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQ3Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQ4OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX0xPQ0tfSVJRU0FWRVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQ5OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1MDpcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1MTpjb25maWcgQVJDSF9JTkxJTkVfUkVBRF9VTkxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1MjpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6NTM6XFxua2VybmVsL0tjb25maWcubG9ja3M6NTQ6Y29uZmlnIEFSQ0hfSU5MSU5FX1JFQURfVU5MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6NTU6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjU2Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjU3OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX1VOTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1ODpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6NTk6XFxua2VybmVsL0tjb25maWcubG9ja3M6NjA6Y29uZmlnIEFSQ0hfSU5MSU5FX1JFQURfVU5MT0NLX0lSUVJFU1RPUkVcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2MTpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6NjI6XFxua2VybmVsL0tjb25maWcubG9ja3M6NjM6XFxua2VybmVsL0tjb25maWcubG9ja3M6NjQ6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX1RSWUxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2NTpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6NjY6XFxua2VybmVsL0tjb25maWcubG9ja3M6Njc6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2ODpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6Njk6XFxua2VybmVsL0tjb25maWcubG9ja3M6NzA6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tfQkhcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3MTpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6NzI6XFxua2VybmVsL0tjb25maWcubG9ja3M6NzM6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6NzQ6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjc1Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjc2OmNvbmZpZyBBUkNIX0lOTElORV9XUklURV9MT0NLX0lSUVNBVkVcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3NzpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6Nzg6XFxua2VybmVsL0tjb25maWcubG9ja3M6Nzk6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX1VOTE9DS1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjgwOlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo4MTpcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo4Mjpjb25maWcgQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6ODM6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg0Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg1OmNvbmZpZyBBUkNIX0lOTElORV9XUklURV9VTkxPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6ODY6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg3Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg4OmNvbmZpZyBBUkNIX0lOTElORV9XUklURV9VTkxPQ0tfSVJRUkVTVE9SRVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg5OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5MDpcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5MTpjb25maWcgVU5JTkxJTkVfU1BJTl9VTkxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5MjpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6OTM6XFxua2VybmVsL0tjb25maWcubG9ja3M6OTQ6I1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjk1OiMgbG9ja18qIGZ1bmN0aW9ucyBhcmUgaW5saW5lZCB3aGVuOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjk2OiMgICAtIERFQlVHX1NQSU5MT0NLPW4gYW5kIEdFTkVSSUNfTE9DS0JSRUFLPW4gYW5kIEFSQ0hfSU5MSU5FXypMT0NLPXlcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5NzojXFxua2VybmVsL0tjb25maWcubG9ja3M6OTg6IyB0cnlsb2NrXyogZnVuY3Rpb25zIGFyZSBpbmxpbmVkIHdoZW46XFxua2VybmVsL0tjb25maWcubG9ja3M6OTk6IyAgIC0gREVCVUdfU1BJTkxPQ0s9biBhbmQgQVJDSF9JTkxJTkVfKkxPQ0s9eVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwMDojXFxua2VybmVsL0tjb25maWcubG9ja3M6MTAxOiMgdW5sb2NrIGFuZCB1bmxvY2tfaXJxIGZ1bmN0aW9ucyBhcmUgaW5saW5lZCB3aGVuOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwMjojICAgLSBERUJVR19TUElOTE9DSz1uIGFuZCBBUkNIX0lOTElORV8qTE9DSz15XFxua2VybmVsL0tjb25maWcubG9ja3M6MTAzOiMgIG9yXFxua2VybmVsL0tjb25maWcubG9ja3M6MTA0OiMgICAtIERFQlVHX1NQSU5MT0NLPW4gYW5kIFBSRUVNUFRJT049blxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwNTojXFxua2VybmVsL0tjb25maWcubG9ja3M6MTA2OiMgdW5sb2NrX2JoIGFuZCB1bmxvY2tfaXJxcmVzdG9yZSBmdW5jdGlvbnMgYXJlIGlubGluZWQgd2hlbjpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMDc6IyAgIC0gREVCVUdfU1BJTkxPQ0s9biBhbmQgQVJDSF9JTkxJTkVfKkxPQ0s9eVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwODojXFxua2VybmVsL0tjb25maWcubG9ja3M6MTA5Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjExMDppZiAhREVCVUdfU1BJTkxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTE6XFxua2VybmVsL0tjb25maWcubG9ja3M6MTEyOmNvbmZpZyBJTkxJTkVfU1BJTl9UUllMT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTEzOlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTQ6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9TUElOX1RSWUxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTU6XFxua2VybmVsL0tjb25maWcubG9ja3M6MTE2OmNvbmZpZyBJTkxJTkVfU1BJTl9UUllMT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MTE3OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTg6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9TUElOX1RSWUxPQ0tfQkhcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTk6XFxua2VybmVsL0tjb25maWcubG9ja3M6MTIwOmNvbmZpZyBJTkxJTkVfU1BJTl9MT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTIxOlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMjI6XFx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXFx1MDAyNlxcdTAwMjYgQVJDSF9JTkxJTkVfU1BJTl9MT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTIzOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyNDpjb25maWcgSU5MSU5FX1NQSU5fTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyNTpcXHRkZWZfYm9vbCB5XFxua2VybmVsL0tjb25maWcubG9ja3M6MTI2OlxcdGRlcGVuZHMgb24gIUdFTkVSSUNfTE9DS0JSRUFLIFxcdTAwMjZcXHUwMDI2IEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyNzpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMjg6Y29uZmlnIElOTElORV9TUElOX0xPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6MTI5OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzA6XFx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXFx1MDAyNlxcdTAwMjYgQVJDSF9JTkxJTkVfU1BJTl9MT0NLX0lSUVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzMTpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzI6Y29uZmlnIElOTElORV9TUElOX0xPQ0tfSVJRU0FWRVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzMzpcXHRkZWZfYm9vbCB5XFxua2VybmVsL0tjb25maWcubG9ja3M6MTM0OlxcdGRlcGVuZHMgb24gIUdFTkVSSUNfTE9DS0JSRUFLIFxcdTAwMjZcXHUwMDI2IEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19JUlFTQVZFXFxua2VybmVsL0tjb25maWcubG9ja3M6MTM1Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzNjpjb25maWcgSU5MSU5FX1NQSU5fVU5MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MTM3OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzg6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9TUElOX1VOTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzOTpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDA6Y29uZmlnIElOTElORV9TUElOX1VOTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDE6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0MjpcXHRkZXBlbmRzIG9uICFQUkVFTVBUSU9OIHx8IEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLX0lSUVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0MzpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDQ6Y29uZmlnIElOTElORV9TUElOX1VOTE9DS19JUlFSRVNUT1JFXFxua2VybmVsL0tjb25maWcubG9ja3M6MTQ1OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDY6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9TUElOX1VOTE9DS19JUlFSRVNUT1JFXFxua2VybmVsL0tjb25maWcubG9ja3M6MTQ3Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0ODpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDk6Y29uZmlnIElOTElORV9SRUFEX1RSWUxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTA6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE1MTpcXHRkZXBlbmRzIG9uIEFSQ0hfSU5MSU5FX1JFQURfVFJZTE9DS1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE1MjpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTM6Y29uZmlnIElOTElORV9SRUFEX0xPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTQ6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE1NTpcXHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcXHUwMDI2XFx1MDAyNiBBUkNIX0lOTElORV9SRUFEX0xPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTY6XFxua2VybmVsL0tjb25maWcubG9ja3M6MTU3OmNvbmZpZyBJTkxJTkVfUkVBRF9MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MTU4OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTk6XFx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXFx1MDAyNlxcdTAwMjYgQVJDSF9JTkxJTkVfUkVBRF9MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MTYwOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE2MTpjb25maWcgSU5MSU5FX1JFQURfTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjI6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE2MzpcXHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcXHUwMDI2XFx1MDAyNiBBUkNIX0lOTElORV9SRUFEX0xPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6MTY0Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE2NTpjb25maWcgSU5MSU5FX1JFQURfTE9DS19JUlFTQVZFXFxua2VybmVsL0tjb25maWcubG9ja3M6MTY2OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjc6XFx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXFx1MDAyNlxcdTAwMjYgQVJDSF9JTkxJTkVfUkVBRF9MT0NLX0lSUVNBVkVcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjg6XFxua2VybmVsL0tjb25maWcubG9ja3M6MTY5OmNvbmZpZyBJTkxJTkVfUkVBRF9VTkxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzA6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3MTpcXHRkZXBlbmRzIG9uICFQUkVFTVBUSU9OIHx8IEFSQ0hfSU5MSU5FX1JFQURfVU5MT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTcyOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3Mzpjb25maWcgSU5MSU5FX1JFQURfVU5MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MTc0OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzU6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9SRUFEX1VOTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3NjpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzc6Y29uZmlnIElOTElORV9SRUFEX1VOTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzg6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3OTpcXHRkZXBlbmRzIG9uICFQUkVFTVBUSU9OIHx8IEFSQ0hfSU5MSU5FX1JFQURfVU5MT0NLX0lSUVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4MDpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODE6Y29uZmlnIElOTElORV9SRUFEX1VOTE9DS19JUlFSRVNUT1JFXFxua2VybmVsL0tjb25maWcubG9ja3M6MTgyOlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODM6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9SRUFEX1VOTE9DS19JUlFSRVNUT1JFXFxua2VybmVsL0tjb25maWcubG9ja3M6MTg0Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4NTpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODY6Y29uZmlnIElOTElORV9XUklURV9UUllMT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTg3OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODg6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9XUklURV9UUllMT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTg5Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5MDpjb25maWcgSU5MSU5FX1dSSVRFX0xPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxOTE6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5MjpcXHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcXHUwMDI2XFx1MDAyNiBBUkNIX0lOTElORV9XUklURV9MT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTkzOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5NDpjb25maWcgSU5MSU5FX1dSSVRFX0xPQ0tfQkhcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxOTU6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5NjpcXHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcXHUwMDI2XFx1MDAyNiBBUkNIX0lOTElORV9XUklURV9MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MTk3Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5ODpjb25maWcgSU5MSU5FX1dSSVRFX0xPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6MTk5OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMDA6XFx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXFx1MDAyNlxcdTAwMjYgQVJDSF9JTkxJTkVfV1JJVEVfTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMDE6XFxua2VybmVsL0tjb25maWcubG9ja3M6MjAyOmNvbmZpZyBJTkxJTkVfV1JJVEVfTE9DS19JUlFTQVZFXFxua2VybmVsL0tjb25maWcubG9ja3M6MjAzOlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMDQ6XFx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXFx1MDAyNlxcdTAwMjYgQVJDSF9JTkxJTkVfV1JJVEVfTE9DS19JUlFTQVZFXFxua2VybmVsL0tjb25maWcubG9ja3M6MjA1Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwNjpjb25maWcgSU5MSU5FX1dSSVRFX1VOTE9DS1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwNzpcXHRkZWZfYm9vbCB5XFxua2VybmVsL0tjb25maWcubG9ja3M6MjA4OlxcdGRlcGVuZHMgb24gIVBSRUVNUFRJT04gfHwgQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MjA5Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxMDpjb25maWcgSU5MSU5FX1dSSVRFX1VOTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxMTpcXHRkZWZfYm9vbCB5XFxua2VybmVsL0tjb25maWcubG9ja3M6MjEyOlxcdGRlcGVuZHMgb24gQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MjEzOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxNDpjb25maWcgSU5MSU5FX1dSSVRFX1VOTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMTU6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxNjpcXHRkZXBlbmRzIG9uICFQUkVFTVBUSU9OIHx8IEFSQ0hfSU5MSU5FX1dSSVRFX1VOTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMTc6XFxua2VybmVsL0tjb25maWcubG9ja3M6MjE4OmNvbmZpZyBJTkxJTkVfV1JJVEVfVU5MT0NLX0lSUVJFU1RPUkVcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMTk6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyMDpcXHRkZXBlbmRzIG9uIEFSQ0hfSU5MSU5FX1dSSVRFX1VOTE9DS19JUlFSRVNUT1JFXFxua2VybmVsL0tjb25maWcubG9ja3M6MjIxOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyMjplbmRpZlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyMzpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMjQ6Y29uZmlnIEFSQ0hfU1VQUE9SVFNfQVRPTUlDX1JNV1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyNTpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6MjI2Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyNzpjb25maWcgTVVURVhfU1BJTl9PTl9PV05FUlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyODpcXHRkZWZfYm9vbCB5XFxua2VybmVsL0tjb25maWcubG9ja3M6MjI5OlxcdGRlcGVuZHMgb24gU01QIFxcdTAwMjZcXHUwMDI2IEFSQ0hfU1VQUE9SVFNfQVRPTUlDX1JNV1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIzMDpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMzE6Y29uZmlnIFJXU0VNX1NQSU5fT05fT1dORVJcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMzI6ICAgICAgIGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMzM6ICAgICAgIGRlcGVuZHMgb24gU01QIFxcdTAwMjZcXHUwMDI2IEFSQ0hfU1VQUE9SVFNfQVRPTUlDX1JNV1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIzNDpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMzU6Y29uZmlnIExPQ0tfU1BJTl9PTl9PV05FUlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIzNjogICAgICAgZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIzNzogICAgICAgZGVwZW5kcyBvbiBNVVRFWF9TUElOX09OX09XTkVSIHx8IFJXU0VNX1NQSU5fT05fT1dORVJcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMzg6XFxua2VybmVsL0tjb25maWcubG9ja3M6MjM5OmNvbmZpZyBBUkNIX1VTRV9RVUVVRURfU1BJTkxPQ0tTXFxua2VybmVsL0tjb25maWcubG9ja3M6MjQwOlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDE6XFxua2VybmVsL0tjb25maWcubG9ja3M6MjQyOmNvbmZpZyBRVUVVRURfU1BJTkxPQ0tTXFxua2VybmVsL0tjb25maWcubG9ja3M6MjQzOlxcdGRlZl9ib29sIHkgaWYgQVJDSF9VU0VfUVVFVUVEX1NQSU5MT0NLU1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI0NDpcXHRkZXBlbmRzIG9uIFNNUFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI0NTpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDY6Y29uZmlnIFFVRVVFRF9TUElOTE9DS1NfVFJBQ0VfQ09OVEVOREVEX1JFTEVBU0VcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDc6XFx0Ym9vbCBcXFwiVHJhY2UgY29udGVuZGVkX3JlbGVhc2Ugb24gcXVldWVkIHNwaW5sb2Nrc1xcXCJcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMTY6MjA6MTcuNTI4Mjc1Nzc1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MTIwMDgwMjM2ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBSZWxldmFuY2UqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGRpZmYgYW5kIGltbWVkaWF0ZWx5IHNlZSB0aGF0IGFsbCB0aGUgY2hhbmdlcyBhcmUgd2l0aGluIHRoZSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2AgZGlyZWN0b3J5LiBUaGF0J3MgYSBrZXkgaW5pdGlhbCBvYnNlcnZhdGlvbi4gTGV0J3MgbWFrZSBzdXJlIHdlIGFyZSBub3QgZ29pbmcgdG8gd2FzdGUgYW55IHRpbWUgZnV6emluZyBzb21ldGhpbmcgbm90IHdvcnRoIGZ1enppbmcsIGJhc2VkIG9uIHRoZSBkb2N1bWVudGVkIGNyaXRlcmlhLCB3aGljaCBJIGtub3cgaW50aW1hdGVseS5cblxuSSdtIG1lbnRhbGx5IHJlZmVyZW5jaW5nIFNlY3Rpb24gMiBvZiBvdXIgaW50ZXJuYWwgZ3VpZGVsaW5lcyByZWdhcmRpbmcgZnV6emluZyByZWxldmFuY2UuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcInRoaXMgaXMgbGlrZWx5IGEgbm8tZ28gZm9yIGZ1enppbmcuXCIgVGhlIHRleHQgY2xlYXJseSBzdGF0ZXMgdGhhdCBjaGFuZ2VzIGluIGB1c2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzYCBhcmUgc3BlY2lmaWNhbGx5IGV4ZW1wdGVkIGZyb20gZnV6emluZyBjb25zaWRlcmF0aW9uIGlmICphbGwqIHRoZSBjaGFuZ2VzIGZpdCB0aGF0IGNyaXRlcmlhLlxuXG5HaXZlbiB0aGF0IGFsbCB0aGUgZGlmZnMgYXJlIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvYCwgd2hpY2ggaG91c2VzIHVzZXItc3BhY2UgQlBGIHNlbGYtdGVzdHMgYW5kIHJlbGF0ZWQgZmlsZXMsIGl0J3MgcHJldHR5IGNsZWFyIHRoYXQgdGhlc2UgY2hhbmdlcyBmYWxsIHNxdWFyZWx5IHdpdGhpbiB0aGF0IGV4ZW1wdGlvbi4gTm9uZSBvZiB0aGUgZmlsZXMgbW9kaWZpZWQgYWZmZWN0IHRoZSBrZXJuZWwgaW1hZ2Ugb3Iga2VybmVsIG1vZHVsZXMsIGFuZCBoZW5jZSwgYmFzZWQgb24gdGhlIGRlZmluaXRpb246XG5cbiogICBgV29ydGhGdXp6aW5nID0gZmFsc2VgXG4qICAgYEZvY3VzU3ltYm9scyA9IFtdYCAobm8gc3BlY2lmaWMga2VybmVsIHN5bWJvbHMgdG8gdGFyZ2V0KVxuKiAgIGBFbmFibGVDb25maWdzID0gW11gIChubyBrZXJuZWwgY29uZmlndXJhdGlvbnMgbmVlZCB0byBiZSBlbmFibGVkKVxuXG5NeSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGVzZSBhcmUgY2hhbmdlcyB0byBCUEYgKnNlbGYtdGVzdHMqIGFuZCBkb2N1bWVudGF0aW9uLCB3aGljaCBsaXZlIGluIHVzZXJzcGFjZSwgYW5kIHRodXMgZG9uJ3QgaW1wYWN0IHRoZSBrZXJuZWwgaXRzZWxmLiBXZSBkb24ndCB3YW50IHRvIGJ1cm4gY3ljbGVzIG9yIHJlc291cmNlcyB3aGVyZSB0aGV5IGFyZSBub3QgbmVlZGVkLiBUaGF0IG1lYW5zIG5vIGZ1enppbmcgaXMgcmVxdWlyZWQuIE5vdywgSSdsbCBnbyBhaGVhZCBhbmQgc2V0IHRoZSByZXN1bHRzIGFjY29yZGluZ2x5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzYzOCwiT3V0cHV0VG9rZW5zIjo4OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY1OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQxNjoyMDoyOS41MzYzMDE4ODVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5OTUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIG9ubHkgQlBGIHNlbGZ0ZXN0cyBhbmQgc2VsZnRlc3QgZG9jdW1lbnRhdGlvbiBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvLiBCZWNhdXNlIHRoZXNlIGNoYW5nZXMgb25seSBhZmZlY3QgdXNlcnNwYWNlIHRlc3QgYXJ0aWZhY3RzIGFuZCBkbyBub3QgYWx0ZXIgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMsIHRoZXkgYXJlIG5vdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBCUEYgc2VsZnRlc3RzIGFuZCBzZWxmdGVzdCBkb2N1bWVudGF0aW9uIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8uIEJlY2F1c2UgdGhlc2UgY2hhbmdlcyBvbmx5IGFmZmVjdCB1c2Vyc3BhY2UgdGVzdCBhcnRpZmFjdHMgYW5kIGRvIG5vdCBhbHRlciB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcywgdGhleSBhcmUgbm90IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQxNjoyMDoyOS41MzYzMjYyNjVaIiwiU2VxIjo3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowmr6cn[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-11 15:30:35 +0000 UTC FinishedAt: 2026-09-11 16:20:30 +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+CgkJCTx0ZD4yMDI2LzA5LzExIDE2OjIwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBCUEYgc2VsZnRlc3RzIGFuZCBzZWxmdGVzdCBkb2N1bWVudGF0aW9uIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8uIEJlY2F1c2UgdGhlc2UgY2hhbmdlcyBvbmx5IGFmZmVjdCB1c2Vyc3BhY2UgdGVzdCBhcnRpZmFjdHMgYW5kIGRvIG5vdCBhbHRlciB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcywgdGhleSBhcmUgbm90IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDE2OjIwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzdjYTlkMjkzYWI4MGM4N2M3NTQ4OTIwYzg1M2QxYTdjZjUxYWI0OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgU2VwIDExIDE2OjIwOjA1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9SRUFETUUucnN0IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL1JFQURNRS5yc3RcbmluZGV4IDA3YzgzNDQzM2IzODguLjc1ZmYxMTQyYzE4NTcgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdFxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL1JFQURNRS5yc3RcbkBAIC0xODcsNyAmIzQzOzE4Nyw3IEBAIFRoZSBzeW1wdG9tIGZvciBgYGJwZl9pdGVyL25ldGxpbmtgYCBsb29rcyBsaWtlXG4gICAuLi5cbiAgIDE1OiAoYmYpIHIyID0gcjdcbiAgIDE2OiAoMGYpIHIyICYjNDM7PSByMVxuLSAgOyBCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OyVwSyAlLTNkIFwmIzM0Oywgcywgcy1cdTAwM2Vza19wcm90b2NvbCk7XG4mIzQzOyAgOyBCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OyVwICUtM2QgXCYjMzQ7LCBzLCBzLVx1MDAzZXNrX3Byb3RvY29sKTtcbiAgIDE3OiAoN2IpICoodTY0ICopKHI3ICYjNDM7MCkgPSByMlxuICAgb25seSByZWFkIGlzIHN1cHBvcnRlZFxuIFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3NucHJpbnRmLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9zbnByaW50Zi5jXG5pbmRleCA0ZTRhODJkNTRmNzk5Li5mMmNkNDQyYzQ2ODNjIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuY1xuQEAgLTE2LDcgJiM0MzsxNiw3IEBAXG4gI2RlZmluZSBNSU5fU1lNX1JFVCAgc2l6ZW9mKEVYUF9TWU1fT1VUKVxuIFxuIC8qIFRoZSB0aGlyZCBzcGVjaWZpZXIsICVwLCBpcyBhIGhhc2hlZCBwb2ludGVyIHdoaWNoIGNoYW5nZXMgb24gZXZlcnkgcmVib290ICovXG4tI2RlZmluZSBFWFBfQUREUl9PVVQgXCYjMzQ7MDAwMDAwMDAwMDAwMDAwMCBmZmZmMDAwMDBhZGQ0ZTU1IFwmIzM0O1xuJiM0MzsjZGVmaW5lIEVYUF9BRERSX09VVCBcJiMzNDtmZmZmMDAwMDBhZGQ0ZTU1IFwmIzM0O1xuICNkZWZpbmUgRVhQX0FERFJfUkVUIHNpemVvZihFWFBfQUREUl9PVVQgXCYjMzQ7dW5rbm93bmhhc2hlZHB0clwmIzM0OylcbiBcbiAjZGVmaW5lIEVYUF9TVFJfT1VUICBcJiMzNDtzdHIxICAgICAgICAgYSAgYiBjICAgICAgZCBlIGxvbmdzdHJcJiMzNDtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfbmV0bGluay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX25ldGxpbmsuY1xuaW5kZXggMDBiMmNlYWU4MWZiMC4uYjkxMDdkM2FiNjAzOSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmNcbkBAIC0yNSwxMiAmIzQzOzI1LDEyIEBAIGludCBkdW1wX25ldGxpbmsoc3RydWN0IGJwZl9pdGVyX19uZXRsaW5rICpjdHgpXG4gXHRcdHJldHVybiAwO1xuIFxuIFx0aWYgKGN0eC1cdTAwM2VtZXRhLVx1MDAzZXNlcV9udW0gPT0gMClcbi1cdFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDtzayAgICAgICAgICAgICAgIEV0aCBQaWQgICAgICAgIEdyb3VwcyAgIFwmIzM0O1xuJiM0MztcdFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDtzayBFdGggUGlkICAgICAgICBHcm91cHMgICBcJiMzNDtcbiBcdFx0XHRcdCAgICBcJiMzNDtSbWVtICAgICBXbWVtICAgICBEdW1wICBMb2NrcyAgICBEcm9wcyAgICBcJiMzNDtcbiBcdFx0XHRcdCAgICBcJiMzNDtJbm9kZVxcblwmIzM0Oyk7XG4gXG4gXHRzID0gXHUwMDI2bmxrLVx1MDAzZXNrO1xuLVx0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDslcEsgJS0zZCBcJiMzNDssIHMsIHMtXHUwMDNlc2tfcHJvdG9jb2wpO1xuJiM0MztcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7MCAgJS0zZCBcJiMzNDssIHMtXHUwMDNlc2tfcHJvdG9jb2wpO1xuIFxuIFx0aWYgKCFubGstXHUwMDNlZ3JvdXBzKSAge1xuIFx0XHRncm91cCA9IDA7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A0LmNcbmluZGV4IGIxZTUwOWIyMzFjZDkuLmQxNDljZjBkMDdiZTYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jXG5AQCAtMTMxLDggJiM0MzsxMzEsNyBAQCBzdGF0aWMgaW50IGR1bXBfdGNwX3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3Bfc29jayAqdHAsXG4gXHRcdCAgICAgICBpY3NrLVx1MDAzZWljc2tfcHJvYmVzX291dCxcbiBcdFx0ICAgICAgIHNvY2tfaV9pbm8oc3ApLFxuIFx0XHQgICAgICAgc3AtXHUwMDNlc2tfcmVmY250LnJlZnMuY291bnRlcik7XG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OyVwSyAlbHUgJWx1ICV1ICV1ICVkXFxuXCYjMzQ7LFxuLVx0XHQgICAgICAgdHAsXG4mIzQzO1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDswICVsdSAlbHUgJXUgJXUgJWRcXG5cJiMzNDssXG4gXHRcdCAgICAgICBqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay1cdTAwM2VpY3NrX3J0byksXG4gXHRcdCAgICAgICBqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay1cdTAwM2VpY3NrX2Fjay5hdG8pLFxuIFx0XHQgICAgICAgKGljc2stXHUwMDNlaWNza19hY2sucXVpY2sgXHUwMDNjXHUwMDNjIDEpIHwgaW5ldF9jc2tfaW5fcGluZ3BvbmdfbW9kZShpY3NrKSxcbkBAIC0xNjEsMTAgJiM0MzsxNjAsMTAgQEAgc3RhdGljIGludCBkdW1wX3R3X3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3BfdGltZXdhaXRfc29jayAqdHR3LFxuIFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDslNGQ6ICUwOFg6JTA0WCAlMDhYOiUwNFggXCYjMzQ7LFxuIFx0XHQgICAgICAgc2VxX251bSwgc3JjLCBzcmNwLCBkZXN0LCBkZXN0cCk7XG4gXG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OyUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkICVwS1xcblwmIzM0OyxcbiYjNDM7XHRCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OyUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkIDBcXG5cJiMzNDssXG4gXHRcdCAgICAgICB0dy1cdTAwM2V0d19zdWJzdGF0ZSwgMCwgMCxcbiBcdFx0ICAgICAgIDMsIGppZmZpZXNfZGVsdGFfdG9fY2xvY2tfdChkZWx0YSksIDAsIDAsIDAsIDAsXG4tXHRcdCAgICAgICB0dy1cdTAwM2V0d19yZWZjbnQucmVmcy5jb3VudGVyLCB0dyk7XG4mIzQzO1x0XHQgICAgICAgdHctXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlcik7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG5AQCAtMTg1LDkgJiM0MzsxODQsOSBAQCBzdGF0aWMgaW50IGR1bXBfcmVxX3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3BfcmVxdWVzdF9zb2NrICp0cmVxLFxuIFx0XHQgICAgICAgc2VxX251bSwgaXJzay1cdTAwM2Vpcl9sb2NfYWRkcixcbiBcdFx0ICAgICAgIGlyc2stXHUwMDNlaXJfbnVtLCBpcnNrLVx1MDAzZWlyX3JtdF9hZGRyLFxuIFx0XHQgICAgICAgYnBmX250b2hzKGlyc2stXHUwMDNlaXJfcm10X3BvcnQpKTtcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxuXCYjMzQ7LFxuJiM0MztcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxcblwmIzM0OyxcbiBcdFx0ICAgICAgIFRDUF9TWU5fUkVDViwgMCwgMCwgMSwgamlmZmllc190b19jbG9ja190KHR0ZCksXG4tXHRcdCAgICAgICByZXEtXHUwMDNlbnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCwgcmVxKTtcbiYjNDM7XHRcdCAgICAgICByZXEtXHUwMDNlbnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCk7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A2LmNcbmluZGV4IGRiYzcxNjZhZWU5MWYuLmNkNjVmYTgxZjEyMTkgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNi5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNi5jXG5AQCAtMTM1LDggJiM0MzsxMzUsNyBAQCBzdGF0aWMgaW50IGR1bXBfdGNwNl9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwNl9zb2NrICp0cCxcbiBcdFx0ICAgICAgIGljc2stXHUwMDNlaWNza19wcm9iZXNfb3V0LFxuIFx0XHQgICAgICAgc29ja19pX2lubyhzcCksXG4gXHRcdCAgICAgICBzcC1cdTAwM2Vza19yZWZjbnQucmVmcy5jb3VudGVyKTtcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JXBLICVsdSAlbHUgJXUgJXUgJWRcXG5cJiMzNDssXG4tXHRcdCAgICAgICB0cCxcbiYjNDM7XHRCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OzAgJWx1ICVsdSAldSAldSAlZFxcblwmIzM0OyxcbiBcdFx0ICAgICAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLVx1MDAzZWljc2tfcnRvKSxcbiBcdFx0ICAgICAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLVx1MDAzZWljc2tfYWNrLmF0byksXG4gXHRcdCAgICAgICAoaWNzay1cdTAwM2VpY3NrX2Fjay5xdWljayBcdTAwM2NcdTAwM2MgMSkgfCBpbmV0X2Nza19pbl9waW5ncG9uZ19tb2RlKGljc2spLFxuQEAgLTE3MCwxMCAmIzQzOzE2OSwxMCBAQCBzdGF0aWMgaW50IGR1bXBfdHdfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcF90aW1ld2FpdF9zb2NrICp0dHcsXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlswXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMV0sXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlsyXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbM10sIGRlc3RwKTtcbiBcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxuXCYjMzQ7LFxuJiM0MztcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxcblwmIzM0OyxcbiBcdFx0ICAgICAgIHR3LVx1MDAzZXR3X3N1YnN0YXRlLCAwLCAwLFxuIFx0XHQgICAgICAgMywgamlmZmllc19kZWx0YV90b19jbG9ja190KGRlbHRhKSwgMCwgMCwgMCwgMCxcbi1cdFx0ICAgICAgIHR3LVx1MDAzZXR3X3JlZmNudC5yZWZzLmNvdW50ZXIsIHR3KTtcbiYjNDM7XHRcdCAgICAgICB0dy1cdTAwM2V0d19yZWZjbnQucmVmcy5jb3VudGVyKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbkBAIC0yMDEsOSAmIzQzOzIwMCw5IEBAIHN0YXRpYyBpbnQgZHVtcF9yZXFfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcF9yZXF1ZXN0X3NvY2sgKnRyZXEsXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlswXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMV0sXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlsyXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbM10sXG4gXHRcdCAgICAgICBicGZfbnRvaHMoaXJzay1cdTAwM2Vpcl9ybXRfcG9ydCkpO1xuLVx0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAlcEtcXG5cJiMzNDssXG4mIzQzO1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAwXFxuXCYjMzQ7LFxuIFx0XHQgICAgICAgVENQX1NZTl9SRUNWLCAwLCAwLCAxLCBqaWZmaWVzX3RvX2Nsb2NrX3QodHRkKSxcbi1cdFx0ICAgICAgIHJlcS1cdTAwM2VudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwLCByZXEpO1xuJiM0MztcdFx0ICAgICAgIHJlcS1cdTAwM2VudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDQuY1xuaW5kZXggMjNiMmFhMjYwNGRlMi4uOWI3ODlmMDlmMTQ2MiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA0LmNcbkBAIC01NywxMyAmIzQzOzU3LDEzIEBAIGludCBkdW1wX3VkcDQoc3RydWN0IGJwZl9pdGVyX191ZHAgKmN0eClcbiBcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTVkOiAlMDhYOiUwNFggJTA4WDolMDRYIFwmIzM0OyxcbiBcdFx0ICAgICAgIGN0eC1cdTAwM2VidWNrZXQsIHNyYywgc3JjcCwgZGVzdCwgZGVzdHApO1xuIFxuLVx0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTV1ICU4ZCAlbHUgJWQgJXBLICV1XFxuXCYjMzQ7LFxuJiM0MztcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1dSAlOGQgJWx1ICVkICU4ZCAldVxcblwmIzM0OyxcbiBcdFx0ICAgICAgIGluZXQtXHUwMDNlc2suc2tfc3RhdGUsXG4gXHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3dtZW1fYWxsb2MucmVmcy5jb3VudGVyIC0gMSxcbiBcdFx0ICAgICAgIHJxdWV1ZSxcbiBcdFx0ICAgICAgIDAsIDBMLCAwLCBjdHgtXHUwMDNldWlkLCAwLFxuIFx0XHQgICAgICAgc29ja19pX2lubyhcdTAwMjZpbmV0LVx1MDAzZXNrKSxcbi1cdFx0ICAgICAgIGluZXQtXHUwMDNlc2suc2tfcmVmY250LnJlZnMuY291bnRlciwgdWRwX3NrLFxuJiM0MztcdFx0ICAgICAgIGluZXQtXHUwMDNlc2suc2tfcmVmY250LnJlZnMuY291bnRlciwgMCxcbiBcdFx0ICAgICAgIHVkcF9zay1cdTAwM2Vkcm9wX2NvdW50ZXJzLmRyb3BzMC5jb3VudGVyICYjNDM7XG4gXHRcdCAgICAgICB1ZHBfc2stXHUwMDNlZHJvcF9jb3VudGVycy5kcm9wczEuY291bnRlcik7XG4gXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA2LmNcbmluZGV4IGM0OGIwNWFhMmE0YjIuLjk3NjZlZmY3MDY5ZmYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNi5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNi5jXG5AQCAtNjUsMTMgJiM0Mzs2NSwxMyBAQCBpbnQgZHVtcF91ZHA2KHN0cnVjdCBicGZfaXRlcl9fdWRwICpjdHgpXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlswXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMV0sXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlsyXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbM10sIGRlc3RwKTtcbiBcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1dSAlOGQgJWx1ICVkICVwSyAldVxcblwmIzM0OyxcbiYjNDM7XHRCUEZfU0VRX1BSSU5URihzZXEsIFwmIzM0OyUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlOGQgJXVcXG5cJiMzNDssXG4gXHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3N0YXRlLFxuIFx0XHQgICAgICAgaW5ldC1cdTAwM2Vzay5za193bWVtX2FsbG9jLnJlZnMuY291bnRlciAtIDEsXG4gXHRcdCAgICAgICBycXVldWUsXG4gXHRcdCAgICAgICAwLCAwTCwgMCwgY3R4LVx1MDAzZXVpZCwgMCxcbiBcdFx0ICAgICAgIHNvY2tfaV9pbm8oXHUwMDI2aW5ldC1cdTAwM2VzayksXG4tXHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3JlZmNudC5yZWZzLmNvdW50ZXIsIHVkcF9zayxcbiYjNDM7XHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3JlZmNudC5yZWZzLmNvdW50ZXIsIDAsXG4gXHRcdCAgICAgICB1ZHBfc2stXHUwMDNlZHJvcF9jb3VudGVycy5kcm9wczAuY291bnRlciAmIzQzO1xuIFx0XHQgICAgICAgdWRwX3NrLVx1MDAzZWRyb3BfY291bnRlcnMuZHJvcHMxLmNvdW50ZXIpO1xuIFx0cmV0dXJuIDA7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VuaXguYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91bml4LmNcbmluZGV4IGEyNjUyYzhjMzYxNmYuLjM2NjkwNDc4OTkyZjggMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jXG5AQCAtNDQsOCAmIzQzOzQ0LDcgQEAgaW50IGR1bXBfdW5peChzdHJ1Y3QgYnBmX2l0ZXJfX3VuaXggKmN0eClcbiBcdGlmIChzZXFfbnVtID09IDApXG4gXHRcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7TnVtICAgICAgICAgICAgICAgUmVmQ291bnQgUHJvdG9jb2wgRmxhZ3MgICAgVHlwZSBTdCAgICBJbm9kZSBQYXRoXFxuXCYjMzQ7KTtcbiBcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCYjMzQ7JXBLOiAlMDhYICUwOFggJTA4WCAlMDRYICUwMlggJThsdVwmIzM0Oyxcbi1cdFx0ICAgICAgIHVuaXhfc2ssXG4mIzQzO1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcJiMzNDslMDh1OiAlMDhYICUwOFggJTA4WCAlMDRYICUwMlggJThsdVwmIzM0OywgMCxcbiBcdFx0ICAgICAgIHNrLVx1MDAzZXNrX3JlZmNudC5yZWZzLmNvdW50ZXIsXG4gXHRcdCAgICAgICAwLFxuIFx0XHQgICAgICAgc2stXHUwMDNlc2tfc3RhdGUgPT0gVENQX0xJU1RFTiA/IF9fU09fQUNDRVBUQ09OIDogMCxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGVzdF9zbnByaW50Zi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3Rlc3Rfc25wcmludGYuY1xuaW5kZXggOGZkYTA3NTQ0MDIzNS4uNDhhMDAyNWNmMmNhOCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90ZXN0X3NucHJpbnRmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90ZXN0X3NucHJpbnRmLmNcbkBAIC01Nyw4ICYjNDM7NTcsOCBAQCBpbnQgaGFuZGxlcihjb25zdCB2b2lkICpjdHgpXG4gXHRzeW1fcmV0ICA9IEJQRl9TTlBSSU5URihzeW1fb3V0LCAgc2l6ZW9mKHN5bV9vdXQpLCBcJiMzNDslcHMgJXBTICVwQlwmIzM0OyxcbiBcdFx0XHRcdFx1MDAyNnNjaGVkdWxlLCBcdTAwMjZzY2hlZHVsZSwgXHUwMDI2c2NoZWR1bGUpO1xuIFx0LyogS2VybmVsIHBvaW50ZXJzICovXG4tXHRhZGRyX3JldCA9IEJQRl9TTlBSSU5URihhZGRyX291dCwgc2l6ZW9mKGFkZHJfb3V0KSwgXCYjMzQ7JXBLICVweCAlcFwmIzM0Oyxcbi1cdFx0XHRcdDAsIDB4RkZGRjAwMDAwQURENEU1NSwgMHhGRkZGMDAwMDBBREQ0RTU1KTtcbiYjNDM7XHRhZGRyX3JldCA9IEJQRl9TTlBSSU5URihhZGRyX291dCwgc2l6ZW9mKGFkZHJfb3V0KSwgXCYjMzQ7JXB4ICVwXCYjMzQ7LFxuJiM0MztcdFx0XHRcdDB4RkZGRjAwMDAwQURENEU1NSwgMHhGRkZGMDAwMDBBREQ0RTU1KTtcbiBcdC8qIFN0cmluZ3MgYW5kIHNpbmdsZS1ieXRlIGNoYXJhY3RlciBlbWJlZGRpbmcgKi9cbiBcdHN0cl9yZXQgID0gQlBGX1NOUFJJTlRGKHN0cl9vdXQsIHNpemVvZihzdHJfb3V0KSwgXCYjMzQ7JXMgJSA5YyAlJiM0MzsyYyAlLTNjICUwNGMgJTBjICUmIzQzOzA1c1wmIzM0OyxcbiBcdFx0XHRcdHN0cjEsICYjMzk7YSYjMzk7LCAmIzM5O2ImIzM5OywgJiMzOTtjJiMzOTssICYjMzk7ZCYjMzk7LCAmIzM5O2UmIzM5OywgbG9uZ3N0cik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMTY6MjA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBCUEYgc2VsZnRlc3RzIGFuZCBzZWxmdGVzdCBkb2N1bWVudGF0aW9uIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8uIEJlY2F1c2UgdGhlc2UgY2hhbmdlcyBvbmx5IGFmZmVjdCB1c2Vyc3BhY2UgdGVzdCBhcnRpZmFjdHMgYW5kIGRvIG5vdCBhbHRlciB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcywgdGhleSBhcmUgbm90IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3MKdG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncywKYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy4KCi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6CiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZAogIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuCiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLAogIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy4KCi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgJiMzNDtOTyBGVU5DVElPTkFMIENIQU5HRSYjMzQ7IChORkNJKSBPUiAmIzM0O1JFRkFDVE9SSU5HJiMzNDsgQ0xBSU1TOgogIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgJiMzNDtjbGVhbnVwcyYjMzQ7LCAmIzM0O3JlZmFjdG9yaW5ncyYjMzQ7LCBvciBzdGF0ZQogICYjMzQ7Tm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQmIzM0Oy4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuCiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50CiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuCiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC4KCi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6CiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLAogIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLgogIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXIKICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoyLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOgoKLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOgogICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLgogICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pCiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuCiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50cwogICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy4KICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy4KLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6CiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczoKICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZwogICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuCiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQozLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6Ci0gQ29yZSBTdWJzeXN0ZW1zOgogICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLAogICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLgotIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczoKICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy4KLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6CiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuCi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczoKICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpXaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjoKCi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOgogIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzCiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHQKICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS4KICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgJiMzNDtmb2N1c2VkJiMzNDssCiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLgoKLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6CiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzCiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuCgotIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKToKICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrCiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuCiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyCiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlncwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOgotIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCi0gQ2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC4KLSBTdHJpcCBhbnkgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+VGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjQKCkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNzdjYTlkMjkzYWI4MGM4N2M3NTQ4OTIwYzg1M2QxYTdjZjUxYWI0OQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgU2VwIDExIDE2OjIwOjA1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL1JFQURNRS5yc3QgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdAppbmRleCAwN2M4MzQ0MzNiMzg4Li43NWZmMTE0MmMxODU3IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdApAQCAtMTg3LDcgJiM0MzsxODcsNyBAQCBUaGUgc3ltcHRvbSBmb3IgYGBicGZfaXRlci9uZXRsaW5rYGAgbG9va3MgbGlrZQogICAuLi4KICAgMTU6IChiZikgcjIgPSByNwogICAxNjogKDBmKSByMiAmIzQzOz0gcjEKLSAgOyBCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JXBLICUtM2QgJiMzNDssIHMsIHMtJmd0O3NrX3Byb3RvY29sKTsKJiM0MzsgIDsgQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OyVwICUtM2QgJiMzNDssIHMsIHMtJmd0O3NrX3Byb3RvY29sKTsKICAgMTc6ICg3YikgKih1NjQgKikocjcgJiM0MzswKSA9IHIyCiAgIG9ubHkgcmVhZCBpcyBzdXBwb3J0ZWQKIApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3NucHJpbnRmLmMKaW5kZXggNGU0YTgyZDU0Zjc5OS4uZjJjZDQ0MmM0NjgzYyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9zbnByaW50Zi5jCkBAIC0xNiw3ICYjNDM7MTYsNyBAQAogI2RlZmluZSBNSU5fU1lNX1JFVCAgc2l6ZW9mKEVYUF9TWU1fT1VUKQogCiAvKiBUaGUgdGhpcmQgc3BlY2lmaWVyLCAlcCwgaXMgYSBoYXNoZWQgcG9pbnRlciB3aGljaCBjaGFuZ2VzIG9uIGV2ZXJ5IHJlYm9vdCAqLwotI2RlZmluZSBFWFBfQUREUl9PVVQgJiMzNDswMDAwMDAwMDAwMDAwMDAwIGZmZmYwMDAwMGFkZDRlNTUgJiMzNDsKJiM0MzsjZGVmaW5lIEVYUF9BRERSX09VVCAmIzM0O2ZmZmYwMDAwMGFkZDRlNTUgJiMzNDsKICNkZWZpbmUgRVhQX0FERFJfUkVUIHNpemVvZihFWFBfQUREUl9PVVQgJiMzNDt1bmtub3duaGFzaGVkcHRyJiMzNDspCiAKICNkZWZpbmUgRVhQX1NUUl9PVVQgICYjMzQ7c3RyMSAgICAgICAgIGEgIGIgYyAgICAgIGQgZSBsb25nc3RyJiMzNDsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfbmV0bGluay5jCmluZGV4IDAwYjJjZWFlODFmYjAuLmI5MTA3ZDNhYjYwMzkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX25ldGxpbmsuYwpAQCAtMjUsMTIgJiM0MzsyNSwxMiBAQCBpbnQgZHVtcF9uZXRsaW5rKHN0cnVjdCBicGZfaXRlcl9fbmV0bGluayAqY3R4KQogCQlyZXR1cm4gMDsKIAogCWlmIChjdHgtJmd0O21ldGEtJmd0O3NlcV9udW0gPT0gMCkKLQkJQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0O3NrICAgICAgICAgICAgICAgRXRoIFBpZCAgICAgICAgR3JvdXBzICAgJiMzNDsKJiM0MzsJCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDtzayBFdGggUGlkICAgICAgICBHcm91cHMgICAmIzM0OwogCQkJCSAgICAmIzM0O1JtZW0gICAgIFdtZW0gICAgIER1bXAgIExvY2tzICAgIERyb3BzICAgICYjMzQ7CiAJCQkJICAgICYjMzQ7SW5vZGVcbiYjMzQ7KTsKIAogCXMgPSAmYW1wO25say0mZ3Q7c2s7Ci0JQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OyVwSyAlLTNkICYjMzQ7LCBzLCBzLSZndDtza19wcm90b2NvbCk7CiYjNDM7CUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDswICAlLTNkICYjMzQ7LCBzLSZndDtza19wcm90b2NvbCk7CiAKIAlpZiAoIW5say0mZ3Q7Z3JvdXBzKSAgewogCQlncm91cCA9IDA7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDQuYwppbmRleCBiMWU1MDliMjMxY2Q5Li5kMTQ5Y2YwZDA3YmU2IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A0LmMKQEAgLTEzMSw4ICYjNDM7MTMxLDcgQEAgc3RhdGljIGludCBkdW1wX3RjcF9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwX3NvY2sgKnRwLAogCQkgICAgICAgaWNzay0mZ3Q7aWNza19wcm9iZXNfb3V0LAogCQkgICAgICAgc29ja19pX2lubyhzcCksCiAJCSAgICAgICBzcC0mZ3Q7c2tfcmVmY250LnJlZnMuY291bnRlcik7Ci0JQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OyVwSyAlbHUgJWx1ICV1ICV1ICVkXG4mIzM0OywKLQkJICAgICAgIHRwLAomIzQzOwlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7MCAlbHUgJWx1ICV1ICV1ICVkXG4mIzM0OywKIAkJICAgICAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLSZndDtpY3NrX3J0byksCiAJCSAgICAgICBqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay0mZ3Q7aWNza19hY2suYXRvKSwKIAkJICAgICAgIChpY3NrLSZndDtpY3NrX2Fjay5xdWljayAmbHQ7Jmx0OyAxKSB8IGluZXRfY3NrX2luX3Bpbmdwb25nX21vZGUoaWNzayksCkBAIC0xNjEsMTAgJiM0MzsxNjAsMTAgQEAgc3RhdGljIGludCBkdW1wX3R3X3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3BfdGltZXdhaXRfc29jayAqdHR3LAogCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslNGQ6ICUwOFg6JTA0WCAlMDhYOiUwNFggJiMzNDssCiAJCSAgICAgICBzZXFfbnVtLCBzcmMsIHNyY3AsIGRlc3QsIGRlc3RwKTsKIAotCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAlcEtcbiYjMzQ7LAomIzQzOwlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxuJiMzNDssCiAJCSAgICAgICB0dy0mZ3Q7dHdfc3Vic3RhdGUsIDAsIDAsCiAJCSAgICAgICAzLCBqaWZmaWVzX2RlbHRhX3RvX2Nsb2NrX3QoZGVsdGEpLCAwLCAwLCAwLCAwLAotCQkgICAgICAgdHctJmd0O3R3X3JlZmNudC5yZWZzLmNvdW50ZXIsIHR3KTsKJiM0MzsJCSAgICAgICB0dy0mZ3Q7dHdfcmVmY250LnJlZnMuY291bnRlcik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE4NSw5ICYjNDM7MTg0LDkgQEAgc3RhdGljIGludCBkdW1wX3JlcV9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwX3JlcXVlc3Rfc29jayAqdHJlcSwKIAkJICAgICAgIHNlcV9udW0sIGlyc2stJmd0O2lyX2xvY19hZGRyLAogCQkgICAgICAgaXJzay0mZ3Q7aXJfbnVtLCBpcnNrLSZndDtpcl9ybXRfYWRkciwKIAkJICAgICAgIGJwZl9udG9ocyhpcnNrLSZndDtpcl9ybXRfcG9ydCkpOwotCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAlcEtcbiYjMzQ7LAomIzQzOwlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxuJiMzNDssCiAJCSAgICAgICBUQ1BfU1lOX1JFQ1YsIDAsIDAsIDEsIGppZmZpZXNfdG9fY2xvY2tfdCh0dGQpLAotCQkgICAgICAgcmVxLSZndDtudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwLCByZXEpOwomIzQzOwkJICAgICAgIHJlcS0mZ3Q7bnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A2LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNi5jCmluZGV4IGRiYzcxNjZhZWU5MWYuLmNkNjVmYTgxZjEyMTkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A2LmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDYuYwpAQCAtMTM1LDggJiM0MzsxMzUsNyBAQCBzdGF0aWMgaW50IGR1bXBfdGNwNl9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwNl9zb2NrICp0cCwKIAkJICAgICAgIGljc2stJmd0O2ljc2tfcHJvYmVzX291dCwKIAkJICAgICAgIHNvY2tfaV9pbm8oc3ApLAogCQkgICAgICAgc3AtJmd0O3NrX3JlZmNudC5yZWZzLmNvdW50ZXIpOwotCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslcEsgJWx1ICVsdSAldSAldSAlZFxuJiMzNDssCi0JCSAgICAgICB0cCwKJiM0MzsJQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OzAgJWx1ICVsdSAldSAldSAlZFxuJiMzNDssCiAJCSAgICAgICBqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay0mZ3Q7aWNza19ydG8pLAogCQkgICAgICAgamlmZmllc190b19jbG9ja190KGljc2stJmd0O2ljc2tfYWNrLmF0byksCiAJCSAgICAgICAoaWNzay0mZ3Q7aWNza19hY2sucXVpY2sgJmx0OyZsdDsgMSkgfCBpbmV0X2Nza19pbl9waW5ncG9uZ19tb2RlKGljc2spLApAQCAtMTcwLDEwICYjNDM7MTY5LDEwIEBAIHN0YXRpYyBpbnQgZHVtcF90d19zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwX3RpbWV3YWl0X3NvY2sgKnR0dywKIAkJICAgICAgIGRlc3QtJmd0O3M2X2FkZHIzMlswXSwgZGVzdC0mZ3Q7czZfYWRkcjMyWzFdLAogCQkgICAgICAgZGVzdC0mZ3Q7czZfYWRkcjMyWzJdLCBkZXN0LSZndDtzNl9hZGRyMzJbM10sIGRlc3RwKTsKIAotCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAlcEtcbiYjMzQ7LAomIzQzOwlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxuJiMzNDssCiAJCSAgICAgICB0dy0mZ3Q7dHdfc3Vic3RhdGUsIDAsIDAsCiAJCSAgICAgICAzLCBqaWZmaWVzX2RlbHRhX3RvX2Nsb2NrX3QoZGVsdGEpLCAwLCAwLCAwLCAwLAotCQkgICAgICAgdHctJmd0O3R3X3JlZmNudC5yZWZzLmNvdW50ZXIsIHR3KTsKJiM0MzsJCSAgICAgICB0dy0mZ3Q7dHdfcmVmY250LnJlZnMuY291bnRlcik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTIwMSw5ICYjNDM7MjAwLDkgQEAgc3RhdGljIGludCBkdW1wX3JlcV9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwX3JlcXVlc3Rfc29jayAqdHJlcSwKIAkJICAgICAgIGRlc3QtJmd0O3M2X2FkZHIzMlswXSwgZGVzdC0mZ3Q7czZfYWRkcjMyWzFdLAogCQkgICAgICAgZGVzdC0mZ3Q7czZfYWRkcjMyWzJdLCBkZXN0LSZndDtzNl9hZGRyMzJbM10sCiAJCSAgICAgICBicGZfbnRvaHMoaXJzay0mZ3Q7aXJfcm10X3BvcnQpKTsKLQlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXG4mIzM0OywKJiM0MzsJQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OyUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkIDBcbiYjMzQ7LAogCQkgICAgICAgVENQX1NZTl9SRUNWLCAwLCAwLCAxLCBqaWZmaWVzX3RvX2Nsb2NrX3QodHRkKSwKLQkJICAgICAgIHJlcS0mZ3Q7bnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCwgcmVxKTsKJiM0MzsJCSAgICAgICByZXEtJmd0O251bV90aW1lb3V0LCB1aWQsIDAsIDAsIDApOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDQuYwppbmRleCAyM2IyYWEyNjA0ZGUyLi45Yjc4OWYwOWYxNDYyIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNC5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA0LmMKQEAgLTU3LDEzICYjNDM7NTcsMTMgQEAgaW50IGR1bXBfdWRwNChzdHJ1Y3QgYnBmX2l0ZXJfX3VkcCAqY3R4KQogCUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslNWQ6ICUwOFg6JTA0WCAlMDhYOiUwNFggJiMzNDssCiAJCSAgICAgICBjdHgtJmd0O2J1Y2tldCwgc3JjLCBzcmNwLCBkZXN0LCBkZXN0cCk7CiAKLQlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1dSAlOGQgJWx1ICVkICVwSyAldVxuJiMzNDssCiYjNDM7CUJQRl9TRVFfUFJJTlRGKHNlcSwgJiMzNDslMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTV1ICU4ZCAlbHUgJWQgJThkICV1XG4mIzM0OywKIAkJICAgICAgIGluZXQtJmd0O3NrLnNrX3N0YXRlLAogCQkgICAgICAgaW5ldC0mZ3Q7c2suc2tfd21lbV9hbGxvYy5yZWZzLmNvdW50ZXIgLSAxLAogCQkgICAgICAgcnF1ZXVlLAogCQkgICAgICAgMCwgMEwsIDAsIGN0eC0mZ3Q7dWlkLCAwLAogCQkgICAgICAgc29ja19pX2lubygmYW1wO2luZXQtJmd0O3NrKSwKLQkJICAgICAgIGluZXQtJmd0O3NrLnNrX3JlZmNudC5yZWZzLmNvdW50ZXIsIHVkcF9zaywKJiM0MzsJCSAgICAgICBpbmV0LSZndDtzay5za19yZWZjbnQucmVmcy5jb3VudGVyLCAwLAogCQkgICAgICAgdWRwX3NrLSZndDtkcm9wX2NvdW50ZXJzLmRyb3BzMC5jb3VudGVyICYjNDM7CiAJCSAgICAgICB1ZHBfc2stJmd0O2Ryb3BfY291bnRlcnMuZHJvcHMxLmNvdW50ZXIpOwogCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDYuYwppbmRleCBjNDhiMDVhYTJhNGIyLi45NzY2ZWZmNzA2OWZmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNi5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA2LmMKQEAgLTY1LDEzICYjNDM7NjUsMTMgQEAgaW50IGR1bXBfdWRwNihzdHJ1Y3QgYnBmX2l0ZXJfX3VkcCAqY3R4KQogCQkgICAgICAgZGVzdC0mZ3Q7czZfYWRkcjMyWzBdLCBkZXN0LSZndDtzNl9hZGRyMzJbMV0sCiAJCSAgICAgICBkZXN0LSZndDtzNl9hZGRyMzJbMl0sIGRlc3QtJmd0O3M2X2FkZHIzMlszXSwgZGVzdHApOwogCi0JQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OyUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlcEsgJXVcbiYjMzQ7LAomIzQzOwlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1dSAlOGQgJWx1ICVkICU4ZCAldVxuJiMzNDssCiAJCSAgICAgICBpbmV0LSZndDtzay5za19zdGF0ZSwKIAkJICAgICAgIGluZXQtJmd0O3NrLnNrX3dtZW1fYWxsb2MucmVmcy5jb3VudGVyIC0gMSwKIAkJICAgICAgIHJxdWV1ZSwKIAkJICAgICAgIDAsIDBMLCAwLCBjdHgtJmd0O3VpZCwgMCwKIAkJICAgICAgIHNvY2tfaV9pbm8oJmFtcDtpbmV0LSZndDtzayksCi0JCSAgICAgICBpbmV0LSZndDtzay5za19yZWZjbnQucmVmcy5jb3VudGVyLCB1ZHBfc2ssCiYjNDM7CQkgICAgICAgaW5ldC0mZ3Q7c2suc2tfcmVmY250LnJlZnMuY291bnRlciwgMCwKIAkJICAgICAgIHVkcF9zay0mZ3Q7ZHJvcF9jb3VudGVycy5kcm9wczAuY291bnRlciAmIzQzOwogCQkgICAgICAgdWRwX3NrLSZndDtkcm9wX2NvdW50ZXJzLmRyb3BzMS5jb3VudGVyKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91bml4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jCmluZGV4IGEyNjUyYzhjMzYxNmYuLjM2NjkwNDc4OTkyZjggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91bml4LmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VuaXguYwpAQCAtNDQsOCAmIzQzOzQ0LDcgQEAgaW50IGR1bXBfdW5peChzdHJ1Y3QgYnBmX2l0ZXJfX3VuaXggKmN0eCkKIAlpZiAoc2VxX251bSA9PSAwKQogCQlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7TnVtICAgICAgICAgICAgICAgUmVmQ291bnQgUHJvdG9jb2wgRmxhZ3MgICAgVHlwZSBTdCAgICBJbm9kZSBQYXRoXG4mIzM0Oyk7CiAKLQlCUEZfU0VRX1BSSU5URihzZXEsICYjMzQ7JXBLOiAlMDhYICUwOFggJTA4WCAlMDRYICUwMlggJThsdSYjMzQ7LAotCQkgICAgICAgdW5peF9zaywKJiM0MzsJQlBGX1NFUV9QUklOVEYoc2VxLCAmIzM0OyUwOHU6ICUwOFggJTA4WCAlMDhYICUwNFggJTAyWCAlOGx1JiMzNDssIDAsCiAJCSAgICAgICBzay0mZ3Q7c2tfcmVmY250LnJlZnMuY291bnRlciwKIAkJICAgICAgIDAsCiAJCSAgICAgICBzay0mZ3Q7c2tfc3RhdGUgPT0gVENQX0xJU1RFTiA/IF9fU09fQUNDRVBUQ09OIDogMCwKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90ZXN0X3NucHJpbnRmLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGVzdF9zbnByaW50Zi5jCmluZGV4IDhmZGEwNzU0NDAyMzUuLjQ4YTAwMjVjZjJjYTggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90ZXN0X3NucHJpbnRmLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3Rlc3Rfc25wcmludGYuYwpAQCAtNTcsOCAmIzQzOzU3LDggQEAgaW50IGhhbmRsZXIoY29uc3Qgdm9pZCAqY3R4KQogCXN5bV9yZXQgID0gQlBGX1NOUFJJTlRGKHN5bV9vdXQsICBzaXplb2Yoc3ltX291dCksICYjMzQ7JXBzICVwUyAlcEImIzM0OywKIAkJCQkmYW1wO3NjaGVkdWxlLCAmYW1wO3NjaGVkdWxlLCAmYW1wO3NjaGVkdWxlKTsKIAkvKiBLZXJuZWwgcG9pbnRlcnMgKi8KLQlhZGRyX3JldCA9IEJQRl9TTlBSSU5URihhZGRyX291dCwgc2l6ZW9mKGFkZHJfb3V0KSwgJiMzNDslcEsgJXB4ICVwJiMzNDssCi0JCQkJMCwgMHhGRkZGMDAwMDBBREQ0RTU1LCAweEZGRkYwMDAwMEFERDRFNTUpOwomIzQzOwlhZGRyX3JldCA9IEJQRl9TTlBSSU5URihhZGRyX291dCwgc2l6ZW9mKGFkZHJfb3V0KSwgJiMzNDslcHggJXAmIzM0OywKJiM0MzsJCQkJMHhGRkZGMDAwMDBBREQ0RTU1LCAweEZGRkYwMDAwMEFERDRFNTUpOwogCS8qIFN0cmluZ3MgYW5kIHNpbmdsZS1ieXRlIGNoYXJhY3RlciBlbWJlZGRpbmcgKi8KIAlzdHJfcmV0ICA9IEJQRl9TTlBSSU5URihzdHJfb3V0LCBzaXplb2Yoc3RyX291dCksICYjMzQ7JXMgJSA5YyAlJiM0MzsyYyAlLTNjICUwNGMgJTBjICUmIzQzOzA1cyYjMzQ7LAogCQkJCXN0cjEsICYjMzk7YSYjMzk7LCAmIzM5O2ImIzM5OywgJiMzOTtjJiMzOTssICYjMzk7ZCYjMzk7LCAmIzM5O2UmIzM5OywgbG9uZ3N0cik7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDE2OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcyMjMKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiA0MzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nPUZhbHNlIERlY2lzaW9uKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIG5lZWQgdG8gbWV0aWN1bG91c2x5IGV4YW1pbmUgdGhlIGRpZmYuIFJpZ2h0IGF3YXksIEkgc2VlIHRoZSBjaGFuZ2VzIGFyZSBjb25maW5lZCB0byB0aGUgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gIGRpcmVjdG9yeS4gVGhlIHNwZWNpZmljIGZpbGVzIG1vZGlmaWVkIGFyZSBgUkVBRE1FLnJzdGAsIGBzbnByaW50Zi5jYCwgYW5kIGEgc2VyaWVzIG9mIHByb2dyYW1zIHJlbGF0ZWQgdG8gYGJwZl9pdGVyYCBmb3IgdmFyaW91cyBuZXR3b3JrIHByb3RvY29scyAoVENQNCwgVENQNiwgVURQNCwgVURQNiwgVW5peCBzb2NrZXRzKSwgYWxvbmcgd2l0aCBhIGB0ZXN0X3NucHJpbnRmLmNgLgoKTm93LCBJJiMzOTttIGdvaW5nIHRvIGFwcGx5IHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSBmcm9tIFNlY3Rpb24gMi4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uOiBkbyB0aGVzZSBjaGFuZ2VzIGZhbGwgaW50byB0aGUgJiMzNDtOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzJiMzNDsgY2F0ZWdvcnk/IFNwZWNpZmljYWxseSwgYXJlIHRoZXNlIG1vZGlmaWNhdGlvbnMgdG8gdXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyB0aGF0ICpkb24mIzM5O3QqIGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlPwoKTG9va2luZyBhdCB0aGUgY29udGV4dCwgdGhpcyBpcyBwcmV0dHkgY2xlYXIgY3V0LiBUaGUgY2hhbmdlcyBhcmUgYWxsIHdpdGhpbiB0aGUgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gIGRpcmVjdG9yeS4gVGhlc2UgYXJlIHVzZXItc3BhY2UgQlBGIHNlbGYtdGVzdHMuIFRoZXkgYXJlIG5vdCB0b3VjaGluZyBhbnkga2VybmVsIGNvZGUsIHZtbGludXgsIG9yIGtlcm5lbCBtb2R1bGVzLgoKSSYjMzk7bGwgZG8gYSBmaW5hbCBxdWljayBjaGVjayB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1cnByaXNlcyBlbHNld2hlcmUgaW4gdGhlIEhFQUQgY29tbWl0LiBIb3dldmVyLCBiYXNlZCBvbiB0aGUgaWRlbnRpZmllZCBmaWxlcywgaXQmIzM5O3MgYSBzdHJhaWdodGZvcndhcmQgZGVjaXNpb24uICoqV29ydGhGdXp6aW5nID0gRmFsc2UuKioKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAxNjoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDsuKiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTgwNDIxIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5rZXJuZWwvLmdpdGlnbm9yZToxOiMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxua2VybmVsLy5naXRpZ25vcmU6MjovY29uZmlnX2RhdGFcbmtlcm5lbC8uZ2l0aWdub3JlOjM6L2toZWFkZXJzLm1kNVxua2VybmVsLy5naXRpZ25vcmU6NDova2hlYWRlcnMtb2JqbGlzdFxua2VybmVsLy5naXRpZ25vcmU6NTova2hlYWRlcnMtc3JjbGlzdFxuLS1cbmtlcm5lbC9LY29uZmlnLmZyZWV6ZXI6MTojIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmtlcm5lbC9LY29uZmlnLmZyZWV6ZXI6Mjpjb25maWcgRlJFRVpFUlxua2VybmVsL0tjb25maWcuZnJlZXplcjozOlx0ZGVmX2Jvb2wgUE1fU0xFRVAgfHwgQ0dST1VQX0ZSRUVaRVJcbi0tXG5rZXJuZWwvS2NvbmZpZy5oejoxOiMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxua2VybmVsL0tjb25maWcuaHo6MjojXG5rZXJuZWwvS2NvbmZpZy5oejozOiMgVGltZXIgSW50ZXJydXB0IEZyZXF1ZW5jeSBDb25maWd1cmF0aW9uXG5rZXJuZWwvS2NvbmZpZy5oejo0OiNcbmtlcm5lbC9LY29uZmlnLmh6OjU6XG5rZXJuZWwvS2NvbmZpZy5oejo2OmNob2ljZVxua2VybmVsL0tjb25maWcuaHo6NzpcdHByb21wdCBcJiMzNDtUaW1lciBmcmVxdWVuY3lcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmh6Ojg6XHRkZWZhdWx0IEhaXzI1MFxua2VybmVsL0tjb25maWcuaHo6OTpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmh6OjEwOlx0IEFsbG93cyB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgdGltZXIgZnJlcXVlbmN5LiBJdCBpcyBjdXN0b21hcnlcbmtlcm5lbC9LY29uZmlnLmh6OjExOlx0IHRvIGhhdmUgdGhlIHRpbWVyIGludGVycnVwdCBydW4gYXQgMTAwMCBIeiBidXQgMTAwIEh6IG1heSBiZSBtb3JlXG5rZXJuZWwvS2NvbmZpZy5oejoxMjpcdCBiZW5lZmljaWFsIGZvciBzZXJ2ZXJzIGFuZCBOVU1BIHN5c3RlbXMgdGhhdCBkbyBub3QgbmVlZCB0byBoYXZlXG5rZXJuZWwvS2NvbmZpZy5oejoxMzpcdCBhIGZhc3QgcmVzcG9uc2UgZm9yIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRoYXQgbWF5IGV4cGVyaWVuY2UgYnVzXG5rZXJuZWwvS2NvbmZpZy5oejoxNDpcdCBjb250ZW50aW9uIGFuZCBjYWNoZWxpbmUgYm91bmNlcyBhcyBhIHJlc3VsdCBvZiB0aW1lciBpbnRlcnJ1cHRzLlxua2VybmVsL0tjb25maWcuaHo6MTU6XHQgTm90ZSB0aGF0IHRoZSB0aW1lciBpbnRlcnJ1cHQgb2NjdXJzIG9uIGVhY2ggcHJvY2Vzc29yIGluIGFuIFNNUFxua2VybmVsL0tjb25maWcuaHo6MTY6XHQgZW52aXJvbm1lbnQgbGVhZGluZyB0byBOUl9DUFVTICogSFogbnVtYmVyIG9mIHRpbWVyIGludGVycnVwdHNcbmtlcm5lbC9LY29uZmlnLmh6OjE3Olx0IHBlciBzZWNvbmQuXG5rZXJuZWwvS2NvbmZpZy5oejoxODpcbmtlcm5lbC9LY29uZmlnLmh6OjE5Olxua2VybmVsL0tjb25maWcuaHo6MjA6XHRjb25maWcgSFpfMTAwXG5rZXJuZWwvS2NvbmZpZy5oejoyMTpcdFx0Ym9vbCBcJiMzNDsxMDAgSFpcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmh6OjIyOlx0aGVscFxua2VybmVsL0tjb25maWcuaHo6MjM6XHQgIDEwMCBIeiBpcyBhIHR5cGljYWwgY2hvaWNlIGZvciBzZXJ2ZXJzLCBTTVAgYW5kIE5VTUEgc3lzdGVtc1xua2VybmVsL0tjb25maWcuaHo6MjQ6XHQgIHdpdGggbG90cyBvZiBwcm9jZXNzb3JzIHRoYXQgbWF5IHNob3cgcmVkdWNlZCBwZXJmb3JtYW5jZSBpZlxua2VybmVsL0tjb25maWcuaHo6MjU6XHQgIHRvbyBtYW55IHRpbWVyIGludGVycnVwdHMgYXJlIG9jY3VycmluZy5cbmtlcm5lbC9LY29uZmlnLmh6OjI2Olxua2VybmVsL0tjb25maWcuaHo6Mjc6XHRjb25maWcgSFpfMjUwXG5rZXJuZWwvS2NvbmZpZy5oejoyODpcdFx0Ym9vbCBcJiMzNDsyNTAgSFpcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmh6OjI5Olx0aGVscFxua2VybmVsL0tjb25maWcuaHo6MzA6XHQgMjUwIEh6IGlzIGEgZ29vZCBjb21wcm9taXNlIGNob2ljZSBhbGxvd2luZyBzZXJ2ZXIgcGVyZm9ybWFuY2Vcbmtlcm5lbC9LY29uZmlnLmh6OjMxOlx0IHdoaWxlIGFsc28gc2hvd2luZyBnb29kIGludGVyYWN0aXZlIHJlc3BvbnNpdmVuZXNzIGV2ZW5cbmtlcm5lbC9LY29uZmlnLmh6OjMyOlx0IG9uIFNNUCBhbmQgTlVNQSBzeXN0ZW1zLiBJZiB5b3UgYXJlIGdvaW5nIHRvIGJlIHVzaW5nIE5UU0MgdmlkZW9cbmtlcm5lbC9LY29uZmlnLmh6OjMzOlx0IG9yIG11bHRpbWVkaWEsIHNlbGVjdCAzMDBIeiBpbnN0ZWFkLlxua2VybmVsL0tjb25maWcuaHo6MzQ6XG5rZXJuZWwvS2NvbmZpZy5oejozNTpcdGNvbmZpZyBIWl8zMDBcbmtlcm5lbC9LY29uZmlnLmh6OjM2Olx0XHRib29sIFwmIzM0OzMwMCBIWlwmIzM0O1xua2VybmVsL0tjb25maWcuaHo6Mzc6XHRoZWxwXG5rZXJuZWwvS2NvbmZpZy5oejozODpcdCAzMDAgSHogaXMgYSBnb29kIGNvbXByb21pc2UgY2hvaWNlIGFsbG93aW5nIHNlcnZlciBwZXJmb3JtYW5jZVxua2VybmVsL0tjb25maWcuaHo6Mzk6XHQgd2hpbGUgYWxzbyBzaG93aW5nIGdvb2QgaW50ZXJhY3RpdmUgcmVzcG9uc2l2ZW5lc3MgZXZlblxua2VybmVsL0tjb25maWcuaHo6NDA6XHQgb24gU01QIGFuZCBOVU1BIHN5c3RlbXMgYW5kIGV4YWN0bHkgZGl2aWRpbmcgYnkgYm90aCBQQUwgYW5kXG5rZXJuZWwvS2NvbmZpZy5oejo0MTpcdCBOVFNDIGZyYW1lIHJhdGVzIGZvciB2aWRlbyBhbmQgbXVsdGltZWRpYSB3b3JrLlxua2VybmVsL0tjb25maWcuaHo6NDI6XG5rZXJuZWwvS2NvbmZpZy5oejo0MzpcdGNvbmZpZyBIWl8xMDAwXG5rZXJuZWwvS2NvbmZpZy5oejo0NDpcdFx0Ym9vbCBcJiMzNDsxMDAwIEhaXCYjMzQ7XG5rZXJuZWwvS2NvbmZpZy5oejo0NTpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmh6OjQ2Olx0IDEwMDAgSHogaXMgdGhlIHByZWZlcnJlZCBjaG9pY2UgZm9yIGRlc2t0b3Agc3lzdGVtcyBhbmQgb3RoZXJcbmtlcm5lbC9LY29uZmlnLmh6OjQ3Olx0IHN5c3RlbXMgcmVxdWlyaW5nIGZhc3QgaW50ZXJhY3RpdmUgcmVzcG9uc2VzIHRvIGV2ZW50cy5cbmtlcm5lbC9LY29uZmlnLmh6OjQ4Olxua2VybmVsL0tjb25maWcuaHo6NDk6ZW5kY2hvaWNlXG5rZXJuZWwvS2NvbmZpZy5oejo1MDpcbmtlcm5lbC9LY29uZmlnLmh6OjUxOmNvbmZpZyBIWlxua2VybmVsL0tjb25maWcuaHo6NTI6XHRpbnRcbmtlcm5lbC9LY29uZmlnLmh6OjUzOlx0ZGVmYXVsdCAxMDAgaWYgSFpfMTAwXG5rZXJuZWwvS2NvbmZpZy5oejo1NDpcdGRlZmF1bHQgMjUwIGlmIEhaXzI1MFxua2VybmVsL0tjb25maWcuaHo6NTU6XHRkZWZhdWx0IDMwMCBpZiBIWl8zMDBcbmtlcm5lbC9LY29uZmlnLmh6OjU2Olx0ZGVmYXVsdCAxMDAwIGlmIEhaXzEwMDBcbmtlcm5lbC9LY29uZmlnLmh6OjU3Olxua2VybmVsL0tjb25maWcuaHo6NTg6Y29uZmlnIFNDSEVEX0hSVElDS1xua2VybmVsL0tjb25maWcuaHo6NTk6XHRkZWZfYm9vbCBISUdIX1JFU19USU1FUlNcbi0tXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxOiMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxua2VybmVsL0tjb25maWcua2V4ZWM6Mjpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjM6bWVudSBcJiMzNDtLZXhlYyBhbmQgY3Jhc2ggZmVhdHVyZXNcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQ6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo1OmNvbmZpZyBDUkFTSF9SRVNFUlZFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2Olx0Ym9vbFxua2VybmVsL0tjb25maWcua2V4ZWM6Nzpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjg6Y29uZmlnIFZNQ09SRV9JTkZPXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo5Olx0Ym9vbFxua2VybmVsL0tjb25maWcua2V4ZWM6MTA6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTpjb25maWcgS0VYRUNfQ09SRVxua2VybmVsL0tjb25maWcua2V4ZWM6MTI6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0OmNvbmZpZyBLRVhFQ19FTEZcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE1Olx0Ym9vbFxua2VybmVsL0tjb25maWcua2V4ZWM6MTY6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNzpjb25maWcgSEFWRV9JTUFfS0VYRUNcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE4Olx0Ym9vbFxua2VybmVsL0tjb25maWcua2V4ZWM6MTk6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyMDpjb25maWcgS0VYRUNcbmtlcm5lbC9LY29uZmlnLmtleGVjOjIxOlx0Ym9vbCBcJiMzNDtFbmFibGUga2V4ZWMgc3lzdGVtIGNhbGxcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmtleGVjOjIyOlx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyMzpcdHNlbGVjdCBLRVhFQ19DT1JFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyNDpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjI1Olx0ICBrZXhlYyBpcyBhIHN5c3RlbSBjYWxsIHRoYXQgaW1wbGVtZW50cyB0aGUgYWJpbGl0eSB0byBzaHV0ZG93biB5b3VyXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyNjpcdCAgY3VycmVudCBrZXJuZWwsIGFuZCB0byBzdGFydCBhbm90aGVyIGtlcm5lbC4gSXQgaXMgbGlrZSBhIHJlYm9vdFxua2VybmVsL0tjb25maWcua2V4ZWM6Mjc6XHQgIGJ1dCBpdCBpcyBpbmRlcGVuZGVudCBvZiB0aGUgc3lzdGVtIGZpcm13YXJlLiBBbmQgbGlrZSBhIHJlYm9vdFxua2VybmVsL0tjb25maWcua2V4ZWM6Mjg6XHQgIHlvdSBjYW4gc3RhcnQgYW55IGtlcm5lbCB3aXRoIGl0LCBub3QganVzdCBMaW51eC5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjI5Olxua2VybmVsL0tjb25maWcua2V4ZWM6MzA6XHQgIFRoZSBuYW1lIGNvbWVzIGZyb20gdGhlIHNpbWlsYXJpdHkgdG8gdGhlIGV4ZWMgc3lzdGVtIGNhbGwuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozMTpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjMyOlx0ICBJdCBpcyBhbiBvbmdvaW5nIHByb2Nlc3MgdG8gYmUgY2VydGFpbiB0aGUgaGFyZHdhcmUgaW4gYSBtYWNoaW5lXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozMzpcdCAgaXMgcHJvcGVybHkgc2h1dGRvd24sIHNvIGRvIG5vdCBiZSBzdXJwcmlzZWQgaWYgdGhpcyBjb2RlIGRvZXMgbm90XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozNDpcdCAgaW5pdGlhbGx5IHdvcmsgZm9yIHlvdS4gQXMgb2YgdGhpcyB3cml0aW5nIHRoZSBleGFjdCBoYXJkd2FyZVxua2VybmVsL0tjb25maWcua2V4ZWM6MzU6XHQgIGludGVyZmFjZSBpcyBzdHJvbmdseSBpbiBmbHV4LCBzbyBubyBnb29kIHJlY29tbWVuZGF0aW9uIGNhbiBiZVxua2VybmVsL0tjb25maWcua2V4ZWM6MzY6XHQgIG1hZGUuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozNzpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjM4OmNvbmZpZyBLRVhFQ19GSUxFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozOTpcdGJvb2wgXCYjMzQ7RW5hYmxlIGtleGVjIGZpbGUgYmFzZWQgc3lzdGVtIGNhbGxcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQwOlx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDX0ZJTEVcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQxOlx0c2VsZWN0IENSWVBUT19MSUJfU0hBMjU2XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo0MjpcdHNlbGVjdCBLRVhFQ19DT1JFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo0MzpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQ0Olx0ICBUaGlzIGlzIG5ldyB2ZXJzaW9uIG9mIGtleGVjIHN5c3RlbSBjYWxsLiBUaGlzIHN5c3RlbSBjYWxsIGlzXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo0NTpcdCAgZmlsZSBiYXNlZCBhbmQgdGFrZXMgZmlsZSBkZXNjcmlwdG9ycyBhcyBzeXN0ZW0gY2FsbCBhcmd1bWVudFxua2VybmVsL0tjb25maWcua2V4ZWM6NDY6XHQgIGZvciBrZXJuZWwgYW5kIGluaXRyYW1mcyBhcyBvcHBvc2VkIHRvIGxpc3Qgb2Ygc2VnbWVudHMgYXNcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQ3Olx0ICBhY2NlcHRlZCBieSBrZXhlYyBzeXN0ZW0gY2FsbC5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjQ4Olxua2VybmVsL0tjb25maWcua2V4ZWM6NDk6Y29uZmlnIEtFWEVDX1NJR1xua2VybmVsL0tjb25maWcua2V4ZWM6NTA6XHRib29sIFwmIzM0O1ZlcmlmeSBrZXJuZWwgc2lnbmF0dXJlIGR1cmluZyBrZXhlY19maWxlX2xvYWQoKSBzeXNjYWxsXCYjMzQ7XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo1MTpcdGRlcGVuZHMgb24gQVJDSF9TVVBQT1JUU19LRVhFQ19TSUdcbmtlcm5lbC9LY29uZmlnLmtleGVjOjUyOlx0ZGVwZW5kcyBvbiBLRVhFQ19GSUxFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo1MzpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjU0Olx0ICBUaGlzIG9wdGlvbiBtYWtlcyB0aGUga2V4ZWNfZmlsZV9sb2FkKCkgc3lzY2FsbCBjaGVjayBmb3IgYSB2YWxpZFxua2VybmVsL0tjb25maWcua2V4ZWM6NTU6XHQgIHNpZ25hdHVyZSBvZiB0aGUga2VybmVsIGltYWdlLiBUaGUgaW1hZ2UgY2FuIHN0aWxsIGJlIGxvYWRlZCB3aXRob3V0XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo1NjpcdCAgYSB2YWxpZCBzaWduYXR1cmUgdW5sZXNzIHlvdSBhbHNvIGVuYWJsZSBLRVhFQ19TSUdfRk9SQ0UsIHRob3VnaCBpZlxua2VybmVsL0tjb25maWcua2V4ZWM6NTc6XHQgIHRoZXJlJiMzOTtzIGEgc2lnbmF0dXJlIHRoYXQgd2UgY2FuIGNoZWNrLCB0aGVuIGl0IG11c3QgYmUgdmFsaWQuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo1ODpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjU5Olx0ICBJbiBhZGRpdGlvbiB0byB0aGlzIG9wdGlvbiwgeW91IG5lZWQgdG8gZW5hYmxlIHNpZ25hdHVyZVxua2VybmVsL0tjb25maWcua2V4ZWM6NjA6XHQgIHZlcmlmaWNhdGlvbiBmb3IgdGhlIGNvcnJlc3BvbmRpbmcga2VybmVsIGltYWdlIHR5cGUgYmVpbmdcbmtlcm5lbC9LY29uZmlnLmtleGVjOjYxOlx0ICBsb2FkZWQgaW4gb3JkZXIgZm9yIHRoaXMgdG8gd29yay5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjYyOlxua2VybmVsL0tjb25maWcua2V4ZWM6NjM6Y29uZmlnIEtFWEVDX1NJR19GT1JDRVxua2VybmVsL0tjb25maWcua2V4ZWM6NjQ6XHRib29sIFwmIzM0O1JlcXVpcmUgYSB2YWxpZCBzaWduYXR1cmUgaW4ga2V4ZWNfZmlsZV9sb2FkKCkgc3lzY2FsbFwmIzM0O1xua2VybmVsL0tjb25maWcua2V4ZWM6NjU6XHRkZXBlbmRzIG9uIEFSQ0hfU1VQUE9SVFNfS0VYRUNfU0lHX0ZPUkNFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2NjpcdGRlcGVuZHMgb24gS0VYRUNfU0lHXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2NzpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjY4Olx0ICBUaGlzIG9wdGlvbiBtYWtlcyBrZXJuZWwgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBtYW5kYXRvcnkgZm9yXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2OTpcdCAgdGhlIGtleGVjX2ZpbGVfbG9hZCgpIHN5c2NhbGwuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3MDpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjcxOmNvbmZpZyBLRVhFQ19JTUFHRV9WRVJJRllfU0lHXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3MjpcdGJvb2wgXCYjMzQ7RW5hYmxlIEltYWdlIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gc3VwcG9ydCAoQVJNKVwmIzM0O1xua2VybmVsL0tjb25maWcua2V4ZWM6NzM6XHRkZWZhdWx0IEFSQ0hfREVGQVVMVF9LRVhFQ19JTUFHRV9WRVJJRllfU0lHXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3NDpcdGRlcGVuZHMgb24gQVJDSF9TVVBQT1JUU19LRVhFQ19JTUFHRV9WRVJJRllfU0lHXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3NTpcdGRlcGVuZHMgb24gS0VYRUNfU0lHXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3NjpcdGRlcGVuZHMgb24gRUZJIFx1MDAyNlx1MDAyNiBTSUdORURfUEVfRklMRV9WRVJJRklDQVRJT05cbmtlcm5lbC9LY29uZmlnLmtleGVjOjc3Olx0aGVscFxua2VybmVsL0tjb25maWcua2V4ZWM6Nzg6XHQgIEVuYWJsZSBJbWFnZSBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHN1cHBvcnQuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3OTpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjgwOmNvbmZpZyBLRVhFQ19CWklNQUdFX1ZFUklGWV9TSUdcbmtlcm5lbC9LY29uZmlnLmtleGVjOjgxOlx0Ym9vbCBcJiMzNDtFbmFibGUgYnpJbWFnZSBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHN1cHBvcnRcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmtleGVjOjgyOlx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDX0JaSU1BR0VfVkVSSUZZX1NJR1xua2VybmVsL0tjb25maWcua2V4ZWM6ODM6XHRkZXBlbmRzIG9uIEtFWEVDX1NJR1xua2VybmVsL0tjb25maWcua2V4ZWM6ODQ6XHRkZXBlbmRzIG9uIFNJR05FRF9QRV9GSUxFX1ZFUklGSUNBVElPTlxua2VybmVsL0tjb25maWcua2V4ZWM6ODU6XHRzZWxlY3QgU1lTVEVNX1RSVVNURURfS0VZUklOR1xua2VybmVsL0tjb25maWcua2V4ZWM6ODY6XHRoZWxwXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo4NzpcdCAgRW5hYmxlIGJ6SW1hZ2Ugc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBzdXBwb3J0Llxua2VybmVsL0tjb25maWcua2V4ZWM6ODg6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo4OTpjb25maWcgS0VYRUNfSlVNUFxua2VybmVsL0tjb25maWcua2V4ZWM6OTA6XHRib29sIFwmIzM0O2tleGVjIGp1bXBcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmtleGVjOjkxOlx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDX0pVTVBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjkyOlx0ZGVwZW5kcyBvbiBLRVhFQyBcdTAwMjZcdTAwMjYgSElCRVJOQVRJT05cbmtlcm5lbC9LY29uZmlnLmtleGVjOjkzOlx0aGVscFxua2VybmVsL0tjb25maWcua2V4ZWM6OTQ6XHQgIEp1bXAgYmV0d2VlbiBvcmlnaW5hbCBrZXJuZWwgYW5kIGtleGVjZWQga2VybmVsIGFuZCBpbnZva2Vcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk1Olx0ICBjb2RlIGluIHBoeXNpY2FsIGFkZHJlc3MgbW9kZSB2aWEgS0VYRUNcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk2Olxua2VybmVsL0tjb25maWcua2V4ZWM6OTc6Y29uZmlnIENSQVNIX0RVTVBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk4Olx0Ym9vbCBcJiMzNDtrZXJuZWwgY3Jhc2ggZHVtcHNcJiMzNDtcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk5Olx0ZGVmYXVsdCBBUkNIX0RFRkFVTFRfQ1JBU0hfRFVNUFxua2VybmVsL0tjb25maWcua2V4ZWM6MTAwOlx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0NSQVNIX0RVTVBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEwMTpcdGRlcGVuZHMgb24gS0VYRUNfQ09SRVxua2VybmVsL0tjb25maWcua2V4ZWM6MTAyOlx0c2VsZWN0IFZNQ09SRV9JTkZPXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMDM6XHRzZWxlY3QgQ1JBU0hfUkVTRVJWRVxua2VybmVsL0tjb25maWcua2V4ZWM6MTA0Olx0aGVscFxua2VybmVsL0tjb25maWcua2V4ZWM6MTA1Olx0ICBHZW5lcmF0ZSBjcmFzaCBkdW1wIGFmdGVyIGJlaW5nIHN0YXJ0ZWQgYnkga2V4ZWMuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMDY6XHQgIFRoaXMgc2hvdWxkIGJlIG5vcm1hbGx5IG9ubHkgc2V0IGluIHNwZWNpYWwgY3Jhc2ggZHVtcCBrZXJuZWxzXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMDc6XHQgIHdoaWNoIGFyZSBsb2FkZWQgaW4gdGhlIG1haW4ga2VybmVsIHdpdGgga2V4ZWMtdG9vbHMgaW50b1xua2VybmVsL0tjb25maWcua2V4ZWM6MTA4Olx0ICBhIHNwZWNpYWxseSByZXNlcnZlZCByZWdpb24gYW5kIHRoZW4gbGF0ZXIgZXhlY3V0ZWQgYWZ0ZXJcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEwOTpcdCAgYSBjcmFzaCBieSBrZHVtcC9rZXhlYy4gVGhlIGNyYXNoIGR1bXAga2VybmVsIG11c3QgYmUgY29tcGlsZWRcbmtlcm5lbC9LY29uZmlnLmtleGVjOjExMDpcdCAgdG8gYSBtZW1vcnkgYWRkcmVzcyBub3QgdXNlZCBieSB0aGUgbWFpbiBrZXJuZWwgb3IgQklPUyB1c2luZ1xua2VybmVsL0tjb25maWcua2V4ZWM6MTExOlx0ICBQSFlTSUNBTF9TVEFSVCwgb3IgaXQgbXVzdCBiZSBidWlsdCBhcyBhIHJlbG9jYXRhYmxlIGltYWdlXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTI6XHQgIChDT05GSUdfUkVMT0NBVEFCTEU9eSkuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTM6XHQgIEZvciBtb3JlIGRldGFpbHMgc2VlIERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2R1bXAva2R1bXAucnN0XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTQ6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTU6XHQgIEZvciBzMzkwLCB0aGlzIG9wdGlvbiBhbHNvIGVuYWJsZXMgemZjcGR1bXAuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTY6XHQgIFNlZSBhbHNvIFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi9hcmNoL3MzOTAvemZjcGR1bXAucnN0XHUwMDNlXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTc6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTg6Y29uZmlnIENSQVNIX0RNX0NSWVBUXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTk6XHRib29sIFwmIzM0O1N1cHBvcnQgc2F2aW5nIGNyYXNoIGR1bXAgdG8gZG0tY3J5cHQgZW5jcnlwdGVkIHZvbHVtZVwmIzM0O1xua2VybmVsL0tjb25maWcua2V4ZWM6MTIwOlx0ZGVwZW5kcyBvbiBLRVhFQ19GSUxFXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjE6XHRkZXBlbmRzIG9uIENSQVNIX0RVTVBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyMjpcdGRlcGVuZHMgb24gRE1fQ1JZUFRcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyMzpcdGRlcGVuZHMgb24gS0VZU1xua2VybmVsL0tjb25maWcua2V4ZWM6MTI0Olx0aGVscFxua2VybmVsL0tjb25maWcua2V4ZWM6MTI1Olx0ICBXaXRoIHRoaXMgb3B0aW9uIGVuYWJsZWQsIHVzZXIgc3BhY2UgY2FuIGludGVyZWFjdCB3aXRoXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjY6XHQgIC9zeXMva2VybmVsL2NvbmZpZy9jcmFzaF9kbV9jcnlwdF9rZXlzIHRvIG1ha2UgdGhlIGRtIGNyeXB0IGtleXNcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyNzpcdCAgcGVyc2lzdGVudCBmb3IgdGhlIGR1bXAtY2FwdHVyZSBrZXJuZWwuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjg6XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjk6Y29uZmlnIENSQVNIX0RNX0NSWVBUX0NPTkZJR1Ncbmtlcm5lbC9LY29uZmlnLmtleGVjOjEzMDpcdGRlZl90cmlzdGF0ZSBDUkFTSF9ETV9DUllQVFxua2VybmVsL0tjb25maWcua2V4ZWM6MTMxOlx0c2VsZWN0IENPTkZJR0ZTX0ZTXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzI6XHRoZWxwXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzM6XHQgIENSQVNIX0RNX0NSWVBUIGNhbm5vdCBkaXJlY3RseSBzZWxlY3QgQ09ORklHRlNfRlMsIGJlY2F1c2UgdGhhdFxua2VybmVsL0tjb25maWcua2V4ZWM6MTM0Olx0ICBpcyByZXF1aXJlZCB0byBiZSBidWlsdC1pbi5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjEzNTpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEzNjpjb25maWcgQ1JBU0hfRFVNUF9LVU5JVF9URVNUXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzc6XHR0cmlzdGF0ZSBcJiMzNDtVbml0IFRlc3RzIGZvciBrZXJuZWwgY3Jhc2ggZHVtcHNcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xua2VybmVsL0tjb25maWcua2V4ZWM6MTM4Olx0ZGVwZW5kcyBvbiBDUkFTSF9EVU1QIFx1MDAyNlx1MDAyNiBLVU5JVFxua2VybmVsL0tjb25maWcua2V4ZWM6MTM5Olx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0MDpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0MTpcdCAgVGhpcyBvcHRpb24gYnVpbGRzIEtVbml0IHVuaXQgdGVzdHMgZm9yIGtlcm5lbCBjcmFzaCBkdW1wcy4gVGhlIHVuaXRcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0MjpcdCAgdGVzdHMgd2lsbCBiZSB1c2VkIHRvIHZlcmlmeSB0aGUgY29ycmVjdG5lc3Mgb2YgY292ZXJlZCBmdW5jdGlvbnMgYW5kXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNDM6XHQgIGFsc28gcHJldmVudCBhbnkgcmVncmVzc2lvbi5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0NDpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0NTpcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0Njpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0Nzpjb25maWcgQ1JBU0hfSE9UUExVR1xua2VybmVsL0tjb25maWcua2V4ZWM6MTQ4Olx0Ym9vbCBcJiMzNDtVcGRhdGUgdGhlIGNyYXNoIGVsZmNvcmVoZHIgb24gc3lzdGVtIGNvbmZpZ3VyYXRpb24gY2hhbmdlc1wmIzM0O1xua2VybmVsL0tjb25maWcua2V4ZWM6MTQ5Olx0ZGVmYXVsdCB5XG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTA6XHRkZXBlbmRzIG9uIENSQVNIX0RVTVAgXHUwMDI2XHUwMDI2IChIT1RQTFVHX0NQVSB8fCBNRU1PUllfSE9UUExVRylcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE1MTpcdGRlcGVuZHMgb24gQVJDSF9TVVBQT1JUU19DUkFTSF9IT1RQTFVHXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTI6XHRoZWxwXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTM6XHQgIEVuYWJsZSBkaXJlY3QgdXBkYXRlIHRvIHRoZSBjcmFzaCBlbGZjb3JlaGRyICh3aGljaCBjb250YWluc1xua2VybmVsL0tjb25maWcua2V4ZWM6MTU0Olx0ICB0aGUgbGlzdCBvZiBDUFVzIGFuZCBtZW1vcnkgcmVnaW9ucyB0byBiZSBkdW1wZWQgdXBvbiBhIGNyYXNoKVxua2VybmVsL0tjb25maWcua2V4ZWM6MTU1Olx0ICBpbiByZXNwb25zZSB0byBob3QgcGx1Zy91bnBsdWcgb3Igb25saW5lL29mZmxpbmUgb2YgQ1BVcyBvclxua2VybmVsL0tjb25maWcua2V4ZWM6MTU2Olx0ICBtZW1vcnkuIFRoaXMgaXMgYSBtdWNoIG1vcmUgYWR2YW5jZWQgYXBwcm9hY2ggdGhhbiB1c2Vyc3BhY2Vcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE1NzpcdCAgYXR0ZW1wdGluZyB0aGF0Llxua2VybmVsL0tjb25maWcua2V4ZWM6MTU4Olxua2VybmVsL0tjb25maWcua2V4ZWM6MTU5Olx0ICBJZiB1bnN1cmUsIHNheSBZLlxua2VybmVsL0tjb25maWcua2V4ZWM6MTYwOlxua2VybmVsL0tjb25maWcua2V4ZWM6MTYxOmNvbmZpZyBDUkFTSF9NQVhfTUVNT1JZX1JBTkdFU1xua2VybmVsL0tjb25maWcua2V4ZWM6MTYyOlx0aW50IFwmIzM0O1NwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIG1lbW9yeSByZWdpb25zIGZvciB0aGUgZWxmY29yZWhkclwmIzM0O1xua2VybmVsL0tjb25maWcua2V4ZWM6MTYzOlx0ZGVmYXVsdCA4MTkyXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNjQ6XHRkZXBlbmRzIG9uIENSQVNIX0hPVFBMVUdcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2NTpcdGhlbHBcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2NjpcdCAgRm9yIHRoZSBrZXhlY19maWxlX2xvYWQoKSBzeXNjYWxsIHBhdGgsIHNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNjc6XHQgIG1lbW9yeSByZWdpb25zIHRoYXQgdGhlIGVsZmNvcmVoZHIgYnVmZmVyL3NlZ21lbnQgY2FuIGFjY29tbW9kYXRlLlxua2VybmVsL0tjb25maWcua2V4ZWM6MTY4Olx0ICBUaGVzZSByZWdpb25zIGFyZSBvYnRhaW5lZCB2aWEgd2Fsa19zeXN0ZW1fcmFtX3JlcygpOyBlZy4gdGhlXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNjk6XHQgICYjMzk7U3lzdGVtIFJBTSYjMzk7IGVudHJpZXMgaW4gL3Byb2MvaW9tZW0uXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNzA6XHQgIFRoaXMgdmFsdWUgaXMgY29tYmluZWQgd2l0aCBOUl9DUFVTX0RFRkFVTFQgYW5kIG11bHRpcGxpZWQgYnlcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE3MTpcdCAgc2l6ZW9mKEVsZjY0X1BoZHIpIHRvIGRldGVybWluZSB0aGUgZmluYWwgZWxmY29yZWhkciBtZW1vcnkgYnVmZmVyL1xua2VybmVsL0tjb25maWcua2V4ZWM6MTcyOlx0ICBzZWdtZW50IHNpemUuXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNzM6XHQgIFRoZSB2YWx1ZSA4MTkyLCBmb3IgZXhhbXBsZSwgY292ZXJzIGEgKHNwYXJzZWx5IHBvcHVsYXRlZCkgMVRpQiBzeXN0ZW1cbmtlcm5lbC9LY29uZmlnLmtleGVjOjE3NDpcdCAgY29uc2lzdGluZyBvZiAxMjhNaUIgbWVtYmxvY2tzLCB3aGlsZSByZXN1bHRpbmcgaW4gYW4gZWxmY29yZWhkclxua2VybmVsL0tjb25maWcua2V4ZWM6MTc1Olx0ICBtZW1vcnkgYnVmZmVyL3NlZ21lbnQgc2l6ZSB1bmRlciAxTWlCLiBUaGlzIHJlcHJlc2VudHMgYSBzYW5lIGNob2ljZVxua2VybmVsL0tjb25maWcua2V4ZWM6MTc2Olx0ICB0byBhY2NvbW1vZGF0ZSBib3RoIGJhcmVtZXRhbCBhbmQgdmlydHVhbCBtYWNoaW5lIGNvbmZpZ3VyYXRpb25zLlxua2VybmVsL0tjb25maWcua2V4ZWM6MTc3Olxua2VybmVsL0tjb25maWcua2V4ZWM6MTc4Olx0ICBGb3IgdGhlIGtleGVjX2xvYWQoKSBzeXNjYWxsIHBhdGgsIENSQVNIX01BWF9NRU1PUllfUkFOR0VTIGlzIHBhcnQgb2Zcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE3OTpcdCAgdGhlIGNvbXB1dGF0aW9uIGJlaGluZCB0aGUgdmFsdWUgcHJvdmlkZWQgdGhyb3VnaCB0aGVcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE4MDpcdCAgL3N5cy9rZXJuZWwvY3Jhc2hfZWxmY29yZWhkcl9zaXplIGF0dHJpYnV0ZS5cbmtlcm5lbC9LY29uZmlnLmtleGVjOjE4MTpcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE4MjplbmRtZW51XG4tLVxua2VybmVsL0tjb25maWcubG9ja3M6MTojIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI6I1xua2VybmVsL0tjb25maWcubG9ja3M6MzojIFRoZSBBUkNIX0lOTElORSBmb28gaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugc2VsZWN0IGlnbm9yZXMgXCYjMzQ7ZGVwZW5kcyBvblwmIzM0O1xua2VybmVsL0tjb25maWcubG9ja3M6NDojXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1OmNvbmZpZyBBUkNIX0lOTElORV9TUElOX1RSWUxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjY6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3Olxua2VybmVsL0tjb25maWcubG9ja3M6ODpjb25maWcgQVJDSF9JTkxJTkVfU1BJTl9UUllMT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5Olx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6MTA6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTpjb25maWcgQVJDSF9JTkxJTkVfU1BJTl9MT0NLXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMjpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzOlxua2VybmVsL0tjb25maWcubG9ja3M6MTQ6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19CSFxua2VybmVsL0tjb25maWcubG9ja3M6MTU6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3OmNvbmZpZyBBUkNIX0lOTElORV9TUElOX0xPQ0tfSVJRXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5Olxua2VybmVsL0tjb25maWcubG9ja3M6MjA6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19JUlFTQVZFXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMTpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyOlxua2VybmVsL0tjb25maWcubG9ja3M6MjM6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI1Olxua2VybmVsL0tjb25maWcubG9ja3M6MjY6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNzpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI4Olxua2VybmVsL0tjb25maWcubG9ja3M6Mjk6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLX0lSUVxua2VybmVsL0tjb25maWcubG9ja3M6MzA6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2NrczozMTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjMyOmNvbmZpZyBBUkNIX0lOTElORV9TUElOX1VOTE9DS19JUlFSRVNUT1JFXG5rZXJuZWwvS2NvbmZpZy5sb2NrczozMzpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjM0Olxua2VybmVsL0tjb25maWcubG9ja3M6MzU6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczozNjpjb25maWcgQVJDSF9JTkxJTkVfUkVBRF9UUllMT0NLXG5rZXJuZWwvS2NvbmZpZy5sb2NrczozNzpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjM4Olxua2VybmVsL0tjb25maWcubG9ja3M6Mzk6Y29uZmlnIEFSQ0hfSU5MSU5FX1JFQURfTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6NDA6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo0MTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQyOmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX0xPQ0tfQkhcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQzOlx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6NDQ6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo0NTpjb25maWcgQVJDSF9JTkxJTkVfUkVBRF9MT0NLX0lSUVxua2VybmVsL0tjb25maWcubG9ja3M6NDY6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo0Nzpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQ4OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX0xPQ0tfSVJRU0FWRVxua2VybmVsL0tjb25maWcubG9ja3M6NDk6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1MDpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjUxOmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX1VOTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6NTI6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1Mzpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjU0OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX1VOTE9DS19CSFxua2VybmVsL0tjb25maWcubG9ja3M6NTU6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1Njpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjU3OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX1VOTE9DS19JUlFcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjU4Olx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6NTk6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2MDpjb25maWcgQVJDSF9JTkxJTkVfUkVBRF9VTkxPQ0tfSVJRUkVTVE9SRVxua2VybmVsL0tjb25maWcubG9ja3M6NjE6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2Mjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjYzOlxua2VybmVsL0tjb25maWcubG9ja3M6NjQ6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX1RSWUxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjY1Olx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6NjY6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2Nzpjb25maWcgQVJDSF9JTkxJTkVfV1JJVEVfTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6Njg6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2OTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjcwOmNvbmZpZyBBUkNIX0lOTElORV9XUklURV9MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3MTpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjcyOlxua2VybmVsL0tjb25maWcubG9ja3M6NzM6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tfSVJRXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3NDpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjc1Olxua2VybmVsL0tjb25maWcubG9ja3M6NzY6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tfSVJRU0FWRVxua2VybmVsL0tjb25maWcubG9ja3M6Nzc6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3ODpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjc5OmNvbmZpZyBBUkNIX0lOTElORV9XUklURV9VTkxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjgwOlx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6ODE6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo4Mjpjb25maWcgQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo4MzpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg0Olxua2VybmVsL0tjb25maWcubG9ja3M6ODU6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX1VOTE9DS19JUlFcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg2Olx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6ODc6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo4ODpjb25maWcgQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0lSUVJFU1RPUkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg5Olx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6OTA6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5MTpjb25maWcgVU5JTkxJTkVfU1BJTl9VTkxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjkyOlx0Ym9vbFxua2VybmVsL0tjb25maWcubG9ja3M6OTM6XG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5NDojXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5NTojIGxvY2tfKiBmdW5jdGlvbnMgYXJlIGlubGluZWQgd2hlbjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjk2OiMgICAtIERFQlVHX1NQSU5MT0NLPW4gYW5kIEdFTkVSSUNfTE9DS0JSRUFLPW4gYW5kIEFSQ0hfSU5MSU5FXypMT0NLPXlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjk3OiNcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjk4OiMgdHJ5bG9ja18qIGZ1bmN0aW9ucyBhcmUgaW5saW5lZCB3aGVuOlxua2VybmVsL0tjb25maWcubG9ja3M6OTk6IyAgIC0gREVCVUdfU1BJTkxPQ0s9biBhbmQgQVJDSF9JTkxJTkVfKkxPQ0s9eVxua2VybmVsL0tjb25maWcubG9ja3M6MTAwOiNcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwMTojIHVubG9jayBhbmQgdW5sb2NrX2lycSBmdW5jdGlvbnMgYXJlIGlubGluZWQgd2hlbjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwMjojICAgLSBERUJVR19TUElOTE9DSz1uIGFuZCBBUkNIX0lOTElORV8qTE9DSz15XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMDM6IyAgb3Jcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwNDojICAgLSBERUJVR19TUElOTE9DSz1uIGFuZCBQUkVFTVBUSU9OPW5cbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwNTojXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMDY6IyB1bmxvY2tfYmggYW5kIHVubG9ja19pcnFyZXN0b3JlIGZ1bmN0aW9ucyBhcmUgaW5saW5lZCB3aGVuOlxua2VybmVsL0tjb25maWcubG9ja3M6MTA3OiMgICAtIERFQlVHX1NQSU5MT0NLPW4gYW5kIEFSQ0hfSU5MSU5FXypMT0NLPXlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwODojXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMDk6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTA6aWYgIURFQlVHX1NQSU5MT0NLXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTE6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTI6Y29uZmlnIElOTElORV9TUElOX1RSWUxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjExMzpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjExNDpcdGRlcGVuZHMgb24gQVJDSF9JTkxJTkVfU1BJTl9UUllMT0NLXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTU6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTY6Y29uZmlnIElOTElORV9TUElOX1RSWUxPQ0tfQkhcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjExNzpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjExODpcdGRlcGVuZHMgb24gQVJDSF9JTkxJTkVfU1BJTl9UUllMT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTk6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMjA6Y29uZmlnIElOTElORV9TUElOX0xPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyMTpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyMjpcdGRlcGVuZHMgb24gIUdFTkVSSUNfTE9DS0JSRUFLIFx1MDAyNlx1MDAyNiBBUkNIX0lOTElORV9TUElOX0xPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyMzpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyNDpjb25maWcgSU5MSU5FX1NQSU5fTE9DS19CSFxua2VybmVsL0tjb25maWcubG9ja3M6MTI1Olx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MTI2Olx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXHUwMDI2XHUwMDI2IEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19CSFxua2VybmVsL0tjb25maWcubG9ja3M6MTI3Olxua2VybmVsL0tjb25maWcubG9ja3M6MTI4OmNvbmZpZyBJTkxJTkVfU1BJTl9MT0NLX0lSUVxua2VybmVsL0tjb25maWcubG9ja3M6MTI5Olx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MTMwOlx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXHUwMDI2XHUwMDI2IEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19JUlFcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzMTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzMjpjb25maWcgSU5MSU5FX1NQSU5fTE9DS19JUlFTQVZFXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzM6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzQ6XHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcdTAwMjZcdTAwMjYgQVJDSF9JTkxJTkVfU1BJTl9MT0NLX0lSUVNBVkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzNTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzNjpjb25maWcgSU5MSU5FX1NQSU5fVU5MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzc6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzg6XHRkZXBlbmRzIG9uIEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzk6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDA6Y29uZmlnIElOTElORV9TUElOX1VOTE9DS19JUlFcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0MTpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0MjpcdGRlcGVuZHMgb24gIVBSRUVNUFRJT04gfHwgQVJDSF9JTkxJTkVfU1BJTl9VTkxPQ0tfSVJRXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDM6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDQ6Y29uZmlnIElOTElORV9TUElOX1VOTE9DS19JUlFSRVNUT1JFXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDU6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDY6XHRkZXBlbmRzIG9uIEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLX0lSUVJFU1RPUkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0Nzpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0ODpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0OTpjb25maWcgSU5MSU5FX1JFQURfVFJZTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6MTUwOlx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MTUxOlx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9SRUFEX1RSWUxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE1Mjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE1Mzpjb25maWcgSU5MSU5FX1JFQURfTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6MTU0Olx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MTU1Olx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXHUwMDI2XHUwMDI2IEFSQ0hfSU5MSU5FX1JFQURfTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6MTU2Olxua2VybmVsL0tjb25maWcubG9ja3M6MTU3OmNvbmZpZyBJTkxJTkVfUkVBRF9MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTg6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTk6XHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcdTAwMjZcdTAwMjYgQVJDSF9JTkxJTkVfUkVBRF9MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjA6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjE6Y29uZmlnIElOTElORV9SRUFEX0xPQ0tfSVJRXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjI6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjM6XHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcdTAwMjZcdTAwMjYgQVJDSF9JTkxJTkVfUkVBRF9MT0NLX0lSUVxua2VybmVsL0tjb25maWcubG9ja3M6MTY0Olxua2VybmVsL0tjb25maWcubG9ja3M6MTY1OmNvbmZpZyBJTkxJTkVfUkVBRF9MT0NLX0lSUVNBVkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE2NjpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE2NzpcdGRlcGVuZHMgb24gIUdFTkVSSUNfTE9DS0JSRUFLIFx1MDAyNlx1MDAyNiBBUkNIX0lOTElORV9SRUFEX0xPQ0tfSVJRU0FWRVxua2VybmVsL0tjb25maWcubG9ja3M6MTY4Olxua2VybmVsL0tjb25maWcubG9ja3M6MTY5OmNvbmZpZyBJTkxJTkVfUkVBRF9VTkxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3MDpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3MTpcdGRlcGVuZHMgb24gIVBSRUVNUFRJT04gfHwgQVJDSF9JTkxJTkVfUkVBRF9VTkxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3Mjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3Mzpjb25maWcgSU5MSU5FX1JFQURfVU5MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzQ6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzU6XHRkZXBlbmRzIG9uIEFSQ0hfSU5MSU5FX1JFQURfVU5MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzY6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzc6Y29uZmlnIElOTElORV9SRUFEX1VOTE9DS19JUlFcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3ODpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3OTpcdGRlcGVuZHMgb24gIVBSRUVNUFRJT04gfHwgQVJDSF9JTkxJTkVfUkVBRF9VTkxPQ0tfSVJRXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODA6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODE6Y29uZmlnIElOTElORV9SRUFEX1VOTE9DS19JUlFSRVNUT1JFXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODI6XHRkZWZfYm9vbCB5XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODM6XHRkZXBlbmRzIG9uIEFSQ0hfSU5MSU5FX1JFQURfVU5MT0NLX0lSUVJFU1RPUkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4NDpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4NTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4Njpjb25maWcgSU5MSU5FX1dSSVRFX1RSWUxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4NzpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4ODpcdGRlcGVuZHMgb24gQVJDSF9JTkxJTkVfV1JJVEVfVFJZTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6MTg5Olxua2VybmVsL0tjb25maWcubG9ja3M6MTkwOmNvbmZpZyBJTkxJTkVfV1JJVEVfTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6MTkxOlx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MTkyOlx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXHUwMDI2XHUwMDI2IEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5Mzpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5NDpjb25maWcgSU5MSU5FX1dSSVRFX0xPQ0tfQkhcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5NTpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5NjpcdGRlcGVuZHMgb24gIUdFTkVSSUNfTE9DS0JSRUFLIFx1MDAyNlx1MDAyNiBBUkNIX0lOTElORV9XUklURV9MT0NLX0JIXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxOTc6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxOTg6Y29uZmlnIElOTElORV9XUklURV9MT0NLX0lSUVxua2VybmVsL0tjb25maWcubG9ja3M6MTk5Olx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MjAwOlx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXHUwMDI2XHUwMDI2IEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tfSVJRXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMDE6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMDI6Y29uZmlnIElOTElORV9XUklURV9MT0NLX0lSUVNBVkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwMzpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwNDpcdGRlcGVuZHMgb24gIUdFTkVSSUNfTE9DS0JSRUFLIFx1MDAyNlx1MDAyNiBBUkNIX0lOTElORV9XUklURV9MT0NLX0lSUVNBVkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwNTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwNjpjb25maWcgSU5MSU5FX1dSSVRFX1VOTE9DS1xua2VybmVsL0tjb25maWcubG9ja3M6MjA3Olx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MjA4Olx0ZGVwZW5kcyBvbiAhUFJFRU1QVElPTiB8fCBBUkNIX0lOTElORV9XUklURV9VTkxPQ0tcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwOTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxMDpjb25maWcgSU5MSU5FX1dSSVRFX1VOTE9DS19CSFxua2VybmVsL0tjb25maWcubG9ja3M6MjExOlx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MjEyOlx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9XUklURV9VTkxPQ0tfQkhcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxMzpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxNDpjb25maWcgSU5MSU5FX1dSSVRFX1VOTE9DS19JUlFcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxNTpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxNjpcdGRlcGVuZHMgb24gIVBSRUVNUFRJT04gfHwgQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0lSUVxua2VybmVsL0tjb25maWcubG9ja3M6MjE3Olxua2VybmVsL0tjb25maWcubG9ja3M6MjE4OmNvbmZpZyBJTkxJTkVfV1JJVEVfVU5MT0NLX0lSUVJFU1RPUkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxOTpcdGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyMDpcdGRlcGVuZHMgb24gQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0lSUVJFU1RPUkVcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyMTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyMjplbmRpZlxua2VybmVsL0tjb25maWcubG9ja3M6MjIzOlxua2VybmVsL0tjb25maWcubG9ja3M6MjI0OmNvbmZpZyBBUkNIX1NVUFBPUlRTX0FUT01JQ19STVdcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyNTpcdGJvb2xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyNjpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyNzpjb25maWcgTVVURVhfU1BJTl9PTl9PV05FUlxua2VybmVsL0tjb25maWcubG9ja3M6MjI4Olx0ZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MjI5Olx0ZGVwZW5kcyBvbiBTTVAgXHUwMDI2XHUwMDI2IEFSQ0hfU1VQUE9SVFNfQVRPTUlDX1JNV1xua2VybmVsL0tjb25maWcubG9ja3M6MjMwOlxua2VybmVsL0tjb25maWcubG9ja3M6MjMxOmNvbmZpZyBSV1NFTV9TUElOX09OX09XTkVSXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMzI6ICAgICAgIGRlZl9ib29sIHlcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIzMzogICAgICAgZGVwZW5kcyBvbiBTTVAgXHUwMDI2XHUwMDI2IEFSQ0hfU1VQUE9SVFNfQVRPTUlDX1JNV1xua2VybmVsL0tjb25maWcubG9ja3M6MjM0Olxua2VybmVsL0tjb25maWcubG9ja3M6MjM1OmNvbmZpZyBMT0NLX1NQSU5fT05fT1dORVJcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIzNjogICAgICAgZGVmX2Jvb2wgeVxua2VybmVsL0tjb25maWcubG9ja3M6MjM3OiAgICAgICBkZXBlbmRzIG9uIE1VVEVYX1NQSU5fT05fT1dORVIgfHwgUldTRU1fU1BJTl9PTl9PV05FUlxua2VybmVsL0tjb25maWcubG9ja3M6MjM4Olxua2VybmVsL0tjb25maWcubG9ja3M6MjM5OmNvbmZpZyBBUkNIX1VTRV9RVUVVRURfU1BJTkxPQ0tTXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDA6XHRib29sXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDE6XG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDI6Y29uZmlnIFFVRVVFRF9TUElOTE9DS1Ncbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI0MzpcdGRlZl9ib29sIHkgaWYgQVJDSF9VU0VfUVVFVUVEX1NQSU5MT0NLU1xua2VybmVsL0tjb25maWcubG9ja3M6MjQ0Olx0ZGVwZW5kcyBvbiBTTVBcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI0NTpcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI0Njpjb25maWcgUVVFVUVEX1NQSU5MT0NLU19UUkFDRV9DT05URU5ERURfUkVMRUFTRVxua2VybmVsL0tjb25maWcubG9ja3M6MjQ3Olx0Ym9vbCBcJiMzNDtUcmFjZSBjb250ZW5kZWRfcmVsZWFzZSBvbiBxdWV1ZWQgc3BpbmxvY2tzXCYjMzQ7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAxNjoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzYzOAoJCQkJCQkJb3V0cHV0OiA4OQoJCQkJCQkJdGhvdWdodHM6IDY1OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFJlbGV2YW5jZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBkaWZmIGFuZCBpbW1lZGlhdGVseSBzZWUgdGhhdCBhbGwgdGhlIGNoYW5nZXMgYXJlIHdpdGhpbiB0aGUgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gIGRpcmVjdG9yeS4gVGhhdCYjMzk7cyBhIGtleSBpbml0aWFsIG9ic2VydmF0aW9uLiBMZXQmIzM5O3MgbWFrZSBzdXJlIHdlIGFyZSBub3QgZ29pbmcgdG8gd2FzdGUgYW55IHRpbWUgZnV6emluZyBzb21ldGhpbmcgbm90IHdvcnRoIGZ1enppbmcsIGJhc2VkIG9uIHRoZSBkb2N1bWVudGVkIGNyaXRlcmlhLCB3aGljaCBJIGtub3cgaW50aW1hdGVseS4KCkkmIzM5O20gbWVudGFsbHkgcmVmZXJlbmNpbmcgU2VjdGlvbiAyIG9mIG91ciBpbnRlcm5hbCBndWlkZWxpbmVzIHJlZ2FyZGluZyBmdXp6aW5nIHJlbGV2YW5jZS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7dGhpcyBpcyBsaWtlbHkgYSBuby1nbyBmb3IgZnV6emluZy4mIzM0OyBUaGUgdGV4dCBjbGVhcmx5IHN0YXRlcyB0aGF0IGNoYW5nZXMgaW4gYHVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKSB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXNgIGFyZSBzcGVjaWZpY2FsbHkgZXhlbXB0ZWQgZnJvbSBmdXp6aW5nIGNvbnNpZGVyYXRpb24gaWYgKmFsbCogdGhlIGNoYW5nZXMgZml0IHRoYXQgY3JpdGVyaWEuCgpHaXZlbiB0aGF0IGFsbCB0aGUgZGlmZnMgYXJlIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvYCwgd2hpY2ggaG91c2VzIHVzZXItc3BhY2UgQlBGIHNlbGYtdGVzdHMgYW5kIHJlbGF0ZWQgZmlsZXMsIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGF0IHRoZXNlIGNoYW5nZXMgZmFsbCBzcXVhcmVseSB3aXRoaW4gdGhhdCBleGVtcHRpb24uIE5vbmUgb2YgdGhlIGZpbGVzIG1vZGlmaWVkIGFmZmVjdCB0aGUga2VybmVsIGltYWdlIG9yIGtlcm5lbCBtb2R1bGVzLCBhbmQgaGVuY2UsIGJhc2VkIG9uIHRoZSBkZWZpbml0aW9uOgoKKiAgIGBXb3J0aEZ1enppbmcgPSBmYWxzZWAKKiAgIGBGb2N1c1N5bWJvbHMgPSBbXWAgKG5vIHNwZWNpZmljIGtlcm5lbCBzeW1ib2xzIHRvIHRhcmdldCkKKiAgIGBFbmFibGVDb25maWdzID0gW11gIChubyBrZXJuZWwgY29uZmlndXJhdGlvbnMgbmVlZCB0byBiZSBlbmFibGVkKQoKTXkgcmVhc29uaW5nIGlzIHN0cmFpZ2h0Zm9yd2FyZDogdGhlc2UgYXJlIGNoYW5nZXMgdG8gQlBGICpzZWxmLXRlc3RzKiBhbmQgZG9jdW1lbnRhdGlvbiwgd2hpY2ggbGl2ZSBpbiB1c2Vyc3BhY2UsIGFuZCB0aHVzIGRvbiYjMzk7dCBpbXBhY3QgdGhlIGtlcm5lbCBpdHNlbGYuIFdlIGRvbiYjMzk7dCB3YW50IHRvIGJ1cm4gY3ljbGVzIG9yIHJlc291cmNlcyB3aGVyZSB0aGV5IGFyZSBub3QgbmVlZGVkLiBUaGF0IG1lYW5zIG5vIGZ1enppbmcgaXMgcmVxdWlyZWQuIE5vdywgSSYjMzk7bGwgZ28gYWhlYWQgYW5kIHNldCB0aGUgcmVzdWx0cyBhY2NvcmRpbmdseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAxNjoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIG9ubHkgQlBGIHNlbGZ0ZXN0cyBhbmQgc2VsZnRlc3QgZG9jdW1lbnRhdGlvbiBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvLiBCZWNhdXNlIHRoZXNlIGNoYW5nZXMgb25seSBhZmZlY3QgdXNlcnNwYWNlIHRlc3QgYXJ0aWZhY3RzIGFuZCBkbyBub3QgYWx0ZXIgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMsIHRoZXkgYXJlIG5vdCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBCUEYgc2VsZnRlc3RzIGFuZCBzZWxmdGVzdCBkb2N1bWVudGF0aW9uIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8uIEJlY2F1c2UgdGhlc2UgY2hhbmdlcyBvbmx5IGFmZmVjdCB1c2Vyc3BhY2UgdGVzdCBhcnRpZmFjdHMgYW5kIGRvIG5vdCBhbHRlciB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcywgdGhleSBhcmUgbm90IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDE2OjIwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0xMVQxNjoyMDowNy41NzgzNjM5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE5NTc5NzQ4NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBvbmx5IEJQRiBzZWxmdGVzdHMgYW5kIHNlbGZ0ZXN0IGRvY3VtZW50YXRpb24gaW4gdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmLy4gQmVjYXVzZSB0aGVzZSBjaGFuZ2VzIG9ubHkgYWZmZWN0IHVzZXJzcGFjZSB0ZXN0IGFydGlmYWN0cyBhbmQgZG8gbm90IGFsdGVyIHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLCB0aGV5IGFyZSBub3Qgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDE2OjIwOjA3LjU3ODM3MDc1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTk1NzA3ODExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNzdjYTlkMjkzYWI4MGM4N2M3NTQ4OTIwYzg1M2QxYTdjZjUxYWI0OVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIFNlcCAxMSAxNjoyMDowNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9SRUFETUUucnN0XFxuaW5kZXggMDdjODM0NDMzYjM4OC4uNzVmZjExNDJjMTg1NyAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdFxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9SRUFETUUucnN0XFxuQEAgLTE4Nyw3ICsxODcsNyBAQCBUaGUgc3ltcHRvbSBmb3IgYGBicGZfaXRlci9uZXRsaW5rYGAgbG9va3MgbGlrZVxcbiAgIC4uLlxcbiAgIDE1OiAoYmYpIHIyID0gcjdcXG4gICAxNjogKDBmKSByMiArPSByMVxcbi0gIDsgQlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJXBLICUtM2QgXFxcIiwgcywgcy1cXHUwMDNlc2tfcHJvdG9jb2wpO1xcbisgIDsgQlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJXAgJS0zZCBcXFwiLCBzLCBzLVxcdTAwM2Vza19wcm90b2NvbCk7XFxuICAgMTc6ICg3YikgKih1NjQgKikocjcgKzApID0gcjJcXG4gICBvbmx5IHJlYWQgaXMgc3VwcG9ydGVkXFxuIFxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9zbnByaW50Zi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuY1xcbmluZGV4IDRlNGE4MmQ1NGY3OTkuLmYyY2Q0NDJjNDY4M2MgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3NucHJpbnRmLmNcXG5AQCAtMTYsNyArMTYsNyBAQFxcbiAjZGVmaW5lIE1JTl9TWU1fUkVUICBzaXplb2YoRVhQX1NZTV9PVVQpXFxuIFxcbiAvKiBUaGUgdGhpcmQgc3BlY2lmaWVyLCAlcCwgaXMgYSBoYXNoZWQgcG9pbnRlciB3aGljaCBjaGFuZ2VzIG9uIGV2ZXJ5IHJlYm9vdCAqL1xcbi0jZGVmaW5lIEVYUF9BRERSX09VVCBcXFwiMDAwMDAwMDAwMDAwMDAwMCBmZmZmMDAwMDBhZGQ0ZTU1IFxcXCJcXG4rI2RlZmluZSBFWFBfQUREUl9PVVQgXFxcImZmZmYwMDAwMGFkZDRlNTUgXFxcIlxcbiAjZGVmaW5lIEVYUF9BRERSX1JFVCBzaXplb2YoRVhQX0FERFJfT1VUIFxcXCJ1bmtub3duaGFzaGVkcHRyXFxcIilcXG4gXFxuICNkZWZpbmUgRVhQX1NUUl9PVVQgIFxcXCJzdHIxICAgICAgICAgYSAgYiBjICAgICAgZCBlIGxvbmdzdHJcXFwiXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfbmV0bGluay5jXFxuaW5kZXggMDBiMmNlYWU4MWZiMC4uYjkxMDdkM2FiNjAzOSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfbmV0bGluay5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX25ldGxpbmsuY1xcbkBAIC0yNSwxMiArMjUsMTIgQEAgaW50IGR1bXBfbmV0bGluayhzdHJ1Y3QgYnBmX2l0ZXJfX25ldGxpbmsgKmN0eClcXG4gXFx0XFx0cmV0dXJuIDA7XFxuIFxcbiBcXHRpZiAoY3R4LVxcdTAwM2VtZXRhLVxcdTAwM2VzZXFfbnVtID09IDApXFxuLVxcdFxcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXFxcInNrICAgICAgICAgICAgICAgRXRoIFBpZCAgICAgICAgR3JvdXBzICAgXFxcIlxcbitcXHRcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCJzayBFdGggUGlkICAgICAgICBHcm91cHMgICBcXFwiXFxuIFxcdFxcdFxcdFxcdCAgICBcXFwiUm1lbSAgICAgV21lbSAgICAgRHVtcCAgTG9ja3MgICAgRHJvcHMgICAgXFxcIlxcbiBcXHRcXHRcXHRcXHQgICAgXFxcIklub2RlXFxcXG5cXFwiKTtcXG4gXFxuIFxcdHMgPSBcXHUwMDI2bmxrLVxcdTAwM2VzaztcXG4tXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJXBLICUtM2QgXFxcIiwgcywgcy1cXHUwMDNlc2tfcHJvdG9jb2wpO1xcbitcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIwICAlLTNkIFxcXCIsIHMtXFx1MDAzZXNrX3Byb3RvY29sKTtcXG4gXFxuIFxcdGlmICghbmxrLVxcdTAwM2Vncm91cHMpICB7XFxuIFxcdFxcdGdyb3VwID0gMDtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A0LmNcXG5pbmRleCBiMWU1MDliMjMxY2Q5Li5kMTQ5Y2YwZDA3YmU2IDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A0LmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jXFxuQEAgLTEzMSw4ICsxMzEsNyBAQCBzdGF0aWMgaW50IGR1bXBfdGNwX3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3Bfc29jayAqdHAsXFxuIFxcdFxcdCAgICAgICBpY3NrLVxcdTAwM2VpY3NrX3Byb2Jlc19vdXQsXFxuIFxcdFxcdCAgICAgICBzb2NrX2lfaW5vKHNwKSxcXG4gXFx0XFx0ICAgICAgIHNwLVxcdTAwM2Vza19yZWZjbnQucmVmcy5jb3VudGVyKTtcXG4tXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJXBLICVsdSAlbHUgJXUgJXUgJWRcXFxcblxcXCIsXFxuLVxcdFxcdCAgICAgICB0cCxcXG4rXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiMCAlbHUgJWx1ICV1ICV1ICVkXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgamlmZmllc190b19jbG9ja190KGljc2stXFx1MDAzZWljc2tfcnRvKSxcXG4gXFx0XFx0ICAgICAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLVxcdTAwM2VpY3NrX2Fjay5hdG8pLFxcbiBcXHRcXHQgICAgICAgKGljc2stXFx1MDAzZWljc2tfYWNrLnF1aWNrIFxcdTAwM2NcXHUwMDNjIDEpIHwgaW5ldF9jc2tfaW5fcGluZ3BvbmdfbW9kZShpY3NrKSxcXG5AQCAtMTYxLDEwICsxNjAsMTAgQEAgc3RhdGljIGludCBkdW1wX3R3X3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3BfdGltZXdhaXRfc29jayAqdHR3LFxcbiBcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlNGQ6ICUwOFg6JTA0WCAlMDhYOiUwNFggXFxcIixcXG4gXFx0XFx0ICAgICAgIHNlcV9udW0sIHNyYywgc3JjcCwgZGVzdCwgZGVzdHApO1xcbiBcXG4tXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxcXG5cXFwiLFxcbitcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAwXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgdHctXFx1MDAzZXR3X3N1YnN0YXRlLCAwLCAwLFxcbiBcXHRcXHQgICAgICAgMywgamlmZmllc19kZWx0YV90b19jbG9ja190KGRlbHRhKSwgMCwgMCwgMCwgMCxcXG4tXFx0XFx0ICAgICAgIHR3LVxcdTAwM2V0d19yZWZjbnQucmVmcy5jb3VudGVyLCB0dyk7XFxuK1xcdFxcdCAgICAgICB0dy1cXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlcik7XFxuIFxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbkBAIC0xODUsOSArMTg0LDkgQEAgc3RhdGljIGludCBkdW1wX3JlcV9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwX3JlcXVlc3Rfc29jayAqdHJlcSxcXG4gXFx0XFx0ICAgICAgIHNlcV9udW0sIGlyc2stXFx1MDAzZWlyX2xvY19hZGRyLFxcbiBcXHRcXHQgICAgICAgaXJzay1cXHUwMDNlaXJfbnVtLCBpcnNrLVxcdTAwM2Vpcl9ybXRfYWRkcixcXG4gXFx0XFx0ICAgICAgIGJwZl9udG9ocyhpcnNrLVxcdTAwM2Vpcl9ybXRfcG9ydCkpO1xcbi1cXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAlcEtcXFxcblxcXCIsXFxuK1xcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXFxcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkIDBcXFxcblxcXCIsXFxuIFxcdFxcdCAgICAgICBUQ1BfU1lOX1JFQ1YsIDAsIDAsIDEsIGppZmZpZXNfdG9fY2xvY2tfdCh0dGQpLFxcbi1cXHRcXHQgICAgICAgcmVxLVxcdTAwM2VudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwLCByZXEpO1xcbitcXHRcXHQgICAgICAgcmVxLVxcdTAwM2VudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwKTtcXG4gXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A2LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNi5jXFxuaW5kZXggZGJjNzE2NmFlZTkxZi4uY2Q2NWZhODFmMTIxOSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNi5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDYuY1xcbkBAIC0xMzUsOCArMTM1LDcgQEAgc3RhdGljIGludCBkdW1wX3RjcDZfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcDZfc29jayAqdHAsXFxuIFxcdFxcdCAgICAgICBpY3NrLVxcdTAwM2VpY3NrX3Byb2Jlc19vdXQsXFxuIFxcdFxcdCAgICAgICBzb2NrX2lfaW5vKHNwKSxcXG4gXFx0XFx0ICAgICAgIHNwLVxcdTAwM2Vza19yZWZjbnQucmVmcy5jb3VudGVyKTtcXG4tXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJXBLICVsdSAlbHUgJXUgJXUgJWRcXFxcblxcXCIsXFxuLVxcdFxcdCAgICAgICB0cCxcXG4rXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiMCAlbHUgJWx1ICV1ICV1ICVkXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgamlmZmllc190b19jbG9ja190KGljc2stXFx1MDAzZWljc2tfcnRvKSxcXG4gXFx0XFx0ICAgICAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLVxcdTAwM2VpY3NrX2Fjay5hdG8pLFxcbiBcXHRcXHQgICAgICAgKGljc2stXFx1MDAzZWljc2tfYWNrLnF1aWNrIFxcdTAwM2NcXHUwMDNjIDEpIHwgaW5ldF9jc2tfaW5fcGluZ3BvbmdfbW9kZShpY3NrKSxcXG5AQCAtMTcwLDEwICsxNjksMTAgQEAgc3RhdGljIGludCBkdW1wX3R3X3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3BfdGltZXdhaXRfc29jayAqdHR3LFxcbiBcXHRcXHQgICAgICAgZGVzdC1cXHUwMDNlczZfYWRkcjMyWzBdLCBkZXN0LVxcdTAwM2VzNl9hZGRyMzJbMV0sXFxuIFxcdFxcdCAgICAgICBkZXN0LVxcdTAwM2VzNl9hZGRyMzJbMl0sIGRlc3QtXFx1MDAzZXM2X2FkZHIzMlszXSwgZGVzdHApO1xcbiBcXG4tXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxcXG5cXFwiLFxcbitcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAwXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgdHctXFx1MDAzZXR3X3N1YnN0YXRlLCAwLCAwLFxcbiBcXHRcXHQgICAgICAgMywgamlmZmllc19kZWx0YV90b19jbG9ja190KGRlbHRhKSwgMCwgMCwgMCwgMCxcXG4tXFx0XFx0ICAgICAgIHR3LVxcdTAwM2V0d19yZWZjbnQucmVmcy5jb3VudGVyLCB0dyk7XFxuK1xcdFxcdCAgICAgICB0dy1cXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlcik7XFxuIFxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbkBAIC0yMDEsOSArMjAwLDkgQEAgc3RhdGljIGludCBkdW1wX3JlcV9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdGNwX3JlcXVlc3Rfc29jayAqdHJlcSxcXG4gXFx0XFx0ICAgICAgIGRlc3QtXFx1MDAzZXM2X2FkZHIzMlswXSwgZGVzdC1cXHUwMDNlczZfYWRkcjMyWzFdLFxcbiBcXHRcXHQgICAgICAgZGVzdC1cXHUwMDNlczZfYWRkcjMyWzJdLCBkZXN0LVxcdTAwM2VzNl9hZGRyMzJbM10sXFxuIFxcdFxcdCAgICAgICBicGZfbnRvaHMoaXJzay1cXHUwMDNlaXJfcm10X3BvcnQpKTtcXG4tXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxcXG5cXFwiLFxcbitcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlZCAlZCAwXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgVENQX1NZTl9SRUNWLCAwLCAwLCAxLCBqaWZmaWVzX3RvX2Nsb2NrX3QodHRkKSxcXG4tXFx0XFx0ICAgICAgIHJlcS1cXHUwMDNlbnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCwgcmVxKTtcXG4rXFx0XFx0ICAgICAgIHJlcS1cXHUwMDNlbnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCk7XFxuIFxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDQuY1xcbmluZGV4IDIzYjJhYTI2MDRkZTIuLjliNzg5ZjA5ZjE0NjIgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDQuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA0LmNcXG5AQCAtNTcsMTMgKzU3LDEzIEBAIGludCBkdW1wX3VkcDQoc3RydWN0IGJwZl9pdGVyX191ZHAgKmN0eClcXG4gXFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcXFwiJTVkOiAlMDhYOiUwNFggJTA4WDolMDRYIFxcXCIsXFxuIFxcdFxcdCAgICAgICBjdHgtXFx1MDAzZWJ1Y2tldCwgc3JjLCBzcmNwLCBkZXN0LCBkZXN0cCk7XFxuIFxcbi1cXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTV1ICU4ZCAlbHUgJWQgJXBLICV1XFxcXG5cXFwiLFxcbitcXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTV1ICU4ZCAlbHUgJWQgJThkICV1XFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgaW5ldC1cXHUwMDNlc2suc2tfc3RhdGUsXFxuIFxcdFxcdCAgICAgICBpbmV0LVxcdTAwM2Vzay5za193bWVtX2FsbG9jLnJlZnMuY291bnRlciAtIDEsXFxuIFxcdFxcdCAgICAgICBycXVldWUsXFxuIFxcdFxcdCAgICAgICAwLCAwTCwgMCwgY3R4LVxcdTAwM2V1aWQsIDAsXFxuIFxcdFxcdCAgICAgICBzb2NrX2lfaW5vKFxcdTAwMjZpbmV0LVxcdTAwM2VzayksXFxuLVxcdFxcdCAgICAgICBpbmV0LVxcdTAwM2Vzay5za19yZWZjbnQucmVmcy5jb3VudGVyLCB1ZHBfc2ssXFxuK1xcdFxcdCAgICAgICBpbmV0LVxcdTAwM2Vzay5za19yZWZjbnQucmVmcy5jb3VudGVyLCAwLFxcbiBcXHRcXHQgICAgICAgdWRwX3NrLVxcdTAwM2Vkcm9wX2NvdW50ZXJzLmRyb3BzMC5jb3VudGVyICtcXG4gXFx0XFx0ICAgICAgIHVkcF9zay1cXHUwMDNlZHJvcF9jb3VudGVycy5kcm9wczEuY291bnRlcik7XFxuIFxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDYuY1xcbmluZGV4IGM0OGIwNWFhMmE0YjIuLjk3NjZlZmY3MDY5ZmYgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDYuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA2LmNcXG5AQCAtNjUsMTMgKzY1LDEzIEBAIGludCBkdW1wX3VkcDYoc3RydWN0IGJwZl9pdGVyX191ZHAgKmN0eClcXG4gXFx0XFx0ICAgICAgIGRlc3QtXFx1MDAzZXM2X2FkZHIzMlswXSwgZGVzdC1cXHUwMDNlczZfYWRkcjMyWzFdLFxcbiBcXHRcXHQgICAgICAgZGVzdC1cXHUwMDNlczZfYWRkcjMyWzJdLCBkZXN0LVxcdTAwM2VzNl9hZGRyMzJbM10sIGRlc3RwKTtcXG4gXFxuLVxcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXFxcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlcEsgJXVcXFxcblxcXCIsXFxuK1xcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXFxcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlOGQgJXVcXFxcblxcXCIsXFxuIFxcdFxcdCAgICAgICBpbmV0LVxcdTAwM2Vzay5za19zdGF0ZSxcXG4gXFx0XFx0ICAgICAgIGluZXQtXFx1MDAzZXNrLnNrX3dtZW1fYWxsb2MucmVmcy5jb3VudGVyIC0gMSxcXG4gXFx0XFx0ICAgICAgIHJxdWV1ZSxcXG4gXFx0XFx0ICAgICAgIDAsIDBMLCAwLCBjdHgtXFx1MDAzZXVpZCwgMCxcXG4gXFx0XFx0ICAgICAgIHNvY2tfaV9pbm8oXFx1MDAyNmluZXQtXFx1MDAzZXNrKSxcXG4tXFx0XFx0ICAgICAgIGluZXQtXFx1MDAzZXNrLnNrX3JlZmNudC5yZWZzLmNvdW50ZXIsIHVkcF9zayxcXG4rXFx0XFx0ICAgICAgIGluZXQtXFx1MDAzZXNrLnNrX3JlZmNudC5yZWZzLmNvdW50ZXIsIDAsXFxuIFxcdFxcdCAgICAgICB1ZHBfc2stXFx1MDAzZWRyb3BfY291bnRlcnMuZHJvcHMwLmNvdW50ZXIgK1xcbiBcXHRcXHQgICAgICAgdWRwX3NrLVxcdTAwM2Vkcm9wX2NvdW50ZXJzLmRyb3BzMS5jb3VudGVyKTtcXG4gXFx0cmV0dXJuIDA7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91bml4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jXFxuaW5kZXggYTI2NTJjOGMzNjE2Zi4uMzY2OTA0Nzg5OTJmOCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VuaXguY1xcbkBAIC00NCw4ICs0NCw3IEBAIGludCBkdW1wX3VuaXgoc3RydWN0IGJwZl9pdGVyX191bml4ICpjdHgpXFxuIFxcdGlmIChzZXFfbnVtID09IDApXFxuIFxcdFxcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXFxcIk51bSAgICAgICAgICAgICAgIFJlZkNvdW50IFByb3RvY29sIEZsYWdzICAgIFR5cGUgU3QgICAgSW5vZGUgUGF0aFxcXFxuXFxcIik7XFxuIFxcbi1cXHRCUEZfU0VRX1BSSU5URihzZXEsIFxcXCIlcEs6ICUwOFggJTA4WCAlMDhYICUwNFggJTAyWCAlOGx1XFxcIixcXG4tXFx0XFx0ICAgICAgIHVuaXhfc2ssXFxuK1xcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXFxcIiUwOHU6ICUwOFggJTA4WCAlMDhYICUwNFggJTAyWCAlOGx1XFxcIiwgMCxcXG4gXFx0XFx0ICAgICAgIHNrLVxcdTAwM2Vza19yZWZjbnQucmVmcy5jb3VudGVyLFxcbiBcXHRcXHQgICAgICAgMCxcXG4gXFx0XFx0ICAgICAgIHNrLVxcdTAwM2Vza19zdGF0ZSA9PSBUQ1BfTElTVEVOID8gX19TT19BQ0NFUFRDT04gOiAwLFxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGVzdF9zbnByaW50Zi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3Rlc3Rfc25wcmludGYuY1xcbmluZGV4IDhmZGEwNzU0NDAyMzUuLjQ4YTAwMjVjZjJjYTggMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3Rlc3Rfc25wcmludGYuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90ZXN0X3NucHJpbnRmLmNcXG5AQCAtNTcsOCArNTcsOCBAQCBpbnQgaGFuZGxlcihjb25zdCB2b2lkICpjdHgpXFxuIFxcdHN5bV9yZXQgID0gQlBGX1NOUFJJTlRGKHN5bV9vdXQsICBzaXplb2Yoc3ltX291dCksIFxcXCIlcHMgJXBTICVwQlxcXCIsXFxuIFxcdFxcdFxcdFxcdFxcdTAwMjZzY2hlZHVsZSwgXFx1MDAyNnNjaGVkdWxlLCBcXHUwMDI2c2NoZWR1bGUpO1xcbiBcXHQvKiBLZXJuZWwgcG9pbnRlcnMgKi9cXG4tXFx0YWRkcl9yZXQgPSBCUEZfU05QUklOVEYoYWRkcl9vdXQsIHNpemVvZihhZGRyX291dCksIFxcXCIlcEsgJXB4ICVwXFxcIixcXG4tXFx0XFx0XFx0XFx0MCwgMHhGRkZGMDAwMDBBREQ0RTU1LCAweEZGRkYwMDAwMEFERDRFNTUpO1xcbitcXHRhZGRyX3JldCA9IEJQRl9TTlBSSU5URihhZGRyX291dCwgc2l6ZW9mKGFkZHJfb3V0KSwgXFxcIiVweCAlcFxcXCIsXFxuK1xcdFxcdFxcdFxcdDB4RkZGRjAwMDAwQURENEU1NSwgMHhGRkZGMDAwMDBBREQ0RTU1KTtcXG4gXFx0LyogU3RyaW5ncyBhbmQgc2luZ2xlLWJ5dGUgY2hhcmFjdGVyIGVtYmVkZGluZyAqL1xcbiBcXHRzdHJfcmV0ICA9IEJQRl9TTlBSSU5URihzdHJfb3V0LCBzaXplb2Yoc3RyX291dCksIFxcXCIlcyAlIDljICUrMmMgJS0zYyAlMDRjICUwYyAlKzA1c1xcXCIsXFxuIFxcdFxcdFxcdFxcdHN0cjEsICdhJywgJ2InLCAnYycsICdkJywgJ2UnLCBsb25nc3RyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMTY6MjA6MDkuMTc0Nzc0NTQxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoyMDM2MTU0OTQ4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBCUEYgc2VsZnRlc3RzIGFuZCBzZWxmdGVzdCBkb2N1bWVudGF0aW9uIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8uIEJlY2F1c2UgdGhlc2UgY2hhbmdlcyBvbmx5IGFmZmVjdCB1c2Vyc3BhY2UgdGVzdCBhcnRpZmFjdHMgYW5kIGRvIG5vdCBhbHRlciB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcywgdGhleSBhcmUgbm90IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDc3Y2E5ZDI5M2FiODBjODdjNzU0ODkyMGM4NTNkMWE3Y2Y1MWFiNDlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIFNlcCAxMSAxNjoyMDowNSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9SRUFETUUucnN0IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL1JFQURNRS5yc3RcbmluZGV4IDA3YzgzNDQzM2IzODguLjc1ZmYxMTQyYzE4NTcgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvUkVBRE1FLnJzdFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL1JFQURNRS5yc3RcbkBAIC0xODcsNyArMTg3LDcgQEAgVGhlIHN5bXB0b20gZm9yIGBgYnBmX2l0ZXIvbmV0bGlua2BgIGxvb2tzIGxpa2VcbiAgIC4uLlxuICAgMTU6IChiZikgcjIgPSByN1xuICAgMTY6ICgwZikgcjIgKz0gcjFcbi0gIDsgQlBGX1NFUV9QUklOVEYoc2VxLCBcIiVwSyAlLTNkIFwiLCBzLCBzLVx1MDAzZXNrX3Byb3RvY29sKTtcbisgIDsgQlBGX1NFUV9QUklOVEYoc2VxLCBcIiVwICUtM2QgXCIsIHMsIHMtXHUwMDNlc2tfcHJvdG9jb2wpO1xuICAgMTc6ICg3YikgKih1NjQgKikocjcgKzApID0gcjJcbiAgIG9ubHkgcmVhZCBpcyBzdXBwb3J0ZWRcbiBcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9zbnByaW50Zi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvc25wcmludGYuY1xuaW5kZXggNGU0YTgyZDU0Zjc5OS4uZjJjZDQ0MmM0NjgzYyAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3NucHJpbnRmLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3NucHJpbnRmLmNcbkBAIC0xNiw3ICsxNiw3IEBAXG4gI2RlZmluZSBNSU5fU1lNX1JFVCAgc2l6ZW9mKEVYUF9TWU1fT1VUKVxuIFxuIC8qIFRoZSB0aGlyZCBzcGVjaWZpZXIsICVwLCBpcyBhIGhhc2hlZCBwb2ludGVyIHdoaWNoIGNoYW5nZXMgb24gZXZlcnkgcmVib290ICovXG4tI2RlZmluZSBFWFBfQUREUl9PVVQgXCIwMDAwMDAwMDAwMDAwMDAwIGZmZmYwMDAwMGFkZDRlNTUgXCJcbisjZGVmaW5lIEVYUF9BRERSX09VVCBcImZmZmYwMDAwMGFkZDRlNTUgXCJcbiAjZGVmaW5lIEVYUF9BRERSX1JFVCBzaXplb2YoRVhQX0FERFJfT1VUIFwidW5rbm93bmhhc2hlZHB0clwiKVxuIFxuICNkZWZpbmUgRVhQX1NUUl9PVVQgIFwic3RyMSAgICAgICAgIGEgIGIgYyAgICAgIGQgZSBsb25nc3RyXCJcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfbmV0bGluay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX25ldGxpbmsuY1xuaW5kZXggMDBiMmNlYWU4MWZiMC4uYjkxMDdkM2FiNjAzOSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl9uZXRsaW5rLmNcbkBAIC0yNSwxMiArMjUsMTIgQEAgaW50IGR1bXBfbmV0bGluayhzdHJ1Y3QgYnBmX2l0ZXJfX25ldGxpbmsgKmN0eClcbiBcdFx0cmV0dXJuIDA7XG4gXG4gXHRpZiAoY3R4LVx1MDAzZW1ldGEtXHUwMDNlc2VxX251bSA9PSAwKVxuLVx0XHRCUEZfU0VRX1BSSU5URihzZXEsIFwic2sgICAgICAgICAgICAgICBFdGggUGlkICAgICAgICBHcm91cHMgICBcIlxuK1x0XHRCUEZfU0VRX1BSSU5URihzZXEsIFwic2sgRXRoIFBpZCAgICAgICAgR3JvdXBzICAgXCJcbiBcdFx0XHRcdCAgICBcIlJtZW0gICAgIFdtZW0gICAgIER1bXAgIExvY2tzICAgIERyb3BzICAgIFwiXG4gXHRcdFx0XHQgICAgXCJJbm9kZVxcblwiKTtcbiBcbiBcdHMgPSBcdTAwMjZubGstXHUwMDNlc2s7XG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJXBLICUtM2QgXCIsIHMsIHMtXHUwMDNlc2tfcHJvdG9jb2wpO1xuK1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcIjAgICUtM2QgXCIsIHMtXHUwMDNlc2tfcHJvdG9jb2wpO1xuIFxuIFx0aWYgKCFubGstXHUwMDNlZ3JvdXBzKSAge1xuIFx0XHRncm91cCA9IDA7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A0LmNcbmluZGV4IGIxZTUwOWIyMzFjZDkuLmQxNDljZjBkMDdiZTYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNC5jXG5AQCAtMTMxLDggKzEzMSw3IEBAIHN0YXRpYyBpbnQgZHVtcF90Y3Bfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcF9zb2NrICp0cCxcbiBcdFx0ICAgICAgIGljc2stXHUwMDNlaWNza19wcm9iZXNfb3V0LFxuIFx0XHQgICAgICAgc29ja19pX2lubyhzcCksXG4gXHRcdCAgICAgICBzcC1cdTAwM2Vza19yZWZjbnQucmVmcy5jb3VudGVyKTtcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCIlcEsgJWx1ICVsdSAldSAldSAlZFxcblwiLFxuLVx0XHQgICAgICAgdHAsXG4rXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiMCAlbHUgJWx1ICV1ICV1ICVkXFxuXCIsXG4gXHRcdCAgICAgICBqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay1cdTAwM2VpY3NrX3J0byksXG4gXHRcdCAgICAgICBqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay1cdTAwM2VpY3NrX2Fjay5hdG8pLFxuIFx0XHQgICAgICAgKGljc2stXHUwMDNlaWNza19hY2sucXVpY2sgXHUwMDNjXHUwMDNjIDEpIHwgaW5ldF9jc2tfaW5fcGluZ3BvbmdfbW9kZShpY3NrKSxcbkBAIC0xNjEsMTAgKzE2MCwxMCBAQCBzdGF0aWMgaW50IGR1bXBfdHdfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcF90aW1ld2FpdF9zb2NrICp0dHcsXG4gXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJTRkOiAlMDhYOiUwNFggJTA4WDolMDRYIFwiLFxuIFx0XHQgICAgICAgc2VxX251bSwgc3JjLCBzcmNwLCBkZXN0LCBkZXN0cCk7XG4gXG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxuXCIsXG4rXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxcblwiLFxuIFx0XHQgICAgICAgdHctXHUwMDNldHdfc3Vic3RhdGUsIDAsIDAsXG4gXHRcdCAgICAgICAzLCBqaWZmaWVzX2RlbHRhX3RvX2Nsb2NrX3QoZGVsdGEpLCAwLCAwLCAwLCAwLFxuLVx0XHQgICAgICAgdHctXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlciwgdHcpO1xuK1x0XHQgICAgICAgdHctXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlcik7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG5AQCAtMTg1LDkgKzE4NCw5IEBAIHN0YXRpYyBpbnQgZHVtcF9yZXFfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcF9yZXF1ZXN0X3NvY2sgKnRyZXEsXG4gXHRcdCAgICAgICBzZXFfbnVtLCBpcnNrLVx1MDAzZWlyX2xvY19hZGRyLFxuIFx0XHQgICAgICAgaXJzay1cdTAwM2Vpcl9udW0sIGlyc2stXHUwMDNlaXJfcm10X2FkZHIsXG4gXHRcdCAgICAgICBicGZfbnRvaHMoaXJzay1cdTAwM2Vpcl9ybXRfcG9ydCkpO1xuLVx0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkICVwS1xcblwiLFxuK1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkIDBcXG5cIixcbiBcdFx0ICAgICAgIFRDUF9TWU5fUkVDViwgMCwgMCwgMSwgamlmZmllc190b19jbG9ja190KHR0ZCksXG4tXHRcdCAgICAgICByZXEtXHUwMDNlbnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCwgcmVxKTtcbitcdFx0ICAgICAgIHJlcS1cdTAwM2VudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdGNwNi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3RjcDYuY1xuaW5kZXggZGJjNzE2NmFlZTkxZi4uY2Q2NWZhODFmMTIxOSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A2LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl90Y3A2LmNcbkBAIC0xMzUsOCArMTM1LDcgQEAgc3RhdGljIGludCBkdW1wX3RjcDZfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcDZfc29jayAqdHAsXG4gXHRcdCAgICAgICBpY3NrLVx1MDAzZWljc2tfcHJvYmVzX291dCxcbiBcdFx0ICAgICAgIHNvY2tfaV9pbm8oc3ApLFxuIFx0XHQgICAgICAgc3AtXHUwMDNlc2tfcmVmY250LnJlZnMuY291bnRlcik7XG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJXBLICVsdSAlbHUgJXUgJXUgJWRcXG5cIixcbi1cdFx0ICAgICAgIHRwLFxuK1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcIjAgJWx1ICVsdSAldSAldSAlZFxcblwiLFxuIFx0XHQgICAgICAgamlmZmllc190b19jbG9ja190KGljc2stXHUwMDNlaWNza19ydG8pLFxuIFx0XHQgICAgICAgamlmZmllc190b19jbG9ja190KGljc2stXHUwMDNlaWNza19hY2suYXRvKSxcbiBcdFx0ICAgICAgIChpY3NrLVx1MDAzZWljc2tfYWNrLnF1aWNrIFx1MDAzY1x1MDAzYyAxKSB8IGluZXRfY3NrX2luX3Bpbmdwb25nX21vZGUoaWNzayksXG5AQCAtMTcwLDEwICsxNjksMTAgQEAgc3RhdGljIGludCBkdW1wX3R3X3NvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCB0Y3BfdGltZXdhaXRfc29jayAqdHR3LFxuIFx0XHQgICAgICAgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMF0sIGRlc3QtXHUwMDNlczZfYWRkcjMyWzFdLFxuIFx0XHQgICAgICAgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMl0sIGRlc3QtXHUwMDNlczZfYWRkcjMyWzNdLCBkZXN0cCk7XG4gXG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgJXBLXFxuXCIsXG4rXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWQgJWQgMFxcblwiLFxuIFx0XHQgICAgICAgdHctXHUwMDNldHdfc3Vic3RhdGUsIDAsIDAsXG4gXHRcdCAgICAgICAzLCBqaWZmaWVzX2RlbHRhX3RvX2Nsb2NrX3QoZGVsdGEpLCAwLCAwLCAwLCAwLFxuLVx0XHQgICAgICAgdHctXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlciwgdHcpO1xuK1x0XHQgICAgICAgdHctXHUwMDNldHdfcmVmY250LnJlZnMuY291bnRlcik7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG5AQCAtMjAxLDkgKzIwMCw5IEBAIHN0YXRpYyBpbnQgZHVtcF9yZXFfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHRjcF9yZXF1ZXN0X3NvY2sgKnRyZXEsXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlswXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMV0sXG4gXHRcdCAgICAgICBkZXN0LVx1MDAzZXM2X2FkZHIzMlsyXSwgZGVzdC1cdTAwM2VzNl9hZGRyMzJbM10sXG4gXHRcdCAgICAgICBicGZfbnRvaHMoaXJzay1cdTAwM2Vpcl9ybXRfcG9ydCkpO1xuLVx0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkICVwS1xcblwiLFxuK1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVkICVkIDBcXG5cIixcbiBcdFx0ICAgICAgIFRDUF9TWU5fUkVDViwgMCwgMCwgMSwgamlmZmllc190b19jbG9ja190KHR0ZCksXG4tXHRcdCAgICAgICByZXEtXHUwMDNlbnVtX3RpbWVvdXQsIHVpZCwgMCwgMCwgMCwgcmVxKTtcbitcdFx0ICAgICAgIHJlcS1cdTAwM2VudW1fdGltZW91dCwgdWlkLCAwLCAwLCAwKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDQuY1xuaW5kZXggMjNiMmFhMjYwNGRlMi4uOWI3ODlmMDlmMTQ2MiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA0LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA0LmNcbkBAIC01NywxMyArNTcsMTMgQEAgaW50IGR1bXBfdWRwNChzdHJ1Y3QgYnBmX2l0ZXJfX3VkcCAqY3R4KVxuIFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiU1ZDogJTA4WDolMDRYICUwOFg6JTA0WCBcIixcbiBcdFx0ICAgICAgIGN0eC1cdTAwM2VidWNrZXQsIHNyYywgc3JjcCwgZGVzdCwgZGVzdHApO1xuIFxuLVx0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlcEsgJXVcXG5cIixcbitcdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCIlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTV1ICU4ZCAlbHUgJWQgJThkICV1XFxuXCIsXG4gXHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3N0YXRlLFxuIFx0XHQgICAgICAgaW5ldC1cdTAwM2Vzay5za193bWVtX2FsbG9jLnJlZnMuY291bnRlciAtIDEsXG4gXHRcdCAgICAgICBycXVldWUsXG4gXHRcdCAgICAgICAwLCAwTCwgMCwgY3R4LVx1MDAzZXVpZCwgMCxcbiBcdFx0ICAgICAgIHNvY2tfaV9pbm8oXHUwMDI2aW5ldC1cdTAwM2VzayksXG4tXHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3JlZmNudC5yZWZzLmNvdW50ZXIsIHVkcF9zayxcbitcdFx0ICAgICAgIGluZXQtXHUwMDNlc2suc2tfcmVmY250LnJlZnMuY291bnRlciwgMCxcbiBcdFx0ICAgICAgIHVkcF9zay1cdTAwM2Vkcm9wX2NvdW50ZXJzLmRyb3BzMC5jb3VudGVyICtcbiBcdFx0ICAgICAgIHVkcF9zay1cdTAwM2Vkcm9wX2NvdW50ZXJzLmRyb3BzMS5jb3VudGVyKTtcbiBcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdWRwNi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VkcDYuY1xuaW5kZXggYzQ4YjA1YWEyYTRiMi4uOTc2NmVmZjcwNjlmZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA2LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91ZHA2LmNcbkBAIC02NSwxMyArNjUsMTMgQEAgaW50IGR1bXBfdWRwNihzdHJ1Y3QgYnBmX2l0ZXJfX3VkcCAqY3R4KVxuIFx0XHQgICAgICAgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMF0sIGRlc3QtXHUwMDNlczZfYWRkcjMyWzFdLFxuIFx0XHQgICAgICAgZGVzdC1cdTAwM2VzNl9hZGRyMzJbMl0sIGRlc3QtXHUwMDNlczZfYWRkcjMyWzNdLCBkZXN0cCk7XG4gXG4tXHRCUEZfU0VRX1BSSU5URihzZXEsIFwiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1dSAlOGQgJWx1ICVkICVwSyAldVxcblwiLFxuK1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlOGQgJXVcXG5cIixcbiBcdFx0ICAgICAgIGluZXQtXHUwMDNlc2suc2tfc3RhdGUsXG4gXHRcdCAgICAgICBpbmV0LVx1MDAzZXNrLnNrX3dtZW1fYWxsb2MucmVmcy5jb3VudGVyIC0gMSxcbiBcdFx0ICAgICAgIHJxdWV1ZSxcbiBcdFx0ICAgICAgIDAsIDBMLCAwLCBjdHgtXHUwMDNldWlkLCAwLFxuIFx0XHQgICAgICAgc29ja19pX2lubyhcdTAwMjZpbmV0LVx1MDAzZXNrKSxcbi1cdFx0ICAgICAgIGluZXQtXHUwMDNlc2suc2tfcmVmY250LnJlZnMuY291bnRlciwgdWRwX3NrLFxuK1x0XHQgICAgICAgaW5ldC1cdTAwM2Vzay5za19yZWZjbnQucmVmcy5jb3VudGVyLCAwLFxuIFx0XHQgICAgICAgdWRwX3NrLVx1MDAzZWRyb3BfY291bnRlcnMuZHJvcHMwLmNvdW50ZXIgK1xuIFx0XHQgICAgICAgdWRwX3NrLVx1MDAzZWRyb3BfY291bnRlcnMuZHJvcHMxLmNvdW50ZXIpO1xuIFx0cmV0dXJuIDA7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9pdGVyX3VuaXguYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfaXRlcl91bml4LmNcbmluZGV4IGEyNjUyYzhjMzYxNmYuLjM2NjkwNDc4OTkyZjggMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX2l0ZXJfdW5peC5jXG5AQCAtNDQsOCArNDQsNyBAQCBpbnQgZHVtcF91bml4KHN0cnVjdCBicGZfaXRlcl9fdW5peCAqY3R4KVxuIFx0aWYgKHNlcV9udW0gPT0gMClcbiBcdFx0QlBGX1NFUV9QUklOVEYoc2VxLCBcIk51bSAgICAgICAgICAgICAgIFJlZkNvdW50IFByb3RvY29sIEZsYWdzICAgIFR5cGUgU3QgICAgSW5vZGUgUGF0aFxcblwiKTtcbiBcbi1cdEJQRl9TRVFfUFJJTlRGKHNlcSwgXCIlcEs6ICUwOFggJTA4WCAlMDhYICUwNFggJTAyWCAlOGx1XCIsXG4tXHRcdCAgICAgICB1bml4X3NrLFxuK1x0QlBGX1NFUV9QUklOVEYoc2VxLCBcIiUwOHU6ICUwOFggJTA4WCAlMDhYICUwNFggJTAyWCAlOGx1XCIsIDAsXG4gXHRcdCAgICAgICBzay1cdTAwM2Vza19yZWZjbnQucmVmcy5jb3VudGVyLFxuIFx0XHQgICAgICAgMCxcbiBcdFx0ICAgICAgIHNrLVx1MDAzZXNrX3N0YXRlID09IFRDUF9MSVNURU4gPyBfX1NPX0FDQ0VQVENPTiA6IDAsXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3Rlc3Rfc25wcmludGYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90ZXN0X3NucHJpbnRmLmNcbmluZGV4IDhmZGEwNzU0NDAyMzUuLjQ4YTAwMjVjZjJjYTggMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGVzdF9zbnByaW50Zi5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGVzdF9zbnByaW50Zi5jXG5AQCAtNTcsOCArNTcsOCBAQCBpbnQgaGFuZGxlcihjb25zdCB2b2lkICpjdHgpXG4gXHRzeW1fcmV0ICA9IEJQRl9TTlBSSU5URihzeW1fb3V0LCAgc2l6ZW9mKHN5bV9vdXQpLCBcIiVwcyAlcFMgJXBCXCIsXG4gXHRcdFx0XHRcdTAwMjZzY2hlZHVsZSwgXHUwMDI2c2NoZWR1bGUsIFx1MDAyNnNjaGVkdWxlKTtcbiBcdC8qIEtlcm5lbCBwb2ludGVycyAqL1xuLVx0YWRkcl9yZXQgPSBCUEZfU05QUklOVEYoYWRkcl9vdXQsIHNpemVvZihhZGRyX291dCksIFwiJXBLICVweCAlcFwiLFxuLVx0XHRcdFx0MCwgMHhGRkZGMDAwMDBBREQ0RTU1LCAweEZGRkYwMDAwMEFERDRFNTUpO1xuK1x0YWRkcl9yZXQgPSBCUEZfU05QUklOVEYoYWRkcl9vdXQsIHNpemVvZihhZGRyX291dCksIFwiJXB4ICVwXCIsXG4rXHRcdFx0XHQweEZGRkYwMDAwMEFERDRFNTUsIDB4RkZGRjAwMDAwQURENEU1NSk7XG4gXHQvKiBTdHJpbmdzIGFuZCBzaW5nbGUtYnl0ZSBjaGFyYWN0ZXIgZW1iZWRkaW5nICovXG4gXHRzdHJfcmV0ICA9IEJQRl9TTlBSSU5URihzdHJfb3V0LCBzaXplb2Yoc3RyX291dCksIFwiJXMgJSA5YyAlKzJjICUtM2MgJTA0YyAlMGMgJSswNXNcIixcbiBcdFx0XHRcdHN0cjEsICdhJywgJ2InLCAnYycsICdkJywgJ2UnLCBsb25nc3RyKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDE2OjIwOjA5LjE3NDc3NjIyMVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjgxMTc5NTUwODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nPUZhbHNlIERlY2lzaW9uKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSBuZWVkIHRvIG1ldGljdWxvdXNseSBleGFtaW5lIHRoZSBkaWZmLiBSaWdodCBhd2F5LCBJIHNlZSB0aGUgY2hhbmdlcyBhcmUgY29uZmluZWQgdG8gdGhlIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvYCBkaXJlY3RvcnkuIFRoZSBzcGVjaWZpYyBmaWxlcyBtb2RpZmllZCBhcmUgYFJFQURNRS5yc3RgLCBgc25wcmludGYuY2AsIGFuZCBhIHNlcmllcyBvZiBwcm9ncmFtcyByZWxhdGVkIHRvIGBicGZfaXRlcmAgZm9yIHZhcmlvdXMgbmV0d29yayBwcm90b2NvbHMgKFRDUDQsIFRDUDYsIFVEUDQsIFVEUDYsIFVuaXggc29ja2V0cyksIGFsb25nIHdpdGggYSBgdGVzdF9zbnByaW50Zi5jYC5cblxuTm93LCBJJ20gZ29pbmcgdG8gYXBwbHkgdGhlIG5lZ2F0aXZlIGNyaXRlcmlhIGZyb20gU2VjdGlvbiAyLiBUaGUgY3JpdGljYWwgcXVlc3Rpb246IGRvIHRoZXNlIGNoYW5nZXMgZmFsbCBpbnRvIHRoZSBcIk5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXNcIiBjYXRlZ29yeT8gU3BlY2lmaWNhbGx5LCBhcmUgdGhlc2UgbW9kaWZpY2F0aW9ucyB0byB1c2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIHRoYXQgKmRvbid0KiBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZT9cblxuTG9va2luZyBhdCB0aGUgY29udGV4dCwgdGhpcyBpcyBwcmV0dHkgY2xlYXIgY3V0LiBUaGUgY2hhbmdlcyBhcmUgYWxsIHdpdGhpbiB0aGUgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gIGRpcmVjdG9yeS4gVGhlc2UgYXJlIHVzZXItc3BhY2UgQlBGIHNlbGYtdGVzdHMuIFRoZXkgYXJlIG5vdCB0b3VjaGluZyBhbnkga2VybmVsIGNvZGUsIHZtbGludXgsIG9yIGtlcm5lbCBtb2R1bGVzLlxuXG5JJ2xsIGRvIGEgZmluYWwgcXVpY2sgY2hlY2sgdG8gZW5zdXJlIHRoZXJlIGFyZSBubyBzdXJwcmlzZXMgZWxzZXdoZXJlIGluIHRoZSBIRUFEIGNvbW1pdC4gSG93ZXZlciwgYmFzZWQgb24gdGhlIGlkZW50aWZpZWQgZmlsZXMsIGl0J3MgYSBzdHJhaWdodGZvcndhcmQgZGVjaXNpb24uICoqV29ydGhGdXp6aW5nID0gRmFsc2UuKipcblxuXG4iLCJJbnB1dFRva2VucyI6NzIyMywiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQzOCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDE2OjIwOjE3LjI5MjczNzc2M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzU1MzA5ODIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiLipcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwia2VybmVsXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTgwNDIxIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5rZXJuZWwvLmdpdGlnbm9yZToxOiMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmtlcm5lbC8uZ2l0aWdub3JlOjI6L2NvbmZpZ19kYXRhXFxua2VybmVsLy5naXRpZ25vcmU6Mzova2hlYWRlcnMubWQ1XFxua2VybmVsLy5naXRpZ25vcmU6NDova2hlYWRlcnMtb2JqbGlzdFxcbmtlcm5lbC8uZ2l0aWdub3JlOjU6L2toZWFkZXJzLXNyY2xpc3RcXG4tLVxcbmtlcm5lbC9LY29uZmlnLmZyZWV6ZXI6MTojIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5rZXJuZWwvS2NvbmZpZy5mcmVlemVyOjI6Y29uZmlnIEZSRUVaRVJcXG5rZXJuZWwvS2NvbmZpZy5mcmVlemVyOjM6XFx0ZGVmX2Jvb2wgUE1fU0xFRVAgfHwgQ0dST1VQX0ZSRUVaRVJcXG4tLVxcbmtlcm5lbC9LY29uZmlnLmh6OjE6IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxua2VybmVsL0tjb25maWcuaHo6MjojXFxua2VybmVsL0tjb25maWcuaHo6MzojIFRpbWVyIEludGVycnVwdCBGcmVxdWVuY3kgQ29uZmlndXJhdGlvblxcbmtlcm5lbC9LY29uZmlnLmh6OjQ6I1xcbmtlcm5lbC9LY29uZmlnLmh6OjU6XFxua2VybmVsL0tjb25maWcuaHo6NjpjaG9pY2VcXG5rZXJuZWwvS2NvbmZpZy5oejo3OlxcdHByb21wdCBcXFwiVGltZXIgZnJlcXVlbmN5XFxcIlxcbmtlcm5lbC9LY29uZmlnLmh6Ojg6XFx0ZGVmYXVsdCBIWl8yNTBcXG5rZXJuZWwvS2NvbmZpZy5oejo5OlxcdGhlbHBcXG5rZXJuZWwvS2NvbmZpZy5oejoxMDpcXHQgQWxsb3dzIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSB0aW1lciBmcmVxdWVuY3kuIEl0IGlzIGN1c3RvbWFyeVxcbmtlcm5lbC9LY29uZmlnLmh6OjExOlxcdCB0byBoYXZlIHRoZSB0aW1lciBpbnRlcnJ1cHQgcnVuIGF0IDEwMDAgSHogYnV0IDEwMCBIeiBtYXkgYmUgbW9yZVxcbmtlcm5lbC9LY29uZmlnLmh6OjEyOlxcdCBiZW5lZmljaWFsIGZvciBzZXJ2ZXJzIGFuZCBOVU1BIHN5c3RlbXMgdGhhdCBkbyBub3QgbmVlZCB0byBoYXZlXFxua2VybmVsL0tjb25maWcuaHo6MTM6XFx0IGEgZmFzdCByZXNwb25zZSBmb3IgdXNlciBpbnRlcmFjdGlvbiBhbmQgdGhhdCBtYXkgZXhwZXJpZW5jZSBidXNcXG5rZXJuZWwvS2NvbmZpZy5oejoxNDpcXHQgY29udGVudGlvbiBhbmQgY2FjaGVsaW5lIGJvdW5jZXMgYXMgYSByZXN1bHQgb2YgdGltZXIgaW50ZXJydXB0cy5cXG5rZXJuZWwvS2NvbmZpZy5oejoxNTpcXHQgTm90ZSB0aGF0IHRoZSB0aW1lciBpbnRlcnJ1cHQgb2NjdXJzIG9uIGVhY2ggcHJvY2Vzc29yIGluIGFuIFNNUFxcbmtlcm5lbC9LY29uZmlnLmh6OjE2OlxcdCBlbnZpcm9ubWVudCBsZWFkaW5nIHRvIE5SX0NQVVMgKiBIWiBudW1iZXIgb2YgdGltZXIgaW50ZXJydXB0c1xcbmtlcm5lbC9LY29uZmlnLmh6OjE3OlxcdCBwZXIgc2Vjb25kLlxcbmtlcm5lbC9LY29uZmlnLmh6OjE4Olxcbmtlcm5lbC9LY29uZmlnLmh6OjE5Olxcbmtlcm5lbC9LY29uZmlnLmh6OjIwOlxcdGNvbmZpZyBIWl8xMDBcXG5rZXJuZWwvS2NvbmZpZy5oejoyMTpcXHRcXHRib29sIFxcXCIxMDAgSFpcXFwiXFxua2VybmVsL0tjb25maWcuaHo6MjI6XFx0aGVscFxcbmtlcm5lbC9LY29uZmlnLmh6OjIzOlxcdCAgMTAwIEh6IGlzIGEgdHlwaWNhbCBjaG9pY2UgZm9yIHNlcnZlcnMsIFNNUCBhbmQgTlVNQSBzeXN0ZW1zXFxua2VybmVsL0tjb25maWcuaHo6MjQ6XFx0ICB3aXRoIGxvdHMgb2YgcHJvY2Vzc29ycyB0aGF0IG1heSBzaG93IHJlZHVjZWQgcGVyZm9ybWFuY2UgaWZcXG5rZXJuZWwvS2NvbmZpZy5oejoyNTpcXHQgIHRvbyBtYW55IHRpbWVyIGludGVycnVwdHMgYXJlIG9jY3VycmluZy5cXG5rZXJuZWwvS2NvbmZpZy5oejoyNjpcXG5rZXJuZWwvS2NvbmZpZy5oejoyNzpcXHRjb25maWcgSFpfMjUwXFxua2VybmVsL0tjb25maWcuaHo6Mjg6XFx0XFx0Ym9vbCBcXFwiMjUwIEhaXFxcIlxcbmtlcm5lbC9LY29uZmlnLmh6OjI5OlxcdGhlbHBcXG5rZXJuZWwvS2NvbmZpZy5oejozMDpcXHQgMjUwIEh6IGlzIGEgZ29vZCBjb21wcm9taXNlIGNob2ljZSBhbGxvd2luZyBzZXJ2ZXIgcGVyZm9ybWFuY2VcXG5rZXJuZWwvS2NvbmZpZy5oejozMTpcXHQgd2hpbGUgYWxzbyBzaG93aW5nIGdvb2QgaW50ZXJhY3RpdmUgcmVzcG9uc2l2ZW5lc3MgZXZlblxcbmtlcm5lbC9LY29uZmlnLmh6OjMyOlxcdCBvbiBTTVAgYW5kIE5VTUEgc3lzdGVtcy4gSWYgeW91IGFyZSBnb2luZyB0byBiZSB1c2luZyBOVFNDIHZpZGVvXFxua2VybmVsL0tjb25maWcuaHo6MzM6XFx0IG9yIG11bHRpbWVkaWEsIHNlbGVjdCAzMDBIeiBpbnN0ZWFkLlxcbmtlcm5lbC9LY29uZmlnLmh6OjM0Olxcbmtlcm5lbC9LY29uZmlnLmh6OjM1OlxcdGNvbmZpZyBIWl8zMDBcXG5rZXJuZWwvS2NvbmZpZy5oejozNjpcXHRcXHRib29sIFxcXCIzMDAgSFpcXFwiXFxua2VybmVsL0tjb25maWcuaHo6Mzc6XFx0aGVscFxcbmtlcm5lbC9LY29uZmlnLmh6OjM4OlxcdCAzMDAgSHogaXMgYSBnb29kIGNvbXByb21pc2UgY2hvaWNlIGFsbG93aW5nIHNlcnZlciBwZXJmb3JtYW5jZVxcbmtlcm5lbC9LY29uZmlnLmh6OjM5OlxcdCB3aGlsZSBhbHNvIHNob3dpbmcgZ29vZCBpbnRlcmFjdGl2ZSByZXNwb25zaXZlbmVzcyBldmVuXFxua2VybmVsL0tjb25maWcuaHo6NDA6XFx0IG9uIFNNUCBhbmQgTlVNQSBzeXN0ZW1zIGFuZCBleGFjdGx5IGRpdmlkaW5nIGJ5IGJvdGggUEFMIGFuZFxcbmtlcm5lbC9LY29uZmlnLmh6OjQxOlxcdCBOVFNDIGZyYW1lIHJhdGVzIGZvciB2aWRlbyBhbmQgbXVsdGltZWRpYSB3b3JrLlxcbmtlcm5lbC9LY29uZmlnLmh6OjQyOlxcbmtlcm5lbC9LY29uZmlnLmh6OjQzOlxcdGNvbmZpZyBIWl8xMDAwXFxua2VybmVsL0tjb25maWcuaHo6NDQ6XFx0XFx0Ym9vbCBcXFwiMTAwMCBIWlxcXCJcXG5rZXJuZWwvS2NvbmZpZy5oejo0NTpcXHRoZWxwXFxua2VybmVsL0tjb25maWcuaHo6NDY6XFx0IDEwMDAgSHogaXMgdGhlIHByZWZlcnJlZCBjaG9pY2UgZm9yIGRlc2t0b3Agc3lzdGVtcyBhbmQgb3RoZXJcXG5rZXJuZWwvS2NvbmZpZy5oejo0NzpcXHQgc3lzdGVtcyByZXF1aXJpbmcgZmFzdCBpbnRlcmFjdGl2ZSByZXNwb25zZXMgdG8gZXZlbnRzLlxcbmtlcm5lbC9LY29uZmlnLmh6OjQ4Olxcbmtlcm5lbC9LY29uZmlnLmh6OjQ5OmVuZGNob2ljZVxcbmtlcm5lbC9LY29uZmlnLmh6OjUwOlxcbmtlcm5lbC9LY29uZmlnLmh6OjUxOmNvbmZpZyBIWlxcbmtlcm5lbC9LY29uZmlnLmh6OjUyOlxcdGludFxcbmtlcm5lbC9LY29uZmlnLmh6OjUzOlxcdGRlZmF1bHQgMTAwIGlmIEhaXzEwMFxcbmtlcm5lbC9LY29uZmlnLmh6OjU0OlxcdGRlZmF1bHQgMjUwIGlmIEhaXzI1MFxcbmtlcm5lbC9LY29uZmlnLmh6OjU1OlxcdGRlZmF1bHQgMzAwIGlmIEhaXzMwMFxcbmtlcm5lbC9LY29uZmlnLmh6OjU2OlxcdGRlZmF1bHQgMTAwMCBpZiBIWl8xMDAwXFxua2VybmVsL0tjb25maWcuaHo6NTc6XFxua2VybmVsL0tjb25maWcuaHo6NTg6Y29uZmlnIFNDSEVEX0hSVElDS1xcbmtlcm5lbC9LY29uZmlnLmh6OjU5OlxcdGRlZl9ib29sIEhJR0hfUkVTX1RJTUVSU1xcbi0tXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTojIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyOlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjM6bWVudSBcXFwiS2V4ZWMgYW5kIGNyYXNoIGZlYXR1cmVzXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQ6XFxua2VybmVsL0tjb25maWcua2V4ZWM6NTpjb25maWcgQ1JBU0hfUkVTRVJWRVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjY6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjc6XFxua2VybmVsL0tjb25maWcua2V4ZWM6ODpjb25maWcgVk1DT1JFX0lORk9cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo5OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMDpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTpjb25maWcgS0VYRUNfQ09SRVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyOlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNDpjb25maWcgS0VYRUNfRUxGXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTU6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2Olxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE3OmNvbmZpZyBIQVZFX0lNQV9LRVhFQ1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE4OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxOTpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyMDpjb25maWcgS0VYRUNcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyMTpcXHRib29sIFxcXCJFbmFibGUga2V4ZWMgc3lzdGVtIGNhbGxcXFwiXFxua2VybmVsL0tjb25maWcua2V4ZWM6MjI6XFx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDXFxua2VybmVsL0tjb25maWcua2V4ZWM6MjM6XFx0c2VsZWN0IEtFWEVDX0NPUkVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyNDpcXHRoZWxwXFxua2VybmVsL0tjb25maWcua2V4ZWM6MjU6XFx0ICBrZXhlYyBpcyBhIHN5c3RlbSBjYWxsIHRoYXQgaW1wbGVtZW50cyB0aGUgYWJpbGl0eSB0byBzaHV0ZG93biB5b3VyXFxua2VybmVsL0tjb25maWcua2V4ZWM6MjY6XFx0ICBjdXJyZW50IGtlcm5lbCwgYW5kIHRvIHN0YXJ0IGFub3RoZXIga2VybmVsLiBJdCBpcyBsaWtlIGEgcmVib290XFxua2VybmVsL0tjb25maWcua2V4ZWM6Mjc6XFx0ICBidXQgaXQgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIHN5c3RlbSBmaXJtd2FyZS4gQW5kIGxpa2UgYSByZWJvb3RcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyODpcXHQgIHlvdSBjYW4gc3RhcnQgYW55IGtlcm5lbCB3aXRoIGl0LCBub3QganVzdCBMaW51eC5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoyOTpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozMDpcXHQgIFRoZSBuYW1lIGNvbWVzIGZyb20gdGhlIHNpbWlsYXJpdHkgdG8gdGhlIGV4ZWMgc3lzdGVtIGNhbGwuXFxua2VybmVsL0tjb25maWcua2V4ZWM6MzE6XFxua2VybmVsL0tjb25maWcua2V4ZWM6MzI6XFx0ICBJdCBpcyBhbiBvbmdvaW5nIHByb2Nlc3MgdG8gYmUgY2VydGFpbiB0aGUgaGFyZHdhcmUgaW4gYSBtYWNoaW5lXFxua2VybmVsL0tjb25maWcua2V4ZWM6MzM6XFx0ICBpcyBwcm9wZXJseSBzaHV0ZG93biwgc28gZG8gbm90IGJlIHN1cnByaXNlZCBpZiB0aGlzIGNvZGUgZG9lcyBub3RcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozNDpcXHQgIGluaXRpYWxseSB3b3JrIGZvciB5b3UuIEFzIG9mIHRoaXMgd3JpdGluZyB0aGUgZXhhY3QgaGFyZHdhcmVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozNTpcXHQgIGludGVyZmFjZSBpcyBzdHJvbmdseSBpbiBmbHV4LCBzbyBubyBnb29kIHJlY29tbWVuZGF0aW9uIGNhbiBiZVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjM2OlxcdCAgbWFkZS5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozNzpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzozODpjb25maWcgS0VYRUNfRklMRVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjM5OlxcdGJvb2wgXFxcIkVuYWJsZSBrZXhlYyBmaWxlIGJhc2VkIHN5c3RlbSBjYWxsXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjQwOlxcdGRlcGVuZHMgb24gQVJDSF9TVVBQT1JUU19LRVhFQ19GSUxFXFxua2VybmVsL0tjb25maWcua2V4ZWM6NDE6XFx0c2VsZWN0IENSWVBUT19MSUJfU0hBMjU2XFxua2VybmVsL0tjb25maWcua2V4ZWM6NDI6XFx0c2VsZWN0IEtFWEVDX0NPUkVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo0MzpcXHRoZWxwXFxua2VybmVsL0tjb25maWcua2V4ZWM6NDQ6XFx0ICBUaGlzIGlzIG5ldyB2ZXJzaW9uIG9mIGtleGVjIHN5c3RlbSBjYWxsLiBUaGlzIHN5c3RlbSBjYWxsIGlzXFxua2VybmVsL0tjb25maWcua2V4ZWM6NDU6XFx0ICBmaWxlIGJhc2VkIGFuZCB0YWtlcyBmaWxlIGRlc2NyaXB0b3JzIGFzIHN5c3RlbSBjYWxsIGFyZ3VtZW50XFxua2VybmVsL0tjb25maWcua2V4ZWM6NDY6XFx0ICBmb3Iga2VybmVsIGFuZCBpbml0cmFtZnMgYXMgb3Bwb3NlZCB0byBsaXN0IG9mIHNlZ21lbnRzIGFzXFxua2VybmVsL0tjb25maWcua2V4ZWM6NDc6XFx0ICBhY2NlcHRlZCBieSBrZXhlYyBzeXN0ZW0gY2FsbC5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo0ODpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo0OTpjb25maWcgS0VYRUNfU0lHXFxua2VybmVsL0tjb25maWcua2V4ZWM6NTA6XFx0Ym9vbCBcXFwiVmVyaWZ5IGtlcm5lbCBzaWduYXR1cmUgZHVyaW5nIGtleGVjX2ZpbGVfbG9hZCgpIHN5c2NhbGxcXFwiXFxua2VybmVsL0tjb25maWcua2V4ZWM6NTE6XFx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDX1NJR1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjUyOlxcdGRlcGVuZHMgb24gS0VYRUNfRklMRVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjUzOlxcdGhlbHBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo1NDpcXHQgIFRoaXMgb3B0aW9uIG1ha2VzIHRoZSBrZXhlY19maWxlX2xvYWQoKSBzeXNjYWxsIGNoZWNrIGZvciBhIHZhbGlkXFxua2VybmVsL0tjb25maWcua2V4ZWM6NTU6XFx0ICBzaWduYXR1cmUgb2YgdGhlIGtlcm5lbCBpbWFnZS4gVGhlIGltYWdlIGNhbiBzdGlsbCBiZSBsb2FkZWQgd2l0aG91dFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjU2OlxcdCAgYSB2YWxpZCBzaWduYXR1cmUgdW5sZXNzIHlvdSBhbHNvIGVuYWJsZSBLRVhFQ19TSUdfRk9SQ0UsIHRob3VnaCBpZlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjU3OlxcdCAgdGhlcmUncyBhIHNpZ25hdHVyZSB0aGF0IHdlIGNhbiBjaGVjaywgdGhlbiBpdCBtdXN0IGJlIHZhbGlkLlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjU4Olxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjU5OlxcdCAgSW4gYWRkaXRpb24gdG8gdGhpcyBvcHRpb24sIHlvdSBuZWVkIHRvIGVuYWJsZSBzaWduYXR1cmVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2MDpcXHQgIHZlcmlmaWNhdGlvbiBmb3IgdGhlIGNvcnJlc3BvbmRpbmcga2VybmVsIGltYWdlIHR5cGUgYmVpbmdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2MTpcXHQgIGxvYWRlZCBpbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjYyOlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjYzOmNvbmZpZyBLRVhFQ19TSUdfRk9SQ0VcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo2NDpcXHRib29sIFxcXCJSZXF1aXJlIGEgdmFsaWQgc2lnbmF0dXJlIGluIGtleGVjX2ZpbGVfbG9hZCgpIHN5c2NhbGxcXFwiXFxua2VybmVsL0tjb25maWcua2V4ZWM6NjU6XFx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0tFWEVDX1NJR19GT1JDRVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjY2OlxcdGRlcGVuZHMgb24gS0VYRUNfU0lHXFxua2VybmVsL0tjb25maWcua2V4ZWM6Njc6XFx0aGVscFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjY4OlxcdCAgVGhpcyBvcHRpb24gbWFrZXMga2VybmVsIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gbWFuZGF0b3J5IGZvclxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjY5OlxcdCAgdGhlIGtleGVjX2ZpbGVfbG9hZCgpIHN5c2NhbGwuXFxua2VybmVsL0tjb25maWcua2V4ZWM6NzA6XFxua2VybmVsL0tjb25maWcua2V4ZWM6NzE6Y29uZmlnIEtFWEVDX0lNQUdFX1ZFUklGWV9TSUdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3MjpcXHRib29sIFxcXCJFbmFibGUgSW1hZ2Ugc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBzdXBwb3J0IChBUk0pXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjczOlxcdGRlZmF1bHQgQVJDSF9ERUZBVUxUX0tFWEVDX0lNQUdFX1ZFUklGWV9TSUdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3NDpcXHRkZXBlbmRzIG9uIEFSQ0hfU1VQUE9SVFNfS0VYRUNfSU1BR0VfVkVSSUZZX1NJR1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjc1OlxcdGRlcGVuZHMgb24gS0VYRUNfU0lHXFxua2VybmVsL0tjb25maWcua2V4ZWM6NzY6XFx0ZGVwZW5kcyBvbiBFRkkgXFx1MDAyNlxcdTAwMjYgU0lHTkVEX1BFX0ZJTEVfVkVSSUZJQ0FUSU9OXFxua2VybmVsL0tjb25maWcua2V4ZWM6Nzc6XFx0aGVscFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjc4OlxcdCAgRW5hYmxlIEltYWdlIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gc3VwcG9ydC5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo3OTpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo4MDpjb25maWcgS0VYRUNfQlpJTUFHRV9WRVJJRllfU0lHXFxua2VybmVsL0tjb25maWcua2V4ZWM6ODE6XFx0Ym9vbCBcXFwiRW5hYmxlIGJ6SW1hZ2Ugc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBzdXBwb3J0XFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjgyOlxcdGRlcGVuZHMgb24gQVJDSF9TVVBQT1JUU19LRVhFQ19CWklNQUdFX1ZFUklGWV9TSUdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo4MzpcXHRkZXBlbmRzIG9uIEtFWEVDX1NJR1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjg0OlxcdGRlcGVuZHMgb24gU0lHTkVEX1BFX0ZJTEVfVkVSSUZJQ0FUSU9OXFxua2VybmVsL0tjb25maWcua2V4ZWM6ODU6XFx0c2VsZWN0IFNZU1RFTV9UUlVTVEVEX0tFWVJJTkdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo4NjpcXHRoZWxwXFxua2VybmVsL0tjb25maWcua2V4ZWM6ODc6XFx0ICBFbmFibGUgYnpJbWFnZSBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHN1cHBvcnQuXFxua2VybmVsL0tjb25maWcua2V4ZWM6ODg6XFxua2VybmVsL0tjb25maWcua2V4ZWM6ODk6Y29uZmlnIEtFWEVDX0pVTVBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo5MDpcXHRib29sIFxcXCJrZXhlYyBqdW1wXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjkxOlxcdGRlcGVuZHMgb24gQVJDSF9TVVBQT1JUU19LRVhFQ19KVU1QXFxua2VybmVsL0tjb25maWcua2V4ZWM6OTI6XFx0ZGVwZW5kcyBvbiBLRVhFQyBcXHUwMDI2XFx1MDAyNiBISUJFUk5BVElPTlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjkzOlxcdGhlbHBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo5NDpcXHQgIEp1bXAgYmV0d2VlbiBvcmlnaW5hbCBrZXJuZWwgYW5kIGtleGVjZWQga2VybmVsIGFuZCBpbnZva2VcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzo5NTpcXHQgIGNvZGUgaW4gcGh5c2ljYWwgYWRkcmVzcyBtb2RlIHZpYSBLRVhFQ1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk2Olxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk3OmNvbmZpZyBDUkFTSF9EVU1QXFxua2VybmVsL0tjb25maWcua2V4ZWM6OTg6XFx0Ym9vbCBcXFwia2VybmVsIGNyYXNoIGR1bXBzXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjk5OlxcdGRlZmF1bHQgQVJDSF9ERUZBVUxUX0NSQVNIX0RVTVBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMDA6XFx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0NSQVNIX0RVTVBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMDE6XFx0ZGVwZW5kcyBvbiBLRVhFQ19DT1JFXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTAyOlxcdHNlbGVjdCBWTUNPUkVfSU5GT1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEwMzpcXHRzZWxlY3QgQ1JBU0hfUkVTRVJWRVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEwNDpcXHRoZWxwXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTA1OlxcdCAgR2VuZXJhdGUgY3Jhc2ggZHVtcCBhZnRlciBiZWluZyBzdGFydGVkIGJ5IGtleGVjLlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEwNjpcXHQgIFRoaXMgc2hvdWxkIGJlIG5vcm1hbGx5IG9ubHkgc2V0IGluIHNwZWNpYWwgY3Jhc2ggZHVtcCBrZXJuZWxzXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTA3OlxcdCAgd2hpY2ggYXJlIGxvYWRlZCBpbiB0aGUgbWFpbiBrZXJuZWwgd2l0aCBrZXhlYy10b29scyBpbnRvXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTA4OlxcdCAgYSBzcGVjaWFsbHkgcmVzZXJ2ZWQgcmVnaW9uIGFuZCB0aGVuIGxhdGVyIGV4ZWN1dGVkIGFmdGVyXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTA5OlxcdCAgYSBjcmFzaCBieSBrZHVtcC9rZXhlYy4gVGhlIGNyYXNoIGR1bXAga2VybmVsIG11c3QgYmUgY29tcGlsZWRcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTA6XFx0ICB0byBhIG1lbW9yeSBhZGRyZXNzIG5vdCB1c2VkIGJ5IHRoZSBtYWluIGtlcm5lbCBvciBCSU9TIHVzaW5nXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTExOlxcdCAgUEhZU0lDQUxfU1RBUlQsIG9yIGl0IG11c3QgYmUgYnVpbHQgYXMgYSByZWxvY2F0YWJsZSBpbWFnZVxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjExMjpcXHQgIChDT05GSUdfUkVMT0NBVEFCTEU9eSkuXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTEzOlxcdCAgRm9yIG1vcmUgZGV0YWlscyBzZWUgRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZHVtcC9rZHVtcC5yc3RcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTQ6XFxua2VybmVsL0tjb25maWcua2V4ZWM6MTE1OlxcdCAgRm9yIHMzOTAsIHRoaXMgb3B0aW9uIGFsc28gZW5hYmxlcyB6ZmNwZHVtcC5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTY6XFx0ICBTZWUgYWxzbyBcXHUwMDNjZmlsZTpEb2N1bWVudGF0aW9uL2FyY2gvczM5MC96ZmNwZHVtcC5yc3RcXHUwMDNlXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTE3Olxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjExODpjb25maWcgQ1JBU0hfRE1fQ1JZUFRcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMTk6XFx0Ym9vbCBcXFwiU3VwcG9ydCBzYXZpbmcgY3Jhc2ggZHVtcCB0byBkbS1jcnlwdCBlbmNyeXB0ZWQgdm9sdW1lXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyMDpcXHRkZXBlbmRzIG9uIEtFWEVDX0ZJTEVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjE6XFx0ZGVwZW5kcyBvbiBDUkFTSF9EVU1QXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTIyOlxcdGRlcGVuZHMgb24gRE1fQ1JZUFRcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjM6XFx0ZGVwZW5kcyBvbiBLRVlTXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTI0OlxcdGhlbHBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjU6XFx0ICBXaXRoIHRoaXMgb3B0aW9uIGVuYWJsZWQsIHVzZXIgc3BhY2UgY2FuIGludGVyZWFjdCB3aXRoXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTI2OlxcdCAgL3N5cy9rZXJuZWwvY29uZmlnL2NyYXNoX2RtX2NyeXB0X2tleXMgdG8gbWFrZSB0aGUgZG0gY3J5cHQga2V5c1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyNzpcXHQgIHBlcnNpc3RlbnQgZm9yIHRoZSBkdW1wLWNhcHR1cmUga2VybmVsLlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEyODpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMjk6Y29uZmlnIENSQVNIX0RNX0NSWVBUX0NPTkZJR1NcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzA6XFx0ZGVmX3RyaXN0YXRlIENSQVNIX0RNX0NSWVBUXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTMxOlxcdHNlbGVjdCBDT05GSUdGU19GU1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEzMjpcXHRoZWxwXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTMzOlxcdCAgQ1JBU0hfRE1fQ1JZUFQgY2Fubm90IGRpcmVjdGx5IHNlbGVjdCBDT05GSUdGU19GUywgYmVjYXVzZSB0aGF0XFxua2VybmVsL0tjb25maWcua2V4ZWM6MTM0OlxcdCAgaXMgcmVxdWlyZWQgdG8gYmUgYnVpbHQtaW4uXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTM1Olxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjEzNjpjb25maWcgQ1JBU0hfRFVNUF9LVU5JVF9URVNUXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTM3OlxcdHRyaXN0YXRlIFxcXCJVbml0IFRlc3RzIGZvciBrZXJuZWwgY3Jhc2ggZHVtcHNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxMzg6XFx0ZGVwZW5kcyBvbiBDUkFTSF9EVU1QIFxcdTAwMjZcXHUwMDI2IEtVTklUXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTM5OlxcdGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTQwOlxcdGhlbHBcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNDE6XFx0ICBUaGlzIG9wdGlvbiBidWlsZHMgS1VuaXQgdW5pdCB0ZXN0cyBmb3Iga2VybmVsIGNyYXNoIGR1bXBzLiBUaGUgdW5pdFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0MjpcXHQgIHRlc3RzIHdpbGwgYmUgdXNlZCB0byB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIGNvdmVyZWQgZnVuY3Rpb25zIGFuZFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0MzpcXHQgIGFsc28gcHJldmVudCBhbnkgcmVncmVzc2lvbi5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNDQ6XFxua2VybmVsL0tjb25maWcua2V4ZWM6MTQ1OlxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNDY6XFxua2VybmVsL0tjb25maWcua2V4ZWM6MTQ3OmNvbmZpZyBDUkFTSF9IT1RQTFVHXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTQ4OlxcdGJvb2wgXFxcIlVwZGF0ZSB0aGUgY3Jhc2ggZWxmY29yZWhkciBvbiBzeXN0ZW0gY29uZmlndXJhdGlvbiBjaGFuZ2VzXFxcIlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE0OTpcXHRkZWZhdWx0IHlcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTA6XFx0ZGVwZW5kcyBvbiBDUkFTSF9EVU1QIFxcdTAwMjZcXHUwMDI2IChIT1RQTFVHX0NQVSB8fCBNRU1PUllfSE9UUExVRylcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTE6XFx0ZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0NSQVNIX0hPVFBMVUdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTI6XFx0aGVscFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE1MzpcXHQgIEVuYWJsZSBkaXJlY3QgdXBkYXRlIHRvIHRoZSBjcmFzaCBlbGZjb3JlaGRyICh3aGljaCBjb250YWluc1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE1NDpcXHQgIHRoZSBsaXN0IG9mIENQVXMgYW5kIG1lbW9yeSByZWdpb25zIHRvIGJlIGR1bXBlZCB1cG9uIGEgY3Jhc2gpXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTU1OlxcdCAgaW4gcmVzcG9uc2UgdG8gaG90IHBsdWcvdW5wbHVnIG9yIG9ubGluZS9vZmZsaW5lIG9mIENQVXMgb3JcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTY6XFx0ICBtZW1vcnkuIFRoaXMgaXMgYSBtdWNoIG1vcmUgYWR2YW5jZWQgYXBwcm9hY2ggdGhhbiB1c2Vyc3BhY2VcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNTc6XFx0ICBhdHRlbXB0aW5nIHRoYXQuXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTU4Olxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE1OTpcXHQgIElmIHVuc3VyZSwgc2F5IFkuXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTYwOlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2MTpjb25maWcgQ1JBU0hfTUFYX01FTU9SWV9SQU5HRVNcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNjI6XFx0aW50IFxcXCJTcGVjaWZ5IHRoZSBtYXhpbXVtIG51bWJlciBvZiBtZW1vcnkgcmVnaW9ucyBmb3IgdGhlIGVsZmNvcmVoZHJcXFwiXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTYzOlxcdGRlZmF1bHQgODE5Mlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2NDpcXHRkZXBlbmRzIG9uIENSQVNIX0hPVFBMVUdcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNjU6XFx0aGVscFxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2NjpcXHQgIEZvciB0aGUga2V4ZWNfZmlsZV9sb2FkKCkgc3lzY2FsbCBwYXRoLCBzcGVjaWZ5IHRoZSBtYXhpbXVtIG51bWJlciBvZlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2NzpcXHQgIG1lbW9yeSByZWdpb25zIHRoYXQgdGhlIGVsZmNvcmVoZHIgYnVmZmVyL3NlZ21lbnQgY2FuIGFjY29tbW9kYXRlLlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE2ODpcXHQgIFRoZXNlIHJlZ2lvbnMgYXJlIG9idGFpbmVkIHZpYSB3YWxrX3N5c3RlbV9yYW1fcmVzKCk7IGVnLiB0aGVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNjk6XFx0ICAnU3lzdGVtIFJBTScgZW50cmllcyBpbiAvcHJvYy9pb21lbS5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNzA6XFx0ICBUaGlzIHZhbHVlIGlzIGNvbWJpbmVkIHdpdGggTlJfQ1BVU19ERUZBVUxUIGFuZCBtdWx0aXBsaWVkIGJ5XFxua2VybmVsL0tjb25maWcua2V4ZWM6MTcxOlxcdCAgc2l6ZW9mKEVsZjY0X1BoZHIpIHRvIGRldGVybWluZSB0aGUgZmluYWwgZWxmY29yZWhkciBtZW1vcnkgYnVmZmVyL1xcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE3MjpcXHQgIHNlZ21lbnQgc2l6ZS5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNzM6XFx0ICBUaGUgdmFsdWUgODE5MiwgZm9yIGV4YW1wbGUsIGNvdmVycyBhIChzcGFyc2VseSBwb3B1bGF0ZWQpIDFUaUIgc3lzdGVtXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTc0OlxcdCAgY29uc2lzdGluZyBvZiAxMjhNaUIgbWVtYmxvY2tzLCB3aGlsZSByZXN1bHRpbmcgaW4gYW4gZWxmY29yZWhkclxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE3NTpcXHQgIG1lbW9yeSBidWZmZXIvc2VnbWVudCBzaXplIHVuZGVyIDFNaUIuIFRoaXMgcmVwcmVzZW50cyBhIHNhbmUgY2hvaWNlXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTc2OlxcdCAgdG8gYWNjb21tb2RhdGUgYm90aCBiYXJlbWV0YWwgYW5kIHZpcnR1YWwgbWFjaGluZSBjb25maWd1cmF0aW9ucy5cXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxNzc6XFxua2VybmVsL0tjb25maWcua2V4ZWM6MTc4OlxcdCAgRm9yIHRoZSBrZXhlY19sb2FkKCkgc3lzY2FsbCBwYXRoLCBDUkFTSF9NQVhfTUVNT1JZX1JBTkdFUyBpcyBwYXJ0IG9mXFxua2VybmVsL0tjb25maWcua2V4ZWM6MTc5OlxcdCAgdGhlIGNvbXB1dGF0aW9uIGJlaGluZCB0aGUgdmFsdWUgcHJvdmlkZWQgdGhyb3VnaCB0aGVcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxODA6XFx0ICAvc3lzL2tlcm5lbC9jcmFzaF9lbGZjb3JlaGRyX3NpemUgYXR0cmlidXRlLlxcbmtlcm5lbC9LY29uZmlnLmtleGVjOjE4MTpcXG5rZXJuZWwvS2NvbmZpZy5rZXhlYzoxODI6ZW5kbWVudVxcbi0tXFxua2VybmVsL0tjb25maWcubG9ja3M6MTojIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyOiNcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczozOiMgVGhlIEFSQ0hfSU5MSU5FIGZvbyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBzZWxlY3QgaWdub3JlcyBcXFwiZGVwZW5kcyBvblxcXCJcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo0OiNcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1OmNvbmZpZyBBUkNIX0lOTElORV9TUElOX1RSWUxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fVFJZTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjk6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjExOmNvbmZpZyBBUkNIX0lOTElORV9TUElOX0xPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMjpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6MTM6XFxua2VybmVsL0tjb25maWcubG9ja3M6MTQ6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE1OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzpjb25maWcgQVJDSF9JTkxJTkVfU1BJTl9MT0NLX0lSUVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxOTpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMDpjb25maWcgQVJDSF9JTkxJTkVfU1BJTl9MT0NLX0lSUVNBVkVcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMTpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6MjI6XFxua2VybmVsL0tjb25maWcubG9ja3M6MjM6Y29uZmlnIEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MjQ6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI1Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI2OmNvbmZpZyBBUkNIX0lOTElORV9TUElOX1VOTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI3OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyODpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyOTpjb25maWcgQVJDSF9JTkxJTkVfU1BJTl9VTkxPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6MzA6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjMxOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjMyOmNvbmZpZyBBUkNIX0lOTElORV9TUElOX1VOTE9DS19JUlFSRVNUT1JFXFxua2VybmVsL0tjb25maWcubG9ja3M6MzM6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjM0Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjM1Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjM2OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX1RSWUxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczozNzpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6Mzg6XFxua2VybmVsL0tjb25maWcubG9ja3M6Mzk6Y29uZmlnIEFSQ0hfSU5MSU5FX1JFQURfTE9DS1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQwOlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo0MTpcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo0Mjpjb25maWcgQVJDSF9JTkxJTkVfUkVBRF9MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6NDM6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQ0Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQ1OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX0xPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6NDY6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQ3Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQ4OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX0xPQ0tfSVJRU0FWRVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjQ5OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1MDpcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1MTpjb25maWcgQVJDSF9JTkxJTkVfUkVBRF9VTkxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1MjpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6NTM6XFxua2VybmVsL0tjb25maWcubG9ja3M6NTQ6Y29uZmlnIEFSQ0hfSU5MSU5FX1JFQURfVU5MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6NTU6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjU2Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjU3OmNvbmZpZyBBUkNIX0lOTElORV9SRUFEX1VOTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo1ODpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6NTk6XFxua2VybmVsL0tjb25maWcubG9ja3M6NjA6Y29uZmlnIEFSQ0hfSU5MSU5FX1JFQURfVU5MT0NLX0lSUVJFU1RPUkVcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2MTpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6NjI6XFxua2VybmVsL0tjb25maWcubG9ja3M6NjM6XFxua2VybmVsL0tjb25maWcubG9ja3M6NjQ6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX1RSWUxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2NTpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6NjY6XFxua2VybmVsL0tjb25maWcubG9ja3M6Njc6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo2ODpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6Njk6XFxua2VybmVsL0tjb25maWcubG9ja3M6NzA6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tfQkhcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3MTpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6NzI6XFxua2VybmVsL0tjb25maWcubG9ja3M6NzM6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX0xPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6NzQ6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjc1Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjc2OmNvbmZpZyBBUkNIX0lOTElORV9XUklURV9MT0NLX0lSUVNBVkVcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo3NzpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6Nzg6XFxua2VybmVsL0tjb25maWcubG9ja3M6Nzk6Y29uZmlnIEFSQ0hfSU5MSU5FX1dSSVRFX1VOTE9DS1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjgwOlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo4MTpcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo4Mjpjb25maWcgQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6ODM6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg0Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg1OmNvbmZpZyBBUkNIX0lOTElORV9XUklURV9VTkxPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6ODY6XFx0Ym9vbFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg3Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg4OmNvbmZpZyBBUkNIX0lOTElORV9XUklURV9VTkxPQ0tfSVJRUkVTVE9SRVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjg5OlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5MDpcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5MTpjb25maWcgVU5JTkxJTkVfU1BJTl9VTkxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5MjpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6OTM6XFxua2VybmVsL0tjb25maWcubG9ja3M6OTQ6I1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjk1OiMgbG9ja18qIGZ1bmN0aW9ucyBhcmUgaW5saW5lZCB3aGVuOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjk2OiMgICAtIERFQlVHX1NQSU5MT0NLPW4gYW5kIEdFTkVSSUNfTE9DS0JSRUFLPW4gYW5kIEFSQ0hfSU5MSU5FXypMT0NLPXlcXG5rZXJuZWwvS2NvbmZpZy5sb2Nrczo5NzojXFxua2VybmVsL0tjb25maWcubG9ja3M6OTg6IyB0cnlsb2NrXyogZnVuY3Rpb25zIGFyZSBpbmxpbmVkIHdoZW46XFxua2VybmVsL0tjb25maWcubG9ja3M6OTk6IyAgIC0gREVCVUdfU1BJTkxPQ0s9biBhbmQgQVJDSF9JTkxJTkVfKkxPQ0s9eVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwMDojXFxua2VybmVsL0tjb25maWcubG9ja3M6MTAxOiMgdW5sb2NrIGFuZCB1bmxvY2tfaXJxIGZ1bmN0aW9ucyBhcmUgaW5saW5lZCB3aGVuOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwMjojICAgLSBERUJVR19TUElOTE9DSz1uIGFuZCBBUkNIX0lOTElORV8qTE9DSz15XFxua2VybmVsL0tjb25maWcubG9ja3M6MTAzOiMgIG9yXFxua2VybmVsL0tjb25maWcubG9ja3M6MTA0OiMgICAtIERFQlVHX1NQSU5MT0NLPW4gYW5kIFBSRUVNUFRJT049blxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwNTojXFxua2VybmVsL0tjb25maWcubG9ja3M6MTA2OiMgdW5sb2NrX2JoIGFuZCB1bmxvY2tfaXJxcmVzdG9yZSBmdW5jdGlvbnMgYXJlIGlubGluZWQgd2hlbjpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMDc6IyAgIC0gREVCVUdfU1BJTkxPQ0s9biBhbmQgQVJDSF9JTkxJTkVfKkxPQ0s9eVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEwODojXFxua2VybmVsL0tjb25maWcubG9ja3M6MTA5Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjExMDppZiAhREVCVUdfU1BJTkxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTE6XFxua2VybmVsL0tjb25maWcubG9ja3M6MTEyOmNvbmZpZyBJTkxJTkVfU1BJTl9UUllMT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTEzOlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTQ6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9TUElOX1RSWUxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTU6XFxua2VybmVsL0tjb25maWcubG9ja3M6MTE2OmNvbmZpZyBJTkxJTkVfU1BJTl9UUllMT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MTE3OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTg6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9TUElOX1RSWUxPQ0tfQkhcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMTk6XFxua2VybmVsL0tjb25maWcubG9ja3M6MTIwOmNvbmZpZyBJTkxJTkVfU1BJTl9MT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTIxOlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMjI6XFx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXFx1MDAyNlxcdTAwMjYgQVJDSF9JTkxJTkVfU1BJTl9MT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTIzOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyNDpjb25maWcgSU5MSU5FX1NQSU5fTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyNTpcXHRkZWZfYm9vbCB5XFxua2VybmVsL0tjb25maWcubG9ja3M6MTI2OlxcdGRlcGVuZHMgb24gIUdFTkVSSUNfTE9DS0JSRUFLIFxcdTAwMjZcXHUwMDI2IEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEyNzpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMjg6Y29uZmlnIElOTElORV9TUElOX0xPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6MTI5OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzA6XFx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXFx1MDAyNlxcdTAwMjYgQVJDSF9JTkxJTkVfU1BJTl9MT0NLX0lSUVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzMTpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzI6Y29uZmlnIElOTElORV9TUElOX0xPQ0tfSVJRU0FWRVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzMzpcXHRkZWZfYm9vbCB5XFxua2VybmVsL0tjb25maWcubG9ja3M6MTM0OlxcdGRlcGVuZHMgb24gIUdFTkVSSUNfTE9DS0JSRUFLIFxcdTAwMjZcXHUwMDI2IEFSQ0hfSU5MSU5FX1NQSU5fTE9DS19JUlFTQVZFXFxua2VybmVsL0tjb25maWcubG9ja3M6MTM1Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzNjpjb25maWcgSU5MSU5FX1NQSU5fVU5MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MTM3OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxMzg6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9TUElOX1VOTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjEzOTpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDA6Y29uZmlnIElOTElORV9TUElOX1VOTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDE6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0MjpcXHRkZXBlbmRzIG9uICFQUkVFTVBUSU9OIHx8IEFSQ0hfSU5MSU5FX1NQSU5fVU5MT0NLX0lSUVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0MzpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDQ6Y29uZmlnIElOTElORV9TUElOX1VOTE9DS19JUlFSRVNUT1JFXFxua2VybmVsL0tjb25maWcubG9ja3M6MTQ1OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDY6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9TUElOX1VOTE9DS19JUlFSRVNUT1JFXFxua2VybmVsL0tjb25maWcubG9ja3M6MTQ3Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE0ODpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNDk6Y29uZmlnIElOTElORV9SRUFEX1RSWUxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTA6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE1MTpcXHRkZXBlbmRzIG9uIEFSQ0hfSU5MSU5FX1JFQURfVFJZTE9DS1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE1MjpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTM6Y29uZmlnIElOTElORV9SRUFEX0xPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTQ6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE1NTpcXHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcXHUwMDI2XFx1MDAyNiBBUkNIX0lOTElORV9SRUFEX0xPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTY6XFxua2VybmVsL0tjb25maWcubG9ja3M6MTU3OmNvbmZpZyBJTkxJTkVfUkVBRF9MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MTU4OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNTk6XFx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXFx1MDAyNlxcdTAwMjYgQVJDSF9JTkxJTkVfUkVBRF9MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MTYwOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE2MTpjb25maWcgSU5MSU5FX1JFQURfTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjI6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE2MzpcXHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcXHUwMDI2XFx1MDAyNiBBUkNIX0lOTElORV9SRUFEX0xPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6MTY0Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE2NTpjb25maWcgSU5MSU5FX1JFQURfTE9DS19JUlFTQVZFXFxua2VybmVsL0tjb25maWcubG9ja3M6MTY2OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjc6XFx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXFx1MDAyNlxcdTAwMjYgQVJDSF9JTkxJTkVfUkVBRF9MT0NLX0lSUVNBVkVcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNjg6XFxua2VybmVsL0tjb25maWcubG9ja3M6MTY5OmNvbmZpZyBJTkxJTkVfUkVBRF9VTkxPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzA6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3MTpcXHRkZXBlbmRzIG9uICFQUkVFTVBUSU9OIHx8IEFSQ0hfSU5MSU5FX1JFQURfVU5MT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTcyOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3Mzpjb25maWcgSU5MSU5FX1JFQURfVU5MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MTc0OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzU6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9SRUFEX1VOTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3NjpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzc6Y29uZmlnIElOTElORV9SRUFEX1VOTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxNzg6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE3OTpcXHRkZXBlbmRzIG9uICFQUkVFTVBUSU9OIHx8IEFSQ0hfSU5MSU5FX1JFQURfVU5MT0NLX0lSUVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4MDpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODE6Y29uZmlnIElOTElORV9SRUFEX1VOTE9DS19JUlFSRVNUT1JFXFxua2VybmVsL0tjb25maWcubG9ja3M6MTgyOlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODM6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9SRUFEX1VOTE9DS19JUlFSRVNUT1JFXFxua2VybmVsL0tjb25maWcubG9ja3M6MTg0Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE4NTpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODY6Y29uZmlnIElOTElORV9XUklURV9UUllMT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTg3OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxODg6XFx0ZGVwZW5kcyBvbiBBUkNIX0lOTElORV9XUklURV9UUllMT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTg5Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5MDpjb25maWcgSU5MSU5FX1dSSVRFX0xPQ0tcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxOTE6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5MjpcXHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcXHUwMDI2XFx1MDAyNiBBUkNIX0lOTElORV9XUklURV9MT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MTkzOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5NDpjb25maWcgSU5MSU5FX1dSSVRFX0xPQ0tfQkhcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoxOTU6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5NjpcXHRkZXBlbmRzIG9uICFHRU5FUklDX0xPQ0tCUkVBSyBcXHUwMDI2XFx1MDAyNiBBUkNIX0lOTElORV9XUklURV9MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MTk3Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjE5ODpjb25maWcgSU5MSU5FX1dSSVRFX0xPQ0tfSVJRXFxua2VybmVsL0tjb25maWcubG9ja3M6MTk5OlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMDA6XFx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXFx1MDAyNlxcdTAwMjYgQVJDSF9JTkxJTkVfV1JJVEVfTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMDE6XFxua2VybmVsL0tjb25maWcubG9ja3M6MjAyOmNvbmZpZyBJTkxJTkVfV1JJVEVfTE9DS19JUlFTQVZFXFxua2VybmVsL0tjb25maWcubG9ja3M6MjAzOlxcdGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMDQ6XFx0ZGVwZW5kcyBvbiAhR0VORVJJQ19MT0NLQlJFQUsgXFx1MDAyNlxcdTAwMjYgQVJDSF9JTkxJTkVfV1JJVEVfTE9DS19JUlFTQVZFXFxua2VybmVsL0tjb25maWcubG9ja3M6MjA1Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwNjpjb25maWcgSU5MSU5FX1dSSVRFX1VOTE9DS1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIwNzpcXHRkZWZfYm9vbCB5XFxua2VybmVsL0tjb25maWcubG9ja3M6MjA4OlxcdGRlcGVuZHMgb24gIVBSRUVNUFRJT04gfHwgQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLXFxua2VybmVsL0tjb25maWcubG9ja3M6MjA5Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxMDpjb25maWcgSU5MSU5FX1dSSVRFX1VOTE9DS19CSFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxMTpcXHRkZWZfYm9vbCB5XFxua2VybmVsL0tjb25maWcubG9ja3M6MjEyOlxcdGRlcGVuZHMgb24gQVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0JIXFxua2VybmVsL0tjb25maWcubG9ja3M6MjEzOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxNDpjb25maWcgSU5MSU5FX1dSSVRFX1VOTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMTU6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIxNjpcXHRkZXBlbmRzIG9uICFQUkVFTVBUSU9OIHx8IEFSQ0hfSU5MSU5FX1dSSVRFX1VOTE9DS19JUlFcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMTc6XFxua2VybmVsL0tjb25maWcubG9ja3M6MjE4OmNvbmZpZyBJTkxJTkVfV1JJVEVfVU5MT0NLX0lSUVJFU1RPUkVcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMTk6XFx0ZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyMDpcXHRkZXBlbmRzIG9uIEFSQ0hfSU5MSU5FX1dSSVRFX1VOTE9DS19JUlFSRVNUT1JFXFxua2VybmVsL0tjb25maWcubG9ja3M6MjIxOlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyMjplbmRpZlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyMzpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMjQ6Y29uZmlnIEFSQ0hfU1VQUE9SVFNfQVRPTUlDX1JNV1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyNTpcXHRib29sXFxua2VybmVsL0tjb25maWcubG9ja3M6MjI2Olxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyNzpjb25maWcgTVVURVhfU1BJTl9PTl9PV05FUlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIyODpcXHRkZWZfYm9vbCB5XFxua2VybmVsL0tjb25maWcubG9ja3M6MjI5OlxcdGRlcGVuZHMgb24gU01QIFxcdTAwMjZcXHUwMDI2IEFSQ0hfU1VQUE9SVFNfQVRPTUlDX1JNV1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIzMDpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMzE6Y29uZmlnIFJXU0VNX1NQSU5fT05fT1dORVJcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMzI6ICAgICAgIGRlZl9ib29sIHlcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMzM6ICAgICAgIGRlcGVuZHMgb24gU01QIFxcdTAwMjZcXHUwMDI2IEFSQ0hfU1VQUE9SVFNfQVRPTUlDX1JNV1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIzNDpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMzU6Y29uZmlnIExPQ0tfU1BJTl9PTl9PV05FUlxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIzNjogICAgICAgZGVmX2Jvb2wgeVxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjIzNzogICAgICAgZGVwZW5kcyBvbiBNVVRFWF9TUElOX09OX09XTkVSIHx8IFJXU0VNX1NQSU5fT05fT1dORVJcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyMzg6XFxua2VybmVsL0tjb25maWcubG9ja3M6MjM5OmNvbmZpZyBBUkNIX1VTRV9RVUVVRURfU1BJTkxPQ0tTXFxua2VybmVsL0tjb25maWcubG9ja3M6MjQwOlxcdGJvb2xcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDE6XFxua2VybmVsL0tjb25maWcubG9ja3M6MjQyOmNvbmZpZyBRVUVVRURfU1BJTkxPQ0tTXFxua2VybmVsL0tjb25maWcubG9ja3M6MjQzOlxcdGRlZl9ib29sIHkgaWYgQVJDSF9VU0VfUVVFVUVEX1NQSU5MT0NLU1xcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI0NDpcXHRkZXBlbmRzIG9uIFNNUFxcbmtlcm5lbC9LY29uZmlnLmxvY2tzOjI0NTpcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDY6Y29uZmlnIFFVRVVFRF9TUElOTE9DS1NfVFJBQ0VfQ09OVEVOREVEX1JFTEVBU0VcXG5rZXJuZWwvS2NvbmZpZy5sb2NrczoyNDc6XFx0Ym9vbCBcXFwiVHJhY2UgY29udGVuZGVkX3JlbGVhc2Ugb24gcXVldWVkIHNwaW5sb2Nrc1xcXCJcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMTY6MjA6MTcuNTI4Mjc1Nzc1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MTIwMDgwMjM2ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBSZWxldmFuY2UqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGRpZmYgYW5kIGltbWVkaWF0ZWx5IHNlZSB0aGF0IGFsbCB0aGUgY2hhbmdlcyBhcmUgd2l0aGluIHRoZSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2AgZGlyZWN0b3J5LiBUaGF0J3MgYSBrZXkgaW5pdGlhbCBvYnNlcnZhdGlvbi4gTGV0J3MgbWFrZSBzdXJlIHdlIGFyZSBub3QgZ29pbmcgdG8gd2FzdGUgYW55IHRpbWUgZnV6emluZyBzb21ldGhpbmcgbm90IHdvcnRoIGZ1enppbmcsIGJhc2VkIG9uIHRoZSBkb2N1bWVudGVkIGNyaXRlcmlhLCB3aGljaCBJIGtub3cgaW50aW1hdGVseS5cblxuSSdtIG1lbnRhbGx5IHJlZmVyZW5jaW5nIFNlY3Rpb24gMiBvZiBvdXIgaW50ZXJuYWwgZ3VpZGVsaW5lcyByZWdhcmRpbmcgZnV6emluZyByZWxldmFuY2UuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcInRoaXMgaXMgbGlrZWx5IGEgbm8tZ28gZm9yIGZ1enppbmcuXCIgVGhlIHRleHQgY2xlYXJseSBzdGF0ZXMgdGhhdCBjaGFuZ2VzIGluIGB1c2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzYCBhcmUgc3BlY2lmaWNhbGx5IGV4ZW1wdGVkIGZyb20gZnV6emluZyBjb25zaWRlcmF0aW9uIGlmICphbGwqIHRoZSBjaGFuZ2VzIGZpdCB0aGF0IGNyaXRlcmlhLlxuXG5HaXZlbiB0aGF0IGFsbCB0aGUgZGlmZnMgYXJlIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvYCwgd2hpY2ggaG91c2VzIHVzZXItc3BhY2UgQlBGIHNlbGYtdGVzdHMgYW5kIHJlbGF0ZWQgZmlsZXMsIGl0J3MgcHJldHR5IGNsZWFyIHRoYXQgdGhlc2UgY2hhbmdlcyBmYWxsIHNxdWFyZWx5IHdpdGhpbiB0aGF0IGV4ZW1wdGlvbi4gTm9uZSBvZiB0aGUgZmlsZXMgbW9kaWZpZWQgYWZmZWN0IHRoZSBrZXJuZWwgaW1hZ2Ugb3Iga2VybmVsIG1vZHVsZXMsIGFuZCBoZW5jZSwgYmFzZWQgb24gdGhlIGRlZmluaXRpb246XG5cbiogICBgV29ydGhGdXp6aW5nID0gZmFsc2VgXG4qICAgYEZvY3VzU3ltYm9scyA9IFtdYCAobm8gc3BlY2lmaWMga2VybmVsIHN5bWJvbHMgdG8gdGFyZ2V0KVxuKiAgIGBFbmFibGVDb25maWdzID0gW11gIChubyBrZXJuZWwgY29uZmlndXJhdGlvbnMgbmVlZCB0byBiZSBlbmFibGVkKVxuXG5NeSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGVzZSBhcmUgY2hhbmdlcyB0byBCUEYgKnNlbGYtdGVzdHMqIGFuZCBkb2N1bWVudGF0aW9uLCB3aGljaCBsaXZlIGluIHVzZXJzcGFjZSwgYW5kIHRodXMgZG9uJ3QgaW1wYWN0IHRoZSBrZXJuZWwgaXRzZWxmLiBXZSBkb24ndCB3YW50IHRvIGJ1cm4gY3ljbGVzIG9yIHJlc291cmNlcyB3aGVyZSB0aGV5IGFyZSBub3QgbmVlZGVkLiBUaGF0IG1lYW5zIG5vIGZ1enppbmcgaXMgcmVxdWlyZWQuIE5vdywgSSdsbCBnbyBhaGVhZCBhbmQgc2V0IHRoZSByZXN1bHRzIGFjY29yZGluZ2x5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzYzOCwiT3V0cHV0VG9rZW5zIjo4OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY1OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQxNjoyMDoyOS41MzYzMDE4ODVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5OTUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIG9ubHkgQlBGIHNlbGZ0ZXN0cyBhbmQgc2VsZnRlc3QgZG9jdW1lbnRhdGlvbiBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvLiBCZWNhdXNlIHRoZXNlIGNoYW5nZXMgb25seSBhZmZlY3QgdXNlcnNwYWNlIHRlc3QgYXJ0aWZhY3RzIGFuZCBkbyBub3QgYWx0ZXIgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMsIHRoZXkgYXJlIG5vdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBCUEYgc2VsZnRlc3RzIGFuZCBzZWxmdGVzdCBkb2N1bWVudGF0aW9uIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8uIEJlY2F1c2UgdGhlc2UgY2hhbmdlcyBvbmx5IGFmZmVjdCB1c2Vyc3BhY2UgdGVzdCBhcnRpZmFjdHMgYW5kIGRvIG5vdCBhbHRlciB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcywgdGhleSBhcmUgbm90IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQxNjoyMDoyOS41MzYzMjYyNjVaIiwiU2VxIjo3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowmr6cn[1] Phase: Running StartedAt: 2026-09-11 16:20:40 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmr6cn[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-11 16:20:40 +0000 UTC FinishedAt: 2026-09-11 16:20:44 +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,}