Name: series-workflowp8v28 Phase: Succeeded StartedAt: 2026-07-22 23:13:40 +0000 UTC FinishedAt: 2026-07-23 02:45:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[0] Phase: Succeeded StartedAt: 2026-07-22 23:13:40 +0000 UTC FinishedAt: 2026-07-23 00:20:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[0].run-triage Phase: Succeeded StartedAt: 2026-07-22 23:13:40 +0000 UTC FinishedAt: 2026-07-23 00:20:21 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "fec15bb3dab0c88dd513a5198173de66f830f289", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFC_ST_NCI_I2C", "NFC_ST_NCI_SPI" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "fec15bb3dab0c88dd513a5198173de66f830f289", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFC_ST_NCI_I2C", "NFC_ST_NCI_SPI" ], "series_id": "4e6f9cfa-f55e-428d-863d-55edb209fc0d" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "st_nci_remove", "st_nci_se_deinit" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAwOjE5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQ19TVF9OQ0lfSTJDJiMzNDssCiAgICAmIzM0O05GQ19TVF9OQ0lfU1BJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3RfbmNpX3JlbW92ZSYjMzQ7LAogICAgJiMzNDtzdF9uY2lfc2VfZGVpbml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgdGltZXIgdGVhcmRvd24gaXNzdWUgaW4gdGhlIFNUIE5DSSBORkMgZHJpdmVyIGR1cmluZyBkZXZpY2UgcmVtb3ZhbC4gSXQgbW9kaWZpZXMgYHN0X25jaV9yZW1vdmVgIHRvIHByb3Blcmx5IGNhbGwgYHN0X25jaV9zZV9kZWluaXRgIGFuZCB1cGRhdGVzIGBzdF9uY2lfc2VfZGVpbml0YCB0byB1c2UgYHRpbWVyX3NodXRkb3duX3N5bmNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZml4aW5nIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciB0aW1lci1yZWxhdGVkIGJ1Z3Mgb24gZGV2aWNlIHVucmVnaXN0cmF0aW9uLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIEkyQy9TUEkgZGV2aWNlIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA4YmUyOTMzZjQ0NmNkMTk2NDdkMmE1ZThjMjU2OWMxODA0ZjAxYTg1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMDA6MTk6MTYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmNcbmluZGV4IGEzNjcxMzZkNDMzMGEzLi41N2RiYzRhOTRiMjkzMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmNcbkBAIC0xNjYsNiAmIzQzOzE2Niw3IEBAIHZvaWQgc3RfbmNpX3JlbW92ZShzdHJ1Y3QgbmNpX2RldiAqbmRldilcbiBcbiBcdG5kbGNfY2xvc2UoaW5mby1cdTAwM2VuZGxjKTtcbiBcbiYjNDM7XHRzdF9uY2lfc2VfZGVpbml0KG5kZXYpO1xuIFx0bmNpX3VucmVnaXN0ZXJfZGV2aWNlKG5kZXYpO1xuIFx0bmNpX2ZyZWVfZGV2aWNlKG5kZXYpO1xuIH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9zdC1uY2kvc2UuYyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9zZS5jXG5pbmRleCA2MDdlYzc2OGViN2I0Yy4uOGFiMThjYjIzMzg2ZDYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25mYy9zdC1uY2kvc2UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZmMvc3QtbmNpL3NlLmNcbkBAIC03NTEsMTAgJiM0Mzs3NTEsOCBAQCB2b2lkIHN0X25jaV9zZV9kZWluaXQoc3RydWN0IG5jaV9kZXYgKm5kZXYpXG4ge1xuIFx0c3RydWN0IHN0X25jaV9pbmZvICppbmZvID0gbmNpX2dldF9kcnZkYXRhKG5kZXYpO1xuIFxuLVx0aWYgKGluZm8tXHUwMDNlc2VfaW5mby5id2lfYWN0aXZlKVxuLVx0XHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZpbmZvLVx1MDAzZXNlX2luZm8uYndpX3RpbWVyKTtcbi1cdGlmIChpbmZvLVx1MDAzZXNlX2luZm8uc2VfYWN0aXZlKVxuLVx0XHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZpbmZvLVx1MDAzZXNlX2luZm8uc2VfYWN0aXZlX3RpbWVyKTtcbiYjNDM7XHR0aW1lcl9zaHV0ZG93bl9zeW5jKFx1MDAyNmluZm8tXHUwMDNlc2VfaW5mby5id2lfdGltZXIpO1xuJiM0MztcdHRpbWVyX3NodXRkb3duX3N5bmMoXHUwMDI2aW5mby1cdTAwM2VzZV9pbmZvLnNlX2FjdGl2ZV90aW1lcik7XG4gXG4gXHRpbmZvLVx1MDAzZXNlX2luZm8uc2VfYWN0aXZlID0gZmFsc2U7XG4gXHRpbmZvLVx1MDAzZXNlX2luZm8uYndpX2FjdGl2ZSA9IGZhbHNlO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAwOjE5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtORkNfU1RfTkNJX0kyQyYjMzQ7LAogICAgJiMzNDtORkNfU1RfTkNJX1NQSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N0X25jaV9yZW1vdmUmIzM0OywKICAgICYjMzQ7c3RfbmNpX3NlX2RlaW5pdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHRpbWVyIHRlYXJkb3duIGlzc3VlIGluIHRoZSBTVCBOQ0kgTkZDIGRyaXZlciBkdXJpbmcgZGV2aWNlIHJlbW92YWwuIEl0IG1vZGlmaWVzIGBzdF9uY2lfcmVtb3ZlYCB0byBwcm9wZXJseSBjYWxsIGBzdF9uY2lfc2VfZGVpbml0YCBhbmQgdXBkYXRlcyBgc3RfbmNpX3NlX2RlaW5pdGAgdG8gdXNlIGB0aW1lcl9zaHV0ZG93bl9zeW5jYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGZpeGluZyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgdGltZXItcmVsYXRlZCBidWdzIG9uIGRldmljZSB1bnJlZ2lzdHJhdGlvbiwgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSBJMkMvU1BJIGRldmljZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4YmUyOTMzZjQ0NmNkMTk2NDdkMmE1ZThjMjU2OWMxODA0ZjAxYTg1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMjMgMDA6MTk6MTYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jIGIvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYwppbmRleCBhMzY3MTM2ZDQzMzBhMy4uNTdkYmM0YTk0YjI5MzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYwpAQCAtMTY2LDYgJiM0MzsxNjYsNyBAQCB2b2lkIHN0X25jaV9yZW1vdmUoc3RydWN0IG5jaV9kZXYgKm5kZXYpCiAKIAluZGxjX2Nsb3NlKGluZm8tJmd0O25kbGMpOwogCiYjNDM7CXN0X25jaV9zZV9kZWluaXQobmRldik7CiAJbmNpX3VucmVnaXN0ZXJfZGV2aWNlKG5kZXYpOwogCW5jaV9mcmVlX2RldmljZShuZGV2KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmZjL3N0LW5jaS9zZS5jIGIvZHJpdmVycy9uZmMvc3QtbmNpL3NlLmMKaW5kZXggNjA3ZWM3NjhlYjdiNGMuLjhhYjE4Y2IyMzM4NmQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25mYy9zdC1uY2kvc2UuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25mYy9zdC1uY2kvc2UuYwpAQCAtNzUxLDEwICYjNDM7NzUxLDggQEAgdm9pZCBzdF9uY2lfc2VfZGVpbml0KHN0cnVjdCBuY2lfZGV2ICpuZGV2KQogewogCXN0cnVjdCBzdF9uY2lfaW5mbyAqaW5mbyA9IG5jaV9nZXRfZHJ2ZGF0YShuZGV2KTsKIAotCWlmIChpbmZvLSZndDtzZV9pbmZvLmJ3aV9hY3RpdmUpCi0JCXRpbWVyX2RlbGV0ZV9zeW5jKCZhbXA7aW5mby0mZ3Q7c2VfaW5mby5id2lfdGltZXIpOwotCWlmIChpbmZvLSZndDtzZV9pbmZvLnNlX2FjdGl2ZSkKLQkJdGltZXJfZGVsZXRlX3N5bmMoJmFtcDtpbmZvLSZndDtzZV9pbmZvLnNlX2FjdGl2ZV90aW1lcik7CiYjNDM7CXRpbWVyX3NodXRkb3duX3N5bmMoJmFtcDtpbmZvLSZndDtzZV9pbmZvLmJ3aV90aW1lcik7CiYjNDM7CXRpbWVyX3NodXRkb3duX3N5bmMoJmFtcDtpbmZvLSZndDtzZV9pbmZvLnNlX2FjdGl2ZV90aW1lcik7CiAKIAlpbmZvLSZndDtzZV9pbmZvLnNlX2FjdGl2ZSA9IGZhbHNlOwogCWluZm8tJmd0O3NlX2luZm8uYndpX2FjdGl2ZSA9IGZhbHNlOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMDoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTk5CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTkZDIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHNlZW1zIHRvIGJlIHRvdWNoaW5nIHRoZSBORkMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBzdC1uY2lgIGltcGxlbWVudGF0aW9uLiBNeSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgaXTigJlzIG1vZGlmeWluZyBgZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuY2AgYW5kIGBkcml2ZXJzL25mYy9zdC1uY2kvc2UuY2AuIEl0JiMzOTtzIGFkZGluZyBhIGNhbGwgdG8gYHN0X25jaV9zZV9kZWluaXQobmRldilgIHdpdGhpbiBgc3RfbmNpX3JlbW92ZShuZGV2KWAgaW4gYGNvcmUuY2AsIHdoaWNoIGlzIGludGVyZXN0aW5nLiBJdCBpbXBsaWVzIHNvbWUgbmVjZXNzYXJ5IGNsZWFudXAgYWZ0ZXIgdGhlIGRldmljZSBpcyByZW1vdmVkLCBsaWtlbHkgcmVsYXRlZCB0byBzZWN1cmUgZWxlbWVudCAoU0UpIGZ1bmN0aW9uYWxpdHkuCgpUaGUgY2hhbmdlcyBpbiBgc2UuY2AgYXJlIGFsc28gbm90ZXdvcnRoeS4gVGhleeKAmXZlIHN3YXBwZWQgb3V0IGB0aW1lcl9kZWxldGVfc3luY2AgZm9yIGB0aW1lcl9zaHV0ZG93bl9zeW5jYCBpbiBgc3RfbmNpX3NlX2RlaW5pdGAsIHdoaWNoIG1lYW5zIGEgbW9yZSByb2J1c3QgdGltZXIgZGVhY3RpdmF0aW9uIHN0cmF0ZWd5IGlzIGJlaW5nIGltcGxlbWVudGVkLiBGdXJ0aGVybW9yZSwgdGhlIGNvbmRpdGlvbmFsIGNoZWNrcyBmb3IgYGluZm8tJmd0O3NlX2luZm8uYndpX2FjdGl2ZWAgYW5kIGBpbmZvLSZndDtzZV9pbmZvLnNlX2FjdGl2ZWAgaGF2ZSBiZWVuIHJlbW92ZWQuIFRoaXMgc3VnZ2VzdHMgdGhlIGRlLWluaXRpYWxpemF0aW9uIHByb2Nlc3Mgbm93IG5lZWRzIHRvIGJlIHBlcmZvcm1lZCB1bmNvbmRpdGlvbmFsbHkuCgpUbyBnZXQgYSBoYW5kbGUgb24gdGhpcywgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZXNlIGZpbGVzIGFyZSBwYXJ0IG9mIHRoZSBidWlsZCBhbmQgd2hhdCBjb25maWd1cmF0aW9ucyBhcmUgcmVxdWlyZWQgZm9yIHRoaXMgZHJpdmVyIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBrZXJuZWwuIEnigJlsbCBzdGFydCBieSBkb3VibGUtY2hlY2tpbmcgdGhlIGZpbGUgcGF0aHMgYW5kIGRyaXZlciBuYW1lLCBjb25maXJtaW5nIHRoYXQgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCB0aGUgYHN0LW5jaWAgZHJpdmVyLiBGcm9tIHRoZXJlLCBJJiMzOTtsbCBuZWVkIHRvIGxvY2F0ZSB0aGUgYHN0X25jaV9yZW1vdmVgIGZ1bmN0aW9uIHdpdGhpbiB0aGUgY29kZSB0byBmdWxseSB1bmRlcnN0YW5kIGhvdyB0aGlzIGRlLWluaXQgY2FsbCBmaXRzIGludG8gdGhlIG92ZXJhbGwgZHJpdmVyIGxpZmVjeWNsZS4gVGhlIGNoYW5nZXMgaW1wbHkgYSBtb3JlIHJvYnVzdCBkZS1pbml0IHN0cmF0ZWd5IGlzIGJlaW5nIGVtcGxveWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAwOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0X25jaV9yZW1vdmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9zdC1uY2kvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM9MTYxPUVYUE9SVF9TWU1CT0xfR1BMKHN0X25jaV9wcm9iZSk7XG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jLTE2Mi1cbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM6MTYzOnZvaWQgc3RfbmNpX3JlbW92ZShzdHJ1Y3QgbmNpX2RldiAqbmRldilcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTY0LXtcbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jLTE3Mi19XG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jOjE3MzpFWFBPUlRfU1lNQk9MX0dQTChzdF9uY2lfcmVtb3ZlKTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTc0LVxuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmM9MjgzPXZvaWQgbmRsY19yZW1vdmUoc3RydWN0IGxsdF9uZGxjICpuZGxjKVxuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjkyLVxuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYzoyOTM6XHRzdF9uY2lfcmVtb3ZlKG5kbGMtXHUwMDNlbmRldik7XG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jLTI5NC1cbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmg9MTE0PXN0cnVjdCBzdF9uY2lfaW5mbyB7XG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oLTEyMC1cbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaDoxMjE6dm9pZCBzdF9uY2lfcmVtb3ZlKHN0cnVjdCBuY2lfZGV2ICpuZGV2KTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaC0xMjItaW50IHN0X25jaV9wcm9iZShzdHJ1Y3QgbGx0X25kbGMgKm5kbGMsIGludCBwaHlfaGVhZHJvb20sXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI2NwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGlzIGNvZGU6CgoqKkFuYWx5emluZyB0aGUgRnVuY3Rpb24gQ2FsbCBIaWVyYXJjaHkqKgoKT2theSwgc28gSSYjMzk7bSBzZWVpbmcgYHN0X25jaV9yZW1vdmVgIGNhbGxlZCBmcm9tIGBuZGxjX3JlbW92ZWAuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhlcmUmIzM5O3MgYSBkZXBlbmRlbmN5LCBhIHJlbGF0aW9uc2hpcCBoZXJlIEkgbmVlZCB0byB1bmRlcnN0YW5kLiBNeSBicmFpbiYjMzk7cyBhbHJlYWR5IHN0YXJ0aW5nIHRvIG1hcCB0aGUgY2FsbCBzdGFjay4gVGhlIGNydWNpYWwgdGhpbmcgaGVyZSBpcyB0byBzZWUgaG93IHRob3NlIHR3byBhcmUgcmVsYXRlZC4KCk5vdywgaW5zdGVhZCBvZiBqdXN0IHJlYWRpbmcgYmxpbmRseSwgSSBuZWVkIGNvbnRleHQhIFdoZXJlIGlzIGBuZGxjX3JlbW92ZWAgZGVmaW5lZD8gV2hhdCBpcyBpdHMgcHVycG9zZT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB1cHN0cmVhbSBwcm9jZXNzIGlzIHJlcXVlc3RpbmcgdGhlIHJlbW92YWwsIHdoaWNoIHJlcXVpcmVzIHVuZGVyc3RhbmRpbmcgdGhlIGNhbGxpbmcgZnVuY3Rpb24sIGBuZGxjX3JlbW92ZWAuCkxldCYjMzk7cyBzZWFyY2ggZm9yIGBuZGxjX3JlbW92ZWAgYW5kIHNlZSB3aGF0IGNvbWVzIHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAwOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25kbGNfcmVtb3ZlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvc3QtbmNpLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9zdC1uY2kvaTJjLmM9MjUyPXN0YXRpYyB2b2lkIHN0X25jaV9pMmNfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpXG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL2kyYy5jLTI1NS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9pMmMuYzoyNTY6XHRuZGxjX3JlbW92ZShwaHktXHUwMDNlbmRsYyk7XG5kcml2ZXJzL25mYy9zdC1uY2kvaTJjLmMtMjU3LX1cbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jPTI4MT1FWFBPUlRfU1lNQk9MKG5kbGNfcHJvYmUpO1xuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYy0yODItXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jOjI4Mzp2b2lkIG5kbGNfcmVtb3ZlKHN0cnVjdCBsbHRfbmRsYyAqbmRsYylcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjg0LXtcbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jLTI5Ny19XG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jOjI5ODpFWFBPUlRfU1lNQk9MKG5kbGNfcmVtb3ZlKTtcbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5oPTQ4PWludCBuZGxjX3Byb2JlKHZvaWQgKnBoeV9pZCwgY29uc3Qgc3RydWN0IG5mY19waHlfb3BzICpwaHlfb3BzLFxuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmgtNTAtXHQgICAgICAgc3RydWN0IGxsdF9uZGxjICoqbmRsY19pZCwgc3RydWN0IHN0X25jaV9zZV9zdGF0dXMgKnNlX3N0YXR1cyk7XG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5oOjUxOnZvaWQgbmRsY19yZW1vdmUoc3RydWN0IGxsdF9uZGxjICpuZGxjKTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmgtNTItI2VuZGlmIC8qIF9fTE9DQUxfTkRMQ19IX18gKi9cbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvc3BpLmM9MjY2PXN0YXRpYyB2b2lkIHN0X25jaV9zcGlfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL3NwaS5jLTI2OS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9zcGkuYzoyNzA6XHRuZGxjX3JlbW92ZShwaHktXHUwMDNlbmRsYyk7XG5kcml2ZXJzL25mYy9zdC1uY2kvc3BpLmMtMjcxLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMDoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDUwCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgTkZDIERyaXZlciBSZW1vdmFsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgY2xlYW51cCBwcm9jZWR1cmUgZm9yIHRoaXMgU1RNaWNyb2VsZWN0cm9uaWNzIE5GQyBkcml2ZXIuIEl0JiMzOTtzIGNhbGxlZCB3aGVuIGVpdGhlciBgc3RfbmNpX2kyY19yZW1vdmVgIG9yIGBzdF9uY2lfc3BpX3JlbW92ZWAgaXMgdHJpZ2dlcmVkLCB3aGljaCBtYWtlcyBzZW5zZS4gV2UmIzM5O3JlIGRlYWxpbmcgd2l0aCB0aGUgcmVtb3ZhbCBwcm9jZXNzIG9mIGEgZGV2aWNlIHJlZ2lzdGVyZWQgdGhyb3VnaCBlaXRoZXIgSTJDIG9yIFNQSSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBoYXBwZW5pbmcgZHVyaW5nIHRoZSB1bnJlZ2lzdHJhdGlvbi4gVGhlIHF1ZXN0aW9uIGlzLCBjYW4gdGhpcyBjb2RlIHBhdGggZXZlbiBiZSByZWFjaGVkPyBUaGUgYW5zd2VyIGlzIHllcywgYXMgaXQgaXMgcmVhY2hlZCB2aWEgSTJDIG9yIFNQSSBkZXZpY2UgdW5yZWdpc3RyYXRpb24uIFdoYXQgYXJlIHRoZSBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb25zIHRvIGJlIGF3YXJlIG9mPyBUaGF0JiMzOTtzIHdoYXQgSSBuZWVkIHRvIGRpZyBpbnRvIG5leHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5GQ19TVF9OQ0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9zdC1uY2kvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyOmNvbmZpZyBORkNfU1RfTkNJXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy04LVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWc6OTpjb25maWcgTkZDX1NUX05DSV9JMkNcbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnLTEwLVx0dHJpc3RhdGUgXCYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIFNUIE5DSSBORkMgZHJpdmVyIChJMkMpXCYjMzQ7XG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMjAtXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyMTpjb25maWcgTkZDX1NUX05DSV9TUElcbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnLTIyLVx0dHJpc3RhdGUgXCYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIFNUIE5DSSBORkMgZHJpdmVyIChTUEkpXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU0MAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDIyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQYXRjaDogUG90ZW50aWFsIEZ1enppbmcgVGFyZ2V0cyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIEkgc2VlIGl0JiMzOTtzIGRlYWxpbmcgd2l0aCBjb25maWd1cmF0aW9ucyByZWxhdGVkIHRvIE5GQzogc3BlY2lmaWNhbGx5IGBORkNfU1RfTkNJYCwgYE5GQ19TVF9OQ0lfSTJDYCwgYW5kIGBORkNfU1RfTkNJX1NQSWAuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgaXNzdWUgaXMgYSB0aW1lciB0ZWFyZG93biBidWcgaW4gYHN0X25jaV9yZW1vdmVgLiBUaGUgZml4IGludm9sdmVzIGNhbGxpbmcgYHN0X25jaV9zZV9kZWluaXRgIGFuZCB0aGVuIHVzaW5nIGB0aW1lcl9zaHV0ZG93bl9zeW5jYC4gVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLCBhaW1lZCBhdCBhIGJ1ZyBpbiB0aGUgZHJpdmVyIHJlbW92YWwgcHJvY2Vzcywgd2hpY2ggaXMgcHJldHR5IGNyaXRpY2FsLgoKVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzLCAmIzM0O0lzIHRoaXMgd29ydGggZnV6emluZz8mIzM0OyBBYnNvbHV0ZWx5LiBDb25zaWRlcmluZyB0aGUgZml4IGlzIGluIHRoZSBkcml2ZXIgcmVtb3ZhbCBwYXRoLCBmdXp6aW5nIHRoZSBJMkMgYW5kIFNQSSBkZXZpY2UgcmVnaXN0cmF0aW9uIGFuZCB1bnJlZ2lzdHJhdGlvbiBpcyBsaWtlbHkgdG8gZXhwb3NlIHRoaXMgYnVnLiBJdCBtYWtlcyBwZXJmZWN0IHNlbnNlIHRvIHRlc3QgdGhlIGVkZ2UgY2FzZXMgaGVyZS4KCldhaXQgYSBtaW51dGUsIGNhbiB0aGlzIGV2ZW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBZZXMsIEkgY2FuIHVzZSBzeXprYWxsZXIgdG8gdGFyZ2V0IHRoaXMuIEl0IGNhbiBmdXp6IEkyQyBhbmQgU1BJIGRldmljZXMgd2l0aCB0aGUgcHNldWRvLWRldmljZXMgdGhhdCBpdCB1c2VzLCBvciB3aXRoIGRpcmVjdCB0cmFmZmljLiBUaGF0JiMzOTtzIGEgZ29vZCBzaWduLCBhbmQgYSBzdHJvbmcgYXJndW1lbnQgdG8gZnV6eiB0aGlzLgoKTm93LCB0aG9zZSBgTkZDX1NUX05DSV9JMkNgIGFuZCBgTkZDX1NUX05DSV9TUElgIGNvbmZpZ3VyYXRpb25zIGFyZSB0cmlzdGF0ZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHRha2UgdGhvc2UgaW50byBhY2NvdW50IGR1cmluZyB0aGUgZnV6emluZy4KCk15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGRpdmUgZGVlcGVyIGludG8gYHN0X25jaV9zZV9kZWluaXRgIGFuZCBgc3RfbmNpX3JlbW92ZWAuIEkmIzM5O20gZ29pbmcgdG8gbG9vayBmb3IgYW55IHNwZWNpZmljIGZ1bmN0aW9ucyBvciBhcmVhcyB0aGF0IHNlZW0gcGFydGljdWxhcmx5IHZ1bG5lcmFibGUgb3IgaW50ZXJlc3RpbmcgZm9yIGZ1enppbmcuIEkgbmVlZCB0byBnZXQgYSByZWFsbHkgZ29vZCBoYW5kbGUgb24gd2hlcmUgdGhlIGJ1ZyBsaWVzIGFuZCB3aGF0IGNvdWxkIHRyaWdnZXIgaXQuIFRoaXMgd2lsbCBoZWxwIG1lIHNldCB1cCBmb2N1c2VkIGZ1enppbmcgdGFyZ2V0cyBhbmQgcmVkdWNlIGZhbHNlIHBvc2l0aXZlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RfbmNpX3JlbW92ZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL3N0LW5jaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYz0xNjE9RVhQT1JUX1NZTUJPTF9HUEwoc3RfbmNpX3Byb2JlKTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTYyLVxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYzoxNjM6dm9pZCBzdF9uY2lfcmVtb3ZlKHN0cnVjdCBuY2lfZGV2ICpuZGV2KVxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYy0xNjQte1xuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTcyLX1cbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM6MTczOkVYUE9SVF9TWU1CT0xfR1BMKHN0X25jaV9yZW1vdmUpO1xuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYy0xNzQtXG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYz0yODM9dm9pZCBuZGxjX3JlbW92ZShzdHJ1Y3QgbGx0X25kbGMgKm5kbGMpXG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYy0yOTItXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jOjI5MzpcdHN0X25jaV9yZW1vdmUobmRsYy1cdTAwM2VuZGV2KTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjk0LVxuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaD0xMTQ9c3RydWN0IHN0X25jaV9pbmZvIHtcbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmgtMTIwLVxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oOjEyMTp2b2lkIHN0X25jaV9yZW1vdmUoc3RydWN0IG5jaV9kZXYgKm5kZXYpO1xuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oLTEyMi1pbnQgc3RfbmNpX3Byb2JlKHN0cnVjdCBsbHRfbmRsYyAqbmRsYywgaW50IHBoeV9oZWFkcm9vbSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTY1MQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIGdpdmVuIG15IGV4cGVydGlzZToKCioqQ2hlY2tpbmcgYHN0X25jaV9zZV9kZWluaXRgIFVzYWdlKioKCkFscmlnaHQsIEkmIzM5O20gemVyb2luZyBpbiBvbiB0aG9zZSBgc3RfbmNpX3JlbW92ZWAgYW5kIGBzdF9uY2lfc2VfZGVpbml0YCBmdW5jdGlvbnMuIE15IGltbWVkaWF0ZSBjb25jZXJuLCBhcyBhbHdheXMgd2hlbiBkZWFsaW5nIHdpdGggTkZDIHN0YWNrIGRlLWluaXRpYWxpemF0aW9uLCBpcyB0byBlbnN1cmUgdGhhdCBgc3RfbmNpX3NlX2RlaW5pdGAgaXNuJiMzOTt0IGJlaW5nIGNhbGxlZCBmcm9tIHNvbWUgdW5leHBlY3RlZCBsb2NhdGlvbiwgcG90ZW50aWFsbHkgbGVhZGluZyB0byByZXNvdXJjZSBjb25mbGljdHMgb3Igb3RoZXIgaXNzdWVzIEkgd291bGRuJiMzOTt0IHdhbnQgdG8gb2NjdXIuCgpNeSBpbnN0aW5jdCBub3cgaXMgdG8gcGVyZm9ybSBhIGNyb3NzLXJlZmVyZW5jZSBvbiB0aGlzIGZ1bmN0aW9uLiBJIG5lZWQgdG8gcXVpY2tseSBpZGVudGlmeSBhbGwgY2FsbCBzaXRlcyBvZiBgc3RfbmNpX3NlX2RlaW5pdGAgdG8gdW5kZXJzdGFuZCBob3cgaXQmIzM5O3MgYmVpbmcgdXNlZC4gQW55IHVuZXhwZWN0ZWQgb2NjdXJyZW5jZXMgaW1tZWRpYXRlbHkgd2FycmFudCBhIGRlZXAgZGl2ZTsgSSYjMzk7bSBsb29raW5nIGZvciBhIGNsZWFyIGFuZCB0cmFjZWFibGUgY2FsbCBmbG93LCBlc3BlY2lhbGx5IGluIGEgY29udGV4dCB0aGlzIGNyaXRpY2FsLiBPdmVybHkgY29tcGxleCBvciBpbmRpcmVjdCBkZXBlbmRlbmNpZXMgYXJlIGFuIGluc3RhbnQgcmVkIGZsYWcuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgcGFydCBvZiBtYWludGFpbmluZyB0aGUgc3lzdGVtJiMzOTtzIGludGVncml0eSwgYW5kIGFuIGFyZWEgSSB3aWxsIGJlIGNhcmVmdWwgaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAwOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0X25jaV9zZV9kZWluaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9zdC1uY2kvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM9MTYzPXZvaWQgc3RfbmNpX3JlbW92ZShzdHJ1Y3QgbmNpX2RldiAqbmRldilcbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jLTE2OC1cbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM6MTY5Olx0c3RfbmNpX3NlX2RlaW5pdChuZGV2KTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTcwLVx0bmNpX3VucmVnaXN0ZXJfZGV2aWNlKG5kZXYpO1xuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jPTc0OD1FWFBPUlRfU1lNQk9MKHN0X25jaV9zZV9pbml0KTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jLTc0OS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jOjc1MDp2b2lkIHN0X25jaV9zZV9kZWluaXQoc3RydWN0IG5jaV9kZXYgKm5kZXYpXG5kcml2ZXJzL25mYy9zdC1uY2kvc2UuYy03NTEte1xuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jLTc1OS19XG5kcml2ZXJzL25mYy9zdC1uY2kvc2UuYzo3NjA6RVhQT1JUX1NZTUJPTChzdF9uY2lfc2VfZGVpbml0KTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jLTc2MS1cbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmg9MTI1PWludCBzdF9uY2lfc2VfaW5pdChzdHJ1Y3QgbmNpX2RldiAqbmRldiwgc3RydWN0IHN0X25jaV9zZV9zdGF0dXMgKnNlX3N0YXR1cyk7XG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmg6MTI2OnZvaWQgc3RfbmNpX3NlX2RlaW5pdChzdHJ1Y3QgbmNpX2RldiAqbmRldik7XG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmgtMTI3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMDoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NDA3CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgU1QtTkNJIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHN0cmFpZ2h0Zm9yd2FyZC4gTXkgaW5pdGlhbCByZWFkIHRlbGxzIG1lIGl0JiMzOTtzIGFkZGluZyBhIGBzdF9uY2lfc2VfZGVpbml0KG5kZXYpO2AgY2FsbCB3aXRoaW4gYHN0X25jaV9yZW1vdmUobmRldilgIGluIGBjb3JlLmNgLiAgRnVydGhlcm1vcmUsIGl0IHNlZW1zIGBzdF9uY2lfc2VfZGVpbml0YCBpdHNlbGYgaGFzIGJlZW4gbW9kaWZpZWQgd2l0aGluIGBzZS5jYC4gIFRoYXQgaW1tZWRpYXRlbHkgbmFycm93cyBteSBmb2N1czogYHN0X25jaV9yZW1vdmVgIGFuZCB0aGUgdXBkYXRlZCBgc3RfbmNpX3NlX2RlaW5pdGAgYXJlIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgaGVyZS4gVGhleSYjMzk7cmUgY2xlYXJseSB0aGUgZW50cnkgcG9pbnRzIHRvIHVuZGVyc3RhbmQgdGhlIGNoYW5nZXMuCgpJIG5lZWQgdG8gcXVpY2tseSBncmFzcCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBBaCwgdGhlIHBhdGNoIG1lbnRpb25zIGBORkNfU1RfTkNJYCwgYE5GQ19TVF9OQ0lfSTJDYCwgYW5kIGBORkNfU1RfTkNJX1NQSWAuIFdhaXQsIHRoZSBkZXBlbmRlbmN5IGxvZ2ljIGlzIGtleSAtIGl0IGxvb2tzIGxpa2UgYE5GQ19TVF9OQ0lgIGlzIHNlbGVjdGVkIHdoZW4gZWl0aGVyIGBORkNfU1RfTkNJX0kyQ2Agb3IgYE5GQ19TVF9OQ0lfU1BJYCBhcmUgZW5hYmxlZC4gUmlnaHQuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSBmb3IgdGhlIE5GQyBkcml2ZXIgaW4gdGhlIHJlbGV2YW50IGRpcmVjdG9yeSAoYGRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnYCkgdG8gY2xhcmlmeSB0aGVzZSByZWxhdGlvbnNoaXBzIGFuZCBhbnkgaW1wbGljYXRpb25zIHRoZXkgbWlnaHQgaGF2ZSBvbiB0aGUgY29kZS4gVGhpcyB3aWxsIHRlbGwgbWUgd2hlbiB0aGVzZSBmdW5jdGlvbnMgYXJlIGV2ZW4gcmVsZXZhbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAwOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O05GQ19TVF9OQ0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWc6Mjpjb25maWcgTkZDX1NUX05DSVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctOC1cbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnOjk6Y29uZmlnIE5GQ19TVF9OQ0lfSTJDXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0xMC1cdHRyaXN0YXRlIFwmIzM0O1NUTWljcm9lbGVjdHJvbmljcyBTVCBOQ0kgTkZDIGRyaXZlciAoSTJDKVwmIzM0O1xuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMTEtXHRkZXBlbmRzIG9uIE5GQ19OQ0kgXHUwMDI2XHUwMDI2IEkyQ1xuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWc6MTI6XHRzZWxlY3QgTkZDX1NUX05DSVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMTMtXHRoZWxwXG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMjAtXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyMTpjb25maWcgTkZDX1NUX05DSV9TUElcbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnLTIyLVx0dHJpc3RhdGUgXCYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIFNUIE5DSSBORkMgZHJpdmVyIChTUEkpXCYjMzQ7XG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0yMy1cdGRlcGVuZHMgb24gTkZDX05DSSBcdTAwMjZcdTAwMjYgU1BJXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyNDpcdHNlbGVjdCBORkNfU1RfTkNJXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0yNS1cdGhlbHBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzMwNgoJCQkJCQkJb3V0cHV0OiAxNzYKCQkJCQkJCXRob3VnaHRzOiAxNDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgTkZDIERyaXZlciBDb25maWd1cmF0aW9uIGFuZCBGdXp6aW5nKioKCk9rYXksIGl0IGxvb2tzIGxpa2UgZW5hYmxpbmcgYE5GQ19TVF9OQ0lfSTJDYCBvciBgTkZDX1NUX05DSV9TUElgIGFyZSB0aGUga2V5IGNvbmZpZ3VyYXRpb25zIGhlcmUgdG8gZ2V0IHRoaXMgZHJpdmVyIGdvaW5nLiBCdXQgYmVmb3JlIEkgcHJvY2VlZCwgbGV0JiMzOTtzIGp1c3QgZG8gYSBxdWljayBzY2FuIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzOyBJJiMzOTtsbCBhbHNvIGVuc3VyZSBgTkZDX05DSWAgaXMgY29uZmlndXJlZCBhcyB3ZWxsLiBOb3csIEkgY2FuIGNvbmZpZGVudGx5IGNvbmZpcm0gdGhhdCBlbmFibGluZyBib3RoIGBORkNfU1RfTkNJX0kyQ2AgYW5kIGBORkNfU1RfTkNJX1NQSWAgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucy4KCk5vdywgYSBrZXkgcXVlc3Rpb246IGNhbiB0aGlzIGJlIGZ1enplZD8gWWVzLCBiYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nLCBzeXprYWxsZXIgaXMgcGVyZmVjdGx5IGNhcGFibGUgb2YgZnV6emluZyBJMkMgYW5kIFNQSSBkZXZpY2VzLCB3aGljaCBtYWtlcyB0aGlzIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZy4gVGhlIHBhdGNoIGl0c2VsZiBhZGRyZXNzZXMgYSB0aW1lciB0ZWFyZG93biBpc3N1ZS4gVGhpcyBpcyAqY3J1Y2lhbCogYmVjYXVzZSwgaWYgSSYjMzk7bSBpbnRlcnByZXRpbmcgdGhpcyBjb3JyZWN0bHksIGl0IHByZXZlbnRzIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBzY2VuYXJpb3Mgb3Igb3RoZXIgbWVtb3J5IGNvcnJ1cHRpb24gYnVncyB0aGF0IGNvdWxkIGFyaXNlIGR1cmluZyBkZXZpY2UgcmVtb3ZhbCDigJMgYSBjcml0aWNhbCB2dWxuZXJhYmlsaXR5LiBUaGUgaW1wbGljYXRpb25zIGZvciBzZWN1cml0eSBoZXJlIGFyZSBzaWduaWZpY2FudCwgYW5kIGZ1enppbmcgaXQgd2lsbCBkZWZpbml0ZWx5IGJlIHZhbHVhYmxlIGluIHRoZSBsb25nIHJ1bi4KCkFscmlnaHQsIEkmIzM5O20gcmVhZHkgdG8gcHJlcGFyZSB0aGUgbmVjZXNzYXJ5IHNldC1yZXN1bHRzIGNhbGwgdG8gZ2V0IHRoaXMgbW92aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMDoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZDX1NUX05DSV9JMkMmIzM0OywKICAgICYjMzQ7TkZDX1NUX05DSV9TUEkmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdF9uY2lfcmVtb3ZlJiMzNDssCiAgICAmIzM0O3N0X25jaV9zZV9kZWluaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSB0aW1lciB0ZWFyZG93biBpc3N1ZSBpbiB0aGUgU1QgTkNJIE5GQyBkcml2ZXIgZHVyaW5nIGRldmljZSByZW1vdmFsLiBJdCBtb2RpZmllcyBgc3RfbmNpX3JlbW92ZWAgdG8gcHJvcGVybHkgY2FsbCBgc3RfbmNpX3NlX2RlaW5pdGAgYW5kIHVwZGF0ZXMgYHN0X25jaV9zZV9kZWluaXRgIHRvIHVzZSBgdGltZXJfc2h1dGRvd25fc3luY2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHRpbWVyLXJlbGF0ZWQgYnVncyBvbiBkZXZpY2UgdW5yZWdpc3RyYXRpb24sIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgSTJDL1NQSSBkZXZpY2UgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZDX1NUX05DSV9JMkMmIzM0OywKICAgICYjMzQ7TkZDX1NUX05DSV9TUEkmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdF9uY2lfcmVtb3ZlJiMzNDssCiAgICAmIzM0O3N0X25jaV9zZV9kZWluaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSB0aW1lciB0ZWFyZG93biBpc3N1ZSBpbiB0aGUgU1QgTkNJIE5GQyBkcml2ZXIgZHVyaW5nIGRldmljZSByZW1vdmFsLiBJdCBtb2RpZmllcyBgc3RfbmNpX3JlbW92ZWAgdG8gcHJvcGVybHkgY2FsbCBgc3RfbmNpX3NlX2RlaW5pdGAgYW5kIHVwZGF0ZXMgYHN0X25jaV9zZV9kZWluaXRgIHRvIHVzZSBgdGltZXJfc2h1dGRvd25fc3luY2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHRpbWVyLXJlbGF0ZWQgYnVncyBvbiBkZXZpY2UgdW5yZWdpc3RyYXRpb24sIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgSTJDL1NQSSBkZXZpY2UgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjE3LjUxODAyNTUyM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5ODQ3NjU1OTk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GQ19TVF9OQ0lfSTJDXCIsXG4gICAgXCJORkNfU1RfTkNJX1NQSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInN0X25jaV9yZW1vdmVcIixcbiAgICBcInN0X25jaV9zZV9kZWluaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHRpbWVyIHRlYXJkb3duIGlzc3VlIGluIHRoZSBTVCBOQ0kgTkZDIGRyaXZlciBkdXJpbmcgZGV2aWNlIHJlbW92YWwuIEl0IG1vZGlmaWVzIGBzdF9uY2lfcmVtb3ZlYCB0byBwcm9wZXJseSBjYWxsIGBzdF9uY2lfc2VfZGVpbml0YCBhbmQgdXBkYXRlcyBgc3RfbmNpX3NlX2RlaW5pdGAgdG8gdXNlIGB0aW1lcl9zaHV0ZG93bl9zeW5jYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGZpeGluZyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgdGltZXItcmVsYXRlZCBidWdzIG9uIGRldmljZSB1bnJlZ2lzdHJhdGlvbiwgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSBJMkMvU1BJIGRldmljZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMDoxOToxNy41MTgwNDI0NzNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2NDYzNjk2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDhiZTI5MzNmNDQ2Y2QxOTY0N2QyYTVlOGMyNTY5YzE4MDRmMDFhODVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMjMgMDA6MTk6MTYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmNcXG5pbmRleCBhMzY3MTM2ZDQzMzBhMy4uNTdkYmM0YTk0YjI5MzIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuY1xcbisrKyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmNcXG5AQCAtMTY2LDYgKzE2Niw3IEBAIHZvaWQgc3RfbmNpX3JlbW92ZShzdHJ1Y3QgbmNpX2RldiAqbmRldilcXG4gXFxuIFxcdG5kbGNfY2xvc2UoaW5mby1cXHUwMDNlbmRsYyk7XFxuIFxcbitcXHRzdF9uY2lfc2VfZGVpbml0KG5kZXYpO1xcbiBcXHRuY2lfdW5yZWdpc3Rlcl9kZXZpY2UobmRldik7XFxuIFxcdG5jaV9mcmVlX2RldmljZShuZGV2KTtcXG4gfVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9zdC1uY2kvc2UuYyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9zZS5jXFxuaW5kZXggNjA3ZWM3NjhlYjdiNGMuLjhhYjE4Y2IyMzM4NmQ2IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmZjL3N0LW5jaS9zZS5jXFxuKysrIGIvZHJpdmVycy9uZmMvc3QtbmNpL3NlLmNcXG5AQCAtNzUxLDEwICs3NTEsOCBAQCB2b2lkIHN0X25jaV9zZV9kZWluaXQoc3RydWN0IG5jaV9kZXYgKm5kZXYpXFxuIHtcXG4gXFx0c3RydWN0IHN0X25jaV9pbmZvICppbmZvID0gbmNpX2dldF9kcnZkYXRhKG5kZXYpO1xcbiBcXG4tXFx0aWYgKGluZm8tXFx1MDAzZXNlX2luZm8uYndpX2FjdGl2ZSlcXG4tXFx0XFx0dGltZXJfZGVsZXRlX3N5bmMoXFx1MDAyNmluZm8tXFx1MDAzZXNlX2luZm8uYndpX3RpbWVyKTtcXG4tXFx0aWYgKGluZm8tXFx1MDAzZXNlX2luZm8uc2VfYWN0aXZlKVxcbi1cXHRcXHR0aW1lcl9kZWxldGVfc3luYyhcXHUwMDI2aW5mby1cXHUwMDNlc2VfaW5mby5zZV9hY3RpdmVfdGltZXIpO1xcbitcXHR0aW1lcl9zaHV0ZG93bl9zeW5jKFxcdTAwMjZpbmZvLVxcdTAwM2VzZV9pbmZvLmJ3aV90aW1lcik7XFxuK1xcdHRpbWVyX3NodXRkb3duX3N5bmMoXFx1MDAyNmluZm8tXFx1MDAzZXNlX2luZm8uc2VfYWN0aXZlX3RpbWVyKTtcXG4gXFxuIFxcdGluZm8tXFx1MDAzZXNlX2luZm8uc2VfYWN0aXZlID0gZmFsc2U7XFxuIFxcdGluZm8tXFx1MDAzZXNlX2luZm8uYndpX2FjdGl2ZSA9IGZhbHNlO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMDoxOToxNy44ODMyNTgwNTdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozOTQ4MjQxNTg3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORkNfU1RfTkNJX0kyQ1wiLFxuICAgIFwiTkZDX1NUX05DSV9TUElcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzdF9uY2lfcmVtb3ZlXCIsXG4gICAgXCJzdF9uY2lfc2VfZGVpbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSB0aW1lciB0ZWFyZG93biBpc3N1ZSBpbiB0aGUgU1QgTkNJIE5GQyBkcml2ZXIgZHVyaW5nIGRldmljZSByZW1vdmFsLiBJdCBtb2RpZmllcyBgc3RfbmNpX3JlbW92ZWAgdG8gcHJvcGVybHkgY2FsbCBgc3RfbmNpX3NlX2RlaW5pdGAgYW5kIHVwZGF0ZXMgYHN0X25jaV9zZV9kZWluaXRgIHRvIHVzZSBgdGltZXJfc2h1dGRvd25fc3luY2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHRpbWVyLXJlbGF0ZWQgYnVncyBvbiBkZXZpY2UgdW5yZWdpc3RyYXRpb24sIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgSTJDL1NQSSBkZXZpY2UgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4YmUyOTMzZjQ0NmNkMTk2NDdkMmE1ZThjMjU2OWMxODA0ZjAxYTg1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMDA6MTk6MTYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jIGIvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuY1xuaW5kZXggYTM2NzEzNmQ0MzMwYTMuLjU3ZGJjNGE5NGIyOTMyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuY1xuKysrIGIvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuY1xuQEAgLTE2Niw2ICsxNjYsNyBAQCB2b2lkIHN0X25jaV9yZW1vdmUoc3RydWN0IG5jaV9kZXYgKm5kZXYpXG4gXG4gXHRuZGxjX2Nsb3NlKGluZm8tXHUwMDNlbmRsYyk7XG4gXG4rXHRzdF9uY2lfc2VfZGVpbml0KG5kZXYpO1xuIFx0bmNpX3VucmVnaXN0ZXJfZGV2aWNlKG5kZXYpO1xuIFx0bmNpX2ZyZWVfZGV2aWNlKG5kZXYpO1xuIH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9zdC1uY2kvc2UuYyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9zZS5jXG5pbmRleCA2MDdlYzc2OGViN2I0Yy4uOGFiMThjYjIzMzg2ZDYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25mYy9zdC1uY2kvc2UuY1xuKysrIGIvZHJpdmVycy9uZmMvc3QtbmNpL3NlLmNcbkBAIC03NTEsMTAgKzc1MSw4IEBAIHZvaWQgc3RfbmNpX3NlX2RlaW5pdChzdHJ1Y3QgbmNpX2RldiAqbmRldilcbiB7XG4gXHRzdHJ1Y3Qgc3RfbmNpX2luZm8gKmluZm8gPSBuY2lfZ2V0X2RydmRhdGEobmRldik7XG4gXG4tXHRpZiAoaW5mby1cdTAwM2VzZV9pbmZvLmJ3aV9hY3RpdmUpXG4tXHRcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNmluZm8tXHUwMDNlc2VfaW5mby5id2lfdGltZXIpO1xuLVx0aWYgKGluZm8tXHUwMDNlc2VfaW5mby5zZV9hY3RpdmUpXG4tXHRcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNmluZm8tXHUwMDNlc2VfaW5mby5zZV9hY3RpdmVfdGltZXIpO1xuK1x0dGltZXJfc2h1dGRvd25fc3luYyhcdTAwMjZpbmZvLVx1MDAzZXNlX2luZm8uYndpX3RpbWVyKTtcbitcdHRpbWVyX3NodXRkb3duX3N5bmMoXHUwMDI2aW5mby1cdTAwM2VzZV9pbmZvLnNlX2FjdGl2ZV90aW1lcik7XG4gXG4gXHRpbmZvLVx1MDAzZXNlX2luZm8uc2VfYWN0aXZlID0gZmFsc2U7XG4gXHRpbmZvLVx1MDAzZXNlX2luZm8uYndpX2FjdGl2ZSA9IGZhbHNlO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDA6MTk6MTcuODgzMjU5Njg3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzYxNzk5NjEwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5GQyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgc2VlbXMgdG8gYmUgdG91Y2hpbmcgdGhlIE5GQyBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYHN0LW5jaWAgaW1wbGVtZW50YXRpb24uIE15IGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgdGhhdCBpdOKAmXMgbW9kaWZ5aW5nIGBkcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jYCBhbmQgYGRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jYC4gSXQncyBhZGRpbmcgYSBjYWxsIHRvIGBzdF9uY2lfc2VfZGVpbml0KG5kZXYpYCB3aXRoaW4gYHN0X25jaV9yZW1vdmUobmRldilgIGluIGBjb3JlLmNgLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gSXQgaW1wbGllcyBzb21lIG5lY2Vzc2FyeSBjbGVhbnVwIGFmdGVyIHRoZSBkZXZpY2UgaXMgcmVtb3ZlZCwgbGlrZWx5IHJlbGF0ZWQgdG8gc2VjdXJlIGVsZW1lbnQgKFNFKSBmdW5jdGlvbmFsaXR5LlxuXG5UaGUgY2hhbmdlcyBpbiBgc2UuY2AgYXJlIGFsc28gbm90ZXdvcnRoeS4gVGhleeKAmXZlIHN3YXBwZWQgb3V0IGB0aW1lcl9kZWxldGVfc3luY2AgZm9yIGB0aW1lcl9zaHV0ZG93bl9zeW5jYCBpbiBgc3RfbmNpX3NlX2RlaW5pdGAsIHdoaWNoIG1lYW5zIGEgbW9yZSByb2J1c3QgdGltZXIgZGVhY3RpdmF0aW9uIHN0cmF0ZWd5IGlzIGJlaW5nIGltcGxlbWVudGVkLiBGdXJ0aGVybW9yZSwgdGhlIGNvbmRpdGlvbmFsIGNoZWNrcyBmb3IgYGluZm8tXHUwMDNlc2VfaW5mby5id2lfYWN0aXZlYCBhbmQgYGluZm8tXHUwMDNlc2VfaW5mby5zZV9hY3RpdmVgIGhhdmUgYmVlbiByZW1vdmVkLiBUaGlzIHN1Z2dlc3RzIHRoZSBkZS1pbml0aWFsaXphdGlvbiBwcm9jZXNzIG5vdyBuZWVkcyB0byBiZSBwZXJmb3JtZWQgdW5jb25kaXRpb25hbGx5LlxuXG5UbyBnZXQgYSBoYW5kbGUgb24gdGhpcywgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZXNlIGZpbGVzIGFyZSBwYXJ0IG9mIHRoZSBidWlsZCBhbmQgd2hhdCBjb25maWd1cmF0aW9ucyBhcmUgcmVxdWlyZWQgZm9yIHRoaXMgZHJpdmVyIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBrZXJuZWwuIEnigJlsbCBzdGFydCBieSBkb3VibGUtY2hlY2tpbmcgdGhlIGZpbGUgcGF0aHMgYW5kIGRyaXZlciBuYW1lLCBjb25maXJtaW5nIHRoYXQgd2UncmUgZGVhbGluZyB3aXRoIHRoZSBgc3QtbmNpYCBkcml2ZXIuIEZyb20gdGhlcmUsIEknbGwgbmVlZCB0byBsb2NhdGUgdGhlIGBzdF9uY2lfcmVtb3ZlYCBmdW5jdGlvbiB3aXRoaW4gdGhlIGNvZGUgdG8gZnVsbHkgdW5kZXJzdGFuZCBob3cgdGhpcyBkZS1pbml0IGNhbGwgZml0cyBpbnRvIHRoZSBvdmVyYWxsIGRyaXZlciBsaWZlY3ljbGUuIFRoZSBjaGFuZ2VzIGltcGx5IGEgbW9yZSByb2J1c3QgZGUtaW5pdCBzdHJhdGVneSBpcyBiZWluZyBlbXBsb3llZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE5OSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxOCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjI1LjUwMTI1Nzk3NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODE5NTE0NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdF9uY2lfcmVtb3ZlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmZjL3N0LW5jaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYz0xNjE9RVhQT1JUX1NZTUJPTF9HUEwoc3RfbmNpX3Byb2JlKTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jLTE2Mi1cXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jOjE2Mzp2b2lkIHN0X25jaV9yZW1vdmUoc3RydWN0IG5jaV9kZXYgKm5kZXYpXFxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYy0xNjQte1xcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYy0xNzItfVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM6MTczOkVYUE9SVF9TWU1CT0xfR1BMKHN0X25jaV9yZW1vdmUpO1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTc0LVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYz0yODM9dm9pZCBuZGxjX3JlbW92ZShzdHJ1Y3QgbGx0X25kbGMgKm5kbGMpXFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jLTI5Mi1cXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jOjI5MzpcXHRzdF9uY2lfcmVtb3ZlKG5kbGMtXFx1MDAzZW5kZXYpO1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjk0LVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oPTExND1zdHJ1Y3Qgc3RfbmNpX2luZm8ge1xcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oLTEyMC1cXG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmg6MTIxOnZvaWQgc3RfbmNpX3JlbW92ZShzdHJ1Y3QgbmNpX2RldiAqbmRldik7XFxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oLTEyMi1pbnQgc3RfbmNpX3Byb2JlKHN0cnVjdCBsbHRfbmRsYyAqbmRsYywgaW50IHBoeV9oZWFkcm9vbSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDA6MTk6MjUuNTU5NDU1OTYyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzIxOTkzNzM4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGlzIGNvZGU6XG5cbioqQW5hbHl6aW5nIHRoZSBGdW5jdGlvbiBDYWxsIEhpZXJhcmNoeSoqXG5cbk9rYXksIHNvIEknbSBzZWVpbmcgYHN0X25jaV9yZW1vdmVgIGNhbGxlZCBmcm9tIGBuZGxjX3JlbW92ZWAuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhlcmUncyBhIGRlcGVuZGVuY3ksIGEgcmVsYXRpb25zaGlwIGhlcmUgSSBuZWVkIHRvIHVuZGVyc3RhbmQuIE15IGJyYWluJ3MgYWxyZWFkeSBzdGFydGluZyB0byBtYXAgdGhlIGNhbGwgc3RhY2suIFRoZSBjcnVjaWFsIHRoaW5nIGhlcmUgaXMgdG8gc2VlIGhvdyB0aG9zZSB0d28gYXJlIHJlbGF0ZWQuXG5cbk5vdywgaW5zdGVhZCBvZiBqdXN0IHJlYWRpbmcgYmxpbmRseSwgSSBuZWVkIGNvbnRleHQhIFdoZXJlIGlzIGBuZGxjX3JlbW92ZWAgZGVmaW5lZD8gV2hhdCBpcyBpdHMgcHVycG9zZT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB1cHN0cmVhbSBwcm9jZXNzIGlzIHJlcXVlc3RpbmcgdGhlIHJlbW92YWwsIHdoaWNoIHJlcXVpcmVzIHVuZGVyc3RhbmRpbmcgdGhlIGNhbGxpbmcgZnVuY3Rpb24sIGBuZGxjX3JlbW92ZWAuXG5MZXQncyBzZWFyY2ggZm9yIGBuZGxjX3JlbW92ZWAgYW5kIHNlZSB3aGF0IGNvbWVzIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjY3LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDA6MTk6MjguNzc5Mzk1NzgzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3NzM0OTY2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5kbGNfcmVtb3ZlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmZjL3N0LW5jaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvc3QtbmNpL2kyYy5jPTI1Mj1zdGF0aWMgdm9pZCBzdF9uY2lfaTJjX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL2kyYy5jLTI1NS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvaTJjLmM6MjU2OlxcdG5kbGNfcmVtb3ZlKHBoeS1cXHUwMDNlbmRsYyk7XFxuZHJpdmVycy9uZmMvc3QtbmNpL2kyYy5jLTI1Ny19XFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jPTI4MT1FWFBPUlRfU1lNQk9MKG5kbGNfcHJvYmUpO1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjgyLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmM6MjgzOnZvaWQgbmRsY19yZW1vdmUoc3RydWN0IGxsdF9uZGxjICpuZGxjKVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjg0LXtcXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjk3LX1cXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jOjI5ODpFWFBPUlRfU1lNQk9MKG5kbGNfcmVtb3ZlKTtcXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmg9NDg9aW50IG5kbGNfcHJvYmUodm9pZCAqcGh5X2lkLCBjb25zdCBzdHJ1Y3QgbmZjX3BoeV9vcHMgKnBoeV9vcHMsXFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5oLTUwLVxcdCAgICAgICBzdHJ1Y3QgbGx0X25kbGMgKipuZGxjX2lkLCBzdHJ1Y3Qgc3RfbmNpX3NlX3N0YXR1cyAqc2Vfc3RhdHVzKTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5oOjUxOnZvaWQgbmRsY19yZW1vdmUoc3RydWN0IGxsdF9uZGxjICpuZGxjKTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5oLTUyLSNlbmRpZiAvKiBfX0xPQ0FMX05ETENfSF9fICovXFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvc3BpLmM9MjY2PXN0YXRpYyB2b2lkIHN0X25jaV9zcGlfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvc3BpLmMtMjY5LVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9zcGkuYzoyNzA6XFx0bmRsY19yZW1vdmUocGh5LVxcdTAwM2VuZGxjKTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvc3BpLmMtMjcxLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDA6MTk6MjguODM3MTQ1OTA5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUwNDg5NzM2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiBORkMgRHJpdmVyIFJlbW92YWwqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGUgY2xlYW51cCBwcm9jZWR1cmUgZm9yIHRoaXMgU1RNaWNyb2VsZWN0cm9uaWNzIE5GQyBkcml2ZXIuIEl0J3MgY2FsbGVkIHdoZW4gZWl0aGVyIGBzdF9uY2lfaTJjX3JlbW92ZWAgb3IgYHN0X25jaV9zcGlfcmVtb3ZlYCBpcyB0cmlnZ2VyZWQsIHdoaWNoIG1ha2VzIHNlbnNlLiBXZSdyZSBkZWFsaW5nIHdpdGggdGhlIHJlbW92YWwgcHJvY2VzcyBvZiBhIGRldmljZSByZWdpc3RlcmVkIHRocm91Z2ggZWl0aGVyIEkyQyBvciBTUEksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyBoYXBwZW5pbmcgZHVyaW5nIHRoZSB1bnJlZ2lzdHJhdGlvbi4gVGhlIHF1ZXN0aW9uIGlzLCBjYW4gdGhpcyBjb2RlIHBhdGggZXZlbiBiZSByZWFjaGVkPyBUaGUgYW5zd2VyIGlzIHllcywgYXMgaXQgaXMgcmVhY2hlZCB2aWEgSTJDIG9yIFNQSSBkZXZpY2UgdW5yZWdpc3RyYXRpb24uIFdoYXQgYXJlIHRoZSBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb25zIHRvIGJlIGF3YXJlIG9mPyBUaGF0J3Mgd2hhdCBJIG5lZWQgdG8gZGlnIGludG8gbmV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA1MCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjMyLjM0MjA0NTU4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3Mzg0NzM2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBORkNfU1RfTkNJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmZjL3N0LW5jaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyOmNvbmZpZyBORkNfU1RfTkNJXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctOC1cXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzo5OmNvbmZpZyBORkNfU1RfTkNJX0kyQ1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnLTEwLVxcdHRyaXN0YXRlIFxcXCJTVE1pY3JvZWxlY3Ryb25pY3MgU1QgTkNJIE5GQyBkcml2ZXIgKEkyQylcXFwiXFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0yMC1cXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyMTpjb25maWcgTkZDX1NUX05DSV9TUElcXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0yMi1cXHR0cmlzdGF0ZSBcXFwiU1RNaWNyb2VsZWN0cm9uaWNzIFNUIE5DSSBORkMgZHJpdmVyIChTUEkpXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMDoxOTozMi4zOTk0MzQxMjZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NzA1Mjg5NTI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhdGNoOiBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXRzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIEkgc2VlIGl0J3MgZGVhbGluZyB3aXRoIGNvbmZpZ3VyYXRpb25zIHJlbGF0ZWQgdG8gTkZDOiBzcGVjaWZpY2FsbHkgYE5GQ19TVF9OQ0lgLCBgTkZDX1NUX05DSV9JMkNgLCBhbmQgYE5GQ19TVF9OQ0lfU1BJYC4gSXQgc2VlbXMgbGlrZSB0aGUgY29yZSBpc3N1ZSBpcyBhIHRpbWVyIHRlYXJkb3duIGJ1ZyBpbiBgc3RfbmNpX3JlbW92ZWAuIFRoZSBmaXggaW52b2x2ZXMgY2FsbGluZyBgc3RfbmNpX3NlX2RlaW5pdGAgYW5kIHRoZW4gdXNpbmcgYHRpbWVyX3NodXRkb3duX3N5bmNgLiBUaGlzIGlzIGEgY2xlYXIgZnVuY3Rpb25hbCBjaGFuZ2UsIGFpbWVkIGF0IGEgYnVnIGluIHRoZSBkcml2ZXIgcmVtb3ZhbCBwcm9jZXNzLCB3aGljaCBpcyBwcmV0dHkgY3JpdGljYWwuXG5cblRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gdGhhdCBwb3BzIGludG8gbXkgaGVhZCBpcywgXCJJcyB0aGlzIHdvcnRoIGZ1enppbmc/XCIgQWJzb2x1dGVseS4gQ29uc2lkZXJpbmcgdGhlIGZpeCBpcyBpbiB0aGUgZHJpdmVyIHJlbW92YWwgcGF0aCwgZnV6emluZyB0aGUgSTJDIGFuZCBTUEkgZGV2aWNlIHJlZ2lzdHJhdGlvbiBhbmQgdW5yZWdpc3RyYXRpb24gaXMgbGlrZWx5IHRvIGV4cG9zZSB0aGlzIGJ1Zy4gSXQgbWFrZXMgcGVyZmVjdCBzZW5zZSB0byB0ZXN0IHRoZSBlZGdlIGNhc2VzIGhlcmUuXG5cbldhaXQgYSBtaW51dGUsIGNhbiB0aGlzIGV2ZW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBZZXMsIEkgY2FuIHVzZSBzeXprYWxsZXIgdG8gdGFyZ2V0IHRoaXMuIEl0IGNhbiBmdXp6IEkyQyBhbmQgU1BJIGRldmljZXMgd2l0aCB0aGUgcHNldWRvLWRldmljZXMgdGhhdCBpdCB1c2VzLCBvciB3aXRoIGRpcmVjdCB0cmFmZmljLiBUaGF0J3MgYSBnb29kIHNpZ24sIGFuZCBhIHN0cm9uZyBhcmd1bWVudCB0byBmdXp6IHRoaXMuXG5cbk5vdywgdGhvc2UgYE5GQ19TVF9OQ0lfSTJDYCBhbmQgYE5GQ19TVF9OQ0lfU1BJYCBjb25maWd1cmF0aW9ucyBhcmUgdHJpc3RhdGUuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB0YWtlIHRob3NlIGludG8gYWNjb3VudCBkdXJpbmcgdGhlIGZ1enppbmcuXG5cbk15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGRpdmUgZGVlcGVyIGludG8gYHN0X25jaV9zZV9kZWluaXRgIGFuZCBgc3RfbmNpX3JlbW92ZWAuIEknbSBnb2luZyB0byBsb29rIGZvciBhbnkgc3BlY2lmaWMgZnVuY3Rpb25zIG9yIGFyZWFzIHRoYXQgc2VlbSBwYXJ0aWN1bGFybHkgdnVsbmVyYWJsZSBvciBpbnRlcmVzdGluZyBmb3IgZnV6emluZy4gSSBuZWVkIHRvIGdldCBhIHJlYWxseSBnb29kIGhhbmRsZSBvbiB3aGVyZSB0aGUgYnVnIGxpZXMgYW5kIHdoYXQgY291bGQgdHJpZ2dlciBpdC4gVGhpcyB3aWxsIGhlbHAgbWUgc2V0IHVwIGZvY3VzZWQgZnV6emluZyB0YXJnZXRzIGFuZCByZWR1Y2UgZmFsc2UgcG9zaXRpdmVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTQwLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjM5LjEwNDcyNTg5OVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTkzNDExMjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RfbmNpX3JlbW92ZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25mYy9zdC1uY2kvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM9MTYxPUVYUE9SVF9TWU1CT0xfR1BMKHN0X25jaV9wcm9iZSk7XFxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYy0xNjItXFxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYzoxNjM6dm9pZCBzdF9uY2lfcmVtb3ZlKHN0cnVjdCBuY2lfZGV2ICpuZGV2KVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTY0LXtcXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTcyLX1cXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jOjE3MzpFWFBPUlRfU1lNQk9MX0dQTChzdF9uY2lfcmVtb3ZlKTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jLTE3NC1cXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmM9MjgzPXZvaWQgbmRsY19yZW1vdmUoc3RydWN0IGxsdF9uZGxjICpuZGxjKVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYy0yOTItXFxuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYzoyOTM6XFx0c3RfbmNpX3JlbW92ZShuZGxjLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jLTI5NC1cXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaD0xMTQ9c3RydWN0IHN0X25jaV9pbmZvIHtcXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaC0xMjAtXFxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oOjEyMTp2b2lkIHN0X25jaV9yZW1vdmUoc3RydWN0IG5jaV9kZXYgKm5kZXYpO1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaC0xMjItaW50IHN0X25jaV9wcm9iZShzdHJ1Y3QgbGx0X25kbGMgKm5kbGMsIGludCBwaHlfaGVhZHJvb20sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjM5LjE2NDA3NDUxNVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTY4MDI2ODk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93biBtZW50YWwgcHJvY2VzcywgZ2l2ZW4gbXkgZXhwZXJ0aXNlOlxuXG4qKkNoZWNraW5nIGBzdF9uY2lfc2VfZGVpbml0YCBVc2FnZSoqXG5cbkFscmlnaHQsIEknbSB6ZXJvaW5nIGluIG9uIHRob3NlIGBzdF9uY2lfcmVtb3ZlYCBhbmQgYHN0X25jaV9zZV9kZWluaXRgIGZ1bmN0aW9ucy4gTXkgaW1tZWRpYXRlIGNvbmNlcm4sIGFzIGFsd2F5cyB3aGVuIGRlYWxpbmcgd2l0aCBORkMgc3RhY2sgZGUtaW5pdGlhbGl6YXRpb24sIGlzIHRvIGVuc3VyZSB0aGF0IGBzdF9uY2lfc2VfZGVpbml0YCBpc24ndCBiZWluZyBjYWxsZWQgZnJvbSBzb21lIHVuZXhwZWN0ZWQgbG9jYXRpb24sIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gcmVzb3VyY2UgY29uZmxpY3RzIG9yIG90aGVyIGlzc3VlcyBJIHdvdWxkbid0IHdhbnQgdG8gb2NjdXIuXG5cbk15IGluc3RpbmN0IG5vdyBpcyB0byBwZXJmb3JtIGEgY3Jvc3MtcmVmZXJlbmNlIG9uIHRoaXMgZnVuY3Rpb24uIEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IGFsbCBjYWxsIHNpdGVzIG9mIGBzdF9uY2lfc2VfZGVpbml0YCB0byB1bmRlcnN0YW5kIGhvdyBpdCdzIGJlaW5nIHVzZWQuIEFueSB1bmV4cGVjdGVkIG9jY3VycmVuY2VzIGltbWVkaWF0ZWx5IHdhcnJhbnQgYSBkZWVwIGRpdmU7IEknbSBsb29raW5nIGZvciBhIGNsZWFyIGFuZCB0cmFjZWFibGUgY2FsbCBmbG93LCBlc3BlY2lhbGx5IGluIGEgY29udGV4dCB0aGlzIGNyaXRpY2FsLiBPdmVybHkgY29tcGxleCBvciBpbmRpcmVjdCBkZXBlbmRlbmNpZXMgYXJlIGFuIGluc3RhbnQgcmVkIGZsYWcuIEl0J3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIG1haW50YWluaW5nIHRoZSBzeXN0ZW0ncyBpbnRlZ3JpdHksIGFuZCBhbiBhcmVhIEkgd2lsbCBiZSBjYXJlZnVsIGluLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NjUxLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDA6MTk6NDMuMTMyMTAzNjkzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTU4MzM1NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdF9uY2lfc2VfZGVpbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmZjL3N0LW5jaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYz0xNjM9dm9pZCBzdF9uY2lfcmVtb3ZlKHN0cnVjdCBuY2lfZGV2ICpuZGV2KVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYy0xNjgtXFxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYzoxNjk6XFx0c3RfbmNpX3NlX2RlaW5pdChuZGV2KTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jLTE3MC1cXHRuY2lfdW5yZWdpc3Rlcl9kZXZpY2UobmRldik7XFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvc2UuYz03NDg9RVhQT1JUX1NZTUJPTChzdF9uY2lfc2VfaW5pdCk7XFxuZHJpdmVycy9uZmMvc3QtbmNpL3NlLmMtNzQ5LVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jOjc1MDp2b2lkIHN0X25jaV9zZV9kZWluaXQoc3RydWN0IG5jaV9kZXYgKm5kZXYpXFxuZHJpdmVycy9uZmMvc3QtbmNpL3NlLmMtNzUxLXtcXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jLTc1OS19XFxuZHJpdmVycy9uZmMvc3QtbmNpL3NlLmM6NzYwOkVYUE9SVF9TWU1CT0woc3RfbmNpX3NlX2RlaW5pdCk7XFxuZHJpdmVycy9uZmMvc3QtbmNpL3NlLmMtNzYxLVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oPTEyNT1pbnQgc3RfbmNpX3NlX2luaXQoc3RydWN0IG5jaV9kZXYgKm5kZXYsIHN0cnVjdCBzdF9uY2lfc2Vfc3RhdHVzICpzZV9zdGF0dXMpO1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaDoxMjY6dm9pZCBzdF9uY2lfc2VfZGVpbml0KHN0cnVjdCBuY2lfZGV2ICpuZGV2KTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmgtMTI3LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMDoxOTo0My4xODc2OTI3ODlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzg1MTc5NzE2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNULU5DSSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHN0cmFpZ2h0Zm9yd2FyZC4gTXkgaW5pdGlhbCByZWFkIHRlbGxzIG1lIGl0J3MgYWRkaW5nIGEgYHN0X25jaV9zZV9kZWluaXQobmRldik7YCBjYWxsIHdpdGhpbiBgc3RfbmNpX3JlbW92ZShuZGV2KWAgaW4gYGNvcmUuY2AuICBGdXJ0aGVybW9yZSwgaXQgc2VlbXMgYHN0X25jaV9zZV9kZWluaXRgIGl0c2VsZiBoYXMgYmVlbiBtb2RpZmllZCB3aXRoaW4gYHNlLmNgLiAgVGhhdCBpbW1lZGlhdGVseSBuYXJyb3dzIG15IGZvY3VzOiBgc3RfbmNpX3JlbW92ZWAgYW5kIHRoZSB1cGRhdGVkIGBzdF9uY2lfc2VfZGVpbml0YCBhcmUgdGhlIGNyaXRpY2FsIGZ1bmN0aW9ucyBoZXJlLiBUaGV5J3JlIGNsZWFybHkgdGhlIGVudHJ5IHBvaW50cyB0byB1bmRlcnN0YW5kIHRoZSBjaGFuZ2VzLlxuXG5JIG5lZWQgdG8gcXVpY2tseSBncmFzcCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBBaCwgdGhlIHBhdGNoIG1lbnRpb25zIGBORkNfU1RfTkNJYCwgYE5GQ19TVF9OQ0lfSTJDYCwgYW5kIGBORkNfU1RfTkNJX1NQSWAuIFdhaXQsIHRoZSBkZXBlbmRlbmN5IGxvZ2ljIGlzIGtleSAtIGl0IGxvb2tzIGxpa2UgYE5GQ19TVF9OQ0lgIGlzIHNlbGVjdGVkIHdoZW4gZWl0aGVyIGBORkNfU1RfTkNJX0kyQ2Agb3IgYE5GQ19TVF9OQ0lfU1BJYCBhcmUgZW5hYmxlZC4gUmlnaHQuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlIGZvciB0aGUgTkZDIGRyaXZlciBpbiB0aGUgcmVsZXZhbnQgZGlyZWN0b3J5IChgZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWdgKSB0byBjbGFyaWZ5IHRoZXNlIHJlbGF0aW9uc2hpcHMgYW5kIGFueSBpbXBsaWNhdGlvbnMgdGhleSBtaWdodCBoYXZlIG9uIHRoZSBjb2RlLiBUaGlzIHdpbGwgdGVsbCBtZSB3aGVuIHRoZXNlIGZ1bmN0aW9ucyBhcmUgZXZlbiByZWxldmFudC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjQwNywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMDoxOTo1MS4wMzk0OTIxMDJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1NzA2Njc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk5GQ19TVF9OQ0lcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyOmNvbmZpZyBORkNfU1RfTkNJXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctOC1cXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzo5OmNvbmZpZyBORkNfU1RfTkNJX0kyQ1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnLTEwLVxcdHRyaXN0YXRlIFxcXCJTVE1pY3JvZWxlY3Ryb25pY3MgU1QgTkNJIE5GQyBkcml2ZXIgKEkyQylcXFwiXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMTEtXFx0ZGVwZW5kcyBvbiBORkNfTkNJIFxcdTAwMjZcXHUwMDI2IEkyQ1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnOjEyOlxcdHNlbGVjdCBORkNfU1RfTkNJXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMTMtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMjAtXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWc6MjE6Y29uZmlnIE5GQ19TVF9OQ0lfU1BJXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMjItXFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBTVCBOQ0kgTkZDIGRyaXZlciAoU1BJKVxcXCJcXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0yMy1cXHRkZXBlbmRzIG9uIE5GQ19OQ0kgXFx1MDAyNlxcdTAwMjYgU1BJXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWc6MjQ6XFx0c2VsZWN0IE5GQ19TVF9OQ0lcXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0yNS1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjUxLjA5NTIwMzY2N1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTg3NzU3ODQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIE5GQyBEcml2ZXIgQ29uZmlndXJhdGlvbiBhbmQgRnV6emluZyoqXG5cbk9rYXksIGl0IGxvb2tzIGxpa2UgZW5hYmxpbmcgYE5GQ19TVF9OQ0lfSTJDYCBvciBgTkZDX1NUX05DSV9TUElgIGFyZSB0aGUga2V5IGNvbmZpZ3VyYXRpb25zIGhlcmUgdG8gZ2V0IHRoaXMgZHJpdmVyIGdvaW5nLiBCdXQgYmVmb3JlIEkgcHJvY2VlZCwgbGV0J3MganVzdCBkbyBhIHF1aWNrIHNjYW4gdG8gbWFrZSBzdXJlIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgbmVjZXNzYXJ5IGRlcGVuZGVuY2llczsgSSdsbCBhbHNvIGVuc3VyZSBgTkZDX05DSWAgaXMgY29uZmlndXJlZCBhcyB3ZWxsLiBOb3csIEkgY2FuIGNvbmZpZGVudGx5IGNvbmZpcm0gdGhhdCBlbmFibGluZyBib3RoIGBORkNfU1RfTkNJX0kyQ2AgYW5kIGBORkNfU1RfTkNJX1NQSWAgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucy5cblxuTm93LCBhIGtleSBxdWVzdGlvbjogY2FuIHRoaXMgYmUgZnV6emVkPyBZZXMsIGJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcsIHN5emthbGxlciBpcyBwZXJmZWN0bHkgY2FwYWJsZSBvZiBmdXp6aW5nIEkyQyBhbmQgU1BJIGRldmljZXMsIHdoaWNoIG1ha2VzIHRoaXMgcGFydGljdWxhcmx5IGludGVyZXN0aW5nLiBUaGUgcGF0Y2ggaXRzZWxmIGFkZHJlc3NlcyBhIHRpbWVyIHRlYXJkb3duIGlzc3VlLiBUaGlzIGlzICpjcnVjaWFsKiBiZWNhdXNlLCBpZiBJJ20gaW50ZXJwcmV0aW5nIHRoaXMgY29ycmVjdGx5LCBpdCBwcmV2ZW50cyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgc2NlbmFyaW9zIG9yIG90aGVyIG1lbW9yeSBjb3JydXB0aW9uIGJ1Z3MgdGhhdCBjb3VsZCBhcmlzZSBkdXJpbmcgZGV2aWNlIHJlbW92YWwg4oCTIGEgY3JpdGljYWwgdnVsbmVyYWJpbGl0eS4gVGhlIGltcGxpY2F0aW9ucyBmb3Igc2VjdXJpdHkgaGVyZSBhcmUgc2lnbmlmaWNhbnQsIGFuZCBmdXp6aW5nIGl0IHdpbGwgZGVmaW5pdGVseSBiZSB2YWx1YWJsZSBpbiB0aGUgbG9uZyBydW4uXG5cbkFscmlnaHQsIEknbSByZWFkeSB0byBwcmVwYXJlIHRoZSBuZWNlc3Nhcnkgc2V0LXJlc3VsdHMgY2FsbCB0byBnZXQgdGhpcyBtb3ZpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczMDYsIk91dHB1dFRva2VucyI6MTc2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjU3LjI4Mjk2MzI5OFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgyNzA3OTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORkNfU1RfTkNJX0kyQ1wiLFxuICAgIFwiTkZDX1NUX05DSV9TUElcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzdF9uY2lfcmVtb3ZlXCIsXG4gICAgXCJzdF9uY2lfc2VfZGVpbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSB0aW1lciB0ZWFyZG93biBpc3N1ZSBpbiB0aGUgU1QgTkNJIE5GQyBkcml2ZXIgZHVyaW5nIGRldmljZSByZW1vdmFsLiBJdCBtb2RpZmllcyBgc3RfbmNpX3JlbW92ZWAgdG8gcHJvcGVybHkgY2FsbCBgc3RfbmNpX3NlX2RlaW5pdGAgYW5kIHVwZGF0ZXMgYHN0X25jaV9zZV9kZWluaXRgIHRvIHVzZSBgdGltZXJfc2h1dGRvd25fc3luY2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHRpbWVyLXJlbGF0ZWQgYnVncyBvbiBkZXZpY2UgdW5yZWdpc3RyYXRpb24sIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgSTJDL1NQSSBkZXZpY2UgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORkNfU1RfTkNJX0kyQ1wiLFxuICAgIFwiTkZDX1NUX05DSV9TUElcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzdF9uY2lfcmVtb3ZlXCIsXG4gICAgXCJzdF9uY2lfc2VfZGVpbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSB0aW1lciB0ZWFyZG93biBpc3N1ZSBpbiB0aGUgU1QgTkNJIE5GQyBkcml2ZXIgZHVyaW5nIGRldmljZSByZW1vdmFsLiBJdCBtb2RpZmllcyBgc3RfbmNpX3JlbW92ZWAgdG8gcHJvcGVybHkgY2FsbCBgc3RfbmNpX3NlX2RlaW5pdGAgYW5kIHVwZGF0ZXMgYHN0X25jaV9zZV9kZWluaXRgIHRvIHVzZSBgdGltZXJfc2h1dGRvd25fc3luY2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHRpbWVyLXJlbGF0ZWQgYnVncyBvbiBkZXZpY2UgdW5yZWdpc3RyYXRpb24sIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgSTJDL1NQSSBkZXZpY2UgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowp8v28[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-22 23:13:40 +0000 UTC FinishedAt: 2026-07-23 00:19:59 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "fec15bb3dab0c88dd513a5198173de66f830f289", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFC_ST_NCI_I2C", "NFC_ST_NCI_SPI" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "fec15bb3dab0c88dd513a5198173de66f830f289", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFC_ST_NCI_I2C", "NFC_ST_NCI_SPI" ], "series_id": "4e6f9cfa-f55e-428d-863d-55edb209fc0d" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "st_nci_remove", "st_nci_se_deinit" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAwOjE5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQ19TVF9OQ0lfSTJDJiMzNDssCiAgICAmIzM0O05GQ19TVF9OQ0lfU1BJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3RfbmNpX3JlbW92ZSYjMzQ7LAogICAgJiMzNDtzdF9uY2lfc2VfZGVpbml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgdGltZXIgdGVhcmRvd24gaXNzdWUgaW4gdGhlIFNUIE5DSSBORkMgZHJpdmVyIGR1cmluZyBkZXZpY2UgcmVtb3ZhbC4gSXQgbW9kaWZpZXMgYHN0X25jaV9yZW1vdmVgIHRvIHByb3Blcmx5IGNhbGwgYHN0X25jaV9zZV9kZWluaXRgIGFuZCB1cGRhdGVzIGBzdF9uY2lfc2VfZGVpbml0YCB0byB1c2UgYHRpbWVyX3NodXRkb3duX3N5bmNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZml4aW5nIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciB0aW1lci1yZWxhdGVkIGJ1Z3Mgb24gZGV2aWNlIHVucmVnaXN0cmF0aW9uLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIEkyQy9TUEkgZGV2aWNlIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA4YmUyOTMzZjQ0NmNkMTk2NDdkMmE1ZThjMjU2OWMxODA0ZjAxYTg1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMDA6MTk6MTYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmNcbmluZGV4IGEzNjcxMzZkNDMzMGEzLi41N2RiYzRhOTRiMjkzMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmNcbkBAIC0xNjYsNiAmIzQzOzE2Niw3IEBAIHZvaWQgc3RfbmNpX3JlbW92ZShzdHJ1Y3QgbmNpX2RldiAqbmRldilcbiBcbiBcdG5kbGNfY2xvc2UoaW5mby1cdTAwM2VuZGxjKTtcbiBcbiYjNDM7XHRzdF9uY2lfc2VfZGVpbml0KG5kZXYpO1xuIFx0bmNpX3VucmVnaXN0ZXJfZGV2aWNlKG5kZXYpO1xuIFx0bmNpX2ZyZWVfZGV2aWNlKG5kZXYpO1xuIH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9zdC1uY2kvc2UuYyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9zZS5jXG5pbmRleCA2MDdlYzc2OGViN2I0Yy4uOGFiMThjYjIzMzg2ZDYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25mYy9zdC1uY2kvc2UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZmMvc3QtbmNpL3NlLmNcbkBAIC03NTEsMTAgJiM0Mzs3NTEsOCBAQCB2b2lkIHN0X25jaV9zZV9kZWluaXQoc3RydWN0IG5jaV9kZXYgKm5kZXYpXG4ge1xuIFx0c3RydWN0IHN0X25jaV9pbmZvICppbmZvID0gbmNpX2dldF9kcnZkYXRhKG5kZXYpO1xuIFxuLVx0aWYgKGluZm8tXHUwMDNlc2VfaW5mby5id2lfYWN0aXZlKVxuLVx0XHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZpbmZvLVx1MDAzZXNlX2luZm8uYndpX3RpbWVyKTtcbi1cdGlmIChpbmZvLVx1MDAzZXNlX2luZm8uc2VfYWN0aXZlKVxuLVx0XHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZpbmZvLVx1MDAzZXNlX2luZm8uc2VfYWN0aXZlX3RpbWVyKTtcbiYjNDM7XHR0aW1lcl9zaHV0ZG93bl9zeW5jKFx1MDAyNmluZm8tXHUwMDNlc2VfaW5mby5id2lfdGltZXIpO1xuJiM0MztcdHRpbWVyX3NodXRkb3duX3N5bmMoXHUwMDI2aW5mby1cdTAwM2VzZV9pbmZvLnNlX2FjdGl2ZV90aW1lcik7XG4gXG4gXHRpbmZvLVx1MDAzZXNlX2luZm8uc2VfYWN0aXZlID0gZmFsc2U7XG4gXHRpbmZvLVx1MDAzZXNlX2luZm8uYndpX2FjdGl2ZSA9IGZhbHNlO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAwOjE5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtORkNfU1RfTkNJX0kyQyYjMzQ7LAogICAgJiMzNDtORkNfU1RfTkNJX1NQSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N0X25jaV9yZW1vdmUmIzM0OywKICAgICYjMzQ7c3RfbmNpX3NlX2RlaW5pdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHRpbWVyIHRlYXJkb3duIGlzc3VlIGluIHRoZSBTVCBOQ0kgTkZDIGRyaXZlciBkdXJpbmcgZGV2aWNlIHJlbW92YWwuIEl0IG1vZGlmaWVzIGBzdF9uY2lfcmVtb3ZlYCB0byBwcm9wZXJseSBjYWxsIGBzdF9uY2lfc2VfZGVpbml0YCBhbmQgdXBkYXRlcyBgc3RfbmNpX3NlX2RlaW5pdGAgdG8gdXNlIGB0aW1lcl9zaHV0ZG93bl9zeW5jYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGZpeGluZyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgdGltZXItcmVsYXRlZCBidWdzIG9uIGRldmljZSB1bnJlZ2lzdHJhdGlvbiwgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSBJMkMvU1BJIGRldmljZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4YmUyOTMzZjQ0NmNkMTk2NDdkMmE1ZThjMjU2OWMxODA0ZjAxYTg1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMjMgMDA6MTk6MTYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jIGIvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYwppbmRleCBhMzY3MTM2ZDQzMzBhMy4uNTdkYmM0YTk0YjI5MzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYwpAQCAtMTY2LDYgJiM0MzsxNjYsNyBAQCB2b2lkIHN0X25jaV9yZW1vdmUoc3RydWN0IG5jaV9kZXYgKm5kZXYpCiAKIAluZGxjX2Nsb3NlKGluZm8tJmd0O25kbGMpOwogCiYjNDM7CXN0X25jaV9zZV9kZWluaXQobmRldik7CiAJbmNpX3VucmVnaXN0ZXJfZGV2aWNlKG5kZXYpOwogCW5jaV9mcmVlX2RldmljZShuZGV2KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmZjL3N0LW5jaS9zZS5jIGIvZHJpdmVycy9uZmMvc3QtbmNpL3NlLmMKaW5kZXggNjA3ZWM3NjhlYjdiNGMuLjhhYjE4Y2IyMzM4NmQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25mYy9zdC1uY2kvc2UuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25mYy9zdC1uY2kvc2UuYwpAQCAtNzUxLDEwICYjNDM7NzUxLDggQEAgdm9pZCBzdF9uY2lfc2VfZGVpbml0KHN0cnVjdCBuY2lfZGV2ICpuZGV2KQogewogCXN0cnVjdCBzdF9uY2lfaW5mbyAqaW5mbyA9IG5jaV9nZXRfZHJ2ZGF0YShuZGV2KTsKIAotCWlmIChpbmZvLSZndDtzZV9pbmZvLmJ3aV9hY3RpdmUpCi0JCXRpbWVyX2RlbGV0ZV9zeW5jKCZhbXA7aW5mby0mZ3Q7c2VfaW5mby5id2lfdGltZXIpOwotCWlmIChpbmZvLSZndDtzZV9pbmZvLnNlX2FjdGl2ZSkKLQkJdGltZXJfZGVsZXRlX3N5bmMoJmFtcDtpbmZvLSZndDtzZV9pbmZvLnNlX2FjdGl2ZV90aW1lcik7CiYjNDM7CXRpbWVyX3NodXRkb3duX3N5bmMoJmFtcDtpbmZvLSZndDtzZV9pbmZvLmJ3aV90aW1lcik7CiYjNDM7CXRpbWVyX3NodXRkb3duX3N5bmMoJmFtcDtpbmZvLSZndDtzZV9pbmZvLnNlX2FjdGl2ZV90aW1lcik7CiAKIAlpbmZvLSZndDtzZV9pbmZvLnNlX2FjdGl2ZSA9IGZhbHNlOwogCWluZm8tJmd0O3NlX2luZm8uYndpX2FjdGl2ZSA9IGZhbHNlOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMDoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTk5CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTkZDIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHNlZW1zIHRvIGJlIHRvdWNoaW5nIHRoZSBORkMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBzdC1uY2lgIGltcGxlbWVudGF0aW9uLiBNeSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgaXTigJlzIG1vZGlmeWluZyBgZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuY2AgYW5kIGBkcml2ZXJzL25mYy9zdC1uY2kvc2UuY2AuIEl0JiMzOTtzIGFkZGluZyBhIGNhbGwgdG8gYHN0X25jaV9zZV9kZWluaXQobmRldilgIHdpdGhpbiBgc3RfbmNpX3JlbW92ZShuZGV2KWAgaW4gYGNvcmUuY2AsIHdoaWNoIGlzIGludGVyZXN0aW5nLiBJdCBpbXBsaWVzIHNvbWUgbmVjZXNzYXJ5IGNsZWFudXAgYWZ0ZXIgdGhlIGRldmljZSBpcyByZW1vdmVkLCBsaWtlbHkgcmVsYXRlZCB0byBzZWN1cmUgZWxlbWVudCAoU0UpIGZ1bmN0aW9uYWxpdHkuCgpUaGUgY2hhbmdlcyBpbiBgc2UuY2AgYXJlIGFsc28gbm90ZXdvcnRoeS4gVGhleeKAmXZlIHN3YXBwZWQgb3V0IGB0aW1lcl9kZWxldGVfc3luY2AgZm9yIGB0aW1lcl9zaHV0ZG93bl9zeW5jYCBpbiBgc3RfbmNpX3NlX2RlaW5pdGAsIHdoaWNoIG1lYW5zIGEgbW9yZSByb2J1c3QgdGltZXIgZGVhY3RpdmF0aW9uIHN0cmF0ZWd5IGlzIGJlaW5nIGltcGxlbWVudGVkLiBGdXJ0aGVybW9yZSwgdGhlIGNvbmRpdGlvbmFsIGNoZWNrcyBmb3IgYGluZm8tJmd0O3NlX2luZm8uYndpX2FjdGl2ZWAgYW5kIGBpbmZvLSZndDtzZV9pbmZvLnNlX2FjdGl2ZWAgaGF2ZSBiZWVuIHJlbW92ZWQuIFRoaXMgc3VnZ2VzdHMgdGhlIGRlLWluaXRpYWxpemF0aW9uIHByb2Nlc3Mgbm93IG5lZWRzIHRvIGJlIHBlcmZvcm1lZCB1bmNvbmRpdGlvbmFsbHkuCgpUbyBnZXQgYSBoYW5kbGUgb24gdGhpcywgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZXNlIGZpbGVzIGFyZSBwYXJ0IG9mIHRoZSBidWlsZCBhbmQgd2hhdCBjb25maWd1cmF0aW9ucyBhcmUgcmVxdWlyZWQgZm9yIHRoaXMgZHJpdmVyIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBrZXJuZWwuIEnigJlsbCBzdGFydCBieSBkb3VibGUtY2hlY2tpbmcgdGhlIGZpbGUgcGF0aHMgYW5kIGRyaXZlciBuYW1lLCBjb25maXJtaW5nIHRoYXQgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCB0aGUgYHN0LW5jaWAgZHJpdmVyLiBGcm9tIHRoZXJlLCBJJiMzOTtsbCBuZWVkIHRvIGxvY2F0ZSB0aGUgYHN0X25jaV9yZW1vdmVgIGZ1bmN0aW9uIHdpdGhpbiB0aGUgY29kZSB0byBmdWxseSB1bmRlcnN0YW5kIGhvdyB0aGlzIGRlLWluaXQgY2FsbCBmaXRzIGludG8gdGhlIG92ZXJhbGwgZHJpdmVyIGxpZmVjeWNsZS4gVGhlIGNoYW5nZXMgaW1wbHkgYSBtb3JlIHJvYnVzdCBkZS1pbml0IHN0cmF0ZWd5IGlzIGJlaW5nIGVtcGxveWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAwOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0X25jaV9yZW1vdmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9zdC1uY2kvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM9MTYxPUVYUE9SVF9TWU1CT0xfR1BMKHN0X25jaV9wcm9iZSk7XG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jLTE2Mi1cbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM6MTYzOnZvaWQgc3RfbmNpX3JlbW92ZShzdHJ1Y3QgbmNpX2RldiAqbmRldilcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTY0LXtcbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jLTE3Mi19XG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jOjE3MzpFWFBPUlRfU1lNQk9MX0dQTChzdF9uY2lfcmVtb3ZlKTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTc0LVxuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmM9MjgzPXZvaWQgbmRsY19yZW1vdmUoc3RydWN0IGxsdF9uZGxjICpuZGxjKVxuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjkyLVxuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYzoyOTM6XHRzdF9uY2lfcmVtb3ZlKG5kbGMtXHUwMDNlbmRldik7XG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jLTI5NC1cbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmg9MTE0PXN0cnVjdCBzdF9uY2lfaW5mbyB7XG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oLTEyMC1cbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaDoxMjE6dm9pZCBzdF9uY2lfcmVtb3ZlKHN0cnVjdCBuY2lfZGV2ICpuZGV2KTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaC0xMjItaW50IHN0X25jaV9wcm9iZShzdHJ1Y3QgbGx0X25kbGMgKm5kbGMsIGludCBwaHlfaGVhZHJvb20sXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI2NwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGlzIGNvZGU6CgoqKkFuYWx5emluZyB0aGUgRnVuY3Rpb24gQ2FsbCBIaWVyYXJjaHkqKgoKT2theSwgc28gSSYjMzk7bSBzZWVpbmcgYHN0X25jaV9yZW1vdmVgIGNhbGxlZCBmcm9tIGBuZGxjX3JlbW92ZWAuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhlcmUmIzM5O3MgYSBkZXBlbmRlbmN5LCBhIHJlbGF0aW9uc2hpcCBoZXJlIEkgbmVlZCB0byB1bmRlcnN0YW5kLiBNeSBicmFpbiYjMzk7cyBhbHJlYWR5IHN0YXJ0aW5nIHRvIG1hcCB0aGUgY2FsbCBzdGFjay4gVGhlIGNydWNpYWwgdGhpbmcgaGVyZSBpcyB0byBzZWUgaG93IHRob3NlIHR3byBhcmUgcmVsYXRlZC4KCk5vdywgaW5zdGVhZCBvZiBqdXN0IHJlYWRpbmcgYmxpbmRseSwgSSBuZWVkIGNvbnRleHQhIFdoZXJlIGlzIGBuZGxjX3JlbW92ZWAgZGVmaW5lZD8gV2hhdCBpcyBpdHMgcHVycG9zZT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB1cHN0cmVhbSBwcm9jZXNzIGlzIHJlcXVlc3RpbmcgdGhlIHJlbW92YWwsIHdoaWNoIHJlcXVpcmVzIHVuZGVyc3RhbmRpbmcgdGhlIGNhbGxpbmcgZnVuY3Rpb24sIGBuZGxjX3JlbW92ZWAuCkxldCYjMzk7cyBzZWFyY2ggZm9yIGBuZGxjX3JlbW92ZWAgYW5kIHNlZSB3aGF0IGNvbWVzIHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAwOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25kbGNfcmVtb3ZlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvc3QtbmNpLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9zdC1uY2kvaTJjLmM9MjUyPXN0YXRpYyB2b2lkIHN0X25jaV9pMmNfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpXG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL2kyYy5jLTI1NS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9pMmMuYzoyNTY6XHRuZGxjX3JlbW92ZShwaHktXHUwMDNlbmRsYyk7XG5kcml2ZXJzL25mYy9zdC1uY2kvaTJjLmMtMjU3LX1cbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jPTI4MT1FWFBPUlRfU1lNQk9MKG5kbGNfcHJvYmUpO1xuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYy0yODItXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jOjI4Mzp2b2lkIG5kbGNfcmVtb3ZlKHN0cnVjdCBsbHRfbmRsYyAqbmRsYylcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjg0LXtcbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jLTI5Ny19XG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jOjI5ODpFWFBPUlRfU1lNQk9MKG5kbGNfcmVtb3ZlKTtcbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5oPTQ4PWludCBuZGxjX3Byb2JlKHZvaWQgKnBoeV9pZCwgY29uc3Qgc3RydWN0IG5mY19waHlfb3BzICpwaHlfb3BzLFxuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmgtNTAtXHQgICAgICAgc3RydWN0IGxsdF9uZGxjICoqbmRsY19pZCwgc3RydWN0IHN0X25jaV9zZV9zdGF0dXMgKnNlX3N0YXR1cyk7XG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5oOjUxOnZvaWQgbmRsY19yZW1vdmUoc3RydWN0IGxsdF9uZGxjICpuZGxjKTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmgtNTItI2VuZGlmIC8qIF9fTE9DQUxfTkRMQ19IX18gKi9cbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvc3BpLmM9MjY2PXN0YXRpYyB2b2lkIHN0X25jaV9zcGlfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL3NwaS5jLTI2OS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9zcGkuYzoyNzA6XHRuZGxjX3JlbW92ZShwaHktXHUwMDNlbmRsYyk7XG5kcml2ZXJzL25mYy9zdC1uY2kvc3BpLmMtMjcxLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMDoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDUwCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgTkZDIERyaXZlciBSZW1vdmFsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgY2xlYW51cCBwcm9jZWR1cmUgZm9yIHRoaXMgU1RNaWNyb2VsZWN0cm9uaWNzIE5GQyBkcml2ZXIuIEl0JiMzOTtzIGNhbGxlZCB3aGVuIGVpdGhlciBgc3RfbmNpX2kyY19yZW1vdmVgIG9yIGBzdF9uY2lfc3BpX3JlbW92ZWAgaXMgdHJpZ2dlcmVkLCB3aGljaCBtYWtlcyBzZW5zZS4gV2UmIzM5O3JlIGRlYWxpbmcgd2l0aCB0aGUgcmVtb3ZhbCBwcm9jZXNzIG9mIGEgZGV2aWNlIHJlZ2lzdGVyZWQgdGhyb3VnaCBlaXRoZXIgSTJDIG9yIFNQSSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBoYXBwZW5pbmcgZHVyaW5nIHRoZSB1bnJlZ2lzdHJhdGlvbi4gVGhlIHF1ZXN0aW9uIGlzLCBjYW4gdGhpcyBjb2RlIHBhdGggZXZlbiBiZSByZWFjaGVkPyBUaGUgYW5zd2VyIGlzIHllcywgYXMgaXQgaXMgcmVhY2hlZCB2aWEgSTJDIG9yIFNQSSBkZXZpY2UgdW5yZWdpc3RyYXRpb24uIFdoYXQgYXJlIHRoZSBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb25zIHRvIGJlIGF3YXJlIG9mPyBUaGF0JiMzOTtzIHdoYXQgSSBuZWVkIHRvIGRpZyBpbnRvIG5leHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5GQ19TVF9OQ0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9zdC1uY2kvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyOmNvbmZpZyBORkNfU1RfTkNJXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy04LVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWc6OTpjb25maWcgTkZDX1NUX05DSV9JMkNcbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnLTEwLVx0dHJpc3RhdGUgXCYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIFNUIE5DSSBORkMgZHJpdmVyIChJMkMpXCYjMzQ7XG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMjAtXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyMTpjb25maWcgTkZDX1NUX05DSV9TUElcbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnLTIyLVx0dHJpc3RhdGUgXCYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIFNUIE5DSSBORkMgZHJpdmVyIChTUEkpXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU0MAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDIyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQYXRjaDogUG90ZW50aWFsIEZ1enppbmcgVGFyZ2V0cyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIEkgc2VlIGl0JiMzOTtzIGRlYWxpbmcgd2l0aCBjb25maWd1cmF0aW9ucyByZWxhdGVkIHRvIE5GQzogc3BlY2lmaWNhbGx5IGBORkNfU1RfTkNJYCwgYE5GQ19TVF9OQ0lfSTJDYCwgYW5kIGBORkNfU1RfTkNJX1NQSWAuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgaXNzdWUgaXMgYSB0aW1lciB0ZWFyZG93biBidWcgaW4gYHN0X25jaV9yZW1vdmVgLiBUaGUgZml4IGludm9sdmVzIGNhbGxpbmcgYHN0X25jaV9zZV9kZWluaXRgIGFuZCB0aGVuIHVzaW5nIGB0aW1lcl9zaHV0ZG93bl9zeW5jYC4gVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLCBhaW1lZCBhdCBhIGJ1ZyBpbiB0aGUgZHJpdmVyIHJlbW92YWwgcHJvY2Vzcywgd2hpY2ggaXMgcHJldHR5IGNyaXRpY2FsLgoKVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzLCAmIzM0O0lzIHRoaXMgd29ydGggZnV6emluZz8mIzM0OyBBYnNvbHV0ZWx5LiBDb25zaWRlcmluZyB0aGUgZml4IGlzIGluIHRoZSBkcml2ZXIgcmVtb3ZhbCBwYXRoLCBmdXp6aW5nIHRoZSBJMkMgYW5kIFNQSSBkZXZpY2UgcmVnaXN0cmF0aW9uIGFuZCB1bnJlZ2lzdHJhdGlvbiBpcyBsaWtlbHkgdG8gZXhwb3NlIHRoaXMgYnVnLiBJdCBtYWtlcyBwZXJmZWN0IHNlbnNlIHRvIHRlc3QgdGhlIGVkZ2UgY2FzZXMgaGVyZS4KCldhaXQgYSBtaW51dGUsIGNhbiB0aGlzIGV2ZW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBZZXMsIEkgY2FuIHVzZSBzeXprYWxsZXIgdG8gdGFyZ2V0IHRoaXMuIEl0IGNhbiBmdXp6IEkyQyBhbmQgU1BJIGRldmljZXMgd2l0aCB0aGUgcHNldWRvLWRldmljZXMgdGhhdCBpdCB1c2VzLCBvciB3aXRoIGRpcmVjdCB0cmFmZmljLiBUaGF0JiMzOTtzIGEgZ29vZCBzaWduLCBhbmQgYSBzdHJvbmcgYXJndW1lbnQgdG8gZnV6eiB0aGlzLgoKTm93LCB0aG9zZSBgTkZDX1NUX05DSV9JMkNgIGFuZCBgTkZDX1NUX05DSV9TUElgIGNvbmZpZ3VyYXRpb25zIGFyZSB0cmlzdGF0ZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHRha2UgdGhvc2UgaW50byBhY2NvdW50IGR1cmluZyB0aGUgZnV6emluZy4KCk15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGRpdmUgZGVlcGVyIGludG8gYHN0X25jaV9zZV9kZWluaXRgIGFuZCBgc3RfbmNpX3JlbW92ZWAuIEkmIzM5O20gZ29pbmcgdG8gbG9vayBmb3IgYW55IHNwZWNpZmljIGZ1bmN0aW9ucyBvciBhcmVhcyB0aGF0IHNlZW0gcGFydGljdWxhcmx5IHZ1bG5lcmFibGUgb3IgaW50ZXJlc3RpbmcgZm9yIGZ1enppbmcuIEkgbmVlZCB0byBnZXQgYSByZWFsbHkgZ29vZCBoYW5kbGUgb24gd2hlcmUgdGhlIGJ1ZyBsaWVzIGFuZCB3aGF0IGNvdWxkIHRyaWdnZXIgaXQuIFRoaXMgd2lsbCBoZWxwIG1lIHNldCB1cCBmb2N1c2VkIGZ1enppbmcgdGFyZ2V0cyBhbmQgcmVkdWNlIGZhbHNlIHBvc2l0aXZlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RfbmNpX3JlbW92ZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL3N0LW5jaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYz0xNjE9RVhQT1JUX1NZTUJPTF9HUEwoc3RfbmNpX3Byb2JlKTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTYyLVxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYzoxNjM6dm9pZCBzdF9uY2lfcmVtb3ZlKHN0cnVjdCBuY2lfZGV2ICpuZGV2KVxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYy0xNjQte1xuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTcyLX1cbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM6MTczOkVYUE9SVF9TWU1CT0xfR1BMKHN0X25jaV9yZW1vdmUpO1xuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYy0xNzQtXG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYz0yODM9dm9pZCBuZGxjX3JlbW92ZShzdHJ1Y3QgbGx0X25kbGMgKm5kbGMpXG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYy0yOTItXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jOjI5MzpcdHN0X25jaV9yZW1vdmUobmRsYy1cdTAwM2VuZGV2KTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjk0LVxuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaD0xMTQ9c3RydWN0IHN0X25jaV9pbmZvIHtcbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmgtMTIwLVxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oOjEyMTp2b2lkIHN0X25jaV9yZW1vdmUoc3RydWN0IG5jaV9kZXYgKm5kZXYpO1xuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oLTEyMi1pbnQgc3RfbmNpX3Byb2JlKHN0cnVjdCBsbHRfbmRsYyAqbmRsYywgaW50IHBoeV9oZWFkcm9vbSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTY1MQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIGdpdmVuIG15IGV4cGVydGlzZToKCioqQ2hlY2tpbmcgYHN0X25jaV9zZV9kZWluaXRgIFVzYWdlKioKCkFscmlnaHQsIEkmIzM5O20gemVyb2luZyBpbiBvbiB0aG9zZSBgc3RfbmNpX3JlbW92ZWAgYW5kIGBzdF9uY2lfc2VfZGVpbml0YCBmdW5jdGlvbnMuIE15IGltbWVkaWF0ZSBjb25jZXJuLCBhcyBhbHdheXMgd2hlbiBkZWFsaW5nIHdpdGggTkZDIHN0YWNrIGRlLWluaXRpYWxpemF0aW9uLCBpcyB0byBlbnN1cmUgdGhhdCBgc3RfbmNpX3NlX2RlaW5pdGAgaXNuJiMzOTt0IGJlaW5nIGNhbGxlZCBmcm9tIHNvbWUgdW5leHBlY3RlZCBsb2NhdGlvbiwgcG90ZW50aWFsbHkgbGVhZGluZyB0byByZXNvdXJjZSBjb25mbGljdHMgb3Igb3RoZXIgaXNzdWVzIEkgd291bGRuJiMzOTt0IHdhbnQgdG8gb2NjdXIuCgpNeSBpbnN0aW5jdCBub3cgaXMgdG8gcGVyZm9ybSBhIGNyb3NzLXJlZmVyZW5jZSBvbiB0aGlzIGZ1bmN0aW9uLiBJIG5lZWQgdG8gcXVpY2tseSBpZGVudGlmeSBhbGwgY2FsbCBzaXRlcyBvZiBgc3RfbmNpX3NlX2RlaW5pdGAgdG8gdW5kZXJzdGFuZCBob3cgaXQmIzM5O3MgYmVpbmcgdXNlZC4gQW55IHVuZXhwZWN0ZWQgb2NjdXJyZW5jZXMgaW1tZWRpYXRlbHkgd2FycmFudCBhIGRlZXAgZGl2ZTsgSSYjMzk7bSBsb29raW5nIGZvciBhIGNsZWFyIGFuZCB0cmFjZWFibGUgY2FsbCBmbG93LCBlc3BlY2lhbGx5IGluIGEgY29udGV4dCB0aGlzIGNyaXRpY2FsLiBPdmVybHkgY29tcGxleCBvciBpbmRpcmVjdCBkZXBlbmRlbmNpZXMgYXJlIGFuIGluc3RhbnQgcmVkIGZsYWcuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgcGFydCBvZiBtYWludGFpbmluZyB0aGUgc3lzdGVtJiMzOTtzIGludGVncml0eSwgYW5kIGFuIGFyZWEgSSB3aWxsIGJlIGNhcmVmdWwgaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAwOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0X25jaV9zZV9kZWluaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9zdC1uY2kvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM9MTYzPXZvaWQgc3RfbmNpX3JlbW92ZShzdHJ1Y3QgbmNpX2RldiAqbmRldilcbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jLTE2OC1cbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM6MTY5Olx0c3RfbmNpX3NlX2RlaW5pdChuZGV2KTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTcwLVx0bmNpX3VucmVnaXN0ZXJfZGV2aWNlKG5kZXYpO1xuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jPTc0OD1FWFBPUlRfU1lNQk9MKHN0X25jaV9zZV9pbml0KTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jLTc0OS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jOjc1MDp2b2lkIHN0X25jaV9zZV9kZWluaXQoc3RydWN0IG5jaV9kZXYgKm5kZXYpXG5kcml2ZXJzL25mYy9zdC1uY2kvc2UuYy03NTEte1xuLS1cbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jLTc1OS19XG5kcml2ZXJzL25mYy9zdC1uY2kvc2UuYzo3NjA6RVhQT1JUX1NZTUJPTChzdF9uY2lfc2VfZGVpbml0KTtcbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jLTc2MS1cbi0tXG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmg9MTI1PWludCBzdF9uY2lfc2VfaW5pdChzdHJ1Y3QgbmNpX2RldiAqbmRldiwgc3RydWN0IHN0X25jaV9zZV9zdGF0dXMgKnNlX3N0YXR1cyk7XG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmg6MTI2OnZvaWQgc3RfbmNpX3NlX2RlaW5pdChzdHJ1Y3QgbmNpX2RldiAqbmRldik7XG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmgtMTI3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMDoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NDA3CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgU1QtTkNJIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHN0cmFpZ2h0Zm9yd2FyZC4gTXkgaW5pdGlhbCByZWFkIHRlbGxzIG1lIGl0JiMzOTtzIGFkZGluZyBhIGBzdF9uY2lfc2VfZGVpbml0KG5kZXYpO2AgY2FsbCB3aXRoaW4gYHN0X25jaV9yZW1vdmUobmRldilgIGluIGBjb3JlLmNgLiAgRnVydGhlcm1vcmUsIGl0IHNlZW1zIGBzdF9uY2lfc2VfZGVpbml0YCBpdHNlbGYgaGFzIGJlZW4gbW9kaWZpZWQgd2l0aGluIGBzZS5jYC4gIFRoYXQgaW1tZWRpYXRlbHkgbmFycm93cyBteSBmb2N1czogYHN0X25jaV9yZW1vdmVgIGFuZCB0aGUgdXBkYXRlZCBgc3RfbmNpX3NlX2RlaW5pdGAgYXJlIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgaGVyZS4gVGhleSYjMzk7cmUgY2xlYXJseSB0aGUgZW50cnkgcG9pbnRzIHRvIHVuZGVyc3RhbmQgdGhlIGNoYW5nZXMuCgpJIG5lZWQgdG8gcXVpY2tseSBncmFzcCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBBaCwgdGhlIHBhdGNoIG1lbnRpb25zIGBORkNfU1RfTkNJYCwgYE5GQ19TVF9OQ0lfSTJDYCwgYW5kIGBORkNfU1RfTkNJX1NQSWAuIFdhaXQsIHRoZSBkZXBlbmRlbmN5IGxvZ2ljIGlzIGtleSAtIGl0IGxvb2tzIGxpa2UgYE5GQ19TVF9OQ0lgIGlzIHNlbGVjdGVkIHdoZW4gZWl0aGVyIGBORkNfU1RfTkNJX0kyQ2Agb3IgYE5GQ19TVF9OQ0lfU1BJYCBhcmUgZW5hYmxlZC4gUmlnaHQuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSBmb3IgdGhlIE5GQyBkcml2ZXIgaW4gdGhlIHJlbGV2YW50IGRpcmVjdG9yeSAoYGRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnYCkgdG8gY2xhcmlmeSB0aGVzZSByZWxhdGlvbnNoaXBzIGFuZCBhbnkgaW1wbGljYXRpb25zIHRoZXkgbWlnaHQgaGF2ZSBvbiB0aGUgY29kZS4gVGhpcyB3aWxsIHRlbGwgbWUgd2hlbiB0aGVzZSBmdW5jdGlvbnMgYXJlIGV2ZW4gcmVsZXZhbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAwOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O05GQ19TVF9OQ0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWc6Mjpjb25maWcgTkZDX1NUX05DSVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctOC1cbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnOjk6Y29uZmlnIE5GQ19TVF9OQ0lfSTJDXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0xMC1cdHRyaXN0YXRlIFwmIzM0O1NUTWljcm9lbGVjdHJvbmljcyBTVCBOQ0kgTkZDIGRyaXZlciAoSTJDKVwmIzM0O1xuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMTEtXHRkZXBlbmRzIG9uIE5GQ19OQ0kgXHUwMDI2XHUwMDI2IEkyQ1xuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWc6MTI6XHRzZWxlY3QgTkZDX1NUX05DSVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMTMtXHRoZWxwXG4tLVxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMjAtXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyMTpjb25maWcgTkZDX1NUX05DSV9TUElcbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnLTIyLVx0dHJpc3RhdGUgXCYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIFNUIE5DSSBORkMgZHJpdmVyIChTUEkpXCYjMzQ7XG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0yMy1cdGRlcGVuZHMgb24gTkZDX05DSSBcdTAwMjZcdTAwMjYgU1BJXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyNDpcdHNlbGVjdCBORkNfU1RfTkNJXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0yNS1cdGhlbHBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzMwNgoJCQkJCQkJb3V0cHV0OiAxNzYKCQkJCQkJCXRob3VnaHRzOiAxNDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgTkZDIERyaXZlciBDb25maWd1cmF0aW9uIGFuZCBGdXp6aW5nKioKCk9rYXksIGl0IGxvb2tzIGxpa2UgZW5hYmxpbmcgYE5GQ19TVF9OQ0lfSTJDYCBvciBgTkZDX1NUX05DSV9TUElgIGFyZSB0aGUga2V5IGNvbmZpZ3VyYXRpb25zIGhlcmUgdG8gZ2V0IHRoaXMgZHJpdmVyIGdvaW5nLiBCdXQgYmVmb3JlIEkgcHJvY2VlZCwgbGV0JiMzOTtzIGp1c3QgZG8gYSBxdWljayBzY2FuIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzOyBJJiMzOTtsbCBhbHNvIGVuc3VyZSBgTkZDX05DSWAgaXMgY29uZmlndXJlZCBhcyB3ZWxsLiBOb3csIEkgY2FuIGNvbmZpZGVudGx5IGNvbmZpcm0gdGhhdCBlbmFibGluZyBib3RoIGBORkNfU1RfTkNJX0kyQ2AgYW5kIGBORkNfU1RfTkNJX1NQSWAgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucy4KCk5vdywgYSBrZXkgcXVlc3Rpb246IGNhbiB0aGlzIGJlIGZ1enplZD8gWWVzLCBiYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nLCBzeXprYWxsZXIgaXMgcGVyZmVjdGx5IGNhcGFibGUgb2YgZnV6emluZyBJMkMgYW5kIFNQSSBkZXZpY2VzLCB3aGljaCBtYWtlcyB0aGlzIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZy4gVGhlIHBhdGNoIGl0c2VsZiBhZGRyZXNzZXMgYSB0aW1lciB0ZWFyZG93biBpc3N1ZS4gVGhpcyBpcyAqY3J1Y2lhbCogYmVjYXVzZSwgaWYgSSYjMzk7bSBpbnRlcnByZXRpbmcgdGhpcyBjb3JyZWN0bHksIGl0IHByZXZlbnRzIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBzY2VuYXJpb3Mgb3Igb3RoZXIgbWVtb3J5IGNvcnJ1cHRpb24gYnVncyB0aGF0IGNvdWxkIGFyaXNlIGR1cmluZyBkZXZpY2UgcmVtb3ZhbCDigJMgYSBjcml0aWNhbCB2dWxuZXJhYmlsaXR5LiBUaGUgaW1wbGljYXRpb25zIGZvciBzZWN1cml0eSBoZXJlIGFyZSBzaWduaWZpY2FudCwgYW5kIGZ1enppbmcgaXQgd2lsbCBkZWZpbml0ZWx5IGJlIHZhbHVhYmxlIGluIHRoZSBsb25nIHJ1bi4KCkFscmlnaHQsIEkmIzM5O20gcmVhZHkgdG8gcHJlcGFyZSB0aGUgbmVjZXNzYXJ5IHNldC1yZXN1bHRzIGNhbGwgdG8gZ2V0IHRoaXMgbW92aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMDoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZDX1NUX05DSV9JMkMmIzM0OywKICAgICYjMzQ7TkZDX1NUX05DSV9TUEkmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdF9uY2lfcmVtb3ZlJiMzNDssCiAgICAmIzM0O3N0X25jaV9zZV9kZWluaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSB0aW1lciB0ZWFyZG93biBpc3N1ZSBpbiB0aGUgU1QgTkNJIE5GQyBkcml2ZXIgZHVyaW5nIGRldmljZSByZW1vdmFsLiBJdCBtb2RpZmllcyBgc3RfbmNpX3JlbW92ZWAgdG8gcHJvcGVybHkgY2FsbCBgc3RfbmNpX3NlX2RlaW5pdGAgYW5kIHVwZGF0ZXMgYHN0X25jaV9zZV9kZWluaXRgIHRvIHVzZSBgdGltZXJfc2h1dGRvd25fc3luY2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHRpbWVyLXJlbGF0ZWQgYnVncyBvbiBkZXZpY2UgdW5yZWdpc3RyYXRpb24sIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgSTJDL1NQSSBkZXZpY2UgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZDX1NUX05DSV9JMkMmIzM0OywKICAgICYjMzQ7TkZDX1NUX05DSV9TUEkmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdF9uY2lfcmVtb3ZlJiMzNDssCiAgICAmIzM0O3N0X25jaV9zZV9kZWluaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSB0aW1lciB0ZWFyZG93biBpc3N1ZSBpbiB0aGUgU1QgTkNJIE5GQyBkcml2ZXIgZHVyaW5nIGRldmljZSByZW1vdmFsLiBJdCBtb2RpZmllcyBgc3RfbmNpX3JlbW92ZWAgdG8gcHJvcGVybHkgY2FsbCBgc3RfbmNpX3NlX2RlaW5pdGAgYW5kIHVwZGF0ZXMgYHN0X25jaV9zZV9kZWluaXRgIHRvIHVzZSBgdGltZXJfc2h1dGRvd25fc3luY2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHRpbWVyLXJlbGF0ZWQgYnVncyBvbiBkZXZpY2UgdW5yZWdpc3RyYXRpb24sIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgSTJDL1NQSSBkZXZpY2UgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjE3LjUxODAyNTUyM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5ODQ3NjU1OTk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GQ19TVF9OQ0lfSTJDXCIsXG4gICAgXCJORkNfU1RfTkNJX1NQSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInN0X25jaV9yZW1vdmVcIixcbiAgICBcInN0X25jaV9zZV9kZWluaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHRpbWVyIHRlYXJkb3duIGlzc3VlIGluIHRoZSBTVCBOQ0kgTkZDIGRyaXZlciBkdXJpbmcgZGV2aWNlIHJlbW92YWwuIEl0IG1vZGlmaWVzIGBzdF9uY2lfcmVtb3ZlYCB0byBwcm9wZXJseSBjYWxsIGBzdF9uY2lfc2VfZGVpbml0YCBhbmQgdXBkYXRlcyBgc3RfbmNpX3NlX2RlaW5pdGAgdG8gdXNlIGB0aW1lcl9zaHV0ZG93bl9zeW5jYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGZpeGluZyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgdGltZXItcmVsYXRlZCBidWdzIG9uIGRldmljZSB1bnJlZ2lzdHJhdGlvbiwgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSBJMkMvU1BJIGRldmljZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMDoxOToxNy41MTgwNDI0NzNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2NDYzNjk2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDhiZTI5MzNmNDQ2Y2QxOTY0N2QyYTVlOGMyNTY5YzE4MDRmMDFhODVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMjMgMDA6MTk6MTYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmNcXG5pbmRleCBhMzY3MTM2ZDQzMzBhMy4uNTdkYmM0YTk0YjI5MzIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuY1xcbisrKyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmNcXG5AQCAtMTY2LDYgKzE2Niw3IEBAIHZvaWQgc3RfbmNpX3JlbW92ZShzdHJ1Y3QgbmNpX2RldiAqbmRldilcXG4gXFxuIFxcdG5kbGNfY2xvc2UoaW5mby1cXHUwMDNlbmRsYyk7XFxuIFxcbitcXHRzdF9uY2lfc2VfZGVpbml0KG5kZXYpO1xcbiBcXHRuY2lfdW5yZWdpc3Rlcl9kZXZpY2UobmRldik7XFxuIFxcdG5jaV9mcmVlX2RldmljZShuZGV2KTtcXG4gfVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9zdC1uY2kvc2UuYyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9zZS5jXFxuaW5kZXggNjA3ZWM3NjhlYjdiNGMuLjhhYjE4Y2IyMzM4NmQ2IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmZjL3N0LW5jaS9zZS5jXFxuKysrIGIvZHJpdmVycy9uZmMvc3QtbmNpL3NlLmNcXG5AQCAtNzUxLDEwICs3NTEsOCBAQCB2b2lkIHN0X25jaV9zZV9kZWluaXQoc3RydWN0IG5jaV9kZXYgKm5kZXYpXFxuIHtcXG4gXFx0c3RydWN0IHN0X25jaV9pbmZvICppbmZvID0gbmNpX2dldF9kcnZkYXRhKG5kZXYpO1xcbiBcXG4tXFx0aWYgKGluZm8tXFx1MDAzZXNlX2luZm8uYndpX2FjdGl2ZSlcXG4tXFx0XFx0dGltZXJfZGVsZXRlX3N5bmMoXFx1MDAyNmluZm8tXFx1MDAzZXNlX2luZm8uYndpX3RpbWVyKTtcXG4tXFx0aWYgKGluZm8tXFx1MDAzZXNlX2luZm8uc2VfYWN0aXZlKVxcbi1cXHRcXHR0aW1lcl9kZWxldGVfc3luYyhcXHUwMDI2aW5mby1cXHUwMDNlc2VfaW5mby5zZV9hY3RpdmVfdGltZXIpO1xcbitcXHR0aW1lcl9zaHV0ZG93bl9zeW5jKFxcdTAwMjZpbmZvLVxcdTAwM2VzZV9pbmZvLmJ3aV90aW1lcik7XFxuK1xcdHRpbWVyX3NodXRkb3duX3N5bmMoXFx1MDAyNmluZm8tXFx1MDAzZXNlX2luZm8uc2VfYWN0aXZlX3RpbWVyKTtcXG4gXFxuIFxcdGluZm8tXFx1MDAzZXNlX2luZm8uc2VfYWN0aXZlID0gZmFsc2U7XFxuIFxcdGluZm8tXFx1MDAzZXNlX2luZm8uYndpX2FjdGl2ZSA9IGZhbHNlO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMDoxOToxNy44ODMyNTgwNTdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozOTQ4MjQxNTg3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORkNfU1RfTkNJX0kyQ1wiLFxuICAgIFwiTkZDX1NUX05DSV9TUElcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzdF9uY2lfcmVtb3ZlXCIsXG4gICAgXCJzdF9uY2lfc2VfZGVpbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSB0aW1lciB0ZWFyZG93biBpc3N1ZSBpbiB0aGUgU1QgTkNJIE5GQyBkcml2ZXIgZHVyaW5nIGRldmljZSByZW1vdmFsLiBJdCBtb2RpZmllcyBgc3RfbmNpX3JlbW92ZWAgdG8gcHJvcGVybHkgY2FsbCBgc3RfbmNpX3NlX2RlaW5pdGAgYW5kIHVwZGF0ZXMgYHN0X25jaV9zZV9kZWluaXRgIHRvIHVzZSBgdGltZXJfc2h1dGRvd25fc3luY2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHRpbWVyLXJlbGF0ZWQgYnVncyBvbiBkZXZpY2UgdW5yZWdpc3RyYXRpb24sIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgSTJDL1NQSSBkZXZpY2UgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4YmUyOTMzZjQ0NmNkMTk2NDdkMmE1ZThjMjU2OWMxODA0ZjAxYTg1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMDA6MTk6MTYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jIGIvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuY1xuaW5kZXggYTM2NzEzNmQ0MzMwYTMuLjU3ZGJjNGE5NGIyOTMyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuY1xuKysrIGIvZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuY1xuQEAgLTE2Niw2ICsxNjYsNyBAQCB2b2lkIHN0X25jaV9yZW1vdmUoc3RydWN0IG5jaV9kZXYgKm5kZXYpXG4gXG4gXHRuZGxjX2Nsb3NlKGluZm8tXHUwMDNlbmRsYyk7XG4gXG4rXHRzdF9uY2lfc2VfZGVpbml0KG5kZXYpO1xuIFx0bmNpX3VucmVnaXN0ZXJfZGV2aWNlKG5kZXYpO1xuIFx0bmNpX2ZyZWVfZGV2aWNlKG5kZXYpO1xuIH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9zdC1uY2kvc2UuYyBiL2RyaXZlcnMvbmZjL3N0LW5jaS9zZS5jXG5pbmRleCA2MDdlYzc2OGViN2I0Yy4uOGFiMThjYjIzMzg2ZDYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25mYy9zdC1uY2kvc2UuY1xuKysrIGIvZHJpdmVycy9uZmMvc3QtbmNpL3NlLmNcbkBAIC03NTEsMTAgKzc1MSw4IEBAIHZvaWQgc3RfbmNpX3NlX2RlaW5pdChzdHJ1Y3QgbmNpX2RldiAqbmRldilcbiB7XG4gXHRzdHJ1Y3Qgc3RfbmNpX2luZm8gKmluZm8gPSBuY2lfZ2V0X2RydmRhdGEobmRldik7XG4gXG4tXHRpZiAoaW5mby1cdTAwM2VzZV9pbmZvLmJ3aV9hY3RpdmUpXG4tXHRcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNmluZm8tXHUwMDNlc2VfaW5mby5id2lfdGltZXIpO1xuLVx0aWYgKGluZm8tXHUwMDNlc2VfaW5mby5zZV9hY3RpdmUpXG4tXHRcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNmluZm8tXHUwMDNlc2VfaW5mby5zZV9hY3RpdmVfdGltZXIpO1xuK1x0dGltZXJfc2h1dGRvd25fc3luYyhcdTAwMjZpbmZvLVx1MDAzZXNlX2luZm8uYndpX3RpbWVyKTtcbitcdHRpbWVyX3NodXRkb3duX3N5bmMoXHUwMDI2aW5mby1cdTAwM2VzZV9pbmZvLnNlX2FjdGl2ZV90aW1lcik7XG4gXG4gXHRpbmZvLVx1MDAzZXNlX2luZm8uc2VfYWN0aXZlID0gZmFsc2U7XG4gXHRpbmZvLVx1MDAzZXNlX2luZm8uYndpX2FjdGl2ZSA9IGZhbHNlO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDA6MTk6MTcuODgzMjU5Njg3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzYxNzk5NjEwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5GQyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgc2VlbXMgdG8gYmUgdG91Y2hpbmcgdGhlIE5GQyBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYHN0LW5jaWAgaW1wbGVtZW50YXRpb24uIE15IGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgdGhhdCBpdOKAmXMgbW9kaWZ5aW5nIGBkcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jYCBhbmQgYGRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jYC4gSXQncyBhZGRpbmcgYSBjYWxsIHRvIGBzdF9uY2lfc2VfZGVpbml0KG5kZXYpYCB3aXRoaW4gYHN0X25jaV9yZW1vdmUobmRldilgIGluIGBjb3JlLmNgLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gSXQgaW1wbGllcyBzb21lIG5lY2Vzc2FyeSBjbGVhbnVwIGFmdGVyIHRoZSBkZXZpY2UgaXMgcmVtb3ZlZCwgbGlrZWx5IHJlbGF0ZWQgdG8gc2VjdXJlIGVsZW1lbnQgKFNFKSBmdW5jdGlvbmFsaXR5LlxuXG5UaGUgY2hhbmdlcyBpbiBgc2UuY2AgYXJlIGFsc28gbm90ZXdvcnRoeS4gVGhleeKAmXZlIHN3YXBwZWQgb3V0IGB0aW1lcl9kZWxldGVfc3luY2AgZm9yIGB0aW1lcl9zaHV0ZG93bl9zeW5jYCBpbiBgc3RfbmNpX3NlX2RlaW5pdGAsIHdoaWNoIG1lYW5zIGEgbW9yZSByb2J1c3QgdGltZXIgZGVhY3RpdmF0aW9uIHN0cmF0ZWd5IGlzIGJlaW5nIGltcGxlbWVudGVkLiBGdXJ0aGVybW9yZSwgdGhlIGNvbmRpdGlvbmFsIGNoZWNrcyBmb3IgYGluZm8tXHUwMDNlc2VfaW5mby5id2lfYWN0aXZlYCBhbmQgYGluZm8tXHUwMDNlc2VfaW5mby5zZV9hY3RpdmVgIGhhdmUgYmVlbiByZW1vdmVkLiBUaGlzIHN1Z2dlc3RzIHRoZSBkZS1pbml0aWFsaXphdGlvbiBwcm9jZXNzIG5vdyBuZWVkcyB0byBiZSBwZXJmb3JtZWQgdW5jb25kaXRpb25hbGx5LlxuXG5UbyBnZXQgYSBoYW5kbGUgb24gdGhpcywgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZXNlIGZpbGVzIGFyZSBwYXJ0IG9mIHRoZSBidWlsZCBhbmQgd2hhdCBjb25maWd1cmF0aW9ucyBhcmUgcmVxdWlyZWQgZm9yIHRoaXMgZHJpdmVyIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBrZXJuZWwuIEnigJlsbCBzdGFydCBieSBkb3VibGUtY2hlY2tpbmcgdGhlIGZpbGUgcGF0aHMgYW5kIGRyaXZlciBuYW1lLCBjb25maXJtaW5nIHRoYXQgd2UncmUgZGVhbGluZyB3aXRoIHRoZSBgc3QtbmNpYCBkcml2ZXIuIEZyb20gdGhlcmUsIEknbGwgbmVlZCB0byBsb2NhdGUgdGhlIGBzdF9uY2lfcmVtb3ZlYCBmdW5jdGlvbiB3aXRoaW4gdGhlIGNvZGUgdG8gZnVsbHkgdW5kZXJzdGFuZCBob3cgdGhpcyBkZS1pbml0IGNhbGwgZml0cyBpbnRvIHRoZSBvdmVyYWxsIGRyaXZlciBsaWZlY3ljbGUuIFRoZSBjaGFuZ2VzIGltcGx5IGEgbW9yZSByb2J1c3QgZGUtaW5pdCBzdHJhdGVneSBpcyBiZWluZyBlbXBsb3llZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE5OSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxOCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjI1LjUwMTI1Nzk3NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODE5NTE0NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdF9uY2lfcmVtb3ZlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmZjL3N0LW5jaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYz0xNjE9RVhQT1JUX1NZTUJPTF9HUEwoc3RfbmNpX3Byb2JlKTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jLTE2Mi1cXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jOjE2Mzp2b2lkIHN0X25jaV9yZW1vdmUoc3RydWN0IG5jaV9kZXYgKm5kZXYpXFxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYy0xNjQte1xcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYy0xNzItfVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM6MTczOkVYUE9SVF9TWU1CT0xfR1BMKHN0X25jaV9yZW1vdmUpO1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTc0LVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYz0yODM9dm9pZCBuZGxjX3JlbW92ZShzdHJ1Y3QgbGx0X25kbGMgKm5kbGMpXFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jLTI5Mi1cXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jOjI5MzpcXHRzdF9uY2lfcmVtb3ZlKG5kbGMtXFx1MDAzZW5kZXYpO1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjk0LVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oPTExND1zdHJ1Y3Qgc3RfbmNpX2luZm8ge1xcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oLTEyMC1cXG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmg6MTIxOnZvaWQgc3RfbmNpX3JlbW92ZShzdHJ1Y3QgbmNpX2RldiAqbmRldik7XFxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oLTEyMi1pbnQgc3RfbmNpX3Byb2JlKHN0cnVjdCBsbHRfbmRsYyAqbmRsYywgaW50IHBoeV9oZWFkcm9vbSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDA6MTk6MjUuNTU5NDU1OTYyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzIxOTkzNzM4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGlzIGNvZGU6XG5cbioqQW5hbHl6aW5nIHRoZSBGdW5jdGlvbiBDYWxsIEhpZXJhcmNoeSoqXG5cbk9rYXksIHNvIEknbSBzZWVpbmcgYHN0X25jaV9yZW1vdmVgIGNhbGxlZCBmcm9tIGBuZGxjX3JlbW92ZWAuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhlcmUncyBhIGRlcGVuZGVuY3ksIGEgcmVsYXRpb25zaGlwIGhlcmUgSSBuZWVkIHRvIHVuZGVyc3RhbmQuIE15IGJyYWluJ3MgYWxyZWFkeSBzdGFydGluZyB0byBtYXAgdGhlIGNhbGwgc3RhY2suIFRoZSBjcnVjaWFsIHRoaW5nIGhlcmUgaXMgdG8gc2VlIGhvdyB0aG9zZSB0d28gYXJlIHJlbGF0ZWQuXG5cbk5vdywgaW5zdGVhZCBvZiBqdXN0IHJlYWRpbmcgYmxpbmRseSwgSSBuZWVkIGNvbnRleHQhIFdoZXJlIGlzIGBuZGxjX3JlbW92ZWAgZGVmaW5lZD8gV2hhdCBpcyBpdHMgcHVycG9zZT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB1cHN0cmVhbSBwcm9jZXNzIGlzIHJlcXVlc3RpbmcgdGhlIHJlbW92YWwsIHdoaWNoIHJlcXVpcmVzIHVuZGVyc3RhbmRpbmcgdGhlIGNhbGxpbmcgZnVuY3Rpb24sIGBuZGxjX3JlbW92ZWAuXG5MZXQncyBzZWFyY2ggZm9yIGBuZGxjX3JlbW92ZWAgYW5kIHNlZSB3aGF0IGNvbWVzIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjY3LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDA6MTk6MjguNzc5Mzk1NzgzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3NzM0OTY2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5kbGNfcmVtb3ZlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmZjL3N0LW5jaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvc3QtbmNpL2kyYy5jPTI1Mj1zdGF0aWMgdm9pZCBzdF9uY2lfaTJjX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL2kyYy5jLTI1NS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvaTJjLmM6MjU2OlxcdG5kbGNfcmVtb3ZlKHBoeS1cXHUwMDNlbmRsYyk7XFxuZHJpdmVycy9uZmMvc3QtbmNpL2kyYy5jLTI1Ny19XFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jPTI4MT1FWFBPUlRfU1lNQk9MKG5kbGNfcHJvYmUpO1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjgyLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmM6MjgzOnZvaWQgbmRsY19yZW1vdmUoc3RydWN0IGxsdF9uZGxjICpuZGxjKVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjg0LXtcXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmMtMjk3LX1cXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jOjI5ODpFWFBPUlRfU1lNQk9MKG5kbGNfcmVtb3ZlKTtcXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmg9NDg9aW50IG5kbGNfcHJvYmUodm9pZCAqcGh5X2lkLCBjb25zdCBzdHJ1Y3QgbmZjX3BoeV9vcHMgKnBoeV9vcHMsXFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5oLTUwLVxcdCAgICAgICBzdHJ1Y3QgbGx0X25kbGMgKipuZGxjX2lkLCBzdHJ1Y3Qgc3RfbmNpX3NlX3N0YXR1cyAqc2Vfc3RhdHVzKTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5oOjUxOnZvaWQgbmRsY19yZW1vdmUoc3RydWN0IGxsdF9uZGxjICpuZGxjKTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5oLTUyLSNlbmRpZiAvKiBfX0xPQ0FMX05ETENfSF9fICovXFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvc3BpLmM9MjY2PXN0YXRpYyB2b2lkIHN0X25jaV9zcGlfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvc3BpLmMtMjY5LVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9zcGkuYzoyNzA6XFx0bmRsY19yZW1vdmUocGh5LVxcdTAwM2VuZGxjKTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvc3BpLmMtMjcxLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDA6MTk6MjguODM3MTQ1OTA5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUwNDg5NzM2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiBORkMgRHJpdmVyIFJlbW92YWwqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGUgY2xlYW51cCBwcm9jZWR1cmUgZm9yIHRoaXMgU1RNaWNyb2VsZWN0cm9uaWNzIE5GQyBkcml2ZXIuIEl0J3MgY2FsbGVkIHdoZW4gZWl0aGVyIGBzdF9uY2lfaTJjX3JlbW92ZWAgb3IgYHN0X25jaV9zcGlfcmVtb3ZlYCBpcyB0cmlnZ2VyZWQsIHdoaWNoIG1ha2VzIHNlbnNlLiBXZSdyZSBkZWFsaW5nIHdpdGggdGhlIHJlbW92YWwgcHJvY2VzcyBvZiBhIGRldmljZSByZWdpc3RlcmVkIHRocm91Z2ggZWl0aGVyIEkyQyBvciBTUEksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyBoYXBwZW5pbmcgZHVyaW5nIHRoZSB1bnJlZ2lzdHJhdGlvbi4gVGhlIHF1ZXN0aW9uIGlzLCBjYW4gdGhpcyBjb2RlIHBhdGggZXZlbiBiZSByZWFjaGVkPyBUaGUgYW5zd2VyIGlzIHllcywgYXMgaXQgaXMgcmVhY2hlZCB2aWEgSTJDIG9yIFNQSSBkZXZpY2UgdW5yZWdpc3RyYXRpb24uIFdoYXQgYXJlIHRoZSBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb25zIHRvIGJlIGF3YXJlIG9mPyBUaGF0J3Mgd2hhdCBJIG5lZWQgdG8gZGlnIGludG8gbmV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA1MCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjMyLjM0MjA0NTU4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3Mzg0NzM2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBORkNfU1RfTkNJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmZjL3N0LW5jaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyOmNvbmZpZyBORkNfU1RfTkNJXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctOC1cXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzo5OmNvbmZpZyBORkNfU1RfTkNJX0kyQ1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnLTEwLVxcdHRyaXN0YXRlIFxcXCJTVE1pY3JvZWxlY3Ryb25pY3MgU1QgTkNJIE5GQyBkcml2ZXIgKEkyQylcXFwiXFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0yMC1cXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyMTpjb25maWcgTkZDX1NUX05DSV9TUElcXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0yMi1cXHR0cmlzdGF0ZSBcXFwiU1RNaWNyb2VsZWN0cm9uaWNzIFNUIE5DSSBORkMgZHJpdmVyIChTUEkpXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMDoxOTozMi4zOTk0MzQxMjZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NzA1Mjg5NTI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhdGNoOiBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXRzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIEkgc2VlIGl0J3MgZGVhbGluZyB3aXRoIGNvbmZpZ3VyYXRpb25zIHJlbGF0ZWQgdG8gTkZDOiBzcGVjaWZpY2FsbHkgYE5GQ19TVF9OQ0lgLCBgTkZDX1NUX05DSV9JMkNgLCBhbmQgYE5GQ19TVF9OQ0lfU1BJYC4gSXQgc2VlbXMgbGlrZSB0aGUgY29yZSBpc3N1ZSBpcyBhIHRpbWVyIHRlYXJkb3duIGJ1ZyBpbiBgc3RfbmNpX3JlbW92ZWAuIFRoZSBmaXggaW52b2x2ZXMgY2FsbGluZyBgc3RfbmNpX3NlX2RlaW5pdGAgYW5kIHRoZW4gdXNpbmcgYHRpbWVyX3NodXRkb3duX3N5bmNgLiBUaGlzIGlzIGEgY2xlYXIgZnVuY3Rpb25hbCBjaGFuZ2UsIGFpbWVkIGF0IGEgYnVnIGluIHRoZSBkcml2ZXIgcmVtb3ZhbCBwcm9jZXNzLCB3aGljaCBpcyBwcmV0dHkgY3JpdGljYWwuXG5cblRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gdGhhdCBwb3BzIGludG8gbXkgaGVhZCBpcywgXCJJcyB0aGlzIHdvcnRoIGZ1enppbmc/XCIgQWJzb2x1dGVseS4gQ29uc2lkZXJpbmcgdGhlIGZpeCBpcyBpbiB0aGUgZHJpdmVyIHJlbW92YWwgcGF0aCwgZnV6emluZyB0aGUgSTJDIGFuZCBTUEkgZGV2aWNlIHJlZ2lzdHJhdGlvbiBhbmQgdW5yZWdpc3RyYXRpb24gaXMgbGlrZWx5IHRvIGV4cG9zZSB0aGlzIGJ1Zy4gSXQgbWFrZXMgcGVyZmVjdCBzZW5zZSB0byB0ZXN0IHRoZSBlZGdlIGNhc2VzIGhlcmUuXG5cbldhaXQgYSBtaW51dGUsIGNhbiB0aGlzIGV2ZW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBZZXMsIEkgY2FuIHVzZSBzeXprYWxsZXIgdG8gdGFyZ2V0IHRoaXMuIEl0IGNhbiBmdXp6IEkyQyBhbmQgU1BJIGRldmljZXMgd2l0aCB0aGUgcHNldWRvLWRldmljZXMgdGhhdCBpdCB1c2VzLCBvciB3aXRoIGRpcmVjdCB0cmFmZmljLiBUaGF0J3MgYSBnb29kIHNpZ24sIGFuZCBhIHN0cm9uZyBhcmd1bWVudCB0byBmdXp6IHRoaXMuXG5cbk5vdywgdGhvc2UgYE5GQ19TVF9OQ0lfSTJDYCBhbmQgYE5GQ19TVF9OQ0lfU1BJYCBjb25maWd1cmF0aW9ucyBhcmUgdHJpc3RhdGUuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB0YWtlIHRob3NlIGludG8gYWNjb3VudCBkdXJpbmcgdGhlIGZ1enppbmcuXG5cbk15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGRpdmUgZGVlcGVyIGludG8gYHN0X25jaV9zZV9kZWluaXRgIGFuZCBgc3RfbmNpX3JlbW92ZWAuIEknbSBnb2luZyB0byBsb29rIGZvciBhbnkgc3BlY2lmaWMgZnVuY3Rpb25zIG9yIGFyZWFzIHRoYXQgc2VlbSBwYXJ0aWN1bGFybHkgdnVsbmVyYWJsZSBvciBpbnRlcmVzdGluZyBmb3IgZnV6emluZy4gSSBuZWVkIHRvIGdldCBhIHJlYWxseSBnb29kIGhhbmRsZSBvbiB3aGVyZSB0aGUgYnVnIGxpZXMgYW5kIHdoYXQgY291bGQgdHJpZ2dlciBpdC4gVGhpcyB3aWxsIGhlbHAgbWUgc2V0IHVwIGZvY3VzZWQgZnV6emluZyB0YXJnZXRzIGFuZCByZWR1Y2UgZmFsc2UgcG9zaXRpdmVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTQwLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjM5LjEwNDcyNTg5OVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTkzNDExMjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RfbmNpX3JlbW92ZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25mYy9zdC1uY2kvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmM9MTYxPUVYUE9SVF9TWU1CT0xfR1BMKHN0X25jaV9wcm9iZSk7XFxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYy0xNjItXFxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYzoxNjM6dm9pZCBzdF9uY2lfcmVtb3ZlKHN0cnVjdCBuY2lfZGV2ICpuZGV2KVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTY0LXtcXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9jb3JlLmMtMTcyLX1cXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jOjE3MzpFWFBPUlRfU1lNQk9MX0dQTChzdF9uY2lfcmVtb3ZlKTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jLTE3NC1cXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9uZGxjLmM9MjgzPXZvaWQgbmRsY19yZW1vdmUoc3RydWN0IGxsdF9uZGxjICpuZGxjKVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYy0yOTItXFxuZHJpdmVycy9uZmMvc3QtbmNpL25kbGMuYzoyOTM6XFx0c3RfbmNpX3JlbW92ZShuZGxjLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvbmRsYy5jLTI5NC1cXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaD0xMTQ9c3RydWN0IHN0X25jaV9pbmZvIHtcXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaC0xMjAtXFxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oOjEyMTp2b2lkIHN0X25jaV9yZW1vdmUoc3RydWN0IG5jaV9kZXYgKm5kZXYpO1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaC0xMjItaW50IHN0X25jaV9wcm9iZShzdHJ1Y3QgbGx0X25kbGMgKm5kbGMsIGludCBwaHlfaGVhZHJvb20sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjM5LjE2NDA3NDUxNVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTY4MDI2ODk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93biBtZW50YWwgcHJvY2VzcywgZ2l2ZW4gbXkgZXhwZXJ0aXNlOlxuXG4qKkNoZWNraW5nIGBzdF9uY2lfc2VfZGVpbml0YCBVc2FnZSoqXG5cbkFscmlnaHQsIEknbSB6ZXJvaW5nIGluIG9uIHRob3NlIGBzdF9uY2lfcmVtb3ZlYCBhbmQgYHN0X25jaV9zZV9kZWluaXRgIGZ1bmN0aW9ucy4gTXkgaW1tZWRpYXRlIGNvbmNlcm4sIGFzIGFsd2F5cyB3aGVuIGRlYWxpbmcgd2l0aCBORkMgc3RhY2sgZGUtaW5pdGlhbGl6YXRpb24sIGlzIHRvIGVuc3VyZSB0aGF0IGBzdF9uY2lfc2VfZGVpbml0YCBpc24ndCBiZWluZyBjYWxsZWQgZnJvbSBzb21lIHVuZXhwZWN0ZWQgbG9jYXRpb24sIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gcmVzb3VyY2UgY29uZmxpY3RzIG9yIG90aGVyIGlzc3VlcyBJIHdvdWxkbid0IHdhbnQgdG8gb2NjdXIuXG5cbk15IGluc3RpbmN0IG5vdyBpcyB0byBwZXJmb3JtIGEgY3Jvc3MtcmVmZXJlbmNlIG9uIHRoaXMgZnVuY3Rpb24uIEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IGFsbCBjYWxsIHNpdGVzIG9mIGBzdF9uY2lfc2VfZGVpbml0YCB0byB1bmRlcnN0YW5kIGhvdyBpdCdzIGJlaW5nIHVzZWQuIEFueSB1bmV4cGVjdGVkIG9jY3VycmVuY2VzIGltbWVkaWF0ZWx5IHdhcnJhbnQgYSBkZWVwIGRpdmU7IEknbSBsb29raW5nIGZvciBhIGNsZWFyIGFuZCB0cmFjZWFibGUgY2FsbCBmbG93LCBlc3BlY2lhbGx5IGluIGEgY29udGV4dCB0aGlzIGNyaXRpY2FsLiBPdmVybHkgY29tcGxleCBvciBpbmRpcmVjdCBkZXBlbmRlbmNpZXMgYXJlIGFuIGluc3RhbnQgcmVkIGZsYWcuIEl0J3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIG1haW50YWluaW5nIHRoZSBzeXN0ZW0ncyBpbnRlZ3JpdHksIGFuZCBhbiBhcmVhIEkgd2lsbCBiZSBjYXJlZnVsIGluLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NjUxLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDA6MTk6NDMuMTMyMTAzNjkzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTU4MzM1NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdF9uY2lfc2VfZGVpbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmZjL3N0LW5jaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYz0xNjM9dm9pZCBzdF9uY2lfcmVtb3ZlKHN0cnVjdCBuY2lfZGV2ICpuZGV2KVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYy0xNjgtXFxuZHJpdmVycy9uZmMvc3QtbmNpL2NvcmUuYzoxNjk6XFx0c3RfbmNpX3NlX2RlaW5pdChuZGV2KTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvY29yZS5jLTE3MC1cXHRuY2lfdW5yZWdpc3Rlcl9kZXZpY2UobmRldik7XFxuLS1cXG5kcml2ZXJzL25mYy9zdC1uY2kvc2UuYz03NDg9RVhQT1JUX1NZTUJPTChzdF9uY2lfc2VfaW5pdCk7XFxuZHJpdmVycy9uZmMvc3QtbmNpL3NlLmMtNzQ5LVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jOjc1MDp2b2lkIHN0X25jaV9zZV9kZWluaXQoc3RydWN0IG5jaV9kZXYgKm5kZXYpXFxuZHJpdmVycy9uZmMvc3QtbmNpL3NlLmMtNzUxLXtcXG4tLVxcbmRyaXZlcnMvbmZjL3N0LW5jaS9zZS5jLTc1OS19XFxuZHJpdmVycy9uZmMvc3QtbmNpL3NlLmM6NzYwOkVYUE9SVF9TWU1CT0woc3RfbmNpX3NlX2RlaW5pdCk7XFxuZHJpdmVycy9uZmMvc3QtbmNpL3NlLmMtNzYxLVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL3N0LW5jaS5oPTEyNT1pbnQgc3RfbmNpX3NlX2luaXQoc3RydWN0IG5jaV9kZXYgKm5kZXYsIHN0cnVjdCBzdF9uY2lfc2Vfc3RhdHVzICpzZV9zdGF0dXMpO1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9zdC1uY2kuaDoxMjY6dm9pZCBzdF9uY2lfc2VfZGVpbml0KHN0cnVjdCBuY2lfZGV2ICpuZGV2KTtcXG5kcml2ZXJzL25mYy9zdC1uY2kvc3QtbmNpLmgtMTI3LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMDoxOTo0My4xODc2OTI3ODlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzg1MTc5NzE2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNULU5DSSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHN0cmFpZ2h0Zm9yd2FyZC4gTXkgaW5pdGlhbCByZWFkIHRlbGxzIG1lIGl0J3MgYWRkaW5nIGEgYHN0X25jaV9zZV9kZWluaXQobmRldik7YCBjYWxsIHdpdGhpbiBgc3RfbmNpX3JlbW92ZShuZGV2KWAgaW4gYGNvcmUuY2AuICBGdXJ0aGVybW9yZSwgaXQgc2VlbXMgYHN0X25jaV9zZV9kZWluaXRgIGl0c2VsZiBoYXMgYmVlbiBtb2RpZmllZCB3aXRoaW4gYHNlLmNgLiAgVGhhdCBpbW1lZGlhdGVseSBuYXJyb3dzIG15IGZvY3VzOiBgc3RfbmNpX3JlbW92ZWAgYW5kIHRoZSB1cGRhdGVkIGBzdF9uY2lfc2VfZGVpbml0YCBhcmUgdGhlIGNyaXRpY2FsIGZ1bmN0aW9ucyBoZXJlLiBUaGV5J3JlIGNsZWFybHkgdGhlIGVudHJ5IHBvaW50cyB0byB1bmRlcnN0YW5kIHRoZSBjaGFuZ2VzLlxuXG5JIG5lZWQgdG8gcXVpY2tseSBncmFzcCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBBaCwgdGhlIHBhdGNoIG1lbnRpb25zIGBORkNfU1RfTkNJYCwgYE5GQ19TVF9OQ0lfSTJDYCwgYW5kIGBORkNfU1RfTkNJX1NQSWAuIFdhaXQsIHRoZSBkZXBlbmRlbmN5IGxvZ2ljIGlzIGtleSAtIGl0IGxvb2tzIGxpa2UgYE5GQ19TVF9OQ0lgIGlzIHNlbGVjdGVkIHdoZW4gZWl0aGVyIGBORkNfU1RfTkNJX0kyQ2Agb3IgYE5GQ19TVF9OQ0lfU1BJYCBhcmUgZW5hYmxlZC4gUmlnaHQuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlIGZvciB0aGUgTkZDIGRyaXZlciBpbiB0aGUgcmVsZXZhbnQgZGlyZWN0b3J5IChgZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWdgKSB0byBjbGFyaWZ5IHRoZXNlIHJlbGF0aW9uc2hpcHMgYW5kIGFueSBpbXBsaWNhdGlvbnMgdGhleSBtaWdodCBoYXZlIG9uIHRoZSBjb2RlLiBUaGlzIHdpbGwgdGVsbCBtZSB3aGVuIHRoZXNlIGZ1bmN0aW9ucyBhcmUgZXZlbiByZWxldmFudC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjQwNywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMDoxOTo1MS4wMzk0OTIxMDJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1NzA2Njc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk5GQ19TVF9OQ0lcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzoyOmNvbmZpZyBORkNfU1RfTkNJXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctOC1cXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZzo5OmNvbmZpZyBORkNfU1RfTkNJX0kyQ1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnLTEwLVxcdHRyaXN0YXRlIFxcXCJTVE1pY3JvZWxlY3Ryb25pY3MgU1QgTkNJIE5GQyBkcml2ZXIgKEkyQylcXFwiXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMTEtXFx0ZGVwZW5kcyBvbiBORkNfTkNJIFxcdTAwMjZcXHUwMDI2IEkyQ1xcbmRyaXZlcnMvbmZjL3N0LW5jaS9LY29uZmlnOjEyOlxcdHNlbGVjdCBORkNfU1RfTkNJXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMTMtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMjAtXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWc6MjE6Y29uZmlnIE5GQ19TVF9OQ0lfU1BJXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWctMjItXFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBTVCBOQ0kgTkZDIGRyaXZlciAoU1BJKVxcXCJcXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0yMy1cXHRkZXBlbmRzIG9uIE5GQ19OQ0kgXFx1MDAyNlxcdTAwMjYgU1BJXFxuZHJpdmVycy9uZmMvc3QtbmNpL0tjb25maWc6MjQ6XFx0c2VsZWN0IE5GQ19TVF9OQ0lcXG5kcml2ZXJzL25mYy9zdC1uY2kvS2NvbmZpZy0yNS1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjUxLjA5NTIwMzY2N1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTg3NzU3ODQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIE5GQyBEcml2ZXIgQ29uZmlndXJhdGlvbiBhbmQgRnV6emluZyoqXG5cbk9rYXksIGl0IGxvb2tzIGxpa2UgZW5hYmxpbmcgYE5GQ19TVF9OQ0lfSTJDYCBvciBgTkZDX1NUX05DSV9TUElgIGFyZSB0aGUga2V5IGNvbmZpZ3VyYXRpb25zIGhlcmUgdG8gZ2V0IHRoaXMgZHJpdmVyIGdvaW5nLiBCdXQgYmVmb3JlIEkgcHJvY2VlZCwgbGV0J3MganVzdCBkbyBhIHF1aWNrIHNjYW4gdG8gbWFrZSBzdXJlIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgbmVjZXNzYXJ5IGRlcGVuZGVuY2llczsgSSdsbCBhbHNvIGVuc3VyZSBgTkZDX05DSWAgaXMgY29uZmlndXJlZCBhcyB3ZWxsLiBOb3csIEkgY2FuIGNvbmZpZGVudGx5IGNvbmZpcm0gdGhhdCBlbmFibGluZyBib3RoIGBORkNfU1RfTkNJX0kyQ2AgYW5kIGBORkNfU1RfTkNJX1NQSWAgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucy5cblxuTm93LCBhIGtleSBxdWVzdGlvbjogY2FuIHRoaXMgYmUgZnV6emVkPyBZZXMsIGJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcsIHN5emthbGxlciBpcyBwZXJmZWN0bHkgY2FwYWJsZSBvZiBmdXp6aW5nIEkyQyBhbmQgU1BJIGRldmljZXMsIHdoaWNoIG1ha2VzIHRoaXMgcGFydGljdWxhcmx5IGludGVyZXN0aW5nLiBUaGUgcGF0Y2ggaXRzZWxmIGFkZHJlc3NlcyBhIHRpbWVyIHRlYXJkb3duIGlzc3VlLiBUaGlzIGlzICpjcnVjaWFsKiBiZWNhdXNlLCBpZiBJJ20gaW50ZXJwcmV0aW5nIHRoaXMgY29ycmVjdGx5LCBpdCBwcmV2ZW50cyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgc2NlbmFyaW9zIG9yIG90aGVyIG1lbW9yeSBjb3JydXB0aW9uIGJ1Z3MgdGhhdCBjb3VsZCBhcmlzZSBkdXJpbmcgZGV2aWNlIHJlbW92YWwg4oCTIGEgY3JpdGljYWwgdnVsbmVyYWJpbGl0eS4gVGhlIGltcGxpY2F0aW9ucyBmb3Igc2VjdXJpdHkgaGVyZSBhcmUgc2lnbmlmaWNhbnQsIGFuZCBmdXp6aW5nIGl0IHdpbGwgZGVmaW5pdGVseSBiZSB2YWx1YWJsZSBpbiB0aGUgbG9uZyBydW4uXG5cbkFscmlnaHQsIEknbSByZWFkeSB0byBwcmVwYXJlIHRoZSBuZWNlc3Nhcnkgc2V0LXJlc3VsdHMgY2FsbCB0byBnZXQgdGhpcyBtb3ZpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczMDYsIk91dHB1dFRva2VucyI6MTc2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAwOjE5OjU3LjI4Mjk2MzI5OFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgyNzA3OTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORkNfU1RfTkNJX0kyQ1wiLFxuICAgIFwiTkZDX1NUX05DSV9TUElcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzdF9uY2lfcmVtb3ZlXCIsXG4gICAgXCJzdF9uY2lfc2VfZGVpbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSB0aW1lciB0ZWFyZG93biBpc3N1ZSBpbiB0aGUgU1QgTkNJIE5GQyBkcml2ZXIgZHVyaW5nIGRldmljZSByZW1vdmFsLiBJdCBtb2RpZmllcyBgc3RfbmNpX3JlbW92ZWAgdG8gcHJvcGVybHkgY2FsbCBgc3RfbmNpX3NlX2RlaW5pdGAgYW5kIHVwZGF0ZXMgYHN0X25jaV9zZV9kZWluaXRgIHRvIHVzZSBgdGltZXJfc2h1dGRvd25fc3luY2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHRpbWVyLXJlbGF0ZWQgYnVncyBvbiBkZXZpY2UgdW5yZWdpc3RyYXRpb24sIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgSTJDL1NQSSBkZXZpY2UgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORkNfU1RfTkNJX0kyQ1wiLFxuICAgIFwiTkZDX1NUX05DSV9TUElcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzdF9uY2lfcmVtb3ZlXCIsXG4gICAgXCJzdF9uY2lfc2VfZGVpbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSB0aW1lciB0ZWFyZG93biBpc3N1ZSBpbiB0aGUgU1QgTkNJIE5GQyBkcml2ZXIgZHVyaW5nIGRldmljZSByZW1vdmFsLiBJdCBtb2RpZmllcyBgc3RfbmNpX3JlbW92ZWAgdG8gcHJvcGVybHkgY2FsbCBgc3RfbmNpX3NlX2RlaW5pdGAgYW5kIHVwZGF0ZXMgYHN0X25jaV9zZV9kZWluaXRgIHRvIHVzZSBgdGltZXJfc2h1dGRvd25fc3luY2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHRpbWVyLXJlbGF0ZWQgYnVncyBvbiBkZXZpY2UgdW5yZWdpc3RyYXRpb24sIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgSTJDL1NQSSBkZXZpY2UgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowp8v28[1] Phase: Succeeded StartedAt: 2026-07-23 00:20:21 +0000 UTC FinishedAt: 2026-07-23 00:20:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-23 00:20:21 +0000 UTC FinishedAt: 2026-07-23 00:20:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2] Phase: Succeeded StartedAt: 2026-07-23 00:20:21 +0000 UTC FinishedAt: 2026-07-23 02:45:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-23 00:20:21 +0000 UTC FinishedAt: 2026-07-23 02:45:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-23 00:20:21 +0000 UTC FinishedAt: 2026-07-23 00:20:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-23 00:20:21 +0000 UTC FinishedAt: 2026-07-23 00:20:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowp8v28/series-workflowp8v28-convert-artifact-2629987014/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-23 00:20:31 +0000 UTC FinishedAt: 2026-07-23 01:01:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-23 00:20:31 +0000 UTC FinishedAt: 2026-07-23 01:01:25 +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:*1ceda7a8-c7f9-4320-8c2d-2d30cf460b5d,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-workflowp8v28/series-workflowp8v28-convert-artifact-2629987014/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": "24a1336c-5d9b-49e7-afde-381696ca8ab5", "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-workflowp8v28/series-workflowp8v28-build-action-3903797340/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-23 00:20:31 +0000 UTC FinishedAt: 2026-07-23 01:01:15 +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:*1ceda7a8-c7f9-4320-8c2d-2d30cf460b5d,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-workflowp8v28/series-workflowp8v28-convert-artifact-2629987014/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": "24a1336c-5d9b-49e7-afde-381696ca8ab5", "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-workflowp8v28/series-workflowp8v28-build-action-3903797340/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-23 01:01:25 +0000 UTC FinishedAt: 2026-07-23 01:01:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-23 01:01:25 +0000 UTC FinishedAt: 2026-07-23 01:01:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-23 01:01:25 +0000 UTC FinishedAt: 2026-07-23 01:01:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-23 01:01:25 +0000 UTC FinishedAt: 2026-07-23 01:01:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowp8v28/series-workflowp8v28-convert-artifact-3649363737/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-23 01:01:46 +0000 UTC FinishedAt: 2026-07-23 01:03:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-23 01:01:46 +0000 UTC FinishedAt: 2026-07-23 01:03:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*24a1336c-5d9b-49e7-afde-381696ca8ab5,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-workflowp8v28/series-workflowp8v28-build-action-3903797340/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-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-23 01:03:48 +0000 UTC FinishedAt: 2026-07-23 01:03:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-23 01:03:48 +0000 UTC FinishedAt: 2026-07-23 01:03:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-23 01:03:48 +0000 UTC FinishedAt: 2026-07-23 01:49:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-23 01:03:48 +0000 UTC FinishedAt: 2026-07-23 01:49:04 +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:*1ceda7a8-c7f9-4320-8c2d-2d30cf460b5d,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-workflowp8v28/series-workflowp8v28-convert-artifact-3649363737/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": "fca99c52-568b-4309-ad11-70ad0e460e3b", "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-workflowp8v28/series-workflowp8v28-build-action-1299115637/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-23 01:03:48 +0000 UTC FinishedAt: 2026-07-23 01:48:06 +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:*1ceda7a8-c7f9-4320-8c2d-2d30cf460b5d,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-workflowp8v28/series-workflowp8v28-convert-artifact-3649363737/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": "fca99c52-568b-4309-ad11-70ad0e460e3b", "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-workflowp8v28/series-workflowp8v28-build-action-1299115637/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-23 01:49:04 +0000 UTC FinishedAt: 2026-07-23 01:49:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-23 01:49:04 +0000 UTC FinishedAt: 2026-07-23 01:49:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-23 01:49:04 +0000 UTC FinishedAt: 2026-07-23 01:51:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-23 01:49:04 +0000 UTC FinishedAt: 2026-07-23 01:51:25 +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:*fca99c52-568b-4309-ad11-70ad0e460e3b,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-workflowp8v28/series-workflowp8v28-build-action-1299115637/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-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-23 01:51:35 +0000 UTC FinishedAt: 2026-07-23 02:45:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-23 01:51:35 +0000 UTC FinishedAt: 2026-07-23 02:45:29 +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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"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:*24a1336c-5d9b-49e7-afde-381696ca8ab5,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*fca99c52-568b-4309-ad11-70ad0e460e3b,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-workflowp8v28/series-workflowp8v28-build-action-3903797340/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-workflowp8v28/series-workflowp8v28-build-action-1299115637/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-23 01:51:35 +0000 UTC FinishedAt: 2026-07-23 01:51:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-23 01:51:35 +0000 UTC FinishedAt: 2026-07-23 01:51:41 +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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"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-workflowp8v28/series-workflowp8v28-convert-artifact-1480543246/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-23 01:51:35 +0000 UTC FinishedAt: 2026-07-23 01:51:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-23 01:51:35 +0000 UTC FinishedAt: 2026-07-23 01:51:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-23 01:51:35 +0000 UTC FinishedAt: 2026-07-23 01:51:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-23 01:51:45 +0000 UTC FinishedAt: 2026-07-23 02:45:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp8v28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["st_nci_remove","st_nci_se_deinit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fec15bb3dab0c88dd513a5198173de66f830f289","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_ST_NCI_I2C","NFC_ST_NCI_SPI"],"series_id":"4e6f9cfa-f55e-428d-863d-55edb209fc0d","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-23 01:51:45 +0000 UTC FinishedAt: 2026-07-23 02:45:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*24a1336c-5d9b-49e7-afde-381696ca8ab5,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*fca99c52-568b-4309-ad11-70ad0e460e3b,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-workflowp8v28/series-workflowp8v28-build-action-3903797340/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-workflowp8v28/series-workflowp8v28-build-action-1299115637/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-workflowp8v28/series-workflowp8v28-convert-artifact-1480543246/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,}