ZGlmZiAtLWdpdCBhL0ZVWlpJTkcubWQgYi9GVVpaSU5HLm1kCmluZGV4IDg2ZDA5MzAuLjlmNGVkZWYgMTAwNjQ0Ci0tLSBhL0ZVWlpJTkcubWQKKysrIGIvRlVaWklORy5tZApAQCAtMzAsMTUgKzMwLDE1IEBACiAKIFRoZSByZWNvbW1lbmRlZCB2YWx1ZXMgb2YgYG1heF9sZW5gIGZvciBlYWNoIHRlc3QgYXJlOgogCi18IFRlc3QgICAgICB8IGBtYXhfbGVuYCB2YWx1ZSB8Ci18LS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS18Ci18IGBjZXJ0YCAgICB8IDMwNzIgICAgICAgICAgICB8Ci18IGBjbGllbnRgICB8IDIwMDAwICAgICAgICAgICB8Ci18IGBwa2NzOGAgICB8IDIwNDggICAgICAgICAgICB8Ci18IGBwcml2a2V5YCB8IDIwNDggICAgICAgICAgICB8Ci18IGBzZXJ2ZXJgICB8IDQwOTYgICAgICAgICAgICB8Ci18IGBzcGtpYCAgICB8IDEwMjQgICAgICAgICAgICB8Ci0KK3wgVGVzdCAgICAgICB8IGBtYXhfbGVuYCB2YWx1ZSB8Cit8LS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tfAorfCBgY2VydGAgICAgIHwgMzA3MiAgICAgICAgICAgIHwKK3wgYGNsaWVudGAgICB8IDIwMDAwICAgICAgICAgICB8Cit8IGBwa2NzOGAgICAgfCAyMDQ4ICAgICAgICAgICAgfAorfCBgcHJpdmtleWAgIHwgMjA0OCAgICAgICAgICAgIHwKK3wgYHNlcnZlcmAgICB8IDQwOTYgICAgICAgICAgICB8Cit8IGBzcGtpYCAgICAgfCAxMDI0ICAgICAgICAgICAgfAorfCBgcmVhZF9wZW1gIHwgNTEyICAgICAgICAgICAgIHwKIAogVGhlc2Ugd2VyZSBkZXRlcm1pbmVkIGJ5IHJvdW5kaW5nIHVwIHRoZSBsZW5ndGggb2YgdGhlIGxhcmdlc3QgY2FzZSBpbiB0aGUgY29ycHVzLgogCmRpZmYgLS1naXQgYS9jcnlwdG8vYmFzZTY0L2Jhc2U2NC5jIGIvY3J5cHRvL2Jhc2U2NC9iYXNlNjQuYwppbmRleCA2MWY3OWNkLi4wNzYzYTNlIDEwMDY0NAotLS0gYS9jcnlwdG8vYmFzZTY0L2Jhc2U2NC5jCisrKyBiL2NyeXB0by9iYXNlNjQvYmFzZTY0LmMKQEAgLTYwLDYxICs2MCw0MiBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogCisjaW5jbHVkZSA8b3BlbnNzbC90eXBlX2NoZWNrLmg+CisKKworLyogRW5jb2RpbmcuICovCiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRhdGFfYmluMmFzY2lpWzY1XSA9CiAgICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iOwogCiAjZGVmaW5lIGNvbnZfYmluMmFzY2lpKGEpIChkYXRhX2JpbjJhc2NpaVsoYSkgJiAweDNmXSkKIAotLyogNjQgY2hhciBsaW5lcwotICogcGFkIGlucHV0IHdpdGggMAotICogbGVmdCBvdmVyIGNoYXJzIGFyZSBzZXQgdG8gPQotICogMSBieXRlICA9PiB4eD09Ci0gKiAyIGJ5dGVzID0+IHh4eD0KLSAqIDMgYnl0ZXMgPT4geHh4eAotICovCi0jZGVmaW5lIEJJTl9QRVJfTElORSAgICAoNjQvNCozKQotI2RlZmluZSBDSFVOS1NfUEVSX0xJTkUgKDY0LzQpCi0jZGVmaW5lIENIQVJfUEVSX0xJTkUgICAoNjQrMSkKK09QRU5TU0xfQ09NUElMRV9BU1NFUlQoc2l6ZW9mKCgoRVZQX0VOQ09ERV9DVFggKikoTlVMTCkpLT5kYXRhKSAlIDMgPT0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9sZW5ndGhfbXVzdF9iZV9tdWx0aXBsZV9vZl9iYXNlNjRfY2h1bmtfc2l6ZSk7CiAKLS8qIDB4RjAgaXMgYSBFT0xOCi0gKiAweEYxIGlzIGlnbm9yZSBidXQgbmV4dCBuZWVkcyB0byBiZSAweEYwIChmb3IgXHJcbiBwcm9jZXNzaW5nKS4KLSAqIDB4RjIgaXMgRU9GCi0gKiAweEUwIGlzIGlnbm9yZSBhdCBzdGFydCBvZiBsaW5lLgotICogMHhGRiBpcyBlcnJvciAqLwotCi0jZGVmaW5lIEI2NF9FT0xOIDB4RjAKLSNkZWZpbmUgQjY0X0NSIDB4RjEKLSNkZWZpbmUgQjY0X0VPRiAweEYyCi0jZGVmaW5lIEI2NF9XUyAweEUwCi0jZGVmaW5lIEI2NF9FUlJPUiAweEZGCi0jZGVmaW5lIEI2NF9OT1RfQkFTRTY0KGEpICgoKGEpIHwgMHgxMykgPT0gMHhGMykKLQotc3RhdGljIGNvbnN0IHVpbnQ4X3QgZGF0YV9hc2NpaTJiaW5bMTI4XSA9IHsKLSAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEUwLCAweEYwLCAweEZGLAotICAgIDB4RkYsIDB4RjEsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsCi0gICAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhFMCwgMHhGRiwgMHhGRiwgMHhGRiwKLSAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweDNFLCAweEZGLCAweEYyLCAweEZGLCAweDNGLAotICAgIDB4MzQsIDB4MzUsIDB4MzYsIDB4MzcsIDB4MzgsIDB4MzksIDB4M0EsIDB4M0IsIDB4M0MsIDB4M0QsIDB4RkYsIDB4RkYsCi0gICAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwgMHgwNiwKLSAgICAweDA3LCAweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELCAweDBFLCAweDBGLCAweDEwLCAweDExLCAweDEyLAotICAgIDB4MTMsIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsIDB4MTgsIDB4MTksIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsCi0gICAgMHhGRiwgMHgxQSwgMHgxQiwgMHgxQywgMHgxRCwgMHgxRSwgMHgxRiwgMHgyMCwgMHgyMSwgMHgyMiwgMHgyMywgMHgyNCwKLSAgICAweDI1LCAweDI2LCAweDI3LCAweDI4LCAweDI5LCAweDJBLCAweDJCLCAweDJDLCAweDJELCAweDJFLCAweDJGLCAweDMwLAotICAgIDB4MzEsIDB4MzIsIDB4MzMsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsCi19OwotCi1zdGF0aWMgdWludDhfdCBjb252X2FzY2lpMmJpbih1aW50OF90IGEpIHsKLSAgaWYgKGEgPj0gMTI4KSB7Ci0gICAgcmV0dXJuIDB4RkY7CitpbnQgRVZQX0VuY29kZWRMZW5ndGgoc2l6ZV90ICpvdXRfbGVuLCBzaXplX3QgbGVuKSB7CisgIGlmIChsZW4gKyAyIDwgbGVuKSB7CisgICAgcmV0dXJuIDA7CiAgIH0KLSAgcmV0dXJuIGRhdGFfYXNjaWkyYmluW2FdOworICBsZW4gKz0gMjsKKyAgbGVuIC89IDM7CisKKyAgaWYgKCgobGVuIDw8IDIpID4+IDIpICE9IGxlbikgeworICAgIHJldHVybiAwOworICB9CisgIGxlbiA8PD0gMjsKKworICBpZiAobGVuICsgMSA8IGxlbikgeworICAgIHJldHVybiAwOworICB9CisgIGxlbisrOworCisgICpvdXRfbGVuID0gbGVuOworICByZXR1cm4gMTsKIH0KIAogdm9pZCBFVlBfRW5jb2RlSW5pdChFVlBfRU5DT0RFX0NUWCAqY3R4KSB7Ci0gIGN0eC0+bGVuZ3RoID0gNDg7Ci0gIGN0eC0+bnVtID0gMDsKLSAgY3R4LT5saW5lX251bSA9IDA7CisgIG1lbXNldChjdHgsIDAsIHNpemVvZihFVlBfRU5DT0RFX0NUWCkpOwogfQogCiB2b2lkIEVWUF9FbmNvZGVVcGRhdGUoRVZQX0VOQ09ERV9DVFggKmN0eCwgdWludDhfdCAqb3V0LCBpbnQgKm91dF9sZW4sCkBAIC0xMjYsNTUgKzEwNyw3MiBAQAogICAgIHJldHVybjsKICAgfQogCi0gIGFzc2VydChjdHgtPmxlbmd0aCA8PSBzaXplb2YoY3R4LT5lbmNfZGF0YSkpOwotICBhc3NlcnQoY3R4LT5udW0gPCBjdHgtPmxlbmd0aCk7CisgIGFzc2VydChjdHgtPmRhdGFfdXNlZCA8IHNpemVvZihjdHgtPmRhdGEpKTsKIAotICBpZiAoY3R4LT5sZW5ndGggLSBjdHgtPm51bSA+IGluX2xlbikgewotICAgIG1lbWNweSgmY3R4LT5lbmNfZGF0YVtjdHgtPm51bV0sIGluLCBpbl9sZW4pOwotICAgIGN0eC0+bnVtICs9IGluX2xlbjsKKyAgaWYgKHNpemVvZihjdHgtPmRhdGEpIC0gY3R4LT5kYXRhX3VzZWQgPiBpbl9sZW4pIHsKKyAgICBtZW1jcHkoJmN0eC0+ZGF0YVtjdHgtPmRhdGFfdXNlZF0sIGluLCBpbl9sZW4pOworICAgIGN0eC0+ZGF0YV91c2VkICs9IGluX2xlbjsKICAgICByZXR1cm47CiAgIH0KIAotICBpZiAoY3R4LT5udW0gIT0gMCkgewotICAgIHNpemVfdCB0b2RvID0gY3R4LT5sZW5ndGggLSBjdHgtPm51bTsKLSAgICBtZW1jcHkoJmN0eC0+ZW5jX2RhdGFbY3R4LT5udW1dLCBpbiwgdG9kbyk7CisgIGlmIChjdHgtPmRhdGFfdXNlZCAhPSAwKSB7CisgICAgY29uc3Qgc2l6ZV90IHRvZG8gPSBzaXplb2YoY3R4LT5kYXRhKSAtIGN0eC0+ZGF0YV91c2VkOworICAgIG1lbWNweSgmY3R4LT5kYXRhW2N0eC0+ZGF0YV91c2VkXSwgaW4sIHRvZG8pOwogICAgIGluICs9IHRvZG87CiAgICAgaW5fbGVuIC09IHRvZG87Ci0gICAgc2l6ZV90IGVuY29kZWQgPSBFVlBfRW5jb2RlQmxvY2sob3V0LCBjdHgtPmVuY19kYXRhLCBjdHgtPmxlbmd0aCk7Ci0gICAgY3R4LT5udW0gPSAwOworCisgICAgc2l6ZV90IGVuY29kZWQgPSBFVlBfRW5jb2RlQmxvY2sob3V0LCBjdHgtPmRhdGEsIHNpemVvZihjdHgtPmRhdGEpKTsKKyAgICBjdHgtPmRhdGFfdXNlZCA9IDA7CisKICAgICBvdXQgKz0gZW5jb2RlZDsKICAgICAqKG91dCsrKSA9ICdcbic7CiAgICAgKm91dCA9ICdcMCc7CisKICAgICB0b3RhbCA9IGVuY29kZWQgKyAxOwogICB9CiAKLSAgd2hpbGUgKGluX2xlbiA+PSBjdHgtPmxlbmd0aCkgewotICAgIHNpemVfdCBlbmNvZGVkID0gRVZQX0VuY29kZUJsb2NrKG91dCwgaW4sIGN0eC0+bGVuZ3RoKTsKLSAgICBpbiArPSBjdHgtPmxlbmd0aDsKLSAgICBpbl9sZW4gLT0gY3R4LT5sZW5ndGg7CisgIHdoaWxlIChpbl9sZW4gPj0gc2l6ZW9mKGN0eC0+ZGF0YSkpIHsKKyAgICBzaXplX3QgZW5jb2RlZCA9IEVWUF9FbmNvZGVCbG9jayhvdXQsIGluLCBzaXplb2YoY3R4LT5kYXRhKSk7CisgICAgaW4gKz0gc2l6ZW9mKGN0eC0+ZGF0YSk7CisgICAgaW5fbGVuIC09IHNpemVvZihjdHgtPmRhdGEpOworCiAgICAgb3V0ICs9IGVuY29kZWQ7CiAgICAgKihvdXQrKykgPSAnXG4nOwogICAgICpvdXQgPSAnXDAnOworCisgICAgaWYgKHRvdGFsICsgZW5jb2RlZCArIDEgPCB0b3RhbCkgeworICAgICAgKm91dF9sZW4gPSAwOworICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHRvdGFsICs9IGVuY29kZWQgKyAxOwogICB9CiAKICAgaWYgKGluX2xlbiAhPSAwKSB7Ci0gICAgbWVtY3B5KCZjdHgtPmVuY19kYXRhWzBdLCBpbiwgaW5fbGVuKTsKKyAgICBtZW1jcHkoY3R4LT5kYXRhLCBpbiwgaW5fbGVuKTsKICAgfQotICBjdHgtPm51bSA9IGluX2xlbjsKKworICBjdHgtPmRhdGFfdXNlZCA9IGluX2xlbjsKKworICBpZiAodG90YWwgPiBJTlRfTUFYKSB7CisgICAgLyogV2UgY2Fubm90IHNpZ25hbCBhbiBlcnJvciwgYnV0IHdlIGNhbiBhdCBsZWFzdCBhdm9pZCBtYWtpbmcgKm91dF9sZW4KKyAgICAgKiBuZWdhdGl2ZS4gKi8KKyAgICB0b3RhbCA9IDA7CisgIH0KICAgKm91dF9sZW4gPSB0b3RhbDsKIH0KIAogdm9pZCBFVlBfRW5jb2RlRmluYWwoRVZQX0VOQ09ERV9DVFggKmN0eCwgdWludDhfdCAqb3V0LCBpbnQgKm91dF9sZW4pIHsKLSAgdW5zaWduZWQgcmV0ID0gMDsKLQotICBpZiAoY3R4LT5udW0gIT0gMCkgewotICAgIHJldCA9IEVWUF9FbmNvZGVCbG9jayhvdXQsIGN0eC0+ZW5jX2RhdGEsIGN0eC0+bnVtKTsKLSAgICBvdXRbcmV0KytdID0gJ1xuJzsKLSAgICBvdXRbcmV0XSA9ICdcMCc7Ci0gICAgY3R4LT5udW0gPSAwOworICBpZiAoY3R4LT5kYXRhX3VzZWQgPT0gMCkgeworICAgICpvdXRfbGVuID0gMDsKKyAgICByZXR1cm47CiAgIH0KLSAgKm91dF9sZW4gPSByZXQ7CisKKyAgc2l6ZV90IGVuY29kZWQgPSBFVlBfRW5jb2RlQmxvY2sob3V0LCBjdHgtPmRhdGEsIGN0eC0+ZGF0YV91c2VkKTsKKyAgb3V0W2VuY29kZWQrK10gPSAnXG4nOworICBvdXRbZW5jb2RlZF0gPSAnXDAnOworICBjdHgtPmRhdGFfdXNlZCA9IDA7CisgICpvdXRfbGVuID0gZW5jb2RlZDsKIH0KIAogc2l6ZV90IEVWUF9FbmNvZGVCbG9jayh1aW50OF90ICpkc3QsIGNvbnN0IHVpbnQ4X3QgKnNyYywgc2l6ZV90IHNyY19sZW4pIHsKQEAgLTIwOSwyNDYgKzIwNywyMjMgQEAKICAgcmV0dXJuIHJldDsKIH0KIAorCisvKiBEZWNvZGluZy4gKi8KKwogaW50IEVWUF9EZWNvZGVkTGVuZ3RoKHNpemVfdCAqb3V0X2xlbiwgc2l6ZV90IGxlbikgewogICBpZiAobGVuICUgNCAhPSAwKSB7CiAgICAgcmV0dXJuIDA7CiAgIH0KKwogICAqb3V0X2xlbiA9IChsZW4gLyA0KSAqIDM7CiAgIHJldHVybiAxOwogfQogCit2b2lkIEVWUF9EZWNvZGVJbml0KEVWUF9FTkNPREVfQ1RYICpjdHgpIHsKKyAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKEVWUF9FTkNPREVfQ1RYKSk7Cit9CisKKy8qIGtCYXNlNjRBU0NJSVRvQmluRGF0YSBtYXBzIGNoYXJhY3RlcnMgKGMgPCAxMjgpIHRvIHRoZWlyIGJhc2U2NCB2YWx1ZSwgb3IKKyAqIGVsc2UgMHhmZiBpZiB0aGV5IGFyZSBpbnZhbGlkLiBBcyBhIHNwZWNpYWwgY2FzZSwgdGhlIHBhZGRpbmcgY2hhcmFjdGVyCisgKiAoJz0nKSBpcyBtYXBwZWQgdG8gemVyby4gKi8KK3N0YXRpYyBjb25zdCB1aW50OF90IGtCYXNlNjRBU0NJSVRvQmluRGF0YVsxMjhdID0geworICAgIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZTAsIDB4ZmYsIDB4ZmYsCisgICAgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwKKyAgICAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGUwLCAweGZmLCAweGZmLCAweGZmLAorICAgIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4M2UsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4M2YsCisgICAgMHgzNCwgMHgzNSwgMHgzNiwgMHgzNywgMHgzOCwgMHgzOSwgMHgzYSwgMHgzYiwgMHgzYywgMHgzZCwgMHhmZiwgMHhmZiwKKyAgICAweGZmLCAweDAwLCAweGZmLCAweGZmLCAweGZmLCAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LAorICAgIDB4MDcsIDB4MDgsIDB4MDksIDB4MGEsIDB4MGIsIDB4MGMsIDB4MGQsIDB4MGUsIDB4MGYsIDB4MTAsIDB4MTEsIDB4MTIsCisgICAgMHgxMywgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywgMHgxOCwgMHgxOSwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwKKyAgICAweGZmLCAweDFhLCAweDFiLCAweDFjLCAweDFkLCAweDFlLCAweDFmLCAweDIwLCAweDIxLCAweDIyLCAweDIzLCAweDI0LAorICAgIDB4MjUsIDB4MjYsIDB4MjcsIDB4MjgsIDB4MjksIDB4MmEsIDB4MmIsIDB4MmMsIDB4MmQsIDB4MmUsIDB4MmYsIDB4MzAsCisgICAgMHgzMSwgMHgzMiwgMHgzMywgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwKK307CisKK3N0YXRpYyB1aW50OF90IGJhc2U2NF9hc2NpaV90b19iaW4odWludDhfdCBhKSB7CisgIGlmIChhID49IDEyOCkgeworICAgIHJldHVybiAweEZGOworICB9CisKKyAgcmV0dXJuIGtCYXNlNjRBU0NJSVRvQmluRGF0YVthXTsKK30KKworLyogYmFzZTY0X2RlY29kZV9xdWFkIGRlY29kZXMgYSBzaW5nbGUg4oCccXVhZOKAnSAoaS5lLiBmb3VyIGNoYXJhY3RlcnMpIG9mIGJhc2U2NAorICogZGF0YSBhbmQgd3JpdGVzIHVwIHRvIHRocmVlIGJ5dGVzIHRvIHxvdXR8LiBJdCBzZXRzIHwqb3V0X251bV9ieXRlc3wgdG8gdGhlCisgKiBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiwgd2hpY2ggd2lsbCBiZSBsZXNzIHRoYW4gdGhyZWUgaWYgdGhlIHF1YWQgZW5kZWQKKyAqIHdpdGggcGFkZGluZy4gIEl0IHJldHVybnMgb25lIG9uIHN1Y2Nlc3Mgb3IgemVybyBvbiBlcnJvci4gKi8KK3N0YXRpYyBpbnQgYmFzZTY0X2RlY29kZV9xdWFkKHVpbnQ4X3QgKm91dCwgc2l6ZV90ICpvdXRfbnVtX2J5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW4pIHsKKyAgY29uc3QgdWludDhfdCBhID0gYmFzZTY0X2FzY2lpX3RvX2JpbihpblswXSk7CisgIGNvbnN0IHVpbnQ4X3QgYiA9IGJhc2U2NF9hc2NpaV90b19iaW4oaW5bMV0pOworICBjb25zdCB1aW50OF90IGMgPSBiYXNlNjRfYXNjaWlfdG9fYmluKGluWzJdKTsKKyAgY29uc3QgdWludDhfdCBkID0gYmFzZTY0X2FzY2lpX3RvX2JpbihpblszXSk7CisgIGlmIChhID09IDB4ZmYgfHwgYiA9PSAweGZmIHx8IGMgPT0gMHhmZiB8fCBkID09IDB4ZmYpIHsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIGNvbnN0IHVpbnQzMl90IHYgPSAoKHVpbnQzMl90KWEpIDw8IDE4IHwgKCh1aW50MzJfdCliKSA8PCAxMiB8CisgICAgICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KWMpIDw8IDYgfCAodWludDMyX3QpZDsKKworICBjb25zdCB1bnNpZ25lZCBwYWRkaW5nX3BhdHRlcm4gPSAoaW5bMF0gPT0gJz0nKSA8PCAzIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluWzFdID09ICc9JykgPDwgMiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpblsyXSA9PSAnPScpIDw8IDEgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5bM10gPT0gJz0nKTsKKworICBzd2l0Y2ggKHBhZGRpbmdfcGF0dGVybikgeworICAgIGNhc2UgMDoKKyAgICAgIC8qIFRoZSBjb21tb24gY2FzZSBvZiBubyBwYWRkaW5nLiAqLworICAgICAgKm91dF9udW1fYnl0ZXMgPSAzOworICAgICAgb3V0WzBdID0gdiA+PiAxNjsKKyAgICAgIG91dFsxXSA9IHYgPj4gODsKKyAgICAgIG91dFsyXSA9IHY7CisgICAgICBicmVhazsKKworICAgIGNhc2UgMTogLyogeHh4PSAqLworICAgICAgKm91dF9udW1fYnl0ZXMgPSAyOworICAgICAgb3V0WzBdID0gdiA+PiAxNjsKKyAgICAgIG91dFsxXSA9IHYgPj4gODsKKyAgICAgIGJyZWFrOworCisgICAgY2FzZSAzOiAvKiB4eD09ICovCisgICAgICAqb3V0X251bV9ieXRlcyA9IDE7CisgICAgICBvdXRbMF0gPSB2ID4+IDE2OworICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuIDA7CisgIH0KKworICByZXR1cm4gMTsKK30KKworaW50IEVWUF9EZWNvZGVVcGRhdGUoRVZQX0VOQ09ERV9DVFggKmN0eCwgdWludDhfdCAqb3V0LCBpbnQgKm91dF9sZW4sCisgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppbiwgc2l6ZV90IGluX2xlbikgeworICAqb3V0X2xlbiA9IDA7CisKKyAgaWYgKGN0eC0+ZXJyb3JfZW5jb3VudGVyZWQpIHsKKyAgICByZXR1cm4gLTE7CisgIH0KKworICBzaXplX3QgYnl0ZXNfb3V0ID0gMCwgaTsKKyAgZm9yIChpID0gMDsgaSA8IGluX2xlbjsgaSsrKSB7CisgICAgY29uc3QgY2hhciBjID0gaW5baV07CisgICAgc3dpdGNoIChjKSB7CisgICAgICBjYXNlICcgJzoKKyAgICAgIGNhc2UgJ1x0JzoKKyAgICAgIGNhc2UgJ1xyJzoKKyAgICAgIGNhc2UgJ1xuJzoKKyAgICAgICAgY29udGludWU7CisgICAgfQorCisgICAgaWYgKGJhc2U2NF9hc2NpaV90b19iaW4oYykgPT0gMHhmZiB8fCBjdHgtPmVvZl9zZWVuKSB7CisgICAgICBjdHgtPmVycm9yX2VuY291bnRlcmVkID0gMTsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBjdHgtPmRhdGFbY3R4LT5kYXRhX3VzZWQrK10gPSBjOworICAgIGlmIChjdHgtPmRhdGFfdXNlZCA9PSA0KSB7CisgICAgICBzaXplX3QgbnVtX2J5dGVzX3Jlc3VsdGluZzsKKyAgICAgIGlmICghYmFzZTY0X2RlY29kZV9xdWFkKG91dCwgJm51bV9ieXRlc19yZXN1bHRpbmcsIGN0eC0+ZGF0YSkpIHsKKyAgICAgICAgY3R4LT5lcnJvcl9lbmNvdW50ZXJlZCA9IDE7CisgICAgICAgIHJldHVybiAtMTsKKyAgICAgIH0KKworICAgICAgY3R4LT5kYXRhX3VzZWQgPSAwOworICAgICAgYnl0ZXNfb3V0ICs9IG51bV9ieXRlc19yZXN1bHRpbmc7CisgICAgICBvdXQgKz0gbnVtX2J5dGVzX3Jlc3VsdGluZzsKKworICAgICAgaWYgKG51bV9ieXRlc19yZXN1bHRpbmcgPCAzKSB7CisgICAgICAgIGN0eC0+ZW9mX3NlZW4gPSAxOworICAgICAgfQorICAgIH0KKyAgfQorCisgIGlmIChieXRlc19vdXQgPiBJTlRfTUFYKSB7CisgICAgY3R4LT5lcnJvcl9lbmNvdW50ZXJlZCA9IDE7CisgICAgKm91dF9sZW4gPSAwOworICAgIHJldHVybiAtMTsKKyAgfQorICAqb3V0X2xlbiA9IGJ5dGVzX291dDsKKworICBpZiAoY3R4LT5lb2Zfc2VlbikgeworICAgIHJldHVybiAwOworICB9CisKKyAgcmV0dXJuIDE7Cit9CisKK2ludCBFVlBfRGVjb2RlRmluYWwoRVZQX0VOQ09ERV9DVFggKmN0eCwgdWludDhfdCAqb3V0LCBpbnQgKm91dF9sZW4pIHsKKyAgKm91dF9sZW4gPSAwOworICBpZiAoY3R4LT5lcnJvcl9lbmNvdW50ZXJlZCB8fCBjdHgtPmRhdGFfdXNlZCAhPSAwKSB7CisgICAgcmV0dXJuIC0xOworICB9CisKKyAgcmV0dXJuIDE7Cit9CisKIGludCBFVlBfRGVjb2RlQmFzZTY0KHVpbnQ4X3QgKm91dCwgc2l6ZV90ICpvdXRfbGVuLCBzaXplX3QgbWF4X291dCwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmluLCBzaXplX3QgaW5fbGVuKSB7Ci0gIHVpbnQ4X3QgYSwgYiwgYywgZDsKLSAgc2l6ZV90IHBhZF9sZW4gPSAwLCBsZW4gPSAwLCBtYXhfbGVuLCBpOwotICB1aW50MzJfdCBsOworICAqb3V0X2xlbiA9IDA7CiAKLSAgaWYgKCFFVlBfRGVjb2RlZExlbmd0aCgmbWF4X2xlbiwgaW5fbGVuKSB8fCBtYXhfb3V0IDwgbWF4X2xlbikgeworICBpZiAoaW5fbGVuICUgNCAhPSAwKSB7CiAgICAgcmV0dXJuIDA7CiAgIH0KIAorICBzaXplX3QgbWF4X2xlbjsKKyAgaWYgKCFFVlBfRGVjb2RlZExlbmd0aCgmbWF4X2xlbiwgaW5fbGVuKSB8fAorICAgICAgbWF4X291dCA8IG1heF9sZW4pIHsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIHNpemVfdCBpLCBieXRlc19vdXQgPSAwOwogICBmb3IgKGkgPSAwOyBpIDwgaW5fbGVuOyBpICs9IDQpIHsKLSAgICBhID0gY29udl9hc2NpaTJiaW4oKihpbisrKSk7Ci0gICAgYiA9IGNvbnZfYXNjaWkyYmluKCooaW4rKykpOwotICAgIGlmIChpICsgNCA9PSBpbl9sZW4gJiYgaW5bMV0gPT0gJz0nKSB7Ci0gICAgICAgIGlmIChpblswXSA9PSAnPScpIHsKLSAgICAgICAgICBwYWRfbGVuID0gMjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBwYWRfbGVuID0gMTsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAocGFkX2xlbiA8IDIpIHsKLSAgICAgIGMgPSBjb252X2FzY2lpMmJpbigqKGluKyspKTsKLSAgICB9IGVsc2UgewotICAgICAgYyA9IDA7Ci0gICAgfQotICAgIGlmIChwYWRfbGVuIDwgMSkgewotICAgICAgZCA9IGNvbnZfYXNjaWkyYmluKCooaW4rKykpOwotICAgIH0gZWxzZSB7Ci0gICAgICBkID0gMDsKLSAgICB9Ci0gICAgaWYgKChhICYgMHg4MCkgfHwgKGIgJiAweDgwKSB8fCAoYyAmIDB4ODApIHx8IChkICYgMHg4MCkpIHsKKyAgICBzaXplX3QgbnVtX2J5dGVzX3Jlc3VsdGluZzsKKworICAgIGlmICghYmFzZTY0X2RlY29kZV9xdWFkKG91dCwgJm51bV9ieXRlc19yZXN1bHRpbmcsICZpbltpXSkpIHsKICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBsID0gKCgoKHVpbnQzMl90KWEpIDw8IDE4TCkgfCAoKCh1aW50MzJfdCliKSA8PCAxMkwpIHwKLSAgICAgICAgICgoKHVpbnQzMl90KWMpIDw8IDZMKSB8ICgoKHVpbnQzMl90KWQpKSk7Ci0gICAgKihvdXQrKykgPSAodWludDhfdCkobCA+PiAxNkwpICYgMHhmZjsKLSAgICBpZiAocGFkX2xlbiA8IDIpIHsKLSAgICAgICoob3V0KyspID0gKHVpbnQ4X3QpKGwgPj4gOEwpICYgMHhmZjsKKworICAgIGJ5dGVzX291dCArPSBudW1fYnl0ZXNfcmVzdWx0aW5nOworICAgIG91dCArPSBudW1fYnl0ZXNfcmVzdWx0aW5nOworICAgIGlmIChudW1fYnl0ZXNfcmVzdWx0aW5nICE9IDMgJiYgaSAhPSBpbl9sZW4gLSA0KSB7CisgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgaWYgKHBhZF9sZW4gPCAxKSB7Ci0gICAgICAqKG91dCsrKSA9ICh1aW50OF90KShsKSAmIDB4ZmY7Ci0gICAgfQotICAgIGxlbiArPSAzIC0gcGFkX2xlbjsKICAgfQotICAqb3V0X2xlbiA9IGxlbjsKKworICAqb3V0X2xlbiA9IGJ5dGVzX291dDsKICAgcmV0dXJuIDE7CiB9CiAKLXZvaWQgRVZQX0RlY29kZUluaXQoRVZQX0VOQ09ERV9DVFggKmN0eCkgewotICBjdHgtPmxlbmd0aCA9IDMwOwotICBjdHgtPm51bSA9IDA7Ci0gIGN0eC0+bGluZV9udW0gPSAwOwotICBjdHgtPmV4cGVjdF9ubCA9IDA7Ci19Ci0KLWludCBFVlBfRGVjb2RlVXBkYXRlKEVWUF9FTkNPREVfQ1RYICpjdHgsIHVpbnQ4X3QgKm91dCwgaW50ICpvdXRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW4sIHNpemVfdCBpbl9sZW4pIHsKLSAgaW50IHNlb2YgPSAtMSwgZW9mID0gMCwgcnYgPSAtMSwgdiwgdG1wLCBleHBfbmw7Ci0gIHVpbnQ4X3QgKmQ7Ci0gIHVuc2lnbmVkIGksIG4sIGxuLCByZXQgPSAwOwotCi0gIG4gPSBjdHgtPm51bTsKLSAgZCA9IGN0eC0+ZW5jX2RhdGE7Ci0gIGxuID0gY3R4LT5saW5lX251bTsKLSAgZXhwX25sID0gY3R4LT5leHBlY3Rfbmw7Ci0KLSAgLyogbGFzdCBsaW5lIG9mIGlucHV0LiAqLwotICBpZiAoaW5fbGVuID09IDAgfHwgKG4gPT0gMCAmJiBjb252X2FzY2lpMmJpbihpblswXSkgPT0gQjY0X0VPRikpIHsKLSAgICBydiA9IDA7Ci0gICAgZ290byBlbmQ7Ci0gIH0KLQotICAvKiBXZSBwYXJzZSB0aGUgaW5wdXQgZGF0YSAqLwotICBmb3IgKGkgPSAwOyBpIDwgaW5fbGVuOyBpKyspIHsKLSAgICAvKiBJZiB0aGUgY3VycmVudCBsaW5lIGlzID4gODAgY2hhcmFjdGVycywgc2NyZWFtIGFsb3QgKi8KLSAgICBpZiAobG4gPj0gODApIHsKLSAgICAgIHJ2ID0gLTE7Ci0gICAgICBnb3RvIGVuZDsKLSAgICB9Ci0KLSAgICAvKiBHZXQgY2hhciBhbmQgcHV0IGl0IGludG8gdGhlIGJ1ZmZlciAqLwotICAgIHRtcCA9ICooaW4rKyk7Ci0gICAgdiA9IGNvbnZfYXNjaWkyYmluKHRtcCk7Ci0gICAgLyogb25seSBzYXZlIHRoZSBnb29kIGRhdGEgOi0pICovCi0gICAgaWYgKCFCNjRfTk9UX0JBU0U2NCh2KSkgewotICAgICAgYXNzZXJ0KG4gPCBzaXplb2YoY3R4LT5lbmNfZGF0YSkpOwotICAgICAgZFtuKytdID0gdG1wOwotICAgICAgbG4rKzsKLSAgICB9IGVsc2UgaWYgKHYgPT0gQjY0X0VSUk9SKSB7Ci0gICAgICBydiA9IC0xOwotICAgICAgZ290byBlbmQ7Ci0gICAgfQotCi0gICAgLyogaGF2ZSB3ZSBzZWVuIGEgJz0nIHdoaWNoIGlzICdkZWZpbml0bHknIHRoZSBsYXN0Ci0gICAgICogaW5wdXQgbGluZS4gIHNlb2Ygd2lsbCBwb2ludCB0byB0aGUgY2hhcmFjdGVyIHRoYXQKLSAgICAgKiBob2xkcyBpdC4gYW5kIGVvZiB3aWxsIGhvbGQgaG93IG1hbnkgY2hhcmFjdGVycyB0bwotICAgICAqIGNob3Agb2ZmLiAqLwotICAgIGlmICh0bXAgPT0gJz0nKSB7Ci0gICAgICBpZiAoc2VvZiA9PSAtMSkgewotICAgICAgICBzZW9mID0gbjsKLSAgICAgIH0KLSAgICAgIGVvZisrOwotICAgICAgaWYgKGVvZiA+IDIpIHsKLSAgICAgICAgLyogVGhlcmUgYXJlLCBhdCBtb3N0LCB0d28gZXF1YWxzIHNpZ25zIGF0IHRoZSBlbmQgb2YgYmFzZTY0IGRhdGEuICovCi0gICAgICAgIHJ2ID0gLTE7Ci0gICAgICAgIGdvdG8gZW5kOwotICAgICAgfQotICAgIH0KLQotICAgIGlmICh2ID09IEI2NF9DUikgewotICAgICAgbG4gPSAwOwotICAgICAgaWYgKGV4cF9ubCkgewotICAgICAgICBjb250aW51ZTsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiBlb2xuICovCi0gICAgaWYgKHYgPT0gQjY0X0VPTE4pIHsKLSAgICAgIGxuID0gMDsKLSAgICAgIGlmIChleHBfbmwpIHsKLSAgICAgICAgZXhwX25sID0gMDsKLSAgICAgICAgY29udGludWU7Ci0gICAgICB9Ci0gICAgfQotICAgIGV4cF9ubCA9IDA7Ci0KLSAgICAvKiBJZiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiBpbnB1dCBhbmQgaXQgbG9va3MgbGlrZSBhCi0gICAgICogbGluZSwgcHJvY2VzcyBpdC4gKi8KLSAgICBpZiAoKGkgKyAxKSA9PSBpbl9sZW4gJiYgKCgobiAmIDMpID09IDApIHx8IGVvZikpIHsKLSAgICAgIHYgPSBCNjRfRU9GOwotICAgICAgLyogSW4gY2FzZSB0aGluZ3Mgd2VyZSBnaXZlbiB1cyBpbiByZWFsbHkgc21hbGwKLSAgICAgICAgIHJlY29yZHMgKHNvIHR3byAnPScgd2VyZSBnaXZlbiBpbiBzZXBhcmF0ZQotICAgICAgICAgdXBkYXRlcyksIGVvZiBtYXkgY29udGFpbiB0aGUgaW5jb3JyZWN0IG51bWJlcgotICAgICAgICAgb2YgZW5kaW5nIGJ5dGVzIHRvIHNraXAsIHNvIGxldCdzIHJlZG8gdGhlIGNvdW50ICovCi0gICAgICBlb2YgPSAwOwotICAgICAgaWYgKGRbbiAtIDFdID09ICc9JykgewotICAgICAgICBlb2YrKzsKLSAgICAgIH0KLSAgICAgIGlmIChkW24gLSAyXSA9PSAnPScpIHsKLSAgICAgICAgZW9mKys7Ci0gICAgICB9Ci0gICAgICAvKiBUaGVyZSB3aWxsIG5ldmVyIGJlIG1vcmUgdGhhbiB0d28gJz0nICovCi0gICAgfQotCi0gICAgaWYgKCh2ID09IEI2NF9FT0YgJiYgKG4gJiAzKSA9PSAwKSB8fCBuID49IDY0KSB7Ci0gICAgICAvKiBUaGlzIGlzIG5lZWRlZCB0byB3b3JrIGNvcnJlY3RseSBvbiA2NCBieXRlIGlucHV0Ci0gICAgICAgKiBsaW5lcy4gIFdlIHByb2Nlc3MgdGhlIGxpbmUgYW5kIHRoZW4gbmVlZCB0bwotICAgICAgICogYWNjZXB0IHRoZSAnXG4nICovCi0gICAgICBpZiAodiAhPSBCNjRfRU9GICYmIG4gPj0gNjQpIHsKLSAgICAgICAgZXhwX25sID0gMTsKLSAgICAgIH0KLSAgICAgIGlmIChuID4gMCkgewotICAgICAgICAvKiBUT0RPKGRhdmlkYmVuKTogU3dpdGNoIHRoaXMgdG8gRVZQX0RlY29kZUJhc2U2NC4gKi8KLSAgICAgICAgdiA9IEVWUF9EZWNvZGVCbG9jayhvdXQsIGQsIG4pOwotICAgICAgICBuID0gMDsKLSAgICAgICAgaWYgKHYgPCAwKSB7Ci0gICAgICAgICAgcnYgPSAwOwotICAgICAgICAgIGdvdG8gZW5kOwotICAgICAgICB9Ci0gICAgICAgIGlmIChlb2YgPiB2KSB7Ci0gICAgICAgICAgcnYgPSAtMTsKLSAgICAgICAgICBnb3RvIGVuZDsKLSAgICAgICAgfQotICAgICAgICByZXQgKz0gKHYgLSBlb2YpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgZW9mID0gMTsKLSAgICAgICAgdiA9IDA7Ci0gICAgICB9Ci0KLSAgICAgIC8qIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBoYWQgYSBzaG9ydAotICAgICAgICogYnV0IHZhbGlkIGlucHV0IGxpbmUgKi8KLSAgICAgIGlmICh2IDwgKGludCljdHgtPmxlbmd0aCAmJiBlb2YpIHsKLSAgICAgICAgcnYgPSAwOwotICAgICAgICBnb3RvIGVuZDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGN0eC0+bGVuZ3RoID0gdjsKLSAgICAgIH0KLQotICAgICAgaWYgKHNlb2YgPj0gMCkgewotICAgICAgICBydiA9IDA7Ci0gICAgICAgIGdvdG8gZW5kOwotICAgICAgfQotICAgICAgb3V0ICs9IHY7Ci0gICAgfQotICB9Ci0gIHJ2ID0gMTsKLQotZW5kOgotICAqb3V0X2xlbiA9IHJldDsKLSAgY3R4LT5udW0gPSBuOwotICBjdHgtPmxpbmVfbnVtID0gbG47Ci0gIGN0eC0+ZXhwZWN0X25sID0gZXhwX25sOwotICByZXR1cm4gcnY7Ci19Ci0KLWludCBFVlBfRGVjb2RlRmluYWwoRVZQX0VOQ09ERV9DVFggKmN0eCwgdWludDhfdCAqb3V0LCBpbnQgKm91dGwpIHsKLSAgaW50IGk7Ci0KLSAgKm91dGwgPSAwOwotICBpZiAoY3R4LT5udW0gIT0gMCkgewotICAgIC8qIFRPRE8oZGF2aWRiZW4pOiBTd2l0Y2ggdGhpcyB0byBFVlBfRGVjb2RlQmFzZTY0LiAqLwotICAgIGkgPSBFVlBfRGVjb2RlQmxvY2sob3V0LCBjdHgtPmVuY19kYXRhLCBjdHgtPm51bSk7Ci0gICAgaWYgKGkgPCAwKSB7Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIGN0eC0+bnVtID0gMDsKLSAgICAqb3V0bCA9IGk7Ci0gICAgcmV0dXJuIDE7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIDE7Ci0gIH0KLX0KLQogaW50IEVWUF9EZWNvZGVCbG9jayh1aW50OF90ICpkc3QsIGNvbnN0IHVpbnQ4X3QgKnNyYywgc2l6ZV90IHNyY19sZW4pIHsKLSAgc2l6ZV90IGRzdF9sZW47CisgIC8qIFRyaW0gc3BhY2VzIGFuZCB0YWJzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgaW5wdXQuICovCisgIHdoaWxlIChzcmNfbGVuID4gMCkgeworICAgIGlmIChzcmNbMF0gIT0gJyAnICYmIHNyY1swXSAhPSAnXHQnKSB7CisgICAgICBicmVhazsKKyAgICB9CiAKLSAgLyogdHJpbSB3aGl0ZSBzcGFjZSBmcm9tIHRoZSBzdGFydCBvZiB0aGUgbGluZS4gKi8KLSAgd2hpbGUgKGNvbnZfYXNjaWkyYmluKCpzcmMpID09IEI2NF9XUyAmJiBzcmNfbGVuID4gMCkgewogICAgIHNyYysrOwogICAgIHNyY19sZW4tLTsKICAgfQogCi0gIC8qIHN0cmlwIG9mZiBzdHVmZiBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lCi0gICAqIGFzY2lpMmJpbiB2YWx1ZXMgQjY0X1dTLCBCNjRfRU9MTiwgQjY0X0VPTE4gYW5kIEI2NF9FT0YgKi8KLSAgd2hpbGUgKHNyY19sZW4gPiAzICYmIEI2NF9OT1RfQkFTRTY0KGNvbnZfYXNjaWkyYmluKHNyY1tzcmNfbGVuIC0gMV0pKSkgewotICAgIHNyY19sZW4tLTsKKyAgLyogVHJpbSBuZXdsaW5lcywgc3BhY2VzIGFuZCB0YWJzIGZyb20gdGhlIGVuZCBvZiB0aGUgbGluZS4gKi8KKyAgd2hpbGUgKHNyY19sZW4gPiAwKSB7CisgICAgc3dpdGNoIChzcmNbc3JjX2xlbi0xXSkgeworICAgICAgY2FzZSAnICc6CisgICAgICBjYXNlICdcdCc6CisgICAgICBjYXNlICdccic6CisgICAgICBjYXNlICdcbic6CisgICAgICAgIHNyY19sZW4tLTsKKyAgICAgICAgY29udGludWU7CisgICAgfQorCisgICAgYnJlYWs7CiAgIH0KIAotICBpZiAoIUVWUF9EZWNvZGVkTGVuZ3RoKCZkc3RfbGVuLCBzcmNfbGVuKSB8fCBkc3RfbGVuID4gSU5UX01BWCkgewotICAgIHJldHVybiAtMTsKLSAgfQotICBpZiAoIUVWUF9EZWNvZGVCYXNlNjQoZHN0LCAmZHN0X2xlbiwgZHN0X2xlbiwgc3JjLCBzcmNfbGVuKSkgeworICBzaXplX3QgZHN0X2xlbjsKKyAgaWYgKCFFVlBfRGVjb2RlZExlbmd0aCgmZHN0X2xlbiwgc3JjX2xlbikgfHwKKyAgICAgIGRzdF9sZW4gPiBJTlRfTUFYIHx8CisgICAgICAhRVZQX0RlY29kZUJhc2U2NChkc3QsICZkc3RfbGVuLCBkc3RfbGVuLCBzcmMsIHNyY19sZW4pKSB7CiAgICAgcmV0dXJuIC0xOwogICB9CiAKQEAgLTQ2MSwyMSArNDM2LDMgQEAKIAogICByZXR1cm4gZHN0X2xlbjsKIH0KLQotaW50IEVWUF9FbmNvZGVkTGVuZ3RoKHNpemVfdCAqb3V0X2xlbiwgc2l6ZV90IGxlbikgewotICBpZiAobGVuICsgMiA8IGxlbikgewotICAgIHJldHVybiAwOwotICB9Ci0gIGxlbiArPSAyOwotICBsZW4gLz0gMzsKLSAgaWYgKCgobGVuIDw8IDIpID4+IDIpICE9IGxlbikgewotICAgIHJldHVybiAwOwotICB9Ci0gIGxlbiA8PD0gMjsKLSAgaWYgKGxlbiArIDEgPCBsZW4pIHsKLSAgICByZXR1cm4gMDsKLSAgfQotICBsZW4rKzsKLSAgKm91dF9sZW4gPSBsZW47Ci0gIHJldHVybiAxOwotfQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2Jhc2U2NC9iYXNlNjRfdGVzdC5jYyBiL2NyeXB0by9iYXNlNjQvYmFzZTY0X3Rlc3QuY2MKaW5kZXggZGEwMTZlNi4uYTYwODc3MyAxMDA2NDQKLS0tIGEvY3J5cHRvL2Jhc2U2NC9iYXNlNjRfdGVzdC5jYworKysgYi9jcnlwdG8vYmFzZTY0L2Jhc2U2NF90ZXN0LmNjCkBAIC0xNSw3NiArMTUsMjAzIEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIAorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKICNpbmNsdWRlIDxvcGVuc3NsL2Jhc2U2NC5oPgogI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRvLmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KIAogCitlbnVtIGVuY29kaW5nX3JlbGF0aW9uIHsKKyAgLy8gY2Fub25pY2FsIGluZGljYXRlcyB0aGF0IHRoZSBlbmNvZGluZyBpcyB0aGUgZXhwZWN0ZWQgZW5jb2Rpbmcgb2YgdGhlCisgIC8vIGlucHV0LgorICBjYW5vbmljYWwsCisgIC8vIHZhbGlkIGluZGljYXRlcyB0aGF0IHRoZSBlbmNvZGluZyBpcyAvYS8gdmFsaWQgZW5jb2Rpbmcgb2YgdGhlIGlucHV0LCBidXQKKyAgLy8gbmVlZCBub3QgYmUgdGhlIGNhbm9uaWNhbCBvbmUuCisgIHZhbGlkLAorICAvLyBpbnZhbGlkIGluZGljYXRlcyB0aGF0IHRoZSBlbmNvZGVkIGRhdGEgaXMgdmFsaWQuCisgIGludmFsaWQsCit9OworCiBzdHJ1Y3QgVGVzdFZlY3RvciB7CisgIGVudW0gZW5jb2RpbmdfcmVsYXRpb24gcmVsYXRpb247CiAgIGNvbnN0IGNoYXIgKmRlY29kZWQ7CiAgIGNvbnN0IGNoYXIgKmVuY29kZWQ7CiB9OwogCiAvLyBUZXN0IHZlY3RvcnMgZnJvbSBSRkMgNDY0OC4KIHN0YXRpYyBjb25zdCBUZXN0VmVjdG9yIGtUZXN0VmVjdG9yc1tdID0gewotICB7ICIiLCAiIiB9LAotICB7ICJmIiAsICJaZz09IiB9LAotICB7ICJmbyIsICJabTg9IiB9LAotICB7ICJmb28iLCAiWm05diIgfSwKLSAgeyAiZm9vYiIsICJabTl2WWc9PSIgfSwKLSAgeyAiZm9vYmEiLCAiWm05dlltRT0iIH0sCi0gIHsgImZvb2JhciIsICJabTl2WW1GeSIgfSwKKyAgICB7Y2Fub25pY2FsLCAiIiwgIiJ9LAorICAgIHtjYW5vbmljYWwsICJmIiwgIlpnPT1cbiJ9LAorICAgIHtjYW5vbmljYWwsICJmbyIsICJabTg9XG4ifSwKKyAgICB7Y2Fub25pY2FsLCAiZm9vIiwgIlptOXZcbiJ9LAorICAgIHtjYW5vbmljYWwsICJmb29iIiwgIlptOXZZZz09XG4ifSwKKyAgICB7Y2Fub25pY2FsLCAiZm9vYmEiLCAiWm05dlltRT1cbiJ9LAorICAgIHtjYW5vbmljYWwsICJmb29iYXIiLCAiWm05dlltRnlcbiJ9LAorICAgIHt2YWxpZCwgImZvb2JhciIsICJabTl2WW1GeVxuXG4ifSwKKyAgICB7dmFsaWQsICJmb29iYXIiLCAiIFptOXZZbUZ5XG5cbiJ9LAorICAgIHt2YWxpZCwgImZvb2JhciIsICIgWiBtIDkgdiBZIG0gRiB5XG5cbiJ9LAorICAgIHtpbnZhbGlkLCAiIiwgIlptOXZZbUZ5PVxuIn0sCisgICAge2ludmFsaWQsICIiLCAiWm05dlltRnk9PVxuIn0sCisgICAge2ludmFsaWQsICIiLCAiWm05dlltRnk9PT1cbiJ9LAorICAgIHtpbnZhbGlkLCAiIiwgIloifSwKKyAgICB7aW52YWxpZCwgIiIsICJaXG4ifSwKKyAgICB7aW52YWxpZCwgIiIsICJhYiFjIn0sCisgICAge2ludmFsaWQsICIiLCAiYWI9YyJ9LAorICAgIHtpbnZhbGlkLCAiIiwgImFiYyJ9LAorCisgICAge2Nhbm9uaWNhbCwgInh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgiLAorICAgICAiZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUE9PVxuIn0sCisgICAge3ZhbGlkLCAieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eCIsCisgICAgICJlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlQVxuPT1cbiJ9LAorICAgIHt2YWxpZCwgInh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgiLAorICAgICAiZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUE9XG49XG4ifSwKKyAgICB7aW52YWxpZCwgIiIsCisgICAgICJlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlQT1cbj09XG4ifSwKKyAgICB7Y2Fub25pY2FsLCAieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4IiwKKyAgICAgImVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRcbmVIaDRlSGgiCisgICAgICI0ZUhoNGVIaDRcbiJ9LAorICAgIHtjYW5vbmljYWwsCisgICAgICJ4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4IiwKKyAgICAgImVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRcbmVIaDRlSGgiCisgICAgICI0ZUhoNGVIaDRlSGg0ZUE9PVxuIn0sCisgICAge3ZhbGlkLCAieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eCIsCisgICAgICJlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGhcbjRlSGg0ZUhoIgorICAgICAiNGVIaDRlSGg0ZUhoNGVBPT1cbiJ9LAorICAgIHt2YWxpZCwgInh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgiLAorICAgICAiZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZSIKKyAgICAgIkhoNGVIaDRlSGg0ZUE9PVxuIn0sCisgICAge2ludmFsaWQsICIiLAorICAgICAiZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUE9PSIKKyAgICAgIlxuZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0XG4ifSwKKworICAgIC8vIEEgJy0nIGhhcyB0cmFkaXRpb25hbGx5IGJlZW4gdHJlYXRlZCBhcyB0aGUgZW5kIG9mIHRoZSBkYXRhIGJ5IE9wZW5TU0wKKyAgICAvLyBhbmQgYW55dGhpbmcgZm9sbG93aW5nIHdvdWxkIGJlIGlnbm9yZWQuIEJvcmluZ1NTTCBkb2VzIG5vdCBhY2NlcHQgdGhpcworICAgIC8vIG5vbi1zdGFuZGFyZCBleHRlbnNpb24uCisgICAge2ludmFsaWQsICIiLCAiWm05dlltRnktYW55dGhpbmdnb2VzIn0sCisgICAge2ludmFsaWQsICIiLCAiWm05dlltRnlcbi1hbnl0aGluZ2dvZXMifSwKKworICAgIC8vIENWRS0yMDE1LTAyOTIKKyAgICB7aW52YWxpZCwgIiIsCisgICAgICJaVzVqYjJSbElHMWxDZz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgorICAgICAiPT09PT09PVxuIn0sCiB9OwogCiBzdGF0aWMgY29uc3Qgc2l6ZV90IGtOdW1UZXN0cyA9IHNpemVvZihrVGVzdFZlY3RvcnMpIC8gc2l6ZW9mKGtUZXN0VmVjdG9yc1swXSk7CiAKLXN0YXRpYyBib29sIFRlc3RFbmNvZGUoKSB7Ci0gIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga051bVRlc3RzOyBpKyspIHsKKy8vIFJlbW92ZU5ld2xpbmVzIHJldHVybnMgYSBjb3B5IG9mIHxpbnwgd2l0aCBhbGwgJ1xuJyBjaGFyYWN0ZXJzIHJlbW92ZWQuCitzdGF0aWMgc3RkOjpzdHJpbmcgUmVtb3ZlTmV3bGluZXMoY29uc3QgY2hhciAqaW4pIHsKKyAgc3RkOjpzdHJpbmcgcmV0OworICBjb25zdCBzaXplX3QgaW5fbGVuID0gc3RybGVuKGluKTsKKworICBzaXplX3QgaTsKKyAgZm9yIChpID0gMDsgaSA8IGluX2xlbjsgaSsrKSB7CisgICAgaWYgKGluW2ldICE9ICdcbicpIHsKKyAgICAgIHJldC5wdXNoX2JhY2soaW5baV0pOworICAgIH0KKyAgfQorCisgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBib29sIFRlc3RFbmNvZGVCbG9jaygpIHsKKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGtOdW1UZXN0czsgaSsrKSB7CiAgICAgY29uc3QgVGVzdFZlY3RvciAqdCA9ICZrVGVzdFZlY3RvcnNbaV07Ci0gICAgdWludDhfdCBvdXRbOV07Ci0gICAgc2l6ZV90IGxlbiA9IEVWUF9FbmNvZGVCbG9jayhvdXQsIChjb25zdCB1aW50OF90Kil0LT5kZWNvZGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKHQtPmRlY29kZWQpKTsKLSAgICBpZiAobGVuICE9IHN0cmxlbih0LT5lbmNvZGVkKSB8fAotICAgICAgICBtZW1jbXAob3V0LCB0LT5lbmNvZGVkLCBsZW4pICE9IDApIHsKKyAgICBpZiAodC0+cmVsYXRpb24gIT0gY2Fub25pY2FsKSB7CisgICAgICBjb250aW51ZTsKKyAgICB9CisKKyAgICBjb25zdCBzaXplX3QgZGVjb2RlZF9sZW4gPSBzdHJsZW4odC0+ZGVjb2RlZCk7CisgICAgc2l6ZV90IG1heF9lbmNvZGVkX2xlbjsKKyAgICBpZiAoIUVWUF9FbmNvZGVkTGVuZ3RoKCZtYXhfZW5jb2RlZF9sZW4sIGRlY29kZWRfbGVuKSkgeworICAgICAgZnByaW50ZihzdGRlcnIsICIjJXU6IEVWUF9FbmNvZGVkTGVuZ3RoIGZhaWxlZFxuIiwgaSk7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gb3V0X3ZlYyhtYXhfZW5jb2RlZF9sZW4pOworICAgIHVpbnQ4X3QgKm91dCA9IG91dF92ZWMuZGF0YSgpOworICAgIHNpemVfdCBsZW4gPSBFVlBfRW5jb2RlQmxvY2sob3V0LCAoY29uc3QgdWludDhfdCAqKXQtPmRlY29kZWQsIGRlY29kZWRfbGVuKTsKKworICAgIHN0ZDo6c3RyaW5nIGVuY29kZWQoUmVtb3ZlTmV3bGluZXModC0+ZW5jb2RlZCkpOworICAgIGlmIChsZW4gIT0gZW5jb2RlZC5zaXplKCkgfHwKKyAgICAgICAgbWVtY21wKG91dCwgZW5jb2RlZC5kYXRhKCksIGxlbikgIT0gMCkgewogICAgICAgZnByaW50ZihzdGRlcnIsICJlbmNvZGUoXCIlc1wiKSA9IFwiJS4qc1wiLCB3YW50IFwiJXNcIlxuIiwKLSAgICAgICAgICAgICAgdC0+ZGVjb2RlZCwgKGludClsZW4sIChjb25zdCBjaGFyKilvdXQsIHQtPmVuY29kZWQpOworICAgICAgICAgICAgICB0LT5kZWNvZGVkLCAoaW50KWxlbiwgKGNvbnN0IGNoYXIqKW91dCwgZW5jb2RlZC5jX3N0cigpKTsKICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgIH0KKwogICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgVGVzdERlY29kZSgpIHsKLSAgdWludDhfdCBvdXRbNl07CitzdGF0aWMgYm9vbCBUZXN0RGVjb2RlQmFzZTY0KCkgewogICBzaXplX3QgbGVuOwogCi0gIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga051bVRlc3RzOyBpKyspIHsKLSAgICAvLyBUZXN0IHRoZSBub3JtYWwgQVBJLgorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwga051bVRlc3RzOyBpKyspIHsKICAgICBjb25zdCBUZXN0VmVjdG9yICp0ID0gJmtUZXN0VmVjdG9yc1tpXTsKLSAgICBzaXplX3QgZXhwZWN0ZWRfbGVuID0gc3RybGVuKHQtPmRlY29kZWQpOwotICAgIGlmICghRVZQX0RlY29kZUJhc2U2NChvdXQsICZsZW4sIHNpemVvZihvdXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgdWludDhfdCopdC0+ZW5jb2RlZCwgc3RybGVuKHQtPmVuY29kZWQpKSkgewotICAgICAgZnByaW50ZihzdGRlcnIsICJkZWNvZGUoXCIlc1wiKSBmYWlsZWRcbiIsIHQtPmVuY29kZWQpOwotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAobGVuICE9IHN0cmxlbih0LT5kZWNvZGVkKSB8fAotICAgICAgICBtZW1jbXAob3V0LCB0LT5kZWNvZGVkLCBsZW4pICE9IDApIHsKLSAgICAgIGZwcmludGYoc3RkZXJyLCAiZGVjb2RlKFwiJXNcIikgPSBcIiUuKnNcIiwgd2FudCBcIiVzXCJcbiIsCi0gICAgICAgICAgICAgIHQtPmVuY29kZWQsIChpbnQpbGVuLCAoY29uc3QgY2hhciopb3V0LCB0LT5kZWNvZGVkKTsKLSAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICh0LT5yZWxhdGlvbiA9PSB2YWxpZCkgeworICAgICAgLy8gVGhlIG5vbi1jYW5vbmljYWwgZW5jb2RpbmdzIHdpbGwgZ2VuZXJhbGx5IGhhdmUgb2RkIHdoaXRlc3BhY2UgZXRjCisgICAgICAvLyB0aGF0IHxFVlBfRGVjb2RlQmFzZTY0fCB3aWxsIHJlamVjdC4KKyAgICAgIGNvbnRpbnVlOwogICAgIH0KIAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGVuY29kZWQoUmVtb3ZlTmV3bGluZXModC0+ZW5jb2RlZCkpOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG91dF92ZWMoZW5jb2RlZC5zaXplKCkpOworICAgIHVpbnQ4X3QgKm91dCA9IG91dF92ZWMuZGF0YSgpOworCisgICAgaW50IG9rID0gRVZQX0RlY29kZUJhc2U2NChvdXQsICZsZW4sIG91dF92ZWMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHVpbnQ4X3QgKillbmNvZGVkLmRhdGEoKSwgZW5jb2RlZC5zaXplKCkpOworCisgICAgaWYgKHQtPnJlbGF0aW9uID09IGludmFsaWQpIHsKKyAgICAgIGlmIChvaykgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImRlY29kZShcIiVzXCIpIGRpZG4ndCBmYWlsIGJ1dCBzaG91bGQgaGF2ZVxuIiwKKyAgICAgICAgICAgICAgICBlbmNvZGVkLmNfc3RyKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgfSBlbHNlIGlmICh0LT5yZWxhdGlvbiA9PSBjYW5vbmljYWwpIHsKKyAgICAgIGlmICghb2spIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJkZWNvZGUoXCIlc1wiKSBmYWlsZWRcbiIsIGVuY29kZWQuY19zdHIoKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKworICAgICAgaWYgKGxlbiAhPSBzdHJsZW4odC0+ZGVjb2RlZCkgfHwKKyAgICAgICAgICBtZW1jbXAob3V0LCB0LT5kZWNvZGVkLCBsZW4pICE9IDApIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJkZWNvZGUoXCIlc1wiKSA9IFwiJS4qc1wiLCB3YW50IFwiJXNcIlxuIiwKKyAgICAgICAgICAgICAgICBlbmNvZGVkLmNfc3RyKCksIChpbnQpbGVuLCAoY29uc3QgY2hhciopb3V0LCB0LT5kZWNvZGVkKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgIH0KKyAgfQorCisgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBUZXN0RGVjb2RlQmxvY2soKSB7CisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBrTnVtVGVzdHM7IGkrKykgeworICAgIGNvbnN0IFRlc3RWZWN0b3IgKnQgPSAma1Rlc3RWZWN0b3JzW2ldOworICAgIGlmICh0LT5yZWxhdGlvbiAhPSBjYW5vbmljYWwpIHsKKyAgICAgIGNvbnRpbnVlOworICAgIH0KKworICAgIHN0ZDo6c3RyaW5nIGVuY29kZWQoUmVtb3ZlTmV3bGluZXModC0+ZW5jb2RlZCkpOworCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gb3V0X3ZlYyhlbmNvZGVkLnNpemUoKSk7CisgICAgdWludDhfdCAqb3V0ID0gb3V0X3ZlYy5kYXRhKCk7CisKICAgICAvLyBUZXN0IHRoYXQgdGhlIHBhZGRpbmcgYmVoYXZpb3Igb2YgdGhlIGRlcHJlY2F0ZWQgQVBJIGlzIHByZXNlcnZlZC4KLSAgICBpbnQgcmV0ID0gRVZQX0RlY29kZUJsb2NrKG91dCwgKGNvbnN0IHVpbnQ4X3QqKXQtPmVuY29kZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4odC0+ZW5jb2RlZCkpOworICAgIGludCByZXQgPQorICAgICAgICBFVlBfRGVjb2RlQmxvY2sob3V0LCAoY29uc3QgdWludDhfdCAqKWVuY29kZWQuZGF0YSgpLCBlbmNvZGVkLnNpemUoKSk7CiAgICAgaWYgKHJldCA8IDApIHsKLSAgICAgIGZwcmludGYoc3RkZXJyLCAiZGVjb2RlKFwiJXNcIikgZmFpbGVkXG4iLCB0LT5lbmNvZGVkKTsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiRVZQX0RlY29kZUJsb2NrKFwiJXNcIikgZmFpbGVkXG4iLCB0LT5lbmNvZGVkKTsKICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgaWYgKHJldCAlIDMgIT0gMCkgewogICAgICAgZnByaW50ZihzdGRlcnIsICJFVlBfRGVjb2RlQmxvY2sgZGlkIG5vdCBpZ25vcmUgcGFkZGluZ1xuIik7CiAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorICAgIHNpemVfdCBleHBlY3RlZF9sZW4gPSBzdHJsZW4odC0+ZGVjb2RlZCk7CiAgICAgaWYgKGV4cGVjdGVkX2xlbiAlIDMgIT0gMCkgewogICAgICAgcmV0IC09IDMgLSAoZXhwZWN0ZWRfbGVuICUgMyk7CiAgICAgfQpAQCAtOTYsMTkgKzIyMywxNTUgQEAKICAgICB9CiAgIH0KIAotICBpZiAoRVZQX0RlY29kZUJhc2U2NChvdXQsICZsZW4sIHNpemVvZihvdXQpLCAoY29uc3QgdWludDhfdCopImEhYmMiLCA0KSkgewotICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHJlamVjdCBpbnZhbGlkIGNoYXJhY3RlcnMgaW4gdGhlIG1pZGRsZS5cbiIpOwotICAgIHJldHVybiBmYWxzZTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIFRlc3RFbmNvZGVEZWNvZGUoKSB7CisgIGZvciAodW5zaWduZWQgdGVzdF9udW0gPSAwOyB0ZXN0X251bSA8IGtOdW1UZXN0czsgdGVzdF9udW0rKykgeworICAgIGNvbnN0IFRlc3RWZWN0b3IgKnQgPSAma1Rlc3RWZWN0b3JzW3Rlc3RfbnVtXTsKKworICAgIEVWUF9FTkNPREVfQ1RYIGN0eDsKKyAgICBjb25zdCBzaXplX3QgZGVjb2RlZF9sZW4gPSBzdHJsZW4odC0+ZGVjb2RlZCk7CisKKyAgICBpZiAodC0+cmVsYXRpb24gPT0gY2Fub25pY2FsKSB7CisgICAgICBzaXplX3QgbWF4X2VuY29kZWRfbGVuOworICAgICAgaWYgKCFFVlBfRW5jb2RlZExlbmd0aCgmbWF4X2VuY29kZWRfbGVuLCBkZWNvZGVkX2xlbikpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIjJXU6IEVWUF9FbmNvZGVkTGVuZ3RoIGZhaWxlZFxuIiwgdGVzdF9udW0pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisKKyAgICAgIC8vIEVWUF9FbmNvZGVVcGRhdGUgd2lsbCBvdXRwdXQgbmV3IGxpbmVzIGV2ZXJ5IDY0IGJ5dGVzIG9mIG91dHB1dCBzbyB3ZQorICAgICAgLy8gbmVlZCBzbGlnaHRseSBtb3JlIHRoYW4gfEVWUF9FbmNvZGVkTGVuZ3RofCByZXR1cm5zLiAqLworICAgICAgbWF4X2VuY29kZWRfbGVuICs9IChtYXhfZW5jb2RlZF9sZW4gKyA2MykgPj4gNjsKKyAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG91dF92ZWMobWF4X2VuY29kZWRfbGVuKTsKKyAgICAgIHVpbnQ4X3QgKm91dCA9IG91dF92ZWMuZGF0YSgpOworCisgICAgICBFVlBfRW5jb2RlSW5pdCgmY3R4KTsKKworICAgICAgaW50IG91dF9sZW47CisgICAgICBFVlBfRW5jb2RlVXBkYXRlKCZjdHgsIG91dCwgJm91dF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPih0LT5kZWNvZGVkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgZGVjb2RlZF9sZW4pOworICAgICAgc2l6ZV90IHRvdGFsID0gb3V0X2xlbjsKKworICAgICAgRVZQX0VuY29kZUZpbmFsKCZjdHgsIG91dCArIHRvdGFsLCAmb3V0X2xlbik7CisgICAgICB0b3RhbCArPSBvdXRfbGVuOworCisgICAgICBpZiAodG90YWwgIT0gc3RybGVuKHQtPmVuY29kZWQpIHx8IG1lbWNtcChvdXQsIHQtPmVuY29kZWQsIHRvdGFsKSAhPSAwKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiIyV1OiBFVlBfRW5jb2RlVXBkYXRlIHByb2R1Y2VkIGRpZmZlcmVudCBvdXRwdXQ6ICclcycgKCV1KVxuIiwKKyAgICAgICAgICAgICAgICB0ZXN0X251bSwgb3V0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odG90YWwpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG91dF92ZWMoc3RybGVuKHQtPmVuY29kZWQpKTsKKyAgICB1aW50OF90ICpvdXQgPSBvdXRfdmVjLmRhdGEoKTsKKworICAgIEVWUF9EZWNvZGVJbml0KCZjdHgpOworICAgIGludCBvdXRfbGVuOworICAgIHNpemVfdCB0b3RhbCA9IDA7CisgICAgaW50IHJldCA9IEVWUF9EZWNvZGVVcGRhdGUoJmN0eCwgb3V0LCAmb3V0X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QgKj4odC0+ZW5jb2RlZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKHQtPmVuY29kZWQpKTsKKyAgICBpZiAocmV0ICE9IC0xKSB7CisgICAgICB0b3RhbCA9IG91dF9sZW47CisgICAgICByZXQgPSBFVlBfRGVjb2RlRmluYWwoJmN0eCwgb3V0ICsgdG90YWwsICZvdXRfbGVuKTsKKyAgICAgIHRvdGFsICs9IG91dF9sZW47CisgICAgfQorCisgICAgc3dpdGNoICh0LT5yZWxhdGlvbikgeworICAgICAgY2FzZSBjYW5vbmljYWw6CisgICAgICBjYXNlIHZhbGlkOgorICAgICAgICBpZiAocmV0ID09IC0xKSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIjJXU6IEVWUF9EZWNvZGVVcGRhdGUgZmFpbGVkXG4iLCB0ZXN0X251bSk7CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICh0b3RhbCAhPSBkZWNvZGVkX2xlbiB8fCBtZW1jbXAob3V0LCB0LT5kZWNvZGVkLCBkZWNvZGVkX2xlbikpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiMldTogRVZQX0RlY29kZVVwZGF0ZSBwcm9kdWNlZCBpbmNvcnJlY3Qgb3V0cHV0XG4iLAorICAgICAgICAgICAgICAgICAgdGVzdF9udW0pOworICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgICAgY2FzZSBpbnZhbGlkOgorICAgICAgICBpZiAocmV0ICE9IC0xKSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIjJXU6IEVWUF9EZWNvZGVVcGRhdGUgd2FzIHN1Y2Nlc3NmdWwgYnV0IHNob3VsZG4ndCBoYXZlIGJlZW5cbiIsIHRlc3RfbnVtKTsKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQogICB9CiAKLSAgaWYgKEVWUF9EZWNvZGVCYXNlNjQob3V0LCAmbGVuLCBzaXplb2Yob3V0KSwgKGNvbnN0IHVpbnQ4X3QqKSJhPWJjIiwgNCkpIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byByZWplY3QgaW52YWxpZCBjaGFyYWN0ZXJzIGluIHRoZSBtaWRkbGUuXG4iKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KKyAgcmV0dXJuIHRydWU7Cit9CiAKLSAgaWYgKEVWUF9EZWNvZGVCYXNlNjQob3V0LCAmbGVuLCBzaXplb2Yob3V0KSwgKGNvbnN0IHVpbnQ4X3QqKSJhYmMiLCA0KSkgewotICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHJlamVjdCBpbnZhbGlkIGlucHV0IGxlbmd0aC5cbiIpOwotICAgIHJldHVybiBmYWxzZTsKK3N0YXRpYyBib29sIFRlc3REZWNvZGVVcGRhdGVTdHJlYW1pbmcoKSB7CisgIGZvciAodW5zaWduZWQgdGVzdF9udW0gPSAwOyB0ZXN0X251bSA8IGtOdW1UZXN0czsgdGVzdF9udW0rKykgeworICAgIGNvbnN0IFRlc3RWZWN0b3IgKnQgPSAma1Rlc3RWZWN0b3JzW3Rlc3RfbnVtXTsKKyAgICBpZiAodC0+cmVsYXRpb24gPT0gaW52YWxpZCkgeworICAgICAgY29udGludWU7CisgICAgfQorCisgICAgY29uc3Qgc2l6ZV90IGVuY29kZWRfbGVuID0gc3RybGVuKHQtPmVuY29kZWQpOworCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gb3V0KGVuY29kZWRfbGVuKTsKKworICAgIGZvciAoc2l6ZV90IGNodW5rX3NpemUgPSAxOyBjaHVua19zaXplIDw9IGVuY29kZWRfbGVuOyBjaHVua19zaXplKyspIHsKKyAgICAgIHNpemVfdCBvdXRfbGVuID0gMDsKKyAgICAgIEVWUF9FTkNPREVfQ1RYIGN0eDsKKyAgICAgIEVWUF9EZWNvZGVJbml0KCZjdHgpOworCisgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVuY29kZWRfbGVuOykgeworICAgICAgICBzaXplX3QgdG9kbyA9IGVuY29kZWRfbGVuIC0gaTsKKyAgICAgICAgaWYgKHRvZG8gPiBjaHVua19zaXplKSB7CisgICAgICAgICAgdG9kbyA9IGNodW5rX3NpemU7CisgICAgICAgIH0KKworICAgICAgICBpbnQgYnl0ZXNfd3JpdHRlbjsKKyAgICAgICAgaW50IHJldCA9IEVWUF9EZWNvZGVVcGRhdGUoCisgICAgICAgICAgICAmY3R4LCBvdXQuZGF0YSgpICsgb3V0X2xlbiwgJmJ5dGVzX3dyaXR0ZW4sCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QgKj4odC0+ZW5jb2RlZCArIGkpLCB0b2RvKTsKKyAgICAgICAgaSArPSB0b2RvOworCisgICAgICAgIHN3aXRjaCAocmV0KSB7CisgICAgICAgICAgY2FzZSAtMToKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiIyV1OiBFVlBfRGVjb2RlVXBkYXRlIHJldHVybmVkIGVycm9yXG4iLCB0ZXN0X251bSk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBvdXRfbGVuICs9IGJ5dGVzX3dyaXR0ZW47CisgICAgICAgICAgICBpZiAoaSA9PSBlbmNvZGVkX2xlbiB8fAorICAgICAgICAgICAgICAgIChpICsgMSA9PSBlbmNvZGVkX2xlbiAmJiB0LT5lbmNvZGVkW2ldID09ICdcbicpIHx8CisgICAgICAgICAgICAgICAgLyogSWYgdGhlcmUgd2FzIGFuICctJyBpbiB0aGUgaW5wdXQgKHdoaWNoIG1lYW5zIOKAnEVPRuKAnSkgdGhlbgorICAgICAgICAgICAgICAgICAqIHRoaXMgbG9vcCB3aWxsIGNvbnRpbnVlIHRvIHRlc3QgdGhhdCB8RVZQX0RlY29kZVVwZGF0ZXwgd2lsbAorICAgICAgICAgICAgICAgICAqIGlnbm9yZSB0aGUgcmVtYWluZGVyIG9mIHRoZSBpbnB1dC4gKi8KKyAgICAgICAgICAgICAgICBzdHJjaHIodC0+ZW5jb2RlZCwgJy0nKSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgIiMldTogRVZQX0RlY29kZVVwZGF0ZSByZXR1cm5lZCB6ZXJvIGJlZm9yZSBlbmQgb2YgIgorICAgICAgICAgICAgICAgICAgICAiZW5jb2RlZCBkYXRhXG4iLAorICAgICAgICAgICAgICAgICAgICB0ZXN0X251bSk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgb3V0X2xlbiArPSBieXRlc193cml0dGVuOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIGludCBieXRlc193cml0dGVuOworICAgICAgaW50IHJldCA9IEVWUF9EZWNvZGVGaW5hbCgmY3R4LCBvdXQuZGF0YSgpICsgb3V0X2xlbiwgJmJ5dGVzX3dyaXR0ZW4pOworICAgICAgaWYgKHJldCA9PSAtMSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiMldTogRVZQX0RlY29kZUZpbmFsIHJldHVybmVkIGVycm9yXG4iLCB0ZXN0X251bSk7CisgICAgICAgIHJldHVybiAwOworICAgICAgfQorICAgICAgb3V0X2xlbiArPSBieXRlc193cml0dGVuOworCisgICAgICBpZiAob3V0X2xlbiAhPSBzdHJsZW4odC0+ZGVjb2RlZCkgfHwKKyAgICAgICAgICBtZW1jbXAob3V0LmRhdGEoKSwgdC0+ZGVjb2RlZCwgb3V0X2xlbikgIT0gMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiMldTogaW5jb3JyZWN0IG91dHB1dFxuIiwgdGVzdF9udW0pOworICAgICAgICByZXR1cm4gMDsKKyAgICAgIH0KKyAgICB9CiAgIH0KIAogICByZXR1cm4gdHJ1ZTsKQEAgLTExNyw4ICszODAsMTEgQEAKIGludCBtYWluKHZvaWQpIHsKICAgQ1JZUFRPX2xpYnJhcnlfaW5pdCgpOwogCi0gIGlmICghVGVzdEVuY29kZSgpIHx8Ci0gICAgICAhVGVzdERlY29kZSgpKSB7CisgIGlmICghVGVzdEVuY29kZUJsb2NrKCkgfHwKKyAgICAgICFUZXN0RGVjb2RlQmFzZTY0KCkgfHwKKyAgICAgICFUZXN0RGVjb2RlQmxvY2soKSB8fAorICAgICAgIVRlc3REZWNvZGVVcGRhdGVTdHJlYW1pbmcoKSB8fAorICAgICAgIVRlc3RFbmNvZGVEZWNvZGUoKSkgewogICAgIHJldHVybiAxOwogICB9CiAKZGlmZiAtLWdpdCBhL2RlY3JlcGl0L2Jpby9iYXNlNjRfYmlvLmMgYi9kZWNyZXBpdC9iaW8vYmFzZTY0X2Jpby5jCmluZGV4IDIwNTYxMzguLjg0MTViZmUgMTAwNjQ0Ci0tLSBhL2RlY3JlcGl0L2Jpby9iYXNlNjRfYmlvLmMKKysrIGIvZGVjcmVwaXQvYmlvL2Jhc2U2NF9iaW8uYwpAQCAtNDUyLDcgKzQ1Miw3IEBACiAgICAgY2FzZSBCSU9fQ1RSTF9XUEVORElORzogLyogTW9yZSB0byB3cml0ZSBpbiBidWZmZXIgKi8KICAgICAgIGFzc2VydChjdHgtPmJ1Zl9sZW4gPj0gY3R4LT5idWZfb2ZmKTsKICAgICAgIHJldCA9IGN0eC0+YnVmX2xlbiAtIGN0eC0+YnVmX29mZjsKLSAgICAgIGlmICgocmV0ID09IDApICYmIChjdHgtPmVuY29kZSAhPSBCNjRfTk9ORSkgJiYgKGN0eC0+YmFzZTY0Lm51bSAhPSAwKSkgeworICAgICAgaWYgKChyZXQgPT0gMCkgJiYgKGN0eC0+ZW5jb2RlICE9IEI2NF9OT05FKSAmJiAoY3R4LT5iYXNlNjQuZGF0YV91c2VkICE9IDApKSB7CiAgICAgICAgIHJldCA9IDE7CiAgICAgICB9IGVsc2UgaWYgKHJldCA8PSAwKSB7CiAgICAgICAgIHJldCA9IEJJT19jdHJsKGItPm5leHRfYmlvLCBjbWQsIG51bSwgcHRyKTsKQEAgLTQ4NCw3ICs0ODQsNyBAQAogICAgICAgICAgIGN0eC0+dG1wX2xlbiA9IDA7CiAgICAgICAgICAgZ290byBhZ2FpbjsKICAgICAgICAgfQotICAgICAgfSBlbHNlIGlmIChjdHgtPmVuY29kZSAhPSBCNjRfTk9ORSAmJiBjdHgtPmJhc2U2NC5udW0gIT0gMCkgeworICAgICAgfSBlbHNlIGlmIChjdHgtPmVuY29kZSAhPSBCNjRfTk9ORSAmJiBjdHgtPmJhc2U2NC5kYXRhX3VzZWQgIT0gMCkgewogICAgICAgICBjdHgtPmJ1Zl9vZmYgPSAwOwogICAgICAgICBFVlBfRW5jb2RlRmluYWwoJihjdHgtPmJhc2U2NCksICh1aW50OF90ICopY3R4LT5idWYsICYoY3R4LT5idWZfbGVuKSk7CiAgICAgICAgIC8qIHB1c2ggb3V0IHRoZSBieXRlcyAqLwpkaWZmIC0tZ2l0IGEvZnV6ei9DTWFrZUxpc3RzLnR4dCBiL2Z1enovQ01ha2VMaXN0cy50eHQKaW5kZXggZjMxNTM0Ny4uNWJlZjNhZSAxMDA2NDQKLS0tIGEvZnV6ei9DTWFrZUxpc3RzLnR4dAorKysgYi9mdXp6L0NNYWtlTGlzdHMudHh0CkBAIC01NSwzICs1NSwxMiBAQAogdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGNsaWVudCBGdXp6ZXIpCiB0YXJnZXRfbGlua19saWJyYXJpZXMoY2xpZW50IGNyeXB0bykKIHRhcmdldF9saW5rX2xpYnJhcmllcyhjbGllbnQgc3NsKQorCithZGRfZXhlY3V0YWJsZSgKKyAgcmVhZF9wZW0KKworICByZWFkX3BlbS5jYworKQorCit0YXJnZXRfbGlua19saWJyYXJpZXMocmVhZF9wZW0gRnV6emVyKQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKHJlYWRfcGVtIGNyeXB0bykKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW0uY2MgYi9mdXp6L3JlYWRfcGVtLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxMWM0ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtLmNjCkBAIC0wLDAgKzEsMzYgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxNiwgR29vZ2xlIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTgorICogT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4gKi8KKworI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRvLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9tZW0uaD4KKyNpbmNsdWRlIDxvcGVuc3NsL3BlbS5oPgorCisKK2V4dGVybiAiQyIgaW50IExMVk1GdXp6ZXJUZXN0T25lSW5wdXQodWludDhfdCAqYnVmLCBzaXplX3QgbGVuKSB7CisgIGNoYXIgKm5hbWUsICpoZWFkZXI7CisgIHVpbnQ4X3QgKnBlbV9kYXRhOworICBsb25nIHBlbV9sZW47CisKKyAgQklPICpiaW8gPSBCSU9fbmV3X21lbV9idWYoYnVmLCBsZW4pOworCisgIGlmIChQRU1fcmVhZF9iaW8oYmlvLCAmbmFtZSwgJmhlYWRlciwgJnBlbV9kYXRhLCAmcGVtX2xlbikgPT0gMSkgeworICAgIE9QRU5TU0xfZnJlZShuYW1lKTsKKyAgICBPUEVOU1NMX2ZyZWUoaGVhZGVyKTsKKyAgICBPUEVOU1NMX2ZyZWUocGVtX2RhdGEpOworICB9CisKKyAgQklPX2ZyZWUoYmlvKTsKKworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzAxMjcwZDU3ZWVjYWU2NGY1OWI5YjI3Y2MwNmUzZjllYWYyMzA0ZTIgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8wMTI3MGQ1N2VlY2FlNjRmNTliOWIyN2NjMDZlM2Y5ZWFmMjMwNGUyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3MDlmNGEKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8wMTI3MGQ1N2VlY2FlNjRmNTliOWIyN2NjMDZlM2Y5ZWFmMjMwNGUyCkBAIC0wLDAgKzEgQEAKKy0tLS0tQkVHSU4gTy0tLS0tLS0tClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMGFiODMxOGFjYWY2ZTY3OGRkMDJlMmI1YzM0M2VkNDExMTFiMzkzZCBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzBhYjgzMThhY2FmNmU2NzhkZDAyZTJiNWMzNDNlZDQxMTExYjM5M2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRlMGYxMgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzBhYjgzMThhY2FmNmU2NzhkZDAyZTJiNWMzNDNlZDQxMTExYjM5M2QKQEAgLTAsMCArMSBAQAorIQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzBiMDg3NjVhZDQ2YmIxMWFjNTUzNDg3NTVhZDVjOGU0Mzg2YmQyZjMgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8wYjA4NzY1YWQ0NmJiMTFhYzU1MzQ4NzU1YWQ1YzhlNDM4NmJkMmYzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwZWNlM2MKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8wYjA4NzY1YWQ0NmJiMTFhYzU1MzQ4NzU1YWQ1YzhlNDM4NmJkMmYzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzBiZGI5NjYwZjc0ZjgyYTU0NzEyMTAwMjZmZGVlMGI2NzRmMTExNGUgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8wYmRiOTY2MGY3NGY4MmE1NDcxMjEwMDI2ZmRlZTBiNjc0ZjExMTRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNDI5NzAKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8wYmRiOTY2MGY3NGY4MmE1NDcxMjEwMDI2ZmRlZTBiNjc0ZjExMTRlCkBAIC0wLDAgKzEsMzMgQEAKKy1HCistLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0tkUcKKygKKyA3LS0KKy0tQkVHSU4gBTqwNCcXEC0tLS0tCitHCitVVSAgLS0tLS1CRUdJTiAFOrA0JxcQLy0tLS0KKy0tLS0tQkVJTiAFOrA0JxcQLS0tLS0KK0cKK1VVLS0KKy0tQkVHSU4gBTqwNCcXEC0tLS0tCitHCitVVSAgLS0tLS1CRUdJTiAFMrA0JxcQLy0tLS0KKy0tLS1CRUdJTiAFOrA0JxcQLS0tLS0KK0cKK1VVICBxRword0ZVRworIGZid0ZVVSBRRword0ZVICAgICBRRword0ZVRworIGZid0ZVVSBRRword0ZVICAgZmJ3RlVVVSAgRworYndGVSAgIGYKK2J3RlUgVSAgIGZid0ZVVSAgICAgZgorYndGVSBVICAgZmJVICAgZmJ3RiAgZlVHCisgZmJ3RlUgIGYgIGZUd0ZUVSAgIGZid0ZVZigKK0ZVVSAgIGYKK2J3RlUgVSAgIGZid0ZVVe2ROyEoOymaLS0tLS1FTgQg5wIvTyE6mi0tLQorLS0tQkUtIE5JLUdPLS0tCistLS0qCisgICAgIGYKK2J3RlUgVSAgIGZiVSAgIGZidy0tLS0tQkVHLUYgIGZVClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMGM0Mjg3OTE1YTQzMmU2YjUwZTFjMmViMGY0Y2EwMzdiMTczMGFhMCBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzBjNDI4NzkxNWE0MzJlNmI1MGUxYzJlYjBmNGNhMDM3YjE3MzBhYTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJjZjAwYwotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzBjNDI4NzkxNWE0MzJlNmI1MGUxYzJlYjBmNGNhMDM3YjE3MzBhYTAKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMGQ1ODNmMmFlZTJlMTVhN2RjN2ViOTNhZjFlY2Y0NDIwM2I1MzdmNCBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzBkNTgzZjJhZWUyZTE1YTdkYzdlYjkzYWYxZWNmNDQyMDNiNTM3ZjQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc4MmRmNQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzBkNTgzZjJhZWUyZTE1YTdkYzdlYjkzYWYxZWNmNDQyMDNiNTM3ZjQKQEAgLTAsMCArMSwzIEBACistLS0tLS1CRUctKgorLS0tLUJFR0lOIE4g6CkoIcz5YSEq7Cko52EnhzonOi0tITsnLS0tQkVHSU4g6ClhJ4c6J48hOydSKTp1FBMgO3FyUilNBworKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzBlM2RlYjJlODA5YjUzNWYzOWVmZGVkMjA2OTczMTRhMjljODMzNWEgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8wZTNkZWIyZTgwOWI1MzVmMzllZmRlZDIwNjk3MzE0YTI5YzgzMzVhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3ZDAzMGUKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8wZTNkZWIyZTgwOWI1MzVmMzllZmRlZDIwNjk3MzE0YTI5YzgzMzVhCkBAIC0wLDAgKzEsNyBAQAorLQorLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORC0tPS0tRU5EICCdLyEtLS0tLUJFLS0tLS1FTkQgR0kgNe2ROyEoOymaLS0tLS1FTkQg5wIvIS0tDy0KKworLQorkTb07SgtCisgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMGYyOTM2MmRmYjA3NmExNGExMDNlOGJjMmM5NjgxZmFjOTNjMjM3ZCBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzBmMjkzNjJkZmIwNzZhMTRhMTAzZThiYzJjOTY4MWZhYzkzYzIzN2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhlMDE5ZAotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzBmMjkzNjJkZmIwNzZhMTRhMTAzZThiYzJjOTY4MWZhYzkzYzIzN2QKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMTA3OGU2YjE4M2FiYmU1MGFhMTljZmZkNzQxZGIxY2IzMGU1Y2Y0ZiBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzEwNzhlNmIxODNhYmJlNTBhYTE5Y2ZmZDc0MWRiMWNiMzBlNWNmNGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFkYTc2YgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzEwNzhlNmIxODNhYmJlNTBhYTE5Y2ZmZDc0MWRiMWNiMzBlNWNmNGYKQEAgLTAsMCArMSw4IEBACistLS0tLUJFR0lOIE8hOponVSgn3ygSKOedLyE7ITuRTyE6midVKCffKBIo550vITshO5E27SgpOyc6KLQOJ0goJ0cpTRWYR7/r0Sd5TwkpTygqgS0tLectLQorLS0tLS1CRUdJTiA6KCqqOiE6jE8hOponVSgn3yg6KOedLyE7ITuRNu0oKTstLS0tLUJFR0lOICjnnS8hOyE7kTbtKCk7JzootPIOJ0goJ0cpJzootA4nSCgnRylNFZhHv+vRLS0tLS1CRUdJTiBPITqaJ1UoJ98oEijnnS8hOyE7kU8hOponVSgn3ygSKOedLyE7ITuRM+0oKTsnOii0DidIKCdHKU0VmEe/69EneU8JKU8oKoEtLS3nLS0KKy0tLS0tQkVHSU4gOigqqjohOoxPIU/HKsQ78rk6KQorLS0tLS1CRUdJTiA6KOedLyE7ITuRNu0oKTsnOlu0DidIKCdHKU1Hv9En65gVeU8JKW8oKoEoxyo78rk6KQorCius2SqqOiEtLS0tLS0KKy0tLS1CRUlOIMcqxDvyuTopCitOIE8hOponVSgn3ygSKOedITshO5E27SgpOycneU8JKW8oKoEoxyrEO/K5Oim3rNkqqjohOow6KCc7sQ7XJ9ooO5fpKdAoITqZKaLtOpQiUJVaoIh3OzpQOii0DidIKCVHOyApClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMTQ5YjQwNzNlOGVlMmQzNzQ1NWMwZDc4NjdjN2NmZmRlY2YwZjhlMSBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzE0OWI0MDczZThlZTJkMzc0NTVjMGQ3ODY3YzdjZmZkZWNmMGY4ZTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFjMmJhZQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzE0OWI0MDczZThlZTJkMzc0NTVjMGQ3ODY3YzdjZmZkZWNmMGY4ZTEKQEAgLTAsMCArMSwxNyBAQAorT8cqxDvyuTopCitPxyrEO/K5OikKKyA6KOedLyE7ITuRN+0oKTsnOlu0DidIICdHKU1Hv9En6xV5TwkpbygqgSjHKsQtLS0tLS0tLS0KKzvyuTopCistLS0tLUJFR0lOrE/HKsQ78rk6KQorCisKKyA6KOedLyE7ITuRT8cqxDvyuTopCistLS0tLUJFR0lOIDoo550vITshO5E27SgpOyc6W7QOJ0goJ0cpTUe/0SfrmBV5TwkpbygqgSjHKsQtLS0tLQorrNlPxyrEO/K5OikKKworLS0tLUJFR0lOIE8hOponVSgn3ygSKOedLyE7ITuRNu0oKTsnOCi0DidIKCdHKU0VmEe/69EnT8chKsQ78rk6KQorOijnnS0vITshO5E27SgpOyc6KLQOJ0goJ0cpTRWYR7/r0Sd5Ty0tLS0tQkVHSU4tLS0tOow6KE/HKsQ78rk6KQorOyhqLTftKCk7JztbtA4nSCgnR+edLyE7ITuRNu0oKTsnOignO7EpTUe/0SfrmBV5TwkpbygqgSjHKsQtLS0tLQ4KK9lPxyrEO/K5OtcpCisKKy0tLS1CLS1FLTYtQkcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy8xNWRkOTE0ZmJkYzQzMzVlYmM2OWNhYTlhZmUzNzY4MWRkNzVjYzMyIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMTVkZDkxNGZiZGM0MzM1ZWJjNjljYWE5YWZlMzc2ODFkZDc1Y2MzMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTJhZWUxCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMTVkZDkxNGZiZGM0MzM1ZWJjNjljYWE5YWZlMzc2ODFkZDc1Y2MzMgpAQCAtMCwwICsxLDE3IEBACistLS0tLS0KKy0tLS0tCistLS0tQkVHSU4gkTbtKAorCistLS0tTiEoRUQgnS8tLS0tLUJFR0kgNu2ROyEoOymaLS0nLTgtRU5EIOctCistLS1CRUdJTiBPLS0tLS0KKy0tLS0oRU5ELS09LS1FTkQgIC0tLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0tLUJFR0lOIDbtkTshKDspmi0tLS0tRU5EIOcCL50vIS0tLS0tITtCRS0tLS0tRU5EIEdJIDXtkTshKDspmi0tLS0tRU5EIOctLS0tLQorAi8hLS0tCisKKy0KK5E27QIvIS0tIS0tLS0tCiuRNu0oDy0KKworLQorkTb07SgoLQorIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzE4ODEwNjM0NDA4MDYxMjY3Y2NiNjRkNjhmYjg1YjRlZDkzNTE1ZTggYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8xODgxMDYzNDQwODA2MTI2N2NjYjY0ZDY4ZmI4NWI0ZWQ5MzUxNWU4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjYjVhOGMKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8xODgxMDYzNDQwODA2MTI2N2NjYjY0ZDY4ZmI4NWI0ZWQ5MzUxNWU4CkBAIC0wLDAgKzEsNDUgQEAKKy0tLS0tQkVHSU4gTy0qLS0tCistKAorLShFTkQgnS8hLS0tLZFHCisoCisgKC0tCisoCitCRUdJTiAFOrA0JxcQLS0tLS0KK0cKK1VVICAtLS0tLUJFR0lOIAU6sDQnFxAvLS0tLQorLS0tLS1CRUlOIAU6sDQnFxAtLS0tLQorRworVVUtLQorLS1CRUdJTiAFOrA0JxcQRworLS0tLS0KK0cKK1VVICAtLS0tLUJFR0lOIAUysDQnFxAvLS0tLQorLS0tLS1CRUdJTiAFOrA0JxcQLS0tPS0KK0cKK1VVLS0tLS1CRUdJTiBPLS0tLS0KKy0oCistKEVORCCdLyEtLS0tkUcKKygKKyAoLS0KKygKK0JFR0lOIAU6sDQnFxAtLS0tLQorRworVVUgIC0tLS0tQkVHSU4gBTqwNCcXEC8tLS0tCistLS0tLUJFSU4gICBRRword0YFOrA0JxcQLS0tLS0KK0cKK1VVLS0KKy0tQkVHSU4gBTqwNCcXEEcKKy0tLS0tCitHCitVVSAgLS0tLS1CRUdJTiAFMrA0JxcQLy0tLS0KKy0tLS0tQkdJTiAFOrA0JxcQLS0tLS0KK0cKK1VVICBRRword0ZVRworIGZid0ZVVSBRRword0ZVICAgICBVUUcKK3dGVUcKKyBmYndGVVUgUUcKK3dGVSAgIGZHCisgYgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzFmNjhmMGVlNjc1NjZiMjk1NGE0ZTJkMmMzMWY2YWJiNjBjZGFlZDUgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8xZjY4ZjBlZTY3NTY2YjI5NTRhNGUyZDJjMzFmNmFiYjYwY2RhZWQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4OWM3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8xZjY4ZjBlZTY3NTY2YjI5NTRhNGUyZDJjMzFmNmFiYjYwY2RhZWQ1CkBAIC0wLDAgKzEsNCBAQAorLSoKKy0tLS0tQkVHLS0pLS1CRUdJTiBOIOgpYSeHOic6LS0hOycqCistLS1CRUdJTiDoKWEnhzonOiE7J1IpOnUUEzo6clIpTScKKyoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy8yMGEwMDBmMzkzMmUwNDFhNjM0Yjc1OWI3Y2VmODEzOGI1YjQwZjY3IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMjBhMDAwZjM5MzJlMDQxYTYzNGI3NTliN2NlZjgxMzhiNWI0MGY2NwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2JlMTgwCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMjBhMDAwZjM5MzJlMDQxYTYzNGI3NTliN2NlZjgxMzhiNWI0MGY2NwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy8yMGQzODU5Y2Q3MWQ5YjIxNWY1NTk4M2E1YWM5Y2NlN2MwYTM2Y2M0IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMjBkMzg1OWNkNzFkOWIyMTVmNTU5ODNhNWFjOWNjZTdjMGEzNmNjNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmQ5ZDRjCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMjBkMzg1OWNkNzFkOWIyMTVmNTU5ODNhNWFjOWNjZTdjMGEzNmNjNApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy8yMTdkMGUxMjBlNDNlMTg5OWE4YWI1MTAwOWRlNTUwMzhmZTUyNzg5IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMjE3ZDBlMTIwZTQzZTE4OTlhOGFiNTEwMDlkZTU1MDM4ZmU1Mjc4OQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjZjZjZiCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMjE3ZDBlMTIwZTQzZTE4OTlhOGFiNTEwMDlkZTU1MDM4ZmU1Mjc4OQpAQCAtMCwwICsxLDE1IEBACistLS0tLUJFR0lOIDpUISgBGyEqISp6Oicq9DrozbA6IRUaba4qzdVPxyrEO/K5OikKK0/HKsQ78rk6KQorIDoo550vITshO5E37SgpOyc6W7QOJ0ggJ0cpTUe/0SfrFXlPCSlvKCqBKMcqxC0tLS0tLS1FTkQg8rk6KQorT8cqxDvyuTopCistLS0tLUJFR0lOrE/HKsQ78rk6KQorCisKKyA6KOedLyE7ITuRT8cqxDvyuTopCistLS0tLUJFR0lOIDoo550vITshO5E27SgpOyc6W7QOJ0goJ0cpTUe/0SfrmBV5TwkpKCqBKCrHxC0tLS0tCius2U/HKsQ78rk6KQorCistLS0tQkVHSU4gTyE6midVKCffKBIo550vITshO5E27SgpOyc4KLQOJ0goJzEpTRWYR7/r0SdPxyEqxDvyuTopCis6KOedLS8hOyE7kTbtKCk7JzootA4nSCgnRylNFZhHv+vRJ3lPLS0tLS1CRUdJTi0tLS06jDooT8cqxDvyuTopCis7KGotN+0oKTsnO1u0DidIKCdH550vITshO5E27SgpOyc6KCc7sSlNR7/RJ+uYFXlPCSlvKCqBKMcqxC0tLS0tDgor2S0tLS0tRU5EIE/HKjs7KScnj0Q72wOFOmYoO413OjvFFztWKsZICQkJCQkJCQkJCQkJCQkJCQkJCQkJCQwJClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMjQ5Mzg0OWFmZDE2OTdkMDBmNGMyZjM2YWY0NTIyZTZhOWJhNDZiOCBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzI0OTM4NDlhZmQxNjk3ZDAwZjRjMmYzNmFmNDUyMmU2YTliYTQ2YjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhkZWU1MwotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzI0OTM4NDlhZmQxNjk3ZDAwZjRjMmYzNmFmNDUyMmU2YTliYTQ2YjgKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMjdjODkxYWE3NmY1MTQ4N2FkYTI4YjFmYzY5YWMxM2M3MzE1YzkzMyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzI3Yzg5MWFhNzZmNTE0ODdhZGEyOGIxZmM2OWFjMTNjNzMxNWM5MzMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZhMDQxMQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzI3Yzg5MWFhNzZmNTE0ODdhZGEyOGIxZmM2OWFjMTNjNzMxNWM5MzMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMjdlYzhjMGJmMDczZWM0ZWE0ZjVlZTE1ZmJhY2E0ZmIzMmY3MjhiMyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzI3ZWM4YzBiZjA3M2VjNGVhNGY1ZWUxNWZiYWNhNGZiMzJmNzI4YjMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGIzY2EzYwotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzI3ZWM4YzBiZjA3M2VjNGVhNGY1ZWUxNWZiYWNhNGZiMzJmNzI4YjMKQEAgLTAsMCArMSBAQAorTyE6midVKCffKBIo550vITshO5E27SgpOyc4KLQOJ0goJ0cpTRWYR7/r0Sd5TwkpbygqgSjHKsQ78rk6Kbes2U8hOponVSgqqjohOow6KCc7sQ7XJ9ooOyffKDoo550vKekp0CgtLS0tLUJFR0lOICjnnS8hOyE7kTbtKCk7JzootA4nITshO0goJ0cpTRWYR7/r0Sd5TypvKAkpgSjHKsQ78rk6Kbes2SqqOiE6jDooJzuxDtcn2iiRNjuX6SnQKCE6mSmi7TqUIlCVWqCIdzs6UDsgOic6wjo3ISn39il2kPTHvjprcVU7fDrYjjgqOjtz4RooZiGRO5A7KWoqOjoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy8yOTA0ZjliNmY2Y2IwZGRmOTI0ODUzN2I0ZmI0YjIxNzAxNzRiNzRmIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMjkwNGY5YjZmNmNiMGRkZjkyNDg1MzdiNGZiNGIyMTcwMTc0Yjc0ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTk1ZTQzCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMjkwNGY5YjZmNmNiMGRkZjkyNDg1MzdiNGZiNGIyMTcwMTc0Yjc0ZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy8yYTdiODc1OWYzMjY3ZDNkZGNhMjJlOTM2ZGYwYjIxZWFiYjFhZWVkIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMmE3Yjg3NTlmMzI2N2QzZGRjYTIyZTkzNmRmMGIyMWVhYmIxYWVlZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDc4MTJhCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMmE3Yjg3NTlmMzI2N2QzZGRjYTIyZTkzNmRmMGIyMWVhYmIxYWVlZApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy8yYWFmODgxYzk2ZDA3NThlNWFjMjQ0YTc0ZGVjY2I3ZTYzNjNjMTExIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMmFhZjg4MWM5NmQwNzU4ZTVhYzI0NGE3NGRlY2NiN2U2MzYzYzExMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGU2OTdiCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMmFhZjg4MWM5NmQwNzU4ZTVhYzI0NGE3NGRlY2NiN2U2MzYzYzExMQpAQCAtMCwwICsxLDE0IEBACistLS0tLUJFR0lOIE8tLS0tLQorLS0tLShFTkQgnS8hLS0tLS1CRUdJIDftkTshKDspmi0tLS0tRU5EIOcCL08hOpotLS0KKy0tLS0tRU5EIE8tLS0tLQorLS0tLShFTkQgnS8hLS0tJ1UoJ98oOijnIS+dOyE7kTbtKCk7JzootA4nSCgnRylNFZhHv+vRJ3lPLQorCSlvKCqBKMcqxDvyuTopt6zZKqo6IS0KKzooJzuxDtcn2ig7l+kpLQor0CghOpkpou06lCJQlVqgiGc7OjsgOic6wjo3ISn39il2kCrHvjotLUJFR0lOIDbtkTshKDspmi0tCistLS0tRU5EIOcCLyEtLS0tLQorLQora3FVOyE6T5onVXw62I45Kjo7c+EaKGYhkTuQOyktLS0tLS0KKy0tLS1CRUdJTiCRTy0tLS0tCistLS0tKEVORCCdLyEtLS0tLUJFR0lOIDbtCitqLQorkTshKDspmi0tLS0tRU5EIDbnAu0oClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMmVmMjY2NmU4MDdlNTU0ODFlYjgxYmQyYmQ4MzY5YTQ0MjJkZmM2ZiBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzJlZjI2NjZlODA3ZTU1NDgxZWI4MWJkMmJkODM2OWE0NDIyZGZjNmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWVkNjNkZAotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzJlZjI2NjZlODA3ZTU1NDgxZWI4MWJkMmJkODM2OWE0NDIyZGZjNmYKQEAgLTAsMCArMSw1IEBACistLS0tLUJFR0lOIC0thyv0LS0tJy0tLSv0LS0tLS0tLQorCivo6C0tLS0tQkVHSU4gOlQhKAEbISohKno6SIxfdCk7iPp+Kk7xPyE6ba4qzdUXO+wqxictLS0r9C0tLS0tLS0tCitHSU4gJy0tLS0tCis6VCEoARshLchjOj468zt9Ie07Kto6ITvlFrwneYEMJ3i7J55g9Cm+KqxhOzohRSHZKsspKB8QKikoKScnKjq3RSo6MSoqKiEqejpIjDoqJyokJ0YnrDv4JyrsVAbdISk6LQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzMxOGJjZjgxYTJiNmZhMGNlNjgwZWM4MmNmMTFlOGE2ZTRiZDkzZjAgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8zMThiY2Y4MWEyYjZmYTBjZTY4MGVjODJjZjExZThhNmU0YmQ5M2YwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2YjExMjYKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8zMThiY2Y4MWEyYjZmYTBjZTY4MGVjODJjZjExZThhNmU0YmQ5M2YwCkBAIC0wLDAgKzEsNCBAQAorLS0tLS1CRUdJTiBPLS0tLS0KKy0tLS0oRU5EIJ0vIS0tLS0tQkVHSSAy7ZE7ISg7KZotLS0tLUXnRM4CLyAhLS0tCisKKy2RNu0oClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMzU4ZmY0YWViNjkwM2FmZmE1ZDA4MGMzMTdjMzI3MGFjNGYxMzEyMSBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzM1OGZmNGFlYjY5MDNhZmZhNWQwODBjMzE3YzMyNzBhYzRmMTMxMjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUxNDI3YQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzM1OGZmNGFlYjY5MDNhZmZhNWQwODBjMzE3YzMyNzBhYzRmMTMxMjEKQEAgLTAsMCArMSBAQAorxy0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy8zNWJhZTk3OWUwOTJhYmRjNmIzMWY4YjNjNTJkZGNhZmE0NzIyYTlhIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMzViYWU5NzllMDkyYWJkYzZiMzFmOGIzYzUyZGRjYWZhNDcyMmE5YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTQyMDNiCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvMzViYWU5NzllMDkyYWJkYzZiMzFmOGIzYzUyZGRjYWZhNDcyMmE5YQpAQCAtMCwwICsxLDExIEBACistLS0tLUJFR0lOIE8tLS0tCistLS0tTiEoRUQgnS8tLS0tLUJFR0kgNu2ROyEoOymaLS0tLTgtRU5EIOctCistLS1CRUdJTiBPLS0tLS0KKy0tLS0oRU5ELS09LS1FTkQgIJ0vIS0tLS0tQkUtLS0tLUVORCBHSSA17ZE7ISg7KZotLS0tLUVORCDnAi8hLS0tCisKKy0KK5E27QIvIS0tDy0KKworLQorkTb07SgoLQorIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzM4ZmNjYmFlZTcyM2EwNmNhMTM3YTk1Mjg0M2I1OGQzMmQzNWVmMjUgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8zOGZjY2JhZWU3MjNhMDZjYTEzN2E5NTI4NDNiNThkMzJkMzVlZjI1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkZGI1ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8zOGZjY2JhZWU3MjNhMDZjYTEzN2E5NTI4NDNiNThkMzJkMzVlZjI1CkBAIC0wLDAgKzEsMiBAQAorLS0tLS1CRUdJTiAtLSv0LS0tLS0KK+gKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy8zYWFhM2NkZDQ0NDRmYWQ3ZTU5YmExYWMyYzBjYmU2YjYwZWExMTgxIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvM2FhYTNjZGQ0NDQ0ZmFkN2U1OWJhMWFjMmMwY2JlNmI2MGVhMTE4MQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTZmZjUzCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvM2FhYTNjZGQ0NDQ0ZmFkN2U1OWJhMWFjMmMwY2JlNmI2MGVhMTE4MQpAQCAtMCwwICsxIEBACistLS0tLUJFR0lOIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzNiOTgxYzFlNDY5NzEwMzI3OGIzMmVlNGUyOWUzYTdiNTIyNWQ3OTggYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8zYjk4MWMxZTQ2OTcxMDMyNzhiMzJlZTRlMjllM2E3YjUyMjVkNzk4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmMzVkZjAKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy8zYjk4MWMxZTQ2OTcxMDMyNzhiMzJlZTRlMjllM2E3YjUyMjVkNzk4CkBAIC0wLDAgKzEsMTQgQEAKK0/HKsQ78rk6KQorT8cqxDvyuTopCisgOijnnS8hOyE7kTftKCk7JzpbtA4nSCAnRylNR7/RJ+sVeU8JKW8oKoEoxyrELS0tLS0tLUVORCDyuTopCistLS0tLUJFR0lOrE/HKsQ78rk6KQorCisKKyA6KOedLyE7ITuRT8cqxDvyuTopCistLS0tLUJFR0lOIDoo550vITshO5E27SgpOyc6W7QOJ0goJ0cpTUe/0SfrmBV5TwkpKCqBKMcqxC0tLS0tCius2U/HKsQ78rk6KQorCistLS0tQkVHSU4gTyE6midVKCffKBIo550vITshO5E27SgpOyc4KLQOJ0goJzEpTRWYR7/r0SdPxyEqxDvyuTopCis6KOedLS8hOyE7kTbtKCk7JzootA4nSCgnRylNFZhHv+vRJ3lPLS0tLS1CRUdJTi0tLS06jDooT8cqxDvyuTopCis7KGotN+0oKTsnO1u0DidIKCdH550vITshO5E27SgpOyc6KCc7sSlNR7/RJ+uYFXlPCSlvKCqBKMcqxC0tLS0tDgor2S0tLS0tRU5EIE/HKjs7KScnj0Q72wOFOmYoO413OjvFDCyfPSon7Y80Pjs5OrDnKPHwOyc12Cpp2ClU1zs6KcQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy8zYmZmNmM5ZWYwMzgxZWExMDgwZmRmYjViNGY5YzAyZTk1ZjU0OWIyIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvM2JmZjZjOWVmMDM4MWVhMTA4MGZkZmI1YjRmOWMwMmU5NWY1NDliMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTk4ZTQwCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvM2JmZjZjOWVmMDM4MWVhMTA4MGZkZmI1YjRmOWMwMmU5NWY1NDliMgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy8zY2RiNTFmN2ZmYzhlZjBiZDAzMjY1YzNhNDE0MDY5ODE1ODIxZDE4IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvM2NkYjUxZjdmZmM4ZWYwYmQwMzI2NWMzYTQxNDA2OTgxNTgyMWQxOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDE4MDg0Ci0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvM2NkYjUxZjdmZmM4ZWYwYmQwMzI2NWMzYTQxNDA2OTgxNTgyMWQxOApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy8zZjQ2YTkzZGExNDQ4YzAwZDJhOWYzYTYyMTE3YmQ1MjJjZThkZTY0IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvM2Y0NmE5M2RhMTQ0OGMwMGQyYTlmM2E2MjExN2JkNTIyY2U4ZGU2NApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDgyZDdjCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvM2Y0NmE5M2RhMTQ0OGMwMGQyYTlmM2E2MjExN2JkNTIyY2U4ZGU2NApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy80MTE3NTJlNDMzZTE4YzI3ZjgzYjk3MjgyNTYwODJjMmZmYjc3ZWJiIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNDExNzUyZTQzM2UxOGMyN2Y4M2I5NzI4MjU2MDgyYzJmZmI3N2ViYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzg4NTYwCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNDExNzUyZTQzM2UxOGMyN2Y4M2I5NzI4MjU2MDgyYzJmZmI3N2ViYgpAQCAtMCwwICsxLDE1IEBACitPxyrEO/K5OikKK0/HKsQ78rk6KQorIDoo550vITshO5E37SgpOyc6W7QOJ0ggJ0cpTUe/0SfrFXlPCSlvKCqBKMcqxC0tLS0tLS1FTkQg8rk6KQorLS0tLS1CRUdJTqxPxyrEO/K5OikKKworCisgOijnnS8hOyE7kU/HKsQ78rk6KQorLS0tLS1CRUdJTiA6KOedLyE7ITuRNu0oKTsnOlu0DidIKCdHKU1Hv9En65gVeU8JKSgqgSjHKsQtLS0tLQorrNlPxyrEO/K5OikKKworLS0tLUJFR0lOIE8hOponVSgn3ygSKOedLyE7ITuRNu0oKTsnOCi0DidIKCcxKU0VmEe/69EnT8chKsQ78rk6KQorOijnnS0vITshO5E27SgpOyc6KLQOJ0goJ0cpTRWYR7/r0Sd5Ty0tLS0tQkVHSU4tLS0tOow6KE/HKsQ78rk6KQorOyhqLTftKCk7JztbtA4nSCgnR+edLyE7ITuRNu0oKTsnOignO7EpTUe/0SfrmBV5TwkpbygqgSjHKsQtLS0tLQ4KK9ktLS0tLUVORCBPxyo7OyknJ49EO9sDhTpmKDuNdzo7xQwsnz0qJ+2PND47OTqw5yjx8DsnNdgqadgpVNc7OkcKKynEClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNDI2NTBkZTQ4ZGJmNjJkODZhOTFlZGU0ODQwNjFmODM0MjE0OTE1ZCBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzQyNjUwZGU0OGRiZjYyZDg2YTkxZWRlNDg0MDYxZjgzNDIxNDkxNWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM0ZGIwZQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzQyNjUwZGU0OGRiZjYyZDg2YTkxZWRlNDg0MDYxZjgzNDIxNDkxNWQKQEAgLTAsMCArMSwyIEBACistLS0tLUJFR0lOIE8tLS0tLQorLS0tLShFTkQtLS0tLS1CIJ0vIS0tLS1CRUdJTiA27ZE7ISg7KZotLS0tLUVORCDnAkVHSU4gLS0tLyE7IZE27SgtQkVHSU4gT/QKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy80ODhhZTUwMmJhYWJjNjUwNmY4NzIyZGNkYzUyOTQ5NDBmYTVkNTg4IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNDg4YWU1MDJiYWFiYzY1MDZmODcyMmRjZGM1Mjk0OTQwZmE1ZDU4OApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzUwNjRkCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNDg4YWU1MDJiYWFiYzY1MDZmODcyMmRjZGM1Mjk0OTQwZmE1ZDU4OApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy80YWEyNWVkYTc1NjBiYmQ3NDZkOWE2OWI2Mzk2NWMwZGUyMWJiNTNlIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNGFhMjVlZGE3NTYwYmJkNzQ2ZDlhNjliNjM5NjVjMGRlMjFiYjUzZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTM1NzMxCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNGFhMjVlZGE3NTYwYmJkNzQ2ZDlhNjliNjM5NjVjMGRlMjFiYjUzZQpAQCAtMCwwICsxLDM0IEBACistLS0tLUJFR0lOIE8tLS0tLQorLSgKKy0oRU5EIJ0vIS0tLS2RRworKAorICgtLQorKAorQkVHSU4gBTqwNCcXEC0tLS0tCitHCitVVSAgLS0tLS1CRUdJTiAFOrA0JxcQLy0tLS0KKy0tLS0tQkVJTiAFOrA0JxcQLS0tLS0KK0cKK1VVLS0KKy0tQkVHSU4gBTqwNCcXEEcKKy0tLS0tCitHCitVVSAgLS0tLS1CRUdJTiAFMrA0JxcQLy0tLS0KKy0tLS0tQkVHSU4gBTqwNCcXEC0tLS0tCitHCitVVSAgUUcKK3dGVUcKKyBmYndGVVUgUUcKK3dGVSAgICAgUUcKK3dGVUcKKyBmYndGVVUgUUcKK3dGVSAgIGZid0ZVVVUgIEcKK2J3RlUgICBmCitid0ZVIFUgICAgIGYgICAgICBmYndGVVUgICAgIGYKK2J3RlUgVSAgIGZiVSAgIGZid0YgIGZVRworIGZid0ZVICBmICBmVHdGVFUgICBmYndGVWZid0ZVVSAgIGYKK2J3RlUgVSAgIGZid0ZVVe2ROyEoOymaLS0tLS1FTgQg5wIvTyE6mi0tLQorLS0tQkUtIE5JLUdPLS0tCistLS0qCisgICAgIGYKK2J3RlUgVSAgIGZiVSAgIGZidy0tLS0tQkVHLUYgIGZVClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNGIzMmFhOWVkYmQxN2IyZDYzMzkwYTQxY2M5ODczOWJlN2Q0NTU5NiBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzRiMzJhYTllZGJkMTdiMmQ2MzM5MGE0MWNjOTg3MzliZTdkNDU1OTYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDI0MGMyMgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzRiMzJhYTllZGJkMTdiMmQ2MzM5MGE0MWNjOTg3MzliZTdkNDU1OTYKQEAgLTAsMCArMSw3IEBACistLS0tLUJFR0lOIAU6sDQnFxAtLS0tLQorICBmICB1ZiAgZiAtCiuNOzM7dzoMLJ89KiftjzM+Ozk6NfA7KLAn5/HYKmnYKVQnZhi1aScoOx5uKjs70So/O6/CLS0tLS0KKy0tLS0tRU5EIAU6sDQnFxAtLS0tLQorOn8kOyg6IUA7H0wpSpEpKScYOv1aOiHjOo8uNn8neToqJyph7VlYWDvAhzrYKCkqITtT3y0tLS0tLUJFR0lOINsDhTpmKDuNdzo7xQwsnz0qJ+2PMz47OTqw5yjx8Du1aScoOworRT1CRUdJKE4tLS0tLSlHSQLUgifQKSqWOjohESE7IbI+OnIqBT4hb1QjIT47KToGKSmG5LgMOnDRjSryxDtlD/cnICooJfl5rConozsqJ58ok4FkJyGlO9WP7zvmTiAntWknKDsKKyVpOzspJyePRDvbA4U6Ozspaic6J8g7/jtrFmkhjaP7mh4nIScnj0Q72wNtISHGKKMnNCEkrSEwKpGFClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNGQ0M2ZhNGU2MzA0Mjg3MWFmZGIzODdiNzVhODg0NWQ0N2I0NmQxOCBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzRkNDNmYTRlNjMwNDI4NzFhZmRiMzg3Yjc1YTg4NDVkNDdiNDZkMTgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNhYjU1NgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzRkNDNmYTRlNjMwNDI4NzFhZmRiMzg3Yjc1YTg4NDVkNDdiNDZkMTgKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNTQ4NjQ5ZjU1MDJkZjVlNzdiOWQzMzJkM2YxZTI5ZGVkZDdhZmRiMiBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzU0ODY0OWY1NTAyZGY1ZTc3YjlkMzMyZDNmMWUyOWRlZGQ3YWZkYjIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZiM2ViMAotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzU0ODY0OWY1NTAyZGY1ZTc3YjlkMzMyZDNmMWUyOWRlZGQ3YWZkYjIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNTU4ODVhM2Y5NDY4OGIzNmUzNGZhYzhjZTFmZDdmY2M3YmI3MjA4YyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzU1ODg1YTNmOTQ2ODhiMzZlMzRmYWM4Y2UxZmQ3ZmNjN2JiNzIwOGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJmMjdlOQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzU1ODg1YTNmOTQ2ODhiMzZlMzRmYWM4Y2UxZmQ3ZmNjN2JiNzIwOGMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNTg5MWRkN2M2NzE1ZWNhN2Y0MjdlZDkyNjdkZTlkYTcyYjhlODJlOCBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzU4OTFkZDdjNjcxNWVjYTdmNDI3ZWQ5MjY3ZGU5ZGE3MmI4ZTgyZTgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUzMTQzMQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzU4OTFkZDdjNjcxNWVjYTdmNDI3ZWQ5MjY3ZGU5ZGE3MmI4ZTgyZTgKQEAgLTAsMCArMSwxNSBAQAorLS0tLS1CRUdJTiA6VCEoARshKiEqejonKvQ66M2wOiEVGm2uKs3VT8cqxDvyuTopCitPxyrEO/K5OikKKyA6KOedLyE7ITuRN+0oKTsnOlu0DidIICdHKU1Hv9En6xV5TwkpbygqgSjHKsQtLS0tLS0tRU5EIPK5OikKKy0tLS0tQkVHSU6sT8cqxDvyuTopCisKKworIDoo550vITshO5FPxyrEO/K5OikKKy0tLS0tQkVHSU4gOijnnS8hOyE7kTbtKCk7JzpbtA4nSCgnRylNR7/RJ+uYFXlPCSkoKoEoxyrELS0tLS0KK6zZT8cqxDvyuTopCisKKy0tLS1CRUdJTiBPITqaJ1UoJ98oEijnnS8hOyE7kTbtKCk7JzgotA4nSCgnMSlNFZhHv+vRJ0/HISrEO/K5OikKKzoo550tLyE7ITuRNu0oKTsnOii0DidIKCdHKU0VmEe/69EneU8tLS0tLUJFR0lOLS0tLTqMOihPxyrEO/K5OikKKzsoai037SgpOyc7W7QOJ0goJ0fnnS8hOyE7kTbtKCk7JzooJzuxKU1Hv9En65gVeU8JKW8oKoEoxyrELS0tLS0OCivZLS0tLS1FTkQgT8cqOzspJyePRDvbA4U6Zig7jXc6O8UXO+wqxkiMLS0tLS0KKwkJCQkJCQkJCQkJCQkJCQwJClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNThiZGIwYWVhMTM5YTI3OTBjMmUxYTNiMjVlMzAyODkyYTZjNGI1NSBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzU4YmRiMGFlYTEzOWEyNzkwYzJlMWEzYjI1ZTMwMjg5MmE2YzRiNTUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE5YzZjNQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzU4YmRiMGFlYTEzOWEyNzkwYzJlMWEzYjI1ZTMwMjg5MmE2YzRiNTUKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNWM3MjBkYzAzMjZlNGZmYTMyMmY3MDYzMzdkZjliYzg3ZjQyZmQ5NiBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzVjNzIwZGMwMzI2ZTRmZmEzMjJmNzA2MzM3ZGY5YmM4N2Y0MmZkOTYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJkZGFjYQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzVjNzIwZGMwMzI2ZTRmZmEzMjJmNzA2MzM3ZGY5YmM4N2Y0MmZkOTYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNjY3ZGE5ZGYxY2RlMzNkNjM1YmJkZTE5ODY4Mjc1NzNlZDY4NmE3ZSBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzY2N2RhOWRmMWNkZTMzZDYzNWJiZGUxOTg2ODI3NTczZWQ2ODZhN2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBmN2YwMwotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzY2N2RhOWRmMWNkZTMzZDYzNWJiZGUxOTg2ODI3NTczZWQ2ODZhN2UKQEAgLTAsMCArMSw2IEBACitPxyrEO/K5OikKKy0tLS0tQkVHSU4gOijnnS8hOyE7kTbtKCk7JzpbtA4nSCgnRylNR7/RJ+uYFXlPCSlvKCqBKMcqxC0tLS0tCius2U/HKsQ78rk6KQorCistLS0tQkVHSU4gTyE6midVKCdPxyrEO/K5OikKKy0tLS0tQkVHSU4gOijnnS8h3ygSKOedClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNjZmOGI2OTZjNDZjMTBhNmRiMjBiNjkwZTQ0MzFiNzI3NDVmNDc2MCBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzY2ZjhiNjk2YzQ2YzEwYTZkYjIwYjY5MGU0NDMxYjcyNzQ1ZjQ3NjAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWEzZWFhZQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzY2ZjhiNjk2YzQ2YzEwYTZkYjIwYjY5MGU0NDMxYjcyNzQ1ZjQ3NjAKQEAgLTAsMCArMSw3IEBACistLS0tLUJFR0lOICE6VCgBGyEqISp6OkiMLS0tLS0KK0YnKuxUITptrirN1Rc77CrGyGM6PjrzO30h7TsqWjohO+UWvCd5gQwneLsnnmD0Kb4qrGE7OiFFIdkqyykoJy0tLSv0LS0tLa0KK+gfECopKCknJyo6t0UqOjEqKiesO/gG3SkqKKwPO8sqLS0tLS12QkVHSU4gLS0r9C0tLSctLS0r9C0tLS0tLS8KKwor7OgtLS0tLUJFR0lOIC0tK/QtLS0nLS0tK/QtLS0tLegtLQorCivo6ApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzY5OTA0NGRkZmU0ODg3ZDYwODFjZTJhMzZjMTMwMjgxNDI5NGViNjggYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy82OTkwNDRkZGZlNDg4N2Q2MDgxY2UyYTM2YzEzMDI4MTQyOTRlYjY4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlMzZlYzIKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy82OTkwNDRkZGZlNDg4N2Q2MDgxY2UyYTM2YzEzMDI4MTQyOTRlYjY4CkBAIC0wLDAgKzEsMTUgQEAKKy0tKgorLS0qCitCRUdJTiAtKgorzPlhISrsKSjnLS0tLS1CRS0qCisKKy0tLS1CRUdJTiBOIOgtLSoKKy0tKgorQkVHSU4gLSoKK8z5YSEq7Cko5y0tLS0tQkUtKgorCistLS0tQkVHSU4gTiDoKSghzPlhISrsKSjnYSeHOic6LS0hOSctLS1CRUdJTiDohilhJy0qCivM+WEhKuwpKOctLYk6J48hOydSKTp3FBMgKDtScnEpLS0tQikoIcz5YSEq7Cko52EnhzonRS0qCisKKy0tLS1CRUdJTiBOIOg6LS0hOSctLS1CRUdJTiDohilhJykoIS0qCivM+cwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy82ZDFkMTJlZjAwYzU4NWI0Yzg1OTQ3OWJmYTI1MjJmNGE0NDdkOTA3IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNmQxZDEyZWYwMGM1ODViNGM4NTk0NzliZmEyNTIyZjRhNDQ3ZDkwNwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzkxYWU0Ci0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNmQxZDEyZWYwMGM1ODViNGM4NTk0NzliZmEyNTIyZjRhNDQ3ZDkwNwpAQCAtMCwwICsxLDUgQEAKKy0tLS0tQkVHSU4gLS0r9C0tLSctLS0tLS1CRUdJTiAtLYcr9C0tLSctLS0r9C0tLS0tLS0KKwor6OgtLS0tLUJFR0lOIDpUISjxARshKip6OkiMX3QpO4j6fipO8T8hOm2uKs3VFzvsKsYnLS0tLSv0LS0tLS0tLworCist6ApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzZkNjdiYWZkODNiZWQ3YWFkZDY0MTQxNzY3MWU2ODY0ZGM4NzA3M2MgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy82ZDY3YmFmZDgzYmVkN2FhZGQ2NDE0MTc2NzFlNjg2NGRjODcwNzNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwMTE5ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy82ZDY3YmFmZDgzYmVkN2FhZGQ2NDE0MTc2NzFlNjg2NGRjODcwNzNjCkBAIC0wLDAgKzEsMTYgQEAKK0/HKsQ78rk6KQorT8cqxDvyuTopCisgOijnnS8hOyE7kTftKCk7JzpbtA4nSCAnRylNR7/RJ+sVeU8JKW8oKoEoxyrELS0tLS0tLUVORCDyuTopCistLS0tLUJFR0lOrE/HKsQ78rk6KQorCisKKyA6KOedLyE7ITuRT8cqxDvyuTopCistLS0tLUJFR0lOIDoo550vITshO5E27SgpOyc6W7QOJ0goJ0cpTUe/0SfrmBV5TwkpbygqgSjHKsQtLS0tLQorrNlPxyrEO/K5OikKKworLS0tLUJFR0lOIE8hOponVSgn3ygSKOedLyE7ITuRNu0oKTsnOCi0DidIKCdHKU0VmEe/69EnT8chKsQ78rk6KQorOijnnS0vITshO5E27SgpOyc6KLQOJ0goJ0cpTRWYR7/r0Sd5Ty0tLS0tQkVHSU4tLS0tOow6KE/HKsQ78rk6KQorOyhqLTftKCk7JztbtA4nSCgnR+edLyE7ITuRNu0oKTsnOignO7EpTUe/0SfrmBV5TwkpbygqgSjHKsQtLS0tLQ4KK9ktLS0tLUVORCBPxyrXOzopxLnyCisKKy0tLS1CLS1FLTYtQkcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy82ZGNiNzk3NmQ5YWY0YTcyYjM2Njc5MjZmMWZlNzY0MmM3NTY4NWIyIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNmRjYjc5NzZkOWFmNGE3MmIzNjY3OTI2ZjFmZTc2NDJjNzU2ODViMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDkwZmUyCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNmRjYjc5NzZkOWFmNGE3MmIzNjY3OTI2ZjFmZTc2NDJjNzU2ODViMgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy82ZTZhYTVlYzE2NTNhNTdhMzdjMDQzMjU1YWI4MzRmNmIyMjI4YjgwIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNmU2YWE1ZWMxNjUzYTU3YTM3YzA0MzI1NWFiODM0ZjZiMjIyOGI4MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWQzZjVjCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNmU2YWE1ZWMxNjUzYTU3YTM3YzA0MzI1NWFiODM0ZjZiMjIyOGI4MApAQCAtMCwwICsxLDIgQEAKKy0tLS0tQkVHSU4gTyE6midVKCffKBIo550vITshO5FPITqaJ1UoJ98oEijnnS8hOyE7kTPtKCk7JzootA4nSCgnR0/HKsQ78rk6KQorLS0tLS1CRUdJTiA6KOedLyE7ITuRNu0oKTsnOlu0DidIKCdHKU1Hv9En65gVeU8JKW8oKoEoxyopTRWYR7/r0SfELS0tLS0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy83MjliZTI4MzczMjhkOWYyNTU5N2IxZDYwNTE4OGJjNzI0YzYzMmU2IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNzI5YmUyODM3MzI4ZDlmMjU1OTdiMWQ2MDUxODhiYzcyNGM2MzJlNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjM4NjIyCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNzI5YmUyODM3MzI4ZDlmMjU1OTdiMWQ2MDUxODhiYzcyNGM2MzJlNgpAQCAtMCwwICsxLDYgQEAKK0/HKsQ78rk6KQorLS0tLS1CRUdJTiA6KOedLyE7ITuRNu0oKTsnOlu0DidIKCdHKU1Hv9En65gVeU8JKW8oKoEoxyrELS0tLS0KK6zZT8cqxDvyuTopCisKKy0tLS1CRUdJTiBPITqaJ1UoJ98oEijnnS8hOyE7kTbtKCk7JzgotA4nSCgnRylNFZhHv+vRJ0/HKsQ78rk6KQorOijnnS0vITshO5E27SgpOyc6KLQOJ0goJ0cpTRWYR7/r0Sd5Ty0tLS0tQkVHSU4tLS0tOow6KC0tLS1CRUdJTiA7KGot550vITshO5E27SgpOyc6KCc7sQ7XClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNzRhNGYzODcyNmE0OWYzYThjMDY3NjNkNThkOGZjMjI5YjJhYTkxNSBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzc0YTRmMzg3MjZhNDlmM2E4YzA2NzYzZDU4ZDhmYzIyOWIyYWE5MTUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg4ODIxZAotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzc0YTRmMzg3MjZhNDlmM2E4YzA2NzYzZDU4ZDhmYzIyOWIyYWE5MTUKQEAgLTAsMCArMSwzIEBACistLS0tLUJFR0lOIC0tK/QtLS0nLS0tK/QtLS0tLS0tCisKK+joClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNzRiOTUzNmM2MGRlZjJmOWNiOGU4MzUxMmI4MGZmODQwNmQxMjU2NyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzc0Yjk1MzZjNjBkZWYyZjljYjhlODM1MTJiODBmZjg0MDZkMTI1NjcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmMwNDhmZQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzc0Yjk1MzZjNjBkZWYyZjljYjhlODM1MTJiODBmZjg0MDZkMTI1NjcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvNzRiOTc3MzVkZjBlZTAzZDVhOTEyNzM0ZGU5Mzc3MjA5MzgyNmJkYSBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzc0Yjk3NzM1ZGYwZWUwM2Q1YTkxMjczNGRlOTM3NzIwOTM4MjZiZGEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZlYTE1ZAotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzc0Yjk3NzM1ZGYwZWUwM2Q1YTkxMjczNGRlOTM3NzIwOTM4MjZiZGEKQEAgLTAsMCArMSwzMyBAQAorLZE27SgKKworLS0tLS0KKy0tLS1CRUdJTiCRNu0oCisKKy0tLS1OIShFRCCdLy0tLS0tQkVHSSA17ZE7ISi7KZotLSctOC1FTkQg5y0KKy0tLUJFR0lOIE8tLS0tLQorLS0tLShFTkQtLT0tLUUtLS0tLS0KKy0tLS0tCistLS0tTkQgIC0tLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0tLUJFR0lOIDbtkTshKDspmi0tLS0tRU5EIOcCL50vIS0tLS0tITtCRS0tLS0tRU5EIEdJIDXtkTshKDspmi0tLS0tRU5EIOcCLyEtLS0KKworLQorkTbtQkVHSU4gkTbtKAorCistLS0tTiEoRUQgnS8tLS0tLUJFR0kgNu2ROyEoOymaLS0nLTgtRU5EIOctCistLS1CRUdJTiBPLS0tLS0KKy0tLTsoRU5ELS09LS1FTkQgIC0tLS0tQkVHSU4gTy0KKy0tLQorLS0tLShFTkQgnS8hLS0tLS1CRUdJTiA27ZE7ISg7KZotLS0tLUVORCDnAi+dLyEtLS0tLSE7QkUtLS0tLUVORCBHSSA17QIvIS0tIS0tLS0tCiuRNu0oDy2ROyEoOymaLS0tLS1FTkQg5wIvIS0tLQorCistCivRNu0CLyEtLQorCistCiuRNvTtKCgtCishLS0tLS0KK5E27SgPLQorIAorLQorkTb07SgoLQorIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzc1MzkyODlkNjdhMDk3NGQxNmYwZWQwMWRlZDBhNThhMDJiMjExMjYgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy83NTM5Mjg5ZDY3YTA5NzRkMTZmMGVkMDFkZWQwYTU4YTAyYjIxMTI2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5YWU0ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy83NTM5Mjg5ZDY3YTA5NzRkMTZmMGVkMDFkZWQwYTU4YTAyYjIxMTI2CkBAIC0wLDAgKzEgQEAKKw/0IApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzc4YzQzNWUxOTI3ZWMxOTZhZmFiOTM4ZWRjZWQwYjllZTI2N2U3MGIgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy83OGM0MzVlMTkyN2VjMTk2YWZhYjkzOGVkY2VkMGI5ZWUyNjdlNzBiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZWVmMmEKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy83OGM0MzVlMTkyN2VjMTk2YWZhYjkzOGVkY2VkMGI5ZWUyNjdlNzBiCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzc4ZTRjOGE1ZDczY2YwNzRmMjQzZWYxMmEzNjY5ZmVmMWU4NDgxMjEgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy83OGU0YzhhNWQ3M2NmMDc0ZjI0M2VmMTJhMzY2OWZlZjFlODQ4MTIxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5MDY5N2UKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy83OGU0YzhhNWQ3M2NmMDc0ZjI0M2VmMTJhMzY2OWZlZjFlODQ4MTIxCkBAIC0wLDAgKzEsMTAgQEAKKy0tLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0tLUJFR0kgN+2ROyEoOymaLS0tLS1FTkQg5wIvTyE6mi0tLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0nVSgn3yg6KOedLyE7ITuRNu0oKTsnOii0DidIKCdHKU0VmEe/69EneU8tCisJKW8oKoEoxyrEO/K5Oim3rNkqqjohOow6KCc7sQ7XJ9ooO5fpKdAoITqZKaLtOpQiUJVaoIhnOzo7IDonOsI6NyEp9/YpdpD0x746LS1CRUdJTiA27ZE7ISg7KZotLQorLS0tLUVORCDnAi8hLS0tLS0KKy0KK2txVTtPITqaJ1V8OtiOOCo6O3PhGihmIZE7kDspLS0qLS0tLQorLS0tLUJFR0lOIJFPLS0tLS0KKy0tLS0oRU5EIJ0vIS0tLS0tQkVHSU4gNu0tCitqKjqROyEoOymaLS0tLS1FTkQgNucC7SgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy83YTU4MjQ0MGJkNDcxMmFiODhhM2U3NDVmOTI4MjAyNzA3NTg1ZTZmIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvN2E1ODI0NDBiZDQ3MTJhYjg4YTNlNzQ1ZjkyODIwMjcwNzU4NWU2ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NGY1Nzk3Ci0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvN2E1ODI0NDBiZDQ3MTJhYjg4YTNlNzQ1ZjkyODIwMjcwNzU4NWU2ZgpAQCAtMCwwICsxLDMzIEBACistLS0tLUJFR0lOIE8tLS0tLQorLSgKKy0oRU5EIJ0vIS0tLS2RRworKAorIDctLQorKAorQkVHSU4gBTqwNCcXEC0tLS0tCitHCitVVSAgLS0tLS1CRUdJTiAFOrA0JxcQLy0tLS0KKy0tLS0tQkVJTiAFOrA0JxcQLS0tLS0KK0cKK1VVLS0KKy0tQkVHSU4gBTqwNCcXEC0tLS0tCitHCitVVSAgLS0tLS1CRUdJTiAFMrA0JxcQLy0tLS0KKy0tLS0tQkVHSU4gBTqwNCcXEC0tLS0tCitHCitVVSAgUUcKK3dGVUcKKyBmYndGVVUgUUcKK3dGVSAgICAgUUcKK3dGVUcKKyBmYndGVVUgUUcKK3dGVSAgIGZid0ZVVVUgIEcKK2J3RlUgICBmCitid0ZVIFUgICAgIGYgICAgICBmYndGVVUgICAgIGYKK2J3RlUgVSAgIGZiVSAgIGZid0YgIGZVRworIGZid0ZVICBmICBmVHdGVFUgICBmYndGVWZid0ZVVSAgIGYKK2J3RlUgVSAgIGZid0ZVVe2ROyEoOymaLS0tLS1FTgQg5wIvTyE6mi0tLQorLS0tQkUtIE5JLUdPLS0tCistLS0qCisgICAgIGYKK2J3RlUgVSAgIGZiVSAgIGZidy0tLS0tQkVHLUYgIGZVClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvN2I4ZTJhNWRmYTAzY2MxM2I3MGViNWY3N2Q2MTIyMmMxMDhhYjZiZCBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzdiOGUyYTVkZmEwM2NjMTNiNzBlYjVmNzdkNjEyMjJjMTA4YWI2YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UyN2QyOAotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzdiOGUyYTVkZmEwM2NjMTNiNzBlYjVmNzdkNjEyMjJjMTA4YWI2YmQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvODI0YjZkZDI3ZGViOWVkMTU3ZmRjODA0ODVmMTA0MjY4ZjcyMzJmZSBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzgyNGI2ZGQyN2RlYjllZDE1N2ZkYzgwNDg1ZjEwNDI2OGY3MjMyZmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2E4YjNmOAotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzgyNGI2ZGQyN2RlYjllZDE1N2ZkYzgwNDg1ZjEwNDI2OGY3MjMyZmUKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvODI1ZWRiZjIxYmM0MGVjMjMyMjU3NzI2MzVlYTYzOTBlNmQ5ZmI0YyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzgyNWVkYmYyMWJjNDBlYzIzMjI1NzcyNjM1ZWE2MzkwZTZkOWZiNGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkyZWM0ZgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzgyNWVkYmYyMWJjNDBlYzIzMjI1NzcyNjM1ZWE2MzkwZTZkOWZiNGMKQEAgLTAsMCArMSwzIEBACistLS0tLUJFR0lOIC0tK/QtLS0nLS0tK/QtLS0tLS0vCisKK+joClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvODM0N2M0MzY2YjVkNjY4YjQ2N2ZiNTg5YzMwOTBmMjAxZWFjYjVkYiBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzgzNDdjNDM2NmI1ZDY2OGI0NjdmYjU4OWMzMDkwZjIwMWVhY2I1ZGIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTA2MjkyNwotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzgzNDdjNDM2NmI1ZDY2OGI0NjdmYjU4OWMzMDkwZjIwMWVhY2I1ZGIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvODc0ZWQ1ZDYzM2QyNDViMTBmZGRhNTJjNDk2MjdiNDNiM2YyZTI1YiBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzg3NGVkNWQ2MzNkMjQ1YjEwZmRkYTUyYzQ5NjI3YjQzYjNmMmUyNWIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTExZGIzOAotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzg3NGVkNWQ2MzNkMjQ1YjEwZmRkYTUyYzQ5NjI3YjQzYjNmMmUyNWIKQEAgLTAsMCArMSwxNCBAQAorLS0tLS1CRUdJTiA6VCEoARshKiEqejonKvQ66M2wOiEVGm2uKs3VT8cqxDvyuTopCitPxyrEO/K5OikKKyA6KOedLyE7ITuRN+0oKTsnOlu0DidIICdHKU1Hv9En6xV5TwkpbygqgSjHKsQtLS0tLS0tRU5EIPK5OikKKy0tLS0tQkVHSU6sT8cqxDvyuTopCisKKworIDoo550vITshO5FPxyrEO/K5OikKKy0tLS0tQkVHSU4gOijnnS8hOyE7kTbtKCk7JzpbtA4nSCgnRylNR7/RJ+uYFXlPCSkoKoEoxyrELS0tLS0KK6zZT8cqxDvyuTopCisKKy0tLS1CRUdJTiBPITqaJ1UoJ98oEijnnS8hOyE7kTbtKCk7JzgotA4nSCgnMSlNFZhHv+vRJ0/HISrEO/K5OikKKzoo550tLyE7ITuRNu0oKTsnOii0DidIKCdHKU0VmEe/69EneU8tLS0tLUJFR0lOLS0tLTqMOihPxyrEO/K5OikKKzsoai037SgpOyc7W7QOJ0goJ0fnnS8hOyE7kTbtKCk7JzooJzuxKU1Hv9En65gVeU8JKW8oKoEoxyrELS0tLS0OCivZLS0tLS1FTkQgT8cqOzspJyePRDvbA4U6Zig7jXc6O8UXO+wqxkiMLS0tCQkJCQkJCQkJCQkJCQkJCQkJDAkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy84ODU4MWViYWM4ZmZiZWE3MWJiODNmNzA0ZTE0ZDc4OWRiYzMzZjM3IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvODg1ODFlYmFjOGZmYmVhNzFiYjgzZjcwNGUxNGQ3ODlkYmMzM2YzNwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NmY5YmE4Ci0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvODg1ODFlYmFjOGZmYmVhNzFiYjgzZjcwNGUxNGQ3ODlkYmMzM2YzNwpAQCAtMCwwICsxLDE3IEBACistLS0tLUJFR0lOIE8tLS0tLQorLS0tLShFTkQgnS8hLS0tLZE27SgKKyA37ZE7ISg7KZotLS0tLUVORCDnAi9PITqaLS0tCistLS1CRUdJTiBPLS0tLS0KKy0tLS0oRU5EIJ0vIS0tLSdVKCffKDoo5yEvnTshO5E27SgpOyc6KLQOJ0goJ0cpTRWYR7/r0Sd5Ty0KKwkpbygqgSjHKsQ78rk6Kbes2SqqOiEtCis6KCc7sQ7XJ9ooO5fpKS0KK9AoITqZKaLtOpQiUJVaoIhnOjsgOic6wjowISn39il2kCrHvjotLUJFR0lOIDbtkTshKDspmi0tCistLS0tRU5EIOcCLyEtLS0tLQorLQora3FVOyE6T5onVXw62I44Kjo7c+EaKGYhkTuQOyktLSotLS0tCistLS0tQkVHSU4gkU8tLS0tLQorLS0tLShFTkQgnS8hLS0tLS1CRUdJTiA27Qorai0KK5E7ISg7KZotLQorLS0tLUVOLQorNucC7SgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy84OTIxNTVjZTkyZDRjMzI5M2Y0OGU2ZmMyMDk3MzM2YmE4ODJhMGFkIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvODkyMTU1Y2U5MmQ0YzMyOTNmNDhlNmZjMjA5NzMzNmJhODgyYTBhZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTMyNjY1Ci0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvODkyMTU1Y2U5MmQ0YzMyOTNmNDhlNmZjMjA5NzMzNmJhODgyYTBhZApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy84OTRlMDkyYjdmZDlmNGUwYTU5MTFjYTEwNmUwOTdkMzgzM2QzNDkxIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvODk0ZTA5MmI3ZmQ5ZjRlMGE1OTExY2ExMDZlMDk3ZDM4MzNkMzQ5MQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzllNDIyCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvODk0ZTA5MmI3ZmQ5ZjRlMGE1OTExY2ExMDZlMDk3ZDM4MzNkMzQ5MQpAQCAtMCwwICsxLDMgQEAKK05oJ/HNKZA6IVg7gio6uSk6ljv8tfshqClsOydPMikrJyo6hik6KCRYOgorLS0tLS1CRUdJTiAhlSoh+BqyKCg0IejOsPQpz6sonCgOq0StOrwoISi6Vzs6dzqvKlM7KCgnOuIqOigoYLI6KDYMITsLKig6JzNAtjsyIfwoSrnXYCGfOga49bYoKCkJKa0njzk6KEIe/ilKC/FtIeVZKCE7KVQhKTsqFFApTmgn8c0pkDohWDuCKjq5KTqWO/y1+yGoKWw7J08yTmgn8c0pkDohWDuCKjq5KRhrKiGMKhVE1SeeYdBbIcqsKiMnJjqWO/y1+yGoKWw7KSsqxTv2Tmgn8ScqOoYpOigkWDoKKy0tLS0tQkVHSU4gIZUqISdPMikrJyo6hin4GrIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy84YzA3ZDYyOTlmMzNmZWU4OWFiMGM4MmU5MmUwNmNkNTU4YWRlNjBmIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvOGMwN2Q2Mjk5ZjMzZmVlODlhYjBjODJlOTJlMDZjZDU1OGFkZTYwZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzIyYzI4Ci0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvOGMwN2Q2Mjk5ZjMzZmVlODlhYjBjODJlOTJlMDZjZDU1OGFkZTYwZgpAQCAtMCwwICsxLDE0IEBACistLS0tLUJFR0lOIDpUISgBGyEqISp6Oicq9DrozbA6IRUaba4qzdVPxyrEO/K5OikKK0/HKsQ78rk6KQorIDoo550vITshO5E37SgpOyc6W7QOJ0ggJ0cpTUe/0SfrFXlPCSlvKCqBKMcqxC0tLS0tLS1FTkQg8rk6KQorLS0tLS1CRUdJTqxPxyrEO/K5OikKKworCisgOijnnS8hOyE7kU/HKsQ78rk6KQorLS0tLS1CRUdJTiA6KOedLyE7ITuRNu0oKTsnOlu0DidIKCdHKU1Hv9En65gVeU8JKSgqgSjHKsQtLS0tLQorrNlPxyrEO/K5OikKKworLS0tLUJFR0lOIE8hOponVSgn3ygSKOedLyE7ITuRNu0oKTsnOCi0DidIKCcxKU0VmEe/69EnT8chKsQ78rk6KQorOijnnS0vITshO5E27SgpOyc6KLQOJ0goJ0cpTRWYR7/r0Sd5Ty0tLS0tQkVHSU4tLS0tOow6KE/HKsQ78rk6KQorOyhqLTftKCk7JztbtA4nSCgnR+edLyE7ITuRNu0oKTsnOig7sSlNR7/RJ+uYFXlPCSlvKCqBKMcqxC0tLS0tDgor2S0tLS0tRU5EIE/HKjs7KScnj0Q72wOFOmYoO413OjvFFwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQwJClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvOGUwN2ZiMDFlMGNmYTIzY2FkZGI2YjAyODBjMDNkMGFlMmJhYzU3ZSBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzhlMDdmYjAxZTBjZmEyM2NhZGRiNmIwMjgwYzAzZDBhZTJiYWM1N2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE1ZWMxYwotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzhlMDdmYjAxZTBjZmEyM2NhZGRiNmIwMjgwYzAzZDBhZTJiYWM1N2UKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvOTIyMDc5MjVkYjg0MTA2YWYwMTY3ZTg4NzY5NmQ5MzZhYTQxZTc4NSBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzkyMjA3OTI1ZGI4NDEwNmFmMDE2N2U4ODc2OTZkOTM2YWE0MWU3ODUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTVhZmFkNAotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzkyMjA3OTI1ZGI4NDEwNmFmMDE2N2U4ODc2OTZkOTM2YWE0MWU3ODUKQEAgLTAsMCArMSw1IEBACistLS0tLUJFR0lOIE8tLS0tLQorLS0tLShFTkQgnS8hLS0tLS1CRUdJIDbtkTshKDspmi0tLS0tRU5EIOcCLyEtLS0KKworCiuRNu0oClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvOTQ1MTRjNWMwOTJhZmUyZjgyOTVkYzE5M2Q1MDZmMTZjNmVhODJjMSBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzk0NTE0YzVjMDkyYWZlMmY4Mjk1ZGMxOTNkNTA2ZjE2YzZlYTgyYzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZhZWM5MwotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzk0NTE0YzVjMDkyYWZlMmY4Mjk1ZGMxOTNkNTA2ZjE2YzZlYTgyYzEKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvOTU2YzhjZjFkYjkyMjBhYzgwMDRlYjlhNzVlM2ViYzFkZjMzYTMzZiBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzk1NmM4Y2YxZGI5MjIwYWM4MDA0ZWI5YTc1ZTNlYmMxZGYzM2EzM2YKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI0ZjU5NQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzk1NmM4Y2YxZGI5MjIwYWM4MDA0ZWI5YTc1ZTNlYmMxZGYzM2EzM2YKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvOTdjNTU2NWY3MjNjMGU0OTc4N2ZkZWM5ZWQxNTM1NDc2MGZjYjFlNiBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzk3YzU1NjVmNzIzYzBlNDk3ODdmZGVjOWVkMTUzNTQ3NjBmY2IxZTYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFiYWM4MQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzk3YzU1NjVmNzIzYzBlNDk3ODdmZGVjOWVkMTUzNTQ3NjBmY2IxZTYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvOTgzMmZlYTFmZTFjOGI1NzU3OTBmNTlmOTg0MDRmYjYxNjcyYTNmMyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzk4MzJmZWExZmUxYzhiNTc1NzkwZjU5Zjk4NDA0ZmI2MTY3MmEzZjMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDMzYTI3MgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzLzk4MzJmZWExZmUxYzhiNTc1NzkwZjU5Zjk4NDA0ZmI2MTY3MmEzZjMKQEAgLTAsMCArMSw1IEBACistLS0tLUJFR0lOIE8tLS0tLQorLS0tLShFTkQgnS8hLS0tLS1CRS0tLS0tRU5EIEdJIDbtkTshKDspmi0tLS0tRU5EIOcCLyEtLQ8tCisKKy0KK5E29O0oIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzLzk5NDBiZDJmNDQwYThjMWUwN2RiYTY0NzZjMjE5MzQ5YWZlYWU3MTEgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy85OTQwYmQyZjQ0MGE4YzFlMDdkYmE2NDc2YzIxOTM0OWFmZWFlNzExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwOWFkYjkKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy85OTQwYmQyZjQ0MGE4YzFlMDdkYmE2NDc2YzIxOTM0OWFmZWFlNzExCkBAIC0wLDAgKzEsMTIgQEAKKy0tLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0tLUJFR0kgN+2ROyEoOymaLS0tLS1FTkQg5wIvTyE6mi0tLQorLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0nVSgn3yg6KOchL507ITuRNu0oKTsnOii0DidIKCdHKU0VmEe/69EneU8tCisJKW8oKoEoxyrEO/K5Oim3rNkqqjohOow6KCc7sQ7XJ9ooO5fpKdAoITqZKaLtOpQiUJVaoIhnOzo7IDonOsI6NyEp9/YpdpD0x746LS1CRUdJTiA27ZE7ISg7KZotLQorLS0tLUVORCDnAi8hLS0tLS0KKy0KK2txVTtPITqaJ1V8OtiOOCo6O3PhGihmIZE7kDspLS0qLS0tLQorLS0tLUJFR0lOIJFPLS0tLS0KKy0tLS0oRU5EIJ0vIS0tLS0tQkVHSU4gNu0KK2otCiuROyEoOymaLS0tLS1FTkQgNucC7SgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy85ZDFlNmVkMmZjNGIwOTVhMmNjYjRlNjk1MjQxYzkxZDRiMTk0YmU1IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvOWQxZTZlZDJmYzRiMDk1YTJjY2I0ZTY5NTI0MWM5MWQ0YjE5NGJlNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDkxN2JiCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvOWQxZTZlZDJmYzRiMDk1YTJjY2I0ZTY5NTI0MWM5MWQ0YjE5NGJlNQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9hMmJjMTRkNGJlM2JiNGY0ZGViOTNkZGFhNzcyMjRkYjMwNTE1OGFmIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYTJiYzE0ZDRiZTNiYjRmNGRlYjkzZGRhYTc3MjI0ZGIzMDUxNThhZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGUyMjNkCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYTJiYzE0ZDRiZTNiYjRmNGRlYjkzZGRhYTc3MjI0ZGIzMDUxNThhZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9hNzVhYmUwYjRkZDAzZGMyMzJmOTE5MjY2NmQ2YWRiMzY5YmVmZmNhIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYTc1YWJlMGI0ZGQwM2RjMjMyZjkxOTI2NjZkNmFkYjM2OWJlZmZjYQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTBmMmY2Ci0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYTc1YWJlMGI0ZGQwM2RjMjMyZjkxOTI2NjZkNmFkYjM2OWJlZmZjYQpAQCAtMCwwICsxLDUgQEAKKy0tLS0tdkJFR0lOIC0tK/QtLS0nLS0tK/QtLS0tLS0vCisKK+gtLS0tLUJFR0lOIC0tK/QtLS0nLS0tK/QtLS0tLegtLQorCivo6ApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2E5MmM1OGRmYWRiODE5NWZiZDkwYzcwYjRkYzU3Njk4NmRiYjdjNDYgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9hOTJjNThkZmFkYjgxOTVmYmQ5MGM3MGI0ZGM1NzY5ODZkYmI3YzQ2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzYTUwMzgKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9hOTJjNThkZmFkYjgxOTVmYmQ5MGM3MGI0ZGM1NzY5ODZkYmI3YzQ2CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2FhODJlZjRjZjFjM2MyZDdkZDc4MTE4MDMyMjdjYzg3ZDI0MjliM2MgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9hYTgyZWY0Y2YxYzNjMmQ3ZGQ3ODExODAzMjI3Y2M4N2QyNDI5YjNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4NGRiNDcKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9hYTgyZWY0Y2YxYzNjMmQ3ZGQ3ODExODAzMjI3Y2M4N2QyNDI5YjNjCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2FkNDlmZjhmYjlmZjk1YThmMTEwYjE1NzAyZjgyMDlkZjY0ZjhmYWQgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9hZDQ5ZmY4ZmI5ZmY5NWE4ZjExMGIxNTcwMmY4MjA5ZGY2NGY4ZmFkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5ZGQ5ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9hZDQ5ZmY4ZmI5ZmY5NWE4ZjExMGIxNTcwMmY4MjA5ZGY2NGY4ZmFkCkBAIC0wLDAgKzEsMTQgQEAKKy0tLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0tLUJFR0kgN+2ROyEoOymaLS0tLS1FTkQg5wIvTyE6mi0tLQorLS0tLS1FTkQgTy09LS0tCistLS0tKEVORCCdLyEtLS0nVSgn3yg6KOchL507ITuRNu0oKTsnOii0DidIKCdHKU0VmEe/69EneU8tCisJKW8oKoEoxyrEO/K5Oim3rNkqqjohLQorOignO7EO1yfaKDuX6SktCivQKCE6mSmi7TqUIlCVWqCIZzs6OyA6JzrCOjchKff2KXaQKse+Oi0tQkVHSU4gNu2ROyEoOymaLS0KKy0tLS1FTkQg5wIvIS0tLS0tCistCitrcVU7ITpPmidVfDrYjjkqOjtz4RooZiGRO5A7KS0tLS0tLQorLS0tLUJFR0lOIJFPLS0tLS0KKy0tLS0oRU5EIJ0vIS0tLS0tQkVHSU4gNu0KK2otCiuROyEoOymaLS0tLS1FTkQgNucC7SgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9hZjkyMDdjMzIwZjc0MDBiYTE4ZGVhNjJmZDRhZjk4MzMwYmEyNjBiIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYWY5MjA3YzMyMGY3NDAwYmExOGRlYTYyZmQ0YWY5ODMzMGJhMjYwYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTMzMmJhCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYWY5MjA3YzMyMGY3NDAwYmExOGRlYTYyZmQ0YWY5ODMzMGJhMjYwYgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9iMDM0ODY0MDIwMTU0Mzc4Yjc4YTExMTIyYzhmNjFmODFlODAwOWNlIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYjAzNDg2NDAyMDE1NDM3OGI3OGExMTEyMmM4ZjYxZjgxZTgwMDljZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjI1ODg5Ci0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYjAzNDg2NDAyMDE1NDM3OGI3OGExMTEyMmM4ZjYxZjgxZTgwMDljZQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9iMTc4ZWFkYjM1YWY2ODhkMDQ1YmE2YmM0MDAzOTZhZTBmYzdjOWI5IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYjE3OGVhZGIzNWFmNjg4ZDA0NWJhNmJjNDAwMzk2YWUwZmM3YzliOQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjZlMGFmCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYjE3OGVhZGIzNWFmNjg4ZDA0NWJhNmJjNDAwMzk2YWUwZmM3YzliOQpAQCAtMCwwICsxLDYgQEAKKy0tLS0tQkVHSU4gTyE6midVKCffKBIo550vITshO5FPITqaJ1UoJ98oEijnnS8hOyE7kTPtKCk7JzootA4nSCgnRylNFZhHv+vRJ3lPCSlPKCqBLS0t5y0tCistLS0tLUJFR0lOIDooKqo6ITqMTyFPxyrEO/K5OikKKy0tLS0tQkVHSU4gOijnnS8hOyE7kTbtKCk7JzpbtA4nSCgnRylNR7/RJ+uYFXlPCSlvKCqBKMcqxC0tLS0tCius2SqqOiEtLS0tLS0KKy0tLS1CRUlOIMcqxDvyuTopCitOIE8hOponVSgn3ygSKOedITshO5E27SgpOyc6KLQOJ0goJUcpTRWYR7/r0Sd5Twk6KW8oKoEoxyrEO/K5Oim3OponVSgnrNlPITqaJ1UoKqo6ITqMOignO7EO1yfaKDsn3yg6KOedL5fpKdAoITshO98oOijnnS8hOyE7kTbtkSgpOy027SgpO08hLToKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9iNzA5ZjM0MTJjNWZiOWEwYjM4YTY5ZWVlNTk2MjBhNWMzOTkwMzg1IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYjcwOWYzNDEyYzVmYjlhMGIzOGE2OWVlZTU5NjIwYTVjMzk5MDM4NQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzJmODA2Ci0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYjcwOWYzNDEyYzVmYjlhMGIzOGE2OWVlZTU5NjIwYTVjMzk5MDM4NQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9iOTJmMGY3MmI2ODM5ZjZjN2FjMTBmNGM2NjM3NjViODllMWZhNTEzIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYjkyZjBmNzJiNjgzOWY2YzdhYzEwZjRjNjYzNzY1Yjg5ZTFmYTUxMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzkzYmEwCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYjkyZjBmNzJiNjgzOWY2YzdhYzEwZjRjNjYzNzY1Yjg5ZTFmYTUxMwpAQCAtMCwwICsxLDIgQEAKKy0tLS0tQkVHSU4gTy0tLS0tCisnVSgn3yg6KOedLyEtLS0tLUJFR0lOIDbtkTshKDspmidVKCffKDoo5wIvITshOzsnOii0kTbtKApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2JjMjA1ZWQwMTViYjAxZGU2NmI1YTZiNWE2MzFkMTY3YzgwNzdhNWMgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9iYzIwNWVkMDE1YmIwMWRlNjZiNWE2YjVhNjMxZDE2N2M4MDc3YTVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmYTFkM2QKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9iYzIwNWVkMDE1YmIwMWRlNjZiNWE2YjVhNjMxZDE2N2M4MDc3YTVjCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2MwMzQ4YjVkZDdhYWY3Mzg4ODM3MmE1YTZhYmVmODJiZDBkZjk3YjkgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9jMDM0OGI1ZGQ3YWFmNzM4ODgzNzJhNWE2YWJlZjgyYmQwZGY5N2I5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0NzFkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9jMDM0OGI1ZGQ3YWFmNzM4ODgzNzJhNWE2YWJlZjgyYmQwZGY5N2I5CkBAIC0wLDAgKzEsMTggQEAKKy0tLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLQorLS0tkTbtKAorIDftkTshKDspmi0tLS0tRU5EIOcCL08hOpotLS0KKy0tLUJFR0lOIE8tLS0tLQorLS0tLShFTkQgnS8hLS0tJ1UoJ98oOijnIS+dOyE7kTbtKCk7JzootA4nSCgnRylNFZhHv+vRJ3lPLQorCSlvKCqBKMcqxDvyuTopt6zZKqo6IS0KKzooJzuxDtcn2ig7l+kpLQor0CghOpkpou06lCJQlVqgiGc6OyA6JzrCOjAhKff2KXaQKse+Oi0tQkVHSU4gNu2ROyEoOymaLS0KKy0tLS1FTkQg5wIvIS0tLS0tCistCitrcVU7ITpPmidVfDrYjjgqOjtz4RooZiGRO5A7KS0tKi0tLS0KKy0tLS1CRUdJTiCRTy0tLS0tCistLS0tKEVORCCdLyEtLS0tLUJFR0lOIDbtCitqLQorkTshKDspmi0tCistLS0tRU4tCis25wLtKApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2MwNTk2ZTU3M2Y0M2QyYmQ1YTVkMDM4YmY0YmQ3ZDA3MzE0MWRkZjAgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9jMDU5NmU1NzNmNDNkMmJkNWE1ZDAzOGJmNGJkN2QwNzMxNDFkZGYwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1ODgzNTgKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9jMDU5NmU1NzNmNDNkMmJkNWE1ZDAzOGJmNGJkN2QwNzMxNDFkZGYwCkBAIC0wLDAgKzEsMTYgQEAKKy0tLS0tLQorLS0tLS0KKy0tLS1CRUdJTiCRNu0oCisKKy0tLS1OIShFRCCdLy0tLS0tQkVHSSA27ZE7ISg7KZotLSctOC1FTkQg5y0KKy0tLUJFR0lOIE8tLS0tLQorLS0tLShFTkQtLT0tLUVORCAgLS0tLS1CRUdJTiBPLS0tLS0KKy0tLS0oRU5EIJ0vIS0tLS0tQkVHSU4gNu2ROyEoOymaLS0tLS1FTkQg5wIvnS8hLS0tLS0hO0JFLS0tLS1FTkQgR0kgNe2ROyEoOymaLS0tLS1FTkQg5wIvIS0tLQorCistCiuRNu0CLyEtLSEtLS0tLQorkTbtKA8tCisKKy0KK5E29O0oKC0KKyAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9jNDVmNDk0NTJmY2RmNTMxZjJiY2ZkMTAwNjQ1YzUzNWU1YjcxMjA1IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYzQ1ZjQ5NDUyZmNkZjUzMWYyYmNmZDEwMDY0NWM1MzVlNWI3MTIwNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODdkMDVkCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYzQ1ZjQ5NDUyZmNkZjUzMWYyYmNmZDEwMDY0NWM1MzVlNWI3MTIwNQpAQCAtMCwwICsxIEBACitP9CAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9jNTA0NjU5YjA0NTRiZTVlZWYwNTk0ZGE2YTk1MmY4ZGFmMzQ3OTI5IGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYzUwNDY1OWIwNDU0YmU1ZWVmMDU5NGRhNmE5NTJmOGRhZjM0NzkyOQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNWE5ZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYzUwNDY1OWIwNDU0YmU1ZWVmMDU5NGRhNmE5NTJmOGRhZjM0NzkyOQpAQCAtMCwwICsxIEBACistLS0tLUItRUdJTiAgZigKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9jN2U0YjdmNGMzYmJjN2M2ZWQ0ZTMzNjZkMWQ0YzE2ZWQ0NDk1MmYxIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYzdlNGI3ZjRjM2JiYzdjNmVkNGUzMzY2ZDFkNGMxNmVkNDQ5NTJmMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjI2YWZhCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvYzdlNGI3ZjRjM2JiYzdjNmVkNGUzMzY2ZDFkNGMxNmVkNDQ5NTJmMQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9jYWY0ODliYjhmNmY0OGUzNWI5NTAzMmIyODI0Y2EwZmZjNzdkMjZhIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvY2FmNDg5YmI4ZjZmNDhlMzViOTUwMzJiMjgyNGNhMGZmYzc3ZDI2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMzBhODQ1Ci0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvY2FmNDg5YmI4ZjZmNDhlMzViOTUwMzJiMjgyNGNhMGZmYzc3ZDI2YQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9jYzhjZWVlYmIyMzBjYTIzNzQ3OWUwYzNkYWNhZmJiNTUyNDIyMmUxIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvY2M4Y2VlZWJiMjMwY2EyMzc0NzllMGMzZGFjYWZiYjU1MjQyMjJlMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTQ3MTU5Ci0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvY2M4Y2VlZWJiMjMwY2EyMzc0NzllMGMzZGFjYWZiYjU1MjQyMjJlMQpAQCAtMCwwICsxLDIwIEBACistkTbtKAorCistLS0tLQorLS0tLUJFR0kpIJE27SgKKworLS0tLU4hKEVEIJ0vLS0tLS1CRUdJIDbtkTshKDspmi0tJy04LUVORCDnLYkKKy0tLUJFR0lOIE8tLS0tLQorLS0tLShFTkQtLT0tLUVORCAgLS0tLS1CRUdJTiBPLS0tLS0KKy0tLS0oRU5EIJ0vIS0tLUdCLUUtSU4gM+2ROyEoOymaLS0tLS1FTkQg5wIvnS8hLS0tLS0hO0JFLS0tLS1FTkQgR0kgNe2ROyEoOymaLS0tLS1FTkQg5y0tLS0tLS0tLS1CRUdJTiBPLS0tLS0tLS0tQkVHSU4gTy0tLS0tCistLS0tCisnVSgn3yg6KOcKKwIvIS0tLQorCistCiuRN+0CLyEtLSEtLS0tLQorkTadLyEtLS1PITqaJ1UoJ+0oDy0KKwor3yg6KOedLyE7ITuRNu0oKTsnOii0Di0KK5E29O0oKC0KKydIJ0cpTZhHv+vRJ3lPCSlvKCqBKMcqxDvyuTopt6zZKqo7ITqMOignO7EO1yfaKDsgl+kp0CghOpkpou06lCJQlVqgiHc7OlA7IDonOsI6NyEp9/YpdpD0x746a3FVO3w62A44KmE7c+EaKGYhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvY2YxYjNkMWVkMjA0ZGVlZDZjNjJmNDFkMGU3MDZlZTQ3YmM4MDJlMCBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2NmMWIzZDFlZDIwNGRlZWQ2YzYyZjQxZDBlNzA2ZWU0N2JjODAyZTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdjNzk0YgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2NmMWIzZDFlZDIwNGRlZWQ2YzYyZjQxZDBlNzA2ZWU0N2JjODAyZTAKQEAgLTAsMCArMSw3IEBACitPxyrEO/K5OikKKy0tLS0tQkVHSU4gOijnnS8hOyE7kTbtKCk7JzpbtA4nSCgnRylNR7/RJ+uYFXlPCSlvKCqBKMcqxC0tLS0tCius2U/HKsQ78rk6KQorCistLS0tQkVHSU4gTyE6midVKCffKBIo550vITshO5E27SgpOyc4KLQOJ0goJ0cpTRWYR7/r0SdPxyEqxDvyuTopCis6KOedLS8hOyE7kTbtKCk7JzootA4nSCgnRylNFZhHv+vRJ3lPLS0tLS1CRUdJTi0tLS06jDooT8cqxDvyuTopCis7KGot550vITshO5E27SgpOyc6KCc7sQ7XClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvY2ZjM2IxMzQ4Y2E3M2I4YzAyZDlhZWQ3MTVkMWUwNjgxMzI2ODg4YyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2NmYzNiMTM0OGNhNzNiOGMwMmQ5YWVkNzE1ZDFlMDY4MTMyNjg4OGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk5NDE2NgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2NmYzNiMTM0OGNhNzNiOGMwMmQ5YWVkNzE1ZDFlMDY4MTMyNjg4OGMKQEAgLTAsMCArMSBAQAorTyE6midVKCffKBIo550vITshO5E27SgpOyc4KLQOJ0goJ0cpTRWYR7/r0Sd5TwkpbygqgSjHKsQ78k8hOponVSgn3ygSKOedLyE7ITuRNu0oKTsnOCi0DidIKCdHKU0VmEe/69EneU8JKW+5Oim3rNlPITqaJ1UoKqo6ITqMOignO7EO1yfaKDsn3yg6KOedLynpKdAoLS0tLS1CRUdJTiAo550vITshO5E27SgpOyc6KLQOJyE7ITtIKCdHKU0VmEe/69EneU8qbygJKYEoxyrEO/K5Oigpt6zZKqoqgSjHKsQ78rk6Kbes2U8hOponVSgqqjohOow6KCc7sQ7XJ9ooOyffKDoo5506ITqMOignO7EO1yfaLynpKdAoLS0tLS1CRUdJTiAo550vITshO5E27SgpOyc6KLQOJyE7ITtIKCdHKU0VmEcokTY7l+kp0CghOpkpou06lL/r0Sd5TypvKAkpgSjHKsQ78rk6Kbes2SqqOiE6jDooJzuxDtcn2iiRNjuX6SnQKCE6mSmi7TqUIlCVWqCIdzs6UDsgOic6wjo3ISn39il2kPTHvjprcVU7fDrYjjgiUJVaoIh3OzpQOyA6Jyo6O3PhGihmIZE7kDspajrCKjo6OjchKff2KXaQ9Me+OmtxVTt8OtiOOCo6O3PhGihmIZE7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZDRmMGExOWVjZTgyYjc4YzgyYzgxZWFlNWI0OWRjNjYyYzZmNGE4OSBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2Q0ZjBhMTllY2U4MmI3OGM4MmM4MWVhZTViNDlkYzY2MmM2ZjRhODkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MxNWU3ZgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2Q0ZjBhMTllY2U4MmI3OGM4MmM4MWVhZTViNDlkYzY2MmM2ZjRhODkKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZDk1OWM2NDdjNmE1ZWE2NDFmZWMxNDdiMGRlMzYxODdhOWQyZjhjNSBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2Q5NTljNjQ3YzZhNWVhNjQxZmVjMTQ3YjBkZTM2MTg3YTlkMmY4YzUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FlODZhMQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2Q5NTljNjQ3YzZhNWVhNjQxZmVjMTQ3YjBkZTM2MTg3YTlkMmY4YzUKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZGUyZmI0NDUwM2FjYTNmODJkNTQ2NmE5NDg5YzA3MzUzMjRiMjE0ZCBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2RlMmZiNDQ1MDNhY2EzZjgyZDU0NjZhOTQ4OWMwNzM1MzI0YjIxNGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBkZjNmNgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2RlMmZiNDQ1MDNhY2EzZjgyZDU0NjZhOTQ4OWMwNzM1MzI0YjIxNGQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZGY5ZmU3ZDUxYTg5ZWUyNjcwMzRhMjgzNDAyNWY3MTUwNWQ0YTQyMSBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2RmOWZlN2Q1MWE4OWVlMjY3MDM0YTI4MzQwMjVmNzE1MDVkNGE0MjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU5NTFhZAotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2RmOWZlN2Q1MWE4OWVlMjY3MDM0YTI4MzQwMjVmNzE1MDVkNGE0MjEKQEAgLTAsMCArMSw3IEBACistLS0tLUJFR0lOIOgpYSc6hyc6ITsnUik6dRQTIDs6ck0tLS0tLQorLS0qCisoIcz5YSEq7Cko5y0pLS1CRUdJTiBOIOgpYSeHOic6LS0qCisqCisoIcz5YSEq7Cko5y0pLS1CRUdJTiBOIOgpITsnKgorLS0tQkVHSU4g6ClhJ4c6JzohOydSKTp1FBM6OnJSKU0n6ClhJ4c6JzohYSeHOic6LS0hOycqCistLS1CRUdJTiDoKWEnhzonOiE7J1IpOnUUEzo6clIpTSfoKWEnhzonOiE7J1IpOnUUEyA7OydSKTp1OnJNJxQTICo7OnJNJyoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lMWE2YzQwOTZiMTQ1Y2VkNTM2MmVkZTZmZmVkYmM0OWQxNmJhNTdlIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZTFhNmM0MDk2YjE0NWNlZDUzNjJlZGU2ZmZlZGJjNDlkMTZiYTU3ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWZhYTdjCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZTFhNmM0MDk2YjE0NWNlZDUzNjJlZGU2ZmZlZGJjNDlkMTZiYTU3ZQpAQCAtMCwwICsxLDQgQEAKKy0tLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0tLUJFR0lOIDbtkTshKDspmi0tLS0tRU5EIOcCLyEtLS0tLQorLQorkTbtKApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2UyMDc5NjBiMTc2MWJhOTVlNzU0NGI5ZDkyNDQ1OWM1NmUyYzQ2OTUgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lMjA3OTYwYjE3NjFiYTk1ZTc1NDRiOWQ5MjQ0NTljNTZlMmM0Njk1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0NWRlNWYKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lMjA3OTYwYjE3NjFiYTk1ZTc1NDRiOWQ5MjQ0NTljNTZlMmM0Njk1CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2UzMzQ0ZWY4ZDczNDQ3MWVmOTBiMTZjNzE5Y2IwZjExYWYyY2U3NDMgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lMzM0NGVmOGQ3MzQ0NzFlZjkwYjE2YzcxOWNiMGYxMWFmMmNlNzQzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlNTU4NmUKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lMzM0NGVmOGQ3MzQ0NzFlZjkwYjE2YzcxOWNiMGYxMWFmMmNlNzQzCkBAIC0wLDAgKzEsMyBAQAorLS0tLS1CRUdJTiDoKWEnOocnOiE7J1IpOnUUEyA7OnJNLS0tLS0KKy0tKgorKCHM+WEhKuwpKOctKS0tQkVHSU4gTiDoKS0tYQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2U0NWE2ZGY0MzVhMWNlY2FlNjU0N2Y2ZGNkZTYyNmE3ZTcwNjQzNGMgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lNDVhNmRmNDM1YTFjZWNhZTY1NDdmNmRjZGU2MjZhN2U3MDY0MzRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0OWNiZjEKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lNDVhNmRmNDM1YTFjZWNhZTY1NDdmNmRjZGU2MjZhN2U3MDY0MzRjCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2U3ZWY5MWUwM2EzYWE4YmQ1M2IyNDY2YTIyMDdhNTAyODE4NTY3OGYgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lN2VmOTFlMDNhM2FhOGJkNTNiMjQ2NmEyMjA3YTUwMjgxODU2NzhmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4ODUwODMKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lN2VmOTFlMDNhM2FhOGJkNTNiMjQ2NmEyMjA3YTUwMjgxODU2NzhmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2ViY2FlNzQ5ODVjY2M3OTA1YTM4MDBjMGRiMjcyMzM5MmNmZDJmMmMgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lYmNhZTc0OTg1Y2NjNzkwNWEzODAwYzBkYjI3MjMzOTJjZmQyZjJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMTZlNTUKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lYmNhZTc0OTg1Y2NjNzkwNWEzODAwYzBkYjI3MjMzOTJjZmQyZjJjCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2VkMzFiYWVlNzBkM2I3MDU3NjJlODA4ZTQ5NGI0ZGViZjYwNGM1ZmIgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lZDMxYmFlZTcwZDNiNzA1NzYyZTgwOGU0OTRiNGRlYmY2MDRjNWZiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNzFhOGUKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9lZDMxYmFlZTcwZDNiNzA1NzYyZTgwOGU0OTRiNGRlYmY2MDRjNWZiCkBAIC0wLDAgKzEsMzEgQEAKKy0tLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0tkUcKKygKKyA3LS0KKy0tQkVHSU4gBTqwNCcXEC0tLS0tCitHCitVVSAgLS0tLS1CRUdJTiAFOrA0JxcQLy0tLS0KKy0tLS0tQkVJTiAFOrA0JxcQLS0tLS0KK0cKK1VVLS0KKy0tQkVHSU4gBTqwNCcXEC0tLS0tCitHCitVVSAgLS0tLS1CRUdJTiAFMrA0JxcQLy0tLS0KKy0tLS0tQkVHSU4gBTqwNCcXEC0tLS0tCitHCitVVSAgUUcKK3dGVUcKKyBmYndGVVUgUUcKK3dGVSAgICAgUUcKK3dGVUcKKyBmYndGVVUgUUcKK3dGVSAgIGZid0ZVVVUgIEcKK2J3RlUgICBmCitid0ZVIFUgICBmYndGVVUgICAgIGYKK2J3RlUgVSAgIGZiVSAgIGZid0YgIGZVRworIGZid0ZVICBmICBmVHdGVFUgICBmYndGVWZid0ZVVSAgIGYKK2J3RlUgVSAgIGZid0ZVVe2ROyEoOymaLS0tLS1FTgQg5wIvTyE6mi0tLQorLS0tQkUtIE5JLUdPLS0tCistLS0qCisgICAgIGYKK2J3RlUgVSAgIGZiVSAgIGZidy0tLS0tQkVHLUYgIGZVClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZWUwNjk2NTc2NGZkZjY3Njk2NTdlNzQ0YTYxZWZlN2Q2MGQwODVmYiBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2VlMDY5NjU3NjRmZGY2NzY5NjU3ZTc0NGE2MWVmZTdkNjBkMDg1ZmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M3YWViYQotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2VlMDY5NjU3NjRmZGY2NzY5NjU3ZTc0NGE2MWVmZTdkNjBkMDg1ZmIKQEAgLTAsMCArMSBAQAorT/QhIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2YxMjNjMDhkMGE0NmI3MmZhODk4OTI5NmU4MmU3YWEyNWViZjE2ZjggYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9mMTIzYzA4ZDBhNDZiNzJmYTg5ODkyOTZlODJlN2FhMjVlYmYxNmY4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1MzBhMTIKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9mMTIzYzA4ZDBhNDZiNzJmYTg5ODkyOTZlODJlN2FhMjVlYmYxNmY4CkBAIC0wLDAgKzEsNyBAQAorLS0tLS1CRUdJTiAtLSv0LS0tJy0tLS0tdkJFR0lOIC0tK/QtLS0nLS0tK/QtLS0tLS0vCisKK+gtLS0tLSv0LS0tLS0tLS0tQkVHSU4gLS0r9C0tLSctLS0tCisKK+gr9C0tLS0t6C3oLQorCivo6ApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2YxOGViYzU5M2I4N2JhYTAzYjVlMDAzYjc1NDA1NzcwMDFiYTZhY2EgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9mMThlYmM1OTNiODdiYWEwM2I1ZTAwM2I3NTQwNTc3MDAxYmE2YWNhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlMjlkZmYKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9mMThlYmM1OTNiODdiYWEwM2I1ZTAwM2I3NTQwNTc3MDAxYmE2YWNhCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2YxOTAzYzZlMjA1YmE3YjkwMmU1M2IwN2UwODg5MGVjODE3OWNiZDUgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9mMTkwM2M2ZTIwNWJhN2I5MDJlNTNiMDdlMDg4OTBlYzgxNzljYmQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyOGUyNjcKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9mMTkwM2M2ZTIwNWJhN2I5MDJlNTNiMDdlMDg4OTBlYzgxNzljYmQ1CkBAIC0wLDAgKzEgQEAKKycqOujNJyr0OugtJy0tLS1CRUdJTir0OujNJyr0OiDoClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZjNmMjk1OTM2MTc2NmRiZmFmYmIyZjk5YTRmNjBjOTIwMDAxMzg2ZSBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2YzZjI5NTkzNjE3NjZkYmZhZmJiMmY5OWE0ZjYwYzkyMDAwMTM4NmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdlYmI1YgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2YzZjI5NTkzNjE3NjZkYmZhZmJiMmY5OWE0ZjYwYzkyMDAwMTM4NmUKQEAgLTAsMCArMSw2IEBACistLS0tLS0KKy0tLS1CRUdJTiBPLS0tLS0tLS0tCistLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0tLUJFR0lOIDbtkTshKDspmi0tLS0tLS0KKy0tRU5EIC0tKEVORCCdLyEtLS0tLUJFR0lOIDbtkTshKDspmi0t5wIvIS0tLS0tCistLQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2Y3MjExNTgzODYzMGM3MGEwNjdlODliOTg2MTUzNTdmY2YxOWQwNTggYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9mNzIxMTU4Mzg2MzBjNzBhMDY3ZTg5Yjk4NjE1MzU3ZmNmMTlkMDU4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlOWI3ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9mNzIxMTU4Mzg2MzBjNzBhMDY3ZTg5Yjk4NjE1MzU3ZmNmMTlkMDU4CkBAIC0wLDAgKzEsNDUgQEAKKy0tLS0tQkVHSU4gTy0tLS0tCistKAorLShFTkQgnS8hLS0tLZFHCisoCisgKC0tCisoCitCRUdJTiAFOrA0JxcQLS0tLS0KK0cKK1VVICAtLS0tLUJFR0lOIAU6sDQnFxAvLS0tLQorLS0tLS1CRUlOIAU6sDQnFxAtLS0tLQorRworVVUtLQorLS1CRUdJTiAFOrA0JxcQRworLS0tLS0KK0cKK1VVICAtLS0tLUJFR0lOIAUysDQnFxAvLS0tLQorLS0tLS1CRUdJTiAFOrA0JxcQLS0tLS0KK0cKK1VVLS0tLS1CRUdJTiBPLS0tLS0KKy0oCistKEVORCCdLyEtLS0tkUcKKygKKyAoLS0KKygKK0JFR0lOIAU6sDQnFxAtLS0tLQorRworVVUgIC0tLS0tQkVHSU4gBTqwNCcXEC8tLS0tCistLS0tLUJFSU4gICBRRword0YFOrA0JxcQLS0tLS0KK0cKK1VVLS0KKy0tQkVHSU4gBTqwNCcXEEcKKy0tLS0tCitHCitVVSAgLS0tLS1CRUdJTiAFMrA0JxcQLy0tLS0KKy0tLS0tQkVHSU4gBTqwNCcXEC0tLS0tCitHCitVVSAgUUcKK3dGVUcKKyBmYndGVVUgUUcKK3dGVSAgICAgVVFHCit3RlVHCisgZmJ3RlVVIFFHCit3RlUgICBmRworIGIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9mOWY2MWYwMzY4MTI1MGIwMTVhMDBkZjMwMTBiODlkMmQ3NzZkOGZjIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZjlmNjFmMDM2ODEyNTBiMDE1YTAwZGYzMDEwYjg5ZDJkNzc2ZDhmYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjQzZDhlCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZjlmNjFmMDM2ODEyNTBiMDE1YTAwZGYzMDEwYjg5ZDJkNzc2ZDhmYwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mdXp6L3JlYWRfcGVtX2NvcnB1cy9mYWQ3ZTQwNzFhZmMxZTRmNDQxZTJjYjY1Y2Y5YjBkYTM3ZGNkNzRlIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZmFkN2U0MDcxYWZjMWU0ZjQ0MWUyY2I2NWNmOWIwZGEzN2RjZDc0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmIyZGRiCi0tLSAvZGV2L251bGwKKysrIGIvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZmFkN2U0MDcxYWZjMWU0ZjQ0MWUyY2I2NWNmOWIwZGEzN2RjZDc0ZQpAQCAtMCwwICsxLDIgQEAKKyctLS0r9C0tLS0tCivoClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZmIzNmIwY2UxNjAwYjkzOTlkNTUyZWFiOTE2NjAwYzIzOWJlNWFkNSBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2ZiMzZiMGNlMTYwMGI5Mzk5ZDU1MmVhYjkxNjYwMGMyMzliZTVhZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYxOTVjYgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2ZiMzZiMGNlMTYwMGI5Mzk5ZDU1MmVhYjkxNjYwMGMyMzliZTVhZDUKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZmI2NGZlZjZlYTJmODM1ODA0YjY5YWUzZDIxZmIyY2FjN2U0OTczZiBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2ZiNjRmZWY2ZWEyZjgzNTgwNGI2OWFlM2QyMWZiMmNhYzdlNDk3M2YKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDAyOTRlZgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2ZiNjRmZWY2ZWEyZjgzNTgwNGI2OWFlM2QyMWZiMmNhYzdlNDk3M2YKQEAgLTAsMCArMSw5IEBACistLS0tLUJFR0lOIE8tLS0tLQorLS0tLShFTkQgnS8hLS0tLS1CRUdJIDftkTshKDspmi0tLS0tRU5EIOcCL08hOpotLS0tLUJFR0lOIE8tLS0tLQorLS0tLShFTkQgnS8hLS0tJ1UoJ98oOijnnS8hOyE7kTbtKCk7JzootA4nSCgnRylNFZhHv+vRJ3lPLQorCSlvKCqBKMcqxDvyuTopt6zZKqo6ITqMOignO7EO1yfaKDuX6SnQKCE6mSmi7TqUIlCVWqCIZzs6UDsgOic6wjo3ISn39il2kPTHvjotLUJFR0lOIDbtkTshKDspmi0tLS0tRU5EIOcCLyEtLS0tLQorLQora3FVO08hOponVXw62I44Kjo7c+EaKGYhkTuQOyktLS0tLS0KKy0tLS1CRUdJTiCRTy0tLS0tCistLS0tKEVORCCdLyEtLS0tLUJFR0lOIDbtLQoraio6kTshKDspmi0tLS0tRU5EIDbnAu0oClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZmI2ZDQ3MDJiY2I5OGRmMTczNTI3YTVmMDhkNWFjODI5YWRiMmY5ZiBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2ZiNmQ0NzAyYmNiOThkZjE3MzUyN2E1ZjA4ZDVhYzgyOWFkYjJmOWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MzY2JlZgotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2ZiNmQ0NzAyYmNiOThkZjE3MzUyN2E1ZjA4ZDVhYzgyOWFkYjJmOWYKQEAgLTAsMCArMSwxNSBAQAorLS0tLS1CRUdJTiBPLS0tLS0KKy0tLS0oRU5EIJ0vIS0tLS2RNu0oCisgN+2ROyEoOymaLS0tLS1FTkQg5wIvTyE6mi0tLQorLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0nVSgn3yg6KOchL507ITuRNu0oKTsnOii0DidIKCdHKU0VmEe/69EneU8tCisJKW8oKoEoxyrEO/K5Oim3rNkqqjohLQorOignO7EO1yfaKDuX6SktCivQKCE6mSmi7TqUIlCVWqCIZzs6OyA6JzrCOjchKff2KXaQKse+Oi0tQkVHSU4gNu2ROyEoOymaLS0KKy0tLS1FTkQg5wIvIS0tLS0tCistCitrcVU7ITpPmidVfDrYjjgqOjtz4RooZiGRO5A7KS0tKi0tLS0KKy0tLS1CRUdJTiCRTy0tLS0tCistLS0tKEVORCCdLyEtLS0tLUJFR0lOIDbtCitqLQorkTshKDspmi0tLS0tRU5EIDbnAu0oClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZnV6ei9yZWFkX3BlbV9jb3JwdXMvZmQxY2M3MDYwMzM5NzZiODZhOTNkMmIwYzc0YjE1YmIyZjMxZmNjZiBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2ZkMWNjNzA2MDMzOTc2Yjg2YTkzZDJiMGM3NGIxNWJiMmYzMWZjY2YKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDZmMzI4MwotLS0gL2Rldi9udWxsCisrKyBiL2Z1enovcmVhZF9wZW1fY29ycHVzL2ZkMWNjNzA2MDMzOTc2Yjg2YTkzZDJiMGM3NGIxNWJiMmYzMWZjY2YKQEAgLTAsMCArMSwxOCBAQAorLZE27SgKKworLS0tLS0KKy0tLS1CRUdJTiCRNu0oCisKKy0tLS1OIShFRCCdLy0tLS0tQkVHSSA27ZE7ISg7KZotLSctOC1FTkQg5y2JCistLS1CRUdJTiBPLS0tLS0KKy0tLS0oRU5ELS09LS1FTkQgIC0tLS0tQkVHSU4gTy0tLS0tCistLS0tKEVORCCdLyEtLS0tLUJFR0lOIDftkTshKDspmi0tLS0tRU5EIOcCL50vIS0tLS0tITtCRS0tLS0tRU5EIEdJIDXtkTshKDspmi0tLS0tRU5EIOctLS0tLQorAi8hLS0tCisKKy0KK5E37QIvIS0tIS0tLS0tCiuRNu0oDy0KKworLQorkTb07SgoLQorIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2Z1enovcmVhZF9wZW1fY29ycHVzL2ZmN2RjZGIwZmMxM2RkZWE2ZTgyY2FjN2JmM2EwNDE0Y2I3NzJkZWQgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9mZjdkY2RiMGZjMTNkZGVhNmU4MmNhYzdiZjNhMDQxNGNiNzcyZGVkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4ZmQyYjAKLS0tIC9kZXYvbnVsbAorKysgYi9mdXp6L3JlYWRfcGVtX2NvcnB1cy9mZjdkY2RiMGZjMTNkZGVhNmU4MmNhYzdiZjNhMDQxNGNiNzcyZGVkCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9iYXNlNjQuaCBiL2luY2x1ZGUvb3BlbnNzbC9iYXNlNjQuaAppbmRleCBmMjhlN2RkLi40YmYzODg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvYmFzZTY0LmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL2Jhc2U2NC5oCkBAIC04NywxNSArODcsMTYgQEAKIAogLyogRGVjb2RpbmcgKi8KIAotLyogRVZQX0RlY29kZWRMZW5ndGggc2V0cyB8Km91dF9sZW58IHRvIHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcwotICogdGhhdCB3aWxsIGJlIG5lZWRlZCB0byBjYWxsIHxFVlBfRGVjb2RlQmFzZTY0fCBvbiBhbiBpbnB1dCBvZgotICogbGVuZ3RoIHxsZW58LiAqLworLyogRVZQX0RlY29kZWRMZW5ndGggc2V0cyB8Km91dF9sZW58IHRvIHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyB0aGF0IHdpbGwKKyAqIGJlIG5lZWRlZCB0byBjYWxsIHxFVlBfRGVjb2RlQmFzZTY0fCBvbiBhbiBpbnB1dCBvZiBsZW5ndGggfGxlbnwuIEl0IHJldHVybnMKKyAqIG9uZSBvbiBzdWNjZXNzIG9yIHplcm8gaWYgfGxlbnwgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciBhIGJhc2U2NC1lbmNvZGVkCisgKiBzdHJpbmcuICovCiBPUEVOU1NMX0VYUE9SVCBpbnQgRVZQX0RlY29kZWRMZW5ndGgoc2l6ZV90ICpvdXRfbGVuLCBzaXplX3QgbGVuKTsKIAogLyogRVZQX0RlY29kZUJhc2U2NCBkZWNvZGVzIHxpbl9sZW58IGJ5dGVzIGZyb20gYmFzZTY0IGFuZCB3cml0ZXMKICAqIHwqb3V0X2xlbnwgYnl0ZXMgdG8gfG91dHwuIHxtYXhfb3V0fCBpcyB0aGUgc2l6ZSBvZiB0aGUgb3V0cHV0CiAgKiBidWZmZXIuIElmIGl0IGlzIG5vdCBlbm91Z2ggZm9yIHRoZSBtYXhpbXVtIG91dHB1dCBzaXplLCB0aGUKLSAqIG9wZXJhdGlvbiBmYWlscy4gKi8KKyAqIG9wZXJhdGlvbiBmYWlscy4gSXQgcmV0dXJucyBvbmUgb24gc3VjY2VzcyBvciB6ZXJvIG9uIGVycm9yLiAqLwogT1BFTlNTTF9FWFBPUlQgaW50IEVWUF9EZWNvZGVCYXNlNjQodWludDhfdCAqb3V0LCBzaXplX3QgKm91dF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbWF4X291dCwgY29uc3QgdWludDhfdCAqaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5fbGVuKTsKQEAgLTEwNSw5ICsxMDYsNyBAQAogICoKICAqIE9wZW5TU0wgcHJvdmlkZXMgYSBzdHJlYW1pbmcgYmFzZTY0IGltcGxlbWVudGF0aW9uLCBob3dldmVyIGl0cyBiZWhhdmlvciBpcwogICogdmVyeSBzcGVjaWZpYyB0byBQRU0uIEl0IGlzIGFsc28gdmVyeSBsZW5pZW50IG9mIGludmFsaWQgaW5wdXQuIFVzZSBvZiBhbnkgb2YKLSAqIHRoZXNlIGZ1bmN0aW9ucyBpcyB0aHVzIGRlcHJlY2F0ZWQuCi0gKgotICogVE9ETyhkYXZpZGJlbik6IEltcG9ydCB1cHN0cmVhbSdzIHJld3JpdGUgdGhhdCByZWplY3RzIHRoZSBpbnZhbGlkIGlucHV0LiAqLworICogdGhlc2UgZnVuY3Rpb25zIGlzIHRodXMgZGVwcmVjYXRlZC4gKi8KIAogLyogRVZQX0VuY29kZUluaXQgaW5pdGlhbGlzZXMgfCpjdHh8LCB3aGljaCBpcyB0eXBpY2FsbHkgc3RhY2sKICAqIGFsbG9jYXRlZCwgZm9yIGFuIGVuY29kaW5nIG9wZXJhdGlvbi4KQEAgLTE1OSwyMSArMTU4LDI1IEBACiAgKgogICogV0FSTklORzogRVZQX0RlY29kZUJsb2NrJ3MgcmV0dXJuIHZhbHVlIGRvZXMgbm90IHRha2UgcGFkZGluZyBpbnRvCiAgKiBhY2NvdW50LiBJdCBhbHNvIHN0cmlwcyBsZWFkaW5nIHdoaXRlc3BhY2UgYW5kIHRyYWlsaW5nCi0gKiB3aGl0ZXNwYWNlLiAqLworICogd2hpdGVzcGFjZSBhbmQgbWludXNlcy4gKi8KIE9QRU5TU0xfRVhQT1JUIGludCBFVlBfRGVjb2RlQmxvY2sodWludDhfdCAqZHN0LCBjb25zdCB1aW50OF90ICpzcmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzcmNfbGVuKTsKIAogCiBzdHJ1Y3QgZXZwX2VuY29kZV9jdHhfc3QgewotICB1bnNpZ25lZCBudW07ICAgIC8qIG51bWJlciBzYXZlZCBpbiBhIHBhcnRpYWwgZW5jb2RlL2RlY29kZSAqLwotICB1bnNpZ25lZCBsZW5ndGg7IC8qIFRoZSBsZW5ndGggaXMgZWl0aGVyIHRoZSBvdXRwdXQgbGluZSBsZW5ndGgKLSAgICAgICAgICAgICAgICogKGluIGlucHV0IGJ5dGVzKSBvciB0aGUgc2hvcnRlc3QgaW5wdXQgbGluZQotICAgICAgICAgICAgICAgKiBsZW5ndGggdGhhdCBpcyBvay4gIE9uY2UgZGVjb2RpbmcgYmVnaW5zLAotICAgICAgICAgICAgICAgKiB0aGUgbGVuZ3RoIGlzIGFkanVzdGVkIHVwIGVhY2ggdGltZSBhIGxvbmdlcgotICAgICAgICAgICAgICAgKiBsaW5lIGlzIGRlY29kZWQgKi8KLSAgdWludDhfdCBlbmNfZGF0YVs4MF07IC8qIGRhdGEgdG8gZW5jb2RlICovCi0gIHVuc2lnbmVkIGxpbmVfbnVtOyAgICAvKiBudW1iZXIgcmVhZCBvbiBjdXJyZW50IGxpbmUgKi8KLSAgaW50IGV4cGVjdF9ubDsKKyAgLyogZGF0YV91c2VkIGluZGljYXRlcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHxkYXRhfCB0aGF0IGFyZSB2YWxpZC4gV2hlbgorICAgKiBlbmNvZGluZywgfGRhdGF8IHdpbGwgYmUgZmlsbGVkIGFuZCBlbmNvZGVkIGFzIGEgbHVtcC4gV2hlbiBkZWNvZGluZywgb25seQorICAgKiB0aGUgZmlyc3QgZm91ciBieXRlcyBvZiB8ZGF0YXwgd2lsbCBiZSB1c2VkLiAqLworICB1bnNpZ25lZCBkYXRhX3VzZWQ7CisgIHVpbnQ4X3QgZGF0YVs0OF07CisKKyAgLyogZW9mX3NlZW4gaW5kaWNhdGVzIHRoYXQgdGhlIGVuZCBvZiB0aGUgYmFzZTY0IGRhdGEgaGFzIGJlZW4gc2VlbiB3aGVuCisgICAqIGRlY29kaW5nLiBPbmx5IHdoaXRlc3BhY2UgY2FuIGZvbGxvdy4gKi8KKyAgY2hhciBlb2Zfc2VlbjsKKworICAvKiBlcnJvcl9lbmNvdW50ZXJlZCBpbmRpY2F0ZXMgdGhhdCBpbnZhbGlkIGJhc2U2NCBkYXRhIHdhcyBmb3VuZC4gVGhpcyB3aWxsCisgICAqIGNhdXNlIGFsbCBmdXR1cmUgY2FsbHMgdG8gZmFpbC4gKi8KKyAgY2hhciBlcnJvcl9lbmNvdW50ZXJlZDsKIH07CiAKIAo=