From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id B9C583858D37 for ; Tue, 21 Mar 2023 13:43:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B9C583858D37 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.98,279,1673942400"; d="scan'208";a="101051523" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa4.mentor.iphmx.com with ESMTP; 21 Mar 2023 05:43:05 -0800 IronPort-SDR: tuCY+U5fFs7YMnOqGVQMvoBNMeWCRA+Li4kvhKSTozTcdGhm6epXZHGzxr0WoeBh3xRV3XOYQz MaAUQawh2/T9XteBt9DqlAd/fZkvEBBKVnt0yY8hxePVvOctCOy9Nsj1NJl7onV9jHSKP66KhV QC/KvdXsDH8QJDL2264VIOwqZOYvDNhKGRXt14R7IodLcjvQSI/LwO18RjI2BuLMPlN5vD6/k9 WFViXKcz+rHLqdROWKHrJ3UgYgtMuh3gWmoD3BZwLKt/cpGr9MHR+B5hmc39gr1X8m9rrbrKti lDk= Content-Type: multipart/mixed; boundary="------------3udkhGlY8xRGm1WmBSFjqjFT" Message-ID: Date: Tue, 21 Mar 2023 13:42:56 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.2 Content-Language: en-US To: GCC Patches From: Andrew Jenner Subject: [PATCH] amdgcn: Add accumulator VGPR registers X-ClientProxiedBy: svr-orw-mbx-10.mgc.mentorg.com (147.34.90.210) To svr-ies-mbx-10.mgc.mentorg.com (139.181.222.10) X-Spam-Status: No, score=-9.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --------------3udkhGlY8xRGm1WmBSFjqjFT Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit This patch gives GCC to use the accumulator VGPR registers on CDNA1 and later architectures. The backend does not yet attempt to make use of the matrix acceleration instructions, but the new registers are still useful as fast space for register spills. And they can now be used in inline assembly statements. I haven't written a dedicated testcase for this - just building libgcc and libgfortran seems to have thoroughly exercised the code paths involved. I have a test run in progress - assuming that this doesn't find any breakage, OK to commit? gcc/ChangeLog: * config/gcn/constraints.md: Add AVGPR constraints. * config/gcn/gcn-valu.md (*mov, mov_sgprbase) (reload_in, reload_out): Add AVGPR alternatives. (gather_insn_1offset, gather_insn_1offset_ds) (gather_insn_2offsets) (scatter_store_insn_1offset_insn_1offset_ds) (scatter_insn_2offsets): Allow use of AVGPRs. * config/gcn/gcn.cc (MAX_NORMAL_AVGPR_COUNT): Define. (gcn_class_max_nregs): Handle AVGPR_REGS. (gcn_hard_regno_mode_ok): Likewise. (gcn_spill_class): Allow spilling to AVGPRs on TARGET_CDNA2_PLUS. (gcn_sgpr_move_p): Handle AVGPRs. (gcn_secondary_reload): Reload AVGPRs via VGPRs. (gcn_conditional_register_usage): Handle AVGPRs. (gcn_vgpr_equivalent_register_operand): New function. (gcn_valid_move_p): Check for validity of AVGPR moves. (gcn_memory_move_cost): Handle AVGPRs. (gcn_register_move_cost): Liekwise. (gcn_vmem_insn_p): Handle TYPE_VOP3P_MAI. (gcn_hsa_declare_function_name): Handle AVGPRs. (print_reg): Likewise. (gcn_dwarf_register_numbe): Likewise. * config/gcn/gcn.h (FIRST_AVGPR_REG, AVGPR_REGNO, LAST_AVGPR_REG): Define. (SOFT_ARG_REG, FRAME_POINTER_REGNUM, DWARF_LINK_REGISTER) (FIRST_PSEUDO_REGISTER): Update. (AVGPR_REGNO_P): Define. (FIXED_REGISTERS, CALL_USED_REGISTERS): Add AVGPRs. (enum reg_class, REG_CLASS_NAMES): Add AVGPR_REGS and ALL_VGPR_REGS. (REG_CLASS_CONTENTS): Add new register classes and add entries for AVGPRs to all classes. (REGISTER_NAMES): Add AVGPRs. * config/gcn/gcn.md (FIRST_AVGPR_REG, LAST_AVGPR_REG): Define. (AP_REGNUM, FP_REGNUM): Update. (define_attr "type"): Add vop3p_mai. (*mov_insn, *movti_insn): Add AVGPR alternatives. * gcc/config/gcn/predicates.md (gcn_avgpr_register_operand) (gcn_avgpr_hard_register_operand): New predicates. --------------3udkhGlY8xRGm1WmBSFjqjFT Content-Type: text/plain; charset="UTF-8"; name="avgpr.patch" Content-Disposition: attachment; filename="avgpr.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvZ2NuL2NvbnN0cmFpbnRzLm1kIGIvZ2NjL2NvbmZp Zy9nY24vY29uc3RyYWludHMubWQKaW5kZXggZWZlNDYyYTBiZDYuLjMzZmJjZTU1MmNhIDEw MDY0NAotLS0gYS9nY2MvY29uZmlnL2djbi9jb25zdHJhaW50cy5tZAorKysgYi9nY2MvY29u ZmlnL2djbi9jb25zdHJhaW50cy5tZApAQCAtNzcsNiArNzcsMTEgQEAKIChkZWZpbmVfcmVn aXN0ZXJfY29uc3RyYWludCAidiIgIlZHUFJfUkVHUyIKICAgIlZHUFIgcmVnaXN0ZXJzIikK IAorKGRlZmluZV9yZWdpc3Rlcl9jb25zdHJhaW50ICJhIiAiVEFSR0VUX0NETkExX1BMVVMg PyBBVkdQUl9SRUdTIDogTk9fUkVHUyIKKyAgIkFjY3VtdWxhdG9yIFZHUFIgcmVnaXN0ZXJz IikKKworKGRlZmluZV9yZWdpc3Rlcl9jb25zdHJhaW50ICJiIiAiVEFSR0VUX0NETkEyX1BM VVMgPyBBVkdQUl9SRUdTIDogTk9fUkVHUyIpCisKIChkZWZpbmVfcmVnaXN0ZXJfY29uc3Ry YWludCAiU2ciICJTR1BSX1JFR1MiCiAgICJTR1BSIHJlZ2lzdGVycyIpCiAKZGlmZiAtLWdp dCBhL2djYy9jb25maWcvZ2NuL2djbi12YWx1Lm1kIGIvZ2NjL2NvbmZpZy9nY24vZ2NuLXZh bHUubWQKaW5kZXggNzVlOWE1OTYwMGIuLjZlOWE4NDYzZTM0IDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnL2djbi9nY24tdmFsdS5tZAorKysgYi9nY2MvY29uZmlnL2djbi9nY24tdmFsdS5t ZApAQCAtMzg5LDEyICszODksMTcgQEAKICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMCIpXSkK IAogKGRlZmluZV9pbnNuICIqbW92PG1vZGU+IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpW XzFSRUcgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9dix2IikKLQkobWF0Y2hfb3BlcmFu ZDpWXzFSRUcgMSAiZ2VuZXJhbF9vcGVyYW5kIiAgICAgICJ2QSxCIikpXQorICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpWXzFSRUcgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9dix2LCB2 LCRhLCBiIikKKwkobWF0Y2hfb3BlcmFuZDpWXzFSRUcgMSAiZ2VuZXJhbF9vcGVyYW5kIiAg ICAgICJ2QSxCLCBhLCB2LCBiIikpXQogICAiIgotICAidl9tb3ZfYjMyXHQlMCwgJTEiCi0g IFsoc2V0X2F0dHIgInR5cGUiICJ2b3AxLHZvcDEiKQotICAgKHNldF9hdHRyICJsZW5ndGgi ICI0LDgiKV0pCisgICJACisgICB2X21vdl9iMzJcdCUwLCAlMQorICAgdl9tb3ZfYjMyXHQl MCwgJTEKKyAgIHZfYWNjdmdwcl9yZWFkX2IzMlx0JTAsICUxCisgICB2X2FjY3ZncHJfd3Jp dGVfYjMyXHQlMCwgJTEKKyAgIHZfYWNjdmdwcl9tb3ZfYjMyXHQlMCwgJTEiCisgIFsoc2V0 X2F0dHIgInR5cGUiICJ2b3AxLHZvcDEsdm9wM3BfbWFpLHZvcDNwX21haSx2b3AxIikKKyAg IChzZXRfYXR0ciAibGVuZ3RoIiAiNCw4LDgsOCw0IildKQogCiAoZGVmaW5lX2luc24gIm1v djxtb2RlPl9leGVjIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWXzFSRUcgMCAibm9uaW1t ZWRpYXRlX29wZXJhbmQiCSAiPXYsIHYsIHYsIHYsIHYsIG0iKQpAQCAtNDM1LDE3ICs0NDAs MjggQEAKIDsgICAoc2V0X2F0dHIgImxlbmd0aCIgIjQsOCwxNiwxNiIpXSkKIAogKGRlZmlu ZV9pbnNuICIqbW92PG1vZGU+IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWXzJSRUcgMCAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICI9diIpCi0JKG1hdGNoX29wZXJhbmQ6Vl8yUkVHIDEg ImdlbmVyYWxfb3BlcmFuZCIgICAgICAidkRCIikpXQorICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpWXzJSRUcgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9diwgIHYsJGEsIGIiKQorCSht YXRjaF9vcGVyYW5kOlZfMlJFRyAxICJnZW5lcmFsX29wZXJhbmQiICAgICAgInZEQiwgYSwg diwgYiIpKV0KICAgIiIKLSAgewotICAgIGlmICghUkVHX1AgKG9wZXJhbmRzWzFdKSB8fCBS RUdOTyAob3BlcmFuZHNbMF0pIDw9IFJFR05PIChvcGVyYW5kc1sxXSkpCi0gICAgICByZXR1 cm4gInZfbW92X2IzMlx0JUwwLCAlTDFcO3ZfbW92X2IzMlx0JUgwLCAlSDEiOwotICAgIGVs c2UKLSAgICAgIHJldHVybiAidl9tb3ZfYjMyXHQlSDAsICVIMVw7dl9tb3ZfYjMyXHQlTDAs ICVMMSI7Ci0gIH0KLSAgWyhzZXRfYXR0ciAidHlwZSIgInZtdWx0IikKLSAgIChzZXRfYXR0 ciAibGVuZ3RoIiAiMTYiKV0pCisgICJACisgICAqIGlmICghUkVHX1AgKG9wZXJhbmRzWzFd KSB8fCBSRUdOTyAob3BlcmFuZHNbMF0pIDw9IFJFR05PIChvcGVyYW5kc1sxXSkpIFwKKyAg ICAgICByZXR1cm4gXCJ2X21vdl9iMzJcdCVMMCwgJUwxXDt2X21vdl9iMzJcdCVIMCwgJUgx XCI7IFwKKyAgICAgZWxzZSBcCisgICAgICAgcmV0dXJuIFwidl9tb3ZfYjMyXHQlSDAsICVI MVw7dl9tb3ZfYjMyXHQlTDAsICVMMVwiOworICAgKiBpZiAoUkVHTk8gKG9wZXJhbmRzWzBd KSA8PSBSRUdOTyAob3BlcmFuZHNbMV0pKSBcCisgICAgICAgcmV0dXJuIFwidl9hY2N2Z3By X3JlYWRfYjMyXHQlTDAsICVMMVw7dl9hY2N2Z3ByX3JlYWRfYjMyXHQlSDAsICVIMVwiOyBc CisgICAgIGVsc2UgXAorICAgICAgIHJldHVybiBcInZfYWNjdmdwcl9yZWFkX2IzMlx0JUgw LCAlSDFcO3ZfYWNjdmdwcl9yZWFkX2IzMlx0JUwwLCAlTDFcIjsKKyAgICogaWYgKFJFR05P IChvcGVyYW5kc1swXSkgPD0gUkVHTk8gKG9wZXJhbmRzWzFdKSkgXAorICAgICAgIHJldHVy biBcInZfYWNjdmdwcl93cml0ZV9iMzJcdCVMMCwgJUwxXDt2X2FjY3ZncHJfd3JpdGVfYjMy XHQlSDAsICVIMVwiOyBcCisgICAgIGVsc2UgXAorICAgICAgIHJldHVybiBcInZfYWNjdmdw cl93cml0ZV9iMzJcdCVIMCwgJUgxXDt2X2FjY3ZncHJfd3JpdGVfYjMyXHQlTDAsICVMMVwi OworICAgKiBpZiAoUkVHTk8gKG9wZXJhbmRzWzBdKSA8PSBSRUdOTyAob3BlcmFuZHNbMV0p KSBcCisgICAgICAgcmV0dXJuIFwidl9hY2N2Z3ByX21vdl9iMzJcdCVMMCwgJUwxXDt2X2Fj Y3ZncHJfbW92X2IzMlx0JUgwLCAlSDFcIjsgXAorICAgICBlbHNlIFwKKyAgICAgICByZXR1 cm4gXCJ2X2FjY3ZncHJfbW92X2IzMlx0JUgwLCAlSDFcO3ZfYWNjdmdwcl9tb3ZfYjMyXHQl TDAsICVMMVwiOyIKKyAgWyhzZXRfYXR0ciAidHlwZSIgInZtdWx0LHZtdWx0LHZtdWx0LHZt dWx0IikKKyAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMTYsMTYsMTYsOCIpXSkKIAogKGRlZmlu ZV9pbnNuICJtb3Y8bW9kZT5fZXhlYyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl8yUkVH IDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPSB2LCAgIHYsICAgdiwgdiwgbSIpCkBAIC01 MjEsMjYgKzUzNywyOCBAQAogOyAgIGZsYXRfbG9hZCB2LCB2VAogCiAoZGVmaW5lX2luc24g Im1vdjxtb2RlPl9zZ3ByYmFzZSIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl8xUkVHIDAg Im5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPSB2LCB2LCB2LCBtIikKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6Vl8xUkVHIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPSB2LCB2LCB2LCBt LCBiLCBtIikKIAkodW5zcGVjOlZfMVJFRwotCSAgWyhtYXRjaF9vcGVyYW5kOlZfMVJFRyAx ICJnZW5lcmFsX29wZXJhbmQiICAgIiB2QSx2QiwgbSwgdiIpXQorCSAgWyhtYXRjaF9vcGVy YW5kOlZfMVJFRyAxICJnZW5lcmFsX29wZXJhbmQiICAgIiB2QSx2QiwgbSwgdiwgbSwgYiIp XQogCSAgVU5TUEVDX1NHUFJCQVNFKSkKLSAgIChjbG9iYmVyIChtYXRjaF9vcGVyYW5kOjxW bkRJPiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgIj0mdiwmdiwmdiwmdiIpKV0KKyAgIChjbG9i YmVyIChtYXRjaF9vcGVyYW5kOjxWbkRJPiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgIj0mdiwm diwmdiwmdiwmdiwmdiIpKV0KICAgImxyYV9pbl9wcm9ncmVzcyB8fCByZWxvYWRfY29tcGxl dGVkIgogICAiQAogICAgdl9tb3ZfYjMyXHQlMCwgJTEKICAgIHZfbW92X2IzMlx0JTAsICUx CiAgICAjCisgICAjCisgICAjCiAgICAjIgotICBbKHNldF9hdHRyICJ0eXBlIiAidm9wMSx2 b3AxLCosKiIpCi0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjQsOCwxMiwxMiIpXSkKKyAgWyhz ZXRfYXR0ciAidHlwZSIgInZvcDEsdm9wMSwqLCosKiwqIikKKyAgIChzZXRfYXR0ciAibGVu Z3RoIiAiNCw4LDEyLDEyLDEyLDEyIildKQogCiAoZGVmaW5lX2luc24gIm1vdjxtb2RlPl9z Z3ByYmFzZSIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl8yUkVHIDAgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAiPSB2LCB2LCBtIikKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl8yUkVH IDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPSB2LCB2LCBtLCBiLCBtIikKIAkodW5zcGVj OlZfMlJFRwotCSAgWyhtYXRjaF9vcGVyYW5kOlZfMlJFRyAxICJnZW5lcmFsX29wZXJhbmQi ICAgInZEQiwgbSwgdiIpXQorCSAgWyhtYXRjaF9vcGVyYW5kOlZfMlJFRyAxICJnZW5lcmFs X29wZXJhbmQiICAgInZEQiwgbSwgdiwgbSwgYiIpXQogCSAgVU5TUEVDX1NHUFJCQVNFKSkK LSAgIChjbG9iYmVyIChtYXRjaF9vcGVyYW5kOjxWbkRJPiAyICJyZWdpc3Rlcl9vcGVyYW5k IiAgIj0mdiwmdiwmdiIpKV0KKyAgIChjbG9iYmVyIChtYXRjaF9vcGVyYW5kOjxWbkRJPiAy ICJyZWdpc3Rlcl9vcGVyYW5kIiAgIj0mdiwmdiwmdiwmdiwmdiIpKV0KICAgImxyYV9pbl9w cm9ncmVzcyB8fCByZWxvYWRfY29tcGxldGVkIgogICAiQAogICAgKiBpZiAoIVJFR19QIChv cGVyYW5kc1sxXSkgfHwgUkVHTk8gKG9wZXJhbmRzWzBdKSA8PSBSRUdOTyAob3BlcmFuZHNb MV0pKSBcCkBAIC01NDgsMTcgKzU2NiwxOSBAQAogICAgICBlbHNlIFwKICAgICAgICByZXR1 cm4gXCJ2X21vdl9iMzJcdCVIMCwgJUgxXDt2X21vdl9iMzJcdCVMMCwgJUwxXCI7CiAgICAj CisgICAjCisgICAjCiAgICAjIgotICBbKHNldF9hdHRyICJ0eXBlIiAidm11bHQsKiwqIikK LSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiOCwxMiwxMiIpXSkKKyAgWyhzZXRfYXR0ciAidHlw ZSIgInZtdWx0LCosKiwqLCoiKQorICAgKHNldF9hdHRyICJsZW5ndGgiICI4LDEyLDEyLDEy LDEyIildKQogCiA7IHJlbG9hZF9pbiB3YXMgb25jZSBhIHN0YW5kYXJkIG5hbWUsIGJ1dCBo ZXJlIGl0J3Mgb25seSByZWZlcmVuY2VkIGJ5CiA7IGdjbl9zZWNvbmRhcnlfcmVsb2FkLiAg SXQgYWxsb3dzIGEgcmVsb2FkIHdpdGggYSBzY3JhdGNoIHJlZ2lzdGVyLgogCiAoZGVmaW5l X2V4cGFuZCAicmVsb2FkX2luPG1vZGU+IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX0FM TCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgIj0gdiIpCi0JKG1hdGNoX29wZXJhbmQ6Vl9B TEwgMSAibWVtb3J5X29wZXJhbmQiCSAgICAgICIgIG0iKSkKLSAgIChjbG9iYmVyIChtYXRj aF9vcGVyYW5kOjxWbkRJPiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiPSZ2IikpXQorICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWX0FMTCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgIj0gdiwg YiIpCisJKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMSAibWVtb3J5X29wZXJhbmQiCSAgICAgICIg IG0sIG0iKSkKKyAgIChjbG9iYmVyIChtYXRjaF9vcGVyYW5kOjxWbkRJPiAyICJyZWdpc3Rl cl9vcGVyYW5kIiAiPSZ2LCZ2IikpXQogICAiIgogICB7CiAgICAgZW1pdF9pbnNuIChnZW5f bW92PG1vZGU+X3NncHJiYXNlIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRz WzJdKSk7CkBAIC01NjgsOSArNTg4LDkgQEAKIDsgcmVsb2FkX291dCBpcyBzaW1pbGFyIHRv IHJlbG9hZF9pbiwgYWJvdmUuCiAKIChkZWZpbmVfZXhwYW5kICJyZWxvYWRfb3V0PG1vZGU+ IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX0FMTCAwICJtZW1vcnlfb3BlcmFuZCIJICAg ICAgIj0gbSIpCi0JKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMSAicmVnaXN0ZXJfb3BlcmFuZCIg ICAgICIgIHYiKSkKLSAgIChjbG9iYmVyIChtYXRjaF9vcGVyYW5kOjxWbkRJPiAyICJyZWdp c3Rlcl9vcGVyYW5kIiAiPSZ2IikpXQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX0FMTCAw ICJtZW1vcnlfb3BlcmFuZCIJICAgICAgIj0gbSwgbSIpCisJKG1hdGNoX29wZXJhbmQ6Vl9B TEwgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICIgIHYsIGIiKSkKKyAgIChjbG9iYmVyICht YXRjaF9vcGVyYW5kOjxWbkRJPiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiPSZ2LCZ2IikpXQog ICAiIgogICB7CiAgICAgZW1pdF9pbnNuIChnZW5fbW92PG1vZGU+X3NncHJiYXNlIChvcGVy YW5kc1swXSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdKSk7CkBAIC05NTMsNyArOTczLDcg QEAKICAgICB7fSkKIAogKGRlZmluZV9pbnNuICJnYXRoZXI8bW9kZT5faW5zbl8xb2Zmc2V0 PGV4ZWM+IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX0FMTCAwICJyZWdpc3Rlcl9vcGVy YW5kIgkJICAgIj12IikKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMCAicmVnaXN0 ZXJfb3BlcmFuZCIJCSAgICI9dmIiKQogCSh1bnNwZWM6Vl9BTEwKIAkgIFsocGx1czo8Vm5E ST4gKG1hdGNoX29wZXJhbmQ6PFZuREk+IDEgInJlZ2lzdGVyX29wZXJhbmQiICIgdiIpCiAJ CQkodmVjX2R1cGxpY2F0ZTo8Vm5EST4KQEAgLTk5Miw3ICsxMDEyLDcgQEAKICAgIChzZXRf YXR0ciAibGVuZ3RoIiAiMTIiKV0pCiAKIChkZWZpbmVfaW5zbiAiZ2F0aGVyPG1vZGU+X2lu c25fMW9mZnNldF9kczxleGVjPiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMCAi cmVnaXN0ZXJfb3BlcmFuZCIJCSAgICI9diIpCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZf QUxMIDAgInJlZ2lzdGVyX29wZXJhbmQiCQkgICAiPXZiIikKIAkodW5zcGVjOlZfQUxMCiAJ ICBbKHBsdXM6PFZuU0k+IChtYXRjaF9vcGVyYW5kOjxWblNJPiAxICJyZWdpc3Rlcl9vcGVy YW5kIiAiIHYiKQogCQkJKHZlY19kdXBsaWNhdGU6PFZuU0k+CkBAIC0xMDE0LDcgKzEwMzQs NyBAQAogICAgKHNldF9hdHRyICJsZW5ndGgiICIxMiIpXSkKIAogKGRlZmluZV9pbnNuICJn YXRoZXI8bW9kZT5faW5zbl8yb2Zmc2V0czxleGVjPiIKLSAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6Vl9BTEwgMCAicmVnaXN0ZXJfb3BlcmFuZCIJCQkiPXYiKQorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWX0FMTCAwICJyZWdpc3Rlcl9vcGVyYW5kIgkJCSI9dmIiKQogCSh1bnNwZWM6 Vl9BTEwKIAkgIFsocGx1czo8Vm5EST4KIAkgICAgIChwbHVzOjxWbkRJPgpAQCAtMTA4NSw3 ICsxMTA1LDcgQEAKIAkgIFsocGx1czo8Vm5EST4gKG1hdGNoX29wZXJhbmQ6PFZuREk+IDAg InJlZ2lzdGVyX29wZXJhbmQiICJ2IikKIAkJCSh2ZWNfZHVwbGljYXRlOjxWbkRJPgogCQkJ ICAobWF0Y2hfb3BlcmFuZCAxICJpbW1lZGlhdGVfb3BlcmFuZCIJICAgIm4iKSkpCi0JICAg KG1hdGNoX29wZXJhbmQ6Vl9BTEwgMiAicmVnaXN0ZXJfb3BlcmFuZCIJCSAgICJ2IikKKwkg ICAobWF0Y2hfb3BlcmFuZDpWX0FMTCAyICJyZWdpc3Rlcl9vcGVyYW5kIgkJICAgInZiIikK IAkgICAobWF0Y2hfb3BlcmFuZCAzICJpbW1lZGlhdGVfb3BlcmFuZCIJCQkgICAibiIpCiAJ ICAgKG1hdGNoX29wZXJhbmQgNCAiaW1tZWRpYXRlX29wZXJhbmQiCQkJICAgIm4iKV0KIAkg IFVOU1BFQ19TQ0FUVEVSKSldCkBAIC0xMTIzLDcgKzExNDMsNyBAQAogCSAgWyhwbHVzOjxW blNJPiAobWF0Y2hfb3BlcmFuZDo8Vm5TST4gMCAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQog CQkJKHZlY19kdXBsaWNhdGU6PFZuU0k+CiAJCQkgIChtYXRjaF9vcGVyYW5kIDEgImltbWVk aWF0ZV9vcGVyYW5kIgkgICAibiIpKSkKLQkgICAobWF0Y2hfb3BlcmFuZDpWX0FMTCAyICJy ZWdpc3Rlcl9vcGVyYW5kIgkJICAgInYiKQorCSAgIChtYXRjaF9vcGVyYW5kOlZfQUxMIDIg InJlZ2lzdGVyX29wZXJhbmQiCQkgICAidmIiKQogCSAgIChtYXRjaF9vcGVyYW5kIDMgImlt bWVkaWF0ZV9vcGVyYW5kIgkJCSAgICJuIikKIAkgICAobWF0Y2hfb3BlcmFuZCA0ICJpbW1l ZGlhdGVfb3BlcmFuZCIJCQkgICAibiIpXQogCSAgVU5TUEVDX1NDQVRURVIpKV0KQEAgLTEx NDksNyArMTE2OSw3IEBACiAJICAgICAgIChzaWduX2V4dGVuZDo8Vm5EST4KIAkJIChtYXRj aF9vcGVyYW5kOjxWblNJPiAxICJyZWdpc3Rlcl9vcGVyYW5kIgkJIiB2IikpKQogCSAgICAg KHZlY19kdXBsaWNhdGU6PFZuREk+IChtYXRjaF9vcGVyYW5kIDIgImltbWVkaWF0ZV9vcGVy YW5kIiAiIG4iKSkpCi0JICAgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMyAicmVnaXN0ZXJfb3Bl cmFuZCIJCQkiIHYiKQorCSAgIChtYXRjaF9vcGVyYW5kOlZfQUxMIDMgInJlZ2lzdGVyX29w ZXJhbmQiCQkJIiB2YiIpCiAJICAgKG1hdGNoX29wZXJhbmQgNCAiaW1tZWRpYXRlX29wZXJh bmQiCQkJCSIgbiIpCiAJICAgKG1hdGNoX29wZXJhbmQgNSAiaW1tZWRpYXRlX29wZXJhbmQi CQkJCSIgbiIpXQogCSAgVU5TUEVDX1NDQVRURVIpKV0KZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvZ2NuL2djbi5jYyBiL2djYy9jb25maWcvZ2NuL2djbi5jYwppbmRleCAzZDcxYzJmNjUy Ni4uNjRiY2M4OTc2MDMgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvZ2NuL2djbi5jYworKysg Yi9nY2MvY29uZmlnL2djbi9nY24uY2MKQEAgLTk2LDYgKzk2LDcgQEAgc3RhdGljIGhhc2hf bWFwPHRyZWUsIGludD4gbGRzX2FsbG9jczsKIAogI2RlZmluZSBNQVhfTk9STUFMX1NHUFJf Q09VTlQJNjIgIC8vIGkuZS4gNjQgd2l0aCBWQ0MKICNkZWZpbmUgTUFYX05PUk1BTF9WR1BS X0NPVU5UCTI0CisjZGVmaW5lIE1BWF9OT1JNQUxfQVZHUFJfQ09VTlQJMjQKIAogLyogfX19 ICAqLwogLyoge3t7IEluaXRpYWxpemF0aW9uIGFuZCBvcHRpb25zLiAgKi8KQEAgLTQ4MCw3 ICs0ODEsNyBAQCBnY25fY2xhc3NfbWF4X25yZWdzIChyZWdfY2xhc3NfdCByY2xhc3MsIG1h Y2hpbmVfbW9kZSBtb2RlKQogewogICAvKiBTY2FsYXIgcmVnaXN0ZXJzIGFyZSAzMmJpdCwg dmVjdG9yIHJlZ2lzdGVycyBhcmUgaW4gZmFjdCB0dXBsZXMgb2YKICAgICAgNjQgbGFuZXMu ICAqLwotICBpZiAocmNsYXNzID09IFZHUFJfUkVHUykKKyAgaWYgKHJjbGFzcyA9PSBWR1BS X1JFR1MgfHwgcmNsYXNzID09IEFWR1BSX1JFR1MpCiAgICAgewogICAgICAgaWYgKHZncHJf MXJlZ19tb2RlX3AgKG1vZGUpKQogCXJldHVybiAxOwpAQCAtNTcxLDcgKzU3Miw3IEBAIGdj bl9oYXJkX3JlZ25vX21vZGVfb2sgKHVuc2lnbmVkIGludCByZWdubywgbWFjaGluZV9tb2Rl IG1vZGUpCiAgICAgcmV0dXJuIChzZ3ByXzFyZWdfbW9kZV9wIChtb2RlKQogCSAgICB8fCAo ISgocmVnbm8gLSBGSVJTVF9TR1BSX1JFRykgJiAxKSAmJiBzZ3ByXzJyZWdfbW9kZV9wICht b2RlKSkKIAkgICAgfHwgKCgocmVnbm8gLSBGSVJTVF9TR1BSX1JFRykgJiAzKSA9PSAwICYm IG1vZGUgPT0gVEltb2RlKSk7Ci0gIGlmIChWR1BSX1JFR05PX1AgKHJlZ25vKSkKKyAgaWYg KFZHUFJfUkVHTk9fUCAocmVnbm8pIHx8IChBVkdQUl9SRUdOT19QIChyZWdubykgJiYgVEFS R0VUX0NETkExX1BMVVMpKQogICAgIC8qIFZlY3RvciBpbnN0cnVjdGlvbnMgZG8gbm90IGNh cmUgYWJvdXQgdGhlIGFsaWdubWVudCBvZiByZWdpc3RlcgogICAgICAgIHBhaXJzLCBidXQg d2hlcmUgdGhlcmUgaXMgbm8gNjQtYml0IGluc3RydWN0aW9uLCBtYW55IG9mIHRoZQogICAg ICAgIGRlZmluZV9zcGxpdCBkbyBub3Qgd29yayBpZiB0aGUgaW5wdXQgYW5kIG91dHB1dCBy ZWdpc3RlcnMgcGFydGlhbGx5CkBAIC02MTEsNiArNjEyLDggQEAgZ2NuX3JlZ25vX3JlZ19j bGFzcyAoaW50IHJlZ25vKQogICAgIH0KICAgaWYgKFZHUFJfUkVHTk9fUCAocmVnbm8pKQog ICAgIHJldHVybiBWR1BSX1JFR1M7CisgIGlmIChBVkdQUl9SRUdOT19QIChyZWdubykpCisg ICAgcmV0dXJuIEFWR1BSX1JFR1M7CiAgIGlmIChTR1BSX1JFR05PX1AgKHJlZ25vKSkKICAg ICByZXR1cm4gU0dQUl9SRUdTOwogICBpZiAocmVnbm8gPCBGSVJTVF9WR1BSX1JFRykKQEAg LTgwMSw3ICs4MDQsNyBAQCBnY25fc3BpbGxfY2xhc3MgKHJlZ19jbGFzc190IGMsIG1hY2hp bmVfbW9kZSAvKm1vZGUgKi8gKQogICAgICAgfHwgYyA9PSBWQ0NfQ09ORElUSU9OQUxfUkVH IHx8IGMgPT0gRVhFQ19NQVNLX1JFRykKICAgICByZXR1cm4gU0dQUl9SRUdTOwogICBlbHNl Ci0gICAgcmV0dXJuIE5PX1JFR1M7CisgICAgcmV0dXJuIGMgPT0gVkdQUl9SRUdTICYmIFRB UkdFVF9DRE5BMl9QTFVTID8gQVZHUFJfUkVHUyA6IE5PX1JFR1M7CiB9CiAKIC8qIEltcGxl bWVudCBUQVJHRVRfSVJBX0NIQU5HRV9QU0VVRE9fQUxMT0NOT19DTEFTUy4KQEAgLTIzNjMs MTEgKzIzNjYsMTEgQEAgZ2NuX3NncHJfbW92ZV9wIChydHggb3AwLCBydHggb3AxKQogICBp ZiAoTUVNX1AgKG9wMSkgJiYgQVNfU0NBTEFSX0ZMQVRfUCAoTUVNX0FERFJfU1BBQ0UgKG9w MSkpKQogICAgIHJldHVybiB0cnVlOwogICBpZiAoIVJFR19QIChvcDApIHx8IFJFR05PIChv cDApID49IEZJUlNUX1BTRVVET19SRUdJU1RFUgotICAgICAgfHwgVkdQUl9SRUdOT19QIChS RUdOTyAob3AwKSkpCisgICAgICB8fCBWR1BSX1JFR05PX1AgKFJFR05PIChvcDApKSB8fCBB VkdQUl9SRUdOT19QIChSRUdOTyAob3AwKSkpCiAgICAgcmV0dXJuIGZhbHNlOwogICBpZiAo UkVHX1AgKG9wMSkKICAgICAgICYmIFJFR05PIChvcDEpIDwgRklSU1RfUFNFVURPX1JFR0lT VEVSCi0gICAgICAmJiAhVkdQUl9SRUdOT19QIChSRUdOTyAob3AxKSkpCisgICAgICAmJiAh VkdQUl9SRUdOT19QIChSRUdOTyAob3AxKSkgJiYgIUFWR1BSX1JFR05PX1AgKFJFR05PIChv cDEpKSkKICAgICByZXR1cm4gdHJ1ZTsKICAgcmV0dXJuIGltbWVkaWF0ZV9vcGVyYW5kIChv cDEsIFZPSURtb2RlKSB8fCBtZW1vcnlfb3BlcmFuZCAob3AxLCBWT0lEbW9kZSk7CiB9CkBA IC0yNDQxLDYgKzI0NDQsMTQgQEAgZ2NuX3NlY29uZGFyeV9yZWxvYWQgKGJvb2wgaW5fcCwg cnR4IHgsIHJlZ19jbGFzc190IHJjbGFzcywKIAkgIHJlc3VsdCA9IChyY2xhc3MgPT0gVkdQ Ul9SRUdTID8gTk9fUkVHUyA6IFZHUFJfUkVHUyk7CiAJICBicmVhazsKIAl9CisKKyAgICAg IC8qIENETkExIGRvZXNuJ3QgaGF2ZSBhbiBpbnN0cnVjdGlvbiBmb3IgZ29pbmcgYmV0d2Vl biB0aGUgYWNjdW11bGF0b3IKKwkgcmVnaXN0ZXJzIGFuZCBtZW1vcnkuICBHbyB2aWEgYSBW R1BSIGluIHRoaXMgY2FzZS4gICovCisgICAgICBpZiAoVEFSR0VUX0NETkExICYmIHJjbGFz cyA9PSBBVkdQUl9SRUdTICYmIHJlc3VsdCAhPSBWR1BSX1JFR1MpCisJeworCSAgcmVzdWx0 ID0gVkdQUl9SRUdTOworCSAgc3JpLT5pY29kZSA9IENPREVfRk9SX25vdGhpbmc7CisJfQog ICAgIH0KIAogICBpZiAoZHVtcF9maWxlICYmIChkdW1wX2ZsYWdzICYgVERGX0RFVEFJTFMp KQpAQCAtMjQ2Miw3ICsyNDczLDggQEAgZ2NuX2NvbmRpdGlvbmFsX3JlZ2lzdGVyX3VzYWdl ICh2b2lkKQogCiAgIGlmIChjZnVuLT5tYWNoaW5lLT5ub3JtYWxfZnVuY3Rpb24pCiAgICAg ewotICAgICAgLyogUmVzdHJpY3QgdGhlIHNldCBvZiBTR1BScyBhbmQgVkdQUnMgdXNlZCBi eSBub24ta2VybmVsIGZ1bmN0aW9ucy4gICovCisgICAgICAvKiBSZXN0cmljdCB0aGUgc2V0 IG9mIFNHUFJzLCBWR1BScyBhbmQgQVZHUFJzIHVzZWQgYnkgbm9uLWtlcm5lbAorCSBmdW5j dGlvbnMuICAqLwogICAgICAgZm9yIChpbnQgaSA9IFNHUFJfUkVHTk8gKE1BWF9OT1JNQUxf U0dQUl9DT1VOVCk7CiAJICAgaSA8PSBMQVNUX1NHUFJfUkVHOyBpKyspCiAJZml4ZWRfcmVn c1tpXSA9IDEsIGNhbGxfdXNlZF9yZWdzW2ldID0gMTsKQEAgLTI0NzEsNiArMjQ4Myw5IEBA IGdjbl9jb25kaXRpb25hbF9yZWdpc3Rlcl91c2FnZSAodm9pZCkKIAkgICBpIDw9IExBU1Rf VkdQUl9SRUc7IGkrKykKIAlmaXhlZF9yZWdzW2ldID0gMSwgY2FsbF91c2VkX3JlZ3NbaV0g PSAxOwogCisgICAgICBmb3IgKGludCBpID0gQVZHUFJfUkVHTk8gKE1BWF9OT1JNQUxfQVZH UFJfQ09VTlQpOworCSAgIGkgPD0gTEFTVF9BVkdQUl9SRUc7IGkrKykKKwlmaXhlZF9yZWdz W2ldID0gMSwgY2FsbF91c2VkX3JlZ3NbaV0gPSAxOwogICAgICAgcmV0dXJuOwogICAgIH0K IApAQCAtMjUyNCw2ICsyNTM5LDE2IEBAIGdjbl9jb25kaXRpb25hbF9yZWdpc3Rlcl91c2Fn ZSAodm9pZCkKICAgICBmaXhlZF9yZWdzW2NmdW4tPm1hY2hpbmUtPmFyZ3MucmVnW1dPUktf SVRFTV9JRF9aX0FSR11dID0gMTsKIH0KIAorc3RhdGljIGJvb2wKK2djbl92Z3ByX2VxdWl2 YWxlbnRfcmVnaXN0ZXJfb3BlcmFuZCAocnR4IHgsIG1hY2hpbmVfbW9kZSBtb2RlKQorewor ICBpZiAoZ2NuX3ZncHJfcmVnaXN0ZXJfb3BlcmFuZCAoeCwgbW9kZSkpCisgICAgcmV0dXJu IHRydWU7CisgIGlmIChUQVJHRVRfQ0ROQTJfUExVUyAmJiBnY25fYXZncHJfcmVnaXN0ZXJf b3BlcmFuZCAoeCwgbW9kZSkpCisgICAgcmV0dXJuIHRydWU7CisgIHJldHVybiBmYWxzZTsK K30KKwogLyogRGV0ZXJtaW5lIGlmIGEgbG9hZCBvciBzdG9yZSBpcyB2YWxpZCwgYWNjb3Jk aW5nIHRvIHRoZSByZWdpc3RlciBjbGFzc2VzCiAgICBhbmQgYWRkcmVzcyBzcGFjZS4gIFVz ZWQgcHJpbWFyaWx5IGJ5IHRoZSBtYWNoaW5lIGRlc2NyaXB0aW9uIHRvIGRlY2lkZQogICAg d2hlbiB0byBzcGxpdCBhIG1vdmUgaW50byB0d28gc3RlcHMuICAqLwpAQCAtMjUzMiwyMSAr MjU1NywzNSBAQCBib29sCiBnY25fdmFsaWRfbW92ZV9wIChtYWNoaW5lX21vZGUgbW9kZSwg cnR4IGRlc3QsIHJ0eCBzcmMpCiB7CiAgIGlmICghTUVNX1AgKGRlc3QpICYmICFNRU1fUCAo c3JjKSkKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICB7CisgICAgICBpZiAoZ2NuX3ZncHJfcmVn aXN0ZXJfb3BlcmFuZCAoc3JjLCBtb2RlKSAmJgorCSAgZ2NuX2F2Z3ByX3JlZ2lzdGVyX29w ZXJhbmQgKGRlc3QsIG1vZGUpKQorCXJldHVybiB0cnVlOworICAgICAgaWYgKGdjbl9hdmdw cl9yZWdpc3Rlcl9vcGVyYW5kIChzcmMsIG1vZGUpICYmCisJICBnY25fdmdwcl9yZWdpc3Rl cl9vcGVyYW5kIChkZXN0LCBtb2RlKSkKKwlyZXR1cm4gdHJ1ZTsKKyAgICAgIGlmIChUQVJH RVRfQ0ROQTJfUExVUyAmJiBnY25fYXZncHJfcmVnaXN0ZXJfb3BlcmFuZCAoc3JjLCBtb2Rl KSAmJgorCSAgZ2NuX2F2Z3ByX3JlZ2lzdGVyX29wZXJhbmQgKGRlc3QsIG1vZGUpKQorCXJl dHVybiB0cnVlOworICAgICAgaWYgKGdjbl9hdmdwcl9oYXJkX3JlZ2lzdGVyX29wZXJhbmQg KHNyYywgbW9kZSkgfHwKKwkgIGdjbl9hdmdwcl9oYXJkX3JlZ2lzdGVyX29wZXJhbmQgKGRl c3QsIG1vZGUpKQorCXJldHVybiBmYWxzZTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0K IAogICBpZiAoTUVNX1AgKGRlc3QpCiAgICAgICAmJiBBU19GTEFUX1AgKE1FTV9BRERSX1NQ QUNFIChkZXN0KSkKICAgICAgICYmIChnY25fZmxhdF9hZGRyZXNzX3AgKFhFWFAgKGRlc3Qs IDApLCBtb2RlKQogCSAgfHwgR0VUX0NPREUgKFhFWFAgKGRlc3QsIDApKSA9PSBTWU1CT0xf UkVGCiAJICB8fCBHRVRfQ09ERSAoWEVYUCAoZGVzdCwgMCkpID09IExBQkVMX1JFRikKLSAg ICAgICYmIGdjbl92Z3ByX3JlZ2lzdGVyX29wZXJhbmQgKHNyYywgbW9kZSkpCisgICAgICAm JiBnY25fdmdwcl9lcXVpdmFsZW50X3JlZ2lzdGVyX29wZXJhbmQgKHNyYywgbW9kZSkpCiAg ICAgcmV0dXJuIHRydWU7CiAgIGVsc2UgaWYgKE1FTV9QIChzcmMpCiAJICAgJiYgQVNfRkxB VF9QIChNRU1fQUREUl9TUEFDRSAoc3JjKSkKIAkgICAmJiAoZ2NuX2ZsYXRfYWRkcmVzc19w IChYRVhQIChzcmMsIDApLCBtb2RlKQogCSAgICAgICB8fCBHRVRfQ09ERSAoWEVYUCAoc3Jj LCAwKSkgPT0gU1lNQk9MX1JFRgogCSAgICAgICB8fCBHRVRfQ09ERSAoWEVYUCAoc3JjLCAw KSkgPT0gTEFCRUxfUkVGKQotCSAgICYmIGdjbl92Z3ByX3JlZ2lzdGVyX29wZXJhbmQgKGRl c3QsIG1vZGUpKQorCSAgICYmIGdjbl92Z3ByX2VxdWl2YWxlbnRfcmVnaXN0ZXJfb3BlcmFu ZCAoZGVzdCwgbW9kZSkpCiAgICAgcmV0dXJuIHRydWU7CiAKICAgaWYgKE1FTV9QIChkZXN0 KQpAQCAtMjU1NCwxNCArMjU5MywxNCBAQCBnY25fdmFsaWRfbW92ZV9wIChtYWNoaW5lX21v ZGUgbW9kZSwgcnR4IGRlc3QsIHJ0eCBzcmMpCiAgICAgICAmJiAoZ2NuX2dsb2JhbF9hZGRy ZXNzX3AgKFhFWFAgKGRlc3QsIDApKQogCSAgfHwgR0VUX0NPREUgKFhFWFAgKGRlc3QsIDAp KSA9PSBTWU1CT0xfUkVGCiAJICB8fCBHRVRfQ09ERSAoWEVYUCAoZGVzdCwgMCkpID09IExB QkVMX1JFRikKLSAgICAgICYmIGdjbl92Z3ByX3JlZ2lzdGVyX29wZXJhbmQgKHNyYywgbW9k ZSkpCisgICAgICAmJiBnY25fdmdwcl9lcXVpdmFsZW50X3JlZ2lzdGVyX29wZXJhbmQgKHNy YywgbW9kZSkpCiAgICAgcmV0dXJuIHRydWU7CiAgIGVsc2UgaWYgKE1FTV9QIChzcmMpCiAJ ICAgJiYgQVNfR0xPQkFMX1AgKE1FTV9BRERSX1NQQUNFIChzcmMpKQogCSAgICYmIChnY25f Z2xvYmFsX2FkZHJlc3NfcCAoWEVYUCAoc3JjLCAwKSkKIAkgICAgICAgfHwgR0VUX0NPREUg KFhFWFAgKHNyYywgMCkpID09IFNZTUJPTF9SRUYKIAkgICAgICAgfHwgR0VUX0NPREUgKFhF WFAgKHNyYywgMCkpID09IExBQkVMX1JFRikKLQkgICAmJiBnY25fdmdwcl9yZWdpc3Rlcl9v cGVyYW5kIChkZXN0LCBtb2RlKSkKKwkgICAmJiBnY25fdmdwcl9lcXVpdmFsZW50X3JlZ2lz dGVyX29wZXJhbmQgKGRlc3QsIG1vZGUpKQogICAgIHJldHVybiB0cnVlOwogCiAgIGlmIChN RU1fUCAoZGVzdCkKQEAgLTI1ODIsMTIgKzI2MjEsMTIgQEAgZ2NuX3ZhbGlkX21vdmVfcCAo bWFjaGluZV9tb2RlIG1vZGUsIHJ0eCBkZXN0LCBydHggc3JjKQogICBpZiAoTUVNX1AgKGRl c3QpCiAgICAgICAmJiBBU19BTllfRFNfUCAoTUVNX0FERFJfU1BBQ0UgKGRlc3QpKQogICAg ICAgJiYgZ2NuX2RzX2FkZHJlc3NfcCAoWEVYUCAoZGVzdCwgMCkpCi0gICAgICAmJiBnY25f dmdwcl9yZWdpc3Rlcl9vcGVyYW5kIChzcmMsIG1vZGUpKQorICAgICAgJiYgZ2NuX3ZncHJf ZXF1aXZhbGVudF9yZWdpc3Rlcl9vcGVyYW5kIChzcmMsIG1vZGUpKQogICAgIHJldHVybiB0 cnVlOwogICBlbHNlIGlmIChNRU1fUCAoc3JjKQogCSAgICYmIEFTX0FOWV9EU19QIChNRU1f QUREUl9TUEFDRSAoc3JjKSkKIAkgICAmJiBnY25fZHNfYWRkcmVzc19wIChYRVhQIChzcmMs IDApKQotCSAgICYmIGdjbl92Z3ByX3JlZ2lzdGVyX29wZXJhbmQgKGRlc3QsIG1vZGUpKQor CSAgICYmIGdjbl92Z3ByX2VxdWl2YWxlbnRfcmVnaXN0ZXJfb3BlcmFuZCAoZGVzdCwgbW9k ZSkpCiAgICAgcmV0dXJuIHRydWU7CiAKICAgcmV0dXJuIGZhbHNlOwpAQCAtMzkxOSw2ICsz OTU4LDExIEBAIGdjbl9tZW1vcnlfbW92ZV9jb3N0IChtYWNoaW5lX21vZGUgbW9kZSwgcmVn X2NsYXNzX3QgcmVnY2xhc3MsIGJvb2wgaW4pCiAgICAgICBpZiAoaW4pCiAJcmV0dXJuIChM T0FEX0NPU1QgKyAyKSAqIG5yZWdzOwogICAgICAgcmV0dXJuIFNUT1JFX0NPU1QgKiBucmVn czsKKyAgICBjYXNlIEFWR1BSX1JFR1M6CisgICAgY2FzZSBBTExfVkdQUl9SRUdTOgorICAg ICAgaWYgKGluKQorCXJldHVybiAoTE9BRF9DT1NUICsgKFRBUkdFVF9DRE5BMl9QTFVTID8g MiA6IDQpKSAqIG5yZWdzOworICAgICAgcmV0dXJuIChTVE9SRV9DT1NUICsgKFRBUkdFVF9D RE5BMl9QTFVTID8gMCA6IDIpKSAqIG5yZWdzOwogICAgIGNhc2UgQUxMX1JFR1M6CiAgICAg Y2FzZSBBTExfR1BSX1JFR1M6CiAgICAgY2FzZSBTUkNEU1RfUkVHUzoKQEAgLTM5MzgsNiAr Mzk4MiwxNSBAQCBnY25fbWVtb3J5X21vdmVfY29zdCAobWFjaGluZV9tb2RlIG1vZGUsIHJl Z19jbGFzc190IHJlZ2NsYXNzLCBib29sIGluKQogc3RhdGljIGludAogZ2NuX3JlZ2lzdGVy X21vdmVfY29zdCAobWFjaGluZV9tb2RlLCByZWdfY2xhc3NfdCBkc3QsIHJlZ19jbGFzc190 IHNyYykKIHsKKyAgaWYgKHNyYyA9PSBBVkdQUl9SRUdTKQorICAgIHsKKyAgICAgIGlmIChk c3QgPT0gQVZHUFJfUkVHUykKKwlyZXR1cm4gVEFSR0VUX0NETkExID8gNiA6IDI7CisgICAg ICBpZiAoZHN0ICE9IFZHUFJfUkVHUykKKwlyZXR1cm4gNjsKKyAgICB9CisgIGlmIChkc3Qg PT0gQVZHUFJfUkVHUyAmJiBzcmMgIT0gVkdQUl9SRUdTKQorICAgIHJldHVybiA2OwogICAv KiBJbmNyZWFzZSBjb3N0IG9mIG1vdmluZyBmcm9tIGFuZCB0byB2ZWN0b3IgcmVnaXN0ZXJz LiAgV2hpbGUgdGhpcyBpcwogICAgICBmYXN0IGluIGhhcmR3YXJlIChJIHRoaW5rKSwgaXQg aGFzIGhpZGRlbiBjb3N0IG9mIHNldHRpbmcgdXAgdGhlIGV4ZWMKICAgICAgZmxhZ3MuICAq LwpAQCAtNTM3Miw2ICs1NDI1LDcgQEAgZ2NuX3ZtZW1faW5zbl9wIChhdHRyX3R5cGUgdHlw ZSkKICAgICBjYXNlIFRZUEVfVk9QQzoKICAgICBjYXNlIFRZUEVfVk9QM0E6CiAgICAgY2Fz ZSBUWVBFX1ZPUDNCOgorICAgIGNhc2UgVFlQRV9WT1AzUF9NQUk6CiAgICAgY2FzZSBUWVBF X1ZPUF9TRFdBOgogICAgIGNhc2UgVFlQRV9WT1BfRFBQOgogICAgIGNhc2UgVFlQRV9NVUxU OgpAQCAtNjA5OCw3ICs2MTUyLDcgQEAgb3V0cHV0X2ZpbGVfc3RhcnQgKHZvaWQpCiB2b2lk CiBnY25faHNhX2RlY2xhcmVfZnVuY3Rpb25fbmFtZSAoRklMRSAqZmlsZSwgY29uc3QgY2hh ciAqbmFtZSwgdHJlZSkKIHsKLSAgaW50IHNncHIsIHZncHI7CisgIGludCBzZ3ByLCB2Z3By LCBhdmdwcjsKICAgYm9vbCB4bmFja19lbmFibGVkID0gZmFsc2U7CiAKICAgZnB1dHMgKCJc blxuIiwgZmlsZSk7CkBAIC02MTIzLDYgKzYxNzcsMTAgQEAgZ2NuX2hzYV9kZWNsYXJlX2Z1 bmN0aW9uX25hbWUgKEZJTEUgKmZpbGUsIGNvbnN0IGNoYXIgKm5hbWUsIHRyZWUpCiAgICAg aWYgKGRmX3JlZ3NfZXZlcl9saXZlX3AgKEZJUlNUX1ZHUFJfUkVHICsgdmdwcikpCiAgICAg ICBicmVhazsKICAgdmdwcisrOworICBmb3IgKGF2Z3ByID0gMjU1OyBhdmdwciA+PSAwOyBh dmdwci0tKQorICAgIGlmIChkZl9yZWdzX2V2ZXJfbGl2ZV9wIChGSVJTVF9BVkdQUl9SRUcg KyBhdmdwcikpCisgICAgICBicmVhazsKKyAgYXZncHIrKzsKIAogICBpZiAoIWxlYWZfZnVu Y3Rpb25fcCAoKSkKICAgICB7CkBAIC02MTMxLDYgKzYxODksOCBAQCBnY25faHNhX2RlY2xh cmVfZnVuY3Rpb25fbmFtZSAoRklMRSAqZmlsZSwgY29uc3QgY2hhciAqbmFtZSwgdHJlZSkK IAl2Z3ByID0gTUFYX05PUk1BTF9WR1BSX0NPVU5UOwogICAgICAgaWYgKHNncHIgPCBNQVhf Tk9STUFMX1NHUFJfQ09VTlQpCiAJc2dwciA9IE1BWF9OT1JNQUxfU0dQUl9DT1VOVDsKKyAg ICAgIGlmIChhdmdwciA8IE1BWF9OT1JNQUxfQVZHUFJfQ09VTlQpCisJYXZncHIgPSBNQVhf Tk9STUFMX0FWR1BSX0NPVU5UOwogICAgIH0KIAogICAvKiBUaGUgZ2Z4OTBhIGFjY3VtX29m ZnNldCBmaWVsZCBjYW4ndCByZXByZXNlbnQgMCByZWdpc3RlcnMuICAqLwpAQCAtNjIzNCw4 ICs2Mjk0LDggQEAgZ2NuX2hzYV9kZWNsYXJlX2Z1bmN0aW9uX25hbWUgKEZJTEUgKmZpbGUs IGNvbnN0IGNoYXIgKm5hbWUsIHRyZWUpCiAJICAgY2Z1bi0+bWFjaGluZS0+a2VybmFyZ19z ZWdtZW50X2FsaWdubWVudCwKIAkgICBMRFNfU0laRSwKIAkgICBzZ3ByLCB2Z3ByKTsKLSAg aWYgKGdjbl9hcmNoID09IFBST0NFU1NPUl9HRlg5MGEpCi0gICAgZnByaW50ZiAoZmlsZSwg IiAgICAgICAgICAgIC5hZ3ByX2NvdW50OiAwXG4iKTsgLy8gQUdQUnMgYXJlIG5vdCB1c2Vk LCB5ZXQKKyAgaWYgKGdjbl9hcmNoID09IFBST0NFU1NPUl9HRlg5MGEgfHwgZ2NuX2FyY2gg PT0gUFJPQ0VTU09SX0dGWDkwOCkKKyAgICBmcHJpbnRmIChmaWxlLCAiICAgICAgICAgICAg LmFncHJfY291bnQ6ICVpXG4iLCBhdmdwcik7CiAgIGZwdXRzICgiICAgICAgICAuZW5kX2Ft ZGdwdV9tZXRhZGF0YVxuIiwgZmlsZSk7CiAjZW5kaWYKIApAQCAtNjMzMSw2ICs2MzkxLDkg QEAgcHJpbnRfcmVnIChGSUxFICpmaWxlLCBydHggeCkKICAgICAgIGVsc2UgaWYgKFZHUFJf UkVHTk9fUCAoUkVHTk8gKHgpKSkKIAlmcHJpbnRmIChmaWxlLCAidlslaTolaV0iLCBSRUdO TyAoeCkgLSBGSVJTVF9WR1BSX1JFRywKIAkJIFJFR05PICh4KSAtIEZJUlNUX1ZHUFJfUkVH ICsgMSk7CisgICAgICBlbHNlIGlmIChBVkdQUl9SRUdOT19QIChSRUdOTyAoeCkpKQorCWZw cmludGYgKGZpbGUsICJhWyVpOiVpXSIsIFJFR05PICh4KSAtIEZJUlNUX0FWR1BSX1JFRywK KwkJIFJFR05PICh4KSAtIEZJUlNUX0FWR1BSX1JFRyArIDEpOwogICAgICAgZWxzZSBpZiAo UkVHTk8gKHgpID09IEZMQVRfU0NSQVRDSF9SRUcpCiAJZnByaW50ZiAoZmlsZSwgImZsYXRf c2NyYXRjaCIpOwogICAgICAgZWxzZSBpZiAoUkVHTk8gKHgpID09IEVYRUNfUkVHKQpAQCAt NjM0OSw2ICs2NDEyLDkgQEAgcHJpbnRfcmVnIChGSUxFICpmaWxlLCBydHggeCkKICAgICAg IGVsc2UgaWYgKFZHUFJfUkVHTk9fUCAoUkVHTk8gKHgpKSkKIAlmcHJpbnRmIChmaWxlLCAi dlslaTolaV0iLCBSRUdOTyAoeCkgLSBGSVJTVF9WR1BSX1JFRywKIAkJIFJFR05PICh4KSAt IEZJUlNUX1ZHUFJfUkVHICsgMyk7CisgICAgICBlbHNlIGlmIChBVkdQUl9SRUdOT19QIChS RUdOTyAoeCkpKQorCWZwcmludGYgKGZpbGUsICJhWyVpOiVpXSIsIFJFR05PICh4KSAtIEZJ UlNUX0FWR1BSX1JFRywKKwkJIFJFR05PICh4KSAtIEZJUlNUX0FWR1BSX1JFRyArIDMpOwog ICAgICAgZWxzZQogCWdjY191bnJlYWNoYWJsZSAoKTsKICAgICB9CkBAIC03MjYyLDYgKzcz MjgsOCBAQCBnY25fZHdhcmZfcmVnaXN0ZXJfbnVtYmVyICh1bnNpZ25lZCBpbnQgcmVnbm8p CiAgICAgfQogICBlbHNlIGlmIChWR1BSX1JFR05PX1AgKHJlZ25vKSkKICAgICByZXR1cm4g KHJlZ25vIC0gRklSU1RfVkdQUl9SRUcgKyAyNTYwKTsKKyAgZWxzZSBpZiAoQVZHUFJfUkVH Tk9fUCAocmVnbm8pKQorICAgIHJldHVybiAocmVnbm8gLSBGSVJTVF9BVkdQUl9SRUcgKyAz MDcyKTsKIAogICAvKiBPdGhlcndpc2UsIHRoZXJlJ3Mgbm90aGluZyBzZW5zaWJsZSB0byBk by4gICovCiAgIHJldHVybiByZWdubyArIDEwMDAwMDsKZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvZ2NuL2djbi5oIGIvZ2NjL2NvbmZpZy9nY24vZ2NuLmgKaW5kZXggNGZmOWE1ZDRkMTIu LmZmNDRjNjZjNTdjIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2djbi9nY24uaAorKysgYi9n Y2MvY29uZmlnL2djbi9nY24uaApAQCAtMTQyLDYgKzE0Miw5IEBACiAjZGVmaW5lIEZJUlNU X1ZHUFJfUkVHCSAgICAxNjAKICNkZWZpbmUgVkdQUl9SRUdOTyhOKQkgICAgKChOKStGSVJT VF9WR1BSX1JFRykKICNkZWZpbmUgTEFTVF9WR1BSX1JFRwkgICAgNDE1CisjZGVmaW5lIEZJ UlNUX0FWR1BSX1JFRyAgICAgNDE2CisjZGVmaW5lIEFWR1BSX1JFR05PKE4pICAgICAgKChO KStGSVJTVF9BVkdQUl9SRUcpCisjZGVmaW5lIExBU1RfQVZHUFJfUkVHICAgICAgNjcxCiAK IC8qIEZyYW1lIFJlZ2lzdGVycywgYW5kIG90aGVyIHJlZ2lzdGVycyAqLwogCkBAIC0xNTMs MTAgKzE1NiwxMCBAQAogI2RlZmluZSBSRVRVUk5fVkFMVUVfUkVHCSAgMTY4CS8qIE11c3Qg YmUgZGl2aXNpYmxlIGJ5IDQuICAqLwogI2RlZmluZSBTVEFUSUNfQ0hBSU5fUkVHTlVNCSAg MzAKICNkZWZpbmUgV09SS19JVEVNX0lEX1pfUkVHCSAgMTYyCi0jZGVmaW5lIFNPRlRfQVJH X1JFRwkJICA0MTYKLSNkZWZpbmUgRlJBTUVfUE9JTlRFUl9SRUdOVU0JICA0MTgKLSNkZWZp bmUgRFdBUkZfTElOS19SRUdJU1RFUgkgIDQyMAotI2RlZmluZSBGSVJTVF9QU0VVRE9fUkVH SVNURVIJICA0MjEKKyNkZWZpbmUgU09GVF9BUkdfUkVHCQkgIDY3MgorI2RlZmluZSBGUkFN RV9QT0lOVEVSX1JFR05VTQkgIDY3NAorI2RlZmluZSBEV0FSRl9MSU5LX1JFR0lTVEVSCSAg Njc2CisjZGVmaW5lIEZJUlNUX1BTRVVET19SRUdJU1RFUgkgIDY3NwogCiAjZGVmaW5lIEZJ UlNUX1BBUk1fUkVHIChGSVJTVF9TR1BSX1JFRyArIDI0KQogI2RlZmluZSBGSVJTVF9WUEFS TV9SRUcgKEZJUlNUX1ZHUFJfUkVHICsgOCkKQEAgLTE3Miw2ICsxNzUsNyBAQAogI2RlZmlu ZSBTR1BSX09SX1ZHUFJfUkVHTk9fUChOKSAoKE4pPj1GSVJTVF9WR1BSX1JFRyAmJiAoTikg PD0gTEFTVF9TR1BSX1JFRykKICNkZWZpbmUgU0dQUl9SRUdOT19QKE4pCQkoKE4pIDw9IExB U1RfU0dQUl9SRUcpCiAjZGVmaW5lIFZHUFJfUkVHTk9fUChOKQkJKChOKT49RklSU1RfVkdQ Ul9SRUcgJiYgKE4pIDw9IExBU1RfVkdQUl9SRUcpCisjZGVmaW5lIEFWR1BSX1JFR05PX1Ao TikgICAgICAgICgoTik+PUZJUlNUX0FWR1BSX1JFRyAmJiAoTikgPD0gTEFTVF9BVkdQUl9S RUcpCiAjZGVmaW5lIFNTUkNfUkVHTk9fUChOKQkJKChOKSA8PSBTQ0NfUkVHICYmIChOKSAh PSBWQ0NaX1JFRykKICNkZWZpbmUgU0RTVF9SRUdOT19QKE4pCQkoKE4pIDw9IEVYRUNfSElf UkVHICYmIChOKSAhPSBWQ0NaX1JFRykKICNkZWZpbmUgQ0NfUkVHX1AoWCkJCShSRUdfUCAo WCkgJiYgQ0NfUkVHTk9fUCAoUkVHTk8gKFgpKSkKQEAgLTIwMiw3ICsyMDYsNyBAQAogICAg IDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDAsIDAsIDEsIDAsIDEsIDEsIDEsIDEsIFwKICAg ICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCBcCiAg ICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwJCSAgICBcCi0gICAgLyogVkdSUHMg Ki8JCQkJCSAgICBcCisgICAgLyogVkdQUnMgKi8JCQkJCSAgICBcCiAgICAgMCwgMSwgMSwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgXAogICAgIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIFwKICAgICAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCBcCkBAIC0yMTksNiAr MjIzLDIzIEBACiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgXAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIFwKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCBcCisgICAgLyogQWNjdW11bGF0aW9uIFZHUFJzICovCQkJICAgIFwKKyAg ICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCBcCisg ICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgXAor ICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIFwK KyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCBc CisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg XAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IFwKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCBcCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgXAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIFwKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCBcCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgXAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIFwKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCBcCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgXAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIFwKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCBcCiAgICAgLyogT3RoZXIgcmVnaXN0ZXJzLiAgKi8JCQkgICAgXAogICAg IDEsIDEsIDEsIDEsIDEJCQkJICAgIFwKIH0KQEAgLTI0MCw3ICsyNjEsNyBAQAogICAgIDEs IDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIFwKICAgICAx LCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCBcCiAgICAg MSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwJCSAgICBcCi0gICAgLyogVkdSUHMgKi8J CQkJCSAgICBcCisgICAgLyogVkdQUnMgKi8JCQkJCSAgICBcCiAgICAgMSwgMSwgMSwgMSwg MSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgXAogICAgIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIFwKICAgICAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCBcCkBAIC0yNTcsNiArMjc4 LDIzIEBACiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgXAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIFwKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCBcCisgICAgLyogQWNjdW11bGF0aW9uIFZHUFJzICovCQkJICAgIFwKKyAgICAx LCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCBcCisgICAg MSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgXAorICAg IDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIFwKKyAg ICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCBcCisg ICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgXAor ICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIFwK KyAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCBc CisgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwg XAorICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEs IFwKKyAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAx LCBcCisgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwg MSwgXAorICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEs IDEsIFwKKyAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAx LCAxLCBcCisgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwg MSwgMSwgXAorICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEs IDEsIDEsIFwKKyAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAx LCAxLCAxLCBcCiAgICAgLyogT3RoZXIgcmVnaXN0ZXJzLiAgKi8JCQkgICAgXAogICAgIDEs IDEsIDEsIDEsIDEJCQkJICAgIFwKIH0KQEAgLTMxNiw2ICszNTQsOCBAQCBlbnVtIHJlZ19j bGFzcwogICBTR1BSX1NSQ19SRUdTLAogICBHRU5FUkFMX1JFR1MsCiAgIFZHUFJfUkVHUywK KyAgQVZHUFJfUkVHUywKKyAgQUxMX1ZHUFJfUkVHUywKICAgQUxMX0dQUl9SRUdTLAogICBT UkNEU1RfUkVHUywKICAgQUZQX1JFR1MsCkBAIC0zNDEsNiArMzgxLDggQEAgZW51bSByZWdf Y2xhc3MKICAgICJTR1BSX1NSQ19SRUdTIiwJICAgIFwKICAgICJHRU5FUkFMX1JFR1MiLAkg ICAgXAogICAgIlZHUFJfUkVHUyIsCQkgICAgXAorICAgIkFWR1BSX1JFR1MiLAkgICAgXAor ICAgIkFMTF9WR1BSX1JFR1MiLAkgICAgXAogICAgIkFMTF9HUFJfUkVHUyIsCSAgICBcCiAg ICAiU1JDRFNUX1JFR1MiLAkgICAgXAogICAgIkFGUF9SRUdTIiwJCSAgICBcCkBAIC0zNTMs NDAgKzM5NSw1OCBAQCBlbnVtIHJlZ19jbGFzcwogI2RlZmluZSBSRUdfQ0xBU1NfQ09OVEVO VFMgewkJCQkJCSAgIFwKICAgICAvKiBOT19SRUdTLiAgKi8JCQkJCQkJICAgXAogICAgIHsw LCAwLCAwLCAwLAkJCQkJCQkgICBcCisgICAgIDAsIDAsIDAsIDAsCQkJCQkJCSAgIFwKKyAg ICAgMCwgMCwgMCwgMCwJCQkJCQkJICAgXAogICAgICAwLCAwLCAwLCAwLAkJCQkJCQkgICBc CiAgICAgIDAsIDAsIDAsIDAsIDAsIDB9LAkJCQkJCQkgICBcCiAgICAgLyogU0NDX0NPTkRJ VElPTkFMX1JFRy4gICovCQkJCQkJICAgXAogICAgIHswLCAwLCAwLCAwLAkJCQkJCQkgICBc CiAgICAgIE5BTUVEX1JFR19NQVNLMiAoU0NDX1JFRyksIDAsIDAsIDAsCQkJCSAgIFwKLSAg ICAgMCwgMCwgMCwgMCwgMH0sCQkJCQkJCSAgIFwKKyAgICAgMCwgMCwgMCwgMCwJCQkJCQkJ ICAgXAorICAgICAwLCAwLCAwLCAwLAkJCQkJCQkgICBcCisgICAgIDAsIDAsIDAsIDAsIDAs IDB9LAkJCQkJCQkgICBcCiAgICAgLyogVkNDWl9DT05ESVRJT05BTF9SRUcuICAqLwkJCQkJ ICAgXAogICAgIHswLCAwLCAwLCBOQU1FRF9SRUdfTUFTSyAoVkNDWl9SRUcpLAkJCQkgICBc CisgICAgIDAsIDAsIDAsIDAsCQkJCQkJCSAgIFwKKyAgICAgMCwgMCwgMCwgMCwJCQkJCQkJ ICAgXAogICAgICAwLCAwLCAwLCAwLAkJCQkJCQkgICBcCiAgICAgIDAsIDAsIDAsIDAsIDAs IDB9LAkJCQkJCQkgICBcCiAgICAgLyogVkNDX0NPTkRJVElPTkFMX1JFRy4gICovCQkJCQkJ ICAgXAogICAgIHswLCAwLCAwLCBOQU1FRF9SRUdfTUFTSyAoVkNDX0xPX1JFRyl8TkFNRURf UkVHX01BU0sgKFZDQ19ISV9SRUcpLAkgICBcCisgICAgIDAsIDAsIDAsIDAsCQkJCQkJCSAg IFwKKyAgICAgMCwgMCwgMCwgMCwJCQkJCQkJICAgXAogICAgICAwLCAwLCAwLCAwLAkJCQkJ CQkgICBcCiAgICAgIDAsIDAsIDAsIDAsIDAsIDB9LAkJCQkJCQkgICBcCiAgICAgLyogRVhF Q1pfQ09ORElUSU9OQUxfUkVHLiAgKi8JCQkJCSAgIFwKICAgICB7MCwgMCwgMCwgMCwJCQkJ CQkJICAgXAogICAgICBOQU1FRF9SRUdfTUFTSzIgKEVYRUNaX1JFRyksIDAsIDAsIDAsCQkJ CSAgIFwKLSAgICAgMCwgMCwgMCwgMCwgMH0sCQkJCQkJCSAgIFwKKyAgICAgMCwgMCwgMCwg MCwJCQkJCQkJICAgXAorICAgICAwLCAwLCAwLCAwLAkJCQkJCQkgICBcCisgICAgIDAsIDAs IDAsIDAsIDAsIDB9LAkJCQkJCQkgICBcCiAgICAgLyogQUxMX0NPTkRJVElPTkFMX1JFR1Mu ICAqLwkJCQkJICAgXAogICAgIHswLCAwLCAwLCBOQU1FRF9SRUdfTUFTSyAoVkNDWl9SRUcp LAkJCQkgICBcCiAgICAgIE5BTUVEX1JFR19NQVNLMiAoRVhFQ1pfUkVHKSB8IE5BTUVEX1JF R19NQVNLMiAoU0NDX1JFRyksIDAsIDAsIDAsCSAgIFwKKyAgICAgMCwgMCwgMCwgMCwJCQkJ CQkJICAgXAorICAgICAwLCAwLCAwLCAwLAkJCQkJCQkgICBcCiAgICAgIDAsIDAsIDAsIDAs IDAsIDB9LAkJCQkJCQkgICBcCiAgICAgLyogRVhFQ19NQVNLX1JFRy4gICovCQkJCQkJICAg XAogICAgIHswLCAwLCAwLCBOQU1FRF9SRUdfTUFTSyAoRVhFQ19MT19SRUcpIHwgTkFNRURf UkVHX01BU0sgKEVYRUNfSElfUkVHKSwgXAorICAgICAwLCAwLCAwLCAwLAkJCQkJCQkgICBc CisgICAgIDAsIDAsIDAsIDAsCQkJCQkJCSAgIFwKICAgICAgMCwgMCwgMCwgMCwJCQkJCQkJ ICAgXAogICAgICAwLCAwLCAwLCAwLCAwLCAwfSwJCQkJCQkJICAgXAogICAgIC8qIFNHUFJf UkVHUy4gICovCQkJCQkJCSAgIFwKICAgICB7MHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhm ZmZmZmZmZiwgMHhmMSwJCQkJICAgXAorICAgICAwLCAwLCAwLCAwLAkJCQkJCQkgICBcCisg ICAgIDAsIDAsIDAsIDAsCQkJCQkJCSAgIFwKICAgICAgMCwgMCwgMCwgMCwJCQkJCQkJICAg XAogICAgICAwLCAwLCAwLCAwLCAwLCAwfSwJCQkJCQkJICAgXAogICAgIC8qIFNHUFJfRVhF Q19SRUdTLgkqLwkJCQkJCSAgIFwKICAgICB7MHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhm ZmZmZmZmZiwJCQkJICAgXAogICAgICAgMHhmMSB8IE5BTUVEX1JFR19NQVNLIChFWEVDX0xP X1JFRykgfCBOQU1FRF9SRUdfTUFTSyAoRVhFQ19ISV9SRUcpLCAgXAogICAgICAwLCAwLCAw LCAwLAkJCQkJCQkgICBcCisgICAgIDAsIDAsIDAsIDAsCQkJCQkJCSAgIFwKKyAgICAgMCwg MCwgMCwgMCwJCQkJCQkJICAgXAogICAgICAwLCAwLCAwLCAwLCAwLCAwfSwJCQkJCQkJICAg XAogICAgIC8qIFNHUFJfVk9QX1NSQ19SRUdTLiAgKi8JCQkJCQkgICBcCiAgICAgezB4ZmZm ZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsCQkJCSAgIFwKQEAgLTM5NCwxMiArNDU0 LDE2IEBAIGVudW0gcmVnX2NsYXNzCiAgICAgICAgLU5BTUVEX1JFR19NQVNLIChFWEVDX0xP X1JFRykJCQkJCSAgIFwKICAgICAgICAtTkFNRURfUkVHX01BU0sgKEVYRUNfSElfUkVHKSwJ CQkJCSAgIFwKICAgICAgTkFNRURfUkVHX01BU0syIChTQ0NfUkVHKSwgMCwgMCwgMCwJCQkJ ICAgXAorICAgICAwLCAwLCAwLCAwLAkJCQkJCQkgICBcCisgICAgIDAsIDAsIDAsIDAsCQkJ CQkJCSAgIFwKICAgICAgMCwgMCwgMCwgMCwgMCwgMH0sCQkJCQkJCSAgIFwKICAgICAvKiBT R1BSX01FTV9TUkNfUkVHUy4gICovCQkJCQkJICAgXAogICAgIHsweGZmZmZmZmZmLCAweGZm ZmZmZmZmLCAweGZmZmZmZmZmLAkJCQkgICBcCiAgICAgIDB4ZmZmZmZmZmYtTkFNRURfUkVH X01BU0sgKFZDQ1pfUkVHKS1OQU1FRF9SRUdfTUFTSyAoTTBfUkVHKQkgICBcCiAgICAgIC1O QU1FRF9SRUdfTUFTSyAoRVhFQ19MT19SRUcpLU5BTUVEX1JFR19NQVNLIChFWEVDX0hJX1JF RyksCSAgIFwKICAgICAgMCwgMCwgMCwgMCwJCQkJCQkJICAgXAorICAgICAwLCAwLCAwLCAw LAkJCQkJCQkgICBcCisgICAgIDAsIDAsIDAsIDAsCQkJCQkJCSAgIFwKICAgICAgMCwgMCwg MCwgMCwgMCwgMH0sCQkJCQkJCSAgIFwKICAgICAvKiBTR1BSX0RTVF9SRUdTLiAgKi8JCQkJ CQkgICBcCiAgICAgezB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsCQkJCSAg IFwKQEAgLTQwOSwzMCArNDczLDU2IEBAIGVudW0gcmVnX2NsYXNzCiAgICAgLyogU0dQUl9T UkNfUkVHUy4gICovCQkJCQkJICAgXAogICAgIHsweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAw eGZmZmZmZmZmLCAweGZmZmZmZmZmLAkJCSAgIFwKICAgICAgTkFNRURfUkVHX01BU0syIChF WEVDWl9SRUcpIHwgTkFNRURfUkVHX01BU0syIChTQ0NfUkVHKSwgMCwgMCwgMCwJICAgXAor ICAgICAwLCAwLCAwLCAwLAkJCQkJCQkgICBcCisgICAgIDAsIDAsIDAsIDAsCQkJCQkJCSAg IFwKICAgICAgMCwgMCwgMCwgMCwgMCwgMH0sCQkJCQkJCSAgIFwKICAgICAvKiBHRU5FUkFM X1JFR1MuICAqLwkJCQkJCSAgIFwKICAgICB7MHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhm ZmZmZmZmZiwgMHhmMSwJCQkJICAgXAorICAgICAwLCAwLCAwLCAwLAkJCQkJCQkgICBcCisg ICAgIDAsIDAsIDAsIDAsCQkJCQkJCSAgIFwKICAgICAgMCwgMCwgMCwgMCwJCQkJCQkJICAg XAogICAgICAwLCAwLCAwLCAwLCAwLCAwfSwJCQkJCQkJICAgXAogICAgIC8qIFZHUFJfUkVH Uy4gICovCQkJCQkJCSAgIFwKICAgICB7MCwgMCwgMCwgMCwJCQkJCQkJICAgXAogICAgICAw LAkJIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsCQkJICAgXAorICAgICAw eGZmZmZmZmZmLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLAkJCSAgIFwK KyAgICAgMHhmZmZmZmZmZiwgMCwgMCwgMCwJCQkJCQkgICBcCisgICAgIDAsIDAsIDAsIDAs IDAsIDB9LAkJCQkJCQkgICBcCisgICAgLyogQVZHUFJfUkVHUy4gICovCQkJCQkJCSAgIFwK KyAgICB7MCwgMCwgMCwgMCwJCQkJCQkJICAgXAorICAgICAwLCAwLCAwLCAwLAkJCQkJCQkg ICBcCisgICAgIDAsIDAsIDAsIDAsCQkJCQkJCSAgIFwKKyAgICAgMCwJCSAweGZmZmZmZmZm LCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLAkJCSAgIFwKKyAgICAgMHhmZmZmZmZmZiwgMHhm ZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMH0sCSAgIFwK KyAgICAvKiBBTExfVkdQUl9SRUdTLiAgKi8JCQkJCQkgICBcCisgICAgezAsIDAsIDAsIDAs CQkJCQkJCSAgIFwKKyAgICAgMCwgICAgICAgICAgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwg MHhmZmZmZmZmZiwJCQkgICBcCisgICAgIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZm ZmZmZmYsIDB4ZmZmZmZmZmYsCQkJICAgXAorICAgICAweGZmZmZmZmZmLCAweGZmZmZmZmZm LCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLAkJCSAgIFwKICAgICAgMHhmZmZmZmZmZiwgMHhm ZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMH0sCSAgIFwK ICAgICAvKiBBTExfR1BSX1JFR1MuICAqLwkJCQkJCSAgIFwKICAgICB7MHhmZmZmZmZmZiwg MHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmMSwJCQkJICAgXAogICAgICAwLAkJIDB4ZmZm ZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsCQkJICAgXAotICAgICAweGZmZmZmZmZm LCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAwfSwJ ICAgXAorICAgICAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAweGZmZmZm ZmZmLAkJCSAgIFwKKyAgICAgMHhmZmZmZmZmZiwgMCwgMCwgMCwJCQkJCQkgICBcCisgICAg IDAsIDAsIDAsIDAsIDAsIDB9LAkJCQkJCQkgICBcCiAgICAgLyogU1JDRFNUX1JFR1MuICAq LwkJCQkJCQkgICBcCiAgICAgezB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYs CQkJCSAgIFwKICAgICAgMHhmZmZmZmZmZi1OQU1FRF9SRUdfTUFTSyAoVkNDWl9SRUcpLAkJ CQkgICBcCiAgICAgIDAsCQkgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwJ CQkgICBcCi0gICAgIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZm ZmZmZmYsIDB4ZmZmZmZmZmYsIDB9LAkgICBcCisgICAgIDB4ZmZmZmZmZmYsIDB4ZmZmZmZm ZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsCQkJICAgXAorICAgICAweGZmZmZmZmZmLCAw LCAwLCAwLAkJCQkJCSAgIFwKKyAgICAgMCwgMCwgMCwgMCwgMCwgMH0sCQkJCQkJCSAgIFwK ICAgICAvKiBBRlBfUkVHUy4gICovCQkJCQkJCSAgIFwKICAgICB7MCwgMCwgMCwgMCwJCQkJ CQkJICAgXAorICAgICAwLCAwLCAwLCAwLAkJCQkJCQkgICBcCisgICAgIDAsIDAsIDAsIDAs CQkJCQkJCSAgIFwKICAgICAgMCwgMCwgMCwgMCwJCQkJCQkJICAgXAogICAgICAwLCAwLCAw LCAwLCAwLCAweGZ9LAkJCQkJCSAgIFwKICAgICAvKiBBTExfUkVHUy4gICovCQkJCQkJCSAg IFwKICAgICB7MHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZm ZiwJCQkgICBcCisgICAgIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4 ZmZmZmZmZmYsCQkJICAgXAorICAgICAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAweGZmZmZm ZmZmLCAweGZmZmZmZmZmLAkJCSAgIFwKICAgICAgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwg MHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwJCQkgICBcCiAgICAgIDB4ZmZmZmZmZmYsIDB4ZmZm ZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDAgfX0KIApAQCAt NTM3LDYgKzYyNywzNCBAQCBlbnVtIGdjbl9hZGRyZXNzX3NwYWNlcwogICAgICJ2MjM2Iiwg InYyMzciLCAidjIzOCIsICJ2MjM5IiwgInYyNDAiLCAidjI0MSIsICJ2MjQyIiwgInYyNDMi LCAidjI0NCIsIFwKICAgICAidjI0NSIsICJ2MjQ2IiwgInYyNDciLCAidjI0OCIsICJ2MjQ5 IiwgInYyNTAiLCAidjI1MSIsICJ2MjUyIiwgInYyNTMiLCBcCiAgICAgInYyNTQiLCAidjI1 NSIsCQkJCQkJCSAgICBcCisgICAgImEwIiwgImExIiwgImEyIiwgImEzIiwgImE0IiwgImE1 IiwgImE2IiwgImE3IiwgImE4IiwgImE5IiwgImExMCIsCSAgICBcCisgICAgImExMSIsICJh MTIiLCAiYTEzIiwgImExNCIsICJhMTUiLCAiYTE2IiwgImExNyIsICJhMTgiLCAiYTE5Iiwg ImEyMCIsICAgXAorICAgICJhMjEiLCAiYTIyIiwgImEyMyIsICJhMjQiLCAiYTI1IiwgImEy NiIsICJhMjciLCAiYTI4IiwgImEyOSIsICJhMzAiLCAgIFwKKyAgICAiYTMxIiwgImEzMiIs ICJhMzMiLCAiYTM0IiwgImEzNSIsICJhMzYiLCAiYTM3IiwgImEzOCIsICJhMzkiLCAiYTQw IiwgICBcCisgICAgImE0MSIsICJhNDIiLCAiYTQzIiwgImE0NCIsICJhNDUiLCAiYTQ2Iiwg ImE0NyIsICJhNDgiLCAiYTQ5IiwgImE1MCIsICAgXAorICAgICJhNTEiLCAiYTUyIiwgImE1 MyIsICJhNTQiLCAiYTU1IiwgImE1NiIsICJhNTciLCAiYTU4IiwgImE1OSIsICJhNjAiLCAg IFwKKyAgICAiYTYxIiwgImE2MiIsICJhNjMiLCAiYTY0IiwgImE2NSIsICJhNjYiLCAiYTY3 IiwgImE2OCIsICJhNjkiLCAiYTcwIiwgICBcCisgICAgImE3MSIsICJhNzIiLCAiYTczIiwg ImE3NCIsICJhNzUiLCAiYTc2IiwgImE3NyIsICJhNzgiLCAiYTc5IiwgImE4MCIsICAgXAor ICAgICJhODEiLCAiYTgyIiwgImE4MyIsICJhODQiLCAiYTg1IiwgImE4NiIsICJhODciLCAi YTg4IiwgImE4OSIsICJhOTAiLCAgIFwKKyAgICAiYTkxIiwgImE5MiIsICJhOTMiLCAiYTk0 IiwgImE5NSIsICJhOTYiLCAiYTk3IiwgImE5OCIsICJhOTkiLCAiYTEwMCIsICBcCisgICAg ImExMDEiLCAiYTEwMiIsICJhMTAzIiwgImExMDQiLCAiYTEwNSIsICJhMTA2IiwgImExMDci LCAiYTEwOCIsICJhMTA5IiwgXAorICAgICJhMTEwIiwgImExMTEiLCAiYTExMiIsICJhMTEz IiwgImExMTQiLCAiYTExNSIsICJhMTE2IiwgImExMTciLCAiYTExOCIsIFwKKyAgICAiYTEx OSIsICJhMTIwIiwgImExMjEiLCAiYTEyMiIsICJhMTIzIiwgImExMjQiLCAiYTEyNSIsICJh MTI2IiwgImExMjciLCBcCisgICAgImExMjgiLCAiYTEyOSIsICJhMTMwIiwgImExMzEiLCAi YTEzMiIsICJhMTMzIiwgImExMzQiLCAiYTEzNSIsICJhMTM2IiwgXAorICAgICJhMTM3Iiwg ImExMzgiLCAiYTEzOSIsICJhMTQwIiwgImExNDEiLCAiYTE0MiIsICJhMTQzIiwgImExNDQi LCAiYTE0NSIsIFwKKyAgICAiYTE0NiIsICJhMTQ3IiwgImExNDgiLCAiYTE0OSIsICJhMTUw IiwgImExNTEiLCAiYTE1MiIsICJhMTUzIiwgImExNTQiLCBcCisgICAgImExNTUiLCAiYTE1 NiIsICJhMTU3IiwgImExNTgiLCAiYTE1OSIsICJhMTYwIiwgImExNjEiLCAiYTE2MiIsICJh MTYzIiwgXAorICAgICJhMTY0IiwgImExNjUiLCAiYTE2NiIsICJhMTY3IiwgImExNjgiLCAi YTE2OSIsICJhMTcwIiwgImExNzEiLCAiYTE3MiIsIFwKKyAgICAiYTE3MyIsICJhMTc0Iiwg ImExNzUiLCAiYTE3NiIsICJhMTc3IiwgImExNzgiLCAiYTE3OSIsICJhMTgwIiwgImExODEi LCBcCisgICAgImExODIiLCAiYTE4MyIsICJhMTg0IiwgImExODUiLCAiYTE4NiIsICJhMTg3 IiwgImExODgiLCAiYTE4OSIsICJhMTkwIiwgXAorICAgICJhMTkxIiwgImExOTIiLCAiYTE5 MyIsICJhMTk0IiwgImExOTUiLCAiYTE5NiIsICJhMTk3IiwgImExOTgiLCAiYTE5OSIsIFwK KyAgICAiYTIwMCIsICJhMjAxIiwgImEyMDIiLCAiYTIwMyIsICJhMjA0IiwgImEyMDUiLCAi YTIwNiIsICJhMjA3IiwgImEyMDgiLCBcCisgICAgImEyMDkiLCAiYTIxMCIsICJhMjExIiwg ImEyMTIiLCAiYTIxMyIsICJhMjE0IiwgImEyMTUiLCAiYTIxNiIsICJhMjE3IiwgXAorICAg ICJhMjE4IiwgImEyMTkiLCAiYTIyMCIsICJhMjIxIiwgImEyMjIiLCAiYTIyMyIsICJhMjI0 IiwgImEyMjUiLCAiYTIyNiIsIFwKKyAgICAiYTIyNyIsICJhMjI4IiwgImEyMjkiLCAiYTIz MCIsICJhMjMxIiwgImEyMzIiLCAiYTIzMyIsICJhMjM0IiwgImEyMzUiLCBcCisgICAgImEy MzYiLCAiYTIzNyIsICJhMjM4IiwgImEyMzkiLCAiYTI0MCIsICJhMjQxIiwgImEyNDIiLCAi YTI0MyIsICJhMjQ0IiwgXAorICAgICJhMjQ1IiwgImEyNDYiLCAiYTI0NyIsICJhMjQ4Iiwg ImEyNDkiLCAiYTI1MCIsICJhMjUxIiwgImEyNTIiLCAiYTI1MyIsIFwKKyAgICAiYTI1NCIs ICJhMjU1IiwJCQkJCQkJICAgIFwKICAgICAiP2FwMCIsICI/YXAxIiwgIj9mcDAiLCAiP2Zw MSIsICI/ZHdsciIgfQogCiAjZGVmaW5lIFBSSU5UX09QRVJBTkQoRklMRSwgWCwgQ09ERSkg IHByaW50X29wZXJhbmQoRklMRSwgWCwgQ09ERSkKZGlmZiAtLWdpdCBhL2djYy9jb25maWcv Z2NuL2djbi5tZCBiL2djYy9jb25maWcvZ2NuL2djbi5tZAppbmRleCAxMGQyYjg3NGNjZS4u MjRiOWY1MjEyNzUgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvZ2NuL2djbi5tZAorKysgYi9n Y2MvY29uZmlnL2djbi9nY24ubWQKQEAgLTUxLDEzICs1MSwxNSBAQAogICAgKEVYRUNaX1JF RwkJCSAxMjgpCiAgICAoU0NDX1JFRwkJCSAxMjkpCiAgICAoRklSU1RfVkdQUl9SRUcJCSAx NjApCi0gICAoTEFTVF9WR1BSX1JFRwkJIDQxNSldKQorICAgKExBU1RfVkdQUl9SRUcJCSA0 MTUpCisgICAoRklSU1RfQVZHUFJfUkVHCQkgNDE2KQorICAgKExBU1RfQVZHUFJfUkVHCQkg NjcxKV0pCiAKIChkZWZpbmVfY29uc3RhbnRzCiAgIFsoU1BfUkVHTlVNIDE2KQogICAgKExS X1JFR05VTSAxOCkKLSAgIChBUF9SRUdOVU0gNDE2KQotICAgKEZQX1JFR05VTSA0MTgpXSkK KyAgIChBUF9SRUdOVU0gNjcyKQorICAgKEZQX1JFR05VTSA2NzQpXSkKIAogKGRlZmluZV9j X2VudW0gInVuc3BlY3YiIFsKICAgVU5TUEVDVl9QUk9MT0dVRV9VU0UKQEAgLTE2Myw2ICsx NjUsMTEgQEAKIDsJIHZkc3Q6IHZncHIwLTI1NQogOwkgc2RzdDogc2dwcjAtMTAzL3ZjYy90 YmEvdG1hL3R0bXAwLTExCiA7Cis7IHZvcDNwX21haSAtIHZlY3RvciwgdGhyZWUgaW5wdXRz LCBvbmUgdmVjdG9yIG91dHB1dAorOyAgICAgICAgdnNyYzAsdnNyYzEsdnNyYzI6IGlubGlu ZSBjb25zdGFudCAtMTYgdG8gLTY0LCBmcCBpbmxpbmUgaW1tZWRpYXRlLAorOyAgICAgICAg KGFjYyBvciBhcmNoKSB2Z3ByMC0yNTUKKzsgICAgICAgIHZkc3Q6IChhY2Mgb3IgYXJjaCkg dmdwcjAtMjU1Cis7CiA7IHZvcF9zZHdhIC0gc2Vjb25kIGR3b3JkIGZvciB2b3AxL3ZvcDIv dm9wYyBmb3Igc3BlY2lmeWluZyBzdWItZHdvcmQgYWRkcmVzcwogOwkgc3JjMDogdmdwcjAt MjU1CiA7CSBkc3Rfc2VsOiBCWVRFXzAtMywgV09SRF8wLTEsIERXT1JECkBAIC0yMjEsNyAr MjI4LDggQEAKIAogKGRlZmluZV9hdHRyICJ0eXBlIgogCSAgICAgInVua25vd24sc29wMSxz b3AyLHNvcGssc29wYyxzb3BwLHNtZW0sZHMsdm9wMix2b3AxLHZvcGMsCi0JICAgICAgdm9w M2Esdm9wM2Isdm9wX3Nkd2Esdm9wX2RwcCxtdWJ1ZixtdGJ1ZixmbGF0LG11bHQsdm11bHQi CisJICAgICAgdm9wM2Esdm9wM2Isdm9wM3BfbWFpLHZvcF9zZHdhLHZvcF9kcHAsbXVidWYs bXRidWYsZmxhdCxtdWx0LAorCSAgICAgIHZtdWx0IgogCSAgICAgKGNvbnN0X3N0cmluZyAi dW5rbm93biIpKQogCiA7IFNldCBpZiBpbnN0cnVjdGlvbiBpcyBleGVjdXRlZCBpbiBzY2Fs YXIgb3IgdmVjdG9yIHVuaXQKQEAgLTUzMCw5ICs1MzgsOSBAQAogCiAoZGVmaW5lX2luc24g Iiptb3Y8bW9kZT5faW5zbiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0lTRiAwICJub25p bW1lZGlhdGVfb3BlcmFuZCIKLQkJICAiPVNELFNELFNELFNELFJCLFNtLFJTLHYsU2csIHYs IHYsUkYsdixSTFJHLCAgIHYsU0QsIHYsUk0iKQorCQkgICI9U0QsU0QsU0QsU0QsUkIsU20s UlMsdixTZywgdix2YixSRix2LFJMUkcsICAgdixTRCx2YixSTSwgdiwgYSwgYiIpCiAJKG1h dGNoX29wZXJhbmQ6U0lTRiAxICJnY25fbG9hZF9vcGVyYW5kIgotCQkgICJTU0EsIEosIEIs UkIsU20sUlMsU20sdiwgdixTdixSRiwgdixCLCAgIHYsUkxSRywgWSxSTSwgdiIpKV0KKwkJ ICAiU1NBLCBKLCBCLFJCLFNtLFJTLFNtLHYsIHYsU3YsUkYsdmIsQiwgICB2LFJMUkcsIFks Uk0sdmIsXmEsIHYsIGIiKSldCiAgICIiCiAgICJACiAgIHNfbW92X2IzMlx0JTAsICUxCkBA IC01NTIsMjAgKzU2MCwyMyBAQAogICBkc19yZWFkX2IzMlx0JTAsICVBMSVPMVw7c193YWl0 Y250XHRsZ2ttY250KDApCiAgIHNfbW92X2IzMlx0JTAsICUxCiAgIGdsb2JhbF9sb2FkX2R3 b3JkXHQlMCwgJUExJU8xJWcxXDtzX3dhaXRjbnRcdHZtY250KDApCi0gIGdsb2JhbF9zdG9y ZV9kd29yZFx0JUEwLCAlMSVPMCVnMCIKKyAgZ2xvYmFsX3N0b3JlX2R3b3JkXHQlQTAsICUx JU8wJWcwCisgIHZfYWNjdmdwcl9yZWFkX2IzMlx0JTAsICUxCisgIHZfYWNjdmdwcl93cml0 ZV9iMzJcdCUwLCAlMQorICB2X2FjY3ZncHJfbW92X2IzMlx0JTAsICUxIgogICBbKHNldF9h dHRyICJ0eXBlIiAic29wMSxzb3BrLHNvcDEsc21lbSxzbWVtLHNtZW0sc21lbSx2b3AxLHZv cDNhLHZvcDNhLGZsYXQsCi0JCSAgICAgZmxhdCx2b3AxLGRzLGRzLHNvcDEsZmxhdCxmbGF0 IikKLSAgIChzZXRfYXR0ciAiZXhlYyIgIiosKiwqLCosKiwqLCosKixub25lLG5vbmUsKiwq LCosKiwqLCosKiwqIikKLSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCw0LDgsMTIsMTIsMTIs MTIsNCw4LDgsMTIsMTIsOCwxMiwxMiw4LDEyLDEyIildKQorCQkgICAgIGZsYXQsdm9wMSxk cyxkcyxzb3AxLGZsYXQsZmxhdCx2b3AzcF9tYWksdm9wM3BfbWFpLHZvcDEiKQorICAgKHNl dF9hdHRyICJleGVjIiAiKiwqLCosKiwqLCosKiwqLG5vbmUsbm9uZSwqLCosKiwqLCosKiwq LCosKiwqLCoiKQorICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDQsOCwxMiwxMiwxMiwxMiw0 LDgsOCwxMiwxMiw4LDEyLDEyLDgsMTIsMTIsOCw4LDQiKV0pCiAKIDsgOC8xNmJpdCBtb3Zl IHBhdHRlcm4KIDsgVE9ETzogaW1wbGVtZW50IGNvbWJpbmVkIGxvYWQgYW5kIHplcm9fZXh0 ZW5kLCBidXQgKm9ubHkqIGZvciAtbXNyYW0tZWNjPW9uCiAKIChkZWZpbmVfaW5zbiAiKm1v djxtb2RlPl9pbnNuIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSUhJIDAgIm5vbmltbWVk aWF0ZV9vcGVyYW5kIgotCQkJCSAiPVNELFNELFNELHYsU2csIHYsIHYsUkYsdixSTFJHLCAg IHYsIHYsUk0iKQorCQkJCSAiPVNELFNELFNELHYsU2csIHYsdmIsUkYsdixSTFJHLCAgIHYs dmIsUk0sIHYsIGEsIGIiKQogCShtYXRjaF9vcGVyYW5kOlFJSEkgMSAiZ2NuX2xvYWRfb3Bl cmFuZCIKLQkJCQkgIlNTQSwgSiwgQix2LCB2LFN2LFJGLCB2LEIsICAgdixSTFJHLFJNLCB2 IikpXQorCQkJCSAiU1NBLCBKLCBCLHYsIHYsU3YsUkYsdmIsQiwgICB2LFJMUkcsUk0sdmIs XmEsIHYsIGIiKSldCiAgICJnY25fdmFsaWRfbW92ZV9wICg8TU9ERT5tb2RlLCBvcGVyYW5k c1swXSwgb3BlcmFuZHNbMV0pIgogICAiQAogICBzX21vdl9iMzJcdCUwLCAlMQpAQCAtNTgw LDE5ICs1OTEsMjIgQEAKICAgZHNfd3JpdGUlYjBcdCVBMCwgJTElTzBcO3Nfd2FpdGNudFx0 bGdrbWNudCgwKQogICBkc19yZWFkJXUxXHQlMCwgJUExJU8xXDtzX3dhaXRjbnRcdGxna21j bnQoMCkKICAgZ2xvYmFsX2xvYWQlbzFcdCUwLCAlQTElTzElZzFcO3Nfd2FpdGNudFx0dm1j bnQoMCkKLSAgZ2xvYmFsX3N0b3JlJXMwXHQlQTAsICUxJU8wJWcwIgorICBnbG9iYWxfc3Rv cmUlczBcdCVBMCwgJTElTzAlZzAKKyAgdl9hY2N2Z3ByX3JlYWRfYjMyXHQlMCwgJTEKKyAg dl9hY2N2Z3ByX3dyaXRlX2IzMlx0JTAsICUxCisgIHZfYWNjdmdwcl9tb3ZfYjMyXHQlMCwg JTEiCiAgIFsoc2V0X2F0dHIgInR5cGUiCi0JICAgICAic29wMSxzb3BrLHNvcDEsdm9wMSx2 b3AzYSx2b3AzYSxmbGF0LGZsYXQsdm9wMSxkcyxkcyxmbGF0LGZsYXQiKQotICAgKHNldF9h dHRyICJleGVjIiAiKiwqLCosKixub25lLG5vbmUsKiwqLCosKiwqLCosKiIpCi0gICAoc2V0 X2F0dHIgImxlbmd0aCIgIjQsNCw4LDQsNCw0LDEyLDEyLDgsMTIsMTIsMTIsMTIiKV0pCisJ ICAgICAic29wMSxzb3BrLHNvcDEsdm9wMSx2b3AzYSx2b3AzYSxmbGF0LGZsYXQsdm9wMSxk cyxkcyxmbGF0LGZsYXQsIHZvcDNwX21haSx2b3AzcF9tYWksdm9wMSIpCisgICAoc2V0X2F0 dHIgImV4ZWMiICIqLCosKiwqLG5vbmUsbm9uZSwqLCosKiwqLCosKiwqLCosKiwqIikKKyAg IChzZXRfYXR0ciAibGVuZ3RoIiAiNCw0LDgsNCw0LDQsMTIsMTIsOCwxMiwxMiwxMiwxMiw4 LDgsNCIpXSkKIAogOyA2NGJpdCBtb3ZlIHBhdHRlcm4KIAogKGRlZmluZV9pbnNuX2FuZF9z cGxpdCAiKm1vdjxtb2RlPl9pbnNuIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESURGIDAg Im5vbmltbWVkaWF0ZV9vcGVyYW5kIgotCQkJICAiPVNELFNELFNELFJTLFNtLHYsIHYsU2cs IHYsIHYsUkYsUkxSRywgICB2LCB2LFJNIikKKwkJCSAgIj1TRCxTRCxTRCxSUyxTbSx2LCB2 LFNnLCB2LHZiLFJGLFJMUkcsICAgdix2YixSTSwgdiwgYSwgYiIpCiAJKG1hdGNoX29wZXJh bmQ6RElERiAxICJnZW5lcmFsX29wZXJhbmQiCi0JCQkgICJTU0EsIEMsREIsU20sUlMsdixE QiwgdixTdixSRiwgdiwgICB2LFJMUkcsUk0sIHYiKSldCisJCQkgICJTU0EsIEMsREIsU20s UlMsdixEQiwgdixTdixSRix2YiwgICB2LFJMUkcsUk0sdmIsXmEsIHYsIGIiKSldCiAgICJH RVRfQ09ERShvcGVyYW5kc1sxXSkgIT0gU1lNQk9MX1JFRiIKICAgIkAKICAgc19tb3ZfYjY0 XHQlMCwgJTEKQEAgLTYwOSw3ICs2MjMsMTAgQEAKICAgZHNfd3JpdGVfYjY0XHQlQTAsICUx JU8wXDtzX3dhaXRjbnRcdGxna21jbnQoMCkKICAgZHNfcmVhZF9iNjRcdCUwLCAlQTElTzFc O3Nfd2FpdGNudFx0bGdrbWNudCgwKQogICBnbG9iYWxfbG9hZF9kd29yZHgyXHQlMCwgJUEx JU8xJWcxXDtzX3dhaXRjbnRcdHZtY250KDApCi0gIGdsb2JhbF9zdG9yZV9kd29yZHgyXHQl QTAsICUxJU8wJWcwIgorICBnbG9iYWxfc3RvcmVfZHdvcmR4Mlx0JUEwLCAlMSVPMCVnMAor ICAjCisgICMKKyAgIyIKICAgInJlbG9hZF9jb21wbGV0ZWQKICAgICYmICgoIU1FTV9QIChv cGVyYW5kc1swXSkgJiYgIU1FTV9QIChvcGVyYW5kc1sxXSkKICAgICAgICAgJiYgIWdjbl9z Z3ByX21vdmVfcCAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKSkKQEAgLTY0MCwxNiArNjU3 LDE2IEBACiAgICAgICB9CiAgIH0KICAgWyhzZXRfYXR0ciAidHlwZSIgInNvcDEsc29wMSxt dWx0LHNtZW0sc21lbSx2bXVsdCx2bXVsdCx2bXVsdCx2bXVsdCxmbGF0LAotCQkgICAgIGZs YXQsZHMsZHMsZmxhdCxmbGF0IikKLSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCw4LCosMTIs MTIsKiwqLCosKiwxMiwxMiwxMiwxMiwxMiwxMiIpXSkKKwkJICAgICBmbGF0LGRzLGRzLGZs YXQsZmxhdCx2bXVsdCx2bXVsdCx2bXVsdCIpCisgICAoc2V0X2F0dHIgImxlbmd0aCIgIjQs OCwqLDEyLDEyLCosKiwqLCosMTIsMTIsMTIsMTIsMTIsMTIsKiwqLCoiKV0pCiAKIDsgMTI4 LWJpdCBtb3ZlLgogCiAoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqbW92dGlfaW5zbiIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VEkgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiCi0JCQkJ ICAgICAgIj1TRCxSUyxTbSxSRiwgdix2LCB2LFNELFJNLCB2LFJMLCB2IikKKwkJCQkgICAg ICAiPVNELFJTLFNtLFJGLHZiLHYsIHYsU0QsUk0sdmIsUkwsIHYsIHYsIGEsIGIiKQogCSht YXRjaF9vcGVyYW5kOlRJIDEgImdlbmVyYWxfb3BlcmFuZCIgIAotCQkJCSAgICAgICJTU0Is U20sUlMsIHYsUkYsdixTdiwgdiwgdixSTSwgdixSTCIpKV0KKwkJCQkgICAgICAiU1NCLFNt LFJTLHZiLFJGLHYsU3YsIHYsdmIsUk0sIHYsUkwsXmEsIHYsIGIiKSldCiAgICIiCiAgICJA CiAgICMKQEAgLTY2Myw3ICs2ODAsMTAgQEAKICAgZ2xvYmFsX3N0b3JlX2R3b3JkeDRcdCVB MCwgJTElTzAlZzAKICAgZ2xvYmFsX2xvYWRfZHdvcmR4NFx0JTAsICVBMSVPMSVnMVw7c193 YWl0Y250XHR2bWNudCgwKQogICBkc193cml0ZV9iMTI4XHQlQTAsICUxJU8wXDtzX3dhaXRj bnRcdGxna21jbnQoMCkKLSAgZHNfcmVhZF9iMTI4XHQlMCwgJUExJU8xXDtzX3dhaXRjbnRc dGxna21jbnQoMCkiCisgIGRzX3JlYWRfYjEyOFx0JTAsICVBMSVPMVw7c193YWl0Y250XHRs Z2ttY250KDApCisgICMKKyAgIworICAjIgogICAicmVsb2FkX2NvbXBsZXRlZAogICAgJiYg UkVHX1AgKG9wZXJhbmRzWzBdKQogICAgJiYgKFJFR19QIChvcGVyYW5kc1sxXSkgfHwgR0VU X0NPREUgKG9wZXJhbmRzWzFdKSA9PSBDT05TVF9JTlQpIgpAQCAtNjg0LDkgKzcwNCw5IEBA CiAgICAgb3BlcmFuZHNbMV0gPSBnY25fb3BlcmFuZF9wYXJ0IChUSW1vZGUsIG9wZXJhbmRz WzFdLCAwKTsKICAgfQogICBbKHNldF9hdHRyICJ0eXBlIiAibXVsdCxzbWVtLHNtZW0sZmxh dCxmbGF0LHZtdWx0LHZtdWx0LHZtdWx0LGZsYXQsZmxhdCxcCi0JCSAgICAgZHMsZHMiKQot ICAgKHNldF9hdHRyICJkZWxheWVkdXNlIiAiKiwqLHllcywqLCosKiwqLCoseWVzLCosKiwq IikKLSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiKiwxMiwxMiwxMiwxMiwqLCosKiwxMiwxMiwx MiwxMiIpXSkKKwkJICAgICBkcyxkcyx2bXVsdCx2bXVsdCx2bXVsdCIpCisgICAoc2V0X2F0 dHIgImRlbGF5ZWR1c2UiICIqLCoseWVzLCosKiwqLCosKix5ZXMsKiwqLCosKiwqLCoiKQor ICAgKHNldF9hdHRyICJsZW5ndGgiICIqLDEyLDEyLDEyLDEyLCosKiwqLDEyLDEyLDEyLDEy LCosKiwqIildKQogCiA7OyB9fX0KIDs7IHt7eyBQcm9sb2d1ZS9FcGlsb2d1ZQpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9nY24vcHJlZGljYXRlcy5tZCBiL2djYy9jb25maWcvZ2NuL3By ZWRpY2F0ZXMubWQKaW5kZXggYTIwYWNmN2U5ZWYuLjRkY2IyNTg5YTc3IDEwMDY0NAotLS0g YS9nY2MvY29uZmlnL2djbi9wcmVkaWNhdGVzLm1kCisrKyBiL2djYy9jb25maWcvZ2NuL3By ZWRpY2F0ZXMubWQKQEAgLTcwLDYgKzcwLDMwIEBACiAgIHJldHVybiBWR1BSX1JFR05PX1Ag KFJFR05PIChvcCkpIHx8IFJFR05PIChvcCkgPj0gRklSU1RfUFNFVURPX1JFR0lTVEVSOwog fSkKIAorKGRlZmluZV9wcmVkaWNhdGUgImdjbl9hdmdwcl9yZWdpc3Rlcl9vcGVyYW5kIgor ICAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAgeworICAgIGlmIChH RVRfQ09ERSAob3ApID09IFNVQlJFRykKKyAgICAgICAgb3AgPSBTVUJSRUdfUkVHIChvcCk7 CisKKyAgaWYgKCFSRUdfUCAob3ApKQorICAgICAgcmV0dXJuIGZhbHNlOworCisgIHJldHVy biBBVkdQUl9SRUdOT19QIChSRUdOTyAob3ApKSB8fCBSRUdOTyAob3ApID49IEZJUlNUX1BT RVVET19SRUdJU1RFUjsKK30pCisKKyhkZWZpbmVfcHJlZGljYXRlICJnY25fYXZncHJfaGFy ZF9yZWdpc3Rlcl9vcGVyYW5kIgorICAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVy YW5kIikKKyAgICB7CisgICAgICAgIGlmIChHRVRfQ09ERSAob3ApID09IFNVQlJFRykKKwkg ICAgICAgIG9wID0gU1VCUkVHX1JFRyAob3ApOworCisgIGlmICghUkVHX1AgKG9wKSkKKyAg ICAgICAgcmV0dXJuIGZhbHNlOworCisgIHJldHVybiBBVkdQUl9SRUdOT19QIChSRUdOTyAo b3ApKTsKK30pCisKIChkZWZpbmVfcHJlZGljYXRlICJnY25faW5saW5lX2ltbWVkaWF0ZV9v cGVyYW5kIgogICAobWF0Y2hfY29kZSAiY29uc3RfaW50LGNvbnN0X2RvdWJsZSxjb25zdF92 ZWN0b3IiKQogewo= --------------3udkhGlY8xRGm1WmBSFjqjFT--