eval %q{IyBDb3B5cmlnaHQgMjAwNywgRGlkaWVyIEJ1cgojCiMgUGVybWlzc2lvbiB0
byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0
d2FyZSBmb3IgCiMgYW55IHB1cnBvc2UgYW5kIHdpdGhvdXQgZmVlIGlzIGhl
cmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQojIGNvcHly
aWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCiMgCiMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBXSVRIT1VUIEFOWSBF
WFBSRVNTIE9SCiMgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIFdJ
VEhPVVQgTElNSVRBVElPTiwgVEhFIElNUExJRUQKIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMg
TmFtZSA6IEVsbGlwc2UgVG9vbAojIERlc2NyaXB0aW9uIDogQSB0b29sIHRv
IGRyYXcgZWxsaXBzZXMuCiMgTWVudSBJdGVtIDogRHJhdyAvIEVsbGlwc2UK
IyBVc2FnZSA6IDEuIENsaWNrIDIgcG9pbnRzIGZvciBtYWpvciBheGlzCiMg
ICAgICAgICAyLiBDbGljayBhIHBvaW50IHRvIG9yaWVudCB0aGUgZWxsaXBz
ZSBwbGFuZQojICAgICAgICAgMy4gQ2xpY2sgYSBwb2ludCBmb3IgaGFsZiBt
aW5vciBheGlzCiMgRGF0ZSA6IDI5IFNlcHQgMjAwNwojIFR5cGUgOiBUb29s
CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpyZXF1aXJlICdz
a2V0Y2h1cC5yYicKCm1vZHVsZSBFbGxpcHNlCgpjbGFzcyAgRWxsaXBzZVRv
b2wKCmRlZiBpbml0aWFsaXplCiAgICBAaXAxID0gbmlsCiAgICBAaXAyID0g
bmlsCiAgICBAaXAzID0gbmlsCiAgICBAeGRvd24gPSAwCiAgICBAeWRvd24g
PSAwCiAgICAkYXhpc19wb2ludHM9W10KICAgIEBzdGF0ZSA9IDAKICAgICNk
ZWZhdWx0IHZhbHVlcwogICAgJGVsbF90eXBlID0gIkN1cnZlIiBpZiBub3Qg
JGVsbF90eXBlCiAgICAkZWxsX2NmID0gIlllcyIgaWYgbm90ICRlbGxfY2YK
ICAgICRlbGxfcHJlYyA9IDIwIGlmIG5vdCAkZWxsX3ByZWMKICAgICRlbGxf
a2cgPSAiTm8iIGlmIG5vdCAkZWxsX2tnCmVuZAoKIyBXaGVuIHRoZSB0b29s
IGlzIGZpcnN0IHNlbGVjdGVkLgpkZWYgYWN0aXZhdGUKICAgIFNrZXRjaHVw
LmFjdGl2ZV9tb2RlbC5zdGFydF9vcGVyYXRpb24gIkVsbGlwc2UiCiAgICBA
aXAxID0gU2tldGNodXA6OklucHV0UG9pbnQubmV3CiAgICBAaXAyID0gU2tl
dGNodXA6OklucHV0UG9pbnQubmV3CiAgICBAaXAzID0gU2tldGNodXA6Oklu
cHV0UG9pbnQubmV3CiAgICBAaXA0ID0gU2tldGNodXA6OklucHV0UG9pbnQu
bmV3CiAgICBAaXAgPSBTa2V0Y2h1cDo6SW5wdXRQb2ludC5uZXcKICAgIEBk
cmF3biA9IGZhbHNlCiAgICBzZWxmLnJlc2V0KG5pbCkKZW5kCgojIFdoZW4g
dGhlIHRvb2wgaXMgZGVhY3RpdmF0ZWQgYmVjYXVzZSBhIGRpZmZlcmVudCB0
b29sIHdhcyBzZWxlY3RlZApkZWYgZGVhY3RpdmF0ZSh2aWV3KQogICAgdmll
dy5pbnZhbGlkYXRlIGlmIEBkcmF3bgplbmQKCiMgV2hlbmV2ZXIgdGhlIHVz
ZXIgbW92ZXMgdGhlIG1vdXNlLgpkZWYgb25Nb3VzZU1vdmUoZmxhZ3MsIHgs
IHksIHZpZXcpCiNwdXRzICJzdGF0ZSAiICsgQHN0YXRlLnRvX3MKICAgICNp
ZiggQHN0YXRlID09IDAgKQogICAgICAgICMgV2UgYXJlIGdldHRpbmcgdGhl
IGZpcnN0IHBvaW50IChzdGFydCBvcmlnaW4pCiAgICAgICAgQGlwLnBpY2sg
dmlldywgeCwgeQogICAgICAgIGlmKCBAaXAgIT0gQGlwMSApCiAgICAgICAg
ICAgIHZpZXcuaW52YWxpZGF0ZSBpZiggQGlwLmRpc3BsYXk/IG9yIEBpcDEu
ZGlzcGxheT8gKQogICAgICAgICAgICBAaXAxLmNvcHkhIEBpcAogICAgICAg
ICAgICAjIHNldCB0aGUgdG9vbHRpcCB0aGF0IHNob3VsZCBiZSBkaXNwbGF5
ZWQgdG8gdGhpcyBwb2ludAogICAgICAgICAgICB2aWV3LnRvb2x0aXAgPSBA
aXAxLnRvb2x0aXAKICAgICAgICBlbmQKICAgICNlbmQKICAgIAogIGNhc2Ug
QHN0YXRlCiAgICB3aGVuIDAKICAgICAgdmlldy50b29sdGlwID0gIkZpcnN0
IG1ham9yIGF4aXMgcG9pbnQiCiAgICB3aGVuIDEKICAgICAgdmlldy50b29s
dGlwID0gIlNlY29uZCBtYWpvciBheGlzIHBvaW50IgogICAgd2hlbiAyCiAg
ICAgIHZpZXcudG9vbHRpcCA9ICJQbGFuZSBwb2ludCIKICAgIHdoZW4gMwog
ICAgICB2aWV3LnRvb2x0aXAgPSAiTWlub3IgYXhpcyBwb2ludCIKICBlbmQK
ICAKZW5kCgojIFdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgbGVmdCBtb3Vz
ZSBidXR0b24uCmRlZiBvbkxCdXR0b25Eb3duKGZsYWdzLCB4LCB5LCB2aWV3
KQogICAgIyBXaGVuIHRoZSB1c2VyIGNsaWNrcyB0aGUgZmlyc3QgdGltZSwg
d2Ugc3dpdGNoIHRvIGdldHRpbmcgdGhlCiAgICAjIHNlY29uZCBwb2ludC4g
IFdoZW4gdGhleSBjbGljayBhIHNlY29uZCB0aW1lIHdlIGNyZWF0ZSB0aGUg
bGluZQogICAgCiAgICAjcHV0cyAiU3RhdGU6ICIgKyBAc3RhdGUudG9fcwog
ICAgQGlwMS5waWNrIHZpZXcsIHgsIHkKI2lmKCBAaXAxLnZhbGlkPyApCiAg
Y2FzZSBAc3RhdGUKICAgIHdoZW4gMAogICAgICBTa2V0Y2h1cDo6c2V0X3N0
YXR1c190ZXh0KCJGaXJzdCBwb2ludCBvZiBtYWpvciBheGlzIiwgU0JfUFJP
TVBUKQogICAgICBAeGRvd24gPSB4CiAgICAgIEB5ZG93biA9IHkKICAgICAg
dmlldy50b29sdGlwID0gQGlwMS50b29sdGlwIGlmKCBAaXAxLnZhbGlkPyAp
CiAgICAgICRheGlzX3BvaW50cy5wdXNoIEBpcDEucG9zaXRpb24KICAgICAg
QHN0YXRlID0gMQogICAgICB2aWV3LmludmFsaWRhdGUKICAgIHdoZW4gMQog
ICAgICBTa2V0Y2h1cDo6c2V0X3N0YXR1c190ZXh0KCJTZWNvbmQgcG9pbnQg
b2YgbWFqb3IgYXhpcyIsIFNCX1BST01QVCkKICAgICAgQHhkb3duID0geAog
ICAgICBAeWRvd24gPSB5CiAgICAgIEBpcDIucGljayB2aWV3LCB4LCB5LCBA
aXAxCiAgICAgIHZpZXcudG9vbHRpcCA9IEBpcDIudG9vbHRpcCBpZiggQGlw
Mi52YWxpZD8gKQogICAgICAkYXhpc19wb2ludHMucHVzaCBAaXAyLnBvc2l0
aW9uCiAgICAgIEBzdGF0ZSA9IDIKICAgICAgdmlldy5pbnZhbGlkYXRlIAog
ICAgd2hlbiAyCiAgICAgIFNrZXRjaHVwOjpzZXRfc3RhdHVzX3RleHQoIlBv
aW50IG9mIGVsbGlwc2UgcGxhbmUiLCBTQl9QUk9NUFQpCiAgICAgIEB4ZG93
biA9IHgKICAgICAgQHlkb3duID0geQogICAgICBAaXAzLnBpY2sgdmlldywg
eCwgeSwgQGlwMQogICAgICB2aWV3LnRvb2x0aXAgPSBAaXAzLnRvb2x0aXAg
aWYoIEBpcDMudmFsaWQ/ICkKICAgICAgJGF4aXNfcG9pbnRzLnB1c2ggQGlw
My5wb3NpdGlvbgogICAgICBAc3RhdGUgPSAzCiAgICAgIHZpZXcuaW52YWxp
ZGF0ZQogICAgd2hlbiAzCiAgICAgIFNrZXRjaHVwOjpzZXRfc3RhdHVzX3Rl
eHQoIlBvaW50IG9mIG1pbm9yIGF4aXMiLCBTQl9QUk9NUFQpCiAgICAgIEB4
ZG93biA9IHgKICAgICAgQHlkb3duID0geQogICAgICBAaXA0LnBpY2sgdmll
dywgeCwgeSwgQGlwMQogICAgICB2aWV3LnRvb2x0aXAgPSBAaXA0LnRvb2x0
aXAgaWYoIEBpcDQudmFsaWQ/ICkKICAgICAgJGF4aXNfcG9pbnRzLnB1c2gg
QGlwNC5wb3NpdGlvbgogICAgICBAc3RhdGUgPSA0CiAgICAgIHZpZXcuaW52
YWxpZGF0ZQogICAgIyBDbGVhciBhbnkgaW5mZXJlbmNlIGxvY2sKICAgIHZp
ZXcubG9ja19pbmZlcmVuY2UKICBlbmQgI2Nhc2UKI2VuZAplbmQKCiMgdXNl
ciByZWxlYXNlcyB0aGUgbGVmdCBtb3VzZSBidXR0b24uCmRlZiBvbkxCdXR0
b25VcChmbGFncywgeCwgeSwgdmlldykKICBzZWxmLnJlc2V0KHZpZXcpCiAg
aWYgQHN0YXRlID09IDMKICAgICNjcmVhdGUgdGVtcCBoZWxwIGF4aXMKICAg
IGhsMT1AbWlkcDAub2Zmc2V0KEB2eSkKICAgIGhsMj1AbWlkcDAub2Zmc2V0
KEB2eS5yZXZlcnNlKQogICAgJGVsbF9obD1Ta2V0Y2h1cC5hY3RpdmVfbW9k
ZWwuZW50aXRpZXMuYWRkX2NsaW5lKGhsMSxobDIpCiAgZW5kCiAgc2VsZi5k
cmF3X2dlb21ldHJ5KHZpZXcpIGlmIEBzdGF0ZSA9PSA0CmVuZAoKIyBVc2Vy
IHByZXNzZXMgYSBrZXkgb24gdGhlIGtleWJvYXJkLgojIFdlIGFyZSBjaGVj
a2luZyBpdCBoZXJlIHRvIHNlZSBpZiB0aGUgdXNlciBwcmVzc2VkIHRoZSBz
aGlmdCBrZXkKIyBzbyB0aGF0IHdlIGNhbiBkbyBpbmZlcmVuY2UgbG9ja2lu
ZwpkZWYgb25LZXlEb3duKGtleSwgcmVwZWF0LCBmbGFncywgdmlldykKICAg
IGlmKCBrZXkgPT0gQ09OU1RSQUlOX01PRElGSUVSX0tFWSAmJiByZXBlYXQg
PT0gMSApCiAgICAgICAgQHNoaWZ0X2Rvd25fdGltZSA9IFRpbWUubm93CiAg
ICAgICAgIyBpZiB3ZSBhbHJlYWR5IGhhdmUgYW4gaW5mZXJlbmNlIGxvY2ss
IHRoZW4gdW5sb2NrIGl0CiAgICAgICAgaWYoIHZpZXcuaW5mZXJlbmNlX2xv
Y2tlZD8gKQogICAgICAgICMgY2FsbGluZyBsb2NrX2luZmVyZW5jZSB3aXRo
IG5vIGFyZ3VtZW50cyBhY3R1YWxseSB1bmxvY2tzCiAgICAgICAgICAgIHZp
ZXcubG9ja19pbmZlcmVuY2UKICAgICAgICBlbHNpZiggQHN0YXRlID09IDAg
JiYgQGlwMS52YWxpZD8gKQogICAgICAgICAgICB2aWV3LmxvY2tfaW5mZXJl
bmNlIEBpcDEKICAgICAgICBlbHNpZiggQHN0YXRlID09IDEgJiYgQGlwMi52
YWxpZD8gKQogICAgICAgICAgICB2aWV3LmxvY2tfaW5mZXJlbmNlIEBpcDIK
ICAgICAgICBlbHNpZiggQHN0YXRlID09IDIgJiYgQGlwMy52YWxpZD8gKQog
ICAgICAgICAgICB2aWV3LmxvY2tfaW5mZXJlbmNlIEBpcDMKICAgICAgICBl
bHNpZiggQHN0YXRlID09IDMgJiYgQGlwNC52YWxpZD8gKQogICAgICAgICAg
ICB2aWV3LmxvY2tfaW5mZXJlbmNlIEBpcDQKICAgICAgICBlbmQKICAgIGVu
ZAplbmQKCiMgVXNlciByZWxlYXNlcyB0aGUga2V5CiMgV2UgdXNlIHRoaXMg
dG8gdW5sb2NrIHRoZSBpbnRlcmVuY2UKIyBJZiB0aGUgdXNlciBob2xkcyBk
b3duIHRoZSBzaGlmdCBrZXkgZm9yIG1vcmUgdGhhbiAxLzIgc2Vjb25kLCB0
aGVuIHdlCiMgdW5sb2NrIHRoZSBpbmZlcmVuY2Ugb24gdGhlIHJlbGVhc2Uu
ICBPdGhlcndpc2UsIHRoZSB1c2VyIHByZXNzZXMgc2hpZnQKIyBvbmNlIHRv
IGxvY2sgYW5kIGEgc2Vjb25kIHRpbWUgdG8gdW5sb2NrLgpkZWYgb25LZXlV
cChrZXksIHJlcGVhdCwgZmxhZ3MsIHZpZXcpCiAgcmV0dXJuIGlmIG5vdCBA
c3RhdGUgPT0gNQogICAgaWYoIGtleSA9PSBDT05TVFJBSU5fTU9ESUZJRVJf
S0VZICYmCiAgICAgICAgdmlldy5pbmZlcmVuY2VfbG9ja2VkPyAmJgogICAg
ICAgIChUaW1lLm5vdyAtIEBzaGlmdF9kb3duX3RpbWUpID4gMC41ICkKICAg
ICAgICB2aWV3LmxvY2tfaW5mZXJlbmNlCiAgICBlbmQKZW5kCgojIG9uVXNl
clRleHQgaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZW50ZXJzIHNvbWV0aGlu
ZyBpbnRvIHRoZSBWQ0IKZGVmIG9uVXNlclRleHQodGV4dCwgdmlldykKICAg
IHJldHVybiBpZiBub3QgQHN0YXRlID09IDUKZW5kCgojIFRoZSBkcmF3IG1l
dGhvZCBpcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIHZpZXcgaXMgcmVmcmVzaGVk
LiAgSXQgbGV0cyB0aGUKIyB0b29sIGRyYXcgYW55IHRlbXBvcmFyeSBnZW9t
ZXRyeSB0aGF0IGl0IG5lZWRzIHRvLgpkZWYgZHJhdyh2aWV3KQogICAgaWYo
IEBpcDEudmFsaWQ/ICkKICAgICAgICBpZiggQGlwMS5kaXNwbGF5PyApCiAg
ICAgICAgICAgIEBpcDEuZHJhdyh2aWV3KQogICAgICAgICAgICBAZHJhd24g
PSB0cnVlCiAgICAgICAgZW5kCiAgICBlbmQKICAgIAogIGlmICRheGlzX3Bv
aW50cy5sZW5ndGggPT0gMQogICAgdmlldy5kcmF3X3BvaW50cyAkYXhpc19w
b2ludHMsIDgsIDEsICJibGFjayIKICBlbmQKICAKICBpZiAkYXhpc19wb2lu
dHMubGVuZ3RoID09IDIKICAgIHZpZXcubGluZV93aWR0aCA9IDIKICAgIHZp
ZXcuZHJhd19wb2ludHMgJGF4aXNfcG9pbnRzWzBdLCA4LCAxLCAiYmxhY2si
CiAgICB2aWV3LmRyYXdfcG9pbnRzICRheGlzX3BvaW50c1sxXSwgOCwgMSwg
ImJsYWNrIgogICAgI2NvbXB1dGUgbWlkZGxlIHBvaW50CiAgICB2PSRheGlz
X3BvaW50c1sxXS0kYXhpc19wb2ludHNbMF0KICAgIHYubGVuZ3RoID0gdi5s
ZW5ndGgvMi4wCiAgICB0PUdlb206OlRyYW5zZm9ybWF0aW9uLnRyYW5zbGF0
aW9uIHYKICAgIEBtaWRwMCA9ICRheGlzX3BvaW50c1swXS50cmFuc2Zvcm0g
dAogICAgdmlldy5kcmF3X3BvaW50cyBAbWlkcDAsIDcsIDQsICJyZWQiCiAg
ICB2aWV3LmxpbmVfc3RpcHBsZSA9ICIuLi4iCiAgICB2aWV3LmRyYXdfbGlu
ZSAkYXhpc19wb2ludHNbMF0sICRheGlzX3BvaW50c1sxXQogIGVuZAogIAog
IGlmICRheGlzX3BvaW50cy5sZW5ndGggPT0gMwogICAgdmlldy5saW5lX3dp
ZHRoID0gMgogICAgdmlldy5kcmF3X3BvaW50cyAkYXhpc19wb2ludHNbMF0s
IDgsIDEsICJibGFjayIKICAgIHZpZXcuZHJhd19wb2ludHMgJGF4aXNfcG9p
bnRzWzFdLCA4LCAxLCAiYmxhY2siCiAgICB2aWV3LmRyYXdfcG9pbnRzICRh
eGlzX3BvaW50c1syXSwgOCwgMSwgImJsYWNrIgogICAgI2NvbXB1dGUgbWlk
ZGxlIHBvaW50CiAgICB2PSRheGlzX3BvaW50c1sxXS0kYXhpc19wb2ludHNb
MF0KICAgIHYubGVuZ3RoID0gdi5sZW5ndGgvMi4wCiAgICB0PUdlb206OlRy
YW5zZm9ybWF0aW9uLnRyYW5zbGF0aW9uIHYKICAgIEBtaWRwMCA9ICRheGlz
X3BvaW50c1swXS50cmFuc2Zvcm0gdAogICAgdmlldy5kcmF3X3BvaW50cyBA
bWlkcDAsIDcsIDQsICJyZWQiCiAgICB2aWV3LmxpbmVfc3RpcHBsZSA9ICIu
Li4iCiAgICB2aWV3LmRyYXdfbGluZSAkYXhpc19wb2ludHNbMF0sICRheGlz
X3BvaW50c1sxXQogICAgI3RlbXAgYXhlcyBkaXNwbGF5CiAgICB2aWV3LmRy
YXdpbmdfY29sb3IgPSAicmVkIgogICAgdmlldy5saW5lX3N0aXBwbGUgPSAi
IgogICAgdi5sZW5ndGggPSB2Lmxlbmd0aC8yLjAKICAgICN2aWV3LmRyYXdf
cG9pbnRzIEBtaWRwMC5vZmZzZXQodiksIDgsIDEsICJibHVlIgogICAgeF9h
eGlzX2VuZCA9IEBtaWRwMC5vZmZzZXQodikKICAgIHZpZXcuZHJhd19saW5l
IEBtaWRwMCx4X2F4aXNfZW5kCiAgICB2ej0oJGF4aXNfcG9pbnRzWzBdIC0g
JGF4aXNfcG9pbnRzWzFdKS5jcm9zcygkYXhpc19wb2ludHNbMF0gLSAkYXhp
c19wb2ludHNbMl0pCiAgICB2ei5sZW5ndGg9di5sZW5ndGgKICAgIHI9R2Vv
bTo6VHJhbnNmb3JtYXRpb24ucm90YXRpb24gQG1pZHAwLHZ6LChNYXRoOjpQ
SSAvIDIuMCkKICAgIHlfYXhpc19lbmQ9eF9heGlzX2VuZC50cmFuc2Zvcm0g
cgogICAgQHZ5PUBtaWRwMC15X2F4aXNfZW5kCiAgICBAdnkubGVuZ3RoPXYu
bGVuZ3RoKjEwCiAgICB2aWV3LmRyYXdpbmdfY29sb3IgPSAiZ3JlZW4iCiAg
ICB2aWV3LmRyYXdfbGluZSBAbWlkcDAseV9heGlzX2VuZAogICAgdmlldy5k
cmF3aW5nX2NvbG9yID0gImJsdWUiCiAgICB6X2F4aXNfZW5kID0gQG1pZHAw
Lm9mZnNldCh2eikKICAgIHZpZXcuZHJhd19saW5lIEBtaWRwMCx6X2F4aXNf
ZW5kCiAgZW5kCiAgdmlldy5sb2NrX2luZmVyZW5jZQplbmQKCiMgb25DYW5j
ZWwgaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgaGl0cyB0aGUgZXNjYXBlIGtl
eQpkZWYgb25DYW5jZWwoZmxhZywgdmlldykKICAgIHNlbGYucmVzZXQodmll
dykKICAgIHNlbGYuZHJhd19nZW9tZXRyeSh2aWV3KSBpZiBAc3RhdGUgPT0g
MwogICAgaWYgJGF4aXNfcG9pbnRzLmxlbmd0aCA8IDMKICAgICAgIyBXZSBn
b3QgbGVzcyB0aGFuIDYgcG9pbnRzCiAgICAgIFVJLm1lc3NhZ2Vib3goJGF4
aXNfcG9pbnRzLmxlbmd0aC50b19zICsgIiBwb2ludHMgYXJlIG5vdCBlbm91
Z2ggdG8gZHJhdyBlbGxpcHNlISIpCiAgICAgIHNlbGYucmVzZXQodmlldykK
ICAgIGVuZAplbmQKCiMgUmVzZXQgdGhlIHRvb2wgYmFjayB0byBpdHMgaW5p
dGlhbCBzdGF0ZQpkZWYgcmVzZXQodmlldykKICAgICMgVGhpcyB2YXJpYWJs
ZSBrZWVwcyB0cmFjayBvZiB3aGljaCBwb2ludCB3ZSBhcmUgY3VycmVudGx5
IGdldHRpbmcKICAgICNAc3RhdGUgPSAwCiAgICBjYXNlIEBzdGF0ZQogICAg
ICB3aGVuIDAKICAgICAgICBTa2V0Y2h1cDo6c2V0X3N0YXR1c190ZXh0KCJG
aXJzdCBwb2ludCAoYmlnIGF4aXMpIiwgU0JfUFJPTVBUKQogICAgICB3aGVu
IDEKICAgICAgICBTa2V0Y2h1cDo6c2V0X3N0YXR1c190ZXh0KCJTZWNvbmQg
cG9pbnQgKGJpZyBheGlzKSIsIFNCX1BST01QVCkKICAgICAgd2hlbiAyCiAg
ICAgICAgU2tldGNodXA6OnNldF9zdGF0dXNfdGV4dCgiU2Vjb25kIHBvaW50
IChzbWFsbCBheGlzKSIsIFNCX1BST01QVCkKICAgICAgICBTa2V0Y2h1cDo6
c2V0X3N0YXR1c190ZXh0KCIiLCBTQl9QUk9NUFQpCiAgICBlbmQKICAgIAog
ICAgIyBjbGVhciB0aGUgSW5wdXRQb2ludAogICAgQGlwMS5jbGVhcgogICAg
aWYoIHZpZXcgKQogICAgICAgIHZpZXcudG9vbHRpcCA9IG5pbAogICAgICAg
IHZpZXcuaW52YWxpZGF0ZSBpZiBAZHJhd24KICAgIGVuZAogICAgQGRyYXdu
ID0gZmFsc2UKICAgIEBkcmFnZ2luZyA9IGZhbHNlCmVuZAoKZGVmIGRyYXdf
Z2VvbWV0cnkodmlldykKICBwdHMgPSBbXQogIGxpc3QxPVsiU2VnbWVudHMi
LCJDdXJ2ZSJdLmpvaW4oInwiKQogIGxpc3QyPVsiWWVzIiwgIk5vIl0uam9p
bigifCIpCiAgbGlzdDM9WyJZZXMiLCAiTm8iXS5qb2luKCJ8IikKICBkcm9w
cz1bbGlzdDEsbGlzdDIsIGxpc3QzXQogIHByb21wdCA9IFsiVHlwZTogIiwi
Q3JlYXRlIGZhY2U6ICIsIktlZXAgZ3JvdXA6ICIsIlByZWNpc2lvbjogIl0K
ICBwYXJhbXMgPSBbJGVsbF90eXBlLCRlbGxfY2YsJGVsbF9rZywgJGVsbF9w
cmVjXQogIHJlc3VsdCA9IGlucHV0Ym94KHByb21wdCwgcGFyYW1zLCBkcm9w
cywgIkVsbGlwc2UgUGFyYW1ldGVycyIpCiAgaWYgcmVzdWx0CiAgICAkZWxs
X3R5cGUgPSByZXN1bHRbMF0KICAgICRlbGxfY2YgPSByZXN1bHRbMV0KICAg
ICRlbGxfcHJlYyA9IHJlc3VsdFszXQogICAgJGVsbF9rZyA9IHJlc3VsdFsy
XQogIGVsc2UKICAgIHJldHVybgogIGVuZAogIAogIHcgPSAoJGF4aXNfcG9p
bnRzWzBdLmRpc3RhbmNlICRheGlzX3BvaW50c1sxXSkgLyAyLjAKICBoID0g
QG1pZHAwLmRpc3RhbmNlICRheGlzX3BvaW50c1szXQogIAogICN4X2F4aXM9
R2VvbTo6VmVjdG9yM2QubmV3IDEsMCwwCiAgI21ham9yX2F4aXM9JGF4aXNf
cG9pbnRzWzBdIC0gJGF4aXNfcG9pbnRzWzFdCiAgI3RoZXRhPXhfYXhpcy5h
bmdsZV9iZXR3ZWVuIG1ham9yX2F4aXMKICAKICAjcm90YXRlID0gR2VvbTo6
VHJhbnNmb3JtYXRpb24ucm90YXRpb24gQG1pZHAwLCAoR2VvbTo6VmVjdG9y
M2QubmV3WzAsMCwxXSksIHRoZXRhCiAgI3JvdGF0ZSA9IEdlb206OlRyYW5z
Zm9ybWF0aW9uLnJvdGF0aW9uIEBtaWRwMCwgbWFqb3JfYXhpcywgdGhldGEK
ICAKICBlbnRpdGllcyA9IFNrZXRjaHVwLmFjdGl2ZV9tb2RlbC5lbnRpdGll
cwogIGVsbF9ncnAgPSBlbnRpdGllcy5hZGRfZ3JvdXAKICBlbGxfZW50cyA9
IGVsbF9ncnAuZW50aXRpZXMKCiAgI2RyYXcgZWxsaXBzZSBhdCBvcmlnaW4g
aW4gZ3JvdXAKICBmb3IgYW5nIGluICgwLi4kZWxsX3ByZWMpCiAgICB4ID0g
dyooTWF0aDo6Y29zIGFuZyooKE1hdGg6OlBJKjIpLyRlbGxfcHJlYykpCiAg
ICB5ID0gaCooTWF0aDo6c2luIGFuZyooKE1hdGg6OlBJKjIpLyRlbGxfcHJl
YykpCiAgICBwID0gR2VvbTo6UG9pbnQzZC5uZXcoeCx5LDApCiAgICAjcC50
cmFuc2Zvcm0hIHRyYW5zbGF0ZQogICAgI3AudHJhbnNmb3JtISByb3RhdGUK
ICAgIHB0cy5wdXNoIHAKICBlbmQKCmlmICRlbGxfdHlwZSA9PSAiQ3VydmUi
CiAgYyA9IGVsbF9lbnRzLmFkZF9jdXJ2ZSBwdHMKICBlZGdlcyA9IGMKICBl
bHNlCiAgZWRnZXMgPSBlbGxfZW50cy5hZGRfZWRnZXMgcHRzCmVuZAppZiAk
ZWxsX2NmID09ICJZZXMiIGFuZCAkZWxsX3R5cGUgPT0gIkN1cnZlIgogIGY9
ZWRnZXNbZWRnZXMubGVuZ3RoLTFdLmZpbmRfZmFjZXMKZW5kCmlmICRlbGxf
Y2YgPT0gIlllcyIgYW5kICRlbGxfdHlwZSA9PSAiU2VnbWVudHMiCiAgZWRn
ZXMuZWFjaCBkbyB8ZXwKICAgIGEgPSBlLmZpbmRfZmFjZXMKICBlbmQKZW5k
CgojdHJhbnNsYXRlIGdyb3VwCiN0cmFuc2xhdGUgPSBHZW9tOjpUcmFuc2Zv
cm1hdGlvbi50cmFuc2xhdGlvbiBAbWlkcDAKI2VsbF9ncnAudHJhbnNmb3Jt
ISB0cmFuc2xhdGUKYXg9JGF4aXNfcG9pbnRzWzFdLSRheGlzX3BvaW50c1sw
XQpheT0kYXhpc19wb2ludHNbM10tJGF4aXNfcG9pbnRzWzBdCmF6PSgkYXhp
c19wb2ludHNbMF0gLSAkYXhpc19wb2ludHNbMV0pLmNyb3NzKCRheGlzX3Bv
aW50c1swXSAtICRheGlzX3BvaW50c1szXSkKdHJhbnM9R2VvbTo6VHJhbnNm
b3JtYXRpb24uYXhlcyBAbWlkcDAsIGF4LCBheSwgYXoKZWxsX2dycC50cmFu
c2Zvcm0hIHRyYW5zCgojZXhwbG9kZSBncm91cAppZiAkZWxsX2tnICE9ICJZ
ZXMiCiAgZWxsX2dycC5leHBsb2RlCmVuZAojZGVsZXRlIHRlbXAgaGVscCBs
aW5lCiRlbGxfaGwuZXJhc2UhCiMgcmVzZXQgcG9pbnRzIGFycmF5IGFuZCBl
eGl0IHRvb2wKICAkYXhpc19wb2ludHM9W10KICBTa2V0Y2h1cC5zZW5kX2Fj
dGlvbiAic2VsZWN0U2VsZWN0aW9uVG9vbDoiCiAgU2tldGNodXAuYWN0aXZl
X21vZGVsLmNvbW1pdF9vcGVyYXRpb24KCmVuZAoKZW5kICMgY2xhc3MKCiMt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBTZWxl
Y3QgdGhlIEVsbGlwc2UgdG9vbCAgICAgICAgICAgICAgIAojLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRlZiBFbGxpcHNlLnRv
b2wKICAgIFNrZXRjaHVwLmFjdGl2ZV9tb2RlbC5zZWxlY3RfdG9vbCBFbGxp
cHNlVG9vbC5uZXcKCmVuZAoKZW5kICMgbW9kdWxlIEVsbGlwc2UKCiMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNob3J0Y3V0IGZvciBz
ZWxlY3RpbmcgdGhlIG5ldyB0b29sIHdpdGhpbiB0aGUgVUkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCgppZiBub3QgJGVsbGlwc2VfbG9hZGVkCiAgbWFpbl9tZW51ID0g
VUkubWVudSgiRHJhdyIpLmFkZF9pdGVtKCJFbGxpcHNlIikgeyBFbGxpcHNl
LnRvb2wgfQplbmQKJGVsbGlwc2VfbG9hZGVkID0gdHJ1ZQo=}.unpack("m")[0]
