<?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>80750</bug_id>
          
          <creation_ts>2012-03-10 01:43:20 -0800</creation_ts>
          <short_desc>Enable animVal support for SVGLengthList</short_desc>
          <delta_ts>2012-03-15 03:01:17 -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>SVG</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>
          <dependson>12437</dependson>
          <blocked>41761</blocked>
    
    <blocked>80758</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>krit</cc>
    
    <cc>schenney</cc>
    
    <cc>zherczeg</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>575475</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-03-10 01:43:20 -0800</bug_when>
    <thetext>Enable animVal support for SVGLengthList. This is the next logical step after bug 12437 lands, which implements animVal support for SVGLength.
Once these two types are converted, all the ground work is done, and converting more types to use animVal is easy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575481</commentid>
    <comment_count>1</comment_count>
      <attachid>131166</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-03-10 02:13:10 -0800</bug_when>
    <thetext>Created attachment 131166
Draft patch

Not meant for review yet, just to show the path on how to go on after 12437 landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577209</commentid>
    <comment_count>2</comment_count>
      <attachid>131583</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-03-13 03:29:09 -0700</bug_when>
    <thetext>Created attachment 131583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577243</commentid>
    <comment_count>3</comment_count>
      <attachid>131583</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-03-13 05:18:34 -0700</bug_when>
    <thetext>Comment on attachment 131583
Patch

Wow another huga patch. Makes sense, only a few comments

View in context: https://bugs.webkit.org/attachment.cgi?id=131583&amp;action=review

&gt; Source/WebCore/svg/properties/SVGAnimatedListPropertyTearOff.h:78
&gt; +    virtual SVGGenericAnimatedType* currentBaseValue(AnimatedPropertyType expectedPropertyType) const

Why these virtual functions goes into the header? Thay cannot be inlined.

&gt; Source/WebCore/svg/properties/SVGListProperty.h:57
&gt; +        // See SVGPropertyTearOff::detachWrapper() for an explaination what&apos;s happening here.

explanation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577312</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-03-13 07:59:20 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Why these virtual functions goes into the header? Thay cannot be inlined.
There is no cpp file where I could move this, its a template class?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578271</commentid>
    <comment_count>5</comment_count>
      <attachid>131583</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-03-14 02:36:38 -0700</bug_when>
    <thetext>Comment on attachment 131583
Patch

Nice patch. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579238</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-03-15 03:01:17 -0700</bug_when>
    <thetext>Committed r110835: &lt;http://trac.webkit.org/changeset/110835&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131166</attachid>
            <date>2012-03-10 02:13:10 -0800</date>
            <delta_ts>2012-03-13 03:28:52 -0700</delta_ts>
            <desc>Draft patch</desc>
            <filename>LengthList.diff</filename>
            <type>text/plain</type>
            <size>74754</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGhsaXN0LWFuaW1hdGlvbi0xLmpzIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTEuanMKaW5kZXggYjQzNThkMS4uNjEw
ZGEyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3Rz
L3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTEuanMKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTEuanMKQEAgLTIxLDI0
ICsyMSw0NSBAQCB0ZXh0LmFwcGVuZENoaWxkKGFuaW1hdGUpOwogCiAvLyBTZXR1cCBhbmltYXRp
b24gdGVzdAogZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICBzaG91bGRCZSgidGV4dC54LmFuaW1W
YWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdl
dEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsKICAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0
SXRlbSgxKS52YWx1ZSIsICI3MCIpOwogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJ
dGVtKDIpLnZhbHVlIiwgIjkwIik7CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0
ZW0oMykudmFsdWUiLCAiMTEwIik7CisKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwubnVt
YmVyT2ZJdGVtcyIsICI0Iik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0o
MCkudmFsdWUiLCAiNTAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgx
KS52YWx1ZSIsICI3MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDIp
LnZhbHVlIiwgIjkwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMyku
dmFsdWUiLCAiMTEwIik7CiB9CiAKIGZ1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmUo
InRleHQueC5hbmltVmFsLm51bWJlck9mSXRlbXMiLCAiNCIpOwogICAgIHNob3VsZEJlKCJ0ZXh0
LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIiwgIjU1Iik7CiAgICAgc2hvdWxkQmUoInRleHQu
eC5hbmltVmFsLmdldEl0ZW0oMSkudmFsdWUiLCAiODAiKTsKICAgICBzaG91bGRCZSgidGV4dC54
LmFuaW1WYWwuZ2V0SXRlbSgyKS52YWx1ZSIsICIxMDUiKTsKICAgICBzaG91bGRCZSgidGV4dC54
LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSIsICIxMzAiKTsKKworICAgIHNob3VsZEJlKCJ0ZXh0
LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIiwgIjQiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJh
c2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSIsICI1MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFz
ZVZhbC5nZXRJdGVtKDEpLnZhbHVlIiwgIjcwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNl
VmFsLmdldEl0ZW0oMikudmFsdWUiLCAiOTAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VW
YWwuZ2V0SXRlbSgzKS52YWx1ZSIsICIxMTAiKTsKIH0KIAogZnVuY3Rpb24gc2FtcGxlMygpIHsK
KyAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7CiAgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSIsICI2
MCIpOwogICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInRleHQueC5hbmltVmFsLmdldEl0ZW0oMSku
dmFsdWUiLCAiOTAiKTsKICAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5n
ZXRJdGVtKDIpLnZhbHVlIiwgIjEyMCIpOwogICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInRleHQu
eC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUiLCAiMTUwIik7CisKKyAgICBzaG91bGRCZSgidGV4
dC54LmJhc2VWYWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7CisgICAgc2hvdWxkQmUoInRleHQueC5i
YXNlVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJh
c2VWYWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI3MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFz
ZVZhbC5nZXRJdGVtKDIpLnZhbHVlIiwgIjkwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNl
VmFsLmdldEl0ZW0oMykudmFsdWUiLCAiMTEwIik7CiB9CiAKIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0
KCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3Rz
L3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTIuanMgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMi5qcwppbmRleCA5NTI4MDQ2
Li4xZDI0MGJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMi5qcworKysgYi9MYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMi5qcwpAQCAt
MjEsMjQgKzIxLDQ1IEBAIHRleHQuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7CiAKIC8vIFNldHVwIGFu
aW1hdGlvbiB0ZXN0CiBmdW5jdGlvbiBzYW1wbGUxKCkgewotCXNob3VsZEJlKCJ0ZXh0LnguYW5p
bVZhbC5nZXRJdGVtKDApLnZhbHVlIiwgIjUwIik7Ci0Jc2hvdWxkQmUoInRleHQueC5hbmltVmFs
LmdldEl0ZW0oMSkudmFsdWUiLCAiNzAiKTsKLQlzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0
SXRlbSgyKS52YWx1ZSIsICI5MCIpOwotCXNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVt
KDMpLnZhbHVlIiwgIjExMCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5udW1iZXJP
Zkl0ZW1zIiwgIjQiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52
YWx1ZSIsICI1MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZh
bHVlIiwgIjcwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFs
dWUiLCAiOTAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1
ZSIsICIxMTAiKTsKKworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1z
IiwgIjQiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSIs
ICI1MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIiwg
IjcwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUiLCAi
OTAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSIsICIx
MTAiKTsKIH0KIAogZnVuY3Rpb24gc2FtcGxlMigpIHsKLQlzaG91bGRCZUNsb3NlRW5vdWdoKCJ0
ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIiwgIjgxLjciKTsKLQlzaG91bGRCZUNsb3Nl
RW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZhbHVlIiwgIjc1Iik7Ci0Jc2hvdWxk
QmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgyKS52YWx1ZSIsICIxNDQuNSIp
OwotCXNob3VsZEJlQ2xvc2VFbm91Z2goInRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUi
LCAiMTk3LjMiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyIs
ICI0Iik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgw
KS52YWx1ZSIsICI4MS43Iik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1W
YWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI3NSIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInRl
eHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFsdWUiLCAiMTQ0LjUiKTsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDMpLnZhbHVlIiwgIjE5Ny4zIik7CisK
KyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7CisgICAg
c2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsKKyAgICBz
aG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI3MCIpOworICAgIHNo
b3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDIpLnZhbHVlIiwgIjkwIik7CisgICAgc2hv
dWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMykudmFsdWUiLCAiMTEwIik7CiB9CiAKIGZ1
bmN0aW9uIHNhbXBsZTMoKSB7Ci0Jc2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1WYWwu
Z2V0SXRlbSgwKS52YWx1ZSIsICIxMTMuNCIpOwotCXNob3VsZEJlQ2xvc2VFbm91Z2goInRleHQu
eC5hbmltVmFsLmdldEl0ZW0oMSkudmFsdWUiLCAiODAiKTsKLQlzaG91bGRCZUNsb3NlRW5vdWdo
KCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIiwgIjEwMCIpOwotCXNob3VsZEJlQ2xv
c2VFbm91Z2goInRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUiLCAiMzg0Iik7CisgICAg
c2hvdWxkQmUoInRleHQueC5hbmltVmFsLm51bWJlck9mSXRlbXMiLCAiNCIpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInRleHQueC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiMTEzLjQi
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZh
bHVlIiwgIjgwIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1WYWwuZ2V0
SXRlbSgyKS52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJ0ZXh0Lngu
YW5pbVZhbC5nZXRJdGVtKDMpLnZhbHVlIiwgIjM4NCIpOworCisgICAgc2hvdWxkQmUoInRleHQu
eC5iYXNlVmFsLm51bWJlck9mSXRlbXMiLCAiNCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFz
ZVZhbC5nZXRJdGVtKDApLnZhbHVlIiwgIjUwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNl
VmFsLmdldEl0ZW0oMSkudmFsdWUiLCAiNzAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VW
YWwuZ2V0SXRlbSgyKS52YWx1ZSIsICI5MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZh
bC5nZXRJdGVtKDMpLnZhbHVlIiwgIjExMCIpOwogfQogCiBmdW5jdGlvbiBleGVjdXRlVGVzdCgp
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9z
dmdsZW5ndGhsaXN0LWFuaW1hdGlvbi0zLmpzIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTMuanMKaW5kZXggMDY0ZjRlOC4u
NTAzM2ZhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTMuanMKQEAgLTIz
LDYgKzIzLDkgQEAgdGV4dC5hcHBlbmRDaGlsZChhbmltYXRlKTsKIGZ1bmN0aW9uIHNhbXBsZTEo
KSB7CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLm51bWJlck9mSXRlbXMiLCAiMSIpOwog
ICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIiwgIjUwIik7CisK
KyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwubnVtYmVyT2ZJdGVtcyIsICIxIik7CisgICAg
c2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsKIH0KIAog
ZnVuY3Rpb24gc2FtcGxlMigpIHsKQEAgLTMxLDYgKzM0LDkgQEAgZnVuY3Rpb24gc2FtcGxlMigp
IHsKICAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI4MCIp
OwogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIiwgIjkwIik7
CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUiLCAiMTEwIik7
CisKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwubnVtYmVyT2ZJdGVtcyIsICIxIik7Cisg
ICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsKIH0K
IAogZnVuY3Rpb24gc2FtcGxlMygpIHsKQEAgLTM5LDYgKzQ1LDkgQEAgZnVuY3Rpb24gc2FtcGxl
MygpIHsKICAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEp
LnZhbHVlIiwgIjgwIik7CiAgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1WYWwu
Z2V0SXRlbSgyKS52YWx1ZSIsICI5MCIpOwogICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInRleHQu
eC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUiLCAiMTEwIik7CisKKyAgICBzaG91bGRCZSgidGV4
dC54LmJhc2VWYWwubnVtYmVyT2ZJdGVtcyIsICIxIik7CisgICAgc2hvdWxkQmUoInRleHQueC5i
YXNlVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsKIH0KIAogZnVuY3Rpb24gZXhlY3V0ZVRl
c3QoKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tNC5qcyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi00LmpzCmluZGV4IDFiY2Iz
MTQuLmJjMTdlYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi00LmpzCisrKyBiL0xheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi00LmpzCkBA
IC0yMSwxNyArMjEsMzEgQEAgdGV4dC5hcHBlbmRDaGlsZChhbmltYXRlKTsKIAogLy8gU2V0dXAg
YW5pbWF0aW9uIHRlc3QKIGZ1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgc2hvdWxkQmUoInRleHQu
eC5hbmltVmFsLm51bWJlck9mSXRlbXMiLCAiNCIpOwogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5p
bVZhbC5nZXRJdGVtKDApLnZhbHVlIiwgIjUwIik7CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmlt
VmFsLmdldEl0ZW0oMSkudmFsdWUiLCAiNjAiKTsKICAgICBzaG91bGRCZSgidGV4dC54LmFuaW1W
YWwuZ2V0SXRlbSgyKS52YWx1ZSIsICI3MCIpOwogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZh
bC5nZXRJdGVtKDMpLnZhbHVlIiwgIjgwIik7CisKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VW
YWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdl
dEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0
SXRlbSgxKS52YWx1ZSIsICI2MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJ
dGVtKDIpLnZhbHVlIiwgIjcwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0
ZW0oMykudmFsdWUiLCAiODAiKTsKIH0KIAogZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91
bGRCZSgidGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7CiAgICAgc2hvdWxkQmUo
InRleHQueC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiNjAiKTsKICAgICBzaG91bGRCZSgi
dGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI3MCIpOwogICAgIHNob3VsZEJlKCJ0
ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIiwgIjgwIik7CiAgICAgc2hvdWxkQmUoInRl
eHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUiLCAiOTAiKTsKKworICAgIHNob3VsZEJlKCJ0
ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIiwgIjQiKTsKKyAgICBzaG91bGRCZSgidGV4dC54
LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSIsICI1MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0Lngu
YmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIiwgIjYwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5i
YXNlVmFsLmdldEl0ZW0oMikudmFsdWUiLCAiNzAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJh
c2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSIsICI4MCIpOwogfQogCiBmdW5jdGlvbiBzYW1wbGUzKCkg
ewpAQCAtNDAsNiArNTQsMTIgQEAgZnVuY3Rpb24gc2FtcGxlMygpIHsKICAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZhbHVlIiwgIjgwIik7CiAgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgyKS52YWx1ZSIsICI5
MCIpOwogICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInRleHQueC5hbmltVmFsLmdldEl0ZW0oMyku
dmFsdWUiLCAiMTAwIik7CisKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwubnVtYmVyT2ZJ
dGVtcyIsICI0Iik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMCkudmFs
dWUiLCAiNTAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgxKS52YWx1
ZSIsICI2MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDIpLnZhbHVl
IiwgIjcwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMykudmFsdWUi
LCAiODAiKTsKIH0KIAogZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RobGlzdC1hbmltYXRp
b24tNS5qcyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5n
dGhsaXN0LWFuaW1hdGlvbi01LmpzCmluZGV4IDE1NDkwYmQuLmU1ZDhiYzQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGhsaXN0LWFu
aW1hdGlvbi01LmpzCisrKyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi01LmpzCkBAIC0yMiwyNCArMjIsNDUgQEAgdGV4dC5h
cHBlbmRDaGlsZChhbmltYXRlKTsKIAogLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKIGZ1bmN0aW9u
IHNhbXBsZTEoKSB7CisgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLm51bWJlck9mSXRlbXMi
LCAiNCIpOwogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIiwg
IjUwIik7CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0oMSkudmFsdWUiLCAi
NjAiKTsKICAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgyKS52YWx1ZSIsICI3
MCIpOwogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDMpLnZhbHVlIiwgIjgw
Iik7CisKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7
CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsK
KyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI2MCIpOwor
ICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDIpLnZhbHVlIiwgIjcwIik7Cisg
ICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMykudmFsdWUiLCAiODAiKTsKIH0K
IAogZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwubnVt
YmVyT2ZJdGVtcyIsICI0Iik7CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0o
MCkudmFsdWUiLCAiNjAiKTsKICAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgx
KS52YWx1ZSIsICI3MCIpOwogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIp
LnZhbHVlIiwgIjgwIik7CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0oMyku
dmFsdWUiLCAiOTAiKTsKKworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0
ZW1zIiwgIjQiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1
ZSIsICI1MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVl
IiwgIjYwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUi
LCAiNzAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSIs
ICI4MCIpOwogfQogCiBmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlKCJ0ZXh0Lngu
YW5pbVZhbC5udW1iZXJPZkl0ZW1zIiwgIjQiKTsKICAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJ0
ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIiwgIjcwIik7CiAgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI4MCIpOwogICAgIHNo
b3VsZEJlQ2xvc2VFbm91Z2goInRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFsdWUiLCAiOTAi
KTsKICAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDMpLnZh
bHVlIiwgIjEwMCIpOworCisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLm51bWJlck9mSXRl
bXMiLCAiNCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVl
IiwgIjUwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFsdWUi
LCAiNjAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSIs
ICI3MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIiwg
IjgwIik7CiB9CiAKIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi0x
LWV4cGVjdGVkLnR4dAppbmRleCAxYjJhMTNlLi4yZGQ3MzYwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi0xLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlv
bi0xLWV4cGVjdGVkLnR4dApAQCAtNiwyMiArNiw0NiBAQCBUZXN0ICd0bycgYW5pbWF0aW9uIG9m
IFNWR0xlbmd0aExpc3Qgd2l0aCBMZW5ndGhUeXBlIG51bWJlci4KIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCitQQVNTIHRleHQueC5hbmltVmFsLm51bWJlck9mSXRlbXMgaXMgNAogUEFT
UyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCiBQQVNTIHRleHQueC5hbmlt
VmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNzAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgy
KS52YWx1ZSBpcyA5MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDEx
MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKK1BBU1MgdGV4dC54LmJh
c2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVt
KDEpLnZhbHVlIGlzIDcwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUgaXMg
OTAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyAxMTAKK1BBU1MgdGV4
dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyBpcyA0CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0
ZW0oMCkudmFsdWUgaXMgNTUKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSBp
cyA4MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIGlzIDEwNQogUEFTUyB0
ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDEzMAorUEFTUyB0ZXh0LnguYmFzZVZh
bC5udW1iZXJPZkl0ZW1zIGlzIDQKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1
ZSBpcyA1MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDcwCitQQVNT
IHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUgaXMgOTAKK1BBU1MgdGV4dC54LmJhc2VW
YWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyAxMTAKK1BBU1MgdGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJ
dGVtcyBpcyA0CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgNjAKIFBB
U1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSBpcyA5MAogUEFTUyB0ZXh0LnguYW5p
bVZhbC5nZXRJdGVtKDIpLnZhbHVlIGlzIDEyMAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVt
KDMpLnZhbHVlIGlzIDE1MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQK
K1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAorUEFTUyB0ZXh0Lngu
YmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDcwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0
ZW0oMikudmFsdWUgaXMgOTAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSBp
cyAxMTAKK1BBU1MgdGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyBpcyA0CiBQQVNTIHRleHQu
eC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgNTAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0
SXRlbSgxKS52YWx1ZSBpcyA3MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVl
IGlzIDkwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUgaXMgMTEwCitQQVNT
IHRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgNAorUEFTUyB0ZXh0LnguYmFzZVZhbC5n
ZXRJdGVtKDApLnZhbHVlIGlzIDUwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFs
dWUgaXMgNzAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA5MAorUEFT
UyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDExMAogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi0yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTItZXhw
ZWN0ZWQudHh0CmluZGV4IDk1NGRiMzguLmZlZDExODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTIt
ZXhwZWN0ZWQudHh0CkBAIC02LDIyICs2LDQ2IEBAIFRlc3QgJ3RvJyBhbmltYXRpb24gb2YgU1ZH
TGVuZ3RoTGlzdCB3aXRoIGRpZmZlcmVudCBMZW5ndGhUeXBlcy4KIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCitQQVNTIHRleHQueC5hbmltVmFsLm51bWJlck9mSXRlbXMgaXMgNAogUEFT
UyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCiBQQVNTIHRleHQueC5hbmlt
VmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNzAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgy
KS52YWx1ZSBpcyA5MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDEx
MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKK1BBU1MgdGV4dC54LmJh
c2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVt
KDEpLnZhbHVlIGlzIDcwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUgaXMg
OTAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyAxMTAKK1BBU1MgdGV4
dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyBpcyA0CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0
ZW0oMCkudmFsdWUgaXMgODEuNwogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZhbHVl
IGlzIDc1CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFsdWUgaXMgMTQ0LjUKIFBB
U1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyAxOTcuMworUEFTUyB0ZXh0Lngu
YmFzZVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgw
KS52YWx1ZSBpcyA1MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDcw
CitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUgaXMgOTAKK1BBU1MgdGV4dC54
LmJhc2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyAxMTAKK1BBU1MgdGV4dC54LmFuaW1WYWwubnVt
YmVyT2ZJdGVtcyBpcyA0CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMg
MTEzLjQKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSBpcyA4MAogUEFTUyB0
ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIGlzIDEwMAogUEFTUyB0ZXh0LnguYW5pbVZh
bC5nZXRJdGVtKDMpLnZhbHVlIGlzIDM4NAorUEFTUyB0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0
ZW1zIGlzIDQKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAorUEFT
UyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDcwCitQQVNTIHRleHQueC5iYXNl
VmFsLmdldEl0ZW0oMikudmFsdWUgaXMgOTAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgz
KS52YWx1ZSBpcyAxMTAKK1BBU1MgdGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyBpcyA0CiBQ
QVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgNTAKIFBBU1MgdGV4dC54LmFu
aW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSBpcyA3MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVt
KDIpLnZhbHVlIGlzIDkwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUgaXMg
MTEwCitQQVNTIHRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgNAorUEFTUyB0ZXh0Lngu
YmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0
ZW0oMSkudmFsdWUgaXMgNzAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBp
cyA5MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDExMAogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi0zLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0
aW9uLTMtZXhwZWN0ZWQudHh0CmluZGV4IDkzMTYyYjQuLjIyZDIyNjYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5p
bWF0aW9uLTMtZXhwZWN0ZWQudHh0CkBAIC04LDE4ICs4LDI2IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFCiAKIFBBU1MgdGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyBpcyAxCiBQQVNTIHRl
eHQueC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgNTAKK1BBU1MgdGV4dC54LmJhc2VWYWwu
bnVtYmVyT2ZJdGVtcyBpcyAxCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUg
aXMgNTAKIFBBU1MgdGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyBpcyA0CiBQQVNTIHRleHQu
eC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgNzAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0
SXRlbSgxKS52YWx1ZSBpcyA4MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVl
IGlzIDkwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUgaXMgMTEwCitQQVNT
IHRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgMQorUEFTUyB0ZXh0LnguYmFzZVZhbC5n
ZXRJdGVtKDApLnZhbHVlIGlzIDUwCiBQQVNTIHRleHQueC5hbmltVmFsLm51bWJlck9mSXRlbXMg
aXMgNAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDcwCiBQQVNTIHRl
eHQueC5hbmltVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgODAKIFBBU1MgdGV4dC54LmFuaW1WYWwu
Z2V0SXRlbSgyKS52YWx1ZSBpcyA5MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDMpLnZh
bHVlIGlzIDExMAorUEFTUyB0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIGlzIDEKK1BBU1Mg
dGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAogUEFTUyB0ZXh0LnguYW5pbVZh
bC5udW1iZXJPZkl0ZW1zIGlzIDEKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1
ZSBpcyA1MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIGlzIDEKK1BBU1MgdGV4
dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi00LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTQtZXhwZWN0ZWQu
dHh0CmluZGV4IDNlMzllZWYuLjYwYzIyOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTQtZXhwZWN0
ZWQudHh0CkBAIC02LDIzICs2LDQ2IEBAIFRlc3QgJ2J5JyBhbmltYXRpb24gb2YgU1ZHTGVuZ3Ro
TGlzdC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitQQVNTIHRleHQueC5hbmltVmFs
Lm51bWJlck9mSXRlbXMgaXMgNAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVl
IGlzIDUwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNjAKIFBBU1Mg
dGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA3MAogUEFTUyB0ZXh0LnguYW5pbVZh
bC5nZXRJdGVtKDMpLnZhbHVlIGlzIDgwCitQQVNTIHRleHQueC5iYXNlVmFsLm51bWJlck9mSXRl
bXMgaXMgNAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCitQQVNT
IHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNjAKK1BBU1MgdGV4dC54LmJhc2VW
YWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA3MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDMp
LnZhbHVlIGlzIDgwCitQQVNTIHRleHQueC5hbmltVmFsLm51bWJlck9mSXRlbXMgaXMgNAogUEFT
UyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDYwCiBQQVNTIHRleHQueC5hbmlt
VmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNzAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgy
KS52YWx1ZSBpcyA4MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDkw
CitQQVNTIHRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgNAorUEFTUyB0ZXh0LnguYmFz
ZVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0o
MSkudmFsdWUgaXMgNjAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA3
MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDgwCiBQQVNTIHRleHQu
eC5hbmltVmFsLm51bWJlck9mSXRlbXMgaXMgNAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVt
KDApLnZhbHVlIGlzIDcwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMg
ODAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA5MAogUEFTUyB0ZXh0
LnguYW5pbVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDEwMAorUEFTUyB0ZXh0LnguYmFzZVZhbC5u
dW1iZXJPZkl0ZW1zIGlzIDQKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBp
cyA1MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDYwCitQQVNTIHRl
eHQueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUgaXMgNzAKK1BBU1MgdGV4dC54LmJhc2VWYWwu
Z2V0SXRlbSgzKS52YWx1ZSBpcyA4MAorUEFTUyB0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1z
IGlzIDQKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAogUEFTUyB0
ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDYwCiBQQVNTIHRleHQueC5hbmltVmFs
LmdldEl0ZW0oMikudmFsdWUgaXMgNzAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52
YWx1ZSBpcyA4MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKK1BBU1Mg
dGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAorUEFTUyB0ZXh0LnguYmFzZVZh
bC5nZXRJdGVtKDEpLnZhbHVlIGlzIDYwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMiku
dmFsdWUgaXMgNzAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyA4MAog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi01
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3Qt
YW5pbWF0aW9uLTUtZXhwZWN0ZWQudHh0CmluZGV4IDQzMjc4YjcuLmNlZTM2NDEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTUt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxp
c3QtYW5pbWF0aW9uLTUtZXhwZWN0ZWQudHh0CkBAIC02LDIyICs2LDQ2IEBAIFRlc3QgYWRkaXRp
dmU9J3N1bScgYW5pbWF0aW9uIG9mIFNWR0xlbmd0aExpc3QuCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCiAKIAorUEFTUyB0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKIFBBU1Mg
dGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAogUEFTUyB0ZXh0LnguYW5pbVZh
bC5nZXRJdGVtKDEpLnZhbHVlIGlzIDYwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMiku
dmFsdWUgaXMgNzAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyA4MAor
UEFTUyB0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKK1BBU1MgdGV4dC54LmJhc2VW
YWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEp
LnZhbHVlIGlzIDYwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUgaXMgNzAK
K1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyA4MAorUEFTUyB0ZXh0Lngu
YW5pbVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgw
KS52YWx1ZSBpcyA2MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDcw
CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFsdWUgaXMgODAKIFBBU1MgdGV4dC54
LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyA5MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5udW1i
ZXJPZkl0ZW1zIGlzIDQKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1
MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDYwCitQQVNTIHRleHQu
eC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUgaXMgNzAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0
SXRlbSgzKS52YWx1ZSBpcyA4MAorUEFTUyB0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1zIGlz
IDQKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA3MAogUEFTUyB0ZXh0
LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDgwCiBQQVNTIHRleHQueC5hbmltVmFsLmdl
dEl0ZW0oMikudmFsdWUgaXMgOTAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1
ZSBpcyAxMDAKK1BBU1MgdGV4dC54LmJhc2VWYWwubnVtYmVyT2ZJdGVtcyBpcyA0CitQQVNTIHRl
eHQueC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgNTAKK1BBU1MgdGV4dC54LmJhc2VWYWwu
Z2V0SXRlbSgxKS52YWx1ZSBpcyA2MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDIpLnZh
bHVlIGlzIDcwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMykudmFsdWUgaXMgODAKK1BB
U1MgdGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyBpcyA0CiBQQVNTIHRleHQueC5hbmltVmFs
LmdldEl0ZW0oMCkudmFsdWUgaXMgNTAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgxKS52
YWx1ZSBpcyA2MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIGlzIDcwCiBQ
QVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUgaXMgODAKK1BBU1MgdGV4dC54LmJh
c2VWYWwubnVtYmVyT2ZJdGVtcyBpcyA0CitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMCku
dmFsdWUgaXMgNTAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgxKS52YWx1ZSBpcyA2MAor
UEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDIpLnZhbHVlIGlzIDcwCitQQVNTIHRleHQueC5i
YXNlVmFsLmdldEl0ZW0oMykudmFsdWUgaXMgODAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKaW5kZXggN2EzZTI4ZS4uY2Q5MGU3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCkBAIC0x
MzMsNiArMTMzLDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
PiBhbmltYXRlZFRyYW5zZm9ybUxpc3RGb3IoU1ZHRWxlbWVudCoKICAgICAKIHZvaWQgU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFsdWUoY29uc3QgU3RyaW5nJiBiYXNl
VmFsdWUpCiB7CisgICAgLy8gRklYTUU6IEFkZCBhbmltVmFsIHN1cHBvcnQhCiAgICAgU1ZHRWxl
bWVudCogdGFyZ2V0RWxlbWVudCA9IHRoaXMtPnRhcmdldEVsZW1lbnQoKTsKICAgICBpZiAoIXRh
cmdldEVsZW1lbnQgfHwgZGV0ZXJtaW5lQW5pbWF0ZWRQcm9wZXJ0eVR5cGUodGFyZ2V0RWxlbWVu
dCkgPT0gQW5pbWF0ZWRVbmtub3duKQogICAgICAgICByZXR1cm47CkBAIC0xNDksOCArMTUwLDkg
QEAgdm9pZCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6cmVzZXRUb0Jhc2VWYWx1ZShjb25z
dCBTdHJpbmcmIGJhc2VWYWx1ZSkKICAgICAKICAgICBpZiAoYmFzZVZhbHVlLmlzRW1wdHkoKSkg
ewogICAgICAgICBpZiAoUmVmUHRyPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4gbGlzdCA9IGFu
aW1hdGVkVHJhbnNmb3JtTGlzdEZvcih0YXJnZXRFbGVtZW50KSkgewotICAgICAgICAgICAgbGlz
dC0+ZGV0YWNoTGlzdFdyYXBwZXJzKDApOwotICAgICAgICAgICAgbGlzdC0+dmFsdWVzKCkuY2xl
YXIoKTsKKyAgICAgICAgICAgIFNWR0xpc3RQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1MaXN0PiogYmFz
ZVZhbCA9IHN0YXRpY19jYXN0PFNWR0xpc3RQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1MaXN0Pio+KGxp
c3QtPmJhc2VWYWwoKSk7CisgICAgICAgICAgICBiYXNlVmFsLT5kZXRhY2hMaXN0V3JhcHBlcnMo
MCk7CisgICAgICAgICAgICBiYXNlVmFsLT52YWx1ZXMoKS5jbGVhcigpOwogICAgICAgICB9CiAg
ICAgfSBlbHNlCiAgICAgICAgIHRhcmdldEVsZW1lbnQtPnNldEF0dHJpYnV0ZShTVkdOYW1lczo6
dHJhbnNmb3JtQXR0ciwgYmFzZVZhbHVlKTsKQEAgLTE1OCwyNCArMTYwLDI3IEBAIHZvaWQgU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFsdWUoY29uc3QgU3RyaW5nJiBi
YXNlVmFsdWUpCiAKIHZvaWQgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OmNhbGN1bGF0ZUFu
aW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0LCBTVkdTTUlMRWxl
bWVudCopCiB7CisgICAgLy8gRklYTUU6IEFkZCBhbmltVmFsIHN1cHBvcnQhCiAgICAgU1ZHRWxl
bWVudCogdGFyZ2V0RWxlbWVudCA9IHRoaXMtPnRhcmdldEVsZW1lbnQoKTsKICAgICBpZiAoIXRh
cmdldEVsZW1lbnQgfHwgZGV0ZXJtaW5lQW5pbWF0ZWRQcm9wZXJ0eVR5cGUodGFyZ2V0RWxlbWVu
dCkgPT0gQW5pbWF0ZWRVbmtub3duKQogICAgICAgICByZXR1cm47CiAgICAgUmVmUHRyPFNWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdD4gYW5pbWF0ZWRMaXN0ID0gYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
Rm9yKHRhcmdldEVsZW1lbnQpOwogICAgIEFTU0VSVChhbmltYXRlZExpc3QpOwotICAgIAorICAg
IFNWR0xpc3RQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1MaXN0PiogYmFzZVZhbCA9IHN0YXRpY19jYXN0
PFNWR0xpc3RQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1MaXN0Pio+KGFuaW1hdGVkTGlzdC0+YmFzZVZh
bCgpKTsKKyAgICBBU1NFUlQoYmFzZVZhbCk7CisKICAgICBpZiAoY2FsY01vZGUoKSA9PSBDYWxj
TW9kZURpc2NyZXRlKQogICAgICAgICBwZXJjZW50YWdlID0gcGVyY2VudGFnZSA8IDAuNSA/IDAg
OiAxOwogCiAgICAgaWYgKCFpc0FkZGl0aXZlKCkpIHsKLSAgICAgICAgYW5pbWF0ZWRMaXN0LT5k
ZXRhY2hMaXN0V3JhcHBlcnMoMCk7Ci0gICAgICAgIGFuaW1hdGVkTGlzdC0+dmFsdWVzKCkuY2xl
YXIoKTsKKyAgICAgICAgYmFzZVZhbC0+ZGV0YWNoTGlzdFdyYXBwZXJzKDApOworICAgICAgICBi
YXNlVmFsLT52YWx1ZXMoKS5jbGVhcigpOwogICAgIH0KICAgICBpZiAoaXNBY2N1bXVsYXRlZCgp
ICYmIHJlcGVhdCkKICAgICAgICAgcGVyY2VudGFnZSArPSByZXBlYXQ7CiAgICAgU1ZHVHJhbnNm
b3JtIHRyYW5zZm9ybSA9IFNWR1RyYW5zZm9ybURpc3RhbmNlKG1fZnJvbVRyYW5zZm9ybSwgbV90
b1RyYW5zZm9ybSkuc2NhbGVkRGlzdGFuY2UocGVyY2VudGFnZSkuYWRkVG9TVkdUcmFuc2Zvcm0o
bV9mcm9tVHJhbnNmb3JtKTsKLSAgICBhbmltYXRlZExpc3QtPnZhbHVlcygpLmFwcGVuZCh0cmFu
c2Zvcm0pOwotICAgIGFuaW1hdGVkTGlzdC0+d3JhcHBlcnMoKS5hcHBlbmQoUmVmUHRyPFNWR1By
b3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm0+ID4oKSk7CisgICAgYmFzZVZhbC0+dmFsdWVzKCku
YXBwZW5kKHRyYW5zZm9ybSk7CisgICAgYmFzZVZhbC0+d3JhcHBlcnMoKS5hcHBlbmQoUmVmUHRy
PFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm0+ID4oKSk7CiB9CiAgICAgCiBib29sIFNW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMoY29uc3Qg
U3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQpAQCAtMjI0LDcgKzIy
OSwxMCBAQCB2b2lkIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjphcHBseVJlc3VsdHNUb1Rh
cmdldCgpCiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4gYW5pbWF0ZWRMaXN0
ID0gYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0Rm9yKHRhcmdldEVsZW1lbnQpOwogICAgIGlmICghYW5p
bWF0ZWRMaXN0KQogICAgICAgICByZXR1cm47Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdCogdHJhbnNm
b3JtTGlzdCA9ICZhbmltYXRlZExpc3QtPnZhbHVlcygpOworICAgIC8vIEZJWE1FOiBBZGQgYW5p
bVZhbCBzdXBwb3J0ISBUaGlzIHdpbGwgbWFrZSB0aGlzIG1hbnVhbCBjb3B5aW5nIHVubmNlc3Nh
cnkuIFdlIGp1c3QgaGF2ZSB0byBlbmFibGUgaXQuCisgICAgU1ZHTGlzdFByb3BlcnR5PFNWR1Ry
YW5zZm9ybUxpc3Q+KiBiYXNlVmFsID0gc3RhdGljX2Nhc3Q8U1ZHTGlzdFByb3BlcnR5PFNWR1Ry
YW5zZm9ybUxpc3Q+Kj4oYW5pbWF0ZWRMaXN0LT5iYXNlVmFsKCkpOworICAgIEFTU0VSVChiYXNl
VmFsKTsKKyAgICBTVkdUcmFuc2Zvcm1MaXN0JiB0cmFuc2Zvcm1MaXN0ID0gYmFzZVZhbC0+dmFs
dWVzKCk7CiAKICAgICBjb25zdCBIYXNoU2V0PFNWR0VsZW1lbnRJbnN0YW5jZSo+JiBpbnN0YW5j
ZXMgPSB0YXJnZXRFbGVtZW50LT5pbnN0YW5jZXNGb3JFbGVtZW50KCk7CiAgICAgY29uc3QgSGFz
aFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gaW5zdGFuY2Vz
LmVuZCgpOwpAQCAtMjMyLDEzICsyNDAsMTMgQEAgdm9pZCBTVkdBbmltYXRlVHJhbnNmb3JtRWxl
bWVudDo6YXBwbHlSZXN1bHRzVG9UYXJnZXQoKQogICAgICAgICBTVkdFbGVtZW50KiBzaGFkb3dU
cmVlRWxlbWVudCA9ICgqaXQpLT5zaGFkb3dUcmVlRWxlbWVudCgpOwogICAgICAgICBBU1NFUlQo
c2hhZG93VHJlZUVsZW1lbnQpOwogICAgICAgICBpZiAoc2hhZG93VHJlZUVsZW1lbnQtPmlzU3R5
bGVkVHJhbnNmb3JtYWJsZSgpKQotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQqPihzaGFkb3dUcmVlRWxlbWVudCktPnNldFRyYW5zZm9ybUJhc2VW
YWx1ZSgqdHJhbnNmb3JtTGlzdCk7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxTVkdTdHlsZWRU
cmFuc2Zvcm1hYmxlRWxlbWVudCo+KHNoYWRvd1RyZWVFbGVtZW50KS0+c2V0VHJhbnNmb3JtQmFz
ZVZhbHVlKHRyYW5zZm9ybUxpc3QpOwogICAgICAgICBlbHNlIGlmIChzaGFkb3dUcmVlRWxlbWVu
dC0+aGFzVGFnTmFtZShTVkdOYW1lczo6dGV4dFRhZykpCi0gICAgICAgICAgICBzdGF0aWNfY2Fz
dDxTVkdUZXh0RWxlbWVudCo+KHNoYWRvd1RyZWVFbGVtZW50KS0+c2V0VHJhbnNmb3JtQmFzZVZh
bHVlKCp0cmFuc2Zvcm1MaXN0KTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFNWR1RleHRFbGVt
ZW50Kj4oc2hhZG93VHJlZUVsZW1lbnQpLT5zZXRUcmFuc2Zvcm1CYXNlVmFsdWUodHJhbnNmb3Jt
TGlzdCk7CiAgICAgICAgIGVsc2UgaWYgKHNoYWRvd1RyZWVFbGVtZW50LT5oYXNUYWdOYW1lKFNW
R05hbWVzOjpsaW5lYXJHcmFkaWVudFRhZykgfHwgc2hhZG93VHJlZUVsZW1lbnQtPmhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnJhZGlhbEdyYWRpZW50VGFnKSkKLSAgICAgICAgICAgIHN0YXRpY19jYXN0
PFNWR0dyYWRpZW50RWxlbWVudCo+KHNoYWRvd1RyZWVFbGVtZW50KS0+c2V0R3JhZGllbnRUcmFu
c2Zvcm1CYXNlVmFsdWUoKnRyYW5zZm9ybUxpc3QpOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
U1ZHR3JhZGllbnRFbGVtZW50Kj4oc2hhZG93VHJlZUVsZW1lbnQpLT5zZXRHcmFkaWVudFRyYW5z
Zm9ybUJhc2VWYWx1ZSh0cmFuc2Zvcm1MaXN0KTsKICAgICAgICAgZWxzZSBpZiAoc2hhZG93VHJl
ZUVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBhdHRlcm5UYWcpKQotICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8U1ZHUGF0dGVybkVsZW1lbnQqPihzaGFkb3dUcmVlRWxlbWVudCktPnNldFBh
dHRlcm5UcmFuc2Zvcm1CYXNlVmFsdWUoKnRyYW5zZm9ybUxpc3QpOworICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8U1ZHUGF0dGVybkVsZW1lbnQqPihzaGFkb3dUcmVlRWxlbWVudCktPnNldFBhdHRl
cm5UcmFuc2Zvcm1CYXNlVmFsdWUodHJhbnNmb3JtTGlzdCk7CiAgICAgICAgIGlmIChSZW5kZXJP
YmplY3QqIHJlbmRlcmVyID0gc2hhZG93VHJlZUVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKICAgICAg
ICAgICAgIHJlbmRlcmVyLT5zZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpOwogICAgICAgICAgICAg
UmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRh
dGlvbihyZW5kZXJlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExp
c3QuY3BwCmluZGV4IDE1M2U0ZjEuLmU0OTMwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZExlbmd0aExpc3QuY3BwCkBAIC00MCw2ICs0MCwxMSBAQCBQYXNzT3duUHRyPFNW
R0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZy
b21TdHJpbmcoYwogICAgIHJldHVybiBhbmltYXRlVHlwZS5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NP
d25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y29u
c3RydWN0RnJvbUNvcHkoU1ZHR2VuZXJpY0FuaW1hdGVkVHlwZSB0eXBlKQoreworICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aExpc3QobmV3IFNWR0xlbmd0aExpc3QoKnJl
aW50ZXJwcmV0X2Nhc3Q8U1ZHTGVuZ3RoTGlzdCo+KHR5cGUpKSk7Cit9CisKIHZvaWQgU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhPd25QdHI8
U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvLCBjb25z
dCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpCiB7CiAgICAgQVNT
RVJUKG1fY29udGV4dEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVu
Z3RoTGlzdC5oCmluZGV4IGNkNDNiMGUuLmU2M2EyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmgKQEAgLTQ1LDYgKzQ1LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgflNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yKCkgeyB9CiAgICAgCiAgICAgdmly
dHVhbCBQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25z
dHJ1Y3RGcm9tQ29weShTVkdHZW5lcmljQW5pbWF0ZWRUeXBlKTsKICAgICAKICAgICB2aXJ0dWFs
IHZvaWQgY2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBm
cm9tVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0b1ZhbHVlLCBjb25zdCBTdHJpbmcm
IGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpOwogICAgIHZpcnR1YWwgdm9pZCBj
YWxjdWxhdGVGcm9tQW5kQnlWYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1
ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbVN0
cmluZywgY29uc3QgU3RyaW5nJiBieVN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFR5cGUuY3BwCmluZGV4IGI3YThiMmIuLmZjMWM2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFR5cGUuY3BwCkBAIC00MzIsMTMgKzQzMiwxMyBAQCBib29sIFNWR0FuaW1hdGVkVHlw
ZTo6c3VwcG9ydHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUpCiAgICAgLy8gRklY
TUU6IFRoaXMgbGlzdHMgdGhlIGN1cnJlbnQgc3RhdGUgb2Ygb3VyIGFuaW1WYWwgc3VwcG9ydDog
b25seSBTVkdMZW5ndGggaXMgc3VwcG9ydGVkIGZvciBub3cuCiAgICAgc3dpdGNoICh0eXBlKSB7
CiAgICAgY2FzZSBBbmltYXRlZExlbmd0aDoKKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgogICAgIGNhc2Ug
QW5pbWF0ZWRCb29sZWFuOgogICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAgICBjYXNlIEFuaW1h
dGVkRW51bWVyYXRpb246CiAgICAgY2FzZSBBbmltYXRlZEludGVnZXI6Ci0gICAgY2FzZSBBbmlt
YXRlZExlbmd0aExpc3Q6CiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoKICAgICBjYXNlIEFuaW1h
dGVkTnVtYmVyTGlzdDoKICAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI6CkBA
IC00NjMsMTIgKzQ2MywxNCBAQCB2b2lkIFNWR0FuaW1hdGVkVHlwZTo6c2V0VmFsdWUoU1ZHR2Vu
ZXJpY0FuaW1hdGVkVHlwZSB0eXBlKQogICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6CiAgICAgICAg
ICptX2RhdGEubGVuZ3RoID0gKnJlaW50ZXJwcmV0X2Nhc3Q8U1ZHTGVuZ3RoKj4odHlwZSk7CiAg
ICAgICAgIHJldHVybjsKKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKKyAgICAgICAgKm1f
ZGF0YS5sZW5ndGhMaXN0ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8U1ZHTGVuZ3RoTGlzdCo+KHR5cGUp
OworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgogICAgIGNhc2UgQW5p
bWF0ZWRCb29sZWFuOgogICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAgICBjYXNlIEFuaW1hdGVk
RW51bWVyYXRpb246CiAgICAgY2FzZSBBbmltYXRlZEludGVnZXI6Ci0gICAgY2FzZSBBbmltYXRl
ZExlbmd0aExpc3Q6CiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoKICAgICBjYXNlIEFuaW1hdGVk
TnVtYmVyTGlzdDoKICAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZi5oCmluZGV4IDg0NDRjODEuLjRlMWM1NTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZi5oCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpZiBFTkFCTEUoU1ZHKQog
I2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFR5
cGUuaCIKICNpbmNsdWRlICJTVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgiCiAjaW5jbHVkZSAiU1ZH
U3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oIgogCkBAIC00MCwxNCArNDEsMTQgQEAgcHVibGlj
OgogICAgIFNWR1Byb3BlcnR5KiBiYXNlVmFsKCkKICAgICB7CiAgICAgICAgIGlmICghbV9iYXNl
VmFsKQotICAgICAgICAgICAgbV9iYXNlVmFsID0gU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxQcm9w
ZXJ0eVR5cGU+OjpjcmVhdGUodGhpcywgQmFzZVZhbFJvbGUpOworICAgICAgICAgICAgbV9iYXNl
VmFsID0gU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+OjpjcmVhdGUodGhpcywg
QmFzZVZhbFJvbGUsIG1fdmFsdWVzLCBtX3dyYXBwZXJzKTsKICAgICAgICAgcmV0dXJuIG1fYmFz
ZVZhbC5nZXQoKTsKICAgICB9CiAKICAgICBTVkdQcm9wZXJ0eSogYW5pbVZhbCgpCiAgICAgewog
ICAgICAgICBpZiAoIW1fYW5pbVZhbCkKLSAgICAgICAgICAgIG1fYW5pbVZhbCA9IFNWR0xpc3RQ
cm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPjo6Y3JlYXRlKHRoaXMsIEFuaW1WYWxSb2xlKTsK
KyAgICAgICAgICAgIG1fYW5pbVZhbCA9IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlU
eXBlPjo6Y3JlYXRlKHRoaXMsIEFuaW1WYWxSb2xlLCBtX3ZhbHVlcywgbV93cmFwcGVycyk7CiAg
ICAgICAgIHJldHVybiBtX2FuaW1WYWwuZ2V0KCk7CiAgICAgfQogCkBAIC02MiwyOSArNjMsNzAg
QEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hMaXN0V3JhcHBlcnModW5zaWduZWQgbmV3TGlz
dFNpemUpCiAgICAgewotICAgICAgICAvLyBTZWUgU1ZHUHJvcGVydHlUZWFyT2ZmOjpkZXRhY2hX
cmFwcGVyKCkgZm9yIGFuIGV4cGxhaW5hdGlvbiB3aGF0J3MgaGFwcGVuaW5nIGhlcmUuCi0gICAg
ICAgIHVuc2lnbmVkIHNpemUgPSBtX3dyYXBwZXJzLnNpemUoKTsKLSAgICAgICAgQVNTRVJUKHNp
emUgPT0gbV92YWx1ZXMuc2l6ZSgpKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHNpemU7ICsraSkgewotICAgICAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4mIGl0ZW0g
PSBtX3dyYXBwZXJzLmF0KGkpOwotICAgICAgICAgICAgaWYgKCFpdGVtKQotICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaXRlbS0+ZGV0YWNoV3JhcHBlcigpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgLy8gUmVpbml0aWFsaXplIHRoZSB3cmFwcGVyIGNhY2hlIHRvIGJlIGVx
dWFsIHRvIHRoZSBuZXcgdmFsdWVzIHNpemUsIGFmdGVyIHRoZSBYTUwgRE9NIGNoYW5nZWQgdGhl
IGxpc3QuCi0gICAgICAgIGlmIChuZXdMaXN0U2l6ZSkKLSAgICAgICAgICAgIG1fd3JhcHBlcnMu
ZmlsbCgwLCBuZXdMaXN0U2l6ZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fd3JhcHBl
cnMuY2xlYXIoKTsKKyAgICAgICAgaWYgKG1fdmFsdWVzLmlzRW1wdHkoKSAmJiBtX3dyYXBwZXJz
LmlzRW1wdHkoKSAmJiAhbmV3TGlzdFNpemUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4q
PihiYXNlVmFsKCkpLT5kZXRhY2hMaXN0V3JhcHBlcnMobmV3TGlzdFNpemUpOwogICAgIH0KIAot
ICAgIFByb3BlcnR5VHlwZSYgdmFsdWVzKCkgeyByZXR1cm4gbV92YWx1ZXM7IH0KLSAgICBMaXN0
V3JhcHBlckNhY2hlJiB3cmFwcGVycygpIHsgcmV0dXJuIG1fd3JhcHBlcnM7IH0KKyAgICBib29s
IGlzQW5pbWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0FuaW1hdGluZzsgfQogCi0gICAgLy8g
RklYTUU6IGFuaW1WYWwgc3VwcG9ydC4KLSAgICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRBbmltYXRlZFZhbHVlKCkg
eyByZXR1cm4gbV92YWx1ZXM7IH0KKyAgICBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRBbmltYXRlZFZh
bHVlKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2FuaW1WYWwpOworICAgICAgICBBU1NFUlQo
bV9pc0FuaW1hdGluZyk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTVkdMaXN0UHJvcGVy
dHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4qPihtX2FuaW1WYWwuZ2V0KCkpLT52YWx1ZXMoKTsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIFNWR0dlbmVyaWNBbmltYXRlZFR5cGUgY3VycmVudEJhc2VWYWx1
ZShBbmltYXRlZFByb3BlcnR5VHlwZSBleHBlY3RlZFByb3BlcnR5VHlwZSkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChhbmltYXRlZFByb3BlcnR5VHlwZSgpID09IGV4cGVjdGVkUHJvcGVy
dHlUeXBlKTsKKyAgICAgICAgLy8gSWYgdGhlc2UgdHlwZXMgZG9uJ3QgbWF0Y2gsIGFsd2F5cyBy
ZXR1cm4gMCBoZXJlIGluIHJlbGVhc2UgYnVpbGRzLCB0byBhdm9pZCB0cmFzaGluZyBtZW1vcnku
CisgICAgICAgIGlmIChleHBlY3RlZFByb3BlcnR5VHlwZSAhPSBhbmltYXRlZFByb3BlcnR5VHlw
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiAmbV92YWx1ZXM7Cisg
ICAgfQorCisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoU1ZHQW5pbWF0ZWRUeXBl
KiBhbmltYXRlZFR5cGUpCisgICAgeworICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlKTsKKyAg
ICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZS0+dHlwZSgpID09IGFuaW1hdGVkUHJvcGVydHlUeXBl
KCkpOworICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgp
KTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRXcmFwcGVycy5pc0VtcHR5KCkpOworCisgICAg
ICAgIC8vIFN3aXRjaCB0byBuZXcgcGFzc2VkIGluIHZhbHVlIHR5cGUgJiBuZXcgd3JhcHBlcnMg
bGlzdC4gVGhlIG5ldyB3cmFwcGVycyBsaXN0IG11c3QgYmUgY3JlYXRlZCBmb3IgdGhlIG5ldyB2
YWx1ZS4KKyAgICAgICAgUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsID0gcmVpbnRlcnByZXRfY2Fz
dDxQcm9wZXJ0eVR5cGUqPihhbmltYXRlZFR5cGUtPnZhcmlhbnQoKSk7CisgICAgICAgIGlmICgh
bmV3QW5pbVZhbC0+aXNFbXB0eSgpKQorICAgICAgICAgICAgbV9hbmltYXRlZFdyYXBwZXJzLmZp
bGwoMCwgbmV3QW5pbVZhbC0+c2l6ZSgpKTsKKworICAgICAgICBzdGF0aWNfY2FzdDxTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4qPihhbmltVmFsKCkpLT5zZXRWYWx1ZXNBbmRX
cmFwcGVycyhuZXdBbmltVmFsLCAmbV9hbmltYXRlZFdyYXBwZXJzKTsKKyAgICAgICAgbV9pc0Fu
aW1hdGluZyA9IHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkVuZGVk
KCkKKyAgICB7CisgICAgICAgIC8vIFN3aXRjaCBiYWNrIHZhbHVlcyB0byBiYXNlIHZhbHVlLCBh
bmQgd3JhcHBlcnMgbGlzdCB0byBvbmUgY29ycmVzcG9uZGluZyB0byB0aGUgYmFzZSB2YWx1ZS4K
KyAgICAgICAgQVNTRVJUKG1faXNBbmltYXRpbmcpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdM
aXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4qPihhbmltVmFsKCkpLT5zZXRWYWx1ZXNB
bmRXcmFwcGVycygmbV92YWx1ZXMsICZtX3dyYXBwZXJzKTsKKyAgICAgICAgbV9hbmltYXRlZFdy
YXBwZXJzLmNsZWFyKCk7CisKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzLnNpemUoKSA9PSBtX3dy
YXBwZXJzLnNpemUoKSk7CisgICAgICAgIG1faXNBbmltYXRpbmcgPSBmYWxzZTsKKworICAgICAg
ICBBU1NFUlQoY29udGV4dEVsZW1lbnQoKSk7CisgICAgICAgIGNvbnRleHRFbGVtZW50KCktPnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlTmFtZSgpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFs
IHZvaWQgYW5pbWF0aW9uVmFsdWVDaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2Fu
aW1WYWwpOworICAgICAgICBBU1NFUlQobV9pc0FuaW1hdGluZyk7CisKKyAgICAgICAgU1ZHTGlz
dFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+KiBhbmltVmFsVGVhck9mZiA9IHN0YXRpY19j
YXN0PFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPio+KG1fYW5pbVZhbC5nZXQo
KSk7CisgICAgICAgIGFuaW1WYWxUZWFyT2ZmLT5kZXRhY2hMaXN0V3JhcHBlcnMoYW5pbVZhbFRl
YXJPZmYtPnZhbHVlcygpLnNpemUoKSk7CisKKyAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50
KCkpOworICAgICAgICBjb250ZXh0RWxlbWVudCgpLT5zdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJp
YnV0ZU5hbWUoKSk7CisgICAgfQogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4gPiBjcmVhdGUoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVk
UHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykK
ICAgICB7CkBAIC05NiwxNiArMTM4LDE3IEBAIHByb3RlY3RlZDoKICAgICBTVkdBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJv
cGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykKICAgICAgICAgOiBTVkdBbmltYXRlZFBy
b3BlcnR5KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlw
ZSkKICAgICAgICAgLCBtX3ZhbHVlcyh2YWx1ZXMpCisgICAgICAgICwgbV9pc0FuaW1hdGluZyhm
YWxzZSkKICAgICB7CiAgICAgICAgIGlmICghdmFsdWVzLmlzRW1wdHkoKSkKICAgICAgICAgICAg
IG1fd3JhcHBlcnMuZmlsbCgwLCB2YWx1ZXMuc2l6ZSgpKTsKICAgICB9CiAKICAgICBQcm9wZXJ0
eVR5cGUmIG1fdmFsdWVzOworICAgIGJvb2wgbV9pc0FuaW1hdGluZzsKIAotICAgIC8vIEZJWE1F
OiBUaGUgbGlzdCB3cmFwcGVyIGNhY2hlIGlzIHNoYXJlZCBiZXR3ZWVuIGJhc2VWYWwvYW5pbVZh
bC4gSWYgd2UgaW1wbGVtZW50IGFuaW1WYWwsCi0gICAgLy8gd2UgbmVlZCB0d28gc2VwZXJhdGVk
IHdyYXBwZXIgY2FjaGVzIGlmIHRoZSBhdHRyaWJ1dGUgZ2V0cyBhbmltYXRlZC4KICAgICBMaXN0
V3JhcHBlckNhY2hlIG1fd3JhcHBlcnM7CisgICAgTGlzdFdyYXBwZXJDYWNoZSBtX2FuaW1hdGVk
V3JhcHBlcnM7CiAKICAgICBSZWZQdHI8U1ZHUHJvcGVydHk+IG1fYmFzZVZhbDsKICAgICBSZWZQ
dHI8U1ZHUHJvcGVydHk+IG1fYW5pbVZhbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0
eVRlYXJPZmYuaAppbmRleCAyNWQ3NTdiLi42ZWQ1ZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2Zm
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2Vn
TGlzdFByb3BlcnR5VGVhck9mZi5oCkBAIC0zNCwxNCArMzQsMTQgQEAgcHVibGljOgogICAgIFNW
R1Byb3BlcnR5KiBiYXNlVmFsKFNWR1BhdGhTZWdSb2xlIHJvbGUpCiAgICAgewogICAgICAgICBp
ZiAoIW1fYmFzZVZhbCkKLSAgICAgICAgICAgIG1fYmFzZVZhbCA9IFNWR1BhdGhTZWdMaXN0UHJv
cGVydHlUZWFyT2ZmOjpjcmVhdGUodGhpcywgQmFzZVZhbFJvbGUsIHJvbGUpOworICAgICAgICAg
ICAgbV9iYXNlVmFsID0gU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSh0aGlz
LCBCYXNlVmFsUm9sZSwgcm9sZSwgbV92YWx1ZXMsIG1fd3JhcHBlcnMpOwogICAgICAgICByZXR1
cm4gbV9iYXNlVmFsLmdldCgpOwogICAgIH0KIAogICAgIFNWR1Byb3BlcnR5KiBhbmltVmFsKFNW
R1BhdGhTZWdSb2xlIHJvbGUpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZhbCkKLSAgICAg
ICAgICAgIG1fYW5pbVZhbCA9IFNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUo
dGhpcywgQW5pbVZhbFJvbGUsIHJvbGUpOworICAgICAgICAgICAgbV9hbmltVmFsID0gU1ZHUGF0
aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSh0aGlzLCBBbmltVmFsUm9sZSwgcm9sZSwg
bV92YWx1ZXMsIG1fd3JhcHBlcnMpOwogICAgICAgICByZXR1cm4gbV9hbmltVmFsLmdldCgpOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAppbmRl
eCAxYTNlNzAwLi4zZGIzZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0
eVRlYXJPZmYuaApAQCAtMzIsMTQgKzMyLDE0IEBAIHB1YmxpYzoKICAgICBTVkdQcm9wZXJ0eSog
YmFzZVZhbCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYmFzZVZhbCkKLSAgICAgICAgICAgIG1f
YmFzZVZhbCA9IFNWR1RyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSh0aGlzLCBC
YXNlVmFsUm9sZSk7CisgICAgICAgICAgICBtX2Jhc2VWYWwgPSBTVkdUcmFuc2Zvcm1MaXN0UHJv
cGVydHlUZWFyT2ZmOjpjcmVhdGUodGhpcywgQmFzZVZhbFJvbGUsIG1fdmFsdWVzLCBtX3dyYXBw
ZXJzKTsKICAgICAgICAgcmV0dXJuIG1fYmFzZVZhbC5nZXQoKTsKICAgICB9CiAKICAgICBTVkdQ
cm9wZXJ0eSogYW5pbVZhbCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZhbCkKLSAgICAg
ICAgICAgIG1fYW5pbVZhbCA9IFNWR1RyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0
ZSh0aGlzLCBBbmltVmFsUm9sZSk7CisgICAgICAgICAgICBtX2FuaW1WYWwgPSBTVkdUcmFuc2Zv
cm1MaXN0UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUodGhpcywgQW5pbVZhbFJvbGUsIG1fdmFsdWVz
LCBtX3dyYXBwZXJzKTsKICAgICAgICAgcmV0dXJuIG1fYW5pbVZhbC5nZXQoKTsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0
eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgKaW5k
ZXggMDk4NWRkYi4uN2VjMmI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHTGlzdFByb3BlcnR5LmgKQEAgLTUyLDQxICs1Miw2NCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHZvaWQgZGV0YWNoTGlzdFdyYXBwZXJzKHVuc2ln
bmVkIG5ld0xpc3RTaXplKQorICAgIHsKKyAgICAgICAgLy8gU2VlIFNWR1Byb3BlcnR5VGVhck9m
Zjo6ZGV0YWNoV3JhcHBlcigpIGZvciBhbiBleHBsYWluYXRpb24gd2hhdCdzIGhhcHBlbmluZyBo
ZXJlLgorICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CisgICAgICAgIHVuc2lnbmVkIHNpemUg
PSBtX3dyYXBwZXJzLT5zaXplKCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBz
aXplOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChMaXN0SXRlbVRlYXJPZmYqIGl0ZW0gPSBtX3dy
YXBwZXJzLT5hdChpKS5nZXQoKSkKKyAgICAgICAgICAgICAgICBpdGVtLT5kZXRhY2hXcmFwcGVy
KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBSZWluaXRpYWxpemUgdGhlIHdyYXBwZXIgY2Fj
aGUgdG8gYmUgZXF1YWwgdG8gdGhlIG5ldyB2YWx1ZXMgc2l6ZSwgYWZ0ZXIgdGhlIFhNTCBET00g
Y2hhbmdlZCB0aGUgbGlzdC4KKyAgICAgICAgaWYgKG5ld0xpc3RTaXplKQorICAgICAgICAgICAg
bV93cmFwcGVycy0+ZmlsbCgwLCBuZXdMaXN0U2l6ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG1fd3JhcHBlcnMtPmNsZWFyKCk7CisgICAgfQorCisgICAgdm9pZCBzZXRWYWx1ZXNBbmRX
cmFwcGVycyhQcm9wZXJ0eVR5cGUqIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSogd3JhcHBlcnMp
CisgICAgeworICAgICAgICAvLyBUaGlzIGlzIG9ubHkgdXNlZCBmb3IgYW5pbVZhbCBzdXBwb3J0
LCB0byBzd2l0Y2ggdGhlIHVuZGVybHlpbmcgdmFsdWVzICYgd3JhcHBlcnMKKyAgICAgICAgLy8g
dG8gdGhlIGN1cnJlbnQgYW5pbWF0ZWQgdmFsdWVzLCBvbmNlIGFuaW1hdGlvbiBmb3IgYSBsaXN0
IHN0YXJ0cy4KKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICAgICAgQVNTRVJUKG1fd3Jh
cHBlcnMpOworICAgICAgICBBU1NFUlQobV9yb2xlID09IEFuaW1WYWxSb2xlKTsKKworICAgICAg
ICBtX3ZhbHVlcyA9IHZhbHVlczsKKyAgICAgICAgbV93cmFwcGVycyA9IHdyYXBwZXJzOworICAg
ICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAg
IH0KKwogICAgIC8vIFNWR0xpc3Q6OmNsZWFyKCkKLSAgICB2b2lkIGNsZWFyVmFsdWVzKFByb3Bl
cnR5VHlwZSYgdmFsdWVzLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICB2b2lkIGNsZWFyVmFsdWVz
KEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKICAgICAgICAgaWYgKCFjYW5BbHRlckxpc3QoZWMp
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHZhbHVlcy5jbGVhcigpOworICAgICAg
ICBtX3ZhbHVlcy0+Y2xlYXIoKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgfQogCi0g
ICAgdm9pZCBjbGVhclZhbHVlc0FuZFdyYXBwZXJzKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZiogYW5pbWF0ZWRMaXN0LCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICB2b2lkIGNsZWFyVmFsdWVz
QW5kV3JhcHBlcnMoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICBBU1NFUlQoYW5p
bWF0ZWRMaXN0KTsKICAgICAgICAgaWYgKCFjYW5BbHRlckxpc3QoZWMpKQogICAgICAgICAgICAg
cmV0dXJuOwogCi0gICAgICAgIGFuaW1hdGVkTGlzdC0+ZGV0YWNoTGlzdFdyYXBwZXJzKDApOwot
ICAgICAgICBhbmltYXRlZExpc3QtPnZhbHVlcygpLmNsZWFyKCk7CisgICAgICAgIGRldGFjaExp
c3RXcmFwcGVycygwKTsKKyAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7CiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogICAgIH0KIAogICAgIC8vIFNWR0xpc3Q6Om51bWJlck9mSXRlbXMoKQotICAg
IHVuc2lnbmVkIG51bWJlck9mSXRlbXNWYWx1ZXMoUHJvcGVydHlUeXBlJiB2YWx1ZXMpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gdmFsdWVzLnNpemUoKTsKLSAgICB9Ci0KLSAgICB1bnNp
Z25lZCBudW1iZXJPZkl0ZW1zVmFsdWVzQW5kV3JhcHBlcnMoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmKiBhbmltYXRlZExpc3QpIGNvbnN0CisgICAgdW5zaWduZWQgbnVtYmVyT2ZJdGVtcygp
IGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQoYW5pbWF0ZWRMaXN0KTsKLSAgICAgICAgcmV0
dXJuIGFuaW1hdGVkTGlzdC0+dmFsdWVzKCkuc2l6ZSgpOworICAgICAgICByZXR1cm4gbV92YWx1
ZXMtPnNpemUoKTsKICAgICB9CiAKICAgICAvLyBTVkdMaXN0Ojppbml0aWFsaXplKCkKLSAgICBM
aXN0SXRlbVR5cGUgaW5pdGlhbGl6ZVZhbHVlcyhQcm9wZXJ0eVR5cGUmIHZhbHVlcywgY29uc3Qg
TGlzdEl0ZW1UeXBlJiBuZXdJdGVtLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICBMaXN0SXRlbVR5
cGUgaW5pdGlhbGl6ZVZhbHVlcyhjb25zdCBMaXN0SXRlbVR5cGUmIG5ld0l0ZW0sIEV4Y2VwdGlv
bkNvZGUmIGVjKQogICAgIHsKICAgICAgICAgaWYgKCFjYW5BbHRlckxpc3QoZWMpKQogICAgICAg
ICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSgpOwpAQCAtOTUsMTYgKzExOCwxNiBAQCBwdWJsaWM6
CiAgICAgICAgIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgMCk7CiAKICAg
ICAgICAgLy8gU3BlYzogQ2xlYXJzIGFsbCBleGlzdGluZyBjdXJyZW50IGl0ZW1zIGZyb20gdGhl
IGxpc3QgYW5kIHJlLWluaXRpYWxpemVzIHRoZSBsaXN0IHRvIGhvbGQgdGhlIHNpbmdsZSBpdGVt
IHNwZWNpZmllZCBieSB0aGUgcGFyYW1ldGVyLgotICAgICAgICB2YWx1ZXMuY2xlYXIoKTsKLSAg
ICAgICAgdmFsdWVzLmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7
CisgICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbSk7CiAKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAgICAgICAgIHJldHVybiBuZXdJdGVtOwogICAgIH0KIAotICAgIFBhc3NMaXN0SXRl
bVRlYXJPZmYgaW5pdGlhbGl6ZVZhbHVlc0FuZFdyYXBwZXJzKEFuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZiogYW5pbWF0ZWRMaXN0LCBQYXNzTGlzdEl0ZW1UZWFyT2ZmIHBhc3NOZXdJdGVtLCBF
eGNlcHRpb25Db2RlJiBlYykKKyAgICBQYXNzTGlzdEl0ZW1UZWFyT2ZmIGluaXRpYWxpemVWYWx1
ZXNBbmRXcmFwcGVycyhQYXNzTGlzdEl0ZW1UZWFyT2ZmIHBhc3NOZXdJdGVtLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICB7Ci0gICAgICAgIEFTU0VSVChhbmltYXRlZExpc3QpOworICAgICAgICBB
U1NFUlQobV93cmFwcGVycyk7CiAgICAgICAgIGlmICghY2FuQWx0ZXJMaXN0KGVjKSkKICAgICAg
ICAgICAgIHJldHVybiAwOwogCkBAIC0xMTQsMzAgKzEzNywyNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCi0gICAgICAgIFByb3BlcnR5VHlwZSYgdmFsdWVz
ID0gYW5pbWF0ZWRMaXN0LT52YWx1ZXMoKTsKLSAgICAgICAgTGlzdFdyYXBwZXJDYWNoZSYgd3Jh
cHBlcnMgPSBhbmltYXRlZExpc3QtPndyYXBwZXJzKCk7Ci0KICAgICAgICAgUmVmUHRyPExpc3RJ
dGVtVGVhck9mZj4gbmV3SXRlbSA9IHBhc3NOZXdJdGVtOwotICAgICAgICBBU1NFUlQodmFsdWVz
LnNpemUoKSA9PSB3cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNp
emUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBp
bnNlcnRlZCBpdGVtIGlzIGFscmVhZHkgaW4gYSBsaXN0LCBpdCBpcyByZW1vdmVkIGZyb20gaXRz
IHByZXZpb3VzIGxpc3QgYmVmb3JlIGl0IGlzIGluc2VydGVkIGludG8gdGhpcyBsaXN0LgogICAg
ICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIobmV3SXRlbSwgMCk7CiAKICAgICAg
ICAgLy8gU3BlYzogQ2xlYXJzIGFsbCBleGlzdGluZyBjdXJyZW50IGl0ZW1zIGZyb20gdGhlIGxp
c3QgYW5kIHJlLWluaXRpYWxpemVzIHRoZSBsaXN0IHRvIGhvbGQgdGhlIHNpbmdsZSBpdGVtIHNw
ZWNpZmllZCBieSB0aGUgcGFyYW1ldGVyLgotICAgICAgICBhbmltYXRlZExpc3QtPmRldGFjaExp
c3RXcmFwcGVycygwKTsKLSAgICAgICAgdmFsdWVzLmNsZWFyKCk7CisgICAgICAgIGRldGFjaExp
c3RXcmFwcGVycygwKTsKKyAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7CiAKLSAgICAgICAgdmFs
dWVzLmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKLSAgICAgICAgd3JhcHBl
cnMuYXBwZW5kKG5ld0l0ZW0pOworICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0tPnBy
b3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICBtX3dyYXBwZXJzLT5hcHBlbmQobmV3SXRlbSk7
CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBuZXdJdGVtLnJlbGVh
c2UoKTsKICAgICB9CiAKICAgICAvLyBTVkdMaXN0OjpnZXRJdGVtKCkKLSAgICBib29sIGNhbkdl
dEl0ZW0oUHJvcGVydHlUeXBlJiB2YWx1ZXMsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2Rl
JiBlYykKKyAgICBib29sIGNhbkdldEl0ZW0odW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgIHsKLSAgICAgICAgaWYgKGluZGV4ID49IHZhbHVlcy5zaXplKCkpIHsKKyAgICAg
ICAgaWYgKGluZGV4ID49IG1fdmFsdWVzLT5zaXplKCkpIHsKICAgICAgICAgICAgIGVjID0gSU5E
RVhfU0laRV9FUlI7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTE0
NSw2MyArMTY1LDYwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0g
ICAgTGlzdEl0ZW1UeXBlIGdldEl0ZW1WYWx1ZXMoUHJvcGVydHlUeXBlJiB2YWx1ZXMsIHVuc2ln
bmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICBMaXN0SXRlbVR5cGUgZ2V0SXRlbVZh
bHVlcyh1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICBp
ZiAoIWNhbkdldEl0ZW0odmFsdWVzLCBpbmRleCwgZWMpKSAKKyAgICAgICAgaWYgKCFjYW5HZXRJ
dGVtKGluZGV4LCBlYykpIAogICAgICAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSgpOwogCiAg
ICAgICAgIC8vIFNwZWM6IFJldHVybnMgdGhlIHNwZWNpZmllZCBpdGVtIGZyb20gdGhlIGxpc3Qu
IFRoZSByZXR1cm5lZCBpdGVtIGlzIHRoZSBpdGVtIGl0c2VsZiBhbmQgbm90IGEgY29weS4KLSAg
ICAgICAgcmV0dXJuIHZhbHVlcy5hdChpbmRleCk7CisgICAgICAgIHJldHVybiBtX3ZhbHVlcy0+
YXQoaW5kZXgpOwogICAgIH0KIAogICAgIFBhc3NMaXN0SXRlbVRlYXJPZmYgZ2V0SXRlbVZhbHVl
c0FuZFdyYXBwZXJzKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiogYW5pbWF0ZWRMaXN0LCB1
bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICBBU1NFUlQo
YW5pbWF0ZWRMaXN0KTsKLSAgICAgICAgUHJvcGVydHlUeXBlJiB2YWx1ZXMgPSBhbmltYXRlZExp
c3QtPnZhbHVlcygpOwotICAgICAgICBpZiAoIWNhbkdldEl0ZW0odmFsdWVzLCBpbmRleCwgZWMp
KQorICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CisgICAgICAgIGlmICghY2FuR2V0SXRlbShp
bmRleCwgZWMpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgTGlzdFdyYXBwZXJD
YWNoZSYgd3JhcHBlcnMgPSBhbmltYXRlZExpc3QtPndyYXBwZXJzKCk7Ci0KICAgICAgICAgLy8g
U3BlYzogUmV0dXJucyB0aGUgc3BlY2lmaWVkIGl0ZW0gZnJvbSB0aGUgbGlzdC4gVGhlIHJldHVy
bmVkIGl0ZW0gaXMgdGhlIGl0ZW0gaXRzZWxmIGFuZCBub3QgYSBjb3B5LgogICAgICAgICAvLyBB
bnkgY2hhbmdlcyBtYWRlIHRvIHRoZSBpdGVtIGFyZSBpbW1lZGlhdGVseSByZWZsZWN0ZWQgaW4g
dGhlIGxpc3QuCi0gICAgICAgIEFTU0VSVCh2YWx1ZXMuc2l6ZSgpID09IHdyYXBwZXJzLnNpemUo
KSk7Ci0gICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+IHdyYXBwZXIgPSB3cmFwcGVycy5h
dChpbmRleCk7CisgICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMt
PnNpemUoKSk7CisgICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+IHdyYXBwZXIgPSBtX3dy
YXBwZXJzLT5hdChpbmRleCk7CiAgICAgICAgIGlmICghd3JhcHBlcikgewogICAgICAgICAgICAg
Ly8gQ3JlYXRlIG5ldyB3cmFwcGVyLCB3aGljaCBpcyBhbGxvd2VkIHRvIGRpcmVjdGx5IG1vZGlm
eSB0aGUgaXRlbSBpbiB0aGUgbGlzdCwgdy9vIGNvcHlpbmcgYW5kIGNhY2hlIHRoZSB3cmFwcGVy
IGluIG91ciBtYXAuCiAgICAgICAgICAgICAvLyBJdCBpcyBhbHNvIGFzc29jaWF0ZWQgd2l0aCBv
dXIgYW5pbWF0ZWQgcHJvcGVydHksIHNvIGl0IGNhbiBub3RpZnkgdGhlIFNWRyBFbGVtZW50IHdo
aWNoIGhvbGRzIHRoZSBTVkdBbmltYXRlZCpMaXN0CiAgICAgICAgICAgICAvLyB0aGF0IGl0IGhh
cyBiZWVuIG1vZGlmaWVkIChhbmQgdGh1cyBjYW4gY2FsbCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGFz
c29jaWF0ZWRBdHRyaWJ1dGVOYW1lKSkuCi0gICAgICAgICAgICB3cmFwcGVyID0gTGlzdEl0ZW1U
ZWFyT2ZmOjpjcmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2YWx1ZXMuYXQoaW5k
ZXgpKTsKLSAgICAgICAgICAgIHdyYXBwZXJzLmF0KGluZGV4KSA9IHdyYXBwZXI7CisgICAgICAg
ICAgICB3cmFwcGVyID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRl
ZmluZWRSb2xlLCBtX3ZhbHVlcy0+YXQoaW5kZXgpKTsKKyAgICAgICAgICAgIG1fd3JhcHBlcnMt
PmF0KGluZGV4KSA9IHdyYXBwZXI7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gd3JhcHBl
ci5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgLy8gU1ZHTGlzdDo6aW5zZXJ0SXRlbUJlZm9yZSgp
Ci0gICAgTGlzdEl0ZW1UeXBlIGluc2VydEl0ZW1CZWZvcmVWYWx1ZXMoUHJvcGVydHlUeXBlJiB2
YWx1ZXMsIGNvbnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgdW5zaWduZWQgaW5kZXgsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQorICAgIExpc3RJdGVtVHlwZSBpbnNlcnRJdGVtQmVmb3JlVmFsdWVzKGNv
bnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgIHsKICAgICAgICAgaWYgKCFjYW5BbHRlckxpc3QoZWMpKQogICAgICAgICAgICAg
cmV0dXJuIExpc3RJdGVtVHlwZSgpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBpbmRleCBp
cyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbnVtYmVyT2ZJdGVtcywgdGhlbiB0aGUgbmV3IGl0
ZW0gaXMgYXBwZW5kZWQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgaWYgKGluZGV4
ID4gdmFsdWVzLnNpemUoKSkKLSAgICAgICAgICAgIGluZGV4ID0gdmFsdWVzLnNpemUoKTsKKyAg
ICAgICAgaWYgKGluZGV4ID4gbV92YWx1ZXMtPnNpemUoKSkKKyAgICAgICAgICAgIGluZGV4ID0g
bV92YWx1ZXMtPnNpemUoKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiBuZXdJdGVtIGlzIGFscmVh
ZHkgaW4gYSBsaXN0LCBpdCBpcyByZW1vdmVkIGZyb20gaXRzIHByZXZpb3VzIGxpc3QgYmVmb3Jl
IGl0IGlzIGluc2VydGVkIGludG8gdGhpcyBsaXN0LgogICAgICAgICBwcm9jZXNzSW5jb21pbmdM
aXN0SXRlbVZhbHVlKG5ld0l0ZW0sICZpbmRleCk7CiAKICAgICAgICAgLy8gU3BlYzogSW5zZXJ0
cyBhIG5ldyBpdGVtIGludG8gdGhlIGxpc3QgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4gVGhl
IGluZGV4IG9mIHRoZSBpdGVtIGJlZm9yZSB3aGljaCB0aGUgbmV3IGl0ZW0gaXMgdG8gYmUKICAg
ICAgICAgLy8gaW5zZXJ0ZWQuIFRoZSBmaXJzdCBpdGVtIGlzIG51bWJlciAwLiBJZiB0aGUgaW5k
ZXggaXMgZXF1YWwgdG8gMCwgdGhlbiB0aGUgbmV3IGl0ZW0gaXMgaW5zZXJ0ZWQgYXQgdGhlIGZy
b250IG9mIHRoZSBsaXN0LgotICAgICAgICB2YWx1ZXMuaW5zZXJ0KGluZGV4LCBuZXdJdGVtKTsK
KyAgICAgICAgbV92YWx1ZXMtPmluc2VydChpbmRleCwgbmV3SXRlbSk7CiAKICAgICAgICAgY29t
bWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBuZXdJdGVtOwogICAgIH0KIAotICAgIFBhc3NM
aXN0SXRlbVRlYXJPZmYgaW5zZXJ0SXRlbUJlZm9yZVZhbHVlc0FuZFdyYXBwZXJzKEFuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZiogYW5pbWF0ZWRMaXN0LCBQYXNzTGlzdEl0ZW1UZWFyT2ZmIHBh
c3NOZXdJdGVtLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCisgICAgUGFzc0xp
c3RJdGVtVGVhck9mZiBpbnNlcnRJdGVtQmVmb3JlVmFsdWVzQW5kV3JhcHBlcnMoUGFzc0xpc3RJ
dGVtVGVhck9mZiBwYXNzTmV3SXRlbSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGFuaW1hdGVkTGlzdCk7CisgICAgICAgIEFTU0VSVCht
X3dyYXBwZXJzKTsKICAgICAgICAgaWYgKCFjYW5BbHRlckxpc3QoZWMpKQogICAgICAgICAgICAg
cmV0dXJuIDA7CiAKQEAgLTIxMSwzNyArMjI4LDM0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICB9CiAKLSAgICAgICAgUHJvcGVydHlUeXBlJiB2YWx1ZXMgPSBhbmlt
YXRlZExpc3QtPnZhbHVlcygpOwotICAgICAgICBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycyA9
IGFuaW1hdGVkTGlzdC0+d3JhcHBlcnMoKTsKLQogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgaW5k
ZXggaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIG51bWJlck9mSXRlbXMsIHRoZW4gdGhlIG5l
dyBpdGVtIGlzIGFwcGVuZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIGlmIChp
bmRleCA+IHZhbHVlcy5zaXplKCkpCi0gICAgICAgICAgICAgaW5kZXggPSB2YWx1ZXMuc2l6ZSgp
OworICAgICAgICBpZiAoaW5kZXggPiBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAgICAgICAgIGlu
ZGV4ID0gbV92YWx1ZXMtPnNpemUoKTsKIAogICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2Zm
PiBuZXdJdGVtID0gcGFzc05ld0l0ZW07Ci0gICAgICAgIEFTU0VSVCh2YWx1ZXMuc2l6ZSgpID09
IHdyYXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1f
d3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgbmV3SXRlbSBpcyBhbHJl
YWR5IGluIGEgbGlzdCwgaXQgaXMgcmVtb3ZlZCBmcm9tIGl0cyBwcmV2aW91cyBsaXN0IGJlZm9y
ZSBpdCBpcyBpbnNlcnRlZCBpbnRvIHRoaXMgbGlzdC4KICAgICAgICAgcHJvY2Vzc0luY29taW5n
TGlzdEl0ZW1XcmFwcGVyKG5ld0l0ZW0sICZpbmRleCk7CiAKICAgICAgICAgLy8gU3BlYzogSW5z
ZXJ0cyBhIG5ldyBpdGVtIGludG8gdGhlIGxpc3QgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4g
VGhlIGluZGV4IG9mIHRoZSBpdGVtIGJlZm9yZSB3aGljaCB0aGUgbmV3IGl0ZW0gaXMgdG8gYmUK
ICAgICAgICAgLy8gaW5zZXJ0ZWQuIFRoZSBmaXJzdCBpdGVtIGlzIG51bWJlciAwLiBJZiB0aGUg
aW5kZXggaXMgZXF1YWwgdG8gMCwgdGhlbiB0aGUgbmV3IGl0ZW0gaXMgaW5zZXJ0ZWQgYXQgdGhl
IGZyb250IG9mIHRoZSBsaXN0LgotICAgICAgICB2YWx1ZXMuaW5zZXJ0KGluZGV4LCBuZXdJdGVt
LT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgbV92YWx1ZXMtPmluc2VydChpbmRleCwg
bmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CiAKICAgICAgICAgLy8gU3RvcmUgbmV3IHdy
YXBwZXIgYXQgcG9zaXRpb24gJ2luZGV4JywgY2hhbmdlIGl0cyB1bmRlcmx5aW5nIHZhbHVlLCBz
byBtdXRhdGlvbnMgb2YgbmV3SXRlbSwgZGlyZWN0bHkgYWZmZWN0IHRoZSBpdGVtIGluIHRoZSBs
aXN0LgotICAgICAgICB3cmFwcGVycy5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0pOworICAgICAgICBt
X3dyYXBwZXJzLT5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0pOwogCiAgICAgICAgIGNvbW1pdENoYW5n
ZSgpOwogICAgICAgICByZXR1cm4gbmV3SXRlbS5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgLy8g
U1ZHTGlzdDo6cmVwbGFjZUl0ZW0oKQotICAgIGJvb2wgY2FuUmVwbGFjZUl0ZW0oUHJvcGVydHlU
eXBlJiB2YWx1ZXMsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICBib29s
IGNhblJlcGxhY2VJdGVtKHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7
CiAgICAgICAgIGlmICghY2FuQWx0ZXJMaXN0KGVjKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVzLnNpemUoKSkgeworICAgICAgICBpZiAo
aW5kZXggPj0gbV92YWx1ZXMtPnNpemUoKSkgewogICAgICAgICAgICAgZWMgPSBJTkRFWF9TSVpF
X0VSUjsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMjQ5LDMzICsy
NjMsMzIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBMaXN0
SXRlbVR5cGUgcmVwbGFjZUl0ZW1WYWx1ZXMoUHJvcGVydHlUeXBlJiB2YWx1ZXMsIGNvbnN0IExp
c3RJdGVtVHlwZSYgbmV3SXRlbSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
ICAgIExpc3RJdGVtVHlwZSByZXBsYWNlSXRlbVZhbHVlcyhjb25zdCBMaXN0SXRlbVR5cGUmIG5l
d0l0ZW0sIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAg
IGlmICghY2FuUmVwbGFjZUl0ZW0odmFsdWVzLCBpbmRleCwgZWMpKQorICAgICAgICBpZiAoIWNh
blJlcGxhY2VJdGVtKGluZGV4LCBlYykpCiAgICAgICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBl
KCk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgbmV3SXRlbSBpcyBhbHJlYWR5IGluIGEgbGlzdCwg
aXQgaXMgcmVtb3ZlZCBmcm9tIGl0cyBwcmV2aW91cyBsaXN0IGJlZm9yZSBpdCBpcyBpbnNlcnRl
ZCBpbnRvIHRoaXMgbGlzdC4KICAgICAgICAgLy8gU3BlYzogSWYgdGhlIGl0ZW0gaXMgYWxyZWFk
eSBpbiB0aGlzIGxpc3QsIG5vdGUgdGhhdCB0aGUgaW5kZXggb2YgdGhlIGl0ZW0gdG8gcmVwbGFj
ZSBpcyBiZWZvcmUgdGhlIHJlbW92YWwgb2YgdGhlIGl0ZW0uCiAgICAgICAgIHByb2Nlc3NJbmNv
bWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgJmluZGV4KTsKIAotICAgICAgICBpZiAodmFsdWVz
LmlzRW1wdHkoKSkgeworICAgICAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkgewogICAgICAg
ICAgICAgLy8gJ25ld0l0ZW0nIGFscmVhZHkgbGl2ZWQgaW4gb3VyIGxpc3QsIHdlIHJlbW92ZWQg
aXQsIGFuZCBub3cgd2UncmUgZW1wdHksIHdoaWNoIG1lYW5zIHRoZXJlJ3Mgbm90aGluZyB0byBy
ZXBsYWNlLgogICAgICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKICAgICAgICAgICAgIHJl
dHVybiBMaXN0SXRlbVR5cGUoKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUg
dmFsdWUgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24gJ2luZGV4Jy4gCi0gICAgICAgIHZhbHVlcy5h
dChpbmRleCkgPSBuZXdJdGVtOworICAgICAgICBtX3ZhbHVlcy0+YXQoaW5kZXgpID0gbmV3SXRl
bTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIG5ld0l0ZW07CiAg
ICAgfQogCi0gICAgUGFzc0xpc3RJdGVtVGVhck9mZiByZXBsYWNlSXRlbVZhbHVlc0FuZFdyYXBw
ZXJzKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiogYW5pbWF0ZWRMaXN0LCBQYXNzTGlzdEl0
ZW1UZWFyT2ZmIHBhc3NOZXdJdGVtLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMp
CisgICAgUGFzc0xpc3RJdGVtVGVhck9mZiByZXBsYWNlSXRlbVZhbHVlc0FuZFdyYXBwZXJzKFBh
c3NMaXN0SXRlbVRlYXJPZmYgcGFzc05ld0l0ZW0sIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICB7Ci0gICAgICAgIEFTU0VSVChhbmltYXRlZExpc3QpOwotICAgICAgICBQ
cm9wZXJ0eVR5cGUmIHZhbHVlcyA9IGFuaW1hdGVkTGlzdC0+dmFsdWVzKCk7Ci0gICAgICAgIGlm
ICghY2FuUmVwbGFjZUl0ZW0odmFsdWVzLCBpbmRleCwgZWMpKQorICAgICAgICBBU1NFUlQobV93
cmFwcGVycyk7CisgICAgICAgIGlmICghY2FuUmVwbGFjZUl0ZW0oaW5kZXgsIGVjKSkKICAgICAg
ICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIC8vIE5vdCBzcGVjaWZpZWQsIGJ1dCBGRi9PcGVy
YSBkbyBpdCB0aGlzIHdheSwgYW5kIGl0J3MganVzdCBzYW5lLgpAQCAtMjg0LDQxICsyOTcsNDAg
QEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KIAotICAgICAgICBM
aXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycyA9IGFuaW1hdGVkTGlzdC0+d3JhcHBlcnMoKTsKLSAg
ICAgICAgQVNTRVJUKHZhbHVlcy5zaXplKCkgPT0gd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAg
QVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKICAgICAgICAg
UmVmUHRyPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbSA9IHBhc3NOZXdJdGVtOwogCiAgICAgICAg
IC8vIFNwZWM6IElmIG5ld0l0ZW0gaXMgYWxyZWFkeSBpbiBhIGxpc3QsIGl0IGlzIHJlbW92ZWQg
ZnJvbSBpdHMgcHJldmlvdXMgbGlzdCBiZWZvcmUgaXQgaXMgaW5zZXJ0ZWQgaW50byB0aGlzIGxp
c3QuCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBpdGVtIGlzIGFscmVhZHkgaW4gdGhpcyBsaXN0
LCBub3RlIHRoYXQgdGhlIGluZGV4IG9mIHRoZSBpdGVtIHRvIHJlcGxhY2UgaXMgYmVmb3JlIHRo
ZSByZW1vdmFsIG9mIHRoZSBpdGVtLgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdy
YXBwZXIobmV3SXRlbSwgJmluZGV4KTsKIAotICAgICAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkg
ewotICAgICAgICAgICAgQVNTRVJUKHdyYXBwZXJzLmlzRW1wdHkoKSk7CisgICAgICAgIGlmICht
X3ZhbHVlcy0+aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBBU1NFUlQobV93cmFwcGVycy0+aXNF
bXB0eSgpKTsKICAgICAgICAgICAgIC8vICdwYXNzTmV3SXRlbScgYWxyZWFkeSBsaXZlZCBpbiBv
dXIgbGlzdCwgd2UgcmVtb3ZlZCBpdCwgYW5kIG5vdyB3ZSdyZSBlbXB0eSwgd2hpY2ggbWVhbnMg
dGhlcmUncyBub3RoaW5nIHRvIHJlcGxhY2UuCiAgICAgICAgICAgICBlYyA9IElOREVYX1NJWkVf
RVJSOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBEZXRh
Y2ggdGhlIGV4aXN0aW5nIHdyYXBwZXIuCi0gICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+
IG9sZEl0ZW0gPSB3cmFwcGVycy5hdChpbmRleCk7CisgICAgICAgIFJlZlB0cjxMaXN0SXRlbVRl
YXJPZmY+IG9sZEl0ZW0gPSBtX3dyYXBwZXJzLT5hdChpbmRleCk7CiAgICAgICAgIGlmIChvbGRJ
dGVtKQogICAgICAgICAgICAgb2xkSXRlbS0+ZGV0YWNoV3JhcHBlcigpOwogCiAgICAgICAgIC8v
IFVwZGF0ZSB0aGUgdmFsdWUgYW5kIHRoZSB3cmFwcGVyIGF0IHRoZSBkZXNpcmVkIHBvc2l0aW9u
ICdpbmRleCcuIAotICAgICAgICB2YWx1ZXMuYXQoaW5kZXgpID0gbmV3SXRlbS0+cHJvcGVydHlS
ZWZlcmVuY2UoKTsKLSAgICAgICAgd3JhcHBlcnMuYXQoaW5kZXgpID0gbmV3SXRlbTsKKyAgICAg
ICAgbV92YWx1ZXMtPmF0KGluZGV4KSA9IG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCk7Cisg
ICAgICAgIG1fd3JhcHBlcnMtPmF0KGluZGV4KSA9IG5ld0l0ZW07CiAKICAgICAgICAgY29tbWl0
Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBuZXdJdGVtLnJlbGVhc2UoKTsKICAgICB9CiAKICAg
ICAvLyBTVkdMaXN0OjpyZW1vdmVJdGVtKCkKLSAgICBib29sIGNhblJlbW92ZUl0ZW0oUHJvcGVy
dHlUeXBlJiB2YWx1ZXMsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICBi
b29sIGNhblJlbW92ZUl0ZW0odW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
IHsKICAgICAgICAgaWYgKCFjYW5BbHRlckxpc3QoZWMpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgICAgIGlmIChpbmRleCA+PSB2YWx1ZXMuc2l6ZSgpKSB7CisgICAgICAgIGlm
IChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKSB7CiAgICAgICAgICAgICBlYyA9IElOREVYX1NJ
WkVfRVJSOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0zMjYsMTMg
KzMzOCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIExp
c3RJdGVtVHlwZSByZW1vdmVJdGVtVmFsdWVzKFByb3BlcnR5VHlwZSYgdmFsdWVzLCB1bnNpZ25l
ZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCisgICAgTGlzdEl0ZW1UeXBlIHJlbW92ZUl0ZW1W
YWx1ZXModW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKLSAgICAgICAg
aWYgKCFjYW5SZW1vdmVJdGVtKHZhbHVlcywgaW5kZXgsIGVjKSkKKyAgICAgICAgaWYgKCFjYW5S
ZW1vdmVJdGVtKGluZGV4LCBlYykpCiAgICAgICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlKCk7
CiAKLSAgICAgICAgTGlzdEl0ZW1UeXBlIG9sZEl0ZW0gPSB2YWx1ZXMuYXQoaW5kZXgpOwotICAg
ICAgICB2YWx1ZXMucmVtb3ZlKGluZGV4KTsKKyAgICAgICAgTGlzdEl0ZW1UeXBlIG9sZEl0ZW0g
PSBtX3ZhbHVlcy0+YXQoaW5kZXgpOworICAgICAgICBtX3ZhbHVlcy0+cmVtb3ZlKGluZGV4KTsK
IAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIG9sZEl0ZW07CkBAIC0z
NDAsMjkgKzM1MiwyNyBAQCBwdWJsaWM6CiAKICAgICBQYXNzTGlzdEl0ZW1UZWFyT2ZmIHJlbW92
ZUl0ZW1WYWx1ZXNBbmRXcmFwcGVycyhBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYqIGFuaW1h
dGVkTGlzdCwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKLSAgICAg
ICAgQVNTRVJUKGFuaW1hdGVkTGlzdCk7Ci0gICAgICAgIFByb3BlcnR5VHlwZSYgdmFsdWVzID0g
YW5pbWF0ZWRMaXN0LT52YWx1ZXMoKTsKLSAgICAgICAgaWYgKCFjYW5SZW1vdmVJdGVtKHZhbHVl
cywgaW5kZXgsIGVjKSkKKyAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOworICAgICAgICBpZiAo
IWNhblJlbW92ZUl0ZW0oaW5kZXgsIGVjKSkKICAgICAgICAgICAgIHJldHVybiAwOwogCi0gICAg
ICAgIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzID0gYW5pbWF0ZWRMaXN0LT53cmFwcGVycygp
OwotICAgICAgICBBU1NFUlQodmFsdWVzLnNpemUoKSA9PSB3cmFwcGVycy5zaXplKCkpOworICAg
ICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAg
ICAgICAgIC8vIERldGFjaCB0aGUgZXhpc3Rpbmcgd3JhcHBlci4KLSAgICAgICAgUmVmUHRyPExp
c3RJdGVtVGVhck9mZj4gb2xkSXRlbSA9IHdyYXBwZXJzLmF0KGluZGV4KTsKKyAgICAgICAgUmVm
UHRyPExpc3RJdGVtVGVhck9mZj4gb2xkSXRlbSA9IG1fd3JhcHBlcnMtPmF0KGluZGV4KTsKICAg
ICAgICAgaWYgKCFvbGRJdGVtKQotICAgICAgICAgICAgb2xkSXRlbSA9IExpc3RJdGVtVGVhck9m
Zjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9sZSwgdmFsdWVzLmF0KGluZGV4KSk7
CisgICAgICAgICAgICBvbGRJdGVtID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0ZWRM
aXN0LCBVbmRlZmluZWRSb2xlLCBtX3ZhbHVlcy0+YXQoaW5kZXgpKTsKIAogICAgICAgICBvbGRJ
dGVtLT5kZXRhY2hXcmFwcGVyKCk7Ci0gICAgICAgIHdyYXBwZXJzLnJlbW92ZShpbmRleCk7Ci0g
ICAgICAgIHZhbHVlcy5yZW1vdmUoaW5kZXgpOworICAgICAgICBtX3dyYXBwZXJzLT5yZW1vdmUo
aW5kZXgpOworICAgICAgICBtX3ZhbHVlcy0+cmVtb3ZlKGluZGV4KTsKIAogICAgICAgICBjb21t
aXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIG9sZEl0ZW0ucmVsZWFzZSgpOwogICAgIH0KIAog
ICAgIC8vIFNWR0xpc3Q6OmFwcGVuZEl0ZW0oKQotICAgIExpc3RJdGVtVHlwZSBhcHBlbmRJdGVt
VmFsdWVzKFByb3BlcnR5VHlwZSYgdmFsdWVzLCBjb25zdCBMaXN0SXRlbVR5cGUmIG5ld0l0ZW0s
IEV4Y2VwdGlvbkNvZGUmIGVjKQorICAgIExpc3RJdGVtVHlwZSBhcHBlbmRJdGVtVmFsdWVzKGNv
bnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewogICAg
ICAgICBpZiAoIWNhbkFsdGVyTGlzdChlYykpCiAgICAgICAgICAgICByZXR1cm4gTGlzdEl0ZW1U
eXBlKCk7CkBAIC0zNzEsMTUgKzM4MSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHByb2Nlc3NJbmNv
bWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgMCk7CiAKICAgICAgICAgLy8gQXBwZW5kIHRoZSB2
YWx1ZSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgICAgICB2YWx1ZXMuYXBwZW5kKG5ld0l0
ZW0pOworICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0pOwogCiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogICAgICAgICByZXR1cm4gbmV3SXRlbTsKICAgICB9CiAKLSAgICBQYXNzTGlz
dEl0ZW1UZWFyT2ZmIGFwcGVuZEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyhBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmYqIGFuaW1hdGVkTGlzdCwgUGFzc0xpc3RJdGVtVGVhck9mZiBwYXNzTmV3SXRl
bSwgRXhjZXB0aW9uQ29kZSYgZWMpCisgICAgUGFzc0xpc3RJdGVtVGVhck9mZiBhcHBlbmRJdGVt
VmFsdWVzQW5kV3JhcHBlcnMoUGFzc0xpc3RJdGVtVGVhck9mZiBwYXNzTmV3SXRlbSwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICBBU1NFUlQoYW5pbWF0ZWRMaXN0KTsKKyAgICAg
ICAgQVNTRVJUKG1fd3JhcHBlcnMpOwogICAgICAgICBpZiAoIWNhbkFsdGVyTGlzdChlYykpCiAg
ICAgICAgICAgICByZXR1cm4gMDsKIApAQCAtMzg5LDI4ICszOTksMzkgQEAgcHVibGljOgogICAg
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KIAotICAgICAgICBQcm9wZXJ0eVR5cGUmIHZh
bHVlcyA9IGFuaW1hdGVkTGlzdC0+dmFsdWVzKCk7Ci0gICAgICAgIExpc3RXcmFwcGVyQ2FjaGUm
IHdyYXBwZXJzID0gYW5pbWF0ZWRMaXN0LT53cmFwcGVycygpOwotCiAgICAgICAgIFJlZlB0cjxM
aXN0SXRlbVRlYXJPZmY+IG5ld0l0ZW0gPSBwYXNzTmV3SXRlbTsKLSAgICAgICAgQVNTRVJUKHZh
bHVlcy5zaXplKCkgPT0gd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVz
LT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiBu
ZXdJdGVtIGlzIGFscmVhZHkgaW4gYSBsaXN0LCBpdCBpcyByZW1vdmVkIGZyb20gaXRzIHByZXZp
b3VzIGxpc3QgYmVmb3JlIGl0IGlzIGluc2VydGVkIGludG8gdGhpcyBsaXN0LgogICAgICAgICBw
cm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIobmV3SXRlbSwgMCk7CiAKICAgICAgICAgLy8g
QXBwZW5kIHRoZSB2YWx1ZSBhbmQgd3JhcHBlciBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAg
ICAgICB2YWx1ZXMuYXBwZW5kKG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOwotICAgICAg
ICB3cmFwcGVycy5hcHBlbmQobmV3SXRlbSk7CisgICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3
SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIG1fd3JhcHBlcnMtPmFwcGVuZChu
ZXdJdGVtKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIG5ld0l0
ZW0ucmVsZWFzZSgpOwogICAgIH0KIAogICAgIHZpcnR1YWwgU1ZHUHJvcGVydHlSb2xlIHJvbGUo
KSBjb25zdCB7IHJldHVybiBtX3JvbGU7IH0KKyAgICAKKyAgICBQcm9wZXJ0eVR5cGUmIHZhbHVl
cygpCisgICAgeworICAgICAgICBBU1NFUlQobV92YWx1ZXMpOworICAgICAgICByZXR1cm4gKm1f
dmFsdWVzOworICAgIH0KKworICAgIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKCkgY29uc3QK
KyAgICB7CisgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKKyAgICAgICAgcmV0dXJuICptX3dy
YXBwZXJzOworICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0xpc3RQcm9wZXJ0eShTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSkKKyAgICBTVkdMaXN0UHJvcGVydHkoU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IFByb3BlcnR5VHlwZSYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycykKICAgICAg
ICAgOiBtX3JvbGUocm9sZSkKKyAgICAgICAgLCBtX3ZhbHVlcygmdmFsdWVzKQorICAgICAgICAs
IG1fd3JhcHBlcnMod3JhcHBlcnMpCiAgICAgewogICAgIH0KIApAQCAtNDE4LDggKzQzOSw5IEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1
ZShjb25zdCBMaXN0SXRlbVR5cGUmIG5ld0l0ZW0sIHVuc2lnbmVkKiBpbmRleFRvTW9kaWZ5KSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihSZWZQ
dHI8TGlzdEl0ZW1UZWFyT2ZmPiYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4VG9Nb2RpZnkpID0g
MDsKIAotcHJpdmF0ZToKICAgICBTVkdQcm9wZXJ0eVJvbGUgbV9yb2xlOworICAgIFByb3BlcnR5
VHlwZSogbV92YWx1ZXM7CisgICAgTGlzdFdyYXBwZXJDYWNoZSogbV93cmFwcGVyczsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmYuaAppbmRleCA1YTcxNzM1Li40MTVkZjgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oCkBAIC0y
OSw2ICsyOSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KIGNsYXNzIFNWR0xp
c3RQcm9wZXJ0eVRlYXJPZmYgOiBwdWJsaWMgU1ZHTGlzdFByb3BlcnR5PFByb3BlcnR5VHlwZT4g
ewogcHVibGljOgogICAgIHR5cGVkZWYgU1ZHTGlzdFByb3BlcnR5PFByb3BlcnR5VHlwZT4gQmFz
ZTsKKyAgICB0eXBlZGVmIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPiBTZWxm
OwogCiAgICAgdHlwZWRlZiB0eXBlbmFtZSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+
OjpMaXN0SXRlbVR5cGUgTGlzdEl0ZW1UeXBlOwogICAgIHR5cGVkZWYgU1ZHUHJvcGVydHlUZWFy
T2ZmPExpc3RJdGVtVHlwZT4gTGlzdEl0ZW1UZWFyT2ZmOwpAQCAtMzYsMjggKzM3LDMxIEBAIHB1
YmxpYzoKICAgICB0eXBlZGVmIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0
eVR5cGU+IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjsKICAgICB0eXBlZGVmIHR5cGVuYW1l
IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+OjpMaXN0V3JhcHBl
ckNhY2hlIExpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4gPiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmKiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSkKKyAgICB1
c2luZyBCYXNlOjptX3ZhbHVlczsKKyAgICB1c2luZyBCYXNlOjptX3dyYXBwZXJzOworCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2VsZj4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZiogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYg
dmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIEFTU0VS
VChhbmltYXRlZFByb3BlcnR5KTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlbGYoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogICAgIGludCByZW1vdmVJdGVtRnJvbUxpc3Qo
TGlzdEl0ZW1UZWFyT2ZmKiByZW1vdmVJdGVtLCBib29sIHNob3VsZFN5bmNocm9uaXplV3JhcHBl
cnMpCiAgICAgewotICAgICAgICBQcm9wZXJ0eVR5cGUmIHZhbHVlcyA9IG1fYW5pbWF0ZWRQcm9w
ZXJ0eS0+dmFsdWVzKCk7Ci0gICAgICAgIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzID0gbV9h
bmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpOworICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwor
ICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAKICAgICAgICAgLy8gTG9va3VwIGl0ZW0gaW4g
Y2FjaGUgYW5kIHJlbW92ZSBpdHMgY29ycmVzcG9uZGluZyB3cmFwcGVyLgotICAgICAgICB1bnNp
Z25lZCBzaXplID0gd3JhcHBlcnMuc2l6ZSgpOwotICAgICAgICBBU1NFUlQoc2l6ZSA9PSB2YWx1
ZXMuc2l6ZSgpKTsKKyAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1fd3JhcHBlcnMtPnNpemUoKTsK
KyAgICAgICAgQVNTRVJUKHNpemUgPT0gbV92YWx1ZXMtPnNpemUoKSk7CiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgIFJlZlB0cjxMaXN0
SXRlbVRlYXJPZmY+JiBpdGVtID0gd3JhcHBlcnMuYXQoaSk7CisgICAgICAgICAgICBSZWZQdHI8
TGlzdEl0ZW1UZWFyT2ZmPiYgaXRlbSA9IG1fd3JhcHBlcnMtPmF0KGkpOwogICAgICAgICAgICAg
aWYgKGl0ZW0gIT0gcmVtb3ZlSXRlbSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAg
ICAgICAgICAgaXRlbS0+ZGV0YWNoV3JhcHBlcigpOwotICAgICAgICAgICAgd3JhcHBlcnMucmVt
b3ZlKGkpOwotICAgICAgICAgICAgdmFsdWVzLnJlbW92ZShpKTsKKyAgICAgICAgICAgIG1fd3Jh
cHBlcnMtPnJlbW92ZShpKTsKKyAgICAgICAgICAgIG1fdmFsdWVzLT5yZW1vdmUoaSk7CiAKICAg
ICAgICAgICAgIGlmIChzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAgICAgICAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwpAQCAtNzEsMTcgKzc1LDEyIEBAIHB1YmxpYzoKICAgICAvLyBTVkdM
aXN0IEFQSQogICAgIHZvaWQgY2xlYXIoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAg
ICBCYXNlOjpjbGVhclZhbHVlc0FuZFdyYXBwZXJzKG1fYW5pbWF0ZWRQcm9wZXJ0eS5nZXQoKSwg
ZWMpOwotICAgIH0KLQotICAgIHVuc2lnbmVkIG51bWJlck9mSXRlbXMoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIEJhc2U6Om51bWJlck9mSXRlbXNWYWx1ZXNBbmRXcmFwcGVycyhtX2Fu
aW1hdGVkUHJvcGVydHkuZ2V0KCkpOworICAgICAgICBCYXNlOjpjbGVhclZhbHVlc0FuZFdyYXBw
ZXJzKGVjKTsKICAgICB9CiAKICAgICBQYXNzTGlzdEl0ZW1UZWFyT2ZmIGluaXRpYWxpemUoUGFz
c0xpc3RJdGVtVGVhck9mZiBwYXNzTmV3SXRlbSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewot
ICAgICAgICByZXR1cm4gQmFzZTo6aW5pdGlhbGl6ZVZhbHVlc0FuZFdyYXBwZXJzKG1fYW5pbWF0
ZWRQcm9wZXJ0eS5nZXQoKSwgcGFzc05ld0l0ZW0sIGVjKTsKKyAgICAgICAgcmV0dXJuIEJhc2U6
OmluaXRpYWxpemVWYWx1ZXNBbmRXcmFwcGVycyhwYXNzTmV3SXRlbSwgZWMpOwogICAgIH0KIAog
ICAgIFBhc3NMaXN0SXRlbVRlYXJPZmYgZ2V0SXRlbSh1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9u
Q29kZSYgZWMpCkBAIC05MSwxMiArOTAsMTIgQEAgcHVibGljOgogCiAgICAgUGFzc0xpc3RJdGVt
VGVhck9mZiBpbnNlcnRJdGVtQmVmb3JlKFBhc3NMaXN0SXRlbVRlYXJPZmYgcGFzc05ld0l0ZW0s
IHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIHJldHVy
biBCYXNlOjppbnNlcnRJdGVtQmVmb3JlVmFsdWVzQW5kV3JhcHBlcnMobV9hbmltYXRlZFByb3Bl
cnR5LmdldCgpLCBwYXNzTmV3SXRlbSwgaW5kZXgsIGVjKTsKKyAgICAgICAgcmV0dXJuIEJhc2U6
Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXNBbmRXcmFwcGVycyhwYXNzTmV3SXRlbSwgaW5kZXgsIGVj
KTsKICAgICB9CiAKICAgICBQYXNzTGlzdEl0ZW1UZWFyT2ZmIHJlcGxhY2VJdGVtKFBhc3NMaXN0
SXRlbVRlYXJPZmYgcGFzc05ld0l0ZW0sIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNlOjpyZXBsYWNlSXRlbVZhbHVlc0FuZFdyYXBw
ZXJzKG1fYW5pbWF0ZWRQcm9wZXJ0eS5nZXQoKSwgcGFzc05ld0l0ZW0sIGluZGV4LCBlYyk7Cisg
ICAgICAgIHJldHVybiBCYXNlOjpyZXBsYWNlSXRlbVZhbHVlc0FuZFdyYXBwZXJzKHBhc3NOZXdJ
dGVtLCBpbmRleCwgZWMpOwogICAgIH0KIAogICAgIFBhc3NMaXN0SXRlbVRlYXJPZmYgcmVtb3Zl
SXRlbSh1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xMDYsMzAgKzEwNSwz
MCBAQCBwdWJsaWM6CiAKICAgICBQYXNzTGlzdEl0ZW1UZWFyT2ZmIGFwcGVuZEl0ZW0oUGFzc0xp
c3RJdGVtVGVhck9mZiBwYXNzTmV3SXRlbSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAg
ICAgICByZXR1cm4gQmFzZTo6YXBwZW5kSXRlbVZhbHVlc0FuZFdyYXBwZXJzKG1fYW5pbWF0ZWRQ
cm9wZXJ0eS5nZXQoKSwgcGFzc05ld0l0ZW0sIGVjKTsKKyAgICAgICAgcmV0dXJuIEJhc2U6OmFw
cGVuZEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyhwYXNzTmV3SXRlbSwgZWMpOwogICAgIH0KIAogcHJv
dGVjdGVkOgotICAgIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmKiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSkKLSAgICAgICAg
OiBTVkdMaXN0UHJvcGVydHk8UHJvcGVydHlUeXBlPihyb2xlKQorICAgIFNWR0xpc3RQcm9wZXJ0
eVRlYXJPZmYoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKiBhbmltYXRlZFByb3BlcnR5LCBT
VkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJzKQorICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+KHJv
bGUsIHZhbHVlcywgJndyYXBwZXJzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eShhbmlt
YXRlZFByb3BlcnR5KQogICAgIHsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q2hh
bmdlKCkKICAgICB7Ci0gICAgICAgIFByb3BlcnR5VHlwZSYgdmFsdWVzID0gbV9hbmltYXRlZFBy
b3BlcnR5LT52YWx1ZXMoKTsKLSAgICAgICAgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMgPSBt
X2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCk7CisgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7
CisgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAogICAgICAgICAvLyBVcGRhdGUgZXhpc3Rp
bmcgd3JhcHBlcnMsIGFzIHRoZSBpbmRleCBpbiB0aGUgdmFsdWVzIGxpc3QgaGFzIGNoYW5nZWQu
Ci0gICAgICAgIHVuc2lnbmVkIHNpemUgPSB3cmFwcGVycy5zaXplKCk7Ci0gICAgICAgIEFTU0VS
VChzaXplID09IHZhbHVlcy5zaXplKCkpOworICAgICAgICB1bnNpZ25lZCBzaXplID0gbV93cmFw
cGVycy0+c2l6ZSgpOworICAgICAgICBBU1NFUlQoc2l6ZSA9PSBtX3ZhbHVlcy0+c2l6ZSgpKTsK
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAg
ICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4mIGl0ZW0gPSB3cmFwcGVycy5hdChpKTsKKyAgICAg
ICAgICAgIExpc3RJdGVtVGVhck9mZiogaXRlbSA9IG1fd3JhcHBlcnMtPmF0KGkpLmdldCgpOwog
ICAgICAgICAgICAgaWYgKCFpdGVtKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgaXRlbS0+c2V0QW5pbWF0ZWRQcm9wZXJ0eShtX2FuaW1hdGVkUHJvcGVydHkuZ2V0KCkp
OwotICAgICAgICAgICAgaXRlbS0+c2V0VmFsdWUodmFsdWVzLmF0KGkpKTsKKyAgICAgICAgICAg
IGl0ZW0tPnNldFZhbHVlKG1fdmFsdWVzLT5hdChpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBt
X2FuaW1hdGVkUHJvcGVydHktPmNvbW1pdENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJP
ZmYuY3BwCmluZGV4IGE0ZWFmNzMuLjIwMjEzMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9m
Zi5jcHAKQEAgLTMxLDIzICszMSwyMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgU1ZH
UGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6OmNsZWFyKEV4Y2VwdGlvbkNvZGUmIGVjKQogewot
ICAgIFNWR1BhdGhTZWdMaXN0JiB2YWx1ZXMgPSBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygp
OwotICAgIGlmICh2YWx1ZXMuaXNFbXB0eSgpKQorICAgIEFTU0VSVChtX3ZhbHVlcyk7CisgICAg
aWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVuc2lnbmVk
IHNpemUgPSB2YWx1ZXMuc2l6ZSgpOworICAgIHVuc2lnbmVkIHNpemUgPSBtX3ZhbHVlcy0+c2l6
ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAg
TGlzdEl0ZW1UeXBlIGl0ZW0gPSB2YWx1ZXMuYXQoaSk7CisgICAgICAgIExpc3RJdGVtVHlwZSBp
dGVtID0gbV92YWx1ZXMtPmF0KGkpOwogICAgICAgICBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnV2l0
aENvbnRleHQqPihpdGVtLmdldCgpKS0+c2V0Q29udGV4dEFuZFJvbGUoMCwgUGF0aFNlZ1VuZGVm
aW5lZFJvbGUpOwogICAgIH0KIAotICAgIFNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmOjpC
YXNlOjpjbGVhclZhbHVlcyh2YWx1ZXMsIGVjKTsKKyAgICBTVkdQYXRoU2VnTGlzdFByb3BlcnR5
VGVhck9mZjo6QmFzZTo6Y2xlYXJWYWx1ZXMoZWMpOwogfQogCiBTVkdQYXRoU2VnTGlzdFByb3Bl
cnR5VGVhck9mZjo6UGFzc0xpc3RJdGVtVHlwZSBTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9m
Zjo6Z2V0SXRlbSh1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgU1ZH
UGF0aFNlZ0xpc3QmIHZhbHVlcyA9IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7Ci0gICAg
TGlzdEl0ZW1UeXBlIHJldHVybmVkSXRlbSA9IEJhc2U6OmdldEl0ZW1WYWx1ZXModmFsdWVzLCBp
bmRleCwgZWMpOworICAgIExpc3RJdGVtVHlwZSByZXR1cm5lZEl0ZW0gPSBCYXNlOjpnZXRJdGVt
VmFsdWVzKGluZGV4LCBlYyk7CiAgICAgaWYgKHJldHVybmVkSXRlbSkgewogICAgICAgICBBU1NF
UlQoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ1dpdGhDb250ZXh0Kj4ocmV0dXJuZWRJdGVtLmdldCgp
KS0+Y29udGV4dEVsZW1lbnQoKSA9PSBjb250ZXh0RWxlbWVudCgpKTsKICAgICAgICAgQVNTRVJU
KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdXaXRoQ29udGV4dCo+KHJldHVybmVkSXRlbS5nZXQoKSkt
PnJvbGUoKSA9PSBtX3BhdGhTZWdSb2xlKTsKQEAgLTU3LDggKzU2LDcgQEAgU1ZHUGF0aFNlZ0xp
c3RQcm9wZXJ0eVRlYXJPZmY6OlBhc3NMaXN0SXRlbVR5cGUgU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0
eVRlYXJPZmY6OmcKIAogU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlBhc3NMaXN0SXRl
bVR5cGUgU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6OnJlbW92ZUl0ZW0odW5zaWduZWQg
aW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFNWR1BhdGhTZWdMaXN0JiB2YWx1ZXMg
PSBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpOwotICAgIFNWR1BhdGhTZWdMaXN0UHJvcGVy
dHlUZWFyT2ZmOjpMaXN0SXRlbVR5cGUgcmVtb3ZlZEl0ZW0gPSBTVkdQYXRoU2VnTGlzdFByb3Bl
cnR5VGVhck9mZjo6QmFzZTo6cmVtb3ZlSXRlbVZhbHVlcyh2YWx1ZXMsIGluZGV4LCBlYyk7Cisg
ICAgU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RJdGVtVHlwZSByZW1vdmVkSXRl
bSA9IFNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmOjpCYXNlOjpyZW1vdmVJdGVtVmFsdWVz
KGluZGV4LCBlYyk7CiAgICAgaWYgKHJlbW92ZWRJdGVtKQogICAgICAgICBzdGF0aWNfY2FzdDxT
VkdQYXRoU2VnV2l0aENvbnRleHQqPihyZW1vdmVkSXRlbS5nZXQoKSktPnNldENvbnRleHRBbmRS
b2xlKDAsIFBhdGhTZWdVbmRlZmluZWRSb2xlKTsKICAgICByZXR1cm4gcmVtb3ZlZEl0ZW0ucmVs
ZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUGF0
aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKaW5kZXggOTRhY2RhMS4uM2ZjY2ViZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUGF0aFNlZ0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQ
YXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oCkBAIC0zNSwyMyArMzUsMjIgQEAgcHVibGljOgog
ICAgIHR5cGVkZWYgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aFNlZ0xpc3Q+OjpMaXN0SXRlbVR5
cGUgTGlzdEl0ZW1UeXBlOwogICAgIHR5cGVkZWYgUGFzc1JlZlB0cjxTVkdQYXRoU2VnPiBQYXNz
TGlzdEl0ZW1UeXBlOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGF0aFNlZ0xpc3RQcm9w
ZXJ0eVRlYXJPZmY+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYqIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9s
ZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4g
Y3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlLCBTVkdQYXRoU2Vn
TGlzdCYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7CiAgICAgICAg
IEFTU0VSVChhbmltYXRlZFByb3BlcnR5KTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
VkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZihhbmltYXRlZFByb3BlcnR5LCByb2xlLCBwYXRo
U2VnUm9sZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1BhdGhTZWdMaXN0UHJv
cGVydHlUZWFyT2ZmKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHBhdGhTZWdSb2xlLCB2YWx1ZXMs
IHdyYXBwZXJzKSk7CiAgICAgfQogCiAgICAgaW50IHJlbW92ZUl0ZW1Gcm9tTGlzdChjb25zdCBM
aXN0SXRlbVR5cGUmIHJlbW92ZUl0ZW0sIGJvb2wgc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykK
ICAgICB7Ci0gICAgICAgIFNWR1BhdGhTZWdMaXN0JiB2YWx1ZXMgPSBtX2FuaW1hdGVkUHJvcGVy
dHktPnZhbHVlcygpOwotCi0gICAgICAgIHVuc2lnbmVkIHNpemUgPSB2YWx1ZXMuc2l6ZSgpOwor
ICAgICAgICBBU1NFUlQobV92YWx1ZXMpOworICAgICAgICB1bnNpZ25lZCBzaXplID0gbV92YWx1
ZXMtPnNpemUoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkg
ewotICAgICAgICAgICAgTGlzdEl0ZW1UeXBlJiBpdGVtID0gdmFsdWVzLmF0KGkpOworICAgICAg
ICAgICAgTGlzdEl0ZW1UeXBlJiBpdGVtID0gbV92YWx1ZXMtPmF0KGkpOwogICAgICAgICAgICAg
aWYgKGl0ZW0gIT0gcmVtb3ZlSXRlbSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICAgICAgdmFsdWVzLnJlbW92ZShpKTsKKyAgICAgICAgICAgIG1fdmFsdWVzLT5yZW1vdmUo
aSk7CiAKICAgICAgICAgICAgIGlmIChzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAgICAg
ICAgICAgICAgIGNvbW1pdENoYW5nZSgpOwpAQCAtNjUsMTIgKzY0LDYgQEAgcHVibGljOgogICAg
IC8vIFNWR0xpc3QgQVBJCiAgICAgdm9pZCBjbGVhcihFeGNlcHRpb25Db2RlJik7CiAKLSAgICB1
bnNpZ25lZCBudW1iZXJPZkl0ZW1zKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIFNWR1BhdGhTZWdM
aXN0JiB2YWx1ZXMgPSBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpOwotICAgICAgICByZXR1
cm4gQmFzZTo6bnVtYmVyT2ZJdGVtc1ZhbHVlcyh2YWx1ZXMpOwotICAgIH0KLQogICAgIFBhc3NM
aXN0SXRlbVR5cGUgaW5pdGlhbGl6ZShQYXNzTGlzdEl0ZW1UeXBlIHBhc3NOZXdJdGVtLCBFeGNl
cHRpb25Db2RlJiBlYykKICAgICB7CiAgICAgICAgIC8vIE5vdCBzcGVjaWZpZWQsIGJ1dCBGRi9P
cGVyYSBkbyBpdCB0aGlzIHdheSwgYW5kIGl0J3MganVzdCBzYW5lLgpAQCAtODAsOCArNzMsNyBA
QCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAgICAgICBMaXN0SXRlbVR5cGUgbmV3SXRlbSA9IHBh
c3NOZXdJdGVtOwotICAgICAgICBTVkdQYXRoU2VnTGlzdCYgdmFsdWVzID0gbV9hbmltYXRlZFBy
b3BlcnR5LT52YWx1ZXMoKTsKLSAgICAgICAgcmV0dXJuIEJhc2U6OmluaXRpYWxpemVWYWx1ZXMo
dmFsdWVzLCBuZXdJdGVtLCBlYyk7CisgICAgICAgIHJldHVybiBCYXNlOjppbml0aWFsaXplVmFs
dWVzKG5ld0l0ZW0sIGVjKTsKICAgICB9CiAKICAgICBQYXNzTGlzdEl0ZW1UeXBlIGdldEl0ZW0o
dW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTk1LDggKzg3LDcgQEAgcHVibGlj
OgogICAgICAgICB9CiAKICAgICAgICAgTGlzdEl0ZW1UeXBlIG5ld0l0ZW0gPSBwYXNzTmV3SXRl
bTsKLSAgICAgICAgU1ZHUGF0aFNlZ0xpc3QmIHZhbHVlcyA9IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+
dmFsdWVzKCk7Ci0gICAgICAgIHJldHVybiBCYXNlOjppbnNlcnRJdGVtQmVmb3JlVmFsdWVzKHZh
bHVlcywgbmV3SXRlbSwgaW5kZXgsIGVjKTsKKyAgICAgICAgcmV0dXJuIEJhc2U6Omluc2VydEl0
ZW1CZWZvcmVWYWx1ZXMobmV3SXRlbSwgaW5kZXgsIGVjKTsKICAgICB9CiAKICAgICBQYXNzTGlz
dEl0ZW1UeXBlIHJlcGxhY2VJdGVtKFBhc3NMaXN0SXRlbVR5cGUgcGFzc05ld0l0ZW0sIHVuc2ln
bmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTEwOCw4ICs5OSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgfQogCiAgICAgICAgIExpc3RJdGVtVHlwZSBuZXdJdGVtID0gcGFzc05ld0l0ZW07
Ci0gICAgICAgIFNWR1BhdGhTZWdMaXN0JiB2YWx1ZXMgPSBtX2FuaW1hdGVkUHJvcGVydHktPnZh
bHVlcygpOwotICAgICAgICByZXR1cm4gQmFzZTo6cmVwbGFjZUl0ZW1WYWx1ZXModmFsdWVzLCBu
ZXdJdGVtLCBpbmRleCwgZWMpOworICAgICAgICByZXR1cm4gQmFzZTo6cmVwbGFjZUl0ZW1WYWx1
ZXMobmV3SXRlbSwgaW5kZXgsIGVjKTsKICAgICB9CiAKICAgICBQYXNzTGlzdEl0ZW1UeXBlIHJl
bW92ZUl0ZW0odW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTEyMywxMyArMTEz
LDEyIEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgICAgIExpc3RJdGVtVHlwZSBuZXdJdGVt
ID0gcGFzc05ld0l0ZW07Ci0gICAgICAgIFNWR1BhdGhTZWdMaXN0JiB2YWx1ZXMgPSBtX2FuaW1h
dGVkUHJvcGVydHktPnZhbHVlcygpOwotICAgICAgICByZXR1cm4gQmFzZTo6YXBwZW5kSXRlbVZh
bHVlcyh2YWx1ZXMsIG5ld0l0ZW0sIGVjKTsKKyAgICAgICAgcmV0dXJuIEJhc2U6OmFwcGVuZEl0
ZW1WYWx1ZXMobmV3SXRlbSwgZWMpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdQYXRoU2Vn
TGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYqIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9s
ZSkKLSAgICAgICAgOiBTVkdMaXN0UHJvcGVydHk8U1ZHUGF0aFNlZ0xpc3Q+KHJvbGUpCisgICAg
U1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
KiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ1JvbGUg
cGF0aFNlZ1JvbGUsIFNWR1BhdGhTZWdMaXN0JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKQorICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eTxTVkdQYXRoU2VnTGlzdD4ocm9sZSwg
dmFsdWVzLCAmd3JhcHBlcnMpCiAgICAgICAgICwgbV9hbmltYXRlZFByb3BlcnR5KGFuaW1hdGVk
UHJvcGVydHkpCiAgICAgICAgICwgbV9wYXRoU2VnUm9sZShwYXRoU2VnUm9sZSkKICAgICB7CkBA
IC0xMzksOCArMTI4LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBjb21taXRDaGFu
Z2UoKQogICAgIHsKLSAgICAgICAgU1ZHUGF0aFNlZ0xpc3QmIHZhbHVlcyA9IG1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+dmFsdWVzKCk7Ci0gICAgICAgIHZhbHVlcy5jb21taXRDaGFuZ2UobV9hbmltYXRl
ZFByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpKTsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsK
KyAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZShtX2FuaW1hdGVkUHJvcGVydHktPmNvbnRl
eHRFbGVtZW50KCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzSW5jb21pbmdM
aXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4
VG9Nb2RpZnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
U3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oCmluZGV4IGE2ZjBmMjguLjg2MzUzNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdT
dGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgKQEAgLTMzLDYgKzMzLDggQEAgcHVibGljOgogICAg
IHR5cGVkZWYgdHlwZW5hbWUgU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6TGlzdEl0
ZW1UeXBlIExpc3RJdGVtVHlwZTsKICAgICB0eXBlZGVmIFNWR1Byb3BlcnR5VGVhck9mZjxMaXN0
SXRlbVR5cGU+IExpc3RJdGVtVGVhck9mZjsKIAorICAgIHVzaW5nIEJhc2U6Om1fdmFsdWVzOwor
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZjxQcm9w
ZXJ0eVR5cGU+ID4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5
cGUmIHZhbHVlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7CkBAIC00
Miw1NSArNDQsNTAgQEAgcHVibGljOgogICAgIC8vIFNWR0xpc3QgQVBJCiAgICAgdm9pZCBjbGVh
cihFeGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIEJhc2U6OmNsZWFyVmFsdWVzKG1f
dmFsdWVzLCBlYyk7Ci0gICAgfQotCi0gICAgdW5zaWduZWQgbnVtYmVyT2ZJdGVtcygpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gQmFzZTo6bnVtYmVyT2ZJdGVtc1ZhbHVlcyhtX3ZhbHVl
cyk7CisgICAgICAgIEJhc2U6OmNsZWFyVmFsdWVzKGVjKTsKICAgICB9CiAKICAgICBMaXN0SXRl
bVR5cGUgaW5pdGlhbGl6ZShjb25zdCBMaXN0SXRlbVR5cGUmIG5ld0l0ZW0sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2U6OmluaXRpYWxpemVWYWx1ZXMobV92
YWx1ZXMsIG5ld0l0ZW0sIGVjKTsKKyAgICAgICAgcmV0dXJuIEJhc2U6OmluaXRpYWxpemVWYWx1
ZXMobmV3SXRlbSwgZWMpOwogICAgIH0KIAogICAgIExpc3RJdGVtVHlwZSBnZXRJdGVtKHVuc2ln
bmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNl
OjpnZXRJdGVtVmFsdWVzKG1fdmFsdWVzLCBpbmRleCwgZWMpOworICAgICAgICByZXR1cm4gQmFz
ZTo6Z2V0SXRlbVZhbHVlcyhpbmRleCwgZWMpOwogICAgIH0KIAogICAgIExpc3RJdGVtVHlwZSBp
bnNlcnRJdGVtQmVmb3JlKGNvbnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgdW5zaWduZWQgaW5k
ZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2U6Omluc2Vy
dEl0ZW1CZWZvcmVWYWx1ZXMobV92YWx1ZXMsIG5ld0l0ZW0sIGluZGV4LCBlYyk7CisgICAgICAg
IHJldHVybiBCYXNlOjppbnNlcnRJdGVtQmVmb3JlVmFsdWVzKG5ld0l0ZW0sIGluZGV4LCBlYyk7
CiAgICAgfQogCiAgICAgTGlzdEl0ZW1UeXBlIHJlcGxhY2VJdGVtKGNvbnN0IExpc3RJdGVtVHlw
ZSYgbmV3SXRlbSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIEJhc2U6OnJlcGxhY2VJdGVtVmFsdWVzKG1fdmFsdWVzLCBuZXdJdGVtLCBp
bmRleCwgZWMpOworICAgICAgICByZXR1cm4gQmFzZTo6cmVwbGFjZUl0ZW1WYWx1ZXMobmV3SXRl
bSwgaW5kZXgsIGVjKTsKICAgICB9CiAKICAgICBMaXN0SXRlbVR5cGUgcmVtb3ZlSXRlbSh1bnNp
Z25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICByZXR1cm4gQmFz
ZTo6cmVtb3ZlSXRlbVZhbHVlcyhtX3ZhbHVlcywgaW5kZXgsIGVjKTsKKyAgICAgICAgcmV0dXJu
IEJhc2U6OnJlbW92ZUl0ZW1WYWx1ZXMoaW5kZXgsIGVjKTsKICAgICB9CiAKICAgICBMaXN0SXRl
bVR5cGUgYXBwZW5kSXRlbShjb25zdCBMaXN0SXRlbVR5cGUmIG5ld0l0ZW0sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2U6OmFwcGVuZEl0ZW1WYWx1ZXMobV92
YWx1ZXMsIG5ld0l0ZW0sIGVjKTsKKyAgICAgICAgcmV0dXJuIEJhc2U6OmFwcGVuZEl0ZW1WYWx1
ZXMobmV3SXRlbSwgZWMpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBTVkdTdGF0aWNMaXN0UHJv
cGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZh
bHVlcykKLSAgICAgICAgOiBTVkdMaXN0UHJvcGVydHk8UHJvcGVydHlUeXBlPihVbmRlZmluZWRS
b2xlKQorICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+KFVuZGVmaW5lZFJv
bGUsIHZhbHVlcywgMCkKICAgICAgICAgLCBtX2NvbnRleHRFbGVtZW50KGNvbnRleHRFbGVtZW50
KQotICAgICAgICAsIG1fdmFsdWVzKHZhbHVlcykKICAgICB7CiAgICAgfQogCiAgICAgdmlydHVh
bCB2b2lkIGNvbW1pdENoYW5nZSgpCiAgICAgewotICAgICAgICBtX3ZhbHVlcy5jb21taXRDaGFu
Z2UobV9jb250ZXh0RWxlbWVudC5nZXQoKSk7CisgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Cisg
ICAgICAgIG1fdmFsdWVzLT5jb21taXRDaGFuZ2UobV9jb250ZXh0RWxlbWVudC5nZXQoKSk7CiAg
ICAgfQogCiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUoY29u
c3QgTGlzdEl0ZW1UeXBlJiwgdW5zaWduZWQqKQpAQCAtMTA1LDcgKzEwMiw2IEBAIHByaXZhdGU6
CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4dEVsZW1lbnQ7Ci0g
ICAgUHJvcGVydHlUeXBlJiBtX3ZhbHVlczsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1RyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1RyYW5zZm9ybUxpc3RQcm9wZXJ0eVRl
YXJPZmYuaAppbmRleCBlNDk2YzgxLi43YWMxMjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVh
ck9mZi5oCkBAIC0zMiw0OSArMzIsNDggQEAgcHVibGljOgogICAgIHR5cGVkZWYgU1ZHQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3Q+IEFuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjsKICAgICB0eXBlZGVmIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxT
VkdUcmFuc2Zvcm1MaXN0Pjo6TGlzdFdyYXBwZXJDYWNoZSBMaXN0V3JhcHBlckNhY2hlOwogCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1M
aXN0PiA+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYqIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0xpc3RQ
cm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdD4gPiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmKiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZH
VHJhbnNmb3JtTGlzdCYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7
CiAgICAgICAgIEFTU0VSVChhbmltYXRlZFByb3BlcnR5KTsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTVkdUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmKGFuaW1hdGVkUHJvcGVydHks
IHJvbGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdUcmFuc2Zvcm1MaXN0UHJv
cGVydHlUZWFyT2ZmKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsK
ICAgICB9CiAKICAgICBQYXNzUmVmUHRyPFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm0+
ID4gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0
cml4PiogbWF0cml4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7CisgICAgICAgIEFTU0VSVCht
X3ZhbHVlcyk7CiAgICAgICAgIGlmICghbWF0cml4KSB7CiAgICAgICAgICAgICBlYyA9IFRZUEVf
TUlTTUFUQ0hfRVJSOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KLSAgICAgICAg
U1ZHVHJhbnNmb3JtTGlzdCYgdmFsdWVzID0gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKTsK
LSAgICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm0+OjpjcmVhdGUo
dmFsdWVzLmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgobWF0cml4LT5wcm9wZXJ0eVJlZmVy
ZW5jZSgpKSk7CisgICAgICAgIHJldHVybiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3Jt
Pjo6Y3JlYXRlKG1fdmFsdWVzLT5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG1hdHJpeC0+
cHJvcGVydHlSZWZlcmVuY2UoKSkpOwogICAgIH0KIAogICAgIFBhc3NSZWZQdHI8U1ZHUHJvcGVy
dHlUZWFyT2ZmPFNWR1RyYW5zZm9ybT4gPiBjb25zb2xpZGF0ZShFeGNlcHRpb25Db2RlJiBlYykK
ICAgICB7CisgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CisgICAgICAgIEFTU0VSVChtX3dyYXBw
ZXJzKTsKICAgICAgICAgaWYgKCFjYW5BbHRlckxpc3QoZWMpKQogICAgICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICAgICAgU1ZHVHJhbnNmb3JtTGlzdCYgdmFsdWVzID0gbV9hbmltYXRlZFByb3Bl
cnR5LT52YWx1ZXMoKTsKLSAgICAgICAgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMgPSBtX2Fu
aW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCk7Ci0gICAgICAgIEFTU0VSVCh2YWx1ZXMuc2l6ZSgp
ID09IHdyYXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09
IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgdGhlIGxpc3Qgd2Fz
IGVtcHR5LCB0aGVuIGEgdmFsdWUgb2YgbnVsbCBpcyByZXR1cm5lZC4KLSAgICAgICAgaWYgKHZh
bHVlcy5pc0VtcHR5KCkpCisgICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKQogICAgICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5kZXRhY2hMaXN0
V3JhcHBlcnMoMCk7Ci0gICAgICAgIFJlZlB0cjxTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNm
b3JtPiA+IHdyYXBwZXIgPSBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtPjo6Y3JlYXRl
KHZhbHVlcy5jb25zb2xpZGF0ZSgpKTsKLSAgICAgICAgd3JhcHBlcnMuYXBwZW5kKHdyYXBwZXIp
OworICAgICAgICBkZXRhY2hMaXN0V3JhcHBlcnMoMCk7CisgICAgICAgIFJlZlB0cjxTVkdQcm9w
ZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtPiA+IHdyYXBwZXIgPSBTVkdQcm9wZXJ0eVRlYXJPZmY8
U1ZHVHJhbnNmb3JtPjo6Y3JlYXRlKG1fdmFsdWVzLT5jb25zb2xpZGF0ZSgpKTsKKyAgICAgICAg
bV93cmFwcGVycy0+YXBwZW5kKHdyYXBwZXIpOwogCi0gICAgICAgIEFTU0VSVCh2YWx1ZXMuc2l6
ZSgpID09IHdyYXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgp
ID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAgICAgICAgIHJldHVybiB3cmFwcGVyLnJlbGVhc2Uo
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9m
ZihBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYqIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlKQotICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNm
b3JtTGlzdD4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSkKKyAgICBTVkdUcmFuc2Zvcm1MaXN0UHJv
cGVydHlUZWFyT2ZmKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiogYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1RyYW5zZm9ybUxpc3QmIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxT
VkdUcmFuc2Zvcm1MaXN0PihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJz
KQogICAgIHsKICAgICB9Ci0KIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131583</attachid>
            <date>2012-03-13 03:29:09 -0700</date>
            <delta_ts>2012-03-14 02:36:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80750-20120313112906.patch</filename>
            <type>text/plain</type>
            <size>96367</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNmMTAyNWYxZDQ2NGE4
OWU2NjU3NDY4ZjJmYjZjZTZiZjIyNTc4ZS4uMjRjMTA0NzA5OWY1MmU2NWViMTZiOGY5NmZkNDNk
Nzg5Y2ZjMmQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAorMjAxMi0wMy0xMyAgTmlr
b2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KKworICAgICAgICBFbmFibGUg
YW5pbVZhbCBzdXBwb3J0IGZvciBTVkdMZW5ndGhMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDc1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhbmltVmFsIHN1cHBvcnQgZm9yIGdl
bmVyaWMgU1ZHTGlzdCB0eXBlcy4gVGhpcyBhbGlnbnMgU1ZHTGlzdFByb3BlcnR5IHdpdGggU1ZH
UHJvcGVydHkKKyAgICAgICAgaW4gdGVybXMgb2YgYW5pbVZhbC9iYXNlVmFsIHN1cHBvcnQuIFVz
ZSB0aGlzIHRvIHR1cm4gb24gYW5pbVZhbCBzdXBwb3J0IGZvciBTVkdMZW5ndGhMaXN0LgorCisg
ICAgICAgIEV4dGVuZCBhbGwgZXhpc3RpbmcgU1ZHTGVuZ3RoTGlzdCB0ZXN0cyB0byBjb3JyZWN0
bHkgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGJhc2VWYWwvYW5pbVZhbC4KKworICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxl
bWVudDo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50OjpyZXNldFRvQmFzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjphcHBseVJlc3VsdHNUb1RhcmdldCk6
CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbUNvcHkpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTVkdBbmltYXRlZExlbmd0aExpc3RBbmlt
YXRvcik6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OnN1cHBvcnRzQW5pbVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OnNldFZhcmlhbnRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0Fu
aW1hdGVkVHlwZS5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmFwcGx5QW5pbWF0ZWRWYWx1ZSk6
CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
Lmg6CisgICAgICAgIChTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpiYXNlVmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbVZhbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OnJlbW92ZUl0
ZW1Gcm9tTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY6OmRldGFjaExpc3RXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3VycmVudEJhc2VWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmFuaW1h
dGlvblN0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmOjphbmltYXRpb25FbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmY6OnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmFuaW1hdGlvblZhbHVl
V2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY6OmFuaW1hdGlvblZhbHVlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmOjpiYXNlVmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6OmFu
aW1WYWwpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6OmlzQW5pbWF0aW5nKToKKyAg
ICAgICAgKFNWR0FuaW1hdGVkUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRQcm9wZXJ0eTo6YW5pbWF0aW9uVmFsdWVXaWxsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkUHJvcGVydHk6OmFuaW1hdGlvblZhbHVlRGlkQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6On5TVkdBbmltYXRlZFByb3BlcnR5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6OlNWR0FuaW1hdGVkUHJvcGVydHkp
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmg6
CisgICAgICAgIChTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjo6YmFzZVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjo6YW5pbVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY6OmFuaW1hdGlvblN0YXJ0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY6OmFuaW1h
dGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2Zm
OjphbmltYXRpb25WYWx1ZVdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRQcm9wZXJ0eVRlYXJPZmY6OmFuaW1hdGlvblZhbHVlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmOjpTVkdBbmltYXRlZFByb3BlcnR5VGVh
ck9mZik6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3RQcm9wZXJ0eVRlYXJPZmY6OmJhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmOjphbmltVmFsKToKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xp
c3RQcm9wZXJ0eTo6ZGV0YWNoTGlzdFdyYXBwZXJzKToKKyAgICAgICAgKFNWR0xpc3RQcm9wZXJ0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnNldFZhbHVlc0FuZFdyYXBw
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjbGVhclZhbHVlc0FuZFdyYXBwZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6bnVtYmVyT2ZJdGVtcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmluaXRpYWxpemVWYWx1ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojppbml0aWFsaXplVmFsdWVzQW5kV3JhcHBl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5HZXRJdGVtKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Z2V0SXRlbVZhbHVlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmdldEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjppbnNlcnRJdGVtQmVmb3JlVmFs
dWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5S
ZXBsYWNlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnJlcGxhY2VJ
dGVtVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVwbGFjZUl0
ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6
OmNhblJlbW92ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZW1v
dmVJdGVtVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVtb3Zl
SXRlbVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0
eTo6YXBwZW5kSXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6
OmFwcGVuZEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHk6OnZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6Ondy
YXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6U1ZHTGlzdFByb3Bl
cnR5KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6
CisgICAgICAgIChTVkdMaXN0UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmOjpyZW1vdmVJdGVtRnJvbUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFByb3BlcnR5VGVhck9mZjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmOjppbnNlcnRJdGVtQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xpc3RQcm9wZXJ0eVRlYXJPZmY6OnJlcGxhY2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xpc3RQcm9wZXJ0eVRlYXJPZmY6OmFwcGVuZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5VGVhck9mZjo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZik6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmOjpjb21taXRDaGFuZ2UpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmOjpjbGVhcik6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZjo6Z2V0SXRlbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZjo6cmVtb3ZlSXRl
bSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJP
ZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6
OnJlbW92ZUl0ZW1Gcm9tTGlzdCk6CisgICAgICAgIChTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVh
ck9mZik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZjo6
aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVh
ck9mZjo6aW5zZXJ0SXRlbUJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlz
dFByb3BlcnR5VGVhck9mZjo6cmVwbGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6OmFwcGVuZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFy
T2ZmKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmOjpj
b21taXRDaGFuZ2UpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5SW5mby5o
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYu
aDoKKyAgICAgICAgKFNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZjo6Y2xlYXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZjo6aW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmOjpnZXRJdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmY6Omluc2VydEl0ZW1CZWZv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZjo6cmVw
bGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9m
Zjo6cmVtb3ZlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdGF0aWNMaXN0UHJvcGVydHlU
ZWFyT2ZmOjphcHBlbmRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0YXRpY0xpc3RQcm9w
ZXJ0eVRlYXJPZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZjo6Y29tbWl0Q2hhbmdlKToKKyAgICAg
ICAgKiBzdmcvcHJvcGVydGllcy9TVkdUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZjo6Y3Jl
YXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zv
cm1MaXN0UHJvcGVydHlUZWFyT2ZmOjpjb25zb2xpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmOjpTVkdUcmFuc2Zvcm1MaXN0UHJvcGVydHlU
ZWFyT2ZmKToKKwogMjAxMi0wMy0xMiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDaGFuZ2VzIHRvIHRoZSBsaXN0IG9mIHNj
cmlwdHMgZm9yIGZyb250LWVuZCBjb21waWxhdGlvbiBzaG91bGQgbm90IHJlcXVpcmUgdXBkYXRl
IG9mIG51bWJlciBvZiBzY3JpcHRzIGluIG1vZHVsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZUVsZW1lbnQuY3BwCmluZGV4IDJmYjRhZWJjOTI4NGQxYzk5OGUyOGFiOTg4OTdjYTBhZjQx
MWMxMWUuLmY0ODNjYjY0NjhjNDRjZjgyMWNiMzBlODg0YmQyY2E5YjM3Y2RlNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcApAQCAtMTg2LDYgKzE4NiwxNCBAQCB2
b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNl
bnRhZ2UsIHVuc2lnbmVkIHJlcGVhdAogCiAgICAgLy8gVGFyZ2V0IGVsZW1lbnQgbWlnaHQgaGF2
ZSBjaGFuZ2VkLgogICAgIG1fYW5pbWF0b3ItPnNldENvbnRleHRFbGVtZW50KHRhcmdldEVsZW1l
bnQpOworCisgICAgLy8gQmUgc3VyZSB0byBkZXRhY2ggbGlzdCB3cmFwcGVycyBiZWZvcmUgd2Ug
bW9kZml5IHRoZWlyIHVuZGVybHlpbmcgdmFsdWUuIElmIHdlJ2QgZG8KKyAgICAvLyBpZiBhZnRl
ciBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKCkgcmFuIHRoZSBjYWNoZWQgcG9pbnRlcnMgaW4gdGhl
IGxpc3QgcHJvcGVyeSB0ZWFyCisgICAgLy8gb2ZmcyB3b3VsZCBwb2ludCBub3doZXJlLCBhbmQg
d2UgY291bGRuJ3QgY3JlYXRlIGNvcGllcyBvZiB0aG9zZSB2YWx1ZXMgYW55bW9yZSwKKyAgICAv
LyB3aGlsZSBkZXRhY2hpbmcuIFRoaXMgaXMgY292ZXJlZCBieSBhc3NlcnRpb25zLCBtb3Zpbmcg
dGhpcyBkb3duIHdvdWxkIGZpcmUgdGhlbS4KKyAgICBpZiAoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSog
YW5pbWF0ZWRQcm9wZXJ0eSA9IGFuaW1hdGVkUHJvcGVydHlGb3JUeXBlKG1fYW5pbWF0b3ItPnR5
cGUoKSkpCisgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1hdGlvblZhbHVlV2lsbENoYW5n
ZSgpOworCiAgICAgbV9hbmltYXRvci0+Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShwZXJjZW50YWdl
LCByZXBlYXQsIG1fZnJvbVR5cGUsIG1fdG9UeXBlLCByZXN1bHRBbmltYXRpb25FbGVtZW50LT5t
X2FuaW1hdGVkVHlwZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCmluZGV4IDdhM2UyOGViMzIwMjU3NzRhYWM0NTIwOGE4M2M5
ZDI3YmJmZDVmOTUuLmMxYmIxOTllMjNlOWI2ZTJlMzc1Y2NkZGRkODc5Y2M1YzdjMTcxYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNw
cApAQCAtMTMzLDYgKzEzMyw5IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdD4gYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0Rm9yKFNWR0VsZW1lbnQqCiAgICAgCiB2b2lk
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpyZXNldFRvQmFzZVZhbHVlKGNvbnN0IFN0cmlu
ZyYgYmFzZVZhbHVlKQogeworICAgIC8vIEZJWE1FOiBPbmNlIHdlIGFkZGVkIFNWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdEFuaW1hdG9yLCB0aGlzIHdob2xlIGNsYXNzIGlzIHVubmNlc3NhcnkuCisg
ICAgLy8gU2VlIGJ1ZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA3
NTguIE9uY2UgdGhpcyBpcyBmaXhlZCBhbmltVmFsIHN1cHBvcnQKKyAgICAvLyBmb3IgPGFuaW1h
dGVUcmFuc2Zvcm0+IGlzIGZpbmlzaGVkLCBhbmQgdGhpcyBjbGFzcyBpcyBhbG1vc3QgZW1wdHku
CiAgICAgU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCA9IHRoaXMtPnRhcmdldEVsZW1lbnQoKTsK
ICAgICBpZiAoIXRhcmdldEVsZW1lbnQgfHwgZGV0ZXJtaW5lQW5pbWF0ZWRQcm9wZXJ0eVR5cGUo
dGFyZ2V0RWxlbWVudCkgPT0gQW5pbWF0ZWRVbmtub3duKQogICAgICAgICByZXR1cm47CkBAIC0x
NDksOCArMTUyLDkgQEAgdm9pZCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6cmVzZXRUb0Jh
c2VWYWx1ZShjb25zdCBTdHJpbmcmIGJhc2VWYWx1ZSkKICAgICAKICAgICBpZiAoYmFzZVZhbHVl
LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoUmVmUHRyPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlz
dD4gbGlzdCA9IGFuaW1hdGVkVHJhbnNmb3JtTGlzdEZvcih0YXJnZXRFbGVtZW50KSkgewotICAg
ICAgICAgICAgbGlzdC0+ZGV0YWNoTGlzdFdyYXBwZXJzKDApOwotICAgICAgICAgICAgbGlzdC0+
dmFsdWVzKCkuY2xlYXIoKTsKKyAgICAgICAgICAgIFNWR0xpc3RQcm9wZXJ0eTxTVkdUcmFuc2Zv
cm1MaXN0PiogYmFzZVZhbCA9IHN0YXRpY19jYXN0PFNWR0xpc3RQcm9wZXJ0eTxTVkdUcmFuc2Zv
cm1MaXN0Pio+KGxpc3QtPmJhc2VWYWwoKSk7CisgICAgICAgICAgICBiYXNlVmFsLT5kZXRhY2hM
aXN0V3JhcHBlcnMoMCk7CisgICAgICAgICAgICBiYXNlVmFsLT52YWx1ZXMoKS5jbGVhcigpOwog
ICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIHRhcmdldEVsZW1lbnQtPnNldEF0dHJpYnV0
ZShTVkdOYW1lczo6dHJhbnNmb3JtQXR0ciwgYmFzZVZhbHVlKTsKQEAgLTE1OCwyNCArMTYyLDI5
IEBAIHZvaWQgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFsdWUoY29u
c3QgU3RyaW5nJiBiYXNlVmFsdWUpCiAKIHZvaWQgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6
OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0
LCBTVkdTTUlMRWxlbWVudCopCiB7CisgICAgLy8gRklYTUU6IE9uY2Ugd2UgYWRkZWQgU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3IsIHRoaXMgd2hvbGUgY2xhc3MgaXMgdW5uY2Vzc2Fy
eS4KKyAgICAvLyBTZWUgYnVnIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MDc1OC4gT25jZSB0aGlzIGlzIGZpeGVkIGFuaW1WYWwgc3VwcG9ydAorICAgIC8vIGZvciA8
YW5pbWF0ZVRyYW5zZm9ybT4gaXMgZmluaXNoZWQsIGFuZCB0aGlzIGNsYXNzIGlzIGFsbW9zdCBl
bXB0eS4KICAgICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxlbWVu
dCgpOwogICAgIGlmICghdGFyZ2V0RWxlbWVudCB8fCBkZXRlcm1pbmVBbmltYXRlZFByb3BlcnR5
VHlwZSh0YXJnZXRFbGVtZW50KSA9PSBBbmltYXRlZFVua25vd24pCiAgICAgICAgIHJldHVybjsK
ICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0PiBhbmltYXRlZExpc3QgPSBhbmlt
YXRlZFRyYW5zZm9ybUxpc3RGb3IodGFyZ2V0RWxlbWVudCk7CiAgICAgQVNTRVJUKGFuaW1hdGVk
TGlzdCk7Ci0gICAgCisgICAgU1ZHTGlzdFByb3BlcnR5PFNWR1RyYW5zZm9ybUxpc3Q+KiBiYXNl
VmFsID0gc3RhdGljX2Nhc3Q8U1ZHTGlzdFByb3BlcnR5PFNWR1RyYW5zZm9ybUxpc3Q+Kj4oYW5p
bWF0ZWRMaXN0LT5iYXNlVmFsKCkpOworICAgIEFTU0VSVChiYXNlVmFsKTsKKwogICAgIGlmIChj
YWxjTW9kZSgpID09IENhbGNNb2RlRGlzY3JldGUpCiAgICAgICAgIHBlcmNlbnRhZ2UgPSBwZXJj
ZW50YWdlIDwgMC41ID8gMCA6IDE7CiAKICAgICBpZiAoIWlzQWRkaXRpdmUoKSkgewotICAgICAg
ICBhbmltYXRlZExpc3QtPmRldGFjaExpc3RXcmFwcGVycygwKTsKLSAgICAgICAgYW5pbWF0ZWRM
aXN0LT52YWx1ZXMoKS5jbGVhcigpOworICAgICAgICBiYXNlVmFsLT5kZXRhY2hMaXN0V3JhcHBl
cnMoMCk7CisgICAgICAgIGJhc2VWYWwtPnZhbHVlcygpLmNsZWFyKCk7CiAgICAgfQogICAgIGlm
IChpc0FjY3VtdWxhdGVkKCkgJiYgcmVwZWF0KQogICAgICAgICBwZXJjZW50YWdlICs9IHJlcGVh
dDsKICAgICBTVkdUcmFuc2Zvcm0gdHJhbnNmb3JtID0gU1ZHVHJhbnNmb3JtRGlzdGFuY2UobV9m
cm9tVHJhbnNmb3JtLCBtX3RvVHJhbnNmb3JtKS5zY2FsZWREaXN0YW5jZShwZXJjZW50YWdlKS5h
ZGRUb1NWR1RyYW5zZm9ybShtX2Zyb21UcmFuc2Zvcm0pOwotICAgIGFuaW1hdGVkTGlzdC0+dmFs
dWVzKCkuYXBwZW5kKHRyYW5zZm9ybSk7Ci0gICAgYW5pbWF0ZWRMaXN0LT53cmFwcGVycygpLmFw
cGVuZChSZWZQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybT4gPigpKTsKKyAgICBi
YXNlVmFsLT52YWx1ZXMoKS5hcHBlbmQodHJhbnNmb3JtKTsKKyAgICBiYXNlVmFsLT53cmFwcGVy
cygpLmFwcGVuZChSZWZQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybT4gPigpKTsK
IH0KICAgICAKIGJvb2wgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21B
bmRUb1ZhbHVlcyhjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJp
bmcpCkBAIC0yMjQsNyArMjMzLDEzIEBAIHZvaWQgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6
OmFwcGx5UmVzdWx0c1RvVGFyZ2V0KCkKICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0PiBhbmltYXRlZExpc3QgPSBhbmltYXRlZFRyYW5zZm9ybUxpc3RGb3IodGFyZ2V0RWxlbWVu
dCk7CiAgICAgaWYgKCFhbmltYXRlZExpc3QpCiAgICAgICAgIHJldHVybjsKLSAgICBTVkdUcmFu
c2Zvcm1MaXN0KiB0cmFuc2Zvcm1MaXN0ID0gJmFuaW1hdGVkTGlzdC0+dmFsdWVzKCk7CisKKyAg
ICAvLyBGSVhNRTogT25jZSB3ZSBhZGRlZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRv
ciwgdGhpcyB3aG9sZSBjbGFzcyBpcyB1bm5jZXNzYXJ5LgorICAgIC8vIFNlZSBidWcgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNzU4LiBPbmNlIHRoaXMgaXMgZml4
ZWQgYW5pbVZhbCBzdXBwb3J0CisgICAgLy8gZm9yIDxhbmltYXRlVHJhbnNmb3JtPiBpcyBmaW5p
c2hlZCwgYW5kIHRoaXMgY2xhc3MgaXMgYWxtb3N0IGVtcHR5LgorICAgIFNWR0xpc3RQcm9wZXJ0
eTxTVkdUcmFuc2Zvcm1MaXN0PiogYmFzZVZhbCA9IHN0YXRpY19jYXN0PFNWR0xpc3RQcm9wZXJ0
eTxTVkdUcmFuc2Zvcm1MaXN0Pio+KGFuaW1hdGVkTGlzdC0+YmFzZVZhbCgpKTsKKyAgICBBU1NF
UlQoYmFzZVZhbCk7CisgICAgU1ZHVHJhbnNmb3JtTGlzdCYgdHJhbnNmb3JtTGlzdCA9IGJhc2VW
YWwtPnZhbHVlcygpOwogCiAgICAgY29uc3QgSGFzaFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPiYg
aW5zdGFuY2VzID0gdGFyZ2V0RWxlbWVudC0+aW5zdGFuY2VzRm9yRWxlbWVudCgpOwogICAgIGNv
bnN0IEhhc2hTZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGlu
c3RhbmNlcy5lbmQoKTsKQEAgLTIzMiwxMyArMjQ3LDEzIEBAIHZvaWQgU1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnQ6OmFwcGx5UmVzdWx0c1RvVGFyZ2V0KCkKICAgICAgICAgU1ZHRWxlbWVudCog
c2hhZG93VHJlZUVsZW1lbnQgPSAoKml0KS0+c2hhZG93VHJlZUVsZW1lbnQoKTsKICAgICAgICAg
QVNTRVJUKHNoYWRvd1RyZWVFbGVtZW50KTsKICAgICAgICAgaWYgKHNoYWRvd1RyZWVFbGVtZW50
LT5pc1N0eWxlZFRyYW5zZm9ybWFibGUoKSkKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PFNWR1N0
eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Kj4oc2hhZG93VHJlZUVsZW1lbnQpLT5zZXRUcmFuc2Zv
cm1CYXNlVmFsdWUoKnRyYW5zZm9ybUxpc3QpOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8U1ZH
U3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQqPihzaGFkb3dUcmVlRWxlbWVudCktPnNldFRyYW5z
Zm9ybUJhc2VWYWx1ZSh0cmFuc2Zvcm1MaXN0KTsKICAgICAgICAgZWxzZSBpZiAoc2hhZG93VHJl
ZUVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRleHRUYWcpKQotICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8U1ZHVGV4dEVsZW1lbnQqPihzaGFkb3dUcmVlRWxlbWVudCktPnNldFRyYW5zZm9y
bUJhc2VWYWx1ZSgqdHJhbnNmb3JtTGlzdCk7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxTVkdU
ZXh0RWxlbWVudCo+KHNoYWRvd1RyZWVFbGVtZW50KS0+c2V0VHJhbnNmb3JtQmFzZVZhbHVlKHRy
YW5zZm9ybUxpc3QpOwogICAgICAgICBlbHNlIGlmIChzaGFkb3dUcmVlRWxlbWVudC0+aGFzVGFn
TmFtZShTVkdOYW1lczo6bGluZWFyR3JhZGllbnRUYWcpIHx8IHNoYWRvd1RyZWVFbGVtZW50LT5o
YXNUYWdOYW1lKFNWR05hbWVzOjpyYWRpYWxHcmFkaWVudFRhZykpCi0gICAgICAgICAgICBzdGF0
aWNfY2FzdDxTVkdHcmFkaWVudEVsZW1lbnQqPihzaGFkb3dUcmVlRWxlbWVudCktPnNldEdyYWRp
ZW50VHJhbnNmb3JtQmFzZVZhbHVlKCp0cmFuc2Zvcm1MaXN0KTsKKyAgICAgICAgICAgIHN0YXRp
Y19jYXN0PFNWR0dyYWRpZW50RWxlbWVudCo+KHNoYWRvd1RyZWVFbGVtZW50KS0+c2V0R3JhZGll
bnRUcmFuc2Zvcm1CYXNlVmFsdWUodHJhbnNmb3JtTGlzdCk7CiAgICAgICAgIGVsc2UgaWYgKHNo
YWRvd1RyZWVFbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpwYXR0ZXJuVGFnKSkKLSAgICAg
ICAgICAgIHN0YXRpY19jYXN0PFNWR1BhdHRlcm5FbGVtZW50Kj4oc2hhZG93VHJlZUVsZW1lbnQp
LT5zZXRQYXR0ZXJuVHJhbnNmb3JtQmFzZVZhbHVlKCp0cmFuc2Zvcm1MaXN0KTsKKyAgICAgICAg
ICAgIHN0YXRpY19jYXN0PFNWR1BhdHRlcm5FbGVtZW50Kj4oc2hhZG93VHJlZUVsZW1lbnQpLT5z
ZXRQYXR0ZXJuVHJhbnNmb3JtQmFzZVZhbHVlKHRyYW5zZm9ybUxpc3QpOwogICAgICAgICBpZiAo
UmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHNoYWRvd1RyZWVFbGVtZW50LT5yZW5kZXJlcigpKSB7
CiAgICAgICAgICAgICByZW5kZXJlci0+c2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKTsKICAgICAg
ICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJ
bnZhbGlkYXRpb24ocmVuZGVyZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRM
ZW5ndGhMaXN0LmNwcAppbmRleCAxNTNlNGYxYTg3MGNkZTRlZTAyYjJjNjM0YTNhMjE3ODg1ZDJm
YzZkLi4zYTNlMTVhMjExNjE4YmMyNDg4M2NhNTE1NjIxYTA4ZjgzOWYzMmZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcApAQCAtNDAsNiArNDAsMTIg
QEAgUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1h
dG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGMKICAgICByZXR1cm4gYW5pbWF0ZVR5cGUucmVsZWFz
ZSgpOwogfQogCitQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRMZW5ndGhM
aXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21Db3B5KFNWR0dlbmVyaWNBbmltYXRlZFR5cGUqIGFu
aW1hdGVkVHlwZSkKK3sKKyAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlKTsKKyAgICByZXR1cm4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGhMaXN0KG5ldyBTVkdMZW5ndGhMaXN0KCpyZWludGVy
cHJldF9jYXN0PFNWR0xlbmd0aExpc3QqPihhbmltYXRlZFR5cGUpKSk7Cit9CisKIHZvaWQgU1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhPd25Q
dHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvLCBj
b25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpCiB7CiAgICAg
QVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
TGVuZ3RoTGlzdC5oCmluZGV4IGNkNDNiMGUwZmI2Yzk4YjIxOGM3NDYyZTI3YjllZGQ4ZTI0ODQ0
MjEuLmUzYzIyMzk3MWM0Yjk1NmE4YmJjMjFlY2MxYWYzM2RkYzYyZWQ0MzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmgKQEAgLTM3LDYgKzM3LDcgQEAgREVD
TEFSRV9BTklNQVRFRF9MSVNUX1BST1BFUlRZKFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCwgU1ZHTGVu
Z3RoTGlzdCwgVXBwZXJQcm9wZXIKIERFRklORV9BTklNQVRFRF9QUk9QRVJUWShBbmltYXRlZExl
bmd0aExpc3QsIE93bmVyVHlwZSwgRE9NQXR0cmlidXRlLCBET01BdHRyaWJ1dGUubG9jYWxOYW1l
KCksIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHkpCiAKIGNsYXNzIFNWR0FuaW1hdGlvbkVs
ZW1lbnQ7CitjbGFzcyBTVkdHZW5lcmljQW5pbWF0ZWRUeXBlOwogCiBjbGFzcyBTVkdBbmltYXRl
ZExlbmd0aExpc3RBbmltYXRvciA6IHB1YmxpYyBTVkdBbmltYXRlZFR5cGVBbmltYXRvciB7CiAg
ICAgCkBAIC00NSw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZExl
bmd0aExpc3RBbmltYXRvcigpIHsgfQogICAgIAogICAgIHZpcnR1YWwgUGFzc093blB0cjxTVkdB
bmltYXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJik7CisgICAgdmly
dHVhbCBQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbUNvcHkoU1ZHR2Vu
ZXJpY0FuaW1hdGVkVHlwZSopOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVGcm9t
QW5kVG9WYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwgT3duUHRyPFNW
R0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3Qg
U3RyaW5nJiB0b1N0cmluZyk7CiAgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRCeVZh
bHVlcyhPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0
ZWRUeXBlPiYgdG9WYWx1ZSwgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGJ5U3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAKaW5kZXggNTJl
NjE4YjVkZGY1ZjhlOGNjY2UxNTVjZjdiYTVkOTRkMWE2MDI2NS4uM2FiYWFiOTVkMjZiMTJhM2M2
YmQ4ZTczZDgxYjgwNDkzMDc4YzYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlw
ZS5jcHAKQEAgLTQzMiwxMyArNDMyLDEzIEBAIGJvb2wgU1ZHQW5pbWF0ZWRUeXBlOjpzdXBwb3J0
c0FuaW1WYWwoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSkKICAgICAvLyBGSVhNRTogVGhpcyBs
aXN0cyB0aGUgY3VycmVudCBzdGF0ZSBvZiBvdXIgYW5pbVZhbCBzdXBwb3J0OiBvbmx5IFNWR0xl
bmd0aCBpcyBzdXBwb3J0ZWQgZm9yIG5vdy4KICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNl
IEFuaW1hdGVkTGVuZ3RoOgorICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAgICAgY2FzZSBBbmltYXRlZEJv
b2xlYW46CiAgICAgY2FzZSBBbmltYXRlZENvbG9yOgogICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJh
dGlvbjoKICAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
TGlzdDoKICAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJM
aXN0OgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcjoKQEAgLTQ2MywxMiAr
NDYzLDE0IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUeXBlOjpzZXRWYXJpYW50VmFsdWUoU1ZHR2VuZXJp
Y0FuaW1hdGVkVHlwZSogdHlwZSkKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgogICAgICAgICAq
bV9kYXRhLmxlbmd0aCA9ICpyZWludGVycHJldF9jYXN0PFNWR0xlbmd0aCo+KHR5cGUpOwogICAg
ICAgICByZXR1cm47CisgICAgY2FzZSBBbmltYXRlZExlbmd0aExpc3Q6CisgICAgICAgICptX2Rh
dGEubGVuZ3RoTGlzdCA9ICpyZWludGVycHJldF9jYXN0PFNWR0xlbmd0aExpc3QqPih0eXBlKTsK
KyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKICAgICBjYXNlIEFuaW1h
dGVkQm9vbGVhbjoKICAgICBjYXNlIEFuaW1hdGVkQ29sb3I6CiAgICAgY2FzZSBBbmltYXRlZEVu
dW1lcmF0aW9uOgogICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyOgotICAgIGNhc2UgQW5pbWF0ZWRM
ZW5ndGhMaXN0OgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CiAgICAgY2FzZSBBbmltYXRlZE51
bWJlckxpc3Q6CiAgICAgY2FzZSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCmluZGV4IDFjYjcxOWI3MjBjMDQ2
YTM5MTYwYzVlYzllYTY1M2E0NTc1YzU4N2UuLmQ5NWFlNTNmNjk2MTUxMWZhNjkwODc2OGY5NGM1
M2UyNDAzNjEzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5j
cHAKQEAgLTM3OSw3ICszNzksNyBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmFwcGx5QW5p
bWF0ZWRWYWx1ZShTVkdBbmltYXRpb25FbGVtZW50OjpTaG91bGRBcHBseUFuaQogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEFwcGx5WE1MQW5pbWF0aW9uOgogICAgICAgICBpZiAoU1ZHQW5pbWF0
ZWRQcm9wZXJ0eSogcHJvcGVydHkgPSBmaW5kTWF0Y2hpbmdBbmltYXRlZFByb3BlcnR5KHRhcmdl
dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkVHlwZS0+dHlwZSgpKSkgewotICAgICAg
ICAgICAgcHJvcGVydHktPmFuaW1hdGlvblZhbHVlQ2hhbmdlZCgpOworICAgICAgICAgICAgcHJv
cGVydHktPmFuaW1hdGlvblZhbHVlRGlkQ2hhbmdlKCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCmluZGV4IDg0NDRjODFjOTQ2ZjA4
YWNlZjM4NzJhN2VhYjAzNWFhNzk1MjcxYTIuLmZjY2MwNGU3YjYzZWE5ODFiZWFmZjNkMjhjYjUw
ODg3YjE1MDBiYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCkBAIC0yMiw2ICsyMiw3
IEBACiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIK
KyNpbmNsdWRlICJTVkdBbmltYXRlZFR5cGUuaCIKICNpbmNsdWRlICJTVkdMaXN0UHJvcGVydHlU
ZWFyT2ZmLmgiCiAjaW5jbHVkZSAiU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oIgogCkBA
IC0zNiwxOSArMzcsMjAgQEAgcHVibGljOgogICAgIHR5cGVkZWYgdHlwZW5hbWUgU1ZHUHJvcGVy
dHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6TGlzdEl0ZW1UeXBlIExpc3RJdGVtVHlwZTsKICAgICB0
eXBlZGVmIFNWR1Byb3BlcnR5VGVhck9mZjxMaXN0SXRlbVR5cGU+IExpc3RJdGVtVGVhck9mZjsK
ICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiA+IExpc3RXcmFwcGVy
Q2FjaGU7CisgICAgdHlwZWRlZiBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4g
TGlzdFByb3BlcnR5VGVhck9mZjsKIAotICAgIFNWR1Byb3BlcnR5KiBiYXNlVmFsKCkKKyAgICBM
aXN0UHJvcGVydHlUZWFyT2ZmKiBiYXNlVmFsKCkKICAgICB7CiAgICAgICAgIGlmICghbV9iYXNl
VmFsKQotICAgICAgICAgICAgbV9iYXNlVmFsID0gU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxQcm9w
ZXJ0eVR5cGU+OjpjcmVhdGUodGhpcywgQmFzZVZhbFJvbGUpOwotICAgICAgICByZXR1cm4gbV9i
YXNlVmFsLmdldCgpOworICAgICAgICAgICAgbV9iYXNlVmFsID0gTGlzdFByb3BlcnR5VGVhck9m
Zjo6Y3JlYXRlKHRoaXMsIEJhc2VWYWxSb2xlLCBtX3ZhbHVlcywgbV93cmFwcGVycyk7CisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxMaXN0UHJvcGVydHlUZWFyT2ZmKj4obV9iYXNlVmFsLmdl
dCgpKTsKICAgICB9CiAKLSAgICBTVkdQcm9wZXJ0eSogYW5pbVZhbCgpCisgICAgTGlzdFByb3Bl
cnR5VGVhck9mZiogYW5pbVZhbCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZhbCkKLSAg
ICAgICAgICAgIG1fYW5pbVZhbCA9IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBl
Pjo6Y3JlYXRlKHRoaXMsIEFuaW1WYWxSb2xlKTsKLSAgICAgICAgcmV0dXJuIG1fYW5pbVZhbC5n
ZXQoKTsKKyAgICAgICAgICAgIG1fYW5pbVZhbCA9IExpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0
ZSh0aGlzLCBBbmltVmFsUm9sZSwgbV92YWx1ZXMsIG1fd3JhcHBlcnMpOworICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8TGlzdFByb3BlcnR5VGVhck9mZio+KG1fYW5pbVZhbC5nZXQoKSk7CiAg
ICAgfQogCiAgICAgdmlydHVhbCBib29sIGlzQW5pbWF0ZWRMaXN0VGVhck9mZigpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KQEAgLTU3LDM0ICs1OSw5NyBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICAvLyBUaGlzIHNob3VsZCBldmVyIGJlIGNhbGxlZCBmb3Igb3VyIGJhc2VWYWwsIGFzIGFuaW1W
YWwgY2FuJ3QgbW9kaWZ5IHRoZSBsaXN0LgogICAgICAgICB0eXBlZGVmIFNWR1Byb3BlcnR5VGVh
ck9mZjx0eXBlbmFtZSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+OjpMaXN0SXRlbVR5
cGU+IExpc3RJdGVtVGVhck9mZjsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19wb2ludGVyX2Nhc3Q8
U1ZHTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+ID4obV9iYXNlVmFsKS0+cmVtb3Zl
SXRlbUZyb21MaXN0KHN0YXRpY19jYXN0PExpc3RJdGVtVGVhck9mZio+KHByb3BlcnR5KSwgc2hv
dWxkU3luY2hyb25pemVXcmFwcGVycyk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxMaXN0
UHJvcGVydHlUZWFyT2ZmKj4obV9iYXNlVmFsLmdldCgpKS0+cmVtb3ZlSXRlbUZyb21MaXN0KHN0
YXRpY19jYXN0PExpc3RJdGVtVGVhck9mZio+KHByb3BlcnR5KSwgc2hvdWxkU3luY2hyb25pemVX
cmFwcGVycyk7CiAgICAgfQogCiAgICAgdm9pZCBkZXRhY2hMaXN0V3JhcHBlcnModW5zaWduZWQg
bmV3TGlzdFNpemUpCiAgICAgewotICAgICAgICAvLyBTZWUgU1ZHUHJvcGVydHlUZWFyT2ZmOjpk
ZXRhY2hXcmFwcGVyKCkgZm9yIGFuIGV4cGxhaW5hdGlvbiB3aGF0J3MgaGFwcGVuaW5nIGhlcmUu
Ci0gICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3dyYXBwZXJzLnNpemUoKTsKLSAgICAgICAgQVNT
RVJUKHNpemUgPT0gbV92YWx1ZXMuc2l6ZSgpKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4m
IGl0ZW0gPSBtX3dyYXBwZXJzLmF0KGkpOwotICAgICAgICAgICAgaWYgKCFpdGVtKQotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaXRlbS0+ZGV0YWNoV3JhcHBlcigpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgLy8gUmVpbml0aWFsaXplIHRoZSB3cmFwcGVyIGNhY2hlIHRv
IGJlIGVxdWFsIHRvIHRoZSBuZXcgdmFsdWVzIHNpemUsIGFmdGVyIHRoZSBYTUwgRE9NIGNoYW5n
ZWQgdGhlIGxpc3QuCi0gICAgICAgIGlmIChuZXdMaXN0U2l6ZSkKLSAgICAgICAgICAgIG1fd3Jh
cHBlcnMuZmlsbCgwLCBuZXdMaXN0U2l6ZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1f
d3JhcHBlcnMuY2xlYXIoKTsKKyAgICAgICAgaWYgKG1fYmFzZVZhbCkKKyAgICAgICAgICAgIGJh
c2VWYWwoKS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG5ld0xpc3RTaXplKTsKICAgICB9CiAKLSAgICBQ
cm9wZXJ0eVR5cGUmIHZhbHVlcygpIHsgcmV0dXJuIG1fdmFsdWVzOyB9Ci0gICAgTGlzdFdyYXBw
ZXJDYWNoZSYgd3JhcHBlcnMoKSB7IHJldHVybiBtX3dyYXBwZXJzOyB9CisgICAgUHJvcGVydHlU
eXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgeworICAgICAgICBBU1NFUlQobV9pc0Fu
aW1hdGluZyk7CisgICAgICAgIEFTU0VSVChtX2FuaW1WYWwpOworICAgICAgICByZXR1cm4gYW5p
bVZhbCgpLT52YWx1ZXMoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFNWR0dlbmVyaWNBbmltYXRl
ZFR5cGUqIGN1cnJlbnRCYXNlVmFsdWUoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgZXhwZWN0ZWRQcm9w
ZXJ0eVR5cGUpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlRfVU5VU0VEKGV4cGVjdGVkUHJv
cGVydHlUeXBlLCBhbmltYXRlZFByb3BlcnR5VHlwZSgpID09IGV4cGVjdGVkUHJvcGVydHlUeXBl
KTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8U1ZHR2VuZXJpY0FuaW1hdGVkVHlw
ZSo+KCZtX3ZhbHVlcyk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN0YXJ0
ZWQoU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZFR5cGUpCisgICAgeworICAgICAgICBBU1NFUlQo
IW1faXNBbmltYXRpbmcpOworICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlKTsKKyAgICAgICAg
QVNTRVJUKGFuaW1hdGVkVHlwZS0+dHlwZSgpID09IGFuaW1hdGVkUHJvcGVydHlUeXBlKCkpOwor
ICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAg
ICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRXcmFwcGVycy5pc0VtcHR5KCkpOworCisgICAgICAgIC8v
IFN3aXRjaCB0byBuZXcgcGFzc2VkIGluIHZhbHVlIHR5cGUgJiBuZXcgd3JhcHBlcnMgbGlzdC4g
VGhlIG5ldyB3cmFwcGVycyBsaXN0IG11c3QgYmUgY3JlYXRlZCBmb3IgdGhlIG5ldyB2YWx1ZS4K
KyAgICAgICAgUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsID0gcmVpbnRlcnByZXRfY2FzdDxQcm9w
ZXJ0eVR5cGUqPihhbmltYXRlZFR5cGUtPnZhcmlhbnRWYWx1ZSgpKTsKKyAgICAgICAgaWYgKCFu
ZXdBbmltVmFsLT5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX2FuaW1hdGVkV3JhcHBlcnMuZmls
bCgwLCBuZXdBbmltVmFsLT5zaXplKCkpOworCisgICAgICAgIGFuaW1WYWwoKS0+c2V0VmFsdWVz
QW5kV3JhcHBlcnMobmV3QW5pbVZhbCwgJm1fYW5pbWF0ZWRXcmFwcGVycyk7CisgICAgICAgIEFT
U0VSVChhbmltVmFsKCktPnZhbHVlcygpLnNpemUoKSA9PSBhbmltVmFsKCktPndyYXBwZXJzKCku
c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKGFuaW1WYWwoKS0+d3JhcHBlcnMoKS5zaXplKCkgPT0g
bV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7CisgICAgICAgIG1faXNBbmltYXRpbmcgPSB0cnVl
OworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25FbmRlZCgpCisgICAgeworICAg
ICAgICBBU1NFUlQobV9pc0FuaW1hdGluZyk7CisgICAgICAgIEFTU0VSVChtX2FuaW1WYWwpOwor
ICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAg
ICAgICAgQVNTRVJUKGFuaW1WYWwoKS0+dmFsdWVzKCkuc2l6ZSgpID09IGFuaW1WYWwoKS0+d3Jh
cHBlcnMoKS5zaXplKCkpOworICAgICAgICBBU1NFUlQoYW5pbVZhbCgpLT53cmFwcGVycygpLnNp
emUoKSA9PSBtX2FuaW1hdGVkV3JhcHBlcnMuc2l6ZSgpKTsKKworICAgICAgICBhbmltVmFsKCkt
PnNldFZhbHVlc0FuZFdyYXBwZXJzKCZtX3ZhbHVlcywgJm1fd3JhcHBlcnMpOworICAgICAgICBB
U1NFUlQoYW5pbVZhbCgpLT52YWx1ZXMoKS5zaXplKCkgPT0gYW5pbVZhbCgpLT53cmFwcGVycygp
LnNpemUoKSk7CisgICAgICAgIEFTU0VSVChhbmltVmFsKCktPndyYXBwZXJzKCkuc2l6ZSgpID09
IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKworICAgICAgICBtX2FuaW1hdGVkV3JhcHBlcnMuY2xlYXIo
KTsKKyAgICAgICAgbV9pc0FuaW1hdGluZyA9IGZhbHNlOwogCi0gICAgLy8gRklYTUU6IGFuaW1W
YWwgc3VwcG9ydC4KLSAgICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRBbmltYXRlZFZhbHVlKCkgeyByZXR1cm4gbV92
YWx1ZXM7IH0KKyAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KCkpOworICAgICAgICBjb250
ZXh0RWxlbWVudCgpLT5zdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJpYnV0ZU5hbWUoKSk7CisgICAg
fQorCisgICAgdm9pZCBzeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKQorICAgIHsKKyAgICAg
ICAgLy8gRXZlbnR1YWxseSB0aGUgd3JhcHBlciBsaXN0IG5lZWRzIHN5bmNocm9uaXphdGlvbiBi
ZWNhdXNlIGFueSBTVkdBbmltYXRlTGVuZ3RoTGlzdDo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSgp
IGNhbGwgbWF5CisgICAgICAgIC8vIG11dGF0ZSB0aGUgbGVuZ3RoIG9mIG91ciB2YWx1ZXMoKSBs
aXN0LCBhbmQgdGh1cyB0aGUgd3JhcHBlcigpIGNhY2hlIG5lZWRzIHN5bmNocm9uaXphdGlvbiwg
dG8gaGF2ZSB0aGUgc2FtZSBzaXplLgorICAgICAgICAvLyBBbHNvIGV4aXN0aW5nIHdyYXBwZXJz
IHdoaWNoIHBvaW50IGRpcmVjdGx5IGF0IGVsZW1lbnRzIGluIHRoZSBleGlzdGluZyBTVkdMZW5n
dGhMaXN0IGhhdmUgdG8gYmUgZGV0YWNoZWQgKHNvIGEgY29weQorICAgICAgICAvLyBvZiB0aGVt
IGlzIGNyZWF0ZWQsIHNvIGV4aXN0aW5nIGFuaW1WYWwgdmFyaWFibGVzIGluIEpTIGFyZSBrZXB0
LWFsaXZlKS4gSWYgd2UnZCBkZXRhY2ggdGhlbSBsYXRlciB0aGUgdW5kZXJseWluZworICAgICAg
ICAvLyBTVkdMZW5ndGhMaXN0IHdhcyBhbHJlYWR5IG11dGF0ZWQsIGFuZCBvdXIgbGlzdCBpdGVt
IHdyYXBwZXIgdGVhciBvZmZzIHdvdWxkIHBvaW50IG5vd2hlcmUuIEFzc2VydGlvbnMgd291bGQg
ZmlyZS4KKyAgICAgICAgYW5pbVZhbCgpLT5kZXRhY2hMaXN0V3JhcHBlcnMoYW5pbVZhbCgpLT52
YWx1ZXMoKS5zaXplKCkpOworCisgICAgICAgIEFTU0VSVChhbmltVmFsKCktPnZhbHVlcygpLnNp
emUoKSA9PSBhbmltVmFsKCktPndyYXBwZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKGFu
aW1WYWwoKS0+d3JhcHBlcnMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7
CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblZhbHVlV2lsbENoYW5nZSgpCisg
ICAgeworICAgICAgICBBU1NFUlQobV9pc0FuaW1hdGluZyk7CisgICAgICAgIEFTU0VSVChtX2Fu
aW1WYWwpOworICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6
ZSgpKTsKKyAgICAgICAgc3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CisgICAgfQorCisg
ICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblZhbHVlRGlkQ2hhbmdlKCkKKyAgICB7CisgICAgICAg
IEFTU0VSVChtX2lzQW5pbWF0aW5nKTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbVZhbCk7CisgICAg
ICAgIEFTU0VSVChtX3ZhbHVlcy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAg
ICBzeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKKworICAgICAgICBBU1NFUlQoY29udGV4
dEVsZW1lbnQoKSk7CisgICAgICAgIGNvbnRleHRFbGVtZW50KCktPnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoYXR0cmlidXRlTmFtZSgpKTsKKyAgICB9CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPiA+IGNyZWF0ZShTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwg
QW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYg
dmFsdWVzKQogICAgIHsKQEAgLTEwMyw5ICsxNjgsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBQcm9w
ZXJ0eVR5cGUmIG1fdmFsdWVzOwogCi0gICAgLy8gRklYTUU6IFRoZSBsaXN0IHdyYXBwZXIgY2Fj
aGUgaXMgc2hhcmVkIGJldHdlZW4gYmFzZVZhbC9hbmltVmFsLiBJZiB3ZSBpbXBsZW1lbnQgYW5p
bVZhbCwKLSAgICAvLyB3ZSBuZWVkIHR3byBzZXBlcmF0ZWQgd3JhcHBlciBjYWNoZXMgaWYgdGhl
IGF0dHJpYnV0ZSBnZXRzIGFuaW1hdGVkLgogICAgIExpc3RXcmFwcGVyQ2FjaGUgbV93cmFwcGVy
czsKKyAgICBMaXN0V3JhcHBlckNhY2hlIG1fYW5pbWF0ZWRXcmFwcGVyczsKIAogICAgIFJlZlB0
cjxTVkdQcm9wZXJ0eT4gbV9iYXNlVmFsOwogICAgIFJlZlB0cjxTVkdQcm9wZXJ0eT4gbV9hbmlt
VmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oCmluZGV4IDI1ZDc1
N2I3MGVhMWM0NDk1NzdmNGUyNWFmN2YxNjVjYTMxNjc0MmUuLjZlZDVlNjI0M2Y0NDBlODU5ZTVi
MDVjZTNlNjg3YTMzODI5ZTVmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlU
ZWFyT2ZmLmgKQEAgLTM0LDE0ICszNCwxNCBAQCBwdWJsaWM6CiAgICAgU1ZHUHJvcGVydHkqIGJh
c2VWYWwoU1ZHUGF0aFNlZ1JvbGUgcm9sZSkKICAgICB7CiAgICAgICAgIGlmICghbV9iYXNlVmFs
KQotICAgICAgICAgICAgbV9iYXNlVmFsID0gU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6
OmNyZWF0ZSh0aGlzLCBCYXNlVmFsUm9sZSwgcm9sZSk7CisgICAgICAgICAgICBtX2Jhc2VWYWwg
PSBTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKHRoaXMsIEJhc2VWYWxSb2xl
LCByb2xlLCBtX3ZhbHVlcywgbV93cmFwcGVycyk7CiAgICAgICAgIHJldHVybiBtX2Jhc2VWYWwu
Z2V0KCk7CiAgICAgfQogCiAgICAgU1ZHUHJvcGVydHkqIGFuaW1WYWwoU1ZHUGF0aFNlZ1JvbGUg
cm9sZSkKICAgICB7CiAgICAgICAgIGlmICghbV9hbmltVmFsKQotICAgICAgICAgICAgbV9hbmlt
VmFsID0gU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSh0aGlzLCBBbmltVmFs
Um9sZSwgcm9sZSk7CisgICAgICAgICAgICBtX2FuaW1WYWwgPSBTVkdQYXRoU2VnTGlzdFByb3Bl
cnR5VGVhck9mZjo6Y3JlYXRlKHRoaXMsIEFuaW1WYWxSb2xlLCByb2xlLCBtX3ZhbHVlcywgbV93
cmFwcGVycyk7CiAgICAgICAgIHJldHVybiBtX2FuaW1WYWwuZ2V0KCk7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgK
aW5kZXggZTZkYjFiOTNmZDE4NGU5ZmMxOGVkZDA5OWFiNDZiN2FiOTY5OWY1Yy4uZDE0YjYxNTE3
YjA1ODRiNTljOGFjZjU3NjkyM2IyOTYxNGRhNzQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaApAQCAtMzcsNiArMzcsNyBA
QCBwdWJsaWM6CiAgICAgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRleHRFbGVtZW50LmdldCgpOyB9CiAgICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlTmFtZTsgfQogICAgIEFuaW1h
dGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9h
bmltYXRlZFByb3BlcnR5VHlwZTsgfQorICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX2lzQW5pbWF0aW5nOyB9CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpCiAgICAgewpA
QCAtNDcsOSArNDgsMTEgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzQW5pbWF0ZWRM
aXN0VGVhck9mZigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICAvLyBGSVhNRTogTWFr
ZSB0aGVzZSBwdXJlIG9uY2UgU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYgc3VwcG9y
dHMgYW5pbVZhbCBhcyB3ZWxsLgogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25TdGFydGVkKFNW
R0FuaW1hdGVkVHlwZSopIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgYW5pbWF0aW9uRW5kZWQoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVh
bCB2b2lkIGFuaW1hdGlvblZhbHVlQ2hhbmdlZCgpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uVmFsdWVXaWxsQ2hhbmdlKCkgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25WYWx1ZURpZENoYW5nZSgp
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIFNWR0dlbmVyaWNBbmltYXRl
ZFR5cGUqIGN1cnJlbnRCYXNlVmFsdWUoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUpIGNvbnN0CiAgICAg
ewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTcwLDYgKzczLDkgQEAgcHVibGlj
OgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CisKKyAg
ICAgICAgLy8gQXNzdXJlIHRoYXQgYW5pbWF0aW9uRW5kZWQoKSB3YXMgY2FsbGVkLCBpZiBhbmlt
YXRpb25TdGFydGVkKCkgd2FzIGNhbGxlZCBiZWZvcmUuCisgICAgICAgIEFTU0VSVCghbV9pc0Fu
aW1hdGluZyk7CiAgICAgfQogCiAgICAgLy8gbG9va3VwT3JDcmVhdGVXcmFwcGVyICYgaGVscGVy
IG1ldGhvZHMuCkBAIC0xMzksNiArMTQ1LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICA6IG1fY29u
dGV4dEVsZW1lbnQoY29udGV4dEVsZW1lbnQpCiAgICAgICAgICwgbV9hdHRyaWJ1dGVOYW1lKGF0
dHJpYnV0ZU5hbWUpCiAgICAgICAgICwgbV9hbmltYXRlZFByb3BlcnR5VHlwZShhbmltYXRlZFBy
b3BlcnR5VHlwZSkKKyAgICAgICAgLCBtX2lzQW5pbWF0aW5nKGZhbHNlKQogICAgIHsKICAgICB9
CiAKQEAgLTE1Miw2ICsxNTksOSBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTVkdFbGVtZW50PiBt
X2NvbnRleHRFbGVtZW50OwogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIG1fYXR0cmlidXRlTmFt
ZTsKICAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBtX2FuaW1hdGVkUHJvcGVydHlUeXBlOworCitw
cm90ZWN0ZWQ6CisgICAgYm9vbCBtX2lzQW5pbWF0aW5nOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFy
T2ZmLmgKaW5kZXggNDU4MDg5NDMzNGI0NTQyNGU1NTczY2E3YTBiOTdlNmNkYzgxNWM4Zi4uYzIy
MDZjYWNiZjZhZDU0MDIxMDZiYWFmOWNlZTg2MTY2OTA3Mzk0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9m
Zi5oCkBAIC0zMCwxNyArMzAsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlPgogY2xhc3MgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYgOiBw
dWJsaWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSB7CiBwdWJsaWM6Ci0gICAgU1ZHUHJvcGVydHkqIGJh
c2VWYWwoKQorICAgIHR5cGVkZWYgU1ZHUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4gUHJv
cGVydHlUZWFyT2ZmOworCisgICAgUHJvcGVydHlUZWFyT2ZmKiBiYXNlVmFsKCkKICAgICB7CiAg
ICAgICAgIGlmICghbV9iYXNlVmFsKQotICAgICAgICAgICAgbV9iYXNlVmFsID0gU1ZHUHJvcGVy
dHlUZWFyT2ZmPFByb3BlcnR5VHlwZT46OmNyZWF0ZSh0aGlzLCBCYXNlVmFsUm9sZSwgbV9wcm9w
ZXJ0eSk7CisgICAgICAgICAgICBtX2Jhc2VWYWwgPSBQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSh0
aGlzLCBCYXNlVmFsUm9sZSwgbV9wcm9wZXJ0eSk7CiAgICAgICAgIHJldHVybiBtX2Jhc2VWYWwu
Z2V0KCk7CiAgICAgfQogCi0gICAgU1ZHUHJvcGVydHkqIGFuaW1WYWwoKQorICAgIFByb3BlcnR5
VGVhck9mZiogYW5pbVZhbCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZhbCkKLSAgICAg
ICAgICAgIG1fYW5pbVZhbCA9IFNWR1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+OjpjcmVh
dGUodGhpcywgQW5pbVZhbFJvbGUsIG1fcHJvcGVydHkpOworICAgICAgICAgICAgbV9hbmltVmFs
ID0gUHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUodGhpcywgQW5pbVZhbFJvbGUsIG1fcHJvcGVydHkp
OwogICAgICAgICByZXR1cm4gbV9hbmltVmFsLmdldCgpOwogICAgIH0KIApAQCAtNTAsMTMgKzUy
LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdBbmltYXRlZFBy
b3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1l
LCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcHJvcGVydHkpKTsKICAgICB9CiAKLSAgICBib29sIGlz
QW5pbWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0FuaW1hdGluZzsgfQotCiAgICAgUHJvcGVy
dHlUeXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV9h
bmltVmFsKTsKICAgICAgICAgQVNTRVJUKG1faXNBbmltYXRpbmcpOwotICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8U1ZHUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4qPihtX2FuaW1WYWwu
Z2V0KCkpLT5wcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICBBU1NFUlQobV9hbmltVmFsKTsK
KyAgICAgICAgcmV0dXJuIG1fYW5pbVZhbC0+cHJvcGVydHlSZWZlcmVuY2UoKTsKICAgICB9CiAK
ICAgICB2aXJ0dWFsIFNWR0dlbmVyaWNBbmltYXRlZFR5cGUqIGN1cnJlbnRCYXNlVmFsdWUoQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUgZXhwZWN0ZWRQcm9wZXJ0eVR5cGUpIGNvbnN0CkBAIC02NywyNCAr
NjcsMzYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoU1ZH
QW5pbWF0ZWRUeXBlKiBhbmltYXRlZFR5cGUpCiAgICAgeworICAgICAgICBBU1NFUlQoIW1faXNB
bmltYXRpbmcpOwogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlKTsKICAgICAgICAgQVNTRVJU
KGFuaW1hdGVkVHlwZS0+dHlwZSgpID09IGFuaW1hdGVkUHJvcGVydHlUeXBlKCkpOwotICAgICAg
ICBzdGF0aWNfY2FzdDxTVkdQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPio+KGFuaW1WYWwo
KSktPnNldFZhbHVlKCpyZWludGVycHJldF9jYXN0PFByb3BlcnR5VHlwZSo+KGFuaW1hdGVkVHlw
ZS0+dmFyaWFudFZhbHVlKCkpKTsKKyAgICAgICAgYW5pbVZhbCgpLT5zZXRWYWx1ZSgqcmVpbnRl
cnByZXRfY2FzdDxQcm9wZXJ0eVR5cGUqPihhbmltYXRlZFR5cGUtPnZhcmlhbnRWYWx1ZSgpKSk7
CiAgICAgICAgIG1faXNBbmltYXRpbmcgPSB0cnVlOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBhbmltYXRpb25FbmRlZCgpCiAgICAgewogICAgICAgICBBU1NFUlQobV9pc0FuaW1hdGluZyk7
Ci0gICAgICAgIHN0YXRpY19jYXN0PFNWR1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+Kj4o
YW5pbVZhbCgpKS0+c2V0VmFsdWUobV9wcm9wZXJ0eSk7CisgICAgICAgIEFTU0VSVChtX2FuaW1W
YWwpOworICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fcHJvcGVydHkpOwogICAgICAgICBt
X2lzQW5pbWF0aW5nID0gZmFsc2U7CiAKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KCkp
OwogICAgICAgICBjb250ZXh0RWxlbWVudCgpLT5zdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJpYnV0
ZU5hbWUoKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblZhbHVlQ2hhbmdl
ZCgpCisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblZhbHVlV2lsbENoYW5nZSgpCisgICAgewor
ICAgICAgICAvLyBuby1vcCBmb3Igbm9uIGxpc3QgdHlwZXMuCisgICAgICAgIEFTU0VSVChtX2lz
QW5pbWF0aW5nKTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbVZhbCk7CisgICAgfQorCisgICAgdmly
dHVhbCB2b2lkIGFuaW1hdGlvblZhbHVlRGlkQ2hhbmdlKCkKICAgICB7CisgICAgICAgIEFTU0VS
VChtX2lzQW5pbWF0aW5nKTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbVZhbCk7CisKICAgICAgICAg
QVNTRVJUKGNvbnRleHRFbGVtZW50KCkpOwogICAgICAgICBjb250ZXh0RWxlbWVudCgpLT5zdmdB
dHRyaWJ1dGVDaGFuZ2VkKGF0dHJpYnV0ZU5hbWUoKSk7CiAgICAgfQpAQCAtOTMsMjEgKzEwNSwx
MiBAQCBwcml2YXRlOgogICAgIFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQq
IGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmlt
YXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9w
ZXJ0eSkKICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50LCBhdHRy
aWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSkKICAgICAgICAgLCBtX3Byb3BlcnR5KHBy
b3BlcnR5KQotICAgICAgICAsIG1faXNBbmltYXRpbmcoZmFsc2UpCiAgICAgewogICAgIH0KIAot
I2lmbmRlZiBOREVCVUcKLSAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZigp
Ci0gICAgewotICAgICAgICBBU1NFUlQoIW1faXNBbmltYXRpbmcpOwotICAgIH0KLSNlbmRpZgot
CiAgICAgUHJvcGVydHlUeXBlJiBtX3Byb3BlcnR5OwotICAgIGJvb2wgbV9pc0FuaW1hdGluZzsK
LSAgICBSZWZQdHI8U1ZHUHJvcGVydHk+IG1fYmFzZVZhbDsKLSAgICBSZWZQdHI8U1ZHUHJvcGVy
dHk+IG1fYW5pbVZhbDsKKyAgICBSZWZQdHI8UHJvcGVydHlUZWFyT2ZmPiBtX2Jhc2VWYWw7Cisg
ICAgUmVmUHRyPFByb3BlcnR5VGVhck9mZj4gbV9hbmltVmFsOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
UHJvcGVydHlUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAppbmRleCAxYTNlNzAwZjRhMjM1YjM4
NzYzYjg3YjMzNTc5M2VjMDk2YTExN2MxLi4zZGIzZWRlY2Y1MTZmN2I1NjU4ZTVkOTIzZTY3ZjA2
YWE0YzFlNmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYu
aApAQCAtMzIsMTQgKzMyLDE0IEBAIHB1YmxpYzoKICAgICBTVkdQcm9wZXJ0eSogYmFzZVZhbCgp
CiAgICAgewogICAgICAgICBpZiAoIW1fYmFzZVZhbCkKLSAgICAgICAgICAgIG1fYmFzZVZhbCA9
IFNWR1RyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSh0aGlzLCBCYXNlVmFsUm9s
ZSk7CisgICAgICAgICAgICBtX2Jhc2VWYWwgPSBTVkdUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFy
T2ZmOjpjcmVhdGUodGhpcywgQmFzZVZhbFJvbGUsIG1fdmFsdWVzLCBtX3dyYXBwZXJzKTsKICAg
ICAgICAgcmV0dXJuIG1fYmFzZVZhbC5nZXQoKTsKICAgICB9CiAKICAgICBTVkdQcm9wZXJ0eSog
YW5pbVZhbCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZhbCkKLSAgICAgICAgICAgIG1f
YW5pbVZhbCA9IFNWR1RyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSh0aGlzLCBB
bmltVmFsUm9sZSk7CisgICAgICAgICAgICBtX2FuaW1WYWwgPSBTVkdUcmFuc2Zvcm1MaXN0UHJv
cGVydHlUZWFyT2ZmOjpjcmVhdGUodGhpcywgQW5pbVZhbFJvbGUsIG1fdmFsdWVzLCBtX3dyYXBw
ZXJzKTsKICAgICAgICAgcmV0dXJuIG1fYW5pbVZhbC5nZXQoKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgKaW5kZXggMDk4NWRk
YmQ4ZWJlMjdmNzk2YjAyYzY0ZWI4YWEzZTA1MDgyYjc2Ni4uNThlMGRmZTRiMDRhNDA3OWJjZTY0
MmYwYjU3YTc4MzkyMjJlMWVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHTGlzdFByb3BlcnR5LmgKQEAgLTUyLDQxICs1Miw2NCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHZvaWQgZGV0YWNoTGlzdFdyYXBwZXJzKHVuc2ln
bmVkIG5ld0xpc3RTaXplKQorICAgIHsKKyAgICAgICAgLy8gU2VlIFNWR1Byb3BlcnR5VGVhck9m
Zjo6ZGV0YWNoV3JhcHBlcigpIGZvciBhbiBleHBsYWluYXRpb24gd2hhdCdzIGhhcHBlbmluZyBo
ZXJlLgorICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CisgICAgICAgIHVuc2lnbmVkIHNpemUg
PSBtX3dyYXBwZXJzLT5zaXplKCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBz
aXplOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChMaXN0SXRlbVRlYXJPZmYqIGl0ZW0gPSBtX3dy
YXBwZXJzLT5hdChpKS5nZXQoKSkKKyAgICAgICAgICAgICAgICBpdGVtLT5kZXRhY2hXcmFwcGVy
KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBSZWluaXRpYWxpemUgdGhlIHdyYXBwZXIgY2Fj
aGUgdG8gYmUgZXF1YWwgdG8gdGhlIG5ldyB2YWx1ZXMgc2l6ZSwgYWZ0ZXIgdGhlIFhNTCBET00g
Y2hhbmdlZCB0aGUgbGlzdC4KKyAgICAgICAgaWYgKG5ld0xpc3RTaXplKQorICAgICAgICAgICAg
bV93cmFwcGVycy0+ZmlsbCgwLCBuZXdMaXN0U2l6ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG1fd3JhcHBlcnMtPmNsZWFyKCk7CisgICAgfQorCisgICAgdm9pZCBzZXRWYWx1ZXNBbmRX
cmFwcGVycyhQcm9wZXJ0eVR5cGUqIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSogd3JhcHBlcnMp
CisgICAgeworICAgICAgICAvLyBUaGlzIGlzIG9ubHkgdXNlZCBmb3IgYW5pbVZhbCBzdXBwb3J0
LCB0byBzd2l0Y2ggdGhlIHVuZGVybHlpbmcgdmFsdWVzICYgd3JhcHBlcnMKKyAgICAgICAgLy8g
dG8gdGhlIGN1cnJlbnQgYW5pbWF0ZWQgdmFsdWVzLCBvbmNlIGFuaW1hdGlvbiBmb3IgYSBsaXN0
IHN0YXJ0cy4KKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICAgICAgQVNTRVJUKG1fd3Jh
cHBlcnMpOworICAgICAgICBBU1NFUlQobV9yb2xlID09IEFuaW1WYWxSb2xlKTsKKworICAgICAg
ICBtX3ZhbHVlcyA9IHZhbHVlczsKKyAgICAgICAgbV93cmFwcGVycyA9IHdyYXBwZXJzOworICAg
ICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAg
IH0KKwogICAgIC8vIFNWR0xpc3Q6OmNsZWFyKCkKLSAgICB2b2lkIGNsZWFyVmFsdWVzKFByb3Bl
cnR5VHlwZSYgdmFsdWVzLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICB2b2lkIGNsZWFyVmFsdWVz
KEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKICAgICAgICAgaWYgKCFjYW5BbHRlckxpc3QoZWMp
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHZhbHVlcy5jbGVhcigpOworICAgICAg
ICBtX3ZhbHVlcy0+Y2xlYXIoKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgfQogCi0g
ICAgdm9pZCBjbGVhclZhbHVlc0FuZFdyYXBwZXJzKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZiogYW5pbWF0ZWRMaXN0LCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICB2b2lkIGNsZWFyVmFsdWVz
QW5kV3JhcHBlcnMoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICBBU1NFUlQoYW5p
bWF0ZWRMaXN0KTsKICAgICAgICAgaWYgKCFjYW5BbHRlckxpc3QoZWMpKQogICAgICAgICAgICAg
cmV0dXJuOwogCi0gICAgICAgIGFuaW1hdGVkTGlzdC0+ZGV0YWNoTGlzdFdyYXBwZXJzKDApOwot
ICAgICAgICBhbmltYXRlZExpc3QtPnZhbHVlcygpLmNsZWFyKCk7CisgICAgICAgIGRldGFjaExp
c3RXcmFwcGVycygwKTsKKyAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7CiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogICAgIH0KIAogICAgIC8vIFNWR0xpc3Q6Om51bWJlck9mSXRlbXMoKQotICAg
IHVuc2lnbmVkIG51bWJlck9mSXRlbXNWYWx1ZXMoUHJvcGVydHlUeXBlJiB2YWx1ZXMpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gdmFsdWVzLnNpemUoKTsKLSAgICB9Ci0KLSAgICB1bnNp
Z25lZCBudW1iZXJPZkl0ZW1zVmFsdWVzQW5kV3JhcHBlcnMoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmKiBhbmltYXRlZExpc3QpIGNvbnN0CisgICAgdW5zaWduZWQgbnVtYmVyT2ZJdGVtcygp
IGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQoYW5pbWF0ZWRMaXN0KTsKLSAgICAgICAgcmV0
dXJuIGFuaW1hdGVkTGlzdC0+dmFsdWVzKCkuc2l6ZSgpOworICAgICAgICByZXR1cm4gbV92YWx1
ZXMtPnNpemUoKTsKICAgICB9CiAKICAgICAvLyBTVkdMaXN0Ojppbml0aWFsaXplKCkKLSAgICBM
aXN0SXRlbVR5cGUgaW5pdGlhbGl6ZVZhbHVlcyhQcm9wZXJ0eVR5cGUmIHZhbHVlcywgY29uc3Qg
TGlzdEl0ZW1UeXBlJiBuZXdJdGVtLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICBMaXN0SXRlbVR5
cGUgaW5pdGlhbGl6ZVZhbHVlcyhjb25zdCBMaXN0SXRlbVR5cGUmIG5ld0l0ZW0sIEV4Y2VwdGlv
bkNvZGUmIGVjKQogICAgIHsKICAgICAgICAgaWYgKCFjYW5BbHRlckxpc3QoZWMpKQogICAgICAg
ICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSgpOwpAQCAtOTUsMTYgKzExOCwxNiBAQCBwdWJsaWM6
CiAgICAgICAgIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgMCk7CiAKICAg
ICAgICAgLy8gU3BlYzogQ2xlYXJzIGFsbCBleGlzdGluZyBjdXJyZW50IGl0ZW1zIGZyb20gdGhl
IGxpc3QgYW5kIHJlLWluaXRpYWxpemVzIHRoZSBsaXN0IHRvIGhvbGQgdGhlIHNpbmdsZSBpdGVt
IHNwZWNpZmllZCBieSB0aGUgcGFyYW1ldGVyLgotICAgICAgICB2YWx1ZXMuY2xlYXIoKTsKLSAg
ICAgICAgdmFsdWVzLmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7
CisgICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbSk7CiAKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAgICAgICAgIHJldHVybiBuZXdJdGVtOwogICAgIH0KIAotICAgIFBhc3NMaXN0SXRl
bVRlYXJPZmYgaW5pdGlhbGl6ZVZhbHVlc0FuZFdyYXBwZXJzKEFuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZiogYW5pbWF0ZWRMaXN0LCBQYXNzTGlzdEl0ZW1UZWFyT2ZmIHBhc3NOZXdJdGVtLCBF
eGNlcHRpb25Db2RlJiBlYykKKyAgICBQYXNzTGlzdEl0ZW1UZWFyT2ZmIGluaXRpYWxpemVWYWx1
ZXNBbmRXcmFwcGVycyhQYXNzTGlzdEl0ZW1UZWFyT2ZmIHBhc3NOZXdJdGVtLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICB7Ci0gICAgICAgIEFTU0VSVChhbmltYXRlZExpc3QpOworICAgICAgICBB
U1NFUlQobV93cmFwcGVycyk7CiAgICAgICAgIGlmICghY2FuQWx0ZXJMaXN0KGVjKSkKICAgICAg
ICAgICAgIHJldHVybiAwOwogCkBAIC0xMTQsMzAgKzEzNywyNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCi0gICAgICAgIFByb3BlcnR5VHlwZSYgdmFsdWVz
ID0gYW5pbWF0ZWRMaXN0LT52YWx1ZXMoKTsKLSAgICAgICAgTGlzdFdyYXBwZXJDYWNoZSYgd3Jh
cHBlcnMgPSBhbmltYXRlZExpc3QtPndyYXBwZXJzKCk7Ci0KICAgICAgICAgUmVmUHRyPExpc3RJ
dGVtVGVhck9mZj4gbmV3SXRlbSA9IHBhc3NOZXdJdGVtOwotICAgICAgICBBU1NFUlQodmFsdWVz
LnNpemUoKSA9PSB3cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNp
emUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBp
bnNlcnRlZCBpdGVtIGlzIGFscmVhZHkgaW4gYSBsaXN0LCBpdCBpcyByZW1vdmVkIGZyb20gaXRz
IHByZXZpb3VzIGxpc3QgYmVmb3JlIGl0IGlzIGluc2VydGVkIGludG8gdGhpcyBsaXN0LgogICAg
ICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIobmV3SXRlbSwgMCk7CiAKICAgICAg
ICAgLy8gU3BlYzogQ2xlYXJzIGFsbCBleGlzdGluZyBjdXJyZW50IGl0ZW1zIGZyb20gdGhlIGxp
c3QgYW5kIHJlLWluaXRpYWxpemVzIHRoZSBsaXN0IHRvIGhvbGQgdGhlIHNpbmdsZSBpdGVtIHNw
ZWNpZmllZCBieSB0aGUgcGFyYW1ldGVyLgotICAgICAgICBhbmltYXRlZExpc3QtPmRldGFjaExp
c3RXcmFwcGVycygwKTsKLSAgICAgICAgdmFsdWVzLmNsZWFyKCk7CisgICAgICAgIGRldGFjaExp
c3RXcmFwcGVycygwKTsKKyAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7CiAKLSAgICAgICAgdmFs
dWVzLmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKLSAgICAgICAgd3JhcHBl
cnMuYXBwZW5kKG5ld0l0ZW0pOworICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0tPnBy
b3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICBtX3dyYXBwZXJzLT5hcHBlbmQobmV3SXRlbSk7
CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBuZXdJdGVtLnJlbGVh
c2UoKTsKICAgICB9CiAKICAgICAvLyBTVkdMaXN0OjpnZXRJdGVtKCkKLSAgICBib29sIGNhbkdl
dEl0ZW0oUHJvcGVydHlUeXBlJiB2YWx1ZXMsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2Rl
JiBlYykKKyAgICBib29sIGNhbkdldEl0ZW0odW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgIHsKLSAgICAgICAgaWYgKGluZGV4ID49IHZhbHVlcy5zaXplKCkpIHsKKyAgICAg
ICAgaWYgKGluZGV4ID49IG1fdmFsdWVzLT5zaXplKCkpIHsKICAgICAgICAgICAgIGVjID0gSU5E
RVhfU0laRV9FUlI7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTE0
NSw2MyArMTY1LDYwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0g
ICAgTGlzdEl0ZW1UeXBlIGdldEl0ZW1WYWx1ZXMoUHJvcGVydHlUeXBlJiB2YWx1ZXMsIHVuc2ln
bmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICBMaXN0SXRlbVR5cGUgZ2V0SXRlbVZh
bHVlcyh1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICBp
ZiAoIWNhbkdldEl0ZW0odmFsdWVzLCBpbmRleCwgZWMpKSAKKyAgICAgICAgaWYgKCFjYW5HZXRJ
dGVtKGluZGV4LCBlYykpCiAgICAgICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlKCk7CiAKICAg
ICAgICAgLy8gU3BlYzogUmV0dXJucyB0aGUgc3BlY2lmaWVkIGl0ZW0gZnJvbSB0aGUgbGlzdC4g
VGhlIHJldHVybmVkIGl0ZW0gaXMgdGhlIGl0ZW0gaXRzZWxmIGFuZCBub3QgYSBjb3B5LgotICAg
ICAgICByZXR1cm4gdmFsdWVzLmF0KGluZGV4KTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWVzLT5h
dChpbmRleCk7CiAgICAgfQogCiAgICAgUGFzc0xpc3RJdGVtVGVhck9mZiBnZXRJdGVtVmFsdWVz
QW5kV3JhcHBlcnMoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKiBhbmltYXRlZExpc3QsIHVu
c2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIEFTU0VSVChh
bmltYXRlZExpc3QpOwotICAgICAgICBQcm9wZXJ0eVR5cGUmIHZhbHVlcyA9IGFuaW1hdGVkTGlz
dC0+dmFsdWVzKCk7Ci0gICAgICAgIGlmICghY2FuR2V0SXRlbSh2YWx1ZXMsIGluZGV4LCBlYykp
CisgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKKyAgICAgICAgaWYgKCFjYW5HZXRJdGVtKGlu
ZGV4LCBlYykpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICBMaXN0V3JhcHBlckNh
Y2hlJiB3cmFwcGVycyA9IGFuaW1hdGVkTGlzdC0+d3JhcHBlcnMoKTsKLQogICAgICAgICAvLyBT
cGVjOiBSZXR1cm5zIHRoZSBzcGVjaWZpZWQgaXRlbSBmcm9tIHRoZSBsaXN0LiBUaGUgcmV0dXJu
ZWQgaXRlbSBpcyB0aGUgaXRlbSBpdHNlbGYgYW5kIG5vdCBhIGNvcHkuCiAgICAgICAgIC8vIEFu
eSBjaGFuZ2VzIG1hZGUgdG8gdGhlIGl0ZW0gYXJlIGltbWVkaWF0ZWx5IHJlZmxlY3RlZCBpbiB0
aGUgbGlzdC4KLSAgICAgICAgQVNTRVJUKHZhbHVlcy5zaXplKCkgPT0gd3JhcHBlcnMuc2l6ZSgp
KTsKLSAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4gd3JhcHBlciA9IHdyYXBwZXJzLmF0
KGluZGV4KTsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+
c2l6ZSgpKTsKKyAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4gd3JhcHBlciA9IG1fd3Jh
cHBlcnMtPmF0KGluZGV4KTsKICAgICAgICAgaWYgKCF3cmFwcGVyKSB7CiAgICAgICAgICAgICAv
LyBDcmVhdGUgbmV3IHdyYXBwZXIsIHdoaWNoIGlzIGFsbG93ZWQgdG8gZGlyZWN0bHkgbW9kaWZ5
IHRoZSBpdGVtIGluIHRoZSBsaXN0LCB3L28gY29weWluZyBhbmQgY2FjaGUgdGhlIHdyYXBwZXIg
aW4gb3VyIG1hcC4KICAgICAgICAgICAgIC8vIEl0IGlzIGFsc28gYXNzb2NpYXRlZCB3aXRoIG91
ciBhbmltYXRlZCBwcm9wZXJ0eSwgc28gaXQgY2FuIG5vdGlmeSB0aGUgU1ZHIEVsZW1lbnQgd2hp
Y2ggaG9sZHMgdGhlIFNWR0FuaW1hdGVkKkxpc3QKICAgICAgICAgICAgIC8vIHRoYXQgaXQgaGFz
IGJlZW4gbW9kaWZpZWQgKGFuZCB0aHVzIGNhbiBjYWxsIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXNz
b2NpYXRlZEF0dHJpYnV0ZU5hbWUpKS4KLSAgICAgICAgICAgIHdyYXBwZXIgPSBMaXN0SXRlbVRl
YXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5lZFJvbGUsIHZhbHVlcy5hdChpbmRl
eCkpOwotICAgICAgICAgICAgd3JhcHBlcnMuYXQoaW5kZXgpID0gd3JhcHBlcjsKKyAgICAgICAg
ICAgIHdyYXBwZXIgPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVm
aW5lZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRleCkpOworICAgICAgICAgICAgbV93cmFwcGVycy0+
YXQoaW5kZXgpID0gd3JhcHBlcjsKICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiB3cmFwcGVy
LnJlbGVhc2UoKTsKICAgICB9CiAKICAgICAvLyBTVkdMaXN0OjppbnNlcnRJdGVtQmVmb3JlKCkK
LSAgICBMaXN0SXRlbVR5cGUgaW5zZXJ0SXRlbUJlZm9yZVZhbHVlcyhQcm9wZXJ0eVR5cGUmIHZh
bHVlcywgY29uc3QgTGlzdEl0ZW1UeXBlJiBuZXdJdGVtLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0
aW9uQ29kZSYgZWMpCisgICAgTGlzdEl0ZW1UeXBlIGluc2VydEl0ZW1CZWZvcmVWYWx1ZXMoY29u
c3QgTGlzdEl0ZW1UeXBlJiBuZXdJdGVtLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgewogICAgICAgICBpZiAoIWNhbkFsdGVyTGlzdChlYykpCiAgICAgICAgICAgICBy
ZXR1cm4gTGlzdEl0ZW1UeXBlKCk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgdGhlIGluZGV4IGlz
IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBudW1iZXJPZkl0ZW1zLCB0aGVuIHRoZSBuZXcgaXRl
bSBpcyBhcHBlbmRlZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgICAgICBpZiAoaW5kZXgg
PiB2YWx1ZXMuc2l6ZSgpKQotICAgICAgICAgICAgaW5kZXggPSB2YWx1ZXMuc2l6ZSgpOworICAg
ICAgICBpZiAoaW5kZXggPiBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAgICAgICAgaW5kZXggPSBt
X3ZhbHVlcy0+c2l6ZSgpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIG5ld0l0ZW0gaXMgYWxyZWFk
eSBpbiBhIGxpc3QsIGl0IGlzIHJlbW92ZWQgZnJvbSBpdHMgcHJldmlvdXMgbGlzdCBiZWZvcmUg
aXQgaXMgaW5zZXJ0ZWQgaW50byB0aGlzIGxpc3QuCiAgICAgICAgIHByb2Nlc3NJbmNvbWluZ0xp
c3RJdGVtVmFsdWUobmV3SXRlbSwgJmluZGV4KTsKIAogICAgICAgICAvLyBTcGVjOiBJbnNlcnRz
IGEgbmV3IGl0ZW0gaW50byB0aGUgbGlzdCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiBUaGUg
aW5kZXggb2YgdGhlIGl0ZW0gYmVmb3JlIHdoaWNoIHRoZSBuZXcgaXRlbSBpcyB0byBiZQogICAg
ICAgICAvLyBpbnNlcnRlZC4gVGhlIGZpcnN0IGl0ZW0gaXMgbnVtYmVyIDAuIElmIHRoZSBpbmRl
eCBpcyBlcXVhbCB0byAwLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBpbnNlcnRlZCBhdCB0aGUgZnJv
bnQgb2YgdGhlIGxpc3QuCi0gICAgICAgIHZhbHVlcy5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0pOwor
ICAgICAgICBtX3ZhbHVlcy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtKTsKIAogICAgICAgICBjb21t
aXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIG5ld0l0ZW07CiAgICAgfQogCi0gICAgUGFzc0xp
c3RJdGVtVGVhck9mZiBpbnNlcnRJdGVtQmVmb3JlVmFsdWVzQW5kV3JhcHBlcnMoQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmKiBhbmltYXRlZExpc3QsIFBhc3NMaXN0SXRlbVRlYXJPZmYgcGFz
c05ld0l0ZW0sIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICBQYXNzTGlz
dEl0ZW1UZWFyT2ZmIGluc2VydEl0ZW1CZWZvcmVWYWx1ZXNBbmRXcmFwcGVycyhQYXNzTGlzdEl0
ZW1UZWFyT2ZmIHBhc3NOZXdJdGVtLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiAgICAgewotICAgICAgICBBU1NFUlQoYW5pbWF0ZWRMaXN0KTsKKyAgICAgICAgQVNTRVJUKG1f
d3JhcHBlcnMpOwogICAgICAgICBpZiAoIWNhbkFsdGVyTGlzdChlYykpCiAgICAgICAgICAgICBy
ZXR1cm4gMDsKIApAQCAtMjExLDM3ICsyMjgsMzQgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0
dXJuIDA7CiAgICAgICAgIH0KIAotICAgICAgICBQcm9wZXJ0eVR5cGUmIHZhbHVlcyA9IGFuaW1h
dGVkTGlzdC0+dmFsdWVzKCk7Ci0gICAgICAgIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzID0g
YW5pbWF0ZWRMaXN0LT53cmFwcGVycygpOwotCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBpbmRl
eCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbnVtYmVyT2ZJdGVtcywgdGhlbiB0aGUgbmV3
IGl0ZW0gaXMgYXBwZW5kZWQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgaWYgKGlu
ZGV4ID4gdmFsdWVzLnNpemUoKSkKLSAgICAgICAgICAgICBpbmRleCA9IHZhbHVlcy5zaXplKCk7
CisgICAgICAgIGlmIChpbmRleCA+IG1fdmFsdWVzLT5zaXplKCkpCisgICAgICAgICAgICAgaW5k
ZXggPSBtX3ZhbHVlcy0+c2l6ZSgpOwogCiAgICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+
IG5ld0l0ZW0gPSBwYXNzTmV3SXRlbTsKLSAgICAgICAgQVNTRVJUKHZhbHVlcy5zaXplKCkgPT0g
d3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93
cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiBuZXdJdGVtIGlzIGFscmVh
ZHkgaW4gYSBsaXN0LCBpdCBpcyByZW1vdmVkIGZyb20gaXRzIHByZXZpb3VzIGxpc3QgYmVmb3Jl
IGl0IGlzIGluc2VydGVkIGludG8gdGhpcyBsaXN0LgogICAgICAgICBwcm9jZXNzSW5jb21pbmdM
aXN0SXRlbVdyYXBwZXIobmV3SXRlbSwgJmluZGV4KTsKIAogICAgICAgICAvLyBTcGVjOiBJbnNl
cnRzIGEgbmV3IGl0ZW0gaW50byB0aGUgbGlzdCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiBU
aGUgaW5kZXggb2YgdGhlIGl0ZW0gYmVmb3JlIHdoaWNoIHRoZSBuZXcgaXRlbSBpcyB0byBiZQog
ICAgICAgICAvLyBpbnNlcnRlZC4gVGhlIGZpcnN0IGl0ZW0gaXMgbnVtYmVyIDAuIElmIHRoZSBp
bmRleCBpcyBlcXVhbCB0byAwLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBpbnNlcnRlZCBhdCB0aGUg
ZnJvbnQgb2YgdGhlIGxpc3QuCi0gICAgICAgIHZhbHVlcy5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0t
PnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICBtX3ZhbHVlcy0+aW5zZXJ0KGluZGV4LCBu
ZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKIAogICAgICAgICAvLyBTdG9yZSBuZXcgd3Jh
cHBlciBhdCBwb3NpdGlvbiAnaW5kZXgnLCBjaGFuZ2UgaXRzIHVuZGVybHlpbmcgdmFsdWUsIHNv
IG11dGF0aW9ucyBvZiBuZXdJdGVtLCBkaXJlY3RseSBhZmZlY3QgdGhlIGl0ZW0gaW4gdGhlIGxp
c3QuCi0gICAgICAgIHdyYXBwZXJzLmluc2VydChpbmRleCwgbmV3SXRlbSk7CisgICAgICAgIG1f
d3JhcHBlcnMtPmluc2VydChpbmRleCwgbmV3SXRlbSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAgICAgICAgIHJldHVybiBuZXdJdGVtLnJlbGVhc2UoKTsKICAgICB9CiAKICAgICAvLyBT
VkdMaXN0OjpyZXBsYWNlSXRlbSgpCi0gICAgYm9vbCBjYW5SZXBsYWNlSXRlbShQcm9wZXJ0eVR5
cGUmIHZhbHVlcywgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQorICAgIGJvb2wg
Y2FuUmVwbGFjZUl0ZW0odW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsK
ICAgICAgICAgaWYgKCFjYW5BbHRlckxpc3QoZWMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgICAgIGlmIChpbmRleCA+PSB2YWx1ZXMuc2l6ZSgpKSB7CisgICAgICAgIGlmIChp
bmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKSB7CiAgICAgICAgICAgICBlYyA9IElOREVYX1NJWkVf
RVJSOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0yNDksMzMgKzI2
MywzMiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIExpc3RJ
dGVtVHlwZSByZXBsYWNlSXRlbVZhbHVlcyhQcm9wZXJ0eVR5cGUmIHZhbHVlcywgY29uc3QgTGlz
dEl0ZW1UeXBlJiBuZXdJdGVtLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCisg
ICAgTGlzdEl0ZW1UeXBlIHJlcGxhY2VJdGVtVmFsdWVzKGNvbnN0IExpc3RJdGVtVHlwZSYgbmV3
SXRlbSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKLSAgICAgICAg
aWYgKCFjYW5SZXBsYWNlSXRlbSh2YWx1ZXMsIGluZGV4LCBlYykpCisgICAgICAgIGlmICghY2Fu
UmVwbGFjZUl0ZW0oaW5kZXgsIGVjKSkKICAgICAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUo
KTsKIAogICAgICAgICAvLyBTcGVjOiBJZiBuZXdJdGVtIGlzIGFscmVhZHkgaW4gYSBsaXN0LCBp
dCBpcyByZW1vdmVkIGZyb20gaXRzIHByZXZpb3VzIGxpc3QgYmVmb3JlIGl0IGlzIGluc2VydGVk
IGludG8gdGhpcyBsaXN0LgogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgaXRlbSBpcyBhbHJlYWR5
IGluIHRoaXMgbGlzdCwgbm90ZSB0aGF0IHRoZSBpbmRleCBvZiB0aGUgaXRlbSB0byByZXBsYWNl
IGlzIGJlZm9yZSB0aGUgcmVtb3ZhbCBvZiB0aGUgaXRlbS4KICAgICAgICAgcHJvY2Vzc0luY29t
aW5nTGlzdEl0ZW1WYWx1ZShuZXdJdGVtLCAmaW5kZXgpOwogCi0gICAgICAgIGlmICh2YWx1ZXMu
aXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKSB7CiAgICAgICAg
ICAgICAvLyAnbmV3SXRlbScgYWxyZWFkeSBsaXZlZCBpbiBvdXIgbGlzdCwgd2UgcmVtb3ZlZCBp
dCwgYW5kIG5vdyB3ZSdyZSBlbXB0eSwgd2hpY2ggbWVhbnMgdGhlcmUncyBub3RoaW5nIHRvIHJl
cGxhY2UuCiAgICAgICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogICAgICAgICAgICAgcmV0
dXJuIExpc3RJdGVtVHlwZSgpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSB2
YWx1ZSBhdCB0aGUgZGVzaXJlZCBwb3NpdGlvbiAnaW5kZXgnLiAKLSAgICAgICAgdmFsdWVzLmF0
KGluZGV4KSA9IG5ld0l0ZW07CisgICAgICAgIG1fdmFsdWVzLT5hdChpbmRleCkgPSBuZXdJdGVt
OwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gbmV3SXRlbTsKICAg
ICB9CiAKLSAgICBQYXNzTGlzdEl0ZW1UZWFyT2ZmIHJlcGxhY2VJdGVtVmFsdWVzQW5kV3JhcHBl
cnMoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKiBhbmltYXRlZExpc3QsIFBhc3NMaXN0SXRl
bVRlYXJPZmYgcGFzc05ld0l0ZW0sIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykK
KyAgICBQYXNzTGlzdEl0ZW1UZWFyT2ZmIHJlcGxhY2VJdGVtVmFsdWVzQW5kV3JhcHBlcnMoUGFz
c0xpc3RJdGVtVGVhck9mZiBwYXNzTmV3SXRlbSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGFuaW1hdGVkTGlzdCk7Ci0gICAgICAgIFBy
b3BlcnR5VHlwZSYgdmFsdWVzID0gYW5pbWF0ZWRMaXN0LT52YWx1ZXMoKTsKLSAgICAgICAgaWYg
KCFjYW5SZXBsYWNlSXRlbSh2YWx1ZXMsIGluZGV4LCBlYykpCisgICAgICAgIEFTU0VSVChtX3dy
YXBwZXJzKTsKKyAgICAgICAgaWYgKCFjYW5SZXBsYWNlSXRlbShpbmRleCwgZWMpKQogICAgICAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgLy8gTm90IHNwZWNpZmllZCwgYnV0IEZGL09wZXJh
IGRvIGl0IHRoaXMgd2F5LCBhbmQgaXQncyBqdXN0IHNhbmUuCkBAIC0yODQsNDEgKzI5Nyw0MCBA
QCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCi0gICAgICAgIExp
c3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzID0gYW5pbWF0ZWRMaXN0LT53cmFwcGVycygpOwotICAg
ICAgICBBU1NFUlQodmFsdWVzLnNpemUoKSA9PSB3cmFwcGVycy5zaXplKCkpOworICAgICAgICBB
U1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAgICBS
ZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtID0gcGFzc05ld0l0ZW07CiAKICAgICAgICAg
Ly8gU3BlYzogSWYgbmV3SXRlbSBpcyBhbHJlYWR5IGluIGEgbGlzdCwgaXQgaXMgcmVtb3ZlZCBm
cm9tIGl0cyBwcmV2aW91cyBsaXN0IGJlZm9yZSBpdCBpcyBpbnNlcnRlZCBpbnRvIHRoaXMgbGlz
dC4KICAgICAgICAgLy8gU3BlYzogSWYgdGhlIGl0ZW0gaXMgYWxyZWFkeSBpbiB0aGlzIGxpc3Qs
IG5vdGUgdGhhdCB0aGUgaW5kZXggb2YgdGhlIGl0ZW0gdG8gcmVwbGFjZSBpcyBiZWZvcmUgdGhl
IHJlbW92YWwgb2YgdGhlIGl0ZW0uCiAgICAgICAgIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3Jh
cHBlcihuZXdJdGVtLCAmaW5kZXgpOwogCi0gICAgICAgIGlmICh2YWx1ZXMuaXNFbXB0eSgpKSB7
Ci0gICAgICAgICAgICBBU1NFUlQod3JhcHBlcnMuaXNFbXB0eSgpKTsKKyAgICAgICAgaWYgKG1f
dmFsdWVzLT5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzLT5pc0Vt
cHR5KCkpOwogICAgICAgICAgICAgLy8gJ3Bhc3NOZXdJdGVtJyBhbHJlYWR5IGxpdmVkIGluIG91
ciBsaXN0LCB3ZSByZW1vdmVkIGl0LCBhbmQgbm93IHdlJ3JlIGVtcHR5LCB3aGljaCBtZWFucyB0
aGVyZSdzIG5vdGhpbmcgdG8gcmVwbGFjZS4KICAgICAgICAgICAgIGVjID0gSU5ERVhfU0laRV9F
UlI7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCiAgICAgICAgIC8vIERldGFj
aCB0aGUgZXhpc3Rpbmcgd3JhcHBlci4KLSAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4g
b2xkSXRlbSA9IHdyYXBwZXJzLmF0KGluZGV4KTsKKyAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVh
ck9mZj4gb2xkSXRlbSA9IG1fd3JhcHBlcnMtPmF0KGluZGV4KTsKICAgICAgICAgaWYgKG9sZEl0
ZW0pCiAgICAgICAgICAgICBvbGRJdGVtLT5kZXRhY2hXcmFwcGVyKCk7CiAKICAgICAgICAgLy8g
VXBkYXRlIHRoZSB2YWx1ZSBhbmQgdGhlIHdyYXBwZXIgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24g
J2luZGV4Jy4gCi0gICAgICAgIHZhbHVlcy5hdChpbmRleCkgPSBuZXdJdGVtLT5wcm9wZXJ0eVJl
ZmVyZW5jZSgpOwotICAgICAgICB3cmFwcGVycy5hdChpbmRleCkgPSBuZXdJdGVtOworICAgICAg
ICBtX3ZhbHVlcy0+YXQoaW5kZXgpID0gbmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKTsKKyAg
ICAgICAgbV93cmFwcGVycy0+YXQoaW5kZXgpID0gbmV3SXRlbTsKIAogICAgICAgICBjb21taXRD
aGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIG5ld0l0ZW0ucmVsZWFzZSgpOwogICAgIH0KIAogICAg
IC8vIFNWR0xpc3Q6OnJlbW92ZUl0ZW0oKQotICAgIGJvb2wgY2FuUmVtb3ZlSXRlbShQcm9wZXJ0
eVR5cGUmIHZhbHVlcywgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQorICAgIGJv
b2wgY2FuUmVtb3ZlSXRlbSh1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
ewogICAgICAgICBpZiAoIWNhbkFsdGVyTGlzdChlYykpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAgICAgaWYgKGluZGV4ID49IHZhbHVlcy5zaXplKCkpIHsKKyAgICAgICAgaWYg
KGluZGV4ID49IG1fdmFsdWVzLT5zaXplKCkpIHsKICAgICAgICAgICAgIGVjID0gSU5ERVhfU0la
RV9FUlI7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTMyNiwxMyAr
MzM4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgTGlz
dEl0ZW1UeXBlIHJlbW92ZUl0ZW1WYWx1ZXMoUHJvcGVydHlUeXBlJiB2YWx1ZXMsIHVuc2lnbmVk
IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICBMaXN0SXRlbVR5cGUgcmVtb3ZlSXRlbVZh
bHVlcyh1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICBp
ZiAoIWNhblJlbW92ZUl0ZW0odmFsdWVzLCBpbmRleCwgZWMpKQorICAgICAgICBpZiAoIWNhblJl
bW92ZUl0ZW0oaW5kZXgsIGVjKSkKICAgICAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUoKTsK
IAotICAgICAgICBMaXN0SXRlbVR5cGUgb2xkSXRlbSA9IHZhbHVlcy5hdChpbmRleCk7Ci0gICAg
ICAgIHZhbHVlcy5yZW1vdmUoaW5kZXgpOworICAgICAgICBMaXN0SXRlbVR5cGUgb2xkSXRlbSA9
IG1fdmFsdWVzLT5hdChpbmRleCk7CisgICAgICAgIG1fdmFsdWVzLT5yZW1vdmUoaW5kZXgpOwog
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gb2xkSXRlbTsKQEAgLTM0
MCwyOSArMzUyLDI3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NMaXN0SXRlbVRlYXJPZmYgcmVtb3Zl
SXRlbVZhbHVlc0FuZFdyYXBwZXJzKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiogYW5pbWF0
ZWRMaXN0LCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAg
ICBBU1NFUlQoYW5pbWF0ZWRMaXN0KTsKLSAgICAgICAgUHJvcGVydHlUeXBlJiB2YWx1ZXMgPSBh
bmltYXRlZExpc3QtPnZhbHVlcygpOwotICAgICAgICBpZiAoIWNhblJlbW92ZUl0ZW0odmFsdWVz
LCBpbmRleCwgZWMpKQorICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CisgICAgICAgIGlmICgh
Y2FuUmVtb3ZlSXRlbShpbmRleCwgZWMpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAg
ICAgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMgPSBhbmltYXRlZExpc3QtPndyYXBwZXJzKCk7
Ci0gICAgICAgIEFTU0VSVCh2YWx1ZXMuc2l6ZSgpID09IHdyYXBwZXJzLnNpemUoKSk7CisgICAg
ICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAg
ICAgICAgLy8gRGV0YWNoIHRoZSBleGlzdGluZyB3cmFwcGVyLgotICAgICAgICBSZWZQdHI8TGlz
dEl0ZW1UZWFyT2ZmPiBvbGRJdGVtID0gd3JhcHBlcnMuYXQoaW5kZXgpOworICAgICAgICBSZWZQ
dHI8TGlzdEl0ZW1UZWFyT2ZmPiBvbGRJdGVtID0gbV93cmFwcGVycy0+YXQoaW5kZXgpOwogICAg
ICAgICBpZiAoIW9sZEl0ZW0pCi0gICAgICAgICAgICBvbGRJdGVtID0gTGlzdEl0ZW1UZWFyT2Zm
OjpjcmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2YWx1ZXMuYXQoaW5kZXgpKTsK
KyAgICAgICAgICAgIG9sZEl0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExp
c3QsIFVuZGVmaW5lZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRleCkpOwogCiAgICAgICAgIG9sZEl0
ZW0tPmRldGFjaFdyYXBwZXIoKTsKLSAgICAgICAgd3JhcHBlcnMucmVtb3ZlKGluZGV4KTsKLSAg
ICAgICAgdmFsdWVzLnJlbW92ZShpbmRleCk7CisgICAgICAgIG1fd3JhcHBlcnMtPnJlbW92ZShp
bmRleCk7CisgICAgICAgIG1fdmFsdWVzLT5yZW1vdmUoaW5kZXgpOwogCiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogICAgICAgICByZXR1cm4gb2xkSXRlbS5yZWxlYXNlKCk7CiAgICAgfQogCiAg
ICAgLy8gU1ZHTGlzdDo6YXBwZW5kSXRlbSgpCi0gICAgTGlzdEl0ZW1UeXBlIGFwcGVuZEl0ZW1W
YWx1ZXMoUHJvcGVydHlUeXBlJiB2YWx1ZXMsIGNvbnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwg
RXhjZXB0aW9uQ29kZSYgZWMpCisgICAgTGlzdEl0ZW1UeXBlIGFwcGVuZEl0ZW1WYWx1ZXMoY29u
c3QgTGlzdEl0ZW1UeXBlJiBuZXdJdGVtLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7CiAgICAg
ICAgIGlmICghY2FuQWx0ZXJMaXN0KGVjKSkKICAgICAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5
cGUoKTsKQEAgLTM3MSwxNSArMzgxLDE1IEBAIHB1YmxpYzoKICAgICAgICAgcHJvY2Vzc0luY29t
aW5nTGlzdEl0ZW1WYWx1ZShuZXdJdGVtLCAwKTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIHZh
bHVlIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIHZhbHVlcy5hcHBlbmQobmV3SXRl
bSk7CisgICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbSk7CiAKICAgICAgICAgY29tbWl0
Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBuZXdJdGVtOwogICAgIH0KIAotICAgIFBhc3NMaXN0
SXRlbVRlYXJPZmYgYXBwZW5kSXRlbVZhbHVlc0FuZFdyYXBwZXJzKEFuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZiogYW5pbWF0ZWRMaXN0LCBQYXNzTGlzdEl0ZW1UZWFyT2ZmIHBhc3NOZXdJdGVt
LCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICBQYXNzTGlzdEl0ZW1UZWFyT2ZmIGFwcGVuZEl0ZW1W
YWx1ZXNBbmRXcmFwcGVycyhQYXNzTGlzdEl0ZW1UZWFyT2ZmIHBhc3NOZXdJdGVtLCBFeGNlcHRp
b25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIEFTU0VSVChhbmltYXRlZExpc3QpOworICAgICAg
ICBBU1NFUlQobV93cmFwcGVycyk7CiAgICAgICAgIGlmICghY2FuQWx0ZXJMaXN0KGVjKSkKICAg
ICAgICAgICAgIHJldHVybiAwOwogCkBAIC0zODksMTggKzM5OSwxNSBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCi0gICAgICAgIFByb3BlcnR5VHlwZSYgdmFs
dWVzID0gYW5pbWF0ZWRMaXN0LT52YWx1ZXMoKTsKLSAgICAgICAgTGlzdFdyYXBwZXJDYWNoZSYg
d3JhcHBlcnMgPSBhbmltYXRlZExpc3QtPndyYXBwZXJzKCk7Ci0KICAgICAgICAgUmVmUHRyPExp
c3RJdGVtVGVhck9mZj4gbmV3SXRlbSA9IHBhc3NOZXdJdGVtOwotICAgICAgICBBU1NFUlQodmFs
dWVzLnNpemUoKSA9PSB3cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQobV92YWx1ZXMt
PnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIG5l
d0l0ZW0gaXMgYWxyZWFkeSBpbiBhIGxpc3QsIGl0IGlzIHJlbW92ZWQgZnJvbSBpdHMgcHJldmlv
dXMgbGlzdCBiZWZvcmUgaXQgaXMgaW5zZXJ0ZWQgaW50byB0aGlzIGxpc3QuCiAgICAgICAgIHBy
b2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihuZXdJdGVtLCAwKTsKIAogICAgICAgICAvLyBB
cHBlbmQgdGhlIHZhbHVlIGFuZCB3cmFwcGVyIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAg
ICAgIHZhbHVlcy5hcHBlbmQobmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7Ci0gICAgICAg
IHdyYXBwZXJzLmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJ
dGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgbV93cmFwcGVycy0+YXBwZW5kKG5l
d0l0ZW0pOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gbmV3SXRl
bS5yZWxlYXNlKCk7CkBAIC00MDgsOSArNDE1LDIzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUoKSBjb25zdCB7IHJldHVybiBtX3JvbGU7IH0KIAorICAgIFBy
b3BlcnR5VHlwZSYgdmFsdWVzKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Cisg
ICAgICAgIHJldHVybiAqbV92YWx1ZXM7CisgICAgfQorCisgICAgTGlzdFdyYXBwZXJDYWNoZSYg
d3JhcHBlcnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOworICAg
ICAgICByZXR1cm4gKm1fd3JhcHBlcnM7CisgICAgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTGlz
dFByb3BlcnR5KFNWR1Byb3BlcnR5Um9sZSByb2xlKQorICAgIFNWR0xpc3RQcm9wZXJ0eShTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUq
IHdyYXBwZXJzKQogICAgICAgICA6IG1fcm9sZShyb2xlKQorICAgICAgICAsIG1fdmFsdWVzKCZ2
YWx1ZXMpCisgICAgICAgICwgbV93cmFwcGVycyh3cmFwcGVycykKICAgICB7CiAgICAgfQogCkBA
IC00MTgsOCArNDM5LDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzSW5j
b21pbmdMaXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgdW5zaWduZWQq
IGluZGV4VG9Nb2RpZnkpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0luY29taW5nTGlz
dEl0ZW1XcmFwcGVyKFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+JiBuZXdJdGVtLCB1bnNpZ25lZCog
aW5kZXhUb01vZGlmeSkgPSAwOwogCi1wcml2YXRlOgogICAgIFNWR1Byb3BlcnR5Um9sZSBtX3Jv
bGU7CisgICAgUHJvcGVydHlUeXBlKiBtX3ZhbHVlczsKKyAgICBMaXN0V3JhcHBlckNhY2hlKiBt
X3dyYXBwZXJzOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oCmluZGV4IDVhNzE3MzU4N2JiN2ZlZGQzOWM5
ZDU1ZDliODcyNmQyNjY2ODMwNGIuLjQxNWRmODIyYjE0OTUwMjUwZTNiMjhkMDhiNmEyMmRkZDdm
Njc5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdM
aXN0UHJvcGVydHlUZWFyT2ZmLmgKQEAgLTI5LDYgKzI5LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
UHJvcGVydHlUeXBlPgogY2xhc3MgU1ZHTGlzdFByb3BlcnR5VGVhck9mZiA6IHB1YmxpYyBTVkdM
aXN0UHJvcGVydHk8UHJvcGVydHlUeXBlPiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBTVkdMaXN0
UHJvcGVydHk8UHJvcGVydHlUeXBlPiBCYXNlOworICAgIHR5cGVkZWYgU1ZHTGlzdFByb3BlcnR5
VGVhck9mZjxQcm9wZXJ0eVR5cGU+IFNlbGY7CiAKICAgICB0eXBlZGVmIHR5cGVuYW1lIFNWR1By
b3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46Okxpc3RJdGVtVHlwZSBMaXN0SXRlbVR5cGU7CiAg
ICAgdHlwZWRlZiBTVkdQcm9wZXJ0eVRlYXJPZmY8TGlzdEl0ZW1UeXBlPiBMaXN0SXRlbVRlYXJP
ZmY7CkBAIC0zNiwyOCArMzcsMzEgQEAgcHVibGljOgogICAgIHR5cGVkZWYgU1ZHQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
PFByb3BlcnR5VHlwZT46Okxpc3RXcmFwcGVyQ2FjaGUgTGlzdFdyYXBwZXJDYWNoZTsKIAotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPiA+
IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYqIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlKQorICAgIHVzaW5nIEJhc2U6Om1fdmFsdWVzOworICAgIHVzaW5n
IEJhc2U6Om1fd3JhcHBlcnM7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWxmPiBjcmVhdGUo
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkUHJvcGVydHkpOwotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihh
bmltYXRlZFByb3BlcnR5LCByb2xlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Vs
ZihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiAg
ICAgaW50IHJlbW92ZUl0ZW1Gcm9tTGlzdChMaXN0SXRlbVRlYXJPZmYqIHJlbW92ZUl0ZW0sIGJv
b2wgc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICB7Ci0gICAgICAgIFByb3BlcnR5VHlw
ZSYgdmFsdWVzID0gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKTsKLSAgICAgICAgTGlzdFdy
YXBwZXJDYWNoZSYgd3JhcHBlcnMgPSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCk7Cisg
ICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CisgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAog
ICAgICAgICAvLyBMb29rdXAgaXRlbSBpbiBjYWNoZSBhbmQgcmVtb3ZlIGl0cyBjb3JyZXNwb25k
aW5nIHdyYXBwZXIuCi0gICAgICAgIHVuc2lnbmVkIHNpemUgPSB3cmFwcGVycy5zaXplKCk7Ci0g
ICAgICAgIEFTU0VSVChzaXplID09IHZhbHVlcy5zaXplKCkpOworICAgICAgICB1bnNpZ25lZCBz
aXplID0gbV93cmFwcGVycy0+c2l6ZSgpOworICAgICAgICBBU1NFUlQoc2l6ZSA9PSBtX3ZhbHVl
cy0+c2l6ZSgpKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkg
ewotICAgICAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4mIGl0ZW0gPSB3cmFwcGVycy5h
dChpKTsKKyAgICAgICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+JiBpdGVtID0gbV93cmFw
cGVycy0+YXQoaSk7CiAgICAgICAgICAgICBpZiAoaXRlbSAhPSByZW1vdmVJdGVtKQogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBpdGVtLT5kZXRhY2hXcmFwcGVyKCk7
Ci0gICAgICAgICAgICB3cmFwcGVycy5yZW1vdmUoaSk7Ci0gICAgICAgICAgICB2YWx1ZXMucmVt
b3ZlKGkpOworICAgICAgICAgICAgbV93cmFwcGVycy0+cmVtb3ZlKGkpOworICAgICAgICAgICAg
bV92YWx1ZXMtPnJlbW92ZShpKTsKIAogICAgICAgICAgICAgaWYgKHNob3VsZFN5bmNocm9uaXpl
V3JhcHBlcnMpCiAgICAgICAgICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CkBAIC03MSwxNyArNzUs
MTIgQEAgcHVibGljOgogICAgIC8vIFNWR0xpc3QgQVBJCiAgICAgdm9pZCBjbGVhcihFeGNlcHRp
b25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIEJhc2U6OmNsZWFyVmFsdWVzQW5kV3JhcHBlcnMo
bV9hbmltYXRlZFByb3BlcnR5LmdldCgpLCBlYyk7Ci0gICAgfQotCi0gICAgdW5zaWduZWQgbnVt
YmVyT2ZJdGVtcygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gQmFzZTo6bnVtYmVyT2ZJ
dGVtc1ZhbHVlc0FuZFdyYXBwZXJzKG1fYW5pbWF0ZWRQcm9wZXJ0eS5nZXQoKSk7CisgICAgICAg
IEJhc2U6OmNsZWFyVmFsdWVzQW5kV3JhcHBlcnMoZWMpOwogICAgIH0KIAogICAgIFBhc3NMaXN0
SXRlbVRlYXJPZmYgaW5pdGlhbGl6ZShQYXNzTGlzdEl0ZW1UZWFyT2ZmIHBhc3NOZXdJdGVtLCBF
eGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNlOjppbml0aWFsaXpl
VmFsdWVzQW5kV3JhcHBlcnMobV9hbmltYXRlZFByb3BlcnR5LmdldCgpLCBwYXNzTmV3SXRlbSwg
ZWMpOworICAgICAgICByZXR1cm4gQmFzZTo6aW5pdGlhbGl6ZVZhbHVlc0FuZFdyYXBwZXJzKHBh
c3NOZXdJdGVtLCBlYyk7CiAgICAgfQogCiAgICAgUGFzc0xpc3RJdGVtVGVhck9mZiBnZXRJdGVt
KHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTkxLDEyICs5MCwxMiBAQCBw
dWJsaWM6CiAKICAgICBQYXNzTGlzdEl0ZW1UZWFyT2ZmIGluc2VydEl0ZW1CZWZvcmUoUGFzc0xp
c3RJdGVtVGVhck9mZiBwYXNzTmV3SXRlbSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2U6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXNB
bmRXcmFwcGVycyhtX2FuaW1hdGVkUHJvcGVydHkuZ2V0KCksIHBhc3NOZXdJdGVtLCBpbmRleCwg
ZWMpOworICAgICAgICByZXR1cm4gQmFzZTo6aW5zZXJ0SXRlbUJlZm9yZVZhbHVlc0FuZFdyYXBw
ZXJzKHBhc3NOZXdJdGVtLCBpbmRleCwgZWMpOwogICAgIH0KIAogICAgIFBhc3NMaXN0SXRlbVRl
YXJPZmYgcmVwbGFjZUl0ZW0oUGFzc0xpc3RJdGVtVGVhck9mZiBwYXNzTmV3SXRlbSwgdW5zaWdu
ZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2U6
OnJlcGxhY2VJdGVtVmFsdWVzQW5kV3JhcHBlcnMobV9hbmltYXRlZFByb3BlcnR5LmdldCgpLCBw
YXNzTmV3SXRlbSwgaW5kZXgsIGVjKTsKKyAgICAgICAgcmV0dXJuIEJhc2U6OnJlcGxhY2VJdGVt
VmFsdWVzQW5kV3JhcHBlcnMocGFzc05ld0l0ZW0sIGluZGV4LCBlYyk7CiAgICAgfQogCiAgICAg
UGFzc0xpc3RJdGVtVGVhck9mZiByZW1vdmVJdGVtKHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25D
b2RlJiBlYykKQEAgLTEwNiwzMCArMTA1LDMwIEBAIHB1YmxpYzoKIAogICAgIFBhc3NMaXN0SXRl
bVRlYXJPZmYgYXBwZW5kSXRlbShQYXNzTGlzdEl0ZW1UZWFyT2ZmIHBhc3NOZXdJdGVtLCBFeGNl
cHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNlOjphcHBlbmRJdGVtVmFs
dWVzQW5kV3JhcHBlcnMobV9hbmltYXRlZFByb3BlcnR5LmdldCgpLCBwYXNzTmV3SXRlbSwgZWMp
OworICAgICAgICByZXR1cm4gQmFzZTo6YXBwZW5kSXRlbVZhbHVlc0FuZFdyYXBwZXJzKHBhc3NO
ZXdJdGVtLCBlYyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTGlzdFByb3BlcnR5VGVh
ck9mZihBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYqIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlKQotICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+
KHJvbGUpCisgICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYqIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5
cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgICAgIDogU1ZHTGlz
dFByb3BlcnR5PFByb3BlcnR5VHlwZT4ocm9sZSwgdmFsdWVzLCAmd3JhcHBlcnMpCiAgICAgICAg
ICwgbV9hbmltYXRlZFByb3BlcnR5KGFuaW1hdGVkUHJvcGVydHkpCiAgICAgewogICAgIH0KIAog
ICAgIHZpcnR1YWwgdm9pZCBjb21taXRDaGFuZ2UoKQogICAgIHsKLSAgICAgICAgUHJvcGVydHlU
eXBlJiB2YWx1ZXMgPSBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpOwotICAgICAgICBMaXN0
V3JhcHBlckNhY2hlJiB3cmFwcGVycyA9IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKTsK
KyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwog
CiAgICAgICAgIC8vIFVwZGF0ZSBleGlzdGluZyB3cmFwcGVycywgYXMgdGhlIGluZGV4IGluIHRo
ZSB2YWx1ZXMgbGlzdCBoYXMgY2hhbmdlZC4KLSAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHdyYXBw
ZXJzLnNpemUoKTsKLSAgICAgICAgQVNTRVJUKHNpemUgPT0gdmFsdWVzLnNpemUoKSk7CisgICAg
ICAgIHVuc2lnbmVkIHNpemUgPSBtX3dyYXBwZXJzLT5zaXplKCk7CisgICAgICAgIEFTU0VSVChz
aXplID09IG1fdmFsdWVzLT5zaXplKCkpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiYgaXRl
bSA9IHdyYXBwZXJzLmF0KGkpOworICAgICAgICAgICAgTGlzdEl0ZW1UZWFyT2ZmKiBpdGVtID0g
bV93cmFwcGVycy0+YXQoaSkuZ2V0KCk7CiAgICAgICAgICAgICBpZiAoIWl0ZW0pCiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBpdGVtLT5zZXRBbmltYXRlZFByb3BlcnR5
KG1fYW5pbWF0ZWRQcm9wZXJ0eS5nZXQoKSk7Ci0gICAgICAgICAgICBpdGVtLT5zZXRWYWx1ZSh2
YWx1ZXMuYXQoaSkpOworICAgICAgICAgICAgaXRlbS0+c2V0VmFsdWUobV92YWx1ZXMtPmF0KGkp
KTsKICAgICAgICAgfQogCiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29tbWl0Q2hhbmdl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQYXRoU2Vn
TGlzdFByb3BlcnR5VGVhck9mZi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5jcHAKaW5kZXggYTRlYWY3M2JiOWI0NTliMzQz
ODMzZGY4YjRjZWQyYWE5NzkwNjEzZC4uMjAyMTMwMWQ2MTBhNDZkYWFjZDk1MmYzM2U1ZWJkOWQ1
M2I4NzY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUGF0
aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmNwcApAQCAtMzEsMjMgKzMxLDIy
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVh
ck9mZjo6Y2xlYXIoRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgU1ZHUGF0aFNlZ0xpc3QmIHZh
bHVlcyA9IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7Ci0gICAgaWYgKHZhbHVlcy5pc0Vt
cHR5KCkpCisgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdW5zaWduZWQgc2l6ZSA9IHZhbHVlcy5zaXplKCk7
CisgICAgdW5zaWduZWQgc2l6ZSA9IG1fdmFsdWVzLT5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBMaXN0SXRlbVR5cGUgaXRlbSA9IHZh
bHVlcy5hdChpKTsKKyAgICAgICAgTGlzdEl0ZW1UeXBlIGl0ZW0gPSBtX3ZhbHVlcy0+YXQoaSk7
CiAgICAgICAgIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdXaXRoQ29udGV4dCo+KGl0ZW0uZ2V0KCkp
LT5zZXRDb250ZXh0QW5kUm9sZSgwLCBQYXRoU2VnVW5kZWZpbmVkUm9sZSk7CiAgICAgfQogCi0g
ICAgU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6OkJhc2U6OmNsZWFyVmFsdWVzKHZhbHVl
cywgZWMpOworICAgIFNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmOjpCYXNlOjpjbGVhclZh
bHVlcyhlYyk7CiB9CiAKIFNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmOjpQYXNzTGlzdEl0
ZW1UeXBlIFNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmOjpnZXRJdGVtKHVuc2lnbmVkIGlu
ZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBTVkdQYXRoU2VnTGlzdCYgdmFsdWVzID0g
bV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKTsKLSAgICBMaXN0SXRlbVR5cGUgcmV0dXJuZWRJ
dGVtID0gQmFzZTo6Z2V0SXRlbVZhbHVlcyh2YWx1ZXMsIGluZGV4LCBlYyk7CisgICAgTGlzdEl0
ZW1UeXBlIHJldHVybmVkSXRlbSA9IEJhc2U6OmdldEl0ZW1WYWx1ZXMoaW5kZXgsIGVjKTsKICAg
ICBpZiAocmV0dXJuZWRJdGVtKSB7CiAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxTVkdQYXRo
U2VnV2l0aENvbnRleHQqPihyZXR1cm5lZEl0ZW0uZ2V0KCkpLT5jb250ZXh0RWxlbWVudCgpID09
IGNvbnRleHRFbGVtZW50KCkpOwogICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNl
Z1dpdGhDb250ZXh0Kj4ocmV0dXJuZWRJdGVtLmdldCgpKS0+cm9sZSgpID09IG1fcGF0aFNlZ1Jv
bGUpOwpAQCAtNTcsOCArNTYsNyBAQCBTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZjo6UGFz
c0xpc3RJdGVtVHlwZSBTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZjo6ZwogCiBTVkdQYXRo
U2VnTGlzdFByb3BlcnR5VGVhck9mZjo6UGFzc0xpc3RJdGVtVHlwZSBTVkdQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhck9mZjo6cmVtb3ZlSXRlbSh1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7Ci0gICAgU1ZHUGF0aFNlZ0xpc3QmIHZhbHVlcyA9IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+
dmFsdWVzKCk7Ci0gICAgU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RJdGVtVHlw
ZSByZW1vdmVkSXRlbSA9IFNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmOjpCYXNlOjpyZW1v
dmVJdGVtVmFsdWVzKHZhbHVlcywgaW5kZXgsIGVjKTsKKyAgICBTVkdQYXRoU2VnTGlzdFByb3Bl
cnR5VGVhck9mZjo6TGlzdEl0ZW1UeXBlIHJlbW92ZWRJdGVtID0gU1ZHUGF0aFNlZ0xpc3RQcm9w
ZXJ0eVRlYXJPZmY6OkJhc2U6OnJlbW92ZUl0ZW1WYWx1ZXMoaW5kZXgsIGVjKTsKICAgICBpZiAo
cmVtb3ZlZEl0ZW0pCiAgICAgICAgIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdXaXRoQ29udGV4dCo+
KHJlbW92ZWRJdGVtLmdldCgpKS0+c2V0Q29udGV4dEFuZFJvbGUoMCwgUGF0aFNlZ1VuZGVmaW5l
ZFJvbGUpOwogICAgIHJldHVybiByZW1vdmVkSXRlbS5yZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9m
Zi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0
eVRlYXJPZmYuaAppbmRleCA5NGFjZGExYzc0NTVjM2UwODk3MmU0Njg5MzFlZjM1ZWQwNDExZTMz
Li4zZmNjZWJmMTk5MWRkYWY4ZjI2NDJjOGEzN2UzNTFmMDYzYmJkN2U4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9m
Zi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1BhdGhTZWdMaXN0UHJv
cGVydHlUZWFyT2ZmLmgKQEAgLTM1LDIzICszNSwyMiBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBT
VkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoU2VnTGlzdD46Okxpc3RJdGVtVHlwZSBMaXN0SXRlbVR5
cGU7CiAgICAgdHlwZWRlZiBQYXNzUmVmUHRyPFNWR1BhdGhTZWc+IFBhc3NMaXN0SXRlbVR5cGU7
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4g
Y3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlKQorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgU1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUsIFNWR1BhdGhTZWdMaXN0JiB2YWx1ZXMs
IExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1h
dGVkUHJvcGVydHkpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1BhdGhTZWdMaXN0
UHJvcGVydHlUZWFyT2ZmKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHBhdGhTZWdSb2xlKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYo
YW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgcGF0aFNlZ1JvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsK
ICAgICB9CiAKICAgICBpbnQgcmVtb3ZlSXRlbUZyb21MaXN0KGNvbnN0IExpc3RJdGVtVHlwZSYg
cmVtb3ZlSXRlbSwgYm9vbCBzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAgIHsKLSAgICAg
ICAgU1ZHUGF0aFNlZ0xpc3QmIHZhbHVlcyA9IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7
Ci0KLSAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHZhbHVlcy5zaXplKCk7CisgICAgICAgIEFTU0VS
VChtX3ZhbHVlcyk7CisgICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3ZhbHVlcy0+c2l6ZSgpOwog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgICAg
ICBMaXN0SXRlbVR5cGUmIGl0ZW0gPSB2YWx1ZXMuYXQoaSk7CisgICAgICAgICAgICBMaXN0SXRl
bVR5cGUmIGl0ZW0gPSBtX3ZhbHVlcy0+YXQoaSk7CiAgICAgICAgICAgICBpZiAoaXRlbSAhPSBy
ZW1vdmVJdGVtKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICB2YWx1
ZXMucmVtb3ZlKGkpOworICAgICAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpKTsKIAogICAgICAg
ICAgICAgaWYgKHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMpCiAgICAgICAgICAgICAgICAgY29t
bWl0Q2hhbmdlKCk7CkBAIC02NSwxMiArNjQsNiBAQCBwdWJsaWM6CiAgICAgLy8gU1ZHTGlzdCBB
UEkKICAgICB2b2lkIGNsZWFyKEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIHVuc2lnbmVkIG51bWJl
ck9mSXRlbXMoKSBjb25zdAotICAgIHsKLSAgICAgICAgU1ZHUGF0aFNlZ0xpc3QmIHZhbHVlcyA9
IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7Ci0gICAgICAgIHJldHVybiBCYXNlOjpudW1i
ZXJPZkl0ZW1zVmFsdWVzKHZhbHVlcyk7Ci0gICAgfQotCiAgICAgUGFzc0xpc3RJdGVtVHlwZSBp
bml0aWFsaXplKFBhc3NMaXN0SXRlbVR5cGUgcGFzc05ld0l0ZW0sIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgIHsKICAgICAgICAgLy8gTm90IHNwZWNpZmllZCwgYnV0IEZGL09wZXJhIGRvIGl0IHRo
aXMgd2F5LCBhbmQgaXQncyBqdXN0IHNhbmUuCkBAIC04MCw4ICs3Myw3IEBAIHB1YmxpYzoKICAg
ICAgICAgfQogCiAgICAgICAgIExpc3RJdGVtVHlwZSBuZXdJdGVtID0gcGFzc05ld0l0ZW07Ci0g
ICAgICAgIFNWR1BhdGhTZWdMaXN0JiB2YWx1ZXMgPSBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVl
cygpOwotICAgICAgICByZXR1cm4gQmFzZTo6aW5pdGlhbGl6ZVZhbHVlcyh2YWx1ZXMsIG5ld0l0
ZW0sIGVjKTsKKyAgICAgICAgcmV0dXJuIEJhc2U6OmluaXRpYWxpemVWYWx1ZXMobmV3SXRlbSwg
ZWMpOwogICAgIH0KIAogICAgIFBhc3NMaXN0SXRlbVR5cGUgZ2V0SXRlbSh1bnNpZ25lZCBpbmRl
eCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtOTUsOCArODcsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0K
IAogICAgICAgICBMaXN0SXRlbVR5cGUgbmV3SXRlbSA9IHBhc3NOZXdJdGVtOwotICAgICAgICBT
VkdQYXRoU2VnTGlzdCYgdmFsdWVzID0gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKTsKLSAg
ICAgICAgcmV0dXJuIEJhc2U6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXModmFsdWVzLCBuZXdJdGVt
LCBpbmRleCwgZWMpOworICAgICAgICByZXR1cm4gQmFzZTo6aW5zZXJ0SXRlbUJlZm9yZVZhbHVl
cyhuZXdJdGVtLCBpbmRleCwgZWMpOwogICAgIH0KIAogICAgIFBhc3NMaXN0SXRlbVR5cGUgcmVw
bGFjZUl0ZW0oUGFzc0xpc3RJdGVtVHlwZSBwYXNzTmV3SXRlbSwgdW5zaWduZWQgaW5kZXgsIEV4
Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTA4LDggKzk5LDcgQEAgcHVibGljOgogICAgICAgICB9CiAK
ICAgICAgICAgTGlzdEl0ZW1UeXBlIG5ld0l0ZW0gPSBwYXNzTmV3SXRlbTsKLSAgICAgICAgU1ZH
UGF0aFNlZ0xpc3QmIHZhbHVlcyA9IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7Ci0gICAg
ICAgIHJldHVybiBCYXNlOjpyZXBsYWNlSXRlbVZhbHVlcyh2YWx1ZXMsIG5ld0l0ZW0sIGluZGV4
LCBlYyk7CisgICAgICAgIHJldHVybiBCYXNlOjpyZXBsYWNlSXRlbVZhbHVlcyhuZXdJdGVtLCBp
bmRleCwgZWMpOwogICAgIH0KIAogICAgIFBhc3NMaXN0SXRlbVR5cGUgcmVtb3ZlSXRlbSh1bnNp
Z25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMTIzLDEzICsxMTMsMTIgQEAgcHVibGlj
OgogICAgICAgICB9CiAKICAgICAgICAgTGlzdEl0ZW1UeXBlIG5ld0l0ZW0gPSBwYXNzTmV3SXRl
bTsKLSAgICAgICAgU1ZHUGF0aFNlZ0xpc3QmIHZhbHVlcyA9IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+
dmFsdWVzKCk7Ci0gICAgICAgIHJldHVybiBCYXNlOjphcHBlbmRJdGVtVmFsdWVzKHZhbHVlcywg
bmV3SXRlbSwgZWMpOworICAgICAgICByZXR1cm4gQmFzZTo6YXBwZW5kSXRlbVZhbHVlcyhuZXdJ
dGVtLCBlYyk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1BhdGhTZWdMaXN0UHJvcGVydHlU
ZWFyT2ZmKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlKQotICAgICAgICA6
IFNWR0xpc3RQcm9wZXJ0eTxTVkdQYXRoU2VnTGlzdD4ocm9sZSkKKyAgICBTVkdQYXRoU2VnTGlz
dFByb3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYqIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwg
U1ZHUGF0aFNlZ0xpc3QmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAg
ICAgIDogU1ZHTGlzdFByb3BlcnR5PFNWR1BhdGhTZWdMaXN0Pihyb2xlLCB2YWx1ZXMsICZ3cmFw
cGVycykKICAgICAgICAgLCBtX2FuaW1hdGVkUHJvcGVydHkoYW5pbWF0ZWRQcm9wZXJ0eSkKICAg
ICAgICAgLCBtX3BhdGhTZWdSb2xlKHBhdGhTZWdSb2xlKQogICAgIHsKQEAgLTEzOSw4ICsxMjgs
OCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZSgpCiAgICAgewot
ICAgICAgICBTVkdQYXRoU2VnTGlzdCYgdmFsdWVzID0gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1
ZXMoKTsKLSAgICAgICAgdmFsdWVzLmNvbW1pdENoYW5nZShtX2FuaW1hdGVkUHJvcGVydHktPmNv
bnRleHRFbGVtZW50KCkpOworICAgICAgICBBU1NFUlQobV92YWx1ZXMpOworICAgICAgICBtX3Zh
bHVlcy0+Y29tbWl0Q2hhbmdlKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSk7
CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUo
Y29uc3QgTGlzdEl0ZW1UeXBlJiBuZXdJdGVtLCB1bnNpZ25lZCogaW5kZXhUb01vZGlmeSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJv
cGVydHlUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNM
aXN0UHJvcGVydHlUZWFyT2ZmLmgKaW5kZXggYTZmMGYyODBiMDdmMjY4NjE3ZWIzMjA4ZWFkNTk4
YjNkYTM2YzhlZi4uODYzNTM3ODgzYzk5NzQyZTdlYzNmYjA2MGExNDFiMzgwMWNiNGJjYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljTGlzdFByb3Bl
cnR5VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRp
Y0xpc3RQcm9wZXJ0eVRlYXJPZmYuaApAQCAtMzMsNiArMzMsOCBAQCBwdWJsaWM6CiAgICAgdHlw
ZWRlZiB0eXBlbmFtZSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+OjpMaXN0SXRlbVR5
cGUgTGlzdEl0ZW1UeXBlOwogICAgIHR5cGVkZWYgU1ZHUHJvcGVydHlUZWFyT2ZmPExpc3RJdGVt
VHlwZT4gTGlzdEl0ZW1UZWFyT2ZmOwogCisgICAgdXNpbmcgQmFzZTo6bV92YWx1ZXM7CisKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5
VHlwZT4gPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIFByb3BlcnR5VHlwZSYg
dmFsdWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKQEAgLTQyLDU1
ICs0NCw1MCBAQCBwdWJsaWM6CiAgICAgLy8gU1ZHTGlzdCBBUEkKICAgICB2b2lkIGNsZWFyKEV4
Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKLSAgICAgICAgQmFzZTo6Y2xlYXJWYWx1ZXMobV92YWx1
ZXMsIGVjKTsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBudW1iZXJPZkl0ZW1zKCkgY29uc3QKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBCYXNlOjpudW1iZXJPZkl0ZW1zVmFsdWVzKG1fdmFsdWVzKTsK
KyAgICAgICAgQmFzZTo6Y2xlYXJWYWx1ZXMoZWMpOwogICAgIH0KIAogICAgIExpc3RJdGVtVHlw
ZSBpbml0aWFsaXplKGNvbnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgewotICAgICAgICByZXR1cm4gQmFzZTo6aW5pdGlhbGl6ZVZhbHVlcyhtX3ZhbHVl
cywgbmV3SXRlbSwgZWMpOworICAgICAgICByZXR1cm4gQmFzZTo6aW5pdGlhbGl6ZVZhbHVlcyhu
ZXdJdGVtLCBlYyk7CiAgICAgfQogCiAgICAgTGlzdEl0ZW1UeXBlIGdldEl0ZW0odW5zaWduZWQg
aW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2U6Omdl
dEl0ZW1WYWx1ZXMobV92YWx1ZXMsIGluZGV4LCBlYyk7CisgICAgICAgIHJldHVybiBCYXNlOjpn
ZXRJdGVtVmFsdWVzKGluZGV4LCBlYyk7CiAgICAgfQogCiAgICAgTGlzdEl0ZW1UeXBlIGluc2Vy
dEl0ZW1CZWZvcmUoY29uc3QgTGlzdEl0ZW1UeXBlJiBuZXdJdGVtLCB1bnNpZ25lZCBpbmRleCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICByZXR1cm4gQmFzZTo6aW5zZXJ0SXRl
bUJlZm9yZVZhbHVlcyhtX3ZhbHVlcywgbmV3SXRlbSwgaW5kZXgsIGVjKTsKKyAgICAgICAgcmV0
dXJuIEJhc2U6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXMobmV3SXRlbSwgaW5kZXgsIGVjKTsKICAg
ICB9CiAKICAgICBMaXN0SXRlbVR5cGUgcmVwbGFjZUl0ZW0oY29uc3QgTGlzdEl0ZW1UeXBlJiBu
ZXdJdGVtLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAg
ICByZXR1cm4gQmFzZTo6cmVwbGFjZUl0ZW1WYWx1ZXMobV92YWx1ZXMsIG5ld0l0ZW0sIGluZGV4
LCBlYyk7CisgICAgICAgIHJldHVybiBCYXNlOjpyZXBsYWNlSXRlbVZhbHVlcyhuZXdJdGVtLCBp
bmRleCwgZWMpOwogICAgIH0KIAogICAgIExpc3RJdGVtVHlwZSByZW1vdmVJdGVtKHVuc2lnbmVk
IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNlOjpy
ZW1vdmVJdGVtVmFsdWVzKG1fdmFsdWVzLCBpbmRleCwgZWMpOworICAgICAgICByZXR1cm4gQmFz
ZTo6cmVtb3ZlSXRlbVZhbHVlcyhpbmRleCwgZWMpOwogICAgIH0KIAogICAgIExpc3RJdGVtVHlw
ZSBhcHBlbmRJdGVtKGNvbnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgewotICAgICAgICByZXR1cm4gQmFzZTo6YXBwZW5kSXRlbVZhbHVlcyhtX3ZhbHVl
cywgbmV3SXRlbSwgZWMpOworICAgICAgICByZXR1cm4gQmFzZTo6YXBwZW5kSXRlbVZhbHVlcyhu
ZXdJdGVtLCBlYyk7CiAgICAgfQogCiBwcml2YXRlOgogICAgIFNWR1N0YXRpY0xpc3RQcm9wZXJ0
eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIFByb3BlcnR5VHlwZSYgdmFsdWVz
KQotICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+KFVuZGVmaW5lZFJvbGUp
CisgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5PFByb3BlcnR5VHlwZT4oVW5kZWZpbmVkUm9sZSwg
dmFsdWVzLCAwKQogICAgICAgICAsIG1fY29udGV4dEVsZW1lbnQoY29udGV4dEVsZW1lbnQpCi0g
ICAgICAgICwgbV92YWx1ZXModmFsdWVzKQogICAgIHsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgY29tbWl0Q2hhbmdlKCkKICAgICB7Ci0gICAgICAgIG1fdmFsdWVzLmNvbW1pdENoYW5nZSht
X2NvbnRleHRFbGVtZW50LmdldCgpKTsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICAg
ICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZShtX2NvbnRleHRFbGVtZW50LmdldCgpKTsKICAgICB9
CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShjb25zdCBM
aXN0SXRlbVR5cGUmLCB1bnNpZ25lZCopCkBAIC0xMDUsNyArMTAyLDYgQEAgcHJpdmF0ZToKIAog
cHJpdmF0ZToKICAgICBSZWZQdHI8U1ZHRWxlbWVudD4gbV9jb250ZXh0RWxlbWVudDsKLSAgICBQ
cm9wZXJ0eVR5cGUmIG1fdmFsdWVzOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9m
Zi5oCmluZGV4IGU0OTZjODE4ZDFiMTJkNzZiYmU5YjNlOGFlMWI3MWNiZTQ2Y2RiNTguLjdhYzEy
NGYyYTQ3NzFjZjAzMDVmNWZlNDJmZTUyZmZjMmZjZTkwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1RyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdUcmFuc2Zvcm1MaXN0UHJvcGVy
dHlUZWFyT2ZmLmgKQEAgLTMyLDQ5ICszMiw0OCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBTVkdB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdD4gQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmOwogICAgIHR5cGVkZWYgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmPFNWR1RyYW5zZm9ybUxpc3Q+OjpMaXN0V3JhcHBlckNhY2hlIExpc3RXcmFwcGVyQ2FjaGU7
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5z
Zm9ybUxpc3Q+ID4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiogYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZH
TGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0PiA+IGNyZWF0ZShBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYqIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBTVkdUcmFuc2Zvcm1MaXN0JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkUHJvcGVydHkpOwotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNWR1RyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYoYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1RyYW5zZm9ybUxp
c3RQcm9wZXJ0eVRlYXJPZmYoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVy
cykpOwogICAgIH0KIAogICAgIFBhc3NSZWZQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5z
Zm9ybT4gPiBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KFNWR1Byb3BlcnR5VGVhck9mZjxT
VkdNYXRyaXg+KiBtYXRyaXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKKyAgICAgICAgQVNT
RVJUKG1fdmFsdWVzKTsKICAgICAgICAgaWYgKCFtYXRyaXgpIHsKICAgICAgICAgICAgIGVjID0g
VFlQRV9NSVNNQVRDSF9FUlI7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQotICAg
ICAgICBTVkdUcmFuc2Zvcm1MaXN0JiB2YWx1ZXMgPSBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVl
cygpOwotICAgICAgICByZXR1cm4gU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybT46OmNy
ZWF0ZSh2YWx1ZXMuY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgtPnByb3BlcnR5
UmVmZXJlbmNlKCkpKTsKKyAgICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFu
c2Zvcm0+OjpjcmVhdGUobV92YWx1ZXMtPmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgobWF0
cml4LT5wcm9wZXJ0eVJlZmVyZW5jZSgpKSk7CiAgICAgfQogCiAgICAgUGFzc1JlZlB0cjxTVkdQ
cm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtPiA+IGNvbnNvbGlkYXRlKEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICAgICAgQVNTRVJUKG1f
d3JhcHBlcnMpOwogICAgICAgICBpZiAoIWNhbkFsdGVyTGlzdChlYykpCiAgICAgICAgICAgICBy
ZXR1cm4gMDsKIAotICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0JiB2YWx1ZXMgPSBtX2FuaW1hdGVk
UHJvcGVydHktPnZhbHVlcygpOwotICAgICAgICBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycyA9
IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKTsKLSAgICAgICAgQVNTRVJUKHZhbHVlcy5z
aXplKCkgPT0gd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXpl
KCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgbGlz
dCB3YXMgZW1wdHksIHRoZW4gYSB2YWx1ZSBvZiBudWxsIGlzIHJldHVybmVkLgotICAgICAgICBp
ZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPmRldGFj
aExpc3RXcmFwcGVycygwKTsKLSAgICAgICAgUmVmUHRyPFNWR1Byb3BlcnR5VGVhck9mZjxTVkdU
cmFuc2Zvcm0+ID4gd3JhcHBlciA9IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm0+Ojpj
cmVhdGUodmFsdWVzLmNvbnNvbGlkYXRlKCkpOwotICAgICAgICB3cmFwcGVycy5hcHBlbmQod3Jh
cHBlcik7CisgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKKyAgICAgICAgUmVmUHRyPFNW
R1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm0+ID4gd3JhcHBlciA9IFNWR1Byb3BlcnR5VGVh
ck9mZjxTVkdUcmFuc2Zvcm0+OjpjcmVhdGUobV92YWx1ZXMtPmNvbnNvbGlkYXRlKCkpOworICAg
ICAgICBtX3dyYXBwZXJzLT5hcHBlbmQod3JhcHBlcik7CiAKLSAgICAgICAgQVNTRVJUKHZhbHVl
cy5zaXplKCkgPT0gd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5z
aXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKICAgICAgICAgcmV0dXJuIHdyYXBwZXIucmVs
ZWFzZSgpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdUcmFuc2Zvcm1MaXN0UHJvcGVydHlU
ZWFyT2ZmKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUpCi0gICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdU
cmFuc2Zvcm1MaXN0PihhbmltYXRlZFByb3BlcnR5LCByb2xlKQorICAgIFNWR1RyYW5zZm9ybUxp
c3RQcm9wZXJ0eVRlYXJPZmYoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtTGlzdCYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICAgICAgOiBTVkdMaXN0UHJvcGVydHlUZWFy
T2ZmPFNWR1RyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3Jh
cHBlcnMpCiAgICAgewogICAgIH0KLQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJmYzFlYmEzNzMxMDQxNzAz
ZjExNmJiOGU1NTBkMzRjMjYyNjg2MzkuLmVkOTExMjIwOTM0ZGIxZTRjNWVlNmRjNjBkMmIyZTIx
NTU0ZTc5NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMi0wMy0xMyAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KKworICAgICAgICBFbmFibGUgYW5pbVZhbCBz
dXBwb3J0IGZvciBTVkdMZW5ndGhMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MDc1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucyBhZnRlciB0dXJuaW5nIG9u
IGFuaW1WYWwgc3VwcG9ydCBmb3IgU1ZHTGVuZ3RoTGlzdC4KKworICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi0xLmpzOgorICAgICAg
ICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAg
ICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlv
bi0yLmpzOgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAg
KHNhbXBsZTMpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5n
dGhsaXN0LWFuaW1hdGlvbi0zLmpzOgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1w
bGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi00LmpzOgorICAgICAgICAoc2FtcGxlMSk6
CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi01LmpzOgorICAg
ICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgor
ICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTEtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9u
LTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3Qt
YW5pbWF0aW9uLTMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aGxpc3QtYW5pbWF0aW9uLTQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTUtZXhwZWN0ZWQudHh0OgorCiAyMDEyLTAzLTEz
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCBza2lwIG5ldyBmYWlsaW5nIHRlc3Qgb24gR1RLLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9u
LTEuanMgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
bGlzdC1hbmltYXRpb24tMS5qcwppbmRleCBiNDM1OGQxMmUyODNiNjAwYWE0MWZlYTc2YzNhNTAw
NzEyNzM5ZmViLi42MTBkYTJhMTc2MjYwN2JhZjkyMGM0M2I5ZjlhYzNlNDYwMzBhOGY5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
bGlzdC1hbmltYXRpb24tMS5qcworKysgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMS5qcwpAQCAtMjEsMjQgKzIxLDQ1IEBA
IHRleHQuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7CiAKIC8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CiBm
dW5jdGlvbiBzYW1wbGUxKCkgeworICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5udW1iZXJP
Zkl0ZW1zIiwgIjQiKTsKICAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52
YWx1ZSIsICI1MCIpOwogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZh
bHVlIiwgIjcwIik7CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFs
dWUiLCAiOTAiKTsKICAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1
ZSIsICIxMTAiKTsKKworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1z
IiwgIjQiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSIs
ICI1MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIiwg
IjcwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUiLCAi
OTAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSIsICIx
MTAiKTsKIH0KIAogZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZSgidGV4dC54LmFu
aW1WYWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFs
LmdldEl0ZW0oMCkudmFsdWUiLCAiNTUiKTsKICAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwu
Z2V0SXRlbSgxKS52YWx1ZSIsICI4MCIpOwogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5n
ZXRJdGVtKDIpLnZhbHVlIiwgIjEwNSIpOwogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5n
ZXRJdGVtKDMpLnZhbHVlIiwgIjEzMCIpOworCisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFs
Lm51bWJlck9mSXRlbXMiLCAiNCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJ
dGVtKDApLnZhbHVlIiwgIjUwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0
ZW0oMSkudmFsdWUiLCAiNzAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRl
bSgyKS52YWx1ZSIsICI5MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVt
KDMpLnZhbHVlIiwgIjExMCIpOwogfQogCiBmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3Vs
ZEJlKCJ0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1zIiwgIjQiKTsKICAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIiwgIjYwIik7CiAgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI5
MCIpOwogICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInRleHQueC5hbmltVmFsLmdldEl0ZW0oMiku
dmFsdWUiLCAiMTIwIik7CiAgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1WYWwu
Z2V0SXRlbSgzKS52YWx1ZSIsICIxNTAiKTsKKworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZh
bC5udW1iZXJPZkl0ZW1zIiwgIjQiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0
SXRlbSgwKS52YWx1ZSIsICI1MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJ
dGVtKDEpLnZhbHVlIiwgIjcwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0
ZW0oMikudmFsdWUiLCAiOTAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRl
bSgzKS52YWx1ZSIsICIxMTAiKTsKIH0KIAogZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
bGlzdC1hbmltYXRpb24tMi5qcyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi0yLmpzCmluZGV4IDk1MjgwNDZkMjcxMDIxY2Fm
MDc0MDY2YjY2MDRiMDYxMTdlMGRhZmEuLjFkMjQwYmE1NmU2YzdmM2NlM2UxODk0N2FlYWUxZDVl
ZWFhMTkwZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi0yLmpzCisrKyBiL0xheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi0yLmpzCkBAIC0y
MSwyNCArMjEsNDUgQEAgdGV4dC5hcHBlbmRDaGlsZChhbmltYXRlKTsKIAogLy8gU2V0dXAgYW5p
bWF0aW9uIHRlc3QKIGZ1bmN0aW9uIHNhbXBsZTEoKSB7Ci0Jc2hvdWxkQmUoInRleHQueC5hbmlt
VmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsKLQlzaG91bGRCZSgidGV4dC54LmFuaW1WYWwu
Z2V0SXRlbSgxKS52YWx1ZSIsICI3MCIpOwotCXNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJ
dGVtKDIpLnZhbHVlIiwgIjkwIik7Ci0Jc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0o
MykudmFsdWUiLCAiMTEwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLm51bWJlck9m
SXRlbXMiLCAiNCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZh
bHVlIiwgIjUwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0oMSkudmFs
dWUiLCAiNzAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgyKS52YWx1
ZSIsICI5MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDMpLnZhbHVl
IiwgIjExMCIpOworCisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMi
LCAiNCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIiwg
IjUwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFsdWUiLCAi
NzAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSIsICI5
MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIiwgIjEx
MCIpOwogfQogCiBmdW5jdGlvbiBzYW1wbGUyKCkgewotCXNob3VsZEJlQ2xvc2VFbm91Z2goInRl
eHQueC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiODEuNyIpOwotCXNob3VsZEJlQ2xvc2VF
bm91Z2goInRleHQueC5hbmltVmFsLmdldEl0ZW0oMSkudmFsdWUiLCAiNzUiKTsKLQlzaG91bGRC
ZUNsb3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIiwgIjE0NC41Iik7
Ci0Jc2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSIs
ICIxOTcuMyIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1zIiwg
IjQiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDAp
LnZhbHVlIiwgIjgxLjciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZh
bC5nZXRJdGVtKDEpLnZhbHVlIiwgIjc1Iik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgidGV4
dC54LmFuaW1WYWwuZ2V0SXRlbSgyKS52YWx1ZSIsICIxNDQuNSIpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUiLCAiMTk3LjMiKTsKKwor
ICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIiwgIjQiKTsKKyAgICBz
aG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSIsICI1MCIpOworICAgIHNo
b3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIiwgIjcwIik7CisgICAgc2hv
dWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUiLCAiOTAiKTsKKyAgICBzaG91
bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSIsICIxMTAiKTsKIH0KIAogZnVu
Y3Rpb24gc2FtcGxlMygpIHsKLQlzaG91bGRCZUNsb3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5n
ZXRJdGVtKDApLnZhbHVlIiwgIjExMy40Iik7Ci0Jc2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54
LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI4MCIpOwotCXNob3VsZEJlQ2xvc2VFbm91Z2go
InRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFsdWUiLCAiMTAwIik7Ci0Jc2hvdWxkQmVDbG9z
ZUVub3VnaCgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSIsICIzODQiKTsKKyAgICBz
aG91bGRCZSgidGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSIsICIxMTMuNCIp
OworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInRleHQueC5hbmltVmFsLmdldEl0ZW0oMSkudmFs
dWUiLCAiODAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5nZXRJ
dGVtKDIpLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInRleHQueC5h
bmltVmFsLmdldEl0ZW0oMykudmFsdWUiLCAiMzg0Iik7CisKKyAgICBzaG91bGRCZSgidGV4dC54
LmJhc2VWYWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNl
VmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VW
YWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI3MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZh
bC5nZXRJdGVtKDIpLnZhbHVlIiwgIjkwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFs
LmdldEl0ZW0oMykudmFsdWUiLCAiMTEwIik7CiB9CiAKIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkg
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2
Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTMuanMgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMy5qcwppbmRleCAwNjRmNGU4YjE0
YWU5MzdlOTY4NGM1ZWY4NTRjY2U5YmI2OTU3NjMyLi41MDMzZmFjZjkzZTMzNDA1MDQzMjQ2ZDhi
ZGMyZjMxNjU3NWMzMWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMy5qcworKysgYi9MYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMy5q
cwpAQCAtMjMsNiArMjMsOSBAQCB0ZXh0LmFwcGVuZENoaWxkKGFuaW1hdGUpOwogZnVuY3Rpb24g
c2FtcGxlMSgpIHsKICAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyIs
ICIxIik7CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAi
NTAiKTsKKworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIiwgIjEi
KTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSIsICI1MCIp
OwogfQogCiBmdW5jdGlvbiBzYW1wbGUyKCkgewpAQCAtMzEsNiArMzQsOSBAQCBmdW5jdGlvbiBz
YW1wbGUyKCkgewogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZhbHVl
IiwgIjgwIik7CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFsdWUi
LCAiOTAiKTsKICAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSIs
ICIxMTAiKTsKKworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIiwg
IjEiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSIsICI1
MCIpOwogfQogCiBmdW5jdGlvbiBzYW1wbGUzKCkgewpAQCAtMzksNiArNDUsOSBAQCBmdW5jdGlv
biBzYW1wbGUzKCkgewogICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInRleHQueC5hbmltVmFsLmdl
dEl0ZW0oMSkudmFsdWUiLCAiODAiKTsKICAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJ0ZXh0Lngu
YW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIiwgIjkwIik7CiAgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSIsICIxMTAiKTsKKworICAgIHNob3Vs
ZEJlKCJ0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIiwgIjEiKTsKKyAgICBzaG91bGRCZSgi
dGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSIsICI1MCIpOwogfQogCiBmdW5jdGlvbiBl
eGVjdXRlVGVzdCgpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGhsaXN0LWFuaW1hdGlvbi00LmpzIGIvTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTQuanMKaW5k
ZXggMWJjYjMxNGRlYTA2ZjFlZDdhNGZlMDRhYjZjYjc4N2Q0MDQzZGM2Yy4uYmMxN2VjNmVhNDRh
MzQxYjAwODcxMjI3MTVjNWMxZmI4ODM5MWNhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTQuanMKKysr
IGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aGxpc3Qt
YW5pbWF0aW9uLTQuanMKQEAgLTIxLDE3ICsyMSwzMSBAQCB0ZXh0LmFwcGVuZENoaWxkKGFuaW1h
dGUpOwogCiAvLyBTZXR1cCBhbmltYXRpb24gdGVzdAogZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAg
ICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7CiAgICAgc2hv
dWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsKICAgICBzaG91
bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI2MCIpOwogICAgIHNob3Vs
ZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIiwgIjcwIik7CiAgICAgc2hvdWxk
QmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUiLCAiODAiKTsKKworICAgIHNob3Vs
ZEJlKCJ0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIiwgIjQiKTsKKyAgICBzaG91bGRCZSgi
dGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSIsICI1MCIpOworICAgIHNob3VsZEJlKCJ0
ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIiwgIjYwIik7CisgICAgc2hvdWxkQmUoInRl
eHQueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUiLCAiNzAiKTsKKyAgICBzaG91bGRCZSgidGV4
dC54LmJhc2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSIsICI4MCIpOwogfQogCiBmdW5jdGlvbiBzYW1w
bGUyKCkgeworICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1zIiwgIjQi
KTsKICAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSIsICI2MCIp
OwogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZhbHVlIiwgIjcwIik7
CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFsdWUiLCAiODAiKTsK
ICAgICBzaG91bGRCZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSIsICI5MCIpOwor
CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMiLCAiNCIpOworICAg
IHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIiwgIjUwIik7CisgICAg
c2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFsdWUiLCAiNjAiKTsKKyAgICBz
aG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSIsICI3MCIpOworICAgIHNo
b3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIiwgIjgwIik7CiB9CiAKIGZ1
bmN0aW9uIHNhbXBsZTMoKSB7CkBAIC00MCw2ICs1NCwxMiBAQCBmdW5jdGlvbiBzYW1wbGUzKCkg
ewogICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInRleHQueC5hbmltVmFsLmdldEl0ZW0oMSkudmFs
dWUiLCAiODAiKTsKICAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5nZXRJ
dGVtKDIpLnZhbHVlIiwgIjkwIik7CiAgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54LmFu
aW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSIsICIxMDAiKTsKKworICAgIHNob3VsZEJlKCJ0ZXh0Lngu
YmFzZVZhbC5udW1iZXJPZkl0ZW1zIiwgIjQiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VW
YWwuZ2V0SXRlbSgwKS52YWx1ZSIsICI1MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZh
bC5nZXRJdGVtKDEpLnZhbHVlIiwgIjYwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFs
LmdldEl0ZW0oMikudmFsdWUiLCAiNzAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwu
Z2V0SXRlbSgzKS52YWx1ZSIsICI4MCIpOwogfQogCiBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGhsaXN0LWFuaW1hdGlvbi01LmpzIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTUuanMKaW5kZXggMTU0OTBiZDM2NzM2
OWJkNzA1ZTE5YWViNDEzZTNkNjQ1MDNkZjMwNy4uZTVkOGJjNDI5NjRjMzMwMDIzZjY3NTI3ZWYy
NGEwOTRmYzY4NmFjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTUuanMKKysrIGIvTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTUuanMK
QEAgLTIyLDI0ICsyMiw0NSBAQCB0ZXh0LmFwcGVuZENoaWxkKGFuaW1hdGUpOwogCiAvLyBTZXR1
cCBhbmltYXRpb24gdGVzdAogZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICBzaG91bGRCZSgidGV4
dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7CiAgICAgc2hvdWxkQmUoInRleHQueC5h
bmltVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsKICAgICBzaG91bGRCZSgidGV4dC54LmFu
aW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI2MCIpOwogICAgIHNob3VsZEJlKCJ0ZXh0LnguYW5p
bVZhbC5nZXRJdGVtKDIpLnZhbHVlIiwgIjcwIik7CiAgICAgc2hvdWxkQmUoInRleHQueC5hbmlt
VmFsLmdldEl0ZW0oMykudmFsdWUiLCAiODAiKTsKKworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFz
ZVZhbC5udW1iZXJPZkl0ZW1zIiwgIjQiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwu
Z2V0SXRlbSgwKS52YWx1ZSIsICI1MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0LnguYmFzZVZhbC5n
ZXRJdGVtKDEpLnZhbHVlIiwgIjYwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5iYXNlVmFsLmdl
dEl0ZW0oMikudmFsdWUiLCAiNzAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54LmJhc2VWYWwuZ2V0
SXRlbSgzKS52YWx1ZSIsICI4MCIpOwogfQogCiBmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNo
b3VsZEJlKCJ0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1zIiwgIjQiKTsKICAgICBzaG91bGRC
ZSgidGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSIsICI2MCIpOwogICAgIHNob3VsZEJl
KCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZhbHVlIiwgIjcwIik7CiAgICAgc2hvdWxkQmUo
InRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFsdWUiLCAiODAiKTsKICAgICBzaG91bGRCZSgi
dGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSIsICI5MCIpOworCisgICAgc2hvdWxkQmUo
InRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMiLCAiNCIpOworICAgIHNob3VsZEJlKCJ0ZXh0
LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIiwgIjUwIik7CisgICAgc2hvdWxkQmUoInRleHQu
eC5iYXNlVmFsLmdldEl0ZW0oMSkudmFsdWUiLCAiNjAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54
LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSIsICI3MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0Lngu
YmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIiwgIjgwIik7CiB9CiAKIGZ1bmN0aW9uIHNhbXBsZTMo
KSB7CisgICAgc2hvdWxkQmUoInRleHQueC5hbmltVmFsLm51bWJlck9mSXRlbXMiLCAiNCIpOwog
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInRleHQueC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUi
LCAiNzAiKTsKICAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJ0ZXh0LnguYW5pbVZhbC5nZXRJdGVt
KDEpLnZhbHVlIiwgIjgwIik7CiAgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgidGV4dC54LmFuaW1W
YWwuZ2V0SXRlbSgyKS52YWx1ZSIsICI5MCIpOwogICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInRl
eHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUiLCAiMTAwIik7CisKKyAgICBzaG91bGRCZSgi
dGV4dC54LmJhc2VWYWwubnVtYmVyT2ZJdGVtcyIsICI0Iik7CisgICAgc2hvdWxkQmUoInRleHQu
eC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUiLCAiNTAiKTsKKyAgICBzaG91bGRCZSgidGV4dC54
LmJhc2VWYWwuZ2V0SXRlbSgxKS52YWx1ZSIsICI2MCIpOworICAgIHNob3VsZEJlKCJ0ZXh0Lngu
YmFzZVZhbC5nZXRJdGVtKDIpLnZhbHVlIiwgIjcwIik7CisgICAgc2hvdWxkQmUoInRleHQueC5i
YXNlVmFsLmdldEl0ZW0oMykudmFsdWUiLCAiODAiKTsKIH0KIAogZnVuY3Rpb24gZXhlY3V0ZVRl
c3QoKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGhs
aXN0LWFuaW1hdGlvbi0xLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTEtZXhwZWN0ZWQudHh0CmluZGV4IDFiMmExM2VkY2Uy
MzFjNjAyZTg2ZjhhZDIxODgwNzY0NGFmMWYxZTQuLjJkZDczNjBlOThkNDM5MDljY2I4NTlkNzg4
NDRmNTBjZGU4Y2RkMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTEtZXhwZWN0ZWQudHh0CkBAIC02
LDIyICs2LDQ2IEBAIFRlc3QgJ3RvJyBhbmltYXRpb24gb2YgU1ZHTGVuZ3RoTGlzdCB3aXRoIExl
bmd0aFR5cGUgbnVtYmVyLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1MgdGV4
dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyBpcyA0CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0
ZW0oMCkudmFsdWUgaXMgNTAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSBp
cyA3MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIGlzIDkwCiBQQVNTIHRl
eHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUgaXMgMTEwCitQQVNTIHRleHQueC5iYXNlVmFs
Lm51bWJlck9mSXRlbXMgaXMgNAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVl
IGlzIDUwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNzAKK1BBU1Mg
dGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA5MAorUEFTUyB0ZXh0LnguYmFzZVZh
bC5nZXRJdGVtKDMpLnZhbHVlIGlzIDExMAorUEFTUyB0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0
ZW1zIGlzIDQKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1NQogUEFT
UyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDgwCiBQQVNTIHRleHQueC5hbmlt
VmFsLmdldEl0ZW0oMikudmFsdWUgaXMgMTA1CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0o
MykudmFsdWUgaXMgMTMwCitQQVNTIHRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgNAor
UEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCitQQVNTIHRleHQueC5i
YXNlVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNzAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRl
bSgyKS52YWx1ZSBpcyA5MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlz
IDExMAorUEFTUyB0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKIFBBU1MgdGV4dC54
LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA2MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJ
dGVtKDEpLnZhbHVlIGlzIDkwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFsdWUg
aXMgMTIwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUgaXMgMTUwCitQQVNT
IHRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgNAorUEFTUyB0ZXh0LnguYmFzZVZhbC5n
ZXRJdGVtKDApLnZhbHVlIGlzIDUwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFs
dWUgaXMgNzAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA5MAorUEFT
UyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDExMAorUEFTUyB0ZXh0LnguYW5p
bVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52
YWx1ZSBpcyA1MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDcwCiBQ
QVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFsdWUgaXMgOTAKIFBBU1MgdGV4dC54LmFu
aW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyAxMTAKK1BBU1MgdGV4dC54LmJhc2VWYWwubnVtYmVy
T2ZJdGVtcyBpcyA0CitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgNTAK
K1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgxKS52YWx1ZSBpcyA3MAorUEFTUyB0ZXh0Lngu
YmFzZVZhbC5nZXRJdGVtKDIpLnZhbHVlIGlzIDkwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0
ZW0oMykudmFsdWUgaXMgMTEwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aGxpc3QtYW5pbWF0aW9uLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMi1leHBlY3RlZC50eHQKaW5kZXggOTU0ZGIz
ODkzYWVjODlmZWM4MDcwZjkwNzlmMjg0YmNjN2FmYTc1Mi4uZmVkMTE4MzViY2U5NjFlMTk3ODJj
MzU0MzJhZjkyNzcxNGEzNTcxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMi1leHBlY3RlZC50eHQK
QEAgLTYsMjIgKzYsNDYgQEAgVGVzdCAndG8nIGFuaW1hdGlvbiBvZiBTVkdMZW5ndGhMaXN0IHdp
dGggZGlmZmVyZW50IExlbmd0aFR5cGVzLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAK
K1BBU1MgdGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyBpcyA0CiBQQVNTIHRleHQueC5hbmlt
VmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgNTAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgx
KS52YWx1ZSBpcyA3MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIGlzIDkw
CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUgaXMgMTEwCitQQVNTIHRleHQu
eC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgNAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVt
KDApLnZhbHVlIGlzIDUwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMg
NzAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA5MAorUEFTUyB0ZXh0
LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDExMAorUEFTUyB0ZXh0LnguYW5pbVZhbC5u
dW1iZXJPZkl0ZW1zIGlzIDQKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSBp
cyA4MS43CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNzUKIFBBU1Mg
dGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyAxNDQuNQogUEFTUyB0ZXh0LnguYW5p
bVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDE5Ny4zCitQQVNTIHRleHQueC5iYXNlVmFsLm51bWJl
ck9mSXRlbXMgaXMgNAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUw
CitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNzAKK1BBU1MgdGV4dC54
LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA5MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJ
dGVtKDMpLnZhbHVlIGlzIDExMAorUEFTUyB0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1zIGlz
IDQKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyAxMTMuNAogUEFTUyB0
ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDgwCiBQQVNTIHRleHQueC5hbmltVmFs
LmdldEl0ZW0oMikudmFsdWUgaXMgMTAwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMyku
dmFsdWUgaXMgMzg0CitQQVNTIHRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgNAorUEFT
UyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCitQQVNTIHRleHQueC5iYXNl
VmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNzAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgy
KS52YWx1ZSBpcyA5MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDEx
MAorUEFTUyB0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKIFBBU1MgdGV4dC54LmFu
aW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVt
KDEpLnZhbHVlIGlzIDcwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFsdWUgaXMg
OTAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyAxMTAKK1BBU1MgdGV4
dC54LmJhc2VWYWwubnVtYmVyT2ZJdGVtcyBpcyA0CitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0
ZW0oMCkudmFsdWUgaXMgNTAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgxKS52YWx1ZSBp
cyA3MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDIpLnZhbHVlIGlzIDkwCitQQVNTIHRl
eHQueC5iYXNlVmFsLmdldEl0ZW0oMykudmFsdWUgaXMgMTEwCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMy1leHBlY3Rl
ZC50eHQKaW5kZXggOTMxNjJiNDkyM2NkMTEzOGE0MDVhNzY2YTFjYWZmMTJlZjQxMjhlOC4uMjJk
MjI2NjFhZjYyMmZkOTYyOGRjZWIxMWM3MDQ4OGUxODRhNjJhMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RobGlzdC1hbmltYXRp
b24tMy1leHBlY3RlZC50eHQKQEAgLTgsMTggKzgsMjYgQEAgT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUKIAogUEFTUyB0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1zIGlzIDEKIFBBU1MgdGV4dC54
LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5udW1i
ZXJPZkl0ZW1zIGlzIDEKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1
MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKIFBBU1MgdGV4dC54LmFu
aW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA3MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVt
KDEpLnZhbHVlIGlzIDgwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMikudmFsdWUgaXMg
OTAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyAxMTAKK1BBU1MgdGV4
dC54LmJhc2VWYWwubnVtYmVyT2ZJdGVtcyBpcyAxCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0
ZW0oMCkudmFsdWUgaXMgNTAKIFBBU1MgdGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyBpcyA0
CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgNzAKIFBBU1MgdGV4dC54
LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSBpcyA4MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJ
dGVtKDIpLnZhbHVlIGlzIDkwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUg
aXMgMTEwCitQQVNTIHRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgMQorUEFTUyB0ZXh0
LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCiBQQVNTIHRleHQueC5hbmltVmFsLm51
bWJlck9mSXRlbXMgaXMgMQogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIGlz
IDUwCitQQVNTIHRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgMQorUEFTUyB0ZXh0Lngu
YmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0aW9uLTQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tNC1leHBlY3RlZC50eHQK
aW5kZXggM2UzOWVlZjY0NzFjNDJjNTlmZTM5ZmNmNTkyMmQ4NTA0ZmU2NTQ1OS4uNjBjMjI4ZDIx
OGIwM2MwMTQ4MzM0YmExOGMzZTljZTU5MWNlMjMyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tNC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tNC1l
eHBlY3RlZC50eHQKQEAgLTYsMjMgKzYsNDYgQEAgVGVzdCAnYnknIGFuaW1hdGlvbiBvZiBTVkdM
ZW5ndGhMaXN0LgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1MgdGV4dC54LmFu
aW1WYWwubnVtYmVyT2ZJdGVtcyBpcyA0CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMCku
dmFsdWUgaXMgNTAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSBpcyA2MAog
UEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIGlzIDcwCiBQQVNTIHRleHQueC5h
bmltVmFsLmdldEl0ZW0oMykudmFsdWUgaXMgODAKK1BBU1MgdGV4dC54LmJhc2VWYWwubnVtYmVy
T2ZJdGVtcyBpcyA0CitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgNTAK
K1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgxKS52YWx1ZSBpcyA2MAorUEFTUyB0ZXh0Lngu
YmFzZVZhbC5nZXRJdGVtKDIpLnZhbHVlIGlzIDcwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0
ZW0oMykudmFsdWUgaXMgODAKK1BBU1MgdGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyBpcyA0
CiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgNjAKIFBBU1MgdGV4dC54
LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1ZSBpcyA3MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJ
dGVtKDIpLnZhbHVlIGlzIDgwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUg
aXMgOTAKK1BBU1MgdGV4dC54LmJhc2VWYWwubnVtYmVyT2ZJdGVtcyBpcyA0CitQQVNTIHRleHQu
eC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgNTAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0
SXRlbSgxKS52YWx1ZSBpcyA2MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDIpLnZhbHVl
IGlzIDcwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMykudmFsdWUgaXMgODAKIFBBU1Mg
dGV4dC54LmFuaW1WYWwubnVtYmVyT2ZJdGVtcyBpcyA0CiBQQVNTIHRleHQueC5hbmltVmFsLmdl
dEl0ZW0oMCkudmFsdWUgaXMgNzAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgxKS52YWx1
ZSBpcyA4MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDIpLnZhbHVlIGlzIDkwCiBQQVNT
IHRleHQueC5hbmltVmFsLmdldEl0ZW0oMykudmFsdWUgaXMgMTAwCitQQVNTIHRleHQueC5iYXNl
VmFsLm51bWJlck9mSXRlbXMgaXMgNAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApLnZh
bHVlIGlzIDUwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNjAKK1BB
U1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA3MAorUEFTUyB0ZXh0LnguYmFz
ZVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDgwCitQQVNTIHRleHQueC5hbmltVmFsLm51bWJlck9m
SXRlbXMgaXMgNAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCiBQ
QVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNjAKIFBBU1MgdGV4dC54LmFu
aW1WYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA3MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVt
KDMpLnZhbHVlIGlzIDgwCitQQVNTIHRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgNAor
UEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCitQQVNTIHRleHQueC5i
YXNlVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNjAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRl
bSgyKS52YWx1ZSBpcyA3MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlz
IDgwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aGxpc3QtYW5pbWF0
aW9uLTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
bGlzdC1hbmltYXRpb24tNS1leHBlY3RlZC50eHQKaW5kZXggNDMyNzhiN2YxNWI0OGM3MWI3OWM4
NjA5ZDhjNmQ1ZWViYjY0YzlmNy4uY2VlMzY0MWFmOWE3YTZkMTAyOGU3OTE1NWRmMWI3ZDQwNmY4
ZDM2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RobGlz
dC1hbmltYXRpb24tNS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tNS1leHBlY3RlZC50eHQKQEAgLTYsMjIgKzYsNDYg
QEAgVGVzdCBhZGRpdGl2ZT0nc3VtJyBhbmltYXRpb24gb2YgU1ZHTGVuZ3RoTGlzdC4KIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitQQVNTIHRleHQueC5hbmltVmFsLm51bWJlck9mSXRl
bXMgaXMgNAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCiBQQVNT
IHRleHQueC5hbmltVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNjAKIFBBU1MgdGV4dC54LmFuaW1W
YWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA3MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDMp
LnZhbHVlIGlzIDgwCitQQVNTIHRleHQueC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgNAorUEFT
UyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwCitQQVNTIHRleHQueC5iYXNl
VmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgNjAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgy
KS52YWx1ZSBpcyA3MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDgw
CitQQVNTIHRleHQueC5hbmltVmFsLm51bWJlck9mSXRlbXMgaXMgNAogUEFTUyB0ZXh0LnguYW5p
bVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDYwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0o
MSkudmFsdWUgaXMgNzAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA4
MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDkwCitQQVNTIHRleHQu
eC5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgNAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVt
KDApLnZhbHVlIGlzIDUwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMg
NjAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA3MAorUEFTUyB0ZXh0
LnguYmFzZVZhbC5nZXRJdGVtKDMpLnZhbHVlIGlzIDgwCitQQVNTIHRleHQueC5hbmltVmFsLm51
bWJlck9mSXRlbXMgaXMgNAogUEFTUyB0ZXh0LnguYW5pbVZhbC5nZXRJdGVtKDApLnZhbHVlIGlz
IDcwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgODAKIFBBU1MgdGV4
dC54LmFuaW1WYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyA5MAogUEFTUyB0ZXh0LnguYW5pbVZhbC5n
ZXRJdGVtKDMpLnZhbHVlIGlzIDEwMAorUEFTUyB0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1z
IGlzIDQKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAorUEFTUyB0
ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlzIDYwCitQQVNTIHRleHQueC5iYXNlVmFs
LmdldEl0ZW0oMikudmFsdWUgaXMgNzAKK1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgzKS52
YWx1ZSBpcyA4MAorUEFTUyB0ZXh0LnguYW5pbVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKIFBBU1Mg
dGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAogUEFTUyB0ZXh0LnguYW5pbVZh
bC5nZXRJdGVtKDEpLnZhbHVlIGlzIDYwCiBQQVNTIHRleHQueC5hbmltVmFsLmdldEl0ZW0oMiku
dmFsdWUgaXMgNzAKIFBBU1MgdGV4dC54LmFuaW1WYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyA4MAor
UEFTUyB0ZXh0LnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKK1BBU1MgdGV4dC54LmJhc2VW
YWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA1MAorUEFTUyB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDEp
LnZhbHVlIGlzIDYwCitQQVNTIHRleHQueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUgaXMgNzAK
K1BBU1MgdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgzKS52YWx1ZSBpcyA4MAogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCg==
</data>
<flag name="review"
          id="134947"
          type_id="1"
          status="+"
          setter="zherczeg"
    />
          </attachment>
      

    </bug>

</bugzilla>