Name: series-workflowt7m6w Phase: Failed StartedAt: 2026-08-24 08:53:09 +0000 UTC FinishedAt: 2026-08-24 09:36:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7m6w[0] Phase: Succeeded StartedAt: 2026-08-24 08:53:09 +0000 UTC FinishedAt: 2026-08-24 09:36:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7m6w[0].run-triage Phase: Succeeded StartedAt: 2026-08-24 08:53:09 +0000 UTC FinishedAt: 2026-08-24 09:36:35 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBibmdlYCAoQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0KSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgbmV0d29yayBkZXZpY2UgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIG9yIHRlc3RlZCBieSB0aGUgZnV6emVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwOTozNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDFhZTQ1YmVjNTA0YmY2NGVmYzY2ODdlNmUzNGE2YzQwN2IzNGI5MjNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAyNCAwOTozNTozMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbmluZGV4IGE0Mjg4ZjAyNThmODcuLjA5NzNjYzI1YTNlYzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY1xuQEAgLTMyNjcsNiAmIzQzOzMyNjcsMzMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRkZXZfc3RhdF9vcHMgYm5nZV9zdGF0X29wcyA9IHtcbiBcdC5nZXRfYmFzZV9zdGF0c1x0XHQ9IGJuZ2VfZ2V0X2Jhc2Vfc3RhdHMsXG4gfTtcbiBcbiYjNDM7c3RhdGljIGludCBibmdlX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcylcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBibmdlX25ldCAqYm4gPSBuZXRkZXZfcHJpdihkZXYpO1xuJiM0MztcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBibi1cdTAwM2ViZDtcbiYjNDM7XHR1MzIgZmxhZ3MgPSBibi1cdTAwM2Vwcml2X2ZsYWdzO1xuJiM0MztcbiYjNDM7XHRmbGFncyBcdTAwMjY9IH5CTkdFX05FVF9FTl9UUEE7XG4mIzQzO1x0aWYgKGZlYXR1cmVzIFx1MDAyNiBORVRJRl9GX0dST19IVylcbiYjNDM7XHRcdGZsYWdzIHw9IEJOR0VfTkVUX0VOX0dSTztcbiYjNDM7XHRlbHNlIGlmIChmZWF0dXJlcyBcdTAwMjYgTkVUSUZfRl9MUk8pXG4mIzQzO1x0XHRmbGFncyB8PSBCTkdFX05FVF9FTl9MUk87XG4mIzQzO1xuJiM0MztcdGlmIChmbGFncyA9PSBibi1cdTAwM2Vwcml2X2ZsYWdzKVxuJiM0MztcdFx0cmV0dXJuIDA7XG4mIzQzO1xuJiM0MztcdGJuLVx1MDAzZXByaXZfZmxhZ3MgPSBmbGFncztcbiYjNDM7XG4mIzQzO1x0aWYgKCFuZXRpZl9ydW5uaW5nKGRldikpIHtcbiYjNDM7XHRcdGJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTtcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0Ym5nZV9jbG9zZV9jb3JlKGJuKTtcbiYjNDM7XHRibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7XG4mIzQzO1x0cmV0dXJuIGJuZ2Vfb3Blbl9jb3JlKGJuKTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHtcbiBcdC5uZG9fb3Blblx0XHQ9IGJuZ2Vfb3BlbixcbiBcdC5uZG9fc3RvcFx0XHQ9IGJuZ2VfY2xvc2UsXG5AQCAtMzI3NCw2ICYjNDM7MzMwMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0ge1xuIFx0Lm5kb19nZXRfc3RhdHM2NFx0PSBibmdlX2dldF9zdGF0czY0LFxuIFx0Lm5kb19zZXRfcnhfbW9kZV9hc3luY1x0PSBibmdlX3NldF9yeF9tb2RlLFxuIFx0Lm5kb19mZWF0dXJlc19jaGVja1x0PSBibmdlX2ZlYXR1cmVzX2NoZWNrLFxuJiM0MztcdC5uZG9fc2V0X2ZlYXR1cmVzXHQ9IGJuZ2Vfc2V0X2ZlYXR1cmVzLFxuIH07XG4gXG4gc3RhdGljIHZvaWQgYm5nZV9pbml0X21hY19hZGRyKHN0cnVjdCBibmdlX2RldiAqYmQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MzU8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgKEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgZGV2aWNlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgYnkgdGhlIGZ1enplci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAxYWU0NWJlYzUwNGJmNjRlZmM2Njg3ZTZlMzRhNmM0MDdiMzRiOTIzCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMjQgMDk6MzU6MzEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMKaW5kZXggYTQyODhmMDI1OGY4Ny4uMDk3M2NjMjVhM2VjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX25ldGRldi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuYwpAQCAtMzI2Nyw2ICYjNDM7MzI2NywzMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldGRldl9zdGF0X29wcyBibmdlX3N0YXRfb3BzID0gewogCS5nZXRfYmFzZV9zdGF0cwkJPSBibmdlX2dldF9iYXNlX3N0YXRzLAogfTsKIAomIzQzO3N0YXRpYyBpbnQgYm5nZV9zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgYm5nZV9uZXQgKmJuID0gbmV0ZGV2X3ByaXYoZGV2KTsKJiM0MzsJc3RydWN0IGJuZ2VfZGV2ICpiZCA9IGJuLSZndDtiZDsKJiM0MzsJdTMyIGZsYWdzID0gYm4tJmd0O3ByaXZfZmxhZ3M7CiYjNDM7CiYjNDM7CWZsYWdzICZhbXA7PSB+Qk5HRV9ORVRfRU5fVFBBOwomIzQzOwlpZiAoZmVhdHVyZXMgJmFtcDsgTkVUSUZfRl9HUk9fSFcpCiYjNDM7CQlmbGFncyB8PSBCTkdFX05FVF9FTl9HUk87CiYjNDM7CWVsc2UgaWYgKGZlYXR1cmVzICZhbXA7IE5FVElGX0ZfTFJPKQomIzQzOwkJZmxhZ3MgfD0gQk5HRV9ORVRfRU5fTFJPOwomIzQzOwomIzQzOwlpZiAoZmxhZ3MgPT0gYm4tJmd0O3ByaXZfZmxhZ3MpCiYjNDM7CQlyZXR1cm4gMDsKJiM0MzsKJiM0MzsJYm4tJmd0O3ByaXZfZmxhZ3MgPSBmbGFnczsKJiM0MzsKJiM0MzsJaWYgKCFuZXRpZl9ydW5uaW5nKGRldikpIHsKJiM0MzsJCWJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTsKJiM0MzsJCXJldHVybiAwOwomIzQzOwl9CiYjNDM7CiYjNDM7CWJuZ2VfY2xvc2VfY29yZShibik7CiYjNDM7CWJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTsKJiM0MzsJcmV0dXJuIGJuZ2Vfb3Blbl9jb3JlKGJuKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHsKIAkubmRvX29wZW4JCT0gYm5nZV9vcGVuLAogCS5uZG9fc3RvcAkJPSBibmdlX2Nsb3NlLApAQCAtMzI3NCw2ICYjNDM7MzMwMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0gewogCS5uZG9fZ2V0X3N0YXRzNjQJPSBibmdlX2dldF9zdGF0czY0LAogCS5uZG9fc2V0X3J4X21vZGVfYXN5bmMJPSBibmdlX3NldF9yeF9tb2RlLAogCS5uZG9fZmVhdHVyZXNfY2hlY2sJPSBibmdlX2ZlYXR1cmVzX2NoZWNrLAomIzQzOwkubmRvX3NldF9mZWF0dXJlcwk9IGJuZ2Vfc2V0X2ZlYXR1cmVzLAogfTsKIAogc3RhdGljIHZvaWQgYm5nZV9pbml0X21hY19hZGRyKHN0cnVjdCBibmdlX2RldiAqYmQpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MjgKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNgLiBJdCYjMzk7cyBpbnRyb2R1Y2luZyBhIGBibmdlX3NldF9mZWF0dXJlc2AgZnVuY3Rpb24gYW5kIGhvb2tpbmcgaXQgdXAgdG8gYC5uZG9fc2V0X2ZlYXR1cmVzYCBpbiBgYm5nZV9uZXRkZXZfb3BzYC4gVGhlIGRyaXZlciYjMzk7cyBuYW1lIGlzIGBibmdlYCDigJMgc291bmRzIGxpa2UgYSBCcm9hZGNvbSBOZXRYdHJlbWUtRSBHaWdhYml0IEV0aGVybmV0IGRyaXZlciwgcmlnaHQ/IEJ1dCB3YWl0LCBJIG5lZWQgdG8gY29uZmlybSBpZiB0aGlzIGlzIGEgZHJpdmVyIGZvciAqcGh5c2ljYWwqIGhhcmR3YXJlLiBJIG5lZWQgdG8gYmUgc3VyZSBiZWZvcmUgSSBkaXZlIGRlZXBlci4KClJpZ2h0LCAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UmIzM0OyBjb25maXJtcyB0aGUgbG9jYXRpb24uIFRpbWUgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZXMgb3Igc2ltaWxhciBjb25maWd1cmF0aW9uIGZpbGVzIHdpdGhpbiB0aGUgYGJyb2FkY29tL2JuZ2VgIGRpcmVjdG9yeSB0byBnZXQgc29tZSBjbGFyaXR5IG9uIHdoZXRoZXIgdGhpcyBpcyBtZWFudCBmb3IgYSBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSBkZXZpY2UuIEkgbmVlZCB0byBrbm93IGlmIHRoaXMgaXMgYSBoYXJkd2FyZS1ib3VuZCBkcml2ZXIgb3Igc29tZXRoaW5nIG1vcmUgYWJzdHJhY3QgYmVmb3JlIGFzc2Vzc2luZyB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgZmVhdHVyZSBzZXQgZnVuY3Rpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Ym5nZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjE3OCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vTWFrZWZpbGU9MjA9b2JqLSQoQ09ORklHX0JDTUFTUCkgJiM0Mzs9IGFzcDIvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9NYWtlZmlsZToyMTpvYmotJChDT05GSUdfQk5HRSkgJiM0Mzs9IGJuZ2UvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZT0zPW9iai0kKENPTkZJR19CTkdFKSAmIzQzOz0gYm5nX2VuLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGUtNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6NTpibmdfZW4teSA6PSBibmdlX2NvcmUubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo2Olx0ICAgIGJuZ2VfZGV2bGluay5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjc6XHQgICAgYm5nZV9od3JtLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6ODpcdCAgICBibmdlX2h3cm1fbGliLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6OTpcdCAgICBibmdlX3JtZW0ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZToxMDpcdCAgICBibmdlX3Jlc2MubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZToxMTpcdCAgICBibmdlX25ldGRldi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjEyOlx0ICAgIGJuZ2VfZXRodG9vbC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjEzOlx0ICAgIGJuZ2VfYXV4ci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjE0Olx0ICAgIGJuZ2VfdHhyeC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjE1Olx0ICAgIGJuZ2VfbGluay5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTAtI2luY2x1ZGUgXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTE6I2luY2x1ZGUgXHUwMDNjbGludXgvYm5nZS9oc2kuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTI6I2luY2x1ZGUgXCYjMzQ7Ym5nZV9ybWVtLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjEzOiNpbmNsdWRlIFwmIzM0O2JuZ2VfcmVzYy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNDojaW5jbHVkZSBcJiMzNDtibmdlX2F1eHIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMDpleHRlcm4gY2hhciBibmdlX2RyaXZlcl9uYW1lW107XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oPTIyPWVudW0gYm9hcmRfaWR4IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI2OnN0cnVjdCBibmdlX2F1eHJfcHJpdiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNy1cdHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlIGF1eF9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyODpcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI5LVx0aW50IGlkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MzI6c3RydWN0IGJuZ2VfcGZfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0zMy1cdHUxNlx0ZndfZmlkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oPTgxPWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTkyLSNkZWZpbmUgQk5HRV9NQVhfUVVFVUVcdFx0OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6OTM6c3RydWN0IGJuZ2VfcXVldWVfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC05NC1cdHU4ICAgICAgcXVldWVfaWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTAzOnN0cnVjdCBibmdlX2RldiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xMDQtXHRzdHJ1Y3QgZGV2aWNlXHQqZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTE0NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjE0NTpcdHN0cnVjdCBibmdlX3BmX2luZm9cdHBmO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTQ2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTE1My1cdC8qIEJhY2tpbmcgc3RvcmVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNTQ6XHRzdHJ1Y3QgYm5nZV9jdHhfbWVtX2luZm9cdCpjdHg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTU4Olx0c3RydWN0IGJuZ2VfaHdfcmVzY1x0aHdfcmVzYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTE1OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMDQtXHR1OFx0XHRcdG1heF9sbHRjO1x0LyogbG9zc2xlc3MgVENzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMDU6XHRzdHJ1Y3QgYm5nZV9xdWV1ZV9pbmZvXHRxX2luZm9bQk5HRV9NQVhfUVVFVUVdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjA2LVx0dThcdFx0XHR0Y190b19xaWR4W0JOR0VfTUFYX1FVRVVFXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTE6XHRzdHJ1Y3QgYm5nZV9pcnFcdFx0KmlycV90Ymw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMTItXHR1MTZcdFx0XHRpcnFzX2FjcXVpcmVkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjE0Olx0c3RydWN0IGJuZ2VfYXV4cl9wcml2XHQqYXV4X3ByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTU6XHRzdHJ1Y3QgYm5nZV9hdXhyX2Rldlx0KmF1eHJfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjE3Olx0c3RydWN0IGJuZ2VfbGlua19pbmZvXHRsaW5rX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjIyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjIzOnN0YXRpYyBpbmxpbmUgYm9vbCBibmdlX2lzX3JvY2VfZW4oc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIyNC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjI4OnN0YXRpYyBpbmxpbmUgYm9vbCBibmdlX2lzX2FnZ19yZXFkKHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMjkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjMwLVx0aWYgKGJkLVx1MDAzZW5ldGRldikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjMxOlx0XHRzdHJ1Y3QgYm5nZV9uZXQgKmJuID0gbmV0ZGV2X3ByaXYoYmQtXHUwMDNlbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIzMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNDM6c3RhdGljIGlubGluZSB2b2lkIGJuZ2Vfd3JpdGVxKHN0cnVjdCBibmdlX2RldiAqYmQsIHU2NCB2YWwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNDQtXHRcdFx0ICAgICAgIHZvaWQgX19pb21lbSAqYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTUtLyogRm9yIFRYIGFuZCBSWCByaW5nIGRvb3JiZWxscyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjU2OnN0YXRpYyBpbmxpbmUgdm9pZCBibmdlX2RiX3dyaXRlKHN0cnVjdCBibmdlX2RldiAqYmQsIHN0cnVjdCBibmdlX2RiX2luZm8gKmRiLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjU3LVx0XHRcdFx0IHUzMiBpZHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjU5Olx0Ym5nZV93cml0ZXEoYmQsIGRiLVx1MDAzZWRiX2tleTY0IHwgREJfUklOR19JRFgoZGIsIGlkeCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNjAtXHRcdCAgICBkYi1cdTAwM2Vkb29yYmVsbCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjYzOmJvb2wgYm5nZV9hdXhfcmVnaXN0ZXJlZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI2NDp1MTYgYm5nZV9hdXhfZ2V0X21zaXgoc3RydWN0IGJuZ2VfZGV2ICpiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNjUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNi0jaW5jbHVkZSBcdTAwM2NsaW51eC9hdXhpbGlhcnlfYnVzLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTc6I2luY2x1ZGUgXHUwMDNjbGludXgvYm5nZS9oc2kuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTk6I2luY2x1ZGUgXCYjMzQ7Ym5nZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIwOiNpbmNsdWRlIFwmIzM0O2JuZ2VfaHdybS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIxOiNpbmNsdWRlIFwmIzM0O2JuZ2VfYXV4ci5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMzpzdGF0aWMgREVGSU5FX0lEQShibmdlX2F1eF9kZXZfaWRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjI1OnN0YXRpYyB2b2lkIGJuZ2VfZmlsbF9tc2l4X3ZlY3Moc3RydWN0IGJuZ2VfZGV2ICpiZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjY6XHRcdFx0XHRzdHJ1Y3QgYm5nZV9tc2l4X2luZm8gKmluZm8pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTI3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6Mjg6XHRzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYgPSBiZC1cdTAwM2VhdXhyX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjktXHRpbnQgbnVtX21zaXgsIGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy00Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NDM6aW50IGJuZ2VfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNDQtXHRcdCAgICAgIHZvaWQgKmhhbmRsZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNDUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo0NjpcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBwY2lfZ2V0X2RydmRhdGEoYXV4cl9kZXYtXHUwMDNlcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjQ3Olx0c3RydWN0IGJuZ2VfYXV4cl9pbmZvICphdXhyX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQ4LVx0aW50IHJjID0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo1NzpcdGlmICghYm5nZV9hdXhfaGFzX2Vub3VnaF9yZXNvdXJjZXMoYmQpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTU4LVx0XHRyYyA9IC1FTk9NRU07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy02Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6Njc6XHRibmdlX2ZpbGxfbXNpeF92ZWNzKGJkLCBiZC1cdTAwM2VhdXhyX2Rldi1cdTAwM2Vtc2l4X2luZm8pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy02OC1cdGF1eHJfZGV2LVx1MDAzZWZsYWdzIHw9IEJOR0VfQVJERVZfTVNJWF9BTExPQztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTc0LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NzU6RVhQT1JUX1NZTUJPTChibmdlX3JlZ2lzdGVyX2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo3Nzp2b2lkIGJuZ2VfdW5yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfYXV4cl9kZXYgKmF1eHJfZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy03OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjc5Olx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShhdXhyX2Rldi1cdTAwM2VwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6ODA6XHRzdHJ1Y3QgYm5nZV9hdXhyX2luZm8gKmF1eHJfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtODEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05MS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjkyOkVYUE9SVF9TWU1CT0woYm5nZV91bnJlZ2lzdGVyX2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo5NDppbnQgYm5nZV9zZW5kX21zZyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYsIHN0cnVjdCBibmdlX2Z3X21zZyAqZndfbXNnKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjk2Olx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShhdXhyX2Rldi1cdTAwM2VwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtOTctXHRzdHJ1Y3Qgb3V0cHV0ICpyZXNwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMDI6XHRyYyA9IGJuZ2VfaHdybV9yZXFfaW5pdChiZCwgcmVxLCAwIC8qIGRvbiYjMzk7dCBjYXJlICovKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTAzLVx0aWYgKHJjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMDY6XHRyYyA9IGJuZ2VfaHdybV9yZXFfcmVwbGFjZShiZCwgcmVxLCBmd19tc2ctXHUwMDNlbXNnLCBmd19tc2ctXHUwMDNlbXNnX2xlbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEwNy1cdGlmIChyYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTEwOlx0Ym5nZV9od3JtX3JlcV90aW1lb3V0KGJkLCByZXEsIGZ3X21zZy1cdTAwM2V0aW1lb3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTExOlx0cmVzcCA9IGJuZ2VfaHdybV9yZXFfaG9sZChiZCwgcmVxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTEyOlx0cmMgPSBibmdlX2h3cm1fcmVxX3NlbmQoYmQsIHJlcSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTExMy1cdHJlc3BfbGVuID0gbGUxNl90b19jcHUocmVzcC1cdTAwM2VyZXNwX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjAtZHJvcF9yZXE6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyMTpcdGJuZ2VfaHdybV9yZXFfZHJvcChiZCwgcmVxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTIyLVx0cmV0dXJuIHJjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjMtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMjQ6RVhQT1JUX1NZTUJPTChibmdlX3NlbmRfbXNnKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMjY6dm9pZCBibmdlX3JkbWFfYXV4X2RldmljZV91bmluaXQoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTI3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTI4Olx0c3RydWN0IGJuZ2VfYXV4cl9wcml2ICphdXhfcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTI5LVx0c3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0MDpzdGF0aWMgdm9pZCBibmdlX2F1eF9kZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE0MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0MjpcdHN0cnVjdCBibmdlX2F1eHJfcHJpdiAqYXV4X3ByaXYgPVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNDM6XHRcdFx0Y29udGFpbmVyX29mKGRldiwgc3RydWN0IGJuZ2VfYXV4cl9wcml2LCBhdXhfZGV2LmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NDpcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldiA9IGF1eF9wcml2LVx1MDAzZWF1eHJfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNDU6XHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKHRvX3BjaV9kZXYoZGV2LVx1MDAzZXBhcmVudCkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NzpcdGlkYV9mcmVlKFx1MDAyNmJuZ2VfYXV4X2Rldl9pZHMsIGF1eF9wcml2LVx1MDAzZWlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTQ4LVx0aWYgKGF1eHJfZGV2KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE1Nzp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2RlbChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNTgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNjU6c3RhdGljIHZvaWQgYm5nZV9zZXRfYXV4cl9kZXZfaW5mbyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE2NjpcdFx0XHRcdCAgIHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE2Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE4Njp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xODcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMDY6dm9pZCBibmdlX3JkbWFfYXV4X2RldmljZV9pbml0KHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIwNy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIwOC1cdHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphdXhfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMDk6XHRzdHJ1Y3QgYm5nZV9hdXhyX2luZm8gKmF1eHJfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjEwOlx0c3RydWN0IGJuZ2VfYXV4cl9wcml2ICphdXhfcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjExOlx0c3RydWN0IGJuZ2VfYXV4cl9kZXYgKmF1eHJfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMTItXHRpbnQgcmM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIxMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjE0Olx0aWYgKCFibmdlX2lzX3JvY2VfZW4oYmQpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMTUtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIyMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjIxOlx0YXV4X3ByaXYtXHUwMDNlaWQgPSBpZGFfYWxsb2MoXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgR0ZQX0tFUk5FTCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIyMi1cdGlmIChhdXhfcHJpdi1cdTAwM2VpZCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjMxLVx0YXV4X2Rldi1cdTAwM2VkZXYucGFyZW50ID0gXHUwMDI2YmQtXHUwMDNlcGRldi1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzMjpcdGF1eF9kZXYtXHUwMDNlZGV2LnJlbGVhc2UgPSBibmdlX2F1eF9kZXZfcmVsZWFzZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjMzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjM1LVx0aWYgKHJjKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzNjpcdFx0aWRhX2ZyZWUoXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgYXV4X3ByaXYtXHUwMDNlaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzctXHRcdGtmcmVlKGF1eF9wcml2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTI1My1cdGJkLVx1MDAzZWF1eHJfZGV2ID0gYXV4cl9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjI1NDpcdGJuZ2Vfc2V0X2F1eHJfZGV2X2luZm8oYXV4cl9kZXYsIGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg9MTQ9c3RydWN0IGh3cm1fYXN5bmNfZXZlbnRfY21wbDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6MTU6c3RydWN0IGJuZ2U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDoxNzpzdHJ1Y3QgYm5nZV9tc2l4X2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0xOC1cdHUzMlx0dmVjdG9yO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtMjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjIzOnN0cnVjdCBibmdlX2Z3X21zZyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTI0LVx0dm9pZFx0Km1zZztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTMwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDozMTpzdHJ1Y3QgYm5nZV9hdXhyX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0zMi1cdHZvaWRcdFx0KmhhbmRsZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oPTM2PWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjQ1OnN0cnVjdCBibmdlX2F1eHJfZGV2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNDYtXHRzdHJ1Y3QgbmV0X2RldmljZVx0Km5ldDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo1MDpcdHN0cnVjdCBibmdlX21zaXhfaW5mb1x0bXNpeF9pbmZvW0JOR0VfTUFYX1JPQ0VfTVNJWF07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTUxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjU0Olx0c3RydWN0IGJuZ2VfYXV4cl9pbmZvXHQqYXV4cl9pbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC01NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3NTp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX3VuaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3Njp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2RlbChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3Nzp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3ODp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2luaXQoc3RydWN0IGJuZ2VfZGV2ICpiZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6Nzk6aW50IGJuZ2VfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC04MC1cdFx0ICAgICAgdm9pZCAqaGFuZGxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6ODE6dm9pZCBibmdlX3VucmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6ODI6aW50IGJuZ2Vfc2VuZF9tc2coc3RydWN0IGJuZ2VfYXV4cl9kZXYgKmFkZXYsIHN0cnVjdCBibmdlX2Z3X21zZyAqZndfbXNnKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtODMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo5OiNpbmNsdWRlIFwmIzM0O2JuZ2UuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDojaW5jbHVkZSBcJiMzNDtibmdlX2RldmxpbmsuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMTojaW5jbHVkZSBcJiMzNDtibmdlX2h3cm0uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMjojaW5jbHVkZSBcJiMzNDtibmdlX2h3cm1fbGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTM6I2luY2x1ZGUgXCYjMzQ7Ym5nZV9saW5rLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYz0xNj1NT0RVTEVfREVTQ1JJUFRJT04oRFJWX1NVTU1BUlkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTg6Y2hhciBibmdlX2RyaXZlcl9uYW1lW10gPSBEUlZfTkFNRTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTIwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBibmdlX3BjaV90YmxbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjctXHR7IFBDSV9WREVWSUNFKEJST0FEQ09NLCAweDE3ODApLCAuZHJpdmVyX2RhdGEgPSBCQ001NzcwOCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzAtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzE6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGJuZ2VfcGNpX3RibCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzpzdGF0aWMgdm9pZCBibmdlX3ByaW50X2RldmljZV9pbmZvKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBlbnVtIGJvYXJkX2lkeCBpZHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo0Mzpib29sIGJuZ2VfYXV4X3JlZ2lzdGVyZWQoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo0NTpcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICpiYV9kZXYgPSBiZC1cdTAwM2VhdXhyX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NTM6c3RhdGljIHZvaWQgYm5nZV9udm1fY2ZnX3Zlcl9nZXQoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjU3Olx0aWYgKCFibmdlX2h3cm1fbnZtX2Rldl9pbmZvKGJkLCBcdTAwMjZudm1faW5mbykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTU4LVx0XHRzbnByaW50ZihiZC1cdTAwM2Vudm1fY2ZnX3ZlciwgRldfVkVSX1NUUl9MRU4sIFwmIzM0OyVkLiVkLiVkXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjYzOnN0YXRpYyBpbnQgYm5nZV9mdW5jX3FjYXBzKHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTY0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo2NzpcdHJjID0gYm5nZV9od3JtX2Z1bmNfcWNhcHMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy02OC1cdGlmIChyYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo3MTpcdHJjID0gYm5nZV9od3JtX3F1ZXVlX3Fwb3J0Y2ZnKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNzItXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo4MDpzdGF0aWMgaW50IGJuZ2VfZnVuY19xcmNhcHNfcWNmZyhzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6ODQ6XHRyYyA9IGJuZ2VfaHdybV9mdW5jX3Jlc2NfcWNhcHMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04NS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjkwOlx0cmMgPSBibmdlX2h3cm1fZnVuY19xY2ZnKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtOTEtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo5NjpcdHJjID0gYm5nZV9od3JtX3ZuaWNfcWNhcHMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy05Ny1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTA0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDU6c3RhdGljIHZvaWQgYm5nZV9md191bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMDYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMDctXHQvKiBjdHggbWVtIGZyZWUgYWZ0ZXIgdW5yZ3RyIG9ubHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTA4Olx0Ym5nZV9od3JtX2Z1bmNfZHJ2X3Vucmd0cihiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwOTpcdGJuZ2VfZnJlZV9jdHhfbWVtKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTEwLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMTI6c3RhdGljIHZvaWQgYm5nZV9zZXRfZGZsdF9yc3NfaGFzaF90eXBlKHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTExMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEyMjpzdGF0aWMgaW50IGJuZ2VfZndfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMjYtXHRiZC1cdTAwM2Vmd19jYXAgPSAwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMjc6XHRyYyA9IGJuZ2VfaHdybV92ZXJfZ2V0KGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTI4LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEzMzpcdGJuZ2VfbnZtX2NmZ192ZXJfZ2V0KGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMzU6XHRyYyA9IGJuZ2VfaHdybV9mdW5jX3Jlc2V0KGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTM2LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE0MTpcdGJuZ2VfaHdybV9md19zZXRfdGltZShiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQzLVx0LyogR2V0IHRoZSByZXNvdXJjZXMgYW5kIGNvbmZpZ3VyYXRpb24gZnJvbSBmaXJtd2FyZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNDQ6XHRyYyA9IGJuZ2VfZnVuY19xY2FwcyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE0NS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNTA6XHRyYyA9IGJuZ2VfYWxsb2NfY3R4X21lbShiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE1MS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTU1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNTY6XHRyYyA9IGJuZ2VfaHdybV9mdW5jX2Rydl9yZ3RyKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTU3LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE2MjpcdHJjID0gYm5nZV9mdW5jX3FyY2Fwc19xY2ZnKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTYzLVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE2ODpcdGJuZ2Vfc2V0X2RmbHRfcnNzX2hhc2hfdHlwZShiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE2OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3Mi1lcnJfZnVuY191bnJndHI6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE3MzpcdGJuZ2VfaHdybV9mdW5jX2Rydl91bnJndHIoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNzQtZXJyX2ZyZWVfY3R4X21lbTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTc1Olx0Ym5nZV9mcmVlX2N0eF9tZW0oYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNzYtXHRyZXR1cm4gcmM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE3OTpzdGF0aWMgdm9pZCBibmdlX3BjaV9kaXNhYmxlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xODAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxODY6c3RhdGljIGludCBibmdlX3BjaV9lbmFibGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE4Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjIwMzpcdHJjID0gcGNpX3JlcXVlc3RfcmVnaW9ucyhwZGV2LCBibmdlX2RyaXZlcl9uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjA0LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjIyMDpzdGF0aWMgdm9pZCBibmdlX3VubWFwX2JhcnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIyMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjIyMjpcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIyMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjM1OnN0YXRpYyB2b2lkIGJuZ2Vfc2V0X21heF9mdW5jX2lycXMoc3RydWN0IGJuZ2VfZGV2ICpiZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjM2LVx0XHRcdFx0ICAgdW5zaWduZWQgaW50IG1heF9pcnFzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNDE6c3RhdGljIGludCBibmdlX2dldF9tYXhfaXJxKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNDk6c3RhdGljIGludCBibmdlX21hcF9kYl9iYXIoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjUwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjYxOnN0YXRpYyBpbnQgYm5nZV9wcm9iZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2My1cdHVuc2lnbmVkIGludCBtYXhfaXJxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjY0Olx0c3RydWN0IGJuZ2VfZGV2ICpiZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjY1LVx0aW50IHJjO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyODA6XHRyYyA9IGJuZ2VfcGNpX2VuYWJsZShwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjgxLVx0aWYgKHJjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyODQ6XHRibmdlX3ByaW50X2RldmljZV9pbmZvKHBkZXYsIGVudC1cdTAwM2Vkcml2ZXJfZGF0YSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6Mjg2Olx0YmQgPSBibmdlX2RldmxpbmtfYWxsb2MocGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI4Ny1cdGlmICghYmQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI5OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzAwOlx0cmMgPSBibmdlX2luaXRfaHdybV9yZXNvdXJjZXMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMDEtXHRpZiAocmMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMwNDpcdHJjID0gYm5nZV9md19yZWdpc3Rlcl9kZXYoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMDUtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzEwOlx0Ym5nZV9kZXZsaW5rX3JlZ2lzdGVyKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTI6XHRtYXhfaXJxcyA9IGJuZ2VfZ2V0X21heF9pcnEocGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxMzpcdGJuZ2Vfc2V0X21heF9mdW5jX2lycXMoYmQsIG1heF9pcnFzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTU6XHRibmdlX2F1eF9pbml0X2RmbHRfY29uZmlnKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTc6XHRyYyA9IGJuZ2VfbmV0X2luaXRfZGZsdF9jb25maWcoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMTgtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMyMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzI0Olx0cmMgPSBibmdlX21hcF9kYl9iYXIoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMjUtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzM1Olx0Ym5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzM3Olx0cmMgPSBibmdlX2FsbG9jX2lycXMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMzgtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzQzOlx0cmMgPSBibmdlX25ldGRldl9hbGxvYyhiZCwgbWF4X2lycXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNDQtXHRpZiAocmMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM0NzpcdGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM0OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM1My1lcnJfZnJlZV9pcnE6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM1NDpcdGJuZ2VfZnJlZV9pcnFzKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNTYtZXJyX3VuaW5pdF9hdXhyOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNTc6XHRibmdlX3JkbWFfYXV4X2RldmljZV91bmluaXQoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM1OS1lcnJfY29uZmlnX3VuaW5pdDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzYwOlx0Ym5nZV9uZXRfdW5pbml0X2RmbHRfY29uZmlnKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjItZXJyX2Z3X3JlZzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzYzOlx0Ym5nZV9kZXZsaW5rX3VucmVnaXN0ZXIoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNjQ6XHRibmdlX2Z3X3VucmVnaXN0ZXJfZGV2KGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjYtZXJyX2h3cm1fY2xlYW51cDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzY3Olx0Ym5nZV9jbGVhbnVwX2h3cm1fcmVzb3VyY2VzKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjktZXJyX2Jhcl91bm1hcDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzcwOlx0Ym5nZV91bm1hcF9iYXJzKHBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM3Mi1lcnJfZGV2bF9mcmVlOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzM6XHRibmdlX2RldmxpbmtfZnJlZShiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM3NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc1LWVycl9wY2lfZGlzYWJsZTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6Mzc2Olx0Ym5nZV9wY2lfZGlzYWJsZShwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc3LVx0cmV0dXJuIHJjO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozODA6c3RhdGljIHZvaWQgYm5nZV9yZW1vdmVfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zODEte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozODI6XHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpO1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MzU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTY2NjIKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSAmIzM5O2JuZ2UmIzM5OyBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGJuZ2VgIGRyaXZlciwgYW5kIGl0JiMzOTtzIHJlZ2lzdGVyaW5nIGl0c2VsZiBhcyBhIFBDSSBkZXZpY2Ug4oCTIGBQQ0lfVkRFVklDRShCUk9BRENPTSwgMHgxNzgwKWAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O1dhaXQgYSBtaW51dGUsIGlzIHRoaXMgKmFjdHVhbGx5KiBhIGhhcmR3YXJlIGRyaXZlciB0aGF0IG5lZWRzIGEgcGh5c2ljYWwgQnJvYWRjb20gRXRoZXJuZXQgY2FyZD8mIzM0OyBJJiMzOTttIHByZXR0eSBzdXJlIGl0IGlzLiBZZXAsIHRoYXQgY29uZmlybXMgaXQg4oCTIGl0JiMzOTtzIGEgQnJvYWRjb20gRXRoZXJuZXQgZHJpdmVyLgoKQnV0LCB0aGUgaW5zdHJ1Y3Rpb25zIEkmIzM5O20gZm9sbG93aW5nIGFyZSB0aHJvd2luZyBtZSBhIGN1cnZlYmFsbCwgc3RhdGluZyBzb21ldGhpbmcgYWJvdXQgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgbmVlZGluZyBwaHlzaWNhbCBoYXJkd2FyZSBjYXJkcyB0aGF0IGFyZW4mIzM5O3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gVGhhdCBsaXN0IGluY2x1ZGVzIHNvbWUgZHJpdmVycyBJJiMzOTttIHZlcnkgZmFtaWxpYXIgd2l0aCwgYnV0IGlzIGBibmdlYCBpbmNsdWRlZCBhcyBhIHN0YW5kYXJkIFFFTVUgZW11bGF0ZWQgZGV2aWNlPyBObywgdGhhdCYjMzk7cyB0aGUga2V5IHF1ZXN0aW9uLiBMZXQgbWUgcXVpY2tseSBydW4gdGhyb3VnaCB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIFFFTVUgZW11bGF0aW9uOiBlMTAwMCwgZTEwMDBlLCBydGw4MTM5LCBwY25ldCwgbmUya19wY2ksIHZteG5ldDMsIHZpcnRpby1uZXQsIGk4MjU1OWVyLCBhbmQgdHVsaXAuIE5vIEJyb2FkY29tIE5ldFh0cmVtZS1FIChibnh0KSBvciBibmdlIGFyZSBsaXN0ZWQgdGhlcmUuCgpBbHJpZ2h0LCBzbyB0aGUgbmV4dCB0aGluZyBJIG5lZWQgdG8gdmVyaWZ5IGlzIHdoZXRoZXIgYGJuZ2VgIGlzIGEgJiMzNDtyZWFsJiMzNDsgZHJpdmVyIHByZXNlbnQgaW4gdGhlIHVwc3RyZWFtIGtlcm5lbCwgb3IgaWYgdGhpcyBpcyBzb21lIGtpbmQgb2Ygc3l6a2FsbGVyIHBzZXVkby1kcml2ZXIsIG9yIHNvbWV0aGluZyBlcXVhbGx5IGV4b3RpYy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgdXBzdHJlYW0ga2VybmVsIHNvdXJjZSB0byBjb25maXJtIGl0cyBleGlzdGVuY2UgYW5kIHZhbGlkaXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Ym5nZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3MzA0CgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqSW52ZXN0aWdhdGluZyBhIENvbmZpZ3VyYXRpb24gSXNzdWUqKgoKSG9sZCBvbiBhIHNlY29uZC4uLiBJIHdhcyBzdXJlIEkgc2F3IGEgYGJuZ2VgIHN5bWJvbCBpbiBhIEJyb2FkY29tIGV0aGVybmV0IEtjb25maWcgZmlsZSwgYnV0IG5vdyBJIGNhbiYjMzk7dCBmaW5kIGl0LiBMZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhhdC4gSXQmIzM5O3Mgb2RkLCBJIHRob3VnaHQgSSB3YXMgbG9va2luZyBpbiB0aGUgcmlnaHQgc3BvdCwgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWdgLiBQZXJoYXBzIEkgYW0gbWlzdGFrZW4gYWJvdXQgdGhlIG5hbWluZyBjb252ZW50aW9uIG9yIHRoZSBsb2NhdGlvbiBvZiB0aGF0IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBPa2F5LCB0aW1lIHRvIHN0ZXAgYmFjayBhbmQgdGFrZSBhIGxvb2sgYXQgdGhlIHdob2xlIGRpcmVjdG9yeSBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGl0LiBJIHdpbGwgc3RhcnQgYnkgZXhhbWluaW5nIHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYCBkaXJlY3RvcnkgaXRzZWxmLCBqdXN0IHRvIGdldCBhIGZyZXNoIHBlcnNwZWN0aXZlIGFuZCBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBhbnl0aGluZyBvYnZpb3VzLiBCZXR0ZXIgdG8gc3RhcnQgd2l0aCB0aGUgYmFzaWMgZGlyZWN0b3J5IHN0cnVjdHVyZSB0aGFuIHRvIGFzc3VtZSBteSBpbml0aWFsIG1lbW9yeSBpcyBjb3JyZWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7YjQ0LmMmIzM0OywKICAgICYjMzQ7YjQ0LmgmIzM0OywKICAgICYjMzQ7YmNtNDkwOF9lbmV0LmMmIzM0OywKICAgICYjMzQ7YmNtNDkwOF9lbmV0LmgmIzM0OywKICAgICYjMzQ7YmNtNjN4eF9lbmV0LmMmIzM0OywKICAgICYjMzQ7YmNtNjN4eF9lbmV0LmgmIzM0OywKICAgICYjMzQ7YmNtc3lzcG9ydC5jJiMzNDssCiAgICAmIzM0O2JjbXN5c3BvcnQuaCYjMzQ7LAogICAgJiMzNDtiZ21hYy1iY21hLW1kaW8uYyYjMzQ7LAogICAgJiMzNDtiZ21hYy1iY21hLmMmIzM0OywKICAgICYjMzQ7YmdtYWMtcGxhdGZvcm0uYyYjMzQ7LAogICAgJiMzNDtiZ21hYy5jJiMzNDssCiAgICAmIzM0O2JnbWFjLmgmIzM0OywKICAgICYjMzQ7Ym54Mi5jJiMzNDssCiAgICAmIzM0O2JueDIuaCYjMzQ7LAogICAgJiMzNDtibngyX2Z3LmgmIzM0OywKICAgICYjMzQ7Y25pYy5jJiMzNDssCiAgICAmIzM0O2NuaWMuaCYjMzQ7LAogICAgJiMzNDtjbmljX2RlZnMuaCYjMzQ7LAogICAgJiMzNDtjbmljX2lmLmgmIzM0OywKICAgICYjMzQ7c2IxMjUwLW1hYy5jJiMzNDssCiAgICAmIzM0O3RnMy5jJiMzNDssCiAgICAmIzM0O3RnMy5oJiMzNDssCiAgICAmIzM0O3VuaW1hYy5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBbCiAgICAmIzM0O2FzcDImIzM0OywKICAgICYjMzQ7Ym5nZSYjMzQ7LAogICAgJiMzNDtibngyeCYjMzQ7LAogICAgJiMzNDtibnh0JiMzNDssCiAgICAmIzM0O2dlbmV0JiMzNDsKICBdCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwOTozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzgzMQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgZGVsaXZlcmVkIGFzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnk6CgoqKldvcmtpbmcgd2l0aCB0aGUgYm5nZSBEcml2ZXIqKgoKQWxyaWdodCwgc28gdGhlIGluaXRpYWwgdGhvdWdodCByZWdpc3RlcnMgdGhhdCBgYm5nZWAgaXMgYSBzdWJkaXJlY3RvcnkuIFRoYXQmIzM5O3MgZ29vZCDigJMgaXQgaGVscHMgbWUgaW1tZWRpYXRlbHkgc3RhcnQgdG8gZm9ybSBhIG1lbnRhbCBtYXAgb2YgdGhlIHByb2plY3Qgc3RydWN0dXJlLiBOb3csIGdpdmVuIHRoYXQgdGhpcyBpcyBhIG5ldHdvcmsgZHJpdmVyLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZ29pbmcgdG8gd2FudCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGRyaXZlciBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0gYW5kIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlLiBUaGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvS2NvbmZpZ2AgZmlsZSBpcyB0aGUgcGVyZmVjdCBwbGFjZSB0byBzdGFydC4gSXQgY29udGFpbnMgdGhlIEtjb25maWcgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlci4gRnJvbSB0aGVyZSBJIGNhbiBkZXRlcm1pbmUgdGhlIHZhcmlvdXMgY29uZmlndXJhYmxlIGNvbXBvbmVudHMgYW5kIGRlcGVuZGVuY2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDsuKiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MDg0CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRmluZGluZyB0aGUgS2NvbmZpZyBmb3IgYGJuZ2VgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIHN1ZGRlbmx5IEkgcmVhbGl6ZSBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgYGJuZ2VgIGRyaXZlci4gV2hlcmUgaXMgdGhhdCBLY29uZmlnIGZpbGU/IEkmIzM5O20gZHJhd2luZyBhIGJsYW5rLiBBbHJpZ2h0LCBubyB3b3JyaWVzLCB0aW1lIHRvIHBsYXkgZGV0ZWN0aXZlLiBUaGUgc3RhbmRhcmQgcHJhY3RpY2UgZm9yIHRoZXNlIHRoaW5ncyBpcyB1c3VhbGx5IHdpdGhpbiB0aGUgZHJpdmVyJiMzOTtzIG93biBkaXJlY3RvcnksIG9yIG5lYXJieS4gSSYjMzk7bSBnb2luZyB0byBqdW1wIGludG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2AgYW5kIGh1bnQgYXJvdW5kIGZvciB0aGUgS2NvbmZpZyBmaWxlLiBMZXQgbWUgc2VlLi4uIEkgbmVlZCB0byBmaW5kIHRoZSBkZWZpbml0aW9uIGZvciBgQ09ORklHX0JOR0VgLiBUaGF0JiMzOTtzIHRoZSBrZXkuIEhvcGVmdWxseSwgaXQmIzM5O3MgZGVmaW5lZCBhbmQgZG9jdW1lbnRlZCB3ZWxsIHdpdGhpbiB0aGF0IEtjb25maWcgZmlsZS4gVGltZSB0byBkaXZlIGluIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwOTozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtCTkdFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnPTI1MD1jb25maWcgQk5YVF9IV01PTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWctMjU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZzoyNTg6Y29uZmlnIEJOR0VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWctMjU5LVx0dHJpc3RhdGUgXCYjMzQ7QnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0IGRldmljZSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NDIzCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMjQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0KioKCk9rYXksICYjMzQ7QnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0IGRldmljZSBzdXBwb3J0JiMzNDsuLi4gcmlnaHQuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGRyaXZlciBmb3IgKnBoeXNpY2FsKiBCcm9hZGNvbSBFdGhlcm5ldCBoYXJkd2FyZS4gSXQmIzM5O3Mgbm90IHNvbWV0aGluZyBRRU1VIGVtdWxhdGVzIG5hdGl2ZWx5LCBhbmQgSSYjMzk7bSBmYWlybHkgY2VydGFpbiB0aGVyZSBpc24mIzM5O3QgYW55IGVtdWxhdGlvbiBmb3IgaXQgaW4gYSBzdGFuZGFyZCBzZXR1cC4gU28sIHRoaXMgY29kZSBwYXRoIGlzIGVmZmVjdGl2ZWx5IHVucmVhY2hhYmxlIGluIHNvbWV0aGluZyBsaWtlIGEgR0NFIG9yIFFFTVUgZW52aXJvbm1lbnQuCgpMZXQgbWUganVzdCBxdWlja2x5IGRvdWJsZS1jaGVjayDigJMgcGVyaGFwcyB0aGVyZSYjMzk7cyBzb21lIGtpbmQgb2Ygc29mdHdhcmUgZW11bGF0aW9uIG9yIGEgbW9jayBkZXZpY2UgaW4gdGhlIGtlcm5lbCBJJiMzOTttIG5vdCBpbW1lZGlhdGVseSByZW1lbWJlcmluZy4gQWgsIG5vLgoKUmlnaHQsIHRoZSBpbnN0cnVjdGlvbnMgYXJlIGNsZWFyOiBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgY29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgd2UmIzM5O3JlIG91dC4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBFdGhlcm5ldCBkcml2ZXIgZm9yIGEgQnJvYWRjb20gY2FyZCwgYW5kIGl0ICphYnNvbHV0ZWx5KiBuZWVkcyBhIHBoeXNpY2FsIFBDSWUgY2FyZC4gVGhlcmVmb3JlLCBpdCYjMzk7cyBub3QgZnV6emVhYmxlIGluIGEgc3RhbmRhcmQgUUVNVSBzZXR1cC4gV29ydGhGdXp6aW5nPWZhbHNlIGl0IGlzLiBKdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGxvb2sgYXQgdGhlIEJOR0UgKEJyb2FkY29tIE5ldFh0cmVtZSBHaWdhYml0IEV0aGVybmV0KSB0byBzZWUgaWYgdGhlcmUgaXMgYW55IHZpcnR1YWwvbW9jayBkZXZpY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JuZ2VfcGNpX3RibCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM9MjA9c3RhdGljIGNvbnN0IHN0cnVjdCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjY6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGJuZ2VfcGNpX3RibFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNy1cdHsgUENJX1ZERVZJQ0UoQlJPQURDT00sIDB4MTc4MCksIC5kcml2ZXJfZGF0YSA9IEJDTTU3NzA4IH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgYm5nZV9wY2lfdGJsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYz00MTc9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGJuZ2VfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy00MTgtXHQubmFtZVx0XHQ9IGJuZ2VfZHJpdmVyX25hbWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjQxOTpcdC5pZF90YWJsZVx0PSBibmdlX3BjaV90YmwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTQyMC1cdC5wcm9iZVx0XHQ9IGJuZ2VfcHJvYmVfb25lLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwOTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTM3MgoJCQkJCQkJb3V0cHV0OiA5MgoJCQkJCQkJdGhvdWdodHM6IDEwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldHMgYSBkcml2ZXIg4oCTIHNwZWNpZmljYWxseSwgdGhlIGBibmdlYCBkcml2ZXIsIGFuZCBpdCYjMzk7cyBpbnRlcmFjdGluZyB3aXRoIGEgQnJvYWRjb20gZGV2aWNlICgweDE0ZTQgdmVuZG9yIElELCAweDE3ODAgZGV2aWNlIElEKS4gSW5zdGFudGx5LCBJIHJlY29nbml6ZSB0aGF0IHRoaXMgaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXI7IGl0JiMzOTtzIGRlc2lnbmVkIHRvIGludGVyZmFjZSB3aXRoIGEgcGh5c2ljYWwgbmV0d29yayBpbnRlcmZhY2UgY2FyZCAoTklDKS4gVGhlIHRlbGwtdGFsZSBzaWduIGlzIHRoZSBQQ0llIGlkZW50aWZpY2F0aW9uLgoKR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgdGFyZ2V0LCBhbmQga25vd2luZyBteSBlbnZpcm9ubWVudCwgdGhlIHNtYXJ0IG1vdmUgaGVyZSBpcyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSBgYm5nZWAgZHJpdmVyIGlzIGZvciBCcm9hZGNvbSYjMzk7cyBUaG9yVWx0cmEgRXRoZXJuZXQgY29udHJvbGxlcnMuIEkga25vdyB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIGlzbuKAmXQgZ29pbmcgdG8gYmUgZW11bGF0ZWQgcmVsaWFibHkgaW4gdHlwaWNhbCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMuIEJlY2F1c2UgdGhlIHBoeXNpY2FsIGhhcmR3YXJlIGlzbiYjMzk7dCBlbXVsYXRlZCwgYW55IGNvZGUgcGF0aHMgbW9kaWZpZWQgYnkgdGhpcyBwYXRjaCBhcmUgbm90IHJlYWNoYWJsZSBvciB0ZXN0YWJsZSBieSBhbnkgZnV6emVyIEkmIzM5O2QgZGVwbG95LiBUaGVyZWZvcmUsIGZ1cnRoZXIgYW5hbHlzaXMgd2l0aCB0aGlzIHNwZWNpZmljIGFwcHJvYWNoIGlzIGEgd2FzdGUgb2YgcmVzb3VyY2VzLiBJ4oCZbGwgbWFrZSBhIG5vdGUgb2YgdGhlIHZlbmRvciBhbmQgZGV2aWNlIGZvciBmdXR1cmUgcmVmZXJlbmNlLCBidXQgdGhpcyBvbmUgaXMgYSBkZWFkIGVuZCBmb3Igbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwOTozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgKEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgZGV2aWNlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgYnkgdGhlIGZ1enplci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgKEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgZGV2aWNlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgYnkgdGhlIGZ1enplci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTozNTozMy40NTQ3MjI0MTFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDgzNjY4NTMxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgKEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgZGV2aWNlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgYnkgdGhlIGZ1enplci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM1OjMzLjQ1NDcyNjQzMVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMwMTU2ODk2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDFhZTQ1YmVjNTA0YmY2NGVmYzY2ODdlNmUzNGE2YzQwN2IzNGI5MjNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDk6MzU6MzEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX25ldGRldi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX25ldGRldi5jXFxuaW5kZXggYTQyODhmMDI1OGY4Ny4uMDk3M2NjMjVhM2VjNCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcXG5AQCAtMzI2Nyw2ICszMjY3LDMzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0ZGV2X3N0YXRfb3BzIGJuZ2Vfc3RhdF9vcHMgPSB7XFxuIFxcdC5nZXRfYmFzZV9zdGF0c1xcdFxcdD0gYm5nZV9nZXRfYmFzZV9zdGF0cyxcXG4gfTtcXG4gXFxuK3N0YXRpYyBpbnQgYm5nZV9zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXFxuK3tcXG4rXFx0c3RydWN0IGJuZ2VfbmV0ICpibiA9IG5ldGRldl9wcml2KGRldik7XFxuK1xcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBibi1cXHUwMDNlYmQ7XFxuK1xcdHUzMiBmbGFncyA9IGJuLVxcdTAwM2Vwcml2X2ZsYWdzO1xcbitcXG4rXFx0ZmxhZ3MgXFx1MDAyNj0gfkJOR0VfTkVUX0VOX1RQQTtcXG4rXFx0aWYgKGZlYXR1cmVzIFxcdTAwMjYgTkVUSUZfRl9HUk9fSFcpXFxuK1xcdFxcdGZsYWdzIHw9IEJOR0VfTkVUX0VOX0dSTztcXG4rXFx0ZWxzZSBpZiAoZmVhdHVyZXMgXFx1MDAyNiBORVRJRl9GX0xSTylcXG4rXFx0XFx0ZmxhZ3MgfD0gQk5HRV9ORVRfRU5fTFJPO1xcbitcXG4rXFx0aWYgKGZsYWdzID09IGJuLVxcdTAwM2Vwcml2X2ZsYWdzKVxcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFxuK1xcdGJuLVxcdTAwM2Vwcml2X2ZsYWdzID0gZmxhZ3M7XFxuK1xcbitcXHRpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSkge1xcbitcXHRcXHRibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7XFxuK1xcdFxcdHJldHVybiAwO1xcbitcXHR9XFxuK1xcbitcXHRibmdlX2Nsb3NlX2NvcmUoYm4pO1xcbitcXHRibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7XFxuK1xcdHJldHVybiBibmdlX29wZW5fY29yZShibik7XFxuK31cXG4rXFxuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0ge1xcbiBcXHQubmRvX29wZW5cXHRcXHQ9IGJuZ2Vfb3BlbixcXG4gXFx0Lm5kb19zdG9wXFx0XFx0PSBibmdlX2Nsb3NlLFxcbkBAIC0zMjc0LDYgKzMzMDEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHtcXG4gXFx0Lm5kb19nZXRfc3RhdHM2NFxcdD0gYm5nZV9nZXRfc3RhdHM2NCxcXG4gXFx0Lm5kb19zZXRfcnhfbW9kZV9hc3luY1xcdD0gYm5nZV9zZXRfcnhfbW9kZSxcXG4gXFx0Lm5kb19mZWF0dXJlc19jaGVja1xcdD0gYm5nZV9mZWF0dXJlc19jaGVjayxcXG4rXFx0Lm5kb19zZXRfZmVhdHVyZXNcXHQ9IGJuZ2Vfc2V0X2ZlYXR1cmVzLFxcbiB9O1xcbiBcXG4gc3RhdGljIHZvaWQgYm5nZV9pbml0X21hY19hZGRyKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM1OjM0Ljc1Njk3OTcwNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjQ5NTM0NDA3Nzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGJuZ2VgIChCcm9hZGNvbSBUaG9yVWx0cmEgRXRoZXJuZXQpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgUENJZSBuZXR3b3JrIGRldmljZSBkcml2ZXIuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cywgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgb3IgdGVzdGVkIGJ5IHRoZSBmdXp6ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAxYWU0NWJlYzUwNGJmNjRlZmM2Njg3ZTZlMzRhNmM0MDdiMzRiOTIzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDk6MzU6MzEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbmluZGV4IGE0Mjg4ZjAyNThmODcuLjA5NzNjYzI1YTNlYzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY1xuQEAgLTMyNjcsNiArMzI2NywzMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldGRldl9zdGF0X29wcyBibmdlX3N0YXRfb3BzID0ge1xuIFx0LmdldF9iYXNlX3N0YXRzXHRcdD0gYm5nZV9nZXRfYmFzZV9zdGF0cyxcbiB9O1xuIFxuK3N0YXRpYyBpbnQgYm5nZV9zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXG4re1xuK1x0c3RydWN0IGJuZ2VfbmV0ICpibiA9IG5ldGRldl9wcml2KGRldik7XG4rXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gYm4tXHUwMDNlYmQ7XG4rXHR1MzIgZmxhZ3MgPSBibi1cdTAwM2Vwcml2X2ZsYWdzO1xuK1xuK1x0ZmxhZ3MgXHUwMDI2PSB+Qk5HRV9ORVRfRU5fVFBBO1xuK1x0aWYgKGZlYXR1cmVzIFx1MDAyNiBORVRJRl9GX0dST19IVylcbitcdFx0ZmxhZ3MgfD0gQk5HRV9ORVRfRU5fR1JPO1xuK1x0ZWxzZSBpZiAoZmVhdHVyZXMgXHUwMDI2IE5FVElGX0ZfTFJPKVxuK1x0XHRmbGFncyB8PSBCTkdFX05FVF9FTl9MUk87XG4rXG4rXHRpZiAoZmxhZ3MgPT0gYm4tXHUwMDNlcHJpdl9mbGFncylcbitcdFx0cmV0dXJuIDA7XG4rXG4rXHRibi1cdTAwM2Vwcml2X2ZsYWdzID0gZmxhZ3M7XG4rXG4rXHRpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSkge1xuK1x0XHRibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7XG4rXHRcdHJldHVybiAwO1xuK1x0fVxuK1xuK1x0Ym5nZV9jbG9zZV9jb3JlKGJuKTtcbitcdGJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTtcbitcdHJldHVybiBibmdlX29wZW5fY29yZShibik7XG4rfVxuK1xuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0ge1xuIFx0Lm5kb19vcGVuXHRcdD0gYm5nZV9vcGVuLFxuIFx0Lm5kb19zdG9wXHRcdD0gYm5nZV9jbG9zZSxcbkBAIC0zMjc0LDYgKzMzMDEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHtcbiBcdC5uZG9fZ2V0X3N0YXRzNjRcdD0gYm5nZV9nZXRfc3RhdHM2NCxcbiBcdC5uZG9fc2V0X3J4X21vZGVfYXN5bmNcdD0gYm5nZV9zZXRfcnhfbW9kZSxcbiBcdC5uZG9fZmVhdHVyZXNfY2hlY2tcdD0gYm5nZV9mZWF0dXJlc19jaGVjayxcbitcdC5uZG9fc2V0X2ZlYXR1cmVzXHQ9IGJuZ2Vfc2V0X2ZlYXR1cmVzLFxuIH07XG4gXG4gc3RhdGljIHZvaWQgYm5nZV9pbml0X21hY19hZGRyKHN0cnVjdCBibmdlX2RldiAqYmQpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTozNTozNC43NTY5ODA5MzRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTc5MTcxNzU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY2AuIEl0J3MgaW50cm9kdWNpbmcgYSBgYm5nZV9zZXRfZmVhdHVyZXNgIGZ1bmN0aW9uIGFuZCBob29raW5nIGl0IHVwIHRvIGAubmRvX3NldF9mZWF0dXJlc2AgaW4gYGJuZ2VfbmV0ZGV2X29wc2AuIFRoZSBkcml2ZXIncyBuYW1lIGlzIGBibmdlYCDigJMgc291bmRzIGxpa2UgYSBCcm9hZGNvbSBOZXRYdHJlbWUtRSBHaWdhYml0IEV0aGVybmV0IGRyaXZlciwgcmlnaHQ/IEJ1dCB3YWl0LCBJIG5lZWQgdG8gY29uZmlybSBpZiB0aGlzIGlzIGEgZHJpdmVyIGZvciAqcGh5c2ljYWwqIGhhcmR3YXJlLiBJIG5lZWQgdG8gYmUgc3VyZSBiZWZvcmUgSSBkaXZlIGRlZXBlci5cblxuUmlnaHQsIFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZVwiIGNvbmZpcm1zIHRoZSBsb2NhdGlvbi4gVGltZSB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlcyBvciBzaW1pbGFyIGNvbmZpZ3VyYXRpb24gZmlsZXMgd2l0aGluIHRoZSBgYnJvYWRjb20vYm5nZWAgZGlyZWN0b3J5IHRvIGdldCBzb21lIGNsYXJpdHkgb24gd2hldGhlciB0aGlzIGlzIG1lYW50IGZvciBhIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIGRldmljZS4gSSBuZWVkIHRvIGtub3cgaWYgdGhpcyBpcyBhIGhhcmR3YXJlLWJvdW5kIGRyaXZlciBvciBzb21ldGhpbmcgbW9yZSBhYnN0cmFjdCBiZWZvcmUgYXNzZXNzaW5nIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBmZWF0dXJlIHNldCBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQyOCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM1OjM5LjczNjE1NjMxOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTU0NTg3NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJibmdlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDYxNzggbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL01ha2VmaWxlPTIwPW9iai0kKENPTkZJR19CQ01BU1ApICs9IGFzcDIvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX0JOR0UpICs9IGJuZ2UvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlPTM9b2JqLSQoQ09ORklHX0JOR0UpICs9IGJuZ19lbi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZS00LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6NTpibmdfZW4teSA6PSBibmdlX2NvcmUubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo2OlxcdCAgICBibmdlX2RldmxpbmsubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo3OlxcdCAgICBibmdlX2h3cm0ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo4OlxcdCAgICBibmdlX2h3cm1fbGliLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6OTpcXHQgICAgYm5nZV9ybWVtLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTA6XFx0ICAgIGJuZ2VfcmVzYy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjExOlxcdCAgICBibmdlX25ldGRldi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjEyOlxcdCAgICBibmdlX2V0aHRvb2wubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZToxMzpcXHQgICAgYm5nZV9hdXhyLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTQ6XFx0ICAgIGJuZ2VfdHhyeC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjE1OlxcdCAgICBibmdlX2xpbmsub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTAtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aGVyZGV2aWNlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTE6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JuZ2UvaHNpLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTI6I2luY2x1ZGUgXFxcImJuZ2Vfcm1lbS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjEzOiNpbmNsdWRlIFxcXCJibmdlX3Jlc2MuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNDojaW5jbHVkZSBcXFwiYm5nZV9hdXhyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMDpleHRlcm4gY2hhciBibmdlX2RyaXZlcl9uYW1lW107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg9MjI9ZW51bSBib2FyZF9pZHgge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjY6c3RydWN0IGJuZ2VfYXV4cl9wcml2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNy1cXHRzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSBhdXhfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI4OlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yOS1cXHRpbnQgaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0zMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDozMjpzdHJ1Y3QgYm5nZV9wZl9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0zMy1cXHR1MTZcXHRmd19maWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaD04MT1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTkyLSNkZWZpbmUgQk5HRV9NQVhfUVVFVUVcXHRcXHQ4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6OTM6c3RydWN0IGJuZ2VfcXVldWVfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtOTQtXFx0dTggICAgICBxdWV1ZV9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTEwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxMDM6c3RydWN0IGJuZ2VfZGV2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xMDQtXFx0c3RydWN0IGRldmljZVxcdCpkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTQ1OlxcdHN0cnVjdCBibmdlX3BmX2luZm9cXHRwZjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTMtXFx0LyogQmFja2luZyBzdG9yZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNTQ6XFx0c3RydWN0IGJuZ2VfY3R4X21lbV9pbmZvXFx0KmN0eDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTU4OlxcdHN0cnVjdCBibmdlX2h3X3Jlc2NcXHRod19yZXNjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTE1OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIwNC1cXHR1OFxcdFxcdFxcdG1heF9sbHRjO1xcdC8qIGxvc3NsZXNzIFRDcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIwNTpcXHRzdHJ1Y3QgYm5nZV9xdWV1ZV9pbmZvXFx0cV9pbmZvW0JOR0VfTUFYX1FVRVVFXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMDYtXFx0dThcXHRcXHRcXHR0Y190b19xaWR4W0JOR0VfTUFYX1FVRVVFXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTE6XFx0c3RydWN0IGJuZ2VfaXJxXFx0XFx0KmlycV90Ymw7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEyLVxcdHUxNlxcdFxcdFxcdGlycXNfYWNxdWlyZWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIxNDpcXHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXZcXHQqYXV4X3ByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjE1OlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2XFx0KmF1eHJfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTc6XFx0c3RydWN0IGJuZ2VfbGlua19pbmZvXFx0bGlua19pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIyMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMjM6c3RhdGljIGlubGluZSBib29sIGJuZ2VfaXNfcm9jZV9lbihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIyNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjI4OnN0YXRpYyBpbmxpbmUgYm9vbCBibmdlX2lzX2FnZ19yZXFkKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjI5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMzAtXFx0aWYgKGJkLVxcdTAwM2VuZXRkZXYpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMzE6XFx0XFx0c3RydWN0IGJuZ2VfbmV0ICpibiA9IG5ldGRldl9wcml2KGJkLVxcdTAwM2VuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIzMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNDM6c3RhdGljIGlubGluZSB2b2lkIGJuZ2Vfd3JpdGVxKHN0cnVjdCBibmdlX2RldiAqYmQsIHU2NCB2YWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjQ0LVxcdFxcdFxcdCAgICAgICB2b2lkIF9faW9tZW0gKmFkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTUtLyogRm9yIFRYIGFuZCBSWCByaW5nIGRvb3JiZWxscyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI1NjpzdGF0aWMgaW5saW5lIHZvaWQgYm5nZV9kYl93cml0ZShzdHJ1Y3QgYm5nZV9kZXYgKmJkLCBzdHJ1Y3QgYm5nZV9kYl9pbmZvICpkYixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTctXFx0XFx0XFx0XFx0IHUzMiBpZHgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjU4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNTk6XFx0Ym5nZV93cml0ZXEoYmQsIGRiLVxcdTAwM2VkYl9rZXk2NCB8IERCX1JJTkdfSURYKGRiLCBpZHgpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI2MC1cXHRcXHQgICAgZGItXFx1MDAzZWRvb3JiZWxsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNjM6Ym9vbCBibmdlX2F1eF9yZWdpc3RlcmVkKHN0cnVjdCBibmdlX2RldiAqYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI2NDp1MTYgYm5nZV9hdXhfZ2V0X21zaXgoc3RydWN0IGJuZ2VfZGV2ICpiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjY1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvYXV4aWxpYXJ5X2J1cy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTc6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JuZ2UvaHNpLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE5OiNpbmNsdWRlIFxcXCJibmdlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMDojaW5jbHVkZSBcXFwiYm5nZV9od3JtLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTojaW5jbHVkZSBcXFwiYm5nZV9hdXhyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzOnN0YXRpYyBERUZJTkVfSURBKGJuZ2VfYXV4X2Rldl9pZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNTpzdGF0aWMgdm9pZCBibmdlX2ZpbGxfbXNpeF92ZWNzKHN0cnVjdCBibmdlX2RldiAqYmQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNjpcXHRcXHRcXHRcXHRzdHJ1Y3QgYm5nZV9tc2l4X2luZm8gKmluZm8pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yNy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyODpcXHRzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYgPSBiZC1cXHUwMDNlYXV4cl9kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yOS1cXHRpbnQgbnVtX21zaXgsIGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NDM6aW50IGJuZ2VfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQ0LVxcdFxcdCAgICAgIHZvaWQgKmhhbmRsZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQ1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjQ2OlxcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBwY2lfZ2V0X2RydmRhdGEoYXV4cl9kZXYtXFx1MDAzZXBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NDc6XFx0c3RydWN0IGJuZ2VfYXV4cl9pbmZvICphdXhyX2luZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy00OC1cXHRpbnQgcmMgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy01Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjU3OlxcdGlmICghYm5nZV9hdXhfaGFzX2Vub3VnaF9yZXNvdXJjZXMoYmQpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy01OC1cXHRcXHRyYyA9IC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6Njc6XFx0Ym5nZV9maWxsX21zaXhfdmVjcyhiZCwgYmQtXFx1MDAzZWF1eHJfZGV2LVxcdTAwM2Vtc2l4X2luZm8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNjgtXFx0YXV4cl9kZXYtXFx1MDAzZWZsYWdzIHw9IEJOR0VfQVJERVZfTVNJWF9BTExPQztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNzQtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NzU6RVhQT1JUX1NZTUJPTChibmdlX3JlZ2lzdGVyX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy03Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjc3OnZvaWQgYm5nZV91bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy03OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo3OTpcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKGF1eHJfZGV2LVxcdTAwM2VwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjgwOlxcdHN0cnVjdCBibmdlX2F1eHJfaW5mbyAqYXV4cl9pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtODEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTkxLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjkyOkVYUE9SVF9TWU1CT0woYm5nZV91bnJlZ2lzdGVyX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjk0OmludCBibmdlX3NlbmRfbXNnKHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2Rldiwgc3RydWN0IGJuZ2VfZndfbXNnICpmd19tc2cpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo5NjpcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKGF1eHJfZGV2LVxcdTAwM2VwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTk3LVxcdHN0cnVjdCBvdXRwdXQgKnJlc3A7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEwMjpcXHRyYyA9IGJuZ2VfaHdybV9yZXFfaW5pdChiZCwgcmVxLCAwIC8qIGRvbid0IGNhcmUgKi8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTAzLVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTA2OlxcdHJjID0gYm5nZV9od3JtX3JlcV9yZXBsYWNlKGJkLCByZXEsIGZ3X21zZy1cXHUwMDNlbXNnLCBmd19tc2ctXFx1MDAzZW1zZ19sZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA3LVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTEwOlxcdGJuZ2VfaHdybV9yZXFfdGltZW91dChiZCwgcmVxLCBmd19tc2ctXFx1MDAzZXRpbWVvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTExOlxcdHJlc3AgPSBibmdlX2h3cm1fcmVxX2hvbGQoYmQsIHJlcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMTI6XFx0cmMgPSBibmdlX2h3cm1fcmVxX3NlbmQoYmQsIHJlcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMTMtXFx0cmVzcF9sZW4gPSBsZTE2X3RvX2NwdShyZXNwLVxcdTAwM2VyZXNwX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEyMC1kcm9wX3JlcTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyMTpcXHRibmdlX2h3cm1fcmVxX2Ryb3AoYmQsIHJlcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjItXFx0cmV0dXJuIHJjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTIzLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyNDpFWFBPUlRfU1lNQk9MKGJuZ2Vfc2VuZF9tc2cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTI2OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfdW5pbml0KHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTI4OlxcdHN0cnVjdCBibmdlX2F1eHJfcHJpdiAqYXV4X3ByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjktXFx0c3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0MDpzdGF0aWMgdm9pZCBibmdlX2F1eF9kZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNDEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQyOlxcdHN0cnVjdCBibmdlX2F1eHJfcHJpdiAqYXV4X3ByaXYgPVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQzOlxcdFxcdFxcdGNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdCBibmdlX2F1eHJfcHJpdiwgYXV4X2Rldi5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQ0OlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldiA9IGF1eF9wcml2LVxcdTAwM2VhdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NTpcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKHRvX3BjaV9kZXYoZGV2LVxcdTAwM2VwYXJlbnQpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NzpcXHRpZGFfZnJlZShcXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgYXV4X3ByaXYtXFx1MDAzZWlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE0OC1cXHRpZiAoYXV4cl9kZXYpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTU3OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfZGVsKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNTgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNjU6c3RhdGljIHZvaWQgYm5nZV9zZXRfYXV4cl9kZXZfaW5mbyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNjY6XFx0XFx0XFx0XFx0ICAgc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE2Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE4Njp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTg3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjA2OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIwOC1cXHRzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYXV4X2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIwOTpcXHRzdHJ1Y3QgYm5nZV9hdXhyX2luZm8gKmF1eHJfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIxMDpcXHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXYgKmF1eF9wcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjExOlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIxMi1cXHRpbnQgcmM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTQ6XFx0aWYgKCFibmdlX2lzX3JvY2VfZW4oYmQpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjE1LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjIxOlxcdGF1eF9wcml2LVxcdTAwM2VpZCA9IGlkYV9hbGxvYyhcXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgR0ZQX0tFUk5FTCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMjItXFx0aWYgKGF1eF9wcml2LVxcdTAwM2VpZCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjMxLVxcdGF1eF9kZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBcXHUwMDI2YmQtXFx1MDAzZXBkZXYtXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzMjpcXHRhdXhfZGV2LVxcdTAwM2VkZXYucmVsZWFzZSA9IGJuZ2VfYXV4X2Rldl9yZWxlYXNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzUtXFx0aWYgKHJjKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMzY6XFx0XFx0aWRhX2ZyZWUoXFx1MDAyNmJuZ2VfYXV4X2Rldl9pZHMsIGF1eF9wcml2LVxcdTAwM2VpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzctXFx0XFx0a2ZyZWUoYXV4X3ByaXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yNTMtXFx0YmQtXFx1MDAzZWF1eHJfZGV2ID0gYXV4cl9kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNTQ6XFx0Ym5nZV9zZXRfYXV4cl9kZXZfaW5mbyhhdXhyX2RldiwgYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaD0xND1zdHJ1Y3QgaHdybV9hc3luY19ldmVudF9jbXBsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6MTU6c3RydWN0IGJuZ2U7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjE3OnN0cnVjdCBibmdlX21zaXhfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0xOC1cXHR1MzJcXHR2ZWN0b3I7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTIyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6MjM6c3RydWN0IGJuZ2VfZndfbXNnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTI0LVxcdHZvaWRcXHQqbXNnO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjMxOnN0cnVjdCBibmdlX2F1eHJfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0zMi1cXHR2b2lkXFx0XFx0KmhhbmRsZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg9MzY9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6NDU6c3RydWN0IGJuZ2VfYXV4cl9kZXYge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNDYtXFx0c3RydWN0IG5ldF9kZXZpY2VcXHQqbmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjUwOlxcdHN0cnVjdCBibmdlX21zaXhfaW5mb1xcdG1zaXhfaW5mb1tCTkdFX01BWF9ST0NFX01TSVhdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6NTQ6XFx0c3RydWN0IGJuZ2VfYXV4cl9pbmZvXFx0KmF1eHJfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC03NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc1OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfdW5pbml0KHN0cnVjdCBibmdlX2RldiAqYmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3Njp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2RlbChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6Nzc6dm9pZCBibmdlX3JkbWFfYXV4X2RldmljZV9hZGQoc3RydWN0IGJuZ2VfZGV2ICpiZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc4OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6Nzk6aW50IGJuZ2VfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtODAtXFx0XFx0ICAgICAgdm9pZCAqaGFuZGxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjgxOnZvaWQgYm5nZV91bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo4MjppbnQgYm5nZV9zZW5kX21zZyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYWRldiwgc3RydWN0IGJuZ2VfZndfbXNnICpmd19tc2cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtODMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo5OiNpbmNsdWRlIFxcXCJibmdlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDojaW5jbHVkZSBcXFwiYm5nZV9kZXZsaW5rLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMTojaW5jbHVkZSBcXFwiYm5nZV9od3JtLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMjojaW5jbHVkZSBcXFwiYm5nZV9od3JtX2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTM6I2luY2x1ZGUgXFxcImJuZ2VfbGluay5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTE2PU1PRFVMRV9ERVNDUklQVElPTihEUlZfU1VNTUFSWSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE4OmNoYXIgYm5nZV9kcml2ZXJfbmFtZVtdID0gRFJWX05BTUU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTIwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBibmdlX3BjaV90YmxbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI3LVxcdHsgUENJX1ZERVZJQ0UoQlJPQURDT00sIDB4MTc4MCksIC5kcml2ZXJfZGF0YSA9IEJDTTU3NzA4IH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgYm5nZV9wY2lfdGJsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzM6c3RhdGljIHZvaWQgYm5nZV9wcmludF9kZXZpY2VfaW5mbyhzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZW51bSBib2FyZF9pZHggaWR4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy00Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjQzOmJvb2wgYm5nZV9hdXhfcmVnaXN0ZXJlZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NDU6XFx0c3RydWN0IGJuZ2VfYXV4cl9kZXYgKmJhX2RldiA9IGJkLVxcdTAwM2VhdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTQ2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjUzOnN0YXRpYyB2b2lkIGJuZ2VfbnZtX2NmZ192ZXJfZ2V0KHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NTc6XFx0aWYgKCFibmdlX2h3cm1fbnZtX2Rldl9pbmZvKGJkLCBcXHUwMDI2bnZtX2luZm8pKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNTgtXFx0XFx0c25wcmludGYoYmQtXFx1MDAzZW52bV9jZmdfdmVyLCBGV19WRVJfU1RSX0xFTiwgXFxcIiVkLiVkLiVkXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo2MzpzdGF0aWMgaW50IGJuZ2VfZnVuY19xY2FwcyhzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy02Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjY3OlxcdHJjID0gYm5nZV9od3JtX2Z1bmNfcWNhcHMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjgtXFx0aWYgKHJjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy03MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjcxOlxcdHJjID0gYm5nZV9od3JtX3F1ZXVlX3Fwb3J0Y2ZnKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTcyLVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy03OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjgwOnN0YXRpYyBpbnQgYm5nZV9mdW5jX3FyY2Fwc19xY2ZnKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6ODQ6XFx0cmMgPSBibmdlX2h3cm1fZnVuY19yZXNjX3FjYXBzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTg1LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjkwOlxcdHJjID0gYm5nZV9od3JtX2Z1bmNfcWNmZyhiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy05MS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtOTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo5NjpcXHRyYyA9IGJuZ2VfaHdybV92bmljX3FjYXBzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTk3LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDU6c3RhdGljIHZvaWQgYm5nZV9md191bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTA2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEwNy1cXHQvKiBjdHggbWVtIGZyZWUgYWZ0ZXIgdW5yZ3RyIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwODpcXHRibmdlX2h3cm1fZnVuY19kcnZfdW5yZ3RyKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwOTpcXHRibmdlX2ZyZWVfY3R4X21lbShiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMTAtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTEyOnN0YXRpYyB2b2lkIGJuZ2Vfc2V0X2RmbHRfcnNzX2hhc2hfdHlwZShzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTIyOnN0YXRpYyBpbnQgYm5nZV9md19yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyNi1cXHRiZC1cXHUwMDNlZndfY2FwID0gMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEyNzpcXHRyYyA9IGJuZ2VfaHdybV92ZXJfZ2V0KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyOC1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTMzOlxcdGJuZ2VfbnZtX2NmZ192ZXJfZ2V0KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEzNTpcXHRyYyA9IGJuZ2VfaHdybV9mdW5jX3Jlc2V0KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEzNi1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTQxOlxcdGJuZ2VfaHdybV9md19zZXRfdGltZShiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDMtXFx0LyogR2V0IHRoZSByZXNvdXJjZXMgYW5kIGNvbmZpZ3VyYXRpb24gZnJvbSBmaXJtd2FyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTQ0OlxcdHJjID0gYm5nZV9mdW5jX3FjYXBzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE0NS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTUwOlxcdHJjID0gYm5nZV9hbGxvY19jdHhfbWVtKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE1MS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTU2OlxcdHJjID0gYm5nZV9od3JtX2Z1bmNfZHJ2X3JndHIoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTU3LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNjI6XFx0cmMgPSBibmdlX2Z1bmNfcXJjYXBzX3FjZmcoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTYzLVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNjg6XFx0Ym5nZV9zZXRfZGZsdF9yc3NfaGFzaF90eXBlKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTcyLWVycl9mdW5jX3Vucmd0cjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE3MzpcXHRibmdlX2h3cm1fZnVuY19kcnZfdW5yZ3RyKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3NC1lcnJfZnJlZV9jdHhfbWVtOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTc1OlxcdGJuZ2VfZnJlZV9jdHhfbWVtKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3Ni1cXHRyZXR1cm4gcmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE3OTpzdGF0aWMgdm9pZCBibmdlX3BjaV9kaXNhYmxlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTgwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTg2OnN0YXRpYyBpbnQgYm5nZV9wY2lfZW5hYmxlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTg3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjAzOlxcdHJjID0gcGNpX3JlcXVlc3RfcmVnaW9ucyhwZGV2LCBibmdlX2RyaXZlcl9uYW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIwNC1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjIwOnN0YXRpYyB2b2lkIGJuZ2VfdW5tYXBfYmFycyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIyMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyMjI6XFx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjM1OnN0YXRpYyB2b2lkIGJuZ2Vfc2V0X21heF9mdW5jX2lycXMoc3RydWN0IGJuZ2VfZGV2ICpiZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIzNi1cXHRcXHRcXHRcXHQgICB1bnNpZ25lZCBpbnQgbWF4X2lycXMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI0MTpzdGF0aWMgaW50IGJuZ2VfZ2V0X21heF9pcnEoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNDk6c3RhdGljIGludCBibmdlX21hcF9kYl9iYXIoc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI1MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI2MTpzdGF0aWMgaW50IGJuZ2VfcHJvYmVfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjYyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2My1cXHR1bnNpZ25lZCBpbnQgbWF4X2lycXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNjQ6XFx0c3RydWN0IGJuZ2VfZGV2ICpiZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2NS1cXHRpbnQgcmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI4MDpcXHRyYyA9IGJuZ2VfcGNpX2VuYWJsZShwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI4MS1cXHRpZiAocmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI4NDpcXHRibmdlX3ByaW50X2RldmljZV9pbmZvKHBkZXYsIGVudC1cXHUwMDNlZHJpdmVyX2RhdGEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6Mjg2OlxcdGJkID0gYm5nZV9kZXZsaW5rX2FsbG9jKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjg3LVxcdGlmICghYmQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzAwOlxcdHJjID0gYm5nZV9pbml0X2h3cm1fcmVzb3VyY2VzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwMS1cXHRpZiAocmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMwNDpcXHRyYyA9IGJuZ2VfZndfcmVnaXN0ZXJfZGV2KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwNS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzEwOlxcdGJuZ2VfZGV2bGlua19yZWdpc3RlcihiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTI6XFx0bWF4X2lycXMgPSBibmdlX2dldF9tYXhfaXJxKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzEzOlxcdGJuZ2Vfc2V0X21heF9mdW5jX2lycXMoYmQsIG1heF9pcnFzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxNTpcXHRibmdlX2F1eF9pbml0X2RmbHRfY29uZmlnKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxNzpcXHRyYyA9IGJuZ2VfbmV0X2luaXRfZGZsdF9jb25maWcoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzE4LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMjQ6XFx0cmMgPSBibmdlX21hcF9kYl9iYXIoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzI1LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzU6XFx0Ym5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzc6XFx0cmMgPSBibmdlX2FsbG9jX2lycXMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzM4LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNDM6XFx0cmMgPSBibmdlX25ldGRldl9hbGxvYyhiZCwgbWF4X2lycXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQ0LVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzQ3OlxcdGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM1My1lcnJfZnJlZV9pcnE6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNTQ6XFx0Ym5nZV9mcmVlX2lycXMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU2LWVycl91bmluaXRfYXV4cjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM1NzpcXHRibmdlX3JkbWFfYXV4X2RldmljZV91bmluaXQoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU5LWVycl9jb25maWdfdW5pbml0OlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzYwOlxcdGJuZ2VfbmV0X3VuaW5pdF9kZmx0X2NvbmZpZyhiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjItZXJyX2Z3X3JlZzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM2MzpcXHRibmdlX2RldmxpbmtfdW5yZWdpc3RlcihiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNjQ6XFx0Ym5nZV9md191bnJlZ2lzdGVyX2RldihiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjYtZXJyX2h3cm1fY2xlYW51cDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM2NzpcXHRibmdlX2NsZWFudXBfaHdybV9yZXNvdXJjZXMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzY5LWVycl9iYXJfdW5tYXA6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzA6XFx0Ym5nZV91bm1hcF9iYXJzKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzcyLWVycl9kZXZsX2ZyZWU6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzM6XFx0Ym5nZV9kZXZsaW5rX2ZyZWUoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc1LWVycl9wY2lfZGlzYWJsZTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM3NjpcXHRibmdlX3BjaV9kaXNhYmxlKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc3LVxcdHJldHVybiByYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzgwOnN0YXRpYyB2b2lkIGJuZ2VfcmVtb3ZlX29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM4MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozODI6XFx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDk6MzU6MzkuNzg1NzA0ODQ1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzE4MzE0ODgyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlICdibmdlJyBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBibmdlYCBkcml2ZXIsIGFuZCBpdCdzIHJlZ2lzdGVyaW5nIGl0c2VsZiBhcyBhIFBDSSBkZXZpY2Ug4oCTIGBQQ0lfVkRFVklDRShCUk9BRENPTSwgMHgxNzgwKWAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldhaXQgYSBtaW51dGUsIGlzIHRoaXMgKmFjdHVhbGx5KiBhIGhhcmR3YXJlIGRyaXZlciB0aGF0IG5lZWRzIGEgcGh5c2ljYWwgQnJvYWRjb20gRXRoZXJuZXQgY2FyZD9cIiBJJ20gcHJldHR5IHN1cmUgaXQgaXMuIFllcCwgdGhhdCBjb25maXJtcyBpdCDigJMgaXQncyBhIEJyb2FkY29tIEV0aGVybmV0IGRyaXZlci5cblxuQnV0LCB0aGUgaW5zdHJ1Y3Rpb25zIEknbSBmb2xsb3dpbmcgYXJlIHRocm93aW5nIG1lIGEgY3VydmViYWxsLCBzdGF0aW5nIHNvbWV0aGluZyBhYm91dCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyBuZWVkaW5nIHBoeXNpY2FsIGhhcmR3YXJlIGNhcmRzIHRoYXQgYXJlbid0IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIFRoYXQgbGlzdCBpbmNsdWRlcyBzb21lIGRyaXZlcnMgSSdtIHZlcnkgZmFtaWxpYXIgd2l0aCwgYnV0IGlzIGBibmdlYCBpbmNsdWRlZCBhcyBhIHN0YW5kYXJkIFFFTVUgZW11bGF0ZWQgZGV2aWNlPyBObywgdGhhdCdzIHRoZSBrZXkgcXVlc3Rpb24uIExldCBtZSBxdWlja2x5IHJ1biB0aHJvdWdoIHRoZSB1c3VhbCBzdXNwZWN0cyBmb3IgUUVNVSBlbXVsYXRpb246IGUxMDAwLCBlMTAwMGUsIHJ0bDgxMzksIHBjbmV0LCBuZTJrX3BjaSwgdm14bmV0MywgdmlydGlvLW5ldCwgaTgyNTU5ZXIsIGFuZCB0dWxpcC4gTm8gQnJvYWRjb20gTmV0WHRyZW1lLUUgKGJueHQpIG9yIGJuZ2UgYXJlIGxpc3RlZCB0aGVyZS5cblxuQWxyaWdodCwgc28gdGhlIG5leHQgdGhpbmcgSSBuZWVkIHRvIHZlcmlmeSBpcyB3aGV0aGVyIGBibmdlYCBpcyBhIFwicmVhbFwiIGRyaXZlciBwcmVzZW50IGluIHRoZSB1cHN0cmVhbSBrZXJuZWwsIG9yIGlmIHRoaXMgaXMgc29tZSBraW5kIG9mIHN5emthbGxlciBwc2V1ZG8tZHJpdmVyLCBvciBzb21ldGhpbmcgZXF1YWxseSBleG90aWMuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgdXBzdHJlYW0ga2VybmVsIHNvdXJjZSB0byBjb25maXJtIGl0cyBleGlzdGVuY2UgYW5kIHZhbGlkaXR5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjY2MiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTozNTo0Ni45Njg4NTY3NTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU2OTE3NDUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJuZ2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDk6MzU6NDcuMDE0NTU0NzI0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODMyMjkzMjM2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqSW52ZXN0aWdhdGluZyBhIENvbmZpZ3VyYXRpb24gSXNzdWUqKlxuXG5Ib2xkIG9uIGEgc2Vjb25kLi4uIEkgd2FzIHN1cmUgSSBzYXcgYSBgYm5nZWAgc3ltYm9sIGluIGEgQnJvYWRjb20gZXRoZXJuZXQgS2NvbmZpZyBmaWxlLCBidXQgbm93IEkgY2FuJ3QgZmluZCBpdC4gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQuIEl0J3Mgb2RkLCBJIHRob3VnaHQgSSB3YXMgbG9va2luZyBpbiB0aGUgcmlnaHQgc3BvdCwgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWdgLiBQZXJoYXBzIEkgYW0gbWlzdGFrZW4gYWJvdXQgdGhlIG5hbWluZyBjb252ZW50aW9uIG9yIHRoZSBsb2NhdGlvbiBvZiB0aGF0IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBPa2F5LCB0aW1lIHRvIHN0ZXAgYmFjayBhbmQgdGFrZSBhIGxvb2sgYXQgdGhlIHdob2xlIGRpcmVjdG9yeSBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgaXQuIEkgd2lsbCBzdGFydCBieSBleGFtaW5pbmcgdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9gIGRpcmVjdG9yeSBpdHNlbGYsIGp1c3QgdG8gZ2V0IGEgZnJlc2ggcGVyc3BlY3RpdmUgYW5kIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55dGhpbmcgb2J2aW91cy4gQmV0dGVyIHRvIHN0YXJ0IHdpdGggdGhlIGJhc2ljIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgdGhhbiB0byBhc3N1bWUgbXkgaW5pdGlhbCBtZW1vcnkgaXMgY29ycmVjdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTczMDQsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTozNTo1NS4zMzc0ODkyNjJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxOTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb21cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiYjQ0LmNcIixcbiAgICBcImI0NC5oXCIsXG4gICAgXCJiY200OTA4X2VuZXQuY1wiLFxuICAgIFwiYmNtNDkwOF9lbmV0LmhcIixcbiAgICBcImJjbTYzeHhfZW5ldC5jXCIsXG4gICAgXCJiY202M3h4X2VuZXQuaFwiLFxuICAgIFwiYmNtc3lzcG9ydC5jXCIsXG4gICAgXCJiY21zeXNwb3J0LmhcIixcbiAgICBcImJnbWFjLWJjbWEtbWRpby5jXCIsXG4gICAgXCJiZ21hYy1iY21hLmNcIixcbiAgICBcImJnbWFjLXBsYXRmb3JtLmNcIixcbiAgICBcImJnbWFjLmNcIixcbiAgICBcImJnbWFjLmhcIixcbiAgICBcImJueDIuY1wiLFxuICAgIFwiYm54Mi5oXCIsXG4gICAgXCJibngyX2Z3LmhcIixcbiAgICBcImNuaWMuY1wiLFxuICAgIFwiY25pYy5oXCIsXG4gICAgXCJjbmljX2RlZnMuaFwiLFxuICAgIFwiY25pY19pZi5oXCIsXG4gICAgXCJzYjEyNTAtbWFjLmNcIixcbiAgICBcInRnMy5jXCIsXG4gICAgXCJ0ZzMuaFwiLFxuICAgIFwidW5pbWFjLmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogW1xuICAgIFwiYXNwMlwiLFxuICAgIFwiYm5nZVwiLFxuICAgIFwiYm54MnhcIixcbiAgICBcImJueHRcIixcbiAgICBcImdlbmV0XCJcbiAgXVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDk6MzU6NTUuMzM3NTcyNjEyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTU3NjA3NjkyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgZGVsaXZlcmVkIGFzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnk6XG5cbioqV29ya2luZyB3aXRoIHRoZSBibmdlIERyaXZlcioqXG5cbkFscmlnaHQsIHNvIHRoZSBpbml0aWFsIHRob3VnaHQgcmVnaXN0ZXJzIHRoYXQgYGJuZ2VgIGlzIGEgc3ViZGlyZWN0b3J5LiBUaGF0J3MgZ29vZCDigJMgaXQgaGVscHMgbWUgaW1tZWRpYXRlbHkgc3RhcnQgdG8gZm9ybSBhIG1lbnRhbCBtYXAgb2YgdGhlIHByb2plY3Qgc3RydWN0dXJlLiBOb3csIGdpdmVuIHRoYXQgdGhpcyBpcyBhIG5ldHdvcmsgZHJpdmVyLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzLiBTcGVjaWZpY2FsbHksIEknbSBnb2luZyB0byB3YW50IHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgZHJpdmVyIGlzIGludGVncmF0ZWQgaW50byB0aGUga2VybmVsIGJ1aWxkIHN5c3RlbSBhbmQgd2hhdCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIFRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9LY29uZmlnYCBmaWxlIGlzIHRoZSBwZXJmZWN0IHBsYWNlIHRvIHN0YXJ0LiBJdCBjb250YWlucyB0aGUgS2NvbmZpZyBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgc3BlY2lmaWMgZHJpdmVyLiBGcm9tIHRoZXJlIEkgY2FuIGRldGVybWluZSB0aGUgdmFyaW91cyBjb25maWd1cmFibGUgY29tcG9uZW50cyBhbmQgZGVwZW5kZW5jaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzgzMSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyLCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTozNjowNC45MTM2NTE4MTdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1ODczOTM2LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCIuKlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM2OjA0Ljk1OTUzNDE2M1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NzQyMzEyOTc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZpbmRpbmcgdGhlIEtjb25maWcgZm9yIGBibmdlYCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgc3VkZGVubHkgSSByZWFsaXplIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBgYm5nZWAgZHJpdmVyLiBXaGVyZSBpcyB0aGF0IEtjb25maWcgZmlsZT8gSSdtIGRyYXdpbmcgYSBibGFuay4gQWxyaWdodCwgbm8gd29ycmllcywgdGltZSB0byBwbGF5IGRldGVjdGl2ZS4gVGhlIHN0YW5kYXJkIHByYWN0aWNlIGZvciB0aGVzZSB0aGluZ3MgaXMgdXN1YWxseSB3aXRoaW4gdGhlIGRyaXZlcidzIG93biBkaXJlY3RvcnksIG9yIG5lYXJieS4gSSdtIGdvaW5nIHRvIGp1bXAgaW50byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYCBhbmQgaHVudCBhcm91bmQgZm9yIHRoZSBLY29uZmlnIGZpbGUuIExldCBtZSBzZWUuLi4gSSBuZWVkIHRvIGZpbmQgdGhlIGRlZmluaXRpb24gZm9yIGBDT05GSUdfQk5HRWAuIFRoYXQncyB0aGUga2V5LiBIb3BlZnVsbHksIGl0J3MgZGVmaW5lZCBhbmQgZG9jdW1lbnRlZCB3ZWxsIHdpdGhpbiB0aGF0IEtjb25maWcgZmlsZS4gVGltZSB0byBkaXZlIGluIVxuXG5cbiIsIklucHV0VG9rZW5zIjoxODA4NCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM2OjEyLjcwMTg1MDE4MloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDYwNjIxNjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQk5HRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWc9MjUwPWNvbmZpZyBCTlhUX0hXTU9OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnLTI1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnOjI1ODpjb25maWcgQk5HRVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWctMjU5LVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBUaG9yVWx0cmEgRXRoZXJuZXQgZGV2aWNlIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM2OjEyLjc0NzkxNzc1OFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NzU2ODA0ODU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0KipcblxuT2theSwgXCJCcm9hZGNvbSBUaG9yVWx0cmEgRXRoZXJuZXQgZGV2aWNlIHN1cHBvcnRcIi4uLiByaWdodC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZHJpdmVyIGZvciAqcGh5c2ljYWwqIEJyb2FkY29tIEV0aGVybmV0IGhhcmR3YXJlLiBJdCdzIG5vdCBzb21ldGhpbmcgUUVNVSBlbXVsYXRlcyBuYXRpdmVseSwgYW5kIEknbSBmYWlybHkgY2VydGFpbiB0aGVyZSBpc24ndCBhbnkgZW11bGF0aW9uIGZvciBpdCBpbiBhIHN0YW5kYXJkIHNldHVwLiBTbywgdGhpcyBjb2RlIHBhdGggaXMgZWZmZWN0aXZlbHkgdW5yZWFjaGFibGUgaW4gc29tZXRoaW5nIGxpa2UgYSBHQ0Ugb3IgUUVNVSBlbnZpcm9ubWVudC5cblxuTGV0IG1lIGp1c3QgcXVpY2tseSBkb3VibGUtY2hlY2sg4oCTIHBlcmhhcHMgdGhlcmUncyBzb21lIGtpbmQgb2Ygc29mdHdhcmUgZW11bGF0aW9uIG9yIGEgbW9jayBkZXZpY2UgaW4gdGhlIGtlcm5lbCBJJ20gbm90IGltbWVkaWF0ZWx5IHJlbWVtYmVyaW5nLiBBaCwgbm8uXG5cblJpZ2h0LCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBjbGVhcjogaWYgdGhlIHBhdGNoIGludm9sdmVzIGNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIGRyaXZlcnMgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIHdlJ3JlIG91dC4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBFdGhlcm5ldCBkcml2ZXIgZm9yIGEgQnJvYWRjb20gY2FyZCwgYW5kIGl0ICphYnNvbHV0ZWx5KiBuZWVkcyBhIHBoeXNpY2FsIFBDSWUgY2FyZC4gVGhlcmVmb3JlLCBpdCdzIG5vdCBmdXp6ZWFibGUgaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwLiBXb3J0aEZ1enppbmc9ZmFsc2UgaXQgaXMuIEp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBJJ20gZ29pbmcgdG8gcXVpY2tseSBsb29rIGF0IHRoZSBCTkdFIChCcm9hZGNvbSBOZXRYdHJlbWUgR2lnYWJpdCBFdGhlcm5ldCkgdG8gc2VlIGlmIHRoZXJlIGlzIGFueSB2aXJ0dWFsL21vY2sgZGV2aWNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODQyMywiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTozNjoxOC41MDQ3MjQ4NDRaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MzU0ODE1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJuZ2VfcGNpX3RibFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTIwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBibmdlX3BjaV90YmxbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI3LVxcdHsgUENJX1ZERVZJQ0UoQlJPQURDT00sIDB4MTc4MCksIC5kcml2ZXJfZGF0YSA9IEJDTTU3NzA4IH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgYm5nZV9wY2lfdGJsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYz00MTc9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGJuZ2VfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDE4LVxcdC5uYW1lXFx0XFx0PSBibmdlX2RyaXZlcl9uYW1lLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NDE5OlxcdC5pZF90YWJsZVxcdD0gYm5nZV9wY2lfdGJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDIwLVxcdC5wcm9iZVxcdFxcdD0gYm5nZV9wcm9iZV9vbmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM2OjE4LjU0OTA4MjE0WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3NDIyNzg4MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggdGFyZ2V0cyBhIGRyaXZlciDigJMgc3BlY2lmaWNhbGx5LCB0aGUgYGJuZ2VgIGRyaXZlciwgYW5kIGl0J3MgaW50ZXJhY3Rpbmcgd2l0aCBhIEJyb2FkY29tIGRldmljZSAoMHgxNGU0IHZlbmRvciBJRCwgMHgxNzgwIGRldmljZSBJRCkuIEluc3RhbnRseSwgSSByZWNvZ25pemUgdGhhdCB0aGlzIGlzIGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyOyBpdCdzIGRlc2lnbmVkIHRvIGludGVyZmFjZSB3aXRoIGEgcGh5c2ljYWwgbmV0d29yayBpbnRlcmZhY2UgY2FyZCAoTklDKS4gVGhlIHRlbGwtdGFsZSBzaWduIGlzIHRoZSBQQ0llIGlkZW50aWZpY2F0aW9uLlxuXG5HaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSB0YXJnZXQsIGFuZCBrbm93aW5nIG15IGVudmlyb25tZW50LCB0aGUgc21hcnQgbW92ZSBoZXJlIGlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIGBibmdlYCBkcml2ZXIgaXMgZm9yIEJyb2FkY29tJ3MgVGhvclVsdHJhIEV0aGVybmV0IGNvbnRyb2xsZXJzLiBJIGtub3cgdGhpcyBzcGVjaWZpYyBoYXJkd2FyZSBpc27igJl0IGdvaW5nIHRvIGJlIGVtdWxhdGVkIHJlbGlhYmx5IGluIHR5cGljYWwgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBCZWNhdXNlIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBpc24ndCBlbXVsYXRlZCwgYW55IGNvZGUgcGF0aHMgbW9kaWZpZWQgYnkgdGhpcyBwYXRjaCBhcmUgbm90IHJlYWNoYWJsZSBvciB0ZXN0YWJsZSBieSBhbnkgZnV6emVyIEknZCBkZXBsb3kuIFRoZXJlZm9yZSwgZnVydGhlciBhbmFseXNpcyB3aXRoIHRoaXMgc3BlY2lmaWMgYXBwcm9hY2ggaXMgYSB3YXN0ZSBvZiByZXNvdXJjZXMuIEnigJlsbCBtYWtlIGEgbm90ZSBvZiB0aGUgdmVuZG9yIGFuZCBkZXZpY2UgZm9yIGZ1dHVyZSByZWZlcmVuY2UsIGJ1dCB0aGlzIG9uZSBpcyBhIGRlYWQgZW5kIGZvciBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MzcyLCJPdXRwdXRUb2tlbnMiOjkyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM2OjI0LjI5MTM2NDE1WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIxMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBibmdlYCAoQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0KSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgbmV0d29yayBkZXZpY2UgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIG9yIHRlc3RlZCBieSB0aGUgZnV6emVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBibmdlYCAoQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0KSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgbmV0d29yayBkZXZpY2UgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIG9yIHRlc3RlZCBieSB0aGUgZnV6emVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDk6MzY6MjQuMjkxMzg5NzJaIiwiU2VxIjoxNywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowt7m6w[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-24 08:53:09 +0000 UTC FinishedAt: 2026-08-24 09:36:25 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBibmdlYCAoQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0KSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgbmV0d29yayBkZXZpY2UgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIG9yIHRlc3RlZCBieSB0aGUgZnV6emVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwOTozNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDFhZTQ1YmVjNTA0YmY2NGVmYzY2ODdlNmUzNGE2YzQwN2IzNGI5MjNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAyNCAwOTozNTozMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbmluZGV4IGE0Mjg4ZjAyNThmODcuLjA5NzNjYzI1YTNlYzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY1xuQEAgLTMyNjcsNiAmIzQzOzMyNjcsMzMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRkZXZfc3RhdF9vcHMgYm5nZV9zdGF0X29wcyA9IHtcbiBcdC5nZXRfYmFzZV9zdGF0c1x0XHQ9IGJuZ2VfZ2V0X2Jhc2Vfc3RhdHMsXG4gfTtcbiBcbiYjNDM7c3RhdGljIGludCBibmdlX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcylcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBibmdlX25ldCAqYm4gPSBuZXRkZXZfcHJpdihkZXYpO1xuJiM0MztcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBibi1cdTAwM2ViZDtcbiYjNDM7XHR1MzIgZmxhZ3MgPSBibi1cdTAwM2Vwcml2X2ZsYWdzO1xuJiM0MztcbiYjNDM7XHRmbGFncyBcdTAwMjY9IH5CTkdFX05FVF9FTl9UUEE7XG4mIzQzO1x0aWYgKGZlYXR1cmVzIFx1MDAyNiBORVRJRl9GX0dST19IVylcbiYjNDM7XHRcdGZsYWdzIHw9IEJOR0VfTkVUX0VOX0dSTztcbiYjNDM7XHRlbHNlIGlmIChmZWF0dXJlcyBcdTAwMjYgTkVUSUZfRl9MUk8pXG4mIzQzO1x0XHRmbGFncyB8PSBCTkdFX05FVF9FTl9MUk87XG4mIzQzO1xuJiM0MztcdGlmIChmbGFncyA9PSBibi1cdTAwM2Vwcml2X2ZsYWdzKVxuJiM0MztcdFx0cmV0dXJuIDA7XG4mIzQzO1xuJiM0MztcdGJuLVx1MDAzZXByaXZfZmxhZ3MgPSBmbGFncztcbiYjNDM7XG4mIzQzO1x0aWYgKCFuZXRpZl9ydW5uaW5nKGRldikpIHtcbiYjNDM7XHRcdGJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTtcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0Ym5nZV9jbG9zZV9jb3JlKGJuKTtcbiYjNDM7XHRibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7XG4mIzQzO1x0cmV0dXJuIGJuZ2Vfb3Blbl9jb3JlKGJuKTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHtcbiBcdC5uZG9fb3Blblx0XHQ9IGJuZ2Vfb3BlbixcbiBcdC5uZG9fc3RvcFx0XHQ9IGJuZ2VfY2xvc2UsXG5AQCAtMzI3NCw2ICYjNDM7MzMwMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0ge1xuIFx0Lm5kb19nZXRfc3RhdHM2NFx0PSBibmdlX2dldF9zdGF0czY0LFxuIFx0Lm5kb19zZXRfcnhfbW9kZV9hc3luY1x0PSBibmdlX3NldF9yeF9tb2RlLFxuIFx0Lm5kb19mZWF0dXJlc19jaGVja1x0PSBibmdlX2ZlYXR1cmVzX2NoZWNrLFxuJiM0MztcdC5uZG9fc2V0X2ZlYXR1cmVzXHQ9IGJuZ2Vfc2V0X2ZlYXR1cmVzLFxuIH07XG4gXG4gc3RhdGljIHZvaWQgYm5nZV9pbml0X21hY19hZGRyKHN0cnVjdCBibmdlX2RldiAqYmQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MzU8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgKEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgZGV2aWNlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgYnkgdGhlIGZ1enplci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAxYWU0NWJlYzUwNGJmNjRlZmM2Njg3ZTZlMzRhNmM0MDdiMzRiOTIzCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMjQgMDk6MzU6MzEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMKaW5kZXggYTQyODhmMDI1OGY4Ny4uMDk3M2NjMjVhM2VjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX25ldGRldi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuYwpAQCAtMzI2Nyw2ICYjNDM7MzI2NywzMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldGRldl9zdGF0X29wcyBibmdlX3N0YXRfb3BzID0gewogCS5nZXRfYmFzZV9zdGF0cwkJPSBibmdlX2dldF9iYXNlX3N0YXRzLAogfTsKIAomIzQzO3N0YXRpYyBpbnQgYm5nZV9zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgYm5nZV9uZXQgKmJuID0gbmV0ZGV2X3ByaXYoZGV2KTsKJiM0MzsJc3RydWN0IGJuZ2VfZGV2ICpiZCA9IGJuLSZndDtiZDsKJiM0MzsJdTMyIGZsYWdzID0gYm4tJmd0O3ByaXZfZmxhZ3M7CiYjNDM7CiYjNDM7CWZsYWdzICZhbXA7PSB+Qk5HRV9ORVRfRU5fVFBBOwomIzQzOwlpZiAoZmVhdHVyZXMgJmFtcDsgTkVUSUZfRl9HUk9fSFcpCiYjNDM7CQlmbGFncyB8PSBCTkdFX05FVF9FTl9HUk87CiYjNDM7CWVsc2UgaWYgKGZlYXR1cmVzICZhbXA7IE5FVElGX0ZfTFJPKQomIzQzOwkJZmxhZ3MgfD0gQk5HRV9ORVRfRU5fTFJPOwomIzQzOwomIzQzOwlpZiAoZmxhZ3MgPT0gYm4tJmd0O3ByaXZfZmxhZ3MpCiYjNDM7CQlyZXR1cm4gMDsKJiM0MzsKJiM0MzsJYm4tJmd0O3ByaXZfZmxhZ3MgPSBmbGFnczsKJiM0MzsKJiM0MzsJaWYgKCFuZXRpZl9ydW5uaW5nKGRldikpIHsKJiM0MzsJCWJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTsKJiM0MzsJCXJldHVybiAwOwomIzQzOwl9CiYjNDM7CiYjNDM7CWJuZ2VfY2xvc2VfY29yZShibik7CiYjNDM7CWJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTsKJiM0MzsJcmV0dXJuIGJuZ2Vfb3Blbl9jb3JlKGJuKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHsKIAkubmRvX29wZW4JCT0gYm5nZV9vcGVuLAogCS5uZG9fc3RvcAkJPSBibmdlX2Nsb3NlLApAQCAtMzI3NCw2ICYjNDM7MzMwMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0gewogCS5uZG9fZ2V0X3N0YXRzNjQJPSBibmdlX2dldF9zdGF0czY0LAogCS5uZG9fc2V0X3J4X21vZGVfYXN5bmMJPSBibmdlX3NldF9yeF9tb2RlLAogCS5uZG9fZmVhdHVyZXNfY2hlY2sJPSBibmdlX2ZlYXR1cmVzX2NoZWNrLAomIzQzOwkubmRvX3NldF9mZWF0dXJlcwk9IGJuZ2Vfc2V0X2ZlYXR1cmVzLAogfTsKIAogc3RhdGljIHZvaWQgYm5nZV9pbml0X21hY19hZGRyKHN0cnVjdCBibmdlX2RldiAqYmQpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MjgKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNgLiBJdCYjMzk7cyBpbnRyb2R1Y2luZyBhIGBibmdlX3NldF9mZWF0dXJlc2AgZnVuY3Rpb24gYW5kIGhvb2tpbmcgaXQgdXAgdG8gYC5uZG9fc2V0X2ZlYXR1cmVzYCBpbiBgYm5nZV9uZXRkZXZfb3BzYC4gVGhlIGRyaXZlciYjMzk7cyBuYW1lIGlzIGBibmdlYCDigJMgc291bmRzIGxpa2UgYSBCcm9hZGNvbSBOZXRYdHJlbWUtRSBHaWdhYml0IEV0aGVybmV0IGRyaXZlciwgcmlnaHQ/IEJ1dCB3YWl0LCBJIG5lZWQgdG8gY29uZmlybSBpZiB0aGlzIGlzIGEgZHJpdmVyIGZvciAqcGh5c2ljYWwqIGhhcmR3YXJlLiBJIG5lZWQgdG8gYmUgc3VyZSBiZWZvcmUgSSBkaXZlIGRlZXBlci4KClJpZ2h0LCAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UmIzM0OyBjb25maXJtcyB0aGUgbG9jYXRpb24uIFRpbWUgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZXMgb3Igc2ltaWxhciBjb25maWd1cmF0aW9uIGZpbGVzIHdpdGhpbiB0aGUgYGJyb2FkY29tL2JuZ2VgIGRpcmVjdG9yeSB0byBnZXQgc29tZSBjbGFyaXR5IG9uIHdoZXRoZXIgdGhpcyBpcyBtZWFudCBmb3IgYSBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSBkZXZpY2UuIEkgbmVlZCB0byBrbm93IGlmIHRoaXMgaXMgYSBoYXJkd2FyZS1ib3VuZCBkcml2ZXIgb3Igc29tZXRoaW5nIG1vcmUgYWJzdHJhY3QgYmVmb3JlIGFzc2Vzc2luZyB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgZmVhdHVyZSBzZXQgZnVuY3Rpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Ym5nZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjE3OCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vTWFrZWZpbGU9MjA9b2JqLSQoQ09ORklHX0JDTUFTUCkgJiM0Mzs9IGFzcDIvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9NYWtlZmlsZToyMTpvYmotJChDT05GSUdfQk5HRSkgJiM0Mzs9IGJuZ2UvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZT0zPW9iai0kKENPTkZJR19CTkdFKSAmIzQzOz0gYm5nX2VuLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGUtNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6NTpibmdfZW4teSA6PSBibmdlX2NvcmUubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo2Olx0ICAgIGJuZ2VfZGV2bGluay5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjc6XHQgICAgYm5nZV9od3JtLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6ODpcdCAgICBibmdlX2h3cm1fbGliLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6OTpcdCAgICBibmdlX3JtZW0ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZToxMDpcdCAgICBibmdlX3Jlc2MubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZToxMTpcdCAgICBibmdlX25ldGRldi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjEyOlx0ICAgIGJuZ2VfZXRodG9vbC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjEzOlx0ICAgIGJuZ2VfYXV4ci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjE0Olx0ICAgIGJuZ2VfdHhyeC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjE1Olx0ICAgIGJuZ2VfbGluay5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTAtI2luY2x1ZGUgXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTE6I2luY2x1ZGUgXHUwMDNjbGludXgvYm5nZS9oc2kuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTI6I2luY2x1ZGUgXCYjMzQ7Ym5nZV9ybWVtLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjEzOiNpbmNsdWRlIFwmIzM0O2JuZ2VfcmVzYy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNDojaW5jbHVkZSBcJiMzNDtibmdlX2F1eHIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMDpleHRlcm4gY2hhciBibmdlX2RyaXZlcl9uYW1lW107XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oPTIyPWVudW0gYm9hcmRfaWR4IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI2OnN0cnVjdCBibmdlX2F1eHJfcHJpdiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNy1cdHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlIGF1eF9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyODpcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI5LVx0aW50IGlkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MzI6c3RydWN0IGJuZ2VfcGZfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0zMy1cdHUxNlx0ZndfZmlkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oPTgxPWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTkyLSNkZWZpbmUgQk5HRV9NQVhfUVVFVUVcdFx0OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6OTM6c3RydWN0IGJuZ2VfcXVldWVfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC05NC1cdHU4ICAgICAgcXVldWVfaWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTAzOnN0cnVjdCBibmdlX2RldiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xMDQtXHRzdHJ1Y3QgZGV2aWNlXHQqZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTE0NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjE0NTpcdHN0cnVjdCBibmdlX3BmX2luZm9cdHBmO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTQ2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTE1My1cdC8qIEJhY2tpbmcgc3RvcmVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNTQ6XHRzdHJ1Y3QgYm5nZV9jdHhfbWVtX2luZm9cdCpjdHg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTU4Olx0c3RydWN0IGJuZ2VfaHdfcmVzY1x0aHdfcmVzYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTE1OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMDQtXHR1OFx0XHRcdG1heF9sbHRjO1x0LyogbG9zc2xlc3MgVENzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMDU6XHRzdHJ1Y3QgYm5nZV9xdWV1ZV9pbmZvXHRxX2luZm9bQk5HRV9NQVhfUVVFVUVdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjA2LVx0dThcdFx0XHR0Y190b19xaWR4W0JOR0VfTUFYX1FVRVVFXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTE6XHRzdHJ1Y3QgYm5nZV9pcnFcdFx0KmlycV90Ymw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMTItXHR1MTZcdFx0XHRpcnFzX2FjcXVpcmVkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjE0Olx0c3RydWN0IGJuZ2VfYXV4cl9wcml2XHQqYXV4X3ByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTU6XHRzdHJ1Y3QgYm5nZV9hdXhyX2Rldlx0KmF1eHJfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjE3Olx0c3RydWN0IGJuZ2VfbGlua19pbmZvXHRsaW5rX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjIyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjIzOnN0YXRpYyBpbmxpbmUgYm9vbCBibmdlX2lzX3JvY2VfZW4oc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIyNC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjI4OnN0YXRpYyBpbmxpbmUgYm9vbCBibmdlX2lzX2FnZ19yZXFkKHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMjkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjMwLVx0aWYgKGJkLVx1MDAzZW5ldGRldikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjMxOlx0XHRzdHJ1Y3QgYm5nZV9uZXQgKmJuID0gbmV0ZGV2X3ByaXYoYmQtXHUwMDNlbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIzMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNDM6c3RhdGljIGlubGluZSB2b2lkIGJuZ2Vfd3JpdGVxKHN0cnVjdCBibmdlX2RldiAqYmQsIHU2NCB2YWwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNDQtXHRcdFx0ICAgICAgIHZvaWQgX19pb21lbSAqYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTUtLyogRm9yIFRYIGFuZCBSWCByaW5nIGRvb3JiZWxscyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjU2OnN0YXRpYyBpbmxpbmUgdm9pZCBibmdlX2RiX3dyaXRlKHN0cnVjdCBibmdlX2RldiAqYmQsIHN0cnVjdCBibmdlX2RiX2luZm8gKmRiLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjU3LVx0XHRcdFx0IHUzMiBpZHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjU5Olx0Ym5nZV93cml0ZXEoYmQsIGRiLVx1MDAzZWRiX2tleTY0IHwgREJfUklOR19JRFgoZGIsIGlkeCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNjAtXHRcdCAgICBkYi1cdTAwM2Vkb29yYmVsbCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjYzOmJvb2wgYm5nZV9hdXhfcmVnaXN0ZXJlZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI2NDp1MTYgYm5nZV9hdXhfZ2V0X21zaXgoc3RydWN0IGJuZ2VfZGV2ICpiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNjUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNi0jaW5jbHVkZSBcdTAwM2NsaW51eC9hdXhpbGlhcnlfYnVzLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTc6I2luY2x1ZGUgXHUwMDNjbGludXgvYm5nZS9oc2kuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTk6I2luY2x1ZGUgXCYjMzQ7Ym5nZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIwOiNpbmNsdWRlIFwmIzM0O2JuZ2VfaHdybS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIxOiNpbmNsdWRlIFwmIzM0O2JuZ2VfYXV4ci5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMzpzdGF0aWMgREVGSU5FX0lEQShibmdlX2F1eF9kZXZfaWRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjI1OnN0YXRpYyB2b2lkIGJuZ2VfZmlsbF9tc2l4X3ZlY3Moc3RydWN0IGJuZ2VfZGV2ICpiZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjY6XHRcdFx0XHRzdHJ1Y3QgYm5nZV9tc2l4X2luZm8gKmluZm8pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTI3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6Mjg6XHRzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYgPSBiZC1cdTAwM2VhdXhyX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjktXHRpbnQgbnVtX21zaXgsIGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy00Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NDM6aW50IGJuZ2VfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNDQtXHRcdCAgICAgIHZvaWQgKmhhbmRsZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNDUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo0NjpcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBwY2lfZ2V0X2RydmRhdGEoYXV4cl9kZXYtXHUwMDNlcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjQ3Olx0c3RydWN0IGJuZ2VfYXV4cl9pbmZvICphdXhyX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQ4LVx0aW50IHJjID0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo1NzpcdGlmICghYm5nZV9hdXhfaGFzX2Vub3VnaF9yZXNvdXJjZXMoYmQpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTU4LVx0XHRyYyA9IC1FTk9NRU07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy02Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6Njc6XHRibmdlX2ZpbGxfbXNpeF92ZWNzKGJkLCBiZC1cdTAwM2VhdXhyX2Rldi1cdTAwM2Vtc2l4X2luZm8pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy02OC1cdGF1eHJfZGV2LVx1MDAzZWZsYWdzIHw9IEJOR0VfQVJERVZfTVNJWF9BTExPQztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTc0LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NzU6RVhQT1JUX1NZTUJPTChibmdlX3JlZ2lzdGVyX2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo3Nzp2b2lkIGJuZ2VfdW5yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfYXV4cl9kZXYgKmF1eHJfZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy03OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjc5Olx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShhdXhyX2Rldi1cdTAwM2VwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6ODA6XHRzdHJ1Y3QgYm5nZV9hdXhyX2luZm8gKmF1eHJfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtODEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05MS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjkyOkVYUE9SVF9TWU1CT0woYm5nZV91bnJlZ2lzdGVyX2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo5NDppbnQgYm5nZV9zZW5kX21zZyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYsIHN0cnVjdCBibmdlX2Z3X21zZyAqZndfbXNnKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjk2Olx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShhdXhyX2Rldi1cdTAwM2VwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtOTctXHRzdHJ1Y3Qgb3V0cHV0ICpyZXNwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMDI6XHRyYyA9IGJuZ2VfaHdybV9yZXFfaW5pdChiZCwgcmVxLCAwIC8qIGRvbiYjMzk7dCBjYXJlICovKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTAzLVx0aWYgKHJjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMDY6XHRyYyA9IGJuZ2VfaHdybV9yZXFfcmVwbGFjZShiZCwgcmVxLCBmd19tc2ctXHUwMDNlbXNnLCBmd19tc2ctXHUwMDNlbXNnX2xlbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEwNy1cdGlmIChyYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTEwOlx0Ym5nZV9od3JtX3JlcV90aW1lb3V0KGJkLCByZXEsIGZ3X21zZy1cdTAwM2V0aW1lb3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTExOlx0cmVzcCA9IGJuZ2VfaHdybV9yZXFfaG9sZChiZCwgcmVxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTEyOlx0cmMgPSBibmdlX2h3cm1fcmVxX3NlbmQoYmQsIHJlcSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTExMy1cdHJlc3BfbGVuID0gbGUxNl90b19jcHUocmVzcC1cdTAwM2VyZXNwX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjAtZHJvcF9yZXE6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyMTpcdGJuZ2VfaHdybV9yZXFfZHJvcChiZCwgcmVxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTIyLVx0cmV0dXJuIHJjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjMtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMjQ6RVhQT1JUX1NZTUJPTChibmdlX3NlbmRfbXNnKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMjY6dm9pZCBibmdlX3JkbWFfYXV4X2RldmljZV91bmluaXQoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTI3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTI4Olx0c3RydWN0IGJuZ2VfYXV4cl9wcml2ICphdXhfcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTI5LVx0c3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0MDpzdGF0aWMgdm9pZCBibmdlX2F1eF9kZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE0MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0MjpcdHN0cnVjdCBibmdlX2F1eHJfcHJpdiAqYXV4X3ByaXYgPVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNDM6XHRcdFx0Y29udGFpbmVyX29mKGRldiwgc3RydWN0IGJuZ2VfYXV4cl9wcml2LCBhdXhfZGV2LmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NDpcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldiA9IGF1eF9wcml2LVx1MDAzZWF1eHJfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNDU6XHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKHRvX3BjaV9kZXYoZGV2LVx1MDAzZXBhcmVudCkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NzpcdGlkYV9mcmVlKFx1MDAyNmJuZ2VfYXV4X2Rldl9pZHMsIGF1eF9wcml2LVx1MDAzZWlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTQ4LVx0aWYgKGF1eHJfZGV2KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE1Nzp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2RlbChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNTgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNjU6c3RhdGljIHZvaWQgYm5nZV9zZXRfYXV4cl9kZXZfaW5mbyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE2NjpcdFx0XHRcdCAgIHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE2Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE4Njp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xODcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMDY6dm9pZCBibmdlX3JkbWFfYXV4X2RldmljZV9pbml0KHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIwNy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIwOC1cdHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphdXhfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMDk6XHRzdHJ1Y3QgYm5nZV9hdXhyX2luZm8gKmF1eHJfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjEwOlx0c3RydWN0IGJuZ2VfYXV4cl9wcml2ICphdXhfcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjExOlx0c3RydWN0IGJuZ2VfYXV4cl9kZXYgKmF1eHJfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMTItXHRpbnQgcmM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIxMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjE0Olx0aWYgKCFibmdlX2lzX3JvY2VfZW4oYmQpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMTUtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIyMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjIxOlx0YXV4X3ByaXYtXHUwMDNlaWQgPSBpZGFfYWxsb2MoXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgR0ZQX0tFUk5FTCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIyMi1cdGlmIChhdXhfcHJpdi1cdTAwM2VpZCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjMxLVx0YXV4X2Rldi1cdTAwM2VkZXYucGFyZW50ID0gXHUwMDI2YmQtXHUwMDNlcGRldi1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzMjpcdGF1eF9kZXYtXHUwMDNlZGV2LnJlbGVhc2UgPSBibmdlX2F1eF9kZXZfcmVsZWFzZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjMzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjM1LVx0aWYgKHJjKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzNjpcdFx0aWRhX2ZyZWUoXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgYXV4X3ByaXYtXHUwMDNlaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzctXHRcdGtmcmVlKGF1eF9wcml2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTI1My1cdGJkLVx1MDAzZWF1eHJfZGV2ID0gYXV4cl9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjI1NDpcdGJuZ2Vfc2V0X2F1eHJfZGV2X2luZm8oYXV4cl9kZXYsIGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg9MTQ9c3RydWN0IGh3cm1fYXN5bmNfZXZlbnRfY21wbDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6MTU6c3RydWN0IGJuZ2U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDoxNzpzdHJ1Y3QgYm5nZV9tc2l4X2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0xOC1cdHUzMlx0dmVjdG9yO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtMjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjIzOnN0cnVjdCBibmdlX2Z3X21zZyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTI0LVx0dm9pZFx0Km1zZztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTMwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDozMTpzdHJ1Y3QgYm5nZV9hdXhyX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0zMi1cdHZvaWRcdFx0KmhhbmRsZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oPTM2PWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjQ1OnN0cnVjdCBibmdlX2F1eHJfZGV2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNDYtXHRzdHJ1Y3QgbmV0X2RldmljZVx0Km5ldDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo1MDpcdHN0cnVjdCBibmdlX21zaXhfaW5mb1x0bXNpeF9pbmZvW0JOR0VfTUFYX1JPQ0VfTVNJWF07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTUxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjU0Olx0c3RydWN0IGJuZ2VfYXV4cl9pbmZvXHQqYXV4cl9pbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC01NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3NTp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX3VuaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3Njp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2RlbChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3Nzp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3ODp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2luaXQoc3RydWN0IGJuZ2VfZGV2ICpiZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6Nzk6aW50IGJuZ2VfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC04MC1cdFx0ICAgICAgdm9pZCAqaGFuZGxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6ODE6dm9pZCBibmdlX3VucmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6ODI6aW50IGJuZ2Vfc2VuZF9tc2coc3RydWN0IGJuZ2VfYXV4cl9kZXYgKmFkZXYsIHN0cnVjdCBibmdlX2Z3X21zZyAqZndfbXNnKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtODMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo5OiNpbmNsdWRlIFwmIzM0O2JuZ2UuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDojaW5jbHVkZSBcJiMzNDtibmdlX2RldmxpbmsuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMTojaW5jbHVkZSBcJiMzNDtibmdlX2h3cm0uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMjojaW5jbHVkZSBcJiMzNDtibmdlX2h3cm1fbGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTM6I2luY2x1ZGUgXCYjMzQ7Ym5nZV9saW5rLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYz0xNj1NT0RVTEVfREVTQ1JJUFRJT04oRFJWX1NVTU1BUlkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTg6Y2hhciBibmdlX2RyaXZlcl9uYW1lW10gPSBEUlZfTkFNRTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTIwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBibmdlX3BjaV90YmxbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjctXHR7IFBDSV9WREVWSUNFKEJST0FEQ09NLCAweDE3ODApLCAuZHJpdmVyX2RhdGEgPSBCQ001NzcwOCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzAtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzE6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGJuZ2VfcGNpX3RibCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzpzdGF0aWMgdm9pZCBibmdlX3ByaW50X2RldmljZV9pbmZvKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBlbnVtIGJvYXJkX2lkeCBpZHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo0Mzpib29sIGJuZ2VfYXV4X3JlZ2lzdGVyZWQoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo0NTpcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICpiYV9kZXYgPSBiZC1cdTAwM2VhdXhyX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NTM6c3RhdGljIHZvaWQgYm5nZV9udm1fY2ZnX3Zlcl9nZXQoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjU3Olx0aWYgKCFibmdlX2h3cm1fbnZtX2Rldl9pbmZvKGJkLCBcdTAwMjZudm1faW5mbykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTU4LVx0XHRzbnByaW50ZihiZC1cdTAwM2Vudm1fY2ZnX3ZlciwgRldfVkVSX1NUUl9MRU4sIFwmIzM0OyVkLiVkLiVkXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjYzOnN0YXRpYyBpbnQgYm5nZV9mdW5jX3FjYXBzKHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTY0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo2NzpcdHJjID0gYm5nZV9od3JtX2Z1bmNfcWNhcHMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy02OC1cdGlmIChyYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo3MTpcdHJjID0gYm5nZV9od3JtX3F1ZXVlX3Fwb3J0Y2ZnKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNzItXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo4MDpzdGF0aWMgaW50IGJuZ2VfZnVuY19xcmNhcHNfcWNmZyhzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6ODQ6XHRyYyA9IGJuZ2VfaHdybV9mdW5jX3Jlc2NfcWNhcHMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04NS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjkwOlx0cmMgPSBibmdlX2h3cm1fZnVuY19xY2ZnKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtOTEtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo5NjpcdHJjID0gYm5nZV9od3JtX3ZuaWNfcWNhcHMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy05Ny1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTA0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDU6c3RhdGljIHZvaWQgYm5nZV9md191bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMDYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMDctXHQvKiBjdHggbWVtIGZyZWUgYWZ0ZXIgdW5yZ3RyIG9ubHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTA4Olx0Ym5nZV9od3JtX2Z1bmNfZHJ2X3Vucmd0cihiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwOTpcdGJuZ2VfZnJlZV9jdHhfbWVtKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTEwLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMTI6c3RhdGljIHZvaWQgYm5nZV9zZXRfZGZsdF9yc3NfaGFzaF90eXBlKHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTExMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEyMjpzdGF0aWMgaW50IGJuZ2VfZndfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMjYtXHRiZC1cdTAwM2Vmd19jYXAgPSAwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMjc6XHRyYyA9IGJuZ2VfaHdybV92ZXJfZ2V0KGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTI4LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEzMzpcdGJuZ2VfbnZtX2NmZ192ZXJfZ2V0KGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMzU6XHRyYyA9IGJuZ2VfaHdybV9mdW5jX3Jlc2V0KGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTM2LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE0MTpcdGJuZ2VfaHdybV9md19zZXRfdGltZShiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQzLVx0LyogR2V0IHRoZSByZXNvdXJjZXMgYW5kIGNvbmZpZ3VyYXRpb24gZnJvbSBmaXJtd2FyZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNDQ6XHRyYyA9IGJuZ2VfZnVuY19xY2FwcyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE0NS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNTA6XHRyYyA9IGJuZ2VfYWxsb2NfY3R4X21lbShiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE1MS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTU1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNTY6XHRyYyA9IGJuZ2VfaHdybV9mdW5jX2Rydl9yZ3RyKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTU3LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE2MjpcdHJjID0gYm5nZV9mdW5jX3FyY2Fwc19xY2ZnKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTYzLVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE2ODpcdGJuZ2Vfc2V0X2RmbHRfcnNzX2hhc2hfdHlwZShiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE2OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3Mi1lcnJfZnVuY191bnJndHI6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE3MzpcdGJuZ2VfaHdybV9mdW5jX2Rydl91bnJndHIoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNzQtZXJyX2ZyZWVfY3R4X21lbTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTc1Olx0Ym5nZV9mcmVlX2N0eF9tZW0oYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNzYtXHRyZXR1cm4gcmM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE3OTpzdGF0aWMgdm9pZCBibmdlX3BjaV9kaXNhYmxlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xODAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxODY6c3RhdGljIGludCBibmdlX3BjaV9lbmFibGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE4Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjIwMzpcdHJjID0gcGNpX3JlcXVlc3RfcmVnaW9ucyhwZGV2LCBibmdlX2RyaXZlcl9uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjA0LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjIyMDpzdGF0aWMgdm9pZCBibmdlX3VubWFwX2JhcnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIyMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjIyMjpcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIyMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjM1OnN0YXRpYyB2b2lkIGJuZ2Vfc2V0X21heF9mdW5jX2lycXMoc3RydWN0IGJuZ2VfZGV2ICpiZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjM2LVx0XHRcdFx0ICAgdW5zaWduZWQgaW50IG1heF9pcnFzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNDE6c3RhdGljIGludCBibmdlX2dldF9tYXhfaXJxKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNDk6c3RhdGljIGludCBibmdlX21hcF9kYl9iYXIoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjUwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjYxOnN0YXRpYyBpbnQgYm5nZV9wcm9iZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2My1cdHVuc2lnbmVkIGludCBtYXhfaXJxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjY0Olx0c3RydWN0IGJuZ2VfZGV2ICpiZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjY1LVx0aW50IHJjO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyODA6XHRyYyA9IGJuZ2VfcGNpX2VuYWJsZShwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjgxLVx0aWYgKHJjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyODQ6XHRibmdlX3ByaW50X2RldmljZV9pbmZvKHBkZXYsIGVudC1cdTAwM2Vkcml2ZXJfZGF0YSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6Mjg2Olx0YmQgPSBibmdlX2RldmxpbmtfYWxsb2MocGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI4Ny1cdGlmICghYmQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI5OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzAwOlx0cmMgPSBibmdlX2luaXRfaHdybV9yZXNvdXJjZXMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMDEtXHRpZiAocmMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMwNDpcdHJjID0gYm5nZV9md19yZWdpc3Rlcl9kZXYoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMDUtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzEwOlx0Ym5nZV9kZXZsaW5rX3JlZ2lzdGVyKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTI6XHRtYXhfaXJxcyA9IGJuZ2VfZ2V0X21heF9pcnEocGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxMzpcdGJuZ2Vfc2V0X21heF9mdW5jX2lycXMoYmQsIG1heF9pcnFzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTU6XHRibmdlX2F1eF9pbml0X2RmbHRfY29uZmlnKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTc6XHRyYyA9IGJuZ2VfbmV0X2luaXRfZGZsdF9jb25maWcoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMTgtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMyMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzI0Olx0cmMgPSBibmdlX21hcF9kYl9iYXIoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMjUtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzM1Olx0Ym5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzM3Olx0cmMgPSBibmdlX2FsbG9jX2lycXMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMzgtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzQzOlx0cmMgPSBibmdlX25ldGRldl9hbGxvYyhiZCwgbWF4X2lycXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNDQtXHRpZiAocmMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM0NzpcdGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM0OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM1My1lcnJfZnJlZV9pcnE6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM1NDpcdGJuZ2VfZnJlZV9pcnFzKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNTYtZXJyX3VuaW5pdF9hdXhyOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNTc6XHRibmdlX3JkbWFfYXV4X2RldmljZV91bmluaXQoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM1OS1lcnJfY29uZmlnX3VuaW5pdDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzYwOlx0Ym5nZV9uZXRfdW5pbml0X2RmbHRfY29uZmlnKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjItZXJyX2Z3X3JlZzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzYzOlx0Ym5nZV9kZXZsaW5rX3VucmVnaXN0ZXIoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNjQ6XHRibmdlX2Z3X3VucmVnaXN0ZXJfZGV2KGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjYtZXJyX2h3cm1fY2xlYW51cDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzY3Olx0Ym5nZV9jbGVhbnVwX2h3cm1fcmVzb3VyY2VzKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjktZXJyX2Jhcl91bm1hcDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzcwOlx0Ym5nZV91bm1hcF9iYXJzKHBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM3Mi1lcnJfZGV2bF9mcmVlOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzM6XHRibmdlX2RldmxpbmtfZnJlZShiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM3NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc1LWVycl9wY2lfZGlzYWJsZTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6Mzc2Olx0Ym5nZV9wY2lfZGlzYWJsZShwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc3LVx0cmV0dXJuIHJjO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozODA6c3RhdGljIHZvaWQgYm5nZV9yZW1vdmVfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zODEte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozODI6XHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpO1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MzU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTY2NjIKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSAmIzM5O2JuZ2UmIzM5OyBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGJuZ2VgIGRyaXZlciwgYW5kIGl0JiMzOTtzIHJlZ2lzdGVyaW5nIGl0c2VsZiBhcyBhIFBDSSBkZXZpY2Ug4oCTIGBQQ0lfVkRFVklDRShCUk9BRENPTSwgMHgxNzgwKWAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O1dhaXQgYSBtaW51dGUsIGlzIHRoaXMgKmFjdHVhbGx5KiBhIGhhcmR3YXJlIGRyaXZlciB0aGF0IG5lZWRzIGEgcGh5c2ljYWwgQnJvYWRjb20gRXRoZXJuZXQgY2FyZD8mIzM0OyBJJiMzOTttIHByZXR0eSBzdXJlIGl0IGlzLiBZZXAsIHRoYXQgY29uZmlybXMgaXQg4oCTIGl0JiMzOTtzIGEgQnJvYWRjb20gRXRoZXJuZXQgZHJpdmVyLgoKQnV0LCB0aGUgaW5zdHJ1Y3Rpb25zIEkmIzM5O20gZm9sbG93aW5nIGFyZSB0aHJvd2luZyBtZSBhIGN1cnZlYmFsbCwgc3RhdGluZyBzb21ldGhpbmcgYWJvdXQgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgbmVlZGluZyBwaHlzaWNhbCBoYXJkd2FyZSBjYXJkcyB0aGF0IGFyZW4mIzM5O3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gVGhhdCBsaXN0IGluY2x1ZGVzIHNvbWUgZHJpdmVycyBJJiMzOTttIHZlcnkgZmFtaWxpYXIgd2l0aCwgYnV0IGlzIGBibmdlYCBpbmNsdWRlZCBhcyBhIHN0YW5kYXJkIFFFTVUgZW11bGF0ZWQgZGV2aWNlPyBObywgdGhhdCYjMzk7cyB0aGUga2V5IHF1ZXN0aW9uLiBMZXQgbWUgcXVpY2tseSBydW4gdGhyb3VnaCB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIFFFTVUgZW11bGF0aW9uOiBlMTAwMCwgZTEwMDBlLCBydGw4MTM5LCBwY25ldCwgbmUya19wY2ksIHZteG5ldDMsIHZpcnRpby1uZXQsIGk4MjU1OWVyLCBhbmQgdHVsaXAuIE5vIEJyb2FkY29tIE5ldFh0cmVtZS1FIChibnh0KSBvciBibmdlIGFyZSBsaXN0ZWQgdGhlcmUuCgpBbHJpZ2h0LCBzbyB0aGUgbmV4dCB0aGluZyBJIG5lZWQgdG8gdmVyaWZ5IGlzIHdoZXRoZXIgYGJuZ2VgIGlzIGEgJiMzNDtyZWFsJiMzNDsgZHJpdmVyIHByZXNlbnQgaW4gdGhlIHVwc3RyZWFtIGtlcm5lbCwgb3IgaWYgdGhpcyBpcyBzb21lIGtpbmQgb2Ygc3l6a2FsbGVyIHBzZXVkby1kcml2ZXIsIG9yIHNvbWV0aGluZyBlcXVhbGx5IGV4b3RpYy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgdXBzdHJlYW0ga2VybmVsIHNvdXJjZSB0byBjb25maXJtIGl0cyBleGlzdGVuY2UgYW5kIHZhbGlkaXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Ym5nZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3MzA0CgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqSW52ZXN0aWdhdGluZyBhIENvbmZpZ3VyYXRpb24gSXNzdWUqKgoKSG9sZCBvbiBhIHNlY29uZC4uLiBJIHdhcyBzdXJlIEkgc2F3IGEgYGJuZ2VgIHN5bWJvbCBpbiBhIEJyb2FkY29tIGV0aGVybmV0IEtjb25maWcgZmlsZSwgYnV0IG5vdyBJIGNhbiYjMzk7dCBmaW5kIGl0LiBMZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhhdC4gSXQmIzM5O3Mgb2RkLCBJIHRob3VnaHQgSSB3YXMgbG9va2luZyBpbiB0aGUgcmlnaHQgc3BvdCwgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWdgLiBQZXJoYXBzIEkgYW0gbWlzdGFrZW4gYWJvdXQgdGhlIG5hbWluZyBjb252ZW50aW9uIG9yIHRoZSBsb2NhdGlvbiBvZiB0aGF0IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBPa2F5LCB0aW1lIHRvIHN0ZXAgYmFjayBhbmQgdGFrZSBhIGxvb2sgYXQgdGhlIHdob2xlIGRpcmVjdG9yeSBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGl0LiBJIHdpbGwgc3RhcnQgYnkgZXhhbWluaW5nIHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYCBkaXJlY3RvcnkgaXRzZWxmLCBqdXN0IHRvIGdldCBhIGZyZXNoIHBlcnNwZWN0aXZlIGFuZCBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBhbnl0aGluZyBvYnZpb3VzLiBCZXR0ZXIgdG8gc3RhcnQgd2l0aCB0aGUgYmFzaWMgZGlyZWN0b3J5IHN0cnVjdHVyZSB0aGFuIHRvIGFzc3VtZSBteSBpbml0aWFsIG1lbW9yeSBpcyBjb3JyZWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7YjQ0LmMmIzM0OywKICAgICYjMzQ7YjQ0LmgmIzM0OywKICAgICYjMzQ7YmNtNDkwOF9lbmV0LmMmIzM0OywKICAgICYjMzQ7YmNtNDkwOF9lbmV0LmgmIzM0OywKICAgICYjMzQ7YmNtNjN4eF9lbmV0LmMmIzM0OywKICAgICYjMzQ7YmNtNjN4eF9lbmV0LmgmIzM0OywKICAgICYjMzQ7YmNtc3lzcG9ydC5jJiMzNDssCiAgICAmIzM0O2JjbXN5c3BvcnQuaCYjMzQ7LAogICAgJiMzNDtiZ21hYy1iY21hLW1kaW8uYyYjMzQ7LAogICAgJiMzNDtiZ21hYy1iY21hLmMmIzM0OywKICAgICYjMzQ7YmdtYWMtcGxhdGZvcm0uYyYjMzQ7LAogICAgJiMzNDtiZ21hYy5jJiMzNDssCiAgICAmIzM0O2JnbWFjLmgmIzM0OywKICAgICYjMzQ7Ym54Mi5jJiMzNDssCiAgICAmIzM0O2JueDIuaCYjMzQ7LAogICAgJiMzNDtibngyX2Z3LmgmIzM0OywKICAgICYjMzQ7Y25pYy5jJiMzNDssCiAgICAmIzM0O2NuaWMuaCYjMzQ7LAogICAgJiMzNDtjbmljX2RlZnMuaCYjMzQ7LAogICAgJiMzNDtjbmljX2lmLmgmIzM0OywKICAgICYjMzQ7c2IxMjUwLW1hYy5jJiMzNDssCiAgICAmIzM0O3RnMy5jJiMzNDssCiAgICAmIzM0O3RnMy5oJiMzNDssCiAgICAmIzM0O3VuaW1hYy5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBbCiAgICAmIzM0O2FzcDImIzM0OywKICAgICYjMzQ7Ym5nZSYjMzQ7LAogICAgJiMzNDtibngyeCYjMzQ7LAogICAgJiMzNDtibnh0JiMzNDssCiAgICAmIzM0O2dlbmV0JiMzNDsKICBdCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwOTozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzgzMQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgZGVsaXZlcmVkIGFzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnk6CgoqKldvcmtpbmcgd2l0aCB0aGUgYm5nZSBEcml2ZXIqKgoKQWxyaWdodCwgc28gdGhlIGluaXRpYWwgdGhvdWdodCByZWdpc3RlcnMgdGhhdCBgYm5nZWAgaXMgYSBzdWJkaXJlY3RvcnkuIFRoYXQmIzM5O3MgZ29vZCDigJMgaXQgaGVscHMgbWUgaW1tZWRpYXRlbHkgc3RhcnQgdG8gZm9ybSBhIG1lbnRhbCBtYXAgb2YgdGhlIHByb2plY3Qgc3RydWN0dXJlLiBOb3csIGdpdmVuIHRoYXQgdGhpcyBpcyBhIG5ldHdvcmsgZHJpdmVyLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZ29pbmcgdG8gd2FudCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGRyaXZlciBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0gYW5kIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlLiBUaGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvS2NvbmZpZ2AgZmlsZSBpcyB0aGUgcGVyZmVjdCBwbGFjZSB0byBzdGFydC4gSXQgY29udGFpbnMgdGhlIEtjb25maWcgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlci4gRnJvbSB0aGVyZSBJIGNhbiBkZXRlcm1pbmUgdGhlIHZhcmlvdXMgY29uZmlndXJhYmxlIGNvbXBvbmVudHMgYW5kIGRlcGVuZGVuY2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDsuKiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MDg0CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRmluZGluZyB0aGUgS2NvbmZpZyBmb3IgYGJuZ2VgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIHN1ZGRlbmx5IEkgcmVhbGl6ZSBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgYGJuZ2VgIGRyaXZlci4gV2hlcmUgaXMgdGhhdCBLY29uZmlnIGZpbGU/IEkmIzM5O20gZHJhd2luZyBhIGJsYW5rLiBBbHJpZ2h0LCBubyB3b3JyaWVzLCB0aW1lIHRvIHBsYXkgZGV0ZWN0aXZlLiBUaGUgc3RhbmRhcmQgcHJhY3RpY2UgZm9yIHRoZXNlIHRoaW5ncyBpcyB1c3VhbGx5IHdpdGhpbiB0aGUgZHJpdmVyJiMzOTtzIG93biBkaXJlY3RvcnksIG9yIG5lYXJieS4gSSYjMzk7bSBnb2luZyB0byBqdW1wIGludG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2AgYW5kIGh1bnQgYXJvdW5kIGZvciB0aGUgS2NvbmZpZyBmaWxlLiBMZXQgbWUgc2VlLi4uIEkgbmVlZCB0byBmaW5kIHRoZSBkZWZpbml0aW9uIGZvciBgQ09ORklHX0JOR0VgLiBUaGF0JiMzOTtzIHRoZSBrZXkuIEhvcGVmdWxseSwgaXQmIzM5O3MgZGVmaW5lZCBhbmQgZG9jdW1lbnRlZCB3ZWxsIHdpdGhpbiB0aGF0IEtjb25maWcgZmlsZS4gVGltZSB0byBkaXZlIGluIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwOTozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtCTkdFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnPTI1MD1jb25maWcgQk5YVF9IV01PTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWctMjU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZzoyNTg6Y29uZmlnIEJOR0VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWctMjU5LVx0dHJpc3RhdGUgXCYjMzQ7QnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0IGRldmljZSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NDIzCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMjQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0KioKCk9rYXksICYjMzQ7QnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0IGRldmljZSBzdXBwb3J0JiMzNDsuLi4gcmlnaHQuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGRyaXZlciBmb3IgKnBoeXNpY2FsKiBCcm9hZGNvbSBFdGhlcm5ldCBoYXJkd2FyZS4gSXQmIzM5O3Mgbm90IHNvbWV0aGluZyBRRU1VIGVtdWxhdGVzIG5hdGl2ZWx5LCBhbmQgSSYjMzk7bSBmYWlybHkgY2VydGFpbiB0aGVyZSBpc24mIzM5O3QgYW55IGVtdWxhdGlvbiBmb3IgaXQgaW4gYSBzdGFuZGFyZCBzZXR1cC4gU28sIHRoaXMgY29kZSBwYXRoIGlzIGVmZmVjdGl2ZWx5IHVucmVhY2hhYmxlIGluIHNvbWV0aGluZyBsaWtlIGEgR0NFIG9yIFFFTVUgZW52aXJvbm1lbnQuCgpMZXQgbWUganVzdCBxdWlja2x5IGRvdWJsZS1jaGVjayDigJMgcGVyaGFwcyB0aGVyZSYjMzk7cyBzb21lIGtpbmQgb2Ygc29mdHdhcmUgZW11bGF0aW9uIG9yIGEgbW9jayBkZXZpY2UgaW4gdGhlIGtlcm5lbCBJJiMzOTttIG5vdCBpbW1lZGlhdGVseSByZW1lbWJlcmluZy4gQWgsIG5vLgoKUmlnaHQsIHRoZSBpbnN0cnVjdGlvbnMgYXJlIGNsZWFyOiBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgY29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgd2UmIzM5O3JlIG91dC4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBFdGhlcm5ldCBkcml2ZXIgZm9yIGEgQnJvYWRjb20gY2FyZCwgYW5kIGl0ICphYnNvbHV0ZWx5KiBuZWVkcyBhIHBoeXNpY2FsIFBDSWUgY2FyZC4gVGhlcmVmb3JlLCBpdCYjMzk7cyBub3QgZnV6emVhYmxlIGluIGEgc3RhbmRhcmQgUUVNVSBzZXR1cC4gV29ydGhGdXp6aW5nPWZhbHNlIGl0IGlzLiBKdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGxvb2sgYXQgdGhlIEJOR0UgKEJyb2FkY29tIE5ldFh0cmVtZSBHaWdhYml0IEV0aGVybmV0KSB0byBzZWUgaWYgdGhlcmUgaXMgYW55IHZpcnR1YWwvbW9jayBkZXZpY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JuZ2VfcGNpX3RibCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM9MjA9c3RhdGljIGNvbnN0IHN0cnVjdCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjY6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGJuZ2VfcGNpX3RibFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNy1cdHsgUENJX1ZERVZJQ0UoQlJPQURDT00sIDB4MTc4MCksIC5kcml2ZXJfZGF0YSA9IEJDTTU3NzA4IH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgYm5nZV9wY2lfdGJsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYz00MTc9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGJuZ2VfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy00MTgtXHQubmFtZVx0XHQ9IGJuZ2VfZHJpdmVyX25hbWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjQxOTpcdC5pZF90YWJsZVx0PSBibmdlX3BjaV90YmwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTQyMC1cdC5wcm9iZVx0XHQ9IGJuZ2VfcHJvYmVfb25lLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwOTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTM3MgoJCQkJCQkJb3V0cHV0OiA5MgoJCQkJCQkJdGhvdWdodHM6IDEwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldHMgYSBkcml2ZXIg4oCTIHNwZWNpZmljYWxseSwgdGhlIGBibmdlYCBkcml2ZXIsIGFuZCBpdCYjMzk7cyBpbnRlcmFjdGluZyB3aXRoIGEgQnJvYWRjb20gZGV2aWNlICgweDE0ZTQgdmVuZG9yIElELCAweDE3ODAgZGV2aWNlIElEKS4gSW5zdGFudGx5LCBJIHJlY29nbml6ZSB0aGF0IHRoaXMgaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXI7IGl0JiMzOTtzIGRlc2lnbmVkIHRvIGludGVyZmFjZSB3aXRoIGEgcGh5c2ljYWwgbmV0d29yayBpbnRlcmZhY2UgY2FyZCAoTklDKS4gVGhlIHRlbGwtdGFsZSBzaWduIGlzIHRoZSBQQ0llIGlkZW50aWZpY2F0aW9uLgoKR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgdGFyZ2V0LCBhbmQga25vd2luZyBteSBlbnZpcm9ubWVudCwgdGhlIHNtYXJ0IG1vdmUgaGVyZSBpcyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSBgYm5nZWAgZHJpdmVyIGlzIGZvciBCcm9hZGNvbSYjMzk7cyBUaG9yVWx0cmEgRXRoZXJuZXQgY29udHJvbGxlcnMuIEkga25vdyB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIGlzbuKAmXQgZ29pbmcgdG8gYmUgZW11bGF0ZWQgcmVsaWFibHkgaW4gdHlwaWNhbCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMuIEJlY2F1c2UgdGhlIHBoeXNpY2FsIGhhcmR3YXJlIGlzbiYjMzk7dCBlbXVsYXRlZCwgYW55IGNvZGUgcGF0aHMgbW9kaWZpZWQgYnkgdGhpcyBwYXRjaCBhcmUgbm90IHJlYWNoYWJsZSBvciB0ZXN0YWJsZSBieSBhbnkgZnV6emVyIEkmIzM5O2QgZGVwbG95LiBUaGVyZWZvcmUsIGZ1cnRoZXIgYW5hbHlzaXMgd2l0aCB0aGlzIHNwZWNpZmljIGFwcHJvYWNoIGlzIGEgd2FzdGUgb2YgcmVzb3VyY2VzLiBJ4oCZbGwgbWFrZSBhIG5vdGUgb2YgdGhlIHZlbmRvciBhbmQgZGV2aWNlIGZvciBmdXR1cmUgcmVmZXJlbmNlLCBidXQgdGhpcyBvbmUgaXMgYSBkZWFkIGVuZCBmb3Igbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwOTozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgKEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgZGV2aWNlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgYnkgdGhlIGZ1enplci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgKEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgZGV2aWNlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgYnkgdGhlIGZ1enplci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjM2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTozNTozMy40NTQ3MjI0MTFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDgzNjY4NTMxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgKEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgZGV2aWNlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgYnkgdGhlIGZ1enplci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM1OjMzLjQ1NDcyNjQzMVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMwMTU2ODk2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDFhZTQ1YmVjNTA0YmY2NGVmYzY2ODdlNmUzNGE2YzQwN2IzNGI5MjNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDk6MzU6MzEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX25ldGRldi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX25ldGRldi5jXFxuaW5kZXggYTQyODhmMDI1OGY4Ny4uMDk3M2NjMjVhM2VjNCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcXG5AQCAtMzI2Nyw2ICszMjY3LDMzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0ZGV2X3N0YXRfb3BzIGJuZ2Vfc3RhdF9vcHMgPSB7XFxuIFxcdC5nZXRfYmFzZV9zdGF0c1xcdFxcdD0gYm5nZV9nZXRfYmFzZV9zdGF0cyxcXG4gfTtcXG4gXFxuK3N0YXRpYyBpbnQgYm5nZV9zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXFxuK3tcXG4rXFx0c3RydWN0IGJuZ2VfbmV0ICpibiA9IG5ldGRldl9wcml2KGRldik7XFxuK1xcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBibi1cXHUwMDNlYmQ7XFxuK1xcdHUzMiBmbGFncyA9IGJuLVxcdTAwM2Vwcml2X2ZsYWdzO1xcbitcXG4rXFx0ZmxhZ3MgXFx1MDAyNj0gfkJOR0VfTkVUX0VOX1RQQTtcXG4rXFx0aWYgKGZlYXR1cmVzIFxcdTAwMjYgTkVUSUZfRl9HUk9fSFcpXFxuK1xcdFxcdGZsYWdzIHw9IEJOR0VfTkVUX0VOX0dSTztcXG4rXFx0ZWxzZSBpZiAoZmVhdHVyZXMgXFx1MDAyNiBORVRJRl9GX0xSTylcXG4rXFx0XFx0ZmxhZ3MgfD0gQk5HRV9ORVRfRU5fTFJPO1xcbitcXG4rXFx0aWYgKGZsYWdzID09IGJuLVxcdTAwM2Vwcml2X2ZsYWdzKVxcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFxuK1xcdGJuLVxcdTAwM2Vwcml2X2ZsYWdzID0gZmxhZ3M7XFxuK1xcbitcXHRpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSkge1xcbitcXHRcXHRibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7XFxuK1xcdFxcdHJldHVybiAwO1xcbitcXHR9XFxuK1xcbitcXHRibmdlX2Nsb3NlX2NvcmUoYm4pO1xcbitcXHRibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7XFxuK1xcdHJldHVybiBibmdlX29wZW5fY29yZShibik7XFxuK31cXG4rXFxuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0ge1xcbiBcXHQubmRvX29wZW5cXHRcXHQ9IGJuZ2Vfb3BlbixcXG4gXFx0Lm5kb19zdG9wXFx0XFx0PSBibmdlX2Nsb3NlLFxcbkBAIC0zMjc0LDYgKzMzMDEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHtcXG4gXFx0Lm5kb19nZXRfc3RhdHM2NFxcdD0gYm5nZV9nZXRfc3RhdHM2NCxcXG4gXFx0Lm5kb19zZXRfcnhfbW9kZV9hc3luY1xcdD0gYm5nZV9zZXRfcnhfbW9kZSxcXG4gXFx0Lm5kb19mZWF0dXJlc19jaGVja1xcdD0gYm5nZV9mZWF0dXJlc19jaGVjayxcXG4rXFx0Lm5kb19zZXRfZmVhdHVyZXNcXHQ9IGJuZ2Vfc2V0X2ZlYXR1cmVzLFxcbiB9O1xcbiBcXG4gc3RhdGljIHZvaWQgYm5nZV9pbml0X21hY19hZGRyKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM1OjM0Ljc1Njk3OTcwNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjQ5NTM0NDA3Nzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGJuZ2VgIChCcm9hZGNvbSBUaG9yVWx0cmEgRXRoZXJuZXQpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgUENJZSBuZXR3b3JrIGRldmljZSBkcml2ZXIuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cywgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgb3IgdGVzdGVkIGJ5IHRoZSBmdXp6ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAxYWU0NWJlYzUwNGJmNjRlZmM2Njg3ZTZlMzRhNmM0MDdiMzRiOTIzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDk6MzU6MzEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbmluZGV4IGE0Mjg4ZjAyNThmODcuLjA5NzNjYzI1YTNlYzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY1xuQEAgLTMyNjcsNiArMzI2NywzMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldGRldl9zdGF0X29wcyBibmdlX3N0YXRfb3BzID0ge1xuIFx0LmdldF9iYXNlX3N0YXRzXHRcdD0gYm5nZV9nZXRfYmFzZV9zdGF0cyxcbiB9O1xuIFxuK3N0YXRpYyBpbnQgYm5nZV9zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXG4re1xuK1x0c3RydWN0IGJuZ2VfbmV0ICpibiA9IG5ldGRldl9wcml2KGRldik7XG4rXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gYm4tXHUwMDNlYmQ7XG4rXHR1MzIgZmxhZ3MgPSBibi1cdTAwM2Vwcml2X2ZsYWdzO1xuK1xuK1x0ZmxhZ3MgXHUwMDI2PSB+Qk5HRV9ORVRfRU5fVFBBO1xuK1x0aWYgKGZlYXR1cmVzIFx1MDAyNiBORVRJRl9GX0dST19IVylcbitcdFx0ZmxhZ3MgfD0gQk5HRV9ORVRfRU5fR1JPO1xuK1x0ZWxzZSBpZiAoZmVhdHVyZXMgXHUwMDI2IE5FVElGX0ZfTFJPKVxuK1x0XHRmbGFncyB8PSBCTkdFX05FVF9FTl9MUk87XG4rXG4rXHRpZiAoZmxhZ3MgPT0gYm4tXHUwMDNlcHJpdl9mbGFncylcbitcdFx0cmV0dXJuIDA7XG4rXG4rXHRibi1cdTAwM2Vwcml2X2ZsYWdzID0gZmxhZ3M7XG4rXG4rXHRpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSkge1xuK1x0XHRibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7XG4rXHRcdHJldHVybiAwO1xuK1x0fVxuK1xuK1x0Ym5nZV9jbG9zZV9jb3JlKGJuKTtcbitcdGJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTtcbitcdHJldHVybiBibmdlX29wZW5fY29yZShibik7XG4rfVxuK1xuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0ge1xuIFx0Lm5kb19vcGVuXHRcdD0gYm5nZV9vcGVuLFxuIFx0Lm5kb19zdG9wXHRcdD0gYm5nZV9jbG9zZSxcbkBAIC0zMjc0LDYgKzMzMDEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHtcbiBcdC5uZG9fZ2V0X3N0YXRzNjRcdD0gYm5nZV9nZXRfc3RhdHM2NCxcbiBcdC5uZG9fc2V0X3J4X21vZGVfYXN5bmNcdD0gYm5nZV9zZXRfcnhfbW9kZSxcbiBcdC5uZG9fZmVhdHVyZXNfY2hlY2tcdD0gYm5nZV9mZWF0dXJlc19jaGVjayxcbitcdC5uZG9fc2V0X2ZlYXR1cmVzXHQ9IGJuZ2Vfc2V0X2ZlYXR1cmVzLFxuIH07XG4gXG4gc3RhdGljIHZvaWQgYm5nZV9pbml0X21hY19hZGRyKHN0cnVjdCBibmdlX2RldiAqYmQpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTozNTozNC43NTY5ODA5MzRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTc5MTcxNzU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY2AuIEl0J3MgaW50cm9kdWNpbmcgYSBgYm5nZV9zZXRfZmVhdHVyZXNgIGZ1bmN0aW9uIGFuZCBob29raW5nIGl0IHVwIHRvIGAubmRvX3NldF9mZWF0dXJlc2AgaW4gYGJuZ2VfbmV0ZGV2X29wc2AuIFRoZSBkcml2ZXIncyBuYW1lIGlzIGBibmdlYCDigJMgc291bmRzIGxpa2UgYSBCcm9hZGNvbSBOZXRYdHJlbWUtRSBHaWdhYml0IEV0aGVybmV0IGRyaXZlciwgcmlnaHQ/IEJ1dCB3YWl0LCBJIG5lZWQgdG8gY29uZmlybSBpZiB0aGlzIGlzIGEgZHJpdmVyIGZvciAqcGh5c2ljYWwqIGhhcmR3YXJlLiBJIG5lZWQgdG8gYmUgc3VyZSBiZWZvcmUgSSBkaXZlIGRlZXBlci5cblxuUmlnaHQsIFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZVwiIGNvbmZpcm1zIHRoZSBsb2NhdGlvbi4gVGltZSB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlcyBvciBzaW1pbGFyIGNvbmZpZ3VyYXRpb24gZmlsZXMgd2l0aGluIHRoZSBgYnJvYWRjb20vYm5nZWAgZGlyZWN0b3J5IHRvIGdldCBzb21lIGNsYXJpdHkgb24gd2hldGhlciB0aGlzIGlzIG1lYW50IGZvciBhIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIGRldmljZS4gSSBuZWVkIHRvIGtub3cgaWYgdGhpcyBpcyBhIGhhcmR3YXJlLWJvdW5kIGRyaXZlciBvciBzb21ldGhpbmcgbW9yZSBhYnN0cmFjdCBiZWZvcmUgYXNzZXNzaW5nIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBmZWF0dXJlIHNldCBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQyOCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM1OjM5LjczNjE1NjMxOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTU0NTg3NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJibmdlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDYxNzggbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL01ha2VmaWxlPTIwPW9iai0kKENPTkZJR19CQ01BU1ApICs9IGFzcDIvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX0JOR0UpICs9IGJuZ2UvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlPTM9b2JqLSQoQ09ORklHX0JOR0UpICs9IGJuZ19lbi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZS00LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6NTpibmdfZW4teSA6PSBibmdlX2NvcmUubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo2OlxcdCAgICBibmdlX2RldmxpbmsubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo3OlxcdCAgICBibmdlX2h3cm0ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo4OlxcdCAgICBibmdlX2h3cm1fbGliLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6OTpcXHQgICAgYm5nZV9ybWVtLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTA6XFx0ICAgIGJuZ2VfcmVzYy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjExOlxcdCAgICBibmdlX25ldGRldi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjEyOlxcdCAgICBibmdlX2V0aHRvb2wubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZToxMzpcXHQgICAgYm5nZV9hdXhyLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTQ6XFx0ICAgIGJuZ2VfdHhyeC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjE1OlxcdCAgICBibmdlX2xpbmsub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTAtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aGVyZGV2aWNlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTE6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JuZ2UvaHNpLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTI6I2luY2x1ZGUgXFxcImJuZ2Vfcm1lbS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjEzOiNpbmNsdWRlIFxcXCJibmdlX3Jlc2MuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNDojaW5jbHVkZSBcXFwiYm5nZV9hdXhyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMDpleHRlcm4gY2hhciBibmdlX2RyaXZlcl9uYW1lW107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg9MjI9ZW51bSBib2FyZF9pZHgge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjY6c3RydWN0IGJuZ2VfYXV4cl9wcml2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNy1cXHRzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSBhdXhfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI4OlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yOS1cXHRpbnQgaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0zMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDozMjpzdHJ1Y3QgYm5nZV9wZl9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0zMy1cXHR1MTZcXHRmd19maWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaD04MT1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTkyLSNkZWZpbmUgQk5HRV9NQVhfUVVFVUVcXHRcXHQ4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6OTM6c3RydWN0IGJuZ2VfcXVldWVfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtOTQtXFx0dTggICAgICBxdWV1ZV9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTEwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxMDM6c3RydWN0IGJuZ2VfZGV2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xMDQtXFx0c3RydWN0IGRldmljZVxcdCpkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTQ1OlxcdHN0cnVjdCBibmdlX3BmX2luZm9cXHRwZjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTMtXFx0LyogQmFja2luZyBzdG9yZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNTQ6XFx0c3RydWN0IGJuZ2VfY3R4X21lbV9pbmZvXFx0KmN0eDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTU4OlxcdHN0cnVjdCBibmdlX2h3X3Jlc2NcXHRod19yZXNjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTE1OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIwNC1cXHR1OFxcdFxcdFxcdG1heF9sbHRjO1xcdC8qIGxvc3NsZXNzIFRDcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIwNTpcXHRzdHJ1Y3QgYm5nZV9xdWV1ZV9pbmZvXFx0cV9pbmZvW0JOR0VfTUFYX1FVRVVFXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMDYtXFx0dThcXHRcXHRcXHR0Y190b19xaWR4W0JOR0VfTUFYX1FVRVVFXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTE6XFx0c3RydWN0IGJuZ2VfaXJxXFx0XFx0KmlycV90Ymw7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEyLVxcdHUxNlxcdFxcdFxcdGlycXNfYWNxdWlyZWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIxNDpcXHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXZcXHQqYXV4X3ByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjE1OlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2XFx0KmF1eHJfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTc6XFx0c3RydWN0IGJuZ2VfbGlua19pbmZvXFx0bGlua19pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIyMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMjM6c3RhdGljIGlubGluZSBib29sIGJuZ2VfaXNfcm9jZV9lbihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIyNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjI4OnN0YXRpYyBpbmxpbmUgYm9vbCBibmdlX2lzX2FnZ19yZXFkKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjI5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMzAtXFx0aWYgKGJkLVxcdTAwM2VuZXRkZXYpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMzE6XFx0XFx0c3RydWN0IGJuZ2VfbmV0ICpibiA9IG5ldGRldl9wcml2KGJkLVxcdTAwM2VuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIzMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNDM6c3RhdGljIGlubGluZSB2b2lkIGJuZ2Vfd3JpdGVxKHN0cnVjdCBibmdlX2RldiAqYmQsIHU2NCB2YWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjQ0LVxcdFxcdFxcdCAgICAgICB2b2lkIF9faW9tZW0gKmFkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTUtLyogRm9yIFRYIGFuZCBSWCByaW5nIGRvb3JiZWxscyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI1NjpzdGF0aWMgaW5saW5lIHZvaWQgYm5nZV9kYl93cml0ZShzdHJ1Y3QgYm5nZV9kZXYgKmJkLCBzdHJ1Y3QgYm5nZV9kYl9pbmZvICpkYixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTctXFx0XFx0XFx0XFx0IHUzMiBpZHgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjU4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNTk6XFx0Ym5nZV93cml0ZXEoYmQsIGRiLVxcdTAwM2VkYl9rZXk2NCB8IERCX1JJTkdfSURYKGRiLCBpZHgpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI2MC1cXHRcXHQgICAgZGItXFx1MDAzZWRvb3JiZWxsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNjM6Ym9vbCBibmdlX2F1eF9yZWdpc3RlcmVkKHN0cnVjdCBibmdlX2RldiAqYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI2NDp1MTYgYm5nZV9hdXhfZ2V0X21zaXgoc3RydWN0IGJuZ2VfZGV2ICpiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjY1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvYXV4aWxpYXJ5X2J1cy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTc6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JuZ2UvaHNpLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE5OiNpbmNsdWRlIFxcXCJibmdlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMDojaW5jbHVkZSBcXFwiYm5nZV9od3JtLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTojaW5jbHVkZSBcXFwiYm5nZV9hdXhyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzOnN0YXRpYyBERUZJTkVfSURBKGJuZ2VfYXV4X2Rldl9pZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNTpzdGF0aWMgdm9pZCBibmdlX2ZpbGxfbXNpeF92ZWNzKHN0cnVjdCBibmdlX2RldiAqYmQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNjpcXHRcXHRcXHRcXHRzdHJ1Y3QgYm5nZV9tc2l4X2luZm8gKmluZm8pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yNy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyODpcXHRzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYgPSBiZC1cXHUwMDNlYXV4cl9kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yOS1cXHRpbnQgbnVtX21zaXgsIGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NDM6aW50IGJuZ2VfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQ0LVxcdFxcdCAgICAgIHZvaWQgKmhhbmRsZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQ1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjQ2OlxcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBwY2lfZ2V0X2RydmRhdGEoYXV4cl9kZXYtXFx1MDAzZXBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NDc6XFx0c3RydWN0IGJuZ2VfYXV4cl9pbmZvICphdXhyX2luZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy00OC1cXHRpbnQgcmMgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy01Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjU3OlxcdGlmICghYm5nZV9hdXhfaGFzX2Vub3VnaF9yZXNvdXJjZXMoYmQpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy01OC1cXHRcXHRyYyA9IC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6Njc6XFx0Ym5nZV9maWxsX21zaXhfdmVjcyhiZCwgYmQtXFx1MDAzZWF1eHJfZGV2LVxcdTAwM2Vtc2l4X2luZm8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNjgtXFx0YXV4cl9kZXYtXFx1MDAzZWZsYWdzIHw9IEJOR0VfQVJERVZfTVNJWF9BTExPQztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNzQtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NzU6RVhQT1JUX1NZTUJPTChibmdlX3JlZ2lzdGVyX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy03Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjc3OnZvaWQgYm5nZV91bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy03OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo3OTpcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKGF1eHJfZGV2LVxcdTAwM2VwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjgwOlxcdHN0cnVjdCBibmdlX2F1eHJfaW5mbyAqYXV4cl9pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtODEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTkxLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjkyOkVYUE9SVF9TWU1CT0woYm5nZV91bnJlZ2lzdGVyX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjk0OmludCBibmdlX3NlbmRfbXNnKHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2Rldiwgc3RydWN0IGJuZ2VfZndfbXNnICpmd19tc2cpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo5NjpcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKGF1eHJfZGV2LVxcdTAwM2VwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTk3LVxcdHN0cnVjdCBvdXRwdXQgKnJlc3A7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEwMjpcXHRyYyA9IGJuZ2VfaHdybV9yZXFfaW5pdChiZCwgcmVxLCAwIC8qIGRvbid0IGNhcmUgKi8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTAzLVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTA2OlxcdHJjID0gYm5nZV9od3JtX3JlcV9yZXBsYWNlKGJkLCByZXEsIGZ3X21zZy1cXHUwMDNlbXNnLCBmd19tc2ctXFx1MDAzZW1zZ19sZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA3LVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTEwOlxcdGJuZ2VfaHdybV9yZXFfdGltZW91dChiZCwgcmVxLCBmd19tc2ctXFx1MDAzZXRpbWVvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTExOlxcdHJlc3AgPSBibmdlX2h3cm1fcmVxX2hvbGQoYmQsIHJlcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMTI6XFx0cmMgPSBibmdlX2h3cm1fcmVxX3NlbmQoYmQsIHJlcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMTMtXFx0cmVzcF9sZW4gPSBsZTE2X3RvX2NwdShyZXNwLVxcdTAwM2VyZXNwX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEyMC1kcm9wX3JlcTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyMTpcXHRibmdlX2h3cm1fcmVxX2Ryb3AoYmQsIHJlcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjItXFx0cmV0dXJuIHJjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTIzLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyNDpFWFBPUlRfU1lNQk9MKGJuZ2Vfc2VuZF9tc2cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTI2OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfdW5pbml0KHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTI4OlxcdHN0cnVjdCBibmdlX2F1eHJfcHJpdiAqYXV4X3ByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjktXFx0c3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0MDpzdGF0aWMgdm9pZCBibmdlX2F1eF9kZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNDEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQyOlxcdHN0cnVjdCBibmdlX2F1eHJfcHJpdiAqYXV4X3ByaXYgPVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQzOlxcdFxcdFxcdGNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdCBibmdlX2F1eHJfcHJpdiwgYXV4X2Rldi5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQ0OlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldiA9IGF1eF9wcml2LVxcdTAwM2VhdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NTpcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKHRvX3BjaV9kZXYoZGV2LVxcdTAwM2VwYXJlbnQpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NzpcXHRpZGFfZnJlZShcXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgYXV4X3ByaXYtXFx1MDAzZWlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE0OC1cXHRpZiAoYXV4cl9kZXYpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTU3OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfZGVsKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNTgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNjU6c3RhdGljIHZvaWQgYm5nZV9zZXRfYXV4cl9kZXZfaW5mbyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNjY6XFx0XFx0XFx0XFx0ICAgc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE2Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE4Njp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTg3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjA2OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIwOC1cXHRzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYXV4X2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIwOTpcXHRzdHJ1Y3QgYm5nZV9hdXhyX2luZm8gKmF1eHJfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIxMDpcXHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXYgKmF1eF9wcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjExOlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIxMi1cXHRpbnQgcmM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTQ6XFx0aWYgKCFibmdlX2lzX3JvY2VfZW4oYmQpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjE1LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjIxOlxcdGF1eF9wcml2LVxcdTAwM2VpZCA9IGlkYV9hbGxvYyhcXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgR0ZQX0tFUk5FTCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMjItXFx0aWYgKGF1eF9wcml2LVxcdTAwM2VpZCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjMxLVxcdGF1eF9kZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBcXHUwMDI2YmQtXFx1MDAzZXBkZXYtXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzMjpcXHRhdXhfZGV2LVxcdTAwM2VkZXYucmVsZWFzZSA9IGJuZ2VfYXV4X2Rldl9yZWxlYXNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzUtXFx0aWYgKHJjKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMzY6XFx0XFx0aWRhX2ZyZWUoXFx1MDAyNmJuZ2VfYXV4X2Rldl9pZHMsIGF1eF9wcml2LVxcdTAwM2VpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzctXFx0XFx0a2ZyZWUoYXV4X3ByaXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yNTMtXFx0YmQtXFx1MDAzZWF1eHJfZGV2ID0gYXV4cl9kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNTQ6XFx0Ym5nZV9zZXRfYXV4cl9kZXZfaW5mbyhhdXhyX2RldiwgYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaD0xND1zdHJ1Y3QgaHdybV9hc3luY19ldmVudF9jbXBsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6MTU6c3RydWN0IGJuZ2U7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjE3OnN0cnVjdCBibmdlX21zaXhfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0xOC1cXHR1MzJcXHR2ZWN0b3I7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTIyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6MjM6c3RydWN0IGJuZ2VfZndfbXNnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTI0LVxcdHZvaWRcXHQqbXNnO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjMxOnN0cnVjdCBibmdlX2F1eHJfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0zMi1cXHR2b2lkXFx0XFx0KmhhbmRsZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg9MzY9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6NDU6c3RydWN0IGJuZ2VfYXV4cl9kZXYge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNDYtXFx0c3RydWN0IG5ldF9kZXZpY2VcXHQqbmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjUwOlxcdHN0cnVjdCBibmdlX21zaXhfaW5mb1xcdG1zaXhfaW5mb1tCTkdFX01BWF9ST0NFX01TSVhdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6NTQ6XFx0c3RydWN0IGJuZ2VfYXV4cl9pbmZvXFx0KmF1eHJfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC03NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc1OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfdW5pbml0KHN0cnVjdCBibmdlX2RldiAqYmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3Njp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2RlbChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6Nzc6dm9pZCBibmdlX3JkbWFfYXV4X2RldmljZV9hZGQoc3RydWN0IGJuZ2VfZGV2ICpiZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc4OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6Nzk6aW50IGJuZ2VfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtODAtXFx0XFx0ICAgICAgdm9pZCAqaGFuZGxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjgxOnZvaWQgYm5nZV91bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo4MjppbnQgYm5nZV9zZW5kX21zZyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYWRldiwgc3RydWN0IGJuZ2VfZndfbXNnICpmd19tc2cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtODMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo5OiNpbmNsdWRlIFxcXCJibmdlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDojaW5jbHVkZSBcXFwiYm5nZV9kZXZsaW5rLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMTojaW5jbHVkZSBcXFwiYm5nZV9od3JtLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMjojaW5jbHVkZSBcXFwiYm5nZV9od3JtX2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTM6I2luY2x1ZGUgXFxcImJuZ2VfbGluay5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTE2PU1PRFVMRV9ERVNDUklQVElPTihEUlZfU1VNTUFSWSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE4OmNoYXIgYm5nZV9kcml2ZXJfbmFtZVtdID0gRFJWX05BTUU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTIwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBibmdlX3BjaV90YmxbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI3LVxcdHsgUENJX1ZERVZJQ0UoQlJPQURDT00sIDB4MTc4MCksIC5kcml2ZXJfZGF0YSA9IEJDTTU3NzA4IH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgYm5nZV9wY2lfdGJsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzM6c3RhdGljIHZvaWQgYm5nZV9wcmludF9kZXZpY2VfaW5mbyhzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZW51bSBib2FyZF9pZHggaWR4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy00Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjQzOmJvb2wgYm5nZV9hdXhfcmVnaXN0ZXJlZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NDU6XFx0c3RydWN0IGJuZ2VfYXV4cl9kZXYgKmJhX2RldiA9IGJkLVxcdTAwM2VhdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTQ2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjUzOnN0YXRpYyB2b2lkIGJuZ2VfbnZtX2NmZ192ZXJfZ2V0KHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NTc6XFx0aWYgKCFibmdlX2h3cm1fbnZtX2Rldl9pbmZvKGJkLCBcXHUwMDI2bnZtX2luZm8pKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNTgtXFx0XFx0c25wcmludGYoYmQtXFx1MDAzZW52bV9jZmdfdmVyLCBGV19WRVJfU1RSX0xFTiwgXFxcIiVkLiVkLiVkXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo2MzpzdGF0aWMgaW50IGJuZ2VfZnVuY19xY2FwcyhzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy02Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjY3OlxcdHJjID0gYm5nZV9od3JtX2Z1bmNfcWNhcHMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjgtXFx0aWYgKHJjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy03MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjcxOlxcdHJjID0gYm5nZV9od3JtX3F1ZXVlX3Fwb3J0Y2ZnKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTcyLVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy03OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjgwOnN0YXRpYyBpbnQgYm5nZV9mdW5jX3FyY2Fwc19xY2ZnKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6ODQ6XFx0cmMgPSBibmdlX2h3cm1fZnVuY19yZXNjX3FjYXBzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTg1LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjkwOlxcdHJjID0gYm5nZV9od3JtX2Z1bmNfcWNmZyhiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy05MS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtOTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo5NjpcXHRyYyA9IGJuZ2VfaHdybV92bmljX3FjYXBzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTk3LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDU6c3RhdGljIHZvaWQgYm5nZV9md191bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTA2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEwNy1cXHQvKiBjdHggbWVtIGZyZWUgYWZ0ZXIgdW5yZ3RyIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwODpcXHRibmdlX2h3cm1fZnVuY19kcnZfdW5yZ3RyKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwOTpcXHRibmdlX2ZyZWVfY3R4X21lbShiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMTAtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTEyOnN0YXRpYyB2b2lkIGJuZ2Vfc2V0X2RmbHRfcnNzX2hhc2hfdHlwZShzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTIyOnN0YXRpYyBpbnQgYm5nZV9md19yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyNi1cXHRiZC1cXHUwMDNlZndfY2FwID0gMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEyNzpcXHRyYyA9IGJuZ2VfaHdybV92ZXJfZ2V0KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyOC1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTMzOlxcdGJuZ2VfbnZtX2NmZ192ZXJfZ2V0KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEzNTpcXHRyYyA9IGJuZ2VfaHdybV9mdW5jX3Jlc2V0KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEzNi1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTQxOlxcdGJuZ2VfaHdybV9md19zZXRfdGltZShiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDMtXFx0LyogR2V0IHRoZSByZXNvdXJjZXMgYW5kIGNvbmZpZ3VyYXRpb24gZnJvbSBmaXJtd2FyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTQ0OlxcdHJjID0gYm5nZV9mdW5jX3FjYXBzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE0NS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTUwOlxcdHJjID0gYm5nZV9hbGxvY19jdHhfbWVtKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE1MS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTU2OlxcdHJjID0gYm5nZV9od3JtX2Z1bmNfZHJ2X3JndHIoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTU3LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNjI6XFx0cmMgPSBibmdlX2Z1bmNfcXJjYXBzX3FjZmcoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTYzLVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNjg6XFx0Ym5nZV9zZXRfZGZsdF9yc3NfaGFzaF90eXBlKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTcyLWVycl9mdW5jX3Vucmd0cjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE3MzpcXHRibmdlX2h3cm1fZnVuY19kcnZfdW5yZ3RyKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3NC1lcnJfZnJlZV9jdHhfbWVtOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTc1OlxcdGJuZ2VfZnJlZV9jdHhfbWVtKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3Ni1cXHRyZXR1cm4gcmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE3OTpzdGF0aWMgdm9pZCBibmdlX3BjaV9kaXNhYmxlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTgwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTg2OnN0YXRpYyBpbnQgYm5nZV9wY2lfZW5hYmxlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTg3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjAzOlxcdHJjID0gcGNpX3JlcXVlc3RfcmVnaW9ucyhwZGV2LCBibmdlX2RyaXZlcl9uYW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIwNC1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjIwOnN0YXRpYyB2b2lkIGJuZ2VfdW5tYXBfYmFycyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIyMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyMjI6XFx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjM1OnN0YXRpYyB2b2lkIGJuZ2Vfc2V0X21heF9mdW5jX2lycXMoc3RydWN0IGJuZ2VfZGV2ICpiZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIzNi1cXHRcXHRcXHRcXHQgICB1bnNpZ25lZCBpbnQgbWF4X2lycXMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI0MTpzdGF0aWMgaW50IGJuZ2VfZ2V0X21heF9pcnEoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNDk6c3RhdGljIGludCBibmdlX21hcF9kYl9iYXIoc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI1MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI2MTpzdGF0aWMgaW50IGJuZ2VfcHJvYmVfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjYyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2My1cXHR1bnNpZ25lZCBpbnQgbWF4X2lycXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNjQ6XFx0c3RydWN0IGJuZ2VfZGV2ICpiZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2NS1cXHRpbnQgcmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI4MDpcXHRyYyA9IGJuZ2VfcGNpX2VuYWJsZShwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI4MS1cXHRpZiAocmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI4NDpcXHRibmdlX3ByaW50X2RldmljZV9pbmZvKHBkZXYsIGVudC1cXHUwMDNlZHJpdmVyX2RhdGEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6Mjg2OlxcdGJkID0gYm5nZV9kZXZsaW5rX2FsbG9jKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjg3LVxcdGlmICghYmQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzAwOlxcdHJjID0gYm5nZV9pbml0X2h3cm1fcmVzb3VyY2VzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwMS1cXHRpZiAocmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMwNDpcXHRyYyA9IGJuZ2VfZndfcmVnaXN0ZXJfZGV2KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwNS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzEwOlxcdGJuZ2VfZGV2bGlua19yZWdpc3RlcihiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTI6XFx0bWF4X2lycXMgPSBibmdlX2dldF9tYXhfaXJxKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzEzOlxcdGJuZ2Vfc2V0X21heF9mdW5jX2lycXMoYmQsIG1heF9pcnFzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxNTpcXHRibmdlX2F1eF9pbml0X2RmbHRfY29uZmlnKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxNzpcXHRyYyA9IGJuZ2VfbmV0X2luaXRfZGZsdF9jb25maWcoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzE4LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMjQ6XFx0cmMgPSBibmdlX21hcF9kYl9iYXIoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzI1LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzU6XFx0Ym5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzc6XFx0cmMgPSBibmdlX2FsbG9jX2lycXMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzM4LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNDM6XFx0cmMgPSBibmdlX25ldGRldl9hbGxvYyhiZCwgbWF4X2lycXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQ0LVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzQ3OlxcdGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM1My1lcnJfZnJlZV9pcnE6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNTQ6XFx0Ym5nZV9mcmVlX2lycXMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU2LWVycl91bmluaXRfYXV4cjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM1NzpcXHRibmdlX3JkbWFfYXV4X2RldmljZV91bmluaXQoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU5LWVycl9jb25maWdfdW5pbml0OlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzYwOlxcdGJuZ2VfbmV0X3VuaW5pdF9kZmx0X2NvbmZpZyhiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjItZXJyX2Z3X3JlZzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM2MzpcXHRibmdlX2RldmxpbmtfdW5yZWdpc3RlcihiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNjQ6XFx0Ym5nZV9md191bnJlZ2lzdGVyX2RldihiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjYtZXJyX2h3cm1fY2xlYW51cDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM2NzpcXHRibmdlX2NsZWFudXBfaHdybV9yZXNvdXJjZXMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzY5LWVycl9iYXJfdW5tYXA6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzA6XFx0Ym5nZV91bm1hcF9iYXJzKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzcyLWVycl9kZXZsX2ZyZWU6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzM6XFx0Ym5nZV9kZXZsaW5rX2ZyZWUoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc1LWVycl9wY2lfZGlzYWJsZTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM3NjpcXHRibmdlX3BjaV9kaXNhYmxlKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc3LVxcdHJldHVybiByYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzgwOnN0YXRpYyB2b2lkIGJuZ2VfcmVtb3ZlX29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM4MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozODI6XFx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDk6MzU6MzkuNzg1NzA0ODQ1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzE4MzE0ODgyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlICdibmdlJyBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBibmdlYCBkcml2ZXIsIGFuZCBpdCdzIHJlZ2lzdGVyaW5nIGl0c2VsZiBhcyBhIFBDSSBkZXZpY2Ug4oCTIGBQQ0lfVkRFVklDRShCUk9BRENPTSwgMHgxNzgwKWAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldhaXQgYSBtaW51dGUsIGlzIHRoaXMgKmFjdHVhbGx5KiBhIGhhcmR3YXJlIGRyaXZlciB0aGF0IG5lZWRzIGEgcGh5c2ljYWwgQnJvYWRjb20gRXRoZXJuZXQgY2FyZD9cIiBJJ20gcHJldHR5IHN1cmUgaXQgaXMuIFllcCwgdGhhdCBjb25maXJtcyBpdCDigJMgaXQncyBhIEJyb2FkY29tIEV0aGVybmV0IGRyaXZlci5cblxuQnV0LCB0aGUgaW5zdHJ1Y3Rpb25zIEknbSBmb2xsb3dpbmcgYXJlIHRocm93aW5nIG1lIGEgY3VydmViYWxsLCBzdGF0aW5nIHNvbWV0aGluZyBhYm91dCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyBuZWVkaW5nIHBoeXNpY2FsIGhhcmR3YXJlIGNhcmRzIHRoYXQgYXJlbid0IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIFRoYXQgbGlzdCBpbmNsdWRlcyBzb21lIGRyaXZlcnMgSSdtIHZlcnkgZmFtaWxpYXIgd2l0aCwgYnV0IGlzIGBibmdlYCBpbmNsdWRlZCBhcyBhIHN0YW5kYXJkIFFFTVUgZW11bGF0ZWQgZGV2aWNlPyBObywgdGhhdCdzIHRoZSBrZXkgcXVlc3Rpb24uIExldCBtZSBxdWlja2x5IHJ1biB0aHJvdWdoIHRoZSB1c3VhbCBzdXNwZWN0cyBmb3IgUUVNVSBlbXVsYXRpb246IGUxMDAwLCBlMTAwMGUsIHJ0bDgxMzksIHBjbmV0LCBuZTJrX3BjaSwgdm14bmV0MywgdmlydGlvLW5ldCwgaTgyNTU5ZXIsIGFuZCB0dWxpcC4gTm8gQnJvYWRjb20gTmV0WHRyZW1lLUUgKGJueHQpIG9yIGJuZ2UgYXJlIGxpc3RlZCB0aGVyZS5cblxuQWxyaWdodCwgc28gdGhlIG5leHQgdGhpbmcgSSBuZWVkIHRvIHZlcmlmeSBpcyB3aGV0aGVyIGBibmdlYCBpcyBhIFwicmVhbFwiIGRyaXZlciBwcmVzZW50IGluIHRoZSB1cHN0cmVhbSBrZXJuZWwsIG9yIGlmIHRoaXMgaXMgc29tZSBraW5kIG9mIHN5emthbGxlciBwc2V1ZG8tZHJpdmVyLCBvciBzb21ldGhpbmcgZXF1YWxseSBleG90aWMuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgdXBzdHJlYW0ga2VybmVsIHNvdXJjZSB0byBjb25maXJtIGl0cyBleGlzdGVuY2UgYW5kIHZhbGlkaXR5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjY2MiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTozNTo0Ni45Njg4NTY3NTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU2OTE3NDUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJuZ2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDk6MzU6NDcuMDE0NTU0NzI0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODMyMjkzMjM2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqSW52ZXN0aWdhdGluZyBhIENvbmZpZ3VyYXRpb24gSXNzdWUqKlxuXG5Ib2xkIG9uIGEgc2Vjb25kLi4uIEkgd2FzIHN1cmUgSSBzYXcgYSBgYm5nZWAgc3ltYm9sIGluIGEgQnJvYWRjb20gZXRoZXJuZXQgS2NvbmZpZyBmaWxlLCBidXQgbm93IEkgY2FuJ3QgZmluZCBpdC4gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQuIEl0J3Mgb2RkLCBJIHRob3VnaHQgSSB3YXMgbG9va2luZyBpbiB0aGUgcmlnaHQgc3BvdCwgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWdgLiBQZXJoYXBzIEkgYW0gbWlzdGFrZW4gYWJvdXQgdGhlIG5hbWluZyBjb252ZW50aW9uIG9yIHRoZSBsb2NhdGlvbiBvZiB0aGF0IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBPa2F5LCB0aW1lIHRvIHN0ZXAgYmFjayBhbmQgdGFrZSBhIGxvb2sgYXQgdGhlIHdob2xlIGRpcmVjdG9yeSBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgaXQuIEkgd2lsbCBzdGFydCBieSBleGFtaW5pbmcgdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9gIGRpcmVjdG9yeSBpdHNlbGYsIGp1c3QgdG8gZ2V0IGEgZnJlc2ggcGVyc3BlY3RpdmUgYW5kIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55dGhpbmcgb2J2aW91cy4gQmV0dGVyIHRvIHN0YXJ0IHdpdGggdGhlIGJhc2ljIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgdGhhbiB0byBhc3N1bWUgbXkgaW5pdGlhbCBtZW1vcnkgaXMgY29ycmVjdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTczMDQsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTozNTo1NS4zMzc0ODkyNjJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxOTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb21cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiYjQ0LmNcIixcbiAgICBcImI0NC5oXCIsXG4gICAgXCJiY200OTA4X2VuZXQuY1wiLFxuICAgIFwiYmNtNDkwOF9lbmV0LmhcIixcbiAgICBcImJjbTYzeHhfZW5ldC5jXCIsXG4gICAgXCJiY202M3h4X2VuZXQuaFwiLFxuICAgIFwiYmNtc3lzcG9ydC5jXCIsXG4gICAgXCJiY21zeXNwb3J0LmhcIixcbiAgICBcImJnbWFjLWJjbWEtbWRpby5jXCIsXG4gICAgXCJiZ21hYy1iY21hLmNcIixcbiAgICBcImJnbWFjLXBsYXRmb3JtLmNcIixcbiAgICBcImJnbWFjLmNcIixcbiAgICBcImJnbWFjLmhcIixcbiAgICBcImJueDIuY1wiLFxuICAgIFwiYm54Mi5oXCIsXG4gICAgXCJibngyX2Z3LmhcIixcbiAgICBcImNuaWMuY1wiLFxuICAgIFwiY25pYy5oXCIsXG4gICAgXCJjbmljX2RlZnMuaFwiLFxuICAgIFwiY25pY19pZi5oXCIsXG4gICAgXCJzYjEyNTAtbWFjLmNcIixcbiAgICBcInRnMy5jXCIsXG4gICAgXCJ0ZzMuaFwiLFxuICAgIFwidW5pbWFjLmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogW1xuICAgIFwiYXNwMlwiLFxuICAgIFwiYm5nZVwiLFxuICAgIFwiYm54MnhcIixcbiAgICBcImJueHRcIixcbiAgICBcImdlbmV0XCJcbiAgXVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDk6MzU6NTUuMzM3NTcyNjEyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTU3NjA3NjkyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgZGVsaXZlcmVkIGFzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnk6XG5cbioqV29ya2luZyB3aXRoIHRoZSBibmdlIERyaXZlcioqXG5cbkFscmlnaHQsIHNvIHRoZSBpbml0aWFsIHRob3VnaHQgcmVnaXN0ZXJzIHRoYXQgYGJuZ2VgIGlzIGEgc3ViZGlyZWN0b3J5LiBUaGF0J3MgZ29vZCDigJMgaXQgaGVscHMgbWUgaW1tZWRpYXRlbHkgc3RhcnQgdG8gZm9ybSBhIG1lbnRhbCBtYXAgb2YgdGhlIHByb2plY3Qgc3RydWN0dXJlLiBOb3csIGdpdmVuIHRoYXQgdGhpcyBpcyBhIG5ldHdvcmsgZHJpdmVyLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzLiBTcGVjaWZpY2FsbHksIEknbSBnb2luZyB0byB3YW50IHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgZHJpdmVyIGlzIGludGVncmF0ZWQgaW50byB0aGUga2VybmVsIGJ1aWxkIHN5c3RlbSBhbmQgd2hhdCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIFRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9LY29uZmlnYCBmaWxlIGlzIHRoZSBwZXJmZWN0IHBsYWNlIHRvIHN0YXJ0LiBJdCBjb250YWlucyB0aGUgS2NvbmZpZyBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgc3BlY2lmaWMgZHJpdmVyLiBGcm9tIHRoZXJlIEkgY2FuIGRldGVybWluZSB0aGUgdmFyaW91cyBjb25maWd1cmFibGUgY29tcG9uZW50cyBhbmQgZGVwZW5kZW5jaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzgzMSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyLCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTozNjowNC45MTM2NTE4MTdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1ODczOTM2LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCIuKlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM2OjA0Ljk1OTUzNDE2M1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NzQyMzEyOTc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZpbmRpbmcgdGhlIEtjb25maWcgZm9yIGBibmdlYCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgc3VkZGVubHkgSSByZWFsaXplIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBgYm5nZWAgZHJpdmVyLiBXaGVyZSBpcyB0aGF0IEtjb25maWcgZmlsZT8gSSdtIGRyYXdpbmcgYSBibGFuay4gQWxyaWdodCwgbm8gd29ycmllcywgdGltZSB0byBwbGF5IGRldGVjdGl2ZS4gVGhlIHN0YW5kYXJkIHByYWN0aWNlIGZvciB0aGVzZSB0aGluZ3MgaXMgdXN1YWxseSB3aXRoaW4gdGhlIGRyaXZlcidzIG93biBkaXJlY3RvcnksIG9yIG5lYXJieS4gSSdtIGdvaW5nIHRvIGp1bXAgaW50byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYCBhbmQgaHVudCBhcm91bmQgZm9yIHRoZSBLY29uZmlnIGZpbGUuIExldCBtZSBzZWUuLi4gSSBuZWVkIHRvIGZpbmQgdGhlIGRlZmluaXRpb24gZm9yIGBDT05GSUdfQk5HRWAuIFRoYXQncyB0aGUga2V5LiBIb3BlZnVsbHksIGl0J3MgZGVmaW5lZCBhbmQgZG9jdW1lbnRlZCB3ZWxsIHdpdGhpbiB0aGF0IEtjb25maWcgZmlsZS4gVGltZSB0byBkaXZlIGluIVxuXG5cbiIsIklucHV0VG9rZW5zIjoxODA4NCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM2OjEyLjcwMTg1MDE4MloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDYwNjIxNjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQk5HRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWc9MjUwPWNvbmZpZyBCTlhUX0hXTU9OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnLTI1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnOjI1ODpjb25maWcgQk5HRVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWctMjU5LVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBUaG9yVWx0cmEgRXRoZXJuZXQgZGV2aWNlIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM2OjEyLjc0NzkxNzc1OFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NzU2ODA0ODU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0KipcblxuT2theSwgXCJCcm9hZGNvbSBUaG9yVWx0cmEgRXRoZXJuZXQgZGV2aWNlIHN1cHBvcnRcIi4uLiByaWdodC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZHJpdmVyIGZvciAqcGh5c2ljYWwqIEJyb2FkY29tIEV0aGVybmV0IGhhcmR3YXJlLiBJdCdzIG5vdCBzb21ldGhpbmcgUUVNVSBlbXVsYXRlcyBuYXRpdmVseSwgYW5kIEknbSBmYWlybHkgY2VydGFpbiB0aGVyZSBpc24ndCBhbnkgZW11bGF0aW9uIGZvciBpdCBpbiBhIHN0YW5kYXJkIHNldHVwLiBTbywgdGhpcyBjb2RlIHBhdGggaXMgZWZmZWN0aXZlbHkgdW5yZWFjaGFibGUgaW4gc29tZXRoaW5nIGxpa2UgYSBHQ0Ugb3IgUUVNVSBlbnZpcm9ubWVudC5cblxuTGV0IG1lIGp1c3QgcXVpY2tseSBkb3VibGUtY2hlY2sg4oCTIHBlcmhhcHMgdGhlcmUncyBzb21lIGtpbmQgb2Ygc29mdHdhcmUgZW11bGF0aW9uIG9yIGEgbW9jayBkZXZpY2UgaW4gdGhlIGtlcm5lbCBJJ20gbm90IGltbWVkaWF0ZWx5IHJlbWVtYmVyaW5nLiBBaCwgbm8uXG5cblJpZ2h0LCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBjbGVhcjogaWYgdGhlIHBhdGNoIGludm9sdmVzIGNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIGRyaXZlcnMgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIHdlJ3JlIG91dC4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBFdGhlcm5ldCBkcml2ZXIgZm9yIGEgQnJvYWRjb20gY2FyZCwgYW5kIGl0ICphYnNvbHV0ZWx5KiBuZWVkcyBhIHBoeXNpY2FsIFBDSWUgY2FyZC4gVGhlcmVmb3JlLCBpdCdzIG5vdCBmdXp6ZWFibGUgaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwLiBXb3J0aEZ1enppbmc9ZmFsc2UgaXQgaXMuIEp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBJJ20gZ29pbmcgdG8gcXVpY2tseSBsb29rIGF0IHRoZSBCTkdFIChCcm9hZGNvbSBOZXRYdHJlbWUgR2lnYWJpdCBFdGhlcm5ldCkgdG8gc2VlIGlmIHRoZXJlIGlzIGFueSB2aXJ0dWFsL21vY2sgZGV2aWNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODQyMywiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTozNjoxOC41MDQ3MjQ4NDRaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MzU0ODE1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJuZ2VfcGNpX3RibFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTIwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBibmdlX3BjaV90YmxbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI3LVxcdHsgUENJX1ZERVZJQ0UoQlJPQURDT00sIDB4MTc4MCksIC5kcml2ZXJfZGF0YSA9IEJDTTU3NzA4IH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgYm5nZV9wY2lfdGJsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYz00MTc9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGJuZ2VfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDE4LVxcdC5uYW1lXFx0XFx0PSBibmdlX2RyaXZlcl9uYW1lLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NDE5OlxcdC5pZF90YWJsZVxcdD0gYm5nZV9wY2lfdGJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDIwLVxcdC5wcm9iZVxcdFxcdD0gYm5nZV9wcm9iZV9vbmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM2OjE4LjU0OTA4MjE0WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3NDIyNzg4MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggdGFyZ2V0cyBhIGRyaXZlciDigJMgc3BlY2lmaWNhbGx5LCB0aGUgYGJuZ2VgIGRyaXZlciwgYW5kIGl0J3MgaW50ZXJhY3Rpbmcgd2l0aCBhIEJyb2FkY29tIGRldmljZSAoMHgxNGU0IHZlbmRvciBJRCwgMHgxNzgwIGRldmljZSBJRCkuIEluc3RhbnRseSwgSSByZWNvZ25pemUgdGhhdCB0aGlzIGlzIGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyOyBpdCdzIGRlc2lnbmVkIHRvIGludGVyZmFjZSB3aXRoIGEgcGh5c2ljYWwgbmV0d29yayBpbnRlcmZhY2UgY2FyZCAoTklDKS4gVGhlIHRlbGwtdGFsZSBzaWduIGlzIHRoZSBQQ0llIGlkZW50aWZpY2F0aW9uLlxuXG5HaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSB0YXJnZXQsIGFuZCBrbm93aW5nIG15IGVudmlyb25tZW50LCB0aGUgc21hcnQgbW92ZSBoZXJlIGlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIGBibmdlYCBkcml2ZXIgaXMgZm9yIEJyb2FkY29tJ3MgVGhvclVsdHJhIEV0aGVybmV0IGNvbnRyb2xsZXJzLiBJIGtub3cgdGhpcyBzcGVjaWZpYyBoYXJkd2FyZSBpc27igJl0IGdvaW5nIHRvIGJlIGVtdWxhdGVkIHJlbGlhYmx5IGluIHR5cGljYWwgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBCZWNhdXNlIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBpc24ndCBlbXVsYXRlZCwgYW55IGNvZGUgcGF0aHMgbW9kaWZpZWQgYnkgdGhpcyBwYXRjaCBhcmUgbm90IHJlYWNoYWJsZSBvciB0ZXN0YWJsZSBieSBhbnkgZnV6emVyIEknZCBkZXBsb3kuIFRoZXJlZm9yZSwgZnVydGhlciBhbmFseXNpcyB3aXRoIHRoaXMgc3BlY2lmaWMgYXBwcm9hY2ggaXMgYSB3YXN0ZSBvZiByZXNvdXJjZXMuIEnigJlsbCBtYWtlIGEgbm90ZSBvZiB0aGUgdmVuZG9yIGFuZCBkZXZpY2UgZm9yIGZ1dHVyZSByZWZlcmVuY2UsIGJ1dCB0aGlzIG9uZSBpcyBhIGRlYWQgZW5kIGZvciBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MzcyLCJPdXRwdXRUb2tlbnMiOjkyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjM2OjI0LjI5MTM2NDE1WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIxMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBibmdlYCAoQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0KSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgbmV0d29yayBkZXZpY2UgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIG9yIHRlc3RlZCBieSB0aGUgZnV6emVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBibmdlYCAoQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0KSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgbmV0d29yayBkZXZpY2UgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIG9yIHRlc3RlZCBieSB0aGUgZnV6emVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDk6MzY6MjQuMjkxMzg5NzJaIiwiU2VxIjoxNywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowt7m6w[1] Phase: Running StartedAt: 2026-08-24 09:36:35 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7m6w[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-24 09:36:35 +0000 UTC FinishedAt: 2026-08-24 09:36:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}