Name: series-workflowcqgw9 Phase: Running StartedAt: 2026-08-22 16:35:08 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[0] Phase: Succeeded StartedAt: 2026-08-22 16:35:08 +0000 UTC FinishedAt: 2026-08-22 17:19:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[0].run-triage Phase: Succeeded StartedAt: 2026-08-22 16:35:08 +0000 UTC FinishedAt: 2026-08-22 17:19:44 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "934753d26f1ed7fadeedf1b9e7df6fe75de303e8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXT4_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "934753d26f1ed7fadeedf1b9e7df6fe75de303e8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXT4_FS" ], "series_id": "0b80c867-ae88-4ce4-94e8-8aa06be5eea2" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "ext4_convert_inline_data", "ext4_try_add_inline_entry" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE2OjUxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MjhtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFWFQ0X0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhJiMzNDssCiAgICAmIzM0O2V4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnkmIzM0OwogIF0sCiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZWZhY3RvcnMgdGhlIGNvbnZlcnNpb24gb2YgZXh0NCBpbmxpbmUgZGF0YSB0byBhIGRlZGljYXRlZCBibG9jayB0byBwcmV2ZW50IGRhdGEgbG9zcyBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuIEl0IGFsbG9jYXRlcyBhIG5ldyBibG9jaywgemVyb2VzIGl0LCBjb3BpZXMgdGhlIGlubGluZSBkYXRhLCBhbmQgdGhlbiB1cGRhdGVzIHRoZSBpbm9kZS4gQWxsIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkgKGBpbm9kZV9idWZgLCBgYnVmYCwgYGRhdGFfYmgtXHUwMDNlYl9kYXRhYCkgaXMgZnVsbHkgaW5pdGlhbGl6ZWQgdmlhIGBtZW1jcHlgIGZyb20gZXhpc3RpbmcgaW5pdGlhbGl6ZWQgZGF0YSBvciBgbWVtc2V0YCB0byB6ZXJvLiBTdGFjayB2YXJpYWJsZXMgKGBhcmAsIGBpc2AsIGBpYCwgYG5ld2V4YCkgYXJlIGZ1bGx5IHplcm8taW5pdGlhbGl6ZWQgZWl0aGVyIHZpYSBgbWVtc2V0YCBvciBicmFjZS1lbmNsb3NlZCBpbml0aWFsaXplcnMuIFRoZXJlIGlzIG5vIGV4cG9zdXJlIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHRvIHVzZXIgc3BhY2Ugb3IgZGlzaywgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzIHVzZWQgaW4gY29udHJvbCBmbG93LiBBbnkgcG90ZW50aWFsIG1lbW9yeSBlcnJvcnMgKGxpa2Ugb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBvciB1c2UtYWZ0ZXItZnJlZSkgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QganVzdGlmaWVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gaG93IGV4dDQgY29udmVydHMgaW5saW5lIGRhdGEgdG8gYmxvY2tzLCByZXBsYWNpbmcgdGhlIHVzZSBvZiBgZXh0NF9tYXBfYmxvY2tzYCB3aXRoIGRpcmVjdCBibG9jayBhbGxvY2F0aW9uIHZpYSBgZXh0NF9tYl9uZXdfYmxvY2tzYCBhbmQgaW50cm9kdWNpbmcgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gVGhpcyBtb2RpZmllcyBjb3JlIHJlYWNoYWJsZSBsb2dpYyBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCB3aGljaCBpcyB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE2OjUxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMTI0YzdlYTZjZGQwMmFjNGUwYWE2MTA1ZWQwNTUyMTRkZjE4MTU5YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDIyIDE2OjUxOjA5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaW5saW5lLmMgYi9mcy9leHQ0L2lubGluZS5jXG5pbmRleCA4MDQ1ZTRmZjI3MGM3Li41MDcxMDZjNzJlODJmIDEwMDY0NFxuLS0tIGEvZnMvZXh0NC9pbmxpbmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZnMvZXh0NC9pbmxpbmUuY1xuQEAgLTE0LDYgJiM0MzsxNCw3IEBAXG4gI2luY2x1ZGUgXCYjMzQ7ZXh0NC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7eGF0dHIuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O3RydW5jYXRlLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7ZXh0NF9leHRlbnRzLmhcJiMzNDtcbiBcbiAjZGVmaW5lIEVYVDRfWEFUVFJfU1lTVEVNX0RBVEFcdFwmIzM0O2RhdGFcJiMzNDtcbiAjZGVmaW5lIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkVcdCgoc2l6ZW9mKF9fbGUzMikgKiBFWFQ0X05fQkxPQ0tTKSlcbkBAIC0xMDcwLDIxICYjNDM7MTA3MSwxMTUgQEAgc3RhdGljIGludCBleHQ0X3VwZGF0ZV9pbmxpbmVfZGlyKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqZGlyLFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLVx0XHRcdFx0ICAgICBzdHJ1Y3QgZXh0NF9pbG9jICppbG9jLFxuLVx0XHRcdFx0ICAgICB2b2lkICpidWYsIGludCBpbmxpbmVfc2l6ZSlcbiYjNDM7c3RhdGljIGludCBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2ZzYmxrX3QgYmxvY2ssXG4mIzQzO1x0XHRcdFx0XHR1bnNpZ25lZCBpbnQgbGVuLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKVxuIHtcbi1cdGludCByZXQ7XG4mIzQzO1x0c3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpO1xuJiM0MztcdHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmQgaXMgPSB7XG4mIzQzO1x0XHQucyA9IHsgLm5vdF9mb3VuZCA9IDAsIH0sXG4mIzQzO1x0fTtcbiYjNDM7XHRzdHJ1Y3QgZXh0NF94YXR0cl9pbmZvIGkgPSB7XG4mIzQzO1x0XHQubmFtZV9pbmRleCA9IEVYVDRfWEFUVFJfSU5ERVhfU1lTVEVNLFxuJiM0MztcdFx0Lm5hbWUgPSBFWFQ0X1hBVFRSX1NZU1RFTV9EQVRBLFxuJiM0MztcdFx0LnZhbHVlID0gTlVMTCxcbiYjNDM7XHRcdC52YWx1ZV9sZW4gPSAwLFxuJiM0MztcdH07XG4mIzQzO1x0aW50IGVycm9yO1xuJiM0MztcdGludCBpbm9kZV9zaXplO1xuJiM0MztcdHZvaWQgKmlub2RlX2J1ZiA9IE5VTEw7XG4mIzQzO1x0c3RydWN0IGV4dDRfaW5vZGUgKnJhd19pbm9kZTtcbiBcbi1cdHJldCA9IGV4dDRfY3JlYXRlX2lubGluZV9kYXRhKGhhbmRsZSwgaW5vZGUsIGlubGluZV9zaXplKTtcbi1cdGlmIChyZXQpIHtcbi1cdFx0ZXh0NF9tc2coaW5vZGUtXHUwMDNlaV9zYiwgS0VSTl9FTUVSRyxcbi1cdFx0XHRcJiMzNDtlcnJvciByZXN0b3JpbmcgaW5saW5lX2RhdGEgZm9yIGlub2RlIC0tIHBvdGVudGlhbCBkYXRhIGxvc3MhIChpbm9kZSAlbGx1LCBlcnJvciAlZClcJiMzNDssXG4tXHRcdFx0aW5vZGUtXHUwMDNlaV9pbm8sIHJldCk7XG4tXHRcdHJldHVybjtcbiYjNDM7XHRpbm9kZV9zaXplID0gRVhUNF9JTk9ERV9TSVpFKGlub2RlLVx1MDAzZWlfc2IpO1xuJiM0MztcdGlub2RlX2J1ZiA9IGttYWxsb2MoaW5vZGVfc2l6ZSwgR0ZQX05PRlMpO1xuJiM0MztcdGlmICghaW5vZGVfYnVmKSB7XG4mIzQzO1x0XHRlcnJvciA9IC1FTk9NRU07XG4mIzQzO1x0XHRkb3duX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuJiM0MztcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbiYjNDM7XHRcdGV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTtcbiYjNDM7XHRcdHVwX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuJiM0MztcdFx0cmV0dXJuIGVycm9yO1xuIFx0fVxuLVx0ZXh0NF93cml0ZV9pbmxpbmVfZGF0YShpbm9kZSwgaWxvYywgYnVmLCAwLCBpbmxpbmVfc2l6ZSk7XG4tXHRleHQ0X3NldF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpO1xuJiM0MztcdGRvd25fd3JpdGUoXHUwMDI2ZWktXHUwMDNlaV9kYXRhX3NlbSk7XG4mIzQzO1x0ZXJyb3IgPSBleHQ0X2dldF9pbm9kZV9sb2MoaW5vZGUsIFx1MDAyNmlzLmlsb2MpO1xuJiM0MztcdGlmIChlcnJvcikge1xuJiM0MztcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbiYjNDM7XHRcdGV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTtcbiYjNDM7XHRcdHVwX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuJiM0MztcdFx0a2ZyZWUoaW5vZGVfYnVmKTtcbiYjNDM7XHRcdHJldHVybiBlcnJvcjtcbiYjNDM7XHR9XG4mIzQzO1x0cmF3X2lub2RlID0gZXh0NF9yYXdfaW5vZGUoXHUwMDI2aXMuaWxvYyk7XG4mIzQzO1x0QlVGRkVSX1RSQUNFKGlzLmlsb2MuYmgsIFwmIzM0O2dldF93cml0ZV9hY2Nlc3NcJiMzNDspO1xuJiM0MztcdGVycm9yID0gZXh0NF9qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MoaGFuZGxlLCBpbm9kZS1cdTAwM2VpX3NiLCBpcy5pbG9jLmJoLCBFWFQ0X0pUUl9OT05FKTtcbiYjNDM7XHRpZiAoZXJyb3IpIHtcbiYjNDM7XHRcdGV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7XG4mIzQzO1x0XHRleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7XG4mIzQzO1x0XHRnb3RvIG91dDtcbiYjNDM7XHR9XG4mIzQzO1x0bWVtY3B5KGlub2RlX2J1ZiwgKHZvaWQgKilyYXdfaW5vZGUsIGlub2RlX3NpemUpO1xuJiM0MztcdG1lbXNldCgodm9pZCAqKXJhd19pbm9kZS1cdTAwM2VpX2Jsb2NrLCAwLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTtcbiYjNDM7XHRtZW1zZXQoZWktXHUwMDNlaV9kYXRhLCAwLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTtcbiYjNDM7XHRpZiAoZXh0NF9oYXNfZmVhdHVyZV9leHRlbnRzKGlub2RlLVx1MDAzZWlfc2IpIFx1MDAyNlx1MDAyNlxuJiM0MztcdFx0KFNfSVNESVIoaW5vZGUtXHUwMDNlaV9tb2RlKSB8fCBTX0lTUkVHKGlub2RlLVx1MDAzZWlfbW9kZSkgfHwgU19JU0xOSyhpbm9kZS1cdTAwM2VpX21vZGUpKSkge1xuJiM0MztcdFx0ZXh0NF9zZXRfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRTKTtcbiYjNDM7XHRcdGV4dDRfZXh0X3RyZWVfaW5pdChoYW5kbGUsIGlub2RlKTtcbiYjNDM7XHRcdHN0cnVjdCBleHQ0X2V4dF9wYXRoICpwYXRoID0gZXh0NF9maW5kX2V4dGVudChpbm9kZSwgMCwgTlVMTCwgMCk7XG4mIzQzO1xuJiM0MztcdFx0aWYgKElTX0VSUihwYXRoKSkge1xuJiM0MztcdFx0XHRlcnJvciA9IFBUUl9FUlIocGF0aCk7XG4mIzQzO1x0XHRcdGdvdG8gcmVjb3Zlcnk7XG4mIzQzO1x0XHR9XG4mIzQzO1x0XHRzdHJ1Y3QgZXh0NF9leHRlbnQgbmV3ZXg7XG4mIzQzO1xuJiM0MztcdFx0bmV3ZXguZWVfYmxvY2sgPSBjcHVfdG9fbGUzMigwKTtcbiYjNDM7XHRcdG5ld2V4LmVlX2xlbiA9IGNwdV90b19sZTE2KDEpO1xuJiM0MztcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNm5ld2V4LCBibG9jayk7XG4mIzQzO1x0XHRwYXRoID0gZXh0NF9leHRfaW5zZXJ0X2V4dGVudChoYW5kbGUsIGlub2RlLCBwYXRoLCBcdTAwMjZuZXdleCwgMCk7XG4mIzQzO1x0XHRpZiAoSVNfRVJSKHBhdGgpKSB7XG4mIzQzO1x0XHRcdGVycm9yID0gUFRSX0VSUihwYXRoKTtcbiYjNDM7XHRcdFx0aWYgKGVycm9yID09IC1FRFFVT1QgfHwgZXJyb3IgPT0gLUVOT1NQQykge1xuJiM0MztcdFx0XHRcdGdvdG8gcmVjb3Zlcnk7XG4mIzQzO1x0XHRcdH0gZWxzZSB7XG4mIzQzO1x0XHRcdFx0ZXh0NF9mb3JnZXQoaGFuZGxlLCAwLCBpbm9kZSwgYmgsIGJsb2NrKTtcbiYjNDM7XHRcdFx0XHRnb3RvIG5vZnJlZTtcbiYjNDM7XHRcdFx0fVxuJiM0MztcdFx0fSBlbHNlIHtcbiYjNDM7XHRcdFx0ZXh0NF9mcmVlX2V4dF9wYXRoKHBhdGgpO1xuJiM0MztcdFx0fVxuJiM0MztcdH0gZWxzZSB7XG4mIzQzO1x0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfZGF0YVswXSA9IGNwdV90b19sZTMyKGJsb2NrKTtcbiYjNDM7XHR9XG4mIzQzO1x0ZXJyb3IgPSBleHQ0X3hhdHRyX2lib2R5X2ZpbmQoaW5vZGUsIFx1MDAyNmksIFx1MDAyNmlzKTtcbiYjNDM7XHRpZiAoZXJyb3IpXG4mIzQzO1x0XHRnb3RvIHJlY292ZXJ5O1xuJiM0MztcdGlmICghaXMucy5ub3RfZm91bmQpXG4mIzQzO1x0XHRlcnJvciA9IGV4dDRfeGF0dHJfaWJvZHlfc2V0KGhhbmRsZSwgaW5vZGUsIFx1MDAyNmksIFx1MDAyNmlzKTtcbiYjNDM7cmVjb3Zlcnk6XG4mIzQzO1x0aWYgKGVycm9yKSB7XG4mIzQzO1x0XHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xuJiM0MztcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpO1xuJiM0Mztub2ZyZWU6XG4mIzQzO1x0XHRtZW1jcHkoKHZvaWQgKilyYXdfaW5vZGUsIGlub2RlX2J1ZiwgaW5vZGVfc2l6ZSk7XG4mIzQzO1x0XHRtZW1jcHkoZWktXHUwMDNlaV9kYXRhLCByYXdfaW5vZGUtXHUwMDNlaV9ibG9jaywgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSk7XG4mIzQzO1x0XHRleHQ0X2NsZWFyX2lub2RlX2ZsYWcoaW5vZGUsIEVYVDRfSU5PREVfRVhURU5UUyk7XG4mIzQzO1x0fSBlbHNlIHtcbiYjNDM7XHRcdGV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9JTkxJTkVfREFUQSk7XG4mIzQzO1x0XHRnZXRfYmgoaXMuaWxvYy5iaCk7XG4mIzQzO1x0XHRlcnJvciA9IGV4dDRfbWFya19pbG9jX2RpcnR5KGhhbmRsZSwgaW5vZGUsIFx1MDAyNmlzLmlsb2MpO1xuJiM0MztcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9vZmYgPSAwO1xuJiM0MztcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplID0gMDtcbiYjNDM7XHRcdGV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTtcbiYjNDM7XHRcdGlmIChTX0lTRElSKGlub2RlLVx1MDAzZWlfbW9kZSkpIHtcbiYjNDM7XHRcdFx0aV9zaXplX3dyaXRlKGlub2RlLCBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplKTtcbiYjNDM7XHRcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2Rpc2tzaXplID0gaW5vZGUtXHUwMDNlaV9zYi1cdTAwM2VzX2Jsb2Nrc2l6ZTtcbiYjNDM7XHRcdH1cbiYjNDM7XHRcdGJyZWxzZShiaCk7XG4mIzQzO1x0fVxuJiM0MztvdXQ6XG4mIzQzO1x0YnJlbHNlKGlzLmlsb2MuYmgpO1xuJiM0MztcdHVwX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuJiM0MztcdGtmcmVlKGlub2RlX2J1Zik7XG4mIzQzO1x0cmV0dXJuIGVycm9yO1xuIH1cbiBcbiBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbkBAIC0xMDk0LDggJiM0MzsxMTg5LDExIEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuIFx0aW50IGVycm9yO1xuIFx0dm9pZCAqYnVmID0gTlVMTDtcbiBcdHN0cnVjdCBidWZmZXJfaGVhZCAqZGF0YV9iaCA9IE5VTEw7XG4tXHRzdHJ1Y3QgZXh0NF9tYXBfYmxvY2tzIG1hcDtcbiBcdGludCBpbmxpbmVfc2l6ZTtcbiYjNDM7XHRleHQ0X2ZzYmxrX3QgbmV3YmxvY2sgPSAwO1xuJiM0MztcdHN0cnVjdCBleHQ0X2FsbG9jYXRpb25fcmVxdWVzdCBhcjtcbiYjNDM7XHRzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKGlub2RlLVx1MDAzZWlfc2IpO1xuJiM0MztcdHVuc2lnbmVkIGludCBhbGxvY2F0ZWRfYmxvY2s7XG4gXG4gXHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcbiBcdGJ1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTtcbkBAIC0xMTIwLDI1ICYjNDM7MTIxOCwyMiBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbiBcdFx0XHRnb3RvIG91dDtcbiBcdH1cbiBcbi1cdGVycm9yID0gZXh0NF9kZXN0cm95X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGlub2RlKTtcbi1cdGlmIChlcnJvcilcbi1cdFx0Z290byBvdXQ7XG4tXG4tXHRtYXAubV9sYmxrID0gMDtcbi1cdG1hcC5tX2xlbiA9IDE7XG4tXHRtYXAubV9mbGFncyA9IDA7XG4tXHRlcnJvciA9IGV4dDRfbWFwX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBcdTAwMjZtYXAsIEVYVDRfR0VUX0JMT0NLU19DUkVBVEUpO1xuJiM0MztcdG1lbXNldChcdTAwMjZhciwgMCwgc2l6ZW9mKGFyKSk7XG4mIzQzO1x0YXIuaW5vZGUgPSBpbm9kZTtcbiYjNDM7XHRhci5sb2dpY2FsID0gMDtcbiYjNDM7XHRhci5sZW4gPSAxO1xuJiM0MztcdGlmIChTX0lTUkVHKGlub2RlLVx1MDAzZWlfbW9kZSkpXG4mIzQzO1x0XHRhci5mbGFncyA9IEVYVDRfTUJfSElOVF9EQVRBO1xuJiM0MztcdGVsc2VcbiYjNDM7XHRcdGFyLmZsYWdzID0gMDtcbiYjNDM7XHRuZXdibG9jayA9IGV4dDRfbWJfbmV3X2Jsb2NrcyhoYW5kbGUsIFx1MDAyNmFyLCBcdTAwMjZlcnJvcik7XG4gXHRpZiAoZXJyb3IgXHUwMDNjIDApXG4tXHRcdGdvdG8gb3V0X3Jlc3RvcmU7XG4tXHRpZiAoIShtYXAubV9mbGFncyBcdTAwMjYgRVhUNF9NQVBfTUFQUEVEKSkge1xuLVx0XHRlcnJvciA9IC1FSU87XG4tXHRcdGdvdG8gb3V0X3Jlc3RvcmU7XG4tXHR9XG4tXG4tXHRkYXRhX2JoID0gc2JfZ2V0YmxrKGlub2RlLVx1MDAzZWlfc2IsIG1hcC5tX3BibGspO1xuJiM0MztcdFx0Z290byBvdXQ7XG4mIzQzO1x0YWxsb2NhdGVkX2Jsb2NrID0gRVhUNF9DMkIoc2JpLCBhci5sZW4pO1xuJiM0MztcdGRhdGFfYmggPSBzYl9nZXRibGsoaW5vZGUtXHUwMDNlaV9zYiwgbmV3YmxvY2spO1xuIFx0aWYgKCFkYXRhX2JoKSB7XG4gXHRcdGVycm9yID0gLUVOT01FTTtcbi1cdFx0Z290byBvdXRfcmVzdG9yZTtcbiYjNDM7XHRcdGdvdG8gb3V0X2JoO1xuIFx0fVxuIFxuIFx0bG9ja19idWZmZXIoZGF0YV9iaCk7XG5AQCAtMTE0Nyw3ICYjNDM7MTI0Miw3IEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuIFx0aWYgKGVycm9yKSB7XG4gXHRcdHVubG9ja19idWZmZXIoZGF0YV9iaCk7XG4gXHRcdGVycm9yID0gLUVJTztcbi1cdFx0Z290byBvdXRfcmVzdG9yZTtcbiYjNDM7XHRcdGdvdG8gb3V0X2JoO1xuIFx0fVxuIFx0bWVtc2V0KGRhdGFfYmgtXHUwMDNlYl9kYXRhLCAwLCBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplKTtcbiBcbkBAIC0xMTU5LDI0ICYjNDM7MTI1NCwyOCBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbiBcdFx0XHRcdFx0XHQgICBpbm9kZSwgZGF0YV9iaCk7XG4gXHR9IGVsc2Uge1xuIFx0XHR1bmxvY2tfYnVmZmVyKGRhdGFfYmgpO1xuLVx0XHRpbm9kZS1cdTAwM2VpX3NpemUgPSBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplO1xuLVx0XHRpX3NpemVfd3JpdGUoaW5vZGUsIGlub2RlLVx1MDAzZWlfc2ItXHUwMDNlc19ibG9ja3NpemUpO1xuLVx0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfZGlza3NpemUgPSBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplO1xuLVxuIFx0XHRlcnJvciA9IGV4dDRfaW5pdF9kaXJibG9jayhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLFxuIFx0XHRcdCAgbGUzMl90b19jcHUoKChzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqKWJ1ZiktXHUwMDNlaW5vZGUpLFxuIFx0XHRcdCAgYnVmICYjNDM7IEVYVDRfSU5MSU5FX0RPVERPVF9TSVpFLFxuIFx0XHRcdCAgaW5saW5lX3NpemUgLSBFWFQ0X0lOTElORV9ET1RET1RfU0laRSk7XG4tXHRcdGlmICghZXJyb3IpXG4tXHRcdFx0ZXJyb3IgPSBleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBpbm9kZSk7XG4gXHR9XG4mIzQzO291dF9iaDpcbiYjNDM7XHRpZiAoZXJyb3IpIHtcbiYjNDM7XHRcdGludCBmbGFncyA9IDA7XG4gXG4tb3V0X3Jlc3RvcmU6XG4tXHRpZiAoZXJyb3IpXG4tXHRcdGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YShoYW5kbGUsIGlub2RlLCBpbG9jLCBidWYsIGlubGluZV9zaXplKTtcbiYjNDM7XHRcdGlmIChkYXRhX2JoKVxuJiM0MztcdFx0XHRmbGFncyB8PSBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVDtcbiYjNDM7XHRcdHN0cnVjdCBleHQ0X2lub2RlX2luZm8gKmVpID0gRVhUNF9JKGlub2RlKTtcbiBcbiYjNDM7XHRcdGRvd25fd3JpdGUoXHUwMDI2ZWktXHUwMDNlaV9kYXRhX3NlbSk7XG4mIzQzO1x0XHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xuJiM0MztcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLCBuZXdibG9jaywgYWxsb2NhdGVkX2Jsb2NrLCBmbGFncyk7XG4mIzQzO1x0XHR1cF93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbiYjNDM7XHR9IGVsc2Uge1xuJiM0MztcdFx0ZXJyb3IgPSBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGUsIGlub2RlLFxuJiM0MztcdFx0XHRcdG5ld2Jsb2NrLCBhbGxvY2F0ZWRfYmxvY2ssIGRhdGFfYmgpO1xuJiM0MztcdH1cbiBvdXQ6XG4tXHRicmVsc2UoZGF0YV9iaCk7XG4gXHRrZnJlZShidWYpO1xuIFx0cmV0dXJuIGVycm9yO1xuIH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNjo1MTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xNG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEmIzM0OywKICAgICYjMzQ7ZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gaG93IGV4dDQgY29udmVydHMgaW5saW5lIGRhdGEgdG8gYmxvY2tzLCByZXBsYWNpbmcgdGhlIHVzZSBvZiBgZXh0NF9tYXBfYmxvY2tzYCB3aXRoIGRpcmVjdCBibG9jayBhbGxvY2F0aW9uIHZpYSBgZXh0NF9tYl9uZXdfYmxvY2tzYCBhbmQgaW50cm9kdWNpbmcgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gVGhpcyBtb2RpZmllcyBjb3JlIHJlYWNoYWJsZSBsb2dpYyBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCB3aGljaCBpcyB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMTI0YzdlYTZjZGQwMmFjNGUwYWE2MTA1ZWQwNTUyMTRkZjE4MTU5YQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDIyIDE2OjUxOjA5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxpbmUuYyBiL2ZzL2V4dDQvaW5saW5lLmMKaW5kZXggODA0NWU0ZmYyNzBjNy4uNTA3MTA2YzcyZTgyZiAxMDA2NDQKLS0tIGEvZnMvZXh0NC9pbmxpbmUuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9leHQ0L2lubGluZS5jCkBAIC0xNCw2ICYjNDM7MTQsNyBAQAogI2luY2x1ZGUgJiMzNDtleHQ0LmgmIzM0OwogI2luY2x1ZGUgJiMzNDt4YXR0ci5oJiMzNDsKICNpbmNsdWRlICYjMzQ7dHJ1bmNhdGUuaCYjMzQ7CiYjNDM7I2luY2x1ZGUgJiMzNDtleHQ0X2V4dGVudHMuaCYjMzQ7CiAKICNkZWZpbmUgRVhUNF9YQVRUUl9TWVNURU1fREFUQQkmIzM0O2RhdGEmIzM0OwogI2RlZmluZSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFCSgoc2l6ZW9mKF9fbGUzMikgKiBFWFQ0X05fQkxPQ0tTKSkKQEAgLTEwNzAsMjEgJiM0MzsxMDcxLDExNSBAQCBzdGF0aWMgaW50IGV4dDRfdXBkYXRlX2lubGluZV9kaXIoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICpkaXIsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAotCQkJCSAgICAgc3RydWN0IGV4dDRfaWxvYyAqaWxvYywKLQkJCQkgICAgIHZvaWQgKmJ1ZiwgaW50IGlubGluZV9zaXplKQomIzQzO3N0YXRpYyBpbnQgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2soaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9mc2Jsa190IGJsb2NrLAomIzQzOwkJCQkJdW5zaWduZWQgaW50IGxlbiwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKIHsKLQlpbnQgcmV0OwomIzQzOwlzdHJ1Y3QgZXh0NF9pbm9kZV9pbmZvICplaSA9IEVYVDRfSShpbm9kZSk7CiYjNDM7CXN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmQgaXMgPSB7CiYjNDM7CQkucyA9IHsgLm5vdF9mb3VuZCA9IDAsIH0sCiYjNDM7CX07CiYjNDM7CXN0cnVjdCBleHQ0X3hhdHRyX2luZm8gaSA9IHsKJiM0MzsJCS5uYW1lX2luZGV4ID0gRVhUNF9YQVRUUl9JTkRFWF9TWVNURU0sCiYjNDM7CQkubmFtZSA9IEVYVDRfWEFUVFJfU1lTVEVNX0RBVEEsCiYjNDM7CQkudmFsdWUgPSBOVUxMLAomIzQzOwkJLnZhbHVlX2xlbiA9IDAsCiYjNDM7CX07CiYjNDM7CWludCBlcnJvcjsKJiM0MzsJaW50IGlub2RlX3NpemU7CiYjNDM7CXZvaWQgKmlub2RlX2J1ZiA9IE5VTEw7CiYjNDM7CXN0cnVjdCBleHQ0X2lub2RlICpyYXdfaW5vZGU7CiAKLQlyZXQgPSBleHQ0X2NyZWF0ZV9pbmxpbmVfZGF0YShoYW5kbGUsIGlub2RlLCBpbmxpbmVfc2l6ZSk7Ci0JaWYgKHJldCkgewotCQlleHQ0X21zZyhpbm9kZS0mZ3Q7aV9zYiwgS0VSTl9FTUVSRywKLQkJCSYjMzQ7ZXJyb3IgcmVzdG9yaW5nIGlubGluZV9kYXRhIGZvciBpbm9kZSAtLSBwb3RlbnRpYWwgZGF0YSBsb3NzISAoaW5vZGUgJWxsdSwgZXJyb3IgJWQpJiMzNDssCi0JCQlpbm9kZS0mZ3Q7aV9pbm8sIHJldCk7Ci0JCXJldHVybjsKJiM0MzsJaW5vZGVfc2l6ZSA9IEVYVDRfSU5PREVfU0laRShpbm9kZS0mZ3Q7aV9zYik7CiYjNDM7CWlub2RlX2J1ZiA9IGttYWxsb2MoaW5vZGVfc2l6ZSwgR0ZQX05PRlMpOwomIzQzOwlpZiAoIWlub2RlX2J1ZikgewomIzQzOwkJZXJyb3IgPSAtRU5PTUVNOwomIzQzOwkJZG93bl93cml0ZSgmYW1wO2VpLSZndDtpX2RhdGFfc2VtKTsKJiM0MzsJCWV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7CiYjNDM7CQlleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7CiYjNDM7CQl1cF93cml0ZSgmYW1wO2VpLSZndDtpX2RhdGFfc2VtKTsKJiM0MzsJCXJldHVybiBlcnJvcjsKIAl9Ci0JZXh0NF93cml0ZV9pbmxpbmVfZGF0YShpbm9kZSwgaWxvYywgYnVmLCAwLCBpbmxpbmVfc2l6ZSk7Ci0JZXh0NF9zZXRfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTsKJiM0MzsJZG93bl93cml0ZSgmYW1wO2VpLSZndDtpX2RhdGFfc2VtKTsKJiM0MzsJZXJyb3IgPSBleHQ0X2dldF9pbm9kZV9sb2MoaW5vZGUsICZhbXA7aXMuaWxvYyk7CiYjNDM7CWlmIChlcnJvcikgewomIzQzOwkJZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTsKJiM0MzsJCWV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTsKJiM0MzsJCXVwX3dyaXRlKCZhbXA7ZWktJmd0O2lfZGF0YV9zZW0pOwomIzQzOwkJa2ZyZWUoaW5vZGVfYnVmKTsKJiM0MzsJCXJldHVybiBlcnJvcjsKJiM0MzsJfQomIzQzOwlyYXdfaW5vZGUgPSBleHQ0X3Jhd19pbm9kZSgmYW1wO2lzLmlsb2MpOwomIzQzOwlCVUZGRVJfVFJBQ0UoaXMuaWxvYy5iaCwgJiMzNDtnZXRfd3JpdGVfYWNjZXNzJiMzNDspOwomIzQzOwllcnJvciA9IGV4dDRfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKGhhbmRsZSwgaW5vZGUtJmd0O2lfc2IsIGlzLmlsb2MuYmgsIEVYVDRfSlRSX05PTkUpOwomIzQzOwlpZiAoZXJyb3IpIHsKJiM0MzsJCWV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7CiYjNDM7CQlleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7CiYjNDM7CQlnb3RvIG91dDsKJiM0MzsJfQomIzQzOwltZW1jcHkoaW5vZGVfYnVmLCAodm9pZCAqKXJhd19pbm9kZSwgaW5vZGVfc2l6ZSk7CiYjNDM7CW1lbXNldCgodm9pZCAqKXJhd19pbm9kZS0mZ3Q7aV9ibG9jaywgMCwgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSk7CiYjNDM7CW1lbXNldChlaS0mZ3Q7aV9kYXRhLCAwLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTsKJiM0MzsJaWYgKGV4dDRfaGFzX2ZlYXR1cmVfZXh0ZW50cyhpbm9kZS0mZ3Q7aV9zYikgJmFtcDsmYW1wOwomIzQzOwkJKFNfSVNESVIoaW5vZGUtJmd0O2lfbW9kZSkgfHwgU19JU1JFRyhpbm9kZS0mZ3Q7aV9tb2RlKSB8fCBTX0lTTE5LKGlub2RlLSZndDtpX21vZGUpKSkgewomIzQzOwkJZXh0NF9zZXRfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRTKTsKJiM0MzsJCWV4dDRfZXh0X3RyZWVfaW5pdChoYW5kbGUsIGlub2RlKTsKJiM0MzsJCXN0cnVjdCBleHQ0X2V4dF9wYXRoICpwYXRoID0gZXh0NF9maW5kX2V4dGVudChpbm9kZSwgMCwgTlVMTCwgMCk7CiYjNDM7CiYjNDM7CQlpZiAoSVNfRVJSKHBhdGgpKSB7CiYjNDM7CQkJZXJyb3IgPSBQVFJfRVJSKHBhdGgpOwomIzQzOwkJCWdvdG8gcmVjb3Zlcnk7CiYjNDM7CQl9CiYjNDM7CQlzdHJ1Y3QgZXh0NF9leHRlbnQgbmV3ZXg7CiYjNDM7CiYjNDM7CQluZXdleC5lZV9ibG9jayA9IGNwdV90b19sZTMyKDApOwomIzQzOwkJbmV3ZXguZWVfbGVuID0gY3B1X3RvX2xlMTYoMSk7CiYjNDM7CQlleHQ0X2V4dF9zdG9yZV9wYmxvY2soJmFtcDtuZXdleCwgYmxvY2spOwomIzQzOwkJcGF0aCA9IGV4dDRfZXh0X2luc2VydF9leHRlbnQoaGFuZGxlLCBpbm9kZSwgcGF0aCwgJmFtcDtuZXdleCwgMCk7CiYjNDM7CQlpZiAoSVNfRVJSKHBhdGgpKSB7CiYjNDM7CQkJZXJyb3IgPSBQVFJfRVJSKHBhdGgpOwomIzQzOwkJCWlmIChlcnJvciA9PSAtRURRVU9UIHx8IGVycm9yID09IC1FTk9TUEMpIHsKJiM0MzsJCQkJZ290byByZWNvdmVyeTsKJiM0MzsJCQl9IGVsc2UgewomIzQzOwkJCQlleHQ0X2ZvcmdldChoYW5kbGUsIDAsIGlub2RlLCBiaCwgYmxvY2spOwomIzQzOwkJCQlnb3RvIG5vZnJlZTsKJiM0MzsJCQl9CiYjNDM7CQl9IGVsc2UgewomIzQzOwkJCWV4dDRfZnJlZV9leHRfcGF0aChwYXRoKTsKJiM0MzsJCX0KJiM0MzsJfSBlbHNlIHsKJiM0MzsJCUVYVDRfSShpbm9kZSktJmd0O2lfZGF0YVswXSA9IGNwdV90b19sZTMyKGJsb2NrKTsKJiM0MzsJfQomIzQzOwllcnJvciA9IGV4dDRfeGF0dHJfaWJvZHlfZmluZChpbm9kZSwgJmFtcDtpLCAmYW1wO2lzKTsKJiM0MzsJaWYgKGVycm9yKQomIzQzOwkJZ290byByZWNvdmVyeTsKJiM0MzsJaWYgKCFpcy5zLm5vdF9mb3VuZCkKJiM0MzsJCWVycm9yID0gZXh0NF94YXR0cl9pYm9keV9zZXQoaGFuZGxlLCBpbm9kZSwgJmFtcDtpLCAmYW1wO2lzKTsKJiM0MztyZWNvdmVyeToKJiM0MzsJaWYgKGVycm9yKSB7CiYjNDM7CQlleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpOwomIzQzOwkJZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpOwomIzQzO25vZnJlZToKJiM0MzsJCW1lbWNweSgodm9pZCAqKXJhd19pbm9kZSwgaW5vZGVfYnVmLCBpbm9kZV9zaXplKTsKJiM0MzsJCW1lbWNweShlaS0mZ3Q7aV9kYXRhLCByYXdfaW5vZGUtJmd0O2lfYmxvY2ssIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpOwomIzQzOwkJZXh0NF9jbGVhcl9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0VYVEVOVFMpOwomIzQzOwl9IGVsc2UgewomIzQzOwkJZXh0NF9jbGVhcl9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0lOTElORV9EQVRBKTsKJiM0MzsJCWdldF9iaChpcy5pbG9jLmJoKTsKJiM0MzsJCWVycm9yID0gZXh0NF9tYXJrX2lsb2NfZGlydHkoaGFuZGxlLCBpbm9kZSwgJmFtcDtpcy5pbG9jKTsKJiM0MzsJCUVYVDRfSShpbm9kZSktJmd0O2lfaW5saW5lX29mZiA9IDA7CiYjNDM7CQlFWFQ0X0koaW5vZGUpLSZndDtpX2lubGluZV9zaXplID0gMDsKJiM0MzsJCWV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTsKJiM0MzsJCWlmIChTX0lTRElSKGlub2RlLSZndDtpX21vZGUpKSB7CiYjNDM7CQkJaV9zaXplX3dyaXRlKGlub2RlLCBpbm9kZS0mZ3Q7aV9zYi0mZ3Q7c19ibG9ja3NpemUpOwomIzQzOwkJCUVYVDRfSShpbm9kZSktJmd0O2lfZGlza3NpemUgPSBpbm9kZS0mZ3Q7aV9zYi0mZ3Q7c19ibG9ja3NpemU7CiYjNDM7CQl9CiYjNDM7CQlicmVsc2UoYmgpOwomIzQzOwl9CiYjNDM7b3V0OgomIzQzOwlicmVsc2UoaXMuaWxvYy5iaCk7CiYjNDM7CXVwX3dyaXRlKCZhbXA7ZWktJmd0O2lfZGF0YV9zZW0pOwomIzQzOwlrZnJlZShpbm9kZV9idWYpOwomIzQzOwlyZXR1cm4gZXJyb3I7CiB9CiAKIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLApAQCAtMTA5NCw4ICYjNDM7MTE4OSwxMSBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSwKIAlpbnQgZXJyb3I7CiAJdm9pZCAqYnVmID0gTlVMTDsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRhdGFfYmggPSBOVUxMOwotCXN0cnVjdCBleHQ0X21hcF9ibG9ja3MgbWFwOwogCWludCBpbmxpbmVfc2l6ZTsKJiM0MzsJZXh0NF9mc2Jsa190IG5ld2Jsb2NrID0gMDsKJiM0MzsJc3RydWN0IGV4dDRfYWxsb2NhdGlvbl9yZXF1ZXN0IGFyOwomIzQzOwlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKGlub2RlLSZndDtpX3NiKTsKJiM0MzsJdW5zaWduZWQgaW50IGFsbG9jYXRlZF9ibG9jazsKIAogCWlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpOwogCWJ1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTsKQEAgLTExMjAsMjUgJiM0MzsxMjE4LDIyIEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLAogCQkJZ290byBvdXQ7CiAJfQogCi0JZXJyb3IgPSBleHQ0X2Rlc3Ryb3lfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUpOwotCWlmIChlcnJvcikKLQkJZ290byBvdXQ7Ci0KLQltYXAubV9sYmxrID0gMDsKLQltYXAubV9sZW4gPSAxOwotCW1hcC5tX2ZsYWdzID0gMDsKLQllcnJvciA9IGV4dDRfbWFwX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCAmYW1wO21hcCwgRVhUNF9HRVRfQkxPQ0tTX0NSRUFURSk7CiYjNDM7CW1lbXNldCgmYW1wO2FyLCAwLCBzaXplb2YoYXIpKTsKJiM0MzsJYXIuaW5vZGUgPSBpbm9kZTsKJiM0MzsJYXIubG9naWNhbCA9IDA7CiYjNDM7CWFyLmxlbiA9IDE7CiYjNDM7CWlmIChTX0lTUkVHKGlub2RlLSZndDtpX21vZGUpKQomIzQzOwkJYXIuZmxhZ3MgPSBFWFQ0X01CX0hJTlRfREFUQTsKJiM0MzsJZWxzZQomIzQzOwkJYXIuZmxhZ3MgPSAwOwomIzQzOwluZXdibG9jayA9IGV4dDRfbWJfbmV3X2Jsb2NrcyhoYW5kbGUsICZhbXA7YXIsICZhbXA7ZXJyb3IpOwogCWlmIChlcnJvciAmbHQ7IDApCi0JCWdvdG8gb3V0X3Jlc3RvcmU7Ci0JaWYgKCEobWFwLm1fZmxhZ3MgJmFtcDsgRVhUNF9NQVBfTUFQUEVEKSkgewotCQllcnJvciA9IC1FSU87Ci0JCWdvdG8gb3V0X3Jlc3RvcmU7Ci0JfQotCi0JZGF0YV9iaCA9IHNiX2dldGJsayhpbm9kZS0mZ3Q7aV9zYiwgbWFwLm1fcGJsayk7CiYjNDM7CQlnb3RvIG91dDsKJiM0MzsJYWxsb2NhdGVkX2Jsb2NrID0gRVhUNF9DMkIoc2JpLCBhci5sZW4pOwomIzQzOwlkYXRhX2JoID0gc2JfZ2V0YmxrKGlub2RlLSZndDtpX3NiLCBuZXdibG9jayk7CiAJaWYgKCFkYXRhX2JoKSB7CiAJCWVycm9yID0gLUVOT01FTTsKLQkJZ290byBvdXRfcmVzdG9yZTsKJiM0MzsJCWdvdG8gb3V0X2JoOwogCX0KIAogCWxvY2tfYnVmZmVyKGRhdGFfYmgpOwpAQCAtMTE0Nyw3ICYjNDM7MTI0Miw3IEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLAogCWlmIChlcnJvcikgewogCQl1bmxvY2tfYnVmZmVyKGRhdGFfYmgpOwogCQllcnJvciA9IC1FSU87Ci0JCWdvdG8gb3V0X3Jlc3RvcmU7CiYjNDM7CQlnb3RvIG91dF9iaDsKIAl9CiAJbWVtc2V0KGRhdGFfYmgtJmd0O2JfZGF0YSwgMCwgaW5vZGUtJmd0O2lfc2ItJmd0O3NfYmxvY2tzaXplKTsKIApAQCAtMTE1OSwyNCAmIzQzOzEyNTQsMjggQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsCiAJCQkJCQkgICBpbm9kZSwgZGF0YV9iaCk7CiAJfSBlbHNlIHsKIAkJdW5sb2NrX2J1ZmZlcihkYXRhX2JoKTsKLQkJaW5vZGUtJmd0O2lfc2l6ZSA9IGlub2RlLSZndDtpX3NiLSZndDtzX2Jsb2Nrc2l6ZTsKLQkJaV9zaXplX3dyaXRlKGlub2RlLCBpbm9kZS0mZ3Q7aV9zYi0mZ3Q7c19ibG9ja3NpemUpOwotCQlFWFQ0X0koaW5vZGUpLSZndDtpX2Rpc2tzaXplID0gaW5vZGUtJmd0O2lfc2ItJmd0O3NfYmxvY2tzaXplOwotCiAJCWVycm9yID0gZXh0NF9pbml0X2RpcmJsb2NrKGhhbmRsZSwgaW5vZGUsIGRhdGFfYmgsCiAJCQkgIGxlMzJfdG9fY3B1KCgoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKilidWYpLSZndDtpbm9kZSksCiAJCQkgIGJ1ZiAmIzQzOyBFWFQ0X0lOTElORV9ET1RET1RfU0laRSwKIAkJCSAgaW5saW5lX3NpemUgLSBFWFQ0X0lOTElORV9ET1RET1RfU0laRSk7Ci0JCWlmICghZXJyb3IpCi0JCQllcnJvciA9IGV4dDRfbWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIGlub2RlKTsKIAl9CiYjNDM7b3V0X2JoOgomIzQzOwlpZiAoZXJyb3IpIHsKJiM0MzsJCWludCBmbGFncyA9IDA7CiAKLW91dF9yZXN0b3JlOgotCWlmIChlcnJvcikKLQkJZXh0NF9yZXN0b3JlX2lubGluZV9kYXRhKGhhbmRsZSwgaW5vZGUsIGlsb2MsIGJ1ZiwgaW5saW5lX3NpemUpOwomIzQzOwkJaWYgKGRhdGFfYmgpCiYjNDM7CQkJZmxhZ3MgfD0gRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQ7CiYjNDM7CQlzdHJ1Y3QgZXh0NF9pbm9kZV9pbmZvICplaSA9IEVYVDRfSShpbm9kZSk7CiAKJiM0MzsJCWRvd25fd3JpdGUoJmFtcDtlaS0mZ3Q7aV9kYXRhX3NlbSk7CiYjNDM7CQlleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpOwomIzQzOwkJZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLCBuZXdibG9jaywgYWxsb2NhdGVkX2Jsb2NrLCBmbGFncyk7CiYjNDM7CQl1cF93cml0ZSgmYW1wO2VpLSZndDtpX2RhdGFfc2VtKTsKJiM0MzsJfSBlbHNlIHsKJiM0MzsJCWVycm9yID0gZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2soaGFuZGxlLCBpbm9kZSwKJiM0MzsJCQkJbmV3YmxvY2ssIGFsbG9jYXRlZF9ibG9jaywgZGF0YV9iaCk7CiYjNDM7CX0KIG91dDoKLQlicmVsc2UoZGF0YV9iaCk7CiAJa2ZyZWUoYnVmKTsKIAlyZXR1cm4gZXJyb3I7CiB9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE2OjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwNzkKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAyMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNpbmcgb24gRXh0NCBJbmxpbmUgRGF0YSBDb252ZXJzaW9uKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCBhIHBhdGNoIGhlcmUgdGhhdCYjMzk7cyBtYWtpbmcgc29tZSBwcmV0dHkgc2lnbmlmaWNhbnQgY2hhbmdlcyB0byBgZnMvZXh0NC9pbmxpbmUuY2AuIEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBzaGlmdCwgc3BlY2lmaWNhbGx5IGFpbWVkIGF0IGhvdyBleHQ0IGhhbmRsZXMgaW5saW5lIGRhdGEgY29udmVyc2lvbi4gUmVtb3ZpbmcgYGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YWAgYW5kIGludHJvZHVjaW5nIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AgaXMgYW4gaW50ZXJlc3RpbmcgY2hhbmdlLCBidXQgdGhlIG1vZGlmaWNhdGlvbiB0byBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AgaXMgd2hhdCByZWFsbHkgY2F0Y2hlcyBteSBleWUuIERpcmVjdGx5IHVzaW5nIGBleHQ0X21iX25ld19ibG9ja3NgIGluc3RlYWQgb2YgdGhlIG9sZCBgZXh0NF9tYXBfYmxvY2tzYCBhbmQgYGV4dDRfZGVzdHJveV9pbmxpbmVfZGF0YV9ub2xvY2tgIHNlcXVlbmNlLi4udGhhdCBjb3VsZCBpbnRyb2R1Y2Ugc29tZSBpbnRlcmVzdGluZyBlZGdlIGNhc2VzLiBUaGlzIGlzIGRlZmluaXRlbHkgcHJpbWUgZnV6emluZyB0ZXJyaXRvcnkuCgpOb3csIGxldCYjMzk7cyBpZGVudGlmeSB0aGUgY3JpdGljYWwgZnVuY3Rpb25zIHRvIGZvY3VzIG9uLiBXZSYjMzk7dmUgZ290IGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AsIHdoaWNoIGlzIG5ldywgYW5kIHRoZW4gdGhlIG1vZGlmaWVkIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYC4gVGhleSBhcmUgYm90aCBzdGF0aWMgdGhvdWdoLCB3aGljaCBtZWFucyB3ZSBuZWVkIHRvIGZpbmQgdGhlaXIgbm9uLXN0YXRpYyBjYWxsaW5nIGZ1bmN0aW9ucyB0byBjcmVhdGUgaW5wdXQuIEkgc2hvdWxkIHByb2JhYmx5IHN0YXJ0IGJ5IHNlYXJjaGluZyBmb3IgY2FsbHMgdG8gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBlbnRyeSBwb2ludHMgdG8gYW5hbHl6ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNjo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2V4dDQvaW5saW5lLmM9MTA3ND1zdGF0aWMgaW50IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfZnNibGtfdCBibG9jayxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTExODQtXG5mcy9leHQ0L2lubGluZS5jOjExODU6c3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXG5mcy9leHQ0L2lubGluZS5jLTExODYtXHRcdFx0XHRcdCAgIHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYz0xMjg4PWludCBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBleHQ0X2ZpbGVuYW1lICpmbmFtZSxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTEzNDAtXHQgKi9cbmZzL2V4dDQvaW5saW5lLmM6MTM0MTpcdHJldCA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlLCBkaXIsIFx1MDAyNmlsb2MpO1xuZnMvZXh0NC9pbmxpbmUuYy0xMzQyLVxuLS1cbmZzL2V4dDQvaW5saW5lLmM9MjA1NT1pbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0yMDkyLVx0aWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSlcbmZzL2V4dDQvaW5saW5lLmM6MjA5MzpcdFx0ZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUsIFx1MDAyNmlsb2MpO1xuZnMvZXh0NC9pbmxpbmUuYy0yMDk0LVx0ZXh0NF93cml0ZV91bmxvY2tfeGF0dHIoaW5vZGUsIFx1MDAyNm5vX2V4cGFuZCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTk3NgoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIENhbGxlcnMgaW4gZXh0NCBGaWxlIFN5c3RlbSBJbmxpbmUgRGF0YSBIYW5kbGluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgdHdvIGZ1bmN0aW9ucywgYGV4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnlgIGFuZCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCwgYm90aCBvZiB3aGljaCBzZWVtIGludm9sdmVkIGluIGhvdyB0aGUgZXh0NCBmaWxlc3lzdGVtIGhhbmRsZXMgaW5saW5lIGRhdGEuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZW5zdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGFueSBvdGhlciBpbXBvcnRhbnQgcGllY2VzIG9mIHRoZSBwdXp6bGUuIEkga25vdyB0aGVzZSBmdW5jdGlvbnMgYXJlIGNydWNpYWwsIGJ1dCB1bmRlcnN0YW5kaW5nIHRoZSBjb21wbGV0ZSBwaWN0dXJlIHJlcXVpcmVzIGNvbnNpZGVyaW5nIGFsbCByZWxhdGVkIGNvZGUgcGF0aHMuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIG1ldGhvZGljYWxseSBjaGVjaywgd2l0aCBhIHF1aWNrIGNvZGUgaW5zcGVjdGlvbiwgaWYgdGhlcmUgYXJlICphbnkqIG90aGVyIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0IGFsc28gYmUgY2FsbGluZyB0aGlzIHNhbWUgY29kZSBvciByZWxhdGVkIGNvZGUgcGF0aHMuIFRoaXMgd2lsbCBoZWxwIG1lIGJ1aWxkIGEgY29tcGxldGUgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhpcyBpbmxpbmUgZGF0YSBtZWNoYW5pc20gaXMgdHJ1bHkgd29ya2luZy4gVGhpcyBjb3VsZCByZXZlYWwgaW1wb3J0YW50IGluZm9ybWF0aW9uIGFib3V0IG90aGVyIGVudHJ5IHBvaW50cyBvciBtZXRob2RzIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNjo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2V4dDQvZXh0NC5oPTM3NDc9ZXh0ZXJuIGludCBleHQ0X2dlbmVyaWNfd3JpdGVfaW5saW5lX2RhdGEoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXG4tLVxuZnMvZXh0NC9leHQ0LmgtMzc1MS1cdFx0XHRcdFx0ICB2b2lkICoqZnNkYXRhLCBib29sIGRhKTtcbmZzL2V4dDQvZXh0NC5oOjM3NTI6ZXh0ZXJuIGludCBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsXG5mcy9leHQ0L2V4dDQuaC0zNzUzLVx0XHRcdFx0ICAgICBzdHJ1Y3QgZXh0NF9maWxlbmFtZSAqZm5hbWUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYz0xMTg1PXN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTI4Ny0gKi9cbmZzL2V4dDQvaW5saW5lLmM6MTI4ODppbnQgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgZXh0NF9maWxlbmFtZSAqZm5hbWUsXG5mcy9leHQ0L2lubGluZS5jLTEyODktXHRcdFx0ICAgICAgc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4tLVxuZnMvZXh0NC9uYW1laS5jPTIzNTY9c3RhdGljIGludCBfX2V4dDRfYWRkX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqZGlyLFxuLS1cbmZzL2V4dDQvbmFtZWkuYy0yMzgzLVx0aWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGRpcikpIHtcbmZzL2V4dDQvbmFtZWkuYzoyMzg0Olx0XHRyZXR2YWwgPSBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5KGhhbmRsZSwgXHUwMDI2Zm5hbWUsIGRpciwgaW5vZGUpO1xuZnMvZXh0NC9uYW1laS5jLTIzODUtXHRcdGlmIChyZXR2YWwgXHUwMDNjIDApXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjYxMwoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJiMzOTttIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOgoKKipJbmxpbmUgRGF0YSBFbnRyeSBJbnZlc3RpZ2F0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBpbnRvIGhvdyBpbmxpbmUgZGF0YSBlbnRyaWVzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLiBNeSBmb2N1cyBpcyBvbiB0aGUgYGV4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnlgIGZ1bmN0aW9uLiBJIGtub3cgdGhpcyBpcyBjYWxsZWQgYnkgYF9fZXh0NF9hZGRfZW50cnlgLCB3aGljaCBpdHNlbGYgcmVzaWRlcyBpbiBgZnMvZXh0NC9uYW1laS5jYC4gU28sIHRoZSBwYXRoIGlzIGNsZWFyOiBuYW1pbmcgYW5kIGFkZGluZyBuZXcgZGlyZWN0b3J5IGVudHJpZXMuCgpOb3csIG15IG5leHQgdGhvdWdodCBpcyBhYm91dCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYC4gSSBzZWVtIHRvIHJlY2FsbCB0aGF0IG9uZSBiZWluZyBleHBvcnRlZCwgbWF5YmUgZm9yIHVzZSBpbiBzaXR1YXRpb25zIG90aGVyIHRoYW4gdGhpcy4gSXQgd291bGQgbWFrZSBzZW5zZSBpZiBpdCB3YXMsIHNvIGxldCBtZSBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0IGV4cG9ydCBzdGF0dXMuIFRoYXTigJlzIHByb2JhYmx5IHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpbiB1bmRlcnN0YW5kaW5nIGhvdyBhbGwgdGhpcyB3b3JrcyB0b2dldGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNjo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXh0NC9jcnlwdG8uYz0xMzI9c3RhdGljIGludCBleHQ0X3NldF9jb250ZXh0KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IHZvaWQgKmN0eCwgc2l6ZV90IGxlbixcbi0tXG5mcy9leHQ0L2NyeXB0by5jLTE1Mi1cbmZzL2V4dDQvY3J5cHRvLmM6MTUzOlx0cmVzID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcbmZzL2V4dDQvY3J5cHRvLmMtMTU0LVx0aWYgKHJlcylcbi0tXG5mcy9leHQ0L2V4dDQuaD0zNzg0PWV4dGVybiBpbnQgZXh0NF9pbmxpbmVfZGF0YV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpO1xuZnMvZXh0NC9leHQ0LmgtMzc4NS1cbmZzL2V4dDQvZXh0NC5oOjM3ODY6ZXh0ZXJuIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSk7XG5mcy9leHQ0L2V4dDQuaC0zNzg3LVxuLS1cbmZzL2V4dDQvZXh0ZW50cy5jPTQ4NTQ9bG9uZyBleHQ0X2ZhbGxvY2F0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1vZGUsIGxvZmZfdCBvZmZzZXQsIGxvZmZfdCBsZW4pXG4tLVxuZnMvZXh0NC9leHRlbnRzLmMtNDg4My1cdGlub2RlX2xvY2soaW5vZGUpO1xuZnMvZXh0NC9leHRlbnRzLmM6NDg4NDpcdHJldCA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShpbm9kZSk7XG5mcy9leHQ0L2V4dGVudHMuYy00ODg1LVx0aWYgKHJldClcbi0tXG5mcy9leHQ0L2lubGluZS5jPTU0Nj1pbnQgZXh0NF9yZWFkcGFnZV9pbmxpbmUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZvbGlvICpmb2xpbylcbi0tXG5mcy9leHQ0L2lubGluZS5jLTU3Mi1cbmZzL2V4dDQvaW5saW5lLmM6NTczOnN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcbmZzL2V4dDQvaW5saW5lLmMtNTc0LVx0XHRcdFx0XHQgICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuLS1cbmZzL2V4dDQvaW5saW5lLmM9Njk3PWludCBleHQ0X2dlbmVyaWNfd3JpdGVfaW5saW5lX2RhdGEoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy03MjgtXHRcdFx0LyogUmV0cnkgaW5zaWRlICovXG5mcy9leHQ0L2lubGluZS5jOjcyOTpcdFx0XHRyZXR1cm4gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChtYXBwaW5nLCBpbm9kZSk7XG5mcy9leHQ0L2lubGluZS5jLTczMC1cdFx0fVxuLS1cbmZzL2V4dDQvaW5saW5lLmM9Nzg0PWludCBleHQ0X3RyeV90b193cml0ZV9pbmxpbmVfZGF0YShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTc4OS1cdGlmIChwb3MgJiM0MzsgbGVuIFx1MDAzZSBleHQ0X2dldF9tYXhfaW5saW5lX3NpemUoaW5vZGUpKVxuZnMvZXh0NC9pbmxpbmUuYzo3OTA6XHRcdHJldHVybiBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KG1hcHBpbmcsIGlub2RlKTtcbmZzL2V4dDQvaW5saW5lLmMtNzkxLVx0cmV0dXJuIGV4dDRfZ2VuZXJpY193cml0ZV9pbmxpbmVfZGF0YShtYXBwaW5nLCBpbm9kZSwgcG9zLCBsZW4sXG4tLVxuZnMvZXh0NC9pbmxpbmUuYz0xMDc0PXN0YXRpYyBpbnQgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2soaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9mc2Jsa190IGJsb2NrLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTE4NC1cbmZzL2V4dDQvaW5saW5lLmM6MTE4NTpzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbmZzL2V4dDQvaW5saW5lLmMtMTE4Ni1cdFx0XHRcdFx0ICAgc3RydWN0IGlub2RlICppbm9kZSxcbi0tXG5mcy9leHQ0L2lubGluZS5jPTEyODg9aW50IGV4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnkoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGV4dDRfZmlsZW5hbWUgKmZuYW1lLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTM0MC1cdCAqL1xuZnMvZXh0NC9pbmxpbmUuYzoxMzQxOlx0cmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGRpciwgXHUwMDI2aWxvYyk7XG5mcy9leHQ0L2lubGluZS5jLTEzNDItXG4tLVxuZnMvZXh0NC9pbmxpbmUuYz0xOTQzPWludCBleHQ0X2lubGluZV9kYXRhX3RydW5jYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCAqaGFzX2lubGluZSlcbi0tXG5mcy9leHQ0L2lubGluZS5jLTIwNTQtXG5mcy9leHQ0L2lubGluZS5jOjIwNTU6aW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuZnMvZXh0NC9pbmxpbmUuYy0yMDU2LXtcbi0tXG5mcy9leHQ0L2lubGluZS5jLTIwOTItXHRpZiAoZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpKVxuZnMvZXh0NC9pbmxpbmUuYzoyMDkzOlx0XHRlcnJvciA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlLCBpbm9kZSwgXHUwMDI2aWxvYyk7XG5mcy9leHQ0L2lubGluZS5jLTIwOTQtXHRleHQ0X3dyaXRlX3VubG9ja194YXR0cihpbm9kZSwgXHUwMDI2bm9fZXhwYW5kKTtcbi0tXG5mcy9leHQ0L2lub2RlLmM9NTkzND1pbnQgZXh0NF9zZXRhdHRyKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksXG4tLVxuZnMvZXh0NC9pbm9kZS5jLTYwMzEtXHRcdCAgICBhdHRyLVx1MDAzZWlhX3NpemUgXHUwMDNlIEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfc2l6ZSkge1xuZnMvZXh0NC9pbm9kZS5jOjYwMzI6XHRcdFx0ZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoaW5vZGUpO1xuZnMvZXh0NC9pbm9kZS5jLTYwMzMtXHRcdFx0aWYgKGVycm9yKVxuLS1cbmZzL2V4dDQvaW5vZGUuYz02Nzg3PXZtX2ZhdWx0X3QgZXh0NF9wYWdlX21rd3JpdGUoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXG4tLVxuZnMvZXh0NC9pbm9kZS5jLTY4MDgtXG5mcy9leHQ0L2lub2RlLmM6NjgwOTpcdGVyciA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShpbm9kZSk7XG5mcy9leHQ0L2lub2RlLmMtNjgxMC1cdGlmIChlcnIpXG4tLVxuZnMvZXh0NC92ZXJpdHkuYz0xMDI9c3RhdGljIGludCBleHQ0X2JlZ2luX2VuYWJsZV92ZXJpdHkoc3RydWN0IGZpbGUgKmZpbHApXG4tLVxuZnMvZXh0NC92ZXJpdHkuYy0xMjgtXG5mcy9leHQ0L3Zlcml0eS5jOjEyOTpcdGVyciA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShpbm9kZSk7XG5mcy9leHQ0L3Zlcml0eS5jLTEzMC1cdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjRtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODMzMwoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDE2MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIEV4dDQgSW5saW5lIERhdGEgQ29udmVyc2lvbiBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGNsZWFybHkgdG91Y2hpbmcgdGhlIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGFuZCBgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeWAgZnVuY3Rpb25zLiBGcm9tIGEgcXVpY2sgZ2xhbmNlLCBJIHNlZSB0aGVzZSBhcmUgZmFpcmx5IHdpZGVseSB1c2VkOyBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBpcyBjYWxsZWQgZnJvbSBhIHNsZXcgb2YgcGxhY2VzIGxpa2UgYGV4dDRfZmFsbG9jYXRlYCwgYGV4dDRfc2V0YXR0cmAsIGBleHQ0X3BhZ2VfbWt3cml0ZWAsIGFuZCBldmVuIGBleHQ0X2JlZ2luX2VuYWJsZV92ZXJpdHlgLiBUaGF0JiMzOTtzIGEgZGVjZW50IHNwcmVhZC4gQW5kIGBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5YCBpcyBjYWxsZWQgZnJvbSBgX19leHQ0X2FkZF9lbnRyeWAuIFRoaXMgdGVsbHMgbWUgdGhhdCB0aGlzIGlzIGZhaXJseSBmdW5kYW1lbnRhbCBjaGFuZ2UgdG8gaG93IHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggaW5saW5lIGRhdGEgY29udmVyc2lvbiBpbiBleHQ0LgoKR2l2ZW4gdGhlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbXBsaWVkLCBJJiMzOTttIGFscmVhZHkgdGhpbmtpbmcgdGhpcyBpcyByaXBlIGZvciBmdXp6aW5nLiBBbnkgY2hhbmdlIHRoaXMgcGVydmFzaXZlIGhhcyB0aGUgcG90ZW50aWFsIHRvIGludHJvZHVjZSBzdWJ0bGUgYnVncy4gTXkgaW5zdGluY3Qgc2F5cyB3ZSBuZWVkIHRvIGJlIHRob3JvdWdoIGhlcmUuCgpNeSBmb2N1cyBoYXMgdG8gYmUgb24gdGhvc2UgdHdvIHN5bWJvbHM6IGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGFuZCBgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeWAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBmdW5jdGlvbnMgYXJlIGJlaW5nIG1vZGlmaWVkIGFuZCBob3cgdGhvc2UgY2hhbmdlcyBpbXBhY3QgdGhlIGJyb2FkZXIgc3lzdGVtLiBJIGFsc28gbmVlZCB0byBtYWtlIHN1cmUgdGhlIGJ1aWxkIGVudmlyb25tZW50IGlzIHNldCB1cCBjb3JyZWN0bHk7IHRoZSBwYXRjaCBzcGVjaWZpZXMgYEVYVDRfRlNgLCBidXQgSSYjMzk7bGwgbmVlZCB0byBkb3VibGUtY2hlY2sgaWYgdGhlcmUgYXJlIGFueSAqb3RoZXIqIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGlubGluZSBkYXRhIGl0c2VsZi4gSXMgaXQgYSBmZWF0dXJlIGZsYWcsIG9yIGRvZXMgaXQgZGVwZW5kIG9uIG90aGVyIHBhcmFtZXRlcnM/IFRpbWUgdG8gZGlnIGRlZXBlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX0VYVDRfRlMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNzcgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZz04OD1DT05GSUdfTU1DX0RXPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZy04OS0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZzo5MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWctOTEtQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc9ODY9Q09ORklHX01NQ19EVz15XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWctODctIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc6ODg6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnLTg5LUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZz04OD1DT05GSUdfTU1DX0RXPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWctODktIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWctOTEtQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnPTc5PUNPTkZJR19USV9BREMxMDhTMTAyPXlcbmFyY2gvYXJjL2NvbmZpZ3MvaHNka19kZWZjb25maWc6ODA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZy04MS1DT05GSUdfVkZBVF9GUz15XG4tLVxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWc9NzU9Q09ORklHX1VTQl9TRVJJQUw9eVxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWctNzYtIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZzo3NzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZzo3ODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZy03OS1DT05GSUdfTVNET1NfRlM9eVxuLS1cbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZz04Mj1DT05GSUdfVUlPX1BEUlZfR0VOSVJRPXlcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZy04My0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZzo4NDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWctODUtQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNV9kZWZjb25maWc9MjY0PUNPTkZJR19QRUNJX0FTUEVFRD15XG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNV9kZWZjb25maWc6MjY1OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZy0yNjYtQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnPTIwNz1DT05GSUdfUFdNX0FUTUVMX1RDQj15XG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnOjIwODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnLTIwOS1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc9MTk2PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc6MTk3OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWctMTk4LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvYmNtMjgzNV9kZWZjb25maWc9MTU2PUNPTkZJR19FWFQyX0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnOjE1NzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnOjE1ODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9iY20yODM1X2RlZmNvbmZpZy0xNTktQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZz0yMjk9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWc6MjMwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvZGF2aW5jaV9hbGxfZGVmY29uZmlnOjIzMTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWctMjMyLUNPTkZJR19YRlNfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvZG92ZV9kZWZjb25maWc9OTc9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZzo5ODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnOjk5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZy0xMDAtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZz0xMDU9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnOjEwNjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWc6MTA3OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnLTEwOC1DT05GSUdfVkZBVF9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9leHlub3NfZGVmY29uZmlnPTMzMj1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWc6MzMzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvZXh5bm9zX2RlZmNvbmZpZy0zMzQtQ09ORklHX0FVVE9GU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9oaXNpX2RlZmNvbmZpZz03Nz1DT05GSUdfUEhZX0hJWDVIRDJfU0FUQT15XG5hcmNoL2FybS9jb25maWdzL2hpc2lfZGVmY29uZmlnOjc4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaGlzaV9kZWZjb25maWctNzktQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2lteF92NF92NV9kZWZjb25maWc9MTU1PUNPTkZJR19QV01fSU1YMjc9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjRfdjVfZGVmY29uZmlnOjE1NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2lteF92NF92NV9kZWZjb25maWctMTU3LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZz00Mzk9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZy00NDMtQ09ORklHX1FVT1RBPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZz0yNz1DT05GSUdfQ0xLX0lNWFJUMTA1MD15XG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZzoyODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZzoyOTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6MzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWctMzEtQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZz0xNTU9Q09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZzoxNTY6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnOjE1NzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnLTE1OC1DT05GSUdfT1ZFUkxBWV9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWc9MjA1PUNPTkZJR19SRVNFVF9USV9TWVNDT049bVxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWc6MjA2OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnOjIwNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWctMjA4LUNPTkZJR19GQU5PVElGWT15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9taWxiZWF1dF9tMTB2X2RlZmNvbmZpZz04MT1DT05GSUdfTUVNT1JZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWctODItIyBDT05GSUdfQVJNX1BNVSBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL21pbGJlYXV0X20xMHZfZGVmY29uZmlnOjgzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWctODQtQ09ORklHX0FVVE9GU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tbXAyX2RlZmNvbmZpZz01NT1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL21tcDJfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbW1wMl9kZWZjb25maWctNTctIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnPTExND1DT05GSUdfTU9YQVJUX0RNQT15XG5hcmNoL2FybS9jb25maWdzL21veGFydF9kZWZjb25maWctMTE1LSMgQ09ORklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnOjExNjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL21veGFydF9kZWZjb25maWctMTE3LUNPTkZJR19UTVBGUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92NV9kZWZjb25maWc9MjY5PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjVfZGVmY29uZmlnOjI3MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y1X2RlZmNvbmZpZy0yNzEtQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnPTEyODM9Q09ORklHX1NUTTMyX1RJTUVSX0NOVD1tXG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y3X2RlZmNvbmZpZzoxMjg0OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnLTEyODUtQ09ORklHX0FVVE9GU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZz05Mz1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnOjk0OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWc6OTU6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnLTk2LUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y1X2RlZmNvbmZpZz0xNjk9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92NV9kZWZjb25maWc6MTcwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjVfZGVmY29uZmlnLTE3MS1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92N19kZWZjb25maWc9MTMwPUNPTkZJR19QSFlfTVZFQlVfQTM4WF9DT01QSFk9eVxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92N19kZWZjb25maWc6MTMxOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjdfZGVmY29uZmlnLTEzMi1DT05GSUdfSVNPOTY2MF9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9teHNfZGVmY29uZmlnPTEzNj1DT05GSUdfTlZNRU1fTVhTX09DT1RQPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXhzX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9teHNfZGVmY29uZmlnLTEzOC0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnPTExOD1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnOjExOTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnLTEyMC1DT05GSUdfRlVTRV9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMV9kZWZjb25maWc9MTg0PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnOjE4NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL29tYXAxX2RlZmNvbmZpZy0xODYtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnPTY4MT1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWc6NjgyOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDJwbHVzX2RlZmNvbmZpZzo2ODM6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnLTY4NC1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc9MTE3PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZzoxMjA6Q09ORklHX0VYVDRfRlM9bVxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZy0xMjEtQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZz01NzU9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnOjU3NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy01NzktQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZz0yNzg9Q09ORklHX0VYVDJfRlNfWEFUVFI9eVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZzoyNzk6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZy0yODAtQ09ORklHX0ZVU0VfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZz03OT1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3JwY19kZWZjb25maWc6ODA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9ycGNfZGVmY29uZmlnLTgxLUNPTkZJR19BVVRPRlNfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWc9NTQ9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZzo1NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWctNTgtQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnPTEwMz1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnOjEwNDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnLTEwNS1DT05GSUdfQVVUT0ZTX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3NhbWE1X2RlZmNvbmZpZz0yMjI9Q09ORklHX1BXTV9BVE1FTF9UQ0I9eVxuYXJjaC9hcm0vY29uZmlncy9zYW1hNV9kZWZjb25maWc6MjIzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTVfZGVmY29uZmlnLTIyNC1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTdfZGVmY29uZmlnPTIxND1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3NhbWE3X2RlZmNvbmZpZzoyMTU6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zYW1hN19kZWZjb25maWctMjE2LUNPTkZJR19GQU5PVElGWT15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWctMTM5LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3A3MDIxX2RlZmNvbmZpZz00MD1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XG5hcmNoL2FybS9jb25maWdzL3NwNzAyMV9kZWZjb25maWc6NDE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zcDcwMjFfZGVmY29uZmlnLTQyLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZz04NT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWc6ODY6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnOjg3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZy04OC1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZz02OD1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo2OTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo3MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZy03MS1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZz01ND1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzo1NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZz0xOTI9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6MTkzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnOjE5NDojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnLTE5NS1DT05GSUdfTVNET1NfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3RtMzJfZGVmY29uZmlnPTcxPUNPTkZJR19TVE0zMl9BREM9eVxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWc6NzI6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWctNzMtIyBDT05GSUdfRklMRV9MT0NLSU5HIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZz0xNjI9Q09ORklHX05WTUVNX1NVTlhJX1NJRD15XG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZzoxNjM6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zdW54aV9kZWZjb25maWctMTY0LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZz0zMTI9Q09ORklHX1BIWV9URUdSQV9YVVNCPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxMzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxNTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZy0zMTYtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy91ODUwMF9kZWZjb25maWc9MTc1PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdTg1MDBfZGVmY29uZmlnOjE3NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3U4NTAwX2RlZmNvbmZpZy0xNzctQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvdmV4cHJlc3NfZGVmY29uZmlnPTEyMj1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3ZleHByZXNzX2RlZmNvbmZpZzoxMjM6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy92ZXhwcmVzc19kZWZjb25maWctMTI0LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3ZmNjEwbTRfZGVmY29uZmlnPTM1PUNPTkZJR19NRkRfU1lTQ09OPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3ZmNjEwbTRfZGVmY29uZmlnLTM3LSMgQ09ORklHX1VTQl9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3MvdmY2MTBtNF9kZWZjb25maWc6Mzg6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy92ZjYxMG00X2RlZmNvbmZpZy0zOS0jIENPTkZJR19NSVNDX0ZJTEVTWVNURU1TIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL3Z0ODUwMF92Nl92N19kZWZjb25maWc9Nzk9Q09ORklHX0dFTkVSSUNfUEhZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdnQ4NTAwX3Y2X3Y3X2RlZmNvbmZpZzo4MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3Z0ODUwMF92Nl92N19kZWZjb25maWctODEtQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTE4OTg9Q09ORklHX0hURV9URUdSQTE5NF9URVNUPW1cbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6MTg5OTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE5MDA6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6MTkwMTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnLTE5MDItQ09ORklHX0JUUkZTX0ZTPW1cbi0tXG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWc9MzM9Q09ORklHX0dFTkVSSUNfUEhZPXlcbmFyY2gvY3NreS9jb25maWdzL2RlZmNvbmZpZzozNDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWctMzUtQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2hleGFnb24vY29uZmlncy9jb21ldF9kZWZjb25maWc9NDg9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjQ5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZzo1MDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjUxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZy01Mi1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9OTUwPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUxOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjk1MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTk1NC1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTk4MT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZzo5ODQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy05ODUtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnPTQwMz1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZzo0MDQ6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnLTQwNS1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnPTM1OD1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWc6MzU5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWctMzYwLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZz0zODE9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWc6MzgyOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZy0zODMtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnPTM1MD1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnLTM1Mi1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWc9MzYwPUNPTkZJR19EQVg9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnOjM2MTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWctMzYyLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc9Mzc5PUNPTkZJR19EQVg9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvbWFjX2RlZmNvbmZpZzozODA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvbWFjX2RlZmNvbmZpZy0zODEtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnPTQ2Nj1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZzo0Njc6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnLTQ2OC1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZz0zNTA9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWctMzUyLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnPTM1MT1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnOjM1MjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZy0zNTMtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvcTQwX2RlZmNvbmZpZz0zNjk9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnOjM3MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnLTM3MS1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZz04Mj1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4MzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4NDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc6ODU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWctODYtIyBDT05GSUdfRklMRV9MT0NLSU5HIGlzIG5vdCBzZXRcbi0tXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZz0zNDg9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZzozNDk6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWctMzUwLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZz0zNDg9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9zdW4zeF9kZWZjb25maWc6MzQ5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZy0zNTAtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvdmlydF9kZWZjb25maWc9NTU9Q09ORklHX1ZJUlRJT19JTlBVVD15XG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPXlcbi0tXG5hcmNoL21pY3JvYmxhemUvY29uZmlncy9tbXVfZGVmY29uZmlnPTc1PUNPTkZJR19VSU9fRE1FTV9HRU5JUlE9eVxuYXJjaC9taWNyb2JsYXplL2NvbmZpZ3MvbW11X2RlZmNvbmZpZzo3NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pY3JvYmxhemUvY29uZmlncy9tbXVfZGVmY29uZmlnLTc3LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc9MTM2PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM3OkNPTkZJR19FWFQ0X0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjEzOTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjE0MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnLTE0MS1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZz01Nz1DT05GSUdfVVNCX1NUT1JBR0U9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjU4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZzo1OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjYwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZy02MS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnPTE0MT1DT05GSUdfTU1DX1NESENJX1BMVEZNPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQyOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnOjE0NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnLTE0NS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZz0xMzY9Q09ORklHX1JBUz15XG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZzoxMzk6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWctMTQwLUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvY2kyMF9kZWZjb25maWc9MTY2PUNPTkZJR19OVk1FTV9KWjQ3ODBfRUZVU0U9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2kyMF9kZWZjb25maWc6MTY3OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2NpMjBfZGVmY29uZmlnLTE2OC0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnPTYxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2NvYmFsdF9kZWZjb25maWc6NjI6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZzo2MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZzo2NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnLTY1LUNPTkZJR19QUk9DX0tDT1JFPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jdTEwMDAtbmVvX2RlZmNvbmZpZz04OT1DT05GSUdfUEhZX0lOR0VOSUNfVVNCPXlcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnLTkxLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2N1MTgzMC1uZW9fZGVmY29uZmlnPTkyPUNPTkZJR19QSFlfSU5HRU5JQ19VU0I9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxODMwLW5lb19kZWZjb25maWc6OTM6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxODMwLW5lb19kZWZjb25maWctOTQtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGIxeHh4X2RlZmNvbmZpZz0xNjk9Q09ORklHX1JUQ19EUlZfQVUxWFhYPXlcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnOjE3MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnLTE3My1DT05GSUdfWEZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZz0xMzU9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc6MTM2OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEzNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnLTEzOS1DT05GSUdfSVNPOTY2MF9GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc9MTMxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnOjEzMjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZzoxMzM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnOjEzNDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZz0xMzE9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEzMjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTMzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTM0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZz04OT1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctOTAtIyBDT05GSUdfTlZNRU0gaXMgbm90IHNldFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkxOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo5MjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZy05NC1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnPTg4PUNPTkZJR19SRVNFVF9DT05UUk9MTEVSPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZy04OS0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjkxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnLTkzLUNPTkZJR19GU19FTkNSWVBUSU9OPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZz05Nj1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZy05Ny0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5ODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc6MTAwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnLTEwMS1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZz0xNzQ9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzU6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc6MTc3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWctMTc4LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2djdzBfZGVmY29uZmlnPTEzND1DT05GSUdfUFdNX0paNDc0MD15XG5hcmNoL21pcHMvY29uZmlncy9nY3cwX2RlZmNvbmZpZzoxMzU6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2N3MF9kZWZjb25maWctMTM2LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZz01NT1DT05GSUdfSElEX01PTlRFUkVZPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZy01Ny0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjU4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjU5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzo2MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZy02MS1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWc9MjMzPUNPTkZJR19FWFQyX0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZzoyMzU6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZy0yMzctQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc9MjcyPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI3MzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZzoyNzQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI3NTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZy0yNzYtQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc9NTE9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTI6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnOjU0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnLTU1LUNPTkZJR19RVU9UQT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc9MTQ0PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnOjE0NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnOjE0NzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZy0xNDgtQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc9OTA9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnLTk0LUNPTkZJR19RVU9UQT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWc9NzA9Q09ORklHX0VYVDJfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWc6NzE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWctNzItQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnPTIyNz1DT05GSUdfRVhUMl9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9sZW1vdGUyZl9kZWZjb25maWc6MjI4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZzoyMjk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZzoyMzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnLTIzMS1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnPTE0OD1DT05GSUdfTE9PTkdTT04xX0FQQl9ETUE9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWctMTUzLSMgQ09ORklHX05WTUVNIGlzIG5vdCBzZXRcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU0OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU1OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnLTE1Ni0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZz0yOTg9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6Mjk5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnOjMwMDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnLTMwMi1DT05GSUdfWEZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnPTM0OT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzozNTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZy0zNTMtQ09ORklHX1hGU19GUz15XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAyODMKCQkJCQkJCW91dHB1dDogMjEKCQkJCQkJCXRob3VnaHRzOiAzMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBldmFsdWF0aW5nIHRoaXM6CgoqKkluaXRpYWwgQ29uZmlndXJhdGlvbiBDaGVjazogRVhUNCBJbmxpbmUgRGF0YSoqCgpBbHJpZ2h0LCBzbyBgQ09ORklHX0VYVDRfRlNgIGlzIHRoZSBvYnZpb3VzIHN0YXJ0aW5nIHBvaW50LiBUaGF0JiMzOTtzIHRoZSBjb3JlIGV4dDQgZmlsZXN5c3RlbSBjb25maWd1cmF0aW9uLiBCdXQgdGhpcyBpcyBhYm91dCAqaW5saW5lKiBkYXRhLCB3aGljaCBoYXMgaXRzIG93biBudWFuY2VzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGFueSBkZXBlbmRlbmNpZXMgb3Igc3VwcG9ydGluZyBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIHNwZWNpZmljYWxseSBmb3IgaW5saW5lIGRhdGEgaGFuZGxpbmcgd2l0aGluIGV4dDQuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGEgbGl0dGxlIGRlZXBlciB0byBlbnN1cmUgZXZlcnl0aGluZyBpcyBzZXQgdXAgY29ycmVjdGx5IGZvciB0aGF0IGZlYXR1cmUuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWdzIGx1cmtpbmcgYXJvdW5kIHRoYXQgSSBzaG91bGQgY29uc2lkZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE2OjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0NPTkZJR19FWFQ0X0ZTXyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnPTE1Nz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnOjE1ODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9iY20yODM1X2RlZmNvbmZpZy0xNTktQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZz0yMzA9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWc6MjMxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZy0yMzItQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZz05OD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnOjk5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZy0xMDAtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZz0xMDY9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnOjEwNzojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZy0xMDgtQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZz00NDA9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWctNDQzLUNPTkZJR19RVU9UQT15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc9Mjg9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6Mjk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnOjMwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnLTMxLUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWc9MTU2PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZzoxNTc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZy0xNTgtQ09ORklHX09WRVJMQVlfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnPTIwNj1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2tleXN0b25lX2RlZmNvbmZpZzoyMDc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnLTIwOC1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWc9OTQ9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZzo5NTojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWctOTYtQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDJwbHVzX2RlZmNvbmZpZz02ODI9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnOjY4MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWctNjg0LUNPTkZJR19GQU5PVElGWT15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZz0xMTg9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZzoxMTk6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnLTEyMC1DT05GSUdfRVhUNF9GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnPTU3Nj1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy01NzktQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZz01NT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWctNTgtQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWc9ODY9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnOjg3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZy04OC1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZz02OT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo3MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZy03MS1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZz01NT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZz0xOTM9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6MTk0OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWctMTk1LUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy90ZWdyYV9kZWZjb25maWc9MzEzPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxNDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy90ZWdyYV9kZWZjb25maWc6MzE1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnLTMxNi0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTE4OTk9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzoxOTAwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE5MDE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZy0xOTAyLUNPTkZJR19CVFJGU19GUz1tXG4tLVxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnPTQ5PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZzo1MDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjUxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZy01Mi1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9OTUxPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjk1MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTk1NC1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTk4Mj1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZzo5ODQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy05ODUtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc9ODM9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc6ODQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnOjg1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnLTg2LSMgQ09ORklHX0ZJTEVfTE9DS0lORyBpcyBub3Qgc2V0XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDRfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZzoxMzg6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM5OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWctMTQwLUNPTkZJR19FWFQ0X0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc9NTg9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjU5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc6NjA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnLTYxLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc9MTQyPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnOjE0NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnLTE0NS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZzoxMzk6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWctMTQwLUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZz02Mj1DT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnOjYzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnOjY0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2NvYmFsdF9kZWZjb25maWctNjUtQ09ORklHX1BST0NfS0NPUkU9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc9MTcwPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnOjE3MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnLTE3My1DT05GSUdfWEZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZz0xMzY9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc6MTM3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZzoxMzg6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWctMTM5LUNPTkZJR19JU085NjYwX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZz0xMzI9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTMzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZzoxMzQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWctMTM1LUNPTkZJR19JU085NjYwX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc9MTMyPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZzoxMzM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZzoxMzQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnLTEzNS1DT05GSUdfSVNPOTY2MF9GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnPTkxPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo5MjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZy05NC1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnPTkwPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZzo5MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjkyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZy05My1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc9OTg9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc6OTk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnOjEwMDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZy0xMDEtQ09ORklHX0ZTX0VOQ1JZUFRJT049eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc9MTc1PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc6MTc2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnOjE3NzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnLTE3OC1DT05GSUdfQVVUT0ZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZz01OD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzo1OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc6NjA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWctNjEtQ09ORklHX0ZTX0VOQ1JZUFRJT049eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnPTIzND1DT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZzoyMzU6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZy0yMzctQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc9MjczPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI3NDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc6Mjc1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnLTI3Ni1DT05GSUdfWEZTX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZz01Mj1DT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZzo1MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWctNTUtQ09ORklHX1FVT1RBPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZz0xNDU9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc6MTQ2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWctMTQ4LUNPTkZJR19YRlNfRlM9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnPTkxPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnOjkyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZzo5MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZy05NC1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZz0yMjg9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnOjIyOTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnOjIzMDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9sZW1vdGUyZl9kZWZjb25maWctMjMxLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc9MTU0PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU1OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnLTE1Ni0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZz0yOTk9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZzozMDE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWctMzAyLUNPTkZJR19YRlNfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc9MzUwPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc6MzUxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnLTM1My1DT05GSUdfWEZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXNtdnBfZGVmY29uZmlnPTE0OD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXNtdnBfZGVmY29uZmlnOjE0OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFzbXZwX2RlZmNvbmZpZzoxNTA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFzbXZwX2RlZmNvbmZpZy0xNTEtQ09ORklHX1hGU19GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbXR4MV9kZWZjb25maWc9NTUzPUNPTkZJR19FWFQ0X0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnOjU1NDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbXR4MV9kZWZjb25maWc6NTU1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnLTU1Ni1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL3BpYzMybXpkYV9kZWZjb25maWc9NjY9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvcGljMzJtemRhX2RlZmNvbmZpZzo2NzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvcGljMzJtemRhX2RlZmNvbmZpZzo2ODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9waWMzMm16ZGFfZGVmY29uZmlnLTY5LUNPTkZJR19BVVRPRlNfRlM9bVxuLS1cbmFyY2gvb3BlbnJpc2MvY29uZmlncy92aXJ0X2RlZmNvbmZpZz05Nz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL29wZW5yaXNjL2NvbmZpZ3MvdmlydF9kZWZjb25maWc6OTg6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvb3BlbnJpc2MvY29uZmlncy92aXJ0X2RlZmNvbmZpZy05OS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtMzJiaXRfZGVmY29uZmlnPTIzMz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtMzJiaXRfZGVmY29uZmlnOjIzNDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtMzJiaXRfZGVmY29uZmlnLTIzNS1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvcGFyaXNjL2NvbmZpZ3MvZ2VuZXJpYy02NGJpdF9kZWZjb25maWc9MjUyPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvcGFyaXNjL2NvbmZpZ3MvZ2VuZXJpYy02NGJpdF9kZWZjb25maWc6MjUzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcGFyaXNjL2NvbmZpZ3MvZ2VuZXJpYy02NGJpdF9kZWZjb25maWctMjU0LUNPTkZJR19YRlNfRlM9bVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9ha2Vib25vX2RlZmNvbmZpZz0xMDY9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2FrZWJvbm9fZGVmY29uZmlnOjEwNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2FrZWJvbm9fZGVmY29uZmlnOjEwODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvYWtlYm9ub19kZWZjb25maWctMTA5LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9jdXJyaXR1Y2tfZGVmY29uZmlnPTY2PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9jdXJyaXR1Y2tfZGVmY29uZmlnOjY3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvY3Vycml0dWNrX2RlZmNvbmZpZzo2ODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvY3Vycml0dWNrX2RlZmNvbmZpZy02OS1DT05GSUdfUFJPQ19LQ09SRT15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2ZzcDJfZGVmY29uZmlnPTk0PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9mc3AyX2RlZmNvbmZpZzo5NTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2ZzcDJfZGVmY29uZmlnOjk2OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9mc3AyX2RlZmNvbmZpZy05Ny1DT05GSUdfUFJPQ19LQ09SRT15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2lzczQ3Ni1zbXBfZGVmY29uZmlnPTUyPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9pc3M0NzYtc21wX2RlZmNvbmZpZzo1MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2lzczQ3Ni1zbXBfZGVmY29uZmlnOjU0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9pc3M0NzYtc21wX2RlZmNvbmZpZy01NS1DT05GSUdfUFJPQ19LQ09SRT15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L3NhbTQ0MGVwX2RlZmNvbmZpZz03OT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvc2FtNDQwZXBfZGVmY29uZmlnOjgwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvc2FtNDQwZXBfZGVmY29uZmlnLTgxLUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvZ2VfaW1wM2FfZGVmY29uZmlnPTE2Mz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L2dlX2ltcDNhX2RlZmNvbmZpZzoxNjQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvZ2VfaW1wM2FfZGVmY29uZmlnLTE2NS1DT05GSUdfRlVTRV9GUz15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvZzVfZGVmY29uZmlnPTIwMT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9nNV9kZWZjb25maWc6MjAyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9nNV9kZWZjb25maWc6MjAzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZy0yMDQtQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG1hYzMyX2RlZmNvbmZpZz0yNTY9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG1hYzMyX2RlZmNvbmZpZzoyNTc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWctMjU4LUNPTkZJR19BVVRPRlNfRlM9bVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3Bvd2VybnZfZGVmY29uZmlnPTI1Nz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZzoyNTg6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3Bvd2VybnZfZGVmY29uZmlnOjI1OTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZy0yNjAtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnPTMxNT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc6MzE2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc6MzE3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0X2RlZmNvbmZpZy0zMTgtQ09ORklHX1hGU19GUz15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRlX2RlZmNvbmZpZz0xNzI9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRlX2RlZmNvbmZpZzoxNzM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0ZV9kZWZjb25maWc6MTc0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0ZV9kZWZjb25maWctMTc1LUNPTkZJR19KRlNfRlM9eVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc9OTIwPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc6OTIxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnOjkyMjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnLTkyMy1DT05GSUdfSkJEMl9ERUJVRz15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvc2tpcm9vdF9kZWZjb25maWc9MjQ2PUNPTkZJR19FWFQ0X0ZTPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3NraXJvb3RfZGVmY29uZmlnOjI0NzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvc2tpcm9vdF9kZWZjb25maWc6MjQ4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3NraXJvb3RfZGVmY29uZmlnLTI0OS1DT05GSUdfWEZTX0ZTPW1cbi0tXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnPTI3OD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnOjI3OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZzoyODA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZy0yODEtQ09ORklHX0JUUkZTX0ZTPW1cbi0tXG5hcmNoL3MzOTAvY29uZmlncy9kZWJ1Z19kZWZjb25maWc9NjUyPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZzo2NTM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZzo2NTQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnLTY1NS1DT05GSUdfSkJEMl9ERUJVRz15XG4tLVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnPTY0Mj1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3MzOTAvY29uZmlncy9kZWZjb25maWc6NjQzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3MzOTAvY29uZmlncy9kZWZjb25maWc6NjQ0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZy02NDUtQ09ORklHX0pCRDJfREVCVUc9eVxuLS1cbmFyY2gvc2gvY29uZmlncy9hcDMyNXJ4YV9kZWZjb25maWc9ODQ9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9zaC9jb25maWdzL2FwMzI1cnhhX2RlZmNvbmZpZzo4NTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9zaC9jb25maWdzL2FwMzI1cnhhX2RlZmNvbmZpZzo4NjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3NoL2NvbmZpZ3MvYXAzMjVyeGFfZGVmY29uZmlnLTg3LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL3NoL2NvbmZpZ3MvZWNvdmVjMjRfZGVmY29uZmlnPTExMD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3NoL2NvbmZpZ3MvZWNvdmVjMjRfZGVmY29uZmlnOjExMTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9zaC9jb25maWdzL2Vjb3ZlYzI0X2RlZmNvbmZpZzoxMTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9zaC9jb25maWdzL2Vjb3ZlYzI0X2RlZmNvbmZpZy0xMTMtQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvc2gvY29uZmlncy9tYWdpY3BhbmVscjJfZGVmY29uZmlnPTY3PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvc2gvY29uZmlncy9tYWdpY3BhbmVscjJfZGVmY29uZmlnOjY4OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9zaC9jb25maWdzL21hZ2ljcGFuZWxyMl9kZWZjb25maWctNjktIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9zaC9jb25maWdzL3Nkazc3ODBfZGVmY29uZmlnPTEwNT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3NoL2NvbmZpZ3Mvc2RrNzc4MF9kZWZjb25maWc6MTA2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3NoL2NvbmZpZ3Mvc2RrNzc4MF9kZWZjb25maWctMTA3LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvc2gvY29uZmlncy9zZTc3MjRfZGVmY29uZmlnPTExMD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3NoL2NvbmZpZ3Mvc2U3NzI0X2RlZmNvbmZpZzoxMTE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvc2gvY29uZmlncy9zZTc3MjRfZGVmY29uZmlnOjExMjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3NoL2NvbmZpZ3Mvc2U3NzI0X2RlZmNvbmZpZy0xMTMtQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvc2gvY29uZmlncy9zaDAzX2RlZmNvbmZpZz02MD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3NoL2NvbmZpZ3Mvc2gwM19kZWZjb25maWc6NjE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvc2gvY29uZmlncy9zaDAzX2RlZmNvbmZpZy02Mi1DT05GSUdfQVVUT0ZTX0ZTPXlcbi0tXG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnPTIxOD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnOjIxOTojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWctMjIwLUNPTkZJR19YRlNfRlM9bVxuLS1cbmFyY2gvc3BhcmMvY29uZmlncy9zcGFyYzY0X2RlZmNvbmZpZz0xODg9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9zcGFyYy9jb25maWdzL3NwYXJjNjRfZGVmY29uZmlnOjE4OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9zcGFyYy9jb25maWdzL3NwYXJjNjRfZGVmY29uZmlnOjE5MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3NwYXJjL2NvbmZpZ3Mvc3BhcmM2NF9kZWZjb25maWctMTkxLUNPTkZJR19QUk9DX0tDT1JFPXlcbi0tXG5hcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnPTIzMz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnOjIzNDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC94ODYvY29uZmlncy9pMzg2X2RlZmNvbmZpZzoyMzU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC94ODYvY29uZmlncy9pMzg2X2RlZmNvbmZpZy0yMzYtQ09ORklHX1FVT1RBPXlcbi0tXG5hcmNoL3g4Ni9jb25maWdzL3g4Nl82NF9kZWZjb25maWc9MjM0PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZzoyMzU6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZzoyMzY6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC94ODYvY29uZmlncy94ODZfNjRfZGVmY29uZmlnLTIzNy1DT05GSUdfUVVPVEE9eVxuLS1cbmZzL2V4dDQvTWFrZWZpbGU9OD1leHQ0LXlcdDo9IGJhbGxvYy5vIGJpdG1hcC5vIGJsb2NrX3ZhbGlkaXR5Lm8gZGlyLm8gZXh0NF9qYmQyLm8gZXh0ZW50cy5vIFxcXG4tLVxuZnMvZXh0NC9NYWtlZmlsZS0xNC1cbmZzL2V4dDQvTWFrZWZpbGU6MTU6ZXh0NC0kKENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTClcdCYjNDM7PSBhY2wub1xuZnMvZXh0NC9NYWtlZmlsZToxNjpleHQ0LSQoQ09ORklHX0VYVDRfRlNfU0VDVVJJVFkpXHRcdCYjNDM7PSB4YXR0cl9zZWN1cml0eS5vXG5mcy9leHQ0L01ha2VmaWxlLTE3LWV4dDQtdGVzdC1vYmpzXHRcdFx0XHQmIzQzOz0gaW5vZGUtdGVzdC5vIG1iYWxsb2MtdGVzdC5vIFxcXG4tLVxuZnMvZXh0NC9hY2wuaD0zOT1zdGF0aWMgaW5saW5lIGludCBleHQ0X2FjbF9jb3VudChzaXplX3Qgc2l6ZSlcbi0tXG5mcy9leHQ0L2FjbC5oLTU0LVxuZnMvZXh0NC9hY2wuaDo1NTojaWZkZWYgQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMXG5mcy9leHQ0L2FjbC5oLTU2LVxuLS1cbmZzL2V4dDQvYWNsLmg9NjE9ZXh0ZXJuIGludCBleHQ0X2luaXRfYWNsKGhhbmRsZV90ICosIHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgaW5vZGUgKik7XG5mcy9leHQ0L2FjbC5oLTYyLVxuZnMvZXh0NC9hY2wuaDo2MzojZWxzZSAgLyogQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMICovXG5mcy9leHQ0L2FjbC5oLTY0LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3NjaGVkLmhcdTAwM2Vcbi0tXG5mcy9leHQ0L2FjbC5oPTY5PWV4dDRfaW5pdF9hY2woaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGlub2RlICpkaXIpXG4tLVxuZnMvZXh0NC9hY2wuaC03Mi19XG5mcy9leHQ0L2FjbC5oOjczOiNlbmRpZiAgLyogQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMICovXG5mcy9leHQ0L2FjbC5oLTc0LVxuLS1cbmZzL2V4dDQvaWFsbG9jLmM9ODc2PXN0YXRpYyBpbnQgZXh0NF94YXR0cl9jcmVkaXRzX2Zvcl9uZXdfaW5vZGUoc3RydWN0IGlub2RlICpkaXIsIG1vZGVfdCBtb2RlLFxuLS1cbmZzL2V4dDQvaWFsbG9jLmMtODgwLVx0aW50IG5ibG9ja3MgPSAwO1xuZnMvZXh0NC9pYWxsb2MuYzo4ODE6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTFxuZnMvZXh0NC9pYWxsb2MuYy04ODItXHRzdHJ1Y3QgcG9zaXhfYWNsICpwID0gZ2V0X2lub2RlX2FjbChkaXIsIEFDTF9UWVBFX0RFRkFVTFQpO1xuLS1cbmZzL2V4dDQvc3VwZXIuYz0xODc5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW91bnRfb3B0cyB7XG4tLVxuZnMvZXh0NC9zdXBlci5jLTE5MjItXHR7T3B0X3VzZXJfeGF0dHIsIEVYVDRfTU9VTlRfWEFUVFJfVVNFUiwgTU9QVF9TRVR9LFxuZnMvZXh0NC9zdXBlci5jOjE5MjM6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTFxuZnMvZXh0NC9zdXBlci5jLTE5MjQtXHR7T3B0X2FjbCwgRVhUNF9NT1VOVF9QT1NJWF9BQ0wsIE1PUFRfU0VUfSxcbi0tXG5mcy9leHQ0L3N1cGVyLmM9NDM4OD1zdGF0aWMgdm9pZCBleHQ0X3NldF9kZWZfb3B0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLFxuLS1cbmZzL2V4dDQvc3VwZXIuYy00NDAzLVx0c2V0X29wdChzYiwgWEFUVFJfVVNFUik7XG5mcy9leHQ0L3N1cGVyLmM6NDQwNDojaWZkZWYgQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMXG5mcy9leHQ0L3N1cGVyLmMtNDQwNS1cdHNldF9vcHQoc2IsIFBPU0lYX0FDTCk7XG4tLVxuZnMvZXh0NC94YXR0ci5jPTg4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciAqIGNvbnN0IGV4dDRfeGF0dHJfaGFuZGxlcl9tYXBbXSA9IHtcbmZzL2V4dDQveGF0dHIuYy04OS1cdFtFWFQ0X1hBVFRSX0lOREVYX1VTRVJdXHRcdCAgICAgPSBcdTAwMjZleHQ0X3hhdHRyX3VzZXJfaGFuZGxlcixcbmZzL2V4dDQveGF0dHIuYzo5MDojaWZkZWYgQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMXG5mcy9leHQ0L3hhdHRyLmMtOTEtXHRbRVhUNF9YQVRUUl9JTkRFWF9QT1NJWF9BQ0xfQUNDRVNTXSAgPSBcdTAwMjZub3BfcG9zaXhfYWNsX2FjY2Vzcyxcbi0tXG5mcy9leHQ0L3hhdHRyLmMtOTQtXHRbRVhUNF9YQVRUUl9JTkRFWF9UUlVTVEVEXVx0ICAgICA9IFx1MDAyNmV4dDRfeGF0dHJfdHJ1c3RlZF9oYW5kbGVyLFxuZnMvZXh0NC94YXR0ci5jOjk1OiNpZmRlZiBDT05GSUdfRVhUNF9GU19TRUNVUklUWVxuZnMvZXh0NC94YXR0ci5jLTk2LVx0W0VYVDRfWEFUVFJfSU5ERVhfU0VDVVJJVFldXHQgICAgID0gXHUwMDI2ZXh0NF94YXR0cl9zZWN1cml0eV9oYW5kbGVyLFxuLS1cbmZzL2V4dDQveGF0dHIuYz0xMDE9Y29uc3Qgc3RydWN0IHhhdHRyX2hhbmRsZXIgKiBjb25zdCBleHQ0X3hhdHRyX2hhbmRsZXJzW10gPSB7XG4tLVxuZnMvZXh0NC94YXR0ci5jLTEwMy1cdFx1MDAyNmV4dDRfeGF0dHJfdHJ1c3RlZF9oYW5kbGVyLFxuZnMvZXh0NC94YXR0ci5jOjEwNDojaWZkZWYgQ09ORklHX0VYVDRfRlNfU0VDVVJJVFlcbmZzL2V4dDQveGF0dHIuYy0xMDUtXHRcdTAwMjZleHQ0X3hhdHRyX3NlY3VyaXR5X2hhbmRsZXIsXG4tLVxuZnMvZXh0NC94YXR0ci5oPTIxMz1fX3hhdHRyX2NoZWNrX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2hlYWRlciAqaGVhZGVyLFxuLS1cbmZzL2V4dDQveGF0dHIuaC0yMTgtXG5mcy9leHQ0L3hhdHRyLmg6MjE5OiNpZmRlZiBDT05GSUdfRVhUNF9GU19TRUNVUklUWVxuZnMvZXh0NC94YXR0ci5oLTIyMC1leHRlcm4gaW50IGV4dDRfaW5pdF9zZWN1cml0eShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLS1cbnNjcmlwdHMvc2VsaW51eC9tZHAvbWRwLmM9Mzg9aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSlcbi0tXG5zY3JpcHRzL3NlbGludXgvbWRwL21kcC5jLTE1OS0jZW5kaWZcbnNjcmlwdHMvc2VsaW51eC9tZHAvbWRwLmM6MTYwOiNpZmRlZiBDT05GSUdfRVhUNF9GU19TRUNVUklUWVxuc2NyaXB0cy9zZWxpbnV4L21kcC9tZHAuYy0xNjEtI2lmZGVmIENPTkZJR19FWFQ0X1VTRV9GT1JfRVhUMlxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2ND00Nj1DT05GSUdfRVhQRVJUPXlcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2NDo0NzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5hYXJjaDY0OjQ4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2NC00OS1DT05GSUdfRVhUNF9GUz15XG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5wcGM2NGVsPTI4PUNPTkZJR19FWFBFUlQ9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5wcGM2NGVsOjI5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnBwYzY0ZWw6MzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5wcGM2NGVsLTMxLUNPTkZJR19FWFQ0X0ZTPXlcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnJpc2N2NjQ9MjU9Q09ORklHX0VYVDRfRlM9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5yaXNjdjY0OjI2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnJpc2N2NjQ6Mjc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5yaXNjdjY0LTI4LUNPTkZJR19GUkFNRV9QT0lOVEVSPXlcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnMzOTB4PTM1PUNPTkZJR19FWFQ0X0ZTPXlcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuczM5MHg6MzY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuczM5MHg6Mzc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5zMzkweC0zOC1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcueDg2XzY0PTU5PUNPTkZJR19FWFQ0X0ZTPXlcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcueDg2XzY0OjYwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLng4Nl82NDo2MTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLng4Nl82NC02Mi1DT05GSUdfRkFJTF9GVU5DVElPTj15XG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvaGlkL2NvbmZpZy5jb21tb249NTk9Q09ORklHX0VYUEVSVD15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9oaWQvY29uZmlnLmNvbW1vbjo2MDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvaGlkL2NvbmZpZy5jb21tb246NjE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvaGlkL2NvbmZpZy5jb21tb24tNjItQ09ORklHX0VYVDRfRlM9eVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNjo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTEwNgoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDMxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKklubGluZSBEYXRhIENvbmZpZ3VyYXRpb24gLSBJbml0aWFsIEFzc2Vzc21lbnQgJmFtcDsgVmVyaWZpY2F0aW9uKioKClJpZ2h0LCBzbywgc3RyYWlnaHQgb2ZmIHRoZSBiYXQsIG5vIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHNlZW1zIHRvIGV4aXN0IGRlZGljYXRlZCB0byBpbmxpbmUgZGF0YS4gVGhlIGNvZGUgbWVudGlvbnMgYEVYVDRfRlNgLCB3aGljaCBJJiMzOTttIHRha2luZyBhcyB0aGUgcHJpbWFyeSBpbmRpY2F0b3IuIEhvd2V2ZXIsIGl0JiMzOTtzIGFsd2F5cyBiZXN0IHRvIGJlIG1ldGljdWxvdXMsIGFuZCBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgaGlkZGVuIGRlcGVuZGVuY2llcyBvciBpbmRpcmVjdCBjb25maWd1cmF0aW9ucyBjYW4gb2Z0ZW4gY2F0Y2ggeW91IG91dC4gR2l2ZW4gbXkgZGVlcCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBpbnRyaWNhY2llcyBvZiBgZXh0NGAsIEkgbmVlZCB0byBpbW1lZGlhdGVseSB2ZXJpZnkgdGhpcyBpbml0aWFsIGFzc3VtcHRpb24uCgpTbywgSSBuZWVkIHRvIG1ldGhvZGljYWxseSBjaGVjayBmb3IgYW55IG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IG1pZ2h0IGluZmx1ZW5jZSBpbmxpbmUgZGF0YSBiZWhhdmlvdXIsIGV2ZW4gaWYgdGhleSBhcmVuJiMzOTt0IGV4cGxpY2l0bHkgbmFtZWQuIElzIHRoZXJlIHNvbWV0aGluZyB0aWVkIHRvIGJsb2NrIHNpemVzLCBqb3VybmFsaW5nLCBvciBjb21wcmVzc2lvbiB0aGF0IGNvdWxkIGluYWR2ZXJ0ZW50bHkgaW50ZXJhY3Qgd2l0aCBpbmxpbmUgZGF0YSBoYW5kbGluZz8gUGVyaGFwcyB0aGVyZSYjMzk7cyBhbiBvYnNjdXJlIGJ1aWxkIGZsYWcgb3Iga2VybmVsIHBhcmFtZXRlciB0aGF0IEkmIzM5O20gb3Zlcmxvb2tpbmc/IFRoaXMgaXMgYWJvdXQgZW5zdXJpbmcgY29tcGxldGUgY2VydGFpbnR5IGJlZm9yZSBtb3ZpbmcgZm9yd2FyZCB3aXRoIGFueSBmdXJ0aGVyIGFuYWx5c2lzIG9yIG1vZGlmaWNhdGlvbnMuIEkmIzM5O2xsIHN0YXJ0IGJ5IHJldmlld2luZyB0aGUga2VybmVsIGNvbmZpZyBvcHRpb25zLCBhbmQgdGhlbiBjaGVjayBhbnkgYnVpbGQgc2NyaXB0cyB3aGljaCBtYXkgYWZmZWN0IGV4dDQgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX0VYVDQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDEzMTMgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZz04OD1DT05GSUdfTU1DX0RXPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZy04OS0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZzo5MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWctOTEtQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc9ODY9Q09ORklHX01NQ19EVz15XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWctODctIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc6ODg6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnLTg5LUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZz04OD1DT05GSUdfTU1DX0RXPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWctODktIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWctOTEtQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnPTc5PUNPTkZJR19USV9BREMxMDhTMTAyPXlcbmFyY2gvYXJjL2NvbmZpZ3MvaHNka19kZWZjb25maWc6ODA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZy04MS1DT05GSUdfVkZBVF9GUz15XG4tLVxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWc9NzU9Q09ORklHX1VTQl9TRVJJQUw9eVxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWctNzYtIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZzo3NzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZzo3ODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZy03OS1DT05GSUdfTVNET1NfRlM9eVxuLS1cbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZz04Mj1DT05GSUdfVUlPX1BEUlZfR0VOSVJRPXlcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZy04My0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZzo4NDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWctODUtQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNV9kZWZjb25maWc9MjY0PUNPTkZJR19QRUNJX0FTUEVFRD15XG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNV9kZWZjb25maWc6MjY1OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZy0yNjYtQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnPTIwNz1DT05GSUdfUFdNX0FUTUVMX1RDQj15XG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnOjIwODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnLTIwOS1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc9MTk2PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc6MTk3OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWctMTk4LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvYmNtMjgzNV9kZWZjb25maWc9MTU2PUNPTkZJR19FWFQyX0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnOjE1NzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnOjE1ODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9iY20yODM1X2RlZmNvbmZpZy0xNTktQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZz0yMjk9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWc6MjMwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvZGF2aW5jaV9hbGxfZGVmY29uZmlnOjIzMTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWctMjMyLUNPTkZJR19YRlNfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvZG92ZV9kZWZjb25maWc9OTc9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZzo5ODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnOjk5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZy0xMDAtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZz0xMDU9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnOjEwNjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWc6MTA3OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnLTEwOC1DT05GSUdfVkZBVF9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9leHlub3NfZGVmY29uZmlnPTMzMj1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWc6MzMzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvZXh5bm9zX2RlZmNvbmZpZy0zMzQtQ09ORklHX0FVVE9GU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9oaXNpX2RlZmNvbmZpZz03Nz1DT05GSUdfUEhZX0hJWDVIRDJfU0FUQT15XG5hcmNoL2FybS9jb25maWdzL2hpc2lfZGVmY29uZmlnOjc4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaGlzaV9kZWZjb25maWctNzktQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2lteF92NF92NV9kZWZjb25maWc9MTU1PUNPTkZJR19QV01fSU1YMjc9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjRfdjVfZGVmY29uZmlnOjE1NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2lteF92NF92NV9kZWZjb25maWctMTU3LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZz00Mzk9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZy00NDMtQ09ORklHX1FVT1RBPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZz0yNz1DT05GSUdfQ0xLX0lNWFJUMTA1MD15XG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZzoyODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZzoyOTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6MzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWctMzEtQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZz0xNTU9Q09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZzoxNTY6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnOjE1NzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnLTE1OC1DT05GSUdfT1ZFUkxBWV9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWc9MjA1PUNPTkZJR19SRVNFVF9USV9TWVNDT049bVxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWc6MjA2OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnOjIwNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWctMjA4LUNPTkZJR19GQU5PVElGWT15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9taWxiZWF1dF9tMTB2X2RlZmNvbmZpZz04MT1DT05GSUdfTUVNT1JZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWctODItIyBDT05GSUdfQVJNX1BNVSBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL21pbGJlYXV0X20xMHZfZGVmY29uZmlnOjgzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWctODQtQ09ORklHX0FVVE9GU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tbXAyX2RlZmNvbmZpZz01NT1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL21tcDJfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbW1wMl9kZWZjb25maWctNTctIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnPTExND1DT05GSUdfTU9YQVJUX0RNQT15XG5hcmNoL2FybS9jb25maWdzL21veGFydF9kZWZjb25maWctMTE1LSMgQ09ORklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnOjExNjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL21veGFydF9kZWZjb25maWctMTE3LUNPTkZJR19UTVBGUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92NV9kZWZjb25maWc9MjY5PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjVfZGVmY29uZmlnOjI3MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y1X2RlZmNvbmZpZy0yNzEtQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnPTEyODM9Q09ORklHX1NUTTMyX1RJTUVSX0NOVD1tXG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y3X2RlZmNvbmZpZzoxMjg0OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnLTEyODUtQ09ORklHX0FVVE9GU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZz05Mz1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnOjk0OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWc6OTU6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnLTk2LUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y1X2RlZmNvbmZpZz0xNjk9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92NV9kZWZjb25maWc6MTcwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjVfZGVmY29uZmlnLTE3MS1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92N19kZWZjb25maWc9MTMwPUNPTkZJR19QSFlfTVZFQlVfQTM4WF9DT01QSFk9eVxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92N19kZWZjb25maWc6MTMxOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjdfZGVmY29uZmlnLTEzMi1DT05GSUdfSVNPOTY2MF9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9teHNfZGVmY29uZmlnPTEzNj1DT05GSUdfTlZNRU1fTVhTX09DT1RQPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXhzX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9teHNfZGVmY29uZmlnLTEzOC0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnPTExOD1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnOjExOTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnLTEyMC1DT05GSUdfRlVTRV9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMV9kZWZjb25maWc9MTg0PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnOjE4NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL29tYXAxX2RlZmNvbmZpZy0xODYtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnPTY4MT1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWc6NjgyOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDJwbHVzX2RlZmNvbmZpZzo2ODM6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnLTY4NC1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc9MTE3PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZzoxMjA6Q09ORklHX0VYVDRfRlM9bVxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZy0xMjEtQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZz01NzU9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnOjU3NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy01NzktQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZz0yNzg9Q09ORklHX0VYVDJfRlNfWEFUVFI9eVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZzoyNzk6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZy0yODAtQ09ORklHX0ZVU0VfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZz03OT1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3JwY19kZWZjb25maWc6ODA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9ycGNfZGVmY29uZmlnLTgxLUNPTkZJR19BVVRPRlNfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWc9NTQ9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZzo1NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWctNTgtQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnPTEwMz1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnOjEwNDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnLTEwNS1DT05GSUdfQVVUT0ZTX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3NhbWE1X2RlZmNvbmZpZz0yMjI9Q09ORklHX1BXTV9BVE1FTF9UQ0I9eVxuYXJjaC9hcm0vY29uZmlncy9zYW1hNV9kZWZjb25maWc6MjIzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTVfZGVmY29uZmlnLTIyNC1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTdfZGVmY29uZmlnPTIxND1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3NhbWE3X2RlZmNvbmZpZzoyMTU6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zYW1hN19kZWZjb25maWctMjE2LUNPTkZJR19GQU5PVElGWT15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWctMTM5LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3A3MDIxX2RlZmNvbmZpZz00MD1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XG5hcmNoL2FybS9jb25maWdzL3NwNzAyMV9kZWZjb25maWc6NDE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zcDcwMjFfZGVmY29uZmlnLTQyLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZz04NT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWc6ODY6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnOjg3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZy04OC1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZz02OD1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo2OTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo3MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZy03MS1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZz01ND1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzo1NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZz0xOTI9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6MTkzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnOjE5NDojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnLTE5NS1DT05GSUdfTVNET1NfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3RtMzJfZGVmY29uZmlnPTcxPUNPTkZJR19TVE0zMl9BREM9eVxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWc6NzI6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWctNzMtIyBDT05GSUdfRklMRV9MT0NLSU5HIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZz0xNjI9Q09ORklHX05WTUVNX1NVTlhJX1NJRD15XG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZzoxNjM6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zdW54aV9kZWZjb25maWctMTY0LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZz0zMTI9Q09ORklHX1BIWV9URUdSQV9YVVNCPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxMzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxNTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZy0zMTYtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy91ODUwMF9kZWZjb25maWc9MTc1PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdTg1MDBfZGVmY29uZmlnOjE3NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3U4NTAwX2RlZmNvbmZpZy0xNzctQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvdmV4cHJlc3NfZGVmY29uZmlnPTEyMj1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3ZleHByZXNzX2RlZmNvbmZpZzoxMjM6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy92ZXhwcmVzc19kZWZjb25maWctMTI0LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3ZmNjEwbTRfZGVmY29uZmlnPTM1PUNPTkZJR19NRkRfU1lTQ09OPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3ZmNjEwbTRfZGVmY29uZmlnLTM3LSMgQ09ORklHX1VTQl9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3MvdmY2MTBtNF9kZWZjb25maWc6Mzg6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy92ZjYxMG00X2RlZmNvbmZpZy0zOS0jIENPTkZJR19NSVNDX0ZJTEVTWVNURU1TIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL3Z0ODUwMF92Nl92N19kZWZjb25maWc9Nzk9Q09ORklHX0dFTkVSSUNfUEhZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdnQ4NTAwX3Y2X3Y3X2RlZmNvbmZpZzo4MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3Z0ODUwMF92Nl92N19kZWZjb25maWctODEtQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTE4OTg9Q09ORklHX0hURV9URUdSQTE5NF9URVNUPW1cbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6MTg5OTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE5MDA6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6MTkwMTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnLTE5MDItQ09ORklHX0JUUkZTX0ZTPW1cbi0tXG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWc9MzM9Q09ORklHX0dFTkVSSUNfUEhZPXlcbmFyY2gvY3NreS9jb25maWdzL2RlZmNvbmZpZzozNDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWctMzUtQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2hleGFnb24vY29uZmlncy9jb21ldF9kZWZjb25maWc9NDg9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjQ5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZzo1MDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjUxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZy01Mi1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9OTUwPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUxOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjk1MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTk1NC1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTk4MT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZzo5ODQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy05ODUtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnPTQwMz1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZzo0MDQ6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnLTQwNS1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnPTM1OD1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWc6MzU5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWctMzYwLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZz0zODE9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWc6MzgyOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZy0zODMtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnPTM1MD1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnLTM1Mi1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWc9MzYwPUNPTkZJR19EQVg9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnOjM2MTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWctMzYyLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc9Mzc5PUNPTkZJR19EQVg9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvbWFjX2RlZmNvbmZpZzozODA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvbWFjX2RlZmNvbmZpZy0zODEtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnPTQ2Nj1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZzo0Njc6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnLTQ2OC1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZz0zNTA9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWctMzUyLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnPTM1MT1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnOjM1MjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZy0zNTMtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvcTQwX2RlZmNvbmZpZz0zNjk9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnOjM3MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnLTM3MS1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZz04Mj1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4MzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4NDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc6ODU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWctODYtIyBDT05GSUdfRklMRV9MT0NLSU5HIGlzIG5vdCBzZXRcbi0tXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZz0zNDg9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZzozNDk6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWctMzUwLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZz0zNDg9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9zdW4zeF9kZWZjb25maWc6MzQ5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZy0zNTAtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvdmlydF9kZWZjb25maWc9NTU9Q09ORklHX1ZJUlRJT19JTlBVVD15XG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPXlcbi0tXG5hcmNoL21pY3JvYmxhemUvY29uZmlncy9tbXVfZGVmY29uZmlnPTc1PUNPTkZJR19VSU9fRE1FTV9HRU5JUlE9eVxuYXJjaC9taWNyb2JsYXplL2NvbmZpZ3MvbW11X2RlZmNvbmZpZzo3NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pY3JvYmxhemUvY29uZmlncy9tbXVfZGVmY29uZmlnLTc3LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc9MTM2PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM3OkNPTkZJR19FWFQ0X0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjEzOTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjE0MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnLTE0MS1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZz01Nz1DT05GSUdfVVNCX1NUT1JBR0U9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjU4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZzo1OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjYwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZy02MS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnPTE0MT1DT05GSUdfTU1DX1NESENJX1BMVEZNPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQyOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnOjE0NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnLTE0NS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZz0xMzY9Q09ORklHX1JBUz15XG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZzoxMzk6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWctMTQwLUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvY2kyMF9kZWZjb25maWc9MTY2PUNPTkZJR19OVk1FTV9KWjQ3ODBfRUZVU0U9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2kyMF9kZWZjb25maWc6MTY3OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2NpMjBfZGVmY29uZmlnLTE2OC0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnPTYxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2NvYmFsdF9kZWZjb25maWc6NjI6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZzo2MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZzo2NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnLTY1LUNPTkZJR19QUk9DX0tDT1JFPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jdTEwMDAtbmVvX2RlZmNvbmZpZz04OT1DT05GSUdfUEhZX0lOR0VOSUNfVVNCPXlcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnLTkxLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2N1MTgzMC1uZW9fZGVmY29uZmlnPTkyPUNPTkZJR19QSFlfSU5HRU5JQ19VU0I9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxODMwLW5lb19kZWZjb25maWc6OTM6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxODMwLW5lb19kZWZjb25maWctOTQtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGIxeHh4X2RlZmNvbmZpZz0xNjk9Q09ORklHX1JUQ19EUlZfQVUxWFhYPXlcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnOjE3MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnLTE3My1DT05GSUdfWEZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZz0xMzU9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc6MTM2OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEzNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnLTEzOS1DT05GSUdfSVNPOTY2MF9GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc9MTMxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnOjEzMjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZzoxMzM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnOjEzNDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZz0xMzE9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEzMjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTMzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTM0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZz04OT1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctOTAtIyBDT05GSUdfTlZNRU0gaXMgbm90IHNldFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkxOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo5MjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZy05NC1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnPTg4PUNPTkZJR19SRVNFVF9DT05UUk9MTEVSPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZy04OS0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjkxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnLTkzLUNPTkZJR19GU19FTkNSWVBUSU9OPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZz05Nj1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZy05Ny0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5ODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc6MTAwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnLTEwMS1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZz0xNzQ9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzU6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc6MTc3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWctMTc4LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2djdzBfZGVmY29uZmlnPTEzND1DT05GSUdfUFdNX0paNDc0MD15XG5hcmNoL21pcHMvY29uZmlncy9nY3cwX2RlZmNvbmZpZzoxMzU6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2N3MF9kZWZjb25maWctMTM2LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZz01NT1DT05GSUdfSElEX01PTlRFUkVZPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZy01Ny0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjU4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjU5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzo2MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZy02MS1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWc9MjMzPUNPTkZJR19FWFQyX0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZzoyMzU6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZy0yMzctQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc9MjcyPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI3MzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZzoyNzQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI3NTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZy0yNzYtQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc9NTE9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTI6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnOjU0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnLTU1LUNPTkZJR19RVU9UQT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc9MTQ0PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnOjE0NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnOjE0NzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZy0xNDgtQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc9OTA9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnLTk0LUNPTkZJR19RVU9UQT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWc9NzA9Q09ORklHX0VYVDJfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWc6NzE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWctNzItQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnPTIyNz1DT05GSUdfRVhUMl9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9sZW1vdGUyZl9kZWZjb25maWc6MjI4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZzoyMjk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZzoyMzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnLTIzMS1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnPTE0OD1DT05GSUdfTE9PTkdTT04xX0FQQl9ETUE9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWctMTUzLSMgQ09ORklHX05WTUVNIGlzIG5vdCBzZXRcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU0OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU1OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnLTE1Ni0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZz0yOTg9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6Mjk5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnOjMwMDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnLTMwMi1DT05GSUdfWEZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnPTM0OT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzozNTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZy0zNTMtQ09ORklHX1hGU19GUz15XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjVtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI4MTkKCQkJCQkJCW91dHB1dDogMTMzCgkJCQkJCQl0aG91Z2h0czogNTA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRVhUNCBJbmxpbmUgRGF0YSBDb252ZXJzaW9uIFBhdGNoKioKCk9rYXksIHNvIHdlJiMzOTtyZSB3b3JraW5nIHdpdGggYEVYVDRfRlNgLCBnb29kLiBMZXQmIzM5O3MgZGlnIGludG8gdGhpcyBwYXRjaC4gVGhlIGtleSB0aGluZyBJIHNlZSBpcyB0aGF0IHRoZXkmIzM5O3JlIHJlcGxhY2luZyB0aGUgb2xkIGBleHQ0X3Jlc3RvcmVfaW5saW5lX2RhdGFgIGZ1bmN0aW9uIHdpdGggYSBuZXcgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gVGhpcyBpcyBhIHByZXR0eSBzaWduaWZpY2FudCBzaGlmdC4gSW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBleGlzdGluZyBibG9jayBtYXBwaW5nIG1lY2hhbmlzbXMsIGl0IGxvb2tzIGxpa2UgdGhleSYjMzk7cmUgbm93IGNhbGxpbmcgYGV4dDRfbWJfbmV3X2Jsb2Nrc2AgZGlyZWN0bHkgd2l0aGluIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYCB0byBhbGxvY2F0ZSB0aGUgbmV3IGJsb2NrLiBUaGV5IGFyZSBieXBhc3NpbmcgdGhlIHN0YW5kYXJkIGBleHQ0X21hcF9ibG9ja3NgIGNhbGwuCgpUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgcmVmYWN0b3JpbmcuIE15IGludHVpdGlvbiBpcyB0aGF0IHRoaXMgcHJvYmFibHkgYnlwYXNzZXMgc29tZSBvdmVyaGVhZC4gSSB3aWxsIG5lZWQgdG8gbG9vayBpbnRvIGhvdyB0aGlzIG1pZ2h0IGFmZmVjdCBibG9jayBhbGxvY2F0aW9uLCBwYXJ0aWN1bGFybHkgYXJvdW5kIGZyYWdtZW50ZWQgZmlsZXMuIEkgYWxzbyBuZWVkIHRvIHVuZGVyc3RhbmQgYW55IHNpZGUgZWZmZWN0cy4gVGhpcyBjaGFuZ2UgaGFzIHRoZSBwb3RlbnRpYWwgdG8gaW5mbHVlbmNlIGhvdyBpbmxpbmUgZGF0YSB0cmFuc2l0aW9ucyB0byByZWd1bGFyIGJsb2NrcywgYW5kIG15IGd1ZXNzIGlzIHRoYXQgaXMgdGhlIGludGVudC4gVGhlIGtleSBmdW5jdGlvbnMgdG8ga2VlcCBhbiBleWUgb24gYXJlIG5vdyBjbGVhcmx5IGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGFuZCBwb3RlbnRpYWxseSBgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeWAsIGFzIHRoZXNlIGFyZSB0aGUgcG9pbnRzIG9mIGludGVncmF0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIGFzc2VzcyB0aGUgaW1wYWN0IG9uIHBlcmZvcm1hbmNlIGFuZCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIGNhdXNlZCBieSB0aGlzIGNoYW5nZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEmIzM0OywKICAgICYjMzQ7ZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gaG93IGV4dDQgY29udmVydHMgaW5saW5lIGRhdGEgdG8gYmxvY2tzLCByZXBsYWNpbmcgdGhlIHVzZSBvZiBgZXh0NF9tYXBfYmxvY2tzYCB3aXRoIGRpcmVjdCBibG9jayBhbGxvY2F0aW9uIHZpYSBgZXh0NF9tYl9uZXdfYmxvY2tzYCBhbmQgaW50cm9kdWNpbmcgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gVGhpcyBtb2RpZmllcyBjb3JlIHJlYWNoYWJsZSBsb2dpYyBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCB3aGljaCBpcyB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFWFQ0X0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhJiMzNDssCiAgICAmIzM0O2V4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGhvdyBleHQ0IGNvbnZlcnRzIGlubGluZSBkYXRhIHRvIGJsb2NrcywgcmVwbGFjaW5nIHRoZSB1c2Ugb2YgYGV4dDRfbWFwX2Jsb2Nrc2Agd2l0aCBkaXJlY3QgYmxvY2sgYWxsb2NhdGlvbiB2aWEgYGV4dDRfbWJfbmV3X2Jsb2Nrc2AgYW5kIGludHJvZHVjaW5nIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AuIFRoaXMgbW9kaWZpZXMgY29yZSByZWFjaGFibGUgbG9naWMgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgd2hpY2ggaXMgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDU8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgY29udmVyc2lvbiBvZiBleHQ0IGlubGluZSBkYXRhIHRvIGEgZGVkaWNhdGVkIGJsb2NrIHRvIHByZXZlbnQgZGF0YSBsb3NzIG9uIGFsbG9jYXRpb24gZmFpbHVyZS4gSXQgYWxsb2NhdGVzIGEgbmV3IGJsb2NrLCB6ZXJvZXMgaXQsIGNvcGllcyB0aGUgaW5saW5lIGRhdGEsIGFuZCB0aGVuIHVwZGF0ZXMgdGhlIGlub2RlLiBBbGwgbmV3bHkgYWxsb2NhdGVkIG1lbW9yeSAoYGlub2RlX2J1ZmAsIGBidWZgLCBgZGF0YV9iaC1cdTAwM2ViX2RhdGFgKSBpcyBmdWxseSBpbml0aWFsaXplZCB2aWEgYG1lbWNweWAgZnJvbSBleGlzdGluZyBpbml0aWFsaXplZCBkYXRhIG9yIGBtZW1zZXRgIHRvIHplcm8uIFN0YWNrIHZhcmlhYmxlcyAoYGFyYCwgYGlzYCwgYGlgLCBgbmV3ZXhgKSBhcmUgZnVsbHkgemVyby1pbml0aWFsaXplZCBlaXRoZXIgdmlhIGBtZW1zZXRgIG9yIGJyYWNlLWVuY2xvc2VkIGluaXRpYWxpemVycy4gVGhlcmUgaXMgbm8gZXhwb3N1cmUgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdG8gdXNlciBzcGFjZSBvciBkaXNrLCBhbmQgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgaXMgdXNlZCBpbiBjb250cm9sIGZsb3cuIEFueSBwb3RlbnRpYWwgbWVtb3J5IGVycm9ycyAobGlrZSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIG9yIHVzZS1hZnRlci1mcmVlKSB3b3VsZCBiZSBjYXVnaHQgYnkgS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDEyNGM3ZWE2Y2RkMDJhYzRlMGFhNjEwNWVkMDU1MjE0ZGYxODE1OWEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEF1ZyAyMiAxNjo1MTowOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaW5saW5lLmMgYi9mcy9leHQ0L2lubGluZS5jCmluZGV4IDgwNDVlNGZmMjcwYzcuLjUwNzEwNmM3MmU4MmYgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvaW5saW5lLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvZXh0NC9pbmxpbmUuYwpAQCAtMTQsNiAmIzQzOzE0LDcgQEAKICNpbmNsdWRlICYjMzQ7ZXh0NC5oJiMzNDsKICNpbmNsdWRlICYjMzQ7eGF0dHIuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3RydW5jYXRlLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7ZXh0NF9leHRlbnRzLmgmIzM0OwogCiAjZGVmaW5lIEVYVDRfWEFUVFJfU1lTVEVNX0RBVEEJJiMzNDtkYXRhJiMzNDsKICNkZWZpbmUgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRQkoKHNpemVvZihfX2xlMzIpICogRVhUNF9OX0JMT0NLUykpCkBAIC0xMDcwLDIxICYjNDM7MTA3MSwxMTUgQEAgc3RhdGljIGludCBleHQ0X3VwZGF0ZV9pbmxpbmVfZGlyKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqZGlyLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBleHQ0X3Jlc3RvcmVfaW5saW5lX2RhdGEoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKLQkJCQkgICAgIHN0cnVjdCBleHQ0X2lsb2MgKmlsb2MsCi0JCQkJICAgICB2b2lkICpidWYsIGludCBpbmxpbmVfc2l6ZSkKJiM0MztzdGF0aWMgaW50IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfZnNibGtfdCBibG9jaywKJiM0MzsJCQkJCXVuc2lnbmVkIGludCBsZW4sIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCiB7Ci0JaW50IHJldDsKJiM0MzsJc3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpOwomIzQzOwlzdHJ1Y3QgZXh0NF94YXR0cl9pYm9keV9maW5kIGlzID0gewomIzQzOwkJLnMgPSB7IC5ub3RfZm91bmQgPSAwLCB9LAomIzQzOwl9OwomIzQzOwlzdHJ1Y3QgZXh0NF94YXR0cl9pbmZvIGkgPSB7CiYjNDM7CQkubmFtZV9pbmRleCA9IEVYVDRfWEFUVFJfSU5ERVhfU1lTVEVNLAomIzQzOwkJLm5hbWUgPSBFWFQ0X1hBVFRSX1NZU1RFTV9EQVRBLAomIzQzOwkJLnZhbHVlID0gTlVMTCwKJiM0MzsJCS52YWx1ZV9sZW4gPSAwLAomIzQzOwl9OwomIzQzOwlpbnQgZXJyb3I7CiYjNDM7CWludCBpbm9kZV9zaXplOwomIzQzOwl2b2lkICppbm9kZV9idWYgPSBOVUxMOwomIzQzOwlzdHJ1Y3QgZXh0NF9pbm9kZSAqcmF3X2lub2RlOwogCi0JcmV0ID0gZXh0NF9jcmVhdGVfaW5saW5lX2RhdGEoaGFuZGxlLCBpbm9kZSwgaW5saW5lX3NpemUpOwotCWlmIChyZXQpIHsKLQkJZXh0NF9tc2coaW5vZGUtJmd0O2lfc2IsIEtFUk5fRU1FUkcsCi0JCQkmIzM0O2Vycm9yIHJlc3RvcmluZyBpbmxpbmVfZGF0YSBmb3IgaW5vZGUgLS0gcG90ZW50aWFsIGRhdGEgbG9zcyEgKGlub2RlICVsbHUsIGVycm9yICVkKSYjMzQ7LAotCQkJaW5vZGUtJmd0O2lfaW5vLCByZXQpOwotCQlyZXR1cm47CiYjNDM7CWlub2RlX3NpemUgPSBFWFQ0X0lOT0RFX1NJWkUoaW5vZGUtJmd0O2lfc2IpOwomIzQzOwlpbm9kZV9idWYgPSBrbWFsbG9jKGlub2RlX3NpemUsIEdGUF9OT0ZTKTsKJiM0MzsJaWYgKCFpbm9kZV9idWYpIHsKJiM0MzsJCWVycm9yID0gLUVOT01FTTsKJiM0MzsJCWRvd25fd3JpdGUoJmFtcDtlaS0mZ3Q7aV9kYXRhX3NlbSk7CiYjNDM7CQlleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpOwomIzQzOwkJZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpOwomIzQzOwkJdXBfd3JpdGUoJmFtcDtlaS0mZ3Q7aV9kYXRhX3NlbSk7CiYjNDM7CQlyZXR1cm4gZXJyb3I7CiAJfQotCWV4dDRfd3JpdGVfaW5saW5lX2RhdGEoaW5vZGUsIGlsb2MsIGJ1ZiwgMCwgaW5saW5lX3NpemUpOwotCWV4dDRfc2V0X2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7CiYjNDM7CWRvd25fd3JpdGUoJmFtcDtlaS0mZ3Q7aV9kYXRhX3NlbSk7CiYjNDM7CWVycm9yID0gZXh0NF9nZXRfaW5vZGVfbG9jKGlub2RlLCAmYW1wO2lzLmlsb2MpOwomIzQzOwlpZiAoZXJyb3IpIHsKJiM0MzsJCWV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7CiYjNDM7CQlleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7CiYjNDM7CQl1cF93cml0ZSgmYW1wO2VpLSZndDtpX2RhdGFfc2VtKTsKJiM0MzsJCWtmcmVlKGlub2RlX2J1Zik7CiYjNDM7CQlyZXR1cm4gZXJyb3I7CiYjNDM7CX0KJiM0MzsJcmF3X2lub2RlID0gZXh0NF9yYXdfaW5vZGUoJmFtcDtpcy5pbG9jKTsKJiM0MzsJQlVGRkVSX1RSQUNFKGlzLmlsb2MuYmgsICYjMzQ7Z2V0X3dyaXRlX2FjY2VzcyYjMzQ7KTsKJiM0MzsJZXJyb3IgPSBleHQ0X2pvdXJuYWxfZ2V0X3dyaXRlX2FjY2VzcyhoYW5kbGUsIGlub2RlLSZndDtpX3NiLCBpcy5pbG9jLmJoLCBFWFQ0X0pUUl9OT05FKTsKJiM0MzsJaWYgKGVycm9yKSB7CiYjNDM7CQlleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpOwomIzQzOwkJZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpOwomIzQzOwkJZ290byBvdXQ7CiYjNDM7CX0KJiM0MzsJbWVtY3B5KGlub2RlX2J1ZiwgKHZvaWQgKilyYXdfaW5vZGUsIGlub2RlX3NpemUpOwomIzQzOwltZW1zZXQoKHZvaWQgKilyYXdfaW5vZGUtJmd0O2lfYmxvY2ssIDAsIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpOwomIzQzOwltZW1zZXQoZWktJmd0O2lfZGF0YSwgMCwgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSk7CiYjNDM7CWlmIChleHQ0X2hhc19mZWF0dXJlX2V4dGVudHMoaW5vZGUtJmd0O2lfc2IpICZhbXA7JmFtcDsKJiM0MzsJCShTX0lTRElSKGlub2RlLSZndDtpX21vZGUpIHx8IFNfSVNSRUcoaW5vZGUtJmd0O2lfbW9kZSkgfHwgU19JU0xOSyhpbm9kZS0mZ3Q7aV9tb2RlKSkpIHsKJiM0MzsJCWV4dDRfc2V0X2lub2RlX2ZsYWcoaW5vZGUsIEVYVDRfSU5PREVfRVhURU5UUyk7CiYjNDM7CQlleHQ0X2V4dF90cmVlX2luaXQoaGFuZGxlLCBpbm9kZSk7CiYjNDM7CQlzdHJ1Y3QgZXh0NF9leHRfcGF0aCAqcGF0aCA9IGV4dDRfZmluZF9leHRlbnQoaW5vZGUsIDAsIE5VTEwsIDApOwomIzQzOwomIzQzOwkJaWYgKElTX0VSUihwYXRoKSkgewomIzQzOwkJCWVycm9yID0gUFRSX0VSUihwYXRoKTsKJiM0MzsJCQlnb3RvIHJlY292ZXJ5OwomIzQzOwkJfQomIzQzOwkJc3RydWN0IGV4dDRfZXh0ZW50IG5ld2V4OwomIzQzOwomIzQzOwkJbmV3ZXguZWVfYmxvY2sgPSBjcHVfdG9fbGUzMigwKTsKJiM0MzsJCW5ld2V4LmVlX2xlbiA9IGNwdV90b19sZTE2KDEpOwomIzQzOwkJZXh0NF9leHRfc3RvcmVfcGJsb2NrKCZhbXA7bmV3ZXgsIGJsb2NrKTsKJiM0MzsJCXBhdGggPSBleHQ0X2V4dF9pbnNlcnRfZXh0ZW50KGhhbmRsZSwgaW5vZGUsIHBhdGgsICZhbXA7bmV3ZXgsIDApOwomIzQzOwkJaWYgKElTX0VSUihwYXRoKSkgewomIzQzOwkJCWVycm9yID0gUFRSX0VSUihwYXRoKTsKJiM0MzsJCQlpZiAoZXJyb3IgPT0gLUVEUVVPVCB8fCBlcnJvciA9PSAtRU5PU1BDKSB7CiYjNDM7CQkJCWdvdG8gcmVjb3Zlcnk7CiYjNDM7CQkJfSBlbHNlIHsKJiM0MzsJCQkJZXh0NF9mb3JnZXQoaGFuZGxlLCAwLCBpbm9kZSwgYmgsIGJsb2NrKTsKJiM0MzsJCQkJZ290byBub2ZyZWU7CiYjNDM7CQkJfQomIzQzOwkJfSBlbHNlIHsKJiM0MzsJCQlleHQ0X2ZyZWVfZXh0X3BhdGgocGF0aCk7CiYjNDM7CQl9CiYjNDM7CX0gZWxzZSB7CiYjNDM7CQlFWFQ0X0koaW5vZGUpLSZndDtpX2RhdGFbMF0gPSBjcHVfdG9fbGUzMihibG9jayk7CiYjNDM7CX0KJiM0MzsJZXJyb3IgPSBleHQ0X3hhdHRyX2lib2R5X2ZpbmQoaW5vZGUsICZhbXA7aSwgJmFtcDtpcyk7CiYjNDM7CWlmIChlcnJvcikKJiM0MzsJCWdvdG8gcmVjb3Zlcnk7CiYjNDM7CWlmICghaXMucy5ub3RfZm91bmQpCiYjNDM7CQllcnJvciA9IGV4dDRfeGF0dHJfaWJvZHlfc2V0KGhhbmRsZSwgaW5vZGUsICZhbXA7aSwgJmFtcDtpcyk7CiYjNDM7cmVjb3Zlcnk6CiYjNDM7CWlmIChlcnJvcikgewomIzQzOwkJZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTsKJiM0MzsJCWV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTsKJiM0Mztub2ZyZWU6CiYjNDM7CQltZW1jcHkoKHZvaWQgKilyYXdfaW5vZGUsIGlub2RlX2J1ZiwgaW5vZGVfc2l6ZSk7CiYjNDM7CQltZW1jcHkoZWktJmd0O2lfZGF0YSwgcmF3X2lub2RlLSZndDtpX2Jsb2NrLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTsKJiM0MzsJCWV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRTKTsKJiM0MzsJfSBlbHNlIHsKJiM0MzsJCWV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9JTkxJTkVfREFUQSk7CiYjNDM7CQlnZXRfYmgoaXMuaWxvYy5iaCk7CiYjNDM7CQllcnJvciA9IGV4dDRfbWFya19pbG9jX2RpcnR5KGhhbmRsZSwgaW5vZGUsICZhbXA7aXMuaWxvYyk7CiYjNDM7CQlFWFQ0X0koaW5vZGUpLSZndDtpX2lubGluZV9vZmYgPSAwOwomIzQzOwkJRVhUNF9JKGlub2RlKS0mZ3Q7aV9pbmxpbmVfc2l6ZSA9IDA7CiYjNDM7CQlleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7CiYjNDM7CQlpZiAoU19JU0RJUihpbm9kZS0mZ3Q7aV9tb2RlKSkgewomIzQzOwkJCWlfc2l6ZV93cml0ZShpbm9kZSwgaW5vZGUtJmd0O2lfc2ItJmd0O3NfYmxvY2tzaXplKTsKJiM0MzsJCQlFWFQ0X0koaW5vZGUpLSZndDtpX2Rpc2tzaXplID0gaW5vZGUtJmd0O2lfc2ItJmd0O3NfYmxvY2tzaXplOwomIzQzOwkJfQomIzQzOwkJYnJlbHNlKGJoKTsKJiM0MzsJfQomIzQzO291dDoKJiM0MzsJYnJlbHNlKGlzLmlsb2MuYmgpOwomIzQzOwl1cF93cml0ZSgmYW1wO2VpLSZndDtpX2RhdGFfc2VtKTsKJiM0MzsJa2ZyZWUoaW5vZGVfYnVmKTsKJiM0MzsJcmV0dXJuIGVycm9yOwogfQogCiBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSwKQEAgLTEwOTQsOCAmIzQzOzExODksMTEgQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsCiAJaW50IGVycm9yOwogCXZvaWQgKmJ1ZiA9IE5VTEw7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpkYXRhX2JoID0gTlVMTDsKLQlzdHJ1Y3QgZXh0NF9tYXBfYmxvY2tzIG1hcDsKIAlpbnQgaW5saW5lX3NpemU7CiYjNDM7CWV4dDRfZnNibGtfdCBuZXdibG9jayA9IDA7CiYjNDM7CXN0cnVjdCBleHQ0X2FsbG9jYXRpb25fcmVxdWVzdCBhcjsKJiM0MzsJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihpbm9kZS0mZ3Q7aV9zYik7CiYjNDM7CXVuc2lnbmVkIGludCBhbGxvY2F0ZWRfYmxvY2s7CiAKIAlpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTsKIAlidWYgPSBrbWFsbG9jKGlubGluZV9zaXplLCBHRlBfTk9GUyk7CkBAIC0xMTIwLDI1ICYjNDM7MTIxOCwyMiBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSwKIAkJCWdvdG8gb3V0OwogCX0KIAotCWVycm9yID0gZXh0NF9kZXN0cm95X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGlub2RlKTsKLQlpZiAoZXJyb3IpCi0JCWdvdG8gb3V0OwotCi0JbWFwLm1fbGJsayA9IDA7Ci0JbWFwLm1fbGVuID0gMTsKLQltYXAubV9mbGFncyA9IDA7Ci0JZXJyb3IgPSBleHQ0X21hcF9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgJmFtcDttYXAsIEVYVDRfR0VUX0JMT0NLU19DUkVBVEUpOwomIzQzOwltZW1zZXQoJmFtcDthciwgMCwgc2l6ZW9mKGFyKSk7CiYjNDM7CWFyLmlub2RlID0gaW5vZGU7CiYjNDM7CWFyLmxvZ2ljYWwgPSAwOwomIzQzOwlhci5sZW4gPSAxOwomIzQzOwlpZiAoU19JU1JFRyhpbm9kZS0mZ3Q7aV9tb2RlKSkKJiM0MzsJCWFyLmZsYWdzID0gRVhUNF9NQl9ISU5UX0RBVEE7CiYjNDM7CWVsc2UKJiM0MzsJCWFyLmZsYWdzID0gMDsKJiM0MzsJbmV3YmxvY2sgPSBleHQ0X21iX25ld19ibG9ja3MoaGFuZGxlLCAmYW1wO2FyLCAmYW1wO2Vycm9yKTsKIAlpZiAoZXJyb3IgJmx0OyAwKQotCQlnb3RvIG91dF9yZXN0b3JlOwotCWlmICghKG1hcC5tX2ZsYWdzICZhbXA7IEVYVDRfTUFQX01BUFBFRCkpIHsKLQkJZXJyb3IgPSAtRUlPOwotCQlnb3RvIG91dF9yZXN0b3JlOwotCX0KLQotCWRhdGFfYmggPSBzYl9nZXRibGsoaW5vZGUtJmd0O2lfc2IsIG1hcC5tX3BibGspOwomIzQzOwkJZ290byBvdXQ7CiYjNDM7CWFsbG9jYXRlZF9ibG9jayA9IEVYVDRfQzJCKHNiaSwgYXIubGVuKTsKJiM0MzsJZGF0YV9iaCA9IHNiX2dldGJsayhpbm9kZS0mZ3Q7aV9zYiwgbmV3YmxvY2spOwogCWlmICghZGF0YV9iaCkgewogCQllcnJvciA9IC1FTk9NRU07Ci0JCWdvdG8gb3V0X3Jlc3RvcmU7CiYjNDM7CQlnb3RvIG91dF9iaDsKIAl9CiAKIAlsb2NrX2J1ZmZlcihkYXRhX2JoKTsKQEAgLTExNDcsNyAmIzQzOzEyNDIsNyBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSwKIAlpZiAoZXJyb3IpIHsKIAkJdW5sb2NrX2J1ZmZlcihkYXRhX2JoKTsKIAkJZXJyb3IgPSAtRUlPOwotCQlnb3RvIG91dF9yZXN0b3JlOwomIzQzOwkJZ290byBvdXRfYmg7CiAJfQogCW1lbXNldChkYXRhX2JoLSZndDtiX2RhdGEsIDAsIGlub2RlLSZndDtpX3NiLSZndDtzX2Jsb2Nrc2l6ZSk7CiAKQEAgLTExNTksMjQgJiM0MzsxMjU0LDI4IEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLAogCQkJCQkJICAgaW5vZGUsIGRhdGFfYmgpOwogCX0gZWxzZSB7CiAJCXVubG9ja19idWZmZXIoZGF0YV9iaCk7Ci0JCWlub2RlLSZndDtpX3NpemUgPSBpbm9kZS0mZ3Q7aV9zYi0mZ3Q7c19ibG9ja3NpemU7Ci0JCWlfc2l6ZV93cml0ZShpbm9kZSwgaW5vZGUtJmd0O2lfc2ItJmd0O3NfYmxvY2tzaXplKTsKLQkJRVhUNF9JKGlub2RlKS0mZ3Q7aV9kaXNrc2l6ZSA9IGlub2RlLSZndDtpX3NiLSZndDtzX2Jsb2Nrc2l6ZTsKLQogCQllcnJvciA9IGV4dDRfaW5pdF9kaXJibG9jayhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLAogCQkJICBsZTMyX3RvX2NwdSgoKHN0cnVjdCBleHQ0X2Rpcl9lbnRyeV8yICopYnVmKS0mZ3Q7aW5vZGUpLAogCQkJICBidWYgJiM0MzsgRVhUNF9JTkxJTkVfRE9URE9UX1NJWkUsCiAJCQkgIGlubGluZV9zaXplIC0gRVhUNF9JTkxJTkVfRE9URE9UX1NJWkUpOwotCQlpZiAoIWVycm9yKQotCQkJZXJyb3IgPSBleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBpbm9kZSk7CiAJfQomIzQzO291dF9iaDoKJiM0MzsJaWYgKGVycm9yKSB7CiYjNDM7CQlpbnQgZmxhZ3MgPSAwOwogCi1vdXRfcmVzdG9yZToKLQlpZiAoZXJyb3IpCi0JCWV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YShoYW5kbGUsIGlub2RlLCBpbG9jLCBidWYsIGlubGluZV9zaXplKTsKJiM0MzsJCWlmIChkYXRhX2JoKQomIzQzOwkJCWZsYWdzIHw9IEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUOwomIzQzOwkJc3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpOwogCiYjNDM7CQlkb3duX3dyaXRlKCZhbXA7ZWktJmd0O2lfZGF0YV9zZW0pOwomIzQzOwkJZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTsKJiM0MzsJCWV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgZGF0YV9iaCwgbmV3YmxvY2ssIGFsbG9jYXRlZF9ibG9jaywgZmxhZ3MpOwomIzQzOwkJdXBfd3JpdGUoJmFtcDtlaS0mZ3Q7aV9kYXRhX3NlbSk7CiYjNDM7CX0gZWxzZSB7CiYjNDM7CQllcnJvciA9IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZSwgaW5vZGUsCiYjNDM7CQkJCW5ld2Jsb2NrLCBhbGxvY2F0ZWRfYmxvY2ssIGRhdGFfYmgpOwomIzQzOwl9CiBvdXQ6Ci0JYnJlbHNlKGRhdGFfYmgpOwogCWtmcmVlKGJ1Zik7CiAJcmV0dXJuIGVycm9yOwogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA3NgoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDE0NzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJbmxpbmUgRGF0YSBDb252ZXJzaW9uIFBhdGNoIGluIGV4dDQqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgZnMvZXh0NC9pbmxpbmUuY2AgYW5kIGlzIGZ1bmRhbWVudGFsbHkgcmV3b3JraW5nIGhvdyBpbmxpbmUgZGF0YSBnZXRzIGNvbnZlcnRlZCBpbnRvIGEgYmxvY2sgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbS4gTXkgaW5pdGlhbCByZWFkIHRlbGxzIG1lIHRoYXQgYGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YWAgaXMgZ29uZSwgcmVwbGFjZWQgd2l0aCBgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2tgLCBhbmQgdGhlIGNvcmUgY29udmVyc2lvbiBsb2dpYyBpcyBub3cgaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBMZXQmIzM5O3MgZGlnIGluLgoKVGhlIG5ldyBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AgdXNlcyBgZXh0NF9tYl9uZXdfYmxvY2tzYCB0byBncmFiIGEgbmV3IGJsb2NrLCB3aGljaCBpcyBhIGRlcGFydHVyZSBmcm9tIGBleHQ0X21hcF9ibG9ja3NgLiBUaGVuIGl0IGNhbGxzIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AsIHdoaWNoIHNlZW1zIHRvIGJlIHRoZSBjb3JlIG9mIHRoZSBkYXRhIG1pZ3JhdGlvbi4gIE15IGZpcnN0IGNvbmNlcm4sIGFzIGFsd2F5cyB3aXRoIHRoZXNlIGNoYW5nZXMsIGlzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LgoKU3BlY2lmaWNhbGx5LCBpbiBgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2tgLCBJIHNlZSBgaW5vZGVfYnVmID0ga21hbGxvYyhpbm9kZV9zaXplLCBHRlBfTk9GUyk7YCBhbmQgdGhlbiBhIGBtZW1jcHlgIGZyb20gYHJhd19pbm9kZWAgaW50byBpdC4gIGBpbm9kZV9idWZgIGlzIGEgYmFja3VwIGJ1ZmZlciwgc28gSSYjMzk7bSBpbW1lZGlhdGVseSBsb29raW5nIGZvciBhbnkgY2FzZXMgd2hlcmUgaXQgY291bGQgbGVhayB1bmluaXRpYWxpemVkIGRhdGEuICBJdCYjMzk7cyBhbGxvY2F0ZWQgd2l0aCBga21hbGxvY2AsIHdoaWNoIG1lYW5zIGl0ICpzdGFydHMqIHVuaW5pdGlhbGl6ZWQsIGJ1dCB0aGUgYG1lbWNweWAgaW5zdGFudGx5IG92ZXJ3cml0ZXMgaXQgd2l0aCB0aGUgY29udGVudHMgb2YgdGhlIGByYXdfaW5vZGVgLiBBbnkgZmFpbHVyZSByZXN0b3JlcyBmcm9tIHRoaXMgYmFja3VwIHNvIGl0IGxvb2tzIG9rYXkuCgpUaGVuLCB0aGVyZSYjMzk7cyBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AgYWdhaW4uIEl0IGFsbG9jYXRlcyBgYnVmYCB3aXRoIGBrbWFsbG9jKGlubGluZV9zaXplLCBHRlBfTk9GUylgIGFuZCByZWFkcyB0aGUgaW5saW5lIGRhdGEgaW50byBpdC4gVGhlbiBhIG5ldyBibG9jayBgZGF0YV9iaGAgaXMgYWxsb2NhdGVkLiBUaGUgY3J1Y2lhbCBwYXJ0IGhlcmUgaXMgYG1lbXNldChkYXRhX2JoLSZndDtiX2RhdGEsIDAsIGlub2RlLSZndDtpX3NiLSZndDtzX2Jsb2Nrc2l6ZSk7YCDigJMgdGhpcyAqc2hvdWxkKiBmdWxseSBpbml0aWFsaXplIHRoZSBuZXcgYmxvY2suICBUaGUgY29udGVudHMgb2YgYGJ1ZmAgYXJlIHRoZW4gY29waWVkIHRvIHRoZSBibG9jaywgd2hpY2ggaXMgc2FmZS4KCk5vdywgYmFjayB0byBgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2tgIGFuZCBjaGVja2luZyBmb3IgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5LgpUaGUgYG1lbWNweShpbm9kZV9idWYsICh2b2lkICopcmF3X2lub2RlLCBpbm9kZV9zaXplKTtgIGlzIHRoZSBrZXkuIFRoZW4gemVybyBvdXQgYHJhd19pbm9kZS0mZ3Q7aV9ibG9ja2AgYW5kIGBlaS0mZ3Q7aV9kYXRhYCwgd2hpY2ggc2VlbXMgdG8gYmUgc2FmZSwgYnV04oCmIGlzIGBpbm9kZV9zaXplYCAqZXZlciogbGFyZ2VyIHRoYW4gdGhlIGFjdHVhbCBvbi1kaXNrIGlub2RlIHNpemU/CmBFWFQ0X0lOT0RFX1NJWkUoaW5vZGUtJmd0O2lfc2IpYCBnaXZlcyB0aGUgKm9uLWRpc2sqIGlub2RlIHNpemUsIGFuZCBgZXh0NF9yYXdfaW5vZGUoKWAgcmV0cmlldmVzIHRoZSBpbm9kZSBmcm9tIHRoZSBidWZmZXIgaGVhZC4gVGhlIHNpemUgb2YgdGhlIGlub2RlIGluIHRoZSBidWZmZXIgaXMgYWx3YXlzIGd1YXJhbnRlZWQgdG8gYmUgY29ycmVjdCBzaW5jZSB0aGUgYmxvY2sgaXMgcmVhZC4gVGhlIGJ1ZmZlciBoZWFkIGNvbnRhaW5zIHRoZSBjb3JyZWN0IHNpemUgb2YgdGhlIG9uLWRpc2sgaW5vZGUgc28gdGhpcyBzZWVtcyBzYWZlLgoKV2hhdCBhYm91dCBgcmF3X2lub2RlYCBjb250YWluaW5nIHVuaW5pdGlhbGl6ZWQgZGF0YT8gS01TQU4gdHJhY2tzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGJ1dCBmcm9tIGFsbG9jYXRpb25zLCByZWFkaW5nIGZyb20gZGlzayAoYmxvY2sgZGV2aWNlKSBpcyBjb25zaWRlcmVkIGluaXRpYWxpemVkLgoKTG9va2luZyBhdCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AsIGBleHQ0X21iX25ld19ibG9ja3NgIHNlZW1zIGxpa2UgYW4gYWxsb2NhdGlvbiBjYWxsLiBUaGlzIHNlZW1zIHRvIGJlIGEgbG9naWMgYnVnIGZpeCBvciBhIHJlZmFjdG9yaW5nLiBUaGUgb2xkIGNvZGUgZmlyc3QgZGVzdHJveWVkIHRoZSBpbmxpbmUgZGF0YSBhbmQgdGhlbiB0cmllZCBtYXBwaW5nIG5ldyBibG9ja3MsIGlmIGl0IGZhaWxlZCB0aGVuIHRoZSBjb2RlIHVzZWQgYGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YWAgYW5kIHRoYXQgY291bGQgZmFpbCBhbmQgY2F1c2UgZGF0YSBsb3NzLiBUaGUgbmV3IGNvZGUgYWxsb2NhdGVzIHRoZSBibG9jaywgdGhlbiBtb2RpZmllcyB0aGUgaW5vZGUgc28gaW4gY2FzZSBvZiBmYWlsdXJlIHdlIGNhbiByZXN0b3JlIHRoZSBpbm9kZSBmcm9tIGBpbm9kZV9idWZgLgoKVGhpcyBwYXRjaCBpcyBmcm9tIGBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdgLiAgTXkgaW1tZWRpYXRlIGNvbmNlcm4gaXMgdXNlci1zcGFjZSBleHBvc3VyZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeS4gSG93ZXZlciwgdGhlIG9wZXJhdGlvbnMgYXJlIGludGVybmFsIG1ldGFkYXRhIG1hbmlwdWxhdGlvbnMuIGBpbm9kZV9idWZgIGlzIGltbWVkaWF0ZWx5IGZpbGxlZC4gYGRhdGFfYmgtJmd0O2JfZGF0YWAgaXMgemVyb2VkLiBJIHNlZSBubyBkaXJlY3QgcGF0aCBmb3IgdW5pbml0aWFsaXplZCBtZW1vcnkgdG8gbGVhayB0byB1c2Vyc3BhY2UuCgpJJiMzOTttIG5vdCBzZWVpbmcgYW55IEtNU0FOLXNwZWNpZmljIGlzc3Vlcy4gS0FTQU4gd291bGQgY2F0Y2ggb3V0LW9mLWJvdW5kcyByZWFkcy93cml0ZXMuICBNeSBwcmltYXJ5IGNvbmNlcm4gaGFzIGJlZW4gYWRkcmVzc2VkIOKAkyB0aGUgYGlub2RlX2J1ZmAgYmFja3VwIHNlZW1zIHRvIGJlIGhhbmRsZWQgY29ycmVjdGx5IHRvIGF2b2lkIHVuaW5pdGlhbGl6ZWQgZGF0YSBsZWFrcy4gVGhlIGBtZW1zZXRgIGNhbGxzIGluaXRpYWxpemUgZGF0YSBjb3JyZWN0bHksIHNvIEkgZG9uJiMzOTt0IHNlZSBhbnkgb2J2aW91cyBLTVNBTiB2dWxuZXJhYmlsaXRpZXMgaW50cm9kdWNlZCBoZXJlLiAgSSBqdXN0IGhhdmUgdG8gZG91YmxlLWNoZWNrIG15IHZhcmlhYmxlcyBpbml0aWFsaXphdGlvbi4KCkxldCYjMzk7cyBsb29rIGF0IGBpc2AgYW5kIGBpYC4KYGBgYwpzdHJ1Y3QgZXh0NF94YXR0cl9pYm9keV9maW5kIGlzID0gewoJLnMgPSB7IC5ub3RfZm91bmQgPSAwLCB9LAp9OwpgYGAKQWggd2FpdCwgYHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmRgIGhhcyBvdGhlciBmaWVsZHMuICBJIHNob3VsZCBjaGVjayB0aGUgZGVmaW5pdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCBcXHsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXh0NC94YXR0ci5oPTEyMT1zdHJ1Y3QgZXh0NF94YXR0cl9zZWFyY2gge1xuLS1cbmZzL2V4dDQveGF0dHIuaC0xMjgtXG5mcy9leHQ0L3hhdHRyLmg6MTI5OnN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmQge1xuZnMvZXh0NC94YXR0ci5oLTEzMC1cdHN0cnVjdCBleHQ0X3hhdHRyX3NlYXJjaCBzO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3Njk1CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgZXh0NCBYQXR0ciBpLW5vZGUgSW1wbGVtZW50YXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBgZXh0NF94YXR0cl9pYm9keV9maW5kYCBzdHJ1Y3R1cmUuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBoZWFkaW5nIHN0cmFpZ2h0IGZvciBgZnMvZXh0NC94YXR0ci5oYC4gSXQmIzM5O3MgYSBrZXkgcGllY2UgaW4gaG93IGV4dDQgaGFuZGxlcyBleHRlbmRlZCBhdHRyaWJ1dGVzICh4YXR0cnMpIHN0b3JlZCBkaXJlY3RseSB3aXRoaW4gdGhlIGlub2RlIGl0c2VsZiwgcmlnaHQ/IFRoaXMgbWVhbnMgSSYjMzk7bSBwcm9iYWJseSBkZWFsaW5nIHdpdGggdGhlIG9wdGltaXphdGlvbiBmb3Igc21hbGxlciBhdHRyaWJ1dGVzLCB3aGVyZSB0aGUgb3ZlcmhlYWQgb2YgYSBzZXBhcmF0ZSBibG9jayBhbGxvY2F0aW9uIGlzIGF2b2lkZWQuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byByZWZyZXNoIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoaXMgaW5saW5lIHN0b3JhZ2Ugd29ya3Mgd2l0aGluIHRoZSBpbm9kZSYjMzk7cyBkYXRhIHN0cnVjdHVyZXMuIEkmIzM5O20gZ3Vlc3NpbmcgdGhhdCBgZXh0NF94YXR0cl9pYm9keV9maW5kYCBoYXMgZ290IHRvIGJlIGluc3RydW1lbnRhbCBpbiB0aGUgc2VhcmNoIGFsZ29yaXRobS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgZXhhY3RseSBpdCBjb21lcyBpbnRvIHBsYXkgaW4gb3JkZXIgdG8gdW5kZXJzdGFuZCBob3cgeGF0dHJzIGFyZSBzZWFyY2hlZCBvciBtb2RpZmllZCB3aXRoaW4gdGhlIGlubGluZSBpLW5vZGUgYnVmZmVyLiBJdCBpcyBhIGZ1bmRhbWVudGFsIHBpZWNlIHRvIHVuZGVyc3RhbmRpbmcgaG93IGVmZmljaWVudGx5IHNtYWxsZXIgYXR0cmlidXRlcyBhcmUgaGFuZGxlZCwgYW5kIGhvdyB0aGUgZmlsZSBzeXN0ZW0gYmFsYW5jZXMgc3BhY2UgYW5kIGFjY2VzcyBwZXJmb3JtYW5jZSBmb3IgdGhlIGlubGluZSBhdHRyaWJ1dGVzIGFzIHdlbGwgYXMgaG93IGV4dDQgY2FuIGRlY2lkZSB0byBtb3ZlIGZyb20gYW4gaW5saW5lIGF0dHJpYnV0ZSB0byBhbiBleHRlcm5hbCBvbmUuIEkmIzM5O20ga2VlbiB0byBkaXNzZWN0IHRoZSBjb2RlIHRvIHVuZGVyc3RhbmQgaXRzIGRhdGEgbWVtYmVycyB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3RydWN0dXJlIGFzc2lzdHMgaW4gdGhlIGxvb2t1cCBwcm9jZXNzIG9mIHRoZSBpbmxpbmUgYXR0cmlidXRlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtmcy9leHQ0L3hhdHRyLmgmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDEyMDpcdFxuIDEyMTpcdHN0cnVjdCBleHQ0X3hhdHRyX3NlYXJjaCB7XG4gMTIyOlx0XHRzdHJ1Y3QgZXh0NF94YXR0cl9lbnRyeSAqZmlyc3Q7XG4gMTIzOlx0XHR2b2lkICpiYXNlO1xuIDEyNDpcdFx0dm9pZCAqZW5kO1xuIDEyNTpcdFx0c3RydWN0IGV4dDRfeGF0dHJfZW50cnkgKmhlcmU7XG4gMTI2Olx0XHRpbnQgbm90X2ZvdW5kO1xuIDEyNzpcdH07XG4gMTI4Olx0XG4gMTI5Olx0c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCB7XG4gMTMwOlx0XHRzdHJ1Y3QgZXh0NF94YXR0cl9zZWFyY2ggcztcbiAxMzE6XHRcdHN0cnVjdCBleHQ0X2lsb2MgaWxvYztcbiAxMzI6XHR9O1xuIDEzMzpcdFxuIDEzNDpcdHN0cnVjdCBleHQ0X3hhdHRyX2lub2RlX2FycmF5IHtcbiAxMzU6XHRcdHVuc2lnbmVkIGludCBjb3VudDtcbiAxMzY6XHRcdHN0cnVjdCBpbm9kZSAqaW5vZGVzW10gX19jb3VudGVkX2J5KGNvdW50KTtcbiAxMzc6XHR9O1xuIDEzODpcdFxuIDEzOTpcdGV4dGVybiBjb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciBleHQ0X3hhdHRyX3VzZXJfaGFuZGxlcjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODMxNgoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDI3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIFRob3VnaHRzIG9uIEMgU3RydWN0dXJlIEluaXRpYWxpemF0aW9uKioKCk9rYXksIGxldCYjMzk7cyBicmVhayBkb3duIHRoaXMgQyBjb2RlIHNuaXBwZXQuIEkgc2VlIHRoYXQgYGlzYCBpcyBpbml0aWFsaXplZCB3aXRoIGEgYnJhY2UtZW5jbG9zZWQgaW5pdGlhbGl6ZXI6CgpgYGBjCglzdHJ1Y3QgZXh0NF94YXR0cl9pYm9keV9maW5kIGlzID0gewoJCS5zID0geyAubm90X2ZvdW5kID0gMCwgfSwKCX07CmBgYAoKUmlnaHQsIHRoYXQmIzM5O3Mgc3RyYWlnaHRmb3J3YXJkLiBJbiBDLCBpZiBJIHVzZSB0aGlzIHR5cGUgb2YgaW5pdGlhbGl6YXRpb24sIGFueSBmaWVsZHMgSSBkb24mIzM5O3QgZXhwbGljaXRseSBzZXQgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHplcm8taW5pdGlhbGl6ZWQuIFNvLCBhdCB0aGUgc3RhcnQsIGBpc2AgaXMgZXNzZW50aWFsbHkgYSBjb21wbGV0ZWx5IHplcm9lZC1vdXQgb2JqZWN0LiBOaWNlIGFuZCBjbGVhbi4KCk5vdywgd2hhdCYjMzk7cyBuZXh0PyBBaCwgYGlgOgoKYGBgYwoJc3RydWN0IGV4dDRfeGF0dHJfaW5mbyBpID0gewoJCS5uYW1lX2luZGV4ID0gRVhUNF9YQVRUUl9JTkRFWF9TWVNURU0sCgkJLm5hbWUgPSBFWFQ0X1hBVFRSX1NZU1RFTV9EQVRBLAoJCS52YWx1ZSA9IE5VTEwsCgkJLnZhbHVlX2xlbiA9IDAsCgl9OwpgYGAKCkhlcmUsIEkmIzM5O20gZXhwbGljaXRseSBpbml0aWFsaXppbmcgYG5hbWVfaW5kZXhgLCBgbmFtZWAsIGB2YWx1ZWAsIGFuZCBgdmFsdWVfbGVuYC4gSG93ZXZlciwgdGhlIEMgc3RhbmRhcmQgZ3VhcmFudGVlcyBhbnkgcmVtYWluaW5nIGZpZWxkcyAqbm90KiBleHBsaWNpdGx5IGluaXRpYWxpemVkIHdpbGwgYWxzbyBiZSB6ZXJvZWQgb3V0LiBUaGlzIGlzIGdvb2QgZm9yIG1lLCBpdCBlbnN1cmVzIGNvbnNpc3RlbnQgYmVoYXZpb3IgYW5kIHByZXZlbnRzIHN1cnByaXNlcy4KCkZpbmFsbHksIGBuZXdleGA6CgpgYGBjCgkJc3RydWN0IGV4dDRfZXh0ZW50IG5ld2V4OwoKCQluZXdleC5lZV9ibG9jayA9IGNwdV90b19sZTMyKDApOwoJCW5ld2V4LmVlX2xlbiA9IGNwdV90b19sZTE2KDEpOwoJCWV4dDRfZXh0X3N0b3JlX3BibG9jaygmYW1wO25ld2V4LCBibG9jayk7CmBgYAoKSSYjMzk7bSBjdXJpb3VzIGFib3V0IHRoZSBkZWZpbml0aW9uIG9mIGBzdHJ1Y3QgZXh0NF9leHRlbnRgIGluIHRoaXMgY29udGV4dCwgc28gSSYjMzk7bGwgbmVlZCB0byBleGFtaW5lIHRoYXQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIHJlbWFpbmluZyBmaWVsZHMgYXJlIHVzZWQgYW5kIHdoZXRoZXIgYW55IGRlZmF1bHQgdmFsdWVzIGFyZSByZWxpZWQgdXBvbiBiZXlvbmQgd2hhdCYjMzk7cyBleHBsaWNpdGx5IHNldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IGV4dDRfZXh0ZW50IFxceyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leHQ0L2V4dDRfZXh0ZW50cy5oPTQ4PXN0cnVjdCBleHQ0X2V4dGVudF90YWlsIHtcbi0tXG5mcy9leHQ0L2V4dDRfZXh0ZW50cy5oLTU1LSAqL1xuZnMvZXh0NC9leHQ0X2V4dGVudHMuaDo1NjpzdHJ1Y3QgZXh0NF9leHRlbnQge1xuZnMvZXh0NC9leHQ0X2V4dGVudHMuaC01Ny1cdF9fbGUzMlx0ZWVfYmxvY2s7XHQvKiBmaXJzdCBsb2dpY2FsIGJsb2NrIGV4dGVudCBjb3ZlcnMgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTEzNQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIGV4dDRfZXh0ZW50IFN0cnVjdHVyZSoqCgpPa2F5LCBsZXQmIzM5O3MgcHVsbCB1cCB0aGUgZGVmaW5pdGlvbiBvZiBgc3RydWN0IGV4dDRfZXh0ZW50YC4gSSYjMzk7dmUgd29ya2VkIHdpdGggdGhlc2UgZXh0ZW5zaXZlbHksIGJ1dCBhIHF1aWNrIHJlZnJlc2ggbmV2ZXIgaHVydHMuIEkgbmVlZCB0byBnZXQgYmFjayB0byBmaXJzdCBwcmluY2lwbGVzIGJlZm9yZSBJIHN0YXJ0IGRpdmluZyBiYWNrIGludG8gdGhlIGNvZGUuIFJpZ2h0LCBtZW1vcnkgbGF5b3V0IGlzIGtleTogaG93IGRvZXMgdGhpcyBsaXR0bGUgc3RydWN0dXJlIHBhY2sgaW5mb3JtYXRpb24gYWJvdXQgYmxvY2sgcmFuZ2VzPyBTaXplIHdpbGwgbWF0dGVyIHdoZW4gaXQgY29tZXMgdG8gcGVyZm9ybWFuY2UsIGFuZCwgaG93IGRvZXMgdGhlIHN0cnVjdHVyZSBoYW5kbGUgZGlmZmVyZW50IHNpemVzPyBJcyB0aGVyZSBhbiBpbmhlcmVudCBsaW1pdCBvciBkb2VzIGl0IHN1cHBvcnQgdmFyaWFibGUgZXh0ZW50cz8KCknigJltIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIGhvdyB0aGUgbWV0YWRhdGEgdHJhbnNsYXRlcyBpbnRvIHBoeXNpY2FsIGJsb2NrIGxvY2F0aW9ucy4gVW5kZXJzdGFuZGluZyB0aGlzIHdpbGwgaGVscCBtZSBkZXRlcm1pbmUgd2hpY2ggYXBwcm9hY2hlcyB0aGUgc3lzdGVtIHdpbGwgYmUgdXNpbmcuIFRoZSBgZXh0NF9leHRlbnRgIHN0cnVjdHVyZSB3aWxsIGluZm9ybSBteSBhcHByb2FjaCB0byBvcHRpbWl6aW5nIGEgc3BlY2lmaWMgSS9PIHNjZW5hcmlvIEkmIzM5O20gY3VycmVudGx5IHdvcmtpbmcgb24uIElzIHRoZSBzdHJ1Y3R1cmUgd2VsbC1hbGlnbmVkPyBBcmUgdGhlcmUgYW55IHBvdGVudGlhbCBwYWRkaW5nIGlzc3VlcyB0aGF0IG1pZ2h0IGFmZmVjdCBtZW1vcnkgYWNjZXNzIHBhdHRlcm5zPyBJ4oCZbGwgbWVudGFsbHkgbWFwIHRoZSBtZW1iZXJzIHRvIHRoZWlyIGxpa2VseSByb2xlczogdGhlIHN0YXJ0aW5nIGJsb2NrLCB0aGUgYmxvY2sgY291bnQsIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEuIERvZXMgaXQgb2ZmZXIgYW55IGNvbXByZXNzaW9uIG1lY2hhbmlzbXM/IEl0JiMzOTtzIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgZm9yIGZyYWdtZW50YXRpb24sIGVzcGVjaWFsbHkgd2hlbiBkZWFsaW5nIHdpdGggbGFyZ2UgZmlsZXMgYW5kIHNwYXJzZSBkYXRhLiBUaGUgc3RydWN0dXJlIGFsc28gbWF5IGdpdmUgY2x1ZXMgdG8gdGhlIHVzZSBvZiBzb21lIGNhY2hpbmcgbWVjaGFuaXNtcy4gSSB3YW50IHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGRhdGEmIzM5O3MgcG90ZW50aWFsIGVmZmVjdHMgb24gY2FjaGluZyBhbmQgb3ZlcmFsbCBwZXJmb3JtYW5jZS4gT2theSwgbGV0JiMzOTtzIHNlZSB3aGF0IHdlJiMzOTtyZSB3b3JraW5nIHdpdGggaGVyZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2ZzL2V4dDQvZXh0NF9leHRlbnRzLmgmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA1NSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxNQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDU1Olx0ICovXG4gIDU2Olx0c3RydWN0IGV4dDRfZXh0ZW50IHtcbiAgNTc6XHRcdF9fbGUzMlx0ZWVfYmxvY2s7XHQvKiBmaXJzdCBsb2dpY2FsIGJsb2NrIGV4dGVudCBjb3ZlcnMgKi9cbiAgNTg6XHRcdF9fbGUxNlx0ZWVfbGVuO1x0XHQvKiBudW1iZXIgb2YgYmxvY2tzIGNvdmVyZWQgYnkgZXh0ZW50ICovXG4gIDU5Olx0XHRfX2xlMTZcdGVlX3N0YXJ0X2hpO1x0LyogaGlnaCAxNiBiaXRzIG9mIHBoeXNpY2FsIGJsb2NrICovXG4gIDYwOlx0XHRfX2xlMzJcdGVlX3N0YXJ0X2xvO1x0LyogbG93IDMyIGJpdHMgb2YgcGh5c2ljYWwgYmxvY2sgKi9cbiAgNjE6XHR9O1xuICA2MjpcdFxuICA2MzpcdC8qXG4gIDY0Olx0ICogVGhpcyBpcyBpbmRleCBvbi1kaXNrIHN0cnVjdHVyZS5cbiAgNjU6XHQgKiBJdCYjMzk7cyB1c2VkIGF0IGFsbCB0aGUgbGV2ZWxzIGV4Y2VwdCB0aGUgYm90dG9tLlxuICA2NjpcdCAqL1xuICA2NzpcdHN0cnVjdCBleHQ0X2V4dGVudF9pZHgge1xuICA2ODpcdFx0X19sZTMyXHRlaV9ibG9jaztcdC8qIGluZGV4IGNvdmVycyBsb2dpY2FsIGJsb2NrcyBmcm9tICYjMzk7YmxvY2smIzM5OyAqL1xuICA2OTpcdFx0X19sZTMyXHRlaV9sZWFmX2xvO1x0LyogcG9pbnRlciB0byB0aGUgcGh5c2ljYWwgYmxvY2sgb2YgdGhlIG5leHQgKlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NzU3CgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogMTEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRXh0NCBFeHRlbmRlZCBBdHRyaWJ1dGUgQmxvY2sgU3RydWN0dXJlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBuZXdleGAgc3RydWN0dXJlLCB3aGljaCBzZWVtcyB0byBiZSBjZW50cmFsIHRvIGhvdyBFeHQ0IGhhbmRsZXMgZXh0ZW5kZWQgYXR0cmlidXRlcy4gSSBzZWUgaXQgaGFzIHRoZXNlIGZpZWxkczogYGVlX2Jsb2NrYCwgYGVlX2xlbmAsIGBlZV9zdGFydF9oaWAsIGFuZCBgZWVfc3RhcnRfbG9gLiBNeSBpbml0aWFsIGltcHJlc3Npb24gaXMgdGhhdCB0aGVzZSBhcmUgbGlrZWx5IHJlbGF0ZWQgdG8gYmxvY2sgYWxsb2NhdGlvbiBvciBhZGRyZXNzaW5nIHdpdGhpbiB0aGUgZmlsZXN5c3RlbSwgcGVyaGFwcyBhIHdheSB0byBtYXAgZXh0ZW5kZWQgYXR0cmlidXRlIGRhdGEgdG8gc3BlY2lmaWMgYmxvY2tzIG9uIGRpc2suCgpOb3csIHRoZSBjb2RlIHNuaXBwZXQgaXMgc2V0dGluZyBgbmV3ZXguZWVfYmxvY2tgIHRvIDAgKGNvbnZlcnRlZCB0byBsaXR0bGUtZW5kaWFuKSwgYG5ld2V4LmVlX2xlbmAgdG8gMSAoYWxzbyBsaXR0bGUtZW5kaWFuKSBhbmQgdGhlbiBjYWxsaW5nIGBleHQ0X2V4dF9zdG9yZV9wYmxvY2tgIHdpdGggdGhlIGBuZXdleGAgc3RydWN0dXJlIGFuZCBhIGBibG9ja2AgdmFyaWFibGUuIFRoZSBhc3NpZ25tZW50IHRvIGBlZV9ibG9ja2AgYW5kIGBlZV9sZW5gIGJlaW5nIGEgY29uc3RhbnQgc3VnZ2VzdHMgdGhpcyBtYXkgYmUgcmVsYXRlZCB0byB0aGUgaW5pdGlhbCBzZXR1cCBvZiBhbiBleHRlbmRlZCBhdHRyaWJ1dGUgZW50cnkuIFNldHRpbmcgdGhlIGxlbmd0aCB0byAxIGFsc28gbWFrZXMgbWUgdGhpbmsgdGhhdCBgZXh0NF9leHRfc3RvcmVfcGJsb2NrYCBtaWdodCBoYW5kbGUgdGhlIGluaXRpYWwgc3RvcmFnZSBmb3IgdGhhdCBzaW5nbGUgYmxvY2suIEkgaW1tZWRpYXRlbHkgd2FudCB0byBkaWcgaW50byBgZXh0NF9leHRfc3RvcmVfcGJsb2NrYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBpdCYjMzk7cyBkb2luZyB3aXRoIHRoaXMgYG5ld2V4YCBzdHJ1Y3R1cmUgYW5kIHRoZSBwYXNzZWQgYmxvY2suIFRoYXQgZnVuY3Rpb24gaXMgcHJvYmFibHkgdGhlIGtleSB0byB1bmxvY2tpbmcgaG93IHRoaXMgYmxvY2sgZGF0YSBpcyBhY3R1YWxseSBzdG9yZWQuIEkgc3VzcGVjdCB0aGUgZnVuY3Rpb24gd2lsbCBtb2RpZnkgdGhlc2UgZmllbGRzIGJhc2VkIG9uIHRoZSBpbnB1dCBibG9jayB0byBzdG9yZSBpbmZvcm1hdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZXh0NF9leHRfc3RvcmVfcGJsb2NrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2V4dDQvZXh0NF9leHRlbnRzLmg9MjMyPXN0YXRpYyBpbmxpbmUgZXh0NF9mc2Jsa190IGV4dDRfaWR4X3BibG9jayhzdHJ1Y3QgZXh0NF9leHRlbnRfaWR4ICppeClcbi0tXG5mcy9leHQ0L2V4dDRfZXh0ZW50cy5oLTI0MS0vKlxuZnMvZXh0NC9leHQ0X2V4dGVudHMuaDoyNDI6ICogZXh0NF9leHRfc3RvcmVfcGJsb2NrOlxuZnMvZXh0NC9leHQ0X2V4dGVudHMuaC0yNDMtICogc3RvcmVzIGEgbGFyZ2UgcGh5c2ljYWwgYmxvY2sgbnVtYmVyIGludG8gYW4gZXh0ZW50IHN0cnVjdCxcbi0tXG5mcy9leHQ0L2V4dDRfZXh0ZW50cy5oLTI0NS0gKi9cbmZzL2V4dDQvZXh0NF9leHRlbnRzLmg6MjQ2OnN0YXRpYyBpbmxpbmUgdm9pZCBleHQ0X2V4dF9zdG9yZV9wYmxvY2soc3RydWN0IGV4dDRfZXh0ZW50ICpleCxcbmZzL2V4dDQvZXh0NF9leHRlbnRzLmgtMjQ3LVx0XHRcdFx0XHQgZXh0NF9mc2Jsa190IHBiKVxuLS1cbmZzL2V4dDQvZXh0ZW50cy10ZXN0LmM9MjI3PXN0YXRpYyBpbnQgZXh0ZW50c19rdW5pdF9pbml0KHN0cnVjdCBrdW5pdCAqdGVzdClcbi0tXG5mcy9leHQ0L2V4dGVudHMtdGVzdC5jLTMxOS1cdEVYVF9GSVJTVF9FWFRFTlQoZWgpLVx1MDAzZWVlX2xlbiA9IGNwdV90b19sZTE2KEVYVF9EQVRBX0xFTik7XG5mcy9leHQ0L2V4dGVudHMtdGVzdC5jOjMyMDpcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhFWFRfRklSU1RfRVhURU5UKGVoKSwgRVhUX0RBVEFfUEJMSyk7XG5mcy9leHQ0L2V4dGVudHMtdGVzdC5jLTMyMS1cdGlmICghcGFyYW0gfHwgcGFyYW0tXHUwMDNlaXNfdW53cml0X2F0X3N0YXJ0KVxuLS1cbmZzL2V4dDQvZXh0ZW50cy5jPTE5OTI9ZXh0NF9leHRfaW5zZXJ0X2V4dGVudChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLS1cbmZzL2V4dDQvZXh0ZW50cy5jLTIwODUtXHRcdFx0ZXgtXHUwMDNlZWVfYmxvY2sgPSBuZXdleHQtXHUwMDNlZWVfYmxvY2s7XG5mcy9leHQ0L2V4dGVudHMuYzoyMDg2Olx0XHRcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleCwgZXh0NF9leHRfcGJsb2NrKG5ld2V4dCkpO1xuZnMvZXh0NC9leHRlbnRzLmMtMjA4Ny1cdFx0XHRleC1cdTAwM2VlZV9sZW4gPSBjcHVfdG9fbGUxNihleHQ0X2V4dF9nZXRfYWN0dWFsX2xlbihleClcbi0tXG5mcy9leHQ0L2V4dGVudHMuYy0yMTk2LVx0bmVhcmV4LVx1MDAzZWVlX2Jsb2NrID0gbmV3ZXh0LVx1MDAzZWVlX2Jsb2NrO1xuZnMvZXh0NC9leHRlbnRzLmM6MjE5NzpcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhuZWFyZXgsIGV4dDRfZXh0X3BibG9jayhuZXdleHQpKTtcbmZzL2V4dDQvZXh0ZW50cy5jLTIxOTgtXHRuZWFyZXgtXHUwMDNlZWVfbGVuID0gbmV3ZXh0LVx1MDAzZWVlX2xlbjtcbi0tXG5mcy9leHQ0L2V4dGVudHMuYz0yNjE0PWV4dDRfZXh0X3JtX2xlYWYoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSxcbi0tXG5mcy9leHQ0L2V4dGVudHMuYy0yNzM5LVx0XHRcdC8qIHRoaXMgZXh0ZW50IGlzIHJlbW92ZWQ7IG1hcmsgc2xvdCBlbnRpcmVseSB1bnVzZWQgKi9cbmZzL2V4dDQvZXh0ZW50cy5jOjI3NDA6XHRcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKGV4LCAwKTtcbmZzL2V4dDQvZXh0ZW50cy5jLTI3NDEtXG4tLVxuZnMvZXh0NC9leHRlbnRzLmM9MzE5MT1zdGF0aWMgc3RydWN0IGV4dDRfZXh0X3BhdGggKmV4dDRfc3BsaXRfZXh0ZW50X2F0KGhhbmRsZV90ICpoYW5kbGUsXG4tLVxuZnMvZXh0NC9leHRlbnRzLmMtMzI0Ni1cdGV4Mi1cdTAwM2VlZV9sZW4gICA9IGNwdV90b19sZTE2KGVlX2xlbiAtIChzcGxpdCAtIGVlX2Jsb2NrKSk7XG5mcy9leHQ0L2V4dGVudHMuYzozMjQ3Olx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKGV4MiwgbmV3YmxvY2spO1xuZnMvZXh0NC9leHRlbnRzLmMtMzI0OC1cdGlmIChpc191bndyaXQpXG4tLVxuZnMvZXh0NC9leHRlbnRzLmM9MzU1Nz1leHQ0X2V4dF9jb252ZXJ0X3RvX2luaXRpYWxpemVkKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9leHRlbnRzLmMtMzY0NS1cdFx0XHRleC1cdTAwM2VlZV9ibG9jayA9IGNwdV90b19sZTMyKGVlX2Jsb2NrICYjNDM7IG1hcF9sZW4pO1xuZnMvZXh0NC9leHRlbnRzLmM6MzY0NjpcdFx0XHRleHQ0X2V4dF9zdG9yZV9wYmxvY2soZXgsIGVlX3BibGsgJiM0MzsgbWFwX2xlbik7XG5mcy9leHQ0L2V4dGVudHMuYy0zNjQ3LVx0XHRcdGV4LVx1MDAzZWVlX2xlbiA9IGNwdV90b19sZTE2KGVlX2xlbiAtIG1hcF9sZW4pO1xuLS1cbmZzL2V4dDQvZXh0ZW50cy5jLTM2OTEtXHRcdFx0YWJ1dF9leC1cdTAwM2VlZV9ibG9jayA9IGNwdV90b19sZTMyKG5leHRfbGJsayAtIG1hcF9sZW4pO1xuZnMvZXh0NC9leHRlbnRzLmM6MzY5MjpcdFx0XHRleHQ0X2V4dF9zdG9yZV9wYmxvY2soYWJ1dF9leCwgbmV4dF9wYmxrIC0gbWFwX2xlbik7XG5mcy9leHQ0L2V4dGVudHMuYy0zNjkzLVx0XHRcdGV4LVx1MDAzZWVlX2xlbiA9IGNwdV90b19sZTE2KGVlX2xlbiAtIG1hcF9sZW4pO1xuLS1cbmZzL2V4dDQvZXh0ZW50cy5jLTM3NDUtXHRcdFx0XHRjcHVfdG9fbGUxNigqYWxsb2NhdGVkIC0gc3BsaXRfbWFwLm1fbGVuKTtcbmZzL2V4dDQvZXh0ZW50cy5jOjM3NDY6XHRcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNnplcm9fZXgxLFxuZnMvZXh0NC9leHRlbnRzLmMtMzc0Ny1cdFx0XHRcdGV4dDRfZXh0X3BibG9jayhleCkgJiM0Mzsgc3BsaXRfbWFwLm1fbGJsayAmIzQzO1xuLS1cbmZzL2V4dDQvZXh0ZW50cy5jLTM3NjAtXHRcdFx0XHRcdFx0XHRlZV9ibG9jayk7XG5mcy9leHQ0L2V4dGVudHMuYzozNzYxOlx0XHRcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNnplcm9fZXgyLFxuZnMvZXh0NC9leHRlbnRzLmMtMzc2Mi1cdFx0XHRcdFx0XHQgICAgICBleHQ0X2V4dF9wYmxvY2soZXgpKTtcbi0tXG5mcy9leHQ0L2V4dGVudHMuYz00MjY5PWludCBleHQ0X2V4dF9tYXBfYmxvY2tzKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9leHRlbnRzLmMtNDQ3My1cdHBibGsgPSBuZXdibG9jayAmIzQzOyBvZmZzZXQ7XG5mcy9leHQ0L2V4dGVudHMuYzo0NDc0Olx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNm5ld2V4LCBwYmxrKTtcbmZzL2V4dDQvZXh0ZW50cy5jLTQ0NzUtXHRuZXdleC5lZV9sZW4gPSBjcHVfdG9fbGUxNihhci5sZW4pO1xuLS1cbmZzL2V4dDQvZXh0ZW50cy5jPTU3NjM9ZXh0NF9zd2FwX2V4dGVudHMoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZTEsXG4tLVxuZnMvZXh0NC9leHRlbnRzLmMtNTg5Ny1cdFx0dG1wX2V4ID0gKmV4MTtcbmZzL2V4dDQvZXh0ZW50cy5jOjU4OTg6XHRcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleDEsIGV4dDRfZXh0X3BibG9jayhleDIpKTtcbmZzL2V4dDQvZXh0ZW50cy5jOjU4OTk6XHRcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleDIsIGV4dDRfZXh0X3BibG9jayhcdTAwMjZ0bXBfZXgpKTtcbmZzL2V4dDQvZXh0ZW50cy5jLTU5MDAtXHRcdGV4MS1cdTAwM2VlZV9sZW4gPSBjcHVfdG9fbGUxNihlMl9sZW4pO1xuLS1cbmZzL2V4dDQvZXh0ZW50cy5jPTYwMjc9aW50IGV4dDRfZXh0X3JlcGxheV91cGRhdGVfZXgoc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9sYmxrX3Qgc3RhcnQsXG4tLVxuZnMvZXh0NC9leHRlbnRzLmMtNjA4MC1cdFx0ZXh0NF9leHRfbWFya19pbml0aWFsaXplZChleCk7XG5mcy9leHQ0L2V4dGVudHMuYzo2MDgxOlx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKGV4LCBwYmxrKTtcbmZzL2V4dDQvZXh0ZW50cy5jLTYwODItXHRkb3duX3dyaXRlKFx1MDAyNkVYVDRfSShpbm9kZSktXHUwMDNlaV9kYXRhX3NlbSk7XG4tLVxuZnMvZXh0NC9mYXN0X2NvbW1pdC5jPTkzMT1zdGF0aWMgaW50IGV4dDRfZmNfd3JpdGVfaW5vZGVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1MzIgKmNyYylcbi0tXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmMtOTYxLVx0XHRleC1cdTAwM2VlZV9sZW4gPSBjcHVfdG9fbGUxNihyYW5nZS1cdTAwM2VsZW4pO1xuZnMvZXh0NC9mYXN0X2NvbW1pdC5jOjk2MjpcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKGV4LCByYW5nZS1cdTAwM2VwYmxrKTtcbmZzL2V4dDQvZmFzdF9jb21taXQuYy05NjMtXHRcdGlmIChyYW5nZS1cdTAwM2V1bndyaXR0ZW4pXG4tLVxuZnMvZXh0NC9mYXN0X2NvbW1pdC5jPTIxNDg9c3RhdGljIGludCBleHQ0X2ZjX3JlcGxheV9hZGRfcmFuZ2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTggKnZhbClcbi0tXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmMtMjIwMi1cdFx0XHRuZXdleC5lZV9ibG9jayA9IGNwdV90b19sZTMyKGN1cik7XG5mcy9leHQ0L2Zhc3RfY29tbWl0LmM6MjIwMzpcdFx0XHRleHQ0X2V4dF9zdG9yZV9wYmxvY2soXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmMtMjIwNC1cdFx0XHRcdFx1MDAyNm5ld2V4LCBzdGFydF9wYmxrICYjNDM7IGN1ciAtIHN0YXJ0KTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTEwNzQ9c3RhdGljIGludCBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2ZzYmxrX3QgYmxvY2ssXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xMTM1LVx0XHRuZXdleC5lZV9sZW4gPSBjcHVfdG9fbGUxNigxKTtcbmZzL2V4dDQvaW5saW5lLmM6MTEzNjpcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNm5ld2V4LCBibG9jayk7XG5mcy9leHQ0L2lubGluZS5jLTExMzctXHRcdHBhdGggPSBleHQ0X2V4dF9pbnNlcnRfZXh0ZW50KGhhbmRsZSwgaW5vZGUsIHBhdGgsIFx1MDAyNm5ld2V4LCAwKTtcbi0tXG5mcy9leHQ0L21pZ3JhdGUuYz0yMT1zdGF0aWMgaW50IGZpbmlzaF9yYW5nZShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLS1cbmZzL2V4dDQvbWlncmF0ZS5jLTMzLVx0bmV3ZXh0LmVlX2xlbiAgID0gY3B1X3RvX2xlMTYobGItXHUwMDNlbGFzdF9ibG9jayAtIGxiLVx1MDAzZWZpcnN0X2Jsb2NrICYjNDM7IDEpO1xuZnMvZXh0NC9taWdyYXRlLmM6MzQ6XHRleHQ0X2V4dF9zdG9yZV9wYmxvY2soXHUwMDI2bmV3ZXh0LCBsYi1cdTAwM2VmaXJzdF9wYmxvY2spO1xuZnMvZXh0NC9taWdyYXRlLmMtMzUtXHQvKiBMb2NraW5nIG9ubHkgZm9yIGNvbnZlbmllbmNlIHNpbmNlIHdlIGFyZSBvcGVyYXRpbmcgb24gdGVtcCBpbm9kZSAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Nm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjYxMAoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDcyOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgRXh0ZW50IGFuZCBBbGxvY2F0aW9uIEluaXRpYWxpemF0aW9uIGluIGV4dDQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGV4dDRfZXh0X3N0b3JlX3BibG9ja2AgZnVuY3Rpb24sIGFuZCBpdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBJdCYjMzk7cyByZXNwb25zaWJsZSBmb3Igc3RvcmluZyB0aGUgcGh5c2ljYWwgYmxvY2sgbnVtYmVyIChgcGJgKSBpbnRvIHRoZSBleHRlbnQgc3RydWN0dXJlJiMzOTtzIGBlZV9zdGFydF9sb2AgYW5kIGBlZV9zdGFydF9oaWAgZmllbGRzLiBUaGUgaGlnaCBiaXRzIGFyZSBzaGlmdGVkIGFuZCBtYXNrZWQgYXBwcm9wcmlhdGVseSwgYW5kIGV2ZXJ5dGhpbmcgaXMgY29udmVydGVkIHRvIGxpdHRsZS1lbmRpYW4uIFNlZW1zIHN0YW5kYXJkIGZvciBoYW5kbGluZyA2NC1iaXQgYmxvY2sgbnVtYmVycyB3aXRoaW4gYSA0OC1iaXQgc3BsaXQgZXh0ZW50IHN0cnVjdHVyZS4gSSYjMzk7bSBub3RpbmcgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGluaXRpYWxpemluZyBgbmV3ZXhgLgoKVGhlbiwgSSYjMzk7bSB2ZXJpZnlpbmcgdGhlIGNvbXBsZXRlIGluaXRpYWxpemF0aW9uIG9mIGFuIGBleHQ0X2V4dGVudGAgc3RydWN0dXJlLiBHaXZlbiB0aGF0IHRoZSBzdHJ1Y3R1cmUgaGFzIGZvdXIgZmllbGRzIChgZWVfYmxvY2tgLCBgZWVfbGVuYCwgYGVlX3N0YXJ0X2hpYCwgYGVlX3N0YXJ0X2xvYCkgYW5kIHRoZSBjb2RlIGluaXRpYWxpemVzIGFsbCBmb3VyLCBJIGhhdmUgY29uZmlybWVkIHRoYXQgdGhlIGV4dGVudCBpcyBmdWxseSBpbml0aWFsaXplZC4gQ2hlY2tpbmcgdGhlIHN0cnVjdHVyZSYjMzk7cyBzaXplIGNvbmZpcm1zIHRoZSBhYnNlbmNlIG9mIHBhZGRpbmcsIGFzIDQgJiM0MzsgMiAmIzQzOyAyICYjNDM7IDQgZXF1YWxzIDEyIGJ5dGVzLgoKTm93LCBzaGlmdGluZyBnZWFycywgSSYjMzk7bSBleGFtaW5pbmcgdGhlIGluaXRpYWxpemF0aW9uIG9mIGBzdHJ1Y3QgZXh0NF9hbGxvY2F0aW9uX3JlcXVlc3QgYXI7YCB3aXRoaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBUaGUgY29kZSB1c2VzIGBtZW1zZXRgIHRvIGluaXRpYWxpemUgYGFyYCB0byB6ZXJvLCBhbmQgdGhlbiBzZXRzIHNvbWUgc3BlY2lmaWMgZmllbGRzLiBTbywgdGhhdCYjMzk7cyBkZWZpbml0ZWx5IGEgY29tcGxldGUgaW5pdGlhbGl6YXRpb24uCgpNeSBmb2N1cyBpcyBzaGlmdGluZyB0byBgYnVmYCwgYWxsb2NhdGVkIHdpdGggYGttYWxsb2NgIGluIHRoZSBzYW1lIGZ1bmN0aW9uLiBJIHNlZSB0aGF0IGBidWZgIGlzIGFsbG9jYXRlZCBidXQgdW5pbml0aWFsaXplZCwgd2hpY2ggaXMgYSBrZXkgcG9pbnQgdG8gd2F0Y2ggb3V0IGZvci4gQWZ0ZXIgYWxsb2NhdGlvbiwgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgaXMgY2FsbGVkIHRvIHBvcHVsYXRlIGBidWZgLiBUaGlzIGlzIHdoZXJlIEkgaGF2ZSBhIGNvbmNlcm4uIElmIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIGRvZXNuJiMzOTt0IGZ1bGx5IGluaXRpYWxpemUgdGhlIGFsbG9jYXRlZCBgYnVmYCBidWZmZXIsIGl0IGNvdWxkIGxlYWQgdG8gdW5pbml0aWFsaXplZCBtZW1vcnkgYmVpbmcgdXNlZCwgd2hpY2ggY291bGQgY3JlYXRlIGlzc3Vlcy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgaW1wbGVtZW50YXRpb24gb2YgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgY2FyZWZ1bGx5IHRvIGVuc3VyZSBpdCBoYW5kbGVzIHRoZSBlbnRpcmUgYGJ1ZmAuIEkmIzM5O20gZ29pbmcgdG8gbG9vayBhdCB0aGF0IGZ1bmN0aW9uIG5leHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE3OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2V4dDRfcmVhZF9pbmxpbmVfZGF0YSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leHQ0L2lubGluZS5jPTE0NT1pbnQgZXh0NF9maW5kX2lubGluZV9kYXRhX25vbG9jayhzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTgzLVxuZnMvZXh0NC9pbmxpbmUuYzoxODQ6c3RhdGljIGludCBleHQ0X3JlYWRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSwgdm9pZCAqYnVmZmVyLFxuZnMvZXh0NC9pbmxpbmUuYy0xODUtXHRcdFx0XHQgdW5zaWduZWQgaW50IGxlbixcbi0tXG5mcy9leHQ0L2lubGluZS5jPTUwND1zdGF0aWMgaW50IGV4dDRfcmVhZF9pbmxpbmVfZm9saW8oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZvbGlvICpmb2xpbylcbi0tXG5mcy9leHQ0L2lubGluZS5jLTUzNS1cdGthZGRyID0ga21hcF9sb2NhbF9mb2xpbyhmb2xpbywgMCk7XG5mcy9leHQ0L2lubGluZS5jOjUzNjpcdHJldCA9IGV4dDRfcmVhZF9pbmxpbmVfZGF0YShpbm9kZSwga2FkZHIsIGxlbiwgXHUwMDI2aWxvYyk7XG5mcy9leHQ0L2lubGluZS5jLTUzNy1cdGthZGRyID0gZm9saW9femVyb190YWlsKGZvbGlvLCBsZW4sIGthZGRyICYjNDM7IGxlbik7XG4tLVxuZnMvZXh0NC9pbmxpbmUuYz0xMTg1PXN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTIwNC1cbmZzL2V4dDQvaW5saW5lLmM6MTIwNTpcdGVycm9yID0gZXh0NF9yZWFkX2lubGluZV9kYXRhKGlub2RlLCBidWYsIGlubGluZV9zaXplLCBpbG9jKTtcbmZzL2V4dDQvaW5saW5lLmMtMTIwNi1cdGlmIChlcnJvciBcdTAwM2MgMClcbi0tXG5mcy9leHQ0L2lubGluZS5jPTEzNTc9aW50IGV4dDRfaW5saW5lZGlyX3RvX3RyZWUoc3RydWN0IGZpbGUgKmRpcl9maWxlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTM5Mi1cbmZzL2V4dDQvaW5saW5lLmM6MTM5MzpcdHJldCA9IGV4dDRfcmVhZF9pbmxpbmVfZGF0YShpbm9kZSwgZGlyX2J1ZiwgaW5saW5lX3NpemUsIFx1MDAyNmlsb2MpO1xuZnMvZXh0NC9pbmxpbmUuYy0xMzk0LVx0dXBfcmVhZChcdTAwMjZFWFQ0X0koaW5vZGUpLVx1MDAzZXhhdHRyX3NlbSk7XG4tLVxuZnMvZXh0NC9pbmxpbmUuYz0xNDc4PWludCBleHQ0X3JlYWRfaW5saW5lX2RpcihzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTE1MTEtXG5mcy9leHQ0L2lubGluZS5jOjE1MTI6XHRyZXQgPSBleHQ0X3JlYWRfaW5saW5lX2RhdGEoaW5vZGUsIGRpcl9idWYsIGlubGluZV9zaXplLCBcdTAwMjZpbG9jKTtcbmZzL2V4dDQvaW5saW5lLmMtMTUxMy1cdHVwX3JlYWQoXHUwMDI2RVhUNF9JKGlub2RlKS1cdTAwM2V4YXR0cl9zZW0pO1xuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTYwOT12b2lkICpleHQ0X3JlYWRfaW5saW5lX2xpbmsoc3RydWN0IGlub2RlICppbm9kZSlcbi0tXG5mcy9leHQ0L2lubGluZS5jLTE2MjQtXG5mcy9leHQ0L2lubGluZS5jOjE2MjU6XHRyZXQgPSBleHQ0X3JlYWRfaW5saW5lX2RhdGEoaW5vZGUsIGxpbmssIGlubGluZV9zaXplLCBcdTAwMjZpbG9jKTtcbmZzL2V4dDQvaW5saW5lLmMtMTYyNi1cdGlmIChyZXQgXHUwMDNjIDApIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ1MzIKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqRGl2aW5nIGludG8gYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAqKgoKQWxyaWdodCwgdGltZSB0byBjcmFjayBvcGVuIHRoZSBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCBmdW5jdGlvbi4gSSYjMzk7bSBhbHJlYWR5IGFudGljaXBhdGluZyBzb21lIG9mIHRoZSBrZXkgYXJlYXMgdGhpcyB3aWxsIHRvdWNoIG9uLiBXZSYjMzk7cmUgZGVhbGluZyB3aXRoIGlubGluZSBkYXRhLCB3aGljaCBtZWFucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIG9wdGltaXphdGlvbnMsIGJ1dCBhbHNvIHBvdGVudGlhbCBjb21wbGV4aXR5IGluIGhhbmRsaW5nIGRhdGEgc3RvcmVkIGRpcmVjdGx5IHdpdGhpbiB0aGUgaW5vZGUgaXRzZWxmLCByYXRoZXIgdGhhbiBpbiBzZXBhcmF0ZSBibG9ja3Mgb24gZGlzay4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVudGFsIG1hcCBvZiB0aGUgZXh0NCBkYXRhIHN0cnVjdHVyZXMsIHNwZWNpZmljYWxseSB0aGUgaW5vZGUgbGF5b3V0IGFuZCB0aGUgdmFyaW91cyBmbGFncyB0aGF0IHNpZ25hbCBpbmxpbmUgZGF0YSB1c2FnZS4KCkkmIzM5O2xsIGJlIGxvb2tpbmcgY2xvc2VseSBhdCBob3cgdGhlIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgb2Zmc2V0cywgcGFydGljdWxhcmx5IHRoZSBpbnRlcmFjdGlvbnMgYmV0d2VlbiB0aGUgaW5vZGUmIzM5O3MgZGF0YSBhcmVhIGFuZCB0aGUgZmlsZSYjMzk7cyBzaXplLiBIYW5kbGluZyBib3VuZGFyeSBjb25kaXRpb25zIGlzIGFsd2F5cyBjcnVjaWFsIGluIHRoaXMgdHlwZSBvZiBmdW5jdGlvbjsgaW5jb3JyZWN0IGNhbGN1bGF0aW9ucyBjb3VsZCBlYXNpbHkgbGVhZCB0byByZWFkaW5nIGJleW9uZCB0aGUgYWxsb2NhdGVkIGRhdGEgb3IsIHdvcnNlLCBjb3JydXB0aW5nIGZpbGUgbWV0YWRhdGEuIEkgbmVlZCB0byBzZWUgaG93IGl0IG1hbmFnZXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudHMsIGFuZCB3aGV0aGVyIHRoZSByZWFkcyBhcmUgYnl0ZS1hbGlnbmVkIGFzIGlzIHJlcXVpcmVkLgoKSSYjMzk7bGwgcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgZXJyb3IgaGFuZGxpbmcuIEkgZXhwZWN0IGNoZWNrcyBmb3IgaW52YWxpZCBpbm9kZSBzdHJ1Y3R1cmVzIG9yIGZpbGUgc2l6ZXMsIGFuZCBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgZnVuY3Rpb24gbWFuYWdlcyBlcnJvcnMgZHVyaW5nIHRoZSBkYXRhIGNvcHkgaXRzZWxmLiBTaW5jZSBpbmxpbmUgZGF0YSBpcyBlc3NlbnRpYWxseSB0aWdodGx5IGNvdXBsZWQgd2l0aCB0aGUgaW5vZGUsIGFueSBpbmNvbnNpc3RlbmNpZXMgY291bGQgYmUgY2F0YXN0cm9waGljLgoKVGhlIGVmZmljaWVuY3kgb2YgdGhpcyBmdW5jdGlvbiBpcyBwYXJhbW91bnQuIEl0IHNob3VsZCBtaW5pbWl6ZSB1bm5lY2Vzc2FyeSBtZW1vcnkgY29waWVzIGFuZCBJL08gb3BlcmF0aW9ucywgZW5zdXJpbmcgdGhhdCBpbmxpbmUgZGF0YSByZWFkcyBhcmUgYXMgZmFzdCBhcyBwb3NzaWJsZS4gSSYjMzk7bGwgYmUgc2NydXRpbml6aW5nIGFueSBvcHRpbWl6YXRpb25zIHByZXNlbnQgdG8gYXNzZXNzIHRoZWlyIGltcGFjdCBhbmQgY29ycmVjdG5lc3MuIEZ1cnRoZXJtb3JlLCBpZiBhbnkgbG9ja2luZyBpcyBpbnZvbHZlZCwgSSYjMzk7bGwgYmUgaW52ZXN0aWdhdGluZyB0aG9zZSBmb3IgdGhlaXIgZWZmaWNpZW5jeS4KCkZpbmFsbHksIEkmIzM5O2xsIHdhbnQgdG8gc2VlIGhvdyBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCBpbnRlZ3JhdGVzIHdpdGggdGhlIGxhcmdlciBmaWxlIHN5c3RlbSByZWFkIHBhdGguIEkgd2FudCB0byBzZWUgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBidWZmZXIgY2FjaGUsIHRoZSBwYWdlIGNhY2hlLCBhbmQgb3RoZXIgcG90ZW50aWFsIG9wdGltaXphdGlvbiBsYXllcnMuIEhvdyBkb2VzIGl0IGhhbmRsZSB0aGUgY2FzZSB3aGVuIGlubGluZSBkYXRhIG5lZWRzIHRvIGJlIGNvbWJpbmVkIHdpdGggZGF0YSBmcm9tIHJlZ3VsYXIgYmxvY2tzPyBUaGUgaW50ZXJhY3Rpb25zIGJldHdlZW4gZGlmZmVyZW50IGRhdGEgc3RvcmFnZSBtZXRob2RzIGFyZSBhbHdheXMgYSBwcmltZSBhcmVhIG9mIGludGVyZXN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2ZzL2V4dDQvaW5saW5lLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxODQsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDE4NDpcdHN0YXRpYyBpbnQgZXh0NF9yZWFkX2lubGluZV9kYXRhKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHZvaWQgKmJ1ZmZlcixcbiAxODU6XHRcdFx0XHRcdCB1bnNpZ25lZCBpbnQgbGVuLFxuIDE4NjpcdFx0XHRcdFx0IHN0cnVjdCBleHQ0X2lsb2MgKmlsb2MpXG4gMTg3Olx0e1xuIDE4ODpcdFx0c3RydWN0IGV4dDRfeGF0dHJfZW50cnkgKmVudHJ5O1xuIDE4OTpcdFx0c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfaGVhZGVyICpoZWFkZXI7XG4gMTkwOlx0XHRpbnQgY3BfbGVuID0gMDtcbiAxOTE6XHRcdHN0cnVjdCBleHQ0X2lub2RlICpyYXdfaW5vZGU7XG4gMTkyOlx0XG4gMTkzOlx0XHRpZiAoIWxlbilcbiAxOTQ6XHRcdFx0cmV0dXJuIDA7XG4gMTk1Olx0XG4gMTk2Olx0XHRCVUdfT04obGVuIFx1MDAzZSBFWFQ0X0koaW5vZGUpLVx1MDAzZWlfaW5saW5lX3NpemUpO1xuIDE5NzpcdFxuIDE5ODpcdFx0Y3BfbGVuID0gbWluX3QodW5zaWduZWQgaW50LCBsZW4sIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpO1xuIDE5OTpcdFxuIDIwMDpcdFx0cmF3X2lub2RlID0gZXh0NF9yYXdfaW5vZGUoaWxvYyk7XG4gMjAxOlx0XHRtZW1jcHkoYnVmZmVyLCAodm9pZCAqKShyYXdfaW5vZGUtXHUwMDNlaV9ibG9jayksIGNwX2xlbik7XG4gMjAyOlx0XG4gMjAzOlx0XHRsZW4gLT0gY3BfbGVuO1xuIDIwNDpcdFx0YnVmZmVyICYjNDM7PSBjcF9sZW47XG4gMjA1Olx0XG4gMjA2Olx0XHRpZiAoIWxlbilcbiAyMDc6XHRcdFx0Z290byBvdXQ7XG4gMjA4Olx0XG4gMjA5Olx0XHRoZWFkZXIgPSBJSERSKGlub2RlLCByYXdfaW5vZGUpO1xuIDIxMDpcdFx0ZW50cnkgPSAoc3RydWN0IGV4dDRfeGF0dHJfZW50cnkgKikoKHZvaWQgKilyYXdfaW5vZGUgJiM0MztcbiAyMTE6XHRcdFx0XHRcdFx0ICAgIEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfb2ZmKTtcbiAyMTI6XHRcdGxlbiA9IG1pbl90KHVuc2lnbmVkIGludCwgbGVuLFxuIDIxMzpcdFx0XHQgICAgKHVuc2lnbmVkIGludClsZTMyX3RvX2NwdShlbnRyeS1cdTAwM2VlX3ZhbHVlX3NpemUpKTtcbiAyMTQ6XHRcbiAyMTU6XHRcdG1lbWNweShidWZmZXIsXG4gMjE2Olx0XHQgICAgICAgKHZvaWQgKilJRklSU1QoaGVhZGVyKSAmIzQzOyBsZTE2X3RvX2NwdShlbnRyeS1cdTAwM2VlX3ZhbHVlX29mZnMpLCBsZW4pO1xuIDIxNzpcdFx0Y3BfbGVuICYjNDM7PSBsZW47XG4gMjE4Olx0XG4gMjE5Olx0b3V0OlxuIDIyMDpcdFx0cmV0dXJuIGNwX2xlbjtcbiAyMjE6XHR9XG4gMjIyOlx0XG4gMjIzOlx0LypcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU2MTQKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiAzNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGV4dDQgSW5saW5lIERhdGEgSGFuZGxpbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgLiBNeSBpbml0aWFsIHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBpdCBjb3BpZXMgaW5saW5lIGRhdGEgZnJvbSB0aGUgaW5vZGUmIzM5O3MgaW5saW5lIGRhdGEgc2VjdGlvbiBpbnRvIGEgYnVmZmVyLiBJdCBzZWVtcyBzdHJhaWdodGZvcndhcmQ6IEl0IGdyYWJzIGBjcF9sZW5gIGJ5dGVzLCBzdXBwb3NlZGx5IGZyb20gYHJhd19pbm9kZS0mZ3Q7aV9ibG9ja2AsIGFuZCB0aGVuIGlmIHRoZXJlJiMzOTtzIHN0aWxsIG1vcmUgZGF0YSB0byByZWFkIChgbGVuYCBpcyBzdGlsbCBncmVhdGVyIHRoYW4gMCksIGl0IGNvbnRpbnVlcyB0byBjb3B5IHRoZSByZW1haW5pbmcgZGF0YSBmcm9tIHRoZSB4YXR0ciBlbnRyeS4KCkJ1dCB3YWl0IGEgbWludXRlLi4uIEkgc2VlIHNvbWV0aGluZyBpbnRlcmVzdGluZyBoZXJlOiBgY3BfbGVuYCByZXR1cm5lZCBieSBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCAqbWlnaHQqIGFjdHVhbGx5IGJlIGxlc3MgdGhhbiB0aGUgb3JpZ2luYWwgcmVxdWVzdGVkIGBsZW5gLiBUaGUgY29kZSB1c2VzIGBtaW5fdGAgdG8gZGV0ZXJtaW5lIGhvdyBtdWNoIGl0IHNob3VsZCBjb3B5OgoKYGBgYwpsZW4gPSBtaW5fdCh1bnNpZ25lZCBpbnQsIGxlbiwgKHVuc2lnbmVkIGludClsZTMyX3RvX2NwdShlbnRyeS0mZ3Q7ZV92YWx1ZV9zaXplKSk7CmBgYAoKU28sIGlmIHRoZSByZXF1ZXN0ZWQgYGxlbmAgd2FzIGxhcmdlciB0aGFuIGBlbnRyeS0mZ3Q7ZV92YWx1ZV9zaXplYCwgaXQgY29waWVzIGxlc3MgZGF0YSBhbmQgcmV0dXJucyB0aGF0IHNtYWxsZXIgYGNwX2xlbmAuIFRoYXQgbWFrZXMgc2Vuc2UgaW4gdGVybXMgb2Ygbm90IHJlYWRpbmcgcGFzdCB3aGF0JiMzOTtzIHN0b3JlZCwgYnV0IGl0IHJhaXNlcyBhIGNvbmNlcm4gaW4gbXkgaGVhZC4KCk5vdyBJJiMzOTttIGxvb2tpbmcgYXQgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBUaGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcsIGJlY2F1c2UgaXQgY2FsbHMgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgdG8gcmVhZCBpbnRvIGEgYnVmZmVyIGBidWZgIGFsbG9jYXRlZCB3aXRoIGBrbWFsbG9jYC4gSXQgbG9va3MgbGlrZSBpdCBmaXJzdCBjYWxjdWxhdGVzIGBpbmxpbmVfc2l6ZWAgd2l0aCBgZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpYC4gVGhlbiwgaXQgYWxsb2NhdGVzIHRoZSBidWZmZXIsIHJlYWRzIGludG8gaXQsIGFuZCBjaGVja3MgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgLgoKVGhlIGNvcmUgb2YgbXkgY29uY2VybiBpcyB0aGF0IGlmIGBlcnJvcmAsIHdoaWNoIGlzIGVxdWFsIHRvIGBjcF9sZW5gLCBpcyBsZXNzIHRoYW4gYGlubGluZV9zaXplYCwgdGhlIGJ1ZmZlciBgYnVmYCBpc24mIzM5O3QgKmZ1bGx5KiBpbml0aWFsaXplZC4gVGhpcyBjb3VsZCBiZSBhIHZ1bG5lcmFiaWxpdHksIHJpZ2h0PyBXZSYjMzk7cmUgZ29pbmcgdG8gYXR0ZW1wdCB0byByZWFkIGEgYnVmZmVyIHRoYXQgbWF5IGhhdmUgdW5pbml0aWFsaXplZCBieXRlcywgYW5kIHRoYXQmIzM5O3MgZ2VuZXJhbGx5IGJhZC4KCkJ1dCBob2xkIG9uLCBsZXQgbWUgc3RvcCBhbmQgdGhpbmsgdGhpcyB0aHJvdWdoLi4uIHRoZSBzaXplIHRvIHJlYWQgaXMgc2V0IGJ5IGBleHQ0X2dldF9pbmxpbmVfc2l6ZShpbm9kZSlgLiBUaGF0IGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gdGhlIGV4YWN0IHNpemUgb2YgdGhlIGlubGluZSBkYXRhLgoKSSBuZWVkIHRvIGdvIGFuZCBjaGVjayBgZXh0NF9nZXRfaW5saW5lX3NpemVgIHRvIGNvbmZpcm0gdGhpcyBhc3N1bXB0aW9uLiBJZiBgZXh0NF9nZXRfaW5saW5lX3NpemVgIHJldHVybnMgdGhlIGNvcnJlY3Qgc2l6ZSwgdGhlbiB0aGVyZSBoYXMgdG8gYmUgYW4gaXNzdWUgaW4gdGhlIGVycm9yIGNoZWNraW5nIG9mIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYCBvciB0aGUgbG9naWMgaW5zaWRlIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIHRoYXQgaXMgY2F1c2luZyB0aGUgc2hvcnQgcmVhZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZXh0NF9nZXRfaW5saW5lX3NpemUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXh0NC9pbmxpbmUuYz0yNT1zdGF0aWMgaW50IGV4dDRfZGFfY29udmVydF9pbmxpbmVfZGF0YV90b19leHRlbnQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0yOC1cbmZzL2V4dDQvaW5saW5lLmM6Mjk6c3RhdGljIGludCBleHQ0X2dldF9pbmxpbmVfc2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuZnMvZXh0NC9pbmxpbmUuYy0zMC17XG4tLVxuZnMvZXh0NC9pbmxpbmUuYz01MDQ9c3RhdGljIGludCBleHQ0X3JlYWRfaW5saW5lX2ZvbGlvKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmb2xpbyAqZm9saW8pXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy01MjQtXG5mcy9leHQ0L2lubGluZS5jOjUyNTpcdGxlbiA9IG1pbl90KHNpemVfdCwgZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpLCBpX3NpemVfcmVhZChpbm9kZSkpO1xuZnMvZXh0NC9pbmxpbmUuYy01MjYtXG4tLVxuZnMvZXh0NC9pbmxpbmUuYz01NzM9c3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtNjIzLVx0ZnJvbSA9IDA7XG5mcy9leHQ0L2lubGluZS5jOjYyNDpcdHRvID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xuZnMvZXh0NC9pbmxpbmUuYy02MjUtXHRpZiAoIWZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pKSB7XG4tLVxuZnMvZXh0NC9pbmxpbmUuYz04ODY9c3RhdGljIGludCBleHQ0X2RhX2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtOTAzLVxuZnMvZXh0NC9pbmxpbmUuYzo5MDQ6XHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcbmZzL2V4dDQvaW5saW5lLmMtOTA1LVxuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTE4NT1zdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTExOTctXG5mcy9leHQ0L2lubGluZS5jOjExOTg6XHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcbmZzL2V4dDQvaW5saW5lLmMtMTE5OS1cdGJ1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTEzNTc9aW50IGV4dDRfaW5saW5lZGlyX3RvX3RyZWUoc3RydWN0IGZpbGUgKmRpcl9maWxlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTM4NC1cbmZzL2V4dDQvaW5saW5lLmM6MTM4NTpcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xuZnMvZXh0NC9pbmxpbmUuYy0xMzg2LVx0ZGlyX2J1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTE0Nzg9aW50IGV4dDRfcmVhZF9pbmxpbmVfZGlyKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTUwMy1cbmZzL2V4dDQvaW5saW5lLmM6MTUwNDpcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xuZnMvZXh0NC9pbmxpbmUuYy0xNTA1LVx0ZGlyX2J1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTE2MDk9dm9pZCAqZXh0NF9yZWFkX2lubGluZV9saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xNjE5LVx0cmV0ID0gLUVOT01FTTtcbmZzL2V4dDQvaW5saW5lLmM6MTYyMDpcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xuZnMvZXh0NC9pbmxpbmUuYy0xNjIxLVx0bGluayA9IGttYWxsb2MoaW5saW5lX3NpemUgJiM0MzsgMSwgR0ZQX05PRlMpO1xuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTY5MT1zdHJ1Y3QgYnVmZmVyX2hlYWQgKmV4dDRfZmluZF9pbmxpbmVfZW50cnkoc3RydWN0IGlub2RlICpkaXIsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xNzMxLVxuZnMvZXh0NC9pbmxpbmUuYzoxNzMyOlx0aWYgKGV4dDRfZ2V0X2lubGluZV9zaXplKGRpcikgPT0gRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSlcbmZzL2V4dDQvaW5saW5lLmMtMTczMy1cdFx0Z290byBvdXQ7XG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xNzM1LVx0aW5saW5lX3N0YXJ0ID0gZXh0NF9nZXRfaW5saW5lX3hhdHRyX3BvcyhkaXIsIFx1MDAyNmlzLmlsb2MpO1xuZnMvZXh0NC9pbmxpbmUuYzoxNzM2Olx0aW5saW5lX3NpemUgPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShkaXIpIC0gRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRTtcbmZzL2V4dDQvaW5saW5lLmMtMTczNy1cbi0tXG5mcy9leHQ0L2lubGluZS5jPTE3NTQ9aW50IGV4dDRfZGVsZXRlX2lubGluZV9lbnRyeShoYW5kbGVfdCAqaGFuZGxlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTc4MS1cdFx0aW5saW5lX3N0YXJ0ID0gZXh0NF9nZXRfaW5saW5lX3hhdHRyX3BvcyhkaXIsIFx1MDAyNmlsb2MpO1xuZnMvZXh0NC9pbmxpbmUuYzoxNzgyOlx0XHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGRpcikgLVxuZnMvZXh0NC9pbmxpbmUuYy0xNzgzLVx0XHRcdFx0RVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTE4MTI9ZXh0NF9nZXRfaW5saW5lX2VudHJ5KHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xODE5LVxuZnMvZXh0NC9pbmxpbmUuYzoxODIwOlx0QlVHX09OKG9mZnNldCBcdTAwM2UgZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpKTtcbmZzL2V4dDQvaW5saW5lLmMtMTgyMS1cbi0tXG5mcy9leHQ0L2lubGluZS5jLTE4MjctXHRcdG9mZnNldCAtPSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFO1xuZnMvZXh0NC9pbmxpbmUuYzoxODI4Olx0XHQqaW5saW5lX3NpemUgPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShpbm9kZSkgLVxuZnMvZXh0NC9pbmxpbmUuYy0xODI5LVx0XHRcdFx0RVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTE4Mzc9Ym9vbCBlbXB0eV9pbmxpbmVfZGlyKHN0cnVjdCBpbm9kZSAqZGlyLCBpbnQgKmhhc19pbmxpbmVfZGF0YSlcbi0tXG5mcy9leHQ0L2lubGluZS5jLTE4NjktXG5mcy9leHQ0L2lubGluZS5jOjE4NzA6XHRpbmxpbmVfbGVuID0gZXh0NF9nZXRfaW5saW5lX3NpemUoZGlyKTtcbmZzL2V4dDQvaW5saW5lLmMtMTg3MS1cdG9mZnNldCA9IEVYVDRfSU5MSU5FX0RPVERPVF9TSVpFO1xuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTkxMT1pbnQgZXh0NF9pbmxpbmVfZGF0YV9pb21hcChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaW9tYXAgKmlvbWFwKVxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTkzMi1cdGlvbWFwLVx1MDAzZW9mZnNldCA9IDA7XG5mcy9leHQ0L2lubGluZS5jOjE5MzM6XHRpb21hcC1cdTAwM2VsZW5ndGggPSBtaW5fdChsb2ZmX3QsIGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKSxcbmZzL2V4dDQvaW5saW5lLmMtMTkzNC1cdFx0XHQgICAgICBpX3NpemVfcmVhZChpbm9kZSkpO1xuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTk0Mz1pbnQgZXh0NF9pbmxpbmVfZGF0YV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xOTc4LVx0aV9zaXplID0gaW5vZGUtXHUwMDNlaV9zaXplO1xuZnMvZXh0NC9pbmxpbmUuYzoxOTc5Olx0aW5saW5lX3NpemUgPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShpbm9kZSk7XG5mcy9leHQ0L2lubGluZS5jLTE5ODAtXHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfZGlza3NpemUgPSBpX3NpemU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE3OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MzY1CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHJlYWRpbmcgdGhlIHByb3ZpZGVkIHRleHQ6CgoqKkRlbHZpbmcgaW50byBgZXh0NF9nZXRfaW5saW5lX3NpemVgKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgZXh0NF9nZXRfaW5saW5lX3NpemVgIGZ1bmN0aW9uLiBSaWdodCBvZmYgdGhlIGJhdCwgSSBrbm93IHRoaXMgaXMgcmVsYXRlZCB0byBob3cgdGhlIGV4dDQgZmlsZXN5c3RlbSBoYW5kbGVzIGlubGluZWQgZGF0YSwgd2hpY2ggaXMgYSBrZXkgb3B0aW1pemF0aW9uIGZvciBzbWFsbGVyIGZpbGVzLiBNeSBpbml0aWFsIHRob3VnaHQgcHJvY2VzcyBpcyBsaWtlbHkgdG8gcmV2b2x2ZSBhcm91bmQgdW5kZXJzdGFuZGluZyBob3cgaXQgY2FsY3VsYXRlcyB0aGUgbWF4aW11bSBzaXplIG9mIGRhdGEgdGhhdCBjYW4gYmUgZWZmaWNpZW50bHkgc3RvcmVkIGRpcmVjdGx5IHdpdGhpbiB0aGUgaW5vZGUgaXRzZWxmLCByYXRoZXIgdGhhbiBuZWVkaW5nIGFuIGV4dGVybmFsIGRhdGEgYmxvY2suIEkmIzM5O20gaW1tZWRpYXRlbHkgZ29pbmcgdG8gYmUgbG9va2luZyBmb3IgZmFjdG9ycyB0aGF0IGluZmx1ZW5jZSB0aGlzIHNpemU6IGlzIGl0IGJhc2VkIG9uIHRoZSBmaWxlc3lzdGVtJiMzOTtzIGJsb2NrIHNpemUsIHRoZSBzaXplIG9mIHRoZSBpbm9kZSBzdHJ1Y3R1cmUgaXRzZWxmLCBvciBwZXJoYXBzIHNvbWUgZGVmaW5lZCBjb25zdGFudHM/IEnigJltIGV4cGVjdGluZyB0byBzZWUgY2hlY2tzIGZvciB0aGluZ3MgbGlrZSB0aGUgYXZhaWxhYmxlIHNwYWNlIHdpdGhpbiB0aGUgaW5vZGUgZm9yIHRoZSBkYXRhLCBhbnkgb3ZlcmhlYWQgYXNzb2NpYXRlZCB3aXRoIGlubGluZSBtZXRhZGF0YSwgYW5kIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBhbGlnbm1lbnQgY29uc3RyYWludHMuIEkgYW50aWNpcGF0ZSB0aGF0IHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiBhIHNpemUsIHByZXN1bWFibHkgaW4gYnl0ZXMsIGluZGljYXRpbmcgdGhlIG1heGltdW0gYW1vdW50IG9mIGlubGluZSBkYXRhLiBJJiMzOTttIGFsc28ga2Vlbmx5IGludGVyZXN0ZWQgaW4gYW55IGVkZ2UgY2FzZXMgb3IgcG90ZW50aWFsIG9wdGltaXphdGlvbnMgdGhlIGZ1bmN0aW9uIGluY29ycG9yYXRlcywgYXMgdGhlc2UgYXJlIG9mdGVuIHRoZSBwb2ludHMgd2hlcmUgc3VidGxlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cyBjYW4gYmUgbWFkZS4gTXkgbWVudGFsIG1vZGVsIGlzIGFscmVhZHkgc3RhcnRpbmcgdG8gZm9ybXVsYXRlOiB0aGUgYWltIGhlcmUgaXMgdG8gbWluaW1pemUgZGlzayBJL08gZm9yIHNtYWxsIGZpbGVzLCBhbmQgdGhpcyBmdW5jdGlvbiBpcyB0aGUgZ2F0ZWtlZXBlciBmb3IgZGV0ZXJtaW5pbmcgaWYgYSBmaWxlIHF1YWxpZmllcyBmb3IgdGhpcyBvcHRpbWl6YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE3OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZnMvZXh0NC9pbmxpbmUuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI5LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgMjk6XHRzdGF0aWMgaW50IGV4dDRfZ2V0X2lubGluZV9zaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4gIDMwOlx0e1xuICAzMTpcdFx0aWYgKEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfb2ZmKVxuICAzMjpcdFx0XHRyZXR1cm4gRVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplO1xuICAzMzpcdFxuICAzNDpcdFx0cmV0dXJuIDA7XG4gIDM1Olx0fVxuICAzNjpcdFxuICAzNzpcdHN0YXRpYyBpbnQgZ2V0X21heF9pbmxpbmVfeGF0dHJfdmFsdWVfc2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuICAzODpcdFx0XHRcdFx0XHQgICBzdHJ1Y3QgZXh0NF9pbG9jICppbG9jKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODg1OQoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDc0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgUG90ZW50aWFsIEluZm9ybWF0aW9uIExlYWsgaW4gZXh0NCBJbmxpbmUgRGF0YSBIYW5kbGluZyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBTbywgYGV4dDRfZ2V0X2lubGluZV9zaXplYCBqdXN0IHJldHVybnMgYGlfaW5saW5lX3NpemVgLiBBbmQgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgaXMgY2FsbGVkLiBJdCBzdGFydHMgYnkgbWFraW5nIHN1cmUgdGhhdCB0aGUgcmVxdWVzdGVkIGxlbmd0aCwgYGxlbmAsIGRvZXNuJiMzOTt0IGV4Y2VlZCBgaV9pbmxpbmVfc2l6ZWAuIFNvIGZhciwgc28gZ29vZCDigJMgYGxlbmAgaXMgZXNzZW50aWFsbHkgZXF1YWwgdG8gYGlfaW5saW5lX3NpemVgLiBUaGVuLCB0aGUgY29kZSBncmFicyB0aGUgbWluaW11bSBvZiBgbGVuYCBhbmQgYEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkVgLCBsZXQmIzM5O3MgY2FsbCBpdCBgY3BfbGVuYCBhbmQgY29waWVzIHRoYXQgbXVjaCBmcm9tIGByYXdfaW5vZGUtJmd0O2lfYmxvY2tgLgoKVGhlIGNvZGUgaGFzIGEgcG90ZW50aWFsIGlzc3VlIGhlcmU6IGl0IGFkanVzdHMgdGhlIGFtb3VudCBvZiBieXRlcyB0aGF0IGFyZSBiZWluZyBjb3BpZWQsIGFuZCBhZGp1c3RzIGBsZW5gLCB0aGVuIGNoZWNrcyBpZiBgbGVuYCBpcyBncmVhdGVyIHRoYW4gYGVudHJ5LSZndDtlX3ZhbHVlX3NpemVgLiBJZiBzbywgaXQgd2lsbCBjb3B5IG9ubHkgYGVudHJ5LSZndDtlX3ZhbHVlX3NpemVgIGJ5dGVzLiBUaGVuLCBpdCByZXR1cm5zIHRoaXMgcG90ZW50aWFsbHkgbGVzcyB0aGFuIGV4cGVjdGVkIGNvcHkgbGVuZ3RoLgoKTm93LCBpZiBgY3BfbGVuYCAqaXNuJiMzOTt0KiBlcXVhbCB0byB0aGUgb3JpZ2luYWwgYGlubGluZV9zaXplYCAod2hpY2ggaXMgYGlfaW5saW5lX3NpemVgKSwgdGhhdCYjMzk7cyB3aGVyZSB0aGluZ3MgZ2V0IGludGVyZXN0aW5nLiBCZWNhdXNlLCBsYXRlciBvbiwgYG1lbWNweWAgaXMgdXNlZCB0byBjb3B5IGBpbmxpbmVfc2l6ZWAgYnl0ZXMgZnJvbSBgYnVmYCB0byBgZGF0YV9iaC0mZ3Q7Yl9kYXRhYC4gSWYgdGhlIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIGZ1bmN0aW9uIHJldHVybmVkIGEgdmFsdWUgc21hbGxlciB0aGFuIGBpbmxpbmVfc2l6ZWAsIGBidWZgIGlzbiYjMzk7dCBmdWxseSBpbml0aWFsaXplZC4gVGhlIGltcGxpY2F0aW9uIGlzIHRoYXQgaWYgYGlfaW5saW5lX3NpemVgIGlzIGdyZWF0ZXIgdGhhbiB0aGUgZGF0YSYjMzk7cyB0cnVlIHNpemUsIHdlIGNvdWxkIGVuZCB1cCBjb3B5aW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGZyb20gYGJ1ZmAgdG8gYGRhdGFfYmgtJmd0O2JfZGF0YWAuCgpUaGUgcHJvYmxlbSBpcywgdGhlIGVudGlyZSBgZGF0YV9iaGAgaXMgdGhlbiBtYXJrZWQgYXMgZGlydHkgYW5kIHdyaXR0ZW4gdG8gZGlzay4gQW5kIHRoYXQmIzM5O3MgdGhlIHJlZCBmbGFnISBUaGlzIGNvdWxkIHBvdGVudGlhbGx5IGxlYWQgdG8gYW4gaW5mb3JtYXRpb24gbGVhayDigJMgdW5pbml0aWFsaXplZCBoZWFwIG1lbW9yeSBlbmRpbmcgdXAgb24gdGhlIGJsb2NrIGRldmljZS4gV2FpdCwgaXNuJiMzOTt0IHRoYXQgcHJlY2lzZWx5IHRoZSBzb3J0IG9mIHRoaW5nIEtNU0FOIGlzIHN1cHBvc2VkIHRvIGNhdGNoPyBLTVNBTiBpcyB1c3VhbGx5IGdvb2QgYXQgZGV0ZWN0aW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzZSwgZXNwZWNpYWxseSBpZiBpdCYjMzk7cyBiZWluZyB1c2VkIGluIGNvbmRpdGlvbmFsIGJyYW5jaGVzIG9yIGJlaW5nIGNvcGllZCB0byB1c2Vyc3BhY2UuIEJ1dCBpdCBhbHNvIGhvb2tzIGJsb2NrIEkvTyEgU28gd3JpdGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSB0byBkaXNrICppcyogYW4gaW5mby1sZWFrIGFuZCBLTVNBTiBzaG91bGQgY2F0Y2ggaXQuCgpUaGUgY3JpdGljYWwgcXVlc3Rpb24gbm93IGJlY29tZXM6IGlzIHRoZXJlIGEgc2NlbmFyaW8gd2hlcmUgYGlfaW5saW5lX3NpemVgIGNhbiBiZSBsYXJnZXIgdGhhbiB0aGUgYWN0dWFsIGlubGluZSBkYXRhPyBJIG5lZWQgdG8gY2hlY2sgd2hlcmUgYGlfaW5saW5lX3NpemVgIGlzIGJlaW5nIHNldCB0byBkZXRlcm1pbmUgaWYgdGhpcyBjYW4gYWN0dWFsbHkgaGFwcGVuLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpX2lubGluZV9zaXplID0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXh0NC9pbmxpbmUuYz0xNDU9aW50IGV4dDRfZmluZF9pbmxpbmVfZGF0YV9ub2xvY2soc3RydWN0IGlub2RlICppbm9kZSlcbi0tXG5mcy9leHQ0L2lubGluZS5jLTE3NS1cdFx0XHRcdFx0KHZvaWQgKilleHQ0X3Jhd19pbm9kZShcdTAwMjZpcy5pbG9jKSk7XG5mcy9leHQ0L2lubGluZS5jOjE3NjpcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplID0gRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSAmIzQzO1xuZnMvZXh0NC9pbmxpbmUuYy0xNzctXHRcdFx0XHRsZTMyX3RvX2NwdShpcy5zLmhlcmUtXHUwMDNlZV92YWx1ZV9zaXplKTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTI2OD1zdGF0aWMgaW50IGV4dDRfY3JlYXRlX2lubGluZV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0zMjUtXHRcdFx0XHQgICAgICAodm9pZCAqKWV4dDRfcmF3X2lub2RlKFx1MDAyNmlzLmlsb2MpKTtcbmZzL2V4dDQvaW5saW5lLmM6MzI2Olx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplID0gbGVuICYjNDM7IEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkU7XG5mcy9leHQ0L2lubGluZS5jLTMyNy1cdGV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRTKTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTMzNz1zdGF0aWMgaW50IGV4dDRfdXBkYXRlX2lubGluZV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0zOTUtXHRcdFx0XHQgICAgICAodm9pZCAqKWV4dDRfcmF3X2lub2RlKFx1MDAyNmlzLmlsb2MpKTtcbmZzL2V4dDQvaW5saW5lLmM6Mzk2Olx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplID0gRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSAmIzQzO1xuZnMvZXh0NC9pbmxpbmUuYy0zOTctXHRcdFx0XHRsZTMyX3RvX2NwdShpcy5zLmhlcmUtXHUwMDNlZV92YWx1ZV9zaXplKTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTQzNz1zdGF0aWMgaW50IGV4dDRfZGVzdHJveV9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTQ5My1cdEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfb2ZmID0gMDtcbmZzL2V4dDQvaW5saW5lLmM6NDk0Olx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplID0gMDtcbmZzL2V4dDQvaW5saW5lLmMtNDk1LVx0ZXh0NF9jbGVhcl9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpO1xuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTA3ND1zdGF0aWMgaW50IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfZnNibGtfdCBibG9jayxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTExNjktXHRcdEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfb2ZmID0gMDtcbmZzL2V4dDQvaW5saW5lLmM6MTE3MDpcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplID0gMDtcbmZzL2V4dDQvaW5saW5lLmMtMTE3MS1cdFx0ZXh0NF9jbGVhcl9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpO1xuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTk0Mz1pbnQgZXh0NF9pbmxpbmVfZGF0YV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0yMDMwLVxuZnMvZXh0NC9pbmxpbmUuYzoyMDMxOlx0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfaW5saW5lX3NpemUgPSBpX3NpemUgXHUwMDNjXG5mcy9leHQ0L2lubGluZS5jLTIwMzItXHRcdFx0XHRcdEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUgP1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTAxOAoJCQkJCQkJb3V0cHV0OiAyMDYKCQkJCQkJCXRob3VnaHRzOiAyODAxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKktNU0FOIEFzc2Vzc21lbnQ6IElubGluZSBEYXRhIENvbnZlcnNpb24gRml4KioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGdvYWwgaGVyZSBpcyB0byBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSBpc3N1ZXMgdGhhdCBLTVNBTiAoS2VybmVsIE1lbW9yeSBTYW5pdGl6ZXIpIHNob3VsZCBiZSBjb25jZXJuZWQgd2l0aC4gVGhlIHBhdGNoIGlzIGFib3V0IHNhZmVseSBoYW5kbGluZyB0aGUgY29udmVyc2lvbiBvZiBleHQ0IGlubGluZSBkYXRhIHRvIGEgcmVndWxhciBibG9jaywgc3BlY2lmaWNhbGx5IGFkZHJlc3NpbmcgYSBkYXRhIGxvc3Mgc2NlbmFyaW8uCgpJbml0aWFsbHksIEkgc2VlIHRoYXQgYEVYVDRfSShpbm9kZSktJmd0O2lfaW5saW5lX3NpemVgIGlzIGNhbGN1bGF0ZWQuIEl0JiMzOTtzIGJ1aWx0IGZyb20gYEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkVgIGFuZCB0aGUgYGVfdmFsdWVfc2l6ZWAgb2YgYW4geGF0dHIgZW50cnkuIEkgbWFkZSBzdXJlIHRvIG5vdGUgdGhhdCBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCBpcyBhbHdheXMgZGVzaWduZWQgdG8gcmVhZCBleGFjdGx5IHRoaXMgc2l6ZS4gQ29ycnVwdGVkIHhhdHRyIGVudHJpZXMgYXJlIGhhbmRsZWQsIGFuZCBhIGBtaW5fdGAgaXMgdXNlZCB0byBlbnN1cmUgdGhlIHJpZ2h0IHNpemUgaXMgcmVhZC4KClRoZSBjb3JlIG9mIHRoZSBmaXggaXMgdG8gYXZvaWQgZGVzdHJveWluZyB0aGUgaW5saW5lIGRhdGEgYW5kIHRoZW4sIGlmIGFsbG9jYXRpb24gZmFpbHMsIGhhdmluZyB0byAqcmUqLXJlc3RvcmUgaXQsIHdoaWNoIGNvdWxkIGZhaWwuICBUaGUgcGF0Y2ggbm93OgoKMS4gIEFsbG9jYXRlcyBhICpuZXcqIGJsb2NrLgoyLiAgSW5pdGlhbGl6ZXMgdGhhdCBuZXcgYmxvY2sgKHplcm9lcyBpdCBvdXQpLgozLiAgQ29waWVzIHRoZSBleGlzdGluZyBpbmxpbmUgZGF0YSBpbnRvIHRoZSAqbmV3KiBibG9jay4KNC4gIEF0b21pY2FsbHkgc3dpdGNoZXMgdGhlIGlub2RlIHRvIHVzZSB0aGUgKm5ldyogYmxvY2suCgpFc3NlbnRpYWxseSwgdGhlcmUgaXMgbm8gbW9yZSDigJxkZXN0cm95IGFuZCBwb3RlbnRpYWxseSBmYWlsIHRvIHJlc3RvcmXigJ0uIFRoaXMgcmVkdWNlcyB0aGUgd2luZG93IG9mIHBvc3NpYmxlIGRhdGEgbG9zcy4gVGhlIG9sZCBjb2RlIGhhZCB0byBjcmVhdGUgdGhlIGlubGluZSBkYXRhLCBhbmQgdGhlbiBpdCB3b3VsZCByZWFkIGlubGluZSBkYXRhIHdoaWNoIGhhZCBpc3N1ZXMgd2hlcmUgaXQgY291bGQgYmUgY29ycnVwdGVkLgoKTXkgcHJpbWFyeSBjb25jZXJuIGlzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBMZXQmIzM5O3MgbWFrZSBzdXJlIHRoYXQgbm90aGluZyBpcyBiZWluZyByZWFkIGZyb20gdW5pbml0aWFsaXplZCBtZW1vcnkgbG9jYXRpb25zIG9yIGV4cG9zZWQgYXMgc3VjaC4KCjEuICAqKmBpbm9kZV9idWZgKio6ICBUaGlzIGlzIGFsbG9jYXRlZCB1c2luZyBga21hbGxvYyhpbm9kZV9zaXplLCBHRlBfTk9GUylgLiAgYGlub2RlX3NpemVgIGlzIGNhbGN1bGF0ZWQgZnJvbSBgRVhUNF9JTk9ERV9TSVpFKGlub2RlLSZndDtpX3NiKWAuICBUaGUgcGF0Y2ggYG1lbWNweWAgKmNvcGllcyogdGhlIGNvbnRlbnRzIG9mIHRoZSByYXcgaW5vZGUgZGF0YSBpbnRvIGBpbm9kZV9idWZgLiAgU28gYGlub2RlX2J1ZmAgYmVjb21lcyBmdWxseSBpbml0aWFsaXplZC4gIFRoZSBjaGVjayBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvcHkgKmludG8qIGBpbm9kZV9idWZgIGlzIHNhZmUuCjIuICAqKmBkYXRhX2JoLSZndDtiX2RhdGFgOioqICBUaGlzIGJ1ZmZlciBoZWFkIGlzIGFsbG9jYXRlZCwgYW5kIHRoZW4gaXRzIGRhdGEgaXMgZXhwbGljaXRseSB6ZXJvZWQgd2l0aCBgbWVtc2V0KGRhdGFfYmgtJmd0O2JfZGF0YSwgMCwgaW5vZGUtJmd0O2lfc2ItJmd0O3NfYmxvY2tzaXplKTtgLiAgVGhpcyBlbnN1cmVzIGV2ZXJ5dGhpbmcgd3JpdHRlbiBpbnRvIHRoaXMgZGF0YSBibG9jayBpcyBpbml0aWFsaXplZC4KMy4gICoqYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYDoqKiBJIHRoZW4gY2hlY2tlZCB0aGUgY29kZSBmb3IgemVyb2luZyBhbmQgaW5pdGlhbGl6aW5nIGluIHRoZSBgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2tgLiBJbiB0aGUgbmV3IGNvZGUsIGBtZW1zZXQoKHZvaWQgKilyYXdfaW5vZGUtJmd0O2lfYmxvY2ssIDAsIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpO2AgZXhwbGljaXRseSB6ZXJvZXMgdGhlIGlubGluZSBkYXRhIHNwYWNlLiBUaGVuLCBpZiBleHRlbnRzIGFyZSBlbmFibGVkLCBgZXh0NF9leHRfdHJlZV9pbml0YCBpbml0aWFsaXplcyB0aGUgZXh0ZW50IHRyZWUgcm9vdC4gTGF0ZXIgY29kZSBpbml0aWFsaXplcyBhbmQgaW5zZXJ0cyBleHRlbnRzLiBJZiBhbGwgb2YgdGhpcyBmYWlscywgdGhlIG9yaWdpbmFsIGRhdGEgaXMgcmVzdG9yZWQgZnJvbSB0aGUgZnVsbHkgaW5pdGlhbGl6ZWQgYGlub2RlX2J1ZmAuCjQuICAqKktNU0FOIFJ1bGVzKio6ICBJIHdlbnQgdGhyb3VnaCB0aGUgc3RhbmRhcmQgS01TQU4gcnVsZSBzZXQ6CgogICAgKiAgIE5vIGtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSB3aXRoIHBvc3NpYmx5IHVuaW5pdGlhbGl6ZWQgZmllbGRzIChubyB1c2VyIHNwYWNlIGludGVyYWN0aW9uKS4KICAgICogICBObyBjb25kaXRpb25hbCBsb2dpYy9icmFuY2hpbmcgdGhhdCByZWxpZXMgb24gcG9zc2libHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuCiAgICAqICAgTm8gYWxsb2NhdGlvbiBvZiBjb21wbGV4IHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMgY291bGQgYmUgcmVhZCBsYXRlciAoZXZlcnl0aGluZyBpcyBpbml0aWFsaXplZCB2aWEgYG1lbWNweWAgb3IgYG1lbXNldGApLgogICAgKiAgIE5vIGJvdW5kcyBjaGVja3Mgb3IgbGVuZ3RocyB0aGF0IHdvdWxkIGFsbG93IGFjY2Vzc2luZyB1bmluaXRpYWxpemVkIGJ5dGVzIChub3QgcHJlc2VudCkuCgogICAgVGhlcmVmb3JlLCBLTVNBTiBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeSBoZXJlLgoKNS4gICoqRGF0YSBTdHJ1Y3R1cmVzIENoZWNrKio6IEkgbWFkZSBzdXJlIHRoYXQgdGhlcmUgd2VyZSBubyBpc3N1ZXMgd2l0aCBgZXh0NF9tYl9uZXdfYmxvY2tzYCByZXR1cm5pbmcgdW5pbml0aWFsaXplZCBtZW1vcnkgb3IgYW55IGlzc3VlcyB3aXRoIGBleHQ0X3hhdHRyX2lib2R5X2ZpbmRgIG9yIGBleHQ0X3hhdHRyX2luZm9gLiBUaGlzIHdhcyBkb25lIGJ5IGNoZWNraW5nIHdoZXJlIGBhcmAsIGBpc2AsIGBpYCwgYW5kIGBkYXRhX2JoYCB3ZXJlIGZ1bGx5IGluaXRpYWxpemVkLgoKVGhlIHBhdGNoIGlzIGEgKmxvZ2ljYWwqIGZpeDsgaXQgYWRkcmVzc2VzIGEgcmFjZSBjb25kaXRpb24uIEl0ICpkb2VzKiBub3QgaW50cm9kdWNlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzc3Vlcy4gIFRoZSBuZXcgYmxvY2sgYWxsb2NhdGlvbiBpcyBpbml0aWFsaXplZCwgYW5kIGV4aXN0aW5nIGRhdGEgaXMgY29waWVkLiAgQW55IG1lbW9yeSBjb3JydXB0aW9uIHdvdWxkIGxpa2VseSBiZSBjYXVnaHQgYnkgS0FTQU4gKEtlcm5lbCBBZGRyZXNzIFNhbml0aXplcikuIE5vIEtNU0FOLXNwZWNpZmljIGNoZWNrcyBhcmUgbmVjZXNzYXJ5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQwLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZWZhY3RvcnMgdGhlIGNvbnZlcnNpb24gb2YgZXh0NCBpbmxpbmUgZGF0YSB0byBhIGRlZGljYXRlZCBibG9jayB0byBwcmV2ZW50IGRhdGEgbG9zcyBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuIEl0IGFsbG9jYXRlcyBhIG5ldyBibG9jaywgemVyb2VzIGl0LCBjb3BpZXMgdGhlIGlubGluZSBkYXRhLCBhbmQgdGhlbiB1cGRhdGVzIHRoZSBpbm9kZS4gQWxsIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkgKGBpbm9kZV9idWZgLCBgYnVmYCwgYGRhdGFfYmgtXHUwMDNlYl9kYXRhYCkgaXMgZnVsbHkgaW5pdGlhbGl6ZWQgdmlhIGBtZW1jcHlgIGZyb20gZXhpc3RpbmcgaW5pdGlhbGl6ZWQgZGF0YSBvciBgbWVtc2V0YCB0byB6ZXJvLiBTdGFjayB2YXJpYWJsZXMgKGBhcmAsIGBpc2AsIGBpYCwgYG5ld2V4YCkgYXJlIGZ1bGx5IHplcm8taW5pdGlhbGl6ZWQgZWl0aGVyIHZpYSBgbWVtc2V0YCBvciBicmFjZS1lbmNsb3NlZCBpbml0aWFsaXplcnMuIFRoZXJlIGlzIG5vIGV4cG9zdXJlIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHRvIHVzZXIgc3BhY2Ugb3IgZGlzaywgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzIHVzZWQgaW4gY29udHJvbCBmbG93LiBBbnkgcG90ZW50aWFsIG1lbW9yeSBlcnJvcnMgKGxpa2Ugb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBvciB1c2UtYWZ0ZXItZnJlZSkgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QganVzdGlmaWVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIHRoZSBjb252ZXJzaW9uIG9mIGV4dDQgaW5saW5lIGRhdGEgdG8gYSBkZWRpY2F0ZWQgYmxvY2sgdG8gcHJldmVudCBkYXRhIGxvc3Mgb24gYWxsb2NhdGlvbiBmYWlsdXJlLiBJdCBhbGxvY2F0ZXMgYSBuZXcgYmxvY2ssIHplcm9lcyBpdCwgY29waWVzIHRoZSBpbmxpbmUgZGF0YSwgYW5kIHRoZW4gdXBkYXRlcyB0aGUgaW5vZGUuIEFsbCBuZXdseSBhbGxvY2F0ZWQgbWVtb3J5IChgaW5vZGVfYnVmYCwgYGJ1ZmAsIGBkYXRhX2JoLVx1MDAzZWJfZGF0YWApIGlzIGZ1bGx5IGluaXRpYWxpemVkIHZpYSBgbWVtY3B5YCBmcm9tIGV4aXN0aW5nIGluaXRpYWxpemVkIGRhdGEgb3IgYG1lbXNldGAgdG8gemVyby4gU3RhY2sgdmFyaWFibGVzIChgYXJgLCBgaXNgLCBgaWAsIGBuZXdleGApIGFyZSBmdWxseSB6ZXJvLWluaXRpYWxpemVkIGVpdGhlciB2aWEgYG1lbXNldGAgb3IgYnJhY2UtZW5jbG9zZWQgaW5pdGlhbGl6ZXJzLiBUaGVyZSBpcyBubyBleHBvc3VyZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB0byB1c2VyIHNwYWNlIG9yIGRpc2ssIGFuZCBubyB1bmluaXRpYWxpemVkIG1lbW9yeSBpcyB1c2VkIGluIGNvbnRyb2wgZmxvdy4gQW55IHBvdGVudGlhbCBtZW1vcnkgZXJyb3JzIChsaWtlIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMgb3IgdXNlLWFmdGVyLWZyZWUpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IGp1c3RpZmllZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTY6NTE6MTAuMDY2MzkxNTg3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcwNDk0OTEyNzIzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhXCIsXG4gICAgXCJleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5XCJcbiAgXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgdGhlIGNvbnZlcnNpb24gb2YgZXh0NCBpbmxpbmUgZGF0YSB0byBhIGRlZGljYXRlZCBibG9jayB0byBwcmV2ZW50IGRhdGEgbG9zcyBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuIEl0IGFsbG9jYXRlcyBhIG5ldyBibG9jaywgemVyb2VzIGl0LCBjb3BpZXMgdGhlIGlubGluZSBkYXRhLCBhbmQgdGhlbiB1cGRhdGVzIHRoZSBpbm9kZS4gQWxsIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkgKGBpbm9kZV9idWZgLCBgYnVmYCwgYGRhdGFfYmgtXFx1MDAzZWJfZGF0YWApIGlzIGZ1bGx5IGluaXRpYWxpemVkIHZpYSBgbWVtY3B5YCBmcm9tIGV4aXN0aW5nIGluaXRpYWxpemVkIGRhdGEgb3IgYG1lbXNldGAgdG8gemVyby4gU3RhY2sgdmFyaWFibGVzIChgYXJgLCBgaXNgLCBgaWAsIGBuZXdleGApIGFyZSBmdWxseSB6ZXJvLWluaXRpYWxpemVkIGVpdGhlciB2aWEgYG1lbXNldGAgb3IgYnJhY2UtZW5jbG9zZWQgaW5pdGlhbGl6ZXJzLiBUaGVyZSBpcyBubyBleHBvc3VyZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB0byB1c2VyIHNwYWNlIG9yIGRpc2ssIGFuZCBubyB1bmluaXRpYWxpemVkIG1lbW9yeSBpcyB1c2VkIGluIGNvbnRyb2wgZmxvdy4gQW55IHBvdGVudGlhbCBtZW1vcnkgZXJyb3JzIChsaWtlIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMgb3IgdXNlLWFmdGVyLWZyZWUpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IGp1c3RpZmllZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gaG93IGV4dDQgY29udmVydHMgaW5saW5lIGRhdGEgdG8gYmxvY2tzLCByZXBsYWNpbmcgdGhlIHVzZSBvZiBgZXh0NF9tYXBfYmxvY2tzYCB3aXRoIGRpcmVjdCBibG9jayBhbGxvY2F0aW9uIHZpYSBgZXh0NF9tYl9uZXdfYmxvY2tzYCBhbmQgaW50cm9kdWNpbmcgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gVGhpcyBtb2RpZmllcyBjb3JlIHJlYWNoYWJsZSBsb2dpYyBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCB3aGljaCBpcyB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNjo1MToxMC4wNjYzOTkyNjdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyODM2NTQ0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDEyNGM3ZWE2Y2RkMDJhYzRlMGFhNjEwNWVkMDU1MjE0ZGYxODE1OWFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBBdWcgMjIgMTY6NTE6MDkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxpbmUuYyBiL2ZzL2V4dDQvaW5saW5lLmNcXG5pbmRleCA4MDQ1ZTRmZjI3MGM3Li41MDcxMDZjNzJlODJmIDEwMDY0NFxcbi0tLSBhL2ZzL2V4dDQvaW5saW5lLmNcXG4rKysgYi9mcy9leHQ0L2lubGluZS5jXFxuQEAgLTE0LDYgKzE0LDcgQEBcXG4gI2luY2x1ZGUgXFxcImV4dDQuaFxcXCJcXG4gI2luY2x1ZGUgXFxcInhhdHRyLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJ0cnVuY2F0ZS5oXFxcIlxcbisjaW5jbHVkZSBcXFwiZXh0NF9leHRlbnRzLmhcXFwiXFxuIFxcbiAjZGVmaW5lIEVYVDRfWEFUVFJfU1lTVEVNX0RBVEFcXHRcXFwiZGF0YVxcXCJcXG4gI2RlZmluZSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFXFx0KChzaXplb2YoX19sZTMyKSAqIEVYVDRfTl9CTE9DS1MpKVxcbkBAIC0xMDcwLDIxICsxMDcxLDExNSBAQCBzdGF0aWMgaW50IGV4dDRfdXBkYXRlX2lubGluZV9kaXIoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICpkaXIsXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCBleHQ0X3Jlc3RvcmVfaW5saW5lX2RhdGEoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSxcXG4tXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgZXh0NF9pbG9jICppbG9jLFxcbi1cXHRcXHRcXHRcXHQgICAgIHZvaWQgKmJ1ZiwgaW50IGlubGluZV9zaXplKVxcbitzdGF0aWMgaW50IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfZnNibGtfdCBibG9jayxcXG4rXFx0XFx0XFx0XFx0XFx0dW5zaWduZWQgaW50IGxlbiwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaClcXG4ge1xcbi1cXHRpbnQgcmV0O1xcbitcXHRzdHJ1Y3QgZXh0NF9pbm9kZV9pbmZvICplaSA9IEVYVDRfSShpbm9kZSk7XFxuK1xcdHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmQgaXMgPSB7XFxuK1xcdFxcdC5zID0geyAubm90X2ZvdW5kID0gMCwgfSxcXG4rXFx0fTtcXG4rXFx0c3RydWN0IGV4dDRfeGF0dHJfaW5mbyBpID0ge1xcbitcXHRcXHQubmFtZV9pbmRleCA9IEVYVDRfWEFUVFJfSU5ERVhfU1lTVEVNLFxcbitcXHRcXHQubmFtZSA9IEVYVDRfWEFUVFJfU1lTVEVNX0RBVEEsXFxuK1xcdFxcdC52YWx1ZSA9IE5VTEwsXFxuK1xcdFxcdC52YWx1ZV9sZW4gPSAwLFxcbitcXHR9O1xcbitcXHRpbnQgZXJyb3I7XFxuK1xcdGludCBpbm9kZV9zaXplO1xcbitcXHR2b2lkICppbm9kZV9idWYgPSBOVUxMO1xcbitcXHRzdHJ1Y3QgZXh0NF9pbm9kZSAqcmF3X2lub2RlO1xcbiBcXG4tXFx0cmV0ID0gZXh0NF9jcmVhdGVfaW5saW5lX2RhdGEoaGFuZGxlLCBpbm9kZSwgaW5saW5lX3NpemUpO1xcbi1cXHRpZiAocmV0KSB7XFxuLVxcdFxcdGV4dDRfbXNnKGlub2RlLVxcdTAwM2VpX3NiLCBLRVJOX0VNRVJHLFxcbi1cXHRcXHRcXHRcXFwiZXJyb3IgcmVzdG9yaW5nIGlubGluZV9kYXRhIGZvciBpbm9kZSAtLSBwb3RlbnRpYWwgZGF0YSBsb3NzISAoaW5vZGUgJWxsdSwgZXJyb3IgJWQpXFxcIixcXG4tXFx0XFx0XFx0aW5vZGUtXFx1MDAzZWlfaW5vLCByZXQpO1xcbi1cXHRcXHRyZXR1cm47XFxuK1xcdGlub2RlX3NpemUgPSBFWFQ0X0lOT0RFX1NJWkUoaW5vZGUtXFx1MDAzZWlfc2IpO1xcbitcXHRpbm9kZV9idWYgPSBrbWFsbG9jKGlub2RlX3NpemUsIEdGUF9OT0ZTKTtcXG4rXFx0aWYgKCFpbm9kZV9idWYpIHtcXG4rXFx0XFx0ZXJyb3IgPSAtRU5PTUVNO1xcbitcXHRcXHRkb3duX3dyaXRlKFxcdTAwMjZlaS1cXHUwMDNlaV9kYXRhX3NlbSk7XFxuK1xcdFxcdGV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7XFxuK1xcdFxcdGV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTtcXG4rXFx0XFx0dXBfd3JpdGUoXFx1MDAyNmVpLVxcdTAwM2VpX2RhdGFfc2VtKTtcXG4rXFx0XFx0cmV0dXJuIGVycm9yO1xcbiBcXHR9XFxuLVxcdGV4dDRfd3JpdGVfaW5saW5lX2RhdGEoaW5vZGUsIGlsb2MsIGJ1ZiwgMCwgaW5saW5lX3NpemUpO1xcbi1cXHRleHQ0X3NldF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpO1xcbitcXHRkb3duX3dyaXRlKFxcdTAwMjZlaS1cXHUwMDNlaV9kYXRhX3NlbSk7XFxuK1xcdGVycm9yID0gZXh0NF9nZXRfaW5vZGVfbG9jKGlub2RlLCBcXHUwMDI2aXMuaWxvYyk7XFxuK1xcdGlmIChlcnJvcikge1xcbitcXHRcXHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xcbitcXHRcXHRleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7XFxuK1xcdFxcdHVwX3dyaXRlKFxcdTAwMjZlaS1cXHUwMDNlaV9kYXRhX3NlbSk7XFxuK1xcdFxcdGtmcmVlKGlub2RlX2J1Zik7XFxuK1xcdFxcdHJldHVybiBlcnJvcjtcXG4rXFx0fVxcbitcXHRyYXdfaW5vZGUgPSBleHQ0X3Jhd19pbm9kZShcXHUwMDI2aXMuaWxvYyk7XFxuK1xcdEJVRkZFUl9UUkFDRShpcy5pbG9jLmJoLCBcXFwiZ2V0X3dyaXRlX2FjY2Vzc1xcXCIpO1xcbitcXHRlcnJvciA9IGV4dDRfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKGhhbmRsZSwgaW5vZGUtXFx1MDAzZWlfc2IsIGlzLmlsb2MuYmgsIEVYVDRfSlRSX05PTkUpO1xcbitcXHRpZiAoZXJyb3IpIHtcXG4rXFx0XFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcXG4rXFx0XFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpO1xcbitcXHRcXHRnb3RvIG91dDtcXG4rXFx0fVxcbitcXHRtZW1jcHkoaW5vZGVfYnVmLCAodm9pZCAqKXJhd19pbm9kZSwgaW5vZGVfc2l6ZSk7XFxuK1xcdG1lbXNldCgodm9pZCAqKXJhd19pbm9kZS1cXHUwMDNlaV9ibG9jaywgMCwgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSk7XFxuK1xcdG1lbXNldChlaS1cXHUwMDNlaV9kYXRhLCAwLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTtcXG4rXFx0aWYgKGV4dDRfaGFzX2ZlYXR1cmVfZXh0ZW50cyhpbm9kZS1cXHUwMDNlaV9zYikgXFx1MDAyNlxcdTAwMjZcXG4rXFx0XFx0KFNfSVNESVIoaW5vZGUtXFx1MDAzZWlfbW9kZSkgfHwgU19JU1JFRyhpbm9kZS1cXHUwMDNlaV9tb2RlKSB8fCBTX0lTTE5LKGlub2RlLVxcdTAwM2VpX21vZGUpKSkge1xcbitcXHRcXHRleHQ0X3NldF9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0VYVEVOVFMpO1xcbitcXHRcXHRleHQ0X2V4dF90cmVlX2luaXQoaGFuZGxlLCBpbm9kZSk7XFxuK1xcdFxcdHN0cnVjdCBleHQ0X2V4dF9wYXRoICpwYXRoID0gZXh0NF9maW5kX2V4dGVudChpbm9kZSwgMCwgTlVMTCwgMCk7XFxuK1xcbitcXHRcXHRpZiAoSVNfRVJSKHBhdGgpKSB7XFxuK1xcdFxcdFxcdGVycm9yID0gUFRSX0VSUihwYXRoKTtcXG4rXFx0XFx0XFx0Z290byByZWNvdmVyeTtcXG4rXFx0XFx0fVxcbitcXHRcXHRzdHJ1Y3QgZXh0NF9leHRlbnQgbmV3ZXg7XFxuK1xcbitcXHRcXHRuZXdleC5lZV9ibG9jayA9IGNwdV90b19sZTMyKDApO1xcbitcXHRcXHRuZXdleC5lZV9sZW4gPSBjcHVfdG9fbGUxNigxKTtcXG4rXFx0XFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFxcdTAwMjZuZXdleCwgYmxvY2spO1xcbitcXHRcXHRwYXRoID0gZXh0NF9leHRfaW5zZXJ0X2V4dGVudChoYW5kbGUsIGlub2RlLCBwYXRoLCBcXHUwMDI2bmV3ZXgsIDApO1xcbitcXHRcXHRpZiAoSVNfRVJSKHBhdGgpKSB7XFxuK1xcdFxcdFxcdGVycm9yID0gUFRSX0VSUihwYXRoKTtcXG4rXFx0XFx0XFx0aWYgKGVycm9yID09IC1FRFFVT1QgfHwgZXJyb3IgPT0gLUVOT1NQQykge1xcbitcXHRcXHRcXHRcXHRnb3RvIHJlY292ZXJ5O1xcbitcXHRcXHRcXHR9IGVsc2Uge1xcbitcXHRcXHRcXHRcXHRleHQ0X2ZvcmdldChoYW5kbGUsIDAsIGlub2RlLCBiaCwgYmxvY2spO1xcbitcXHRcXHRcXHRcXHRnb3RvIG5vZnJlZTtcXG4rXFx0XFx0XFx0fVxcbitcXHRcXHR9IGVsc2Uge1xcbitcXHRcXHRcXHRleHQ0X2ZyZWVfZXh0X3BhdGgocGF0aCk7XFxuK1xcdFxcdH1cXG4rXFx0fSBlbHNlIHtcXG4rXFx0XFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9kYXRhWzBdID0gY3B1X3RvX2xlMzIoYmxvY2spO1xcbitcXHR9XFxuK1xcdGVycm9yID0gZXh0NF94YXR0cl9pYm9keV9maW5kKGlub2RlLCBcXHUwMDI2aSwgXFx1MDAyNmlzKTtcXG4rXFx0aWYgKGVycm9yKVxcbitcXHRcXHRnb3RvIHJlY292ZXJ5O1xcbitcXHRpZiAoIWlzLnMubm90X2ZvdW5kKVxcbitcXHRcXHRlcnJvciA9IGV4dDRfeGF0dHJfaWJvZHlfc2V0KGhhbmRsZSwgaW5vZGUsIFxcdTAwMjZpLCBcXHUwMDI2aXMpO1xcbityZWNvdmVyeTpcXG4rXFx0aWYgKGVycm9yKSB7XFxuK1xcdFxcdGV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7XFxuK1xcdFxcdGV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTtcXG4rbm9mcmVlOlxcbitcXHRcXHRtZW1jcHkoKHZvaWQgKilyYXdfaW5vZGUsIGlub2RlX2J1ZiwgaW5vZGVfc2l6ZSk7XFxuK1xcdFxcdG1lbWNweShlaS1cXHUwMDNlaV9kYXRhLCByYXdfaW5vZGUtXFx1MDAzZWlfYmxvY2ssIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpO1xcbitcXHRcXHRleHQ0X2NsZWFyX2lub2RlX2ZsYWcoaW5vZGUsIEVYVDRfSU5PREVfRVhURU5UUyk7XFxuK1xcdH0gZWxzZSB7XFxuK1xcdFxcdGV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9JTkxJTkVfREFUQSk7XFxuK1xcdFxcdGdldF9iaChpcy5pbG9jLmJoKTtcXG4rXFx0XFx0ZXJyb3IgPSBleHQ0X21hcmtfaWxvY19kaXJ0eShoYW5kbGUsIGlub2RlLCBcXHUwMDI2aXMuaWxvYyk7XFxuK1xcdFxcdEVYVDRfSShpbm9kZSktXFx1MDAzZWlfaW5saW5lX29mZiA9IDA7XFxuK1xcdFxcdEVYVDRfSShpbm9kZSktXFx1MDAzZWlfaW5saW5lX3NpemUgPSAwO1xcbitcXHRcXHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XFxuK1xcdFxcdGlmIChTX0lTRElSKGlub2RlLVxcdTAwM2VpX21vZGUpKSB7XFxuK1xcdFxcdFxcdGlfc2l6ZV93cml0ZShpbm9kZSwgaW5vZGUtXFx1MDAzZWlfc2ItXFx1MDAzZXNfYmxvY2tzaXplKTtcXG4rXFx0XFx0XFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9kaXNrc2l6ZSA9IGlub2RlLVxcdTAwM2VpX3NiLVxcdTAwM2VzX2Jsb2Nrc2l6ZTtcXG4rXFx0XFx0fVxcbitcXHRcXHRicmVsc2UoYmgpO1xcbitcXHR9XFxuK291dDpcXG4rXFx0YnJlbHNlKGlzLmlsb2MuYmgpO1xcbitcXHR1cF93cml0ZShcXHUwMDI2ZWktXFx1MDAzZWlfZGF0YV9zZW0pO1xcbitcXHRrZnJlZShpbm9kZV9idWYpO1xcbitcXHRyZXR1cm4gZXJyb3I7XFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbkBAIC0xMDk0LDggKzExODksMTEgQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXFxuIFxcdGludCBlcnJvcjtcXG4gXFx0dm9pZCAqYnVmID0gTlVMTDtcXG4gXFx0c3RydWN0IGJ1ZmZlcl9oZWFkICpkYXRhX2JoID0gTlVMTDtcXG4tXFx0c3RydWN0IGV4dDRfbWFwX2Jsb2NrcyBtYXA7XFxuIFxcdGludCBpbmxpbmVfc2l6ZTtcXG4rXFx0ZXh0NF9mc2Jsa190IG5ld2Jsb2NrID0gMDtcXG4rXFx0c3RydWN0IGV4dDRfYWxsb2NhdGlvbl9yZXF1ZXN0IGFyO1xcbitcXHRzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKGlub2RlLVxcdTAwM2VpX3NiKTtcXG4rXFx0dW5zaWduZWQgaW50IGFsbG9jYXRlZF9ibG9jaztcXG4gXFxuIFxcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xcbiBcXHRidWYgPSBrbWFsbG9jKGlubGluZV9zaXplLCBHRlBfTk9GUyk7XFxuQEAgLTExMjAsMjUgKzEyMTgsMjIgQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXFxuIFxcdFxcdFxcdGdvdG8gb3V0O1xcbiBcXHR9XFxuIFxcbi1cXHRlcnJvciA9IGV4dDRfZGVzdHJveV9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlLCBpbm9kZSk7XFxuLVxcdGlmIChlcnJvcilcXG4tXFx0XFx0Z290byBvdXQ7XFxuLVxcbi1cXHRtYXAubV9sYmxrID0gMDtcXG4tXFx0bWFwLm1fbGVuID0gMTtcXG4tXFx0bWFwLm1fZmxhZ3MgPSAwO1xcbi1cXHRlcnJvciA9IGV4dDRfbWFwX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBcXHUwMDI2bWFwLCBFWFQ0X0dFVF9CTE9DS1NfQ1JFQVRFKTtcXG4rXFx0bWVtc2V0KFxcdTAwMjZhciwgMCwgc2l6ZW9mKGFyKSk7XFxuK1xcdGFyLmlub2RlID0gaW5vZGU7XFxuK1xcdGFyLmxvZ2ljYWwgPSAwO1xcbitcXHRhci5sZW4gPSAxO1xcbitcXHRpZiAoU19JU1JFRyhpbm9kZS1cXHUwMDNlaV9tb2RlKSlcXG4rXFx0XFx0YXIuZmxhZ3MgPSBFWFQ0X01CX0hJTlRfREFUQTtcXG4rXFx0ZWxzZVxcbitcXHRcXHRhci5mbGFncyA9IDA7XFxuK1xcdG5ld2Jsb2NrID0gZXh0NF9tYl9uZXdfYmxvY2tzKGhhbmRsZSwgXFx1MDAyNmFyLCBcXHUwMDI2ZXJyb3IpO1xcbiBcXHRpZiAoZXJyb3IgXFx1MDAzYyAwKVxcbi1cXHRcXHRnb3RvIG91dF9yZXN0b3JlO1xcbi1cXHRpZiAoIShtYXAubV9mbGFncyBcXHUwMDI2IEVYVDRfTUFQX01BUFBFRCkpIHtcXG4tXFx0XFx0ZXJyb3IgPSAtRUlPO1xcbi1cXHRcXHRnb3RvIG91dF9yZXN0b3JlO1xcbi1cXHR9XFxuLVxcbi1cXHRkYXRhX2JoID0gc2JfZ2V0YmxrKGlub2RlLVxcdTAwM2VpX3NiLCBtYXAubV9wYmxrKTtcXG4rXFx0XFx0Z290byBvdXQ7XFxuK1xcdGFsbG9jYXRlZF9ibG9jayA9IEVYVDRfQzJCKHNiaSwgYXIubGVuKTtcXG4rXFx0ZGF0YV9iaCA9IHNiX2dldGJsayhpbm9kZS1cXHUwMDNlaV9zYiwgbmV3YmxvY2spO1xcbiBcXHRpZiAoIWRhdGFfYmgpIHtcXG4gXFx0XFx0ZXJyb3IgPSAtRU5PTUVNO1xcbi1cXHRcXHRnb3RvIG91dF9yZXN0b3JlO1xcbitcXHRcXHRnb3RvIG91dF9iaDtcXG4gXFx0fVxcbiBcXG4gXFx0bG9ja19idWZmZXIoZGF0YV9iaCk7XFxuQEAgLTExNDcsNyArMTI0Miw3IEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbiBcXHRpZiAoZXJyb3IpIHtcXG4gXFx0XFx0dW5sb2NrX2J1ZmZlcihkYXRhX2JoKTtcXG4gXFx0XFx0ZXJyb3IgPSAtRUlPO1xcbi1cXHRcXHRnb3RvIG91dF9yZXN0b3JlO1xcbitcXHRcXHRnb3RvIG91dF9iaDtcXG4gXFx0fVxcbiBcXHRtZW1zZXQoZGF0YV9iaC1cXHUwMDNlYl9kYXRhLCAwLCBpbm9kZS1cXHUwMDNlaV9zYi1cXHUwMDNlc19ibG9ja3NpemUpO1xcbiBcXG5AQCAtMTE1OSwyNCArMTI1NCwyOCBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcXG4gXFx0XFx0XFx0XFx0XFx0XFx0ICAgaW5vZGUsIGRhdGFfYmgpO1xcbiBcXHR9IGVsc2Uge1xcbiBcXHRcXHR1bmxvY2tfYnVmZmVyKGRhdGFfYmgpO1xcbi1cXHRcXHRpbm9kZS1cXHUwMDNlaV9zaXplID0gaW5vZGUtXFx1MDAzZWlfc2ItXFx1MDAzZXNfYmxvY2tzaXplO1xcbi1cXHRcXHRpX3NpemVfd3JpdGUoaW5vZGUsIGlub2RlLVxcdTAwM2VpX3NiLVxcdTAwM2VzX2Jsb2Nrc2l6ZSk7XFxuLVxcdFxcdEVYVDRfSShpbm9kZSktXFx1MDAzZWlfZGlza3NpemUgPSBpbm9kZS1cXHUwMDNlaV9zYi1cXHUwMDNlc19ibG9ja3NpemU7XFxuLVxcbiBcXHRcXHRlcnJvciA9IGV4dDRfaW5pdF9kaXJibG9jayhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLFxcbiBcXHRcXHRcXHQgIGxlMzJfdG9fY3B1KCgoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKilidWYpLVxcdTAwM2Vpbm9kZSksXFxuIFxcdFxcdFxcdCAgYnVmICsgRVhUNF9JTkxJTkVfRE9URE9UX1NJWkUsXFxuIFxcdFxcdFxcdCAgaW5saW5lX3NpemUgLSBFWFQ0X0lOTElORV9ET1RET1RfU0laRSk7XFxuLVxcdFxcdGlmICghZXJyb3IpXFxuLVxcdFxcdFxcdGVycm9yID0gZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgaW5vZGUpO1xcbiBcXHR9XFxuK291dF9iaDpcXG4rXFx0aWYgKGVycm9yKSB7XFxuK1xcdFxcdGludCBmbGFncyA9IDA7XFxuIFxcbi1vdXRfcmVzdG9yZTpcXG4tXFx0aWYgKGVycm9yKVxcbi1cXHRcXHRleHQ0X3Jlc3RvcmVfaW5saW5lX2RhdGEoaGFuZGxlLCBpbm9kZSwgaWxvYywgYnVmLCBpbmxpbmVfc2l6ZSk7XFxuK1xcdFxcdGlmIChkYXRhX2JoKVxcbitcXHRcXHRcXHRmbGFncyB8PSBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVDtcXG4rXFx0XFx0c3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpO1xcbiBcXG4rXFx0XFx0ZG93bl93cml0ZShcXHUwMDI2ZWktXFx1MDAzZWlfZGF0YV9zZW0pO1xcbitcXHRcXHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xcbitcXHRcXHRleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGRhdGFfYmgsIG5ld2Jsb2NrLCBhbGxvY2F0ZWRfYmxvY2ssIGZsYWdzKTtcXG4rXFx0XFx0dXBfd3JpdGUoXFx1MDAyNmVpLVxcdTAwM2VpX2RhdGFfc2VtKTtcXG4rXFx0fSBlbHNlIHtcXG4rXFx0XFx0ZXJyb3IgPSBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGUsIGlub2RlLFxcbitcXHRcXHRcXHRcXHRuZXdibG9jaywgYWxsb2NhdGVkX2Jsb2NrLCBkYXRhX2JoKTtcXG4rXFx0fVxcbiBvdXQ6XFxuLVxcdGJyZWxzZShkYXRhX2JoKTtcXG4gXFx0a2ZyZWUoYnVmKTtcXG4gXFx0cmV0dXJuIGVycm9yO1xcbiB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjUxOjEwLjQ5NTUyMjkxMVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjg2NjY5Mjg2NjE5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhXCIsXG4gICAgXCJleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGhvdyBleHQ0IGNvbnZlcnRzIGlubGluZSBkYXRhIHRvIGJsb2NrcywgcmVwbGFjaW5nIHRoZSB1c2Ugb2YgYGV4dDRfbWFwX2Jsb2Nrc2Agd2l0aCBkaXJlY3QgYmxvY2sgYWxsb2NhdGlvbiB2aWEgYGV4dDRfbWJfbmV3X2Jsb2Nrc2AgYW5kIGludHJvZHVjaW5nIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AuIFRoaXMgbW9kaWZpZXMgY29yZSByZWFjaGFibGUgbG9naWMgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgd2hpY2ggaXMgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMTI0YzdlYTZjZGQwMmFjNGUwYWE2MTA1ZWQwNTUyMTRkZjE4MTU5YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDIyIDE2OjUxOjA5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxpbmUuYyBiL2ZzL2V4dDQvaW5saW5lLmNcbmluZGV4IDgwNDVlNGZmMjcwYzcuLjUwNzEwNmM3MmU4MmYgMTAwNjQ0XG4tLS0gYS9mcy9leHQ0L2lubGluZS5jXG4rKysgYi9mcy9leHQ0L2lubGluZS5jXG5AQCAtMTQsNiArMTQsNyBAQFxuICNpbmNsdWRlIFwiZXh0NC5oXCJcbiAjaW5jbHVkZSBcInhhdHRyLmhcIlxuICNpbmNsdWRlIFwidHJ1bmNhdGUuaFwiXG4rI2luY2x1ZGUgXCJleHQ0X2V4dGVudHMuaFwiXG4gXG4gI2RlZmluZSBFWFQ0X1hBVFRSX1NZU1RFTV9EQVRBXHRcImRhdGFcIlxuICNkZWZpbmUgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRVx0KChzaXplb2YoX19sZTMyKSAqIEVYVDRfTl9CTE9DS1MpKVxuQEAgLTEwNzAsMjEgKzEwNzEsMTE1IEBAIHN0YXRpYyBpbnQgZXh0NF91cGRhdGVfaW5saW5lX2RpcihoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmRpcixcbiBcdHJldHVybiAwO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBleHQ0X3Jlc3RvcmVfaW5saW5lX2RhdGEoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSxcbi1cdFx0XHRcdCAgICAgc3RydWN0IGV4dDRfaWxvYyAqaWxvYyxcbi1cdFx0XHRcdCAgICAgdm9pZCAqYnVmLCBpbnQgaW5saW5lX3NpemUpXG4rc3RhdGljIGludCBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2ZzYmxrX3QgYmxvY2ssXG4rXHRcdFx0XHRcdHVuc2lnbmVkIGludCBsZW4sIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpXG4ge1xuLVx0aW50IHJldDtcbitcdHN0cnVjdCBleHQ0X2lub2RlX2luZm8gKmVpID0gRVhUNF9JKGlub2RlKTtcbitcdHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmQgaXMgPSB7XG4rXHRcdC5zID0geyAubm90X2ZvdW5kID0gMCwgfSxcbitcdH07XG4rXHRzdHJ1Y3QgZXh0NF94YXR0cl9pbmZvIGkgPSB7XG4rXHRcdC5uYW1lX2luZGV4ID0gRVhUNF9YQVRUUl9JTkRFWF9TWVNURU0sXG4rXHRcdC5uYW1lID0gRVhUNF9YQVRUUl9TWVNURU1fREFUQSxcbitcdFx0LnZhbHVlID0gTlVMTCxcbitcdFx0LnZhbHVlX2xlbiA9IDAsXG4rXHR9O1xuK1x0aW50IGVycm9yO1xuK1x0aW50IGlub2RlX3NpemU7XG4rXHR2b2lkICppbm9kZV9idWYgPSBOVUxMO1xuK1x0c3RydWN0IGV4dDRfaW5vZGUgKnJhd19pbm9kZTtcbiBcbi1cdHJldCA9IGV4dDRfY3JlYXRlX2lubGluZV9kYXRhKGhhbmRsZSwgaW5vZGUsIGlubGluZV9zaXplKTtcbi1cdGlmIChyZXQpIHtcbi1cdFx0ZXh0NF9tc2coaW5vZGUtXHUwMDNlaV9zYiwgS0VSTl9FTUVSRyxcbi1cdFx0XHRcImVycm9yIHJlc3RvcmluZyBpbmxpbmVfZGF0YSBmb3IgaW5vZGUgLS0gcG90ZW50aWFsIGRhdGEgbG9zcyEgKGlub2RlICVsbHUsIGVycm9yICVkKVwiLFxuLVx0XHRcdGlub2RlLVx1MDAzZWlfaW5vLCByZXQpO1xuLVx0XHRyZXR1cm47XG4rXHRpbm9kZV9zaXplID0gRVhUNF9JTk9ERV9TSVpFKGlub2RlLVx1MDAzZWlfc2IpO1xuK1x0aW5vZGVfYnVmID0ga21hbGxvYyhpbm9kZV9zaXplLCBHRlBfTk9GUyk7XG4rXHRpZiAoIWlub2RlX2J1Zikge1xuK1x0XHRlcnJvciA9IC1FTk9NRU07XG4rXHRcdGRvd25fd3JpdGUoXHUwMDI2ZWktXHUwMDNlaV9kYXRhX3NlbSk7XG4rXHRcdGV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7XG4rXHRcdGV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTtcbitcdFx0dXBfd3JpdGUoXHUwMDI2ZWktXHUwMDNlaV9kYXRhX3NlbSk7XG4rXHRcdHJldHVybiBlcnJvcjtcbiBcdH1cbi1cdGV4dDRfd3JpdGVfaW5saW5lX2RhdGEoaW5vZGUsIGlsb2MsIGJ1ZiwgMCwgaW5saW5lX3NpemUpO1xuLVx0ZXh0NF9zZXRfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTtcbitcdGRvd25fd3JpdGUoXHUwMDI2ZWktXHUwMDNlaV9kYXRhX3NlbSk7XG4rXHRlcnJvciA9IGV4dDRfZ2V0X2lub2RlX2xvYyhpbm9kZSwgXHUwMDI2aXMuaWxvYyk7XG4rXHRpZiAoZXJyb3IpIHtcbitcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbitcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpO1xuK1x0XHR1cF93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbitcdFx0a2ZyZWUoaW5vZGVfYnVmKTtcbitcdFx0cmV0dXJuIGVycm9yO1xuK1x0fVxuK1x0cmF3X2lub2RlID0gZXh0NF9yYXdfaW5vZGUoXHUwMDI2aXMuaWxvYyk7XG4rXHRCVUZGRVJfVFJBQ0UoaXMuaWxvYy5iaCwgXCJnZXRfd3JpdGVfYWNjZXNzXCIpO1xuK1x0ZXJyb3IgPSBleHQ0X2pvdXJuYWxfZ2V0X3dyaXRlX2FjY2VzcyhoYW5kbGUsIGlub2RlLVx1MDAzZWlfc2IsIGlzLmlsb2MuYmgsIEVYVDRfSlRSX05PTkUpO1xuK1x0aWYgKGVycm9yKSB7XG4rXHRcdGV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7XG4rXHRcdGV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTtcbitcdFx0Z290byBvdXQ7XG4rXHR9XG4rXHRtZW1jcHkoaW5vZGVfYnVmLCAodm9pZCAqKXJhd19pbm9kZSwgaW5vZGVfc2l6ZSk7XG4rXHRtZW1zZXQoKHZvaWQgKilyYXdfaW5vZGUtXHUwMDNlaV9ibG9jaywgMCwgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSk7XG4rXHRtZW1zZXQoZWktXHUwMDNlaV9kYXRhLCAwLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTtcbitcdGlmIChleHQ0X2hhc19mZWF0dXJlX2V4dGVudHMoaW5vZGUtXHUwMDNlaV9zYikgXHUwMDI2XHUwMDI2XG4rXHRcdChTX0lTRElSKGlub2RlLVx1MDAzZWlfbW9kZSkgfHwgU19JU1JFRyhpbm9kZS1cdTAwM2VpX21vZGUpIHx8IFNfSVNMTksoaW5vZGUtXHUwMDNlaV9tb2RlKSkpIHtcbitcdFx0ZXh0NF9zZXRfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRTKTtcbitcdFx0ZXh0NF9leHRfdHJlZV9pbml0KGhhbmRsZSwgaW5vZGUpO1xuK1x0XHRzdHJ1Y3QgZXh0NF9leHRfcGF0aCAqcGF0aCA9IGV4dDRfZmluZF9leHRlbnQoaW5vZGUsIDAsIE5VTEwsIDApO1xuK1xuK1x0XHRpZiAoSVNfRVJSKHBhdGgpKSB7XG4rXHRcdFx0ZXJyb3IgPSBQVFJfRVJSKHBhdGgpO1xuK1x0XHRcdGdvdG8gcmVjb3Zlcnk7XG4rXHRcdH1cbitcdFx0c3RydWN0IGV4dDRfZXh0ZW50IG5ld2V4O1xuK1xuK1x0XHRuZXdleC5lZV9ibG9jayA9IGNwdV90b19sZTMyKDApO1xuK1x0XHRuZXdleC5lZV9sZW4gPSBjcHVfdG9fbGUxNigxKTtcbitcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNm5ld2V4LCBibG9jayk7XG4rXHRcdHBhdGggPSBleHQ0X2V4dF9pbnNlcnRfZXh0ZW50KGhhbmRsZSwgaW5vZGUsIHBhdGgsIFx1MDAyNm5ld2V4LCAwKTtcbitcdFx0aWYgKElTX0VSUihwYXRoKSkge1xuK1x0XHRcdGVycm9yID0gUFRSX0VSUihwYXRoKTtcbitcdFx0XHRpZiAoZXJyb3IgPT0gLUVEUVVPVCB8fCBlcnJvciA9PSAtRU5PU1BDKSB7XG4rXHRcdFx0XHRnb3RvIHJlY292ZXJ5O1xuK1x0XHRcdH0gZWxzZSB7XG4rXHRcdFx0XHRleHQ0X2ZvcmdldChoYW5kbGUsIDAsIGlub2RlLCBiaCwgYmxvY2spO1xuK1x0XHRcdFx0Z290byBub2ZyZWU7XG4rXHRcdFx0fVxuK1x0XHR9IGVsc2Uge1xuK1x0XHRcdGV4dDRfZnJlZV9leHRfcGF0aChwYXRoKTtcbitcdFx0fVxuK1x0fSBlbHNlIHtcbitcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2RhdGFbMF0gPSBjcHVfdG9fbGUzMihibG9jayk7XG4rXHR9XG4rXHRlcnJvciA9IGV4dDRfeGF0dHJfaWJvZHlfZmluZChpbm9kZSwgXHUwMDI2aSwgXHUwMDI2aXMpO1xuK1x0aWYgKGVycm9yKVxuK1x0XHRnb3RvIHJlY292ZXJ5O1xuK1x0aWYgKCFpcy5zLm5vdF9mb3VuZClcbitcdFx0ZXJyb3IgPSBleHQ0X3hhdHRyX2lib2R5X3NldChoYW5kbGUsIGlub2RlLCBcdTAwMjZpLCBcdTAwMjZpcyk7XG4rcmVjb3Zlcnk6XG4rXHRpZiAoZXJyb3IpIHtcbitcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbitcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpO1xuK25vZnJlZTpcbitcdFx0bWVtY3B5KCh2b2lkICopcmF3X2lub2RlLCBpbm9kZV9idWYsIGlub2RlX3NpemUpO1xuK1x0XHRtZW1jcHkoZWktXHUwMDNlaV9kYXRhLCByYXdfaW5vZGUtXHUwMDNlaV9ibG9jaywgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSk7XG4rXHRcdGV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRTKTtcbitcdH0gZWxzZSB7XG4rXHRcdGV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9JTkxJTkVfREFUQSk7XG4rXHRcdGdldF9iaChpcy5pbG9jLmJoKTtcbitcdFx0ZXJyb3IgPSBleHQ0X21hcmtfaWxvY19kaXJ0eShoYW5kbGUsIGlub2RlLCBcdTAwMjZpcy5pbG9jKTtcbitcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9vZmYgPSAwO1xuK1x0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfaW5saW5lX3NpemUgPSAwO1xuK1x0XHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XG4rXHRcdGlmIChTX0lTRElSKGlub2RlLVx1MDAzZWlfbW9kZSkpIHtcbitcdFx0XHRpX3NpemVfd3JpdGUoaW5vZGUsIGlub2RlLVx1MDAzZWlfc2ItXHUwMDNlc19ibG9ja3NpemUpO1xuK1x0XHRcdEVYVDRfSShpbm9kZSktXHUwMDNlaV9kaXNrc2l6ZSA9IGlub2RlLVx1MDAzZWlfc2ItXHUwMDNlc19ibG9ja3NpemU7XG4rXHRcdH1cbitcdFx0YnJlbHNlKGJoKTtcbitcdH1cbitvdXQ6XG4rXHRicmVsc2UoaXMuaWxvYy5iaCk7XG4rXHR1cF93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbitcdGtmcmVlKGlub2RlX2J1Zik7XG4rXHRyZXR1cm4gZXJyb3I7XG4gfVxuIFxuIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuQEAgLTEwOTQsOCArMTE4OSwxMSBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbiBcdGludCBlcnJvcjtcbiBcdHZvaWQgKmJ1ZiA9IE5VTEw7XG4gXHRzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRhdGFfYmggPSBOVUxMO1xuLVx0c3RydWN0IGV4dDRfbWFwX2Jsb2NrcyBtYXA7XG4gXHRpbnQgaW5saW5lX3NpemU7XG4rXHRleHQ0X2ZzYmxrX3QgbmV3YmxvY2sgPSAwO1xuK1x0c3RydWN0IGV4dDRfYWxsb2NhdGlvbl9yZXF1ZXN0IGFyO1xuK1x0c3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihpbm9kZS1cdTAwM2VpX3NiKTtcbitcdHVuc2lnbmVkIGludCBhbGxvY2F0ZWRfYmxvY2s7XG4gXG4gXHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcbiBcdGJ1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTtcbkBAIC0xMTIwLDI1ICsxMjE4LDIyIEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuIFx0XHRcdGdvdG8gb3V0O1xuIFx0fVxuIFxuLVx0ZXJyb3IgPSBleHQ0X2Rlc3Ryb3lfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUpO1xuLVx0aWYgKGVycm9yKVxuLVx0XHRnb3RvIG91dDtcbi1cbi1cdG1hcC5tX2xibGsgPSAwO1xuLVx0bWFwLm1fbGVuID0gMTtcbi1cdG1hcC5tX2ZsYWdzID0gMDtcbi1cdGVycm9yID0gZXh0NF9tYXBfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIFx1MDAyNm1hcCwgRVhUNF9HRVRfQkxPQ0tTX0NSRUFURSk7XG4rXHRtZW1zZXQoXHUwMDI2YXIsIDAsIHNpemVvZihhcikpO1xuK1x0YXIuaW5vZGUgPSBpbm9kZTtcbitcdGFyLmxvZ2ljYWwgPSAwO1xuK1x0YXIubGVuID0gMTtcbitcdGlmIChTX0lTUkVHKGlub2RlLVx1MDAzZWlfbW9kZSkpXG4rXHRcdGFyLmZsYWdzID0gRVhUNF9NQl9ISU5UX0RBVEE7XG4rXHRlbHNlXG4rXHRcdGFyLmZsYWdzID0gMDtcbitcdG5ld2Jsb2NrID0gZXh0NF9tYl9uZXdfYmxvY2tzKGhhbmRsZSwgXHUwMDI2YXIsIFx1MDAyNmVycm9yKTtcbiBcdGlmIChlcnJvciBcdTAwM2MgMClcbi1cdFx0Z290byBvdXRfcmVzdG9yZTtcbi1cdGlmICghKG1hcC5tX2ZsYWdzIFx1MDAyNiBFWFQ0X01BUF9NQVBQRUQpKSB7XG4tXHRcdGVycm9yID0gLUVJTztcbi1cdFx0Z290byBvdXRfcmVzdG9yZTtcbi1cdH1cbi1cbi1cdGRhdGFfYmggPSBzYl9nZXRibGsoaW5vZGUtXHUwMDNlaV9zYiwgbWFwLm1fcGJsayk7XG4rXHRcdGdvdG8gb3V0O1xuK1x0YWxsb2NhdGVkX2Jsb2NrID0gRVhUNF9DMkIoc2JpLCBhci5sZW4pO1xuK1x0ZGF0YV9iaCA9IHNiX2dldGJsayhpbm9kZS1cdTAwM2VpX3NiLCBuZXdibG9jayk7XG4gXHRpZiAoIWRhdGFfYmgpIHtcbiBcdFx0ZXJyb3IgPSAtRU5PTUVNO1xuLVx0XHRnb3RvIG91dF9yZXN0b3JlO1xuK1x0XHRnb3RvIG91dF9iaDtcbiBcdH1cbiBcbiBcdGxvY2tfYnVmZmVyKGRhdGFfYmgpO1xuQEAgLTExNDcsNyArMTI0Miw3IEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuIFx0aWYgKGVycm9yKSB7XG4gXHRcdHVubG9ja19idWZmZXIoZGF0YV9iaCk7XG4gXHRcdGVycm9yID0gLUVJTztcbi1cdFx0Z290byBvdXRfcmVzdG9yZTtcbitcdFx0Z290byBvdXRfYmg7XG4gXHR9XG4gXHRtZW1zZXQoZGF0YV9iaC1cdTAwM2ViX2RhdGEsIDAsIGlub2RlLVx1MDAzZWlfc2ItXHUwMDNlc19ibG9ja3NpemUpO1xuIFxuQEAgLTExNTksMjQgKzEyNTQsMjggQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXG4gXHRcdFx0XHRcdFx0ICAgaW5vZGUsIGRhdGFfYmgpO1xuIFx0fSBlbHNlIHtcbiBcdFx0dW5sb2NrX2J1ZmZlcihkYXRhX2JoKTtcbi1cdFx0aW5vZGUtXHUwMDNlaV9zaXplID0gaW5vZGUtXHUwMDNlaV9zYi1cdTAwM2VzX2Jsb2Nrc2l6ZTtcbi1cdFx0aV9zaXplX3dyaXRlKGlub2RlLCBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplKTtcbi1cdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2Rpc2tzaXplID0gaW5vZGUtXHUwMDNlaV9zYi1cdTAwM2VzX2Jsb2Nrc2l6ZTtcbi1cbiBcdFx0ZXJyb3IgPSBleHQ0X2luaXRfZGlyYmxvY2soaGFuZGxlLCBpbm9kZSwgZGF0YV9iaCxcbiBcdFx0XHQgIGxlMzJfdG9fY3B1KCgoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKilidWYpLVx1MDAzZWlub2RlKSxcbiBcdFx0XHQgIGJ1ZiArIEVYVDRfSU5MSU5FX0RPVERPVF9TSVpFLFxuIFx0XHRcdCAgaW5saW5lX3NpemUgLSBFWFQ0X0lOTElORV9ET1RET1RfU0laRSk7XG4tXHRcdGlmICghZXJyb3IpXG4tXHRcdFx0ZXJyb3IgPSBleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBpbm9kZSk7XG4gXHR9XG4rb3V0X2JoOlxuK1x0aWYgKGVycm9yKSB7XG4rXHRcdGludCBmbGFncyA9IDA7XG4gXG4tb3V0X3Jlc3RvcmU6XG4tXHRpZiAoZXJyb3IpXG4tXHRcdGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YShoYW5kbGUsIGlub2RlLCBpbG9jLCBidWYsIGlubGluZV9zaXplKTtcbitcdFx0aWYgKGRhdGFfYmgpXG4rXHRcdFx0ZmxhZ3MgfD0gRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQ7XG4rXHRcdHN0cnVjdCBleHQ0X2lub2RlX2luZm8gKmVpID0gRVhUNF9JKGlub2RlKTtcbiBcbitcdFx0ZG93bl93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbitcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbitcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLCBuZXdibG9jaywgYWxsb2NhdGVkX2Jsb2NrLCBmbGFncyk7XG4rXHRcdHVwX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuK1x0fSBlbHNlIHtcbitcdFx0ZXJyb3IgPSBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGUsIGlub2RlLFxuK1x0XHRcdFx0bmV3YmxvY2ssIGFsbG9jYXRlZF9ibG9jaywgZGF0YV9iaCk7XG4rXHR9XG4gb3V0OlxuLVx0YnJlbHNlKGRhdGFfYmgpO1xuIFx0a2ZyZWUoYnVmKTtcbiBcdHJldHVybiBlcnJvcjtcbiB9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNjo1MToxMC40OTU1MjQzNDFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzcyODU3MjQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZvY3VzaW5nIG9uIEV4dDQgSW5saW5lIERhdGEgQ29udmVyc2lvbioqXG5cbk9rYXksIHNvIEkndmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0J3MgbWFraW5nIHNvbWUgcHJldHR5IHNpZ25pZmljYW50IGNoYW5nZXMgdG8gYGZzL2V4dDQvaW5saW5lLmNgLiBJdCdzIGEgZnVuY3Rpb25hbCBzaGlmdCwgc3BlY2lmaWNhbGx5IGFpbWVkIGF0IGhvdyBleHQ0IGhhbmRsZXMgaW5saW5lIGRhdGEgY29udmVyc2lvbi4gUmVtb3ZpbmcgYGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YWAgYW5kIGludHJvZHVjaW5nIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AgaXMgYW4gaW50ZXJlc3RpbmcgY2hhbmdlLCBidXQgdGhlIG1vZGlmaWNhdGlvbiB0byBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AgaXMgd2hhdCByZWFsbHkgY2F0Y2hlcyBteSBleWUuIERpcmVjdGx5IHVzaW5nIGBleHQ0X21iX25ld19ibG9ja3NgIGluc3RlYWQgb2YgdGhlIG9sZCBgZXh0NF9tYXBfYmxvY2tzYCBhbmQgYGV4dDRfZGVzdHJveV9pbmxpbmVfZGF0YV9ub2xvY2tgIHNlcXVlbmNlLi4udGhhdCBjb3VsZCBpbnRyb2R1Y2Ugc29tZSBpbnRlcmVzdGluZyBlZGdlIGNhc2VzLiBUaGlzIGlzIGRlZmluaXRlbHkgcHJpbWUgZnV6emluZyB0ZXJyaXRvcnkuXG5cbk5vdywgbGV0J3MgaWRlbnRpZnkgdGhlIGNyaXRpY2FsIGZ1bmN0aW9ucyB0byBmb2N1cyBvbi4gV2UndmUgZ290IGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AsIHdoaWNoIGlzIG5ldywgYW5kIHRoZW4gdGhlIG1vZGlmaWVkIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYC4gVGhleSBhcmUgYm90aCBzdGF0aWMgdGhvdWdoLCB3aGljaCBtZWFucyB3ZSBuZWVkIHRvIGZpbmQgdGhlaXIgbm9uLXN0YXRpYyBjYWxsaW5nIGZ1bmN0aW9ucyB0byBjcmVhdGUgaW5wdXQuIEkgc2hvdWxkIHByb2JhYmx5IHN0YXJ0IGJ5IHNlYXJjaGluZyBmb3IgY2FsbHMgdG8gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBlbnRyeSBwb2ludHMgdG8gYW5hbHl6ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA3OSwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxNywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjUxOjE1LjI2ODM4MzUzNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzkzMDEyNjM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXh0NC9pbmxpbmUuYz0xMDc0PXN0YXRpYyBpbnQgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2soaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9mc2Jsa190IGJsb2NrLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xMTg0LVxcbmZzL2V4dDQvaW5saW5lLmM6MTE4NTpzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcXG5mcy9leHQ0L2lubGluZS5jLTExODYtXFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGlub2RlICppbm9kZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTI4OD1pbnQgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgZXh0NF9maWxlbmFtZSAqZm5hbWUsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTEzNDAtXFx0ICovXFxuZnMvZXh0NC9pbmxpbmUuYzoxMzQxOlxcdHJldCA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlLCBkaXIsIFxcdTAwMjZpbG9jKTtcXG5mcy9leHQ0L2lubGluZS5jLTEzNDItXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTIwNTU9aW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0yMDkyLVxcdGlmIChleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpXFxuZnMvZXh0NC9pbmxpbmUuYzoyMDkzOlxcdFxcdGVycm9yID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGlub2RlLCBcXHUwMDI2aWxvYyk7XFxuZnMvZXh0NC9pbmxpbmUuYy0yMDk0LVxcdGV4dDRfd3JpdGVfdW5sb2NrX3hhdHRyKGlub2RlLCBcXHUwMDI2bm9fZXhwYW5kKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTY6NTE6MTcuMDYxNDA1MDMxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU2MjYzNTcwMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBQb3RlbnRpYWwgQ2FsbGVycyBpbiBleHQ0IEZpbGUgU3lzdGVtIElubGluZSBEYXRhIEhhbmRsaW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgdHdvIGZ1bmN0aW9ucywgYGV4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnlgIGFuZCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCwgYm90aCBvZiB3aGljaCBzZWVtIGludm9sdmVkIGluIGhvdyB0aGUgZXh0NCBmaWxlc3lzdGVtIGhhbmRsZXMgaW5saW5lIGRhdGEuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZW5zdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55IG90aGVyIGltcG9ydGFudCBwaWVjZXMgb2YgdGhlIHB1enpsZS4gSSBrbm93IHRoZXNlIGZ1bmN0aW9ucyBhcmUgY3J1Y2lhbCwgYnV0IHVuZGVyc3RhbmRpbmcgdGhlIGNvbXBsZXRlIHBpY3R1cmUgcmVxdWlyZXMgY29uc2lkZXJpbmcgYWxsIHJlbGF0ZWQgY29kZSBwYXRocy4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gbWV0aG9kaWNhbGx5IGNoZWNrLCB3aXRoIGEgcXVpY2sgY29kZSBpbnNwZWN0aW9uLCBpZiB0aGVyZSBhcmUgKmFueSogb3RoZXIgZnVuY3Rpb25zIHRoYXQgbWlnaHQgYWxzbyBiZSBjYWxsaW5nIHRoaXMgc2FtZSBjb2RlIG9yIHJlbGF0ZWQgY29kZSBwYXRocy4gVGhpcyB3aWxsIGhlbHAgbWUgYnVpbGQgYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGlzIGlubGluZSBkYXRhIG1lY2hhbmlzbSBpcyB0cnVseSB3b3JraW5nLiBUaGlzIGNvdWxkIHJldmVhbCBpbXBvcnRhbnQgaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgZW50cnkgcG9pbnRzIG9yIG1ldGhvZHMgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc3lzdGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTc2LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTY6NTE6NTIuNjg3NzY0OTUzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTY4NzMxNTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9leHQ0L2V4dDQuaD0zNzQ3PWV4dGVybiBpbnQgZXh0NF9nZW5lcmljX3dyaXRlX2lubGluZV9kYXRhKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxcbi0tXFxuZnMvZXh0NC9leHQ0LmgtMzc1MS1cXHRcXHRcXHRcXHRcXHQgIHZvaWQgKipmc2RhdGEsIGJvb2wgZGEpO1xcbmZzL2V4dDQvZXh0NC5oOjM3NTI6ZXh0ZXJuIGludCBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsXFxuZnMvZXh0NC9leHQ0LmgtMzc1My1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBleHQ0X2ZpbGVuYW1lICpmbmFtZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTE4NT1zdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTI4Ny0gKi9cXG5mcy9leHQ0L2lubGluZS5jOjEyODg6aW50IGV4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnkoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGV4dDRfZmlsZW5hbWUgKmZuYW1lLFxcbmZzL2V4dDQvaW5saW5lLmMtMTI4OS1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGlub2RlICppbm9kZSlcXG4tLVxcbmZzL2V4dDQvbmFtZWkuYz0yMzU2PXN0YXRpYyBpbnQgX19leHQ0X2FkZF9lbnRyeShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmRpcixcXG4tLVxcbmZzL2V4dDQvbmFtZWkuYy0yMzgzLVxcdGlmIChleHQ0X2hhc19pbmxpbmVfZGF0YShkaXIpKSB7XFxuZnMvZXh0NC9uYW1laS5jOjIzODQ6XFx0XFx0cmV0dmFsID0gZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeShoYW5kbGUsIFxcdTAwMjZmbmFtZSwgZGlyLCBpbm9kZSk7XFxuZnMvZXh0NC9uYW1laS5jLTIzODUtXFx0XFx0aWYgKHJldHZhbCBcXHUwMDNjIDApXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjUxOjU0LjQ0NDY0NDg5OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMTY0MTk1NTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEknbSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczpcblxuKipJbmxpbmUgRGF0YSBFbnRyeSBJbnZlc3RpZ2F0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgaW50byBob3cgaW5saW5lIGRhdGEgZW50cmllcyBhcmUgaGFuZGxlZCB3aXRoaW4gdGhlIGV4dDQgZmlsZXN5c3RlbS4gTXkgZm9jdXMgaXMgb24gdGhlIGBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5YCBmdW5jdGlvbi4gSSBrbm93IHRoaXMgaXMgY2FsbGVkIGJ5IGBfX2V4dDRfYWRkX2VudHJ5YCwgd2hpY2ggaXRzZWxmIHJlc2lkZXMgaW4gYGZzL2V4dDQvbmFtZWkuY2AuIFNvLCB0aGUgcGF0aCBpcyBjbGVhcjogbmFtaW5nIGFuZCBhZGRpbmcgbmV3IGRpcmVjdG9yeSBlbnRyaWVzLlxuXG5Ob3csIG15IG5leHQgdGhvdWdodCBpcyBhYm91dCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYC4gSSBzZWVtIHRvIHJlY2FsbCB0aGF0IG9uZSBiZWluZyBleHBvcnRlZCwgbWF5YmUgZm9yIHVzZSBpbiBzaXR1YXRpb25zIG90aGVyIHRoYW4gdGhpcy4gSXQgd291bGQgbWFrZSBzZW5zZSBpZiBpdCB3YXMsIHNvIGxldCBtZSBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0IGV4cG9ydCBzdGF0dXMuIFRoYXTigJlzIHByb2JhYmx5IHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpbiB1bmRlcnN0YW5kaW5nIGhvdyBhbGwgdGhpcyB3b3JrcyB0b2dldGhlci5cblxuXG4iLCJJbnB1dFRva2VucyI6NjYxMywiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjUyOjI0LjYwODg0MzA1OFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODg1MzgxNzE0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dDRfY29udmVydF9pbmxpbmVfZGF0YVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9leHQ0L2NyeXB0by5jPTEzMj1zdGF0aWMgaW50IGV4dDRfc2V0X2NvbnRleHQoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgdm9pZCAqY3R4LCBzaXplX3QgbGVuLFxcbi0tXFxuZnMvZXh0NC9jcnlwdG8uYy0xNTItXFxuZnMvZXh0NC9jcnlwdG8uYzoxNTM6XFx0cmVzID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2NyeXB0by5jLTE1NC1cXHRpZiAocmVzKVxcbi0tXFxuZnMvZXh0NC9leHQ0Lmg9Mzc4ND1leHRlcm4gaW50IGV4dDRfaW5saW5lX2RhdGFfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSwgaW50ICpoYXNfaW5saW5lKTtcXG5mcy9leHQ0L2V4dDQuaC0zNzg1LVxcbmZzL2V4dDQvZXh0NC5oOjM3ODY6ZXh0ZXJuIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSk7XFxuZnMvZXh0NC9leHQ0LmgtMzc4Ny1cXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jPTQ4NTQ9bG9uZyBleHQ0X2ZhbGxvY2F0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1vZGUsIGxvZmZfdCBvZmZzZXQsIGxvZmZfdCBsZW4pXFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYy00ODgzLVxcdGlub2RlX2xvY2soaW5vZGUpO1xcbmZzL2V4dDQvZXh0ZW50cy5jOjQ4ODQ6XFx0cmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2V4dGVudHMuYy00ODg1LVxcdGlmIChyZXQpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTU0Nj1pbnQgZXh0NF9yZWFkcGFnZV9pbmxpbmUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZvbGlvICpmb2xpbylcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtNTcyLVxcbmZzL2V4dDQvaW5saW5lLmM6NTczOnN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG5mcy9leHQ0L2lubGluZS5jLTU3NC1cXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz02OTc9aW50IGV4dDRfZ2VuZXJpY193cml0ZV9pbmxpbmVfZGF0YShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtNzI4LVxcdFxcdFxcdC8qIFJldHJ5IGluc2lkZSAqL1xcbmZzL2V4dDQvaW5saW5lLmM6NzI5OlxcdFxcdFxcdHJldHVybiBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KG1hcHBpbmcsIGlub2RlKTtcXG5mcy9leHQ0L2lubGluZS5jLTczMC1cXHRcXHR9XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTc4ND1pbnQgZXh0NF90cnlfdG9fd3JpdGVfaW5saW5lX2RhdGEoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTc4OS1cXHRpZiAocG9zICsgbGVuIFxcdTAwM2UgZXh0NF9nZXRfbWF4X2lubGluZV9zaXplKGlub2RlKSlcXG5mcy9leHQ0L2lubGluZS5jOjc5MDpcXHRcXHRyZXR1cm4gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChtYXBwaW5nLCBpbm9kZSk7XFxuZnMvZXh0NC9pbmxpbmUuYy03OTEtXFx0cmV0dXJuIGV4dDRfZ2VuZXJpY193cml0ZV9pbmxpbmVfZGF0YShtYXBwaW5nLCBpbm9kZSwgcG9zLCBsZW4sXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTEwNzQ9c3RhdGljIGludCBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2ZzYmxrX3QgYmxvY2ssXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTExODQtXFxuZnMvZXh0NC9pbmxpbmUuYzoxMTg1OnN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbmZzL2V4dDQvaW5saW5lLmMtMTE4Ni1cXHRcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz0xMjg4PWludCBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBleHQ0X2ZpbGVuYW1lICpmbmFtZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTM0MC1cXHQgKi9cXG5mcy9leHQ0L2lubGluZS5jOjEzNDE6XFx0cmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGRpciwgXFx1MDAyNmlsb2MpO1xcbmZzL2V4dDQvaW5saW5lLmMtMTM0Mi1cXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTk0Mz1pbnQgZXh0NF9pbmxpbmVfZGF0YV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTIwNTQtXFxuZnMvZXh0NC9pbmxpbmUuYzoyMDU1OmludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSlcXG5mcy9leHQ0L2lubGluZS5jLTIwNTYte1xcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0yMDkyLVxcdGlmIChleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpXFxuZnMvZXh0NC9pbmxpbmUuYzoyMDkzOlxcdFxcdGVycm9yID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGlub2RlLCBcXHUwMDI2aWxvYyk7XFxuZnMvZXh0NC9pbmxpbmUuYy0yMDk0LVxcdGV4dDRfd3JpdGVfdW5sb2NrX3hhdHRyKGlub2RlLCBcXHUwMDI2bm9fZXhwYW5kKTtcXG4tLVxcbmZzL2V4dDQvaW5vZGUuYz01OTM0PWludCBleHQ0X3NldGF0dHIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSxcXG4tLVxcbmZzL2V4dDQvaW5vZGUuYy02MDMxLVxcdFxcdCAgICBhdHRyLVxcdTAwM2VpYV9zaXplIFxcdTAwM2UgRVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfc2l6ZSkge1xcbmZzL2V4dDQvaW5vZGUuYzo2MDMyOlxcdFxcdFxcdGVycm9yID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2lub2RlLmMtNjAzMy1cXHRcXHRcXHRpZiAoZXJyb3IpXFxuLS1cXG5mcy9leHQ0L2lub2RlLmM9Njc4Nz12bV9mYXVsdF90IGV4dDRfcGFnZV9ta3dyaXRlKHN0cnVjdCB2bV9mYXVsdCAqdm1mKVxcbi0tXFxuZnMvZXh0NC9pbm9kZS5jLTY4MDgtXFxuZnMvZXh0NC9pbm9kZS5jOjY4MDk6XFx0ZXJyID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2lub2RlLmMtNjgxMC1cXHRpZiAoZXJyKVxcbi0tXFxuZnMvZXh0NC92ZXJpdHkuYz0xMDI9c3RhdGljIGludCBleHQ0X2JlZ2luX2VuYWJsZV92ZXJpdHkoc3RydWN0IGZpbGUgKmZpbHApXFxuLS1cXG5mcy9leHQ0L3Zlcml0eS5jLTEyOC1cXG5mcy9leHQ0L3Zlcml0eS5jOjEyOTpcXHRlcnIgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoaW5vZGUpO1xcbmZzL2V4dDQvdmVyaXR5LmMtMTMwLVxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjUyOjI2LjQ5NDIzMDc1MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI0NjcwOTQ1MjYyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIEV4dDQgSW5saW5lIERhdGEgQ29udmVyc2lvbiBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgY2xlYXJseSB0b3VjaGluZyB0aGUgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YWAgYW5kIGBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5YCBmdW5jdGlvbnMuIEZyb20gYSBxdWljayBnbGFuY2UsIEkgc2VlIHRoZXNlIGFyZSBmYWlybHkgd2lkZWx5IHVzZWQ7IGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGlzIGNhbGxlZCBmcm9tIGEgc2xldyBvZiBwbGFjZXMgbGlrZSBgZXh0NF9mYWxsb2NhdGVgLCBgZXh0NF9zZXRhdHRyYCwgYGV4dDRfcGFnZV9ta3dyaXRlYCwgYW5kIGV2ZW4gYGV4dDRfYmVnaW5fZW5hYmxlX3Zlcml0eWAuIFRoYXQncyBhIGRlY2VudCBzcHJlYWQuIEFuZCBgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeWAgaXMgY2FsbGVkIGZyb20gYF9fZXh0NF9hZGRfZW50cnlgLiBUaGlzIHRlbGxzIG1lIHRoYXQgdGhpcyBpcyBmYWlybHkgZnVuZGFtZW50YWwgY2hhbmdlIHRvIGhvdyB3ZSdyZSBkZWFsaW5nIHdpdGggaW5saW5lIGRhdGEgY29udmVyc2lvbiBpbiBleHQ0LlxuXG5HaXZlbiB0aGUgZnVuY3Rpb25hbCBjaGFuZ2VzIGltcGxpZWQsIEknbSBhbHJlYWR5IHRoaW5raW5nIHRoaXMgaXMgcmlwZSBmb3IgZnV6emluZy4gQW55IGNoYW5nZSB0aGlzIHBlcnZhc2l2ZSBoYXMgdGhlIHBvdGVudGlhbCB0byBpbnRyb2R1Y2Ugc3VidGxlIGJ1Z3MuIE15IGluc3RpbmN0IHNheXMgd2UgbmVlZCB0byBiZSB0aG9yb3VnaCBoZXJlLlxuXG5NeSBmb2N1cyBoYXMgdG8gYmUgb24gdGhvc2UgdHdvIHN5bWJvbHM6IGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGFuZCBgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeWAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBmdW5jdGlvbnMgYXJlIGJlaW5nIG1vZGlmaWVkIGFuZCBob3cgdGhvc2UgY2hhbmdlcyBpbXBhY3QgdGhlIGJyb2FkZXIgc3lzdGVtLiBJIGFsc28gbmVlZCB0byBtYWtlIHN1cmUgdGhlIGJ1aWxkIGVudmlyb25tZW50IGlzIHNldCB1cCBjb3JyZWN0bHk7IHRoZSBwYXRjaCBzcGVjaWZpZXMgYEVYVDRfRlNgLCBidXQgSSdsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayBpZiB0aGVyZSBhcmUgYW55ICpvdGhlciogcmVsZXZhbnQgY29uZmlndXJhdGlvbnMsIHNwZWNpZmljYWxseSBhcm91bmQgaW5saW5lIGRhdGEgaXRzZWxmLiBJcyBpdCBhIGZlYXR1cmUgZmxhZywgb3IgZG9lcyBpdCBkZXBlbmQgb24gb3RoZXIgcGFyYW1ldGVycz8gVGltZSB0byBkaWcgZGVlcGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MzMzLCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjU2OjMzLjIwMzY4NzIyNFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA2MjkxMTc5MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfRVhUNF9GU1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNzcgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZz04OD1DT05GSUdfTU1DX0RXPXlcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWctODktIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDFfZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWctOTEtQ09ORklHX01TRE9TX0ZTPXlcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX2RlZmNvbmZpZz04Nj1DT05GSUdfTU1DX0RXPXlcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWctODctIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnOjg4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWctODktQ09ORklHX01TRE9TX0ZTPXlcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWc9ODg9Q09ORklHX01NQ19EVz15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZy04OS0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnLTkxLUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnPTc5PUNPTkZJR19USV9BREMxMDhTMTAyPXlcXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnOjgwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnLTgxLUNPTkZJR19WRkFUX0ZTPXlcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnPTc1PUNPTkZJR19VU0JfU0VSSUFMPXlcXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZy03Ni0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZzo3NzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWc6Nzg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnLTc5LUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWc9ODI9Q09ORklHX1VJT19QRFJWX0dFTklSUT15XFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9zbXBfZGVmY29uZmlnLTgzLSMgQ09ORklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldFxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZzo4NDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9zbXBfZGVmY29uZmlnLTg1LUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNV9kZWZjb25maWc9MjY0PUNPTkZJR19QRUNJX0FTUEVFRD15XFxuYXJjaC9hcm0vY29uZmlncy9hc3BlZWRfZzVfZGVmY29uZmlnOjI2NTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9hc3BlZWRfZzVfZGVmY29uZmlnLTI2Ni1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9hdDkxX2R0X2RlZmNvbmZpZz0yMDc9Q09ORklHX1BXTV9BVE1FTF9UQ0I9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXQ5MV9kdF9kZWZjb25maWc6MjA4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnLTIwOS1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9heG01NXh4X2RlZmNvbmZpZz0xOTY9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc6MTk3OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2F4bTU1eHhfZGVmY29uZmlnLTE5OC1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvYmNtMjgzNV9kZWZjb25maWc9MTU2PUNPTkZJR19FWFQyX0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9iY20yODM1X2RlZmNvbmZpZzoxNTc6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYmNtMjgzNV9kZWZjb25maWc6MTU4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9iY20yODM1X2RlZmNvbmZpZy0xNTktQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvZGF2aW5jaV9hbGxfZGVmY29uZmlnPTIyOT1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWc6MjMwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZzoyMzE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZy0yMzItQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnPTk3PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnOjk4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnOjk5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvZG92ZV9kZWZjb25maWctMTAwLUNPTkZJR19JU085NjYwX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZz0xMDU9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZzoxMDY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZzoxMDc6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnLTEwOC1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWc9MzMyPUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWc6MzMzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWctMzM0LUNPTkZJR19BVVRPRlNfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9oaXNpX2RlZmNvbmZpZz03Nz1DT05GSUdfUEhZX0hJWDVIRDJfU0FUQT15XFxuYXJjaC9hcm0vY29uZmlncy9oaXNpX2RlZmNvbmZpZzo3ODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9oaXNpX2RlZmNvbmZpZy03OS1DT05GSUdfVE1QRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjRfdjVfZGVmY29uZmlnPTE1NT1DT05GSUdfUFdNX0lNWDI3PXlcXG5hcmNoL2FybS9jb25maWdzL2lteF92NF92NV9kZWZjb25maWc6MTU2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2lteF92NF92NV9kZWZjb25maWctMTU3LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnPTQzOT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZzo0NDI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZy00NDMtQ09ORklHX1FVT1RBPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnPTI3PUNPTkZJR19DTEtfSU1YUlQxMDUwPXlcXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZzoyODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6Mjk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZzozMDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWctMzEtQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnPTE1NT1DT05GSUdfRVhUMl9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZzoxNTY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZzoxNTc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWctMTU4LUNPTkZJR19PVkVSTEFZX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnPTIwNT1DT05GSUdfUkVTRVRfVElfU1lTQ09OPW1cXG5hcmNoL2FybS9jb25maWdzL2tleXN0b25lX2RlZmNvbmZpZzoyMDY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnOjIwNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnLTIwOC1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9taWxiZWF1dF9tMTB2X2RlZmNvbmZpZz04MT1DT05GSUdfTUVNT1JZPXlcXG5hcmNoL2FybS9jb25maWdzL21pbGJlYXV0X20xMHZfZGVmY29uZmlnLTgyLSMgQ09ORklHX0FSTV9QTVUgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWc6ODM6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWctODQtQ09ORklHX0FVVE9GU19GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL21tcDJfZGVmY29uZmlnPTU1PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL21tcDJfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL21tcDJfZGVmY29uZmlnLTU3LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnPTExND1DT05GSUdfTU9YQVJUX0RNQT15XFxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnLTExNS0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcXG5hcmNoL2FybS9jb25maWdzL21veGFydF9kZWZjb25maWc6MTE2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL21veGFydF9kZWZjb25maWctMTE3LUNPTkZJR19UTVBGUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y1X2RlZmNvbmZpZz0yNjk9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjVfZGVmY29uZmlnOjI3MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92NV9kZWZjb25maWctMjcxLUNPTkZJR19JU085NjYwX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnPTEyODM9Q09ORklHX1NUTTMyX1RJTUVSX0NOVD1tXFxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92N19kZWZjb25maWc6MTI4NDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92N19kZWZjb25maWctMTI4NS1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWc9OTM9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWc6OTQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWc6OTU6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZy05Ni1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y1X2RlZmNvbmZpZz0xNjk9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjVfZGVmY29uZmlnOjE3MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92NV9kZWZjb25maWctMTcxLUNPTkZJR19JU085NjYwX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjdfZGVmY29uZmlnPTEzMD1DT05GSUdfUEhZX01WRUJVX0EzOFhfQ09NUEhZPXlcXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y3X2RlZmNvbmZpZzoxMzE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjdfZGVmY29uZmlnLTEzMi1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL214c19kZWZjb25maWc9MTM2PUNPTkZJR19OVk1FTV9NWFNfT0NPVFA9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXhzX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXhzX2RlZmNvbmZpZy0xMzgtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnPTExOD1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9uaGs4ODE1X2RlZmNvbmZpZzoxMTk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbmhrODgxNV9kZWZjb25maWctMTIwLUNPTkZJR19GVVNFX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnPTE4ND1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMV9kZWZjb25maWc6MTg1OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL29tYXAxX2RlZmNvbmZpZy0xODYtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWc9NjgxPUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWc6NjgyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWc6NjgzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWctNjg0LUNPTkZJR19GQU5PVElGWT15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnPTExNz1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZzoxMTg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTIwOkNPTkZJR19FWFQ0X0ZTPW1cXG5hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnLTEyMS1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc9NTc1PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnOjU3ODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnLTU3OS1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvcWNvbV9kZWZjb25maWc9Mjc4PUNPTkZJR19FWFQyX0ZTX1hBVFRSPXlcXG5hcmNoL2FybS9jb25maWdzL3Fjb21fZGVmY29uZmlnOjI3OTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZy0yODAtQ09ORklHX0ZVU0VfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9ycGNfZGVmY29uZmlnPTc5PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3JwY19kZWZjb25maWc6ODA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZy04MS1DT05GSUdfQVVUT0ZTX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWc9NTQ9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWc6NTU6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWc6NTY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnLTU4LUNPTkZJR19UTVBGUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnPTEwMz1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zNXB2MjEwX2RlZmNvbmZpZzoxMDQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvczVwdjIxMF9kZWZjb25maWctMTA1LUNPTkZJR19BVVRPRlNfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zYW1hNV9kZWZjb25maWc9MjIyPUNPTkZJR19QV01fQVRNRUxfVENCPXlcXG5hcmNoL2FybS9jb25maWdzL3NhbWE1X2RlZmNvbmZpZzoyMjM6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTVfZGVmY29uZmlnLTIyNC1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zYW1hN19kZWZjb25maWc9MjE0PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NhbWE3X2RlZmNvbmZpZzoyMTU6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTdfZGVmY29uZmlnLTIxNi1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL3NvY2ZwZ2FfZGVmY29uZmlnOjEzODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZy0xMzktQ09ORklHX0FVVE9GU19GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NwNzAyMV9kZWZjb25maWc9NDA9Q09ORklHX1JFU0VUX0NPTlRST0xMRVI9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3A3MDIxX2RlZmNvbmZpZzo0MTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcDcwMjFfZGVmY29uZmlnLTQyLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnPTg1PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWc6ODY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZzo4NzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnLTg4LUNPTkZJR19BVVRPRlNfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWc9Njg9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIzeHhfZGVmY29uZmlnOjY5OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo3MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWctNzEtQ09ORklHX0FVVE9GU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZz01ND1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjZ4eF9kZWZjb25maWc6NTU6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXI2eHhfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnPTE5Mj1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6MTkzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZzoxOTQ6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWctMTk1LUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3N0bTMyX2RlZmNvbmZpZz03MT1DT05GSUdfU1RNMzJfQURDPXlcXG5hcmNoL2FybS9jb25maWdzL3N0bTMyX2RlZmNvbmZpZzo3MjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWctNzMtIyBDT05GSUdfRklMRV9MT0NLSU5HIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnPTE2Mj1DT05GSUdfTlZNRU1fU1VOWElfU0lEPXlcXG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZzoxNjM6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnLTE2NC1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZz0zMTI9Q09ORklHX1BIWV9URUdSQV9YVVNCPXlcXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTM6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxNDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxNTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy90ZWdyYV9kZWZjb25maWctMzE2LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy91ODUwMF9kZWZjb25maWc9MTc1PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3U4NTAwX2RlZmNvbmZpZzoxNzY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdTg1MDBfZGVmY29uZmlnLTE3Ny1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3ZleHByZXNzX2RlZmNvbmZpZz0xMjI9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdmV4cHJlc3NfZGVmY29uZmlnOjEyMzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy92ZXhwcmVzc19kZWZjb25maWctMTI0LUNPTkZJR19WRkFUX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvdmY2MTBtNF9kZWZjb25maWc9MzU9Q09ORklHX01GRF9TWVNDT049eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy92ZjYxMG00X2RlZmNvbmZpZy0zNy0jIENPTkZJR19VU0JfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy92ZjYxMG00X2RlZmNvbmZpZzozODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy92ZjYxMG00X2RlZmNvbmZpZy0zOS0jIENPTkZJR19NSVNDX0ZJTEVTWVNURU1TIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvdnQ4NTAwX3Y2X3Y3X2RlZmNvbmZpZz03OT1DT05GSUdfR0VORVJJQ19QSFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdnQ4NTAwX3Y2X3Y3X2RlZmNvbmZpZzo4MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy92dDg1MDBfdjZfdjdfZGVmY29uZmlnLTgxLUNPTkZJR19UTVBGUz15XFxuLS1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTE4OTg9Q09ORklHX0hURV9URUdSQTE5NF9URVNUPW1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE4OTk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6MTkwMDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6MTkwMTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZy0xOTAyLUNPTkZJR19CVFJGU19GUz1tXFxuLS1cXG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWc9MzM9Q09ORklHX0dFTkVSSUNfUEhZPXlcXG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWc6MzQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvY3NreS9jb25maWdzL2RlZmNvbmZpZy0zNS1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnPTQ4PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2hleGFnb24vY29uZmlncy9jb21ldF9kZWZjb25maWc6NDk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZzo1MDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZzo1MTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnLTUyLUNPTkZJR19RVU9UQT15XFxuLS1cXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnPTk1MD1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZzo5NTE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZzo5NTM6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWctOTU0LUNPTkZJR19KRlNfRlM9bVxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZz05ODE9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc6OTgyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc6OTg0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnLTk4NS1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZz00MDM9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnOjQwNDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnLTQwNS1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWc9MzU4PUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWc6MzU5OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnLTM2MC1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZz0zODE9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXRhcmlfZGVmY29uZmlnOjM4MjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXRhcmlfZGVmY29uZmlnLTM4My1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZz0zNTA9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnOjM1MTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnLTM1Mi1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL2hwMzAwX2RlZmNvbmZpZz0zNjA9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnOjM2MTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnLTM2Mi1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc9Mzc5PUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc6MzgwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnLTM4MS1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZz00NjY9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnOjQ2NzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnLTQ2OC1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNDdfZGVmY29uZmlnPTM1MD1DT05GSUdfREFYPW1cXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNDdfZGVmY29uZmlnLTM1Mi1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnPTM1MT1DT05GSUdfREFYPW1cXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZzozNTI6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnLTM1My1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3E0MF9kZWZjb25maWc9MzY5PUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL3E0MF9kZWZjb25maWc6MzcwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnLTM3MS1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnPTgyPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4MzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc6ODQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4NTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWctODYtIyBDT05GSUdfRklMRV9MT0NLSU5HIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjNfZGVmY29uZmlnPTM0OD1DT05GSUdfREFYPW1cXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZzozNDk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjNfZGVmY29uZmlnLTM1MC1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZz0zNDg9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnOjM0OTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnLTM1MC1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3ZpcnRfZGVmY29uZmlnPTU1PUNPTkZJR19WSVJUSU9fSU5QVVQ9eVxcbmFyY2gvbTY4ay9jb25maWdzL3ZpcnRfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvbWljcm9ibGF6ZS9jb25maWdzL21tdV9kZWZjb25maWc9NzU9Q09ORklHX1VJT19ETUVNX0dFTklSUT15XFxuYXJjaC9taWNyb2JsYXplL2NvbmZpZ3MvbW11X2RlZmNvbmZpZzo3NjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taWNyb2JsYXplL2NvbmZpZ3MvbW11X2RlZmNvbmZpZy03Ny0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc9MTM2PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjEzNzpDT05GSUdfRVhUNF9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZzoxMzg6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjEzOTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZzoxNDA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWctMTQxLUNPTkZJR19RVU9UQT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc9NTc9Q09ORklHX1VTQl9TVE9SQUdFPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc6NTg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZzo1OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZzo2MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnLTYxLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZz0xNDE9Q09ORklHX01NQ19TREhDSV9QTFRGTT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZzoxNDI6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZzoxNDQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWctMTQ1LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWc9MTM2PUNPTkZJR19SQVM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Nhdml1bV9vY3Rlb25fZGVmY29uZmlnOjEzNzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWc6MTM5OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZy0xNDAtQ09ORklHX01TRE9TX0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2NpMjBfZGVmY29uZmlnPTE2Nj1DT05GSUdfTlZNRU1fSlo0NzgwX0VGVVNFPXlcXG5hcmNoL21pcHMvY29uZmlncy9jaTIwX2RlZmNvbmZpZzoxNjc6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2NpMjBfZGVmY29uZmlnLTE2OC0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2NvYmFsdF9kZWZjb25maWc9NjE9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2NvYmFsdF9kZWZjb25maWc6NjI6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2NvYmFsdF9kZWZjb25maWc6NjM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnOjY0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnLTY1LUNPTkZJR19QUk9DX0tDT1JFPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnPTg5PUNPTkZJR19QSFlfSU5HRU5JQ19VU0I9eVxcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9jdTEwMDAtbmVvX2RlZmNvbmZpZy05MS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2N1MTgzMC1uZW9fZGVmY29uZmlnPTkyPUNPTkZJR19QSFlfSU5HRU5JQ19VU0I9eVxcbmFyY2gvbWlwcy9jb25maWdzL2N1MTgzMC1uZW9fZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZy05NC0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc9MTY5PUNPTkZJR19SVENfRFJWX0FVMVhYWD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGIxeHh4X2RlZmNvbmZpZzoxNzA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGIxeHh4X2RlZmNvbmZpZzoxNzI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWctMTczLUNPTkZJR19YRlNfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc9MTM1PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZzoxMzY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEzNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEzODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWctMTM5LUNPTkZJR19JU085NjYwX0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnPTEzMT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTMyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZzoxMzM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZzoxMzQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnLTEzNS1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc9MTMxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTMyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTMzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEzNDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnLTEzNS1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc9ODk9Q09ORklHX1JFU0VUX0NPTlRST0xMRVI9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZy05MC0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkxOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc6OTM6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZy05NC1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc9ODg9Q09ORklHX1JFU0VUX0NPTlRST0xMRVI9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZy04OS0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZy05My1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZz05Nj1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWctOTctIyBDT05GSUdfTlZNRU0gaXMgbm90IHNldFxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnOjk4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnOjEwMDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWctMTAxLUNPTkZJR19GU19FTkNSWVBUSU9OPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc9MTc0PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnOjE3NTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnOjE3NzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZy0xNzgtQ09ORklHX0FVVE9GU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9nY3cwX2RlZmNvbmZpZz0xMzQ9Q09ORklHX1BXTV9KWjQ3NDA9eVxcbmFyY2gvbWlwcy9jb25maWdzL2djdzBfZGVmY29uZmlnOjEzNTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2N3MF9kZWZjb25maWctMTM2LUNPTkZJR19WRkFUX0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnPTU1PUNPTkZJR19ISURfTU9OVEVSRVk9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWctNTctIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc6NTg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjU5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc6NjA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnLTYxLUNPTkZJR19GU19FTkNSWVBUSU9OPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnPTIzMz1DT05GSUdfRVhUMl9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWc6MjM0OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZzoyMzU6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZzoyMzY6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnLTIzNy1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnPTI3Mj1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc6MjczOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZzoyNzQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZzoyNzU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnLTI3Ni1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnPTUxPUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZzo1MjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZzo1NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWctNTUtQ09ORklHX1FVT1RBPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnPTE0ND1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc6MTQ1OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnLTE0OC1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnPTkwPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZzo5MTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZzo5MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWctOTQtQ09ORklHX1FVT1RBPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2phenpfZGVmY29uZmlnPTcwPUNPTkZJR19FWFQyX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9qYXp6X2RlZmNvbmZpZzo3MTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWctNzItQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sZW1vdGUyZl9kZWZjb25maWc9MjI3PUNPTkZJR19FWFQyX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9sZW1vdGUyZl9kZWZjb25maWc6MjI4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9sZW1vdGUyZl9kZWZjb25maWc6MjI5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnOjIzMDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnLTIzMS1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc9MTQ4PUNPTkZJR19MT09OR1NPTjFfQVBCX0RNQT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnLTE1My0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZzoxNTQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU1OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZy0xNTYtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZz0yOTg9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnOjI5OTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZy0zMDItQ09ORklHX1hGU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnPTM0OT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzozNTA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc6MzUxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzozNTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWctMzUzLUNPTkZJR19YRlNfRlM9eVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNjo1NjozNS4yNjY2MTE1NDZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTc4MDU2Mzg3MTc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgZXZhbHVhdGluZyB0aGlzOlxuXG4qKkluaXRpYWwgQ29uZmlndXJhdGlvbiBDaGVjazogRVhUNCBJbmxpbmUgRGF0YSoqXG5cbkFscmlnaHQsIHNvIGBDT05GSUdfRVhUNF9GU2AgaXMgdGhlIG9idmlvdXMgc3RhcnRpbmcgcG9pbnQuIFRoYXQncyB0aGUgY29yZSBleHQ0IGZpbGVzeXN0ZW0gY29uZmlndXJhdGlvbi4gQnV0IHRoaXMgaXMgYWJvdXQgKmlubGluZSogZGF0YSwgd2hpY2ggaGFzIGl0cyBvd24gbnVhbmNlcy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIGFueSBkZXBlbmRlbmNpZXMgb3Igc3VwcG9ydGluZyBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIHNwZWNpZmljYWxseSBmb3IgaW5saW5lIGRhdGEgaGFuZGxpbmcgd2l0aGluIGV4dDQuIEknbGwgbmVlZCB0byBkaWcgYSBsaXR0bGUgZGVlcGVyIHRvIGVuc3VyZSBldmVyeXRoaW5nIGlzIHNldCB1cCBjb3JyZWN0bHkgZm9yIHRoYXQgZmVhdHVyZS4gTGV0J3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlncyBsdXJraW5nIGFyb3VuZCB0aGF0IEkgc2hvdWxkIGNvbnNpZGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDI4MywiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjU5OjMzLjMyMzAwMjQ5WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDIxNjMwMzQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19FWFQ0X0ZTX1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnPTE1Nz1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9iY20yODM1X2RlZmNvbmZpZzoxNTg6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnLTE1OS1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWc9MjMwPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZzoyMzE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZy0yMzItQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnPTk4PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnOjk5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvZG92ZV9kZWZjb25maWctMTAwLUNPTkZJR19JU085NjYwX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZz0xMDY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZzoxMDc6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnLTEwOC1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc9NDQwPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnLTQ0My1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc9Mjg9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnOjI5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6MzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnLTMxLUNPTkZJR19WRkFUX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZz0xNTY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZzoxNTc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWctMTU4LUNPTkZJR19PVkVSTEFZX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnPTIwNj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWc6MjA3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWctMjA4LUNPTkZJR19GQU5PVElGWT15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnPTk0PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnOjk1OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWctOTYtQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnPTY4Mj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnOjY4MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnLTY4NC1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZz0xMTg9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWctMTIwLUNPTkZJR19FWFQ0X0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZz01NzY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZzo1Nzc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWctNTc5LUNPTkZJR19YRlNfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZz01NT1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWc6NTc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWctNTgtQ09ORklHX1RNUEZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZz04Nj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnOjg3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWctODgtQ09ORklHX0FVVE9GU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZz02OT1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWc6NzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIzeHhfZGVmY29uZmlnLTcxLUNPTkZJR19BVVRPRlNfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjZ4eF9kZWZjb25maWc9NTU9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXI2eHhfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnPTE5Mz1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6MTk0OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnLTE5NS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy90ZWdyYV9kZWZjb25maWc9MzEzPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnLTMxNi0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc9MTg5OT1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzoxOTAwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzoxOTAxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnLTE5MDItQ09ORklHX0JUUkZTX0ZTPW1cXG4tLVxcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZz00OT1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjUwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjUxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2hleGFnb24vY29uZmlncy9jb21ldF9kZWZjb25maWctNTItQ09ORklHX1FVT1RBPXlcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9OTUxPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjk1MjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTk1NC1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc9OTgyPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc6OTg0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnLTk4NS1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnPTgzPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4NDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnOjg1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZy04Ni0jIENPTkZJR19GSUxFX0xPQ0tJTkcgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDRfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZzoxMzk6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWctMTQwLUNPTkZJR19FWFQ0X0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZz01OD1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjU5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjYwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWctNjEtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnPTE0Mj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZzoxNDM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnOjE0NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZy0xNDUtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Nhdml1bV9vY3Rlb25fZGVmY29uZmlnOjEzODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Nhdml1bV9vY3Rlb25fZGVmY29uZmlnOjEzOTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWctMTQwLUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnPTYyPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnOjYzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZzo2NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZy02NS1DT05GSUdfUFJPQ19LQ09SRT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnPTE3MD1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGIxeHh4X2RlZmNvbmZpZzoxNzE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnOjE3MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGIxeHh4X2RlZmNvbmZpZy0xNzMtQ09ORklHX1hGU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZz0xMzY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEzNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEzODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWctMTM5LUNPTkZJR19JU085NjYwX0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnPTEzMj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTMzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTM0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnPTEzMj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEzMzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZzoxMzQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnPTkxPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc6OTM6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZy05NC1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc9OTA9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZzo5MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZzo5MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnLTkzLUNPTkZJR19GU19FTkNSWVBUSU9OPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnPTk4PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnOjEwMDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWctMTAxLUNPTkZJR19GU19FTkNSWVBUSU9OPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc9MTc1PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnOjE3NjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc6MTc3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnLTE3OC1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnPTU4PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzo1OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjYwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZy02MS1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZz0yMzQ9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWctMjM3LUNPTkZJR19YRlNfRlM9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc9MjczPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZzoyNzQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZzoyNzU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnLTI3Ni1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnPTUyPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZzo1MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnOjU0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZy01NS1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc9MTQ1PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnLTE0OC1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnPTkxPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZzo5MjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZy05NC1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnPTIyOD1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnOjIyOTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZzoyMzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZy0yMzEtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnPTE1ND1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZzoxNTU6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnLTE1Ni0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnPTI5OT1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZy0zMDItQ09ORklHX1hGU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnPTM1MD1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZy0zNTMtQ09ORklHX1hGU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXNtdnBfZGVmY29uZmlnPTE0OD1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFzbXZwX2RlZmNvbmZpZzoxNDk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXNtdnBfZGVmY29uZmlnOjE1MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFzbXZwX2RlZmNvbmZpZy0xNTEtQ09ORklHX1hGU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9tdHgxX2RlZmNvbmZpZz01NTM9Q09ORklHX0VYVDRfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnOjU1NDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnOjU1NTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbXR4MV9kZWZjb25maWctNTU2LUNPTkZJR19RVU9UQT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9waWMzMm16ZGFfZGVmY29uZmlnPTY2PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9waWMzMm16ZGFfZGVmY29uZmlnOjY3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvcGljMzJtemRhX2RlZmNvbmZpZzo2ODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvcGljMzJtemRhX2RlZmNvbmZpZy02OS1DT05GSUdfQVVUT0ZTX0ZTPW1cXG4tLVxcbmFyY2gvb3BlbnJpc2MvY29uZmlncy92aXJ0X2RlZmNvbmZpZz05Nz1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9vcGVucmlzYy9jb25maWdzL3ZpcnRfZGVmY29uZmlnOjk4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9vcGVucmlzYy9jb25maWdzL3ZpcnRfZGVmY29uZmlnLTk5LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9wYXJpc2MvY29uZmlncy9nZW5lcmljLTMyYml0X2RlZmNvbmZpZz0yMzM9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcGFyaXNjL2NvbmZpZ3MvZ2VuZXJpYy0zMmJpdF9kZWZjb25maWc6MjM0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtMzJiaXRfZGVmY29uZmlnLTIzNS1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC9wYXJpc2MvY29uZmlncy9nZW5lcmljLTY0Yml0X2RlZmNvbmZpZz0yNTI9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcGFyaXNjL2NvbmZpZ3MvZ2VuZXJpYy02NGJpdF9kZWZjb25maWc6MjUzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtNjRiaXRfZGVmY29uZmlnLTI1NC1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9ha2Vib25vX2RlZmNvbmZpZz0xMDY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9ha2Vib25vX2RlZmNvbmZpZzoxMDc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvYWtlYm9ub19kZWZjb25maWc6MTA4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvYWtlYm9ub19kZWZjb25maWctMTA5LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2N1cnJpdHVja19kZWZjb25maWc9NjY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9jdXJyaXR1Y2tfZGVmY29uZmlnOjY3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2N1cnJpdHVja19kZWZjb25maWc6Njg6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9jdXJyaXR1Y2tfZGVmY29uZmlnLTY5LUNPTkZJR19QUk9DX0tDT1JFPXlcXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9mc3AyX2RlZmNvbmZpZz05ND1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2ZzcDJfZGVmY29uZmlnOjk1OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2ZzcDJfZGVmY29uZmlnOjk2OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvZnNwMl9kZWZjb25maWctOTctQ09ORklHX1BST0NfS0NPUkU9eVxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2lzczQ3Ni1zbXBfZGVmY29uZmlnPTUyPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvaXNzNDc2LXNtcF9kZWZjb25maWc6NTM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvaXNzNDc2LXNtcF9kZWZjb25maWc6NTQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9pc3M0NzYtc21wX2RlZmNvbmZpZy01NS1DT05GSUdfUFJPQ19LQ09SRT15XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvc2FtNDQwZXBfZGVmY29uZmlnPTc5PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvc2FtNDQwZXBfZGVmY29uZmlnOjgwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L3NhbTQ0MGVwX2RlZmNvbmZpZy04MS1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvZ2VfaW1wM2FfZGVmY29uZmlnPTE2Mz1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9nZV9pbXAzYV9kZWZjb25maWc6MTY0OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9nZV9pbXAzYV9kZWZjb25maWctMTY1LUNPTkZJR19GVVNFX0ZTPXlcXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZz0yMDE9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZzoyMDI6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy9nNV9kZWZjb25maWc6MjAzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy9nNV9kZWZjb25maWctMjA0LUNPTkZJR19YRlNfRlM9bVxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG1hYzMyX2RlZmNvbmZpZz0yNTY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWc6MjU3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG1hYzMyX2RlZmNvbmZpZy0yNTgtQ09ORklHX0FVVE9GU19GUz1tXFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZz0yNTc9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3Bvd2VybnZfZGVmY29uZmlnOjI1ODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3Bvd2VybnZfZGVmY29uZmlnOjI1OTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG93ZXJudl9kZWZjb25maWctMjYwLUNPTkZJR19KRlNfRlM9bVxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnPTMxNT1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnOjMxNjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0X2RlZmNvbmZpZzozMTc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0X2RlZmNvbmZpZy0zMTgtQ09ORklHX1hGU19GUz15XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NGVfZGVmY29uZmlnPTE3Mj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRlX2RlZmNvbmZpZzoxNzM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NGVfZGVmY29uZmlnOjE3NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRlX2RlZmNvbmZpZy0xNzUtQ09ORklHX0pGU19GUz15XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnPTkyMD1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZzo5MjE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnOjkyMjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZy05MjMtQ09ORklHX0pCRDJfREVCVUc9eVxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvc2tpcm9vdF9kZWZjb25maWc9MjQ2PUNPTkZJR19FWFQ0X0ZTPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9za2lyb290X2RlZmNvbmZpZzoyNDc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy9za2lyb290X2RlZmNvbmZpZzoyNDg6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3NraXJvb3RfZGVmY29uZmlnLTI0OS1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvcmlzY3YvY29uZmlncy9kZWZjb25maWc9Mjc4PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnOjI3OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvcmlzY3YvY29uZmlncy9kZWZjb25maWc6MjgwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnLTI4MS1DT05GSUdfQlRSRlNfRlM9bVxcbi0tXFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnPTY1Mj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnOjY1MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZzo2NTQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZy02NTUtQ09ORklHX0pCRDJfREVCVUc9eVxcbi0tXFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnPTY0Mj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnOjY0MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZzo2NDQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZy02NDUtQ09ORklHX0pCRDJfREVCVUc9eVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL2FwMzI1cnhhX2RlZmNvbmZpZz04ND1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9zaC9jb25maWdzL2FwMzI1cnhhX2RlZmNvbmZpZzo4NTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvc2gvY29uZmlncy9hcDMyNXJ4YV9kZWZjb25maWc6ODY6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvc2gvY29uZmlncy9hcDMyNXJ4YV9kZWZjb25maWctODctQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL2Vjb3ZlYzI0X2RlZmNvbmZpZz0xMTA9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvc2gvY29uZmlncy9lY292ZWMyNF9kZWZjb25maWc6MTExOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9zaC9jb25maWdzL2Vjb3ZlYzI0X2RlZmNvbmZpZzoxMTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvc2gvY29uZmlncy9lY292ZWMyNF9kZWZjb25maWctMTEzLUNPTkZJR19WRkFUX0ZTPXlcXG4tLVxcbmFyY2gvc2gvY29uZmlncy9tYWdpY3BhbmVscjJfZGVmY29uZmlnPTY3PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3NoL2NvbmZpZ3MvbWFnaWNwYW5lbHIyX2RlZmNvbmZpZzo2ODojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcXG5hcmNoL3NoL2NvbmZpZ3MvbWFnaWNwYW5lbHIyX2RlZmNvbmZpZy02OS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvc2gvY29uZmlncy9zZGs3NzgwX2RlZmNvbmZpZz0xMDU9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvc2gvY29uZmlncy9zZGs3NzgwX2RlZmNvbmZpZzoxMDY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3NoL2NvbmZpZ3Mvc2RrNzc4MF9kZWZjb25maWctMTA3LUNPTkZJR19BVVRPRlNfRlM9eVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL3NlNzcyNF9kZWZjb25maWc9MTEwPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3NoL2NvbmZpZ3Mvc2U3NzI0X2RlZmNvbmZpZzoxMTE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3NoL2NvbmZpZ3Mvc2U3NzI0X2RlZmNvbmZpZzoxMTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvc2gvY29uZmlncy9zZTc3MjRfZGVmY29uZmlnLTExMy1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL3NoL2NvbmZpZ3Mvc2gwM19kZWZjb25maWc9NjA9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvc2gvY29uZmlncy9zaDAzX2RlZmNvbmZpZzo2MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvc2gvY29uZmlncy9zaDAzX2RlZmNvbmZpZy02Mi1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWc9MjE4PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnOjIxOTojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcXG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnLTIyMC1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvc3BhcmMvY29uZmlncy9zcGFyYzY0X2RlZmNvbmZpZz0xODg9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvc3BhcmMvY29uZmlncy9zcGFyYzY0X2RlZmNvbmZpZzoxODk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3NwYXJjL2NvbmZpZ3Mvc3BhcmM2NF9kZWZjb25maWc6MTkwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3NwYXJjL2NvbmZpZ3Mvc3BhcmM2NF9kZWZjb25maWctMTkxLUNPTkZJR19QUk9DX0tDT1JFPXlcXG4tLVxcbmFyY2gveDg2L2NvbmZpZ3MvaTM4Nl9kZWZjb25maWc9MjMzPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnOjIzNDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gveDg2L2NvbmZpZ3MvaTM4Nl9kZWZjb25maWc6MjM1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnLTIzNi1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC94ODYvY29uZmlncy94ODZfNjRfZGVmY29uZmlnPTIzND1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC94ODYvY29uZmlncy94ODZfNjRfZGVmY29uZmlnOjIzNTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZzoyMzY6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZy0yMzctQ09ORklHX1FVT1RBPXlcXG4tLVxcbmZzL2V4dDQvTWFrZWZpbGU9OD1leHQ0LXlcXHQ6PSBiYWxsb2MubyBiaXRtYXAubyBibG9ja192YWxpZGl0eS5vIGRpci5vIGV4dDRfamJkMi5vIGV4dGVudHMubyBcXFxcXFxuLS1cXG5mcy9leHQ0L01ha2VmaWxlLTE0LVxcbmZzL2V4dDQvTWFrZWZpbGU6MTU6ZXh0NC0kKENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTClcXHQrPSBhY2wub1xcbmZzL2V4dDQvTWFrZWZpbGU6MTY6ZXh0NC0kKENPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZKVxcdFxcdCs9IHhhdHRyX3NlY3VyaXR5Lm9cXG5mcy9leHQ0L01ha2VmaWxlLTE3LWV4dDQtdGVzdC1vYmpzXFx0XFx0XFx0XFx0Kz0gaW5vZGUtdGVzdC5vIG1iYWxsb2MtdGVzdC5vIFxcXFxcXG4tLVxcbmZzL2V4dDQvYWNsLmg9Mzk9c3RhdGljIGlubGluZSBpbnQgZXh0NF9hY2xfY291bnQoc2l6ZV90IHNpemUpXFxuLS1cXG5mcy9leHQ0L2FjbC5oLTU0LVxcbmZzL2V4dDQvYWNsLmg6NTU6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTFxcbmZzL2V4dDQvYWNsLmgtNTYtXFxuLS1cXG5mcy9leHQ0L2FjbC5oPTYxPWV4dGVybiBpbnQgZXh0NF9pbml0X2FjbChoYW5kbGVfdCAqLCBzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGlub2RlICopO1xcbmZzL2V4dDQvYWNsLmgtNjItXFxuZnMvZXh0NC9hY2wuaDo2MzojZWxzZSAgLyogQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMICovXFxuZnMvZXh0NC9hY2wuaC02NC0jaW5jbHVkZSBcXHUwMDNjbGludXgvc2NoZWQuaFxcdTAwM2VcXG4tLVxcbmZzL2V4dDQvYWNsLmg9Njk9ZXh0NF9pbml0X2FjbChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaW5vZGUgKmRpcilcXG4tLVxcbmZzL2V4dDQvYWNsLmgtNzItfVxcbmZzL2V4dDQvYWNsLmg6NzM6I2VuZGlmICAvKiBDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0wgKi9cXG5mcy9leHQ0L2FjbC5oLTc0LVxcbi0tXFxuZnMvZXh0NC9pYWxsb2MuYz04NzY9c3RhdGljIGludCBleHQ0X3hhdHRyX2NyZWRpdHNfZm9yX25ld19pbm9kZShzdHJ1Y3QgaW5vZGUgKmRpciwgbW9kZV90IG1vZGUsXFxuLS1cXG5mcy9leHQ0L2lhbGxvYy5jLTg4MC1cXHRpbnQgbmJsb2NrcyA9IDA7XFxuZnMvZXh0NC9pYWxsb2MuYzo4ODE6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTFxcbmZzL2V4dDQvaWFsbG9jLmMtODgyLVxcdHN0cnVjdCBwb3NpeF9hY2wgKnAgPSBnZXRfaW5vZGVfYWNsKGRpciwgQUNMX1RZUEVfREVGQVVMVCk7XFxuLS1cXG5mcy9leHQ0L3N1cGVyLmM9MTg3OT1zdGF0aWMgY29uc3Qgc3RydWN0IG1vdW50X29wdHMge1xcbi0tXFxuZnMvZXh0NC9zdXBlci5jLTE5MjItXFx0e09wdF91c2VyX3hhdHRyLCBFWFQ0X01PVU5UX1hBVFRSX1VTRVIsIE1PUFRfU0VUfSxcXG5mcy9leHQ0L3N1cGVyLmM6MTkyMzojaWZkZWYgQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMXFxuZnMvZXh0NC9zdXBlci5jLTE5MjQtXFx0e09wdF9hY2wsIEVYVDRfTU9VTlRfUE9TSVhfQUNMLCBNT1BUX1NFVH0sXFxuLS1cXG5mcy9leHQ0L3N1cGVyLmM9NDM4OD1zdGF0aWMgdm9pZCBleHQ0X3NldF9kZWZfb3B0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLFxcbi0tXFxuZnMvZXh0NC9zdXBlci5jLTQ0MDMtXFx0c2V0X29wdChzYiwgWEFUVFJfVVNFUik7XFxuZnMvZXh0NC9zdXBlci5jOjQ0MDQ6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTFxcbmZzL2V4dDQvc3VwZXIuYy00NDA1LVxcdHNldF9vcHQoc2IsIFBPU0lYX0FDTCk7XFxuLS1cXG5mcy9leHQ0L3hhdHRyLmM9ODg9c3RhdGljIGNvbnN0IHN0cnVjdCB4YXR0cl9oYW5kbGVyICogY29uc3QgZXh0NF94YXR0cl9oYW5kbGVyX21hcFtdID0ge1xcbmZzL2V4dDQveGF0dHIuYy04OS1cXHRbRVhUNF9YQVRUUl9JTkRFWF9VU0VSXVxcdFxcdCAgICAgPSBcXHUwMDI2ZXh0NF94YXR0cl91c2VyX2hhbmRsZXIsXFxuZnMvZXh0NC94YXR0ci5jOjkwOiNpZmRlZiBDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0xcXG5mcy9leHQ0L3hhdHRyLmMtOTEtXFx0W0VYVDRfWEFUVFJfSU5ERVhfUE9TSVhfQUNMX0FDQ0VTU10gID0gXFx1MDAyNm5vcF9wb3NpeF9hY2xfYWNjZXNzLFxcbi0tXFxuZnMvZXh0NC94YXR0ci5jLTk0LVxcdFtFWFQ0X1hBVFRSX0lOREVYX1RSVVNURURdXFx0ICAgICA9IFxcdTAwMjZleHQ0X3hhdHRyX3RydXN0ZWRfaGFuZGxlcixcXG5mcy9leHQ0L3hhdHRyLmM6OTU6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZXFxuZnMvZXh0NC94YXR0ci5jLTk2LVxcdFtFWFQ0X1hBVFRSX0lOREVYX1NFQ1VSSVRZXVxcdCAgICAgPSBcXHUwMDI2ZXh0NF94YXR0cl9zZWN1cml0eV9oYW5kbGVyLFxcbi0tXFxuZnMvZXh0NC94YXR0ci5jPTEwMT1jb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciAqIGNvbnN0IGV4dDRfeGF0dHJfaGFuZGxlcnNbXSA9IHtcXG4tLVxcbmZzL2V4dDQveGF0dHIuYy0xMDMtXFx0XFx1MDAyNmV4dDRfeGF0dHJfdHJ1c3RlZF9oYW5kbGVyLFxcbmZzL2V4dDQveGF0dHIuYzoxMDQ6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZXFxuZnMvZXh0NC94YXR0ci5jLTEwNS1cXHRcXHUwMDI2ZXh0NF94YXR0cl9zZWN1cml0eV9oYW5kbGVyLFxcbi0tXFxuZnMvZXh0NC94YXR0ci5oPTIxMz1fX3hhdHRyX2NoZWNrX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2hlYWRlciAqaGVhZGVyLFxcbi0tXFxuZnMvZXh0NC94YXR0ci5oLTIxOC1cXG5mcy9leHQ0L3hhdHRyLmg6MjE5OiNpZmRlZiBDT05GSUdfRVhUNF9GU19TRUNVUklUWVxcbmZzL2V4dDQveGF0dHIuaC0yMjAtZXh0ZXJuIGludCBleHQ0X2luaXRfc2VjdXJpdHkoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSxcXG4tLVxcbnNjcmlwdHMvc2VsaW51eC9tZHAvbWRwLmM9Mzg9aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSlcXG4tLVxcbnNjcmlwdHMvc2VsaW51eC9tZHAvbWRwLmMtMTU5LSNlbmRpZlxcbnNjcmlwdHMvc2VsaW51eC9tZHAvbWRwLmM6MTYwOiNpZmRlZiBDT05GSUdfRVhUNF9GU19TRUNVUklUWVxcbnNjcmlwdHMvc2VsaW51eC9tZHAvbWRwLmMtMTYxLSNpZmRlZiBDT05GSUdfRVhUNF9VU0VfRk9SX0VYVDJcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2ND00Nj1DT05GSUdfRVhQRVJUPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLmFhcmNoNjQ6NDc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLmFhcmNoNjQ6NDg6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2NC00OS1DT05GSUdfRVhUNF9GUz15XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnBwYzY0ZWw9Mjg9Q09ORklHX0VYUEVSVD15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5wcGM2NGVsOjI5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5wcGM2NGVsOjMwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnBwYzY0ZWwtMzEtQ09ORklHX0VYVDRfRlM9eVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5yaXNjdjY0PTI1PUNPTkZJR19FWFQ0X0ZTPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnJpc2N2NjQ6MjY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnJpc2N2NjQ6Mjc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcucmlzY3Y2NC0yOC1DT05GSUdfRlJBTUVfUE9JTlRFUj15XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnMzOTB4PTM1PUNPTkZJR19FWFQ0X0ZTPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnMzOTB4OjM2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5zMzkweDozNzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5zMzkweC0zOC1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy54ODZfNjQ9NTk9Q09ORklHX0VYVDRfRlM9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcueDg2XzY0OjYwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy54ODZfNjQ6NjE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcueDg2XzY0LTYyLUNPTkZJR19GQUlMX0ZVTkNUSU9OPXlcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2hpZC9jb25maWcuY29tbW9uPTU5PUNPTkZJR19FWFBFUlQ9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2hpZC9jb25maWcuY29tbW9uOjYwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvaGlkL2NvbmZpZy5jb21tb246NjE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2hpZC9jb25maWcuY29tbW9uLTYyLUNPTkZJR19FWFQ0X0ZTPXlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTY6NTk6MzUuMzQ0NjM5MjkzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2NzkyNjU1MzE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJbmxpbmUgRGF0YSBDb25maWd1cmF0aW9uIC0gSW5pdGlhbCBBc3Nlc3NtZW50IFx1MDAyNiBWZXJpZmljYXRpb24qKlxuXG5SaWdodCwgc28sIHN0cmFpZ2h0IG9mZiB0aGUgYmF0LCBubyBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbiBzZWVtcyB0byBleGlzdCBkZWRpY2F0ZWQgdG8gaW5saW5lIGRhdGEuIFRoZSBjb2RlIG1lbnRpb25zIGBFWFQ0X0ZTYCwgd2hpY2ggSSdtIHRha2luZyBhcyB0aGUgcHJpbWFyeSBpbmRpY2F0b3IuIEhvd2V2ZXIsIGl0J3MgYWx3YXlzIGJlc3QgdG8gYmUgbWV0aWN1bG91cywgYW5kIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCBoaWRkZW4gZGVwZW5kZW5jaWVzIG9yIGluZGlyZWN0IGNvbmZpZ3VyYXRpb25zIGNhbiBvZnRlbiBjYXRjaCB5b3Ugb3V0LiBHaXZlbiBteSBkZWVwIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGludHJpY2FjaWVzIG9mIGBleHQ0YCwgSSBuZWVkIHRvIGltbWVkaWF0ZWx5IHZlcmlmeSB0aGlzIGluaXRpYWwgYXNzdW1wdGlvbi5cblxuU28sIEkgbmVlZCB0byBtZXRob2RpY2FsbHkgY2hlY2sgZm9yIGFueSBvdGhlciByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBtaWdodCBpbmZsdWVuY2UgaW5saW5lIGRhdGEgYmVoYXZpb3VyLCBldmVuIGlmIHRoZXkgYXJlbid0IGV4cGxpY2l0bHkgbmFtZWQuIElzIHRoZXJlIHNvbWV0aGluZyB0aWVkIHRvIGJsb2NrIHNpemVzLCBqb3VybmFsaW5nLCBvciBjb21wcmVzc2lvbiB0aGF0IGNvdWxkIGluYWR2ZXJ0ZW50bHkgaW50ZXJhY3Qgd2l0aCBpbmxpbmUgZGF0YSBoYW5kbGluZz8gUGVyaGFwcyB0aGVyZSdzIGFuIG9ic2N1cmUgYnVpbGQgZmxhZyBvciBrZXJuZWwgcGFyYW1ldGVyIHRoYXQgSSdtIG92ZXJsb29raW5nPyBUaGlzIGlzIGFib3V0IGVuc3VyaW5nIGNvbXBsZXRlIGNlcnRhaW50eSBiZWZvcmUgbW92aW5nIGZvcndhcmQgd2l0aCBhbnkgZnVydGhlciBhbmFseXNpcyBvciBtb2RpZmljYXRpb25zLiBJJ2xsIHN0YXJ0IGJ5IHJldmlld2luZyB0aGUga2VybmVsIGNvbmZpZyBvcHRpb25zLCBhbmQgdGhlbiBjaGVjayBhbnkgYnVpbGQgc2NyaXB0cyB3aGljaCBtYXkgYWZmZWN0IGV4dDQgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzExMDYsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNjo1OTo1Mi4xMzcyOTk4NjdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2MDg5Mzc3MDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX0VYVDRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMzEzIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWc9ODg9Q09ORklHX01NQ19EVz15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDFfZGVmY29uZmlnLTg5LSMgQ09ORklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldFxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZzo5MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDFfZGVmY29uZmlnLTkxLUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc9ODY9Q09ORklHX01NQ19EVz15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnLTg3LSMgQ09ORklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldFxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX2RlZmNvbmZpZzo4ODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnLTg5LUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnPTg4PUNPTkZJR19NTUNfRFc9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWctODktIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZzo5MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZy05MS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZz03OT1DT05GSUdfVElfQURDMTA4UzEwMj15XFxuYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZzo4MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZy04MS1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZz03NT1DT05GSUdfVVNCX1NFUklBTD15XFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWctNzYtIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWc6Nzc6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnOjc4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZy03OS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9zbXBfZGVmY29uZmlnPTgyPUNPTkZJR19VSU9fUERSVl9HRU5JUlE9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZy04My0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWc6ODQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZy04NS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9hc3BlZWRfZzVfZGVmY29uZmlnPTI2ND1DT05GSUdfUEVDSV9BU1BFRUQ9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZzoyNjU6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZy0yNjYtQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXQ5MV9kdF9kZWZjb25maWc9MjA3PUNPTkZJR19QV01fQVRNRUxfVENCPXlcXG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnOjIwODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9hdDkxX2R0X2RlZmNvbmZpZy0yMDktQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc9MTk2PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2F4bTU1eHhfZGVmY29uZmlnOjE5NzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9heG01NXh4X2RlZmNvbmZpZy0xOTgtQ09ORklHX0FVVE9GU19GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnPTE1Nj1DT05GSUdfRVhUMl9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYmNtMjgzNV9kZWZjb25maWc6MTU3OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnOjE1ODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYmNtMjgzNV9kZWZjb25maWctMTU5LUNPTkZJR19GQU5PVElGWT15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZz0yMjk9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvZGF2aW5jaV9hbGxfZGVmY29uZmlnOjIzMDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWc6MjMxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWctMjMyLUNPTkZJR19YRlNfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZz05Nz1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZzo5ODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZzo5OTojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcXG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnLTEwMC1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWc9MTA1PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWc6MTA2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWc6MTA3OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZy0xMDgtQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9leHlub3NfZGVmY29uZmlnPTMzMj1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9leHlub3NfZGVmY29uZmlnOjMzMzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9leHlub3NfZGVmY29uZmlnLTMzNC1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaGlzaV9kZWZjb25maWc9Nzc9Q09ORklHX1BIWV9ISVg1SEQyX1NBVEE9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaGlzaV9kZWZjb25maWc6Nzg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaGlzaV9kZWZjb25maWctNzktQ09ORklHX1RNUEZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y0X3Y1X2RlZmNvbmZpZz0xNTU9Q09ORklHX1BXTV9JTVgyNz15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjRfdjVfZGVmY29uZmlnOjE1NjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjRfdjVfZGVmY29uZmlnLTE1Ny0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZz00Mzk9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZzo0NDA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZzo0NDE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWctNDQzLUNPTkZJR19RVU9UQT15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZz0yNz1DT05GSUdfQ0xLX0lNWFJUMTA1MD15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6Mjg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnOjI5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6MzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnLTMxLUNPTkZJR19WRkFUX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZz0xNTU9Q09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWc6MTU2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWc6MTU3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnLTE1OC1DT05GSUdfT1ZFUkxBWV9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2tleXN0b25lX2RlZmNvbmZpZz0yMDU9Q09ORklHX1JFU0VUX1RJX1NZU0NPTj1tXFxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWc6MjA2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2tleXN0b25lX2RlZmNvbmZpZzoyMDc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2tleXN0b25lX2RlZmNvbmZpZy0yMDgtQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWc9ODE9Q09ORklHX01FTU9SWT15XFxuYXJjaC9hcm0vY29uZmlncy9taWxiZWF1dF9tMTB2X2RlZmNvbmZpZy04Mi0jIENPTkZJR19BUk1fUE1VIGlzIG5vdCBzZXRcXG5hcmNoL2FybS9jb25maWdzL21pbGJlYXV0X20xMHZfZGVmY29uZmlnOjgzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL21pbGJlYXV0X20xMHZfZGVmY29uZmlnLTg0LUNPTkZJR19BVVRPRlNfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9tbXAyX2RlZmNvbmZpZz01NT1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9tbXAyX2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9tbXAyX2RlZmNvbmZpZy01Ny0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbW94YXJ0X2RlZmNvbmZpZz0xMTQ9Q09ORklHX01PWEFSVF9ETUE9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbW94YXJ0X2RlZmNvbmZpZy0xMTUtIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnOjExNjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnLTExNy1DT05GSUdfVE1QRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92NV9kZWZjb25maWc9MjY5PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y1X2RlZmNvbmZpZzoyNzA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjVfZGVmY29uZmlnLTI3MS1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y3X2RlZmNvbmZpZz0xMjgzPUNPTkZJR19TVE0zMl9USU1FUl9DTlQ9bVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnOjEyODQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnLTEyODUtQ09ORklHX0FVVE9GU19GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnPTkzPUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnOjk0OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnOjk1OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWctOTYtQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92NV9kZWZjb25maWc9MTY5PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y1X2RlZmNvbmZpZzoxNzA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjVfZGVmY29uZmlnLTE3MS1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y3X2RlZmNvbmZpZz0xMzA9Q09ORklHX1BIWV9NVkVCVV9BMzhYX0NPTVBIWT15XFxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92N19kZWZjb25maWc6MTMxOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y3X2RlZmNvbmZpZy0xMzItQ09ORklHX0lTTzk2NjBfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9teHNfZGVmY29uZmlnPTEzNj1DT05GSUdfTlZNRU1fTVhTX09DT1RQPXlcXG5hcmNoL2FybS9jb25maWdzL214c19kZWZjb25maWc6MTM3OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL214c19kZWZjb25maWctMTM4LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9uaGs4ODE1X2RlZmNvbmZpZz0xMTg9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbmhrODgxNV9kZWZjb25maWc6MTE5OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnLTEyMC1DT05GSUdfRlVTRV9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL29tYXAxX2RlZmNvbmZpZz0xODQ9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnOjE4NTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMV9kZWZjb25maWctMTg2LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnPTY4MT1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnOjY4MjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnOjY4MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnLTY4NC1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZz0xMTc9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnOjExOTojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcXG5hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnOjEyMDpDT05GSUdfRVhUNF9GUz1tXFxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZy0xMjEtQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnPTU3NT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnOjU3NjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnOjU3NzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZzo1Nzg6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy01NzktQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3Fjb21fZGVmY29uZmlnPTI3OD1DT05GSUdfRVhUMl9GU19YQVRUUj15XFxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZzoyNzk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvcWNvbV9kZWZjb25maWctMjgwLUNPTkZJR19GVVNFX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZz03OT1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9ycGNfZGVmY29uZmlnOjgwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3JwY19kZWZjb25maWctODEtQ09ORklHX0FVVE9GU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnPTU0PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU1OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZzo1NzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZy01OC1DT05GSUdfVE1QRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zNXB2MjEwX2RlZmNvbmZpZz0xMDM9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvczVwdjIxMF9kZWZjb25maWc6MTA0OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnLTEwNS1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTVfZGVmY29uZmlnPTIyMj1DT05GSUdfUFdNX0FUTUVMX1RDQj15XFxuYXJjaC9hcm0vY29uZmlncy9zYW1hNV9kZWZjb25maWc6MjIzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NhbWE1X2RlZmNvbmZpZy0yMjQtQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTdfZGVmY29uZmlnPTIxND1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zYW1hN19kZWZjb25maWc6MjE1OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NhbWE3X2RlZmNvbmZpZy0yMTYtQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWc9MTM3PUNPTkZJR19FWFQyX0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZzoxMzg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWctMTM5LUNPTkZJR19BVVRPRlNfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcDcwMjFfZGVmY29uZmlnPTQwPUNPTkZJR19SRVNFVF9DT05UUk9MTEVSPXlcXG5hcmNoL2FybS9jb25maWdzL3NwNzAyMV9kZWZjb25maWc6NDE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3A3MDIxX2RlZmNvbmZpZy00Mi0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZz04NT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnOjg2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWc6ODc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZy04OC1DT05GSUdfQVVUT0ZTX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIzeHhfZGVmY29uZmlnPTY4PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo2OTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWc6NzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIzeHhfZGVmY29uZmlnLTcxLUNPTkZJR19BVVRPRlNfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjZ4eF9kZWZjb25maWc9NTQ9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXI2eHhfZGVmY29uZmlnOjU1OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjZ4eF9kZWZjb25maWctNTctQ09ORklHX0FVVE9GU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZz0xOTI9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnOjE5MzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6MTk0OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnLTE5NS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWc9NzE9Q09ORklHX1NUTTMyX0FEQz15XFxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWc6NzI6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3RtMzJfZGVmY29uZmlnLTczLSMgQ09ORklHX0ZJTEVfTE9DS0lORyBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZz0xNjI9Q09ORklHX05WTUVNX1NVTlhJX1NJRD15XFxuYXJjaC9hcm0vY29uZmlncy9zdW54aV9kZWZjb25maWc6MTYzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZy0xNjQtQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy90ZWdyYV9kZWZjb25maWc9MzEyPUNPTkZJR19QSFlfVEVHUkFfWFVTQj15XFxuYXJjaC9hcm0vY29uZmlncy90ZWdyYV9kZWZjb25maWc6MzEzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnLTMxNi0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvdTg1MDBfZGVmY29uZmlnPTE3NT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy91ODUwMF9kZWZjb25maWc6MTc2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3U4NTAwX2RlZmNvbmZpZy0xNzctQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy92ZXhwcmVzc19kZWZjb25maWc9MTIyPUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3ZleHByZXNzX2RlZmNvbmZpZzoxMjM6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdmV4cHJlc3NfZGVmY29uZmlnLTEyNC1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3ZmNjEwbTRfZGVmY29uZmlnPTM1PUNPTkZJR19NRkRfU1lTQ09OPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvdmY2MTBtNF9kZWZjb25maWctMzctIyBDT05GSUdfVVNCX1NVUFBPUlQgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvdmY2MTBtNF9kZWZjb25maWc6Mzg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdmY2MTBtNF9kZWZjb25maWctMzktIyBDT05GSUdfTUlTQ19GSUxFU1lTVEVNUyBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3Z0ODUwMF92Nl92N19kZWZjb25maWc9Nzk9Q09ORklHX0dFTkVSSUNfUEhZPXlcXG5hcmNoL2FybS9jb25maWdzL3Z0ODUwMF92Nl92N19kZWZjb25maWc6ODA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdnQ4NTAwX3Y2X3Y3X2RlZmNvbmZpZy04MS1DT05GSUdfVE1QRlM9eVxcbi0tXFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZz0xODk4PUNPTkZJR19IVEVfVEVHUkExOTRfVEVTVD1tXFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzoxODk5OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE5MDA6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE5MDE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWctMTkwMi1DT05GSUdfQlRSRlNfRlM9bVxcbi0tXFxuYXJjaC9jc2t5L2NvbmZpZ3MvZGVmY29uZmlnPTMzPUNPTkZJR19HRU5FUklDX1BIWT15XFxuYXJjaC9jc2t5L2NvbmZpZ3MvZGVmY29uZmlnOjM0OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWctMzUtQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZz00OD1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjQ5OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2hleGFnb24vY29uZmlncy9jb21ldF9kZWZjb25maWc6NTA6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2hleGFnb24vY29uZmlncy9jb21ldF9kZWZjb25maWc6NTE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZy01Mi1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZz05NTA9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUxOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjk1MjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTk1NC1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc9OTgxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZzo5ODM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy05ODUtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9hbWlnYV9kZWZjb25maWc9NDAzPUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZzo0MDQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZy00MDUtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnPTM1OD1DT05GSUdfREFYPW1cXG5hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnOjM1OTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXBvbGxvX2RlZmNvbmZpZy0zNjAtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWc9MzgxPUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZzozODI6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZy0zODMtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9idm1lNjAwMF9kZWZjb25maWc9MzUwPUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZy0zNTItQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWc9MzYwPUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL2hwMzAwX2RlZmNvbmZpZzozNjE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL2hwMzAwX2RlZmNvbmZpZy0zNjItQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnPTM3OT1DT05GSUdfREFYPW1cXG5hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnOjM4MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvbWFjX2RlZmNvbmZpZy0zODEtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9tdWx0aV9kZWZjb25maWc9NDY2PUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZzo0Njc6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZy00NjgtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZz0zNTA9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWc6MzUxOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZy0zNTItQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZz0zNTE9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE2eF9kZWZjb25maWc6MzUyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZy0zNTMtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnPTM2OT1DT05GSUdfREFYPW1cXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnOjM3MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvcTQwX2RlZmNvbmZpZy0zNzEtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZz04Mj1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc6ODM6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnOjg0OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc6ODU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnLTg2LSMgQ09ORklHX0ZJTEVfTE9DS0lORyBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZz0zNDg9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWc6MzQ5OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZy0zNTAtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9zdW4zeF9kZWZjb25maWc9MzQ4PUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZzozNDk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZy0zNTAtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZz01NT1DT05GSUdfVklSVElPX0lOUFVUPXlcXG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvdmlydF9kZWZjb25maWctNTctQ09ORklHX0FVVE9GU19GUz15XFxuLS1cXG5hcmNoL21pY3JvYmxhemUvY29uZmlncy9tbXVfZGVmY29uZmlnPTc1PUNPTkZJR19VSU9fRE1FTV9HRU5JUlE9eVxcbmFyY2gvbWljcm9ibGF6ZS9jb25maWdzL21tdV9kZWZjb25maWc6NzY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWljcm9ibGF6ZS9jb25maWdzL21tdV9kZWZjb25maWctNzctIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnPTEzNj1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZzoxMzk6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTQwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnLTE0MS1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnPTU3PUNPTkZJR19VU0JfU1RPUkFHRT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjU4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc6NTk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc6NjA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZy02MS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc9MTQxPUNPTkZJR19NTUNfU0RIQ0lfUExURk09eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnOjE0MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQ0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnLTE0NS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2Nhdml1bV9vY3Rlb25fZGVmY29uZmlnPTEzNj1DT05GSUdfUkFTPXlcXG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Nhdml1bV9vY3Rlb25fZGVmY29uZmlnOjEzODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Nhdml1bV9vY3Rlb25fZGVmY29uZmlnOjEzOTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWctMTQwLUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9jaTIwX2RlZmNvbmZpZz0xNjY9Q09ORklHX05WTUVNX0paNDc4MF9FRlVTRT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY2kyMF9kZWZjb25maWc6MTY3OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9jaTIwX2RlZmNvbmZpZy0xNjgtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnPTYxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnOjYyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnOjYzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZzo2NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZy02NS1DT05GSUdfUFJPQ19LQ09SRT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9jdTEwMDAtbmVvX2RlZmNvbmZpZz04OT1DT05GSUdfUEhZX0lOR0VOSUNfVVNCPXlcXG5hcmNoL21pcHMvY29uZmlncy9jdTEwMDAtbmVvX2RlZmNvbmZpZzo5MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxMDAwLW5lb19kZWZjb25maWctOTEtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZz05Mj1DT05GSUdfUEhZX0lOR0VOSUNfVVNCPXlcXG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZzo5MzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxODMwLW5lb19kZWZjb25maWctOTQtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnPTE2OT1DT05GSUdfUlRDX0RSVl9BVTFYWFg9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnOjE3MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnLTE3My1DT05GSUdfWEZTX0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnPTEzNT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc6MTM2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZzoxMzg6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnLTEzOS1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZz0xMzE9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnOjEzMjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTMzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTM0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnPTEzMT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEzMjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEzMzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZzoxMzQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnPTg5PUNPTkZJR19SRVNFVF9DT05UUk9MTEVSPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctOTAtIyBDT05GSUdfTlZNRU0gaXMgbm90IHNldFxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo5MTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctOTQtQ09ORklHX0ZTX0VOQ1JZUFRJT049eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnPTg4PUNPTkZJR19SRVNFVF9DT05UUk9MTEVSPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWctODktIyBDT05GSUdfTlZNRU0gaXMgbm90IHNldFxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZzo5MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjkxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjkyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWctOTMtQ09ORklHX0ZTX0VOQ1JZUFRJT049eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc9OTY9Q09ORklHX1JFU0VUX0NPTlRST0xMRVI9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnLTk3LSMgQ09ORklHX05WTUVNIGlzIG5vdCBzZXRcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5ODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc6OTk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzoxMDA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnLTEwMS1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnPTE3ND1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzU6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc6MTc2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWctMTc4LUNPTkZJR19BVVRPRlNfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2N3MF9kZWZjb25maWc9MTM0PUNPTkZJR19QV01fSlo0NzQwPXlcXG5hcmNoL21pcHMvY29uZmlncy9nY3cwX2RlZmNvbmZpZzoxMzU6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2djdzBfZGVmY29uZmlnLTEzNi1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZz01NT1DT05GSUdfSElEX01PTlRFUkVZPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnLTU3LSMgQ09ORklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldFxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjU4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzo1OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjYwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZy02MS1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZz0yMzM9Q09ORklHX0VYVDJfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWc6MjM1OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWc6MjM2OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZy0yMzctQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZz0yNzI9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI3MzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc6Mjc0OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc6Mjc1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZy0yNzYtQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZz01MT1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTI6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnOjUzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnLTU1LUNPTkZJR19RVU9UQT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZz0xNDQ9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnOjE0NTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc6MTQ2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc6MTQ3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZy0xNDgtQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZz05MD1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnOjkyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTM6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnLTk0LUNPTkZJR19RVU9UQT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9qYXp6X2RlZmNvbmZpZz03MD1DT05GSUdfRVhUMl9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWc6NzE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2phenpfZGVmY29uZmlnLTcyLUNPTkZJR19YRlNfRlM9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnPTIyNz1DT05GSUdfRVhUMl9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnOjIyODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnOjIyOTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZzoyMzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZy0yMzEtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnPTE0OD1DT05GSUdfTE9PTkdTT04xX0FQQl9ETUE9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZy0xNTMtIyBDT05GSUdfTlZNRU0gaXMgbm90IHNldFxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU0OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnOjE1NTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWctMTU2LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc9Mjk4PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZzoyOTk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnOjMwMDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnOjMwMTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWctMzAyLUNPTkZJR19YRlNfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZz0zNDk9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc6MzUwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc6MzUyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnLTM1My1DT05GSUdfWEZTX0ZTPXlcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTY6NTk6NTMuNzQ2MjQzNTk2WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MzM2MDk4NDU5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEVYVDQgSW5saW5lIERhdGEgQ29udmVyc2lvbiBQYXRjaCoqXG5cbk9rYXksIHNvIHdlJ3JlIHdvcmtpbmcgd2l0aCBgRVhUNF9GU2AsIGdvb2QuIExldCdzIGRpZyBpbnRvIHRoaXMgcGF0Y2guIFRoZSBrZXkgdGhpbmcgSSBzZWUgaXMgdGhhdCB0aGV5J3JlIHJlcGxhY2luZyB0aGUgb2xkIGBleHQ0X3Jlc3RvcmVfaW5saW5lX2RhdGFgIGZ1bmN0aW9uIHdpdGggYSBuZXcgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gVGhpcyBpcyBhIHByZXR0eSBzaWduaWZpY2FudCBzaGlmdC4gSW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBleGlzdGluZyBibG9jayBtYXBwaW5nIG1lY2hhbmlzbXMsIGl0IGxvb2tzIGxpa2UgdGhleSdyZSBub3cgY2FsbGluZyBgZXh0NF9tYl9uZXdfYmxvY2tzYCBkaXJlY3RseSB3aXRoaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgIHRvIGFsbG9jYXRlIHRoZSBuZXcgYmxvY2suIFRoZXkgYXJlIGJ5cGFzc2luZyB0aGUgc3RhbmRhcmQgYGV4dDRfbWFwX2Jsb2Nrc2AgY2FsbC5cblxuVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3QganVzdCBhIHJlZmFjdG9yaW5nLiBNeSBpbnR1aXRpb24gaXMgdGhhdCB0aGlzIHByb2JhYmx5IGJ5cGFzc2VzIHNvbWUgb3ZlcmhlYWQuIEkgd2lsbCBuZWVkIHRvIGxvb2sgaW50byBob3cgdGhpcyBtaWdodCBhZmZlY3QgYmxvY2sgYWxsb2NhdGlvbiwgcGFydGljdWxhcmx5IGFyb3VuZCBmcmFnbWVudGVkIGZpbGVzLiBJIGFsc28gbmVlZCB0byB1bmRlcnN0YW5kIGFueSBzaWRlIGVmZmVjdHMuIFRoaXMgY2hhbmdlIGhhcyB0aGUgcG90ZW50aWFsIHRvIGluZmx1ZW5jZSBob3cgaW5saW5lIGRhdGEgdHJhbnNpdGlvbnMgdG8gcmVndWxhciBibG9ja3MsIGFuZCBteSBndWVzcyBpcyB0aGF0IGlzIHRoZSBpbnRlbnQuIFRoZSBrZXkgZnVuY3Rpb25zIHRvIGtlZXAgYW4gZXllIG9uIGFyZSBub3cgY2xlYXJseSBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBhbmQgcG90ZW50aWFsbHkgYGV4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnlgLCBhcyB0aGVzZSBhcmUgdGhlIHBvaW50cyBvZiBpbnRlZ3JhdGlvbi4gSSdsbCBuZWVkIHRvIGFzc2VzcyB0aGUgaW1wYWN0IG9uIHBlcmZvcm1hbmNlIGFuZCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIGNhdXNlZCBieSB0aGlzIGNoYW5nZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI4MTksIk91dHB1dFRva2VucyI6MTMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjA1OjM3LjEwNzIzMjc1NVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxMTUyODM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhXCIsXG4gICAgXCJleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGhvdyBleHQ0IGNvbnZlcnRzIGlubGluZSBkYXRhIHRvIGJsb2NrcywgcmVwbGFjaW5nIHRoZSB1c2Ugb2YgYGV4dDRfbWFwX2Jsb2Nrc2Agd2l0aCBkaXJlY3QgYmxvY2sgYWxsb2NhdGlvbiB2aWEgYGV4dDRfbWJfbmV3X2Jsb2Nrc2AgYW5kIGludHJvZHVjaW5nIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AuIFRoaXMgbW9kaWZpZXMgY29yZSByZWFjaGFibGUgbG9naWMgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgd2hpY2ggaXMgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhXCIsXG4gICAgXCJleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGhvdyBleHQ0IGNvbnZlcnRzIGlubGluZSBkYXRhIHRvIGJsb2NrcywgcmVwbGFjaW5nIHRoZSB1c2Ugb2YgYGV4dDRfbWFwX2Jsb2Nrc2Agd2l0aCBkaXJlY3QgYmxvY2sgYWxsb2NhdGlvbiB2aWEgYGV4dDRfbWJfbmV3X2Jsb2Nrc2AgYW5kIGludHJvZHVjaW5nIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AuIFRoaXMgbW9kaWZpZXMgY29yZSByZWFjaGFibGUgbG9naWMgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgd2hpY2ggaXMgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTc6MDU6MzcuMTg4MzkzNzE0WiIsIlNlcSI6MTcsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4Mzc4MjcxMTM5OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzowNTozNy4xODg5OTk3MTRaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6ODM3ODI2NTAyNzg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgdGhlIGNvbnZlcnNpb24gb2YgZXh0NCBpbmxpbmUgZGF0YSB0byBhIGRlZGljYXRlZCBibG9jayB0byBwcmV2ZW50IGRhdGEgbG9zcyBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuIEl0IGFsbG9jYXRlcyBhIG5ldyBibG9jaywgemVyb2VzIGl0LCBjb3BpZXMgdGhlIGlubGluZSBkYXRhLCBhbmQgdGhlbiB1cGRhdGVzIHRoZSBpbm9kZS4gQWxsIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkgKGBpbm9kZV9idWZgLCBgYnVmYCwgYGRhdGFfYmgtXFx1MDAzZWJfZGF0YWApIGlzIGZ1bGx5IGluaXRpYWxpemVkIHZpYSBgbWVtY3B5YCBmcm9tIGV4aXN0aW5nIGluaXRpYWxpemVkIGRhdGEgb3IgYG1lbXNldGAgdG8gemVyby4gU3RhY2sgdmFyaWFibGVzIChgYXJgLCBgaXNgLCBgaWAsIGBuZXdleGApIGFyZSBmdWxseSB6ZXJvLWluaXRpYWxpemVkIGVpdGhlciB2aWEgYG1lbXNldGAgb3IgYnJhY2UtZW5jbG9zZWQgaW5pdGlhbGl6ZXJzLiBUaGVyZSBpcyBubyBleHBvc3VyZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB0byB1c2VyIHNwYWNlIG9yIGRpc2ssIGFuZCBubyB1bmluaXRpYWxpemVkIG1lbW9yeSBpcyB1c2VkIGluIGNvbnRyb2wgZmxvdy4gQW55IHBvdGVudGlhbCBtZW1vcnkgZXJyb3JzIChsaWtlIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMgb3IgdXNlLWFmdGVyLWZyZWUpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IGp1c3RpZmllZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAxMjRjN2VhNmNkZDAyYWM0ZTBhYTYxMDVlZDA1NTIxNGRmMTgxNTlhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMjIgMTY6NTE6MDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9leHQ0L2lubGluZS5jIGIvZnMvZXh0NC9pbmxpbmUuY1xuaW5kZXggODA0NWU0ZmYyNzBjNy4uNTA3MTA2YzcyZTgyZiAxMDA2NDRcbi0tLSBhL2ZzL2V4dDQvaW5saW5lLmNcbisrKyBiL2ZzL2V4dDQvaW5saW5lLmNcbkBAIC0xNCw2ICsxNCw3IEBAXG4gI2luY2x1ZGUgXCJleHQ0LmhcIlxuICNpbmNsdWRlIFwieGF0dHIuaFwiXG4gI2luY2x1ZGUgXCJ0cnVuY2F0ZS5oXCJcbisjaW5jbHVkZSBcImV4dDRfZXh0ZW50cy5oXCJcbiBcbiAjZGVmaW5lIEVYVDRfWEFUVFJfU1lTVEVNX0RBVEFcdFwiZGF0YVwiXG4gI2RlZmluZSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFXHQoKHNpemVvZihfX2xlMzIpICogRVhUNF9OX0JMT0NLUykpXG5AQCAtMTA3MCwyMSArMTA3MSwxMTUgQEAgc3RhdGljIGludCBleHQ0X3VwZGF0ZV9pbmxpbmVfZGlyKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqZGlyLFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLVx0XHRcdFx0ICAgICBzdHJ1Y3QgZXh0NF9pbG9jICppbG9jLFxuLVx0XHRcdFx0ICAgICB2b2lkICpidWYsIGludCBpbmxpbmVfc2l6ZSlcbitzdGF0aWMgaW50IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfZnNibGtfdCBibG9jayxcbitcdFx0XHRcdFx0dW5zaWduZWQgaW50IGxlbiwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaClcbiB7XG4tXHRpbnQgcmV0O1xuK1x0c3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpO1xuK1x0c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCBpcyA9IHtcbitcdFx0LnMgPSB7IC5ub3RfZm91bmQgPSAwLCB9LFxuK1x0fTtcbitcdHN0cnVjdCBleHQ0X3hhdHRyX2luZm8gaSA9IHtcbitcdFx0Lm5hbWVfaW5kZXggPSBFWFQ0X1hBVFRSX0lOREVYX1NZU1RFTSxcbitcdFx0Lm5hbWUgPSBFWFQ0X1hBVFRSX1NZU1RFTV9EQVRBLFxuK1x0XHQudmFsdWUgPSBOVUxMLFxuK1x0XHQudmFsdWVfbGVuID0gMCxcbitcdH07XG4rXHRpbnQgZXJyb3I7XG4rXHRpbnQgaW5vZGVfc2l6ZTtcbitcdHZvaWQgKmlub2RlX2J1ZiA9IE5VTEw7XG4rXHRzdHJ1Y3QgZXh0NF9pbm9kZSAqcmF3X2lub2RlO1xuIFxuLVx0cmV0ID0gZXh0NF9jcmVhdGVfaW5saW5lX2RhdGEoaGFuZGxlLCBpbm9kZSwgaW5saW5lX3NpemUpO1xuLVx0aWYgKHJldCkge1xuLVx0XHRleHQ0X21zZyhpbm9kZS1cdTAwM2VpX3NiLCBLRVJOX0VNRVJHLFxuLVx0XHRcdFwiZXJyb3IgcmVzdG9yaW5nIGlubGluZV9kYXRhIGZvciBpbm9kZSAtLSBwb3RlbnRpYWwgZGF0YSBsb3NzISAoaW5vZGUgJWxsdSwgZXJyb3IgJWQpXCIsXG4tXHRcdFx0aW5vZGUtXHUwMDNlaV9pbm8sIHJldCk7XG4tXHRcdHJldHVybjtcbitcdGlub2RlX3NpemUgPSBFWFQ0X0lOT0RFX1NJWkUoaW5vZGUtXHUwMDNlaV9zYik7XG4rXHRpbm9kZV9idWYgPSBrbWFsbG9jKGlub2RlX3NpemUsIEdGUF9OT0ZTKTtcbitcdGlmICghaW5vZGVfYnVmKSB7XG4rXHRcdGVycm9yID0gLUVOT01FTTtcbitcdFx0ZG93bl93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbitcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbitcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpO1xuK1x0XHR1cF93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbitcdFx0cmV0dXJuIGVycm9yO1xuIFx0fVxuLVx0ZXh0NF93cml0ZV9pbmxpbmVfZGF0YShpbm9kZSwgaWxvYywgYnVmLCAwLCBpbmxpbmVfc2l6ZSk7XG4tXHRleHQ0X3NldF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpO1xuK1x0ZG93bl93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbitcdGVycm9yID0gZXh0NF9nZXRfaW5vZGVfbG9jKGlub2RlLCBcdTAwMjZpcy5pbG9jKTtcbitcdGlmIChlcnJvcikge1xuK1x0XHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xuK1x0XHRleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7XG4rXHRcdHVwX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuK1x0XHRrZnJlZShpbm9kZV9idWYpO1xuK1x0XHRyZXR1cm4gZXJyb3I7XG4rXHR9XG4rXHRyYXdfaW5vZGUgPSBleHQ0X3Jhd19pbm9kZShcdTAwMjZpcy5pbG9jKTtcbitcdEJVRkZFUl9UUkFDRShpcy5pbG9jLmJoLCBcImdldF93cml0ZV9hY2Nlc3NcIik7XG4rXHRlcnJvciA9IGV4dDRfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKGhhbmRsZSwgaW5vZGUtXHUwMDNlaV9zYiwgaXMuaWxvYy5iaCwgRVhUNF9KVFJfTk9ORSk7XG4rXHRpZiAoZXJyb3IpIHtcbitcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbitcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpO1xuK1x0XHRnb3RvIG91dDtcbitcdH1cbitcdG1lbWNweShpbm9kZV9idWYsICh2b2lkICopcmF3X2lub2RlLCBpbm9kZV9zaXplKTtcbitcdG1lbXNldCgodm9pZCAqKXJhd19pbm9kZS1cdTAwM2VpX2Jsb2NrLCAwLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTtcbitcdG1lbXNldChlaS1cdTAwM2VpX2RhdGEsIDAsIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpO1xuK1x0aWYgKGV4dDRfaGFzX2ZlYXR1cmVfZXh0ZW50cyhpbm9kZS1cdTAwM2VpX3NiKSBcdTAwMjZcdTAwMjZcbitcdFx0KFNfSVNESVIoaW5vZGUtXHUwMDNlaV9tb2RlKSB8fCBTX0lTUkVHKGlub2RlLVx1MDAzZWlfbW9kZSkgfHwgU19JU0xOSyhpbm9kZS1cdTAwM2VpX21vZGUpKSkge1xuK1x0XHRleHQ0X3NldF9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0VYVEVOVFMpO1xuK1x0XHRleHQ0X2V4dF90cmVlX2luaXQoaGFuZGxlLCBpbm9kZSk7XG4rXHRcdHN0cnVjdCBleHQ0X2V4dF9wYXRoICpwYXRoID0gZXh0NF9maW5kX2V4dGVudChpbm9kZSwgMCwgTlVMTCwgMCk7XG4rXG4rXHRcdGlmIChJU19FUlIocGF0aCkpIHtcbitcdFx0XHRlcnJvciA9IFBUUl9FUlIocGF0aCk7XG4rXHRcdFx0Z290byByZWNvdmVyeTtcbitcdFx0fVxuK1x0XHRzdHJ1Y3QgZXh0NF9leHRlbnQgbmV3ZXg7XG4rXG4rXHRcdG5ld2V4LmVlX2Jsb2NrID0gY3B1X3RvX2xlMzIoMCk7XG4rXHRcdG5ld2V4LmVlX2xlbiA9IGNwdV90b19sZTE2KDEpO1xuK1x0XHRleHQ0X2V4dF9zdG9yZV9wYmxvY2soXHUwMDI2bmV3ZXgsIGJsb2NrKTtcbitcdFx0cGF0aCA9IGV4dDRfZXh0X2luc2VydF9leHRlbnQoaGFuZGxlLCBpbm9kZSwgcGF0aCwgXHUwMDI2bmV3ZXgsIDApO1xuK1x0XHRpZiAoSVNfRVJSKHBhdGgpKSB7XG4rXHRcdFx0ZXJyb3IgPSBQVFJfRVJSKHBhdGgpO1xuK1x0XHRcdGlmIChlcnJvciA9PSAtRURRVU9UIHx8IGVycm9yID09IC1FTk9TUEMpIHtcbitcdFx0XHRcdGdvdG8gcmVjb3Zlcnk7XG4rXHRcdFx0fSBlbHNlIHtcbitcdFx0XHRcdGV4dDRfZm9yZ2V0KGhhbmRsZSwgMCwgaW5vZGUsIGJoLCBibG9jayk7XG4rXHRcdFx0XHRnb3RvIG5vZnJlZTtcbitcdFx0XHR9XG4rXHRcdH0gZWxzZSB7XG4rXHRcdFx0ZXh0NF9mcmVlX2V4dF9wYXRoKHBhdGgpO1xuK1x0XHR9XG4rXHR9IGVsc2Uge1xuK1x0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfZGF0YVswXSA9IGNwdV90b19sZTMyKGJsb2NrKTtcbitcdH1cbitcdGVycm9yID0gZXh0NF94YXR0cl9pYm9keV9maW5kKGlub2RlLCBcdTAwMjZpLCBcdTAwMjZpcyk7XG4rXHRpZiAoZXJyb3IpXG4rXHRcdGdvdG8gcmVjb3Zlcnk7XG4rXHRpZiAoIWlzLnMubm90X2ZvdW5kKVxuK1x0XHRlcnJvciA9IGV4dDRfeGF0dHJfaWJvZHlfc2V0KGhhbmRsZSwgaW5vZGUsIFx1MDAyNmksIFx1MDAyNmlzKTtcbityZWNvdmVyeTpcbitcdGlmIChlcnJvcikge1xuK1x0XHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xuK1x0XHRleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7XG4rbm9mcmVlOlxuK1x0XHRtZW1jcHkoKHZvaWQgKilyYXdfaW5vZGUsIGlub2RlX2J1ZiwgaW5vZGVfc2l6ZSk7XG4rXHRcdG1lbWNweShlaS1cdTAwM2VpX2RhdGEsIHJhd19pbm9kZS1cdTAwM2VpX2Jsb2NrLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTtcbitcdFx0ZXh0NF9jbGVhcl9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0VYVEVOVFMpO1xuK1x0fSBlbHNlIHtcbitcdFx0ZXh0NF9jbGVhcl9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0lOTElORV9EQVRBKTtcbitcdFx0Z2V0X2JoKGlzLmlsb2MuYmgpO1xuK1x0XHRlcnJvciA9IGV4dDRfbWFya19pbG9jX2RpcnR5KGhhbmRsZSwgaW5vZGUsIFx1MDAyNmlzLmlsb2MpO1xuK1x0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfaW5saW5lX29mZiA9IDA7XG4rXHRcdEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfc2l6ZSA9IDA7XG4rXHRcdGV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTtcbitcdFx0aWYgKFNfSVNESVIoaW5vZGUtXHUwMDNlaV9tb2RlKSkge1xuK1x0XHRcdGlfc2l6ZV93cml0ZShpbm9kZSwgaW5vZGUtXHUwMDNlaV9zYi1cdTAwM2VzX2Jsb2Nrc2l6ZSk7XG4rXHRcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2Rpc2tzaXplID0gaW5vZGUtXHUwMDNlaV9zYi1cdTAwM2VzX2Jsb2Nrc2l6ZTtcbitcdFx0fVxuK1x0XHRicmVsc2UoYmgpO1xuK1x0fVxuK291dDpcbitcdGJyZWxzZShpcy5pbG9jLmJoKTtcbitcdHVwX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuK1x0a2ZyZWUoaW5vZGVfYnVmKTtcbitcdHJldHVybiBlcnJvcjtcbiB9XG4gXG4gc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXG5AQCAtMTA5NCw4ICsxMTg5LDExIEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuIFx0aW50IGVycm9yO1xuIFx0dm9pZCAqYnVmID0gTlVMTDtcbiBcdHN0cnVjdCBidWZmZXJfaGVhZCAqZGF0YV9iaCA9IE5VTEw7XG4tXHRzdHJ1Y3QgZXh0NF9tYXBfYmxvY2tzIG1hcDtcbiBcdGludCBpbmxpbmVfc2l6ZTtcbitcdGV4dDRfZnNibGtfdCBuZXdibG9jayA9IDA7XG4rXHRzdHJ1Y3QgZXh0NF9hbGxvY2F0aW9uX3JlcXVlc3QgYXI7XG4rXHRzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKGlub2RlLVx1MDAzZWlfc2IpO1xuK1x0dW5zaWduZWQgaW50IGFsbG9jYXRlZF9ibG9jaztcbiBcbiBcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xuIFx0YnVmID0ga21hbGxvYyhpbmxpbmVfc2l6ZSwgR0ZQX05PRlMpO1xuQEAgLTExMjAsMjUgKzEyMTgsMjIgQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXG4gXHRcdFx0Z290byBvdXQ7XG4gXHR9XG4gXG4tXHRlcnJvciA9IGV4dDRfZGVzdHJveV9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlLCBpbm9kZSk7XG4tXHRpZiAoZXJyb3IpXG4tXHRcdGdvdG8gb3V0O1xuLVxuLVx0bWFwLm1fbGJsayA9IDA7XG4tXHRtYXAubV9sZW4gPSAxO1xuLVx0bWFwLm1fZmxhZ3MgPSAwO1xuLVx0ZXJyb3IgPSBleHQ0X21hcF9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgXHUwMDI2bWFwLCBFWFQ0X0dFVF9CTE9DS1NfQ1JFQVRFKTtcbitcdG1lbXNldChcdTAwMjZhciwgMCwgc2l6ZW9mKGFyKSk7XG4rXHRhci5pbm9kZSA9IGlub2RlO1xuK1x0YXIubG9naWNhbCA9IDA7XG4rXHRhci5sZW4gPSAxO1xuK1x0aWYgKFNfSVNSRUcoaW5vZGUtXHUwMDNlaV9tb2RlKSlcbitcdFx0YXIuZmxhZ3MgPSBFWFQ0X01CX0hJTlRfREFUQTtcbitcdGVsc2VcbitcdFx0YXIuZmxhZ3MgPSAwO1xuK1x0bmV3YmxvY2sgPSBleHQ0X21iX25ld19ibG9ja3MoaGFuZGxlLCBcdTAwMjZhciwgXHUwMDI2ZXJyb3IpO1xuIFx0aWYgKGVycm9yIFx1MDAzYyAwKVxuLVx0XHRnb3RvIG91dF9yZXN0b3JlO1xuLVx0aWYgKCEobWFwLm1fZmxhZ3MgXHUwMDI2IEVYVDRfTUFQX01BUFBFRCkpIHtcbi1cdFx0ZXJyb3IgPSAtRUlPO1xuLVx0XHRnb3RvIG91dF9yZXN0b3JlO1xuLVx0fVxuLVxuLVx0ZGF0YV9iaCA9IHNiX2dldGJsayhpbm9kZS1cdTAwM2VpX3NiLCBtYXAubV9wYmxrKTtcbitcdFx0Z290byBvdXQ7XG4rXHRhbGxvY2F0ZWRfYmxvY2sgPSBFWFQ0X0MyQihzYmksIGFyLmxlbik7XG4rXHRkYXRhX2JoID0gc2JfZ2V0YmxrKGlub2RlLVx1MDAzZWlfc2IsIG5ld2Jsb2NrKTtcbiBcdGlmICghZGF0YV9iaCkge1xuIFx0XHRlcnJvciA9IC1FTk9NRU07XG4tXHRcdGdvdG8gb3V0X3Jlc3RvcmU7XG4rXHRcdGdvdG8gb3V0X2JoO1xuIFx0fVxuIFxuIFx0bG9ja19idWZmZXIoZGF0YV9iaCk7XG5AQCAtMTE0Nyw3ICsxMjQyLDcgQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXG4gXHRpZiAoZXJyb3IpIHtcbiBcdFx0dW5sb2NrX2J1ZmZlcihkYXRhX2JoKTtcbiBcdFx0ZXJyb3IgPSAtRUlPO1xuLVx0XHRnb3RvIG91dF9yZXN0b3JlO1xuK1x0XHRnb3RvIG91dF9iaDtcbiBcdH1cbiBcdG1lbXNldChkYXRhX2JoLVx1MDAzZWJfZGF0YSwgMCwgaW5vZGUtXHUwMDNlaV9zYi1cdTAwM2VzX2Jsb2Nrc2l6ZSk7XG4gXG5AQCAtMTE1OSwyNCArMTI1NCwyOCBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbiBcdFx0XHRcdFx0XHQgICBpbm9kZSwgZGF0YV9iaCk7XG4gXHR9IGVsc2Uge1xuIFx0XHR1bmxvY2tfYnVmZmVyKGRhdGFfYmgpO1xuLVx0XHRpbm9kZS1cdTAwM2VpX3NpemUgPSBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplO1xuLVx0XHRpX3NpemVfd3JpdGUoaW5vZGUsIGlub2RlLVx1MDAzZWlfc2ItXHUwMDNlc19ibG9ja3NpemUpO1xuLVx0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfZGlza3NpemUgPSBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplO1xuLVxuIFx0XHRlcnJvciA9IGV4dDRfaW5pdF9kaXJibG9jayhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLFxuIFx0XHRcdCAgbGUzMl90b19jcHUoKChzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqKWJ1ZiktXHUwMDNlaW5vZGUpLFxuIFx0XHRcdCAgYnVmICsgRVhUNF9JTkxJTkVfRE9URE9UX1NJWkUsXG4gXHRcdFx0ICBpbmxpbmVfc2l6ZSAtIEVYVDRfSU5MSU5FX0RPVERPVF9TSVpFKTtcbi1cdFx0aWYgKCFlcnJvcilcbi1cdFx0XHRlcnJvciA9IGV4dDRfbWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIGlub2RlKTtcbiBcdH1cbitvdXRfYmg6XG4rXHRpZiAoZXJyb3IpIHtcbitcdFx0aW50IGZsYWdzID0gMDtcbiBcbi1vdXRfcmVzdG9yZTpcbi1cdGlmIChlcnJvcilcbi1cdFx0ZXh0NF9yZXN0b3JlX2lubGluZV9kYXRhKGhhbmRsZSwgaW5vZGUsIGlsb2MsIGJ1ZiwgaW5saW5lX3NpemUpO1xuK1x0XHRpZiAoZGF0YV9iaClcbitcdFx0XHRmbGFncyB8PSBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVDtcbitcdFx0c3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpO1xuIFxuK1x0XHRkb3duX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuK1x0XHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xuK1x0XHRleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGRhdGFfYmgsIG5ld2Jsb2NrLCBhbGxvY2F0ZWRfYmxvY2ssIGZsYWdzKTtcbitcdFx0dXBfd3JpdGUoXHUwMDI2ZWktXHUwMDNlaV9kYXRhX3NlbSk7XG4rXHR9IGVsc2Uge1xuK1x0XHRlcnJvciA9IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZSwgaW5vZGUsXG4rXHRcdFx0XHRuZXdibG9jaywgYWxsb2NhdGVkX2Jsb2NrLCBkYXRhX2JoKTtcbitcdH1cbiBvdXQ6XG4tXHRicmVsc2UoZGF0YV9iaCk7XG4gXHRrZnJlZShidWYpO1xuIFx0cmV0dXJuIGVycm9yO1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjA1OjM3LjE4OTAwMDU5NFoiLCJTZXEiOjE5LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDAyNzU2ODcyMDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJbmxpbmUgRGF0YSBDb252ZXJzaW9uIFBhdGNoIGluIGV4dDQqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBmcy9leHQ0L2lubGluZS5jYCBhbmQgaXMgZnVuZGFtZW50YWxseSByZXdvcmtpbmcgaG93IGlubGluZSBkYXRhIGdldHMgY29udmVydGVkIGludG8gYSBibG9jayBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLiBNeSBpbml0aWFsIHJlYWQgdGVsbHMgbWUgdGhhdCBgZXh0NF9yZXN0b3JlX2lubGluZV9kYXRhYCBpcyBnb25lLCByZXBsYWNlZCB3aXRoIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AsIGFuZCB0aGUgY29yZSBjb252ZXJzaW9uIGxvZ2ljIGlzIG5vdyBpbiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AuIExldCdzIGRpZyBpbi5cblxuVGhlIG5ldyBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AgdXNlcyBgZXh0NF9tYl9uZXdfYmxvY2tzYCB0byBncmFiIGEgbmV3IGJsb2NrLCB3aGljaCBpcyBhIGRlcGFydHVyZSBmcm9tIGBleHQ0X21hcF9ibG9ja3NgLiBUaGVuIGl0IGNhbGxzIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AsIHdoaWNoIHNlZW1zIHRvIGJlIHRoZSBjb3JlIG9mIHRoZSBkYXRhIG1pZ3JhdGlvbi4gIE15IGZpcnN0IGNvbmNlcm4sIGFzIGFsd2F5cyB3aXRoIHRoZXNlIGNoYW5nZXMsIGlzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LlxuXG5TcGVjaWZpY2FsbHksIGluIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AsIEkgc2VlIGBpbm9kZV9idWYgPSBrbWFsbG9jKGlub2RlX3NpemUsIEdGUF9OT0ZTKTtgIGFuZCB0aGVuIGEgYG1lbWNweWAgZnJvbSBgcmF3X2lub2RlYCBpbnRvIGl0LiAgYGlub2RlX2J1ZmAgaXMgYSBiYWNrdXAgYnVmZmVyLCBzbyBJJ20gaW1tZWRpYXRlbHkgbG9va2luZyBmb3IgYW55IGNhc2VzIHdoZXJlIGl0IGNvdWxkIGxlYWsgdW5pbml0aWFsaXplZCBkYXRhLiAgSXQncyBhbGxvY2F0ZWQgd2l0aCBga21hbGxvY2AsIHdoaWNoIG1lYW5zIGl0ICpzdGFydHMqIHVuaW5pdGlhbGl6ZWQsIGJ1dCB0aGUgYG1lbWNweWAgaW5zdGFudGx5IG92ZXJ3cml0ZXMgaXQgd2l0aCB0aGUgY29udGVudHMgb2YgdGhlIGByYXdfaW5vZGVgLiBBbnkgZmFpbHVyZSByZXN0b3JlcyBmcm9tIHRoaXMgYmFja3VwIHNvIGl0IGxvb2tzIG9rYXkuXG5cblRoZW4sIHRoZXJlJ3MgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgIGFnYWluLiBJdCBhbGxvY2F0ZXMgYGJ1ZmAgd2l0aCBga21hbGxvYyhpbmxpbmVfc2l6ZSwgR0ZQX05PRlMpYCBhbmQgcmVhZHMgdGhlIGlubGluZSBkYXRhIGludG8gaXQuIFRoZW4gYSBuZXcgYmxvY2sgYGRhdGFfYmhgIGlzIGFsbG9jYXRlZC4gVGhlIGNydWNpYWwgcGFydCBoZXJlIGlzIGBtZW1zZXQoZGF0YV9iaC1cdTAwM2ViX2RhdGEsIDAsIGlub2RlLVx1MDAzZWlfc2ItXHUwMDNlc19ibG9ja3NpemUpO2Ag4oCTIHRoaXMgKnNob3VsZCogZnVsbHkgaW5pdGlhbGl6ZSB0aGUgbmV3IGJsb2NrLiAgVGhlIGNvbnRlbnRzIG9mIGBidWZgIGFyZSB0aGVuIGNvcGllZCB0byB0aGUgYmxvY2ssIHdoaWNoIGlzIHNhZmUuXG5cbk5vdywgYmFjayB0byBgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2tgIGFuZCBjaGVja2luZyBmb3IgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5LlxuVGhlIGBtZW1jcHkoaW5vZGVfYnVmLCAodm9pZCAqKXJhd19pbm9kZSwgaW5vZGVfc2l6ZSk7YCBpcyB0aGUga2V5LiBUaGVuIHplcm8gb3V0IGByYXdfaW5vZGUtXHUwMDNlaV9ibG9ja2AgYW5kIGBlaS1cdTAwM2VpX2RhdGFgLCB3aGljaCBzZWVtcyB0byBiZSBzYWZlLCBidXTigKYgaXMgYGlub2RlX3NpemVgICpldmVyKiBsYXJnZXIgdGhhbiB0aGUgYWN0dWFsIG9uLWRpc2sgaW5vZGUgc2l6ZT9cbmBFWFQ0X0lOT0RFX1NJWkUoaW5vZGUtXHUwMDNlaV9zYilgIGdpdmVzIHRoZSAqb24tZGlzayogaW5vZGUgc2l6ZSwgYW5kIGBleHQ0X3Jhd19pbm9kZSgpYCByZXRyaWV2ZXMgdGhlIGlub2RlIGZyb20gdGhlIGJ1ZmZlciBoZWFkLiBUaGUgc2l6ZSBvZiB0aGUgaW5vZGUgaW4gdGhlIGJ1ZmZlciBpcyBhbHdheXMgZ3VhcmFudGVlZCB0byBiZSBjb3JyZWN0IHNpbmNlIHRoZSBibG9jayBpcyByZWFkLiBUaGUgYnVmZmVyIGhlYWQgY29udGFpbnMgdGhlIGNvcnJlY3Qgc2l6ZSBvZiB0aGUgb24tZGlzayBpbm9kZSBzbyB0aGlzIHNlZW1zIHNhZmUuXG5cbldoYXQgYWJvdXQgYHJhd19pbm9kZWAgY29udGFpbmluZyB1bmluaXRpYWxpemVkIGRhdGE/IEtNU0FOIHRyYWNrcyB1bmluaXRpYWxpemVkIG1lbW9yeSBidXQgZnJvbSBhbGxvY2F0aW9ucywgcmVhZGluZyBmcm9tIGRpc2sgKGJsb2NrIGRldmljZSkgaXMgY29uc2lkZXJlZCBpbml0aWFsaXplZC5cblxuTG9va2luZyBhdCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AsIGBleHQ0X21iX25ld19ibG9ja3NgIHNlZW1zIGxpa2UgYW4gYWxsb2NhdGlvbiBjYWxsLiBUaGlzIHNlZW1zIHRvIGJlIGEgbG9naWMgYnVnIGZpeCBvciBhIHJlZmFjdG9yaW5nLiBUaGUgb2xkIGNvZGUgZmlyc3QgZGVzdHJveWVkIHRoZSBpbmxpbmUgZGF0YSBhbmQgdGhlbiB0cmllZCBtYXBwaW5nIG5ldyBibG9ja3MsIGlmIGl0IGZhaWxlZCB0aGVuIHRoZSBjb2RlIHVzZWQgYGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YWAgYW5kIHRoYXQgY291bGQgZmFpbCBhbmQgY2F1c2UgZGF0YSBsb3NzLiBUaGUgbmV3IGNvZGUgYWxsb2NhdGVzIHRoZSBibG9jaywgdGhlbiBtb2RpZmllcyB0aGUgaW5vZGUgc28gaW4gY2FzZSBvZiBmYWlsdXJlIHdlIGNhbiByZXN0b3JlIHRoZSBpbm9kZSBmcm9tIGBpbm9kZV9idWZgLlxuXG5UaGlzIHBhdGNoIGlzIGZyb20gYHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld2AuICBNeSBpbW1lZGlhdGUgY29uY2VybiBpcyB1c2VyLXNwYWNlIGV4cG9zdXJlIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBIb3dldmVyLCB0aGUgb3BlcmF0aW9ucyBhcmUgaW50ZXJuYWwgbWV0YWRhdGEgbWFuaXB1bGF0aW9ucy4gYGlub2RlX2J1ZmAgaXMgaW1tZWRpYXRlbHkgZmlsbGVkLiBgZGF0YV9iaC1cdTAwM2ViX2RhdGFgIGlzIHplcm9lZC4gSSBzZWUgbm8gZGlyZWN0IHBhdGggZm9yIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHRvIGxlYWsgdG8gdXNlcnNwYWNlLlxuXG5JJ20gbm90IHNlZWluZyBhbnkgS01TQU4tc3BlY2lmaWMgaXNzdWVzLiBLQVNBTiB3b3VsZCBjYXRjaCBvdXQtb2YtYm91bmRzIHJlYWRzL3dyaXRlcy4gIE15IHByaW1hcnkgY29uY2VybiBoYXMgYmVlbiBhZGRyZXNzZWQg4oCTIHRoZSBgaW5vZGVfYnVmYCBiYWNrdXAgc2VlbXMgdG8gYmUgaGFuZGxlZCBjb3JyZWN0bHkgdG8gYXZvaWQgdW5pbml0aWFsaXplZCBkYXRhIGxlYWtzLiBUaGUgYG1lbXNldGAgY2FsbHMgaW5pdGlhbGl6ZSBkYXRhIGNvcnJlY3RseSwgc28gSSBkb24ndCBzZWUgYW55IG9idmlvdXMgS01TQU4gdnVsbmVyYWJpbGl0aWVzIGludHJvZHVjZWQgaGVyZS4gIEkganVzdCBoYXZlIHRvIGRvdWJsZS1jaGVjayBteSB2YXJpYWJsZXMgaW5pdGlhbGl6YXRpb24uXG5cbkxldCdzIGxvb2sgYXQgYGlzYCBhbmQgYGlgLlxuYGBgY1xuc3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCBpcyA9IHtcblx0LnMgPSB7IC5ub3RfZm91bmQgPSAwLCB9LFxufTtcbmBgYFxuQWggd2FpdCwgYHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmRgIGhhcyBvdGhlciBmaWVsZHMuICBJIHNob3VsZCBjaGVjayB0aGUgZGVmaW5pdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA3NiwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NzUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzowNzo1Ny40NjQ2OTIwMjJaIiwiU2VxIjoyMCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3NzkzMDMxMzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCBcXFxce1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9leHQ0L3hhdHRyLmg9MTIxPXN0cnVjdCBleHQ0X3hhdHRyX3NlYXJjaCB7XFxuLS1cXG5mcy9leHQ0L3hhdHRyLmgtMTI4LVxcbmZzL2V4dDQveGF0dHIuaDoxMjk6c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCB7XFxuZnMvZXh0NC94YXR0ci5oLTEzMC1cXHRzdHJ1Y3QgZXh0NF94YXR0cl9zZWFyY2ggcztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTc6MDg6MDAuMjQ0MDAxMDYzWiIsIlNlcSI6MjEsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc3NDIxNDI2NDM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBleHQ0IFhBdHRyIGktbm9kZSBJbXBsZW1lbnRhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgZXh0NF94YXR0cl9pYm9keV9maW5kYCBzdHJ1Y3R1cmUuIFNwZWNpZmljYWxseSwgSSdtIGhlYWRpbmcgc3RyYWlnaHQgZm9yIGBmcy9leHQ0L3hhdHRyLmhgLiBJdCdzIGEga2V5IHBpZWNlIGluIGhvdyBleHQ0IGhhbmRsZXMgZXh0ZW5kZWQgYXR0cmlidXRlcyAoeGF0dHJzKSBzdG9yZWQgZGlyZWN0bHkgd2l0aGluIHRoZSBpbm9kZSBpdHNlbGYsIHJpZ2h0PyBUaGlzIG1lYW5zIEknbSBwcm9iYWJseSBkZWFsaW5nIHdpdGggdGhlIG9wdGltaXphdGlvbiBmb3Igc21hbGxlciBhdHRyaWJ1dGVzLCB3aGVyZSB0aGUgb3ZlcmhlYWQgb2YgYSBzZXBhcmF0ZSBibG9jayBhbGxvY2F0aW9uIGlzIGF2b2lkZWQuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byByZWZyZXNoIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoaXMgaW5saW5lIHN0b3JhZ2Ugd29ya3Mgd2l0aGluIHRoZSBpbm9kZSdzIGRhdGEgc3RydWN0dXJlcy4gSSdtIGd1ZXNzaW5nIHRoYXQgYGV4dDRfeGF0dHJfaWJvZHlfZmluZGAgaGFzIGdvdCB0byBiZSBpbnN0cnVtZW50YWwgaW4gdGhlIHNlYXJjaCBhbGdvcml0aG0uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGV4YWN0bHkgaXQgY29tZXMgaW50byBwbGF5IGluIG9yZGVyIHRvIHVuZGVyc3RhbmQgaG93IHhhdHRycyBhcmUgc2VhcmNoZWQgb3IgbW9kaWZpZWQgd2l0aGluIHRoZSBpbmxpbmUgaS1ub2RlIGJ1ZmZlci4gSXQgaXMgYSBmdW5kYW1lbnRhbCBwaWVjZSB0byB1bmRlcnN0YW5kaW5nIGhvdyBlZmZpY2llbnRseSBzbWFsbGVyIGF0dHJpYnV0ZXMgYXJlIGhhbmRsZWQsIGFuZCBob3cgdGhlIGZpbGUgc3lzdGVtIGJhbGFuY2VzIHNwYWNlIGFuZCBhY2Nlc3MgcGVyZm9ybWFuY2UgZm9yIHRoZSBpbmxpbmUgYXR0cmlidXRlcyBhcyB3ZWxsIGFzIGhvdyBleHQ0IGNhbiBkZWNpZGUgdG8gbW92ZSBmcm9tIGFuIGlubGluZSBhdHRyaWJ1dGUgdG8gYW4gZXh0ZXJuYWwgb25lLiBJJ20ga2VlbiB0byBkaXNzZWN0IHRoZSBjb2RlIHRvIHVuZGVyc3RhbmQgaXRzIGRhdGEgbWVtYmVycyB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3RydWN0dXJlIGFzc2lzdHMgaW4gdGhlIGxvb2t1cCBwcm9jZXNzIG9mIHRoZSBpbmxpbmUgYXR0cmlidXRlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzY5NSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjA5OjE3LjY2NTQyOTdaIiwiU2VxIjoyMiwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzU2NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZnMvZXh0NC94YXR0ci5oXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEyMCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDEyMDpcXHRcXG4gMTIxOlxcdHN0cnVjdCBleHQ0X3hhdHRyX3NlYXJjaCB7XFxuIDEyMjpcXHRcXHRzdHJ1Y3QgZXh0NF94YXR0cl9lbnRyeSAqZmlyc3Q7XFxuIDEyMzpcXHRcXHR2b2lkICpiYXNlO1xcbiAxMjQ6XFx0XFx0dm9pZCAqZW5kO1xcbiAxMjU6XFx0XFx0c3RydWN0IGV4dDRfeGF0dHJfZW50cnkgKmhlcmU7XFxuIDEyNjpcXHRcXHRpbnQgbm90X2ZvdW5kO1xcbiAxMjc6XFx0fTtcXG4gMTI4OlxcdFxcbiAxMjk6XFx0c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCB7XFxuIDEzMDpcXHRcXHRzdHJ1Y3QgZXh0NF94YXR0cl9zZWFyY2ggcztcXG4gMTMxOlxcdFxcdHN0cnVjdCBleHQ0X2lsb2MgaWxvYztcXG4gMTMyOlxcdH07XFxuIDEzMzpcXHRcXG4gMTM0OlxcdHN0cnVjdCBleHQ0X3hhdHRyX2lub2RlX2FycmF5IHtcXG4gMTM1OlxcdFxcdHVuc2lnbmVkIGludCBjb3VudDtcXG4gMTM2OlxcdFxcdHN0cnVjdCBpbm9kZSAqaW5vZGVzW10gX19jb3VudGVkX2J5KGNvdW50KTtcXG4gMTM3OlxcdH07XFxuIDEzODpcXHRcXG4gMTM5OlxcdGV4dGVybiBjb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciBleHQ0X3hhdHRyX3VzZXJfaGFuZGxlcjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTc6MDk6MTcuNjY1NTA3MjdaIiwiU2VxIjoyMywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTk2MDUzMDI0MTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW5pdGlhbCBUaG91Z2h0cyBvbiBDIFN0cnVjdHVyZSBJbml0aWFsaXphdGlvbioqXG5cbk9rYXksIGxldCdzIGJyZWFrIGRvd24gdGhpcyBDIGNvZGUgc25pcHBldC4gSSBzZWUgdGhhdCBgaXNgIGlzIGluaXRpYWxpemVkIHdpdGggYSBicmFjZS1lbmNsb3NlZCBpbml0aWFsaXplcjpcblxuYGBgY1xuXHRzdHJ1Y3QgZXh0NF94YXR0cl9pYm9keV9maW5kIGlzID0ge1xuXHRcdC5zID0geyAubm90X2ZvdW5kID0gMCwgfSxcblx0fTtcbmBgYFxuXG5SaWdodCwgdGhhdCdzIHN0cmFpZ2h0Zm9yd2FyZC4gSW4gQywgaWYgSSB1c2UgdGhpcyB0eXBlIG9mIGluaXRpYWxpemF0aW9uLCBhbnkgZmllbGRzIEkgZG9uJ3QgZXhwbGljaXRseSBzZXQgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHplcm8taW5pdGlhbGl6ZWQuIFNvLCBhdCB0aGUgc3RhcnQsIGBpc2AgaXMgZXNzZW50aWFsbHkgYSBjb21wbGV0ZWx5IHplcm9lZC1vdXQgb2JqZWN0LiBOaWNlIGFuZCBjbGVhbi5cblxuTm93LCB3aGF0J3MgbmV4dD8gQWgsIGBpYDpcblxuYGBgY1xuXHRzdHJ1Y3QgZXh0NF94YXR0cl9pbmZvIGkgPSB7XG5cdFx0Lm5hbWVfaW5kZXggPSBFWFQ0X1hBVFRSX0lOREVYX1NZU1RFTSxcblx0XHQubmFtZSA9IEVYVDRfWEFUVFJfU1lTVEVNX0RBVEEsXG5cdFx0LnZhbHVlID0gTlVMTCxcblx0XHQudmFsdWVfbGVuID0gMCxcblx0fTtcbmBgYFxuXG5IZXJlLCBJJ20gZXhwbGljaXRseSBpbml0aWFsaXppbmcgYG5hbWVfaW5kZXhgLCBgbmFtZWAsIGB2YWx1ZWAsIGFuZCBgdmFsdWVfbGVuYC4gSG93ZXZlciwgdGhlIEMgc3RhbmRhcmQgZ3VhcmFudGVlcyBhbnkgcmVtYWluaW5nIGZpZWxkcyAqbm90KiBleHBsaWNpdGx5IGluaXRpYWxpemVkIHdpbGwgYWxzbyBiZSB6ZXJvZWQgb3V0LiBUaGlzIGlzIGdvb2QgZm9yIG1lLCBpdCBlbnN1cmVzIGNvbnNpc3RlbnQgYmVoYXZpb3IgYW5kIHByZXZlbnRzIHN1cnByaXNlcy5cblxuRmluYWxseSwgYG5ld2V4YDpcblxuYGBgY1xuXHRcdHN0cnVjdCBleHQ0X2V4dGVudCBuZXdleDtcblxuXHRcdG5ld2V4LmVlX2Jsb2NrID0gY3B1X3RvX2xlMzIoMCk7XG5cdFx0bmV3ZXguZWVfbGVuID0gY3B1X3RvX2xlMTYoMSk7XG5cdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNm5ld2V4LCBibG9jayk7XG5gYGBcblxuSSdtIGN1cmlvdXMgYWJvdXQgdGhlIGRlZmluaXRpb24gb2YgYHN0cnVjdCBleHQ0X2V4dGVudGAgaW4gdGhpcyBjb250ZXh0LCBzbyBJJ2xsIG5lZWQgdG8gZXhhbWluZSB0aGF0IHRvIHVuZGVyc3RhbmQgaG93IHRoZSByZW1haW5pbmcgZmllbGRzIGFyZSB1c2VkIGFuZCB3aGV0aGVyIGFueSBkZWZhdWx0IHZhbHVlcyBhcmUgcmVsaWVkIHVwb24gYmV5b25kIHdoYXQncyBleHBsaWNpdGx5IHNldC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODMxNiwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjEwOjU3LjI3MDgxMzkzWiIsIlNlcSI6MjQsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODA4NjYxMjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBleHQ0X2V4dGVudCBcXFxce1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9leHQ0L2V4dDRfZXh0ZW50cy5oPTQ4PXN0cnVjdCBleHQ0X2V4dGVudF90YWlsIHtcXG4tLVxcbmZzL2V4dDQvZXh0NF9leHRlbnRzLmgtNTUtICovXFxuZnMvZXh0NC9leHQ0X2V4dGVudHMuaDo1NjpzdHJ1Y3QgZXh0NF9leHRlbnQge1xcbmZzL2V4dDQvZXh0NF9leHRlbnRzLmgtNTctXFx0X19sZTMyXFx0ZWVfYmxvY2s7XFx0LyogZmlyc3QgbG9naWNhbCBibG9jayBleHRlbnQgY292ZXJzICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjExOjAwLjA3OTQ4MjAxWiIsIlNlcSI6MjUsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMjUwOTQ3NDQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBleHQ0X2V4dGVudCBTdHJ1Y3R1cmUqKlxuXG5Pa2F5LCBsZXQncyBwdWxsIHVwIHRoZSBkZWZpbml0aW9uIG9mIGBzdHJ1Y3QgZXh0NF9leHRlbnRgLiBJJ3ZlIHdvcmtlZCB3aXRoIHRoZXNlIGV4dGVuc2l2ZWx5LCBidXQgYSBxdWljayByZWZyZXNoIG5ldmVyIGh1cnRzLiBJIG5lZWQgdG8gZ2V0IGJhY2sgdG8gZmlyc3QgcHJpbmNpcGxlcyBiZWZvcmUgSSBzdGFydCBkaXZpbmcgYmFjayBpbnRvIHRoZSBjb2RlLiBSaWdodCwgbWVtb3J5IGxheW91dCBpcyBrZXk6IGhvdyBkb2VzIHRoaXMgbGl0dGxlIHN0cnVjdHVyZSBwYWNrIGluZm9ybWF0aW9uIGFib3V0IGJsb2NrIHJhbmdlcz8gU2l6ZSB3aWxsIG1hdHRlciB3aGVuIGl0IGNvbWVzIHRvIHBlcmZvcm1hbmNlLCBhbmQsIGhvdyBkb2VzIHRoZSBzdHJ1Y3R1cmUgaGFuZGxlIGRpZmZlcmVudCBzaXplcz8gSXMgdGhlcmUgYW4gaW5oZXJlbnQgbGltaXQgb3IgZG9lcyBpdCBzdXBwb3J0IHZhcmlhYmxlIGV4dGVudHM/XG5cbknigJltIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIGhvdyB0aGUgbWV0YWRhdGEgdHJhbnNsYXRlcyBpbnRvIHBoeXNpY2FsIGJsb2NrIGxvY2F0aW9ucy4gVW5kZXJzdGFuZGluZyB0aGlzIHdpbGwgaGVscCBtZSBkZXRlcm1pbmUgd2hpY2ggYXBwcm9hY2hlcyB0aGUgc3lzdGVtIHdpbGwgYmUgdXNpbmcuIFRoZSBgZXh0NF9leHRlbnRgIHN0cnVjdHVyZSB3aWxsIGluZm9ybSBteSBhcHByb2FjaCB0byBvcHRpbWl6aW5nIGEgc3BlY2lmaWMgSS9PIHNjZW5hcmlvIEknbSBjdXJyZW50bHkgd29ya2luZyBvbi4gSXMgdGhlIHN0cnVjdHVyZSB3ZWxsLWFsaWduZWQ/IEFyZSB0aGVyZSBhbnkgcG90ZW50aWFsIHBhZGRpbmcgaXNzdWVzIHRoYXQgbWlnaHQgYWZmZWN0IG1lbW9yeSBhY2Nlc3MgcGF0dGVybnM/IEnigJlsbCBtZW50YWxseSBtYXAgdGhlIG1lbWJlcnMgdG8gdGhlaXIgbGlrZWx5IHJvbGVzOiB0aGUgc3RhcnRpbmcgYmxvY2ssIHRoZSBibG9jayBjb3VudCwgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YS4gRG9lcyBpdCBvZmZlciBhbnkgY29tcHJlc3Npb24gbWVjaGFuaXNtcz8gSXQncyBlc3NlbnRpYWwgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIGZvciBmcmFnbWVudGF0aW9uLCBlc3BlY2lhbGx5IHdoZW4gZGVhbGluZyB3aXRoIGxhcmdlIGZpbGVzIGFuZCBzcGFyc2UgZGF0YS4gVGhlIHN0cnVjdHVyZSBhbHNvIG1heSBnaXZlIGNsdWVzIHRvIHRoZSB1c2Ugb2Ygc29tZSBjYWNoaW5nIG1lY2hhbmlzbXMuIEkgd2FudCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBkYXRhJ3MgcG90ZW50aWFsIGVmZmVjdHMgb24gY2FjaGluZyBhbmQgb3ZlcmFsbCBwZXJmb3JtYW5jZS4gT2theSwgbGV0J3Mgc2VlIHdoYXQgd2UncmUgd29ya2luZyB3aXRoIGhlcmUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6OTEzNSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjExOjExLjMzMDQzMTc4NFoiLCJTZXEiOjI2LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTY3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJmcy9leHQ0L2V4dDRfZXh0ZW50cy5oXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDU1LFxuICBcIkxpbmVDb3VudFwiOiAxNVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDU1OlxcdCAqL1xcbiAgNTY6XFx0c3RydWN0IGV4dDRfZXh0ZW50IHtcXG4gIDU3OlxcdFxcdF9fbGUzMlxcdGVlX2Jsb2NrO1xcdC8qIGZpcnN0IGxvZ2ljYWwgYmxvY2sgZXh0ZW50IGNvdmVycyAqL1xcbiAgNTg6XFx0XFx0X19sZTE2XFx0ZWVfbGVuO1xcdFxcdC8qIG51bWJlciBvZiBibG9ja3MgY292ZXJlZCBieSBleHRlbnQgKi9cXG4gIDU5OlxcdFxcdF9fbGUxNlxcdGVlX3N0YXJ0X2hpO1xcdC8qIGhpZ2ggMTYgYml0cyBvZiBwaHlzaWNhbCBibG9jayAqL1xcbiAgNjA6XFx0XFx0X19sZTMyXFx0ZWVfc3RhcnRfbG87XFx0LyogbG93IDMyIGJpdHMgb2YgcGh5c2ljYWwgYmxvY2sgKi9cXG4gIDYxOlxcdH07XFxuICA2MjpcXHRcXG4gIDYzOlxcdC8qXFxuICA2NDpcXHQgKiBUaGlzIGlzIGluZGV4IG9uLWRpc2sgc3RydWN0dXJlLlxcbiAgNjU6XFx0ICogSXQncyB1c2VkIGF0IGFsbCB0aGUgbGV2ZWxzIGV4Y2VwdCB0aGUgYm90dG9tLlxcbiAgNjY6XFx0ICovXFxuICA2NzpcXHRzdHJ1Y3QgZXh0NF9leHRlbnRfaWR4IHtcXG4gIDY4OlxcdFxcdF9fbGUzMlxcdGVpX2Jsb2NrO1xcdC8qIGluZGV4IGNvdmVycyBsb2dpY2FsIGJsb2NrcyBmcm9tICdibG9jaycgKi9cXG4gIDY5OlxcdFxcdF9fbGUzMlxcdGVpX2xlYWZfbG87XFx0LyogcG9pbnRlciB0byB0aGUgcGh5c2ljYWwgYmxvY2sgb2YgdGhlIG5leHQgKlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxMToxMS4zMzA1MDQ5NDRaIiwiU2VxIjoyNywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUyMDAzODkzMzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBFeHQ0IEV4dGVuZGVkIEF0dHJpYnV0ZSBCbG9jayBTdHJ1Y3R1cmUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBuZXdleGAgc3RydWN0dXJlLCB3aGljaCBzZWVtcyB0byBiZSBjZW50cmFsIHRvIGhvdyBFeHQ0IGhhbmRsZXMgZXh0ZW5kZWQgYXR0cmlidXRlcy4gSSBzZWUgaXQgaGFzIHRoZXNlIGZpZWxkczogYGVlX2Jsb2NrYCwgYGVlX2xlbmAsIGBlZV9zdGFydF9oaWAsIGFuZCBgZWVfc3RhcnRfbG9gLiBNeSBpbml0aWFsIGltcHJlc3Npb24gaXMgdGhhdCB0aGVzZSBhcmUgbGlrZWx5IHJlbGF0ZWQgdG8gYmxvY2sgYWxsb2NhdGlvbiBvciBhZGRyZXNzaW5nIHdpdGhpbiB0aGUgZmlsZXN5c3RlbSwgcGVyaGFwcyBhIHdheSB0byBtYXAgZXh0ZW5kZWQgYXR0cmlidXRlIGRhdGEgdG8gc3BlY2lmaWMgYmxvY2tzIG9uIGRpc2suXG5cbk5vdywgdGhlIGNvZGUgc25pcHBldCBpcyBzZXR0aW5nIGBuZXdleC5lZV9ibG9ja2AgdG8gMCAoY29udmVydGVkIHRvIGxpdHRsZS1lbmRpYW4pLCBgbmV3ZXguZWVfbGVuYCB0byAxIChhbHNvIGxpdHRsZS1lbmRpYW4pIGFuZCB0aGVuIGNhbGxpbmcgYGV4dDRfZXh0X3N0b3JlX3BibG9ja2Agd2l0aCB0aGUgYG5ld2V4YCBzdHJ1Y3R1cmUgYW5kIGEgYGJsb2NrYCB2YXJpYWJsZS4gVGhlIGFzc2lnbm1lbnQgdG8gYGVlX2Jsb2NrYCBhbmQgYGVlX2xlbmAgYmVpbmcgYSBjb25zdGFudCBzdWdnZXN0cyB0aGlzIG1heSBiZSByZWxhdGVkIHRvIHRoZSBpbml0aWFsIHNldHVwIG9mIGFuIGV4dGVuZGVkIGF0dHJpYnV0ZSBlbnRyeS4gU2V0dGluZyB0aGUgbGVuZ3RoIHRvIDEgYWxzbyBtYWtlcyBtZSB0aGluayB0aGF0IGBleHQ0X2V4dF9zdG9yZV9wYmxvY2tgIG1pZ2h0IGhhbmRsZSB0aGUgaW5pdGlhbCBzdG9yYWdlIGZvciB0aGF0IHNpbmdsZSBibG9jay4gSSBpbW1lZGlhdGVseSB3YW50IHRvIGRpZyBpbnRvIGBleHQ0X2V4dF9zdG9yZV9wYmxvY2tgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGl0J3MgZG9pbmcgd2l0aCB0aGlzIGBuZXdleGAgc3RydWN0dXJlIGFuZCB0aGUgcGFzc2VkIGJsb2NrLiBUaGF0IGZ1bmN0aW9uIGlzIHByb2JhYmx5IHRoZSBrZXkgdG8gdW5sb2NraW5nIGhvdyB0aGlzIGJsb2NrIGRhdGEgaXMgYWN0dWFsbHkgc3RvcmVkLiBJIHN1c3BlY3QgdGhlIGZ1bmN0aW9uIHdpbGwgbW9kaWZ5IHRoZXNlIGZpZWxkcyBiYXNlZCBvbiB0aGUgaW5wdXQgYmxvY2sgdG8gc3RvcmUgaW5mb3JtYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk3NTcsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxMTo0Ni41MzA4OTcxNDRaIiwiU2VxIjoyOCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTI2NTkzODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZXh0NF9leHRfc3RvcmVfcGJsb2NrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4dDQvZXh0NF9leHRlbnRzLmg9MjMyPXN0YXRpYyBpbmxpbmUgZXh0NF9mc2Jsa190IGV4dDRfaWR4X3BibG9jayhzdHJ1Y3QgZXh0NF9leHRlbnRfaWR4ICppeClcXG4tLVxcbmZzL2V4dDQvZXh0NF9leHRlbnRzLmgtMjQxLS8qXFxuZnMvZXh0NC9leHQ0X2V4dGVudHMuaDoyNDI6ICogZXh0NF9leHRfc3RvcmVfcGJsb2NrOlxcbmZzL2V4dDQvZXh0NF9leHRlbnRzLmgtMjQzLSAqIHN0b3JlcyBhIGxhcmdlIHBoeXNpY2FsIGJsb2NrIG51bWJlciBpbnRvIGFuIGV4dGVudCBzdHJ1Y3QsXFxuLS1cXG5mcy9leHQ0L2V4dDRfZXh0ZW50cy5oLTI0NS0gKi9cXG5mcy9leHQ0L2V4dDRfZXh0ZW50cy5oOjI0NjpzdGF0aWMgaW5saW5lIHZvaWQgZXh0NF9leHRfc3RvcmVfcGJsb2NrKHN0cnVjdCBleHQ0X2V4dGVudCAqZXgsXFxuZnMvZXh0NC9leHQ0X2V4dGVudHMuaC0yNDctXFx0XFx0XFx0XFx0XFx0IGV4dDRfZnNibGtfdCBwYilcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy10ZXN0LmM9MjI3PXN0YXRpYyBpbnQgZXh0ZW50c19rdW5pdF9pbml0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy10ZXN0LmMtMzE5LVxcdEVYVF9GSVJTVF9FWFRFTlQoZWgpLVxcdTAwM2VlZV9sZW4gPSBjcHVfdG9fbGUxNihFWFRfREFUQV9MRU4pO1xcbmZzL2V4dDQvZXh0ZW50cy10ZXN0LmM6MzIwOlxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhFWFRfRklSU1RfRVhURU5UKGVoKSwgRVhUX0RBVEFfUEJMSyk7XFxuZnMvZXh0NC9leHRlbnRzLXRlc3QuYy0zMjEtXFx0aWYgKCFwYXJhbSB8fCBwYXJhbS1cXHUwMDNlaXNfdW53cml0X2F0X3N0YXJ0KVxcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmM9MTk5Mj1leHQ0X2V4dF9pbnNlcnRfZXh0ZW50KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYy0yMDg1LVxcdFxcdFxcdGV4LVxcdTAwM2VlZV9ibG9jayA9IG5ld2V4dC1cXHUwMDNlZWVfYmxvY2s7XFxuZnMvZXh0NC9leHRlbnRzLmM6MjA4NjpcXHRcXHRcXHRleHQ0X2V4dF9zdG9yZV9wYmxvY2soZXgsIGV4dDRfZXh0X3BibG9jayhuZXdleHQpKTtcXG5mcy9leHQ0L2V4dGVudHMuYy0yMDg3LVxcdFxcdFxcdGV4LVxcdTAwM2VlZV9sZW4gPSBjcHVfdG9fbGUxNihleHQ0X2V4dF9nZXRfYWN0dWFsX2xlbihleClcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jLTIxOTYtXFx0bmVhcmV4LVxcdTAwM2VlZV9ibG9jayA9IG5ld2V4dC1cXHUwMDNlZWVfYmxvY2s7XFxuZnMvZXh0NC9leHRlbnRzLmM6MjE5NzpcXHRleHQ0X2V4dF9zdG9yZV9wYmxvY2sobmVhcmV4LCBleHQ0X2V4dF9wYmxvY2sobmV3ZXh0KSk7XFxuZnMvZXh0NC9leHRlbnRzLmMtMjE5OC1cXHRuZWFyZXgtXFx1MDAzZWVlX2xlbiA9IG5ld2V4dC1cXHUwMDNlZWVfbGVuO1xcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmM9MjYxND1leHQ0X2V4dF9ybV9sZWFmKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYy0yNzM5LVxcdFxcdFxcdC8qIHRoaXMgZXh0ZW50IGlzIHJlbW92ZWQ7IG1hcmsgc2xvdCBlbnRpcmVseSB1bnVzZWQgKi9cXG5mcy9leHQ0L2V4dGVudHMuYzoyNzQwOlxcdFxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleCwgMCk7XFxuZnMvZXh0NC9leHRlbnRzLmMtMjc0MS1cXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jPTMxOTE9c3RhdGljIHN0cnVjdCBleHQ0X2V4dF9wYXRoICpleHQ0X3NwbGl0X2V4dGVudF9hdChoYW5kbGVfdCAqaGFuZGxlLFxcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmMtMzI0Ni1cXHRleDItXFx1MDAzZWVlX2xlbiAgID0gY3B1X3RvX2xlMTYoZWVfbGVuIC0gKHNwbGl0IC0gZWVfYmxvY2spKTtcXG5mcy9leHQ0L2V4dGVudHMuYzozMjQ3OlxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleDIsIG5ld2Jsb2NrKTtcXG5mcy9leHQ0L2V4dGVudHMuYy0zMjQ4LVxcdGlmIChpc191bndyaXQpXFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYz0zNTU3PWV4dDRfZXh0X2NvbnZlcnRfdG9faW5pdGlhbGl6ZWQoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSxcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jLTM2NDUtXFx0XFx0XFx0ZXgtXFx1MDAzZWVlX2Jsb2NrID0gY3B1X3RvX2xlMzIoZWVfYmxvY2sgKyBtYXBfbGVuKTtcXG5mcy9leHQ0L2V4dGVudHMuYzozNjQ2OlxcdFxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleCwgZWVfcGJsayArIG1hcF9sZW4pO1xcbmZzL2V4dDQvZXh0ZW50cy5jLTM2NDctXFx0XFx0XFx0ZXgtXFx1MDAzZWVlX2xlbiA9IGNwdV90b19sZTE2KGVlX2xlbiAtIG1hcF9sZW4pO1xcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmMtMzY5MS1cXHRcXHRcXHRhYnV0X2V4LVxcdTAwM2VlZV9ibG9jayA9IGNwdV90b19sZTMyKG5leHRfbGJsayAtIG1hcF9sZW4pO1xcbmZzL2V4dDQvZXh0ZW50cy5jOjM2OTI6XFx0XFx0XFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKGFidXRfZXgsIG5leHRfcGJsayAtIG1hcF9sZW4pO1xcbmZzL2V4dDQvZXh0ZW50cy5jLTM2OTMtXFx0XFx0XFx0ZXgtXFx1MDAzZWVlX2xlbiA9IGNwdV90b19sZTE2KGVlX2xlbiAtIG1hcF9sZW4pO1xcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmMtMzc0NS1cXHRcXHRcXHRcXHRjcHVfdG9fbGUxNigqYWxsb2NhdGVkIC0gc3BsaXRfbWFwLm1fbGVuKTtcXG5mcy9leHQ0L2V4dGVudHMuYzozNzQ2OlxcdFxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhcXHUwMDI2emVyb19leDEsXFxuZnMvZXh0NC9leHRlbnRzLmMtMzc0Ny1cXHRcXHRcXHRcXHRleHQ0X2V4dF9wYmxvY2soZXgpICsgc3BsaXRfbWFwLm1fbGJsayArXFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYy0zNzYwLVxcdFxcdFxcdFxcdFxcdFxcdFxcdGVlX2Jsb2NrKTtcXG5mcy9leHQ0L2V4dGVudHMuYzozNzYxOlxcdFxcdFxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhcXHUwMDI2emVyb19leDIsXFxuZnMvZXh0NC9leHRlbnRzLmMtMzc2Mi1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICBleHQ0X2V4dF9wYmxvY2soZXgpKTtcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jPTQyNjk9aW50IGV4dDRfZXh0X21hcF9ibG9ja3MoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSxcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jLTQ0NzMtXFx0cGJsayA9IG5ld2Jsb2NrICsgb2Zmc2V0O1xcbmZzL2V4dDQvZXh0ZW50cy5jOjQ0NzQ6XFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFxcdTAwMjZuZXdleCwgcGJsayk7XFxuZnMvZXh0NC9leHRlbnRzLmMtNDQ3NS1cXHRuZXdleC5lZV9sZW4gPSBjcHVfdG9fbGUxNihhci5sZW4pO1xcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmM9NTc2Mz1leHQ0X3N3YXBfZXh0ZW50cyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlMSxcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jLTU4OTctXFx0XFx0dG1wX2V4ID0gKmV4MTtcXG5mcy9leHQ0L2V4dGVudHMuYzo1ODk4OlxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleDEsIGV4dDRfZXh0X3BibG9jayhleDIpKTtcXG5mcy9leHQ0L2V4dGVudHMuYzo1ODk5OlxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleDIsIGV4dDRfZXh0X3BibG9jayhcXHUwMDI2dG1wX2V4KSk7XFxuZnMvZXh0NC9leHRlbnRzLmMtNTkwMC1cXHRcXHRleDEtXFx1MDAzZWVlX2xlbiA9IGNwdV90b19sZTE2KGUyX2xlbik7XFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYz02MDI3PWludCBleHQ0X2V4dF9yZXBsYXlfdXBkYXRlX2V4KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfbGJsa190IHN0YXJ0LFxcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmMtNjA4MC1cXHRcXHRleHQ0X2V4dF9tYXJrX2luaXRpYWxpemVkKGV4KTtcXG5mcy9leHQ0L2V4dGVudHMuYzo2MDgxOlxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleCwgcGJsayk7XFxuZnMvZXh0NC9leHRlbnRzLmMtNjA4Mi1cXHRkb3duX3dyaXRlKFxcdTAwMjZFWFQ0X0koaW5vZGUpLVxcdTAwM2VpX2RhdGFfc2VtKTtcXG4tLVxcbmZzL2V4dDQvZmFzdF9jb21taXQuYz05MzE9c3RhdGljIGludCBleHQ0X2ZjX3dyaXRlX2lub2RlX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSwgdTMyICpjcmMpXFxuLS1cXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmMtOTYxLVxcdFxcdGV4LVxcdTAwM2VlZV9sZW4gPSBjcHVfdG9fbGUxNihyYW5nZS1cXHUwMDNlbGVuKTtcXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmM6OTYyOlxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleCwgcmFuZ2UtXFx1MDAzZXBibGspO1xcbmZzL2V4dDQvZmFzdF9jb21taXQuYy05NjMtXFx0XFx0aWYgKHJhbmdlLVxcdTAwM2V1bndyaXR0ZW4pXFxuLS1cXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmM9MjE0OD1zdGF0aWMgaW50IGV4dDRfZmNfcmVwbGF5X2FkZF9yYW5nZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1OCAqdmFsKVxcbi0tXFxuZnMvZXh0NC9mYXN0X2NvbW1pdC5jLTIyMDItXFx0XFx0XFx0bmV3ZXguZWVfYmxvY2sgPSBjcHVfdG9fbGUzMihjdXIpO1xcbmZzL2V4dDQvZmFzdF9jb21taXQuYzoyMjAzOlxcdFxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhcXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmMtMjIwNC1cXHRcXHRcXHRcXHRcXHUwMDI2bmV3ZXgsIHN0YXJ0X3BibGsgKyBjdXIgLSBzdGFydCk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTEwNzQ9c3RhdGljIGludCBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2ZzYmxrX3QgYmxvY2ssXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTExMzUtXFx0XFx0bmV3ZXguZWVfbGVuID0gY3B1X3RvX2xlMTYoMSk7XFxuZnMvZXh0NC9pbmxpbmUuYzoxMTM2OlxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhcXHUwMDI2bmV3ZXgsIGJsb2NrKTtcXG5mcy9leHQ0L2lubGluZS5jLTExMzctXFx0XFx0cGF0aCA9IGV4dDRfZXh0X2luc2VydF9leHRlbnQoaGFuZGxlLCBpbm9kZSwgcGF0aCwgXFx1MDAyNm5ld2V4LCAwKTtcXG4tLVxcbmZzL2V4dDQvbWlncmF0ZS5jPTIxPXN0YXRpYyBpbnQgZmluaXNoX3JhbmdlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L21pZ3JhdGUuYy0zMy1cXHRuZXdleHQuZWVfbGVuICAgPSBjcHVfdG9fbGUxNihsYi1cXHUwMDNlbGFzdF9ibG9jayAtIGxiLVxcdTAwM2VmaXJzdF9ibG9jayArIDEpO1xcbmZzL2V4dDQvbWlncmF0ZS5jOjM0OlxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhcXHUwMDI2bmV3ZXh0LCBsYi1cXHUwMDNlZmlyc3RfcGJsb2NrKTtcXG5mcy9leHQ0L21pZ3JhdGUuYy0zNS1cXHQvKiBMb2NraW5nIG9ubHkgZm9yIGNvbnZlbmllbmNlIHNpbmNlIHdlIGFyZSBvcGVyYXRpbmcgb24gdGVtcCBpbm9kZSAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxMTo0OC4wODM1NjIwNDJaIiwiU2VxIjoyOSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDAzODUwMjU4MTU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBFeHRlbnQgYW5kIEFsbG9jYXRpb24gSW5pdGlhbGl6YXRpb24gaW4gZXh0NCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGV4dDRfZXh0X3N0b3JlX3BibG9ja2AgZnVuY3Rpb24sIGFuZCBpdCdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIEl0J3MgcmVzcG9uc2libGUgZm9yIHN0b3JpbmcgdGhlIHBoeXNpY2FsIGJsb2NrIG51bWJlciAoYHBiYCkgaW50byB0aGUgZXh0ZW50IHN0cnVjdHVyZSdzIGBlZV9zdGFydF9sb2AgYW5kIGBlZV9zdGFydF9oaWAgZmllbGRzLiBUaGUgaGlnaCBiaXRzIGFyZSBzaGlmdGVkIGFuZCBtYXNrZWQgYXBwcm9wcmlhdGVseSwgYW5kIGV2ZXJ5dGhpbmcgaXMgY29udmVydGVkIHRvIGxpdHRsZS1lbmRpYW4uIFNlZW1zIHN0YW5kYXJkIGZvciBoYW5kbGluZyA2NC1iaXQgYmxvY2sgbnVtYmVycyB3aXRoaW4gYSA0OC1iaXQgc3BsaXQgZXh0ZW50IHN0cnVjdHVyZS4gSSdtIG5vdGluZyB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gaW5pdGlhbGl6aW5nIGBuZXdleGAuXG5cblRoZW4sIEknbSB2ZXJpZnlpbmcgdGhlIGNvbXBsZXRlIGluaXRpYWxpemF0aW9uIG9mIGFuIGBleHQ0X2V4dGVudGAgc3RydWN0dXJlLiBHaXZlbiB0aGF0IHRoZSBzdHJ1Y3R1cmUgaGFzIGZvdXIgZmllbGRzIChgZWVfYmxvY2tgLCBgZWVfbGVuYCwgYGVlX3N0YXJ0X2hpYCwgYGVlX3N0YXJ0X2xvYCkgYW5kIHRoZSBjb2RlIGluaXRpYWxpemVzIGFsbCBmb3VyLCBJIGhhdmUgY29uZmlybWVkIHRoYXQgdGhlIGV4dGVudCBpcyBmdWxseSBpbml0aWFsaXplZC4gQ2hlY2tpbmcgdGhlIHN0cnVjdHVyZSdzIHNpemUgY29uZmlybXMgdGhlIGFic2VuY2Ugb2YgcGFkZGluZywgYXMgNCArIDIgKyAyICsgNCBlcXVhbHMgMTIgYnl0ZXMuXG5cbk5vdywgc2hpZnRpbmcgZ2VhcnMsIEknbSBleGFtaW5pbmcgdGhlIGluaXRpYWxpemF0aW9uIG9mIGBzdHJ1Y3QgZXh0NF9hbGxvY2F0aW9uX3JlcXVlc3QgYXI7YCB3aXRoaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBUaGUgY29kZSB1c2VzIGBtZW1zZXRgIHRvIGluaXRpYWxpemUgYGFyYCB0byB6ZXJvLCBhbmQgdGhlbiBzZXRzIHNvbWUgc3BlY2lmaWMgZmllbGRzLiBTbywgdGhhdCdzIGRlZmluaXRlbHkgYSBjb21wbGV0ZSBpbml0aWFsaXphdGlvbi5cblxuTXkgZm9jdXMgaXMgc2hpZnRpbmcgdG8gYGJ1ZmAsIGFsbG9jYXRlZCB3aXRoIGBrbWFsbG9jYCBpbiB0aGUgc2FtZSBmdW5jdGlvbi4gSSBzZWUgdGhhdCBgYnVmYCBpcyBhbGxvY2F0ZWQgYnV0IHVuaW5pdGlhbGl6ZWQsIHdoaWNoIGlzIGEga2V5IHBvaW50IHRvIHdhdGNoIG91dCBmb3IuIEFmdGVyIGFsbG9jYXRpb24sIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIGlzIGNhbGxlZCB0byBwb3B1bGF0ZSBgYnVmYC4gVGhpcyBpcyB3aGVyZSBJIGhhdmUgYSBjb25jZXJuLiBJZiBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCBkb2Vzbid0IGZ1bGx5IGluaXRpYWxpemUgdGhlIGFsbG9jYXRlZCBgYnVmYCBidWZmZXIsIGl0IGNvdWxkIGxlYWQgdG8gdW5pbml0aWFsaXplZCBtZW1vcnkgYmVpbmcgdXNlZCwgd2hpY2ggY291bGQgY3JlYXRlIGlzc3Vlcy4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCBjYXJlZnVsbHkgdG8gZW5zdXJlIGl0IGhhbmRsZXMgdGhlIGVudGlyZSBgYnVmYC4gSSdtIGdvaW5nIHRvIGxvb2sgYXQgdGhhdCBmdW5jdGlvbiBuZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjYxMCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcyOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxODozMS45MzM4MjQxNzhaIiwiU2VxIjozMCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MDk0NDcxMjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZXh0NF9yZWFkX2lubGluZV9kYXRhXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4dDQvaW5saW5lLmM9MTQ1PWludCBleHQ0X2ZpbmRfaW5saW5lX2RhdGFfbm9sb2NrKHN0cnVjdCBpbm9kZSAqaW5vZGUpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTE4My1cXG5mcy9leHQ0L2lubGluZS5jOjE4NDpzdGF0aWMgaW50IGV4dDRfcmVhZF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB2b2lkICpidWZmZXIsXFxuZnMvZXh0NC9pbmxpbmUuYy0xODUtXFx0XFx0XFx0XFx0IHVuc2lnbmVkIGludCBsZW4sXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTUwND1zdGF0aWMgaW50IGV4dDRfcmVhZF9pbmxpbmVfZm9saW8oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZvbGlvICpmb2xpbylcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtNTM1LVxcdGthZGRyID0ga21hcF9sb2NhbF9mb2xpbyhmb2xpbywgMCk7XFxuZnMvZXh0NC9pbmxpbmUuYzo1MzY6XFx0cmV0ID0gZXh0NF9yZWFkX2lubGluZV9kYXRhKGlub2RlLCBrYWRkciwgbGVuLCBcXHUwMDI2aWxvYyk7XFxuZnMvZXh0NC9pbmxpbmUuYy01MzctXFx0a2FkZHIgPSBmb2xpb196ZXJvX3RhaWwoZm9saW8sIGxlbiwga2FkZHIgKyBsZW4pO1xcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz0xMTg1PXN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xMjA0LVxcbmZzL2V4dDQvaW5saW5lLmM6MTIwNTpcXHRlcnJvciA9IGV4dDRfcmVhZF9pbmxpbmVfZGF0YShpbm9kZSwgYnVmLCBpbmxpbmVfc2l6ZSwgaWxvYyk7XFxuZnMvZXh0NC9pbmxpbmUuYy0xMjA2LVxcdGlmIChlcnJvciBcXHUwMDNjIDApXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTEzNTc9aW50IGV4dDRfaW5saW5lZGlyX3RvX3RyZWUoc3RydWN0IGZpbGUgKmRpcl9maWxlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xMzkyLVxcbmZzL2V4dDQvaW5saW5lLmM6MTM5MzpcXHRyZXQgPSBleHQ0X3JlYWRfaW5saW5lX2RhdGEoaW5vZGUsIGRpcl9idWYsIGlubGluZV9zaXplLCBcXHUwMDI2aWxvYyk7XFxuZnMvZXh0NC9pbmxpbmUuYy0xMzk0LVxcdHVwX3JlYWQoXFx1MDAyNkVYVDRfSShpbm9kZSktXFx1MDAzZXhhdHRyX3NlbSk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTE0Nzg9aW50IGV4dDRfcmVhZF9pbmxpbmVfZGlyKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xNTExLVxcbmZzL2V4dDQvaW5saW5lLmM6MTUxMjpcXHRyZXQgPSBleHQ0X3JlYWRfaW5saW5lX2RhdGEoaW5vZGUsIGRpcl9idWYsIGlubGluZV9zaXplLCBcXHUwMDI2aWxvYyk7XFxuZnMvZXh0NC9pbmxpbmUuYy0xNTEzLVxcdHVwX3JlYWQoXFx1MDAyNkVYVDRfSShpbm9kZSktXFx1MDAzZXhhdHRyX3NlbSk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTE2MDk9dm9pZCAqZXh0NF9yZWFkX2lubGluZV9saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTE2MjQtXFxuZnMvZXh0NC9pbmxpbmUuYzoxNjI1OlxcdHJldCA9IGV4dDRfcmVhZF9pbmxpbmVfZGF0YShpbm9kZSwgbGluaywgaW5saW5lX3NpemUsIFxcdTAwMjZpbG9jKTtcXG5mcy9leHQ0L2lubGluZS5jLTE2MjYtXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTc6MTg6MzMuODQzMjc2NjUyWiIsIlNlcSI6MzEsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1MzQ1NzIyNzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipEaXZpbmcgaW50byBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCoqXG5cbkFscmlnaHQsIHRpbWUgdG8gY3JhY2sgb3BlbiB0aGUgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgZnVuY3Rpb24uIEknbSBhbHJlYWR5IGFudGljaXBhdGluZyBzb21lIG9mIHRoZSBrZXkgYXJlYXMgdGhpcyB3aWxsIHRvdWNoIG9uLiBXZSdyZSBkZWFsaW5nIHdpdGggaW5saW5lIGRhdGEsIHdoaWNoIG1lYW5zIHdlJ3JlIGRlYWxpbmcgd2l0aCBvcHRpbWl6YXRpb25zLCBidXQgYWxzbyBwb3RlbnRpYWwgY29tcGxleGl0eSBpbiBoYW5kbGluZyBkYXRhIHN0b3JlZCBkaXJlY3RseSB3aXRoaW4gdGhlIGlub2RlIGl0c2VsZiwgcmF0aGVyIHRoYW4gaW4gc2VwYXJhdGUgYmxvY2tzIG9uIGRpc2suIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbnRhbCBtYXAgb2YgdGhlIGV4dDQgZGF0YSBzdHJ1Y3R1cmVzLCBzcGVjaWZpY2FsbHkgdGhlIGlub2RlIGxheW91dCBhbmQgdGhlIHZhcmlvdXMgZmxhZ3MgdGhhdCBzaWduYWwgaW5saW5lIGRhdGEgdXNhZ2UuXG5cbkknbGwgYmUgbG9va2luZyBjbG9zZWx5IGF0IGhvdyB0aGUgZnVuY3Rpb24gY2FsY3VsYXRlcyBvZmZzZXRzLCBwYXJ0aWN1bGFybHkgdGhlIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZSBpbm9kZSdzIGRhdGEgYXJlYSBhbmQgdGhlIGZpbGUncyBzaXplLiBIYW5kbGluZyBib3VuZGFyeSBjb25kaXRpb25zIGlzIGFsd2F5cyBjcnVjaWFsIGluIHRoaXMgdHlwZSBvZiBmdW5jdGlvbjsgaW5jb3JyZWN0IGNhbGN1bGF0aW9ucyBjb3VsZCBlYXNpbHkgbGVhZCB0byByZWFkaW5nIGJleW9uZCB0aGUgYWxsb2NhdGVkIGRhdGEgb3IsIHdvcnNlLCBjb3JydXB0aW5nIGZpbGUgbWV0YWRhdGEuIEkgbmVlZCB0byBzZWUgaG93IGl0IG1hbmFnZXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudHMsIGFuZCB3aGV0aGVyIHRoZSByZWFkcyBhcmUgYnl0ZS1hbGlnbmVkIGFzIGlzIHJlcXVpcmVkLlxuXG5JJ2xsIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGVycm9yIGhhbmRsaW5nLiBJIGV4cGVjdCBjaGVja3MgZm9yIGludmFsaWQgaW5vZGUgc3RydWN0dXJlcyBvciBmaWxlIHNpemVzLCBhbmQgSSB3YW50IHRvIHNlZSBob3cgdGhlIGZ1bmN0aW9uIG1hbmFnZXMgZXJyb3JzIGR1cmluZyB0aGUgZGF0YSBjb3B5IGl0c2VsZi4gU2luY2UgaW5saW5lIGRhdGEgaXMgZXNzZW50aWFsbHkgdGlnaHRseSBjb3VwbGVkIHdpdGggdGhlIGlub2RlLCBhbnkgaW5jb25zaXN0ZW5jaWVzIGNvdWxkIGJlIGNhdGFzdHJvcGhpYy5cblxuVGhlIGVmZmljaWVuY3kgb2YgdGhpcyBmdW5jdGlvbiBpcyBwYXJhbW91bnQuIEl0IHNob3VsZCBtaW5pbWl6ZSB1bm5lY2Vzc2FyeSBtZW1vcnkgY29waWVzIGFuZCBJL08gb3BlcmF0aW9ucywgZW5zdXJpbmcgdGhhdCBpbmxpbmUgZGF0YSByZWFkcyBhcmUgYXMgZmFzdCBhcyBwb3NzaWJsZS4gSSdsbCBiZSBzY3J1dGluaXppbmcgYW55IG9wdGltaXphdGlvbnMgcHJlc2VudCB0byBhc3Nlc3MgdGhlaXIgaW1wYWN0IGFuZCBjb3JyZWN0bmVzcy4gRnVydGhlcm1vcmUsIGlmIGFueSBsb2NraW5nIGlzIGludm9sdmVkLCBJJ2xsIGJlIGludmVzdGlnYXRpbmcgdGhvc2UgZm9yIHRoZWlyIGVmZmljaWVuY3kuXG5cbkZpbmFsbHksIEknbGwgd2FudCB0byBzZWUgaG93IGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIGludGVncmF0ZXMgd2l0aCB0aGUgbGFyZ2VyIGZpbGUgc3lzdGVtIHJlYWQgcGF0aC4gSSB3YW50IHRvIHNlZSBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIGJ1ZmZlciBjYWNoZSwgdGhlIHBhZ2UgY2FjaGUsIGFuZCBvdGhlciBwb3RlbnRpYWwgb3B0aW1pemF0aW9uIGxheWVycy4gSG93IGRvZXMgaXQgaGFuZGxlIHRoZSBjYXNlIHdoZW4gaW5saW5lIGRhdGEgbmVlZHMgdG8gYmUgY29tYmluZWQgd2l0aCBkYXRhIGZyb20gcmVndWxhciBibG9ja3M/IFRoZSBpbnRlcmFjdGlvbnMgYmV0d2VlbiBkaWZmZXJlbnQgZGF0YSBzdG9yYWdlIG1ldGhvZHMgYXJlIGFsd2F5cyBhIHByaW1lIGFyZWEgb2YgaW50ZXJlc3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0NTMyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTc6MTg6MzkuMzc3ODUxNzUzWiIsIlNlcSI6MzIsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NTk0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJmcy9leHQ0L2lubGluZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE4NCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDE4NDpcXHRzdGF0aWMgaW50IGV4dDRfcmVhZF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB2b2lkICpidWZmZXIsXFxuIDE4NTpcXHRcXHRcXHRcXHRcXHQgdW5zaWduZWQgaW50IGxlbixcXG4gMTg2OlxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgZXh0NF9pbG9jICppbG9jKVxcbiAxODc6XFx0e1xcbiAxODg6XFx0XFx0c3RydWN0IGV4dDRfeGF0dHJfZW50cnkgKmVudHJ5O1xcbiAxODk6XFx0XFx0c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfaGVhZGVyICpoZWFkZXI7XFxuIDE5MDpcXHRcXHRpbnQgY3BfbGVuID0gMDtcXG4gMTkxOlxcdFxcdHN0cnVjdCBleHQ0X2lub2RlICpyYXdfaW5vZGU7XFxuIDE5MjpcXHRcXG4gMTkzOlxcdFxcdGlmICghbGVuKVxcbiAxOTQ6XFx0XFx0XFx0cmV0dXJuIDA7XFxuIDE5NTpcXHRcXG4gMTk2OlxcdFxcdEJVR19PTihsZW4gXFx1MDAzZSBFWFQ0X0koaW5vZGUpLVxcdTAwM2VpX2lubGluZV9zaXplKTtcXG4gMTk3OlxcdFxcbiAxOTg6XFx0XFx0Y3BfbGVuID0gbWluX3QodW5zaWduZWQgaW50LCBsZW4sIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpO1xcbiAxOTk6XFx0XFxuIDIwMDpcXHRcXHRyYXdfaW5vZGUgPSBleHQ0X3Jhd19pbm9kZShpbG9jKTtcXG4gMjAxOlxcdFxcdG1lbWNweShidWZmZXIsICh2b2lkICopKHJhd19pbm9kZS1cXHUwMDNlaV9ibG9jayksIGNwX2xlbik7XFxuIDIwMjpcXHRcXG4gMjAzOlxcdFxcdGxlbiAtPSBjcF9sZW47XFxuIDIwNDpcXHRcXHRidWZmZXIgKz0gY3BfbGVuO1xcbiAyMDU6XFx0XFxuIDIwNjpcXHRcXHRpZiAoIWxlbilcXG4gMjA3OlxcdFxcdFxcdGdvdG8gb3V0O1xcbiAyMDg6XFx0XFxuIDIwOTpcXHRcXHRoZWFkZXIgPSBJSERSKGlub2RlLCByYXdfaW5vZGUpO1xcbiAyMTA6XFx0XFx0ZW50cnkgPSAoc3RydWN0IGV4dDRfeGF0dHJfZW50cnkgKikoKHZvaWQgKilyYXdfaW5vZGUgK1xcbiAyMTE6XFx0XFx0XFx0XFx0XFx0XFx0ICAgIEVYVDRfSShpbm9kZSktXFx1MDAzZWlfaW5saW5lX29mZik7XFxuIDIxMjpcXHRcXHRsZW4gPSBtaW5fdCh1bnNpZ25lZCBpbnQsIGxlbixcXG4gMjEzOlxcdFxcdFxcdCAgICAodW5zaWduZWQgaW50KWxlMzJfdG9fY3B1KGVudHJ5LVxcdTAwM2VlX3ZhbHVlX3NpemUpKTtcXG4gMjE0OlxcdFxcbiAyMTU6XFx0XFx0bWVtY3B5KGJ1ZmZlcixcXG4gMjE2OlxcdFxcdCAgICAgICAodm9pZCAqKUlGSVJTVChoZWFkZXIpICsgbGUxNl90b19jcHUoZW50cnktXFx1MDAzZWVfdmFsdWVfb2ZmcyksIGxlbik7XFxuIDIxNzpcXHRcXHRjcF9sZW4gKz0gbGVuO1xcbiAyMTg6XFx0XFxuIDIxOTpcXHRvdXQ6XFxuIDIyMDpcXHRcXHRyZXR1cm4gY3BfbGVuO1xcbiAyMjE6XFx0fVxcbiAyMjI6XFx0XFxuIDIyMzpcXHQvKlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxODozOS4zNzgwMjA3MTNaIiwiU2VxIjozMywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODc0MTQ1MDc3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgZXh0NCBJbmxpbmUgRGF0YSBIYW5kbGluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgLiBNeSBpbml0aWFsIHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBpdCBjb3BpZXMgaW5saW5lIGRhdGEgZnJvbSB0aGUgaW5vZGUncyBpbmxpbmUgZGF0YSBzZWN0aW9uIGludG8gYSBidWZmZXIuIEl0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogSXQgZ3JhYnMgYGNwX2xlbmAgYnl0ZXMsIHN1cHBvc2VkbHkgZnJvbSBgcmF3X2lub2RlLVx1MDAzZWlfYmxvY2tgLCBhbmQgdGhlbiBpZiB0aGVyZSdzIHN0aWxsIG1vcmUgZGF0YSB0byByZWFkIChgbGVuYCBpcyBzdGlsbCBncmVhdGVyIHRoYW4gMCksIGl0IGNvbnRpbnVlcyB0byBjb3B5IHRoZSByZW1haW5pbmcgZGF0YSBmcm9tIHRoZSB4YXR0ciBlbnRyeS5cblxuQnV0IHdhaXQgYSBtaW51dGUuLi4gSSBzZWUgc29tZXRoaW5nIGludGVyZXN0aW5nIGhlcmU6IGBjcF9sZW5gIHJldHVybmVkIGJ5IGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgICptaWdodCogYWN0dWFsbHkgYmUgbGVzcyB0aGFuIHRoZSBvcmlnaW5hbCByZXF1ZXN0ZWQgYGxlbmAuIFRoZSBjb2RlIHVzZXMgYG1pbl90YCB0byBkZXRlcm1pbmUgaG93IG11Y2ggaXQgc2hvdWxkIGNvcHk6XG5cbmBgYGNcbmxlbiA9IG1pbl90KHVuc2lnbmVkIGludCwgbGVuLCAodW5zaWduZWQgaW50KWxlMzJfdG9fY3B1KGVudHJ5LVx1MDAzZWVfdmFsdWVfc2l6ZSkpO1xuYGBgXG5cblNvLCBpZiB0aGUgcmVxdWVzdGVkIGBsZW5gIHdhcyBsYXJnZXIgdGhhbiBgZW50cnktXHUwMDNlZV92YWx1ZV9zaXplYCwgaXQgY29waWVzIGxlc3MgZGF0YSBhbmQgcmV0dXJucyB0aGF0IHNtYWxsZXIgYGNwX2xlbmAuIFRoYXQgbWFrZXMgc2Vuc2UgaW4gdGVybXMgb2Ygbm90IHJlYWRpbmcgcGFzdCB3aGF0J3Mgc3RvcmVkLCBidXQgaXQgcmFpc2VzIGEgY29uY2VybiBpbiBteSBoZWFkLlxuXG5Ob3cgSSdtIGxvb2tpbmcgYXQgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBUaGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcsIGJlY2F1c2UgaXQgY2FsbHMgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgdG8gcmVhZCBpbnRvIGEgYnVmZmVyIGBidWZgIGFsbG9jYXRlZCB3aXRoIGBrbWFsbG9jYC4gSXQgbG9va3MgbGlrZSBpdCBmaXJzdCBjYWxjdWxhdGVzIGBpbmxpbmVfc2l6ZWAgd2l0aCBgZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpYC4gVGhlbiwgaXQgYWxsb2NhdGVzIHRoZSBidWZmZXIsIHJlYWRzIGludG8gaXQsIGFuZCBjaGVja3MgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgLlxuXG5UaGUgY29yZSBvZiBteSBjb25jZXJuIGlzIHRoYXQgaWYgYGVycm9yYCwgd2hpY2ggaXMgZXF1YWwgdG8gYGNwX2xlbmAsIGlzIGxlc3MgdGhhbiBgaW5saW5lX3NpemVgLCB0aGUgYnVmZmVyIGBidWZgIGlzbid0ICpmdWxseSogaW5pdGlhbGl6ZWQuIFRoaXMgY291bGQgYmUgYSB2dWxuZXJhYmlsaXR5LCByaWdodD8gV2UncmUgZ29pbmcgdG8gYXR0ZW1wdCB0byByZWFkIGEgYnVmZmVyIHRoYXQgbWF5IGhhdmUgdW5pbml0aWFsaXplZCBieXRlcywgYW5kIHRoYXQncyBnZW5lcmFsbHkgYmFkLlxuXG5CdXQgaG9sZCBvbiwgbGV0IG1lIHN0b3AgYW5kIHRoaW5rIHRoaXMgdGhyb3VnaC4uLiB0aGUgc2l6ZSB0byByZWFkIGlzIHNldCBieSBgZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpYC4gVGhhdCBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIHRoZSBleGFjdCBzaXplIG9mIHRoZSBpbmxpbmUgZGF0YS5cblxuSSBuZWVkIHRvIGdvIGFuZCBjaGVjayBgZXh0NF9nZXRfaW5saW5lX3NpemVgIHRvIGNvbmZpcm0gdGhpcyBhc3N1bXB0aW9uLiBJZiBgZXh0NF9nZXRfaW5saW5lX3NpemVgIHJldHVybnMgdGhlIGNvcnJlY3Qgc2l6ZSwgdGhlbiB0aGVyZSBoYXMgdG8gYmUgYW4gaXNzdWUgaW4gdGhlIGVycm9yIGNoZWNraW5nIG9mIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYCBvciB0aGUgbG9naWMgaW5zaWRlIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIHRoYXQgaXMgY2F1c2luZyB0aGUgc2hvcnQgcmVhZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTU2MTQsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNDksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxODo0OC4xMTk0NzU5NzNaIiwiU2VxIjozNCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NzY2NzA0NTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZXh0NF9nZXRfaW5saW5lX3NpemVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXh0NC9pbmxpbmUuYz0yNT1zdGF0aWMgaW50IGV4dDRfZGFfY29udmVydF9pbmxpbmVfZGF0YV90b19leHRlbnQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTI4LVxcbmZzL2V4dDQvaW5saW5lLmM6Mjk6c3RhdGljIGludCBleHQ0X2dldF9pbmxpbmVfc2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbmZzL2V4dDQvaW5saW5lLmMtMzAte1xcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz01MDQ9c3RhdGljIGludCBleHQ0X3JlYWRfaW5saW5lX2ZvbGlvKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmb2xpbyAqZm9saW8pXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTUyNC1cXG5mcy9leHQ0L2lubGluZS5jOjUyNTpcXHRsZW4gPSBtaW5fdChzaXplX3QsIGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKSwgaV9zaXplX3JlYWQoaW5vZGUpKTtcXG5mcy9leHQ0L2lubGluZS5jLTUyNi1cXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9NTczPXN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtNjIzLVxcdGZyb20gPSAwO1xcbmZzL2V4dDQvaW5saW5lLmM6NjI0OlxcdHRvID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xcbmZzL2V4dDQvaW5saW5lLmMtNjI1LVxcdGlmICghZm9saW9fdGVzdF91cHRvZGF0ZShmb2xpbykpIHtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9ODg2PXN0YXRpYyBpbnQgZXh0NF9kYV9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtOTAzLVxcbmZzL2V4dDQvaW5saW5lLmM6OTA0OlxcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xcbmZzL2V4dDQvaW5saW5lLmMtOTA1LVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz0xMTg1PXN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xMTk3LVxcbmZzL2V4dDQvaW5saW5lLmM6MTE5ODpcXHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcXG5mcy9leHQ0L2lubGluZS5jLTExOTktXFx0YnVmID0ga21hbGxvYyhpbmxpbmVfc2l6ZSwgR0ZQX05PRlMpO1xcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz0xMzU3PWludCBleHQ0X2lubGluZWRpcl90b190cmVlKHN0cnVjdCBmaWxlICpkaXJfZmlsZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTM4NC1cXG5mcy9leHQ0L2lubGluZS5jOjEzODU6XFx0aW5saW5lX3NpemUgPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShpbm9kZSk7XFxuZnMvZXh0NC9pbmxpbmUuYy0xMzg2LVxcdGRpcl9idWYgPSBrbWFsbG9jKGlubGluZV9zaXplLCBHRlBfTk9GUyk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTE0Nzg9aW50IGV4dDRfcmVhZF9pbmxpbmVfZGlyKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xNTAzLVxcbmZzL2V4dDQvaW5saW5lLmM6MTUwNDpcXHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcXG5mcy9leHQ0L2lubGluZS5jLTE1MDUtXFx0ZGlyX2J1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTYwOT12b2lkICpleHQ0X3JlYWRfaW5saW5lX2xpbmsoc3RydWN0IGlub2RlICppbm9kZSlcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTYxOS1cXHRyZXQgPSAtRU5PTUVNO1xcbmZzL2V4dDQvaW5saW5lLmM6MTYyMDpcXHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcXG5mcy9leHQ0L2lubGluZS5jLTE2MjEtXFx0bGluayA9IGttYWxsb2MoaW5saW5lX3NpemUgKyAxLCBHRlBfTk9GUyk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTE2OTE9c3RydWN0IGJ1ZmZlcl9oZWFkICpleHQ0X2ZpbmRfaW5saW5lX2VudHJ5KHN0cnVjdCBpbm9kZSAqZGlyLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xNzMxLVxcbmZzL2V4dDQvaW5saW5lLmM6MTczMjpcXHRpZiAoZXh0NF9nZXRfaW5saW5lX3NpemUoZGlyKSA9PSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKVxcbmZzL2V4dDQvaW5saW5lLmMtMTczMy1cXHRcXHRnb3RvIG91dDtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTczNS1cXHRpbmxpbmVfc3RhcnQgPSBleHQ0X2dldF9pbmxpbmVfeGF0dHJfcG9zKGRpciwgXFx1MDAyNmlzLmlsb2MpO1xcbmZzL2V4dDQvaW5saW5lLmM6MTczNjpcXHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGRpcikgLSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFO1xcbmZzL2V4dDQvaW5saW5lLmMtMTczNy1cXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTc1ND1pbnQgZXh0NF9kZWxldGVfaW5saW5lX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTE3ODEtXFx0XFx0aW5saW5lX3N0YXJ0ID0gZXh0NF9nZXRfaW5saW5lX3hhdHRyX3BvcyhkaXIsIFxcdTAwMjZpbG9jKTtcXG5mcy9leHQ0L2lubGluZS5jOjE3ODI6XFx0XFx0aW5saW5lX3NpemUgPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShkaXIpIC1cXG5mcy9leHQ0L2lubGluZS5jLTE3ODMtXFx0XFx0XFx0XFx0RVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRTtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTgxMj1leHQ0X2dldF9pbmxpbmVfZW50cnkoc3RydWN0IGlub2RlICppbm9kZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTgxOS1cXG5mcy9leHQ0L2lubGluZS5jOjE4MjA6XFx0QlVHX09OKG9mZnNldCBcXHUwMDNlIGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKSk7XFxuZnMvZXh0NC9pbmxpbmUuYy0xODIxLVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xODI3LVxcdFxcdG9mZnNldCAtPSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFO1xcbmZzL2V4dDQvaW5saW5lLmM6MTgyODpcXHRcXHQqaW5saW5lX3NpemUgPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShpbm9kZSkgLVxcbmZzL2V4dDQvaW5saW5lLmMtMTgyOS1cXHRcXHRcXHRcXHRFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFO1xcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz0xODM3PWJvb2wgZW1wdHlfaW5saW5lX2RpcihzdHJ1Y3QgaW5vZGUgKmRpciwgaW50ICpoYXNfaW5saW5lX2RhdGEpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTE4NjktXFxuZnMvZXh0NC9pbmxpbmUuYzoxODcwOlxcdGlubGluZV9sZW4gPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShkaXIpO1xcbmZzL2V4dDQvaW5saW5lLmMtMTg3MS1cXHRvZmZzZXQgPSBFWFQ0X0lOTElORV9ET1RET1RfU0laRTtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTkxMT1pbnQgZXh0NF9pbmxpbmVfZGF0YV9pb21hcChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaW9tYXAgKmlvbWFwKVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xOTMyLVxcdGlvbWFwLVxcdTAwM2VvZmZzZXQgPSAwO1xcbmZzL2V4dDQvaW5saW5lLmM6MTkzMzpcXHRpb21hcC1cXHUwMDNlbGVuZ3RoID0gbWluX3QobG9mZl90LCBleHQ0X2dldF9pbmxpbmVfc2l6ZShpbm9kZSksXFxuZnMvZXh0NC9pbmxpbmUuYy0xOTM0LVxcdFxcdFxcdCAgICAgIGlfc2l6ZV9yZWFkKGlub2RlKSk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTE5NDM9aW50IGV4dDRfaW5saW5lX2RhdGFfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSwgaW50ICpoYXNfaW5saW5lKVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xOTc4LVxcdGlfc2l6ZSA9IGlub2RlLVxcdTAwM2VpX3NpemU7XFxuZnMvZXh0NC9pbmxpbmUuYzoxOTc5OlxcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xcbmZzL2V4dDQvaW5saW5lLmMtMTk4MC1cXHRFWFQ0X0koaW5vZGUpLVxcdTAwM2VpX2Rpc2tzaXplID0gaV9zaXplO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxODo0OS42OTYxNTQzNzFaIiwiU2VxIjozNSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc2MDQ4Njk1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSByZWFkaW5nIHRoZSBwcm92aWRlZCB0ZXh0OlxuXG4qKkRlbHZpbmcgaW50byBgZXh0NF9nZXRfaW5saW5lX3NpemVgKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGV4dDRfZ2V0X2lubGluZV9zaXplYCBmdW5jdGlvbi4gUmlnaHQgb2ZmIHRoZSBiYXQsIEkga25vdyB0aGlzIGlzIHJlbGF0ZWQgdG8gaG93IHRoZSBleHQ0IGZpbGVzeXN0ZW0gaGFuZGxlcyBpbmxpbmVkIGRhdGEsIHdoaWNoIGlzIGEga2V5IG9wdGltaXphdGlvbiBmb3Igc21hbGxlciBmaWxlcy4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaXMgbGlrZWx5IHRvIHJldm9sdmUgYXJvdW5kIHVuZGVyc3RhbmRpbmcgaG93IGl0IGNhbGN1bGF0ZXMgdGhlIG1heGltdW0gc2l6ZSBvZiBkYXRhIHRoYXQgY2FuIGJlIGVmZmljaWVudGx5IHN0b3JlZCBkaXJlY3RseSB3aXRoaW4gdGhlIGlub2RlIGl0c2VsZiwgcmF0aGVyIHRoYW4gbmVlZGluZyBhbiBleHRlcm5hbCBkYXRhIGJsb2NrLiBJJ20gaW1tZWRpYXRlbHkgZ29pbmcgdG8gYmUgbG9va2luZyBmb3IgZmFjdG9ycyB0aGF0IGluZmx1ZW5jZSB0aGlzIHNpemU6IGlzIGl0IGJhc2VkIG9uIHRoZSBmaWxlc3lzdGVtJ3MgYmxvY2sgc2l6ZSwgdGhlIHNpemUgb2YgdGhlIGlub2RlIHN0cnVjdHVyZSBpdHNlbGYsIG9yIHBlcmhhcHMgc29tZSBkZWZpbmVkIGNvbnN0YW50cz8gSeKAmW0gZXhwZWN0aW5nIHRvIHNlZSBjaGVja3MgZm9yIHRoaW5ncyBsaWtlIHRoZSBhdmFpbGFibGUgc3BhY2Ugd2l0aGluIHRoZSBpbm9kZSBmb3IgdGhlIGRhdGEsIGFueSBvdmVyaGVhZCBhc3NvY2lhdGVkIHdpdGggaW5saW5lIG1ldGFkYXRhLCBhbmQgd2hldGhlciB0aGVyZSBhcmUgYW55IGFsaWdubWVudCBjb25zdHJhaW50cy4gSSBhbnRpY2lwYXRlIHRoYXQgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGEgc2l6ZSwgcHJlc3VtYWJseSBpbiBieXRlcywgaW5kaWNhdGluZyB0aGUgbWF4aW11bSBhbW91bnQgb2YgaW5saW5lIGRhdGEuIEknbSBhbHNvIGtlZW5seSBpbnRlcmVzdGVkIGluIGFueSBlZGdlIGNhc2VzIG9yIHBvdGVudGlhbCBvcHRpbWl6YXRpb25zIHRoZSBmdW5jdGlvbiBpbmNvcnBvcmF0ZXMsIGFzIHRoZXNlIGFyZSBvZnRlbiB0aGUgcG9pbnRzIHdoZXJlIHN1YnRsZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgY2FuIGJlIG1hZGUuIE15IG1lbnRhbCBtb2RlbCBpcyBhbHJlYWR5IHN0YXJ0aW5nIHRvIGZvcm11bGF0ZTogdGhlIGFpbSBoZXJlIGlzIHRvIG1pbmltaXplIGRpc2sgSS9PIGZvciBzbWFsbCBmaWxlcywgYW5kIHRoaXMgZnVuY3Rpb24gaXMgdGhlIGdhdGVrZWVwZXIgZm9yIGRldGVybWluaW5nIGlmIGEgZmlsZSBxdWFsaWZpZXMgZm9yIHRoaXMgb3B0aW1pemF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODM2NSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjE4OjU0LjQ1NjY0NDM1M1oiLCJTZXEiOjM2LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjYxOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZnMvZXh0NC9pbmxpbmUuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyOSxcbiAgXCJMaW5lQ291bnRcIjogMTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAyOTpcXHRzdGF0aWMgaW50IGV4dDRfZ2V0X2lubGluZV9zaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUpXFxuICAzMDpcXHR7XFxuICAzMTpcXHRcXHRpZiAoRVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfb2ZmKVxcbiAgMzI6XFx0XFx0XFx0cmV0dXJuIEVYVDRfSShpbm9kZSktXFx1MDAzZWlfaW5saW5lX3NpemU7XFxuICAzMzpcXHRcXG4gIDM0OlxcdFxcdHJldHVybiAwO1xcbiAgMzU6XFx0fVxcbiAgMzY6XFx0XFxuICAzNzpcXHRzdGF0aWMgaW50IGdldF9tYXhfaW5saW5lX3hhdHRyX3ZhbHVlX3NpemUoc3RydWN0IGlub2RlICppbm9kZSxcXG4gIDM4OlxcdFxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCBleHQ0X2lsb2MgKmlsb2MpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjE4OjU0LjQ1NjgxMjA5M1oiLCJTZXEiOjM3LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDUzMzM2MTU1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgUG90ZW50aWFsIEluZm9ybWF0aW9uIExlYWsgaW4gZXh0NCBJbmxpbmUgRGF0YSBIYW5kbGluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gU28sIGBleHQ0X2dldF9pbmxpbmVfc2l6ZWAganVzdCByZXR1cm5zIGBpX2lubGluZV9zaXplYC4gQW5kIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIGlzIGNhbGxlZC4gSXQgc3RhcnRzIGJ5IG1ha2luZyBzdXJlIHRoYXQgdGhlIHJlcXVlc3RlZCBsZW5ndGgsIGBsZW5gLCBkb2Vzbid0IGV4Y2VlZCBgaV9pbmxpbmVfc2l6ZWAuIFNvIGZhciwgc28gZ29vZCDigJMgYGxlbmAgaXMgZXNzZW50aWFsbHkgZXF1YWwgdG8gYGlfaW5saW5lX3NpemVgLiBUaGVuLCB0aGUgY29kZSBncmFicyB0aGUgbWluaW11bSBvZiBgbGVuYCBhbmQgYEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkVgLCBsZXQncyBjYWxsIGl0IGBjcF9sZW5gIGFuZCBjb3BpZXMgdGhhdCBtdWNoIGZyb20gYHJhd19pbm9kZS1cdTAwM2VpX2Jsb2NrYC5cblxuVGhlIGNvZGUgaGFzIGEgcG90ZW50aWFsIGlzc3VlIGhlcmU6IGl0IGFkanVzdHMgdGhlIGFtb3VudCBvZiBieXRlcyB0aGF0IGFyZSBiZWluZyBjb3BpZWQsIGFuZCBhZGp1c3RzIGBsZW5gLCB0aGVuIGNoZWNrcyBpZiBgbGVuYCBpcyBncmVhdGVyIHRoYW4gYGVudHJ5LVx1MDAzZWVfdmFsdWVfc2l6ZWAuIElmIHNvLCBpdCB3aWxsIGNvcHkgb25seSBgZW50cnktXHUwMDNlZV92YWx1ZV9zaXplYCBieXRlcy4gVGhlbiwgaXQgcmV0dXJucyB0aGlzIHBvdGVudGlhbGx5IGxlc3MgdGhhbiBleHBlY3RlZCBjb3B5IGxlbmd0aC5cblxuTm93LCBpZiBgY3BfbGVuYCAqaXNuJ3QqIGVxdWFsIHRvIHRoZSBvcmlnaW5hbCBgaW5saW5lX3NpemVgICh3aGljaCBpcyBgaV9pbmxpbmVfc2l6ZWApLCB0aGF0J3Mgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZy4gQmVjYXVzZSwgbGF0ZXIgb24sIGBtZW1jcHlgIGlzIHVzZWQgdG8gY29weSBgaW5saW5lX3NpemVgIGJ5dGVzIGZyb20gYGJ1ZmAgdG8gYGRhdGFfYmgtXHUwMDNlYl9kYXRhYC4gSWYgdGhlIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIGZ1bmN0aW9uIHJldHVybmVkIGEgdmFsdWUgc21hbGxlciB0aGFuIGBpbmxpbmVfc2l6ZWAsIGBidWZgIGlzbid0IGZ1bGx5IGluaXRpYWxpemVkLiBUaGUgaW1wbGljYXRpb24gaXMgdGhhdCBpZiBgaV9pbmxpbmVfc2l6ZWAgaXMgZ3JlYXRlciB0aGFuIHRoZSBkYXRhJ3MgdHJ1ZSBzaXplLCB3ZSBjb3VsZCBlbmQgdXAgY29weWluZyB1bmluaXRpYWxpemVkIG1lbW9yeSBmcm9tIGBidWZgIHRvIGBkYXRhX2JoLVx1MDAzZWJfZGF0YWAuXG5cblRoZSBwcm9ibGVtIGlzLCB0aGUgZW50aXJlIGBkYXRhX2JoYCBpcyB0aGVuIG1hcmtlZCBhcyBkaXJ0eSBhbmQgd3JpdHRlbiB0byBkaXNrLiBBbmQgdGhhdCdzIHRoZSByZWQgZmxhZyEgVGhpcyBjb3VsZCBwb3RlbnRpYWxseSBsZWFkIHRvIGFuIGluZm9ybWF0aW9uIGxlYWsg4oCTIHVuaW5pdGlhbGl6ZWQgaGVhcCBtZW1vcnkgZW5kaW5nIHVwIG9uIHRoZSBibG9jayBkZXZpY2UuIFdhaXQsIGlzbid0IHRoYXQgcHJlY2lzZWx5IHRoZSBzb3J0IG9mIHRoaW5nIEtNU0FOIGlzIHN1cHBvc2VkIHRvIGNhdGNoPyBLTVNBTiBpcyB1c3VhbGx5IGdvb2QgYXQgZGV0ZWN0aW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzZSwgZXNwZWNpYWxseSBpZiBpdCdzIGJlaW5nIHVzZWQgaW4gY29uZGl0aW9uYWwgYnJhbmNoZXMgb3IgYmVpbmcgY29waWVkIHRvIHVzZXJzcGFjZS4gQnV0IGl0IGFsc28gaG9va3MgYmxvY2sgSS9PISBTbyB3cml0aW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHRvIGRpc2sgKmlzKiBhbiBpbmZvLWxlYWsgYW5kIEtNU0FOIHNob3VsZCBjYXRjaCBpdC5cblxuVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIG5vdyBiZWNvbWVzOiBpcyB0aGVyZSBhIHNjZW5hcmlvIHdoZXJlIGBpX2lubGluZV9zaXplYCBjYW4gYmUgbGFyZ2VyIHRoYW4gdGhlIGFjdHVhbCBpbmxpbmUgZGF0YT8gSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBpX2lubGluZV9zaXplYCBpcyBiZWluZyBzZXQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY2FuIGFjdHVhbGx5IGhhcHBlbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg4NTksIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NDIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxOTowNC45OTAxNzYyMjNaIiwiU2VxIjozOCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTMyNDYyMzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaV9pbmxpbmVfc2l6ZSA9XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4dDQvaW5saW5lLmM9MTQ1PWludCBleHQ0X2ZpbmRfaW5saW5lX2RhdGFfbm9sb2NrKHN0cnVjdCBpbm9kZSAqaW5vZGUpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTE3NS1cXHRcXHRcXHRcXHRcXHQodm9pZCAqKWV4dDRfcmF3X2lub2RlKFxcdTAwMjZpcy5pbG9jKSk7XFxuZnMvZXh0NC9pbmxpbmUuYzoxNzY6XFx0XFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfc2l6ZSA9IEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUgK1xcbmZzL2V4dDQvaW5saW5lLmMtMTc3LVxcdFxcdFxcdFxcdGxlMzJfdG9fY3B1KGlzLnMuaGVyZS1cXHUwMDNlZV92YWx1ZV9zaXplKTtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MjY4PXN0YXRpYyBpbnQgZXh0NF9jcmVhdGVfaW5saW5lX2RhdGEoaGFuZGxlX3QgKmhhbmRsZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMzI1LVxcdFxcdFxcdFxcdCAgICAgICh2b2lkICopZXh0NF9yYXdfaW5vZGUoXFx1MDAyNmlzLmlsb2MpKTtcXG5mcy9leHQ0L2lubGluZS5jOjMyNjpcXHRFWFQ0X0koaW5vZGUpLVxcdTAwM2VpX2lubGluZV9zaXplID0gbGVuICsgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRTtcXG5mcy9leHQ0L2lubGluZS5jLTMyNy1cXHRleHQ0X2NsZWFyX2lub2RlX2ZsYWcoaW5vZGUsIEVYVDRfSU5PREVfRVhURU5UUyk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTMzNz1zdGF0aWMgaW50IGV4dDRfdXBkYXRlX2lubGluZV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTM5NS1cXHRcXHRcXHRcXHQgICAgICAodm9pZCAqKWV4dDRfcmF3X2lub2RlKFxcdTAwMjZpcy5pbG9jKSk7XFxuZnMvZXh0NC9pbmxpbmUuYzozOTY6XFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfc2l6ZSA9IEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUgK1xcbmZzL2V4dDQvaW5saW5lLmMtMzk3LVxcdFxcdFxcdFxcdGxlMzJfdG9fY3B1KGlzLnMuaGVyZS1cXHUwMDNlZV92YWx1ZV9zaXplKTtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9NDM3PXN0YXRpYyBpbnQgZXh0NF9kZXN0cm95X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy00OTMtXFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfb2ZmID0gMDtcXG5mcy9leHQ0L2lubGluZS5jOjQ5NDpcXHRFWFQ0X0koaW5vZGUpLVxcdTAwM2VpX2lubGluZV9zaXplID0gMDtcXG5mcy9leHQ0L2lubGluZS5jLTQ5NS1cXHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTEwNzQ9c3RhdGljIGludCBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2ZzYmxrX3QgYmxvY2ssXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTExNjktXFx0XFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfb2ZmID0gMDtcXG5mcy9leHQ0L2lubGluZS5jOjExNzA6XFx0XFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfc2l6ZSA9IDA7XFxuZnMvZXh0NC9pbmxpbmUuYy0xMTcxLVxcdFxcdGV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTk0Mz1pbnQgZXh0NF9pbmxpbmVfZGF0YV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTIwMzAtXFxuZnMvZXh0NC9pbmxpbmUuYzoyMDMxOlxcdFxcdEVYVDRfSShpbm9kZSktXFx1MDAzZWlfaW5saW5lX3NpemUgPSBpX3NpemUgXFx1MDAzY1xcbmZzL2V4dDQvaW5saW5lLmMtMjAzMi1cXHRcXHRcXHRcXHRcXHRFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFID9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTc6MTk6MDYuNTQzNDI4ODQyWiIsIlNlcSI6MzksIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4NDcyMDQ5MzYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKktNU0FOIEFzc2Vzc21lbnQ6IElubGluZSBEYXRhIENvbnZlcnNpb24gRml4KipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBnb2FsIGhlcmUgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgaXNzdWVzIHRoYXQgS01TQU4gKEtlcm5lbCBNZW1vcnkgU2FuaXRpemVyKSBzaG91bGQgYmUgY29uY2VybmVkIHdpdGguIFRoZSBwYXRjaCBpcyBhYm91dCBzYWZlbHkgaGFuZGxpbmcgdGhlIGNvbnZlcnNpb24gb2YgZXh0NCBpbmxpbmUgZGF0YSB0byBhIHJlZ3VsYXIgYmxvY2ssIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIGEgZGF0YSBsb3NzIHNjZW5hcmlvLlxuXG5Jbml0aWFsbHksIEkgc2VlIHRoYXQgYEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfc2l6ZWAgaXMgY2FsY3VsYXRlZC4gSXQncyBidWlsdCBmcm9tIGBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFYCBhbmQgdGhlIGBlX3ZhbHVlX3NpemVgIG9mIGFuIHhhdHRyIGVudHJ5LiBJIG1hZGUgc3VyZSB0byBub3RlIHRoYXQgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgaXMgYWx3YXlzIGRlc2lnbmVkIHRvIHJlYWQgZXhhY3RseSB0aGlzIHNpemUuIENvcnJ1cHRlZCB4YXR0ciBlbnRyaWVzIGFyZSBoYW5kbGVkLCBhbmQgYSBgbWluX3RgIGlzIHVzZWQgdG8gZW5zdXJlIHRoZSByaWdodCBzaXplIGlzIHJlYWQuXG5cblRoZSBjb3JlIG9mIHRoZSBmaXggaXMgdG8gYXZvaWQgZGVzdHJveWluZyB0aGUgaW5saW5lIGRhdGEgYW5kIHRoZW4sIGlmIGFsbG9jYXRpb24gZmFpbHMsIGhhdmluZyB0byAqcmUqLXJlc3RvcmUgaXQsIHdoaWNoIGNvdWxkIGZhaWwuICBUaGUgcGF0Y2ggbm93OlxuXG4xLiAgQWxsb2NhdGVzIGEgKm5ldyogYmxvY2suXG4yLiAgSW5pdGlhbGl6ZXMgdGhhdCBuZXcgYmxvY2sgKHplcm9lcyBpdCBvdXQpLlxuMy4gIENvcGllcyB0aGUgZXhpc3RpbmcgaW5saW5lIGRhdGEgaW50byB0aGUgKm5ldyogYmxvY2suXG40LiAgQXRvbWljYWxseSBzd2l0Y2hlcyB0aGUgaW5vZGUgdG8gdXNlIHRoZSAqbmV3KiBibG9jay5cblxuRXNzZW50aWFsbHksIHRoZXJlIGlzIG5vIG1vcmUg4oCcZGVzdHJveSBhbmQgcG90ZW50aWFsbHkgZmFpbCB0byByZXN0b3Jl4oCdLiBUaGlzIHJlZHVjZXMgdGhlIHdpbmRvdyBvZiBwb3NzaWJsZSBkYXRhIGxvc3MuIFRoZSBvbGQgY29kZSBoYWQgdG8gY3JlYXRlIHRoZSBpbmxpbmUgZGF0YSwgYW5kIHRoZW4gaXQgd291bGQgcmVhZCBpbmxpbmUgZGF0YSB3aGljaCBoYWQgaXNzdWVzIHdoZXJlIGl0IGNvdWxkIGJlIGNvcnJ1cHRlZC5cblxuTXkgcHJpbWFyeSBjb25jZXJuIGlzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBMZXQncyBtYWtlIHN1cmUgdGhhdCBub3RoaW5nIGlzIGJlaW5nIHJlYWQgZnJvbSB1bmluaXRpYWxpemVkIG1lbW9yeSBsb2NhdGlvbnMgb3IgZXhwb3NlZCBhcyBzdWNoLlxuXG4xLiAgKipgaW5vZGVfYnVmYCoqOiAgVGhpcyBpcyBhbGxvY2F0ZWQgdXNpbmcgYGttYWxsb2MoaW5vZGVfc2l6ZSwgR0ZQX05PRlMpYC4gIGBpbm9kZV9zaXplYCBpcyBjYWxjdWxhdGVkIGZyb20gYEVYVDRfSU5PREVfU0laRShpbm9kZS1cdTAwM2VpX3NiKWAuICBUaGUgcGF0Y2ggYG1lbWNweWAgKmNvcGllcyogdGhlIGNvbnRlbnRzIG9mIHRoZSByYXcgaW5vZGUgZGF0YSBpbnRvIGBpbm9kZV9idWZgLiAgU28gYGlub2RlX2J1ZmAgYmVjb21lcyBmdWxseSBpbml0aWFsaXplZC4gIFRoZSBjaGVjayBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvcHkgKmludG8qIGBpbm9kZV9idWZgIGlzIHNhZmUuXG4yLiAgKipgZGF0YV9iaC1cdTAwM2ViX2RhdGFgOioqICBUaGlzIGJ1ZmZlciBoZWFkIGlzIGFsbG9jYXRlZCwgYW5kIHRoZW4gaXRzIGRhdGEgaXMgZXhwbGljaXRseSB6ZXJvZWQgd2l0aCBgbWVtc2V0KGRhdGFfYmgtXHUwMDNlYl9kYXRhLCAwLCBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplKTtgLiAgVGhpcyBlbnN1cmVzIGV2ZXJ5dGhpbmcgd3JpdHRlbiBpbnRvIHRoaXMgZGF0YSBibG9jayBpcyBpbml0aWFsaXplZC5cbjMuICAqKmBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2A6KiogSSB0aGVuIGNoZWNrZWQgdGhlIGNvZGUgZm9yIHplcm9pbmcgYW5kIGluaXRpYWxpemluZyBpbiB0aGUgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gSW4gdGhlIG5ldyBjb2RlLCBgbWVtc2V0KCh2b2lkICopcmF3X2lub2RlLVx1MDAzZWlfYmxvY2ssIDAsIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpO2AgZXhwbGljaXRseSB6ZXJvZXMgdGhlIGlubGluZSBkYXRhIHNwYWNlLiBUaGVuLCBpZiBleHRlbnRzIGFyZSBlbmFibGVkLCBgZXh0NF9leHRfdHJlZV9pbml0YCBpbml0aWFsaXplcyB0aGUgZXh0ZW50IHRyZWUgcm9vdC4gTGF0ZXIgY29kZSBpbml0aWFsaXplcyBhbmQgaW5zZXJ0cyBleHRlbnRzLiBJZiBhbGwgb2YgdGhpcyBmYWlscywgdGhlIG9yaWdpbmFsIGRhdGEgaXMgcmVzdG9yZWQgZnJvbSB0aGUgZnVsbHkgaW5pdGlhbGl6ZWQgYGlub2RlX2J1ZmAuXG40LiAgKipLTVNBTiBSdWxlcyoqOiAgSSB3ZW50IHRocm91Z2ggdGhlIHN0YW5kYXJkIEtNU0FOIHJ1bGUgc2V0OlxuXG4gICAgKiAgIE5vIGtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSB3aXRoIHBvc3NpYmx5IHVuaW5pdGlhbGl6ZWQgZmllbGRzIChubyB1c2VyIHNwYWNlIGludGVyYWN0aW9uKS5cbiAgICAqICAgTm8gY29uZGl0aW9uYWwgbG9naWMvYnJhbmNoaW5nIHRoYXQgcmVsaWVzIG9uIHBvc3NpYmx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLlxuICAgICogICBObyBhbGxvY2F0aW9uIG9mIGNvbXBsZXggc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkcyBjb3VsZCBiZSByZWFkIGxhdGVyIChldmVyeXRoaW5nIGlzIGluaXRpYWxpemVkIHZpYSBgbWVtY3B5YCBvciBgbWVtc2V0YCkuXG4gICAgKiAgIE5vIGJvdW5kcyBjaGVja3Mgb3IgbGVuZ3RocyB0aGF0IHdvdWxkIGFsbG93IGFjY2Vzc2luZyB1bmluaXRpYWxpemVkIGJ5dGVzIChub3QgcHJlc2VudCkuXG5cbiAgICBUaGVyZWZvcmUsIEtNU0FOIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5IGhlcmUuXG5cbjUuICAqKkRhdGEgU3RydWN0dXJlcyBDaGVjayoqOiBJIG1hZGUgc3VyZSB0aGF0IHRoZXJlIHdlcmUgbm8gaXNzdWVzIHdpdGggYGV4dDRfbWJfbmV3X2Jsb2Nrc2AgcmV0dXJuaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IG9yIGFueSBpc3N1ZXMgd2l0aCBgZXh0NF94YXR0cl9pYm9keV9maW5kYCBvciBgZXh0NF94YXR0cl9pbmZvYC4gVGhpcyB3YXMgZG9uZSBieSBjaGVja2luZyB3aGVyZSBgYXJgLCBgaXNgLCBgaWAsIGFuZCBgZGF0YV9iaGAgd2VyZSBmdWxseSBpbml0aWFsaXplZC5cblxuVGhlIHBhdGNoIGlzIGEgKmxvZ2ljYWwqIGZpeDsgaXQgYWRkcmVzc2VzIGEgcmFjZSBjb25kaXRpb24uIEl0ICpkb2VzKiBub3QgaW50cm9kdWNlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzc3Vlcy4gIFRoZSBuZXcgYmxvY2sgYWxsb2NhdGlvbiBpcyBpbml0aWFsaXplZCwgYW5kIGV4aXN0aW5nIGRhdGEgaXMgY29waWVkLiAgQW55IG1lbW9yeSBjb3JydXB0aW9uIHdvdWxkIGxpa2VseSBiZSBjYXVnaHQgYnkgS0FTQU4gKEtlcm5lbCBBZGRyZXNzIFNhbml0aXplcikuIE5vIEtNU0FOLXNwZWNpZmljIGNoZWNrcyBhcmUgbmVjZXNzYXJ5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTAxOCwiT3V0cHV0VG9rZW5zIjoyMDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODAxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjE5OjM1LjAxNTQ4MTcwM1oiLCJTZXEiOjQwLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVmYWN0b3JzIHRoZSBjb252ZXJzaW9uIG9mIGV4dDQgaW5saW5lIGRhdGEgdG8gYSBkZWRpY2F0ZWQgYmxvY2sgdG8gcHJldmVudCBkYXRhIGxvc3Mgb24gYWxsb2NhdGlvbiBmYWlsdXJlLiBJdCBhbGxvY2F0ZXMgYSBuZXcgYmxvY2ssIHplcm9lcyBpdCwgY29waWVzIHRoZSBpbmxpbmUgZGF0YSwgYW5kIHRoZW4gdXBkYXRlcyB0aGUgaW5vZGUuIEFsbCBuZXdseSBhbGxvY2F0ZWQgbWVtb3J5IChgaW5vZGVfYnVmYCwgYGJ1ZmAsIGBkYXRhX2JoLVxcdTAwM2ViX2RhdGFgKSBpcyBmdWxseSBpbml0aWFsaXplZCB2aWEgYG1lbWNweWAgZnJvbSBleGlzdGluZyBpbml0aWFsaXplZCBkYXRhIG9yIGBtZW1zZXRgIHRvIHplcm8uIFN0YWNrIHZhcmlhYmxlcyAoYGFyYCwgYGlzYCwgYGlgLCBgbmV3ZXhgKSBhcmUgZnVsbHkgemVyby1pbml0aWFsaXplZCBlaXRoZXIgdmlhIGBtZW1zZXRgIG9yIGJyYWNlLWVuY2xvc2VkIGluaXRpYWxpemVycy4gVGhlcmUgaXMgbm8gZXhwb3N1cmUgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdG8gdXNlciBzcGFjZSBvciBkaXNrLCBhbmQgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgaXMgdXNlZCBpbiBjb250cm9sIGZsb3cuIEFueSBwb3RlbnRpYWwgbWVtb3J5IGVycm9ycyAobGlrZSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIG9yIHVzZS1hZnRlci1mcmVlKSB3b3VsZCBiZSBjYXVnaHQgYnkgS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVmYWN0b3JzIHRoZSBjb252ZXJzaW9uIG9mIGV4dDQgaW5saW5lIGRhdGEgdG8gYSBkZWRpY2F0ZWQgYmxvY2sgdG8gcHJldmVudCBkYXRhIGxvc3Mgb24gYWxsb2NhdGlvbiBmYWlsdXJlLiBJdCBhbGxvY2F0ZXMgYSBuZXcgYmxvY2ssIHplcm9lcyBpdCwgY29waWVzIHRoZSBpbmxpbmUgZGF0YSwgYW5kIHRoZW4gdXBkYXRlcyB0aGUgaW5vZGUuIEFsbCBuZXdseSBhbGxvY2F0ZWQgbWVtb3J5IChgaW5vZGVfYnVmYCwgYGJ1ZmAsIGBkYXRhX2JoLVxcdTAwM2ViX2RhdGFgKSBpcyBmdWxseSBpbml0aWFsaXplZCB2aWEgYG1lbWNweWAgZnJvbSBleGlzdGluZyBpbml0aWFsaXplZCBkYXRhIG9yIGBtZW1zZXRgIHRvIHplcm8uIFN0YWNrIHZhcmlhYmxlcyAoYGFyYCwgYGlzYCwgYGlgLCBgbmV3ZXhgKSBhcmUgZnVsbHkgemVyby1pbml0aWFsaXplZCBlaXRoZXIgdmlhIGBtZW1zZXRgIG9yIGJyYWNlLWVuY2xvc2VkIGluaXRpYWxpemVycy4gVGhlcmUgaXMgbm8gZXhwb3N1cmUgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdG8gdXNlciBzcGFjZSBvciBkaXNrLCBhbmQgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgaXMgdXNlZCBpbiBjb250cm9sIGZsb3cuIEFueSBwb3RlbnRpYWwgbWVtb3J5IGVycm9ycyAobGlrZSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIG9yIHVzZS1hZnRlci1mcmVlKSB3b3VsZCBiZSBjYXVnaHQgYnkgS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcqgw9[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-22 16:35:08 +0000 UTC FinishedAt: 2026-08-22 17:19:36 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "934753d26f1ed7fadeedf1b9e7df6fe75de303e8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXT4_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "934753d26f1ed7fadeedf1b9e7df6fe75de303e8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXT4_FS" ], "series_id": "0b80c867-ae88-4ce4-94e8-8aa06be5eea2" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "ext4_convert_inline_data", "ext4_try_add_inline_entry" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE2OjUxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MjhtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFWFQ0X0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhJiMzNDssCiAgICAmIzM0O2V4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnkmIzM0OwogIF0sCiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZWZhY3RvcnMgdGhlIGNvbnZlcnNpb24gb2YgZXh0NCBpbmxpbmUgZGF0YSB0byBhIGRlZGljYXRlZCBibG9jayB0byBwcmV2ZW50IGRhdGEgbG9zcyBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuIEl0IGFsbG9jYXRlcyBhIG5ldyBibG9jaywgemVyb2VzIGl0LCBjb3BpZXMgdGhlIGlubGluZSBkYXRhLCBhbmQgdGhlbiB1cGRhdGVzIHRoZSBpbm9kZS4gQWxsIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkgKGBpbm9kZV9idWZgLCBgYnVmYCwgYGRhdGFfYmgtXHUwMDNlYl9kYXRhYCkgaXMgZnVsbHkgaW5pdGlhbGl6ZWQgdmlhIGBtZW1jcHlgIGZyb20gZXhpc3RpbmcgaW5pdGlhbGl6ZWQgZGF0YSBvciBgbWVtc2V0YCB0byB6ZXJvLiBTdGFjayB2YXJpYWJsZXMgKGBhcmAsIGBpc2AsIGBpYCwgYG5ld2V4YCkgYXJlIGZ1bGx5IHplcm8taW5pdGlhbGl6ZWQgZWl0aGVyIHZpYSBgbWVtc2V0YCBvciBicmFjZS1lbmNsb3NlZCBpbml0aWFsaXplcnMuIFRoZXJlIGlzIG5vIGV4cG9zdXJlIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHRvIHVzZXIgc3BhY2Ugb3IgZGlzaywgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzIHVzZWQgaW4gY29udHJvbCBmbG93LiBBbnkgcG90ZW50aWFsIG1lbW9yeSBlcnJvcnMgKGxpa2Ugb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBvciB1c2UtYWZ0ZXItZnJlZSkgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QganVzdGlmaWVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gaG93IGV4dDQgY29udmVydHMgaW5saW5lIGRhdGEgdG8gYmxvY2tzLCByZXBsYWNpbmcgdGhlIHVzZSBvZiBgZXh0NF9tYXBfYmxvY2tzYCB3aXRoIGRpcmVjdCBibG9jayBhbGxvY2F0aW9uIHZpYSBgZXh0NF9tYl9uZXdfYmxvY2tzYCBhbmQgaW50cm9kdWNpbmcgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gVGhpcyBtb2RpZmllcyBjb3JlIHJlYWNoYWJsZSBsb2dpYyBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCB3aGljaCBpcyB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE2OjUxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMTI0YzdlYTZjZGQwMmFjNGUwYWE2MTA1ZWQwNTUyMTRkZjE4MTU5YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDIyIDE2OjUxOjA5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaW5saW5lLmMgYi9mcy9leHQ0L2lubGluZS5jXG5pbmRleCA4MDQ1ZTRmZjI3MGM3Li41MDcxMDZjNzJlODJmIDEwMDY0NFxuLS0tIGEvZnMvZXh0NC9pbmxpbmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZnMvZXh0NC9pbmxpbmUuY1xuQEAgLTE0LDYgJiM0MzsxNCw3IEBAXG4gI2luY2x1ZGUgXCYjMzQ7ZXh0NC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7eGF0dHIuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O3RydW5jYXRlLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7ZXh0NF9leHRlbnRzLmhcJiMzNDtcbiBcbiAjZGVmaW5lIEVYVDRfWEFUVFJfU1lTVEVNX0RBVEFcdFwmIzM0O2RhdGFcJiMzNDtcbiAjZGVmaW5lIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkVcdCgoc2l6ZW9mKF9fbGUzMikgKiBFWFQ0X05fQkxPQ0tTKSlcbkBAIC0xMDcwLDIxICYjNDM7MTA3MSwxMTUgQEAgc3RhdGljIGludCBleHQ0X3VwZGF0ZV9pbmxpbmVfZGlyKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqZGlyLFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLVx0XHRcdFx0ICAgICBzdHJ1Y3QgZXh0NF9pbG9jICppbG9jLFxuLVx0XHRcdFx0ICAgICB2b2lkICpidWYsIGludCBpbmxpbmVfc2l6ZSlcbiYjNDM7c3RhdGljIGludCBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2ZzYmxrX3QgYmxvY2ssXG4mIzQzO1x0XHRcdFx0XHR1bnNpZ25lZCBpbnQgbGVuLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKVxuIHtcbi1cdGludCByZXQ7XG4mIzQzO1x0c3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpO1xuJiM0MztcdHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmQgaXMgPSB7XG4mIzQzO1x0XHQucyA9IHsgLm5vdF9mb3VuZCA9IDAsIH0sXG4mIzQzO1x0fTtcbiYjNDM7XHRzdHJ1Y3QgZXh0NF94YXR0cl9pbmZvIGkgPSB7XG4mIzQzO1x0XHQubmFtZV9pbmRleCA9IEVYVDRfWEFUVFJfSU5ERVhfU1lTVEVNLFxuJiM0MztcdFx0Lm5hbWUgPSBFWFQ0X1hBVFRSX1NZU1RFTV9EQVRBLFxuJiM0MztcdFx0LnZhbHVlID0gTlVMTCxcbiYjNDM7XHRcdC52YWx1ZV9sZW4gPSAwLFxuJiM0MztcdH07XG4mIzQzO1x0aW50IGVycm9yO1xuJiM0MztcdGludCBpbm9kZV9zaXplO1xuJiM0MztcdHZvaWQgKmlub2RlX2J1ZiA9IE5VTEw7XG4mIzQzO1x0c3RydWN0IGV4dDRfaW5vZGUgKnJhd19pbm9kZTtcbiBcbi1cdHJldCA9IGV4dDRfY3JlYXRlX2lubGluZV9kYXRhKGhhbmRsZSwgaW5vZGUsIGlubGluZV9zaXplKTtcbi1cdGlmIChyZXQpIHtcbi1cdFx0ZXh0NF9tc2coaW5vZGUtXHUwMDNlaV9zYiwgS0VSTl9FTUVSRyxcbi1cdFx0XHRcJiMzNDtlcnJvciByZXN0b3JpbmcgaW5saW5lX2RhdGEgZm9yIGlub2RlIC0tIHBvdGVudGlhbCBkYXRhIGxvc3MhIChpbm9kZSAlbGx1LCBlcnJvciAlZClcJiMzNDssXG4tXHRcdFx0aW5vZGUtXHUwMDNlaV9pbm8sIHJldCk7XG4tXHRcdHJldHVybjtcbiYjNDM7XHRpbm9kZV9zaXplID0gRVhUNF9JTk9ERV9TSVpFKGlub2RlLVx1MDAzZWlfc2IpO1xuJiM0MztcdGlub2RlX2J1ZiA9IGttYWxsb2MoaW5vZGVfc2l6ZSwgR0ZQX05PRlMpO1xuJiM0MztcdGlmICghaW5vZGVfYnVmKSB7XG4mIzQzO1x0XHRlcnJvciA9IC1FTk9NRU07XG4mIzQzO1x0XHRkb3duX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuJiM0MztcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbiYjNDM7XHRcdGV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTtcbiYjNDM7XHRcdHVwX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuJiM0MztcdFx0cmV0dXJuIGVycm9yO1xuIFx0fVxuLVx0ZXh0NF93cml0ZV9pbmxpbmVfZGF0YShpbm9kZSwgaWxvYywgYnVmLCAwLCBpbmxpbmVfc2l6ZSk7XG4tXHRleHQ0X3NldF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpO1xuJiM0MztcdGRvd25fd3JpdGUoXHUwMDI2ZWktXHUwMDNlaV9kYXRhX3NlbSk7XG4mIzQzO1x0ZXJyb3IgPSBleHQ0X2dldF9pbm9kZV9sb2MoaW5vZGUsIFx1MDAyNmlzLmlsb2MpO1xuJiM0MztcdGlmIChlcnJvcikge1xuJiM0MztcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbiYjNDM7XHRcdGV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTtcbiYjNDM7XHRcdHVwX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuJiM0MztcdFx0a2ZyZWUoaW5vZGVfYnVmKTtcbiYjNDM7XHRcdHJldHVybiBlcnJvcjtcbiYjNDM7XHR9XG4mIzQzO1x0cmF3X2lub2RlID0gZXh0NF9yYXdfaW5vZGUoXHUwMDI2aXMuaWxvYyk7XG4mIzQzO1x0QlVGRkVSX1RSQUNFKGlzLmlsb2MuYmgsIFwmIzM0O2dldF93cml0ZV9hY2Nlc3NcJiMzNDspO1xuJiM0MztcdGVycm9yID0gZXh0NF9qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MoaGFuZGxlLCBpbm9kZS1cdTAwM2VpX3NiLCBpcy5pbG9jLmJoLCBFWFQ0X0pUUl9OT05FKTtcbiYjNDM7XHRpZiAoZXJyb3IpIHtcbiYjNDM7XHRcdGV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7XG4mIzQzO1x0XHRleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7XG4mIzQzO1x0XHRnb3RvIG91dDtcbiYjNDM7XHR9XG4mIzQzO1x0bWVtY3B5KGlub2RlX2J1ZiwgKHZvaWQgKilyYXdfaW5vZGUsIGlub2RlX3NpemUpO1xuJiM0MztcdG1lbXNldCgodm9pZCAqKXJhd19pbm9kZS1cdTAwM2VpX2Jsb2NrLCAwLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTtcbiYjNDM7XHRtZW1zZXQoZWktXHUwMDNlaV9kYXRhLCAwLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTtcbiYjNDM7XHRpZiAoZXh0NF9oYXNfZmVhdHVyZV9leHRlbnRzKGlub2RlLVx1MDAzZWlfc2IpIFx1MDAyNlx1MDAyNlxuJiM0MztcdFx0KFNfSVNESVIoaW5vZGUtXHUwMDNlaV9tb2RlKSB8fCBTX0lTUkVHKGlub2RlLVx1MDAzZWlfbW9kZSkgfHwgU19JU0xOSyhpbm9kZS1cdTAwM2VpX21vZGUpKSkge1xuJiM0MztcdFx0ZXh0NF9zZXRfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRTKTtcbiYjNDM7XHRcdGV4dDRfZXh0X3RyZWVfaW5pdChoYW5kbGUsIGlub2RlKTtcbiYjNDM7XHRcdHN0cnVjdCBleHQ0X2V4dF9wYXRoICpwYXRoID0gZXh0NF9maW5kX2V4dGVudChpbm9kZSwgMCwgTlVMTCwgMCk7XG4mIzQzO1xuJiM0MztcdFx0aWYgKElTX0VSUihwYXRoKSkge1xuJiM0MztcdFx0XHRlcnJvciA9IFBUUl9FUlIocGF0aCk7XG4mIzQzO1x0XHRcdGdvdG8gcmVjb3Zlcnk7XG4mIzQzO1x0XHR9XG4mIzQzO1x0XHRzdHJ1Y3QgZXh0NF9leHRlbnQgbmV3ZXg7XG4mIzQzO1xuJiM0MztcdFx0bmV3ZXguZWVfYmxvY2sgPSBjcHVfdG9fbGUzMigwKTtcbiYjNDM7XHRcdG5ld2V4LmVlX2xlbiA9IGNwdV90b19sZTE2KDEpO1xuJiM0MztcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNm5ld2V4LCBibG9jayk7XG4mIzQzO1x0XHRwYXRoID0gZXh0NF9leHRfaW5zZXJ0X2V4dGVudChoYW5kbGUsIGlub2RlLCBwYXRoLCBcdTAwMjZuZXdleCwgMCk7XG4mIzQzO1x0XHRpZiAoSVNfRVJSKHBhdGgpKSB7XG4mIzQzO1x0XHRcdGVycm9yID0gUFRSX0VSUihwYXRoKTtcbiYjNDM7XHRcdFx0aWYgKGVycm9yID09IC1FRFFVT1QgfHwgZXJyb3IgPT0gLUVOT1NQQykge1xuJiM0MztcdFx0XHRcdGdvdG8gcmVjb3Zlcnk7XG4mIzQzO1x0XHRcdH0gZWxzZSB7XG4mIzQzO1x0XHRcdFx0ZXh0NF9mb3JnZXQoaGFuZGxlLCAwLCBpbm9kZSwgYmgsIGJsb2NrKTtcbiYjNDM7XHRcdFx0XHRnb3RvIG5vZnJlZTtcbiYjNDM7XHRcdFx0fVxuJiM0MztcdFx0fSBlbHNlIHtcbiYjNDM7XHRcdFx0ZXh0NF9mcmVlX2V4dF9wYXRoKHBhdGgpO1xuJiM0MztcdFx0fVxuJiM0MztcdH0gZWxzZSB7XG4mIzQzO1x0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfZGF0YVswXSA9IGNwdV90b19sZTMyKGJsb2NrKTtcbiYjNDM7XHR9XG4mIzQzO1x0ZXJyb3IgPSBleHQ0X3hhdHRyX2lib2R5X2ZpbmQoaW5vZGUsIFx1MDAyNmksIFx1MDAyNmlzKTtcbiYjNDM7XHRpZiAoZXJyb3IpXG4mIzQzO1x0XHRnb3RvIHJlY292ZXJ5O1xuJiM0MztcdGlmICghaXMucy5ub3RfZm91bmQpXG4mIzQzO1x0XHRlcnJvciA9IGV4dDRfeGF0dHJfaWJvZHlfc2V0KGhhbmRsZSwgaW5vZGUsIFx1MDAyNmksIFx1MDAyNmlzKTtcbiYjNDM7cmVjb3Zlcnk6XG4mIzQzO1x0aWYgKGVycm9yKSB7XG4mIzQzO1x0XHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xuJiM0MztcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpO1xuJiM0Mztub2ZyZWU6XG4mIzQzO1x0XHRtZW1jcHkoKHZvaWQgKilyYXdfaW5vZGUsIGlub2RlX2J1ZiwgaW5vZGVfc2l6ZSk7XG4mIzQzO1x0XHRtZW1jcHkoZWktXHUwMDNlaV9kYXRhLCByYXdfaW5vZGUtXHUwMDNlaV9ibG9jaywgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSk7XG4mIzQzO1x0XHRleHQ0X2NsZWFyX2lub2RlX2ZsYWcoaW5vZGUsIEVYVDRfSU5PREVfRVhURU5UUyk7XG4mIzQzO1x0fSBlbHNlIHtcbiYjNDM7XHRcdGV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9JTkxJTkVfREFUQSk7XG4mIzQzO1x0XHRnZXRfYmgoaXMuaWxvYy5iaCk7XG4mIzQzO1x0XHRlcnJvciA9IGV4dDRfbWFya19pbG9jX2RpcnR5KGhhbmRsZSwgaW5vZGUsIFx1MDAyNmlzLmlsb2MpO1xuJiM0MztcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9vZmYgPSAwO1xuJiM0MztcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplID0gMDtcbiYjNDM7XHRcdGV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTtcbiYjNDM7XHRcdGlmIChTX0lTRElSKGlub2RlLVx1MDAzZWlfbW9kZSkpIHtcbiYjNDM7XHRcdFx0aV9zaXplX3dyaXRlKGlub2RlLCBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplKTtcbiYjNDM7XHRcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2Rpc2tzaXplID0gaW5vZGUtXHUwMDNlaV9zYi1cdTAwM2VzX2Jsb2Nrc2l6ZTtcbiYjNDM7XHRcdH1cbiYjNDM7XHRcdGJyZWxzZShiaCk7XG4mIzQzO1x0fVxuJiM0MztvdXQ6XG4mIzQzO1x0YnJlbHNlKGlzLmlsb2MuYmgpO1xuJiM0MztcdHVwX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuJiM0MztcdGtmcmVlKGlub2RlX2J1Zik7XG4mIzQzO1x0cmV0dXJuIGVycm9yO1xuIH1cbiBcbiBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbkBAIC0xMDk0LDggJiM0MzsxMTg5LDExIEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuIFx0aW50IGVycm9yO1xuIFx0dm9pZCAqYnVmID0gTlVMTDtcbiBcdHN0cnVjdCBidWZmZXJfaGVhZCAqZGF0YV9iaCA9IE5VTEw7XG4tXHRzdHJ1Y3QgZXh0NF9tYXBfYmxvY2tzIG1hcDtcbiBcdGludCBpbmxpbmVfc2l6ZTtcbiYjNDM7XHRleHQ0X2ZzYmxrX3QgbmV3YmxvY2sgPSAwO1xuJiM0MztcdHN0cnVjdCBleHQ0X2FsbG9jYXRpb25fcmVxdWVzdCBhcjtcbiYjNDM7XHRzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKGlub2RlLVx1MDAzZWlfc2IpO1xuJiM0MztcdHVuc2lnbmVkIGludCBhbGxvY2F0ZWRfYmxvY2s7XG4gXG4gXHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcbiBcdGJ1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTtcbkBAIC0xMTIwLDI1ICYjNDM7MTIxOCwyMiBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbiBcdFx0XHRnb3RvIG91dDtcbiBcdH1cbiBcbi1cdGVycm9yID0gZXh0NF9kZXN0cm95X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGlub2RlKTtcbi1cdGlmIChlcnJvcilcbi1cdFx0Z290byBvdXQ7XG4tXG4tXHRtYXAubV9sYmxrID0gMDtcbi1cdG1hcC5tX2xlbiA9IDE7XG4tXHRtYXAubV9mbGFncyA9IDA7XG4tXHRlcnJvciA9IGV4dDRfbWFwX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBcdTAwMjZtYXAsIEVYVDRfR0VUX0JMT0NLU19DUkVBVEUpO1xuJiM0MztcdG1lbXNldChcdTAwMjZhciwgMCwgc2l6ZW9mKGFyKSk7XG4mIzQzO1x0YXIuaW5vZGUgPSBpbm9kZTtcbiYjNDM7XHRhci5sb2dpY2FsID0gMDtcbiYjNDM7XHRhci5sZW4gPSAxO1xuJiM0MztcdGlmIChTX0lTUkVHKGlub2RlLVx1MDAzZWlfbW9kZSkpXG4mIzQzO1x0XHRhci5mbGFncyA9IEVYVDRfTUJfSElOVF9EQVRBO1xuJiM0MztcdGVsc2VcbiYjNDM7XHRcdGFyLmZsYWdzID0gMDtcbiYjNDM7XHRuZXdibG9jayA9IGV4dDRfbWJfbmV3X2Jsb2NrcyhoYW5kbGUsIFx1MDAyNmFyLCBcdTAwMjZlcnJvcik7XG4gXHRpZiAoZXJyb3IgXHUwMDNjIDApXG4tXHRcdGdvdG8gb3V0X3Jlc3RvcmU7XG4tXHRpZiAoIShtYXAubV9mbGFncyBcdTAwMjYgRVhUNF9NQVBfTUFQUEVEKSkge1xuLVx0XHRlcnJvciA9IC1FSU87XG4tXHRcdGdvdG8gb3V0X3Jlc3RvcmU7XG4tXHR9XG4tXG4tXHRkYXRhX2JoID0gc2JfZ2V0YmxrKGlub2RlLVx1MDAzZWlfc2IsIG1hcC5tX3BibGspO1xuJiM0MztcdFx0Z290byBvdXQ7XG4mIzQzO1x0YWxsb2NhdGVkX2Jsb2NrID0gRVhUNF9DMkIoc2JpLCBhci5sZW4pO1xuJiM0MztcdGRhdGFfYmggPSBzYl9nZXRibGsoaW5vZGUtXHUwMDNlaV9zYiwgbmV3YmxvY2spO1xuIFx0aWYgKCFkYXRhX2JoKSB7XG4gXHRcdGVycm9yID0gLUVOT01FTTtcbi1cdFx0Z290byBvdXRfcmVzdG9yZTtcbiYjNDM7XHRcdGdvdG8gb3V0X2JoO1xuIFx0fVxuIFxuIFx0bG9ja19idWZmZXIoZGF0YV9iaCk7XG5AQCAtMTE0Nyw3ICYjNDM7MTI0Miw3IEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuIFx0aWYgKGVycm9yKSB7XG4gXHRcdHVubG9ja19idWZmZXIoZGF0YV9iaCk7XG4gXHRcdGVycm9yID0gLUVJTztcbi1cdFx0Z290byBvdXRfcmVzdG9yZTtcbiYjNDM7XHRcdGdvdG8gb3V0X2JoO1xuIFx0fVxuIFx0bWVtc2V0KGRhdGFfYmgtXHUwMDNlYl9kYXRhLCAwLCBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplKTtcbiBcbkBAIC0xMTU5LDI0ICYjNDM7MTI1NCwyOCBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbiBcdFx0XHRcdFx0XHQgICBpbm9kZSwgZGF0YV9iaCk7XG4gXHR9IGVsc2Uge1xuIFx0XHR1bmxvY2tfYnVmZmVyKGRhdGFfYmgpO1xuLVx0XHRpbm9kZS1cdTAwM2VpX3NpemUgPSBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplO1xuLVx0XHRpX3NpemVfd3JpdGUoaW5vZGUsIGlub2RlLVx1MDAzZWlfc2ItXHUwMDNlc19ibG9ja3NpemUpO1xuLVx0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfZGlza3NpemUgPSBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplO1xuLVxuIFx0XHRlcnJvciA9IGV4dDRfaW5pdF9kaXJibG9jayhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLFxuIFx0XHRcdCAgbGUzMl90b19jcHUoKChzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqKWJ1ZiktXHUwMDNlaW5vZGUpLFxuIFx0XHRcdCAgYnVmICYjNDM7IEVYVDRfSU5MSU5FX0RPVERPVF9TSVpFLFxuIFx0XHRcdCAgaW5saW5lX3NpemUgLSBFWFQ0X0lOTElORV9ET1RET1RfU0laRSk7XG4tXHRcdGlmICghZXJyb3IpXG4tXHRcdFx0ZXJyb3IgPSBleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBpbm9kZSk7XG4gXHR9XG4mIzQzO291dF9iaDpcbiYjNDM7XHRpZiAoZXJyb3IpIHtcbiYjNDM7XHRcdGludCBmbGFncyA9IDA7XG4gXG4tb3V0X3Jlc3RvcmU6XG4tXHRpZiAoZXJyb3IpXG4tXHRcdGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YShoYW5kbGUsIGlub2RlLCBpbG9jLCBidWYsIGlubGluZV9zaXplKTtcbiYjNDM7XHRcdGlmIChkYXRhX2JoKVxuJiM0MztcdFx0XHRmbGFncyB8PSBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVDtcbiYjNDM7XHRcdHN0cnVjdCBleHQ0X2lub2RlX2luZm8gKmVpID0gRVhUNF9JKGlub2RlKTtcbiBcbiYjNDM7XHRcdGRvd25fd3JpdGUoXHUwMDI2ZWktXHUwMDNlaV9kYXRhX3NlbSk7XG4mIzQzO1x0XHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xuJiM0MztcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLCBuZXdibG9jaywgYWxsb2NhdGVkX2Jsb2NrLCBmbGFncyk7XG4mIzQzO1x0XHR1cF93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbiYjNDM7XHR9IGVsc2Uge1xuJiM0MztcdFx0ZXJyb3IgPSBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGUsIGlub2RlLFxuJiM0MztcdFx0XHRcdG5ld2Jsb2NrLCBhbGxvY2F0ZWRfYmxvY2ssIGRhdGFfYmgpO1xuJiM0MztcdH1cbiBvdXQ6XG4tXHRicmVsc2UoZGF0YV9iaCk7XG4gXHRrZnJlZShidWYpO1xuIFx0cmV0dXJuIGVycm9yO1xuIH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNjo1MTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xNG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEmIzM0OywKICAgICYjMzQ7ZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gaG93IGV4dDQgY29udmVydHMgaW5saW5lIGRhdGEgdG8gYmxvY2tzLCByZXBsYWNpbmcgdGhlIHVzZSBvZiBgZXh0NF9tYXBfYmxvY2tzYCB3aXRoIGRpcmVjdCBibG9jayBhbGxvY2F0aW9uIHZpYSBgZXh0NF9tYl9uZXdfYmxvY2tzYCBhbmQgaW50cm9kdWNpbmcgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gVGhpcyBtb2RpZmllcyBjb3JlIHJlYWNoYWJsZSBsb2dpYyBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCB3aGljaCBpcyB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMTI0YzdlYTZjZGQwMmFjNGUwYWE2MTA1ZWQwNTUyMTRkZjE4MTU5YQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDIyIDE2OjUxOjA5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxpbmUuYyBiL2ZzL2V4dDQvaW5saW5lLmMKaW5kZXggODA0NWU0ZmYyNzBjNy4uNTA3MTA2YzcyZTgyZiAxMDA2NDQKLS0tIGEvZnMvZXh0NC9pbmxpbmUuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9leHQ0L2lubGluZS5jCkBAIC0xNCw2ICYjNDM7MTQsNyBAQAogI2luY2x1ZGUgJiMzNDtleHQ0LmgmIzM0OwogI2luY2x1ZGUgJiMzNDt4YXR0ci5oJiMzNDsKICNpbmNsdWRlICYjMzQ7dHJ1bmNhdGUuaCYjMzQ7CiYjNDM7I2luY2x1ZGUgJiMzNDtleHQ0X2V4dGVudHMuaCYjMzQ7CiAKICNkZWZpbmUgRVhUNF9YQVRUUl9TWVNURU1fREFUQQkmIzM0O2RhdGEmIzM0OwogI2RlZmluZSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFCSgoc2l6ZW9mKF9fbGUzMikgKiBFWFQ0X05fQkxPQ0tTKSkKQEAgLTEwNzAsMjEgJiM0MzsxMDcxLDExNSBAQCBzdGF0aWMgaW50IGV4dDRfdXBkYXRlX2lubGluZV9kaXIoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICpkaXIsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAotCQkJCSAgICAgc3RydWN0IGV4dDRfaWxvYyAqaWxvYywKLQkJCQkgICAgIHZvaWQgKmJ1ZiwgaW50IGlubGluZV9zaXplKQomIzQzO3N0YXRpYyBpbnQgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2soaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9mc2Jsa190IGJsb2NrLAomIzQzOwkJCQkJdW5zaWduZWQgaW50IGxlbiwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKIHsKLQlpbnQgcmV0OwomIzQzOwlzdHJ1Y3QgZXh0NF9pbm9kZV9pbmZvICplaSA9IEVYVDRfSShpbm9kZSk7CiYjNDM7CXN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmQgaXMgPSB7CiYjNDM7CQkucyA9IHsgLm5vdF9mb3VuZCA9IDAsIH0sCiYjNDM7CX07CiYjNDM7CXN0cnVjdCBleHQ0X3hhdHRyX2luZm8gaSA9IHsKJiM0MzsJCS5uYW1lX2luZGV4ID0gRVhUNF9YQVRUUl9JTkRFWF9TWVNURU0sCiYjNDM7CQkubmFtZSA9IEVYVDRfWEFUVFJfU1lTVEVNX0RBVEEsCiYjNDM7CQkudmFsdWUgPSBOVUxMLAomIzQzOwkJLnZhbHVlX2xlbiA9IDAsCiYjNDM7CX07CiYjNDM7CWludCBlcnJvcjsKJiM0MzsJaW50IGlub2RlX3NpemU7CiYjNDM7CXZvaWQgKmlub2RlX2J1ZiA9IE5VTEw7CiYjNDM7CXN0cnVjdCBleHQ0X2lub2RlICpyYXdfaW5vZGU7CiAKLQlyZXQgPSBleHQ0X2NyZWF0ZV9pbmxpbmVfZGF0YShoYW5kbGUsIGlub2RlLCBpbmxpbmVfc2l6ZSk7Ci0JaWYgKHJldCkgewotCQlleHQ0X21zZyhpbm9kZS0mZ3Q7aV9zYiwgS0VSTl9FTUVSRywKLQkJCSYjMzQ7ZXJyb3IgcmVzdG9yaW5nIGlubGluZV9kYXRhIGZvciBpbm9kZSAtLSBwb3RlbnRpYWwgZGF0YSBsb3NzISAoaW5vZGUgJWxsdSwgZXJyb3IgJWQpJiMzNDssCi0JCQlpbm9kZS0mZ3Q7aV9pbm8sIHJldCk7Ci0JCXJldHVybjsKJiM0MzsJaW5vZGVfc2l6ZSA9IEVYVDRfSU5PREVfU0laRShpbm9kZS0mZ3Q7aV9zYik7CiYjNDM7CWlub2RlX2J1ZiA9IGttYWxsb2MoaW5vZGVfc2l6ZSwgR0ZQX05PRlMpOwomIzQzOwlpZiAoIWlub2RlX2J1ZikgewomIzQzOwkJZXJyb3IgPSAtRU5PTUVNOwomIzQzOwkJZG93bl93cml0ZSgmYW1wO2VpLSZndDtpX2RhdGFfc2VtKTsKJiM0MzsJCWV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7CiYjNDM7CQlleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7CiYjNDM7CQl1cF93cml0ZSgmYW1wO2VpLSZndDtpX2RhdGFfc2VtKTsKJiM0MzsJCXJldHVybiBlcnJvcjsKIAl9Ci0JZXh0NF93cml0ZV9pbmxpbmVfZGF0YShpbm9kZSwgaWxvYywgYnVmLCAwLCBpbmxpbmVfc2l6ZSk7Ci0JZXh0NF9zZXRfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTsKJiM0MzsJZG93bl93cml0ZSgmYW1wO2VpLSZndDtpX2RhdGFfc2VtKTsKJiM0MzsJZXJyb3IgPSBleHQ0X2dldF9pbm9kZV9sb2MoaW5vZGUsICZhbXA7aXMuaWxvYyk7CiYjNDM7CWlmIChlcnJvcikgewomIzQzOwkJZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTsKJiM0MzsJCWV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTsKJiM0MzsJCXVwX3dyaXRlKCZhbXA7ZWktJmd0O2lfZGF0YV9zZW0pOwomIzQzOwkJa2ZyZWUoaW5vZGVfYnVmKTsKJiM0MzsJCXJldHVybiBlcnJvcjsKJiM0MzsJfQomIzQzOwlyYXdfaW5vZGUgPSBleHQ0X3Jhd19pbm9kZSgmYW1wO2lzLmlsb2MpOwomIzQzOwlCVUZGRVJfVFJBQ0UoaXMuaWxvYy5iaCwgJiMzNDtnZXRfd3JpdGVfYWNjZXNzJiMzNDspOwomIzQzOwllcnJvciA9IGV4dDRfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKGhhbmRsZSwgaW5vZGUtJmd0O2lfc2IsIGlzLmlsb2MuYmgsIEVYVDRfSlRSX05PTkUpOwomIzQzOwlpZiAoZXJyb3IpIHsKJiM0MzsJCWV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7CiYjNDM7CQlleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7CiYjNDM7CQlnb3RvIG91dDsKJiM0MzsJfQomIzQzOwltZW1jcHkoaW5vZGVfYnVmLCAodm9pZCAqKXJhd19pbm9kZSwgaW5vZGVfc2l6ZSk7CiYjNDM7CW1lbXNldCgodm9pZCAqKXJhd19pbm9kZS0mZ3Q7aV9ibG9jaywgMCwgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSk7CiYjNDM7CW1lbXNldChlaS0mZ3Q7aV9kYXRhLCAwLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTsKJiM0MzsJaWYgKGV4dDRfaGFzX2ZlYXR1cmVfZXh0ZW50cyhpbm9kZS0mZ3Q7aV9zYikgJmFtcDsmYW1wOwomIzQzOwkJKFNfSVNESVIoaW5vZGUtJmd0O2lfbW9kZSkgfHwgU19JU1JFRyhpbm9kZS0mZ3Q7aV9tb2RlKSB8fCBTX0lTTE5LKGlub2RlLSZndDtpX21vZGUpKSkgewomIzQzOwkJZXh0NF9zZXRfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRTKTsKJiM0MzsJCWV4dDRfZXh0X3RyZWVfaW5pdChoYW5kbGUsIGlub2RlKTsKJiM0MzsJCXN0cnVjdCBleHQ0X2V4dF9wYXRoICpwYXRoID0gZXh0NF9maW5kX2V4dGVudChpbm9kZSwgMCwgTlVMTCwgMCk7CiYjNDM7CiYjNDM7CQlpZiAoSVNfRVJSKHBhdGgpKSB7CiYjNDM7CQkJZXJyb3IgPSBQVFJfRVJSKHBhdGgpOwomIzQzOwkJCWdvdG8gcmVjb3Zlcnk7CiYjNDM7CQl9CiYjNDM7CQlzdHJ1Y3QgZXh0NF9leHRlbnQgbmV3ZXg7CiYjNDM7CiYjNDM7CQluZXdleC5lZV9ibG9jayA9IGNwdV90b19sZTMyKDApOwomIzQzOwkJbmV3ZXguZWVfbGVuID0gY3B1X3RvX2xlMTYoMSk7CiYjNDM7CQlleHQ0X2V4dF9zdG9yZV9wYmxvY2soJmFtcDtuZXdleCwgYmxvY2spOwomIzQzOwkJcGF0aCA9IGV4dDRfZXh0X2luc2VydF9leHRlbnQoaGFuZGxlLCBpbm9kZSwgcGF0aCwgJmFtcDtuZXdleCwgMCk7CiYjNDM7CQlpZiAoSVNfRVJSKHBhdGgpKSB7CiYjNDM7CQkJZXJyb3IgPSBQVFJfRVJSKHBhdGgpOwomIzQzOwkJCWlmIChlcnJvciA9PSAtRURRVU9UIHx8IGVycm9yID09IC1FTk9TUEMpIHsKJiM0MzsJCQkJZ290byByZWNvdmVyeTsKJiM0MzsJCQl9IGVsc2UgewomIzQzOwkJCQlleHQ0X2ZvcmdldChoYW5kbGUsIDAsIGlub2RlLCBiaCwgYmxvY2spOwomIzQzOwkJCQlnb3RvIG5vZnJlZTsKJiM0MzsJCQl9CiYjNDM7CQl9IGVsc2UgewomIzQzOwkJCWV4dDRfZnJlZV9leHRfcGF0aChwYXRoKTsKJiM0MzsJCX0KJiM0MzsJfSBlbHNlIHsKJiM0MzsJCUVYVDRfSShpbm9kZSktJmd0O2lfZGF0YVswXSA9IGNwdV90b19sZTMyKGJsb2NrKTsKJiM0MzsJfQomIzQzOwllcnJvciA9IGV4dDRfeGF0dHJfaWJvZHlfZmluZChpbm9kZSwgJmFtcDtpLCAmYW1wO2lzKTsKJiM0MzsJaWYgKGVycm9yKQomIzQzOwkJZ290byByZWNvdmVyeTsKJiM0MzsJaWYgKCFpcy5zLm5vdF9mb3VuZCkKJiM0MzsJCWVycm9yID0gZXh0NF94YXR0cl9pYm9keV9zZXQoaGFuZGxlLCBpbm9kZSwgJmFtcDtpLCAmYW1wO2lzKTsKJiM0MztyZWNvdmVyeToKJiM0MzsJaWYgKGVycm9yKSB7CiYjNDM7CQlleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpOwomIzQzOwkJZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpOwomIzQzO25vZnJlZToKJiM0MzsJCW1lbWNweSgodm9pZCAqKXJhd19pbm9kZSwgaW5vZGVfYnVmLCBpbm9kZV9zaXplKTsKJiM0MzsJCW1lbWNweShlaS0mZ3Q7aV9kYXRhLCByYXdfaW5vZGUtJmd0O2lfYmxvY2ssIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpOwomIzQzOwkJZXh0NF9jbGVhcl9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0VYVEVOVFMpOwomIzQzOwl9IGVsc2UgewomIzQzOwkJZXh0NF9jbGVhcl9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0lOTElORV9EQVRBKTsKJiM0MzsJCWdldF9iaChpcy5pbG9jLmJoKTsKJiM0MzsJCWVycm9yID0gZXh0NF9tYXJrX2lsb2NfZGlydHkoaGFuZGxlLCBpbm9kZSwgJmFtcDtpcy5pbG9jKTsKJiM0MzsJCUVYVDRfSShpbm9kZSktJmd0O2lfaW5saW5lX29mZiA9IDA7CiYjNDM7CQlFWFQ0X0koaW5vZGUpLSZndDtpX2lubGluZV9zaXplID0gMDsKJiM0MzsJCWV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTsKJiM0MzsJCWlmIChTX0lTRElSKGlub2RlLSZndDtpX21vZGUpKSB7CiYjNDM7CQkJaV9zaXplX3dyaXRlKGlub2RlLCBpbm9kZS0mZ3Q7aV9zYi0mZ3Q7c19ibG9ja3NpemUpOwomIzQzOwkJCUVYVDRfSShpbm9kZSktJmd0O2lfZGlza3NpemUgPSBpbm9kZS0mZ3Q7aV9zYi0mZ3Q7c19ibG9ja3NpemU7CiYjNDM7CQl9CiYjNDM7CQlicmVsc2UoYmgpOwomIzQzOwl9CiYjNDM7b3V0OgomIzQzOwlicmVsc2UoaXMuaWxvYy5iaCk7CiYjNDM7CXVwX3dyaXRlKCZhbXA7ZWktJmd0O2lfZGF0YV9zZW0pOwomIzQzOwlrZnJlZShpbm9kZV9idWYpOwomIzQzOwlyZXR1cm4gZXJyb3I7CiB9CiAKIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLApAQCAtMTA5NCw4ICYjNDM7MTE4OSwxMSBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSwKIAlpbnQgZXJyb3I7CiAJdm9pZCAqYnVmID0gTlVMTDsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRhdGFfYmggPSBOVUxMOwotCXN0cnVjdCBleHQ0X21hcF9ibG9ja3MgbWFwOwogCWludCBpbmxpbmVfc2l6ZTsKJiM0MzsJZXh0NF9mc2Jsa190IG5ld2Jsb2NrID0gMDsKJiM0MzsJc3RydWN0IGV4dDRfYWxsb2NhdGlvbl9yZXF1ZXN0IGFyOwomIzQzOwlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKGlub2RlLSZndDtpX3NiKTsKJiM0MzsJdW5zaWduZWQgaW50IGFsbG9jYXRlZF9ibG9jazsKIAogCWlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpOwogCWJ1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTsKQEAgLTExMjAsMjUgJiM0MzsxMjE4LDIyIEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLAogCQkJZ290byBvdXQ7CiAJfQogCi0JZXJyb3IgPSBleHQ0X2Rlc3Ryb3lfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUpOwotCWlmIChlcnJvcikKLQkJZ290byBvdXQ7Ci0KLQltYXAubV9sYmxrID0gMDsKLQltYXAubV9sZW4gPSAxOwotCW1hcC5tX2ZsYWdzID0gMDsKLQllcnJvciA9IGV4dDRfbWFwX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCAmYW1wO21hcCwgRVhUNF9HRVRfQkxPQ0tTX0NSRUFURSk7CiYjNDM7CW1lbXNldCgmYW1wO2FyLCAwLCBzaXplb2YoYXIpKTsKJiM0MzsJYXIuaW5vZGUgPSBpbm9kZTsKJiM0MzsJYXIubG9naWNhbCA9IDA7CiYjNDM7CWFyLmxlbiA9IDE7CiYjNDM7CWlmIChTX0lTUkVHKGlub2RlLSZndDtpX21vZGUpKQomIzQzOwkJYXIuZmxhZ3MgPSBFWFQ0X01CX0hJTlRfREFUQTsKJiM0MzsJZWxzZQomIzQzOwkJYXIuZmxhZ3MgPSAwOwomIzQzOwluZXdibG9jayA9IGV4dDRfbWJfbmV3X2Jsb2NrcyhoYW5kbGUsICZhbXA7YXIsICZhbXA7ZXJyb3IpOwogCWlmIChlcnJvciAmbHQ7IDApCi0JCWdvdG8gb3V0X3Jlc3RvcmU7Ci0JaWYgKCEobWFwLm1fZmxhZ3MgJmFtcDsgRVhUNF9NQVBfTUFQUEVEKSkgewotCQllcnJvciA9IC1FSU87Ci0JCWdvdG8gb3V0X3Jlc3RvcmU7Ci0JfQotCi0JZGF0YV9iaCA9IHNiX2dldGJsayhpbm9kZS0mZ3Q7aV9zYiwgbWFwLm1fcGJsayk7CiYjNDM7CQlnb3RvIG91dDsKJiM0MzsJYWxsb2NhdGVkX2Jsb2NrID0gRVhUNF9DMkIoc2JpLCBhci5sZW4pOwomIzQzOwlkYXRhX2JoID0gc2JfZ2V0YmxrKGlub2RlLSZndDtpX3NiLCBuZXdibG9jayk7CiAJaWYgKCFkYXRhX2JoKSB7CiAJCWVycm9yID0gLUVOT01FTTsKLQkJZ290byBvdXRfcmVzdG9yZTsKJiM0MzsJCWdvdG8gb3V0X2JoOwogCX0KIAogCWxvY2tfYnVmZmVyKGRhdGFfYmgpOwpAQCAtMTE0Nyw3ICYjNDM7MTI0Miw3IEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLAogCWlmIChlcnJvcikgewogCQl1bmxvY2tfYnVmZmVyKGRhdGFfYmgpOwogCQllcnJvciA9IC1FSU87Ci0JCWdvdG8gb3V0X3Jlc3RvcmU7CiYjNDM7CQlnb3RvIG91dF9iaDsKIAl9CiAJbWVtc2V0KGRhdGFfYmgtJmd0O2JfZGF0YSwgMCwgaW5vZGUtJmd0O2lfc2ItJmd0O3NfYmxvY2tzaXplKTsKIApAQCAtMTE1OSwyNCAmIzQzOzEyNTQsMjggQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsCiAJCQkJCQkgICBpbm9kZSwgZGF0YV9iaCk7CiAJfSBlbHNlIHsKIAkJdW5sb2NrX2J1ZmZlcihkYXRhX2JoKTsKLQkJaW5vZGUtJmd0O2lfc2l6ZSA9IGlub2RlLSZndDtpX3NiLSZndDtzX2Jsb2Nrc2l6ZTsKLQkJaV9zaXplX3dyaXRlKGlub2RlLCBpbm9kZS0mZ3Q7aV9zYi0mZ3Q7c19ibG9ja3NpemUpOwotCQlFWFQ0X0koaW5vZGUpLSZndDtpX2Rpc2tzaXplID0gaW5vZGUtJmd0O2lfc2ItJmd0O3NfYmxvY2tzaXplOwotCiAJCWVycm9yID0gZXh0NF9pbml0X2RpcmJsb2NrKGhhbmRsZSwgaW5vZGUsIGRhdGFfYmgsCiAJCQkgIGxlMzJfdG9fY3B1KCgoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKilidWYpLSZndDtpbm9kZSksCiAJCQkgIGJ1ZiAmIzQzOyBFWFQ0X0lOTElORV9ET1RET1RfU0laRSwKIAkJCSAgaW5saW5lX3NpemUgLSBFWFQ0X0lOTElORV9ET1RET1RfU0laRSk7Ci0JCWlmICghZXJyb3IpCi0JCQllcnJvciA9IGV4dDRfbWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIGlub2RlKTsKIAl9CiYjNDM7b3V0X2JoOgomIzQzOwlpZiAoZXJyb3IpIHsKJiM0MzsJCWludCBmbGFncyA9IDA7CiAKLW91dF9yZXN0b3JlOgotCWlmIChlcnJvcikKLQkJZXh0NF9yZXN0b3JlX2lubGluZV9kYXRhKGhhbmRsZSwgaW5vZGUsIGlsb2MsIGJ1ZiwgaW5saW5lX3NpemUpOwomIzQzOwkJaWYgKGRhdGFfYmgpCiYjNDM7CQkJZmxhZ3MgfD0gRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQ7CiYjNDM7CQlzdHJ1Y3QgZXh0NF9pbm9kZV9pbmZvICplaSA9IEVYVDRfSShpbm9kZSk7CiAKJiM0MzsJCWRvd25fd3JpdGUoJmFtcDtlaS0mZ3Q7aV9kYXRhX3NlbSk7CiYjNDM7CQlleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpOwomIzQzOwkJZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLCBuZXdibG9jaywgYWxsb2NhdGVkX2Jsb2NrLCBmbGFncyk7CiYjNDM7CQl1cF93cml0ZSgmYW1wO2VpLSZndDtpX2RhdGFfc2VtKTsKJiM0MzsJfSBlbHNlIHsKJiM0MzsJCWVycm9yID0gZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2soaGFuZGxlLCBpbm9kZSwKJiM0MzsJCQkJbmV3YmxvY2ssIGFsbG9jYXRlZF9ibG9jaywgZGF0YV9iaCk7CiYjNDM7CX0KIG91dDoKLQlicmVsc2UoZGF0YV9iaCk7CiAJa2ZyZWUoYnVmKTsKIAlyZXR1cm4gZXJyb3I7CiB9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE2OjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwNzkKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAyMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNpbmcgb24gRXh0NCBJbmxpbmUgRGF0YSBDb252ZXJzaW9uKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCBhIHBhdGNoIGhlcmUgdGhhdCYjMzk7cyBtYWtpbmcgc29tZSBwcmV0dHkgc2lnbmlmaWNhbnQgY2hhbmdlcyB0byBgZnMvZXh0NC9pbmxpbmUuY2AuIEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBzaGlmdCwgc3BlY2lmaWNhbGx5IGFpbWVkIGF0IGhvdyBleHQ0IGhhbmRsZXMgaW5saW5lIGRhdGEgY29udmVyc2lvbi4gUmVtb3ZpbmcgYGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YWAgYW5kIGludHJvZHVjaW5nIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AgaXMgYW4gaW50ZXJlc3RpbmcgY2hhbmdlLCBidXQgdGhlIG1vZGlmaWNhdGlvbiB0byBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AgaXMgd2hhdCByZWFsbHkgY2F0Y2hlcyBteSBleWUuIERpcmVjdGx5IHVzaW5nIGBleHQ0X21iX25ld19ibG9ja3NgIGluc3RlYWQgb2YgdGhlIG9sZCBgZXh0NF9tYXBfYmxvY2tzYCBhbmQgYGV4dDRfZGVzdHJveV9pbmxpbmVfZGF0YV9ub2xvY2tgIHNlcXVlbmNlLi4udGhhdCBjb3VsZCBpbnRyb2R1Y2Ugc29tZSBpbnRlcmVzdGluZyBlZGdlIGNhc2VzLiBUaGlzIGlzIGRlZmluaXRlbHkgcHJpbWUgZnV6emluZyB0ZXJyaXRvcnkuCgpOb3csIGxldCYjMzk7cyBpZGVudGlmeSB0aGUgY3JpdGljYWwgZnVuY3Rpb25zIHRvIGZvY3VzIG9uLiBXZSYjMzk7dmUgZ290IGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AsIHdoaWNoIGlzIG5ldywgYW5kIHRoZW4gdGhlIG1vZGlmaWVkIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYC4gVGhleSBhcmUgYm90aCBzdGF0aWMgdGhvdWdoLCB3aGljaCBtZWFucyB3ZSBuZWVkIHRvIGZpbmQgdGhlaXIgbm9uLXN0YXRpYyBjYWxsaW5nIGZ1bmN0aW9ucyB0byBjcmVhdGUgaW5wdXQuIEkgc2hvdWxkIHByb2JhYmx5IHN0YXJ0IGJ5IHNlYXJjaGluZyBmb3IgY2FsbHMgdG8gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBlbnRyeSBwb2ludHMgdG8gYW5hbHl6ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNjo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2V4dDQvaW5saW5lLmM9MTA3ND1zdGF0aWMgaW50IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfZnNibGtfdCBibG9jayxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTExODQtXG5mcy9leHQ0L2lubGluZS5jOjExODU6c3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXG5mcy9leHQ0L2lubGluZS5jLTExODYtXHRcdFx0XHRcdCAgIHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYz0xMjg4PWludCBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBleHQ0X2ZpbGVuYW1lICpmbmFtZSxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTEzNDAtXHQgKi9cbmZzL2V4dDQvaW5saW5lLmM6MTM0MTpcdHJldCA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlLCBkaXIsIFx1MDAyNmlsb2MpO1xuZnMvZXh0NC9pbmxpbmUuYy0xMzQyLVxuLS1cbmZzL2V4dDQvaW5saW5lLmM9MjA1NT1pbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0yMDkyLVx0aWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSlcbmZzL2V4dDQvaW5saW5lLmM6MjA5MzpcdFx0ZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUsIFx1MDAyNmlsb2MpO1xuZnMvZXh0NC9pbmxpbmUuYy0yMDk0LVx0ZXh0NF93cml0ZV91bmxvY2tfeGF0dHIoaW5vZGUsIFx1MDAyNm5vX2V4cGFuZCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTk3NgoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIENhbGxlcnMgaW4gZXh0NCBGaWxlIFN5c3RlbSBJbmxpbmUgRGF0YSBIYW5kbGluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgdHdvIGZ1bmN0aW9ucywgYGV4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnlgIGFuZCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCwgYm90aCBvZiB3aGljaCBzZWVtIGludm9sdmVkIGluIGhvdyB0aGUgZXh0NCBmaWxlc3lzdGVtIGhhbmRsZXMgaW5saW5lIGRhdGEuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZW5zdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGFueSBvdGhlciBpbXBvcnRhbnQgcGllY2VzIG9mIHRoZSBwdXp6bGUuIEkga25vdyB0aGVzZSBmdW5jdGlvbnMgYXJlIGNydWNpYWwsIGJ1dCB1bmRlcnN0YW5kaW5nIHRoZSBjb21wbGV0ZSBwaWN0dXJlIHJlcXVpcmVzIGNvbnNpZGVyaW5nIGFsbCByZWxhdGVkIGNvZGUgcGF0aHMuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIG1ldGhvZGljYWxseSBjaGVjaywgd2l0aCBhIHF1aWNrIGNvZGUgaW5zcGVjdGlvbiwgaWYgdGhlcmUgYXJlICphbnkqIG90aGVyIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0IGFsc28gYmUgY2FsbGluZyB0aGlzIHNhbWUgY29kZSBvciByZWxhdGVkIGNvZGUgcGF0aHMuIFRoaXMgd2lsbCBoZWxwIG1lIGJ1aWxkIGEgY29tcGxldGUgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhpcyBpbmxpbmUgZGF0YSBtZWNoYW5pc20gaXMgdHJ1bHkgd29ya2luZy4gVGhpcyBjb3VsZCByZXZlYWwgaW1wb3J0YW50IGluZm9ybWF0aW9uIGFib3V0IG90aGVyIGVudHJ5IHBvaW50cyBvciBtZXRob2RzIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNjo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2V4dDQvZXh0NC5oPTM3NDc9ZXh0ZXJuIGludCBleHQ0X2dlbmVyaWNfd3JpdGVfaW5saW5lX2RhdGEoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXG4tLVxuZnMvZXh0NC9leHQ0LmgtMzc1MS1cdFx0XHRcdFx0ICB2b2lkICoqZnNkYXRhLCBib29sIGRhKTtcbmZzL2V4dDQvZXh0NC5oOjM3NTI6ZXh0ZXJuIGludCBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsXG5mcy9leHQ0L2V4dDQuaC0zNzUzLVx0XHRcdFx0ICAgICBzdHJ1Y3QgZXh0NF9maWxlbmFtZSAqZm5hbWUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYz0xMTg1PXN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTI4Ny0gKi9cbmZzL2V4dDQvaW5saW5lLmM6MTI4ODppbnQgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgZXh0NF9maWxlbmFtZSAqZm5hbWUsXG5mcy9leHQ0L2lubGluZS5jLTEyODktXHRcdFx0ICAgICAgc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4tLVxuZnMvZXh0NC9uYW1laS5jPTIzNTY9c3RhdGljIGludCBfX2V4dDRfYWRkX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqZGlyLFxuLS1cbmZzL2V4dDQvbmFtZWkuYy0yMzgzLVx0aWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGRpcikpIHtcbmZzL2V4dDQvbmFtZWkuYzoyMzg0Olx0XHRyZXR2YWwgPSBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5KGhhbmRsZSwgXHUwMDI2Zm5hbWUsIGRpciwgaW5vZGUpO1xuZnMvZXh0NC9uYW1laS5jLTIzODUtXHRcdGlmIChyZXR2YWwgXHUwMDNjIDApXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjYxMwoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJiMzOTttIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOgoKKipJbmxpbmUgRGF0YSBFbnRyeSBJbnZlc3RpZ2F0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBpbnRvIGhvdyBpbmxpbmUgZGF0YSBlbnRyaWVzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLiBNeSBmb2N1cyBpcyBvbiB0aGUgYGV4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnlgIGZ1bmN0aW9uLiBJIGtub3cgdGhpcyBpcyBjYWxsZWQgYnkgYF9fZXh0NF9hZGRfZW50cnlgLCB3aGljaCBpdHNlbGYgcmVzaWRlcyBpbiBgZnMvZXh0NC9uYW1laS5jYC4gU28sIHRoZSBwYXRoIGlzIGNsZWFyOiBuYW1pbmcgYW5kIGFkZGluZyBuZXcgZGlyZWN0b3J5IGVudHJpZXMuCgpOb3csIG15IG5leHQgdGhvdWdodCBpcyBhYm91dCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYC4gSSBzZWVtIHRvIHJlY2FsbCB0aGF0IG9uZSBiZWluZyBleHBvcnRlZCwgbWF5YmUgZm9yIHVzZSBpbiBzaXR1YXRpb25zIG90aGVyIHRoYW4gdGhpcy4gSXQgd291bGQgbWFrZSBzZW5zZSBpZiBpdCB3YXMsIHNvIGxldCBtZSBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0IGV4cG9ydCBzdGF0dXMuIFRoYXTigJlzIHByb2JhYmx5IHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpbiB1bmRlcnN0YW5kaW5nIGhvdyBhbGwgdGhpcyB3b3JrcyB0b2dldGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNjo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXh0NC9jcnlwdG8uYz0xMzI9c3RhdGljIGludCBleHQ0X3NldF9jb250ZXh0KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IHZvaWQgKmN0eCwgc2l6ZV90IGxlbixcbi0tXG5mcy9leHQ0L2NyeXB0by5jLTE1Mi1cbmZzL2V4dDQvY3J5cHRvLmM6MTUzOlx0cmVzID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcbmZzL2V4dDQvY3J5cHRvLmMtMTU0LVx0aWYgKHJlcylcbi0tXG5mcy9leHQ0L2V4dDQuaD0zNzg0PWV4dGVybiBpbnQgZXh0NF9pbmxpbmVfZGF0YV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpO1xuZnMvZXh0NC9leHQ0LmgtMzc4NS1cbmZzL2V4dDQvZXh0NC5oOjM3ODY6ZXh0ZXJuIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSk7XG5mcy9leHQ0L2V4dDQuaC0zNzg3LVxuLS1cbmZzL2V4dDQvZXh0ZW50cy5jPTQ4NTQ9bG9uZyBleHQ0X2ZhbGxvY2F0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1vZGUsIGxvZmZfdCBvZmZzZXQsIGxvZmZfdCBsZW4pXG4tLVxuZnMvZXh0NC9leHRlbnRzLmMtNDg4My1cdGlub2RlX2xvY2soaW5vZGUpO1xuZnMvZXh0NC9leHRlbnRzLmM6NDg4NDpcdHJldCA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShpbm9kZSk7XG5mcy9leHQ0L2V4dGVudHMuYy00ODg1LVx0aWYgKHJldClcbi0tXG5mcy9leHQ0L2lubGluZS5jPTU0Nj1pbnQgZXh0NF9yZWFkcGFnZV9pbmxpbmUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZvbGlvICpmb2xpbylcbi0tXG5mcy9leHQ0L2lubGluZS5jLTU3Mi1cbmZzL2V4dDQvaW5saW5lLmM6NTczOnN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcbmZzL2V4dDQvaW5saW5lLmMtNTc0LVx0XHRcdFx0XHQgICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuLS1cbmZzL2V4dDQvaW5saW5lLmM9Njk3PWludCBleHQ0X2dlbmVyaWNfd3JpdGVfaW5saW5lX2RhdGEoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy03MjgtXHRcdFx0LyogUmV0cnkgaW5zaWRlICovXG5mcy9leHQ0L2lubGluZS5jOjcyOTpcdFx0XHRyZXR1cm4gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChtYXBwaW5nLCBpbm9kZSk7XG5mcy9leHQ0L2lubGluZS5jLTczMC1cdFx0fVxuLS1cbmZzL2V4dDQvaW5saW5lLmM9Nzg0PWludCBleHQ0X3RyeV90b193cml0ZV9pbmxpbmVfZGF0YShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTc4OS1cdGlmIChwb3MgJiM0MzsgbGVuIFx1MDAzZSBleHQ0X2dldF9tYXhfaW5saW5lX3NpemUoaW5vZGUpKVxuZnMvZXh0NC9pbmxpbmUuYzo3OTA6XHRcdHJldHVybiBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KG1hcHBpbmcsIGlub2RlKTtcbmZzL2V4dDQvaW5saW5lLmMtNzkxLVx0cmV0dXJuIGV4dDRfZ2VuZXJpY193cml0ZV9pbmxpbmVfZGF0YShtYXBwaW5nLCBpbm9kZSwgcG9zLCBsZW4sXG4tLVxuZnMvZXh0NC9pbmxpbmUuYz0xMDc0PXN0YXRpYyBpbnQgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2soaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9mc2Jsa190IGJsb2NrLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTE4NC1cbmZzL2V4dDQvaW5saW5lLmM6MTE4NTpzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbmZzL2V4dDQvaW5saW5lLmMtMTE4Ni1cdFx0XHRcdFx0ICAgc3RydWN0IGlub2RlICppbm9kZSxcbi0tXG5mcy9leHQ0L2lubGluZS5jPTEyODg9aW50IGV4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnkoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGV4dDRfZmlsZW5hbWUgKmZuYW1lLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTM0MC1cdCAqL1xuZnMvZXh0NC9pbmxpbmUuYzoxMzQxOlx0cmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGRpciwgXHUwMDI2aWxvYyk7XG5mcy9leHQ0L2lubGluZS5jLTEzNDItXG4tLVxuZnMvZXh0NC9pbmxpbmUuYz0xOTQzPWludCBleHQ0X2lubGluZV9kYXRhX3RydW5jYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCAqaGFzX2lubGluZSlcbi0tXG5mcy9leHQ0L2lubGluZS5jLTIwNTQtXG5mcy9leHQ0L2lubGluZS5jOjIwNTU6aW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuZnMvZXh0NC9pbmxpbmUuYy0yMDU2LXtcbi0tXG5mcy9leHQ0L2lubGluZS5jLTIwOTItXHRpZiAoZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpKVxuZnMvZXh0NC9pbmxpbmUuYzoyMDkzOlx0XHRlcnJvciA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlLCBpbm9kZSwgXHUwMDI2aWxvYyk7XG5mcy9leHQ0L2lubGluZS5jLTIwOTQtXHRleHQ0X3dyaXRlX3VubG9ja194YXR0cihpbm9kZSwgXHUwMDI2bm9fZXhwYW5kKTtcbi0tXG5mcy9leHQ0L2lub2RlLmM9NTkzND1pbnQgZXh0NF9zZXRhdHRyKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksXG4tLVxuZnMvZXh0NC9pbm9kZS5jLTYwMzEtXHRcdCAgICBhdHRyLVx1MDAzZWlhX3NpemUgXHUwMDNlIEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfc2l6ZSkge1xuZnMvZXh0NC9pbm9kZS5jOjYwMzI6XHRcdFx0ZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoaW5vZGUpO1xuZnMvZXh0NC9pbm9kZS5jLTYwMzMtXHRcdFx0aWYgKGVycm9yKVxuLS1cbmZzL2V4dDQvaW5vZGUuYz02Nzg3PXZtX2ZhdWx0X3QgZXh0NF9wYWdlX21rd3JpdGUoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXG4tLVxuZnMvZXh0NC9pbm9kZS5jLTY4MDgtXG5mcy9leHQ0L2lub2RlLmM6NjgwOTpcdGVyciA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShpbm9kZSk7XG5mcy9leHQ0L2lub2RlLmMtNjgxMC1cdGlmIChlcnIpXG4tLVxuZnMvZXh0NC92ZXJpdHkuYz0xMDI9c3RhdGljIGludCBleHQ0X2JlZ2luX2VuYWJsZV92ZXJpdHkoc3RydWN0IGZpbGUgKmZpbHApXG4tLVxuZnMvZXh0NC92ZXJpdHkuYy0xMjgtXG5mcy9leHQ0L3Zlcml0eS5jOjEyOTpcdGVyciA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShpbm9kZSk7XG5mcy9leHQ0L3Zlcml0eS5jLTEzMC1cdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjRtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODMzMwoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDE2MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIEV4dDQgSW5saW5lIERhdGEgQ29udmVyc2lvbiBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGNsZWFybHkgdG91Y2hpbmcgdGhlIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGFuZCBgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeWAgZnVuY3Rpb25zLiBGcm9tIGEgcXVpY2sgZ2xhbmNlLCBJIHNlZSB0aGVzZSBhcmUgZmFpcmx5IHdpZGVseSB1c2VkOyBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBpcyBjYWxsZWQgZnJvbSBhIHNsZXcgb2YgcGxhY2VzIGxpa2UgYGV4dDRfZmFsbG9jYXRlYCwgYGV4dDRfc2V0YXR0cmAsIGBleHQ0X3BhZ2VfbWt3cml0ZWAsIGFuZCBldmVuIGBleHQ0X2JlZ2luX2VuYWJsZV92ZXJpdHlgLiBUaGF0JiMzOTtzIGEgZGVjZW50IHNwcmVhZC4gQW5kIGBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5YCBpcyBjYWxsZWQgZnJvbSBgX19leHQ0X2FkZF9lbnRyeWAuIFRoaXMgdGVsbHMgbWUgdGhhdCB0aGlzIGlzIGZhaXJseSBmdW5kYW1lbnRhbCBjaGFuZ2UgdG8gaG93IHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggaW5saW5lIGRhdGEgY29udmVyc2lvbiBpbiBleHQ0LgoKR2l2ZW4gdGhlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbXBsaWVkLCBJJiMzOTttIGFscmVhZHkgdGhpbmtpbmcgdGhpcyBpcyByaXBlIGZvciBmdXp6aW5nLiBBbnkgY2hhbmdlIHRoaXMgcGVydmFzaXZlIGhhcyB0aGUgcG90ZW50aWFsIHRvIGludHJvZHVjZSBzdWJ0bGUgYnVncy4gTXkgaW5zdGluY3Qgc2F5cyB3ZSBuZWVkIHRvIGJlIHRob3JvdWdoIGhlcmUuCgpNeSBmb2N1cyBoYXMgdG8gYmUgb24gdGhvc2UgdHdvIHN5bWJvbHM6IGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGFuZCBgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeWAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBmdW5jdGlvbnMgYXJlIGJlaW5nIG1vZGlmaWVkIGFuZCBob3cgdGhvc2UgY2hhbmdlcyBpbXBhY3QgdGhlIGJyb2FkZXIgc3lzdGVtLiBJIGFsc28gbmVlZCB0byBtYWtlIHN1cmUgdGhlIGJ1aWxkIGVudmlyb25tZW50IGlzIHNldCB1cCBjb3JyZWN0bHk7IHRoZSBwYXRjaCBzcGVjaWZpZXMgYEVYVDRfRlNgLCBidXQgSSYjMzk7bGwgbmVlZCB0byBkb3VibGUtY2hlY2sgaWYgdGhlcmUgYXJlIGFueSAqb3RoZXIqIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGlubGluZSBkYXRhIGl0c2VsZi4gSXMgaXQgYSBmZWF0dXJlIGZsYWcsIG9yIGRvZXMgaXQgZGVwZW5kIG9uIG90aGVyIHBhcmFtZXRlcnM/IFRpbWUgdG8gZGlnIGRlZXBlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX0VYVDRfRlMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNzcgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZz04OD1DT05GSUdfTU1DX0RXPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZy04OS0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZzo5MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWctOTEtQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc9ODY9Q09ORklHX01NQ19EVz15XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWctODctIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc6ODg6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnLTg5LUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZz04OD1DT05GSUdfTU1DX0RXPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWctODktIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWctOTEtQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnPTc5PUNPTkZJR19USV9BREMxMDhTMTAyPXlcbmFyY2gvYXJjL2NvbmZpZ3MvaHNka19kZWZjb25maWc6ODA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZy04MS1DT05GSUdfVkZBVF9GUz15XG4tLVxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWc9NzU9Q09ORklHX1VTQl9TRVJJQUw9eVxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWctNzYtIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZzo3NzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZzo3ODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZy03OS1DT05GSUdfTVNET1NfRlM9eVxuLS1cbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZz04Mj1DT05GSUdfVUlPX1BEUlZfR0VOSVJRPXlcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZy04My0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZzo4NDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWctODUtQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNV9kZWZjb25maWc9MjY0PUNPTkZJR19QRUNJX0FTUEVFRD15XG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNV9kZWZjb25maWc6MjY1OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZy0yNjYtQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnPTIwNz1DT05GSUdfUFdNX0FUTUVMX1RDQj15XG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnOjIwODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnLTIwOS1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc9MTk2PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc6MTk3OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWctMTk4LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvYmNtMjgzNV9kZWZjb25maWc9MTU2PUNPTkZJR19FWFQyX0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnOjE1NzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnOjE1ODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9iY20yODM1X2RlZmNvbmZpZy0xNTktQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZz0yMjk9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWc6MjMwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvZGF2aW5jaV9hbGxfZGVmY29uZmlnOjIzMTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWctMjMyLUNPTkZJR19YRlNfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvZG92ZV9kZWZjb25maWc9OTc9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZzo5ODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnOjk5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZy0xMDAtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZz0xMDU9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnOjEwNjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWc6MTA3OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnLTEwOC1DT05GSUdfVkZBVF9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9leHlub3NfZGVmY29uZmlnPTMzMj1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWc6MzMzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvZXh5bm9zX2RlZmNvbmZpZy0zMzQtQ09ORklHX0FVVE9GU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9oaXNpX2RlZmNvbmZpZz03Nz1DT05GSUdfUEhZX0hJWDVIRDJfU0FUQT15XG5hcmNoL2FybS9jb25maWdzL2hpc2lfZGVmY29uZmlnOjc4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaGlzaV9kZWZjb25maWctNzktQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2lteF92NF92NV9kZWZjb25maWc9MTU1PUNPTkZJR19QV01fSU1YMjc9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjRfdjVfZGVmY29uZmlnOjE1NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2lteF92NF92NV9kZWZjb25maWctMTU3LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZz00Mzk9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZy00NDMtQ09ORklHX1FVT1RBPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZz0yNz1DT05GSUdfQ0xLX0lNWFJUMTA1MD15XG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZzoyODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZzoyOTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6MzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWctMzEtQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZz0xNTU9Q09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZzoxNTY6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnOjE1NzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnLTE1OC1DT05GSUdfT1ZFUkxBWV9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWc9MjA1PUNPTkZJR19SRVNFVF9USV9TWVNDT049bVxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWc6MjA2OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnOjIwNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWctMjA4LUNPTkZJR19GQU5PVElGWT15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9taWxiZWF1dF9tMTB2X2RlZmNvbmZpZz04MT1DT05GSUdfTUVNT1JZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWctODItIyBDT05GSUdfQVJNX1BNVSBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL21pbGJlYXV0X20xMHZfZGVmY29uZmlnOjgzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWctODQtQ09ORklHX0FVVE9GU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tbXAyX2RlZmNvbmZpZz01NT1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL21tcDJfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbW1wMl9kZWZjb25maWctNTctIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnPTExND1DT05GSUdfTU9YQVJUX0RNQT15XG5hcmNoL2FybS9jb25maWdzL21veGFydF9kZWZjb25maWctMTE1LSMgQ09ORklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnOjExNjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL21veGFydF9kZWZjb25maWctMTE3LUNPTkZJR19UTVBGUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92NV9kZWZjb25maWc9MjY5PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjVfZGVmY29uZmlnOjI3MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y1X2RlZmNvbmZpZy0yNzEtQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnPTEyODM9Q09ORklHX1NUTTMyX1RJTUVSX0NOVD1tXG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y3X2RlZmNvbmZpZzoxMjg0OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnLTEyODUtQ09ORklHX0FVVE9GU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZz05Mz1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnOjk0OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWc6OTU6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnLTk2LUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y1X2RlZmNvbmZpZz0xNjk9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92NV9kZWZjb25maWc6MTcwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjVfZGVmY29uZmlnLTE3MS1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92N19kZWZjb25maWc9MTMwPUNPTkZJR19QSFlfTVZFQlVfQTM4WF9DT01QSFk9eVxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92N19kZWZjb25maWc6MTMxOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjdfZGVmY29uZmlnLTEzMi1DT05GSUdfSVNPOTY2MF9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9teHNfZGVmY29uZmlnPTEzNj1DT05GSUdfTlZNRU1fTVhTX09DT1RQPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXhzX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9teHNfZGVmY29uZmlnLTEzOC0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnPTExOD1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnOjExOTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnLTEyMC1DT05GSUdfRlVTRV9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMV9kZWZjb25maWc9MTg0PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnOjE4NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL29tYXAxX2RlZmNvbmZpZy0xODYtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnPTY4MT1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWc6NjgyOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDJwbHVzX2RlZmNvbmZpZzo2ODM6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnLTY4NC1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc9MTE3PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZzoxMjA6Q09ORklHX0VYVDRfRlM9bVxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZy0xMjEtQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZz01NzU9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnOjU3NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy01NzktQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZz0yNzg9Q09ORklHX0VYVDJfRlNfWEFUVFI9eVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZzoyNzk6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZy0yODAtQ09ORklHX0ZVU0VfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZz03OT1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3JwY19kZWZjb25maWc6ODA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9ycGNfZGVmY29uZmlnLTgxLUNPTkZJR19BVVRPRlNfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWc9NTQ9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZzo1NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWctNTgtQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnPTEwMz1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnOjEwNDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnLTEwNS1DT05GSUdfQVVUT0ZTX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3NhbWE1X2RlZmNvbmZpZz0yMjI9Q09ORklHX1BXTV9BVE1FTF9UQ0I9eVxuYXJjaC9hcm0vY29uZmlncy9zYW1hNV9kZWZjb25maWc6MjIzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTVfZGVmY29uZmlnLTIyNC1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTdfZGVmY29uZmlnPTIxND1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3NhbWE3X2RlZmNvbmZpZzoyMTU6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zYW1hN19kZWZjb25maWctMjE2LUNPTkZJR19GQU5PVElGWT15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWctMTM5LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3A3MDIxX2RlZmNvbmZpZz00MD1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XG5hcmNoL2FybS9jb25maWdzL3NwNzAyMV9kZWZjb25maWc6NDE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zcDcwMjFfZGVmY29uZmlnLTQyLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZz04NT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWc6ODY6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnOjg3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZy04OC1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZz02OD1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo2OTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo3MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZy03MS1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZz01ND1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzo1NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZz0xOTI9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6MTkzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnOjE5NDojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnLTE5NS1DT05GSUdfTVNET1NfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3RtMzJfZGVmY29uZmlnPTcxPUNPTkZJR19TVE0zMl9BREM9eVxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWc6NzI6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWctNzMtIyBDT05GSUdfRklMRV9MT0NLSU5HIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZz0xNjI9Q09ORklHX05WTUVNX1NVTlhJX1NJRD15XG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZzoxNjM6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zdW54aV9kZWZjb25maWctMTY0LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZz0zMTI9Q09ORklHX1BIWV9URUdSQV9YVVNCPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxMzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxNTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZy0zMTYtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy91ODUwMF9kZWZjb25maWc9MTc1PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdTg1MDBfZGVmY29uZmlnOjE3NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3U4NTAwX2RlZmNvbmZpZy0xNzctQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvdmV4cHJlc3NfZGVmY29uZmlnPTEyMj1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3ZleHByZXNzX2RlZmNvbmZpZzoxMjM6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy92ZXhwcmVzc19kZWZjb25maWctMTI0LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3ZmNjEwbTRfZGVmY29uZmlnPTM1PUNPTkZJR19NRkRfU1lTQ09OPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3ZmNjEwbTRfZGVmY29uZmlnLTM3LSMgQ09ORklHX1VTQl9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3MvdmY2MTBtNF9kZWZjb25maWc6Mzg6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy92ZjYxMG00X2RlZmNvbmZpZy0zOS0jIENPTkZJR19NSVNDX0ZJTEVTWVNURU1TIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL3Z0ODUwMF92Nl92N19kZWZjb25maWc9Nzk9Q09ORklHX0dFTkVSSUNfUEhZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdnQ4NTAwX3Y2X3Y3X2RlZmNvbmZpZzo4MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3Z0ODUwMF92Nl92N19kZWZjb25maWctODEtQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTE4OTg9Q09ORklHX0hURV9URUdSQTE5NF9URVNUPW1cbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6MTg5OTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE5MDA6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6MTkwMTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnLTE5MDItQ09ORklHX0JUUkZTX0ZTPW1cbi0tXG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWc9MzM9Q09ORklHX0dFTkVSSUNfUEhZPXlcbmFyY2gvY3NreS9jb25maWdzL2RlZmNvbmZpZzozNDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWctMzUtQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2hleGFnb24vY29uZmlncy9jb21ldF9kZWZjb25maWc9NDg9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjQ5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZzo1MDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjUxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZy01Mi1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9OTUwPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUxOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjk1MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTk1NC1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTk4MT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZzo5ODQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy05ODUtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnPTQwMz1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZzo0MDQ6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnLTQwNS1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnPTM1OD1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWc6MzU5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWctMzYwLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZz0zODE9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWc6MzgyOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZy0zODMtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnPTM1MD1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnLTM1Mi1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWc9MzYwPUNPTkZJR19EQVg9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnOjM2MTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWctMzYyLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc9Mzc5PUNPTkZJR19EQVg9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvbWFjX2RlZmNvbmZpZzozODA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvbWFjX2RlZmNvbmZpZy0zODEtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnPTQ2Nj1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZzo0Njc6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnLTQ2OC1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZz0zNTA9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWctMzUyLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnPTM1MT1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnOjM1MjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZy0zNTMtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvcTQwX2RlZmNvbmZpZz0zNjk9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnOjM3MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnLTM3MS1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZz04Mj1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4MzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4NDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc6ODU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWctODYtIyBDT05GSUdfRklMRV9MT0NLSU5HIGlzIG5vdCBzZXRcbi0tXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZz0zNDg9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZzozNDk6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWctMzUwLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZz0zNDg9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9zdW4zeF9kZWZjb25maWc6MzQ5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZy0zNTAtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvdmlydF9kZWZjb25maWc9NTU9Q09ORklHX1ZJUlRJT19JTlBVVD15XG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPXlcbi0tXG5hcmNoL21pY3JvYmxhemUvY29uZmlncy9tbXVfZGVmY29uZmlnPTc1PUNPTkZJR19VSU9fRE1FTV9HRU5JUlE9eVxuYXJjaC9taWNyb2JsYXplL2NvbmZpZ3MvbW11X2RlZmNvbmZpZzo3NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pY3JvYmxhemUvY29uZmlncy9tbXVfZGVmY29uZmlnLTc3LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc9MTM2PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM3OkNPTkZJR19FWFQ0X0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjEzOTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjE0MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnLTE0MS1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZz01Nz1DT05GSUdfVVNCX1NUT1JBR0U9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjU4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZzo1OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjYwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZy02MS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnPTE0MT1DT05GSUdfTU1DX1NESENJX1BMVEZNPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQyOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnOjE0NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnLTE0NS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZz0xMzY9Q09ORklHX1JBUz15XG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZzoxMzk6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWctMTQwLUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvY2kyMF9kZWZjb25maWc9MTY2PUNPTkZJR19OVk1FTV9KWjQ3ODBfRUZVU0U9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2kyMF9kZWZjb25maWc6MTY3OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2NpMjBfZGVmY29uZmlnLTE2OC0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnPTYxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2NvYmFsdF9kZWZjb25maWc6NjI6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZzo2MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZzo2NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnLTY1LUNPTkZJR19QUk9DX0tDT1JFPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jdTEwMDAtbmVvX2RlZmNvbmZpZz04OT1DT05GSUdfUEhZX0lOR0VOSUNfVVNCPXlcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnLTkxLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2N1MTgzMC1uZW9fZGVmY29uZmlnPTkyPUNPTkZJR19QSFlfSU5HRU5JQ19VU0I9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxODMwLW5lb19kZWZjb25maWc6OTM6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxODMwLW5lb19kZWZjb25maWctOTQtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGIxeHh4X2RlZmNvbmZpZz0xNjk9Q09ORklHX1JUQ19EUlZfQVUxWFhYPXlcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnOjE3MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnLTE3My1DT05GSUdfWEZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZz0xMzU9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc6MTM2OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEzNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnLTEzOS1DT05GSUdfSVNPOTY2MF9GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc9MTMxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnOjEzMjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZzoxMzM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnOjEzNDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZz0xMzE9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEzMjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTMzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTM0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZz04OT1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctOTAtIyBDT05GSUdfTlZNRU0gaXMgbm90IHNldFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkxOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo5MjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZy05NC1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnPTg4PUNPTkZJR19SRVNFVF9DT05UUk9MTEVSPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZy04OS0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjkxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnLTkzLUNPTkZJR19GU19FTkNSWVBUSU9OPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZz05Nj1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZy05Ny0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5ODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc6MTAwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnLTEwMS1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZz0xNzQ9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzU6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc6MTc3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWctMTc4LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2djdzBfZGVmY29uZmlnPTEzND1DT05GSUdfUFdNX0paNDc0MD15XG5hcmNoL21pcHMvY29uZmlncy9nY3cwX2RlZmNvbmZpZzoxMzU6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2N3MF9kZWZjb25maWctMTM2LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZz01NT1DT05GSUdfSElEX01PTlRFUkVZPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZy01Ny0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjU4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjU5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzo2MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZy02MS1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWc9MjMzPUNPTkZJR19FWFQyX0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZzoyMzU6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZy0yMzctQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc9MjcyPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI3MzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZzoyNzQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI3NTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZy0yNzYtQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc9NTE9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTI6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnOjU0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnLTU1LUNPTkZJR19RVU9UQT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc9MTQ0PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnOjE0NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnOjE0NzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZy0xNDgtQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc9OTA9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnLTk0LUNPTkZJR19RVU9UQT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWc9NzA9Q09ORklHX0VYVDJfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWc6NzE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWctNzItQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnPTIyNz1DT05GSUdfRVhUMl9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9sZW1vdGUyZl9kZWZjb25maWc6MjI4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZzoyMjk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZzoyMzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnLTIzMS1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnPTE0OD1DT05GSUdfTE9PTkdTT04xX0FQQl9ETUE9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWctMTUzLSMgQ09ORklHX05WTUVNIGlzIG5vdCBzZXRcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU0OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU1OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnLTE1Ni0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZz0yOTg9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6Mjk5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnOjMwMDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnLTMwMi1DT05GSUdfWEZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnPTM0OT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzozNTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZy0zNTMtQ09ORklHX1hGU19GUz15XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAyODMKCQkJCQkJCW91dHB1dDogMjEKCQkJCQkJCXRob3VnaHRzOiAzMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBldmFsdWF0aW5nIHRoaXM6CgoqKkluaXRpYWwgQ29uZmlndXJhdGlvbiBDaGVjazogRVhUNCBJbmxpbmUgRGF0YSoqCgpBbHJpZ2h0LCBzbyBgQ09ORklHX0VYVDRfRlNgIGlzIHRoZSBvYnZpb3VzIHN0YXJ0aW5nIHBvaW50LiBUaGF0JiMzOTtzIHRoZSBjb3JlIGV4dDQgZmlsZXN5c3RlbSBjb25maWd1cmF0aW9uLiBCdXQgdGhpcyBpcyBhYm91dCAqaW5saW5lKiBkYXRhLCB3aGljaCBoYXMgaXRzIG93biBudWFuY2VzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGFueSBkZXBlbmRlbmNpZXMgb3Igc3VwcG9ydGluZyBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIHNwZWNpZmljYWxseSBmb3IgaW5saW5lIGRhdGEgaGFuZGxpbmcgd2l0aGluIGV4dDQuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGEgbGl0dGxlIGRlZXBlciB0byBlbnN1cmUgZXZlcnl0aGluZyBpcyBzZXQgdXAgY29ycmVjdGx5IGZvciB0aGF0IGZlYXR1cmUuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWdzIGx1cmtpbmcgYXJvdW5kIHRoYXQgSSBzaG91bGQgY29uc2lkZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE2OjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0NPTkZJR19FWFQ0X0ZTXyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnPTE1Nz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnOjE1ODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9iY20yODM1X2RlZmNvbmZpZy0xNTktQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZz0yMzA9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWc6MjMxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZy0yMzItQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZz05OD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnOjk5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZy0xMDAtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZz0xMDY9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnOjEwNzojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZy0xMDgtQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZz00NDA9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWctNDQzLUNPTkZJR19RVU9UQT15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc9Mjg9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6Mjk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnOjMwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnLTMxLUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWc9MTU2PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZzoxNTc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZy0xNTgtQ09ORklHX09WRVJMQVlfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnPTIwNj1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2tleXN0b25lX2RlZmNvbmZpZzoyMDc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnLTIwOC1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWc9OTQ9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZzo5NTojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWctOTYtQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDJwbHVzX2RlZmNvbmZpZz02ODI9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnOjY4MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWctNjg0LUNPTkZJR19GQU5PVElGWT15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZz0xMTg9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZzoxMTk6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnLTEyMC1DT05GSUdfRVhUNF9GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnPTU3Nj1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy01NzktQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZz01NT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWctNTgtQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWc9ODY9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnOjg3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZy04OC1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZz02OT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo3MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZy03MS1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZz01NT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZz0xOTM9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6MTk0OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWctMTk1LUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy90ZWdyYV9kZWZjb25maWc9MzEzPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxNDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy90ZWdyYV9kZWZjb25maWc6MzE1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnLTMxNi0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTE4OTk9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzoxOTAwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE5MDE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZy0xOTAyLUNPTkZJR19CVFJGU19GUz1tXG4tLVxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnPTQ5PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZzo1MDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjUxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZy01Mi1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9OTUxPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjk1MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTk1NC1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTk4Mj1DT05GSUdfRVhUNF9GUz15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZzo5ODQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy05ODUtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc9ODM9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc6ODQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnOjg1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnLTg2LSMgQ09ORklHX0ZJTEVfTE9DS0lORyBpcyBub3Qgc2V0XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDRfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZzoxMzg6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM5OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWctMTQwLUNPTkZJR19FWFQ0X0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc9NTg9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjU5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc6NjA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnLTYxLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc9MTQyPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnOjE0NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnLTE0NS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZzoxMzk6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWctMTQwLUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZz02Mj1DT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnOjYzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnOjY0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2NvYmFsdF9kZWZjb25maWctNjUtQ09ORklHX1BST0NfS0NPUkU9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc9MTcwPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnOjE3MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnLTE3My1DT05GSUdfWEZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZz0xMzY9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc6MTM3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZzoxMzg6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWctMTM5LUNPTkZJR19JU085NjYwX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZz0xMzI9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTMzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZzoxMzQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWctMTM1LUNPTkZJR19JU085NjYwX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc9MTMyPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZzoxMzM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZzoxMzQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnLTEzNS1DT05GSUdfSVNPOTY2MF9GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnPTkxPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo5MjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZy05NC1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnPTkwPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZzo5MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjkyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZy05My1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc9OTg9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc6OTk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnOjEwMDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZy0xMDEtQ09ORklHX0ZTX0VOQ1JZUFRJT049eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc9MTc1PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc6MTc2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnOjE3NzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnLTE3OC1DT05GSUdfQVVUT0ZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZz01OD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzo1OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc6NjA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWctNjEtQ09ORklHX0ZTX0VOQ1JZUFRJT049eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnPTIzND1DT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZzoyMzU6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZy0yMzctQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc9MjczPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI3NDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc6Mjc1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnLTI3Ni1DT05GSUdfWEZTX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZz01Mj1DT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZzo1MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWctNTUtQ09ORklHX1FVT1RBPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZz0xNDU9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc6MTQ2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWctMTQ4LUNPTkZJR19YRlNfRlM9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnPTkxPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnOjkyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZzo5MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZy05NC1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZz0yMjg9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnOjIyOTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnOjIzMDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9sZW1vdGUyZl9kZWZjb25maWctMjMxLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc9MTU0PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU1OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnLTE1Ni0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZz0yOTk9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZzozMDE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWctMzAyLUNPTkZJR19YRlNfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc9MzUwPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc6MzUxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnLTM1My1DT05GSUdfWEZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXNtdnBfZGVmY29uZmlnPTE0OD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXNtdnBfZGVmY29uZmlnOjE0OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFzbXZwX2RlZmNvbmZpZzoxNTA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFzbXZwX2RlZmNvbmZpZy0xNTEtQ09ORklHX1hGU19GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbXR4MV9kZWZjb25maWc9NTUzPUNPTkZJR19FWFQ0X0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnOjU1NDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbXR4MV9kZWZjb25maWc6NTU1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnLTU1Ni1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL3BpYzMybXpkYV9kZWZjb25maWc9NjY9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvcGljMzJtemRhX2RlZmNvbmZpZzo2NzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvcGljMzJtemRhX2RlZmNvbmZpZzo2ODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9waWMzMm16ZGFfZGVmY29uZmlnLTY5LUNPTkZJR19BVVRPRlNfRlM9bVxuLS1cbmFyY2gvb3BlbnJpc2MvY29uZmlncy92aXJ0X2RlZmNvbmZpZz05Nz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL29wZW5yaXNjL2NvbmZpZ3MvdmlydF9kZWZjb25maWc6OTg6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvb3BlbnJpc2MvY29uZmlncy92aXJ0X2RlZmNvbmZpZy05OS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtMzJiaXRfZGVmY29uZmlnPTIzMz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtMzJiaXRfZGVmY29uZmlnOjIzNDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtMzJiaXRfZGVmY29uZmlnLTIzNS1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvcGFyaXNjL2NvbmZpZ3MvZ2VuZXJpYy02NGJpdF9kZWZjb25maWc9MjUyPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvcGFyaXNjL2NvbmZpZ3MvZ2VuZXJpYy02NGJpdF9kZWZjb25maWc6MjUzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcGFyaXNjL2NvbmZpZ3MvZ2VuZXJpYy02NGJpdF9kZWZjb25maWctMjU0LUNPTkZJR19YRlNfRlM9bVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9ha2Vib25vX2RlZmNvbmZpZz0xMDY9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2FrZWJvbm9fZGVmY29uZmlnOjEwNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2FrZWJvbm9fZGVmY29uZmlnOjEwODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvYWtlYm9ub19kZWZjb25maWctMTA5LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9jdXJyaXR1Y2tfZGVmY29uZmlnPTY2PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9jdXJyaXR1Y2tfZGVmY29uZmlnOjY3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvY3Vycml0dWNrX2RlZmNvbmZpZzo2ODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvY3Vycml0dWNrX2RlZmNvbmZpZy02OS1DT05GSUdfUFJPQ19LQ09SRT15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2ZzcDJfZGVmY29uZmlnPTk0PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9mc3AyX2RlZmNvbmZpZzo5NTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2ZzcDJfZGVmY29uZmlnOjk2OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9mc3AyX2RlZmNvbmZpZy05Ny1DT05GSUdfUFJPQ19LQ09SRT15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2lzczQ3Ni1zbXBfZGVmY29uZmlnPTUyPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9pc3M0NzYtc21wX2RlZmNvbmZpZzo1MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2lzczQ3Ni1zbXBfZGVmY29uZmlnOjU0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9pc3M0NzYtc21wX2RlZmNvbmZpZy01NS1DT05GSUdfUFJPQ19LQ09SRT15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L3NhbTQ0MGVwX2RlZmNvbmZpZz03OT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvc2FtNDQwZXBfZGVmY29uZmlnOjgwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvc2FtNDQwZXBfZGVmY29uZmlnLTgxLUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvZ2VfaW1wM2FfZGVmY29uZmlnPTE2Mz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L2dlX2ltcDNhX2RlZmNvbmZpZzoxNjQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvZ2VfaW1wM2FfZGVmY29uZmlnLTE2NS1DT05GSUdfRlVTRV9GUz15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvZzVfZGVmY29uZmlnPTIwMT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9nNV9kZWZjb25maWc6MjAyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9nNV9kZWZjb25maWc6MjAzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZy0yMDQtQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG1hYzMyX2RlZmNvbmZpZz0yNTY9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG1hYzMyX2RlZmNvbmZpZzoyNTc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWctMjU4LUNPTkZJR19BVVRPRlNfRlM9bVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3Bvd2VybnZfZGVmY29uZmlnPTI1Nz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZzoyNTg6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3Bvd2VybnZfZGVmY29uZmlnOjI1OTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZy0yNjAtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnPTMxNT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc6MzE2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc6MzE3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0X2RlZmNvbmZpZy0zMTgtQ09ORklHX1hGU19GUz15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRlX2RlZmNvbmZpZz0xNzI9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRlX2RlZmNvbmZpZzoxNzM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0ZV9kZWZjb25maWc6MTc0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0ZV9kZWZjb25maWctMTc1LUNPTkZJR19KRlNfRlM9eVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc9OTIwPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc6OTIxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnOjkyMjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnLTkyMy1DT05GSUdfSkJEMl9ERUJVRz15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvc2tpcm9vdF9kZWZjb25maWc9MjQ2PUNPTkZJR19FWFQ0X0ZTPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3NraXJvb3RfZGVmY29uZmlnOjI0NzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvc2tpcm9vdF9kZWZjb25maWc6MjQ4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzL3NraXJvb3RfZGVmY29uZmlnLTI0OS1DT05GSUdfWEZTX0ZTPW1cbi0tXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnPTI3OD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnOjI3OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZzoyODA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZy0yODEtQ09ORklHX0JUUkZTX0ZTPW1cbi0tXG5hcmNoL3MzOTAvY29uZmlncy9kZWJ1Z19kZWZjb25maWc9NjUyPUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZzo2NTM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZzo2NTQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnLTY1NS1DT05GSUdfSkJEMl9ERUJVRz15XG4tLVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnPTY0Mj1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3MzOTAvY29uZmlncy9kZWZjb25maWc6NjQzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3MzOTAvY29uZmlncy9kZWZjb25maWc6NjQ0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZy02NDUtQ09ORklHX0pCRDJfREVCVUc9eVxuLS1cbmFyY2gvc2gvY29uZmlncy9hcDMyNXJ4YV9kZWZjb25maWc9ODQ9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9zaC9jb25maWdzL2FwMzI1cnhhX2RlZmNvbmZpZzo4NTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9zaC9jb25maWdzL2FwMzI1cnhhX2RlZmNvbmZpZzo4NjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3NoL2NvbmZpZ3MvYXAzMjVyeGFfZGVmY29uZmlnLTg3LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL3NoL2NvbmZpZ3MvZWNvdmVjMjRfZGVmY29uZmlnPTExMD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3NoL2NvbmZpZ3MvZWNvdmVjMjRfZGVmY29uZmlnOjExMTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9zaC9jb25maWdzL2Vjb3ZlYzI0X2RlZmNvbmZpZzoxMTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9zaC9jb25maWdzL2Vjb3ZlYzI0X2RlZmNvbmZpZy0xMTMtQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvc2gvY29uZmlncy9tYWdpY3BhbmVscjJfZGVmY29uZmlnPTY3PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvc2gvY29uZmlncy9tYWdpY3BhbmVscjJfZGVmY29uZmlnOjY4OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9zaC9jb25maWdzL21hZ2ljcGFuZWxyMl9kZWZjb25maWctNjktIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9zaC9jb25maWdzL3Nkazc3ODBfZGVmY29uZmlnPTEwNT1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3NoL2NvbmZpZ3Mvc2RrNzc4MF9kZWZjb25maWc6MTA2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3NoL2NvbmZpZ3Mvc2RrNzc4MF9kZWZjb25maWctMTA3LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvc2gvY29uZmlncy9zZTc3MjRfZGVmY29uZmlnPTExMD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3NoL2NvbmZpZ3Mvc2U3NzI0X2RlZmNvbmZpZzoxMTE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvc2gvY29uZmlncy9zZTc3MjRfZGVmY29uZmlnOjExMjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3NoL2NvbmZpZ3Mvc2U3NzI0X2RlZmNvbmZpZy0xMTMtQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvc2gvY29uZmlncy9zaDAzX2RlZmNvbmZpZz02MD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3NoL2NvbmZpZ3Mvc2gwM19kZWZjb25maWc6NjE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvc2gvY29uZmlncy9zaDAzX2RlZmNvbmZpZy02Mi1DT05GSUdfQVVUT0ZTX0ZTPXlcbi0tXG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnPTIxOD1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnOjIxOTojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWctMjIwLUNPTkZJR19YRlNfRlM9bVxuLS1cbmFyY2gvc3BhcmMvY29uZmlncy9zcGFyYzY0X2RlZmNvbmZpZz0xODg9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9zcGFyYy9jb25maWdzL3NwYXJjNjRfZGVmY29uZmlnOjE4OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9zcGFyYy9jb25maWdzL3NwYXJjNjRfZGVmY29uZmlnOjE5MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL3NwYXJjL2NvbmZpZ3Mvc3BhcmM2NF9kZWZjb25maWctMTkxLUNPTkZJR19QUk9DX0tDT1JFPXlcbi0tXG5hcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnPTIzMz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnOjIzNDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC94ODYvY29uZmlncy9pMzg2X2RlZmNvbmZpZzoyMzU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC94ODYvY29uZmlncy9pMzg2X2RlZmNvbmZpZy0yMzYtQ09ORklHX1FVT1RBPXlcbi0tXG5hcmNoL3g4Ni9jb25maWdzL3g4Nl82NF9kZWZjb25maWc9MjM0PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZzoyMzU6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZzoyMzY6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC94ODYvY29uZmlncy94ODZfNjRfZGVmY29uZmlnLTIzNy1DT05GSUdfUVVPVEE9eVxuLS1cbmZzL2V4dDQvTWFrZWZpbGU9OD1leHQ0LXlcdDo9IGJhbGxvYy5vIGJpdG1hcC5vIGJsb2NrX3ZhbGlkaXR5Lm8gZGlyLm8gZXh0NF9qYmQyLm8gZXh0ZW50cy5vIFxcXG4tLVxuZnMvZXh0NC9NYWtlZmlsZS0xNC1cbmZzL2V4dDQvTWFrZWZpbGU6MTU6ZXh0NC0kKENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTClcdCYjNDM7PSBhY2wub1xuZnMvZXh0NC9NYWtlZmlsZToxNjpleHQ0LSQoQ09ORklHX0VYVDRfRlNfU0VDVVJJVFkpXHRcdCYjNDM7PSB4YXR0cl9zZWN1cml0eS5vXG5mcy9leHQ0L01ha2VmaWxlLTE3LWV4dDQtdGVzdC1vYmpzXHRcdFx0XHQmIzQzOz0gaW5vZGUtdGVzdC5vIG1iYWxsb2MtdGVzdC5vIFxcXG4tLVxuZnMvZXh0NC9hY2wuaD0zOT1zdGF0aWMgaW5saW5lIGludCBleHQ0X2FjbF9jb3VudChzaXplX3Qgc2l6ZSlcbi0tXG5mcy9leHQ0L2FjbC5oLTU0LVxuZnMvZXh0NC9hY2wuaDo1NTojaWZkZWYgQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMXG5mcy9leHQ0L2FjbC5oLTU2LVxuLS1cbmZzL2V4dDQvYWNsLmg9NjE9ZXh0ZXJuIGludCBleHQ0X2luaXRfYWNsKGhhbmRsZV90ICosIHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgaW5vZGUgKik7XG5mcy9leHQ0L2FjbC5oLTYyLVxuZnMvZXh0NC9hY2wuaDo2MzojZWxzZSAgLyogQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMICovXG5mcy9leHQ0L2FjbC5oLTY0LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3NjaGVkLmhcdTAwM2Vcbi0tXG5mcy9leHQ0L2FjbC5oPTY5PWV4dDRfaW5pdF9hY2woaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGlub2RlICpkaXIpXG4tLVxuZnMvZXh0NC9hY2wuaC03Mi19XG5mcy9leHQ0L2FjbC5oOjczOiNlbmRpZiAgLyogQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMICovXG5mcy9leHQ0L2FjbC5oLTc0LVxuLS1cbmZzL2V4dDQvaWFsbG9jLmM9ODc2PXN0YXRpYyBpbnQgZXh0NF94YXR0cl9jcmVkaXRzX2Zvcl9uZXdfaW5vZGUoc3RydWN0IGlub2RlICpkaXIsIG1vZGVfdCBtb2RlLFxuLS1cbmZzL2V4dDQvaWFsbG9jLmMtODgwLVx0aW50IG5ibG9ja3MgPSAwO1xuZnMvZXh0NC9pYWxsb2MuYzo4ODE6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTFxuZnMvZXh0NC9pYWxsb2MuYy04ODItXHRzdHJ1Y3QgcG9zaXhfYWNsICpwID0gZ2V0X2lub2RlX2FjbChkaXIsIEFDTF9UWVBFX0RFRkFVTFQpO1xuLS1cbmZzL2V4dDQvc3VwZXIuYz0xODc5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW91bnRfb3B0cyB7XG4tLVxuZnMvZXh0NC9zdXBlci5jLTE5MjItXHR7T3B0X3VzZXJfeGF0dHIsIEVYVDRfTU9VTlRfWEFUVFJfVVNFUiwgTU9QVF9TRVR9LFxuZnMvZXh0NC9zdXBlci5jOjE5MjM6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTFxuZnMvZXh0NC9zdXBlci5jLTE5MjQtXHR7T3B0X2FjbCwgRVhUNF9NT1VOVF9QT1NJWF9BQ0wsIE1PUFRfU0VUfSxcbi0tXG5mcy9leHQ0L3N1cGVyLmM9NDM4OD1zdGF0aWMgdm9pZCBleHQ0X3NldF9kZWZfb3B0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLFxuLS1cbmZzL2V4dDQvc3VwZXIuYy00NDAzLVx0c2V0X29wdChzYiwgWEFUVFJfVVNFUik7XG5mcy9leHQ0L3N1cGVyLmM6NDQwNDojaWZkZWYgQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMXG5mcy9leHQ0L3N1cGVyLmMtNDQwNS1cdHNldF9vcHQoc2IsIFBPU0lYX0FDTCk7XG4tLVxuZnMvZXh0NC94YXR0ci5jPTg4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciAqIGNvbnN0IGV4dDRfeGF0dHJfaGFuZGxlcl9tYXBbXSA9IHtcbmZzL2V4dDQveGF0dHIuYy04OS1cdFtFWFQ0X1hBVFRSX0lOREVYX1VTRVJdXHRcdCAgICAgPSBcdTAwMjZleHQ0X3hhdHRyX3VzZXJfaGFuZGxlcixcbmZzL2V4dDQveGF0dHIuYzo5MDojaWZkZWYgQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMXG5mcy9leHQ0L3hhdHRyLmMtOTEtXHRbRVhUNF9YQVRUUl9JTkRFWF9QT1NJWF9BQ0xfQUNDRVNTXSAgPSBcdTAwMjZub3BfcG9zaXhfYWNsX2FjY2Vzcyxcbi0tXG5mcy9leHQ0L3hhdHRyLmMtOTQtXHRbRVhUNF9YQVRUUl9JTkRFWF9UUlVTVEVEXVx0ICAgICA9IFx1MDAyNmV4dDRfeGF0dHJfdHJ1c3RlZF9oYW5kbGVyLFxuZnMvZXh0NC94YXR0ci5jOjk1OiNpZmRlZiBDT05GSUdfRVhUNF9GU19TRUNVUklUWVxuZnMvZXh0NC94YXR0ci5jLTk2LVx0W0VYVDRfWEFUVFJfSU5ERVhfU0VDVVJJVFldXHQgICAgID0gXHUwMDI2ZXh0NF94YXR0cl9zZWN1cml0eV9oYW5kbGVyLFxuLS1cbmZzL2V4dDQveGF0dHIuYz0xMDE9Y29uc3Qgc3RydWN0IHhhdHRyX2hhbmRsZXIgKiBjb25zdCBleHQ0X3hhdHRyX2hhbmRsZXJzW10gPSB7XG4tLVxuZnMvZXh0NC94YXR0ci5jLTEwMy1cdFx1MDAyNmV4dDRfeGF0dHJfdHJ1c3RlZF9oYW5kbGVyLFxuZnMvZXh0NC94YXR0ci5jOjEwNDojaWZkZWYgQ09ORklHX0VYVDRfRlNfU0VDVVJJVFlcbmZzL2V4dDQveGF0dHIuYy0xMDUtXHRcdTAwMjZleHQ0X3hhdHRyX3NlY3VyaXR5X2hhbmRsZXIsXG4tLVxuZnMvZXh0NC94YXR0ci5oPTIxMz1fX3hhdHRyX2NoZWNrX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2hlYWRlciAqaGVhZGVyLFxuLS1cbmZzL2V4dDQveGF0dHIuaC0yMTgtXG5mcy9leHQ0L3hhdHRyLmg6MjE5OiNpZmRlZiBDT05GSUdfRVhUNF9GU19TRUNVUklUWVxuZnMvZXh0NC94YXR0ci5oLTIyMC1leHRlcm4gaW50IGV4dDRfaW5pdF9zZWN1cml0eShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLS1cbnNjcmlwdHMvc2VsaW51eC9tZHAvbWRwLmM9Mzg9aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSlcbi0tXG5zY3JpcHRzL3NlbGludXgvbWRwL21kcC5jLTE1OS0jZW5kaWZcbnNjcmlwdHMvc2VsaW51eC9tZHAvbWRwLmM6MTYwOiNpZmRlZiBDT05GSUdfRVhUNF9GU19TRUNVUklUWVxuc2NyaXB0cy9zZWxpbnV4L21kcC9tZHAuYy0xNjEtI2lmZGVmIENPTkZJR19FWFQ0X1VTRV9GT1JfRVhUMlxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2ND00Nj1DT05GSUdfRVhQRVJUPXlcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2NDo0NzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5hYXJjaDY0OjQ4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2NC00OS1DT05GSUdfRVhUNF9GUz15XG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5wcGM2NGVsPTI4PUNPTkZJR19FWFBFUlQ9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5wcGM2NGVsOjI5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnBwYzY0ZWw6MzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5wcGM2NGVsLTMxLUNPTkZJR19FWFQ0X0ZTPXlcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnJpc2N2NjQ9MjU9Q09ORklHX0VYVDRfRlM9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5yaXNjdjY0OjI2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnJpc2N2NjQ6Mjc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5yaXNjdjY0LTI4LUNPTkZJR19GUkFNRV9QT0lOVEVSPXlcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnMzOTB4PTM1PUNPTkZJR19FWFQ0X0ZTPXlcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuczM5MHg6MzY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuczM5MHg6Mzc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5zMzkweC0zOC1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcueDg2XzY0PTU5PUNPTkZJR19FWFQ0X0ZTPXlcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcueDg2XzY0OjYwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLng4Nl82NDo2MTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLng4Nl82NC02Mi1DT05GSUdfRkFJTF9GVU5DVElPTj15XG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvaGlkL2NvbmZpZy5jb21tb249NTk9Q09ORklHX0VYUEVSVD15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9oaWQvY29uZmlnLmNvbW1vbjo2MDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvaGlkL2NvbmZpZy5jb21tb246NjE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvaGlkL2NvbmZpZy5jb21tb24tNjItQ09ORklHX0VYVDRfRlM9eVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNjo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTEwNgoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDMxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKklubGluZSBEYXRhIENvbmZpZ3VyYXRpb24gLSBJbml0aWFsIEFzc2Vzc21lbnQgJmFtcDsgVmVyaWZpY2F0aW9uKioKClJpZ2h0LCBzbywgc3RyYWlnaHQgb2ZmIHRoZSBiYXQsIG5vIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHNlZW1zIHRvIGV4aXN0IGRlZGljYXRlZCB0byBpbmxpbmUgZGF0YS4gVGhlIGNvZGUgbWVudGlvbnMgYEVYVDRfRlNgLCB3aGljaCBJJiMzOTttIHRha2luZyBhcyB0aGUgcHJpbWFyeSBpbmRpY2F0b3IuIEhvd2V2ZXIsIGl0JiMzOTtzIGFsd2F5cyBiZXN0IHRvIGJlIG1ldGljdWxvdXMsIGFuZCBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgaGlkZGVuIGRlcGVuZGVuY2llcyBvciBpbmRpcmVjdCBjb25maWd1cmF0aW9ucyBjYW4gb2Z0ZW4gY2F0Y2ggeW91IG91dC4gR2l2ZW4gbXkgZGVlcCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBpbnRyaWNhY2llcyBvZiBgZXh0NGAsIEkgbmVlZCB0byBpbW1lZGlhdGVseSB2ZXJpZnkgdGhpcyBpbml0aWFsIGFzc3VtcHRpb24uCgpTbywgSSBuZWVkIHRvIG1ldGhvZGljYWxseSBjaGVjayBmb3IgYW55IG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IG1pZ2h0IGluZmx1ZW5jZSBpbmxpbmUgZGF0YSBiZWhhdmlvdXIsIGV2ZW4gaWYgdGhleSBhcmVuJiMzOTt0IGV4cGxpY2l0bHkgbmFtZWQuIElzIHRoZXJlIHNvbWV0aGluZyB0aWVkIHRvIGJsb2NrIHNpemVzLCBqb3VybmFsaW5nLCBvciBjb21wcmVzc2lvbiB0aGF0IGNvdWxkIGluYWR2ZXJ0ZW50bHkgaW50ZXJhY3Qgd2l0aCBpbmxpbmUgZGF0YSBoYW5kbGluZz8gUGVyaGFwcyB0aGVyZSYjMzk7cyBhbiBvYnNjdXJlIGJ1aWxkIGZsYWcgb3Iga2VybmVsIHBhcmFtZXRlciB0aGF0IEkmIzM5O20gb3Zlcmxvb2tpbmc/IFRoaXMgaXMgYWJvdXQgZW5zdXJpbmcgY29tcGxldGUgY2VydGFpbnR5IGJlZm9yZSBtb3ZpbmcgZm9yd2FyZCB3aXRoIGFueSBmdXJ0aGVyIGFuYWx5c2lzIG9yIG1vZGlmaWNhdGlvbnMuIEkmIzM5O2xsIHN0YXJ0IGJ5IHJldmlld2luZyB0aGUga2VybmVsIGNvbmZpZyBvcHRpb25zLCBhbmQgdGhlbiBjaGVjayBhbnkgYnVpbGQgc2NyaXB0cyB3aGljaCBtYXkgYWZmZWN0IGV4dDQgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX0VYVDQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDEzMTMgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZz04OD1DT05GSUdfTU1DX0RXPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZy04OS0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZzo5MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWctOTEtQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc9ODY9Q09ORklHX01NQ19EVz15XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWctODctIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc6ODg6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnLTg5LUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZz04OD1DT05GSUdfTU1DX0RXPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWctODktIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWctOTEtQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnPTc5PUNPTkZJR19USV9BREMxMDhTMTAyPXlcbmFyY2gvYXJjL2NvbmZpZ3MvaHNka19kZWZjb25maWc6ODA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZy04MS1DT05GSUdfVkZBVF9GUz15XG4tLVxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWc9NzU9Q09ORklHX1VTQl9TRVJJQUw9eVxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWctNzYtIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZzo3NzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZzo3ODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZy03OS1DT05GSUdfTVNET1NfRlM9eVxuLS1cbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZz04Mj1DT05GSUdfVUlPX1BEUlZfR0VOSVJRPXlcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZy04My0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZzo4NDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWctODUtQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNV9kZWZjb25maWc9MjY0PUNPTkZJR19QRUNJX0FTUEVFRD15XG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNV9kZWZjb25maWc6MjY1OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZy0yNjYtQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnPTIwNz1DT05GSUdfUFdNX0FUTUVMX1RDQj15XG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnOjIwODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnLTIwOS1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc9MTk2PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc6MTk3OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWctMTk4LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvYmNtMjgzNV9kZWZjb25maWc9MTU2PUNPTkZJR19FWFQyX0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnOjE1NzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnOjE1ODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9iY20yODM1X2RlZmNvbmZpZy0xNTktQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZz0yMjk9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWc6MjMwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvZGF2aW5jaV9hbGxfZGVmY29uZmlnOjIzMTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWctMjMyLUNPTkZJR19YRlNfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvZG92ZV9kZWZjb25maWc9OTc9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZzo5ODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnOjk5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZy0xMDAtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZz0xMDU9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnOjEwNjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWc6MTA3OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnLTEwOC1DT05GSUdfVkZBVF9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9leHlub3NfZGVmY29uZmlnPTMzMj1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWc6MzMzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvZXh5bm9zX2RlZmNvbmZpZy0zMzQtQ09ORklHX0FVVE9GU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9oaXNpX2RlZmNvbmZpZz03Nz1DT05GSUdfUEhZX0hJWDVIRDJfU0FUQT15XG5hcmNoL2FybS9jb25maWdzL2hpc2lfZGVmY29uZmlnOjc4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaGlzaV9kZWZjb25maWctNzktQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2lteF92NF92NV9kZWZjb25maWc9MTU1PUNPTkZJR19QV01fSU1YMjc9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjRfdjVfZGVmY29uZmlnOjE1NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2lteF92NF92NV9kZWZjb25maWctMTU3LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZz00Mzk9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZy00NDMtQ09ORklHX1FVT1RBPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZz0yNz1DT05GSUdfQ0xLX0lNWFJUMTA1MD15XG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZzoyODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZzoyOTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6MzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWctMzEtQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZz0xNTU9Q09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZzoxNTY6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnOjE1NzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnLTE1OC1DT05GSUdfT1ZFUkxBWV9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWc9MjA1PUNPTkZJR19SRVNFVF9USV9TWVNDT049bVxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWc6MjA2OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnOjIwNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWctMjA4LUNPTkZJR19GQU5PVElGWT15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9taWxiZWF1dF9tMTB2X2RlZmNvbmZpZz04MT1DT05GSUdfTUVNT1JZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWctODItIyBDT05GSUdfQVJNX1BNVSBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL21pbGJlYXV0X20xMHZfZGVmY29uZmlnOjgzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWctODQtQ09ORklHX0FVVE9GU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tbXAyX2RlZmNvbmZpZz01NT1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL21tcDJfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbW1wMl9kZWZjb25maWctNTctIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnPTExND1DT05GSUdfTU9YQVJUX0RNQT15XG5hcmNoL2FybS9jb25maWdzL21veGFydF9kZWZjb25maWctMTE1LSMgQ09ORklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnOjExNjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL21veGFydF9kZWZjb25maWctMTE3LUNPTkZJR19UTVBGUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92NV9kZWZjb25maWc9MjY5PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjVfZGVmY29uZmlnOjI3MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y1X2RlZmNvbmZpZy0yNzEtQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnPTEyODM9Q09ORklHX1NUTTMyX1RJTUVSX0NOVD1tXG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y3X2RlZmNvbmZpZzoxMjg0OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnLTEyODUtQ09ORklHX0FVVE9GU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZz05Mz1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnOjk0OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWc6OTU6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnLTk2LUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y1X2RlZmNvbmZpZz0xNjk9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92NV9kZWZjb25maWc6MTcwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjVfZGVmY29uZmlnLTE3MS1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92N19kZWZjb25maWc9MTMwPUNPTkZJR19QSFlfTVZFQlVfQTM4WF9DT01QSFk9eVxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92N19kZWZjb25maWc6MTMxOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjdfZGVmY29uZmlnLTEzMi1DT05GSUdfSVNPOTY2MF9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9teHNfZGVmY29uZmlnPTEzNj1DT05GSUdfTlZNRU1fTVhTX09DT1RQPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXhzX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9teHNfZGVmY29uZmlnLTEzOC0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnPTExOD1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnOjExOTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnLTEyMC1DT05GSUdfRlVTRV9GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMV9kZWZjb25maWc9MTg0PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnOjE4NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL29tYXAxX2RlZmNvbmZpZy0xODYtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnPTY4MT1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWc6NjgyOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDJwbHVzX2RlZmNvbmZpZzo2ODM6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnLTY4NC1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc9MTE3PUNPTkZJR19FWFQyX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZzoxMjA6Q09ORklHX0VYVDRfRlM9bVxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZy0xMjEtQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZz01NzU9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnOjU3NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy01NzktQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZz0yNzg9Q09ORklHX0VYVDJfRlNfWEFUVFI9eVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZzoyNzk6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZy0yODAtQ09ORklHX0ZVU0VfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZz03OT1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3JwY19kZWZjb25maWc6ODA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9ycGNfZGVmY29uZmlnLTgxLUNPTkZJR19BVVRPRlNfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWc9NTQ9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZzo1NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWctNTgtQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnPTEwMz1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnOjEwNDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnLTEwNS1DT05GSUdfQVVUT0ZTX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3NhbWE1X2RlZmNvbmZpZz0yMjI9Q09ORklHX1BXTV9BVE1FTF9UQ0I9eVxuYXJjaC9hcm0vY29uZmlncy9zYW1hNV9kZWZjb25maWc6MjIzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTVfZGVmY29uZmlnLTIyNC1DT05GSUdfRkFOT1RJRlk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTdfZGVmY29uZmlnPTIxND1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3NhbWE3X2RlZmNvbmZpZzoyMTU6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zYW1hN19kZWZjb25maWctMjE2LUNPTkZJR19GQU5PVElGWT15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWctMTM5LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3A3MDIxX2RlZmNvbmZpZz00MD1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XG5hcmNoL2FybS9jb25maWdzL3NwNzAyMV9kZWZjb25maWc6NDE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zcDcwMjFfZGVmY29uZmlnLTQyLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZz04NT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWc6ODY6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnOjg3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZy04OC1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZz02OD1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo2OTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo3MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZy03MS1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZz01ND1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzo1NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZz0xOTI9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6MTkzOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnOjE5NDojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnLTE5NS1DT05GSUdfTVNET1NfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3RtMzJfZGVmY29uZmlnPTcxPUNPTkZJR19TVE0zMl9BREM9eVxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWc6NzI6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWctNzMtIyBDT05GSUdfRklMRV9MT0NLSU5HIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZz0xNjI9Q09ORklHX05WTUVNX1NVTlhJX1NJRD15XG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZzoxNjM6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9zdW54aV9kZWZjb25maWctMTY0LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZz0zMTI9Q09ORklHX1BIWV9URUdSQV9YVVNCPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxMzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxNTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZy0zMTYtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy91ODUwMF9kZWZjb25maWc9MTc1PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdTg1MDBfZGVmY29uZmlnOjE3NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3U4NTAwX2RlZmNvbmZpZy0xNzctQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvdmV4cHJlc3NfZGVmY29uZmlnPTEyMj1DT05GSUdfRVhUMl9GUz15XG5hcmNoL2FybS9jb25maWdzL3ZleHByZXNzX2RlZmNvbmZpZzoxMjM6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy92ZXhwcmVzc19kZWZjb25maWctMTI0LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3ZmNjEwbTRfZGVmY29uZmlnPTM1PUNPTkZJR19NRkRfU1lTQ09OPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3ZmNjEwbTRfZGVmY29uZmlnLTM3LSMgQ09ORklHX1VTQl9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3MvdmY2MTBtNF9kZWZjb25maWc6Mzg6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy92ZjYxMG00X2RlZmNvbmZpZy0zOS0jIENPTkZJR19NSVNDX0ZJTEVTWVNURU1TIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL3Z0ODUwMF92Nl92N19kZWZjb25maWc9Nzk9Q09ORklHX0dFTkVSSUNfUEhZPXlcbmFyY2gvYXJtL2NvbmZpZ3MvdnQ4NTAwX3Y2X3Y3X2RlZmNvbmZpZzo4MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybS9jb25maWdzL3Z0ODUwMF92Nl92N19kZWZjb25maWctODEtQ09ORklHX1RNUEZTPXlcbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTE4OTg9Q09ORklHX0hURV9URUdSQTE5NF9URVNUPW1cbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6MTg5OTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE5MDA6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6MTkwMTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnLTE5MDItQ09ORklHX0JUUkZTX0ZTPW1cbi0tXG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWc9MzM9Q09ORklHX0dFTkVSSUNfUEhZPXlcbmFyY2gvY3NreS9jb25maWdzL2RlZmNvbmZpZzozNDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWctMzUtQ09ORklHX0ZBTk9USUZZPXlcbi0tXG5hcmNoL2hleGFnb24vY29uZmlncy9jb21ldF9kZWZjb25maWc9NDg9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjQ5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZzo1MDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjUxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZy01Mi1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9OTUwPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUxOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjk1MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTk1NC1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTk4MT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZzo5ODQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy05ODUtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnPTQwMz1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZzo0MDQ6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnLTQwNS1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnPTM1OD1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWc6MzU5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWctMzYwLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZz0zODE9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWc6MzgyOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZy0zODMtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnPTM1MD1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnLTM1Mi1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWc9MzYwPUNPTkZJR19EQVg9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnOjM2MTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWctMzYyLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc9Mzc5PUNPTkZJR19EQVg9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvbWFjX2RlZmNvbmZpZzozODA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvbWFjX2RlZmNvbmZpZy0zODEtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnPTQ2Nj1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZzo0Njc6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnLTQ2OC1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZz0zNTA9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWctMzUyLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnPTM1MT1DT05GSUdfREFYPW1cbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnOjM1MjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZy0zNTMtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvcTQwX2RlZmNvbmZpZz0zNjk9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnOjM3MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnLTM3MS1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZz04Mj1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4MzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4NDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc6ODU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWctODYtIyBDT05GSUdfRklMRV9MT0NLSU5HIGlzIG5vdCBzZXRcbi0tXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZz0zNDg9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZzozNDk6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWctMzUwLUNPTkZJR19KRlNfRlM9bVxuLS1cbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZz0zNDg9Q09ORklHX0RBWD1tXG5hcmNoL202OGsvY29uZmlncy9zdW4zeF9kZWZjb25maWc6MzQ5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZy0zNTAtQ09ORklHX0pGU19GUz1tXG4tLVxuYXJjaC9tNjhrL2NvbmZpZ3MvdmlydF9kZWZjb25maWc9NTU9Q09ORklHX1ZJUlRJT19JTlBVVD15XG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPXlcbi0tXG5hcmNoL21pY3JvYmxhemUvY29uZmlncy9tbXVfZGVmY29uZmlnPTc1PUNPTkZJR19VSU9fRE1FTV9HRU5JUlE9eVxuYXJjaC9taWNyb2JsYXplL2NvbmZpZ3MvbW11X2RlZmNvbmZpZzo3NjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pY3JvYmxhemUvY29uZmlncy9tbXVfZGVmY29uZmlnLTc3LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc9MTM2PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM3OkNPTkZJR19FWFQ0X0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjEzOTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjE0MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnLTE0MS1DT05GSUdfUVVPVEE9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZz01Nz1DT05GSUdfVVNCX1NUT1JBR0U9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjU4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZzo1OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjYwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZy02MS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnPTE0MT1DT05GSUdfTU1DX1NESENJX1BMVEZNPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQyOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnOjE0NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnLTE0NS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZz0xMzY9Q09ORklHX1JBUz15XG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZzoxMzk6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWctMTQwLUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvY2kyMF9kZWZjb25maWc9MTY2PUNPTkZJR19OVk1FTV9KWjQ3ODBfRUZVU0U9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY2kyMF9kZWZjb25maWc6MTY3OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2NpMjBfZGVmY29uZmlnLTE2OC0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnPTYxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2NvYmFsdF9kZWZjb25maWc6NjI6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZzo2MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZzo2NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnLTY1LUNPTkZJR19QUk9DX0tDT1JFPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jdTEwMDAtbmVvX2RlZmNvbmZpZz04OT1DT05GSUdfUEhZX0lOR0VOSUNfVVNCPXlcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnLTkxLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2N1MTgzMC1uZW9fZGVmY29uZmlnPTkyPUNPTkZJR19QSFlfSU5HRU5JQ19VU0I9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxODMwLW5lb19kZWZjb25maWc6OTM6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxODMwLW5lb19kZWZjb25maWctOTQtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGIxeHh4X2RlZmNvbmZpZz0xNjk9Q09ORklHX1JUQ19EUlZfQVUxWFhYPXlcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcwOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnOjE3MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnLTE3My1DT05GSUdfWEZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZz0xMzU9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc6MTM2OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEzNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnLTEzOS1DT05GSUdfSVNPOTY2MF9GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc9MTMxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnOjEzMjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZzoxMzM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnOjEzNDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZz0xMzE9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEzMjpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTMzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTM0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZz04OT1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctOTAtIyBDT05GSUdfTlZNRU0gaXMgbm90IHNldFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkxOkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo5MjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZy05NC1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnPTg4PUNPTkZJR19SRVNFVF9DT05UUk9MTEVSPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZy04OS0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTA6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjkxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnLTkzLUNPTkZJR19GU19FTkNSWVBUSU9OPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZz05Nj1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZy05Ny0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5ODpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc6MTAwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnLTEwMS1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZz0xNzQ9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzU6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc6MTc3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWctMTc4LUNPTkZJR19BVVRPRlNfRlM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2djdzBfZGVmY29uZmlnPTEzND1DT05GSUdfUFdNX0paNDc0MD15XG5hcmNoL21pcHMvY29uZmlncy9nY3cwX2RlZmNvbmZpZzoxMzU6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2N3MF9kZWZjb25maWctMTM2LUNPTkZJR19WRkFUX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZz01NT1DT05GSUdfSElEX01PTlRFUkVZPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZy01Ny0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjU4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjU5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzo2MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZy02MS1DT05GSUdfRlNfRU5DUllQVElPTj15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWc9MjMzPUNPTkZJR19FWFQyX0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZzoyMzU6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZy0yMzctQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc9MjcyPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI3MzpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZzoyNzQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI3NTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZy0yNzYtQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc9NTE9Q09ORklHX0VYVDJfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTI6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnOjU0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnLTU1LUNPTkZJR19RVU9UQT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc9MTQ0PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnOjE0NTpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnOjE0NzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZy0xNDgtQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc9OTA9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnLTk0LUNPTkZJR19RVU9UQT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWc9NzA9Q09ORklHX0VYVDJfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWc6NzE6Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWctNzItQ09ORklHX1hGU19GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnPTIyNz1DT05GSUdfRVhUMl9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9sZW1vdGUyZl9kZWZjb25maWc6MjI4OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZzoyMjk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZzoyMzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnLTIzMS1DT05GSUdfSkZTX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnPTE0OD1DT05GSUdfTE9PTkdTT04xX0FQQl9ETUE9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWctMTUzLSMgQ09ORklHX05WTUVNIGlzIG5vdCBzZXRcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU0OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU1OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnLTE1Ni0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZz0yOTg9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6Mjk5OkNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnOjMwMDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnLTMwMi1DT05GSUdfWEZTX0ZTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnPTM0OT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MDpDT05GSUdfRVhUNF9GUz15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzozNTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZy0zNTMtQ09ORklHX1hGU19GUz15XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTY6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjVtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI4MTkKCQkJCQkJCW91dHB1dDogMTMzCgkJCQkJCQl0aG91Z2h0czogNTA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRVhUNCBJbmxpbmUgRGF0YSBDb252ZXJzaW9uIFBhdGNoKioKCk9rYXksIHNvIHdlJiMzOTtyZSB3b3JraW5nIHdpdGggYEVYVDRfRlNgLCBnb29kLiBMZXQmIzM5O3MgZGlnIGludG8gdGhpcyBwYXRjaC4gVGhlIGtleSB0aGluZyBJIHNlZSBpcyB0aGF0IHRoZXkmIzM5O3JlIHJlcGxhY2luZyB0aGUgb2xkIGBleHQ0X3Jlc3RvcmVfaW5saW5lX2RhdGFgIGZ1bmN0aW9uIHdpdGggYSBuZXcgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gVGhpcyBpcyBhIHByZXR0eSBzaWduaWZpY2FudCBzaGlmdC4gSW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBleGlzdGluZyBibG9jayBtYXBwaW5nIG1lY2hhbmlzbXMsIGl0IGxvb2tzIGxpa2UgdGhleSYjMzk7cmUgbm93IGNhbGxpbmcgYGV4dDRfbWJfbmV3X2Jsb2Nrc2AgZGlyZWN0bHkgd2l0aGluIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYCB0byBhbGxvY2F0ZSB0aGUgbmV3IGJsb2NrLiBUaGV5IGFyZSBieXBhc3NpbmcgdGhlIHN0YW5kYXJkIGBleHQ0X21hcF9ibG9ja3NgIGNhbGwuCgpUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgcmVmYWN0b3JpbmcuIE15IGludHVpdGlvbiBpcyB0aGF0IHRoaXMgcHJvYmFibHkgYnlwYXNzZXMgc29tZSBvdmVyaGVhZC4gSSB3aWxsIG5lZWQgdG8gbG9vayBpbnRvIGhvdyB0aGlzIG1pZ2h0IGFmZmVjdCBibG9jayBhbGxvY2F0aW9uLCBwYXJ0aWN1bGFybHkgYXJvdW5kIGZyYWdtZW50ZWQgZmlsZXMuIEkgYWxzbyBuZWVkIHRvIHVuZGVyc3RhbmQgYW55IHNpZGUgZWZmZWN0cy4gVGhpcyBjaGFuZ2UgaGFzIHRoZSBwb3RlbnRpYWwgdG8gaW5mbHVlbmNlIGhvdyBpbmxpbmUgZGF0YSB0cmFuc2l0aW9ucyB0byByZWd1bGFyIGJsb2NrcywgYW5kIG15IGd1ZXNzIGlzIHRoYXQgaXMgdGhlIGludGVudC4gVGhlIGtleSBmdW5jdGlvbnMgdG8ga2VlcCBhbiBleWUgb24gYXJlIG5vdyBjbGVhcmx5IGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGFuZCBwb3RlbnRpYWxseSBgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeWAsIGFzIHRoZXNlIGFyZSB0aGUgcG9pbnRzIG9mIGludGVncmF0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIGFzc2VzcyB0aGUgaW1wYWN0IG9uIHBlcmZvcm1hbmNlIGFuZCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIGNhdXNlZCBieSB0aGlzIGNoYW5nZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEmIzM0OywKICAgICYjMzQ7ZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gaG93IGV4dDQgY29udmVydHMgaW5saW5lIGRhdGEgdG8gYmxvY2tzLCByZXBsYWNpbmcgdGhlIHVzZSBvZiBgZXh0NF9tYXBfYmxvY2tzYCB3aXRoIGRpcmVjdCBibG9jayBhbGxvY2F0aW9uIHZpYSBgZXh0NF9tYl9uZXdfYmxvY2tzYCBhbmQgaW50cm9kdWNpbmcgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gVGhpcyBtb2RpZmllcyBjb3JlIHJlYWNoYWJsZSBsb2dpYyBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCB3aGljaCBpcyB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFWFQ0X0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhJiMzNDssCiAgICAmIzM0O2V4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGhvdyBleHQ0IGNvbnZlcnRzIGlubGluZSBkYXRhIHRvIGJsb2NrcywgcmVwbGFjaW5nIHRoZSB1c2Ugb2YgYGV4dDRfbWFwX2Jsb2Nrc2Agd2l0aCBkaXJlY3QgYmxvY2sgYWxsb2NhdGlvbiB2aWEgYGV4dDRfbWJfbmV3X2Jsb2Nrc2AgYW5kIGludHJvZHVjaW5nIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AuIFRoaXMgbW9kaWZpZXMgY29yZSByZWFjaGFibGUgbG9naWMgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgd2hpY2ggaXMgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDU8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgY29udmVyc2lvbiBvZiBleHQ0IGlubGluZSBkYXRhIHRvIGEgZGVkaWNhdGVkIGJsb2NrIHRvIHByZXZlbnQgZGF0YSBsb3NzIG9uIGFsbG9jYXRpb24gZmFpbHVyZS4gSXQgYWxsb2NhdGVzIGEgbmV3IGJsb2NrLCB6ZXJvZXMgaXQsIGNvcGllcyB0aGUgaW5saW5lIGRhdGEsIGFuZCB0aGVuIHVwZGF0ZXMgdGhlIGlub2RlLiBBbGwgbmV3bHkgYWxsb2NhdGVkIG1lbW9yeSAoYGlub2RlX2J1ZmAsIGBidWZgLCBgZGF0YV9iaC1cdTAwM2ViX2RhdGFgKSBpcyBmdWxseSBpbml0aWFsaXplZCB2aWEgYG1lbWNweWAgZnJvbSBleGlzdGluZyBpbml0aWFsaXplZCBkYXRhIG9yIGBtZW1zZXRgIHRvIHplcm8uIFN0YWNrIHZhcmlhYmxlcyAoYGFyYCwgYGlzYCwgYGlgLCBgbmV3ZXhgKSBhcmUgZnVsbHkgemVyby1pbml0aWFsaXplZCBlaXRoZXIgdmlhIGBtZW1zZXRgIG9yIGJyYWNlLWVuY2xvc2VkIGluaXRpYWxpemVycy4gVGhlcmUgaXMgbm8gZXhwb3N1cmUgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdG8gdXNlciBzcGFjZSBvciBkaXNrLCBhbmQgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgaXMgdXNlZCBpbiBjb250cm9sIGZsb3cuIEFueSBwb3RlbnRpYWwgbWVtb3J5IGVycm9ycyAobGlrZSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIG9yIHVzZS1hZnRlci1mcmVlKSB3b3VsZCBiZSBjYXVnaHQgYnkgS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDEyNGM3ZWE2Y2RkMDJhYzRlMGFhNjEwNWVkMDU1MjE0ZGYxODE1OWEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEF1ZyAyMiAxNjo1MTowOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaW5saW5lLmMgYi9mcy9leHQ0L2lubGluZS5jCmluZGV4IDgwNDVlNGZmMjcwYzcuLjUwNzEwNmM3MmU4MmYgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvaW5saW5lLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvZXh0NC9pbmxpbmUuYwpAQCAtMTQsNiAmIzQzOzE0LDcgQEAKICNpbmNsdWRlICYjMzQ7ZXh0NC5oJiMzNDsKICNpbmNsdWRlICYjMzQ7eGF0dHIuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3RydW5jYXRlLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7ZXh0NF9leHRlbnRzLmgmIzM0OwogCiAjZGVmaW5lIEVYVDRfWEFUVFJfU1lTVEVNX0RBVEEJJiMzNDtkYXRhJiMzNDsKICNkZWZpbmUgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRQkoKHNpemVvZihfX2xlMzIpICogRVhUNF9OX0JMT0NLUykpCkBAIC0xMDcwLDIxICYjNDM7MTA3MSwxMTUgQEAgc3RhdGljIGludCBleHQ0X3VwZGF0ZV9pbmxpbmVfZGlyKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqZGlyLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBleHQ0X3Jlc3RvcmVfaW5saW5lX2RhdGEoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKLQkJCQkgICAgIHN0cnVjdCBleHQ0X2lsb2MgKmlsb2MsCi0JCQkJICAgICB2b2lkICpidWYsIGludCBpbmxpbmVfc2l6ZSkKJiM0MztzdGF0aWMgaW50IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfZnNibGtfdCBibG9jaywKJiM0MzsJCQkJCXVuc2lnbmVkIGludCBsZW4sIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCiB7Ci0JaW50IHJldDsKJiM0MzsJc3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpOwomIzQzOwlzdHJ1Y3QgZXh0NF94YXR0cl9pYm9keV9maW5kIGlzID0gewomIzQzOwkJLnMgPSB7IC5ub3RfZm91bmQgPSAwLCB9LAomIzQzOwl9OwomIzQzOwlzdHJ1Y3QgZXh0NF94YXR0cl9pbmZvIGkgPSB7CiYjNDM7CQkubmFtZV9pbmRleCA9IEVYVDRfWEFUVFJfSU5ERVhfU1lTVEVNLAomIzQzOwkJLm5hbWUgPSBFWFQ0X1hBVFRSX1NZU1RFTV9EQVRBLAomIzQzOwkJLnZhbHVlID0gTlVMTCwKJiM0MzsJCS52YWx1ZV9sZW4gPSAwLAomIzQzOwl9OwomIzQzOwlpbnQgZXJyb3I7CiYjNDM7CWludCBpbm9kZV9zaXplOwomIzQzOwl2b2lkICppbm9kZV9idWYgPSBOVUxMOwomIzQzOwlzdHJ1Y3QgZXh0NF9pbm9kZSAqcmF3X2lub2RlOwogCi0JcmV0ID0gZXh0NF9jcmVhdGVfaW5saW5lX2RhdGEoaGFuZGxlLCBpbm9kZSwgaW5saW5lX3NpemUpOwotCWlmIChyZXQpIHsKLQkJZXh0NF9tc2coaW5vZGUtJmd0O2lfc2IsIEtFUk5fRU1FUkcsCi0JCQkmIzM0O2Vycm9yIHJlc3RvcmluZyBpbmxpbmVfZGF0YSBmb3IgaW5vZGUgLS0gcG90ZW50aWFsIGRhdGEgbG9zcyEgKGlub2RlICVsbHUsIGVycm9yICVkKSYjMzQ7LAotCQkJaW5vZGUtJmd0O2lfaW5vLCByZXQpOwotCQlyZXR1cm47CiYjNDM7CWlub2RlX3NpemUgPSBFWFQ0X0lOT0RFX1NJWkUoaW5vZGUtJmd0O2lfc2IpOwomIzQzOwlpbm9kZV9idWYgPSBrbWFsbG9jKGlub2RlX3NpemUsIEdGUF9OT0ZTKTsKJiM0MzsJaWYgKCFpbm9kZV9idWYpIHsKJiM0MzsJCWVycm9yID0gLUVOT01FTTsKJiM0MzsJCWRvd25fd3JpdGUoJmFtcDtlaS0mZ3Q7aV9kYXRhX3NlbSk7CiYjNDM7CQlleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpOwomIzQzOwkJZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpOwomIzQzOwkJdXBfd3JpdGUoJmFtcDtlaS0mZ3Q7aV9kYXRhX3NlbSk7CiYjNDM7CQlyZXR1cm4gZXJyb3I7CiAJfQotCWV4dDRfd3JpdGVfaW5saW5lX2RhdGEoaW5vZGUsIGlsb2MsIGJ1ZiwgMCwgaW5saW5lX3NpemUpOwotCWV4dDRfc2V0X2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7CiYjNDM7CWRvd25fd3JpdGUoJmFtcDtlaS0mZ3Q7aV9kYXRhX3NlbSk7CiYjNDM7CWVycm9yID0gZXh0NF9nZXRfaW5vZGVfbG9jKGlub2RlLCAmYW1wO2lzLmlsb2MpOwomIzQzOwlpZiAoZXJyb3IpIHsKJiM0MzsJCWV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7CiYjNDM7CQlleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7CiYjNDM7CQl1cF93cml0ZSgmYW1wO2VpLSZndDtpX2RhdGFfc2VtKTsKJiM0MzsJCWtmcmVlKGlub2RlX2J1Zik7CiYjNDM7CQlyZXR1cm4gZXJyb3I7CiYjNDM7CX0KJiM0MzsJcmF3X2lub2RlID0gZXh0NF9yYXdfaW5vZGUoJmFtcDtpcy5pbG9jKTsKJiM0MzsJQlVGRkVSX1RSQUNFKGlzLmlsb2MuYmgsICYjMzQ7Z2V0X3dyaXRlX2FjY2VzcyYjMzQ7KTsKJiM0MzsJZXJyb3IgPSBleHQ0X2pvdXJuYWxfZ2V0X3dyaXRlX2FjY2VzcyhoYW5kbGUsIGlub2RlLSZndDtpX3NiLCBpcy5pbG9jLmJoLCBFWFQ0X0pUUl9OT05FKTsKJiM0MzsJaWYgKGVycm9yKSB7CiYjNDM7CQlleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpOwomIzQzOwkJZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpOwomIzQzOwkJZ290byBvdXQ7CiYjNDM7CX0KJiM0MzsJbWVtY3B5KGlub2RlX2J1ZiwgKHZvaWQgKilyYXdfaW5vZGUsIGlub2RlX3NpemUpOwomIzQzOwltZW1zZXQoKHZvaWQgKilyYXdfaW5vZGUtJmd0O2lfYmxvY2ssIDAsIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpOwomIzQzOwltZW1zZXQoZWktJmd0O2lfZGF0YSwgMCwgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSk7CiYjNDM7CWlmIChleHQ0X2hhc19mZWF0dXJlX2V4dGVudHMoaW5vZGUtJmd0O2lfc2IpICZhbXA7JmFtcDsKJiM0MzsJCShTX0lTRElSKGlub2RlLSZndDtpX21vZGUpIHx8IFNfSVNSRUcoaW5vZGUtJmd0O2lfbW9kZSkgfHwgU19JU0xOSyhpbm9kZS0mZ3Q7aV9tb2RlKSkpIHsKJiM0MzsJCWV4dDRfc2V0X2lub2RlX2ZsYWcoaW5vZGUsIEVYVDRfSU5PREVfRVhURU5UUyk7CiYjNDM7CQlleHQ0X2V4dF90cmVlX2luaXQoaGFuZGxlLCBpbm9kZSk7CiYjNDM7CQlzdHJ1Y3QgZXh0NF9leHRfcGF0aCAqcGF0aCA9IGV4dDRfZmluZF9leHRlbnQoaW5vZGUsIDAsIE5VTEwsIDApOwomIzQzOwomIzQzOwkJaWYgKElTX0VSUihwYXRoKSkgewomIzQzOwkJCWVycm9yID0gUFRSX0VSUihwYXRoKTsKJiM0MzsJCQlnb3RvIHJlY292ZXJ5OwomIzQzOwkJfQomIzQzOwkJc3RydWN0IGV4dDRfZXh0ZW50IG5ld2V4OwomIzQzOwomIzQzOwkJbmV3ZXguZWVfYmxvY2sgPSBjcHVfdG9fbGUzMigwKTsKJiM0MzsJCW5ld2V4LmVlX2xlbiA9IGNwdV90b19sZTE2KDEpOwomIzQzOwkJZXh0NF9leHRfc3RvcmVfcGJsb2NrKCZhbXA7bmV3ZXgsIGJsb2NrKTsKJiM0MzsJCXBhdGggPSBleHQ0X2V4dF9pbnNlcnRfZXh0ZW50KGhhbmRsZSwgaW5vZGUsIHBhdGgsICZhbXA7bmV3ZXgsIDApOwomIzQzOwkJaWYgKElTX0VSUihwYXRoKSkgewomIzQzOwkJCWVycm9yID0gUFRSX0VSUihwYXRoKTsKJiM0MzsJCQlpZiAoZXJyb3IgPT0gLUVEUVVPVCB8fCBlcnJvciA9PSAtRU5PU1BDKSB7CiYjNDM7CQkJCWdvdG8gcmVjb3Zlcnk7CiYjNDM7CQkJfSBlbHNlIHsKJiM0MzsJCQkJZXh0NF9mb3JnZXQoaGFuZGxlLCAwLCBpbm9kZSwgYmgsIGJsb2NrKTsKJiM0MzsJCQkJZ290byBub2ZyZWU7CiYjNDM7CQkJfQomIzQzOwkJfSBlbHNlIHsKJiM0MzsJCQlleHQ0X2ZyZWVfZXh0X3BhdGgocGF0aCk7CiYjNDM7CQl9CiYjNDM7CX0gZWxzZSB7CiYjNDM7CQlFWFQ0X0koaW5vZGUpLSZndDtpX2RhdGFbMF0gPSBjcHVfdG9fbGUzMihibG9jayk7CiYjNDM7CX0KJiM0MzsJZXJyb3IgPSBleHQ0X3hhdHRyX2lib2R5X2ZpbmQoaW5vZGUsICZhbXA7aSwgJmFtcDtpcyk7CiYjNDM7CWlmIChlcnJvcikKJiM0MzsJCWdvdG8gcmVjb3Zlcnk7CiYjNDM7CWlmICghaXMucy5ub3RfZm91bmQpCiYjNDM7CQllcnJvciA9IGV4dDRfeGF0dHJfaWJvZHlfc2V0KGhhbmRsZSwgaW5vZGUsICZhbXA7aSwgJmFtcDtpcyk7CiYjNDM7cmVjb3Zlcnk6CiYjNDM7CWlmIChlcnJvcikgewomIzQzOwkJZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTsKJiM0MzsJCWV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTsKJiM0Mztub2ZyZWU6CiYjNDM7CQltZW1jcHkoKHZvaWQgKilyYXdfaW5vZGUsIGlub2RlX2J1ZiwgaW5vZGVfc2l6ZSk7CiYjNDM7CQltZW1jcHkoZWktJmd0O2lfZGF0YSwgcmF3X2lub2RlLSZndDtpX2Jsb2NrLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTsKJiM0MzsJCWV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRTKTsKJiM0MzsJfSBlbHNlIHsKJiM0MzsJCWV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9JTkxJTkVfREFUQSk7CiYjNDM7CQlnZXRfYmgoaXMuaWxvYy5iaCk7CiYjNDM7CQllcnJvciA9IGV4dDRfbWFya19pbG9jX2RpcnR5KGhhbmRsZSwgaW5vZGUsICZhbXA7aXMuaWxvYyk7CiYjNDM7CQlFWFQ0X0koaW5vZGUpLSZndDtpX2lubGluZV9vZmYgPSAwOwomIzQzOwkJRVhUNF9JKGlub2RlKS0mZ3Q7aV9pbmxpbmVfc2l6ZSA9IDA7CiYjNDM7CQlleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7CiYjNDM7CQlpZiAoU19JU0RJUihpbm9kZS0mZ3Q7aV9tb2RlKSkgewomIzQzOwkJCWlfc2l6ZV93cml0ZShpbm9kZSwgaW5vZGUtJmd0O2lfc2ItJmd0O3NfYmxvY2tzaXplKTsKJiM0MzsJCQlFWFQ0X0koaW5vZGUpLSZndDtpX2Rpc2tzaXplID0gaW5vZGUtJmd0O2lfc2ItJmd0O3NfYmxvY2tzaXplOwomIzQzOwkJfQomIzQzOwkJYnJlbHNlKGJoKTsKJiM0MzsJfQomIzQzO291dDoKJiM0MzsJYnJlbHNlKGlzLmlsb2MuYmgpOwomIzQzOwl1cF93cml0ZSgmYW1wO2VpLSZndDtpX2RhdGFfc2VtKTsKJiM0MzsJa2ZyZWUoaW5vZGVfYnVmKTsKJiM0MzsJcmV0dXJuIGVycm9yOwogfQogCiBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSwKQEAgLTEwOTQsOCAmIzQzOzExODksMTEgQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsCiAJaW50IGVycm9yOwogCXZvaWQgKmJ1ZiA9IE5VTEw7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpkYXRhX2JoID0gTlVMTDsKLQlzdHJ1Y3QgZXh0NF9tYXBfYmxvY2tzIG1hcDsKIAlpbnQgaW5saW5lX3NpemU7CiYjNDM7CWV4dDRfZnNibGtfdCBuZXdibG9jayA9IDA7CiYjNDM7CXN0cnVjdCBleHQ0X2FsbG9jYXRpb25fcmVxdWVzdCBhcjsKJiM0MzsJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihpbm9kZS0mZ3Q7aV9zYik7CiYjNDM7CXVuc2lnbmVkIGludCBhbGxvY2F0ZWRfYmxvY2s7CiAKIAlpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTsKIAlidWYgPSBrbWFsbG9jKGlubGluZV9zaXplLCBHRlBfTk9GUyk7CkBAIC0xMTIwLDI1ICYjNDM7MTIxOCwyMiBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSwKIAkJCWdvdG8gb3V0OwogCX0KIAotCWVycm9yID0gZXh0NF9kZXN0cm95X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGlub2RlKTsKLQlpZiAoZXJyb3IpCi0JCWdvdG8gb3V0OwotCi0JbWFwLm1fbGJsayA9IDA7Ci0JbWFwLm1fbGVuID0gMTsKLQltYXAubV9mbGFncyA9IDA7Ci0JZXJyb3IgPSBleHQ0X21hcF9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgJmFtcDttYXAsIEVYVDRfR0VUX0JMT0NLU19DUkVBVEUpOwomIzQzOwltZW1zZXQoJmFtcDthciwgMCwgc2l6ZW9mKGFyKSk7CiYjNDM7CWFyLmlub2RlID0gaW5vZGU7CiYjNDM7CWFyLmxvZ2ljYWwgPSAwOwomIzQzOwlhci5sZW4gPSAxOwomIzQzOwlpZiAoU19JU1JFRyhpbm9kZS0mZ3Q7aV9tb2RlKSkKJiM0MzsJCWFyLmZsYWdzID0gRVhUNF9NQl9ISU5UX0RBVEE7CiYjNDM7CWVsc2UKJiM0MzsJCWFyLmZsYWdzID0gMDsKJiM0MzsJbmV3YmxvY2sgPSBleHQ0X21iX25ld19ibG9ja3MoaGFuZGxlLCAmYW1wO2FyLCAmYW1wO2Vycm9yKTsKIAlpZiAoZXJyb3IgJmx0OyAwKQotCQlnb3RvIG91dF9yZXN0b3JlOwotCWlmICghKG1hcC5tX2ZsYWdzICZhbXA7IEVYVDRfTUFQX01BUFBFRCkpIHsKLQkJZXJyb3IgPSAtRUlPOwotCQlnb3RvIG91dF9yZXN0b3JlOwotCX0KLQotCWRhdGFfYmggPSBzYl9nZXRibGsoaW5vZGUtJmd0O2lfc2IsIG1hcC5tX3BibGspOwomIzQzOwkJZ290byBvdXQ7CiYjNDM7CWFsbG9jYXRlZF9ibG9jayA9IEVYVDRfQzJCKHNiaSwgYXIubGVuKTsKJiM0MzsJZGF0YV9iaCA9IHNiX2dldGJsayhpbm9kZS0mZ3Q7aV9zYiwgbmV3YmxvY2spOwogCWlmICghZGF0YV9iaCkgewogCQllcnJvciA9IC1FTk9NRU07Ci0JCWdvdG8gb3V0X3Jlc3RvcmU7CiYjNDM7CQlnb3RvIG91dF9iaDsKIAl9CiAKIAlsb2NrX2J1ZmZlcihkYXRhX2JoKTsKQEAgLTExNDcsNyAmIzQzOzEyNDIsNyBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSwKIAlpZiAoZXJyb3IpIHsKIAkJdW5sb2NrX2J1ZmZlcihkYXRhX2JoKTsKIAkJZXJyb3IgPSAtRUlPOwotCQlnb3RvIG91dF9yZXN0b3JlOwomIzQzOwkJZ290byBvdXRfYmg7CiAJfQogCW1lbXNldChkYXRhX2JoLSZndDtiX2RhdGEsIDAsIGlub2RlLSZndDtpX3NiLSZndDtzX2Jsb2Nrc2l6ZSk7CiAKQEAgLTExNTksMjQgJiM0MzsxMjU0LDI4IEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLAogCQkJCQkJICAgaW5vZGUsIGRhdGFfYmgpOwogCX0gZWxzZSB7CiAJCXVubG9ja19idWZmZXIoZGF0YV9iaCk7Ci0JCWlub2RlLSZndDtpX3NpemUgPSBpbm9kZS0mZ3Q7aV9zYi0mZ3Q7c19ibG9ja3NpemU7Ci0JCWlfc2l6ZV93cml0ZShpbm9kZSwgaW5vZGUtJmd0O2lfc2ItJmd0O3NfYmxvY2tzaXplKTsKLQkJRVhUNF9JKGlub2RlKS0mZ3Q7aV9kaXNrc2l6ZSA9IGlub2RlLSZndDtpX3NiLSZndDtzX2Jsb2Nrc2l6ZTsKLQogCQllcnJvciA9IGV4dDRfaW5pdF9kaXJibG9jayhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLAogCQkJICBsZTMyX3RvX2NwdSgoKHN0cnVjdCBleHQ0X2Rpcl9lbnRyeV8yICopYnVmKS0mZ3Q7aW5vZGUpLAogCQkJICBidWYgJiM0MzsgRVhUNF9JTkxJTkVfRE9URE9UX1NJWkUsCiAJCQkgIGlubGluZV9zaXplIC0gRVhUNF9JTkxJTkVfRE9URE9UX1NJWkUpOwotCQlpZiAoIWVycm9yKQotCQkJZXJyb3IgPSBleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBpbm9kZSk7CiAJfQomIzQzO291dF9iaDoKJiM0MzsJaWYgKGVycm9yKSB7CiYjNDM7CQlpbnQgZmxhZ3MgPSAwOwogCi1vdXRfcmVzdG9yZToKLQlpZiAoZXJyb3IpCi0JCWV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YShoYW5kbGUsIGlub2RlLCBpbG9jLCBidWYsIGlubGluZV9zaXplKTsKJiM0MzsJCWlmIChkYXRhX2JoKQomIzQzOwkJCWZsYWdzIHw9IEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUOwomIzQzOwkJc3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpOwogCiYjNDM7CQlkb3duX3dyaXRlKCZhbXA7ZWktJmd0O2lfZGF0YV9zZW0pOwomIzQzOwkJZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTsKJiM0MzsJCWV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgZGF0YV9iaCwgbmV3YmxvY2ssIGFsbG9jYXRlZF9ibG9jaywgZmxhZ3MpOwomIzQzOwkJdXBfd3JpdGUoJmFtcDtlaS0mZ3Q7aV9kYXRhX3NlbSk7CiYjNDM7CX0gZWxzZSB7CiYjNDM7CQllcnJvciA9IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZSwgaW5vZGUsCiYjNDM7CQkJCW5ld2Jsb2NrLCBhbGxvY2F0ZWRfYmxvY2ssIGRhdGFfYmgpOwomIzQzOwl9CiBvdXQ6Ci0JYnJlbHNlKGRhdGFfYmgpOwogCWtmcmVlKGJ1Zik7CiAJcmV0dXJuIGVycm9yOwogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA3NgoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDE0NzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJbmxpbmUgRGF0YSBDb252ZXJzaW9uIFBhdGNoIGluIGV4dDQqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgZnMvZXh0NC9pbmxpbmUuY2AgYW5kIGlzIGZ1bmRhbWVudGFsbHkgcmV3b3JraW5nIGhvdyBpbmxpbmUgZGF0YSBnZXRzIGNvbnZlcnRlZCBpbnRvIGEgYmxvY2sgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbS4gTXkgaW5pdGlhbCByZWFkIHRlbGxzIG1lIHRoYXQgYGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YWAgaXMgZ29uZSwgcmVwbGFjZWQgd2l0aCBgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2tgLCBhbmQgdGhlIGNvcmUgY29udmVyc2lvbiBsb2dpYyBpcyBub3cgaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBMZXQmIzM5O3MgZGlnIGluLgoKVGhlIG5ldyBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AgdXNlcyBgZXh0NF9tYl9uZXdfYmxvY2tzYCB0byBncmFiIGEgbmV3IGJsb2NrLCB3aGljaCBpcyBhIGRlcGFydHVyZSBmcm9tIGBleHQ0X21hcF9ibG9ja3NgLiBUaGVuIGl0IGNhbGxzIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AsIHdoaWNoIHNlZW1zIHRvIGJlIHRoZSBjb3JlIG9mIHRoZSBkYXRhIG1pZ3JhdGlvbi4gIE15IGZpcnN0IGNvbmNlcm4sIGFzIGFsd2F5cyB3aXRoIHRoZXNlIGNoYW5nZXMsIGlzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LgoKU3BlY2lmaWNhbGx5LCBpbiBgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2tgLCBJIHNlZSBgaW5vZGVfYnVmID0ga21hbGxvYyhpbm9kZV9zaXplLCBHRlBfTk9GUyk7YCBhbmQgdGhlbiBhIGBtZW1jcHlgIGZyb20gYHJhd19pbm9kZWAgaW50byBpdC4gIGBpbm9kZV9idWZgIGlzIGEgYmFja3VwIGJ1ZmZlciwgc28gSSYjMzk7bSBpbW1lZGlhdGVseSBsb29raW5nIGZvciBhbnkgY2FzZXMgd2hlcmUgaXQgY291bGQgbGVhayB1bmluaXRpYWxpemVkIGRhdGEuICBJdCYjMzk7cyBhbGxvY2F0ZWQgd2l0aCBga21hbGxvY2AsIHdoaWNoIG1lYW5zIGl0ICpzdGFydHMqIHVuaW5pdGlhbGl6ZWQsIGJ1dCB0aGUgYG1lbWNweWAgaW5zdGFudGx5IG92ZXJ3cml0ZXMgaXQgd2l0aCB0aGUgY29udGVudHMgb2YgdGhlIGByYXdfaW5vZGVgLiBBbnkgZmFpbHVyZSByZXN0b3JlcyBmcm9tIHRoaXMgYmFja3VwIHNvIGl0IGxvb2tzIG9rYXkuCgpUaGVuLCB0aGVyZSYjMzk7cyBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AgYWdhaW4uIEl0IGFsbG9jYXRlcyBgYnVmYCB3aXRoIGBrbWFsbG9jKGlubGluZV9zaXplLCBHRlBfTk9GUylgIGFuZCByZWFkcyB0aGUgaW5saW5lIGRhdGEgaW50byBpdC4gVGhlbiBhIG5ldyBibG9jayBgZGF0YV9iaGAgaXMgYWxsb2NhdGVkLiBUaGUgY3J1Y2lhbCBwYXJ0IGhlcmUgaXMgYG1lbXNldChkYXRhX2JoLSZndDtiX2RhdGEsIDAsIGlub2RlLSZndDtpX3NiLSZndDtzX2Jsb2Nrc2l6ZSk7YCDigJMgdGhpcyAqc2hvdWxkKiBmdWxseSBpbml0aWFsaXplIHRoZSBuZXcgYmxvY2suICBUaGUgY29udGVudHMgb2YgYGJ1ZmAgYXJlIHRoZW4gY29waWVkIHRvIHRoZSBibG9jaywgd2hpY2ggaXMgc2FmZS4KCk5vdywgYmFjayB0byBgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2tgIGFuZCBjaGVja2luZyBmb3IgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5LgpUaGUgYG1lbWNweShpbm9kZV9idWYsICh2b2lkICopcmF3X2lub2RlLCBpbm9kZV9zaXplKTtgIGlzIHRoZSBrZXkuIFRoZW4gemVybyBvdXQgYHJhd19pbm9kZS0mZ3Q7aV9ibG9ja2AgYW5kIGBlaS0mZ3Q7aV9kYXRhYCwgd2hpY2ggc2VlbXMgdG8gYmUgc2FmZSwgYnV04oCmIGlzIGBpbm9kZV9zaXplYCAqZXZlciogbGFyZ2VyIHRoYW4gdGhlIGFjdHVhbCBvbi1kaXNrIGlub2RlIHNpemU/CmBFWFQ0X0lOT0RFX1NJWkUoaW5vZGUtJmd0O2lfc2IpYCBnaXZlcyB0aGUgKm9uLWRpc2sqIGlub2RlIHNpemUsIGFuZCBgZXh0NF9yYXdfaW5vZGUoKWAgcmV0cmlldmVzIHRoZSBpbm9kZSBmcm9tIHRoZSBidWZmZXIgaGVhZC4gVGhlIHNpemUgb2YgdGhlIGlub2RlIGluIHRoZSBidWZmZXIgaXMgYWx3YXlzIGd1YXJhbnRlZWQgdG8gYmUgY29ycmVjdCBzaW5jZSB0aGUgYmxvY2sgaXMgcmVhZC4gVGhlIGJ1ZmZlciBoZWFkIGNvbnRhaW5zIHRoZSBjb3JyZWN0IHNpemUgb2YgdGhlIG9uLWRpc2sgaW5vZGUgc28gdGhpcyBzZWVtcyBzYWZlLgoKV2hhdCBhYm91dCBgcmF3X2lub2RlYCBjb250YWluaW5nIHVuaW5pdGlhbGl6ZWQgZGF0YT8gS01TQU4gdHJhY2tzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGJ1dCBmcm9tIGFsbG9jYXRpb25zLCByZWFkaW5nIGZyb20gZGlzayAoYmxvY2sgZGV2aWNlKSBpcyBjb25zaWRlcmVkIGluaXRpYWxpemVkLgoKTG9va2luZyBhdCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AsIGBleHQ0X21iX25ld19ibG9ja3NgIHNlZW1zIGxpa2UgYW4gYWxsb2NhdGlvbiBjYWxsLiBUaGlzIHNlZW1zIHRvIGJlIGEgbG9naWMgYnVnIGZpeCBvciBhIHJlZmFjdG9yaW5nLiBUaGUgb2xkIGNvZGUgZmlyc3QgZGVzdHJveWVkIHRoZSBpbmxpbmUgZGF0YSBhbmQgdGhlbiB0cmllZCBtYXBwaW5nIG5ldyBibG9ja3MsIGlmIGl0IGZhaWxlZCB0aGVuIHRoZSBjb2RlIHVzZWQgYGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YWAgYW5kIHRoYXQgY291bGQgZmFpbCBhbmQgY2F1c2UgZGF0YSBsb3NzLiBUaGUgbmV3IGNvZGUgYWxsb2NhdGVzIHRoZSBibG9jaywgdGhlbiBtb2RpZmllcyB0aGUgaW5vZGUgc28gaW4gY2FzZSBvZiBmYWlsdXJlIHdlIGNhbiByZXN0b3JlIHRoZSBpbm9kZSBmcm9tIGBpbm9kZV9idWZgLgoKVGhpcyBwYXRjaCBpcyBmcm9tIGBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdgLiAgTXkgaW1tZWRpYXRlIGNvbmNlcm4gaXMgdXNlci1zcGFjZSBleHBvc3VyZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeS4gSG93ZXZlciwgdGhlIG9wZXJhdGlvbnMgYXJlIGludGVybmFsIG1ldGFkYXRhIG1hbmlwdWxhdGlvbnMuIGBpbm9kZV9idWZgIGlzIGltbWVkaWF0ZWx5IGZpbGxlZC4gYGRhdGFfYmgtJmd0O2JfZGF0YWAgaXMgemVyb2VkLiBJIHNlZSBubyBkaXJlY3QgcGF0aCBmb3IgdW5pbml0aWFsaXplZCBtZW1vcnkgdG8gbGVhayB0byB1c2Vyc3BhY2UuCgpJJiMzOTttIG5vdCBzZWVpbmcgYW55IEtNU0FOLXNwZWNpZmljIGlzc3Vlcy4gS0FTQU4gd291bGQgY2F0Y2ggb3V0LW9mLWJvdW5kcyByZWFkcy93cml0ZXMuICBNeSBwcmltYXJ5IGNvbmNlcm4gaGFzIGJlZW4gYWRkcmVzc2VkIOKAkyB0aGUgYGlub2RlX2J1ZmAgYmFja3VwIHNlZW1zIHRvIGJlIGhhbmRsZWQgY29ycmVjdGx5IHRvIGF2b2lkIHVuaW5pdGlhbGl6ZWQgZGF0YSBsZWFrcy4gVGhlIGBtZW1zZXRgIGNhbGxzIGluaXRpYWxpemUgZGF0YSBjb3JyZWN0bHksIHNvIEkgZG9uJiMzOTt0IHNlZSBhbnkgb2J2aW91cyBLTVNBTiB2dWxuZXJhYmlsaXRpZXMgaW50cm9kdWNlZCBoZXJlLiAgSSBqdXN0IGhhdmUgdG8gZG91YmxlLWNoZWNrIG15IHZhcmlhYmxlcyBpbml0aWFsaXphdGlvbi4KCkxldCYjMzk7cyBsb29rIGF0IGBpc2AgYW5kIGBpYC4KYGBgYwpzdHJ1Y3QgZXh0NF94YXR0cl9pYm9keV9maW5kIGlzID0gewoJLnMgPSB7IC5ub3RfZm91bmQgPSAwLCB9LAp9OwpgYGAKQWggd2FpdCwgYHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmRgIGhhcyBvdGhlciBmaWVsZHMuICBJIHNob3VsZCBjaGVjayB0aGUgZGVmaW5pdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCBcXHsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXh0NC94YXR0ci5oPTEyMT1zdHJ1Y3QgZXh0NF94YXR0cl9zZWFyY2gge1xuLS1cbmZzL2V4dDQveGF0dHIuaC0xMjgtXG5mcy9leHQ0L3hhdHRyLmg6MTI5OnN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmQge1xuZnMvZXh0NC94YXR0ci5oLTEzMC1cdHN0cnVjdCBleHQ0X3hhdHRyX3NlYXJjaCBzO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3Njk1CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgZXh0NCBYQXR0ciBpLW5vZGUgSW1wbGVtZW50YXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBgZXh0NF94YXR0cl9pYm9keV9maW5kYCBzdHJ1Y3R1cmUuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBoZWFkaW5nIHN0cmFpZ2h0IGZvciBgZnMvZXh0NC94YXR0ci5oYC4gSXQmIzM5O3MgYSBrZXkgcGllY2UgaW4gaG93IGV4dDQgaGFuZGxlcyBleHRlbmRlZCBhdHRyaWJ1dGVzICh4YXR0cnMpIHN0b3JlZCBkaXJlY3RseSB3aXRoaW4gdGhlIGlub2RlIGl0c2VsZiwgcmlnaHQ/IFRoaXMgbWVhbnMgSSYjMzk7bSBwcm9iYWJseSBkZWFsaW5nIHdpdGggdGhlIG9wdGltaXphdGlvbiBmb3Igc21hbGxlciBhdHRyaWJ1dGVzLCB3aGVyZSB0aGUgb3ZlcmhlYWQgb2YgYSBzZXBhcmF0ZSBibG9jayBhbGxvY2F0aW9uIGlzIGF2b2lkZWQuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byByZWZyZXNoIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoaXMgaW5saW5lIHN0b3JhZ2Ugd29ya3Mgd2l0aGluIHRoZSBpbm9kZSYjMzk7cyBkYXRhIHN0cnVjdHVyZXMuIEkmIzM5O20gZ3Vlc3NpbmcgdGhhdCBgZXh0NF94YXR0cl9pYm9keV9maW5kYCBoYXMgZ290IHRvIGJlIGluc3RydW1lbnRhbCBpbiB0aGUgc2VhcmNoIGFsZ29yaXRobS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgZXhhY3RseSBpdCBjb21lcyBpbnRvIHBsYXkgaW4gb3JkZXIgdG8gdW5kZXJzdGFuZCBob3cgeGF0dHJzIGFyZSBzZWFyY2hlZCBvciBtb2RpZmllZCB3aXRoaW4gdGhlIGlubGluZSBpLW5vZGUgYnVmZmVyLiBJdCBpcyBhIGZ1bmRhbWVudGFsIHBpZWNlIHRvIHVuZGVyc3RhbmRpbmcgaG93IGVmZmljaWVudGx5IHNtYWxsZXIgYXR0cmlidXRlcyBhcmUgaGFuZGxlZCwgYW5kIGhvdyB0aGUgZmlsZSBzeXN0ZW0gYmFsYW5jZXMgc3BhY2UgYW5kIGFjY2VzcyBwZXJmb3JtYW5jZSBmb3IgdGhlIGlubGluZSBhdHRyaWJ1dGVzIGFzIHdlbGwgYXMgaG93IGV4dDQgY2FuIGRlY2lkZSB0byBtb3ZlIGZyb20gYW4gaW5saW5lIGF0dHJpYnV0ZSB0byBhbiBleHRlcm5hbCBvbmUuIEkmIzM5O20ga2VlbiB0byBkaXNzZWN0IHRoZSBjb2RlIHRvIHVuZGVyc3RhbmQgaXRzIGRhdGEgbWVtYmVycyB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3RydWN0dXJlIGFzc2lzdHMgaW4gdGhlIGxvb2t1cCBwcm9jZXNzIG9mIHRoZSBpbmxpbmUgYXR0cmlidXRlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtmcy9leHQ0L3hhdHRyLmgmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDEyMDpcdFxuIDEyMTpcdHN0cnVjdCBleHQ0X3hhdHRyX3NlYXJjaCB7XG4gMTIyOlx0XHRzdHJ1Y3QgZXh0NF94YXR0cl9lbnRyeSAqZmlyc3Q7XG4gMTIzOlx0XHR2b2lkICpiYXNlO1xuIDEyNDpcdFx0dm9pZCAqZW5kO1xuIDEyNTpcdFx0c3RydWN0IGV4dDRfeGF0dHJfZW50cnkgKmhlcmU7XG4gMTI2Olx0XHRpbnQgbm90X2ZvdW5kO1xuIDEyNzpcdH07XG4gMTI4Olx0XG4gMTI5Olx0c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCB7XG4gMTMwOlx0XHRzdHJ1Y3QgZXh0NF94YXR0cl9zZWFyY2ggcztcbiAxMzE6XHRcdHN0cnVjdCBleHQ0X2lsb2MgaWxvYztcbiAxMzI6XHR9O1xuIDEzMzpcdFxuIDEzNDpcdHN0cnVjdCBleHQ0X3hhdHRyX2lub2RlX2FycmF5IHtcbiAxMzU6XHRcdHVuc2lnbmVkIGludCBjb3VudDtcbiAxMzY6XHRcdHN0cnVjdCBpbm9kZSAqaW5vZGVzW10gX19jb3VudGVkX2J5KGNvdW50KTtcbiAxMzc6XHR9O1xuIDEzODpcdFxuIDEzOTpcdGV4dGVybiBjb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciBleHQ0X3hhdHRyX3VzZXJfaGFuZGxlcjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODMxNgoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDI3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIFRob3VnaHRzIG9uIEMgU3RydWN0dXJlIEluaXRpYWxpemF0aW9uKioKCk9rYXksIGxldCYjMzk7cyBicmVhayBkb3duIHRoaXMgQyBjb2RlIHNuaXBwZXQuIEkgc2VlIHRoYXQgYGlzYCBpcyBpbml0aWFsaXplZCB3aXRoIGEgYnJhY2UtZW5jbG9zZWQgaW5pdGlhbGl6ZXI6CgpgYGBjCglzdHJ1Y3QgZXh0NF94YXR0cl9pYm9keV9maW5kIGlzID0gewoJCS5zID0geyAubm90X2ZvdW5kID0gMCwgfSwKCX07CmBgYAoKUmlnaHQsIHRoYXQmIzM5O3Mgc3RyYWlnaHRmb3J3YXJkLiBJbiBDLCBpZiBJIHVzZSB0aGlzIHR5cGUgb2YgaW5pdGlhbGl6YXRpb24sIGFueSBmaWVsZHMgSSBkb24mIzM5O3QgZXhwbGljaXRseSBzZXQgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHplcm8taW5pdGlhbGl6ZWQuIFNvLCBhdCB0aGUgc3RhcnQsIGBpc2AgaXMgZXNzZW50aWFsbHkgYSBjb21wbGV0ZWx5IHplcm9lZC1vdXQgb2JqZWN0LiBOaWNlIGFuZCBjbGVhbi4KCk5vdywgd2hhdCYjMzk7cyBuZXh0PyBBaCwgYGlgOgoKYGBgYwoJc3RydWN0IGV4dDRfeGF0dHJfaW5mbyBpID0gewoJCS5uYW1lX2luZGV4ID0gRVhUNF9YQVRUUl9JTkRFWF9TWVNURU0sCgkJLm5hbWUgPSBFWFQ0X1hBVFRSX1NZU1RFTV9EQVRBLAoJCS52YWx1ZSA9IE5VTEwsCgkJLnZhbHVlX2xlbiA9IDAsCgl9OwpgYGAKCkhlcmUsIEkmIzM5O20gZXhwbGljaXRseSBpbml0aWFsaXppbmcgYG5hbWVfaW5kZXhgLCBgbmFtZWAsIGB2YWx1ZWAsIGFuZCBgdmFsdWVfbGVuYC4gSG93ZXZlciwgdGhlIEMgc3RhbmRhcmQgZ3VhcmFudGVlcyBhbnkgcmVtYWluaW5nIGZpZWxkcyAqbm90KiBleHBsaWNpdGx5IGluaXRpYWxpemVkIHdpbGwgYWxzbyBiZSB6ZXJvZWQgb3V0LiBUaGlzIGlzIGdvb2QgZm9yIG1lLCBpdCBlbnN1cmVzIGNvbnNpc3RlbnQgYmVoYXZpb3IgYW5kIHByZXZlbnRzIHN1cnByaXNlcy4KCkZpbmFsbHksIGBuZXdleGA6CgpgYGBjCgkJc3RydWN0IGV4dDRfZXh0ZW50IG5ld2V4OwoKCQluZXdleC5lZV9ibG9jayA9IGNwdV90b19sZTMyKDApOwoJCW5ld2V4LmVlX2xlbiA9IGNwdV90b19sZTE2KDEpOwoJCWV4dDRfZXh0X3N0b3JlX3BibG9jaygmYW1wO25ld2V4LCBibG9jayk7CmBgYAoKSSYjMzk7bSBjdXJpb3VzIGFib3V0IHRoZSBkZWZpbml0aW9uIG9mIGBzdHJ1Y3QgZXh0NF9leHRlbnRgIGluIHRoaXMgY29udGV4dCwgc28gSSYjMzk7bGwgbmVlZCB0byBleGFtaW5lIHRoYXQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIHJlbWFpbmluZyBmaWVsZHMgYXJlIHVzZWQgYW5kIHdoZXRoZXIgYW55IGRlZmF1bHQgdmFsdWVzIGFyZSByZWxpZWQgdXBvbiBiZXlvbmQgd2hhdCYjMzk7cyBleHBsaWNpdGx5IHNldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IGV4dDRfZXh0ZW50IFxceyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leHQ0L2V4dDRfZXh0ZW50cy5oPTQ4PXN0cnVjdCBleHQ0X2V4dGVudF90YWlsIHtcbi0tXG5mcy9leHQ0L2V4dDRfZXh0ZW50cy5oLTU1LSAqL1xuZnMvZXh0NC9leHQ0X2V4dGVudHMuaDo1NjpzdHJ1Y3QgZXh0NF9leHRlbnQge1xuZnMvZXh0NC9leHQ0X2V4dGVudHMuaC01Ny1cdF9fbGUzMlx0ZWVfYmxvY2s7XHQvKiBmaXJzdCBsb2dpY2FsIGJsb2NrIGV4dGVudCBjb3ZlcnMgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTEzNQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIGV4dDRfZXh0ZW50IFN0cnVjdHVyZSoqCgpPa2F5LCBsZXQmIzM5O3MgcHVsbCB1cCB0aGUgZGVmaW5pdGlvbiBvZiBgc3RydWN0IGV4dDRfZXh0ZW50YC4gSSYjMzk7dmUgd29ya2VkIHdpdGggdGhlc2UgZXh0ZW5zaXZlbHksIGJ1dCBhIHF1aWNrIHJlZnJlc2ggbmV2ZXIgaHVydHMuIEkgbmVlZCB0byBnZXQgYmFjayB0byBmaXJzdCBwcmluY2lwbGVzIGJlZm9yZSBJIHN0YXJ0IGRpdmluZyBiYWNrIGludG8gdGhlIGNvZGUuIFJpZ2h0LCBtZW1vcnkgbGF5b3V0IGlzIGtleTogaG93IGRvZXMgdGhpcyBsaXR0bGUgc3RydWN0dXJlIHBhY2sgaW5mb3JtYXRpb24gYWJvdXQgYmxvY2sgcmFuZ2VzPyBTaXplIHdpbGwgbWF0dGVyIHdoZW4gaXQgY29tZXMgdG8gcGVyZm9ybWFuY2UsIGFuZCwgaG93IGRvZXMgdGhlIHN0cnVjdHVyZSBoYW5kbGUgZGlmZmVyZW50IHNpemVzPyBJcyB0aGVyZSBhbiBpbmhlcmVudCBsaW1pdCBvciBkb2VzIGl0IHN1cHBvcnQgdmFyaWFibGUgZXh0ZW50cz8KCknigJltIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIGhvdyB0aGUgbWV0YWRhdGEgdHJhbnNsYXRlcyBpbnRvIHBoeXNpY2FsIGJsb2NrIGxvY2F0aW9ucy4gVW5kZXJzdGFuZGluZyB0aGlzIHdpbGwgaGVscCBtZSBkZXRlcm1pbmUgd2hpY2ggYXBwcm9hY2hlcyB0aGUgc3lzdGVtIHdpbGwgYmUgdXNpbmcuIFRoZSBgZXh0NF9leHRlbnRgIHN0cnVjdHVyZSB3aWxsIGluZm9ybSBteSBhcHByb2FjaCB0byBvcHRpbWl6aW5nIGEgc3BlY2lmaWMgSS9PIHNjZW5hcmlvIEkmIzM5O20gY3VycmVudGx5IHdvcmtpbmcgb24uIElzIHRoZSBzdHJ1Y3R1cmUgd2VsbC1hbGlnbmVkPyBBcmUgdGhlcmUgYW55IHBvdGVudGlhbCBwYWRkaW5nIGlzc3VlcyB0aGF0IG1pZ2h0IGFmZmVjdCBtZW1vcnkgYWNjZXNzIHBhdHRlcm5zPyBJ4oCZbGwgbWVudGFsbHkgbWFwIHRoZSBtZW1iZXJzIHRvIHRoZWlyIGxpa2VseSByb2xlczogdGhlIHN0YXJ0aW5nIGJsb2NrLCB0aGUgYmxvY2sgY291bnQsIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEuIERvZXMgaXQgb2ZmZXIgYW55IGNvbXByZXNzaW9uIG1lY2hhbmlzbXM/IEl0JiMzOTtzIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgZm9yIGZyYWdtZW50YXRpb24sIGVzcGVjaWFsbHkgd2hlbiBkZWFsaW5nIHdpdGggbGFyZ2UgZmlsZXMgYW5kIHNwYXJzZSBkYXRhLiBUaGUgc3RydWN0dXJlIGFsc28gbWF5IGdpdmUgY2x1ZXMgdG8gdGhlIHVzZSBvZiBzb21lIGNhY2hpbmcgbWVjaGFuaXNtcy4gSSB3YW50IHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGRhdGEmIzM5O3MgcG90ZW50aWFsIGVmZmVjdHMgb24gY2FjaGluZyBhbmQgb3ZlcmFsbCBwZXJmb3JtYW5jZS4gT2theSwgbGV0JiMzOTtzIHNlZSB3aGF0IHdlJiMzOTtyZSB3b3JraW5nIHdpdGggaGVyZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2ZzL2V4dDQvZXh0NF9leHRlbnRzLmgmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA1NSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxNQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDU1Olx0ICovXG4gIDU2Olx0c3RydWN0IGV4dDRfZXh0ZW50IHtcbiAgNTc6XHRcdF9fbGUzMlx0ZWVfYmxvY2s7XHQvKiBmaXJzdCBsb2dpY2FsIGJsb2NrIGV4dGVudCBjb3ZlcnMgKi9cbiAgNTg6XHRcdF9fbGUxNlx0ZWVfbGVuO1x0XHQvKiBudW1iZXIgb2YgYmxvY2tzIGNvdmVyZWQgYnkgZXh0ZW50ICovXG4gIDU5Olx0XHRfX2xlMTZcdGVlX3N0YXJ0X2hpO1x0LyogaGlnaCAxNiBiaXRzIG9mIHBoeXNpY2FsIGJsb2NrICovXG4gIDYwOlx0XHRfX2xlMzJcdGVlX3N0YXJ0X2xvO1x0LyogbG93IDMyIGJpdHMgb2YgcGh5c2ljYWwgYmxvY2sgKi9cbiAgNjE6XHR9O1xuICA2MjpcdFxuICA2MzpcdC8qXG4gIDY0Olx0ICogVGhpcyBpcyBpbmRleCBvbi1kaXNrIHN0cnVjdHVyZS5cbiAgNjU6XHQgKiBJdCYjMzk7cyB1c2VkIGF0IGFsbCB0aGUgbGV2ZWxzIGV4Y2VwdCB0aGUgYm90dG9tLlxuICA2NjpcdCAqL1xuICA2NzpcdHN0cnVjdCBleHQ0X2V4dGVudF9pZHgge1xuICA2ODpcdFx0X19sZTMyXHRlaV9ibG9jaztcdC8qIGluZGV4IGNvdmVycyBsb2dpY2FsIGJsb2NrcyBmcm9tICYjMzk7YmxvY2smIzM5OyAqL1xuICA2OTpcdFx0X19sZTMyXHRlaV9sZWFmX2xvO1x0LyogcG9pbnRlciB0byB0aGUgcGh5c2ljYWwgYmxvY2sgb2YgdGhlIG5leHQgKlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NzU3CgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogMTEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRXh0NCBFeHRlbmRlZCBBdHRyaWJ1dGUgQmxvY2sgU3RydWN0dXJlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBuZXdleGAgc3RydWN0dXJlLCB3aGljaCBzZWVtcyB0byBiZSBjZW50cmFsIHRvIGhvdyBFeHQ0IGhhbmRsZXMgZXh0ZW5kZWQgYXR0cmlidXRlcy4gSSBzZWUgaXQgaGFzIHRoZXNlIGZpZWxkczogYGVlX2Jsb2NrYCwgYGVlX2xlbmAsIGBlZV9zdGFydF9oaWAsIGFuZCBgZWVfc3RhcnRfbG9gLiBNeSBpbml0aWFsIGltcHJlc3Npb24gaXMgdGhhdCB0aGVzZSBhcmUgbGlrZWx5IHJlbGF0ZWQgdG8gYmxvY2sgYWxsb2NhdGlvbiBvciBhZGRyZXNzaW5nIHdpdGhpbiB0aGUgZmlsZXN5c3RlbSwgcGVyaGFwcyBhIHdheSB0byBtYXAgZXh0ZW5kZWQgYXR0cmlidXRlIGRhdGEgdG8gc3BlY2lmaWMgYmxvY2tzIG9uIGRpc2suCgpOb3csIHRoZSBjb2RlIHNuaXBwZXQgaXMgc2V0dGluZyBgbmV3ZXguZWVfYmxvY2tgIHRvIDAgKGNvbnZlcnRlZCB0byBsaXR0bGUtZW5kaWFuKSwgYG5ld2V4LmVlX2xlbmAgdG8gMSAoYWxzbyBsaXR0bGUtZW5kaWFuKSBhbmQgdGhlbiBjYWxsaW5nIGBleHQ0X2V4dF9zdG9yZV9wYmxvY2tgIHdpdGggdGhlIGBuZXdleGAgc3RydWN0dXJlIGFuZCBhIGBibG9ja2AgdmFyaWFibGUuIFRoZSBhc3NpZ25tZW50IHRvIGBlZV9ibG9ja2AgYW5kIGBlZV9sZW5gIGJlaW5nIGEgY29uc3RhbnQgc3VnZ2VzdHMgdGhpcyBtYXkgYmUgcmVsYXRlZCB0byB0aGUgaW5pdGlhbCBzZXR1cCBvZiBhbiBleHRlbmRlZCBhdHRyaWJ1dGUgZW50cnkuIFNldHRpbmcgdGhlIGxlbmd0aCB0byAxIGFsc28gbWFrZXMgbWUgdGhpbmsgdGhhdCBgZXh0NF9leHRfc3RvcmVfcGJsb2NrYCBtaWdodCBoYW5kbGUgdGhlIGluaXRpYWwgc3RvcmFnZSBmb3IgdGhhdCBzaW5nbGUgYmxvY2suIEkgaW1tZWRpYXRlbHkgd2FudCB0byBkaWcgaW50byBgZXh0NF9leHRfc3RvcmVfcGJsb2NrYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBpdCYjMzk7cyBkb2luZyB3aXRoIHRoaXMgYG5ld2V4YCBzdHJ1Y3R1cmUgYW5kIHRoZSBwYXNzZWQgYmxvY2suIFRoYXQgZnVuY3Rpb24gaXMgcHJvYmFibHkgdGhlIGtleSB0byB1bmxvY2tpbmcgaG93IHRoaXMgYmxvY2sgZGF0YSBpcyBhY3R1YWxseSBzdG9yZWQuIEkgc3VzcGVjdCB0aGUgZnVuY3Rpb24gd2lsbCBtb2RpZnkgdGhlc2UgZmllbGRzIGJhc2VkIG9uIHRoZSBpbnB1dCBibG9jayB0byBzdG9yZSBpbmZvcm1hdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZXh0NF9leHRfc3RvcmVfcGJsb2NrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2V4dDQvZXh0NF9leHRlbnRzLmg9MjMyPXN0YXRpYyBpbmxpbmUgZXh0NF9mc2Jsa190IGV4dDRfaWR4X3BibG9jayhzdHJ1Y3QgZXh0NF9leHRlbnRfaWR4ICppeClcbi0tXG5mcy9leHQ0L2V4dDRfZXh0ZW50cy5oLTI0MS0vKlxuZnMvZXh0NC9leHQ0X2V4dGVudHMuaDoyNDI6ICogZXh0NF9leHRfc3RvcmVfcGJsb2NrOlxuZnMvZXh0NC9leHQ0X2V4dGVudHMuaC0yNDMtICogc3RvcmVzIGEgbGFyZ2UgcGh5c2ljYWwgYmxvY2sgbnVtYmVyIGludG8gYW4gZXh0ZW50IHN0cnVjdCxcbi0tXG5mcy9leHQ0L2V4dDRfZXh0ZW50cy5oLTI0NS0gKi9cbmZzL2V4dDQvZXh0NF9leHRlbnRzLmg6MjQ2OnN0YXRpYyBpbmxpbmUgdm9pZCBleHQ0X2V4dF9zdG9yZV9wYmxvY2soc3RydWN0IGV4dDRfZXh0ZW50ICpleCxcbmZzL2V4dDQvZXh0NF9leHRlbnRzLmgtMjQ3LVx0XHRcdFx0XHQgZXh0NF9mc2Jsa190IHBiKVxuLS1cbmZzL2V4dDQvZXh0ZW50cy10ZXN0LmM9MjI3PXN0YXRpYyBpbnQgZXh0ZW50c19rdW5pdF9pbml0KHN0cnVjdCBrdW5pdCAqdGVzdClcbi0tXG5mcy9leHQ0L2V4dGVudHMtdGVzdC5jLTMxOS1cdEVYVF9GSVJTVF9FWFRFTlQoZWgpLVx1MDAzZWVlX2xlbiA9IGNwdV90b19sZTE2KEVYVF9EQVRBX0xFTik7XG5mcy9leHQ0L2V4dGVudHMtdGVzdC5jOjMyMDpcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhFWFRfRklSU1RfRVhURU5UKGVoKSwgRVhUX0RBVEFfUEJMSyk7XG5mcy9leHQ0L2V4dGVudHMtdGVzdC5jLTMyMS1cdGlmICghcGFyYW0gfHwgcGFyYW0tXHUwMDNlaXNfdW53cml0X2F0X3N0YXJ0KVxuLS1cbmZzL2V4dDQvZXh0ZW50cy5jPTE5OTI9ZXh0NF9leHRfaW5zZXJ0X2V4dGVudChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLS1cbmZzL2V4dDQvZXh0ZW50cy5jLTIwODUtXHRcdFx0ZXgtXHUwMDNlZWVfYmxvY2sgPSBuZXdleHQtXHUwMDNlZWVfYmxvY2s7XG5mcy9leHQ0L2V4dGVudHMuYzoyMDg2Olx0XHRcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleCwgZXh0NF9leHRfcGJsb2NrKG5ld2V4dCkpO1xuZnMvZXh0NC9leHRlbnRzLmMtMjA4Ny1cdFx0XHRleC1cdTAwM2VlZV9sZW4gPSBjcHVfdG9fbGUxNihleHQ0X2V4dF9nZXRfYWN0dWFsX2xlbihleClcbi0tXG5mcy9leHQ0L2V4dGVudHMuYy0yMTk2LVx0bmVhcmV4LVx1MDAzZWVlX2Jsb2NrID0gbmV3ZXh0LVx1MDAzZWVlX2Jsb2NrO1xuZnMvZXh0NC9leHRlbnRzLmM6MjE5NzpcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhuZWFyZXgsIGV4dDRfZXh0X3BibG9jayhuZXdleHQpKTtcbmZzL2V4dDQvZXh0ZW50cy5jLTIxOTgtXHRuZWFyZXgtXHUwMDNlZWVfbGVuID0gbmV3ZXh0LVx1MDAzZWVlX2xlbjtcbi0tXG5mcy9leHQ0L2V4dGVudHMuYz0yNjE0PWV4dDRfZXh0X3JtX2xlYWYoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSxcbi0tXG5mcy9leHQ0L2V4dGVudHMuYy0yNzM5LVx0XHRcdC8qIHRoaXMgZXh0ZW50IGlzIHJlbW92ZWQ7IG1hcmsgc2xvdCBlbnRpcmVseSB1bnVzZWQgKi9cbmZzL2V4dDQvZXh0ZW50cy5jOjI3NDA6XHRcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKGV4LCAwKTtcbmZzL2V4dDQvZXh0ZW50cy5jLTI3NDEtXG4tLVxuZnMvZXh0NC9leHRlbnRzLmM9MzE5MT1zdGF0aWMgc3RydWN0IGV4dDRfZXh0X3BhdGggKmV4dDRfc3BsaXRfZXh0ZW50X2F0KGhhbmRsZV90ICpoYW5kbGUsXG4tLVxuZnMvZXh0NC9leHRlbnRzLmMtMzI0Ni1cdGV4Mi1cdTAwM2VlZV9sZW4gICA9IGNwdV90b19sZTE2KGVlX2xlbiAtIChzcGxpdCAtIGVlX2Jsb2NrKSk7XG5mcy9leHQ0L2V4dGVudHMuYzozMjQ3Olx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKGV4MiwgbmV3YmxvY2spO1xuZnMvZXh0NC9leHRlbnRzLmMtMzI0OC1cdGlmIChpc191bndyaXQpXG4tLVxuZnMvZXh0NC9leHRlbnRzLmM9MzU1Nz1leHQ0X2V4dF9jb252ZXJ0X3RvX2luaXRpYWxpemVkKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9leHRlbnRzLmMtMzY0NS1cdFx0XHRleC1cdTAwM2VlZV9ibG9jayA9IGNwdV90b19sZTMyKGVlX2Jsb2NrICYjNDM7IG1hcF9sZW4pO1xuZnMvZXh0NC9leHRlbnRzLmM6MzY0NjpcdFx0XHRleHQ0X2V4dF9zdG9yZV9wYmxvY2soZXgsIGVlX3BibGsgJiM0MzsgbWFwX2xlbik7XG5mcy9leHQ0L2V4dGVudHMuYy0zNjQ3LVx0XHRcdGV4LVx1MDAzZWVlX2xlbiA9IGNwdV90b19sZTE2KGVlX2xlbiAtIG1hcF9sZW4pO1xuLS1cbmZzL2V4dDQvZXh0ZW50cy5jLTM2OTEtXHRcdFx0YWJ1dF9leC1cdTAwM2VlZV9ibG9jayA9IGNwdV90b19sZTMyKG5leHRfbGJsayAtIG1hcF9sZW4pO1xuZnMvZXh0NC9leHRlbnRzLmM6MzY5MjpcdFx0XHRleHQ0X2V4dF9zdG9yZV9wYmxvY2soYWJ1dF9leCwgbmV4dF9wYmxrIC0gbWFwX2xlbik7XG5mcy9leHQ0L2V4dGVudHMuYy0zNjkzLVx0XHRcdGV4LVx1MDAzZWVlX2xlbiA9IGNwdV90b19sZTE2KGVlX2xlbiAtIG1hcF9sZW4pO1xuLS1cbmZzL2V4dDQvZXh0ZW50cy5jLTM3NDUtXHRcdFx0XHRjcHVfdG9fbGUxNigqYWxsb2NhdGVkIC0gc3BsaXRfbWFwLm1fbGVuKTtcbmZzL2V4dDQvZXh0ZW50cy5jOjM3NDY6XHRcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNnplcm9fZXgxLFxuZnMvZXh0NC9leHRlbnRzLmMtMzc0Ny1cdFx0XHRcdGV4dDRfZXh0X3BibG9jayhleCkgJiM0Mzsgc3BsaXRfbWFwLm1fbGJsayAmIzQzO1xuLS1cbmZzL2V4dDQvZXh0ZW50cy5jLTM3NjAtXHRcdFx0XHRcdFx0XHRlZV9ibG9jayk7XG5mcy9leHQ0L2V4dGVudHMuYzozNzYxOlx0XHRcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNnplcm9fZXgyLFxuZnMvZXh0NC9leHRlbnRzLmMtMzc2Mi1cdFx0XHRcdFx0XHQgICAgICBleHQ0X2V4dF9wYmxvY2soZXgpKTtcbi0tXG5mcy9leHQ0L2V4dGVudHMuYz00MjY5PWludCBleHQ0X2V4dF9tYXBfYmxvY2tzKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9leHRlbnRzLmMtNDQ3My1cdHBibGsgPSBuZXdibG9jayAmIzQzOyBvZmZzZXQ7XG5mcy9leHQ0L2V4dGVudHMuYzo0NDc0Olx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNm5ld2V4LCBwYmxrKTtcbmZzL2V4dDQvZXh0ZW50cy5jLTQ0NzUtXHRuZXdleC5lZV9sZW4gPSBjcHVfdG9fbGUxNihhci5sZW4pO1xuLS1cbmZzL2V4dDQvZXh0ZW50cy5jPTU3NjM9ZXh0NF9zd2FwX2V4dGVudHMoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZTEsXG4tLVxuZnMvZXh0NC9leHRlbnRzLmMtNTg5Ny1cdFx0dG1wX2V4ID0gKmV4MTtcbmZzL2V4dDQvZXh0ZW50cy5jOjU4OTg6XHRcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleDEsIGV4dDRfZXh0X3BibG9jayhleDIpKTtcbmZzL2V4dDQvZXh0ZW50cy5jOjU4OTk6XHRcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleDIsIGV4dDRfZXh0X3BibG9jayhcdTAwMjZ0bXBfZXgpKTtcbmZzL2V4dDQvZXh0ZW50cy5jLTU5MDAtXHRcdGV4MS1cdTAwM2VlZV9sZW4gPSBjcHVfdG9fbGUxNihlMl9sZW4pO1xuLS1cbmZzL2V4dDQvZXh0ZW50cy5jPTYwMjc9aW50IGV4dDRfZXh0X3JlcGxheV91cGRhdGVfZXgoc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9sYmxrX3Qgc3RhcnQsXG4tLVxuZnMvZXh0NC9leHRlbnRzLmMtNjA4MC1cdFx0ZXh0NF9leHRfbWFya19pbml0aWFsaXplZChleCk7XG5mcy9leHQ0L2V4dGVudHMuYzo2MDgxOlx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKGV4LCBwYmxrKTtcbmZzL2V4dDQvZXh0ZW50cy5jLTYwODItXHRkb3duX3dyaXRlKFx1MDAyNkVYVDRfSShpbm9kZSktXHUwMDNlaV9kYXRhX3NlbSk7XG4tLVxuZnMvZXh0NC9mYXN0X2NvbW1pdC5jPTkzMT1zdGF0aWMgaW50IGV4dDRfZmNfd3JpdGVfaW5vZGVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1MzIgKmNyYylcbi0tXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmMtOTYxLVx0XHRleC1cdTAwM2VlZV9sZW4gPSBjcHVfdG9fbGUxNihyYW5nZS1cdTAwM2VsZW4pO1xuZnMvZXh0NC9mYXN0X2NvbW1pdC5jOjk2MjpcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKGV4LCByYW5nZS1cdTAwM2VwYmxrKTtcbmZzL2V4dDQvZmFzdF9jb21taXQuYy05NjMtXHRcdGlmIChyYW5nZS1cdTAwM2V1bndyaXR0ZW4pXG4tLVxuZnMvZXh0NC9mYXN0X2NvbW1pdC5jPTIxNDg9c3RhdGljIGludCBleHQ0X2ZjX3JlcGxheV9hZGRfcmFuZ2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTggKnZhbClcbi0tXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmMtMjIwMi1cdFx0XHRuZXdleC5lZV9ibG9jayA9IGNwdV90b19sZTMyKGN1cik7XG5mcy9leHQ0L2Zhc3RfY29tbWl0LmM6MjIwMzpcdFx0XHRleHQ0X2V4dF9zdG9yZV9wYmxvY2soXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmMtMjIwNC1cdFx0XHRcdFx1MDAyNm5ld2V4LCBzdGFydF9wYmxrICYjNDM7IGN1ciAtIHN0YXJ0KTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTEwNzQ9c3RhdGljIGludCBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2ZzYmxrX3QgYmxvY2ssXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xMTM1LVx0XHRuZXdleC5lZV9sZW4gPSBjcHVfdG9fbGUxNigxKTtcbmZzL2V4dDQvaW5saW5lLmM6MTEzNjpcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNm5ld2V4LCBibG9jayk7XG5mcy9leHQ0L2lubGluZS5jLTExMzctXHRcdHBhdGggPSBleHQ0X2V4dF9pbnNlcnRfZXh0ZW50KGhhbmRsZSwgaW5vZGUsIHBhdGgsIFx1MDAyNm5ld2V4LCAwKTtcbi0tXG5mcy9leHQ0L21pZ3JhdGUuYz0yMT1zdGF0aWMgaW50IGZpbmlzaF9yYW5nZShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLS1cbmZzL2V4dDQvbWlncmF0ZS5jLTMzLVx0bmV3ZXh0LmVlX2xlbiAgID0gY3B1X3RvX2xlMTYobGItXHUwMDNlbGFzdF9ibG9jayAtIGxiLVx1MDAzZWZpcnN0X2Jsb2NrICYjNDM7IDEpO1xuZnMvZXh0NC9taWdyYXRlLmM6MzQ6XHRleHQ0X2V4dF9zdG9yZV9wYmxvY2soXHUwMDI2bmV3ZXh0LCBsYi1cdTAwM2VmaXJzdF9wYmxvY2spO1xuZnMvZXh0NC9taWdyYXRlLmMtMzUtXHQvKiBMb2NraW5nIG9ubHkgZm9yIGNvbnZlbmllbmNlIHNpbmNlIHdlIGFyZSBvcGVyYXRpbmcgb24gdGVtcCBpbm9kZSAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Nm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjYxMAoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDcyOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgRXh0ZW50IGFuZCBBbGxvY2F0aW9uIEluaXRpYWxpemF0aW9uIGluIGV4dDQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGV4dDRfZXh0X3N0b3JlX3BibG9ja2AgZnVuY3Rpb24sIGFuZCBpdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBJdCYjMzk7cyByZXNwb25zaWJsZSBmb3Igc3RvcmluZyB0aGUgcGh5c2ljYWwgYmxvY2sgbnVtYmVyIChgcGJgKSBpbnRvIHRoZSBleHRlbnQgc3RydWN0dXJlJiMzOTtzIGBlZV9zdGFydF9sb2AgYW5kIGBlZV9zdGFydF9oaWAgZmllbGRzLiBUaGUgaGlnaCBiaXRzIGFyZSBzaGlmdGVkIGFuZCBtYXNrZWQgYXBwcm9wcmlhdGVseSwgYW5kIGV2ZXJ5dGhpbmcgaXMgY29udmVydGVkIHRvIGxpdHRsZS1lbmRpYW4uIFNlZW1zIHN0YW5kYXJkIGZvciBoYW5kbGluZyA2NC1iaXQgYmxvY2sgbnVtYmVycyB3aXRoaW4gYSA0OC1iaXQgc3BsaXQgZXh0ZW50IHN0cnVjdHVyZS4gSSYjMzk7bSBub3RpbmcgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGluaXRpYWxpemluZyBgbmV3ZXhgLgoKVGhlbiwgSSYjMzk7bSB2ZXJpZnlpbmcgdGhlIGNvbXBsZXRlIGluaXRpYWxpemF0aW9uIG9mIGFuIGBleHQ0X2V4dGVudGAgc3RydWN0dXJlLiBHaXZlbiB0aGF0IHRoZSBzdHJ1Y3R1cmUgaGFzIGZvdXIgZmllbGRzIChgZWVfYmxvY2tgLCBgZWVfbGVuYCwgYGVlX3N0YXJ0X2hpYCwgYGVlX3N0YXJ0X2xvYCkgYW5kIHRoZSBjb2RlIGluaXRpYWxpemVzIGFsbCBmb3VyLCBJIGhhdmUgY29uZmlybWVkIHRoYXQgdGhlIGV4dGVudCBpcyBmdWxseSBpbml0aWFsaXplZC4gQ2hlY2tpbmcgdGhlIHN0cnVjdHVyZSYjMzk7cyBzaXplIGNvbmZpcm1zIHRoZSBhYnNlbmNlIG9mIHBhZGRpbmcsIGFzIDQgJiM0MzsgMiAmIzQzOyAyICYjNDM7IDQgZXF1YWxzIDEyIGJ5dGVzLgoKTm93LCBzaGlmdGluZyBnZWFycywgSSYjMzk7bSBleGFtaW5pbmcgdGhlIGluaXRpYWxpemF0aW9uIG9mIGBzdHJ1Y3QgZXh0NF9hbGxvY2F0aW9uX3JlcXVlc3QgYXI7YCB3aXRoaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBUaGUgY29kZSB1c2VzIGBtZW1zZXRgIHRvIGluaXRpYWxpemUgYGFyYCB0byB6ZXJvLCBhbmQgdGhlbiBzZXRzIHNvbWUgc3BlY2lmaWMgZmllbGRzLiBTbywgdGhhdCYjMzk7cyBkZWZpbml0ZWx5IGEgY29tcGxldGUgaW5pdGlhbGl6YXRpb24uCgpNeSBmb2N1cyBpcyBzaGlmdGluZyB0byBgYnVmYCwgYWxsb2NhdGVkIHdpdGggYGttYWxsb2NgIGluIHRoZSBzYW1lIGZ1bmN0aW9uLiBJIHNlZSB0aGF0IGBidWZgIGlzIGFsbG9jYXRlZCBidXQgdW5pbml0aWFsaXplZCwgd2hpY2ggaXMgYSBrZXkgcG9pbnQgdG8gd2F0Y2ggb3V0IGZvci4gQWZ0ZXIgYWxsb2NhdGlvbiwgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgaXMgY2FsbGVkIHRvIHBvcHVsYXRlIGBidWZgLiBUaGlzIGlzIHdoZXJlIEkgaGF2ZSBhIGNvbmNlcm4uIElmIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIGRvZXNuJiMzOTt0IGZ1bGx5IGluaXRpYWxpemUgdGhlIGFsbG9jYXRlZCBgYnVmYCBidWZmZXIsIGl0IGNvdWxkIGxlYWQgdG8gdW5pbml0aWFsaXplZCBtZW1vcnkgYmVpbmcgdXNlZCwgd2hpY2ggY291bGQgY3JlYXRlIGlzc3Vlcy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgaW1wbGVtZW50YXRpb24gb2YgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgY2FyZWZ1bGx5IHRvIGVuc3VyZSBpdCBoYW5kbGVzIHRoZSBlbnRpcmUgYGJ1ZmAuIEkmIzM5O20gZ29pbmcgdG8gbG9vayBhdCB0aGF0IGZ1bmN0aW9uIG5leHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE3OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2V4dDRfcmVhZF9pbmxpbmVfZGF0YSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leHQ0L2lubGluZS5jPTE0NT1pbnQgZXh0NF9maW5kX2lubGluZV9kYXRhX25vbG9jayhzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTgzLVxuZnMvZXh0NC9pbmxpbmUuYzoxODQ6c3RhdGljIGludCBleHQ0X3JlYWRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSwgdm9pZCAqYnVmZmVyLFxuZnMvZXh0NC9pbmxpbmUuYy0xODUtXHRcdFx0XHQgdW5zaWduZWQgaW50IGxlbixcbi0tXG5mcy9leHQ0L2lubGluZS5jPTUwND1zdGF0aWMgaW50IGV4dDRfcmVhZF9pbmxpbmVfZm9saW8oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZvbGlvICpmb2xpbylcbi0tXG5mcy9leHQ0L2lubGluZS5jLTUzNS1cdGthZGRyID0ga21hcF9sb2NhbF9mb2xpbyhmb2xpbywgMCk7XG5mcy9leHQ0L2lubGluZS5jOjUzNjpcdHJldCA9IGV4dDRfcmVhZF9pbmxpbmVfZGF0YShpbm9kZSwga2FkZHIsIGxlbiwgXHUwMDI2aWxvYyk7XG5mcy9leHQ0L2lubGluZS5jLTUzNy1cdGthZGRyID0gZm9saW9femVyb190YWlsKGZvbGlvLCBsZW4sIGthZGRyICYjNDM7IGxlbik7XG4tLVxuZnMvZXh0NC9pbmxpbmUuYz0xMTg1PXN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTIwNC1cbmZzL2V4dDQvaW5saW5lLmM6MTIwNTpcdGVycm9yID0gZXh0NF9yZWFkX2lubGluZV9kYXRhKGlub2RlLCBidWYsIGlubGluZV9zaXplLCBpbG9jKTtcbmZzL2V4dDQvaW5saW5lLmMtMTIwNi1cdGlmIChlcnJvciBcdTAwM2MgMClcbi0tXG5mcy9leHQ0L2lubGluZS5jPTEzNTc9aW50IGV4dDRfaW5saW5lZGlyX3RvX3RyZWUoc3RydWN0IGZpbGUgKmRpcl9maWxlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTM5Mi1cbmZzL2V4dDQvaW5saW5lLmM6MTM5MzpcdHJldCA9IGV4dDRfcmVhZF9pbmxpbmVfZGF0YShpbm9kZSwgZGlyX2J1ZiwgaW5saW5lX3NpemUsIFx1MDAyNmlsb2MpO1xuZnMvZXh0NC9pbmxpbmUuYy0xMzk0LVx0dXBfcmVhZChcdTAwMjZFWFQ0X0koaW5vZGUpLVx1MDAzZXhhdHRyX3NlbSk7XG4tLVxuZnMvZXh0NC9pbmxpbmUuYz0xNDc4PWludCBleHQ0X3JlYWRfaW5saW5lX2RpcihzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTE1MTEtXG5mcy9leHQ0L2lubGluZS5jOjE1MTI6XHRyZXQgPSBleHQ0X3JlYWRfaW5saW5lX2RhdGEoaW5vZGUsIGRpcl9idWYsIGlubGluZV9zaXplLCBcdTAwMjZpbG9jKTtcbmZzL2V4dDQvaW5saW5lLmMtMTUxMy1cdHVwX3JlYWQoXHUwMDI2RVhUNF9JKGlub2RlKS1cdTAwM2V4YXR0cl9zZW0pO1xuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTYwOT12b2lkICpleHQ0X3JlYWRfaW5saW5lX2xpbmsoc3RydWN0IGlub2RlICppbm9kZSlcbi0tXG5mcy9leHQ0L2lubGluZS5jLTE2MjQtXG5mcy9leHQ0L2lubGluZS5jOjE2MjU6XHRyZXQgPSBleHQ0X3JlYWRfaW5saW5lX2RhdGEoaW5vZGUsIGxpbmssIGlubGluZV9zaXplLCBcdTAwMjZpbG9jKTtcbmZzL2V4dDQvaW5saW5lLmMtMTYyNi1cdGlmIChyZXQgXHUwMDNjIDApIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ1MzIKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqRGl2aW5nIGludG8gYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAqKgoKQWxyaWdodCwgdGltZSB0byBjcmFjayBvcGVuIHRoZSBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCBmdW5jdGlvbi4gSSYjMzk7bSBhbHJlYWR5IGFudGljaXBhdGluZyBzb21lIG9mIHRoZSBrZXkgYXJlYXMgdGhpcyB3aWxsIHRvdWNoIG9uLiBXZSYjMzk7cmUgZGVhbGluZyB3aXRoIGlubGluZSBkYXRhLCB3aGljaCBtZWFucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIG9wdGltaXphdGlvbnMsIGJ1dCBhbHNvIHBvdGVudGlhbCBjb21wbGV4aXR5IGluIGhhbmRsaW5nIGRhdGEgc3RvcmVkIGRpcmVjdGx5IHdpdGhpbiB0aGUgaW5vZGUgaXRzZWxmLCByYXRoZXIgdGhhbiBpbiBzZXBhcmF0ZSBibG9ja3Mgb24gZGlzay4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVudGFsIG1hcCBvZiB0aGUgZXh0NCBkYXRhIHN0cnVjdHVyZXMsIHNwZWNpZmljYWxseSB0aGUgaW5vZGUgbGF5b3V0IGFuZCB0aGUgdmFyaW91cyBmbGFncyB0aGF0IHNpZ25hbCBpbmxpbmUgZGF0YSB1c2FnZS4KCkkmIzM5O2xsIGJlIGxvb2tpbmcgY2xvc2VseSBhdCBob3cgdGhlIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgb2Zmc2V0cywgcGFydGljdWxhcmx5IHRoZSBpbnRlcmFjdGlvbnMgYmV0d2VlbiB0aGUgaW5vZGUmIzM5O3MgZGF0YSBhcmVhIGFuZCB0aGUgZmlsZSYjMzk7cyBzaXplLiBIYW5kbGluZyBib3VuZGFyeSBjb25kaXRpb25zIGlzIGFsd2F5cyBjcnVjaWFsIGluIHRoaXMgdHlwZSBvZiBmdW5jdGlvbjsgaW5jb3JyZWN0IGNhbGN1bGF0aW9ucyBjb3VsZCBlYXNpbHkgbGVhZCB0byByZWFkaW5nIGJleW9uZCB0aGUgYWxsb2NhdGVkIGRhdGEgb3IsIHdvcnNlLCBjb3JydXB0aW5nIGZpbGUgbWV0YWRhdGEuIEkgbmVlZCB0byBzZWUgaG93IGl0IG1hbmFnZXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudHMsIGFuZCB3aGV0aGVyIHRoZSByZWFkcyBhcmUgYnl0ZS1hbGlnbmVkIGFzIGlzIHJlcXVpcmVkLgoKSSYjMzk7bGwgcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgZXJyb3IgaGFuZGxpbmcuIEkgZXhwZWN0IGNoZWNrcyBmb3IgaW52YWxpZCBpbm9kZSBzdHJ1Y3R1cmVzIG9yIGZpbGUgc2l6ZXMsIGFuZCBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgZnVuY3Rpb24gbWFuYWdlcyBlcnJvcnMgZHVyaW5nIHRoZSBkYXRhIGNvcHkgaXRzZWxmLiBTaW5jZSBpbmxpbmUgZGF0YSBpcyBlc3NlbnRpYWxseSB0aWdodGx5IGNvdXBsZWQgd2l0aCB0aGUgaW5vZGUsIGFueSBpbmNvbnNpc3RlbmNpZXMgY291bGQgYmUgY2F0YXN0cm9waGljLgoKVGhlIGVmZmljaWVuY3kgb2YgdGhpcyBmdW5jdGlvbiBpcyBwYXJhbW91bnQuIEl0IHNob3VsZCBtaW5pbWl6ZSB1bm5lY2Vzc2FyeSBtZW1vcnkgY29waWVzIGFuZCBJL08gb3BlcmF0aW9ucywgZW5zdXJpbmcgdGhhdCBpbmxpbmUgZGF0YSByZWFkcyBhcmUgYXMgZmFzdCBhcyBwb3NzaWJsZS4gSSYjMzk7bGwgYmUgc2NydXRpbml6aW5nIGFueSBvcHRpbWl6YXRpb25zIHByZXNlbnQgdG8gYXNzZXNzIHRoZWlyIGltcGFjdCBhbmQgY29ycmVjdG5lc3MuIEZ1cnRoZXJtb3JlLCBpZiBhbnkgbG9ja2luZyBpcyBpbnZvbHZlZCwgSSYjMzk7bGwgYmUgaW52ZXN0aWdhdGluZyB0aG9zZSBmb3IgdGhlaXIgZWZmaWNpZW5jeS4KCkZpbmFsbHksIEkmIzM5O2xsIHdhbnQgdG8gc2VlIGhvdyBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCBpbnRlZ3JhdGVzIHdpdGggdGhlIGxhcmdlciBmaWxlIHN5c3RlbSByZWFkIHBhdGguIEkgd2FudCB0byBzZWUgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBidWZmZXIgY2FjaGUsIHRoZSBwYWdlIGNhY2hlLCBhbmQgb3RoZXIgcG90ZW50aWFsIG9wdGltaXphdGlvbiBsYXllcnMuIEhvdyBkb2VzIGl0IGhhbmRsZSB0aGUgY2FzZSB3aGVuIGlubGluZSBkYXRhIG5lZWRzIHRvIGJlIGNvbWJpbmVkIHdpdGggZGF0YSBmcm9tIHJlZ3VsYXIgYmxvY2tzPyBUaGUgaW50ZXJhY3Rpb25zIGJldHdlZW4gZGlmZmVyZW50IGRhdGEgc3RvcmFnZSBtZXRob2RzIGFyZSBhbHdheXMgYSBwcmltZSBhcmVhIG9mIGludGVyZXN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2ZzL2V4dDQvaW5saW5lLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxODQsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDE4NDpcdHN0YXRpYyBpbnQgZXh0NF9yZWFkX2lubGluZV9kYXRhKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHZvaWQgKmJ1ZmZlcixcbiAxODU6XHRcdFx0XHRcdCB1bnNpZ25lZCBpbnQgbGVuLFxuIDE4NjpcdFx0XHRcdFx0IHN0cnVjdCBleHQ0X2lsb2MgKmlsb2MpXG4gMTg3Olx0e1xuIDE4ODpcdFx0c3RydWN0IGV4dDRfeGF0dHJfZW50cnkgKmVudHJ5O1xuIDE4OTpcdFx0c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfaGVhZGVyICpoZWFkZXI7XG4gMTkwOlx0XHRpbnQgY3BfbGVuID0gMDtcbiAxOTE6XHRcdHN0cnVjdCBleHQ0X2lub2RlICpyYXdfaW5vZGU7XG4gMTkyOlx0XG4gMTkzOlx0XHRpZiAoIWxlbilcbiAxOTQ6XHRcdFx0cmV0dXJuIDA7XG4gMTk1Olx0XG4gMTk2Olx0XHRCVUdfT04obGVuIFx1MDAzZSBFWFQ0X0koaW5vZGUpLVx1MDAzZWlfaW5saW5lX3NpemUpO1xuIDE5NzpcdFxuIDE5ODpcdFx0Y3BfbGVuID0gbWluX3QodW5zaWduZWQgaW50LCBsZW4sIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpO1xuIDE5OTpcdFxuIDIwMDpcdFx0cmF3X2lub2RlID0gZXh0NF9yYXdfaW5vZGUoaWxvYyk7XG4gMjAxOlx0XHRtZW1jcHkoYnVmZmVyLCAodm9pZCAqKShyYXdfaW5vZGUtXHUwMDNlaV9ibG9jayksIGNwX2xlbik7XG4gMjAyOlx0XG4gMjAzOlx0XHRsZW4gLT0gY3BfbGVuO1xuIDIwNDpcdFx0YnVmZmVyICYjNDM7PSBjcF9sZW47XG4gMjA1Olx0XG4gMjA2Olx0XHRpZiAoIWxlbilcbiAyMDc6XHRcdFx0Z290byBvdXQ7XG4gMjA4Olx0XG4gMjA5Olx0XHRoZWFkZXIgPSBJSERSKGlub2RlLCByYXdfaW5vZGUpO1xuIDIxMDpcdFx0ZW50cnkgPSAoc3RydWN0IGV4dDRfeGF0dHJfZW50cnkgKikoKHZvaWQgKilyYXdfaW5vZGUgJiM0MztcbiAyMTE6XHRcdFx0XHRcdFx0ICAgIEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfb2ZmKTtcbiAyMTI6XHRcdGxlbiA9IG1pbl90KHVuc2lnbmVkIGludCwgbGVuLFxuIDIxMzpcdFx0XHQgICAgKHVuc2lnbmVkIGludClsZTMyX3RvX2NwdShlbnRyeS1cdTAwM2VlX3ZhbHVlX3NpemUpKTtcbiAyMTQ6XHRcbiAyMTU6XHRcdG1lbWNweShidWZmZXIsXG4gMjE2Olx0XHQgICAgICAgKHZvaWQgKilJRklSU1QoaGVhZGVyKSAmIzQzOyBsZTE2X3RvX2NwdShlbnRyeS1cdTAwM2VlX3ZhbHVlX29mZnMpLCBsZW4pO1xuIDIxNzpcdFx0Y3BfbGVuICYjNDM7PSBsZW47XG4gMjE4Olx0XG4gMjE5Olx0b3V0OlxuIDIyMDpcdFx0cmV0dXJuIGNwX2xlbjtcbiAyMjE6XHR9XG4gMjIyOlx0XG4gMjIzOlx0LypcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU2MTQKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiAzNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGV4dDQgSW5saW5lIERhdGEgSGFuZGxpbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgLiBNeSBpbml0aWFsIHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBpdCBjb3BpZXMgaW5saW5lIGRhdGEgZnJvbSB0aGUgaW5vZGUmIzM5O3MgaW5saW5lIGRhdGEgc2VjdGlvbiBpbnRvIGEgYnVmZmVyLiBJdCBzZWVtcyBzdHJhaWdodGZvcndhcmQ6IEl0IGdyYWJzIGBjcF9sZW5gIGJ5dGVzLCBzdXBwb3NlZGx5IGZyb20gYHJhd19pbm9kZS0mZ3Q7aV9ibG9ja2AsIGFuZCB0aGVuIGlmIHRoZXJlJiMzOTtzIHN0aWxsIG1vcmUgZGF0YSB0byByZWFkIChgbGVuYCBpcyBzdGlsbCBncmVhdGVyIHRoYW4gMCksIGl0IGNvbnRpbnVlcyB0byBjb3B5IHRoZSByZW1haW5pbmcgZGF0YSBmcm9tIHRoZSB4YXR0ciBlbnRyeS4KCkJ1dCB3YWl0IGEgbWludXRlLi4uIEkgc2VlIHNvbWV0aGluZyBpbnRlcmVzdGluZyBoZXJlOiBgY3BfbGVuYCByZXR1cm5lZCBieSBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCAqbWlnaHQqIGFjdHVhbGx5IGJlIGxlc3MgdGhhbiB0aGUgb3JpZ2luYWwgcmVxdWVzdGVkIGBsZW5gLiBUaGUgY29kZSB1c2VzIGBtaW5fdGAgdG8gZGV0ZXJtaW5lIGhvdyBtdWNoIGl0IHNob3VsZCBjb3B5OgoKYGBgYwpsZW4gPSBtaW5fdCh1bnNpZ25lZCBpbnQsIGxlbiwgKHVuc2lnbmVkIGludClsZTMyX3RvX2NwdShlbnRyeS0mZ3Q7ZV92YWx1ZV9zaXplKSk7CmBgYAoKU28sIGlmIHRoZSByZXF1ZXN0ZWQgYGxlbmAgd2FzIGxhcmdlciB0aGFuIGBlbnRyeS0mZ3Q7ZV92YWx1ZV9zaXplYCwgaXQgY29waWVzIGxlc3MgZGF0YSBhbmQgcmV0dXJucyB0aGF0IHNtYWxsZXIgYGNwX2xlbmAuIFRoYXQgbWFrZXMgc2Vuc2UgaW4gdGVybXMgb2Ygbm90IHJlYWRpbmcgcGFzdCB3aGF0JiMzOTtzIHN0b3JlZCwgYnV0IGl0IHJhaXNlcyBhIGNvbmNlcm4gaW4gbXkgaGVhZC4KCk5vdyBJJiMzOTttIGxvb2tpbmcgYXQgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBUaGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcsIGJlY2F1c2UgaXQgY2FsbHMgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgdG8gcmVhZCBpbnRvIGEgYnVmZmVyIGBidWZgIGFsbG9jYXRlZCB3aXRoIGBrbWFsbG9jYC4gSXQgbG9va3MgbGlrZSBpdCBmaXJzdCBjYWxjdWxhdGVzIGBpbmxpbmVfc2l6ZWAgd2l0aCBgZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpYC4gVGhlbiwgaXQgYWxsb2NhdGVzIHRoZSBidWZmZXIsIHJlYWRzIGludG8gaXQsIGFuZCBjaGVja3MgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgLgoKVGhlIGNvcmUgb2YgbXkgY29uY2VybiBpcyB0aGF0IGlmIGBlcnJvcmAsIHdoaWNoIGlzIGVxdWFsIHRvIGBjcF9sZW5gLCBpcyBsZXNzIHRoYW4gYGlubGluZV9zaXplYCwgdGhlIGJ1ZmZlciBgYnVmYCBpc24mIzM5O3QgKmZ1bGx5KiBpbml0aWFsaXplZC4gVGhpcyBjb3VsZCBiZSBhIHZ1bG5lcmFiaWxpdHksIHJpZ2h0PyBXZSYjMzk7cmUgZ29pbmcgdG8gYXR0ZW1wdCB0byByZWFkIGEgYnVmZmVyIHRoYXQgbWF5IGhhdmUgdW5pbml0aWFsaXplZCBieXRlcywgYW5kIHRoYXQmIzM5O3MgZ2VuZXJhbGx5IGJhZC4KCkJ1dCBob2xkIG9uLCBsZXQgbWUgc3RvcCBhbmQgdGhpbmsgdGhpcyB0aHJvdWdoLi4uIHRoZSBzaXplIHRvIHJlYWQgaXMgc2V0IGJ5IGBleHQ0X2dldF9pbmxpbmVfc2l6ZShpbm9kZSlgLiBUaGF0IGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gdGhlIGV4YWN0IHNpemUgb2YgdGhlIGlubGluZSBkYXRhLgoKSSBuZWVkIHRvIGdvIGFuZCBjaGVjayBgZXh0NF9nZXRfaW5saW5lX3NpemVgIHRvIGNvbmZpcm0gdGhpcyBhc3N1bXB0aW9uLiBJZiBgZXh0NF9nZXRfaW5saW5lX3NpemVgIHJldHVybnMgdGhlIGNvcnJlY3Qgc2l6ZSwgdGhlbiB0aGVyZSBoYXMgdG8gYmUgYW4gaXNzdWUgaW4gdGhlIGVycm9yIGNoZWNraW5nIG9mIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYCBvciB0aGUgbG9naWMgaW5zaWRlIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIHRoYXQgaXMgY2F1c2luZyB0aGUgc2hvcnQgcmVhZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTc6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZXh0NF9nZXRfaW5saW5lX3NpemUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXh0NC9pbmxpbmUuYz0yNT1zdGF0aWMgaW50IGV4dDRfZGFfY29udmVydF9pbmxpbmVfZGF0YV90b19leHRlbnQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0yOC1cbmZzL2V4dDQvaW5saW5lLmM6Mjk6c3RhdGljIGludCBleHQ0X2dldF9pbmxpbmVfc2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuZnMvZXh0NC9pbmxpbmUuYy0zMC17XG4tLVxuZnMvZXh0NC9pbmxpbmUuYz01MDQ9c3RhdGljIGludCBleHQ0X3JlYWRfaW5saW5lX2ZvbGlvKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmb2xpbyAqZm9saW8pXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy01MjQtXG5mcy9leHQ0L2lubGluZS5jOjUyNTpcdGxlbiA9IG1pbl90KHNpemVfdCwgZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpLCBpX3NpemVfcmVhZChpbm9kZSkpO1xuZnMvZXh0NC9pbmxpbmUuYy01MjYtXG4tLVxuZnMvZXh0NC9pbmxpbmUuYz01NzM9c3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtNjIzLVx0ZnJvbSA9IDA7XG5mcy9leHQ0L2lubGluZS5jOjYyNDpcdHRvID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xuZnMvZXh0NC9pbmxpbmUuYy02MjUtXHRpZiAoIWZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pKSB7XG4tLVxuZnMvZXh0NC9pbmxpbmUuYz04ODY9c3RhdGljIGludCBleHQ0X2RhX2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtOTAzLVxuZnMvZXh0NC9pbmxpbmUuYzo5MDQ6XHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcbmZzL2V4dDQvaW5saW5lLmMtOTA1LVxuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTE4NT1zdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTExOTctXG5mcy9leHQ0L2lubGluZS5jOjExOTg6XHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcbmZzL2V4dDQvaW5saW5lLmMtMTE5OS1cdGJ1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTEzNTc9aW50IGV4dDRfaW5saW5lZGlyX3RvX3RyZWUoc3RydWN0IGZpbGUgKmRpcl9maWxlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTM4NC1cbmZzL2V4dDQvaW5saW5lLmM6MTM4NTpcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xuZnMvZXh0NC9pbmxpbmUuYy0xMzg2LVx0ZGlyX2J1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTE0Nzg9aW50IGV4dDRfcmVhZF9pbmxpbmVfZGlyKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTUwMy1cbmZzL2V4dDQvaW5saW5lLmM6MTUwNDpcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xuZnMvZXh0NC9pbmxpbmUuYy0xNTA1LVx0ZGlyX2J1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTE2MDk9dm9pZCAqZXh0NF9yZWFkX2lubGluZV9saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xNjE5LVx0cmV0ID0gLUVOT01FTTtcbmZzL2V4dDQvaW5saW5lLmM6MTYyMDpcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xuZnMvZXh0NC9pbmxpbmUuYy0xNjIxLVx0bGluayA9IGttYWxsb2MoaW5saW5lX3NpemUgJiM0MzsgMSwgR0ZQX05PRlMpO1xuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTY5MT1zdHJ1Y3QgYnVmZmVyX2hlYWQgKmV4dDRfZmluZF9pbmxpbmVfZW50cnkoc3RydWN0IGlub2RlICpkaXIsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xNzMxLVxuZnMvZXh0NC9pbmxpbmUuYzoxNzMyOlx0aWYgKGV4dDRfZ2V0X2lubGluZV9zaXplKGRpcikgPT0gRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSlcbmZzL2V4dDQvaW5saW5lLmMtMTczMy1cdFx0Z290byBvdXQ7XG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xNzM1LVx0aW5saW5lX3N0YXJ0ID0gZXh0NF9nZXRfaW5saW5lX3hhdHRyX3BvcyhkaXIsIFx1MDAyNmlzLmlsb2MpO1xuZnMvZXh0NC9pbmxpbmUuYzoxNzM2Olx0aW5saW5lX3NpemUgPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShkaXIpIC0gRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRTtcbmZzL2V4dDQvaW5saW5lLmMtMTczNy1cbi0tXG5mcy9leHQ0L2lubGluZS5jPTE3NTQ9aW50IGV4dDRfZGVsZXRlX2lubGluZV9lbnRyeShoYW5kbGVfdCAqaGFuZGxlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTc4MS1cdFx0aW5saW5lX3N0YXJ0ID0gZXh0NF9nZXRfaW5saW5lX3hhdHRyX3BvcyhkaXIsIFx1MDAyNmlsb2MpO1xuZnMvZXh0NC9pbmxpbmUuYzoxNzgyOlx0XHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGRpcikgLVxuZnMvZXh0NC9pbmxpbmUuYy0xNzgzLVx0XHRcdFx0RVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTE4MTI9ZXh0NF9nZXRfaW5saW5lX2VudHJ5KHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xODE5LVxuZnMvZXh0NC9pbmxpbmUuYzoxODIwOlx0QlVHX09OKG9mZnNldCBcdTAwM2UgZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpKTtcbmZzL2V4dDQvaW5saW5lLmMtMTgyMS1cbi0tXG5mcy9leHQ0L2lubGluZS5jLTE4MjctXHRcdG9mZnNldCAtPSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFO1xuZnMvZXh0NC9pbmxpbmUuYzoxODI4Olx0XHQqaW5saW5lX3NpemUgPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShpbm9kZSkgLVxuZnMvZXh0NC9pbmxpbmUuYy0xODI5LVx0XHRcdFx0RVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTE4Mzc9Ym9vbCBlbXB0eV9pbmxpbmVfZGlyKHN0cnVjdCBpbm9kZSAqZGlyLCBpbnQgKmhhc19pbmxpbmVfZGF0YSlcbi0tXG5mcy9leHQ0L2lubGluZS5jLTE4NjktXG5mcy9leHQ0L2lubGluZS5jOjE4NzA6XHRpbmxpbmVfbGVuID0gZXh0NF9nZXRfaW5saW5lX3NpemUoZGlyKTtcbmZzL2V4dDQvaW5saW5lLmMtMTg3MS1cdG9mZnNldCA9IEVYVDRfSU5MSU5FX0RPVERPVF9TSVpFO1xuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTkxMT1pbnQgZXh0NF9pbmxpbmVfZGF0YV9pb21hcChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaW9tYXAgKmlvbWFwKVxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTkzMi1cdGlvbWFwLVx1MDAzZW9mZnNldCA9IDA7XG5mcy9leHQ0L2lubGluZS5jOjE5MzM6XHRpb21hcC1cdTAwM2VsZW5ndGggPSBtaW5fdChsb2ZmX3QsIGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKSxcbmZzL2V4dDQvaW5saW5lLmMtMTkzNC1cdFx0XHQgICAgICBpX3NpemVfcmVhZChpbm9kZSkpO1xuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTk0Mz1pbnQgZXh0NF9pbmxpbmVfZGF0YV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xOTc4LVx0aV9zaXplID0gaW5vZGUtXHUwMDNlaV9zaXplO1xuZnMvZXh0NC9pbmxpbmUuYzoxOTc5Olx0aW5saW5lX3NpemUgPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShpbm9kZSk7XG5mcy9leHQ0L2lubGluZS5jLTE5ODAtXHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfZGlza3NpemUgPSBpX3NpemU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE3OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MzY1CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHJlYWRpbmcgdGhlIHByb3ZpZGVkIHRleHQ6CgoqKkRlbHZpbmcgaW50byBgZXh0NF9nZXRfaW5saW5lX3NpemVgKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgZXh0NF9nZXRfaW5saW5lX3NpemVgIGZ1bmN0aW9uLiBSaWdodCBvZmYgdGhlIGJhdCwgSSBrbm93IHRoaXMgaXMgcmVsYXRlZCB0byBob3cgdGhlIGV4dDQgZmlsZXN5c3RlbSBoYW5kbGVzIGlubGluZWQgZGF0YSwgd2hpY2ggaXMgYSBrZXkgb3B0aW1pemF0aW9uIGZvciBzbWFsbGVyIGZpbGVzLiBNeSBpbml0aWFsIHRob3VnaHQgcHJvY2VzcyBpcyBsaWtlbHkgdG8gcmV2b2x2ZSBhcm91bmQgdW5kZXJzdGFuZGluZyBob3cgaXQgY2FsY3VsYXRlcyB0aGUgbWF4aW11bSBzaXplIG9mIGRhdGEgdGhhdCBjYW4gYmUgZWZmaWNpZW50bHkgc3RvcmVkIGRpcmVjdGx5IHdpdGhpbiB0aGUgaW5vZGUgaXRzZWxmLCByYXRoZXIgdGhhbiBuZWVkaW5nIGFuIGV4dGVybmFsIGRhdGEgYmxvY2suIEkmIzM5O20gaW1tZWRpYXRlbHkgZ29pbmcgdG8gYmUgbG9va2luZyBmb3IgZmFjdG9ycyB0aGF0IGluZmx1ZW5jZSB0aGlzIHNpemU6IGlzIGl0IGJhc2VkIG9uIHRoZSBmaWxlc3lzdGVtJiMzOTtzIGJsb2NrIHNpemUsIHRoZSBzaXplIG9mIHRoZSBpbm9kZSBzdHJ1Y3R1cmUgaXRzZWxmLCBvciBwZXJoYXBzIHNvbWUgZGVmaW5lZCBjb25zdGFudHM/IEnigJltIGV4cGVjdGluZyB0byBzZWUgY2hlY2tzIGZvciB0aGluZ3MgbGlrZSB0aGUgYXZhaWxhYmxlIHNwYWNlIHdpdGhpbiB0aGUgaW5vZGUgZm9yIHRoZSBkYXRhLCBhbnkgb3ZlcmhlYWQgYXNzb2NpYXRlZCB3aXRoIGlubGluZSBtZXRhZGF0YSwgYW5kIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBhbGlnbm1lbnQgY29uc3RyYWludHMuIEkgYW50aWNpcGF0ZSB0aGF0IHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiBhIHNpemUsIHByZXN1bWFibHkgaW4gYnl0ZXMsIGluZGljYXRpbmcgdGhlIG1heGltdW0gYW1vdW50IG9mIGlubGluZSBkYXRhLiBJJiMzOTttIGFsc28ga2Vlbmx5IGludGVyZXN0ZWQgaW4gYW55IGVkZ2UgY2FzZXMgb3IgcG90ZW50aWFsIG9wdGltaXphdGlvbnMgdGhlIGZ1bmN0aW9uIGluY29ycG9yYXRlcywgYXMgdGhlc2UgYXJlIG9mdGVuIHRoZSBwb2ludHMgd2hlcmUgc3VidGxlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cyBjYW4gYmUgbWFkZS4gTXkgbWVudGFsIG1vZGVsIGlzIGFscmVhZHkgc3RhcnRpbmcgdG8gZm9ybXVsYXRlOiB0aGUgYWltIGhlcmUgaXMgdG8gbWluaW1pemUgZGlzayBJL08gZm9yIHNtYWxsIGZpbGVzLCBhbmQgdGhpcyBmdW5jdGlvbiBpcyB0aGUgZ2F0ZWtlZXBlciBmb3IgZGV0ZXJtaW5pbmcgaWYgYSBmaWxlIHF1YWxpZmllcyBmb3IgdGhpcyBvcHRpbWl6YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDE3OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZnMvZXh0NC9pbmxpbmUuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI5LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgMjk6XHRzdGF0aWMgaW50IGV4dDRfZ2V0X2lubGluZV9zaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4gIDMwOlx0e1xuICAzMTpcdFx0aWYgKEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfb2ZmKVxuICAzMjpcdFx0XHRyZXR1cm4gRVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplO1xuICAzMzpcdFxuICAzNDpcdFx0cmV0dXJuIDA7XG4gIDM1Olx0fVxuICAzNjpcdFxuICAzNzpcdHN0YXRpYyBpbnQgZ2V0X21heF9pbmxpbmVfeGF0dHJfdmFsdWVfc2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuICAzODpcdFx0XHRcdFx0XHQgICBzdHJ1Y3QgZXh0NF9pbG9jICppbG9jKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODg1OQoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDc0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgUG90ZW50aWFsIEluZm9ybWF0aW9uIExlYWsgaW4gZXh0NCBJbmxpbmUgRGF0YSBIYW5kbGluZyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBTbywgYGV4dDRfZ2V0X2lubGluZV9zaXplYCBqdXN0IHJldHVybnMgYGlfaW5saW5lX3NpemVgLiBBbmQgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgaXMgY2FsbGVkLiBJdCBzdGFydHMgYnkgbWFraW5nIHN1cmUgdGhhdCB0aGUgcmVxdWVzdGVkIGxlbmd0aCwgYGxlbmAsIGRvZXNuJiMzOTt0IGV4Y2VlZCBgaV9pbmxpbmVfc2l6ZWAuIFNvIGZhciwgc28gZ29vZCDigJMgYGxlbmAgaXMgZXNzZW50aWFsbHkgZXF1YWwgdG8gYGlfaW5saW5lX3NpemVgLiBUaGVuLCB0aGUgY29kZSBncmFicyB0aGUgbWluaW11bSBvZiBgbGVuYCBhbmQgYEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkVgLCBsZXQmIzM5O3MgY2FsbCBpdCBgY3BfbGVuYCBhbmQgY29waWVzIHRoYXQgbXVjaCBmcm9tIGByYXdfaW5vZGUtJmd0O2lfYmxvY2tgLgoKVGhlIGNvZGUgaGFzIGEgcG90ZW50aWFsIGlzc3VlIGhlcmU6IGl0IGFkanVzdHMgdGhlIGFtb3VudCBvZiBieXRlcyB0aGF0IGFyZSBiZWluZyBjb3BpZWQsIGFuZCBhZGp1c3RzIGBsZW5gLCB0aGVuIGNoZWNrcyBpZiBgbGVuYCBpcyBncmVhdGVyIHRoYW4gYGVudHJ5LSZndDtlX3ZhbHVlX3NpemVgLiBJZiBzbywgaXQgd2lsbCBjb3B5IG9ubHkgYGVudHJ5LSZndDtlX3ZhbHVlX3NpemVgIGJ5dGVzLiBUaGVuLCBpdCByZXR1cm5zIHRoaXMgcG90ZW50aWFsbHkgbGVzcyB0aGFuIGV4cGVjdGVkIGNvcHkgbGVuZ3RoLgoKTm93LCBpZiBgY3BfbGVuYCAqaXNuJiMzOTt0KiBlcXVhbCB0byB0aGUgb3JpZ2luYWwgYGlubGluZV9zaXplYCAod2hpY2ggaXMgYGlfaW5saW5lX3NpemVgKSwgdGhhdCYjMzk7cyB3aGVyZSB0aGluZ3MgZ2V0IGludGVyZXN0aW5nLiBCZWNhdXNlLCBsYXRlciBvbiwgYG1lbWNweWAgaXMgdXNlZCB0byBjb3B5IGBpbmxpbmVfc2l6ZWAgYnl0ZXMgZnJvbSBgYnVmYCB0byBgZGF0YV9iaC0mZ3Q7Yl9kYXRhYC4gSWYgdGhlIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIGZ1bmN0aW9uIHJldHVybmVkIGEgdmFsdWUgc21hbGxlciB0aGFuIGBpbmxpbmVfc2l6ZWAsIGBidWZgIGlzbiYjMzk7dCBmdWxseSBpbml0aWFsaXplZC4gVGhlIGltcGxpY2F0aW9uIGlzIHRoYXQgaWYgYGlfaW5saW5lX3NpemVgIGlzIGdyZWF0ZXIgdGhhbiB0aGUgZGF0YSYjMzk7cyB0cnVlIHNpemUsIHdlIGNvdWxkIGVuZCB1cCBjb3B5aW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGZyb20gYGJ1ZmAgdG8gYGRhdGFfYmgtJmd0O2JfZGF0YWAuCgpUaGUgcHJvYmxlbSBpcywgdGhlIGVudGlyZSBgZGF0YV9iaGAgaXMgdGhlbiBtYXJrZWQgYXMgZGlydHkgYW5kIHdyaXR0ZW4gdG8gZGlzay4gQW5kIHRoYXQmIzM5O3MgdGhlIHJlZCBmbGFnISBUaGlzIGNvdWxkIHBvdGVudGlhbGx5IGxlYWQgdG8gYW4gaW5mb3JtYXRpb24gbGVhayDigJMgdW5pbml0aWFsaXplZCBoZWFwIG1lbW9yeSBlbmRpbmcgdXAgb24gdGhlIGJsb2NrIGRldmljZS4gV2FpdCwgaXNuJiMzOTt0IHRoYXQgcHJlY2lzZWx5IHRoZSBzb3J0IG9mIHRoaW5nIEtNU0FOIGlzIHN1cHBvc2VkIHRvIGNhdGNoPyBLTVNBTiBpcyB1c3VhbGx5IGdvb2QgYXQgZGV0ZWN0aW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzZSwgZXNwZWNpYWxseSBpZiBpdCYjMzk7cyBiZWluZyB1c2VkIGluIGNvbmRpdGlvbmFsIGJyYW5jaGVzIG9yIGJlaW5nIGNvcGllZCB0byB1c2Vyc3BhY2UuIEJ1dCBpdCBhbHNvIGhvb2tzIGJsb2NrIEkvTyEgU28gd3JpdGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSB0byBkaXNrICppcyogYW4gaW5mby1sZWFrIGFuZCBLTVNBTiBzaG91bGQgY2F0Y2ggaXQuCgpUaGUgY3JpdGljYWwgcXVlc3Rpb24gbm93IGJlY29tZXM6IGlzIHRoZXJlIGEgc2NlbmFyaW8gd2hlcmUgYGlfaW5saW5lX3NpemVgIGNhbiBiZSBsYXJnZXIgdGhhbiB0aGUgYWN0dWFsIGlubGluZSBkYXRhPyBJIG5lZWQgdG8gY2hlY2sgd2hlcmUgYGlfaW5saW5lX3NpemVgIGlzIGJlaW5nIHNldCB0byBkZXRlcm1pbmUgaWYgdGhpcyBjYW4gYWN0dWFsbHkgaGFwcGVuLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpX2lubGluZV9zaXplID0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXh0NC9pbmxpbmUuYz0xNDU9aW50IGV4dDRfZmluZF9pbmxpbmVfZGF0YV9ub2xvY2soc3RydWN0IGlub2RlICppbm9kZSlcbi0tXG5mcy9leHQ0L2lubGluZS5jLTE3NS1cdFx0XHRcdFx0KHZvaWQgKilleHQ0X3Jhd19pbm9kZShcdTAwMjZpcy5pbG9jKSk7XG5mcy9leHQ0L2lubGluZS5jOjE3NjpcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplID0gRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSAmIzQzO1xuZnMvZXh0NC9pbmxpbmUuYy0xNzctXHRcdFx0XHRsZTMyX3RvX2NwdShpcy5zLmhlcmUtXHUwMDNlZV92YWx1ZV9zaXplKTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTI2OD1zdGF0aWMgaW50IGV4dDRfY3JlYXRlX2lubGluZV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0zMjUtXHRcdFx0XHQgICAgICAodm9pZCAqKWV4dDRfcmF3X2lub2RlKFx1MDAyNmlzLmlsb2MpKTtcbmZzL2V4dDQvaW5saW5lLmM6MzI2Olx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplID0gbGVuICYjNDM7IEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkU7XG5mcy9leHQ0L2lubGluZS5jLTMyNy1cdGV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRTKTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTMzNz1zdGF0aWMgaW50IGV4dDRfdXBkYXRlX2lubGluZV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0zOTUtXHRcdFx0XHQgICAgICAodm9pZCAqKWV4dDRfcmF3X2lub2RlKFx1MDAyNmlzLmlsb2MpKTtcbmZzL2V4dDQvaW5saW5lLmM6Mzk2Olx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplID0gRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSAmIzQzO1xuZnMvZXh0NC9pbmxpbmUuYy0zOTctXHRcdFx0XHRsZTMyX3RvX2NwdShpcy5zLmhlcmUtXHUwMDNlZV92YWx1ZV9zaXplKTtcbi0tXG5mcy9leHQ0L2lubGluZS5jPTQzNz1zdGF0aWMgaW50IGV4dDRfZGVzdHJveV9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTQ5My1cdEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfb2ZmID0gMDtcbmZzL2V4dDQvaW5saW5lLmM6NDk0Olx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplID0gMDtcbmZzL2V4dDQvaW5saW5lLmMtNDk1LVx0ZXh0NF9jbGVhcl9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpO1xuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTA3ND1zdGF0aWMgaW50IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfZnNibGtfdCBibG9jayxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTExNjktXHRcdEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfb2ZmID0gMDtcbmZzL2V4dDQvaW5saW5lLmM6MTE3MDpcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9zaXplID0gMDtcbmZzL2V4dDQvaW5saW5lLmMtMTE3MS1cdFx0ZXh0NF9jbGVhcl9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpO1xuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTk0Mz1pbnQgZXh0NF9pbmxpbmVfZGF0YV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0yMDMwLVxuZnMvZXh0NC9pbmxpbmUuYzoyMDMxOlx0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfaW5saW5lX3NpemUgPSBpX3NpemUgXHUwMDNjXG5mcy9leHQ0L2lubGluZS5jLTIwMzItXHRcdFx0XHRcdEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUgP1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTAxOAoJCQkJCQkJb3V0cHV0OiAyMDYKCQkJCQkJCXRob3VnaHRzOiAyODAxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKktNU0FOIEFzc2Vzc21lbnQ6IElubGluZSBEYXRhIENvbnZlcnNpb24gRml4KioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGdvYWwgaGVyZSBpcyB0byBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSBpc3N1ZXMgdGhhdCBLTVNBTiAoS2VybmVsIE1lbW9yeSBTYW5pdGl6ZXIpIHNob3VsZCBiZSBjb25jZXJuZWQgd2l0aC4gVGhlIHBhdGNoIGlzIGFib3V0IHNhZmVseSBoYW5kbGluZyB0aGUgY29udmVyc2lvbiBvZiBleHQ0IGlubGluZSBkYXRhIHRvIGEgcmVndWxhciBibG9jaywgc3BlY2lmaWNhbGx5IGFkZHJlc3NpbmcgYSBkYXRhIGxvc3Mgc2NlbmFyaW8uCgpJbml0aWFsbHksIEkgc2VlIHRoYXQgYEVYVDRfSShpbm9kZSktJmd0O2lfaW5saW5lX3NpemVgIGlzIGNhbGN1bGF0ZWQuIEl0JiMzOTtzIGJ1aWx0IGZyb20gYEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkVgIGFuZCB0aGUgYGVfdmFsdWVfc2l6ZWAgb2YgYW4geGF0dHIgZW50cnkuIEkgbWFkZSBzdXJlIHRvIG5vdGUgdGhhdCBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCBpcyBhbHdheXMgZGVzaWduZWQgdG8gcmVhZCBleGFjdGx5IHRoaXMgc2l6ZS4gQ29ycnVwdGVkIHhhdHRyIGVudHJpZXMgYXJlIGhhbmRsZWQsIGFuZCBhIGBtaW5fdGAgaXMgdXNlZCB0byBlbnN1cmUgdGhlIHJpZ2h0IHNpemUgaXMgcmVhZC4KClRoZSBjb3JlIG9mIHRoZSBmaXggaXMgdG8gYXZvaWQgZGVzdHJveWluZyB0aGUgaW5saW5lIGRhdGEgYW5kIHRoZW4sIGlmIGFsbG9jYXRpb24gZmFpbHMsIGhhdmluZyB0byAqcmUqLXJlc3RvcmUgaXQsIHdoaWNoIGNvdWxkIGZhaWwuICBUaGUgcGF0Y2ggbm93OgoKMS4gIEFsbG9jYXRlcyBhICpuZXcqIGJsb2NrLgoyLiAgSW5pdGlhbGl6ZXMgdGhhdCBuZXcgYmxvY2sgKHplcm9lcyBpdCBvdXQpLgozLiAgQ29waWVzIHRoZSBleGlzdGluZyBpbmxpbmUgZGF0YSBpbnRvIHRoZSAqbmV3KiBibG9jay4KNC4gIEF0b21pY2FsbHkgc3dpdGNoZXMgdGhlIGlub2RlIHRvIHVzZSB0aGUgKm5ldyogYmxvY2suCgpFc3NlbnRpYWxseSwgdGhlcmUgaXMgbm8gbW9yZSDigJxkZXN0cm95IGFuZCBwb3RlbnRpYWxseSBmYWlsIHRvIHJlc3RvcmXigJ0uIFRoaXMgcmVkdWNlcyB0aGUgd2luZG93IG9mIHBvc3NpYmxlIGRhdGEgbG9zcy4gVGhlIG9sZCBjb2RlIGhhZCB0byBjcmVhdGUgdGhlIGlubGluZSBkYXRhLCBhbmQgdGhlbiBpdCB3b3VsZCByZWFkIGlubGluZSBkYXRhIHdoaWNoIGhhZCBpc3N1ZXMgd2hlcmUgaXQgY291bGQgYmUgY29ycnVwdGVkLgoKTXkgcHJpbWFyeSBjb25jZXJuIGlzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBMZXQmIzM5O3MgbWFrZSBzdXJlIHRoYXQgbm90aGluZyBpcyBiZWluZyByZWFkIGZyb20gdW5pbml0aWFsaXplZCBtZW1vcnkgbG9jYXRpb25zIG9yIGV4cG9zZWQgYXMgc3VjaC4KCjEuICAqKmBpbm9kZV9idWZgKio6ICBUaGlzIGlzIGFsbG9jYXRlZCB1c2luZyBga21hbGxvYyhpbm9kZV9zaXplLCBHRlBfTk9GUylgLiAgYGlub2RlX3NpemVgIGlzIGNhbGN1bGF0ZWQgZnJvbSBgRVhUNF9JTk9ERV9TSVpFKGlub2RlLSZndDtpX3NiKWAuICBUaGUgcGF0Y2ggYG1lbWNweWAgKmNvcGllcyogdGhlIGNvbnRlbnRzIG9mIHRoZSByYXcgaW5vZGUgZGF0YSBpbnRvIGBpbm9kZV9idWZgLiAgU28gYGlub2RlX2J1ZmAgYmVjb21lcyBmdWxseSBpbml0aWFsaXplZC4gIFRoZSBjaGVjayBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvcHkgKmludG8qIGBpbm9kZV9idWZgIGlzIHNhZmUuCjIuICAqKmBkYXRhX2JoLSZndDtiX2RhdGFgOioqICBUaGlzIGJ1ZmZlciBoZWFkIGlzIGFsbG9jYXRlZCwgYW5kIHRoZW4gaXRzIGRhdGEgaXMgZXhwbGljaXRseSB6ZXJvZWQgd2l0aCBgbWVtc2V0KGRhdGFfYmgtJmd0O2JfZGF0YSwgMCwgaW5vZGUtJmd0O2lfc2ItJmd0O3NfYmxvY2tzaXplKTtgLiAgVGhpcyBlbnN1cmVzIGV2ZXJ5dGhpbmcgd3JpdHRlbiBpbnRvIHRoaXMgZGF0YSBibG9jayBpcyBpbml0aWFsaXplZC4KMy4gICoqYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYDoqKiBJIHRoZW4gY2hlY2tlZCB0aGUgY29kZSBmb3IgemVyb2luZyBhbmQgaW5pdGlhbGl6aW5nIGluIHRoZSBgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2tgLiBJbiB0aGUgbmV3IGNvZGUsIGBtZW1zZXQoKHZvaWQgKilyYXdfaW5vZGUtJmd0O2lfYmxvY2ssIDAsIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpO2AgZXhwbGljaXRseSB6ZXJvZXMgdGhlIGlubGluZSBkYXRhIHNwYWNlLiBUaGVuLCBpZiBleHRlbnRzIGFyZSBlbmFibGVkLCBgZXh0NF9leHRfdHJlZV9pbml0YCBpbml0aWFsaXplcyB0aGUgZXh0ZW50IHRyZWUgcm9vdC4gTGF0ZXIgY29kZSBpbml0aWFsaXplcyBhbmQgaW5zZXJ0cyBleHRlbnRzLiBJZiBhbGwgb2YgdGhpcyBmYWlscywgdGhlIG9yaWdpbmFsIGRhdGEgaXMgcmVzdG9yZWQgZnJvbSB0aGUgZnVsbHkgaW5pdGlhbGl6ZWQgYGlub2RlX2J1ZmAuCjQuICAqKktNU0FOIFJ1bGVzKio6ICBJIHdlbnQgdGhyb3VnaCB0aGUgc3RhbmRhcmQgS01TQU4gcnVsZSBzZXQ6CgogICAgKiAgIE5vIGtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSB3aXRoIHBvc3NpYmx5IHVuaW5pdGlhbGl6ZWQgZmllbGRzIChubyB1c2VyIHNwYWNlIGludGVyYWN0aW9uKS4KICAgICogICBObyBjb25kaXRpb25hbCBsb2dpYy9icmFuY2hpbmcgdGhhdCByZWxpZXMgb24gcG9zc2libHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuCiAgICAqICAgTm8gYWxsb2NhdGlvbiBvZiBjb21wbGV4IHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMgY291bGQgYmUgcmVhZCBsYXRlciAoZXZlcnl0aGluZyBpcyBpbml0aWFsaXplZCB2aWEgYG1lbWNweWAgb3IgYG1lbXNldGApLgogICAgKiAgIE5vIGJvdW5kcyBjaGVja3Mgb3IgbGVuZ3RocyB0aGF0IHdvdWxkIGFsbG93IGFjY2Vzc2luZyB1bmluaXRpYWxpemVkIGJ5dGVzIChub3QgcHJlc2VudCkuCgogICAgVGhlcmVmb3JlLCBLTVNBTiBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeSBoZXJlLgoKNS4gICoqRGF0YSBTdHJ1Y3R1cmVzIENoZWNrKio6IEkgbWFkZSBzdXJlIHRoYXQgdGhlcmUgd2VyZSBubyBpc3N1ZXMgd2l0aCBgZXh0NF9tYl9uZXdfYmxvY2tzYCByZXR1cm5pbmcgdW5pbml0aWFsaXplZCBtZW1vcnkgb3IgYW55IGlzc3VlcyB3aXRoIGBleHQ0X3hhdHRyX2lib2R5X2ZpbmRgIG9yIGBleHQ0X3hhdHRyX2luZm9gLiBUaGlzIHdhcyBkb25lIGJ5IGNoZWNraW5nIHdoZXJlIGBhcmAsIGBpc2AsIGBpYCwgYW5kIGBkYXRhX2JoYCB3ZXJlIGZ1bGx5IGluaXRpYWxpemVkLgoKVGhlIHBhdGNoIGlzIGEgKmxvZ2ljYWwqIGZpeDsgaXQgYWRkcmVzc2VzIGEgcmFjZSBjb25kaXRpb24uIEl0ICpkb2VzKiBub3QgaW50cm9kdWNlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzc3Vlcy4gIFRoZSBuZXcgYmxvY2sgYWxsb2NhdGlvbiBpcyBpbml0aWFsaXplZCwgYW5kIGV4aXN0aW5nIGRhdGEgaXMgY29waWVkLiAgQW55IG1lbW9yeSBjb3JydXB0aW9uIHdvdWxkIGxpa2VseSBiZSBjYXVnaHQgYnkgS0FTQU4gKEtlcm5lbCBBZGRyZXNzIFNhbml0aXplcikuIE5vIEtNU0FOLXNwZWNpZmljIGNoZWNrcyBhcmUgbmVjZXNzYXJ5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQwLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxNzoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZWZhY3RvcnMgdGhlIGNvbnZlcnNpb24gb2YgZXh0NCBpbmxpbmUgZGF0YSB0byBhIGRlZGljYXRlZCBibG9jayB0byBwcmV2ZW50IGRhdGEgbG9zcyBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuIEl0IGFsbG9jYXRlcyBhIG5ldyBibG9jaywgemVyb2VzIGl0LCBjb3BpZXMgdGhlIGlubGluZSBkYXRhLCBhbmQgdGhlbiB1cGRhdGVzIHRoZSBpbm9kZS4gQWxsIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkgKGBpbm9kZV9idWZgLCBgYnVmYCwgYGRhdGFfYmgtXHUwMDNlYl9kYXRhYCkgaXMgZnVsbHkgaW5pdGlhbGl6ZWQgdmlhIGBtZW1jcHlgIGZyb20gZXhpc3RpbmcgaW5pdGlhbGl6ZWQgZGF0YSBvciBgbWVtc2V0YCB0byB6ZXJvLiBTdGFjayB2YXJpYWJsZXMgKGBhcmAsIGBpc2AsIGBpYCwgYG5ld2V4YCkgYXJlIGZ1bGx5IHplcm8taW5pdGlhbGl6ZWQgZWl0aGVyIHZpYSBgbWVtc2V0YCBvciBicmFjZS1lbmNsb3NlZCBpbml0aWFsaXplcnMuIFRoZXJlIGlzIG5vIGV4cG9zdXJlIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHRvIHVzZXIgc3BhY2Ugb3IgZGlzaywgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzIHVzZWQgaW4gY29udHJvbCBmbG93LiBBbnkgcG90ZW50aWFsIG1lbW9yeSBlcnJvcnMgKGxpa2Ugb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBvciB1c2UtYWZ0ZXItZnJlZSkgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QganVzdGlmaWVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIHRoZSBjb252ZXJzaW9uIG9mIGV4dDQgaW5saW5lIGRhdGEgdG8gYSBkZWRpY2F0ZWQgYmxvY2sgdG8gcHJldmVudCBkYXRhIGxvc3Mgb24gYWxsb2NhdGlvbiBmYWlsdXJlLiBJdCBhbGxvY2F0ZXMgYSBuZXcgYmxvY2ssIHplcm9lcyBpdCwgY29waWVzIHRoZSBpbmxpbmUgZGF0YSwgYW5kIHRoZW4gdXBkYXRlcyB0aGUgaW5vZGUuIEFsbCBuZXdseSBhbGxvY2F0ZWQgbWVtb3J5IChgaW5vZGVfYnVmYCwgYGJ1ZmAsIGBkYXRhX2JoLVx1MDAzZWJfZGF0YWApIGlzIGZ1bGx5IGluaXRpYWxpemVkIHZpYSBgbWVtY3B5YCBmcm9tIGV4aXN0aW5nIGluaXRpYWxpemVkIGRhdGEgb3IgYG1lbXNldGAgdG8gemVyby4gU3RhY2sgdmFyaWFibGVzIChgYXJgLCBgaXNgLCBgaWAsIGBuZXdleGApIGFyZSBmdWxseSB6ZXJvLWluaXRpYWxpemVkIGVpdGhlciB2aWEgYG1lbXNldGAgb3IgYnJhY2UtZW5jbG9zZWQgaW5pdGlhbGl6ZXJzLiBUaGVyZSBpcyBubyBleHBvc3VyZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB0byB1c2VyIHNwYWNlIG9yIGRpc2ssIGFuZCBubyB1bmluaXRpYWxpemVkIG1lbW9yeSBpcyB1c2VkIGluIGNvbnRyb2wgZmxvdy4gQW55IHBvdGVudGlhbCBtZW1vcnkgZXJyb3JzIChsaWtlIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMgb3IgdXNlLWFmdGVyLWZyZWUpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IGp1c3RpZmllZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTY6NTE6MTAuMDY2MzkxNTg3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcwNDk0OTEyNzIzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhXCIsXG4gICAgXCJleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5XCJcbiAgXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgdGhlIGNvbnZlcnNpb24gb2YgZXh0NCBpbmxpbmUgZGF0YSB0byBhIGRlZGljYXRlZCBibG9jayB0byBwcmV2ZW50IGRhdGEgbG9zcyBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuIEl0IGFsbG9jYXRlcyBhIG5ldyBibG9jaywgemVyb2VzIGl0LCBjb3BpZXMgdGhlIGlubGluZSBkYXRhLCBhbmQgdGhlbiB1cGRhdGVzIHRoZSBpbm9kZS4gQWxsIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkgKGBpbm9kZV9idWZgLCBgYnVmYCwgYGRhdGFfYmgtXFx1MDAzZWJfZGF0YWApIGlzIGZ1bGx5IGluaXRpYWxpemVkIHZpYSBgbWVtY3B5YCBmcm9tIGV4aXN0aW5nIGluaXRpYWxpemVkIGRhdGEgb3IgYG1lbXNldGAgdG8gemVyby4gU3RhY2sgdmFyaWFibGVzIChgYXJgLCBgaXNgLCBgaWAsIGBuZXdleGApIGFyZSBmdWxseSB6ZXJvLWluaXRpYWxpemVkIGVpdGhlciB2aWEgYG1lbXNldGAgb3IgYnJhY2UtZW5jbG9zZWQgaW5pdGlhbGl6ZXJzLiBUaGVyZSBpcyBubyBleHBvc3VyZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB0byB1c2VyIHNwYWNlIG9yIGRpc2ssIGFuZCBubyB1bmluaXRpYWxpemVkIG1lbW9yeSBpcyB1c2VkIGluIGNvbnRyb2wgZmxvdy4gQW55IHBvdGVudGlhbCBtZW1vcnkgZXJyb3JzIChsaWtlIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMgb3IgdXNlLWFmdGVyLWZyZWUpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IGp1c3RpZmllZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gaG93IGV4dDQgY29udmVydHMgaW5saW5lIGRhdGEgdG8gYmxvY2tzLCByZXBsYWNpbmcgdGhlIHVzZSBvZiBgZXh0NF9tYXBfYmxvY2tzYCB3aXRoIGRpcmVjdCBibG9jayBhbGxvY2F0aW9uIHZpYSBgZXh0NF9tYl9uZXdfYmxvY2tzYCBhbmQgaW50cm9kdWNpbmcgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gVGhpcyBtb2RpZmllcyBjb3JlIHJlYWNoYWJsZSBsb2dpYyBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCB3aGljaCBpcyB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNjo1MToxMC4wNjYzOTkyNjdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyODM2NTQ0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDEyNGM3ZWE2Y2RkMDJhYzRlMGFhNjEwNWVkMDU1MjE0ZGYxODE1OWFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBBdWcgMjIgMTY6NTE6MDkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxpbmUuYyBiL2ZzL2V4dDQvaW5saW5lLmNcXG5pbmRleCA4MDQ1ZTRmZjI3MGM3Li41MDcxMDZjNzJlODJmIDEwMDY0NFxcbi0tLSBhL2ZzL2V4dDQvaW5saW5lLmNcXG4rKysgYi9mcy9leHQ0L2lubGluZS5jXFxuQEAgLTE0LDYgKzE0LDcgQEBcXG4gI2luY2x1ZGUgXFxcImV4dDQuaFxcXCJcXG4gI2luY2x1ZGUgXFxcInhhdHRyLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJ0cnVuY2F0ZS5oXFxcIlxcbisjaW5jbHVkZSBcXFwiZXh0NF9leHRlbnRzLmhcXFwiXFxuIFxcbiAjZGVmaW5lIEVYVDRfWEFUVFJfU1lTVEVNX0RBVEFcXHRcXFwiZGF0YVxcXCJcXG4gI2RlZmluZSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFXFx0KChzaXplb2YoX19sZTMyKSAqIEVYVDRfTl9CTE9DS1MpKVxcbkBAIC0xMDcwLDIxICsxMDcxLDExNSBAQCBzdGF0aWMgaW50IGV4dDRfdXBkYXRlX2lubGluZV9kaXIoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICpkaXIsXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCBleHQ0X3Jlc3RvcmVfaW5saW5lX2RhdGEoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSxcXG4tXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgZXh0NF9pbG9jICppbG9jLFxcbi1cXHRcXHRcXHRcXHQgICAgIHZvaWQgKmJ1ZiwgaW50IGlubGluZV9zaXplKVxcbitzdGF0aWMgaW50IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfZnNibGtfdCBibG9jayxcXG4rXFx0XFx0XFx0XFx0XFx0dW5zaWduZWQgaW50IGxlbiwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaClcXG4ge1xcbi1cXHRpbnQgcmV0O1xcbitcXHRzdHJ1Y3QgZXh0NF9pbm9kZV9pbmZvICplaSA9IEVYVDRfSShpbm9kZSk7XFxuK1xcdHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmQgaXMgPSB7XFxuK1xcdFxcdC5zID0geyAubm90X2ZvdW5kID0gMCwgfSxcXG4rXFx0fTtcXG4rXFx0c3RydWN0IGV4dDRfeGF0dHJfaW5mbyBpID0ge1xcbitcXHRcXHQubmFtZV9pbmRleCA9IEVYVDRfWEFUVFJfSU5ERVhfU1lTVEVNLFxcbitcXHRcXHQubmFtZSA9IEVYVDRfWEFUVFJfU1lTVEVNX0RBVEEsXFxuK1xcdFxcdC52YWx1ZSA9IE5VTEwsXFxuK1xcdFxcdC52YWx1ZV9sZW4gPSAwLFxcbitcXHR9O1xcbitcXHRpbnQgZXJyb3I7XFxuK1xcdGludCBpbm9kZV9zaXplO1xcbitcXHR2b2lkICppbm9kZV9idWYgPSBOVUxMO1xcbitcXHRzdHJ1Y3QgZXh0NF9pbm9kZSAqcmF3X2lub2RlO1xcbiBcXG4tXFx0cmV0ID0gZXh0NF9jcmVhdGVfaW5saW5lX2RhdGEoaGFuZGxlLCBpbm9kZSwgaW5saW5lX3NpemUpO1xcbi1cXHRpZiAocmV0KSB7XFxuLVxcdFxcdGV4dDRfbXNnKGlub2RlLVxcdTAwM2VpX3NiLCBLRVJOX0VNRVJHLFxcbi1cXHRcXHRcXHRcXFwiZXJyb3IgcmVzdG9yaW5nIGlubGluZV9kYXRhIGZvciBpbm9kZSAtLSBwb3RlbnRpYWwgZGF0YSBsb3NzISAoaW5vZGUgJWxsdSwgZXJyb3IgJWQpXFxcIixcXG4tXFx0XFx0XFx0aW5vZGUtXFx1MDAzZWlfaW5vLCByZXQpO1xcbi1cXHRcXHRyZXR1cm47XFxuK1xcdGlub2RlX3NpemUgPSBFWFQ0X0lOT0RFX1NJWkUoaW5vZGUtXFx1MDAzZWlfc2IpO1xcbitcXHRpbm9kZV9idWYgPSBrbWFsbG9jKGlub2RlX3NpemUsIEdGUF9OT0ZTKTtcXG4rXFx0aWYgKCFpbm9kZV9idWYpIHtcXG4rXFx0XFx0ZXJyb3IgPSAtRU5PTUVNO1xcbitcXHRcXHRkb3duX3dyaXRlKFxcdTAwMjZlaS1cXHUwMDNlaV9kYXRhX3NlbSk7XFxuK1xcdFxcdGV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7XFxuK1xcdFxcdGV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTtcXG4rXFx0XFx0dXBfd3JpdGUoXFx1MDAyNmVpLVxcdTAwM2VpX2RhdGFfc2VtKTtcXG4rXFx0XFx0cmV0dXJuIGVycm9yO1xcbiBcXHR9XFxuLVxcdGV4dDRfd3JpdGVfaW5saW5lX2RhdGEoaW5vZGUsIGlsb2MsIGJ1ZiwgMCwgaW5saW5lX3NpemUpO1xcbi1cXHRleHQ0X3NldF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpO1xcbitcXHRkb3duX3dyaXRlKFxcdTAwMjZlaS1cXHUwMDNlaV9kYXRhX3NlbSk7XFxuK1xcdGVycm9yID0gZXh0NF9nZXRfaW5vZGVfbG9jKGlub2RlLCBcXHUwMDI2aXMuaWxvYyk7XFxuK1xcdGlmIChlcnJvcikge1xcbitcXHRcXHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xcbitcXHRcXHRleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7XFxuK1xcdFxcdHVwX3dyaXRlKFxcdTAwMjZlaS1cXHUwMDNlaV9kYXRhX3NlbSk7XFxuK1xcdFxcdGtmcmVlKGlub2RlX2J1Zik7XFxuK1xcdFxcdHJldHVybiBlcnJvcjtcXG4rXFx0fVxcbitcXHRyYXdfaW5vZGUgPSBleHQ0X3Jhd19pbm9kZShcXHUwMDI2aXMuaWxvYyk7XFxuK1xcdEJVRkZFUl9UUkFDRShpcy5pbG9jLmJoLCBcXFwiZ2V0X3dyaXRlX2FjY2Vzc1xcXCIpO1xcbitcXHRlcnJvciA9IGV4dDRfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKGhhbmRsZSwgaW5vZGUtXFx1MDAzZWlfc2IsIGlzLmlsb2MuYmgsIEVYVDRfSlRSX05PTkUpO1xcbitcXHRpZiAoZXJyb3IpIHtcXG4rXFx0XFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcXG4rXFx0XFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpO1xcbitcXHRcXHRnb3RvIG91dDtcXG4rXFx0fVxcbitcXHRtZW1jcHkoaW5vZGVfYnVmLCAodm9pZCAqKXJhd19pbm9kZSwgaW5vZGVfc2l6ZSk7XFxuK1xcdG1lbXNldCgodm9pZCAqKXJhd19pbm9kZS1cXHUwMDNlaV9ibG9jaywgMCwgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSk7XFxuK1xcdG1lbXNldChlaS1cXHUwMDNlaV9kYXRhLCAwLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTtcXG4rXFx0aWYgKGV4dDRfaGFzX2ZlYXR1cmVfZXh0ZW50cyhpbm9kZS1cXHUwMDNlaV9zYikgXFx1MDAyNlxcdTAwMjZcXG4rXFx0XFx0KFNfSVNESVIoaW5vZGUtXFx1MDAzZWlfbW9kZSkgfHwgU19JU1JFRyhpbm9kZS1cXHUwMDNlaV9tb2RlKSB8fCBTX0lTTE5LKGlub2RlLVxcdTAwM2VpX21vZGUpKSkge1xcbitcXHRcXHRleHQ0X3NldF9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0VYVEVOVFMpO1xcbitcXHRcXHRleHQ0X2V4dF90cmVlX2luaXQoaGFuZGxlLCBpbm9kZSk7XFxuK1xcdFxcdHN0cnVjdCBleHQ0X2V4dF9wYXRoICpwYXRoID0gZXh0NF9maW5kX2V4dGVudChpbm9kZSwgMCwgTlVMTCwgMCk7XFxuK1xcbitcXHRcXHRpZiAoSVNfRVJSKHBhdGgpKSB7XFxuK1xcdFxcdFxcdGVycm9yID0gUFRSX0VSUihwYXRoKTtcXG4rXFx0XFx0XFx0Z290byByZWNvdmVyeTtcXG4rXFx0XFx0fVxcbitcXHRcXHRzdHJ1Y3QgZXh0NF9leHRlbnQgbmV3ZXg7XFxuK1xcbitcXHRcXHRuZXdleC5lZV9ibG9jayA9IGNwdV90b19sZTMyKDApO1xcbitcXHRcXHRuZXdleC5lZV9sZW4gPSBjcHVfdG9fbGUxNigxKTtcXG4rXFx0XFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFxcdTAwMjZuZXdleCwgYmxvY2spO1xcbitcXHRcXHRwYXRoID0gZXh0NF9leHRfaW5zZXJ0X2V4dGVudChoYW5kbGUsIGlub2RlLCBwYXRoLCBcXHUwMDI2bmV3ZXgsIDApO1xcbitcXHRcXHRpZiAoSVNfRVJSKHBhdGgpKSB7XFxuK1xcdFxcdFxcdGVycm9yID0gUFRSX0VSUihwYXRoKTtcXG4rXFx0XFx0XFx0aWYgKGVycm9yID09IC1FRFFVT1QgfHwgZXJyb3IgPT0gLUVOT1NQQykge1xcbitcXHRcXHRcXHRcXHRnb3RvIHJlY292ZXJ5O1xcbitcXHRcXHRcXHR9IGVsc2Uge1xcbitcXHRcXHRcXHRcXHRleHQ0X2ZvcmdldChoYW5kbGUsIDAsIGlub2RlLCBiaCwgYmxvY2spO1xcbitcXHRcXHRcXHRcXHRnb3RvIG5vZnJlZTtcXG4rXFx0XFx0XFx0fVxcbitcXHRcXHR9IGVsc2Uge1xcbitcXHRcXHRcXHRleHQ0X2ZyZWVfZXh0X3BhdGgocGF0aCk7XFxuK1xcdFxcdH1cXG4rXFx0fSBlbHNlIHtcXG4rXFx0XFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9kYXRhWzBdID0gY3B1X3RvX2xlMzIoYmxvY2spO1xcbitcXHR9XFxuK1xcdGVycm9yID0gZXh0NF94YXR0cl9pYm9keV9maW5kKGlub2RlLCBcXHUwMDI2aSwgXFx1MDAyNmlzKTtcXG4rXFx0aWYgKGVycm9yKVxcbitcXHRcXHRnb3RvIHJlY292ZXJ5O1xcbitcXHRpZiAoIWlzLnMubm90X2ZvdW5kKVxcbitcXHRcXHRlcnJvciA9IGV4dDRfeGF0dHJfaWJvZHlfc2V0KGhhbmRsZSwgaW5vZGUsIFxcdTAwMjZpLCBcXHUwMDI2aXMpO1xcbityZWNvdmVyeTpcXG4rXFx0aWYgKGVycm9yKSB7XFxuK1xcdFxcdGV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7XFxuK1xcdFxcdGV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTtcXG4rbm9mcmVlOlxcbitcXHRcXHRtZW1jcHkoKHZvaWQgKilyYXdfaW5vZGUsIGlub2RlX2J1ZiwgaW5vZGVfc2l6ZSk7XFxuK1xcdFxcdG1lbWNweShlaS1cXHUwMDNlaV9kYXRhLCByYXdfaW5vZGUtXFx1MDAzZWlfYmxvY2ssIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpO1xcbitcXHRcXHRleHQ0X2NsZWFyX2lub2RlX2ZsYWcoaW5vZGUsIEVYVDRfSU5PREVfRVhURU5UUyk7XFxuK1xcdH0gZWxzZSB7XFxuK1xcdFxcdGV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9JTkxJTkVfREFUQSk7XFxuK1xcdFxcdGdldF9iaChpcy5pbG9jLmJoKTtcXG4rXFx0XFx0ZXJyb3IgPSBleHQ0X21hcmtfaWxvY19kaXJ0eShoYW5kbGUsIGlub2RlLCBcXHUwMDI2aXMuaWxvYyk7XFxuK1xcdFxcdEVYVDRfSShpbm9kZSktXFx1MDAzZWlfaW5saW5lX29mZiA9IDA7XFxuK1xcdFxcdEVYVDRfSShpbm9kZSktXFx1MDAzZWlfaW5saW5lX3NpemUgPSAwO1xcbitcXHRcXHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XFxuK1xcdFxcdGlmIChTX0lTRElSKGlub2RlLVxcdTAwM2VpX21vZGUpKSB7XFxuK1xcdFxcdFxcdGlfc2l6ZV93cml0ZShpbm9kZSwgaW5vZGUtXFx1MDAzZWlfc2ItXFx1MDAzZXNfYmxvY2tzaXplKTtcXG4rXFx0XFx0XFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9kaXNrc2l6ZSA9IGlub2RlLVxcdTAwM2VpX3NiLVxcdTAwM2VzX2Jsb2Nrc2l6ZTtcXG4rXFx0XFx0fVxcbitcXHRcXHRicmVsc2UoYmgpO1xcbitcXHR9XFxuK291dDpcXG4rXFx0YnJlbHNlKGlzLmlsb2MuYmgpO1xcbitcXHR1cF93cml0ZShcXHUwMDI2ZWktXFx1MDAzZWlfZGF0YV9zZW0pO1xcbitcXHRrZnJlZShpbm9kZV9idWYpO1xcbitcXHRyZXR1cm4gZXJyb3I7XFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbkBAIC0xMDk0LDggKzExODksMTEgQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXFxuIFxcdGludCBlcnJvcjtcXG4gXFx0dm9pZCAqYnVmID0gTlVMTDtcXG4gXFx0c3RydWN0IGJ1ZmZlcl9oZWFkICpkYXRhX2JoID0gTlVMTDtcXG4tXFx0c3RydWN0IGV4dDRfbWFwX2Jsb2NrcyBtYXA7XFxuIFxcdGludCBpbmxpbmVfc2l6ZTtcXG4rXFx0ZXh0NF9mc2Jsa190IG5ld2Jsb2NrID0gMDtcXG4rXFx0c3RydWN0IGV4dDRfYWxsb2NhdGlvbl9yZXF1ZXN0IGFyO1xcbitcXHRzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKGlub2RlLVxcdTAwM2VpX3NiKTtcXG4rXFx0dW5zaWduZWQgaW50IGFsbG9jYXRlZF9ibG9jaztcXG4gXFxuIFxcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xcbiBcXHRidWYgPSBrbWFsbG9jKGlubGluZV9zaXplLCBHRlBfTk9GUyk7XFxuQEAgLTExMjAsMjUgKzEyMTgsMjIgQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXFxuIFxcdFxcdFxcdGdvdG8gb3V0O1xcbiBcXHR9XFxuIFxcbi1cXHRlcnJvciA9IGV4dDRfZGVzdHJveV9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlLCBpbm9kZSk7XFxuLVxcdGlmIChlcnJvcilcXG4tXFx0XFx0Z290byBvdXQ7XFxuLVxcbi1cXHRtYXAubV9sYmxrID0gMDtcXG4tXFx0bWFwLm1fbGVuID0gMTtcXG4tXFx0bWFwLm1fZmxhZ3MgPSAwO1xcbi1cXHRlcnJvciA9IGV4dDRfbWFwX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBcXHUwMDI2bWFwLCBFWFQ0X0dFVF9CTE9DS1NfQ1JFQVRFKTtcXG4rXFx0bWVtc2V0KFxcdTAwMjZhciwgMCwgc2l6ZW9mKGFyKSk7XFxuK1xcdGFyLmlub2RlID0gaW5vZGU7XFxuK1xcdGFyLmxvZ2ljYWwgPSAwO1xcbitcXHRhci5sZW4gPSAxO1xcbitcXHRpZiAoU19JU1JFRyhpbm9kZS1cXHUwMDNlaV9tb2RlKSlcXG4rXFx0XFx0YXIuZmxhZ3MgPSBFWFQ0X01CX0hJTlRfREFUQTtcXG4rXFx0ZWxzZVxcbitcXHRcXHRhci5mbGFncyA9IDA7XFxuK1xcdG5ld2Jsb2NrID0gZXh0NF9tYl9uZXdfYmxvY2tzKGhhbmRsZSwgXFx1MDAyNmFyLCBcXHUwMDI2ZXJyb3IpO1xcbiBcXHRpZiAoZXJyb3IgXFx1MDAzYyAwKVxcbi1cXHRcXHRnb3RvIG91dF9yZXN0b3JlO1xcbi1cXHRpZiAoIShtYXAubV9mbGFncyBcXHUwMDI2IEVYVDRfTUFQX01BUFBFRCkpIHtcXG4tXFx0XFx0ZXJyb3IgPSAtRUlPO1xcbi1cXHRcXHRnb3RvIG91dF9yZXN0b3JlO1xcbi1cXHR9XFxuLVxcbi1cXHRkYXRhX2JoID0gc2JfZ2V0YmxrKGlub2RlLVxcdTAwM2VpX3NiLCBtYXAubV9wYmxrKTtcXG4rXFx0XFx0Z290byBvdXQ7XFxuK1xcdGFsbG9jYXRlZF9ibG9jayA9IEVYVDRfQzJCKHNiaSwgYXIubGVuKTtcXG4rXFx0ZGF0YV9iaCA9IHNiX2dldGJsayhpbm9kZS1cXHUwMDNlaV9zYiwgbmV3YmxvY2spO1xcbiBcXHRpZiAoIWRhdGFfYmgpIHtcXG4gXFx0XFx0ZXJyb3IgPSAtRU5PTUVNO1xcbi1cXHRcXHRnb3RvIG91dF9yZXN0b3JlO1xcbitcXHRcXHRnb3RvIG91dF9iaDtcXG4gXFx0fVxcbiBcXG4gXFx0bG9ja19idWZmZXIoZGF0YV9iaCk7XFxuQEAgLTExNDcsNyArMTI0Miw3IEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbiBcXHRpZiAoZXJyb3IpIHtcXG4gXFx0XFx0dW5sb2NrX2J1ZmZlcihkYXRhX2JoKTtcXG4gXFx0XFx0ZXJyb3IgPSAtRUlPO1xcbi1cXHRcXHRnb3RvIG91dF9yZXN0b3JlO1xcbitcXHRcXHRnb3RvIG91dF9iaDtcXG4gXFx0fVxcbiBcXHRtZW1zZXQoZGF0YV9iaC1cXHUwMDNlYl9kYXRhLCAwLCBpbm9kZS1cXHUwMDNlaV9zYi1cXHUwMDNlc19ibG9ja3NpemUpO1xcbiBcXG5AQCAtMTE1OSwyNCArMTI1NCwyOCBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcXG4gXFx0XFx0XFx0XFx0XFx0XFx0ICAgaW5vZGUsIGRhdGFfYmgpO1xcbiBcXHR9IGVsc2Uge1xcbiBcXHRcXHR1bmxvY2tfYnVmZmVyKGRhdGFfYmgpO1xcbi1cXHRcXHRpbm9kZS1cXHUwMDNlaV9zaXplID0gaW5vZGUtXFx1MDAzZWlfc2ItXFx1MDAzZXNfYmxvY2tzaXplO1xcbi1cXHRcXHRpX3NpemVfd3JpdGUoaW5vZGUsIGlub2RlLVxcdTAwM2VpX3NiLVxcdTAwM2VzX2Jsb2Nrc2l6ZSk7XFxuLVxcdFxcdEVYVDRfSShpbm9kZSktXFx1MDAzZWlfZGlza3NpemUgPSBpbm9kZS1cXHUwMDNlaV9zYi1cXHUwMDNlc19ibG9ja3NpemU7XFxuLVxcbiBcXHRcXHRlcnJvciA9IGV4dDRfaW5pdF9kaXJibG9jayhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLFxcbiBcXHRcXHRcXHQgIGxlMzJfdG9fY3B1KCgoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKilidWYpLVxcdTAwM2Vpbm9kZSksXFxuIFxcdFxcdFxcdCAgYnVmICsgRVhUNF9JTkxJTkVfRE9URE9UX1NJWkUsXFxuIFxcdFxcdFxcdCAgaW5saW5lX3NpemUgLSBFWFQ0X0lOTElORV9ET1RET1RfU0laRSk7XFxuLVxcdFxcdGlmICghZXJyb3IpXFxuLVxcdFxcdFxcdGVycm9yID0gZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgaW5vZGUpO1xcbiBcXHR9XFxuK291dF9iaDpcXG4rXFx0aWYgKGVycm9yKSB7XFxuK1xcdFxcdGludCBmbGFncyA9IDA7XFxuIFxcbi1vdXRfcmVzdG9yZTpcXG4tXFx0aWYgKGVycm9yKVxcbi1cXHRcXHRleHQ0X3Jlc3RvcmVfaW5saW5lX2RhdGEoaGFuZGxlLCBpbm9kZSwgaWxvYywgYnVmLCBpbmxpbmVfc2l6ZSk7XFxuK1xcdFxcdGlmIChkYXRhX2JoKVxcbitcXHRcXHRcXHRmbGFncyB8PSBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVDtcXG4rXFx0XFx0c3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpO1xcbiBcXG4rXFx0XFx0ZG93bl93cml0ZShcXHUwMDI2ZWktXFx1MDAzZWlfZGF0YV9zZW0pO1xcbitcXHRcXHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xcbitcXHRcXHRleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGRhdGFfYmgsIG5ld2Jsb2NrLCBhbGxvY2F0ZWRfYmxvY2ssIGZsYWdzKTtcXG4rXFx0XFx0dXBfd3JpdGUoXFx1MDAyNmVpLVxcdTAwM2VpX2RhdGFfc2VtKTtcXG4rXFx0fSBlbHNlIHtcXG4rXFx0XFx0ZXJyb3IgPSBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGUsIGlub2RlLFxcbitcXHRcXHRcXHRcXHRuZXdibG9jaywgYWxsb2NhdGVkX2Jsb2NrLCBkYXRhX2JoKTtcXG4rXFx0fVxcbiBvdXQ6XFxuLVxcdGJyZWxzZShkYXRhX2JoKTtcXG4gXFx0a2ZyZWUoYnVmKTtcXG4gXFx0cmV0dXJuIGVycm9yO1xcbiB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjUxOjEwLjQ5NTUyMjkxMVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjg2NjY5Mjg2NjE5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhXCIsXG4gICAgXCJleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGhvdyBleHQ0IGNvbnZlcnRzIGlubGluZSBkYXRhIHRvIGJsb2NrcywgcmVwbGFjaW5nIHRoZSB1c2Ugb2YgYGV4dDRfbWFwX2Jsb2Nrc2Agd2l0aCBkaXJlY3QgYmxvY2sgYWxsb2NhdGlvbiB2aWEgYGV4dDRfbWJfbmV3X2Jsb2Nrc2AgYW5kIGludHJvZHVjaW5nIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AuIFRoaXMgbW9kaWZpZXMgY29yZSByZWFjaGFibGUgbG9naWMgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgd2hpY2ggaXMgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMTI0YzdlYTZjZGQwMmFjNGUwYWE2MTA1ZWQwNTUyMTRkZjE4MTU5YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDIyIDE2OjUxOjA5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxpbmUuYyBiL2ZzL2V4dDQvaW5saW5lLmNcbmluZGV4IDgwNDVlNGZmMjcwYzcuLjUwNzEwNmM3MmU4MmYgMTAwNjQ0XG4tLS0gYS9mcy9leHQ0L2lubGluZS5jXG4rKysgYi9mcy9leHQ0L2lubGluZS5jXG5AQCAtMTQsNiArMTQsNyBAQFxuICNpbmNsdWRlIFwiZXh0NC5oXCJcbiAjaW5jbHVkZSBcInhhdHRyLmhcIlxuICNpbmNsdWRlIFwidHJ1bmNhdGUuaFwiXG4rI2luY2x1ZGUgXCJleHQ0X2V4dGVudHMuaFwiXG4gXG4gI2RlZmluZSBFWFQ0X1hBVFRSX1NZU1RFTV9EQVRBXHRcImRhdGFcIlxuICNkZWZpbmUgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRVx0KChzaXplb2YoX19sZTMyKSAqIEVYVDRfTl9CTE9DS1MpKVxuQEAgLTEwNzAsMjEgKzEwNzEsMTE1IEBAIHN0YXRpYyBpbnQgZXh0NF91cGRhdGVfaW5saW5lX2RpcihoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmRpcixcbiBcdHJldHVybiAwO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBleHQ0X3Jlc3RvcmVfaW5saW5lX2RhdGEoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSxcbi1cdFx0XHRcdCAgICAgc3RydWN0IGV4dDRfaWxvYyAqaWxvYyxcbi1cdFx0XHRcdCAgICAgdm9pZCAqYnVmLCBpbnQgaW5saW5lX3NpemUpXG4rc3RhdGljIGludCBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2ZzYmxrX3QgYmxvY2ssXG4rXHRcdFx0XHRcdHVuc2lnbmVkIGludCBsZW4sIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpXG4ge1xuLVx0aW50IHJldDtcbitcdHN0cnVjdCBleHQ0X2lub2RlX2luZm8gKmVpID0gRVhUNF9JKGlub2RlKTtcbitcdHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmQgaXMgPSB7XG4rXHRcdC5zID0geyAubm90X2ZvdW5kID0gMCwgfSxcbitcdH07XG4rXHRzdHJ1Y3QgZXh0NF94YXR0cl9pbmZvIGkgPSB7XG4rXHRcdC5uYW1lX2luZGV4ID0gRVhUNF9YQVRUUl9JTkRFWF9TWVNURU0sXG4rXHRcdC5uYW1lID0gRVhUNF9YQVRUUl9TWVNURU1fREFUQSxcbitcdFx0LnZhbHVlID0gTlVMTCxcbitcdFx0LnZhbHVlX2xlbiA9IDAsXG4rXHR9O1xuK1x0aW50IGVycm9yO1xuK1x0aW50IGlub2RlX3NpemU7XG4rXHR2b2lkICppbm9kZV9idWYgPSBOVUxMO1xuK1x0c3RydWN0IGV4dDRfaW5vZGUgKnJhd19pbm9kZTtcbiBcbi1cdHJldCA9IGV4dDRfY3JlYXRlX2lubGluZV9kYXRhKGhhbmRsZSwgaW5vZGUsIGlubGluZV9zaXplKTtcbi1cdGlmIChyZXQpIHtcbi1cdFx0ZXh0NF9tc2coaW5vZGUtXHUwMDNlaV9zYiwgS0VSTl9FTUVSRyxcbi1cdFx0XHRcImVycm9yIHJlc3RvcmluZyBpbmxpbmVfZGF0YSBmb3IgaW5vZGUgLS0gcG90ZW50aWFsIGRhdGEgbG9zcyEgKGlub2RlICVsbHUsIGVycm9yICVkKVwiLFxuLVx0XHRcdGlub2RlLVx1MDAzZWlfaW5vLCByZXQpO1xuLVx0XHRyZXR1cm47XG4rXHRpbm9kZV9zaXplID0gRVhUNF9JTk9ERV9TSVpFKGlub2RlLVx1MDAzZWlfc2IpO1xuK1x0aW5vZGVfYnVmID0ga21hbGxvYyhpbm9kZV9zaXplLCBHRlBfTk9GUyk7XG4rXHRpZiAoIWlub2RlX2J1Zikge1xuK1x0XHRlcnJvciA9IC1FTk9NRU07XG4rXHRcdGRvd25fd3JpdGUoXHUwMDI2ZWktXHUwMDNlaV9kYXRhX3NlbSk7XG4rXHRcdGV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7XG4rXHRcdGV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTtcbitcdFx0dXBfd3JpdGUoXHUwMDI2ZWktXHUwMDNlaV9kYXRhX3NlbSk7XG4rXHRcdHJldHVybiBlcnJvcjtcbiBcdH1cbi1cdGV4dDRfd3JpdGVfaW5saW5lX2RhdGEoaW5vZGUsIGlsb2MsIGJ1ZiwgMCwgaW5saW5lX3NpemUpO1xuLVx0ZXh0NF9zZXRfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTtcbitcdGRvd25fd3JpdGUoXHUwMDI2ZWktXHUwMDNlaV9kYXRhX3NlbSk7XG4rXHRlcnJvciA9IGV4dDRfZ2V0X2lub2RlX2xvYyhpbm9kZSwgXHUwMDI2aXMuaWxvYyk7XG4rXHRpZiAoZXJyb3IpIHtcbitcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbitcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpO1xuK1x0XHR1cF93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbitcdFx0a2ZyZWUoaW5vZGVfYnVmKTtcbitcdFx0cmV0dXJuIGVycm9yO1xuK1x0fVxuK1x0cmF3X2lub2RlID0gZXh0NF9yYXdfaW5vZGUoXHUwMDI2aXMuaWxvYyk7XG4rXHRCVUZGRVJfVFJBQ0UoaXMuaWxvYy5iaCwgXCJnZXRfd3JpdGVfYWNjZXNzXCIpO1xuK1x0ZXJyb3IgPSBleHQ0X2pvdXJuYWxfZ2V0X3dyaXRlX2FjY2VzcyhoYW5kbGUsIGlub2RlLVx1MDAzZWlfc2IsIGlzLmlsb2MuYmgsIEVYVDRfSlRSX05PTkUpO1xuK1x0aWYgKGVycm9yKSB7XG4rXHRcdGV4dDRfZGlzY2FyZF9wcmVhbGxvY2F0aW9ucyhpbm9kZSk7XG4rXHRcdGV4dDRfZnJlZV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgYmgsIGJsb2NrLCBsZW4sIEVYVDRfRlJFRV9CTE9DS1NfRk9SR0VUKTtcbitcdFx0Z290byBvdXQ7XG4rXHR9XG4rXHRtZW1jcHkoaW5vZGVfYnVmLCAodm9pZCAqKXJhd19pbm9kZSwgaW5vZGVfc2l6ZSk7XG4rXHRtZW1zZXQoKHZvaWQgKilyYXdfaW5vZGUtXHUwMDNlaV9ibG9jaywgMCwgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSk7XG4rXHRtZW1zZXQoZWktXHUwMDNlaV9kYXRhLCAwLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTtcbitcdGlmIChleHQ0X2hhc19mZWF0dXJlX2V4dGVudHMoaW5vZGUtXHUwMDNlaV9zYikgXHUwMDI2XHUwMDI2XG4rXHRcdChTX0lTRElSKGlub2RlLVx1MDAzZWlfbW9kZSkgfHwgU19JU1JFRyhpbm9kZS1cdTAwM2VpX21vZGUpIHx8IFNfSVNMTksoaW5vZGUtXHUwMDNlaV9tb2RlKSkpIHtcbitcdFx0ZXh0NF9zZXRfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRTKTtcbitcdFx0ZXh0NF9leHRfdHJlZV9pbml0KGhhbmRsZSwgaW5vZGUpO1xuK1x0XHRzdHJ1Y3QgZXh0NF9leHRfcGF0aCAqcGF0aCA9IGV4dDRfZmluZF9leHRlbnQoaW5vZGUsIDAsIE5VTEwsIDApO1xuK1xuK1x0XHRpZiAoSVNfRVJSKHBhdGgpKSB7XG4rXHRcdFx0ZXJyb3IgPSBQVFJfRVJSKHBhdGgpO1xuK1x0XHRcdGdvdG8gcmVjb3Zlcnk7XG4rXHRcdH1cbitcdFx0c3RydWN0IGV4dDRfZXh0ZW50IG5ld2V4O1xuK1xuK1x0XHRuZXdleC5lZV9ibG9jayA9IGNwdV90b19sZTMyKDApO1xuK1x0XHRuZXdleC5lZV9sZW4gPSBjcHVfdG9fbGUxNigxKTtcbitcdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNm5ld2V4LCBibG9jayk7XG4rXHRcdHBhdGggPSBleHQ0X2V4dF9pbnNlcnRfZXh0ZW50KGhhbmRsZSwgaW5vZGUsIHBhdGgsIFx1MDAyNm5ld2V4LCAwKTtcbitcdFx0aWYgKElTX0VSUihwYXRoKSkge1xuK1x0XHRcdGVycm9yID0gUFRSX0VSUihwYXRoKTtcbitcdFx0XHRpZiAoZXJyb3IgPT0gLUVEUVVPVCB8fCBlcnJvciA9PSAtRU5PU1BDKSB7XG4rXHRcdFx0XHRnb3RvIHJlY292ZXJ5O1xuK1x0XHRcdH0gZWxzZSB7XG4rXHRcdFx0XHRleHQ0X2ZvcmdldChoYW5kbGUsIDAsIGlub2RlLCBiaCwgYmxvY2spO1xuK1x0XHRcdFx0Z290byBub2ZyZWU7XG4rXHRcdFx0fVxuK1x0XHR9IGVsc2Uge1xuK1x0XHRcdGV4dDRfZnJlZV9leHRfcGF0aChwYXRoKTtcbitcdFx0fVxuK1x0fSBlbHNlIHtcbitcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2RhdGFbMF0gPSBjcHVfdG9fbGUzMihibG9jayk7XG4rXHR9XG4rXHRlcnJvciA9IGV4dDRfeGF0dHJfaWJvZHlfZmluZChpbm9kZSwgXHUwMDI2aSwgXHUwMDI2aXMpO1xuK1x0aWYgKGVycm9yKVxuK1x0XHRnb3RvIHJlY292ZXJ5O1xuK1x0aWYgKCFpcy5zLm5vdF9mb3VuZClcbitcdFx0ZXJyb3IgPSBleHQ0X3hhdHRyX2lib2R5X3NldChoYW5kbGUsIGlub2RlLCBcdTAwMjZpLCBcdTAwMjZpcyk7XG4rcmVjb3Zlcnk6XG4rXHRpZiAoZXJyb3IpIHtcbitcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbitcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpO1xuK25vZnJlZTpcbitcdFx0bWVtY3B5KCh2b2lkICopcmF3X2lub2RlLCBpbm9kZV9idWYsIGlub2RlX3NpemUpO1xuK1x0XHRtZW1jcHkoZWktXHUwMDNlaV9kYXRhLCByYXdfaW5vZGUtXHUwMDNlaV9ibG9jaywgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRSk7XG4rXHRcdGV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRTKTtcbitcdH0gZWxzZSB7XG4rXHRcdGV4dDRfY2xlYXJfaW5vZGVfZmxhZyhpbm9kZSwgRVhUNF9JTk9ERV9JTkxJTkVfREFUQSk7XG4rXHRcdGdldF9iaChpcy5pbG9jLmJoKTtcbitcdFx0ZXJyb3IgPSBleHQ0X21hcmtfaWxvY19kaXJ0eShoYW5kbGUsIGlub2RlLCBcdTAwMjZpcy5pbG9jKTtcbitcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2lubGluZV9vZmYgPSAwO1xuK1x0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfaW5saW5lX3NpemUgPSAwO1xuK1x0XHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XG4rXHRcdGlmIChTX0lTRElSKGlub2RlLVx1MDAzZWlfbW9kZSkpIHtcbitcdFx0XHRpX3NpemVfd3JpdGUoaW5vZGUsIGlub2RlLVx1MDAzZWlfc2ItXHUwMDNlc19ibG9ja3NpemUpO1xuK1x0XHRcdEVYVDRfSShpbm9kZSktXHUwMDNlaV9kaXNrc2l6ZSA9IGlub2RlLVx1MDAzZWlfc2ItXHUwMDNlc19ibG9ja3NpemU7XG4rXHRcdH1cbitcdFx0YnJlbHNlKGJoKTtcbitcdH1cbitvdXQ6XG4rXHRicmVsc2UoaXMuaWxvYy5iaCk7XG4rXHR1cF93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbitcdGtmcmVlKGlub2RlX2J1Zik7XG4rXHRyZXR1cm4gZXJyb3I7XG4gfVxuIFxuIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuQEAgLTEwOTQsOCArMTE4OSwxMSBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbiBcdGludCBlcnJvcjtcbiBcdHZvaWQgKmJ1ZiA9IE5VTEw7XG4gXHRzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRhdGFfYmggPSBOVUxMO1xuLVx0c3RydWN0IGV4dDRfbWFwX2Jsb2NrcyBtYXA7XG4gXHRpbnQgaW5saW5lX3NpemU7XG4rXHRleHQ0X2ZzYmxrX3QgbmV3YmxvY2sgPSAwO1xuK1x0c3RydWN0IGV4dDRfYWxsb2NhdGlvbl9yZXF1ZXN0IGFyO1xuK1x0c3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihpbm9kZS1cdTAwM2VpX3NiKTtcbitcdHVuc2lnbmVkIGludCBhbGxvY2F0ZWRfYmxvY2s7XG4gXG4gXHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcbiBcdGJ1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTtcbkBAIC0xMTIwLDI1ICsxMjE4LDIyIEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuIFx0XHRcdGdvdG8gb3V0O1xuIFx0fVxuIFxuLVx0ZXJyb3IgPSBleHQ0X2Rlc3Ryb3lfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUpO1xuLVx0aWYgKGVycm9yKVxuLVx0XHRnb3RvIG91dDtcbi1cbi1cdG1hcC5tX2xibGsgPSAwO1xuLVx0bWFwLm1fbGVuID0gMTtcbi1cdG1hcC5tX2ZsYWdzID0gMDtcbi1cdGVycm9yID0gZXh0NF9tYXBfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIFx1MDAyNm1hcCwgRVhUNF9HRVRfQkxPQ0tTX0NSRUFURSk7XG4rXHRtZW1zZXQoXHUwMDI2YXIsIDAsIHNpemVvZihhcikpO1xuK1x0YXIuaW5vZGUgPSBpbm9kZTtcbitcdGFyLmxvZ2ljYWwgPSAwO1xuK1x0YXIubGVuID0gMTtcbitcdGlmIChTX0lTUkVHKGlub2RlLVx1MDAzZWlfbW9kZSkpXG4rXHRcdGFyLmZsYWdzID0gRVhUNF9NQl9ISU5UX0RBVEE7XG4rXHRlbHNlXG4rXHRcdGFyLmZsYWdzID0gMDtcbitcdG5ld2Jsb2NrID0gZXh0NF9tYl9uZXdfYmxvY2tzKGhhbmRsZSwgXHUwMDI2YXIsIFx1MDAyNmVycm9yKTtcbiBcdGlmIChlcnJvciBcdTAwM2MgMClcbi1cdFx0Z290byBvdXRfcmVzdG9yZTtcbi1cdGlmICghKG1hcC5tX2ZsYWdzIFx1MDAyNiBFWFQ0X01BUF9NQVBQRUQpKSB7XG4tXHRcdGVycm9yID0gLUVJTztcbi1cdFx0Z290byBvdXRfcmVzdG9yZTtcbi1cdH1cbi1cbi1cdGRhdGFfYmggPSBzYl9nZXRibGsoaW5vZGUtXHUwMDNlaV9zYiwgbWFwLm1fcGJsayk7XG4rXHRcdGdvdG8gb3V0O1xuK1x0YWxsb2NhdGVkX2Jsb2NrID0gRVhUNF9DMkIoc2JpLCBhci5sZW4pO1xuK1x0ZGF0YV9iaCA9IHNiX2dldGJsayhpbm9kZS1cdTAwM2VpX3NiLCBuZXdibG9jayk7XG4gXHRpZiAoIWRhdGFfYmgpIHtcbiBcdFx0ZXJyb3IgPSAtRU5PTUVNO1xuLVx0XHRnb3RvIG91dF9yZXN0b3JlO1xuK1x0XHRnb3RvIG91dF9iaDtcbiBcdH1cbiBcbiBcdGxvY2tfYnVmZmVyKGRhdGFfYmgpO1xuQEAgLTExNDcsNyArMTI0Miw3IEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuIFx0aWYgKGVycm9yKSB7XG4gXHRcdHVubG9ja19idWZmZXIoZGF0YV9iaCk7XG4gXHRcdGVycm9yID0gLUVJTztcbi1cdFx0Z290byBvdXRfcmVzdG9yZTtcbitcdFx0Z290byBvdXRfYmg7XG4gXHR9XG4gXHRtZW1zZXQoZGF0YV9iaC1cdTAwM2ViX2RhdGEsIDAsIGlub2RlLVx1MDAzZWlfc2ItXHUwMDNlc19ibG9ja3NpemUpO1xuIFxuQEAgLTExNTksMjQgKzEyNTQsMjggQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXG4gXHRcdFx0XHRcdFx0ICAgaW5vZGUsIGRhdGFfYmgpO1xuIFx0fSBlbHNlIHtcbiBcdFx0dW5sb2NrX2J1ZmZlcihkYXRhX2JoKTtcbi1cdFx0aW5vZGUtXHUwMDNlaV9zaXplID0gaW5vZGUtXHUwMDNlaV9zYi1cdTAwM2VzX2Jsb2Nrc2l6ZTtcbi1cdFx0aV9zaXplX3dyaXRlKGlub2RlLCBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplKTtcbi1cdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2Rpc2tzaXplID0gaW5vZGUtXHUwMDNlaV9zYi1cdTAwM2VzX2Jsb2Nrc2l6ZTtcbi1cbiBcdFx0ZXJyb3IgPSBleHQ0X2luaXRfZGlyYmxvY2soaGFuZGxlLCBpbm9kZSwgZGF0YV9iaCxcbiBcdFx0XHQgIGxlMzJfdG9fY3B1KCgoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKilidWYpLVx1MDAzZWlub2RlKSxcbiBcdFx0XHQgIGJ1ZiArIEVYVDRfSU5MSU5FX0RPVERPVF9TSVpFLFxuIFx0XHRcdCAgaW5saW5lX3NpemUgLSBFWFQ0X0lOTElORV9ET1RET1RfU0laRSk7XG4tXHRcdGlmICghZXJyb3IpXG4tXHRcdFx0ZXJyb3IgPSBleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBpbm9kZSk7XG4gXHR9XG4rb3V0X2JoOlxuK1x0aWYgKGVycm9yKSB7XG4rXHRcdGludCBmbGFncyA9IDA7XG4gXG4tb3V0X3Jlc3RvcmU6XG4tXHRpZiAoZXJyb3IpXG4tXHRcdGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YShoYW5kbGUsIGlub2RlLCBpbG9jLCBidWYsIGlubGluZV9zaXplKTtcbitcdFx0aWYgKGRhdGFfYmgpXG4rXHRcdFx0ZmxhZ3MgfD0gRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQ7XG4rXHRcdHN0cnVjdCBleHQ0X2lub2RlX2luZm8gKmVpID0gRVhUNF9JKGlub2RlKTtcbiBcbitcdFx0ZG93bl93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbitcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbitcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLCBuZXdibG9jaywgYWxsb2NhdGVkX2Jsb2NrLCBmbGFncyk7XG4rXHRcdHVwX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuK1x0fSBlbHNlIHtcbitcdFx0ZXJyb3IgPSBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGUsIGlub2RlLFxuK1x0XHRcdFx0bmV3YmxvY2ssIGFsbG9jYXRlZF9ibG9jaywgZGF0YV9iaCk7XG4rXHR9XG4gb3V0OlxuLVx0YnJlbHNlKGRhdGFfYmgpO1xuIFx0a2ZyZWUoYnVmKTtcbiBcdHJldHVybiBlcnJvcjtcbiB9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNjo1MToxMC40OTU1MjQzNDFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzcyODU3MjQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZvY3VzaW5nIG9uIEV4dDQgSW5saW5lIERhdGEgQ29udmVyc2lvbioqXG5cbk9rYXksIHNvIEkndmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0J3MgbWFraW5nIHNvbWUgcHJldHR5IHNpZ25pZmljYW50IGNoYW5nZXMgdG8gYGZzL2V4dDQvaW5saW5lLmNgLiBJdCdzIGEgZnVuY3Rpb25hbCBzaGlmdCwgc3BlY2lmaWNhbGx5IGFpbWVkIGF0IGhvdyBleHQ0IGhhbmRsZXMgaW5saW5lIGRhdGEgY29udmVyc2lvbi4gUmVtb3ZpbmcgYGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YWAgYW5kIGludHJvZHVjaW5nIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AgaXMgYW4gaW50ZXJlc3RpbmcgY2hhbmdlLCBidXQgdGhlIG1vZGlmaWNhdGlvbiB0byBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AgaXMgd2hhdCByZWFsbHkgY2F0Y2hlcyBteSBleWUuIERpcmVjdGx5IHVzaW5nIGBleHQ0X21iX25ld19ibG9ja3NgIGluc3RlYWQgb2YgdGhlIG9sZCBgZXh0NF9tYXBfYmxvY2tzYCBhbmQgYGV4dDRfZGVzdHJveV9pbmxpbmVfZGF0YV9ub2xvY2tgIHNlcXVlbmNlLi4udGhhdCBjb3VsZCBpbnRyb2R1Y2Ugc29tZSBpbnRlcmVzdGluZyBlZGdlIGNhc2VzLiBUaGlzIGlzIGRlZmluaXRlbHkgcHJpbWUgZnV6emluZyB0ZXJyaXRvcnkuXG5cbk5vdywgbGV0J3MgaWRlbnRpZnkgdGhlIGNyaXRpY2FsIGZ1bmN0aW9ucyB0byBmb2N1cyBvbi4gV2UndmUgZ290IGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AsIHdoaWNoIGlzIG5ldywgYW5kIHRoZW4gdGhlIG1vZGlmaWVkIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYC4gVGhleSBhcmUgYm90aCBzdGF0aWMgdGhvdWdoLCB3aGljaCBtZWFucyB3ZSBuZWVkIHRvIGZpbmQgdGhlaXIgbm9uLXN0YXRpYyBjYWxsaW5nIGZ1bmN0aW9ucyB0byBjcmVhdGUgaW5wdXQuIEkgc2hvdWxkIHByb2JhYmx5IHN0YXJ0IGJ5IHNlYXJjaGluZyBmb3IgY2FsbHMgdG8gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBlbnRyeSBwb2ludHMgdG8gYW5hbHl6ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA3OSwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxNywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjUxOjE1LjI2ODM4MzUzNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzkzMDEyNjM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXh0NC9pbmxpbmUuYz0xMDc0PXN0YXRpYyBpbnQgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2soaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9mc2Jsa190IGJsb2NrLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xMTg0LVxcbmZzL2V4dDQvaW5saW5lLmM6MTE4NTpzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcXG5mcy9leHQ0L2lubGluZS5jLTExODYtXFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGlub2RlICppbm9kZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTI4OD1pbnQgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgZXh0NF9maWxlbmFtZSAqZm5hbWUsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTEzNDAtXFx0ICovXFxuZnMvZXh0NC9pbmxpbmUuYzoxMzQxOlxcdHJldCA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlLCBkaXIsIFxcdTAwMjZpbG9jKTtcXG5mcy9leHQ0L2lubGluZS5jLTEzNDItXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTIwNTU9aW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0yMDkyLVxcdGlmIChleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpXFxuZnMvZXh0NC9pbmxpbmUuYzoyMDkzOlxcdFxcdGVycm9yID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGlub2RlLCBcXHUwMDI2aWxvYyk7XFxuZnMvZXh0NC9pbmxpbmUuYy0yMDk0LVxcdGV4dDRfd3JpdGVfdW5sb2NrX3hhdHRyKGlub2RlLCBcXHUwMDI2bm9fZXhwYW5kKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTY6NTE6MTcuMDYxNDA1MDMxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU2MjYzNTcwMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBQb3RlbnRpYWwgQ2FsbGVycyBpbiBleHQ0IEZpbGUgU3lzdGVtIElubGluZSBEYXRhIEhhbmRsaW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgdHdvIGZ1bmN0aW9ucywgYGV4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnlgIGFuZCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCwgYm90aCBvZiB3aGljaCBzZWVtIGludm9sdmVkIGluIGhvdyB0aGUgZXh0NCBmaWxlc3lzdGVtIGhhbmRsZXMgaW5saW5lIGRhdGEuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZW5zdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55IG90aGVyIGltcG9ydGFudCBwaWVjZXMgb2YgdGhlIHB1enpsZS4gSSBrbm93IHRoZXNlIGZ1bmN0aW9ucyBhcmUgY3J1Y2lhbCwgYnV0IHVuZGVyc3RhbmRpbmcgdGhlIGNvbXBsZXRlIHBpY3R1cmUgcmVxdWlyZXMgY29uc2lkZXJpbmcgYWxsIHJlbGF0ZWQgY29kZSBwYXRocy4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gbWV0aG9kaWNhbGx5IGNoZWNrLCB3aXRoIGEgcXVpY2sgY29kZSBpbnNwZWN0aW9uLCBpZiB0aGVyZSBhcmUgKmFueSogb3RoZXIgZnVuY3Rpb25zIHRoYXQgbWlnaHQgYWxzbyBiZSBjYWxsaW5nIHRoaXMgc2FtZSBjb2RlIG9yIHJlbGF0ZWQgY29kZSBwYXRocy4gVGhpcyB3aWxsIGhlbHAgbWUgYnVpbGQgYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGlzIGlubGluZSBkYXRhIG1lY2hhbmlzbSBpcyB0cnVseSB3b3JraW5nLiBUaGlzIGNvdWxkIHJldmVhbCBpbXBvcnRhbnQgaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgZW50cnkgcG9pbnRzIG9yIG1ldGhvZHMgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc3lzdGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTc2LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTY6NTE6NTIuNjg3NzY0OTUzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTY4NzMxNTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9leHQ0L2V4dDQuaD0zNzQ3PWV4dGVybiBpbnQgZXh0NF9nZW5lcmljX3dyaXRlX2lubGluZV9kYXRhKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxcbi0tXFxuZnMvZXh0NC9leHQ0LmgtMzc1MS1cXHRcXHRcXHRcXHRcXHQgIHZvaWQgKipmc2RhdGEsIGJvb2wgZGEpO1xcbmZzL2V4dDQvZXh0NC5oOjM3NTI6ZXh0ZXJuIGludCBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsXFxuZnMvZXh0NC9leHQ0LmgtMzc1My1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBleHQ0X2ZpbGVuYW1lICpmbmFtZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTE4NT1zdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTI4Ny0gKi9cXG5mcy9leHQ0L2lubGluZS5jOjEyODg6aW50IGV4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnkoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGV4dDRfZmlsZW5hbWUgKmZuYW1lLFxcbmZzL2V4dDQvaW5saW5lLmMtMTI4OS1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGlub2RlICppbm9kZSlcXG4tLVxcbmZzL2V4dDQvbmFtZWkuYz0yMzU2PXN0YXRpYyBpbnQgX19leHQ0X2FkZF9lbnRyeShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmRpcixcXG4tLVxcbmZzL2V4dDQvbmFtZWkuYy0yMzgzLVxcdGlmIChleHQ0X2hhc19pbmxpbmVfZGF0YShkaXIpKSB7XFxuZnMvZXh0NC9uYW1laS5jOjIzODQ6XFx0XFx0cmV0dmFsID0gZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeShoYW5kbGUsIFxcdTAwMjZmbmFtZSwgZGlyLCBpbm9kZSk7XFxuZnMvZXh0NC9uYW1laS5jLTIzODUtXFx0XFx0aWYgKHJldHZhbCBcXHUwMDNjIDApXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjUxOjU0LjQ0NDY0NDg5OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMTY0MTk1NTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEknbSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczpcblxuKipJbmxpbmUgRGF0YSBFbnRyeSBJbnZlc3RpZ2F0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgaW50byBob3cgaW5saW5lIGRhdGEgZW50cmllcyBhcmUgaGFuZGxlZCB3aXRoaW4gdGhlIGV4dDQgZmlsZXN5c3RlbS4gTXkgZm9jdXMgaXMgb24gdGhlIGBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5YCBmdW5jdGlvbi4gSSBrbm93IHRoaXMgaXMgY2FsbGVkIGJ5IGBfX2V4dDRfYWRkX2VudHJ5YCwgd2hpY2ggaXRzZWxmIHJlc2lkZXMgaW4gYGZzL2V4dDQvbmFtZWkuY2AuIFNvLCB0aGUgcGF0aCBpcyBjbGVhcjogbmFtaW5nIGFuZCBhZGRpbmcgbmV3IGRpcmVjdG9yeSBlbnRyaWVzLlxuXG5Ob3csIG15IG5leHQgdGhvdWdodCBpcyBhYm91dCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYC4gSSBzZWVtIHRvIHJlY2FsbCB0aGF0IG9uZSBiZWluZyBleHBvcnRlZCwgbWF5YmUgZm9yIHVzZSBpbiBzaXR1YXRpb25zIG90aGVyIHRoYW4gdGhpcy4gSXQgd291bGQgbWFrZSBzZW5zZSBpZiBpdCB3YXMsIHNvIGxldCBtZSBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0IGV4cG9ydCBzdGF0dXMuIFRoYXTigJlzIHByb2JhYmx5IHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpbiB1bmRlcnN0YW5kaW5nIGhvdyBhbGwgdGhpcyB3b3JrcyB0b2dldGhlci5cblxuXG4iLCJJbnB1dFRva2VucyI6NjYxMywiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjUyOjI0LjYwODg0MzA1OFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODg1MzgxNzE0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dDRfY29udmVydF9pbmxpbmVfZGF0YVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9leHQ0L2NyeXB0by5jPTEzMj1zdGF0aWMgaW50IGV4dDRfc2V0X2NvbnRleHQoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgdm9pZCAqY3R4LCBzaXplX3QgbGVuLFxcbi0tXFxuZnMvZXh0NC9jcnlwdG8uYy0xNTItXFxuZnMvZXh0NC9jcnlwdG8uYzoxNTM6XFx0cmVzID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2NyeXB0by5jLTE1NC1cXHRpZiAocmVzKVxcbi0tXFxuZnMvZXh0NC9leHQ0Lmg9Mzc4ND1leHRlcm4gaW50IGV4dDRfaW5saW5lX2RhdGFfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSwgaW50ICpoYXNfaW5saW5lKTtcXG5mcy9leHQ0L2V4dDQuaC0zNzg1LVxcbmZzL2V4dDQvZXh0NC5oOjM3ODY6ZXh0ZXJuIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSk7XFxuZnMvZXh0NC9leHQ0LmgtMzc4Ny1cXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jPTQ4NTQ9bG9uZyBleHQ0X2ZhbGxvY2F0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1vZGUsIGxvZmZfdCBvZmZzZXQsIGxvZmZfdCBsZW4pXFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYy00ODgzLVxcdGlub2RlX2xvY2soaW5vZGUpO1xcbmZzL2V4dDQvZXh0ZW50cy5jOjQ4ODQ6XFx0cmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2V4dGVudHMuYy00ODg1LVxcdGlmIChyZXQpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTU0Nj1pbnQgZXh0NF9yZWFkcGFnZV9pbmxpbmUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZvbGlvICpmb2xpbylcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtNTcyLVxcbmZzL2V4dDQvaW5saW5lLmM6NTczOnN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG5mcy9leHQ0L2lubGluZS5jLTU3NC1cXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz02OTc9aW50IGV4dDRfZ2VuZXJpY193cml0ZV9pbmxpbmVfZGF0YShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtNzI4LVxcdFxcdFxcdC8qIFJldHJ5IGluc2lkZSAqL1xcbmZzL2V4dDQvaW5saW5lLmM6NzI5OlxcdFxcdFxcdHJldHVybiBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KG1hcHBpbmcsIGlub2RlKTtcXG5mcy9leHQ0L2lubGluZS5jLTczMC1cXHRcXHR9XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTc4ND1pbnQgZXh0NF90cnlfdG9fd3JpdGVfaW5saW5lX2RhdGEoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTc4OS1cXHRpZiAocG9zICsgbGVuIFxcdTAwM2UgZXh0NF9nZXRfbWF4X2lubGluZV9zaXplKGlub2RlKSlcXG5mcy9leHQ0L2lubGluZS5jOjc5MDpcXHRcXHRyZXR1cm4gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChtYXBwaW5nLCBpbm9kZSk7XFxuZnMvZXh0NC9pbmxpbmUuYy03OTEtXFx0cmV0dXJuIGV4dDRfZ2VuZXJpY193cml0ZV9pbmxpbmVfZGF0YShtYXBwaW5nLCBpbm9kZSwgcG9zLCBsZW4sXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTEwNzQ9c3RhdGljIGludCBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2ZzYmxrX3QgYmxvY2ssXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTExODQtXFxuZnMvZXh0NC9pbmxpbmUuYzoxMTg1OnN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbmZzL2V4dDQvaW5saW5lLmMtMTE4Ni1cXHRcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz0xMjg4PWludCBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBleHQ0X2ZpbGVuYW1lICpmbmFtZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTM0MC1cXHQgKi9cXG5mcy9leHQ0L2lubGluZS5jOjEzNDE6XFx0cmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGRpciwgXFx1MDAyNmlsb2MpO1xcbmZzL2V4dDQvaW5saW5lLmMtMTM0Mi1cXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTk0Mz1pbnQgZXh0NF9pbmxpbmVfZGF0YV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTIwNTQtXFxuZnMvZXh0NC9pbmxpbmUuYzoyMDU1OmludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSlcXG5mcy9leHQ0L2lubGluZS5jLTIwNTYte1xcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0yMDkyLVxcdGlmIChleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpXFxuZnMvZXh0NC9pbmxpbmUuYzoyMDkzOlxcdFxcdGVycm9yID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGlub2RlLCBcXHUwMDI2aWxvYyk7XFxuZnMvZXh0NC9pbmxpbmUuYy0yMDk0LVxcdGV4dDRfd3JpdGVfdW5sb2NrX3hhdHRyKGlub2RlLCBcXHUwMDI2bm9fZXhwYW5kKTtcXG4tLVxcbmZzL2V4dDQvaW5vZGUuYz01OTM0PWludCBleHQ0X3NldGF0dHIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSxcXG4tLVxcbmZzL2V4dDQvaW5vZGUuYy02MDMxLVxcdFxcdCAgICBhdHRyLVxcdTAwM2VpYV9zaXplIFxcdTAwM2UgRVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfc2l6ZSkge1xcbmZzL2V4dDQvaW5vZGUuYzo2MDMyOlxcdFxcdFxcdGVycm9yID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2lub2RlLmMtNjAzMy1cXHRcXHRcXHRpZiAoZXJyb3IpXFxuLS1cXG5mcy9leHQ0L2lub2RlLmM9Njc4Nz12bV9mYXVsdF90IGV4dDRfcGFnZV9ta3dyaXRlKHN0cnVjdCB2bV9mYXVsdCAqdm1mKVxcbi0tXFxuZnMvZXh0NC9pbm9kZS5jLTY4MDgtXFxuZnMvZXh0NC9pbm9kZS5jOjY4MDk6XFx0ZXJyID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2lub2RlLmMtNjgxMC1cXHRpZiAoZXJyKVxcbi0tXFxuZnMvZXh0NC92ZXJpdHkuYz0xMDI9c3RhdGljIGludCBleHQ0X2JlZ2luX2VuYWJsZV92ZXJpdHkoc3RydWN0IGZpbGUgKmZpbHApXFxuLS1cXG5mcy9leHQ0L3Zlcml0eS5jLTEyOC1cXG5mcy9leHQ0L3Zlcml0eS5jOjEyOTpcXHRlcnIgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoaW5vZGUpO1xcbmZzL2V4dDQvdmVyaXR5LmMtMTMwLVxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjUyOjI2LjQ5NDIzMDc1MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI0NjcwOTQ1MjYyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIEV4dDQgSW5saW5lIERhdGEgQ29udmVyc2lvbiBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgY2xlYXJseSB0b3VjaGluZyB0aGUgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YWAgYW5kIGBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5YCBmdW5jdGlvbnMuIEZyb20gYSBxdWljayBnbGFuY2UsIEkgc2VlIHRoZXNlIGFyZSBmYWlybHkgd2lkZWx5IHVzZWQ7IGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGlzIGNhbGxlZCBmcm9tIGEgc2xldyBvZiBwbGFjZXMgbGlrZSBgZXh0NF9mYWxsb2NhdGVgLCBgZXh0NF9zZXRhdHRyYCwgYGV4dDRfcGFnZV9ta3dyaXRlYCwgYW5kIGV2ZW4gYGV4dDRfYmVnaW5fZW5hYmxlX3Zlcml0eWAuIFRoYXQncyBhIGRlY2VudCBzcHJlYWQuIEFuZCBgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeWAgaXMgY2FsbGVkIGZyb20gYF9fZXh0NF9hZGRfZW50cnlgLiBUaGlzIHRlbGxzIG1lIHRoYXQgdGhpcyBpcyBmYWlybHkgZnVuZGFtZW50YWwgY2hhbmdlIHRvIGhvdyB3ZSdyZSBkZWFsaW5nIHdpdGggaW5saW5lIGRhdGEgY29udmVyc2lvbiBpbiBleHQ0LlxuXG5HaXZlbiB0aGUgZnVuY3Rpb25hbCBjaGFuZ2VzIGltcGxpZWQsIEknbSBhbHJlYWR5IHRoaW5raW5nIHRoaXMgaXMgcmlwZSBmb3IgZnV6emluZy4gQW55IGNoYW5nZSB0aGlzIHBlcnZhc2l2ZSBoYXMgdGhlIHBvdGVudGlhbCB0byBpbnRyb2R1Y2Ugc3VidGxlIGJ1Z3MuIE15IGluc3RpbmN0IHNheXMgd2UgbmVlZCB0byBiZSB0aG9yb3VnaCBoZXJlLlxuXG5NeSBmb2N1cyBoYXMgdG8gYmUgb24gdGhvc2UgdHdvIHN5bWJvbHM6IGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGFuZCBgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeWAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBmdW5jdGlvbnMgYXJlIGJlaW5nIG1vZGlmaWVkIGFuZCBob3cgdGhvc2UgY2hhbmdlcyBpbXBhY3QgdGhlIGJyb2FkZXIgc3lzdGVtLiBJIGFsc28gbmVlZCB0byBtYWtlIHN1cmUgdGhlIGJ1aWxkIGVudmlyb25tZW50IGlzIHNldCB1cCBjb3JyZWN0bHk7IHRoZSBwYXRjaCBzcGVjaWZpZXMgYEVYVDRfRlNgLCBidXQgSSdsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayBpZiB0aGVyZSBhcmUgYW55ICpvdGhlciogcmVsZXZhbnQgY29uZmlndXJhdGlvbnMsIHNwZWNpZmljYWxseSBhcm91bmQgaW5saW5lIGRhdGEgaXRzZWxmLiBJcyBpdCBhIGZlYXR1cmUgZmxhZywgb3IgZG9lcyBpdCBkZXBlbmQgb24gb3RoZXIgcGFyYW1ldGVycz8gVGltZSB0byBkaWcgZGVlcGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MzMzLCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjU2OjMzLjIwMzY4NzIyNFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA2MjkxMTc5MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfRVhUNF9GU1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNzcgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZz04OD1DT05GSUdfTU1DX0RXPXlcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWctODktIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDFfZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWctOTEtQ09ORklHX01TRE9TX0ZTPXlcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX2RlZmNvbmZpZz04Nj1DT05GSUdfTU1DX0RXPXlcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWctODctIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnOjg4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWctODktQ09ORklHX01TRE9TX0ZTPXlcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWc9ODg9Q09ORklHX01NQ19EVz15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZy04OS0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnLTkxLUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnPTc5PUNPTkZJR19USV9BREMxMDhTMTAyPXlcXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnOjgwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnLTgxLUNPTkZJR19WRkFUX0ZTPXlcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnPTc1PUNPTkZJR19VU0JfU0VSSUFMPXlcXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZy03Ni0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZzo3NzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWc6Nzg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnLTc5LUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWc9ODI9Q09ORklHX1VJT19QRFJWX0dFTklSUT15XFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9zbXBfZGVmY29uZmlnLTgzLSMgQ09ORklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldFxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZzo4NDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9zbXBfZGVmY29uZmlnLTg1LUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNV9kZWZjb25maWc9MjY0PUNPTkZJR19QRUNJX0FTUEVFRD15XFxuYXJjaC9hcm0vY29uZmlncy9hc3BlZWRfZzVfZGVmY29uZmlnOjI2NTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9hc3BlZWRfZzVfZGVmY29uZmlnLTI2Ni1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9hdDkxX2R0X2RlZmNvbmZpZz0yMDc9Q09ORklHX1BXTV9BVE1FTF9UQ0I9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXQ5MV9kdF9kZWZjb25maWc6MjA4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnLTIwOS1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9heG01NXh4X2RlZmNvbmZpZz0xOTY9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc6MTk3OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2F4bTU1eHhfZGVmY29uZmlnLTE5OC1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvYmNtMjgzNV9kZWZjb25maWc9MTU2PUNPTkZJR19FWFQyX0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9iY20yODM1X2RlZmNvbmZpZzoxNTc6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYmNtMjgzNV9kZWZjb25maWc6MTU4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9iY20yODM1X2RlZmNvbmZpZy0xNTktQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvZGF2aW5jaV9hbGxfZGVmY29uZmlnPTIyOT1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWc6MjMwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZzoyMzE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZy0yMzItQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnPTk3PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnOjk4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnOjk5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvZG92ZV9kZWZjb25maWctMTAwLUNPTkZJR19JU085NjYwX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZz0xMDU9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZzoxMDY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZzoxMDc6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnLTEwOC1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWc9MzMyPUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWc6MzMzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWctMzM0LUNPTkZJR19BVVRPRlNfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9oaXNpX2RlZmNvbmZpZz03Nz1DT05GSUdfUEhZX0hJWDVIRDJfU0FUQT15XFxuYXJjaC9hcm0vY29uZmlncy9oaXNpX2RlZmNvbmZpZzo3ODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9oaXNpX2RlZmNvbmZpZy03OS1DT05GSUdfVE1QRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjRfdjVfZGVmY29uZmlnPTE1NT1DT05GSUdfUFdNX0lNWDI3PXlcXG5hcmNoL2FybS9jb25maWdzL2lteF92NF92NV9kZWZjb25maWc6MTU2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2lteF92NF92NV9kZWZjb25maWctMTU3LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnPTQzOT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZzo0NDI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZy00NDMtQ09ORklHX1FVT1RBPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnPTI3PUNPTkZJR19DTEtfSU1YUlQxMDUwPXlcXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZzoyODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6Mjk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZzozMDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWctMzEtQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnPTE1NT1DT05GSUdfRVhUMl9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZzoxNTY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZzoxNTc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWctMTU4LUNPTkZJR19PVkVSTEFZX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnPTIwNT1DT05GSUdfUkVTRVRfVElfU1lTQ09OPW1cXG5hcmNoL2FybS9jb25maWdzL2tleXN0b25lX2RlZmNvbmZpZzoyMDY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnOjIwNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnLTIwOC1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9taWxiZWF1dF9tMTB2X2RlZmNvbmZpZz04MT1DT05GSUdfTUVNT1JZPXlcXG5hcmNoL2FybS9jb25maWdzL21pbGJlYXV0X20xMHZfZGVmY29uZmlnLTgyLSMgQ09ORklHX0FSTV9QTVUgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWc6ODM6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWctODQtQ09ORklHX0FVVE9GU19GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL21tcDJfZGVmY29uZmlnPTU1PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL21tcDJfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL21tcDJfZGVmY29uZmlnLTU3LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnPTExND1DT05GSUdfTU9YQVJUX0RNQT15XFxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnLTExNS0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcXG5hcmNoL2FybS9jb25maWdzL21veGFydF9kZWZjb25maWc6MTE2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL21veGFydF9kZWZjb25maWctMTE3LUNPTkZJR19UTVBGUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y1X2RlZmNvbmZpZz0yNjk9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjVfZGVmY29uZmlnOjI3MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92NV9kZWZjb25maWctMjcxLUNPTkZJR19JU085NjYwX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnPTEyODM9Q09ORklHX1NUTTMyX1RJTUVSX0NOVD1tXFxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92N19kZWZjb25maWc6MTI4NDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92N19kZWZjb25maWctMTI4NS1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWc9OTM9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWc6OTQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWc6OTU6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZy05Ni1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y1X2RlZmNvbmZpZz0xNjk9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjVfZGVmY29uZmlnOjE3MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92NV9kZWZjb25maWctMTcxLUNPTkZJR19JU085NjYwX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjdfZGVmY29uZmlnPTEzMD1DT05GSUdfUEhZX01WRUJVX0EzOFhfQ09NUEhZPXlcXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y3X2RlZmNvbmZpZzoxMzE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjdfZGVmY29uZmlnLTEzMi1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL214c19kZWZjb25maWc9MTM2PUNPTkZJR19OVk1FTV9NWFNfT0NPVFA9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXhzX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXhzX2RlZmNvbmZpZy0xMzgtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnPTExOD1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9uaGs4ODE1X2RlZmNvbmZpZzoxMTk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbmhrODgxNV9kZWZjb25maWctMTIwLUNPTkZJR19GVVNFX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnPTE4ND1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMV9kZWZjb25maWc6MTg1OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL29tYXAxX2RlZmNvbmZpZy0xODYtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWc9NjgxPUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWc6NjgyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWc6NjgzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWctNjg0LUNPTkZJR19GQU5PVElGWT15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnPTExNz1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZzoxMTg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTIwOkNPTkZJR19FWFQ0X0ZTPW1cXG5hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnLTEyMS1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc9NTc1PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnOjU3ODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnLTU3OS1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvcWNvbV9kZWZjb25maWc9Mjc4PUNPTkZJR19FWFQyX0ZTX1hBVFRSPXlcXG5hcmNoL2FybS9jb25maWdzL3Fjb21fZGVmY29uZmlnOjI3OTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZy0yODAtQ09ORklHX0ZVU0VfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9ycGNfZGVmY29uZmlnPTc5PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3JwY19kZWZjb25maWc6ODA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZy04MS1DT05GSUdfQVVUT0ZTX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWc9NTQ9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWc6NTU6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWc6NTY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnLTU4LUNPTkZJR19UTVBGUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnPTEwMz1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zNXB2MjEwX2RlZmNvbmZpZzoxMDQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvczVwdjIxMF9kZWZjb25maWctMTA1LUNPTkZJR19BVVRPRlNfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zYW1hNV9kZWZjb25maWc9MjIyPUNPTkZJR19QV01fQVRNRUxfVENCPXlcXG5hcmNoL2FybS9jb25maWdzL3NhbWE1X2RlZmNvbmZpZzoyMjM6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTVfZGVmY29uZmlnLTIyNC1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zYW1hN19kZWZjb25maWc9MjE0PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NhbWE3X2RlZmNvbmZpZzoyMTU6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTdfZGVmY29uZmlnLTIxNi1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL3NvY2ZwZ2FfZGVmY29uZmlnOjEzODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZy0xMzktQ09ORklHX0FVVE9GU19GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NwNzAyMV9kZWZjb25maWc9NDA9Q09ORklHX1JFU0VUX0NPTlRST0xMRVI9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3A3MDIxX2RlZmNvbmZpZzo0MTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcDcwMjFfZGVmY29uZmlnLTQyLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnPTg1PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWc6ODY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZzo4NzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnLTg4LUNPTkZJR19BVVRPRlNfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWc9Njg9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIzeHhfZGVmY29uZmlnOjY5OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo3MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWctNzEtQ09ORklHX0FVVE9GU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZz01ND1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjZ4eF9kZWZjb25maWc6NTU6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXI2eHhfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnPTE5Mj1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6MTkzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZzoxOTQ6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWctMTk1LUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3N0bTMyX2RlZmNvbmZpZz03MT1DT05GSUdfU1RNMzJfQURDPXlcXG5hcmNoL2FybS9jb25maWdzL3N0bTMyX2RlZmNvbmZpZzo3MjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWctNzMtIyBDT05GSUdfRklMRV9MT0NLSU5HIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnPTE2Mj1DT05GSUdfTlZNRU1fU1VOWElfU0lEPXlcXG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZzoxNjM6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnLTE2NC1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZz0zMTI9Q09ORklHX1BIWV9URUdSQV9YVVNCPXlcXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTM6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxNDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnOjMxNTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy90ZWdyYV9kZWZjb25maWctMzE2LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy91ODUwMF9kZWZjb25maWc9MTc1PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3U4NTAwX2RlZmNvbmZpZzoxNzY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdTg1MDBfZGVmY29uZmlnLTE3Ny1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3ZleHByZXNzX2RlZmNvbmZpZz0xMjI9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdmV4cHJlc3NfZGVmY29uZmlnOjEyMzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy92ZXhwcmVzc19kZWZjb25maWctMTI0LUNPTkZJR19WRkFUX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvdmY2MTBtNF9kZWZjb25maWc9MzU9Q09ORklHX01GRF9TWVNDT049eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy92ZjYxMG00X2RlZmNvbmZpZy0zNy0jIENPTkZJR19VU0JfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy92ZjYxMG00X2RlZmNvbmZpZzozODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy92ZjYxMG00X2RlZmNvbmZpZy0zOS0jIENPTkZJR19NSVNDX0ZJTEVTWVNURU1TIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvdnQ4NTAwX3Y2X3Y3X2RlZmNvbmZpZz03OT1DT05GSUdfR0VORVJJQ19QSFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdnQ4NTAwX3Y2X3Y3X2RlZmNvbmZpZzo4MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy92dDg1MDBfdjZfdjdfZGVmY29uZmlnLTgxLUNPTkZJR19UTVBGUz15XFxuLS1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTE4OTg9Q09ORklHX0hURV9URUdSQTE5NF9URVNUPW1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE4OTk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6MTkwMDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6MTkwMTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZy0xOTAyLUNPTkZJR19CVFJGU19GUz1tXFxuLS1cXG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWc9MzM9Q09ORklHX0dFTkVSSUNfUEhZPXlcXG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWc6MzQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvY3NreS9jb25maWdzL2RlZmNvbmZpZy0zNS1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnPTQ4PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2hleGFnb24vY29uZmlncy9jb21ldF9kZWZjb25maWc6NDk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZzo1MDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZzo1MTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnLTUyLUNPTkZJR19RVU9UQT15XFxuLS1cXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnPTk1MD1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZzo5NTE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZzo5NTM6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWctOTU0LUNPTkZJR19KRlNfRlM9bVxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZz05ODE9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc6OTgyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc6OTg0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnLTk4NS1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZz00MDM9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnOjQwNDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnLTQwNS1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWc9MzU4PUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWc6MzU5OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnLTM2MC1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZz0zODE9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXRhcmlfZGVmY29uZmlnOjM4MjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXRhcmlfZGVmY29uZmlnLTM4My1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZz0zNTA9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnOjM1MTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnLTM1Mi1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL2hwMzAwX2RlZmNvbmZpZz0zNjA9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnOjM2MTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnLTM2Mi1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc9Mzc5PUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc6MzgwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnLTM4MS1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZz00NjY9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnOjQ2NzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnLTQ2OC1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNDdfZGVmY29uZmlnPTM1MD1DT05GSUdfREFYPW1cXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNDdfZGVmY29uZmlnLTM1Mi1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnPTM1MT1DT05GSUdfREFYPW1cXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZzozNTI6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnLTM1My1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3E0MF9kZWZjb25maWc9MzY5PUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL3E0MF9kZWZjb25maWc6MzcwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnLTM3MS1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnPTgyPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4MzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc6ODQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4NTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWctODYtIyBDT05GSUdfRklMRV9MT0NLSU5HIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjNfZGVmY29uZmlnPTM0OD1DT05GSUdfREFYPW1cXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZzozNDk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjNfZGVmY29uZmlnLTM1MC1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZz0zNDg9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnOjM0OTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnLTM1MC1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3ZpcnRfZGVmY29uZmlnPTU1PUNPTkZJR19WSVJUSU9fSU5QVVQ9eVxcbmFyY2gvbTY4ay9jb25maWdzL3ZpcnRfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvbWljcm9ibGF6ZS9jb25maWdzL21tdV9kZWZjb25maWc9NzU9Q09ORklHX1VJT19ETUVNX0dFTklSUT15XFxuYXJjaC9taWNyb2JsYXplL2NvbmZpZ3MvbW11X2RlZmNvbmZpZzo3NjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taWNyb2JsYXplL2NvbmZpZ3MvbW11X2RlZmNvbmZpZy03Ny0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc9MTM2PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjEzNzpDT05GSUdfRVhUNF9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZzoxMzg6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjEzOTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZzoxNDA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWctMTQxLUNPTkZJR19RVU9UQT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc9NTc9Q09ORklHX1VTQl9TVE9SQUdFPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc6NTg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZzo1OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZzo2MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnLTYxLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZz0xNDE9Q09ORklHX01NQ19TREhDSV9QTFRGTT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZzoxNDI6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZzoxNDQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWctMTQ1LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWc9MTM2PUNPTkZJR19SQVM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Nhdml1bV9vY3Rlb25fZGVmY29uZmlnOjEzNzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWc6MTM5OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZy0xNDAtQ09ORklHX01TRE9TX0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2NpMjBfZGVmY29uZmlnPTE2Nj1DT05GSUdfTlZNRU1fSlo0NzgwX0VGVVNFPXlcXG5hcmNoL21pcHMvY29uZmlncy9jaTIwX2RlZmNvbmZpZzoxNjc6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2NpMjBfZGVmY29uZmlnLTE2OC0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2NvYmFsdF9kZWZjb25maWc9NjE9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2NvYmFsdF9kZWZjb25maWc6NjI6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2NvYmFsdF9kZWZjb25maWc6NjM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnOjY0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnLTY1LUNPTkZJR19QUk9DX0tDT1JFPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnPTg5PUNPTkZJR19QSFlfSU5HRU5JQ19VU0I9eVxcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9jdTEwMDAtbmVvX2RlZmNvbmZpZy05MS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2N1MTgzMC1uZW9fZGVmY29uZmlnPTkyPUNPTkZJR19QSFlfSU5HRU5JQ19VU0I9eVxcbmFyY2gvbWlwcy9jb25maWdzL2N1MTgzMC1uZW9fZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZy05NC0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc9MTY5PUNPTkZJR19SVENfRFJWX0FVMVhYWD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGIxeHh4X2RlZmNvbmZpZzoxNzA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGIxeHh4X2RlZmNvbmZpZzoxNzI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWctMTczLUNPTkZJR19YRlNfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc9MTM1PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZzoxMzY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEzNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEzODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWctMTM5LUNPTkZJR19JU085NjYwX0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnPTEzMT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTMyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZzoxMzM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZzoxMzQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnLTEzNS1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc9MTMxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTMyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTMzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEzNDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnLTEzNS1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc9ODk9Q09ORklHX1JFU0VUX0NPTlRST0xMRVI9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZy05MC0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkxOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc6OTM6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZy05NC1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc9ODg9Q09ORklHX1JFU0VUX0NPTlRST0xMRVI9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZy04OS0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjkwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZy05My1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZz05Nj1DT05GSUdfUkVTRVRfQ09OVFJPTExFUj15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWctOTctIyBDT05GSUdfTlZNRU0gaXMgbm90IHNldFxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnOjk4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnOjEwMDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWctMTAxLUNPTkZJR19GU19FTkNSWVBUSU9OPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc9MTc0PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnOjE3NTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnOjE3NzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZy0xNzgtQ09ORklHX0FVVE9GU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9nY3cwX2RlZmNvbmZpZz0xMzQ9Q09ORklHX1BXTV9KWjQ3NDA9eVxcbmFyY2gvbWlwcy9jb25maWdzL2djdzBfZGVmY29uZmlnOjEzNTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2N3MF9kZWZjb25maWctMTM2LUNPTkZJR19WRkFUX0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnPTU1PUNPTkZJR19ISURfTU9OVEVSRVk9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWctNTctIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc6NTg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjU5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc6NjA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnLTYxLUNPTkZJR19GU19FTkNSWVBUSU9OPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnPTIzMz1DT05GSUdfRVhUMl9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWc6MjM0OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZzoyMzU6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZzoyMzY6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnLTIzNy1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnPTI3Mj1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc6MjczOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZzoyNzQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZzoyNzU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnLTI3Ni1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnPTUxPUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZzo1MjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZzo1NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWctNTUtQ09ORklHX1FVT1RBPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnPTE0ND1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc6MTQ1OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnLTE0OC1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnPTkwPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZzo5MTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZzo5MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWctOTQtQ09ORklHX1FVT1RBPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2phenpfZGVmY29uZmlnPTcwPUNPTkZJR19FWFQyX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9qYXp6X2RlZmNvbmZpZzo3MTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWctNzItQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sZW1vdGUyZl9kZWZjb25maWc9MjI3PUNPTkZJR19FWFQyX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9sZW1vdGUyZl9kZWZjb25maWc6MjI4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9sZW1vdGUyZl9kZWZjb25maWc6MjI5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnOjIzMDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnLTIzMS1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc9MTQ4PUNPTkZJR19MT09OR1NPTjFfQVBCX0RNQT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnLTE1My0jIENPTkZJR19OVk1FTSBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZzoxNTQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU1OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZy0xNTYtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZz0yOTg9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnOjI5OTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZy0zMDItQ09ORklHX1hGU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnPTM0OT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzozNTA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc6MzUxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzozNTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWctMzUzLUNPTkZJR19YRlNfRlM9eVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNjo1NjozNS4yNjY2MTE1NDZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTc4MDU2Mzg3MTc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgZXZhbHVhdGluZyB0aGlzOlxuXG4qKkluaXRpYWwgQ29uZmlndXJhdGlvbiBDaGVjazogRVhUNCBJbmxpbmUgRGF0YSoqXG5cbkFscmlnaHQsIHNvIGBDT05GSUdfRVhUNF9GU2AgaXMgdGhlIG9idmlvdXMgc3RhcnRpbmcgcG9pbnQuIFRoYXQncyB0aGUgY29yZSBleHQ0IGZpbGVzeXN0ZW0gY29uZmlndXJhdGlvbi4gQnV0IHRoaXMgaXMgYWJvdXQgKmlubGluZSogZGF0YSwgd2hpY2ggaGFzIGl0cyBvd24gbnVhbmNlcy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIGFueSBkZXBlbmRlbmNpZXMgb3Igc3VwcG9ydGluZyBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIHNwZWNpZmljYWxseSBmb3IgaW5saW5lIGRhdGEgaGFuZGxpbmcgd2l0aGluIGV4dDQuIEknbGwgbmVlZCB0byBkaWcgYSBsaXR0bGUgZGVlcGVyIHRvIGVuc3VyZSBldmVyeXRoaW5nIGlzIHNldCB1cCBjb3JyZWN0bHkgZm9yIHRoYXQgZmVhdHVyZS4gTGV0J3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlncyBsdXJraW5nIGFyb3VuZCB0aGF0IEkgc2hvdWxkIGNvbnNpZGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDI4MywiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE2OjU5OjMzLjMyMzAwMjQ5WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDIxNjMwMzQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19FWFQ0X0ZTX1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnPTE1Nz1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9iY20yODM1X2RlZmNvbmZpZzoxNTg6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnLTE1OS1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWc9MjMwPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZzoyMzE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZy0yMzItQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnPTk4PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnOjk5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvZG92ZV9kZWZjb25maWctMTAwLUNPTkZJR19JU085NjYwX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZz0xMDY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZzoxMDc6IyBDT05GSUdfRVhUNF9GU19YQVRUUiBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnLTEwOC1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc9NDQwPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjQ0MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnLTQ0My1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc9Mjg9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnOjI5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6MzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnLTMxLUNPTkZJR19WRkFUX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZz0xNTY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZzoxNTc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWctMTU4LUNPTkZJR19PVkVSTEFZX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mva2V5c3RvbmVfZGVmY29uZmlnPTIwNj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWc6MjA3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWctMjA4LUNPTkZJR19GQU5PVElGWT15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnPTk0PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnOjk1OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWctOTYtQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnPTY4Mj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnOjY4MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnLTY4NC1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZz0xMTg9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE5OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWctMTIwLUNPTkZJR19FWFQ0X0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZz01NzY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZzo1Nzc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTc4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWctNTc5LUNPTkZJR19YRlNfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZz01NT1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWc6NTc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvczNjNjQwMF9kZWZjb25maWctNTgtQ09ORklHX1RNUEZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZz04Nj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnOjg3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWctODgtQ09ORklHX0FVVE9GU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZz02OT1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWc6NzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIzeHhfZGVmY29uZmlnLTcxLUNPTkZJR19BVVRPRlNfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjZ4eF9kZWZjb25maWc9NTU9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXI2eHhfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy01Ny1DT05GSUdfQVVUT0ZTX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnPTE5Mz1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6MTk0OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnLTE5NS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy90ZWdyYV9kZWZjb25maWc9MzEzPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnLTMxNi0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc9MTg5OT1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzoxOTAwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzoxOTAxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnLTE5MDItQ09ORklHX0JUUkZTX0ZTPW1cXG4tLVxcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZz00OT1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjUwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjUxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2hleGFnb24vY29uZmlncy9jb21ldF9kZWZjb25maWctNTItQ09ORklHX1FVT1RBPXlcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9OTUxPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjk1MjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTk1NC1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc9OTgyPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc6OTg0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnLTk4NS1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnPTgzPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZzo4NDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnOjg1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZy04Ni0jIENPTkZJR19GSUxFX0xPQ0tJTkcgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDRfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZzoxMzk6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWctMTQwLUNPTkZJR19FWFQ0X0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZz01OD1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjU5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjYwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWctNjEtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnPTE0Mj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZzoxNDM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnOjE0NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZy0xNDUtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZz0xMzc9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Nhdml1bV9vY3Rlb25fZGVmY29uZmlnOjEzODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Nhdml1bV9vY3Rlb25fZGVmY29uZmlnOjEzOTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWctMTQwLUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnPTYyPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnOjYzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZzo2NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZy02NS1DT05GSUdfUFJPQ19LQ09SRT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnPTE3MD1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGIxeHh4X2RlZmNvbmZpZzoxNzE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnOjE3MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGIxeHh4X2RlZmNvbmZpZy0xNzMtQ09ORklHX1hGU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZz0xMzY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEzNzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEzODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWctMTM5LUNPTkZJR19JU085NjYwX0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnPTEzMj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTMzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTM0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnPTEzMj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEzMzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZzoxMzQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnPTkxPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc6OTI6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc6OTM6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZy05NC1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc9OTA9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZzo5MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZzo5MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnLTkzLUNPTkZJR19GU19FTkNSWVBUSU9OPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnPTk4PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnOjEwMDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWctMTAxLUNPTkZJR19GU19FTkNSWVBUSU9OPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc9MTc1PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnOjE3NjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc6MTc3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnLTE3OC1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnPTU4PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzo1OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjYwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZy02MS1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZz0yMzQ9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWctMjM3LUNPTkZJR19YRlNfRlM9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc9MjczPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZzoyNzQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZzoyNzU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnLTI3Ni1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnPTUyPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZzo1MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnOjU0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZy01NS1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc9MTQ1PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZzoxNDc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnLTE0OC1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnPTkxPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZzo5MjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZy05NC1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnPTIyOD1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnOjIyOTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZzoyMzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZy0yMzEtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnPTE1ND1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZzoxNTU6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnLTE1Ni0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnPTI5OT1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzAxOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZy0zMDItQ09ORklHX1hGU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnPTM1MD1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZy0zNTMtQ09ORklHX1hGU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXNtdnBfZGVmY29uZmlnPTE0OD1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFzbXZwX2RlZmNvbmZpZzoxNDk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXNtdnBfZGVmY29uZmlnOjE1MDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFzbXZwX2RlZmNvbmZpZy0xNTEtQ09ORklHX1hGU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9tdHgxX2RlZmNvbmZpZz01NTM9Q09ORklHX0VYVDRfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnOjU1NDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnOjU1NTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbXR4MV9kZWZjb25maWctNTU2LUNPTkZJR19RVU9UQT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9waWMzMm16ZGFfZGVmY29uZmlnPTY2PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9waWMzMm16ZGFfZGVmY29uZmlnOjY3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvcGljMzJtemRhX2RlZmNvbmZpZzo2ODpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvcGljMzJtemRhX2RlZmNvbmZpZy02OS1DT05GSUdfQVVUT0ZTX0ZTPW1cXG4tLVxcbmFyY2gvb3BlbnJpc2MvY29uZmlncy92aXJ0X2RlZmNvbmZpZz05Nz1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9vcGVucmlzYy9jb25maWdzL3ZpcnRfZGVmY29uZmlnOjk4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9vcGVucmlzYy9jb25maWdzL3ZpcnRfZGVmY29uZmlnLTk5LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9wYXJpc2MvY29uZmlncy9nZW5lcmljLTMyYml0X2RlZmNvbmZpZz0yMzM9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcGFyaXNjL2NvbmZpZ3MvZ2VuZXJpYy0zMmJpdF9kZWZjb25maWc6MjM0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtMzJiaXRfZGVmY29uZmlnLTIzNS1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC9wYXJpc2MvY29uZmlncy9nZW5lcmljLTY0Yml0X2RlZmNvbmZpZz0yNTI9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcGFyaXNjL2NvbmZpZ3MvZ2VuZXJpYy02NGJpdF9kZWZjb25maWc6MjUzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtNjRiaXRfZGVmY29uZmlnLTI1NC1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9ha2Vib25vX2RlZmNvbmZpZz0xMDY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9ha2Vib25vX2RlZmNvbmZpZzoxMDc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvYWtlYm9ub19kZWZjb25maWc6MTA4OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvYWtlYm9ub19kZWZjb25maWctMTA5LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2N1cnJpdHVja19kZWZjb25maWc9NjY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9jdXJyaXR1Y2tfZGVmY29uZmlnOjY3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2N1cnJpdHVja19kZWZjb25maWc6Njg6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9jdXJyaXR1Y2tfZGVmY29uZmlnLTY5LUNPTkZJR19QUk9DX0tDT1JFPXlcXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9mc3AyX2RlZmNvbmZpZz05ND1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2ZzcDJfZGVmY29uZmlnOjk1OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2ZzcDJfZGVmY29uZmlnOjk2OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvZnNwMl9kZWZjb25maWctOTctQ09ORklHX1BST0NfS0NPUkU9eVxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2lzczQ3Ni1zbXBfZGVmY29uZmlnPTUyPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvaXNzNDc2LXNtcF9kZWZjb25maWc6NTM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvaXNzNDc2LXNtcF9kZWZjb25maWc6NTQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9pc3M0NzYtc21wX2RlZmNvbmZpZy01NS1DT05GSUdfUFJPQ19LQ09SRT15XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvc2FtNDQwZXBfZGVmY29uZmlnPTc5PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvc2FtNDQwZXBfZGVmY29uZmlnOjgwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L3NhbTQ0MGVwX2RlZmNvbmZpZy04MS1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvZ2VfaW1wM2FfZGVmY29uZmlnPTE2Mz1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9nZV9pbXAzYV9kZWZjb25maWc6MTY0OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9nZV9pbXAzYV9kZWZjb25maWctMTY1LUNPTkZJR19GVVNFX0ZTPXlcXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZz0yMDE9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZzoyMDI6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy9nNV9kZWZjb25maWc6MjAzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy9nNV9kZWZjb25maWctMjA0LUNPTkZJR19YRlNfRlM9bVxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG1hYzMyX2RlZmNvbmZpZz0yNTY9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWc6MjU3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG1hYzMyX2RlZmNvbmZpZy0yNTgtQ09ORklHX0FVVE9GU19GUz1tXFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZz0yNTc9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3Bvd2VybnZfZGVmY29uZmlnOjI1ODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3Bvd2VybnZfZGVmY29uZmlnOjI1OTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG93ZXJudl9kZWZjb25maWctMjYwLUNPTkZJR19KRlNfRlM9bVxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnPTMxNT1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnOjMxNjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0X2RlZmNvbmZpZzozMTc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0X2RlZmNvbmZpZy0zMTgtQ09ORklHX1hGU19GUz15XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NGVfZGVmY29uZmlnPTE3Mj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRlX2RlZmNvbmZpZzoxNzM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NGVfZGVmY29uZmlnOjE3NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRlX2RlZmNvbmZpZy0xNzUtQ09ORklHX0pGU19GUz15XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnPTkyMD1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZzo5MjE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnOjkyMjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZy05MjMtQ09ORklHX0pCRDJfREVCVUc9eVxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvc2tpcm9vdF9kZWZjb25maWc9MjQ2PUNPTkZJR19FWFQ0X0ZTPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9za2lyb290X2RlZmNvbmZpZzoyNDc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy9za2lyb290X2RlZmNvbmZpZzoyNDg6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3NraXJvb3RfZGVmY29uZmlnLTI0OS1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvcmlzY3YvY29uZmlncy9kZWZjb25maWc9Mjc4PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnOjI3OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvcmlzY3YvY29uZmlncy9kZWZjb25maWc6MjgwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnLTI4MS1DT05GSUdfQlRSRlNfRlM9bVxcbi0tXFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnPTY1Mj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnOjY1MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZzo2NTQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZy02NTUtQ09ORklHX0pCRDJfREVCVUc9eVxcbi0tXFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnPTY0Mj1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnOjY0MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZzo2NDQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZy02NDUtQ09ORklHX0pCRDJfREVCVUc9eVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL2FwMzI1cnhhX2RlZmNvbmZpZz04ND1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9zaC9jb25maWdzL2FwMzI1cnhhX2RlZmNvbmZpZzo4NTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvc2gvY29uZmlncy9hcDMyNXJ4YV9kZWZjb25maWc6ODY6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvc2gvY29uZmlncy9hcDMyNXJ4YV9kZWZjb25maWctODctQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL2Vjb3ZlYzI0X2RlZmNvbmZpZz0xMTA9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvc2gvY29uZmlncy9lY292ZWMyNF9kZWZjb25maWc6MTExOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9zaC9jb25maWdzL2Vjb3ZlYzI0X2RlZmNvbmZpZzoxMTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvc2gvY29uZmlncy9lY292ZWMyNF9kZWZjb25maWctMTEzLUNPTkZJR19WRkFUX0ZTPXlcXG4tLVxcbmFyY2gvc2gvY29uZmlncy9tYWdpY3BhbmVscjJfZGVmY29uZmlnPTY3PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3NoL2NvbmZpZ3MvbWFnaWNwYW5lbHIyX2RlZmNvbmZpZzo2ODojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcXG5hcmNoL3NoL2NvbmZpZ3MvbWFnaWNwYW5lbHIyX2RlZmNvbmZpZy02OS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvc2gvY29uZmlncy9zZGs3NzgwX2RlZmNvbmZpZz0xMDU9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvc2gvY29uZmlncy9zZGs3NzgwX2RlZmNvbmZpZzoxMDY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3NoL2NvbmZpZ3Mvc2RrNzc4MF9kZWZjb25maWctMTA3LUNPTkZJR19BVVRPRlNfRlM9eVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL3NlNzcyNF9kZWZjb25maWc9MTEwPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3NoL2NvbmZpZ3Mvc2U3NzI0X2RlZmNvbmZpZzoxMTE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3NoL2NvbmZpZ3Mvc2U3NzI0X2RlZmNvbmZpZzoxMTI6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvc2gvY29uZmlncy9zZTc3MjRfZGVmY29uZmlnLTExMy1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL3NoL2NvbmZpZ3Mvc2gwM19kZWZjb25maWc9NjA9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvc2gvY29uZmlncy9zaDAzX2RlZmNvbmZpZzo2MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvc2gvY29uZmlncy9zaDAzX2RlZmNvbmZpZy02Mi1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWc9MjE4PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnOjIxOTojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcXG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnLTIyMC1DT05GSUdfWEZTX0ZTPW1cXG4tLVxcbmFyY2gvc3BhcmMvY29uZmlncy9zcGFyYzY0X2RlZmNvbmZpZz0xODg9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvc3BhcmMvY29uZmlncy9zcGFyYzY0X2RlZmNvbmZpZzoxODk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL3NwYXJjL2NvbmZpZ3Mvc3BhcmM2NF9kZWZjb25maWc6MTkwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3NwYXJjL2NvbmZpZ3Mvc3BhcmM2NF9kZWZjb25maWctMTkxLUNPTkZJR19QUk9DX0tDT1JFPXlcXG4tLVxcbmFyY2gveDg2L2NvbmZpZ3MvaTM4Nl9kZWZjb25maWc9MjMzPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnOjIzNDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gveDg2L2NvbmZpZ3MvaTM4Nl9kZWZjb25maWc6MjM1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnLTIzNi1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC94ODYvY29uZmlncy94ODZfNjRfZGVmY29uZmlnPTIzND1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC94ODYvY29uZmlncy94ODZfNjRfZGVmY29uZmlnOjIzNTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZzoyMzY6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZy0yMzctQ09ORklHX1FVT1RBPXlcXG4tLVxcbmZzL2V4dDQvTWFrZWZpbGU9OD1leHQ0LXlcXHQ6PSBiYWxsb2MubyBiaXRtYXAubyBibG9ja192YWxpZGl0eS5vIGRpci5vIGV4dDRfamJkMi5vIGV4dGVudHMubyBcXFxcXFxuLS1cXG5mcy9leHQ0L01ha2VmaWxlLTE0LVxcbmZzL2V4dDQvTWFrZWZpbGU6MTU6ZXh0NC0kKENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTClcXHQrPSBhY2wub1xcbmZzL2V4dDQvTWFrZWZpbGU6MTY6ZXh0NC0kKENPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZKVxcdFxcdCs9IHhhdHRyX3NlY3VyaXR5Lm9cXG5mcy9leHQ0L01ha2VmaWxlLTE3LWV4dDQtdGVzdC1vYmpzXFx0XFx0XFx0XFx0Kz0gaW5vZGUtdGVzdC5vIG1iYWxsb2MtdGVzdC5vIFxcXFxcXG4tLVxcbmZzL2V4dDQvYWNsLmg9Mzk9c3RhdGljIGlubGluZSBpbnQgZXh0NF9hY2xfY291bnQoc2l6ZV90IHNpemUpXFxuLS1cXG5mcy9leHQ0L2FjbC5oLTU0LVxcbmZzL2V4dDQvYWNsLmg6NTU6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTFxcbmZzL2V4dDQvYWNsLmgtNTYtXFxuLS1cXG5mcy9leHQ0L2FjbC5oPTYxPWV4dGVybiBpbnQgZXh0NF9pbml0X2FjbChoYW5kbGVfdCAqLCBzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGlub2RlICopO1xcbmZzL2V4dDQvYWNsLmgtNjItXFxuZnMvZXh0NC9hY2wuaDo2MzojZWxzZSAgLyogQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMICovXFxuZnMvZXh0NC9hY2wuaC02NC0jaW5jbHVkZSBcXHUwMDNjbGludXgvc2NoZWQuaFxcdTAwM2VcXG4tLVxcbmZzL2V4dDQvYWNsLmg9Njk9ZXh0NF9pbml0X2FjbChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaW5vZGUgKmRpcilcXG4tLVxcbmZzL2V4dDQvYWNsLmgtNzItfVxcbmZzL2V4dDQvYWNsLmg6NzM6I2VuZGlmICAvKiBDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0wgKi9cXG5mcy9leHQ0L2FjbC5oLTc0LVxcbi0tXFxuZnMvZXh0NC9pYWxsb2MuYz04NzY9c3RhdGljIGludCBleHQ0X3hhdHRyX2NyZWRpdHNfZm9yX25ld19pbm9kZShzdHJ1Y3QgaW5vZGUgKmRpciwgbW9kZV90IG1vZGUsXFxuLS1cXG5mcy9leHQ0L2lhbGxvYy5jLTg4MC1cXHRpbnQgbmJsb2NrcyA9IDA7XFxuZnMvZXh0NC9pYWxsb2MuYzo4ODE6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTFxcbmZzL2V4dDQvaWFsbG9jLmMtODgyLVxcdHN0cnVjdCBwb3NpeF9hY2wgKnAgPSBnZXRfaW5vZGVfYWNsKGRpciwgQUNMX1RZUEVfREVGQVVMVCk7XFxuLS1cXG5mcy9leHQ0L3N1cGVyLmM9MTg3OT1zdGF0aWMgY29uc3Qgc3RydWN0IG1vdW50X29wdHMge1xcbi0tXFxuZnMvZXh0NC9zdXBlci5jLTE5MjItXFx0e09wdF91c2VyX3hhdHRyLCBFWFQ0X01PVU5UX1hBVFRSX1VTRVIsIE1PUFRfU0VUfSxcXG5mcy9leHQ0L3N1cGVyLmM6MTkyMzojaWZkZWYgQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMXFxuZnMvZXh0NC9zdXBlci5jLTE5MjQtXFx0e09wdF9hY2wsIEVYVDRfTU9VTlRfUE9TSVhfQUNMLCBNT1BUX1NFVH0sXFxuLS1cXG5mcy9leHQ0L3N1cGVyLmM9NDM4OD1zdGF0aWMgdm9pZCBleHQ0X3NldF9kZWZfb3B0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLFxcbi0tXFxuZnMvZXh0NC9zdXBlci5jLTQ0MDMtXFx0c2V0X29wdChzYiwgWEFUVFJfVVNFUik7XFxuZnMvZXh0NC9zdXBlci5jOjQ0MDQ6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTFxcbmZzL2V4dDQvc3VwZXIuYy00NDA1LVxcdHNldF9vcHQoc2IsIFBPU0lYX0FDTCk7XFxuLS1cXG5mcy9leHQ0L3hhdHRyLmM9ODg9c3RhdGljIGNvbnN0IHN0cnVjdCB4YXR0cl9oYW5kbGVyICogY29uc3QgZXh0NF94YXR0cl9oYW5kbGVyX21hcFtdID0ge1xcbmZzL2V4dDQveGF0dHIuYy04OS1cXHRbRVhUNF9YQVRUUl9JTkRFWF9VU0VSXVxcdFxcdCAgICAgPSBcXHUwMDI2ZXh0NF94YXR0cl91c2VyX2hhbmRsZXIsXFxuZnMvZXh0NC94YXR0ci5jOjkwOiNpZmRlZiBDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0xcXG5mcy9leHQ0L3hhdHRyLmMtOTEtXFx0W0VYVDRfWEFUVFJfSU5ERVhfUE9TSVhfQUNMX0FDQ0VTU10gID0gXFx1MDAyNm5vcF9wb3NpeF9hY2xfYWNjZXNzLFxcbi0tXFxuZnMvZXh0NC94YXR0ci5jLTk0LVxcdFtFWFQ0X1hBVFRSX0lOREVYX1RSVVNURURdXFx0ICAgICA9IFxcdTAwMjZleHQ0X3hhdHRyX3RydXN0ZWRfaGFuZGxlcixcXG5mcy9leHQ0L3hhdHRyLmM6OTU6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZXFxuZnMvZXh0NC94YXR0ci5jLTk2LVxcdFtFWFQ0X1hBVFRSX0lOREVYX1NFQ1VSSVRZXVxcdCAgICAgPSBcXHUwMDI2ZXh0NF94YXR0cl9zZWN1cml0eV9oYW5kbGVyLFxcbi0tXFxuZnMvZXh0NC94YXR0ci5jPTEwMT1jb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciAqIGNvbnN0IGV4dDRfeGF0dHJfaGFuZGxlcnNbXSA9IHtcXG4tLVxcbmZzL2V4dDQveGF0dHIuYy0xMDMtXFx0XFx1MDAyNmV4dDRfeGF0dHJfdHJ1c3RlZF9oYW5kbGVyLFxcbmZzL2V4dDQveGF0dHIuYzoxMDQ6I2lmZGVmIENPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZXFxuZnMvZXh0NC94YXR0ci5jLTEwNS1cXHRcXHUwMDI2ZXh0NF94YXR0cl9zZWN1cml0eV9oYW5kbGVyLFxcbi0tXFxuZnMvZXh0NC94YXR0ci5oPTIxMz1fX3hhdHRyX2NoZWNrX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2hlYWRlciAqaGVhZGVyLFxcbi0tXFxuZnMvZXh0NC94YXR0ci5oLTIxOC1cXG5mcy9leHQ0L3hhdHRyLmg6MjE5OiNpZmRlZiBDT05GSUdfRVhUNF9GU19TRUNVUklUWVxcbmZzL2V4dDQveGF0dHIuaC0yMjAtZXh0ZXJuIGludCBleHQ0X2luaXRfc2VjdXJpdHkoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSxcXG4tLVxcbnNjcmlwdHMvc2VsaW51eC9tZHAvbWRwLmM9Mzg9aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSlcXG4tLVxcbnNjcmlwdHMvc2VsaW51eC9tZHAvbWRwLmMtMTU5LSNlbmRpZlxcbnNjcmlwdHMvc2VsaW51eC9tZHAvbWRwLmM6MTYwOiNpZmRlZiBDT05GSUdfRVhUNF9GU19TRUNVUklUWVxcbnNjcmlwdHMvc2VsaW51eC9tZHAvbWRwLmMtMTYxLSNpZmRlZiBDT05GSUdfRVhUNF9VU0VfRk9SX0VYVDJcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2ND00Nj1DT05GSUdfRVhQRVJUPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLmFhcmNoNjQ6NDc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLmFhcmNoNjQ6NDg6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2NC00OS1DT05GSUdfRVhUNF9GUz15XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnBwYzY0ZWw9Mjg9Q09ORklHX0VYUEVSVD15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5wcGM2NGVsOjI5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5wcGM2NGVsOjMwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnBwYzY0ZWwtMzEtQ09ORklHX0VYVDRfRlM9eVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5yaXNjdjY0PTI1PUNPTkZJR19FWFQ0X0ZTPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnJpc2N2NjQ6MjY6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnJpc2N2NjQ6Mjc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcucmlzY3Y2NC0yOC1DT05GSUdfRlJBTUVfUE9JTlRFUj15XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnMzOTB4PTM1PUNPTkZJR19FWFQ0X0ZTPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnMzOTB4OjM2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5zMzkweDozNzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5zMzkweC0zOC1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy54ODZfNjQ9NTk9Q09ORklHX0VYVDRfRlM9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcueDg2XzY0OjYwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy54ODZfNjQ6NjE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcueDg2XzY0LTYyLUNPTkZJR19GQUlMX0ZVTkNUSU9OPXlcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2hpZC9jb25maWcuY29tbW9uPTU5PUNPTkZJR19FWFBFUlQ9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2hpZC9jb25maWcuY29tbW9uOjYwOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvaGlkL2NvbmZpZy5jb21tb246NjE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2hpZC9jb25maWcuY29tbW9uLTYyLUNPTkZJR19FWFQ0X0ZTPXlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTY6NTk6MzUuMzQ0NjM5MjkzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2NzkyNjU1MzE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJbmxpbmUgRGF0YSBDb25maWd1cmF0aW9uIC0gSW5pdGlhbCBBc3Nlc3NtZW50IFx1MDAyNiBWZXJpZmljYXRpb24qKlxuXG5SaWdodCwgc28sIHN0cmFpZ2h0IG9mZiB0aGUgYmF0LCBubyBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbiBzZWVtcyB0byBleGlzdCBkZWRpY2F0ZWQgdG8gaW5saW5lIGRhdGEuIFRoZSBjb2RlIG1lbnRpb25zIGBFWFQ0X0ZTYCwgd2hpY2ggSSdtIHRha2luZyBhcyB0aGUgcHJpbWFyeSBpbmRpY2F0b3IuIEhvd2V2ZXIsIGl0J3MgYWx3YXlzIGJlc3QgdG8gYmUgbWV0aWN1bG91cywgYW5kIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCBoaWRkZW4gZGVwZW5kZW5jaWVzIG9yIGluZGlyZWN0IGNvbmZpZ3VyYXRpb25zIGNhbiBvZnRlbiBjYXRjaCB5b3Ugb3V0LiBHaXZlbiBteSBkZWVwIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGludHJpY2FjaWVzIG9mIGBleHQ0YCwgSSBuZWVkIHRvIGltbWVkaWF0ZWx5IHZlcmlmeSB0aGlzIGluaXRpYWwgYXNzdW1wdGlvbi5cblxuU28sIEkgbmVlZCB0byBtZXRob2RpY2FsbHkgY2hlY2sgZm9yIGFueSBvdGhlciByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBtaWdodCBpbmZsdWVuY2UgaW5saW5lIGRhdGEgYmVoYXZpb3VyLCBldmVuIGlmIHRoZXkgYXJlbid0IGV4cGxpY2l0bHkgbmFtZWQuIElzIHRoZXJlIHNvbWV0aGluZyB0aWVkIHRvIGJsb2NrIHNpemVzLCBqb3VybmFsaW5nLCBvciBjb21wcmVzc2lvbiB0aGF0IGNvdWxkIGluYWR2ZXJ0ZW50bHkgaW50ZXJhY3Qgd2l0aCBpbmxpbmUgZGF0YSBoYW5kbGluZz8gUGVyaGFwcyB0aGVyZSdzIGFuIG9ic2N1cmUgYnVpbGQgZmxhZyBvciBrZXJuZWwgcGFyYW1ldGVyIHRoYXQgSSdtIG92ZXJsb29raW5nPyBUaGlzIGlzIGFib3V0IGVuc3VyaW5nIGNvbXBsZXRlIGNlcnRhaW50eSBiZWZvcmUgbW92aW5nIGZvcndhcmQgd2l0aCBhbnkgZnVydGhlciBhbmFseXNpcyBvciBtb2RpZmljYXRpb25zLiBJJ2xsIHN0YXJ0IGJ5IHJldmlld2luZyB0aGUga2VybmVsIGNvbmZpZyBvcHRpb25zLCBhbmQgdGhlbiBjaGVjayBhbnkgYnVpbGQgc2NyaXB0cyB3aGljaCBtYXkgYWZmZWN0IGV4dDQgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzExMDYsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNjo1OTo1Mi4xMzcyOTk4NjdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2MDg5Mzc3MDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX0VYVDRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMzEzIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWc9ODg9Q09ORklHX01NQ19EVz15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDFfZGVmY29uZmlnLTg5LSMgQ09ORklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldFxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZzo5MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDFfZGVmY29uZmlnLTkxLUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc9ODY9Q09ORklHX01NQ19EVz15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnLTg3LSMgQ09ORklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldFxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX2RlZmNvbmZpZzo4ODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnLTg5LUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnPTg4PUNPTkZJR19NTUNfRFc9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX3NtcF9kZWZjb25maWctODktIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZzo5MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZy05MS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZz03OT1DT05GSUdfVElfQURDMTA4UzEwMj15XFxuYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZzo4MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZy04MS1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZz03NT1DT05GSUdfVVNCX1NFUklBTD15XFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWctNzYtIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWc6Nzc6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnOjc4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZy03OS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9zbXBfZGVmY29uZmlnPTgyPUNPTkZJR19VSU9fUERSVl9HRU5JUlE9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZy04My0jIENPTkZJR19JT01NVV9TVVBQT1JUIGlzIG5vdCBzZXRcXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWc6ODQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZy04NS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9hc3BlZWRfZzVfZGVmY29uZmlnPTI2ND1DT05GSUdfUEVDSV9BU1BFRUQ9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZzoyNjU6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZy0yNjYtQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXQ5MV9kdF9kZWZjb25maWc9MjA3PUNPTkZJR19QV01fQVRNRUxfVENCPXlcXG5hcmNoL2FybS9jb25maWdzL2F0OTFfZHRfZGVmY29uZmlnOjIwODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9hdDkxX2R0X2RlZmNvbmZpZy0yMDktQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc9MTk2PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2F4bTU1eHhfZGVmY29uZmlnOjE5NzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9heG01NXh4X2RlZmNvbmZpZy0xOTgtQ09ORklHX0FVVE9GU19GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnPTE1Nj1DT05GSUdfRVhUMl9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYmNtMjgzNV9kZWZjb25maWc6MTU3OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2JjbTI4MzVfZGVmY29uZmlnOjE1ODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYmNtMjgzNV9kZWZjb25maWctMTU5LUNPTkZJR19GQU5PVElGWT15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2RhdmluY2lfYWxsX2RlZmNvbmZpZz0yMjk9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvZGF2aW5jaV9hbGxfZGVmY29uZmlnOjIzMDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWc6MjMxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9kYXZpbmNpX2FsbF9kZWZjb25maWctMjMyLUNPTkZJR19YRlNfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZz05Nz1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZzo5ODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9kb3ZlX2RlZmNvbmZpZzo5OTojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcXG5hcmNoL2FybS9jb25maWdzL2RvdmVfZGVmY29uZmlnLTEwMC1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWc9MTA1PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWc6MTA2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWc6MTA3OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZy0xMDgtQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9leHlub3NfZGVmY29uZmlnPTMzMj1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9leHlub3NfZGVmY29uZmlnOjMzMzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9leHlub3NfZGVmY29uZmlnLTMzNC1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaGlzaV9kZWZjb25maWc9Nzc9Q09ORklHX1BIWV9ISVg1SEQyX1NBVEE9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaGlzaV9kZWZjb25maWc6Nzg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaGlzaV9kZWZjb25maWctNzktQ09ORklHX1RNUEZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y0X3Y1X2RlZmNvbmZpZz0xNTU9Q09ORklHX1BXTV9JTVgyNz15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjRfdjVfZGVmY29uZmlnOjE1NjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjRfdjVfZGVmY29uZmlnLTE1Ny0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZz00Mzk9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZzo0NDA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZzo0NDE6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWctNDQzLUNPTkZJR19RVU9UQT15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZz0yNz1DT05GSUdfQ0xLX0lNWFJUMTA1MD15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6Mjg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnOjI5OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhydF9kZWZjb25maWc6MzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnLTMxLUNPTkZJR19WRkFUX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZz0xNTU9Q09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWc6MTU2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWc6MTU3OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnLTE1OC1DT05GSUdfT1ZFUkxBWV9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2tleXN0b25lX2RlZmNvbmZpZz0yMDU9Q09ORklHX1JFU0VUX1RJX1NZU0NPTj1tXFxuYXJjaC9hcm0vY29uZmlncy9rZXlzdG9uZV9kZWZjb25maWc6MjA2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2tleXN0b25lX2RlZmNvbmZpZzoyMDc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL2tleXN0b25lX2RlZmNvbmZpZy0yMDgtQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbWlsYmVhdXRfbTEwdl9kZWZjb25maWc9ODE9Q09ORklHX01FTU9SWT15XFxuYXJjaC9hcm0vY29uZmlncy9taWxiZWF1dF9tMTB2X2RlZmNvbmZpZy04Mi0jIENPTkZJR19BUk1fUE1VIGlzIG5vdCBzZXRcXG5hcmNoL2FybS9jb25maWdzL21pbGJlYXV0X20xMHZfZGVmY29uZmlnOjgzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL21pbGJlYXV0X20xMHZfZGVmY29uZmlnLTg0LUNPTkZJR19BVVRPRlNfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9tbXAyX2RlZmNvbmZpZz01NT1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9tbXAyX2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9tbXAyX2RlZmNvbmZpZy01Ny0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbW94YXJ0X2RlZmNvbmZpZz0xMTQ9Q09ORklHX01PWEFSVF9ETUE9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbW94YXJ0X2RlZmNvbmZpZy0xMTUtIyBDT05GSUdfSU9NTVVfU1VQUE9SVCBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnOjExNjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9tb3hhcnRfZGVmY29uZmlnLTExNy1DT05GSUdfVE1QRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92NV9kZWZjb25maWc9MjY5PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y1X2RlZmNvbmZpZzoyNzA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjVfZGVmY29uZmlnLTI3MS1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y3X2RlZmNvbmZpZz0xMjgzPUNPTkZJR19TVE0zMl9USU1FUl9DTlQ9bVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnOjEyODQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnLTEyODUtQ09ORklHX0FVVE9GU19GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnPTkzPUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnOjk0OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnOjk1OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWctOTYtQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92NV9kZWZjb25maWc9MTY5PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y1X2RlZmNvbmZpZzoxNzA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXZlYnVfdjVfZGVmY29uZmlnLTE3MS1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y3X2RlZmNvbmZpZz0xMzA9Q09ORklHX1BIWV9NVkVCVV9BMzhYX0NPTVBIWT15XFxuYXJjaC9hcm0vY29uZmlncy9tdmVidV92N19kZWZjb25maWc6MTMxOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL212ZWJ1X3Y3X2RlZmNvbmZpZy0xMzItQ09ORklHX0lTTzk2NjBfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9teHNfZGVmY29uZmlnPTEzNj1DT05GSUdfTlZNRU1fTVhTX09DT1RQPXlcXG5hcmNoL2FybS9jb25maWdzL214c19kZWZjb25maWc6MTM3OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL214c19kZWZjb25maWctMTM4LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9uaGs4ODE1X2RlZmNvbmZpZz0xMTg9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbmhrODgxNV9kZWZjb25maWc6MTE5OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnLTEyMC1DT05GSUdfRlVTRV9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL29tYXAxX2RlZmNvbmZpZz0xODQ9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnOjE4NTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMV9kZWZjb25maWctMTg2LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnPTY4MT1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnOjY4MjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnOjY4MzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnLTY4NC1DT05GSUdfRkFOT1RJRlk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZz0xMTc9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWc6MTE4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnOjExOTojIENPTkZJR19FWFQ0X0ZTX1hBVFRSIGlzIG5vdCBzZXRcXG5hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnOjEyMDpDT05GSUdfRVhUNF9GUz1tXFxuYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZy0xMjEtQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnPTU3NT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnOjU3NjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnOjU3NzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZzo1Nzg6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy01NzktQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3Fjb21fZGVmY29uZmlnPTI3OD1DT05GSUdfRVhUMl9GU19YQVRUUj15XFxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZzoyNzk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvcWNvbV9kZWZjb25maWctMjgwLUNPTkZJR19GVVNFX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZz03OT1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9ycGNfZGVmY29uZmlnOjgwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3JwY19kZWZjb25maWctODEtQ09ORklHX0FVVE9GU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnPTU0PUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU1OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3MzYzY0MDBfZGVmY29uZmlnOjU2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZzo1NzpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zM2M2NDAwX2RlZmNvbmZpZy01OC1DT05GSUdfVE1QRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zNXB2MjEwX2RlZmNvbmZpZz0xMDM9Q09ORklHX0VYVDJfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvczVwdjIxMF9kZWZjb25maWc6MTA0OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3M1cHYyMTBfZGVmY29uZmlnLTEwNS1DT05GSUdfQVVUT0ZTX0ZTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTVfZGVmY29uZmlnPTIyMj1DT05GSUdfUFdNX0FUTUVMX1RDQj15XFxuYXJjaC9hcm0vY29uZmlncy9zYW1hNV9kZWZjb25maWc6MjIzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NhbWE1X2RlZmNvbmZpZy0yMjQtQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc2FtYTdfZGVmY29uZmlnPTIxND1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zYW1hN19kZWZjb25maWc6MjE1OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NhbWE3X2RlZmNvbmZpZy0yMTYtQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWc9MTM3PUNPTkZJR19FWFQyX0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZzoxMzg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWctMTM5LUNPTkZJR19BVVRPRlNfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcDcwMjFfZGVmY29uZmlnPTQwPUNPTkZJR19SRVNFVF9DT05UUk9MTEVSPXlcXG5hcmNoL2FybS9jb25maWdzL3NwNzAyMV9kZWZjb25maWc6NDE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3A3MDIxX2RlZmNvbmZpZy00Mi0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZz04NT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnOjg2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWc6ODc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZy04OC1DT05GSUdfQVVUT0ZTX0ZTPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIzeHhfZGVmY29uZmlnPTY4PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzo2OTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWc6NzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIzeHhfZGVmY29uZmlnLTcxLUNPTkZJR19BVVRPRlNfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjZ4eF9kZWZjb25maWc9NTQ9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXI2eHhfZGVmY29uZmlnOjU1OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjZ4eF9kZWZjb25maWctNTctQ09ORklHX0FVVE9GU19GUz1tXFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZz0xOTI9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnOjE5MzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6MTk0OiMgQ09ORklHX0VYVDRfRlNfWEFUVFIgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnLTE5NS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWc9NzE9Q09ORklHX1NUTTMyX0FEQz15XFxuYXJjaC9hcm0vY29uZmlncy9zdG0zMl9kZWZjb25maWc6NzI6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3RtMzJfZGVmY29uZmlnLTczLSMgQ09ORklHX0ZJTEVfTE9DS0lORyBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZz0xNjI9Q09ORklHX05WTUVNX1NVTlhJX1NJRD15XFxuYXJjaC9hcm0vY29uZmlncy9zdW54aV9kZWZjb25maWc6MTYzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZy0xNjQtQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy90ZWdyYV9kZWZjb25maWc9MzEyPUNPTkZJR19QSFlfVEVHUkFfWFVTQj15XFxuYXJjaC9hcm0vY29uZmlncy90ZWdyYV9kZWZjb25maWc6MzEzOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTQ6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybS9jb25maWdzL3RlZ3JhX2RlZmNvbmZpZzozMTU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdGVncmFfZGVmY29uZmlnLTMxNi0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvdTg1MDBfZGVmY29uZmlnPTE3NT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9hcm0vY29uZmlncy91ODUwMF9kZWZjb25maWc6MTc2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3U4NTAwX2RlZmNvbmZpZy0xNzctQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy92ZXhwcmVzc19kZWZjb25maWc9MTIyPUNPTkZJR19FWFQyX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3ZleHByZXNzX2RlZmNvbmZpZzoxMjM6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdmV4cHJlc3NfZGVmY29uZmlnLTEyNC1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3ZmNjEwbTRfZGVmY29uZmlnPTM1PUNPTkZJR19NRkRfU1lTQ09OPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvdmY2MTBtNF9kZWZjb25maWctMzctIyBDT05GSUdfVVNCX1NVUFBPUlQgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvdmY2MTBtNF9kZWZjb25maWc6Mzg6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdmY2MTBtNF9kZWZjb25maWctMzktIyBDT05GSUdfTUlTQ19GSUxFU1lTVEVNUyBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3Z0ODUwMF92Nl92N19kZWZjb25maWc9Nzk9Q09ORklHX0dFTkVSSUNfUEhZPXlcXG5hcmNoL2FybS9jb25maWdzL3Z0ODUwMF92Nl92N19kZWZjb25maWc6ODA6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvdnQ4NTAwX3Y2X3Y3X2RlZmNvbmZpZy04MS1DT05GSUdfVE1QRlM9eVxcbi0tXFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZz0xODk4PUNPTkZJR19IVEVfVEVHUkExOTRfVEVTVD1tXFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzoxODk5OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE5MDA6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE5MDE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWctMTkwMi1DT05GSUdfQlRSRlNfRlM9bVxcbi0tXFxuYXJjaC9jc2t5L2NvbmZpZ3MvZGVmY29uZmlnPTMzPUNPTkZJR19HRU5FUklDX1BIWT15XFxuYXJjaC9jc2t5L2NvbmZpZ3MvZGVmY29uZmlnOjM0OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2Nza3kvY29uZmlncy9kZWZjb25maWctMzUtQ09ORklHX0ZBTk9USUZZPXlcXG4tLVxcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZz00OD1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9oZXhhZ29uL2NvbmZpZ3MvY29tZXRfZGVmY29uZmlnOjQ5OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2hleGFnb24vY29uZmlncy9jb21ldF9kZWZjb25maWc6NTA6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2hleGFnb24vY29uZmlncy9jb21ldF9kZWZjb25maWc6NTE6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvaGV4YWdvbi9jb25maWdzL2NvbWV0X2RlZmNvbmZpZy01Mi1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZz05NTA9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUxOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjk1MjpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTUzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTk1NC1DT05GSUdfSkZTX0ZTPW1cXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc9OTgxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4MjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZzo5ODM6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjk4NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy05ODUtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9hbWlnYV9kZWZjb25maWc9NDAzPUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZzo0MDQ6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZy00MDUtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnPTM1OD1DT05GSUdfREFYPW1cXG5hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnOjM1OTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXBvbGxvX2RlZmNvbmZpZy0zNjAtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWc9MzgxPUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZzozODI6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZy0zODMtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9idm1lNjAwMF9kZWZjb25maWc9MzUwPUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZzozNTE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZy0zNTItQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWc9MzYwPUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL2hwMzAwX2RlZmNvbmZpZzozNjE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL2hwMzAwX2RlZmNvbmZpZy0zNjItQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnPTM3OT1DT05GSUdfREFYPW1cXG5hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnOjM4MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvbWFjX2RlZmNvbmZpZy0zODEtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9tdWx0aV9kZWZjb25maWc9NDY2PUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZzo0Njc6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZy00NjgtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZz0zNTA9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWc6MzUxOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZy0zNTItQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZz0zNTE9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE2eF9kZWZjb25maWc6MzUyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZy0zNTMtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnPTM2OT1DT05GSUdfREFYPW1cXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnOjM3MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvcTQwX2RlZmNvbmZpZy0zNzEtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9zdG1hcmsyX2RlZmNvbmZpZz04Mj1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc6ODM6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnOjg0OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3RtYXJrMl9kZWZjb25maWc6ODU6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbTY4ay9jb25maWdzL3N0bWFyazJfZGVmY29uZmlnLTg2LSMgQ09ORklHX0ZJTEVfTE9DS0lORyBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZz0zNDg9Q09ORklHX0RBWD1tXFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWc6MzQ5OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZy0zNTAtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9zdW4zeF9kZWZjb25maWc9MzQ4PUNPTkZJR19EQVg9bVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZzozNDk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZy0zNTAtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZz01NT1DT05GSUdfVklSVElPX0lOUFVUPXlcXG5hcmNoL202OGsvY29uZmlncy92aXJ0X2RlZmNvbmZpZzo1NjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9tNjhrL2NvbmZpZ3MvdmlydF9kZWZjb25maWctNTctQ09ORklHX0FVVE9GU19GUz15XFxuLS1cXG5hcmNoL21pY3JvYmxhemUvY29uZmlncy9tbXVfZGVmY29uZmlnPTc1PUNPTkZJR19VSU9fRE1FTV9HRU5JUlE9eVxcbmFyY2gvbWljcm9ibGF6ZS9jb25maWdzL21tdV9kZWZjb25maWc6NzY6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWljcm9ibGF6ZS9jb25maWdzL21tdV9kZWZjb25maWctNzctIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnPTEzNj1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTM4OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZzoxMzk6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTQwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnLTE0MS1DT05GSUdfUVVPVEE9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnPTU3PUNPTkZJR19VU0JfU1RPUkFHRT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjU4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc6NTk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc6NjA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZy02MS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc9MTQxPUNPTkZJR19NTUNfU0RIQ0lfUExURk09eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnOjE0MzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQ0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnLTE0NS0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2Nhdml1bV9vY3Rlb25fZGVmY29uZmlnPTEzNj1DT05GSUdfUkFTPXlcXG5hcmNoL21pcHMvY29uZmlncy9jYXZpdW1fb2N0ZW9uX2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Nhdml1bV9vY3Rlb25fZGVmY29uZmlnOjEzODpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Nhdml1bV9vY3Rlb25fZGVmY29uZmlnOjEzOTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY2F2aXVtX29jdGVvbl9kZWZjb25maWctMTQwLUNPTkZJR19NU0RPU19GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9jaTIwX2RlZmNvbmZpZz0xNjY9Q09ORklHX05WTUVNX0paNDc4MF9FRlVTRT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY2kyMF9kZWZjb25maWc6MTY3OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9jaTIwX2RlZmNvbmZpZy0xNjgtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnPTYxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnOjYyOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9jb2JhbHRfZGVmY29uZmlnOjYzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZzo2NDpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY29iYWx0X2RlZmNvbmZpZy02NS1DT05GSUdfUFJPQ19LQ09SRT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9jdTEwMDAtbmVvX2RlZmNvbmZpZz04OT1DT05GSUdfUEhZX0lOR0VOSUNfVVNCPXlcXG5hcmNoL21pcHMvY29uZmlncy9jdTEwMDAtbmVvX2RlZmNvbmZpZzo5MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxMDAwLW5lb19kZWZjb25maWctOTEtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZz05Mj1DT05GSUdfUEhZX0lOR0VOSUNfVVNCPXlcXG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZzo5MzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxODMwLW5lb19kZWZjb25maWctOTQtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnPTE2OT1DT05GSUdfUlRDX0RSVl9BVTFYWFg9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnOjE3MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTcyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnLTE3My1DT05GSUdfWEZTX0ZTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnPTEzNT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWc6MTM2OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZzoxMzc6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZzoxMzg6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnLTEzOS1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZz0xMzE9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnOjEzMjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTMzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTM0OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnPTEzMT1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEzMjpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEzMzpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZzoxMzQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZy0xMzUtQ09ORklHX0lTTzk2NjBfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnPTg5PUNPTkZJR19SRVNFVF9DT05UUk9MTEVSPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctOTAtIyBDT05GSUdfTlZNRU0gaXMgbm90IHNldFxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo5MTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjkzOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctOTQtQ09ORklHX0ZTX0VOQ1JZUFRJT049eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnPTg4PUNPTkZJR19SRVNFVF9DT05UUk9MTEVSPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWctODktIyBDT05GSUdfTlZNRU0gaXMgbm90IHNldFxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZzo5MDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjkxOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjkyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWctOTMtQ09ORklHX0ZTX0VOQ1JZUFRJT049eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc9OTY9Q09ORklHX1JFU0VUX0NPTlRST0xMRVI9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnLTk3LSMgQ09ORklHX05WTUVNIGlzIG5vdCBzZXRcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzo5ODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc6OTk6Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzoxMDA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnLTEwMS1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnPTE3ND1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzU6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWc6MTc2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZzoxNzc6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2Z1bG9vbmcyZV9kZWZjb25maWctMTc4LUNPTkZJR19BVVRPRlNfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2N3MF9kZWZjb25maWc9MTM0PUNPTkZJR19QV01fSlo0NzQwPXlcXG5hcmNoL21pcHMvY29uZmlncy9nY3cwX2RlZmNvbmZpZzoxMzU6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2djdzBfZGVmY29uZmlnLTEzNi1DT05GSUdfVkZBVF9GUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZz01NT1DT05GSUdfSElEX01PTlRFUkVZPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnLTU3LSMgQ09ORklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldFxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjU4OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzo1OTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjYwOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZy02MS1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZz0yMzM9Q09ORklHX0VYVDJfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjIzNDpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWc6MjM1OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWc6MjM2OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZy0yMzctQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZz0yNzI9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI3MzpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc6Mjc0OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWc6Mjc1OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZy0yNzYtQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9pcDI4X2RlZmNvbmZpZz01MT1DT05GSUdfRVhUMl9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTI6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnOjUzOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyOF9kZWZjb25maWc6NTQ6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjhfZGVmY29uZmlnLTU1LUNPTkZJR19RVU9UQT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZz0xNDQ9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnOjE0NTpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc6MTQ2OkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc6MTQ3OkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9pcDMwX2RlZmNvbmZpZy0xNDgtQ09ORklHX1hGU19GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZz05MD1DT05GSUdfRVhUMl9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnOjkyOkNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc6OTM6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnLTk0LUNPTkZJR19RVU9UQT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9qYXp6X2RlZmNvbmZpZz03MD1DT05GSUdfRVhUMl9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWc6NzE6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2phenpfZGVmY29uZmlnLTcyLUNPTkZJR19YRlNfRlM9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnPTIyNz1DT05GSUdfRVhUMl9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnOjIyODpDT05GSUdfRVhUNF9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbGVtb3RlMmZfZGVmY29uZmlnOjIyOTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZzoyMzA6Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xlbW90ZTJmX2RlZmNvbmZpZy0yMzEtQ09ORklHX0pGU19GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnPTE0OD1DT05GSUdfTE9PTkdTT04xX0FQQl9ETUE9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZy0xNTMtIyBDT05GSUdfTlZNRU0gaXMgbm90IHNldFxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc6MTU0OkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnOjE1NTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWctMTU2LSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc9Mjk4PUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZzoyOTk6Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnOjMwMDpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnOjMwMTpDT05GSUdfRVhUNF9GU19TRUNVUklUWT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWctMzAyLUNPTkZJR19YRlNfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZz0zNDk9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc6MzUwOkNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1MTpDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc6MzUyOkNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnLTM1My1DT05GSUdfWEZTX0ZTPXlcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTY6NTk6NTMuNzQ2MjQzNTk2WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MzM2MDk4NDU5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEVYVDQgSW5saW5lIERhdGEgQ29udmVyc2lvbiBQYXRjaCoqXG5cbk9rYXksIHNvIHdlJ3JlIHdvcmtpbmcgd2l0aCBgRVhUNF9GU2AsIGdvb2QuIExldCdzIGRpZyBpbnRvIHRoaXMgcGF0Y2guIFRoZSBrZXkgdGhpbmcgSSBzZWUgaXMgdGhhdCB0aGV5J3JlIHJlcGxhY2luZyB0aGUgb2xkIGBleHQ0X3Jlc3RvcmVfaW5saW5lX2RhdGFgIGZ1bmN0aW9uIHdpdGggYSBuZXcgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gVGhpcyBpcyBhIHByZXR0eSBzaWduaWZpY2FudCBzaGlmdC4gSW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBleGlzdGluZyBibG9jayBtYXBwaW5nIG1lY2hhbmlzbXMsIGl0IGxvb2tzIGxpa2UgdGhleSdyZSBub3cgY2FsbGluZyBgZXh0NF9tYl9uZXdfYmxvY2tzYCBkaXJlY3RseSB3aXRoaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgIHRvIGFsbG9jYXRlIHRoZSBuZXcgYmxvY2suIFRoZXkgYXJlIGJ5cGFzc2luZyB0aGUgc3RhbmRhcmQgYGV4dDRfbWFwX2Jsb2Nrc2AgY2FsbC5cblxuVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3QganVzdCBhIHJlZmFjdG9yaW5nLiBNeSBpbnR1aXRpb24gaXMgdGhhdCB0aGlzIHByb2JhYmx5IGJ5cGFzc2VzIHNvbWUgb3ZlcmhlYWQuIEkgd2lsbCBuZWVkIHRvIGxvb2sgaW50byBob3cgdGhpcyBtaWdodCBhZmZlY3QgYmxvY2sgYWxsb2NhdGlvbiwgcGFydGljdWxhcmx5IGFyb3VuZCBmcmFnbWVudGVkIGZpbGVzLiBJIGFsc28gbmVlZCB0byB1bmRlcnN0YW5kIGFueSBzaWRlIGVmZmVjdHMuIFRoaXMgY2hhbmdlIGhhcyB0aGUgcG90ZW50aWFsIHRvIGluZmx1ZW5jZSBob3cgaW5saW5lIGRhdGEgdHJhbnNpdGlvbnMgdG8gcmVndWxhciBibG9ja3MsIGFuZCBteSBndWVzcyBpcyB0aGF0IGlzIHRoZSBpbnRlbnQuIFRoZSBrZXkgZnVuY3Rpb25zIHRvIGtlZXAgYW4gZXllIG9uIGFyZSBub3cgY2xlYXJseSBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBhbmQgcG90ZW50aWFsbHkgYGV4dDRfdHJ5X2FkZF9pbmxpbmVfZW50cnlgLCBhcyB0aGVzZSBhcmUgdGhlIHBvaW50cyBvZiBpbnRlZ3JhdGlvbi4gSSdsbCBuZWVkIHRvIGFzc2VzcyB0aGUgaW1wYWN0IG9uIHBlcmZvcm1hbmNlIGFuZCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIGNhdXNlZCBieSB0aGlzIGNoYW5nZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI4MTksIk91dHB1dFRva2VucyI6MTMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjA1OjM3LjEwNzIzMjc1NVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxMTUyODM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhXCIsXG4gICAgXCJleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGhvdyBleHQ0IGNvbnZlcnRzIGlubGluZSBkYXRhIHRvIGJsb2NrcywgcmVwbGFjaW5nIHRoZSB1c2Ugb2YgYGV4dDRfbWFwX2Jsb2Nrc2Agd2l0aCBkaXJlY3QgYmxvY2sgYWxsb2NhdGlvbiB2aWEgYGV4dDRfbWJfbmV3X2Jsb2Nrc2AgYW5kIGludHJvZHVjaW5nIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AuIFRoaXMgbW9kaWZpZXMgY29yZSByZWFjaGFibGUgbG9naWMgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgd2hpY2ggaXMgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhXCIsXG4gICAgXCJleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGhvdyBleHQ0IGNvbnZlcnRzIGlubGluZSBkYXRhIHRvIGJsb2NrcywgcmVwbGFjaW5nIHRoZSB1c2Ugb2YgYGV4dDRfbWFwX2Jsb2Nrc2Agd2l0aCBkaXJlY3QgYmxvY2sgYWxsb2NhdGlvbiB2aWEgYGV4dDRfbWJfbmV3X2Jsb2Nrc2AgYW5kIGludHJvZHVjaW5nIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AuIFRoaXMgbW9kaWZpZXMgY29yZSByZWFjaGFibGUgbG9naWMgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgd2hpY2ggaXMgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTc6MDU6MzcuMTg4MzkzNzE0WiIsIlNlcSI6MTcsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4Mzc4MjcxMTM5OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzowNTozNy4xODg5OTk3MTRaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6ODM3ODI2NTAyNzg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgdGhlIGNvbnZlcnNpb24gb2YgZXh0NCBpbmxpbmUgZGF0YSB0byBhIGRlZGljYXRlZCBibG9jayB0byBwcmV2ZW50IGRhdGEgbG9zcyBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuIEl0IGFsbG9jYXRlcyBhIG5ldyBibG9jaywgemVyb2VzIGl0LCBjb3BpZXMgdGhlIGlubGluZSBkYXRhLCBhbmQgdGhlbiB1cGRhdGVzIHRoZSBpbm9kZS4gQWxsIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkgKGBpbm9kZV9idWZgLCBgYnVmYCwgYGRhdGFfYmgtXFx1MDAzZWJfZGF0YWApIGlzIGZ1bGx5IGluaXRpYWxpemVkIHZpYSBgbWVtY3B5YCBmcm9tIGV4aXN0aW5nIGluaXRpYWxpemVkIGRhdGEgb3IgYG1lbXNldGAgdG8gemVyby4gU3RhY2sgdmFyaWFibGVzIChgYXJgLCBgaXNgLCBgaWAsIGBuZXdleGApIGFyZSBmdWxseSB6ZXJvLWluaXRpYWxpemVkIGVpdGhlciB2aWEgYG1lbXNldGAgb3IgYnJhY2UtZW5jbG9zZWQgaW5pdGlhbGl6ZXJzLiBUaGVyZSBpcyBubyBleHBvc3VyZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB0byB1c2VyIHNwYWNlIG9yIGRpc2ssIGFuZCBubyB1bmluaXRpYWxpemVkIG1lbW9yeSBpcyB1c2VkIGluIGNvbnRyb2wgZmxvdy4gQW55IHBvdGVudGlhbCBtZW1vcnkgZXJyb3JzIChsaWtlIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMgb3IgdXNlLWFmdGVyLWZyZWUpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IGp1c3RpZmllZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAxMjRjN2VhNmNkZDAyYWM0ZTBhYTYxMDVlZDA1NTIxNGRmMTgxNTlhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMjIgMTY6NTE6MDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9leHQ0L2lubGluZS5jIGIvZnMvZXh0NC9pbmxpbmUuY1xuaW5kZXggODA0NWU0ZmYyNzBjNy4uNTA3MTA2YzcyZTgyZiAxMDA2NDRcbi0tLSBhL2ZzL2V4dDQvaW5saW5lLmNcbisrKyBiL2ZzL2V4dDQvaW5saW5lLmNcbkBAIC0xNCw2ICsxNCw3IEBAXG4gI2luY2x1ZGUgXCJleHQ0LmhcIlxuICNpbmNsdWRlIFwieGF0dHIuaFwiXG4gI2luY2x1ZGUgXCJ0cnVuY2F0ZS5oXCJcbisjaW5jbHVkZSBcImV4dDRfZXh0ZW50cy5oXCJcbiBcbiAjZGVmaW5lIEVYVDRfWEFUVFJfU1lTVEVNX0RBVEFcdFwiZGF0YVwiXG4gI2RlZmluZSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFXHQoKHNpemVvZihfX2xlMzIpICogRVhUNF9OX0JMT0NLUykpXG5AQCAtMTA3MCwyMSArMTA3MSwxMTUgQEAgc3RhdGljIGludCBleHQ0X3VwZGF0ZV9pbmxpbmVfZGlyKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqZGlyLFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLVx0XHRcdFx0ICAgICBzdHJ1Y3QgZXh0NF9pbG9jICppbG9jLFxuLVx0XHRcdFx0ICAgICB2b2lkICpidWYsIGludCBpbmxpbmVfc2l6ZSlcbitzdGF0aWMgaW50IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfZnNibGtfdCBibG9jayxcbitcdFx0XHRcdFx0dW5zaWduZWQgaW50IGxlbiwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaClcbiB7XG4tXHRpbnQgcmV0O1xuK1x0c3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpO1xuK1x0c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCBpcyA9IHtcbitcdFx0LnMgPSB7IC5ub3RfZm91bmQgPSAwLCB9LFxuK1x0fTtcbitcdHN0cnVjdCBleHQ0X3hhdHRyX2luZm8gaSA9IHtcbitcdFx0Lm5hbWVfaW5kZXggPSBFWFQ0X1hBVFRSX0lOREVYX1NZU1RFTSxcbitcdFx0Lm5hbWUgPSBFWFQ0X1hBVFRSX1NZU1RFTV9EQVRBLFxuK1x0XHQudmFsdWUgPSBOVUxMLFxuK1x0XHQudmFsdWVfbGVuID0gMCxcbitcdH07XG4rXHRpbnQgZXJyb3I7XG4rXHRpbnQgaW5vZGVfc2l6ZTtcbitcdHZvaWQgKmlub2RlX2J1ZiA9IE5VTEw7XG4rXHRzdHJ1Y3QgZXh0NF9pbm9kZSAqcmF3X2lub2RlO1xuIFxuLVx0cmV0ID0gZXh0NF9jcmVhdGVfaW5saW5lX2RhdGEoaGFuZGxlLCBpbm9kZSwgaW5saW5lX3NpemUpO1xuLVx0aWYgKHJldCkge1xuLVx0XHRleHQ0X21zZyhpbm9kZS1cdTAwM2VpX3NiLCBLRVJOX0VNRVJHLFxuLVx0XHRcdFwiZXJyb3IgcmVzdG9yaW5nIGlubGluZV9kYXRhIGZvciBpbm9kZSAtLSBwb3RlbnRpYWwgZGF0YSBsb3NzISAoaW5vZGUgJWxsdSwgZXJyb3IgJWQpXCIsXG4tXHRcdFx0aW5vZGUtXHUwMDNlaV9pbm8sIHJldCk7XG4tXHRcdHJldHVybjtcbitcdGlub2RlX3NpemUgPSBFWFQ0X0lOT0RFX1NJWkUoaW5vZGUtXHUwMDNlaV9zYik7XG4rXHRpbm9kZV9idWYgPSBrbWFsbG9jKGlub2RlX3NpemUsIEdGUF9OT0ZTKTtcbitcdGlmICghaW5vZGVfYnVmKSB7XG4rXHRcdGVycm9yID0gLUVOT01FTTtcbitcdFx0ZG93bl93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbitcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbitcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpO1xuK1x0XHR1cF93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbitcdFx0cmV0dXJuIGVycm9yO1xuIFx0fVxuLVx0ZXh0NF93cml0ZV9pbmxpbmVfZGF0YShpbm9kZSwgaWxvYywgYnVmLCAwLCBpbmxpbmVfc2l6ZSk7XG4tXHRleHQ0X3NldF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpO1xuK1x0ZG93bl93cml0ZShcdTAwMjZlaS1cdTAwM2VpX2RhdGFfc2VtKTtcbitcdGVycm9yID0gZXh0NF9nZXRfaW5vZGVfbG9jKGlub2RlLCBcdTAwMjZpcy5pbG9jKTtcbitcdGlmIChlcnJvcikge1xuK1x0XHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xuK1x0XHRleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7XG4rXHRcdHVwX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuK1x0XHRrZnJlZShpbm9kZV9idWYpO1xuK1x0XHRyZXR1cm4gZXJyb3I7XG4rXHR9XG4rXHRyYXdfaW5vZGUgPSBleHQ0X3Jhd19pbm9kZShcdTAwMjZpcy5pbG9jKTtcbitcdEJVRkZFUl9UUkFDRShpcy5pbG9jLmJoLCBcImdldF93cml0ZV9hY2Nlc3NcIik7XG4rXHRlcnJvciA9IGV4dDRfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKGhhbmRsZSwgaW5vZGUtXHUwMDNlaV9zYiwgaXMuaWxvYy5iaCwgRVhUNF9KVFJfTk9ORSk7XG4rXHRpZiAoZXJyb3IpIHtcbitcdFx0ZXh0NF9kaXNjYXJkX3ByZWFsbG9jYXRpb25zKGlub2RlKTtcbitcdFx0ZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBiaCwgYmxvY2ssIGxlbiwgRVhUNF9GUkVFX0JMT0NLU19GT1JHRVQpO1xuK1x0XHRnb3RvIG91dDtcbitcdH1cbitcdG1lbWNweShpbm9kZV9idWYsICh2b2lkICopcmF3X2lub2RlLCBpbm9kZV9zaXplKTtcbitcdG1lbXNldCgodm9pZCAqKXJhd19pbm9kZS1cdTAwM2VpX2Jsb2NrLCAwLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTtcbitcdG1lbXNldChlaS1cdTAwM2VpX2RhdGEsIDAsIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpO1xuK1x0aWYgKGV4dDRfaGFzX2ZlYXR1cmVfZXh0ZW50cyhpbm9kZS1cdTAwM2VpX3NiKSBcdTAwMjZcdTAwMjZcbitcdFx0KFNfSVNESVIoaW5vZGUtXHUwMDNlaV9tb2RlKSB8fCBTX0lTUkVHKGlub2RlLVx1MDAzZWlfbW9kZSkgfHwgU19JU0xOSyhpbm9kZS1cdTAwM2VpX21vZGUpKSkge1xuK1x0XHRleHQ0X3NldF9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0VYVEVOVFMpO1xuK1x0XHRleHQ0X2V4dF90cmVlX2luaXQoaGFuZGxlLCBpbm9kZSk7XG4rXHRcdHN0cnVjdCBleHQ0X2V4dF9wYXRoICpwYXRoID0gZXh0NF9maW5kX2V4dGVudChpbm9kZSwgMCwgTlVMTCwgMCk7XG4rXG4rXHRcdGlmIChJU19FUlIocGF0aCkpIHtcbitcdFx0XHRlcnJvciA9IFBUUl9FUlIocGF0aCk7XG4rXHRcdFx0Z290byByZWNvdmVyeTtcbitcdFx0fVxuK1x0XHRzdHJ1Y3QgZXh0NF9leHRlbnQgbmV3ZXg7XG4rXG4rXHRcdG5ld2V4LmVlX2Jsb2NrID0gY3B1X3RvX2xlMzIoMCk7XG4rXHRcdG5ld2V4LmVlX2xlbiA9IGNwdV90b19sZTE2KDEpO1xuK1x0XHRleHQ0X2V4dF9zdG9yZV9wYmxvY2soXHUwMDI2bmV3ZXgsIGJsb2NrKTtcbitcdFx0cGF0aCA9IGV4dDRfZXh0X2luc2VydF9leHRlbnQoaGFuZGxlLCBpbm9kZSwgcGF0aCwgXHUwMDI2bmV3ZXgsIDApO1xuK1x0XHRpZiAoSVNfRVJSKHBhdGgpKSB7XG4rXHRcdFx0ZXJyb3IgPSBQVFJfRVJSKHBhdGgpO1xuK1x0XHRcdGlmIChlcnJvciA9PSAtRURRVU9UIHx8IGVycm9yID09IC1FTk9TUEMpIHtcbitcdFx0XHRcdGdvdG8gcmVjb3Zlcnk7XG4rXHRcdFx0fSBlbHNlIHtcbitcdFx0XHRcdGV4dDRfZm9yZ2V0KGhhbmRsZSwgMCwgaW5vZGUsIGJoLCBibG9jayk7XG4rXHRcdFx0XHRnb3RvIG5vZnJlZTtcbitcdFx0XHR9XG4rXHRcdH0gZWxzZSB7XG4rXHRcdFx0ZXh0NF9mcmVlX2V4dF9wYXRoKHBhdGgpO1xuK1x0XHR9XG4rXHR9IGVsc2Uge1xuK1x0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfZGF0YVswXSA9IGNwdV90b19sZTMyKGJsb2NrKTtcbitcdH1cbitcdGVycm9yID0gZXh0NF94YXR0cl9pYm9keV9maW5kKGlub2RlLCBcdTAwMjZpLCBcdTAwMjZpcyk7XG4rXHRpZiAoZXJyb3IpXG4rXHRcdGdvdG8gcmVjb3Zlcnk7XG4rXHRpZiAoIWlzLnMubm90X2ZvdW5kKVxuK1x0XHRlcnJvciA9IGV4dDRfeGF0dHJfaWJvZHlfc2V0KGhhbmRsZSwgaW5vZGUsIFx1MDAyNmksIFx1MDAyNmlzKTtcbityZWNvdmVyeTpcbitcdGlmIChlcnJvcikge1xuK1x0XHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xuK1x0XHRleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGJoLCBibG9jaywgbGVuLCBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVCk7XG4rbm9mcmVlOlxuK1x0XHRtZW1jcHkoKHZvaWQgKilyYXdfaW5vZGUsIGlub2RlX2J1ZiwgaW5vZGVfc2l6ZSk7XG4rXHRcdG1lbWNweShlaS1cdTAwM2VpX2RhdGEsIHJhd19pbm9kZS1cdTAwM2VpX2Jsb2NrLCBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKTtcbitcdFx0ZXh0NF9jbGVhcl9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0VYVEVOVFMpO1xuK1x0fSBlbHNlIHtcbitcdFx0ZXh0NF9jbGVhcl9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0lOTElORV9EQVRBKTtcbitcdFx0Z2V0X2JoKGlzLmlsb2MuYmgpO1xuK1x0XHRlcnJvciA9IGV4dDRfbWFya19pbG9jX2RpcnR5KGhhbmRsZSwgaW5vZGUsIFx1MDAyNmlzLmlsb2MpO1xuK1x0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfaW5saW5lX29mZiA9IDA7XG4rXHRcdEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfc2l6ZSA9IDA7XG4rXHRcdGV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTtcbitcdFx0aWYgKFNfSVNESVIoaW5vZGUtXHUwMDNlaV9tb2RlKSkge1xuK1x0XHRcdGlfc2l6ZV93cml0ZShpbm9kZSwgaW5vZGUtXHUwMDNlaV9zYi1cdTAwM2VzX2Jsb2Nrc2l6ZSk7XG4rXHRcdFx0RVhUNF9JKGlub2RlKS1cdTAwM2VpX2Rpc2tzaXplID0gaW5vZGUtXHUwMDNlaV9zYi1cdTAwM2VzX2Jsb2Nrc2l6ZTtcbitcdFx0fVxuK1x0XHRicmVsc2UoYmgpO1xuK1x0fVxuK291dDpcbitcdGJyZWxzZShpcy5pbG9jLmJoKTtcbitcdHVwX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuK1x0a2ZyZWUoaW5vZGVfYnVmKTtcbitcdHJldHVybiBlcnJvcjtcbiB9XG4gXG4gc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXG5AQCAtMTA5NCw4ICsxMTg5LDExIEBAIHN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuIFx0aW50IGVycm9yO1xuIFx0dm9pZCAqYnVmID0gTlVMTDtcbiBcdHN0cnVjdCBidWZmZXJfaGVhZCAqZGF0YV9iaCA9IE5VTEw7XG4tXHRzdHJ1Y3QgZXh0NF9tYXBfYmxvY2tzIG1hcDtcbiBcdGludCBpbmxpbmVfc2l6ZTtcbitcdGV4dDRfZnNibGtfdCBuZXdibG9jayA9IDA7XG4rXHRzdHJ1Y3QgZXh0NF9hbGxvY2F0aW9uX3JlcXVlc3QgYXI7XG4rXHRzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKGlub2RlLVx1MDAzZWlfc2IpO1xuK1x0dW5zaWduZWQgaW50IGFsbG9jYXRlZF9ibG9jaztcbiBcbiBcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xuIFx0YnVmID0ga21hbGxvYyhpbmxpbmVfc2l6ZSwgR0ZQX05PRlMpO1xuQEAgLTExMjAsMjUgKzEyMTgsMjIgQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXG4gXHRcdFx0Z290byBvdXQ7XG4gXHR9XG4gXG4tXHRlcnJvciA9IGV4dDRfZGVzdHJveV9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlLCBpbm9kZSk7XG4tXHRpZiAoZXJyb3IpXG4tXHRcdGdvdG8gb3V0O1xuLVxuLVx0bWFwLm1fbGJsayA9IDA7XG4tXHRtYXAubV9sZW4gPSAxO1xuLVx0bWFwLm1fZmxhZ3MgPSAwO1xuLVx0ZXJyb3IgPSBleHQ0X21hcF9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgXHUwMDI2bWFwLCBFWFQ0X0dFVF9CTE9DS1NfQ1JFQVRFKTtcbitcdG1lbXNldChcdTAwMjZhciwgMCwgc2l6ZW9mKGFyKSk7XG4rXHRhci5pbm9kZSA9IGlub2RlO1xuK1x0YXIubG9naWNhbCA9IDA7XG4rXHRhci5sZW4gPSAxO1xuK1x0aWYgKFNfSVNSRUcoaW5vZGUtXHUwMDNlaV9tb2RlKSlcbitcdFx0YXIuZmxhZ3MgPSBFWFQ0X01CX0hJTlRfREFUQTtcbitcdGVsc2VcbitcdFx0YXIuZmxhZ3MgPSAwO1xuK1x0bmV3YmxvY2sgPSBleHQ0X21iX25ld19ibG9ja3MoaGFuZGxlLCBcdTAwMjZhciwgXHUwMDI2ZXJyb3IpO1xuIFx0aWYgKGVycm9yIFx1MDAzYyAwKVxuLVx0XHRnb3RvIG91dF9yZXN0b3JlO1xuLVx0aWYgKCEobWFwLm1fZmxhZ3MgXHUwMDI2IEVYVDRfTUFQX01BUFBFRCkpIHtcbi1cdFx0ZXJyb3IgPSAtRUlPO1xuLVx0XHRnb3RvIG91dF9yZXN0b3JlO1xuLVx0fVxuLVxuLVx0ZGF0YV9iaCA9IHNiX2dldGJsayhpbm9kZS1cdTAwM2VpX3NiLCBtYXAubV9wYmxrKTtcbitcdFx0Z290byBvdXQ7XG4rXHRhbGxvY2F0ZWRfYmxvY2sgPSBFWFQ0X0MyQihzYmksIGFyLmxlbik7XG4rXHRkYXRhX2JoID0gc2JfZ2V0YmxrKGlub2RlLVx1MDAzZWlfc2IsIG5ld2Jsb2NrKTtcbiBcdGlmICghZGF0YV9iaCkge1xuIFx0XHRlcnJvciA9IC1FTk9NRU07XG4tXHRcdGdvdG8gb3V0X3Jlc3RvcmU7XG4rXHRcdGdvdG8gb3V0X2JoO1xuIFx0fVxuIFxuIFx0bG9ja19idWZmZXIoZGF0YV9iaCk7XG5AQCAtMTE0Nyw3ICsxMjQyLDcgQEAgc3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZV90ICpoYW5kbGUsXG4gXHRpZiAoZXJyb3IpIHtcbiBcdFx0dW5sb2NrX2J1ZmZlcihkYXRhX2JoKTtcbiBcdFx0ZXJyb3IgPSAtRUlPO1xuLVx0XHRnb3RvIG91dF9yZXN0b3JlO1xuK1x0XHRnb3RvIG91dF9iaDtcbiBcdH1cbiBcdG1lbXNldChkYXRhX2JoLVx1MDAzZWJfZGF0YSwgMCwgaW5vZGUtXHUwMDNlaV9zYi1cdTAwM2VzX2Jsb2Nrc2l6ZSk7XG4gXG5AQCAtMTE1OSwyNCArMTI1NCwyOCBAQCBzdGF0aWMgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2soaGFuZGxlX3QgKmhhbmRsZSxcbiBcdFx0XHRcdFx0XHQgICBpbm9kZSwgZGF0YV9iaCk7XG4gXHR9IGVsc2Uge1xuIFx0XHR1bmxvY2tfYnVmZmVyKGRhdGFfYmgpO1xuLVx0XHRpbm9kZS1cdTAwM2VpX3NpemUgPSBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplO1xuLVx0XHRpX3NpemVfd3JpdGUoaW5vZGUsIGlub2RlLVx1MDAzZWlfc2ItXHUwMDNlc19ibG9ja3NpemUpO1xuLVx0XHRFWFQ0X0koaW5vZGUpLVx1MDAzZWlfZGlza3NpemUgPSBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplO1xuLVxuIFx0XHRlcnJvciA9IGV4dDRfaW5pdF9kaXJibG9jayhoYW5kbGUsIGlub2RlLCBkYXRhX2JoLFxuIFx0XHRcdCAgbGUzMl90b19jcHUoKChzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqKWJ1ZiktXHUwMDNlaW5vZGUpLFxuIFx0XHRcdCAgYnVmICsgRVhUNF9JTkxJTkVfRE9URE9UX1NJWkUsXG4gXHRcdFx0ICBpbmxpbmVfc2l6ZSAtIEVYVDRfSU5MSU5FX0RPVERPVF9TSVpFKTtcbi1cdFx0aWYgKCFlcnJvcilcbi1cdFx0XHRlcnJvciA9IGV4dDRfbWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIGlub2RlKTtcbiBcdH1cbitvdXRfYmg6XG4rXHRpZiAoZXJyb3IpIHtcbitcdFx0aW50IGZsYWdzID0gMDtcbiBcbi1vdXRfcmVzdG9yZTpcbi1cdGlmIChlcnJvcilcbi1cdFx0ZXh0NF9yZXN0b3JlX2lubGluZV9kYXRhKGhhbmRsZSwgaW5vZGUsIGlsb2MsIGJ1ZiwgaW5saW5lX3NpemUpO1xuK1x0XHRpZiAoZGF0YV9iaClcbitcdFx0XHRmbGFncyB8PSBFWFQ0X0ZSRUVfQkxPQ0tTX0ZPUkdFVDtcbitcdFx0c3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpO1xuIFxuK1x0XHRkb3duX3dyaXRlKFx1MDAyNmVpLVx1MDAzZWlfZGF0YV9zZW0pO1xuK1x0XHRleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpO1xuK1x0XHRleHQ0X2ZyZWVfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGRhdGFfYmgsIG5ld2Jsb2NrLCBhbGxvY2F0ZWRfYmxvY2ssIGZsYWdzKTtcbitcdFx0dXBfd3JpdGUoXHUwMDI2ZWktXHUwMDNlaV9kYXRhX3NlbSk7XG4rXHR9IGVsc2Uge1xuK1x0XHRlcnJvciA9IGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrKGhhbmRsZSwgaW5vZGUsXG4rXHRcdFx0XHRuZXdibG9jaywgYWxsb2NhdGVkX2Jsb2NrLCBkYXRhX2JoKTtcbitcdH1cbiBvdXQ6XG4tXHRicmVsc2UoZGF0YV9iaCk7XG4gXHRrZnJlZShidWYpO1xuIFx0cmV0dXJuIGVycm9yO1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjA1OjM3LjE4OTAwMDU5NFoiLCJTZXEiOjE5LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDAyNzU2ODcyMDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJbmxpbmUgRGF0YSBDb252ZXJzaW9uIFBhdGNoIGluIGV4dDQqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBmcy9leHQ0L2lubGluZS5jYCBhbmQgaXMgZnVuZGFtZW50YWxseSByZXdvcmtpbmcgaG93IGlubGluZSBkYXRhIGdldHMgY29udmVydGVkIGludG8gYSBibG9jayBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLiBNeSBpbml0aWFsIHJlYWQgdGVsbHMgbWUgdGhhdCBgZXh0NF9yZXN0b3JlX2lubGluZV9kYXRhYCBpcyBnb25lLCByZXBsYWNlZCB3aXRoIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AsIGFuZCB0aGUgY29yZSBjb252ZXJzaW9uIGxvZ2ljIGlzIG5vdyBpbiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AuIExldCdzIGRpZyBpbi5cblxuVGhlIG5ldyBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AgdXNlcyBgZXh0NF9tYl9uZXdfYmxvY2tzYCB0byBncmFiIGEgbmV3IGJsb2NrLCB3aGljaCBpcyBhIGRlcGFydHVyZSBmcm9tIGBleHQ0X21hcF9ibG9ja3NgLiBUaGVuIGl0IGNhbGxzIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AsIHdoaWNoIHNlZW1zIHRvIGJlIHRoZSBjb3JlIG9mIHRoZSBkYXRhIG1pZ3JhdGlvbi4gIE15IGZpcnN0IGNvbmNlcm4sIGFzIGFsd2F5cyB3aXRoIHRoZXNlIGNoYW5nZXMsIGlzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LlxuXG5TcGVjaWZpY2FsbHksIGluIGBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2AsIEkgc2VlIGBpbm9kZV9idWYgPSBrbWFsbG9jKGlub2RlX3NpemUsIEdGUF9OT0ZTKTtgIGFuZCB0aGVuIGEgYG1lbWNweWAgZnJvbSBgcmF3X2lub2RlYCBpbnRvIGl0LiAgYGlub2RlX2J1ZmAgaXMgYSBiYWNrdXAgYnVmZmVyLCBzbyBJJ20gaW1tZWRpYXRlbHkgbG9va2luZyBmb3IgYW55IGNhc2VzIHdoZXJlIGl0IGNvdWxkIGxlYWsgdW5pbml0aWFsaXplZCBkYXRhLiAgSXQncyBhbGxvY2F0ZWQgd2l0aCBga21hbGxvY2AsIHdoaWNoIG1lYW5zIGl0ICpzdGFydHMqIHVuaW5pdGlhbGl6ZWQsIGJ1dCB0aGUgYG1lbWNweWAgaW5zdGFudGx5IG92ZXJ3cml0ZXMgaXQgd2l0aCB0aGUgY29udGVudHMgb2YgdGhlIGByYXdfaW5vZGVgLiBBbnkgZmFpbHVyZSByZXN0b3JlcyBmcm9tIHRoaXMgYmFja3VwIHNvIGl0IGxvb2tzIG9rYXkuXG5cblRoZW4sIHRoZXJlJ3MgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgIGFnYWluLiBJdCBhbGxvY2F0ZXMgYGJ1ZmAgd2l0aCBga21hbGxvYyhpbmxpbmVfc2l6ZSwgR0ZQX05PRlMpYCBhbmQgcmVhZHMgdGhlIGlubGluZSBkYXRhIGludG8gaXQuIFRoZW4gYSBuZXcgYmxvY2sgYGRhdGFfYmhgIGlzIGFsbG9jYXRlZC4gVGhlIGNydWNpYWwgcGFydCBoZXJlIGlzIGBtZW1zZXQoZGF0YV9iaC1cdTAwM2ViX2RhdGEsIDAsIGlub2RlLVx1MDAzZWlfc2ItXHUwMDNlc19ibG9ja3NpemUpO2Ag4oCTIHRoaXMgKnNob3VsZCogZnVsbHkgaW5pdGlhbGl6ZSB0aGUgbmV3IGJsb2NrLiAgVGhlIGNvbnRlbnRzIG9mIGBidWZgIGFyZSB0aGVuIGNvcGllZCB0byB0aGUgYmxvY2ssIHdoaWNoIGlzIHNhZmUuXG5cbk5vdywgYmFjayB0byBgZXh0NF9zZXRfaW5saW5lX2RhdGFfYmxvY2tgIGFuZCBjaGVja2luZyBmb3IgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5LlxuVGhlIGBtZW1jcHkoaW5vZGVfYnVmLCAodm9pZCAqKXJhd19pbm9kZSwgaW5vZGVfc2l6ZSk7YCBpcyB0aGUga2V5LiBUaGVuIHplcm8gb3V0IGByYXdfaW5vZGUtXHUwMDNlaV9ibG9ja2AgYW5kIGBlaS1cdTAwM2VpX2RhdGFgLCB3aGljaCBzZWVtcyB0byBiZSBzYWZlLCBidXTigKYgaXMgYGlub2RlX3NpemVgICpldmVyKiBsYXJnZXIgdGhhbiB0aGUgYWN0dWFsIG9uLWRpc2sgaW5vZGUgc2l6ZT9cbmBFWFQ0X0lOT0RFX1NJWkUoaW5vZGUtXHUwMDNlaV9zYilgIGdpdmVzIHRoZSAqb24tZGlzayogaW5vZGUgc2l6ZSwgYW5kIGBleHQ0X3Jhd19pbm9kZSgpYCByZXRyaWV2ZXMgdGhlIGlub2RlIGZyb20gdGhlIGJ1ZmZlciBoZWFkLiBUaGUgc2l6ZSBvZiB0aGUgaW5vZGUgaW4gdGhlIGJ1ZmZlciBpcyBhbHdheXMgZ3VhcmFudGVlZCB0byBiZSBjb3JyZWN0IHNpbmNlIHRoZSBibG9jayBpcyByZWFkLiBUaGUgYnVmZmVyIGhlYWQgY29udGFpbnMgdGhlIGNvcnJlY3Qgc2l6ZSBvZiB0aGUgb24tZGlzayBpbm9kZSBzbyB0aGlzIHNlZW1zIHNhZmUuXG5cbldoYXQgYWJvdXQgYHJhd19pbm9kZWAgY29udGFpbmluZyB1bmluaXRpYWxpemVkIGRhdGE/IEtNU0FOIHRyYWNrcyB1bmluaXRpYWxpemVkIG1lbW9yeSBidXQgZnJvbSBhbGxvY2F0aW9ucywgcmVhZGluZyBmcm9tIGRpc2sgKGJsb2NrIGRldmljZSkgaXMgY29uc2lkZXJlZCBpbml0aWFsaXplZC5cblxuTG9va2luZyBhdCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AsIGBleHQ0X21iX25ld19ibG9ja3NgIHNlZW1zIGxpa2UgYW4gYWxsb2NhdGlvbiBjYWxsLiBUaGlzIHNlZW1zIHRvIGJlIGEgbG9naWMgYnVnIGZpeCBvciBhIHJlZmFjdG9yaW5nLiBUaGUgb2xkIGNvZGUgZmlyc3QgZGVzdHJveWVkIHRoZSBpbmxpbmUgZGF0YSBhbmQgdGhlbiB0cmllZCBtYXBwaW5nIG5ldyBibG9ja3MsIGlmIGl0IGZhaWxlZCB0aGVuIHRoZSBjb2RlIHVzZWQgYGV4dDRfcmVzdG9yZV9pbmxpbmVfZGF0YWAgYW5kIHRoYXQgY291bGQgZmFpbCBhbmQgY2F1c2UgZGF0YSBsb3NzLiBUaGUgbmV3IGNvZGUgYWxsb2NhdGVzIHRoZSBibG9jaywgdGhlbiBtb2RpZmllcyB0aGUgaW5vZGUgc28gaW4gY2FzZSBvZiBmYWlsdXJlIHdlIGNhbiByZXN0b3JlIHRoZSBpbm9kZSBmcm9tIGBpbm9kZV9idWZgLlxuXG5UaGlzIHBhdGNoIGlzIGZyb20gYHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld2AuICBNeSBpbW1lZGlhdGUgY29uY2VybiBpcyB1c2VyLXNwYWNlIGV4cG9zdXJlIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBIb3dldmVyLCB0aGUgb3BlcmF0aW9ucyBhcmUgaW50ZXJuYWwgbWV0YWRhdGEgbWFuaXB1bGF0aW9ucy4gYGlub2RlX2J1ZmAgaXMgaW1tZWRpYXRlbHkgZmlsbGVkLiBgZGF0YV9iaC1cdTAwM2ViX2RhdGFgIGlzIHplcm9lZC4gSSBzZWUgbm8gZGlyZWN0IHBhdGggZm9yIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHRvIGxlYWsgdG8gdXNlcnNwYWNlLlxuXG5JJ20gbm90IHNlZWluZyBhbnkgS01TQU4tc3BlY2lmaWMgaXNzdWVzLiBLQVNBTiB3b3VsZCBjYXRjaCBvdXQtb2YtYm91bmRzIHJlYWRzL3dyaXRlcy4gIE15IHByaW1hcnkgY29uY2VybiBoYXMgYmVlbiBhZGRyZXNzZWQg4oCTIHRoZSBgaW5vZGVfYnVmYCBiYWNrdXAgc2VlbXMgdG8gYmUgaGFuZGxlZCBjb3JyZWN0bHkgdG8gYXZvaWQgdW5pbml0aWFsaXplZCBkYXRhIGxlYWtzLiBUaGUgYG1lbXNldGAgY2FsbHMgaW5pdGlhbGl6ZSBkYXRhIGNvcnJlY3RseSwgc28gSSBkb24ndCBzZWUgYW55IG9idmlvdXMgS01TQU4gdnVsbmVyYWJpbGl0aWVzIGludHJvZHVjZWQgaGVyZS4gIEkganVzdCBoYXZlIHRvIGRvdWJsZS1jaGVjayBteSB2YXJpYWJsZXMgaW5pdGlhbGl6YXRpb24uXG5cbkxldCdzIGxvb2sgYXQgYGlzYCBhbmQgYGlgLlxuYGBgY1xuc3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCBpcyA9IHtcblx0LnMgPSB7IC5ub3RfZm91bmQgPSAwLCB9LFxufTtcbmBgYFxuQWggd2FpdCwgYHN0cnVjdCBleHQ0X3hhdHRyX2lib2R5X2ZpbmRgIGhhcyBvdGhlciBmaWVsZHMuICBJIHNob3VsZCBjaGVjayB0aGUgZGVmaW5pdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA3NiwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NzUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzowNzo1Ny40NjQ2OTIwMjJaIiwiU2VxIjoyMCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3NzkzMDMxMzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCBcXFxce1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9leHQ0L3hhdHRyLmg9MTIxPXN0cnVjdCBleHQ0X3hhdHRyX3NlYXJjaCB7XFxuLS1cXG5mcy9leHQ0L3hhdHRyLmgtMTI4LVxcbmZzL2V4dDQveGF0dHIuaDoxMjk6c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCB7XFxuZnMvZXh0NC94YXR0ci5oLTEzMC1cXHRzdHJ1Y3QgZXh0NF94YXR0cl9zZWFyY2ggcztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTc6MDg6MDAuMjQ0MDAxMDYzWiIsIlNlcSI6MjEsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc3NDIxNDI2NDM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBleHQ0IFhBdHRyIGktbm9kZSBJbXBsZW1lbnRhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgZXh0NF94YXR0cl9pYm9keV9maW5kYCBzdHJ1Y3R1cmUuIFNwZWNpZmljYWxseSwgSSdtIGhlYWRpbmcgc3RyYWlnaHQgZm9yIGBmcy9leHQ0L3hhdHRyLmhgLiBJdCdzIGEga2V5IHBpZWNlIGluIGhvdyBleHQ0IGhhbmRsZXMgZXh0ZW5kZWQgYXR0cmlidXRlcyAoeGF0dHJzKSBzdG9yZWQgZGlyZWN0bHkgd2l0aGluIHRoZSBpbm9kZSBpdHNlbGYsIHJpZ2h0PyBUaGlzIG1lYW5zIEknbSBwcm9iYWJseSBkZWFsaW5nIHdpdGggdGhlIG9wdGltaXphdGlvbiBmb3Igc21hbGxlciBhdHRyaWJ1dGVzLCB3aGVyZSB0aGUgb3ZlcmhlYWQgb2YgYSBzZXBhcmF0ZSBibG9jayBhbGxvY2F0aW9uIGlzIGF2b2lkZWQuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byByZWZyZXNoIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoaXMgaW5saW5lIHN0b3JhZ2Ugd29ya3Mgd2l0aGluIHRoZSBpbm9kZSdzIGRhdGEgc3RydWN0dXJlcy4gSSdtIGd1ZXNzaW5nIHRoYXQgYGV4dDRfeGF0dHJfaWJvZHlfZmluZGAgaGFzIGdvdCB0byBiZSBpbnN0cnVtZW50YWwgaW4gdGhlIHNlYXJjaCBhbGdvcml0aG0uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGV4YWN0bHkgaXQgY29tZXMgaW50byBwbGF5IGluIG9yZGVyIHRvIHVuZGVyc3RhbmQgaG93IHhhdHRycyBhcmUgc2VhcmNoZWQgb3IgbW9kaWZpZWQgd2l0aGluIHRoZSBpbmxpbmUgaS1ub2RlIGJ1ZmZlci4gSXQgaXMgYSBmdW5kYW1lbnRhbCBwaWVjZSB0byB1bmRlcnN0YW5kaW5nIGhvdyBlZmZpY2llbnRseSBzbWFsbGVyIGF0dHJpYnV0ZXMgYXJlIGhhbmRsZWQsIGFuZCBob3cgdGhlIGZpbGUgc3lzdGVtIGJhbGFuY2VzIHNwYWNlIGFuZCBhY2Nlc3MgcGVyZm9ybWFuY2UgZm9yIHRoZSBpbmxpbmUgYXR0cmlidXRlcyBhcyB3ZWxsIGFzIGhvdyBleHQ0IGNhbiBkZWNpZGUgdG8gbW92ZSBmcm9tIGFuIGlubGluZSBhdHRyaWJ1dGUgdG8gYW4gZXh0ZXJuYWwgb25lLiBJJ20ga2VlbiB0byBkaXNzZWN0IHRoZSBjb2RlIHRvIHVuZGVyc3RhbmQgaXRzIGRhdGEgbWVtYmVycyB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3RydWN0dXJlIGFzc2lzdHMgaW4gdGhlIGxvb2t1cCBwcm9jZXNzIG9mIHRoZSBpbmxpbmUgYXR0cmlidXRlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzY5NSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjA5OjE3LjY2NTQyOTdaIiwiU2VxIjoyMiwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzU2NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZnMvZXh0NC94YXR0ci5oXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEyMCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDEyMDpcXHRcXG4gMTIxOlxcdHN0cnVjdCBleHQ0X3hhdHRyX3NlYXJjaCB7XFxuIDEyMjpcXHRcXHRzdHJ1Y3QgZXh0NF94YXR0cl9lbnRyeSAqZmlyc3Q7XFxuIDEyMzpcXHRcXHR2b2lkICpiYXNlO1xcbiAxMjQ6XFx0XFx0dm9pZCAqZW5kO1xcbiAxMjU6XFx0XFx0c3RydWN0IGV4dDRfeGF0dHJfZW50cnkgKmhlcmU7XFxuIDEyNjpcXHRcXHRpbnQgbm90X2ZvdW5kO1xcbiAxMjc6XFx0fTtcXG4gMTI4OlxcdFxcbiAxMjk6XFx0c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfZmluZCB7XFxuIDEzMDpcXHRcXHRzdHJ1Y3QgZXh0NF94YXR0cl9zZWFyY2ggcztcXG4gMTMxOlxcdFxcdHN0cnVjdCBleHQ0X2lsb2MgaWxvYztcXG4gMTMyOlxcdH07XFxuIDEzMzpcXHRcXG4gMTM0OlxcdHN0cnVjdCBleHQ0X3hhdHRyX2lub2RlX2FycmF5IHtcXG4gMTM1OlxcdFxcdHVuc2lnbmVkIGludCBjb3VudDtcXG4gMTM2OlxcdFxcdHN0cnVjdCBpbm9kZSAqaW5vZGVzW10gX19jb3VudGVkX2J5KGNvdW50KTtcXG4gMTM3OlxcdH07XFxuIDEzODpcXHRcXG4gMTM5OlxcdGV4dGVybiBjb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciBleHQ0X3hhdHRyX3VzZXJfaGFuZGxlcjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTc6MDk6MTcuNjY1NTA3MjdaIiwiU2VxIjoyMywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTk2MDUzMDI0MTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW5pdGlhbCBUaG91Z2h0cyBvbiBDIFN0cnVjdHVyZSBJbml0aWFsaXphdGlvbioqXG5cbk9rYXksIGxldCdzIGJyZWFrIGRvd24gdGhpcyBDIGNvZGUgc25pcHBldC4gSSBzZWUgdGhhdCBgaXNgIGlzIGluaXRpYWxpemVkIHdpdGggYSBicmFjZS1lbmNsb3NlZCBpbml0aWFsaXplcjpcblxuYGBgY1xuXHRzdHJ1Y3QgZXh0NF94YXR0cl9pYm9keV9maW5kIGlzID0ge1xuXHRcdC5zID0geyAubm90X2ZvdW5kID0gMCwgfSxcblx0fTtcbmBgYFxuXG5SaWdodCwgdGhhdCdzIHN0cmFpZ2h0Zm9yd2FyZC4gSW4gQywgaWYgSSB1c2UgdGhpcyB0eXBlIG9mIGluaXRpYWxpemF0aW9uLCBhbnkgZmllbGRzIEkgZG9uJ3QgZXhwbGljaXRseSBzZXQgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHplcm8taW5pdGlhbGl6ZWQuIFNvLCBhdCB0aGUgc3RhcnQsIGBpc2AgaXMgZXNzZW50aWFsbHkgYSBjb21wbGV0ZWx5IHplcm9lZC1vdXQgb2JqZWN0LiBOaWNlIGFuZCBjbGVhbi5cblxuTm93LCB3aGF0J3MgbmV4dD8gQWgsIGBpYDpcblxuYGBgY1xuXHRzdHJ1Y3QgZXh0NF94YXR0cl9pbmZvIGkgPSB7XG5cdFx0Lm5hbWVfaW5kZXggPSBFWFQ0X1hBVFRSX0lOREVYX1NZU1RFTSxcblx0XHQubmFtZSA9IEVYVDRfWEFUVFJfU1lTVEVNX0RBVEEsXG5cdFx0LnZhbHVlID0gTlVMTCxcblx0XHQudmFsdWVfbGVuID0gMCxcblx0fTtcbmBgYFxuXG5IZXJlLCBJJ20gZXhwbGljaXRseSBpbml0aWFsaXppbmcgYG5hbWVfaW5kZXhgLCBgbmFtZWAsIGB2YWx1ZWAsIGFuZCBgdmFsdWVfbGVuYC4gSG93ZXZlciwgdGhlIEMgc3RhbmRhcmQgZ3VhcmFudGVlcyBhbnkgcmVtYWluaW5nIGZpZWxkcyAqbm90KiBleHBsaWNpdGx5IGluaXRpYWxpemVkIHdpbGwgYWxzbyBiZSB6ZXJvZWQgb3V0LiBUaGlzIGlzIGdvb2QgZm9yIG1lLCBpdCBlbnN1cmVzIGNvbnNpc3RlbnQgYmVoYXZpb3IgYW5kIHByZXZlbnRzIHN1cnByaXNlcy5cblxuRmluYWxseSwgYG5ld2V4YDpcblxuYGBgY1xuXHRcdHN0cnVjdCBleHQ0X2V4dGVudCBuZXdleDtcblxuXHRcdG5ld2V4LmVlX2Jsb2NrID0gY3B1X3RvX2xlMzIoMCk7XG5cdFx0bmV3ZXguZWVfbGVuID0gY3B1X3RvX2xlMTYoMSk7XG5cdFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFx1MDAyNm5ld2V4LCBibG9jayk7XG5gYGBcblxuSSdtIGN1cmlvdXMgYWJvdXQgdGhlIGRlZmluaXRpb24gb2YgYHN0cnVjdCBleHQ0X2V4dGVudGAgaW4gdGhpcyBjb250ZXh0LCBzbyBJJ2xsIG5lZWQgdG8gZXhhbWluZSB0aGF0IHRvIHVuZGVyc3RhbmQgaG93IHRoZSByZW1haW5pbmcgZmllbGRzIGFyZSB1c2VkIGFuZCB3aGV0aGVyIGFueSBkZWZhdWx0IHZhbHVlcyBhcmUgcmVsaWVkIHVwb24gYmV5b25kIHdoYXQncyBleHBsaWNpdGx5IHNldC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODMxNiwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjEwOjU3LjI3MDgxMzkzWiIsIlNlcSI6MjQsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODA4NjYxMjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBleHQ0X2V4dGVudCBcXFxce1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9leHQ0L2V4dDRfZXh0ZW50cy5oPTQ4PXN0cnVjdCBleHQ0X2V4dGVudF90YWlsIHtcXG4tLVxcbmZzL2V4dDQvZXh0NF9leHRlbnRzLmgtNTUtICovXFxuZnMvZXh0NC9leHQ0X2V4dGVudHMuaDo1NjpzdHJ1Y3QgZXh0NF9leHRlbnQge1xcbmZzL2V4dDQvZXh0NF9leHRlbnRzLmgtNTctXFx0X19sZTMyXFx0ZWVfYmxvY2s7XFx0LyogZmlyc3QgbG9naWNhbCBibG9jayBleHRlbnQgY292ZXJzICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjExOjAwLjA3OTQ4MjAxWiIsIlNlcSI6MjUsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMjUwOTQ3NDQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBleHQ0X2V4dGVudCBTdHJ1Y3R1cmUqKlxuXG5Pa2F5LCBsZXQncyBwdWxsIHVwIHRoZSBkZWZpbml0aW9uIG9mIGBzdHJ1Y3QgZXh0NF9leHRlbnRgLiBJJ3ZlIHdvcmtlZCB3aXRoIHRoZXNlIGV4dGVuc2l2ZWx5LCBidXQgYSBxdWljayByZWZyZXNoIG5ldmVyIGh1cnRzLiBJIG5lZWQgdG8gZ2V0IGJhY2sgdG8gZmlyc3QgcHJpbmNpcGxlcyBiZWZvcmUgSSBzdGFydCBkaXZpbmcgYmFjayBpbnRvIHRoZSBjb2RlLiBSaWdodCwgbWVtb3J5IGxheW91dCBpcyBrZXk6IGhvdyBkb2VzIHRoaXMgbGl0dGxlIHN0cnVjdHVyZSBwYWNrIGluZm9ybWF0aW9uIGFib3V0IGJsb2NrIHJhbmdlcz8gU2l6ZSB3aWxsIG1hdHRlciB3aGVuIGl0IGNvbWVzIHRvIHBlcmZvcm1hbmNlLCBhbmQsIGhvdyBkb2VzIHRoZSBzdHJ1Y3R1cmUgaGFuZGxlIGRpZmZlcmVudCBzaXplcz8gSXMgdGhlcmUgYW4gaW5oZXJlbnQgbGltaXQgb3IgZG9lcyBpdCBzdXBwb3J0IHZhcmlhYmxlIGV4dGVudHM/XG5cbknigJltIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIGhvdyB0aGUgbWV0YWRhdGEgdHJhbnNsYXRlcyBpbnRvIHBoeXNpY2FsIGJsb2NrIGxvY2F0aW9ucy4gVW5kZXJzdGFuZGluZyB0aGlzIHdpbGwgaGVscCBtZSBkZXRlcm1pbmUgd2hpY2ggYXBwcm9hY2hlcyB0aGUgc3lzdGVtIHdpbGwgYmUgdXNpbmcuIFRoZSBgZXh0NF9leHRlbnRgIHN0cnVjdHVyZSB3aWxsIGluZm9ybSBteSBhcHByb2FjaCB0byBvcHRpbWl6aW5nIGEgc3BlY2lmaWMgSS9PIHNjZW5hcmlvIEknbSBjdXJyZW50bHkgd29ya2luZyBvbi4gSXMgdGhlIHN0cnVjdHVyZSB3ZWxsLWFsaWduZWQ/IEFyZSB0aGVyZSBhbnkgcG90ZW50aWFsIHBhZGRpbmcgaXNzdWVzIHRoYXQgbWlnaHQgYWZmZWN0IG1lbW9yeSBhY2Nlc3MgcGF0dGVybnM/IEnigJlsbCBtZW50YWxseSBtYXAgdGhlIG1lbWJlcnMgdG8gdGhlaXIgbGlrZWx5IHJvbGVzOiB0aGUgc3RhcnRpbmcgYmxvY2ssIHRoZSBibG9jayBjb3VudCwgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YS4gRG9lcyBpdCBvZmZlciBhbnkgY29tcHJlc3Npb24gbWVjaGFuaXNtcz8gSXQncyBlc3NlbnRpYWwgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIGZvciBmcmFnbWVudGF0aW9uLCBlc3BlY2lhbGx5IHdoZW4gZGVhbGluZyB3aXRoIGxhcmdlIGZpbGVzIGFuZCBzcGFyc2UgZGF0YS4gVGhlIHN0cnVjdHVyZSBhbHNvIG1heSBnaXZlIGNsdWVzIHRvIHRoZSB1c2Ugb2Ygc29tZSBjYWNoaW5nIG1lY2hhbmlzbXMuIEkgd2FudCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBkYXRhJ3MgcG90ZW50aWFsIGVmZmVjdHMgb24gY2FjaGluZyBhbmQgb3ZlcmFsbCBwZXJmb3JtYW5jZS4gT2theSwgbGV0J3Mgc2VlIHdoYXQgd2UncmUgd29ya2luZyB3aXRoIGhlcmUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6OTEzNSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjExOjExLjMzMDQzMTc4NFoiLCJTZXEiOjI2LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTY3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJmcy9leHQ0L2V4dDRfZXh0ZW50cy5oXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDU1LFxuICBcIkxpbmVDb3VudFwiOiAxNVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDU1OlxcdCAqL1xcbiAgNTY6XFx0c3RydWN0IGV4dDRfZXh0ZW50IHtcXG4gIDU3OlxcdFxcdF9fbGUzMlxcdGVlX2Jsb2NrO1xcdC8qIGZpcnN0IGxvZ2ljYWwgYmxvY2sgZXh0ZW50IGNvdmVycyAqL1xcbiAgNTg6XFx0XFx0X19sZTE2XFx0ZWVfbGVuO1xcdFxcdC8qIG51bWJlciBvZiBibG9ja3MgY292ZXJlZCBieSBleHRlbnQgKi9cXG4gIDU5OlxcdFxcdF9fbGUxNlxcdGVlX3N0YXJ0X2hpO1xcdC8qIGhpZ2ggMTYgYml0cyBvZiBwaHlzaWNhbCBibG9jayAqL1xcbiAgNjA6XFx0XFx0X19sZTMyXFx0ZWVfc3RhcnRfbG87XFx0LyogbG93IDMyIGJpdHMgb2YgcGh5c2ljYWwgYmxvY2sgKi9cXG4gIDYxOlxcdH07XFxuICA2MjpcXHRcXG4gIDYzOlxcdC8qXFxuICA2NDpcXHQgKiBUaGlzIGlzIGluZGV4IG9uLWRpc2sgc3RydWN0dXJlLlxcbiAgNjU6XFx0ICogSXQncyB1c2VkIGF0IGFsbCB0aGUgbGV2ZWxzIGV4Y2VwdCB0aGUgYm90dG9tLlxcbiAgNjY6XFx0ICovXFxuICA2NzpcXHRzdHJ1Y3QgZXh0NF9leHRlbnRfaWR4IHtcXG4gIDY4OlxcdFxcdF9fbGUzMlxcdGVpX2Jsb2NrO1xcdC8qIGluZGV4IGNvdmVycyBsb2dpY2FsIGJsb2NrcyBmcm9tICdibG9jaycgKi9cXG4gIDY5OlxcdFxcdF9fbGUzMlxcdGVpX2xlYWZfbG87XFx0LyogcG9pbnRlciB0byB0aGUgcGh5c2ljYWwgYmxvY2sgb2YgdGhlIG5leHQgKlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxMToxMS4zMzA1MDQ5NDRaIiwiU2VxIjoyNywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUyMDAzODkzMzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBFeHQ0IEV4dGVuZGVkIEF0dHJpYnV0ZSBCbG9jayBTdHJ1Y3R1cmUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBuZXdleGAgc3RydWN0dXJlLCB3aGljaCBzZWVtcyB0byBiZSBjZW50cmFsIHRvIGhvdyBFeHQ0IGhhbmRsZXMgZXh0ZW5kZWQgYXR0cmlidXRlcy4gSSBzZWUgaXQgaGFzIHRoZXNlIGZpZWxkczogYGVlX2Jsb2NrYCwgYGVlX2xlbmAsIGBlZV9zdGFydF9oaWAsIGFuZCBgZWVfc3RhcnRfbG9gLiBNeSBpbml0aWFsIGltcHJlc3Npb24gaXMgdGhhdCB0aGVzZSBhcmUgbGlrZWx5IHJlbGF0ZWQgdG8gYmxvY2sgYWxsb2NhdGlvbiBvciBhZGRyZXNzaW5nIHdpdGhpbiB0aGUgZmlsZXN5c3RlbSwgcGVyaGFwcyBhIHdheSB0byBtYXAgZXh0ZW5kZWQgYXR0cmlidXRlIGRhdGEgdG8gc3BlY2lmaWMgYmxvY2tzIG9uIGRpc2suXG5cbk5vdywgdGhlIGNvZGUgc25pcHBldCBpcyBzZXR0aW5nIGBuZXdleC5lZV9ibG9ja2AgdG8gMCAoY29udmVydGVkIHRvIGxpdHRsZS1lbmRpYW4pLCBgbmV3ZXguZWVfbGVuYCB0byAxIChhbHNvIGxpdHRsZS1lbmRpYW4pIGFuZCB0aGVuIGNhbGxpbmcgYGV4dDRfZXh0X3N0b3JlX3BibG9ja2Agd2l0aCB0aGUgYG5ld2V4YCBzdHJ1Y3R1cmUgYW5kIGEgYGJsb2NrYCB2YXJpYWJsZS4gVGhlIGFzc2lnbm1lbnQgdG8gYGVlX2Jsb2NrYCBhbmQgYGVlX2xlbmAgYmVpbmcgYSBjb25zdGFudCBzdWdnZXN0cyB0aGlzIG1heSBiZSByZWxhdGVkIHRvIHRoZSBpbml0aWFsIHNldHVwIG9mIGFuIGV4dGVuZGVkIGF0dHJpYnV0ZSBlbnRyeS4gU2V0dGluZyB0aGUgbGVuZ3RoIHRvIDEgYWxzbyBtYWtlcyBtZSB0aGluayB0aGF0IGBleHQ0X2V4dF9zdG9yZV9wYmxvY2tgIG1pZ2h0IGhhbmRsZSB0aGUgaW5pdGlhbCBzdG9yYWdlIGZvciB0aGF0IHNpbmdsZSBibG9jay4gSSBpbW1lZGlhdGVseSB3YW50IHRvIGRpZyBpbnRvIGBleHQ0X2V4dF9zdG9yZV9wYmxvY2tgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGl0J3MgZG9pbmcgd2l0aCB0aGlzIGBuZXdleGAgc3RydWN0dXJlIGFuZCB0aGUgcGFzc2VkIGJsb2NrLiBUaGF0IGZ1bmN0aW9uIGlzIHByb2JhYmx5IHRoZSBrZXkgdG8gdW5sb2NraW5nIGhvdyB0aGlzIGJsb2NrIGRhdGEgaXMgYWN0dWFsbHkgc3RvcmVkLiBJIHN1c3BlY3QgdGhlIGZ1bmN0aW9uIHdpbGwgbW9kaWZ5IHRoZXNlIGZpZWxkcyBiYXNlZCBvbiB0aGUgaW5wdXQgYmxvY2sgdG8gc3RvcmUgaW5mb3JtYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk3NTcsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxMTo0Ni41MzA4OTcxNDRaIiwiU2VxIjoyOCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTI2NTkzODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZXh0NF9leHRfc3RvcmVfcGJsb2NrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4dDQvZXh0NF9leHRlbnRzLmg9MjMyPXN0YXRpYyBpbmxpbmUgZXh0NF9mc2Jsa190IGV4dDRfaWR4X3BibG9jayhzdHJ1Y3QgZXh0NF9leHRlbnRfaWR4ICppeClcXG4tLVxcbmZzL2V4dDQvZXh0NF9leHRlbnRzLmgtMjQxLS8qXFxuZnMvZXh0NC9leHQ0X2V4dGVudHMuaDoyNDI6ICogZXh0NF9leHRfc3RvcmVfcGJsb2NrOlxcbmZzL2V4dDQvZXh0NF9leHRlbnRzLmgtMjQzLSAqIHN0b3JlcyBhIGxhcmdlIHBoeXNpY2FsIGJsb2NrIG51bWJlciBpbnRvIGFuIGV4dGVudCBzdHJ1Y3QsXFxuLS1cXG5mcy9leHQ0L2V4dDRfZXh0ZW50cy5oLTI0NS0gKi9cXG5mcy9leHQ0L2V4dDRfZXh0ZW50cy5oOjI0NjpzdGF0aWMgaW5saW5lIHZvaWQgZXh0NF9leHRfc3RvcmVfcGJsb2NrKHN0cnVjdCBleHQ0X2V4dGVudCAqZXgsXFxuZnMvZXh0NC9leHQ0X2V4dGVudHMuaC0yNDctXFx0XFx0XFx0XFx0XFx0IGV4dDRfZnNibGtfdCBwYilcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy10ZXN0LmM9MjI3PXN0YXRpYyBpbnQgZXh0ZW50c19rdW5pdF9pbml0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy10ZXN0LmMtMzE5LVxcdEVYVF9GSVJTVF9FWFRFTlQoZWgpLVxcdTAwM2VlZV9sZW4gPSBjcHVfdG9fbGUxNihFWFRfREFUQV9MRU4pO1xcbmZzL2V4dDQvZXh0ZW50cy10ZXN0LmM6MzIwOlxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhFWFRfRklSU1RfRVhURU5UKGVoKSwgRVhUX0RBVEFfUEJMSyk7XFxuZnMvZXh0NC9leHRlbnRzLXRlc3QuYy0zMjEtXFx0aWYgKCFwYXJhbSB8fCBwYXJhbS1cXHUwMDNlaXNfdW53cml0X2F0X3N0YXJ0KVxcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmM9MTk5Mj1leHQ0X2V4dF9pbnNlcnRfZXh0ZW50KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYy0yMDg1LVxcdFxcdFxcdGV4LVxcdTAwM2VlZV9ibG9jayA9IG5ld2V4dC1cXHUwMDNlZWVfYmxvY2s7XFxuZnMvZXh0NC9leHRlbnRzLmM6MjA4NjpcXHRcXHRcXHRleHQ0X2V4dF9zdG9yZV9wYmxvY2soZXgsIGV4dDRfZXh0X3BibG9jayhuZXdleHQpKTtcXG5mcy9leHQ0L2V4dGVudHMuYy0yMDg3LVxcdFxcdFxcdGV4LVxcdTAwM2VlZV9sZW4gPSBjcHVfdG9fbGUxNihleHQ0X2V4dF9nZXRfYWN0dWFsX2xlbihleClcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jLTIxOTYtXFx0bmVhcmV4LVxcdTAwM2VlZV9ibG9jayA9IG5ld2V4dC1cXHUwMDNlZWVfYmxvY2s7XFxuZnMvZXh0NC9leHRlbnRzLmM6MjE5NzpcXHRleHQ0X2V4dF9zdG9yZV9wYmxvY2sobmVhcmV4LCBleHQ0X2V4dF9wYmxvY2sobmV3ZXh0KSk7XFxuZnMvZXh0NC9leHRlbnRzLmMtMjE5OC1cXHRuZWFyZXgtXFx1MDAzZWVlX2xlbiA9IG5ld2V4dC1cXHUwMDNlZWVfbGVuO1xcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmM9MjYxND1leHQ0X2V4dF9ybV9sZWFmKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYy0yNzM5LVxcdFxcdFxcdC8qIHRoaXMgZXh0ZW50IGlzIHJlbW92ZWQ7IG1hcmsgc2xvdCBlbnRpcmVseSB1bnVzZWQgKi9cXG5mcy9leHQ0L2V4dGVudHMuYzoyNzQwOlxcdFxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleCwgMCk7XFxuZnMvZXh0NC9leHRlbnRzLmMtMjc0MS1cXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jPTMxOTE9c3RhdGljIHN0cnVjdCBleHQ0X2V4dF9wYXRoICpleHQ0X3NwbGl0X2V4dGVudF9hdChoYW5kbGVfdCAqaGFuZGxlLFxcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmMtMzI0Ni1cXHRleDItXFx1MDAzZWVlX2xlbiAgID0gY3B1X3RvX2xlMTYoZWVfbGVuIC0gKHNwbGl0IC0gZWVfYmxvY2spKTtcXG5mcy9leHQ0L2V4dGVudHMuYzozMjQ3OlxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleDIsIG5ld2Jsb2NrKTtcXG5mcy9leHQ0L2V4dGVudHMuYy0zMjQ4LVxcdGlmIChpc191bndyaXQpXFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYz0zNTU3PWV4dDRfZXh0X2NvbnZlcnRfdG9faW5pdGlhbGl6ZWQoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSxcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jLTM2NDUtXFx0XFx0XFx0ZXgtXFx1MDAzZWVlX2Jsb2NrID0gY3B1X3RvX2xlMzIoZWVfYmxvY2sgKyBtYXBfbGVuKTtcXG5mcy9leHQ0L2V4dGVudHMuYzozNjQ2OlxcdFxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleCwgZWVfcGJsayArIG1hcF9sZW4pO1xcbmZzL2V4dDQvZXh0ZW50cy5jLTM2NDctXFx0XFx0XFx0ZXgtXFx1MDAzZWVlX2xlbiA9IGNwdV90b19sZTE2KGVlX2xlbiAtIG1hcF9sZW4pO1xcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmMtMzY5MS1cXHRcXHRcXHRhYnV0X2V4LVxcdTAwM2VlZV9ibG9jayA9IGNwdV90b19sZTMyKG5leHRfbGJsayAtIG1hcF9sZW4pO1xcbmZzL2V4dDQvZXh0ZW50cy5jOjM2OTI6XFx0XFx0XFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKGFidXRfZXgsIG5leHRfcGJsayAtIG1hcF9sZW4pO1xcbmZzL2V4dDQvZXh0ZW50cy5jLTM2OTMtXFx0XFx0XFx0ZXgtXFx1MDAzZWVlX2xlbiA9IGNwdV90b19sZTE2KGVlX2xlbiAtIG1hcF9sZW4pO1xcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmMtMzc0NS1cXHRcXHRcXHRcXHRjcHVfdG9fbGUxNigqYWxsb2NhdGVkIC0gc3BsaXRfbWFwLm1fbGVuKTtcXG5mcy9leHQ0L2V4dGVudHMuYzozNzQ2OlxcdFxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhcXHUwMDI2emVyb19leDEsXFxuZnMvZXh0NC9leHRlbnRzLmMtMzc0Ny1cXHRcXHRcXHRcXHRleHQ0X2V4dF9wYmxvY2soZXgpICsgc3BsaXRfbWFwLm1fbGJsayArXFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYy0zNzYwLVxcdFxcdFxcdFxcdFxcdFxcdFxcdGVlX2Jsb2NrKTtcXG5mcy9leHQ0L2V4dGVudHMuYzozNzYxOlxcdFxcdFxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhcXHUwMDI2emVyb19leDIsXFxuZnMvZXh0NC9leHRlbnRzLmMtMzc2Mi1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICBleHQ0X2V4dF9wYmxvY2soZXgpKTtcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jPTQyNjk9aW50IGV4dDRfZXh0X21hcF9ibG9ja3MoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSxcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jLTQ0NzMtXFx0cGJsayA9IG5ld2Jsb2NrICsgb2Zmc2V0O1xcbmZzL2V4dDQvZXh0ZW50cy5jOjQ0NzQ6XFx0ZXh0NF9leHRfc3RvcmVfcGJsb2NrKFxcdTAwMjZuZXdleCwgcGJsayk7XFxuZnMvZXh0NC9leHRlbnRzLmMtNDQ3NS1cXHRuZXdleC5lZV9sZW4gPSBjcHVfdG9fbGUxNihhci5sZW4pO1xcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmM9NTc2Mz1leHQ0X3N3YXBfZXh0ZW50cyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlMSxcXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jLTU4OTctXFx0XFx0dG1wX2V4ID0gKmV4MTtcXG5mcy9leHQ0L2V4dGVudHMuYzo1ODk4OlxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleDEsIGV4dDRfZXh0X3BibG9jayhleDIpKTtcXG5mcy9leHQ0L2V4dGVudHMuYzo1ODk5OlxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleDIsIGV4dDRfZXh0X3BibG9jayhcXHUwMDI2dG1wX2V4KSk7XFxuZnMvZXh0NC9leHRlbnRzLmMtNTkwMC1cXHRcXHRleDEtXFx1MDAzZWVlX2xlbiA9IGNwdV90b19sZTE2KGUyX2xlbik7XFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYz02MDI3PWludCBleHQ0X2V4dF9yZXBsYXlfdXBkYXRlX2V4KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfbGJsa190IHN0YXJ0LFxcbi0tXFxuZnMvZXh0NC9leHRlbnRzLmMtNjA4MC1cXHRcXHRleHQ0X2V4dF9tYXJrX2luaXRpYWxpemVkKGV4KTtcXG5mcy9leHQ0L2V4dGVudHMuYzo2MDgxOlxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleCwgcGJsayk7XFxuZnMvZXh0NC9leHRlbnRzLmMtNjA4Mi1cXHRkb3duX3dyaXRlKFxcdTAwMjZFWFQ0X0koaW5vZGUpLVxcdTAwM2VpX2RhdGFfc2VtKTtcXG4tLVxcbmZzL2V4dDQvZmFzdF9jb21taXQuYz05MzE9c3RhdGljIGludCBleHQ0X2ZjX3dyaXRlX2lub2RlX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSwgdTMyICpjcmMpXFxuLS1cXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmMtOTYxLVxcdFxcdGV4LVxcdTAwM2VlZV9sZW4gPSBjcHVfdG9fbGUxNihyYW5nZS1cXHUwMDNlbGVuKTtcXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmM6OTYyOlxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhleCwgcmFuZ2UtXFx1MDAzZXBibGspO1xcbmZzL2V4dDQvZmFzdF9jb21taXQuYy05NjMtXFx0XFx0aWYgKHJhbmdlLVxcdTAwM2V1bndyaXR0ZW4pXFxuLS1cXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmM9MjE0OD1zdGF0aWMgaW50IGV4dDRfZmNfcmVwbGF5X2FkZF9yYW5nZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1OCAqdmFsKVxcbi0tXFxuZnMvZXh0NC9mYXN0X2NvbW1pdC5jLTIyMDItXFx0XFx0XFx0bmV3ZXguZWVfYmxvY2sgPSBjcHVfdG9fbGUzMihjdXIpO1xcbmZzL2V4dDQvZmFzdF9jb21taXQuYzoyMjAzOlxcdFxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhcXG5mcy9leHQ0L2Zhc3RfY29tbWl0LmMtMjIwNC1cXHRcXHRcXHRcXHRcXHUwMDI2bmV3ZXgsIHN0YXJ0X3BibGsgKyBjdXIgLSBzdGFydCk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTEwNzQ9c3RhdGljIGludCBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2ZzYmxrX3QgYmxvY2ssXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTExMzUtXFx0XFx0bmV3ZXguZWVfbGVuID0gY3B1X3RvX2xlMTYoMSk7XFxuZnMvZXh0NC9pbmxpbmUuYzoxMTM2OlxcdFxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhcXHUwMDI2bmV3ZXgsIGJsb2NrKTtcXG5mcy9leHQ0L2lubGluZS5jLTExMzctXFx0XFx0cGF0aCA9IGV4dDRfZXh0X2luc2VydF9leHRlbnQoaGFuZGxlLCBpbm9kZSwgcGF0aCwgXFx1MDAyNm5ld2V4LCAwKTtcXG4tLVxcbmZzL2V4dDQvbWlncmF0ZS5jPTIxPXN0YXRpYyBpbnQgZmluaXNoX3JhbmdlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L21pZ3JhdGUuYy0zMy1cXHRuZXdleHQuZWVfbGVuICAgPSBjcHVfdG9fbGUxNihsYi1cXHUwMDNlbGFzdF9ibG9jayAtIGxiLVxcdTAwM2VmaXJzdF9ibG9jayArIDEpO1xcbmZzL2V4dDQvbWlncmF0ZS5jOjM0OlxcdGV4dDRfZXh0X3N0b3JlX3BibG9jayhcXHUwMDI2bmV3ZXh0LCBsYi1cXHUwMDNlZmlyc3RfcGJsb2NrKTtcXG5mcy9leHQ0L21pZ3JhdGUuYy0zNS1cXHQvKiBMb2NraW5nIG9ubHkgZm9yIGNvbnZlbmllbmNlIHNpbmNlIHdlIGFyZSBvcGVyYXRpbmcgb24gdGVtcCBpbm9kZSAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxMTo0OC4wODM1NjIwNDJaIiwiU2VxIjoyOSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDAzODUwMjU4MTU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBFeHRlbnQgYW5kIEFsbG9jYXRpb24gSW5pdGlhbGl6YXRpb24gaW4gZXh0NCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGV4dDRfZXh0X3N0b3JlX3BibG9ja2AgZnVuY3Rpb24sIGFuZCBpdCdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIEl0J3MgcmVzcG9uc2libGUgZm9yIHN0b3JpbmcgdGhlIHBoeXNpY2FsIGJsb2NrIG51bWJlciAoYHBiYCkgaW50byB0aGUgZXh0ZW50IHN0cnVjdHVyZSdzIGBlZV9zdGFydF9sb2AgYW5kIGBlZV9zdGFydF9oaWAgZmllbGRzLiBUaGUgaGlnaCBiaXRzIGFyZSBzaGlmdGVkIGFuZCBtYXNrZWQgYXBwcm9wcmlhdGVseSwgYW5kIGV2ZXJ5dGhpbmcgaXMgY29udmVydGVkIHRvIGxpdHRsZS1lbmRpYW4uIFNlZW1zIHN0YW5kYXJkIGZvciBoYW5kbGluZyA2NC1iaXQgYmxvY2sgbnVtYmVycyB3aXRoaW4gYSA0OC1iaXQgc3BsaXQgZXh0ZW50IHN0cnVjdHVyZS4gSSdtIG5vdGluZyB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gaW5pdGlhbGl6aW5nIGBuZXdleGAuXG5cblRoZW4sIEknbSB2ZXJpZnlpbmcgdGhlIGNvbXBsZXRlIGluaXRpYWxpemF0aW9uIG9mIGFuIGBleHQ0X2V4dGVudGAgc3RydWN0dXJlLiBHaXZlbiB0aGF0IHRoZSBzdHJ1Y3R1cmUgaGFzIGZvdXIgZmllbGRzIChgZWVfYmxvY2tgLCBgZWVfbGVuYCwgYGVlX3N0YXJ0X2hpYCwgYGVlX3N0YXJ0X2xvYCkgYW5kIHRoZSBjb2RlIGluaXRpYWxpemVzIGFsbCBmb3VyLCBJIGhhdmUgY29uZmlybWVkIHRoYXQgdGhlIGV4dGVudCBpcyBmdWxseSBpbml0aWFsaXplZC4gQ2hlY2tpbmcgdGhlIHN0cnVjdHVyZSdzIHNpemUgY29uZmlybXMgdGhlIGFic2VuY2Ugb2YgcGFkZGluZywgYXMgNCArIDIgKyAyICsgNCBlcXVhbHMgMTIgYnl0ZXMuXG5cbk5vdywgc2hpZnRpbmcgZ2VhcnMsIEknbSBleGFtaW5pbmcgdGhlIGluaXRpYWxpemF0aW9uIG9mIGBzdHJ1Y3QgZXh0NF9hbGxvY2F0aW9uX3JlcXVlc3QgYXI7YCB3aXRoaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBUaGUgY29kZSB1c2VzIGBtZW1zZXRgIHRvIGluaXRpYWxpemUgYGFyYCB0byB6ZXJvLCBhbmQgdGhlbiBzZXRzIHNvbWUgc3BlY2lmaWMgZmllbGRzLiBTbywgdGhhdCdzIGRlZmluaXRlbHkgYSBjb21wbGV0ZSBpbml0aWFsaXphdGlvbi5cblxuTXkgZm9jdXMgaXMgc2hpZnRpbmcgdG8gYGJ1ZmAsIGFsbG9jYXRlZCB3aXRoIGBrbWFsbG9jYCBpbiB0aGUgc2FtZSBmdW5jdGlvbi4gSSBzZWUgdGhhdCBgYnVmYCBpcyBhbGxvY2F0ZWQgYnV0IHVuaW5pdGlhbGl6ZWQsIHdoaWNoIGlzIGEga2V5IHBvaW50IHRvIHdhdGNoIG91dCBmb3IuIEFmdGVyIGFsbG9jYXRpb24sIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIGlzIGNhbGxlZCB0byBwb3B1bGF0ZSBgYnVmYC4gVGhpcyBpcyB3aGVyZSBJIGhhdmUgYSBjb25jZXJuLiBJZiBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCBkb2Vzbid0IGZ1bGx5IGluaXRpYWxpemUgdGhlIGFsbG9jYXRlZCBgYnVmYCBidWZmZXIsIGl0IGNvdWxkIGxlYWQgdG8gdW5pbml0aWFsaXplZCBtZW1vcnkgYmVpbmcgdXNlZCwgd2hpY2ggY291bGQgY3JlYXRlIGlzc3Vlcy4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCBjYXJlZnVsbHkgdG8gZW5zdXJlIGl0IGhhbmRsZXMgdGhlIGVudGlyZSBgYnVmYC4gSSdtIGdvaW5nIHRvIGxvb2sgYXQgdGhhdCBmdW5jdGlvbiBuZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjYxMCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcyOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxODozMS45MzM4MjQxNzhaIiwiU2VxIjozMCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MDk0NDcxMjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZXh0NF9yZWFkX2lubGluZV9kYXRhXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4dDQvaW5saW5lLmM9MTQ1PWludCBleHQ0X2ZpbmRfaW5saW5lX2RhdGFfbm9sb2NrKHN0cnVjdCBpbm9kZSAqaW5vZGUpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTE4My1cXG5mcy9leHQ0L2lubGluZS5jOjE4NDpzdGF0aWMgaW50IGV4dDRfcmVhZF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB2b2lkICpidWZmZXIsXFxuZnMvZXh0NC9pbmxpbmUuYy0xODUtXFx0XFx0XFx0XFx0IHVuc2lnbmVkIGludCBsZW4sXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTUwND1zdGF0aWMgaW50IGV4dDRfcmVhZF9pbmxpbmVfZm9saW8oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZvbGlvICpmb2xpbylcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtNTM1LVxcdGthZGRyID0ga21hcF9sb2NhbF9mb2xpbyhmb2xpbywgMCk7XFxuZnMvZXh0NC9pbmxpbmUuYzo1MzY6XFx0cmV0ID0gZXh0NF9yZWFkX2lubGluZV9kYXRhKGlub2RlLCBrYWRkciwgbGVuLCBcXHUwMDI2aWxvYyk7XFxuZnMvZXh0NC9pbmxpbmUuYy01MzctXFx0a2FkZHIgPSBmb2xpb196ZXJvX3RhaWwoZm9saW8sIGxlbiwga2FkZHIgKyBsZW4pO1xcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz0xMTg1PXN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xMjA0LVxcbmZzL2V4dDQvaW5saW5lLmM6MTIwNTpcXHRlcnJvciA9IGV4dDRfcmVhZF9pbmxpbmVfZGF0YShpbm9kZSwgYnVmLCBpbmxpbmVfc2l6ZSwgaWxvYyk7XFxuZnMvZXh0NC9pbmxpbmUuYy0xMjA2LVxcdGlmIChlcnJvciBcXHUwMDNjIDApXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTEzNTc9aW50IGV4dDRfaW5saW5lZGlyX3RvX3RyZWUoc3RydWN0IGZpbGUgKmRpcl9maWxlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xMzkyLVxcbmZzL2V4dDQvaW5saW5lLmM6MTM5MzpcXHRyZXQgPSBleHQ0X3JlYWRfaW5saW5lX2RhdGEoaW5vZGUsIGRpcl9idWYsIGlubGluZV9zaXplLCBcXHUwMDI2aWxvYyk7XFxuZnMvZXh0NC9pbmxpbmUuYy0xMzk0LVxcdHVwX3JlYWQoXFx1MDAyNkVYVDRfSShpbm9kZSktXFx1MDAzZXhhdHRyX3NlbSk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTE0Nzg9aW50IGV4dDRfcmVhZF9pbmxpbmVfZGlyKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xNTExLVxcbmZzL2V4dDQvaW5saW5lLmM6MTUxMjpcXHRyZXQgPSBleHQ0X3JlYWRfaW5saW5lX2RhdGEoaW5vZGUsIGRpcl9idWYsIGlubGluZV9zaXplLCBcXHUwMDI2aWxvYyk7XFxuZnMvZXh0NC9pbmxpbmUuYy0xNTEzLVxcdHVwX3JlYWQoXFx1MDAyNkVYVDRfSShpbm9kZSktXFx1MDAzZXhhdHRyX3NlbSk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTE2MDk9dm9pZCAqZXh0NF9yZWFkX2lubGluZV9saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTE2MjQtXFxuZnMvZXh0NC9pbmxpbmUuYzoxNjI1OlxcdHJldCA9IGV4dDRfcmVhZF9pbmxpbmVfZGF0YShpbm9kZSwgbGluaywgaW5saW5lX3NpemUsIFxcdTAwMjZpbG9jKTtcXG5mcy9leHQ0L2lubGluZS5jLTE2MjYtXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTc6MTg6MzMuODQzMjc2NjUyWiIsIlNlcSI6MzEsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1MzQ1NzIyNzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipEaXZpbmcgaW50byBgZXh0NF9yZWFkX2lubGluZV9kYXRhYCoqXG5cbkFscmlnaHQsIHRpbWUgdG8gY3JhY2sgb3BlbiB0aGUgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgZnVuY3Rpb24uIEknbSBhbHJlYWR5IGFudGljaXBhdGluZyBzb21lIG9mIHRoZSBrZXkgYXJlYXMgdGhpcyB3aWxsIHRvdWNoIG9uLiBXZSdyZSBkZWFsaW5nIHdpdGggaW5saW5lIGRhdGEsIHdoaWNoIG1lYW5zIHdlJ3JlIGRlYWxpbmcgd2l0aCBvcHRpbWl6YXRpb25zLCBidXQgYWxzbyBwb3RlbnRpYWwgY29tcGxleGl0eSBpbiBoYW5kbGluZyBkYXRhIHN0b3JlZCBkaXJlY3RseSB3aXRoaW4gdGhlIGlub2RlIGl0c2VsZiwgcmF0aGVyIHRoYW4gaW4gc2VwYXJhdGUgYmxvY2tzIG9uIGRpc2suIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbnRhbCBtYXAgb2YgdGhlIGV4dDQgZGF0YSBzdHJ1Y3R1cmVzLCBzcGVjaWZpY2FsbHkgdGhlIGlub2RlIGxheW91dCBhbmQgdGhlIHZhcmlvdXMgZmxhZ3MgdGhhdCBzaWduYWwgaW5saW5lIGRhdGEgdXNhZ2UuXG5cbkknbGwgYmUgbG9va2luZyBjbG9zZWx5IGF0IGhvdyB0aGUgZnVuY3Rpb24gY2FsY3VsYXRlcyBvZmZzZXRzLCBwYXJ0aWN1bGFybHkgdGhlIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZSBpbm9kZSdzIGRhdGEgYXJlYSBhbmQgdGhlIGZpbGUncyBzaXplLiBIYW5kbGluZyBib3VuZGFyeSBjb25kaXRpb25zIGlzIGFsd2F5cyBjcnVjaWFsIGluIHRoaXMgdHlwZSBvZiBmdW5jdGlvbjsgaW5jb3JyZWN0IGNhbGN1bGF0aW9ucyBjb3VsZCBlYXNpbHkgbGVhZCB0byByZWFkaW5nIGJleW9uZCB0aGUgYWxsb2NhdGVkIGRhdGEgb3IsIHdvcnNlLCBjb3JydXB0aW5nIGZpbGUgbWV0YWRhdGEuIEkgbmVlZCB0byBzZWUgaG93IGl0IG1hbmFnZXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudHMsIGFuZCB3aGV0aGVyIHRoZSByZWFkcyBhcmUgYnl0ZS1hbGlnbmVkIGFzIGlzIHJlcXVpcmVkLlxuXG5JJ2xsIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGVycm9yIGhhbmRsaW5nLiBJIGV4cGVjdCBjaGVja3MgZm9yIGludmFsaWQgaW5vZGUgc3RydWN0dXJlcyBvciBmaWxlIHNpemVzLCBhbmQgSSB3YW50IHRvIHNlZSBob3cgdGhlIGZ1bmN0aW9uIG1hbmFnZXMgZXJyb3JzIGR1cmluZyB0aGUgZGF0YSBjb3B5IGl0c2VsZi4gU2luY2UgaW5saW5lIGRhdGEgaXMgZXNzZW50aWFsbHkgdGlnaHRseSBjb3VwbGVkIHdpdGggdGhlIGlub2RlLCBhbnkgaW5jb25zaXN0ZW5jaWVzIGNvdWxkIGJlIGNhdGFzdHJvcGhpYy5cblxuVGhlIGVmZmljaWVuY3kgb2YgdGhpcyBmdW5jdGlvbiBpcyBwYXJhbW91bnQuIEl0IHNob3VsZCBtaW5pbWl6ZSB1bm5lY2Vzc2FyeSBtZW1vcnkgY29waWVzIGFuZCBJL08gb3BlcmF0aW9ucywgZW5zdXJpbmcgdGhhdCBpbmxpbmUgZGF0YSByZWFkcyBhcmUgYXMgZmFzdCBhcyBwb3NzaWJsZS4gSSdsbCBiZSBzY3J1dGluaXppbmcgYW55IG9wdGltaXphdGlvbnMgcHJlc2VudCB0byBhc3Nlc3MgdGhlaXIgaW1wYWN0IGFuZCBjb3JyZWN0bmVzcy4gRnVydGhlcm1vcmUsIGlmIGFueSBsb2NraW5nIGlzIGludm9sdmVkLCBJJ2xsIGJlIGludmVzdGlnYXRpbmcgdGhvc2UgZm9yIHRoZWlyIGVmZmljaWVuY3kuXG5cbkZpbmFsbHksIEknbGwgd2FudCB0byBzZWUgaG93IGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIGludGVncmF0ZXMgd2l0aCB0aGUgbGFyZ2VyIGZpbGUgc3lzdGVtIHJlYWQgcGF0aC4gSSB3YW50IHRvIHNlZSBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIGJ1ZmZlciBjYWNoZSwgdGhlIHBhZ2UgY2FjaGUsIGFuZCBvdGhlciBwb3RlbnRpYWwgb3B0aW1pemF0aW9uIGxheWVycy4gSG93IGRvZXMgaXQgaGFuZGxlIHRoZSBjYXNlIHdoZW4gaW5saW5lIGRhdGEgbmVlZHMgdG8gYmUgY29tYmluZWQgd2l0aCBkYXRhIGZyb20gcmVndWxhciBibG9ja3M/IFRoZSBpbnRlcmFjdGlvbnMgYmV0d2VlbiBkaWZmZXJlbnQgZGF0YSBzdG9yYWdlIG1ldGhvZHMgYXJlIGFsd2F5cyBhIHByaW1lIGFyZWEgb2YgaW50ZXJlc3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0NTMyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTc6MTg6MzkuMzc3ODUxNzUzWiIsIlNlcSI6MzIsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NTk0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJmcy9leHQ0L2lubGluZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE4NCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDE4NDpcXHRzdGF0aWMgaW50IGV4dDRfcmVhZF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB2b2lkICpidWZmZXIsXFxuIDE4NTpcXHRcXHRcXHRcXHRcXHQgdW5zaWduZWQgaW50IGxlbixcXG4gMTg2OlxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgZXh0NF9pbG9jICppbG9jKVxcbiAxODc6XFx0e1xcbiAxODg6XFx0XFx0c3RydWN0IGV4dDRfeGF0dHJfZW50cnkgKmVudHJ5O1xcbiAxODk6XFx0XFx0c3RydWN0IGV4dDRfeGF0dHJfaWJvZHlfaGVhZGVyICpoZWFkZXI7XFxuIDE5MDpcXHRcXHRpbnQgY3BfbGVuID0gMDtcXG4gMTkxOlxcdFxcdHN0cnVjdCBleHQ0X2lub2RlICpyYXdfaW5vZGU7XFxuIDE5MjpcXHRcXG4gMTkzOlxcdFxcdGlmICghbGVuKVxcbiAxOTQ6XFx0XFx0XFx0cmV0dXJuIDA7XFxuIDE5NTpcXHRcXG4gMTk2OlxcdFxcdEJVR19PTihsZW4gXFx1MDAzZSBFWFQ0X0koaW5vZGUpLVxcdTAwM2VpX2lubGluZV9zaXplKTtcXG4gMTk3OlxcdFxcbiAxOTg6XFx0XFx0Y3BfbGVuID0gbWluX3QodW5zaWduZWQgaW50LCBsZW4sIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpO1xcbiAxOTk6XFx0XFxuIDIwMDpcXHRcXHRyYXdfaW5vZGUgPSBleHQ0X3Jhd19pbm9kZShpbG9jKTtcXG4gMjAxOlxcdFxcdG1lbWNweShidWZmZXIsICh2b2lkICopKHJhd19pbm9kZS1cXHUwMDNlaV9ibG9jayksIGNwX2xlbik7XFxuIDIwMjpcXHRcXG4gMjAzOlxcdFxcdGxlbiAtPSBjcF9sZW47XFxuIDIwNDpcXHRcXHRidWZmZXIgKz0gY3BfbGVuO1xcbiAyMDU6XFx0XFxuIDIwNjpcXHRcXHRpZiAoIWxlbilcXG4gMjA3OlxcdFxcdFxcdGdvdG8gb3V0O1xcbiAyMDg6XFx0XFxuIDIwOTpcXHRcXHRoZWFkZXIgPSBJSERSKGlub2RlLCByYXdfaW5vZGUpO1xcbiAyMTA6XFx0XFx0ZW50cnkgPSAoc3RydWN0IGV4dDRfeGF0dHJfZW50cnkgKikoKHZvaWQgKilyYXdfaW5vZGUgK1xcbiAyMTE6XFx0XFx0XFx0XFx0XFx0XFx0ICAgIEVYVDRfSShpbm9kZSktXFx1MDAzZWlfaW5saW5lX29mZik7XFxuIDIxMjpcXHRcXHRsZW4gPSBtaW5fdCh1bnNpZ25lZCBpbnQsIGxlbixcXG4gMjEzOlxcdFxcdFxcdCAgICAodW5zaWduZWQgaW50KWxlMzJfdG9fY3B1KGVudHJ5LVxcdTAwM2VlX3ZhbHVlX3NpemUpKTtcXG4gMjE0OlxcdFxcbiAyMTU6XFx0XFx0bWVtY3B5KGJ1ZmZlcixcXG4gMjE2OlxcdFxcdCAgICAgICAodm9pZCAqKUlGSVJTVChoZWFkZXIpICsgbGUxNl90b19jcHUoZW50cnktXFx1MDAzZWVfdmFsdWVfb2ZmcyksIGxlbik7XFxuIDIxNzpcXHRcXHRjcF9sZW4gKz0gbGVuO1xcbiAyMTg6XFx0XFxuIDIxOTpcXHRvdXQ6XFxuIDIyMDpcXHRcXHRyZXR1cm4gY3BfbGVuO1xcbiAyMjE6XFx0fVxcbiAyMjI6XFx0XFxuIDIyMzpcXHQvKlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxODozOS4zNzgwMjA3MTNaIiwiU2VxIjozMywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODc0MTQ1MDc3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgZXh0NCBJbmxpbmUgRGF0YSBIYW5kbGluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgLiBNeSBpbml0aWFsIHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBpdCBjb3BpZXMgaW5saW5lIGRhdGEgZnJvbSB0aGUgaW5vZGUncyBpbmxpbmUgZGF0YSBzZWN0aW9uIGludG8gYSBidWZmZXIuIEl0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogSXQgZ3JhYnMgYGNwX2xlbmAgYnl0ZXMsIHN1cHBvc2VkbHkgZnJvbSBgcmF3X2lub2RlLVx1MDAzZWlfYmxvY2tgLCBhbmQgdGhlbiBpZiB0aGVyZSdzIHN0aWxsIG1vcmUgZGF0YSB0byByZWFkIChgbGVuYCBpcyBzdGlsbCBncmVhdGVyIHRoYW4gMCksIGl0IGNvbnRpbnVlcyB0byBjb3B5IHRoZSByZW1haW5pbmcgZGF0YSBmcm9tIHRoZSB4YXR0ciBlbnRyeS5cblxuQnV0IHdhaXQgYSBtaW51dGUuLi4gSSBzZWUgc29tZXRoaW5nIGludGVyZXN0aW5nIGhlcmU6IGBjcF9sZW5gIHJldHVybmVkIGJ5IGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgICptaWdodCogYWN0dWFsbHkgYmUgbGVzcyB0aGFuIHRoZSBvcmlnaW5hbCByZXF1ZXN0ZWQgYGxlbmAuIFRoZSBjb2RlIHVzZXMgYG1pbl90YCB0byBkZXRlcm1pbmUgaG93IG11Y2ggaXQgc2hvdWxkIGNvcHk6XG5cbmBgYGNcbmxlbiA9IG1pbl90KHVuc2lnbmVkIGludCwgbGVuLCAodW5zaWduZWQgaW50KWxlMzJfdG9fY3B1KGVudHJ5LVx1MDAzZWVfdmFsdWVfc2l6ZSkpO1xuYGBgXG5cblNvLCBpZiB0aGUgcmVxdWVzdGVkIGBsZW5gIHdhcyBsYXJnZXIgdGhhbiBgZW50cnktXHUwMDNlZV92YWx1ZV9zaXplYCwgaXQgY29waWVzIGxlc3MgZGF0YSBhbmQgcmV0dXJucyB0aGF0IHNtYWxsZXIgYGNwX2xlbmAuIFRoYXQgbWFrZXMgc2Vuc2UgaW4gdGVybXMgb2Ygbm90IHJlYWRpbmcgcGFzdCB3aGF0J3Mgc3RvcmVkLCBidXQgaXQgcmFpc2VzIGEgY29uY2VybiBpbiBteSBoZWFkLlxuXG5Ob3cgSSdtIGxvb2tpbmcgYXQgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgLiBUaGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcsIGJlY2F1c2UgaXQgY2FsbHMgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgdG8gcmVhZCBpbnRvIGEgYnVmZmVyIGBidWZgIGFsbG9jYXRlZCB3aXRoIGBrbWFsbG9jYC4gSXQgbG9va3MgbGlrZSBpdCBmaXJzdCBjYWxjdWxhdGVzIGBpbmxpbmVfc2l6ZWAgd2l0aCBgZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpYC4gVGhlbiwgaXQgYWxsb2NhdGVzIHRoZSBidWZmZXIsIHJlYWRzIGludG8gaXQsIGFuZCBjaGVja3MgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgLlxuXG5UaGUgY29yZSBvZiBteSBjb25jZXJuIGlzIHRoYXQgaWYgYGVycm9yYCwgd2hpY2ggaXMgZXF1YWwgdG8gYGNwX2xlbmAsIGlzIGxlc3MgdGhhbiBgaW5saW5lX3NpemVgLCB0aGUgYnVmZmVyIGBidWZgIGlzbid0ICpmdWxseSogaW5pdGlhbGl6ZWQuIFRoaXMgY291bGQgYmUgYSB2dWxuZXJhYmlsaXR5LCByaWdodD8gV2UncmUgZ29pbmcgdG8gYXR0ZW1wdCB0byByZWFkIGEgYnVmZmVyIHRoYXQgbWF5IGhhdmUgdW5pbml0aWFsaXplZCBieXRlcywgYW5kIHRoYXQncyBnZW5lcmFsbHkgYmFkLlxuXG5CdXQgaG9sZCBvbiwgbGV0IG1lIHN0b3AgYW5kIHRoaW5rIHRoaXMgdGhyb3VnaC4uLiB0aGUgc2l6ZSB0byByZWFkIGlzIHNldCBieSBgZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpYC4gVGhhdCBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIHRoZSBleGFjdCBzaXplIG9mIHRoZSBpbmxpbmUgZGF0YS5cblxuSSBuZWVkIHRvIGdvIGFuZCBjaGVjayBgZXh0NF9nZXRfaW5saW5lX3NpemVgIHRvIGNvbmZpcm0gdGhpcyBhc3N1bXB0aW9uLiBJZiBgZXh0NF9nZXRfaW5saW5lX3NpemVgIHJldHVybnMgdGhlIGNvcnJlY3Qgc2l6ZSwgdGhlbiB0aGVyZSBoYXMgdG8gYmUgYW4gaXNzdWUgaW4gdGhlIGVycm9yIGNoZWNraW5nIG9mIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYCBvciB0aGUgbG9naWMgaW5zaWRlIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIHRoYXQgaXMgY2F1c2luZyB0aGUgc2hvcnQgcmVhZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTU2MTQsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNDksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxODo0OC4xMTk0NzU5NzNaIiwiU2VxIjozNCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NzY2NzA0NTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZXh0NF9nZXRfaW5saW5lX3NpemVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXh0NC9pbmxpbmUuYz0yNT1zdGF0aWMgaW50IGV4dDRfZGFfY29udmVydF9pbmxpbmVfZGF0YV90b19leHRlbnQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTI4LVxcbmZzL2V4dDQvaW5saW5lLmM6Mjk6c3RhdGljIGludCBleHQ0X2dldF9pbmxpbmVfc2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbmZzL2V4dDQvaW5saW5lLmMtMzAte1xcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz01MDQ9c3RhdGljIGludCBleHQ0X3JlYWRfaW5saW5lX2ZvbGlvKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmb2xpbyAqZm9saW8pXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTUyNC1cXG5mcy9leHQ0L2lubGluZS5jOjUyNTpcXHRsZW4gPSBtaW5fdChzaXplX3QsIGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKSwgaV9zaXplX3JlYWQoaW5vZGUpKTtcXG5mcy9leHQ0L2lubGluZS5jLTUyNi1cXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9NTczPXN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtNjIzLVxcdGZyb20gPSAwO1xcbmZzL2V4dDQvaW5saW5lLmM6NjI0OlxcdHRvID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xcbmZzL2V4dDQvaW5saW5lLmMtNjI1LVxcdGlmICghZm9saW9fdGVzdF91cHRvZGF0ZShmb2xpbykpIHtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9ODg2PXN0YXRpYyBpbnQgZXh0NF9kYV9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtOTAzLVxcbmZzL2V4dDQvaW5saW5lLmM6OTA0OlxcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xcbmZzL2V4dDQvaW5saW5lLmMtOTA1LVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz0xMTg1PXN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xMTk3LVxcbmZzL2V4dDQvaW5saW5lLmM6MTE5ODpcXHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcXG5mcy9leHQ0L2lubGluZS5jLTExOTktXFx0YnVmID0ga21hbGxvYyhpbmxpbmVfc2l6ZSwgR0ZQX05PRlMpO1xcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz0xMzU3PWludCBleHQ0X2lubGluZWRpcl90b190cmVlKHN0cnVjdCBmaWxlICpkaXJfZmlsZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTM4NC1cXG5mcy9leHQ0L2lubGluZS5jOjEzODU6XFx0aW5saW5lX3NpemUgPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShpbm9kZSk7XFxuZnMvZXh0NC9pbmxpbmUuYy0xMzg2LVxcdGRpcl9idWYgPSBrbWFsbG9jKGlubGluZV9zaXplLCBHRlBfTk9GUyk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTE0Nzg9aW50IGV4dDRfcmVhZF9pbmxpbmVfZGlyKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xNTAzLVxcbmZzL2V4dDQvaW5saW5lLmM6MTUwNDpcXHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcXG5mcy9leHQ0L2lubGluZS5jLTE1MDUtXFx0ZGlyX2J1ZiA9IGttYWxsb2MoaW5saW5lX3NpemUsIEdGUF9OT0ZTKTtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTYwOT12b2lkICpleHQ0X3JlYWRfaW5saW5lX2xpbmsoc3RydWN0IGlub2RlICppbm9kZSlcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTYxOS1cXHRyZXQgPSAtRU5PTUVNO1xcbmZzL2V4dDQvaW5saW5lLmM6MTYyMDpcXHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKTtcXG5mcy9leHQ0L2lubGluZS5jLTE2MjEtXFx0bGluayA9IGttYWxsb2MoaW5saW5lX3NpemUgKyAxLCBHRlBfTk9GUyk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTE2OTE9c3RydWN0IGJ1ZmZlcl9oZWFkICpleHQ0X2ZpbmRfaW5saW5lX2VudHJ5KHN0cnVjdCBpbm9kZSAqZGlyLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xNzMxLVxcbmZzL2V4dDQvaW5saW5lLmM6MTczMjpcXHRpZiAoZXh0NF9nZXRfaW5saW5lX3NpemUoZGlyKSA9PSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFKVxcbmZzL2V4dDQvaW5saW5lLmMtMTczMy1cXHRcXHRnb3RvIG91dDtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTczNS1cXHRpbmxpbmVfc3RhcnQgPSBleHQ0X2dldF9pbmxpbmVfeGF0dHJfcG9zKGRpciwgXFx1MDAyNmlzLmlsb2MpO1xcbmZzL2V4dDQvaW5saW5lLmM6MTczNjpcXHRpbmxpbmVfc2l6ZSA9IGV4dDRfZ2V0X2lubGluZV9zaXplKGRpcikgLSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFO1xcbmZzL2V4dDQvaW5saW5lLmMtMTczNy1cXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTc1ND1pbnQgZXh0NF9kZWxldGVfaW5saW5lX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTE3ODEtXFx0XFx0aW5saW5lX3N0YXJ0ID0gZXh0NF9nZXRfaW5saW5lX3hhdHRyX3BvcyhkaXIsIFxcdTAwMjZpbG9jKTtcXG5mcy9leHQ0L2lubGluZS5jOjE3ODI6XFx0XFx0aW5saW5lX3NpemUgPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShkaXIpIC1cXG5mcy9leHQ0L2lubGluZS5jLTE3ODMtXFx0XFx0XFx0XFx0RVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRTtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTgxMj1leHQ0X2dldF9pbmxpbmVfZW50cnkoc3RydWN0IGlub2RlICppbm9kZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTgxOS1cXG5mcy9leHQ0L2lubGluZS5jOjE4MjA6XFx0QlVHX09OKG9mZnNldCBcXHUwMDNlIGV4dDRfZ2V0X2lubGluZV9zaXplKGlub2RlKSk7XFxuZnMvZXh0NC9pbmxpbmUuYy0xODIxLVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xODI3LVxcdFxcdG9mZnNldCAtPSBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFO1xcbmZzL2V4dDQvaW5saW5lLmM6MTgyODpcXHRcXHQqaW5saW5lX3NpemUgPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShpbm9kZSkgLVxcbmZzL2V4dDQvaW5saW5lLmMtMTgyOS1cXHRcXHRcXHRcXHRFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFO1xcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz0xODM3PWJvb2wgZW1wdHlfaW5saW5lX2RpcihzdHJ1Y3QgaW5vZGUgKmRpciwgaW50ICpoYXNfaW5saW5lX2RhdGEpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTE4NjktXFxuZnMvZXh0NC9pbmxpbmUuYzoxODcwOlxcdGlubGluZV9sZW4gPSBleHQ0X2dldF9pbmxpbmVfc2l6ZShkaXIpO1xcbmZzL2V4dDQvaW5saW5lLmMtMTg3MS1cXHRvZmZzZXQgPSBFWFQ0X0lOTElORV9ET1RET1RfU0laRTtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTkxMT1pbnQgZXh0NF9pbmxpbmVfZGF0YV9pb21hcChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaW9tYXAgKmlvbWFwKVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xOTMyLVxcdGlvbWFwLVxcdTAwM2VvZmZzZXQgPSAwO1xcbmZzL2V4dDQvaW5saW5lLmM6MTkzMzpcXHRpb21hcC1cXHUwMDNlbGVuZ3RoID0gbWluX3QobG9mZl90LCBleHQ0X2dldF9pbmxpbmVfc2l6ZShpbm9kZSksXFxuZnMvZXh0NC9pbmxpbmUuYy0xOTM0LVxcdFxcdFxcdCAgICAgIGlfc2l6ZV9yZWFkKGlub2RlKSk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTE5NDM9aW50IGV4dDRfaW5saW5lX2RhdGFfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSwgaW50ICpoYXNfaW5saW5lKVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xOTc4LVxcdGlfc2l6ZSA9IGlub2RlLVxcdTAwM2VpX3NpemU7XFxuZnMvZXh0NC9pbmxpbmUuYzoxOTc5OlxcdGlubGluZV9zaXplID0gZXh0NF9nZXRfaW5saW5lX3NpemUoaW5vZGUpO1xcbmZzL2V4dDQvaW5saW5lLmMtMTk4MC1cXHRFWFQ0X0koaW5vZGUpLVxcdTAwM2VpX2Rpc2tzaXplID0gaV9zaXplO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxODo0OS42OTYxNTQzNzFaIiwiU2VxIjozNSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc2MDQ4Njk1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSByZWFkaW5nIHRoZSBwcm92aWRlZCB0ZXh0OlxuXG4qKkRlbHZpbmcgaW50byBgZXh0NF9nZXRfaW5saW5lX3NpemVgKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGV4dDRfZ2V0X2lubGluZV9zaXplYCBmdW5jdGlvbi4gUmlnaHQgb2ZmIHRoZSBiYXQsIEkga25vdyB0aGlzIGlzIHJlbGF0ZWQgdG8gaG93IHRoZSBleHQ0IGZpbGVzeXN0ZW0gaGFuZGxlcyBpbmxpbmVkIGRhdGEsIHdoaWNoIGlzIGEga2V5IG9wdGltaXphdGlvbiBmb3Igc21hbGxlciBmaWxlcy4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaXMgbGlrZWx5IHRvIHJldm9sdmUgYXJvdW5kIHVuZGVyc3RhbmRpbmcgaG93IGl0IGNhbGN1bGF0ZXMgdGhlIG1heGltdW0gc2l6ZSBvZiBkYXRhIHRoYXQgY2FuIGJlIGVmZmljaWVudGx5IHN0b3JlZCBkaXJlY3RseSB3aXRoaW4gdGhlIGlub2RlIGl0c2VsZiwgcmF0aGVyIHRoYW4gbmVlZGluZyBhbiBleHRlcm5hbCBkYXRhIGJsb2NrLiBJJ20gaW1tZWRpYXRlbHkgZ29pbmcgdG8gYmUgbG9va2luZyBmb3IgZmFjdG9ycyB0aGF0IGluZmx1ZW5jZSB0aGlzIHNpemU6IGlzIGl0IGJhc2VkIG9uIHRoZSBmaWxlc3lzdGVtJ3MgYmxvY2sgc2l6ZSwgdGhlIHNpemUgb2YgdGhlIGlub2RlIHN0cnVjdHVyZSBpdHNlbGYsIG9yIHBlcmhhcHMgc29tZSBkZWZpbmVkIGNvbnN0YW50cz8gSeKAmW0gZXhwZWN0aW5nIHRvIHNlZSBjaGVja3MgZm9yIHRoaW5ncyBsaWtlIHRoZSBhdmFpbGFibGUgc3BhY2Ugd2l0aGluIHRoZSBpbm9kZSBmb3IgdGhlIGRhdGEsIGFueSBvdmVyaGVhZCBhc3NvY2lhdGVkIHdpdGggaW5saW5lIG1ldGFkYXRhLCBhbmQgd2hldGhlciB0aGVyZSBhcmUgYW55IGFsaWdubWVudCBjb25zdHJhaW50cy4gSSBhbnRpY2lwYXRlIHRoYXQgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGEgc2l6ZSwgcHJlc3VtYWJseSBpbiBieXRlcywgaW5kaWNhdGluZyB0aGUgbWF4aW11bSBhbW91bnQgb2YgaW5saW5lIGRhdGEuIEknbSBhbHNvIGtlZW5seSBpbnRlcmVzdGVkIGluIGFueSBlZGdlIGNhc2VzIG9yIHBvdGVudGlhbCBvcHRpbWl6YXRpb25zIHRoZSBmdW5jdGlvbiBpbmNvcnBvcmF0ZXMsIGFzIHRoZXNlIGFyZSBvZnRlbiB0aGUgcG9pbnRzIHdoZXJlIHN1YnRsZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgY2FuIGJlIG1hZGUuIE15IG1lbnRhbCBtb2RlbCBpcyBhbHJlYWR5IHN0YXJ0aW5nIHRvIGZvcm11bGF0ZTogdGhlIGFpbSBoZXJlIGlzIHRvIG1pbmltaXplIGRpc2sgSS9PIGZvciBzbWFsbCBmaWxlcywgYW5kIHRoaXMgZnVuY3Rpb24gaXMgdGhlIGdhdGVrZWVwZXIgZm9yIGRldGVybWluaW5nIGlmIGEgZmlsZSBxdWFsaWZpZXMgZm9yIHRoaXMgb3B0aW1pemF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODM2NSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjE4OjU0LjQ1NjY0NDM1M1oiLCJTZXEiOjM2LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjYxOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZnMvZXh0NC9pbmxpbmUuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyOSxcbiAgXCJMaW5lQ291bnRcIjogMTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAyOTpcXHRzdGF0aWMgaW50IGV4dDRfZ2V0X2lubGluZV9zaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUpXFxuICAzMDpcXHR7XFxuICAzMTpcXHRcXHRpZiAoRVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfb2ZmKVxcbiAgMzI6XFx0XFx0XFx0cmV0dXJuIEVYVDRfSShpbm9kZSktXFx1MDAzZWlfaW5saW5lX3NpemU7XFxuICAzMzpcXHRcXG4gIDM0OlxcdFxcdHJldHVybiAwO1xcbiAgMzU6XFx0fVxcbiAgMzY6XFx0XFxuICAzNzpcXHRzdGF0aWMgaW50IGdldF9tYXhfaW5saW5lX3hhdHRyX3ZhbHVlX3NpemUoc3RydWN0IGlub2RlICppbm9kZSxcXG4gIDM4OlxcdFxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCBleHQ0X2lsb2MgKmlsb2MpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjE4OjU0LjQ1NjgxMjA5M1oiLCJTZXEiOjM3LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDUzMzM2MTU1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgUG90ZW50aWFsIEluZm9ybWF0aW9uIExlYWsgaW4gZXh0NCBJbmxpbmUgRGF0YSBIYW5kbGluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gU28sIGBleHQ0X2dldF9pbmxpbmVfc2l6ZWAganVzdCByZXR1cm5zIGBpX2lubGluZV9zaXplYC4gQW5kIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIGlzIGNhbGxlZC4gSXQgc3RhcnRzIGJ5IG1ha2luZyBzdXJlIHRoYXQgdGhlIHJlcXVlc3RlZCBsZW5ndGgsIGBsZW5gLCBkb2Vzbid0IGV4Y2VlZCBgaV9pbmxpbmVfc2l6ZWAuIFNvIGZhciwgc28gZ29vZCDigJMgYGxlbmAgaXMgZXNzZW50aWFsbHkgZXF1YWwgdG8gYGlfaW5saW5lX3NpemVgLiBUaGVuLCB0aGUgY29kZSBncmFicyB0aGUgbWluaW11bSBvZiBgbGVuYCBhbmQgYEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkVgLCBsZXQncyBjYWxsIGl0IGBjcF9sZW5gIGFuZCBjb3BpZXMgdGhhdCBtdWNoIGZyb20gYHJhd19pbm9kZS1cdTAwM2VpX2Jsb2NrYC5cblxuVGhlIGNvZGUgaGFzIGEgcG90ZW50aWFsIGlzc3VlIGhlcmU6IGl0IGFkanVzdHMgdGhlIGFtb3VudCBvZiBieXRlcyB0aGF0IGFyZSBiZWluZyBjb3BpZWQsIGFuZCBhZGp1c3RzIGBsZW5gLCB0aGVuIGNoZWNrcyBpZiBgbGVuYCBpcyBncmVhdGVyIHRoYW4gYGVudHJ5LVx1MDAzZWVfdmFsdWVfc2l6ZWAuIElmIHNvLCBpdCB3aWxsIGNvcHkgb25seSBgZW50cnktXHUwMDNlZV92YWx1ZV9zaXplYCBieXRlcy4gVGhlbiwgaXQgcmV0dXJucyB0aGlzIHBvdGVudGlhbGx5IGxlc3MgdGhhbiBleHBlY3RlZCBjb3B5IGxlbmd0aC5cblxuTm93LCBpZiBgY3BfbGVuYCAqaXNuJ3QqIGVxdWFsIHRvIHRoZSBvcmlnaW5hbCBgaW5saW5lX3NpemVgICh3aGljaCBpcyBgaV9pbmxpbmVfc2l6ZWApLCB0aGF0J3Mgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZy4gQmVjYXVzZSwgbGF0ZXIgb24sIGBtZW1jcHlgIGlzIHVzZWQgdG8gY29weSBgaW5saW5lX3NpemVgIGJ5dGVzIGZyb20gYGJ1ZmAgdG8gYGRhdGFfYmgtXHUwMDNlYl9kYXRhYC4gSWYgdGhlIGBleHQ0X3JlYWRfaW5saW5lX2RhdGFgIGZ1bmN0aW9uIHJldHVybmVkIGEgdmFsdWUgc21hbGxlciB0aGFuIGBpbmxpbmVfc2l6ZWAsIGBidWZgIGlzbid0IGZ1bGx5IGluaXRpYWxpemVkLiBUaGUgaW1wbGljYXRpb24gaXMgdGhhdCBpZiBgaV9pbmxpbmVfc2l6ZWAgaXMgZ3JlYXRlciB0aGFuIHRoZSBkYXRhJ3MgdHJ1ZSBzaXplLCB3ZSBjb3VsZCBlbmQgdXAgY29weWluZyB1bmluaXRpYWxpemVkIG1lbW9yeSBmcm9tIGBidWZgIHRvIGBkYXRhX2JoLVx1MDAzZWJfZGF0YWAuXG5cblRoZSBwcm9ibGVtIGlzLCB0aGUgZW50aXJlIGBkYXRhX2JoYCBpcyB0aGVuIG1hcmtlZCBhcyBkaXJ0eSBhbmQgd3JpdHRlbiB0byBkaXNrLiBBbmQgdGhhdCdzIHRoZSByZWQgZmxhZyEgVGhpcyBjb3VsZCBwb3RlbnRpYWxseSBsZWFkIHRvIGFuIGluZm9ybWF0aW9uIGxlYWsg4oCTIHVuaW5pdGlhbGl6ZWQgaGVhcCBtZW1vcnkgZW5kaW5nIHVwIG9uIHRoZSBibG9jayBkZXZpY2UuIFdhaXQsIGlzbid0IHRoYXQgcHJlY2lzZWx5IHRoZSBzb3J0IG9mIHRoaW5nIEtNU0FOIGlzIHN1cHBvc2VkIHRvIGNhdGNoPyBLTVNBTiBpcyB1c3VhbGx5IGdvb2QgYXQgZGV0ZWN0aW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzZSwgZXNwZWNpYWxseSBpZiBpdCdzIGJlaW5nIHVzZWQgaW4gY29uZGl0aW9uYWwgYnJhbmNoZXMgb3IgYmVpbmcgY29waWVkIHRvIHVzZXJzcGFjZS4gQnV0IGl0IGFsc28gaG9va3MgYmxvY2sgSS9PISBTbyB3cml0aW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHRvIGRpc2sgKmlzKiBhbiBpbmZvLWxlYWsgYW5kIEtNU0FOIHNob3VsZCBjYXRjaCBpdC5cblxuVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIG5vdyBiZWNvbWVzOiBpcyB0aGVyZSBhIHNjZW5hcmlvIHdoZXJlIGBpX2lubGluZV9zaXplYCBjYW4gYmUgbGFyZ2VyIHRoYW4gdGhlIGFjdHVhbCBpbmxpbmUgZGF0YT8gSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBpX2lubGluZV9zaXplYCBpcyBiZWluZyBzZXQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY2FuIGFjdHVhbGx5IGhhcHBlbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg4NTksIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NDIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxNzoxOTowNC45OTAxNzYyMjNaIiwiU2VxIjozOCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTMyNDYyMzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaV9pbmxpbmVfc2l6ZSA9XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4dDQvaW5saW5lLmM9MTQ1PWludCBleHQ0X2ZpbmRfaW5saW5lX2RhdGFfbm9sb2NrKHN0cnVjdCBpbm9kZSAqaW5vZGUpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTE3NS1cXHRcXHRcXHRcXHRcXHQodm9pZCAqKWV4dDRfcmF3X2lub2RlKFxcdTAwMjZpcy5pbG9jKSk7XFxuZnMvZXh0NC9pbmxpbmUuYzoxNzY6XFx0XFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfc2l6ZSA9IEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUgK1xcbmZzL2V4dDQvaW5saW5lLmMtMTc3LVxcdFxcdFxcdFxcdGxlMzJfdG9fY3B1KGlzLnMuaGVyZS1cXHUwMDNlZV92YWx1ZV9zaXplKTtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MjY4PXN0YXRpYyBpbnQgZXh0NF9jcmVhdGVfaW5saW5lX2RhdGEoaGFuZGxlX3QgKmhhbmRsZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMzI1LVxcdFxcdFxcdFxcdCAgICAgICh2b2lkICopZXh0NF9yYXdfaW5vZGUoXFx1MDAyNmlzLmlsb2MpKTtcXG5mcy9leHQ0L2lubGluZS5jOjMyNjpcXHRFWFQ0X0koaW5vZGUpLVxcdTAwM2VpX2lubGluZV9zaXplID0gbGVuICsgRVhUNF9NSU5fSU5MSU5FX0RBVEFfU0laRTtcXG5mcy9leHQ0L2lubGluZS5jLTMyNy1cXHRleHQ0X2NsZWFyX2lub2RlX2ZsYWcoaW5vZGUsIEVYVDRfSU5PREVfRVhURU5UUyk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTMzNz1zdGF0aWMgaW50IGV4dDRfdXBkYXRlX2lubGluZV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTM5NS1cXHRcXHRcXHRcXHQgICAgICAodm9pZCAqKWV4dDRfcmF3X2lub2RlKFxcdTAwMjZpcy5pbG9jKSk7XFxuZnMvZXh0NC9pbmxpbmUuYzozOTY6XFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfc2l6ZSA9IEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUgK1xcbmZzL2V4dDQvaW5saW5lLmMtMzk3LVxcdFxcdFxcdFxcdGxlMzJfdG9fY3B1KGlzLnMuaGVyZS1cXHUwMDNlZV92YWx1ZV9zaXplKTtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9NDM3PXN0YXRpYyBpbnQgZXh0NF9kZXN0cm95X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy00OTMtXFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfb2ZmID0gMDtcXG5mcy9leHQ0L2lubGluZS5jOjQ5NDpcXHRFWFQ0X0koaW5vZGUpLVxcdTAwM2VpX2lubGluZV9zaXplID0gMDtcXG5mcy9leHQ0L2lubGluZS5jLTQ5NS1cXHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTEwNzQ9c3RhdGljIGludCBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBleHQ0X2ZzYmxrX3QgYmxvY2ssXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTExNjktXFx0XFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfb2ZmID0gMDtcXG5mcy9leHQ0L2lubGluZS5jOjExNzA6XFx0XFx0RVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfc2l6ZSA9IDA7XFxuZnMvZXh0NC9pbmxpbmUuYy0xMTcxLVxcdFxcdGV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTtcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTk0Mz1pbnQgZXh0NF9pbmxpbmVfZGF0YV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTIwMzAtXFxuZnMvZXh0NC9pbmxpbmUuYzoyMDMxOlxcdFxcdEVYVDRfSShpbm9kZSktXFx1MDAzZWlfaW5saW5lX3NpemUgPSBpX3NpemUgXFx1MDAzY1xcbmZzL2V4dDQvaW5saW5lLmMtMjAzMi1cXHRcXHRcXHRcXHRcXHRFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFID9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTc6MTk6MDYuNTQzNDI4ODQyWiIsIlNlcSI6MzksIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4NDcyMDQ5MzYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKktNU0FOIEFzc2Vzc21lbnQ6IElubGluZSBEYXRhIENvbnZlcnNpb24gRml4KipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBnb2FsIGhlcmUgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgaXNzdWVzIHRoYXQgS01TQU4gKEtlcm5lbCBNZW1vcnkgU2FuaXRpemVyKSBzaG91bGQgYmUgY29uY2VybmVkIHdpdGguIFRoZSBwYXRjaCBpcyBhYm91dCBzYWZlbHkgaGFuZGxpbmcgdGhlIGNvbnZlcnNpb24gb2YgZXh0NCBpbmxpbmUgZGF0YSB0byBhIHJlZ3VsYXIgYmxvY2ssIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIGEgZGF0YSBsb3NzIHNjZW5hcmlvLlxuXG5Jbml0aWFsbHksIEkgc2VlIHRoYXQgYEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfc2l6ZWAgaXMgY2FsY3VsYXRlZC4gSXQncyBidWlsdCBmcm9tIGBFWFQ0X01JTl9JTkxJTkVfREFUQV9TSVpFYCBhbmQgdGhlIGBlX3ZhbHVlX3NpemVgIG9mIGFuIHhhdHRyIGVudHJ5LiBJIG1hZGUgc3VyZSB0byBub3RlIHRoYXQgYGV4dDRfcmVhZF9pbmxpbmVfZGF0YWAgaXMgYWx3YXlzIGRlc2lnbmVkIHRvIHJlYWQgZXhhY3RseSB0aGlzIHNpemUuIENvcnJ1cHRlZCB4YXR0ciBlbnRyaWVzIGFyZSBoYW5kbGVkLCBhbmQgYSBgbWluX3RgIGlzIHVzZWQgdG8gZW5zdXJlIHRoZSByaWdodCBzaXplIGlzIHJlYWQuXG5cblRoZSBjb3JlIG9mIHRoZSBmaXggaXMgdG8gYXZvaWQgZGVzdHJveWluZyB0aGUgaW5saW5lIGRhdGEgYW5kIHRoZW4sIGlmIGFsbG9jYXRpb24gZmFpbHMsIGhhdmluZyB0byAqcmUqLXJlc3RvcmUgaXQsIHdoaWNoIGNvdWxkIGZhaWwuICBUaGUgcGF0Y2ggbm93OlxuXG4xLiAgQWxsb2NhdGVzIGEgKm5ldyogYmxvY2suXG4yLiAgSW5pdGlhbGl6ZXMgdGhhdCBuZXcgYmxvY2sgKHplcm9lcyBpdCBvdXQpLlxuMy4gIENvcGllcyB0aGUgZXhpc3RpbmcgaW5saW5lIGRhdGEgaW50byB0aGUgKm5ldyogYmxvY2suXG40LiAgQXRvbWljYWxseSBzd2l0Y2hlcyB0aGUgaW5vZGUgdG8gdXNlIHRoZSAqbmV3KiBibG9jay5cblxuRXNzZW50aWFsbHksIHRoZXJlIGlzIG5vIG1vcmUg4oCcZGVzdHJveSBhbmQgcG90ZW50aWFsbHkgZmFpbCB0byByZXN0b3Jl4oCdLiBUaGlzIHJlZHVjZXMgdGhlIHdpbmRvdyBvZiBwb3NzaWJsZSBkYXRhIGxvc3MuIFRoZSBvbGQgY29kZSBoYWQgdG8gY3JlYXRlIHRoZSBpbmxpbmUgZGF0YSwgYW5kIHRoZW4gaXQgd291bGQgcmVhZCBpbmxpbmUgZGF0YSB3aGljaCBoYWQgaXNzdWVzIHdoZXJlIGl0IGNvdWxkIGJlIGNvcnJ1cHRlZC5cblxuTXkgcHJpbWFyeSBjb25jZXJuIGlzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBMZXQncyBtYWtlIHN1cmUgdGhhdCBub3RoaW5nIGlzIGJlaW5nIHJlYWQgZnJvbSB1bmluaXRpYWxpemVkIG1lbW9yeSBsb2NhdGlvbnMgb3IgZXhwb3NlZCBhcyBzdWNoLlxuXG4xLiAgKipgaW5vZGVfYnVmYCoqOiAgVGhpcyBpcyBhbGxvY2F0ZWQgdXNpbmcgYGttYWxsb2MoaW5vZGVfc2l6ZSwgR0ZQX05PRlMpYC4gIGBpbm9kZV9zaXplYCBpcyBjYWxjdWxhdGVkIGZyb20gYEVYVDRfSU5PREVfU0laRShpbm9kZS1cdTAwM2VpX3NiKWAuICBUaGUgcGF0Y2ggYG1lbWNweWAgKmNvcGllcyogdGhlIGNvbnRlbnRzIG9mIHRoZSByYXcgaW5vZGUgZGF0YSBpbnRvIGBpbm9kZV9idWZgLiAgU28gYGlub2RlX2J1ZmAgYmVjb21lcyBmdWxseSBpbml0aWFsaXplZC4gIFRoZSBjaGVjayBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvcHkgKmludG8qIGBpbm9kZV9idWZgIGlzIHNhZmUuXG4yLiAgKipgZGF0YV9iaC1cdTAwM2ViX2RhdGFgOioqICBUaGlzIGJ1ZmZlciBoZWFkIGlzIGFsbG9jYXRlZCwgYW5kIHRoZW4gaXRzIGRhdGEgaXMgZXhwbGljaXRseSB6ZXJvZWQgd2l0aCBgbWVtc2V0KGRhdGFfYmgtXHUwMDNlYl9kYXRhLCAwLCBpbm9kZS1cdTAwM2VpX3NiLVx1MDAzZXNfYmxvY2tzaXplKTtgLiAgVGhpcyBlbnN1cmVzIGV2ZXJ5dGhpbmcgd3JpdHRlbiBpbnRvIHRoaXMgZGF0YSBibG9jayBpcyBpbml0aWFsaXplZC5cbjMuICAqKmBleHQ0X3NldF9pbmxpbmVfZGF0YV9ibG9ja2A6KiogSSB0aGVuIGNoZWNrZWQgdGhlIGNvZGUgZm9yIHplcm9pbmcgYW5kIGluaXRpYWxpemluZyBpbiB0aGUgYGV4dDRfc2V0X2lubGluZV9kYXRhX2Jsb2NrYC4gSW4gdGhlIG5ldyBjb2RlLCBgbWVtc2V0KCh2b2lkICopcmF3X2lub2RlLVx1MDAzZWlfYmxvY2ssIDAsIEVYVDRfTUlOX0lOTElORV9EQVRBX1NJWkUpO2AgZXhwbGljaXRseSB6ZXJvZXMgdGhlIGlubGluZSBkYXRhIHNwYWNlLiBUaGVuLCBpZiBleHRlbnRzIGFyZSBlbmFibGVkLCBgZXh0NF9leHRfdHJlZV9pbml0YCBpbml0aWFsaXplcyB0aGUgZXh0ZW50IHRyZWUgcm9vdC4gTGF0ZXIgY29kZSBpbml0aWFsaXplcyBhbmQgaW5zZXJ0cyBleHRlbnRzLiBJZiBhbGwgb2YgdGhpcyBmYWlscywgdGhlIG9yaWdpbmFsIGRhdGEgaXMgcmVzdG9yZWQgZnJvbSB0aGUgZnVsbHkgaW5pdGlhbGl6ZWQgYGlub2RlX2J1ZmAuXG40LiAgKipLTVNBTiBSdWxlcyoqOiAgSSB3ZW50IHRocm91Z2ggdGhlIHN0YW5kYXJkIEtNU0FOIHJ1bGUgc2V0OlxuXG4gICAgKiAgIE5vIGtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSB3aXRoIHBvc3NpYmx5IHVuaW5pdGlhbGl6ZWQgZmllbGRzIChubyB1c2VyIHNwYWNlIGludGVyYWN0aW9uKS5cbiAgICAqICAgTm8gY29uZGl0aW9uYWwgbG9naWMvYnJhbmNoaW5nIHRoYXQgcmVsaWVzIG9uIHBvc3NpYmx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLlxuICAgICogICBObyBhbGxvY2F0aW9uIG9mIGNvbXBsZXggc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkcyBjb3VsZCBiZSByZWFkIGxhdGVyIChldmVyeXRoaW5nIGlzIGluaXRpYWxpemVkIHZpYSBgbWVtY3B5YCBvciBgbWVtc2V0YCkuXG4gICAgKiAgIE5vIGJvdW5kcyBjaGVja3Mgb3IgbGVuZ3RocyB0aGF0IHdvdWxkIGFsbG93IGFjY2Vzc2luZyB1bmluaXRpYWxpemVkIGJ5dGVzIChub3QgcHJlc2VudCkuXG5cbiAgICBUaGVyZWZvcmUsIEtNU0FOIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5IGhlcmUuXG5cbjUuICAqKkRhdGEgU3RydWN0dXJlcyBDaGVjayoqOiBJIG1hZGUgc3VyZSB0aGF0IHRoZXJlIHdlcmUgbm8gaXNzdWVzIHdpdGggYGV4dDRfbWJfbmV3X2Jsb2Nrc2AgcmV0dXJuaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IG9yIGFueSBpc3N1ZXMgd2l0aCBgZXh0NF94YXR0cl9pYm9keV9maW5kYCBvciBgZXh0NF94YXR0cl9pbmZvYC4gVGhpcyB3YXMgZG9uZSBieSBjaGVja2luZyB3aGVyZSBgYXJgLCBgaXNgLCBgaWAsIGFuZCBgZGF0YV9iaGAgd2VyZSBmdWxseSBpbml0aWFsaXplZC5cblxuVGhlIHBhdGNoIGlzIGEgKmxvZ2ljYWwqIGZpeDsgaXQgYWRkcmVzc2VzIGEgcmFjZSBjb25kaXRpb24uIEl0ICpkb2VzKiBub3QgaW50cm9kdWNlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzc3Vlcy4gIFRoZSBuZXcgYmxvY2sgYWxsb2NhdGlvbiBpcyBpbml0aWFsaXplZCwgYW5kIGV4aXN0aW5nIGRhdGEgaXMgY29waWVkLiAgQW55IG1lbW9yeSBjb3JydXB0aW9uIHdvdWxkIGxpa2VseSBiZSBjYXVnaHQgYnkgS0FTQU4gKEtlcm5lbCBBZGRyZXNzIFNhbml0aXplcikuIE5vIEtNU0FOLXNwZWNpZmljIGNoZWNrcyBhcmUgbmVjZXNzYXJ5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTAxOCwiT3V0cHV0VG9rZW5zIjoyMDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODAxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDE3OjE5OjM1LjAxNTQ4MTcwM1oiLCJTZXEiOjQwLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVmYWN0b3JzIHRoZSBjb252ZXJzaW9uIG9mIGV4dDQgaW5saW5lIGRhdGEgdG8gYSBkZWRpY2F0ZWQgYmxvY2sgdG8gcHJldmVudCBkYXRhIGxvc3Mgb24gYWxsb2NhdGlvbiBmYWlsdXJlLiBJdCBhbGxvY2F0ZXMgYSBuZXcgYmxvY2ssIHplcm9lcyBpdCwgY29waWVzIHRoZSBpbmxpbmUgZGF0YSwgYW5kIHRoZW4gdXBkYXRlcyB0aGUgaW5vZGUuIEFsbCBuZXdseSBhbGxvY2F0ZWQgbWVtb3J5IChgaW5vZGVfYnVmYCwgYGJ1ZmAsIGBkYXRhX2JoLVxcdTAwM2ViX2RhdGFgKSBpcyBmdWxseSBpbml0aWFsaXplZCB2aWEgYG1lbWNweWAgZnJvbSBleGlzdGluZyBpbml0aWFsaXplZCBkYXRhIG9yIGBtZW1zZXRgIHRvIHplcm8uIFN0YWNrIHZhcmlhYmxlcyAoYGFyYCwgYGlzYCwgYGlgLCBgbmV3ZXhgKSBhcmUgZnVsbHkgemVyby1pbml0aWFsaXplZCBlaXRoZXIgdmlhIGBtZW1zZXRgIG9yIGJyYWNlLWVuY2xvc2VkIGluaXRpYWxpemVycy4gVGhlcmUgaXMgbm8gZXhwb3N1cmUgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdG8gdXNlciBzcGFjZSBvciBkaXNrLCBhbmQgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgaXMgdXNlZCBpbiBjb250cm9sIGZsb3cuIEFueSBwb3RlbnRpYWwgbWVtb3J5IGVycm9ycyAobGlrZSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIG9yIHVzZS1hZnRlci1mcmVlKSB3b3VsZCBiZSBjYXVnaHQgYnkgS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVmYWN0b3JzIHRoZSBjb252ZXJzaW9uIG9mIGV4dDQgaW5saW5lIGRhdGEgdG8gYSBkZWRpY2F0ZWQgYmxvY2sgdG8gcHJldmVudCBkYXRhIGxvc3Mgb24gYWxsb2NhdGlvbiBmYWlsdXJlLiBJdCBhbGxvY2F0ZXMgYSBuZXcgYmxvY2ssIHplcm9lcyBpdCwgY29waWVzIHRoZSBpbmxpbmUgZGF0YSwgYW5kIHRoZW4gdXBkYXRlcyB0aGUgaW5vZGUuIEFsbCBuZXdseSBhbGxvY2F0ZWQgbWVtb3J5IChgaW5vZGVfYnVmYCwgYGJ1ZmAsIGBkYXRhX2JoLVxcdTAwM2ViX2RhdGFgKSBpcyBmdWxseSBpbml0aWFsaXplZCB2aWEgYG1lbWNweWAgZnJvbSBleGlzdGluZyBpbml0aWFsaXplZCBkYXRhIG9yIGBtZW1zZXRgIHRvIHplcm8uIFN0YWNrIHZhcmlhYmxlcyAoYGFyYCwgYGlzYCwgYGlgLCBgbmV3ZXhgKSBhcmUgZnVsbHkgemVyby1pbml0aWFsaXplZCBlaXRoZXIgdmlhIGBtZW1zZXRgIG9yIGJyYWNlLWVuY2xvc2VkIGluaXRpYWxpemVycy4gVGhlcmUgaXMgbm8gZXhwb3N1cmUgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdG8gdXNlciBzcGFjZSBvciBkaXNrLCBhbmQgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgaXMgdXNlZCBpbiBjb250cm9sIGZsb3cuIEFueSBwb3RlbnRpYWwgbWVtb3J5IGVycm9ycyAobGlrZSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIG9yIHVzZS1hZnRlci1mcmVlKSB3b3VsZCBiZSBjYXVnaHQgYnkgS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcqgw9[1] Phase: Succeeded StartedAt: 2026-08-22 17:19:44 +0000 UTC FinishedAt: 2026-08-22 17:19:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-22 17:19:44 +0000 UTC FinishedAt: 2026-08-22 17:19:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2] Phase: Running StartedAt: 2026-08-22 17:19:44 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Running StartedAt: 2026-08-22 17:19:44 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-22 17:19:44 +0000 UTC FinishedAt: 2026-08-22 17:19:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-22 17:19:44 +0000 UTC FinishedAt: 2026-08-22 17:19:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcqgw9/series-workflowcqgw9-convert-artifact-322765868/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-22 17:19:54 +0000 UTC FinishedAt: 2026-08-22 17:36:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-22 17:19:54 +0000 UTC FinishedAt: 2026-08-22 17:36:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*1d2ac5ad-1dc8-4607-9124-058f38e845a6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcqgw9/series-workflowcqgw9-convert-artifact-322765868/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "5b2bf077-c4e8-4d28-bc3d-40c61a6ab82b", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcqgw9/series-workflowcqgw9-build-action-3707767386/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-22 17:19:54 +0000 UTC FinishedAt: 2026-08-22 17:36:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*1d2ac5ad-1dc8-4607-9124-058f38e845a6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcqgw9/series-workflowcqgw9-convert-artifact-322765868/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "5b2bf077-c4e8-4d28-bc3d-40c61a6ab82b", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcqgw9/series-workflowcqgw9-build-action-3707767386/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-22 17:36:38 +0000 UTC FinishedAt: 2026-08-22 17:36:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-22 17:36:38 +0000 UTC FinishedAt: 2026-08-22 17:36:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-22 17:36:38 +0000 UTC FinishedAt: 2026-08-22 17:36:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-22 17:36:38 +0000 UTC FinishedAt: 2026-08-22 17:36:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcqgw9/series-workflowcqgw9-convert-artifact-3546368235/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-22 17:36:49 +0000 UTC FinishedAt: 2026-08-22 17:38:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-22 17:36:49 +0000 UTC FinishedAt: 2026-08-22 17:38:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5b2bf077-c4e8-4d28-bc3d-40c61a6ab82b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcqgw9/series-workflowcqgw9-build-action-3707767386/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-22 17:38:33 +0000 UTC FinishedAt: 2026-08-22 17:38:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-22 17:38:33 +0000 UTC FinishedAt: 2026-08-22 17:38:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-22 17:38:33 +0000 UTC FinishedAt: 2026-08-22 17:55:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-22 17:38:33 +0000 UTC FinishedAt: 2026-08-22 17:55:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*1d2ac5ad-1dc8-4607-9124-058f38e845a6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcqgw9/series-workflowcqgw9-convert-artifact-3546368235/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "107132b2-5588-4b4b-a54b-a764b5aafcd4", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcqgw9/series-workflowcqgw9-build-action-831948303/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-22 17:38:33 +0000 UTC FinishedAt: 2026-08-22 17:55:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*1d2ac5ad-1dc8-4607-9124-058f38e845a6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcqgw9/series-workflowcqgw9-convert-artifact-3546368235/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "107132b2-5588-4b4b-a54b-a764b5aafcd4", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcqgw9/series-workflowcqgw9-build-action-831948303/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-22 17:55:27 +0000 UTC FinishedAt: 2026-08-22 17:55:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-22 17:55:27 +0000 UTC FinishedAt: 2026-08-22 17:55:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Running StartedAt: 2026-08-22 17:55:27 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcqgw9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data","ext4_try_add_inline_entry"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"934753d26f1ed7fadeedf1b9e7df6fe75de303e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"0b80c867-ae88-4ce4-94e8-8aa06be5eea2","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Running StartedAt: 2026-08-22 17:55:27 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*107132b2-5588-4b4b-a54b-a764b5aafcd4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcqgw9/series-workflowcqgw9-build-action-831948303/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil