<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>24287</bug_id>
          
          <creation_ts>2009-03-02 04:15:59 -0800</creation_ts>
          <short_desc>[GTK] Move auth dialog feature to WebKit/</short_desc>
          <delta_ts>2009-03-04 12:59:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xan Lopez">xan.lopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>111808</commentid>
    <comment_count>0</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-02 04:15:59 -0800</bug_when>
    <thetext>The auth dialog feature needs to be exported by WebKit so that external users can handle it by type, and its natural place to be is the WebKit/ directory anyway. This patch moves it there and adds it to the default session in webkit_init().

Also fix copyright headers and one casting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111809</commentid>
    <comment_count>1</comment_count>
      <attachid>28166</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-02 04:26:58 -0800</bug_when>
    <thetext>Created attachment 28166
movesoupauthdialog.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112266</commentid>
    <comment_count>2</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-04 12:59:26 -0800</bug_when>
    <thetext>Landed in r41428.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28166</attachid>
            <date>2009-03-02 04:26:58 -0800</date>
            <delta_ts>2009-03-03 11:59:44 -0800</delta_ts>
            <desc>movesoupauthdialog.patch</desc>
            <filename>movesoupauthdialog.patch</filename>
            <type>text/plain</type>
            <size>41743</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA1MWIyZmM4ZmI2ZTNiODM3MWRmY2VlOTg2N2FkNDRmMDVlZjIyYjFiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IE1vbiwg
MiBNYXIgMjAwOSAxNDoxODo1OCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIC46CgoyMDA5LTAzLTAy
ICBYYW4gTG9wZXogIDx4YW5AZ25vbWUub3JnPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI0Mjg3CiAgICAgICAgW0dUS10gTW92ZSBhdXRoIGRpYWxvZyBmZWF0dXJlIHRvIFdlYktpdC8K
CiAgICAgICAgQWRkIFdlYktpdFNvdXBBdXRoRGlhbG9nIGZpbGVzIHRvIGJ1aWxkLgoKICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOgoKV2ViQ29yZToKCjIwMDktMDMtMDIgIFhhbiBMb3BleiAgPHhh
bkBnbm9tZS5vcmc+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQyODcKICAgICAgICBb
R1RLXSBNb3ZlIGF1dGggZGlhbG9nIGZlYXR1cmUgdG8gV2ViS2l0LwoKICAgICAgICBSZW1vdmUg
V2ViS2l0U291cEF1dGhEaWFsb2cgZmlsZXMgZnJvbSBidWlsZCBhbmQgc3RvcCB1c2luZyBpdC4K
CiAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgogICAgICAgIChXZWJDb3JlOjplbnN1cmVTZXNzaW9u
SXNJbml0aWFsaXplZCk6CiAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvd2Via2l0LXNv
dXAtYXV0aC1kaWFsb2cuYzogUmVtb3ZlZC4KICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291
cC93ZWJraXQtc291cC1hdXRoLWRpYWxvZy5oOiBSZW1vdmVkLgoKV2ViS2l0L2d0azoKCjIwMDkt
MDMtMDIgIFhhbiBMb3BleiAgPHhhbkBnbm9tZS5vcmc+CgogICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjQyODcKICAgICAgICBbR1RLXSBNb3ZlIGF1dGggZGlhbG9nIGZlYXR1cmUgdG8gV2Vi
S2l0LwoKICAgICAgICBBZGQgV2ViS2l0U291cEF1dGhEaWFsb2cgYW5kIGFkZCBpdCB0byB0aGUg
c2Vzc2lvbiBpbiB3ZWJraXRfaW5pdC4KCiAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5j
cHA6CiAgICAgICAgKGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKToKICAgICAgICAod2Via2l0X2lu
aXQpOgogICAgICAgICogd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmM6IEFkZGVkLgogICAg
ICAgICh3ZWJraXRfc291cF9hdXRoX2RpYWxvZ19jbGFzc19pbml0KToKICAgICAgICAod2Via2l0
X3NvdXBfYXV0aF9kaWFsb2dfaW5pdCk6CiAgICAgICAgKHdlYmtpdF9zb3VwX2F1dGhfZGlhbG9n
X3Nlc3Npb25fZmVhdHVyZV9pbml0KToKICAgICAgICAoZnJlZV9hdXRoRGF0YSk6CiAgICAgICAg
KHNldF9wYXNzd29yZF9jYWxsYmFjayk6CiAgICAgICAgKHJlc3BvbnNlX2NhbGxiYWNrKToKICAg
ICAgICAodGFibGVfYWRkX2VudHJ5KToKICAgICAgICAoc2hvd19hdXRoX2RpYWxvZyk6CiAgICAg
ICAgKGZpbmRfcGFzc3dvcmRfY2FsbGJhY2spOgogICAgICAgIChzZXNzaW9uX2F1dGhlbnRpY2F0
ZSk6CiAgICAgICAgKGF0dGFjaCk6CiAgICAgICAgKiB3ZWJraXQvd2Via2l0c291cGF1dGhkaWFs
b2cuaDogQWRkZWQuCi0tLQogQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDExICsKIEdOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxMiArLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogLi4uL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwICAgfCAgIDMxIC0tCiAuLi4vbmV0d29yay9zb3Vw
L3dlYmtpdC1zb3VwLWF1dGgtZGlhbG9nLmMgICAgICAgICB8ICAzNDcgLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIC4uLi9uZXR3b3JrL3NvdXAvd2Via2l0LXNvdXAtYXV0aC1kaWFsb2cuaCAgICAgICAg
IHwgICA0OCAtLS0KIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAyNiArKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgICAg
ICAgICAgICAgICAgfCAgIDM2ICsrCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzb3VwYXV0aGRp
YWxvZy5jICAgICAgICAgICB8ICAzNDcgKysrKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmggICAgICAgICAgIHwgICA0OSArKysKIDExIGZp
bGVzIGNoYW5nZWQsIDQ5MiBpbnNlcnRpb25zKCspLCA0MzQgZGVsZXRpb25zKC0pCiBkZWxldGUg
bW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvd2Via2l0LXNvdXAtYXV0
aC1kaWFsb2cuYwogZGVsZXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL3dlYmtpdC1zb3VwLWF1dGgtZGlhbG9nLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRzb3VwYXV0aGRpYWxvZy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuaAoKZGlmZiAtLWdpdCBhL0NoYW5n
ZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyNmFjMDUzLi43MzgwY2IxIDEwMDY0NAotLS0gYS9DaGFu
Z2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDMtMDIgIFhhbiBM
b3BleiAgPHhhbkBnbm9tZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
Mjg3CisgICAgICAgIFtHVEtdIE1vdmUgYXV0aCBkaWFsb2cgZmVhdHVyZSB0byBXZWJLaXQvCisK
KyAgICAgICAgQWRkIFdlYktpdFNvdXBBdXRoRGlhbG9nIGZpbGVzIHRvIGJ1aWxkLgorCisgICAg
ICAgICogR05VbWFrZWZpbGUuYW06CisKIDIwMDktMDMtMDEgIENocmlzdGlhbiBEeXdhbiAgPGNo
cmlzdGlhbkB0d290b2FzdHMuZGU+CiAKICAgICAgICAgKiBjb25maWd1cmUuYWM6IEJ1bXAgR1RL
IHBvcnQgdmVyc2lvbiB0byAxLjEuMS4KZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmFtIGIvR05V
bWFrZWZpbGUuYW0KaW5kZXggNmViZmFlNy4uNDYyODhkZSAxMDA2NDQKLS0tIGEvR05VbWFrZWZp
bGUuYW0KKysrIGIvR05VbWFrZWZpbGUuYW0KQEAgLTE4MSw4ICsxODEsNyBAQCBsaWJXZWJDb3Jl
X2xhX0NGTEFHUyA9IFwKIAkkKExJQlhTTFRfQ0ZMQUdTKSBcCiAJJChDT1ZFUkFHRV9DRkxBR1Mp
IFwKIAkkKEhJTERPTl9DRkxBR1MpIFwKLQkkKEdFT0NMVUVfQ0ZMQUdTKSBcCi0JJChHTk9NRUtF
WVJJTkdfQ0ZMQUdTKQorCSQoR0VPQ0xVRV9DRkxBR1MpCiAKIGxpYldlYkNvcmVfbGFfQ1BQRkxB
R1MgPSBcCiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwKQEAgLTIxMSw3ICsyMTAsNiBAQCBsaWJXZWJD
b3JlX2xhX0xJQkFERCA9IFwKIAkkKEpQRUdfTElCUykgXAogCSQoUE5HX0xJQlMpIFwKIAkkKEdF
T0NMVUVfTElCUykgXAotCSQoR05PTUVLRVlSSU5HX0xJQlMpIFwKIAktbHB0aHJlYWQKIAogIyBX
ZWJLaXQKQEAgLTIzNyw3ICsyMzUsOCBAQCBsaWJ3ZWJraXRfMV8wX2xhX0NYWEZMQUdTID0gXAog
CSQobGliV2ViQ29yZV9sYV9DWFhGTEFHUykKIAogbGlid2Via2l0XzFfMF9sYV9DRkxBR1MgPSBc
Ci0JJChsaWJXZWJDb3JlX2xhX0NGTEFHUykKKwkkKGxpYldlYkNvcmVfbGFfQ0ZMQUdTKSBcCisJ
JChHTk9NRUtFWVJJTkdfQ0ZMQUdTKQogCiBsaWJ3ZWJraXRfMV8wX2xhX0NQUEZMQUdTID0gXAog
CSQobGliV2ViQ29yZV9sYV9DUFBGTEFHUykgXApAQCAtMjUwLDcgKzI0OSw4IEBAIGxpYndlYmtp
dF8xXzBfbGFfTERGTEFHUyA9IFwKIAkkKG5vX3VuZGVmaW5lZCkKIAogbGlid2Via2l0XzFfMF9s
YV9MSUJBREQgPSBcCi0JbGliV2ViQ29yZS5sYQorCWxpYldlYkNvcmUubGEgXAorCSQoR05PTUVL
RVlSSU5HX0xJQlMpCiAKICMKICMgRXh0cmEgY2hlY2tzIGFuZCBmbGFncwpAQCAtMzA1LDYgKzMw
NSw3IEBAIHdlYmtpdGd0a19oX2FwaSArPSBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Lmgg
XAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaCBcCiAJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaCBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c291
cGF1dGhkaWFsb2cuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmVyc2lvbi5oIFwKIAlX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaCBcCiAJV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaCBcCkBAIC0zNDAsNiArMzQxLDcgQEAgd2Via2l0Z3Rr
X3NvdXJjZXMgKz0gXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNw
cCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgXAogCVdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHByaXZhdGUuaCBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c291cGF1
dGhkaWFsb2cuYyBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmVyc2lvbi5jcHAgXAogCVdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAgXAogCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdiYmYzZWUuLmNkNGZjYTIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMDktMDMtMDIgIFhhbiBMb3BleiAgPHhhbkBnbm9tZS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Mjg3CisgICAgICAgIFtHVEtdIE1vdmUgYXV0aCBkaWFs
b2cgZmVhdHVyZSB0byBXZWJLaXQvCisKKyAgICAgICAgUmVtb3ZlIFdlYktpdFNvdXBBdXRoRGlh
bG9nIGZpbGVzIGZyb20gYnVpbGQgYW5kIHN0b3AgdXNpbmcgaXQuCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5k
bGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuc3VyZVNlc3Npb25Jc0luaXRpYWxpemVk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvd2Via2l0LXNvdXAtYXV0aC1kaWFs
b2cuYzogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvd2Via2l0LXNv
dXAtYXV0aC1kaWFsb2cuaDogUmVtb3ZlZC4KKwogMjAwOS0wMy0wMSAgQ2hyaXMgRmxlaXphY2gg
IDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KaW5kZXggY2IyYmIxZC4uZDAzYWM5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xODE3LDkgKzE4MTcsNyBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlRXJyb3IuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VS
ZXF1ZXN0LmggXAotCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9u
c2UuaCBcCi0JV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvd2Via2l0LXNvdXAtYXV0aC1k
aWFsb2cuYyBcCi0JV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvd2Via2l0LXNvdXAtYXV0
aC1kaWFsb2cuaAorCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9u
c2UuaAogCiBpZiBVU0VfR05PTUVLRVlSSU5HCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
CmluZGV4IDFjYTY1N2YuLjUyYTAxMDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2lu
Y2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3Bv
bnNlLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCi0jaW5jbHVkZSAid2Via2l0LXNvdXAt
YXV0aC1kaWFsb2cuaCIKIAogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4K
QEAgLTM3MywzMSArMzcyLDYgQEAgc3RhdGljIFNvdXBTZXNzaW9uKiBjcmVhdGVTb3VwU2Vzc2lv
bigpCiAgICAgcmV0dXJuIHNvdXBfc2Vzc2lvbl9hc3luY19uZXcoKTsKIH0KIAotc3RhdGljIEd0
a1dpZGdldCogY3VycmVudFRvcGxldmVsQ2FsbGJhY2soV2ViS2l0U291cEF1dGhEaWFsb2cqIGZl
YXR1cmUsIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBncG9pbnRlciB1c2VyRGF0YSkKLXsKLSAgICBn
cG9pbnRlciBtZXNzYWdlRGF0YSA9IGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKG1lc3NhZ2Up
LCAicmVzb3VyY2VIYW5kbGUiKTsKLSAgICBpZiAoIW1lc3NhZ2VEYXRhKQotICAgICAgICByZXR1
cm4gTlVMTDsKLQotICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNv
dXJjZUhhbmRsZSo+KG1lc3NhZ2VEYXRhKTsKLSAgICBpZiAoIWhhbmRsZSkKLSAgICAgICAgcmV0
dXJuIE5VTEw7Ci0KLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJ
bnRlcm5hbCgpOwotICAgIGlmICghZCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBGcmFt
ZSogZnJhbWUgPSBkLT5tX2ZyYW1lOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBO
VUxMOwotCi0gICAgR3RrV2lkZ2V0KiB0b3BsZXZlbCA9ICBndGtfd2lkZ2V0X2dldF90b3BsZXZl
bChHVEtfV0lER0VUKGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5wbGF0Zm9ybVdpbmRvdygpKSk7
Ci0gICAgaWYgKEdUS19XSURHRVRfVE9QTEVWRUwodG9wbGV2ZWwpKQotICAgICAgICByZXR1cm4g
dG9wbGV2ZWw7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gTlVMTDsKLX0KLQogc3RhdGljIHZv
aWQgZW5zdXJlU2Vzc2lvbklzSW5pdGlhbGl6ZWQoU291cFNlc3Npb24qIHNlc3Npb24pCiB7CiAg
ICAgaWYgKGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKHNlc3Npb24pLCAid2Via2l0LWluaXQi
KSkKQEAgLTQwOSwxMSArMzgzLDYgQEAgc3RhdGljIHZvaWQgZW5zdXJlU2Vzc2lvbklzSW5pdGlh
bGl6ZWQoU291cFNlc3Npb24qIHNlc3Npb24pCiAgICAgZWxzZQogICAgICAgICBzZXREZWZhdWx0
Q29va2llSmFyKGphcik7CiAKLSAgICBTb3VwU2Vzc2lvbkZlYXR1cmUqIGF1dGhEaWFsb2cgPSBz
dGF0aWNfY2FzdDxTb3VwU2Vzc2lvbkZlYXR1cmUqPihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVf
U09VUF9BVVRIX0RJQUxPRywgTlVMTCkpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoYXV0aERpYWxv
ZywgImN1cnJlbnQtdG9wbGV2ZWwiLCBHX0NBTExCQUNLKGN1cnJlbnRUb3BsZXZlbENhbGxiYWNr
KSwgTlVMTCk7Ci0gICAgc291cF9zZXNzaW9uX2FkZF9mZWF0dXJlKHNlc3Npb24sIGF1dGhEaWFs
b2cpOwotICAgIGdfb2JqZWN0X3VucmVmKGF1dGhEaWFsb2cpOwotCiAgICAgY29uc3QgY2hhciog
d2Via2l0X2RlYnVnID0gZ19nZXRlbnYoIldFQktJVF9ERUJVRyIpOyAKICAgICBpZiAoIXNvdXBf
c2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZUEVfTE9HR0VSKQogICAgICAgICAm
JiB3ZWJraXRfZGVidWcgJiYgIXN0cmNtcCh3ZWJraXRfZGVidWcsICJuZXR3b3JrIikpIHsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL3dlYmtpdC1zb3VwLWF1dGgt
ZGlhbG9nLmMgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC93ZWJraXQtc291cC1hdXRo
LWRpYWxvZy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiY2YxNDMxLi4wMDAwMDAw
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL3dlYmtpdC1zb3VwLWF1dGgtZGlh
bG9nLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOSBJZ2FsaWEgUy5MLiwgQXV0aG9yOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29t
PgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8
bGlic291cC9zb3VwLmg+Ci0jaWYgVVNFKEdOT01FS0VZUklORykKLSNpbmNsdWRlIDxnbm9tZS1r
ZXlyaW5nLmg+Ci0jZW5kaWYKLQotI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKLSNpbmNsdWRl
ICJ3ZWJraXQtc291cC1hdXRoLWRpYWxvZy5oIgotCi1zdGF0aWMgdm9pZCB3ZWJraXRfc291cF9h
dXRoX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdChTb3VwU2Vzc2lvbkZlYXR1cmVJbnRlcmZh
Y2UqIGZlYXR1cmVfaW50ZXJmYWNlLCBncG9pbnRlciBpbnRlcmZhY2VfZGF0YSk7Ci1zdGF0aWMg
dm9pZCBhdHRhY2goU291cFNlc3Npb25GZWF0dXJlKiBtYW5hZ2VyLCBTb3VwU2Vzc2lvbiogc2Vz
c2lvbik7Ci1zdGF0aWMgdm9pZCBkZXRhY2goU291cFNlc3Npb25GZWF0dXJlKiBtYW5hZ2VyLCBT
b3VwU2Vzc2lvbiogc2Vzc2lvbik7Ci0KLWVudW0gewotICAgIENVUlJFTlRfVE9QTEVWRUwsCi0g
ICAgTEFTVF9TSUdOQUwKLX07Ci0KLXN0YXRpYyBndWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9
IHsgMCB9OwotCi1HX0RFRklORV9UWVBFX1dJVEhfQ09ERShXZWJLaXRTb3VwQXV0aERpYWxvZywg
d2Via2l0X3NvdXBfYXV0aF9kaWFsb2csIEdfVFlQRV9PQkpFQ1QsCi0gICAgICAgICAgICAgICAg
ICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoU09VUF9UWVBFX1NFU1NJT05fRkVBVFVSRSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRfc291
cF9hdXRoX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdCkpCi0KLXN0YXRpYyB2b2lkIHdlYmtp
dF9zb3VwX2F1dGhfZGlhbG9nX2NsYXNzX2luaXQoV2ViS2l0U291cEF1dGhEaWFsb2dDbGFzcyog
a2xhc3MpCi17Ci0gICAgR09iamVjdENsYXNzKiBvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFT
UyhrbGFzcyk7Ci0KLSAgICBzaWduYWxzW0NVUlJFTlRfVE9QTEVWRUxdID0KLSAgICAgIGdfc2ln
bmFsX25ldygiY3VycmVudC10b3BsZXZlbCIsCi0gICAgICAgICAgICAgICAgICAgR19PQkpFQ1Rf
Q0xBU1NfVFlQRShvYmplY3RfY2xhc3MpLAotICAgICAgICAgICAgICAgICAgIEdfU0lHTkFMX1JV
Tl9MQVNULAotICAgICAgICAgICAgICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRTb3VwQXV0
aERpYWxvZ0NsYXNzLCBjdXJyZW50X3RvcGxldmVsKSwKLSAgICAgICAgICAgICAgICAgICBOVUxM
LCBOVUxMLAotICAgICAgICAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX09CSkVDVF9fT0JKRUNU
LAotICAgICAgICAgICAgICAgICAgIEdUS19UWVBFX1dJREdFVCwgMSwKLSAgICAgICAgICAgICAg
ICAgICBTT1VQX1RZUEVfTUVTU0FHRSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9zb3VwX2F1
dGhfZGlhbG9nX2luaXQoV2ViS2l0U291cEF1dGhEaWFsb2cqIGluc3RhbmNlKQotewotfQotCi1z
dGF0aWMgdm9pZCB3ZWJraXRfc291cF9hdXRoX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdChT
b3VwU2Vzc2lvbkZlYXR1cmVJbnRlcmZhY2UgKmZlYXR1cmVfaW50ZXJmYWNlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIg
aW50ZXJmYWNlX2RhdGEpCi17Ci0gICAgZmVhdHVyZV9pbnRlcmZhY2UtPmF0dGFjaCA9IGF0dGFj
aDsKLSAgICBmZWF0dXJlX2ludGVyZmFjZS0+ZGV0YWNoID0gZGV0YWNoOwotfQotCi10eXBlZGVm
IHN0cnVjdCBfV2ViS2l0QXV0aERhdGEgewotICAgIFNvdXBNZXNzYWdlKiBtc2c7Ci0gICAgU291
cEF1dGgqIGF1dGg7Ci0gICAgU291cFNlc3Npb24qIHNlc3Npb247Ci0gICAgU291cFNlc3Npb25G
ZWF0dXJlKiBtYW5hZ2VyOwotICAgIEd0a1dpZGdldCogbG9naW5FbnRyeTsKLSAgICBHdGtXaWRn
ZXQqIHBhc3N3b3JkRW50cnk7Ci0jaWYgVVNFKEdOT01FS0VZUklORykKLSAgICBHdGtXaWRnZXQq
IGNoZWNrQnV0dG9uOwotI2VuZGlmCi19IFdlYktpdEF1dGhEYXRhOwotCi1zdGF0aWMgdm9pZCBm
cmVlX2F1dGhEYXRhKFdlYktpdEF1dGhEYXRhKiBhdXRoRGF0YSkKLXsKLSAgICBnX29iamVjdF91
bnJlZihhdXRoRGF0YS0+bXNnKTsKLSAgICBnX3NsaWNlX2ZyZWUoV2ViS2l0QXV0aERhdGEsIGF1
dGhEYXRhKTsKLX0KLQotI2lmIFVTRShHTk9NRUtFWVJJTkcpCi1zdGF0aWMgdm9pZCBzZXRfcGFz
c3dvcmRfY2FsbGJhY2soR25vbWVLZXlyaW5nUmVzdWx0IHJlc3VsdCwgZ3VpbnQzMiB2YWwsIGdw
b2ludGVyIHVzZXJfZGF0YSkKLXsKLSAgICAvKiBEdW1teSBjYWxsYmFjaywgZ25vbWVfa2V5cmlu
Z19zZXRfbmV0d29ya19wYXNzd29yZCBkb2VzIG5vdCBhY2NlcHQgYSBOVUxMIG9uZSAqLwotfQot
I2VuZGlmCi0KLXN0YXRpYyB2b2lkIHJlc3BvbnNlX2NhbGxiYWNrKEd0a0RpYWxvZyogZGlhbG9n
LCBnaW50IHJlc3BvbnNlX2lkLCBXZWJLaXRBdXRoRGF0YSogYXV0aERhdGEpCi17Ci0gICAgY29u
c3QgY2hhciogbG9naW47Ci0gICAgY29uc3QgY2hhciogcGFzc3dvcmQ7Ci0jaWYgVVNFKEdOT01F
S0VZUklORykKLSAgICBTb3VwVVJJKiB1cmk7Ci0gICAgZ2Jvb2xlYW4gc3RvcmVQYXNzd29yZDsK
LSNlbmRpZgotCi0gICAgc3dpdGNoKHJlc3BvbnNlX2lkKSB7Ci0gICAgY2FzZSBHVEtfUkVTUE9O
U0VfT0s6Ci0gICAgICAgIGxvZ2luID0gZ3RrX2VudHJ5X2dldF90ZXh0KEdUS19FTlRSWShhdXRo
RGF0YS0+bG9naW5FbnRyeSkpOwotICAgICAgICBwYXNzd29yZCA9IGd0a19lbnRyeV9nZXRfdGV4
dChHVEtfRU5UUlkoYXV0aERhdGEtPnBhc3N3b3JkRW50cnkpKTsKLSAgICAgICAgc291cF9hdXRo
X2F1dGhlbnRpY2F0ZShhdXRoRGF0YS0+YXV0aCwgbG9naW4sIHBhc3N3b3JkKTsKLQotI2lmIFVT
RShHTk9NRUtFWVJJTkcpCi0gICAgICAgIHN0b3JlUGFzc3dvcmQgPSBndGtfdG9nZ2xlX2J1dHRv
bl9nZXRfYWN0aXZlKEdUS19UT0dHTEVfQlVUVE9OKGF1dGhEYXRhLT5jaGVja0J1dHRvbikpOwot
ICAgICAgICBpZiAoc3RvcmVQYXNzd29yZCkgewotICAgICAgICAgICAgdXJpID0gc291cF9tZXNz
YWdlX2dldF91cmkoYXV0aERhdGEtPm1zZyk7Ci0gICAgICAgICAgICBnbm9tZV9rZXlyaW5nX3Nl
dF9uZXR3b3JrX3Bhc3N3b3JkKE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvZ2luLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzb3VwX2F1dGhfZ2V0X3JlYWxtKGF1dGhEYXRhLT5hdXRoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJpLT5ob3N0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmktPnNjaGVtZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cF9hdXRoX2dl
dF9zY2hlbWVfbmFtZShhdXRoRGF0YS0+YXV0aCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVyaS0+cG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChHbm9tZUtleXJpbmdPcGVyYXRpb25HZXRJbnRDYWxs
YmFjaylzZXRfcGFzc3dvcmRfY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5VTEwpOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICBkZWZhdWx0Ogot
ICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBzb3VwX3Nlc3Npb25fdW5wYXVzZV9tZXNzYWdl
KGF1dGhEYXRhLT5zZXNzaW9uLCBhdXRoRGF0YS0+bXNnKTsKLSAgICBmcmVlX2F1dGhEYXRhKGF1
dGhEYXRhKTsKLSAgICBndGtfd2lkZ2V0X2Rlc3Ryb3koR1RLX1dJREdFVChkaWFsb2cpKTsKLX0K
LQotc3RhdGljIEd0a1dpZGdldCAqCi10YWJsZV9hZGRfZW50cnkgKEd0a1dpZGdldCogIHRhYmxl
LAotICAgICAgICAgICAgICAgICBpbnQgICAgICAgICByb3csCi0gICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIqIGxhYmVsX3RleHQsCi0gICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHZhbHVl
LAotICAgICAgICAgICAgICAgICBncG9pbnRlciAgICB1c2VyX2RhdGEpCi17Ci0gICAgR3RrV2lk
Z2V0KiBlbnRyeTsKLSAgICBHdGtXaWRnZXQqIGxhYmVsOwotCi0gICAgbGFiZWwgPSBndGtfbGFi
ZWxfbmV3KGxhYmVsX3RleHQpOwotICAgIGd0a19taXNjX3NldF9hbGlnbm1lbnQoR1RLX01JU0Mo
bGFiZWwpLCAwLjAsIDAuNSk7Ci0KLSAgICBlbnRyeSA9IGd0a19lbnRyeV9uZXcoKTsKLSAgICBn
dGtfZW50cnlfc2V0X2FjdGl2YXRlc19kZWZhdWx0KEdUS19FTlRSWShlbnRyeSksIFRSVUUpOwot
Ci0gICAgaWYgKHZhbHVlKQotICAgICAgICBndGtfZW50cnlfc2V0X3RleHQoR1RLX0VOVFJZKGVu
dHJ5KSwgdmFsdWUpOwotCi0gICAgZ3RrX3RhYmxlX2F0dGFjaChHVEtfVEFCTEUodGFibGUpLCBs
YWJlbCwKLSAgICAgICAgICAgICAgICAgICAgIDAsIDEsIHJvdywgcm93ICsgMSwKLSAgICAgICAg
ICAgICAgICAgICAgIEdUS19GSUxMLCBHVEtfRVhQQU5EIHwgR1RLX0ZJTEwsIDAsIDApOwotICAg
IGd0a190YWJsZV9hdHRhY2hfZGVmYXVsdHMoR1RLX1RBQkxFKHRhYmxlKSwgZW50cnksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAyLCByb3csIHJvdyArIDEpOwotCi0gICAgcmV0
dXJuIGVudHJ5OwotfQotCi1zdGF0aWMgdm9pZCBzaG93X2F1dGhfZGlhbG9nKFdlYktpdEF1dGhE
YXRhKiBhdXRoRGF0YSwgY29uc3QgY2hhciogbG9naW4sIGNvbnN0IGNoYXIqIHBhc3N3b3JkKQot
ewotICAgIEd0a1dpZGdldCogdG9wbGV2ZWw7Ci0gICAgR3RrV2lkZ2V0KiB3aWRnZXQ7Ci0gICAg
R3RrRGlhbG9nKiBkaWFsb2c7Ci0gICAgR3RrV2luZG93KiB3aW5kb3c7Ci0gICAgR3RrV2lkZ2V0
KiBlbnRyeUNvbnRhaW5lcjsKLSAgICBHdGtXaWRnZXQqIGhib3g7Ci0gICAgR3RrV2lkZ2V0KiBt
YWluVkJveDsKLSAgICBHdGtXaWRnZXQqIHZib3g7Ci0gICAgR3RrV2lkZ2V0KiBpY29uOwotICAg
IEd0a1dpZGdldCogdGFibGU7Ci0gICAgR3RrV2lkZ2V0KiBtZXNzYWdlTGFiZWw7Ci0gICAgY2hh
ciogbWVzc2FnZTsKLSAgICBTb3VwVVJJKiB1cmk7Ci0jaWYgVVNFKEdOT01FS0VZUklORykKLSAg
ICBHdGtXaWRnZXQqIHJlbWVtYmVyQm94OwotICAgIEd0a1dpZGdldCogY2hlY2tCdXR0b247Ci0j
ZW5kaWYKLQotICAgIC8qIEZyb20gR1RLKyBndGttb3VudG9wZXJhdGlvbi5jLCBtb2RpZmllZCBh
bmQgc2ltcGxpZmllZC4gTEdQTCAyIGxpY2Vuc2UgKi8KLQotICAgIHdpZGdldCA9IGd0a19kaWFs
b2dfbmV3KCk7Ci0gICAgd2luZG93ID0gR1RLX1dJTkRPVyh3aWRnZXQpOwotICAgIGRpYWxvZyA9
IEdUS19ESUFMT0cod2lkZ2V0KTsKLQotICAgIGd0a19kaWFsb2dfYWRkX2J1dHRvbnMoZGlhbG9n
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NUT0NLX0NBTkNFTCwgR1RLX1JFU1BP
TlNFX0NBTkNFTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TVE9DS19PSywgR1RL
X1JFU1BPTlNFX09LLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0KLSAgICAv
KiBTZXQgdGhlIGRpYWxvZyB1cCB3aXRoIEhJRyBwcm9wZXJ0aWVzICovCi0gICAgZ3RrX2RpYWxv
Z19zZXRfaGFzX3NlcGFyYXRvcihkaWFsb2csIEZBTFNFKTsKLSAgICBndGtfY29udGFpbmVyX3Nl
dF9ib3JkZXJfd2lkdGgoR1RLX0NPTlRBSU5FUiAoZGlhbG9nKSwgNSk7Ci0gICAgZ3RrX2JveF9z
ZXRfc3BhY2luZyhHVEtfQk9YKGRpYWxvZy0+dmJveCksIDIpOyAvKiAyICogNSArIDIgPSAxMiAq
LwotICAgIGd0a19jb250YWluZXJfc2V0X2JvcmRlcl93aWR0aChHVEtfQ09OVEFJTkVSIChkaWFs
b2ctPmFjdGlvbl9hcmVhKSwgNSk7Ci0gICAgZ3RrX2JveF9zZXRfc3BhY2luZyhHVEtfQk9YKGRp
YWxvZy0+YWN0aW9uX2FyZWEpLCA2KTsKLQotICAgIGd0a193aW5kb3dfc2V0X3Jlc2l6YWJsZSh3
aW5kb3csIEZBTFNFKTsKLSAgICBndGtfd2luZG93X3NldF90aXRsZSh3aW5kb3csICIiKTsKLSAg
ICBndGtfd2luZG93X3NldF9pY29uX25hbWUod2luZG93LCBHVEtfU1RPQ0tfRElBTE9HX0FVVEhF
TlRJQ0FUSU9OKTsKLQotICAgIGd0a19kaWFsb2dfc2V0X2RlZmF1bHRfcmVzcG9uc2UoZGlhbG9n
LCBHVEtfUkVTUE9OU0VfT0spOwotCi0gICAgLyogR2V0IHRoZSBjdXJyZW50IHRvcGxldmVsICov
Ci0gICAgZ19zaWduYWxfZW1pdChhdXRoRGF0YS0+bWFuYWdlciwgc2lnbmFsc1tDVVJSRU5UX1RP
UExFVkVMXSwgMCwgYXV0aERhdGEtPm1zZywgJnRvcGxldmVsKTsKLQotICAgIGlmICh0b3BsZXZl
bCkKLSAgICAgICAgZ3RrX3dpbmRvd19zZXRfdHJhbnNpZW50X2Zvcih3aW5kb3csIHRvcGxldmVs
KTsKLQotICAgIC8qIEJ1aWxkIGNvbnRlbnRzICovCi0gICAgaGJveCA9IGd0a19oYm94X25ldyhG
QUxTRSwgMTIpOwotICAgIGd0a19jb250YWluZXJfc2V0X2JvcmRlcl93aWR0aChHVEtfQ09OVEFJ
TkVSKGhib3gpLCA1KTsKLSAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWChkaWFsb2ctPnZi
b3gpLCBoYm94LCBUUlVFLCBUUlVFLCAwKTsKLQotICAgIGljb24gPSBndGtfaW1hZ2VfbmV3X2Zy
b21fc3RvY2soR1RLX1NUT0NLX0RJQUxPR19BVVRIRU5USUNBVElPTiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdUS19JQ09OX1NJWkVfRElBTE9HKTsKLQotICAgIGd0a19t
aXNjX3NldF9hbGlnbm1lbnQoR1RLX01JU0MoaWNvbiksIDAuNSwgMC4wKTsKLSAgICBndGtfYm94
X3BhY2tfc3RhcnQoR1RLX0JPWChoYm94KSwgaWNvbiwgRkFMU0UsIEZBTFNFLCAwKTsKLQotICAg
IG1haW5WQm94ID0gZ3RrX3Zib3hfbmV3KEZBTFNFLCAxOCk7Ci0gICAgZ3RrX2JveF9wYWNrX3N0
YXJ0KEdUS19CT1goaGJveCksIG1haW5WQm94LCBUUlVFLCBUUlVFLCAwKTsKLQotICAgIHVyaSA9
IHNvdXBfbWVzc2FnZV9nZXRfdXJpKGF1dGhEYXRhLT5tc2cpOwotICAgIG1lc3NhZ2UgPSBnX3N0
cmR1cF9wcmludGYoIkEgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFyZSBiZWluZyByZXF1ZXN0ZWQg
YnkgdGhlIHNpdGUgJXMiLCB1cmktPmhvc3QpOwotICAgIG1lc3NhZ2VMYWJlbCA9IGd0a19sYWJl
bF9uZXcobWVzc2FnZSk7Ci0gICAgZ19mcmVlKG1lc3NhZ2UpOwotICAgIGd0a19taXNjX3NldF9h
bGlnbm1lbnQoR1RLX01JU0MobWVzc2FnZUxhYmVsKSwgMC4wLCAwLjUpOwotICAgIGd0a19sYWJl
bF9zZXRfbGluZV93cmFwKEdUS19MQUJFTChtZXNzYWdlTGFiZWwpLCBUUlVFKTsKLSAgICBndGtf
Ym94X3BhY2tfc3RhcnQoR1RLX0JPWChtYWluVkJveCksIEdUS19XSURHRVQobWVzc2FnZUxhYmVs
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsIEZBTFNFLCAwKTsKLQotICAgIHZib3gg
PSBndGtfdmJveF9uZXcoRkFMU0UsIDYpOwotICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9Y
IChtYWluVkJveCksIHZib3gsIEZBTFNFLCBGQUxTRSwgMCk7Ci0KLSAgICAvKiBUaGUgdGFibGUg
dGhhdCBob2xkcyB0aGUgZW50cmllcyAqLwotICAgIGVudHJ5Q29udGFpbmVyID0gZ3RrX2FsaWdu
bWVudF9uZXcoMC4wLCAwLjAsIDEuMCwgMS4wKTsKLQotICAgIGd0a19hbGlnbm1lbnRfc2V0X3Bh
ZGRpbmcoR1RLX0FMSUdOTUVOVChlbnRyeUNvbnRhaW5lciksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLCAwLCAwLCAwKTsKLQotICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9Y
KHZib3gpLCBlbnRyeUNvbnRhaW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsIEZB
TFNFLCAwKTsKLQotICAgIHRhYmxlID0gZ3RrX3RhYmxlX25ldygyLCAyLCBGQUxTRSk7Ci0gICAg
Z3RrX3RhYmxlX3NldF9jb2xfc3BhY2luZ3MoR1RLX1RBQkxFICh0YWJsZSksIDEyKTsKLSAgICBn
dGtfdGFibGVfc2V0X3Jvd19zcGFjaW5ncyhHVEtfVEFCTEUgKHRhYmxlKSwgNik7Ci0gICAgZ3Rr
X2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihlbnRyeUNvbnRhaW5lciksIHRhYmxlKTsKLQot
ICAgIGF1dGhEYXRhLT5sb2dpbkVudHJ5ID0gdGFibGVfYWRkX2VudHJ5KHRhYmxlLCAwLCAiVXNl
cm5hbWU6IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dp
biwgTlVMTCk7Ci0gICAgYXV0aERhdGEtPnBhc3N3b3JkRW50cnkgPSB0YWJsZV9hZGRfZW50cnko
dGFibGUsIDEsICJQYXNzd29yZDoiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc3N3b3JkLCBOVUxMKTsKLQotICAgIGd0a19lbnRyeV9zZXRfdmlzaWJp
bGl0eShHVEtfRU5UUlkoYXV0aERhdGEtPnBhc3N3b3JkRW50cnkpLCBGQUxTRSk7Ci0KLSNpZiBV
U0UoR05PTUVLRVlSSU5HKQotICAgIHJlbWVtYmVyQm94ID0gZ3RrX3Zib3hfbmV3IChGQUxTRSwg
Nik7Ci0gICAgZ3RrX2JveF9wYWNrX3N0YXJ0IChHVEtfQk9YICh2Ym94KSwgcmVtZW1iZXJCb3gs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwgRkFMU0UsIDApOwotCi0gICAgY2hlY2tC
dXR0b24gPSBndGtfY2hlY2tfYnV0dG9uX25ld193aXRoX2xhYmVsKCJSZW1lbWJlciBwYXNzd29y
ZCIpOwotICAgIGlmIChsb2dpbiAmJiBwYXNzd29yZCkKLSAgICAgICAgZ3RrX3RvZ2dsZV9idXR0
b25fc2V0X2FjdGl2ZShHVEtfVE9HR0xFX0JVVFRPTihjaGVja0J1dHRvbiksIFRSVUUpOwotICAg
IGd0a19sYWJlbF9zZXRfbGluZV93cmFwKEdUS19MQUJFTChndGtfYmluX2dldF9jaGlsZChHVEtf
QklOKGNoZWNrQnV0dG9uKSkpLCBUUlVFKTsKLSAgICBndGtfYm94X3BhY2tfc3RhcnQgKEdUS19C
T1ggKHJlbWVtYmVyQm94KSwgY2hlY2tCdXR0b24sIEZBTFNFLCBGQUxTRSwgMCk7Ci0gICAgYXV0
aERhdGEtPmNoZWNrQnV0dG9uID0gY2hlY2tCdXR0b247Ci0jZW5kaWYKLQotICAgIGdfc2lnbmFs
X2Nvbm5lY3QoZGlhbG9nLCAicmVzcG9uc2UiLCBHX0NBTExCQUNLKHJlc3BvbnNlX2NhbGxiYWNr
KSwgYXV0aERhdGEpOwotICAgIGd0a193aWRnZXRfc2hvd19hbGwod2lkZ2V0KTsKLX0KLQotI2lm
IFVTRShHTk9NRUtFWVJJTkcpCi1zdGF0aWMgdm9pZCBmaW5kX3Bhc3N3b3JkX2NhbGxiYWNrKEdu
b21lS2V5cmluZ1Jlc3VsdCByZXN1bHQsIEdMaXN0KiBsaXN0LCBXZWJLaXRBdXRoRGF0YSogYXV0
aERhdGEpCi17Ci0gICAgR0xpc3QqIHA7Ci0gICAgY29uc3QgY2hhciogbG9naW4gPSBOVUxMOwot
ICAgIGNvbnN0IGNoYXIqIHBhc3N3b3JkID0gTlVMTDsKLQotICAgIGZvciAocCA9IGxpc3Q7IHA7
IHAgPSBwLT5uZXh0KSB7Ci0gICAgICAgIC8qIEZJWE1FOiBzdXBwb3J0IG11bHRpcGxlIGxvZ2lu
cy9wYXNzd29yZHMgPyAqLwotICAgICAgICBHbm9tZUtleXJpbmdOZXR3b3JrUGFzc3dvcmREYXRh
KiBkYXRhID0gKEdub21lS2V5cmluZ05ldHdvcmtQYXNzd29yZERhdGEqKXAtPmRhdGE7Ci0gICAg
ICAgIGxvZ2luID0gZGF0YS0+dXNlcjsKLSAgICAgICAgcGFzc3dvcmQgPSBkYXRhLT5wYXNzd29y
ZDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgc2hvd19hdXRoX2RpYWxvZyhhdXRoRGF0
YSwgbG9naW4sIHBhc3N3b3JkKTsKLX0KLSNlbmRpZgotCi1zdGF0aWMgdm9pZCBzZXNzaW9uX2F1
dGhlbnRpY2F0ZShTb3VwU2Vzc2lvbiogc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1zZywgU291cEF1
dGgqIGF1dGgsIGdib29sZWFuIHJldHJ5aW5nLCBncG9pbnRlciB1c2VyX2RhdGEpCi17Ci0gICAg
U291cFVSSSogdXJpOwotICAgIFdlYktpdEF1dGhEYXRhKiBhdXRoRGF0YTsKLSAgICBTb3VwU2Vz
c2lvbkZlYXR1cmUqIG1hbmFnZXIgPSAoU291cFNlc3Npb25GZWF0dXJlKil1c2VyX2RhdGE7Ci0K
LSAgICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZShzZXNzaW9uLCBtc2cpOwotICAgIC8qIFdl
IG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBtZXNzYWdlIHN0aWNrcyBhcm91bmQgd2hlbiBwYXVzaW5n
IGl0ICovCi0gICAgZ19vYmplY3RfcmVmKG1zZyk7Ci0KLSAgICB1cmkgPSBzb3VwX21lc3NhZ2Vf
Z2V0X3VyaShtc2cpOwotICAgIGF1dGhEYXRhID0gZ19zbGljZV9uZXcoV2ViS2l0QXV0aERhdGEp
OwotICAgIGF1dGhEYXRhLT5tc2cgPSBtc2c7Ci0gICAgYXV0aERhdGEtPmF1dGggPSBhdXRoOwot
ICAgIGF1dGhEYXRhLT5zZXNzaW9uID0gc2Vzc2lvbjsKLSAgICBhdXRoRGF0YS0+bWFuYWdlciA9
IG1hbmFnZXI7Ci0KLSAgICAvKgotICAgICAqIElmIHdlIGhhdmUgZ25vbWUta2V5cmluZyBsZXQn
cyB0cnkgdG8gZmluZCB0aGUgcGFzc3dvcmQgZmlyc3QgaW4gdGhlIHJpbmcuCi0gICAgICogT3Ro
ZXJ3aXNlIGp1c3Qgc2hvdyB0aGUgZGlhbG9nIHN0cmFpZ2h0IGF3YXkKLSAgICAgKi8KLSNpZiBV
U0UoR05PTUVLRVlSSU5HKQotICAgIGdub21lX2tleXJpbmdfZmluZF9uZXR3b3JrX3Bhc3N3b3Jk
KE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cF9hdXRo
X2dldF9yZWFsbShhdXRoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1cmktPmhvc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmktPnNjaGVtZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VwX2F1dGhfZ2V0X3Nj
aGVtZV9uYW1lKGF1dGgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVyaS0+cG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR25v
bWVLZXlyaW5nT3BlcmF0aW9uR2V0TGlzdENhbGxiYWNrKWZpbmRfcGFzc3dvcmRfY2FsbGJhY2ss
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aERhdGEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0jZWxzZQotICAgIHNo
b3dfYXV0aF9kaWFsb2coYXV0aERhdGEsIE5VTEwsIE5VTEwpOwotI2VuZGlmCi19Ci0KLXN0YXRp
YyB2b2lkIGF0dGFjaChTb3VwU2Vzc2lvbkZlYXR1cmUqIG1hbmFnZXIsIFNvdXBTZXNzaW9uKiBz
ZXNzaW9uKQotewotICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc2Vzc2lvbiwgImF1dGhlbnRpY2F0ZSIs
IEdfQ0FMTEJBQ0soc2Vzc2lvbl9hdXRoZW50aWNhdGUpLCBtYW5hZ2VyKTsKLX0KLQotc3RhdGlj
IHZvaWQgZGV0YWNoKFNvdXBTZXNzaW9uRmVhdHVyZSogbWFuYWdlciwgU291cFNlc3Npb24qIHNl
c3Npb24pCi17Ci0gICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKHNlc3Np
b24sIHNlc3Npb25fYXV0aGVudGljYXRlLCBtYW5hZ2VyKTsKLX0KLQotCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC93ZWJraXQtc291cC1hdXRoLWRpYWxvZy5oIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvd2Via2l0LXNvdXAtYXV0aC1kaWFsb2cuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTBiNjM2Ny4uMDAwMDAwMAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC93ZWJraXQtc291cC1hdXRoLWRpYWxvZy5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBJZ2Fs
aWEgUy5MLiwgQXV0aG9yOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSA8
Z3RrL2d0ay5oPgotCi0jaWZuZGVmIFdFQktJVF9TT1VQX0FVVEhfRElBTE9HX0gKLSNkZWZpbmUg
V0VCS0lUX1NPVVBfQVVUSF9ESUFMT0dfSCAxCi0KLUdfQkVHSU5fREVDTFMKLQotI2RlZmluZSBX
RUJLSVRfVFlQRV9TT1VQX0FVVEhfRElBTE9HICAgICAgICAgICAgKHdlYmtpdF9zb3VwX2F1dGhf
ZGlhbG9nX2dldF90eXBlICgpKQotI2RlZmluZSBXRUJLSVRfU09VUF9BVVRIX0RJQUxPRyhvYmpl
Y3QpICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqZWN0KSwgV0VCS0lU
X1RZUEVfU09VUF9BVVRIX0RJQUxPRywgV2ViS2l0U291cEF1dGhEaWFsb2cpKQotI2RlZmluZSBX
RUJLSVRfU09VUF9BVVRIX0RJQUxPR19DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFT
U19DQVNUICgoa2xhc3MpLCBXRUJLSVRfVFlQRV9TT1VQX0FVVEhfRElBTE9HLCBXZWJLaXRTb3Vw
QXV0aERpYWxvZykpCi0jZGVmaW5lIFdFQktJVF9JU19TT1VQX0FVVEhfRElBTE9HKG9iamVjdCkg
ICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmplY3QpLCBXRUJLSVRfVFlQRV9T
T1VQX0FVVEhfRElBTE9HKSkKLSNkZWZpbmUgV0VCS0lUX0lTX1NPVVBfQVVUSF9ESUFMT0dfQ0xB
U1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGtsYXNzKSwgV0VCS0lUX1RZUEVf
U09VUF9BVVRIX0RJQUxPRykpCi0jZGVmaW5lIFdFQktJVF9TT1VQX0FVVEhfRElBTE9HX0dFVF9D
TEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG9iaiksIFdFQktJVF9UWVBF
X1NPVVBfQVVUSF9ESUFMT0csIFdlYktpdFNvdXBBdXRoRGlhbG9nKSkKLQotdHlwZWRlZiBzdHJ1
Y3QgewotICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOwotfSBXZWJLaXRTb3VwQXV0aERpYWxv
ZzsKLQotdHlwZWRlZiBzdHJ1Y3QgewotICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Ci0K
LSAgICBHdGtXaWRnZXQqICgqY3VycmVudF90b3BsZXZlbCkgKFdlYktpdFNvdXBBdXRoRGlhbG9n
KiBmZWF0dXJlLCBTb3VwTWVzc2FnZSogbWVzc2FnZSk7Ci19IFdlYktpdFNvdXBBdXRoRGlhbG9n
Q2xhc3M7Ci0KLUdUeXBlIHdlYmtpdF9zb3VwX2F1dGhfZGlhbG9nX2dldF90eXBlICh2b2lkKTsK
LQotR19FTkRfREVDTFMKLQotI2VuZGlmIC8qIFdFQktJVF9TT1VQX0FVVEhfRElBTE9HX0ggKi8K
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggNjU4MjNjMS4uZmRhMDQ3OSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAwOS0wMy0wMiAg
WGFuIExvcGV6ICA8eGFuQGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjQyODcKKyAgICAgICAgW0dUS10gTW92ZSBhdXRoIGRpYWxvZyBmZWF0dXJlIHRvIFdlYktp
dC8KKworICAgICAgICBBZGQgV2ViS2l0U291cEF1dGhEaWFsb2cgYW5kIGFkZCBpdCB0byB0aGUg
c2Vzc2lvbiBpbiB3ZWJraXRfaW5pdC4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRl
LmNwcDoKKyAgICAgICAgKGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKToKKyAgICAgICAgKHdlYmtp
dF9pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuYzogQWRkZWQu
CisgICAgICAgICh3ZWJraXRfc291cF9hdXRoX2RpYWxvZ19jbGFzc19pbml0KToKKyAgICAgICAg
KHdlYmtpdF9zb3VwX2F1dGhfZGlhbG9nX2luaXQpOgorICAgICAgICAod2Via2l0X3NvdXBfYXV0
aF9kaWFsb2dfc2Vzc2lvbl9mZWF0dXJlX2luaXQpOgorICAgICAgICAoZnJlZV9hdXRoRGF0YSk6
CisgICAgICAgIChzZXRfcGFzc3dvcmRfY2FsbGJhY2spOgorICAgICAgICAocmVzcG9uc2VfY2Fs
bGJhY2spOgorICAgICAgICAodGFibGVfYWRkX2VudHJ5KToKKyAgICAgICAgKHNob3dfYXV0aF9k
aWFsb2cpOgorICAgICAgICAoZmluZF9wYXNzd29yZF9jYWxsYmFjayk6CisgICAgICAgIChzZXNz
aW9uX2F1dGhlbnRpY2F0ZSk6CisgICAgICAgIChhdHRhY2gpOgorICAgICAgICAqIHdlYmtpdC93
ZWJraXRzb3VwYXV0aGRpYWxvZy5oOiBBZGRlZC4KKwogMjAwOS0wMy0wMSAgSmFuIE1pY2hhZWwg
QWxvbnpvICA8am1hbG9uem9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBIb2xn
ZXIgRnJleXRoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCmluZGV4IGU4MDE5ODEu
LmM0MjY0YzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3Bw
CisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCkBAIC0yMCw4ICsyMCwx
MCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNpbmNsdWRlICJ3ZWJraXRzb3VwYXV0aGRp
YWxvZy5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGll
bnRHdGsuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBA
IC0zMCw2ICszMiw5IEBACiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFzdGVi
b2FyZC5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXJHdGsuaCIKKyNpbmNsdWRlICJSZXNv
dXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCisjaW5jbHVk
ZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6
ZVRocmVhZGluZy5oPgogCiAjaWYgRU5BQkxFKERBVEFCQVNFKQpAQCAtOTYsNiArMTAxLDMxIEBA
IFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlIGNvcmUoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiB0
eXBlKQogCiB9IC8qKiBlbmQgbmFtZXNwYWNlIFdlYktpdCAqLwogCitzdGF0aWMgR3RrV2lkZ2V0
KiBjdXJyZW50VG9wbGV2ZWxDYWxsYmFjayhXZWJLaXRTb3VwQXV0aERpYWxvZyogZmVhdHVyZSwg
U291cE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVyIHVzZXJEYXRhKQoreworICAgIGdwb2ludGVy
IG1lc3NhZ2VEYXRhID0gZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QobWVzc2FnZSksICJyZXNv
dXJjZUhhbmRsZSIpOworICAgIGlmICghbWVzc2FnZURhdGEpCisgICAgICAgIHJldHVybiBOVUxM
OworCisgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFu
ZGxlKj4obWVzc2FnZURhdGEpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gTlVM
TDsKKworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFs
KCk7CisgICAgaWYgKCFkKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIFdlYkNvcmU6OkZy
YW1lKiBmcmFtZSA9IGQtPm1fZnJhbWU7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJu
IE5VTEw7CisKKyAgICBHdGtXaWRnZXQqIHRvcGxldmVsID0gIGd0a193aWRnZXRfZ2V0X3RvcGxl
dmVsKEdUS19XSURHRVQoZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPnBsYXRmb3JtV2luZG93KCkp
KTsKKyAgICBpZiAoR1RLX1dJREdFVF9UT1BMRVZFTCh0b3BsZXZlbCkpCisgICAgICAgIHJldHVy
biB0b3BsZXZlbDsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBOVUxMOworfQorCiB2b2lkIHdl
YmtpdF9pbml0KCkKIHsKICAgICBzdGF0aWMgYm9vbCBpc0luaXRpYWxpemVkID0gZmFsc2U7CkBA
IC0xMjEsNCArMTUxLDEwIEBAIHZvaWQgd2Via2l0X2luaXQoKQogICAgIFBhZ2VHcm91cDo6c2V0
U2hvdWxkVHJhY2tWaXNpdGVkTGlua3ModHJ1ZSk7CiAKICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFs
UGFzdGVib2FyZCgpLT5zZXRIZWxwZXIobmV3IFdlYktpdDo6UGFzdGVib2FyZEhlbHBlckd0aygp
KTsKKworICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gd2Via2l0X2dldF9kZWZhdWx0X3Nlc3Np
b24oKTsKKyAgICBTb3VwU2Vzc2lvbkZlYXR1cmUqIGF1dGhEaWFsb2cgPSBzdGF0aWNfY2FzdDxT
b3VwU2Vzc2lvbkZlYXR1cmUqPihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfU09VUF9BVVRIX0RJ
QUxPRywgTlVMTCkpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoYXV0aERpYWxvZywgImN1cnJlbnQt
dG9wbGV2ZWwiLCBHX0NBTExCQUNLKGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKSwgTlVMTCk7Cisg
ICAgc291cF9zZXNzaW9uX2FkZF9mZWF0dXJlKHNlc3Npb24sIGF1dGhEaWFsb2cpOworICAgIGdf
b2JqZWN0X3VucmVmKGF1dGhEaWFsb2cpOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0c291cGF1dGhkaWFsb2cuYyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNvdXBh
dXRoZGlhbG9nLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM5MDAwYgot
LS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9n
LmMKQEAgLTAsMCArMSwzNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgSWdhbGlhIFMu
TC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUg
PGxpYnNvdXAvc291cC5oPgorI2lmIFVTRShHTk9NRUtFWVJJTkcpCisjaW5jbHVkZSA8Z25vbWUt
a2V5cmluZy5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVk
ZSAid2Via2l0c291cGF1dGhkaWFsb2cuaCIKKworc3RhdGljIHZvaWQgd2Via2l0X3NvdXBfYXV0
aF9kaWFsb2dfc2Vzc2lvbl9mZWF0dXJlX2luaXQoU291cFNlc3Npb25GZWF0dXJlSW50ZXJmYWNl
KiBmZWF0dXJlX2ludGVyZmFjZSwgZ3BvaW50ZXIgaW50ZXJmYWNlX2RhdGEpOworc3RhdGljIHZv
aWQgYXR0YWNoKFNvdXBTZXNzaW9uRmVhdHVyZSogbWFuYWdlciwgU291cFNlc3Npb24qIHNlc3Np
b24pOworc3RhdGljIHZvaWQgZGV0YWNoKFNvdXBTZXNzaW9uRmVhdHVyZSogbWFuYWdlciwgU291
cFNlc3Npb24qIHNlc3Npb24pOworCitlbnVtIHsKKyAgICBDVVJSRU5UX1RPUExFVkVMLAorICAg
IExBU1RfU0lHTkFMCit9OworCitzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7
IDAgfTsKKworR19ERUZJTkVfVFlQRV9XSVRIX0NPREUoV2ViS2l0U291cEF1dGhEaWFsb2csIHdl
YmtpdF9zb3VwX2F1dGhfZGlhbG9nLCBHX1RZUEVfT0JKRUNULAorICAgICAgICAgICAgICAgICAg
ICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFNPVVBfVFlQRV9TRVNTSU9OX0ZFQVRVUkUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Via2l0X3NvdXBf
YXV0aF9kaWFsb2dfc2Vzc2lvbl9mZWF0dXJlX2luaXQpKQorCitzdGF0aWMgdm9pZCB3ZWJraXRf
c291cF9hdXRoX2RpYWxvZ19jbGFzc19pbml0KFdlYktpdFNvdXBBdXRoRGlhbG9nQ2xhc3MqIGts
YXNzKQoreworICAgIEdPYmplY3RDbGFzcyogb2JqZWN0X2NsYXNzID0gR19PQkpFQ1RfQ0xBU1Mo
a2xhc3MpOworCisgICAgc2lnbmFsc1tDVVJSRU5UX1RPUExFVkVMXSA9CisgICAgICBnX3NpZ25h
bF9uZXcoImN1cnJlbnQtdG9wbGV2ZWwiLAorICAgICAgICAgICAgICAgICAgIEdfT0JKRUNUX0NM
QVNTX1RZUEUob2JqZWN0X2NsYXNzKSwKKyAgICAgICAgICAgICAgICAgICBHX1NJR05BTF9SVU5f
TEFTVCwKKyAgICAgICAgICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0U291cEF1dGhE
aWFsb2dDbGFzcywgY3VycmVudF90b3BsZXZlbCksCisgICAgICAgICAgICAgICAgICAgTlVMTCwg
TlVMTCwKKyAgICAgICAgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9PQkpFQ1RfX09CSkVDVCwK
KyAgICAgICAgICAgICAgICAgICBHVEtfVFlQRV9XSURHRVQsIDEsCisgICAgICAgICAgICAgICAg
ICAgU09VUF9UWVBFX01FU1NBR0UpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfc291cF9hdXRo
X2RpYWxvZ19pbml0KFdlYktpdFNvdXBBdXRoRGlhbG9nKiBpbnN0YW5jZSkKK3sKK30KKworc3Rh
dGljIHZvaWQgd2Via2l0X3NvdXBfYXV0aF9kaWFsb2dfc2Vzc2lvbl9mZWF0dXJlX2luaXQoU291
cFNlc3Npb25GZWF0dXJlSW50ZXJmYWNlICpmZWF0dXJlX2ludGVyZmFjZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGlu
dGVyZmFjZV9kYXRhKQoreworICAgIGZlYXR1cmVfaW50ZXJmYWNlLT5hdHRhY2ggPSBhdHRhY2g7
CisgICAgZmVhdHVyZV9pbnRlcmZhY2UtPmRldGFjaCA9IGRldGFjaDsKK30KKwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdEF1dGhEYXRhIHsKKyAgICBTb3VwTWVzc2FnZSogbXNnOworICAgIFNvdXBB
dXRoKiBhdXRoOworICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uOworICAgIFNvdXBTZXNzaW9uRmVh
dHVyZSogbWFuYWdlcjsKKyAgICBHdGtXaWRnZXQqIGxvZ2luRW50cnk7CisgICAgR3RrV2lkZ2V0
KiBwYXNzd29yZEVudHJ5OworI2lmIFVTRShHTk9NRUtFWVJJTkcpCisgICAgR3RrV2lkZ2V0KiBj
aGVja0J1dHRvbjsKKyNlbmRpZgorfSBXZWJLaXRBdXRoRGF0YTsKKworc3RhdGljIHZvaWQgZnJl
ZV9hdXRoRGF0YShXZWJLaXRBdXRoRGF0YSogYXV0aERhdGEpCit7CisgICAgZ19vYmplY3RfdW5y
ZWYoYXV0aERhdGEtPm1zZyk7CisgICAgZ19zbGljZV9mcmVlKFdlYktpdEF1dGhEYXRhLCBhdXRo
RGF0YSk7Cit9CisKKyNpZiBVU0UoR05PTUVLRVlSSU5HKQorc3RhdGljIHZvaWQgc2V0X3Bhc3N3
b3JkX2NhbGxiYWNrKEdub21lS2V5cmluZ1Jlc3VsdCByZXN1bHQsIGd1aW50MzIgdmFsLCBncG9p
bnRlciB1c2VyX2RhdGEpCit7CisgICAgLyogRHVtbXkgY2FsbGJhY2ssIGdub21lX2tleXJpbmdf
c2V0X25ldHdvcmtfcGFzc3dvcmQgZG9lcyBub3QgYWNjZXB0IGEgTlVMTCBvbmUgKi8KK30KKyNl
bmRpZgorCitzdGF0aWMgdm9pZCByZXNwb25zZV9jYWxsYmFjayhHdGtEaWFsb2cqIGRpYWxvZywg
Z2ludCByZXNwb25zZV9pZCwgV2ViS2l0QXV0aERhdGEqIGF1dGhEYXRhKQoreworICAgIGNvbnN0
IGNoYXIqIGxvZ2luOworICAgIGNvbnN0IGNoYXIqIHBhc3N3b3JkOworI2lmIFVTRShHTk9NRUtF
WVJJTkcpCisgICAgU291cFVSSSogdXJpOworICAgIGdib29sZWFuIHN0b3JlUGFzc3dvcmQ7Cisj
ZW5kaWYKKworICAgIHN3aXRjaChyZXNwb25zZV9pZCkgeworICAgIGNhc2UgR1RLX1JFU1BPTlNF
X09LOgorICAgICAgICBsb2dpbiA9IGd0a19lbnRyeV9nZXRfdGV4dChHVEtfRU5UUlkoYXV0aERh
dGEtPmxvZ2luRW50cnkpKTsKKyAgICAgICAgcGFzc3dvcmQgPSBndGtfZW50cnlfZ2V0X3RleHQo
R1RLX0VOVFJZKGF1dGhEYXRhLT5wYXNzd29yZEVudHJ5KSk7CisgICAgICAgIHNvdXBfYXV0aF9h
dXRoZW50aWNhdGUoYXV0aERhdGEtPmF1dGgsIGxvZ2luLCBwYXNzd29yZCk7CisKKyNpZiBVU0Uo
R05PTUVLRVlSSU5HKQorICAgICAgICBzdG9yZVBhc3N3b3JkID0gZ3RrX3RvZ2dsZV9idXR0b25f
Z2V0X2FjdGl2ZShHVEtfVE9HR0xFX0JVVFRPTihhdXRoRGF0YS0+Y2hlY2tCdXR0b24pKTsKKyAg
ICAgICAgaWYgKHN0b3JlUGFzc3dvcmQpIHsKKyAgICAgICAgICAgIHVyaSA9IHNvdXBfbWVzc2Fn
ZV9nZXRfdXJpKGF1dGhEYXRhLT5tc2cpOworICAgICAgICAgICAgZ25vbWVfa2V5cmluZ19zZXRf
bmV0d29ya19wYXNzd29yZChOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2dpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc291cF9hdXRoX2dldF9yZWFsbShhdXRoRGF0YS0+YXV0aCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVyaS0+aG9zdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJpLT5zY2hlbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXBfYXV0aF9nZXRf
c2NoZW1lX25hbWUoYXV0aERhdGEtPmF1dGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1cmktPnBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoR25vbWVLZXlyaW5nT3BlcmF0aW9uR2V0SW50Q2FsbGJh
Y2spc2V0X3Bhc3N3b3JkX2NhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgZGVmYXVsdDoKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc291cF9zZXNzaW9uX3VucGF1c2VfbWVzc2FnZShh
dXRoRGF0YS0+c2Vzc2lvbiwgYXV0aERhdGEtPm1zZyk7CisgICAgZnJlZV9hdXRoRGF0YShhdXRo
RGF0YSk7CisgICAgZ3RrX3dpZGdldF9kZXN0cm95KEdUS19XSURHRVQoZGlhbG9nKSk7Cit9CisK
K3N0YXRpYyBHdGtXaWRnZXQgKgordGFibGVfYWRkX2VudHJ5IChHdGtXaWRnZXQqICB0YWJsZSwK
KyAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgcm93LAorICAgICAgICAgICAgICAgICBjb25z
dCBjaGFyKiBsYWJlbF90ZXh0LAorICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB2YWx1ZSwK
KyAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgdXNlcl9kYXRhKQoreworICAgIEd0a1dpZGdl
dCogZW50cnk7CisgICAgR3RrV2lkZ2V0KiBsYWJlbDsKKworICAgIGxhYmVsID0gZ3RrX2xhYmVs
X25ldyhsYWJlbF90ZXh0KTsKKyAgICBndGtfbWlzY19zZXRfYWxpZ25tZW50KEdUS19NSVNDKGxh
YmVsKSwgMC4wLCAwLjUpOworCisgICAgZW50cnkgPSBndGtfZW50cnlfbmV3KCk7CisgICAgZ3Rr
X2VudHJ5X3NldF9hY3RpdmF0ZXNfZGVmYXVsdChHVEtfRU5UUlkoZW50cnkpLCBUUlVFKTsKKwor
ICAgIGlmICh2YWx1ZSkKKyAgICAgICAgZ3RrX2VudHJ5X3NldF90ZXh0KEdUS19FTlRSWShlbnRy
eSksIHZhbHVlKTsKKworICAgIGd0a190YWJsZV9hdHRhY2goR1RLX1RBQkxFKHRhYmxlKSwgbGFi
ZWwsCisgICAgICAgICAgICAgICAgICAgICAwLCAxLCByb3csIHJvdyArIDEsCisgICAgICAgICAg
ICAgICAgICAgICBHVEtfRklMTCwgR1RLX0VYUEFORCB8IEdUS19GSUxMLCAwLCAwKTsKKyAgICBn
dGtfdGFibGVfYXR0YWNoX2RlZmF1bHRzKEdUS19UQUJMRSh0YWJsZSksIGVudHJ5LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMSwgMiwgcm93LCByb3cgKyAxKTsKKworICAgIHJldHVy
biBlbnRyeTsKK30KKworc3RhdGljIHZvaWQgc2hvd19hdXRoX2RpYWxvZyhXZWJLaXRBdXRoRGF0
YSogYXV0aERhdGEsIGNvbnN0IGNoYXIqIGxvZ2luLCBjb25zdCBjaGFyKiBwYXNzd29yZCkKK3sK
KyAgICBHdGtXaWRnZXQqIHRvcGxldmVsOworICAgIEd0a1dpZGdldCogd2lkZ2V0OworICAgIEd0
a0RpYWxvZyogZGlhbG9nOworICAgIEd0a1dpbmRvdyogd2luZG93OworICAgIEd0a1dpZGdldCog
ZW50cnlDb250YWluZXI7CisgICAgR3RrV2lkZ2V0KiBoYm94OworICAgIEd0a1dpZGdldCogbWFp
blZCb3g7CisgICAgR3RrV2lkZ2V0KiB2Ym94OworICAgIEd0a1dpZGdldCogaWNvbjsKKyAgICBH
dGtXaWRnZXQqIHRhYmxlOworICAgIEd0a1dpZGdldCogbWVzc2FnZUxhYmVsOworICAgIGNoYXIq
IG1lc3NhZ2U7CisgICAgU291cFVSSSogdXJpOworI2lmIFVTRShHTk9NRUtFWVJJTkcpCisgICAg
R3RrV2lkZ2V0KiByZW1lbWJlckJveDsKKyAgICBHdGtXaWRnZXQqIGNoZWNrQnV0dG9uOworI2Vu
ZGlmCisKKyAgICAvKiBGcm9tIEdUSysgZ3RrbW91bnRvcGVyYXRpb24uYywgbW9kaWZpZWQgYW5k
IHNpbXBsaWZpZWQuIExHUEwgMiBsaWNlbnNlICovCisKKyAgICB3aWRnZXQgPSBndGtfZGlhbG9n
X25ldygpOworICAgIHdpbmRvdyA9IEdUS19XSU5ET1cod2lkZ2V0KTsKKyAgICBkaWFsb2cgPSBH
VEtfRElBTE9HKHdpZGdldCk7CisKKyAgICBndGtfZGlhbG9nX2FkZF9idXR0b25zKGRpYWxvZywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TVE9DS19DQU5DRUwsIEdUS19SRVNQT05T
RV9DQU5DRUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfU1RPQ0tfT0ssIEdUS19S
RVNQT05TRV9PSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworCisgICAgLyog
U2V0IHRoZSBkaWFsb2cgdXAgd2l0aCBISUcgcHJvcGVydGllcyAqLworICAgIGd0a19kaWFsb2df
c2V0X2hhc19zZXBhcmF0b3IoZGlhbG9nLCBGQUxTRSk7CisgICAgZ3RrX2NvbnRhaW5lcl9zZXRf
Ym9yZGVyX3dpZHRoKEdUS19DT05UQUlORVIgKGRpYWxvZyksIDUpOworICAgIGd0a19ib3hfc2V0
X3NwYWNpbmcoR1RLX0JPWChkaWFsb2ctPnZib3gpLCAyKTsgLyogMiAqIDUgKyAyID0gMTIgKi8K
KyAgICBndGtfY29udGFpbmVyX3NldF9ib3JkZXJfd2lkdGgoR1RLX0NPTlRBSU5FUiAoZGlhbG9n
LT5hY3Rpb25fYXJlYSksIDUpOworICAgIGd0a19ib3hfc2V0X3NwYWNpbmcoR1RLX0JPWChkaWFs
b2ctPmFjdGlvbl9hcmVhKSwgNik7CisKKyAgICBndGtfd2luZG93X3NldF9yZXNpemFibGUod2lu
ZG93LCBGQUxTRSk7CisgICAgZ3RrX3dpbmRvd19zZXRfdGl0bGUod2luZG93LCAiIik7CisgICAg
Z3RrX3dpbmRvd19zZXRfaWNvbl9uYW1lKHdpbmRvdywgR1RLX1NUT0NLX0RJQUxPR19BVVRIRU5U
SUNBVElPTik7CisKKyAgICBndGtfZGlhbG9nX3NldF9kZWZhdWx0X3Jlc3BvbnNlKGRpYWxvZywg
R1RLX1JFU1BPTlNFX09LKTsKKworICAgIC8qIEdldCB0aGUgY3VycmVudCB0b3BsZXZlbCAqLwor
ICAgIGdfc2lnbmFsX2VtaXQoYXV0aERhdGEtPm1hbmFnZXIsIHNpZ25hbHNbQ1VSUkVOVF9UT1BM
RVZFTF0sIDAsIGF1dGhEYXRhLT5tc2csICZ0b3BsZXZlbCk7CisKKyAgICBpZiAodG9wbGV2ZWwp
CisgICAgICAgIGd0a193aW5kb3dfc2V0X3RyYW5zaWVudF9mb3Iod2luZG93LCBHVEtfV0lORE9X
KHRvcGxldmVsKSk7CisKKyAgICAvKiBCdWlsZCBjb250ZW50cyAqLworICAgIGhib3ggPSBndGtf
aGJveF9uZXcoRkFMU0UsIDEyKTsKKyAgICBndGtfY29udGFpbmVyX3NldF9ib3JkZXJfd2lkdGgo
R1RLX0NPTlRBSU5FUihoYm94KSwgNSk7CisgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1go
ZGlhbG9nLT52Ym94KSwgaGJveCwgVFJVRSwgVFJVRSwgMCk7CisKKyAgICBpY29uID0gZ3RrX2lt
YWdlX25ld19mcm9tX3N0b2NrKEdUS19TVE9DS19ESUFMT0dfQVVUSEVOVElDQVRJT04sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfSUNPTl9TSVpFX0RJQUxPRyk7CisK
KyAgICBndGtfbWlzY19zZXRfYWxpZ25tZW50KEdUS19NSVNDKGljb24pLCAwLjUsIDAuMCk7Cisg
ICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1goaGJveCksIGljb24sIEZBTFNFLCBGQUxTRSwg
MCk7CisKKyAgICBtYWluVkJveCA9IGd0a192Ym94X25ldyhGQUxTRSwgMTgpOworICAgIGd0a19i
b3hfcGFja19zdGFydChHVEtfQk9YKGhib3gpLCBtYWluVkJveCwgVFJVRSwgVFJVRSwgMCk7CisK
KyAgICB1cmkgPSBzb3VwX21lc3NhZ2VfZ2V0X3VyaShhdXRoRGF0YS0+bXNnKTsKKyAgICBtZXNz
YWdlID0gZ19zdHJkdXBfcHJpbnRmKCJBIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcmUgYmVpbmcg
cmVxdWVzdGVkIGJ5IHRoZSBzaXRlICVzIiwgdXJpLT5ob3N0KTsKKyAgICBtZXNzYWdlTGFiZWwg
PSBndGtfbGFiZWxfbmV3KG1lc3NhZ2UpOworICAgIGdfZnJlZShtZXNzYWdlKTsKKyAgICBndGtf
bWlzY19zZXRfYWxpZ25tZW50KEdUS19NSVNDKG1lc3NhZ2VMYWJlbCksIDAuMCwgMC41KTsKKyAg
ICBndGtfbGFiZWxfc2V0X2xpbmVfd3JhcChHVEtfTEFCRUwobWVzc2FnZUxhYmVsKSwgVFJVRSk7
CisgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1gobWFpblZCb3gpLCBHVEtfV0lER0VUKG1l
c3NhZ2VMYWJlbCksCisgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLCBGQUxTRSwgMCk7CisK
KyAgICB2Ym94ID0gZ3RrX3Zib3hfbmV3KEZBTFNFLCA2KTsKKyAgICBndGtfYm94X3BhY2tfc3Rh
cnQoR1RLX0JPWCAobWFpblZCb3gpLCB2Ym94LCBGQUxTRSwgRkFMU0UsIDApOworCisgICAgLyog
VGhlIHRhYmxlIHRoYXQgaG9sZHMgdGhlIGVudHJpZXMgKi8KKyAgICBlbnRyeUNvbnRhaW5lciA9
IGd0a19hbGlnbm1lbnRfbmV3KDAuMCwgMC4wLCAxLjAsIDEuMCk7CisKKyAgICBndGtfYWxpZ25t
ZW50X3NldF9wYWRkaW5nKEdUS19BTElHTk1FTlQoZW50cnlDb250YWluZXIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCk7CisKKyAgICBndGtfYm94X3BhY2tfc3Rh
cnQoR1RLX0JPWCh2Ym94KSwgZW50cnlDb250YWluZXIsCisgICAgICAgICAgICAgICAgICAgICAg
IEZBTFNFLCBGQUxTRSwgMCk7CisKKyAgICB0YWJsZSA9IGd0a190YWJsZV9uZXcoMiwgMiwgRkFM
U0UpOworICAgIGd0a190YWJsZV9zZXRfY29sX3NwYWNpbmdzKEdUS19UQUJMRSAodGFibGUpLCAx
Mik7CisgICAgZ3RrX3RhYmxlX3NldF9yb3dfc3BhY2luZ3MoR1RLX1RBQkxFICh0YWJsZSksIDYp
OworICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZW50cnlDb250YWluZXIpLCB0
YWJsZSk7CisKKyAgICBhdXRoRGF0YS0+bG9naW5FbnRyeSA9IHRhYmxlX2FkZF9lbnRyeSh0YWJs
ZSwgMCwgIlVzZXJuYW1lOiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9naW4sIE5VTEwpOworICAgIGF1dGhEYXRhLT5wYXNzd29yZEVudHJ5ID0gdGFibGVf
YWRkX2VudHJ5KHRhYmxlLCAxLCAiUGFzc3dvcmQ6IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZCwgTlVMTCk7CisKKyAgICBndGtfZW50cnlf
c2V0X3Zpc2liaWxpdHkoR1RLX0VOVFJZKGF1dGhEYXRhLT5wYXNzd29yZEVudHJ5KSwgRkFMU0Up
OworCisjaWYgVVNFKEdOT01FS0VZUklORykKKyAgICByZW1lbWJlckJveCA9IGd0a192Ym94X25l
dyAoRkFMU0UsIDYpOworICAgIGd0a19ib3hfcGFja19zdGFydCAoR1RLX0JPWCAodmJveCksIHJl
bWVtYmVyQm94LAorICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsIEZBTFNFLCAwKTsKKwor
ICAgIGNoZWNrQnV0dG9uID0gZ3RrX2NoZWNrX2J1dHRvbl9uZXdfd2l0aF9sYWJlbCgiUmVtZW1i
ZXIgcGFzc3dvcmQiKTsKKyAgICBpZiAobG9naW4gJiYgcGFzc3dvcmQpCisgICAgICAgIGd0a190
b2dnbGVfYnV0dG9uX3NldF9hY3RpdmUoR1RLX1RPR0dMRV9CVVRUT04oY2hlY2tCdXR0b24pLCBU
UlVFKTsKKyAgICBndGtfbGFiZWxfc2V0X2xpbmVfd3JhcChHVEtfTEFCRUwoZ3RrX2Jpbl9nZXRf
Y2hpbGQoR1RLX0JJTihjaGVja0J1dHRvbikpKSwgVFJVRSk7CisgICAgZ3RrX2JveF9wYWNrX3N0
YXJ0IChHVEtfQk9YIChyZW1lbWJlckJveCksIGNoZWNrQnV0dG9uLCBGQUxTRSwgRkFMU0UsIDAp
OworICAgIGF1dGhEYXRhLT5jaGVja0J1dHRvbiA9IGNoZWNrQnV0dG9uOworI2VuZGlmCisKKyAg
ICBnX3NpZ25hbF9jb25uZWN0KGRpYWxvZywgInJlc3BvbnNlIiwgR19DQUxMQkFDSyhyZXNwb25z
ZV9jYWxsYmFjayksIGF1dGhEYXRhKTsKKyAgICBndGtfd2lkZ2V0X3Nob3dfYWxsKHdpZGdldCk7
Cit9CisKKyNpZiBVU0UoR05PTUVLRVlSSU5HKQorc3RhdGljIHZvaWQgZmluZF9wYXNzd29yZF9j
YWxsYmFjayhHbm9tZUtleXJpbmdSZXN1bHQgcmVzdWx0LCBHTGlzdCogbGlzdCwgV2ViS2l0QXV0
aERhdGEqIGF1dGhEYXRhKQoreworICAgIEdMaXN0KiBwOworICAgIGNvbnN0IGNoYXIqIGxvZ2lu
ID0gTlVMTDsKKyAgICBjb25zdCBjaGFyKiBwYXNzd29yZCA9IE5VTEw7CisKKyAgICBmb3IgKHAg
PSBsaXN0OyBwOyBwID0gcC0+bmV4dCkgeworICAgICAgICAvKiBGSVhNRTogc3VwcG9ydCBtdWx0
aXBsZSBsb2dpbnMvcGFzc3dvcmRzID8gKi8KKyAgICAgICAgR25vbWVLZXlyaW5nTmV0d29ya1Bh
c3N3b3JkRGF0YSogZGF0YSA9IChHbm9tZUtleXJpbmdOZXR3b3JrUGFzc3dvcmREYXRhKilwLT5k
YXRhOworICAgICAgICBsb2dpbiA9IGRhdGEtPnVzZXI7CisgICAgICAgIHBhc3N3b3JkID0gZGF0
YS0+cGFzc3dvcmQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHNob3dfYXV0aF9kaWFs
b2coYXV0aERhdGEsIGxvZ2luLCBwYXNzd29yZCk7Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQg
c2Vzc2lvbl9hdXRoZW50aWNhdGUoU291cFNlc3Npb24qIHNlc3Npb24sIFNvdXBNZXNzYWdlKiBt
c2csIFNvdXBBdXRoKiBhdXRoLCBnYm9vbGVhbiByZXRyeWluZywgZ3BvaW50ZXIgdXNlcl9kYXRh
KQoreworICAgIFNvdXBVUkkqIHVyaTsKKyAgICBXZWJLaXRBdXRoRGF0YSogYXV0aERhdGE7Cisg
ICAgU291cFNlc3Npb25GZWF0dXJlKiBtYW5hZ2VyID0gKFNvdXBTZXNzaW9uRmVhdHVyZSopdXNl
cl9kYXRhOworCisgICAgc291cF9zZXNzaW9uX3BhdXNlX21lc3NhZ2Uoc2Vzc2lvbiwgbXNnKTsK
KyAgICAvKiBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgbWVzc2FnZSBzdGlja3MgYXJvdW5kIHdo
ZW4gcGF1c2luZyBpdCAqLworICAgIGdfb2JqZWN0X3JlZihtc2cpOworCisgICAgdXJpID0gc291
cF9tZXNzYWdlX2dldF91cmkobXNnKTsKKyAgICBhdXRoRGF0YSA9IGdfc2xpY2VfbmV3KFdlYktp
dEF1dGhEYXRhKTsKKyAgICBhdXRoRGF0YS0+bXNnID0gbXNnOworICAgIGF1dGhEYXRhLT5hdXRo
ID0gYXV0aDsKKyAgICBhdXRoRGF0YS0+c2Vzc2lvbiA9IHNlc3Npb247CisgICAgYXV0aERhdGEt
Pm1hbmFnZXIgPSBtYW5hZ2VyOworCisgICAgLyoKKyAgICAgKiBJZiB3ZSBoYXZlIGdub21lLWtl
eXJpbmcgbGV0J3MgdHJ5IHRvIGZpbmQgdGhlIHBhc3N3b3JkIGZpcnN0IGluIHRoZSByaW5nLgor
ICAgICAqIE90aGVyd2lzZSBqdXN0IHNob3cgdGhlIGRpYWxvZyBzdHJhaWdodCBhd2F5CisgICAg
ICovCisjaWYgVVNFKEdOT01FS0VZUklORykKKyAgICBnbm9tZV9rZXlyaW5nX2ZpbmRfbmV0d29y
a19wYXNzd29yZChOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNvdXBfYXV0aF9nZXRfcmVhbG0oYXV0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXJpLT5ob3N0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJp
LT5zY2hlbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cF9h
dXRoX2dldF9zY2hlbWVfbmFtZShhdXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1cmktPnBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKEdub21lS2V5cmluZ09wZXJhdGlvbkdldExpc3RDYWxsYmFjaylmaW5kX3Bhc3N3b3Jk
X2NhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhE
YXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworI2Vs
c2UKKyAgICBzaG93X2F1dGhfZGlhbG9nKGF1dGhEYXRhLCBOVUxMLCBOVUxMKTsKKyNlbmRpZgor
fQorCitzdGF0aWMgdm9pZCBhdHRhY2goU291cFNlc3Npb25GZWF0dXJlKiBtYW5hZ2VyLCBTb3Vw
U2Vzc2lvbiogc2Vzc2lvbikKK3sKKyAgICBnX3NpZ25hbF9jb25uZWN0KHNlc3Npb24sICJhdXRo
ZW50aWNhdGUiLCBHX0NBTExCQUNLKHNlc3Npb25fYXV0aGVudGljYXRlKSwgbWFuYWdlcik7Cit9
CisKK3N0YXRpYyB2b2lkIGRldGFjaChTb3VwU2Vzc2lvbkZlYXR1cmUqIG1hbmFnZXIsIFNvdXBT
ZXNzaW9uKiBzZXNzaW9uKQoreworICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlf
ZnVuYyhzZXNzaW9uLCBzZXNzaW9uX2F1dGhlbnRpY2F0ZSwgbWFuYWdlcik7Cit9CisKKwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuaCBiL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMmMwMzBiNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUg
PGxpYnNvdXAvc291cC5oPgorCisjaWZuZGVmIFdFQktJVF9TT1VQX0FVVEhfRElBTE9HX0gKKyNk
ZWZpbmUgV0VCS0lUX1NPVVBfQVVUSF9ESUFMT0dfSCAxCisKK0dfQkVHSU5fREVDTFMKKworI2Rl
ZmluZSBXRUJLSVRfVFlQRV9TT1VQX0FVVEhfRElBTE9HICAgICAgICAgICAgKHdlYmtpdF9zb3Vw
X2F1dGhfZGlhbG9nX2dldF90eXBlICgpKQorI2RlZmluZSBXRUJLSVRfU09VUF9BVVRIX0RJQUxP
RyhvYmplY3QpICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqZWN0KSwg
V0VCS0lUX1RZUEVfU09VUF9BVVRIX0RJQUxPRywgV2ViS2l0U291cEF1dGhEaWFsb2cpKQorI2Rl
ZmluZSBXRUJLSVRfU09VUF9BVVRIX0RJQUxPR19DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVD
S19DTEFTU19DQVNUICgoa2xhc3MpLCBXRUJLSVRfVFlQRV9TT1VQX0FVVEhfRElBTE9HLCBXZWJL
aXRTb3VwQXV0aERpYWxvZykpCisjZGVmaW5lIFdFQktJVF9JU19TT1VQX0FVVEhfRElBTE9HKG9i
amVjdCkgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmplY3QpLCBXRUJLSVRf
VFlQRV9TT1VQX0FVVEhfRElBTE9HKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1NPVVBfQVVUSF9ESUFM
T0dfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGtsYXNzKSwgV0VCS0lU
X1RZUEVfU09VUF9BVVRIX0RJQUxPRykpCisjZGVmaW5lIFdFQktJVF9TT1VQX0FVVEhfRElBTE9H
X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG9iaiksIFdFQktJ
VF9UWVBFX1NPVVBfQVVUSF9ESUFMT0csIFdlYktpdFNvdXBBdXRoRGlhbG9nKSkKKwordHlwZWRl
ZiBzdHJ1Y3QgeworICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworfSBXZWJLaXRTb3VwQXV0
aERpYWxvZzsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xh
c3M7CisKKyAgICBHdGtXaWRnZXQqICgqY3VycmVudF90b3BsZXZlbCkgKFdlYktpdFNvdXBBdXRo
RGlhbG9nKiBmZWF0dXJlLCBTb3VwTWVzc2FnZSogbWVzc2FnZSk7Cit9IFdlYktpdFNvdXBBdXRo
RGlhbG9nQ2xhc3M7CisKK0dUeXBlIHdlYmtpdF9zb3VwX2F1dGhfZGlhbG9nX2dldF90eXBlICh2
b2lkKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8qIFdFQktJVF9TT1VQX0FVVEhfRElBTE9H
X0ggKi8KLS0gCjEuNi4xLjMKCg==
</data>
<flag name="review"
          id="13760"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>