IyAkSWQkCgojIGxhbmd1YWdlIGZyCgojIHBhY2thZ2Ugb3JnLmFwYWNoZS5jb3lvdGUuaHR0cDExCgojCiMgSHR0cDExUHJvdG9jb2wKIwoKaHR0cDExcHJvdG9jb2wuZW5kcG9pbnQuaW5pdGVycm9yPUVycmV1ciDgIGwnaW5pdGlhbGlzYXRpb24gZHUgcG9pbnQgZGUgY29udGFjdApodHRwMTFwcm90b2NvbC5lbmRwb2ludC5zdGFydGVycm9yPUVycmV1ciBhdSBk6W1hcnJhZ2UgZHUgcG9pbnQgZGUgY29udGFjdApodHRwMTFwcm90b2NvbC5pbml0PUluaXRpYWxpc2F0aW9uIGRlIENveW90ZSBIVFRQLzEuMSBzdXIgezB9Cmh0dHAxMXByb3RvY29sLnByb3RvLmVycm9yPUVycmV1ciDgIGxhIGxlY3R1cmUgZGUgbGEgcmVxdep0ZSwgaWdub3LpCmh0dHAxMXByb3RvY29sLnByb3RvLmlvZXhjZXB0aW9uLmRlYnVnPUV4Y2VwdGlvbiBkJ2VudHLpZS9zb3J0aWUgKElPRXhjZXB0aW9uKSDgIGxhIGxlY3R1cmUgZGUgbGEgcmVxdep0ZQpodHRwMTFwcm90b2NvbC5wcm90by5pb2V4Y2VwdGlvbi5pbmZvPUV4Y2VwdGlvbiBkJ2VudHLpZS9zb3J0aWUg4CBsYSBsZWN0dXJlIGRlIGxhIHJlcXXqdGUsIGlnbm9y6QpodHRwMTFwcm90b2NvbC5wcm90by5zb2NrZXRleGNlcHRpb24uZGVidWc9RXhjZXB0aW9uICJTb2NrZXQiIChTb2NrZXRFeGNlcHRpb24pIOAgbGEgbGVjdHVyZSBkZSBsYSByZXF16nRlCmh0dHAxMXByb3RvY29sLnByb3RvLnNvY2tldGV4Y2VwdGlvbi5pbmZvPUV4Y2VwdGlvbiAiU29ja2V0IiAoU29ja2V0RXhjZXB0aW9uKSDgIGxhIGxlY3R1cmUgZGUgbGEgcmVxdep0ZSwgaWdub3LpCmh0dHAxMXByb3RvY29sLnNldGF0dHJpYnV0ZT1BdHRyaWJ1dCB7MH06IHsxfQpodHRwMTFwcm90b2NvbC5zb2NrZXRmYWN0b3J5LmluaXRlcnJvcj1FcnJldXIg4CBsJ2luaXRpYWxpc2F0aW9uIGR1IGNy6WF0ZXVyIGRlIHNvY2tldCAoc29ja2V0IGZhY3RvcnkpCmh0dHAxMXByb3RvY29sLnN0YXJ0PUTpbWFycmFnZSBkZSBDb3lvdGUgSFRUUC8xLjEgc3VyIHswfQpodHRwMTFwcm90b2NvbC5zdG9wPUFycup0IGRlIENveW90ZSBIVFRQLzEuMSBzdXIgezB9Cmh0dHAxMXByb3RvY29sLnBhdXNlPVN1c3BlbnNpb24gZGUgQ295b3RlIEhUVFAvMS4xIHN1ciB7MH0KaHR0cDExcHJvdG9jb2wucmVzdW1lPVJlZOltYXJyYWdlIGRlIENveW90ZSBIVFRQLzEuMSBzdXIgezB9CgojCiMgSHR0cDExUHJvY2Vzc29yCiMKCiMKIyBJbnRlcm5hbElucHV0QnVmZmVyCiMKCmlpYi5lb2YuZXJyb3I9RmluIGRlIGZsdXggKEVPRikgaW5hdHRlbmR1ZSDgIGxhIGxlY3R1cmUgc3VyIGxhIHNvY2tldAppaWIucmVxdWVzdGhlYWRlcnRvb2xhcmdlLmVycm9yPUwnZW506nRlIGRlIHJlcXXqdGUgZXN0IHRyb3AgaW1wb3J0YW50Cgo=