<?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>126372</bug_id>
          
          <creation_ts>2014-01-01 20:21:55 -0800</creation_ts>
          <short_desc>GraphicsLayer::client() should return a reference.</short_desc>
          <delta_ts>2014-05-07 04:44:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hw1008.kim</cc>
    
    <cc>kling</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>philn</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>963664</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-01-01 20:21:55 -0800</bug_when>
    <thetext>GraphicsLayer::client() is never null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963665</commentid>
    <comment_count>1</comment_count>
      <attachid>220202</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-01-01 20:22:17 -0800</bug_when>
    <thetext>Created attachment 220202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963667</commentid>
    <comment_count>2</comment_count>
      <attachid>220202</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2014-01-01 20:28:10 -0800</bug_when>
    <thetext>Comment on attachment 220202
Patch

Attachment 220202 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/5115981164707840</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963669</commentid>
    <comment_count>3</comment_count>
      <attachid>220202</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2014-01-01 20:35:56 -0800</bug_when>
    <thetext>Comment on attachment 220202
Patch

Attachment 220202 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/5471460843847680</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963671</commentid>
    <comment_count>4</comment_count>
      <attachid>220202</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2014-01-01 20:57:58 -0800</bug_when>
    <thetext>Comment on attachment 220202
Patch

Attachment 220202 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/6461285986205696</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001121</commentid>
    <comment_count>5</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-16 04:55:36 -0700</bug_when>
    <thetext>Hi, Andreas. Is it ok if I upload a patch for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003886</commentid>
    <comment_count>6</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-04-24 17:01:10 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Hi, Andreas. Is it ok if I upload a patch for this?

Hi. Of course, that would be great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006269</commentid>
    <comment_count>7</comment_count>
      <attachid>230730</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-05-02 19:19:28 -0700</bug_when>
    <thetext>Created attachment 230730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006289</commentid>
    <comment_count>8</comment_count>
      <attachid>230737</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-05-02 21:11:09 -0700</bug_when>
    <thetext>Created attachment 230737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007295</commentid>
    <comment_count>9</comment_count>
      <attachid>230737</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-07 04:44:29 -0700</bug_when>
    <thetext>Comment on attachment 230737
Patch

Clearing flags on attachment: 230737

Committed r168423: &lt;http://trac.webkit.org/changeset/168423&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007296</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-07 04:44:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220202</attachid>
            <date>2014-01-01 20:22:17 -0800</date>
            <delta_ts>2014-05-02 19:19:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126372.diff</filename>
            <type>text/plain</type>
            <size>34105</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMWYzMmVlLi42Y2M3YTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUg
QEAKIDIwMTQtMDEtMDEgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIEdyYXBoaWNzTGF5ZXI6OmNsaWVudCgpIHNob3VsZCByZXR1cm4gYSByZWZlcmVuY2UuCisg
ICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMjYzNzI+CisKKyAgICAgICAgR3JhcGhpY3NM
YXllcnMgYWx3YXlzIGhhdmUgYSBHcmFwaGljc0xheWVyQ2xpZW50IGF0dGFjaGVkLCBzbyBtYWtl
CisgICAgICAgIGNsaWVudCgpIGEgcmVmZXJlbmNlIGFuZCByZW1vdmUgc29tZSB1bm5lY2Vzc2Fy
eSBicmFuY2hlcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworMjAx
NC0wMS0wMSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CisKICAgICAgICAgUmVt
b3ZlIENocm9tZUNsaWVudDo6ZnVsbFNjcmVlblJlbmRlcmVyQ2hhbmdlZCgpLgogICAgICAgICA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTI2MzcwPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGI4
OTU4ZTEuLjRkZmM0ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNzQsMTAgKzI3NCwxMCBA
QCBfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXIxN3N1c3BlbmRBbmltYXRpb25zRWQKIF9fWk43
V2ViQ29yZTEzR3JhcGhpY3NMYXllcjE4c2V0QmFja2dyb3VuZENvbG9yRVJLTlNfNUNvbG9yRQog
X19aTjdXZWJDb3JlMTNHcmFwaGljc0xheWVyMjBzZXRSZXBsaWNhdGVkQnlMYXllckVQUzBfCiBf
X1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXI1NG5vdGVEZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNo
YW5nZWRJbmNsdWRpbmdEZXNjZW5kYW50c0V2Ci1fX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXI2
Y3JlYXRlRVBOU18yMEdyYXBoaWNzTGF5ZXJGYWN0b3J5RVBOU18xOUdyYXBoaWNzTGF5ZXJDbGll
bnRFCitfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXI2Y3JlYXRlRVBOU18yMEdyYXBoaWNzTGF5
ZXJGYWN0b3J5RVJOU18xOUdyYXBoaWNzTGF5ZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxM0dyYXBo
aWNzTGF5ZXI3c2V0U2l6ZUVSS05TXzlGbG9hdFNpemVFCiBfX1pON1dlYkNvcmUxM0dyYXBoaWNz
TGF5ZXI4YWRkQ2hpbGRFUFMwXwotX19aTjdXZWJDb3JlMTNHcmFwaGljc0xheWVyQzJFUE5TXzE5
R3JhcGhpY3NMYXllckNsaWVudEUKK19fWk43V2ViQ29yZTEzR3JhcGhpY3NMYXllckMyRVJOU18x
OUdyYXBoaWNzTGF5ZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXJEMkV2CiBf
X1pON1dlYkNvcmUxM0hUVFBIZWFkZXJNYXBDMUV2CiBfX1pON1dlYkNvcmUxM0hUVFBIZWFkZXJN
YXBEMUV2CkBAIC01NjksNyArNTY5LDcgQEAgX19aTks3V2ViQ29yZTE1R3JhcGhpY3NMYXllckNB
NDlwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c1NjYWxlTXVsdGlwbGllckZvck5ld1RpbGUKIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBN3NldE5hbWVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dl
YkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTdzZXRTaXplRVJLTlNfOUZsb2F0U2l6ZUUKIF9fWk43V2Vi
Q29yZTE1R3JhcGhpY3NMYXllckNBOGFkZENoaWxkRVBOU18xM0dyYXBoaWNzTGF5ZXJFCi1fX1pO
N1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQUMyRVBOU18xOUdyYXBoaWNzTGF5ZXJDbGllbnRFCitf
X1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQUMyRVJOU18xOUdyYXBoaWNzTGF5ZXJDbGllbnRF
CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQUQyRXYKIF9fWk43V2ViQ29yZTE1R3JhcGhp
Y3NMYXllckNBMTlzZXRDdXN0b21BcHBlYXJhbmNlRU5TXzEzR3JhcGhpY3NMYXllcjE2Q3VzdG9t
QXBwZWFyYW5jZUUKIF9fWk43V2ViQ29yZTE1SGl0VGVzdExvY2F0aW9uMTJyZWN0Rm9yUG9pbnRF
UktOU18xMUxheW91dFBvaW50RWpqamoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggMmY3ZGU1ZS4uODExYmQ2MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAK
QEAgLTczLDcgKzczLDcgQEAgdm9pZCBLZXlmcmFtZVZhbHVlTGlzdDo6aW5zZXJ0KFBhc3NPd25Q
dHI8Y29uc3QgQW5pbWF0aW9uVmFsdWU+IHZhbHVlKQogICAgIG1fdmFsdWVzLmFwcGVuZCh2YWx1
ZSk7CiB9CiAKLUdyYXBoaWNzTGF5ZXI6OkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVu
dCogY2xpZW50KQorR3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xp
ZW50JiBjbGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX2FuY2hvclBvaW50
KDAuNWYsIDAuNWYsIDApCiAgICAgLCBtX29wYWNpdHkoMSkKQEAgLTEwMCw4ICsxMDAsNyBAQCBH
cmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkK
ICAgICAsIG1fY3VzdG9tQXBwZWFyYW5jZShOb0N1c3RvbUFwcGVhcmFuY2UpCiB7CiAjaWZuZGVm
IE5ERUJVRwotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnZlcmlmeU5vdFBh
aW50aW5nKCk7CisgICAgbV9jbGllbnQudmVyaWZ5Tm90UGFpbnRpbmcoKTsKICNlbmRpZgogfQog
CkBAIC0xMTQsOCArMTEzLDcgQEAgR3JhcGhpY3NMYXllcjo6fkdyYXBoaWNzTGF5ZXIoKQogdm9p
ZCBHcmFwaGljc0xheWVyOjp3aWxsQmVEZXN0cm95ZWQoKQogewogI2lmbmRlZiBOREVCVUcKLSAg
ICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT52ZXJpZnlOb3RQYWludGluZygpOwor
ICAgIG1fY2xpZW50LnZlcmlmeU5vdFBhaW50aW5nKCk7CiAjZW5kaWYKIAogICAgIGlmIChtX3Jl
cGxpY2FMYXllcikKQEAgLTMyNiwxNSArMzI0LDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0
QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKIAogdm9pZCBHcmFwaGljc0xheWVy
OjpwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNv
bnN0IEludFJlY3QmIGNsaXApCiB7Ci0gICAgaWYgKG1fY2xpZW50KSB7Ci0gICAgICAgIEludFNp
emUgb2Zmc2V0ID0gb2Zmc2V0RnJvbVJlbmRlcmVyKCk7Ci0gICAgICAgIGNvbnRleHQudHJhbnNs
YXRlKC1vZmZzZXQpOworICAgIEludFNpemUgb2Zmc2V0ID0gb2Zmc2V0RnJvbVJlbmRlcmVyKCk7
CisgICAgY29udGV4dC50cmFuc2xhdGUoLW9mZnNldCk7CiAKLSAgICAgICAgSW50UmVjdCBjbGlw
UmVjdChjbGlwKTsKLSAgICAgICAgY2xpcFJlY3QubW92ZShvZmZzZXQpOworICAgIEludFJlY3Qg
Y2xpcFJlY3QoY2xpcCk7CisgICAgY2xpcFJlY3QubW92ZShvZmZzZXQpOwogCi0gICAgICAgIG1f
Y2xpZW50LT5wYWludENvbnRlbnRzKHRoaXMsIGNvbnRleHQsIG1fcGFpbnRpbmdQaGFzZSwgY2xp
cFJlY3QpOwotICAgIH0KKyAgICBtX2NsaWVudC5wYWludENvbnRlbnRzKHRoaXMsIGNvbnRleHQs
IG1fcGFpbnRpbmdQaGFzZSwgY2xpcFJlY3QpOwogfQogCiBTdHJpbmcgR3JhcGhpY3NMYXllcjo6
YW5pbWF0aW9uTmFtZUZvclRyYW5zaXRpb24oQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5KQpA
QCAtNTU3LDcgKzU1Myw3IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6cmVzZXRUcmFja2VkUmVwYWlu
dHMoKQogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OmFkZFJlcGFpbnRSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVwYWludFJlY3QpCiB7Ci0gICAgaWYgKG1fY2xpZW50LT5pc1RyYWNraW5nUmVwYWludHMo
KSkgeworICAgIGlmIChtX2NsaWVudC5pc1RyYWNraW5nUmVwYWludHMoKSkgewogICAgICAgICBG
bG9hdFJlY3QgbGFyZ2VzdFJlcGFpbnRSZWN0KEZsb2F0UG9pbnQoKSwgbV9zaXplKTsKICAgICAg
ICAgbGFyZ2VzdFJlcGFpbnRSZWN0LmludGVyc2VjdChyZXBhaW50UmVjdCk7CiAgICAgICAgIFJl
cGFpbnRNYXA6Oml0ZXJhdG9yIHJlcGFpbnRJdCA9IHJlcGFpbnRSZWN0TWFwKCkuZmluZCh0aGlz
KTsKQEAgLTYzMCw3ICs2MjYsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9wZXJ0aWVz
KFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50LCBMYXllclRyZWVBc1RleHRCZQogICAgICAgICB0
cyA8PCAiKHByZXNlcnZlczNEICIgPDwgbV9wcmVzZXJ2ZXMzRCA8PCAiKVxuIjsKICAgICB9CiAK
LSAgICBpZiAobV9kcmF3c0NvbnRlbnQgJiYgbV9jbGllbnQtPnNob3VsZER1bXBQcm9wZXJ0eUZv
ckxheWVyKHRoaXMsICJkcmF3c0NvbnRlbnQiKSkgeworICAgIGlmIChtX2RyYXdzQ29udGVudCAm
JiBtX2NsaWVudC5zaG91bGREdW1wUHJvcGVydHlGb3JMYXllcih0aGlzLCAiZHJhd3NDb250ZW50
IikpIHsKICAgICAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCArIDEpOwogICAgICAgICB0cyA8
PCAiKGRyYXdzQ29udGVudCAiIDw8IG1fZHJhd3NDb250ZW50IDw8ICIpXG4iOwogICAgIH0KQEAg
LTY0NywxNSArNjQzLDEwIEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMoVGV4
dFN0cmVhbSYgdHMsIGludCBpbmRlbnQsIExheWVyVHJlZUFzVGV4dEJlCiAKICAgICBpZiAoYmVo
YXZpb3IgJiBMYXllclRyZWVBc1RleHREZWJ1ZykgewogICAgICAgICB3cml0ZUluZGVudCh0cywg
aW5kZW50ICsgMSk7Ci0gICAgICAgIHRzIDw8ICIoIjsKLSAgICAgICAgaWYgKG1fY2xpZW50KQot
ICAgICAgICAgICAgdHMgPDwgImNsaWVudCAiIDw8IHN0YXRpY19jYXN0PHZvaWQqPihtX2NsaWVu
dCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRzIDw8ICJubyBjbGllbnQiOwotICAgICAg
ICB0cyA8PCAiKVxuIjsKKyAgICAgICAgdHMgPDwgIihjbGllbnQgIiA8PCBzdGF0aWNfY2FzdDx2
b2lkKj4oJm1fY2xpZW50KSA8PCAiKVxuIjsKICAgICB9CiAKLSAgICBpZiAobV9iYWNrZ3JvdW5k
Q29sb3IuaXNWYWxpZCgpICYmIG1fY2xpZW50LT5zaG91bGREdW1wUHJvcGVydHlGb3JMYXllcih0
aGlzLCAiYmFja2dyb3VuZENvbG9yIikpIHsKKyAgICBpZiAobV9iYWNrZ3JvdW5kQ29sb3IuaXNW
YWxpZCgpICYmIG1fY2xpZW50LnNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKHRoaXMsICJiYWNr
Z3JvdW5kQ29sb3IiKSkgewogICAgICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50ICsgMSk7CiAg
ICAgICAgIHRzIDw8ICIoYmFja2dyb3VuZENvbG9yICIgPDwgbV9iYWNrZ3JvdW5kQ29sb3IubmFt
ZUZvclJlbmRlclRyZWVBc1RleHQoKSA8PCAiKVxuIjsKICAgICB9CkBAIC02OTcsNyArNjg4LDcg
QEAgdm9pZCBHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgaW50
IGluZGVudCwgTGF5ZXJUcmVlQXNUZXh0QmUKICAgICAgICAgdHMgPDwgIilcbiI7CiAgICAgfQog
Ci0gICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVJlcGFpbnRSZWN0cyAm
JiByZXBhaW50UmVjdE1hcCgpLmNvbnRhaW5zKHRoaXMpICYmICFyZXBhaW50UmVjdE1hcCgpLmdl
dCh0aGlzKS5pc0VtcHR5KCkgJiYgbV9jbGllbnQtPnNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVy
KHRoaXMsICJyZXBhaW50UmVjdHMiKSkgeworICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFz
VGV4dEluY2x1ZGVSZXBhaW50UmVjdHMgJiYgcmVwYWludFJlY3RNYXAoKS5jb250YWlucyh0aGlz
KSAmJiAhcmVwYWludFJlY3RNYXAoKS5nZXQodGhpcykuaXNFbXB0eSgpICYmIG1fY2xpZW50LnNo
b3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKHRoaXMsICJyZXBhaW50UmVjdHMiKSkgewogICAgICAg
ICB3cml0ZUluZGVudCh0cywgaW5kZW50ICsgMSk7CiAgICAgICAgIHRzIDw8ICIocmVwYWludCBy
ZWN0c1xuIjsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXBhaW50UmVjdE1hcCgp
LmdldCh0aGlzKS5zaXplKCk7ICsraSkgewpAQCAtNzQ5LDcgKzc0MCw3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllcjo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQsIExheWVy
VHJlZUFzVGV4dEJlCiAgICAgICAgIHVuc2lnbmVkIHRvdGFsQ2hpbGRDb3VudCA9IG1fY2hpbGRy
ZW4uc2l6ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBjaGlsZEluZGV4ID0gMDsgY2hpbGRJbmRl
eCA8IG1fY2hpbGRyZW4uc2l6ZSgpOyBjaGlsZEluZGV4KyspIHsKICAgICAgICAgICAgIEdyYXBo
aWNzTGF5ZXIqIGNoaWxkID0gbV9jaGlsZHJlbltjaGlsZEluZGV4XTsKLSAgICAgICAgICAgIGlm
ICghbV9jbGllbnQtPnNob3VsZFNraXBMYXllckluRHVtcChjaGlsZCkpIHsKKyAgICAgICAgICAg
IGlmICghbV9jbGllbnQuc2hvdWxkU2tpcExheWVySW5EdW1wKGNoaWxkKSkgewogICAgICAgICAg
ICAgICAgIGNoaWxkLT5kdW1wTGF5ZXIoY2hpbGRyZW5TdHJlYW0sIGluZGVudCArIDIsIGJlaGF2
aW9yKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCBmZjk1
MDg2Li4wZWI2ZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oCkBAIC0yMjQsNyArMjI0LDcgQEAgcHJvdGVjdGVkOgogY2xhc3MgR3Jh
cGhpY3NMYXllciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR3JhcGhpY3NMYXllcik7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiwgR3JhcGhpY3NM
YXllckNsaWVudCopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4g
Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiwgR3JhcGhpY3NMYXllckNsaWVudCYpOwogICAg
IAogICAgIHR5cGVkZWYgdWludDY0X3QgUGxhdGZvcm1MYXllcklEOwogCkBAIC0yMzIsNyArMjMy
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoKSB7IH0KIAotICAg
IEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9
CisgICAgR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGll
bnQ7IH0KIAogICAgIC8vIExheWVyIG5hbWUuIE9ubHkgdXNlZCB0byBpZGVudGlmeSBsYXllcnMg
aW4gZGVidWcgb3V0cHV0CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9uYW1lOyB9CkBAIC00NDAsOCArNDQwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRBcHBsaWVzUGFnZVNjYWxlKGJvb2wgYXBwbGllc1NjYWxlID0gdHJ1ZSkgeyBtX2FwcGxpZXNQ
YWdlU2NhbGUgPSBhcHBsaWVzU2NhbGU7IH0KICAgICB2aXJ0dWFsIGJvb2wgYXBwbGllc1BhZ2VT
Y2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGllc1BhZ2VTY2FsZTsgfQogCi0gICAgZmxvYXQg
cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+cGFn
ZVNjYWxlRmFjdG9yKCkgOiAxOyB9Ci0gICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25z
dCB7IHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5kZXZpY2VTY2FsZUZhY3RvcigpIDogMTsg
fQorICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50LnBh
Z2VTY2FsZUZhY3RvcigpOyB9CisgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudC5kZXZpY2VTY2FsZUZhY3RvcigpOyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkgeyB9CiAgICAgdm9pZCBub3RlRGV2
aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkSW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKQEAgLTUy
MSwxNCArNTIxLDE0IEBAIHByb3RlY3RlZDoKICAgICBHcmFwaGljc0xheWVyKiByZXBsaWNhdGVk
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3JlcGxpY2F0ZWRMYXllcjsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRSZXBsaWNhdGVkTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpIHsgbV9yZXBsaWNh
dGVkTGF5ZXIgPSBsYXllcjsgfQogCi0gICAgR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xp
ZW50Kik7CisgICAgZXhwbGljaXQgR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50Jik7
CiAKICAgICB2b2lkIGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50LCBMYXll
clRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGR1bXBBZGRpdGlv
bmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50IC8qaW5kZW50Ki8sIExheWVyVHJlZUFzVGV4
dEJlaGF2aW9yKSBjb25zdCB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBnZXREZWJ1Z0JvcmRlcklu
Zm8oQ29sb3ImLCBmbG9hdCYgd2lkdGgpIGNvbnN0OwogCi0gICAgR3JhcGhpY3NMYXllckNsaWVu
dCogbV9jbGllbnQ7CisgICAgR3JhcGhpY3NMYXllckNsaWVudCYgbV9jbGllbnQ7CiAgICAgU3Ry
aW5nIG1fbmFtZTsKICAgICAKICAgICAvLyBPZmZzZXQgZnJvbSB0aGUgb3duaW5nIHJlbmRlcmVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllckZhY3RvcnkuaAppbmRleCA2NDEzZTkzYy4uYTA3M2MzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3RvcnkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oCkBA
IC0zOSw3ICszOSw3IEBAIGNsYXNzIEdyYXBoaWNzTGF5ZXJGYWN0b3J5IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5HcmFwaGljc0xheWVyRmFjdG9yeSgpIHsgfQogCi0gICAgdmlydHVhbCBzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xh
eWVyQ2xpZW50KikgPSAwOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5
ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYpID0gMDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDYxMDRiNWQuLjc2MjBl
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcApAQCAtMjkwLDcgKzI5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzdXBwb3J0c0FjY2VsZXJhdGVkRmlsdGVyQW5pbWF0aW9ucygpCiB9CiAjZW5kaWYKIAotc3Rk
Ojp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGlj
c0xheWVyRmFjdG9yeSogZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQorc3Rk
Ojp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGlj
c0xheWVyRmFjdG9yeSogZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQogewog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBncmFwaGljc0xheWVyOwogICAgIGlm
ICghZmFjdG9yeSkKQEAgLTMzMiw3ICszMzIsNyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXll
cj4gR3JhcGhpY3NMYXllckNBOjpjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIoUGxhdGZvcm1MYXllcgog
I2VuZGlmCiB9CiAKLUdyYXBoaWNzTGF5ZXJDQTo6R3JhcGhpY3NMYXllckNBKEdyYXBoaWNzTGF5
ZXJDbGllbnQqIGNsaWVudCkKK0dyYXBoaWNzTGF5ZXJDQTo6R3JhcGhpY3NMYXllckNBKEdyYXBo
aWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogICAg
ICwgbV9jb250ZW50c0xheWVyUHVycG9zZShOb0NvbnRlbnRzTGF5ZXIpCiAgICAgLCBtX2FsbG93
VGlsZWRMYXllcih0cnVlKQpAQCAtMzQ2LDcgKzM0Niw3IEBAIEdyYXBoaWNzTGF5ZXJDQTo6R3Jh
cGhpY3NMYXllckNBKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKIHZvaWQgR3JhcGhpY3NM
YXllckNBOjppbml0aWFsaXplKCkKIHsKICAgICBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSBs
YXllclR5cGUgPSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVdlYkxheWVyOwotICAgIGlmICht
X2NsaWVudCAmJiBtX2NsaWVudC0+c2hvdWxkVXNlVGlsZWRCYWNraW5nKHRoaXMpKSB7CisgICAg
aWYgKGNsaWVudCgpLnNob3VsZFVzZVRpbGVkQmFja2luZyh0aGlzKSkgewogICAgICAgICBsYXll
clR5cGUgPSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVBhZ2VUaWxlZEJhY2tpbmdMYXllcjsK
ICAgICAgICAgbV9pc1BhZ2VUaWxlZEJhY2tpbmdMYXllciA9IHRydWU7CiAgICAgfQpAQCAtODIw
LDggKzgyMCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpyZW1vdmVBbmltYXRpb24oY29uc3Qg
U3RyaW5nJiBhbmltYXRpb25OYW1lKQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1D
QUxheWVyQW5pbWF0aW9uU3RhcnRlZChDRlRpbWVJbnRlcnZhbCBzdGFydFRpbWUpCiB7Ci0gICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+bm90aWZ5QW5pbWF0aW9uU3RhcnRlZCh0
aGlzLCBzdGFydFRpbWUpOworICAgIGNsaWVudCgpLm5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQodGhp
cywgc3RhcnRUaW1lKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9T
b2xpZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKQEAgLTk2NSw4ICs5NjQsNyBAQCBGbG9hdFBv
aW50IEdyYXBoaWNzTGF5ZXJDQTo6Y29tcHV0ZVBvc2l0aW9uUmVsYXRpdmVUb0Jhc2UoZmxvYXQm
IHBhZ2VTY2FsZSkgY29ucwogICAgIEZsb2F0UG9pbnQgb2Zmc2V0OwogICAgIGZvciAoY29uc3Qg
R3JhcGhpY3NMYXllciogY3VyckxheWVyID0gdGhpczsgY3VyckxheWVyOyBjdXJyTGF5ZXIgPSBj
dXJyTGF5ZXItPnBhcmVudCgpKSB7CiAgICAgICAgIGlmIChjdXJyTGF5ZXItPmFwcGxpZXNQYWdl
U2NhbGUoKSkgewotICAgICAgICAgICAgaWYgKGN1cnJMYXllci0+Y2xpZW50KCkpCi0gICAgICAg
ICAgICAgICAgcGFnZVNjYWxlID0gY3VyckxheWVyLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICAg
ICAgICAgIHBhZ2VTY2FsZSA9IGN1cnJMYXllci0+cGFnZVNjYWxlRmFjdG9yKCk7CiAgICAgICAg
ICAgICByZXR1cm4gb2Zmc2V0OwogICAgICAgICB9CiAKQEAgLTk5NCw4ICs5OTIsOCBAQCB2b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgp
CiAgICAgY29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKGNvbW1pdFN0YXRlLCBwYWdl
U2NhbGVGYWN0b3IsIG9mZnNldCwgbV92aXNpYmxlUmVjdCk7CiAgICAgY29tbWl0TGF5ZXJDaGFu
Z2VzQWZ0ZXJTdWJsYXllcnMoY29tbWl0U3RhdGUpOwogCi0gICAgaWYgKGhhZENoYW5nZXMgJiYg
Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5kaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIodGhp
cyk7CisgICAgaWYgKGhhZENoYW5nZXMpCisgICAgICAgIGNsaWVudCgpLmRpZENvbW1pdENoYW5n
ZXNGb3JMYXllcih0aGlzKTsKIH0KIAogYm9vbCBHcmFwaGljc0xheWVyQ0E6OnJlY3Vyc2l2ZVZp
c2libGVSZWN0Q2hhbmdlUmVxdWlyZXNGbHVzaChjb25zdCBUcmFuc2Zvcm1TdGF0ZSYgc3RhdGUp
IGNvbnN0CkBAIC0xMDgzLDEyICsxMDgxLDExIEBAIEZsb2F0UmVjdCBHcmFwaGljc0xheWVyQ0E6
OmNvbXB1dGVWaXNpYmxlUmVjdChUcmFuc2Zvcm1TdGF0ZSYgc3RhdGUsIENvbXB1dGVWaXNpCiAg
ICAgVHJhbnNmb3JtU3RhdGU6OlRyYW5zZm9ybUFjY3VtdWxhdGlvbiBhY2N1bXVsYXRpb24gPSBw
cmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zv
cm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybTsKIAogICAgIEZsb2F0UG9pbnQgcG9zaXRpb24gPSBt
X3Bvc2l0aW9uOwotICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCktPmN1c3RvbVBv
c2l0aW9uRm9yVmlzaWJsZVJlY3RDb21wdXRhdGlvbih0aGlzLCBwb3NpdGlvbik7CisgICAgY2xp
ZW50KCkuY3VzdG9tUG9zaXRpb25Gb3JWaXNpYmxlUmVjdENvbXB1dGF0aW9uKHRoaXMsIHBvc2l0
aW9uKTsKIAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVyVHJhbnNmb3JtOwogICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IGN1cnJlbnRUcmFuc2Zvcm07Ci0gICAgaWYgKChmbGFncyAmIFJl
c3BlY3RBbmltYXRpbmdUcmFuc2Zvcm1zKSAmJiBjbGllbnQoKSAmJiBjbGllbnQoKS0+Z2V0Q3Vy
cmVudFRyYW5zZm9ybSh0aGlzLCBjdXJyZW50VHJhbnNmb3JtKSkKKyAgICBpZiAoKGZsYWdzICYg
UmVzcGVjdEFuaW1hdGluZ1RyYW5zZm9ybXMpICYmIGNsaWVudCgpLmdldEN1cnJlbnRUcmFuc2Zv
cm0odGhpcywgY3VycmVudFRyYW5zZm9ybSkpCiAgICAgICAgIGxheWVyVHJhbnNmb3JtID0gdGhp
cy0+bGF5ZXJUcmFuc2Zvcm0ocG9zaXRpb24sICZjdXJyZW50VHJhbnNmb3JtKTsKICAgICBlbHNl
CiAgICAgICAgIGxheWVyVHJhbnNmb3JtID0gdGhpcy0+bGF5ZXJUcmFuc2Zvcm0ocG9zaXRpb24p
OwpAQCAtMTIyMSwxMSArMTIxOCwxMSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cmVjdXJzaXZl
Q29tbWl0Q2hhbmdlcyhjb25zdCBDb21taXRTdGF0ZSYgY29tbWl0U3RhdGUsIGNvbgogICAgICAg
ICBjb21taXRMYXllckNoYW5nZXNBZnRlclN1YmxheWVycyhjaGlsZENvbW1pdFN0YXRlKTsKICAg
ICB9CiAKLSAgICBpZiAoYWZmZWN0ZWRCeVRyYW5zZm9ybUFuaW1hdGlvbiAmJiBjbGllbnQoKSAm
JiBtX2xheWVyLT5sYXllclR5cGUoKSA9PSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVk
QmFja2luZ0xheWVyKQotICAgICAgICBjbGllbnQoKS0+bm90aWZ5Rmx1c2hCZWZvcmVEaXNwbGF5
UmVmcmVzaCh0aGlzKTsKKyAgICBpZiAoYWZmZWN0ZWRCeVRyYW5zZm9ybUFuaW1hdGlvbiAmJiBt
X2xheWVyLT5sYXllclR5cGUoKSA9PSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVkQmFj
a2luZ0xheWVyKQorICAgICAgICBjbGllbnQoKS5ub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZy
ZXNoKHRoaXMpOwogCi0gICAgaWYgKGhhZENoYW5nZXMgJiYgY2xpZW50KCkpCi0gICAgICAgIGNs
aWVudCgpLT5kaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIodGhpcyk7CisgICAgaWYgKGhhZENoYW5n
ZXMpCisgICAgICAgIGNsaWVudCgpLmRpZENvbW1pdENoYW5nZXNGb3JMYXllcih0aGlzKTsKIH0K
IAogYm9vbCBHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRl
cihQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtTGF5ZXIpIGNvbnN0CkBAIC0xMjU1LDcgKzEyNTIs
NyBAQCBmbG9hdCBHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXllckRldmljZVNjYWxlRmFj
dG9yKCkgY29uc3QKIAogZmxvYXQgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJDb250
ZW50c1NjYWxlTXVsdGlwbGllckZvck5ld1RpbGVzKFBsYXRmb3JtQ0FMYXllciopIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGNsaWVudCgpID8gY2xpZW50KCktPmNvbnRlbnRzU2NhbGVNdWx0aXBsaWVy
Rm9yTmV3VGlsZXModGhpcykgOiAxOworICAgIHJldHVybiBjbGllbnQoKS5jb250ZW50c1NjYWxl
TXVsdGlwbGllckZvck5ld1RpbGVzKHRoaXMpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
Y29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0
ZSwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvblJlbGF0
aXZlVG9CYXNlLCBjb25zdCBGbG9hdFJlY3QmIG9sZFZpc2libGVSZWN0LCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCogdHJhbnNmb3JtRnJvbVJvb3QpCkBAIC0zMDE4LDggKzMwMTUsNyBAQCB2b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcihib29sIHVzZVRpbGVkTGF5ZXIp
CiAgICAgLy8gbmVlZCB0byB0ZWxsIG5ldyBsYXllciB0byBkcmF3IGl0c2VsZgogICAgIHNldE5l
ZWRzRGlzcGxheSgpOwogICAgIAotICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCkt
PnRpbGVkQmFja2luZ1VzYWdlQ2hhbmdlZCh0aGlzLCBtX3VzaW5nVGlsZWRCYWNraW5nKTsKKyAg
ICBjbGllbnQoKS50aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQodGhpcywgbV91c2luZ1RpbGVkQmFj
a2luZyk7CiB9CiAKIEdyYXBoaWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRh
dGlvbiBHcmFwaGljc0xheWVyQ0E6OmRlZmF1bHRDb250ZW50c09yaWVudGF0aW9uKCkgY29uc3QK
QEAgLTMzNjksOCArMzM2NSw4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpub3RlTGF5ZXJQcm9w
ZXJ0eUNoYW5nZWQoTGF5ZXJDaGFuZ2VGbGFncyBmbGFncywgU2NoZWR1bGVGCiAKICAgICBpZiAo
c2NoZWR1bGVGbHVzaCA9PSBTY2hlZHVsZUZsdXNoKSB7CiAgICAgICAgIGJvb2wgbmVlZHNGbHVz
aCA9ICFoYWRVbmNvbW1pdHRlZENoYW5nZXMgfHwgb2xkQ2FuVGhyb3R0bGVMYXllckZsdXNoICE9
IGNhblRocm90dGxlTGF5ZXJGbHVzaCgpOwotICAgICAgICBpZiAobmVlZHNGbHVzaCAmJiBtX2Ns
aWVudCkKLSAgICAgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOwor
ICAgICAgICBpZiAobmVlZHNGbHVzaCkKKyAgICAgICAgICAgIGNsaWVudCgpLm5vdGlmeUZsdXNo
UmVxdWlyZWQodGhpcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IGI2MmUzYTAuLmU5M2Ix
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICAvLyB0byBrZWVw
IHRoZSBvdmVyYWxsIHRpbGUgY29zdCBsb3cuCiAgICAgc3RhdGljIGNvbnN0IGludCBrVGlsZWRM
YXllclRpbGVTaXplID0gNTEyOwogCi0gICAgR3JhcGhpY3NMYXllckNBKEdyYXBoaWNzTGF5ZXJD
bGllbnQqKTsKKyAgICBleHBsaWNpdCBHcmFwaGljc0xheWVyQ0EoR3JhcGhpY3NMYXllckNsaWVu
dCYpOwogICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJDQSgpOwogCiAgICAgdmlydHVhbCB2b2lk
IGluaXRpYWxpemUoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuY3BwCmluZGV4IGU3NjRmNWMuLjc5NDYyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzUsNyArMzUsNyBAQCBUZXh0dXJlTWFwcGVyTGF5
ZXIqIHRvVGV4dHVyZU1hcHBlckxheWVyKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgIHJldHVy
biBsYXllciA/IHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIobGF5ZXIpLT5sYXllcigpIDog
MDsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNy
ZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSogZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCog
Y2xpZW50KQorc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNy
ZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSogZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCYg
Y2xpZW50KQogewogICAgIGlmICghZmFjdG9yeSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI+KGNsaWVudCk7CkBAIC00Myw3ICs0Myw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBHcmFwaGljc0xheWVyOjpjcmVhdGUo
R3JhcGhpY3NMYXllckZhY3RvcnkqIGZhY3RvCiAgICAgcmV0dXJuIGZhY3RvcnktPmNyZWF0ZUdy
YXBoaWNzTGF5ZXIoY2xpZW50KTsKIH0KIAotR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6Okdy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKK0dy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihHcmFw
aGljc0xheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBHcmFwaGljc0xheWVyKGNsaWVudCkKICAg
ICAsIG1fbGF5ZXIoYWRvcHRQdHIobmV3IFRleHR1cmVNYXBwZXJMYXllcigpKSkKICAgICAsIG1f
Y29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyKDApCkBAIC02MCw5ICs2MCw3IEBAIEdyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihHcmFwaGljc0xheWVy
Q2xpZW50KiBjbGllCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpub3RpZnlDaGFu
Z2UoQ2hhbmdlTWFzayBjaGFuZ2VNYXNrKQogewogICAgIG1fY2hhbmdlTWFzayB8PSBjaGFuZ2VN
YXNrOwotICAgIGlmICghY2xpZW50KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBjbGllbnQoKS0+
bm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKKyAgICBjbGllbnQoKS5ub3RpZnlGbHVzaFJlcXVp
cmVkKHRoaXMpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXROYW1l
KGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTU2MCw3ICs1NTgsNyBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyOjpjb21taXRMYXllckNoYW5nZXMoKQogICAgICAgICBtX2xheWVyLT5z
ZXRBbmltYXRpb25zKG1fYW5pbWF0aW9ucyk7CiAKICAgICBpZiAobV9jaGFuZ2VNYXNrICYgQW5p
bWF0aW9uU3RhcnRlZCkKLSAgICAgICAgY2xpZW50KCktPm5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQo
dGhpcywgbV9hbmltYXRpb25TdGFydFRpbWUpOworICAgICAgICBjbGllbnQoKS5ub3RpZnlBbmlt
YXRpb25TdGFydGVkKHRoaXMsIG1fYW5pbWF0aW9uU3RhcnRUaW1lKTsKIAogICAgIGlmIChtX2No
YW5nZU1hc2sgJiBGaXhlZFRvVmlld3BvckNoYW5nZSkKICAgICAgICAgbV9sYXllci0+c2V0Rml4
ZWRUb1ZpZXdwb3J0KGZpeGVkVG9WaWV3cG9ydCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmgKaW5kZXggMDE1MWQ2NS4uZmVmMTg3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciA6IHB1YmxpYyBHcmFwaGlj
c0xheWVyLCBwdWJsaWMgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI6OkNsaWVudCB7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoR3JhcGhpY3NMYXll
ckNsaWVudCopOworICAgIGV4cGxpY2l0IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKEdyYXBo
aWNzTGF5ZXJDbGllbnQmKTsKICAgICB2aXJ0dWFsIH5HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
cigpOwogCiAgICAgdm9pZCBzZXRTY3JvbGxDbGllbnQoVGV4dHVyZU1hcHBlckxheWVyOjpTY3Jv
bGxpbmdDbGllbnQqIGNsaWVudCkgeyBtX2xheWVyLT5zZXRTY3JvbGxDbGllbnQoY2xpZW50KTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
Y3BwCmluZGV4IDgwYzJkMzguLjUxM2NmMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKQEAgLTE4MCw3ICsxODAsNyBAQCB2b2lk
IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNyZWF0ZVJvb3RMYXllcihjb25zdCBJbnRTaXplJiBz
aXplKQogewogICAgIEFTU0VSVCghbV9yb290TGF5ZXIpOwogICAgIC8vIENyZWF0ZSBhIHJvb3Qg
bGF5ZXIuCi0gICAgbV9yb290TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUodGhpcywgdGhp
cyk7CisgICAgbV9yb290TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUodGhpcywgKnRoaXMp
OwogI2lmbmRlZiBOREVCVUcKICAgICBtX3Jvb3RMYXllci0+c2V0TmFtZSgiQ29tcG9zaXRpbmdD
b29yZGluYXRvciByb290IGxheWVyIik7CiAjZW5kaWYKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lk
IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllciwgRwogICAgIG1fY2xpZW50LT5wYWludExheWVyQ29udGVudHMoZ3Jh
cGhpY3NMYXllciwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CiB9CiAKLXN0ZDo6dW5pcXVl
X3B0cjxHcmFwaGljc0xheWVyPiBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVHcmFwaGlj
c0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxHcmFw
aGljc0xheWVyPiBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKEdy
YXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKIHsKICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIqIGxheWVyID0gbmV3IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjbGllbnQpOwogICAgIGxh
eWVyLT5zZXRDb29yZGluYXRvcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29tcG9zaXRpbmdDb29yZGluYXRvci5oCmluZGV4IGM2Y2VjMzUuLmFiY2JlZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaApAQCAtMTE5
LDcgKzExOSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVVwZGF0ZUF0bGFz
KHVpbnQzMl90IGF0bGFzSUQpIE9WRVJSSURFOwogCiAgICAgLy8gR3JhcGhpY3NMYXllckZhY3Rv
cnkKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFw
aGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNz
TGF5ZXJDbGllbnQmKSBPVkVSUklERTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVJvb3RDb21wb3Np
dGluZ0xheWVySWZOZWVkZWQoKTsKICAgICB2b2lkIGZsdXNoUGVuZGluZ0ltYWdlQmFja2luZ0No
YW5nZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5jcHAKaW5kZXggNzk5NTBlNS4uZmViNjdhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTUxLDgg
KzUxLDggQEAgc3RhdGljIENvb3JkaW5hdGVkTGF5ZXJJRCB0b0Nvb3JkaW5hdGVkTGF5ZXJJRChH
cmFwaGljc0xheWVyKiBsYXllcikKIGJvb2wgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKCkKIHsKICAgICBBU1NFUlQobV9jb29yZGluYXRvcik7Ci0gICAgaWYg
KGNsaWVudCgpICYmICFtX2Nvb3JkaW5hdG9yLT5pc0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzKCkpIHsK
LSAgICAgICAgY2xpZW50KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CisgICAgaWYgKCFt
X2Nvb3JkaW5hdG9yLT5pc0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzKCkpIHsKKyAgICAgICAgY2xpZW50
KCkubm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogICAgIHJldHVybiBmYWxzZTsKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlR2VvbWV0cnkoKQogICAgIHNldFNob3VsZFVwZGF0ZVZp
c2libGVSZWN0KCk7CiB9CiAKLUNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKK0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQm
IGNsaWVudCkKICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogI2lmbmRlZiBOREVCVUcKICAg
ICAsIG1faXNQdXJnaW5nKGZhbHNlKQpAQCAtMTEzMyw3ICsxMTMzLDcgQEAgdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OmNvbXB1dGVUcmFuc2Zvcm1lZFZpc2libGVSZWN0KCkKICAgICBt
X3Nob3VsZFVwZGF0ZVZpc2libGVSZWN0ID0gZmFsc2U7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRy
aXggY3VycmVudFRyYW5zZm9ybSA9IHRyYW5zZm9ybSgpOwogICAgIGlmIChtX21vdmluZ1Zpc2li
bGVSZWN0KQotICAgICAgICBjbGllbnQoKS0+Z2V0Q3VycmVudFRyYW5zZm9ybSh0aGlzLCBjdXJy
ZW50VHJhbnNmb3JtKTsKKyAgICAgICAgY2xpZW50KCkuZ2V0Q3VycmVudFRyYW5zZm9ybSh0aGlz
LCBjdXJyZW50VHJhbnNmb3JtKTsKICAgICBtX2xheWVyVHJhbnNmb3JtLnNldExvY2FsVHJhbnNm
b3JtKGN1cnJlbnRUcmFuc2Zvcm0pOwogCiAgICAgbV9sYXllclRyYW5zZm9ybS5zZXRBbmNob3JQ
b2ludChtX2FkanVzdGVkQW5jaG9yUG9pbnQpOwpAQCAtMTIyNiw3ICsxMjI2LDcgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlc3VtZUFuaW1hdGlvbnMoKQogCiB2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uU3RhcnRlZFRpbWVyRmlyZWQoVGltZXI8Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyPiopCiB7Ci0gICAgY2xpZW50KCktPm5vdGlmeUFuaW1hdGlv
blN0YXJ0ZWQodGhpcywgbV9sYXN0QW5pbWF0aW9uU3RhcnRUaW1lKTsKKyAgICBjbGllbnQoKS5u
b3RpZnlBbmltYXRpb25TdGFydGVkKHRoaXMsIG1fbGFzdEFuaW1hdGlvblN0YXJ0VGltZSk7CiB9
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oCmluZGV4IGRkOWFmMjguLmU5MmNjYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTYxLDcgKzYxLDcgQEAgY2xh
c3MgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIDogcHVibGljIEdyYXBoaWNzTGF5ZXIKICAgICAs
IHB1YmxpYyBDb29yZGluYXRlZEltYWdlQmFja2luZzo6SG9zdAogICAgICwgcHVibGljIENvb3Jk
aW5hdGVkVGlsZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqKTsKKyAgICBleHBsaWNpdCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYpOwogICAgIHZpcnR1YWwgfkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcigpOwogCiAgICAgLy8gUmVpbXBsZW1lbnRhdGlvbnMgZnJvbSBH
cmFwaGljc0xheWVyLmguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCmluZGV4IGE3MWE0YmMuLjE0ZGU3YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNzcsNyArMTc3LDcgQEAg
c3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IFJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRl
R3JhcGhpY3NMYXllcihjb25zdCBTdHIKICAgICBpZiAoUGFnZSogcGFnZSA9IHJlbmRlcmVyKCku
ZnJhbWUoKS5wYWdlKCkpCiAgICAgICAgIGdyYXBoaWNzTGF5ZXJGYWN0b3J5ID0gcGFnZS0+Y2hy
b21lKCkuY2xpZW50KCkuZ3JhcGhpY3NMYXllckZhY3RvcnkoKTsKIAotICAgIHN0ZDo6dW5pcXVl
X3B0cjxHcmFwaGljc0xheWVyPiBncmFwaGljc0xheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRl
KGdyYXBoaWNzTGF5ZXJGYWN0b3J5LCB0aGlzKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhp
Y3NMYXllcj4gZ3JhcGhpY3NMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xh
eWVyRmFjdG9yeSwgKnRoaXMpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIGdyYXBoaWNzTGF5ZXIt
PnNldE5hbWUobmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDdiMTI1ZGEuLmVjYjMyNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNzg3
LDcgKzI3ODcsNyBAQCBHcmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZUxheWVyRm9yVG9wT3ZlcmhhbmdBcmVhKGJvb2wgd2FudHNMYQogICAgIH0KIAogICAgIGlmICgh
bV9sYXllckZvclRvcE92ZXJoYW5nQXJlYSkgewotICAgICAgICBtX2xheWVyRm9yVG9wT3Zlcmhh
bmdBcmVhID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRo
aXMpOworICAgICAgICBtX2xheWVyRm9yVG9wT3ZlcmhhbmdBcmVhID0gR3JhcGhpY3NMYXllcjo6
Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICNpZm5kZWYgTkRFQlVHCiAg
ICAgICAgIG1fbGF5ZXJGb3JUb3BPdmVyaGFuZ0FyZWEtPnNldE5hbWUoInRvcCBvdmVyaGFuZyBh
cmVhIik7CiAjZW5kaWYKQEAgLTI4MTEsNyArMjgxMSw3IEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JCb3R0b21PdmVyaGFuZ0FyZWEoYm9vbCB3
YW50CiAgICAgfQogCiAgICAgaWYgKCFtX2xheWVyRm9yQm90dG9tT3ZlcmhhbmdBcmVhKSB7Ci0g
ICAgICAgIG1fbGF5ZXJGb3JCb3R0b21PdmVyaGFuZ0FyZWEgPSBHcmFwaGljc0xheWVyOjpjcmVh
dGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7CisgICAgICAgIG1fbGF5ZXJGb3JCb3R0
b21PdmVyaGFuZ0FyZWEgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3Rv
cnkoKSwgKnRoaXMpOwogI2lmbmRlZiBOREVCVUcKICAgICAgICAgbV9sYXllckZvckJvdHRvbU92
ZXJoYW5nQXJlYS0+c2V0TmFtZSgiYm90dG9tIG92ZXJoYW5nIGFyZWEiKTsKICNlbmRpZgpAQCAt
Mjg0MSw3ICsyODQxLDcgQEAgR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1
cGRhdGVMYXllckZvckhlYWRlcihib29sIHdhbnRzTGF5ZXIpCiAgICAgfQogCiAgICAgaWYgKCFt
X2xheWVyRm9ySGVhZGVyKSB7Ci0gICAgICAgIG1fbGF5ZXJGb3JIZWFkZXIgPSBHcmFwaGljc0xh
eWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7CisgICAgICAgIG1fbGF5
ZXJGb3JIZWFkZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3Rvcnko
KSwgKnRoaXMpOwogI2lmbmRlZiBOREVCVUcKICAgICAgICAgbV9sYXllckZvckhlYWRlci0+c2V0
TmFtZSgiaGVhZGVyIik7CiAjZW5kaWYKQEAgLTI4ODEsNyArMjg4MSw3IEBAIEdyYXBoaWNzTGF5
ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JGb290ZXIoYm9vbCB3YW50
c0xheWVyKQogICAgIH0KIAogICAgIGlmICghbV9sYXllckZvckZvb3RlcikgewotICAgICAgICBt
X2xheWVyRm9yRm9vdGVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0
b3J5KCksIHRoaXMpOworICAgICAgICBtX2xheWVyRm9yRm9vdGVyID0gR3JhcGhpY3NMYXllcjo6
Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICNpZm5kZWYgTkRFQlVHCiAg
ICAgICAgIG1fbGF5ZXJGb3JGb290ZXItPnNldE5hbWUoImZvb3RlciIpOwogI2VuZGlmCkBAIC0y
OTI2LDcgKzI5MjYsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlT3ZlcmZs
b3dDb250cm9sc0xheWVycygpCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIGlmIChy
ZXF1aXJlc092ZXJoYW5nQXJlYXNMYXllcigpKSB7CiAgICAgICAgIGlmICghbV9sYXllckZvck92
ZXJoYW5nQXJlYXMpIHsKLSAgICAgICAgICAgIG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzID0gR3Jh
cGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgICAg
ICAgICAgbV9sYXllckZvck92ZXJoYW5nQXJlYXMgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3Jh
cGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwogI2lmbmRlZiBOREVCVUcKICAgICAgICAgICAg
IG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLT5zZXROYW1lKCJvdmVyaGFuZyBhcmVhcyIpOwogI2Vu
ZGlmCkBAIC0yOTQ1LDcgKzI5NDUsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpCiAKICAgICBpZiAocmVxdWlyZXNDb250ZW50U2hh
ZG93TGF5ZXIoKSkgewogICAgICAgICBpZiAoIW1fY29udGVudFNoYWRvd0xheWVyKSB7Ci0gICAg
ICAgICAgICBtX2NvbnRlbnRTaGFkb3dMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFw
aGljc0xheWVyRmFjdG9yeSgpLCB0aGlzKTsKKyAgICAgICAgICAgIG1fY29udGVudFNoYWRvd0xh
eWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlz
KTsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBtX2NvbnRlbnRTaGFkb3dMYXllci0+c2V0
TmFtZSgiY29udGVudCBzaGFkb3ciKTsKICNlbmRpZgpAQCAtMjk2Myw3ICsyOTYzLDcgQEAgdm9p
ZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKQog
CiAgICAgaWYgKHJlcXVpcmVzSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKCkpIHsKICAgICAgICAg
aWYgKCFtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcikgewotICAgICAgICAgICAgbV9sYXll
ckZvckhvcml6b250YWxTY3JvbGxiYXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NM
YXllckZhY3RvcnkoKSwgdGhpcyk7CisgICAgICAgICAgICBtX2xheWVyRm9ySG9yaXpvbnRhbFNj
cm9sbGJhciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAq
dGhpcyk7CiAgICAgICAgICAgICBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhci0+c2V0U2hv
d0RlYnVnQm9yZGVyKG1fc2hvd0RlYnVnQm9yZGVycyk7CiAjaWZuZGVmIE5ERUJVRwogICAgICAg
ICAgICAgbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXItPnNldE5hbWUoImhvcml6b250YWwg
c2Nyb2xsYmFyIGNvbnRhaW5lciIpOwpAQCAtMjk4Nyw3ICsyOTg3LDcgQEAgdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKQogCiAgICAgaWYg
KHJlcXVpcmVzVmVydGljYWxTY3JvbGxiYXJMYXllcigpKSB7CiAgICAgICAgIGlmICghbV9sYXll
ckZvclZlcnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAgICAgICBtX2xheWVyRm9yVmVydGljYWxT
Y3JvbGxiYXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwg
dGhpcyk7CisgICAgICAgICAgICBtX2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIgPSBHcmFwaGlj
c0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwogICAgICAgICAg
ICAgbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyLT5zZXRTaG93RGVidWdCb3JkZXIobV9zaG93
RGVidWdCb3JkZXJzKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBtX2xheWVyRm9yVmVy
dGljYWxTY3JvbGxiYXItPnNldE5hbWUoInZlcnRpY2FsIHNjcm9sbGJhciBjb250YWluZXIiKTsK
QEAgLTMwMTAsNyArMzAxMCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVP
dmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCkKIAogICAgIGlmIChyZXF1aXJlc1Njcm9sbENvcm5lckxh
eWVyKCkpIHsKICAgICAgICAgaWYgKCFtX2xheWVyRm9yU2Nyb2xsQ29ybmVyKSB7Ci0gICAgICAg
ICAgICBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgICAgICAgICAgbV9sYXllckZvclNjcm9sbENv
cm5lciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhp
cyk7CiAgICAgICAgICAgICBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyLT5zZXRTaG93RGVidWdCb3Jk
ZXIobV9zaG93RGVidWdCb3JkZXJzKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBtX2xh
eWVyRm9yU2Nyb2xsQ29ybmVyLT5zZXROYW1lKCJzY3JvbGwgY29ybmVyIik7CkBAIC0zMDM1LDcg
KzMwMzUsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZW5zdXJlUm9vdExheWVyKCkK
ICAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9yb290Q29udGVudExheWVyKSB7Ci0gICAg
ICAgIG1fcm9vdENvbnRlbnRMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xh
eWVyRmFjdG9yeSgpLCB0aGlzKTsKKyAgICAgICAgbV9yb290Q29udGVudExheWVyID0gR3JhcGhp
Y3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICNpZm5kZWYg
TkRFQlVHCiAgICAgICAgIG1fcm9vdENvbnRlbnRMYXllci0+c2V0TmFtZSgiY29udGVudCByb290
Iik7CiAjZW5kaWYKQEAgLTMwNjAsMTkgKzMwNjAsMTkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmVuc3VyZVJvb3RMYXllcigpCiAgICAgICAgICAgICBBU1NFUlQoIW1fY2xpcExheWVy
KTsKIAogICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbGF5ZXIgdG8gaG9zdCB0aGUgY2xpcHBpbmcg
bGF5ZXIgYW5kIHRoZSBvdmVyZmxvdyBjb250cm9scyBsYXllcnMuCi0gICAgICAgICAgICBtX292
ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NM
YXllckZhY3RvcnkoKSwgdGhpcyk7CisgICAgICAgICAgICBtX292ZXJmbG93Q29udHJvbHNIb3N0
TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRo
aXMpOwogI2lmbmRlZiBOREVCVUcKICAgICAgICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RM
YXllci0+c2V0TmFtZSgib3ZlcmZsb3cgY29udHJvbHMgaG9zdCIpOwogI2VuZGlmCiAKICAgICAg
ICAgICAgIC8vIENyZWF0ZSBhIGNsaXBwaW5nIGxheWVyIGlmIHRoaXMgaXMgYW4gaWZyYW1lCi0g
ICAgICAgICAgICBtX2NsaXBMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xh
eWVyRmFjdG9yeSgpLCB0aGlzKTsKKyAgICAgICAgICAgIG1fY2xpcExheWVyID0gR3JhcGhpY3NM
YXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICNpZm5kZWYgTkRF
QlVHCiAgICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0TmFtZSgiZnJhbWUgY2xpcHBpbmciKTsK
ICNlbmRpZgogICAgICAgICAgICAgbV9jbGlwTGF5ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7
CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIG1fc2Nyb2xsTGF5ZXIgPSBHcmFwaGljc0xheWVy
OjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7CisgICAgICAgICAgICBtX3Nj
cm9sbExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCks
ICp0aGlzKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBtX3Njcm9sbExheWVyLT5zZXRO
YW1lKCJmcmFtZSBzY3JvbGxpbmciKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgK
aW5kZXggYWE2YzQ2ZC4uNGRjMmNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oCkBAIC0z
Nyw3ICszNyw3IEBAIGNsYXNzIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ7CiAKIGNsYXNzIEdyYXBo
aWNzTGF5ZXJDQVJlbW90ZSBGSU5BTCA6IHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0Eg
ewogcHVibGljOgotICAgIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZShXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ2xpZW50KiBjbGllbnQsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCisgICAg
R3JhcGhpY3NMYXllckNBUmVtb3RlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVu
dCwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCogY29udGV4dCkKICAgICAgICAgOiBHcmFwaGljc0xh
eWVyQ0EoY2xpZW50KQogICAgICAgICAsIG1fY29udGV4dChjb250ZXh0KQogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJU
cmVlQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1v
dGVMYXllclRyZWVDb250ZXh0LmgKaW5kZXggYzkxY2NiNS4uZTFmYWQxMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVM
YXllclRyZWVDb250ZXh0LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIC8vIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5Ci0gICAgdmlydHVhbCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2xpZW50JikgT1ZFUlJJREU7CiAKICAgICB2b2lkIGxheWVyRmx1
c2hUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPFJlbW90ZUxheWVyVHJlZUNvbnRleHQ+Kik7CiAg
ICAgdm9pZCBmbHVzaExheWVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCmluZGV4
IDczODY5NjIuLmU4NmZjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KQEAgLTEw
Miw3ICsxMDIsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OnNjaGVkdWxlTGF5ZXJG
bHVzaCgpCiAgICAgbV9sYXllckZsdXNoVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCi1zdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6Y3JlYXRl
R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCitzdGQ6OnVuaXF1ZV9w
dHI8R3JhcGhpY3NMYXllcj4gUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6Y3JlYXRlR3JhcGhpY3NM
YXllcihHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8R3JhcGhpY3NMYXllckNBUmVtb3RlPihjbGllbnQsIHRoaXMpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggOGFmMjNiZS4uZDQ1NGJjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC0xMjEsNyArMTIxLDcgQEAg
dm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYpCiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6
OmRpZEluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXkpCiB7Ci0gICAg
c3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXJDQVJlbW90ZT4gbGF5ZXIoc3RhdGljX2Nhc3Q8
R3JhcGhpY3NMYXllckNBUmVtb3RlKj4oR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5
ZXJGYWN0b3J5KCksIHRoaXMpLnJlbGVhc2UoKSkpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFw
aGljc0xheWVyQ0FSZW1vdGU+IGxheWVyKHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJDQVJlbW90
ZSo+KEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyku
cmVsZWFzZSgpKSk7CiAjaWZuZGVmIE5ERUJVRwogICAgIGxheWVyLT5zZXROYW1lKCJwYWdlIG92
ZXJsYXkgY29udGVudCIpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5tbQppbmRleCA2YTA3MDlmLi43ZTY1MDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTU5OCw3ICs1OTgsNyBAQCB2b2lkIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRSb290Q29tcG9zaXRpbmdMYXllcihDQUxheWVyICps
YXllcikKIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Y3JlYXRlUGFnZU92
ZXJsYXlMYXllcihQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXkpCiB7Ci0gICAgc3RkOjp1bmlxdWVf
cHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVy
PiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAq
dGhpcyk7CiAjaWZuZGVmIE5ERUJVRwogICAgIGxheWVyLT5zZXROYW1lKCJwYWdlIG92ZXJsYXkg
Y29udGVudCIpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230730</attachid>
            <date>2014-05-02 19:19:28 -0700</date>
            <delta_ts>2014-05-02 21:10:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126372-20140503111904.patch</filename>
            <type>text/plain</type>
            <size>46179</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZlMjc0MTlkODkzYTc2
ODIxMTA0YzcxZDNmOTIyNzVmNjNhM2U1ZC4uYTNkYWQ1NTQ5MGM2ZGZkMDJiZWE3Y2E0YzNlODQy
MjM5MGM5OGIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE0LTA1LTAyICBIeW93
b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBHcmFwaGljc0xheWVy
OjpjbGllbnQoKSBzaG91bGQgcmV0dXJuIGEgcmVmZXJlbmNlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MzcyCisKKyAgICAgICAgR3JhcGhpY3NM
YXllcnMgYWx3YXlzIGhhdmUgYSBHcmFwaGljc0xheWVyQ2xpZW50IGF0dGFjaGVkLAorICAgICAg
ICBzbyBtYWtlIGNsaWVudCgpIGEgcmVmZXJlbmNlIGFuZCByZW1vdmUgc29tZSB1bm5lY2Vzc2Fy
eSBicmFuY2hlcy4KKyAgICAgICAgVGhlIGF1dGhvciBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgbWFj
IHBvcnQgaXMgQW5kcmVhcyBLbGluZyA8YWtsaW5nQGFwcGxlLmNvbT4uCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllcjo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnBhaW50R3JhcGhpY3NMYXllckNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OmFkZFJlcGFpbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmR1bXBD
aGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGll
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Y2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyOjpkZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllckZhY3RvcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6R3JhcGhpY3NMYXllckNB
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6aW5pdGlhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXllckFuaW1hdGlvblN0
YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjb21wdXRlUG9zaXRp
b25SZWxhdGl2ZVRvQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNBOjpjb21wdXRlVmlzaWJsZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyQ29udGVudHNTY2FsZU11bHRpcGxp
ZXJGb3JOZXdUaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBsYXRm
b3JtQ0FMYXllclNob3VsZEFnZ3Jlc3NpdmVseVJldGFpblRpbGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyU2hvdWxkVGVtcG9yYXJpbHlSZXRh
aW5UaWxlQ29ob3J0cyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZUNvbnRlbnRzT3BhcXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBk
YXRlQ29udGVudHNTY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnN3
YXBGcm9tT3JUb1RpbGVkTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNB
Ojpub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXI6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpub3RpZnlDaGFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmNvbW1pdExheWVyQ2hhbmdlcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
bXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdD
b29yZGluYXRvcjo6Y3JlYXRlUm9vdExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjb21wdXRlVHJhbnNmb3JtZWRWaXNpYmxl
UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFuaW1h
dGlvblN0YXJ0ZWRUaW1lckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjp1cGRhdGVMYXllckZvclRvcE92ZXJoYW5nQXJlYSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUxheWVyRm9yQm90dG9tT3ZlcmhhbmdB
cmVhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5
ZXJGb3JIZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1
cGRhdGVMYXllckZvckZvb3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjplbnN1cmVSb290TGF5ZXIpOgorCiAyMDE0LTA1LTAyICBa
YWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29kZUNsZWFudXA6IFJl
bW92ZSAqTWFpbnRhaW5zUGl4ZWxBbGlnbm1lbnQgZnJvbSBHcmFwaGljc0xheWVyKi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBiYTIzNGQyYmIxNWQ0ODAxY2QyZjk5ODVlNjg3YThkNmU2OGQ0YjNhLi4xZWUxOWI3
YTM0MWVkZGQ4NzdmNjBlZjliYjg4OTJhNGYwNzc2NDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjggQEAKKzIwMTQtMDUtMDIgIEh5b3dvbiBLaW0gIDxodzEwMDgua2ltQHNhbXN1bmcuY29tPgor
CisgICAgICAgIEdyYXBoaWNzTGF5ZXI6OmNsaWVudCgpIHNob3VsZCByZXR1cm4gYSByZWZlcmVu
Y2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYz
NzIKKworICAgICAgICBHcmFwaGljc0xheWVycyBhbHdheXMgaGF2ZSBhIEdyYXBoaWNzTGF5ZXJD
bGllbnQgYXR0YWNoZWQsCisgICAgICAgIHNvIG1ha2UgY2xpZW50KCkgYSByZWZlcmVuY2UgYW5k
IHJlbW92ZSBzb21lIHVubmVjZXNzYXJ5IGJyYW5jaGVzLgorICAgICAgICBUaGUgYXV0aG9yIG9m
IHRoZSBjaGFuZ2VzIGluIHRoZSBtYWMgcG9ydCBpcyBBbmRyZWFzIEtsaW5nIDxha2xpbmdAYXBw
bGUuY29tPi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmluaXRpYWxpemUpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdEd0azo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZUhvc3RHdGs6OmNyZWF0ZVBhZ2VPdmVybGF5TGF5ZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVDb250ZXh0OjpjcmVhdGVHcmFwaGljc0xh
eWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWE6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKToKKwogMjAxNC0wNS0wMiAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHVu
dXNlZCBXS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGM1
ODRmNjJhZGRkNmE1MzY3NGI4YTJkZmVlYTk1NjNhZWYzZTEzZDcuLjc5YmU3NjE2ODQ4Nzk0NWI1
MDA4YWIzYjlkZTMzYzc1NjZiMGQ0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yODIsMTAg
KzI4MiwxMCBAQCBfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXIxN3N1c3BlbmRBbmltYXRpb25z
RWQKIF9fWk43V2ViQ29yZTEzR3JhcGhpY3NMYXllcjE4c2V0QmFja2dyb3VuZENvbG9yRVJLTlNf
NUNvbG9yRQogX19aTjdXZWJDb3JlMTNHcmFwaGljc0xheWVyMjBzZXRSZXBsaWNhdGVkQnlMYXll
ckVQUzBfCiBfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXI1NG5vdGVEZXZpY2VPclBhZ2VTY2Fs
ZUZhY3RvckNoYW5nZWRJbmNsdWRpbmdEZXNjZW5kYW50c0V2Ci1fX1pON1dlYkNvcmUxM0dyYXBo
aWNzTGF5ZXI2Y3JlYXRlRVBOU18yMEdyYXBoaWNzTGF5ZXJGYWN0b3J5RVBOU18xOUdyYXBoaWNz
TGF5ZXJDbGllbnRFCitfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXI2Y3JlYXRlRVBOU18yMEdy
YXBoaWNzTGF5ZXJGYWN0b3J5RVJOU18xOUdyYXBoaWNzTGF5ZXJDbGllbnRFCiBfX1pON1dlYkNv
cmUxM0dyYXBoaWNzTGF5ZXI3c2V0U2l6ZUVSS05TXzlGbG9hdFNpemVFCiBfX1pON1dlYkNvcmUx
M0dyYXBoaWNzTGF5ZXI4YWRkQ2hpbGRFUFMwXwotX19aTjdXZWJDb3JlMTNHcmFwaGljc0xheWVy
QzJFUE5TXzE5R3JhcGhpY3NMYXllckNsaWVudEUKK19fWk43V2ViQ29yZTEzR3JhcGhpY3NMYXll
ckMyRVJOU18xOUdyYXBoaWNzTGF5ZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5
ZXJEMkV2CiBfX1pON1dlYkNvcmUxM0hUVFBIZWFkZXJNYXBDMUV2CiBfX1pON1dlYkNvcmUxM0hU
VFBIZWFkZXJNYXBEMUV2CkBAIC01ODUsNyArNTg1LDcgQEAgX19aTjdXZWJDb3JlMTVHcmFwaGlj
c0xheWVyQ0E0MHBsYXRmb3JtQ0FMYXllclNldE5lZWRzVG9SZXZhbGlkYXRlVGlsZXNFdgogX19a
TjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0E3c2V0TmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBN3NldFNpemVFUktOU185RmxvYXRTaXplRQogX19aTjdX
ZWJDb3JlMTVHcmFwaGljc0xheWVyQ0E4YWRkQ2hpbGRFUE5TXzEzR3JhcGhpY3NMYXllckUKLV9f
Wk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBQzJFUE5TXzE5R3JhcGhpY3NMYXllckNsaWVudEUK
K19fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBQzJFUk5TXzE5R3JhcGhpY3NMYXllckNsaWVu
dEUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBRDJFdgogX19aTjdXZWJDb3JlMTVIaXRU
ZXN0TG9jYXRpb24xMnJlY3RGb3JQb2ludEVSS05TXzExTGF5b3V0UG9pbnRFampqagogX19aTjdX
ZWJDb3JlMTVIaXRUZXN0TG9jYXRpb25DMUVSS05TXzEwRmxvYXRQb2ludEUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggN2Mw
N2Q0YzJmYmFmNjZmOThlN2I2NzMxYmJiOGY1NDNiNDk4YWQ2NS4uODY5YWUxNDU3ZjJhZDEyMDMy
Zjg3ZTgxYTE4Njc4MWNjZjZhNWQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBLZXlm
cmFtZVZhbHVlTGlzdDo6aW5zZXJ0KFBhc3NPd25QdHI8Y29uc3QgQW5pbWF0aW9uVmFsdWU+IHZh
bHVlKQogICAgIG1fdmFsdWVzLmFwcGVuZCh2YWx1ZSk7CiB9CiAKLUdyYXBoaWNzTGF5ZXI6Okdy
YXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQorR3JhcGhpY3NMYXllcjo6
R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBtX2NsaWVu
dChjbGllbnQpCiAgICAgLCBtX2FuY2hvclBvaW50KDAuNWYsIDAuNWYsIDApCiAgICAgLCBtX29w
YWNpdHkoMSkKQEAgLTEwMSw4ICsxMDEsNyBAQCBHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVy
KEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1fY3VzdG9tQmVoYXZpb3IoTm9D
dXN0b21CZWhhdmlvcikKIHsKICNpZm5kZWYgTkRFQlVHCi0gICAgaWYgKG1fY2xpZW50KQotICAg
ICAgICBtX2NsaWVudC0+dmVyaWZ5Tm90UGFpbnRpbmcoKTsKKyAgICBtX2NsaWVudC52ZXJpZnlO
b3RQYWludGluZygpOwogI2VuZGlmCiB9CiAKQEAgLTExNSw4ICsxMTQsNyBAQCBHcmFwaGljc0xh
eWVyOjp+R3JhcGhpY3NMYXllcigpCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OndpbGxCZURlc3Ryb3ll
ZCgpCiB7CiAjaWZuZGVmIE5ERUJVRwotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGll
bnQtPnZlcmlmeU5vdFBhaW50aW5nKCk7CisgICAgbV9jbGllbnQudmVyaWZ5Tm90UGFpbnRpbmco
KTsKICNlbmRpZgogICAgIGlmIChtX3JlcGxpY2FMYXllcikKICAgICAgICAgbV9yZXBsaWNhTGF5
ZXItPnNldFJlcGxpY2F0ZWRMYXllcigwKTsKQEAgLTMyNiwxNSArMzI0LDEzIEBAIHZvaWQgR3Jh
cGhpY3NMYXllcjo6c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKIAogdm9p
ZCBHcmFwaGljc0xheWVyOjpwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgY2xpcCkKIHsKLSAgICBpZiAobV9jbGllbnQp
IHsKLSAgICAgICAgRmxvYXRTaXplIG9mZnNldCA9IG9mZnNldEZyb21SZW5kZXJlcigpOwotICAg
ICAgICBjb250ZXh0LnRyYW5zbGF0ZSgtb2Zmc2V0KTsKKyAgICBGbG9hdFNpemUgb2Zmc2V0ID0g
b2Zmc2V0RnJvbVJlbmRlcmVyKCk7CisgICAgY29udGV4dC50cmFuc2xhdGUoLW9mZnNldCk7CiAK
LSAgICAgICAgRmxvYXRSZWN0IGNsaXBSZWN0KGNsaXApOwotICAgICAgICBjbGlwUmVjdC5tb3Zl
KG9mZnNldCk7CisgICAgRmxvYXRSZWN0IGNsaXBSZWN0KGNsaXApOworICAgIGNsaXBSZWN0Lm1v
dmUob2Zmc2V0KTsKIAotICAgICAgICBtX2NsaWVudC0+cGFpbnRDb250ZW50cyh0aGlzLCBjb250
ZXh0LCBtX3BhaW50aW5nUGhhc2UsIGNsaXBSZWN0KTsKLSAgICB9CisgICAgbV9jbGllbnQucGFp
bnRDb250ZW50cyh0aGlzLCBjb250ZXh0LCBtX3BhaW50aW5nUGhhc2UsIGNsaXBSZWN0KTsKIH0K
IAogU3RyaW5nIEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1h
dGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKQEAgLTU1Nyw3ICs1NTMsNyBAQCB2b2lkIEdyYXBoaWNz
TGF5ZXI6OnJlc2V0VHJhY2tlZFJlcGFpbnRzKCkKIAogdm9pZCBHcmFwaGljc0xheWVyOjphZGRS
ZXBhaW50UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0KQogewotICAgIGlmIChtX2Ns
aWVudC0+aXNUcmFja2luZ1JlcGFpbnRzKCkpIHsKKyAgICBpZiAobV9jbGllbnQuaXNUcmFja2lu
Z1JlcGFpbnRzKCkpIHsKICAgICAgICAgRmxvYXRSZWN0IGxhcmdlc3RSZXBhaW50UmVjdChGbG9h
dFBvaW50KCksIG1fc2l6ZSk7CiAgICAgICAgIGxhcmdlc3RSZXBhaW50UmVjdC5pbnRlcnNlY3Qo
cmVwYWludFJlY3QpOwogICAgICAgICBSZXBhaW50TWFwOjppdGVyYXRvciByZXBhaW50SXQgPSBy
ZXBhaW50UmVjdE1hcCgpLmZpbmQodGhpcyk7CkBAIC01OTIsNyArNTg4LDcgQEAgc3RhdGljIHZv
aWQgZHVtcENoaWxkcmVuKFRleHRTdHJlYW0mIHRzLCBjb25zdCBWZWN0b3I8R3JhcGhpY3NMYXll
cio+JiBjaGlsZHJlbiwKIHsKICAgICB0b3RhbENoaWxkQ291bnQgKz0gY2hpbGRyZW4uc2l6ZSgp
OwogICAgIGZvciAoYXV0byogY2hpbGQgOiBjaGlsZHJlbikgewotICAgICAgICBpZiAoIWNoaWxk
LT5jbGllbnQoKS0+c2hvdWxkU2tpcExheWVySW5EdW1wKGNoaWxkKSkgeworICAgICAgICBpZiAo
IWNoaWxkLT5jbGllbnQoKS5zaG91bGRTa2lwTGF5ZXJJbkR1bXAoY2hpbGQpKSB7CiAgICAgICAg
ICAgICBjaGlsZC0+ZHVtcExheWVyKHRzLCBpbmRlbnQgKyAyLCBiZWhhdmlvcik7CiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNjUxLDcgKzY0Nyw3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllcjo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQsIExheWVy
VHJlZUFzVGV4dEJlCiAgICAgICAgIHRzIDw8ICIocHJlc2VydmVzM0QgIiA8PCBtX3ByZXNlcnZl
czNEIDw8ICIpXG4iOwogICAgIH0KIAotICAgIGlmIChtX2RyYXdzQ29udGVudCAmJiBtX2NsaWVu
dC0+c2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIodGhpcywgImRyYXdzQ29udGVudCIpKSB7Cisg
ICAgaWYgKG1fZHJhd3NDb250ZW50ICYmIG1fY2xpZW50LnNob3VsZER1bXBQcm9wZXJ0eUZvckxh
eWVyKHRoaXMsICJkcmF3c0NvbnRlbnQiKSkgewogICAgICAgICB3cml0ZUluZGVudCh0cywgaW5k
ZW50ICsgMSk7CiAgICAgICAgIHRzIDw8ICIoZHJhd3NDb250ZW50ICIgPDwgbV9kcmF3c0NvbnRl
bnQgPDwgIilcbiI7CiAgICAgfQpAQCAtNjY4LDE1ICs2NjQsMTAgQEAgdm9pZCBHcmFwaGljc0xh
eWVyOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgaW50IGluZGVudCwgTGF5ZXJUcmVl
QXNUZXh0QmUKIAogICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKSB7CiAg
ICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQgKyAxKTsKLSAgICAgICAgdHMgPDwgIigiOwot
ICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICB0cyA8PCAiY2xpZW50ICIgPDwgc3Rh
dGljX2Nhc3Q8dm9pZCo+KG1fY2xpZW50KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdHMg
PDwgIm5vIGNsaWVudCI7Ci0gICAgICAgIHRzIDw8ICIpXG4iOworICAgICAgICB0cyA8PCAiKGNs
aWVudCAiIDw8IHN0YXRpY19jYXN0PHZvaWQqPigmbV9jbGllbnQpIDw8ICIpXG4iOwogICAgIH0K
IAotICAgIGlmIChtX2JhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgbV9jbGllbnQtPnNob3Vs
ZER1bXBQcm9wZXJ0eUZvckxheWVyKHRoaXMsICJiYWNrZ3JvdW5kQ29sb3IiKSkgeworICAgIGlm
IChtX2JhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgbV9jbGllbnQuc2hvdWxkRHVtcFByb3Bl
cnR5Rm9yTGF5ZXIodGhpcywgImJhY2tncm91bmRDb2xvciIpKSB7CiAgICAgICAgIHdyaXRlSW5k
ZW50KHRzLCBpbmRlbnQgKyAxKTsKICAgICAgICAgdHMgPDwgIihiYWNrZ3JvdW5kQ29sb3IgIiA8
PCBtX2JhY2tncm91bmRDb2xvci5uYW1lRm9yUmVuZGVyVHJlZUFzVGV4dCgpIDw8ICIpXG4iOwog
ICAgIH0KQEAgLTcxOCw3ICs3MDksNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9wZXJ0
aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50LCBMYXllclRyZWVBc1RleHRCZQogICAgICAg
ICB0cyA8PCAiKVxuIjsKICAgICB9CiAKLSAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1Rl
eHRJbmNsdWRlUmVwYWludFJlY3RzICYmIHJlcGFpbnRSZWN0TWFwKCkuY29udGFpbnModGhpcykg
JiYgIXJlcGFpbnRSZWN0TWFwKCkuZ2V0KHRoaXMpLmlzRW1wdHkoKSAmJiBtX2NsaWVudC0+c2hv
dWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIodGhpcywgInJlcGFpbnRSZWN0cyIpKSB7CisgICAgaWYg
KGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVJlcGFpbnRSZWN0cyAmJiByZXBhaW50
UmVjdE1hcCgpLmNvbnRhaW5zKHRoaXMpICYmICFyZXBhaW50UmVjdE1hcCgpLmdldCh0aGlzKS5p
c0VtcHR5KCkgJiYgbV9jbGllbnQuc2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIodGhpcywgInJl
cGFpbnRSZWN0cyIpKSB7CiAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQgKyAxKTsKICAg
ICAgICAgdHMgPDwgIihyZXBhaW50IHJlY3RzXG4iOwogICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHJlcGFpbnRSZWN0TWFwKCkuZ2V0KHRoaXMpLnNpemUoKTsgKytpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggMDM1
N2YyZmIyZDQwN2I5ODdiMTVjZWFjMzJlZGM0NGJhNjlhMGI0My4uMzY3N2IzMjU2ZjE2YzNkMGEz
YWRkNmY4YWI2NjlkOTBiZDM2ZjM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtMjI2LDcgKzIyNiw3IEBAIHByb3RlY3RlZDoK
IGNsYXNzIEdyYXBoaWNzTGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdyYXBoaWNz
TGF5ZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSos
IEdyYXBoaWNzTGF5ZXJDbGllbnQqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyYXBo
aWNzTGF5ZXI+IGNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSosIEdyYXBoaWNzTGF5ZXJDbGll
bnQmKTsKICAgICAKICAgICB2aXJ0dWFsIH5HcmFwaGljc0xheWVyKCk7CiAKQEAgLTIzNSw3ICsy
MzUsNyBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiB1aW50NjRfdCBQbGF0Zm9ybUxheWVySUQ7CiAg
ICAgdmlydHVhbCBQbGF0Zm9ybUxheWVySUQgcHJpbWFyeUxheWVySUQoKSBjb25zdCB7IHJldHVy
biAwOyB9CiAKLSAgICBHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX2NsaWVudDsgfQorICAgIEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICAvLyBMYXllciBuYW1lLiBPbmx5IHVzZWQgdG8gaWRl
bnRpZnkgbGF5ZXJzIGluIGRlYnVnIG91dHB1dAogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbmFtZTsgfQpAQCAtNDYxLDggKzQ2MSw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0QXBwbGllc1BhZ2VTY2FsZShib29sIGFwcGxpZXNTY2FsZSA9IHRydWUp
IHsgbV9hcHBsaWVzUGFnZVNjYWxlID0gYXBwbGllc1NjYWxlOyB9CiAgICAgdmlydHVhbCBib29s
IGFwcGxpZXNQYWdlU2NhbGUoKSBjb25zdCB7IHJldHVybiBtX2FwcGxpZXNQYWdlU2NhbGU7IH0K
IAotICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50ID8g
bV9jbGllbnQtPnBhZ2VTY2FsZUZhY3RvcigpIDogMTsgfQotICAgIGZsb2F0IGRldmljZVNjYWxl
RmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+ZGV2aWNlU2NhbGVG
YWN0b3IoKSA6IDE7IH0KKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVy
biBtX2NsaWVudC5wYWdlU2NhbGVGYWN0b3IoKTsgfQorICAgIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQuZGV2aWNlU2NhbGVGYWN0b3IoKTsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIHsgfQogICAg
IHZvaWQgbm90ZURldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZEluY2x1ZGluZ0Rlc2NlbmRh
bnRzKCk7CkBAIC01NDUsMTQgKzU0NSwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgR3JhcGhpY3NMYXll
ciogcmVwbGljYXRlZExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZXBsaWNhdGVkTGF5ZXI7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwbGljYXRlZExheWVyKEdyYXBoaWNzTGF5ZXIqIGxheWVy
KSB7IG1fcmVwbGljYXRlZExheWVyID0gbGF5ZXI7IH0KIAotICAgIEdyYXBoaWNzTGF5ZXIoR3Jh
cGhpY3NMYXllckNsaWVudCopOworICAgIGV4cGxpY2l0IEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NM
YXllckNsaWVudCYpOwogCiAgICAgdm9pZCBkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50
IGluZGVudCwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoVGV4dFN0cmVhbSYsIGludCAvKmluZGVudCovLCBM
YXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3QgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
RGVidWdCb3JkZXJJbmZvKENvbG9yJiwgZmxvYXQmIHdpZHRoKSBjb25zdDsKIAotICAgIEdyYXBo
aWNzTGF5ZXJDbGllbnQqIG1fY2xpZW50OworICAgIEdyYXBoaWNzTGF5ZXJDbGllbnQmIG1fY2xp
ZW50OwogICAgIFN0cmluZyBtX25hbWU7CiAgICAgCiAgICAgLy8gT2Zmc2V0IGZyb20gdGhlIG93
bmluZyByZW5kZXJlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllckZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmgKaW5kZXggNzA4YzhjNjk5YTkxZTU2ZWZiYzE4Yjdl
MWJiNWE1MTIyZjYyOWUxYS4uM2MwZjNkMTczYTUwNDFlZTg0NzI2YTEzYWIxMjc2YzdiYTA0N2Zl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllckZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyRmFjdG9yeS5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIEdyYXBoaWNzTGF5ZXJG
YWN0b3J5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5HcmFwaGljc0xheWVyRmFjdG9yeSgpIHsg
fQogCi0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3Jh
cGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KikgPSAwOworICAgIHZpcnR1YWwgc3RkOjp1
bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXll
ckNsaWVudCYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3Bw
CmluZGV4IDYyMWM4M2VjYTZhNjA0MzkyZTJhMzc0M2ZlMTQ3NmQ0Y2RiODQyZmYuLjM5MjZjZGMx
NTVkMTgyNGJjM2I3MWIxZmNhNTdiN2Q3MDYwZDI2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMzA5
LDcgKzMwOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkRmlsdGVy
QW5pbWF0aW9ucygpCiB9CiAjZW5kaWYKIAotc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+
IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSogZmFjdG9yeSwgR3Jh
cGhpY3NMYXllckNsaWVudCogY2xpZW50KQorc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+
IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSogZmFjdG9yeSwgR3Jh
cGhpY3NMYXllckNsaWVudCYgY2xpZW50KQogewogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGlj
c0xheWVyPiBncmFwaGljc0xheWVyOwogICAgIGlmICghZmFjdG9yeSkKQEAgLTM2MCw3ICszNjAs
NyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IEdyYXBoaWNzTGF5ZXJDQTo6Y3Jl
YXRlUGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0ZgogI2VuZGlmCiB9CiAKLUdyYXBoaWNzTGF5ZXJD
QTo6R3JhcGhpY3NMYXllckNBKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKK0dyYXBoaWNz
TGF5ZXJDQTo6R3JhcGhpY3NMYXllckNBKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKICAg
ICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogICAgICwgbV9jb250ZW50c0xheWVyUHVycG9zZShO
b0NvbnRlbnRzTGF5ZXIpCiAgICAgLCBtX2lzUGFnZVRpbGVkQmFja2luZ0xheWVyKGZhbHNlKQpA
QCAtMzczLDcgKzM3Myw3IEBAIEdyYXBoaWNzTGF5ZXJDQTo6R3JhcGhpY3NMYXllckNBKEdyYXBo
aWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKIHZvaWQgR3JhcGhpY3NMYXllckNBOjppbml0aWFsaXpl
KCkKIHsKICAgICBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSBsYXllclR5cGUgPSBQbGF0Zm9y
bUNBTGF5ZXI6OkxheWVyVHlwZVdlYkxheWVyOwotICAgIGlmIChtX2NsaWVudCAmJiBtX2NsaWVu
dC0+c2hvdWxkVXNlVGlsZWRCYWNraW5nKHRoaXMpKSB7CisgICAgaWYgKGNsaWVudCgpLnNob3Vs
ZFVzZVRpbGVkQmFja2luZyh0aGlzKSkgewogICAgICAgICBsYXllclR5cGUgPSBQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZVBhZ2VUaWxlZEJhY2tpbmdMYXllcjsKICAgICAgICAgbV9pc1BhZ2VU
aWxlZEJhY2tpbmdMYXllciA9IHRydWU7CiAgICAgfQpAQCAtODU4LDggKzg1OCw3IEBAIHZvaWQg
R3JhcGhpY3NMYXllckNBOjpyZW1vdmVBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25O
YW1lKQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uU3Rh
cnRlZChDRlRpbWVJbnRlcnZhbCBzdGFydFRpbWUpCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAg
ICAgICBtX2NsaWVudC0+bm90aWZ5QW5pbWF0aW9uU3RhcnRlZCh0aGlzLCBzdGFydFRpbWUpOwor
ICAgIGNsaWVudCgpLm5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQodGhpcywgc3RhcnRUaW1lKTsKIH0K
IAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENv
bG9yJiBjb2xvcikKQEAgLTEwMTAsOCArMTAwOSw3IEBAIEZsb2F0UG9pbnQgR3JhcGhpY3NMYXll
ckNBOjpjb21wdXRlUG9zaXRpb25SZWxhdGl2ZVRvQmFzZShmbG9hdCYgcGFnZVNjYWxlKSBjb25z
CiAgICAgRmxvYXRQb2ludCBvZmZzZXQ7CiAgICAgZm9yIChjb25zdCBHcmFwaGljc0xheWVyKiBj
dXJyTGF5ZXIgPSB0aGlzOyBjdXJyTGF5ZXI7IGN1cnJMYXllciA9IGN1cnJMYXllci0+cGFyZW50
KCkpIHsKICAgICAgICAgaWYgKGN1cnJMYXllci0+YXBwbGllc1BhZ2VTY2FsZSgpKSB7Ci0gICAg
ICAgICAgICBpZiAoY3VyckxheWVyLT5jbGllbnQoKSkKLSAgICAgICAgICAgICAgICBwYWdlU2Nh
bGUgPSBjdXJyTGF5ZXItPnBhZ2VTY2FsZUZhY3RvcigpOworICAgICAgICAgICAgcGFnZVNjYWxl
ID0gY3VyckxheWVyLT5wYWdlU2NhbGVGYWN0b3IoKTsKICAgICAgICAgICAgIHJldHVybiBvZmZz
ZXQ7CiAgICAgICAgIH0KIApAQCAtMTAzOSw4ICsxMDM3LDggQEAgdm9pZCBHcmFwaGljc0xheWVy
Q0E6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKQogICAgIGNvbW1pdExh
eWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhjb21taXRTdGF0ZSwgcGFnZVNjYWxlRmFjdG9yLCBv
ZmZzZXQsIG1fdmlzaWJsZVJlY3QpOwogICAgIGNvbW1pdExheWVyQ2hhbmdlc0FmdGVyU3VibGF5
ZXJzKGNvbW1pdFN0YXRlKTsKIAotICAgIGlmIChoYWRDaGFuZ2VzICYmIGNsaWVudCgpKQotICAg
ICAgICBjbGllbnQoKS0+ZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKHRoaXMpOworICAgIGlmICho
YWRDaGFuZ2VzKQorICAgICAgICBjbGllbnQoKS5kaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIodGhp
cyk7CiB9CiAKIGJvb2wgR3JhcGhpY3NMYXllckNBOjpyZWN1cnNpdmVWaXNpYmxlUmVjdENoYW5n
ZVJlcXVpcmVzRmx1c2goY29uc3QgVHJhbnNmb3JtU3RhdGUmIHN0YXRlKSBjb25zdApAQCAtMTEy
OCwxMiArMTEyNiwxMSBAQCBGbG9hdFJlY3QgR3JhcGhpY3NMYXllckNBOjpjb21wdXRlVmlzaWJs
ZVJlY3QoVHJhbnNmb3JtU3RhdGUmIHN0YXRlLCBDb21wdXRlVmlzaQogICAgIFRyYW5zZm9ybVN0
YXRlOjpUcmFuc2Zvcm1BY2N1bXVsYXRpb24gYWNjdW11bGF0aW9uID0gcHJlc2VydmUzRCA/IFRy
YW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0
ZW5UcmFuc2Zvcm07CiAKICAgICBGbG9hdFBvaW50IHBvc2l0aW9uID0gbV9wb3NpdGlvbjsKLSAg
ICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5jdXN0b21Qb3NpdGlvbkZvclZpc2li
bGVSZWN0Q29tcHV0YXRpb24odGhpcywgcG9zaXRpb24pOworICAgIGNsaWVudCgpLmN1c3RvbVBv
c2l0aW9uRm9yVmlzaWJsZVJlY3RDb21wdXRhdGlvbih0aGlzLCBwb3NpdGlvbik7CiAKICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBsYXllclRyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBjdXJyZW50VHJhbnNmb3JtOwotICAgIGlmICgoZmxhZ3MgJiBSZXNwZWN0QW5pbWF0aW5n
VHJhbnNmb3JtcykgJiYgY2xpZW50KCkgJiYgY2xpZW50KCktPmdldEN1cnJlbnRUcmFuc2Zvcm0o
dGhpcywgY3VycmVudFRyYW5zZm9ybSkpCisgICAgaWYgKChmbGFncyAmIFJlc3BlY3RBbmltYXRp
bmdUcmFuc2Zvcm1zKSAmJiBjbGllbnQoKS5nZXRDdXJyZW50VHJhbnNmb3JtKHRoaXMsIGN1cnJl
bnRUcmFuc2Zvcm0pKQogICAgICAgICBsYXllclRyYW5zZm9ybSA9IHRoaXMtPmxheWVyVHJhbnNm
b3JtKHBvc2l0aW9uLCAmY3VycmVudFRyYW5zZm9ybSk7CiAgICAgZWxzZQogICAgICAgICBsYXll
clRyYW5zZm9ybSA9IHRoaXMtPmxheWVyVHJhbnNmb3JtKHBvc2l0aW9uKTsKQEAgLTEyNzAsMTEg
KzEyNjcsMTEgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMo
Y29uc3QgQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRlLCBjb24KICAgICAgICAgY29tbWl0TGF5ZXJD
aGFuZ2VzQWZ0ZXJTdWJsYXllcnMoY2hpbGRDb21taXRTdGF0ZSk7CiAgICAgfQogCi0gICAgaWYg
KGFmZmVjdGVkQnlUcmFuc2Zvcm1BbmltYXRpb24gJiYgY2xpZW50KCkgJiYgbV9sYXllci0+bGF5
ZXJUeXBlKCkgPT0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdMYXllcikK
LSAgICAgICAgY2xpZW50KCktPm5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2godGhpcyk7
CisgICAgaWYgKGFmZmVjdGVkQnlUcmFuc2Zvcm1BbmltYXRpb24gJiYgbV9sYXllci0+bGF5ZXJU
eXBlKCkgPT0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdMYXllcikKKyAg
ICAgICAgY2xpZW50KCkubm90aWZ5Rmx1c2hCZWZvcmVEaXNwbGF5UmVmcmVzaCh0aGlzKTsKIAot
ICAgIGlmIChoYWRDaGFuZ2VzICYmIGNsaWVudCgpKQotICAgICAgICBjbGllbnQoKS0+ZGlkQ29t
bWl0Q2hhbmdlc0ZvckxheWVyKHRoaXMpOworICAgIGlmIChoYWRDaGFuZ2VzKQorICAgICAgICBj
bGllbnQoKS5kaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIodGhpcyk7CiB9CiAKIGJvb2wgR3JhcGhp
Y3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIoUGxhdGZvcm1DQUxh
eWVyKiBwbGF0Zm9ybUxheWVyKSBjb25zdApAQCAtMTMwNCwyMSArMTMwMSwxNyBAQCBmbG9hdCBH
cmFwaGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXllckRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QK
IAogZmxvYXQgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c1NjYWxlTXVs
dGlwbGllckZvck5ld1RpbGVzKFBsYXRmb3JtQ0FMYXllciopIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IGNsaWVudCgpID8gY2xpZW50KCktPmNvbnRlbnRzU2NhbGVNdWx0aXBsaWVyRm9yTmV3VGlsZXMo
dGhpcykgOiAxOworICAgIHJldHVybiBjbGllbnQoKS5jb250ZW50c1NjYWxlTXVsdGlwbGllckZv
ck5ld1RpbGVzKHRoaXMpOwogfQogCiBib29sIEdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1DQUxh
eWVyU2hvdWxkQWdncmVzc2l2ZWx5UmV0YWluVGlsZXMoUGxhdGZvcm1DQUxheWVyKikgY29uc3QK
IHsKLSAgICBpZiAoR3JhcGhpY3NMYXllckNsaWVudCogbGF5ZXJDbGllbnQgPSBjbGllbnQoKSkK
LSAgICAgICAgcmV0dXJuIGxheWVyQ2xpZW50LT5zaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxl
cyh0aGlzKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNsaWVudCgpLnNob3VsZEFn
Z3Jlc3NpdmVseVJldGFpblRpbGVzKHRoaXMpOwogfQogCiBib29sIEdyYXBoaWNzTGF5ZXJDQTo6
cGxhdGZvcm1DQUxheWVyU2hvdWxkVGVtcG9yYXJpbHlSZXRhaW5UaWxlQ29ob3J0cyhQbGF0Zm9y
bUNBTGF5ZXIqKSBjb25zdAogewotICAgIGlmIChHcmFwaGljc0xheWVyQ2xpZW50KiBsYXllckNs
aWVudCA9IGNsaWVudCgpKQotICAgICAgICByZXR1cm4gbGF5ZXJDbGllbnQtPnNob3VsZFRlbXBv
cmFyaWx5UmV0YWluVGlsZUNvaG9ydHModGhpcyk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0
dXJuIGNsaWVudCgpLnNob3VsZFRlbXBvcmFyaWx5UmV0YWluVGlsZUNvaG9ydHModGhpcyk7CiB9
CiAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJsYXll
cnMoQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRlLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGNvbnN0
IEZsb2F0UG9pbnQmIHBvc2l0aW9uUmVsYXRpdmVUb0Jhc2UsIGNvbnN0IEZsb2F0UmVjdCYgb2xk
VmlzaWJsZVJlY3QsIFRyYW5zZm9ybWF0aW9uTWF0cml4KiB0cmFuc2Zvcm1Gcm9tUm9vdCkKQEAg
LTE2NjEsNyArMTY1NCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c09w
YXF1ZShmbG9hdCBwYWdlU2NhbGVGYWN0b3IpCiAgICAgYm9vbCBjb250ZW50c09wYXF1ZSA9IG1f
Y29udGVudHNPcGFxdWU7CiAgICAgaWYgKGNvbnRlbnRzT3BhcXVlKSB7CiAgICAgICAgIGZsb2F0
IGNvbnRlbnRzU2NhbGUgPSBjbGFtcGVkQ29udGVudHNTY2FsZUZvclNjYWxlKG1fcm9vdFJlbGF0
aXZlU2NhbGVGYWN0b3IsIHBhZ2VTY2FsZUZhY3RvciAqIGRldmljZVNjYWxlRmFjdG9yKCkpOwot
ICAgICAgICBpZiAoIWlzSW50ZWdyYWwoY29udGVudHNTY2FsZSkgJiYgIW1fY2xpZW50LT5wYWlu
dHNPcGFxdWVseUF0Tm9uSW50ZWdyYWxTY2FsZXModGhpcykpCisgICAgICAgIGlmICghaXNJbnRl
Z3JhbChjb250ZW50c1NjYWxlKSAmJiAhbV9jbGllbnQucGFpbnRzT3BhcXVlbHlBdE5vbkludGVn
cmFsU2NhbGVzKHRoaXMpKQogICAgICAgICAgICAgY29udGVudHNPcGFxdWUgPSBmYWxzZTsKICAg
ICB9CiAgICAgCkBAIC0yOTQzLDcgKzI5MzYsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBk
YXRlQ29udGVudHNTY2FsZShmbG9hdCBwYWdlU2NhbGVGYWN0b3IpCiAgICAgZmxvYXQgY29udGVu
dHNTY2FsZSA9IGNsYW1wZWRDb250ZW50c1NjYWxlRm9yU2NhbGUobV9yb290UmVsYXRpdmVTY2Fs
ZUZhY3RvciwgcGFnZVNjYWxlRmFjdG9yICogZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAKICAgICBp
ZiAobV9pc1BhZ2VUaWxlZEJhY2tpbmdMYXllciAmJiB0aWxlZEJhY2tpbmcoKSkgewotICAgICAg
ICBmbG9hdCB6b29tZWRPdXRTY2FsZSA9IG1fY2xpZW50LT56b29tZWRPdXRQYWdlU2NhbGVGYWN0
b3IoKSAqIGRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIGZsb2F0IHpvb21lZE91dFNjYWxl
ID0gbV9jbGllbnQuem9vbWVkT3V0UGFnZVNjYWxlRmFjdG9yKCkgKiBkZXZpY2VTY2FsZUZhY3Rv
cigpOwogICAgICAgICB0aWxlZEJhY2tpbmcoKS0+c2V0Wm9vbWVkT3V0Q29udGVudHNTY2FsZSh6
b29tZWRPdXRTY2FsZSk7CiAgICAgfQogCkBAIC0zMTU0LDggKzMxNDcsNyBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcihib29sIHVzZVRpbGVkTGF5ZXIpCiAg
ICAgLy8gbmVlZCB0byB0ZWxsIG5ldyBsYXllciB0byBkcmF3IGl0c2VsZgogICAgIHNldE5lZWRz
RGlzcGxheSgpOwogICAgIAotICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCktPnRp
bGVkQmFja2luZ1VzYWdlQ2hhbmdlZCh0aGlzLCBtX3VzaW5nVGlsZWRCYWNraW5nKTsKKyAgICBj
bGllbnQoKS50aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQodGhpcywgbV91c2luZ1RpbGVkQmFja2lu
Zyk7CiB9CiAKIEdyYXBoaWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlv
biBHcmFwaGljc0xheWVyQ0E6OmRlZmF1bHRDb250ZW50c09yaWVudGF0aW9uKCkgY29uc3QKQEAg
LTM1MDAsOCArMzQ5Miw4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpub3RlTGF5ZXJQcm9wZXJ0
eUNoYW5nZWQoTGF5ZXJDaGFuZ2VGbGFncyBmbGFncywgU2NoZWR1bGVGCiAKICAgICBpZiAoc2No
ZWR1bGVGbHVzaCA9PSBTY2hlZHVsZUZsdXNoKSB7CiAgICAgICAgIGJvb2wgbmVlZHNGbHVzaCA9
ICFoYWRVbmNvbW1pdHRlZENoYW5nZXMgfHwgb2xkQ2FuVGhyb3R0bGVMYXllckZsdXNoICE9IGNh
blRocm90dGxlTGF5ZXJGbHVzaCgpOwotICAgICAgICBpZiAobmVlZHNGbHVzaCAmJiBtX2NsaWVu
dCkKLSAgICAgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOworICAg
ICAgICBpZiAobmVlZHNGbHVzaCkKKyAgICAgICAgICAgIGNsaWVudCgpLm5vdGlmeUZsdXNoUmVx
dWlyZWQodGhpcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IDFkYzg2NTQ1Y2ZmYWJmNjE5
MThjYzFlZGZmNjlkODk0NzY4MzE0MjEuLjIyMjA4NDRmMmVhOTY4OGIwNzUxYjk0Y2JhMmY1NmYz
YTg2YzhlODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICAvLyB0
byBrZWVwIHRoZSBvdmVyYWxsIHRpbGUgY29zdCBsb3cuCiAgICAgc3RhdGljIGNvbnN0IGludCBr
VGlsZWRMYXllclRpbGVTaXplID0gNTEyOwogCi0gICAgR3JhcGhpY3NMYXllckNBKEdyYXBoaWNz
TGF5ZXJDbGllbnQqKTsKKyAgICBleHBsaWNpdCBHcmFwaGljc0xheWVyQ0EoR3JhcGhpY3NMYXll
ckNsaWVudCYpOwogICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJDQSgpOwogCiAgICAgdmlydHVh
bCB2b2lkIGluaXRpYWxpemUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIuY3BwCmluZGV4IDNlZjdjMmJiOGI0NmNhZTk2MjQ5NjViMzQ4NGYxN2Y3Mzdj
ZGEzMGUuLmMwOTYzNmEwYjBmODY2ZjU0NTBhY2FmYWVhZjhmMDI0MGVhOTVkNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzUsNyArMzUsNyBAQCBU
ZXh0dXJlTWFwcGVyTGF5ZXIqIHRvVGV4dHVyZU1hcHBlckxheWVyKEdyYXBoaWNzTGF5ZXIqIGxh
eWVyKQogICAgIHJldHVybiBsYXllciA/IHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIobGF5
ZXIpLT5sYXllcigpIDogMDsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IEdy
YXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSogZmFjdG9yeSwgR3JhcGhp
Y3NMYXllckNsaWVudCogY2xpZW50KQorc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IEdy
YXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSogZmFjdG9yeSwgR3JhcGhp
Y3NMYXllckNsaWVudCYgY2xpZW50KQogewogICAgIGlmICghZmFjdG9yeSkKICAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI+KGNsaWVudCk7
CkBAIC00Myw3ICs0Myw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBHcmFwaGlj
c0xheWVyOjpjcmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqIGZhY3RvCiAgICAgcmV0dXJuIGZh
Y3RvcnktPmNyZWF0ZUdyYXBoaWNzTGF5ZXIoY2xpZW50KTsKIH0KIAotR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXI6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKEdyYXBoaWNzTGF5ZXJDbGll
bnQqIGNsaWVudCkKK0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpHcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlcihHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBHcmFwaGljc0xh
eWVyKGNsaWVudCkKICAgICAsIG1fbGF5ZXIoc3RkOjptYWtlX3VuaXF1ZTxUZXh0dXJlTWFwcGVy
TGF5ZXI+KCkpCiAgICAgLCBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0cigwKQpAQCAtNjAsOSAr
NjAsNyBAQCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6R3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZQogdm9pZCBHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlcjo6bm90aWZ5Q2hhbmdlKENoYW5nZU1hc2sgY2hhbmdlTWFzaykKIHsKICAgICBtX2No
YW5nZU1hc2sgfD0gY2hhbmdlTWFzazsKLSAgICBpZiAoIWNsaWVudCgpKQotICAgICAgICByZXR1
cm47Ci0gICAgY2xpZW50KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CisgICAgY2xpZW50
KCkubm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlcjo6c2V0TmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCkBAIC01NjAsNyArNTU4LDcg
QEAgdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Y29tbWl0TGF5ZXJDaGFuZ2VzKCkK
ICAgICAgICAgbV9sYXllci0+c2V0QW5pbWF0aW9ucyhtX2FuaW1hdGlvbnMpOwogCiAgICAgaWYg
KG1fY2hhbmdlTWFzayAmIEFuaW1hdGlvblN0YXJ0ZWQpCi0gICAgICAgIGNsaWVudCgpLT5ub3Rp
ZnlBbmltYXRpb25TdGFydGVkKHRoaXMsIG1fYW5pbWF0aW9uU3RhcnRUaW1lKTsKKyAgICAgICAg
Y2xpZW50KCkubm90aWZ5QW5pbWF0aW9uU3RhcnRlZCh0aGlzLCBtX2FuaW1hdGlvblN0YXJ0VGlt
ZSk7CiAKICAgICBpZiAobV9jaGFuZ2VNYXNrICYgRml4ZWRUb1ZpZXdwb3JDaGFuZ2UpCiAgICAg
ICAgIG1fbGF5ZXItPnNldEZpeGVkVG9WaWV3cG9ydChmaXhlZFRvVmlld3BvcnQoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCmluZGV4IDEyZTVmYTM5MjI2YjJhYjAy
YjQ3MmQwMGQxNzdiM2IyMjA0YzEyMTQuLjBlMDNkODM4NmIxMjE1NzUzZDhmOTFlZjU5OTQ5YWRj
OTBmMGNhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCkBAIC0z
NCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIgOiBwdWJsaWMgR3JhcGhpY3NMYXllciwgcHVibGljIFRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyOjpDbGllbnQgewogcHVibGljOgotICAgIGV4cGxpY2l0IEdyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqKTsKKyAgICBleHBsaWNpdCBHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlcihHcmFwaGljc0xheWVyQ2xpZW50Jik7CiAgICAgdmlydHVh
bCB+R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoKTsKIAogICAgIHZvaWQgc2V0U2Nyb2xsQ2xp
ZW50KFRleHR1cmVNYXBwZXJMYXllcjo6U2Nyb2xsaW5nQ2xpZW50KiBjbGllbnQpIHsgbV9sYXll
ci0+c2V0U2Nyb2xsQ2xpZW50KGNsaWVudCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA0ZjllNjU0ZjIyMWViMzRlMDE2
YzlmMmMzMTRhNjYzNTFkYjBjMGJjLi41MmIxZTFkMjhiMDU1ZDllMjJlYzQzMzU2MjRjNDc3MTVh
ZGU2OWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29v
cmRpbmF0b3IuY3BwCkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yOjpjcmVhdGVSb290TGF5ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBBU1NFUlQo
IW1fcm9vdExheWVyKTsKICAgICAvLyBDcmVhdGUgYSByb290IGxheWVyLgotICAgIG1fcm9vdExh
eWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMsIHRoaXMpOworICAgIG1fcm9vdExheWVy
ID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMsICp0aGlzKTsKICNpZm5kZWYgTkRFQlVHCiAg
ICAgbV9yb290TGF5ZXItPnNldE5hbWUoIkNvbXBvc2l0aW5nQ29vcmRpbmF0b3Igcm9vdCBsYXll
ciIpOwogI2VuZGlmCkBAIC0yNTcsNyArMjU3LDcgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEcK
ICAgICBtX2NsaWVudC0+cGFpbnRMYXllckNvbnRlbnRzKGdyYXBoaWNzTGF5ZXIsIGdyYXBoaWNz
Q29udGV4dCwgZW5jbG9zaW5nSW50UmVjdChjbGlwUmVjdCkpOwogfQogCi1zdGQ6OnVuaXF1ZV9w
dHI8R3JhcGhpY3NMYXllcj4gQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Y3JlYXRlR3JhcGhpY3NM
YXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCitzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhp
Y3NMYXllcj4gQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Y3JlYXRlR3JhcGhpY3NMYXllcihHcmFw
aGljc0xheWVyQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KiBsYXllciA9IG5ldyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2xpZW50KTsKICAgICBsYXll
ci0+c2V0Q29vcmRpbmF0b3IodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
bXBvc2l0aW5nQ29vcmRpbmF0b3IuaAppbmRleCBhZmI4YjU2OTZhMDZhNzg5MzkxYTBlNGM5ODQ5
NmVkNGYxYTQyZWE0Li4wYzg0MzFjZGMxOGZhZjliNThiOWJjMTdmZTQzYTVjNjFiNGE3NjQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgK
QEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVVcGRh
dGVBdGxhcyh1aW50MzJfdCBhdGxhc0lEKSBvdmVycmlkZTsKIAogICAgIC8vIEdyYXBoaWNzTGF5
ZXJGYWN0b3J5Ci0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gY3Jl
YXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50Kikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihH
cmFwaGljc0xheWVyQ2xpZW50Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGluaXRpYWxpemVSb290
Q29tcG9zaXRpbmdMYXllcklmTmVlZGVkKCk7CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdJbWFnZUJh
Y2tpbmdDaGFuZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGIzYjMxZjg0OGYzNWU1M2Q2NTk5ZjhhNzA1MzY1
OGFlZTgyMGQwZWUuLjI5ZjAxOGNhYzZmZTViNjc3YzVkYTY1MGIzMzFjNzZhMTI2MDNjODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwCkBAIC01MSw4ICs1MSw4IEBAIHN0YXRpYyBDb29yZGluYXRlZExheWVySUQgdG9Db29y
ZGluYXRlZExheWVySUQoR3JhcGhpY3NMYXllciogbGF5ZXIpCiBib29sIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZCgpCiB7CiAgICAgQVNTRVJUKG1fY29vcmRp
bmF0b3IpOwotICAgIGlmIChjbGllbnQoKSAmJiAhbV9jb29yZGluYXRvci0+aXNGbHVzaGluZ0xh
eWVyQ2hhbmdlcygpKSB7Ci0gICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRo
aXMpOworICAgIGlmICghbV9jb29yZGluYXRvci0+aXNGbHVzaGluZ0xheWVyQ2hhbmdlcygpKSB7
CisgICAgICAgIGNsaWVudCgpLm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDUsNyArMTA1LDcgQEAg
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUdlb21ldHJ5KCkKICAgICBz
ZXRTaG91bGRVcGRhdGVWaXNpYmxlUmVjdCgpOwogfQogCi1Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQp
CitDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihHcmFw
aGljc0xheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBHcmFwaGljc0xheWVyKGNsaWVudCkKICNp
Zm5kZWYgTkRFQlVHCiAgICAgLCBtX2lzUHVyZ2luZyhmYWxzZSkKQEAgLTExMzMsNyArMTEzMyw3
IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjb21wdXRlVHJhbnNmb3JtZWRWaXNp
YmxlUmVjdCgpCiAgICAgbV9zaG91bGRVcGRhdGVWaXNpYmxlUmVjdCA9IGZhbHNlOwogICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IGN1cnJlbnRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0oKTsKICAgICBp
ZiAobV9tb3ZpbmdWaXNpYmxlUmVjdCkKLSAgICAgICAgY2xpZW50KCktPmdldEN1cnJlbnRUcmFu
c2Zvcm0odGhpcywgY3VycmVudFRyYW5zZm9ybSk7CisgICAgICAgIGNsaWVudCgpLmdldEN1cnJl
bnRUcmFuc2Zvcm0odGhpcywgY3VycmVudFRyYW5zZm9ybSk7CiAgICAgbV9sYXllclRyYW5zZm9y
bS5zZXRMb2NhbFRyYW5zZm9ybShjdXJyZW50VHJhbnNmb3JtKTsKIAogICAgIG1fbGF5ZXJUcmFu
c2Zvcm0uc2V0QW5jaG9yUG9pbnQobV9hZGp1c3RlZEFuY2hvclBvaW50KTsKQEAgLTEyMjYsNyAr
MTIyNiw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZXN1bWVBbmltYXRpb25z
KCkKIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvblN0YXJ0ZWRUaW1l
ckZpcmVkKFRpbWVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4qKQogewotICAgIGNsaWVudCgp
LT5ub3RpZnlBbmltYXRpb25TdGFydGVkKHRoaXMsIG1fbGFzdEFuaW1hdGlvblN0YXJ0VGltZSk7
CisgICAgY2xpZW50KCkubm90aWZ5QW5pbWF0aW9uU3RhcnRlZCh0aGlzLCBtX2xhc3RBbmltYXRp
b25TdGFydFRpbWUpOwogfQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmIC8vIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAppbmRleCA1M2I3NmYxMzI4NGQ1NzlkN2MyOGU0MGJkYjFh
ZmMwMzJhYWZiYTMyLi4xNDg2YzIwN2JlMjg2NDA0NDhiNTA2MTM3YTZiMGI0MzQyMDExNGViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5oCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciA6IHB1
YmxpYyBHcmFwaGljc0xheWVyCiAgICAgLCBwdWJsaWMgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6
Okhvc3QKICAgICAsIHB1YmxpYyBDb29yZGluYXRlZFRpbGVDbGllbnQgewogcHVibGljOgotICAg
IGV4cGxpY2l0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50Kik7
CisgICAgZXhwbGljaXQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGll
bnQmKTsKICAgICB2aXJ0dWFsIH5Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoKTsKIAogICAgIC8v
IFJlaW1wbGVtZW50YXRpb25zIGZyb20gR3JhcGhpY3NMYXllci5oLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA1ZTNmODU5MDAyNjU3
Mjk1MzM3ZmI4Y2ZhNzYzYzRjNmY1MjI2ZjZjLi5kNzI2YTlmNDMyNjc0NTIyMjQyYzhhOTY3OGY5
MGZjNDUwYTBhN2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcApAQCAtMTY5LDcgKzE2OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGlj
c0xheWVyPiBSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoY29uc3QgU3Ry
CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSByZW5kZXJlcigpLmZyYW1lKCkucGFnZSgpKQogICAgICAg
ICBncmFwaGljc0xheWVyRmFjdG9yeSA9IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCk7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gZ3Jh
cGhpY3NMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSwg
dGhpcyk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGdyYXBoaWNzTGF5ZXIg
PSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnksICp0aGlzKTsKIAog
I2lmbmRlZiBOREVCVUcKICAgICBncmFwaGljc0xheWVyLT5zZXROYW1lKG5hbWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRl
eCBiMmU2ODNiYTgzNWFiYTJiZTdkMzEzOTdjMzhlZDNhZWVhMGY2MjYzLi5kZjRkYjc5Yjg4ZTdk
Y2E0MDU1YTExNWJmYjQ4M2EyMjYwNTcwNWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjg3OCw3ICsyODc4LDcgQEAg
R3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvclRvcE92
ZXJoYW5nQXJlYShib29sIHdhbnRzTGEKICAgICB9CiAKICAgICBpZiAoIW1fbGF5ZXJGb3JUb3BP
dmVyaGFuZ0FyZWEpIHsKLSAgICAgICAgbV9sYXllckZvclRvcE92ZXJoYW5nQXJlYSA9IEdyYXBo
aWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCB0aGlzKTsKKyAgICAgICAg
bV9sYXllckZvclRvcE92ZXJoYW5nQXJlYSA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGlj
c0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBtX2xheWVy
Rm9yVG9wT3ZlcmhhbmdBcmVhLT5zZXROYW1lKCJ0b3Agb3ZlcmhhbmcgYXJlYSIpOwogI2VuZGlm
CkBAIC0yOTAyLDcgKzI5MDIsNyBAQCBHcmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnVwZGF0ZUxheWVyRm9yQm90dG9tT3ZlcmhhbmdBcmVhKGJvb2wgd2FudAogICAgIH0KIAog
ICAgIGlmICghbV9sYXllckZvckJvdHRvbU92ZXJoYW5nQXJlYSkgewotICAgICAgICBtX2xheWVy
Rm9yQm90dG9tT3ZlcmhhbmdBcmVhID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5
ZXJGYWN0b3J5KCksIHRoaXMpOworICAgICAgICBtX2xheWVyRm9yQm90dG9tT3ZlcmhhbmdBcmVh
ID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsK
ICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIG1fbGF5ZXJGb3JCb3R0b21PdmVyaGFuZ0FyZWEtPnNl
dE5hbWUoImJvdHRvbSBvdmVyaGFuZyBhcmVhIik7CiAjZW5kaWYKQEAgLTI5MzIsNyArMjkzMiw3
IEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JI
ZWFkZXIoYm9vbCB3YW50c0xheWVyKQogICAgIH0KIAogICAgIGlmICghbV9sYXllckZvckhlYWRl
cikgewotICAgICAgICBtX2xheWVyRm9ySGVhZGVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdy
YXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgICAgICBtX2xheWVyRm9ySGVhZGVyID0g
R3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICNp
Zm5kZWYgTkRFQlVHCiAgICAgICAgIG1fbGF5ZXJGb3JIZWFkZXItPnNldE5hbWUoImhlYWRlciIp
OwogI2VuZGlmCkBAIC0yOTcyLDcgKzI5NzIsNyBAQCBHcmFwaGljc0xheWVyKiBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnVwZGF0ZUxheWVyRm9yRm9vdGVyKGJvb2wgd2FudHNMYXllcikKICAgICB9
CiAKICAgICBpZiAoIW1fbGF5ZXJGb3JGb290ZXIpIHsKLSAgICAgICAgbV9sYXllckZvckZvb3Rl
ciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCB0aGlzKTsK
KyAgICAgICAgbV9sYXllckZvckZvb3RlciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGlj
c0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBtX2xheWVy
Rm9yRm9vdGVyLT5zZXROYW1lKCJmb290ZXIiKTsKICNlbmRpZgpAQCAtMzAzOCw3ICszMDM4LDcg
QEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXll
cnMoKQogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAocmVxdWlyZXNPdmVyaGFu
Z0FyZWFzTGF5ZXIoKSkgewogICAgICAgICBpZiAoIW1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKSB7
Ci0gICAgICAgICAgICBtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcyA9IEdyYXBoaWNzTGF5ZXI6OmNy
ZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCB0aGlzKTsKKyAgICAgICAgICAgIG1fbGF5ZXJG
b3JPdmVyaGFuZ0FyZWFzID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0
b3J5KCksICp0aGlzKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBtX2xheWVyRm9yT3Zl
cmhhbmdBcmVhcy0+c2V0TmFtZSgib3ZlcmhhbmcgYXJlYXMiKTsKICNlbmRpZgpAQCAtMzA2Niw3
ICszMDY2LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZU92ZXJmbG93Q29u
dHJvbHNMYXllcnMoKQogCiAgICAgaWYgKHJlcXVpcmVzQ29udGVudFNoYWRvd0xheWVyKCkpIHsK
ICAgICAgICAgaWYgKCFtX2NvbnRlbnRTaGFkb3dMYXllcikgewotICAgICAgICAgICAgbV9jb250
ZW50U2hhZG93TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3Rv
cnkoKSwgdGhpcyk7CisgICAgICAgICAgICBtX2NvbnRlbnRTaGFkb3dMYXllciA9IEdyYXBoaWNz
TGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAjaWZuZGVmIE5E
RUJVRwogICAgICAgICAgICAgbV9jb250ZW50U2hhZG93TGF5ZXItPnNldE5hbWUoImNvbnRlbnQg
c2hhZG93Iik7CiAjZW5kaWYKQEAgLTMwODQsNyArMzA4NCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjp1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCkKIAogICAgIGlmIChyZXF1
aXJlc0hvcml6b250YWxTY3JvbGxiYXJMYXllcigpKSB7CiAgICAgICAgIGlmICghbV9sYXllckZv
ckhvcml6b250YWxTY3JvbGxiYXIpIHsKLSAgICAgICAgICAgIG1fbGF5ZXJGb3JIb3Jpem9udGFs
U2Nyb2xsYmFyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCks
IHRoaXMpOworICAgICAgICAgICAgbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIgPSBHcmFw
aGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwogICAgICAg
ICAgICAgbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXItPnNldFNob3dEZWJ1Z0JvcmRlciht
X3Nob3dEZWJ1Z0JvcmRlcnMpOwogI2lmbmRlZiBOREVCVUcKICAgICAgICAgICAgIG1fbGF5ZXJG
b3JIb3Jpem9udGFsU2Nyb2xsYmFyLT5zZXROYW1lKCJob3Jpem9udGFsIHNjcm9sbGJhciBjb250
YWluZXIiKTsKQEAgLTMxMDgsNyArMzEwOCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojp1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCkKIAogICAgIGlmIChyZXF1aXJlc1ZlcnRp
Y2FsU2Nyb2xsYmFyTGF5ZXIoKSkgewogICAgICAgICBpZiAoIW1fbGF5ZXJGb3JWZXJ0aWNhbFNj
cm9sbGJhcikgewotICAgICAgICAgICAgbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyID0gR3Jh
cGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgICAg
ICAgICAgbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRl
KGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICAgICAgICAgICAgIG1fbGF5ZXJGb3JW
ZXJ0aWNhbFNjcm9sbGJhci0+c2V0U2hvd0RlYnVnQm9yZGVyKG1fc2hvd0RlYnVnQm9yZGVycyk7
CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICAgICAgbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFy
LT5zZXROYW1lKCJ2ZXJ0aWNhbCBzY3JvbGxiYXIgY29udGFpbmVyIik7CkBAIC0zMTMxLDcgKzMx
MzEsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9s
c0xheWVycygpCiAKICAgICBpZiAocmVxdWlyZXNTY3JvbGxDb3JuZXJMYXllcigpKSB7CiAgICAg
ICAgIGlmICghbV9sYXllckZvclNjcm9sbENvcm5lcikgewotICAgICAgICAgICAgbV9sYXllckZv
clNjcm9sbENvcm5lciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9y
eSgpLCB0aGlzKTsKKyAgICAgICAgICAgIG1fbGF5ZXJGb3JTY3JvbGxDb3JuZXIgPSBHcmFwaGlj
c0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwogICAgICAgICAg
ICAgbV9sYXllckZvclNjcm9sbENvcm5lci0+c2V0U2hvd0RlYnVnQm9yZGVyKG1fc2hvd0RlYnVn
Qm9yZGVycyk7CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICAgICAgbV9sYXllckZvclNjcm9sbENv
cm5lci0+c2V0TmFtZSgic2Nyb2xsIGNvcm5lciIpOwpAQCAtMzE1Niw3ICszMTU2LDcgQEAgdm9p
ZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcigpCiAgICAgICAgICByZXR1
cm47CiAKICAgICBpZiAoIW1fcm9vdENvbnRlbnRMYXllcikgewotICAgICAgICBtX3Jvb3RDb250
ZW50TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwg
dGhpcyk7CisgICAgICAgIG1fcm9vdENvbnRlbnRMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0
ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAjaWZuZGVmIE5ERUJVRwogICAgICAg
ICBtX3Jvb3RDb250ZW50TGF5ZXItPnNldE5hbWUoImNvbnRlbnQgcm9vdCIpOwogI2VuZGlmCkBA
IC0zMTgxLDE5ICszMTgxLDE5IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjplbnN1cmVS
b290TGF5ZXIoKQogICAgICAgICAgICAgQVNTRVJUKCFtX2NsaXBMYXllcik7CiAKICAgICAgICAg
ICAgIC8vIENyZWF0ZSBhIGxheWVyIHRvIGhvc3QgdGhlIGNsaXBwaW5nIGxheWVyIGFuZCB0aGUg
b3ZlcmZsb3cgY29udHJvbHMgbGF5ZXJzLgotICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xz
SG9zdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCks
IHRoaXMpOworICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyID0gR3JhcGhp
Y3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICNpZm5kZWYg
TkRFQlVHCiAgICAgICAgICAgICBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXItPnNldE5hbWUo
Im92ZXJmbG93IGNvbnRyb2xzIGhvc3QiKTsKICNlbmRpZgogCiAgICAgICAgICAgICAvLyBDcmVh
dGUgYSBjbGlwcGluZyBsYXllciBpZiB0aGlzIGlzIGFuIGlmcmFtZQotICAgICAgICAgICAgbV9j
bGlwTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwg
dGhpcyk7CisgICAgICAgICAgICBtX2NsaXBMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShn
cmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICAg
ICAgbV9jbGlwTGF5ZXItPnNldE5hbWUoImZyYW1lIGNsaXBwaW5nIik7CiAjZW5kaWYKICAgICAg
ICAgICAgIG1fY2xpcExheWVyLT5zZXRNYXNrc1RvQm91bmRzKHRydWUpOwogICAgICAgICAgICAg
Ci0gICAgICAgICAgICBtX3Njcm9sbExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgICAgICAgICAgbV9zY3JvbGxMYXllciA9IEdy
YXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAjaWZu
ZGVmIE5ERUJVRwogICAgICAgICAgICAgbV9zY3JvbGxMYXllci0+c2V0TmFtZSgiZnJhbWUgc2Ny
b2xsaW5nIik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5kZXggZTAwZDBjODhjY2Uw
MTBlN2Y4NTUwZThiNTc5MTRmZDc3OGZjYWU2My4uZWQ2ZjRhNGE4OTkwZjYwOTZkODU5MzhlODM1
MmI5YTEzZmYyNzBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKQEAgLTUyLDggKzUyLDggQEAg
dm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmluaXRpYWxpemUoKQogICAgIEFTU0VSVCghbV9k
b2N1bWVudE92ZXJsYXlSb290TGF5ZXIpOwogICAgIEFTU0VSVCghbV92aWV3T3ZlcmxheVJvb3RM
YXllcik7CiAKLSAgICBtX2RvY3VtZW50T3ZlcmxheVJvb3RMYXllciA9IEdyYXBoaWNzTGF5ZXI6
OmNyZWF0ZShtX3dlYlBhZ2UuZHJhd2luZ0FyZWEoKS0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKSwg
dGhpcyk7Ci0gICAgbV92aWV3T3ZlcmxheVJvb3RMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0
ZShtX3dlYlBhZ2UuZHJhd2luZ0FyZWEoKS0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7
CisgICAgbV9kb2N1bWVudE92ZXJsYXlSb290TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUo
bV93ZWJQYWdlLmRyYXdpbmdBcmVhKCktPmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsK
KyAgICBtX3ZpZXdPdmVybGF5Um9vdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKG1fd2Vi
UGFnZS5kcmF3aW5nQXJlYSgpLT5ncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAjaWZu
ZGVmIE5ERUJVRwogICAgIG1fZG9jdW1lbnRPdmVybGF5Um9vdExheWVyLT5zZXROYW1lKCJQYWdl
IE92ZXJsYXkgY29udGFpbmVyIChkb2N1bWVudC1yZWxhdGl2ZSkiKTsKICAgICBtX3ZpZXdPdmVy
bGF5Um9vdExheWVyLT5zZXROYW1lKCJQYWdlIE92ZXJsYXkgY29udGFpbmVyICh2aWV3LXJlbGF0
aXZlKSIpOwpAQCAtODcsNyArODcsNyBAQCB2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5z
dGFsbFBhZ2VPdmVybGF5KFBhc3NSZWZQdHI8UGFnZU92ZXJsYXk+IHBhZ2VPdmVybAogICAgIGlm
IChmYWRlTW9kZSA9PSBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpCiAgICAgICAgIG92ZXJs
YXktPnN0YXJ0RmFkZUluQW5pbWF0aW9uKCk7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhp
Y3NMYXllcj4gbGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUobV93ZWJQYWdlLmRyYXdpbmdB
cmVhKCktPmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxHcmFwaGljc0xheWVyPiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShtX3dlYlBhZ2Uu
ZHJhd2luZ0FyZWEoKS0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwogICAgIGxheWVy
LT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50M0QoKSk7CiAgICAgbGF5ZXItPnNldEJhY2tncm91
bmRDb2xvcihvdmVybGF5LT5iYWNrZ3JvdW5kQ29sb3IoKSk7CiAgICAgdXBkYXRlT3ZlcmxheUdl
b21ldHJ5KCpvdmVybGF5LCAqbGF5ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAKaW5kZXggMDUyOWM0
NjM3ZjFiYTI5ZDcyYTVjNmE4NTMxMmU3NWE2ODdhMjM2Ny4uZmRkMjc5NzZjZWViMjk5M2IyNWU3
NWI1OTVlMjJmN2U5MGRkZmIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCkBAIC05MywxMiArOTMs
MTIgQEAgR0xDb250ZXh0KiBMYXllclRyZWVIb3N0R3RrOjpnbENvbnRleHQoKQogCiB2b2lkIExh
eWVyVHJlZUhvc3RHdGs6OmluaXRpYWxpemUoKQogewotICAgIG1fcm9vdExheWVyID0gR3JhcGhp
Y3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgIG1fcm9v
dExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0
aGlzKTsKICAgICBtX3Jvb3RMYXllci0+c2V0RHJhd3NDb250ZW50KGZhbHNlKTsKICAgICBtX3Jv
b3RMYXllci0+c2V0U2l6ZShtX3dlYlBhZ2UtPnNpemUoKSk7CiAKICAgICAvLyBUaGUgbm9uLWNv
bXBvc2l0ZWQgY29udGVudHMgYXJlIGEgY2hpbGQgb2YgdGhlIHJvb3QgbGF5ZXIuCi0gICAgbV9u
b25Db21wb3NpdGVkQ29udGVudExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllciA9
IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAg
ICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CiAg
ICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXRDb250ZW50c09wYXF1ZShtX3dlYlBh
Z2UtPmRyYXdzQmFja2dyb3VuZCgpICYmICFtX3dlYlBhZ2UtPmRyYXdzVHJhbnNwYXJlbnRCYWNr
Z3JvdW5kKCkpOwogICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0U2l6ZShtX3dl
YlBhZ2UtPnNpemUoKSk7CkBAIC0zNjksNyArMzY5LDcgQEAgdm9pZCBMYXllclRyZWVIb3N0R3Rr
OjpmbHVzaEFuZFJlbmRlckxheWVycygpCiAKIHZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6Y3JlYXRl
UGFnZU92ZXJsYXlMYXllcihQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXkpCiB7Ci0gICAgc3RkOjp1
bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdy
YXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGlj
c0xheWVyPiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9y
eSgpLCAqdGhpcyk7CiAjaWZuZGVmIE5ERUJVRwogICAgIGxheWVyLT5zZXROYW1lKCJMYXllclRy
ZWVIb3N0IHBhZ2Ugb3ZlcmxheSBjb250ZW50Iik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJl
bW90ZS5oCmluZGV4IDc5ZmUwM2ZkN2RhZTA5MTU1OTFjODg0N2U1NDM2Njg5NGU0N2I3YjEuLjcz
NGFmYTk2M2VkNDA0Y2Q3NDA5MDBmZjM4MjViMmFkN2UxY2Y5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVy
Q0FSZW1vdGUuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVDb250ZXh0
OwogCiBjbGFzcyBHcmFwaGljc0xheWVyQ0FSZW1vdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNBIHsKIHB1YmxpYzoKLSAgICBHcmFwaGljc0xheWVyQ0FSZW1vdGUoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50LCBSZW1vdGVMYXllclRyZWVDb250ZXh0
KiBjb250ZXh0KQorICAgIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZShXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ2xpZW50JiBjbGllbnQsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCiAgICAg
ICAgIDogR3JhcGhpY3NMYXllckNBKGNsaWVudCkKICAgICAgICAgLCBtX2NvbnRleHQoY29udGV4
dCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDE3MTdmYzQ2NjNlNjQ2
MTZhODEwZTkyNzdlNDM2MzA2ZGRjZjE4NTUuLjYwNWMyMTg2MTMwZWNjMWQxMTY1ZDRmYjViNjY2
ZTAxNjhmMGZjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCkBAIC02NCw3ICs2NCw3
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFj
dG9yeQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+
IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+
IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCYpIG92ZXJy
aWRlOwogCiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQubW0KaW5kZXggYjc3Mzc4YWI2YWY5YjkxNmJmY2YxNmY3NWU0MzQyZThkNWMyYTI2Ny4uMDZm
ZDM5YjI4MjUxY2QwYjVmMzg5ZWI4NGQ4Yzk1M2E5OTcwNzk0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJU
cmVlQ29udGV4dC5tbQpAQCAtODYsNyArODYsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRl
eHQ6OmJhY2tpbmdTdG9yZVdpbGxCZURlc3Ryb3llZChSZW1vdGVMYXllckJhY2tpbmdTdG9yZQog
ICAgIG1fYmFja2luZ1N0b3JlQ29sbGVjdGlvbi5iYWNraW5nU3RvcmVXaWxsQmVEZXN0cm95ZWQo
YmFja2luZ1N0b3JlKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IFJlbW90
ZUxheWVyVHJlZUNvbnRleHQ6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVu
dCogY2xpZW50KQorc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IFJlbW90ZUxheWVyVHJl
ZUNvbnRleHQ6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50
KQogewogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyYXBoaWNzTGF5ZXJDQVJlbW90ZT4o
Y2xpZW50LCB0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRl
eCBlMGQwYTM3N2FhODVjN2Q3Y2FkODY2NWFjNjhmNWVlNzk4NTZhNDFmLi4xNDEzNDBkMjg3Nzc1
OWU4OTI0NTU1NDA3Zjc1MzVmMTZhMTZiMjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYS5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NMYXllckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogCkBAIC0zOSw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBSZW1vdGVMYXllclRyZWVDb250ZXh0OwogCi1jbGFzcyBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYSA6IHB1YmxpYyBEcmF3aW5nQXJlYSB7CitjbGFzcyBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYSA6IHB1YmxpYyBEcmF3aW5nQXJlYSwgcHVibGljIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDbGllbnQgewogcHVibGljOgogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKFdl
YlBhZ2UqLCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB+
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEoKTsKQEAgLTgzLDYgKzg0LDExIEBAIHByaXZhdGU6
CiAKICAgICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKIAorICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVy
cmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgaW5DbGlwKSBv
dmVycmlkZSB7IH0KKwogICAgIHZvaWQgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOwogCiAg
ICAgdm9pZCBsYXllckZsdXNoVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYT4qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmlu
ZGV4IDk1NjM2MjUyOGZmNDYzZDAzZWFhZTllNjUxMTc5Y2I1MTYyYjI3NTUuLjk4ZGM5YjBlNDY5
NDI4NTEwMDZiNjAwZWQzMWViOGQzNmY4YWEyNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5tbQpAQCAtNTEsNyArNTEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYShXZWJQYWdl
KiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJikKICAgICA6IERyYXdp
bmdBcmVhKERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZSwgd2ViUGFnZSkKICAgICAsIG1f
cmVtb3RlTGF5ZXJUcmVlQ29udGV4dChzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJlZUNv
bnRleHQ+KHdlYlBhZ2UpKQotICAgICwgbV9yb290TGF5ZXIoR3JhcGhpY3NMYXllcjo6Y3JlYXRl
KGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIG51bGxwdHIpKQorICAgICwgbV9yb290TGF5ZXIoR3Jh
cGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKSkKICAgICAs
IG1fZXhwb3NlZFJlY3QoRmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSkKICAgICAsIG1fc2Nyb2xs
ZWRFeHBvc2VkUmVjdChGbG9hdFJlY3Q6OmluZmluaXRlUmVjdCgpKQogICAgICwgbV9sYXllckZs
dXNoVGltZXIodGhpcywgJlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpsYXllckZsdXNoVGlt
ZXJGaXJlZCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230737</attachid>
            <date>2014-05-02 21:11:09 -0700</date>
            <delta_ts>2014-05-07 04:44:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126372-20140503131045.patch</filename>
            <type>text/plain</type>
            <size>47871</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZlMjc0MTlkODkzYTc2
ODIxMTA0YzcxZDNmOTIyNzVmNjNhM2U1ZC4uYTMyOGU1OWIzZjhiMjhkNGNjNDk0ZTM5MWE2MGZl
Y2E0YjYzNDZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE0LTA1LTAyICBIeW93
b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBHcmFwaGljc0xheWVy
OjpjbGllbnQoKSBzaG91bGQgcmV0dXJuIGEgcmVmZXJlbmNlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MzcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEdyYXBoaWNzTGF5ZXJzIGFsd2F5cyBoYXZlIGEg
R3JhcGhpY3NMYXllckNsaWVudCBhdHRhY2hlZCwKKyAgICAgICAgc28gbWFrZSBjbGllbnQoKSBh
IHJlZmVyZW5jZSBhbmQgcmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgYnJhbmNoZXMuCisgICAgICAg
IFRoZSBhdXRob3Igb2YgdGhlIGNoYW5nZXMgaW4gdGhlIG1hYyBwb3J0IGlzIEFuZHJlYXMgS2xp
bmcgPGFrbGluZ0BhcHBsZS5jb20+LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyOjpwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjphZGRSZXBhaW50UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpkdW1wQ2hp
bGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpwYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6ZGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXJGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OkdyYXBoaWNzTGF5ZXJDQSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFy
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y29tcHV0ZVBvc2l0aW9u
UmVsYXRpdmVUb0Jhc2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpmbHVz
aENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDQTo6Y29tcHV0ZVZpc2libGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDQTo6cmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXllckNvbnRlbnRzU2NhbGVNdWx0aXBsaWVy
Rm9yTmV3VGlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpwbGF0Zm9y
bUNBTGF5ZXJTaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXllclNob3VsZFRlbXBvcmFyaWx5UmV0YWlu
VGlsZUNvaG9ydHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVD
b250ZW50c09wYXF1ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZUNvbnRlbnRzU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzd2Fw
RnJvbU9yVG9UaWxlZExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
bm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6bm90aWZ5Q2hhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpjb21taXRMYXllckNoYW5nZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21w
b3NpdGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0aW5nQ29v
cmRpbmF0b3I6OmNyZWF0ZVJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGlu
Z0Nvb3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpub3RpZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y29tcHV0ZVRyYW5zZm9ybWVkVmlzaWJsZVJl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphbmltYXRp
b25TdGFydGVkVGltZXJGaXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJCYWNraW5nOjpjcmVhdGVHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29t
cG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JUb3BPdmVyaGFuZ0FyZWEpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckJvdHRvbU92ZXJoYW5nQXJl
YSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUxheWVy
Rm9ySGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlTGF5ZXJGb3JGb290ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjp1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyQ29tcG9zaXRvcjo6ZW5zdXJlUm9vdExheWVyKToKKwogMjAxNC0wNS0wMiAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIENvZGVDbGVhbnVwOiBSZW1v
dmUgKk1haW50YWluc1BpeGVsQWxpZ25tZW50IGZyb20gR3JhcGhpY3NMYXllciouCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggNWFkODI2NzhiZDQ0NDg0MDdjMzIzZmY2ZDIxMzVmODU4YTQ1YmU1ZC4uZjU1
MWFkMWVhZDJiNTdiNWJlNDQ3ZDdiZjkxNTNhYjRjNmQ0ZDZkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDE0LTA1LTAyICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1z
dW5nLmNvbT4KKworICAgICAgICBHcmFwaGljc0xheWVyOjpjbGllbnQoKSBzaG91bGQgcmV0dXJu
IGEgcmVmZXJlbmNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI2MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgIEdyYXBoaWNzTGF5ZXJzIGFsd2F5cyBoYXZlIGEgR3JhcGhpY3NMYXllckNsaWVudCBhdHRh
Y2hlZCwKKyAgICAgICAgc28gbWFrZSBjbGllbnQoKSBhIHJlZmVyZW5jZSBhbmQgcmVtb3ZlIHNv
bWUgdW5uZWNlc3NhcnkgYnJhbmNoZXMuCisgICAgICAgIFRoZSBhdXRob3Igb2YgdGhlIGNoYW5n
ZXMgaW4gdGhlIG1hYyBwb3J0IGlzIEFuZHJlYXMgS2xpbmcgPGFrbGluZ0BhcHBsZS5jb20+Lgor
CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpzZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nKToKKwogMjAxNC0wNC0zMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KIAogICAgICAgICBSb2xsIG91dCBmaXggZm9yIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE2Mzc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmEyMzRkMmJiMTVkNDgw
MWNkMmY5OTg1ZTY4N2E4ZDZlNjhkNGIzYS4uZTg2YzM1ZDk5ODc2OWYzMTM5N2Q0YWRhMTE4ZjM0
N2NlOTYwZDI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA1LTAyICBIeW93
b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBHcmFwaGljc0xheWVy
OjpjbGllbnQoKSBzaG91bGQgcmV0dXJuIGEgcmVmZXJlbmNlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MzcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEdyYXBoaWNzTGF5ZXJzIGFsd2F5cyBoYXZlIGEg
R3JhcGhpY3NMYXllckNsaWVudCBhdHRhY2hlZCwKKyAgICAgICAgc28gbWFrZSBjbGllbnQoKSBh
IHJlZmVyZW5jZSBhbmQgcmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgYnJhbmNoZXMuCisgICAgICAg
IFRoZSBhdXRob3Igb2YgdGhlIGNoYW5nZXMgaW4gdGhlIG1hYyBwb3J0IGlzIEFuZHJlYXMgS2xp
bmcgPGFrbGluZ0BhcHBsZS5jb20+LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1Bh
Z2VPdmVybGF5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VPdmVybGF5Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VPdmVybGF5Q29udHJv
bGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Z3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0
R3RrOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdEd0azo6Y3Jl
YXRlUGFnZU92ZXJsYXlMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9H
cmFwaGljc0xheWVyQ0FSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZUNvbnRleHQ6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEpOgorCiAyMDE0LTA1LTAyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5j
b20+CiAKICAgICAgICAgW0NvY29hXSBSZW1vdmUgdW51c2VkIFdLRXJyb3JSZWNvdmVyeUF0dGVt
cHRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYzU4NGY2MmFkZGQ2YTUzNjc0YjhhMmRmZWVh
OTU2M2FlZjNlMTNkNy4uNzliZTc2MTY4NDg3OTQ1YjUwMDhhYjNiOWRlMzNjNzU2NmIwZDRlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTI4MiwxMCArMjgyLDEwIEBAIF9fWk43V2ViQ29yZTEz
R3JhcGhpY3NMYXllcjE3c3VzcGVuZEFuaW1hdGlvbnNFZAogX19aTjdXZWJDb3JlMTNHcmFwaGlj
c0xheWVyMThzZXRCYWNrZ3JvdW5kQ29sb3JFUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmUxM0dy
YXBoaWNzTGF5ZXIyMHNldFJlcGxpY2F0ZWRCeUxheWVyRVBTMF8KIF9fWk43V2ViQ29yZTEzR3Jh
cGhpY3NMYXllcjU0bm90ZURldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZEluY2x1ZGluZ0Rl
c2NlbmRhbnRzRXYKLV9fWk43V2ViQ29yZTEzR3JhcGhpY3NMYXllcjZjcmVhdGVFUE5TXzIwR3Jh
cGhpY3NMYXllckZhY3RvcnlFUE5TXzE5R3JhcGhpY3NMYXllckNsaWVudEUKK19fWk43V2ViQ29y
ZTEzR3JhcGhpY3NMYXllcjZjcmVhdGVFUE5TXzIwR3JhcGhpY3NMYXllckZhY3RvcnlFUk5TXzE5
R3JhcGhpY3NMYXllckNsaWVudEUKIF9fWk43V2ViQ29yZTEzR3JhcGhpY3NMYXllcjdzZXRTaXpl
RVJLTlNfOUZsb2F0U2l6ZUUKIF9fWk43V2ViQ29yZTEzR3JhcGhpY3NMYXllcjhhZGRDaGlsZEVQ
UzBfCi1fX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXJDMkVQTlNfMTlHcmFwaGljc0xheWVyQ2xp
ZW50RQorX19aTjdXZWJDb3JlMTNHcmFwaGljc0xheWVyQzJFUk5TXzE5R3JhcGhpY3NMYXllckNs
aWVudEUKIF9fWk43V2ViQ29yZTEzR3JhcGhpY3NMYXllckQyRXYKIF9fWk43V2ViQ29yZTEzSFRU
UEhlYWRlck1hcEMxRXYKIF9fWk43V2ViQ29yZTEzSFRUUEhlYWRlck1hcEQxRXYKQEAgLTU4NSw3
ICs1ODUsNyBAQCBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTQwcGxhdGZvcm1DQUxheWVy
U2V0TmVlZHNUb1JldmFsaWRhdGVUaWxlc0V2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJD
QTdzZXROYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0E3
c2V0U2l6ZUVSS05TXzlGbG9hdFNpemVFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQThh
ZGRDaGlsZEVQTlNfMTNHcmFwaGljc0xheWVyRQotX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVy
Q0FDMkVQTlNfMTlHcmFwaGljc0xheWVyQ2xpZW50RQorX19aTjdXZWJDb3JlMTVHcmFwaGljc0xh
eWVyQ0FDMkVSTlNfMTlHcmFwaGljc0xheWVyQ2xpZW50RQogX19aTjdXZWJDb3JlMTVHcmFwaGlj
c0xheWVyQ0FEMkV2CiBfX1pON1dlYkNvcmUxNUhpdFRlc3RMb2NhdGlvbjEycmVjdEZvclBvaW50
RVJLTlNfMTFMYXlvdXRQb2ludEVqampqCiBfX1pON1dlYkNvcmUxNUhpdFRlc3RMb2NhdGlvbkMx
RVJLTlNfMTBGbG9hdFBvaW50RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCA3YzA3ZDRjMmZiYWY2NmY5OGU3YjY3MzFiYmI4
ZjU0M2I0OThhZDY1Li44NjlhZTE0NTdmMmFkMTIwMzJmODdlODFhMTg2NzgxY2NmNmE1ZDhhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIEtleWZyYW1lVmFsdWVMaXN0OjppbnNlcnQoUGFz
c093blB0cjxjb25zdCBBbmltYXRpb25WYWx1ZT4gdmFsdWUpCiAgICAgbV92YWx1ZXMuYXBwZW5k
KHZhbHVlKTsKIH0KIAotR3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVy
Q2xpZW50KiBjbGllbnQpCitHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5
ZXJDbGllbnQmIGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fYW5jaG9y
UG9pbnQoMC41ZiwgMC41ZiwgMCkKICAgICAsIG1fb3BhY2l0eSgxKQpAQCAtMTAxLDggKzEwMSw3
IEBAIEdyYXBoaWNzTGF5ZXI6OkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xp
ZW50KQogICAgICwgbV9jdXN0b21CZWhhdmlvcihOb0N1c3RvbUJlaGF2aW9yKQogewogI2lmbmRl
ZiBOREVCVUcKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT52ZXJpZnlOb3RQ
YWludGluZygpOworICAgIG1fY2xpZW50LnZlcmlmeU5vdFBhaW50aW5nKCk7CiAjZW5kaWYKIH0K
IApAQCAtMTE1LDggKzExNCw3IEBAIEdyYXBoaWNzTGF5ZXI6On5HcmFwaGljc0xheWVyKCkKIHZv
aWQgR3JhcGhpY3NMYXllcjo6d2lsbEJlRGVzdHJveWVkKCkKIHsKICNpZm5kZWYgTkRFQlVHCi0g
ICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dmVyaWZ5Tm90UGFpbnRpbmcoKTsK
KyAgICBtX2NsaWVudC52ZXJpZnlOb3RQYWludGluZygpOwogI2VuZGlmCiAgICAgaWYgKG1fcmVw
bGljYUxheWVyKQogICAgICAgICBtX3JlcGxpY2FMYXllci0+c2V0UmVwbGljYXRlZExheWVyKDAp
OwpAQCAtMzI2LDE1ICszMjQsMTMgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpzZXRCYWNrZ3JvdW5k
Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OnBhaW50R3Jh
cGhpY3NMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiBjbGlwKQogewotICAgIGlmIChtX2NsaWVudCkgewotICAgICAgICBGbG9hdFNpemUgb2Zm
c2V0ID0gb2Zmc2V0RnJvbVJlbmRlcmVyKCk7Ci0gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKC1v
ZmZzZXQpOworICAgIEZsb2F0U2l6ZSBvZmZzZXQgPSBvZmZzZXRGcm9tUmVuZGVyZXIoKTsKKyAg
ICBjb250ZXh0LnRyYW5zbGF0ZSgtb2Zmc2V0KTsKIAotICAgICAgICBGbG9hdFJlY3QgY2xpcFJl
Y3QoY2xpcCk7Ci0gICAgICAgIGNsaXBSZWN0Lm1vdmUob2Zmc2V0KTsKKyAgICBGbG9hdFJlY3Qg
Y2xpcFJlY3QoY2xpcCk7CisgICAgY2xpcFJlY3QubW92ZShvZmZzZXQpOwogCi0gICAgICAgIG1f
Y2xpZW50LT5wYWludENvbnRlbnRzKHRoaXMsIGNvbnRleHQsIG1fcGFpbnRpbmdQaGFzZSwgY2xp
cFJlY3QpOwotICAgIH0KKyAgICBtX2NsaWVudC5wYWludENvbnRlbnRzKHRoaXMsIGNvbnRleHQs
IG1fcGFpbnRpbmdQaGFzZSwgY2xpcFJlY3QpOwogfQogCiBTdHJpbmcgR3JhcGhpY3NMYXllcjo6
YW5pbWF0aW9uTmFtZUZvclRyYW5zaXRpb24oQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5KQpA
QCAtNTU3LDcgKzU1Myw3IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6cmVzZXRUcmFja2VkUmVwYWlu
dHMoKQogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OmFkZFJlcGFpbnRSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVwYWludFJlY3QpCiB7Ci0gICAgaWYgKG1fY2xpZW50LT5pc1RyYWNraW5nUmVwYWludHMo
KSkgeworICAgIGlmIChtX2NsaWVudC5pc1RyYWNraW5nUmVwYWludHMoKSkgewogICAgICAgICBG
bG9hdFJlY3QgbGFyZ2VzdFJlcGFpbnRSZWN0KEZsb2F0UG9pbnQoKSwgbV9zaXplKTsKICAgICAg
ICAgbGFyZ2VzdFJlcGFpbnRSZWN0LmludGVyc2VjdChyZXBhaW50UmVjdCk7CiAgICAgICAgIFJl
cGFpbnRNYXA6Oml0ZXJhdG9yIHJlcGFpbnRJdCA9IHJlcGFpbnRSZWN0TWFwKCkuZmluZCh0aGlz
KTsKQEAgLTU5Miw3ICs1ODgsNyBAQCBzdGF0aWMgdm9pZCBkdW1wQ2hpbGRyZW4oVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mIGNoaWxkcmVuLAogewogICAgIHRv
dGFsQ2hpbGRDb3VudCArPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChhdXRvKiBjaGlsZCA6
IGNoaWxkcmVuKSB7Ci0gICAgICAgIGlmICghY2hpbGQtPmNsaWVudCgpLT5zaG91bGRTa2lwTGF5
ZXJJbkR1bXAoY2hpbGQpKSB7CisgICAgICAgIGlmICghY2hpbGQtPmNsaWVudCgpLnNob3VsZFNr
aXBMYXllckluRHVtcChjaGlsZCkpIHsKICAgICAgICAgICAgIGNoaWxkLT5kdW1wTGF5ZXIodHMs
IGluZGVudCArIDIsIGJlaGF2aW9yKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CkBAIC02NTEsNyArNjQ3LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGllcyhU
ZXh0U3RyZWFtJiB0cywgaW50IGluZGVudCwgTGF5ZXJUcmVlQXNUZXh0QmUKICAgICAgICAgdHMg
PDwgIihwcmVzZXJ2ZXMzRCAiIDw8IG1fcHJlc2VydmVzM0QgPDwgIilcbiI7CiAgICAgfQogCi0g
ICAgaWYgKG1fZHJhd3NDb250ZW50ICYmIG1fY2xpZW50LT5zaG91bGREdW1wUHJvcGVydHlGb3JM
YXllcih0aGlzLCAiZHJhd3NDb250ZW50IikpIHsKKyAgICBpZiAobV9kcmF3c0NvbnRlbnQgJiYg
bV9jbGllbnQuc2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIodGhpcywgImRyYXdzQ29udGVudCIp
KSB7CiAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQgKyAxKTsKICAgICAgICAgdHMgPDwg
IihkcmF3c0NvbnRlbnQgIiA8PCBtX2RyYXdzQ29udGVudCA8PCAiKVxuIjsKICAgICB9CkBAIC02
NjgsMTUgKzY2NCwxMCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9wZXJ0aWVzKFRleHRT
dHJlYW0mIHRzLCBpbnQgaW5kZW50LCBMYXllclRyZWVBc1RleHRCZQogCiAgICAgaWYgKGJlaGF2
aW9yICYgTGF5ZXJUcmVlQXNUZXh0RGVidWcpIHsKICAgICAgICAgd3JpdGVJbmRlbnQodHMsIGlu
ZGVudCArIDEpOwotICAgICAgICB0cyA8PCAiKCI7Ci0gICAgICAgIGlmIChtX2NsaWVudCkKLSAg
ICAgICAgICAgIHRzIDw8ICJjbGllbnQgIiA8PCBzdGF0aWNfY2FzdDx2b2lkKj4obV9jbGllbnQp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0cyA8PCAibm8gY2xpZW50IjsKLSAgICAgICAg
dHMgPDwgIilcbiI7CisgICAgICAgIHRzIDw8ICIoY2xpZW50ICIgPDwgc3RhdGljX2Nhc3Q8dm9p
ZCo+KCZtX2NsaWVudCkgPDwgIilcbiI7CiAgICAgfQogCi0gICAgaWYgKG1fYmFja2dyb3VuZENv
bG9yLmlzVmFsaWQoKSAmJiBtX2NsaWVudC0+c2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIodGhp
cywgImJhY2tncm91bmRDb2xvciIpKSB7CisgICAgaWYgKG1fYmFja2dyb3VuZENvbG9yLmlzVmFs
aWQoKSAmJiBtX2NsaWVudC5zaG91bGREdW1wUHJvcGVydHlGb3JMYXllcih0aGlzLCAiYmFja2dy
b3VuZENvbG9yIikpIHsKICAgICAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCArIDEpOwogICAg
ICAgICB0cyA8PCAiKGJhY2tncm91bmRDb2xvciAiIDw8IG1fYmFja2dyb3VuZENvbG9yLm5hbWVG
b3JSZW5kZXJUcmVlQXNUZXh0KCkgPDwgIilcbiI7CiAgICAgfQpAQCAtNzE4LDcgKzcwOSw3IEBA
IHZvaWQgR3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIGludCBp
bmRlbnQsIExheWVyVHJlZUFzVGV4dEJlCiAgICAgICAgIHRzIDw8ICIpXG4iOwogICAgIH0KIAot
ICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVSZXBhaW50UmVjdHMgJiYg
cmVwYWludFJlY3RNYXAoKS5jb250YWlucyh0aGlzKSAmJiAhcmVwYWludFJlY3RNYXAoKS5nZXQo
dGhpcykuaXNFbXB0eSgpICYmIG1fY2xpZW50LT5zaG91bGREdW1wUHJvcGVydHlGb3JMYXllcih0
aGlzLCAicmVwYWludFJlY3RzIikpIHsKKyAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1Rl
eHRJbmNsdWRlUmVwYWludFJlY3RzICYmIHJlcGFpbnRSZWN0TWFwKCkuY29udGFpbnModGhpcykg
JiYgIXJlcGFpbnRSZWN0TWFwKCkuZ2V0KHRoaXMpLmlzRW1wdHkoKSAmJiBtX2NsaWVudC5zaG91
bGREdW1wUHJvcGVydHlGb3JMYXllcih0aGlzLCAicmVwYWludFJlY3RzIikpIHsKICAgICAgICAg
d3JpdGVJbmRlbnQodHMsIGluZGVudCArIDEpOwogICAgICAgICB0cyA8PCAiKHJlcGFpbnQgcmVj
dHNcbiI7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVwYWludFJlY3RNYXAoKS5n
ZXQodGhpcykuc2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCAwMzU3ZjJmYjJkNDA3Yjk4N2IxNWNlYWMzMmVk
YzQ0YmE2OWEwYjQzLi4zNjc3YjMyNTZmMTZjM2QwYTNhZGQ2ZjhhYjY2OWQ5MGJkMzZmMzdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5o
CkBAIC0yMjYsNyArMjI2LDcgQEAgcHJvdGVjdGVkOgogY2xhc3MgR3JhcGhpY3NMYXllciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR3JhcGhpY3NMYXllcik7IFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXll
cj4gY3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiwgR3JhcGhpY3NMYXllckNsaWVudCopOwor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlKEdyYXBoaWNz
TGF5ZXJGYWN0b3J5KiwgR3JhcGhpY3NMYXllckNsaWVudCYpOwogICAgIAogICAgIHZpcnR1YWwg
fkdyYXBoaWNzTGF5ZXIoKTsKIApAQCAtMjM1LDcgKzIzNSw3IEBAIHB1YmxpYzoKICAgICB0eXBl
ZGVmIHVpbnQ2NF90IFBsYXRmb3JtTGF5ZXJJRDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXJJ
RCBwcmltYXJ5TGF5ZXJJRCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAotICAgIEdyYXBoaWNzTGF5
ZXJDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CisgICAgR3JhcGhp
Y3NMYXllckNsaWVudCYgY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAg
IC8vIExheWVyIG5hbWUuIE9ubHkgdXNlZCB0byBpZGVudGlmeSBsYXllcnMgaW4gZGVidWcgb3V0
cHV0CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CkBA
IC00NjEsOCArNDYxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRBcHBsaWVzUGFn
ZVNjYWxlKGJvb2wgYXBwbGllc1NjYWxlID0gdHJ1ZSkgeyBtX2FwcGxpZXNQYWdlU2NhbGUgPSBh
cHBsaWVzU2NhbGU7IH0KICAgICB2aXJ0dWFsIGJvb2wgYXBwbGllc1BhZ2VTY2FsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXBwbGllc1BhZ2VTY2FsZTsgfQogCi0gICAgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+cGFnZVNjYWxlRmFjdG9y
KCkgOiAxOyB9Ci0gICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBt
X2NsaWVudCA/IG1fY2xpZW50LT5kZXZpY2VTY2FsZUZhY3RvcigpIDogMTsgfQorICAgIGZsb2F0
IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3Rv
cigpOyB9CisgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2Ns
aWVudC5kZXZpY2VTY2FsZUZhY3RvcigpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQ
YWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkgeyB9CiAgICAgdm9pZCBub3RlRGV2aWNlT3JQYWdlU2Nh
bGVGYWN0b3JDaGFuZ2VkSW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKQEAgLTU0NSwxNCArNTQ1LDE0
IEBAIHByb3RlY3RlZDoKICAgICBHcmFwaGljc0xheWVyKiByZXBsaWNhdGVkTGF5ZXIoKSBjb25z
dCB7IHJldHVybiBtX3JlcGxpY2F0ZWRMYXllcjsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRSZXBs
aWNhdGVkTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpIHsgbV9yZXBsaWNhdGVkTGF5ZXIgPSBs
YXllcjsgfQogCi0gICAgR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50Kik7CisgICAg
ZXhwbGljaXQgR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50Jik7CiAKICAgICB2b2lk
IGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50LCBMYXllclRyZWVBc1RleHRC
ZWhhdmlvcikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGR1bXBBZGRpdGlvbmFsUHJvcGVydGll
cyhUZXh0U3RyZWFtJiwgaW50IC8qaW5kZW50Ki8sIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBj
b25zdCB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBnZXREZWJ1Z0JvcmRlckluZm8oQ29sb3ImLCBm
bG9hdCYgd2lkdGgpIGNvbnN0OwogCi0gICAgR3JhcGhpY3NMYXllckNsaWVudCogbV9jbGllbnQ7
CisgICAgR3JhcGhpY3NMYXllckNsaWVudCYgbV9jbGllbnQ7CiAgICAgU3RyaW5nIG1fbmFtZTsK
ICAgICAKICAgICAvLyBPZmZzZXQgZnJvbSB0aGUgb3duaW5nIHJlbmRlcmVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3Rvcnku
aAppbmRleCA3MDhjOGM2OTlhOTFlNTZlZmJjMThiN2UxYmI1YTUxMjJmNjI5ZTFhLi4zYzBmM2Qx
NzNhNTA0MWVlODQ3MjZhMTNhYjEyNzZjN2JhMDQ3ZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmgKQEAgLTM3
LDcgKzM3LDcgQEAgY2xhc3MgR3JhcGhpY3NMYXllckZhY3RvcnkgewogcHVibGljOgogICAgIHZp
cnR1YWwgfkdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgeyB9CiAKLSAgICB2aXJ0dWFsIHN0ZDo6dW5p
cXVlX3B0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJD
bGllbnQqKSA9IDA7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4g
Y3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50JikgPSAwOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggNjIxYzgzZWNhNmE2MDQzOTJl
MmEzNzQzZmUxNDc2ZDRjZGI4NDJmZi4uMzkyNmNkYzE1NWQxODI0YmMzYjcxYjFmY2E1N2I3ZDcw
NjBkMjY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0zMDksNyArMzA5LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRGaWx0ZXJBbmltYXRpb25zKCkKIH0KICNlbmRpZgog
Ci1zdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdy
YXBoaWNzTGF5ZXJGYWN0b3J5KiBmYWN0b3J5LCBHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQp
CitzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdy
YXBoaWNzTGF5ZXJGYWN0b3J5KiBmYWN0b3J5LCBHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQp
CiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGdyYXBoaWNzTGF5ZXI7CiAg
ICAgaWYgKCFmYWN0b3J5KQpAQCAtMzYwLDcgKzM2MCw3IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1D
QUFuaW1hdGlvbj4gR3JhcGhpY3NMYXllckNBOjpjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9uKFBs
YXRmCiAjZW5kaWYKIH0KIAotR3JhcGhpY3NMYXllckNBOjpHcmFwaGljc0xheWVyQ0EoR3JhcGhp
Y3NMYXllckNsaWVudCogY2xpZW50KQorR3JhcGhpY3NMYXllckNBOjpHcmFwaGljc0xheWVyQ0Eo
R3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQogICAgIDogR3JhcGhpY3NMYXllcihjbGllbnQp
CiAgICAgLCBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlKE5vQ29udGVudHNMYXllcikKICAgICAsIG1f
aXNQYWdlVGlsZWRCYWNraW5nTGF5ZXIoZmFsc2UpCkBAIC0zNzMsNyArMzczLDcgQEAgR3JhcGhp
Y3NMYXllckNBOjpHcmFwaGljc0xheWVyQ0EoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQog
dm9pZCBHcmFwaGljc0xheWVyQ0E6OmluaXRpYWxpemUoKQogewogICAgIFBsYXRmb3JtQ0FMYXll
cjo6TGF5ZXJUeXBlIGxheWVyVHlwZSA9IFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlV2ViTGF5
ZXI7Ci0gICAgaWYgKG1fY2xpZW50ICYmIG1fY2xpZW50LT5zaG91bGRVc2VUaWxlZEJhY2tpbmco
dGhpcykpIHsKKyAgICBpZiAoY2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNraW5nKHRoaXMpKSB7
CiAgICAgICAgIGxheWVyVHlwZSA9IFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlUGFnZVRpbGVk
QmFja2luZ0xheWVyOwogICAgICAgICBtX2lzUGFnZVRpbGVkQmFja2luZ0xheWVyID0gdHJ1ZTsK
ICAgICB9CkBAIC04NTgsOCArODU4LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnJlbW92ZUFu
aW1hdGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUpCiAKIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjpwbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKENGVGltZUludGVydmFsIHN0YXJ0
VGltZSkKIHsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5ub3RpZnlBbmlt
YXRpb25TdGFydGVkKHRoaXMsIHN0YXJ0VGltZSk7CisgICAgY2xpZW50KCkubm90aWZ5QW5pbWF0
aW9uU3RhcnRlZCh0aGlzLCBzdGFydFRpbWUpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
c2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQpAQCAtMTAxMCw4ICsx
MDA5LDcgQEAgRmxvYXRQb2ludCBHcmFwaGljc0xheWVyQ0E6OmNvbXB1dGVQb3NpdGlvblJlbGF0
aXZlVG9CYXNlKGZsb2F0JiBwYWdlU2NhbGUpIGNvbnMKICAgICBGbG9hdFBvaW50IG9mZnNldDsK
ICAgICBmb3IgKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGN1cnJMYXllciA9IHRoaXM7IGN1cnJMYXll
cjsgY3VyckxheWVyID0gY3VyckxheWVyLT5wYXJlbnQoKSkgewogICAgICAgICBpZiAoY3Vyckxh
eWVyLT5hcHBsaWVzUGFnZVNjYWxlKCkpIHsKLSAgICAgICAgICAgIGlmIChjdXJyTGF5ZXItPmNs
aWVudCgpKQotICAgICAgICAgICAgICAgIHBhZ2VTY2FsZSA9IGN1cnJMYXllci0+cGFnZVNjYWxl
RmFjdG9yKCk7CisgICAgICAgICAgICBwYWdlU2NhbGUgPSBjdXJyTGF5ZXItPnBhZ2VTY2FsZUZh
Y3RvcigpOwogICAgICAgICAgICAgcmV0dXJuIG9mZnNldDsKICAgICAgICAgfQogCkBAIC0xMDM5
LDggKzEwMzcsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6Zmx1c2hDb21wb3NpdGluZ1N0YXRl
Rm9yVGhpc0xheWVyT25seSgpCiAgICAgY29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJz
KGNvbW1pdFN0YXRlLCBwYWdlU2NhbGVGYWN0b3IsIG9mZnNldCwgbV92aXNpYmxlUmVjdCk7CiAg
ICAgY29tbWl0TGF5ZXJDaGFuZ2VzQWZ0ZXJTdWJsYXllcnMoY29tbWl0U3RhdGUpOwogCi0gICAg
aWYgKGhhZENoYW5nZXMgJiYgY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5kaWRDb21taXRD
aGFuZ2VzRm9yTGF5ZXIodGhpcyk7CisgICAgaWYgKGhhZENoYW5nZXMpCisgICAgICAgIGNsaWVu
dCgpLmRpZENvbW1pdENoYW5nZXNGb3JMYXllcih0aGlzKTsKIH0KIAogYm9vbCBHcmFwaGljc0xh
eWVyQ0E6OnJlY3Vyc2l2ZVZpc2libGVSZWN0Q2hhbmdlUmVxdWlyZXNGbHVzaChjb25zdCBUcmFu
c2Zvcm1TdGF0ZSYgc3RhdGUpIGNvbnN0CkBAIC0xMTI4LDEyICsxMTI2LDExIEBAIEZsb2F0UmVj
dCBHcmFwaGljc0xheWVyQ0E6OmNvbXB1dGVWaXNpYmxlUmVjdChUcmFuc2Zvcm1TdGF0ZSYgc3Rh
dGUsIENvbXB1dGVWaXNpCiAgICAgVHJhbnNmb3JtU3RhdGU6OlRyYW5zZm9ybUFjY3VtdWxhdGlv
biBhY2N1bXVsYXRpb24gPSBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVU
cmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybTsKIAogICAgIEZsb2F0
UG9pbnQgcG9zaXRpb24gPSBtX3Bvc2l0aW9uOwotICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAg
Y2xpZW50KCktPmN1c3RvbVBvc2l0aW9uRm9yVmlzaWJsZVJlY3RDb21wdXRhdGlvbih0aGlzLCBw
b3NpdGlvbik7CisgICAgY2xpZW50KCkuY3VzdG9tUG9zaXRpb25Gb3JWaXNpYmxlUmVjdENvbXB1
dGF0aW9uKHRoaXMsIHBvc2l0aW9uKTsKIAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVy
VHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJlbnRUcmFuc2Zvcm07Ci0g
ICAgaWYgKChmbGFncyAmIFJlc3BlY3RBbmltYXRpbmdUcmFuc2Zvcm1zKSAmJiBjbGllbnQoKSAm
JiBjbGllbnQoKS0+Z2V0Q3VycmVudFRyYW5zZm9ybSh0aGlzLCBjdXJyZW50VHJhbnNmb3JtKSkK
KyAgICBpZiAoKGZsYWdzICYgUmVzcGVjdEFuaW1hdGluZ1RyYW5zZm9ybXMpICYmIGNsaWVudCgp
LmdldEN1cnJlbnRUcmFuc2Zvcm0odGhpcywgY3VycmVudFRyYW5zZm9ybSkpCiAgICAgICAgIGxh
eWVyVHJhbnNmb3JtID0gdGhpcy0+bGF5ZXJUcmFuc2Zvcm0ocG9zaXRpb24sICZjdXJyZW50VHJh
bnNmb3JtKTsKICAgICBlbHNlCiAgICAgICAgIGxheWVyVHJhbnNmb3JtID0gdGhpcy0+bGF5ZXJU
cmFuc2Zvcm0ocG9zaXRpb24pOwpAQCAtMTI3MCwxMSArMTI2NywxMSBAQCB2b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6cmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyhjb25zdCBDb21taXRTdGF0ZSYgY29tbWl0
U3RhdGUsIGNvbgogICAgICAgICBjb21taXRMYXllckNoYW5nZXNBZnRlclN1YmxheWVycyhjaGls
ZENvbW1pdFN0YXRlKTsKICAgICB9CiAKLSAgICBpZiAoYWZmZWN0ZWRCeVRyYW5zZm9ybUFuaW1h
dGlvbiAmJiBjbGllbnQoKSAmJiBtX2xheWVyLT5sYXllclR5cGUoKSA9PSBQbGF0Zm9ybUNBTGF5
ZXI6OkxheWVyVHlwZVRpbGVkQmFja2luZ0xheWVyKQotICAgICAgICBjbGllbnQoKS0+bm90aWZ5
Rmx1c2hCZWZvcmVEaXNwbGF5UmVmcmVzaCh0aGlzKTsKKyAgICBpZiAoYWZmZWN0ZWRCeVRyYW5z
Zm9ybUFuaW1hdGlvbiAmJiBtX2xheWVyLT5sYXllclR5cGUoKSA9PSBQbGF0Zm9ybUNBTGF5ZXI6
OkxheWVyVHlwZVRpbGVkQmFja2luZ0xheWVyKQorICAgICAgICBjbGllbnQoKS5ub3RpZnlGbHVz
aEJlZm9yZURpc3BsYXlSZWZyZXNoKHRoaXMpOwogCi0gICAgaWYgKGhhZENoYW5nZXMgJiYgY2xp
ZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5kaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIodGhpcyk7
CisgICAgaWYgKGhhZENoYW5nZXMpCisgICAgICAgIGNsaWVudCgpLmRpZENvbW1pdENoYW5nZXNG
b3JMYXllcih0aGlzKTsKIH0KIAogYm9vbCBHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXll
clNob3dSZXBhaW50Q291bnRlcihQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtTGF5ZXIpIGNvbnN0
CkBAIC0xMzA0LDIxICsxMzAxLDE3IEBAIGZsb2F0IEdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1D
QUxheWVyRGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAogCiBmbG9hdCBHcmFwaGljc0xheWVyQ0E6
OnBsYXRmb3JtQ0FMYXllckNvbnRlbnRzU2NhbGVNdWx0aXBsaWVyRm9yTmV3VGlsZXMoUGxhdGZv
cm1DQUxheWVyKikgY29uc3QKIHsKLSAgICByZXR1cm4gY2xpZW50KCkgPyBjbGllbnQoKS0+Y29u
dGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyh0aGlzKSA6IDE7CisgICAgcmV0dXJuIGNs
aWVudCgpLmNvbnRlbnRzU2NhbGVNdWx0aXBsaWVyRm9yTmV3VGlsZXModGhpcyk7CiB9CiAKIGJv
b2wgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJTaG91bGRBZ2dyZXNzaXZlbHlSZXRh
aW5UaWxlcyhQbGF0Zm9ybUNBTGF5ZXIqKSBjb25zdAogewotICAgIGlmIChHcmFwaGljc0xheWVy
Q2xpZW50KiBsYXllckNsaWVudCA9IGNsaWVudCgpKQotICAgICAgICByZXR1cm4gbGF5ZXJDbGll
bnQtPnNob3VsZEFnZ3Jlc3NpdmVseVJldGFpblRpbGVzKHRoaXMpOwotICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gY2xpZW50KCkuc2hvdWxkQWdncmVzc2l2ZWx5UmV0YWluVGlsZXModGhp
cyk7CiB9CiAKIGJvb2wgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJTaG91bGRUZW1w
b3JhcmlseVJldGFpblRpbGVDb2hvcnRzKFBsYXRmb3JtQ0FMYXllciopIGNvbnN0CiB7Ci0gICAg
aWYgKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGxheWVyQ2xpZW50ID0gY2xpZW50KCkpCi0gICAgICAg
IHJldHVybiBsYXllckNsaWVudC0+c2hvdWxkVGVtcG9yYXJpbHlSZXRhaW5UaWxlQ29ob3J0cyh0
aGlzKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gY2xpZW50KCkuc2hvdWxkVGVtcG9y
YXJpbHlSZXRhaW5UaWxlQ29ob3J0cyh0aGlzKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6
OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhDb21taXRTdGF0ZSYgY29tbWl0U3Rh
dGUsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb25SZWxh
dGl2ZVRvQmFzZSwgY29uc3QgRmxvYXRSZWN0JiBvbGRWaXNpYmxlUmVjdCwgVHJhbnNmb3JtYXRp
b25NYXRyaXgqIHRyYW5zZm9ybUZyb21Sb290KQpAQCAtMTY2MSw3ICsxNjU0LDcgQEAgdm9pZCBH
cmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzT3BhcXVlKGZsb2F0IHBhZ2VTY2FsZUZhY3Rv
cikKICAgICBib29sIGNvbnRlbnRzT3BhcXVlID0gbV9jb250ZW50c09wYXF1ZTsKICAgICBpZiAo
Y29udGVudHNPcGFxdWUpIHsKICAgICAgICAgZmxvYXQgY29udGVudHNTY2FsZSA9IGNsYW1wZWRD
b250ZW50c1NjYWxlRm9yU2NhbGUobV9yb290UmVsYXRpdmVTY2FsZUZhY3RvciwgcGFnZVNjYWxl
RmFjdG9yICogZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0gICAgICAgIGlmICghaXNJbnRlZ3JhbChj
b250ZW50c1NjYWxlKSAmJiAhbV9jbGllbnQtPnBhaW50c09wYXF1ZWx5QXROb25JbnRlZ3JhbFNj
YWxlcyh0aGlzKSkKKyAgICAgICAgaWYgKCFpc0ludGVncmFsKGNvbnRlbnRzU2NhbGUpICYmICFt
X2NsaWVudC5wYWludHNPcGFxdWVseUF0Tm9uSW50ZWdyYWxTY2FsZXModGhpcykpCiAgICAgICAg
ICAgICBjb250ZW50c09wYXF1ZSA9IGZhbHNlOwogICAgIH0KICAgICAKQEAgLTI5NDMsNyArMjkz
Niw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c1NjYWxlKGZsb2F0IHBh
Z2VTY2FsZUZhY3RvcikKICAgICBmbG9hdCBjb250ZW50c1NjYWxlID0gY2xhbXBlZENvbnRlbnRz
U2NhbGVGb3JTY2FsZShtX3Jvb3RSZWxhdGl2ZVNjYWxlRmFjdG9yLCBwYWdlU2NhbGVGYWN0b3Ig
KiBkZXZpY2VTY2FsZUZhY3RvcigpKTsKIAogICAgIGlmIChtX2lzUGFnZVRpbGVkQmFja2luZ0xh
eWVyICYmIHRpbGVkQmFja2luZygpKSB7Ci0gICAgICAgIGZsb2F0IHpvb21lZE91dFNjYWxlID0g
bV9jbGllbnQtPnpvb21lZE91dFBhZ2VTY2FsZUZhY3RvcigpICogZGV2aWNlU2NhbGVGYWN0b3Io
KTsKKyAgICAgICAgZmxvYXQgem9vbWVkT3V0U2NhbGUgPSBtX2NsaWVudC56b29tZWRPdXRQYWdl
U2NhbGVGYWN0b3IoKSAqIGRldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgICAgIHRpbGVkQmFja2lu
ZygpLT5zZXRab29tZWRPdXRDb250ZW50c1NjYWxlKHpvb21lZE91dFNjYWxlKTsKICAgICB9CiAK
QEAgLTMxNTQsOCArMzE0Nyw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzd2FwRnJvbU9yVG9U
aWxlZExheWVyKGJvb2wgdXNlVGlsZWRMYXllcikKICAgICAvLyBuZWVkIHRvIHRlbGwgbmV3IGxh
eWVyIHRvIGRyYXcgaXRzZWxmCiAgICAgc2V0TmVlZHNEaXNwbGF5KCk7CiAgICAgCi0gICAgaWYg
KGNsaWVudCgpKQotICAgICAgICBjbGllbnQoKS0+dGlsZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKHRo
aXMsIG1fdXNpbmdUaWxlZEJhY2tpbmcpOworICAgIGNsaWVudCgpLnRpbGVkQmFja2luZ1VzYWdl
Q2hhbmdlZCh0aGlzLCBtX3VzaW5nVGlsZWRCYWNraW5nKTsKIH0KIAogR3JhcGhpY3NMYXllcjo6
Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIEdyYXBoaWNzTGF5ZXJDQTo6ZGVmYXVs
dENvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdApAQCAtMzUwMCw4ICszNDkyLDggQEAgdm9pZCBH
cmFwaGljc0xheWVyQ0E6Om5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChMYXllckNoYW5nZUZsYWdz
IGZsYWdzLCBTY2hlZHVsZUYKIAogICAgIGlmIChzY2hlZHVsZUZsdXNoID09IFNjaGVkdWxlRmx1
c2gpIHsKICAgICAgICAgYm9vbCBuZWVkc0ZsdXNoID0gIWhhZFVuY29tbWl0dGVkQ2hhbmdlcyB8
fCBvbGRDYW5UaHJvdHRsZUxheWVyRmx1c2ggIT0gY2FuVGhyb3R0bGVMYXllckZsdXNoKCk7Ci0g
ICAgICAgIGlmIChuZWVkc0ZsdXNoICYmIG1fY2xpZW50KQotICAgICAgICAgICAgbV9jbGllbnQt
Pm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CisgICAgICAgIGlmIChuZWVkc0ZsdXNoKQorICAg
ICAgICAgICAgY2xpZW50KCkubm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmgKaW5kZXggMWRjODY1NDVjZmZhYmY2MTkxOGNjMWVkZmY2OWQ4OTQ3NjgzMTQyMS4u
MjIyMDg0NGYyZWE5Njg4YjA3NTFiOTRjYmEyZjU2ZjNhODZjOGU4MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAg
LTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIC8vIHRvIGtlZXAgdGhlIG92ZXJhbGwgdGlsZSBj
b3N0IGxvdy4KICAgICBzdGF0aWMgY29uc3QgaW50IGtUaWxlZExheWVyVGlsZVNpemUgPSA1MTI7
CiAKLSAgICBHcmFwaGljc0xheWVyQ0EoR3JhcGhpY3NMYXllckNsaWVudCopOworICAgIGV4cGxp
Y2l0IEdyYXBoaWNzTGF5ZXJDQShHcmFwaGljc0xheWVyQ2xpZW50Jik7CiAgICAgdmlydHVhbCB+
R3JhcGhpY3NMYXllckNBKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZSgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggM2Vm
N2MyYmI4YjQ2Y2FlOTYyNDk2NWIzNDg0ZjE3ZjczN2NkYTMwZS4uYzA5NjM2YTBiMGY4NjZmNTQ1
MGFjYWZhZWFmOGYwMjQwZWE5NWQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXIuY3BwCkBAIC0zNSw3ICszNSw3IEBAIFRleHR1cmVNYXBwZXJMYXllciogdG9UZXh0
dXJlTWFwcGVyTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgcmV0dXJuIGxheWVyID8g
dG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihsYXllciktPmxheWVyKCkgOiAwOwogfQogCi1z
dGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBo
aWNzTGF5ZXJGYWN0b3J5KiBmYWN0b3J5LCBHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCitz
dGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBo
aWNzTGF5ZXJGYWN0b3J5KiBmYWN0b3J5LCBHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCiB7
CiAgICAgaWYgKCFmYWN0b3J5KQogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlcj4oY2xpZW50KTsKQEAgLTQzLDcgKzQzLDcgQEAgc3RkOjp1
bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xh
eWVyRmFjdG9yeSogZmFjdG8KICAgICByZXR1cm4gZmFjdG9yeS0+Y3JlYXRlR3JhcGhpY3NMYXll
cihjbGllbnQpOwogfQogCi1HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6R3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQorR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXI6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKEdyYXBoaWNzTGF5ZXJD
bGllbnQmIGNsaWVudCkKICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogICAgICwgbV9sYXll
cihzdGQ6Om1ha2VfdW5pcXVlPFRleHR1cmVNYXBwZXJMYXllcj4oKSkKICAgICAsIG1fY29tcG9z
aXRlZE5hdGl2ZUltYWdlUHRyKDApCkBAIC02MCw5ICs2MCw3IEBAIEdyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihHcmFwaGljc0xheWVyQ2xpZW50
KiBjbGllCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpub3RpZnlDaGFuZ2UoQ2hh
bmdlTWFzayBjaGFuZ2VNYXNrKQogewogICAgIG1fY2hhbmdlTWFzayB8PSBjaGFuZ2VNYXNrOwot
ICAgIGlmICghY2xpZW50KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBjbGllbnQoKS0+bm90aWZ5
Rmx1c2hSZXF1aXJlZCh0aGlzKTsKKyAgICBjbGllbnQoKS5ub3RpZnlGbHVzaFJlcXVpcmVkKHRo
aXMpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXROYW1lKGNvbnN0
IFN0cmluZyYgbmFtZSkKQEAgLTU2MCw3ICs1NTgsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyOjpjb21taXRMYXllckNoYW5nZXMoKQogICAgICAgICBtX2xheWVyLT5zZXRBbmlt
YXRpb25zKG1fYW5pbWF0aW9ucyk7CiAKICAgICBpZiAobV9jaGFuZ2VNYXNrICYgQW5pbWF0aW9u
U3RhcnRlZCkKLSAgICAgICAgY2xpZW50KCktPm5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQodGhpcywg
bV9hbmltYXRpb25TdGFydFRpbWUpOworICAgICAgICBjbGllbnQoKS5ub3RpZnlBbmltYXRpb25T
dGFydGVkKHRoaXMsIG1fYW5pbWF0aW9uU3RhcnRUaW1lKTsKIAogICAgIGlmIChtX2NoYW5nZU1h
c2sgJiBGaXhlZFRvVmlld3BvckNoYW5nZSkKICAgICAgICAgbV9sYXllci0+c2V0Rml4ZWRUb1Zp
ZXdwb3J0KGZpeGVkVG9WaWV3cG9ydCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLmgKaW5kZXggMTJlNWZhMzkyMjZiMmFiMDJiNDcyZDAwZDE3N2IzYjIyMDRjMTIxNC4u
MGUwM2Q4Mzg2YjEyMTU3NTNkOGY5MWVmNTk5NDlhZGM5MGYwY2E0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciA6IHB1YmxpYyBHcmFw
aGljc0xheWVyLCBwdWJsaWMgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI6OkNsaWVudCB7CiBw
dWJsaWM6Ci0gICAgZXhwbGljaXQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoR3JhcGhpY3NM
YXllckNsaWVudCopOworICAgIGV4cGxpY2l0IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKEdy
YXBoaWNzTGF5ZXJDbGllbnQmKTsKICAgICB2aXJ0dWFsIH5HcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlcigpOwogCiAgICAgdm9pZCBzZXRTY3JvbGxDbGllbnQoVGV4dHVyZU1hcHBlckxheWVyOjpT
Y3JvbGxpbmdDbGllbnQqIGNsaWVudCkgeyBtX2xheWVyLT5zZXRTY3JvbGxDbGllbnQoY2xpZW50
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0
b3IuY3BwCmluZGV4IDRmOWU2NTRmMjIxZWIzNGUwMTZjOWYyYzMxNGE2NjM1MWRiMGMwYmMuLjUy
YjFlMWQyOGIwNTVkOWUyMmVjNDMzNTYyNGM0NzcxNWFkZTY5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGlu
Z0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKQEAgLTE3NCw3ICsx
NzQsNyBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNyZWF0ZVJvb3RMYXllcihjb25z
dCBJbnRTaXplJiBzaXplKQogewogICAgIEFTU0VSVCghbV9yb290TGF5ZXIpOwogICAgIC8vIENy
ZWF0ZSBhIHJvb3QgbGF5ZXIuCi0gICAgbV9yb290TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVh
dGUodGhpcywgdGhpcyk7CisgICAgbV9yb290TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUo
dGhpcywgKnRoaXMpOwogI2lmbmRlZiBOREVCVUcKICAgICBtX3Jvb3RMYXllci0+c2V0TmFtZSgi
Q29tcG9zaXRpbmdDb29yZGluYXRvciByb290IGxheWVyIik7CiAjZW5kaWYKQEAgLTI1Nyw3ICsy
NTcsNyBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnBhaW50Q29udGVudHMoY29uc3Qg
R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgRwogICAgIG1fY2xpZW50LT5wYWludExheWVy
Q29udGVudHMoZ3JhcGhpY3NMYXllciwgZ3JhcGhpY3NDb250ZXh0LCBlbmNsb3NpbmdJbnRSZWN0
KGNsaXBSZWN0KSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBDb21wb3Np
dGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQq
IGNsaWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBDb21wb3NpdGluZ0Nvb3Jk
aW5hdG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkK
IHsKICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbmV3IENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcihjbGllbnQpOwogICAgIGxheWVyLT5zZXRDb29yZGluYXRvcih0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oCmlu
ZGV4IGFmYjhiNTY5NmEwNmE3ODkzOTFhMGU0Yzk4NDk2ZWQ0ZjFhNDJlYTQuLjBjODQzMWNkYzE4
ZmFmOWI1OGI5YmMxN2ZlNDNhNWM2MWI0YTc2NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5h
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaApAQCAtMTE0LDcgKzExNCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQp
IG92ZXJyaWRlOwogCiAgICAgLy8gR3JhcGhpY3NMYXllckZhY3RvcnkKLSAgICB2aXJ0dWFsIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNz
TGF5ZXJDbGllbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxHcmFw
aGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVJvb3RDb21wb3NpdGluZ0xheWVySWZOZWVkZWQo
KTsKICAgICB2b2lkIGZsdXNoUGVuZGluZ0ltYWdlQmFja2luZ0NoYW5nZXMoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5k
ZXggYjNiMzFmODQ4ZjM1ZTUzZDY1OTlmOGE3MDUzNjU4YWVlODIwZDBlZS4uMjlmMDE4Y2FjNmZl
NWI2NzdjNWRhNjUwYjMzMWM3NmExMjYwM2M4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTUxLDggKzUxLDggQEAg
c3RhdGljIENvb3JkaW5hdGVkTGF5ZXJJRCB0b0Nvb3JkaW5hdGVkTGF5ZXJJRChHcmFwaGljc0xh
eWVyKiBsYXllcikKIGJvb2wgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpub3RpZnlGbHVzaFJl
cXVpcmVkKCkKIHsKICAgICBBU1NFUlQobV9jb29yZGluYXRvcik7Ci0gICAgaWYgKGNsaWVudCgp
ICYmICFtX2Nvb3JkaW5hdG9yLT5pc0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzKCkpIHsKLSAgICAgICAg
Y2xpZW50KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CisgICAgaWYgKCFtX2Nvb3JkaW5h
dG9yLT5pc0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzKCkpIHsKKyAgICAgICAgY2xpZW50KCkubm90aWZ5
Rmx1c2hSZXF1aXJlZCh0aGlzKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJl
dHVybiBmYWxzZTsKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6ZGlkQ2hhbmdlR2VvbWV0cnkoKQogICAgIHNldFNob3VsZFVwZGF0ZVZpc2libGVSZWN0
KCk7CiB9CiAKLUNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKK0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkK
ICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogI2lmbmRlZiBOREVCVUcKICAgICAsIG1faXNQ
dXJnaW5nKGZhbHNlKQpAQCAtMTEzMyw3ICsxMTMzLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmNvbXB1dGVUcmFuc2Zvcm1lZFZpc2libGVSZWN0KCkKICAgICBtX3Nob3VsZFVw
ZGF0ZVZpc2libGVSZWN0ID0gZmFsc2U7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggY3VycmVu
dFRyYW5zZm9ybSA9IHRyYW5zZm9ybSgpOwogICAgIGlmIChtX21vdmluZ1Zpc2libGVSZWN0KQot
ICAgICAgICBjbGllbnQoKS0+Z2V0Q3VycmVudFRyYW5zZm9ybSh0aGlzLCBjdXJyZW50VHJhbnNm
b3JtKTsKKyAgICAgICAgY2xpZW50KCkuZ2V0Q3VycmVudFRyYW5zZm9ybSh0aGlzLCBjdXJyZW50
VHJhbnNmb3JtKTsKICAgICBtX2xheWVyVHJhbnNmb3JtLnNldExvY2FsVHJhbnNmb3JtKGN1cnJl
bnRUcmFuc2Zvcm0pOwogCiAgICAgbV9sYXllclRyYW5zZm9ybS5zZXRBbmNob3JQb2ludChtX2Fk
anVzdGVkQW5jaG9yUG9pbnQpOwpAQCAtMTIyNiw3ICsxMjI2LDcgQEAgdm9pZCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OnJlc3VtZUFuaW1hdGlvbnMoKQogCiB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6YW5pbWF0aW9uU3RhcnRlZFRpbWVyRmlyZWQoVGltZXI8Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyPiopCiB7Ci0gICAgY2xpZW50KCktPm5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQo
dGhpcywgbV9sYXN0QW5pbWF0aW9uU3RhcnRUaW1lKTsKKyAgICBjbGllbnQoKS5ub3RpZnlBbmlt
YXRpb25TdGFydGVkKHRoaXMsIG1fbGFzdEFuaW1hdGlvblN0YXJ0VGltZSk7CiB9CiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmlu
ZGV4IDUzYjc2ZjEzMjg0ZDU3OWQ3YzI4ZTQwYmRiMWFmYzAzMmFhZmJhMzIuLjE0ODZjMjA3YmUy
ODY0MDQ0OGI1MDYxMzdhNmIwYjQzNDIwMTE0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTYxLDcgKzYxLDcgQEAgY2xh
c3MgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIDogcHVibGljIEdyYXBoaWNzTGF5ZXIKICAgICAs
IHB1YmxpYyBDb29yZGluYXRlZEltYWdlQmFja2luZzo6SG9zdAogICAgICwgcHVibGljIENvb3Jk
aW5hdGVkVGlsZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqKTsKKyAgICBleHBsaWNpdCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYpOwogICAgIHZpcnR1YWwgfkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcigpOwogCiAgICAgLy8gUmVpbXBsZW1lbnRhdGlvbnMgZnJvbSBH
cmFwaGljc0xheWVyLmguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCmluZGV4IDVlM2Y4NTkwMDI2NTcyOTUzMzdmYjhjZmE3NjNjNGM2ZjUyMjZm
NmMuLmQ3MjZhOWY0MzI2NzQ1MjIyNDJjOGE5Njc4ZjkwZmM0NTBhMGE3YWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNjksNyAr
MTY5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IFJlbmRlckxheWVyQmFja2lu
Zzo6Y3JlYXRlR3JhcGhpY3NMYXllcihjb25zdCBTdHIKICAgICBpZiAoUGFnZSogcGFnZSA9IHJl
bmRlcmVyKCkuZnJhbWUoKS5wYWdlKCkpCiAgICAgICAgIGdyYXBoaWNzTGF5ZXJGYWN0b3J5ID0g
cGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZ3JhcGhpY3NMYXllckZhY3RvcnkoKTsKIAotICAgIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBncmFwaGljc0xheWVyID0gR3JhcGhpY3NMYXll
cjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5LCB0aGlzKTsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8R3JhcGhpY3NMYXllcj4gZ3JhcGhpY3NMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShn
cmFwaGljc0xheWVyRmFjdG9yeSwgKnRoaXMpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIGdyYXBo
aWNzTGF5ZXItPnNldE5hbWUobmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGIyZTY4M2JhODM1YWJhMmJlN2QzMTM5
N2MzOGVkM2FlZWEwZjYyNjMuLmRmNGRiNzliODhlN2RjYTQwNTVhMTE1YmZiNDgzYTIyNjA1NzA1
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCkBAIC0yODc4LDcgKzI4NzgsNyBAQCBHcmFwaGljc0xheWVyKiBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnVwZGF0ZUxheWVyRm9yVG9wT3ZlcmhhbmdBcmVhKGJvb2wgd2FudHNMYQog
ICAgIH0KIAogICAgIGlmICghbV9sYXllckZvclRvcE92ZXJoYW5nQXJlYSkgewotICAgICAgICBt
X2xheWVyRm9yVG9wT3ZlcmhhbmdBcmVhID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgICAgICBtX2xheWVyRm9yVG9wT3ZlcmhhbmdBcmVh
ID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsK
ICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIG1fbGF5ZXJGb3JUb3BPdmVyaGFuZ0FyZWEtPnNldE5h
bWUoInRvcCBvdmVyaGFuZyBhcmVhIik7CiAjZW5kaWYKQEAgLTI5MDIsNyArMjkwMiw3IEBAIEdy
YXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JCb3R0b21P
dmVyaGFuZ0FyZWEoYm9vbCB3YW50CiAgICAgfQogCiAgICAgaWYgKCFtX2xheWVyRm9yQm90dG9t
T3ZlcmhhbmdBcmVhKSB7Ci0gICAgICAgIG1fbGF5ZXJGb3JCb3R0b21PdmVyaGFuZ0FyZWEgPSBH
cmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7CisgICAg
ICAgIG1fbGF5ZXJGb3JCb3R0b21PdmVyaGFuZ0FyZWEgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUo
Z3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwogI2lmbmRlZiBOREVCVUcKICAgICAgICAg
bV9sYXllckZvckJvdHRvbU92ZXJoYW5nQXJlYS0+c2V0TmFtZSgiYm90dG9tIG92ZXJoYW5nIGFy
ZWEiKTsKICNlbmRpZgpAQCAtMjkzMiw3ICsyOTMyLDcgQEAgR3JhcGhpY3NMYXllciogUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckhlYWRlcihib29sIHdhbnRzTGF5ZXIpCiAg
ICAgfQogCiAgICAgaWYgKCFtX2xheWVyRm9ySGVhZGVyKSB7Ci0gICAgICAgIG1fbGF5ZXJGb3JI
ZWFkZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhp
cyk7CisgICAgICAgIG1fbGF5ZXJGb3JIZWFkZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3Jh
cGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwogI2lmbmRlZiBOREVCVUcKICAgICAgICAgbV9s
YXllckZvckhlYWRlci0+c2V0TmFtZSgiaGVhZGVyIik7CiAjZW5kaWYKQEAgLTI5NzIsNyArMjk3
Miw3IEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJG
b3JGb290ZXIoYm9vbCB3YW50c0xheWVyKQogICAgIH0KIAogICAgIGlmICghbV9sYXllckZvckZv
b3RlcikgewotICAgICAgICBtX2xheWVyRm9yRm9vdGVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRl
KGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgICAgICBtX2xheWVyRm9yRm9vdGVy
ID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsK
ICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIG1fbGF5ZXJGb3JGb290ZXItPnNldE5hbWUoImZvb3Rl
ciIpOwogI2VuZGlmCkBAIC0zMDM4LDcgKzMwMzgsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpCiAjaWYgRU5BQkxFKFJVQkJFUl9C
QU5ESU5HKQogICAgIGlmIChyZXF1aXJlc092ZXJoYW5nQXJlYXNMYXllcigpKSB7CiAgICAgICAg
IGlmICghbV9sYXllckZvck92ZXJoYW5nQXJlYXMpIHsKLSAgICAgICAgICAgIG1fbGF5ZXJGb3JP
dmVyaGFuZ0FyZWFzID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5
KCksIHRoaXMpOworICAgICAgICAgICAgbV9sYXllckZvck92ZXJoYW5nQXJlYXMgPSBHcmFwaGlj
c0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwogI2lmbmRlZiBO
REVCVUcKICAgICAgICAgICAgIG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLT5zZXROYW1lKCJvdmVy
aGFuZyBhcmVhcyIpOwogI2VuZGlmCkBAIC0zMDY2LDcgKzMwNjYsNyBAQCB2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpCiAKICAgICBpZiAo
cmVxdWlyZXNDb250ZW50U2hhZG93TGF5ZXIoKSkgewogICAgICAgICBpZiAoIW1fY29udGVudFNo
YWRvd0xheWVyKSB7Ci0gICAgICAgICAgICBtX2NvbnRlbnRTaGFkb3dMYXllciA9IEdyYXBoaWNz
TGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCB0aGlzKTsKKyAgICAgICAgICAg
IG1fY29udGVudFNoYWRvd0xheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5
ZXJGYWN0b3J5KCksICp0aGlzKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBtX2NvbnRl
bnRTaGFkb3dMYXllci0+c2V0TmFtZSgiY29udGVudCBzaGFkb3ciKTsKICNlbmRpZgpAQCAtMzA4
NCw3ICszMDg0LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZU92ZXJmbG93
Q29udHJvbHNMYXllcnMoKQogCiAgICAgaWYgKHJlcXVpcmVzSG9yaXpvbnRhbFNjcm9sbGJhckxh
eWVyKCkpIHsKICAgICAgICAgaWYgKCFtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcikgewot
ICAgICAgICAgICAgbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIgPSBHcmFwaGljc0xheWVy
OjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7CisgICAgICAgICAgICBtX2xh
eWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGlj
c0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAgICAgICAgICAgICBtX2xheWVyRm9ySG9yaXpvbnRh
bFNjcm9sbGJhci0+c2V0U2hvd0RlYnVnQm9yZGVyKG1fc2hvd0RlYnVnQm9yZGVycyk7CiAjaWZu
ZGVmIE5ERUJVRwogICAgICAgICAgICAgbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXItPnNl
dE5hbWUoImhvcml6b250YWwgc2Nyb2xsYmFyIGNvbnRhaW5lciIpOwpAQCAtMzEwOCw3ICszMTA4
LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNM
YXllcnMoKQogCiAgICAgaWYgKHJlcXVpcmVzVmVydGljYWxTY3JvbGxiYXJMYXllcigpKSB7CiAg
ICAgICAgIGlmICghbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAgICAgICBt
X2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhp
Y3NMYXllckZhY3RvcnkoKSwgdGhpcyk7CisgICAgICAgICAgICBtX2xheWVyRm9yVmVydGljYWxT
Y3JvbGxiYXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwg
KnRoaXMpOwogICAgICAgICAgICAgbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyLT5zZXRTaG93
RGVidWdCb3JkZXIobV9zaG93RGVidWdCb3JkZXJzKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAg
ICAgICBtX2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXItPnNldE5hbWUoInZlcnRpY2FsIHNjcm9s
bGJhciBjb250YWluZXIiKTsKQEAgLTMxMzEsNyArMzEzMSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjp1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCkKIAogICAgIGlmIChyZXF1
aXJlc1Njcm9sbENvcm5lckxheWVyKCkpIHsKICAgICAgICAgaWYgKCFtX2xheWVyRm9yU2Nyb2xs
Q29ybmVyKSB7Ci0gICAgICAgICAgICBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyID0gR3JhcGhpY3NM
YXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgICAgICAgICAg
bV9sYXllckZvclNjcm9sbENvcm5lciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xh
eWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAgICAgICAgICAgICBtX2xheWVyRm9yU2Nyb2xsQ29ybmVy
LT5zZXRTaG93RGVidWdCb3JkZXIobV9zaG93RGVidWdCb3JkZXJzKTsKICNpZm5kZWYgTkRFQlVH
CiAgICAgICAgICAgICBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyLT5zZXROYW1lKCJzY3JvbGwgY29y
bmVyIik7CkBAIC0zMTU2LDcgKzMxNTYsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
ZW5zdXJlUm9vdExheWVyKCkKICAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9yb290Q29u
dGVudExheWVyKSB7Ci0gICAgICAgIG1fcm9vdENvbnRlbnRMYXllciA9IEdyYXBoaWNzTGF5ZXI6
OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCB0aGlzKTsKKyAgICAgICAgbV9yb290Q29u
dGVudExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCks
ICp0aGlzKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIG1fcm9vdENvbnRlbnRMYXllci0+c2V0
TmFtZSgiY29udGVudCByb290Iik7CiAjZW5kaWYKQEAgLTMxODEsMTkgKzMxODEsMTkgQEAgdm9p
ZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcigpCiAgICAgICAgICAgICBB
U1NFUlQoIW1fY2xpcExheWVyKTsKIAogICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbGF5ZXIgdG8g
aG9zdCB0aGUgY2xpcHBpbmcgbGF5ZXIgYW5kIHRoZSBvdmVyZmxvdyBjb250cm9scyBsYXllcnMu
Ci0gICAgICAgICAgICBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXIgPSBHcmFwaGljc0xheWVy
OjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7CisgICAgICAgICAgICBtX292
ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NM
YXllckZhY3RvcnkoKSwgKnRoaXMpOwogI2lmbmRlZiBOREVCVUcKICAgICAgICAgICAgIG1fb3Zl
cmZsb3dDb250cm9sc0hvc3RMYXllci0+c2V0TmFtZSgib3ZlcmZsb3cgY29udHJvbHMgaG9zdCIp
OwogI2VuZGlmCiAKICAgICAgICAgICAgIC8vIENyZWF0ZSBhIGNsaXBwaW5nIGxheWVyIGlmIHRo
aXMgaXMgYW4gaWZyYW1lCi0gICAgICAgICAgICBtX2NsaXBMYXllciA9IEdyYXBoaWNzTGF5ZXI6
OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCB0aGlzKTsKKyAgICAgICAgICAgIG1fY2xp
cExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0
aGlzKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0TmFtZSgi
ZnJhbWUgY2xpcHBpbmciKTsKICNlbmRpZgogICAgICAgICAgICAgbV9jbGlwTGF5ZXItPnNldE1h
c2tzVG9Cb3VuZHModHJ1ZSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIG1fc2Nyb2xsTGF5
ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7
CisgICAgICAgICAgICBtX3Njcm9sbExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBt
X3Njcm9sbExheWVyLT5zZXROYW1lKCJmcmFtZSBzY3JvbGxpbmciKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJWaWV3LmNwcAppbmRleCA3NjU3YTZjNTJlM2QwMGRjOGM0YmY0MGExMjQxZDU0OWQ3YThhYWU2
Li5hYTE5NDdmYzcyMDg3NjdiNWNmOWEyOTRjZjVkMjUyZGJhZjMyYWY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcApAQCAtNjU4NSw3ICs2NTg1LDcgQEAgdm9pZCBXZWJWaWV3OjpzZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nKGJvb2wgYWNjZWxlcmF0ZWQpCiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ug
Y291bGQgcGVyaGFwcyBnZXQgYmV0dGVyIHBlcmZvcm1hbmNlIGJ5IG5ldmVyIGFsbG93aW5nIHRo
aXMgbGF5ZXIgdG8KICAgICAgICAgICAgIC8vIGJlY29tZSB0aWxlZCAob3IgY2hvb3NpbmcgYSBo
aWdoZXItdGhhbi1ub3JtYWwgdGlsaW5nIHRocmVzaG9sZCkuCiAgICAgICAgICAgICAvLyA8aHR0
cDovL3dlYmtpdC5vcmcvYi81MjYwMz4KLSAgICAgICAgICAgIG1fYmFja2luZ0xheWVyID0gR3Jh
cGhpY3NMYXllcjo6Y3JlYXRlKDAsIHRoaXMpOworICAgICAgICAgICAgbV9iYWNraW5nTGF5ZXIg
PSBHcmFwaGljc0xheWVyOjpjcmVhdGUoMCwgKnRoaXMpOwogICAgICAgICAgICAgbV9iYWNraW5n
TGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKICAgICAgICAgICAgIG1fYmFja2luZ0xheWVy
LT5zZXRDb250ZW50c09wYXF1ZSh0cnVlKTsKICAgICAgICAgICAgIFJFQ1QgY2xpZW50UmVjdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3Zlcmxh
eUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VP
dmVybGF5Q29udHJvbGxlci5jcHAKaW5kZXggZTAwZDBjODhjY2UwMTBlN2Y4NTUwZThiNTc5MTRm
ZDc3OGZjYWU2My4uZWQ2ZjRhNGE4OTkwZjYwOTZkODU5MzhlODM1MmI5YTEzZmYyNzBiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VP
dmVybGF5Q29udHJvbGxlci5jcHAKQEAgLTUyLDggKzUyLDggQEAgdm9pZCBQYWdlT3ZlcmxheUNv
bnRyb2xsZXI6OmluaXRpYWxpemUoKQogICAgIEFTU0VSVCghbV9kb2N1bWVudE92ZXJsYXlSb290
TGF5ZXIpOwogICAgIEFTU0VSVCghbV92aWV3T3ZlcmxheVJvb3RMYXllcik7CiAKLSAgICBtX2Rv
Y3VtZW50T3ZlcmxheVJvb3RMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShtX3dlYlBhZ2Uu
ZHJhd2luZ0FyZWEoKS0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7Ci0gICAgbV92aWV3
T3ZlcmxheVJvb3RMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShtX3dlYlBhZ2UuZHJhd2lu
Z0FyZWEoKS0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7CisgICAgbV9kb2N1bWVudE92
ZXJsYXlSb290TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUobV93ZWJQYWdlLmRyYXdpbmdB
cmVhKCktPmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKKyAgICBtX3ZpZXdPdmVybGF5
Um9vdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKG1fd2ViUGFnZS5kcmF3aW5nQXJlYSgp
LT5ncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1f
ZG9jdW1lbnRPdmVybGF5Um9vdExheWVyLT5zZXROYW1lKCJQYWdlIE92ZXJsYXkgY29udGFpbmVy
IChkb2N1bWVudC1yZWxhdGl2ZSkiKTsKICAgICBtX3ZpZXdPdmVybGF5Um9vdExheWVyLT5zZXRO
YW1lKCJQYWdlIE92ZXJsYXkgY29udGFpbmVyICh2aWV3LXJlbGF0aXZlKSIpOwpAQCAtODcsNyAr
ODcsNyBAQCB2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5KFBh
c3NSZWZQdHI8UGFnZU92ZXJsYXk+IHBhZ2VPdmVybAogICAgIGlmIChmYWRlTW9kZSA9PSBQYWdl
T3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpCiAgICAgICAgIG92ZXJsYXktPnN0YXJ0RmFkZUluQW5p
bWF0aW9uKCk7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbGF5ZXIgPSBH
cmFwaGljc0xheWVyOjpjcmVhdGUobV93ZWJQYWdlLmRyYXdpbmdBcmVhKCktPmdyYXBoaWNzTGF5
ZXJGYWN0b3J5KCksIHRoaXMpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBs
YXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShtX3dlYlBhZ2UuZHJhd2luZ0FyZWEoKS0+Z3Jh
cGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwogICAgIGxheWVyLT5zZXRBbmNob3JQb2ludChG
bG9hdFBvaW50M0QoKSk7CiAgICAgbGF5ZXItPnNldEJhY2tncm91bmRDb2xvcihvdmVybGF5LT5i
YWNrZ3JvdW5kQ29sb3IoKSk7CiAgICAgdXBkYXRlT3ZlcmxheUdlb21ldHJ5KCpvdmVybGF5LCAq
bGF5ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0
ay9MYXllclRyZWVIb3N0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAKaW5kZXggMDUyOWM0NjM3ZjFiYTI5ZDcyYTVjNmE4
NTMxMmU3NWE2ODdhMjM2Ny4uZmRkMjc5NzZjZWViMjk5M2IyNWU3NWI1OTVlMjJmN2U5MGRkZmIz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXll
clRyZWVIb3N0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Z3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCkBAIC05MywxMiArOTMsMTIgQEAgR0xDb250ZXh0KiBM
YXllclRyZWVIb3N0R3RrOjpnbENvbnRleHQoKQogCiB2b2lkIExheWVyVHJlZUhvc3RHdGs6Omlu
aXRpYWxpemUoKQogewotICAgIG1fcm9vdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdy
YXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgIG1fcm9vdExheWVyID0gR3JhcGhpY3NM
YXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICAgICBtX3Jvb3RM
YXllci0+c2V0RHJhd3NDb250ZW50KGZhbHNlKTsKICAgICBtX3Jvb3RMYXllci0+c2V0U2l6ZSht
X3dlYlBhZ2UtPnNpemUoKSk7CiAKICAgICAvLyBUaGUgbm9uLWNvbXBvc2l0ZWQgY29udGVudHMg
YXJlIGEgY2hpbGQgb2YgdGhlIHJvb3QgbGF5ZXIuCi0gICAgbV9ub25Db21wb3NpdGVkQ29udGVu
dExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRo
aXMpOworICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNy
ZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAgICAgbV9ub25Db21wb3NpdGVk
Q29udGVudExheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CiAgICAgbV9ub25Db21wb3NpdGVk
Q29udGVudExheWVyLT5zZXRDb250ZW50c09wYXF1ZShtX3dlYlBhZ2UtPmRyYXdzQmFja2dyb3Vu
ZCgpICYmICFtX3dlYlBhZ2UtPmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCkpOwogICAgIG1f
bm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0U2l6ZShtX3dlYlBhZ2UtPnNpemUoKSk7CkBA
IC0zNjksNyArMzY5LDcgQEAgdm9pZCBMYXllclRyZWVIb3N0R3RrOjpmbHVzaEFuZFJlbmRlckxh
eWVycygpCiAKIHZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6Y3JlYXRlUGFnZU92ZXJsYXlMYXllcihQ
YWdlT3ZlcmxheSogcGFnZU92ZXJsYXkpCiB7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+IGxheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5
KCksIHRoaXMpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBsYXllciA9IEdy
YXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAjaWZu
ZGVmIE5ERUJVRwogICAgIGxheWVyLT5zZXROYW1lKCJMYXllclRyZWVIb3N0IHBhZ2Ugb3Zlcmxh
eSBjb250ZW50Iik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oCmluZGV4IDc5ZmUw
M2ZkN2RhZTA5MTU1OTFjODg0N2U1NDM2Njg5NGU0N2I3YjEuLjczNGFmYTk2M2VkNDA0Y2Q3NDA5
MDBmZjM4MjViMmFkN2UxY2Y5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaApAQCAtMzUs
NyArMzUsNyBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVDb250ZXh0OwogCiBjbGFzcyBHcmFwaGlj
c0xheWVyQ0FSZW1vdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBIHsK
IHB1YmxpYzoKLSAgICBHcmFwaGljc0xheWVyQ0FSZW1vdGUoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNsaWVudCogY2xpZW50LCBSZW1vdGVMYXllclRyZWVDb250ZXh0KiBjb250ZXh0KQorICAgIEdy
YXBoaWNzTGF5ZXJDQVJlbW90ZShXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQs
IFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIDogR3JhcGhpY3NMYXll
ckNBKGNsaWVudCkKICAgICAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJl
ZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3Rl
TGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDE3MTdmYzQ2NjNlNjQ2MTZhODEwZTkyNzdlNDM2MzA2
ZGRjZjE4NTUuLjYwNWMyMTg2MTMwZWNjMWQxMTY1ZDRmYjViNjY2ZTAxNjhmMGZjNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJU
cmVlQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICAvLyBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeQotICAgIHZpcnR1YWwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5
ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5
ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCYpIG92ZXJyaWRlOwogCiAgICAgV2ViUGFn
ZSogbV93ZWJQYWdlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KaW5kZXggYjc3Mzc4
YWI2YWY5YjkxNmJmY2YxNmY3NWU0MzQyZThkNWMyYTI2Ny4uMDZmZDM5YjI4MjUxY2QwYjVmMzg5
ZWI4NGQ4Yzk1M2E5OTcwNzk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQpAQCAt
ODYsNyArODYsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmJhY2tpbmdTdG9yZVdp
bGxCZURlc3Ryb3llZChSZW1vdGVMYXllckJhY2tpbmdTdG9yZQogICAgIG1fYmFja2luZ1N0b3Jl
Q29sbGVjdGlvbi5iYWNraW5nU3RvcmVXaWxsQmVEZXN0cm95ZWQoYmFja2luZ1N0b3JlKTsKIH0K
IAotc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6
OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQorc3RkOjp1
bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmNyZWF0ZUdy
YXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQogewogICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPEdyYXBoaWNzTGF5ZXJDQVJlbW90ZT4oY2xpZW50LCB0aGlzKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCBlMGQwYTM3N2FhODVjN2Q3
Y2FkODY2NWFjNjhmNWVlNzk4NTZhNDFmLi4xNDEzNDBkMjg3Nzc1OWU4OTI0NTU1NDA3Zjc1MzVm
MTZhMTZiMjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
TGF5ZXJDQVJlbW90ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNsaWVudC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
CkBAIC0zOSw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVMYXll
clRyZWVDb250ZXh0OwogCi1jbGFzcyBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSA6IHB1Ymxp
YyBEcmF3aW5nQXJlYSB7CitjbGFzcyBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSA6IHB1Ymxp
YyBEcmF3aW5nQXJlYSwgcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQgewogcHVi
bGljOgogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKFdlYlBhZ2UqLCBjb25zdCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB+UmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWEoKTsKQEAgLTgzLDYgKzg0LDExIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZv
aWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBv
dmVycmlkZTsKIAorICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKKyAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91
YmxlIHRpbWUpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVp
cmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhh
c2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgaW5DbGlwKSBvdmVycmlkZSB7IH0KKwogICAg
IHZvaWQgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOwogCiAgICAgdm9pZCBsYXllckZsdXNo
VGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYT4qKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IDk1NjM2MjUyOGZmNDYz
ZDAzZWFhZTllNjUxMTc5Y2I1MTYyYjI3NTUuLjk4ZGM5YjBlNDY5NDI4NTEwMDZiNjAwZWQzMWVi
OGQzNmY4YWEyNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAt
NTEsNyArNTEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhOjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYShXZWJQYWdlKiB3ZWJQYWdlLCBjb25zdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJikKICAgICA6IERyYXdpbmdBcmVhKERyYXdpbmdBcmVh
VHlwZVJlbW90ZUxheWVyVHJlZSwgd2ViUGFnZSkKICAgICAsIG1fcmVtb3RlTGF5ZXJUcmVlQ29u
dGV4dChzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJlZUNvbnRleHQ+KHdlYlBhZ2UpKQot
ICAgICwgbV9yb290TGF5ZXIoR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0
b3J5KCksIG51bGxwdHIpKQorICAgICwgbV9yb290TGF5ZXIoR3JhcGhpY3NMYXllcjo6Y3JlYXRl
KGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKSkKICAgICAsIG1fZXhwb3NlZFJlY3QoRmxv
YXRSZWN0OjppbmZpbml0ZVJlY3QoKSkKICAgICAsIG1fc2Nyb2xsZWRFeHBvc2VkUmVjdChGbG9h
dFJlY3Q6OmluZmluaXRlUmVjdCgpKQogICAgICwgbV9sYXllckZsdXNoVGltZXIodGhpcywgJlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpsYXllckZsdXNoVGltZXJGaXJlZCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>