6L2s6IeqIE5pY29sYXMg5aSn5L2s55qECiAg5pWI5p6c4oaTCiAg77yI5LiN55+l6YGT5Li65LuA5LmI5LiK5Lyg5LiN5LqG5pWI5p6c5Zu+77yJCiAg5YW35L2T5rqQ56CB5Zyo6ZmE5Lu2ICAg5LuF5L6b5Y+C6ICD5a2m5LmgCmNzc+a6kOeggeS4iwoKPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLXByaW1hcnkiPkBtZWRpYTwvc3Bhbj4gc2NyZWVuLCBwcm9qZWN0aW9uIHsKCmh0bWwsIGJvZHksIGRpdiwgaDEsIGgyLAp1bCwgbGksIGRsLCBkdCwgZGQsIHAsIGEgICAgICAgICAgICAgICB7cGFkZGluZzowOyBtYXJnaW46MDt9CmJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpibG9jazsgd2lkdGg6OTYwcHg7IHBhZGRpbmc6NDBweCAwOyBtYXJnaW46MCBhdXRvOyB0ZXh0LWFsaWduOnJpZ2h0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDoxNnB4LzEuNSBDYW1icmlhLCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBjb2xvcjojNjI2NjY4OyBiYWNrZ3JvdW5kOiMwMDA7fQpoZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6NTAwOyBkaXNwbGF5OmJsb2NrO30KaGVhZGVyIGgxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZvbnQtc2l6ZTo0MHB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE7IGNvbG9yOiNlZWU1YTI7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNzczMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtc2hhZG93OjJweCAycHggIzMyMzEyYjt9CmhlYWRlciBoMTphZnRlciAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50OiI6IFNjYWxlIG1vZGVsIjt9CmhlYWRlciBoMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttYXJnaW46MTBweCAwIDEwcHggMjUwcHg7IGZvbnQtc2l6ZToxOHB4OyBsaW5lLWhlaWdodDoxLjI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzZhNjk1Zjt9CmhlYWRlciBoMiBhICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb2xvcjojNzc3O30KaGVhZGVyIGgyOmFmdGVyICAgICAgICAgICAgICAgICAgICAgICAge2Rpc3BsYXk6YmxvY2s7IG1hcmdpbjoxMHB4IDAgMDsgZm9udC1zaXplOjE2cHg7IGNvbG9yOiM4ODg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiJQbGFuZXQgZGlhbWV0ZXJzIDFweCA6IDEsMjIwIGttIC8gRGlzdGFuY2UgZnJvbSBzdW4gMXB4IDogNywxMjUsMDAwIGttIC8gT3JiaXRhbCBwZXJpb2QgMXMgOiA0ZCI7fQpoZWFkZXIgcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Zm9udC1zaXplOjEzcHg7IGNvbG9yOiMzMzM3M2Q7fQphYmJyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ym9yZGVyOm5vbmU7fQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPT0gU09MQVIgU1lTVEVNCioqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNzb2xhcnN5c3RlbSAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjY0MHB4OyBsaXN0LXN0eWxlOm5vbmU7fQojc29sYXJzeXN0ZW0gbGkJICAgICAgICAgICAgICAgICAgICAgICB7ZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbjowIC01cHggMCAwO30KCi8qIGNyZWF0ZSB0aGUgaGVhZGluZ3MgZm9yIHRoZSBsaXN0CiAgIHRoaXMgY291bGQgdXNlIHRoZSB0aXRsZSBhdHRyaWJ1dGUgZm9yIG1vcmUgY29tcGxleCBoZWFkaW5ncyAqLwojc29sYXJzeXN0ZW0gbGk6YmVmb3JlICAgICAgICAgICAgICAgICB7Y29udGVudDphdHRyKGlkKTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjIwMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6MjBweCA1cHggMjVweCAxNXB4OyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6MThweDsgZm9udC13ZWlnaHQ6Ym9sZDsgY3Vyc29yOnBvaW50ZXI7IGNvbG9yOiMzODYwNzc7fQoKLyogdGhlIG9yYml0YWwgcGF0aCAqLwojc29sYXJzeXN0ZW0gaDIgICAgICAgICAgICAgICAgICAgICAgICB7cG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MCU7IGxlZnQ6LTUwJTsgYm9yZGVyOjFweCBzb2xpZCAjMzk0MDU3OyB0ZXh0LWluZGVudDotOTk5OXB4OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjpsZWZ0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY3NzMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjUwJTsgLyogcmVkZWNsYXJlIGluIHB4IGZvciBlYWNoIHBsYW5ldCB0byBnZXQgd29ya2luZyBpbiBTYWZhcmkgNCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3JkZXItcmFkaXVzOjUwJTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czo1MCU7IC8qIHJlZGVjbGFyZSBpbiBweCBmb3IgZWFjaCBwbGFuZXQgdG8gYXZvaWQgT3BlcmEgMTAuNSBidWcgNCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjE1cyBlYXNlLWluOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1vei10cmFuc2l0aW9uOmFsbCAwLjE1cyBlYXNlLWluOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtby10cmFuc2l0aW9uOmFsbCAwLjE1cyBlYXNlLWluOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOmFsbCAwLjE1cyBlYXNlLWluO30KCi8qIGNyZWF0ZSB0aGUgcGxhbmV0ICovCiNzb2xhcnN5c3RlbSBoMjpiZWZvcmUgICAgICAgICAgICAgICAgIHtjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNzczMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7IC8qIHJlZGVjbGFyZSBpbiBweCBmb3IgZWFjaCBwbGFuZXQgdG8gZ2V0IHdvcmtpbmcgaW4gU2FmYXJpIDQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czo1MCU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6NTAlOyAvKiByZWRlY2xhcmUgaW4gcHggZm9yIGVhY2ggcGxhbmV0IHRvIGF2b2lkIE9wZXJhIDEwLjUgYnVnIDQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAtMnB4IDAgMXB4IHJnYmEoMCwwLDAsMC41KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm94LXNoYWRvdzppbnNldCAtMnB4IDAgMXB4IHJnYmEoMCwwLDAsMC41KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzppbnNldCAtMnB4IDAgMXB4IHJnYmEoMCwwLDAsMC41KTt9CgovKiBoaWdobGlnaHQgdGhlIG9yYml0ICovCiNzb2xhcnN5c3RlbSBsaTpob3ZlciBoMiAgICAgICAgICAgICAgIHtib3JkZXItY29sb3I6I2FhNDIwMDt9CgovKiBjb250cm9sIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICovCiNzb2xhcnN5c3RlbSBsaSBkbCAgICAgICAgICAgICAgICAgICAgIHt2aXNpYmlsaXR5OmhpZGRlbjsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MjAwOyB0b3A6NDBweDsgcmlnaHQ6MDsgd2lkdGg6NjYwcHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOjIwcHg7IGJvcmRlcjoxcHggc29saWQgIzFjMjAzYzsgZm9udC1zaXplOjEzcHg7IGxpbmUtaGVpZ2h0OjEuNTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246bGVmdDsgY29sb3I6Izc2Nzg5MjsgYmFja2dyb3VuZDojMDBmMTMyYzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNzczMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6MDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6cmdiYSgxNSwxOSw0NCwwLjkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czo1cHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6NXB4O30KI3NvbGFyc3lzdGVtIGR0LAogI3NvbGFyc3lzdGVtIGRkICAgICAgICAgICAgICAgICAgICAgICB7ZGlzcGxheTppbmxpbmU7IGNvbG9yOiM4ODg7fQojc29sYXJzeXN0ZW0gZHQ6YWZ0ZXIgICAgICAgICAgICAgICAgICB7Y29udGVudDoiOiAiO30KI3NvbGFyc3lzdGVtIGR0OmZpcnN0LWNoaWxkICAgICAgICAgICAge2Rpc3BsYXk6bm9uZTt9CiNzb2xhcnN5c3RlbSBkdDpmaXJzdC1jaGlsZCtkZCAgICAgICAgIHtkaXNwbGF5OmJsb2NrOyBtYXJnaW46MCAwIDVweDsgY29sb3I6Izc2Nzg5Mjt9Cgojc29sYXJzeXN0ZW0gbGk6aG92ZXIgZGwgICAgICAgICAgICAgICB7dmlzaWJpbGl0eTp2aXNpYmxlOyB0b3A6NjBweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNzczMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6MTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlLWluOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2UtaW47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZS1pbjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlLWluO30KI3NvbGFyc3lzdGVtIGxpOmhvdmVyOmJlZm9yZSAgICAgICAgICAge2NvbG9yOiNhYTQyMDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjc3MzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjA4KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOnNjYWxlKDEuMDgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtby10cmFuc2Zvcm06c2NhbGUoMS4wOCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTpzY2FsZSgxLjA4KTt9Cgojc29sYXJzeXN0ZW0gbGkgZGQgYSAgICAgICAgICAgICAgICAgICAge2NvbG9yOiM3Nzc7fQoKLyogU1VOCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCiNzdW4gaDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt3aWR0aDo1NzBweDsgaGVpZ2h0OjU3MHB4OyBib3JkZXI6bm9uZTsgbWFyZ2luOi0yODVweCAwIDAgMHB4O30KI3N1biBoMjpiZWZvcmUgICAgICAgICAgICAgICAgICAgICAgICAge3otaW5kZXg6MTAwOyB0b3A6MDsgbGVmdDowOyB3aWR0aDo1NzBweDsgaGVpZ2h0OjU3MHB4OyBib3JkZXI6bm9uZTsgYmFja2dyb3VuZDojZmMzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY3NzMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgY2VudGVyIGxlZnQsIGNlbnRlciByaWdodCwgY29sb3Itc3RvcCgwLjIyLCByZ2IoMjA0LDE1MywwKSksIGNvbG9yLXN0b3AoMSwgcmdiKDI1NSwyMTksMTEyKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgbGVmdCwgcmdiKDIwNCwxNTMsMCkgMjIlLCByZ2IoMjU1LDIxOSwxMTIpIDEwMCUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjI4NXB4OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOjI4NXB4OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCA1MHB4ICNjOTA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbW96LWJveC1zaGFkb3c6MCAwIDUwcHggI2M5MDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzowIDAgNTBweCAjYzkwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjJzIGVhc2UtaW47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbW96LXRyYW5zaXRpb246YWxsIDAuMnMgZWFzZS1pbjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW8tdHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlLWluOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOmFsbCAwLjJzIGVhc2UtaW47fQojc3VuIGRkW2l0ZW1wcm9wPWRpYW1ldGVyXTphZnRlciAgICAgICB7Y29udGVudDoiICg1NzBweCkiO30KCi8qIE1FUkNVUlkgLSBkaXN0YW5jZTo4cHggOyBkaWFtZXRlcjoycHgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKI21lcmN1cnkgaDIgICAgICAgICAgICAgICAgICAgICAgICAgICAge3otaW5kZXg6OTk7IHdpZHRoOjU4NnB4OyBoZWlnaHQ6NTg2cHg7IG1hcmdpbjotMjkzcHggMCAwIC0xMHB4OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY3NzMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjI5M3B4OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOjI5M3B4O30KI21lcmN1cnkgaDI6YmVmb3JlICAgICAgICAgICAgICAgICAgICAge3RvcDoyOTJweDsgcmlnaHQ6LTJweDsgd2lkdGg6MnB4OyBoZWlnaHQ6MnB4OyBiYWNrZ3JvdW5kOiNmZmY7fQojbWVyY3VyeSBkZFtpdGVtcHJvcD1kaWFtZXRlcl06YWZ0ZXIgICB7Y29udGVudDoiICgycHgpIC8gIjt9CiNtZXJjdXJ5IGRkW2l0ZW1wcm9wPWRpc3RhbmNlXTphZnRlciAgIHtjb250ZW50OiIgKDhweCkgLyAiO30KI21lcmN1cnkgZGRbaXRlbXByb3A9b3JiaXRdOmFmdGVyICAgICAge2NvbnRlbnQ6IiAoMjJzKSI7fQoKLyogVkVOVVMgLSBkaXN0YW5jZToxNnB4IDsgZGlhbWV0ZXI6NXB4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCiN2ZW51cyBoMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt6LWluZGV4Ojk4OyB3aWR0aDo2MDJweDsgaGVpZ2h0OjYwMnB4OyBtYXJnaW46LTMwMXB4IDAgMCAtMThweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNzczMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czozMDFweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czozMDFweDt9CiN2ZW51cyBoMjpiZWZvcmUgICAgICAgICAgICAgICAgICAgICAgIHt0b3A6Mjk5cHg7IHJpZ2h0Oi0zcHg7IHdpZHRoOjVweDsgaGVpZ2h0OjVweDsgYmFja2dyb3VuZDojYmY4NjM5OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY3NzMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czozcHg7fQojdmVudXMgZGRbaXRlbXByb3A9ZGlhbWV0ZXJdOmFmdGVyICAgICB7Y29udGVudDoiICg1cHgpIC8gIjt9CiN2ZW51cyBkZFtpdGVtcHJvcD1kaXN0YW5jZV06YWZ0ZXIgICAgIHtjb250ZW50OiIgKDE2cHgpIC8gIjt9CiN2ZW51cyBkZFtpdGVtcHJvcD1vcmJpdF06YWZ0ZXIgICAgICAgIHtjb250ZW50OiIgKDU2cykiO30KCi8qIEVBUlRIIC0gZGlzdGFuY2U6MjJweCA7IGRpYW1ldGVyOjVweAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgojZWFydGggaDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ei1pbmRleDo5Nzsgd2lkdGg6NjE0cHg7IGhlaWdodDo2MTRweDsgbWFyZ2luOi0zMDdweCAwIDAgLTI0cHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjc3MzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6MzA3cHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6MzA3cHg7fQojZWFydGggaDI6YmVmb3JlICAgICAgICAgICAgICAgICAgICAgICB7dG9wOjMwNXB4OyByaWdodDotM3B4OyB3aWR0aDo1cHg7IGhlaWdodDo1cHg7IGJhY2tncm91bmQ6IzA2YzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNzczMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6M3B4O30KI2VhcnRoIGRkW2l0ZW1wcm9wPWRpYW1ldGVyXTphZnRlciAgICAge2NvbnRlbnQ6IiAoNXB4KSAvICI7fQojZWFydGggZGRbaXRlbXByb3A9ZGlzdGFuY2VdOmFmdGVyICAgICB7Y29udGVudDoiICgyMnB4KSAvICI7fQojZWFydGggZGRbaXRlbXByb3A9b3JiaXRdOmFmdGVyICAgICAgICB7Y29udGVudDoiICg5MXMpIjt9CgovKiBNQVJTIC0gZGlzdGFuY2U6MzJweCA7IGRpYW1ldGVyOjNweAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgojbWFycyBoMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ei1pbmRleDo5Njsgd2lkdGg6NjM0cHg7IGhlaWdodDo2MzRweDsgbWFyZ2luOi0zMTdweCAwIDAgLTM0cHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjc3MzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6MzE3cHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6MzE3cHg7fQojbWFycyBoMjpiZWZvcmUgICAgICAgICAgICAgICAgICAgICAgICB7dG9wOjMxNnB4OyByaWdodDotMnB4OyB3aWR0aDozcHg7IGhlaWdodDozcHg7IGJhY2tncm91bmQ6I2FhNDIwMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNzczMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czoycHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6MnB4O30KI21hcnMgZGRbaXRlbXByb3A9ZGlhbWV0ZXJdOmFmdGVyICAgICAge2NvbnRlbnQ6IiAoM3B4KSAvICI7fQojbWFycyBkZFtpdGVtcHJvcD1kaXN0YW5jZV06YWZ0ZXIgICAgICB7Y29udGVudDoiICgzMnB4KSAvICI7fQojbWFycyBkZFtpdGVtcHJvcD1vcmJpdF06YWZ0ZXIgICAgICAgICB7Y29udGVudDoiICgxNzJzKSI7fQoKLyogQVNURVJPSUQgQkVMVAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgpsaSNhc3Rlcm9pZHMgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZGlzcGxheTpub25lO30KCi8qIEpVUElURVIgLSBkaXN0YW5jZToxMTBweCA7IGRpYW1ldGVyOjU4cHgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKI2p1cGl0ZXIgaDIgICAgICAgICAgICAgICAgICAgICAgICAgICAge3otaW5kZXg6OTU7IHdpZHRoOjc5MHB4OyBoZWlnaHQ6NzkwcHg7IG1hcmdpbjotMzk1cHggMCAwIC0xMTJweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNzczMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czozOTVweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czozOTVweDt9CiNqdXBpdGVyIGgyOmJlZm9yZSAgICAgICAgICAgICAgICAgICAgIHt0b3A6MzY2cHg7IHJpZ2h0Oi0yOXB4OyB3aWR0aDo1OHB4OyBoZWlnaHQ6NThweDsgYmFja2dyb3VuZDojZTBhZTZmOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY3NzMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IC0xMHB4IDAgMTBweCByZ2JhKDAsMCwwLDAuNzUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtc2hhZG93Omluc2V0IC0xMHB4IDAgMTBweCByZ2JhKDAsMCwwLDAuNzUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93Omluc2V0IC0xMHB4IDAgMTBweCByZ2JhKDAsMCwwLDAuNzUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjI5cHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6MjlweDt9CiNqdXBpdGVyIGRkW2l0ZW1wcm9wPWRpYW1ldGVyXTphZnRlciAgIHtjb250ZW50OiIgKDU4cHgpIC8gIjt9CiNqdXBpdGVyIGRkW2l0ZW1wcm9wPWRpc3RhbmNlXTphZnRlciAgIHtjb250ZW50OiIgKDExMHB4KSAvICI7fQojanVwaXRlciBkZFtpdGVtcHJvcD1vcmJpdF06YWZ0ZXIgICAgICB7Y29udGVudDoiICgxLDA4M3MpIjt9CgovKiBTQVRVUk4gLSBkaXN0YW5jZToyMDJweCA7IGRpYW1ldGVyOjUwcHgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKI3NhdHVybiBoMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3otaW5kZXg6OTQ7IHdpZHRoOjk3NHB4OyBoZWlnaHQ6OTc0cHg7IG1hcmdpbjotNDg3cHggMCAwIC0yMDRweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNzczMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czo0ODdweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czo0ODdweDt9CiNzYXR1cm4gaDI6YmVmb3JlICAgICAgICAgICAgICAgICAgICAgIHt0b3A6NDYycHg7IHJpZ2h0Oi0yNXB4OyB3aWR0aDo1MHB4OyBoZWlnaHQ6NTBweDsgYmFja2dyb3VuZDojZGZkM2E5OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY3NzMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBubyBTYWZhcmkgNCBzdXBwb3J0IGZvciBpbnNldCBvciBzcHJlYWQgcmFkaXVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHdlYmtpdCBoYW5kbGluZyBvZiBib3ggc2hhZG93IG9uIGEgcm91bmRlZCBvYmplY3QgaXMgZG9kZ3kKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gdmVyeSBzdHJhbmdlIHRoaW5ncyBoYXBwZW5pbmcgaW4gQ2hyb21lIDUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAtOHB4IDAgOHB4IHJnYmEoMCwwLDAsMC43NSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbW96LWJveC1zaGFkb3c6aW5zZXQgLThweCAwIDhweCByZ2JhKDAsMCwwLDAuNzUpLCAwIDAgMCA1cHggIzAwMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzppbnNldCAtOHB4IDAgOHB4IHJnYmEoMCwwLDAsMC43NSksIDAgMCAwIDVweCAjMDAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjI1cHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6MjVweDt9CiNzYXR1cm4gaDI6YWZ0ZXIgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50OiIiOyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDotMTsgdG9wOjQzN3B4OyByaWdodDotNTBweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOjEwMHB4OyBoZWlnaHQ6MTAwcHg7IGJhY2tncm91bmQ6IzI5MjUyNDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNzczMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAtMjBweCAwIDIwcHggcmdiYSgwLDAsMCwwLjUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtc2hhZG93Omluc2V0IC0yMHB4IDAgMjBweCByZ2JhKDAsMCwwLDAuNSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6aW5zZXQgLTIwcHggMCAyMHB4IHJnYmEoMCwwLDAsMC41KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czo1MHB4OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3JkZXItcmFkaXVzOjUwcHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6NTBweDt9CiNzYXR1cm4gZGRbaXRlbXByb3A9ZGlhbWV0ZXJdOmFmdGVyICAgIHtjb250ZW50OiIgKDUwcHgpIC8gIjt9CiNzYXR1cm4gZGRbaXRlbXByb3A9ZGlzdGFuY2VdOmFmdGVyICAgIHtjb250ZW50OiIgKDIwMnB4KSAvICI7fQojc2F0dXJuIGRkW2l0ZW1wcm9wPW9yYml0XTphZnRlciAgICAgICB7Y29udGVudDoiICgyLDY5MHMpIjt9CgoKLyogVVJBTlVTIC0gZGlzdGFuY2U6NDA0cHggOyBkaWFtZXRlcjoyMnB4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCiN1cmFudXMgaDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt6LWluZGV4OjkzOyB3aWR0aDoxMzc4cHg7IGhlaWdodDoxMzc4cHg7IG1hcmdpbjotNjg5cHggMCAwIC00MDZweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNzczMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czo2ODlweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czo2ODlweDt9CiN1cmFudXMgaDI6YmVmb3JlICAgICAgICAgICAgICAgICAgICAgIHt0b3A6Njc4cHg7IHJpZ2h0Oi0xMXB4OyB3aWR0aDoyMnB4OyBoZWlnaHQ6MjJweDsgYmFja2dyb3VuZDojODJiM2QxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY3NzMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IC01cHggMCA1cHggcmdiYSgwLDAsMCwwLjc1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm94LXNoYWRvdzppbnNldCAtNXB4IDAgNXB4IHJnYmEoMCwwLDAsMC43NSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6aW5zZXQgLTVweCAwIDVweCByZ2JhKDAsMCwwLDAuNzUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjExcHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6MTFweDt9CiN1cmFudXMgZGRbaXRlbXByb3A9ZGlhbWV0ZXJdOmFmdGVyICAgIHtjb250ZW50OiIgKDIycHgpIC8gIjt9CiN1cmFudXMgZGRbaXRlbXByb3A9ZGlzdGFuY2VdOmFmdGVyICAgIHtjb250ZW50OiIgKDQwNHB4KSAvICI7fQojdXJhbnVzIGRkW2l0ZW1wcm9wPW9yYml0XTphZnRlciAgICAgICB7Y29udGVudDoiICg3LDY3MXMpIjt9CgovKiBORVBUVU5FIC0gZGlzdGFuY2U6NjMycHggOyBkaWFtZXRlcjoyMHB4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCiNuZXB0dW5lIGgyICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt6LWluZGV4OjkyOyB3aWR0aDoxODM0cHg7IGhlaWdodDoxODM0cHg7IG1hcmdpbjotOTE3cHggMCAwIC02MzRweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNzczMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czo5MTdweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czo5MTdweDt9CiNuZXB0dW5lIGgyOmJlZm9yZSAgICAgICAgICAgICAgICAgICAgIHt0b3A6OTA3cHg7IHJpZ2h0Oi0xMHB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjBweDsgYmFja2dyb3VuZDojNzdjMmVjOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY3NzMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAtNXB4IDAgNXB4IHJnYmEoMCwwLDAsMC43NSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtc2hhZG93Omluc2V0IC01cHggMCA1cHggcmdiYSgwLDAsMCwwLjc1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6aW5zZXQgLTVweCAwIDVweCByZ2JhKDAsMCwwLDAuNzUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6MTBweDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czoxMHB4O30KI25lcHR1bmUgZGRbaXRlbXByb3A9ZGlhbWV0ZXJdOmFmdGVyICAge2NvbnRlbnQ6IiAoMjBweCkgLyAiO30KI25lcHR1bmUgZGRbaXRlbXByb3A9ZGlzdGFuY2VdOmFmdGVyICAge2NvbnRlbnQ6IiAoNjMycHgpIC8gIjt9CiNuZXB0dW5lIGRkW2l0ZW1wcm9wPW9yYml0XTphZnRlciAgICAgIHtjb250ZW50OiIgKDE1LDA0OHMpIjt9CgovKiBQTFVUTyAtIGRpc3RhbmNlOjg3MnB4IDsgZGlhbWV0ZXI6MXB4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCiNwbHV0byBoMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt6LWluZGV4OjkxOyB3aWR0aDoyMzE0cHg7IGhlaWdodDoyMzE0cHg7IG1hcmdpbjotMTE1N3B4IDAgMCAtODc0cHg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjc3MzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6MTE1N3B4OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOjExNTdweDt9CiNwbHV0byBoMjpiZWZvcmUgICAgICAgICAgICAgICAgICAgICAgIHt0b3A6MTE1N3B4OyByaWdodDotMXB4OyB3aWR0aDoxcHg7IGhlaWdodDoxcHg7IGJhY2tncm91bmQ6I2ZmZjt9CiNwbHV0byBkZFtpdGVtcHJvcD1kaWFtZXRlcl06YWZ0ZXIgICAgIHtjb250ZW50OiIgKDFweCkgLyAiO30KI3BsdXRvIGRkW2l0ZW1wcm9wPWRpc3RhbmNlXTphZnRlciAgICAge2NvbnRlbnQ6IiAoODcycHgpIC8gIjt9CiNwbHV0byBkZFtpdGVtcHJvcD1vcmJpdF06YWZ0ZXIgICAgICAgIHtjb250ZW50OiIgKDIyLDYxNnMpIjt9CgovKiBDU1MzIEFOSU1BVElPTlMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKI3NvbGFyc3lzdGVtIGxpIGgyICAgICAgICAgICAgICAgICAgICAgey13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOm9yYml0O30KCiNtZXJjdXJ5IGgyICAgICAgICAgICAgICAgICAgICAgICAgICAgIHstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjoyMnM7fQojdmVudXMgaDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246NTZzO30KI2VhcnRoIGgyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjkxczt9CiNtYXJzIGgyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjoxNzJzO30KI2p1cGl0ZXIgaDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgey13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjEwODNzO30KI3NhdHVybiBoMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjI2OTBzO30KI3VyYW51cyAgaDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgey13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjc2NzFzO30KI25lcHR1bmUgaDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgey13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjE1MDQ4czt9CiNwbHV0byBoMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjoyMjYxNnM7fQoKPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLXByaW1hcnkiPkAtd2Via2l0LWtleWZyYW1lczwvc3Bhbj4gb3JiaXQgICAgICAgICAgICAgICB7IGZyb20geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZykgfSB0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpIH0gfQoKSFRNTOa6kOeggeKGkwoKCgogICAgQWR2YW5jZWQgZGVtbzogQ1NTIHBzZXVkby1lbGVtZW50IFNvbGFyIFN5c3RlbSAmIzgyMTE7IE5pY29sYXMgR2FsbGFnaGVyCiAgICAKICAgIAogICAgCgogICAgCiAgICAgIChmdW5jdGlvbihiLG8saSxsLGUscil7Yi5Hb29nbGVBbmFseXRpY3NPYmplY3Q9bDtiW2xdfHwoYltsXT0KICAgICAgZnVuY3Rpb24oKXsoYltsXS5xPWJbbF0ucXx8W10pLnB1c2goYXJndW1lbnRzKX0pO2JbbF0ubD0rbmV3IERhdGU7CiAgICAgIGU9by5jcmVhdGVFbGVtZW50KGkpO3I9by5nZXRFbGVtZW50c0J5VGFnTmFtZShpKVswXTsKICAgICAgZS5zcmM9Jy8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tL2FuYWx5dGljcy5qcyc7CiAgICAgIHIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSxyKX0od2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCdnYScpKTsKICAgICAgZ2EoJ2NyZWF0ZScsJ1VBLTc0ODkxODgtMScpO2dhKCdzZW5kJywncGFnZXZpZXcnKTsKICAgIAoKCgoKICAgIAogICAgICAgIAogICAgICAgICAgICA8aDE+Q1NTIHBzZXVkby1lbGVtZW50IFNvbGFyIFN5c3RlbTwvaDE+CiAgICAgICAgICAgIDxoMj5Vc2luZyBzZW1hbnRpYyBIVE1MNSwgQ1NTMi4xIHBzZXVkby1lbGVtZW50cywgYW5kIHZhcmlvdXMgYml0cyBvZiBDU1MzLjxicj5CYXNlZCBvbiBBbGV4IEdpcm9uJ3MgJiM4MjIwO091ciBTb2xhciBTeXN0ZW0gaW4gQ1NTMyYjODIyMTsuIDxhIGhyZWY9Ii9jc3MtcHNldWRvLWVsZW1lbnQtc29sYXItc3lzdGVtLyI+UmVhZCB0aGUgYXJ0aWNsZTwvYT4uPC9oMj4KICAgICAgICAKICAgICAgICA8cD5BbmltYXRpb24gcHJvcGVydGllcyBjdXJyZW50bHkgb25seSB3b3JrIG9uIC13ZWJraXQgYnJvd3NlcnMgKENocm9tZSBvciBTYWZhcmkpLjwvcD4KICAgIAoKICAgIDx1bD4KICAgICAgICA8bGk+CiAgICAgICAgICAgIDxoMj5TdW48L2gyPgogICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICA8ZHQ+RGVzY3JpcHRpb248L2R0PgogICAgICAgICAgICAgICAgPGRkPlRoZSBTdW4gaXMgYSBzdGFyLCBhIGhvdCBiYWxsIG9mIGdsb3dpbmcgZ2FzZXMgYXQgdGhlIGhlYXJ0IG9mIG91ciBzb2xhciBzeXN0ZW0uIEl0cyBpbmZsdWVuY2UgZXh0ZW5kcyBmYXIgYmV5b25kIHRoZSBvcmJpdHMgb2YgZGlzdGFudCBOZXB0dW5lIGFuZCBQbHV0by4gV2l0aG91dCB0aGUgU3VuJ3MgaW50ZW5zZSBlbmVyZ3kgYW5kIGhlYXQsIHRoZXJlIHdvdWxkIGJlIG5vIGxpZmUgb24gRWFydGguIEFuZCB0aG91Z2ggaXQgaXMgc3BlY2lhbCB0byB1cywgdGhlcmUgYXJlIGJpbGxpb25zIG9mIHN0YXJzIGxpa2Ugb3VyIFN1biBzY2F0dGVyZWQgYWNyb3NzIHRoZSBNaWxreSBXYXkgZ2FsYXh5LiA8YSBocmVmPSJodHRwOi8vc29sYXJzeXN0ZW0ubmFzYS5nb3YvcGxhbmV0cy9wcm9maWxlLmNmbT9PYmplY3Q9U3VuIj5Tb3VyY2U6IE5BU0E8L2E+PC9kZD4KICAgICAgICAgICAgICAgIDxkdD5EaWFtZXRlcjwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+MSwzOTIsMDAwIGttPC9kZD4KICAgICAgICAgICAgPC9kbD4KICAgICAgICA8L2xpPgoKICAgICAgICA8bGk+CiAgICAgICAgICAgIDxoMj5NZXJjdXJ5PC9oMj4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PkRlc2NyaXB0aW9uPC9kdD4KICAgICAgICAgICAgICAgIDxkZD5TdW4tc2NvcmNoZWQgTWVyY3VyeSBpcyBvbmx5IHNsaWdodGx5IGxhcmdlciB0aGFuIEVhcnRoJ3MgTW9vbi4gTGlrZSB0aGUgTW9vbiwgTWVyY3VyeSBoYXMgdmVyeSBsaXR0bGUgYXRtb3NwaGVyZSB0byBzdG9wIGltcGFjdHMgYW5kIGl0IGlzIGNvdmVyZWQgd2l0aCBjcmF0ZXJzLiBNZXJjdXJ5J3MgZGF5c2lkZSBpcyBzdXBlciBoZWF0ZWQgYnkgdGhlIFN1biwgYnV0IGF0IG5pZ2h0IHRlbXBlcmF0dXJlcyBkcm9wIGh1bmRyZWRzIG9mIGRlZ3JlZXMgYmVsb3cgZnJlZXppbmcuIEljZSBtYXkgZXZlbiBleGlzdCBpbiBjcmF0ZXJzLiBNZXJjdXJ5J3MgZWdnLXNoYXBlZCBvcmJpdCB0YWtlcyBpdCBhcm91bmQgdGhlIFN1biBldmVyeSA4OCBkYXlzLiA8YSBocmVmPSJodHRwOi8vc29sYXJzeXN0ZW0ubmFzYS5nb3YvcGxhbmV0cy9wcm9maWxlLmNmbT9PYmplY3Q9TWVyY3VyeSI+U291cmNlOiBOQVNBPC9hPjwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+RGlhbWV0ZXI8L2R0PgogICAgICAgICAgICAgICAgPGRkPjQsODc2IGttPC9kZD4KICAgICAgICAgICAgICAgIDxkdD5EaXN0YW5jZSBmcm9tIHN1bjwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+NTcmIzIxNTsxMDxzdXA+Njwvc3VwPiBrbTwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+T3JiaXRhbCBwZXJpb2Q8L2R0PgogICAgICAgICAgICAgICAgPGRkPjg4ZDwvZGQ+CiAgICAgICAgICAgIDwvZGw+CiAgICAgICAgPC9saT4KCiAgICAgICAgPGxpPgogICAgICAgICAgICA8aDI+VmVudXM8L2gyPgogICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICA8ZHQ+RGVzY3JpcHRpb248L2R0PgogICAgICAgICAgICAgICAgPGRkPlZlbnVzIGlzIGEgZGltIHdvcmxkIG9mIGludGVuc2UgaGVhdCBhbmQgdm9sY2FuaWMgYWN0aXZpdHkuIFNpbWlsYXIgaW4gc3RydWN0dXJlIGFuZCBzaXplIHRvIEVhcnRoLCBWZW51cycgdGhpY2ssIHRveGljIGF0bW9zcGhlcmUgdHJhcHMgaGVhdCBpbiBhIHJ1bmF3YXkgJ2dyZWVuaG91c2UgZWZmZWN0LicgVGhlIHNjb3JjaGVkIHdvcmxkIGhhcyB0ZW1wZXJhdHVyZXMgaG90IGVub3VnaCB0byBtZWx0IGxlYWQuIEdsaW1wc2VzIGJlbG93IHRoZSBjbG91ZHMgcmV2ZWFsIHZvbGNhbm9lcyBhbmQgZGVmb3JtZWQgbW91bnRhaW5zLiBWZW51cyBzcGlucyBzbG93bHkgaW4gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiBvZiBtb3N0IHBsYW5ldHMuIDxhIGhyZWY9Imh0dHA6Ly9zb2xhcnN5c3RlbS5uYXNhLmdvdi9wbGFuZXRzL3Byb2ZpbGUuY2ZtP09iamVjdD1WZW51cyI+U291cmNlOiBOQVNBPC9hPjwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+RGlhbWV0ZXI8L2R0PgogICAgICAgICAgICAgICAgPGRkPjEyLDEwNyBrbTwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+RGlzdGFuY2UgZnJvbSBzdW48L2R0PgogICAgICAgICAgICAgICAgPGRkPjEwNyYjMjE1OzEwPHN1cD42PC9zdXA+IGttPC9kZD4KICAgICAgICAgICAgICAgIDxkdD5PcmJpdGFsIHBlcmlvZDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+MjI0ZDwvZGQ+CiAgICAgICAgICAgIDwvZGw+CiAgICAgICAgPC9saT4KCiAgICAgICAgPGxpPgogICAgICAgICAgICA8aDI+RWFydGg8L2gyPgogICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICA8ZHQ+RGVzY3JpcHRpb248L2R0PgogICAgICAgICAgICAgICAgPGRkPkVhcnRoIGlzIGFuIG9jZWFuIHBsYW5ldC4gT3VyIGhvbWUgd29ybGQncyBhYnVuZGFuY2Ugb2Ygd2F0ZXIgLSBhbmQgbGlmZSAtIG1ha2VzIGl0IHVuaXF1ZSBpbiBvdXIgc29sYXIgc3lzdGVtLiBPdGhlciBwbGFuZXRzLCBwbHVzIGEgZmV3IG1vb25zLCBoYXZlIGljZSwgYXRtb3NwaGVyZXMsIHNlYXNvbnMgYW5kIGV2ZW4gd2VhdGhlciwgYnV0IG9ubHkgb24gRWFydGggZG9lcyB0aGUgd2hvbGUgY29tcGxpY2F0ZWQgbWl4IGNvbWUgdG9nZXRoZXIgaW4gYSB3YXkgdGhhdCBlbmNvdXJhZ2VzIGxpZmUgLSBhbmQgbG90cyBvZiBpdC4gPGEgaHJlZj0iaHR0cDovL3NvbGFyc3lzdGVtLm5hc2EuZ292L3BsYW5ldHMvcHJvZmlsZS5jZm0/T2JqZWN0PUVhcnRoIj5Tb3VyY2U6IE5BU0E8L2E+PC9kZD4KICAgICAgICAgICAgICAgIDxkdD5EaWFtZXRlcjwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+MTIsNzU1IGttPC9kZD4KICAgICAgICAgICAgICAgIDxkdD5EaXN0YW5jZSBmcm9tIHN1bjwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+MTUwJiMyMTU7MTA8c3VwPjY8L3N1cD4ga208L2RkPgogICAgICAgICAgICAgICAgPGR0Pk9yYml0YWwgcGVyaW9kPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4zNjVkPC9kZD4KICAgICAgICAgICAgPC9kbD4KICAgICAgICA8L2xpPgoKICAgICAgICA8bGk+CiAgICAgICAgICAgIDxoMj5NYXJzPC9oMj4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PkRlc2NyaXB0aW9uPC9kdD4KICAgICAgICAgICAgICAgIDxkZD5UaG91Z2ggZGV0YWlscyBvZiBNYXJzJyBzdXJmYWNlIGFyZSBkaWZmaWN1bHQgdG8gc2VlIGZyb20gRWFydGgsIHRlbGVzY29wZSBvYnNlcnZhdGlvbnMgc2hvdyBzZWFzb25hbGx5IGNoYW5naW5nIGZlYXR1cmVzIGFuZCB3aGl0ZSBwYXRjaGVzIGF0IHRoZSBwb2xlcy4gRm9yIGRlY2FkZXMsIHBlb3BsZSBzcGVjdWxhdGVkIHRoYXQgYnJpZ2h0IGFuZCBkYXJrIGFyZWFzIG9uIE1hcnMgd2VyZSBwYXRjaGVzIG9mIHZlZ2V0YXRpb24sIHRoYXQgTWFycyBjb3VsZCBiZSBhIGxpa2VseSBwbGFjZSBmb3IgbGlmZS1mb3JtcywgYW5kIHRoYXQgd2F0ZXIgbWlnaHQgZXhpc3QgaW4gdGhlIHBvbGFyIGNhcHMuIFdoZW4gdGhlIE1hcmluZXIgNCBzcGFjZWNyYWZ0IGZsZXcgYnkgTWFycyBpbiAxOTY1LCBtYW55IHdlcmUgc2hvY2tlZCB0byBzZWUgcGhvdG9ncmFwaHMgb2YgYSBibGVhaywgY3JhdGVyZWQgc3VyZmFjZS4gTWFycyBzZWVtZWQgdG8gYmUgYSBkZWFkIHBsYW5ldC4gTGF0ZXIgbWlzc2lvbnMsIGhvd2V2ZXIsIGhhdmUgc2hvd24gdGhhdCBNYXJzIGlzIGEgY29tcGxleCBtZW1iZXIgb2YgdGhlIHNvbGFyIHN5c3RlbSBhbmQgaG9sZHMgbWFueSBteXN0ZXJpZXMgeWV0IHRvIGJlIHNvbHZlZC4gPGEgaHJlZj0iaHR0cDovL3NvbGFyc3lzdGVtLm5hc2EuZ292L3BsYW5ldHMvcHJvZmlsZS5jZm0/T2JqZWN0PU1hcnMiPlNvdXJjZTogTkFTQTwvYT48L2RkPgogICAgICAgICAgICAgICAgPGR0PkRpYW1ldGVyPC9kdD4KICAgICAgICAgICAgICAgIDxkZD42LDc5NCBrbTwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+RGlzdGFuY2UgZnJvbSBzdW48L2R0PgogICAgICAgICAgICAgICAgPGRkPjIyOSYjMjE1OzEwPHN1cD42PC9zdXA+IGttPC9kZD4KICAgICAgICAgICAgICAgIDxkdD5PcmJpdGFsIHBlcmlvZDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+Njg3ZDwvZGQ+CiAgICAgICAgICAgIDwvZGw+CiAgICAgICAgPC9saT4KCiAgICAgICAgPGxpPgogICAgICAgICAgICA8aDI+QXN0ZXJvaWRzICYgTWV0ZW9yaWRzPC9oMj4KICAgICAgICA8L2xpPgoKICAgICAgICA8bGk+CiAgICAgICAgICAgIDxoMj5KdXBpdGVyPC9oMj4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PkRlc2NyaXB0aW9uPC9kdD4KICAgICAgICAgICAgICAgIDxkZD5UaGUgbW9zdCBtYXNzaXZlIHBsYW5ldCBpbiBvdXIgc29sYXIgc3lzdGVtLCB3aXRoIGZvdXIgbGFyZ2UgbW9vbnMgYW5kIG1hbnkgc21hbGxlciBtb29ucywgSnVwaXRlciBmb3JtcyBhIGtpbmQgb2YgbWluaWF0dXJlIHNvbGFyIHN5c3RlbS4gSnVwaXRlciByZXNlbWJsZXMgYSBzdGFyIGluIGNvbXBvc2l0aW9uLiBJbiBmYWN0LCBpZiBpdCBoYWQgYmVlbiBhYm91dCA4MCB0aW1lcyBtb3JlIG1hc3NpdmUsIGl0IHdvdWxkIGhhdmUgYmVjb21lIGEgc3RhciByYXRoZXIgdGhhbiBhIHBsYW5ldC4gPGEgaHJlZj0iaHR0cDovL3NvbGFyc3lzdGVtLm5hc2EuZ292L3BsYW5ldHMvcHJvZmlsZS5jZm0/T2JqZWN0PUp1cGl0ZXIiPlNvdXJjZTogTkFTQTwvYT48L2RkPgogICAgICAgICAgICAgICAgPGR0PkRpYW1ldGVyPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4xNDIsOTgzIGttPC9kZD4KICAgICAgICAgICAgICAgIDxkdD5EaXN0YW5jZSBmcm9tIHN1bjwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+Nzc3JiMyMTU7MTA8c3VwPjY8L3N1cD4ga208L2RkPgogICAgICAgICAgICAgICAgPGR0Pk9yYml0YWwgcGVyaW9kPC9kdD4KICAgICAgICAgICAgICAgIDxkZD40LDMzM2Q8L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgIDwvbGk+CgogICAgICAgIDxsaT4KICAgICAgICAgICAgPGgyPlNhdHVybjwvaDI+CiAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgIDxkdD5EZXNjcmlwdGlvbjwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+U2F0dXJuIHdhcyB0aGUgbW9zdCBkaXN0YW50IG9mIHRoZSBmaXZlIHBsYW5ldHMga25vd24gdG8gdGhlIGFuY2llbnRzLiBMaWtlIEp1cGl0ZXIsIFNhdHVybiBpcyBtYWRlIG1vc3RseSBvZiBoeWRyb2dlbiBhbmQgaGVsaXVtLiBJdHMgdm9sdW1lIGlzIDc1NSB0aW1lcyBncmVhdGVyIHRoYW4gdGhhdCBvZiBFYXJ0aC4gV2luZHMgaW4gdGhlIHVwcGVyIGF0bW9zcGhlcmUgcmVhY2ggNTAwIG1ldGVycyAoMSw2MDAgZmVldCkgcGVyIHNlY29uZCBpbiB0aGUgZXF1YXRvcmlhbCByZWdpb24uIFRoZXNlIHN1cGVyLWZhc3Qgd2luZHMsIGNvbWJpbmVkIHdpdGggaGVhdCByaXNpbmcgZnJvbSB3aXRoaW4gdGhlIHBsYW5ldCdzIGludGVyaW9yLCBjYXVzZSB0aGUgeWVsbG93IGFuZCBnb2xkIGJhbmRzIHZpc2libGUgaW4gdGhlIGF0bW9zcGhlcmUuIDxhIGhyZWY9Imh0dHA6Ly9zb2xhcnN5c3RlbS5uYXNhLmdvdi9wbGFuZXRzL3Byb2ZpbGUuY2ZtP09iamVjdD1TYXR1cm4iPlNvdXJjZTogTkFTQTwvYT48L2RkPgogICAgICAgICAgICAgICAgPGR0PkRpYW1ldGVyPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4xMjAsNTM2IGttPC9kZD4KICAgICAgICAgICAgICAgIDxkdD5EaXN0YW5jZSBmcm9tIHN1bjwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+MSw0MjkmIzIxNTsxMDxzdXA+Njwvc3VwPiBrbTwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+T3JiaXRhbCBwZXJpb2Q8L2R0PgogICAgICAgICAgICAgICAgPGRkPjEwLDc1OWQ8L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgIDwvbGk+CgogICAgICAgIDxsaT4KICAgICAgICAgICAgPGgyPlVyYW51czwvaDI+CiAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgIDxkdD5EZXNjcmlwdGlvbjwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+VGhlIGZpcnN0IHBsYW5ldCBmb3VuZCB3aXRoIHRoZSBhaWQgb2YgYSB0ZWxlc2NvcGUsIFVyYW51cyB3YXMgZGlzY292ZXJlZCBpbiAxNzgxIGJ5IGFzdHJvbm9tZXIgV2lsbGlhbSBIZXJzY2hlbC4gVGhlIHNldmVudGggcGxhbmV0IGZyb20gdGhlIFN1biBpcyBzbyBkaXN0YW50IHRoYXQgaXQgdGFrZXMgODQgeWVhcnMgdG8gY29tcGxldGUgb25lIG9yYml0LiA8YSBocmVmPSJodHRwOi8vc29sYXJzeXN0ZW0ubmFzYS5nb3YvcGxhbmV0cy9wcm9maWxlLmNmbT9PYmplY3Q9VXJhbnVzIj5Tb3VyY2U6IE5BU0E8L2E+PC9kZD4KICAgICAgICAgICAgICAgIDxkdD5EaWFtZXRlcjwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+NTEsMTE3IGttPC9kZD4KICAgICAgICAgICAgICAgIDxkdD5EaXN0YW5jZSBmcm9tIHN1bjwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+Miw4NzEmIzIxNTsxMDxzdXA+Njwvc3VwPiBrbTwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+T3JiaXRhbCBwZXJpb2Q8L2R0PgogICAgICAgICAgICAgICAgPGRkPjMwLDY4NGQ8L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgIDwvbGk+CgogICAgICAgIDxsaT4KICAgICAgICAgICAgPGgyPk5lcHR1bmU8L2gyPgogICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICA8ZHQ+RGVzY3JpcHRpb248L2R0PgogICAgICAgICAgICAgICAgPGRkPk5lYXJseSA0LjUgYmlsbGlvbiBraWxvbWV0ZXJzICgyLjggYmlsbGlvbiBtaWxlcykgZnJvbSB0aGUgU3VuLCBOZXB0dW5lIG9yYml0cyB0aGUgU3VuIG9uY2UgZXZlcnkgMTY1IHllYXJzLiBJdCBpcyBpbnZpc2libGUgdG8gdGhlIG5ha2VkIGV5ZSBiZWNhdXNlIG9mIGl0cyBleHRyZW1lIGRpc3RhbmNlIGZyb20gRWFydGguIEludGVyZXN0aW5nbHksIHRoZSB1bnVzdWFsIGVsbGlwdGljYWwgb3JiaXQgb2YgdGhlIGR3YXJmIHBsYW5ldCBQbHV0byBicmluZ3MgUGx1dG8gaW5zaWRlIE5lcHR1bmUncyBvcmJpdCBmb3IgYSAyMC15ZWFyIHBlcmlvZCBvdXQgb2YgZXZlcnkgMjQ4IEVhcnRoIHllYXJzLiA8YSBocmVmPSJodHRwOi8vc29sYXJzeXN0ZW0ubmFzYS5nb3YvcGxhbmV0cy9wcm9maWxlLmNmbT9PYmplY3Q9TmVwdHVuZSI+U291cmNlOiBOQVNBPC9hPjwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+RGlhbWV0ZXI8L2R0PgogICAgICAgICAgICAgICAgPGRkPjQ5LDUyNyBrbTwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+RGlzdGFuY2UgZnJvbSBzdW48L2R0PgogICAgICAgICAgICAgICAgPGRkPjQsNDk2ICYjMjE1OzEwPHN1cD42PC9zdXA+IGttPC9kZD4KICAgICAgICAgICAgICAgIDxkdD5PcmJpdGFsIHBlcmlvZDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+NjAsMTkwZDwvZGQ+CiAgICAgICAgICAgIDwvZGw+CiAgICAgICAgPC9saT4KCiAgICAgICAgPGxpPgogICAgICAgICAgICA8aDI+UGx1dG88L2gyPgogICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICA8ZHQ+RGVzY3JpcHRpb248L2R0PgogICAgICAgICAgICAgICAgPGRkPlRpbnksIGNvbGQgYW5kIGluY3JlZGlibHkgZGlzdGFudCwgUGx1dG8gd2FzIGRpc2NvdmVyZWQgaW4gMTkzMCBhbmQgbG9uZyBjb25zaWRlcmVkIHRvIGJlIHRoZSBuaW50aCBwbGFuZXQuIEJ1dCBhZnRlciB0aGUgZGlzY292ZXJpZXMgb2Ygc2ltaWxhciBpbnRyaWd1aW5nIHdvcmxkcyBldmVuIGZhcnRoZXIgb3V0LCBQbHV0byB3YXMgcmVjbGFzc2lmaWVkIGFzIGEgZHdhcmYgcGxhbmV0LiBUaGlzIG5ldyBjbGFzcyBvZiB3b3JsZHMgbWF5IG9mZmVyIHNvbWUgb2YgdGhlIGJlc3QgZXZpZGVuY2Ugb2YgdGhlIG9yaWdpbnMgb2Ygb3VyIHNvbGFyIHN5c3RlbS4gPGEgaHJlZj0iaHR0cDovL3NvbGFyc3lzdGVtLm5hc2EuZ292L3BsYW5ldHMvcHJvZmlsZS5jZm0/T2JqZWN0PVBsdXRvIj5Tb3VyY2U6IE5BU0E8L2E+PC9kZD4KICAgICAgICAgICAgICAgIDxkdD5EaWFtZXRlcjwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+MiwzOTAga208L2RkPgogICAgICAgICAgICAgICAgPGR0PkRpc3RhbmNlIGZyb20gc3VuPC9kdD4KICAgICAgICAgICAgICAgIDxkZD41LDg2OSAmIzIxNTsxMDxzdXA+Njwvc3VwPiBrbTwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+T3JiaXRhbCBwZXJpb2Q8L2R0PgogICAgICAgICAgICAgICAgPGRkPjkwLDQ2NWQ8L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgIDwvbGk+CiAgICA8L3VsPg==
a7635485
发表于 2018-4-27
评论列表
加载数据中...
admin
发表于 2018-4-27
评论列表
加载数据中...
a7635485
发表于 2018-4-28
评论列表
加载数据中...