Name: series-workflowhv99n Phase: Succeeded StartedAt: 2026-07-20 01:38:12 +0000 UTC FinishedAt: 2026-07-20 04:52:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[0] Phase: Succeeded StartedAt: 2026-07-20 01:38:12 +0000 UTC FinishedAt: 2026-07-20 02:33:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[0].run-triage Phase: Succeeded StartedAt: 2026-07-20 01:38:12 +0000 UTC FinishedAt: 2026-07-20 02:33:51 +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": "56d96fededd61192cd7cc8d2b0f36adfd59036c3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PTP_NETC_V4_TIMER" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "56d96fededd61192cd7cc8d2b0f36adfd59036c3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PTP_NETC_V4_TIMER" ], "series_id": "5ca9195b-70bc-481e-9a19-2bb7a494bbb9" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "netc_timer_init" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BUUF9ORVRDX1Y0X1RJTUVSJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmV0Y190aW1lcl9pbml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBmdW5jdGlvbmFsIHJlZ2lzdGVyIHdyaXRlIHRvIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBvZiB0aGUgTlhQIE5FVEMgVjQgVGltZXIgUFRQIGRyaXZlci4gVGhpcyBjYW4gYmUgcmVhY2hlZCB2aWEgUENJIGRldmljZSBwcm9iaW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNGEwYjY2NjkzNDk1MWRkNDI1NDNlMzM2NTllYjQzMzYwZTk5MjYwOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDIwIDAyOjMyOjU3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHRwL3B0cF9uZXRjLmMgYi9kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jXG5pbmRleCA5NGU5NTJlZTY5OTAyZS4uNWUzODFjMzU0ZDc0NmEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jXG5AQCAtNzc5LDYgJiM0Mzs3NzksNyBAQCBzdGF0aWMgdm9pZCBuZXRjX3RpbWVyX2luaXQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXG4gXHRuZXRjX3RpbWVyX3dyKHByaXYsIE5FVENfVE1SX0ZJUEVSX0NUUkwsIGZpcGVyX2N0cmwpO1xuIFx0bmV0Y190aW1lcl93cihwcml2LCBORVRDX1RNUl9FQ1RSTCwgTkVUQ19UTVJfREVGQVVMVF9FVFRGX1RIUik7XG4gXG4mIzQzO1x0bmV0Y190aW1lcl9vZmZzZXRfd3JpdGUocHJpdiwgMCk7XG4gXHRrdGltZV9nZXRfcmVhbF90czY0KFx1MDAyNm5vdyk7XG4gXHRucyA9IHRpbWVzcGVjNjRfdG9fbnMoXHUwMDI2bm93KTtcbiBcdG5ldGNfdGltZXJfY250X3dyaXRlKHByaXYsIG5zKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtQVFBfTkVUQ19WNF9USU1FUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25ldGNfdGltZXJfaW5pdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgZnVuY3Rpb25hbCByZWdpc3RlciB3cml0ZSB0byB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2Ugb2YgdGhlIE5YUCBORVRDIFY0IFRpbWVyIFBUUCBkcml2ZXIuIFRoaXMgY2FuIGJlIHJlYWNoZWQgdmlhIFBDSSBkZXZpY2UgcHJvYmluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNGEwYjY2NjkzNDk1MWRkNDI1NDNlMzM2NTllYjQzMzYwZTk5MjYwOApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDIwIDAyOjMyOjU3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wdHAvcHRwX25ldGMuYyBiL2RyaXZlcnMvcHRwL3B0cF9uZXRjLmMKaW5kZXggOTRlOTUyZWU2OTkwMmUuLjVlMzgxYzM1NGQ3NDZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcHRwL3B0cF9uZXRjLmMKQEAgLTc3OSw2ICYjNDM7Nzc5LDcgQEAgc3RhdGljIHZvaWQgbmV0Y190aW1lcl9pbml0KHN0cnVjdCBuZXRjX3RpbWVyICpwcml2KQogCW5ldGNfdGltZXJfd3IocHJpdiwgTkVUQ19UTVJfRklQRVJfQ1RSTCwgZmlwZXJfY3RybCk7CiAJbmV0Y190aW1lcl93cihwcml2LCBORVRDX1RNUl9FQ1RSTCwgTkVUQ19UTVJfREVGQVVMVF9FVFRGX1RIUik7CiAKJiM0MzsJbmV0Y190aW1lcl9vZmZzZXRfd3JpdGUocHJpdiwgMCk7CiAJa3RpbWVfZ2V0X3JlYWxfdHM2NCgmYW1wO25vdyk7CiAJbnMgPSB0aW1lc3BlYzY0X3RvX25zKCZhbXA7bm93KTsKIAluZXRjX3RpbWVyX2NudF93cml0ZShwcml2LCBucyk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTAKCQkJCQkJCW91dHB1dDogNzgKCQkJCQkJCXRob3VnaHRzOiA4NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqQW5hbHl6aW5nIGEgUFRQIERyaXZlciBQYXRjaCoqCgpSaWdodCwgc28gdGhlcmUmIzM5O3MgYSBwYXRjaCB0aGF0JiMzOTtzIGJlZW4gYXBwbGllZCwgYW5kIGl0JiMzOTtzIHRvdWNoaW5nIGBkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jYC4gU3BlY2lmaWNhbGx5LCB0aGV5JiMzOTt2ZSBhZGRlZCB0aGlzIGBuZXRjX3RpbWVyX29mZnNldF93cml0ZShwcml2LCAwKTtgIGNhbGwgd2l0aGluIGBuZXRjX3RpbWVyX2luaXQoKWAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgb2YgdGhpcyBjaGFuZ2UuIEl0JiMzOTtzIG5vdCBlbm91Z2ggdG8gc2VlIHRoZSBsaW5lLCBJIG5lZWQgdG8ga25vdyAqd2h5KiBpdCYjMzk7cyB0aGVyZS4KCkZpcnN0IHRoaW5ncyBmaXJzdCwgSSYjMzk7bSBnb2luZyB0byBwdWxsIHVwIGBkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jYCB0byBzZWUgdGhlIHN1cnJvdW5kaW5nIGNvZGUsIGFuZCBJJiMzOTtsbCBhbHNvIGNoZWNrIGl0cyBjb3JyZXNwb25kaW5nIGBLY29uZmlnYCBmaWxlLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIGRyaXZlciBpcyBldmVuIGVuYWJsZWQgaW4gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBhbmQgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgY29udHJvbCBpdHMgaW5jbHVzaW9uLiBBcmUgdGhlcmUgZGVwZW5kZW5jaWVzIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gQXJlIHRoZXJlIHNwZWNpZmljIGhhcmR3YXJlIGZlYXR1cmVzIHRpZWQgdG8gdGhpcyBkcml2ZXI/IFRoaXMgYEtjb25maWdgIGNoZWNrIGlzIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgcmVhY2ggb2YgdGhlIGNoYW5nZS4gQmFzaWNhbGx5LCBJIG5lZWQgdG8ga25vdyAqd2hlbiogdGhpcyBgbmV0Y190aW1lcl9vZmZzZXRfd3JpdGVgIHdpbGwgYWN0dWFsbHkgYmUgZXhlY3V0ZWQuIEkgYWxzbyB3YW50IHRvIGNoZWNrIHRoZSBmdW5jdGlvbiYjMzk7cyBkZWNsYXJhdGlvbiB0byBzZWUgdGhlIGV4cGVjdGVkIGlucHV0LgoKT25jZSBJJiMzOTt2ZSBlc3RhYmxpc2hlZCB0aGUgYmFzaWNzLCBJJiMzOTtsbCByZXZpZXcgdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIGFnYWluIGZvciBtb3JlIGNsdWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25ldGNfdGltZXJfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL3B0cF9uZXRjLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvcHRwX25ldGMuYz03MzU9c3RhdGljIGNvbnN0IHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBuZXRjX3RpbWVyX3B0cF9jYXBzID0ge1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtNzU0LVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYzo3NTU6c3RhdGljIHZvaWQgbmV0Y190aW1lcl9pbml0KHN0cnVjdCBuZXRjX3RpbWVyICpwcml2KVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy03NTYte1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM9ODkxPXN0YXRpYyBpcnFyZXR1cm5fdCBuZXRjX3RpbWVyX2lzcihpbnQgaXJxLCB2b2lkICpkYXRhKVxuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtOTI1LVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYzo5MjY6c3RhdGljIGludCBuZXRjX3RpbWVyX2luaXRfbXNpeF9pcnEoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTkyNy17XG4tLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz05Njg9c3RhdGljIGludCBuZXRjX3RpbWVyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtOTk2LVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYzo5OTc6XHRlcnIgPSBuZXRjX3RpbWVyX2luaXRfbXNpeF9pcnEocHJpdik7XG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTk5OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy0xMDAwLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYzoxMDAxOlx0bmV0Y190aW1lcl9pbml0KHByaXYpO1xuZHJpdmVycy9wdHAvcHRwX25ldGMuYy0xMDAyLVx0cHJpdi1cdTAwM2VjbG9jayA9IHB0cF9jbG9ja19yZWdpc3RlcihcdTAwMjZwcml2LVx1MDAzZWNhcHMsIGRldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDI6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUFRQXzE1ODhfQ0xPQ0tfTkVUQyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4MDIKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDoKCioqRmluZGluZyB0aGUgS2NvbmZpZyBmb3IgcHRwX25ldGMuYyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdHJhY2sgZG93biB0aGUgS2NvbmZpZyBmaWxlIGFzc29jaWF0ZWQgd2l0aCBgcHRwX25ldGMuY2AuIFRoYXTigJlzIG15IGZpcnN0IHRhc2suIFRoaXMgaXMgcHJldHR5IHN0YW5kYXJkOyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byB0aGF0IHNwZWNpZmljIGRyaXZlciBvciBtb2R1bGUuIFRoaXMgaXMgYWxsIGFib3V0IGhvdyBpdOKAmXMgZW5hYmxlZCBvciBkaXNhYmxlZCwgYW5kIHdoYXQgZWxzZSBuZWVkcyB0byBiZSBpbiBwbGFjZSBmb3IgaXQgdG8gZnVuY3Rpb24gY29ycmVjdGx5LiBJJiMzOTtsbCBuZWVkIHRoZSBLY29uZmlnIHRvIHNlZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLCB3aGljaCB3aWxsIGhlbHAgZGV0ZXJtaW5lIGhvdyB0aGlzIG1vZHVsZSBpcyBzZXQgdXAuIEtub3dpbmcgdGhlIEtjb25maWcgaXMgYWJzb2x1dGVseSBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyBhbmQgbWFuaXB1bGF0aW5nIGFueSBrZXJuZWwgbW9kdWxlJiMzOTtzIGJlaGF2aW9yLiBJIG5lZWQgdG8ga25vdyB3aGVyZSB0aGlzIGlzIGRlZmluZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gaGllcmFyY2h5LiBJdCYjMzk7cyB0aW1lIHRvIHN0YXJ0IHNlYXJjaGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwdHBfbmV0YyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9NYWtlZmlsZT0yMz1vYmotJChDT05GSUdfUFRQX1MzOTApXHRcdFx0JiM0Mzs9IHB0cF9zMzkwLm9cbmRyaXZlcnMvcHRwL01ha2VmaWxlOjI0Om9iai0kKENPTkZJR19QVFBfTkVUQ19WNF9USU1FUilcdFx0JiM0Mzs9IHB0cF9uZXRjLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTAyCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgdGFraW5nIG9uIHRoZSBwZXJzb25hIHlvdSByZXF1ZXN0ZWQ6CgoqKkRpZ2dpbmcgaW50byB0aGUgUFRQIE5ldGNsb2NrIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGBDT05GSUdfUFRQX05FVENfVjRfVElNRVJgLiBJIGtub3cgdGhpcyBpcyBpbiB0aGUgYGRyaXZlcnMvcHRwL0tjb25maWdgIGZpbGUsIHNvIHRoYXQmIzM5O3Mgd2hlcmUgSSYjMzk7bGwgc3RhcnQuIEkmIzM5O20gYWZ0ZXIgc29tZXRoaW5nIHNwZWNpZmljIGhlcmUsIGFuZCBJJiMzOTtsbCBuZWVkIHRvIGtub3cgd2hldGhlciB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIFBUUCBuZXRjbG9jayB2NCB0aW1lciBpcyBlbmFibGVkLCBkaXNhYmxlZCwgb3IgaWYgaXQgaXMgZXZlbiBhdmFpbGFibGUuIEZyb20gdGhlcmUsIEkmIzM5O2xsIGRldGVybWluZSBob3cgaXQgaW1wYWN0cyB0aGUgb3RoZXIgY29uZmlndXJhdGlvbnMgaW4gdGhpcyBidWlsZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUFRQX05FVENfVjRfVElNRVImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWc9MjQ0PWNvbmZpZyBQVFBfUzM5MFxuLS1cbmRyaXZlcnMvcHRwL0tjb25maWctMjU1LVxuZHJpdmVycy9wdHAvS2NvbmZpZzoyNTY6Y29uZmlnIFBUUF9ORVRDX1Y0X1RJTUVSXG5kcml2ZXJzL3B0cC9LY29uZmlnLTI1Ny1cdHRyaXN0YXRlIFwmIzM0O05YUCBORVRDIFY0IFRpbWVyIFBUUCBEcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDI6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQxNwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgRGVwZW5kZW5jeSBMYW5kc2NhcGUgb2YgUFRQX05FVENfVjRfVElNRVIqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIHRob3JvdWdobHkgdmV0IHRoZSBkZXBlbmRlbmNpZXMgb2YgYFBUUF9ORVRDX1Y0X1RJTUVSYC4gSSYjMzk7bSBnb2luZyB0byB3YW50IHRvIHVuZGVyc3RhbmQgKmV2ZXJ5dGhpbmcqIGl0IHJlbGllcyBvbi4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgYSBjb3JlIHRpbWluZyBjb21wb25lbnQgaGVyZSwgc28gdGhpcyBhbmFseXNpcyBuZWVkcyB0byBiZSByb2NrIHNvbGlkLiBJJiMzOTttIHRoaW5raW5nLCBiZXlvbmQgdGhlIG9idmlvdXMgbGlicmFyaWVzIGFuZCBtb2R1bGVzIGl0IGRpcmVjdGx5IGNhbGxzLCBJIG5lZWQgdG8gbG9vayBmb3IgaW5kaXJlY3QgZGVwZW5kZW5jaWVzLCB0b28uIEFyZSB0aGVyZSBhbnkgc2hhcmVkIHJlc291cmNlcywgbXV0ZXhlcywgb3IgaW50ZXJydXB0IGxpbmVzIGludm9sdmVkPyBXaGF0JiMzOTtzIHRoZSBwb3RlbnRpYWwgZm9yIHZlcnNpb24gY29uZmxpY3RzIG9yIHN1YnRsZSwgdW5leHBlY3RlZCBpbnRlcmFjdGlvbnM/IEtub3dpbmcgaG93IHRoaXMgdGltZXIgYmVoYXZlcyBpbiB0aGUgY29udGV4dCBvZiB0aGUgd2hvbGUgc3lzdGVtIGlzIGNyaXRpY2FsLiBJJiMzOTtsbCBuZWVkIHRvIG1hcCBvdXQgdGhlIGVudGlyZSBkZXBlbmRlbmN5IGdyYXBoLCBwaW5wb2ludGluZyBhbnkgcG90ZW50aWFsIHBvaW50cyBvZiBmYWlsdXJlIG9yIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLiBUaGlzIGlzbiYjMzk7dCBqdXN0IGFib3V0IG1ha2luZyB0aGUgY29kZSB3b3JrOyBpdCYjMzk7cyBhYm91dCBtYWtpbmcgaXQgKnJvYnVzdCogYW5kIHByZWRpY3RhYmxlIGluIGFsbCBvcGVyYXRpb25hbCBzY2VuYXJpb3MuIEdvdHRhIGVuc3VyZSB0aGlzIHRpbWVyIG9wZXJhdGVzIHJlbGlhYmx5IHVuZGVyIGFsbCBwb3NzaWJsZSBlbnZpcm9ubWVudGFsIGNvbmRpdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1BUUF9ORVRDX1Y0X1RJTUVSJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9LY29uZmlnPTI0ND1jb25maWcgUFRQX1MzOTBcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTI1NS1cbmRyaXZlcnMvcHRwL0tjb25maWc6MjU2OmNvbmZpZyBQVFBfTkVUQ19WNF9USU1FUlxuZHJpdmVycy9wdHAvS2NvbmZpZy0yNTctXHR0cmlzdGF0ZSBcJiMzNDtOWFAgTkVUQyBWNCBUaW1lciBQVFAgRHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MDcKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkV4YW1pbmluZyBQVFAgRHJpdmVyIENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZGl2ZSBpbnRvIHRoZSBQVFAgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIEkmIzM5O20gdGhpbmtpbmcgdGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQgaXMgdGhlIGBkcml2ZXJzL3B0cC9LY29uZmlnYCBmaWxlLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGxpbmUgMjU2LiBUaGF0IGFyZWEgdHlwaWNhbGx5IGRlYWxzIHdpdGggY29yZSBmZWF0dXJlIHNlbGVjdGlvbnMgYW5kIHBvdGVudGlhbGx5IHNvbWUgb2YgdGhlIG1vcmUgZ3JhbnVsYXIgaGFyZHdhcmUtc3BlY2lmaWMgb3B0aW9ucy4gSSB3YW50IHRvIHNlZSBob3cgdGhlIEtjb25maWcgaXMgc3RydWN0dXJlZCwgaWYgdGhlcmUgYXJlIGFueSBuZXcgb3IgY2hhbmdlZCBkZXBlbmRlbmNpZXMgaW4gdGhpcyB2ZXJzaW9uLCBhbmQgaWYgdGhlIGRlZmF1bHRzIGFyZSBzYW5lLiBJJiMzOTttIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiB3aGV0aGVyIHRoZXkmIzM5O3ZlIHNpbXBsaWZpZWQgdGhlIHNlbGVjdGlvbiBsb2dpYywgb3IgaWYgaXQmIzM5O3MgYmVjb21lIG1vcmUgY29tcGxleCB3aXRoIHJlY2VudCBkZXZlbG9wbWVudHMgaW4gaGFyZHdhcmUgb3IgbmV3IHByb3RvY29scyB0aGF0IG1pZ2h0IGhhdmUgYmVlbiBhZGRlZC4gTGV0JiMzOTtzIHNlZSBpZiB0aGlzIHJldmVhbHMgYW55IHBvdGVudGlhbCBpc3N1ZXMgb3IgYW55IG9wcG9ydHVuaXRpZXMgZm9yIG9wdGltaXphdGlvbnMuIExpbmUgMjU2IHNob3VsZCBiZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgdG8gb3JpZW50IG15c2VsZi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDI6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjUwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyNTA6XHRcdCAgaW50ZXJmYWNlLiBUaGlzIHdvcmtzIGJ5IGFkZGluZyBhIGluLWtlcm5lbCBjbG9jayBkZWx0YSB2YWx1ZSxcbiAyNTE6XHRcdCAgd2hpY2ggaXMgYWx3YXlzIGFkZGVkIHRvIHRpbWUgdmFsdWVzIHVzZWQgaW4gdGhlIGtlcm5lbC4gVGhlIFB0UFxuIDI1MjpcdFx0ICBkcml2ZXIgcHJvdmlkZXMgdGhlIHJhdyBjbG9jayB2YWx1ZSB3aXRob3V0IHRoZSBkZWx0YSB0b1xuIDI1MzpcdFx0ICB1c2Vyc3BhY2UuIFRoYXQgd2F5IHVzZXJzcGFjZSBwcm9ncmFtcyBsaWtlIGNocm9ueSBjb3VsZCBzdGVlclxuIDI1NDpcdFx0ICB0aGUga2VybmVsIGNsb2NrLlxuIDI1NTpcdFxuIDI1NjpcdGNvbmZpZyBQVFBfTkVUQ19WNF9USU1FUlxuIDI1NzpcdFx0dHJpc3RhdGUgXCYjMzQ7TlhQIE5FVEMgVjQgVGltZXIgUFRQIERyaXZlclwmIzM0O1xuIDI1ODpcdFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS1xuIDI1OTpcdFx0ZGVwZW5kcyBvbiBQQ0lfTVNJXG4gMjYwOlx0XHRoZWxwXG4gMjYxOlx0XHQgIFRoaXMgZHJpdmVyIGFkZHMgc3VwcG9ydCBmb3IgdXNpbmcgdGhlIE5YUCBORVRDIFY0IFRpbWVyIGFzIGEgUFRQXG4gMjYyOlx0XHQgIGNsb2NrLCB0aGUgY2xvY2sgaXMgdXNlZCBieSBFTkVUQyBWNCBvciBORVRDIFY0IFN3aXRjaCBmb3IgUFRQIHRpbWVcbiAyNjM6XHRcdCAgc3luY2hyb25pemF0aW9uLiBJdCBhbHNvIHN1cHBvcnRzIHBlcmlvZGljIG91dHB1dCBzaWduYWwgKGUuZy4gUFBTKVxuIDI2NDpcdFx0ICBhbmQgZXh0ZXJuYWwgdHJpZ2dlciB0aW1lc3RhbXBpbmcuXG4gMjY1Olx0XG4gMjY2Olx0ZW5kbWVudVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MzU3CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMTk5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVGFyZ2V0IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYFBUUF9ORVRDX1Y0X1RJTUVSYCwgYW5kIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGlzIGRlcGVuZHMgb24gYFBUUF8xNTg4X0NMT0NLYCBhbmQgYFBDSV9NU0lgLiBTdHJhaWdodCBhd2F5LCBJIHNlZSBpdCYjMzk7cyBhIFBDSSBkcml2ZXIuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0NhbiBJIGV2ZW4gdG91Y2ggdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyYjMzQ7IEdpdmVuIGl0JiMzOTtzIGZvciB0aGUgJiMzNDtOWFAgTkVUQyBWNCBUaW1lciwmIzM0OyBteSBndXQgcmVhY3Rpb24gaXMgcHJvYmFibHkgbm90LiBFbXVsYXRpbmcgdGhhdCBzcGVjaWZpYyBOWFAgaGFyZHdhcmUgaW4gc29tZXRoaW5nIGxpa2UgUUVNVSBzb3VuZHMgbGlrZSBhIGxvbmcgc2hvdC4KCldhaXQgYSBzZWNvbmTigKYgKnN5emthbGxlciouIFRoaXMgY291bGQgYmUgaW50ZXJlc3RpbmcuIElmIHRoZSBkcml2ZXIgaXMgYnVpbHQgaW50byB0aGUga2VybmVsIGFuZCBQQ0kgaXMgZnV6emVkLCB3aGV0aGVyIHRocm91Z2ggdlBDSSBvciBqdXN0IHByb2JpbmcsIHN5emthbGxlciAqY2FuKiBmdXp6IFBDSSBkcml2ZXJzLiBJbiBmYWN0LCBJIHNlZW0gdG8gcmVjYWxsIGl0IGhhcyBhIFBDSSBmdXp6ZXIgc3BlY2lmaWNhbGx5LiBUaGlzIG1lYW5zIGl0IGNvdWxkIGluamVjdCBQQ0kgZGV2aWNlcyBhbmQgZnV6eiB0aGVpciBwcm9iZSBmdW5jdGlvbnMhIFRoYXQmIzM5O3Mga2V5LiBTbyBgbmV0Y190aW1lcl9wcm9iZWAgYW5kIGBuZXRjX3RpbWVyX2luaXRgIGFyZSAqcG90ZW50aWFsbHkqIHJlYWNoYWJsZS4gTm93LCB0aGUgb2J2aW91cyBuZXh0IHN0ZXAgaXMgdG8gbWFrZSBzdXJlIGBuZXRjX3RpbWVyX3Byb2JlYCBpcyBhY3R1YWxseSB0aGUgUENJIHByb2JlIGZ1bmN0aW9uIEkgdGhpbmsgaXQgaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25ldGNfdGltZXJfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL3B0cF9uZXRjLmM9OTU5PXN0YXRpYyBpbnQgbmV0Y190aW1lcl9nZXRfZ2xvYmFsX2lwX3JldihzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTk2Ny1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6OTY4OnN0YXRpYyBpbnQgbmV0Y190aW1lcl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtOTY5LVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz0xMDM1PXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBuZXRjX3RpbWVyX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTEwMzctXHQuaWRfdGFibGUgPSBuZXRjX3RpbWVyX2lkX3RhYmxlLFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYzoxMDM4Olx0LnByb2JlID0gbmV0Y190aW1lcl9wcm9iZSxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAzOS1cdC5yZW1vdmUgPSBuZXRjX3RpbWVyX3JlbW92ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDI6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTEyNQoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBUaGlzIFBDSSBEcml2ZXIgQ2hhbmdlKioKCk9rYXksIHNvIHRoaXMgaXMgZGVmaW5pdGVseSBhIFBDSSBkcml2ZXIg4oCTIHRoYXQgbXVjaCBpcyBjbGVhci4gQW5kLCBpZiBJJiMzOTttIHVuZGVyc3RhbmRpbmcgdGhpcyBjb3JyZWN0bHksIFN5emthbGxlciBjYW4sIGluIHRoZW9yeSwgZnV6eiBpdCBieSBlbXVsYXRpbmcgUENJIGRldmljZXMuIFRoYXQmIzM5O3MgYSBzb2xpZCBzdHJhdGVneSwgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIGZ1enppbmcgdGhlc2UgdHlwZXMgb2Ygc3lzdGVtcy4KCk5vdywgdGhpcyBwYXRjaC4uLiBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGFkZGluZyBgbmV0Y190aW1lcl9vZmZzZXRfd3JpdGUocHJpdiwgMCk7YCB0byBgbmV0Y190aW1lcl9pbml0KClgLiBUaGUgY29yZSBvZiBteSBhc3Nlc3NtZW50IGlzIGFsd2F5cyAmIzM5O2lzIHRoaXMgZnVuY3Rpb25hbD8mIzM5Oy4gU28sIHllcywgaXQmIzM5O3Mgd3JpdGluZyB0byBhIHJlZ2lzdGVyLCB0aGF0JiMzOTtzIHVuZGVuaWFibHkgZnVuY3Rpb25hbC4gVGhhdCBmdW5jdGlvbiBjYWxsLCBgbmV0Y190aW1lcl9vZmZzZXRfd3JpdGVgLi4uIGl0IG5lZWRzIGRlZXBlciBzY3J1dGlueS4gSSB3YW50IHRvIHVuZGVyc3RhbmQgd2hhdCB0aGF0IHdyaXRlIG9wZXJhdGlvbiBhY3R1YWxseSAqZG9lcyogaW4gdGhlIGNvbnRleHQgb2YgdGhpcyBQQ0kgZHJpdmVyLiBHb3R0YSBkaWcgaW50byB0aGF0IGZ1bmN0aW9uJiMzOTtzIGltcGxlbWVudGF0aW9uIG5leHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25ldGNfdGltZXJfb2Zmc2V0X3dyaXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvcHRwX25ldGMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTE1NT1zdGF0aWMgdTY0IG5ldGNfdGltZXJfb2Zmc2V0X3JlYWQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXG4tLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy0xNjYtXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjE2NzpzdGF0aWMgdm9pZCBuZXRjX3RpbWVyX29mZnNldF93cml0ZShzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdiwgdTY0IG9mZnNldClcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTY4LXtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTY3MD1zdGF0aWMgaW50IG5ldGNfdGltZXJfYWRqdGltZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgczY0IGRlbHRhKVxuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtNjg1LVx0dG1yX29mZiAmIzQzOz0gZGVsdGE7XG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjY4NjpcdG5ldGNfdGltZXJfb2Zmc2V0X3dyaXRlKHByaXYsIHRtcl9vZmYpO1xuZHJpdmVycy9wdHAvcHRwX25ldGMuYy02ODctXG4tLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz03MTY9c3RhdGljIGludCBuZXRjX3RpbWVyX3NldHRpbWU2NChzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTcyNS1cdG5ldGNfdGltZXJfZGlzYWJsZV9maXBlcihwcml2KTtcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6NzI2Olx0bmV0Y190aW1lcl9vZmZzZXRfd3JpdGUocHJpdiwgMCk7XG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTcyNy1cdG5ldGNfdGltZXJfY250X3dyaXRlKHByaXYsIG5zKTtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTc1NT1zdGF0aWMgdm9pZCBuZXRjX3RpbWVyX2luaXQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXG4tLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy03ODEtXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjc4MjpcdG5ldGNfdGltZXJfb2Zmc2V0X3dyaXRlKHByaXYsIDApO1xuZHJpdmVycy9wdHAvcHRwX25ldGMuYy03ODMtXHRrdGltZV9nZXRfcmVhbF90czY0KFx1MDAyNm5vdyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU5NTQKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqSW5pdGlhbCBBc3Nlc3NtZW50OiBGdW5jdGlvbmFsIE1vZGlmaWNhdGlvbiAmYW1wOyBLZXkgRnVuY3Rpb24gSWRlbnRpZmljYXRpb24qKgoKUmlnaHQsIHNvIHRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGguIFRoZSBjb3JlIG9mIHRoaXMsIHRoZSBmdW5jdGlvbiBJIG5lZWQgdG8gZm9jdXMgb24sIGlzIGBuZXRjX3RpbWVyX2luaXRgLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBhY3Rpb24gaXMuIEFuZCBJIHNlZSwgdGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb24gSSBuZWVkIHRvIGNoZWNrIGlzIGBQVFBfTkVUQ19WNF9USU1FUmAuIFRoYXQmIzM5O3MgdGhlIGdhdGUsIHRoZSBzd2l0Y2ggdGhhdCBlbmFibGVzIHRoaXMgd2hvbGUgdGhpbmcuCgpOb3csIGEgY3JpdGljYWwgc3RlcCBpcyBjb25maXJtaW5nIGhvdyBgbmV0Y190aW1lcl9pbml0YCBpcyBpbnZva2VkLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgYG5ldGNfdGltZXJfaW5pdGAgaXMgY2FsbGVkIGJ5IGBuZXRjX3RpbWVyX3Byb2JlYCwgd2hpY2ggd2lsbCBnaXZlIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIG92ZXJhbGwgY2FsbCBmbG93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZXRjX3RpbWVyX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL3B0cF9uZXRjLmM9NzM1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gbmV0Y190aW1lcl9wdHBfY2FwcyA9IHtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTc1NC1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6NzU1OnN0YXRpYyB2b2lkIG5ldGNfdGltZXJfaW5pdChzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtNzU2LXtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTg5MT1zdGF0aWMgaXJxcmV0dXJuX3QgbmV0Y190aW1lcl9pc3IoaW50IGlycSwgdm9pZCAqZGF0YSlcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTkyNS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6OTI2OnN0YXRpYyBpbnQgbmV0Y190aW1lcl9pbml0X21zaXhfaXJxKHN0cnVjdCBuZXRjX3RpbWVyICpwcml2KVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy05Mjcte1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM9OTY4PXN0YXRpYyBpbnQgbmV0Y190aW1lcl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTk5Ni1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6OTk3Olx0ZXJyID0gbmV0Y190aW1lcl9pbml0X21zaXhfaXJxKHByaXYpO1xuZHJpdmVycy9wdHAvcHRwX25ldGMuYy05OTgtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAwMC1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6MTAwMTpcdG5ldGNfdGltZXJfaW5pdChwcml2KTtcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAwMi1cdHByaXYtXHUwMDNlY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoXHUwMDI2cHJpdi1cdTAwM2VjYXBzLCBkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NjcxCgkJCQkJCQlvdXRwdXQ6IDg0CgkJCQkJCQl0aG91Z2h0czogMjQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBOWFAgTkVUQyBWNCBUaW1lciBQYXRjaCoqCgpPa2F5LCBzbyB0aGUgdGFzayBhdCBoYW5kIGlzIGRlZmluaXRlbHkgcmVsYXRlZCB0byB0aGUgYG5ldGNfdGltZXJfaW5pdGAgZnVuY3Rpb24uIFRoYXQmIzM5O3MgdGhlIGtleSBzeW1ib2wgd2UgbmVlZCB0byBmb2N1cyBvbi4gQmFzZWQgb24gdGhlIGRlc2NyaXB0aW9uLCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgYFBUUF9ORVRDX1Y0X1RJTUVSYC4gVGhlIHJlYXNvbmluZyBpcyBzdHJhaWdodGZvcndhcmQ6IHRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCByZWdpc3RlciB3cml0ZSBkdXJpbmcgdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIG9mIHRoZSBOWFAgTkVUQyBWNCBUaW1lciBQVFAgZHJpdmVyLCBhbmQgdGhpcyBjb2RlIHBhdGggaXMgYWN0aXZhdGVkIGR1cmluZyBQQ0kgZGV2aWNlIHByb2JpbmcuCgpOb3csIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCB3ZSYjMzk7cmUgbm90IG1pc3NpbmcgYW55IG90aGVyIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9ucy4gTGV0JiMzOTtzIHNlZS4uLiBgUFRQX05FVENfVjRfVElNRVJgIGRlcGVuZHMgb24gYFBUUF8xNTg4X0NMT0NLYCBhbmQgYFBDSV9NU0lgLiBgUFRQXzE1ODhfQ0xPQ0tgIGlzIGEgZmFpcmx5IGdlbmVyaWMgY29uZmlndXJhdGlvbiBvcHRpb24sIHNvIGp1c3QgdG8gYmUgc2FmZSwgSSYjMzk7bGwgZmxhZyB0aGF0IGFzIGEgcG90ZW50aWFsIHJlcXVpcmVtZW50LCB0aG91Z2ggYFBUUF9ORVRDX1Y0X1RJTUVSYCBpcyB0aGUgc3BlY2lmaWMgb25lIHRvIGVtcGhhc2l6ZS4gVGhlcmVmb3JlLCBJIHdpbGwgcmV0dXJuIGBQVFBfTkVUQ19WNF9USU1FUmAuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgY2FsbCBncmFwaCBmb3IgYG5ldGNfdGltZXJfaW5pdGAuIEFoLCBpdCYjMzk7cyBjYWxsZWQgZnJvbSBgbmV0Y190aW1lcl9wcm9iZWAuIFRoYXQgbWVhbnMgaXQmIzM5O3Mgb25seSBjYWxsZWQgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiwgc28gaXQmIzM5O3Mgbm90IGEgcGVyZm9ybWFuY2UtY3JpdGljYWwgaG90LXBhdGguIEdvb2QuIEV2ZXJ5dGhpbmcgc2VlbXMgaW4gb3JkZXIuIEkmIzM5O20gcmVhZHkgdG8gcHJvY2VlZCB3aXRoIHNldHRpbmcgdGhlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtQVFBfTkVUQ19WNF9USU1FUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25ldGNfdGltZXJfaW5pdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgZnVuY3Rpb25hbCByZWdpc3RlciB3cml0ZSB0byB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2Ugb2YgdGhlIE5YUCBORVRDIFY0IFRpbWVyIFBUUCBkcml2ZXIuIFRoaXMgY2FuIGJlIHJlYWNoZWQgdmlhIFBDSSBkZXZpY2UgcHJvYmluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UFRQX05FVENfVjRfVElNRVImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZXRjX3RpbWVyX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGZ1bmN0aW9uYWwgcmVnaXN0ZXIgd3JpdGUgdG8gdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIG9mIHRoZSBOWFAgTkVUQyBWNCBUaW1lciBQVFAgZHJpdmVyLiBUaGlzIGNhbiBiZSByZWFjaGVkIHZpYSBQQ0kgZGV2aWNlIHByb2JpbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMjozMjo1OC45NTEzNDI1MjJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDM2NzQzNjc3MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQVFBfTkVUQ19WNF9USU1FUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5ldGNfdGltZXJfaW5pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBmdW5jdGlvbmFsIHJlZ2lzdGVyIHdyaXRlIHRvIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBvZiB0aGUgTlhQIE5FVEMgVjQgVGltZXIgUFRQIGRyaXZlci4gVGhpcyBjYW4gYmUgcmVhY2hlZCB2aWEgUENJIGRldmljZSBwcm9iaW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMjozMjo1OC45NTEzNDg0NTNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5Nzc5ODc0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDRhMGI2NjY5MzQ5NTFkZDQyNTQzZTMzNjU5ZWI0MzM2MGU5OTI2MDhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBKdWwgMjAgMDI6MzI6NTcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wdHAvcHRwX25ldGMuYyBiL2RyaXZlcnMvcHRwL3B0cF9uZXRjLmNcXG5pbmRleCA5NGU5NTJlZTY5OTAyZS4uNWUzODFjMzU0ZDc0NmEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9wdHAvcHRwX25ldGMuY1xcbisrKyBiL2RyaXZlcnMvcHRwL3B0cF9uZXRjLmNcXG5AQCAtNzc5LDYgKzc3OSw3IEBAIHN0YXRpYyB2b2lkIG5ldGNfdGltZXJfaW5pdChzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcXG4gXFx0bmV0Y190aW1lcl93cihwcml2LCBORVRDX1RNUl9GSVBFUl9DVFJMLCBmaXBlcl9jdHJsKTtcXG4gXFx0bmV0Y190aW1lcl93cihwcml2LCBORVRDX1RNUl9FQ1RSTCwgTkVUQ19UTVJfREVGQVVMVF9FVFRGX1RIUik7XFxuIFxcbitcXHRuZXRjX3RpbWVyX29mZnNldF93cml0ZShwcml2LCAwKTtcXG4gXFx0a3RpbWVfZ2V0X3JlYWxfdHM2NChcXHUwMDI2bm93KTtcXG4gXFx0bnMgPSB0aW1lc3BlYzY0X3RvX25zKFxcdTAwMjZub3cpO1xcbiBcXHRuZXRjX3RpbWVyX2NudF93cml0ZShwcml2LCBucyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMyOjU5LjM0OTg3NzQzNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk5Njg4OTI1MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUFRQX05FVENfVjRfVElNRVJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZXRjX3RpbWVyX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgZnVuY3Rpb25hbCByZWdpc3RlciB3cml0ZSB0byB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2Ugb2YgdGhlIE5YUCBORVRDIFY0IFRpbWVyIFBUUCBkcml2ZXIuIFRoaXMgY2FuIGJlIHJlYWNoZWQgdmlhIFBDSSBkZXZpY2UgcHJvYmluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0YTBiNjY2OTM0OTUxZGQ0MjU0M2UzMzY1OWViNDMzNjBlOTkyNjA4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMDI6MzI6NTcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jIGIvZHJpdmVycy9wdHAvcHRwX25ldGMuY1xuaW5kZXggOTRlOTUyZWU2OTkwMmUuLjVlMzgxYzM1NGQ3NDZhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9wdHAvcHRwX25ldGMuY1xuKysrIGIvZHJpdmVycy9wdHAvcHRwX25ldGMuY1xuQEAgLTc3OSw2ICs3NzksNyBAQCBzdGF0aWMgdm9pZCBuZXRjX3RpbWVyX2luaXQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXG4gXHRuZXRjX3RpbWVyX3dyKHByaXYsIE5FVENfVE1SX0ZJUEVSX0NUUkwsIGZpcGVyX2N0cmwpO1xuIFx0bmV0Y190aW1lcl93cihwcml2LCBORVRDX1RNUl9FQ1RSTCwgTkVUQ19UTVJfREVGQVVMVF9FVFRGX1RIUik7XG4gXG4rXHRuZXRjX3RpbWVyX29mZnNldF93cml0ZShwcml2LCAwKTtcbiBcdGt0aW1lX2dldF9yZWFsX3RzNjQoXHUwMDI2bm93KTtcbiBcdG5zID0gdGltZXNwZWM2NF90b19ucyhcdTAwMjZub3cpO1xuIFx0bmV0Y190aW1lcl9jbnRfd3JpdGUocHJpdiwgbnMpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDI6MzI6NTkuMzQ5ODc4OTU0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDYzOTM2MjkwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyBhIFBUUCBEcml2ZXIgUGF0Y2gqKlxuXG5SaWdodCwgc28gdGhlcmUncyBhIHBhdGNoIHRoYXQncyBiZWVuIGFwcGxpZWQsIGFuZCBpdCdzIHRvdWNoaW5nIGBkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jYC4gU3BlY2lmaWNhbGx5LCB0aGV5J3ZlIGFkZGVkIHRoaXMgYG5ldGNfdGltZXJfb2Zmc2V0X3dyaXRlKHByaXYsIDApO2AgY2FsbCB3aXRoaW4gYG5ldGNfdGltZXJfaW5pdCgpYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCBvZiB0aGlzIGNoYW5nZS4gSXQncyBub3QgZW5vdWdoIHRvIHNlZSB0aGUgbGluZSwgSSBuZWVkIHRvIGtub3cgKndoeSogaXQncyB0aGVyZS5cblxuRmlyc3QgdGhpbmdzIGZpcnN0LCBJJ20gZ29pbmcgdG8gcHVsbCB1cCBgZHJpdmVycy9wdHAvcHRwX25ldGMuY2AgdG8gc2VlIHRoZSBzdXJyb3VuZGluZyBjb2RlLCBhbmQgSSdsbCBhbHNvIGNoZWNrIGl0cyBjb3JyZXNwb25kaW5nIGBLY29uZmlnYCBmaWxlLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIGRyaXZlciBpcyBldmVuIGVuYWJsZWQgaW4gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBhbmQgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgY29udHJvbCBpdHMgaW5jbHVzaW9uLiBBcmUgdGhlcmUgZGVwZW5kZW5jaWVzIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gQXJlIHRoZXJlIHNwZWNpZmljIGhhcmR3YXJlIGZlYXR1cmVzIHRpZWQgdG8gdGhpcyBkcml2ZXI/IFRoaXMgYEtjb25maWdgIGNoZWNrIGlzIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgcmVhY2ggb2YgdGhlIGNoYW5nZS4gQmFzaWNhbGx5LCBJIG5lZWQgdG8ga25vdyAqd2hlbiogdGhpcyBgbmV0Y190aW1lcl9vZmZzZXRfd3JpdGVgIHdpbGwgYWN0dWFsbHkgYmUgZXhlY3V0ZWQuIEkgYWxzbyB3YW50IHRvIGNoZWNrIHRoZSBmdW5jdGlvbidzIGRlY2xhcmF0aW9uIHRvIHNlZSB0aGUgZXhwZWN0ZWQgaW5wdXQuXG5cbk9uY2UgSSd2ZSBlc3RhYmxpc2hlZCB0aGUgYmFzaWNzLCBJJ2xsIHJldmlldyB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggYWdhaW4gZm9yIG1vcmUgY2x1ZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4OTAsIk91dHB1dFRva2VucyI6NzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjAzLjk4OTI0MzczOFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTQ0MDUxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZXRjX3RpbWVyX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9wdHAvcHRwX25ldGMuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTczNT1zdGF0aWMgY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIG5ldGNfdGltZXJfcHRwX2NhcHMgPSB7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTc1NC1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjc1NTpzdGF0aWMgdm9pZCBuZXRjX3RpbWVyX2luaXQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy03NTYte1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz04OTE9c3RhdGljIGlycXJldHVybl90IG5ldGNfdGltZXJfaXNyKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTkyNS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjkyNjpzdGF0aWMgaW50IG5ldGNfdGltZXJfaW5pdF9tc2l4X2lycShzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTkyNy17XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTk2OD1zdGF0aWMgaW50IG5ldGNfdGltZXJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTk5Ni1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjk5NzpcXHRlcnIgPSBuZXRjX3RpbWVyX2luaXRfbXNpeF9pcnEocHJpdik7XFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy05OTgtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAwMC1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjEwMDE6XFx0bmV0Y190aW1lcl9pbml0KHByaXYpO1xcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAwMi1cXHRwcml2LVxcdTAwM2VjbG9jayA9IHB0cF9jbG9ja19yZWdpc3RlcihcXHUwMDI2cHJpdi1cXHUwMDNlY2FwcywgZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDI6MzM6MDQuMDQ4Njg4NDg3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1OTQ0NjI5LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUFRQXzE1ODhfQ0xPQ0tfTkVUQ1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3B0cC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMjozMzowNC4xMDQ2NDE1NzZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTAwNjkzNzk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6XG5cbioqRmluZGluZyB0aGUgS2NvbmZpZyBmb3IgcHRwX25ldGMuYyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB0cmFjayBkb3duIHRoZSBLY29uZmlnIGZpbGUgYXNzb2NpYXRlZCB3aXRoIGBwdHBfbmV0Yy5jYC4gVGhhdOKAmXMgbXkgZmlyc3QgdGFzay4gVGhpcyBpcyBwcmV0dHkgc3RhbmRhcmQ7IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcyByZWxhdGVkIHRvIHRoYXQgc3BlY2lmaWMgZHJpdmVyIG9yIG1vZHVsZS4gVGhpcyBpcyBhbGwgYWJvdXQgaG93IGl04oCZcyBlbmFibGVkIG9yIGRpc2FibGVkLCBhbmQgd2hhdCBlbHNlIG5lZWRzIHRvIGJlIGluIHBsYWNlIGZvciBpdCB0byBmdW5jdGlvbiBjb3JyZWN0bHkuIEknbGwgbmVlZCB0aGUgS2NvbmZpZyB0byBzZWUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgd2hpY2ggd2lsbCBoZWxwIGRldGVybWluZSBob3cgdGhpcyBtb2R1bGUgaXMgc2V0IHVwLiBLbm93aW5nIHRoZSBLY29uZmlnIGlzIGFic29sdXRlbHkgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgYW5kIG1hbmlwdWxhdGluZyBhbnkga2VybmVsIG1vZHVsZSdzIGJlaGF2aW9yLiBJIG5lZWQgdG8ga25vdyB3aGVyZSB0aGlzIGlzIGRlZmluZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gaGllcmFyY2h5LiBJdCdzIHRpbWUgdG8gc3RhcnQgc2VhcmNoaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODAyLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIiwiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjA3LjIwNTMzNjk2MVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzE0NDY0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwdHBfbmV0Y1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3B0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9wdHAvTWFrZWZpbGU9MjM9b2JqLSQoQ09ORklHX1BUUF9TMzkwKVxcdFxcdFxcdCs9IHB0cF9zMzkwLm9cXG5kcml2ZXJzL3B0cC9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfUFRQX05FVENfVjRfVElNRVIpXFx0XFx0Kz0gcHRwX25ldGMub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMjozMzowNy4yNjI1MDk1NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyMTYyNzQ2MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCB0YWtpbmcgb24gdGhlIHBlcnNvbmEgeW91IHJlcXVlc3RlZDpcblxuKipEaWdnaW5nIGludG8gdGhlIFBUUCBOZXRjbG9jayBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBgQ09ORklHX1BUUF9ORVRDX1Y0X1RJTUVSYC4gSSBrbm93IHRoaXMgaXMgaW4gdGhlIGBkcml2ZXJzL3B0cC9LY29uZmlnYCBmaWxlLCBzbyB0aGF0J3Mgd2hlcmUgSSdsbCBzdGFydC4gSSdtIGFmdGVyIHNvbWV0aGluZyBzcGVjaWZpYyBoZXJlLCBhbmQgSSdsbCBuZWVkIHRvIGtub3cgd2hldGhlciB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIFBUUCBuZXRjbG9jayB2NCB0aW1lciBpcyBlbmFibGVkLCBkaXNhYmxlZCwgb3IgaWYgaXQgaXMgZXZlbiBhdmFpbGFibGUuIEZyb20gdGhlcmUsIEknbGwgZGV0ZXJtaW5lIGhvdyBpdCBpbXBhY3RzIHRoZSBvdGhlciBjb25maWd1cmF0aW9ucyBpbiB0aGlzIGJ1aWxkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTAyLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDI6MzM6MTAuNDc4Nzg2Mjk0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2OTM5ODY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBQVFBfTkVUQ19WNF9USU1FUlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3B0cC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL0tjb25maWc9MjQ0PWNvbmZpZyBQVFBfUzM5MFxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yNTUtXFxuZHJpdmVycy9wdHAvS2NvbmZpZzoyNTY6Y29uZmlnIFBUUF9ORVRDX1Y0X1RJTUVSXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yNTctXFx0dHJpc3RhdGUgXFxcIk5YUCBORVRDIFY0IFRpbWVyIFBUUCBEcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjEwLjUzNTczNDQ5MloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjE5NzA1MzMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIERlcGVuZGVuY3kgTGFuZHNjYXBlIG9mIFBUUF9ORVRDX1Y0X1RJTUVSKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gdGhvcm91Z2hseSB2ZXQgdGhlIGRlcGVuZGVuY2llcyBvZiBgUFRQX05FVENfVjRfVElNRVJgLiBJJ20gZ29pbmcgdG8gd2FudCB0byB1bmRlcnN0YW5kICpldmVyeXRoaW5nKiBpdCByZWxpZXMgb24uIFdlJ3JlIHRhbGtpbmcgYWJvdXQgYSBjb3JlIHRpbWluZyBjb21wb25lbnQgaGVyZSwgc28gdGhpcyBhbmFseXNpcyBuZWVkcyB0byBiZSByb2NrIHNvbGlkLiBJJ20gdGhpbmtpbmcsIGJleW9uZCB0aGUgb2J2aW91cyBsaWJyYXJpZXMgYW5kIG1vZHVsZXMgaXQgZGlyZWN0bHkgY2FsbHMsIEkgbmVlZCB0byBsb29rIGZvciBpbmRpcmVjdCBkZXBlbmRlbmNpZXMsIHRvby4gQXJlIHRoZXJlIGFueSBzaGFyZWQgcmVzb3VyY2VzLCBtdXRleGVzLCBvciBpbnRlcnJ1cHQgbGluZXMgaW52b2x2ZWQ/IFdoYXQncyB0aGUgcG90ZW50aWFsIGZvciB2ZXJzaW9uIGNvbmZsaWN0cyBvciBzdWJ0bGUsIHVuZXhwZWN0ZWQgaW50ZXJhY3Rpb25zPyBLbm93aW5nIGhvdyB0aGlzIHRpbWVyIGJlaGF2ZXMgaW4gdGhlIGNvbnRleHQgb2YgdGhlIHdob2xlIHN5c3RlbSBpcyBjcml0aWNhbC4gSSdsbCBuZWVkIHRvIG1hcCBvdXQgdGhlIGVudGlyZSBkZXBlbmRlbmN5IGdyYXBoLCBwaW5wb2ludGluZyBhbnkgcG90ZW50aWFsIHBvaW50cyBvZiBmYWlsdXJlIG9yIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLiBUaGlzIGlzbid0IGp1c3QgYWJvdXQgbWFraW5nIHRoZSBjb2RlIHdvcms7IGl0J3MgYWJvdXQgbWFraW5nIGl0ICpyb2J1c3QqIGFuZCBwcmVkaWN0YWJsZSBpbiBhbGwgb3BlcmF0aW9uYWwgc2NlbmFyaW9zLiBHb3R0YSBlbnN1cmUgdGhpcyB0aW1lciBvcGVyYXRlcyByZWxpYWJseSB1bmRlciBhbGwgcG9zc2libGUgZW52aXJvbm1lbnRhbCBjb25kaXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDE3LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDI6MzM6MTQuNzU1NDQyMDU1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDc5MTAwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJQVFBfTkVUQ19WNF9USU1FUlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3B0cC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL0tjb25maWc9MjQ0PWNvbmZpZyBQVFBfUzM5MFxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yNTUtXFxuZHJpdmVycy9wdHAvS2NvbmZpZzoyNTY6Y29uZmlnIFBUUF9ORVRDX1Y0X1RJTUVSXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yNTctXFx0dHJpc3RhdGUgXFxcIk5YUCBORVRDIFY0IFRpbWVyIFBUUCBEcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjE0LjgxNjIzOTU3M1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjAxMDg4MjE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkV4YW1pbmluZyBQVFAgRHJpdmVyIENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBkaXZlIGludG8gdGhlIFBUUCBkcml2ZXIgY29uZmlndXJhdGlvbi4gSSdtIHRoaW5raW5nIHRoZSBiZXN0IHBsYWNlIHRvIHN0YXJ0IGlzIHRoZSBgZHJpdmVycy9wdHAvS2NvbmZpZ2AgZmlsZSwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDI1Ni4gVGhhdCBhcmVhIHR5cGljYWxseSBkZWFscyB3aXRoIGNvcmUgZmVhdHVyZSBzZWxlY3Rpb25zIGFuZCBwb3RlbnRpYWxseSBzb21lIG9mIHRoZSBtb3JlIGdyYW51bGFyIGhhcmR3YXJlLXNwZWNpZmljIG9wdGlvbnMuIEkgd2FudCB0byBzZWUgaG93IHRoZSBLY29uZmlnIGlzIHN0cnVjdHVyZWQsIGlmIHRoZXJlIGFyZSBhbnkgbmV3IG9yIGNoYW5nZWQgZGVwZW5kZW5jaWVzIGluIHRoaXMgdmVyc2lvbiwgYW5kIGlmIHRoZSBkZWZhdWx0cyBhcmUgc2FuZS4gSSdtIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiB3aGV0aGVyIHRoZXkndmUgc2ltcGxpZmllZCB0aGUgc2VsZWN0aW9uIGxvZ2ljLCBvciBpZiBpdCdzIGJlY29tZSBtb3JlIGNvbXBsZXggd2l0aCByZWNlbnQgZGV2ZWxvcG1lbnRzIGluIGhhcmR3YXJlIG9yIG5ldyBwcm90b2NvbHMgdGhhdCBtaWdodCBoYXZlIGJlZW4gYWRkZWQuIExldCdzIHNlZSBpZiB0aGlzIHJldmVhbHMgYW55IHBvdGVudGlhbCBpc3N1ZXMgb3IgYW55IG9wcG9ydHVuaXRpZXMgZm9yIG9wdGltaXphdGlvbnMuIExpbmUgMjU2IHNob3VsZCBiZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgdG8gb3JpZW50IG15c2VsZi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgwNywiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjE4LjQxNzMyOTg1OVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTEzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3B0cC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI1MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDI1MDpcXHRcXHQgIGludGVyZmFjZS4gVGhpcyB3b3JrcyBieSBhZGRpbmcgYSBpbi1rZXJuZWwgY2xvY2sgZGVsdGEgdmFsdWUsXFxuIDI1MTpcXHRcXHQgIHdoaWNoIGlzIGFsd2F5cyBhZGRlZCB0byB0aW1lIHZhbHVlcyB1c2VkIGluIHRoZSBrZXJuZWwuIFRoZSBQdFBcXG4gMjUyOlxcdFxcdCAgZHJpdmVyIHByb3ZpZGVzIHRoZSByYXcgY2xvY2sgdmFsdWUgd2l0aG91dCB0aGUgZGVsdGEgdG9cXG4gMjUzOlxcdFxcdCAgdXNlcnNwYWNlLiBUaGF0IHdheSB1c2Vyc3BhY2UgcHJvZ3JhbXMgbGlrZSBjaHJvbnkgY291bGQgc3RlZXJcXG4gMjU0OlxcdFxcdCAgdGhlIGtlcm5lbCBjbG9jay5cXG4gMjU1OlxcdFxcbiAyNTY6XFx0Y29uZmlnIFBUUF9ORVRDX1Y0X1RJTUVSXFxuIDI1NzpcXHRcXHR0cmlzdGF0ZSBcXFwiTlhQIE5FVEMgVjQgVGltZXIgUFRQIERyaXZlclxcXCJcXG4gMjU4OlxcdFxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tcXG4gMjU5OlxcdFxcdGRlcGVuZHMgb24gUENJX01TSVxcbiAyNjA6XFx0XFx0aGVscFxcbiAyNjE6XFx0XFx0ICBUaGlzIGRyaXZlciBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBOWFAgTkVUQyBWNCBUaW1lciBhcyBhIFBUUFxcbiAyNjI6XFx0XFx0ICBjbG9jaywgdGhlIGNsb2NrIGlzIHVzZWQgYnkgRU5FVEMgVjQgb3IgTkVUQyBWNCBTd2l0Y2ggZm9yIFBUUCB0aW1lXFxuIDI2MzpcXHRcXHQgIHN5bmNocm9uaXphdGlvbi4gSXQgYWxzbyBzdXBwb3J0cyBwZXJpb2RpYyBvdXRwdXQgc2lnbmFsIChlLmcuIFBQUylcXG4gMjY0OlxcdFxcdCAgYW5kIGV4dGVybmFsIHRyaWdnZXIgdGltZXN0YW1waW5nLlxcbiAyNjU6XFx0XFxuIDI2NjpcXHRlbmRtZW51XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjE4LjQxNzM5MjE4OVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTY5MTc4NjU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVGFyZ2V0IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBQVFBfTkVUQ19WNF9USU1FUmAsIGFuZCBpdCdzIHByZXR0eSBjbGVhciB0aGlzIGRlcGVuZHMgb24gYFBUUF8xNTg4X0NMT0NLYCBhbmQgYFBDSV9NU0lgLiBTdHJhaWdodCBhd2F5LCBJIHNlZSBpdCdzIGEgUENJIGRyaXZlci4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiQ2FuIEkgZXZlbiB0b3VjaCB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/XCIgR2l2ZW4gaXQncyBmb3IgdGhlIFwiTlhQIE5FVEMgVjQgVGltZXIsXCIgbXkgZ3V0IHJlYWN0aW9uIGlzIHByb2JhYmx5IG5vdC4gRW11bGF0aW5nIHRoYXQgc3BlY2lmaWMgTlhQIGhhcmR3YXJlIGluIHNvbWV0aGluZyBsaWtlIFFFTVUgc291bmRzIGxpa2UgYSBsb25nIHNob3QuXG5cbldhaXQgYSBzZWNvbmTigKYgKnN5emthbGxlciouIFRoaXMgY291bGQgYmUgaW50ZXJlc3RpbmcuIElmIHRoZSBkcml2ZXIgaXMgYnVpbHQgaW50byB0aGUga2VybmVsIGFuZCBQQ0kgaXMgZnV6emVkLCB3aGV0aGVyIHRocm91Z2ggdlBDSSBvciBqdXN0IHByb2JpbmcsIHN5emthbGxlciAqY2FuKiBmdXp6IFBDSSBkcml2ZXJzLiBJbiBmYWN0LCBJIHNlZW0gdG8gcmVjYWxsIGl0IGhhcyBhIFBDSSBmdXp6ZXIgc3BlY2lmaWNhbGx5LiBUaGlzIG1lYW5zIGl0IGNvdWxkIGluamVjdCBQQ0kgZGV2aWNlcyBhbmQgZnV6eiB0aGVpciBwcm9iZSBmdW5jdGlvbnMhIFRoYXQncyBrZXkuIFNvIGBuZXRjX3RpbWVyX3Byb2JlYCBhbmQgYG5ldGNfdGltZXJfaW5pdGAgYXJlICpwb3RlbnRpYWxseSogcmVhY2hhYmxlLiBOb3csIHRoZSBvYnZpb3VzIG5leHQgc3RlcCBpcyB0byBtYWtlIHN1cmUgYG5ldGNfdGltZXJfcHJvYmVgIGlzIGFjdHVhbGx5IHRoZSBQQ0kgcHJvYmUgZnVuY3Rpb24gSSB0aGluayBpdCBpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM1NywiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5OSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjI0Ljk4NjU3MjQxM1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjExODUyOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibmV0Y190aW1lcl9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL3B0cF9uZXRjLmM9OTU5PXN0YXRpYyBpbnQgbmV0Y190aW1lcl9nZXRfZ2xvYmFsX2lwX3JldihzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtOTY3LVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6OTY4OnN0YXRpYyBpbnQgbmV0Y190aW1lcl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTk2OS1cXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz0xMDM1PXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBuZXRjX3RpbWVyX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAzNy1cXHQuaWRfdGFibGUgPSBuZXRjX3RpbWVyX2lkX3RhYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6MTAzODpcXHQucHJvYmUgPSBuZXRjX3RpbWVyX3Byb2JlLFxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAzOS1cXHQucmVtb3ZlID0gbmV0Y190aW1lcl9yZW1vdmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjI1LjA0Nzc2MjQwMloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTY1ODcxNzE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBUaGlzIFBDSSBEcml2ZXIgQ2hhbmdlKipcblxuT2theSwgc28gdGhpcyBpcyBkZWZpbml0ZWx5IGEgUENJIGRyaXZlciDigJMgdGhhdCBtdWNoIGlzIGNsZWFyLiBBbmQsIGlmIEknbSB1bmRlcnN0YW5kaW5nIHRoaXMgY29ycmVjdGx5LCBTeXprYWxsZXIgY2FuLCBpbiB0aGVvcnksIGZ1enogaXQgYnkgZW11bGF0aW5nIFBDSSBkZXZpY2VzLiBUaGF0J3MgYSBzb2xpZCBzdHJhdGVneSwgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIGZ1enppbmcgdGhlc2UgdHlwZXMgb2Ygc3lzdGVtcy5cblxuTm93LCB0aGlzIHBhdGNoLi4uIGl0IGxvb2tzIGxpa2UgaXQncyBhZGRpbmcgYG5ldGNfdGltZXJfb2Zmc2V0X3dyaXRlKHByaXYsIDApO2AgdG8gYG5ldGNfdGltZXJfaW5pdCgpYC4gVGhlIGNvcmUgb2YgbXkgYXNzZXNzbWVudCBpcyBhbHdheXMgJ2lzIHRoaXMgZnVuY3Rpb25hbD8nLiBTbywgeWVzLCBpdCdzIHdyaXRpbmcgdG8gYSByZWdpc3RlciwgdGhhdCdzIHVuZGVuaWFibHkgZnVuY3Rpb25hbC4gVGhhdCBmdW5jdGlvbiBjYWxsLCBgbmV0Y190aW1lcl9vZmZzZXRfd3JpdGVgLi4uIGl0IG5lZWRzIGRlZXBlciBzY3J1dGlueS4gSSB3YW50IHRvIHVuZGVyc3RhbmQgd2hhdCB0aGF0IHdyaXRlIG9wZXJhdGlvbiBhY3R1YWxseSAqZG9lcyogaW4gdGhlIGNvbnRleHQgb2YgdGhpcyBQQ0kgZHJpdmVyLiBHb3R0YSBkaWcgaW50byB0aGF0IGZ1bmN0aW9uJ3MgaW1wbGVtZW50YXRpb24gbmV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTEyNSwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjI5LjAxMzYzNTkzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzUyMTk0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZXRjX3RpbWVyX29mZnNldF93cml0ZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL3B0cF9uZXRjLmM9MTU1PXN0YXRpYyB1NjQgbmV0Y190aW1lcl9vZmZzZXRfcmVhZChzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTY2LVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6MTY3OnN0YXRpYyB2b2lkIG5ldGNfdGltZXJfb2Zmc2V0X3dyaXRlKHN0cnVjdCBuZXRjX3RpbWVyICpwcml2LCB1NjQgb2Zmc2V0KVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTY4LXtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM9NjcwPXN0YXRpYyBpbnQgbmV0Y190aW1lcl9hZGp0aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzNjQgZGVsdGEpXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTY4NS1cXHR0bXJfb2ZmICs9IGRlbHRhO1xcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6Njg2OlxcdG5ldGNfdGltZXJfb2Zmc2V0X3dyaXRlKHByaXYsIHRtcl9vZmYpO1xcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtNjg3LVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz03MTY9c3RhdGljIGludCBuZXRjX3RpbWVyX3NldHRpbWU2NChzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtNzI1LVxcdG5ldGNfdGltZXJfZGlzYWJsZV9maXBlcihwcml2KTtcXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjcyNjpcXHRuZXRjX3RpbWVyX29mZnNldF93cml0ZShwcml2LCAwKTtcXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTcyNy1cXHRuZXRjX3RpbWVyX2NudF93cml0ZShwcml2LCBucyk7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTc1NT1zdGF0aWMgdm9pZCBuZXRjX3RpbWVyX2luaXQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTc4MS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjc4MjpcXHRuZXRjX3RpbWVyX29mZnNldF93cml0ZShwcml2LCAwKTtcXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTc4My1cXHRrdGltZV9nZXRfcmVhbF90czY0KFxcdTAwMjZub3cpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMjozMzoyOS4wNzExNjMyOThaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY1MzIwMDU0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudDogRnVuY3Rpb25hbCBNb2RpZmljYXRpb24gXHUwMDI2IEtleSBGdW5jdGlvbiBJZGVudGlmaWNhdGlvbioqXG5cblJpZ2h0LCBzbyB0aGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSB3ZSdyZSBkZWFsaW5nIHdpdGguIFRoZSBjb3JlIG9mIHRoaXMsIHRoZSBmdW5jdGlvbiBJIG5lZWQgdG8gZm9jdXMgb24sIGlzIGBuZXRjX3RpbWVyX2luaXRgLiBUaGF0J3Mgd2hlcmUgdGhlIGFjdGlvbiBpcy4gQW5kIEkgc2VlLCB0aGUgZW5hYmxpbmcgY29uZmlndXJhdGlvbiBJIG5lZWQgdG8gY2hlY2sgaXMgYFBUUF9ORVRDX1Y0X1RJTUVSYC4gVGhhdCdzIHRoZSBnYXRlLCB0aGUgc3dpdGNoIHRoYXQgZW5hYmxlcyB0aGlzIHdob2xlIHRoaW5nLlxuXG5Ob3csIGEgY3JpdGljYWwgc3RlcCBpcyBjb25maXJtaW5nIGhvdyBgbmV0Y190aW1lcl9pbml0YCBpcyBpbnZva2VkLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgYG5ldGNfdGltZXJfaW5pdGAgaXMgY2FsbGVkIGJ5IGBuZXRjX3RpbWVyX3Byb2JlYCwgd2hpY2ggd2lsbCBnaXZlIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIG92ZXJhbGwgY2FsbCBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTU0LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDI6MzM6MzMuNzI0MzY1NDEyWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjM0MjMwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZXRjX3RpbWVyX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9wdHAvcHRwX25ldGMuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTczNT1zdGF0aWMgY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIG5ldGNfdGltZXJfcHRwX2NhcHMgPSB7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTc1NC1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjc1NTpzdGF0aWMgdm9pZCBuZXRjX3RpbWVyX2luaXQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy03NTYte1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz04OTE9c3RhdGljIGlycXJldHVybl90IG5ldGNfdGltZXJfaXNyKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTkyNS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjkyNjpzdGF0aWMgaW50IG5ldGNfdGltZXJfaW5pdF9tc2l4X2lycShzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTkyNy17XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTk2OD1zdGF0aWMgaW50IG5ldGNfdGltZXJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTk5Ni1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjk5NzpcXHRlcnIgPSBuZXRjX3RpbWVyX2luaXRfbXNpeF9pcnEocHJpdik7XFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy05OTgtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAwMC1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjEwMDE6XFx0bmV0Y190aW1lcl9pbml0KHByaXYpO1xcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAwMi1cXHRwcml2LVxcdTAwM2VjbG9jayA9IHB0cF9jbG9ja19yZWdpc3RlcihcXHUwMDI2cHJpdi1cXHUwMDNlY2FwcywgZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDI6MzM6MzMuNzgwNzEzOTAxWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0NDcxNjg2MjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIE5YUCBORVRDIFY0IFRpbWVyIFBhdGNoKipcblxuT2theSwgc28gdGhlIHRhc2sgYXQgaGFuZCBpcyBkZWZpbml0ZWx5IHJlbGF0ZWQgdG8gdGhlIGBuZXRjX3RpbWVyX2luaXRgIGZ1bmN0aW9uLiBUaGF0J3MgdGhlIGtleSBzeW1ib2wgd2UgbmVlZCB0byBmb2N1cyBvbi4gQmFzZWQgb24gdGhlIGRlc2NyaXB0aW9uLCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgYFBUUF9ORVRDX1Y0X1RJTUVSYC4gVGhlIHJlYXNvbmluZyBpcyBzdHJhaWdodGZvcndhcmQ6IHRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCByZWdpc3RlciB3cml0ZSBkdXJpbmcgdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIG9mIHRoZSBOWFAgTkVUQyBWNCBUaW1lciBQVFAgZHJpdmVyLCBhbmQgdGhpcyBjb2RlIHBhdGggaXMgYWN0aXZhdGVkIGR1cmluZyBQQ0kgZGV2aWNlIHByb2JpbmcuXG5cbk5vdywgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHdlJ3JlIG5vdCBtaXNzaW5nIGFueSBvdGhlciBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMuIExldCdzIHNlZS4uLiBgUFRQX05FVENfVjRfVElNRVJgIGRlcGVuZHMgb24gYFBUUF8xNTg4X0NMT0NLYCBhbmQgYFBDSV9NU0lgLiBgUFRQXzE1ODhfQ0xPQ0tgIGlzIGEgZmFpcmx5IGdlbmVyaWMgY29uZmlndXJhdGlvbiBvcHRpb24sIHNvIGp1c3QgdG8gYmUgc2FmZSwgSSdsbCBmbGFnIHRoYXQgYXMgYSBwb3RlbnRpYWwgcmVxdWlyZW1lbnQsIHRob3VnaCBgUFRQX05FVENfVjRfVElNRVJgIGlzIHRoZSBzcGVjaWZpYyBvbmUgdG8gZW1waGFzaXplLiBUaGVyZWZvcmUsIEkgd2lsbCByZXR1cm4gYFBUUF9ORVRDX1Y0X1RJTUVSYC5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEknbGwgcXVpY2tseSBjaGVjayB0aGUgY2FsbCBncmFwaCBmb3IgYG5ldGNfdGltZXJfaW5pdGAuIEFoLCBpdCdzIGNhbGxlZCBmcm9tIGBuZXRjX3RpbWVyX3Byb2JlYC4gVGhhdCBtZWFucyBpdCdzIG9ubHkgY2FsbGVkIGR1cmluZyBkZXZpY2UgaW5pdGlhbGl6YXRpb24sIHNvIGl0J3Mgbm90IGEgcGVyZm9ybWFuY2UtY3JpdGljYWwgaG90LXBhdGguIEdvb2QuIEV2ZXJ5dGhpbmcgc2VlbXMgaW4gb3JkZXIuIEknbSByZWFkeSB0byBwcm9jZWVkIHdpdGggc2V0dGluZyB0aGUgcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjY3MSwiT3V0cHV0VG9rZW5zIjo4NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMjozMzozOS4yMjc4ODQ2MzhaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MDg4MTk1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUFRQX05FVENfVjRfVElNRVJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZXRjX3RpbWVyX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgZnVuY3Rpb25hbCByZWdpc3RlciB3cml0ZSB0byB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2Ugb2YgdGhlIE5YUCBORVRDIFY0IFRpbWVyIFBUUCBkcml2ZXIuIFRoaXMgY2FuIGJlIHJlYWNoZWQgdmlhIFBDSSBkZXZpY2UgcHJvYmluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQVFBfTkVUQ19WNF9USU1FUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5ldGNfdGltZXJfaW5pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBmdW5jdGlvbmFsIHJlZ2lzdGVyIHdyaXRlIHRvIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBvZiB0aGUgTlhQIE5FVEMgVjQgVGltZXIgUFRQIGRyaXZlci4gVGhpcyBjYW4gYmUgcmVhY2hlZCB2aWEgUENJIGRldmljZSBwcm9iaW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhv99n[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-20 01:38:12 +0000 UTC FinishedAt: 2026-07-20 02:33:41 +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": "56d96fededd61192cd7cc8d2b0f36adfd59036c3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PTP_NETC_V4_TIMER" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "56d96fededd61192cd7cc8d2b0f36adfd59036c3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PTP_NETC_V4_TIMER" ], "series_id": "5ca9195b-70bc-481e-9a19-2bb7a494bbb9" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "netc_timer_init" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BUUF9ORVRDX1Y0X1RJTUVSJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmV0Y190aW1lcl9pbml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBmdW5jdGlvbmFsIHJlZ2lzdGVyIHdyaXRlIHRvIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBvZiB0aGUgTlhQIE5FVEMgVjQgVGltZXIgUFRQIGRyaXZlci4gVGhpcyBjYW4gYmUgcmVhY2hlZCB2aWEgUENJIGRldmljZSBwcm9iaW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNGEwYjY2NjkzNDk1MWRkNDI1NDNlMzM2NTllYjQzMzYwZTk5MjYwOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDIwIDAyOjMyOjU3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHRwL3B0cF9uZXRjLmMgYi9kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jXG5pbmRleCA5NGU5NTJlZTY5OTAyZS4uNWUzODFjMzU0ZDc0NmEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jXG5AQCAtNzc5LDYgJiM0Mzs3NzksNyBAQCBzdGF0aWMgdm9pZCBuZXRjX3RpbWVyX2luaXQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXG4gXHRuZXRjX3RpbWVyX3dyKHByaXYsIE5FVENfVE1SX0ZJUEVSX0NUUkwsIGZpcGVyX2N0cmwpO1xuIFx0bmV0Y190aW1lcl93cihwcml2LCBORVRDX1RNUl9FQ1RSTCwgTkVUQ19UTVJfREVGQVVMVF9FVFRGX1RIUik7XG4gXG4mIzQzO1x0bmV0Y190aW1lcl9vZmZzZXRfd3JpdGUocHJpdiwgMCk7XG4gXHRrdGltZV9nZXRfcmVhbF90czY0KFx1MDAyNm5vdyk7XG4gXHRucyA9IHRpbWVzcGVjNjRfdG9fbnMoXHUwMDI2bm93KTtcbiBcdG5ldGNfdGltZXJfY250X3dyaXRlKHByaXYsIG5zKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtQVFBfTkVUQ19WNF9USU1FUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25ldGNfdGltZXJfaW5pdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgZnVuY3Rpb25hbCByZWdpc3RlciB3cml0ZSB0byB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2Ugb2YgdGhlIE5YUCBORVRDIFY0IFRpbWVyIFBUUCBkcml2ZXIuIFRoaXMgY2FuIGJlIHJlYWNoZWQgdmlhIFBDSSBkZXZpY2UgcHJvYmluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNGEwYjY2NjkzNDk1MWRkNDI1NDNlMzM2NTllYjQzMzYwZTk5MjYwOApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDIwIDAyOjMyOjU3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wdHAvcHRwX25ldGMuYyBiL2RyaXZlcnMvcHRwL3B0cF9uZXRjLmMKaW5kZXggOTRlOTUyZWU2OTkwMmUuLjVlMzgxYzM1NGQ3NDZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcHRwL3B0cF9uZXRjLmMKQEAgLTc3OSw2ICYjNDM7Nzc5LDcgQEAgc3RhdGljIHZvaWQgbmV0Y190aW1lcl9pbml0KHN0cnVjdCBuZXRjX3RpbWVyICpwcml2KQogCW5ldGNfdGltZXJfd3IocHJpdiwgTkVUQ19UTVJfRklQRVJfQ1RSTCwgZmlwZXJfY3RybCk7CiAJbmV0Y190aW1lcl93cihwcml2LCBORVRDX1RNUl9FQ1RSTCwgTkVUQ19UTVJfREVGQVVMVF9FVFRGX1RIUik7CiAKJiM0MzsJbmV0Y190aW1lcl9vZmZzZXRfd3JpdGUocHJpdiwgMCk7CiAJa3RpbWVfZ2V0X3JlYWxfdHM2NCgmYW1wO25vdyk7CiAJbnMgPSB0aW1lc3BlYzY0X3RvX25zKCZhbXA7bm93KTsKIAluZXRjX3RpbWVyX2NudF93cml0ZShwcml2LCBucyk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTAKCQkJCQkJCW91dHB1dDogNzgKCQkJCQkJCXRob3VnaHRzOiA4NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqQW5hbHl6aW5nIGEgUFRQIERyaXZlciBQYXRjaCoqCgpSaWdodCwgc28gdGhlcmUmIzM5O3MgYSBwYXRjaCB0aGF0JiMzOTtzIGJlZW4gYXBwbGllZCwgYW5kIGl0JiMzOTtzIHRvdWNoaW5nIGBkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jYC4gU3BlY2lmaWNhbGx5LCB0aGV5JiMzOTt2ZSBhZGRlZCB0aGlzIGBuZXRjX3RpbWVyX29mZnNldF93cml0ZShwcml2LCAwKTtgIGNhbGwgd2l0aGluIGBuZXRjX3RpbWVyX2luaXQoKWAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgb2YgdGhpcyBjaGFuZ2UuIEl0JiMzOTtzIG5vdCBlbm91Z2ggdG8gc2VlIHRoZSBsaW5lLCBJIG5lZWQgdG8ga25vdyAqd2h5KiBpdCYjMzk7cyB0aGVyZS4KCkZpcnN0IHRoaW5ncyBmaXJzdCwgSSYjMzk7bSBnb2luZyB0byBwdWxsIHVwIGBkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jYCB0byBzZWUgdGhlIHN1cnJvdW5kaW5nIGNvZGUsIGFuZCBJJiMzOTtsbCBhbHNvIGNoZWNrIGl0cyBjb3JyZXNwb25kaW5nIGBLY29uZmlnYCBmaWxlLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIGRyaXZlciBpcyBldmVuIGVuYWJsZWQgaW4gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBhbmQgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgY29udHJvbCBpdHMgaW5jbHVzaW9uLiBBcmUgdGhlcmUgZGVwZW5kZW5jaWVzIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gQXJlIHRoZXJlIHNwZWNpZmljIGhhcmR3YXJlIGZlYXR1cmVzIHRpZWQgdG8gdGhpcyBkcml2ZXI/IFRoaXMgYEtjb25maWdgIGNoZWNrIGlzIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgcmVhY2ggb2YgdGhlIGNoYW5nZS4gQmFzaWNhbGx5LCBJIG5lZWQgdG8ga25vdyAqd2hlbiogdGhpcyBgbmV0Y190aW1lcl9vZmZzZXRfd3JpdGVgIHdpbGwgYWN0dWFsbHkgYmUgZXhlY3V0ZWQuIEkgYWxzbyB3YW50IHRvIGNoZWNrIHRoZSBmdW5jdGlvbiYjMzk7cyBkZWNsYXJhdGlvbiB0byBzZWUgdGhlIGV4cGVjdGVkIGlucHV0LgoKT25jZSBJJiMzOTt2ZSBlc3RhYmxpc2hlZCB0aGUgYmFzaWNzLCBJJiMzOTtsbCByZXZpZXcgdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIGFnYWluIGZvciBtb3JlIGNsdWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25ldGNfdGltZXJfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL3B0cF9uZXRjLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvcHRwX25ldGMuYz03MzU9c3RhdGljIGNvbnN0IHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBuZXRjX3RpbWVyX3B0cF9jYXBzID0ge1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtNzU0LVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYzo3NTU6c3RhdGljIHZvaWQgbmV0Y190aW1lcl9pbml0KHN0cnVjdCBuZXRjX3RpbWVyICpwcml2KVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy03NTYte1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM9ODkxPXN0YXRpYyBpcnFyZXR1cm5fdCBuZXRjX3RpbWVyX2lzcihpbnQgaXJxLCB2b2lkICpkYXRhKVxuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtOTI1LVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYzo5MjY6c3RhdGljIGludCBuZXRjX3RpbWVyX2luaXRfbXNpeF9pcnEoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTkyNy17XG4tLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz05Njg9c3RhdGljIGludCBuZXRjX3RpbWVyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtOTk2LVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYzo5OTc6XHRlcnIgPSBuZXRjX3RpbWVyX2luaXRfbXNpeF9pcnEocHJpdik7XG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTk5OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy0xMDAwLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYzoxMDAxOlx0bmV0Y190aW1lcl9pbml0KHByaXYpO1xuZHJpdmVycy9wdHAvcHRwX25ldGMuYy0xMDAyLVx0cHJpdi1cdTAwM2VjbG9jayA9IHB0cF9jbG9ja19yZWdpc3RlcihcdTAwMjZwcml2LVx1MDAzZWNhcHMsIGRldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDI6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUFRQXzE1ODhfQ0xPQ0tfTkVUQyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4MDIKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDoKCioqRmluZGluZyB0aGUgS2NvbmZpZyBmb3IgcHRwX25ldGMuYyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdHJhY2sgZG93biB0aGUgS2NvbmZpZyBmaWxlIGFzc29jaWF0ZWQgd2l0aCBgcHRwX25ldGMuY2AuIFRoYXTigJlzIG15IGZpcnN0IHRhc2suIFRoaXMgaXMgcHJldHR5IHN0YW5kYXJkOyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byB0aGF0IHNwZWNpZmljIGRyaXZlciBvciBtb2R1bGUuIFRoaXMgaXMgYWxsIGFib3V0IGhvdyBpdOKAmXMgZW5hYmxlZCBvciBkaXNhYmxlZCwgYW5kIHdoYXQgZWxzZSBuZWVkcyB0byBiZSBpbiBwbGFjZSBmb3IgaXQgdG8gZnVuY3Rpb24gY29ycmVjdGx5LiBJJiMzOTtsbCBuZWVkIHRoZSBLY29uZmlnIHRvIHNlZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLCB3aGljaCB3aWxsIGhlbHAgZGV0ZXJtaW5lIGhvdyB0aGlzIG1vZHVsZSBpcyBzZXQgdXAuIEtub3dpbmcgdGhlIEtjb25maWcgaXMgYWJzb2x1dGVseSBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyBhbmQgbWFuaXB1bGF0aW5nIGFueSBrZXJuZWwgbW9kdWxlJiMzOTtzIGJlaGF2aW9yLiBJIG5lZWQgdG8ga25vdyB3aGVyZSB0aGlzIGlzIGRlZmluZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gaGllcmFyY2h5LiBJdCYjMzk7cyB0aW1lIHRvIHN0YXJ0IHNlYXJjaGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwdHBfbmV0YyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9NYWtlZmlsZT0yMz1vYmotJChDT05GSUdfUFRQX1MzOTApXHRcdFx0JiM0Mzs9IHB0cF9zMzkwLm9cbmRyaXZlcnMvcHRwL01ha2VmaWxlOjI0Om9iai0kKENPTkZJR19QVFBfTkVUQ19WNF9USU1FUilcdFx0JiM0Mzs9IHB0cF9uZXRjLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTAyCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgdGFraW5nIG9uIHRoZSBwZXJzb25hIHlvdSByZXF1ZXN0ZWQ6CgoqKkRpZ2dpbmcgaW50byB0aGUgUFRQIE5ldGNsb2NrIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGBDT05GSUdfUFRQX05FVENfVjRfVElNRVJgLiBJIGtub3cgdGhpcyBpcyBpbiB0aGUgYGRyaXZlcnMvcHRwL0tjb25maWdgIGZpbGUsIHNvIHRoYXQmIzM5O3Mgd2hlcmUgSSYjMzk7bGwgc3RhcnQuIEkmIzM5O20gYWZ0ZXIgc29tZXRoaW5nIHNwZWNpZmljIGhlcmUsIGFuZCBJJiMzOTtsbCBuZWVkIHRvIGtub3cgd2hldGhlciB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIFBUUCBuZXRjbG9jayB2NCB0aW1lciBpcyBlbmFibGVkLCBkaXNhYmxlZCwgb3IgaWYgaXQgaXMgZXZlbiBhdmFpbGFibGUuIEZyb20gdGhlcmUsIEkmIzM5O2xsIGRldGVybWluZSBob3cgaXQgaW1wYWN0cyB0aGUgb3RoZXIgY29uZmlndXJhdGlvbnMgaW4gdGhpcyBidWlsZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUFRQX05FVENfVjRfVElNRVImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWc9MjQ0PWNvbmZpZyBQVFBfUzM5MFxuLS1cbmRyaXZlcnMvcHRwL0tjb25maWctMjU1LVxuZHJpdmVycy9wdHAvS2NvbmZpZzoyNTY6Y29uZmlnIFBUUF9ORVRDX1Y0X1RJTUVSXG5kcml2ZXJzL3B0cC9LY29uZmlnLTI1Ny1cdHRyaXN0YXRlIFwmIzM0O05YUCBORVRDIFY0IFRpbWVyIFBUUCBEcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDI6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQxNwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgRGVwZW5kZW5jeSBMYW5kc2NhcGUgb2YgUFRQX05FVENfVjRfVElNRVIqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIHRob3JvdWdobHkgdmV0IHRoZSBkZXBlbmRlbmNpZXMgb2YgYFBUUF9ORVRDX1Y0X1RJTUVSYC4gSSYjMzk7bSBnb2luZyB0byB3YW50IHRvIHVuZGVyc3RhbmQgKmV2ZXJ5dGhpbmcqIGl0IHJlbGllcyBvbi4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgYSBjb3JlIHRpbWluZyBjb21wb25lbnQgaGVyZSwgc28gdGhpcyBhbmFseXNpcyBuZWVkcyB0byBiZSByb2NrIHNvbGlkLiBJJiMzOTttIHRoaW5raW5nLCBiZXlvbmQgdGhlIG9idmlvdXMgbGlicmFyaWVzIGFuZCBtb2R1bGVzIGl0IGRpcmVjdGx5IGNhbGxzLCBJIG5lZWQgdG8gbG9vayBmb3IgaW5kaXJlY3QgZGVwZW5kZW5jaWVzLCB0b28uIEFyZSB0aGVyZSBhbnkgc2hhcmVkIHJlc291cmNlcywgbXV0ZXhlcywgb3IgaW50ZXJydXB0IGxpbmVzIGludm9sdmVkPyBXaGF0JiMzOTtzIHRoZSBwb3RlbnRpYWwgZm9yIHZlcnNpb24gY29uZmxpY3RzIG9yIHN1YnRsZSwgdW5leHBlY3RlZCBpbnRlcmFjdGlvbnM/IEtub3dpbmcgaG93IHRoaXMgdGltZXIgYmVoYXZlcyBpbiB0aGUgY29udGV4dCBvZiB0aGUgd2hvbGUgc3lzdGVtIGlzIGNyaXRpY2FsLiBJJiMzOTtsbCBuZWVkIHRvIG1hcCBvdXQgdGhlIGVudGlyZSBkZXBlbmRlbmN5IGdyYXBoLCBwaW5wb2ludGluZyBhbnkgcG90ZW50aWFsIHBvaW50cyBvZiBmYWlsdXJlIG9yIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLiBUaGlzIGlzbiYjMzk7dCBqdXN0IGFib3V0IG1ha2luZyB0aGUgY29kZSB3b3JrOyBpdCYjMzk7cyBhYm91dCBtYWtpbmcgaXQgKnJvYnVzdCogYW5kIHByZWRpY3RhYmxlIGluIGFsbCBvcGVyYXRpb25hbCBzY2VuYXJpb3MuIEdvdHRhIGVuc3VyZSB0aGlzIHRpbWVyIG9wZXJhdGVzIHJlbGlhYmx5IHVuZGVyIGFsbCBwb3NzaWJsZSBlbnZpcm9ubWVudGFsIGNvbmRpdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1BUUF9ORVRDX1Y0X1RJTUVSJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9LY29uZmlnPTI0ND1jb25maWcgUFRQX1MzOTBcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTI1NS1cbmRyaXZlcnMvcHRwL0tjb25maWc6MjU2OmNvbmZpZyBQVFBfTkVUQ19WNF9USU1FUlxuZHJpdmVycy9wdHAvS2NvbmZpZy0yNTctXHR0cmlzdGF0ZSBcJiMzNDtOWFAgTkVUQyBWNCBUaW1lciBQVFAgRHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MDcKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkV4YW1pbmluZyBQVFAgRHJpdmVyIENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZGl2ZSBpbnRvIHRoZSBQVFAgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIEkmIzM5O20gdGhpbmtpbmcgdGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQgaXMgdGhlIGBkcml2ZXJzL3B0cC9LY29uZmlnYCBmaWxlLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGxpbmUgMjU2LiBUaGF0IGFyZWEgdHlwaWNhbGx5IGRlYWxzIHdpdGggY29yZSBmZWF0dXJlIHNlbGVjdGlvbnMgYW5kIHBvdGVudGlhbGx5IHNvbWUgb2YgdGhlIG1vcmUgZ3JhbnVsYXIgaGFyZHdhcmUtc3BlY2lmaWMgb3B0aW9ucy4gSSB3YW50IHRvIHNlZSBob3cgdGhlIEtjb25maWcgaXMgc3RydWN0dXJlZCwgaWYgdGhlcmUgYXJlIGFueSBuZXcgb3IgY2hhbmdlZCBkZXBlbmRlbmNpZXMgaW4gdGhpcyB2ZXJzaW9uLCBhbmQgaWYgdGhlIGRlZmF1bHRzIGFyZSBzYW5lLiBJJiMzOTttIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiB3aGV0aGVyIHRoZXkmIzM5O3ZlIHNpbXBsaWZpZWQgdGhlIHNlbGVjdGlvbiBsb2dpYywgb3IgaWYgaXQmIzM5O3MgYmVjb21lIG1vcmUgY29tcGxleCB3aXRoIHJlY2VudCBkZXZlbG9wbWVudHMgaW4gaGFyZHdhcmUgb3IgbmV3IHByb3RvY29scyB0aGF0IG1pZ2h0IGhhdmUgYmVlbiBhZGRlZC4gTGV0JiMzOTtzIHNlZSBpZiB0aGlzIHJldmVhbHMgYW55IHBvdGVudGlhbCBpc3N1ZXMgb3IgYW55IG9wcG9ydHVuaXRpZXMgZm9yIG9wdGltaXphdGlvbnMuIExpbmUgMjU2IHNob3VsZCBiZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgdG8gb3JpZW50IG15c2VsZi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDI6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjUwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyNTA6XHRcdCAgaW50ZXJmYWNlLiBUaGlzIHdvcmtzIGJ5IGFkZGluZyBhIGluLWtlcm5lbCBjbG9jayBkZWx0YSB2YWx1ZSxcbiAyNTE6XHRcdCAgd2hpY2ggaXMgYWx3YXlzIGFkZGVkIHRvIHRpbWUgdmFsdWVzIHVzZWQgaW4gdGhlIGtlcm5lbC4gVGhlIFB0UFxuIDI1MjpcdFx0ICBkcml2ZXIgcHJvdmlkZXMgdGhlIHJhdyBjbG9jayB2YWx1ZSB3aXRob3V0IHRoZSBkZWx0YSB0b1xuIDI1MzpcdFx0ICB1c2Vyc3BhY2UuIFRoYXQgd2F5IHVzZXJzcGFjZSBwcm9ncmFtcyBsaWtlIGNocm9ueSBjb3VsZCBzdGVlclxuIDI1NDpcdFx0ICB0aGUga2VybmVsIGNsb2NrLlxuIDI1NTpcdFxuIDI1NjpcdGNvbmZpZyBQVFBfTkVUQ19WNF9USU1FUlxuIDI1NzpcdFx0dHJpc3RhdGUgXCYjMzQ7TlhQIE5FVEMgVjQgVGltZXIgUFRQIERyaXZlclwmIzM0O1xuIDI1ODpcdFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS1xuIDI1OTpcdFx0ZGVwZW5kcyBvbiBQQ0lfTVNJXG4gMjYwOlx0XHRoZWxwXG4gMjYxOlx0XHQgIFRoaXMgZHJpdmVyIGFkZHMgc3VwcG9ydCBmb3IgdXNpbmcgdGhlIE5YUCBORVRDIFY0IFRpbWVyIGFzIGEgUFRQXG4gMjYyOlx0XHQgIGNsb2NrLCB0aGUgY2xvY2sgaXMgdXNlZCBieSBFTkVUQyBWNCBvciBORVRDIFY0IFN3aXRjaCBmb3IgUFRQIHRpbWVcbiAyNjM6XHRcdCAgc3luY2hyb25pemF0aW9uLiBJdCBhbHNvIHN1cHBvcnRzIHBlcmlvZGljIG91dHB1dCBzaWduYWwgKGUuZy4gUFBTKVxuIDI2NDpcdFx0ICBhbmQgZXh0ZXJuYWwgdHJpZ2dlciB0aW1lc3RhbXBpbmcuXG4gMjY1Olx0XG4gMjY2Olx0ZW5kbWVudVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MzU3CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMTk5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVGFyZ2V0IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYFBUUF9ORVRDX1Y0X1RJTUVSYCwgYW5kIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGlzIGRlcGVuZHMgb24gYFBUUF8xNTg4X0NMT0NLYCBhbmQgYFBDSV9NU0lgLiBTdHJhaWdodCBhd2F5LCBJIHNlZSBpdCYjMzk7cyBhIFBDSSBkcml2ZXIuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0NhbiBJIGV2ZW4gdG91Y2ggdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyYjMzQ7IEdpdmVuIGl0JiMzOTtzIGZvciB0aGUgJiMzNDtOWFAgTkVUQyBWNCBUaW1lciwmIzM0OyBteSBndXQgcmVhY3Rpb24gaXMgcHJvYmFibHkgbm90LiBFbXVsYXRpbmcgdGhhdCBzcGVjaWZpYyBOWFAgaGFyZHdhcmUgaW4gc29tZXRoaW5nIGxpa2UgUUVNVSBzb3VuZHMgbGlrZSBhIGxvbmcgc2hvdC4KCldhaXQgYSBzZWNvbmTigKYgKnN5emthbGxlciouIFRoaXMgY291bGQgYmUgaW50ZXJlc3RpbmcuIElmIHRoZSBkcml2ZXIgaXMgYnVpbHQgaW50byB0aGUga2VybmVsIGFuZCBQQ0kgaXMgZnV6emVkLCB3aGV0aGVyIHRocm91Z2ggdlBDSSBvciBqdXN0IHByb2JpbmcsIHN5emthbGxlciAqY2FuKiBmdXp6IFBDSSBkcml2ZXJzLiBJbiBmYWN0LCBJIHNlZW0gdG8gcmVjYWxsIGl0IGhhcyBhIFBDSSBmdXp6ZXIgc3BlY2lmaWNhbGx5LiBUaGlzIG1lYW5zIGl0IGNvdWxkIGluamVjdCBQQ0kgZGV2aWNlcyBhbmQgZnV6eiB0aGVpciBwcm9iZSBmdW5jdGlvbnMhIFRoYXQmIzM5O3Mga2V5LiBTbyBgbmV0Y190aW1lcl9wcm9iZWAgYW5kIGBuZXRjX3RpbWVyX2luaXRgIGFyZSAqcG90ZW50aWFsbHkqIHJlYWNoYWJsZS4gTm93LCB0aGUgb2J2aW91cyBuZXh0IHN0ZXAgaXMgdG8gbWFrZSBzdXJlIGBuZXRjX3RpbWVyX3Byb2JlYCBpcyBhY3R1YWxseSB0aGUgUENJIHByb2JlIGZ1bmN0aW9uIEkgdGhpbmsgaXQgaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25ldGNfdGltZXJfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL3B0cF9uZXRjLmM9OTU5PXN0YXRpYyBpbnQgbmV0Y190aW1lcl9nZXRfZ2xvYmFsX2lwX3JldihzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTk2Ny1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6OTY4OnN0YXRpYyBpbnQgbmV0Y190aW1lcl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtOTY5LVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz0xMDM1PXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBuZXRjX3RpbWVyX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTEwMzctXHQuaWRfdGFibGUgPSBuZXRjX3RpbWVyX2lkX3RhYmxlLFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYzoxMDM4Olx0LnByb2JlID0gbmV0Y190aW1lcl9wcm9iZSxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAzOS1cdC5yZW1vdmUgPSBuZXRjX3RpbWVyX3JlbW92ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDI6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTEyNQoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBUaGlzIFBDSSBEcml2ZXIgQ2hhbmdlKioKCk9rYXksIHNvIHRoaXMgaXMgZGVmaW5pdGVseSBhIFBDSSBkcml2ZXIg4oCTIHRoYXQgbXVjaCBpcyBjbGVhci4gQW5kLCBpZiBJJiMzOTttIHVuZGVyc3RhbmRpbmcgdGhpcyBjb3JyZWN0bHksIFN5emthbGxlciBjYW4sIGluIHRoZW9yeSwgZnV6eiBpdCBieSBlbXVsYXRpbmcgUENJIGRldmljZXMuIFRoYXQmIzM5O3MgYSBzb2xpZCBzdHJhdGVneSwgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIGZ1enppbmcgdGhlc2UgdHlwZXMgb2Ygc3lzdGVtcy4KCk5vdywgdGhpcyBwYXRjaC4uLiBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGFkZGluZyBgbmV0Y190aW1lcl9vZmZzZXRfd3JpdGUocHJpdiwgMCk7YCB0byBgbmV0Y190aW1lcl9pbml0KClgLiBUaGUgY29yZSBvZiBteSBhc3Nlc3NtZW50IGlzIGFsd2F5cyAmIzM5O2lzIHRoaXMgZnVuY3Rpb25hbD8mIzM5Oy4gU28sIHllcywgaXQmIzM5O3Mgd3JpdGluZyB0byBhIHJlZ2lzdGVyLCB0aGF0JiMzOTtzIHVuZGVuaWFibHkgZnVuY3Rpb25hbC4gVGhhdCBmdW5jdGlvbiBjYWxsLCBgbmV0Y190aW1lcl9vZmZzZXRfd3JpdGVgLi4uIGl0IG5lZWRzIGRlZXBlciBzY3J1dGlueS4gSSB3YW50IHRvIHVuZGVyc3RhbmQgd2hhdCB0aGF0IHdyaXRlIG9wZXJhdGlvbiBhY3R1YWxseSAqZG9lcyogaW4gdGhlIGNvbnRleHQgb2YgdGhpcyBQQ0kgZHJpdmVyLiBHb3R0YSBkaWcgaW50byB0aGF0IGZ1bmN0aW9uJiMzOTtzIGltcGxlbWVudGF0aW9uIG5leHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25ldGNfdGltZXJfb2Zmc2V0X3dyaXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvcHRwX25ldGMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTE1NT1zdGF0aWMgdTY0IG5ldGNfdGltZXJfb2Zmc2V0X3JlYWQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXG4tLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy0xNjYtXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjE2NzpzdGF0aWMgdm9pZCBuZXRjX3RpbWVyX29mZnNldF93cml0ZShzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdiwgdTY0IG9mZnNldClcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTY4LXtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTY3MD1zdGF0aWMgaW50IG5ldGNfdGltZXJfYWRqdGltZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgczY0IGRlbHRhKVxuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtNjg1LVx0dG1yX29mZiAmIzQzOz0gZGVsdGE7XG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjY4NjpcdG5ldGNfdGltZXJfb2Zmc2V0X3dyaXRlKHByaXYsIHRtcl9vZmYpO1xuZHJpdmVycy9wdHAvcHRwX25ldGMuYy02ODctXG4tLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz03MTY9c3RhdGljIGludCBuZXRjX3RpbWVyX3NldHRpbWU2NChzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTcyNS1cdG5ldGNfdGltZXJfZGlzYWJsZV9maXBlcihwcml2KTtcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6NzI2Olx0bmV0Y190aW1lcl9vZmZzZXRfd3JpdGUocHJpdiwgMCk7XG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTcyNy1cdG5ldGNfdGltZXJfY250X3dyaXRlKHByaXYsIG5zKTtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTc1NT1zdGF0aWMgdm9pZCBuZXRjX3RpbWVyX2luaXQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXG4tLVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy03ODEtXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjc4MjpcdG5ldGNfdGltZXJfb2Zmc2V0X3dyaXRlKHByaXYsIDApO1xuZHJpdmVycy9wdHAvcHRwX25ldGMuYy03ODMtXHRrdGltZV9nZXRfcmVhbF90czY0KFx1MDAyNm5vdyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU5NTQKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqSW5pdGlhbCBBc3Nlc3NtZW50OiBGdW5jdGlvbmFsIE1vZGlmaWNhdGlvbiAmYW1wOyBLZXkgRnVuY3Rpb24gSWRlbnRpZmljYXRpb24qKgoKUmlnaHQsIHNvIHRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGguIFRoZSBjb3JlIG9mIHRoaXMsIHRoZSBmdW5jdGlvbiBJIG5lZWQgdG8gZm9jdXMgb24sIGlzIGBuZXRjX3RpbWVyX2luaXRgLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBhY3Rpb24gaXMuIEFuZCBJIHNlZSwgdGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb24gSSBuZWVkIHRvIGNoZWNrIGlzIGBQVFBfTkVUQ19WNF9USU1FUmAuIFRoYXQmIzM5O3MgdGhlIGdhdGUsIHRoZSBzd2l0Y2ggdGhhdCBlbmFibGVzIHRoaXMgd2hvbGUgdGhpbmcuCgpOb3csIGEgY3JpdGljYWwgc3RlcCBpcyBjb25maXJtaW5nIGhvdyBgbmV0Y190aW1lcl9pbml0YCBpcyBpbnZva2VkLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgYG5ldGNfdGltZXJfaW5pdGAgaXMgY2FsbGVkIGJ5IGBuZXRjX3RpbWVyX3Byb2JlYCwgd2hpY2ggd2lsbCBnaXZlIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIG92ZXJhbGwgY2FsbCBmbG93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZXRjX3RpbWVyX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL3B0cF9uZXRjLmM9NzM1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gbmV0Y190aW1lcl9wdHBfY2FwcyA9IHtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTc1NC1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6NzU1OnN0YXRpYyB2b2lkIG5ldGNfdGltZXJfaW5pdChzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtNzU2LXtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTg5MT1zdGF0aWMgaXJxcmV0dXJuX3QgbmV0Y190aW1lcl9pc3IoaW50IGlycSwgdm9pZCAqZGF0YSlcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTkyNS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6OTI2OnN0YXRpYyBpbnQgbmV0Y190aW1lcl9pbml0X21zaXhfaXJxKHN0cnVjdCBuZXRjX3RpbWVyICpwcml2KVxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy05Mjcte1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM9OTY4PXN0YXRpYyBpbnQgbmV0Y190aW1lcl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTk5Ni1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6OTk3Olx0ZXJyID0gbmV0Y190aW1lcl9pbml0X21zaXhfaXJxKHByaXYpO1xuZHJpdmVycy9wdHAvcHRwX25ldGMuYy05OTgtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAwMC1cbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6MTAwMTpcdG5ldGNfdGltZXJfaW5pdChwcml2KTtcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAwMi1cdHByaXYtXHUwMDNlY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoXHUwMDI2cHJpdi1cdTAwM2VjYXBzLCBkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMjozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NjcxCgkJCQkJCQlvdXRwdXQ6IDg0CgkJCQkJCQl0aG91Z2h0czogMjQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBOWFAgTkVUQyBWNCBUaW1lciBQYXRjaCoqCgpPa2F5LCBzbyB0aGUgdGFzayBhdCBoYW5kIGlzIGRlZmluaXRlbHkgcmVsYXRlZCB0byB0aGUgYG5ldGNfdGltZXJfaW5pdGAgZnVuY3Rpb24uIFRoYXQmIzM5O3MgdGhlIGtleSBzeW1ib2wgd2UgbmVlZCB0byBmb2N1cyBvbi4gQmFzZWQgb24gdGhlIGRlc2NyaXB0aW9uLCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgYFBUUF9ORVRDX1Y0X1RJTUVSYC4gVGhlIHJlYXNvbmluZyBpcyBzdHJhaWdodGZvcndhcmQ6IHRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCByZWdpc3RlciB3cml0ZSBkdXJpbmcgdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIG9mIHRoZSBOWFAgTkVUQyBWNCBUaW1lciBQVFAgZHJpdmVyLCBhbmQgdGhpcyBjb2RlIHBhdGggaXMgYWN0aXZhdGVkIGR1cmluZyBQQ0kgZGV2aWNlIHByb2JpbmcuCgpOb3csIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCB3ZSYjMzk7cmUgbm90IG1pc3NpbmcgYW55IG90aGVyIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9ucy4gTGV0JiMzOTtzIHNlZS4uLiBgUFRQX05FVENfVjRfVElNRVJgIGRlcGVuZHMgb24gYFBUUF8xNTg4X0NMT0NLYCBhbmQgYFBDSV9NU0lgLiBgUFRQXzE1ODhfQ0xPQ0tgIGlzIGEgZmFpcmx5IGdlbmVyaWMgY29uZmlndXJhdGlvbiBvcHRpb24sIHNvIGp1c3QgdG8gYmUgc2FmZSwgSSYjMzk7bGwgZmxhZyB0aGF0IGFzIGEgcG90ZW50aWFsIHJlcXVpcmVtZW50LCB0aG91Z2ggYFBUUF9ORVRDX1Y0X1RJTUVSYCBpcyB0aGUgc3BlY2lmaWMgb25lIHRvIGVtcGhhc2l6ZS4gVGhlcmVmb3JlLCBJIHdpbGwgcmV0dXJuIGBQVFBfTkVUQ19WNF9USU1FUmAuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgY2FsbCBncmFwaCBmb3IgYG5ldGNfdGltZXJfaW5pdGAuIEFoLCBpdCYjMzk7cyBjYWxsZWQgZnJvbSBgbmV0Y190aW1lcl9wcm9iZWAuIFRoYXQgbWVhbnMgaXQmIzM5O3Mgb25seSBjYWxsZWQgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiwgc28gaXQmIzM5O3Mgbm90IGEgcGVyZm9ybWFuY2UtY3JpdGljYWwgaG90LXBhdGguIEdvb2QuIEV2ZXJ5dGhpbmcgc2VlbXMgaW4gb3JkZXIuIEkmIzM5O20gcmVhZHkgdG8gcHJvY2VlZCB3aXRoIHNldHRpbmcgdGhlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtQVFBfTkVUQ19WNF9USU1FUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25ldGNfdGltZXJfaW5pdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgZnVuY3Rpb25hbCByZWdpc3RlciB3cml0ZSB0byB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2Ugb2YgdGhlIE5YUCBORVRDIFY0IFRpbWVyIFBUUCBkcml2ZXIuIFRoaXMgY2FuIGJlIHJlYWNoZWQgdmlhIFBDSSBkZXZpY2UgcHJvYmluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UFRQX05FVENfVjRfVElNRVImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZXRjX3RpbWVyX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGZ1bmN0aW9uYWwgcmVnaXN0ZXIgd3JpdGUgdG8gdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIG9mIHRoZSBOWFAgTkVUQyBWNCBUaW1lciBQVFAgZHJpdmVyLiBUaGlzIGNhbiBiZSByZWFjaGVkIHZpYSBQQ0kgZGV2aWNlIHByb2JpbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMjozMjo1OC45NTEzNDI1MjJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDM2NzQzNjc3MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQVFBfTkVUQ19WNF9USU1FUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5ldGNfdGltZXJfaW5pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBmdW5jdGlvbmFsIHJlZ2lzdGVyIHdyaXRlIHRvIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBvZiB0aGUgTlhQIE5FVEMgVjQgVGltZXIgUFRQIGRyaXZlci4gVGhpcyBjYW4gYmUgcmVhY2hlZCB2aWEgUENJIGRldmljZSBwcm9iaW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMjozMjo1OC45NTEzNDg0NTNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5Nzc5ODc0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDRhMGI2NjY5MzQ5NTFkZDQyNTQzZTMzNjU5ZWI0MzM2MGU5OTI2MDhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBKdWwgMjAgMDI6MzI6NTcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wdHAvcHRwX25ldGMuYyBiL2RyaXZlcnMvcHRwL3B0cF9uZXRjLmNcXG5pbmRleCA5NGU5NTJlZTY5OTAyZS4uNWUzODFjMzU0ZDc0NmEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9wdHAvcHRwX25ldGMuY1xcbisrKyBiL2RyaXZlcnMvcHRwL3B0cF9uZXRjLmNcXG5AQCAtNzc5LDYgKzc3OSw3IEBAIHN0YXRpYyB2b2lkIG5ldGNfdGltZXJfaW5pdChzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcXG4gXFx0bmV0Y190aW1lcl93cihwcml2LCBORVRDX1RNUl9GSVBFUl9DVFJMLCBmaXBlcl9jdHJsKTtcXG4gXFx0bmV0Y190aW1lcl93cihwcml2LCBORVRDX1RNUl9FQ1RSTCwgTkVUQ19UTVJfREVGQVVMVF9FVFRGX1RIUik7XFxuIFxcbitcXHRuZXRjX3RpbWVyX29mZnNldF93cml0ZShwcml2LCAwKTtcXG4gXFx0a3RpbWVfZ2V0X3JlYWxfdHM2NChcXHUwMDI2bm93KTtcXG4gXFx0bnMgPSB0aW1lc3BlYzY0X3RvX25zKFxcdTAwMjZub3cpO1xcbiBcXHRuZXRjX3RpbWVyX2NudF93cml0ZShwcml2LCBucyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMyOjU5LjM0OTg3NzQzNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk5Njg4OTI1MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUFRQX05FVENfVjRfVElNRVJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZXRjX3RpbWVyX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgZnVuY3Rpb25hbCByZWdpc3RlciB3cml0ZSB0byB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2Ugb2YgdGhlIE5YUCBORVRDIFY0IFRpbWVyIFBUUCBkcml2ZXIuIFRoaXMgY2FuIGJlIHJlYWNoZWQgdmlhIFBDSSBkZXZpY2UgcHJvYmluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0YTBiNjY2OTM0OTUxZGQ0MjU0M2UzMzY1OWViNDMzNjBlOTkyNjA4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMDI6MzI6NTcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jIGIvZHJpdmVycy9wdHAvcHRwX25ldGMuY1xuaW5kZXggOTRlOTUyZWU2OTkwMmUuLjVlMzgxYzM1NGQ3NDZhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9wdHAvcHRwX25ldGMuY1xuKysrIGIvZHJpdmVycy9wdHAvcHRwX25ldGMuY1xuQEAgLTc3OSw2ICs3NzksNyBAQCBzdGF0aWMgdm9pZCBuZXRjX3RpbWVyX2luaXQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXG4gXHRuZXRjX3RpbWVyX3dyKHByaXYsIE5FVENfVE1SX0ZJUEVSX0NUUkwsIGZpcGVyX2N0cmwpO1xuIFx0bmV0Y190aW1lcl93cihwcml2LCBORVRDX1RNUl9FQ1RSTCwgTkVUQ19UTVJfREVGQVVMVF9FVFRGX1RIUik7XG4gXG4rXHRuZXRjX3RpbWVyX29mZnNldF93cml0ZShwcml2LCAwKTtcbiBcdGt0aW1lX2dldF9yZWFsX3RzNjQoXHUwMDI2bm93KTtcbiBcdG5zID0gdGltZXNwZWM2NF90b19ucyhcdTAwMjZub3cpO1xuIFx0bmV0Y190aW1lcl9jbnRfd3JpdGUocHJpdiwgbnMpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDI6MzI6NTkuMzQ5ODc4OTU0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDYzOTM2MjkwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyBhIFBUUCBEcml2ZXIgUGF0Y2gqKlxuXG5SaWdodCwgc28gdGhlcmUncyBhIHBhdGNoIHRoYXQncyBiZWVuIGFwcGxpZWQsIGFuZCBpdCdzIHRvdWNoaW5nIGBkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jYC4gU3BlY2lmaWNhbGx5LCB0aGV5J3ZlIGFkZGVkIHRoaXMgYG5ldGNfdGltZXJfb2Zmc2V0X3dyaXRlKHByaXYsIDApO2AgY2FsbCB3aXRoaW4gYG5ldGNfdGltZXJfaW5pdCgpYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCBvZiB0aGlzIGNoYW5nZS4gSXQncyBub3QgZW5vdWdoIHRvIHNlZSB0aGUgbGluZSwgSSBuZWVkIHRvIGtub3cgKndoeSogaXQncyB0aGVyZS5cblxuRmlyc3QgdGhpbmdzIGZpcnN0LCBJJ20gZ29pbmcgdG8gcHVsbCB1cCBgZHJpdmVycy9wdHAvcHRwX25ldGMuY2AgdG8gc2VlIHRoZSBzdXJyb3VuZGluZyBjb2RlLCBhbmQgSSdsbCBhbHNvIGNoZWNrIGl0cyBjb3JyZXNwb25kaW5nIGBLY29uZmlnYCBmaWxlLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIGRyaXZlciBpcyBldmVuIGVuYWJsZWQgaW4gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBhbmQgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgY29udHJvbCBpdHMgaW5jbHVzaW9uLiBBcmUgdGhlcmUgZGVwZW5kZW5jaWVzIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gQXJlIHRoZXJlIHNwZWNpZmljIGhhcmR3YXJlIGZlYXR1cmVzIHRpZWQgdG8gdGhpcyBkcml2ZXI/IFRoaXMgYEtjb25maWdgIGNoZWNrIGlzIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgcmVhY2ggb2YgdGhlIGNoYW5nZS4gQmFzaWNhbGx5LCBJIG5lZWQgdG8ga25vdyAqd2hlbiogdGhpcyBgbmV0Y190aW1lcl9vZmZzZXRfd3JpdGVgIHdpbGwgYWN0dWFsbHkgYmUgZXhlY3V0ZWQuIEkgYWxzbyB3YW50IHRvIGNoZWNrIHRoZSBmdW5jdGlvbidzIGRlY2xhcmF0aW9uIHRvIHNlZSB0aGUgZXhwZWN0ZWQgaW5wdXQuXG5cbk9uY2UgSSd2ZSBlc3RhYmxpc2hlZCB0aGUgYmFzaWNzLCBJJ2xsIHJldmlldyB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggYWdhaW4gZm9yIG1vcmUgY2x1ZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4OTAsIk91dHB1dFRva2VucyI6NzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjAzLjk4OTI0MzczOFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTQ0MDUxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZXRjX3RpbWVyX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9wdHAvcHRwX25ldGMuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTczNT1zdGF0aWMgY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIG5ldGNfdGltZXJfcHRwX2NhcHMgPSB7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTc1NC1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjc1NTpzdGF0aWMgdm9pZCBuZXRjX3RpbWVyX2luaXQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy03NTYte1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz04OTE9c3RhdGljIGlycXJldHVybl90IG5ldGNfdGltZXJfaXNyKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTkyNS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjkyNjpzdGF0aWMgaW50IG5ldGNfdGltZXJfaW5pdF9tc2l4X2lycShzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTkyNy17XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTk2OD1zdGF0aWMgaW50IG5ldGNfdGltZXJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTk5Ni1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjk5NzpcXHRlcnIgPSBuZXRjX3RpbWVyX2luaXRfbXNpeF9pcnEocHJpdik7XFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy05OTgtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAwMC1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjEwMDE6XFx0bmV0Y190aW1lcl9pbml0KHByaXYpO1xcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAwMi1cXHRwcml2LVxcdTAwM2VjbG9jayA9IHB0cF9jbG9ja19yZWdpc3RlcihcXHUwMDI2cHJpdi1cXHUwMDNlY2FwcywgZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDI6MzM6MDQuMDQ4Njg4NDg3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1OTQ0NjI5LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUFRQXzE1ODhfQ0xPQ0tfTkVUQ1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3B0cC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMjozMzowNC4xMDQ2NDE1NzZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTAwNjkzNzk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6XG5cbioqRmluZGluZyB0aGUgS2NvbmZpZyBmb3IgcHRwX25ldGMuYyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB0cmFjayBkb3duIHRoZSBLY29uZmlnIGZpbGUgYXNzb2NpYXRlZCB3aXRoIGBwdHBfbmV0Yy5jYC4gVGhhdOKAmXMgbXkgZmlyc3QgdGFzay4gVGhpcyBpcyBwcmV0dHkgc3RhbmRhcmQ7IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcyByZWxhdGVkIHRvIHRoYXQgc3BlY2lmaWMgZHJpdmVyIG9yIG1vZHVsZS4gVGhpcyBpcyBhbGwgYWJvdXQgaG93IGl04oCZcyBlbmFibGVkIG9yIGRpc2FibGVkLCBhbmQgd2hhdCBlbHNlIG5lZWRzIHRvIGJlIGluIHBsYWNlIGZvciBpdCB0byBmdW5jdGlvbiBjb3JyZWN0bHkuIEknbGwgbmVlZCB0aGUgS2NvbmZpZyB0byBzZWUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgd2hpY2ggd2lsbCBoZWxwIGRldGVybWluZSBob3cgdGhpcyBtb2R1bGUgaXMgc2V0IHVwLiBLbm93aW5nIHRoZSBLY29uZmlnIGlzIGFic29sdXRlbHkgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgYW5kIG1hbmlwdWxhdGluZyBhbnkga2VybmVsIG1vZHVsZSdzIGJlaGF2aW9yLiBJIG5lZWQgdG8ga25vdyB3aGVyZSB0aGlzIGlzIGRlZmluZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gaGllcmFyY2h5LiBJdCdzIHRpbWUgdG8gc3RhcnQgc2VhcmNoaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODAyLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIiwiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjA3LjIwNTMzNjk2MVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzE0NDY0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwdHBfbmV0Y1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3B0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9wdHAvTWFrZWZpbGU9MjM9b2JqLSQoQ09ORklHX1BUUF9TMzkwKVxcdFxcdFxcdCs9IHB0cF9zMzkwLm9cXG5kcml2ZXJzL3B0cC9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfUFRQX05FVENfVjRfVElNRVIpXFx0XFx0Kz0gcHRwX25ldGMub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMjozMzowNy4yNjI1MDk1NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyMTYyNzQ2MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCB0YWtpbmcgb24gdGhlIHBlcnNvbmEgeW91IHJlcXVlc3RlZDpcblxuKipEaWdnaW5nIGludG8gdGhlIFBUUCBOZXRjbG9jayBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBgQ09ORklHX1BUUF9ORVRDX1Y0X1RJTUVSYC4gSSBrbm93IHRoaXMgaXMgaW4gdGhlIGBkcml2ZXJzL3B0cC9LY29uZmlnYCBmaWxlLCBzbyB0aGF0J3Mgd2hlcmUgSSdsbCBzdGFydC4gSSdtIGFmdGVyIHNvbWV0aGluZyBzcGVjaWZpYyBoZXJlLCBhbmQgSSdsbCBuZWVkIHRvIGtub3cgd2hldGhlciB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIFBUUCBuZXRjbG9jayB2NCB0aW1lciBpcyBlbmFibGVkLCBkaXNhYmxlZCwgb3IgaWYgaXQgaXMgZXZlbiBhdmFpbGFibGUuIEZyb20gdGhlcmUsIEknbGwgZGV0ZXJtaW5lIGhvdyBpdCBpbXBhY3RzIHRoZSBvdGhlciBjb25maWd1cmF0aW9ucyBpbiB0aGlzIGJ1aWxkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTAyLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDI6MzM6MTAuNDc4Nzg2Mjk0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2OTM5ODY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBQVFBfTkVUQ19WNF9USU1FUlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3B0cC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL0tjb25maWc9MjQ0PWNvbmZpZyBQVFBfUzM5MFxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yNTUtXFxuZHJpdmVycy9wdHAvS2NvbmZpZzoyNTY6Y29uZmlnIFBUUF9ORVRDX1Y0X1RJTUVSXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yNTctXFx0dHJpc3RhdGUgXFxcIk5YUCBORVRDIFY0IFRpbWVyIFBUUCBEcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjEwLjUzNTczNDQ5MloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjE5NzA1MzMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIERlcGVuZGVuY3kgTGFuZHNjYXBlIG9mIFBUUF9ORVRDX1Y0X1RJTUVSKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gdGhvcm91Z2hseSB2ZXQgdGhlIGRlcGVuZGVuY2llcyBvZiBgUFRQX05FVENfVjRfVElNRVJgLiBJJ20gZ29pbmcgdG8gd2FudCB0byB1bmRlcnN0YW5kICpldmVyeXRoaW5nKiBpdCByZWxpZXMgb24uIFdlJ3JlIHRhbGtpbmcgYWJvdXQgYSBjb3JlIHRpbWluZyBjb21wb25lbnQgaGVyZSwgc28gdGhpcyBhbmFseXNpcyBuZWVkcyB0byBiZSByb2NrIHNvbGlkLiBJJ20gdGhpbmtpbmcsIGJleW9uZCB0aGUgb2J2aW91cyBsaWJyYXJpZXMgYW5kIG1vZHVsZXMgaXQgZGlyZWN0bHkgY2FsbHMsIEkgbmVlZCB0byBsb29rIGZvciBpbmRpcmVjdCBkZXBlbmRlbmNpZXMsIHRvby4gQXJlIHRoZXJlIGFueSBzaGFyZWQgcmVzb3VyY2VzLCBtdXRleGVzLCBvciBpbnRlcnJ1cHQgbGluZXMgaW52b2x2ZWQ/IFdoYXQncyB0aGUgcG90ZW50aWFsIGZvciB2ZXJzaW9uIGNvbmZsaWN0cyBvciBzdWJ0bGUsIHVuZXhwZWN0ZWQgaW50ZXJhY3Rpb25zPyBLbm93aW5nIGhvdyB0aGlzIHRpbWVyIGJlaGF2ZXMgaW4gdGhlIGNvbnRleHQgb2YgdGhlIHdob2xlIHN5c3RlbSBpcyBjcml0aWNhbC4gSSdsbCBuZWVkIHRvIG1hcCBvdXQgdGhlIGVudGlyZSBkZXBlbmRlbmN5IGdyYXBoLCBwaW5wb2ludGluZyBhbnkgcG90ZW50aWFsIHBvaW50cyBvZiBmYWlsdXJlIG9yIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLiBUaGlzIGlzbid0IGp1c3QgYWJvdXQgbWFraW5nIHRoZSBjb2RlIHdvcms7IGl0J3MgYWJvdXQgbWFraW5nIGl0ICpyb2J1c3QqIGFuZCBwcmVkaWN0YWJsZSBpbiBhbGwgb3BlcmF0aW9uYWwgc2NlbmFyaW9zLiBHb3R0YSBlbnN1cmUgdGhpcyB0aW1lciBvcGVyYXRlcyByZWxpYWJseSB1bmRlciBhbGwgcG9zc2libGUgZW52aXJvbm1lbnRhbCBjb25kaXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDE3LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDI6MzM6MTQuNzU1NDQyMDU1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDc5MTAwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJQVFBfTkVUQ19WNF9USU1FUlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3B0cC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL0tjb25maWc9MjQ0PWNvbmZpZyBQVFBfUzM5MFxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yNTUtXFxuZHJpdmVycy9wdHAvS2NvbmZpZzoyNTY6Y29uZmlnIFBUUF9ORVRDX1Y0X1RJTUVSXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yNTctXFx0dHJpc3RhdGUgXFxcIk5YUCBORVRDIFY0IFRpbWVyIFBUUCBEcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjE0LjgxNjIzOTU3M1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjAxMDg4MjE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkV4YW1pbmluZyBQVFAgRHJpdmVyIENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBkaXZlIGludG8gdGhlIFBUUCBkcml2ZXIgY29uZmlndXJhdGlvbi4gSSdtIHRoaW5raW5nIHRoZSBiZXN0IHBsYWNlIHRvIHN0YXJ0IGlzIHRoZSBgZHJpdmVycy9wdHAvS2NvbmZpZ2AgZmlsZSwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDI1Ni4gVGhhdCBhcmVhIHR5cGljYWxseSBkZWFscyB3aXRoIGNvcmUgZmVhdHVyZSBzZWxlY3Rpb25zIGFuZCBwb3RlbnRpYWxseSBzb21lIG9mIHRoZSBtb3JlIGdyYW51bGFyIGhhcmR3YXJlLXNwZWNpZmljIG9wdGlvbnMuIEkgd2FudCB0byBzZWUgaG93IHRoZSBLY29uZmlnIGlzIHN0cnVjdHVyZWQsIGlmIHRoZXJlIGFyZSBhbnkgbmV3IG9yIGNoYW5nZWQgZGVwZW5kZW5jaWVzIGluIHRoaXMgdmVyc2lvbiwgYW5kIGlmIHRoZSBkZWZhdWx0cyBhcmUgc2FuZS4gSSdtIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiB3aGV0aGVyIHRoZXkndmUgc2ltcGxpZmllZCB0aGUgc2VsZWN0aW9uIGxvZ2ljLCBvciBpZiBpdCdzIGJlY29tZSBtb3JlIGNvbXBsZXggd2l0aCByZWNlbnQgZGV2ZWxvcG1lbnRzIGluIGhhcmR3YXJlIG9yIG5ldyBwcm90b2NvbHMgdGhhdCBtaWdodCBoYXZlIGJlZW4gYWRkZWQuIExldCdzIHNlZSBpZiB0aGlzIHJldmVhbHMgYW55IHBvdGVudGlhbCBpc3N1ZXMgb3IgYW55IG9wcG9ydHVuaXRpZXMgZm9yIG9wdGltaXphdGlvbnMuIExpbmUgMjU2IHNob3VsZCBiZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgdG8gb3JpZW50IG15c2VsZi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgwNywiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjE4LjQxNzMyOTg1OVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTEzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3B0cC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI1MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDI1MDpcXHRcXHQgIGludGVyZmFjZS4gVGhpcyB3b3JrcyBieSBhZGRpbmcgYSBpbi1rZXJuZWwgY2xvY2sgZGVsdGEgdmFsdWUsXFxuIDI1MTpcXHRcXHQgIHdoaWNoIGlzIGFsd2F5cyBhZGRlZCB0byB0aW1lIHZhbHVlcyB1c2VkIGluIHRoZSBrZXJuZWwuIFRoZSBQdFBcXG4gMjUyOlxcdFxcdCAgZHJpdmVyIHByb3ZpZGVzIHRoZSByYXcgY2xvY2sgdmFsdWUgd2l0aG91dCB0aGUgZGVsdGEgdG9cXG4gMjUzOlxcdFxcdCAgdXNlcnNwYWNlLiBUaGF0IHdheSB1c2Vyc3BhY2UgcHJvZ3JhbXMgbGlrZSBjaHJvbnkgY291bGQgc3RlZXJcXG4gMjU0OlxcdFxcdCAgdGhlIGtlcm5lbCBjbG9jay5cXG4gMjU1OlxcdFxcbiAyNTY6XFx0Y29uZmlnIFBUUF9ORVRDX1Y0X1RJTUVSXFxuIDI1NzpcXHRcXHR0cmlzdGF0ZSBcXFwiTlhQIE5FVEMgVjQgVGltZXIgUFRQIERyaXZlclxcXCJcXG4gMjU4OlxcdFxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tcXG4gMjU5OlxcdFxcdGRlcGVuZHMgb24gUENJX01TSVxcbiAyNjA6XFx0XFx0aGVscFxcbiAyNjE6XFx0XFx0ICBUaGlzIGRyaXZlciBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBOWFAgTkVUQyBWNCBUaW1lciBhcyBhIFBUUFxcbiAyNjI6XFx0XFx0ICBjbG9jaywgdGhlIGNsb2NrIGlzIHVzZWQgYnkgRU5FVEMgVjQgb3IgTkVUQyBWNCBTd2l0Y2ggZm9yIFBUUCB0aW1lXFxuIDI2MzpcXHRcXHQgIHN5bmNocm9uaXphdGlvbi4gSXQgYWxzbyBzdXBwb3J0cyBwZXJpb2RpYyBvdXRwdXQgc2lnbmFsIChlLmcuIFBQUylcXG4gMjY0OlxcdFxcdCAgYW5kIGV4dGVybmFsIHRyaWdnZXIgdGltZXN0YW1waW5nLlxcbiAyNjU6XFx0XFxuIDI2NjpcXHRlbmRtZW51XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjE4LjQxNzM5MjE4OVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTY5MTc4NjU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVGFyZ2V0IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBQVFBfTkVUQ19WNF9USU1FUmAsIGFuZCBpdCdzIHByZXR0eSBjbGVhciB0aGlzIGRlcGVuZHMgb24gYFBUUF8xNTg4X0NMT0NLYCBhbmQgYFBDSV9NU0lgLiBTdHJhaWdodCBhd2F5LCBJIHNlZSBpdCdzIGEgUENJIGRyaXZlci4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiQ2FuIEkgZXZlbiB0b3VjaCB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/XCIgR2l2ZW4gaXQncyBmb3IgdGhlIFwiTlhQIE5FVEMgVjQgVGltZXIsXCIgbXkgZ3V0IHJlYWN0aW9uIGlzIHByb2JhYmx5IG5vdC4gRW11bGF0aW5nIHRoYXQgc3BlY2lmaWMgTlhQIGhhcmR3YXJlIGluIHNvbWV0aGluZyBsaWtlIFFFTVUgc291bmRzIGxpa2UgYSBsb25nIHNob3QuXG5cbldhaXQgYSBzZWNvbmTigKYgKnN5emthbGxlciouIFRoaXMgY291bGQgYmUgaW50ZXJlc3RpbmcuIElmIHRoZSBkcml2ZXIgaXMgYnVpbHQgaW50byB0aGUga2VybmVsIGFuZCBQQ0kgaXMgZnV6emVkLCB3aGV0aGVyIHRocm91Z2ggdlBDSSBvciBqdXN0IHByb2JpbmcsIHN5emthbGxlciAqY2FuKiBmdXp6IFBDSSBkcml2ZXJzLiBJbiBmYWN0LCBJIHNlZW0gdG8gcmVjYWxsIGl0IGhhcyBhIFBDSSBmdXp6ZXIgc3BlY2lmaWNhbGx5LiBUaGlzIG1lYW5zIGl0IGNvdWxkIGluamVjdCBQQ0kgZGV2aWNlcyBhbmQgZnV6eiB0aGVpciBwcm9iZSBmdW5jdGlvbnMhIFRoYXQncyBrZXkuIFNvIGBuZXRjX3RpbWVyX3Byb2JlYCBhbmQgYG5ldGNfdGltZXJfaW5pdGAgYXJlICpwb3RlbnRpYWxseSogcmVhY2hhYmxlLiBOb3csIHRoZSBvYnZpb3VzIG5leHQgc3RlcCBpcyB0byBtYWtlIHN1cmUgYG5ldGNfdGltZXJfcHJvYmVgIGlzIGFjdHVhbGx5IHRoZSBQQ0kgcHJvYmUgZnVuY3Rpb24gSSB0aGluayBpdCBpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM1NywiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5OSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjI0Ljk4NjU3MjQxM1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjExODUyOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibmV0Y190aW1lcl9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL3B0cF9uZXRjLmM9OTU5PXN0YXRpYyBpbnQgbmV0Y190aW1lcl9nZXRfZ2xvYmFsX2lwX3JldihzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtOTY3LVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6OTY4OnN0YXRpYyBpbnQgbmV0Y190aW1lcl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTk2OS1cXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz0xMDM1PXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBuZXRjX3RpbWVyX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAzNy1cXHQuaWRfdGFibGUgPSBuZXRjX3RpbWVyX2lkX3RhYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6MTAzODpcXHQucHJvYmUgPSBuZXRjX3RpbWVyX3Byb2JlLFxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAzOS1cXHQucmVtb3ZlID0gbmV0Y190aW1lcl9yZW1vdmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjI1LjA0Nzc2MjQwMloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTY1ODcxNzE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBUaGlzIFBDSSBEcml2ZXIgQ2hhbmdlKipcblxuT2theSwgc28gdGhpcyBpcyBkZWZpbml0ZWx5IGEgUENJIGRyaXZlciDigJMgdGhhdCBtdWNoIGlzIGNsZWFyLiBBbmQsIGlmIEknbSB1bmRlcnN0YW5kaW5nIHRoaXMgY29ycmVjdGx5LCBTeXprYWxsZXIgY2FuLCBpbiB0aGVvcnksIGZ1enogaXQgYnkgZW11bGF0aW5nIFBDSSBkZXZpY2VzLiBUaGF0J3MgYSBzb2xpZCBzdHJhdGVneSwgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIGZ1enppbmcgdGhlc2UgdHlwZXMgb2Ygc3lzdGVtcy5cblxuTm93LCB0aGlzIHBhdGNoLi4uIGl0IGxvb2tzIGxpa2UgaXQncyBhZGRpbmcgYG5ldGNfdGltZXJfb2Zmc2V0X3dyaXRlKHByaXYsIDApO2AgdG8gYG5ldGNfdGltZXJfaW5pdCgpYC4gVGhlIGNvcmUgb2YgbXkgYXNzZXNzbWVudCBpcyBhbHdheXMgJ2lzIHRoaXMgZnVuY3Rpb25hbD8nLiBTbywgeWVzLCBpdCdzIHdyaXRpbmcgdG8gYSByZWdpc3RlciwgdGhhdCdzIHVuZGVuaWFibHkgZnVuY3Rpb25hbC4gVGhhdCBmdW5jdGlvbiBjYWxsLCBgbmV0Y190aW1lcl9vZmZzZXRfd3JpdGVgLi4uIGl0IG5lZWRzIGRlZXBlciBzY3J1dGlueS4gSSB3YW50IHRvIHVuZGVyc3RhbmQgd2hhdCB0aGF0IHdyaXRlIG9wZXJhdGlvbiBhY3R1YWxseSAqZG9lcyogaW4gdGhlIGNvbnRleHQgb2YgdGhpcyBQQ0kgZHJpdmVyLiBHb3R0YSBkaWcgaW50byB0aGF0IGZ1bmN0aW9uJ3MgaW1wbGVtZW50YXRpb24gbmV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTEyNSwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAyOjMzOjI5LjAxMzYzNTkzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzUyMTk0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZXRjX3RpbWVyX29mZnNldF93cml0ZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL3B0cF9uZXRjLmM9MTU1PXN0YXRpYyB1NjQgbmV0Y190aW1lcl9vZmZzZXRfcmVhZChzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTY2LVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6MTY3OnN0YXRpYyB2b2lkIG5ldGNfdGltZXJfb2Zmc2V0X3dyaXRlKHN0cnVjdCBuZXRjX3RpbWVyICpwcml2LCB1NjQgb2Zmc2V0KVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTY4LXtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM9NjcwPXN0YXRpYyBpbnQgbmV0Y190aW1lcl9hZGp0aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzNjQgZGVsdGEpXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTY4NS1cXHR0bXJfb2ZmICs9IGRlbHRhO1xcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmM6Njg2OlxcdG5ldGNfdGltZXJfb2Zmc2V0X3dyaXRlKHByaXYsIHRtcl9vZmYpO1xcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtNjg3LVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz03MTY9c3RhdGljIGludCBuZXRjX3RpbWVyX3NldHRpbWU2NChzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtNzI1LVxcdG5ldGNfdGltZXJfZGlzYWJsZV9maXBlcihwcml2KTtcXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjcyNjpcXHRuZXRjX3RpbWVyX29mZnNldF93cml0ZShwcml2LCAwKTtcXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTcyNy1cXHRuZXRjX3RpbWVyX2NudF93cml0ZShwcml2LCBucyk7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTc1NT1zdGF0aWMgdm9pZCBuZXRjX3RpbWVyX2luaXQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTc4MS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjc4MjpcXHRuZXRjX3RpbWVyX29mZnNldF93cml0ZShwcml2LCAwKTtcXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTc4My1cXHRrdGltZV9nZXRfcmVhbF90czY0KFxcdTAwMjZub3cpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMjozMzoyOS4wNzExNjMyOThaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY1MzIwMDU0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudDogRnVuY3Rpb25hbCBNb2RpZmljYXRpb24gXHUwMDI2IEtleSBGdW5jdGlvbiBJZGVudGlmaWNhdGlvbioqXG5cblJpZ2h0LCBzbyB0aGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSB3ZSdyZSBkZWFsaW5nIHdpdGguIFRoZSBjb3JlIG9mIHRoaXMsIHRoZSBmdW5jdGlvbiBJIG5lZWQgdG8gZm9jdXMgb24sIGlzIGBuZXRjX3RpbWVyX2luaXRgLiBUaGF0J3Mgd2hlcmUgdGhlIGFjdGlvbiBpcy4gQW5kIEkgc2VlLCB0aGUgZW5hYmxpbmcgY29uZmlndXJhdGlvbiBJIG5lZWQgdG8gY2hlY2sgaXMgYFBUUF9ORVRDX1Y0X1RJTUVSYC4gVGhhdCdzIHRoZSBnYXRlLCB0aGUgc3dpdGNoIHRoYXQgZW5hYmxlcyB0aGlzIHdob2xlIHRoaW5nLlxuXG5Ob3csIGEgY3JpdGljYWwgc3RlcCBpcyBjb25maXJtaW5nIGhvdyBgbmV0Y190aW1lcl9pbml0YCBpcyBpbnZva2VkLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgYG5ldGNfdGltZXJfaW5pdGAgaXMgY2FsbGVkIGJ5IGBuZXRjX3RpbWVyX3Byb2JlYCwgd2hpY2ggd2lsbCBnaXZlIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIG92ZXJhbGwgY2FsbCBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTU0LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDI6MzM6MzMuNzI0MzY1NDEyWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjM0MjMwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZXRjX3RpbWVyX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9wdHAvcHRwX25ldGMuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTczNT1zdGF0aWMgY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIG5ldGNfdGltZXJfcHRwX2NhcHMgPSB7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTc1NC1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjc1NTpzdGF0aWMgdm9pZCBuZXRjX3RpbWVyX2luaXQoc3RydWN0IG5ldGNfdGltZXIgKnByaXYpXFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy03NTYte1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYz04OTE9c3RhdGljIGlycXJldHVybl90IG5ldGNfdGltZXJfaXNyKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTkyNS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjkyNjpzdGF0aWMgaW50IG5ldGNfdGltZXJfaW5pdF9tc2l4X2lycShzdHJ1Y3QgbmV0Y190aW1lciAqcHJpdilcXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTkyNy17XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jPTk2OD1zdGF0aWMgaW50IG5ldGNfdGltZXJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jLTk5Ni1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjk5NzpcXHRlcnIgPSBuZXRjX3RpbWVyX2luaXRfbXNpeF9pcnEocHJpdik7XFxuZHJpdmVycy9wdHAvcHRwX25ldGMuYy05OTgtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAwMC1cXG5kcml2ZXJzL3B0cC9wdHBfbmV0Yy5jOjEwMDE6XFx0bmV0Y190aW1lcl9pbml0KHByaXYpO1xcbmRyaXZlcnMvcHRwL3B0cF9uZXRjLmMtMTAwMi1cXHRwcml2LVxcdTAwM2VjbG9jayA9IHB0cF9jbG9ja19yZWdpc3RlcihcXHUwMDI2cHJpdi1cXHUwMDNlY2FwcywgZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDI6MzM6MzMuNzgwNzEzOTAxWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0NDcxNjg2MjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIE5YUCBORVRDIFY0IFRpbWVyIFBhdGNoKipcblxuT2theSwgc28gdGhlIHRhc2sgYXQgaGFuZCBpcyBkZWZpbml0ZWx5IHJlbGF0ZWQgdG8gdGhlIGBuZXRjX3RpbWVyX2luaXRgIGZ1bmN0aW9uLiBUaGF0J3MgdGhlIGtleSBzeW1ib2wgd2UgbmVlZCB0byBmb2N1cyBvbi4gQmFzZWQgb24gdGhlIGRlc2NyaXB0aW9uLCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgYFBUUF9ORVRDX1Y0X1RJTUVSYC4gVGhlIHJlYXNvbmluZyBpcyBzdHJhaWdodGZvcndhcmQ6IHRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCByZWdpc3RlciB3cml0ZSBkdXJpbmcgdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIG9mIHRoZSBOWFAgTkVUQyBWNCBUaW1lciBQVFAgZHJpdmVyLCBhbmQgdGhpcyBjb2RlIHBhdGggaXMgYWN0aXZhdGVkIGR1cmluZyBQQ0kgZGV2aWNlIHByb2JpbmcuXG5cbk5vdywgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHdlJ3JlIG5vdCBtaXNzaW5nIGFueSBvdGhlciBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMuIExldCdzIHNlZS4uLiBgUFRQX05FVENfVjRfVElNRVJgIGRlcGVuZHMgb24gYFBUUF8xNTg4X0NMT0NLYCBhbmQgYFBDSV9NU0lgLiBgUFRQXzE1ODhfQ0xPQ0tgIGlzIGEgZmFpcmx5IGdlbmVyaWMgY29uZmlndXJhdGlvbiBvcHRpb24sIHNvIGp1c3QgdG8gYmUgc2FmZSwgSSdsbCBmbGFnIHRoYXQgYXMgYSBwb3RlbnRpYWwgcmVxdWlyZW1lbnQsIHRob3VnaCBgUFRQX05FVENfVjRfVElNRVJgIGlzIHRoZSBzcGVjaWZpYyBvbmUgdG8gZW1waGFzaXplLiBUaGVyZWZvcmUsIEkgd2lsbCByZXR1cm4gYFBUUF9ORVRDX1Y0X1RJTUVSYC5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEknbGwgcXVpY2tseSBjaGVjayB0aGUgY2FsbCBncmFwaCBmb3IgYG5ldGNfdGltZXJfaW5pdGAuIEFoLCBpdCdzIGNhbGxlZCBmcm9tIGBuZXRjX3RpbWVyX3Byb2JlYC4gVGhhdCBtZWFucyBpdCdzIG9ubHkgY2FsbGVkIGR1cmluZyBkZXZpY2UgaW5pdGlhbGl6YXRpb24sIHNvIGl0J3Mgbm90IGEgcGVyZm9ybWFuY2UtY3JpdGljYWwgaG90LXBhdGguIEdvb2QuIEV2ZXJ5dGhpbmcgc2VlbXMgaW4gb3JkZXIuIEknbSByZWFkeSB0byBwcm9jZWVkIHdpdGggc2V0dGluZyB0aGUgcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjY3MSwiT3V0cHV0VG9rZW5zIjo4NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMjozMzozOS4yMjc4ODQ2MzhaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MDg4MTk1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUFRQX05FVENfVjRfVElNRVJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZXRjX3RpbWVyX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgZnVuY3Rpb25hbCByZWdpc3RlciB3cml0ZSB0byB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2Ugb2YgdGhlIE5YUCBORVRDIFY0IFRpbWVyIFBUUCBkcml2ZXIuIFRoaXMgY2FuIGJlIHJlYWNoZWQgdmlhIFBDSSBkZXZpY2UgcHJvYmluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQVFBfTkVUQ19WNF9USU1FUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5ldGNfdGltZXJfaW5pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBmdW5jdGlvbmFsIHJlZ2lzdGVyIHdyaXRlIHRvIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBvZiB0aGUgTlhQIE5FVEMgVjQgVGltZXIgUFRQIGRyaXZlci4gVGhpcyBjYW4gYmUgcmVhY2hlZCB2aWEgUENJIGRldmljZSBwcm9iaW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhv99n[1] Phase: Succeeded StartedAt: 2026-07-20 02:33:51 +0000 UTC FinishedAt: 2026-07-20 02:33:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-20 02:33:51 +0000 UTC FinishedAt: 2026-07-20 02:33:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2] Phase: Succeeded StartedAt: 2026-07-20 02:33:51 +0000 UTC FinishedAt: 2026-07-20 04:52:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 02:33:51 +0000 UTC FinishedAt: 2026-07-20 04:52:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 02:33:51 +0000 UTC FinishedAt: 2026-07-20 02:34:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 02:33:51 +0000 UTC FinishedAt: 2026-07-20 02:33:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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-workflowhv99n/series-workflowhv99n-convert-artifact-2630648029/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 02:34:01 +0000 UTC FinishedAt: 2026-07-20 03:09:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 02:34:01 +0000 UTC FinishedAt: 2026-07-20 03:09:24 +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:*afed0518-36d9-4171-ac09-7de0fe9a49bf,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-workflowhv99n/series-workflowhv99n-convert-artifact-2630648029/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": "968dc5f5-88c6-4609-85f1-ddfa2dc58381", "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-workflowhv99n/series-workflowhv99n-build-action-2840548371/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 02:34:01 +0000 UTC FinishedAt: 2026-07-20 03:09:14 +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:*afed0518-36d9-4171-ac09-7de0fe9a49bf,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-workflowhv99n/series-workflowhv99n-convert-artifact-2630648029/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": "968dc5f5-88c6-4609-85f1-ddfa2dc58381", "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-workflowhv99n/series-workflowhv99n-build-action-2840548371/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:09:24 +0000 UTC FinishedAt: 2026-07-20 03:09:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:09:24 +0000 UTC FinishedAt: 2026-07-20 03:09:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:09:24 +0000 UTC FinishedAt: 2026-07-20 03:09:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:09:24 +0000 UTC FinishedAt: 2026-07-20 03:09:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-workflowhv99n/series-workflowhv99n-convert-artifact-4265839288/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:09:34 +0000 UTC FinishedAt: 2026-07-20 03:11:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:09:34 +0000 UTC FinishedAt: 2026-07-20 03:11:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*968dc5f5-88c6-4609-85f1-ddfa2dc58381,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-workflowhv99n/series-workflowhv99n-build-action-2840548371/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-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:11:31 +0000 UTC FinishedAt: 2026-07-20 03:11:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:11:31 +0000 UTC FinishedAt: 2026-07-20 03:11:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:11:31 +0000 UTC FinishedAt: 2026-07-20 03:56:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:11:31 +0000 UTC FinishedAt: 2026-07-20 03:56:07 +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:*afed0518-36d9-4171-ac09-7de0fe9a49bf,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-workflowhv99n/series-workflowhv99n-convert-artifact-4265839288/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": "03c7523d-b32b-47ed-8b15-87110c78a1c3", "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-workflowhv99n/series-workflowhv99n-build-action-2891424676/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:11:31 +0000 UTC FinishedAt: 2026-07-20 03:55:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*afed0518-36d9-4171-ac09-7de0fe9a49bf,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-workflowhv99n/series-workflowhv99n-convert-artifact-4265839288/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": "03c7523d-b32b-47ed-8b15-87110c78a1c3", "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-workflowhv99n/series-workflowhv99n-build-action-2891424676/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:56:07 +0000 UTC FinishedAt: 2026-07-20 03:56:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:56:07 +0000 UTC FinishedAt: 2026-07-20 03:56:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:56:07 +0000 UTC FinishedAt: 2026-07-20 03:58:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:56:07 +0000 UTC FinishedAt: 2026-07-20 03:58:31 +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:*03c7523d-b32b-47ed-8b15-87110c78a1c3,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-workflowhv99n/series-workflowhv99n-build-action-2891424676/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-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:58:41 +0000 UTC FinishedAt: 2026-07-20 04:52:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:58:41 +0000 UTC FinishedAt: 2026-07-20 04:52:20 +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":["netc_timer_init"],"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:*968dc5f5-88c6-4609-85f1-ddfa2dc58381,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*03c7523d-b32b-47ed-8b15-87110c78a1c3,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-workflowhv99n/series-workflowhv99n-build-action-2840548371/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-workflowhv99n/series-workflowhv99n-build-action-2891424676/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:58:41 +0000 UTC FinishedAt: 2026-07-20 04:01:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:58:41 +0000 UTC FinishedAt: 2026-07-20 04:01:07 +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":["netc_timer_init"],"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-workflowhv99n/series-workflowhv99n-convert-artifact-1031639057/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:58:41 +0000 UTC FinishedAt: 2026-07-20 03:58:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:58:41 +0000 UTC FinishedAt: 2026-07-20 03:58:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 03:58:41 +0000 UTC FinishedAt: 2026-07-20 03:58:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 04:01:30 +0000 UTC FinishedAt: 2026-07-20 04:52:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhv99n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"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":["netc_timer_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56d96fededd61192cd7cc8d2b0f36adfd59036c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_NETC_V4_TIMER"],"series_id":"5ca9195b-70bc-481e-9a19-2bb7a494bbb9","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-20 04:01:30 +0000 UTC FinishedAt: 2026-07-20 04:52:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*968dc5f5-88c6-4609-85f1-ddfa2dc58381,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*03c7523d-b32b-47ed-8b15-87110c78a1c3,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-workflowhv99n/series-workflowhv99n-build-action-2840548371/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-workflowhv99n/series-workflowhv99n-build-action-2891424676/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-workflowhv99n/series-workflowhv99n-convert-artifact-1031639057/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,}