IyBUcmFuc2xhdGlvbiBvZiBwYXJhbGxlbC5wb3QgdG8gRnJlbmNoCiMgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBSIEZvdW5kYXRpb24KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgcGFyYWxsZWwgUiBwYWNrYWdlLgojIFBoaWxpcHBlIEdyb3NqZWFuIDxwaGdyb3NqZWFuQHNjaXZpZXdzLm9yZz4sIDIwMDUuCiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IFIgMi4xNC4wXG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAyMC0wMy0yNCAxMDo1My0wNzAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDEzLTAzLTE4IDIyOjA3KzAxMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogUGhpbGlwcGUgR3Jvc2plYW4gPHBoZ3Jvc2plYW5Ac2Npdmlld3Mub3JnPlxuIgoiTGFuZ3VhZ2UtVGVhbTogRnJlbmNoIDxSLWNvcmVAci1wcm9qZWN0Lm9yZz5cbiIKIkxhbmd1YWdlOiBmclxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7cGx1cmFsPShuID4gMSk7XG4iCiJYLUdlbmVyYXRvcjogUG9lZGl0IDEuNS41XG4iCgojOiBmb3JrLmM6MjE1CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAidW5hYmxlIHRvIHRlcm1pbmF0ZSBjaGlsZCBwcm9jZXNzOiAlcyIKbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNy6WVyIHVuZSBub3V2ZWxsZSBicmFuY2hlLCByYWlzb24gcG9zc2libGUgOiAlcyIKCiM6IGZvcmsuYzoyNDIKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJ1bmFibGUgdG8gdGVybWluYXRlIGNoaWxkOiAlcyIKbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNy6WVyIHVuIGNhbmFsIChwaXBlKSIKCiM6IGZvcmsuYzozMjEgZm9yay5jOjYwMgptc2dpZCAibWVtb3J5IGFsbG9jYXRpb24gZXJyb3IiCm1zZ3N0ciAiZXJyZXVyIGQnYWxsb2NhdGlvbiBt6W1vaXJlIgoKIzogZm9yay5jOjM3MyBmb3JrLmM6Mzc3IGZvcmsuYzozODEKIywgYy1mb3JtYXQKbXNnaWQgImludmFsaWQgJyVzJyBhcmd1bWVudCIKbXNnc3RyICIiCgojOiBmb3JrLmM6NDM3Cm1zZ2lkICIiCiJFcnJvciB3aGlsZSBzaHV0dGluZyBkb3duIHBhcmFsbGVsOiB1bmFibGUgdG8gdGVybWluYXRlIHNvbWUgY2hpbGQgIgoicHJvY2Vzc2VzXG4iCm1zZ3N0ciAiIgoKIzogZm9yay5jOjUyNiBmb3JrLmM6NTI5Cm1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIGEgcGlwZSIKbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNy6WVyIHVuIGNhbmFsIChwaXBlKSIKCiM6IGZvcmsuYzo1NTEKIywgYy1mb3JtYXQKbXNnaWQgInVuYWJsZSB0byBmb3JrLCBwb3NzaWJsZSByZWFzb246ICVzIgptc2dzdHIgImltcG9zc2libGUgZGUgY3LpZXIgdW5lIG5vdXZlbGxlIGJyYW5jaGUsIHJhaXNvbiBwb3NzaWJsZSA6ICVzIgoKIzogZm9yay5jOjc0Mwptc2dpZCAib25seSBjaGlsZHJlbiBjYW4gc2VuZCBkYXRhIHRvIHRoZSBtYXN0ZXIgcHJvY2VzcyIKbXNnc3RyICIiCiJzZXVscyBkZXMgcHJvY2Vzc3VzIGVuZmFudHMgcGV1dmVudCBlbnZveWVyIGRlcyBkb25u6WVzIOAgdW4gcHJvY2Vzc3VzIG1h7nRyZSIKCiM6IGZvcmsuYzo3NDUKbXNnaWQgInRoZXJlIGlzIG5vIHBpcGUgdG8gdGhlIG1hc3RlciBwcm9jZXNzIgptc2dzdHIgImF1Y3VuIGNhbmFsIHZlcnMgbGUgcHJvY2Vzc3VzIG1h7nRyZSIKCiM6IGZvcmsuYzo3NDcKbXNnaWQgImNvbnRlbnQgdG8gc2VuZCBtdXN0IGJlIFJBVywgdXNlIHNlcmlhbGl6ZSgpIGlmIG5lZWRlZCIKbXNnc3RyICJsZSBjb250ZW51IOAgZW52b3llciBkb2l0IOp0cmUgUkFXLCB1dGlsaXNleiBzZXJpYWxpemUoKSBzaSBu6WNlc3NhaXJlIgoKIzogZm9yay5jOjc1NiBmb3JrLmM6NzY0IGZvcmsuYzoxMTc0Cm1zZ2lkICJ3cml0ZSBlcnJvciwgY2xvc2luZyBwaXBlIHRvIHRoZSBtYXN0ZXIiCm1zZ3N0ciAiZXJyZXVyIGQn6WNyaXR1cmUsIGZlcm1ldHVyZSBkdSBjYW5hbCB2ZXJzIGxlIHByb2Nlc3N1cyBtYe50cmUiCgojOiBmb3JrLmM6Nzc0Cm1zZ2lkICJvbmx5IHRoZSBtYXN0ZXIgcHJvY2VzcyBjYW4gc2VuZCBkYXRhIHRvIGEgY2hpbGQgcHJvY2VzcyIKbXNnc3RyICIiCiJzZXVsIGxlIHByb2Nlc3N1cyBtYe50cmUgcGV1dCBlbnZveWVyIGRlcyBkb25u6WVzIHZlcnMgdW4gcHJvY2Vzc3VzIGZpbHMiCgojOiBmb3JrLmM6NzgyCiMsIGMtZm9ybWF0Cm1zZ2lkICJjaGlsZCAlZCBkb2VzIG5vdCBleGlzdCIKbXNnc3RyICJsZSBwcm9jZXNzdXMgZmlscyAlZCBuJ2V4aXN0ZSBwYXMiCgojOiBmb3JrLmM6Nzg4Cm1zZ2lkICJ3cml0ZSBlcnJvciIKbXNnc3RyICJlcnJldXIgZCfpY3JpdHVyZSIKCiM6IGZvcmsuYzo4NzQKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3Qgd2FpdCBmb3IgY2hpbGQgJWQgYXMgaXQgZG9lcyBub3QgZXhpc3QiCm1zZ3N0ciAibGUgcHJvY2Vzc3VzIGZpbHMgJWQgbidleGlzdGUgcGFzIgoKIzogZm9yay5jOjkzMyBmb3JrLmM6MTA1MwojLCBjLWZvcm1hdAptc2dpZCAiZXJyb3IgJyVzJyBpbiBzZWxlY3QiCm1zZ3N0ciAiZXJyZXVyICclcycgbG9ycyBkZSBsYSBz6WxlY3Rpb24iCgojOiBmb3JrLmM6MTE0Mwptc2dpZCAiJ21ja2lsbCcgZmFpbGVkIgptc2dzdHIgIidtY2tpbGwnIGEg6WNob3XpIgoKIzogZm9yay5jOjExNTYKbXNnaWQgIidtY2V4aXQnIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBjaGlsZCBwcm9jZXNzIgptc2dzdHIgIidtY2V4aXQnIHBldXQgc2V1bGVtZW50IOp0cmUgdXRpbGlz6SBhdmVjIHVuIHByb2Nlc3N1cyBmaWxzIgoKIzogZm9yay5jOjExODgKbXNnaWQgIidtY2V4aXQnIGZhaWxlZCIKbXNnc3RyICInbWNleGl0JyBhIOljaG916SIKCiM6IGZvcmsuYzoxMjE3IGZvcmsuYzoxMjI2Cm1zZ2lkICJpbnZhbGlkIENQVSBhZmZpbml0eSBzcGVjaWZpY2F0aW9uIgptc2dzdHIgInNw6WNpZmljYXRpb24gZCdhZmZpbml06SBDUFUgaW5jb3JyZWN0ZSIKCiM6IGZvcmsuYzoxMjM3Cm1zZ2lkICJyZXF1ZXN0ZWQgQ1BVIHNldCBpcyB0b28gbGFyZ2UgZm9yIHRoaXMgc3lzdGVtIgptc2dzdHIgImxlIHNldCBkZSBDUFUgZGVtYW5k6SBlc3QgdHJvcCBsYXJnZSBwb3VyIGNlIHN5c3TobWUiCgojOiBmb3JrLmM6MTI2MAptc2dpZCAicmV0cmlldmluZyBDUFUgYWZmaW5pdHkgc2V0IGZhaWxlZCIKbXNnc3RyICJsYSBy6WN1cOlyYXRpb24gZGUgbCdhZmZpbml06SBDUFUgYSDpY2hvdekiCg==