IyBUcmFuc2xhdGlvbiBvZiBtZXRob2RzLnBvdCB0byBGcmVuY2gKIyBDb3B5cmlnaHQgKEMpIDIwMDUgVGhlIFIgRm91bmRhdGlvbgojIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgc2FtZSBsaWNlbnNlIGFzIHRoZSBtZXRob2RzIFIgcGFja2FnZS4KIyBQaGlsaXBwZSBHcm9zamVhbiA8cGhncm9zamVhbkBzY2l2aWV3cy5vcmc+LCAyMDA1LgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBSIDIuMTIuMFxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMjAtMDMtMjQgMTA6NTMtMDcwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAxMy0wMy0xOCAyMjowNSswMTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IFBoaWxpcHBlIEdyb3NqZWFuIDxwaGdyb3NqZWFuQHNjaXZpZXdzLm9yZz5cbiIKIkxhbmd1YWdlLVRlYW06IEZyZW5jaCA8Ui1jb3JlQHItcHJvamVjdC5vcmc+XG4iCiJMYW5ndWFnZTogZnJcbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gPiAxKTtcbiIKIlgtR2VuZXJhdG9yOiBQb2VkaXQgMS41LjVcbiIKCiM6IGNsYXNzX3N1cHBvcnQuYzoyOQptc2dpZCAiY2FsbGluZyB0aGUgQyByb3V0aW5lIHVzZWQgYXMgYW4gaW5pdGlhbGl6ZXIgZm9yICdleHRlcm5hbHB0cicgb2JqZWN0cyIKbXNnc3RyICIiCiJhcHBlbCBkZSBsYSByb3V0aW5lIEMgdXRpbGlz6WUgY29tbWUgaW5pdGlhbGlzYXRpb24gcG91ciBkZXMgb2JqZXRzICIKIidleHRlcm5hbHB0ciciCgojOiBkb19zdWJzdGl0dXRlX2RpcmVjdC5jOjQxCm1zZ2lkICJpbnZhbGlkIGxpc3QgZm9yIHN1YnN0aXR1dGlvbiIKbXNnc3RyICJsaXN0ZSBpbmNvcnJlY3RlIHBvdXIgbGEgc3Vic3RpdHV0aW9uIgoKIzogbWV0aG9kc19saXN0X2Rpc3BhdGNoLmM6MTUxCm1zZ2lkICIiCiJjb3VsZCBub3QgZmluZCB0aGUgc2tlbGV0b24gY2FsbHMgZm9yICdtZXRob2RzJyAocGFja2FnZSBkZXRhY2hlZD8pOiBleHBlY3QgIgoidmVyeSBiYWQgdGhpbmdzIHRvIGhhcHBlbiIKbXNnc3RyICIiCiJpbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbGUgc3F1ZWxldHRlIGRlcyBhcHBlbHMgcG91ciAnbWV0aG9kcycgKHBhY2thZ2UgIgoiZOl0YWNo6SA/KSA6IGF0dGVuZGV6LXZvdXMg4CBjZSBxdWUgZGVzIGVycmV1cnMgZ3JhdmVzIHNlIHByb2R1aXNlbnQiCgojOiBtZXRob2RzX2xpc3RfZGlzcGF0Y2guYzoyMTcKIywgYy1mb3JtYXQKbXNnaWQgIiIKIm5vIFwiYWxsTWV0aG9kc1wiIHNsb3QgZm91bmQgaW4gb2JqZWN0IG9mIGNsYXNzIFwiJXNcIiB1c2VkIGFzIG1ldGhvZHMgbGlzdCAiCiJmb3IgZnVuY3Rpb24gJyVzJyIKbXNnc3RyICIiCiIgcGFzIGRlIFwiYWxsTWV0aG9kc1wiIHNsb3QgdHJvdXbpIGRhbnMgbCdvYmpldCBkZSBjbGFzc2UgXCIlc1wiIHV0aWxpc+kgIgoiY29tbWUgbGlzdGUgZGUgbWV0aG9kZXMgcG91ciBsYSBmb25jdGlvbiAnJXMnIgoKIzogbWV0aG9kc19saXN0X2Rpc3BhdGNoLmM6NDMwCiMsIGMtZm9ybWF0Cm1zZ2lkICJubyBnZW5lcmljIGZ1bmN0aW9uIGRlZmluaXRpb24gZm91bmQgZm9yICclcyciCm1zZ3N0ciAicGFzIGRlIGTpZmluaXRpb24gZGUgZm9uY3Rpb24gZ+lu6XJpcXVlIHRyb3V26WUgcG91ciAnJXMnIgoKIzogbWV0aG9kc19saXN0X2Rpc3BhdGNoLmM6NDMzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJubyBnZW5lcmljIGZ1bmN0aW9uIGRlZmluaXRpb24gZm91bmQgZm9yICclcycgaW4gdGhlIHN1cHBsaWVkIGVudmlyb25tZW50Igptc2dzdHIgIiIKInBhcyBkZSBk6WZpbml0aW9uIGRlIGZvbmN0aW9uIGfpbulyaXF1ZSB0cm91dullIHBvdXIgJyVzJyBkYW5zICIKImwnZW52aXJvbm5lbWVudCBmb3VybmkiCgojOiBtZXRob2RzX2xpc3RfZGlzcGF0Y2guYzo0NjgKIywgYy1mb3JtYXQKbXNnaWQgIiIKImludmFsaWQgZ2VuZXJpYyBmdW5jdGlvbiBvYmplY3QgZm9yIG1ldGhvZCBzZWxlY3Rpb24gZm9yIGZ1bmN0aW9uICclcyc6ICIKImV4cGVjdGVkIGEgZnVuY3Rpb24gb3IgYSBwcmltaXRpdmUsIGdvdCBhbiBvYmplY3Qgb2YgY2xhc3MgXCIlc1wiIgptc2dzdHIgIiIKIm9iamV0IGRlIGZvbmN0aW9uIGfpbulyaXF1ZSBpbmNvcnJlY3QgcG91ciBsYSBz6WxlY3Rpb24gZGUgbel0aG9kZSBkZSBsYSAiCiJmb25jdGlvbiAnJXMnIDogdW5lIGZvbmN0aW9uIG91IHVuZSBwcmltaXRpdmUg6XRhaXQgYXR0ZW5kdWUgZXQgdW4gb2JqZXQgZGUgIgoiY2xhc3NlIFwiJXNcIiBlc3QgcmVudm956SIKCiM6IG1ldGhvZHNfbGlzdF9kaXNwYXRjaC5jOjQ4MwojLCBjLWZvcm1hdAptc2dpZCAibm8gZGlyZWN0IG9yIGluaGVyaXRlZCBtZXRob2QgZm9yIGZ1bmN0aW9uICclcycgZm9yIHRoaXMgY2FsbCIKbXNnc3RyICJwYXMgZGUgbel0aG9kZSBkaXJlY3RlIG91IGjpcml06WUgcG91ciBsYSBmb25jdGlvbiAnJXMnIGRhbnMgY2V0IGFwcGVsIgoKIzogbWV0aG9kc19saXN0X2Rpc3BhdGNoLmM6NTEzIG1ldGhvZHNfbGlzdF9kaXNwYXRjaC5jOjEwNjIKbXNnaWQgImludmFsaWQgb2JqZWN0IChub24tZnVuY3Rpb24pIHVzZWQgYXMgbWV0aG9kIgptc2dzdHIgIiIKIm9iamV0IGluY29ycmVjdCAoYXV0cmUgY2hvc2UgcXUndW5lIGZvbmN0aW9uKSB1dGlsaXPpIGRhbnMgY2V0dGUgbel0aG9kZSIKCiM6IG1ldGhvZHNfbGlzdF9kaXNwYXRjaC5jOjUzNAojLCBjLWZvcm1hdAptc2dpZCAiY291bGQgbm90IGZpbmQgc3ltYm9sICclcycgaW4gZnJhbWUgb2YgY2FsbCIKbXNnc3RyICJpbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbGUgc3ltYm9sZSAnJXMnIGRhbnMgbGUgY2FkcmUgZGUgbCdhcHBlbCIKCiM6IG1ldGhvZHNfbGlzdF9kaXNwYXRjaC5jOjU0MgojLCBjLWZvcm1hdAptc2dpZCAiIgoiaW52YWxpZCBzeW1ib2wgaW4gY2hlY2tpbmcgZm9yIG1pc3NpbmcgYXJndW1lbnQgaW4gbWV0aG9kIGRpc3BhdGNoOiBleHBlY3RlZCAiCiJhIG5hbWUsIGdvdCBhbiBvYmplY3Qgb2YgY2xhc3MgXCIlc1wiIgptc2dzdHIgIiIKInN5bWJvbGUgaW5jb3JyZWN0IGRhbnMgbGEgdulyaWZpY2F0aW9uIGRlcyBhcmd1bWVudHMgbWFucXVhbnRzIGRhbnMgbGUgIgoiZGlzcGF0Y2hldXIgZGUgbel0aG9kZSA6IHVuIG5vbSBlc3QgYXR0ZW5kdSBldCB1biBvYmpldCBkZSBjbGFzc2UgXCIlc1wiIGVzdCAiCiJyZW52b3npIgoKIzogbWV0aG9kc19saXN0X2Rpc3BhdGNoLmM6NTQ1Cm1zZ2lkICJ1c2Ugb2YgTlVMTCBlbnZpcm9ubWVudCBpcyBkZWZ1bmN0Igptc2dzdHIgImwndXRpbGlzYXRpb24gZGUgbCdlbnZpcm9ubmVtZW50IE5VTEwgbidlc3QgcGx1cyBhdXRvcmlz6WUiCgojOiBtZXRob2RzX2xpc3RfZGlzcGF0Y2guYzo1NDkKIywgYy1mb3JtYXQKbXNnaWQgIiIKImludmFsaWQgZW52aXJvbm1lbnQgaW4gY2hlY2tpbmcgZm9yIG1pc3NpbmcgYXJndW1lbnQsICclcycsIGluIG1ldGhvZHMgIgoiZGlzcGF0Y2g6IGdvdCBhbiBvYmplY3Qgb2YgY2xhc3MgXCIlc1wiIgptc2dzdHIgIiIKImVudmlyb25ubWVuZXQgaW5jb3JyZWN0IGxvcnMgZGUgbGEgdulyaWZpY2F0aW9uIGRlIGwnYXJndW1lbnQgbWFucXVhbnQsICIKIiclcycsIGRhbnMgbGUgZGlzcGF0Y2hldXIgZGUgbel0aG9kZXMgOiB1biBvYmpldCBkZSBjbGFzc2UgXCIlc1wiIGVzdCByZW52b3npIgoKIzogbWV0aG9kc19saXN0X2Rpc3BhdGNoLmM6NTc1CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJvYmplY3Qgb2YgY2xhc3MgXCIlc1wiIHVzZWQgYXMgbWV0aG9kcyBsaXN0IGZvciBmdW5jdGlvbiAnJXMnICggbm8gIgoiJ2FyZ3VtZW50JyBzbG90KSIKbXNnc3RyICIiCiJsJ29iamV0IGRlIGNsYXNzZSBcIiVzXCIgdXRpbGlz6SBjb21tZSBt6XRob2RlIHBvdXIgbGEgZm9uY3Rpb24gJyVzJyAocGFzIGRlICIKInNsb3QgJ2FyZ3VtZW50JykiCgojOiBtZXRob2RzX2xpc3RfZGlzcGF0Y2guYzo1ODYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIihpbiBzZWxlY3RpbmcgYSBtZXRob2QgZm9yIGZ1bmN0aW9uICclcycpICcuLi4nIGFuZCByZWxhdGVkIHZhcmlhYmxlcyBjYW5ub3QgIgoiYmUgdXNlZCBmb3IgbWV0aG9kcyBkaXNwYXRjaCIKbXNnc3RyICIiCiIobG9ycyBkZSBsYSBz6WxlY3Rpb24gZCd1bmUgbel0aG9kZSBwb3VyIGxhIGZvbmN0aW9uICclcycpICcuLi4nIGV0IGxlcyAiCiJ2YXJpYWJsZXMgY29ycmVzcG9uZGFudGVzIG5lIHBldXZlbnQgIOp0cmUgdXRpbGlz6XMgcG91ciBsZSBkaXNwYXRjaGluZyBkZXMgIgoibel0aG9kZXMiCgojOiBtZXRob2RzX2xpc3RfZGlzcGF0Y2guYzo1ODkKIywgYy1mb3JtYXQKbXNnaWQgIiIKIihpbiBzZWxlY3RpbmcgYSBtZXRob2QgZm9yIGZ1bmN0aW9uICclcycpIHRoZSAnZW52aXJvbm1lbnQnIGFyZ3VtZW50IGZvciAiCiJkaXNwYXRjaCBtdXN0IGJlIGFuIFIgZW52aXJvbm1lbnQ7IGdvdCBhbiBvYmplY3Qgb2YgY2xhc3MgXCIlc1wiIgptc2dzdHIgIiIKIihsb3JzIGRlIGxhIHPpbGVjdGlvbiBkJ3VuZSBt6XRob2RlIHBvdXIgbGEgZm9uY3Rpb24gJyVzJykgbCdhcmd1bWVudCAiCiInZW52aXJvbm5lbWVudCcgcG91ciBsZSBkaXNwYXRjaGluZyBkb2l0IOp0cmUgdW4gZW52aXJvbm5lbWVudCBSIDsgVW4gb2JqZXQgIgoiZGUgY2xhc3NlIFwiJXNcIiBlc3QgcmVudm956SIKCiM6IG1ldGhvZHNfbGlzdF9kaXNwYXRjaC5jOjYwMyBtZXRob2RzX2xpc3RfZGlzcGF0Y2guYzo2MTUKIzogbWV0aG9kc19saXN0X2Rpc3BhdGNoLmM6MTAwOAojLCBjLWZvcm1hdAptc2dpZCAiIgoiZXJyb3IgaW4gZXZhbHVhdGluZyB0aGUgYXJndW1lbnQgJyVzJyBpbiBzZWxlY3RpbmcgYSBtZXRob2QgZm9yIGZ1bmN0aW9uICIKIiclcyc6ICVzIgptc2dzdHIgIiIKImVycmV1ciBkJ+l2YWx1YXRpb24gZGUgbCdhcmd1bWVudCAnJXMnIGxvcnMgZGUgbGEgc+lsZWN0aW9uIGQndW5lIG3pdGhvZGUgIgoicG91ciBsYSBmb25jdGlvbiAnJXMnIDogJXMiCgojOiBtZXRob2RzX2xpc3RfZGlzcGF0Y2guYzo2MjMKIywgYy1mb3JtYXQKbXNnaWQgIm5vIG1hdGNoaW5nIG1ldGhvZCBmb3IgZnVuY3Rpb24gJyVzJyAoYXJndW1lbnQgJyVzJywgd2l0aCBjbGFzcyBcIiVzXCIpIgptc2dzdHIgIiIKInBhcyBkZSBt6XRob2RlIGNvcnJlc3BvbmRhbnRlIHBvdXIgbGEgZm9uY3Rpb24gJyVzJyAoYXJndW1lbnQgJyVzJywgYXZlYyBsYSAiCiJjbGFzc2UgXCIlc1wiKSIKCiM6IG1ldGhvZHNfbGlzdF9kaXNwYXRjaC5jOjYzMAojLCBjLWZvcm1hdAptc2dpZCAiIgoicmVjdXJzaXZlIHVzZSBvZiBmdW5jdGlvbiAnJXMnIGluIG1ldGhvZCBzZWxlY3Rpb24sIHdpdGggbm8gZGVmYXVsdCBtZXRob2QiCm1zZ3N0ciAiIgoidXRpbGlzYXRpb24gculjdXJzaXZlIGRlIGxhIGZvbmN0aW9uICclcycgZGFucyBsYSBz6WxlY3Rpb24gZGUgbel0aG9kZSwgYXZlYyAiCiJhdWN1bmUgbel0aG9kZSBk6WZpbmllIHBhciBk6WZhdXQiCgojOiBtZXRob2RzX2xpc3RfZGlzcGF0Y2guYzo3MDEKIywgYy1mb3JtYXQKbXNnaWQgImVycm9yIGluIGV2YWx1YXRpbmcgYSAncHJpbWl0aXZlJyBuZXh0IG1ldGhvZDogJXMiCm1zZ3N0ciAiIgoiZXJyZXVyIGxvcnMgZGUgbCfpdmFsdWF0aW9uIGQndW5lICdwcmltaXRpdmUnIGNvbW1lIG3pdGhvZGUgc3VpdmFudGUgOiAlcyIKCiM6IG1ldGhvZHNfbGlzdF9kaXNwYXRjaC5jOjgwMQojLCBjLWZvcm1hdAptc2dpZCAiJyVzJyBtdXN0IGJlIGEgc2luZ2xlIHN0cmluZyAoZ290IGEgY2hhcmFjdGVyIHZlY3RvciBvZiBsZW5ndGggJWQpIgptc2dzdHIgIiIKIiclcycgZG9pdCDqdHJlIHVuZSBjaGHubmUgZGUgY2FyYWN06HJlcyB1bmlxdWUgKHVuIHZlY3RldXIgZGUgY2FyYWN06HJlcyBkZSAiCiJsb25ndWV1ciAlZCBlc3QgcmVudm956SkiCgojOiBtZXRob2RzX2xpc3RfZGlzcGF0Y2guYzo4MDUKIywgYy1mb3JtYXQKbXNnaWQgIiclcycgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmc7IGdvdCBhbiBlbXB0eSBzdHJpbmciCm1zZ3N0ciAiIgoiJyVzJyBkb2l0IOp0cmUgdW5lIGNoYe5uZSBkZSBjYXJhY3TocmVzIG5vbiB2aWRlIDsgVW5lIGNoYe5uZSBkZSBjYXJhY3TocmVzICIKInZpZGUgZXN0IHJlbnZveellIgoKIzogbWV0aG9kc19saXN0X2Rpc3BhdGNoLmM6ODA5CiMsIGMtZm9ybWF0Cm1zZ2lkICInJXMnIG11c3QgYmUgYSBzaW5nbGUgc3RyaW5nIChnb3QgYW4gb2JqZWN0IG9mIGNsYXNzIFwiJXNcIikiCm1zZ3N0ciAiIgoiJyVzJyBkb2l0IOp0cmUgdW5lIGNoYe5uZSBkZSBjYXJhY3TocmVzIHVuaXF1ZSAodW4gb2JqZXQgZGUgY2xhc3NlIFwiJXNcIiAiCiJlc3QgcmVudm956SkiCgojOiBtZXRob2RzX2xpc3RfZGlzcGF0Y2guYzo4ODYKbXNnaWQgImNsYXNzIHNob3VsZCBiZSBlaXRoZXIgYSBjaGFyYWN0ZXItc3RyaW5nIG5hbWUgb3IgYSBjbGFzcyBkZWZpbml0aW9uIgptc2dzdHIgIiIKImNsYXNzIGRvaXQg6nRyZSBzb2l0IHVuIG5vbSBzb3VzIGZvcm1lIGRlIGNoYe5uZSBkZSBjYXJhY3TocmVzLCBzb2l0IHVuZSAiCiJk6WZpbml0aW9uIGRlIGNsYXNzZSIKCiM6IG1ldGhvZHNfbGlzdF9kaXNwYXRjaC5jOjk2NgojLCBjLWZvcm1hdAptc2dpZCAiZmFpbGVkIHRvIGdldCB0aGUgZ2VuZXJpYyBmb3IgdGhlIHByaW1pdGl2ZSBcIiVzXCIiCm1zZ3N0ciAiSW1wb3NzaWJsZSBkZSB0cm91dmVyIGxhIGZvbmN0aW9uIGfpbulyaXF1ZSBwb3VyIGxhIHByaW1pdGl2ZSBcIiVzXCIiCgojOiBtZXRob2RzX2xpc3RfZGlzcGF0Y2guYzo5NzMKIywgYy1mb3JtYXQKbXNnaWQgIiIKImV4cGVjdGVkIGEgZ2VuZXJpYyBmdW5jdGlvbiBvciBhIHByaW1pdGl2ZSBmb3IgZGlzcGF0Y2gsIGdvdCBhbiBvYmplY3Qgb2YgIgoiY2xhc3MgXCIlc1wiIgptc2dzdHIgIiIKInVuZSBmb25jdGlvbiBn6W7pcmlxdWUgb3UgdW5lIHByaW1pdGl2ZSDpdGFpdCBhdHRlbmR1ZSBwb3VyIGxlIGRpc3BhdGNoaW5nLCAiCiJ1biBvYmpldCBkZSBjbGFzc2UgXCIlc1wiIGVzdCByZW52b3npIOAgbGEgcGxhY2UiCgojfiBtc2dpZCAiIgojfiAiaW4gcHJvY2Vzc2luZyAnY2FsbE5leHRNZXRob2QnLCBmb3VuZCBhICcuLi4nIGluIHRoZSBtYXRjaGVkIGNhbGwsIGJ1dCBubyAiCiN+ICJjb3JyZXNwb25kaW5nICcuLi4nIGFyZ3VtZW50IgojfiBtc2dzdHIgIiIKI34gImxvcnMgZHUgY2FsY3VsIGRlICdjYWxsTmV4dE1ldGhvZCcsIHVuICcuLi4nIGVzdCB0cm91dukgZGFucyBsJ2FwcGVsICIKI34gImNvcnJlc3BvbmRhbnQsIG1haXMgYXVjdW4gJy4uLicgbidlc3QgdHJvdXbpIGRhbnMgbCdhcmd1bWVudCBlbiBxdWVzdGlvbiIKCiN+IG1zZ2lkICIiCiN+ICJTIGxhbmd1YWdlIG1ldGhvZCBzZWxlY3Rpb24gZ290IGFuIGVycm9yIHdoZW4gY2FsbGVkIGZyb20gaW50ZXJuYWwgIgojfiAiZGlzcGF0Y2ggZm9yIGZ1bmN0aW9uICclcyciCiN+IG1zZ3N0ciAiIgojfiAibGEgbel0aG9kZSBkZSBz6WxlY3Rpb24gZHUgbGFuZ2FnZSBTIGEgZ+lu6XLpIHVuZSBlcnJldXIgbG9ycyBkZSBsJ2FwcGVsICIKI34gImR1IGRpc3BhdGNoZXVyIGludGVybmUgcG91ciBsYSBmb25jdGlvbiAnJXMnIgoKI34gbXNnaWQgIiIKI34gImludGVybmFsIGVycm9yIGluICdjYWxsTmV4dE1ldGhvZCc6ICcubmV4dE1ldGhvZCcgd2FzIG5vdCBhc3NpZ25lZCBpbiB0aGUgIgojfiAiZnJhbWUgb2YgdGhlIG1ldGhvZCBjYWxsIgojfiBtc2dzdHIgIiIKI34gImVycmV1ciBpbnRlcm5lIGRhbnMgJ2NhbGxOZXh0TWV0aG9kJyA6ICcubmV4dE1ldGhvZCcgbidhIHBhcyDpdOkgYXNzaWdu6SAiCiN+ICJkYW5zIGxlIGNhZHJlIGRlIGxhIG3pdGhvZGUgZCdhcHBlbCIKCiN+IG1zZ2lkICIiCiN+ICJHZW5lcmljIFwiJXNcIiBzZWVtcyBub3QgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkIGZvciB0YWJsZSBkaXNwYXRjaC0tLSIKI34gIm5lZWQgdG8gaGF2ZSAuU2lnQXJncyBhbmQgLkFsbE10YWJsZSBhc3NpZ25lZCBpbiBpdHMgZW52aXJvbm1lbnQiCiN+IG1zZ3N0ciAiIgojfiAiTGEgZm9uY3Rpb24gZ+lu6XJpcXVlIFwiJXNcIiBuZSBzZW1ibGUgcGFzIGF2b2lyIOl06SBpbml0aWFsaXPpZSBwb3VyIGxhICIKI34gInRhYmxlIGRlIGRpc3BhdGNoaW5nLS0uU2lnQXJncyBldCAuQWxsTXRhYmxlIGRvaXZlbnQg6nRyZSBhc3NpZ27pcyBkYW5zICIKI34gInNvbiBlbnZpcm9ubmVtZW50IgoKI34gbXNnaWQgIm5vICclcycgb2JqZWN0IGluIGVudmlyb25tZW50IG9mIGZ1bmN0aW9uICclcyciCiN+IG1zZ3N0ciAicGFzIGQnb2JqZXQgJyVzJyBkYW5zIGwnZW52aXJvbm5lbWVudCBkZSBsYSBmb25jdGlvbiAnJXMnIgo=