Name: series-workflow2ppdw Phase: Succeeded StartedAt: 2026-08-07 02:35:34 +0000 UTC FinishedAt: 2026-08-07 06:25:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[0] Phase: Succeeded StartedAt: 2026-08-07 02:35:34 +0000 UTC FinishedAt: 2026-08-07 02:40:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[0].run-triage Phase: Succeeded StartedAt: 2026-08-07 02:35:34 +0000 UTC FinishedAt: 2026-08-07 02:40:40 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_SERIAL", "USB_SERIAL_SPCP8X5" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_SERIAL", "USB_SERIAL_SPCP8X5" ], "series_id": "979cda44-1bdc-45e3-bdeb-b33a64f6d551" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "spcp8x5_open", "spcp8x5_dtr_rts", "spcp8x5_set_termios", "spcp8x5_tiocmget", "spcp8x5_tiocmset" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9TRVJJQUwmIzM0OywKICAgICYjMzQ7VVNCX1NFUklBTF9TUENQOFg1JiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3BjcDh4NV9vcGVuJiMzNDssCiAgICAmIzM0O3NwY3A4eDVfZHRyX3J0cyYjMzQ7LAogICAgJiMzNDtzcGNwOHg1X3NldF90ZXJtaW9zJiMzNDssCiAgICAmIzM0O3NwY3A4eDVfdGlvY21nZXQmIzM0OywKICAgICYjMzQ7c3BjcDh4NV90aW9jbXNldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZW1vdmVzIHRoZSBjdXN0b20gYHNwY3A4eDVfY2Fycmllcl9yYWlzZWRgIGZ1bmN0aW9uIGZyb20gdGhlIFVTQiBzZXJpYWwgZHJpdmVyLCBmYWxsaW5nIGJhY2sgdG8gdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIFVTQiBzZXJpYWwgY29yZSAod2hpY2ggYWx3YXlzIHJldHVybnMgMSkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgdGhlIFRUWSBwb3J0IG9wZW4gYW5kIGJsb2NraW5nIGJlaGF2aW9yLiBGdXp6aW5nIHRoZSBkcml2ZXImIzM5O3MgcmVtYWluaW5nIFRUWSBvcGVyYXRpb25zIGlzIHJlY29tbWVuZGVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciB1bmV4cGVjdGVkIGJlaGF2aW9ycyBvY2N1ciBkdWUgdG8gdGhpcyBjaGFuZ2UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwNjg0M2NhNzE1OTdhNTcwN2M2NjU1MmM5YmQxMTIxYTE5NDMxZmFmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgNyAwMjozOToxNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1xuaW5kZXggYzExZDY0YmYwOGZiYS4uZjYxMGFlZjZiZjU5YiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmNcbkBAIC0yMzUsMTggJiM0MzsyMzUsNiBAQCBzdGF0aWMgdm9pZCBzcGNwOHg1X3NldF93b3JrX21vZGUoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgdTE2IHZhbHVlLFxuIFx0XHRkZXZfZXJyKFx1MDAyNnBvcnQtXHUwMDNlZGV2LCBcJiMzNDtmYWlsZWQgdG8gc2V0IHdvcmsgbW9kZTogJWRcXG5cJiMzNDssIHJldCk7XG4gfVxuIFxuLXN0YXRpYyBpbnQgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxuLXtcbi1cdHU4IG1zcjtcbi1cdGludCByZXQ7XG4tXG4tXHRyZXQgPSBzcGNwOHg1X2dldF9tc3IocG9ydCwgXHUwMDI2bXNyKTtcbi1cdGlmIChyZXQgfHwgbXNyIFx1MDAyNiBNU1JfU1RBVFVTX0xJTkVfRENEKVxuLVx0XHRyZXR1cm4gMTtcbi1cbi1cdHJldHVybiAwO1xuLX1cbi1cbiBzdGF0aWMgdm9pZCBzcGNwOHg1X2R0cl9ydHMoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IG9uKVxuIHtcbiBcdHN0cnVjdCBzcGNwOHg1X3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7XG5AQCAtNDU4LDcgJiM0Mzs0NDYsNiBAQCBzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIHNwY3A4eDVfZGV2aWNlID0ge1xuIFx0Lm51bV9idWxrX291dFx0XHQ9IDEsXG4gXHQub3Blblx0XHRcdD0gc3BjcDh4NV9vcGVuLFxuIFx0LmR0cl9ydHNcdFx0PSBzcGNwOHg1X2R0cl9ydHMsXG4tXHQuY2Fycmllcl9yYWlzZWRcdFx0PSBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkLFxuIFx0LnNldF90ZXJtaW9zXHRcdD0gc3BjcDh4NV9zZXRfdGVybWlvcyxcbiBcdC5pbml0X3Rlcm1pb3NcdFx0PSBzcGNwOHg1X2luaXRfdGVybWlvcyxcbiBcdC50aW9jbWdldFx0XHQ9IHNwY3A4eDVfdGlvY21nZXQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9TRVJJQUwmIzM0OywKICAgICYjMzQ7VVNCX1NFUklBTF9TUENQOFg1JiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3BjcDh4NV9vcGVuJiMzNDssCiAgICAmIzM0O3NwY3A4eDVfZHRyX3J0cyYjMzQ7LAogICAgJiMzNDtzcGNwOHg1X3NldF90ZXJtaW9zJiMzNDssCiAgICAmIzM0O3NwY3A4eDVfdGlvY21nZXQmIzM0OywKICAgICYjMzQ7c3BjcDh4NV90aW9jbXNldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZW1vdmVzIHRoZSBjdXN0b20gYHNwY3A4eDVfY2Fycmllcl9yYWlzZWRgIGZ1bmN0aW9uIGZyb20gdGhlIFVTQiBzZXJpYWwgZHJpdmVyLCBmYWxsaW5nIGJhY2sgdG8gdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIFVTQiBzZXJpYWwgY29yZSAod2hpY2ggYWx3YXlzIHJldHVybnMgMSkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgdGhlIFRUWSBwb3J0IG9wZW4gYW5kIGJsb2NraW5nIGJlaGF2aW9yLiBGdXp6aW5nIHRoZSBkcml2ZXImIzM5O3MgcmVtYWluaW5nIFRUWSBvcGVyYXRpb25zIGlzIHJlY29tbWVuZGVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciB1bmV4cGVjdGVkIGJlaGF2aW9ycyBvY2N1ciBkdWUgdG8gdGhpcyBjaGFuZ2UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAwNjg0M2NhNzE1OTdhNTcwN2M2NjU1MmM5YmQxMTIxYTE5NDMxZmFmCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBBdWcgNyAwMjozOToxNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jCmluZGV4IGMxMWQ2NGJmMDhmYmEuLmY2MTBhZWY2YmY1OWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYwpAQCAtMjM1LDE4ICYjNDM7MjM1LDYgQEAgc3RhdGljIHZvaWQgc3BjcDh4NV9zZXRfd29ya19tb2RlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHUxNiB2YWx1ZSwKIAkJZGV2X2VycigmYW1wO3BvcnQtJmd0O2RldiwgJiMzNDtmYWlsZWQgdG8gc2V0IHdvcmsgbW9kZTogJWRcbiYjMzQ7LCByZXQpOwogfQogCi1zdGF0aWMgaW50IHNwY3A4eDVfY2Fycmllcl9yYWlzZWQoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKLXsKLQl1OCBtc3I7Ci0JaW50IHJldDsKLQotCXJldCA9IHNwY3A4eDVfZ2V0X21zcihwb3J0LCAmYW1wO21zcik7Ci0JaWYgKHJldCB8fCBtc3IgJmFtcDsgTVNSX1NUQVRVU19MSU5FX0RDRCkKLQkJcmV0dXJuIDE7Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHZvaWQgc3BjcDh4NV9kdHJfcnRzKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBvbikKIHsKIAlzdHJ1Y3Qgc3BjcDh4NV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOwpAQCAtNDU4LDcgJiM0Mzs0NDYsNiBAQCBzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIHNwY3A4eDVfZGV2aWNlID0gewogCS5udW1fYnVsa19vdXQJCT0gMSwKIAkub3BlbgkJCT0gc3BjcDh4NV9vcGVuLAogCS5kdHJfcnRzCQk9IHNwY3A4eDVfZHRyX3J0cywKLQkuY2Fycmllcl9yYWlzZWQJCT0gc3BjcDh4NV9jYXJyaWVyX3JhaXNlZCwKIAkuc2V0X3Rlcm1pb3MJCT0gc3BjcDh4NV9zZXRfdGVybWlvcywKIAkuaW5pdF90ZXJtaW9zCQk9IHNwY3A4eDVfaW5pdF90ZXJtaW9zLAogCS50aW9jbWdldAkJPSBzcGNwOHg1X3Rpb2NtZ2V0LAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzQxCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgc3BjcDh4NSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0YXJnZXRpbmcgdGhlIGBzcGNwOHg1YCBVU0Igc2VyaWFsIGRyaXZlci4gTXkgaW5pdGlhbCBvYnNlcnZhdGlvbiBpcyB0aGF0IGl0JiMzOTtzIHJlbW92aW5nIHRoZSBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgZnVuY3Rpb24gYW5kLCBpbXBvcnRhbnRseSwgdGhlIGFzc2lnbm1lbnQgb2YgdGhhdCBmdW5jdGlvbiB0byB0aGUgYC5jYXJyaWVyX3JhaXNlZGAgZmllbGQgd2l0aGluIHRoZSBgc3BjcDh4NV9kZXZpY2VgIHN0cnVjdHVyZS4gVGhhdCYjMzk7cyBhIGRpcmVjdCBmdW5jdGlvbmFsIGNoYW5nZS4gQnkgcmVtb3ZpbmcgdGhhdCBhc3NpZ25tZW50LCB3ZSYjMzk7cmUgZWZmZWN0aXZlbHkgdGVsbGluZyB0aGUgVVNCIHNlcmlhbCBjb3JlIHRvIGVpdGhlciBmYWxsIGJhY2sgdG8gaXRzIGRlZmF1bHQgY2Fycmllci1yYWlzZWQgYmVoYXZpb3IsIG9yIG5vIGJlaGF2aW9yIGF0IGFsbCwgZm9yIHRoaXMgc3BlY2lmaWMgZGV2aWNlLgoKSSBuZWVkIHRvIGRpdmUgaW50byBgZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY2AgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgY2hhbmdlLiBJcyB0aGlzIGEgZGVsaWJlcmF0ZSBzaW1wbGlmaWNhdGlvbiwgYSBidWcgZml4LCBvciBhIG1pZ3JhdGlvbiB0byBhIGRpZmZlcmVudCBtZWNoYW5pc20gd2l0aGluIHRoZSBzZXJpYWwgY29yZT8gV2hhdCYjMzk7cyB0aGUgY29udGV4dCBvZiBob3cgdGhpcyBkZXZpY2UgaGFuZGxlcyBjYXJyaWVyIGRldGVjdD8gUmVtb3ZpbmcgYSBoYW5kbGVyIG1lYW5zIHRoZXJlJiMzOTtzIGFub3RoZXIgbWV0aG9kIG5vdy4gTmVlZCB0byBkZXRlcm1pbmUgaG93IHRoZSBjYXJyaWVyIHNpZ25hbCBpcyBub3cgYmVpbmcgaGFuZGxlZCBpbiB0aGUgVVNCIHNlcmlhbCBjb3JlIGZvciB0aGlzIHNwZWNpZmljIGRldmljZS4gVGhlIHBhdGNoIGFsb25lIGlzbiYjMzk7dCBlbm91Z2g7IEkgbmVlZCB0aGUgc3Vycm91bmRpbmcgY29kZSBmb3IgYSBwcm9wZXIgYXNzZXNzbWVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzcGNwOHg1X2RldmljZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYz00MTI9c3RhdGljIGludCBzcGNwOHg1X3Rpb2NtZ2V0KHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpXG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00MzgtXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjQzOTpzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIHNwY3A4eDVfZGV2aWNlID0ge1xuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NDAtXHQuZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM9NDU4PXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgKiBjb25zdCBzZXJpYWxfZHJpdmVyc1tdID0ge1xuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzo0NTk6XHRcdTAwMjZzcGNwOHg1X2RldmljZSwgTlVMTFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NjAtfTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTY0CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKktjb25maWcgSW5zcGVjdGlvbiBmb3Igc3BjcDh4NS5jKioKCk9rYXksIHRpbWUgdG8gZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSByZWxhdGVkIHRvIGBzcGNwOHg1LmNgLiBUaGlzIGlzIHRoZSBzdGFuZGFyZCBmaXJzdCBzdGVwIHdoZW4gSSYjMzk7bSBsb29raW5nIHRvIHVuZGVyc3RhbmQgaG93IGEgZHJpdmVyIG9yIG1vZHVsZSBpcyBjb25maWd1cmVkIHdpdGhpbiB0aGUga2VybmVsIGJ1aWxkIHN5c3RlbS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBvcHRpb25zIGNvbnRyb2wgaXRzIGluY2x1c2lvbiwgd2hhdCBkZXBlbmRlbmNpZXMgaXQgbWlnaHQgaGF2ZSBvbiBvdGhlciBmZWF0dXJlcyBvciBoYXJkd2FyZSwgYW5kIHdoYXQgZGVmYXVsdCBzZXR0aW5ncyBhcmUgYXBwbGllZC4gVGhpcyB3aWxsIHRlbGwgbWUgYSBsb3QgYWJvdXQgaXRzIGludGVuZGVkIHVzYWdlIGFuZCBhbnkgYnVpbGQtdGltZSBjb25zdHJhaW50cy4gSeKAmW0gZXhwZWN0aW5nIHRvIHNlZSB0aGluZ3MgbGlrZSBgQ09ORklHX1NQQ1A4WDVgIG9wdGlvbnMgYW5kIGFzc29jaWF0ZWQgZGVwZW5kZW5jaWVzLCBwb3RlbnRpYWxseSByZWxhdGluZyB0byBjbG9jayBjb25maWd1cmF0aW9ucyBvciBzcGVjaWZpYyBoYXJkd2FyZSBwbGF0Zm9ybXMuIEkmIzM5O2xsIGJlIGxvb2tpbmcgYXQgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiBhbnkgZGVwZW5kZW5jaWVzIGFzIHdlbGwuIEkgd2FudCB0byBzZWUgaWYgdGhpcyBpcyB0aWVkIHRvIHNwZWNpZmljIGhhcmR3YXJlLCBhcmNoaXRlY3R1cmUsIG9yIGV2ZW4ganVzdCBhIGdlbmVyYWwgY2F0ZWdvcnkgb2YgZGV2aWNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NwY3A4eDUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZz00ODU9Y29uZmlnIFVTQl9TRVJJQUxfU1BDUDhYNVxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ4Ny1cdGhlbHBcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ4ODpcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIHNwY3A4eDUgY29udmVydGVyIGNoaXAuICBUaGlzIGlzXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00ODktXHQgIGNvbW1vbmx5IGZvdW5kIGluIHNvbWUgWi1XYXZlIFVTQiBkZXZpY2VzLlxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ5MS1cdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0OTI6XHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzcGNwOHg1LlxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDkzLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzOTgKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBzcGNwOHg1IFVTQiBTZXJpYWwgRHJpdmVyIENoYW5nZSoqCgpPa2F5LCBzbyB0aGUgY29uZmlnIG9wdGlvbiBpcyBgVVNCX1NFUklBTF9TUENQOFg1YC4gVGhlIGRpZmYgSSYjMzk7bSBsb29raW5nIGF0IHNwZWNpZmljYWxseSByZW1vdmVzIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYC4gSG1tLCBpbnRlcmVzdGluZy4gQSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBzZXJpYWwgZHJpdmVyIGFsd2F5cyB3YXJyYW50cyBhIGNsb3NlciBsb29rLiBJcyBpdCBmdXp6YWJsZT8gQWJzb2x1dGVseSwgaXQmIzM5O3MgYSBkZWZpbml0ZSAmIzM0O3llcy4mIzM0OyBOb3csIHNpbmNlIHRoYXQgZnVuY3Rpb24gaXMgZ29uZSwgd2UmIzM5O3JlIG9idmlvdXNseSBub3QgZ29pbmcgdG8gYmUgYWJsZSB0byBmb2N1cyBhbnkgZnV6emluZyBlZmZvcnRzICp0aGVyZSouCgpMZXQgbWUgc2VlLi4uIHdoYXQmIzM5O3Mgc3RpbGwgaW4gcGxheSB3aXRoaW4gdGhpcyBtb2R1bGU/IFJpZ2h0LCBgc3BjcDh4NV9vcGVuYCwgYHNwY3A4eDVfZHRyX3J0c2AsIGBzcGNwOHg1X3NldF90ZXJtaW9zYCwgYHNwY3A4eDVfaW5pdF90ZXJtaW9zYCwgYHNwY3A4eDVfdGlvY21nZXRgLCBgc3BjcDh4NV90aW9jbXNldGAsIGBzcGNwOHg1X3BvcnRfcHJvYmVgLCBhbmQgYHNwY3A4eDVfcG9ydF9yZW1vdmVgLiBPa2F5LCBnaXZlbiB0aGUgcGF0Y2gsIGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGFuZCBgc3BjcDh4NV90aW9jbXNldGAgYXJlIHRoZSBmdW5jdGlvbnMgdGhhdCBhcmUgZ29pbmcgdG8gYmUgbW9zdCBpbXBhY3RlZCBhbmQgdGhhdCBuZWVkIHRoZSBtb3N0IGF0dGVudGlvbi4gSSYjMzk7bGwgZm9jdXMgbXkgaW5pdGlhbCBmdXp6aW5nIGVmZm9ydHMgb24gdGhvc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3BjcDh4NV9vcGVuJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jPTI2MT1zdGF0aWMgdm9pZCBzcGNwOHg1X3NldF90ZXJtaW9zKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksXG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zNjUtXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjM2NjpzdGF0aWMgaW50IHNwY3A4eDVfb3BlbihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zNjcte1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM9NDM5PXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgc3BjcDh4NV9kZXZpY2UgPSB7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NDYtXHQubnVtX2J1bGtfb3V0XHRcdD0gMSxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6NDQ3Olx0Lm9wZW5cdFx0XHQ9IHNwY3A4eDVfb3BlbixcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDQ4LVx0LmR0cl9ydHNcdFx0PSBzcGNwOHg1X2R0cl9ydHMsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI2NAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipLY29uZmlnIERlcGVuZGVuY3kgRGVlcCBEaXZlIGZvciBVU0JfU0VSSUFMX1NQQ1A4WDUqKgoKT2theSwgdGltZSB0byBkaWcgaW50byB0aGUgS2NvbmZpZyBkZXBlbmRlbmNpZXMgZm9yIGBVU0JfU0VSSUFMX1NQQ1A4WDVgLiBJIG5lZWQgdG8gZW5zdXJlIHRoaXMgZHJpdmVyIGlzIGNvbmZpZ3VyZWQgY29ycmVjdGx5LiBGaXJzdCwgSSYjMzk7bSBnb2luZyB0byBwdWxsIHVwIHRoZSByZWxldmFudCBLY29uZmlnIGZpbGUgYW5kIHN0YXJ0IHRyYWNpbmcgaXRzIGRlcGVuZGVuY2llcy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB3aGljaCBvdGhlciBmZWF0dXJlcyBvciBoYXJkd2FyZSBjb21wb25lbnRzIG5lZWQgdG8gYmUgZW5hYmxlZCBiZWZvcmUgdGhpcyBvbmUgY2FuIGV2ZW4gYmUgY29uc2lkZXJlZC4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgYGRlcGVuZHMgb25gIHN0YXRlbWVudHMsIG9idmlvdXNseS4gQnV0IEkgYWxzbyBuZWVkIHRvIGJlIG1pbmRmdWwgb2YgYHNlbGVjdGAgc3RhdGVtZW50cywgYXMgdGhvc2UgY2FuIHN1YnRseSBwdWxsIGluIG90aGVyIG9wdGlvbnMgdGhhdCBtaWdodCBpbXBhY3QgdGhlIG92ZXJhbGwgY29uZmlndXJhdGlvbi4KCk15IGZvY3VzIHdpbGwgYmUgb24gdGhlIHNwZWNpZmljcyBvZiB0aGUgU1BDUDhYNSBjaGlwc2V0IGFuZCBpdHMgaW50ZWdyYXRpb24gd2l0aGluIHRoZSBsYXJnZXIgVVNCIHNlcmlhbCBmcmFtZXdvcmsuIEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgVVNCIGNvbnRyb2xsZXIgcmVxdWlyZW1lbnRzPyBXaGF0IGFib3V0IHBvd2VyIG1hbmFnZW1lbnQgb3IgY2xvY2sgY29uZmlndXJhdGlvbnMgdGhhdCB0aGlzIGRyaXZlciByZWxpZXMgdXBvbj8gSSYjMzk7bGwgaGF2ZSB0byBzZWUgaWYgYW55IG9mIGl0cyBwcmVyZXF1aXNpdGVzIGhhdmUgY29uZmxpY3RpbmcgcmVxdWlyZW1lbnRzIHdpdGggb3RoZXIgZHJpdmVycyBJJiMzOTttIGZhbWlsaWFyIHdpdGguIEkgd2lsbCBoYXZlIHRvIGNvbnNpZGVyIGFueSBjcm9zcy1kZXBlbmRlbmNpZXMgYW5kIHRoZSBpbXBhY3Qgb24gdGhlIGtlcm5lbCBidWlsZCBhcyBhIHdob2xlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVVNCX1NFUklBTF9TUENQOFg1JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc9NDc1PWNvbmZpZyBVU0JfU0VSSUFMX1FVQUxDT01NXG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDg0LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDg1OmNvbmZpZyBVU0JfU0VSSUFMX1NQQ1A4WDVcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ4Ni1cdHRyaXN0YXRlIFwmIzM0O1VTQiBTUENQOHg1IFVTQiBUbyBTZXJpYWwgRHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2NjQKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGFzIGlmIHRoZXkmIzM5O3JlIG15IG93bjoKCioqQW5hbHl6aW5nIHRoZSBLY29uZmlnIEZpbGUqKgoKQWxyaWdodCwgdGhlIG9iamVjdGl2ZSBoZXJlIGlzIHRvIHVuZGVyc3RhbmQgYSBzcGVjaWZpYyBzZWN0aW9uIG9mIHRoZSBLY29uZmlnIGZpbGUuIFRoZSBwcm9tcHQgaGFzIHplcm9lZCBpbiBvbiB0aGUgYXJlYSBhcm91bmQgbGluZSA0ODUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O09rYXksIGxldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBoYXBwZW5pbmcgdGhlcmUuJiMzNDsgSSBuZWVkIHRvIGdldCBhIGdyYXNwIG9mIHRoaXMgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHNlZ21lbnQuIERlcGVuZGluZyBvbiB3aGF0IEkgc2VlIG9uIGxpbmUgNDg1IGFuZCBhcm91bmQgaXQsIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIHNldmVyYWwga2V5IHRoaW5ncy4gSSYjMzk7bSBsaWtlbHkgaW50ZXJlc3RlZCBpbiBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgdmFsdWVzLCBwcm9tcHRzIG9yIG1lbnUgc3RydWN0dXJlcy4gSXMgaXQgYSBuZXcgZmVhdHVyZSBiZWluZyBpbnRyb2R1Y2VkPyBJcyBpdCBhIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRoYXQmIzM5O3MgYmVpbmcgcmVkZWZpbmVkIG9yIG1vZGlmaWVkPyBQZXJoYXBzIHRoZSBzdHJ1Y3R1cmUgb2YgaG93IGl0IGlzIHVzZWQuIENvbnRleHQgaXMgaW1wb3J0YW50LCBzbyBJIHdpbGwgc3RhcnQgYnkgem9vbWluZyBvdXQgYSBsaXR0bGUgYml0IHRvIGdyYXNwIHRoZSBzdXJyb3VuZGluZyBjb250ZXh0LiBMZXQmIzM5O3MgZ2V0IHRvIHdvcmsuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA0ODAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDQ4MDpcdFx0ICB1c3VhbGx5IHdpcmVsZXNzIGNlbGx1bGFyIG1vZGVtcy5cbiA0ODE6XHRcbiA0ODI6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXG4gNDgzOlx0XHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBxY3NlcmlhbC5cbiA0ODQ6XHRcbiA0ODU6XHRjb25maWcgVVNCX1NFUklBTF9TUENQOFg1XG4gNDg2Olx0XHR0cmlzdGF0ZSBcJiMzNDtVU0IgU1BDUDh4NSBVU0IgVG8gU2VyaWFsIERyaXZlclwmIzM0O1xuIDQ4NzpcdFx0aGVscFxuIDQ4ODpcdFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgc3BjcDh4NSBjb252ZXJ0ZXIgY2hpcC4gIFRoaXMgaXNcbiA0ODk6XHRcdCAgY29tbW9ubHkgZm91bmQgaW4gc29tZSBaLVdhdmUgVVNCIGRldmljZXMuXG4gNDkwOlx0XG4gNDkxOlx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxuIDQ5MjpcdFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgc3BjcDh4NS5cbiA0OTM6XHRcbiA0OTQ6XHRjb25maWcgVVNCX1NFUklBTF9TQUZFXG4gNDk1Olx0XHR0cmlzdGF0ZSBcJiMzNDtVU0IgU2FmZSBTZXJpYWwgKEVuY2Fwc3VsYXRlZCkgRHJpdmVyXCYjMzQ7XG4gNDk2Olx0XG4gNDk3Olx0Y29uZmlnIFVTQl9TRVJJQUxfU0FGRV9QQURERURcbiA0OTg6XHRcdGJvb2wgXCYjMzQ7VVNCIFNlY3VyZSBFbmNhcHN1bGF0ZWQgRHJpdmVyIC0gUGFkZGVkXCYjMzQ7XG4gNDk5Olx0XHRkZXBlbmRzIG9uIFVTQl9TRVJJQUxfU0FGRVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjI0CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIHN1bW1hcnkgZnJvbSBteSBwZXJzcGVjdGl2ZSwga2VlcGluZyBpbiBtaW5kIG15IGV4cGVydGlzZToKCioqRXhhbWluaW5nIHRoZSBVU0IgU2VyaWFsIERyaXZlciBDb25maWd1cmF0aW9uIERlcGVuZGVuY3kqKgoKQWxyaWdodCwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGlzIGRyaXZlciBjb25maWd1cmF0aW9uIGFuZCBpdCBzZWVtcyBsaWtlIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBkZXBlbmRlbmN5LiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gYFVTQl9TRVJJQUxgIGFuZCB3aGF0ZXZlciBjb25maWcgb3B0aW9uIGlzIHByb21wdGluZyB0aGlzIGludmVzdGlnYXRpb24uIE15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCBgVVNCX1NFUklBTGAgaXMgdGhlIHBhcmVudCBjb25maWcgaGVyZS4gVG8gdmVyaWZ5IHRoaXMgYW5kIHVuZGVyc3RhbmQgdGhlIHN0cnVjdHVyZSwgdGhlIGZpcnN0IHRoaW5nIEkmIzM5O2xsIGRvIGlzIGRpdmUgaW50byB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlLiBUaGF0IHdvdWxkIGJlIGBkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZ2AuIFRoaXMgZmlsZSBzaG91bGQgbGF5IG91dCB0aGUgZGVwZW5kZW5jaWVzLCBkZWZhdWx0cywgYW5kIGhlbHAgdGV4dCBmb3IgdGhpcyBzZWN0aW9uIG9mIHRoZSBVU0Igc2VyaWFsIGRyaXZlciBjb25maWd1cmF0aW9uLiBJIGV4cGVjdCB0byBmaW5kIHRoZSBjcnVjaWFsIGluZm9ybWF0aW9uIHRoZXJlIHRvIGNsYXJpZnkgdGhlIGNvbm5lY3Rpb24gYW5kIGRldGVybWluZSBob3cgdGhlc2UgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFVTQl9TRVJJQUwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjptZW51Y29uZmlnIFVTQl9TRVJJQUxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc9MjE9aWYgVVNCX1NFUklBTFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjItXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoyMzpjb25maWcgVVNCX1NFUklBTF9DT05TT0xFXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNC1cdGJvb2wgXCYjMzQ7VVNCIFNlcmlhbCBDb25zb2xlIGRldmljZSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDUtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0Njpjb25maWcgVVNCX1NFUklBTF9HRU5FUklDXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00Ny1cdGJvb2wgXCYjMzQ7VVNCIEdlbmVyaWMgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU0LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTU6Y29uZmlnIFVTQl9TRVJJQUxfU0lNUExFXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01Ni1cdHRyaXN0YXRlIFwmIzM0O1VTQiBTZXJpYWwgU2ltcGxlIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTc4LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6Nzk6Y29uZmlnIFVTQl9TRVJJQUxfQUlSQ0FCTEVcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTgwLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEFJUmNhYmxlIEJsdWV0b290aCBEb25nbGUgRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctODYtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo4Nzpjb25maWcgVVNCX1NFUklBTF9BUkszMTE2XG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy04OC1cdHRyaXN0YXRlIFwmIzM0O1VTQiBBUksgTWljcm8gMzExNiBVU0IgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTk1LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6OTY6Y29uZmlnIFVTQl9TRVJJQUxfQkVMS0lOXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy05Ny1cdHRyaXN0YXRlIFwmIzM0O1VTQiBCZWxraW4gYW5kIFBlcmFjb20gU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTEwNS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjEwNjpjb25maWcgVVNCX1NFUklBTF9DSDM0MVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTA3LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIFdpbmNoaXBoZWFkIENIMzQxIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMTQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxMTU6Y29uZmlnIFVTQl9TRVJJQUxfV0hJVEVIRUFUXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMTYtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgQ29ubmVjdFRlY2ggV2hpdGVIRUFUIFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMjQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxMjU6Y29uZmlnIFVTQl9TRVJJQUxfRElHSV9BQ0NFTEVQT1JUXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMjYtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgRGlnaSBJbnRlcm5hdGlvbmFsIEFjY2VsZVBvcnQgVVNCIFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMzUtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxMzY6Y29uZmlnIFVTQl9TRVJJQUxfQ1AyMTBYXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMzctXHR0cmlzdGF0ZSBcJiMzNDtVU0IgQ1AyMTB4IGZhbWlseSBvZiBVQVJUIEJyaWRnZSBDb250cm9sbGVyc1wmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTE0NC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjE0NTpjb25maWcgVVNCX1NFUklBTF9DWVBSRVNTX004XG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xNDYtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgQ3lwcmVzcyBNOCBVU0IgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTE1OC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjE1OTpjb25maWcgVVNCX1NFUklBTF9FTVBFR1xuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTYwLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEVtcGVnIGVtcGVnLWNhciBNYXJrIEkvSUkgRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTY5LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MTcwOmNvbmZpZyBVU0JfU0VSSUFMX0ZURElfU0lPXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xNzEtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgRlRESSBTaW5nbGUgUG9ydCBTZXJpYWwgRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTgyLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MTgzOmNvbmZpZyBVU0JfU0VSSUFMX1ZJU09SXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xODQtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgSGFuZHNwcmluZyBWaXNvciAvIFBhbG0gbTUweCAvIFNvbnkgQ2xpZSBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xOTMtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxOTQ6Y29uZmlnIFVTQl9TRVJJQUxfSVBBUVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTk1LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIFBvY2tldFBDIFBEQSBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yMDQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoyMDU6Y29uZmlnIFVTQl9TRVJJQUxfSVJcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIwNi1cdHRyaXN0YXRlIFwmIzM0O1VTQiBJUiBEb25nbGUgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIxNC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjIxNTpjb25maWcgVVNCX1NFUklBTF9FREdFUE9SVFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjE2LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEluc2lkZSBPdXQgRWRnZXBvcnQgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIzOS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjI0MDpjb25maWcgVVNCX1NFUklBTF9FREdFUE9SVF9USVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjQxLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEluc2lkZSBPdXQgRWRnZXBvcnQgU2VyaWFsIERyaXZlciAoVEkgZGV2aWNlcylcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNDktXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoyNTA6Y29uZmlnIFVTQl9TRVJJQUxfRjgxMjMyXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNTEtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgRmludGVrIEY4MTIzMiBTaW5nbGUgUG9ydCBTZXJpYWwgRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjU4LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MjU5OmNvbmZpZyBVU0JfU0VSSUFMX0Y4MTUzWFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjYwLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEZpbnRlayBGODE1MzIvNTM0IE11bHRpLVBvcnRzIFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNjgtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoyNjk6Y29uZmlnIFVTQl9TRVJJQUxfR0FSTUlOXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNzAtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgR2FybWluIEdQUyBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yODAtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoyODE6Y29uZmlnIFVTQl9TRVJJQUxfSVBXXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yODItXHR0cmlzdGF0ZSBcJiMzNDtVU0IgSVBXaXJlbGVzcyAoM0cgVU1UUyBUREQpIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTI5MC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjI5MTpjb25maWcgVVNCX1NFUklBTF9JVVVcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTI5Mi1cdHRyaXN0YXRlIFwmIzM0O1VTQiBJbmZpbml0eSBVU0IgVW5saW1pdGVkIFBob2VuaXggRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzAwLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MzAxOmNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fUERBXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zMDItXHR0cmlzdGF0ZSBcJiMzNDtVU0IgS2V5c3BhbiBQREEgLyBYaXJjb20gU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTMxMS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjMxMjpjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zMTMtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgS2V5c3BhbiBVU0EteHh4IFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zMjUtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozMjY6Y29uZmlnIFVTQl9TRVJJQUxfS0xTSVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzI3LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEtMNUtVU0IxMDUgKFBhbG1jb25uZWN0KSBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNDAtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozNDE6Y29uZmlnIFVTQl9TRVJJQUxfS09CSUxfU0NUXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNDItXHR0cmlzdGF0ZSBcJiMzNDtVU0IgS09CSUwgY2hpcGNhcmQgcmVhZGVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzU3LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MzU4OmNvbmZpZyBVU0JfU0VSSUFMX01DVF9VMjMyXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNTktXHR0cmlzdGF0ZSBcJiMzNDtVU0IgTUNUIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNjktXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozNzA6Y29uZmlnIFVTQl9TRVJJQUxfTUVUUk9cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM3MS1cdHRyaXN0YXRlIFwmIzM0O1VTQiBNZXRyb2xvZ2ljIEluc3RydW1lbnRzIFVTQi1QT1MgQmFyY29kZSBTY2FubmVyIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM3Ny1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjM3ODpjb25maWcgVVNCX1NFUklBTF9NT1M3NzIwXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNzktXHR0cmlzdGF0ZSBcJiMzNDtVU0IgTW9zY2hpcCA3NzIwIFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zODYtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozODc6Y29uZmlnIFVTQl9TRVJJQUxfTU9TNzcxNV9QQVJQT1JUXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zODgtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIHBhcmFsbGVsIHBvcnQgb24gdGhlIE1vc2NoaXAgNzcxNVwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM5Ni1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjM5Nzpjb25maWcgVVNCX1NFUklBTF9NT1M3ODQwXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zOTgtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgTW9zY2hpcCA3ODQwLzc4MjAgVVNCIFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00MTAtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0MTE6Y29uZmlnIFVTQl9TRVJJQUxfTVhVUE9SVFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDEyLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIE1veGEgVVBPUlQgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQzOS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ0MDpjb25maWcgVVNCX1NFUklBTF9OQVZNQU5cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ0MS1cdHRyaXN0YXRlIFwmIzM0O1VTQiBOYXZtYW4gR1BTIGRldmljZVwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ0NS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ0Njpjb25maWcgVVNCX1NFUklBTF9QTDIzMDNcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ0Ny1cdHRyaXN0YXRlIFwmIzM0O1VTQiBQcm9saWZpYyAyMzAzIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NTQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0NTU6Y29uZmlnIFVTQl9TRVJJQUxfT1RJNjg1OFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDU2LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIE91cnMgVGVjaG5vbG9neSBJbmMuIE9UaS02ODU4IFVTQiBUbyBSUzIzMiBCcmlkZ2UgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ2My1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ2NDpjb25maWcgVVNCX1NFUklBTF9RQ0FVWFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDY1LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIFF1YWxjb21tIEF1eGlsaWFyeSBTZXJpYWwgUG9ydCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NzQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0NzU6Y29uZmlnIFVTQl9TRVJJQUxfUVVBTENPTU1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ3Ni1cdHRyaXN0YXRlIFwmIzM0O1VTQiBRdWFsY29tbSBTZXJpYWwgbW9kZW1cJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00ODQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0ODU6Y29uZmlnIFVTQl9TRVJJQUxfU1BDUDhYNVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDg2LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIFNQQ1A4eDUgVVNCIFRvIFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00OTMtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0OTQ6Y29uZmlnIFVTQl9TRVJJQUxfU0FGRVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDk1LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIFNhZmUgU2VyaWFsIChFbmNhcHN1bGF0ZWQpIERyaXZlclwmIzM0O1xuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDk2LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDk3OmNvbmZpZyBVU0JfU0VSSUFMX1NBRkVfUEFEREVEXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00OTgtXHRib29sIFwmIzM0O1VTQiBTZWN1cmUgRW5jYXBzdWxhdGVkIERyaXZlciAtIFBhZGRlZFwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUwMC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjUwMTpjb25maWcgVVNCX1NFUklBTF9TSUVSUkFXSVJFTEVTU1xuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTAyLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIFNpZXJyYSBXaXJlbGVzcyBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01MTEtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo1MTI6Y29uZmlnIFVTQl9TRVJJQUxfU1lNQk9MXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01MTMtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgU3ltYm9sIEJhcmNvZGUgZHJpdmVyIChzZXJpYWwgbW9kZSlcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01MjAtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo1MjE6Y29uZmlnIFVTQl9TRVJJQUxfVElcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUyMi1cdHRyaXN0YXRlIFwmIzM0O1VTQiBUSSAzNDEwLzUwNTIgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUyOS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjUzMDpjb25maWcgVVNCX1NFUklBTF9DWUJFUkpBQ0tcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUzMS1cdHRyaXN0YXRlIFwmIzM0O1VTQiBSRUlORVIgU0NUIGN5YmVySmFjayBwaW5wYWQvZS1jb20gY2hpcGNhcmQgcmVhZGVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTQxLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTQyOmNvbmZpZyBVU0JfU0VSSUFMX1dXQU5cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU0My1cdHRyaXN0YXRlXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NDQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo1NDU6Y29uZmlnIFVTQl9TRVJJQUxfT1BUSU9OXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NDYtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgZHJpdmVyIGZvciBHU00gYW5kIENETUEgbW9kZW1zXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTYzLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTY0OmNvbmZpZyBVU0JfU0VSSUFMX09NTklORVRcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU2NS1cdHRyaXN0YXRlIFwmIzM0O1VTQiBaeVhFTCBvbW5pLm5ldCBMQ0QgUGx1cyBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NzEtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo1NzI6Y29uZmlnIFVTQl9TRVJJQUxfT1BUSUNPTlxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTczLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIE9wdGljb24gQmFyY29kZSBkcml2ZXIgKHNlcmlhbCBtb2RlKVwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU4MC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjU4MTpjb25maWcgVVNCX1NFUklBTF9YU0VOU19NVFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTgyLVx0dHJpc3RhdGUgXCYjMzQ7WHNlbnMgbW90aW9uIHRyYWNrZXIgc2VyaWFsIGludGVyZmFjZSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01OTItXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo1OTM6Y29uZmlnIFVTQl9TRVJJQUxfV0lTSEJPTkVcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU5NC1cdHRyaXN0YXRlIFwmIzM0O1VTQi1XaXNoYm9uZSBhZGFwdGVyIGludGVyZmFjZSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MDktXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo2MTA6Y29uZmlnIFVTQl9TRVJJQUxfU1NVMTAwXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MTEtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgUXVhdGVjaCBTU1UtMTAwIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MTgtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo2MTk6Y29uZmlnIFVTQl9TRVJJQUxfUVQyXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MjAtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgUXVhdGVjaCBTZXJpYWwgRHJpdmVyIGZvciBVU0IgMiBkZXZpY2VzXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNjI3LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjI4OmNvbmZpZyBVU0JfU0VSSUFMX1VQRDc4RjA3MzBcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTYyOS1cdHRyaXN0YXRlIFwmIzM0O1VTQiBSZW5lc2FzIHVQRDc4RjA3MzAgU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTYzNi1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjYzNzpjb25maWcgVVNCX1NFUklBTF9YUlxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNjM4LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIE1heExpbmVhci9FeGFyIFVTQiB0byBTZXJpYWwgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNjQ1LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjQ2OmNvbmZpZyBVU0JfU0VSSUFMX0RFQlVHXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02NDctXHR0cmlzdGF0ZSBcJiMzNDtVU0IgRGVidWdnaW5nIERldmljZVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MzA0CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqRGlnZ2luZyBpbnRvIHRoZSBVU0IgU2VyaWFsIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZSwgSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYFVTQl9TRVJJQUxgIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBSaWdodCwgc28gaXQmIzM5O3MgdGhlIHBhcmVudCwgdGhlIG92ZXJhcmNoaW5nIHNldHRpbmcuIE9rYXksIGdvb2QuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBmdWxseSwgYXJlIHRoZXJlIGFueSBvdGhlciBkZXBlbmRlbmNpZXMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mIGJleW9uZCBgVVNCX1NFUklBTGAgaXRzZWxmPyBIbW0sIGxldCBtZSBjaGVjay4uLiBhaCwgeWVzLCBJIHNlZSB0aGF0IGBVU0JfU0VSSUFMYCBpcyBkZXBlbmRlbnQgb24gdGhlIGdlbmVyYWwgYFVTQmAgb3B0aW9uLiBNYWtlcyBwZXJmZWN0IHNlbnNlLCBhbmQgSSBzaG91bGQgaGF2ZSBhbnRpY2lwYXRlZCB0aGF0LiBOb3csIGxldCBtZSBzZWUgaWYgdGhpcyBwcmVzZW50cyBhbnkgY29tcGF0aWJpbGl0eSBpc3N1ZXMgd2l0aCBteSB0YXJnZXQgc3lzdGVtLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21lbnVjb25maWcgVVNCX1NFUklBTCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo2Om1lbnVjb25maWcgVVNCX1NFUklBTFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O1VTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTU3OAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3M6CgoqKlVTQiBTZXJpYWwgRHJpdmVyIERlcGVuZGVuY2llcyAtIEtjb25maWcgQ2hlY2sqKgoKT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBmb3IgdGhlIGBtZW51Y29uZmlnYCBvcHRpb24gYFVTQl9TRVJJQUxgIHdpdGhpbiB0aGUga2VybmVsJiMzOTtzIFVTQiBzZXJpYWwgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIE15IGZpcnN0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIGBkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZ2AuIEkga25vdyB0aGF0JiMzOTtzIHRoZSBjYW5vbmljYWwgbG9jYXRpb24gZm9yIHRoZXNlIHNvcnRzIG9mIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aXRoaW4gdGhlIFVTQiBzZXJpYWwgc3Vic3lzdGVtLCBzbyB0aGF0JiMzOTtzIHdoZXJlIEkgc2hvdWxkIGJlIGFibGUgdG8gZmlndXJlIG91dCB3aGF0IG90aGVyIGtlcm5lbCBmZWF0dXJlcywgb3B0aW9ucywgb3IgaGFyZHdhcmUgc3VwcG9ydCBtdXN0IGJlIGVuYWJsZWQgb3IgcHJlc2VudCBmb3IgYFVTQl9TRVJJQUxgIHRvIGJlIGV4cG9zZWQgYW5kIHNlbGVjdGFibGUuIEkgZXhwZWN0IHRvIGZpbmQgZGVwZW5kZW5jaWVzIGxpc3RlZCBhcyBgZGVwZW5kcyBvbmAgc3RhdGVtZW50cywgbWF5YmUgYWxvbmcgd2l0aCBhbnkgaW1wbGllZCBjb25zdHJhaW50cywgYW5kIHRoZSBjb25kaXRpb25zIHVuZGVyIHdoaWNoIHRoZSBvcHRpb24gaXMgdmlzaWJsZS4gVW5kZXJzdGFuZGluZyB0aGVzZSBkZXBlbmRlbmNpZXMgaXMgY3J1Y2lhbCBmb3IgY29uZmlndXJpbmcgdGhpcyBhc3BlY3Qgb2YgdGhlIGtlcm5lbCBwcm9wZXJseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbiAgIDI6XHQjXG4gICAzOlx0IyBVU0IgU2VyaWFsIGRldmljZSBjb25maWd1cmF0aW9uXG4gICA0Olx0I1xuICAgNTpcdFxuICAgNjpcdG1lbnVjb25maWcgVVNCX1NFUklBTFxuICAgNzpcdFx0dHJpc3RhdGUgXCYjMzQ7VVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydFwmIzM0O1xuICAgODpcdFx0ZGVwZW5kcyBvbiBUVFlcbiAgIDk6XHRcdGhlbHBcbiAgMTA6XHRcdCAgU2F5IFkgaGVyZSBpZiB5b3UgaGF2ZSBhIFVTQiBkZXZpY2UgdGhhdCBwcm92aWRlcyBub3JtYWwgc2VyaWFsXG4gIDExOlx0XHQgIHBvcnRzLCBvciBhY3RzIGxpa2UgYSBzZXJpYWwgZGV2aWNlLCBhbmQgeW91IHdhbnQgdG8gY29ubmVjdCBpdCB0b1xuICAxMjpcdFx0ICB5b3VyIFVTQiBidXMuXG4gIDEzOlx0XG4gIDE0Olx0XHQgIFBsZWFzZSByZWFkIFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi91c2IvdXNiLXNlcmlhbC5yc3RcdTAwM2UgZm9yIG1vcmVcbiAgMTU6XHRcdCAgaW5mb3JtYXRpb24gb24gdGhlIHNwZWNpZmljcyBvZiB0aGUgZGlmZmVyZW50IGRldmljZXMgdGhhdCBhcmVcbiAgMTY6XHRcdCAgc3VwcG9ydGVkLCBhbmQgb24gaG93IHRvIHVzZSB0aGVtLlxuICAxNzpcdFxuICAxODpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGVcbiAgMTk6XHRcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHVzYnNlcmlhbC5cbiAgMjA6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAwNjkKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAxNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTUENQOFg1IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGRpdmluZyBpbnRvIHRoaXMgU1BDUDhYNSBkcml2ZXIsIGFuZCBpdCYjMzk7cyBpbW1lZGlhdGVseSBhcHBhcmVudCB0aGF0IGl0cyBiZWhhdmlvciBpcyBzdHJvbmdseSB0aWVkIHRvIHRoZSBgVFRZYCBjb250ZXh0LiBUaGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4gVG8gbWFrZSBzdXJlIHRoaXMgdGhpbmcgaXMgZXZlbiBlbmFibGVkLCBJIG5lZWQgdG8gY29uZmlybSBgVVNCX1NFUklBTGAgYW5kIGBVU0JfU0VSSUFMX1NQQ1A4WDVgIGFyZSBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uIFRoYXQmIzM5O3MgZ3JvdW5kIHplcm8uCgpJIHNlZSB0aGV5JiMzOTt2ZSByZW1vdmVkIHRoZSBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgZnVuY3Rpb24sIHdoaWNoIGlzIGludGVyZXN0aW5nLiBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5LiBOb3csIGxvb2tpbmcgYXQgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBvZiB0aGlzIGRyaXZlciwgdGhlIGtleSBmdW5jdGlvbnMgdGhhdCB3YXJyYW50IGEgY2xvc2UgZXhhbWluYXRpb24gYXJlIGNsZWFybHkgYHNwY3A4eDVfb3BlbmAsIGBzcGNwOHg1X2R0cl9ydHNgLCBgc3BjcDh4NV9zZXRfdGVybWlvc2AsIGBzcGNwOHg1X3Rpb2NtZ2V0YCwgYW5kIGBzcGNwOHg1X3Rpb2Ntc2V0YC4gVGhlc2UgYXJlIHRoZSBjcml0aWNhbCBpbnRlcmZhY2UgcG9pbnRzLgoKSGFuZyBvbi4uLiBgc3BjcDh4NV9vcGVuYCBsb29rcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50LiBJdCYjMzk7cyB0aGUgZW50cnkgcG9pbnQsIHNvIEkmIzM5O2xsIHByaW9yaXRpemUgdGhhdC4gSSBzaG91bGQgcHJvYmFibHkgZW5zdXJlIHRoYXQgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgbW9kdWxlIGlzIGtub3duLCBzbyBJJiMzOTtsbCBkbyBhIHF1aWNrIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGltcG9ydGFudCBmdW5jdGlvbnMgZGVmaW5lZCBpbiBgc3BjcDh4NS5jYCB0aGF0IEkgbWlnaHQgbmVlZCB0byBjb25zaWRlci4gR290dGEgZ2V0IHRoZSBiaWcgcGljdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RhdGljLipzcGNwOHg1XyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYz0xMjc9c3RydWN0IHNwY3A4eDVfcHJpdmF0ZSB7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xMzItXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjEzMzpzdGF0aWMgaW50IHNwY3A4eDVfcHJvYmUoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTM0LVx0XHRcdFx0XHRcdGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE0MC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MTQxOnN0YXRpYyBpbnQgc3BjcDh4NV9wb3J0X3Byb2JlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE0Mi17XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xNTktXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjE2MDpzdGF0aWMgdm9pZCBzcGNwOHg1X3BvcnRfcmVtb3ZlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE2MS17XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xNjctXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjE2ODpzdGF0aWMgaW50IHNwY3A4eDVfc2V0X2N0cmxfbGluZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1OCBtY3IpXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE2OS17XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xODYtXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjE4NzpzdGF0aWMgaW50IHNwY3A4eDVfZ2V0X21zcihzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1OCAqc3RhdHVzKVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xODgte1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMjE5LVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzoyMjA6c3RhdGljIHZvaWQgc3BjcDh4NV9zZXRfd29ya19tb2RlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHUxNiB2YWx1ZSxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMjIxLVx0XHRcdFx0XHRcdFx0XHQgdTE2IGluZGV4KVxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMjM3LVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzoyMzg6c3RhdGljIHZvaWQgc3BjcDh4NV9kdHJfcnRzKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBvbilcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMjM5LXtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTI1NS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MjU2OnN0YXRpYyB2b2lkIHNwY3A4eDVfaW5pdF90ZXJtaW9zKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTI1Ny17XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0yNjAtXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjI2MTpzdGF0aWMgdm9pZCBzcGNwOHg1X3NldF90ZXJtaW9zKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTI2Mi1cdFx0XHRcdHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsXG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zNjUtXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjM2NjpzdGF0aWMgaW50IHNwY3A4eDVfb3BlbihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zNjcte1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMzg4LVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzozODk6c3RhdGljIGludCBzcGNwOHg1X3Rpb2Ntc2V0KHN0cnVjdCB0dHlfc3RydWN0ICp0dHksXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTM5MC1cdFx0XHQgICAgdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyKVxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDExLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzo0MTI6c3RhdGljIGludCBzcGNwOHg1X3Rpb2NtZ2V0KHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTQxMy17XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00MzgtXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjQzOTpzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIHNwY3A4eDVfZGV2aWNlID0ge1xuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NDAtXHQuZHJpdmVyID0ge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTcwNQoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDE2NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNQQyBTZXJpYWwgRHJpdmVyKioKCk9rYXksIHNvIEkgbmVlZCB0byB6ZXJvIGluIG9uIHRoZXNlIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIGBzcGNwOHg1YCBkcml2ZXI6IGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGFuZCBgc3BjcDh4NV90aW9jbXNldGAuIFRoZXNlIGFyZSB0aGUga2V5IGVudHJ5IHBvaW50cyBhbmQgY29udHJvbCBtZWNoYW5pc21zLCB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIHNlcmlhbCBwb3J0IG1hbmFnZW1lbnQuCgpBaGEsIGFuZCBoZXJlJiMzOTtzIGEgd3JpbmtsZSDigJMgdGhlIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiBoYXMgYmVlbiAqcmVtb3ZlZCouIFJpZ2h0LiBTbyB0aGUgY2FycmllciBkZXRlY3Rpb24gaXMgbm93IGJlaW5nIGhhbmRsZWQgZWl0aGVyIGJ5IHRoZSBnZW5lcmljIFVTQiBzZXJpYWwgY29yZS4uLiBvciBpdCYjMzk7cyBkZWZhdWx0aW5nIHRvIHNvbWUgc3RhbmRhcmQgYmVoYXZpb3IgZGVmaW5lZCB3aXRoaW4gdGhlIGNvcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoLiBJIHJlYWxseSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIG1lYW5zIGZvciBlcnJvciByZXBvcnRpbmcuCgpBaCwgbG9va3MgbGlrZSBpZiBgLmNhcnJpZXJfcmFpc2VkYCBpc24mIzM5O3QgZXhwbGljaXRseSBzZXQgaW4gdGhlIHBvcnQgc3RydWN0dXJlLCBpdCBmYWxscyBiYWNrIHRvIHRoZSBjb3JlIGxvZ2ljLiBTcGVjaWZpY2FsbHksIHRoZSBjb2RlIGRvZXMgYSBjaGVjazogYGlmIChwb3J0LSZndDtzZXJpYWwtJmd0O3R5cGUtJmd0O2NhcnJpZXJfcmFpc2VkKSByZXR1cm4gcG9ydC0mZ3Q7c2VyaWFsLSZndDt0eXBlLSZndDtjYXJyaWVyX3JhaXNlZChwb3J0KTtgLiBPa2F5LCB0aGF0JiMzOTtzIHN0cmFpZ2h0Zm9yd2FyZC4gQnV0LCB3aGF0IGlmIHRoZSBgY2Fycmllcl9yYWlzZWRgIGZpZWxkIGlzICpub3QqIHNldD8gVGhhdCYjMzk7cyB0aGUgcmVhbCBxdWVzdGlvbi4gV2hhdCYjMzk7cyB0aGUgKmRlZmF1bHQqIGJlaGF2aW9yIGlmIG5vdGhpbmcgaXMgZXhwbGljaXRseSBwcm92aWRlZD8gSSBuZWVkIHRvIHRyYWNrIGRvd24gZXhhY3RseSBob3cgdGhlIGNvcmUgc2VyaWFsIGNvZGUgaGFuZGxlcyB0aGUgYWJzZW5jZSBvZiB0aGlzIGZ1bmN0aW9uIHBvaW50ZXIsIGFuZCB3aGF0IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIGFyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y2Fycmllcl9yYWlzZWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3NlcmlhbC9jaDM0MS5jPTQxMj1zdGF0aWMgdm9pZCBjaDM0MV9wb3J0X3JlbW92ZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9jaDM0MS5jLTQxOS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9jaDM0MS5jOjQyMDpzdGF0aWMgaW50IGNoMzQxX2NhcnJpZXJfcmFpc2VkKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXG5kcml2ZXJzL3VzYi9zZXJpYWwvY2gzNDEuYy00MjEte1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9jaDM0MS5jPTg2NT1zdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIGNoMzQxX2RldmljZSA9IHtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvY2gzNDEuYy04NzItXHQuZHRyX3J0c1x0ICAgPSBjaDM0MV9kdHJfcnRzLFxuZHJpdmVycy91c2Ivc2VyaWFsL2NoMzQxLmM6ODczOlx0LmNhcnJpZXJfcmFpc2VkXHQgICA9IGNoMzQxX2NhcnJpZXJfcmFpc2VkLFxuZHJpdmVycy91c2Ivc2VyaWFsL2NoMzQxLmMtODc0LVx0LmNsb3NlICAgICAgICAgICAgID0gY2gzNDFfY2xvc2UsXG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jPTc2MT1zdGF0aWMgYm9vbCBmODEyMzJfdHhfZW1wdHkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydClcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvZjgxMjMyLmMtNzc0LVxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jOjc3NTpzdGF0aWMgaW50IGY4MTIzMl9jYXJyaWVyX3JhaXNlZChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jLTc3Ni17XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jPTk4Mj1zdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIGY4MTIzMl9kZXZpY2UgPSB7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jLTk5Mi1cdC5kdHJfcnRzID1cdFx0ZjgxMjMyX2R0cl9ydHMsXG5kcml2ZXJzL3VzYi9zZXJpYWwvZjgxMjMyLmM6OTkzOlx0LmNhcnJpZXJfcmFpc2VkID1cdGY4MTIzMl9jYXJyaWVyX3JhaXNlZCxcbmRyaXZlcnMvdXNiL3NlcmlhbC9mODEyMzIuYy05OTQtXHQuZ2V0X3NlcmlhbCA9XHRcdGY4MTIzMl9nZXRfc2VyaWFsLFxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9mODEyMzIuYz0xMDA4PXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgZjgxNTM0YV9kZXZpY2UgPSB7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jLTEwMTYtXHQuZHRyX3J0cyA9XHRcdGY4MTIzMl9kdHJfcnRzLFxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jOjEwMTc6XHQuY2Fycmllcl9yYWlzZWQgPVx0ZjgxMjMyX2NhcnJpZXJfcmFpc2VkLFxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jLTEwMTgtXHQuZ2V0X3NlcmlhbCA9XHRcdGY4MTIzMl9nZXRfc2VyaWFsLFxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYz0xMDU5PXN0YXRpYyBpbnQgcGwyMzAzX3Rpb2NtZ2V0KHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpXG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jLTEwODQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmM6MTA4NTpzdGF0aWMgaW50IHBsMjMwM19jYXJyaWVyX3JhaXNlZChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxuZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jLTEwODYte1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYz0xMjcxPXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgcGwyMzAzX2RldmljZSA9IHtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmMtMTI4My1cdC5kdHJfcnRzID1cdFx0cGwyMzAzX2R0cl9ydHMsXG5kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmM6MTI4NDpcdC5jYXJyaWVyX3JhaXNlZCA9XHRwbDIzMDNfY2Fycmllcl9yYWlzZWQsXG5kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmMtMTI4NS1cdC5icmVha19jdGwgPVx0XHRwbDIzMDNfYnJlYWtfY3RsLFxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmM9NzMzPXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgKnNlYXJjaF9zZXJpYWxfZGV2aWNlKFxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmMtNzUwLVxuZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYzo3NTE6c3RhdGljIGJvb2wgc2VyaWFsX3BvcnRfY2Fycmllcl9yYWlzZWQoc3RydWN0IHR0eV9wb3J0ICpwb3J0KVxuZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYy03NTIte1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmMtNzU1LVxuZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYzo3NTY6XHRpZiAoZHJ2LVx1MDAzZWNhcnJpZXJfcmFpc2VkKVxuZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYzo3NTc6XHRcdHJldHVybiBkcnYtXHUwMDNlY2Fycmllcl9yYWlzZWQocCk7XG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jLTc1OC1cdC8qIE5vIGNhcnJpZXIgY29udHJvbCAtIGRvbiYjMzk7dCBibG9jayAqL1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmM9Nzg2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgdHR5X3BvcnRfb3BlcmF0aW9ucyBzZXJpYWxfcG9ydF9vcHMgPSB7XG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jOjc4NzpcdC5jYXJyaWVyX3JhaXNlZFx0XHQ9IHNlcmlhbF9wb3J0X2NhcnJpZXJfcmFpc2VkLFxuZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYy03ODgtXHQuZHRyX3J0c1x0XHQ9IHNlcmlhbF9wb3J0X2R0cl9ydHMsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNTM0CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMjk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQ2FycmllciBEZXRlY3QgTG9naWMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHNlcmlhbF9wb3J0X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiBhbmQgaG93IGl0JiMzOTtzIGNoYW5nZWQuIEl0IGxvb2tzIGxpa2UgaXQgdXNlZCB0byByZWx5IG9uIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCB3aGljaCBpcyBub3cgcmVtb3ZlZC4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgb2xkIGZ1bmN0aW9uIGNoZWNrZWQgZm9yIGEgcmV0dXJuIHZhbHVlIGByZXRgIGZyb20gYHNwY3A4eDVfZ2V0X21zcmAgb3IgaWYgdGhlIGBNU1JfU1RBVFVTX0xJTkVfRENEYCBiaXQgd2FzIHNldCBpbiBgbXNyYC4gSWYgZWl0aGVyIG9mIHRob3NlIGNvbmRpdGlvbnMgd2VyZSB0cnVlLCBpdCByZXR1cm5lZCAxLCBvdGhlcndpc2UgMC4gTm93LCBpdCBhbHdheXMgcmV0dXJucyAxIGJlY2F1c2UgYGRydi0mZ3Q7Y2Fycmllcl9yYWlzZWRgIGlzIE5VTEwuIFRoYXQmIzM5O3MgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGNoYW5nZSwgbWVhbmluZyB0aGUgZGV2aWNlIHdpbGwgbm93ICphbHdheXMqIHJlcG9ydCBjYXJyaWVyIGRldGVjdC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzLgoKVGhlIGtleSBmdW5jdGlvbnMgdG8gZXhhbWluZSBpbiBkZXRhaWwgYXJlIGRlZmluaXRlbHkgYHNwY3A4eDVfZ2V0X21zcmAsIGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGFuZCBgc3BjcDh4NV90aW9jbXNldGAuIEhvbGQgb24uLi4gYHNwY3A4eDVfZ2V0X21zcmAgaXMgc3RpbGwgdXNlZCBpbiBgc3BjcDh4NV90aW9jbWdldGAuLi4gcmlnaHQsIEkmIzM5O2xsIG5lZWQgdG8gcmVtZW1iZXIgdGhhdC4gVGhpcyBpcyBnb2luZyB0byByZXF1aXJlIGEgZGVlcGVyIGRpdmUgaW50byBob3cgY2FycmllciBkZXRlY3QgaXMgYmVpbmcgaGFuZGxlZCBub3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NwY3A4eDVfZ2V0X21zciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYz0xNjg9c3RhdGljIGludCBzcGNwOHg1X3NldF9jdHJsX2xpbmUoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgdTggbWNyKVxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTg2LVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzoxODc6c3RhdGljIGludCBzcGNwOHg1X2dldF9tc3Ioc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgdTggKnN0YXR1cylcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTg4LXtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jPTQxMj1zdGF0aWMgaW50IHNwY3A4eDVfdGlvY21nZXQoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSlcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTQyMC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6NDIxOlx0cmVzdWx0ID0gc3BjcDh4NV9nZXRfbXNyKHBvcnQsIFx1MDAyNnN0YXR1cyk7XG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTQyMi1cdGlmIChyZXN1bHQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0NDU4CgkJCQkJCQlvdXRwdXQ6IDE5MgoJCQkJCQkJdGhvdWdodHM6IDM1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgU1BDUDhYNSBEcml2ZXIgZm9yIFBvdGVudGlhbCBGdXp6aW5nKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCB0aGUgYHNwY3A4eDVgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIGEgcmVjZW50IGNoYW5nZS4gSSBjb25maXJtZWQgdGhhdCBgc3BjcDh4NV9nZXRfbXNyYCBpcyBpbmRlZWQgc3RpbGwgYmVpbmcgY2FsbGVkIHdpdGhpbiBgc3BjcDh4NV90aW9jbWdldGAsIG1ha2luZyB0aGF0IGEgZ29vZCBjYW5kaWRhdGUgZm9yIGRldGFpbGVkIGFuYWx5c2lzLiBJJiMzOTt2ZSBhbHNvIGlkZW50aWZpZWQgYSBoYW5kZnVsIG9mIG90aGVyIGtleSBmdW5jdGlvbnMgdG8ga2VlcCBpbiBtaW5kIOKAkyBgc3BjcDh4NV9vcGVuYCwgYHNwY3A4eDVfZHRyX3J0c2AsIGBzcGNwOHg1X3NldF90ZXJtaW9zYCwgYW5kIGBzcGNwOHg1X3Rpb2Ntc2V0YC4gSSBzaG91bGQgY3JlYXRlIGEgY2xlYXIgbGlzdCBvZiB0aGVzZSBmb3IgZWFzeSByZWZlcmVuY2UuCgpOb3csIGNvbnNpZGVyaW5nIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcywgaXQgbG9va3MgbGlrZSB0aGlzIGlzIHRpZWQgdG8gYFVTQl9TRVJJQUxgIGFuZCwgbW9yZSBzcGVjaWZpY2FsbHksIGBVU0JfU0VSSUFMX1NQQ1A4WDVgLiBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgYFVTQl9TRVJJQUxgIGRlcGVuZHMgb24gYFRUWWAsIHdoaWNoIGlzIHVzdWFsbHkgZW5hYmxlZCBieSBkZWZhdWx0LiBTbywgaGF2aW5nIHRob3NlIHR3byBvcHRpb25zIGNvbmZpZ3VyZWQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIHRlc3RpbmcuCgpUaGUgcmVhbCBtZWF0IG9mIHRoaXMgaXMgdGhlIGZ1bmN0aW9uYWwgY2hhbmdlLiBSZW1vdmluZyBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgbWVhbnMgdGhlIGRyaXZlciB3aWxsIG5vIGxvbmdlciBxdWVyeSB0aGUgZGV2aWNlIGZvciBjYXJyaWVyIHN0YXR1cyB3aGVuIG9wZW5pbmcgdGhlIHBvcnQuIFRoaXMgd2lsbCBkZWZpbml0ZWx5IGFmZmVjdCB0aGUgb3BlbiBhbmQgYmxvY2tpbmcgYmVoYXZpb3Igb2YgdGhlIFRUWSBwb3J0LCB3aGljaCBpcyBjcnVjaWFsIGZyb20gYSBmdW5jdGlvbmFsIGFuZCBzZWN1cml0eSBwZXJzcGVjdGl2ZS4gVGhpcyBpcyBhIGdvb2Qgc2lnbiBmb3IgZnV6emluZywgZ2l2ZW4gaXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gYSBVU0Igc2VyaWFsIGRyaXZlci4gSSYjMzk7ZCBjb25zaWRlciB0aGF0IGEgc2lnbmlmaWNhbnQgZW5vdWdoIGltcGFjdCB0byB3YXJyYW50IHRob3JvdWdoIGZ1enppbmcuCgpJJiMzOTttIGZlZWxpbmcgZ29vZCBhYm91dCB0aGlzLCBzbyBJJiMzOTtsbCBzdGFydCBnYXRoZXJpbmcgbXkgcmVzdWx0cyBmb3IgYSBwcmVzZW50YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVU0JfU0VSSUFMJiMzNDssCiAgICAmIzM0O1VTQl9TRVJJQUxfU1BDUDhYNSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3NwY3A4eDVfb3BlbiYjMzQ7LAogICAgJiMzNDtzcGNwOHg1X2R0cl9ydHMmIzM0OywKICAgICYjMzQ7c3BjcDh4NV9zZXRfdGVybWlvcyYjMzQ7LAogICAgJiMzNDtzcGNwOHg1X3Rpb2NtZ2V0JiMzNDssCiAgICAmIzM0O3NwY3A4eDVfdGlvY21zZXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVtb3ZlcyB0aGUgY3VzdG9tIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiBmcm9tIHRoZSBVU0Igc2VyaWFsIGRyaXZlciwgZmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBVU0Igc2VyaWFsIGNvcmUgKHdoaWNoIGFsd2F5cyByZXR1cm5zIDEpLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIHRoZSBUVFkgcG9ydCBvcGVuIGFuZCBibG9ja2luZyBiZWhhdmlvci4gRnV6emluZyB0aGUgZHJpdmVyJiMzOTtzIHJlbWFpbmluZyBUVFkgb3BlcmF0aW9ucyBpcyByZWNvbW1lbmRlZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgdW5leHBlY3RlZCBiZWhhdmlvcnMgb2NjdXIgZHVlIHRvIHRoaXMgY2hhbmdlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVU0JfU0VSSUFMJiMzNDssCiAgICAmIzM0O1VTQl9TRVJJQUxfU1BDUDhYNSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3NwY3A4eDVfb3BlbiYjMzQ7LAogICAgJiMzNDtzcGNwOHg1X2R0cl9ydHMmIzM0OywKICAgICYjMzQ7c3BjcDh4NV9zZXRfdGVybWlvcyYjMzQ7LAogICAgJiMzNDtzcGNwOHg1X3Rpb2NtZ2V0JiMzNDssCiAgICAmIzM0O3NwY3A4eDVfdGlvY21zZXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVtb3ZlcyB0aGUgY3VzdG9tIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiBmcm9tIHRoZSBVU0Igc2VyaWFsIGRyaXZlciwgZmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBVU0Igc2VyaWFsIGNvcmUgKHdoaWNoIGFsd2F5cyByZXR1cm5zIDEpLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIHRoZSBUVFkgcG9ydCBvcGVuIGFuZCBibG9ja2luZyBiZWhhdmlvci4gRnV6emluZyB0aGUgZHJpdmVyJiMzOTtzIHJlbWFpbmluZyBUVFkgb3BlcmF0aW9ucyBpcyByZWNvbW1lbmRlZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgdW5leHBlY3RlZCBiZWhhdmlvcnMgb2NjdXIgZHVlIHRvIHRoaXMgY2hhbmdlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6MTkuNzc2MDA1MTc0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTI2ODEyMzUyOTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVVNCX1NFUklBTFwiLFxuICAgIFwiVVNCX1NFUklBTF9TUENQOFg1XCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3BjcDh4NV9vcGVuXCIsXG4gICAgXCJzcGNwOHg1X2R0cl9ydHNcIixcbiAgICBcInNwY3A4eDVfc2V0X3Rlcm1pb3NcIixcbiAgICBcInNwY3A4eDVfdGlvY21nZXRcIixcbiAgICBcInNwY3A4eDVfdGlvY21zZXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZW1vdmVzIHRoZSBjdXN0b20gYHNwY3A4eDVfY2Fycmllcl9yYWlzZWRgIGZ1bmN0aW9uIGZyb20gdGhlIFVTQiBzZXJpYWwgZHJpdmVyLCBmYWxsaW5nIGJhY2sgdG8gdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIFVTQiBzZXJpYWwgY29yZSAod2hpY2ggYWx3YXlzIHJldHVybnMgMSkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgdGhlIFRUWSBwb3J0IG9wZW4gYW5kIGJsb2NraW5nIGJlaGF2aW9yLiBGdXp6aW5nIHRoZSBkcml2ZXIncyByZW1haW5pbmcgVFRZIG9wZXJhdGlvbnMgaXMgcmVjb21tZW5kZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3JzIG9jY3VyIGR1ZSB0byB0aGlzIGNoYW5nZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6MTkuNzc2MDEzMjk0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDY2MTM0NjQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMDY4NDNjYTcxNTk3YTU3MDdjNjY1NTJjOWJkMTEyMWExOTQzMWZhZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyA3IDAyOjM5OjE3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jXFxuaW5kZXggYzExZDY0YmYwOGZiYS4uZjYxMGFlZjZiZjU5YiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jXFxuKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1xcbkBAIC0yMzUsMTggKzIzNSw2IEBAIHN0YXRpYyB2b2lkIHNwY3A4eDVfc2V0X3dvcmtfbW9kZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1MTYgdmFsdWUsXFxuIFxcdFxcdGRldl9lcnIoXFx1MDAyNnBvcnQtXFx1MDAzZWRldiwgXFxcImZhaWxlZCB0byBzZXQgd29yayBtb2RlOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG4gfVxcbiBcXG4tc3RhdGljIGludCBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXFxuLXtcXG4tXFx0dTggbXNyO1xcbi1cXHRpbnQgcmV0O1xcbi1cXG4tXFx0cmV0ID0gc3BjcDh4NV9nZXRfbXNyKHBvcnQsIFxcdTAwMjZtc3IpO1xcbi1cXHRpZiAocmV0IHx8IG1zciBcXHUwMDI2IE1TUl9TVEFUVVNfTElORV9EQ0QpXFxuLVxcdFxcdHJldHVybiAxO1xcbi1cXG4tXFx0cmV0dXJuIDA7XFxuLX1cXG4tXFxuIHN0YXRpYyB2b2lkIHNwY3A4eDVfZHRyX3J0cyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgb24pXFxuIHtcXG4gXFx0c3RydWN0IHNwY3A4eDVfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTtcXG5AQCAtNDU4LDcgKzQ0Niw2IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgc3BjcDh4NV9kZXZpY2UgPSB7XFxuIFxcdC5udW1fYnVsa19vdXRcXHRcXHQ9IDEsXFxuIFxcdC5vcGVuXFx0XFx0XFx0PSBzcGNwOHg1X29wZW4sXFxuIFxcdC5kdHJfcnRzXFx0XFx0PSBzcGNwOHg1X2R0cl9ydHMsXFxuLVxcdC5jYXJyaWVyX3JhaXNlZFxcdFxcdD0gc3BjcDh4NV9jYXJyaWVyX3JhaXNlZCxcXG4gXFx0LnNldF90ZXJtaW9zXFx0XFx0PSBzcGNwOHg1X3NldF90ZXJtaW9zLFxcbiBcXHQuaW5pdF90ZXJtaW9zXFx0XFx0PSBzcGNwOHg1X2luaXRfdGVybWlvcyxcXG4gXFx0LnRpb2NtZ2V0XFx0XFx0PSBzcGNwOHg1X3Rpb2NtZ2V0LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOToyMS4yNDUzOTEzMDdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1MTIxMTg0MDQ3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVU0JfU0VSSUFMXCIsXG4gICAgXCJVU0JfU0VSSUFMX1NQQ1A4WDVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzcGNwOHg1X29wZW5cIixcbiAgICBcInNwY3A4eDVfZHRyX3J0c1wiLFxuICAgIFwic3BjcDh4NV9zZXRfdGVybWlvc1wiLFxuICAgIFwic3BjcDh4NV90aW9jbWdldFwiLFxuICAgIFwic3BjcDh4NV90aW9jbXNldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlbW92ZXMgdGhlIGN1c3RvbSBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgZnVuY3Rpb24gZnJvbSB0aGUgVVNCIHNlcmlhbCBkcml2ZXIsIGZhbGxpbmcgYmFjayB0byB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgVVNCIHNlcmlhbCBjb3JlICh3aGljaCBhbHdheXMgcmV0dXJucyAxKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyB0aGUgVFRZIHBvcnQgb3BlbiBhbmQgYmxvY2tpbmcgYmVoYXZpb3IuIEZ1enppbmcgdGhlIGRyaXZlcidzIHJlbWFpbmluZyBUVFkgb3BlcmF0aW9ucyBpcyByZWNvbW1lbmRlZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgdW5leHBlY3RlZCBiZWhhdmlvcnMgb2NjdXIgZHVlIHRvIHRoaXMgY2hhbmdlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwNjg0M2NhNzE1OTdhNTcwN2M2NjU1MmM5YmQxMTIxYTE5NDMxZmFmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgNyAwMjozOToxNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jXG5pbmRleCBjMTFkNjRiZjA4ZmJhLi5mNjEwYWVmNmJmNTliIDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1xuKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1xuQEAgLTIzNSwxOCArMjM1LDYgQEAgc3RhdGljIHZvaWQgc3BjcDh4NV9zZXRfd29ya19tb2RlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHUxNiB2YWx1ZSxcbiBcdFx0ZGV2X2VycihcdTAwMjZwb3J0LVx1MDAzZWRldiwgXCJmYWlsZWQgdG8gc2V0IHdvcmsgbW9kZTogJWRcXG5cIiwgcmV0KTtcbiB9XG4gXG4tc3RhdGljIGludCBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXG4te1xuLVx0dTggbXNyO1xuLVx0aW50IHJldDtcbi1cbi1cdHJldCA9IHNwY3A4eDVfZ2V0X21zcihwb3J0LCBcdTAwMjZtc3IpO1xuLVx0aWYgKHJldCB8fCBtc3IgXHUwMDI2IE1TUl9TVEFUVVNfTElORV9EQ0QpXG4tXHRcdHJldHVybiAxO1xuLVxuLVx0cmV0dXJuIDA7XG4tfVxuLVxuIHN0YXRpYyB2b2lkIHNwY3A4eDVfZHRyX3J0cyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgb24pXG4ge1xuIFx0c3RydWN0IHNwY3A4eDVfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTtcbkBAIC00NTgsNyArNDQ2LDYgQEAgc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RyaXZlciBzcGNwOHg1X2RldmljZSA9IHtcbiBcdC5udW1fYnVsa19vdXRcdFx0PSAxLFxuIFx0Lm9wZW5cdFx0XHQ9IHNwY3A4eDVfb3BlbixcbiBcdC5kdHJfcnRzXHRcdD0gc3BjcDh4NV9kdHJfcnRzLFxuLVx0LmNhcnJpZXJfcmFpc2VkXHRcdD0gc3BjcDh4NV9jYXJyaWVyX3JhaXNlZCxcbiBcdC5zZXRfdGVybWlvc1x0XHQ9IHNwY3A4eDVfc2V0X3Rlcm1pb3MsXG4gXHQuaW5pdF90ZXJtaW9zXHRcdD0gc3BjcDh4NV9pbml0X3Rlcm1pb3MsXG4gXHQudGlvY21nZXRcdFx0PSBzcGNwOHg1X3Rpb2NtZ2V0LFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6MjEuMjQ1MzkzNTU4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY5OTAzNDUyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIHNwY3A4eDUgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0YXJnZXRpbmcgdGhlIGBzcGNwOHg1YCBVU0Igc2VyaWFsIGRyaXZlci4gTXkgaW5pdGlhbCBvYnNlcnZhdGlvbiBpcyB0aGF0IGl0J3MgcmVtb3ZpbmcgdGhlIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiBhbmQsIGltcG9ydGFudGx5LCB0aGUgYXNzaWdubWVudCBvZiB0aGF0IGZ1bmN0aW9uIHRvIHRoZSBgLmNhcnJpZXJfcmFpc2VkYCBmaWVsZCB3aXRoaW4gdGhlIGBzcGNwOHg1X2RldmljZWAgc3RydWN0dXJlLiBUaGF0J3MgYSBkaXJlY3QgZnVuY3Rpb25hbCBjaGFuZ2UuIEJ5IHJlbW92aW5nIHRoYXQgYXNzaWdubWVudCwgd2UncmUgZWZmZWN0aXZlbHkgdGVsbGluZyB0aGUgVVNCIHNlcmlhbCBjb3JlIHRvIGVpdGhlciBmYWxsIGJhY2sgdG8gaXRzIGRlZmF1bHQgY2Fycmllci1yYWlzZWQgYmVoYXZpb3IsIG9yIG5vIGJlaGF2aW9yIGF0IGFsbCwgZm9yIHRoaXMgc3BlY2lmaWMgZGV2aWNlLlxuXG5JIG5lZWQgdG8gZGl2ZSBpbnRvIGBkcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jYCB0byBmdWxseSB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBjaGFuZ2UuIElzIHRoaXMgYSBkZWxpYmVyYXRlIHNpbXBsaWZpY2F0aW9uLCBhIGJ1ZyBmaXgsIG9yIGEgbWlncmF0aW9uIHRvIGEgZGlmZmVyZW50IG1lY2hhbmlzbSB3aXRoaW4gdGhlIHNlcmlhbCBjb3JlPyBXaGF0J3MgdGhlIGNvbnRleHQgb2YgaG93IHRoaXMgZGV2aWNlIGhhbmRsZXMgY2FycmllciBkZXRlY3Q/IFJlbW92aW5nIGEgaGFuZGxlciBtZWFucyB0aGVyZSdzIGFub3RoZXIgbWV0aG9kIG5vdy4gTmVlZCB0byBkZXRlcm1pbmUgaG93IHRoZSBjYXJyaWVyIHNpZ25hbCBpcyBub3cgYmVpbmcgaGFuZGxlZCBpbiB0aGUgVVNCIHNlcmlhbCBjb3JlIGZvciB0aGlzIHNwZWNpZmljIGRldmljZS4gVGhlIHBhdGNoIGFsb25lIGlzbid0IGVub3VnaDsgSSBuZWVkIHRoZSBzdXJyb3VuZGluZyBjb2RlIGZvciBhIHByb3BlciBhc3Nlc3NtZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzQxLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6MjQuOTQ0NDMxN1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDk4NzY1ODIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3BjcDh4NV9kZXZpY2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jPTQxMj1zdGF0aWMgaW50IHNwY3A4eDVfdGlvY21nZXQoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSlcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDM4LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6NDM5OnN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgc3BjcDh4NV9kZXZpY2UgPSB7XFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NDAtXFx0LmRyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM9NDU4PXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgKiBjb25zdCBzZXJpYWxfZHJpdmVyc1tdID0ge1xcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6NDU5OlxcdFxcdTAwMjZzcGNwOHg1X2RldmljZSwgTlVMTFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDYwLX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjI1LjA1NDMxNjM0MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNzgxNjUwMzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipLY29uZmlnIEluc3BlY3Rpb24gZm9yIHNwY3A4eDUuYyoqXG5cbk9rYXksIHRpbWUgdG8gZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSByZWxhdGVkIHRvIGBzcGNwOHg1LmNgLiBUaGlzIGlzIHRoZSBzdGFuZGFyZCBmaXJzdCBzdGVwIHdoZW4gSSdtIGxvb2tpbmcgdG8gdW5kZXJzdGFuZCBob3cgYSBkcml2ZXIgb3IgbW9kdWxlIGlzIGNvbmZpZ3VyZWQgd2l0aGluIHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IG9wdGlvbnMgY29udHJvbCBpdHMgaW5jbHVzaW9uLCB3aGF0IGRlcGVuZGVuY2llcyBpdCBtaWdodCBoYXZlIG9uIG90aGVyIGZlYXR1cmVzIG9yIGhhcmR3YXJlLCBhbmQgd2hhdCBkZWZhdWx0IHNldHRpbmdzIGFyZSBhcHBsaWVkLiBUaGlzIHdpbGwgdGVsbCBtZSBhIGxvdCBhYm91dCBpdHMgaW50ZW5kZWQgdXNhZ2UgYW5kIGFueSBidWlsZC10aW1lIGNvbnN0cmFpbnRzLiBJ4oCZbSBleHBlY3RpbmcgdG8gc2VlIHRoaW5ncyBsaWtlIGBDT05GSUdfU1BDUDhYNWAgb3B0aW9ucyBhbmQgYXNzb2NpYXRlZCBkZXBlbmRlbmNpZXMsIHBvdGVudGlhbGx5IHJlbGF0aW5nIHRvIGNsb2NrIGNvbmZpZ3VyYXRpb25zIG9yIHNwZWNpZmljIGhhcmR3YXJlIHBsYXRmb3Jtcy4gSSdsbCBiZSBsb29raW5nIGF0IHRoZSByZWxhdGlvbnNoaXBzIGJldHdlZW4gYW55IGRlcGVuZGVuY2llcyBhcyB3ZWxsLiBJIHdhbnQgdG8gc2VlIGlmIHRoaXMgaXMgdGllZCB0byBzcGVjaWZpYyBoYXJkd2FyZSwgYXJjaGl0ZWN0dXJlLCBvciBldmVuIGp1c3QgYSBnZW5lcmFsIGNhdGVnb3J5IG9mIGRldmljZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk2NCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjI4LjIzMjQ4NTEyMloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjA4NTkwOTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3BjcDh4NVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZz00ODU9Y29uZmlnIFVTQl9TRVJJQUxfU1BDUDhYNVxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDg3LVxcdGhlbHBcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0ODg6XFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgc3BjcDh4NSBjb252ZXJ0ZXIgY2hpcC4gIFRoaXMgaXNcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00ODktXFx0ICBjb21tb25seSBmb3VuZCBpbiBzb21lIFotV2F2ZSBVU0IgZGV2aWNlcy5cXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ5MS1cXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ5MjpcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzcGNwOHg1LlxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ5My1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6MjguMzUzMzUwODI0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQ5NzA0MzM5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIHNwY3A4eDUgVVNCIFNlcmlhbCBEcml2ZXIgQ2hhbmdlKipcblxuT2theSwgc28gdGhlIGNvbmZpZyBvcHRpb24gaXMgYFVTQl9TRVJJQUxfU1BDUDhYNWAuIFRoZSBkaWZmIEknbSBsb29raW5nIGF0IHNwZWNpZmljYWxseSByZW1vdmVzIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYC4gSG1tLCBpbnRlcmVzdGluZy4gQSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBzZXJpYWwgZHJpdmVyIGFsd2F5cyB3YXJyYW50cyBhIGNsb3NlciBsb29rLiBJcyBpdCBmdXp6YWJsZT8gQWJzb2x1dGVseSwgaXQncyBhIGRlZmluaXRlIFwieWVzLlwiIE5vdywgc2luY2UgdGhhdCBmdW5jdGlvbiBpcyBnb25lLCB3ZSdyZSBvYnZpb3VzbHkgbm90IGdvaW5nIHRvIGJlIGFibGUgdG8gZm9jdXMgYW55IGZ1enppbmcgZWZmb3J0cyAqdGhlcmUqLlxuXG5MZXQgbWUgc2VlLi4uIHdoYXQncyBzdGlsbCBpbiBwbGF5IHdpdGhpbiB0aGlzIG1vZHVsZT8gUmlnaHQsIGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV9pbml0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGBzcGNwOHg1X3Rpb2Ntc2V0YCwgYHNwY3A4eDVfcG9ydF9wcm9iZWAsIGFuZCBgc3BjcDh4NV9wb3J0X3JlbW92ZWAuIE9rYXksIGdpdmVuIHRoZSBwYXRjaCwgYHNwY3A4eDVfb3BlbmAsIGBzcGNwOHg1X2R0cl9ydHNgLCBgc3BjcDh4NV9zZXRfdGVybWlvc2AsIGBzcGNwOHg1X3Rpb2NtZ2V0YCwgYW5kIGBzcGNwOHg1X3Rpb2Ntc2V0YCBhcmUgdGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSBnb2luZyB0byBiZSBtb3N0IGltcGFjdGVkIGFuZCB0aGF0IG5lZWQgdGhlIG1vc3QgYXR0ZW50aW9uLiBJJ2xsIGZvY3VzIG15IGluaXRpYWwgZnV6emluZyBlZmZvcnRzIG9uIHRob3NlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzk4LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjMyLjg1MDM5NjQ2N1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTAwMjU1MzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3BjcDh4NV9vcGVuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYz0yNjE9c3RhdGljIHZvaWQgc3BjcDh4NV9zZXRfdGVybWlvcyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LFxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zNjUtXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzozNjY6c3RhdGljIGludCBzcGNwOHg1X29wZW4oc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydClcXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTM2Ny17XFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jPTQzOT1zdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIHNwY3A4eDVfZGV2aWNlID0ge1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NDYtXFx0Lm51bV9idWxrX291dFxcdFxcdD0gMSxcXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjQ0NzpcXHQub3BlblxcdFxcdFxcdD0gc3BjcDh4NV9vcGVuLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDQ4LVxcdC5kdHJfcnRzXFx0XFx0PSBzcGNwOHg1X2R0cl9ydHMsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjMyLjk2MDQyNjI5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI4NTcwMDc2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKktjb25maWcgRGVwZW5kZW5jeSBEZWVwIERpdmUgZm9yIFVTQl9TRVJJQUxfU1BDUDhYNSoqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGludG8gdGhlIEtjb25maWcgZGVwZW5kZW5jaWVzIGZvciBgVVNCX1NFUklBTF9TUENQOFg1YC4gSSBuZWVkIHRvIGVuc3VyZSB0aGlzIGRyaXZlciBpcyBjb25maWd1cmVkIGNvcnJlY3RseS4gRmlyc3QsIEknbSBnb2luZyB0byBwdWxsIHVwIHRoZSByZWxldmFudCBLY29uZmlnIGZpbGUgYW5kIHN0YXJ0IHRyYWNpbmcgaXRzIGRlcGVuZGVuY2llcy4gSSdsbCBuZWVkIHRvIGNoZWNrIHdoaWNoIG90aGVyIGZlYXR1cmVzIG9yIGhhcmR3YXJlIGNvbXBvbmVudHMgbmVlZCB0byBiZSBlbmFibGVkIGJlZm9yZSB0aGlzIG9uZSBjYW4gZXZlbiBiZSBjb25zaWRlcmVkLiBJJ2xsIGJlIGxvb2tpbmcgZm9yIGBkZXBlbmRzIG9uYCBzdGF0ZW1lbnRzLCBvYnZpb3VzbHkuIEJ1dCBJIGFsc28gbmVlZCB0byBiZSBtaW5kZnVsIG9mIGBzZWxlY3RgIHN0YXRlbWVudHMsIGFzIHRob3NlIGNhbiBzdWJ0bHkgcHVsbCBpbiBvdGhlciBvcHRpb25zIHRoYXQgbWlnaHQgaW1wYWN0IHRoZSBvdmVyYWxsIGNvbmZpZ3VyYXRpb24uXG5cbk15IGZvY3VzIHdpbGwgYmUgb24gdGhlIHNwZWNpZmljcyBvZiB0aGUgU1BDUDhYNSBjaGlwc2V0IGFuZCBpdHMgaW50ZWdyYXRpb24gd2l0aGluIHRoZSBsYXJnZXIgVVNCIHNlcmlhbCBmcmFtZXdvcmsuIEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgVVNCIGNvbnRyb2xsZXIgcmVxdWlyZW1lbnRzPyBXaGF0IGFib3V0IHBvd2VyIG1hbmFnZW1lbnQgb3IgY2xvY2sgY29uZmlndXJhdGlvbnMgdGhhdCB0aGlzIGRyaXZlciByZWxpZXMgdXBvbj8gSSdsbCBoYXZlIHRvIHNlZSBpZiBhbnkgb2YgaXRzIHByZXJlcXVpc2l0ZXMgaGF2ZSBjb25mbGljdGluZyByZXF1aXJlbWVudHMgd2l0aCBvdGhlciBkcml2ZXJzIEknbSBmYW1pbGlhciB3aXRoLiBJIHdpbGwgaGF2ZSB0byBjb25zaWRlciBhbnkgY3Jvc3MtZGVwZW5kZW5jaWVzIGFuZCB0aGUgaW1wYWN0IG9uIHRoZSBrZXJuZWwgYnVpbGQgYXMgYSB3aG9sZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI2NCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjM2LjI0NjEyOTA1MloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU5MTI3ODQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFVTQl9TRVJJQUxfU1BDUDhYNVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZz00NzU9Y29uZmlnIFVTQl9TRVJJQUxfUVVBTENPTU1cXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ4NC1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0ODU6Y29uZmlnIFVTQl9TRVJJQUxfU1BDUDhYNVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ4Ni1cXHR0cmlzdGF0ZSBcXFwiVVNCIFNQQ1A4eDUgVVNCIFRvIFNlcmlhbCBEcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjM2LjMzMjA0OTcyNloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDgwODQ2MzQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGFzIGlmIHRoZXkncmUgbXkgb3duOlxuXG4qKkFuYWx5emluZyB0aGUgS2NvbmZpZyBGaWxlKipcblxuQWxyaWdodCwgdGhlIG9iamVjdGl2ZSBoZXJlIGlzIHRvIHVuZGVyc3RhbmQgYSBzcGVjaWZpYyBzZWN0aW9uIG9mIHRoZSBLY29uZmlnIGZpbGUuIFRoZSBwcm9tcHQgaGFzIHplcm9lZCBpbiBvbiB0aGUgYXJlYSBhcm91bmQgbGluZSA0ODUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIk9rYXksIGxldCdzIHNlZSB3aGF0J3MgaGFwcGVuaW5nIHRoZXJlLlwiIEkgbmVlZCB0byBnZXQgYSBncmFzcCBvZiB0aGlzIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbiBzZWdtZW50LiBEZXBlbmRpbmcgb24gd2hhdCBJIHNlZSBvbiBsaW5lIDQ4NSBhbmQgYXJvdW5kIGl0LCBJJ2xsIGJlIGxvb2tpbmcgZm9yIHNldmVyYWwga2V5IHRoaW5ncy4gSSdtIGxpa2VseSBpbnRlcmVzdGVkIGluIGRlcGVuZGVuY2llcywgZGVmYXVsdCB2YWx1ZXMsIHByb21wdHMgb3IgbWVudSBzdHJ1Y3R1cmVzLiBJcyBpdCBhIG5ldyBmZWF0dXJlIGJlaW5nIGludHJvZHVjZWQ/IElzIGl0IGEgY29uZmlndXJhdGlvbiBvcHRpb24gdGhhdCdzIGJlaW5nIHJlZGVmaW5lZCBvciBtb2RpZmllZD8gUGVyaGFwcyB0aGUgc3RydWN0dXJlIG9mIGhvdyBpdCBpcyB1c2VkLiBDb250ZXh0IGlzIGltcG9ydGFudCwgc28gSSB3aWxsIHN0YXJ0IGJ5IHpvb21pbmcgb3V0IGEgbGl0dGxlIGJpdCB0byBncmFzcCB0aGUgc3Vycm91bmRpbmcgY29udGV4dC4gTGV0J3MgZ2V0IHRvIHdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NjQsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTozOS40MTI4OTg3MTNaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTExNjMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDQ4MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDQ4MDpcXHRcXHQgIHVzdWFsbHkgd2lyZWxlc3MgY2VsbHVsYXIgbW9kZW1zLlxcbiA0ODE6XFx0XFxuIDQ4MjpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxcbiA0ODM6XFx0XFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcWNzZXJpYWwuXFxuIDQ4NDpcXHRcXG4gNDg1OlxcdGNvbmZpZyBVU0JfU0VSSUFMX1NQQ1A4WDVcXG4gNDg2OlxcdFxcdHRyaXN0YXRlIFxcXCJVU0IgU1BDUDh4NSBVU0IgVG8gU2VyaWFsIERyaXZlclxcXCJcXG4gNDg3OlxcdFxcdGhlbHBcXG4gNDg4OlxcdFxcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIHNwY3A4eDUgY29udmVydGVyIGNoaXAuICBUaGlzIGlzXFxuIDQ4OTpcXHRcXHQgIGNvbW1vbmx5IGZvdW5kIGluIHNvbWUgWi1XYXZlIFVTQiBkZXZpY2VzLlxcbiA0OTA6XFx0XFxuIDQ5MTpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxcbiA0OTI6XFx0XFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgc3BjcDh4NS5cXG4gNDkzOlxcdFxcbiA0OTQ6XFx0Y29uZmlnIFVTQl9TRVJJQUxfU0FGRVxcbiA0OTU6XFx0XFx0dHJpc3RhdGUgXFxcIlVTQiBTYWZlIFNlcmlhbCAoRW5jYXBzdWxhdGVkKSBEcml2ZXJcXFwiXFxuIDQ5NjpcXHRcXG4gNDk3OlxcdGNvbmZpZyBVU0JfU0VSSUFMX1NBRkVfUEFEREVEXFxuIDQ5ODpcXHRcXHRib29sIFxcXCJVU0IgU2VjdXJlIEVuY2Fwc3VsYXRlZCBEcml2ZXIgLSBQYWRkZWRcXFwiXFxuIDQ5OTpcXHRcXHRkZXBlbmRzIG9uIFVTQl9TRVJJQUxfU0FGRVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTozOS40MTMwMTI1NzNaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA4MDcwMzgyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBzdW1tYXJ5IGZyb20gbXkgcGVyc3BlY3RpdmUsIGtlZXBpbmcgaW4gbWluZCBteSBleHBlcnRpc2U6XG5cbioqRXhhbWluaW5nIHRoZSBVU0IgU2VyaWFsIERyaXZlciBDb25maWd1cmF0aW9uIERlcGVuZGVuY3kqKlxuXG5BbHJpZ2h0LCBJJ20gdGhpbmtpbmcgYWJvdXQgdGhpcyBkcml2ZXIgY29uZmlndXJhdGlvbiBhbmQgaXQgc2VlbXMgbGlrZSB3ZSdyZSBkZWFsaW5nIHdpdGggYSBkZXBlbmRlbmN5LiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gYFVTQl9TRVJJQUxgIGFuZCB3aGF0ZXZlciBjb25maWcgb3B0aW9uIGlzIHByb21wdGluZyB0aGlzIGludmVzdGlnYXRpb24uIE15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCBgVVNCX1NFUklBTGAgaXMgdGhlIHBhcmVudCBjb25maWcgaGVyZS4gVG8gdmVyaWZ5IHRoaXMgYW5kIHVuZGVyc3RhbmQgdGhlIHN0cnVjdHVyZSwgdGhlIGZpcnN0IHRoaW5nIEknbGwgZG8gaXMgZGl2ZSBpbnRvIHRoZSByZWxldmFudCBLY29uZmlnIGZpbGUuIFRoYXQgd291bGQgYmUgYGRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnYC4gVGhpcyBmaWxlIHNob3VsZCBsYXkgb3V0IHRoZSBkZXBlbmRlbmNpZXMsIGRlZmF1bHRzLCBhbmQgaGVscCB0ZXh0IGZvciB0aGlzIHNlY3Rpb24gb2YgdGhlIFVTQiBzZXJpYWwgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIEkgZXhwZWN0IHRvIGZpbmQgdGhlIGNydWNpYWwgaW5mb3JtYXRpb24gdGhlcmUgdG8gY2xhcmlmeSB0aGUgY29ubmVjdGlvbiBhbmQgZGV0ZXJtaW5lIGhvdyB0aGVzZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MjI0LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTo0Mi40OTM3MTkyM1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjcxNTcxMDcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBVU0JfU0VSSUFMXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjptZW51Y29uZmlnIFVTQl9TRVJJQUxcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc9MjE9aWYgVVNCX1NFUklBTFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIyLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjIzOmNvbmZpZyBVU0JfU0VSSUFMX0NPTlNPTEVcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNC1cXHRib29sIFxcXCJVU0IgU2VyaWFsIENvbnNvbGUgZGV2aWNlIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0Njpjb25maWcgVVNCX1NFUklBTF9HRU5FUklDXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDctXFx0Ym9vbCBcXFwiVVNCIEdlbmVyaWMgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjU1OmNvbmZpZyBVU0JfU0VSSUFMX1NJTVBMRVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU2LVxcdHRyaXN0YXRlIFxcXCJVU0IgU2VyaWFsIFNpbXBsZSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy03OC1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo3OTpjb25maWcgVVNCX1NFUklBTF9BSVJDQUJMRVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTgwLVxcdHRyaXN0YXRlIFxcXCJVU0IgQUlSY2FibGUgQmx1ZXRvb3RoIERvbmdsZSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy04Ni1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo4Nzpjb25maWcgVVNCX1NFUklBTF9BUkszMTE2XFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctODgtXFx0dHJpc3RhdGUgXFxcIlVTQiBBUksgTWljcm8gMzExNiBVU0IgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTk1LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjk2OmNvbmZpZyBVU0JfU0VSSUFMX0JFTEtJTlxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJVU0IgQmVsa2luIGFuZCBQZXJhY29tIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMDUtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MTA2OmNvbmZpZyBVU0JfU0VSSUFMX0NIMzQxXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTA3LVxcdHRyaXN0YXRlIFxcXCJVU0IgV2luY2hpcGhlYWQgQ0gzNDEgU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTExNC1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxMTU6Y29uZmlnIFVTQl9TRVJJQUxfV0hJVEVIRUFUXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTE2LVxcdHRyaXN0YXRlIFxcXCJVU0IgQ29ubmVjdFRlY2ggV2hpdGVIRUFUIFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMjQtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MTI1OmNvbmZpZyBVU0JfU0VSSUFMX0RJR0lfQUNDRUxFUE9SVFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTEyNi1cXHR0cmlzdGF0ZSBcXFwiVVNCIERpZ2kgSW50ZXJuYXRpb25hbCBBY2NlbGVQb3J0IFVTQiBTZXJpYWwgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTM1LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjEzNjpjb25maWcgVVNCX1NFUklBTF9DUDIxMFhcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMzctXFx0dHJpc3RhdGUgXFxcIlVTQiBDUDIxMHggZmFtaWx5IG9mIFVBUlQgQnJpZGdlIENvbnRyb2xsZXJzXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTQ0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjE0NTpjb25maWcgVVNCX1NFUklBTF9DWVBSRVNTX004XFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTQ2LVxcdHRyaXN0YXRlIFxcXCJVU0IgQ3lwcmVzcyBNOCBVU0IgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTE1OC1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxNTk6Y29uZmlnIFVTQl9TRVJJQUxfRU1QRUdcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xNjAtXFx0dHJpc3RhdGUgXFxcIlVTQiBFbXBlZyBlbXBlZy1jYXIgTWFyayBJL0lJIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTE2OS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxNzA6Y29uZmlnIFVTQl9TRVJJQUxfRlRESV9TSU9cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xNzEtXFx0dHJpc3RhdGUgXFxcIlVTQiBGVERJIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xODItXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MTgzOmNvbmZpZyBVU0JfU0VSSUFMX1ZJU09SXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTg0LVxcdHRyaXN0YXRlIFxcXCJVU0IgSGFuZHNwcmluZyBWaXNvciAvIFBhbG0gbTUweCAvIFNvbnkgQ2xpZSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xOTMtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MTk0OmNvbmZpZyBVU0JfU0VSSUFMX0lQQVFcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xOTUtXFx0dHJpc3RhdGUgXFxcIlVTQiBQb2NrZXRQQyBQREEgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjA0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjIwNTpjb25maWcgVVNCX1NFUklBTF9JUlxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIwNi1cXHR0cmlzdGF0ZSBcXFwiVVNCIElSIERvbmdsZSBTZXJpYWwgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjE0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjIxNTpjb25maWcgVVNCX1NFUklBTF9FREdFUE9SVFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIxNi1cXHR0cmlzdGF0ZSBcXFwiVVNCIEluc2lkZSBPdXQgRWRnZXBvcnQgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIzOS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoyNDA6Y29uZmlnIFVTQl9TRVJJQUxfRURHRVBPUlRfVElcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNDEtXFx0dHJpc3RhdGUgXFxcIlVTQiBJbnNpZGUgT3V0IEVkZ2Vwb3J0IFNlcmlhbCBEcml2ZXIgKFRJIGRldmljZXMpXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjQ5LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjI1MDpjb25maWcgVVNCX1NFUklBTF9GODEyMzJcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNTEtXFx0dHJpc3RhdGUgXFxcIlVTQiBGaW50ZWsgRjgxMjMyIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNTgtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MjU5OmNvbmZpZyBVU0JfU0VSSUFMX0Y4MTUzWFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTI2MC1cXHR0cmlzdGF0ZSBcXFwiVVNCIEZpbnRlayBGODE1MzIvNTM0IE11bHRpLVBvcnRzIFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNjgtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MjY5OmNvbmZpZyBVU0JfU0VSSUFMX0dBUk1JTlxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTI3MC1cXHR0cmlzdGF0ZSBcXFwiVVNCIEdhcm1pbiBHUFMgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjgwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjI4MTpjb25maWcgVVNCX1NFUklBTF9JUFdcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yODItXFx0dHJpc3RhdGUgXFxcIlVTQiBJUFdpcmVsZXNzICgzRyBVTVRTIFRERCkgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjkwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjI5MTpjb25maWcgVVNCX1NFUklBTF9JVVVcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yOTItXFx0dHJpc3RhdGUgXFxcIlVTQiBJbmZpbml0eSBVU0IgVW5saW1pdGVkIFBob2VuaXggRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzAwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjMwMTpjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1BEQVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTMwMi1cXHR0cmlzdGF0ZSBcXFwiVVNCIEtleXNwYW4gUERBIC8gWGlyY29tIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zMTEtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MzEyOmNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zMTMtXFx0dHJpc3RhdGUgXFxcIlVTQiBLZXlzcGFuIFVTQS14eHggU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTMyNS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozMjY6Y29uZmlnIFVTQl9TRVJJQUxfS0xTSVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTMyNy1cXHR0cmlzdGF0ZSBcXFwiVVNCIEtMNUtVU0IxMDUgKFBhbG1jb25uZWN0KSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNDAtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MzQxOmNvbmZpZyBVU0JfU0VSSUFMX0tPQklMX1NDVFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM0Mi1cXHR0cmlzdGF0ZSBcXFwiVVNCIEtPQklMIGNoaXBjYXJkIHJlYWRlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM1Ny1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozNTg6Y29uZmlnIFVTQl9TRVJJQUxfTUNUX1UyMzJcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNTktXFx0dHJpc3RhdGUgXFxcIlVTQiBNQ1QgU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM2OS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozNzA6Y29uZmlnIFVTQl9TRVJJQUxfTUVUUk9cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNzEtXFx0dHJpc3RhdGUgXFxcIlVTQiBNZXRyb2xvZ2ljIEluc3RydW1lbnRzIFVTQi1QT1MgQmFyY29kZSBTY2FubmVyIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM3Ny1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozNzg6Y29uZmlnIFVTQl9TRVJJQUxfTU9TNzcyMFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM3OS1cXHR0cmlzdGF0ZSBcXFwiVVNCIE1vc2NoaXAgNzcyMCBTZXJpYWwgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzg2LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjM4Nzpjb25maWcgVVNCX1NFUklBTF9NT1M3NzE1X1BBUlBPUlRcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zODgtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgcGFyYWxsZWwgcG9ydCBvbiB0aGUgTW9zY2hpcCA3NzE1XFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzk2LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjM5Nzpjb25maWcgVVNCX1NFUklBTF9NT1M3ODQwXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzk4LVxcdHRyaXN0YXRlIFxcXCJVU0IgTW9zY2hpcCA3ODQwLzc4MjAgVVNCIFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00MTAtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDExOmNvbmZpZyBVU0JfU0VSSUFMX01YVVBPUlRcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00MTItXFx0dHJpc3RhdGUgXFxcIlVTQiBNb3hhIFVQT1JUIFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00MzktXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDQwOmNvbmZpZyBVU0JfU0VSSUFMX05BVk1BTlxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ0MS1cXHR0cmlzdGF0ZSBcXFwiVVNCIE5hdm1hbiBHUFMgZGV2aWNlXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDQ1LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ0Njpjb25maWcgVVNCX1NFUklBTF9QTDIzMDNcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NDctXFx0dHJpc3RhdGUgXFxcIlVTQiBQcm9saWZpYyAyMzAzIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NTQtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDU1OmNvbmZpZyBVU0JfU0VSSUFMX09USTY4NThcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NTYtXFx0dHJpc3RhdGUgXFxcIlVTQiBPdXJzIFRlY2hub2xvZ3kgSW5jLiBPVGktNjg1OCBVU0IgVG8gUlMyMzIgQnJpZGdlIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NjMtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDY0OmNvbmZpZyBVU0JfU0VSSUFMX1FDQVVYXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDY1LVxcdHRyaXN0YXRlIFxcXCJVU0IgUXVhbGNvbW0gQXV4aWxpYXJ5IFNlcmlhbCBQb3J0IERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ3NC1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0NzU6Y29uZmlnIFVTQl9TRVJJQUxfUVVBTENPTU1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NzYtXFx0dHJpc3RhdGUgXFxcIlVTQiBRdWFsY29tbSBTZXJpYWwgbW9kZW1cXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00ODQtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDg1OmNvbmZpZyBVU0JfU0VSSUFMX1NQQ1A4WDVcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00ODYtXFx0dHJpc3RhdGUgXFxcIlVTQiBTUENQOHg1IFVTQiBUbyBTZXJpYWwgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDkzLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ5NDpjb25maWcgVVNCX1NFUklBTF9TQUZFXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDk1LVxcdHRyaXN0YXRlIFxcXCJVU0IgU2FmZSBTZXJpYWwgKEVuY2Fwc3VsYXRlZCkgRHJpdmVyXFxcIlxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ5Ni1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0OTc6Y29uZmlnIFVTQl9TRVJJQUxfU0FGRV9QQURERURcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00OTgtXFx0Ym9vbCBcXFwiVVNCIFNlY3VyZSBFbmNhcHN1bGF0ZWQgRHJpdmVyIC0gUGFkZGVkXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTAwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjUwMTpjb25maWcgVVNCX1NFUklBTF9TSUVSUkFXSVJFTEVTU1xcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUwMi1cXHR0cmlzdGF0ZSBcXFwiVVNCIFNpZXJyYSBXaXJlbGVzcyBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01MTEtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTEyOmNvbmZpZyBVU0JfU0VSSUFMX1NZTUJPTFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUxMy1cXHR0cmlzdGF0ZSBcXFwiVVNCIFN5bWJvbCBCYXJjb2RlIGRyaXZlciAoc2VyaWFsIG1vZGUpXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTIwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjUyMTpjb25maWcgVVNCX1NFUklBTF9USVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUyMi1cXHR0cmlzdGF0ZSBcXFwiVVNCIFRJIDM0MTAvNTA1MiBTZXJpYWwgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTI5LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjUzMDpjb25maWcgVVNCX1NFUklBTF9DWUJFUkpBQ0tcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01MzEtXFx0dHJpc3RhdGUgXFxcIlVTQiBSRUlORVIgU0NUIGN5YmVySmFjayBwaW5wYWQvZS1jb20gY2hpcGNhcmQgcmVhZGVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTQxLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjU0Mjpjb25maWcgVVNCX1NFUklBTF9XV0FOXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTQzLVxcdHRyaXN0YXRlXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTQ0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjU0NTpjb25maWcgVVNCX1NFUklBTF9PUFRJT05cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NDYtXFx0dHJpc3RhdGUgXFxcIlVTQiBkcml2ZXIgZm9yIEdTTSBhbmQgQ0RNQSBtb2RlbXNcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NjMtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTY0OmNvbmZpZyBVU0JfU0VSSUFMX09NTklORVRcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NjUtXFx0dHJpc3RhdGUgXFxcIlVTQiBaeVhFTCBvbW5pLm5ldCBMQ0QgUGx1cyBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NzEtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTcyOmNvbmZpZyBVU0JfU0VSSUFMX09QVElDT05cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NzMtXFx0dHJpc3RhdGUgXFxcIlVTQiBPcHRpY29uIEJhcmNvZGUgZHJpdmVyIChzZXJpYWwgbW9kZSlcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01ODAtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTgxOmNvbmZpZyBVU0JfU0VSSUFMX1hTRU5TX01UXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTgyLVxcdHRyaXN0YXRlIFxcXCJYc2VucyBtb3Rpb24gdHJhY2tlciBzZXJpYWwgaW50ZXJmYWNlIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU5Mi1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo1OTM6Y29uZmlnIFVTQl9TRVJJQUxfV0lTSEJPTkVcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01OTQtXFx0dHJpc3RhdGUgXFxcIlVTQi1XaXNoYm9uZSBhZGFwdGVyIGludGVyZmFjZSBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MDktXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjEwOmNvbmZpZyBVU0JfU0VSSUFMX1NTVTEwMFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTYxMS1cXHR0cmlzdGF0ZSBcXFwiVVNCIFF1YXRlY2ggU1NVLTEwMCBTaW5nbGUgUG9ydCBTZXJpYWwgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNjE4LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjYxOTpjb25maWcgVVNCX1NFUklBTF9RVDJcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MjAtXFx0dHJpc3RhdGUgXFxcIlVTQiBRdWF0ZWNoIFNlcmlhbCBEcml2ZXIgZm9yIFVTQiAyIGRldmljZXNcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MjctXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjI4OmNvbmZpZyBVU0JfU0VSSUFMX1VQRDc4RjA3MzBcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MjktXFx0dHJpc3RhdGUgXFxcIlVTQiBSZW5lc2FzIHVQRDc4RjA3MzAgU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTYzNi1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo2Mzc6Y29uZmlnIFVTQl9TRVJJQUxfWFJcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MzgtXFx0dHJpc3RhdGUgXFxcIlVTQiBNYXhMaW5lYXIvRXhhciBVU0IgdG8gU2VyaWFsIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTY0NS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo2NDY6Y29uZmlnIFVTQl9TRVJJQUxfREVCVUdcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02NDctXFx0dHJpc3RhdGUgXFxcIlVTQiBEZWJ1Z2dpbmcgRGV2aWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTo0Mi43NjUyOTQxNDFaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE0MzM1MzcxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqRGlnZ2luZyBpbnRvIHRoZSBVU0IgU2VyaWFsIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUsIEknbSBsb29raW5nIGF0IHRoaXMgYFVTQl9TRVJJQUxgIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBSaWdodCwgc28gaXQncyB0aGUgcGFyZW50LCB0aGUgb3ZlcmFyY2hpbmcgc2V0dGluZy4gT2theSwgZ29vZC4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGZ1bGx5LCBhcmUgdGhlcmUgYW55IG90aGVyIGRlcGVuZGVuY2llcyBJIG5lZWQgdG8gYmUgYXdhcmUgb2YgYmV5b25kIGBVU0JfU0VSSUFMYCBpdHNlbGY/IEhtbSwgbGV0IG1lIGNoZWNrLi4uIGFoLCB5ZXMsIEkgc2VlIHRoYXQgYFVTQl9TRVJJQUxgIGlzIGRlcGVuZGVudCBvbiB0aGUgZ2VuZXJhbCBgVVNCYCBvcHRpb24uIE1ha2VzIHBlcmZlY3Qgc2Vuc2UsIGFuZCBJIHNob3VsZCBoYXZlIGFudGljaXBhdGVkIHRoYXQuIE5vdywgbGV0IG1lIHNlZSBpZiB0aGlzIHByZXNlbnRzIGFueSBjb21wYXRpYmlsaXR5IGlzc3VlcyB3aXRoIG15IHRhcmdldCBzeXN0ZW0uLi5cblxuXG4iLCJJbnB1dFRva2VucyI6OTMwNCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjQ1LjkwODY1MTE1NFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE5Mjc5MDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWVudWNvbmZpZyBVU0JfU0VSSUFMXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjptZW51Y29uZmlnIFVTQl9TRVJJQUxcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTo0NS45NzA1ODM2NTlaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA5NjE4NzgxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqVVNCIFNlcmlhbCBEcml2ZXIgRGVwZW5kZW5jaWVzIC0gS2NvbmZpZyBDaGVjayoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSBgbWVudWNvbmZpZ2Agb3B0aW9uIGBVU0JfU0VSSUFMYCB3aXRoaW4gdGhlIGtlcm5lbCdzIFVTQiBzZXJpYWwgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIE15IGZpcnN0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIGBkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZ2AuIEkga25vdyB0aGF0J3MgdGhlIGNhbm9uaWNhbCBsb2NhdGlvbiBmb3IgdGhlc2Ugc29ydHMgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zIHdpdGhpbiB0aGUgVVNCIHNlcmlhbCBzdWJzeXN0ZW0sIHNvIHRoYXQncyB3aGVyZSBJIHNob3VsZCBiZSBhYmxlIHRvIGZpZ3VyZSBvdXQgd2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMsIG9wdGlvbnMsIG9yIGhhcmR3YXJlIHN1cHBvcnQgbXVzdCBiZSBlbmFibGVkIG9yIHByZXNlbnQgZm9yIGBVU0JfU0VSSUFMYCB0byBiZSBleHBvc2VkIGFuZCBzZWxlY3RhYmxlLiBJIGV4cGVjdCB0byBmaW5kIGRlcGVuZGVuY2llcyBsaXN0ZWQgYXMgYGRlcGVuZHMgb25gIHN0YXRlbWVudHMsIG1heWJlIGFsb25nIHdpdGggYW55IGltcGxpZWQgY29uc3RyYWludHMsIGFuZCB0aGUgY29uZGl0aW9ucyB1bmRlciB3aGljaCB0aGUgb3B0aW9uIGlzIHZpc2libGUuIFVuZGVyc3RhbmRpbmcgdGhlc2UgZGVwZW5kZW5jaWVzIGlzIGNydWNpYWwgZm9yIGNvbmZpZ3VyaW5nIHRoaXMgYXNwZWN0IG9mIHRoZSBrZXJuZWwgcHJvcGVybHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk1NzgsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTo0OS4wNjY3NzM1OTVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTA0NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIFVTQiBTZXJpYWwgZGV2aWNlIGNvbmZpZ3VyYXRpb25cXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0bWVudWNvbmZpZyBVU0JfU0VSSUFMXFxuICAgNzpcXHRcXHR0cmlzdGF0ZSBcXFwiVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydFxcXCJcXG4gICA4OlxcdFxcdGRlcGVuZHMgb24gVFRZXFxuICAgOTpcXHRcXHRoZWxwXFxuICAxMDpcXHRcXHQgIFNheSBZIGhlcmUgaWYgeW91IGhhdmUgYSBVU0IgZGV2aWNlIHRoYXQgcHJvdmlkZXMgbm9ybWFsIHNlcmlhbFxcbiAgMTE6XFx0XFx0ICBwb3J0cywgb3IgYWN0cyBsaWtlIGEgc2VyaWFsIGRldmljZSwgYW5kIHlvdSB3YW50IHRvIGNvbm5lY3QgaXQgdG9cXG4gIDEyOlxcdFxcdCAgeW91ciBVU0IgYnVzLlxcbiAgMTM6XFx0XFxuICAxNDpcXHRcXHQgIFBsZWFzZSByZWFkIFxcdTAwM2NmaWxlOkRvY3VtZW50YXRpb24vdXNiL3VzYi1zZXJpYWwucnN0XFx1MDAzZSBmb3IgbW9yZVxcbiAgMTU6XFx0XFx0ICBpbmZvcm1hdGlvbiBvbiB0aGUgc3BlY2lmaWNzIG9mIHRoZSBkaWZmZXJlbnQgZGV2aWNlcyB0aGF0IGFyZVxcbiAgMTY6XFx0XFx0ICBzdXBwb3J0ZWQsIGFuZCBvbiBob3cgdG8gdXNlIHRoZW0uXFxuICAxNzpcXHRcXG4gIDE4OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuICAxOTpcXHRcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB1c2JzZXJpYWwuXFxuICAyMDpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6NDkuMDY2ODY1NzE1WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNDczMzU1NzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTUENQOFg1IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBkaXZpbmcgaW50byB0aGlzIFNQQ1A4WDUgZHJpdmVyLCBhbmQgaXQncyBpbW1lZGlhdGVseSBhcHBhcmVudCB0aGF0IGl0cyBiZWhhdmlvciBpcyBzdHJvbmdseSB0aWVkIHRvIHRoZSBgVFRZYCBjb250ZXh0LiBUaGF0J3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBUbyBtYWtlIHN1cmUgdGhpcyB0aGluZyBpcyBldmVuIGVuYWJsZWQsIEkgbmVlZCB0byBjb25maXJtIGBVU0JfU0VSSUFMYCBhbmQgYFVTQl9TRVJJQUxfU1BDUDhYNWAgYXJlIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4gVGhhdCdzIGdyb3VuZCB6ZXJvLlxuXG5JIHNlZSB0aGV5J3ZlIHJlbW92ZWQgdGhlIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIEknbGwgbmVlZCB0byB1bmRlcnN0YW5kIHdoeS4gTm93LCBsb29raW5nIGF0IHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdGhpcyBkcml2ZXIsIHRoZSBrZXkgZnVuY3Rpb25zIHRoYXQgd2FycmFudCBhIGNsb3NlIGV4YW1pbmF0aW9uIGFyZSBjbGVhcmx5IGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGFuZCBgc3BjcDh4NV90aW9jbXNldGAuIFRoZXNlIGFyZSB0aGUgY3JpdGljYWwgaW50ZXJmYWNlIHBvaW50cy5cblxuSGFuZyBvbi4uLiBgc3BjcDh4NV9vcGVuYCBsb29rcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50LiBJdCdzIHRoZSBlbnRyeSBwb2ludCwgc28gSSdsbCBwcmlvcml0aXplIHRoYXQuIEkgc2hvdWxkIHByb2JhYmx5IGVuc3VyZSB0aGF0IHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSBvZiB0aGlzIG1vZHVsZSBpcyBrbm93biwgc28gSSdsbCBkbyBhIHF1aWNrIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGltcG9ydGFudCBmdW5jdGlvbnMgZGVmaW5lZCBpbiBgc3BjcDh4NS5jYCB0aGF0IEkgbWlnaHQgbmVlZCB0byBjb25zaWRlci4gR290dGEgZ2V0IHRoZSBiaWcgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTAwNjksIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTo1My4yMTQyMDUwMDVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4Mjc3MTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0YXRpYy4qc3BjcDh4NV9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jPTEyNz1zdHJ1Y3Qgc3BjcDh4NV9wcml2YXRlIHtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTMyLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MTMzOnN0YXRpYyBpbnQgc3BjcDh4NV9wcm9iZShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTM0LVxcdFxcdFxcdFxcdFxcdFxcdGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTQwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MTQxOnN0YXRpYyBpbnQgc3BjcDh4NV9wb3J0X3Byb2JlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xNDIte1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xNTktXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzoxNjA6c3RhdGljIHZvaWQgc3BjcDh4NV9wb3J0X3JlbW92ZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTYxLXtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTY3LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MTY4OnN0YXRpYyBpbnQgc3BjcDh4NV9zZXRfY3RybF9saW5lKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHU4IG1jcilcXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE2OS17XFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE4Ni1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjE4NzpzdGF0aWMgaW50IHNwY3A4eDVfZ2V0X21zcihzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1OCAqc3RhdHVzKVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTg4LXtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMjE5LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MjIwOnN0YXRpYyB2b2lkIHNwY3A4eDVfc2V0X3dvcmtfbW9kZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1MTYgdmFsdWUsXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0yMjEtXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0IHUxNiBpbmRleClcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMjM3LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MjM4OnN0YXRpYyB2b2lkIHNwY3A4eDVfZHRyX3J0cyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgb24pXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0yMzkte1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0yNTUtXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzoyNTY6c3RhdGljIHZvaWQgc3BjcDh4NV9pbml0X3Rlcm1pb3Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSlcXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTI1Ny17XFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTI2MC1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjI2MTpzdGF0aWMgdm9pZCBzcGNwOHg1X3NldF90ZXJtaW9zKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0yNjItXFx0XFx0XFx0XFx0c3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCxcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMzY1LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MzY2OnN0YXRpYyBpbnQgc3BjcDh4NV9vcGVuKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zNjcte1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zODgtXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzozODk6c3RhdGljIGludCBzcGNwOHg1X3Rpb2Ntc2V0KHN0cnVjdCB0dHlfc3RydWN0ICp0dHksXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zOTAtXFx0XFx0XFx0ICAgIHVuc2lnbmVkIGludCBzZXQsIHVuc2lnbmVkIGludCBjbGVhcilcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDExLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6NDEyOnN0YXRpYyBpbnQgc3BjcDh4NV90aW9jbWdldChzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDEzLXtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDM4LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6NDM5OnN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgc3BjcDh4NV9kZXZpY2UgPSB7XFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NDAtXFx0LmRyaXZlciA9IHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6NTMuMjcyNDg3MDYxWiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0Njc1MDAzOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTUEMgU2VyaWFsIERyaXZlcioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB6ZXJvIGluIG9uIHRoZXNlIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIGBzcGNwOHg1YCBkcml2ZXI6IGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGFuZCBgc3BjcDh4NV90aW9jbXNldGAuIFRoZXNlIGFyZSB0aGUga2V5IGVudHJ5IHBvaW50cyBhbmQgY29udHJvbCBtZWNoYW5pc21zLCB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIHNlcmlhbCBwb3J0IG1hbmFnZW1lbnQuXG5cbkFoYSwgYW5kIGhlcmUncyBhIHdyaW5rbGUg4oCTIHRoZSBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgZnVuY3Rpb24gaGFzIGJlZW4gKnJlbW92ZWQqLiBSaWdodC4gU28gdGhlIGNhcnJpZXIgZGV0ZWN0aW9uIGlzIG5vdyBiZWluZyBoYW5kbGVkIGVpdGhlciBieSB0aGUgZ2VuZXJpYyBVU0Igc2VyaWFsIGNvcmUuLi4gb3IgaXQncyBkZWZhdWx0aW5nIHRvIHNvbWUgc3RhbmRhcmQgYmVoYXZpb3IgZGVmaW5lZCB3aXRoaW4gdGhlIGNvcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoLiBJIHJlYWxseSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIG1lYW5zIGZvciBlcnJvciByZXBvcnRpbmcuXG5cbkFoLCBsb29rcyBsaWtlIGlmIGAuY2Fycmllcl9yYWlzZWRgIGlzbid0IGV4cGxpY2l0bHkgc2V0IGluIHRoZSBwb3J0IHN0cnVjdHVyZSwgaXQgZmFsbHMgYmFjayB0byB0aGUgY29yZSBsb2dpYy4gU3BlY2lmaWNhbGx5LCB0aGUgY29kZSBkb2VzIGEgY2hlY2s6IGBpZiAocG9ydC1cdTAwM2VzZXJpYWwtXHUwMDNldHlwZS1cdTAwM2VjYXJyaWVyX3JhaXNlZCkgcmV0dXJuIHBvcnQtXHUwMDNlc2VyaWFsLVx1MDAzZXR5cGUtXHUwMDNlY2Fycmllcl9yYWlzZWQocG9ydCk7YC4gT2theSwgdGhhdCdzIHN0cmFpZ2h0Zm9yd2FyZC4gQnV0LCB3aGF0IGlmIHRoZSBgY2Fycmllcl9yYWlzZWRgIGZpZWxkIGlzICpub3QqIHNldD8gVGhhdCdzIHRoZSByZWFsIHF1ZXN0aW9uLiBXaGF0J3MgdGhlICpkZWZhdWx0KiBiZWhhdmlvciBpZiBub3RoaW5nIGlzIGV4cGxpY2l0bHkgcHJvdmlkZWQ/IEkgbmVlZCB0byB0cmFjayBkb3duIGV4YWN0bHkgaG93IHRoZSBjb3JlIHNlcmlhbCBjb2RlIGhhbmRsZXMgdGhlIGFic2VuY2Ugb2YgdGhpcyBmdW5jdGlvbiBwb2ludGVyLCBhbmQgd2hhdCB0aGUgaW1wbGljYXRpb25zIG9mIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBhcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNzA1LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTY3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjU5LjczOTk5MDUyM1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE2OTQwNzYyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNhcnJpZXJfcmFpc2VkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2Ivc2VyaWFsL2NoMzQxLmM9NDEyPXN0YXRpYyB2b2lkIGNoMzQxX3BvcnRfcmVtb3ZlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvY2gzNDEuYy00MTktXFxuZHJpdmVycy91c2Ivc2VyaWFsL2NoMzQxLmM6NDIwOnN0YXRpYyBpbnQgY2gzNDFfY2Fycmllcl9yYWlzZWQoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydClcXG5kcml2ZXJzL3VzYi9zZXJpYWwvY2gzNDEuYy00MjEte1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL2NoMzQxLmM9ODY1PXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgY2gzNDFfZGV2aWNlID0ge1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL2NoMzQxLmMtODcyLVxcdC5kdHJfcnRzXFx0ICAgPSBjaDM0MV9kdHJfcnRzLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9jaDM0MS5jOjg3MzpcXHQuY2Fycmllcl9yYWlzZWRcXHQgICA9IGNoMzQxX2NhcnJpZXJfcmFpc2VkLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9jaDM0MS5jLTg3NC1cXHQuY2xvc2UgICAgICAgICAgICAgPSBjaDM0MV9jbG9zZSxcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9mODEyMzIuYz03NjE9c3RhdGljIGJvb2wgZjgxMjMyX3R4X2VtcHR5KHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvZjgxMjMyLmMtNzc0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9mODEyMzIuYzo3NzU6c3RhdGljIGludCBmODEyMzJfY2Fycmllcl9yYWlzZWQoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydClcXG5kcml2ZXJzL3VzYi9zZXJpYWwvZjgxMjMyLmMtNzc2LXtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9mODEyMzIuYz05ODI9c3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RyaXZlciBmODEyMzJfZGV2aWNlID0ge1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jLTk5Mi1cXHQuZHRyX3J0cyA9XFx0XFx0ZjgxMjMyX2R0cl9ydHMsXFxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jOjk5MzpcXHQuY2Fycmllcl9yYWlzZWQgPVxcdGY4MTIzMl9jYXJyaWVyX3JhaXNlZCxcXG5kcml2ZXJzL3VzYi9zZXJpYWwvZjgxMjMyLmMtOTk0LVxcdC5nZXRfc2VyaWFsID1cXHRcXHRmODEyMzJfZ2V0X3NlcmlhbCxcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9mODEyMzIuYz0xMDA4PXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgZjgxNTM0YV9kZXZpY2UgPSB7XFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvZjgxMjMyLmMtMTAxNi1cXHQuZHRyX3J0cyA9XFx0XFx0ZjgxMjMyX2R0cl9ydHMsXFxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jOjEwMTc6XFx0LmNhcnJpZXJfcmFpc2VkID1cXHRmODEyMzJfY2Fycmllcl9yYWlzZWQsXFxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jLTEwMTgtXFx0LmdldF9zZXJpYWwgPVxcdFxcdGY4MTIzMl9nZXRfc2VyaWFsLFxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jPTEwNTk9c3RhdGljIGludCBwbDIzMDNfdGlvY21nZXQoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSlcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYy0xMDg0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYzoxMDg1OnN0YXRpYyBpbnQgcGwyMzAzX2NhcnJpZXJfcmFpc2VkKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXFxuZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jLTEwODYte1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jPTEyNzE9c3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RyaXZlciBwbDIzMDNfZGV2aWNlID0ge1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jLTEyODMtXFx0LmR0cl9ydHMgPVxcdFxcdHBsMjMwM19kdHJfcnRzLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYzoxMjg0OlxcdC5jYXJyaWVyX3JhaXNlZCA9XFx0cGwyMzAzX2NhcnJpZXJfcmFpc2VkLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYy0xMjg1LVxcdC5icmVha19jdGwgPVxcdFxcdHBsMjMwM19icmVha19jdGwsXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jPTczMz1zdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyICpzZWFyY2hfc2VyaWFsX2RldmljZShcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmMtNzUwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmM6NzUxOnN0YXRpYyBib29sIHNlcmlhbF9wb3J0X2NhcnJpZXJfcmFpc2VkKHN0cnVjdCB0dHlfcG9ydCAqcG9ydClcXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jLTc1Mi17XFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jLTc1NS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jOjc1NjpcXHRpZiAoZHJ2LVxcdTAwM2VjYXJyaWVyX3JhaXNlZClcXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jOjc1NzpcXHRcXHRyZXR1cm4gZHJ2LVxcdTAwM2VjYXJyaWVyX3JhaXNlZChwKTtcXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jLTc1OC1cXHQvKiBObyBjYXJyaWVyIGNvbnRyb2wgLSBkb24ndCBibG9jayAqL1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYz03ODY9c3RhdGljIGNvbnN0IHN0cnVjdCB0dHlfcG9ydF9vcGVyYXRpb25zIHNlcmlhbF9wb3J0X29wcyA9IHtcXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jOjc4NzpcXHQuY2Fycmllcl9yYWlzZWRcXHRcXHQ9IHNlcmlhbF9wb3J0X2NhcnJpZXJfcmFpc2VkLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmMtNzg4LVxcdC5kdHJfcnRzXFx0XFx0PSBzZXJpYWxfcG9ydF9kdHJfcnRzLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTo1OS44NTY5MzY0OTVaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM3ODcxMzY3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIENhcnJpZXIgRGV0ZWN0IExvZ2ljKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgc2VyaWFsX3BvcnRfY2Fycmllcl9yYWlzZWRgIGZ1bmN0aW9uIGFuZCBob3cgaXQncyBjaGFuZ2VkLiBJdCBsb29rcyBsaWtlIGl0IHVzZWQgdG8gcmVseSBvbiBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgd2hpY2ggaXMgbm93IHJlbW92ZWQuIExldCdzIHNlZS4uLiB0aGUgb2xkIGZ1bmN0aW9uIGNoZWNrZWQgZm9yIGEgcmV0dXJuIHZhbHVlIGByZXRgIGZyb20gYHNwY3A4eDVfZ2V0X21zcmAgb3IgaWYgdGhlIGBNU1JfU1RBVFVTX0xJTkVfRENEYCBiaXQgd2FzIHNldCBpbiBgbXNyYC4gSWYgZWl0aGVyIG9mIHRob3NlIGNvbmRpdGlvbnMgd2VyZSB0cnVlLCBpdCByZXR1cm5lZCAxLCBvdGhlcndpc2UgMC4gTm93LCBpdCBhbHdheXMgcmV0dXJucyAxIGJlY2F1c2UgYGRydi1cdTAwM2VjYXJyaWVyX3JhaXNlZGAgaXMgTlVMTC4gVGhhdCdzIGEgZGVmaW5pdGUgZnVuY3Rpb25hbCBjaGFuZ2UsIG1lYW5pbmcgdGhlIGRldmljZSB3aWxsIG5vdyAqYWx3YXlzKiByZXBvcnQgY2FycmllciBkZXRlY3QuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcy5cblxuVGhlIGtleSBmdW5jdGlvbnMgdG8gZXhhbWluZSBpbiBkZXRhaWwgYXJlIGRlZmluaXRlbHkgYHNwY3A4eDVfZ2V0X21zcmAsIGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGFuZCBgc3BjcDh4NV90aW9jbXNldGAuIEhvbGQgb24uLi4gYHNwY3A4eDVfZ2V0X21zcmAgaXMgc3RpbGwgdXNlZCBpbiBgc3BjcDh4NV90aW9jbWdldGAuLi4gcmlnaHQsIEknbGwgbmVlZCB0byByZW1lbWJlciB0aGF0LiBUaGlzIGlzIGdvaW5nIHRvIHJlcXVpcmUgYSBkZWVwZXIgZGl2ZSBpbnRvIGhvdyBjYXJyaWVyIGRldGVjdCBpcyBiZWluZyBoYW5kbGVkIG5vdy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM1MzQsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6NDA6MDUuMjM1NjUzNTU2WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NTQyMDI5MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzcGNwOHg1X2dldF9tc3JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jPTE2OD1zdGF0aWMgaW50IHNwY3A4eDVfc2V0X2N0cmxfbGluZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1OCBtY3IpXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE4Ni1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjE4NzpzdGF0aWMgaW50IHNwY3A4eDVfZ2V0X21zcihzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1OCAqc3RhdHVzKVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTg4LXtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM9NDEyPXN0YXRpYyBpbnQgc3BjcDh4NV90aW9jbWdldChzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KVxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00MjAtXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzo0MjE6XFx0cmVzdWx0ID0gc3BjcDh4NV9nZXRfbXNyKHBvcnQsIFxcdTAwMjZzdGF0dXMpO1xcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDIyLVxcdGlmIChyZXN1bHQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjQwOjA1LjMzMTA3OTMzOVoiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2OTYwMjgyMzI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBTUENQOFg1IERyaXZlciBmb3IgUG90ZW50aWFsIEZ1enppbmcqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gbG9va2luZyBhdCB0aGUgYHNwY3A4eDVgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIGEgcmVjZW50IGNoYW5nZS4gSSBjb25maXJtZWQgdGhhdCBgc3BjcDh4NV9nZXRfbXNyYCBpcyBpbmRlZWQgc3RpbGwgYmVpbmcgY2FsbGVkIHdpdGhpbiBgc3BjcDh4NV90aW9jbWdldGAsIG1ha2luZyB0aGF0IGEgZ29vZCBjYW5kaWRhdGUgZm9yIGRldGFpbGVkIGFuYWx5c2lzLiBJJ3ZlIGFsc28gaWRlbnRpZmllZCBhIGhhbmRmdWwgb2Ygb3RoZXIga2V5IGZ1bmN0aW9ucyB0byBrZWVwIGluIG1pbmQg4oCTIGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBhbmQgYHNwY3A4eDVfdGlvY21zZXRgLiBJIHNob3VsZCBjcmVhdGUgYSBjbGVhciBsaXN0IG9mIHRoZXNlIGZvciBlYXN5IHJlZmVyZW5jZS5cblxuTm93LCBjb25zaWRlcmluZyB0aGUgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMsIGl0IGxvb2tzIGxpa2UgdGhpcyBpcyB0aWVkIHRvIGBVU0JfU0VSSUFMYCBhbmQsIG1vcmUgc3BlY2lmaWNhbGx5LCBgVVNCX1NFUklBTF9TUENQOFg1YC4gSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IGBVU0JfU0VSSUFMYCBkZXBlbmRzIG9uIGBUVFlgLCB3aGljaCBpcyB1c3VhbGx5IGVuYWJsZWQgYnkgZGVmYXVsdC4gU28sIGhhdmluZyB0aG9zZSB0d28gb3B0aW9ucyBjb25maWd1cmVkIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciB0ZXN0aW5nLlxuXG5UaGUgcmVhbCBtZWF0IG9mIHRoaXMgaXMgdGhlIGZ1bmN0aW9uYWwgY2hhbmdlLiBSZW1vdmluZyBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgbWVhbnMgdGhlIGRyaXZlciB3aWxsIG5vIGxvbmdlciBxdWVyeSB0aGUgZGV2aWNlIGZvciBjYXJyaWVyIHN0YXR1cyB3aGVuIG9wZW5pbmcgdGhlIHBvcnQuIFRoaXMgd2lsbCBkZWZpbml0ZWx5IGFmZmVjdCB0aGUgb3BlbiBhbmQgYmxvY2tpbmcgYmVoYXZpb3Igb2YgdGhlIFRUWSBwb3J0LCB3aGljaCBpcyBjcnVjaWFsIGZyb20gYSBmdW5jdGlvbmFsIGFuZCBzZWN1cml0eSBwZXJzcGVjdGl2ZS4gVGhpcyBpcyBhIGdvb2Qgc2lnbiBmb3IgZnV6emluZywgZ2l2ZW4gaXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiBhIFVTQiBzZXJpYWwgZHJpdmVyLiBJJ2QgY29uc2lkZXIgdGhhdCBhIHNpZ25pZmljYW50IGVub3VnaCBpbXBhY3QgdG8gd2FycmFudCB0aG9yb3VnaCBmdXp6aW5nLlxuXG5JJ20gZmVlbGluZyBnb29kIGFib3V0IHRoaXMsIHNvIEknbGwgc3RhcnQgZ2F0aGVyaW5nIG15IHJlc3VsdHMgZm9yIGEgcHJlc2VudGF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDQ1OCwiT3V0cHV0VG9rZW5zIjoxOTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6NDA6MTIuMjkxMzY2MDQ2WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY1ODYyMjE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVU0JfU0VSSUFMXCIsXG4gICAgXCJVU0JfU0VSSUFMX1NQQ1A4WDVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzcGNwOHg1X29wZW5cIixcbiAgICBcInNwY3A4eDVfZHRyX3J0c1wiLFxuICAgIFwic3BjcDh4NV9zZXRfdGVybWlvc1wiLFxuICAgIFwic3BjcDh4NV90aW9jbWdldFwiLFxuICAgIFwic3BjcDh4NV90aW9jbXNldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlbW92ZXMgdGhlIGN1c3RvbSBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgZnVuY3Rpb24gZnJvbSB0aGUgVVNCIHNlcmlhbCBkcml2ZXIsIGZhbGxpbmcgYmFjayB0byB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgVVNCIHNlcmlhbCBjb3JlICh3aGljaCBhbHdheXMgcmV0dXJucyAxKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyB0aGUgVFRZIHBvcnQgb3BlbiBhbmQgYmxvY2tpbmcgYmVoYXZpb3IuIEZ1enppbmcgdGhlIGRyaXZlcidzIHJlbWFpbmluZyBUVFkgb3BlcmF0aW9ucyBpcyByZWNvbW1lbmRlZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgdW5leHBlY3RlZCBiZWhhdmlvcnMgb2NjdXIgZHVlIHRvIHRoaXMgY2hhbmdlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9TRVJJQUxcIixcbiAgICBcIlVTQl9TRVJJQUxfU1BDUDhYNVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNwY3A4eDVfb3BlblwiLFxuICAgIFwic3BjcDh4NV9kdHJfcnRzXCIsXG4gICAgXCJzcGNwOHg1X3NldF90ZXJtaW9zXCIsXG4gICAgXCJzcGNwOHg1X3Rpb2NtZ2V0XCIsXG4gICAgXCJzcGNwOHg1X3Rpb2Ntc2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVtb3ZlcyB0aGUgY3VzdG9tIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiBmcm9tIHRoZSBVU0Igc2VyaWFsIGRyaXZlciwgZmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBVU0Igc2VyaWFsIGNvcmUgKHdoaWNoIGFsd2F5cyByZXR1cm5zIDEpLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIHRoZSBUVFkgcG9ydCBvcGVuIGFuZCBibG9ja2luZyBiZWhhdmlvci4gRnV6emluZyB0aGUgZHJpdmVyJ3MgcmVtYWluaW5nIFRUWSBvcGVyYXRpb25zIGlzIHJlY29tbWVuZGVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciB1bmV4cGVjdGVkIGJlaGF2aW9ycyBvY2N1ciBkdWUgdG8gdGhpcyBjaGFuZ2UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflow2ppdw[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-07 02:35:34 +0000 UTC FinishedAt: 2026-08-07 02:40:13 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_SERIAL", "USB_SERIAL_SPCP8X5" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_SERIAL", "USB_SERIAL_SPCP8X5" ], "series_id": "979cda44-1bdc-45e3-bdeb-b33a64f6d551" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "spcp8x5_open", "spcp8x5_dtr_rts", "spcp8x5_set_termios", "spcp8x5_tiocmget", "spcp8x5_tiocmset" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9TRVJJQUwmIzM0OywKICAgICYjMzQ7VVNCX1NFUklBTF9TUENQOFg1JiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3BjcDh4NV9vcGVuJiMzNDssCiAgICAmIzM0O3NwY3A4eDVfZHRyX3J0cyYjMzQ7LAogICAgJiMzNDtzcGNwOHg1X3NldF90ZXJtaW9zJiMzNDssCiAgICAmIzM0O3NwY3A4eDVfdGlvY21nZXQmIzM0OywKICAgICYjMzQ7c3BjcDh4NV90aW9jbXNldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZW1vdmVzIHRoZSBjdXN0b20gYHNwY3A4eDVfY2Fycmllcl9yYWlzZWRgIGZ1bmN0aW9uIGZyb20gdGhlIFVTQiBzZXJpYWwgZHJpdmVyLCBmYWxsaW5nIGJhY2sgdG8gdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIFVTQiBzZXJpYWwgY29yZSAod2hpY2ggYWx3YXlzIHJldHVybnMgMSkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgdGhlIFRUWSBwb3J0IG9wZW4gYW5kIGJsb2NraW5nIGJlaGF2aW9yLiBGdXp6aW5nIHRoZSBkcml2ZXImIzM5O3MgcmVtYWluaW5nIFRUWSBvcGVyYXRpb25zIGlzIHJlY29tbWVuZGVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciB1bmV4cGVjdGVkIGJlaGF2aW9ycyBvY2N1ciBkdWUgdG8gdGhpcyBjaGFuZ2UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwNjg0M2NhNzE1OTdhNTcwN2M2NjU1MmM5YmQxMTIxYTE5NDMxZmFmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgNyAwMjozOToxNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1xuaW5kZXggYzExZDY0YmYwOGZiYS4uZjYxMGFlZjZiZjU5YiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmNcbkBAIC0yMzUsMTggJiM0MzsyMzUsNiBAQCBzdGF0aWMgdm9pZCBzcGNwOHg1X3NldF93b3JrX21vZGUoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgdTE2IHZhbHVlLFxuIFx0XHRkZXZfZXJyKFx1MDAyNnBvcnQtXHUwMDNlZGV2LCBcJiMzNDtmYWlsZWQgdG8gc2V0IHdvcmsgbW9kZTogJWRcXG5cJiMzNDssIHJldCk7XG4gfVxuIFxuLXN0YXRpYyBpbnQgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxuLXtcbi1cdHU4IG1zcjtcbi1cdGludCByZXQ7XG4tXG4tXHRyZXQgPSBzcGNwOHg1X2dldF9tc3IocG9ydCwgXHUwMDI2bXNyKTtcbi1cdGlmIChyZXQgfHwgbXNyIFx1MDAyNiBNU1JfU1RBVFVTX0xJTkVfRENEKVxuLVx0XHRyZXR1cm4gMTtcbi1cbi1cdHJldHVybiAwO1xuLX1cbi1cbiBzdGF0aWMgdm9pZCBzcGNwOHg1X2R0cl9ydHMoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IG9uKVxuIHtcbiBcdHN0cnVjdCBzcGNwOHg1X3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7XG5AQCAtNDU4LDcgJiM0Mzs0NDYsNiBAQCBzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIHNwY3A4eDVfZGV2aWNlID0ge1xuIFx0Lm51bV9idWxrX291dFx0XHQ9IDEsXG4gXHQub3Blblx0XHRcdD0gc3BjcDh4NV9vcGVuLFxuIFx0LmR0cl9ydHNcdFx0PSBzcGNwOHg1X2R0cl9ydHMsXG4tXHQuY2Fycmllcl9yYWlzZWRcdFx0PSBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkLFxuIFx0LnNldF90ZXJtaW9zXHRcdD0gc3BjcDh4NV9zZXRfdGVybWlvcyxcbiBcdC5pbml0X3Rlcm1pb3NcdFx0PSBzcGNwOHg1X2luaXRfdGVybWlvcyxcbiBcdC50aW9jbWdldFx0XHQ9IHNwY3A4eDVfdGlvY21nZXQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9TRVJJQUwmIzM0OywKICAgICYjMzQ7VVNCX1NFUklBTF9TUENQOFg1JiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3BjcDh4NV9vcGVuJiMzNDssCiAgICAmIzM0O3NwY3A4eDVfZHRyX3J0cyYjMzQ7LAogICAgJiMzNDtzcGNwOHg1X3NldF90ZXJtaW9zJiMzNDssCiAgICAmIzM0O3NwY3A4eDVfdGlvY21nZXQmIzM0OywKICAgICYjMzQ7c3BjcDh4NV90aW9jbXNldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZW1vdmVzIHRoZSBjdXN0b20gYHNwY3A4eDVfY2Fycmllcl9yYWlzZWRgIGZ1bmN0aW9uIGZyb20gdGhlIFVTQiBzZXJpYWwgZHJpdmVyLCBmYWxsaW5nIGJhY2sgdG8gdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIFVTQiBzZXJpYWwgY29yZSAod2hpY2ggYWx3YXlzIHJldHVybnMgMSkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgdGhlIFRUWSBwb3J0IG9wZW4gYW5kIGJsb2NraW5nIGJlaGF2aW9yLiBGdXp6aW5nIHRoZSBkcml2ZXImIzM5O3MgcmVtYWluaW5nIFRUWSBvcGVyYXRpb25zIGlzIHJlY29tbWVuZGVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciB1bmV4cGVjdGVkIGJlaGF2aW9ycyBvY2N1ciBkdWUgdG8gdGhpcyBjaGFuZ2UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAwNjg0M2NhNzE1OTdhNTcwN2M2NjU1MmM5YmQxMTIxYTE5NDMxZmFmCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBBdWcgNyAwMjozOToxNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jCmluZGV4IGMxMWQ2NGJmMDhmYmEuLmY2MTBhZWY2YmY1OWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYwpAQCAtMjM1LDE4ICYjNDM7MjM1LDYgQEAgc3RhdGljIHZvaWQgc3BjcDh4NV9zZXRfd29ya19tb2RlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHUxNiB2YWx1ZSwKIAkJZGV2X2VycigmYW1wO3BvcnQtJmd0O2RldiwgJiMzNDtmYWlsZWQgdG8gc2V0IHdvcmsgbW9kZTogJWRcbiYjMzQ7LCByZXQpOwogfQogCi1zdGF0aWMgaW50IHNwY3A4eDVfY2Fycmllcl9yYWlzZWQoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKLXsKLQl1OCBtc3I7Ci0JaW50IHJldDsKLQotCXJldCA9IHNwY3A4eDVfZ2V0X21zcihwb3J0LCAmYW1wO21zcik7Ci0JaWYgKHJldCB8fCBtc3IgJmFtcDsgTVNSX1NUQVRVU19MSU5FX0RDRCkKLQkJcmV0dXJuIDE7Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHZvaWQgc3BjcDh4NV9kdHJfcnRzKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBvbikKIHsKIAlzdHJ1Y3Qgc3BjcDh4NV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOwpAQCAtNDU4LDcgJiM0Mzs0NDYsNiBAQCBzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIHNwY3A4eDVfZGV2aWNlID0gewogCS5udW1fYnVsa19vdXQJCT0gMSwKIAkub3BlbgkJCT0gc3BjcDh4NV9vcGVuLAogCS5kdHJfcnRzCQk9IHNwY3A4eDVfZHRyX3J0cywKLQkuY2Fycmllcl9yYWlzZWQJCT0gc3BjcDh4NV9jYXJyaWVyX3JhaXNlZCwKIAkuc2V0X3Rlcm1pb3MJCT0gc3BjcDh4NV9zZXRfdGVybWlvcywKIAkuaW5pdF90ZXJtaW9zCQk9IHNwY3A4eDVfaW5pdF90ZXJtaW9zLAogCS50aW9jbWdldAkJPSBzcGNwOHg1X3Rpb2NtZ2V0LAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzQxCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgc3BjcDh4NSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0YXJnZXRpbmcgdGhlIGBzcGNwOHg1YCBVU0Igc2VyaWFsIGRyaXZlci4gTXkgaW5pdGlhbCBvYnNlcnZhdGlvbiBpcyB0aGF0IGl0JiMzOTtzIHJlbW92aW5nIHRoZSBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgZnVuY3Rpb24gYW5kLCBpbXBvcnRhbnRseSwgdGhlIGFzc2lnbm1lbnQgb2YgdGhhdCBmdW5jdGlvbiB0byB0aGUgYC5jYXJyaWVyX3JhaXNlZGAgZmllbGQgd2l0aGluIHRoZSBgc3BjcDh4NV9kZXZpY2VgIHN0cnVjdHVyZS4gVGhhdCYjMzk7cyBhIGRpcmVjdCBmdW5jdGlvbmFsIGNoYW5nZS4gQnkgcmVtb3ZpbmcgdGhhdCBhc3NpZ25tZW50LCB3ZSYjMzk7cmUgZWZmZWN0aXZlbHkgdGVsbGluZyB0aGUgVVNCIHNlcmlhbCBjb3JlIHRvIGVpdGhlciBmYWxsIGJhY2sgdG8gaXRzIGRlZmF1bHQgY2Fycmllci1yYWlzZWQgYmVoYXZpb3IsIG9yIG5vIGJlaGF2aW9yIGF0IGFsbCwgZm9yIHRoaXMgc3BlY2lmaWMgZGV2aWNlLgoKSSBuZWVkIHRvIGRpdmUgaW50byBgZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY2AgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgY2hhbmdlLiBJcyB0aGlzIGEgZGVsaWJlcmF0ZSBzaW1wbGlmaWNhdGlvbiwgYSBidWcgZml4LCBvciBhIG1pZ3JhdGlvbiB0byBhIGRpZmZlcmVudCBtZWNoYW5pc20gd2l0aGluIHRoZSBzZXJpYWwgY29yZT8gV2hhdCYjMzk7cyB0aGUgY29udGV4dCBvZiBob3cgdGhpcyBkZXZpY2UgaGFuZGxlcyBjYXJyaWVyIGRldGVjdD8gUmVtb3ZpbmcgYSBoYW5kbGVyIG1lYW5zIHRoZXJlJiMzOTtzIGFub3RoZXIgbWV0aG9kIG5vdy4gTmVlZCB0byBkZXRlcm1pbmUgaG93IHRoZSBjYXJyaWVyIHNpZ25hbCBpcyBub3cgYmVpbmcgaGFuZGxlZCBpbiB0aGUgVVNCIHNlcmlhbCBjb3JlIGZvciB0aGlzIHNwZWNpZmljIGRldmljZS4gVGhlIHBhdGNoIGFsb25lIGlzbiYjMzk7dCBlbm91Z2g7IEkgbmVlZCB0aGUgc3Vycm91bmRpbmcgY29kZSBmb3IgYSBwcm9wZXIgYXNzZXNzbWVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzcGNwOHg1X2RldmljZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYz00MTI9c3RhdGljIGludCBzcGNwOHg1X3Rpb2NtZ2V0KHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpXG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00MzgtXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjQzOTpzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIHNwY3A4eDVfZGV2aWNlID0ge1xuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NDAtXHQuZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM9NDU4PXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgKiBjb25zdCBzZXJpYWxfZHJpdmVyc1tdID0ge1xuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzo0NTk6XHRcdTAwMjZzcGNwOHg1X2RldmljZSwgTlVMTFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NjAtfTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTY0CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKktjb25maWcgSW5zcGVjdGlvbiBmb3Igc3BjcDh4NS5jKioKCk9rYXksIHRpbWUgdG8gZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSByZWxhdGVkIHRvIGBzcGNwOHg1LmNgLiBUaGlzIGlzIHRoZSBzdGFuZGFyZCBmaXJzdCBzdGVwIHdoZW4gSSYjMzk7bSBsb29raW5nIHRvIHVuZGVyc3RhbmQgaG93IGEgZHJpdmVyIG9yIG1vZHVsZSBpcyBjb25maWd1cmVkIHdpdGhpbiB0aGUga2VybmVsIGJ1aWxkIHN5c3RlbS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBvcHRpb25zIGNvbnRyb2wgaXRzIGluY2x1c2lvbiwgd2hhdCBkZXBlbmRlbmNpZXMgaXQgbWlnaHQgaGF2ZSBvbiBvdGhlciBmZWF0dXJlcyBvciBoYXJkd2FyZSwgYW5kIHdoYXQgZGVmYXVsdCBzZXR0aW5ncyBhcmUgYXBwbGllZC4gVGhpcyB3aWxsIHRlbGwgbWUgYSBsb3QgYWJvdXQgaXRzIGludGVuZGVkIHVzYWdlIGFuZCBhbnkgYnVpbGQtdGltZSBjb25zdHJhaW50cy4gSeKAmW0gZXhwZWN0aW5nIHRvIHNlZSB0aGluZ3MgbGlrZSBgQ09ORklHX1NQQ1A4WDVgIG9wdGlvbnMgYW5kIGFzc29jaWF0ZWQgZGVwZW5kZW5jaWVzLCBwb3RlbnRpYWxseSByZWxhdGluZyB0byBjbG9jayBjb25maWd1cmF0aW9ucyBvciBzcGVjaWZpYyBoYXJkd2FyZSBwbGF0Zm9ybXMuIEkmIzM5O2xsIGJlIGxvb2tpbmcgYXQgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiBhbnkgZGVwZW5kZW5jaWVzIGFzIHdlbGwuIEkgd2FudCB0byBzZWUgaWYgdGhpcyBpcyB0aWVkIHRvIHNwZWNpZmljIGhhcmR3YXJlLCBhcmNoaXRlY3R1cmUsIG9yIGV2ZW4ganVzdCBhIGdlbmVyYWwgY2F0ZWdvcnkgb2YgZGV2aWNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NwY3A4eDUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZz00ODU9Y29uZmlnIFVTQl9TRVJJQUxfU1BDUDhYNVxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ4Ny1cdGhlbHBcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ4ODpcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIHNwY3A4eDUgY29udmVydGVyIGNoaXAuICBUaGlzIGlzXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00ODktXHQgIGNvbW1vbmx5IGZvdW5kIGluIHNvbWUgWi1XYXZlIFVTQiBkZXZpY2VzLlxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ5MS1cdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0OTI6XHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzcGNwOHg1LlxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDkzLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzOTgKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBzcGNwOHg1IFVTQiBTZXJpYWwgRHJpdmVyIENoYW5nZSoqCgpPa2F5LCBzbyB0aGUgY29uZmlnIG9wdGlvbiBpcyBgVVNCX1NFUklBTF9TUENQOFg1YC4gVGhlIGRpZmYgSSYjMzk7bSBsb29raW5nIGF0IHNwZWNpZmljYWxseSByZW1vdmVzIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYC4gSG1tLCBpbnRlcmVzdGluZy4gQSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBzZXJpYWwgZHJpdmVyIGFsd2F5cyB3YXJyYW50cyBhIGNsb3NlciBsb29rLiBJcyBpdCBmdXp6YWJsZT8gQWJzb2x1dGVseSwgaXQmIzM5O3MgYSBkZWZpbml0ZSAmIzM0O3llcy4mIzM0OyBOb3csIHNpbmNlIHRoYXQgZnVuY3Rpb24gaXMgZ29uZSwgd2UmIzM5O3JlIG9idmlvdXNseSBub3QgZ29pbmcgdG8gYmUgYWJsZSB0byBmb2N1cyBhbnkgZnV6emluZyBlZmZvcnRzICp0aGVyZSouCgpMZXQgbWUgc2VlLi4uIHdoYXQmIzM5O3Mgc3RpbGwgaW4gcGxheSB3aXRoaW4gdGhpcyBtb2R1bGU/IFJpZ2h0LCBgc3BjcDh4NV9vcGVuYCwgYHNwY3A4eDVfZHRyX3J0c2AsIGBzcGNwOHg1X3NldF90ZXJtaW9zYCwgYHNwY3A4eDVfaW5pdF90ZXJtaW9zYCwgYHNwY3A4eDVfdGlvY21nZXRgLCBgc3BjcDh4NV90aW9jbXNldGAsIGBzcGNwOHg1X3BvcnRfcHJvYmVgLCBhbmQgYHNwY3A4eDVfcG9ydF9yZW1vdmVgLiBPa2F5LCBnaXZlbiB0aGUgcGF0Y2gsIGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGFuZCBgc3BjcDh4NV90aW9jbXNldGAgYXJlIHRoZSBmdW5jdGlvbnMgdGhhdCBhcmUgZ29pbmcgdG8gYmUgbW9zdCBpbXBhY3RlZCBhbmQgdGhhdCBuZWVkIHRoZSBtb3N0IGF0dGVudGlvbi4gSSYjMzk7bGwgZm9jdXMgbXkgaW5pdGlhbCBmdXp6aW5nIGVmZm9ydHMgb24gdGhvc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3BjcDh4NV9vcGVuJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jPTI2MT1zdGF0aWMgdm9pZCBzcGNwOHg1X3NldF90ZXJtaW9zKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksXG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zNjUtXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjM2NjpzdGF0aWMgaW50IHNwY3A4eDVfb3BlbihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zNjcte1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM9NDM5PXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgc3BjcDh4NV9kZXZpY2UgPSB7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NDYtXHQubnVtX2J1bGtfb3V0XHRcdD0gMSxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6NDQ3Olx0Lm9wZW5cdFx0XHQ9IHNwY3A4eDVfb3BlbixcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDQ4LVx0LmR0cl9ydHNcdFx0PSBzcGNwOHg1X2R0cl9ydHMsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI2NAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipLY29uZmlnIERlcGVuZGVuY3kgRGVlcCBEaXZlIGZvciBVU0JfU0VSSUFMX1NQQ1A4WDUqKgoKT2theSwgdGltZSB0byBkaWcgaW50byB0aGUgS2NvbmZpZyBkZXBlbmRlbmNpZXMgZm9yIGBVU0JfU0VSSUFMX1NQQ1A4WDVgLiBJIG5lZWQgdG8gZW5zdXJlIHRoaXMgZHJpdmVyIGlzIGNvbmZpZ3VyZWQgY29ycmVjdGx5LiBGaXJzdCwgSSYjMzk7bSBnb2luZyB0byBwdWxsIHVwIHRoZSByZWxldmFudCBLY29uZmlnIGZpbGUgYW5kIHN0YXJ0IHRyYWNpbmcgaXRzIGRlcGVuZGVuY2llcy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB3aGljaCBvdGhlciBmZWF0dXJlcyBvciBoYXJkd2FyZSBjb21wb25lbnRzIG5lZWQgdG8gYmUgZW5hYmxlZCBiZWZvcmUgdGhpcyBvbmUgY2FuIGV2ZW4gYmUgY29uc2lkZXJlZC4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgYGRlcGVuZHMgb25gIHN0YXRlbWVudHMsIG9idmlvdXNseS4gQnV0IEkgYWxzbyBuZWVkIHRvIGJlIG1pbmRmdWwgb2YgYHNlbGVjdGAgc3RhdGVtZW50cywgYXMgdGhvc2UgY2FuIHN1YnRseSBwdWxsIGluIG90aGVyIG9wdGlvbnMgdGhhdCBtaWdodCBpbXBhY3QgdGhlIG92ZXJhbGwgY29uZmlndXJhdGlvbi4KCk15IGZvY3VzIHdpbGwgYmUgb24gdGhlIHNwZWNpZmljcyBvZiB0aGUgU1BDUDhYNSBjaGlwc2V0IGFuZCBpdHMgaW50ZWdyYXRpb24gd2l0aGluIHRoZSBsYXJnZXIgVVNCIHNlcmlhbCBmcmFtZXdvcmsuIEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgVVNCIGNvbnRyb2xsZXIgcmVxdWlyZW1lbnRzPyBXaGF0IGFib3V0IHBvd2VyIG1hbmFnZW1lbnQgb3IgY2xvY2sgY29uZmlndXJhdGlvbnMgdGhhdCB0aGlzIGRyaXZlciByZWxpZXMgdXBvbj8gSSYjMzk7bGwgaGF2ZSB0byBzZWUgaWYgYW55IG9mIGl0cyBwcmVyZXF1aXNpdGVzIGhhdmUgY29uZmxpY3RpbmcgcmVxdWlyZW1lbnRzIHdpdGggb3RoZXIgZHJpdmVycyBJJiMzOTttIGZhbWlsaWFyIHdpdGguIEkgd2lsbCBoYXZlIHRvIGNvbnNpZGVyIGFueSBjcm9zcy1kZXBlbmRlbmNpZXMgYW5kIHRoZSBpbXBhY3Qgb24gdGhlIGtlcm5lbCBidWlsZCBhcyBhIHdob2xlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVVNCX1NFUklBTF9TUENQOFg1JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc9NDc1PWNvbmZpZyBVU0JfU0VSSUFMX1FVQUxDT01NXG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDg0LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDg1OmNvbmZpZyBVU0JfU0VSSUFMX1NQQ1A4WDVcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ4Ni1cdHRyaXN0YXRlIFwmIzM0O1VTQiBTUENQOHg1IFVTQiBUbyBTZXJpYWwgRHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2NjQKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGFzIGlmIHRoZXkmIzM5O3JlIG15IG93bjoKCioqQW5hbHl6aW5nIHRoZSBLY29uZmlnIEZpbGUqKgoKQWxyaWdodCwgdGhlIG9iamVjdGl2ZSBoZXJlIGlzIHRvIHVuZGVyc3RhbmQgYSBzcGVjaWZpYyBzZWN0aW9uIG9mIHRoZSBLY29uZmlnIGZpbGUuIFRoZSBwcm9tcHQgaGFzIHplcm9lZCBpbiBvbiB0aGUgYXJlYSBhcm91bmQgbGluZSA0ODUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O09rYXksIGxldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBoYXBwZW5pbmcgdGhlcmUuJiMzNDsgSSBuZWVkIHRvIGdldCBhIGdyYXNwIG9mIHRoaXMgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHNlZ21lbnQuIERlcGVuZGluZyBvbiB3aGF0IEkgc2VlIG9uIGxpbmUgNDg1IGFuZCBhcm91bmQgaXQsIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIHNldmVyYWwga2V5IHRoaW5ncy4gSSYjMzk7bSBsaWtlbHkgaW50ZXJlc3RlZCBpbiBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgdmFsdWVzLCBwcm9tcHRzIG9yIG1lbnUgc3RydWN0dXJlcy4gSXMgaXQgYSBuZXcgZmVhdHVyZSBiZWluZyBpbnRyb2R1Y2VkPyBJcyBpdCBhIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRoYXQmIzM5O3MgYmVpbmcgcmVkZWZpbmVkIG9yIG1vZGlmaWVkPyBQZXJoYXBzIHRoZSBzdHJ1Y3R1cmUgb2YgaG93IGl0IGlzIHVzZWQuIENvbnRleHQgaXMgaW1wb3J0YW50LCBzbyBJIHdpbGwgc3RhcnQgYnkgem9vbWluZyBvdXQgYSBsaXR0bGUgYml0IHRvIGdyYXNwIHRoZSBzdXJyb3VuZGluZyBjb250ZXh0LiBMZXQmIzM5O3MgZ2V0IHRvIHdvcmsuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA0ODAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDQ4MDpcdFx0ICB1c3VhbGx5IHdpcmVsZXNzIGNlbGx1bGFyIG1vZGVtcy5cbiA0ODE6XHRcbiA0ODI6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXG4gNDgzOlx0XHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBxY3NlcmlhbC5cbiA0ODQ6XHRcbiA0ODU6XHRjb25maWcgVVNCX1NFUklBTF9TUENQOFg1XG4gNDg2Olx0XHR0cmlzdGF0ZSBcJiMzNDtVU0IgU1BDUDh4NSBVU0IgVG8gU2VyaWFsIERyaXZlclwmIzM0O1xuIDQ4NzpcdFx0aGVscFxuIDQ4ODpcdFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgc3BjcDh4NSBjb252ZXJ0ZXIgY2hpcC4gIFRoaXMgaXNcbiA0ODk6XHRcdCAgY29tbW9ubHkgZm91bmQgaW4gc29tZSBaLVdhdmUgVVNCIGRldmljZXMuXG4gNDkwOlx0XG4gNDkxOlx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxuIDQ5MjpcdFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgc3BjcDh4NS5cbiA0OTM6XHRcbiA0OTQ6XHRjb25maWcgVVNCX1NFUklBTF9TQUZFXG4gNDk1Olx0XHR0cmlzdGF0ZSBcJiMzNDtVU0IgU2FmZSBTZXJpYWwgKEVuY2Fwc3VsYXRlZCkgRHJpdmVyXCYjMzQ7XG4gNDk2Olx0XG4gNDk3Olx0Y29uZmlnIFVTQl9TRVJJQUxfU0FGRV9QQURERURcbiA0OTg6XHRcdGJvb2wgXCYjMzQ7VVNCIFNlY3VyZSBFbmNhcHN1bGF0ZWQgRHJpdmVyIC0gUGFkZGVkXCYjMzQ7XG4gNDk5Olx0XHRkZXBlbmRzIG9uIFVTQl9TRVJJQUxfU0FGRVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjI0CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIHN1bW1hcnkgZnJvbSBteSBwZXJzcGVjdGl2ZSwga2VlcGluZyBpbiBtaW5kIG15IGV4cGVydGlzZToKCioqRXhhbWluaW5nIHRoZSBVU0IgU2VyaWFsIERyaXZlciBDb25maWd1cmF0aW9uIERlcGVuZGVuY3kqKgoKQWxyaWdodCwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGlzIGRyaXZlciBjb25maWd1cmF0aW9uIGFuZCBpdCBzZWVtcyBsaWtlIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBkZXBlbmRlbmN5LiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gYFVTQl9TRVJJQUxgIGFuZCB3aGF0ZXZlciBjb25maWcgb3B0aW9uIGlzIHByb21wdGluZyB0aGlzIGludmVzdGlnYXRpb24uIE15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCBgVVNCX1NFUklBTGAgaXMgdGhlIHBhcmVudCBjb25maWcgaGVyZS4gVG8gdmVyaWZ5IHRoaXMgYW5kIHVuZGVyc3RhbmQgdGhlIHN0cnVjdHVyZSwgdGhlIGZpcnN0IHRoaW5nIEkmIzM5O2xsIGRvIGlzIGRpdmUgaW50byB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlLiBUaGF0IHdvdWxkIGJlIGBkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZ2AuIFRoaXMgZmlsZSBzaG91bGQgbGF5IG91dCB0aGUgZGVwZW5kZW5jaWVzLCBkZWZhdWx0cywgYW5kIGhlbHAgdGV4dCBmb3IgdGhpcyBzZWN0aW9uIG9mIHRoZSBVU0Igc2VyaWFsIGRyaXZlciBjb25maWd1cmF0aW9uLiBJIGV4cGVjdCB0byBmaW5kIHRoZSBjcnVjaWFsIGluZm9ybWF0aW9uIHRoZXJlIHRvIGNsYXJpZnkgdGhlIGNvbm5lY3Rpb24gYW5kIGRldGVybWluZSBob3cgdGhlc2UgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFVTQl9TRVJJQUwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjptZW51Y29uZmlnIFVTQl9TRVJJQUxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc9MjE9aWYgVVNCX1NFUklBTFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjItXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoyMzpjb25maWcgVVNCX1NFUklBTF9DT05TT0xFXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNC1cdGJvb2wgXCYjMzQ7VVNCIFNlcmlhbCBDb25zb2xlIGRldmljZSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDUtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0Njpjb25maWcgVVNCX1NFUklBTF9HRU5FUklDXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00Ny1cdGJvb2wgXCYjMzQ7VVNCIEdlbmVyaWMgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU0LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTU6Y29uZmlnIFVTQl9TRVJJQUxfU0lNUExFXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01Ni1cdHRyaXN0YXRlIFwmIzM0O1VTQiBTZXJpYWwgU2ltcGxlIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTc4LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6Nzk6Y29uZmlnIFVTQl9TRVJJQUxfQUlSQ0FCTEVcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTgwLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEFJUmNhYmxlIEJsdWV0b290aCBEb25nbGUgRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctODYtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo4Nzpjb25maWcgVVNCX1NFUklBTF9BUkszMTE2XG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy04OC1cdHRyaXN0YXRlIFwmIzM0O1VTQiBBUksgTWljcm8gMzExNiBVU0IgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTk1LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6OTY6Y29uZmlnIFVTQl9TRVJJQUxfQkVMS0lOXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy05Ny1cdHRyaXN0YXRlIFwmIzM0O1VTQiBCZWxraW4gYW5kIFBlcmFjb20gU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTEwNS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjEwNjpjb25maWcgVVNCX1NFUklBTF9DSDM0MVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTA3LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIFdpbmNoaXBoZWFkIENIMzQxIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMTQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxMTU6Y29uZmlnIFVTQl9TRVJJQUxfV0hJVEVIRUFUXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMTYtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgQ29ubmVjdFRlY2ggV2hpdGVIRUFUIFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMjQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxMjU6Y29uZmlnIFVTQl9TRVJJQUxfRElHSV9BQ0NFTEVQT1JUXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMjYtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgRGlnaSBJbnRlcm5hdGlvbmFsIEFjY2VsZVBvcnQgVVNCIFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMzUtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxMzY6Y29uZmlnIFVTQl9TRVJJQUxfQ1AyMTBYXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMzctXHR0cmlzdGF0ZSBcJiMzNDtVU0IgQ1AyMTB4IGZhbWlseSBvZiBVQVJUIEJyaWRnZSBDb250cm9sbGVyc1wmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTE0NC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjE0NTpjb25maWcgVVNCX1NFUklBTF9DWVBSRVNTX004XG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xNDYtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgQ3lwcmVzcyBNOCBVU0IgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTE1OC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjE1OTpjb25maWcgVVNCX1NFUklBTF9FTVBFR1xuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTYwLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEVtcGVnIGVtcGVnLWNhciBNYXJrIEkvSUkgRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTY5LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MTcwOmNvbmZpZyBVU0JfU0VSSUFMX0ZURElfU0lPXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xNzEtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgRlRESSBTaW5nbGUgUG9ydCBTZXJpYWwgRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTgyLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MTgzOmNvbmZpZyBVU0JfU0VSSUFMX1ZJU09SXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xODQtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgSGFuZHNwcmluZyBWaXNvciAvIFBhbG0gbTUweCAvIFNvbnkgQ2xpZSBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xOTMtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxOTQ6Y29uZmlnIFVTQl9TRVJJQUxfSVBBUVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTk1LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIFBvY2tldFBDIFBEQSBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yMDQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoyMDU6Y29uZmlnIFVTQl9TRVJJQUxfSVJcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIwNi1cdHRyaXN0YXRlIFwmIzM0O1VTQiBJUiBEb25nbGUgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIxNC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjIxNTpjb25maWcgVVNCX1NFUklBTF9FREdFUE9SVFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjE2LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEluc2lkZSBPdXQgRWRnZXBvcnQgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIzOS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjI0MDpjb25maWcgVVNCX1NFUklBTF9FREdFUE9SVF9USVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjQxLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEluc2lkZSBPdXQgRWRnZXBvcnQgU2VyaWFsIERyaXZlciAoVEkgZGV2aWNlcylcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNDktXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoyNTA6Y29uZmlnIFVTQl9TRVJJQUxfRjgxMjMyXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNTEtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgRmludGVrIEY4MTIzMiBTaW5nbGUgUG9ydCBTZXJpYWwgRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjU4LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MjU5OmNvbmZpZyBVU0JfU0VSSUFMX0Y4MTUzWFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjYwLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEZpbnRlayBGODE1MzIvNTM0IE11bHRpLVBvcnRzIFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNjgtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoyNjk6Y29uZmlnIFVTQl9TRVJJQUxfR0FSTUlOXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNzAtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgR2FybWluIEdQUyBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yODAtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoyODE6Y29uZmlnIFVTQl9TRVJJQUxfSVBXXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yODItXHR0cmlzdGF0ZSBcJiMzNDtVU0IgSVBXaXJlbGVzcyAoM0cgVU1UUyBUREQpIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTI5MC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjI5MTpjb25maWcgVVNCX1NFUklBTF9JVVVcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTI5Mi1cdHRyaXN0YXRlIFwmIzM0O1VTQiBJbmZpbml0eSBVU0IgVW5saW1pdGVkIFBob2VuaXggRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzAwLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MzAxOmNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fUERBXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zMDItXHR0cmlzdGF0ZSBcJiMzNDtVU0IgS2V5c3BhbiBQREEgLyBYaXJjb20gU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTMxMS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjMxMjpjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zMTMtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgS2V5c3BhbiBVU0EteHh4IFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zMjUtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozMjY6Y29uZmlnIFVTQl9TRVJJQUxfS0xTSVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzI3LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEtMNUtVU0IxMDUgKFBhbG1jb25uZWN0KSBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNDAtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozNDE6Y29uZmlnIFVTQl9TRVJJQUxfS09CSUxfU0NUXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNDItXHR0cmlzdGF0ZSBcJiMzNDtVU0IgS09CSUwgY2hpcGNhcmQgcmVhZGVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzU3LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MzU4OmNvbmZpZyBVU0JfU0VSSUFMX01DVF9VMjMyXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNTktXHR0cmlzdGF0ZSBcJiMzNDtVU0IgTUNUIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNjktXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozNzA6Y29uZmlnIFVTQl9TRVJJQUxfTUVUUk9cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM3MS1cdHRyaXN0YXRlIFwmIzM0O1VTQiBNZXRyb2xvZ2ljIEluc3RydW1lbnRzIFVTQi1QT1MgQmFyY29kZSBTY2FubmVyIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM3Ny1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjM3ODpjb25maWcgVVNCX1NFUklBTF9NT1M3NzIwXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNzktXHR0cmlzdGF0ZSBcJiMzNDtVU0IgTW9zY2hpcCA3NzIwIFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zODYtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozODc6Y29uZmlnIFVTQl9TRVJJQUxfTU9TNzcxNV9QQVJQT1JUXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zODgtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIHBhcmFsbGVsIHBvcnQgb24gdGhlIE1vc2NoaXAgNzcxNVwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM5Ni1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjM5Nzpjb25maWcgVVNCX1NFUklBTF9NT1M3ODQwXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zOTgtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgTW9zY2hpcCA3ODQwLzc4MjAgVVNCIFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00MTAtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0MTE6Y29uZmlnIFVTQl9TRVJJQUxfTVhVUE9SVFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDEyLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIE1veGEgVVBPUlQgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQzOS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ0MDpjb25maWcgVVNCX1NFUklBTF9OQVZNQU5cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ0MS1cdHRyaXN0YXRlIFwmIzM0O1VTQiBOYXZtYW4gR1BTIGRldmljZVwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ0NS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ0Njpjb25maWcgVVNCX1NFUklBTF9QTDIzMDNcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ0Ny1cdHRyaXN0YXRlIFwmIzM0O1VTQiBQcm9saWZpYyAyMzAzIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NTQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0NTU6Y29uZmlnIFVTQl9TRVJJQUxfT1RJNjg1OFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDU2LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIE91cnMgVGVjaG5vbG9neSBJbmMuIE9UaS02ODU4IFVTQiBUbyBSUzIzMiBCcmlkZ2UgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ2My1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ2NDpjb25maWcgVVNCX1NFUklBTF9RQ0FVWFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDY1LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIFF1YWxjb21tIEF1eGlsaWFyeSBTZXJpYWwgUG9ydCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NzQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0NzU6Y29uZmlnIFVTQl9TRVJJQUxfUVVBTENPTU1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ3Ni1cdHRyaXN0YXRlIFwmIzM0O1VTQiBRdWFsY29tbSBTZXJpYWwgbW9kZW1cJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00ODQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0ODU6Y29uZmlnIFVTQl9TRVJJQUxfU1BDUDhYNVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDg2LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIFNQQ1A4eDUgVVNCIFRvIFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00OTMtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0OTQ6Y29uZmlnIFVTQl9TRVJJQUxfU0FGRVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDk1LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIFNhZmUgU2VyaWFsIChFbmNhcHN1bGF0ZWQpIERyaXZlclwmIzM0O1xuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDk2LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDk3OmNvbmZpZyBVU0JfU0VSSUFMX1NBRkVfUEFEREVEXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00OTgtXHRib29sIFwmIzM0O1VTQiBTZWN1cmUgRW5jYXBzdWxhdGVkIERyaXZlciAtIFBhZGRlZFwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUwMC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjUwMTpjb25maWcgVVNCX1NFUklBTF9TSUVSUkFXSVJFTEVTU1xuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTAyLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIFNpZXJyYSBXaXJlbGVzcyBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01MTEtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo1MTI6Y29uZmlnIFVTQl9TRVJJQUxfU1lNQk9MXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01MTMtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgU3ltYm9sIEJhcmNvZGUgZHJpdmVyIChzZXJpYWwgbW9kZSlcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01MjAtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo1MjE6Y29uZmlnIFVTQl9TRVJJQUxfVElcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUyMi1cdHRyaXN0YXRlIFwmIzM0O1VTQiBUSSAzNDEwLzUwNTIgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUyOS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjUzMDpjb25maWcgVVNCX1NFUklBTF9DWUJFUkpBQ0tcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUzMS1cdHRyaXN0YXRlIFwmIzM0O1VTQiBSRUlORVIgU0NUIGN5YmVySmFjayBwaW5wYWQvZS1jb20gY2hpcGNhcmQgcmVhZGVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTQxLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTQyOmNvbmZpZyBVU0JfU0VSSUFMX1dXQU5cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU0My1cdHRyaXN0YXRlXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NDQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo1NDU6Y29uZmlnIFVTQl9TRVJJQUxfT1BUSU9OXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NDYtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgZHJpdmVyIGZvciBHU00gYW5kIENETUEgbW9kZW1zXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTYzLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTY0OmNvbmZpZyBVU0JfU0VSSUFMX09NTklORVRcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU2NS1cdHRyaXN0YXRlIFwmIzM0O1VTQiBaeVhFTCBvbW5pLm5ldCBMQ0QgUGx1cyBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NzEtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo1NzI6Y29uZmlnIFVTQl9TRVJJQUxfT1BUSUNPTlxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTczLVx0dHJpc3RhdGUgXCYjMzQ7VVNCIE9wdGljb24gQmFyY29kZSBkcml2ZXIgKHNlcmlhbCBtb2RlKVwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU4MC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjU4MTpjb25maWcgVVNCX1NFUklBTF9YU0VOU19NVFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTgyLVx0dHJpc3RhdGUgXCYjMzQ7WHNlbnMgbW90aW9uIHRyYWNrZXIgc2VyaWFsIGludGVyZmFjZSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01OTItXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo1OTM6Y29uZmlnIFVTQl9TRVJJQUxfV0lTSEJPTkVcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU5NC1cdHRyaXN0YXRlIFwmIzM0O1VTQi1XaXNoYm9uZSBhZGFwdGVyIGludGVyZmFjZSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MDktXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo2MTA6Y29uZmlnIFVTQl9TRVJJQUxfU1NVMTAwXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MTEtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgUXVhdGVjaCBTU1UtMTAwIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MTgtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo2MTk6Y29uZmlnIFVTQl9TRVJJQUxfUVQyXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MjAtXHR0cmlzdGF0ZSBcJiMzNDtVU0IgUXVhdGVjaCBTZXJpYWwgRHJpdmVyIGZvciBVU0IgMiBkZXZpY2VzXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNjI3LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjI4OmNvbmZpZyBVU0JfU0VSSUFMX1VQRDc4RjA3MzBcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTYyOS1cdHRyaXN0YXRlIFwmIzM0O1VTQiBSZW5lc2FzIHVQRDc4RjA3MzAgU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTYzNi1cbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjYzNzpjb25maWcgVVNCX1NFUklBTF9YUlxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNjM4LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIE1heExpbmVhci9FeGFyIFVTQiB0byBTZXJpYWwgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNjQ1LVxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjQ2OmNvbmZpZyBVU0JfU0VSSUFMX0RFQlVHXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02NDctXHR0cmlzdGF0ZSBcJiMzNDtVU0IgRGVidWdnaW5nIERldmljZVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MzA0CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqRGlnZ2luZyBpbnRvIHRoZSBVU0IgU2VyaWFsIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZSwgSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYFVTQl9TRVJJQUxgIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBSaWdodCwgc28gaXQmIzM5O3MgdGhlIHBhcmVudCwgdGhlIG92ZXJhcmNoaW5nIHNldHRpbmcuIE9rYXksIGdvb2QuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBmdWxseSwgYXJlIHRoZXJlIGFueSBvdGhlciBkZXBlbmRlbmNpZXMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mIGJleW9uZCBgVVNCX1NFUklBTGAgaXRzZWxmPyBIbW0sIGxldCBtZSBjaGVjay4uLiBhaCwgeWVzLCBJIHNlZSB0aGF0IGBVU0JfU0VSSUFMYCBpcyBkZXBlbmRlbnQgb24gdGhlIGdlbmVyYWwgYFVTQmAgb3B0aW9uLiBNYWtlcyBwZXJmZWN0IHNlbnNlLCBhbmQgSSBzaG91bGQgaGF2ZSBhbnRpY2lwYXRlZCB0aGF0LiBOb3csIGxldCBtZSBzZWUgaWYgdGhpcyBwcmVzZW50cyBhbnkgY29tcGF0aWJpbGl0eSBpc3N1ZXMgd2l0aCBteSB0YXJnZXQgc3lzdGVtLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21lbnVjb25maWcgVVNCX1NFUklBTCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUtXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo2Om1lbnVjb25maWcgVVNCX1NFUklBTFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O1VTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTU3OAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3M6CgoqKlVTQiBTZXJpYWwgRHJpdmVyIERlcGVuZGVuY2llcyAtIEtjb25maWcgQ2hlY2sqKgoKT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBmb3IgdGhlIGBtZW51Y29uZmlnYCBvcHRpb24gYFVTQl9TRVJJQUxgIHdpdGhpbiB0aGUga2VybmVsJiMzOTtzIFVTQiBzZXJpYWwgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIE15IGZpcnN0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIGBkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZ2AuIEkga25vdyB0aGF0JiMzOTtzIHRoZSBjYW5vbmljYWwgbG9jYXRpb24gZm9yIHRoZXNlIHNvcnRzIG9mIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aXRoaW4gdGhlIFVTQiBzZXJpYWwgc3Vic3lzdGVtLCBzbyB0aGF0JiMzOTtzIHdoZXJlIEkgc2hvdWxkIGJlIGFibGUgdG8gZmlndXJlIG91dCB3aGF0IG90aGVyIGtlcm5lbCBmZWF0dXJlcywgb3B0aW9ucywgb3IgaGFyZHdhcmUgc3VwcG9ydCBtdXN0IGJlIGVuYWJsZWQgb3IgcHJlc2VudCBmb3IgYFVTQl9TRVJJQUxgIHRvIGJlIGV4cG9zZWQgYW5kIHNlbGVjdGFibGUuIEkgZXhwZWN0IHRvIGZpbmQgZGVwZW5kZW5jaWVzIGxpc3RlZCBhcyBgZGVwZW5kcyBvbmAgc3RhdGVtZW50cywgbWF5YmUgYWxvbmcgd2l0aCBhbnkgaW1wbGllZCBjb25zdHJhaW50cywgYW5kIHRoZSBjb25kaXRpb25zIHVuZGVyIHdoaWNoIHRoZSBvcHRpb24gaXMgdmlzaWJsZS4gVW5kZXJzdGFuZGluZyB0aGVzZSBkZXBlbmRlbmNpZXMgaXMgY3J1Y2lhbCBmb3IgY29uZmlndXJpbmcgdGhpcyBhc3BlY3Qgb2YgdGhlIGtlcm5lbCBwcm9wZXJseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbiAgIDI6XHQjXG4gICAzOlx0IyBVU0IgU2VyaWFsIGRldmljZSBjb25maWd1cmF0aW9uXG4gICA0Olx0I1xuICAgNTpcdFxuICAgNjpcdG1lbnVjb25maWcgVVNCX1NFUklBTFxuICAgNzpcdFx0dHJpc3RhdGUgXCYjMzQ7VVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydFwmIzM0O1xuICAgODpcdFx0ZGVwZW5kcyBvbiBUVFlcbiAgIDk6XHRcdGhlbHBcbiAgMTA6XHRcdCAgU2F5IFkgaGVyZSBpZiB5b3UgaGF2ZSBhIFVTQiBkZXZpY2UgdGhhdCBwcm92aWRlcyBub3JtYWwgc2VyaWFsXG4gIDExOlx0XHQgIHBvcnRzLCBvciBhY3RzIGxpa2UgYSBzZXJpYWwgZGV2aWNlLCBhbmQgeW91IHdhbnQgdG8gY29ubmVjdCBpdCB0b1xuICAxMjpcdFx0ICB5b3VyIFVTQiBidXMuXG4gIDEzOlx0XG4gIDE0Olx0XHQgIFBsZWFzZSByZWFkIFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi91c2IvdXNiLXNlcmlhbC5yc3RcdTAwM2UgZm9yIG1vcmVcbiAgMTU6XHRcdCAgaW5mb3JtYXRpb24gb24gdGhlIHNwZWNpZmljcyBvZiB0aGUgZGlmZmVyZW50IGRldmljZXMgdGhhdCBhcmVcbiAgMTY6XHRcdCAgc3VwcG9ydGVkLCBhbmQgb24gaG93IHRvIHVzZSB0aGVtLlxuICAxNzpcdFxuICAxODpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGVcbiAgMTk6XHRcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHVzYnNlcmlhbC5cbiAgMjA6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAwNjkKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAxNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTUENQOFg1IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGRpdmluZyBpbnRvIHRoaXMgU1BDUDhYNSBkcml2ZXIsIGFuZCBpdCYjMzk7cyBpbW1lZGlhdGVseSBhcHBhcmVudCB0aGF0IGl0cyBiZWhhdmlvciBpcyBzdHJvbmdseSB0aWVkIHRvIHRoZSBgVFRZYCBjb250ZXh0LiBUaGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4gVG8gbWFrZSBzdXJlIHRoaXMgdGhpbmcgaXMgZXZlbiBlbmFibGVkLCBJIG5lZWQgdG8gY29uZmlybSBgVVNCX1NFUklBTGAgYW5kIGBVU0JfU0VSSUFMX1NQQ1A4WDVgIGFyZSBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uIFRoYXQmIzM5O3MgZ3JvdW5kIHplcm8uCgpJIHNlZSB0aGV5JiMzOTt2ZSByZW1vdmVkIHRoZSBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgZnVuY3Rpb24sIHdoaWNoIGlzIGludGVyZXN0aW5nLiBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5LiBOb3csIGxvb2tpbmcgYXQgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBvZiB0aGlzIGRyaXZlciwgdGhlIGtleSBmdW5jdGlvbnMgdGhhdCB3YXJyYW50IGEgY2xvc2UgZXhhbWluYXRpb24gYXJlIGNsZWFybHkgYHNwY3A4eDVfb3BlbmAsIGBzcGNwOHg1X2R0cl9ydHNgLCBgc3BjcDh4NV9zZXRfdGVybWlvc2AsIGBzcGNwOHg1X3Rpb2NtZ2V0YCwgYW5kIGBzcGNwOHg1X3Rpb2Ntc2V0YC4gVGhlc2UgYXJlIHRoZSBjcml0aWNhbCBpbnRlcmZhY2UgcG9pbnRzLgoKSGFuZyBvbi4uLiBgc3BjcDh4NV9vcGVuYCBsb29rcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50LiBJdCYjMzk7cyB0aGUgZW50cnkgcG9pbnQsIHNvIEkmIzM5O2xsIHByaW9yaXRpemUgdGhhdC4gSSBzaG91bGQgcHJvYmFibHkgZW5zdXJlIHRoYXQgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgbW9kdWxlIGlzIGtub3duLCBzbyBJJiMzOTtsbCBkbyBhIHF1aWNrIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGltcG9ydGFudCBmdW5jdGlvbnMgZGVmaW5lZCBpbiBgc3BjcDh4NS5jYCB0aGF0IEkgbWlnaHQgbmVlZCB0byBjb25zaWRlci4gR290dGEgZ2V0IHRoZSBiaWcgcGljdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RhdGljLipzcGNwOHg1XyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYz0xMjc9c3RydWN0IHNwY3A4eDVfcHJpdmF0ZSB7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xMzItXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjEzMzpzdGF0aWMgaW50IHNwY3A4eDVfcHJvYmUoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTM0LVx0XHRcdFx0XHRcdGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE0MC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MTQxOnN0YXRpYyBpbnQgc3BjcDh4NV9wb3J0X3Byb2JlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE0Mi17XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xNTktXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjE2MDpzdGF0aWMgdm9pZCBzcGNwOHg1X3BvcnRfcmVtb3ZlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE2MS17XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xNjctXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjE2ODpzdGF0aWMgaW50IHNwY3A4eDVfc2V0X2N0cmxfbGluZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1OCBtY3IpXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE2OS17XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xODYtXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjE4NzpzdGF0aWMgaW50IHNwY3A4eDVfZ2V0X21zcihzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1OCAqc3RhdHVzKVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xODgte1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMjE5LVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzoyMjA6c3RhdGljIHZvaWQgc3BjcDh4NV9zZXRfd29ya19tb2RlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHUxNiB2YWx1ZSxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMjIxLVx0XHRcdFx0XHRcdFx0XHQgdTE2IGluZGV4KVxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMjM3LVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzoyMzg6c3RhdGljIHZvaWQgc3BjcDh4NV9kdHJfcnRzKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBvbilcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMjM5LXtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTI1NS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MjU2OnN0YXRpYyB2b2lkIHNwY3A4eDVfaW5pdF90ZXJtaW9zKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTI1Ny17XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0yNjAtXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjI2MTpzdGF0aWMgdm9pZCBzcGNwOHg1X3NldF90ZXJtaW9zKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTI2Mi1cdFx0XHRcdHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsXG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zNjUtXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjM2NjpzdGF0aWMgaW50IHNwY3A4eDVfb3BlbihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zNjcte1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMzg4LVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzozODk6c3RhdGljIGludCBzcGNwOHg1X3Rpb2Ntc2V0KHN0cnVjdCB0dHlfc3RydWN0ICp0dHksXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTM5MC1cdFx0XHQgICAgdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyKVxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDExLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzo0MTI6c3RhdGljIGludCBzcGNwOHg1X3Rpb2NtZ2V0KHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTQxMy17XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00MzgtXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjQzOTpzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIHNwY3A4eDVfZGV2aWNlID0ge1xuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NDAtXHQuZHJpdmVyID0ge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTcwNQoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDE2NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNQQyBTZXJpYWwgRHJpdmVyKioKCk9rYXksIHNvIEkgbmVlZCB0byB6ZXJvIGluIG9uIHRoZXNlIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIGBzcGNwOHg1YCBkcml2ZXI6IGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGFuZCBgc3BjcDh4NV90aW9jbXNldGAuIFRoZXNlIGFyZSB0aGUga2V5IGVudHJ5IHBvaW50cyBhbmQgY29udHJvbCBtZWNoYW5pc21zLCB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIHNlcmlhbCBwb3J0IG1hbmFnZW1lbnQuCgpBaGEsIGFuZCBoZXJlJiMzOTtzIGEgd3JpbmtsZSDigJMgdGhlIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiBoYXMgYmVlbiAqcmVtb3ZlZCouIFJpZ2h0LiBTbyB0aGUgY2FycmllciBkZXRlY3Rpb24gaXMgbm93IGJlaW5nIGhhbmRsZWQgZWl0aGVyIGJ5IHRoZSBnZW5lcmljIFVTQiBzZXJpYWwgY29yZS4uLiBvciBpdCYjMzk7cyBkZWZhdWx0aW5nIHRvIHNvbWUgc3RhbmRhcmQgYmVoYXZpb3IgZGVmaW5lZCB3aXRoaW4gdGhlIGNvcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoLiBJIHJlYWxseSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIG1lYW5zIGZvciBlcnJvciByZXBvcnRpbmcuCgpBaCwgbG9va3MgbGlrZSBpZiBgLmNhcnJpZXJfcmFpc2VkYCBpc24mIzM5O3QgZXhwbGljaXRseSBzZXQgaW4gdGhlIHBvcnQgc3RydWN0dXJlLCBpdCBmYWxscyBiYWNrIHRvIHRoZSBjb3JlIGxvZ2ljLiBTcGVjaWZpY2FsbHksIHRoZSBjb2RlIGRvZXMgYSBjaGVjazogYGlmIChwb3J0LSZndDtzZXJpYWwtJmd0O3R5cGUtJmd0O2NhcnJpZXJfcmFpc2VkKSByZXR1cm4gcG9ydC0mZ3Q7c2VyaWFsLSZndDt0eXBlLSZndDtjYXJyaWVyX3JhaXNlZChwb3J0KTtgLiBPa2F5LCB0aGF0JiMzOTtzIHN0cmFpZ2h0Zm9yd2FyZC4gQnV0LCB3aGF0IGlmIHRoZSBgY2Fycmllcl9yYWlzZWRgIGZpZWxkIGlzICpub3QqIHNldD8gVGhhdCYjMzk7cyB0aGUgcmVhbCBxdWVzdGlvbi4gV2hhdCYjMzk7cyB0aGUgKmRlZmF1bHQqIGJlaGF2aW9yIGlmIG5vdGhpbmcgaXMgZXhwbGljaXRseSBwcm92aWRlZD8gSSBuZWVkIHRvIHRyYWNrIGRvd24gZXhhY3RseSBob3cgdGhlIGNvcmUgc2VyaWFsIGNvZGUgaGFuZGxlcyB0aGUgYWJzZW5jZSBvZiB0aGlzIGZ1bmN0aW9uIHBvaW50ZXIsIGFuZCB3aGF0IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIGFyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y2Fycmllcl9yYWlzZWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9zZXJpYWwvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3NlcmlhbC9jaDM0MS5jPTQxMj1zdGF0aWMgdm9pZCBjaDM0MV9wb3J0X3JlbW92ZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9jaDM0MS5jLTQxOS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9jaDM0MS5jOjQyMDpzdGF0aWMgaW50IGNoMzQxX2NhcnJpZXJfcmFpc2VkKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXG5kcml2ZXJzL3VzYi9zZXJpYWwvY2gzNDEuYy00MjEte1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9jaDM0MS5jPTg2NT1zdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIGNoMzQxX2RldmljZSA9IHtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvY2gzNDEuYy04NzItXHQuZHRyX3J0c1x0ICAgPSBjaDM0MV9kdHJfcnRzLFxuZHJpdmVycy91c2Ivc2VyaWFsL2NoMzQxLmM6ODczOlx0LmNhcnJpZXJfcmFpc2VkXHQgICA9IGNoMzQxX2NhcnJpZXJfcmFpc2VkLFxuZHJpdmVycy91c2Ivc2VyaWFsL2NoMzQxLmMtODc0LVx0LmNsb3NlICAgICAgICAgICAgID0gY2gzNDFfY2xvc2UsXG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jPTc2MT1zdGF0aWMgYm9vbCBmODEyMzJfdHhfZW1wdHkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydClcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvZjgxMjMyLmMtNzc0LVxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jOjc3NTpzdGF0aWMgaW50IGY4MTIzMl9jYXJyaWVyX3JhaXNlZChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jLTc3Ni17XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jPTk4Mj1zdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIGY4MTIzMl9kZXZpY2UgPSB7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jLTk5Mi1cdC5kdHJfcnRzID1cdFx0ZjgxMjMyX2R0cl9ydHMsXG5kcml2ZXJzL3VzYi9zZXJpYWwvZjgxMjMyLmM6OTkzOlx0LmNhcnJpZXJfcmFpc2VkID1cdGY4MTIzMl9jYXJyaWVyX3JhaXNlZCxcbmRyaXZlcnMvdXNiL3NlcmlhbC9mODEyMzIuYy05OTQtXHQuZ2V0X3NlcmlhbCA9XHRcdGY4MTIzMl9nZXRfc2VyaWFsLFxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9mODEyMzIuYz0xMDA4PXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgZjgxNTM0YV9kZXZpY2UgPSB7XG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jLTEwMTYtXHQuZHRyX3J0cyA9XHRcdGY4MTIzMl9kdHJfcnRzLFxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jOjEwMTc6XHQuY2Fycmllcl9yYWlzZWQgPVx0ZjgxMjMyX2NhcnJpZXJfcmFpc2VkLFxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jLTEwMTgtXHQuZ2V0X3NlcmlhbCA9XHRcdGY4MTIzMl9nZXRfc2VyaWFsLFxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYz0xMDU5PXN0YXRpYyBpbnQgcGwyMzAzX3Rpb2NtZ2V0KHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpXG4tLVxuZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jLTEwODQtXG5kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmM6MTA4NTpzdGF0aWMgaW50IHBsMjMwM19jYXJyaWVyX3JhaXNlZChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxuZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jLTEwODYte1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYz0xMjcxPXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgcGwyMzAzX2RldmljZSA9IHtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmMtMTI4My1cdC5kdHJfcnRzID1cdFx0cGwyMzAzX2R0cl9ydHMsXG5kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmM6MTI4NDpcdC5jYXJyaWVyX3JhaXNlZCA9XHRwbDIzMDNfY2Fycmllcl9yYWlzZWQsXG5kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmMtMTI4NS1cdC5icmVha19jdGwgPVx0XHRwbDIzMDNfYnJlYWtfY3RsLFxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmM9NzMzPXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgKnNlYXJjaF9zZXJpYWxfZGV2aWNlKFxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmMtNzUwLVxuZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYzo3NTE6c3RhdGljIGJvb2wgc2VyaWFsX3BvcnRfY2Fycmllcl9yYWlzZWQoc3RydWN0IHR0eV9wb3J0ICpwb3J0KVxuZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYy03NTIte1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmMtNzU1LVxuZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYzo3NTY6XHRpZiAoZHJ2LVx1MDAzZWNhcnJpZXJfcmFpc2VkKVxuZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYzo3NTc6XHRcdHJldHVybiBkcnYtXHUwMDNlY2Fycmllcl9yYWlzZWQocCk7XG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jLTc1OC1cdC8qIE5vIGNhcnJpZXIgY29udHJvbCAtIGRvbiYjMzk7dCBibG9jayAqL1xuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmM9Nzg2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgdHR5X3BvcnRfb3BlcmF0aW9ucyBzZXJpYWxfcG9ydF9vcHMgPSB7XG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jOjc4NzpcdC5jYXJyaWVyX3JhaXNlZFx0XHQ9IHNlcmlhbF9wb3J0X2NhcnJpZXJfcmFpc2VkLFxuZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYy03ODgtXHQuZHRyX3J0c1x0XHQ9IHNlcmlhbF9wb3J0X2R0cl9ydHMsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNTM0CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMjk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQ2FycmllciBEZXRlY3QgTG9naWMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHNlcmlhbF9wb3J0X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiBhbmQgaG93IGl0JiMzOTtzIGNoYW5nZWQuIEl0IGxvb2tzIGxpa2UgaXQgdXNlZCB0byByZWx5IG9uIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCB3aGljaCBpcyBub3cgcmVtb3ZlZC4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgb2xkIGZ1bmN0aW9uIGNoZWNrZWQgZm9yIGEgcmV0dXJuIHZhbHVlIGByZXRgIGZyb20gYHNwY3A4eDVfZ2V0X21zcmAgb3IgaWYgdGhlIGBNU1JfU1RBVFVTX0xJTkVfRENEYCBiaXQgd2FzIHNldCBpbiBgbXNyYC4gSWYgZWl0aGVyIG9mIHRob3NlIGNvbmRpdGlvbnMgd2VyZSB0cnVlLCBpdCByZXR1cm5lZCAxLCBvdGhlcndpc2UgMC4gTm93LCBpdCBhbHdheXMgcmV0dXJucyAxIGJlY2F1c2UgYGRydi0mZ3Q7Y2Fycmllcl9yYWlzZWRgIGlzIE5VTEwuIFRoYXQmIzM5O3MgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGNoYW5nZSwgbWVhbmluZyB0aGUgZGV2aWNlIHdpbGwgbm93ICphbHdheXMqIHJlcG9ydCBjYXJyaWVyIGRldGVjdC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzLgoKVGhlIGtleSBmdW5jdGlvbnMgdG8gZXhhbWluZSBpbiBkZXRhaWwgYXJlIGRlZmluaXRlbHkgYHNwY3A4eDVfZ2V0X21zcmAsIGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGFuZCBgc3BjcDh4NV90aW9jbXNldGAuIEhvbGQgb24uLi4gYHNwY3A4eDVfZ2V0X21zcmAgaXMgc3RpbGwgdXNlZCBpbiBgc3BjcDh4NV90aW9jbWdldGAuLi4gcmlnaHQsIEkmIzM5O2xsIG5lZWQgdG8gcmVtZW1iZXIgdGhhdC4gVGhpcyBpcyBnb2luZyB0byByZXF1aXJlIGEgZGVlcGVyIGRpdmUgaW50byBob3cgY2FycmllciBkZXRlY3QgaXMgYmVpbmcgaGFuZGxlZCBub3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NwY3A4eDVfZ2V0X21zciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYz0xNjg9c3RhdGljIGludCBzcGNwOHg1X3NldF9jdHJsX2xpbmUoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgdTggbWNyKVxuLS1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTg2LVxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzoxODc6c3RhdGljIGludCBzcGNwOHg1X2dldF9tc3Ioc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgdTggKnN0YXR1cylcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTg4LXtcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jPTQxMj1zdGF0aWMgaW50IHNwY3A4eDVfdGlvY21nZXQoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSlcbi0tXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTQyMC1cbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6NDIxOlx0cmVzdWx0ID0gc3BjcDh4NV9nZXRfbXNyKHBvcnQsIFx1MDAyNnN0YXR1cyk7XG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTQyMi1cdGlmIChyZXN1bHQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0NDU4CgkJCQkJCQlvdXRwdXQ6IDE5MgoJCQkJCQkJdGhvdWdodHM6IDM1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgU1BDUDhYNSBEcml2ZXIgZm9yIFBvdGVudGlhbCBGdXp6aW5nKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCB0aGUgYHNwY3A4eDVgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIGEgcmVjZW50IGNoYW5nZS4gSSBjb25maXJtZWQgdGhhdCBgc3BjcDh4NV9nZXRfbXNyYCBpcyBpbmRlZWQgc3RpbGwgYmVpbmcgY2FsbGVkIHdpdGhpbiBgc3BjcDh4NV90aW9jbWdldGAsIG1ha2luZyB0aGF0IGEgZ29vZCBjYW5kaWRhdGUgZm9yIGRldGFpbGVkIGFuYWx5c2lzLiBJJiMzOTt2ZSBhbHNvIGlkZW50aWZpZWQgYSBoYW5kZnVsIG9mIG90aGVyIGtleSBmdW5jdGlvbnMgdG8ga2VlcCBpbiBtaW5kIOKAkyBgc3BjcDh4NV9vcGVuYCwgYHNwY3A4eDVfZHRyX3J0c2AsIGBzcGNwOHg1X3NldF90ZXJtaW9zYCwgYW5kIGBzcGNwOHg1X3Rpb2Ntc2V0YC4gSSBzaG91bGQgY3JlYXRlIGEgY2xlYXIgbGlzdCBvZiB0aGVzZSBmb3IgZWFzeSByZWZlcmVuY2UuCgpOb3csIGNvbnNpZGVyaW5nIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcywgaXQgbG9va3MgbGlrZSB0aGlzIGlzIHRpZWQgdG8gYFVTQl9TRVJJQUxgIGFuZCwgbW9yZSBzcGVjaWZpY2FsbHksIGBVU0JfU0VSSUFMX1NQQ1A4WDVgLiBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgYFVTQl9TRVJJQUxgIGRlcGVuZHMgb24gYFRUWWAsIHdoaWNoIGlzIHVzdWFsbHkgZW5hYmxlZCBieSBkZWZhdWx0LiBTbywgaGF2aW5nIHRob3NlIHR3byBvcHRpb25zIGNvbmZpZ3VyZWQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIHRlc3RpbmcuCgpUaGUgcmVhbCBtZWF0IG9mIHRoaXMgaXMgdGhlIGZ1bmN0aW9uYWwgY2hhbmdlLiBSZW1vdmluZyBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgbWVhbnMgdGhlIGRyaXZlciB3aWxsIG5vIGxvbmdlciBxdWVyeSB0aGUgZGV2aWNlIGZvciBjYXJyaWVyIHN0YXR1cyB3aGVuIG9wZW5pbmcgdGhlIHBvcnQuIFRoaXMgd2lsbCBkZWZpbml0ZWx5IGFmZmVjdCB0aGUgb3BlbiBhbmQgYmxvY2tpbmcgYmVoYXZpb3Igb2YgdGhlIFRUWSBwb3J0LCB3aGljaCBpcyBjcnVjaWFsIGZyb20gYSBmdW5jdGlvbmFsIGFuZCBzZWN1cml0eSBwZXJzcGVjdGl2ZS4gVGhpcyBpcyBhIGdvb2Qgc2lnbiBmb3IgZnV6emluZywgZ2l2ZW4gaXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gYSBVU0Igc2VyaWFsIGRyaXZlci4gSSYjMzk7ZCBjb25zaWRlciB0aGF0IGEgc2lnbmlmaWNhbnQgZW5vdWdoIGltcGFjdCB0byB3YXJyYW50IHRob3JvdWdoIGZ1enppbmcuCgpJJiMzOTttIGZlZWxpbmcgZ29vZCBhYm91dCB0aGlzLCBzbyBJJiMzOTtsbCBzdGFydCBnYXRoZXJpbmcgbXkgcmVzdWx0cyBmb3IgYSBwcmVzZW50YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAyOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVU0JfU0VSSUFMJiMzNDssCiAgICAmIzM0O1VTQl9TRVJJQUxfU1BDUDhYNSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3NwY3A4eDVfb3BlbiYjMzQ7LAogICAgJiMzNDtzcGNwOHg1X2R0cl9ydHMmIzM0OywKICAgICYjMzQ7c3BjcDh4NV9zZXRfdGVybWlvcyYjMzQ7LAogICAgJiMzNDtzcGNwOHg1X3Rpb2NtZ2V0JiMzNDssCiAgICAmIzM0O3NwY3A4eDVfdGlvY21zZXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVtb3ZlcyB0aGUgY3VzdG9tIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiBmcm9tIHRoZSBVU0Igc2VyaWFsIGRyaXZlciwgZmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBVU0Igc2VyaWFsIGNvcmUgKHdoaWNoIGFsd2F5cyByZXR1cm5zIDEpLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIHRoZSBUVFkgcG9ydCBvcGVuIGFuZCBibG9ja2luZyBiZWhhdmlvci4gRnV6emluZyB0aGUgZHJpdmVyJiMzOTtzIHJlbWFpbmluZyBUVFkgb3BlcmF0aW9ucyBpcyByZWNvbW1lbmRlZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgdW5leHBlY3RlZCBiZWhhdmlvcnMgb2NjdXIgZHVlIHRvIHRoaXMgY2hhbmdlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVU0JfU0VSSUFMJiMzNDssCiAgICAmIzM0O1VTQl9TRVJJQUxfU1BDUDhYNSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3NwY3A4eDVfb3BlbiYjMzQ7LAogICAgJiMzNDtzcGNwOHg1X2R0cl9ydHMmIzM0OywKICAgICYjMzQ7c3BjcDh4NV9zZXRfdGVybWlvcyYjMzQ7LAogICAgJiMzNDtzcGNwOHg1X3Rpb2NtZ2V0JiMzNDssCiAgICAmIzM0O3NwY3A4eDVfdGlvY21zZXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVtb3ZlcyB0aGUgY3VzdG9tIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiBmcm9tIHRoZSBVU0Igc2VyaWFsIGRyaXZlciwgZmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBVU0Igc2VyaWFsIGNvcmUgKHdoaWNoIGFsd2F5cyByZXR1cm5zIDEpLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIHRoZSBUVFkgcG9ydCBvcGVuIGFuZCBibG9ja2luZyBiZWhhdmlvci4gRnV6emluZyB0aGUgZHJpdmVyJiMzOTtzIHJlbWFpbmluZyBUVFkgb3BlcmF0aW9ucyBpcyByZWNvbW1lbmRlZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgdW5leHBlY3RlZCBiZWhhdmlvcnMgb2NjdXIgZHVlIHRvIHRoaXMgY2hhbmdlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6MTkuNzc2MDA1MTc0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTI2ODEyMzUyOTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVVNCX1NFUklBTFwiLFxuICAgIFwiVVNCX1NFUklBTF9TUENQOFg1XCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3BjcDh4NV9vcGVuXCIsXG4gICAgXCJzcGNwOHg1X2R0cl9ydHNcIixcbiAgICBcInNwY3A4eDVfc2V0X3Rlcm1pb3NcIixcbiAgICBcInNwY3A4eDVfdGlvY21nZXRcIixcbiAgICBcInNwY3A4eDVfdGlvY21zZXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZW1vdmVzIHRoZSBjdXN0b20gYHNwY3A4eDVfY2Fycmllcl9yYWlzZWRgIGZ1bmN0aW9uIGZyb20gdGhlIFVTQiBzZXJpYWwgZHJpdmVyLCBmYWxsaW5nIGJhY2sgdG8gdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIFVTQiBzZXJpYWwgY29yZSAod2hpY2ggYWx3YXlzIHJldHVybnMgMSkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgdGhlIFRUWSBwb3J0IG9wZW4gYW5kIGJsb2NraW5nIGJlaGF2aW9yLiBGdXp6aW5nIHRoZSBkcml2ZXIncyByZW1haW5pbmcgVFRZIG9wZXJhdGlvbnMgaXMgcmVjb21tZW5kZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3JzIG9jY3VyIGR1ZSB0byB0aGlzIGNoYW5nZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6MTkuNzc2MDEzMjk0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDY2MTM0NjQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMDY4NDNjYTcxNTk3YTU3MDdjNjY1NTJjOWJkMTEyMWExOTQzMWZhZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyA3IDAyOjM5OjE3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jXFxuaW5kZXggYzExZDY0YmYwOGZiYS4uZjYxMGFlZjZiZjU5YiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jXFxuKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1xcbkBAIC0yMzUsMTggKzIzNSw2IEBAIHN0YXRpYyB2b2lkIHNwY3A4eDVfc2V0X3dvcmtfbW9kZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1MTYgdmFsdWUsXFxuIFxcdFxcdGRldl9lcnIoXFx1MDAyNnBvcnQtXFx1MDAzZWRldiwgXFxcImZhaWxlZCB0byBzZXQgd29yayBtb2RlOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG4gfVxcbiBcXG4tc3RhdGljIGludCBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXFxuLXtcXG4tXFx0dTggbXNyO1xcbi1cXHRpbnQgcmV0O1xcbi1cXG4tXFx0cmV0ID0gc3BjcDh4NV9nZXRfbXNyKHBvcnQsIFxcdTAwMjZtc3IpO1xcbi1cXHRpZiAocmV0IHx8IG1zciBcXHUwMDI2IE1TUl9TVEFUVVNfTElORV9EQ0QpXFxuLVxcdFxcdHJldHVybiAxO1xcbi1cXG4tXFx0cmV0dXJuIDA7XFxuLX1cXG4tXFxuIHN0YXRpYyB2b2lkIHNwY3A4eDVfZHRyX3J0cyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgb24pXFxuIHtcXG4gXFx0c3RydWN0IHNwY3A4eDVfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTtcXG5AQCAtNDU4LDcgKzQ0Niw2IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgc3BjcDh4NV9kZXZpY2UgPSB7XFxuIFxcdC5udW1fYnVsa19vdXRcXHRcXHQ9IDEsXFxuIFxcdC5vcGVuXFx0XFx0XFx0PSBzcGNwOHg1X29wZW4sXFxuIFxcdC5kdHJfcnRzXFx0XFx0PSBzcGNwOHg1X2R0cl9ydHMsXFxuLVxcdC5jYXJyaWVyX3JhaXNlZFxcdFxcdD0gc3BjcDh4NV9jYXJyaWVyX3JhaXNlZCxcXG4gXFx0LnNldF90ZXJtaW9zXFx0XFx0PSBzcGNwOHg1X3NldF90ZXJtaW9zLFxcbiBcXHQuaW5pdF90ZXJtaW9zXFx0XFx0PSBzcGNwOHg1X2luaXRfdGVybWlvcyxcXG4gXFx0LnRpb2NtZ2V0XFx0XFx0PSBzcGNwOHg1X3Rpb2NtZ2V0LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOToyMS4yNDUzOTEzMDdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1MTIxMTg0MDQ3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVU0JfU0VSSUFMXCIsXG4gICAgXCJVU0JfU0VSSUFMX1NQQ1A4WDVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzcGNwOHg1X29wZW5cIixcbiAgICBcInNwY3A4eDVfZHRyX3J0c1wiLFxuICAgIFwic3BjcDh4NV9zZXRfdGVybWlvc1wiLFxuICAgIFwic3BjcDh4NV90aW9jbWdldFwiLFxuICAgIFwic3BjcDh4NV90aW9jbXNldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlbW92ZXMgdGhlIGN1c3RvbSBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgZnVuY3Rpb24gZnJvbSB0aGUgVVNCIHNlcmlhbCBkcml2ZXIsIGZhbGxpbmcgYmFjayB0byB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgVVNCIHNlcmlhbCBjb3JlICh3aGljaCBhbHdheXMgcmV0dXJucyAxKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyB0aGUgVFRZIHBvcnQgb3BlbiBhbmQgYmxvY2tpbmcgYmVoYXZpb3IuIEZ1enppbmcgdGhlIGRyaXZlcidzIHJlbWFpbmluZyBUVFkgb3BlcmF0aW9ucyBpcyByZWNvbW1lbmRlZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgdW5leHBlY3RlZCBiZWhhdmlvcnMgb2NjdXIgZHVlIHRvIHRoaXMgY2hhbmdlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwNjg0M2NhNzE1OTdhNTcwN2M2NjU1MmM5YmQxMTIxYTE5NDMxZmFmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgNyAwMjozOToxNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jXG5pbmRleCBjMTFkNjRiZjA4ZmJhLi5mNjEwYWVmNmJmNTliIDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1xuKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1xuQEAgLTIzNSwxOCArMjM1LDYgQEAgc3RhdGljIHZvaWQgc3BjcDh4NV9zZXRfd29ya19tb2RlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHUxNiB2YWx1ZSxcbiBcdFx0ZGV2X2VycihcdTAwMjZwb3J0LVx1MDAzZWRldiwgXCJmYWlsZWQgdG8gc2V0IHdvcmsgbW9kZTogJWRcXG5cIiwgcmV0KTtcbiB9XG4gXG4tc3RhdGljIGludCBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXG4te1xuLVx0dTggbXNyO1xuLVx0aW50IHJldDtcbi1cbi1cdHJldCA9IHNwY3A4eDVfZ2V0X21zcihwb3J0LCBcdTAwMjZtc3IpO1xuLVx0aWYgKHJldCB8fCBtc3IgXHUwMDI2IE1TUl9TVEFUVVNfTElORV9EQ0QpXG4tXHRcdHJldHVybiAxO1xuLVxuLVx0cmV0dXJuIDA7XG4tfVxuLVxuIHN0YXRpYyB2b2lkIHNwY3A4eDVfZHRyX3J0cyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgb24pXG4ge1xuIFx0c3RydWN0IHNwY3A4eDVfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTtcbkBAIC00NTgsNyArNDQ2LDYgQEAgc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RyaXZlciBzcGNwOHg1X2RldmljZSA9IHtcbiBcdC5udW1fYnVsa19vdXRcdFx0PSAxLFxuIFx0Lm9wZW5cdFx0XHQ9IHNwY3A4eDVfb3BlbixcbiBcdC5kdHJfcnRzXHRcdD0gc3BjcDh4NV9kdHJfcnRzLFxuLVx0LmNhcnJpZXJfcmFpc2VkXHRcdD0gc3BjcDh4NV9jYXJyaWVyX3JhaXNlZCxcbiBcdC5zZXRfdGVybWlvc1x0XHQ9IHNwY3A4eDVfc2V0X3Rlcm1pb3MsXG4gXHQuaW5pdF90ZXJtaW9zXHRcdD0gc3BjcDh4NV9pbml0X3Rlcm1pb3MsXG4gXHQudGlvY21nZXRcdFx0PSBzcGNwOHg1X3Rpb2NtZ2V0LFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6MjEuMjQ1MzkzNTU4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY5OTAzNDUyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIHNwY3A4eDUgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0YXJnZXRpbmcgdGhlIGBzcGNwOHg1YCBVU0Igc2VyaWFsIGRyaXZlci4gTXkgaW5pdGlhbCBvYnNlcnZhdGlvbiBpcyB0aGF0IGl0J3MgcmVtb3ZpbmcgdGhlIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiBhbmQsIGltcG9ydGFudGx5LCB0aGUgYXNzaWdubWVudCBvZiB0aGF0IGZ1bmN0aW9uIHRvIHRoZSBgLmNhcnJpZXJfcmFpc2VkYCBmaWVsZCB3aXRoaW4gdGhlIGBzcGNwOHg1X2RldmljZWAgc3RydWN0dXJlLiBUaGF0J3MgYSBkaXJlY3QgZnVuY3Rpb25hbCBjaGFuZ2UuIEJ5IHJlbW92aW5nIHRoYXQgYXNzaWdubWVudCwgd2UncmUgZWZmZWN0aXZlbHkgdGVsbGluZyB0aGUgVVNCIHNlcmlhbCBjb3JlIHRvIGVpdGhlciBmYWxsIGJhY2sgdG8gaXRzIGRlZmF1bHQgY2Fycmllci1yYWlzZWQgYmVoYXZpb3IsIG9yIG5vIGJlaGF2aW9yIGF0IGFsbCwgZm9yIHRoaXMgc3BlY2lmaWMgZGV2aWNlLlxuXG5JIG5lZWQgdG8gZGl2ZSBpbnRvIGBkcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jYCB0byBmdWxseSB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBjaGFuZ2UuIElzIHRoaXMgYSBkZWxpYmVyYXRlIHNpbXBsaWZpY2F0aW9uLCBhIGJ1ZyBmaXgsIG9yIGEgbWlncmF0aW9uIHRvIGEgZGlmZmVyZW50IG1lY2hhbmlzbSB3aXRoaW4gdGhlIHNlcmlhbCBjb3JlPyBXaGF0J3MgdGhlIGNvbnRleHQgb2YgaG93IHRoaXMgZGV2aWNlIGhhbmRsZXMgY2FycmllciBkZXRlY3Q/IFJlbW92aW5nIGEgaGFuZGxlciBtZWFucyB0aGVyZSdzIGFub3RoZXIgbWV0aG9kIG5vdy4gTmVlZCB0byBkZXRlcm1pbmUgaG93IHRoZSBjYXJyaWVyIHNpZ25hbCBpcyBub3cgYmVpbmcgaGFuZGxlZCBpbiB0aGUgVVNCIHNlcmlhbCBjb3JlIGZvciB0aGlzIHNwZWNpZmljIGRldmljZS4gVGhlIHBhdGNoIGFsb25lIGlzbid0IGVub3VnaDsgSSBuZWVkIHRoZSBzdXJyb3VuZGluZyBjb2RlIGZvciBhIHByb3BlciBhc3Nlc3NtZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzQxLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6MjQuOTQ0NDMxN1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDk4NzY1ODIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3BjcDh4NV9kZXZpY2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jPTQxMj1zdGF0aWMgaW50IHNwY3A4eDVfdGlvY21nZXQoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSlcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDM4LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6NDM5OnN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgc3BjcDh4NV9kZXZpY2UgPSB7XFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NDAtXFx0LmRyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM9NDU4PXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgKiBjb25zdCBzZXJpYWxfZHJpdmVyc1tdID0ge1xcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6NDU5OlxcdFxcdTAwMjZzcGNwOHg1X2RldmljZSwgTlVMTFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDYwLX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjI1LjA1NDMxNjM0MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNzgxNjUwMzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipLY29uZmlnIEluc3BlY3Rpb24gZm9yIHNwY3A4eDUuYyoqXG5cbk9rYXksIHRpbWUgdG8gZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSByZWxhdGVkIHRvIGBzcGNwOHg1LmNgLiBUaGlzIGlzIHRoZSBzdGFuZGFyZCBmaXJzdCBzdGVwIHdoZW4gSSdtIGxvb2tpbmcgdG8gdW5kZXJzdGFuZCBob3cgYSBkcml2ZXIgb3IgbW9kdWxlIGlzIGNvbmZpZ3VyZWQgd2l0aGluIHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IG9wdGlvbnMgY29udHJvbCBpdHMgaW5jbHVzaW9uLCB3aGF0IGRlcGVuZGVuY2llcyBpdCBtaWdodCBoYXZlIG9uIG90aGVyIGZlYXR1cmVzIG9yIGhhcmR3YXJlLCBhbmQgd2hhdCBkZWZhdWx0IHNldHRpbmdzIGFyZSBhcHBsaWVkLiBUaGlzIHdpbGwgdGVsbCBtZSBhIGxvdCBhYm91dCBpdHMgaW50ZW5kZWQgdXNhZ2UgYW5kIGFueSBidWlsZC10aW1lIGNvbnN0cmFpbnRzLiBJ4oCZbSBleHBlY3RpbmcgdG8gc2VlIHRoaW5ncyBsaWtlIGBDT05GSUdfU1BDUDhYNWAgb3B0aW9ucyBhbmQgYXNzb2NpYXRlZCBkZXBlbmRlbmNpZXMsIHBvdGVudGlhbGx5IHJlbGF0aW5nIHRvIGNsb2NrIGNvbmZpZ3VyYXRpb25zIG9yIHNwZWNpZmljIGhhcmR3YXJlIHBsYXRmb3Jtcy4gSSdsbCBiZSBsb29raW5nIGF0IHRoZSByZWxhdGlvbnNoaXBzIGJldHdlZW4gYW55IGRlcGVuZGVuY2llcyBhcyB3ZWxsLiBJIHdhbnQgdG8gc2VlIGlmIHRoaXMgaXMgdGllZCB0byBzcGVjaWZpYyBoYXJkd2FyZSwgYXJjaGl0ZWN0dXJlLCBvciBldmVuIGp1c3QgYSBnZW5lcmFsIGNhdGVnb3J5IG9mIGRldmljZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk2NCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjI4LjIzMjQ4NTEyMloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjA4NTkwOTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3BjcDh4NVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZz00ODU9Y29uZmlnIFVTQl9TRVJJQUxfU1BDUDhYNVxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDg3LVxcdGhlbHBcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0ODg6XFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgc3BjcDh4NSBjb252ZXJ0ZXIgY2hpcC4gIFRoaXMgaXNcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00ODktXFx0ICBjb21tb25seSBmb3VuZCBpbiBzb21lIFotV2F2ZSBVU0IgZGV2aWNlcy5cXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ5MS1cXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ5MjpcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzcGNwOHg1LlxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ5My1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6MjguMzUzMzUwODI0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQ5NzA0MzM5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIHNwY3A4eDUgVVNCIFNlcmlhbCBEcml2ZXIgQ2hhbmdlKipcblxuT2theSwgc28gdGhlIGNvbmZpZyBvcHRpb24gaXMgYFVTQl9TRVJJQUxfU1BDUDhYNWAuIFRoZSBkaWZmIEknbSBsb29raW5nIGF0IHNwZWNpZmljYWxseSByZW1vdmVzIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYC4gSG1tLCBpbnRlcmVzdGluZy4gQSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBzZXJpYWwgZHJpdmVyIGFsd2F5cyB3YXJyYW50cyBhIGNsb3NlciBsb29rLiBJcyBpdCBmdXp6YWJsZT8gQWJzb2x1dGVseSwgaXQncyBhIGRlZmluaXRlIFwieWVzLlwiIE5vdywgc2luY2UgdGhhdCBmdW5jdGlvbiBpcyBnb25lLCB3ZSdyZSBvYnZpb3VzbHkgbm90IGdvaW5nIHRvIGJlIGFibGUgdG8gZm9jdXMgYW55IGZ1enppbmcgZWZmb3J0cyAqdGhlcmUqLlxuXG5MZXQgbWUgc2VlLi4uIHdoYXQncyBzdGlsbCBpbiBwbGF5IHdpdGhpbiB0aGlzIG1vZHVsZT8gUmlnaHQsIGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV9pbml0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGBzcGNwOHg1X3Rpb2Ntc2V0YCwgYHNwY3A4eDVfcG9ydF9wcm9iZWAsIGFuZCBgc3BjcDh4NV9wb3J0X3JlbW92ZWAuIE9rYXksIGdpdmVuIHRoZSBwYXRjaCwgYHNwY3A4eDVfb3BlbmAsIGBzcGNwOHg1X2R0cl9ydHNgLCBgc3BjcDh4NV9zZXRfdGVybWlvc2AsIGBzcGNwOHg1X3Rpb2NtZ2V0YCwgYW5kIGBzcGNwOHg1X3Rpb2Ntc2V0YCBhcmUgdGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSBnb2luZyB0byBiZSBtb3N0IGltcGFjdGVkIGFuZCB0aGF0IG5lZWQgdGhlIG1vc3QgYXR0ZW50aW9uLiBJJ2xsIGZvY3VzIG15IGluaXRpYWwgZnV6emluZyBlZmZvcnRzIG9uIHRob3NlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzk4LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjMyLjg1MDM5NjQ2N1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTAwMjU1MzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3BjcDh4NV9vcGVuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYz0yNjE9c3RhdGljIHZvaWQgc3BjcDh4NV9zZXRfdGVybWlvcyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LFxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zNjUtXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzozNjY6c3RhdGljIGludCBzcGNwOHg1X29wZW4oc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydClcXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTM2Ny17XFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jPTQzOT1zdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyIHNwY3A4eDVfZGV2aWNlID0ge1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NDYtXFx0Lm51bV9idWxrX291dFxcdFxcdD0gMSxcXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjQ0NzpcXHQub3BlblxcdFxcdFxcdD0gc3BjcDh4NV9vcGVuLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDQ4LVxcdC5kdHJfcnRzXFx0XFx0PSBzcGNwOHg1X2R0cl9ydHMsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjMyLjk2MDQyNjI5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI4NTcwMDc2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKktjb25maWcgRGVwZW5kZW5jeSBEZWVwIERpdmUgZm9yIFVTQl9TRVJJQUxfU1BDUDhYNSoqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGludG8gdGhlIEtjb25maWcgZGVwZW5kZW5jaWVzIGZvciBgVVNCX1NFUklBTF9TUENQOFg1YC4gSSBuZWVkIHRvIGVuc3VyZSB0aGlzIGRyaXZlciBpcyBjb25maWd1cmVkIGNvcnJlY3RseS4gRmlyc3QsIEknbSBnb2luZyB0byBwdWxsIHVwIHRoZSByZWxldmFudCBLY29uZmlnIGZpbGUgYW5kIHN0YXJ0IHRyYWNpbmcgaXRzIGRlcGVuZGVuY2llcy4gSSdsbCBuZWVkIHRvIGNoZWNrIHdoaWNoIG90aGVyIGZlYXR1cmVzIG9yIGhhcmR3YXJlIGNvbXBvbmVudHMgbmVlZCB0byBiZSBlbmFibGVkIGJlZm9yZSB0aGlzIG9uZSBjYW4gZXZlbiBiZSBjb25zaWRlcmVkLiBJJ2xsIGJlIGxvb2tpbmcgZm9yIGBkZXBlbmRzIG9uYCBzdGF0ZW1lbnRzLCBvYnZpb3VzbHkuIEJ1dCBJIGFsc28gbmVlZCB0byBiZSBtaW5kZnVsIG9mIGBzZWxlY3RgIHN0YXRlbWVudHMsIGFzIHRob3NlIGNhbiBzdWJ0bHkgcHVsbCBpbiBvdGhlciBvcHRpb25zIHRoYXQgbWlnaHQgaW1wYWN0IHRoZSBvdmVyYWxsIGNvbmZpZ3VyYXRpb24uXG5cbk15IGZvY3VzIHdpbGwgYmUgb24gdGhlIHNwZWNpZmljcyBvZiB0aGUgU1BDUDhYNSBjaGlwc2V0IGFuZCBpdHMgaW50ZWdyYXRpb24gd2l0aGluIHRoZSBsYXJnZXIgVVNCIHNlcmlhbCBmcmFtZXdvcmsuIEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgVVNCIGNvbnRyb2xsZXIgcmVxdWlyZW1lbnRzPyBXaGF0IGFib3V0IHBvd2VyIG1hbmFnZW1lbnQgb3IgY2xvY2sgY29uZmlndXJhdGlvbnMgdGhhdCB0aGlzIGRyaXZlciByZWxpZXMgdXBvbj8gSSdsbCBoYXZlIHRvIHNlZSBpZiBhbnkgb2YgaXRzIHByZXJlcXVpc2l0ZXMgaGF2ZSBjb25mbGljdGluZyByZXF1aXJlbWVudHMgd2l0aCBvdGhlciBkcml2ZXJzIEknbSBmYW1pbGlhciB3aXRoLiBJIHdpbGwgaGF2ZSB0byBjb25zaWRlciBhbnkgY3Jvc3MtZGVwZW5kZW5jaWVzIGFuZCB0aGUgaW1wYWN0IG9uIHRoZSBrZXJuZWwgYnVpbGQgYXMgYSB3aG9sZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI2NCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjM2LjI0NjEyOTA1MloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU5MTI3ODQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFVTQl9TRVJJQUxfU1BDUDhYNVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZz00NzU9Y29uZmlnIFVTQl9TRVJJQUxfUVVBTENPTU1cXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ4NC1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0ODU6Y29uZmlnIFVTQl9TRVJJQUxfU1BDUDhYNVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ4Ni1cXHR0cmlzdGF0ZSBcXFwiVVNCIFNQQ1A4eDUgVVNCIFRvIFNlcmlhbCBEcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjM2LjMzMjA0OTcyNloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDgwODQ2MzQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGFzIGlmIHRoZXkncmUgbXkgb3duOlxuXG4qKkFuYWx5emluZyB0aGUgS2NvbmZpZyBGaWxlKipcblxuQWxyaWdodCwgdGhlIG9iamVjdGl2ZSBoZXJlIGlzIHRvIHVuZGVyc3RhbmQgYSBzcGVjaWZpYyBzZWN0aW9uIG9mIHRoZSBLY29uZmlnIGZpbGUuIFRoZSBwcm9tcHQgaGFzIHplcm9lZCBpbiBvbiB0aGUgYXJlYSBhcm91bmQgbGluZSA0ODUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIk9rYXksIGxldCdzIHNlZSB3aGF0J3MgaGFwcGVuaW5nIHRoZXJlLlwiIEkgbmVlZCB0byBnZXQgYSBncmFzcCBvZiB0aGlzIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbiBzZWdtZW50LiBEZXBlbmRpbmcgb24gd2hhdCBJIHNlZSBvbiBsaW5lIDQ4NSBhbmQgYXJvdW5kIGl0LCBJJ2xsIGJlIGxvb2tpbmcgZm9yIHNldmVyYWwga2V5IHRoaW5ncy4gSSdtIGxpa2VseSBpbnRlcmVzdGVkIGluIGRlcGVuZGVuY2llcywgZGVmYXVsdCB2YWx1ZXMsIHByb21wdHMgb3IgbWVudSBzdHJ1Y3R1cmVzLiBJcyBpdCBhIG5ldyBmZWF0dXJlIGJlaW5nIGludHJvZHVjZWQ/IElzIGl0IGEgY29uZmlndXJhdGlvbiBvcHRpb24gdGhhdCdzIGJlaW5nIHJlZGVmaW5lZCBvciBtb2RpZmllZD8gUGVyaGFwcyB0aGUgc3RydWN0dXJlIG9mIGhvdyBpdCBpcyB1c2VkLiBDb250ZXh0IGlzIGltcG9ydGFudCwgc28gSSB3aWxsIHN0YXJ0IGJ5IHpvb21pbmcgb3V0IGEgbGl0dGxlIGJpdCB0byBncmFzcCB0aGUgc3Vycm91bmRpbmcgY29udGV4dC4gTGV0J3MgZ2V0IHRvIHdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NjQsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTozOS40MTI4OTg3MTNaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTExNjMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDQ4MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDQ4MDpcXHRcXHQgIHVzdWFsbHkgd2lyZWxlc3MgY2VsbHVsYXIgbW9kZW1zLlxcbiA0ODE6XFx0XFxuIDQ4MjpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxcbiA0ODM6XFx0XFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcWNzZXJpYWwuXFxuIDQ4NDpcXHRcXG4gNDg1OlxcdGNvbmZpZyBVU0JfU0VSSUFMX1NQQ1A4WDVcXG4gNDg2OlxcdFxcdHRyaXN0YXRlIFxcXCJVU0IgU1BDUDh4NSBVU0IgVG8gU2VyaWFsIERyaXZlclxcXCJcXG4gNDg3OlxcdFxcdGhlbHBcXG4gNDg4OlxcdFxcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIHNwY3A4eDUgY29udmVydGVyIGNoaXAuICBUaGlzIGlzXFxuIDQ4OTpcXHRcXHQgIGNvbW1vbmx5IGZvdW5kIGluIHNvbWUgWi1XYXZlIFVTQiBkZXZpY2VzLlxcbiA0OTA6XFx0XFxuIDQ5MTpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxcbiA0OTI6XFx0XFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgc3BjcDh4NS5cXG4gNDkzOlxcdFxcbiA0OTQ6XFx0Y29uZmlnIFVTQl9TRVJJQUxfU0FGRVxcbiA0OTU6XFx0XFx0dHJpc3RhdGUgXFxcIlVTQiBTYWZlIFNlcmlhbCAoRW5jYXBzdWxhdGVkKSBEcml2ZXJcXFwiXFxuIDQ5NjpcXHRcXG4gNDk3OlxcdGNvbmZpZyBVU0JfU0VSSUFMX1NBRkVfUEFEREVEXFxuIDQ5ODpcXHRcXHRib29sIFxcXCJVU0IgU2VjdXJlIEVuY2Fwc3VsYXRlZCBEcml2ZXIgLSBQYWRkZWRcXFwiXFxuIDQ5OTpcXHRcXHRkZXBlbmRzIG9uIFVTQl9TRVJJQUxfU0FGRVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTozOS40MTMwMTI1NzNaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA4MDcwMzgyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBzdW1tYXJ5IGZyb20gbXkgcGVyc3BlY3RpdmUsIGtlZXBpbmcgaW4gbWluZCBteSBleHBlcnRpc2U6XG5cbioqRXhhbWluaW5nIHRoZSBVU0IgU2VyaWFsIERyaXZlciBDb25maWd1cmF0aW9uIERlcGVuZGVuY3kqKlxuXG5BbHJpZ2h0LCBJJ20gdGhpbmtpbmcgYWJvdXQgdGhpcyBkcml2ZXIgY29uZmlndXJhdGlvbiBhbmQgaXQgc2VlbXMgbGlrZSB3ZSdyZSBkZWFsaW5nIHdpdGggYSBkZXBlbmRlbmN5LiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gYFVTQl9TRVJJQUxgIGFuZCB3aGF0ZXZlciBjb25maWcgb3B0aW9uIGlzIHByb21wdGluZyB0aGlzIGludmVzdGlnYXRpb24uIE15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCBgVVNCX1NFUklBTGAgaXMgdGhlIHBhcmVudCBjb25maWcgaGVyZS4gVG8gdmVyaWZ5IHRoaXMgYW5kIHVuZGVyc3RhbmQgdGhlIHN0cnVjdHVyZSwgdGhlIGZpcnN0IHRoaW5nIEknbGwgZG8gaXMgZGl2ZSBpbnRvIHRoZSByZWxldmFudCBLY29uZmlnIGZpbGUuIFRoYXQgd291bGQgYmUgYGRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnYC4gVGhpcyBmaWxlIHNob3VsZCBsYXkgb3V0IHRoZSBkZXBlbmRlbmNpZXMsIGRlZmF1bHRzLCBhbmQgaGVscCB0ZXh0IGZvciB0aGlzIHNlY3Rpb24gb2YgdGhlIFVTQiBzZXJpYWwgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIEkgZXhwZWN0IHRvIGZpbmQgdGhlIGNydWNpYWwgaW5mb3JtYXRpb24gdGhlcmUgdG8gY2xhcmlmeSB0aGUgY29ubmVjdGlvbiBhbmQgZGV0ZXJtaW5lIGhvdyB0aGVzZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MjI0LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTo0Mi40OTM3MTkyM1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjcxNTcxMDcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBVU0JfU0VSSUFMXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjptZW51Y29uZmlnIFVTQl9TRVJJQUxcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc9MjE9aWYgVVNCX1NFUklBTFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIyLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjIzOmNvbmZpZyBVU0JfU0VSSUFMX0NPTlNPTEVcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNC1cXHRib29sIFxcXCJVU0IgU2VyaWFsIENvbnNvbGUgZGV2aWNlIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0Njpjb25maWcgVVNCX1NFUklBTF9HRU5FUklDXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDctXFx0Ym9vbCBcXFwiVVNCIEdlbmVyaWMgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjU1OmNvbmZpZyBVU0JfU0VSSUFMX1NJTVBMRVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU2LVxcdHRyaXN0YXRlIFxcXCJVU0IgU2VyaWFsIFNpbXBsZSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy03OC1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo3OTpjb25maWcgVVNCX1NFUklBTF9BSVJDQUJMRVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTgwLVxcdHRyaXN0YXRlIFxcXCJVU0IgQUlSY2FibGUgQmx1ZXRvb3RoIERvbmdsZSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy04Ni1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo4Nzpjb25maWcgVVNCX1NFUklBTF9BUkszMTE2XFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctODgtXFx0dHJpc3RhdGUgXFxcIlVTQiBBUksgTWljcm8gMzExNiBVU0IgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTk1LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjk2OmNvbmZpZyBVU0JfU0VSSUFMX0JFTEtJTlxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJVU0IgQmVsa2luIGFuZCBQZXJhY29tIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMDUtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MTA2OmNvbmZpZyBVU0JfU0VSSUFMX0NIMzQxXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTA3LVxcdHRyaXN0YXRlIFxcXCJVU0IgV2luY2hpcGhlYWQgQ0gzNDEgU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTExNC1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxMTU6Y29uZmlnIFVTQl9TRVJJQUxfV0hJVEVIRUFUXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTE2LVxcdHRyaXN0YXRlIFxcXCJVU0IgQ29ubmVjdFRlY2ggV2hpdGVIRUFUIFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMjQtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MTI1OmNvbmZpZyBVU0JfU0VSSUFMX0RJR0lfQUNDRUxFUE9SVFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTEyNi1cXHR0cmlzdGF0ZSBcXFwiVVNCIERpZ2kgSW50ZXJuYXRpb25hbCBBY2NlbGVQb3J0IFVTQiBTZXJpYWwgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTM1LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjEzNjpjb25maWcgVVNCX1NFUklBTF9DUDIxMFhcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xMzctXFx0dHJpc3RhdGUgXFxcIlVTQiBDUDIxMHggZmFtaWx5IG9mIFVBUlQgQnJpZGdlIENvbnRyb2xsZXJzXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTQ0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjE0NTpjb25maWcgVVNCX1NFUklBTF9DWVBSRVNTX004XFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTQ2LVxcdHRyaXN0YXRlIFxcXCJVU0IgQ3lwcmVzcyBNOCBVU0IgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTE1OC1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxNTk6Y29uZmlnIFVTQl9TRVJJQUxfRU1QRUdcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xNjAtXFx0dHJpc3RhdGUgXFxcIlVTQiBFbXBlZyBlbXBlZy1jYXIgTWFyayBJL0lJIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTE2OS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoxNzA6Y29uZmlnIFVTQl9TRVJJQUxfRlRESV9TSU9cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xNzEtXFx0dHJpc3RhdGUgXFxcIlVTQiBGVERJIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xODItXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MTgzOmNvbmZpZyBVU0JfU0VSSUFMX1ZJU09SXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMTg0LVxcdHRyaXN0YXRlIFxcXCJVU0IgSGFuZHNwcmluZyBWaXNvciAvIFBhbG0gbTUweCAvIFNvbnkgQ2xpZSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xOTMtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MTk0OmNvbmZpZyBVU0JfU0VSSUFMX0lQQVFcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0xOTUtXFx0dHJpc3RhdGUgXFxcIlVTQiBQb2NrZXRQQyBQREEgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjA0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjIwNTpjb25maWcgVVNCX1NFUklBTF9JUlxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIwNi1cXHR0cmlzdGF0ZSBcXFwiVVNCIElSIERvbmdsZSBTZXJpYWwgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjE0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjIxNTpjb25maWcgVVNCX1NFUklBTF9FREdFUE9SVFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIxNi1cXHR0cmlzdGF0ZSBcXFwiVVNCIEluc2lkZSBPdXQgRWRnZXBvcnQgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTIzOS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzoyNDA6Y29uZmlnIFVTQl9TRVJJQUxfRURHRVBPUlRfVElcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNDEtXFx0dHJpc3RhdGUgXFxcIlVTQiBJbnNpZGUgT3V0IEVkZ2Vwb3J0IFNlcmlhbCBEcml2ZXIgKFRJIGRldmljZXMpXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjQ5LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjI1MDpjb25maWcgVVNCX1NFUklBTF9GODEyMzJcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNTEtXFx0dHJpc3RhdGUgXFxcIlVTQiBGaW50ZWsgRjgxMjMyIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNTgtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MjU5OmNvbmZpZyBVU0JfU0VSSUFMX0Y4MTUzWFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTI2MC1cXHR0cmlzdGF0ZSBcXFwiVVNCIEZpbnRlayBGODE1MzIvNTM0IE11bHRpLVBvcnRzIFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yNjgtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MjY5OmNvbmZpZyBVU0JfU0VSSUFMX0dBUk1JTlxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTI3MC1cXHR0cmlzdGF0ZSBcXFwiVVNCIEdhcm1pbiBHUFMgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjgwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjI4MTpjb25maWcgVVNCX1NFUklBTF9JUFdcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yODItXFx0dHJpc3RhdGUgXFxcIlVTQiBJUFdpcmVsZXNzICgzRyBVTVRTIFRERCkgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMjkwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjI5MTpjb25maWcgVVNCX1NFUklBTF9JVVVcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0yOTItXFx0dHJpc3RhdGUgXFxcIlVTQiBJbmZpbml0eSBVU0IgVW5saW1pdGVkIFBob2VuaXggRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzAwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjMwMTpjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1BEQVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTMwMi1cXHR0cmlzdGF0ZSBcXFwiVVNCIEtleXNwYW4gUERBIC8gWGlyY29tIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zMTEtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MzEyOmNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zMTMtXFx0dHJpc3RhdGUgXFxcIlVTQiBLZXlzcGFuIFVTQS14eHggU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTMyNS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozMjY6Y29uZmlnIFVTQl9TRVJJQUxfS0xTSVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTMyNy1cXHR0cmlzdGF0ZSBcXFwiVVNCIEtMNUtVU0IxMDUgKFBhbG1jb25uZWN0KSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNDAtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6MzQxOmNvbmZpZyBVU0JfU0VSSUFMX0tPQklMX1NDVFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM0Mi1cXHR0cmlzdGF0ZSBcXFwiVVNCIEtPQklMIGNoaXBjYXJkIHJlYWRlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM1Ny1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozNTg6Y29uZmlnIFVTQl9TRVJJQUxfTUNUX1UyMzJcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNTktXFx0dHJpc3RhdGUgXFxcIlVTQiBNQ1QgU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM2OS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozNzA6Y29uZmlnIFVTQl9TRVJJQUxfTUVUUk9cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zNzEtXFx0dHJpc3RhdGUgXFxcIlVTQiBNZXRyb2xvZ2ljIEluc3RydW1lbnRzIFVTQi1QT1MgQmFyY29kZSBTY2FubmVyIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM3Ny1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzozNzg6Y29uZmlnIFVTQl9TRVJJQUxfTU9TNzcyMFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTM3OS1cXHR0cmlzdGF0ZSBcXFwiVVNCIE1vc2NoaXAgNzcyMCBTZXJpYWwgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzg2LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjM4Nzpjb25maWcgVVNCX1NFUklBTF9NT1M3NzE1X1BBUlBPUlRcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy0zODgtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgcGFyYWxsZWwgcG9ydCBvbiB0aGUgTW9zY2hpcCA3NzE1XFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzk2LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjM5Nzpjb25maWcgVVNCX1NFUklBTF9NT1M3ODQwXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctMzk4LVxcdHRyaXN0YXRlIFxcXCJVU0IgTW9zY2hpcCA3ODQwLzc4MjAgVVNCIFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00MTAtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDExOmNvbmZpZyBVU0JfU0VSSUFMX01YVVBPUlRcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00MTItXFx0dHJpc3RhdGUgXFxcIlVTQiBNb3hhIFVQT1JUIFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00MzktXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDQwOmNvbmZpZyBVU0JfU0VSSUFMX05BVk1BTlxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ0MS1cXHR0cmlzdGF0ZSBcXFwiVVNCIE5hdm1hbiBHUFMgZGV2aWNlXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDQ1LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ0Njpjb25maWcgVVNCX1NFUklBTF9QTDIzMDNcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NDctXFx0dHJpc3RhdGUgXFxcIlVTQiBQcm9saWZpYyAyMzAzIFNpbmdsZSBQb3J0IFNlcmlhbCBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NTQtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDU1OmNvbmZpZyBVU0JfU0VSSUFMX09USTY4NThcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NTYtXFx0dHJpc3RhdGUgXFxcIlVTQiBPdXJzIFRlY2hub2xvZ3kgSW5jLiBPVGktNjg1OCBVU0IgVG8gUlMyMzIgQnJpZGdlIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NjMtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDY0OmNvbmZpZyBVU0JfU0VSSUFMX1FDQVVYXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDY1LVxcdHRyaXN0YXRlIFxcXCJVU0IgUXVhbGNvbW0gQXV4aWxpYXJ5IFNlcmlhbCBQb3J0IERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ3NC1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0NzU6Y29uZmlnIFVTQl9TRVJJQUxfUVVBTENPTU1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00NzYtXFx0dHJpc3RhdGUgXFxcIlVTQiBRdWFsY29tbSBTZXJpYWwgbW9kZW1cXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00ODQtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NDg1OmNvbmZpZyBVU0JfU0VSSUFMX1NQQ1A4WDVcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00ODYtXFx0dHJpc3RhdGUgXFxcIlVTQiBTUENQOHg1IFVTQiBUbyBTZXJpYWwgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDkzLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjQ5NDpjb25maWcgVVNCX1NFUklBTF9TQUZFXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNDk1LVxcdHRyaXN0YXRlIFxcXCJVU0IgU2FmZSBTZXJpYWwgKEVuY2Fwc3VsYXRlZCkgRHJpdmVyXFxcIlxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTQ5Ni1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo0OTc6Y29uZmlnIFVTQl9TRVJJQUxfU0FGRV9QQURERURcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy00OTgtXFx0Ym9vbCBcXFwiVVNCIFNlY3VyZSBFbmNhcHN1bGF0ZWQgRHJpdmVyIC0gUGFkZGVkXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTAwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjUwMTpjb25maWcgVVNCX1NFUklBTF9TSUVSUkFXSVJFTEVTU1xcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUwMi1cXHR0cmlzdGF0ZSBcXFwiVVNCIFNpZXJyYSBXaXJlbGVzcyBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01MTEtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTEyOmNvbmZpZyBVU0JfU0VSSUFMX1NZTUJPTFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUxMy1cXHR0cmlzdGF0ZSBcXFwiVVNCIFN5bWJvbCBCYXJjb2RlIGRyaXZlciAoc2VyaWFsIG1vZGUpXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTIwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjUyMTpjb25maWcgVVNCX1NFUklBTF9USVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUyMi1cXHR0cmlzdGF0ZSBcXFwiVVNCIFRJIDM0MTAvNTA1MiBTZXJpYWwgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTI5LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjUzMDpjb25maWcgVVNCX1NFUklBTF9DWUJFUkpBQ0tcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01MzEtXFx0dHJpc3RhdGUgXFxcIlVTQiBSRUlORVIgU0NUIGN5YmVySmFjayBwaW5wYWQvZS1jb20gY2hpcGNhcmQgcmVhZGVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTQxLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjU0Mjpjb25maWcgVVNCX1NFUklBTF9XV0FOXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTQzLVxcdHRyaXN0YXRlXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTQ0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjU0NTpjb25maWcgVVNCX1NFUklBTF9PUFRJT05cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NDYtXFx0dHJpc3RhdGUgXFxcIlVTQiBkcml2ZXIgZm9yIEdTTSBhbmQgQ0RNQSBtb2RlbXNcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NjMtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTY0OmNvbmZpZyBVU0JfU0VSSUFMX09NTklORVRcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NjUtXFx0dHJpc3RhdGUgXFxcIlVTQiBaeVhFTCBvbW5pLm5ldCBMQ0QgUGx1cyBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NzEtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTcyOmNvbmZpZyBVU0JfU0VSSUFMX09QVElDT05cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01NzMtXFx0dHJpc3RhdGUgXFxcIlVTQiBPcHRpY29uIEJhcmNvZGUgZHJpdmVyIChzZXJpYWwgbW9kZSlcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01ODAtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NTgxOmNvbmZpZyBVU0JfU0VSSUFMX1hTRU5TX01UXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNTgyLVxcdHRyaXN0YXRlIFxcXCJYc2VucyBtb3Rpb24gdHJhY2tlciBzZXJpYWwgaW50ZXJmYWNlIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTU5Mi1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo1OTM6Y29uZmlnIFVTQl9TRVJJQUxfV0lTSEJPTkVcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy01OTQtXFx0dHJpc3RhdGUgXFxcIlVTQi1XaXNoYm9uZSBhZGFwdGVyIGludGVyZmFjZSBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MDktXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjEwOmNvbmZpZyBVU0JfU0VSSUFMX1NTVTEwMFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTYxMS1cXHR0cmlzdGF0ZSBcXFwiVVNCIFF1YXRlY2ggU1NVLTEwMCBTaW5nbGUgUG9ydCBTZXJpYWwgRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWctNjE4LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnOjYxOTpjb25maWcgVVNCX1NFUklBTF9RVDJcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MjAtXFx0dHJpc3RhdGUgXFxcIlVTQiBRdWF0ZWNoIFNlcmlhbCBEcml2ZXIgZm9yIFVTQiAyIGRldmljZXNcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MjctXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjI4OmNvbmZpZyBVU0JfU0VSSUFMX1VQRDc4RjA3MzBcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MjktXFx0dHJpc3RhdGUgXFxcIlVTQiBSZW5lc2FzIHVQRDc4RjA3MzAgU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTYzNi1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo2Mzc6Y29uZmlnIFVTQl9TRVJJQUxfWFJcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02MzgtXFx0dHJpc3RhdGUgXFxcIlVTQiBNYXhMaW5lYXIvRXhhciBVU0IgdG8gU2VyaWFsIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTY0NS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZzo2NDY6Y29uZmlnIFVTQl9TRVJJQUxfREVCVUdcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy02NDctXFx0dHJpc3RhdGUgXFxcIlVTQiBEZWJ1Z2dpbmcgRGV2aWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTo0Mi43NjUyOTQxNDFaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE0MzM1MzcxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqRGlnZ2luZyBpbnRvIHRoZSBVU0IgU2VyaWFsIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUsIEknbSBsb29raW5nIGF0IHRoaXMgYFVTQl9TRVJJQUxgIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBSaWdodCwgc28gaXQncyB0aGUgcGFyZW50LCB0aGUgb3ZlcmFyY2hpbmcgc2V0dGluZy4gT2theSwgZ29vZC4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGZ1bGx5LCBhcmUgdGhlcmUgYW55IG90aGVyIGRlcGVuZGVuY2llcyBJIG5lZWQgdG8gYmUgYXdhcmUgb2YgYmV5b25kIGBVU0JfU0VSSUFMYCBpdHNlbGY/IEhtbSwgbGV0IG1lIGNoZWNrLi4uIGFoLCB5ZXMsIEkgc2VlIHRoYXQgYFVTQl9TRVJJQUxgIGlzIGRlcGVuZGVudCBvbiB0aGUgZ2VuZXJhbCBgVVNCYCBvcHRpb24uIE1ha2VzIHBlcmZlY3Qgc2Vuc2UsIGFuZCBJIHNob3VsZCBoYXZlIGFudGljaXBhdGVkIHRoYXQuIE5vdywgbGV0IG1lIHNlZSBpZiB0aGlzIHByZXNlbnRzIGFueSBjb21wYXRpYmlsaXR5IGlzc3VlcyB3aXRoIG15IHRhcmdldCBzeXN0ZW0uLi5cblxuXG4iLCJJbnB1dFRva2VucyI6OTMwNCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjQ1LjkwODY1MTE1NFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE5Mjc5MDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWVudWNvbmZpZyBVU0JfU0VSSUFMXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnLTUtXFxuZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWc6NjptZW51Y29uZmlnIFVTQl9TRVJJQUxcXG5kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTo0NS45NzA1ODM2NTlaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA5NjE4NzgxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqVVNCIFNlcmlhbCBEcml2ZXIgRGVwZW5kZW5jaWVzIC0gS2NvbmZpZyBDaGVjayoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSBgbWVudWNvbmZpZ2Agb3B0aW9uIGBVU0JfU0VSSUFMYCB3aXRoaW4gdGhlIGtlcm5lbCdzIFVTQiBzZXJpYWwgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIE15IGZpcnN0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIGBkcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZ2AuIEkga25vdyB0aGF0J3MgdGhlIGNhbm9uaWNhbCBsb2NhdGlvbiBmb3IgdGhlc2Ugc29ydHMgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zIHdpdGhpbiB0aGUgVVNCIHNlcmlhbCBzdWJzeXN0ZW0sIHNvIHRoYXQncyB3aGVyZSBJIHNob3VsZCBiZSBhYmxlIHRvIGZpZ3VyZSBvdXQgd2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMsIG9wdGlvbnMsIG9yIGhhcmR3YXJlIHN1cHBvcnQgbXVzdCBiZSBlbmFibGVkIG9yIHByZXNlbnQgZm9yIGBVU0JfU0VSSUFMYCB0byBiZSBleHBvc2VkIGFuZCBzZWxlY3RhYmxlLiBJIGV4cGVjdCB0byBmaW5kIGRlcGVuZGVuY2llcyBsaXN0ZWQgYXMgYGRlcGVuZHMgb25gIHN0YXRlbWVudHMsIG1heWJlIGFsb25nIHdpdGggYW55IGltcGxpZWQgY29uc3RyYWludHMsIGFuZCB0aGUgY29uZGl0aW9ucyB1bmRlciB3aGljaCB0aGUgb3B0aW9uIGlzIHZpc2libGUuIFVuZGVyc3RhbmRpbmcgdGhlc2UgZGVwZW5kZW5jaWVzIGlzIGNydWNpYWwgZm9yIGNvbmZpZ3VyaW5nIHRoaXMgYXNwZWN0IG9mIHRoZSBrZXJuZWwgcHJvcGVybHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk1NzgsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTo0OS4wNjY3NzM1OTVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTA0NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIFVTQiBTZXJpYWwgZGV2aWNlIGNvbmZpZ3VyYXRpb25cXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0bWVudWNvbmZpZyBVU0JfU0VSSUFMXFxuICAgNzpcXHRcXHR0cmlzdGF0ZSBcXFwiVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydFxcXCJcXG4gICA4OlxcdFxcdGRlcGVuZHMgb24gVFRZXFxuICAgOTpcXHRcXHRoZWxwXFxuICAxMDpcXHRcXHQgIFNheSBZIGhlcmUgaWYgeW91IGhhdmUgYSBVU0IgZGV2aWNlIHRoYXQgcHJvdmlkZXMgbm9ybWFsIHNlcmlhbFxcbiAgMTE6XFx0XFx0ICBwb3J0cywgb3IgYWN0cyBsaWtlIGEgc2VyaWFsIGRldmljZSwgYW5kIHlvdSB3YW50IHRvIGNvbm5lY3QgaXQgdG9cXG4gIDEyOlxcdFxcdCAgeW91ciBVU0IgYnVzLlxcbiAgMTM6XFx0XFxuICAxNDpcXHRcXHQgIFBsZWFzZSByZWFkIFxcdTAwM2NmaWxlOkRvY3VtZW50YXRpb24vdXNiL3VzYi1zZXJpYWwucnN0XFx1MDAzZSBmb3IgbW9yZVxcbiAgMTU6XFx0XFx0ICBpbmZvcm1hdGlvbiBvbiB0aGUgc3BlY2lmaWNzIG9mIHRoZSBkaWZmZXJlbnQgZGV2aWNlcyB0aGF0IGFyZVxcbiAgMTY6XFx0XFx0ICBzdXBwb3J0ZWQsIGFuZCBvbiBob3cgdG8gdXNlIHRoZW0uXFxuICAxNzpcXHRcXG4gIDE4OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuICAxOTpcXHRcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB1c2JzZXJpYWwuXFxuICAyMDpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6NDkuMDY2ODY1NzE1WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNDczMzU1NzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTUENQOFg1IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBkaXZpbmcgaW50byB0aGlzIFNQQ1A4WDUgZHJpdmVyLCBhbmQgaXQncyBpbW1lZGlhdGVseSBhcHBhcmVudCB0aGF0IGl0cyBiZWhhdmlvciBpcyBzdHJvbmdseSB0aWVkIHRvIHRoZSBgVFRZYCBjb250ZXh0LiBUaGF0J3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBUbyBtYWtlIHN1cmUgdGhpcyB0aGluZyBpcyBldmVuIGVuYWJsZWQsIEkgbmVlZCB0byBjb25maXJtIGBVU0JfU0VSSUFMYCBhbmQgYFVTQl9TRVJJQUxfU1BDUDhYNWAgYXJlIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4gVGhhdCdzIGdyb3VuZCB6ZXJvLlxuXG5JIHNlZSB0aGV5J3ZlIHJlbW92ZWQgdGhlIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIEknbGwgbmVlZCB0byB1bmRlcnN0YW5kIHdoeS4gTm93LCBsb29raW5nIGF0IHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdGhpcyBkcml2ZXIsIHRoZSBrZXkgZnVuY3Rpb25zIHRoYXQgd2FycmFudCBhIGNsb3NlIGV4YW1pbmF0aW9uIGFyZSBjbGVhcmx5IGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGFuZCBgc3BjcDh4NV90aW9jbXNldGAuIFRoZXNlIGFyZSB0aGUgY3JpdGljYWwgaW50ZXJmYWNlIHBvaW50cy5cblxuSGFuZyBvbi4uLiBgc3BjcDh4NV9vcGVuYCBsb29rcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50LiBJdCdzIHRoZSBlbnRyeSBwb2ludCwgc28gSSdsbCBwcmlvcml0aXplIHRoYXQuIEkgc2hvdWxkIHByb2JhYmx5IGVuc3VyZSB0aGF0IHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSBvZiB0aGlzIG1vZHVsZSBpcyBrbm93biwgc28gSSdsbCBkbyBhIHF1aWNrIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGltcG9ydGFudCBmdW5jdGlvbnMgZGVmaW5lZCBpbiBgc3BjcDh4NS5jYCB0aGF0IEkgbWlnaHQgbmVlZCB0byBjb25zaWRlci4gR290dGEgZ2V0IHRoZSBiaWcgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTAwNjksIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTo1My4yMTQyMDUwMDVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4Mjc3MTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0YXRpYy4qc3BjcDh4NV9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jPTEyNz1zdHJ1Y3Qgc3BjcDh4NV9wcml2YXRlIHtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTMyLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MTMzOnN0YXRpYyBpbnQgc3BjcDh4NV9wcm9iZShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTM0LVxcdFxcdFxcdFxcdFxcdFxcdGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTQwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MTQxOnN0YXRpYyBpbnQgc3BjcDh4NV9wb3J0X3Byb2JlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xNDIte1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0xNTktXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzoxNjA6c3RhdGljIHZvaWQgc3BjcDh4NV9wb3J0X3JlbW92ZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTYxLXtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTY3LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MTY4OnN0YXRpYyBpbnQgc3BjcDh4NV9zZXRfY3RybF9saW5lKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHU4IG1jcilcXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE2OS17XFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE4Ni1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjE4NzpzdGF0aWMgaW50IHNwY3A4eDVfZ2V0X21zcihzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1OCAqc3RhdHVzKVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTg4LXtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMjE5LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MjIwOnN0YXRpYyB2b2lkIHNwY3A4eDVfc2V0X3dvcmtfbW9kZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1MTYgdmFsdWUsXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0yMjEtXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0IHUxNiBpbmRleClcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMjM3LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MjM4OnN0YXRpYyB2b2lkIHNwY3A4eDVfZHRyX3J0cyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgb24pXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0yMzkte1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0yNTUtXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzoyNTY6c3RhdGljIHZvaWQgc3BjcDh4NV9pbml0X3Rlcm1pb3Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSlcXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTI1Ny17XFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTI2MC1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjI2MTpzdGF0aWMgdm9pZCBzcGNwOHg1X3NldF90ZXJtaW9zKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0yNjItXFx0XFx0XFx0XFx0c3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCxcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMzY1LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6MzY2OnN0YXRpYyBpbnQgc3BjcDh4NV9vcGVuKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zNjcte1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zODgtXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzozODk6c3RhdGljIGludCBzcGNwOHg1X3Rpb2Ntc2V0KHN0cnVjdCB0dHlfc3RydWN0ICp0dHksXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy0zOTAtXFx0XFx0XFx0ICAgIHVuc2lnbmVkIGludCBzZXQsIHVuc2lnbmVkIGludCBjbGVhcilcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDExLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6NDEyOnN0YXRpYyBpbnQgc3BjcDh4NV90aW9jbWdldChzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDEzLXtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDM4LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM6NDM5OnN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgc3BjcDh4NV9kZXZpY2UgPSB7XFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00NDAtXFx0LmRyaXZlciA9IHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6Mzk6NTMuMjcyNDg3MDYxWiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0Njc1MDAzOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTUEMgU2VyaWFsIERyaXZlcioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB6ZXJvIGluIG9uIHRoZXNlIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIGBzcGNwOHg1YCBkcml2ZXI6IGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGFuZCBgc3BjcDh4NV90aW9jbXNldGAuIFRoZXNlIGFyZSB0aGUga2V5IGVudHJ5IHBvaW50cyBhbmQgY29udHJvbCBtZWNoYW5pc21zLCB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIHNlcmlhbCBwb3J0IG1hbmFnZW1lbnQuXG5cbkFoYSwgYW5kIGhlcmUncyBhIHdyaW5rbGUg4oCTIHRoZSBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgZnVuY3Rpb24gaGFzIGJlZW4gKnJlbW92ZWQqLiBSaWdodC4gU28gdGhlIGNhcnJpZXIgZGV0ZWN0aW9uIGlzIG5vdyBiZWluZyBoYW5kbGVkIGVpdGhlciBieSB0aGUgZ2VuZXJpYyBVU0Igc2VyaWFsIGNvcmUuLi4gb3IgaXQncyBkZWZhdWx0aW5nIHRvIHNvbWUgc3RhbmRhcmQgYmVoYXZpb3IgZGVmaW5lZCB3aXRoaW4gdGhlIGNvcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoLiBJIHJlYWxseSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIG1lYW5zIGZvciBlcnJvciByZXBvcnRpbmcuXG5cbkFoLCBsb29rcyBsaWtlIGlmIGAuY2Fycmllcl9yYWlzZWRgIGlzbid0IGV4cGxpY2l0bHkgc2V0IGluIHRoZSBwb3J0IHN0cnVjdHVyZSwgaXQgZmFsbHMgYmFjayB0byB0aGUgY29yZSBsb2dpYy4gU3BlY2lmaWNhbGx5LCB0aGUgY29kZSBkb2VzIGEgY2hlY2s6IGBpZiAocG9ydC1cdTAwM2VzZXJpYWwtXHUwMDNldHlwZS1cdTAwM2VjYXJyaWVyX3JhaXNlZCkgcmV0dXJuIHBvcnQtXHUwMDNlc2VyaWFsLVx1MDAzZXR5cGUtXHUwMDNlY2Fycmllcl9yYWlzZWQocG9ydCk7YC4gT2theSwgdGhhdCdzIHN0cmFpZ2h0Zm9yd2FyZC4gQnV0LCB3aGF0IGlmIHRoZSBgY2Fycmllcl9yYWlzZWRgIGZpZWxkIGlzICpub3QqIHNldD8gVGhhdCdzIHRoZSByZWFsIHF1ZXN0aW9uLiBXaGF0J3MgdGhlICpkZWZhdWx0KiBiZWhhdmlvciBpZiBub3RoaW5nIGlzIGV4cGxpY2l0bHkgcHJvdmlkZWQ/IEkgbmVlZCB0byB0cmFjayBkb3duIGV4YWN0bHkgaG93IHRoZSBjb3JlIHNlcmlhbCBjb2RlIGhhbmRsZXMgdGhlIGFic2VuY2Ugb2YgdGhpcyBmdW5jdGlvbiBwb2ludGVyLCBhbmQgd2hhdCB0aGUgaW1wbGljYXRpb25zIG9mIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBhcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNzA1LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTY3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjM5OjU5LjczOTk5MDUyM1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE2OTQwNzYyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNhcnJpZXJfcmFpc2VkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3NlcmlhbC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2Ivc2VyaWFsL2NoMzQxLmM9NDEyPXN0YXRpYyB2b2lkIGNoMzQxX3BvcnRfcmVtb3ZlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvY2gzNDEuYy00MTktXFxuZHJpdmVycy91c2Ivc2VyaWFsL2NoMzQxLmM6NDIwOnN0YXRpYyBpbnQgY2gzNDFfY2Fycmllcl9yYWlzZWQoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydClcXG5kcml2ZXJzL3VzYi9zZXJpYWwvY2gzNDEuYy00MjEte1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL2NoMzQxLmM9ODY1PXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgY2gzNDFfZGV2aWNlID0ge1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL2NoMzQxLmMtODcyLVxcdC5kdHJfcnRzXFx0ICAgPSBjaDM0MV9kdHJfcnRzLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9jaDM0MS5jOjg3MzpcXHQuY2Fycmllcl9yYWlzZWRcXHQgICA9IGNoMzQxX2NhcnJpZXJfcmFpc2VkLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9jaDM0MS5jLTg3NC1cXHQuY2xvc2UgICAgICAgICAgICAgPSBjaDM0MV9jbG9zZSxcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9mODEyMzIuYz03NjE9c3RhdGljIGJvb2wgZjgxMjMyX3R4X2VtcHR5KHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvZjgxMjMyLmMtNzc0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9mODEyMzIuYzo3NzU6c3RhdGljIGludCBmODEyMzJfY2Fycmllcl9yYWlzZWQoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydClcXG5kcml2ZXJzL3VzYi9zZXJpYWwvZjgxMjMyLmMtNzc2LXtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9mODEyMzIuYz05ODI9c3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RyaXZlciBmODEyMzJfZGV2aWNlID0ge1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jLTk5Mi1cXHQuZHRyX3J0cyA9XFx0XFx0ZjgxMjMyX2R0cl9ydHMsXFxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jOjk5MzpcXHQuY2Fycmllcl9yYWlzZWQgPVxcdGY4MTIzMl9jYXJyaWVyX3JhaXNlZCxcXG5kcml2ZXJzL3VzYi9zZXJpYWwvZjgxMjMyLmMtOTk0LVxcdC5nZXRfc2VyaWFsID1cXHRcXHRmODEyMzJfZ2V0X3NlcmlhbCxcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9mODEyMzIuYz0xMDA4PXN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgZjgxNTM0YV9kZXZpY2UgPSB7XFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvZjgxMjMyLmMtMTAxNi1cXHQuZHRyX3J0cyA9XFx0XFx0ZjgxMjMyX2R0cl9ydHMsXFxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jOjEwMTc6XFx0LmNhcnJpZXJfcmFpc2VkID1cXHRmODEyMzJfY2Fycmllcl9yYWlzZWQsXFxuZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTIzMi5jLTEwMTgtXFx0LmdldF9zZXJpYWwgPVxcdFxcdGY4MTIzMl9nZXRfc2VyaWFsLFxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jPTEwNTk9c3RhdGljIGludCBwbDIzMDNfdGlvY21nZXQoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSlcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYy0xMDg0LVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYzoxMDg1OnN0YXRpYyBpbnQgcGwyMzAzX2NhcnJpZXJfcmFpc2VkKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpXFxuZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jLTEwODYte1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jPTEyNzE9c3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RyaXZlciBwbDIzMDNfZGV2aWNlID0ge1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jLTEyODMtXFx0LmR0cl9ydHMgPVxcdFxcdHBsMjMwM19kdHJfcnRzLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYzoxMjg0OlxcdC5jYXJyaWVyX3JhaXNlZCA9XFx0cGwyMzAzX2NhcnJpZXJfcmFpc2VkLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYy0xMjg1LVxcdC5icmVha19jdGwgPVxcdFxcdHBsMjMwM19icmVha19jdGwsXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jPTczMz1zdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZHJpdmVyICpzZWFyY2hfc2VyaWFsX2RldmljZShcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmMtNzUwLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmM6NzUxOnN0YXRpYyBib29sIHNlcmlhbF9wb3J0X2NhcnJpZXJfcmFpc2VkKHN0cnVjdCB0dHlfcG9ydCAqcG9ydClcXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jLTc1Mi17XFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jLTc1NS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jOjc1NjpcXHRpZiAoZHJ2LVxcdTAwM2VjYXJyaWVyX3JhaXNlZClcXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jOjc1NzpcXHRcXHRyZXR1cm4gZHJ2LVxcdTAwM2VjYXJyaWVyX3JhaXNlZChwKTtcXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jLTc1OC1cXHQvKiBObyBjYXJyaWVyIGNvbnRyb2wgLSBkb24ndCBibG9jayAqL1xcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYz03ODY9c3RhdGljIGNvbnN0IHN0cnVjdCB0dHlfcG9ydF9vcGVyYXRpb25zIHNlcmlhbF9wb3J0X29wcyA9IHtcXG5kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jOjc4NzpcXHQuY2Fycmllcl9yYWlzZWRcXHRcXHQ9IHNlcmlhbF9wb3J0X2NhcnJpZXJfcmFpc2VkLFxcbmRyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmMtNzg4LVxcdC5kdHJfcnRzXFx0XFx0PSBzZXJpYWxfcG9ydF9kdHJfcnRzLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMjozOTo1OS44NTY5MzY0OTVaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM3ODcxMzY3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIENhcnJpZXIgRGV0ZWN0IExvZ2ljKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgc2VyaWFsX3BvcnRfY2Fycmllcl9yYWlzZWRgIGZ1bmN0aW9uIGFuZCBob3cgaXQncyBjaGFuZ2VkLiBJdCBsb29rcyBsaWtlIGl0IHVzZWQgdG8gcmVseSBvbiBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgd2hpY2ggaXMgbm93IHJlbW92ZWQuIExldCdzIHNlZS4uLiB0aGUgb2xkIGZ1bmN0aW9uIGNoZWNrZWQgZm9yIGEgcmV0dXJuIHZhbHVlIGByZXRgIGZyb20gYHNwY3A4eDVfZ2V0X21zcmAgb3IgaWYgdGhlIGBNU1JfU1RBVFVTX0xJTkVfRENEYCBiaXQgd2FzIHNldCBpbiBgbXNyYC4gSWYgZWl0aGVyIG9mIHRob3NlIGNvbmRpdGlvbnMgd2VyZSB0cnVlLCBpdCByZXR1cm5lZCAxLCBvdGhlcndpc2UgMC4gTm93LCBpdCBhbHdheXMgcmV0dXJucyAxIGJlY2F1c2UgYGRydi1cdTAwM2VjYXJyaWVyX3JhaXNlZGAgaXMgTlVMTC4gVGhhdCdzIGEgZGVmaW5pdGUgZnVuY3Rpb25hbCBjaGFuZ2UsIG1lYW5pbmcgdGhlIGRldmljZSB3aWxsIG5vdyAqYWx3YXlzKiByZXBvcnQgY2FycmllciBkZXRlY3QuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcy5cblxuVGhlIGtleSBmdW5jdGlvbnMgdG8gZXhhbWluZSBpbiBkZXRhaWwgYXJlIGRlZmluaXRlbHkgYHNwY3A4eDVfZ2V0X21zcmAsIGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBgc3BjcDh4NV90aW9jbWdldGAsIGFuZCBgc3BjcDh4NV90aW9jbXNldGAuIEhvbGQgb24uLi4gYHNwY3A4eDVfZ2V0X21zcmAgaXMgc3RpbGwgdXNlZCBpbiBgc3BjcDh4NV90aW9jbWdldGAuLi4gcmlnaHQsIEknbGwgbmVlZCB0byByZW1lbWJlciB0aGF0LiBUaGlzIGlzIGdvaW5nIHRvIHJlcXVpcmUgYSBkZWVwZXIgZGl2ZSBpbnRvIGhvdyBjYXJyaWVyIGRldGVjdCBpcyBiZWluZyBoYW5kbGVkIG5vdy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM1MzQsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6NDA6MDUuMjM1NjUzNTU2WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NTQyMDI5MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzcGNwOHg1X2dldF9tc3JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jPTE2OD1zdGF0aWMgaW50IHNwY3A4eDVfc2V0X2N0cmxfbGluZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1OCBtY3IpXFxuLS1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jLTE4Ni1cXG5kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jOjE4NzpzdGF0aWMgaW50IHNwY3A4eDVfZ2V0X21zcihzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1OCAqc3RhdHVzKVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtMTg4LXtcXG4tLVxcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmM9NDEyPXN0YXRpYyBpbnQgc3BjcDh4NV90aW9jbWdldChzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KVxcbi0tXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYy00MjAtXFxuZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYzo0MjE6XFx0cmVzdWx0ID0gc3BjcDh4NV9nZXRfbXNyKHBvcnQsIFxcdTAwMjZzdGF0dXMpO1xcbmRyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMtNDIyLVxcdGlmIChyZXN1bHQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAyOjQwOjA1LjMzMTA3OTMzOVoiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2OTYwMjgyMzI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBTUENQOFg1IERyaXZlciBmb3IgUG90ZW50aWFsIEZ1enppbmcqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gbG9va2luZyBhdCB0aGUgYHNwY3A4eDVgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIGEgcmVjZW50IGNoYW5nZS4gSSBjb25maXJtZWQgdGhhdCBgc3BjcDh4NV9nZXRfbXNyYCBpcyBpbmRlZWQgc3RpbGwgYmVpbmcgY2FsbGVkIHdpdGhpbiBgc3BjcDh4NV90aW9jbWdldGAsIG1ha2luZyB0aGF0IGEgZ29vZCBjYW5kaWRhdGUgZm9yIGRldGFpbGVkIGFuYWx5c2lzLiBJJ3ZlIGFsc28gaWRlbnRpZmllZCBhIGhhbmRmdWwgb2Ygb3RoZXIga2V5IGZ1bmN0aW9ucyB0byBrZWVwIGluIG1pbmQg4oCTIGBzcGNwOHg1X29wZW5gLCBgc3BjcDh4NV9kdHJfcnRzYCwgYHNwY3A4eDVfc2V0X3Rlcm1pb3NgLCBhbmQgYHNwY3A4eDVfdGlvY21zZXRgLiBJIHNob3VsZCBjcmVhdGUgYSBjbGVhciBsaXN0IG9mIHRoZXNlIGZvciBlYXN5IHJlZmVyZW5jZS5cblxuTm93LCBjb25zaWRlcmluZyB0aGUgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMsIGl0IGxvb2tzIGxpa2UgdGhpcyBpcyB0aWVkIHRvIGBVU0JfU0VSSUFMYCBhbmQsIG1vcmUgc3BlY2lmaWNhbGx5LCBgVVNCX1NFUklBTF9TUENQOFg1YC4gSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IGBVU0JfU0VSSUFMYCBkZXBlbmRzIG9uIGBUVFlgLCB3aGljaCBpcyB1c3VhbGx5IGVuYWJsZWQgYnkgZGVmYXVsdC4gU28sIGhhdmluZyB0aG9zZSB0d28gb3B0aW9ucyBjb25maWd1cmVkIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciB0ZXN0aW5nLlxuXG5UaGUgcmVhbCBtZWF0IG9mIHRoaXMgaXMgdGhlIGZ1bmN0aW9uYWwgY2hhbmdlLiBSZW1vdmluZyBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgbWVhbnMgdGhlIGRyaXZlciB3aWxsIG5vIGxvbmdlciBxdWVyeSB0aGUgZGV2aWNlIGZvciBjYXJyaWVyIHN0YXR1cyB3aGVuIG9wZW5pbmcgdGhlIHBvcnQuIFRoaXMgd2lsbCBkZWZpbml0ZWx5IGFmZmVjdCB0aGUgb3BlbiBhbmQgYmxvY2tpbmcgYmVoYXZpb3Igb2YgdGhlIFRUWSBwb3J0LCB3aGljaCBpcyBjcnVjaWFsIGZyb20gYSBmdW5jdGlvbmFsIGFuZCBzZWN1cml0eSBwZXJzcGVjdGl2ZS4gVGhpcyBpcyBhIGdvb2Qgc2lnbiBmb3IgZnV6emluZywgZ2l2ZW4gaXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiBhIFVTQiBzZXJpYWwgZHJpdmVyLiBJJ2QgY29uc2lkZXIgdGhhdCBhIHNpZ25pZmljYW50IGVub3VnaCBpbXBhY3QgdG8gd2FycmFudCB0aG9yb3VnaCBmdXp6aW5nLlxuXG5JJ20gZmVlbGluZyBnb29kIGFib3V0IHRoaXMsIHNvIEknbGwgc3RhcnQgZ2F0aGVyaW5nIG15IHJlc3VsdHMgZm9yIGEgcHJlc2VudGF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDQ1OCwiT3V0cHV0VG9rZW5zIjoxOTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDI6NDA6MTIuMjkxMzY2MDQ2WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY1ODYyMjE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVU0JfU0VSSUFMXCIsXG4gICAgXCJVU0JfU0VSSUFMX1NQQ1A4WDVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzcGNwOHg1X29wZW5cIixcbiAgICBcInNwY3A4eDVfZHRyX3J0c1wiLFxuICAgIFwic3BjcDh4NV9zZXRfdGVybWlvc1wiLFxuICAgIFwic3BjcDh4NV90aW9jbWdldFwiLFxuICAgIFwic3BjcDh4NV90aW9jbXNldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlbW92ZXMgdGhlIGN1c3RvbSBgc3BjcDh4NV9jYXJyaWVyX3JhaXNlZGAgZnVuY3Rpb24gZnJvbSB0aGUgVVNCIHNlcmlhbCBkcml2ZXIsIGZhbGxpbmcgYmFjayB0byB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgVVNCIHNlcmlhbCBjb3JlICh3aGljaCBhbHdheXMgcmV0dXJucyAxKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyB0aGUgVFRZIHBvcnQgb3BlbiBhbmQgYmxvY2tpbmcgYmVoYXZpb3IuIEZ1enppbmcgdGhlIGRyaXZlcidzIHJlbWFpbmluZyBUVFkgb3BlcmF0aW9ucyBpcyByZWNvbW1lbmRlZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgdW5leHBlY3RlZCBiZWhhdmlvcnMgb2NjdXIgZHVlIHRvIHRoaXMgY2hhbmdlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9TRVJJQUxcIixcbiAgICBcIlVTQl9TRVJJQUxfU1BDUDhYNVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNwY3A4eDVfb3BlblwiLFxuICAgIFwic3BjcDh4NV9kdHJfcnRzXCIsXG4gICAgXCJzcGNwOHg1X3NldF90ZXJtaW9zXCIsXG4gICAgXCJzcGNwOHg1X3Rpb2NtZ2V0XCIsXG4gICAgXCJzcGNwOHg1X3Rpb2Ntc2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVtb3ZlcyB0aGUgY3VzdG9tIGBzcGNwOHg1X2NhcnJpZXJfcmFpc2VkYCBmdW5jdGlvbiBmcm9tIHRoZSBVU0Igc2VyaWFsIGRyaXZlciwgZmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBVU0Igc2VyaWFsIGNvcmUgKHdoaWNoIGFsd2F5cyByZXR1cm5zIDEpLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIHRoZSBUVFkgcG9ydCBvcGVuIGFuZCBibG9ja2luZyBiZWhhdmlvci4gRnV6emluZyB0aGUgZHJpdmVyJ3MgcmVtYWluaW5nIFRUWSBvcGVyYXRpb25zIGlzIHJlY29tbWVuZGVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciB1bmV4cGVjdGVkIGJlaGF2aW9ycyBvY2N1ciBkdWUgdG8gdGhpcyBjaGFuZ2UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflow2ppdw[1] Phase: Succeeded StartedAt: 2026-08-07 02:40:40 +0000 UTC FinishedAt: 2026-08-07 02:40:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-07 02:40:40 +0000 UTC FinishedAt: 2026-08-07 02:40:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2] Phase: Succeeded StartedAt: 2026-08-07 02:40:40 +0000 UTC FinishedAt: 2026-08-07 06:25:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-07 02:40:40 +0000 UTC FinishedAt: 2026-08-07 06:25:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-07 02:40:40 +0000 UTC FinishedAt: 2026-08-07 02:40:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-07 02:40:40 +0000 UTC FinishedAt: 2026-08-07 02:40:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},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-workflow2ppdw/series-workflow2ppdw-convert-artifact-572083860/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-07 02:40:50 +0000 UTC FinishedAt: 2026-08-07 02:58:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-07 02:40:50 +0000 UTC FinishedAt: 2026-08-07 02:58:58 +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:*54d1984d-b695-4a9d-9928-9763393b4adc,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-workflow2ppdw/series-workflow2ppdw-convert-artifact-572083860/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": "7cf4fefd-1ef7-48c5-8fb6-a8fa87b8d34c", "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-workflow2ppdw/series-workflow2ppdw-build-action-2440878866/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-07 02:40:50 +0000 UTC FinishedAt: 2026-08-07 02:58:48 +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:*54d1984d-b695-4a9d-9928-9763393b4adc,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-workflow2ppdw/series-workflow2ppdw-convert-artifact-572083860/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": "7cf4fefd-1ef7-48c5-8fb6-a8fa87b8d34c", "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-workflow2ppdw/series-workflow2ppdw-build-action-2440878866/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-07 02:58:58 +0000 UTC FinishedAt: 2026-08-07 02:58:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-07 02:58:58 +0000 UTC FinishedAt: 2026-08-07 02:58:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-07 02:58:58 +0000 UTC FinishedAt: 2026-08-07 02:59:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-07 02:58:58 +0000 UTC FinishedAt: 2026-08-07 02:59:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},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-workflow2ppdw/series-workflow2ppdw-convert-artifact-2782090067/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-07 02:59:08 +0000 UTC FinishedAt: 2026-08-07 03:00:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-07 02:59:08 +0000 UTC FinishedAt: 2026-08-07 03:00:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7cf4fefd-1ef7-48c5-8fb6-a8fa87b8d34c,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-workflow2ppdw/series-workflow2ppdw-build-action-2440878866/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-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-07 03:00:42 +0000 UTC FinishedAt: 2026-08-07 03:00:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-07 03:00:42 +0000 UTC FinishedAt: 2026-08-07 03:00:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-07 03:00:42 +0000 UTC FinishedAt: 2026-08-07 03:16:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-07 03:00:42 +0000 UTC FinishedAt: 2026-08-07 03:16:55 +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:*54d1984d-b695-4a9d-9928-9763393b4adc,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-workflow2ppdw/series-workflow2ppdw-convert-artifact-2782090067/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": "7201ddd4-4f77-4d58-b439-aac7a88805ef", "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-workflow2ppdw/series-workflow2ppdw-build-action-3670640775/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-07 03:00:42 +0000 UTC FinishedAt: 2026-08-07 03:16:45 +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:*54d1984d-b695-4a9d-9928-9763393b4adc,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-workflow2ppdw/series-workflow2ppdw-convert-artifact-2782090067/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": "7201ddd4-4f77-4d58-b439-aac7a88805ef", "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-workflow2ppdw/series-workflow2ppdw-build-action-3670640775/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-07 03:16:55 +0000 UTC FinishedAt: 2026-08-07 03:16:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-07 03:16:55 +0000 UTC FinishedAt: 2026-08-07 03:16:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-07 03:16:55 +0000 UTC FinishedAt: 2026-08-07 03:18:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-07 03:16:55 +0000 UTC FinishedAt: 2026-08-07 03:18:44 +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:*7201ddd4-4f77-4d58-b439-aac7a88805ef,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-workflow2ppdw/series-workflow2ppdw-build-action-3670640775/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-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-07 03:18:54 +0000 UTC FinishedAt: 2026-08-07 06:25:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-07 03:18:54 +0000 UTC FinishedAt: 2026-08-07 06:25:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*7cf4fefd-1ef7-48c5-8fb6-a8fa87b8d34c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7201ddd4-4f77-4d58-b439-aac7a88805ef,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,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-workflow2ppdw/series-workflow2ppdw-build-action-2440878866/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,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-workflow2ppdw/series-workflow2ppdw-build-action-3670640775/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-07 03:18:54 +0000 UTC FinishedAt: 2026-08-07 03:19:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-07 03:18:54 +0000 UTC FinishedAt: 2026-08-07 03:18:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},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-workflow2ppdw/series-workflow2ppdw-convert-artifact-395207628/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-07 03:18:54 +0000 UTC FinishedAt: 2026-08-07 03:18:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-07 03:18:54 +0000 UTC FinishedAt: 2026-08-07 03:18:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-07 03:18:54 +0000 UTC FinishedAt: 2026-08-07 03:18:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-07 03:19:04 +0000 UTC FinishedAt: 2026-08-07 06:25:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ppdw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["spcp8x5_open","spcp8x5_dtr_rts","spcp8x5_set_termios","spcp8x5_tiocmget","spcp8x5_tiocmset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_SERIAL","USB_SERIAL_SPCP8X5"],"series_id":"979cda44-1bdc-45e3-bdeb-b33a64f6d551","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-07 03:19:04 +0000 UTC FinishedAt: 2026-08-07 06:25:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7cf4fefd-1ef7-48c5-8fb6-a8fa87b8d34c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7201ddd4-4f77-4d58-b439-aac7a88805ef,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-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-workflow2ppdw/series-workflow2ppdw-build-action-2440878866/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,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-workflow2ppdw/series-workflow2ppdw-build-action-3670640775/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.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-workflow2ppdw/series-workflow2ppdw-convert-artifact-395207628/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}