IwojICRYRnJlZTg2OiB4Yy9saWIvZm9udGNvbmZpZy9NYWtlZmlsZS5pbix2IDEuNiAyMDAyLzA1LzI4IDAzOjUwOjIzIGtlaXRocCBFeHAgJAojCiMgQ29weXJpZ2h0IKkgMjAwMiBLZWl0aCBQYWNrYXJkLCBtZW1iZXIgb2YgVGhlIFhGcmVlODYgUHJvamVjdCwgSW5jLgojCiMgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgZGlzdHJpYnV0ZSwgYW5kIHNlbGwgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCiMgZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UgaXMgaGVyZWJ5IGdyYW50ZWQgd2l0aG91dCBmZWUsIHByb3ZpZGVkIHRoYXQKIyB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBhbmQgdGhhdCBib3RoIHRoYXQKIyBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBzdXBwb3J0aW5nCiMgZG9jdW1lbnRhdGlvbiwgYW5kIHRoYXQgdGhlIG5hbWUgb2YgS2VpdGggUGFja2FyZCBub3QgYmUgdXNlZCBpbgojIGFkdmVydGlzaW5nIG9yIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIGRpc3RyaWJ1dGlvbiBvZiB0aGUgc29mdHdhcmUgd2l0aG91dAojIHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uICBLZWl0aCBQYWNrYXJkIG1ha2VzIG5vCiMgcmVwcmVzZW50YXRpb25zIGFib3V0IHRoZSBzdWl0YWJpbGl0eSBvZiB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZS4gIEl0CiMgaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGV4cHJlc3Mgb3IgaW1wbGllZCB3YXJyYW50eS4KIwojIEtFSVRIIFBBQ0tBUkQgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUsCiMgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLCBJTiBOTwojIEVWRU5UIFNIQUxMIEtFSVRIIFBBQ0tBUkQgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgSU5ESVJFQ1QgT1IKIyBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwKIyBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSCiMgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUgojIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCiMKClRPUERJUiAgICAgICAgID0gLgoKaW5jbHVkZSAkKFRPUERJUikvY29uZmlnL01ha2VkZWZzCgpESVJTICAgICAgICAgID0gc3JjIGZjLWNhY2hlIGZjLWxpc3QgZm9udGNvbmZpZwoKYWxsIGluc3RhbGwgY2xlYW46OgoJZm9yIGQgaW4gJChESVJTKTsgZG8gKGNkICQkZCAmJiAkKE1BS0UpICRAKTsgZG9uZQoKIwojIGNyZWF0ZSBmb250cy5jb25mIGZpbGUKIwphbGw6OiBmb250cy5jb25mCgpmb250cy5jb25mOiBmb250cy5jb25mLmluCglybSAtZiAkQAoJc2ggLi9zZXRmb250ZGlycyAkKEZDX0RFRkFVTFRfRk9OVFMpICQoWF9GT05UX0RJUikKCmNsZWFuOjoKCXJtIC1mIGZvbnRzLmNvbmYKCiMKIyBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXMKIwoKaW5zdGFsbDo6ICQoREVTVERJUikkKENPTkZESVIpICQoREVTVERJUikkKEJJTkRJUikgCmluc3RhbGw6OiAkKERFU1RESVIpJChMSUJESVIpICQoREVTVERJUikkKExJQkRJUikvcGtnY29uZmlnCgokKERFU1RESVIpJChDT05GRElSKToKCW1rZGlyIC1wICRACgokKERFU1RESVIpJChCSU5ESVIpOgoJbWtkaXIgLXAgJEAKCiQoREVTVERJUikkKExJQkRJUik6Cglta2RpciAtcCAkQAoKJChERVNURElSKSQoTElCRElSKS9wa2djb25maWc6Cglta2RpciAtcCAkQAoKIwojIGluc3RhbGwgY29uZmlnIGZpbGVzCiMKaW5zdGFsbDo6ICQoREVTVERJUikkKENPTkZESVIpL2ZvbnRzLmNvbmYgJChERVNURElSKSQoQ09ORkRJUikvZm9udHMuZHRkCgokKERFU1RESVIpJChDT05GRElSKS9mb250cy5jb25mOjogZm9udHMuY29uZgoJaWYgWyAtZiAkQCBdOyB0aGVuIFwKCQllY2hvICJOb3Qgb3ZlcndyaXRpbmcgZXhpc3RpbmcgJEAiOyBcCgllbHNlIFwKCQkkKElOU1RBTExfREFUQSkgZm9udHMuY29uZiAkKERFU1RESVIpJChDT05GRElSKS9mb250cy5jb25mOyBcCglmaQoKJChERVNURElSKSQoQ09ORkRJUikvZm9udHMuZHRkOjogZm9udHMuZHRkCgkkKElOU1RBTExfREFUQSkgZm9udHMuZHRkICQoREVTVERJUikkKENPTkZESVIpL2ZvbnRzLmR0ZAoKIwojIGluc3RhbGwgZm9udGNvbmZpZy1jb25maWcgc2NyaXB0CiMKCmluc3RhbGw6OiAkKERFU1RESVIpJChCSU5ESVIpL2ZvbnRjb25maWctY29uZmlnCgokKERFU1RESVIpJChCSU5ESVIpL2ZvbnRjb25maWctY29uZmlnOiBmb250Y29uZmlnLWNvbmZpZwoJJChJTlNUQUxMX1NDUklQVCkgJDwgJChERVNURElSKSQoQklORElSKS8kPAoKIwojIGluc3RhbGwgcGtnY29uZmlnIGNvbnRyb2wgZmlsZQojCmluc3RhbGw6OiAkKERFU1RESVIpJChMSUJESVIpL3BrZ2NvbmZpZy9mb250Y29uZmlnLnBjCgokKERFU1RESVIpJChMSUJESVIpL3BrZ2NvbmZpZy9mb250Y29uZmlnLnBjOiBmb250Y29uZmlnLnBjCgkkKElOU1RBTExfREFUQSkgJDwgJChERVNURElSKSQoTElCRElSKS9wa2djb25maWcvJDwK