Name: series-workflowrc5v5 Phase: Failed StartedAt: 2026-09-04 09:15:21 +0000 UTC FinishedAt: 2026-09-04 10:06:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrc5v5[0] Phase: Succeeded StartedAt: 2026-09-04 09:15:21 +0000 UTC FinishedAt: 2026-09-04 10:06:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrc5v5[0].run-triage Phase: Succeeded StartedAt: 2026-09-04 09:15:21 +0000 UTC FinishedAt: 2026-09-04 10:06: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+CgkJCTx0ZD4yMDI2LzA5LzA0IDEwOjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaXMgYSBoZWFkZXIgcmVmYWN0b3JpbmcgdGhhdCBzZXBhcmF0ZXMga2VybmVsLWludGVybmFsIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggbWFjcm9zIGZyb20gVUFQSSBoZWFkZXJzIGludG8gaW50ZXJuYWwgYXNtIGhlYWRlcnMgYW5kIGNlbnRyYWxpemVzIEFUX1ZFQ1RPUl9TSVpFIGluIGluY2x1ZGUvbGludXgvYXV4dmVjLmguIE5vIGV4ZWN1dGFibGUgQyBjb2RlLCBkYXRhIHN0cnVjdHVyZXMsIGNvbnN0YW50cywgYXNzZXJ0aW9ucywgb3IgcnVudGltZSBsb2dpYyBhcmUgYWx0ZXJlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMTA6MDY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBkNTY2ZGYwNWM4MTMxNDY3ZTRlZGIxYWM3ODRmZTdmOTcxOGE1MjE1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBTZXAgNCAxMDowNjowOSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTXG5pbmRleCAzYTE5ZGE3NGQwMGM5Li42OTc0ZjhkYWQxZTlhIDEwMDY0NFxuLS0tIGEvTUFJTlRBSU5FUlNcbiYjNDM7JiM0MzsmIzQzOyBiL01BSU5UQUlORVJTXG5AQCAtOTgwOCwxMyAmIzQzOzk4MDgsMTggQEAgTDpcdGxpbnV4LW1tQGt2YWNrLm9yZ1xuIFM6XHRTdXBwb3J0ZWRcbiBUOlx0Z2l0IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9rZWVzL2xpbnV4LmdpdCBmb3ItbmV4dC9leGVjdmVcbiBGOlx0RG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL0VMRi5yc3RcbiYjNDM7RjpcdGFyY2gvKi9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuJiM0MztGOlx0YXJjaC8qL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbiBGOlx0ZnMvKmJpbmZtdF8qLmNcbiBGOlx0ZnMvS2NvbmZpZy5iaW5mbXRcbiBGOlx0ZnMvZXhlYy5jXG4gRjpcdGZzL3Rlc3RzL2JpbmZtdF8qX2t1bml0LmNcbiBGOlx0ZnMvdGVzdHMvZXhlY19rdW5pdC5jXG4mIzQzO0Y6XHRpbmNsdWRlL2FzbS1nZW5lcmljL2F1eHZlYy5oXG4mIzQzO0Y6XHRpbmNsdWRlL2xpbnV4L2F1eHZlYy5oXG4gRjpcdGluY2x1ZGUvbGludXgvYmluZm10cy5oXG4gRjpcdGluY2x1ZGUvbGludXgvZWxmLmhcbiYjNDM7RjpcdGluY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9hdXh2ZWMuaFxuIEY6XHRpbmNsdWRlL3VhcGkvbGludXgvYXV4dmVjLmhcbiBGOlx0aW5jbHVkZS91YXBpL2xpbnV4L2JpbmZtdHMuaFxuIEY6XHRpbmNsdWRlL3VhcGkvbGludXgvZWxmLmhcbmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmZhOTBlZTRmODk5YzZcbi0tLSAvZGV2L251bGxcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgJiM0MzsxLDcgQEBcbiYjNDM7LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cbiYjNDM7I2lmbmRlZiBfX0FTTV9BTFBIQV9BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9fQVNNX0FMUEhBX0FVWFZFQ19IXG4mIzQzO1xuJiM0MzsjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNCAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4mIzQzO1xuJiM0MzsjZW5kaWYgLyogX19BU01fQUxQSEFfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDU3Y2FlODc4MGQ4MTEuLmQyMWI4N2I2NzMwYTQgMTAwNjQ0XG4tLS0gYS9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYWxwaGEvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuQEAgLTEsNiAmIzQzOzEsNiBAQFxuIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovXG4tI2lmbmRlZiBfX0FTTV9BTFBIQV9BVVhWRUNfSFxuLSNkZWZpbmUgX19BU01fQUxQSEFfQVVYVkVDX0hcbiYjNDM7I2lmbmRlZiBfX1VBUElfQVNNX0FMUEhBX0FVWFZFQ19IXG4mIzQzOyNkZWZpbmUgX19VQVBJX0FTTV9BTFBIQV9BVVhWRUNfSFxuIFxuIC8qIFJlc2VydmUgdGhlc2UgbnVtYmVycyBmb3IgYW55IGZ1dHVyZSB1c2Ugb2YgYSBWRFNPLiAgKi9cbiAjaWYgMFxuQEAgLTIyLDYgJiM0MzsyMiw0IEBAXG4gI2RlZmluZSBBVF9MMl9DQUNIRVNIQVBFXHQzNlxuICNkZWZpbmUgQVRfTDNfQ0FDSEVTSEFQRVx0MzdcbiBcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNCAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4tXG4tI2VuZGlmIC8qIF9fQVNNX0FMUEhBX0FVWFZFQ19IICovXG4mIzQzOyNlbmRpZiAvKiBfX1VBUElfQVNNX0FMUEhBX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCBmYmQzODhjNDYyOTkwLi4wMDAwMDAwMDAwMDAwXG4tLS0gYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuJiM0MzsmIzQzOyYjNDM7IC9kZXYvbnVsbFxuQEAgLTEgJiM0MzswLDAgQEBcbi0jaW5jbHVkZSBcdTAwM2N1YXBpL2FzbS9hdXh2ZWMuaFx1MDAzZVxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZGUyNGVhYWEwNmUyN1xuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuQEAgLTAsMCAmIzQzOzEsNyBAQFxuJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xuJiM0MzsjaWZuZGVmIF9fQVNNX0FVWFZFQ19IXG4mIzQzOyNkZWZpbmUgX19BU01fQVVYVkVDX0hcbiYjNDM7XG4mIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbiYjNDM7XG4mIzQzOyNlbmRpZlxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuaW5kZXggNzQzYzBiODRmZDMwZC4uZmI1MWU5MDY4MTNhOSAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtMTQsMTMgJiM0MzsxNCwxMSBAQFxuICAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSBcdTAwM2NodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvXHUwMDNlLlxuICAqL1xuLSNpZm5kZWYgX19BU01fQVVYVkVDX0hcbi0jZGVmaW5lIF9fQVNNX0FVWFZFQ19IXG4mIzQzOyNpZm5kZWYgX19VQVBJX0FTTV9BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01fQVVYVkVDX0hcbiBcbiAvKiB2RFNPIGxvY2F0aW9uICovXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcdDMzXG4gI2RlZmluZSBBVF9NSU5TSUdTVEtTWlx0NTFcdC8qIHN0YWNrIG5lZWRlZCBmb3Igc2lnbmFsIGRlbGl2ZXJ5ICovXG4gXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDIgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuLVxuICNlbmRpZlxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi4zN2RkNzE3YTNhMjJiXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuQEAgLTAsMCAmIzQzOzEsMTQgQEBcbiYjNDM7LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAmIzQzOyAqL1xuJiM0MzsvKlxuJiM0MzsgKiBBdXRob3I6IEhhbmx1IExpIFx1MDAzY2xpaGFubHVAbG9vbmdzb24uY25cdTAwM2VcbiYjNDM7ICogICAgICAgICBIdWFjYWkgQ2hlbiBcdTAwM2NjaGVuaHVhY2FpQGxvb25nc29uLmNuXHUwMDNlXG4mIzQzOyAqXG4mIzQzOyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIyIExvb25nc29uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZFxuJiM0MzsgKi9cbiYjNDM7XG4mIzQzOyNpZm5kZWYgX19BU01fQVVYVkVDX0hcbiYjNDM7I2RlZmluZSBfX0FTTV9BVVhWRUNfSFxuJiM0MztcbiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDEgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuJiM0MztcbiYjNDM7I2VuZGlmIC8qIF9fQVNNX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDkyMmQ5ZTZiNTA1ODYuLjc5NjkxYzQyMmM3ZTQgMTAwNjQ0XG4tLS0gYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtNiwxMiAmIzQzOzYsMTAgQEBcbiAgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWRcbiAgKi9cbiBcbi0jaWZuZGVmIF9fQVNNX0FVWFZFQ19IXG4tI2RlZmluZSBfX0FTTV9BVVhWRUNfSFxuJiM0MzsjaWZuZGVmIF9fVUFQSV9BU01fQVVYVkVDX0hcbiYjNDM7I2RlZmluZSBfX1VBUElfQVNNX0FVWFZFQ19IXG4gXG4gLyogTG9jYXRpb24gb2YgVkRTTyBpbWFnZS4gKi9cbiAjZGVmaW5lIEFUX1NZU0lORk9fRUhEUlx0XHQzM1xuIFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbi1cbi0jZW5kaWYgLyogX19BU01fQVVYVkVDX0ggKi9cbiYjNDM7I2VuZGlmIC8qIF9fVUFQSV9BU01fQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi43NmM0NDVlNzg5MGZlXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgJiM0MzsxLDE3IEBAXG4mIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wJiM0MzsgKi9cbiYjNDM7LypcbiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDE1IEltYWdpbmF0aW9uIFRlY2hub2xvZ2llc1xuJiM0MzsgKiBBdXRob3I6IEFsZXggU21pdGggXHUwMDNjYWxleC5zbWl0aEBpbWd0ZWMuY29tXHUwMDNlXG4mIzQzOyAqXG4mIzQzOyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4mIzQzOyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZVxuJiM0MzsgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXJcbiYjNDM7ICogb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiYjNDM7ICovXG4mIzQzO1xuJiM0MzsjaWZuZGVmIF9fQVNNX0FVWFZFQ19IXG4mIzQzOyNkZWZpbmUgX19BU01fQVVYVkVDX0hcbiYjNDM7XG4mIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbiYjNDM7XG4mIzQzOyNlbmRpZiAvKiBfX0FTTV9BVVhWRUNfSCAqL1xuZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDYxMmMyYzQxZjYwYjIuLjEzMzFhYzRkOTM1ZTMgMTAwNjQ0XG4tLS0gYS9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbkBAIC05LDEyICYjNDM7OSwxMCBAQFxuICAqIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gICovXG4gXG4tI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxuLSNkZWZpbmUgX19BU01fQVVYVkVDX0hcbiYjNDM7I2lmbmRlZiBfX1VBUElfQVNNX0FVWFZFQ19IXG4mIzQzOyNkZWZpbmUgX19VQVBJX0FTTV9BVVhWRUNfSFxuIFxuIC8qIExvY2F0aW9uIG9mIFZEU08gaW1hZ2UuICovXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcdFx0MzNcbiBcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4tXG4tI2VuZGlmIC8qIF9fQVNNX0FVWFZFQ19IICovXG4mIzQzOyNlbmRpZiAvKiBfX1VBUElfQVNNX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZDZjMTgwZTlhYzJjYlxuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICYjNDM7MSw3IEBAXG4mIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXG4mIzQzOyNpZm5kZWYgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4mIzQzOyNkZWZpbmUgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4mIzQzO1xuJiM0MzsjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDE1IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbiYjNDM7XG4mIzQzOyNlbmRpZlxuZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IGFhN2MxNjIxNTQ1MzguLjlhYjViNmQxNzkyOTYgMTAwNjQ0XG4tLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbkBAIC0xLDYgJiM0MzsxLDYgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4tI2RlZmluZSBfQVNNX1BPV0VSUENfQVVYVkVDX0hcbiYjNDM7I2lmbmRlZiBfVUFQSV9BU01fUE9XRVJQQ19BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9VQVBJX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4gXG4gLypcbiAgKiBXZSBuZWVkIHRvIHB1dCBpbiBzb21lIGV4dHJhIGF1eCB0YWJsZSBlbnRyaWVzIHRvIHRlbGwgZ2xpYmMgd2hhdFxuQEAgLTUwLDYgJiM0Mzs1MCw0IEBAXG4gXG4gI2RlZmluZSBBVF9NSU5TSUdTVEtTWlx0XHQ1MSAgICAgIC8qIHN0YWNrIG5lZWRlZCBmb3Igc2lnbmFsIGRlbGl2ZXJ5ICovXG4gXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXHQxNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4tXG4gI2VuZGlmXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5mYjQyMzM0NDUyNzZhXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICYjNDM7MSwxMyBAQFxuJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovXG4mIzQzOy8qXG4mIzQzOyAqIENvcHlyaWdodCAoQykgMjAxMiBBUk0gTHRkLlxuJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMTUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhXG4mIzQzOyAqL1xuJiM0MztcbiYjNDM7I2lmbmRlZiBfQVNNX1JJU0NWX0FVWFZFQ19IXG4mIzQzOyNkZWZpbmUgX0FTTV9SSVNDVl9BVVhWRUNfSFxuJiM0MztcbiYjNDM7LyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuJiM0MzsjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDEwXG4mIzQzO1xuJiM0MzsjZW5kaWYgLyogX1VBUElfQVNNX1JJU0NWX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5pbmRleCA5NTA1MGViZTlhZDAwLi4wYTcyNWYyYWEyZTczIDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbkBAIC0zMyw4ICYjNDM7MzMsNiBAQFxuICNkZWZpbmUgQVRfTDNfQ0FDSEVTSVpFXHRcdDQ2XG4gI2RlZmluZSBBVF9MM19DQUNIRUdFT01FVFJZXHQ0N1xuIFxuLS8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDEwXG4gI2RlZmluZSBBVF9NSU5TSUdTVEtTWlx0XHQ1MVxuIFxuICNlbmRpZiAvKiBfVUFQSV9BU01fUklTQ1ZfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5iZWFhZWZlMTJhODRlXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgJiM0MzsxLDcgQEBcbiYjNDM7LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi9cbiYjNDM7I2lmbmRlZiBfX0FTTVMzOTBfQVVYVkVDX0hcbiYjNDM7I2RlZmluZSBfX0FTTVMzOTBfQVVYVkVDX0hcbiYjNDM7XG4mIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbiYjNDM7XG4mIzQzOyNlbmRpZlxuZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IGEwNTZjNDYzN2ZmY2YuLjU0YmJmZDY4ZDcwOWIgMTAwNjQ0XG4tLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbkBAIC0xLDkgJiM0MzsxLDcgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX19BU01TMzkwX0FVWFZFQ19IXG4tI2RlZmluZSBfX0FTTVMzOTBfQVVYVkVDX0hcbiYjNDM7I2lmbmRlZiBfX0FTTVMzOTBfVUFQSV9BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9fQVNNUzM5MF9VQVBJX0FVWFZFQ19IXG4gXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcdFx0MzNcbiBcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4tXG4gI2VuZGlmXG5kaWZmIC0tZ2l0IGEvYXJjaC9zaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5mMDgzMDgwOGViMTk3XG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3NoL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICYjNDM7MSw3IEBAXG4mIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXG4mIzQzOyNpZm5kZWYgX19BU01fU0hfQVVYVkVDX0hcbiYjNDM7I2RlZmluZSBfX0FTTV9TSF9BVVhWRUNfSFxuJiM0MztcbiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuJiM0MztcbiYjNDM7I2VuZGlmIC8qIF9fQVNNX1NIX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9zaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9zaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5pbmRleCA2M2ZjYzM5ZTJjNmFmLi5jZjBmMTNkYTk3N2EwIDEwMDY0NFxuLS0tIGEvYXJjaC9zaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbkBAIC0xLDYgJiM0MzsxLDYgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX19BU01fU0hfQVVYVkVDX0hcbi0jZGVmaW5lIF9fQVNNX1NIX0FVWFZFQ19IXG4mIzQzOyNpZm5kZWYgX19VQVBJX0FTTV9TSF9BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01fU0hfQVVYVkVDX0hcbiBcbiAvKlxuICAqIEFyY2hpdGVjdHVyZS1uZXV0cmFsIEFUXyB2YWx1ZXMgaW4gMC0xNywgbGVhdmUgc29tZSByb29tXG5AQCAtMzAsNiAmIzQzOzMwLDQgQEBcbiAjZGVmaW5lIEFUX0wxRF9DQUNIRVNIQVBFXHQzNVxuICNkZWZpbmUgQVRfTDJfQ0FDSEVTSEFQRVx0MzZcbiBcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4tXG4tI2VuZGlmIC8qIF9fQVNNX1NIX0FVWFZFQ19IICovXG4mIzQzOyNlbmRpZiAvKiBfX1VBUElfQVNNX1NIX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi41MGMyNDlhOGJkMTcxXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICYjNDM7MSw2IEBAXG4mIzQzOyNpZm5kZWYgX19BU01TUEFSQ19BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9fQVNNU1BBUkNfQVVYVkVDX0hcbiYjNDM7XG4mIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSFx0NFxuJiM0MztcbiYjNDM7I2VuZGlmIC8qICEoX19BU01TUEFSQ19BVVhWRUNfSCkgKi9cbmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL3NwYXJjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IGFiODc4MGZiOWRmMTAuLjBmYWIzYjI5MTQ4YTMgMTAwNjQ0XG4tLS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvc3BhcmMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuQEAgLTEsNSAmIzQzOzEsNSBAQFxuLSNpZm5kZWYgX19BU01TUEFSQ19BVVhWRUNfSFxuLSNkZWZpbmUgX19BU01TUEFSQ19BVVhWRUNfSFxuJiM0MzsjaWZuZGVmIF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSFxuIFxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXHRcdDMzXG4gXG5AQCAtMTAsNiAmIzQzOzEwLDQgQEBcbiAjZGVmaW5lIEFUX0FESV9OQklUU1x0NDlcbiAjZGVmaW5lIEFUX0FESV9VRU9OQURJXHQ1MFxuIFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSFx0NFxuLVxuLSNlbmRpZiAvKiAhKF9fQVNNU1BBUkNfQVVYVkVDX0gpICovXG4mIzQzOyNlbmRpZiAvKiAhKF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSCkgKi9cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZWQyNmFkMDlmM2UzNFxuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgJiM0MzsxLDEyIEBAXG4mIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXG4mIzQzOyNpZm5kZWYgX0FTTV9YODZfQVVYVkVDX0hcbiYjNDM7I2RlZmluZSBfQVNNX1g4Nl9BVVhWRUNfSFxuJiM0MztcbiYjNDM7LyogZW50cmllcyBpbiBBUkNIX0RMSU5GTzogKi9cbiYjNDM7I2lmIGRlZmluZWQoQ09ORklHX0lBMzJfRU1VTEFUSU9OKSB8fCAhZGVmaW5lZChDT05GSUdfWDg2XzY0KVxuJiM0MzsjIGRlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDNcbiYjNDM7I2Vsc2UgLyogZWxzZSBpdCYjMzk7cyBub24tY29tcGF0IHg4Ni02NCAqL1xuJiM0MzsjIGRlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDJcbiYjNDM7I2VuZGlmXG4mIzQzO1xuJiM0MzsjZW5kaWYgLyogX0FTTV9YODZfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuaW5kZXggYmRkZTllMThmOTRlZS4uNjY3N2M5YWNlMTE3NiAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbkBAIC0xLDYgJiM0MzsxLDYgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX0FTTV9YODZfQVVYVkVDX0hcbi0jZGVmaW5lIF9BU01fWDg2X0FVWFZFQ19IXG4mIzQzOyNpZm5kZWYgX1VBUElfQVNNX1g4Nl9BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9VQVBJX0FTTV9YODZfQVVYVkVDX0hcbiAvKlxuICAqIEFyY2hpdGVjdHVyZS1uZXV0cmFsIEFUXyB2YWx1ZXMgaW4gMC0xNywgbGVhdmUgc29tZSByb29tXG4gICogZm9yIG1vcmUgb2YgdGhlbSwgc3RhcnQgdGhlIHg4Ni1zcGVjaWZpYyBvbmVzIGF0IDMyLlxuQEAgLTEwLDExICYjNDM7MTAsNCBAQFxuICNlbmRpZlxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXHRcdDMzXG4gXG4tLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTzogKi9cbi0jaWYgZGVmaW5lZChfX0tFUk5FTF9fKSBcdTAwMjZcdTAwMjYgKGRlZmluZWQoQ09ORklHX0lBMzJfRU1VTEFUSU9OKSB8fCAhZGVmaW5lZChDT05GSUdfWDg2XzY0KSlcbi0jIGRlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDNcbi0jZWxzZSAvKiBlbHNlIGl0JiMzOTtzIG5vbi1jb21wYXQgeDg2LTY0ICovXG4tIyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyXG4tI2VuZGlmXG4tXG4tI2VuZGlmIC8qIF9BU01fWDg2X0FVWFZFQ19IICovXG4mIzQzOyNlbmRpZiAvKiBfVUFQSV9BU01fWDg2X0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQgYi9pbmNsdWRlL2FzbS1nZW5lcmljL0tidWlsZFxuaW5kZXggMmJjMDBjNjdkYzU0Yi4uOTA2MjYzNThmOTRiNCAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2FzbS1nZW5lcmljL0tidWlsZFxuQEAgLTYsNiAmIzQzOzYsNyBAQFxuIFxuIG1hbmRhdG9yeS15ICYjNDM7PSBhdG9taWMuaFxuIG1hbmRhdG9yeS15ICYjNDM7PSBhcmNocmFuZG9tLmhcbiYjNDM7bWFuZGF0b3J5LXkgJiM0Mzs9IGF1eHZlYy5oXG4gbWFuZGF0b3J5LXkgJiM0Mzs9IGJhcnJpZXIuaFxuIG1hbmRhdG9yeS15ICYjNDM7PSBiaXRvcHMuaFxuIG1hbmRhdG9yeS15ICYjNDM7PSBidWcuaFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZTRhYmQyYThjNWVkM1xuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaFxuQEAgLTAsMCAmIzQzOzEsNyBAQFxuJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xuJiM0MzsjaWZuZGVmIF9fQVNNX0dFTkVSSUNfQVVYVkFMX0hfX1xuJiM0MzsjZGVmaW5lIF9fQVNNX0dFTkVSSUNfQVVYVkFMX0hfX1xuJiM0MztcbiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDBcbiYjNDM7XG4mIzQzOyNlbmRpZlxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYXV4dmVjLmggYi9pbmNsdWRlL2xpbnV4L2F1eHZlYy5oXG5pbmRleCA4YmNiOWI3MjYyNjI4Li5mN2RkZWExZGJjOGVkIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9hdXh2ZWMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9hdXh2ZWMuaFxuQEAgLTIsOCAmIzQzOzIsMTMgQEBcbiAjaWZuZGVmIF9MSU5VWF9BVVhWRUNfSFxuICNkZWZpbmUgX0xJTlVYX0FVWFZFQ19IXG4gXG4mIzQzOyNpbmNsdWRlIFx1MDAzY3VhcGkvYXNtL2F1eHZlYy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjdWFwaS9saW51eC9hdXh2ZWMuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2Nhc20vYXV4dmVjLmhcdTAwM2VcbiBcbiAjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgMjQgLyogTkVXX0FVWF9FTlQgZW50cmllcyBpbiBhdXhpbGlhcnkgdGFibGUgKi9cbiAgIC8qIG51bWJlciBvZiBcJiMzNDsjZGVmaW5lIEFUXy4qXCYjMzQ7IGFib3ZlLCBtaW51cyB7QVRfTlVMTCwgQVRfSUdOT1JFLCBBVF9OT1RFTEZ9ICovXG4mIzQzO1xuJiM0MzsjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFICgyKihBVF9WRUNUT1JfU0laRV9BUkNIICYjNDM7IEFUX1ZFQ1RPUl9TSVpFX0JBU0UgJiM0MzsgMSkpXG4mIzQzO1xuICNlbmRpZiAvKiBfTElOVVhfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmggYi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmhcbmluZGV4IDZkODE1ZjY0NDBjOTQuLjA4YTA2YjI2Mzc1YjIgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaFxuQEAgLTI2LDEyICYjNDM7MjYsNiBAQFxuIFxuICNpbmNsdWRlIFx1MDAzY2FzbS9tbXUuaFx1MDAzZVxuIFxuLSNpZm5kZWYgQVRfVkVDVE9SX1NJWkVfQVJDSFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAwXG4tI2VuZGlmXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRSAoMiooQVRfVkVDVE9SX1NJWkVfQVJDSCAmIzQzOyBBVF9WRUNUT1JfU0laRV9CQVNFICYjNDM7IDEpKVxuLVxuLVxuIHN0cnVjdCBhZGRyZXNzX3NwYWNlO1xuIHN0cnVjdCBmdXRleF9wcml2YXRlX2hhc2g7XG4gc3RydWN0IG1lbV9jZ3JvdXA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMTA6MDY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaXMgYSBoZWFkZXIgcmVmYWN0b3JpbmcgdGhhdCBzZXBhcmF0ZXMga2VybmVsLWludGVybmFsIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggbWFjcm9zIGZyb20gVUFQSSBoZWFkZXJzIGludG8gaW50ZXJuYWwgYXNtIGhlYWRlcnMgYW5kIGNlbnRyYWxpemVzIEFUX1ZFQ1RPUl9TSVpFIGluIGluY2x1ZGUvbGludXgvYXV4dmVjLmguIE5vIGV4ZWN1dGFibGUgQyBjb2RlLCBkYXRhIHN0cnVjdHVyZXMsIGNvbnN0YW50cywgYXNzZXJ0aW9ucywgb3IgcnVudGltZSBsb2dpYyBhcmUgYWx0ZXJlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkNTY2ZGYwNWM4MTMxNDY3ZTRlZGIxYWM3ODRmZTdmOTcxOGE1MjE1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBTZXAgNCAxMDowNjowOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggM2ExOWRhNzRkMDBjOS4uNjk3NGY4ZGFkMWU5YSAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKJiM0MzsmIzQzOyYjNDM7IGIvTUFJTlRBSU5FUlMKQEAgLTk4MDgsMTMgJiM0Mzs5ODA4LDE4IEBAIEw6CWxpbnV4LW1tQGt2YWNrLm9yZwogUzoJU3VwcG9ydGVkCiBUOglnaXQgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2tlZXMvbGludXguZ2l0IGZvci1uZXh0L2V4ZWN2ZQogRjoJRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL0VMRi5yc3QKJiM0MztGOglhcmNoLyovaW5jbHVkZS9hc20vYXV4dmVjLmgKJiM0MztGOglhcmNoLyovaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaAogRjoJZnMvKmJpbmZtdF8qLmMKIEY6CWZzL0tjb25maWcuYmluZm10CiBGOglmcy9leGVjLmMKIEY6CWZzL3Rlc3RzL2JpbmZtdF8qX2t1bml0LmMKIEY6CWZzL3Rlc3RzL2V4ZWNfa3VuaXQuYwomIzQzO0Y6CWluY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmgKJiM0MztGOglpbmNsdWRlL2xpbnV4L2F1eHZlYy5oCiBGOglpbmNsdWRlL2xpbnV4L2JpbmZtdHMuaAogRjoJaW5jbHVkZS9saW51eC9lbGYuaAomIzQzO0Y6CWluY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9hdXh2ZWMuaAogRjoJaW5jbHVkZS91YXBpL2xpbnV4L2F1eHZlYy5oCiBGOglpbmNsdWRlL3VhcGkvbGludXgvYmluZm10cy5oCiBGOglpbmNsdWRlL3VhcGkvbGludXgvZWxmLmgKZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmZhOTBlZTRmODk5YzYKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oCkBAIC0wLDAgJiM0MzsxLDcgQEAKJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwomIzQzOyNpZm5kZWYgX19BU01fQUxQSEFfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fQVNNX0FMUEhBX0FVWFZFQ19ICiYjNDM7CiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDQgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqLwomIzQzOwomIzQzOyNlbmRpZiAvKiBfX0FTTV9BTFBIQV9BVVhWRUNfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9hbHBoYS9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCmluZGV4IDU3Y2FlODc4MGQ4MTEuLmQyMWI4N2I2NzMwYTQgMTAwNjQ0Ci0tLSBhL2FyY2gvYWxwaGEvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKQEAgLTEsNiAmIzQzOzEsNiBAQAogLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi8KLSNpZm5kZWYgX19BU01fQUxQSEFfQVVYVkVDX0gKLSNkZWZpbmUgX19BU01fQUxQSEFfQVVYVkVDX0gKJiM0MzsjaWZuZGVmIF9fVUFQSV9BU01fQUxQSEFfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01fQUxQSEFfQVVYVkVDX0gKIAogLyogUmVzZXJ2ZSB0aGVzZSBudW1iZXJzIGZvciBhbnkgZnV0dXJlIHVzZSBvZiBhIFZEU08uICAqLwogI2lmIDAKQEAgLTIyLDYgJiM0MzsyMiw0IEBACiAjZGVmaW5lIEFUX0wyX0NBQ0hFU0hBUEUJMzYKICNkZWZpbmUgQVRfTDNfQ0FDSEVTSEFQRQkzNwogCi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNCAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovCi0KLSNlbmRpZiAvKiBfX0FTTV9BTFBIQV9BVVhWRUNfSCAqLwomIzQzOyNlbmRpZiAvKiBfX1VBUElfQVNNX0FMUEhBX0FVWFZFQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2F1eHZlYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYmQzODhjNDYyOTkwLi4wMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2F1eHZlYy5oCiYjNDM7JiM0MzsmIzQzOyAvZGV2L251bGwKQEAgLTEgJiM0MzswLDAgQEAKLSNpbmNsdWRlICZsdDt1YXBpL2FzbS9hdXh2ZWMuaCZndDsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2F1eHZlYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmRlMjRlYWFhMDZlMjcKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2F1eHZlYy5oCkBAIC0wLDAgJiM0MzsxLDcgQEAKJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwomIzQzOyNpZm5kZWYgX19BU01fQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fQVNNX0FVWFZFQ19ICiYjNDM7CiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDIgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqLwomIzQzOwomIzQzOyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCmluZGV4IDc0M2MwYjg0ZmQzMGQuLmZiNTFlOTA2ODEzYTkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKQEAgLTE0LDEzICYjNDM7MTQsMTEgQEAKICAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlICZsdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvJmd0Oy4KICAqLwotI2lmbmRlZiBfX0FTTV9BVVhWRUNfSAotI2RlZmluZSBfX0FTTV9BVVhWRUNfSAomIzQzOyNpZm5kZWYgX19VQVBJX0FTTV9BVVhWRUNfSAomIzQzOyNkZWZpbmUgX19VQVBJX0FTTV9BVVhWRUNfSAogCiAvKiB2RFNPIGxvY2F0aW9uICovCiAjZGVmaW5lIEFUX1NZU0lORk9fRUhEUgkzMwogI2RlZmluZSBBVF9NSU5TSUdTVEtTWgk1MQkvKiBzdGFjayBuZWVkZWQgZm9yIHNpZ25hbCBkZWxpdmVyeSAqLwogCi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMiAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovCi0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4zN2RkNzE3YTNhMjJiCi0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmgKQEAgLTAsMCAmIzQzOzEsMTQgQEAKJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCYjNDM7ICovCiYjNDM7LyoKJiM0MzsgKiBBdXRob3I6IEhhbmx1IExpICZsdDtsaWhhbmx1QGxvb25nc29uLmNuJmd0OwomIzQzOyAqICAgICAgICAgSHVhY2FpIENoZW4gJmx0O2NoZW5odWFjYWlAbG9vbmdzb24uY24mZ3Q7CiYjNDM7ICoKJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWQKJiM0MzsgKi8KJiM0MzsKJiM0MzsjaWZuZGVmIF9fQVNNX0FVWFZFQ19ICiYjNDM7I2RlZmluZSBfX0FTTV9BVVhWRUNfSAomIzQzOwomIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi8KJiM0MzsKJiM0MzsjZW5kaWYgLyogX19BU01fQVVYVkVDX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCmluZGV4IDkyMmQ5ZTZiNTA1ODYuLjc5NjkxYzQyMmM3ZTQgMTAwNjQ0Ci0tLSBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaApAQCAtNiwxMiAmIzQzOzYsMTAgQEAKICAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIyIExvb25nc29uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZAogICovCiAKLSNpZm5kZWYgX19BU01fQVVYVkVDX0gKLSNkZWZpbmUgX19BU01fQVVYVkVDX0gKJiM0MzsjaWZuZGVmIF9fVUFQSV9BU01fQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01fQVVYVkVDX0gKIAogLyogTG9jYXRpb24gb2YgVkRTTyBpbWFnZS4gKi8KICNkZWZpbmUgQVRfU1lTSU5GT19FSERSCQkzMwogCi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovCi0KLSNlbmRpZiAvKiBfX0FTTV9BVVhWRUNfSCAqLwomIzQzOyNlbmRpZiAvKiBfX1VBUElfQVNNX0FVWFZFQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNzZjNDQ1ZTc4OTBmZQotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaApAQCAtMCwwICYjNDM7MSwxNyBAQAomIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wJiM0MzsgKi8KJiM0MzsvKgomIzQzOyAqIENvcHlyaWdodCAoQykgMjAxNSBJbWFnaW5hdGlvbiBUZWNobm9sb2dpZXMKJiM0MzsgKiBBdXRob3I6IEFsZXggU21pdGggJmx0O2FsZXguc21pdGhAaW1ndGVjLmNvbSZndDsKJiM0MzsgKgomIzQzOyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CiYjNDM7ICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiYjNDM7ICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiYjNDM7ICogb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KJiM0MzsgKi8KJiM0MzsKJiM0MzsjaWZuZGVmIF9fQVNNX0FVWFZFQ19ICiYjNDM7I2RlZmluZSBfX0FTTV9BVVhWRUNfSAomIzQzOwomIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi8KJiM0MzsKJiM0MzsjZW5kaWYgLyogX19BU01fQVVYVkVDX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKaW5kZXggNjEyYzJjNDFmNjBiMi4uMTMzMWFjNGQ5MzVlMyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKQEAgLTksMTIgJiM0Mzs5LDEwIEBACiAgKiBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICovCiAKLSNpZm5kZWYgX19BU01fQVVYVkVDX0gKLSNkZWZpbmUgX19BU01fQVVYVkVDX0gKJiM0MzsjaWZuZGVmIF9fVUFQSV9BU01fQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01fQVVYVkVDX0gKIAogLyogTG9jYXRpb24gb2YgVkRTTyBpbWFnZS4gKi8KICNkZWZpbmUgQVRfU1lTSU5GT19FSERSCQkzMwogCi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovCi0KLSNlbmRpZiAvKiBfX0FTTV9BVVhWRUNfSCAqLwomIzQzOyNlbmRpZiAvKiBfX1VBUElfQVNNX0FVWFZFQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXV4dmVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZDZjMTgwZTlhYzJjYgotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaApAQCAtMCwwICYjNDM7MSw3IEBACiYjNDM7LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KJiM0MzsjaWZuZGVmIF9BU01fUE9XRVJQQ19BVVhWRUNfSAomIzQzOyNkZWZpbmUgX0FTTV9QT1dFUlBDX0FVWFZFQ19ICiYjNDM7CiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNICTE1IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi8KJiM0MzsKJiM0MzsjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKaW5kZXggYWE3YzE2MjE1NDUzOC4uOWFiNWI2ZDE3OTI5NiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKQEAgLTEsNiAmIzQzOzEsNiBAQAogLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi8KLSNpZm5kZWYgX0FTTV9QT1dFUlBDX0FVWFZFQ19ICi0jZGVmaW5lIF9BU01fUE9XRVJQQ19BVVhWRUNfSAomIzQzOyNpZm5kZWYgX1VBUElfQVNNX1BPV0VSUENfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9VQVBJX0FTTV9QT1dFUlBDX0FVWFZFQ19ICiAKIC8qCiAgKiBXZSBuZWVkIHRvIHB1dCBpbiBzb21lIGV4dHJhIGF1eCB0YWJsZSBlbnRyaWVzIHRvIHRlbGwgZ2xpYmMgd2hhdApAQCAtNTAsNiAmIzQzOzUwLDQgQEAKIAogI2RlZmluZSBBVF9NSU5TSUdTVEtTWgkJNTEgICAgICAvKiBzdGFjayBuZWVkZWQgZm9yIHNpZ25hbCBkZWxpdmVyeSAqLwogCi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0gJMTUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqLwotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmZiNDIzMzQ0NTI3NmEKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oCkBAIC0wLDAgJiM0MzsxLDEzIEBACiYjNDM7LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLwomIzQzOy8qCiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDEyIEFSTSBMdGQuCiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDE1IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQomIzQzOyAqLwomIzQzOwomIzQzOyNpZm5kZWYgX0FTTV9SSVNDVl9BVVhWRUNfSAomIzQzOyNkZWZpbmUgX0FTTV9SSVNDVl9BVVhWRUNfSAomIzQzOwomIzQzOy8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi8KJiM0MzsjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0gJMTAKJiM0MzsKJiM0MzsjZW5kaWYgLyogX1VBUElfQVNNX1JJU0NWX0FVWFZFQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKaW5kZXggOTUwNTBlYmU5YWQwMC4uMGE3MjVmMmFhMmU3MyAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaApAQCAtMzMsOCAmIzQzOzMzLDYgQEAKICNkZWZpbmUgQVRfTDNfQ0FDSEVTSVpFCQk0NgogI2RlZmluZSBBVF9MM19DQUNIRUdFT01FVFJZCTQ3CiAKLS8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi8KLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSAkxMAogI2RlZmluZSBBVF9NSU5TSUdTVEtTWgkJNTEKIAogI2VuZGlmIC8qIF9VQVBJX0FTTV9SSVNDVl9BVVhWRUNfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2F1eHZlYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmJlYWFlZmUxMmE4NGUKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmgKQEAgLTAsMCAmIzQzOzEsNyBAQAomIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovCiYjNDM7I2lmbmRlZiBfX0FTTVMzOTBfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fQVNNUzM5MF9BVVhWRUNfSAomIzQzOwomIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi8KJiM0MzsKJiM0MzsjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKaW5kZXggYTA1NmM0NjM3ZmZjZi4uNTRiYmZkNjhkNzA5YiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKQEAgLTEsOSAmIzQzOzEsNyBAQAogLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi8KLSNpZm5kZWYgX19BU01TMzkwX0FVWFZFQ19ICi0jZGVmaW5lIF9fQVNNUzM5MF9BVVhWRUNfSAomIzQzOyNpZm5kZWYgX19BU01TMzkwX1VBUElfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fQVNNUzM5MF9VQVBJX0FVWFZFQ19ICiAKICNkZWZpbmUgQVRfU1lTSU5GT19FSERSCQkzMwogCi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovCi0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZjA4MzA4MDhlYjE5NwotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmgKQEAgLTAsMCAmIzQzOzEsNyBAQAomIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiYjNDM7I2lmbmRlZiBfX0FTTV9TSF9BVVhWRUNfSAomIzQzOyNkZWZpbmUgX19BU01fU0hfQVVYVkVDX0gKJiM0MzsKJiM0MzsjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovCiYjNDM7CiYjNDM7I2VuZGlmIC8qIF9fQVNNX1NIX0FVWFZFQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKaW5kZXggNjNmY2MzOWUyYzZhZi4uY2YwZjEzZGE5NzdhMCAxMDA2NDQKLS0tIGEvYXJjaC9zaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvc2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaApAQCAtMSw2ICYjNDM7MSw2IEBACiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqLwotI2lmbmRlZiBfX0FTTV9TSF9BVVhWRUNfSAotI2RlZmluZSBfX0FTTV9TSF9BVVhWRUNfSAomIzQzOyNpZm5kZWYgX19VQVBJX0FTTV9TSF9BVVhWRUNfSAomIzQzOyNkZWZpbmUgX19VQVBJX0FTTV9TSF9BVVhWRUNfSAogCiAvKgogICogQXJjaGl0ZWN0dXJlLW5ldXRyYWwgQVRfIHZhbHVlcyBpbiAwLTE3LCBsZWF2ZSBzb21lIHJvb20KQEAgLTMwLDYgJiM0MzszMCw0IEBACiAjZGVmaW5lIEFUX0wxRF9DQUNIRVNIQVBFCTM1CiAjZGVmaW5lIEFUX0wyX0NBQ0hFU0hBUEUJMzYKIAotI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqLwotCi0jZW5kaWYgLyogX19BU01fU0hfQVVYVkVDX0ggKi8KJiM0MzsjZW5kaWYgLyogX19VQVBJX0FTTV9TSF9BVVhWRUNfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNTBjMjQ5YThiZDE3MQotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmgKQEAgLTAsMCAmIzQzOzEsNiBAQAomIzQzOyNpZm5kZWYgX19BU01TUEFSQ19BVVhWRUNfSAomIzQzOyNkZWZpbmUgX19BU01TUEFSQ19BVVhWRUNfSAomIzQzOwomIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSAk0CiYjNDM7CiYjNDM7I2VuZGlmIC8qICEoX19BU01TUEFSQ19BVVhWRUNfSCkgKi8KZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaAppbmRleCBhYjg3ODBmYjlkZjEwLi4wZmFiM2IyOTE0OGEzIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9zcGFyYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCkBAIC0xLDUgJiM0MzsxLDUgQEAKLSNpZm5kZWYgX19BU01TUEFSQ19BVVhWRUNfSAotI2RlZmluZSBfX0FTTVNQQVJDX0FVWFZFQ19ICiYjNDM7I2lmbmRlZiBfX1VBUElfQVNNU1BBUkNfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSAogCiAjZGVmaW5lIEFUX1NZU0lORk9fRUhEUgkJMzMKIApAQCAtMTAsNiAmIzQzOzEwLDQgQEAKICNkZWZpbmUgQVRfQURJX05CSVRTCTQ5CiAjZGVmaW5lIEFUX0FESV9VRU9OQURJCTUwCiAKLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSAk0Ci0KLSNlbmRpZiAvKiAhKF9fQVNNU1BBUkNfQVVYVkVDX0gpICovCiYjNDM7I2VuZGlmIC8qICEoX19VQVBJX0FTTVNQQVJDX0FVWFZFQ19IKSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lZDI2YWQwOWYzZTM0Ci0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmgKQEAgLTAsMCAmIzQzOzEsMTIgQEAKJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwomIzQzOyNpZm5kZWYgX0FTTV9YODZfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9BU01fWDg2X0FVWFZFQ19ICiYjNDM7CiYjNDM7LyogZW50cmllcyBpbiBBUkNIX0RMSU5GTzogKi8KJiM0MzsjaWYgZGVmaW5lZChDT05GSUdfSUEzMl9FTVVMQVRJT04pIHx8ICFkZWZpbmVkKENPTkZJR19YODZfNjQpCiYjNDM7IyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAzCiYjNDM7I2Vsc2UgLyogZWxzZSBpdCYjMzk7cyBub24tY29tcGF0IHg4Ni02NCAqLwomIzQzOyMgZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMgomIzQzOyNlbmRpZgomIzQzOwomIzQzOyNlbmRpZiAvKiBfQVNNX1g4Nl9BVVhWRUNfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKaW5kZXggYmRkZTllMThmOTRlZS4uNjY3N2M5YWNlMTE3NiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCkBAIC0xLDYgJiM0MzsxLDYgQEAKIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovCi0jaWZuZGVmIF9BU01fWDg2X0FVWFZFQ19ICi0jZGVmaW5lIF9BU01fWDg2X0FVWFZFQ19ICiYjNDM7I2lmbmRlZiBfVUFQSV9BU01fWDg2X0FVWFZFQ19ICiYjNDM7I2RlZmluZSBfVUFQSV9BU01fWDg2X0FVWFZFQ19ICiAvKgogICogQXJjaGl0ZWN0dXJlLW5ldXRyYWwgQVRfIHZhbHVlcyBpbiAwLTE3LCBsZWF2ZSBzb21lIHJvb20KICAqIGZvciBtb3JlIG9mIHRoZW0sIHN0YXJ0IHRoZSB4ODYtc3BlY2lmaWMgb25lcyBhdCAzMi4KQEAgLTEwLDExICYjNDM7MTAsNCBAQAogI2VuZGlmCiAjZGVmaW5lIEFUX1NZU0lORk9fRUhEUgkJMzMKIAotLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTzogKi8KLSNpZiBkZWZpbmVkKF9fS0VSTkVMX18pICZhbXA7JmFtcDsgKGRlZmluZWQoQ09ORklHX0lBMzJfRU1VTEFUSU9OKSB8fCAhZGVmaW5lZChDT05GSUdfWDg2XzY0KSkKLSMgZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMwotI2Vsc2UgLyogZWxzZSBpdCYjMzk7cyBub24tY29tcGF0IHg4Ni02NCAqLwotIyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyCi0jZW5kaWYKLQotI2VuZGlmIC8qIF9BU01fWDg2X0FVWFZFQ19IICovCiYjNDM7I2VuZGlmIC8qIF9VQVBJX0FTTV9YODZfQVVYVkVDX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQKaW5kZXggMmJjMDBjNjdkYzU0Yi4uOTA2MjYzNThmOTRiNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQKQEAgLTYsNiAmIzQzOzYsNyBAQAogCiBtYW5kYXRvcnkteSAmIzQzOz0gYXRvbWljLmgKIG1hbmRhdG9yeS15ICYjNDM7PSBhcmNocmFuZG9tLmgKJiM0MzttYW5kYXRvcnkteSAmIzQzOz0gYXV4dmVjLmgKIG1hbmRhdG9yeS15ICYjNDM7PSBiYXJyaWVyLmgKIG1hbmRhdG9yeS15ICYjNDM7PSBiaXRvcHMuaAogbWFuZGF0b3J5LXkgJiM0Mzs9IGJ1Zy5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL2F1eHZlYy5oIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lNGFiZDJhOGM1ZWQzCi0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaApAQCAtMCwwICYjNDM7MSw3IEBACiYjNDM7LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KJiM0MzsjaWZuZGVmIF9fQVNNX0dFTkVSSUNfQVVYVkFMX0hfXwomIzQzOyNkZWZpbmUgX19BU01fR0VORVJJQ19BVVhWQUxfSF9fCiYjNDM7CiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDAKJiM0MzsKJiM0MzsjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYXV4dmVjLmggYi9pbmNsdWRlL2xpbnV4L2F1eHZlYy5oCmluZGV4IDhiY2I5YjcyNjI2MjguLmY3ZGRlYTFkYmM4ZWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYXV4dmVjLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9hdXh2ZWMuaApAQCAtMiw4ICYjNDM7MiwxMyBAQAogI2lmbmRlZiBfTElOVVhfQVVYVkVDX0gKICNkZWZpbmUgX0xJTlVYX0FVWFZFQ19ICiAKJiM0MzsjaW5jbHVkZSAmbHQ7dWFwaS9hc20vYXV4dmVjLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7dWFwaS9saW51eC9hdXh2ZWMuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7YXNtL2F1eHZlYy5oJmd0OwogCiAjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgMjQgLyogTkVXX0FVWF9FTlQgZW50cmllcyBpbiBhdXhpbGlhcnkgdGFibGUgKi8KICAgLyogbnVtYmVyIG9mICYjMzQ7I2RlZmluZSBBVF8uKiYjMzQ7IGFib3ZlLCBtaW51cyB7QVRfTlVMTCwgQVRfSUdOT1JFLCBBVF9OT1RFTEZ9ICovCiYjNDM7CiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRSAoMiooQVRfVkVDVE9SX1NJWkVfQVJDSCAmIzQzOyBBVF9WRUNUT1JfU0laRV9CQVNFICYjNDM7IDEpKQomIzQzOwogI2VuZGlmIC8qIF9MSU5VWF9BVVhWRUNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIGIvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oCmluZGV4IDZkODE1ZjY0NDBjOTQuLjA4YTA2YjI2Mzc1YjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgKQEAgLTI2LDEyICYjNDM7MjYsNiBAQAogCiAjaW5jbHVkZSAmbHQ7YXNtL21tdS5oJmd0OwogCi0jaWZuZGVmIEFUX1ZFQ1RPUl9TSVpFX0FSQ0gKLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAwCi0jZW5kaWYKLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkUgKDIqKEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggJiM0MzsgQVRfVkVDVE9SX1NJWkVfQkFTRSAmIzQzOyAxKSkKLQotCiBzdHJ1Y3QgYWRkcmVzc19zcGFjZTsKIHN0cnVjdCBmdXRleF9wcml2YXRlX2hhc2g7CiBzdHJ1Y3QgbWVtX2Nncm91cDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMTA6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTAwNgoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDM2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaCBhbmQgZGlzc2VjdCB0aGUgbW9kaWZpY2F0aW9ucy4gTXkgZmlyc3QgaW1wcmVzc2lvbiBpcyB0aGF0IGl0IHNlZW1zIHRvIGJlIHByaW1hcmlseSBmb2N1c2VkIG9uIHJlZmFjdG9yaW5nIGFuZCByZW9yZ2FuaXppbmcgaGVhZGVyIGZpbGVzLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byB0aGUgYXV4aWxpYXJ5IHZlY3RvciBkZWZpbml0aW9ucy4gVGhlIHBhdGNoIHRvdWNoZXMgb24gYE1BSU5UQUlORVJTYCwgd2hpY2ggaXMgZ2VuZXJhbGx5IGEgZ29vZCBzaWduIG9mIGNsZWFuLXVwIGFuZCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgpJIHNlZSB0aGF0IGBhcmNoLyovaW5jbHVkZS9hc20vYXV4dmVjLmhgIGFuZCBgYXJjaC8qL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhgIGFyZSBiZWluZyBtb2RpZmllZCBhY3Jvc3MgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyAoYWxwaGEsIGFybSwgYXJtNjQsIGV0Yy4pLiBNeSBoeXBvdGhlc2lzIGlzIHRoYXQgdGhpcyBpbnZvbHZlcyBtb3ZpbmcgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGRlZmluaXRpb25zIGZyb20gdGhlIHVzZXItc3BhY2UgQVBJIGhlYWRlcnMgKGB1YXBpYCkgaW50byB0aGUga2VybmVsLWludGVybmFsIGhlYWRlcnMgKGBhc21gKS4gVGhhdCYjMzk7cyBhIGdvb2QgcHJhY3RpY2UsIHByb21vdGluZyBiZXR0ZXIgc2VwYXJhdGlvbiBvZiBjb25jZXJucyBhbmQgcHJldmVudGluZyBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIG1pc3VzZSBieSB1c2VyLXNwYWNlIGNvZGUuCgpUaGUgcGF0Y2ggYWxzbyBhZGRzIGBhdXh2ZWMuaGAgdG8gdGhlIG1hbmRhdG9yeSBidWlsZCB0YXJnZXRzIGFuZCBkZWZpbmVzIGEgZGVmYXVsdCBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgaW4gYGluY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkYCBhbmQgYGluY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmhgLiBUaGlzIHN1Z2dlc3RzIHNvbWUgc29ydCBvZiBmYWxsYmFjayBtZWNoYW5pc20gb3IgZ2VuZXJhbCBkZWZpbml0aW9uIGlzIGJlaW5nIGFkZGVkLCBhIG5pY2UgdG91Y2guCgpGdXJ0aGVyLCBJJiMzOTttIG5vdGljaW5nIGBpbmNsdWRlL2xpbnV4L2F1eHZlYy5oYCBub3cgaW5jbHVkZXMgYCZsdDt1YXBpL2FzbS9hdXh2ZWMuaCZndDtgLCBgJmx0O3VhcGkvbGludXgvYXV4dmVjLmgmZ3Q7YCwgYW5kIGAmbHQ7YXNtL2F1eHZlYy5oJmd0O2AgYW5kIGRlZmluZXMgYEFUX1ZFQ1RPUl9TSVpFYC4gVGhpcyBjb25zb2xpZGF0aW9uIHBvaW50cyB0byB0aGUgY2VudHJhbCBsb2NhdGlvbiBmb3IgbWFuYWdpbmcgdGhlc2UgZGVmaW5pdGlvbnMuCgpGaW5hbGx5LCB0aGUgcmVtb3ZhbCBvZiB0aGUgYCNpZm5kZWYgQVRfVkVDVE9SX1NJWkVfQVJDSCAuLi4gI2RlZmluZSBBVF9WRUNUT1JfU0laRSAuLi5gIGRlZmluaXRpb24gZnJvbSBgaW5jbHVkZS9saW51eC9tbV90eXBlcy5oYCBzdWdnZXN0cyB0aGF0IHRoaXMgcGFydGljdWxhciBkZWZpbml0aW9uIGhhcyBiZWVuIG1vdmVkIHRvIGl0cyBwcm9wZXIgbG9jYXRpb24uCgpNeSBndXQgZmVlbGluZyBpcyB0aGF0IHRoaXMgaXMgcHVyZWx5IGEgaGVhZGVyIHJlb3JnYW5pemF0aW9uL2NsZWFudXAgZXhlcmNpc2UgdG8gcmVkdWNlIGR1cGxpY2F0aW9uIGFuZCBpbXByb3ZlIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSwgYW5kIGEgZ29vZCB0aGluZyB0byBkby4gSG93ZXZlciwgSSBuZWVkIHRvIGNvbmZpcm0gdGhpcyBiZWZvcmUgSSBmZWVsIGVudGlyZWx5IGNvbWZvcnRhYmxlLgoKVG8gYmUgY2VydGFpbiwgSSB3YW50IHRvIHZlcmlmeSBpZiBhbnkgZXhlY3V0YWJsZSBsb2dpYyBpcyBhZmZlY3RlZC4gSSYjMzk7bGwgbmVlZCB0byB1c2UgYGdyZXBwZXJgIG9yIGByZWFkLWZpbGVgIHRvIGNoZWNrIHRoZSBhY3R1YWwgdXNlcyBhbmQgZGVmaW5pdGlvbnMgb2YgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGFuZCBgQVRfVkVDVE9SX1NJWkVgIHRocm91Z2hvdXQgdGhlIGNvZGViYXNlLiBUaGlzIHdpbGwgY29uZmlybSB3aGV0aGVyIHRoaXMgaXMgYSBwdXJlbHkgc3RydWN0dXJhbCBjaGFuZ2Ugb3IgaWYgdGhlcmUgYXJlIHN1YnRsZSBiZWhhdmlvcmFsIGNoYW5nZXMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDEwOjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0FUX1ZFQ1RPUl9TSVpFJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmgtNC1cbmFyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmg6NTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNCAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG5hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTYtXG4tLVxuYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9lbGYuaD0xNDQ9ZXh0ZXJuIGludCBhbHBoYV9sM19jYWNoZXNoYXBlO1xuYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9lbGYuaC0xNDUtXG5hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2VsZi5oOjE0NjovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xuYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9lbGYuaC0xNDctI2RlZmluZSBBUkNIX0RMSU5GT1x0XHRcdFx0XHRcdFxcXG4tLVxuYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hdXh2ZWMuaC00LVxuYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo1OiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi1cbi0tXG5hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2VsZi5oPTE1Mj10eXBlZGVmIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSBlbGZfZnByZWdzZXRfdDtcbi0tXG5hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2VsZi5oLTE2Ni1cbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZWxmLmg6MTY3Oi8qIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9BUkNIIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQgZW50cmllcyBjaGFuZ2VzICovXG5hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2VsZi5oLTE2OC0jZGVmaW5lIEFSQ0hfRExJTkZPXHRcdFx0XHRcdFx0XHRcXFxuLS1cbmFyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTExLVxuYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmg6MTI6I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDEgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmgtMTMtXG4tLVxuYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vZWxmLmg9MzE5PWV4dGVybiBjb25zdCBjaGFyICpfX2VsZl9wbGF0Zm9ybTtcbi0tXG5hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9lbGYuaC0zNDAtXG5hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9lbGYuaDozNDE6LyogdXBkYXRlIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggaWYgdGhlIG51bWJlciBvZiBORVdfQVVYX0VOVCBlbnRyaWVzIGNoYW5nZXMgKi9cbmFyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2VsZi5oLTM0Mi0jZGVmaW5lIEFSQ0hfRExJTkZPXHRcdFx0XHRcdFx0XHRcXFxuLS1cbmFyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaC0xNC1cbmFyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaDoxNTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG5hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmgtMTYtXG4tLVxuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2VsZi5oPTQzNj1leHRlcm4gY29uc3QgY2hhciAqX19lbGZfYmFzZV9wbGF0Zm9ybTtcbi0tXG5hcmNoL21pcHMvaW5jbHVkZS9hc20vZWxmLmgtNDU5LVxuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2VsZi5oOjQ2MDovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2VsZi5oLTQ2MS0jZGVmaW5lIEFSQ0hfRExJTkZPXHRcdFx0XHRcdFx0XHRcXFxuLS1cbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaC00LVxuYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oOjU6I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXHQxNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG5hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi1cbi0tXG5hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZWxmLmg9MTE3PWV4dGVybiBpbnQgYXJjaF9zZXR1cF9hZGRpdGlvbmFsX3BhZ2VzKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0sXG4tLVxuYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2VsZi5oLTE1OC0gKiAgIGV2ZW4gaWYgRExJTkZPX0FSQ0hfSVRFTVMgZ29lcyB0byB6ZXJvIG9yIGlzIHVuZGVmaW5lZC5cbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lbGYuaDoxNTk6ICogdXBkYXRlIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggaWYgdGhlIG51bWJlciBvZiBORVdfQVVYX0VOVCBlbnRyaWVzIGNoYW5nZXNcbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lbGYuaC0xNjAtICovXG4tLVxuYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdXh2ZWMuaC0xMC0vKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG5hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oOjExOiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSFx0MTBcbmFyY2gvcmlzY3YvaW5jbHVkZS9hc20vYXV4dmVjLmgtMTItXG4tLVxuYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTQtXG5hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmg6NTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG5hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi1cbi0tXG5hcmNoL3MzOTAvaW5jbHVkZS9hc20vZWxmLmg9MjE3PWRvIHtcdFx0XHRcdFx0XHRcdFx0XFxcbi0tXG5hcmNoL3MzOTAvaW5jbHVkZS9hc20vZWxmLmgtMjMyLVxuYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2VsZi5oOjIzMzovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xuYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2VsZi5oLTIzNC0jZGVmaW5lIEFSQ0hfRExJTkZPXHRcdFx0XHRcdFx0XHRcXFxuLS1cbmFyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmgtNC1cbmFyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmg6NTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG5hcmNoL3NoL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTYtXG4tLVxuYXJjaC9zaC9pbmNsdWRlL2FzbS9lbGYuaD0xOTQ9ZXh0ZXJuIGludCBsMWlfY2FjaGVfc2hhcGUsIGwxZF9jYWNoZV9zaGFwZSwgbDJfY2FjaGVfc2hhcGU7XG5hcmNoL3NoL2luY2x1ZGUvYXNtL2VsZi5oLTE5NS1cbmFyY2gvc2gvaW5jbHVkZS9hc20vZWxmLmg6MTk2Oi8qIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9BUkNIIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQgZW50cmllcyBjaGFuZ2VzICovXG5hcmNoL3NoL2luY2x1ZGUvYXNtL2VsZi5oLTE5Ny0jZGVmaW5lIEFSQ0hfRExJTkZPXHRcdFx0XHRcdFx0XFxcbi0tXG5hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTMtXG5hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oOjQ6I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXHQ0XG5hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTUtXG4tLVxuYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi0jaWYgZGVmaW5lZChDT05GSUdfSUEzMl9FTVVMQVRJT04pIHx8ICFkZWZpbmVkKENPTkZJR19YODZfNjQpXG5hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo3OiMgZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggM1xuYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmgtOC0jZWxzZSAvKiBlbHNlIGl0JiMzOTtzIG5vbi1jb21wYXQgeDg2LTY0ICovXG5hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo5OiMgZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMlxuYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmgtMTAtI2VuZGlmXG4tLVxuYXJjaC94ODYvaW5jbHVkZS9hc20vZWxmLmg9MzEyPWV4dGVybiB1bnNpZ25lZCBsb25nIGdldF9zaWdmcmFtZV9zaXplKHZvaWQpO1xuLS1cbmFyY2gveDg2L2luY2x1ZGUvYXNtL2VsZi5oLTMyMC1cbmFyY2gveDg2L2luY2x1ZGUvYXNtL2VsZi5oOjMyMTovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xuYXJjaC94ODYvaW5jbHVkZS9hc20vZWxmLmgtMzIyLVxuLS1cbmZzL2JpbmZtdF9lbGYuYz0xNjU9Y3JlYXRlX2VsZl90YWJsZXMoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSwgY29uc3Qgc3RydWN0IGVsZmhkciAqZXhlYyxcbi0tXG5mcy9iaW5mbXRfZWxmLmMtMjMyLVx0ZWxmX2luZm8gPSAoZWxmX2FkZHJfdCAqKW1tLVx1MDAzZXNhdmVkX2F1eHY7XG5mcy9iaW5mbXRfZWxmLmM6MjMzOlx0LyogdXBkYXRlIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgaWYgdGhlIG51bWJlciBvZiBORVdfQVVYX0VOVCgpIGNoYW5nZXMgKi9cbmZzL2JpbmZtdF9lbGYuYy0yMzQtI2RlZmluZSBORVdfQVVYX0VOVChpZCwgdmFsKSBcXFxuLS1cbmZzL2JpbmZtdF9lbGYuYy0yNDMtXHQgKiBBVVhWLlxuZnMvYmluZm10X2VsZi5jOjI0NDpcdCAqIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9BUkNIIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQoKSBpblxuZnMvYmluZm10X2VsZi5jLTI0NS1cdCAqIEFSQ0hfRExJTkZPIGNoYW5nZXNcbi0tXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmM9NTA0PXN0YXRpYyBpbnQgY3JlYXRlX2VsZl9mZHBpY190YWJsZXMoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcbi0tXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNTk3LVx0bml0ZW1zID0gMSAmIzQzOyBETElORk9fSVRFTVMgJiM0MzsgKGtfcGxhdGZvcm0gPyAxIDogMCkgJiM0MztcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYzo1OTg6XHRcdChrX2Jhc2VfcGxhdGZvcm0gPyAxIDogMCkgJiM0MzsgQVRfVkVDVE9SX1NJWkVfQVJDSDtcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy01OTktXG4tLVxuZnMvYmluZm10X2VsZl9mZHBpYy5jLTYyMi1cdGVsZl9pbmZvID0gKGVsZl9hZGRyX3QgKiltbS1cdTAwM2VzYXZlZF9hdXh2O1xuZnMvYmluZm10X2VsZl9mZHBpYy5jOjYyMzpcdC8qIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9CQVNFIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQoKSBjaGFuZ2VzICovXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNjI0LSNkZWZpbmUgTkVXX0FVWF9FTlQoaWQsIHZhbCkgXFxcbi0tXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNjMzLVx0ICogQVVYVi5cbmZzL2JpbmZtdF9lbGZfZmRwaWMuYzo2MzQ6XHQgKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UKCkgaW5cbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy02MzUtXHQgKiBBUkNIX0RMSU5GTyBjaGFuZ2VzXG4tLVxuaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaC00LVxuaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaDo1OiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAwXG5pbmNsdWRlL2FzbS1nZW5lcmljL2F1eHZlYy5oLTYtXG4tLVxuaW5jbHVkZS9saW51eC9hdXh2ZWMuaC04LVxuaW5jbHVkZS9saW51eC9hdXh2ZWMuaDo5OiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQkFTRSAyNCAvKiBORVdfQVVYX0VOVCBlbnRyaWVzIGluIGF1eGlsaWFyeSB0YWJsZSAqL1xuaW5jbHVkZS9saW51eC9hdXh2ZWMuaC0xMC0gIC8qIG51bWJlciBvZiBcJiMzNDsjZGVmaW5lIEFUXy4qXCYjMzQ7IGFib3ZlLCBtaW51cyB7QVRfTlVMTCwgQVRfSUdOT1JFLCBBVF9OT1RFTEZ9ICovXG5pbmNsdWRlL2xpbnV4L2F1eHZlYy5oLTExLVxuaW5jbHVkZS9saW51eC9hdXh2ZWMuaDoxMjojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFICgyKihBVF9WRUNUT1JfU0laRV9BUkNIICYjNDM7IEFUX1ZFQ1RPUl9TSVpFX0JBU0UgJiM0MzsgMSkpXG5pbmNsdWRlL2xpbnV4L2F1eHZlYy5oLTEzLVxuLS1cbmluY2x1ZGUvbGludXgvbW1fdHlwZXMuaD0xMTY5PXN0cnVjdCBtbV9zdHJ1Y3Qge1xuLS1cbmluY2x1ZGUvbGludXgvbW1fdHlwZXMuaC0xMzAxLVxuaW5jbHVkZS9saW51eC9tbV90eXBlcy5oOjEzMDI6XHRcdHVuc2lnbmVkIGxvbmcgc2F2ZWRfYXV4dltBVF9WRUNUT1JfU0laRV07IC8qIGZvciAvcHJvYy9QSUQvYXV4diAqL1xuaW5jbHVkZS9saW51eC9tbV90eXBlcy5oLTEzMDMtXG4tLVxua2VybmVsL3N5cy5jPTIwNjA9c3RhdGljIGludCBwcmN0bF9zZXRfbW1fbWFwKGludCBvcHQsIGNvbnN0IHZvaWQgX191c2VyICphZGRyLCB1bnNpZ25lZCBsb25nIGRhdGFfc2l6ZSlcbi0tXG5rZXJuZWwvc3lzLmMtMjA2Mi1cdHN0cnVjdCBwcmN0bF9tbV9tYXAgcHJjdGxfbWFwID0geyAuZXhlX2ZkID0gKHUzMiktMSwgfTtcbmtlcm5lbC9zeXMuYzoyMDYzOlx0dW5zaWduZWQgbG9uZyB1c2VyX2F1eHZbQVRfVkVDVE9SX1NJWkVdO1xua2VybmVsL3N5cy5jLTIwNjQtXHRzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IGN1cnJlbnQtXHUwMDNlbW07XG4tLVxua2VybmVsL3N5cy5jLTIwOTgtXHRcdC8qIExhc3QgZW50cnkgbXVzdCBiZSBBVF9OVUxMIGFzIHNwZWNpZmljYXRpb24gcmVxdWlyZXMgKi9cbmtlcm5lbC9zeXMuYzoyMDk5Olx0XHR1c2VyX2F1eHZbQVRfVkVDVE9SX1NJWkUgLSAyXSA9IEFUX05VTEw7XG5rZXJuZWwvc3lzLmM6MjEwMDpcdFx0dXNlcl9hdXh2W0FUX1ZFQ1RPUl9TSVpFIC0gMV0gPSBBVF9OVUxMO1xua2VybmVsL3N5cy5jLTIxMDEtXHR9XG4tLVxua2VybmVsL3N5cy5jPTIxNjg9c3RhdGljIGludCBwcmN0bF9zZXRfYXV4dihzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLFxuLS1cbmtlcm5lbC9zeXMuYy0yMTc2LVx0ICovXG5rZXJuZWwvc3lzLmM6MjE3NzpcdHVuc2lnbmVkIGxvbmcgdXNlcl9hdXh2W0FUX1ZFQ1RPUl9TSVpFXSA9IHt9O1xua2VybmVsL3N5cy5jLTIxNzgtXG4tLVxua2VybmVsL3N5cy5jLTIxODUtXHQvKiBNYWtlIHN1cmUgdGhlIGxhc3QgZW50cnkgaXMgYWx3YXlzIEFUX05VTEwgKi9cbmtlcm5lbC9zeXMuYzoyMTg2Olx0dXNlcl9hdXh2W0FUX1ZFQ1RPUl9TSVpFIC0gMl0gPSAwO1xua2VybmVsL3N5cy5jOjIxODc6XHR1c2VyX2F1eHZbQVRfVkVDVE9SX1NJWkUgLSAxXSA9IDA7XG5rZXJuZWwvc3lzLmMtMjE4OC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAxMDowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjk0MQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDgwMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGF1eHZlYy5oIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IHRoaXMgcGF0Y2ggaXMgcHJpbWFyaWx5IGEgcmVmYWN0b3JpbmcgZWZmb3J0LCBmb2N1c2VkIG9uIGhlYWRlciBmaWxlIG9yZ2FuaXphdGlvbiByZWxhdGVkIHRvIHRoZSBhdXhpbGlhcnkgdmVjdG9yIChgYXV4dmApLiBUaGUgZ29hbCBzZWVtcyB0byBiZSB0byBjbGVhbiB1cCB0aGUgZGVmaW5pdGlvbnMgYW5kIG1ha2UgdGhlbSBsZXNzIHByb25lIHRvIHVuaW50ZW5kZWQgZXhwb3N1cmUgdG8gdXNlcnNwYWNlLgoKTXkgZmlyc3QgdGhvdWdodCBpcywgd2h5IGlzIGBBVF9WRUNUT1JfU0laRV9BUkNIYCBiZWluZyBkZWZpbmVkIGluIGBpbmNsdWRlL3VhcGkvKi9hdXh2ZWMuaGAgdW5kZXIgYF9fS0VSTkVMX19gIG9yIGV4cG9zZWQgdG8gdXNlcnNwYWNlPyBUaGF0JiMzOTtzIGEgcmVkIGZsYWcuIEFzIEkgdW5kZXJzdGFuZCBpdCwgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGlzIHJlYWxseSBhbiBpbnRlcm5hbCBrZXJuZWwgbWFjcm8gdXNlZCB0byBzaXplIGBtbS0mZ3Q7c2F2ZWRfYXV4dmAgKGBBVF9WRUNUT1JfU0laRWApLiBJdCBkb2VzbiYjMzk7dCBuZWVkIHRvIGJlIGluIHRoZSBVQVBJLCBzbyBtb3ZpbmcgaXQgaXMgYSBzZW5zaWJsZSBjaGFuZ2UuCgpTbyB0aGUgY29yZSBvZiB0aGUgcGF0Y2ggaW52b2x2ZXM6CgoxLiAgQ3JlYXRpbmcgaW50ZXJuYWwga2VybmVsIGAmbHQ7YXNtL2F1eHZlYy5oJmd0O2AgaGVhZGVycyAob3IgdXNpbmcgZ2VuZXJpYyBgJmx0O2FzbS1nZW5lcmljL2F1eHZlYy5oJmd0O2ApIOKAkyB0aGlzIHNvdW5kcyBsaWtlIGEgZ29vZCBwcmFjdGljZSBmb3IgZW5jYXBzdWxhdGluZyBrZXJuZWwtc3BlY2lmaWMgZGVmaW5pdGlvbnMuCjIuICBNb3ZpbmcgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGZyb20gYHVhcGkvYXNtL2F1eHZlYy5oYCB0byB0aGVzZSBpbnRlcm5hbCBoZWFkZXJzLiBFeGNlbGxlbnQuIEtlZXBpbmcgdGhlIGtlcm5lbCBpbnRlcm5hbHMgc2VwYXJhdGVkIGZyb20gdGhlIHVzZXJzcGFjZSBpbnRlcmZhY2UgaXMgYWx3YXlzIHByZWZlcnJlZC4KMy4gIE1vdmluZyB0aGUgYEFUX1ZFQ1RPUl9TSVpFYCBkZWZpbml0aW9uIGZyb20gYCZsdDtsaW51eC9tbV90eXBlcy5oJmd0O2AgdG8gYCZsdDtsaW51eC9hdXh2ZWMuaCZndDtgLiBUaGF0IG1ha2VzIG1vcmUgc2Vuc2U7IHRoZSBhdXh2ZWMgc2l6ZSBpcyBpbmhlcmVudGx5IHJlbGF0ZWQgdG8gdGhlIGF1eHZlYyBpdHNlbGYuCgpOb3csIGxldCYjMzk7cyBkaWcgaW50byB0aGUgZGV0YWlsczogTm8gY2hhbmdlcyB0byBDIGNvZGUsIGxvZ2ljLCBjb250cm9sIGZsb3csIGZ1bmN0aW9ucywgc3RydWN0dXJlcywgc2l6ZXMsIG9yIGFsZ29yaXRobXMgb3RoZXIgdGhhbiB3aGF0IEkmIzM5O3ZlIGlkZW50aWZpZWQuIFRoZSB2YWx1ZXMgb2YgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGFwcGVhciB0byBiZSBtb3N0bHkgdW5jaGFuZ2VkLiBJIHNlZSB0aGF0IHRoZSBgYXJtYCBhcmNoaXRlY3R1cmUmIzM5O3Mgc3R1YiBkZWZpbml0aW9uIGZvciBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgaXMgcmVtb3ZlZCwgc28gaXQgd2lsbCBub3cgdXNlIHRoZSBnZW5lcmljIDAgdmFsdWUsIHdoaWNoIHNlZW1zIGZpbmUgc2luY2UgaXQgZGlkbiYjMzk7dCBkZWZpbmUgaXQgYmVmb3JlIGFueXdheS4gVGhlIHZhbHVlcyBmb3IgYWxsIHRoZSBhcmNoaXRlY3R1cmVzIGFyZSB0aGUgc2FtZSBhcyBiZWZvcmUsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIHBhdGNoIGlzbiYjMzk7dCBjYXVzaW5nIGFueSByZWdyZXNzaW9ucyBpbiBzaXplIG9mIGF1eHYuCgpSZWdhcmRpbmcgYEFUX1ZFQ1RPUl9TSVpFYCBpdHNlbGY6IHRoZSBsb2dpYyBpcyB0d2Vha2VkIHRvIGluY2x1ZGUgdGhlIG5ldyBrZXJuZWwgaW5jbHVkZXMuIFRoZSBjYWxjdWxhdGlvbiB1c2VzIGBBVF9WRUNUT1JfU0laRV9CQVNFYCwgd2hpY2ggaXMgbm93IGRlZmluZWQuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoYXQgYGxpbnV4L21tX3R5cGVzLmhgIGluY2x1ZGVzIGBsaW51eC9hdXh2ZWMuaGAgdG8gZW5zdXJlIHRoYXQgdGhlcmUgYXJlIG5vIGtub2NrLW9uIGVmZmVjdHMuIEJ1dCwgb3ZlcmFsbCwgdGhpcyBzZWVtcyBsaWtlIGEgc29saWQgYW5kIHdlbGwtY29uc2lkZXJlZCBjbGVhbnVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDEwOjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9tbV90eXBlcy5oJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cbiAgIDI6XHQjaWZuZGVmIF9MSU5VWF9NTV9UWVBFU19IXG4gICAzOlx0I2RlZmluZSBfTElOVVhfTU1fVFlQRVNfSFxuICAgNDpcdFxuICAgNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21tX3R5cGVzX3Rhc2suaFx1MDAzZVxuICAgNjpcdFxuICAgNzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2F1eHZlYy5oXHUwMDNlXG4gICA4Olx0I2luY2x1ZGUgXHUwMDNjbGludXgva3JlZi5oXHUwMDNlXG4gICA5Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvbGlzdC5oXHUwMDNlXG4gIDEwOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvc3BpbmxvY2suaFx1MDAzZVxuICAxMTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3JidHJlZS5oXHUwMDNlXG4gIDEyOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvbWFwbGVfdHJlZS5oXHUwMDNlXG4gIDEzOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvcndzZW0uaFx1MDAzZVxuICAxNDpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2NvbXBsZXRpb24uaFx1MDAzZVxuICAxNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2NwdW1hc2suaFx1MDAzZVxuICAxNjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3Vwcm9iZXMuaFx1MDAzZVxuICAxNzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3JjdXBkYXRlLmhcdTAwM2VcbiAgMTg6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9wYWdlLWZsYWdzLWxheW91dC5oXHUwMDNlXG4gIDE5Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvd29ya3F1ZXVlLmhcdTAwM2VcbiAgMjA6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9zZXFsb2NrLmhcdTAwM2VcbiAgMjE6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9wZXJjcHVfY291bnRlci5oXHUwMDNlXG4gIDIyOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvdHlwZXMuaFx1MDAzZVxuICAyMzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2Z1dGV4X3R5cGVzLmhcdTAwM2VcbiAgMjQ6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9yc2VxX3R5cGVzLmhcdTAwM2VcbiAgMjU6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRtYXAuaFx1MDAzZVxuICAyNjpcdFxuICAyNzpcdCNpbmNsdWRlIFx1MDAzY2FzbS9tbXUuaFx1MDAzZVxuICAyODpcdFxuICAyOTpcdHN0cnVjdCBhZGRyZXNzX3NwYWNlO1xuICAzMDpcdHN0cnVjdCBmdXRleF9wcml2YXRlX2hhc2g7XG4gIDMxOlx0c3RydWN0IG1lbV9jZ3JvdXA7XG4gIDMyOlx0XG4gIDMzOlx0dHlwZWRlZiBzdHJ1Y3Qge1xuICAzNDpcdFx0dW5zaWduZWQgbG9uZyBmO1xuICAzNTpcdH0gbWVtZGVzY19mbGFnc190O1xuICAzNjpcdFxuICAzNzpcdC8qXG4gIDM4Olx0ICogRWFjaCBwaHlzaWNhbCBwYWdlIGluIHRoZSBzeXN0ZW0gaGFzIGEgc3RydWN0IHBhZ2UgYXNzb2NpYXRlZCB3aXRoXG4gIDM5Olx0ICogaXQgdG8ga2VlcCB0cmFjayBvZiB3aGF0ZXZlciBpdCBpcyB3ZSBhcmUgdXNpbmcgdGhlIHBhZ2UgZm9yIGF0IHRoZVxuICA0MDpcdCAqIG1vbWVudC4gTm90ZSB0aGF0IHdlIGhhdmUgbm8gd2F5IHRvIHRyYWNrIHdoaWNoIHRhc2tzIGFyZSB1c2luZ1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDEwOjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0OTE4CgkJCQkJCQlvdXRwdXQ6IDk1CgkJCQkJCQl0aG91Z2h0czogMjg0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgVGhpcyBDaGFuZ2UqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseS4gSSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGlzIHBhdGNoIHdhcnJhbnRzIGFueSBmdXJ0aGVyIHNjcnV0aW55LCBnaXZlbiBteSBleHBlcnRpc2UuIFRoZSBjb3JlIG9mIHRoZSBldmFsdWF0aW9uIGhpbmdlcyBvbiB0aG9zZSBuZWdhdGl2ZSBjcml0ZXJpYS4gVGhlIHBhdGNoIGRlc2NyaXB0aW9uIGl0c2VsZiBsb29rcyBwcm9taXNpbmcgYnV0IEkgbmVlZCB0byBlbnN1cmUgaXQgbWVldHMgdGhvc2UgY3JpdGVyaWEuCgpGaXJzdCwgdGhlIG5lZ2F0aXZlIGNyaXRlcmlhIGFyZSBwYXJhbW91bnQ6ICpOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzKi4gVGhlc2UgYXJlIHRoZSByZWQgZmxhZ3MgdG8gYXZvaWQgdW5uZWNlc3NhcnkgY29kZSByZXZpZXcuIFRoZSBwYXRjaCBkZXNjcmlwdGlvbiBzdGF0ZXMgaXQgY29udGFpbnMgKk1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4gVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cy4gUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZy4gQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLiBIZWFkZXIgcmVuYW1lcyAvIG1hY3JvIHJlbG9jYXRpb24gd2l0aCBubyBleGVjdXRhYmxlIGNvZGUgY2hhbmdlIC8gbm8gY2hhbmdlIGluIHZhbHVlcy4qCgpOb3csIGxldCYjMzk7cyByaWdvcm91c2x5IGNoZWNrIHRoZSBkZXRhaWxzLiBEb2VzIHRoZSBjaGFuZ2UgdG91Y2ggYW55IHJ1bnRpbWUgbG9naWMsIGFueSBleGVjdXRhYmxlIGNvZGUsIGFueSBkYXRhIHN0cnVjdHVyZSBzaXplcyBvciBjb250cm9sIGZsb3c/IFRoZSBkZXNjcmlwdGlvbiBpcyBjbGVhciDigJMgKk5vKi4gVGhlIG1hY3JvIHZhbHVlcyBgQVRfVkVDVE9SX1NJWkVgIGFuZCBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgcmVtYWluICpjb21wbGV0ZWx5KiB1bmNoYW5nZWQuIE5vIG5ldyBmdW5jdGlvbnMgYXJlIGludHJvZHVjZWQsIHJlbW92ZWQsIG9yIGFsdGVyZWQuIFRoZSBtb2RpZmljYXRpb25zIGFyZSBpc29sYXRlZCB0byBoZWFkZXIgZmlsZXMgKG1hY3JvIHJlbG9jYXRpb25zKSBhbmQgYE1BSU5UQUlORVJTYCAvIGBLYnVpbGRgIGZpbGVzLiBUaGVyZWZvcmUsIHRoZXJlIGlzIGRlZmluaXRpdmVseSAqemVybyogZXhlY3V0YWJsZSBjb2RlIGNoYW5nZS4gVGhpcyBpcyB0aGUga2V5LgoKTGV0JiMzOTtzIGRvIGEgZmluYWwgcmV2aWV3IG9mIG90aGVyIGZhY3RvcnM6IHRoZSBgV29ydGhGdXp6aW5nYCwgYEZvY3VzU3ltYm9sc2AsIGFuZCBgRW5hYmxlQ29uZmlnc2AgYXJlIGFsbCBuZWdhdGl2ZSB3aGljaCBtZWFucyB0aGVyZSBhcmUgbm8gZnVydGhlciBpbXBsaWNhdGlvbnMuIFRoZSByZWFzb25pbmcgZm9yIHRoZSBjaGFuZ2UgaXMgY29uY2lzZTogVGhpcyBpcyBhIGhlYWRlciBjbGVhbnVwL3JlZmFjdG9yaW5nIHNlcGFyYXRpbmcga2VybmVsLWludGVybmFsIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggZGVmaW5pdGlvbnMgZnJvbSBVQVBJIGhlYWRlcnMsIHdpdGggbm8gY2hhbmdlcyB0byBleGVjdXRhYmxlIGNvZGUsIGxvZ2ljLCBkYXRhIHN0cnVjdHVyZSBsYXlvdXQsIG9yIHJ1bnRpbWUgYmVoYXZpb3IuIEV4Y2VsbGVudC4gVGhpcyBjaGVja3MgYWxsIHRoZSBib3hlcy4gT2theSwgSSYjMzk7bSBjb25maWRlbnQgaW4gdGhlIGFzc2Vzc21lbnQuIFRpbWUgdG8gY2FsbCBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAxMDowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGlzIGEgaGVhZGVyIHJlZmFjdG9yaW5nIHRoYXQgc2VwYXJhdGVzIGtlcm5lbC1pbnRlcm5hbCBBVF9WRUNUT1JfU0laRV9BUkNIIG1hY3JvcyBmcm9tIFVBUEkgaGVhZGVycyBpbnRvIGludGVybmFsIGFzbSBoZWFkZXJzIGFuZCBjZW50cmFsaXplcyBBVF9WRUNUT1JfU0laRSBpbiBpbmNsdWRlL2xpbnV4L2F1eHZlYy5oLiBObyBleGVjdXRhYmxlIEMgY29kZSwgZGF0YSBzdHJ1Y3R1cmVzLCBjb25zdGFudHMsIGFzc2VydGlvbnMsIG9yIHJ1bnRpbWUgbG9naWMgYXJlIGFsdGVyZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpcyBhIGhlYWRlciByZWZhY3RvcmluZyB0aGF0IHNlcGFyYXRlcyBrZXJuZWwtaW50ZXJuYWwgQVRfVkVDVE9SX1NJWkVfQVJDSCBtYWNyb3MgZnJvbSBVQVBJIGhlYWRlcnMgaW50byBpbnRlcm5hbCBhc20gaGVhZGVycyBhbmQgY2VudHJhbGl6ZXMgQVRfVkVDVE9SX1NJWkUgaW4gaW5jbHVkZS9saW51eC9hdXh2ZWMuaC4gTm8gZXhlY3V0YWJsZSBDIGNvZGUsIGRhdGEgc3RydWN0dXJlcywgY29uc3RhbnRzLCBhc3NlcnRpb25zLCBvciBydW50aW1lIGxvZ2ljIGFyZSBhbHRlcmVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAxMDowNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDRUMTA6MDY6MTEuMTU5NjEyOTQ4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc5MzgxNzk2MjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpcyBhIGhlYWRlciByZWZhY3RvcmluZyB0aGF0IHNlcGFyYXRlcyBrZXJuZWwtaW50ZXJuYWwgQVRfVkVDVE9SX1NJWkVfQVJDSCBtYWNyb3MgZnJvbSBVQVBJIGhlYWRlcnMgaW50byBpbnRlcm5hbCBhc20gaGVhZGVycyBhbmQgY2VudHJhbGl6ZXMgQVRfVkVDVE9SX1NJWkUgaW4gaW5jbHVkZS9saW51eC9hdXh2ZWMuaC4gTm8gZXhlY3V0YWJsZSBDIGNvZGUsIGRhdGEgc3RydWN0dXJlcywgY29uc3RhbnRzLCBhc3NlcnRpb25zLCBvciBydW50aW1lIGxvZ2ljIGFyZSBhbHRlcmVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMTA6MDY6MTEuMTU5NjE4NzU4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjI5NDMwNjQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDU2NmRmMDVjODEzMTQ2N2U0ZWRiMWFjNzg0ZmU3Zjk3MThhNTIxNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIFNlcCA0IDEwOjA2OjA5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlNcXG5pbmRleCAzYTE5ZGE3NGQwMGM5Li42OTc0ZjhkYWQxZTlhIDEwMDY0NFxcbi0tLSBhL01BSU5UQUlORVJTXFxuKysrIGIvTUFJTlRBSU5FUlNcXG5AQCAtOTgwOCwxMyArOTgwOCwxOCBAQCBMOlxcdGxpbnV4LW1tQGt2YWNrLm9yZ1xcbiBTOlxcdFN1cHBvcnRlZFxcbiBUOlxcdGdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQva2Vlcy9saW51eC5naXQgZm9yLW5leHQvZXhlY3ZlXFxuIEY6XFx0RG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL0VMRi5yc3RcXG4rRjpcXHRhcmNoLyovaW5jbHVkZS9hc20vYXV4dmVjLmhcXG4rRjpcXHRhcmNoLyovaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbiBGOlxcdGZzLypiaW5mbXRfKi5jXFxuIEY6XFx0ZnMvS2NvbmZpZy5iaW5mbXRcXG4gRjpcXHRmcy9leGVjLmNcXG4gRjpcXHRmcy90ZXN0cy9iaW5mbXRfKl9rdW5pdC5jXFxuIEY6XFx0ZnMvdGVzdHMvZXhlY19rdW5pdC5jXFxuK0Y6XFx0aW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaFxcbitGOlxcdGluY2x1ZGUvbGludXgvYXV4dmVjLmhcXG4gRjpcXHRpbmNsdWRlL2xpbnV4L2JpbmZtdHMuaFxcbiBGOlxcdGluY2x1ZGUvbGludXgvZWxmLmhcXG4rRjpcXHRpbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvYXV4dmVjLmhcXG4gRjpcXHRpbmNsdWRlL3VhcGkvbGludXgvYXV4dmVjLmhcXG4gRjpcXHRpbmNsdWRlL3VhcGkvbGludXgvYmluZm10cy5oXFxuIEY6XFx0aW5jbHVkZS91YXBpL2xpbnV4L2VsZi5oXFxuZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi5mYTkwZWU0Zjg5OWM2XFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5AQCAtMCwwICsxLDcgQEBcXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cXG4rI2lmbmRlZiBfX0FTTV9BTFBIQV9BVVhWRUNfSFxcbisjZGVmaW5lIF9fQVNNX0FMUEhBX0FVWFZFQ19IXFxuK1xcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNCAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuK1xcbisjZW5kaWYgLyogX19BU01fQUxQSEFfQVVYVkVDX0ggKi9cXG5kaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9hbHBoYS9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuaW5kZXggNTdjYWU4NzgwZDgxMS4uZDIxYjg3YjY3MzBhNCAxMDA2NDRcXG4tLS0gYS9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG5AQCAtMSw2ICsxLDYgQEBcXG4gLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi9cXG4tI2lmbmRlZiBfX0FTTV9BTFBIQV9BVVhWRUNfSFxcbi0jZGVmaW5lIF9fQVNNX0FMUEhBX0FVWFZFQ19IXFxuKyNpZm5kZWYgX19VQVBJX0FTTV9BTFBIQV9BVVhWRUNfSFxcbisjZGVmaW5lIF9fVUFQSV9BU01fQUxQSEFfQVVYVkVDX0hcXG4gXFxuIC8qIFJlc2VydmUgdGhlc2UgbnVtYmVycyBmb3IgYW55IGZ1dHVyZSB1c2Ugb2YgYSBWRFNPLiAgKi9cXG4gI2lmIDBcXG5AQCAtMjIsNiArMjIsNCBAQFxcbiAjZGVmaW5lIEFUX0wyX0NBQ0hFU0hBUEVcXHQzNlxcbiAjZGVmaW5lIEFUX0wzX0NBQ0hFU0hBUEVcXHQzN1xcbiBcXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDQgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xcbi1cXG4tI2VuZGlmIC8qIF9fQVNNX0FMUEhBX0FVWFZFQ19IICovXFxuKyNlbmRpZiAvKiBfX1VBUElfQVNNX0FMUEhBX0FVWFZFQ19IICovXFxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCBmYmQzODhjNDYyOTkwLi4wMDAwMDAwMDAwMDAwXFxuLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vYXV4dmVjLmhcXG4rKysgL2Rldi9udWxsXFxuQEAgLTEgKzAsMCBAQFxcbi0jaW5jbHVkZSBcXHUwMDNjdWFwaS9hc20vYXV4dmVjLmhcXHUwMDNlXFxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi5kZTI0ZWFhYTA2ZTI3XFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5AQCAtMCwwICsxLDcgQEBcXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cXG4rI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxcbisjZGVmaW5lIF9fQVNNX0FVWFZFQ19IXFxuK1xcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMiAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuK1xcbisjZW5kaWZcXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuaW5kZXggNzQzYzBiODRmZDMwZC4uZmI1MWU5MDY4MTNhOSAxMDA2NDRcXG4tLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG5AQCAtMTQsMTMgKzE0LDExIEBAXFxuICAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXFxuICAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgXFx1MDAzY2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9cXHUwMDNlLlxcbiAgKi9cXG4tI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxcbi0jZGVmaW5lIF9fQVNNX0FVWFZFQ19IXFxuKyNpZm5kZWYgX19VQVBJX0FTTV9BVVhWRUNfSFxcbisjZGVmaW5lIF9fVUFQSV9BU01fQVVYVkVDX0hcXG4gXFxuIC8qIHZEU08gbG9jYXRpb24gKi9cXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcXHQzM1xcbiAjZGVmaW5lIEFUX01JTlNJR1NUS1NaXFx0NTFcXHQvKiBzdGFjayBuZWVkZWQgZm9yIHNpZ25hbCBkZWxpdmVyeSAqL1xcbiBcXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDIgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xcbi1cXG4gI2VuZGlmXFxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjM3ZGQ3MTdhM2EyMmJcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5AQCAtMCwwICsxLDE0IEBAXFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKyAqL1xcbisvKlxcbisgKiBBdXRob3I6IEhhbmx1IExpIFxcdTAwM2NsaWhhbmx1QGxvb25nc29uLmNuXFx1MDAzZVxcbisgKiAgICAgICAgIEh1YWNhaSBDaGVuIFxcdTAwM2NjaGVuaHVhY2FpQGxvb25nc29uLmNuXFx1MDAzZVxcbisgKlxcbisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWRcXG4rICovXFxuK1xcbisjaWZuZGVmIF9fQVNNX0FVWFZFQ19IXFxuKyNkZWZpbmUgX19BU01fQVVYVkVDX0hcXG4rXFxuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG4rXFxuKyNlbmRpZiAvKiBfX0FTTV9BVVhWRUNfSCAqL1xcbmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbmluZGV4IDkyMmQ5ZTZiNTA1ODYuLjc5NjkxYzQyMmM3ZTQgMTAwNjQ0XFxuLS0tIGEvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbisrKyBiL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG5AQCAtNiwxMiArNiwxMCBAQFxcbiAgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWRcXG4gICovXFxuIFxcbi0jaWZuZGVmIF9fQVNNX0FVWFZFQ19IXFxuLSNkZWZpbmUgX19BU01fQVVYVkVDX0hcXG4rI2lmbmRlZiBfX1VBUElfQVNNX0FVWFZFQ19IXFxuKyNkZWZpbmUgX19VQVBJX0FTTV9BVVhWRUNfSFxcbiBcXG4gLyogTG9jYXRpb24gb2YgVkRTTyBpbWFnZS4gKi9cXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcXHRcXHQzM1xcbiBcXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDEgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xcbi1cXG4tI2VuZGlmIC8qIF9fQVNNX0FVWFZFQ19IICovXFxuKyNlbmRpZiAvKiBfX1VBUElfQVNNX0FVWFZFQ19IICovXFxuZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uNzZjNDQ1ZTc4OTBmZVxcbi0tLSAvZGV2L251bGxcXG4rKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5AQCAtMCwwICsxLDE3IEBAXFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKyAqL1xcbisvKlxcbisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSW1hZ2luYXRpb24gVGVjaG5vbG9naWVzXFxuKyAqIEF1dGhvcjogQWxleCBTbWl0aCBcXHUwMDNjYWxleC5zbWl0aEBpbWd0ZWMuY29tXFx1MDAzZVxcbisgKlxcbisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxcbisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGVcXG4rICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyXFxuKyAqIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXFxuKyAqL1xcbitcXG4rI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxcbisjZGVmaW5lIF9fQVNNX0FVWFZFQ19IXFxuK1xcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuK1xcbisjZW5kaWYgLyogX19BU01fQVVYVkVDX0ggKi9cXG5kaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbmluZGV4IDYxMmMyYzQxZjYwYjIuLjEzMzFhYzRkOTM1ZTMgMTAwNjQ0XFxuLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbkBAIC05LDEyICs5LDEwIEBAXFxuICAqIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXFxuICAqL1xcbiBcXG4tI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxcbi0jZGVmaW5lIF9fQVNNX0FVWFZFQ19IXFxuKyNpZm5kZWYgX19VQVBJX0FTTV9BVVhWRUNfSFxcbisjZGVmaW5lIF9fVUFQSV9BU01fQVVYVkVDX0hcXG4gXFxuIC8qIExvY2F0aW9uIG9mIFZEU08gaW1hZ2UuICovXFxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXFx0XFx0MzNcXG4gXFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG4tXFxuLSNlbmRpZiAvKiBfX0FTTV9BVVhWRUNfSCAqL1xcbisjZW5kaWYgLyogX19VQVBJX0FTTV9BVVhWRUNfSCAqL1xcbmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmQ2YzE4MGU5YWMyY2JcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxuQEAgLTAsMCArMSw3IEBAXFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXFxuKyNpZm5kZWYgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXFxuKyNkZWZpbmUgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXFxuK1xcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcXHQxNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuK1xcbisjZW5kaWZcXG5kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbmluZGV4IGFhN2MxNjIxNTQ1MzguLjlhYjViNmQxNzkyOTYgMTAwNjQ0XFxuLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbkBAIC0xLDYgKzEsNiBAQFxcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xcbi0jaWZuZGVmIF9BU01fUE9XRVJQQ19BVVhWRUNfSFxcbi0jZGVmaW5lIF9BU01fUE9XRVJQQ19BVVhWRUNfSFxcbisjaWZuZGVmIF9VQVBJX0FTTV9QT1dFUlBDX0FVWFZFQ19IXFxuKyNkZWZpbmUgX1VBUElfQVNNX1BPV0VSUENfQVVYVkVDX0hcXG4gXFxuIC8qXFxuICAqIFdlIG5lZWQgdG8gcHV0IGluIHNvbWUgZXh0cmEgYXV4IHRhYmxlIGVudHJpZXMgdG8gdGVsbCBnbGliYyB3aGF0XFxuQEAgLTUwLDYgKzUwLDQgQEBcXG4gXFxuICNkZWZpbmUgQVRfTUlOU0lHU1RLU1pcXHRcXHQ1MSAgICAgIC8qIHN0YWNrIG5lZWRlZCBmb3Igc2lnbmFsIGRlbGl2ZXJ5ICovXFxuIFxcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcXHQxNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuLVxcbiAjZW5kaWZcXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmZiNDIzMzQ0NTI3NmFcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxcbkBAIC0wLDAgKzEsMTMgQEBcXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqL1xcbisvKlxcbisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQVJNIEx0ZC5cXG4rICogQ29weXJpZ2h0IChDKSAyMDE1IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYVxcbisgKi9cXG4rXFxuKyNpZm5kZWYgX0FTTV9SSVNDVl9BVVhWRUNfSFxcbisjZGVmaW5lIF9BU01fUklTQ1ZfQVVYVkVDX0hcXG4rXFxuKy8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG4rI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXFx0MTBcXG4rXFxuKyNlbmRpZiAvKiBfVUFQSV9BU01fUklTQ1ZfQVVYVkVDX0ggKi9cXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuaW5kZXggOTUwNTBlYmU5YWQwMC4uMGE3MjVmMmFhMmU3MyAxMDA2NDRcXG4tLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG5AQCAtMzMsOCArMzMsNiBAQFxcbiAjZGVmaW5lIEFUX0wzX0NBQ0hFU0laRVxcdFxcdDQ2XFxuICNkZWZpbmUgQVRfTDNfQ0FDSEVHRU9NRVRSWVxcdDQ3XFxuIFxcbi0vKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSFxcdDEwXFxuICNkZWZpbmUgQVRfTUlOU0lHU1RLU1pcXHRcXHQ1MVxcbiBcXG4gI2VuZGlmIC8qIF9VQVBJX0FTTV9SSVNDVl9BVVhWRUNfSCAqL1xcbmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmJlYWFlZmUxMmE4NGVcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxuQEAgLTAsMCArMSw3IEBAXFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovXFxuKyNpZm5kZWYgX19BU01TMzkwX0FVWFZFQ19IXFxuKyNkZWZpbmUgX19BU01TMzkwX0FVWFZFQ19IXFxuK1xcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuK1xcbisjZW5kaWZcXG5kaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbmluZGV4IGEwNTZjNDYzN2ZmY2YuLjU0YmJmZDY4ZDcwOWIgMTAwNjQ0XFxuLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbkBAIC0xLDkgKzEsNyBAQFxcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xcbi0jaWZuZGVmIF9fQVNNUzM5MF9BVVhWRUNfSFxcbi0jZGVmaW5lIF9fQVNNUzM5MF9BVVhWRUNfSFxcbisjaWZuZGVmIF9fQVNNUzM5MF9VQVBJX0FVWFZFQ19IXFxuKyNkZWZpbmUgX19BU01TMzkwX1VBUElfQVVYVkVDX0hcXG4gXFxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXFx0XFx0MzNcXG4gXFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG4tXFxuICNlbmRpZlxcbmRpZmYgLS1naXQgYS9hcmNoL3NoL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9zaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZjA4MzA4MDhlYjE5N1xcbi0tLSAvZGV2L251bGxcXG4rKysgYi9hcmNoL3NoL2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxuQEAgLTAsMCArMSw3IEBAXFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXFxuKyNpZm5kZWYgX19BU01fU0hfQVVYVkVDX0hcXG4rI2RlZmluZSBfX0FTTV9TSF9BVVhWRUNfSFxcbitcXG4rI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xcbitcXG4rI2VuZGlmIC8qIF9fQVNNX1NIX0FVWFZFQ19IICovXFxuZGlmZiAtLWdpdCBhL2FyY2gvc2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbmluZGV4IDYzZmNjMzllMmM2YWYuLmNmMGYxM2RhOTc3YTAgMTAwNjQ0XFxuLS0tIGEvYXJjaC9zaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuKysrIGIvYXJjaC9zaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuQEAgLTEsNiArMSw2IEBAXFxuIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovXFxuLSNpZm5kZWYgX19BU01fU0hfQVVYVkVDX0hcXG4tI2RlZmluZSBfX0FTTV9TSF9BVVhWRUNfSFxcbisjaWZuZGVmIF9fVUFQSV9BU01fU0hfQVVYVkVDX0hcXG4rI2RlZmluZSBfX1VBUElfQVNNX1NIX0FVWFZFQ19IXFxuIFxcbiAvKlxcbiAgKiBBcmNoaXRlY3R1cmUtbmV1dHJhbCBBVF8gdmFsdWVzIGluIDAtMTcsIGxlYXZlIHNvbWUgcm9vbVxcbkBAIC0zMCw2ICszMCw0IEBAXFxuICNkZWZpbmUgQVRfTDFEX0NBQ0hFU0hBUEVcXHQzNVxcbiAjZGVmaW5lIEFUX0wyX0NBQ0hFU0hBUEVcXHQzNlxcbiBcXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xcbi1cXG4tI2VuZGlmIC8qIF9fQVNNX1NIX0FVWFZFQ19IICovXFxuKyNlbmRpZiAvKiBfX1VBUElfQVNNX1NIX0FVWFZFQ19IICovXFxuZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi41MGMyNDlhOGJkMTcxXFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5AQCAtMCwwICsxLDYgQEBcXG4rI2lmbmRlZiBfX0FTTVNQQVJDX0FVWFZFQ19IXFxuKyNkZWZpbmUgX19BU01TUEFSQ19BVVhWRUNfSFxcbitcXG4rI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXFx0NFxcbitcXG4rI2VuZGlmIC8qICEoX19BU01TUEFSQ19BVVhWRUNfSCkgKi9cXG5kaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9zcGFyYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuaW5kZXggYWI4NzgwZmI5ZGYxMC4uMGZhYjNiMjkxNDhhMyAxMDA2NDRcXG4tLS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL3NwYXJjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG5AQCAtMSw1ICsxLDUgQEBcXG4tI2lmbmRlZiBfX0FTTVNQQVJDX0FVWFZFQ19IXFxuLSNkZWZpbmUgX19BU01TUEFSQ19BVVhWRUNfSFxcbisjaWZuZGVmIF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSFxcbisjZGVmaW5lIF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSFxcbiBcXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcXHRcXHQzM1xcbiBcXG5AQCAtMTAsNiArMTAsNCBAQFxcbiAjZGVmaW5lIEFUX0FESV9OQklUU1xcdDQ5XFxuICNkZWZpbmUgQVRfQURJX1VFT05BRElcXHQ1MFxcbiBcXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXFx0NFxcbi1cXG4tI2VuZGlmIC8qICEoX19BU01TUEFSQ19BVVhWRUNfSCkgKi9cXG4rI2VuZGlmIC8qICEoX19VQVBJX0FTTVNQQVJDX0FVWFZFQ19IKSAqL1xcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi5lZDI2YWQwOWYzZTM0XFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxuQEAgLTAsMCArMSwxMiBAQFxcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xcbisjaWZuZGVmIF9BU01fWDg2X0FVWFZFQ19IXFxuKyNkZWZpbmUgX0FTTV9YODZfQVVYVkVDX0hcXG4rXFxuKy8qIGVudHJpZXMgaW4gQVJDSF9ETElORk86ICovXFxuKyNpZiBkZWZpbmVkKENPTkZJR19JQTMyX0VNVUxBVElPTikgfHwgIWRlZmluZWQoQ09ORklHX1g4Nl82NClcXG4rIyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAzXFxuKyNlbHNlIC8qIGVsc2UgaXQncyBub24tY29tcGF0IHg4Ni02NCAqL1xcbisjIGRlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDJcXG4rI2VuZGlmXFxuK1xcbisjZW5kaWYgLyogX0FTTV9YODZfQVVYVkVDX0ggKi9cXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG5pbmRleCBiZGRlOWUxOGY5NGVlLi42Njc3YzlhY2UxMTc2IDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuQEAgLTEsNiArMSw2IEBAXFxuIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovXFxuLSNpZm5kZWYgX0FTTV9YODZfQVVYVkVDX0hcXG4tI2RlZmluZSBfQVNNX1g4Nl9BVVhWRUNfSFxcbisjaWZuZGVmIF9VQVBJX0FTTV9YODZfQVVYVkVDX0hcXG4rI2RlZmluZSBfVUFQSV9BU01fWDg2X0FVWFZFQ19IXFxuIC8qXFxuICAqIEFyY2hpdGVjdHVyZS1uZXV0cmFsIEFUXyB2YWx1ZXMgaW4gMC0xNywgbGVhdmUgc29tZSByb29tXFxuICAqIGZvciBtb3JlIG9mIHRoZW0sIHN0YXJ0IHRoZSB4ODYtc3BlY2lmaWMgb25lcyBhdCAzMi5cXG5AQCAtMTAsMTEgKzEwLDQgQEBcXG4gI2VuZGlmXFxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXFx0XFx0MzNcXG4gXFxuLS8qIGVudHJpZXMgaW4gQVJDSF9ETElORk86ICovXFxuLSNpZiBkZWZpbmVkKF9fS0VSTkVMX18pIFxcdTAwMjZcXHUwMDI2IChkZWZpbmVkKENPTkZJR19JQTMyX0VNVUxBVElPTikgfHwgIWRlZmluZWQoQ09ORklHX1g4Nl82NCkpXFxuLSMgZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggM1xcbi0jZWxzZSAvKiBlbHNlIGl0J3Mgbm9uLWNvbXBhdCB4ODYtNjQgKi9cXG4tIyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyXFxuLSNlbmRpZlxcbi1cXG4tI2VuZGlmIC8qIF9BU01fWDg2X0FVWFZFQ19IICovXFxuKyNlbmRpZiAvKiBfVUFQSV9BU01fWDg2X0FVWFZFQ19IICovXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGRcXG5pbmRleCAyYmMwMGM2N2RjNTRiLi45MDYyNjM1OGY5NGI0IDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkXFxuKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGRcXG5AQCAtNiw2ICs2LDcgQEBcXG4gXFxuIG1hbmRhdG9yeS15ICs9IGF0b21pYy5oXFxuIG1hbmRhdG9yeS15ICs9IGFyY2hyYW5kb20uaFxcbittYW5kYXRvcnkteSArPSBhdXh2ZWMuaFxcbiBtYW5kYXRvcnkteSArPSBiYXJyaWVyLmhcXG4gbWFuZGF0b3J5LXkgKz0gYml0b3BzLmhcXG4gbWFuZGF0b3J5LXkgKz0gYnVnLmhcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmhcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmU0YWJkMmE4YzVlZDNcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaFxcbkBAIC0wLDAgKzEsNyBAQFxcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xcbisjaWZuZGVmIF9fQVNNX0dFTkVSSUNfQVVYVkFMX0hfX1xcbisjZGVmaW5lIF9fQVNNX0dFTkVSSUNfQVVYVkFMX0hfX1xcbitcXG4rI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDBcXG4rXFxuKyNlbmRpZlxcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2F1eHZlYy5oIGIvaW5jbHVkZS9saW51eC9hdXh2ZWMuaFxcbmluZGV4IDhiY2I5YjcyNjI2MjguLmY3ZGRlYTFkYmM4ZWQgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9hdXh2ZWMuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvYXV4dmVjLmhcXG5AQCAtMiw4ICsyLDEzIEBAXFxuICNpZm5kZWYgX0xJTlVYX0FVWFZFQ19IXFxuICNkZWZpbmUgX0xJTlVYX0FVWFZFQ19IXFxuIFxcbisjaW5jbHVkZSBcXHUwMDNjdWFwaS9hc20vYXV4dmVjLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2N1YXBpL2xpbnV4L2F1eHZlYy5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjYXNtL2F1eHZlYy5oXFx1MDAzZVxcbiBcXG4gI2RlZmluZSBBVF9WRUNUT1JfU0laRV9CQVNFIDI0IC8qIE5FV19BVVhfRU5UIGVudHJpZXMgaW4gYXV4aWxpYXJ5IHRhYmxlICovXFxuICAgLyogbnVtYmVyIG9mIFxcXCIjZGVmaW5lIEFUXy4qXFxcIiBhYm92ZSwgbWludXMge0FUX05VTEwsIEFUX0lHTk9SRSwgQVRfTk9URUxGfSAqL1xcbitcXG4rI2RlZmluZSBBVF9WRUNUT1JfU0laRSAoMiooQVRfVkVDVE9SX1NJWkVfQVJDSCArIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgKyAxKSlcXG4rXFxuICNlbmRpZiAvKiBfTElOVVhfQVVYVkVDX0ggKi9cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIGIvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oXFxuaW5kZXggNmQ4MTVmNjQ0MGM5NC4uMDhhMDZiMjYzNzViMiAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmhcXG5AQCAtMjYsMTIgKzI2LDYgQEBcXG4gXFxuICNpbmNsdWRlIFxcdTAwM2Nhc20vbW11LmhcXHUwMDNlXFxuIFxcbi0jaWZuZGVmIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDBcXG4tI2VuZGlmXFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkUgKDIqKEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggKyBBVF9WRUNUT1JfU0laRV9CQVNFICsgMSkpXFxuLVxcbi1cXG4gc3RydWN0IGFkZHJlc3Nfc3BhY2U7XFxuIHN0cnVjdCBmdXRleF9wcml2YXRlX2hhc2g7XFxuIHN0cnVjdCBtZW1fY2dyb3VwO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQxMDowNjoxMi43ODk3NDU5MDFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjE2MzA4MDMyOTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpcyBhIGhlYWRlciByZWZhY3RvcmluZyB0aGF0IHNlcGFyYXRlcyBrZXJuZWwtaW50ZXJuYWwgQVRfVkVDVE9SX1NJWkVfQVJDSCBtYWNyb3MgZnJvbSBVQVBJIGhlYWRlcnMgaW50byBpbnRlcm5hbCBhc20gaGVhZGVycyBhbmQgY2VudHJhbGl6ZXMgQVRfVkVDVE9SX1NJWkUgaW4gaW5jbHVkZS9saW51eC9hdXh2ZWMuaC4gTm8gZXhlY3V0YWJsZSBDIGNvZGUsIGRhdGEgc3RydWN0dXJlcywgY29uc3RhbnRzLCBhc3NlcnRpb25zLCBvciBydW50aW1lIGxvZ2ljIGFyZSBhbHRlcmVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkNTY2ZGYwNWM4MTMxNDY3ZTRlZGIxYWM3ODRmZTdmOTcxOGE1MjE1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBTZXAgNCAxMDowNjowOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlNcbmluZGV4IDNhMTlkYTc0ZDAwYzkuLjY5NzRmOGRhZDFlOWEgMTAwNjQ0XG4tLS0gYS9NQUlOVEFJTkVSU1xuKysrIGIvTUFJTlRBSU5FUlNcbkBAIC05ODA4LDEzICs5ODA4LDE4IEBAIEw6XHRsaW51eC1tbUBrdmFjay5vcmdcbiBTOlx0U3VwcG9ydGVkXG4gVDpcdGdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQva2Vlcy9saW51eC5naXQgZm9yLW5leHQvZXhlY3ZlXG4gRjpcdERvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9FTEYucnN0XG4rRjpcdGFyY2gvKi9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuK0Y6XHRhcmNoLyovaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuIEY6XHRmcy8qYmluZm10XyouY1xuIEY6XHRmcy9LY29uZmlnLmJpbmZtdFxuIEY6XHRmcy9leGVjLmNcbiBGOlx0ZnMvdGVzdHMvYmluZm10Xypfa3VuaXQuY1xuIEY6XHRmcy90ZXN0cy9leGVjX2t1bml0LmNcbitGOlx0aW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaFxuK0Y6XHRpbmNsdWRlL2xpbnV4L2F1eHZlYy5oXG4gRjpcdGluY2x1ZGUvbGludXgvYmluZm10cy5oXG4gRjpcdGluY2x1ZGUvbGludXgvZWxmLmhcbitGOlx0aW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2F1eHZlYy5oXG4gRjpcdGluY2x1ZGUvdWFwaS9saW51eC9hdXh2ZWMuaFxuIEY6XHRpbmNsdWRlL3VhcGkvbGludXgvYmluZm10cy5oXG4gRjpcdGluY2x1ZGUvdWFwaS9saW51eC9lbGYuaFxuZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZmE5MGVlNGY4OTljNlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuQEAgLTAsMCArMSw3IEBAXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cbisjaWZuZGVmIF9fQVNNX0FMUEhBX0FVWFZFQ19IXG4rI2RlZmluZSBfX0FTTV9BTFBIQV9BVVhWRUNfSFxuK1xuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCA0IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbitcbisjZW5kaWYgLyogX19BU01fQUxQSEFfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDU3Y2FlODc4MGQ4MTEuLmQyMWI4N2I2NzMwYTQgMTAwNjQ0XG4tLS0gYS9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbisrKyBiL2FyY2gvYWxwaGEvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuQEAgLTEsNiArMSw2IEBAXG4gLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi9cbi0jaWZuZGVmIF9fQVNNX0FMUEhBX0FVWFZFQ19IXG4tI2RlZmluZSBfX0FTTV9BTFBIQV9BVVhWRUNfSFxuKyNpZm5kZWYgX19VQVBJX0FTTV9BTFBIQV9BVVhWRUNfSFxuKyNkZWZpbmUgX19VQVBJX0FTTV9BTFBIQV9BVVhWRUNfSFxuIFxuIC8qIFJlc2VydmUgdGhlc2UgbnVtYmVycyBmb3IgYW55IGZ1dHVyZSB1c2Ugb2YgYSBWRFNPLiAgKi9cbiAjaWYgMFxuQEAgLTIyLDYgKzIyLDQgQEBcbiAjZGVmaW5lIEFUX0wyX0NBQ0hFU0hBUEVcdDM2XG4gI2RlZmluZSBBVF9MM19DQUNIRVNIQVBFXHQzN1xuIFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCA0IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbi1cbi0jZW5kaWYgLyogX19BU01fQUxQSEFfQVVYVkVDX0ggKi9cbisjZW5kaWYgLyogX19VQVBJX0FTTV9BTFBIQV9BVVhWRUNfSCAqL1xuZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vYXV4dmVjLmhcbmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggZmJkMzg4YzQ2Mjk5MC4uMDAwMDAwMDAwMDAwMFxuLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vYXV4dmVjLmhcbisrKyAvZGV2L251bGxcbkBAIC0xICswLDAgQEBcbi0jaW5jbHVkZSBcdTAwM2N1YXBpL2FzbS9hdXh2ZWMuaFx1MDAzZVxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZGUyNGVhYWEwNmUyN1xuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuQEAgLTAsMCArMSw3IEBAXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cbisjaWZuZGVmIF9fQVNNX0FVWFZFQ19IXG4rI2RlZmluZSBfX0FTTV9BVVhWRUNfSFxuK1xuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbitcbisjZW5kaWZcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDc0M2MwYjg0ZmQzMGQuLmZiNTFlOTA2ODEzYTkgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuQEAgLTE0LDEzICsxNCwxMSBAQFxuICAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSBcdTAwM2NodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvXHUwMDNlLlxuICAqL1xuLSNpZm5kZWYgX19BU01fQVVYVkVDX0hcbi0jZGVmaW5lIF9fQVNNX0FVWFZFQ19IXG4rI2lmbmRlZiBfX1VBUElfQVNNX0FVWFZFQ19IXG4rI2RlZmluZSBfX1VBUElfQVNNX0FVWFZFQ19IXG4gXG4gLyogdkRTTyBsb2NhdGlvbiAqL1xuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXHQzM1xuICNkZWZpbmUgQVRfTUlOU0lHU1RLU1pcdDUxXHQvKiBzdGFjayBuZWVkZWQgZm9yIHNpZ25hbCBkZWxpdmVyeSAqL1xuIFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbi1cbiAjZW5kaWZcbmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uMzdkZDcxN2EzYTIyYlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgKzEsMTQgQEBcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsgKi9cbisvKlxuKyAqIEF1dGhvcjogSGFubHUgTGkgXHUwMDNjbGloYW5sdUBsb29uZ3Nvbi5jblx1MDAzZVxuKyAqICAgICAgICAgSHVhY2FpIENoZW4gXHUwMDNjY2hlbmh1YWNhaUBsb29uZ3Nvbi5jblx1MDAzZVxuKyAqXG4rICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgTG9vbmdzb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiBMaW1pdGVkXG4rICovXG4rXG4rI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxuKyNkZWZpbmUgX19BU01fQVVYVkVDX0hcbitcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4rXG4rI2VuZGlmIC8qIF9fQVNNX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDkyMmQ5ZTZiNTA1ODYuLjc5NjkxYzQyMmM3ZTQgMTAwNjQ0XG4tLS0gYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG4rKysgYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtNiwxMiArNiwxMCBAQFxuICAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIyIExvb25nc29uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZFxuICAqL1xuIFxuLSNpZm5kZWYgX19BU01fQVVYVkVDX0hcbi0jZGVmaW5lIF9fQVNNX0FVWFZFQ19IXG4rI2lmbmRlZiBfX1VBUElfQVNNX0FVWFZFQ19IXG4rI2RlZmluZSBfX1VBUElfQVNNX0FVWFZFQ19IXG4gXG4gLyogTG9jYXRpb24gb2YgVkRTTyBpbWFnZS4gKi9cbiAjZGVmaW5lIEFUX1NZU0lORk9fRUhEUlx0XHQzM1xuIFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbi1cbi0jZW5kaWYgLyogX19BU01fQVVYVkVDX0ggKi9cbisjZW5kaWYgLyogX19VQVBJX0FTTV9BVVhWRUNfSCAqL1xuZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjc2YzQ0NWU3ODkwZmVcbi0tLSAvZGV2L251bGxcbisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuQEAgLTAsMCArMSwxNyBAQFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKyAqL1xuKy8qXG4rICogQ29weXJpZ2h0IChDKSAyMDE1IEltYWdpbmF0aW9uIFRlY2hub2xvZ2llc1xuKyAqIEF1dGhvcjogQWxleCBTbWl0aCBcdTAwM2NhbGV4LnNtaXRoQGltZ3RlYy5jb21cdTAwM2VcbisgKlxuKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4rICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlXG4rICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyXG4rICogb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbisgKi9cbitcbisjaWZuZGVmIF9fQVNNX0FVWFZFQ19IXG4rI2RlZmluZSBfX0FTTV9BVVhWRUNfSFxuK1xuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbitcbisjZW5kaWYgLyogX19BU01fQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5pbmRleCA2MTJjMmM0MWY2MGIyLi4xMzMxYWM0ZDkzNWUzIDEwMDY0NFxuLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtOSwxMiArOSwxMCBAQFxuICAqIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gICovXG4gXG4tI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxuLSNkZWZpbmUgX19BU01fQVVYVkVDX0hcbisjaWZuZGVmIF9fVUFQSV9BU01fQVVYVkVDX0hcbisjZGVmaW5lIF9fVUFQSV9BU01fQVVYVkVDX0hcbiBcbiAvKiBMb2NhdGlvbiBvZiBWRFNPIGltYWdlLiAqL1xuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXHRcdDMzXG4gXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDEgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuLVxuLSNlbmRpZiAvKiBfX0FTTV9BVVhWRUNfSCAqL1xuKyNlbmRpZiAvKiBfX1VBUElfQVNNX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZDZjMTgwZTlhYzJjYlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICsxLDcgQEBcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xuKyNpZm5kZWYgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4rI2RlZmluZSBfQVNNX1BPV0VSUENfQVVYVkVDX0hcbitcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDE1IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbitcbisjZW5kaWZcbmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5pbmRleCBhYTdjMTYyMTU0NTM4Li45YWI1YjZkMTc5Mjk2IDEwMDY0NFxuLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtMSw2ICsxLDYgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4tI2RlZmluZSBfQVNNX1BPV0VSUENfQVVYVkVDX0hcbisjaWZuZGVmIF9VQVBJX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4rI2RlZmluZSBfVUFQSV9BU01fUE9XRVJQQ19BVVhWRUNfSFxuIFxuIC8qXG4gICogV2UgbmVlZCB0byBwdXQgaW4gc29tZSBleHRyYSBhdXggdGFibGUgZW50cmllcyB0byB0ZWxsIGdsaWJjIHdoYXRcbkBAIC01MCw2ICs1MCw0IEBAXG4gXG4gI2RlZmluZSBBVF9NSU5TSUdTVEtTWlx0XHQ1MSAgICAgIC8qIHN0YWNrIG5lZWRlZCBmb3Igc2lnbmFsIGRlbGl2ZXJ5ICovXG4gXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXHQxNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4tXG4gI2VuZGlmXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5mYjQyMzM0NDUyNzZhXG4tLS0gL2Rldi9udWxsXG4rKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICsxLDEzIEBAXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqL1xuKy8qXG4rICogQ29weXJpZ2h0IChDKSAyMDEyIEFSTSBMdGQuXG4rICogQ29weXJpZ2h0IChDKSAyMDE1IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYVxuKyAqL1xuK1xuKyNpZm5kZWYgX0FTTV9SSVNDVl9BVVhWRUNfSFxuKyNkZWZpbmUgX0FTTV9SSVNDVl9BVVhWRUNfSFxuK1xuKy8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDEwXG4rXG4rI2VuZGlmIC8qIF9VQVBJX0FTTV9SSVNDVl9BVVhWRUNfSCAqL1xuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuaW5kZXggOTUwNTBlYmU5YWQwMC4uMGE3MjVmMmFhMmU3MyAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtMzMsOCArMzMsNiBAQFxuICNkZWZpbmUgQVRfTDNfQ0FDSEVTSVpFXHRcdDQ2XG4gI2RlZmluZSBBVF9MM19DQUNIRUdFT01FVFJZXHQ0N1xuIFxuLS8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDEwXG4gI2RlZmluZSBBVF9NSU5TSUdTVEtTWlx0XHQ1MVxuIFxuICNlbmRpZiAvKiBfVUFQSV9BU01fUklTQ1ZfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5iZWFhZWZlMTJhODRlXG4tLS0gL2Rldi9udWxsXG4rKysgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgKzEsNyBAQFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovXG4rI2lmbmRlZiBfX0FTTVMzOTBfQVVYVkVDX0hcbisjZGVmaW5lIF9fQVNNUzM5MF9BVVhWRUNfSFxuK1xuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbitcbisjZW5kaWZcbmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5pbmRleCBhMDU2YzQ2MzdmZmNmLi41NGJiZmQ2OGQ3MDliIDEwMDY0NFxuLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbisrKyBiL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtMSw5ICsxLDcgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX19BU01TMzkwX0FVWFZFQ19IXG4tI2RlZmluZSBfX0FTTVMzOTBfQVVYVkVDX0hcbisjaWZuZGVmIF9fQVNNUzM5MF9VQVBJX0FVWFZFQ19IXG4rI2RlZmluZSBfX0FTTVMzOTBfVUFQSV9BVVhWRUNfSFxuIFxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXHRcdDMzXG4gXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDEgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuLVxuICNlbmRpZlxuZGlmZiAtLWdpdCBhL2FyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3NoL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZjA4MzA4MDhlYjE5N1xuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC9zaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuQEAgLTAsMCArMSw3IEBAXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cbisjaWZuZGVmIF9fQVNNX1NIX0FVWFZFQ19IXG4rI2RlZmluZSBfX0FTTV9TSF9BVVhWRUNfSFxuK1xuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCA1IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbitcbisjZW5kaWYgLyogX19BU01fU0hfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDYzZmNjMzllMmM2YWYuLmNmMGYxM2RhOTc3YTAgMTAwNjQ0XG4tLS0gYS9hcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbisrKyBiL2FyY2gvc2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuQEAgLTEsNiArMSw2IEBAXG4gLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi9cbi0jaWZuZGVmIF9fQVNNX1NIX0FVWFZFQ19IXG4tI2RlZmluZSBfX0FTTV9TSF9BVVhWRUNfSFxuKyNpZm5kZWYgX19VQVBJX0FTTV9TSF9BVVhWRUNfSFxuKyNkZWZpbmUgX19VQVBJX0FTTV9TSF9BVVhWRUNfSFxuIFxuIC8qXG4gICogQXJjaGl0ZWN0dXJlLW5ldXRyYWwgQVRfIHZhbHVlcyBpbiAwLTE3LCBsZWF2ZSBzb21lIHJvb21cbkBAIC0zMCw2ICszMCw0IEBAXG4gI2RlZmluZSBBVF9MMURfQ0FDSEVTSEFQRVx0MzVcbiAjZGVmaW5lIEFUX0wyX0NBQ0hFU0hBUEVcdDM2XG4gXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuLVxuLSNlbmRpZiAvKiBfX0FTTV9TSF9BVVhWRUNfSCAqL1xuKyNlbmRpZiAvKiBfX1VBUElfQVNNX1NIX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi41MGMyNDlhOGJkMTcxXG4tLS0gL2Rldi9udWxsXG4rKysgYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICsxLDYgQEBcbisjaWZuZGVmIF9fQVNNU1BBUkNfQVVYVkVDX0hcbisjZGVmaW5lIF9fQVNNU1BBUkNfQVVYVkVDX0hcbitcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDRcbitcbisjZW5kaWYgLyogIShfX0FTTVNQQVJDX0FVWFZFQ19IKSAqL1xuZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuaW5kZXggYWI4NzgwZmI5ZGYxMC4uMGZhYjNiMjkxNDhhMyAxMDA2NDRcbi0tLSBhL2FyY2gvc3BhcmMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuKysrIGIvYXJjaC9zcGFyYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtMSw1ICsxLDUgQEBcbi0jaWZuZGVmIF9fQVNNU1BBUkNfQVVYVkVDX0hcbi0jZGVmaW5lIF9fQVNNU1BBUkNfQVVYVkVDX0hcbisjaWZuZGVmIF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSFxuKyNkZWZpbmUgX19VQVBJX0FTTVNQQVJDX0FVWFZFQ19IXG4gXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcdFx0MzNcbiBcbkBAIC0xMCw2ICsxMCw0IEBAXG4gI2RlZmluZSBBVF9BRElfTkJJVFNcdDQ5XG4gI2RlZmluZSBBVF9BRElfVUVPTkFESVx0NTBcbiBcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDRcbi1cbi0jZW5kaWYgLyogIShfX0FTTVNQQVJDX0FVWFZFQ19IKSAqL1xuKyNlbmRpZiAvKiAhKF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSCkgKi9cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZWQyNmFkMDlmM2UzNFxuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgKzEsMTIgQEBcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xuKyNpZm5kZWYgX0FTTV9YODZfQVVYVkVDX0hcbisjZGVmaW5lIF9BU01fWDg2X0FVWFZFQ19IXG4rXG4rLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTzogKi9cbisjaWYgZGVmaW5lZChDT05GSUdfSUEzMl9FTVVMQVRJT04pIHx8ICFkZWZpbmVkKENPTkZJR19YODZfNjQpXG4rIyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAzXG4rI2Vsc2UgLyogZWxzZSBpdCdzIG5vbi1jb21wYXQgeDg2LTY0ICovXG4rIyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyXG4rI2VuZGlmXG4rXG4rI2VuZGlmIC8qIF9BU01fWDg2X0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IGJkZGU5ZTE4Zjk0ZWUuLjY2NzdjOWFjZTExNzYgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtMSw2ICsxLDYgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX0FTTV9YODZfQVVYVkVDX0hcbi0jZGVmaW5lIF9BU01fWDg2X0FVWFZFQ19IXG4rI2lmbmRlZiBfVUFQSV9BU01fWDg2X0FVWFZFQ19IXG4rI2RlZmluZSBfVUFQSV9BU01fWDg2X0FVWFZFQ19IXG4gLypcbiAgKiBBcmNoaXRlY3R1cmUtbmV1dHJhbCBBVF8gdmFsdWVzIGluIDAtMTcsIGxlYXZlIHNvbWUgcm9vbVxuICAqIGZvciBtb3JlIG9mIHRoZW0sIHN0YXJ0IHRoZSB4ODYtc3BlY2lmaWMgb25lcyBhdCAzMi5cbkBAIC0xMCwxMSArMTAsNCBAQFxuICNlbmRpZlxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXHRcdDMzXG4gXG4tLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTzogKi9cbi0jaWYgZGVmaW5lZChfX0tFUk5FTF9fKSBcdTAwMjZcdTAwMjYgKGRlZmluZWQoQ09ORklHX0lBMzJfRU1VTEFUSU9OKSB8fCAhZGVmaW5lZChDT05GSUdfWDg2XzY0KSlcbi0jIGRlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDNcbi0jZWxzZSAvKiBlbHNlIGl0J3Mgbm9uLWNvbXBhdCB4ODYtNjQgKi9cbi0jIGRlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDJcbi0jZW5kaWZcbi1cbi0jZW5kaWYgLyogX0FTTV9YODZfQVVYVkVDX0ggKi9cbisjZW5kaWYgLyogX1VBUElfQVNNX1g4Nl9BVVhWRUNfSCAqL1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGRcbmluZGV4IDJiYzAwYzY3ZGM1NGIuLjkwNjI2MzU4Zjk0YjQgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2FzbS1nZW5lcmljL0tidWlsZFxuKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGRcbkBAIC02LDYgKzYsNyBAQFxuIFxuIG1hbmRhdG9yeS15ICs9IGF0b21pYy5oXG4gbWFuZGF0b3J5LXkgKz0gYXJjaHJhbmRvbS5oXG4rbWFuZGF0b3J5LXkgKz0gYXV4dmVjLmhcbiBtYW5kYXRvcnkteSArPSBiYXJyaWVyLmhcbiBtYW5kYXRvcnkteSArPSBiaXRvcHMuaFxuIG1hbmRhdG9yeS15ICs9IGJ1Zy5oXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5lNGFiZDJhOGM1ZWQzXG4tLS0gL2Rldi9udWxsXG4rKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL2F1eHZlYy5oXG5AQCAtMCwwICsxLDcgQEBcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xuKyNpZm5kZWYgX19BU01fR0VORVJJQ19BVVhWQUxfSF9fXG4rI2RlZmluZSBfX0FTTV9HRU5FUklDX0FVWFZBTF9IX19cbitcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMFxuK1xuKyNlbmRpZlxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYXV4dmVjLmggYi9pbmNsdWRlL2xpbnV4L2F1eHZlYy5oXG5pbmRleCA4YmNiOWI3MjYyNjI4Li5mN2RkZWExZGJjOGVkIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9hdXh2ZWMuaFxuKysrIGIvaW5jbHVkZS9saW51eC9hdXh2ZWMuaFxuQEAgLTIsOCArMiwxMyBAQFxuICNpZm5kZWYgX0xJTlVYX0FVWFZFQ19IXG4gI2RlZmluZSBfTElOVVhfQVVYVkVDX0hcbiBcbisjaW5jbHVkZSBcdTAwM2N1YXBpL2FzbS9hdXh2ZWMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY3VhcGkvbGludXgvYXV4dmVjLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2Nhc20vYXV4dmVjLmhcdTAwM2VcbiBcbiAjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgMjQgLyogTkVXX0FVWF9FTlQgZW50cmllcyBpbiBhdXhpbGlhcnkgdGFibGUgKi9cbiAgIC8qIG51bWJlciBvZiBcIiNkZWZpbmUgQVRfLipcIiBhYm92ZSwgbWludXMge0FUX05VTEwsIEFUX0lHTk9SRSwgQVRfTk9URUxGfSAqL1xuK1xuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkUgKDIqKEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggKyBBVF9WRUNUT1JfU0laRV9CQVNFICsgMSkpXG4rXG4gI2VuZGlmIC8qIF9MSU5VWF9BVVhWRUNfSCAqL1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCBiL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaFxuaW5kZXggNmQ4MTVmNjQ0MGM5NC4uMDhhMDZiMjYzNzViMiAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaFxuKysrIGIvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oXG5AQCAtMjYsMTIgKzI2LDYgQEBcbiBcbiAjaW5jbHVkZSBcdTAwM2Nhc20vbW11LmhcdTAwM2VcbiBcbi0jaWZuZGVmIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMFxuLSNlbmRpZlxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkUgKDIqKEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggKyBBVF9WRUNUT1JfU0laRV9CQVNFICsgMSkpXG4tXG4tXG4gc3RydWN0IGFkZHJlc3Nfc3BhY2U7XG4gc3RydWN0IGZ1dGV4X3ByaXZhdGVfaGFzaDtcbiBzdHJ1Y3QgbWVtX2Nncm91cDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDEwOjA2OjEyLjc4OTc0NzY0MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ3NjIyOTE1NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIHBhdGNoIGFuZCBkaXNzZWN0IHRoZSBtb2RpZmljYXRpb25zLiBNeSBmaXJzdCBpbXByZXNzaW9uIGlzIHRoYXQgaXQgc2VlbXMgdG8gYmUgcHJpbWFyaWx5IGZvY3VzZWQgb24gcmVmYWN0b3JpbmcgYW5kIHJlb3JnYW5pemluZyBoZWFkZXIgZmlsZXMsIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIHRoZSBhdXhpbGlhcnkgdmVjdG9yIGRlZmluaXRpb25zLiBUaGUgcGF0Y2ggdG91Y2hlcyBvbiBgTUFJTlRBSU5FUlNgLCB3aGljaCBpcyBnZW5lcmFsbHkgYSBnb29kIHNpZ24gb2YgY2xlYW4tdXAgYW5kIGRvY3VtZW50YXRpb24gdXBkYXRlcy5cblxuSSBzZWUgdGhhdCBgYXJjaC8qL2luY2x1ZGUvYXNtL2F1eHZlYy5oYCBhbmQgYGFyY2gvKi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oYCBhcmUgYmVpbmcgbW9kaWZpZWQgYWNyb3NzIG11bHRpcGxlIGFyY2hpdGVjdHVyZXMgKGFscGhhLCBhcm0sIGFybTY0LCBldGMuKS4gTXkgaHlwb3RoZXNpcyBpcyB0aGF0IHRoaXMgaW52b2x2ZXMgbW92aW5nIGBBVF9WRUNUT1JfU0laRV9BUkNIYCBkZWZpbml0aW9ucyBmcm9tIHRoZSB1c2VyLXNwYWNlIEFQSSBoZWFkZXJzIChgdWFwaWApIGludG8gdGhlIGtlcm5lbC1pbnRlcm5hbCBoZWFkZXJzIChgYXNtYCkuIFRoYXQncyBhIGdvb2QgcHJhY3RpY2UsIHByb21vdGluZyBiZXR0ZXIgc2VwYXJhdGlvbiBvZiBjb25jZXJucyBhbmQgcHJldmVudGluZyBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIG1pc3VzZSBieSB1c2VyLXNwYWNlIGNvZGUuXG5cblRoZSBwYXRjaCBhbHNvIGFkZHMgYGF1eHZlYy5oYCB0byB0aGUgbWFuZGF0b3J5IGJ1aWxkIHRhcmdldHMgYW5kIGRlZmluZXMgYSBkZWZhdWx0IGBBVF9WRUNUT1JfU0laRV9BUkNIYCBpbiBgaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGRgIGFuZCBgaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaGAuIFRoaXMgc3VnZ2VzdHMgc29tZSBzb3J0IG9mIGZhbGxiYWNrIG1lY2hhbmlzbSBvciBnZW5lcmFsIGRlZmluaXRpb24gaXMgYmVpbmcgYWRkZWQsIGEgbmljZSB0b3VjaC5cblxuRnVydGhlciwgSSdtIG5vdGljaW5nIGBpbmNsdWRlL2xpbnV4L2F1eHZlYy5oYCBub3cgaW5jbHVkZXMgYFx1MDAzY3VhcGkvYXNtL2F1eHZlYy5oXHUwMDNlYCwgYFx1MDAzY3VhcGkvbGludXgvYXV4dmVjLmhcdTAwM2VgLCBhbmQgYFx1MDAzY2FzbS9hdXh2ZWMuaFx1MDAzZWAgYW5kIGRlZmluZXMgYEFUX1ZFQ1RPUl9TSVpFYC4gVGhpcyBjb25zb2xpZGF0aW9uIHBvaW50cyB0byB0aGUgY2VudHJhbCBsb2NhdGlvbiBmb3IgbWFuYWdpbmcgdGhlc2UgZGVmaW5pdGlvbnMuXG5cbkZpbmFsbHksIHRoZSByZW1vdmFsIG9mIHRoZSBgI2lmbmRlZiBBVF9WRUNUT1JfU0laRV9BUkNIIC4uLiAjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFIC4uLmAgZGVmaW5pdGlvbiBmcm9tIGBpbmNsdWRlL2xpbnV4L21tX3R5cGVzLmhgIHN1Z2dlc3RzIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIGRlZmluaXRpb24gaGFzIGJlZW4gbW92ZWQgdG8gaXRzIHByb3BlciBsb2NhdGlvbi5cblxuTXkgZ3V0IGZlZWxpbmcgaXMgdGhhdCB0aGlzIGlzIHB1cmVseSBhIGhlYWRlciByZW9yZ2FuaXphdGlvbi9jbGVhbnVwIGV4ZXJjaXNlIHRvIHJlZHVjZSBkdXBsaWNhdGlvbiBhbmQgaW1wcm92ZSB0aGUgb3ZlcmFsbCBzdHJ1Y3R1cmUsIGFuZCBhIGdvb2QgdGhpbmcgdG8gZG8uIEhvd2V2ZXIsIEkgbmVlZCB0byBjb25maXJtIHRoaXMgYmVmb3JlIEkgZmVlbCBlbnRpcmVseSBjb21mb3J0YWJsZS5cblxuVG8gYmUgY2VydGFpbiwgSSB3YW50IHRvIHZlcmlmeSBpZiBhbnkgZXhlY3V0YWJsZSBsb2dpYyBpcyBhZmZlY3RlZC4gSSdsbCBuZWVkIHRvIHVzZSBgZ3JlcHBlcmAgb3IgYHJlYWQtZmlsZWAgdG8gY2hlY2sgdGhlIGFjdHVhbCB1c2VzIGFuZCBkZWZpbml0aW9ucyBvZiBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgYW5kIGBBVF9WRUNUT1JfU0laRWAgdGhyb3VnaG91dCB0aGUgY29kZWJhc2UuIFRoaXMgd2lsbCBjb25maXJtIHdoZXRoZXIgdGhpcyBpcyBhIHB1cmVseSBzdHJ1Y3R1cmFsIGNoYW5nZSBvciBpZiB0aGVyZSBhcmUgc3VidGxlIGJlaGF2aW9yYWwgY2hhbmdlcyBJIG5lZWQgdG8gYmUgYXdhcmUgb2YuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkwMDYsIk91dHB1dFRva2VucyI6MTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNjMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQxMDowNjoxNy41NTIwNDE5ODFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU0NzcyMDgzNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJBVF9WRUNUT1JfU0laRVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTQtXFxuYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo1OiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCA0IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG5hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTYtXFxuLS1cXG5hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2VsZi5oPTE0ND1leHRlcm4gaW50IGFscGhhX2wzX2NhY2hlc2hhcGU7XFxuYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9lbGYuaC0xNDUtXFxuYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9lbGYuaDoxNDY6LyogdXBkYXRlIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggaWYgdGhlIG51bWJlciBvZiBORVdfQVVYX0VOVCBlbnRyaWVzIGNoYW5nZXMgKi9cXG5hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2VsZi5oLTE0Ny0jZGVmaW5lIEFSQ0hfRExJTkZPXFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hdXh2ZWMuaC00LVxcbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmg6NTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMiAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hdXh2ZWMuaC02LVxcbi0tXFxuYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9lbGYuaD0xNTI9dHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgZWxmX2ZwcmVnc2V0X3Q7XFxuLS1cXG5hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2VsZi5oLTE2Ni1cXG5hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2VsZi5oOjE2NzovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xcbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZWxmLmgtMTY4LSNkZWZpbmUgQVJDSF9ETElORk9cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaC0xMS1cXG5hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaDoxMjojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmgtMTMtXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9lbGYuaD0zMTk9ZXh0ZXJuIGNvbnN0IGNoYXIgKl9fZWxmX3BsYXRmb3JtO1xcbi0tXFxuYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vZWxmLmgtMzQwLVxcbmFyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2VsZi5oOjM0MTovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xcbmFyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2VsZi5oLTM0Mi0jZGVmaW5lIEFSQ0hfRExJTkZPXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTE0LVxcbmFyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaDoxNTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTE2LVxcbi0tXFxuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2VsZi5oPTQzNj1leHRlcm4gY29uc3QgY2hhciAqX19lbGZfYmFzZV9wbGF0Zm9ybTtcXG4tLVxcbmFyY2gvbWlwcy9pbmNsdWRlL2FzbS9lbGYuaC00NTktXFxuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2VsZi5oOjQ2MDovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xcbmFyY2gvbWlwcy9pbmNsdWRlL2FzbS9lbGYuaC00NjEtI2RlZmluZSBBUkNIX0RMSU5GT1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaC00LVxcbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo1OiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSFxcdDE1IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG5hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi1cXG4tLVxcbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lbGYuaD0xMTc9ZXh0ZXJuIGludCBhcmNoX3NldHVwX2FkZGl0aW9uYWxfcGFnZXMoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcXG4tLVxcbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lbGYuaC0xNTgtICogICBldmVuIGlmIERMSU5GT19BUkNIX0lURU1TIGdvZXMgdG8gemVybyBvciBpcyB1bmRlZmluZWQuXFxuYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2VsZi5oOjE1OTogKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlc1xcbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lbGYuaC0xNjAtICovXFxuLS1cXG5hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oLTEwLS8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG5hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oOjExOiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSFxcdDEwXFxuYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdXh2ZWMuaC0xMi1cXG4tLVxcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9hdXh2ZWMuaC00LVxcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo1OiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG5hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi1cXG4tLVxcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9lbGYuaD0yMTc9ZG8ge1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9lbGYuaC0yMzItXFxuYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2VsZi5oOjIzMzovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9lbGYuaC0yMzQtI2RlZmluZSBBUkNIX0RMSU5GT1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmFyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmgtNC1cXG5hcmNoL3NoL2luY2x1ZGUvYXNtL2F1eHZlYy5oOjU6I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xcbmFyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi1cXG4tLVxcbmFyY2gvc2gvaW5jbHVkZS9hc20vZWxmLmg9MTk0PWV4dGVybiBpbnQgbDFpX2NhY2hlX3NoYXBlLCBsMWRfY2FjaGVfc2hhcGUsIGwyX2NhY2hlX3NoYXBlO1xcbmFyY2gvc2gvaW5jbHVkZS9hc20vZWxmLmgtMTk1LVxcbmFyY2gvc2gvaW5jbHVkZS9hc20vZWxmLmg6MTk2Oi8qIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9BUkNIIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQgZW50cmllcyBjaGFuZ2VzICovXFxuYXJjaC9zaC9pbmNsdWRlL2FzbS9lbGYuaC0xOTctI2RlZmluZSBBUkNIX0RMSU5GT1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmFyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmgtMy1cXG5hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oOjQ6I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXFx0NFxcbmFyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmgtNS1cXG4tLVxcbmFyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oLTYtI2lmIGRlZmluZWQoQ09ORklHX0lBMzJfRU1VTEFUSU9OKSB8fCAhZGVmaW5lZChDT05GSUdfWDg2XzY0KVxcbmFyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oOjc6IyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAzXFxuYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmgtOC0jZWxzZSAvKiBlbHNlIGl0J3Mgbm9uLWNvbXBhdCB4ODYtNjQgKi9cXG5hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo5OiMgZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMlxcbmFyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oLTEwLSNlbmRpZlxcbi0tXFxuYXJjaC94ODYvaW5jbHVkZS9hc20vZWxmLmg9MzEyPWV4dGVybiB1bnNpZ25lZCBsb25nIGdldF9zaWdmcmFtZV9zaXplKHZvaWQpO1xcbi0tXFxuYXJjaC94ODYvaW5jbHVkZS9hc20vZWxmLmgtMzIwLVxcbmFyY2gveDg2L2luY2x1ZGUvYXNtL2VsZi5oOjMyMTovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xcbmFyY2gveDg2L2luY2x1ZGUvYXNtL2VsZi5oLTMyMi1cXG4tLVxcbmZzL2JpbmZtdF9lbGYuYz0xNjU9Y3JlYXRlX2VsZl90YWJsZXMoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSwgY29uc3Qgc3RydWN0IGVsZmhkciAqZXhlYyxcXG4tLVxcbmZzL2JpbmZtdF9lbGYuYy0yMzItXFx0ZWxmX2luZm8gPSAoZWxmX2FkZHJfdCAqKW1tLVxcdTAwM2VzYXZlZF9hdXh2O1xcbmZzL2JpbmZtdF9lbGYuYzoyMzM6XFx0LyogdXBkYXRlIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgaWYgdGhlIG51bWJlciBvZiBORVdfQVVYX0VOVCgpIGNoYW5nZXMgKi9cXG5mcy9iaW5mbXRfZWxmLmMtMjM0LSNkZWZpbmUgTkVXX0FVWF9FTlQoaWQsIHZhbCkgXFxcXFxcbi0tXFxuZnMvYmluZm10X2VsZi5jLTI0My1cXHQgKiBBVVhWLlxcbmZzL2JpbmZtdF9lbGYuYzoyNDQ6XFx0ICogdXBkYXRlIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggaWYgdGhlIG51bWJlciBvZiBORVdfQVVYX0VOVCgpIGluXFxuZnMvYmluZm10X2VsZi5jLTI0NS1cXHQgKiBBUkNIX0RMSU5GTyBjaGFuZ2VzXFxuLS1cXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmM9NTA0PXN0YXRpYyBpbnQgY3JlYXRlX2VsZl9mZHBpY190YWJsZXMoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcXG4tLVxcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy01OTctXFx0bml0ZW1zID0gMSArIERMSU5GT19JVEVNUyArIChrX3BsYXRmb3JtID8gMSA6IDApICtcXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmM6NTk4OlxcdFxcdChrX2Jhc2VfcGxhdGZvcm0gPyAxIDogMCkgKyBBVF9WRUNUT1JfU0laRV9BUkNIO1xcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy01OTktXFxuLS1cXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNjIyLVxcdGVsZl9pbmZvID0gKGVsZl9hZGRyX3QgKiltbS1cXHUwMDNlc2F2ZWRfYXV4djtcXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmM6NjIzOlxcdC8qIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9CQVNFIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQoKSBjaGFuZ2VzICovXFxuZnMvYmluZm10X2VsZl9mZHBpYy5jLTYyNC0jZGVmaW5lIE5FV19BVVhfRU5UKGlkLCB2YWwpIFxcXFxcXG4tLVxcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy02MzMtXFx0ICogQVVYVi5cXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmM6NjM0OlxcdCAqIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9BUkNIIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQoKSBpblxcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy02MzUtXFx0ICogQVJDSF9ETElORk8gY2hhbmdlc1xcbi0tXFxuaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaC00LVxcbmluY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmg6NTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMFxcbmluY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmgtNi1cXG4tLVxcbmluY2x1ZGUvbGludXgvYXV4dmVjLmgtOC1cXG5pbmNsdWRlL2xpbnV4L2F1eHZlYy5oOjk6I2RlZmluZSBBVF9WRUNUT1JfU0laRV9CQVNFIDI0IC8qIE5FV19BVVhfRU5UIGVudHJpZXMgaW4gYXV4aWxpYXJ5IHRhYmxlICovXFxuaW5jbHVkZS9saW51eC9hdXh2ZWMuaC0xMC0gIC8qIG51bWJlciBvZiBcXFwiI2RlZmluZSBBVF8uKlxcXCIgYWJvdmUsIG1pbnVzIHtBVF9OVUxMLCBBVF9JR05PUkUsIEFUX05PVEVMRn0gKi9cXG5pbmNsdWRlL2xpbnV4L2F1eHZlYy5oLTExLVxcbmluY2x1ZGUvbGludXgvYXV4dmVjLmg6MTI6I2RlZmluZSBBVF9WRUNUT1JfU0laRSAoMiooQVRfVkVDVE9SX1NJWkVfQVJDSCArIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgKyAxKSlcXG5pbmNsdWRlL2xpbnV4L2F1eHZlYy5oLTEzLVxcbi0tXFxuaW5jbHVkZS9saW51eC9tbV90eXBlcy5oPTExNjk9c3RydWN0IG1tX3N0cnVjdCB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgtMTMwMS1cXG5pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmg6MTMwMjpcXHRcXHR1bnNpZ25lZCBsb25nIHNhdmVkX2F1eHZbQVRfVkVDVE9SX1NJWkVdOyAvKiBmb3IgL3Byb2MvUElEL2F1eHYgKi9cXG5pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgtMTMwMy1cXG4tLVxcbmtlcm5lbC9zeXMuYz0yMDYwPXN0YXRpYyBpbnQgcHJjdGxfc2V0X21tX21hcChpbnQgb3B0LCBjb25zdCB2b2lkIF9fdXNlciAqYWRkciwgdW5zaWduZWQgbG9uZyBkYXRhX3NpemUpXFxuLS1cXG5rZXJuZWwvc3lzLmMtMjA2Mi1cXHRzdHJ1Y3QgcHJjdGxfbW1fbWFwIHByY3RsX21hcCA9IHsgLmV4ZV9mZCA9ICh1MzIpLTEsIH07XFxua2VybmVsL3N5cy5jOjIwNjM6XFx0dW5zaWduZWQgbG9uZyB1c2VyX2F1eHZbQVRfVkVDVE9SX1NJWkVdO1xcbmtlcm5lbC9zeXMuYy0yMDY0LVxcdHN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gY3VycmVudC1cXHUwMDNlbW07XFxuLS1cXG5rZXJuZWwvc3lzLmMtMjA5OC1cXHRcXHQvKiBMYXN0IGVudHJ5IG11c3QgYmUgQVRfTlVMTCBhcyBzcGVjaWZpY2F0aW9uIHJlcXVpcmVzICovXFxua2VybmVsL3N5cy5jOjIwOTk6XFx0XFx0dXNlcl9hdXh2W0FUX1ZFQ1RPUl9TSVpFIC0gMl0gPSBBVF9OVUxMO1xcbmtlcm5lbC9zeXMuYzoyMTAwOlxcdFxcdHVzZXJfYXV4dltBVF9WRUNUT1JfU0laRSAtIDFdID0gQVRfTlVMTDtcXG5rZXJuZWwvc3lzLmMtMjEwMS1cXHR9XFxuLS1cXG5rZXJuZWwvc3lzLmM9MjE2OD1zdGF0aWMgaW50IHByY3RsX3NldF9hdXh2KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsXFxuLS1cXG5rZXJuZWwvc3lzLmMtMjE3Ni1cXHQgKi9cXG5rZXJuZWwvc3lzLmM6MjE3NzpcXHR1bnNpZ25lZCBsb25nIHVzZXJfYXV4dltBVF9WRUNUT1JfU0laRV0gPSB7fTtcXG5rZXJuZWwvc3lzLmMtMjE3OC1cXG4tLVxcbmtlcm5lbC9zeXMuYy0yMTg1LVxcdC8qIE1ha2Ugc3VyZSB0aGUgbGFzdCBlbnRyeSBpcyBhbHdheXMgQVRfTlVMTCAqL1xcbmtlcm5lbC9zeXMuYzoyMTg2OlxcdHVzZXJfYXV4dltBVF9WRUNUT1JfU0laRSAtIDJdID0gMDtcXG5rZXJuZWwvc3lzLmM6MjE4NzpcXHR1c2VyX2F1eHZbQVRfVkVDVE9SX1NJWkUgLSAxXSA9IDA7XFxua2VybmVsL3N5cy5jLTIxODgtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDEwOjA2OjE5LjA5OTc2OTY3NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjU4NzE1NjM2MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBhdXh2ZWMuaCBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgdGhpcyBwYXRjaCBpcyBwcmltYXJpbHkgYSByZWZhY3RvcmluZyBlZmZvcnQsIGZvY3VzZWQgb24gaGVhZGVyIGZpbGUgb3JnYW5pemF0aW9uIHJlbGF0ZWQgdG8gdGhlIGF1eGlsaWFyeSB2ZWN0b3IgKGBhdXh2YCkuIFRoZSBnb2FsIHNlZW1zIHRvIGJlIHRvIGNsZWFuIHVwIHRoZSBkZWZpbml0aW9ucyBhbmQgbWFrZSB0aGVtIGxlc3MgcHJvbmUgdG8gdW5pbnRlbmRlZCBleHBvc3VyZSB0byB1c2Vyc3BhY2UuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMsIHdoeSBpcyBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgYmVpbmcgZGVmaW5lZCBpbiBgaW5jbHVkZS91YXBpLyovYXV4dmVjLmhgIHVuZGVyIGBfX0tFUk5FTF9fYCBvciBleHBvc2VkIHRvIHVzZXJzcGFjZT8gVGhhdCdzIGEgcmVkIGZsYWcuIEFzIEkgdW5kZXJzdGFuZCBpdCwgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGlzIHJlYWxseSBhbiBpbnRlcm5hbCBrZXJuZWwgbWFjcm8gdXNlZCB0byBzaXplIGBtbS1cdTAwM2VzYXZlZF9hdXh2YCAoYEFUX1ZFQ1RPUl9TSVpFYCkuIEl0IGRvZXNuJ3QgbmVlZCB0byBiZSBpbiB0aGUgVUFQSSwgc28gbW92aW5nIGl0IGlzIGEgc2Vuc2libGUgY2hhbmdlLlxuXG5TbyB0aGUgY29yZSBvZiB0aGUgcGF0Y2ggaW52b2x2ZXM6XG5cbjEuICBDcmVhdGluZyBpbnRlcm5hbCBrZXJuZWwgYFx1MDAzY2FzbS9hdXh2ZWMuaFx1MDAzZWAgaGVhZGVycyAob3IgdXNpbmcgZ2VuZXJpYyBgXHUwMDNjYXNtLWdlbmVyaWMvYXV4dmVjLmhcdTAwM2VgKSDigJMgdGhpcyBzb3VuZHMgbGlrZSBhIGdvb2QgcHJhY3RpY2UgZm9yIGVuY2Fwc3VsYXRpbmcga2VybmVsLXNwZWNpZmljIGRlZmluaXRpb25zLlxuMi4gIE1vdmluZyBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgZnJvbSBgdWFwaS9hc20vYXV4dmVjLmhgIHRvIHRoZXNlIGludGVybmFsIGhlYWRlcnMuIEV4Y2VsbGVudC4gS2VlcGluZyB0aGUga2VybmVsIGludGVybmFscyBzZXBhcmF0ZWQgZnJvbSB0aGUgdXNlcnNwYWNlIGludGVyZmFjZSBpcyBhbHdheXMgcHJlZmVycmVkLlxuMy4gIE1vdmluZyB0aGUgYEFUX1ZFQ1RPUl9TSVpFYCBkZWZpbml0aW9uIGZyb20gYFx1MDAzY2xpbnV4L21tX3R5cGVzLmhcdTAwM2VgIHRvIGBcdTAwM2NsaW51eC9hdXh2ZWMuaFx1MDAzZWAuIFRoYXQgbWFrZXMgbW9yZSBzZW5zZTsgdGhlIGF1eHZlYyBzaXplIGlzIGluaGVyZW50bHkgcmVsYXRlZCB0byB0aGUgYXV4dmVjIGl0c2VsZi5cblxuTm93LCBsZXQncyBkaWcgaW50byB0aGUgZGV0YWlsczogTm8gY2hhbmdlcyB0byBDIGNvZGUsIGxvZ2ljLCBjb250cm9sIGZsb3csIGZ1bmN0aW9ucywgc3RydWN0dXJlcywgc2l6ZXMsIG9yIGFsZ29yaXRobXMgb3RoZXIgdGhhbiB3aGF0IEkndmUgaWRlbnRpZmllZC4gVGhlIHZhbHVlcyBvZiBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgYXBwZWFyIHRvIGJlIG1vc3RseSB1bmNoYW5nZWQuIEkgc2VlIHRoYXQgdGhlIGBhcm1gIGFyY2hpdGVjdHVyZSdzIHN0dWIgZGVmaW5pdGlvbiBmb3IgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGlzIHJlbW92ZWQsIHNvIGl0IHdpbGwgbm93IHVzZSB0aGUgZ2VuZXJpYyAwIHZhbHVlLCB3aGljaCBzZWVtcyBmaW5lIHNpbmNlIGl0IGRpZG4ndCBkZWZpbmUgaXQgYmVmb3JlIGFueXdheS4gVGhlIHZhbHVlcyBmb3IgYWxsIHRoZSBhcmNoaXRlY3R1cmVzIGFyZSB0aGUgc2FtZSBhcyBiZWZvcmUsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIHBhdGNoIGlzbid0IGNhdXNpbmcgYW55IHJlZ3Jlc3Npb25zIGluIHNpemUgb2YgYXV4di5cblxuUmVnYXJkaW5nIGBBVF9WRUNUT1JfU0laRWAgaXRzZWxmOiB0aGUgbG9naWMgaXMgdHdlYWtlZCB0byBpbmNsdWRlIHRoZSBuZXcga2VybmVsIGluY2x1ZGVzLiBUaGUgY2FsY3VsYXRpb24gdXNlcyBgQVRfVkVDVE9SX1NJWkVfQkFTRWAsIHdoaWNoIGlzIG5vdyBkZWZpbmVkLiBJJ2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoYXQgYGxpbnV4L21tX3R5cGVzLmhgIGluY2x1ZGVzIGBsaW51eC9hdXh2ZWMuaGAgdG8gZW5zdXJlIHRoYXQgdGhlcmUgYXJlIG5vIGtub2NrLW9uIGVmZmVjdHMuIEJ1dCwgb3ZlcmFsbCwgdGhpcyBzZWVtcyBsaWtlIGEgc29saWQgYW5kIHdlbGwtY29uc2lkZXJlZCBjbGVhbnVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjk0MSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgwMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQxMDowNjoyNC45NzEzMzUyODhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDYwNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiaW5jbHVkZS9saW51eC9tbV90eXBlcy5oXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cXG4gICAyOlxcdCNpZm5kZWYgX0xJTlVYX01NX1RZUEVTX0hcXG4gICAzOlxcdCNkZWZpbmUgX0xJTlVYX01NX1RZUEVTX0hcXG4gICA0OlxcdFxcbiAgIDU6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L21tX3R5cGVzX3Rhc2suaFxcdTAwM2VcXG4gICA2OlxcdFxcbiAgIDc6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2F1eHZlYy5oXFx1MDAzZVxcbiAgIDg6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tyZWYuaFxcdTAwM2VcXG4gICA5OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9saXN0LmhcXHUwMDNlXFxuICAxMDpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvc3BpbmxvY2suaFxcdTAwM2VcXG4gIDExOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9yYnRyZWUuaFxcdTAwM2VcXG4gIDEyOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9tYXBsZV90cmVlLmhcXHUwMDNlXFxuICAxMzpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvcndzZW0uaFxcdTAwM2VcXG4gIDE0OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9jb21wbGV0aW9uLmhcXHUwMDNlXFxuICAxNTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvY3B1bWFzay5oXFx1MDAzZVxcbiAgMTY6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3Vwcm9iZXMuaFxcdTAwM2VcXG4gIDE3OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9yY3VwZGF0ZS5oXFx1MDAzZVxcbiAgMTg6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BhZ2UtZmxhZ3MtbGF5b3V0LmhcXHUwMDNlXFxuICAxOTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvd29ya3F1ZXVlLmhcXHUwMDNlXFxuICAyMDpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvc2VxbG9jay5oXFx1MDAzZVxcbiAgMjE6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BlcmNwdV9jb3VudGVyLmhcXHUwMDNlXFxuICAyMjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvdHlwZXMuaFxcdTAwM2VcXG4gIDIzOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9mdXRleF90eXBlcy5oXFx1MDAzZVxcbiAgMjQ6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3JzZXFfdHlwZXMuaFxcdTAwM2VcXG4gIDI1OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9iaXRtYXAuaFxcdTAwM2VcXG4gIDI2OlxcdFxcbiAgMjc6XFx0I2luY2x1ZGUgXFx1MDAzY2FzbS9tbXUuaFxcdTAwM2VcXG4gIDI4OlxcdFxcbiAgMjk6XFx0c3RydWN0IGFkZHJlc3Nfc3BhY2U7XFxuICAzMDpcXHRzdHJ1Y3QgZnV0ZXhfcHJpdmF0ZV9oYXNoO1xcbiAgMzE6XFx0c3RydWN0IG1lbV9jZ3JvdXA7XFxuICAzMjpcXHRcXG4gIDMzOlxcdHR5cGVkZWYgc3RydWN0IHtcXG4gIDM0OlxcdFxcdHVuc2lnbmVkIGxvbmcgZjtcXG4gIDM1OlxcdH0gbWVtZGVzY19mbGFnc190O1xcbiAgMzY6XFx0XFxuICAzNzpcXHQvKlxcbiAgMzg6XFx0ICogRWFjaCBwaHlzaWNhbCBwYWdlIGluIHRoZSBzeXN0ZW0gaGFzIGEgc3RydWN0IHBhZ2UgYXNzb2NpYXRlZCB3aXRoXFxuICAzOTpcXHQgKiBpdCB0byBrZWVwIHRyYWNrIG9mIHdoYXRldmVyIGl0IGlzIHdlIGFyZSB1c2luZyB0aGUgcGFnZSBmb3IgYXQgdGhlXFxuICA0MDpcXHQgKiBtb21lbnQuIE5vdGUgdGhhdCB3ZSBoYXZlIG5vIHdheSB0byB0cmFjayB3aGljaCB0YXNrcyBhcmUgdXNpbmdcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMTA6MDY6MjQuOTcxNDQyOTc3WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NDEyNjMxMTg2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIFRoaXMgQ2hhbmdlKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duIHN5c3RlbWF0aWNhbGx5LiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGF0Y2ggd2FycmFudHMgYW55IGZ1cnRoZXIgc2NydXRpbnksIGdpdmVuIG15IGV4cGVydGlzZS4gVGhlIGNvcmUgb2YgdGhlIGV2YWx1YXRpb24gaGluZ2VzIG9uIHRob3NlIG5lZ2F0aXZlIGNyaXRlcmlhLiBUaGUgcGF0Y2ggZGVzY3JpcHRpb24gaXRzZWxmIGxvb2tzIHByb21pc2luZyBidXQgSSBuZWVkIHRvIGVuc3VyZSBpdCBtZWV0cyB0aG9zZSBjcml0ZXJpYS5cblxuRmlyc3QsIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSBhcmUgcGFyYW1vdW50OiAqTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlcyouIFRoZXNlIGFyZSB0aGUgcmVkIGZsYWdzIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNvZGUgcmV2aWV3LiBUaGUgcGF0Y2ggZGVzY3JpcHRpb24gc3RhdGVzIGl0IGNvbnRhaW5zICpNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMuIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcuIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy4gSGVhZGVyIHJlbmFtZXMgLyBtYWNybyByZWxvY2F0aW9uIHdpdGggbm8gZXhlY3V0YWJsZSBjb2RlIGNoYW5nZSAvIG5vIGNoYW5nZSBpbiB2YWx1ZXMuKlxuXG5Ob3csIGxldCdzIHJpZ29yb3VzbHkgY2hlY2sgdGhlIGRldGFpbHMuIERvZXMgdGhlIGNoYW5nZSB0b3VjaCBhbnkgcnVudGltZSBsb2dpYywgYW55IGV4ZWN1dGFibGUgY29kZSwgYW55IGRhdGEgc3RydWN0dXJlIHNpemVzIG9yIGNvbnRyb2wgZmxvdz8gVGhlIGRlc2NyaXB0aW9uIGlzIGNsZWFyIOKAkyAqTm8qLiBUaGUgbWFjcm8gdmFsdWVzIGBBVF9WRUNUT1JfU0laRWAgYW5kIGBBVF9WRUNUT1JfU0laRV9BUkNIYCByZW1haW4gKmNvbXBsZXRlbHkqIHVuY2hhbmdlZC4gTm8gbmV3IGZ1bmN0aW9ucyBhcmUgaW50cm9kdWNlZCwgcmVtb3ZlZCwgb3IgYWx0ZXJlZC4gVGhlIG1vZGlmaWNhdGlvbnMgYXJlIGlzb2xhdGVkIHRvIGhlYWRlciBmaWxlcyAobWFjcm8gcmVsb2NhdGlvbnMpIGFuZCBgTUFJTlRBSU5FUlNgIC8gYEtidWlsZGAgZmlsZXMuIFRoZXJlZm9yZSwgdGhlcmUgaXMgZGVmaW5pdGl2ZWx5ICp6ZXJvKiBleGVjdXRhYmxlIGNvZGUgY2hhbmdlLiBUaGlzIGlzIHRoZSBrZXkuXG5cbkxldCdzIGRvIGEgZmluYWwgcmV2aWV3IG9mIG90aGVyIGZhY3RvcnM6IHRoZSBgV29ydGhGdXp6aW5nYCwgYEZvY3VzU3ltYm9sc2AsIGFuZCBgRW5hYmxlQ29uZmlnc2AgYXJlIGFsbCBuZWdhdGl2ZSB3aGljaCBtZWFucyB0aGVyZSBhcmUgbm8gZnVydGhlciBpbXBsaWNhdGlvbnMuIFRoZSByZWFzb25pbmcgZm9yIHRoZSBjaGFuZ2UgaXMgY29uY2lzZTogVGhpcyBpcyBhIGhlYWRlciBjbGVhbnVwL3JlZmFjdG9yaW5nIHNlcGFyYXRpbmcga2VybmVsLWludGVybmFsIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggZGVmaW5pdGlvbnMgZnJvbSBVQVBJIGhlYWRlcnMsIHdpdGggbm8gY2hhbmdlcyB0byBleGVjdXRhYmxlIGNvZGUsIGxvZ2ljLCBkYXRhIHN0cnVjdHVyZSBsYXlvdXQsIG9yIHJ1bnRpbWUgYmVoYXZpb3IuIEV4Y2VsbGVudC4gVGhpcyBjaGVja3MgYWxsIHRoZSBib3hlcy4gT2theSwgSSdtIGNvbmZpZGVudCBpbiB0aGUgYXNzZXNzbWVudC4gVGltZSB0byBjYWxsIGl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDkxOCwiT3V0cHV0VG9rZW5zIjo5NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDEwOjA2OjI5LjA5Nzc1NjcyOVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA3MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaXMgYSBoZWFkZXIgcmVmYWN0b3JpbmcgdGhhdCBzZXBhcmF0ZXMga2VybmVsLWludGVybmFsIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggbWFjcm9zIGZyb20gVUFQSSBoZWFkZXJzIGludG8gaW50ZXJuYWwgYXNtIGhlYWRlcnMgYW5kIGNlbnRyYWxpemVzIEFUX1ZFQ1RPUl9TSVpFIGluIGluY2x1ZGUvbGludXgvYXV4dmVjLmguIE5vIGV4ZWN1dGFibGUgQyBjb2RlLCBkYXRhIHN0cnVjdHVyZXMsIGNvbnN0YW50cywgYXNzZXJ0aW9ucywgb3IgcnVudGltZSBsb2dpYyBhcmUgYWx0ZXJlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGlzIGEgaGVhZGVyIHJlZmFjdG9yaW5nIHRoYXQgc2VwYXJhdGVzIGtlcm5lbC1pbnRlcm5hbCBBVF9WRUNUT1JfU0laRV9BUkNIIG1hY3JvcyBmcm9tIFVBUEkgaGVhZGVycyBpbnRvIGludGVybmFsIGFzbSBoZWFkZXJzIGFuZCBjZW50cmFsaXplcyBBVF9WRUNUT1JfU0laRSBpbiBpbmNsdWRlL2xpbnV4L2F1eHZlYy5oLiBObyBleGVjdXRhYmxlIEMgY29kZSwgZGF0YSBzdHJ1Y3R1cmVzLCBjb25zdGFudHMsIGFzc2VydGlvbnMsIG9yIHJ1bnRpbWUgbG9naWMgYXJlIGFsdGVyZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQxMDowNjoyOS4wOTc3ODA1OTlaIiwiU2VxIjo5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowrc5v5[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-04 09:15:21 +0000 UTC FinishedAt: 2026-09-04 10:06: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+CgkJCTx0ZD4yMDI2LzA5LzA0IDEwOjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaXMgYSBoZWFkZXIgcmVmYWN0b3JpbmcgdGhhdCBzZXBhcmF0ZXMga2VybmVsLWludGVybmFsIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggbWFjcm9zIGZyb20gVUFQSSBoZWFkZXJzIGludG8gaW50ZXJuYWwgYXNtIGhlYWRlcnMgYW5kIGNlbnRyYWxpemVzIEFUX1ZFQ1RPUl9TSVpFIGluIGluY2x1ZGUvbGludXgvYXV4dmVjLmguIE5vIGV4ZWN1dGFibGUgQyBjb2RlLCBkYXRhIHN0cnVjdHVyZXMsIGNvbnN0YW50cywgYXNzZXJ0aW9ucywgb3IgcnVudGltZSBsb2dpYyBhcmUgYWx0ZXJlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMTA6MDY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBkNTY2ZGYwNWM4MTMxNDY3ZTRlZGIxYWM3ODRmZTdmOTcxOGE1MjE1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBTZXAgNCAxMDowNjowOSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTXG5pbmRleCAzYTE5ZGE3NGQwMGM5Li42OTc0ZjhkYWQxZTlhIDEwMDY0NFxuLS0tIGEvTUFJTlRBSU5FUlNcbiYjNDM7JiM0MzsmIzQzOyBiL01BSU5UQUlORVJTXG5AQCAtOTgwOCwxMyAmIzQzOzk4MDgsMTggQEAgTDpcdGxpbnV4LW1tQGt2YWNrLm9yZ1xuIFM6XHRTdXBwb3J0ZWRcbiBUOlx0Z2l0IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9rZWVzL2xpbnV4LmdpdCBmb3ItbmV4dC9leGVjdmVcbiBGOlx0RG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL0VMRi5yc3RcbiYjNDM7RjpcdGFyY2gvKi9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuJiM0MztGOlx0YXJjaC8qL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbiBGOlx0ZnMvKmJpbmZtdF8qLmNcbiBGOlx0ZnMvS2NvbmZpZy5iaW5mbXRcbiBGOlx0ZnMvZXhlYy5jXG4gRjpcdGZzL3Rlc3RzL2JpbmZtdF8qX2t1bml0LmNcbiBGOlx0ZnMvdGVzdHMvZXhlY19rdW5pdC5jXG4mIzQzO0Y6XHRpbmNsdWRlL2FzbS1nZW5lcmljL2F1eHZlYy5oXG4mIzQzO0Y6XHRpbmNsdWRlL2xpbnV4L2F1eHZlYy5oXG4gRjpcdGluY2x1ZGUvbGludXgvYmluZm10cy5oXG4gRjpcdGluY2x1ZGUvbGludXgvZWxmLmhcbiYjNDM7RjpcdGluY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9hdXh2ZWMuaFxuIEY6XHRpbmNsdWRlL3VhcGkvbGludXgvYXV4dmVjLmhcbiBGOlx0aW5jbHVkZS91YXBpL2xpbnV4L2JpbmZtdHMuaFxuIEY6XHRpbmNsdWRlL3VhcGkvbGludXgvZWxmLmhcbmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmZhOTBlZTRmODk5YzZcbi0tLSAvZGV2L251bGxcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgJiM0MzsxLDcgQEBcbiYjNDM7LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cbiYjNDM7I2lmbmRlZiBfX0FTTV9BTFBIQV9BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9fQVNNX0FMUEhBX0FVWFZFQ19IXG4mIzQzO1xuJiM0MzsjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNCAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4mIzQzO1xuJiM0MzsjZW5kaWYgLyogX19BU01fQUxQSEFfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDU3Y2FlODc4MGQ4MTEuLmQyMWI4N2I2NzMwYTQgMTAwNjQ0XG4tLS0gYS9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYWxwaGEvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuQEAgLTEsNiAmIzQzOzEsNiBAQFxuIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovXG4tI2lmbmRlZiBfX0FTTV9BTFBIQV9BVVhWRUNfSFxuLSNkZWZpbmUgX19BU01fQUxQSEFfQVVYVkVDX0hcbiYjNDM7I2lmbmRlZiBfX1VBUElfQVNNX0FMUEhBX0FVWFZFQ19IXG4mIzQzOyNkZWZpbmUgX19VQVBJX0FTTV9BTFBIQV9BVVhWRUNfSFxuIFxuIC8qIFJlc2VydmUgdGhlc2UgbnVtYmVycyBmb3IgYW55IGZ1dHVyZSB1c2Ugb2YgYSBWRFNPLiAgKi9cbiAjaWYgMFxuQEAgLTIyLDYgJiM0MzsyMiw0IEBAXG4gI2RlZmluZSBBVF9MMl9DQUNIRVNIQVBFXHQzNlxuICNkZWZpbmUgQVRfTDNfQ0FDSEVTSEFQRVx0MzdcbiBcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNCAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4tXG4tI2VuZGlmIC8qIF9fQVNNX0FMUEhBX0FVWFZFQ19IICovXG4mIzQzOyNlbmRpZiAvKiBfX1VBUElfQVNNX0FMUEhBX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCBmYmQzODhjNDYyOTkwLi4wMDAwMDAwMDAwMDAwXG4tLS0gYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuJiM0MzsmIzQzOyYjNDM7IC9kZXYvbnVsbFxuQEAgLTEgJiM0MzswLDAgQEBcbi0jaW5jbHVkZSBcdTAwM2N1YXBpL2FzbS9hdXh2ZWMuaFx1MDAzZVxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZGUyNGVhYWEwNmUyN1xuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuQEAgLTAsMCAmIzQzOzEsNyBAQFxuJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xuJiM0MzsjaWZuZGVmIF9fQVNNX0FVWFZFQ19IXG4mIzQzOyNkZWZpbmUgX19BU01fQVVYVkVDX0hcbiYjNDM7XG4mIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbiYjNDM7XG4mIzQzOyNlbmRpZlxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuaW5kZXggNzQzYzBiODRmZDMwZC4uZmI1MWU5MDY4MTNhOSAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtMTQsMTMgJiM0MzsxNCwxMSBAQFxuICAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSBcdTAwM2NodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvXHUwMDNlLlxuICAqL1xuLSNpZm5kZWYgX19BU01fQVVYVkVDX0hcbi0jZGVmaW5lIF9fQVNNX0FVWFZFQ19IXG4mIzQzOyNpZm5kZWYgX19VQVBJX0FTTV9BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01fQVVYVkVDX0hcbiBcbiAvKiB2RFNPIGxvY2F0aW9uICovXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcdDMzXG4gI2RlZmluZSBBVF9NSU5TSUdTVEtTWlx0NTFcdC8qIHN0YWNrIG5lZWRlZCBmb3Igc2lnbmFsIGRlbGl2ZXJ5ICovXG4gXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDIgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuLVxuICNlbmRpZlxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi4zN2RkNzE3YTNhMjJiXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuQEAgLTAsMCAmIzQzOzEsMTQgQEBcbiYjNDM7LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAmIzQzOyAqL1xuJiM0MzsvKlxuJiM0MzsgKiBBdXRob3I6IEhhbmx1IExpIFx1MDAzY2xpaGFubHVAbG9vbmdzb24uY25cdTAwM2VcbiYjNDM7ICogICAgICAgICBIdWFjYWkgQ2hlbiBcdTAwM2NjaGVuaHVhY2FpQGxvb25nc29uLmNuXHUwMDNlXG4mIzQzOyAqXG4mIzQzOyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIyIExvb25nc29uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZFxuJiM0MzsgKi9cbiYjNDM7XG4mIzQzOyNpZm5kZWYgX19BU01fQVVYVkVDX0hcbiYjNDM7I2RlZmluZSBfX0FTTV9BVVhWRUNfSFxuJiM0MztcbiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDEgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuJiM0MztcbiYjNDM7I2VuZGlmIC8qIF9fQVNNX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDkyMmQ5ZTZiNTA1ODYuLjc5NjkxYzQyMmM3ZTQgMTAwNjQ0XG4tLS0gYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtNiwxMiAmIzQzOzYsMTAgQEBcbiAgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWRcbiAgKi9cbiBcbi0jaWZuZGVmIF9fQVNNX0FVWFZFQ19IXG4tI2RlZmluZSBfX0FTTV9BVVhWRUNfSFxuJiM0MzsjaWZuZGVmIF9fVUFQSV9BU01fQVVYVkVDX0hcbiYjNDM7I2RlZmluZSBfX1VBUElfQVNNX0FVWFZFQ19IXG4gXG4gLyogTG9jYXRpb24gb2YgVkRTTyBpbWFnZS4gKi9cbiAjZGVmaW5lIEFUX1NZU0lORk9fRUhEUlx0XHQzM1xuIFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbi1cbi0jZW5kaWYgLyogX19BU01fQVVYVkVDX0ggKi9cbiYjNDM7I2VuZGlmIC8qIF9fVUFQSV9BU01fQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi43NmM0NDVlNzg5MGZlXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgJiM0MzsxLDE3IEBAXG4mIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wJiM0MzsgKi9cbiYjNDM7LypcbiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDE1IEltYWdpbmF0aW9uIFRlY2hub2xvZ2llc1xuJiM0MzsgKiBBdXRob3I6IEFsZXggU21pdGggXHUwMDNjYWxleC5zbWl0aEBpbWd0ZWMuY29tXHUwMDNlXG4mIzQzOyAqXG4mIzQzOyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4mIzQzOyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZVxuJiM0MzsgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXJcbiYjNDM7ICogb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiYjNDM7ICovXG4mIzQzO1xuJiM0MzsjaWZuZGVmIF9fQVNNX0FVWFZFQ19IXG4mIzQzOyNkZWZpbmUgX19BU01fQVVYVkVDX0hcbiYjNDM7XG4mIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbiYjNDM7XG4mIzQzOyNlbmRpZiAvKiBfX0FTTV9BVVhWRUNfSCAqL1xuZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDYxMmMyYzQxZjYwYjIuLjEzMzFhYzRkOTM1ZTMgMTAwNjQ0XG4tLS0gYS9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbkBAIC05LDEyICYjNDM7OSwxMCBAQFxuICAqIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gICovXG4gXG4tI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxuLSNkZWZpbmUgX19BU01fQVVYVkVDX0hcbiYjNDM7I2lmbmRlZiBfX1VBUElfQVNNX0FVWFZFQ19IXG4mIzQzOyNkZWZpbmUgX19VQVBJX0FTTV9BVVhWRUNfSFxuIFxuIC8qIExvY2F0aW9uIG9mIFZEU08gaW1hZ2UuICovXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcdFx0MzNcbiBcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4tXG4tI2VuZGlmIC8qIF9fQVNNX0FVWFZFQ19IICovXG4mIzQzOyNlbmRpZiAvKiBfX1VBUElfQVNNX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZDZjMTgwZTlhYzJjYlxuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICYjNDM7MSw3IEBAXG4mIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXG4mIzQzOyNpZm5kZWYgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4mIzQzOyNkZWZpbmUgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4mIzQzO1xuJiM0MzsjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDE1IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbiYjNDM7XG4mIzQzOyNlbmRpZlxuZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IGFhN2MxNjIxNTQ1MzguLjlhYjViNmQxNzkyOTYgMTAwNjQ0XG4tLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbkBAIC0xLDYgJiM0MzsxLDYgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4tI2RlZmluZSBfQVNNX1BPV0VSUENfQVVYVkVDX0hcbiYjNDM7I2lmbmRlZiBfVUFQSV9BU01fUE9XRVJQQ19BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9VQVBJX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4gXG4gLypcbiAgKiBXZSBuZWVkIHRvIHB1dCBpbiBzb21lIGV4dHJhIGF1eCB0YWJsZSBlbnRyaWVzIHRvIHRlbGwgZ2xpYmMgd2hhdFxuQEAgLTUwLDYgJiM0Mzs1MCw0IEBAXG4gXG4gI2RlZmluZSBBVF9NSU5TSUdTVEtTWlx0XHQ1MSAgICAgIC8qIHN0YWNrIG5lZWRlZCBmb3Igc2lnbmFsIGRlbGl2ZXJ5ICovXG4gXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXHQxNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4tXG4gI2VuZGlmXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5mYjQyMzM0NDUyNzZhXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICYjNDM7MSwxMyBAQFxuJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovXG4mIzQzOy8qXG4mIzQzOyAqIENvcHlyaWdodCAoQykgMjAxMiBBUk0gTHRkLlxuJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMTUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhXG4mIzQzOyAqL1xuJiM0MztcbiYjNDM7I2lmbmRlZiBfQVNNX1JJU0NWX0FVWFZFQ19IXG4mIzQzOyNkZWZpbmUgX0FTTV9SSVNDVl9BVVhWRUNfSFxuJiM0MztcbiYjNDM7LyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuJiM0MzsjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDEwXG4mIzQzO1xuJiM0MzsjZW5kaWYgLyogX1VBUElfQVNNX1JJU0NWX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5pbmRleCA5NTA1MGViZTlhZDAwLi4wYTcyNWYyYWEyZTczIDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbkBAIC0zMyw4ICYjNDM7MzMsNiBAQFxuICNkZWZpbmUgQVRfTDNfQ0FDSEVTSVpFXHRcdDQ2XG4gI2RlZmluZSBBVF9MM19DQUNIRUdFT01FVFJZXHQ0N1xuIFxuLS8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDEwXG4gI2RlZmluZSBBVF9NSU5TSUdTVEtTWlx0XHQ1MVxuIFxuICNlbmRpZiAvKiBfVUFQSV9BU01fUklTQ1ZfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5iZWFhZWZlMTJhODRlXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgJiM0MzsxLDcgQEBcbiYjNDM7LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi9cbiYjNDM7I2lmbmRlZiBfX0FTTVMzOTBfQVVYVkVDX0hcbiYjNDM7I2RlZmluZSBfX0FTTVMzOTBfQVVYVkVDX0hcbiYjNDM7XG4mIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbiYjNDM7XG4mIzQzOyNlbmRpZlxuZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IGEwNTZjNDYzN2ZmY2YuLjU0YmJmZDY4ZDcwOWIgMTAwNjQ0XG4tLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbkBAIC0xLDkgJiM0MzsxLDcgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX19BU01TMzkwX0FVWFZFQ19IXG4tI2RlZmluZSBfX0FTTVMzOTBfQVVYVkVDX0hcbiYjNDM7I2lmbmRlZiBfX0FTTVMzOTBfVUFQSV9BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9fQVNNUzM5MF9VQVBJX0FVWFZFQ19IXG4gXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcdFx0MzNcbiBcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4tXG4gI2VuZGlmXG5kaWZmIC0tZ2l0IGEvYXJjaC9zaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5mMDgzMDgwOGViMTk3XG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3NoL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICYjNDM7MSw3IEBAXG4mIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXG4mIzQzOyNpZm5kZWYgX19BU01fU0hfQVVYVkVDX0hcbiYjNDM7I2RlZmluZSBfX0FTTV9TSF9BVVhWRUNfSFxuJiM0MztcbiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuJiM0MztcbiYjNDM7I2VuZGlmIC8qIF9fQVNNX1NIX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9zaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9zaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5pbmRleCA2M2ZjYzM5ZTJjNmFmLi5jZjBmMTNkYTk3N2EwIDEwMDY0NFxuLS0tIGEvYXJjaC9zaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbkBAIC0xLDYgJiM0MzsxLDYgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX19BU01fU0hfQVVYVkVDX0hcbi0jZGVmaW5lIF9fQVNNX1NIX0FVWFZFQ19IXG4mIzQzOyNpZm5kZWYgX19VQVBJX0FTTV9TSF9BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01fU0hfQVVYVkVDX0hcbiBcbiAvKlxuICAqIEFyY2hpdGVjdHVyZS1uZXV0cmFsIEFUXyB2YWx1ZXMgaW4gMC0xNywgbGVhdmUgc29tZSByb29tXG5AQCAtMzAsNiAmIzQzOzMwLDQgQEBcbiAjZGVmaW5lIEFUX0wxRF9DQUNIRVNIQVBFXHQzNVxuICNkZWZpbmUgQVRfTDJfQ0FDSEVTSEFQRVx0MzZcbiBcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4tXG4tI2VuZGlmIC8qIF9fQVNNX1NIX0FVWFZFQ19IICovXG4mIzQzOyNlbmRpZiAvKiBfX1VBUElfQVNNX1NIX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi41MGMyNDlhOGJkMTcxXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICYjNDM7MSw2IEBAXG4mIzQzOyNpZm5kZWYgX19BU01TUEFSQ19BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9fQVNNU1BBUkNfQVVYVkVDX0hcbiYjNDM7XG4mIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSFx0NFxuJiM0MztcbiYjNDM7I2VuZGlmIC8qICEoX19BU01TUEFSQ19BVVhWRUNfSCkgKi9cbmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL3NwYXJjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IGFiODc4MGZiOWRmMTAuLjBmYWIzYjI5MTQ4YTMgMTAwNjQ0XG4tLS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvc3BhcmMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuQEAgLTEsNSAmIzQzOzEsNSBAQFxuLSNpZm5kZWYgX19BU01TUEFSQ19BVVhWRUNfSFxuLSNkZWZpbmUgX19BU01TUEFSQ19BVVhWRUNfSFxuJiM0MzsjaWZuZGVmIF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSFxuIFxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXHRcdDMzXG4gXG5AQCAtMTAsNiAmIzQzOzEwLDQgQEBcbiAjZGVmaW5lIEFUX0FESV9OQklUU1x0NDlcbiAjZGVmaW5lIEFUX0FESV9VRU9OQURJXHQ1MFxuIFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSFx0NFxuLVxuLSNlbmRpZiAvKiAhKF9fQVNNU1BBUkNfQVVYVkVDX0gpICovXG4mIzQzOyNlbmRpZiAvKiAhKF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSCkgKi9cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZWQyNmFkMDlmM2UzNFxuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgJiM0MzsxLDEyIEBAXG4mIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXG4mIzQzOyNpZm5kZWYgX0FTTV9YODZfQVVYVkVDX0hcbiYjNDM7I2RlZmluZSBfQVNNX1g4Nl9BVVhWRUNfSFxuJiM0MztcbiYjNDM7LyogZW50cmllcyBpbiBBUkNIX0RMSU5GTzogKi9cbiYjNDM7I2lmIGRlZmluZWQoQ09ORklHX0lBMzJfRU1VTEFUSU9OKSB8fCAhZGVmaW5lZChDT05GSUdfWDg2XzY0KVxuJiM0MzsjIGRlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDNcbiYjNDM7I2Vsc2UgLyogZWxzZSBpdCYjMzk7cyBub24tY29tcGF0IHg4Ni02NCAqL1xuJiM0MzsjIGRlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDJcbiYjNDM7I2VuZGlmXG4mIzQzO1xuJiM0MzsjZW5kaWYgLyogX0FTTV9YODZfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuaW5kZXggYmRkZTllMThmOTRlZS4uNjY3N2M5YWNlMTE3NiAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbkBAIC0xLDYgJiM0MzsxLDYgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX0FTTV9YODZfQVVYVkVDX0hcbi0jZGVmaW5lIF9BU01fWDg2X0FVWFZFQ19IXG4mIzQzOyNpZm5kZWYgX1VBUElfQVNNX1g4Nl9BVVhWRUNfSFxuJiM0MzsjZGVmaW5lIF9VQVBJX0FTTV9YODZfQVVYVkVDX0hcbiAvKlxuICAqIEFyY2hpdGVjdHVyZS1uZXV0cmFsIEFUXyB2YWx1ZXMgaW4gMC0xNywgbGVhdmUgc29tZSByb29tXG4gICogZm9yIG1vcmUgb2YgdGhlbSwgc3RhcnQgdGhlIHg4Ni1zcGVjaWZpYyBvbmVzIGF0IDMyLlxuQEAgLTEwLDExICYjNDM7MTAsNCBAQFxuICNlbmRpZlxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXHRcdDMzXG4gXG4tLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTzogKi9cbi0jaWYgZGVmaW5lZChfX0tFUk5FTF9fKSBcdTAwMjZcdTAwMjYgKGRlZmluZWQoQ09ORklHX0lBMzJfRU1VTEFUSU9OKSB8fCAhZGVmaW5lZChDT05GSUdfWDg2XzY0KSlcbi0jIGRlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDNcbi0jZWxzZSAvKiBlbHNlIGl0JiMzOTtzIG5vbi1jb21wYXQgeDg2LTY0ICovXG4tIyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyXG4tI2VuZGlmXG4tXG4tI2VuZGlmIC8qIF9BU01fWDg2X0FVWFZFQ19IICovXG4mIzQzOyNlbmRpZiAvKiBfVUFQSV9BU01fWDg2X0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQgYi9pbmNsdWRlL2FzbS1nZW5lcmljL0tidWlsZFxuaW5kZXggMmJjMDBjNjdkYzU0Yi4uOTA2MjYzNThmOTRiNCAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2FzbS1nZW5lcmljL0tidWlsZFxuQEAgLTYsNiAmIzQzOzYsNyBAQFxuIFxuIG1hbmRhdG9yeS15ICYjNDM7PSBhdG9taWMuaFxuIG1hbmRhdG9yeS15ICYjNDM7PSBhcmNocmFuZG9tLmhcbiYjNDM7bWFuZGF0b3J5LXkgJiM0Mzs9IGF1eHZlYy5oXG4gbWFuZGF0b3J5LXkgJiM0Mzs9IGJhcnJpZXIuaFxuIG1hbmRhdG9yeS15ICYjNDM7PSBiaXRvcHMuaFxuIG1hbmRhdG9yeS15ICYjNDM7PSBidWcuaFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZTRhYmQyYThjNWVkM1xuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaFxuQEAgLTAsMCAmIzQzOzEsNyBAQFxuJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xuJiM0MzsjaWZuZGVmIF9fQVNNX0dFTkVSSUNfQVVYVkFMX0hfX1xuJiM0MzsjZGVmaW5lIF9fQVNNX0dFTkVSSUNfQVVYVkFMX0hfX1xuJiM0MztcbiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDBcbiYjNDM7XG4mIzQzOyNlbmRpZlxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYXV4dmVjLmggYi9pbmNsdWRlL2xpbnV4L2F1eHZlYy5oXG5pbmRleCA4YmNiOWI3MjYyNjI4Li5mN2RkZWExZGJjOGVkIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9hdXh2ZWMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9hdXh2ZWMuaFxuQEAgLTIsOCAmIzQzOzIsMTMgQEBcbiAjaWZuZGVmIF9MSU5VWF9BVVhWRUNfSFxuICNkZWZpbmUgX0xJTlVYX0FVWFZFQ19IXG4gXG4mIzQzOyNpbmNsdWRlIFx1MDAzY3VhcGkvYXNtL2F1eHZlYy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjdWFwaS9saW51eC9hdXh2ZWMuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2Nhc20vYXV4dmVjLmhcdTAwM2VcbiBcbiAjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgMjQgLyogTkVXX0FVWF9FTlQgZW50cmllcyBpbiBhdXhpbGlhcnkgdGFibGUgKi9cbiAgIC8qIG51bWJlciBvZiBcJiMzNDsjZGVmaW5lIEFUXy4qXCYjMzQ7IGFib3ZlLCBtaW51cyB7QVRfTlVMTCwgQVRfSUdOT1JFLCBBVF9OT1RFTEZ9ICovXG4mIzQzO1xuJiM0MzsjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFICgyKihBVF9WRUNUT1JfU0laRV9BUkNIICYjNDM7IEFUX1ZFQ1RPUl9TSVpFX0JBU0UgJiM0MzsgMSkpXG4mIzQzO1xuICNlbmRpZiAvKiBfTElOVVhfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmggYi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmhcbmluZGV4IDZkODE1ZjY0NDBjOTQuLjA4YTA2YjI2Mzc1YjIgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaFxuQEAgLTI2LDEyICYjNDM7MjYsNiBAQFxuIFxuICNpbmNsdWRlIFx1MDAzY2FzbS9tbXUuaFx1MDAzZVxuIFxuLSNpZm5kZWYgQVRfVkVDVE9SX1NJWkVfQVJDSFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAwXG4tI2VuZGlmXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRSAoMiooQVRfVkVDVE9SX1NJWkVfQVJDSCAmIzQzOyBBVF9WRUNUT1JfU0laRV9CQVNFICYjNDM7IDEpKVxuLVxuLVxuIHN0cnVjdCBhZGRyZXNzX3NwYWNlO1xuIHN0cnVjdCBmdXRleF9wcml2YXRlX2hhc2g7XG4gc3RydWN0IG1lbV9jZ3JvdXA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMTA6MDY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaXMgYSBoZWFkZXIgcmVmYWN0b3JpbmcgdGhhdCBzZXBhcmF0ZXMga2VybmVsLWludGVybmFsIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggbWFjcm9zIGZyb20gVUFQSSBoZWFkZXJzIGludG8gaW50ZXJuYWwgYXNtIGhlYWRlcnMgYW5kIGNlbnRyYWxpemVzIEFUX1ZFQ1RPUl9TSVpFIGluIGluY2x1ZGUvbGludXgvYXV4dmVjLmguIE5vIGV4ZWN1dGFibGUgQyBjb2RlLCBkYXRhIHN0cnVjdHVyZXMsIGNvbnN0YW50cywgYXNzZXJ0aW9ucywgb3IgcnVudGltZSBsb2dpYyBhcmUgYWx0ZXJlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkNTY2ZGYwNWM4MTMxNDY3ZTRlZGIxYWM3ODRmZTdmOTcxOGE1MjE1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBTZXAgNCAxMDowNjowOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggM2ExOWRhNzRkMDBjOS4uNjk3NGY4ZGFkMWU5YSAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKJiM0MzsmIzQzOyYjNDM7IGIvTUFJTlRBSU5FUlMKQEAgLTk4MDgsMTMgJiM0Mzs5ODA4LDE4IEBAIEw6CWxpbnV4LW1tQGt2YWNrLm9yZwogUzoJU3VwcG9ydGVkCiBUOglnaXQgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2tlZXMvbGludXguZ2l0IGZvci1uZXh0L2V4ZWN2ZQogRjoJRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL0VMRi5yc3QKJiM0MztGOglhcmNoLyovaW5jbHVkZS9hc20vYXV4dmVjLmgKJiM0MztGOglhcmNoLyovaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaAogRjoJZnMvKmJpbmZtdF8qLmMKIEY6CWZzL0tjb25maWcuYmluZm10CiBGOglmcy9leGVjLmMKIEY6CWZzL3Rlc3RzL2JpbmZtdF8qX2t1bml0LmMKIEY6CWZzL3Rlc3RzL2V4ZWNfa3VuaXQuYwomIzQzO0Y6CWluY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmgKJiM0MztGOglpbmNsdWRlL2xpbnV4L2F1eHZlYy5oCiBGOglpbmNsdWRlL2xpbnV4L2JpbmZtdHMuaAogRjoJaW5jbHVkZS9saW51eC9lbGYuaAomIzQzO0Y6CWluY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9hdXh2ZWMuaAogRjoJaW5jbHVkZS91YXBpL2xpbnV4L2F1eHZlYy5oCiBGOglpbmNsdWRlL3VhcGkvbGludXgvYmluZm10cy5oCiBGOglpbmNsdWRlL3VhcGkvbGludXgvZWxmLmgKZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmZhOTBlZTRmODk5YzYKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oCkBAIC0wLDAgJiM0MzsxLDcgQEAKJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwomIzQzOyNpZm5kZWYgX19BU01fQUxQSEFfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fQVNNX0FMUEhBX0FVWFZFQ19ICiYjNDM7CiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDQgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqLwomIzQzOwomIzQzOyNlbmRpZiAvKiBfX0FTTV9BTFBIQV9BVVhWRUNfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9hbHBoYS9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCmluZGV4IDU3Y2FlODc4MGQ4MTEuLmQyMWI4N2I2NzMwYTQgMTAwNjQ0Ci0tLSBhL2FyY2gvYWxwaGEvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKQEAgLTEsNiAmIzQzOzEsNiBAQAogLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi8KLSNpZm5kZWYgX19BU01fQUxQSEFfQVVYVkVDX0gKLSNkZWZpbmUgX19BU01fQUxQSEFfQVVYVkVDX0gKJiM0MzsjaWZuZGVmIF9fVUFQSV9BU01fQUxQSEFfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01fQUxQSEFfQVVYVkVDX0gKIAogLyogUmVzZXJ2ZSB0aGVzZSBudW1iZXJzIGZvciBhbnkgZnV0dXJlIHVzZSBvZiBhIFZEU08uICAqLwogI2lmIDAKQEAgLTIyLDYgJiM0MzsyMiw0IEBACiAjZGVmaW5lIEFUX0wyX0NBQ0hFU0hBUEUJMzYKICNkZWZpbmUgQVRfTDNfQ0FDSEVTSEFQRQkzNwogCi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNCAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovCi0KLSNlbmRpZiAvKiBfX0FTTV9BTFBIQV9BVVhWRUNfSCAqLwomIzQzOyNlbmRpZiAvKiBfX1VBUElfQVNNX0FMUEhBX0FVWFZFQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2F1eHZlYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYmQzODhjNDYyOTkwLi4wMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2F1eHZlYy5oCiYjNDM7JiM0MzsmIzQzOyAvZGV2L251bGwKQEAgLTEgJiM0MzswLDAgQEAKLSNpbmNsdWRlICZsdDt1YXBpL2FzbS9hdXh2ZWMuaCZndDsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2F1eHZlYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmRlMjRlYWFhMDZlMjcKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2F1eHZlYy5oCkBAIC0wLDAgJiM0MzsxLDcgQEAKJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwomIzQzOyNpZm5kZWYgX19BU01fQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fQVNNX0FVWFZFQ19ICiYjNDM7CiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDIgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqLwomIzQzOwomIzQzOyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCmluZGV4IDc0M2MwYjg0ZmQzMGQuLmZiNTFlOTA2ODEzYTkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKQEAgLTE0LDEzICYjNDM7MTQsMTEgQEAKICAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlICZsdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvJmd0Oy4KICAqLwotI2lmbmRlZiBfX0FTTV9BVVhWRUNfSAotI2RlZmluZSBfX0FTTV9BVVhWRUNfSAomIzQzOyNpZm5kZWYgX19VQVBJX0FTTV9BVVhWRUNfSAomIzQzOyNkZWZpbmUgX19VQVBJX0FTTV9BVVhWRUNfSAogCiAvKiB2RFNPIGxvY2F0aW9uICovCiAjZGVmaW5lIEFUX1NZU0lORk9fRUhEUgkzMwogI2RlZmluZSBBVF9NSU5TSUdTVEtTWgk1MQkvKiBzdGFjayBuZWVkZWQgZm9yIHNpZ25hbCBkZWxpdmVyeSAqLwogCi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMiAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovCi0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4zN2RkNzE3YTNhMjJiCi0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmgKQEAgLTAsMCAmIzQzOzEsMTQgQEAKJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCYjNDM7ICovCiYjNDM7LyoKJiM0MzsgKiBBdXRob3I6IEhhbmx1IExpICZsdDtsaWhhbmx1QGxvb25nc29uLmNuJmd0OwomIzQzOyAqICAgICAgICAgSHVhY2FpIENoZW4gJmx0O2NoZW5odWFjYWlAbG9vbmdzb24uY24mZ3Q7CiYjNDM7ICoKJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWQKJiM0MzsgKi8KJiM0MzsKJiM0MzsjaWZuZGVmIF9fQVNNX0FVWFZFQ19ICiYjNDM7I2RlZmluZSBfX0FTTV9BVVhWRUNfSAomIzQzOwomIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi8KJiM0MzsKJiM0MzsjZW5kaWYgLyogX19BU01fQVVYVkVDX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCmluZGV4IDkyMmQ5ZTZiNTA1ODYuLjc5NjkxYzQyMmM3ZTQgMTAwNjQ0Ci0tLSBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaApAQCAtNiwxMiAmIzQzOzYsMTAgQEAKICAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIyIExvb25nc29uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZAogICovCiAKLSNpZm5kZWYgX19BU01fQVVYVkVDX0gKLSNkZWZpbmUgX19BU01fQVVYVkVDX0gKJiM0MzsjaWZuZGVmIF9fVUFQSV9BU01fQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01fQVVYVkVDX0gKIAogLyogTG9jYXRpb24gb2YgVkRTTyBpbWFnZS4gKi8KICNkZWZpbmUgQVRfU1lTSU5GT19FSERSCQkzMwogCi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovCi0KLSNlbmRpZiAvKiBfX0FTTV9BVVhWRUNfSCAqLwomIzQzOyNlbmRpZiAvKiBfX1VBUElfQVNNX0FVWFZFQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNzZjNDQ1ZTc4OTBmZQotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaApAQCAtMCwwICYjNDM7MSwxNyBAQAomIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wJiM0MzsgKi8KJiM0MzsvKgomIzQzOyAqIENvcHlyaWdodCAoQykgMjAxNSBJbWFnaW5hdGlvbiBUZWNobm9sb2dpZXMKJiM0MzsgKiBBdXRob3I6IEFsZXggU21pdGggJmx0O2FsZXguc21pdGhAaW1ndGVjLmNvbSZndDsKJiM0MzsgKgomIzQzOyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CiYjNDM7ICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiYjNDM7ICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiYjNDM7ICogb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KJiM0MzsgKi8KJiM0MzsKJiM0MzsjaWZuZGVmIF9fQVNNX0FVWFZFQ19ICiYjNDM7I2RlZmluZSBfX0FTTV9BVVhWRUNfSAomIzQzOwomIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi8KJiM0MzsKJiM0MzsjZW5kaWYgLyogX19BU01fQVVYVkVDX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKaW5kZXggNjEyYzJjNDFmNjBiMi4uMTMzMWFjNGQ5MzVlMyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKQEAgLTksMTIgJiM0Mzs5LDEwIEBACiAgKiBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICovCiAKLSNpZm5kZWYgX19BU01fQVVYVkVDX0gKLSNkZWZpbmUgX19BU01fQVVYVkVDX0gKJiM0MzsjaWZuZGVmIF9fVUFQSV9BU01fQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01fQVVYVkVDX0gKIAogLyogTG9jYXRpb24gb2YgVkRTTyBpbWFnZS4gKi8KICNkZWZpbmUgQVRfU1lTSU5GT19FSERSCQkzMwogCi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovCi0KLSNlbmRpZiAvKiBfX0FTTV9BVVhWRUNfSCAqLwomIzQzOyNlbmRpZiAvKiBfX1VBUElfQVNNX0FVWFZFQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXV4dmVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZDZjMTgwZTlhYzJjYgotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaApAQCAtMCwwICYjNDM7MSw3IEBACiYjNDM7LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KJiM0MzsjaWZuZGVmIF9BU01fUE9XRVJQQ19BVVhWRUNfSAomIzQzOyNkZWZpbmUgX0FTTV9QT1dFUlBDX0FVWFZFQ19ICiYjNDM7CiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNICTE1IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi8KJiM0MzsKJiM0MzsjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKaW5kZXggYWE3YzE2MjE1NDUzOC4uOWFiNWI2ZDE3OTI5NiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKQEAgLTEsNiAmIzQzOzEsNiBAQAogLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi8KLSNpZm5kZWYgX0FTTV9QT1dFUlBDX0FVWFZFQ19ICi0jZGVmaW5lIF9BU01fUE9XRVJQQ19BVVhWRUNfSAomIzQzOyNpZm5kZWYgX1VBUElfQVNNX1BPV0VSUENfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9VQVBJX0FTTV9QT1dFUlBDX0FVWFZFQ19ICiAKIC8qCiAgKiBXZSBuZWVkIHRvIHB1dCBpbiBzb21lIGV4dHJhIGF1eCB0YWJsZSBlbnRyaWVzIHRvIHRlbGwgZ2xpYmMgd2hhdApAQCAtNTAsNiAmIzQzOzUwLDQgQEAKIAogI2RlZmluZSBBVF9NSU5TSUdTVEtTWgkJNTEgICAgICAvKiBzdGFjayBuZWVkZWQgZm9yIHNpZ25hbCBkZWxpdmVyeSAqLwogCi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0gJMTUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqLwotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmZiNDIzMzQ0NTI3NmEKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oCkBAIC0wLDAgJiM0MzsxLDEzIEBACiYjNDM7LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLwomIzQzOy8qCiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDEyIEFSTSBMdGQuCiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDE1IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQomIzQzOyAqLwomIzQzOwomIzQzOyNpZm5kZWYgX0FTTV9SSVNDVl9BVVhWRUNfSAomIzQzOyNkZWZpbmUgX0FTTV9SSVNDVl9BVVhWRUNfSAomIzQzOwomIzQzOy8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi8KJiM0MzsjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0gJMTAKJiM0MzsKJiM0MzsjZW5kaWYgLyogX1VBUElfQVNNX1JJU0NWX0FVWFZFQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKaW5kZXggOTUwNTBlYmU5YWQwMC4uMGE3MjVmMmFhMmU3MyAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaApAQCAtMzMsOCAmIzQzOzMzLDYgQEAKICNkZWZpbmUgQVRfTDNfQ0FDSEVTSVpFCQk0NgogI2RlZmluZSBBVF9MM19DQUNIRUdFT01FVFJZCTQ3CiAKLS8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi8KLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSAkxMAogI2RlZmluZSBBVF9NSU5TSUdTVEtTWgkJNTEKIAogI2VuZGlmIC8qIF9VQVBJX0FTTV9SSVNDVl9BVVhWRUNfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2F1eHZlYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmJlYWFlZmUxMmE4NGUKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmgKQEAgLTAsMCAmIzQzOzEsNyBAQAomIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovCiYjNDM7I2lmbmRlZiBfX0FTTVMzOTBfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fQVNNUzM5MF9BVVhWRUNfSAomIzQzOwomIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi8KJiM0MzsKJiM0MzsjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKaW5kZXggYTA1NmM0NjM3ZmZjZi4uNTRiYmZkNjhkNzA5YiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKQEAgLTEsOSAmIzQzOzEsNyBAQAogLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi8KLSNpZm5kZWYgX19BU01TMzkwX0FVWFZFQ19ICi0jZGVmaW5lIF9fQVNNUzM5MF9BVVhWRUNfSAomIzQzOyNpZm5kZWYgX19BU01TMzkwX1VBUElfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fQVNNUzM5MF9VQVBJX0FVWFZFQ19ICiAKICNkZWZpbmUgQVRfU1lTSU5GT19FSERSCQkzMwogCi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovCi0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZjA4MzA4MDhlYjE5NwotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmgKQEAgLTAsMCAmIzQzOzEsNyBAQAomIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCiYjNDM7I2lmbmRlZiBfX0FTTV9TSF9BVVhWRUNfSAomIzQzOyNkZWZpbmUgX19BU01fU0hfQVVYVkVDX0gKJiM0MzsKJiM0MzsjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovCiYjNDM7CiYjNDM7I2VuZGlmIC8qIF9fQVNNX1NIX0FVWFZFQ19IICovCmRpZmYgLS1naXQgYS9hcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKaW5kZXggNjNmY2MzOWUyYzZhZi4uY2YwZjEzZGE5NzdhMCAxMDA2NDQKLS0tIGEvYXJjaC9zaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvc2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaApAQCAtMSw2ICYjNDM7MSw2IEBACiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqLwotI2lmbmRlZiBfX0FTTV9TSF9BVVhWRUNfSAotI2RlZmluZSBfX0FTTV9TSF9BVVhWRUNfSAomIzQzOyNpZm5kZWYgX19VQVBJX0FTTV9TSF9BVVhWRUNfSAomIzQzOyNkZWZpbmUgX19VQVBJX0FTTV9TSF9BVVhWRUNfSAogCiAvKgogICogQXJjaGl0ZWN0dXJlLW5ldXRyYWwgQVRfIHZhbHVlcyBpbiAwLTE3LCBsZWF2ZSBzb21lIHJvb20KQEAgLTMwLDYgJiM0MzszMCw0IEBACiAjZGVmaW5lIEFUX0wxRF9DQUNIRVNIQVBFCTM1CiAjZGVmaW5lIEFUX0wyX0NBQ0hFU0hBUEUJMzYKIAotI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqLwotCi0jZW5kaWYgLyogX19BU01fU0hfQVVYVkVDX0ggKi8KJiM0MzsjZW5kaWYgLyogX19VQVBJX0FTTV9TSF9BVVhWRUNfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNTBjMjQ5YThiZDE3MQotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmgKQEAgLTAsMCAmIzQzOzEsNiBAQAomIzQzOyNpZm5kZWYgX19BU01TUEFSQ19BVVhWRUNfSAomIzQzOyNkZWZpbmUgX19BU01TUEFSQ19BVVhWRUNfSAomIzQzOwomIzQzOyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSAk0CiYjNDM7CiYjNDM7I2VuZGlmIC8qICEoX19BU01TUEFSQ19BVVhWRUNfSCkgKi8KZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaAppbmRleCBhYjg3ODBmYjlkZjEwLi4wZmFiM2IyOTE0OGEzIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9zcGFyYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCkBAIC0xLDUgJiM0MzsxLDUgQEAKLSNpZm5kZWYgX19BU01TUEFSQ19BVVhWRUNfSAotI2RlZmluZSBfX0FTTVNQQVJDX0FVWFZFQ19ICiYjNDM7I2lmbmRlZiBfX1VBUElfQVNNU1BBUkNfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSAogCiAjZGVmaW5lIEFUX1NZU0lORk9fRUhEUgkJMzMKIApAQCAtMTAsNiAmIzQzOzEwLDQgQEAKICNkZWZpbmUgQVRfQURJX05CSVRTCTQ5CiAjZGVmaW5lIEFUX0FESV9VRU9OQURJCTUwCiAKLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSAk0Ci0KLSNlbmRpZiAvKiAhKF9fQVNNU1BBUkNfQVVYVkVDX0gpICovCiYjNDM7I2VuZGlmIC8qICEoX19VQVBJX0FTTVNQQVJDX0FVWFZFQ19IKSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lZDI2YWQwOWYzZTM0Ci0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmgKQEAgLTAsMCAmIzQzOzEsMTIgQEAKJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwomIzQzOyNpZm5kZWYgX0FTTV9YODZfQVVYVkVDX0gKJiM0MzsjZGVmaW5lIF9BU01fWDg2X0FVWFZFQ19ICiYjNDM7CiYjNDM7LyogZW50cmllcyBpbiBBUkNIX0RMSU5GTzogKi8KJiM0MzsjaWYgZGVmaW5lZChDT05GSUdfSUEzMl9FTVVMQVRJT04pIHx8ICFkZWZpbmVkKENPTkZJR19YODZfNjQpCiYjNDM7IyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAzCiYjNDM7I2Vsc2UgLyogZWxzZSBpdCYjMzk7cyBub24tY29tcGF0IHg4Ni02NCAqLwomIzQzOyMgZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMgomIzQzOyNlbmRpZgomIzQzOwomIzQzOyNlbmRpZiAvKiBfQVNNX1g4Nl9BVVhWRUNfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgKaW5kZXggYmRkZTllMThmOTRlZS4uNjY3N2M5YWNlMTE3NiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oCkBAIC0xLDYgJiM0MzsxLDYgQEAKIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovCi0jaWZuZGVmIF9BU01fWDg2X0FVWFZFQ19ICi0jZGVmaW5lIF9BU01fWDg2X0FVWFZFQ19ICiYjNDM7I2lmbmRlZiBfVUFQSV9BU01fWDg2X0FVWFZFQ19ICiYjNDM7I2RlZmluZSBfVUFQSV9BU01fWDg2X0FVWFZFQ19ICiAvKgogICogQXJjaGl0ZWN0dXJlLW5ldXRyYWwgQVRfIHZhbHVlcyBpbiAwLTE3LCBsZWF2ZSBzb21lIHJvb20KICAqIGZvciBtb3JlIG9mIHRoZW0sIHN0YXJ0IHRoZSB4ODYtc3BlY2lmaWMgb25lcyBhdCAzMi4KQEAgLTEwLDExICYjNDM7MTAsNCBAQAogI2VuZGlmCiAjZGVmaW5lIEFUX1NZU0lORk9fRUhEUgkJMzMKIAotLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTzogKi8KLSNpZiBkZWZpbmVkKF9fS0VSTkVMX18pICZhbXA7JmFtcDsgKGRlZmluZWQoQ09ORklHX0lBMzJfRU1VTEFUSU9OKSB8fCAhZGVmaW5lZChDT05GSUdfWDg2XzY0KSkKLSMgZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMwotI2Vsc2UgLyogZWxzZSBpdCYjMzk7cyBub24tY29tcGF0IHg4Ni02NCAqLwotIyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyCi0jZW5kaWYKLQotI2VuZGlmIC8qIF9BU01fWDg2X0FVWFZFQ19IICovCiYjNDM7I2VuZGlmIC8qIF9VQVBJX0FTTV9YODZfQVVYVkVDX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQKaW5kZXggMmJjMDBjNjdkYzU0Yi4uOTA2MjYzNThmOTRiNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQKQEAgLTYsNiAmIzQzOzYsNyBAQAogCiBtYW5kYXRvcnkteSAmIzQzOz0gYXRvbWljLmgKIG1hbmRhdG9yeS15ICYjNDM7PSBhcmNocmFuZG9tLmgKJiM0MzttYW5kYXRvcnkteSAmIzQzOz0gYXV4dmVjLmgKIG1hbmRhdG9yeS15ICYjNDM7PSBiYXJyaWVyLmgKIG1hbmRhdG9yeS15ICYjNDM7PSBiaXRvcHMuaAogbWFuZGF0b3J5LXkgJiM0Mzs9IGJ1Zy5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL2F1eHZlYy5oIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lNGFiZDJhOGM1ZWQzCi0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaApAQCAtMCwwICYjNDM7MSw3IEBACiYjNDM7LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KJiM0MzsjaWZuZGVmIF9fQVNNX0dFTkVSSUNfQVVYVkFMX0hfXwomIzQzOyNkZWZpbmUgX19BU01fR0VORVJJQ19BVVhWQUxfSF9fCiYjNDM7CiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDAKJiM0MzsKJiM0MzsjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYXV4dmVjLmggYi9pbmNsdWRlL2xpbnV4L2F1eHZlYy5oCmluZGV4IDhiY2I5YjcyNjI2MjguLmY3ZGRlYTFkYmM4ZWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYXV4dmVjLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9hdXh2ZWMuaApAQCAtMiw4ICYjNDM7MiwxMyBAQAogI2lmbmRlZiBfTElOVVhfQVVYVkVDX0gKICNkZWZpbmUgX0xJTlVYX0FVWFZFQ19ICiAKJiM0MzsjaW5jbHVkZSAmbHQ7dWFwaS9hc20vYXV4dmVjLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7dWFwaS9saW51eC9hdXh2ZWMuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7YXNtL2F1eHZlYy5oJmd0OwogCiAjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgMjQgLyogTkVXX0FVWF9FTlQgZW50cmllcyBpbiBhdXhpbGlhcnkgdGFibGUgKi8KICAgLyogbnVtYmVyIG9mICYjMzQ7I2RlZmluZSBBVF8uKiYjMzQ7IGFib3ZlLCBtaW51cyB7QVRfTlVMTCwgQVRfSUdOT1JFLCBBVF9OT1RFTEZ9ICovCiYjNDM7CiYjNDM7I2RlZmluZSBBVF9WRUNUT1JfU0laRSAoMiooQVRfVkVDVE9SX1NJWkVfQVJDSCAmIzQzOyBBVF9WRUNUT1JfU0laRV9CQVNFICYjNDM7IDEpKQomIzQzOwogI2VuZGlmIC8qIF9MSU5VWF9BVVhWRUNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIGIvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oCmluZGV4IDZkODE1ZjY0NDBjOTQuLjA4YTA2YjI2Mzc1YjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgKQEAgLTI2LDEyICYjNDM7MjYsNiBAQAogCiAjaW5jbHVkZSAmbHQ7YXNtL21tdS5oJmd0OwogCi0jaWZuZGVmIEFUX1ZFQ1RPUl9TSVpFX0FSQ0gKLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAwCi0jZW5kaWYKLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkUgKDIqKEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggJiM0MzsgQVRfVkVDVE9SX1NJWkVfQkFTRSAmIzQzOyAxKSkKLQotCiBzdHJ1Y3QgYWRkcmVzc19zcGFjZTsKIHN0cnVjdCBmdXRleF9wcml2YXRlX2hhc2g7CiBzdHJ1Y3QgbWVtX2Nncm91cDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMTA6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTAwNgoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDM2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaCBhbmQgZGlzc2VjdCB0aGUgbW9kaWZpY2F0aW9ucy4gTXkgZmlyc3QgaW1wcmVzc2lvbiBpcyB0aGF0IGl0IHNlZW1zIHRvIGJlIHByaW1hcmlseSBmb2N1c2VkIG9uIHJlZmFjdG9yaW5nIGFuZCByZW9yZ2FuaXppbmcgaGVhZGVyIGZpbGVzLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byB0aGUgYXV4aWxpYXJ5IHZlY3RvciBkZWZpbml0aW9ucy4gVGhlIHBhdGNoIHRvdWNoZXMgb24gYE1BSU5UQUlORVJTYCwgd2hpY2ggaXMgZ2VuZXJhbGx5IGEgZ29vZCBzaWduIG9mIGNsZWFuLXVwIGFuZCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgpJIHNlZSB0aGF0IGBhcmNoLyovaW5jbHVkZS9hc20vYXV4dmVjLmhgIGFuZCBgYXJjaC8qL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhgIGFyZSBiZWluZyBtb2RpZmllZCBhY3Jvc3MgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyAoYWxwaGEsIGFybSwgYXJtNjQsIGV0Yy4pLiBNeSBoeXBvdGhlc2lzIGlzIHRoYXQgdGhpcyBpbnZvbHZlcyBtb3ZpbmcgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGRlZmluaXRpb25zIGZyb20gdGhlIHVzZXItc3BhY2UgQVBJIGhlYWRlcnMgKGB1YXBpYCkgaW50byB0aGUga2VybmVsLWludGVybmFsIGhlYWRlcnMgKGBhc21gKS4gVGhhdCYjMzk7cyBhIGdvb2QgcHJhY3RpY2UsIHByb21vdGluZyBiZXR0ZXIgc2VwYXJhdGlvbiBvZiBjb25jZXJucyBhbmQgcHJldmVudGluZyBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIG1pc3VzZSBieSB1c2VyLXNwYWNlIGNvZGUuCgpUaGUgcGF0Y2ggYWxzbyBhZGRzIGBhdXh2ZWMuaGAgdG8gdGhlIG1hbmRhdG9yeSBidWlsZCB0YXJnZXRzIGFuZCBkZWZpbmVzIGEgZGVmYXVsdCBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgaW4gYGluY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkYCBhbmQgYGluY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmhgLiBUaGlzIHN1Z2dlc3RzIHNvbWUgc29ydCBvZiBmYWxsYmFjayBtZWNoYW5pc20gb3IgZ2VuZXJhbCBkZWZpbml0aW9uIGlzIGJlaW5nIGFkZGVkLCBhIG5pY2UgdG91Y2guCgpGdXJ0aGVyLCBJJiMzOTttIG5vdGljaW5nIGBpbmNsdWRlL2xpbnV4L2F1eHZlYy5oYCBub3cgaW5jbHVkZXMgYCZsdDt1YXBpL2FzbS9hdXh2ZWMuaCZndDtgLCBgJmx0O3VhcGkvbGludXgvYXV4dmVjLmgmZ3Q7YCwgYW5kIGAmbHQ7YXNtL2F1eHZlYy5oJmd0O2AgYW5kIGRlZmluZXMgYEFUX1ZFQ1RPUl9TSVpFYC4gVGhpcyBjb25zb2xpZGF0aW9uIHBvaW50cyB0byB0aGUgY2VudHJhbCBsb2NhdGlvbiBmb3IgbWFuYWdpbmcgdGhlc2UgZGVmaW5pdGlvbnMuCgpGaW5hbGx5LCB0aGUgcmVtb3ZhbCBvZiB0aGUgYCNpZm5kZWYgQVRfVkVDVE9SX1NJWkVfQVJDSCAuLi4gI2RlZmluZSBBVF9WRUNUT1JfU0laRSAuLi5gIGRlZmluaXRpb24gZnJvbSBgaW5jbHVkZS9saW51eC9tbV90eXBlcy5oYCBzdWdnZXN0cyB0aGF0IHRoaXMgcGFydGljdWxhciBkZWZpbml0aW9uIGhhcyBiZWVuIG1vdmVkIHRvIGl0cyBwcm9wZXIgbG9jYXRpb24uCgpNeSBndXQgZmVlbGluZyBpcyB0aGF0IHRoaXMgaXMgcHVyZWx5IGEgaGVhZGVyIHJlb3JnYW5pemF0aW9uL2NsZWFudXAgZXhlcmNpc2UgdG8gcmVkdWNlIGR1cGxpY2F0aW9uIGFuZCBpbXByb3ZlIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSwgYW5kIGEgZ29vZCB0aGluZyB0byBkby4gSG93ZXZlciwgSSBuZWVkIHRvIGNvbmZpcm0gdGhpcyBiZWZvcmUgSSBmZWVsIGVudGlyZWx5IGNvbWZvcnRhYmxlLgoKVG8gYmUgY2VydGFpbiwgSSB3YW50IHRvIHZlcmlmeSBpZiBhbnkgZXhlY3V0YWJsZSBsb2dpYyBpcyBhZmZlY3RlZC4gSSYjMzk7bGwgbmVlZCB0byB1c2UgYGdyZXBwZXJgIG9yIGByZWFkLWZpbGVgIHRvIGNoZWNrIHRoZSBhY3R1YWwgdXNlcyBhbmQgZGVmaW5pdGlvbnMgb2YgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGFuZCBgQVRfVkVDVE9SX1NJWkVgIHRocm91Z2hvdXQgdGhlIGNvZGViYXNlLiBUaGlzIHdpbGwgY29uZmlybSB3aGV0aGVyIHRoaXMgaXMgYSBwdXJlbHkgc3RydWN0dXJhbCBjaGFuZ2Ugb3IgaWYgdGhlcmUgYXJlIHN1YnRsZSBiZWhhdmlvcmFsIGNoYW5nZXMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDEwOjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0FUX1ZFQ1RPUl9TSVpFJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmgtNC1cbmFyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmg6NTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNCAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG5hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTYtXG4tLVxuYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9lbGYuaD0xNDQ9ZXh0ZXJuIGludCBhbHBoYV9sM19jYWNoZXNoYXBlO1xuYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9lbGYuaC0xNDUtXG5hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2VsZi5oOjE0NjovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xuYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9lbGYuaC0xNDctI2RlZmluZSBBUkNIX0RMSU5GT1x0XHRcdFx0XHRcdFxcXG4tLVxuYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hdXh2ZWMuaC00LVxuYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo1OiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi1cbi0tXG5hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2VsZi5oPTE1Mj10eXBlZGVmIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSBlbGZfZnByZWdzZXRfdDtcbi0tXG5hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2VsZi5oLTE2Ni1cbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZWxmLmg6MTY3Oi8qIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9BUkNIIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQgZW50cmllcyBjaGFuZ2VzICovXG5hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2VsZi5oLTE2OC0jZGVmaW5lIEFSQ0hfRExJTkZPXHRcdFx0XHRcdFx0XHRcXFxuLS1cbmFyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTExLVxuYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmg6MTI6I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDEgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmgtMTMtXG4tLVxuYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vZWxmLmg9MzE5PWV4dGVybiBjb25zdCBjaGFyICpfX2VsZl9wbGF0Zm9ybTtcbi0tXG5hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9lbGYuaC0zNDAtXG5hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9lbGYuaDozNDE6LyogdXBkYXRlIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggaWYgdGhlIG51bWJlciBvZiBORVdfQVVYX0VOVCBlbnRyaWVzIGNoYW5nZXMgKi9cbmFyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2VsZi5oLTM0Mi0jZGVmaW5lIEFSQ0hfRExJTkZPXHRcdFx0XHRcdFx0XHRcXFxuLS1cbmFyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaC0xNC1cbmFyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaDoxNTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG5hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmgtMTYtXG4tLVxuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2VsZi5oPTQzNj1leHRlcm4gY29uc3QgY2hhciAqX19lbGZfYmFzZV9wbGF0Zm9ybTtcbi0tXG5hcmNoL21pcHMvaW5jbHVkZS9hc20vZWxmLmgtNDU5LVxuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2VsZi5oOjQ2MDovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2VsZi5oLTQ2MS0jZGVmaW5lIEFSQ0hfRExJTkZPXHRcdFx0XHRcdFx0XHRcXFxuLS1cbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaC00LVxuYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oOjU6I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXHQxNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG5hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi1cbi0tXG5hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZWxmLmg9MTE3PWV4dGVybiBpbnQgYXJjaF9zZXR1cF9hZGRpdGlvbmFsX3BhZ2VzKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0sXG4tLVxuYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2VsZi5oLTE1OC0gKiAgIGV2ZW4gaWYgRExJTkZPX0FSQ0hfSVRFTVMgZ29lcyB0byB6ZXJvIG9yIGlzIHVuZGVmaW5lZC5cbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lbGYuaDoxNTk6ICogdXBkYXRlIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggaWYgdGhlIG51bWJlciBvZiBORVdfQVVYX0VOVCBlbnRyaWVzIGNoYW5nZXNcbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lbGYuaC0xNjAtICovXG4tLVxuYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdXh2ZWMuaC0xMC0vKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG5hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oOjExOiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSFx0MTBcbmFyY2gvcmlzY3YvaW5jbHVkZS9hc20vYXV4dmVjLmgtMTItXG4tLVxuYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTQtXG5hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmg6NTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG5hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi1cbi0tXG5hcmNoL3MzOTAvaW5jbHVkZS9hc20vZWxmLmg9MjE3PWRvIHtcdFx0XHRcdFx0XHRcdFx0XFxcbi0tXG5hcmNoL3MzOTAvaW5jbHVkZS9hc20vZWxmLmgtMjMyLVxuYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2VsZi5oOjIzMzovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xuYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2VsZi5oLTIzNC0jZGVmaW5lIEFSQ0hfRExJTkZPXHRcdFx0XHRcdFx0XHRcXFxuLS1cbmFyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmgtNC1cbmFyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmg6NTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG5hcmNoL3NoL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTYtXG4tLVxuYXJjaC9zaC9pbmNsdWRlL2FzbS9lbGYuaD0xOTQ9ZXh0ZXJuIGludCBsMWlfY2FjaGVfc2hhcGUsIGwxZF9jYWNoZV9zaGFwZSwgbDJfY2FjaGVfc2hhcGU7XG5hcmNoL3NoL2luY2x1ZGUvYXNtL2VsZi5oLTE5NS1cbmFyY2gvc2gvaW5jbHVkZS9hc20vZWxmLmg6MTk2Oi8qIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9BUkNIIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQgZW50cmllcyBjaGFuZ2VzICovXG5hcmNoL3NoL2luY2x1ZGUvYXNtL2VsZi5oLTE5Ny0jZGVmaW5lIEFSQ0hfRExJTkZPXHRcdFx0XHRcdFx0XFxcbi0tXG5hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTMtXG5hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oOjQ6I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXHQ0XG5hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTUtXG4tLVxuYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi0jaWYgZGVmaW5lZChDT05GSUdfSUEzMl9FTVVMQVRJT04pIHx8ICFkZWZpbmVkKENPTkZJR19YODZfNjQpXG5hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo3OiMgZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggM1xuYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmgtOC0jZWxzZSAvKiBlbHNlIGl0JiMzOTtzIG5vbi1jb21wYXQgeDg2LTY0ICovXG5hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo5OiMgZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMlxuYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmgtMTAtI2VuZGlmXG4tLVxuYXJjaC94ODYvaW5jbHVkZS9hc20vZWxmLmg9MzEyPWV4dGVybiB1bnNpZ25lZCBsb25nIGdldF9zaWdmcmFtZV9zaXplKHZvaWQpO1xuLS1cbmFyY2gveDg2L2luY2x1ZGUvYXNtL2VsZi5oLTMyMC1cbmFyY2gveDg2L2luY2x1ZGUvYXNtL2VsZi5oOjMyMTovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xuYXJjaC94ODYvaW5jbHVkZS9hc20vZWxmLmgtMzIyLVxuLS1cbmZzL2JpbmZtdF9lbGYuYz0xNjU9Y3JlYXRlX2VsZl90YWJsZXMoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSwgY29uc3Qgc3RydWN0IGVsZmhkciAqZXhlYyxcbi0tXG5mcy9iaW5mbXRfZWxmLmMtMjMyLVx0ZWxmX2luZm8gPSAoZWxmX2FkZHJfdCAqKW1tLVx1MDAzZXNhdmVkX2F1eHY7XG5mcy9iaW5mbXRfZWxmLmM6MjMzOlx0LyogdXBkYXRlIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgaWYgdGhlIG51bWJlciBvZiBORVdfQVVYX0VOVCgpIGNoYW5nZXMgKi9cbmZzL2JpbmZtdF9lbGYuYy0yMzQtI2RlZmluZSBORVdfQVVYX0VOVChpZCwgdmFsKSBcXFxuLS1cbmZzL2JpbmZtdF9lbGYuYy0yNDMtXHQgKiBBVVhWLlxuZnMvYmluZm10X2VsZi5jOjI0NDpcdCAqIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9BUkNIIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQoKSBpblxuZnMvYmluZm10X2VsZi5jLTI0NS1cdCAqIEFSQ0hfRExJTkZPIGNoYW5nZXNcbi0tXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmM9NTA0PXN0YXRpYyBpbnQgY3JlYXRlX2VsZl9mZHBpY190YWJsZXMoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcbi0tXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNTk3LVx0bml0ZW1zID0gMSAmIzQzOyBETElORk9fSVRFTVMgJiM0MzsgKGtfcGxhdGZvcm0gPyAxIDogMCkgJiM0MztcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYzo1OTg6XHRcdChrX2Jhc2VfcGxhdGZvcm0gPyAxIDogMCkgJiM0MzsgQVRfVkVDVE9SX1NJWkVfQVJDSDtcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy01OTktXG4tLVxuZnMvYmluZm10X2VsZl9mZHBpYy5jLTYyMi1cdGVsZl9pbmZvID0gKGVsZl9hZGRyX3QgKiltbS1cdTAwM2VzYXZlZF9hdXh2O1xuZnMvYmluZm10X2VsZl9mZHBpYy5jOjYyMzpcdC8qIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9CQVNFIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQoKSBjaGFuZ2VzICovXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNjI0LSNkZWZpbmUgTkVXX0FVWF9FTlQoaWQsIHZhbCkgXFxcbi0tXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNjMzLVx0ICogQVVYVi5cbmZzL2JpbmZtdF9lbGZfZmRwaWMuYzo2MzQ6XHQgKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UKCkgaW5cbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy02MzUtXHQgKiBBUkNIX0RMSU5GTyBjaGFuZ2VzXG4tLVxuaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaC00LVxuaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaDo1OiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAwXG5pbmNsdWRlL2FzbS1nZW5lcmljL2F1eHZlYy5oLTYtXG4tLVxuaW5jbHVkZS9saW51eC9hdXh2ZWMuaC04LVxuaW5jbHVkZS9saW51eC9hdXh2ZWMuaDo5OiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQkFTRSAyNCAvKiBORVdfQVVYX0VOVCBlbnRyaWVzIGluIGF1eGlsaWFyeSB0YWJsZSAqL1xuaW5jbHVkZS9saW51eC9hdXh2ZWMuaC0xMC0gIC8qIG51bWJlciBvZiBcJiMzNDsjZGVmaW5lIEFUXy4qXCYjMzQ7IGFib3ZlLCBtaW51cyB7QVRfTlVMTCwgQVRfSUdOT1JFLCBBVF9OT1RFTEZ9ICovXG5pbmNsdWRlL2xpbnV4L2F1eHZlYy5oLTExLVxuaW5jbHVkZS9saW51eC9hdXh2ZWMuaDoxMjojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFICgyKihBVF9WRUNUT1JfU0laRV9BUkNIICYjNDM7IEFUX1ZFQ1RPUl9TSVpFX0JBU0UgJiM0MzsgMSkpXG5pbmNsdWRlL2xpbnV4L2F1eHZlYy5oLTEzLVxuLS1cbmluY2x1ZGUvbGludXgvbW1fdHlwZXMuaD0xMTY5PXN0cnVjdCBtbV9zdHJ1Y3Qge1xuLS1cbmluY2x1ZGUvbGludXgvbW1fdHlwZXMuaC0xMzAxLVxuaW5jbHVkZS9saW51eC9tbV90eXBlcy5oOjEzMDI6XHRcdHVuc2lnbmVkIGxvbmcgc2F2ZWRfYXV4dltBVF9WRUNUT1JfU0laRV07IC8qIGZvciAvcHJvYy9QSUQvYXV4diAqL1xuaW5jbHVkZS9saW51eC9tbV90eXBlcy5oLTEzMDMtXG4tLVxua2VybmVsL3N5cy5jPTIwNjA9c3RhdGljIGludCBwcmN0bF9zZXRfbW1fbWFwKGludCBvcHQsIGNvbnN0IHZvaWQgX191c2VyICphZGRyLCB1bnNpZ25lZCBsb25nIGRhdGFfc2l6ZSlcbi0tXG5rZXJuZWwvc3lzLmMtMjA2Mi1cdHN0cnVjdCBwcmN0bF9tbV9tYXAgcHJjdGxfbWFwID0geyAuZXhlX2ZkID0gKHUzMiktMSwgfTtcbmtlcm5lbC9zeXMuYzoyMDYzOlx0dW5zaWduZWQgbG9uZyB1c2VyX2F1eHZbQVRfVkVDVE9SX1NJWkVdO1xua2VybmVsL3N5cy5jLTIwNjQtXHRzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IGN1cnJlbnQtXHUwMDNlbW07XG4tLVxua2VybmVsL3N5cy5jLTIwOTgtXHRcdC8qIExhc3QgZW50cnkgbXVzdCBiZSBBVF9OVUxMIGFzIHNwZWNpZmljYXRpb24gcmVxdWlyZXMgKi9cbmtlcm5lbC9zeXMuYzoyMDk5Olx0XHR1c2VyX2F1eHZbQVRfVkVDVE9SX1NJWkUgLSAyXSA9IEFUX05VTEw7XG5rZXJuZWwvc3lzLmM6MjEwMDpcdFx0dXNlcl9hdXh2W0FUX1ZFQ1RPUl9TSVpFIC0gMV0gPSBBVF9OVUxMO1xua2VybmVsL3N5cy5jLTIxMDEtXHR9XG4tLVxua2VybmVsL3N5cy5jPTIxNjg9c3RhdGljIGludCBwcmN0bF9zZXRfYXV4dihzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLFxuLS1cbmtlcm5lbC9zeXMuYy0yMTc2LVx0ICovXG5rZXJuZWwvc3lzLmM6MjE3NzpcdHVuc2lnbmVkIGxvbmcgdXNlcl9hdXh2W0FUX1ZFQ1RPUl9TSVpFXSA9IHt9O1xua2VybmVsL3N5cy5jLTIxNzgtXG4tLVxua2VybmVsL3N5cy5jLTIxODUtXHQvKiBNYWtlIHN1cmUgdGhlIGxhc3QgZW50cnkgaXMgYWx3YXlzIEFUX05VTEwgKi9cbmtlcm5lbC9zeXMuYzoyMTg2Olx0dXNlcl9hdXh2W0FUX1ZFQ1RPUl9TSVpFIC0gMl0gPSAwO1xua2VybmVsL3N5cy5jOjIxODc6XHR1c2VyX2F1eHZbQVRfVkVDVE9SX1NJWkUgLSAxXSA9IDA7XG5rZXJuZWwvc3lzLmMtMjE4OC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAxMDowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjk0MQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDgwMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGF1eHZlYy5oIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IHRoaXMgcGF0Y2ggaXMgcHJpbWFyaWx5IGEgcmVmYWN0b3JpbmcgZWZmb3J0LCBmb2N1c2VkIG9uIGhlYWRlciBmaWxlIG9yZ2FuaXphdGlvbiByZWxhdGVkIHRvIHRoZSBhdXhpbGlhcnkgdmVjdG9yIChgYXV4dmApLiBUaGUgZ29hbCBzZWVtcyB0byBiZSB0byBjbGVhbiB1cCB0aGUgZGVmaW5pdGlvbnMgYW5kIG1ha2UgdGhlbSBsZXNzIHByb25lIHRvIHVuaW50ZW5kZWQgZXhwb3N1cmUgdG8gdXNlcnNwYWNlLgoKTXkgZmlyc3QgdGhvdWdodCBpcywgd2h5IGlzIGBBVF9WRUNUT1JfU0laRV9BUkNIYCBiZWluZyBkZWZpbmVkIGluIGBpbmNsdWRlL3VhcGkvKi9hdXh2ZWMuaGAgdW5kZXIgYF9fS0VSTkVMX19gIG9yIGV4cG9zZWQgdG8gdXNlcnNwYWNlPyBUaGF0JiMzOTtzIGEgcmVkIGZsYWcuIEFzIEkgdW5kZXJzdGFuZCBpdCwgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGlzIHJlYWxseSBhbiBpbnRlcm5hbCBrZXJuZWwgbWFjcm8gdXNlZCB0byBzaXplIGBtbS0mZ3Q7c2F2ZWRfYXV4dmAgKGBBVF9WRUNUT1JfU0laRWApLiBJdCBkb2VzbiYjMzk7dCBuZWVkIHRvIGJlIGluIHRoZSBVQVBJLCBzbyBtb3ZpbmcgaXQgaXMgYSBzZW5zaWJsZSBjaGFuZ2UuCgpTbyB0aGUgY29yZSBvZiB0aGUgcGF0Y2ggaW52b2x2ZXM6CgoxLiAgQ3JlYXRpbmcgaW50ZXJuYWwga2VybmVsIGAmbHQ7YXNtL2F1eHZlYy5oJmd0O2AgaGVhZGVycyAob3IgdXNpbmcgZ2VuZXJpYyBgJmx0O2FzbS1nZW5lcmljL2F1eHZlYy5oJmd0O2ApIOKAkyB0aGlzIHNvdW5kcyBsaWtlIGEgZ29vZCBwcmFjdGljZSBmb3IgZW5jYXBzdWxhdGluZyBrZXJuZWwtc3BlY2lmaWMgZGVmaW5pdGlvbnMuCjIuICBNb3ZpbmcgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGZyb20gYHVhcGkvYXNtL2F1eHZlYy5oYCB0byB0aGVzZSBpbnRlcm5hbCBoZWFkZXJzLiBFeGNlbGxlbnQuIEtlZXBpbmcgdGhlIGtlcm5lbCBpbnRlcm5hbHMgc2VwYXJhdGVkIGZyb20gdGhlIHVzZXJzcGFjZSBpbnRlcmZhY2UgaXMgYWx3YXlzIHByZWZlcnJlZC4KMy4gIE1vdmluZyB0aGUgYEFUX1ZFQ1RPUl9TSVpFYCBkZWZpbml0aW9uIGZyb20gYCZsdDtsaW51eC9tbV90eXBlcy5oJmd0O2AgdG8gYCZsdDtsaW51eC9hdXh2ZWMuaCZndDtgLiBUaGF0IG1ha2VzIG1vcmUgc2Vuc2U7IHRoZSBhdXh2ZWMgc2l6ZSBpcyBpbmhlcmVudGx5IHJlbGF0ZWQgdG8gdGhlIGF1eHZlYyBpdHNlbGYuCgpOb3csIGxldCYjMzk7cyBkaWcgaW50byB0aGUgZGV0YWlsczogTm8gY2hhbmdlcyB0byBDIGNvZGUsIGxvZ2ljLCBjb250cm9sIGZsb3csIGZ1bmN0aW9ucywgc3RydWN0dXJlcywgc2l6ZXMsIG9yIGFsZ29yaXRobXMgb3RoZXIgdGhhbiB3aGF0IEkmIzM5O3ZlIGlkZW50aWZpZWQuIFRoZSB2YWx1ZXMgb2YgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGFwcGVhciB0byBiZSBtb3N0bHkgdW5jaGFuZ2VkLiBJIHNlZSB0aGF0IHRoZSBgYXJtYCBhcmNoaXRlY3R1cmUmIzM5O3Mgc3R1YiBkZWZpbml0aW9uIGZvciBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgaXMgcmVtb3ZlZCwgc28gaXQgd2lsbCBub3cgdXNlIHRoZSBnZW5lcmljIDAgdmFsdWUsIHdoaWNoIHNlZW1zIGZpbmUgc2luY2UgaXQgZGlkbiYjMzk7dCBkZWZpbmUgaXQgYmVmb3JlIGFueXdheS4gVGhlIHZhbHVlcyBmb3IgYWxsIHRoZSBhcmNoaXRlY3R1cmVzIGFyZSB0aGUgc2FtZSBhcyBiZWZvcmUsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIHBhdGNoIGlzbiYjMzk7dCBjYXVzaW5nIGFueSByZWdyZXNzaW9ucyBpbiBzaXplIG9mIGF1eHYuCgpSZWdhcmRpbmcgYEFUX1ZFQ1RPUl9TSVpFYCBpdHNlbGY6IHRoZSBsb2dpYyBpcyB0d2Vha2VkIHRvIGluY2x1ZGUgdGhlIG5ldyBrZXJuZWwgaW5jbHVkZXMuIFRoZSBjYWxjdWxhdGlvbiB1c2VzIGBBVF9WRUNUT1JfU0laRV9CQVNFYCwgd2hpY2ggaXMgbm93IGRlZmluZWQuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoYXQgYGxpbnV4L21tX3R5cGVzLmhgIGluY2x1ZGVzIGBsaW51eC9hdXh2ZWMuaGAgdG8gZW5zdXJlIHRoYXQgdGhlcmUgYXJlIG5vIGtub2NrLW9uIGVmZmVjdHMuIEJ1dCwgb3ZlcmFsbCwgdGhpcyBzZWVtcyBsaWtlIGEgc29saWQgYW5kIHdlbGwtY29uc2lkZXJlZCBjbGVhbnVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDEwOjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9tbV90eXBlcy5oJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cbiAgIDI6XHQjaWZuZGVmIF9MSU5VWF9NTV9UWVBFU19IXG4gICAzOlx0I2RlZmluZSBfTElOVVhfTU1fVFlQRVNfSFxuICAgNDpcdFxuICAgNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21tX3R5cGVzX3Rhc2suaFx1MDAzZVxuICAgNjpcdFxuICAgNzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2F1eHZlYy5oXHUwMDNlXG4gICA4Olx0I2luY2x1ZGUgXHUwMDNjbGludXgva3JlZi5oXHUwMDNlXG4gICA5Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvbGlzdC5oXHUwMDNlXG4gIDEwOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvc3BpbmxvY2suaFx1MDAzZVxuICAxMTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3JidHJlZS5oXHUwMDNlXG4gIDEyOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvbWFwbGVfdHJlZS5oXHUwMDNlXG4gIDEzOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvcndzZW0uaFx1MDAzZVxuICAxNDpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2NvbXBsZXRpb24uaFx1MDAzZVxuICAxNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2NwdW1hc2suaFx1MDAzZVxuICAxNjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3Vwcm9iZXMuaFx1MDAzZVxuICAxNzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3JjdXBkYXRlLmhcdTAwM2VcbiAgMTg6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9wYWdlLWZsYWdzLWxheW91dC5oXHUwMDNlXG4gIDE5Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvd29ya3F1ZXVlLmhcdTAwM2VcbiAgMjA6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9zZXFsb2NrLmhcdTAwM2VcbiAgMjE6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9wZXJjcHVfY291bnRlci5oXHUwMDNlXG4gIDIyOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvdHlwZXMuaFx1MDAzZVxuICAyMzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2Z1dGV4X3R5cGVzLmhcdTAwM2VcbiAgMjQ6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9yc2VxX3R5cGVzLmhcdTAwM2VcbiAgMjU6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRtYXAuaFx1MDAzZVxuICAyNjpcdFxuICAyNzpcdCNpbmNsdWRlIFx1MDAzY2FzbS9tbXUuaFx1MDAzZVxuICAyODpcdFxuICAyOTpcdHN0cnVjdCBhZGRyZXNzX3NwYWNlO1xuICAzMDpcdHN0cnVjdCBmdXRleF9wcml2YXRlX2hhc2g7XG4gIDMxOlx0c3RydWN0IG1lbV9jZ3JvdXA7XG4gIDMyOlx0XG4gIDMzOlx0dHlwZWRlZiBzdHJ1Y3Qge1xuICAzNDpcdFx0dW5zaWduZWQgbG9uZyBmO1xuICAzNTpcdH0gbWVtZGVzY19mbGFnc190O1xuICAzNjpcdFxuICAzNzpcdC8qXG4gIDM4Olx0ICogRWFjaCBwaHlzaWNhbCBwYWdlIGluIHRoZSBzeXN0ZW0gaGFzIGEgc3RydWN0IHBhZ2UgYXNzb2NpYXRlZCB3aXRoXG4gIDM5Olx0ICogaXQgdG8ga2VlcCB0cmFjayBvZiB3aGF0ZXZlciBpdCBpcyB3ZSBhcmUgdXNpbmcgdGhlIHBhZ2UgZm9yIGF0IHRoZVxuICA0MDpcdCAqIG1vbWVudC4gTm90ZSB0aGF0IHdlIGhhdmUgbm8gd2F5IHRvIHRyYWNrIHdoaWNoIHRhc2tzIGFyZSB1c2luZ1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDEwOjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0OTE4CgkJCQkJCQlvdXRwdXQ6IDk1CgkJCQkJCQl0aG91Z2h0czogMjg0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgVGhpcyBDaGFuZ2UqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseS4gSSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGlzIHBhdGNoIHdhcnJhbnRzIGFueSBmdXJ0aGVyIHNjcnV0aW55LCBnaXZlbiBteSBleHBlcnRpc2UuIFRoZSBjb3JlIG9mIHRoZSBldmFsdWF0aW9uIGhpbmdlcyBvbiB0aG9zZSBuZWdhdGl2ZSBjcml0ZXJpYS4gVGhlIHBhdGNoIGRlc2NyaXB0aW9uIGl0c2VsZiBsb29rcyBwcm9taXNpbmcgYnV0IEkgbmVlZCB0byBlbnN1cmUgaXQgbWVldHMgdGhvc2UgY3JpdGVyaWEuCgpGaXJzdCwgdGhlIG5lZ2F0aXZlIGNyaXRlcmlhIGFyZSBwYXJhbW91bnQ6ICpOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzKi4gVGhlc2UgYXJlIHRoZSByZWQgZmxhZ3MgdG8gYXZvaWQgdW5uZWNlc3NhcnkgY29kZSByZXZpZXcuIFRoZSBwYXRjaCBkZXNjcmlwdGlvbiBzdGF0ZXMgaXQgY29udGFpbnMgKk1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4gVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cy4gUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZy4gQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLiBIZWFkZXIgcmVuYW1lcyAvIG1hY3JvIHJlbG9jYXRpb24gd2l0aCBubyBleGVjdXRhYmxlIGNvZGUgY2hhbmdlIC8gbm8gY2hhbmdlIGluIHZhbHVlcy4qCgpOb3csIGxldCYjMzk7cyByaWdvcm91c2x5IGNoZWNrIHRoZSBkZXRhaWxzLiBEb2VzIHRoZSBjaGFuZ2UgdG91Y2ggYW55IHJ1bnRpbWUgbG9naWMsIGFueSBleGVjdXRhYmxlIGNvZGUsIGFueSBkYXRhIHN0cnVjdHVyZSBzaXplcyBvciBjb250cm9sIGZsb3c/IFRoZSBkZXNjcmlwdGlvbiBpcyBjbGVhciDigJMgKk5vKi4gVGhlIG1hY3JvIHZhbHVlcyBgQVRfVkVDVE9SX1NJWkVgIGFuZCBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgcmVtYWluICpjb21wbGV0ZWx5KiB1bmNoYW5nZWQuIE5vIG5ldyBmdW5jdGlvbnMgYXJlIGludHJvZHVjZWQsIHJlbW92ZWQsIG9yIGFsdGVyZWQuIFRoZSBtb2RpZmljYXRpb25zIGFyZSBpc29sYXRlZCB0byBoZWFkZXIgZmlsZXMgKG1hY3JvIHJlbG9jYXRpb25zKSBhbmQgYE1BSU5UQUlORVJTYCAvIGBLYnVpbGRgIGZpbGVzLiBUaGVyZWZvcmUsIHRoZXJlIGlzIGRlZmluaXRpdmVseSAqemVybyogZXhlY3V0YWJsZSBjb2RlIGNoYW5nZS4gVGhpcyBpcyB0aGUga2V5LgoKTGV0JiMzOTtzIGRvIGEgZmluYWwgcmV2aWV3IG9mIG90aGVyIGZhY3RvcnM6IHRoZSBgV29ydGhGdXp6aW5nYCwgYEZvY3VzU3ltYm9sc2AsIGFuZCBgRW5hYmxlQ29uZmlnc2AgYXJlIGFsbCBuZWdhdGl2ZSB3aGljaCBtZWFucyB0aGVyZSBhcmUgbm8gZnVydGhlciBpbXBsaWNhdGlvbnMuIFRoZSByZWFzb25pbmcgZm9yIHRoZSBjaGFuZ2UgaXMgY29uY2lzZTogVGhpcyBpcyBhIGhlYWRlciBjbGVhbnVwL3JlZmFjdG9yaW5nIHNlcGFyYXRpbmcga2VybmVsLWludGVybmFsIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggZGVmaW5pdGlvbnMgZnJvbSBVQVBJIGhlYWRlcnMsIHdpdGggbm8gY2hhbmdlcyB0byBleGVjdXRhYmxlIGNvZGUsIGxvZ2ljLCBkYXRhIHN0cnVjdHVyZSBsYXlvdXQsIG9yIHJ1bnRpbWUgYmVoYXZpb3IuIEV4Y2VsbGVudC4gVGhpcyBjaGVja3MgYWxsIHRoZSBib3hlcy4gT2theSwgSSYjMzk7bSBjb25maWRlbnQgaW4gdGhlIGFzc2Vzc21lbnQuIFRpbWUgdG8gY2FsbCBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAxMDowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGlzIGEgaGVhZGVyIHJlZmFjdG9yaW5nIHRoYXQgc2VwYXJhdGVzIGtlcm5lbC1pbnRlcm5hbCBBVF9WRUNUT1JfU0laRV9BUkNIIG1hY3JvcyBmcm9tIFVBUEkgaGVhZGVycyBpbnRvIGludGVybmFsIGFzbSBoZWFkZXJzIGFuZCBjZW50cmFsaXplcyBBVF9WRUNUT1JfU0laRSBpbiBpbmNsdWRlL2xpbnV4L2F1eHZlYy5oLiBObyBleGVjdXRhYmxlIEMgY29kZSwgZGF0YSBzdHJ1Y3R1cmVzLCBjb25zdGFudHMsIGFzc2VydGlvbnMsIG9yIHJ1bnRpbWUgbG9naWMgYXJlIGFsdGVyZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpcyBhIGhlYWRlciByZWZhY3RvcmluZyB0aGF0IHNlcGFyYXRlcyBrZXJuZWwtaW50ZXJuYWwgQVRfVkVDVE9SX1NJWkVfQVJDSCBtYWNyb3MgZnJvbSBVQVBJIGhlYWRlcnMgaW50byBpbnRlcm5hbCBhc20gaGVhZGVycyBhbmQgY2VudHJhbGl6ZXMgQVRfVkVDVE9SX1NJWkUgaW4gaW5jbHVkZS9saW51eC9hdXh2ZWMuaC4gTm8gZXhlY3V0YWJsZSBDIGNvZGUsIGRhdGEgc3RydWN0dXJlcywgY29uc3RhbnRzLCBhc3NlcnRpb25zLCBvciBydW50aW1lIGxvZ2ljIGFyZSBhbHRlcmVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAxMDowNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDRUMTA6MDY6MTEuMTU5NjEyOTQ4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc5MzgxNzk2MjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpcyBhIGhlYWRlciByZWZhY3RvcmluZyB0aGF0IHNlcGFyYXRlcyBrZXJuZWwtaW50ZXJuYWwgQVRfVkVDVE9SX1NJWkVfQVJDSCBtYWNyb3MgZnJvbSBVQVBJIGhlYWRlcnMgaW50byBpbnRlcm5hbCBhc20gaGVhZGVycyBhbmQgY2VudHJhbGl6ZXMgQVRfVkVDVE9SX1NJWkUgaW4gaW5jbHVkZS9saW51eC9hdXh2ZWMuaC4gTm8gZXhlY3V0YWJsZSBDIGNvZGUsIGRhdGEgc3RydWN0dXJlcywgY29uc3RhbnRzLCBhc3NlcnRpb25zLCBvciBydW50aW1lIGxvZ2ljIGFyZSBhbHRlcmVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMTA6MDY6MTEuMTU5NjE4NzU4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjI5NDMwNjQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDU2NmRmMDVjODEzMTQ2N2U0ZWRiMWFjNzg0ZmU3Zjk3MThhNTIxNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIFNlcCA0IDEwOjA2OjA5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlNcXG5pbmRleCAzYTE5ZGE3NGQwMGM5Li42OTc0ZjhkYWQxZTlhIDEwMDY0NFxcbi0tLSBhL01BSU5UQUlORVJTXFxuKysrIGIvTUFJTlRBSU5FUlNcXG5AQCAtOTgwOCwxMyArOTgwOCwxOCBAQCBMOlxcdGxpbnV4LW1tQGt2YWNrLm9yZ1xcbiBTOlxcdFN1cHBvcnRlZFxcbiBUOlxcdGdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQva2Vlcy9saW51eC5naXQgZm9yLW5leHQvZXhlY3ZlXFxuIEY6XFx0RG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL0VMRi5yc3RcXG4rRjpcXHRhcmNoLyovaW5jbHVkZS9hc20vYXV4dmVjLmhcXG4rRjpcXHRhcmNoLyovaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbiBGOlxcdGZzLypiaW5mbXRfKi5jXFxuIEY6XFx0ZnMvS2NvbmZpZy5iaW5mbXRcXG4gRjpcXHRmcy9leGVjLmNcXG4gRjpcXHRmcy90ZXN0cy9iaW5mbXRfKl9rdW5pdC5jXFxuIEY6XFx0ZnMvdGVzdHMvZXhlY19rdW5pdC5jXFxuK0Y6XFx0aW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaFxcbitGOlxcdGluY2x1ZGUvbGludXgvYXV4dmVjLmhcXG4gRjpcXHRpbmNsdWRlL2xpbnV4L2JpbmZtdHMuaFxcbiBGOlxcdGluY2x1ZGUvbGludXgvZWxmLmhcXG4rRjpcXHRpbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvYXV4dmVjLmhcXG4gRjpcXHRpbmNsdWRlL3VhcGkvbGludXgvYXV4dmVjLmhcXG4gRjpcXHRpbmNsdWRlL3VhcGkvbGludXgvYmluZm10cy5oXFxuIEY6XFx0aW5jbHVkZS91YXBpL2xpbnV4L2VsZi5oXFxuZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi5mYTkwZWU0Zjg5OWM2XFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5AQCAtMCwwICsxLDcgQEBcXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cXG4rI2lmbmRlZiBfX0FTTV9BTFBIQV9BVVhWRUNfSFxcbisjZGVmaW5lIF9fQVNNX0FMUEhBX0FVWFZFQ19IXFxuK1xcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggNCAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuK1xcbisjZW5kaWYgLyogX19BU01fQUxQSEFfQVVYVkVDX0ggKi9cXG5kaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9hbHBoYS9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuaW5kZXggNTdjYWU4NzgwZDgxMS4uZDIxYjg3YjY3MzBhNCAxMDA2NDRcXG4tLS0gYS9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG5AQCAtMSw2ICsxLDYgQEBcXG4gLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi9cXG4tI2lmbmRlZiBfX0FTTV9BTFBIQV9BVVhWRUNfSFxcbi0jZGVmaW5lIF9fQVNNX0FMUEhBX0FVWFZFQ19IXFxuKyNpZm5kZWYgX19VQVBJX0FTTV9BTFBIQV9BVVhWRUNfSFxcbisjZGVmaW5lIF9fVUFQSV9BU01fQUxQSEFfQVVYVkVDX0hcXG4gXFxuIC8qIFJlc2VydmUgdGhlc2UgbnVtYmVycyBmb3IgYW55IGZ1dHVyZSB1c2Ugb2YgYSBWRFNPLiAgKi9cXG4gI2lmIDBcXG5AQCAtMjIsNiArMjIsNCBAQFxcbiAjZGVmaW5lIEFUX0wyX0NBQ0hFU0hBUEVcXHQzNlxcbiAjZGVmaW5lIEFUX0wzX0NBQ0hFU0hBUEVcXHQzN1xcbiBcXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDQgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xcbi1cXG4tI2VuZGlmIC8qIF9fQVNNX0FMUEhBX0FVWFZFQ19IICovXFxuKyNlbmRpZiAvKiBfX1VBUElfQVNNX0FMUEhBX0FVWFZFQ19IICovXFxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCBmYmQzODhjNDYyOTkwLi4wMDAwMDAwMDAwMDAwXFxuLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vYXV4dmVjLmhcXG4rKysgL2Rldi9udWxsXFxuQEAgLTEgKzAsMCBAQFxcbi0jaW5jbHVkZSBcXHUwMDNjdWFwaS9hc20vYXV4dmVjLmhcXHUwMDNlXFxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi5kZTI0ZWFhYTA2ZTI3XFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5AQCAtMCwwICsxLDcgQEBcXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cXG4rI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxcbisjZGVmaW5lIF9fQVNNX0FVWFZFQ19IXFxuK1xcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMiAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuK1xcbisjZW5kaWZcXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuaW5kZXggNzQzYzBiODRmZDMwZC4uZmI1MWU5MDY4MTNhOSAxMDA2NDRcXG4tLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG5AQCAtMTQsMTMgKzE0LDExIEBAXFxuICAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXFxuICAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgXFx1MDAzY2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9cXHUwMDNlLlxcbiAgKi9cXG4tI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxcbi0jZGVmaW5lIF9fQVNNX0FVWFZFQ19IXFxuKyNpZm5kZWYgX19VQVBJX0FTTV9BVVhWRUNfSFxcbisjZGVmaW5lIF9fVUFQSV9BU01fQVVYVkVDX0hcXG4gXFxuIC8qIHZEU08gbG9jYXRpb24gKi9cXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcXHQzM1xcbiAjZGVmaW5lIEFUX01JTlNJR1NUS1NaXFx0NTFcXHQvKiBzdGFjayBuZWVkZWQgZm9yIHNpZ25hbCBkZWxpdmVyeSAqL1xcbiBcXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDIgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xcbi1cXG4gI2VuZGlmXFxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjM3ZGQ3MTdhM2EyMmJcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5AQCAtMCwwICsxLDE0IEBAXFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKyAqL1xcbisvKlxcbisgKiBBdXRob3I6IEhhbmx1IExpIFxcdTAwM2NsaWhhbmx1QGxvb25nc29uLmNuXFx1MDAzZVxcbisgKiAgICAgICAgIEh1YWNhaSBDaGVuIFxcdTAwM2NjaGVuaHVhY2FpQGxvb25nc29uLmNuXFx1MDAzZVxcbisgKlxcbisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWRcXG4rICovXFxuK1xcbisjaWZuZGVmIF9fQVNNX0FVWFZFQ19IXFxuKyNkZWZpbmUgX19BU01fQVVYVkVDX0hcXG4rXFxuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG4rXFxuKyNlbmRpZiAvKiBfX0FTTV9BVVhWRUNfSCAqL1xcbmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbmluZGV4IDkyMmQ5ZTZiNTA1ODYuLjc5NjkxYzQyMmM3ZTQgMTAwNjQ0XFxuLS0tIGEvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbisrKyBiL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG5AQCAtNiwxMiArNiwxMCBAQFxcbiAgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWRcXG4gICovXFxuIFxcbi0jaWZuZGVmIF9fQVNNX0FVWFZFQ19IXFxuLSNkZWZpbmUgX19BU01fQVVYVkVDX0hcXG4rI2lmbmRlZiBfX1VBUElfQVNNX0FVWFZFQ19IXFxuKyNkZWZpbmUgX19VQVBJX0FTTV9BVVhWRUNfSFxcbiBcXG4gLyogTG9jYXRpb24gb2YgVkRTTyBpbWFnZS4gKi9cXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcXHRcXHQzM1xcbiBcXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDEgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xcbi1cXG4tI2VuZGlmIC8qIF9fQVNNX0FVWFZFQ19IICovXFxuKyNlbmRpZiAvKiBfX1VBUElfQVNNX0FVWFZFQ19IICovXFxuZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uNzZjNDQ1ZTc4OTBmZVxcbi0tLSAvZGV2L251bGxcXG4rKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5AQCAtMCwwICsxLDE3IEBAXFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKyAqL1xcbisvKlxcbisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSW1hZ2luYXRpb24gVGVjaG5vbG9naWVzXFxuKyAqIEF1dGhvcjogQWxleCBTbWl0aCBcXHUwMDNjYWxleC5zbWl0aEBpbWd0ZWMuY29tXFx1MDAzZVxcbisgKlxcbisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxcbisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGVcXG4rICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyXFxuKyAqIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXFxuKyAqL1xcbitcXG4rI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxcbisjZGVmaW5lIF9fQVNNX0FVWFZFQ19IXFxuK1xcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuK1xcbisjZW5kaWYgLyogX19BU01fQVVYVkVDX0ggKi9cXG5kaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbmluZGV4IDYxMmMyYzQxZjYwYjIuLjEzMzFhYzRkOTM1ZTMgMTAwNjQ0XFxuLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbkBAIC05LDEyICs5LDEwIEBAXFxuICAqIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXFxuICAqL1xcbiBcXG4tI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxcbi0jZGVmaW5lIF9fQVNNX0FVWFZFQ19IXFxuKyNpZm5kZWYgX19VQVBJX0FTTV9BVVhWRUNfSFxcbisjZGVmaW5lIF9fVUFQSV9BU01fQVVYVkVDX0hcXG4gXFxuIC8qIExvY2F0aW9uIG9mIFZEU08gaW1hZ2UuICovXFxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXFx0XFx0MzNcXG4gXFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG4tXFxuLSNlbmRpZiAvKiBfX0FTTV9BVVhWRUNfSCAqL1xcbisjZW5kaWYgLyogX19VQVBJX0FTTV9BVVhWRUNfSCAqL1xcbmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmQ2YzE4MGU5YWMyY2JcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxuQEAgLTAsMCArMSw3IEBAXFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXFxuKyNpZm5kZWYgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXFxuKyNkZWZpbmUgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXFxuK1xcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcXHQxNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuK1xcbisjZW5kaWZcXG5kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbmluZGV4IGFhN2MxNjIxNTQ1MzguLjlhYjViNmQxNzkyOTYgMTAwNjQ0XFxuLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbkBAIC0xLDYgKzEsNiBAQFxcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xcbi0jaWZuZGVmIF9BU01fUE9XRVJQQ19BVVhWRUNfSFxcbi0jZGVmaW5lIF9BU01fUE9XRVJQQ19BVVhWRUNfSFxcbisjaWZuZGVmIF9VQVBJX0FTTV9QT1dFUlBDX0FVWFZFQ19IXFxuKyNkZWZpbmUgX1VBUElfQVNNX1BPV0VSUENfQVVYVkVDX0hcXG4gXFxuIC8qXFxuICAqIFdlIG5lZWQgdG8gcHV0IGluIHNvbWUgZXh0cmEgYXV4IHRhYmxlIGVudHJpZXMgdG8gdGVsbCBnbGliYyB3aGF0XFxuQEAgLTUwLDYgKzUwLDQgQEBcXG4gXFxuICNkZWZpbmUgQVRfTUlOU0lHU1RLU1pcXHRcXHQ1MSAgICAgIC8qIHN0YWNrIG5lZWRlZCBmb3Igc2lnbmFsIGRlbGl2ZXJ5ICovXFxuIFxcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcXHQxNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuLVxcbiAjZW5kaWZcXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmZiNDIzMzQ0NTI3NmFcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxcbkBAIC0wLDAgKzEsMTMgQEBcXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqL1xcbisvKlxcbisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQVJNIEx0ZC5cXG4rICogQ29weXJpZ2h0IChDKSAyMDE1IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYVxcbisgKi9cXG4rXFxuKyNpZm5kZWYgX0FTTV9SSVNDVl9BVVhWRUNfSFxcbisjZGVmaW5lIF9BU01fUklTQ1ZfQVVYVkVDX0hcXG4rXFxuKy8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG4rI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXFx0MTBcXG4rXFxuKyNlbmRpZiAvKiBfVUFQSV9BU01fUklTQ1ZfQVVYVkVDX0ggKi9cXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuaW5kZXggOTUwNTBlYmU5YWQwMC4uMGE3MjVmMmFhMmU3MyAxMDA2NDRcXG4tLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG5AQCAtMzMsOCArMzMsNiBAQFxcbiAjZGVmaW5lIEFUX0wzX0NBQ0hFU0laRVxcdFxcdDQ2XFxuICNkZWZpbmUgQVRfTDNfQ0FDSEVHRU9NRVRSWVxcdDQ3XFxuIFxcbi0vKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSFxcdDEwXFxuICNkZWZpbmUgQVRfTUlOU0lHU1RLU1pcXHRcXHQ1MVxcbiBcXG4gI2VuZGlmIC8qIF9VQVBJX0FTTV9SSVNDVl9BVVhWRUNfSCAqL1xcbmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmJlYWFlZmUxMmE4NGVcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxuQEAgLTAsMCArMSw3IEBAXFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovXFxuKyNpZm5kZWYgX19BU01TMzkwX0FVWFZFQ19IXFxuKyNkZWZpbmUgX19BU01TMzkwX0FVWFZFQ19IXFxuK1xcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuK1xcbisjZW5kaWZcXG5kaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbmluZGV4IGEwNTZjNDYzN2ZmY2YuLjU0YmJmZDY4ZDcwOWIgMTAwNjQ0XFxuLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbkBAIC0xLDkgKzEsNyBAQFxcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xcbi0jaWZuZGVmIF9fQVNNUzM5MF9BVVhWRUNfSFxcbi0jZGVmaW5lIF9fQVNNUzM5MF9BVVhWRUNfSFxcbisjaWZuZGVmIF9fQVNNUzM5MF9VQVBJX0FVWFZFQ19IXFxuKyNkZWZpbmUgX19BU01TMzkwX1VBUElfQVVYVkVDX0hcXG4gXFxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXFx0XFx0MzNcXG4gXFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG4tXFxuICNlbmRpZlxcbmRpZmYgLS1naXQgYS9hcmNoL3NoL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9zaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZjA4MzA4MDhlYjE5N1xcbi0tLSAvZGV2L251bGxcXG4rKysgYi9hcmNoL3NoL2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxuQEAgLTAsMCArMSw3IEBAXFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXFxuKyNpZm5kZWYgX19BU01fU0hfQVVYVkVDX0hcXG4rI2RlZmluZSBfX0FTTV9TSF9BVVhWRUNfSFxcbitcXG4rI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xcbitcXG4rI2VuZGlmIC8qIF9fQVNNX1NIX0FVWFZFQ19IICovXFxuZGlmZiAtLWdpdCBhL2FyY2gvc2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxcbmluZGV4IDYzZmNjMzllMmM2YWYuLmNmMGYxM2RhOTc3YTAgMTAwNjQ0XFxuLS0tIGEvYXJjaC9zaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuKysrIGIvYXJjaC9zaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuQEAgLTEsNiArMSw2IEBAXFxuIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovXFxuLSNpZm5kZWYgX19BU01fU0hfQVVYVkVDX0hcXG4tI2RlZmluZSBfX0FTTV9TSF9BVVhWRUNfSFxcbisjaWZuZGVmIF9fVUFQSV9BU01fU0hfQVVYVkVDX0hcXG4rI2RlZmluZSBfX1VBUElfQVNNX1NIX0FVWFZFQ19IXFxuIFxcbiAvKlxcbiAgKiBBcmNoaXRlY3R1cmUtbmV1dHJhbCBBVF8gdmFsdWVzIGluIDAtMTcsIGxlYXZlIHNvbWUgcm9vbVxcbkBAIC0zMCw2ICszMCw0IEBAXFxuICNkZWZpbmUgQVRfTDFEX0NBQ0hFU0hBUEVcXHQzNVxcbiAjZGVmaW5lIEFUX0wyX0NBQ0hFU0hBUEVcXHQzNlxcbiBcXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xcbi1cXG4tI2VuZGlmIC8qIF9fQVNNX1NIX0FVWFZFQ19IICovXFxuKyNlbmRpZiAvKiBfX1VBUElfQVNNX1NIX0FVWFZFQ19IICovXFxuZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi41MGMyNDlhOGJkMTcxXFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmhcXG5AQCAtMCwwICsxLDYgQEBcXG4rI2lmbmRlZiBfX0FTTVNQQVJDX0FVWFZFQ19IXFxuKyNkZWZpbmUgX19BU01TUEFSQ19BVVhWRUNfSFxcbitcXG4rI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXFx0NFxcbitcXG4rI2VuZGlmIC8qICEoX19BU01TUEFSQ19BVVhWRUNfSCkgKi9cXG5kaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oIGIvYXJjaC9zcGFyYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuaW5kZXggYWI4NzgwZmI5ZGYxMC4uMGZhYjNiMjkxNDhhMyAxMDA2NDRcXG4tLS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL3NwYXJjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG5AQCAtMSw1ICsxLDUgQEBcXG4tI2lmbmRlZiBfX0FTTVNQQVJDX0FVWFZFQ19IXFxuLSNkZWZpbmUgX19BU01TUEFSQ19BVVhWRUNfSFxcbisjaWZuZGVmIF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSFxcbisjZGVmaW5lIF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSFxcbiBcXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcXHRcXHQzM1xcbiBcXG5AQCAtMTAsNiArMTAsNCBAQFxcbiAjZGVmaW5lIEFUX0FESV9OQklUU1xcdDQ5XFxuICNkZWZpbmUgQVRfQURJX1VFT05BRElcXHQ1MFxcbiBcXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXFx0NFxcbi1cXG4tI2VuZGlmIC8qICEoX19BU01TUEFSQ19BVVhWRUNfSCkgKi9cXG4rI2VuZGlmIC8qICEoX19VQVBJX0FTTVNQQVJDX0FVWFZFQ19IKSAqL1xcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi5lZDI2YWQwOWYzZTM0XFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oXFxuQEAgLTAsMCArMSwxMiBAQFxcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xcbisjaWZuZGVmIF9BU01fWDg2X0FVWFZFQ19IXFxuKyNkZWZpbmUgX0FTTV9YODZfQVVYVkVDX0hcXG4rXFxuKy8qIGVudHJpZXMgaW4gQVJDSF9ETElORk86ICovXFxuKyNpZiBkZWZpbmVkKENPTkZJR19JQTMyX0VNVUxBVElPTikgfHwgIWRlZmluZWQoQ09ORklHX1g4Nl82NClcXG4rIyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAzXFxuKyNlbHNlIC8qIGVsc2UgaXQncyBub24tY29tcGF0IHg4Ni02NCAqL1xcbisjIGRlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDJcXG4rI2VuZGlmXFxuK1xcbisjZW5kaWYgLyogX0FTTV9YODZfQVVYVkVDX0ggKi9cXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG5pbmRleCBiZGRlOWUxOGY5NGVlLi42Njc3YzlhY2UxMTc2IDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXFxuQEAgLTEsNiArMSw2IEBAXFxuIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovXFxuLSNpZm5kZWYgX0FTTV9YODZfQVVYVkVDX0hcXG4tI2RlZmluZSBfQVNNX1g4Nl9BVVhWRUNfSFxcbisjaWZuZGVmIF9VQVBJX0FTTV9YODZfQVVYVkVDX0hcXG4rI2RlZmluZSBfVUFQSV9BU01fWDg2X0FVWFZFQ19IXFxuIC8qXFxuICAqIEFyY2hpdGVjdHVyZS1uZXV0cmFsIEFUXyB2YWx1ZXMgaW4gMC0xNywgbGVhdmUgc29tZSByb29tXFxuICAqIGZvciBtb3JlIG9mIHRoZW0sIHN0YXJ0IHRoZSB4ODYtc3BlY2lmaWMgb25lcyBhdCAzMi5cXG5AQCAtMTAsMTEgKzEwLDQgQEBcXG4gI2VuZGlmXFxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXFx0XFx0MzNcXG4gXFxuLS8qIGVudHJpZXMgaW4gQVJDSF9ETElORk86ICovXFxuLSNpZiBkZWZpbmVkKF9fS0VSTkVMX18pIFxcdTAwMjZcXHUwMDI2IChkZWZpbmVkKENPTkZJR19JQTMyX0VNVUxBVElPTikgfHwgIWRlZmluZWQoQ09ORklHX1g4Nl82NCkpXFxuLSMgZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggM1xcbi0jZWxzZSAvKiBlbHNlIGl0J3Mgbm9uLWNvbXBhdCB4ODYtNjQgKi9cXG4tIyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyXFxuLSNlbmRpZlxcbi1cXG4tI2VuZGlmIC8qIF9BU01fWDg2X0FVWFZFQ19IICovXFxuKyNlbmRpZiAvKiBfVUFQSV9BU01fWDg2X0FVWFZFQ19IICovXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGRcXG5pbmRleCAyYmMwMGM2N2RjNTRiLi45MDYyNjM1OGY5NGI0IDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkXFxuKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGRcXG5AQCAtNiw2ICs2LDcgQEBcXG4gXFxuIG1hbmRhdG9yeS15ICs9IGF0b21pYy5oXFxuIG1hbmRhdG9yeS15ICs9IGFyY2hyYW5kb20uaFxcbittYW5kYXRvcnkteSArPSBhdXh2ZWMuaFxcbiBtYW5kYXRvcnkteSArPSBiYXJyaWVyLmhcXG4gbWFuZGF0b3J5LXkgKz0gYml0b3BzLmhcXG4gbWFuZGF0b3J5LXkgKz0gYnVnLmhcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmhcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmU0YWJkMmE4YzVlZDNcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaFxcbkBAIC0wLDAgKzEsNyBAQFxcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xcbisjaWZuZGVmIF9fQVNNX0dFTkVSSUNfQVVYVkFMX0hfX1xcbisjZGVmaW5lIF9fQVNNX0dFTkVSSUNfQVVYVkFMX0hfX1xcbitcXG4rI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDBcXG4rXFxuKyNlbmRpZlxcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2F1eHZlYy5oIGIvaW5jbHVkZS9saW51eC9hdXh2ZWMuaFxcbmluZGV4IDhiY2I5YjcyNjI2MjguLmY3ZGRlYTFkYmM4ZWQgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9hdXh2ZWMuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvYXV4dmVjLmhcXG5AQCAtMiw4ICsyLDEzIEBAXFxuICNpZm5kZWYgX0xJTlVYX0FVWFZFQ19IXFxuICNkZWZpbmUgX0xJTlVYX0FVWFZFQ19IXFxuIFxcbisjaW5jbHVkZSBcXHUwMDNjdWFwaS9hc20vYXV4dmVjLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2N1YXBpL2xpbnV4L2F1eHZlYy5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjYXNtL2F1eHZlYy5oXFx1MDAzZVxcbiBcXG4gI2RlZmluZSBBVF9WRUNUT1JfU0laRV9CQVNFIDI0IC8qIE5FV19BVVhfRU5UIGVudHJpZXMgaW4gYXV4aWxpYXJ5IHRhYmxlICovXFxuICAgLyogbnVtYmVyIG9mIFxcXCIjZGVmaW5lIEFUXy4qXFxcIiBhYm92ZSwgbWludXMge0FUX05VTEwsIEFUX0lHTk9SRSwgQVRfTk9URUxGfSAqL1xcbitcXG4rI2RlZmluZSBBVF9WRUNUT1JfU0laRSAoMiooQVRfVkVDVE9SX1NJWkVfQVJDSCArIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgKyAxKSlcXG4rXFxuICNlbmRpZiAvKiBfTElOVVhfQVVYVkVDX0ggKi9cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIGIvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oXFxuaW5kZXggNmQ4MTVmNjQ0MGM5NC4uMDhhMDZiMjYzNzViMiAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmhcXG5AQCAtMjYsMTIgKzI2LDYgQEBcXG4gXFxuICNpbmNsdWRlIFxcdTAwM2Nhc20vbW11LmhcXHUwMDNlXFxuIFxcbi0jaWZuZGVmIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDBcXG4tI2VuZGlmXFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkUgKDIqKEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggKyBBVF9WRUNUT1JfU0laRV9CQVNFICsgMSkpXFxuLVxcbi1cXG4gc3RydWN0IGFkZHJlc3Nfc3BhY2U7XFxuIHN0cnVjdCBmdXRleF9wcml2YXRlX2hhc2g7XFxuIHN0cnVjdCBtZW1fY2dyb3VwO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQxMDowNjoxMi43ODk3NDU5MDFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjE2MzA4MDMyOTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpcyBhIGhlYWRlciByZWZhY3RvcmluZyB0aGF0IHNlcGFyYXRlcyBrZXJuZWwtaW50ZXJuYWwgQVRfVkVDVE9SX1NJWkVfQVJDSCBtYWNyb3MgZnJvbSBVQVBJIGhlYWRlcnMgaW50byBpbnRlcm5hbCBhc20gaGVhZGVycyBhbmQgY2VudHJhbGl6ZXMgQVRfVkVDVE9SX1NJWkUgaW4gaW5jbHVkZS9saW51eC9hdXh2ZWMuaC4gTm8gZXhlY3V0YWJsZSBDIGNvZGUsIGRhdGEgc3RydWN0dXJlcywgY29uc3RhbnRzLCBhc3NlcnRpb25zLCBvciBydW50aW1lIGxvZ2ljIGFyZSBhbHRlcmVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkNTY2ZGYwNWM4MTMxNDY3ZTRlZGIxYWM3ODRmZTdmOTcxOGE1MjE1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBTZXAgNCAxMDowNjowOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlNcbmluZGV4IDNhMTlkYTc0ZDAwYzkuLjY5NzRmOGRhZDFlOWEgMTAwNjQ0XG4tLS0gYS9NQUlOVEFJTkVSU1xuKysrIGIvTUFJTlRBSU5FUlNcbkBAIC05ODA4LDEzICs5ODA4LDE4IEBAIEw6XHRsaW51eC1tbUBrdmFjay5vcmdcbiBTOlx0U3VwcG9ydGVkXG4gVDpcdGdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQva2Vlcy9saW51eC5naXQgZm9yLW5leHQvZXhlY3ZlXG4gRjpcdERvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9FTEYucnN0XG4rRjpcdGFyY2gvKi9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuK0Y6XHRhcmNoLyovaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuIEY6XHRmcy8qYmluZm10XyouY1xuIEY6XHRmcy9LY29uZmlnLmJpbmZtdFxuIEY6XHRmcy9leGVjLmNcbiBGOlx0ZnMvdGVzdHMvYmluZm10Xypfa3VuaXQuY1xuIEY6XHRmcy90ZXN0cy9leGVjX2t1bml0LmNcbitGOlx0aW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaFxuK0Y6XHRpbmNsdWRlL2xpbnV4L2F1eHZlYy5oXG4gRjpcdGluY2x1ZGUvbGludXgvYmluZm10cy5oXG4gRjpcdGluY2x1ZGUvbGludXgvZWxmLmhcbitGOlx0aW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2F1eHZlYy5oXG4gRjpcdGluY2x1ZGUvdWFwaS9saW51eC9hdXh2ZWMuaFxuIEY6XHRpbmNsdWRlL3VhcGkvbGludXgvYmluZm10cy5oXG4gRjpcdGluY2x1ZGUvdWFwaS9saW51eC9lbGYuaFxuZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZmE5MGVlNGY4OTljNlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuQEAgLTAsMCArMSw3IEBAXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cbisjaWZuZGVmIF9fQVNNX0FMUEhBX0FVWFZFQ19IXG4rI2RlZmluZSBfX0FTTV9BTFBIQV9BVVhWRUNfSFxuK1xuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCA0IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbitcbisjZW5kaWYgLyogX19BU01fQUxQSEFfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDU3Y2FlODc4MGQ4MTEuLmQyMWI4N2I2NzMwYTQgMTAwNjQ0XG4tLS0gYS9hcmNoL2FscGhhL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbisrKyBiL2FyY2gvYWxwaGEvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuQEAgLTEsNiArMSw2IEBAXG4gLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi9cbi0jaWZuZGVmIF9fQVNNX0FMUEhBX0FVWFZFQ19IXG4tI2RlZmluZSBfX0FTTV9BTFBIQV9BVVhWRUNfSFxuKyNpZm5kZWYgX19VQVBJX0FTTV9BTFBIQV9BVVhWRUNfSFxuKyNkZWZpbmUgX19VQVBJX0FTTV9BTFBIQV9BVVhWRUNfSFxuIFxuIC8qIFJlc2VydmUgdGhlc2UgbnVtYmVycyBmb3IgYW55IGZ1dHVyZSB1c2Ugb2YgYSBWRFNPLiAgKi9cbiAjaWYgMFxuQEAgLTIyLDYgKzIyLDQgQEBcbiAjZGVmaW5lIEFUX0wyX0NBQ0hFU0hBUEVcdDM2XG4gI2RlZmluZSBBVF9MM19DQUNIRVNIQVBFXHQzN1xuIFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCA0IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbi1cbi0jZW5kaWYgLyogX19BU01fQUxQSEFfQVVYVkVDX0ggKi9cbisjZW5kaWYgLyogX19VQVBJX0FTTV9BTFBIQV9BVVhWRUNfSCAqL1xuZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vYXV4dmVjLmhcbmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggZmJkMzg4YzQ2Mjk5MC4uMDAwMDAwMDAwMDAwMFxuLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vYXV4dmVjLmhcbisrKyAvZGV2L251bGxcbkBAIC0xICswLDAgQEBcbi0jaW5jbHVkZSBcdTAwM2N1YXBpL2FzbS9hdXh2ZWMuaFx1MDAzZVxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZGUyNGVhYWEwNmUyN1xuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuQEAgLTAsMCArMSw3IEBAXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cbisjaWZuZGVmIF9fQVNNX0FVWFZFQ19IXG4rI2RlZmluZSBfX0FTTV9BVVhWRUNfSFxuK1xuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbitcbisjZW5kaWZcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDc0M2MwYjg0ZmQzMGQuLmZiNTFlOTA2ODEzYTkgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuQEAgLTE0LDEzICsxNCwxMSBAQFxuICAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSBcdTAwM2NodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvXHUwMDNlLlxuICAqL1xuLSNpZm5kZWYgX19BU01fQVVYVkVDX0hcbi0jZGVmaW5lIF9fQVNNX0FVWFZFQ19IXG4rI2lmbmRlZiBfX1VBUElfQVNNX0FVWFZFQ19IXG4rI2RlZmluZSBfX1VBUElfQVNNX0FVWFZFQ19IXG4gXG4gLyogdkRTTyBsb2NhdGlvbiAqL1xuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXHQzM1xuICNkZWZpbmUgQVRfTUlOU0lHU1RLU1pcdDUxXHQvKiBzdGFjayBuZWVkZWQgZm9yIHNpZ25hbCBkZWxpdmVyeSAqL1xuIFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbi1cbiAjZW5kaWZcbmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uMzdkZDcxN2EzYTIyYlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgKzEsMTQgQEBcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsgKi9cbisvKlxuKyAqIEF1dGhvcjogSGFubHUgTGkgXHUwMDNjbGloYW5sdUBsb29uZ3Nvbi5jblx1MDAzZVxuKyAqICAgICAgICAgSHVhY2FpIENoZW4gXHUwMDNjY2hlbmh1YWNhaUBsb29uZ3Nvbi5jblx1MDAzZVxuKyAqXG4rICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgTG9vbmdzb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiBMaW1pdGVkXG4rICovXG4rXG4rI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxuKyNkZWZpbmUgX19BU01fQVVYVkVDX0hcbitcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4rXG4rI2VuZGlmIC8qIF9fQVNNX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDkyMmQ5ZTZiNTA1ODYuLjc5NjkxYzQyMmM3ZTQgMTAwNjQ0XG4tLS0gYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG4rKysgYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtNiwxMiArNiwxMCBAQFxuICAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIyIExvb25nc29uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZFxuICAqL1xuIFxuLSNpZm5kZWYgX19BU01fQVVYVkVDX0hcbi0jZGVmaW5lIF9fQVNNX0FVWFZFQ19IXG4rI2lmbmRlZiBfX1VBUElfQVNNX0FVWFZFQ19IXG4rI2RlZmluZSBfX1VBUElfQVNNX0FVWFZFQ19IXG4gXG4gLyogTG9jYXRpb24gb2YgVkRTTyBpbWFnZS4gKi9cbiAjZGVmaW5lIEFUX1NZU0lORk9fRUhEUlx0XHQzM1xuIFxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbi1cbi0jZW5kaWYgLyogX19BU01fQVVYVkVDX0ggKi9cbisjZW5kaWYgLyogX19VQVBJX0FTTV9BVVhWRUNfSCAqL1xuZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjc2YzQ0NWU3ODkwZmVcbi0tLSAvZGV2L251bGxcbisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuQEAgLTAsMCArMSwxNyBAQFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKyAqL1xuKy8qXG4rICogQ29weXJpZ2h0IChDKSAyMDE1IEltYWdpbmF0aW9uIFRlY2hub2xvZ2llc1xuKyAqIEF1dGhvcjogQWxleCBTbWl0aCBcdTAwM2NhbGV4LnNtaXRoQGltZ3RlYy5jb21cdTAwM2VcbisgKlxuKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4rICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlXG4rICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyXG4rICogb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbisgKi9cbitcbisjaWZuZGVmIF9fQVNNX0FVWFZFQ19IXG4rI2RlZmluZSBfX0FTTV9BVVhWRUNfSFxuK1xuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbitcbisjZW5kaWYgLyogX19BU01fQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5pbmRleCA2MTJjMmM0MWY2MGIyLi4xMzMxYWM0ZDkzNWUzIDEwMDY0NFxuLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtOSwxMiArOSwxMCBAQFxuICAqIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gICovXG4gXG4tI2lmbmRlZiBfX0FTTV9BVVhWRUNfSFxuLSNkZWZpbmUgX19BU01fQVVYVkVDX0hcbisjaWZuZGVmIF9fVUFQSV9BU01fQVVYVkVDX0hcbisjZGVmaW5lIF9fVUFQSV9BU01fQVVYVkVDX0hcbiBcbiAvKiBMb2NhdGlvbiBvZiBWRFNPIGltYWdlLiAqL1xuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXHRcdDMzXG4gXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDEgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuLVxuLSNlbmRpZiAvKiBfX0FTTV9BVVhWRUNfSCAqL1xuKyNlbmRpZiAvKiBfX1VBUElfQVNNX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZDZjMTgwZTlhYzJjYlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICsxLDcgQEBcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xuKyNpZm5kZWYgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4rI2RlZmluZSBfQVNNX1BPV0VSUENfQVVYVkVDX0hcbitcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDE1IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbitcbisjZW5kaWZcbmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5pbmRleCBhYTdjMTYyMTU0NTM4Li45YWI1YjZkMTc5Mjk2IDEwMDY0NFxuLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtMSw2ICsxLDYgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4tI2RlZmluZSBfQVNNX1BPV0VSUENfQVVYVkVDX0hcbisjaWZuZGVmIF9VQVBJX0FTTV9QT1dFUlBDX0FVWFZFQ19IXG4rI2RlZmluZSBfVUFQSV9BU01fUE9XRVJQQ19BVVhWRUNfSFxuIFxuIC8qXG4gICogV2UgbmVlZCB0byBwdXQgaW4gc29tZSBleHRyYSBhdXggdGFibGUgZW50cmllcyB0byB0ZWxsIGdsaWJjIHdoYXRcbkBAIC01MCw2ICs1MCw0IEBAXG4gXG4gI2RlZmluZSBBVF9NSU5TSUdTVEtTWlx0XHQ1MSAgICAgIC8qIHN0YWNrIG5lZWRlZCBmb3Igc2lnbmFsIGRlbGl2ZXJ5ICovXG4gXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXHQxNSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXG4tXG4gI2VuZGlmXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5mYjQyMzM0NDUyNzZhXG4tLS0gL2Rldi9udWxsXG4rKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICsxLDEzIEBAXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqL1xuKy8qXG4rICogQ29weXJpZ2h0IChDKSAyMDEyIEFSTSBMdGQuXG4rICogQ29weXJpZ2h0IChDKSAyMDE1IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYVxuKyAqL1xuK1xuKyNpZm5kZWYgX0FTTV9SSVNDVl9BVVhWRUNfSFxuKyNkZWZpbmUgX0FTTV9SSVNDVl9BVVhWRUNfSFxuK1xuKy8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDEwXG4rXG4rI2VuZGlmIC8qIF9VQVBJX0FTTV9SSVNDVl9BVVhWRUNfSCAqL1xuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuaW5kZXggOTUwNTBlYmU5YWQwMC4uMGE3MjVmMmFhMmU3MyAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtMzMsOCArMzMsNiBAQFxuICNkZWZpbmUgQVRfTDNfQ0FDSEVTSVpFXHRcdDQ2XG4gI2RlZmluZSBBVF9MM19DQUNIRUdFT01FVFJZXHQ0N1xuIFxuLS8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDEwXG4gI2RlZmluZSBBVF9NSU5TSUdTVEtTWlx0XHQ1MVxuIFxuICNlbmRpZiAvKiBfVUFQSV9BU01fUklTQ1ZfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5iZWFhZWZlMTJhODRlXG4tLS0gL2Rldi9udWxsXG4rKysgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgKzEsNyBAQFxuKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovXG4rI2lmbmRlZiBfX0FTTVMzOTBfQVVYVkVDX0hcbisjZGVmaW5lIF9fQVNNUzM5MF9BVVhWRUNfSFxuK1xuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbitcbisjZW5kaWZcbmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5pbmRleCBhMDU2YzQ2MzdmZmNmLi41NGJiZmQ2OGQ3MDliIDEwMDY0NFxuLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbisrKyBiL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtMSw5ICsxLDcgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX19BU01TMzkwX0FVWFZFQ19IXG4tI2RlZmluZSBfX0FTTVMzOTBfQVVYVkVDX0hcbisjaWZuZGVmIF9fQVNNUzM5MF9VQVBJX0FVWFZFQ19IXG4rI2RlZmluZSBfX0FTTVMzOTBfVUFQSV9BVVhWRUNfSFxuIFxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXHRcdDMzXG4gXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDEgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuLVxuICNlbmRpZlxuZGlmZiAtLWdpdCBhL2FyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmggYi9hcmNoL3NoL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZjA4MzA4MDhlYjE5N1xuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC9zaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaFxuQEAgLTAsMCArMSw3IEBAXG4rLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cbisjaWZuZGVmIF9fQVNNX1NIX0FVWFZFQ19IXG4rI2RlZmluZSBfX0FTTV9TSF9BVVhWRUNfSFxuK1xuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCA1IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cbitcbisjZW5kaWYgLyogX19BU01fU0hfQVVYVkVDX0ggKi9cbmRpZmYgLS1naXQgYS9hcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmggYi9hcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IDYzZmNjMzllMmM2YWYuLmNmMGYxM2RhOTc3YTAgMTAwNjQ0XG4tLS0gYS9hcmNoL3NoL2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbisrKyBiL2FyY2gvc2gvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuQEAgLTEsNiArMSw2IEBAXG4gLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi9cbi0jaWZuZGVmIF9fQVNNX1NIX0FVWFZFQ19IXG4tI2RlZmluZSBfX0FTTV9TSF9BVVhWRUNfSFxuKyNpZm5kZWYgX19VQVBJX0FTTV9TSF9BVVhWRUNfSFxuKyNkZWZpbmUgX19VQVBJX0FTTV9TSF9BVVhWRUNfSFxuIFxuIC8qXG4gICogQXJjaGl0ZWN0dXJlLW5ldXRyYWwgQVRfIHZhbHVlcyBpbiAwLTE3LCBsZWF2ZSBzb21lIHJvb21cbkBAIC0zMCw2ICszMCw0IEBAXG4gI2RlZmluZSBBVF9MMURfQ0FDSEVTSEFQRVx0MzVcbiAjZGVmaW5lIEFUX0wyX0NBQ0hFU0hBUEVcdDM2XG4gXG4tI2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xuLVxuLSNlbmRpZiAvKiBfX0FTTV9TSF9BVVhWRUNfSCAqL1xuKyNlbmRpZiAvKiBfX1VBUElfQVNNX1NIX0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi41MGMyNDlhOGJkMTcxXG4tLS0gL2Rldi9udWxsXG4rKysgYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5AQCAtMCwwICsxLDYgQEBcbisjaWZuZGVmIF9fQVNNU1BBUkNfQVVYVkVDX0hcbisjZGVmaW5lIF9fQVNNU1BBUkNfQVVYVkVDX0hcbitcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDRcbitcbisjZW5kaWYgLyogIShfX0FTTVNQQVJDX0FVWFZFQ19IKSAqL1xuZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuaW5kZXggYWI4NzgwZmI5ZGYxMC4uMGZhYjNiMjkxNDhhMyAxMDA2NDRcbi0tLSBhL2FyY2gvc3BhcmMvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaFxuKysrIGIvYXJjaC9zcGFyYy9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtMSw1ICsxLDUgQEBcbi0jaWZuZGVmIF9fQVNNU1BBUkNfQVVYVkVDX0hcbi0jZGVmaW5lIF9fQVNNU1BBUkNfQVVYVkVDX0hcbisjaWZuZGVmIF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSFxuKyNkZWZpbmUgX19VQVBJX0FTTVNQQVJDX0FVWFZFQ19IXG4gXG4gI2RlZmluZSBBVF9TWVNJTkZPX0VIRFJcdFx0MzNcbiBcbkBAIC0xMCw2ICsxMCw0IEBAXG4gI2RlZmluZSBBVF9BRElfTkJJVFNcdDQ5XG4gI2RlZmluZSBBVF9BRElfVUVPTkFESVx0NTBcbiBcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcdDRcbi1cbi0jZW5kaWYgLyogIShfX0FTTVNQQVJDX0FVWFZFQ19IKSAqL1xuKyNlbmRpZiAvKiAhKF9fVUFQSV9BU01TUEFSQ19BVVhWRUNfSCkgKi9cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZWQyNmFkMDlmM2UzNFxuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmhcbkBAIC0wLDAgKzEsMTIgQEBcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xuKyNpZm5kZWYgX0FTTV9YODZfQVVYVkVDX0hcbisjZGVmaW5lIF9BU01fWDg2X0FVWFZFQ19IXG4rXG4rLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTzogKi9cbisjaWYgZGVmaW5lZChDT05GSUdfSUEzMl9FTVVMQVRJT04pIHx8ICFkZWZpbmVkKENPTkZJR19YODZfNjQpXG4rIyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAzXG4rI2Vsc2UgLyogZWxzZSBpdCdzIG5vbi1jb21wYXQgeDg2LTY0ICovXG4rIyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAyXG4rI2VuZGlmXG4rXG4rI2VuZGlmIC8qIF9BU01fWDg2X0FVWFZFQ19IICovXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9hdXh2ZWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmhcbmluZGV4IGJkZGU5ZTE4Zjk0ZWUuLjY2NzdjOWFjZTExNzYgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oXG5AQCAtMSw2ICsxLDYgQEBcbiAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqL1xuLSNpZm5kZWYgX0FTTV9YODZfQVVYVkVDX0hcbi0jZGVmaW5lIF9BU01fWDg2X0FVWFZFQ19IXG4rI2lmbmRlZiBfVUFQSV9BU01fWDg2X0FVWFZFQ19IXG4rI2RlZmluZSBfVUFQSV9BU01fWDg2X0FVWFZFQ19IXG4gLypcbiAgKiBBcmNoaXRlY3R1cmUtbmV1dHJhbCBBVF8gdmFsdWVzIGluIDAtMTcsIGxlYXZlIHNvbWUgcm9vbVxuICAqIGZvciBtb3JlIG9mIHRoZW0sIHN0YXJ0IHRoZSB4ODYtc3BlY2lmaWMgb25lcyBhdCAzMi5cbkBAIC0xMCwxMSArMTAsNCBAQFxuICNlbmRpZlxuICNkZWZpbmUgQVRfU1lTSU5GT19FSERSXHRcdDMzXG4gXG4tLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTzogKi9cbi0jaWYgZGVmaW5lZChfX0tFUk5FTF9fKSBcdTAwMjZcdTAwMjYgKGRlZmluZWQoQ09ORklHX0lBMzJfRU1VTEFUSU9OKSB8fCAhZGVmaW5lZChDT05GSUdfWDg2XzY0KSlcbi0jIGRlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDNcbi0jZWxzZSAvKiBlbHNlIGl0J3Mgbm9uLWNvbXBhdCB4ODYtNjQgKi9cbi0jIGRlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDJcbi0jZW5kaWZcbi1cbi0jZW5kaWYgLyogX0FTTV9YODZfQVVYVkVDX0ggKi9cbisjZW5kaWYgLyogX1VBUElfQVNNX1g4Nl9BVVhWRUNfSCAqL1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGRcbmluZGV4IDJiYzAwYzY3ZGM1NGIuLjkwNjI2MzU4Zjk0YjQgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2FzbS1nZW5lcmljL0tidWlsZFxuKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGRcbkBAIC02LDYgKzYsNyBAQFxuIFxuIG1hbmRhdG9yeS15ICs9IGF0b21pYy5oXG4gbWFuZGF0b3J5LXkgKz0gYXJjaHJhbmRvbS5oXG4rbWFuZGF0b3J5LXkgKz0gYXV4dmVjLmhcbiBtYW5kYXRvcnkteSArPSBiYXJyaWVyLmhcbiBtYW5kYXRvcnkteSArPSBiaXRvcHMuaFxuIG1hbmRhdG9yeS15ICs9IGJ1Zy5oXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmhcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5lNGFiZDJhOGM1ZWQzXG4tLS0gL2Rldi9udWxsXG4rKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL2F1eHZlYy5oXG5AQCAtMCwwICsxLDcgQEBcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xuKyNpZm5kZWYgX19BU01fR0VORVJJQ19BVVhWQUxfSF9fXG4rI2RlZmluZSBfX0FTTV9HRU5FUklDX0FVWFZBTF9IX19cbitcbisjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMFxuK1xuKyNlbmRpZlxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYXV4dmVjLmggYi9pbmNsdWRlL2xpbnV4L2F1eHZlYy5oXG5pbmRleCA4YmNiOWI3MjYyNjI4Li5mN2RkZWExZGJjOGVkIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9hdXh2ZWMuaFxuKysrIGIvaW5jbHVkZS9saW51eC9hdXh2ZWMuaFxuQEAgLTIsOCArMiwxMyBAQFxuICNpZm5kZWYgX0xJTlVYX0FVWFZFQ19IXG4gI2RlZmluZSBfTElOVVhfQVVYVkVDX0hcbiBcbisjaW5jbHVkZSBcdTAwM2N1YXBpL2FzbS9hdXh2ZWMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY3VhcGkvbGludXgvYXV4dmVjLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2Nhc20vYXV4dmVjLmhcdTAwM2VcbiBcbiAjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgMjQgLyogTkVXX0FVWF9FTlQgZW50cmllcyBpbiBhdXhpbGlhcnkgdGFibGUgKi9cbiAgIC8qIG51bWJlciBvZiBcIiNkZWZpbmUgQVRfLipcIiBhYm92ZSwgbWludXMge0FUX05VTEwsIEFUX0lHTk9SRSwgQVRfTk9URUxGfSAqL1xuK1xuKyNkZWZpbmUgQVRfVkVDVE9SX1NJWkUgKDIqKEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggKyBBVF9WRUNUT1JfU0laRV9CQVNFICsgMSkpXG4rXG4gI2VuZGlmIC8qIF9MSU5VWF9BVVhWRUNfSCAqL1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCBiL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaFxuaW5kZXggNmQ4MTVmNjQ0MGM5NC4uMDhhMDZiMjYzNzViMiAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaFxuKysrIGIvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oXG5AQCAtMjYsMTIgKzI2LDYgQEBcbiBcbiAjaW5jbHVkZSBcdTAwM2Nhc20vbW11LmhcdTAwM2VcbiBcbi0jaWZuZGVmIEFUX1ZFQ1RPUl9TSVpFX0FSQ0hcbi0jZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMFxuLSNlbmRpZlxuLSNkZWZpbmUgQVRfVkVDVE9SX1NJWkUgKDIqKEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggKyBBVF9WRUNUT1JfU0laRV9CQVNFICsgMSkpXG4tXG4tXG4gc3RydWN0IGFkZHJlc3Nfc3BhY2U7XG4gc3RydWN0IGZ1dGV4X3ByaXZhdGVfaGFzaDtcbiBzdHJ1Y3QgbWVtX2Nncm91cDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDEwOjA2OjEyLjc4OTc0NzY0MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ3NjIyOTE1NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIHBhdGNoIGFuZCBkaXNzZWN0IHRoZSBtb2RpZmljYXRpb25zLiBNeSBmaXJzdCBpbXByZXNzaW9uIGlzIHRoYXQgaXQgc2VlbXMgdG8gYmUgcHJpbWFyaWx5IGZvY3VzZWQgb24gcmVmYWN0b3JpbmcgYW5kIHJlb3JnYW5pemluZyBoZWFkZXIgZmlsZXMsIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIHRoZSBhdXhpbGlhcnkgdmVjdG9yIGRlZmluaXRpb25zLiBUaGUgcGF0Y2ggdG91Y2hlcyBvbiBgTUFJTlRBSU5FUlNgLCB3aGljaCBpcyBnZW5lcmFsbHkgYSBnb29kIHNpZ24gb2YgY2xlYW4tdXAgYW5kIGRvY3VtZW50YXRpb24gdXBkYXRlcy5cblxuSSBzZWUgdGhhdCBgYXJjaC8qL2luY2x1ZGUvYXNtL2F1eHZlYy5oYCBhbmQgYGFyY2gvKi9pbmNsdWRlL3VhcGkvYXNtL2F1eHZlYy5oYCBhcmUgYmVpbmcgbW9kaWZpZWQgYWNyb3NzIG11bHRpcGxlIGFyY2hpdGVjdHVyZXMgKGFscGhhLCBhcm0sIGFybTY0LCBldGMuKS4gTXkgaHlwb3RoZXNpcyBpcyB0aGF0IHRoaXMgaW52b2x2ZXMgbW92aW5nIGBBVF9WRUNUT1JfU0laRV9BUkNIYCBkZWZpbml0aW9ucyBmcm9tIHRoZSB1c2VyLXNwYWNlIEFQSSBoZWFkZXJzIChgdWFwaWApIGludG8gdGhlIGtlcm5lbC1pbnRlcm5hbCBoZWFkZXJzIChgYXNtYCkuIFRoYXQncyBhIGdvb2QgcHJhY3RpY2UsIHByb21vdGluZyBiZXR0ZXIgc2VwYXJhdGlvbiBvZiBjb25jZXJucyBhbmQgcHJldmVudGluZyBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIG1pc3VzZSBieSB1c2VyLXNwYWNlIGNvZGUuXG5cblRoZSBwYXRjaCBhbHNvIGFkZHMgYGF1eHZlYy5oYCB0byB0aGUgbWFuZGF0b3J5IGJ1aWxkIHRhcmdldHMgYW5kIGRlZmluZXMgYSBkZWZhdWx0IGBBVF9WRUNUT1JfU0laRV9BUkNIYCBpbiBgaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGRgIGFuZCBgaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaGAuIFRoaXMgc3VnZ2VzdHMgc29tZSBzb3J0IG9mIGZhbGxiYWNrIG1lY2hhbmlzbSBvciBnZW5lcmFsIGRlZmluaXRpb24gaXMgYmVpbmcgYWRkZWQsIGEgbmljZSB0b3VjaC5cblxuRnVydGhlciwgSSdtIG5vdGljaW5nIGBpbmNsdWRlL2xpbnV4L2F1eHZlYy5oYCBub3cgaW5jbHVkZXMgYFx1MDAzY3VhcGkvYXNtL2F1eHZlYy5oXHUwMDNlYCwgYFx1MDAzY3VhcGkvbGludXgvYXV4dmVjLmhcdTAwM2VgLCBhbmQgYFx1MDAzY2FzbS9hdXh2ZWMuaFx1MDAzZWAgYW5kIGRlZmluZXMgYEFUX1ZFQ1RPUl9TSVpFYC4gVGhpcyBjb25zb2xpZGF0aW9uIHBvaW50cyB0byB0aGUgY2VudHJhbCBsb2NhdGlvbiBmb3IgbWFuYWdpbmcgdGhlc2UgZGVmaW5pdGlvbnMuXG5cbkZpbmFsbHksIHRoZSByZW1vdmFsIG9mIHRoZSBgI2lmbmRlZiBBVF9WRUNUT1JfU0laRV9BUkNIIC4uLiAjZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFIC4uLmAgZGVmaW5pdGlvbiBmcm9tIGBpbmNsdWRlL2xpbnV4L21tX3R5cGVzLmhgIHN1Z2dlc3RzIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIGRlZmluaXRpb24gaGFzIGJlZW4gbW92ZWQgdG8gaXRzIHByb3BlciBsb2NhdGlvbi5cblxuTXkgZ3V0IGZlZWxpbmcgaXMgdGhhdCB0aGlzIGlzIHB1cmVseSBhIGhlYWRlciByZW9yZ2FuaXphdGlvbi9jbGVhbnVwIGV4ZXJjaXNlIHRvIHJlZHVjZSBkdXBsaWNhdGlvbiBhbmQgaW1wcm92ZSB0aGUgb3ZlcmFsbCBzdHJ1Y3R1cmUsIGFuZCBhIGdvb2QgdGhpbmcgdG8gZG8uIEhvd2V2ZXIsIEkgbmVlZCB0byBjb25maXJtIHRoaXMgYmVmb3JlIEkgZmVlbCBlbnRpcmVseSBjb21mb3J0YWJsZS5cblxuVG8gYmUgY2VydGFpbiwgSSB3YW50IHRvIHZlcmlmeSBpZiBhbnkgZXhlY3V0YWJsZSBsb2dpYyBpcyBhZmZlY3RlZC4gSSdsbCBuZWVkIHRvIHVzZSBgZ3JlcHBlcmAgb3IgYHJlYWQtZmlsZWAgdG8gY2hlY2sgdGhlIGFjdHVhbCB1c2VzIGFuZCBkZWZpbml0aW9ucyBvZiBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgYW5kIGBBVF9WRUNUT1JfU0laRWAgdGhyb3VnaG91dCB0aGUgY29kZWJhc2UuIFRoaXMgd2lsbCBjb25maXJtIHdoZXRoZXIgdGhpcyBpcyBhIHB1cmVseSBzdHJ1Y3R1cmFsIGNoYW5nZSBvciBpZiB0aGVyZSBhcmUgc3VidGxlIGJlaGF2aW9yYWwgY2hhbmdlcyBJIG5lZWQgdG8gYmUgYXdhcmUgb2YuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkwMDYsIk91dHB1dFRva2VucyI6MTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNjMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQxMDowNjoxNy41NTIwNDE5ODFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU0NzcyMDgzNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJBVF9WRUNUT1JfU0laRVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTQtXFxuYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo1OiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCA0IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG5hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTYtXFxuLS1cXG5hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2VsZi5oPTE0ND1leHRlcm4gaW50IGFscGhhX2wzX2NhY2hlc2hhcGU7XFxuYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9lbGYuaC0xNDUtXFxuYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9lbGYuaDoxNDY6LyogdXBkYXRlIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggaWYgdGhlIG51bWJlciBvZiBORVdfQVVYX0VOVCBlbnRyaWVzIGNoYW5nZXMgKi9cXG5hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2VsZi5oLTE0Ny0jZGVmaW5lIEFSQ0hfRExJTkZPXFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hdXh2ZWMuaC00LVxcbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXV4dmVjLmg6NTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMiAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hdXh2ZWMuaC02LVxcbi0tXFxuYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9lbGYuaD0xNTI9dHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgZWxmX2ZwcmVnc2V0X3Q7XFxuLS1cXG5hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2VsZi5oLTE2Ni1cXG5hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2VsZi5oOjE2NzovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xcbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZWxmLmgtMTY4LSNkZWZpbmUgQVJDSF9ETElORk9cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaC0xMS1cXG5hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9hdXh2ZWMuaDoxMjojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vYXV4dmVjLmgtMTMtXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9lbGYuaD0zMTk9ZXh0ZXJuIGNvbnN0IGNoYXIgKl9fZWxmX3BsYXRmb3JtO1xcbi0tXFxuYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20vZWxmLmgtMzQwLVxcbmFyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2VsZi5oOjM0MTovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xcbmFyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2VsZi5oLTM0Mi0jZGVmaW5lIEFSQ0hfRExJTkZPXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTE0LVxcbmFyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdXh2ZWMuaDoxNTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMSAvKiBlbnRyaWVzIGluIEFSQ0hfRExJTkZPICovXFxuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2F1eHZlYy5oLTE2LVxcbi0tXFxuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2VsZi5oPTQzNj1leHRlcm4gY29uc3QgY2hhciAqX19lbGZfYmFzZV9wbGF0Zm9ybTtcXG4tLVxcbmFyY2gvbWlwcy9pbmNsdWRlL2FzbS9lbGYuaC00NTktXFxuYXJjaC9taXBzL2luY2x1ZGUvYXNtL2VsZi5oOjQ2MDovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xcbmFyY2gvbWlwcy9pbmNsdWRlL2FzbS9lbGYuaC00NjEtI2RlZmluZSBBUkNIX0RMSU5GT1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaC00LVxcbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo1OiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSFxcdDE1IC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG5hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi1cXG4tLVxcbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lbGYuaD0xMTc9ZXh0ZXJuIGludCBhcmNoX3NldHVwX2FkZGl0aW9uYWxfcGFnZXMoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcXG4tLVxcbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lbGYuaC0xNTgtICogICBldmVuIGlmIERMSU5GT19BUkNIX0lURU1TIGdvZXMgdG8gemVybyBvciBpcyB1bmRlZmluZWQuXFxuYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2VsZi5oOjE1OTogKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlc1xcbmFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lbGYuaC0xNjAtICovXFxuLS1cXG5hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oLTEwLS8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG5hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F1eHZlYy5oOjExOiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSFxcdDEwXFxuYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdXh2ZWMuaC0xMi1cXG4tLVxcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9hdXh2ZWMuaC00LVxcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo1OiNkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAxIC8qIGVudHJpZXMgaW4gQVJDSF9ETElORk8gKi9cXG5hcmNoL3MzOTAvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi1cXG4tLVxcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9lbGYuaD0yMTc9ZG8ge1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9lbGYuaC0yMzItXFxuYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2VsZi5oOjIzMzovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9lbGYuaC0yMzQtI2RlZmluZSBBUkNIX0RMSU5GT1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmFyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmgtNC1cXG5hcmNoL3NoL2luY2x1ZGUvYXNtL2F1eHZlYy5oOjU6I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIIDUgLyogZW50cmllcyBpbiBBUkNIX0RMSU5GTyAqL1xcbmFyY2gvc2gvaW5jbHVkZS9hc20vYXV4dmVjLmgtNi1cXG4tLVxcbmFyY2gvc2gvaW5jbHVkZS9hc20vZWxmLmg9MTk0PWV4dGVybiBpbnQgbDFpX2NhY2hlX3NoYXBlLCBsMWRfY2FjaGVfc2hhcGUsIGwyX2NhY2hlX3NoYXBlO1xcbmFyY2gvc2gvaW5jbHVkZS9hc20vZWxmLmgtMTk1LVxcbmFyY2gvc2gvaW5jbHVkZS9hc20vZWxmLmg6MTk2Oi8qIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9BUkNIIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQgZW50cmllcyBjaGFuZ2VzICovXFxuYXJjaC9zaC9pbmNsdWRlL2FzbS9lbGYuaC0xOTctI2RlZmluZSBBUkNIX0RMSU5GT1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmFyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmgtMy1cXG5hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F1eHZlYy5oOjQ6I2RlZmluZSBBVF9WRUNUT1JfU0laRV9BUkNIXFx0NFxcbmFyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXV4dmVjLmgtNS1cXG4tLVxcbmFyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oLTYtI2lmIGRlZmluZWQoQ09ORklHX0lBMzJfRU1VTEFUSU9OKSB8fCAhZGVmaW5lZChDT05GSUdfWDg2XzY0KVxcbmFyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oOjc6IyBkZWZpbmUgQVRfVkVDVE9SX1NJWkVfQVJDSCAzXFxuYXJjaC94ODYvaW5jbHVkZS9hc20vYXV4dmVjLmgtOC0jZWxzZSAvKiBlbHNlIGl0J3Mgbm9uLWNvbXBhdCB4ODYtNjQgKi9cXG5hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdXh2ZWMuaDo5OiMgZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMlxcbmFyY2gveDg2L2luY2x1ZGUvYXNtL2F1eHZlYy5oLTEwLSNlbmRpZlxcbi0tXFxuYXJjaC94ODYvaW5jbHVkZS9hc20vZWxmLmg9MzEyPWV4dGVybiB1bnNpZ25lZCBsb25nIGdldF9zaWdmcmFtZV9zaXplKHZvaWQpO1xcbi0tXFxuYXJjaC94ODYvaW5jbHVkZS9hc20vZWxmLmgtMzIwLVxcbmFyY2gveDg2L2luY2x1ZGUvYXNtL2VsZi5oOjMyMTovKiB1cGRhdGUgQVRfVkVDVE9SX1NJWkVfQVJDSCBpZiB0aGUgbnVtYmVyIG9mIE5FV19BVVhfRU5UIGVudHJpZXMgY2hhbmdlcyAqL1xcbmFyY2gveDg2L2luY2x1ZGUvYXNtL2VsZi5oLTMyMi1cXG4tLVxcbmZzL2JpbmZtdF9lbGYuYz0xNjU9Y3JlYXRlX2VsZl90YWJsZXMoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSwgY29uc3Qgc3RydWN0IGVsZmhkciAqZXhlYyxcXG4tLVxcbmZzL2JpbmZtdF9lbGYuYy0yMzItXFx0ZWxmX2luZm8gPSAoZWxmX2FkZHJfdCAqKW1tLVxcdTAwM2VzYXZlZF9hdXh2O1xcbmZzL2JpbmZtdF9lbGYuYzoyMzM6XFx0LyogdXBkYXRlIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgaWYgdGhlIG51bWJlciBvZiBORVdfQVVYX0VOVCgpIGNoYW5nZXMgKi9cXG5mcy9iaW5mbXRfZWxmLmMtMjM0LSNkZWZpbmUgTkVXX0FVWF9FTlQoaWQsIHZhbCkgXFxcXFxcbi0tXFxuZnMvYmluZm10X2VsZi5jLTI0My1cXHQgKiBBVVhWLlxcbmZzL2JpbmZtdF9lbGYuYzoyNDQ6XFx0ICogdXBkYXRlIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggaWYgdGhlIG51bWJlciBvZiBORVdfQVVYX0VOVCgpIGluXFxuZnMvYmluZm10X2VsZi5jLTI0NS1cXHQgKiBBUkNIX0RMSU5GTyBjaGFuZ2VzXFxuLS1cXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmM9NTA0PXN0YXRpYyBpbnQgY3JlYXRlX2VsZl9mZHBpY190YWJsZXMoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcXG4tLVxcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy01OTctXFx0bml0ZW1zID0gMSArIERMSU5GT19JVEVNUyArIChrX3BsYXRmb3JtID8gMSA6IDApICtcXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmM6NTk4OlxcdFxcdChrX2Jhc2VfcGxhdGZvcm0gPyAxIDogMCkgKyBBVF9WRUNUT1JfU0laRV9BUkNIO1xcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy01OTktXFxuLS1cXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNjIyLVxcdGVsZl9pbmZvID0gKGVsZl9hZGRyX3QgKiltbS1cXHUwMDNlc2F2ZWRfYXV4djtcXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmM6NjIzOlxcdC8qIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9CQVNFIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQoKSBjaGFuZ2VzICovXFxuZnMvYmluZm10X2VsZl9mZHBpYy5jLTYyNC0jZGVmaW5lIE5FV19BVVhfRU5UKGlkLCB2YWwpIFxcXFxcXG4tLVxcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy02MzMtXFx0ICogQVVYVi5cXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmM6NjM0OlxcdCAqIHVwZGF0ZSBBVF9WRUNUT1JfU0laRV9BUkNIIGlmIHRoZSBudW1iZXIgb2YgTkVXX0FVWF9FTlQoKSBpblxcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy02MzUtXFx0ICogQVJDSF9ETElORk8gY2hhbmdlc1xcbi0tXFxuaW5jbHVkZS9hc20tZ2VuZXJpYy9hdXh2ZWMuaC00LVxcbmluY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmg6NTojZGVmaW5lIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggMFxcbmluY2x1ZGUvYXNtLWdlbmVyaWMvYXV4dmVjLmgtNi1cXG4tLVxcbmluY2x1ZGUvbGludXgvYXV4dmVjLmgtOC1cXG5pbmNsdWRlL2xpbnV4L2F1eHZlYy5oOjk6I2RlZmluZSBBVF9WRUNUT1JfU0laRV9CQVNFIDI0IC8qIE5FV19BVVhfRU5UIGVudHJpZXMgaW4gYXV4aWxpYXJ5IHRhYmxlICovXFxuaW5jbHVkZS9saW51eC9hdXh2ZWMuaC0xMC0gIC8qIG51bWJlciBvZiBcXFwiI2RlZmluZSBBVF8uKlxcXCIgYWJvdmUsIG1pbnVzIHtBVF9OVUxMLCBBVF9JR05PUkUsIEFUX05PVEVMRn0gKi9cXG5pbmNsdWRlL2xpbnV4L2F1eHZlYy5oLTExLVxcbmluY2x1ZGUvbGludXgvYXV4dmVjLmg6MTI6I2RlZmluZSBBVF9WRUNUT1JfU0laRSAoMiooQVRfVkVDVE9SX1NJWkVfQVJDSCArIEFUX1ZFQ1RPUl9TSVpFX0JBU0UgKyAxKSlcXG5pbmNsdWRlL2xpbnV4L2F1eHZlYy5oLTEzLVxcbi0tXFxuaW5jbHVkZS9saW51eC9tbV90eXBlcy5oPTExNjk9c3RydWN0IG1tX3N0cnVjdCB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgtMTMwMS1cXG5pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmg6MTMwMjpcXHRcXHR1bnNpZ25lZCBsb25nIHNhdmVkX2F1eHZbQVRfVkVDVE9SX1NJWkVdOyAvKiBmb3IgL3Byb2MvUElEL2F1eHYgKi9cXG5pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgtMTMwMy1cXG4tLVxcbmtlcm5lbC9zeXMuYz0yMDYwPXN0YXRpYyBpbnQgcHJjdGxfc2V0X21tX21hcChpbnQgb3B0LCBjb25zdCB2b2lkIF9fdXNlciAqYWRkciwgdW5zaWduZWQgbG9uZyBkYXRhX3NpemUpXFxuLS1cXG5rZXJuZWwvc3lzLmMtMjA2Mi1cXHRzdHJ1Y3QgcHJjdGxfbW1fbWFwIHByY3RsX21hcCA9IHsgLmV4ZV9mZCA9ICh1MzIpLTEsIH07XFxua2VybmVsL3N5cy5jOjIwNjM6XFx0dW5zaWduZWQgbG9uZyB1c2VyX2F1eHZbQVRfVkVDVE9SX1NJWkVdO1xcbmtlcm5lbC9zeXMuYy0yMDY0LVxcdHN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gY3VycmVudC1cXHUwMDNlbW07XFxuLS1cXG5rZXJuZWwvc3lzLmMtMjA5OC1cXHRcXHQvKiBMYXN0IGVudHJ5IG11c3QgYmUgQVRfTlVMTCBhcyBzcGVjaWZpY2F0aW9uIHJlcXVpcmVzICovXFxua2VybmVsL3N5cy5jOjIwOTk6XFx0XFx0dXNlcl9hdXh2W0FUX1ZFQ1RPUl9TSVpFIC0gMl0gPSBBVF9OVUxMO1xcbmtlcm5lbC9zeXMuYzoyMTAwOlxcdFxcdHVzZXJfYXV4dltBVF9WRUNUT1JfU0laRSAtIDFdID0gQVRfTlVMTDtcXG5rZXJuZWwvc3lzLmMtMjEwMS1cXHR9XFxuLS1cXG5rZXJuZWwvc3lzLmM9MjE2OD1zdGF0aWMgaW50IHByY3RsX3NldF9hdXh2KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsXFxuLS1cXG5rZXJuZWwvc3lzLmMtMjE3Ni1cXHQgKi9cXG5rZXJuZWwvc3lzLmM6MjE3NzpcXHR1bnNpZ25lZCBsb25nIHVzZXJfYXV4dltBVF9WRUNUT1JfU0laRV0gPSB7fTtcXG5rZXJuZWwvc3lzLmMtMjE3OC1cXG4tLVxcbmtlcm5lbC9zeXMuYy0yMTg1LVxcdC8qIE1ha2Ugc3VyZSB0aGUgbGFzdCBlbnRyeSBpcyBhbHdheXMgQVRfTlVMTCAqL1xcbmtlcm5lbC9zeXMuYzoyMTg2OlxcdHVzZXJfYXV4dltBVF9WRUNUT1JfU0laRSAtIDJdID0gMDtcXG5rZXJuZWwvc3lzLmM6MjE4NzpcXHR1c2VyX2F1eHZbQVRfVkVDVE9SX1NJWkUgLSAxXSA9IDA7XFxua2VybmVsL3N5cy5jLTIxODgtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDEwOjA2OjE5LjA5OTc2OTY3NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjU4NzE1NjM2MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBhdXh2ZWMuaCBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgdGhpcyBwYXRjaCBpcyBwcmltYXJpbHkgYSByZWZhY3RvcmluZyBlZmZvcnQsIGZvY3VzZWQgb24gaGVhZGVyIGZpbGUgb3JnYW5pemF0aW9uIHJlbGF0ZWQgdG8gdGhlIGF1eGlsaWFyeSB2ZWN0b3IgKGBhdXh2YCkuIFRoZSBnb2FsIHNlZW1zIHRvIGJlIHRvIGNsZWFuIHVwIHRoZSBkZWZpbml0aW9ucyBhbmQgbWFrZSB0aGVtIGxlc3MgcHJvbmUgdG8gdW5pbnRlbmRlZCBleHBvc3VyZSB0byB1c2Vyc3BhY2UuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMsIHdoeSBpcyBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgYmVpbmcgZGVmaW5lZCBpbiBgaW5jbHVkZS91YXBpLyovYXV4dmVjLmhgIHVuZGVyIGBfX0tFUk5FTF9fYCBvciBleHBvc2VkIHRvIHVzZXJzcGFjZT8gVGhhdCdzIGEgcmVkIGZsYWcuIEFzIEkgdW5kZXJzdGFuZCBpdCwgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGlzIHJlYWxseSBhbiBpbnRlcm5hbCBrZXJuZWwgbWFjcm8gdXNlZCB0byBzaXplIGBtbS1cdTAwM2VzYXZlZF9hdXh2YCAoYEFUX1ZFQ1RPUl9TSVpFYCkuIEl0IGRvZXNuJ3QgbmVlZCB0byBiZSBpbiB0aGUgVUFQSSwgc28gbW92aW5nIGl0IGlzIGEgc2Vuc2libGUgY2hhbmdlLlxuXG5TbyB0aGUgY29yZSBvZiB0aGUgcGF0Y2ggaW52b2x2ZXM6XG5cbjEuICBDcmVhdGluZyBpbnRlcm5hbCBrZXJuZWwgYFx1MDAzY2FzbS9hdXh2ZWMuaFx1MDAzZWAgaGVhZGVycyAob3IgdXNpbmcgZ2VuZXJpYyBgXHUwMDNjYXNtLWdlbmVyaWMvYXV4dmVjLmhcdTAwM2VgKSDigJMgdGhpcyBzb3VuZHMgbGlrZSBhIGdvb2QgcHJhY3RpY2UgZm9yIGVuY2Fwc3VsYXRpbmcga2VybmVsLXNwZWNpZmljIGRlZmluaXRpb25zLlxuMi4gIE1vdmluZyBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgZnJvbSBgdWFwaS9hc20vYXV4dmVjLmhgIHRvIHRoZXNlIGludGVybmFsIGhlYWRlcnMuIEV4Y2VsbGVudC4gS2VlcGluZyB0aGUga2VybmVsIGludGVybmFscyBzZXBhcmF0ZWQgZnJvbSB0aGUgdXNlcnNwYWNlIGludGVyZmFjZSBpcyBhbHdheXMgcHJlZmVycmVkLlxuMy4gIE1vdmluZyB0aGUgYEFUX1ZFQ1RPUl9TSVpFYCBkZWZpbml0aW9uIGZyb20gYFx1MDAzY2xpbnV4L21tX3R5cGVzLmhcdTAwM2VgIHRvIGBcdTAwM2NsaW51eC9hdXh2ZWMuaFx1MDAzZWAuIFRoYXQgbWFrZXMgbW9yZSBzZW5zZTsgdGhlIGF1eHZlYyBzaXplIGlzIGluaGVyZW50bHkgcmVsYXRlZCB0byB0aGUgYXV4dmVjIGl0c2VsZi5cblxuTm93LCBsZXQncyBkaWcgaW50byB0aGUgZGV0YWlsczogTm8gY2hhbmdlcyB0byBDIGNvZGUsIGxvZ2ljLCBjb250cm9sIGZsb3csIGZ1bmN0aW9ucywgc3RydWN0dXJlcywgc2l6ZXMsIG9yIGFsZ29yaXRobXMgb3RoZXIgdGhhbiB3aGF0IEkndmUgaWRlbnRpZmllZC4gVGhlIHZhbHVlcyBvZiBgQVRfVkVDVE9SX1NJWkVfQVJDSGAgYXBwZWFyIHRvIGJlIG1vc3RseSB1bmNoYW5nZWQuIEkgc2VlIHRoYXQgdGhlIGBhcm1gIGFyY2hpdGVjdHVyZSdzIHN0dWIgZGVmaW5pdGlvbiBmb3IgYEFUX1ZFQ1RPUl9TSVpFX0FSQ0hgIGlzIHJlbW92ZWQsIHNvIGl0IHdpbGwgbm93IHVzZSB0aGUgZ2VuZXJpYyAwIHZhbHVlLCB3aGljaCBzZWVtcyBmaW5lIHNpbmNlIGl0IGRpZG4ndCBkZWZpbmUgaXQgYmVmb3JlIGFueXdheS4gVGhlIHZhbHVlcyBmb3IgYWxsIHRoZSBhcmNoaXRlY3R1cmVzIGFyZSB0aGUgc2FtZSBhcyBiZWZvcmUsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIHBhdGNoIGlzbid0IGNhdXNpbmcgYW55IHJlZ3Jlc3Npb25zIGluIHNpemUgb2YgYXV4di5cblxuUmVnYXJkaW5nIGBBVF9WRUNUT1JfU0laRWAgaXRzZWxmOiB0aGUgbG9naWMgaXMgdHdlYWtlZCB0byBpbmNsdWRlIHRoZSBuZXcga2VybmVsIGluY2x1ZGVzLiBUaGUgY2FsY3VsYXRpb24gdXNlcyBgQVRfVkVDVE9SX1NJWkVfQkFTRWAsIHdoaWNoIGlzIG5vdyBkZWZpbmVkLiBJJ2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoYXQgYGxpbnV4L21tX3R5cGVzLmhgIGluY2x1ZGVzIGBsaW51eC9hdXh2ZWMuaGAgdG8gZW5zdXJlIHRoYXQgdGhlcmUgYXJlIG5vIGtub2NrLW9uIGVmZmVjdHMuIEJ1dCwgb3ZlcmFsbCwgdGhpcyBzZWVtcyBsaWtlIGEgc29saWQgYW5kIHdlbGwtY29uc2lkZXJlZCBjbGVhbnVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjk0MSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgwMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQxMDowNjoyNC45NzEzMzUyODhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDYwNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiaW5jbHVkZS9saW51eC9tbV90eXBlcy5oXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi9cXG4gICAyOlxcdCNpZm5kZWYgX0xJTlVYX01NX1RZUEVTX0hcXG4gICAzOlxcdCNkZWZpbmUgX0xJTlVYX01NX1RZUEVTX0hcXG4gICA0OlxcdFxcbiAgIDU6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L21tX3R5cGVzX3Rhc2suaFxcdTAwM2VcXG4gICA2OlxcdFxcbiAgIDc6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2F1eHZlYy5oXFx1MDAzZVxcbiAgIDg6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tyZWYuaFxcdTAwM2VcXG4gICA5OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9saXN0LmhcXHUwMDNlXFxuICAxMDpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvc3BpbmxvY2suaFxcdTAwM2VcXG4gIDExOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9yYnRyZWUuaFxcdTAwM2VcXG4gIDEyOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9tYXBsZV90cmVlLmhcXHUwMDNlXFxuICAxMzpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvcndzZW0uaFxcdTAwM2VcXG4gIDE0OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9jb21wbGV0aW9uLmhcXHUwMDNlXFxuICAxNTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvY3B1bWFzay5oXFx1MDAzZVxcbiAgMTY6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3Vwcm9iZXMuaFxcdTAwM2VcXG4gIDE3OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9yY3VwZGF0ZS5oXFx1MDAzZVxcbiAgMTg6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BhZ2UtZmxhZ3MtbGF5b3V0LmhcXHUwMDNlXFxuICAxOTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvd29ya3F1ZXVlLmhcXHUwMDNlXFxuICAyMDpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvc2VxbG9jay5oXFx1MDAzZVxcbiAgMjE6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BlcmNwdV9jb3VudGVyLmhcXHUwMDNlXFxuICAyMjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvdHlwZXMuaFxcdTAwM2VcXG4gIDIzOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9mdXRleF90eXBlcy5oXFx1MDAzZVxcbiAgMjQ6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3JzZXFfdHlwZXMuaFxcdTAwM2VcXG4gIDI1OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9iaXRtYXAuaFxcdTAwM2VcXG4gIDI2OlxcdFxcbiAgMjc6XFx0I2luY2x1ZGUgXFx1MDAzY2FzbS9tbXUuaFxcdTAwM2VcXG4gIDI4OlxcdFxcbiAgMjk6XFx0c3RydWN0IGFkZHJlc3Nfc3BhY2U7XFxuICAzMDpcXHRzdHJ1Y3QgZnV0ZXhfcHJpdmF0ZV9oYXNoO1xcbiAgMzE6XFx0c3RydWN0IG1lbV9jZ3JvdXA7XFxuICAzMjpcXHRcXG4gIDMzOlxcdHR5cGVkZWYgc3RydWN0IHtcXG4gIDM0OlxcdFxcdHVuc2lnbmVkIGxvbmcgZjtcXG4gIDM1OlxcdH0gbWVtZGVzY19mbGFnc190O1xcbiAgMzY6XFx0XFxuICAzNzpcXHQvKlxcbiAgMzg6XFx0ICogRWFjaCBwaHlzaWNhbCBwYWdlIGluIHRoZSBzeXN0ZW0gaGFzIGEgc3RydWN0IHBhZ2UgYXNzb2NpYXRlZCB3aXRoXFxuICAzOTpcXHQgKiBpdCB0byBrZWVwIHRyYWNrIG9mIHdoYXRldmVyIGl0IGlzIHdlIGFyZSB1c2luZyB0aGUgcGFnZSBmb3IgYXQgdGhlXFxuICA0MDpcXHQgKiBtb21lbnQuIE5vdGUgdGhhdCB3ZSBoYXZlIG5vIHdheSB0byB0cmFjayB3aGljaCB0YXNrcyBhcmUgdXNpbmdcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMTA6MDY6MjQuOTcxNDQyOTc3WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NDEyNjMxMTg2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIFRoaXMgQ2hhbmdlKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duIHN5c3RlbWF0aWNhbGx5LiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGF0Y2ggd2FycmFudHMgYW55IGZ1cnRoZXIgc2NydXRpbnksIGdpdmVuIG15IGV4cGVydGlzZS4gVGhlIGNvcmUgb2YgdGhlIGV2YWx1YXRpb24gaGluZ2VzIG9uIHRob3NlIG5lZ2F0aXZlIGNyaXRlcmlhLiBUaGUgcGF0Y2ggZGVzY3JpcHRpb24gaXRzZWxmIGxvb2tzIHByb21pc2luZyBidXQgSSBuZWVkIHRvIGVuc3VyZSBpdCBtZWV0cyB0aG9zZSBjcml0ZXJpYS5cblxuRmlyc3QsIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSBhcmUgcGFyYW1vdW50OiAqTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlcyouIFRoZXNlIGFyZSB0aGUgcmVkIGZsYWdzIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNvZGUgcmV2aWV3LiBUaGUgcGF0Y2ggZGVzY3JpcHRpb24gc3RhdGVzIGl0IGNvbnRhaW5zICpNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMuIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcuIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy4gSGVhZGVyIHJlbmFtZXMgLyBtYWNybyByZWxvY2F0aW9uIHdpdGggbm8gZXhlY3V0YWJsZSBjb2RlIGNoYW5nZSAvIG5vIGNoYW5nZSBpbiB2YWx1ZXMuKlxuXG5Ob3csIGxldCdzIHJpZ29yb3VzbHkgY2hlY2sgdGhlIGRldGFpbHMuIERvZXMgdGhlIGNoYW5nZSB0b3VjaCBhbnkgcnVudGltZSBsb2dpYywgYW55IGV4ZWN1dGFibGUgY29kZSwgYW55IGRhdGEgc3RydWN0dXJlIHNpemVzIG9yIGNvbnRyb2wgZmxvdz8gVGhlIGRlc2NyaXB0aW9uIGlzIGNsZWFyIOKAkyAqTm8qLiBUaGUgbWFjcm8gdmFsdWVzIGBBVF9WRUNUT1JfU0laRWAgYW5kIGBBVF9WRUNUT1JfU0laRV9BUkNIYCByZW1haW4gKmNvbXBsZXRlbHkqIHVuY2hhbmdlZC4gTm8gbmV3IGZ1bmN0aW9ucyBhcmUgaW50cm9kdWNlZCwgcmVtb3ZlZCwgb3IgYWx0ZXJlZC4gVGhlIG1vZGlmaWNhdGlvbnMgYXJlIGlzb2xhdGVkIHRvIGhlYWRlciBmaWxlcyAobWFjcm8gcmVsb2NhdGlvbnMpIGFuZCBgTUFJTlRBSU5FUlNgIC8gYEtidWlsZGAgZmlsZXMuIFRoZXJlZm9yZSwgdGhlcmUgaXMgZGVmaW5pdGl2ZWx5ICp6ZXJvKiBleGVjdXRhYmxlIGNvZGUgY2hhbmdlLiBUaGlzIGlzIHRoZSBrZXkuXG5cbkxldCdzIGRvIGEgZmluYWwgcmV2aWV3IG9mIG90aGVyIGZhY3RvcnM6IHRoZSBgV29ydGhGdXp6aW5nYCwgYEZvY3VzU3ltYm9sc2AsIGFuZCBgRW5hYmxlQ29uZmlnc2AgYXJlIGFsbCBuZWdhdGl2ZSB3aGljaCBtZWFucyB0aGVyZSBhcmUgbm8gZnVydGhlciBpbXBsaWNhdGlvbnMuIFRoZSByZWFzb25pbmcgZm9yIHRoZSBjaGFuZ2UgaXMgY29uY2lzZTogVGhpcyBpcyBhIGhlYWRlciBjbGVhbnVwL3JlZmFjdG9yaW5nIHNlcGFyYXRpbmcga2VybmVsLWludGVybmFsIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggZGVmaW5pdGlvbnMgZnJvbSBVQVBJIGhlYWRlcnMsIHdpdGggbm8gY2hhbmdlcyB0byBleGVjdXRhYmxlIGNvZGUsIGxvZ2ljLCBkYXRhIHN0cnVjdHVyZSBsYXlvdXQsIG9yIHJ1bnRpbWUgYmVoYXZpb3IuIEV4Y2VsbGVudC4gVGhpcyBjaGVja3MgYWxsIHRoZSBib3hlcy4gT2theSwgSSdtIGNvbmZpZGVudCBpbiB0aGUgYXNzZXNzbWVudC4gVGltZSB0byBjYWxsIGl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDkxOCwiT3V0cHV0VG9rZW5zIjo5NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDEwOjA2OjI5LjA5Nzc1NjcyOVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA3MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaXMgYSBoZWFkZXIgcmVmYWN0b3JpbmcgdGhhdCBzZXBhcmF0ZXMga2VybmVsLWludGVybmFsIEFUX1ZFQ1RPUl9TSVpFX0FSQ0ggbWFjcm9zIGZyb20gVUFQSSBoZWFkZXJzIGludG8gaW50ZXJuYWwgYXNtIGhlYWRlcnMgYW5kIGNlbnRyYWxpemVzIEFUX1ZFQ1RPUl9TSVpFIGluIGluY2x1ZGUvbGludXgvYXV4dmVjLmguIE5vIGV4ZWN1dGFibGUgQyBjb2RlLCBkYXRhIHN0cnVjdHVyZXMsIGNvbnN0YW50cywgYXNzZXJ0aW9ucywgb3IgcnVudGltZSBsb2dpYyBhcmUgYWx0ZXJlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGlzIGEgaGVhZGVyIHJlZmFjdG9yaW5nIHRoYXQgc2VwYXJhdGVzIGtlcm5lbC1pbnRlcm5hbCBBVF9WRUNUT1JfU0laRV9BUkNIIG1hY3JvcyBmcm9tIFVBUEkgaGVhZGVycyBpbnRvIGludGVybmFsIGFzbSBoZWFkZXJzIGFuZCBjZW50cmFsaXplcyBBVF9WRUNUT1JfU0laRSBpbiBpbmNsdWRlL2xpbnV4L2F1eHZlYy5oLiBObyBleGVjdXRhYmxlIEMgY29kZSwgZGF0YSBzdHJ1Y3R1cmVzLCBjb25zdGFudHMsIGFzc2VydGlvbnMsIG9yIHJ1bnRpbWUgbG9naWMgYXJlIGFsdGVyZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQxMDowNjoyOS4wOTc3ODA1OTlaIiwiU2VxIjo5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowrc5v5[1] Phase: Running StartedAt: 2026-09-04 10:06:40 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrc5v5[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-04 10:06:40 +0000 UTC FinishedAt: 2026-09-04 10:06:45 +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,}