CkZlYiAyNSwgMjAwOTogbGliYXJjaGl2ZSAyLjYuMiByZWxlYXNlZAoKSmFuIDE4LCAyMDA5OiBsaWJhcmNoaXZlIDIuNi4xIHJlbGVhc2VkCgpEZWMgMjgsIDIwMDg6IGxpYmFyY2hpdmUgMi42LjAgcmVsZWFzZWQKCkRlYyAyNSwgMjAwODogbGliYXJjaGl2ZSAyLjUuOTA1YSByZWxlYXNlZAoKRGVjIDEwLCAyMDA4OiBsaWJhcmNoaXZlIDIuNS45MDRhIHJlbGVhc2VkCgpEZWMgMDQsIDIwMDg6IGxpYmFyY2hpdmUgMi41LjkwM2EgcmVsZWFzZWQKTm92IDA5LCAyMDA4OiBsaWJhcmNoaXZlIDIuNS45MDJhIHJlbGVhc2VkCk5vdiAwOCwgMjAwODogbGliYXJjaGl2ZSAyLjUuOTAxYSByZWxlYXNlZApOb3YgMDgsIDIwMDg6IFN0YXJ0IG9mIHByZS1yZWxlYXNlIHRlc3RpbmcgZm9yIGxpYmFyY2hpdmUgMi42CgpOb3YgMDcsIDIwMDg6IFJlYWQgZmlsdGVyIHJlZmFjdG9yOiBUaGUgZGVjb21wcmVzc2lvbiByb3V0aW5lcyBqdXN0Cgljb25zdW1lIGFuZCBwcm9kdWNlIGFyYml0cmFyaWx5LXNpemVkIGJsb2Nrcy4gIFRoZSByZWJsb2NraW5nCglmcm9tIHJlYWRfc3VwcG9ydF9jb21wcmVzc2lvbl9ub25lKCkgaGFzIGJlZW4gcHVsbGVkIGludG8gdGhlCglyZWFkIGNvcmUuICBBbHNvLCB0aGUgZGVjb21wcmVzc2lvbiBiaWQgbm93IG1ha2VzIG11bHRpcGxlCglwYXNzZXMgYW5kIHN0YWNrcyByZWFkIGZpbHRlcnMuCk9jdCAyMSwgMjAwODogYnNkY3BpbzogTmV3IGNvbW1hbmQtbGluZSBwYXJzZXIuCk9jdCAxOSwgMjAwODogSW50ZXJuYWwgcmVhZF9haGVhZCBjaGFuZ2U6IHNob3J0IHJlYWRzIGFyZSBub3cgYW4gZXJyb3IKT2N0IDA2LCAyMDA4OiBic2R0YXI6IG9wdGlvbiBwYXJzZXIgbm8gbG9uZ2VyIHVzZXMgZ2V0b3B0X2xvbmcoKSwKCWdpdmVzIGNvbnNpc3RlbnQgb3B0aW9uIHBhcnNpbmcgb24gYWxsIHBsYXRmb3Jtcy4KU2VwIDE5LCAyMDA4OiBKYWFra28gSGVpbm9uZW46IHNoYXIgdXRpbGl0eSBidWlsdCBvbiBsaWJhcmNoaXZlClNlcCAxNywgMjAwODogUGVkcm8gR2lmZnVuaTogYmlydGh0aW1lIHN1cHBvcnQKU2VwIDE3LCAyMDA4OiBNaWtsb3MgVmFqbmE6IGx6bWEgcmVhZGVyIGFuZCB0ZXN0LiAgTm90ZTogIEkgc3RpbGwgaGF2ZQoJc29tZSBjb25jZXJucyBhYm91dCB0aGUgYXV0by1kZXRlY3Rpb24gKExaTUEgZmlsZSBmb3JtYXQKCWRvZXNuJ3Qgc3VwcG9ydCBhdXRvLWRldGVjdGlvbiB3ZWxsKSwgc28gdGhpcyBpcyBub3QgeWV0CgllbmFibGVkIHVuZGVyIGFyY2hpdmVfcmVhZF9zdXBwb3J0X2NvbXByZXNzaW9uX2FsbCgpLiAgRm9yCglub3csIHlvdSBtdXN0IGNhbGwgYXJjaGl2ZV9yZWFkX3N1cHBvcnRfY29tcHJlc3Npb25fbHptYSgpIGlmCgl5b3Ugd2FudCBMWk1BIHJlYWQgc3VwcG9ydC4KU2VwIDExLCAyMDA4OiBJdmFpbG8gUGV0cm92OiBNYW55IGZpeGVzIHRvIFdpbmRvd3MgYnVpbGQsIG5ldyBzb2x1dGlvbiBmaWxlcwpKdWwgMjYsIDIwMDg6IGFyY2hpdmVfZW50cnkgbm93IHRyYWNrcyB3aGljaCB2YWx1ZXMgaGF2ZSBub3QgYmVlbiBzZXQuCglUaGlzIGhlbHBzIHppcCBleHRyYWN0aW9uIChmaWxlIHNpemUgaXMgb2Z0ZW4gInVua25vd24iKSBhbmQKCXRpbWUgcmVzdG9yZXMgKHRhciB1c3VhbGx5IGRvZXNuJ3Qga25vdyBhdGltZSkuCkp1bCAyNiwgMjAwODogSm9lcmcgU29ubmVuYmVyZ2VyOiBQZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgdG8gc2hhciB3cml0ZXIKSnVsIDI1LCAyMDA4OiBKb2VyZyBTb25uZW5iZXJnZXI6IG10cmVlIHdyaXRlIHN1cHBvcnQKCkp1bCAwMiwgMjAwODogbGliYXJjaGl2ZSAyLjUuNSByZWxlYXNlZAoKSnVsIDAyLCAyMDA4OiBsaWJhcmNoaXZlIDIuNS41YiByZWxlYXNlZApKdWwgMDEsIDIwMDg6IGJzZGNwaW8gaXMgYmVpbmcgdXNlZCBieSBlbm91Z2ggcGVvcGxlLCB3ZSBjYW4gY2FsbCBpdCAxLjAuMCBub3cKSnVuIDIwLCAyMDA4OiBic2RjcGlvOiBJZiBhIC1sIGxpbmsgZmFpbHMgd2l0aCBFWERFViwgY29weSB0aGUgZmlsZSBpbnN0ZWFkCkp1biAxOSwgMjAwODogYnNkY3BpbzogYWRkaXRpb25hbCBsb25nIG9wdGlvbnMgZm9yIGJldHRlciBHTlUgY3BpbyBjb21wYXQKSnVuIDE1LCAyMDA4OiBNYW55IHNtYWxsIHBvcnRhYmlsaXR5IGFuZCBidWdmaXhlcyBzaW5jZSAyLjUuNGIuCgpNYXkgMjUsIDIwMDg6IGxpYmFyY2hpdmUgMi41LjRiIHJlbGVhc2VkCk1heSAyMSwgMjAwODogSm9lcmcgU29ubmVuYmVyZ2VyOiBmaXggYnNkdGFyIGhhcmRsaW5rIGhhbmRsaW5nIGZvciBuZXdjIGZvcm1hdAoKTWF5IDIxLCAyMDA4OiBNb3JlIHByb2dyZXNzIG9uIFdpbmRvd3MgYnVpbGRpbmcuICBUaGFua3MgdG8gIlNjb3R0IgogICAgICAgIGZvciB0aGUgV2luZG93cyBtYWtlZmlsZXMsIHRoYW5rcyB0byBLZWVzIFplZWxlbmJlcmcgZm9yCiAgICAgICAgY29kZSBjb250cmlidXRpb25zLgoKTWF5IDIxLCAyMDA4OiBGaXggYSBudW1iZXIgb2Ygbm9uLWV4cGxvaXRhYmxlIGludGVnZXIgYW5kIGJ1ZmZlciBvdmVyZmxvd3MsCiAgICAgICAgdGhhbmtzIHRvIERhdmlkIFJlbWFobCBhdCBBcHBsZSBmb3IgcG9pbnRpbmcgdGhlc2Ugb3V0LgoKTWF5IDIxLCAyMDA4OiBDb2xpbiBQZXJjaXZhbDogU0lHSU5GTyBvciBTSUdVU1IxIHRvIGJzZHRhciBwcmludHMgcHJvZ3Jlc3MgaW5mbwoKTWF5IDE2LCAyMDA4OiBic2R0YXIncyB0ZXN0IGhhcm5lc3Mgbm8gbG9uZ2VyIGRlcGVuZHMgb24gZmlsZSBvcmRlcmluZy4KICAgICAgICBUaGlzIHdhcyBjYXVzaW5nIHNwdXJpb3VzIHRlc3QgZmFpbHVyZXMgb24gYSBsb3Qgb2Ygc3lzdGVtcy4KICAgICAgICBUaGFua3MgdG8gQmVybmhhcmQgUi4gTGluayBmb3IgdGhlIGRpYWdub3Npcy4KCk1heSAxNCwgMjAwODogSm9lcmcgU29ubmVuYmVyZ2VyOiAtcyBzdWJzdGl0dXRpb24gc3VwcG9ydCBmb3IgYnNkdGFyCgpNYXkgMTMsIDIwMDg6IEpvZXJnIFNvbm5lbmJlcmdlcjogTWFueSBtdHJlZSBpbXByb3ZlbWVudHMKCk1heSAxMSwgMjAwODogSm9lcmcgU29ubmVuYmVyZ2VyOiBmaXggaGFyZGxpbmsgZXh0cmFjdGlvbiB3aGVuCgloYXJkbGlua3MgaGF2ZSBkaWZmZXJlbnQgcGVybWlzc2lvbnMgZnJvbSBvcmlnaW5hbCBmaWxlCgpBcHJpbCAzMCwgMjAwODogUHJpbWFyeSBsaWJhcmNoaXZlIHdvcmsgaGFzIGJlZW4gbW92ZWQgaW50byB0aGUgRnJlZUJTRAoJcHJvamVjdCdzIFBlcmZvcmNlIHJlcG9zaXRvcnk6IAlodHRwOi8vcGVyZm9yY2UuZnJlZWJzZC5vcmcvCglUaGUgbGliYXJjaGl2ZSBwcm9qZWN0IGNhbiBiZSBicm93c2VkIGF0CiAgICAgICAgLy9kZXBvdC91c2VyL2tpZW50emxlL2xpYmFyY2hpdmUtcG9ydGFibGUKICAgICAgICBEaXJlY3QgbGluazogaHR0cDovL3ByZXZpZXcudGlueXVybC5jb20vNDZtZGdyCgpNYXkgMDQsIDIwMDg6IGxpYmFyY2hpdmUgMi41LjNiIHJlbGVhc2VkCgkqIGxpYmFyY2hpdmU6IFNldmVyYWwgZml4ZXMgdG8gbGluayByZXNvbHZlciB0byBhZGRyZXNzIGJzZGNwaW8gY3Jhc2hlcwoJKiBic2RjcGlvOiAtcCBoYXJkbGluayBoYW5kbGluZyBmaXhlcwoJKiB0YXIvcGF4OiBFbnN1cmUgdXN0YXIgZGlybmFtZXMgZW5kIGluICcvJzsgYmUgbW9yZSBjYXJlZnVsIGFib3V0CgkgIG1lYXN1cmluZyBmaWxlbmFtZXMgd2hlbiBkZWNpZGluZyB3aGF0IHBhdGhuYW1lIGZpZWxkcyB0byB1c2UKCSogbGliYXJjaGl2ZTogTWFyayB3aGljaCBlbnRyeSBzdHJpbmdzIGFyZSBzZXQ7IGJlIGFjY3VyYXRlIGFib3V0CgkgIGRpc3Rpbmd1aXNoaW5nIGVtcHR5IHN0cmluZ3MgKCIiKSBmcm9tIHVuc2V0IG9uZXMgKE5VTEwpCgkqIHRhcjogRG9uJ3QgY3Jhc2ggcmVhZGluZyBlbnRyaWVzIHdpdGggZW1wdHkgZmlsZW5hbWVzCgkqIGxpYmFyY2hpdmVfdGVzdCwgYnNkdGFyX3Rlc3QsIGJzZGNwaW9fdGVzdDogIEJldHRlciBkZXRhdWx0czoKCSAgcnVuIGFsbCB0ZXN0cywgZGVsZXRlIHRlbXAgZGlycywgc3VtbWFyaXplIHJlcGVhdGVkIGZhaWx1cmVzCgkqIC1uby11bmRlZmluZWQgdG8gbGlidG9vbCBmb3IgQ3lnd2luCgkqIGxpYmFyY2hpdmVfdGVzdDogU2tpcCBsYXJnZSBmaWxlIHRlc3RzIG9uIHN5c3RlbXMgd2l0aCAzMi1iaXQgb2ZmX3QKCSogaXNvOTY2MDogRG9uJ3QgYm90aGVyIHRyeWluZyB0byBmaW5kIHRoZSBib2R5IG9mIGFuIGVtcHR5IGZpbGU7CgkgIHRoaXMgd29ya3MgYXJvdW5kIHN0cmFuZ2UgYmVoYXZpb3IgZnJvbSBzb21lIElTTzk2NjAgd3JpdGVycwoJKiB0YXI6IGFsbG93IC1yIC1UIHRvIGJlIHVzZWQgdG9nZXRoZXIKCSogdGFyOiBhbGxvdyAtLWZvcm1hdCB3aXRoIC1yIG9yIC11CgkqIGxpYmFyY2hpdmU6IERvbid0IGJ1aWxkIGFyY2hpdmUuaAoKTWF5IDA0LCAyMDA4OiBTaW1wbGlmaWVkIGJ1aWxkaW5nOiBhcmNoaXZlLmggaXMgbm8gbG9uZ2VyIGNvbnN0cnVjdGVkCglUaGlzIG1heSByZXF1aXJlIGFkZGl0aW9uYWwgI2lmIGNvbmRpdGlvbmFscyBvbiBzb21lIHBsYXRmb3Jtcy4KCk1hciAzMCwgMjAwODogbGliYXJjaGl2ZSAyLjUuMWIgcmVsZWFzZWQKCk1hciAxNSwgMjAwODogbGliYXJjaGl2ZSAyLjUuMGIgcmVsZWFzZWQKTWFyIDE1LCAyMDA4OiBic2RjcGlvIG5vdyBzZWVtcyB0byBjb3JyZWN0bHkgd3JpdGUgaGFyZGxpbmtzIGludG8gbmV3YywKCXVzdGFyLCBhbmQgb2xkIGNwaW8gYXJjaGl2ZXMuICBKdXN0IGEgbGl0dGxlIG1vcmUgdGVzdGluZyBiZWZvcmUKCWJzZGNwaW8gMS4wIGJlY29tZXMgYSByZWFsaXR5LgpNYXIgMTUsIDIwMDg6IEkgdGhpbmsgdGhlIG5ldyBsaW5raWZ5KCkgaW50ZXJmYWNlIGlzIGZpbmFsbHkgaGFuZGxpbmcKCWFsbCBrbm93biBoYXJkbGluayBzdHJhdGVnaWVzLgpNYXIgMTUsIDIwMDg6IE10cmVlIHJlYWQgZml4ZXMgZnJvbSBKb2VyZyBTb25uZW5iZXJnZXIuCk1hciAxNSwgMjAwODogTWFueSBuZXcgYnNkdGFyIGFuZCBic2RjcGlvIG9wdGlvbnMgZnJvbSBKb2VyZyBTb25uZW5iZXJnZXIuCk1hciAxNSwgMjAwODogdGVzdCBoYXJuZXNzZXMgbm8gbG9uZ2VyIHJlcXVpcmUgdXVkZWNvZGU7IHRoZXkKCW5vdyBoYXZlIGJ1aWx0LWluIGRlY29kaW5nIGxvZ2ljIHRoYXQgZGVjb2RlcyB0aGUgcmVmZXJlbmNlCglmaWxlcyBhcyB0aGV5IGFyZSBuZWVkZWQuCgpNYXIgMTQsIDIwMDg6IGxpYmFyY2hpdmUgMi40LjE0IHJlbGVhc2VkOyBpZGVudGljYWwgdG8gMi40LjEzIGV4Y2VwdCBmb3IKCWEgcG9pbnQgZml4IGZvciBnbmFtZS91bmFtZSBtaXh1cCBpbiBwYXggZm9ybWF0IHRoYXQgd2FzIGludHJvZHVjZWQKCXdpdGggdGhlIFVURi04IGZpeGVzLgoKRmViIDI2LCAyMDA4OiBsaWJhcmNoaXZlIDIuNC4xMyByZWxlYXNlZApGZWIgMjUsIDIwMDg6IEhhbmRsZSBwYXRoLCBsaW5rbmFtZSwgZ25hbWUsIG9yIHVuYW1lIHRoYXQgY2FuJ3QgYmUgY29udmVydGVkCgl0by9mcm9tIFVURi04LiAgSW1wbGVtZW50ICJoZHJjaGFyc2V0IiBhdHRyaWJ1dGUgZnJvbSBTVVMtMjAwOC4KRmViIDI1LCAyMDA4OiBGaXggbmFtZSBjbGFzaCBvbiBOZXRCU0QuCkZlYiAxOCwgMjAwODogRml4IHdyaXRpbmcgZW1wdHkgJ2FyJyBhcmNoaXZlcywgcGVyIEthaSBXYW5nCkZlYiAxOCwgMjAwODogW2JzZHRhcl0gUGVybWl0IGFwcGVuZGluZyBvbiBibG9jayBkZXZpY2VzLgpGZWIgMDksIDIwMDg6IE5ldyAibGlua2lmeSIgcmVzb2x2ZXIgdG8gaGVscCB3aXRoIG5ld2MgaGFyZGxpbmsgd3JpdGluZzsKCWJzZGNwaW8gc3RpbGwgbmVlZHMgdG8gYmUgY29udmVydGVkIHRvIHVzZSB0aGlzLgpGZWIgMDIsIDIwMDg6IFdpbmRvd3MgY29tcGF0aWJpbGl0eSBmaXhlcyBmcm9tIEl2YWlsbyBQZXRyb3YsIEtlZXMgWmVlbGVuYmVyZwpKYW4gMzAsIDIwMDg6IElnbm9yZSBoYXJkbGluayBzaXplIGZvciBub24tUE9TSVggdGFyIGFyY2hpdmVzLgoKSmFuIDIyLCAyMDA4OiBsaWJhcmNoaXZlIDIuNC4xMiByZWxlYXNlZApKYW4gMjIsIDIwMDg6IEZpeCBiYWQgcGFkZGluZyB3aGVuIHdyaXRpbmcgc3ltbGlua3MgdG8gbmV3YyBjcGlvIGFyY2hpdmVzLgpKYW4gMjIsIDIwMDg6IFZlcmlmeSBic2RjcGlvX3Rlc3QgYnkgZ2V0dGluZyBpdCB0byB3b3JrIGFnYWluc3QgR05VIGNwaW8gMi45LgoJYnNkY3Bpb190ZXN0IGNvbXBsYWlucyBhYm91dCBtaXNzaW5nIG9wdGlvbnMgKC15IGFuZCAteiksIGZvcm1hdAoJb2YgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyAoLS12ZXJzaW9uLCAtLWhlbHApLCBhbmQgYSBtaW5vciBmb3JtYXR0aW5nCglpc3N1ZSBpbiBvZGMgZm9ybWF0IG91dHB1dC4gIEFmdGVyIHRoaXMgdXBkYXRlLCBic2RjcGlvX3Rlc3QgdW5jb3ZlcmVkCglzZXZlcmFsIG1vcmUgY29zbWV0aWMgaXNzdWVzIGluIGJzZGNwaW8sIGFsbCBub3cgZml4ZWQuCkphbiAyMiwgMjAwODogRXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIHNlbGYtZXh0cmFjdGluZyBaaXAgYXJjaGl2ZXMuCkphbiAyMiwgMjAwODogRXh0ZW5kIGhhcmRsaW5rIHJlc3RvcmUgc3RyYXRlZ3kgdG8gd29yayBjb3JyZWN0bHkgd2l0aAoJaGFyZGxpbmtzIGV4dHJhY3RlZCBmcm9tIG5ld2MgY3BpbyBmaWxlcy4gIChXaGljaCBzdG9yZSB0aGUgYm9keQoJb25seSB3aXRoIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgYSBsaW5rLikKCkRlYyAzMCwgMjAwNzogbGliYXJjaGl2ZSAyLjQuMTEgcmVsZWFzZWQKRGVjIDMwLCAyMDA3OiBGaXhlZCBhIGNvbXBpbGUgZXJyb3IgaW4gYnNkY3BpbyBvbiBzb21lIHN5c3RlbXMuCgpEZWMgMjksIDIwMDc6IGxpYmFyY2hpdmUgMi40LjEwIHJlbGVhc2VkCkRlYyAyOSwgMjAwNzogYnNkY3BpbyAwLjkuMCBpcyByZWFkeSBmb3Igd2lkZXIgdXNlLgpEZWMgMjksIDIwMDc6IENvbXBsZXRlZCBpbml0aWFsIHRlc3QgaGFybmVzcyBmb3IgYnNkY3Bpby4KCkRlYyAyMiwgMjAwNzogbGliYXJjaGl2ZSAyLjQuOSByZWxlYXNlZApEZWMgMjIsIDIwMDc6IEltcGxlbWVudCB0aGUgcmVtYWluaW5nIG9wdGlvbnMgZm9yIGJzZGNwaW86ICAtYSwgLXEsIC1MLCAtZiwKCXBhdHRlcm4gc2VsZWN0aW9uIGZvciAtaSBhbmQgLWl0LgoKRGVjIDEzLCAyMDA3OiBsaWJhcmNoaXZlIDIuNC44IHJlbGVhc2VkCkRlYyAxMywgMjAwNzogZ3ppcCBhbmQgYnppcDIgY29tcHJlc3Npb24gbm93IGhhbmRsZSB6ZXJvLWJ5dGUgd3JpdGVzIGNvcnJlY3RseSwKCVRoYW5rcyB0byBEYW1pZW4gR29sZGluZyBmb3IgYnJpbmdpbmcgdGhpcyB0byBteSBhdHRlbnRpb24uCgpEZWMgMTIsIDIwMDc6IGxpYmFyY2hpdmUgMi40LjcgcmVsZWFzZWQKCkRlYyAxMCwgMjAwNzogbGliYXJjaGl2ZSAyLjQuNiByZWxlYXNlZApEZWMgMDksIDIwMDc6IHRhci90ZXN0L3Rlc3RfY29weS5jIHZlcmlmaWVzICJ0YXIgLWMgfCB0YXIgLXgiIGNvcHkgcGlwZWxpbmUKRGVjIDA3LCAyMDA3OiBGaXggYSBjb3VwbGUgb2YgbWlub3IgbWVtb3J5IGxlYWtzLgoKRGVjIDA0LCAyMDA3OiBsaWJhcmNoaXZlIDIuNC41IHJlbGVhc2VkCkRlYyAwNCwgMjAwNzogRml4IGNwaW8vdGVzdC90ZXN0X3dyaXRlX29kYyBieSBzZXR0aW5nIHRoZSB1bWFzayBmaXJzdC4KCkRlYyAwMywgMjAwNzogbGliYXJjaGl2ZSAyLjQuNCByZWxlYXNlZApEZWMgMDMsIDIwMDc6IE5ldyBjb25maWd1cmUgb3B0aW9ucyAtLWRpc2FibGUteGF0dHIgYW5kIC0tZGlzYWJsZS1hY2wsCgl0aGFua3MgdG8gU2FtdWxpIFN1b21pbmVuLgoKRGVjIDAzLCAyMDA3OiBsaWJhcmNoaXZlIDIuNC4zIHJlbGVhc2VkCkRlYyAwMywgMjAwNzogVGhhbmtzIHRvIExhcG8gTHVjaGluaSBmb3Igc2VuZGluZyBtZSBhIFpJUCBmaWxlIHRoYXQKCWxpYmFyY2hpdmUgY291bGRuJ3QgaGFuZGxlLiAgRml4ZWQgYSBidWcgaW4gaGFuZGxpbmcgb2YKCSJsZW5ndGggYXQgZW5kIiBmbGFncyBpbiBaSVAgZmlsZXMuCkRlYyAwMywgMjAwNzogRml4ZWQgYnNkY3BpbyAtaGVscCwgYnNkdGFyIC1oZWxwIHRlc3RzLgpEZWMgMDIsIDIwMDc6IEZpcnN0IGN1dCBhdCByZWFsIGJzZHRhciB0ZXN0IGhhcm5lc3MuCgpEZWMgMDIsIDIwMDc6IGxpYmFyY2hpdmUgMi40LjIgcmVsZWFzZWQKCkRlYyAwMiwgMjAwNzogbGliYXJjaGl2ZSAyLjQuMSByZWxlYXNlZApEZWMgMDIsIDIwMDc6IE1pbm9yIGZpeGVzLCByb3VnaCBjdXQgb2YgbWRvYy10by1tYW4gY29udmVyc2lvbiBmb3IKCW1hbiBwYWdlcy4KCk9jdCAzMCwgMjAwNzogbGliYXJjaGl2ZSAyLjQuMCByZWxlYXNlZApPY3QgMzAsIDIwMDc6IE1pbm9yIGNvbXBpbGUgZml4IHRoYW5rcyB0byBKb2VyZyBTY2hpbGxpbmcuCk9jdCAzMCwgMjAwNzogT25seSBydW4gdGhlIGZvcm1hdCBhdWN0aW9uIG9uY2UgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUKCWFyY2hpdmUuICBUaGlzIGlzIHNpbXBsZXIgYW5kIHN1cHBvcnRzIGJldHRlciBlcnJvciByZWNvdmVyeS4KT2N0IDI5LCAyMDA3OiBUZXN0IHN1cHBvcnQgZm9yIHZlcnkgbGFyZ2UgZW50cmllcyBpbiB0YXIgYXJjaGl2ZXM6CglsaWJhcmNoaXZlX3Rlc3Qgbm93IGV4ZXJjaXNlcyBlbnRyaWVzIGZyb20gMkdCIHVwIHRvIDFUQi4KCk9jdCAyNywgMjAwNzogbGliYXJjaGl2ZSAyLjMuNSByZWxlYXNlZApPY3QgMjcsIDIwMDc6IENvcnJlY3Qgc29tZSB1bm5lY2Vzc2FyeSBpbnRlcm5hbCBkYXRhIGNvcHlpbmcgaW4gdGhlCgkiY29tcHJlc3Npb24gbm9uZSIgcmVhZGVyIGFuZCB3cml0ZXI7IHRoaXMgcmVkdWNlcyB1c2VyIHRpbWUKCWJ5IHVwIHRvIDIvMyBpbiBzb21lIHRlc3RzLiAgKFRoYW5rcyB0byBKYW4gUHNvdGEgZm9yCglwdWJsaXNoaW5nIGhpcyBwZXJmb3JtYW5jZSB0ZXN0IHJlc3VsdHMgdG8gR05VIHRhcidzIGJ1Zy10YXIKCW1haWxpbmcgbGlzdDsgdGhvc2UgcmVzdWx0cyBwb2ludGVkIG1lIHRvd2FyZHMgdGhpcyBwcm9ibGVtLikKT2N0IDI3LCAyMDA3OiBGaXggZm9yIHNraXBwaW5nIGFyY2hpdmUgZW50cmllcyB0aGF0IGFyZSBleGFjdGx5CglhIG11bHRpcGxlIG9mIDRHIG9uIDMyLWJpdCBwbGF0Zm9ybXMuCk9jdCAyNSwgMjAwNzogRml4IGZvciByZWFkaW5nIHZlcnkgbGFyZ2UgKD44RykgdGFyIGFyY2hpdmVzOyB0aGlzIHdhcwoJYnJva2VuIHdoZW4gSSBwdXQgaW4gc3VwcG9ydCBmb3IgbmV3IEdOVSB0YXIgc3BhcnNlIGZvcm1hdHMuCk9jdCAyMCwgMjAwNzogSW5pdGlhbCB3b3JrIG9uIG5ldyBwYXR0ZXJuLW1hdGNoaW5nIGNvZGUgZm9yIGNwaW87IEkKCWhvcGUgdGhpcyBldmVudHVhbGx5IHJlcGxhY2VzIHRoZSBjb2RlIGN1cnJlbnRseSBpbiBic2R0YXIuCgpPY3QgMDgsIDIwMDc6IGxpYmFyY2hpdmUgMi4zLjQgcmVsZWFzZWQKT2N0IDA1LCAyMDA3OiBDb250aW51aW5nIHdvcmsgb24gYnNkY3BpbyB0ZXN0IHN1aXRlLgpPY3QgMDUsIDIwMDc6IE5ldyBjcGlvLjUgbWFucGFnZSwgdXBkYXRlcyB0byAiSGlzdG9yeSIgb2YgYnNkY3Bpby4xIGFuZAoJYnNkdGFyLjEgbWFucGFnZXMuCk9jdCAwNSwgMjAwNzogRml4IHppcCByZWFkZXIgdG8gaW1tZWRpYXRlbHkgcmV0dXJuIEVPRiBpZiB5b3UgdHJ5Cgl0byByZWFkIGJvZHkgb2Ygbm9uLXJlZ3VsYXIgZmlsZS4gIEluIHBhcnRpY3VsYXIsIHRoaXMgZml4ZXMKCWJzZHRhciBleHRyYWN0aW9uIG9mIHppcCBhcmNoaXZlcy4KClNlcCAzMCwgMjAwNzogbGliYXJjaGl2ZSAyLjMuMyByZWxlYXNlZApTZXAgMjYsIDIwMDc6IFJld29yayBNYWtlZmlsZS5hbSBzbyB0aGF0IHRoZSBlbmFibGUvZGlzYWJsZSBvcHRpb25zCglhY3R1YWxseSBkbyB0aGUgcmlnaHQgdGhpbmdzLgpTZXAgMjYsIDIwMDc6IGNwaW8tb2RjIGFuZCBjcGlvLW5ld2MgYXJjaGl2ZXMgbm8gbG9uZ2VyIHdyaXRlIGJvZGllcwoJZm9yIG5vbi1yZWd1bGFyIGZpbGVzLgpTZXAgMjYsIDIwMDc6IFRlc3QgaGFybmVzcyBmb3IgYnNkY3BpbyBpcyBpbiBwbGFjZSwgbmVlZHMgbW9yZSB0ZXN0cyB3cml0dGVuLgoJVGhpcyBpcyBtdWNoIG5pY2VyIHRoYW4gdGhlIHJhZ3RhZyBjb2xsZWN0aW9uIG9mIHRlc3Qgc2NyaXB0cwoJdGhhdCBic2R0YXIgaGFzLgoKU2VwIDIwLCAyMDA3OiBsaWJhcmNoaXZlIDIuMy4yIHJlbGVhc2VkClNlcCAyMCwgMjAwNzogbGliYXJjaGl2ZSAyLjMuMSBicm9rZSBic2R0YXIgYmVjYXVzZSB0aGUgYXJjaGl2ZV93cml0ZV9kYXRhKCkKCWZpeCB3YXMgaW1wbGVtZW50ZWQgaW5jb3JyZWN0bHkuCgpTZXAgMTYsIDIwMDc6IGxpYmFyY2hpdmUgMi4zLjEgcmVsZWFzZWQKU2VwIDE2LCAyMDA3OiBNYW55IGZpeGVzIHRvIGJzZGNwaW8gMC4zOiAgaGFuZGxlIGhhcmRsaW5rcyB3aXRoIC1wLCByZWNvZ25pemUKCWJsb2NrIHNpemUgb24gd3JpdGluZywgZml4IGEgY291cGxlIG9mIHNlZ2ZhdWx0cy4KU2VwIDE2LCAyMDA3OiBGaXhlZCByZXR1cm4gdmFsdWUgZnJvbSBhcmNoaXZlX3dyaXRlX2RhdGEoKSB3aGVuIHVzZWQKCXdpdGggYXJjaGl2ZV93cml0ZV9kaXNrKCkgdG8gbWF0Y2ggdGhlIGRvY3VtZW50YXRpb24gYW5kIG90aGVyCglpbnN0YW5jZXMgb2YgdGhpcyBzYW1lIGZ1bmN0aW9uLgpTZXAgMTUsIDIwMDc6IEFkZCBhcmNoaXZlX2VudHJ5X2xpbmtfcmVzb2x2ZXIsIGFyY2hpdmVfZW50cnlfc3RybW9kZQoKU2VwIDExLCAyMDA3OiBsaWJhcmNoaXZlIDIuMi44IHJlbGVhc2VkClNlcCAwOSwgMjAwNzogYnNkY3BpbyAwLjIgc3VwcG9ydHMgbW9zdCAobm90IHlldCBhbGwpIG9mIHRoZSBvbGQgUE9TSVggc3BlYy4KClNlcCAwMSwgMjAwNzogbGliYXJjaGl2ZSAyLjIuNyByZWxlYXNlZApBdWcgMzEsIDIwMDc6IFN1cHBvcnQgZm9yIHJlYWRpbmcgbXRyZWUgZmlsZXMsIGluY2x1ZGluZyBhbiBtdHJlZS41IG1hbnBhZ2UKCShBIGxpdHRsZSBleHBlcmltZW50YWwgc3RpbGwuKQpBdWcgMTgsIDIwMDc6IFJlYWQgZ3RhciAxLjE3IC0tcG9zaXggLS1zcGFyc2UgZW50cmllcy4KQXVnIDEzLCAyMDA3OiBSZWZpbmVkIHN1aWQvc2dpZCByZXN0b3JlIGhhbmRsaW5nOyBpdCBpcyBubyBsb25nZXIKCWFuIGVycm9yIGlmIHN1aWQvc2dpZCBiaXRzIGFyZSBkcm9wcGVkIHdoZW4geW91IHJlcXVlc3QKCXBlcm0gcmVzdG9yZSBidXQgZG9uJ3QgcmVxdWVzdCBvd25lciByZXN0b3JlLgpBdWcgMDYsIDIwMDc6IFVzZSAtLWVuYWJsZS1ic2RjcGlvIGlmIHlvdSB3YW50IHRvIHRyeSBic2RjcGlvCgpBdWcgMDUsIDIwMDc6IGxpYmFyY2hpdmUgMi4yLjYgcmVsZWFzZWQKQXVnIDA1LCAyMDA3OiBOZXcgY29uZmlndXJlIG9wdGlvbiAtLWRpc2FibGUtYnNkdGFyLCB0aGFua3MgdG8gSm9lcmcKCVNvbm5lbmJlcmdlci4KQXVnIDA1LCAyMDA3OiBTZXZlcmFsIGJ1ZyBmaXhlcyBmcm9tIEZyZWVCU0QgQ1ZTIHJlcG8uCgpKdWwgMTMsIDIwMDc6IGxpYmFyY2hpdmUgMi4yLjUgcmVsZWFzZWQKCkp1bCAxMiwgMjAwNzogbGliYXJjaGl2ZSAyLjIuNCByZWxlYXNlZApKdWwgMTIsIDIwMDc6IFRoYW5rcyB0byBDb2xpbiBQZXJjaXZhbCdzIGhlbHAgaW4gZGlhZ25vc2luZyBhbmQKCWZpeGluZyBzZXZlcmFsIGNyaXRpY2FsIHNlY3VyaXR5IGJ1Z3MuICBEZXRhaWxzIGF2YWlsYWJsZSBhdAoJaHR0cDovL3NlY3VyaXR5LmZyZWVic2Qub3JnL2Fkdmlzb3JpZXMvRnJlZUJTRC1TQS0wNzowNS5saWJhcmNoaXZlLmFzYwoKTWF5IDI2LCAyMDA3OiBsaWJhcmNoaXZlIDIuMi4zIHJlbGVhc2VkCk1heSAyNiwgMjAwNzogRml4IG1lbW9yeSBsZWFrcyBpbiBaSVAgcmVhZGVyIGFuZCBzaGFyIHdyaXRlciwgYWRkIHNvbWUKCW1pc3Npbmcgc3lzdGVtIGhlYWRlcnMgdG8gYXJjaGl2ZV9lbnRyeS5oLCBkZWFkIGNvZGUgY2xlYW51cAoJZnJvbSBDb2xpbiBQZXJjaXZhbCwgbW9yZSB0ZXN0cyBmb3IgZ3ppcC9iemlwMiwgZml4IGFuCglFT0YgYW5vbWFseSBpbiBiemlwMiBkZWNvbXByZXNzaW9uLgoKTWF5IDEyLCAyMDA3OiBsaWJhcmNoaXZlIDIuMi4yIHJlbGVhc2VkCk1heSAxMiwgMjAwNzogRml4IGFyY2hpdmVfd3JpdGVfZGlzayBwZXJtaXNzaW9uIHJlc3RvcmUgYnkgY2xvbmluZwoJZW50cnkgcGFzc2VkIGludG8gd3JpdGVfaGVhZGVyIHNvIHRoYXQgcGVybWlzc2lvbiBpbmZvIGlzCglzdGlsbCBhdmFpbGFibGUgYXQgZmluaXNoX2VudHJ5IHRpbWUuICAoYXJjaGl2ZV9yZWFkX2V4dHJhY3QoKQoJd29ya2VkIG9rYXkgYmVjYXVzZSBpdCBoZWxkIG9udG8gdGhlIHBhc3NlZC1pbiBlbnRyeSwgYnV0CglkaXJlY3QgY29uc3VtZXJzIG9mIGFyY2hpdmVfd3JpdGVfZGlzayB3b3VsZCBicmVhaykuICBUaGlzCglyZXF1aXJlZCBmaXhpbmcgYXJjaGl2ZV9lbnRyeV9jbG9uZSgpLCB3aGljaCBub3cgd29ya3MgYW5kIGhhcwoJYSByZWFzb25hYmx5IGNvbXBsZXRlIHRlc3QgY2FzZS4KTWF5IDEwLCAyMDA3OiBTa2VsZXRhbCBjcGlvIGltcGxlbWVudGF0aW9uLgoKTWF5IDA2LCAyMDA3OiBsaWJhcmNoaXZlIDIuMi4xIHJlbGVhc2VkCk1heSAwNiwgMjAwNzogRmxlc2ggb3V0IGEgbG90IG1vcmUgb2YgdGVzdF9lbnRyeS5jIHNvIGFzIHRvIGNhdGNoCglwcm9ibGVtcyBzdWNoIGFzIHRoZSBkZXZpY2Ugbm9kZSBicmVha2FnZSBiZWZvcmUgcmVsZWFzaW5nIDxzaWdoPi4KTWF5IDA1LCAyMDA3OiBGaXggYSBiYWQgYnVnIGludHJvZHVjZWQgaW4gMi4xLjkgdGhhdCBicm9rZSBkZXZpY2UKCW5vZGUgZW50cmllcyBpbiB0YXIgYXJjaGl2ZXMuCk1heSAwMywgMjAwNzogTW92ZSAnc3RydWN0IHN0YXQnIG91dCBvZiBhcmNoaXZlX2VudHJ5IGNvcmUgYXMgd2VsbC4KCVRoaXMgcmVtb3ZlcyBzb21lIHBvcnRhYmlsaXR5IGhlYWRhY2hlcyBhbmQgZml4ZXMgYSBidW5jaAoJb2YgY29ybmVyIGNhc2VzIHRoYXQgYXJpc2Ugd2hlbiBtYW5pcHVsYXRpbmcgYXJjaGl2ZXMgb24KCWRpc3NpbWlsYXIgc3lzdGVtcy4KCkFwciAzMCwgMjAwNzogbGliYXJjaGl2ZSAyLjEuMTAgcmVsZWFzZWQKQXByIDMxLCAyMDA3OiBNaW5vciBjb2RlIGNsZWFudXAuCgpBcHIgMjQsIDIwMDc6IGxpYmFyY2hpdmUgMi4xLjkgcmVsZWFzZWQKQXByIDI0LCAyMDA3OiBGaXggc29tZSByZWNlbnRseS1pbnRyb2R1Y2VkIHByb2JsZW1zIHdpdGggbGlicmFyaWVzCgkoSnVzdCBsZXQgYXV0b21ha2UgaGFuZGxlIGl0IGFuZCBpdCBhbGwgd29ya3MgbXVjaCBiZXR0ZXIuKQoJRmluaXNoIGlzb2xhdGluZyBtYWpvcigpL21pbm9yKCkvbWFrZWRldigpIGluIGFyY2hpdmVfZW50cnkuYy4KCkFwciAyMywgMjAwNzogbGliYXJjaGl2ZSAyLjEuOCByZWxlYXNlZApBcHIgMjMsIDIwMDc6IE1pbm9yIGZpeGVzIGZvdW5kIGZyb20gYnVpbGRpbmcgb24gTWFjT1MgWAoKQXByIDIyLCAyMDA3OiBsaWJhcmNoaXZlIDIuMS43IHJlbGVhc2VkCkFwciAyMiwgMjAwNzogRWxpbWluYXRlZCBhbGwgdXNlcyBvZiAnc3RydWN0IHN0YXQnIGZyb20gdGhlCglmb3JtYXQgcmVhZGVycy93cml0ZXJzLiAgVGhpcyBzaG91bGQgaW1wcm92ZSBwb3J0YWJpbGl0eTsKCSdzdHJ1Y3Qgc3RhdCcgaXMgbm93IG9ubHkgdXNlZCBpbiBhcmNoaXZlX2VudHJ5IGFuZCBpbgoJY29kZSB0aGF0IGFjdHVhbGx5IHRvdWNoZXMgdGhlIGRpc2suCgpBcHIgMTcsIDIwMDc6IGxpYmFyY2hpdmUgMi4xLjYgcmVsZWFzZWQKCUxpYmFyY2hpdmUgbm93IGNvbXBpbGVzIGFuZCBwYXNzZXMgYWxsIHRlc3RzIG9uIEludGVyaXguCgpBcHIgMTYsIDIwMDc6IGxpYmFyY2hpdmUgMi4xLjUgcmVsZWFzZWQKCkFwciAxNSwgMjAwNzogbGliYXJjaGl2ZSAyLjFiMiByZWxlYXNlZApBcHIgMTUsIDIwMDc6IE5ldyBsaWJhcmNoaXZlX2ludGVybmFscy4zIGRvY3VtZW50YXRpb24gb2YgaW50ZXJuYWwgQVBJcy4KCU5vdCBjb21wbGV0ZSwgYnV0IHNob3VsZCBwcm92ZSBoZWxwZnVsLgpBcHIgMTUsIDIwMDc6IEV4cGVyaW1lbnRhbCAicmVhZF9jb21wcmVzc19wcm9ncmFtIiBhbmQgIndyaXRlX2NvbXByZXNzX3Byb2dyYW0iCglmb3IgdXNpbmcgbGliYXJjaGl2ZSB3aXRoIGV4dGVybmFsIGNvbXByZXNzaW9uLiAgTm90IHlldAoJd2VsbCB0ZXN0ZWQsIGFuZCBsaWtlbHkgaGFzIHBvcnRhYmlsaXR5IGlzc3Vlcy4gIEZlZWRiYWNrCglhcHByZWNpYXRlZC4KCkFwciAxNCwgMjAwNzogbGliYXJjaGl2ZSAyLjAuMzEgcmVsZWFzZWQKQXByIDE0LCAyMDA3OiBNb3JlIGZpeGVzIGZvciBJbnRlcml4LCBtb3JlICdhcicgd29yawoKQXByIDE0LCAyMDA3OiBsaWJhcmNoaXZlIDIuMC4zMCByZWxlYXNlZApBcHIgMTMsIDIwMDc6IGxpYmFyY2hpdmUgbm93IGVuZm9yY2VzIHRyYWlsaW5nICcvJyBvbiBkaXJzCgl3cml0dGVuIHRvIHRhciBhcmNoaXZlcwoKQXByIDExLCAyMDA3OiBsaWJhcmNoaXZlIDIuMC4yOSByZWxlYXNlZApBcHIgMTEsIDIwMDc6IE1ha2UgaXQgZWFzaWVyIHRvIHN0YXRpY2FsbHkgY29uZmlndXJlIGZvciBkaWZmZXJlbnQgcGxhdGZvcm1zLgpBcHIgMTEsIDIwMDc6IFVwZGF0ZWQgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBsaWJ0b29sCgpBcHIgMDYsIDIwMDc6IGxpYmFyY2hpdmUgMi4wLjI4IHJlbGVhc2VkCkFwciAwNiwgMjAwNzogJ2FyJyBmb3JtYXQgcmVhZC93cml0ZSBzdXBwb3J0IHRoYW5rcyB0byBLYWkgV2FuZy4KCkFwciAwMSwgMjAwNzogbGliYXJjaGl2ZSAyLjAuMjcgcmVsZWFzZWQKTWFyIDMxLCAyMDA3OiBTZXZlcmFsIG1pbm9yIGZpeGVzIGZyb20gQ29saW4gUGVyY2l2YWwgYW5kIEpvZXJnIFNvbm5lbmJlcmdlci4KCk1hciAxMiwgMjAwNzogbGliYXJjaGl2ZSAyLjAuMjUgcmVsZWFzZWQKTWFyIDEyLCAyMDA3OiBGaXggYnJva2VuIC0tdW5saW5rIGZsYWcuCgpNYXIgMTEsIDIwMDc6IGxpYmFyY2hpdmUgMi4wLjI0IHJlbGVhc2VkCk1hciAxMCwgMjAwNzogQ29ycmVjdCBhbiBBQ0wgYmx1bmRlciB0aGF0IGNhdXNlcyBhbnkgQUNMIHdpdGggYW4gZW50cnkKICAgIHRoYXQgcmVmZXJzIHRvIGEgbm9uLWV4aXN0ZW50IHVzZXIgb3IgZ3JvdXAgdG8gbm90IGJlIHJlc3RvcmVkIGNvcnJlY3RseS4KICAgIFRoZSBmaXggYm90aCBtYWtlcyB0aGUgcGFyc2VyIG1vcmUgdG9sZXJhbnQgKHNvIHRoYXQgYXJjaGl2ZXMgY3JlYXRlZAogICAgd2l0aCB0aGUgYnVnZ3kgQUNMcyBjYW4gYmUgcmVhZCBub3cpIGFuZCBjb3JyZWN0cyB0aGUgQUNMIGZvcm1hdHRlci4KTWFyIDEwLCAyMDA3OiBNb3JlIHdvcmsgb24gdGVzdCBwb3J0YWJpbGl0eSB0byBMaW51eC4KCk1hciAxMCwgMjAwNzogbGliYXJjaGl2ZSAyLjAuMjIgcmVsZWFzZWQKTWFyIDEwLCAyMDA3OiBIZWFkZXIgY2xlYW51cHM7IGFkZGVkIGxpbnV4L2ZzLmgsIHJlbW92ZWQKICAgIHNvbWUgdW5uZWNlc3NhcnkgaGVhZGVycywgYWRkZWQgI2luY2x1ZGUgZ3VhcmRzIGluIGJzZHRhci4KICAgIElmIHlvdSBzZWUgYW55IG9idmlvdXMgY29tcGlsZSBmYWlsdXJlcyBmcm9tIHRoaXMsIGxldCBtZSBrbm93LgpNYXIgMTAsIDIwMDc6IFdvcmsgb24gYnNkdGFyIHRlc3Qgc2NyaXB0czogbm90IHlldCByb2J1c3QgZW5vdWdoCiAgICB0byBlbmFibGUgYXMgcGFydCBvZiAibWFrZSBjaGVjayIsIGJ1dCBnZXR0aW5nIGJldHRlci4KTWFyIDEwLCAyMDA3OiBsaWJhcmNoaXZlIG5vdyByZXR1cm5zIEFSQ0hJVkVfRkFJTEVEIHdoZW4KICAgIGEgaGVhZGVyIHdyaXRlIGZhaWxzIGluIGEgd2F5IHRoYXQgb25seSBhZmZlY3RzIHRoaXMgaXRlbS4KICAgIExlc3MgYmFkIHRoYW4gQVJDSElWRV9GQVRBTCwgYnV0IHdvcnNlIHRoYW4gQVJDSElWRV9XQVJOLgoKTWFyIDA3LCAyMDA3OiBsaWJhcmNoaXZlIDIuMC4yMSByZWxlYXNlZApNYXIgMDcsIDIwMDc6IEFkZCBzb21lIEFDTCB0ZXN0cyAob25seSBmb3IgdGhlIHN5c3RlbS1pbmRlcGVuZGVudAogICAgcG9ydGlvbiBvZiB0aGUgQUNMIHN1cHBvcnQgZm9yIG5vdykuCk1hciAwNywgMjAwNzogdGFyJ3MgYWJpbGl0eSB0byByZWFkIEFDTHMgb2ZmIGRpc2sgZ290CiAgICB0dXJuZWQgb2ZmIGZvciBGcmVlQlNEOyByZS1lbmFibGUgaXQuICAoQUNMIHJlc3RvcmVzIGFuZAogICAgbGliYXJjaGl2ZSBzdXBwb3J0IGZvciBzdG9yaW5nL3JlYWRpbmcgQUNMcyBmcm9tIHBheAogICAgYXJjaGl2ZXMgd2FzIHVuYWZmZWN0ZWQuKQoKTWFyIDAyLCAyMDA3OiBsaWJhcmNoaXZlIDIuMC4yMCByZWxlYXNlZApNYXIgMiwgMjAwNzogIEl0J3Mgbm90IHBlcmZlY3QsIGJ1dCBpdCdzIHByZXR0eSBnb29kLgogICAgTGliYXJjaGl2ZSAyLjAgaXMgb2ZmaWNpYWxseSBvdXQgb2YgYmV0YS4KCkZlYiAyOCwgMjAwNzogbGliYXJjaGl2ZSAyLjBiMTcgcmVsZWFzZWQKRmViIDI3LCAyMDA3OiBNYWtlIHRoZSBHSUQgcmVzdG9yZSBjaGVja3MgbW9yZSByb2J1c3QgYnkgY2hlY2tpbmcKICAgIHdoZXRoZXIgdGhlIGN1cnJlbnQgdXNlciBoYXMgdG9vIGZldyBvciB0b28gbWFueSBwcml2aWxlZ2VzLgoKRmViIDI2LCAyMDA3OiBsaWJhcmNoaXZlIDIuMGIxNSByZWxlYXNlZApGZWIgMjYsIDIwMDc6IERvbid0IGxvc2Ugc3ltbGlua3Mgd2hlbiBleHRyYWN0aW5nIGZyb20gSVNPcy4KICAgIFRoYW5rcyB0byBEaWVnbyAiRmxhbWVleWVzIiBQZXR0ZW7yIGZvciB0ZWxsaW5nIG1lIGFib3V0IHRoZQogICAgYnJva2VuIHRlc3RjYXNlIG9uIEdlbnRvbyB0aGF0IChmaW5hbGx5ISkgbGVkIG1lIHRvIHRoZSBjYXVzZQogICAgb2YgdGhpcyBsb25nLXN0YW5kaW5nIGJ1Zy4KCkZlYiAyNiwgMjAwNzogbGliYXJjaGl2ZSAyLjBiMTQgcmVsZWFzZWQKRmViIDI2LCAyMDA3OiBGaXggYSBicm9rZW4gdGVzdCBvbiBwbGF0Zm9ybXMgdGhhdCBsYWNrIGxjaG1vZCgpLgoKRmViIDI1LCAyMDA3OiBsaWJhcmNoaXZlIDIuMGIxMyByZWxlYXNlZApGZWIgMjUsIDIwMDc6IEVtcHR5IGFyY2hpdmVzIHdlcmUgYmVpbmcgd3JpdHRlbiBhcyBlbXB0eSBmaWxlcywKICAgIHdpdGhvdXQgYSBwcm9wZXIgZW5kLW9mLWFyY2hpdmUgbWFya2VyLiAgRml4ZWQuCgpGZWIgMjMsIDIwMDc6IGxpYmFyY2hpdmUgMi4wYjEyIHJlbGVhc2VkCkZlYiAyMiwgMjAwNzogQmFzaWMgc2VjdXJpdHkgY2hlY2tzIGFkZGVkOiBfRVhUUkFDVF9TRUNVUkVfTk9ET1RET1QKICAgIGFuZCBfRVhUUkFDVF9TRUNVUkVfU1lNTElOSy4gIFRoZXNlIGNoZWNrcyB1c2VkIHRvIGJlIGluIGJzZHRhciwKICAgIGJ1dCB0aGV5IGJlbG9uZyBkb3duIGluIGxpYmFyY2hpdmUgd2hlcmUgdGhleSBjYW4gYmUgdXNlZCBieQogICAgb3RoZXIgdG9vbHMgYW5kIHdoZXJlIHRoZXkgY2FuIGJlIGJldHRlciBvcHRpbWl6ZWQuCgpGZWIgMTEsIDIwMDc6IGxpYmFyY2hpdmUgMi4wYjExIHJlbGVhc2VkCkZlYiAxMCwgMjAwNzogRml4ZWQgYSBidW5jaCBvZiBlcnJvcnMgaW4gbGliYXJjaGl2ZSdzIGhhbmRsaW5nCiAgICBvZiBFWFRSQUNUX1BFUk0gYW5kIEVYVFJBQ1RfT1dORVIsIGVzcGVjaWFsbHkgcmVsYXRpbmcKICAgIHRvIFNVSUQgYW5kIFNHSUQgYml0cy4KCkphbiAzMSwgMjAwNzogbGliYXJjaGl2ZSAyLjBiOSByZWxlYXNlZApKYW4gMzEsIDIwMDc6IEFkZGVkIHJlYWQgc3VwcG9ydCBmb3IgImVtcHR5IiBhcmNoaXZlcyBhcyBhCiAgICBkaXN0aW5jdCBhcmNoaXZlIGZvcm1hdC4gIEJzZHRhciB1c2VzIHRoaXMgdG8gaGFuZGxlLCBlLmcuLAogICAgInRvdWNoIGZvby50YXI7IHRhciAtcmYgZm9vLnRhciIKCkphbiAyMiwgMjAwNzogbGliYXJjaGl2ZSAyLjBiNiByZWxlYXNlZApKYW4gMjIsIDIwMDc6IGFyY2hpdmVfd3JpdGVfZGlzayBBUEkgaXMgbm93IGluIHBsYWNlLiAgSXQgcHJvdmlkZXMKICAgIGEgZmluZXItZ3JhaW5lZCBpbnRlcmZhY2UgdGhhbiBhcmNoaXZlX3JlYWRfZXh0cmFjdC4gIEluIHBhcnRpY3VsYXIsCiAgICB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgb2JqZWN0cyBvbiBkaXNrIHdpdGhvdXQgaGF2aW5nIGFuIGFyY2hpdmUKICAgIGFyb3VuZCAoanVzdCBmZWVkIGl0IGFyY2hpdmVfZW50cnkgb2JqZWN0cyBkZXNjcmliaW5nIHdoYXQgeW91CiAgICB3YW50IHRvIGNyZWF0ZSksIHlvdSBjYW4gb3ZlcnJpZGUgdGhlIHVuYW1lL2duYW1lLXRvLXVpZC9naWQgbG9va3VwcwogICAgKG1pbml0YXIgdXNlcyB0aGlzIHRvIGF2b2lkIGdldHB3WFhYKCkgYW5kIGdldGdyWFhYKCkgYmxvYXQpLgoKSmFuIDA5LCAyMDA3OiBsaWJhcmNoaXZlIDIuMGEzIHJlbGVhc2VkCkphbiA5LCAyMDA3OiBhcmNoaXZlX2V4dHJhY3QgaXMgbm93IG11Y2ggYmV0dGVyOyBpdCBoYW5kbGVzIHRoZQogICAgbW9zdCBjb21tb24gY2FzZXMgd2l0aCBhIG1pbmltYWwgbnVtYmVyIG9mIHN5c3RlbSBjYWxscy4KICAgIFNvbWUgZmVhdHVyZXMgc3RpbGwgbmVlZCBhIGxvdCBvZiB0ZXN0aW5nLCBlc3BlY2lhbGx5IGNvcm5lcgogICAgY2FzZXMgaW52b2x2aW5nIG9iamVjdHMgdGhhdCBhbHJlYWR5IGV4aXN0IG9uIGRpc2suICAgSSBleHBlY3QKICAgIHRoZSBuZXh0IHJvdW5kIG9mIEFQSSBvdmVyaGF1bCB3aWxsIHNpbXBsaWZ5IGJ1aWxkaW5nIHRlc3QgY2FzZXMuCkphbiA5LCAyMDA3OiBhIG51bWJlciBvZiBmaXhlcyB0aGFua3MgdG8gQ29saW4gUGVyY2l2YWwsIGVzcGVjaWFsbHkKICAgIGNvcnJlY3Rpb25zIHRvIHRoZSBza2lwKCkgZnJhbWV3b3JrIGFuZCBoYW5kbGluZyBvZiBsYXJnZSBmaWxlcy4KSmFuIDksIDIwMDc6IEZpeGVzIGZvciBsYXJnZSBJU09zLiAgVGhlIGNvZGUgc2hvdWxkIGNvcnJlY3RseSBoYW5kbGUKICAgIHZlcnkgbGFyZ2UgSVNPcyB3aXRoIGVudHJpZXMgdXAgdG8gNEcuICAgVGhhbmtzIHRvIFJvYmVydCBTY2l1awogICAgZm9yIHBvaW50aW5nIG91dCB0aGVzZSBpc3N1ZXMuCgpTZXAgMDUsIDIwMDY6IGxpYmFyY2hpdmUgMS4zLjEgcmVsZWFzZWQKU2VwIDUsIDIwMDY6IEJ1bXAgdmVyc2lvbiB0byAxLjMgZm9yIG5ldyBJL08gd3JhcHBlcnMuClNlcCA0LCAyMDA2OiBOZXcgbWVtb3J5IGFuZCBGSUxFIHJlYWQvd3JpdGUgd3JhcHBlcnMuClNlcCA0LCAyMDA2OiBsaWJhcmNoaXZlIHRlc3QgaGFybmVzcyBpcyBub3cgbWluaW1hbGx5IGZ1bmN0aW9uYWw7CiAgICBpdCdzIGxvY2F0ZWQgYSBmZXcgbWlub3IgYnVncyBpbiBlcnJvci1oYW5kbGluZyBsb2dpYwoKQXVnIDE3LCAyMDA2OiBsaWJhcmNoaXZlIDEuMi41NCByZWxlYXNlZApBdWcgMTcsIDIwMDY6IE91dGxpbmUgQUJJIGNoYW5nZXMgZm9yIGxpYmFyY2hpdmUgMi4wOyB0aGVzZQogICBhcmUgcHJvdGVjdGVkIGJlaGluZCAjaWZkZWYncyB1bnRpbCBJIHRoaW5rIEkndmUgZm91bmQgZXZlcnl0aGluZwogICB0aGF0IG5lZWRzIHRvIGNoYW5nZS4KQXVnIDE3LCAyMDA2OiBGaXggZXJyb3ItaGFuZGxpbmcgaW4gYXJjaGl2ZV9yZWFkL3dyaXRlX2Nsb3NlKCkKICAgVGhleSB3ZXJlbid0IHJldHVybmluZyBhbnkgZXJyb3JzIGJlZm9yZS4KQXVnIDE3LCAyMDA2OiBGaXggcmVjdXJzaXZlLWFkZCBsb2dpYyB0byBub3QgdHJpZ2dlciBpZiBpdCdzIG5vdCBzZXQKICAgRml4ZXMgYSBidWcgYWRkaW5nIGZpbGVzIHdoZW4gd3JpdGluZyBhcmNoaXZlIHRvIHBpcGUgb3Igd2hlbgogICB1c2luZyBhcmNoaXZlX3dyaXRlX29wZW4oKSBkaXJlY3RseS4KSnVsIDIwMDY6IE5ldyAic2tpcCIgaGFuZGxpbmcgaW1wcm92ZXMgcGVyZm9ybWFuY2UgZXh0cmFjdGluZwogICBzaW5nbGUgZmlsZXMgZnJvbSBsYXJnZSB1bmNvbXByZXNzZWQgYXJjaGl2ZXMuCgpNYXIgMjEsIDIwMDY6IDEuMi41MiByZWxlYXNlZApNYXIgMjEsIDIwMDY6IEZpeCAtcCBvbiBwbGF0Zm9ybXMgdGhhdCBkb24ndCBoYXZlIHBsYXRmb3JtLXNwZWNpZmljCiAgIGV4dGVuZGVkIGF0dHJpYnV0ZSBjb2RlLgpNYXIgMjAsIDIwMDY6IEFkZCBORVdTIGZpbGU7IGZpbGwgaW4gc29tZSBvbGRlciBoaXN0b3J5IGZyb20gb3RoZXIKICAgZmlsZXMuICBJJ2xsIHRyeSB0byBrZWVwIHRoaXMgZmlsZSB1cC10by1kYXRlIGZyb20gbm93IG9uLgoKT0xERVIgTkVXUyBTVU1NQVJJRVMKCk1hciAxOSwgMjAwNjogbGliYXJjaGl2ZSAxLjIuNTEgcmVsZWFzZWQKTWFyIDE4LCAyMDA2OiBNYW55IGZpeGVzIHRvIGV4dGVuZGVkIGF0dHJpYnV0ZSBzdXBwb3J0LCBpbmNsdWRpbmcgYSByZWRlc2lnbgogICBvZiB0aGUgc3RvcmFnZSBmb3JtYXQgdG8gc2ltcGxpZnkgZGVidWdnaW5nLgpNYXIgMTIsIDIwMDY6IFJlbW92ZSAndHAnIHN1cHBvcnQ7IGl0IHdhcyBhIGZ1biBpZGVhLCBidXQgbm90IHdvcnRoCiAgIHNwZW5kaW5nIG11Y2ggdGltZSBvbi4KTWFyIDExLCAyMDA2OiBJbmNvcnBvcmF0ZWQgSmFha2tvIEhlaW5vbmVuJ3Mgc3RpbGwtZXhwZXJpbWVudGFsIHN1cHBvcnQKICAgZm9yIGV4dGVuZGVkIGF0dHJpYnV0ZXMgKEN1cnJlbnRseSBMaW51eC1vbmx5LikuCk1hciAxMSwgMjAwNjogUmVvcmdhbml6ZWQgZGlzdHJpYnV0aW9uIHBhY2thZ2U6IFRoZXJlIGlzIG5vdyBvbmUgdGFyLmd6CiAgIGZpbGUgdGhhdCBidWlsZHMgYm90aCBsaWJhcmNoaXZlIGFuZCBic2R0YXIuCkZlYiAxMywgMjAwNjogTWlub3IgYnVnIGZpeGVzOiBjb3JyZWN0bHkgcmVhZCBjcGlvIGRldmljZSBlbnRyaWVzLCB3cml0ZQogICBQYXggYXR0cmlidXRlIGVudHJ5IG5hbWVzLgpOb3YgNywgMjAwNTogRXhwZXJpbWVudGFsICd0cCcgZm9ybWF0IHN1cHBvcnQgaW4gbGliYXJjaGl2ZS4gIEZlZWRiYWNrCiAgIGFwcHJlY2lhdGVkOyB0aGlzIGlzIG5vdCBlbmFibGVkIGJ5IGFyY2hpdmVfcmVhZF9zdXBwb3J0X2Zvcm1hdF9hbGwoKQogICB5ZXQgYXMgSSdtIG5vdCBxdWl0ZSBjb250ZW50IHdpdGggdGhlIGZvcm1hdCBkZXRlY3Rpb24gaGV1cmlzdGljcy4KTm92IDcsIDIwMDU6IFNvbWUgbW9yZSBwb3J0YWJpbGl0eSBpbXByb3ZlbWVudHMgdGhhbmtzIHRvIERhcmluIEJyb2FkeSwKICAgbWlub3IgYnVnZml4ZXMuCk9jdCAxMiwgMjAwNTogVXNlIEdOVSBsaWJ0b29sIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMgb24gbWFueSBzeXN0ZW1zLgpBdWcgOSwgMjAwNTogQ29ycmVjdGx5IGRldGVjdCB0aGF0IE1hY09TIFggZG9lcyBub3QgaGF2ZSBQT1NJWCBBQ0xzLgpBcHIgMTcsIDIwMDU6IEtlZXMgWmVlbGVuYmVyZyBoYXMgcG9ydGVkIGxpYmFyY2hpdmUgYW5kIGJzZHRhciB0byBXaW5kb3dzOgogICBodHRwOi8vZ251d2luMzIuc291cmNlZm9yZ2UubmV0LwpBcHIgMTEsIDIwMDU6IEV4dGVuZGVkIFppcC9aaXA2NCBzdXBwb3J0IHRoYW5rcyB0byBEYW4gTmVsc29uLiAgLUwvLWgKICAgZml4IGZyb20gSmFha2tvIEhlaW5vbmVuLgpNYXIgMTIsIDIwMDU6IGFyY2hpdmVfcmVhZF9leHRyYWN0IGNhbiBub3cgaGFuZGxlIHZlcnkgbG9uZwogICBwYXRobmFtZXMgKEkndmUgdGVzdGVkIHdpdGggcGF0aG5hbWVzIHVwIHRvIDFNQikuCk1hciAxMiwgMjAwNTogTWFyY3VzIEdlaWdlciBoYXMgd3JpdHRlbiBhbiBhcnRpY2xlIGFib3V0IGxpYmFyY2hpdmUKICAgaHR0cDovL3hzbmlsLmFudGJlYXIub3JnLzIwMDUvMDIvMDUvYXJjaGl2ZS1taXQtbGliYXJjaGl2ZS12ZXJhcmJlaXRlbi8KICAgaW5jbHVkaW5nIGV4YW1wbGVzIG9mIHVzaW5nIGl0IGZyb20gT2JqZWN0aXZlLUMuICBIaXMgTW9pblgKICAgaHR0cDovL21vaW54LmFudGJlYXIub3JnLyBkZXNrdG9wIFdpa2kgdXNlcwogICBsaWJhcmNoaXZlIGZvciBhcmNoaXZpbmcgYW5kIHJlc3RvcmluZyBXaWtpIHBhZ2VzLgpKYW4gMjIsIDIwMDU6IFByZWxpbWluYXJ5IFpJUCBleHRyYWN0aW9uIHN1cHBvcnQsCiAgICBuZXcgZGlyZWN0b3J5LXdhbGtpbmcgY29kZSBmb3IgYnNkdGFyLgpKYW4gMTYsIDIwMDU6IElTTzk2NjAgZXh0cmFjdGlvbiBjb2RlIGFkZGVkOyBtYW5wYWdlIGNvcnJlY3Rpb25zLgpNYXkgMjIsIDIwMDQ6IE1hbnkgZ3Rhci1jb21wYXRpYmxlIGxvbmcgb3B0aW9ucyBoYXZlIGJlZW4gYWRkZWQ7IGFsbW9zdAogICAgYWxsIEZyZWVCU0QgcG9ydHMgZXh0cmFjdCBjb3JyZWN0bHkgd2l0aCBic2R0YXIuCk1heSAxOCwgMjAwNDogYnNkdGFyIGNhbiByZWFkIFNvbGFyaXMsIEhQLVVYLCBVbml4d2FyZSwgc3RhciwgZ3RhciwKICAgIGFuZCBwZHRhciBhcmNoaXZlcy4K