<?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>205607</bug_id>
          
          <creation_ts>2019-12-27 08:25:17 -0800</creation_ts>
          <short_desc>Implement RTC VTB decoders in GPUProcess</short_desc>
          <delta_ts>2019-12-31 02:01:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1601618</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-27 08:25:17 -0800</bug_when>
    <thetext>Implement RTC VTB decoders in GPUProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601619</commentid>
    <comment_count>1</comment_count>
      <attachid>386445</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-27 08:27:07 -0800</bug_when>
    <thetext>Created attachment 386445
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601622</commentid>
    <comment_count>2</comment_count>
      <attachid>386447</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-27 09:02:51 -0800</bug_when>
    <thetext>Created attachment 386447
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601625</commentid>
    <comment_count>3</comment_count>
      <attachid>386449</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-27 09:12:02 -0800</bug_when>
    <thetext>Created attachment 386449
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601757</commentid>
    <comment_count>4</comment_count>
      <attachid>386490</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-29 07:56:45 -0800</bug_when>
    <thetext>Created attachment 386490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601838</commentid>
    <comment_count>5</comment_count>
      <attachid>386518</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-30 02:25:34 -0800</bug_when>
    <thetext>Created attachment 386518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601893</commentid>
    <comment_count>6</comment_count>
      <attachid>386518</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-30 09:41:52 -0800</bug_when>
    <thetext>Comment on attachment 386518
Patch

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

&gt; Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.h:2
&gt; + * Copyright (C) 2020 Apple Inc. All rights reserved.

Getting an early start!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601961</commentid>
    <comment_count>7</comment_count>
      <attachid>386518</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-31 02:00:56 -0800</bug_when>
    <thetext>Comment on attachment 386518
Patch

Clearing flags on attachment: 386518

Committed r253957: &lt;https://trac.webkit.org/changeset/253957&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601962</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-31 02:00:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601963</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-31 02:01:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/58251703&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386445</attachid>
            <date>2019-12-27 08:27:07 -0800</date>
            <delta_ts>2019-12-27 09:02:46 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-205607-20191227172705.patch</filename>
            <type>text/plain</type>
            <size>71218</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAyY2U0ZjNmNGVhNDA0MmNiMjgyZjE5ZDYzNTU3YzE2OGYyMGJkNjZjLi40MjNj
MTNmOWMyMDRlMWVkZDVjNjI1NTg1M2U1ZGEwYWU5OGIxOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0xMi0yNyAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFJUQyBWVEIgZGVj
b2RlcnMgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1NjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cDoKKyAgICAgICAg
KiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cDoKKyAgICAgICAgKiBDb25maWd1
cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cDoKKwogMjAxOS0xMi0yNCAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IGJ1aWxkIHlhc20gZm9yIGlPUyBh
bmQgaU9TIHNpbXVsYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE0MWZkNjkyMGY1ODcwNjgyNDg4YzMzZTQz
ZTYwZjI4NGQ5MjUxZjYuLjYzZjBiMDMyYjA2YmY2MGY1YWZiYTY0NDc2ZjBkYjUzMDFjNzJlOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0xMi0yNyAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFJUQyBWVEIgZGVjb2RlcnMg
aW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA1NjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisK
IDIwMTktMTItMjQgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IElnbm9yZSBVUkwgaG9zdCBmb3Igc2NoZW1lcyB0aGF0IGFyZSBub3QgdXNpbmcgaG9zdCBpbmZv
cm1hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA3N2M0NmQ3ZjRmOWQ4YzU4Mjc5M2U4NmQ5YTAwYzc0ODU1MGFk
ODAwLi5kYjY0YWViZmZmNWY1MjA4ZjNkOWVhNDQxNDIwZjAxYTc5ZmUyNjM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDE5LTEyLTI3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUlRDIFZUQiBkZWNvZGVycyBpbiBHUFVQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2MDcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BV
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y3Jl
YXRlVmlkZW9EZWNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjcmVh
dGVEZWNvZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmg6CisKIDIwMTktMTItMjMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CiAKICAgICAgICAgd2F0Y2hPUyBidWlsZCBmaXggYXR0ZW1wdApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1Mu
ZXhwCmluZGV4IGRiMDgzYzkwODM3ZGJiNGI2YzcxMDQwNjNlNDFjM2Q1ODRkYTBhN2QuLjhmZDVj
MjcyYWQ2YTFjMzhiMjA4M2IxMWU2MzU4ZmRjZWQ4NzdlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlP
Uy5leHAKQEAgLTI2MiwzICsyNjIsOCBAQCBfX1pOSzZ3ZWJydGMyMERhdGFDaGFubmVsSW50ZXJm
YWNlMTdtYXhSZXRyYW5zbWl0c09wdEV2CiBfX1pOSzZ3ZWJydGMyMFJ0cFJlY2VpdmVySW50ZXJm
YWNlMTRkdGxzX3RyYW5zcG9ydEV2CiBfX1pOSzZ3ZWJydGMyM1BlZXJDb25uZWN0aW9uSW50ZXJm
YWNlMTZHZXRTY3RwVHJhbnNwb3J0RXYKIF9fWk5LNndlYnJ0YzIzUnRwVHJhbnNjZWl2ZXJJbnRl
cmZhY2UxN2NvZGVjX3ByZWZlcmVuY2VzRXYKK19fWk42d2VicnRjMjRzZXRWaWRlb0RlY29kZXJD
YWxsYmFja3NFUEZ5UktOU18xNFNkcFZpZGVvRm9ybWF0RUVQRml5RVBGaXlqUEtobUVQRml5UHZF
CitfX1pONndlYnJ0YzE4Y3JlYXRlTG9jYWxEZWNvZGVyRVUxM2Jsb2NrX3BvaW50ZXJGdlAxMF9f
Q1ZCdWZmZXJqakUKK19fWk42d2VicnRjMTlyZWxlYXNlTG9jYWxEZWNvZGVyRVB2CitfX1pONndl
YnJ0YzExZGVjb2RlRnJhbWVFUHZqUEtobQorX19aTjZ3ZWJydGMxOFJlbW90ZVZpZGVvRGVjb2Rl
cjE0ZGVjb2RlQ29tcGxldGVFUHZqUDEwX19DVkJ1ZmZlcmoKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9T
c2ltLmV4cAppbmRleCBkYjA4M2M5MDgzN2RiYjRiNmM3MTA0MDYzZTQxYzNkNTg0ZGEwYTdkLi44
ZmQ1YzI3MmFkNmExYzM4YjIwODNiMTFlNjM1OGZkY2VkODc3ZWUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndl
YnJ0Yy5pT1NzaW0uZXhwCkBAIC0yNjIsMyArMjYyLDggQEAgX19aTks2d2VicnRjMjBEYXRhQ2hh
bm5lbEludGVyZmFjZTE3bWF4UmV0cmFuc21pdHNPcHRFdgogX19aTks2d2VicnRjMjBSdHBSZWNl
aXZlckludGVyZmFjZTE0ZHRsc190cmFuc3BvcnRFdgogX19aTks2d2VicnRjMjNQZWVyQ29ubmVj
dGlvbkludGVyZmFjZTE2R2V0U2N0cFRyYW5zcG9ydEV2CiBfX1pOSzZ3ZWJydGMyM1J0cFRyYW5z
Y2VpdmVySW50ZXJmYWNlMTdjb2RlY19wcmVmZXJlbmNlc0V2CitfX1pONndlYnJ0YzI0c2V0Vmlk
ZW9EZWNvZGVyQ2FsbGJhY2tzRVBGeVJLTlNfMTRTZHBWaWRlb0Zvcm1hdEVFUEZpeUVQRml5alBL
aG1FUEZpeVB2RQorX19aTjZ3ZWJydGMxOGNyZWF0ZUxvY2FsRGVjb2RlckVVMTNibG9ja19wb2lu
dGVyRnZQMTBfX0NWQnVmZmVyampFCitfX1pONndlYnJ0YzE5cmVsZWFzZUxvY2FsRGVjb2RlckVQ
dgorX19aTjZ3ZWJydGMxMWRlY29kZUZyYW1lRVB2alBLaG0KK19fWk42d2VicnRjMThSZW1vdGVW
aWRlb0RlY29kZXIxNGRlY29kZUNvbXBsZXRlRVB2alAxMF9fQ1ZCdWZmZXJqCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1h
Yy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2Vi
cnRjLm1hYy5leHAKaW5kZXggZGIwODNjOTA4MzdkYmI0YjZjNzEwNDA2M2U0MWMzZDU4NGRhMGE3
ZC4uOGZkNWMyNzJhZDZhMWMzOGIyMDgzYjExZTYzNThmZGNlZDg3N2VlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMu
ZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3
ZWJydGMubWFjLmV4cApAQCAtMjYyLDMgKzI2Miw4IEBAIF9fWk5LNndlYnJ0YzIwRGF0YUNoYW5u
ZWxJbnRlcmZhY2UxN21heFJldHJhbnNtaXRzT3B0RXYKIF9fWk5LNndlYnJ0YzIwUnRwUmVjZWl2
ZXJJbnRlcmZhY2UxNGR0bHNfdHJhbnNwb3J0RXYKIF9fWk5LNndlYnJ0YzIzUGVlckNvbm5lY3Rp
b25JbnRlcmZhY2UxNkdldFNjdHBUcmFuc3BvcnRFdgogX19aTks2d2VicnRjMjNSdHBUcmFuc2Nl
aXZlckludGVyZmFjZTE3Y29kZWNfcHJlZmVyZW5jZXNFdgorX19aTjZ3ZWJydGMyNHNldFZpZGVv
RGVjb2RlckNhbGxiYWNrc0VQRnlSS05TXzE0U2RwVmlkZW9Gb3JtYXRFRVBGaXlFUEZpeWpQS2ht
RVBGaXlQdkUKK19fWk42d2VicnRjMThjcmVhdGVMb2NhbERlY29kZXJFVTEzYmxvY2tfcG9pbnRl
ckZ2UDEwX19DVkJ1ZmZlcmpqRQorX19aTjZ3ZWJydGMxOXJlbGVhc2VMb2NhbERlY29kZXJFUHYK
K19fWk42d2VicnRjMTFkZWNvZGVGcmFtZUVQdmpQS2htCitfX1pONndlYnJ0YzE4UmVtb3RlVmlk
ZW9EZWNvZGVyMTRkZWNvZGVDb21wbGV0ZUVQdmpQMTBfX0NWQnVmZmVyagpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggNmVmZmM1YWFiNTkyZjhkYTYyNDY5
Y2RmODFmNDgzNDkyMmRmYzEzYS4uOTg4NzJkZDZkYmNlNTc5NmRlYjdjNDk3YjYxYjBmZjkyMjhl
NjgyMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCkBAIC02
OSw0ICs2OSw0NiBAQCBwcml2YXRlOgogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0Vu
Y29kZXJGYWN0b3J5PiBtX2ludGVybmFsRW5jb2RlckZhY3Rvcnk7CiB9OwogCit1c2luZyBWaWRl
b0RlY29kZXJDcmVhdGVDYWxsYmFjayA9IHVpbnQ2NF90KCopKGNvbnN0IFNkcFZpZGVvRm9ybWF0
JiBmb3JtYXQpOwordXNpbmcgVmlkZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrID0gaW50MzJfdCgq
KSh1aW50NjRfdCBkZWNvZGVySWRlbnRpZmllcik7Cit1c2luZyBWaWRlb0RlY29kZXJEZWNvZGVD
YWxsYmFjayA9IGludDMyX3QoKikodWludDY0X3QgZGVjb2RlcklkZW50aWZpZXIsIHVpbnQzMl90
IHRpbWVTdGFtcCwgY29uc3QgdWludDhfdCosIHNpemVfdCBsZW5ndGgpOwordXNpbmcgVmlkZW9E
ZWNvZGVyUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrID0gaW50MzJfdCgqKSh1aW50NjRf
dCBkZWNvZGVySWRlbnRpZmllciwgdm9pZCogZGVjb2RlZEltYWdlQ2FsbGJhY2spOworCit2b2lk
IHNldFZpZGVvRGVjb2RlckNhbGxiYWNrcyhWaWRlb0RlY29kZXJDcmVhdGVDYWxsYmFjaywgVmlk
ZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrLCBWaWRlb0RlY29kZXJEZWNvZGVDYWxsYmFjaywgVmlk
ZW9EZWNvZGVyUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKTsKKworY2xhc3MgUmVtb3Rl
VmlkZW9EZWNvZGVyRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBWaWRlb0RlY29kZXJGYWN0b3J5IHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5KHN0ZDo6dW5p
cXVlX3B0cjxWaWRlb0RlY29kZXJGYWN0b3J5PiYmKTsKKyAgICB+UmVtb3RlVmlkZW9EZWNvZGVy
RmFjdG9yeSgpID0gZGVmYXVsdDsKKworcHJpdmF0ZToKKyAgICBzdGQ6OnZlY3RvcjxTZHBWaWRl
b0Zvcm1hdD4gR2V0U3VwcG9ydGVkRm9ybWF0cygpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxWaWRlb0RlY29kZXI+IENyZWF0ZVZpZGVvRGVjb2Rlcihjb25zdCBTZHBWaWRlb0Zv
cm1hdCYgZm9ybWF0KSBmaW5hbDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXJG
YWN0b3J5PiBtX2ludGVybmFsRmFjdG9yeTsKK307CisKK2NsYXNzIFJlbW90ZVZpZGVvRGVjb2Rl
ciBmaW5hbCA6IHB1YmxpYyB3ZWJydGM6OlZpZGVvRGVjb2RlciB7CitwdWJsaWM6CisgICAgZXhw
bGljaXQgUmVtb3RlVmlkZW9EZWNvZGVyKHVpbnQ2NF90IGlkZW50aWZpZXIpOworICAgIH5SZW1v
dGVWaWRlb0RlY29kZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBzdGF0aWMgdm9pZCBkZWNvZGVDb21w
bGV0ZSh2b2lkKiBjYWxsYmFjaywgdWludDMyX3QgdGltZVN0YW1wLCBDVlBpeGVsQnVmZmVyUmVm
LCB1aW50MzJfdCB0aW1lU3RhbXBSVFApOworCitwcml2YXRlOgorICAgIGludDMyX3QgSW5pdERl
Y29kZShjb25zdCBWaWRlb0NvZGVjKiwgaW50MzJfdCBudW1iZXJfb2ZfY29yZXMpIGZpbmFsOwor
ICAgIGludDMyX3QgRGVjb2RlKGNvbnN0IEVuY29kZWRJbWFnZSYsIGJvb2wgbWlzc2luZ19mcmFt
ZXMsIGludDY0X3QgcmVuZGVyX3RpbWVfbXMpIGZpbmFsOworICAgIGludDMyX3QgUmVnaXN0ZXJE
ZWNvZGVDb21wbGV0ZUNhbGxiYWNrKERlY29kZWRJbWFnZUNhbGxiYWNrKikgZmluYWw7CisgICAg
aW50MzJfdCBSZWxlYXNlKCkgZmluYWw7CisgICAgY29uc3QgY2hhciogSW1wbGVtZW50YXRpb25O
YW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlJlbW90ZVZpZGVvVG9vbEJveCI7IH0KKworICAg
IHVpbnQ2NF90IG1faWRlbnRpZmllcjsKK307CisKK3VzaW5nIExvY2FsRGVjb2RlciA9IHZvaWQq
OwordXNpbmcgTG9jYWxEZWNvZGVyQ2FsbGJhY2sgPSB2b2lkICheKShDVlBpeGVsQnVmZmVyUmVm
LCB1aW50MzJfdCB0aW1lU3RhbXAsIHVpbnQzMl90IHRpbWVTdGFtcE5zKTsKK3ZvaWQqIGNyZWF0
ZUxvY2FsRGVjb2RlcihMb2NhbERlY29kZXJDYWxsYmFjayk7Cit2b2lkIHJlbGVhc2VMb2NhbERl
Y29kZXIoTG9jYWxEZWNvZGVyKTsKK2ludDMyX3QgZGVjb2RlRnJhbWUoTG9jYWxEZWNvZGVyLCB1
aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOworCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0
L1dlYktpdFV0aWxpdGllcy5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLm1tCmluZGV4IDJmZTU3YjIwMTEwYjNl
NDU1Nzg3ZjNlNzI4YzkwMmNlNWQ2ZDQ0YzEuLmE0MmQwMjljMmE1MzkwMDVjZjk4YjE0OTllYWE5
N2M5MWY2NzdhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLm1tCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVz
Lm1tCkBAIC0yOSw3ICsyOSwxMCBAQAogI2ltcG9ydCAiV2ViUlRDL1JUQ1ZpZGVvQ29kZWNIMjY0
LmgiCiAKICNpbmNsdWRlICJhcGkvdmlkZW8vdmlkZW9fZnJhbWUuaCIKKyNpbmNsdWRlICJoZWxw
ZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIKICNpbmNsdWRlICJuYXRpdmUvc3JjL29iamNfZnJhbWVf
YnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorI2luY2x1ZGUgInNk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oIgogI2luY2x1ZGUg
InRoaXJkX3BhcnR5L2xpYnl1di9pbmNsdWRlL2xpYnl1di9jb252ZXJ0X2Zyb20uaCIKICNpbmNs
dWRlICJ3ZWJydGMvcnRjX2Jhc2UvY2hlY2tzLmgiCiAjaW5jbHVkZSAiRnJhbWV3b3JrL0hlYWRl
cnMvV2ViUlRDL1JUQ1ZpZGVvQ29kZWNGYWN0b3J5LmgiCkBAIC0xMTYsMTEgKzExOSw2IEBAIHN0
ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVu
Y29kZXJGYWN0b3J5KFdlYktpdENvCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VmlkZW9F
bmNvZGVyRmFjdG9yeVdpdGhTaW11bGNhc3Q+KHN0ZDo6bW92ZShpbnRlcm5hbEZhY3RvcnkpKTsK
IH0KIAotc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRl
V2ViS2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0IGNvZGVjU3VwcG9ydCkKLXsK
LSAgICByZXR1cm4gT2JqQ1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShjb2RlY1N1cHBvcnQg
PT0gV2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4ID8gW1tSVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeSBhbGxvY10gaW5pdF0gOiBbW1JUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0IGFs
bG9jXSBpbml0XSk7Ci19Ci0KIHN0YXRpYyBib29sIGgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2Vk
ID0gdHJ1ZTsKIHZvaWQgc2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWQoYm9vbCBhbGxvd2Vk
KQogewpAQCAtMTY4LDcgKzE2Niw2IEBAIHN0YXRpYyBib29sIENvcHlWaWRlb0ZyYW1lVG9QaXhl
bEJ1ZmZlcihjb25zdCB3ZWJydGM6Okk0MjBCdWZmZXJJbnRlcmZhY2UqIGZyYW1lCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLQogQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlckZyb21GcmFtZShj
b25zdCBWaWRlb0ZyYW1lJiBmcmFtZSwgY29uc3Qgc3RkOjpmdW5jdGlvbjxDVlBpeGVsQnVmZmVy
UmVmKHNpemVfdCwgc2l6ZV90KT4mIG1ha2VQaXhlbEJ1ZmZlcikKIHsKICAgICBpZiAoZnJhbWUu
dmlkZW9fZnJhbWVfYnVmZmVyKCktPnR5cGUoKSAhPSBWaWRlb0ZyYW1lQnVmZmVyOjpUeXBlOjpr
TmF0aXZlKSB7CkBAIC0xODgsNCArMTg1LDExNyBAQCBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyRnJvbUZyYW1lKGNvbnN0IFZpZGVvRnJhbWUmIGZyYW1lLCBjb25zdCBzdGQ6OmZ1bmN0aQog
ICAgIHJldHVybiBydGNQaXhlbEJ1ZmZlci5waXhlbEJ1ZmZlcjsKIH0KIAorc3RydWN0IFZpZGVv
RGVjb2RlckNhbGxiYWNrcyB7CisgICAgVmlkZW9EZWNvZGVyQ3JlYXRlQ2FsbGJhY2sgY3JlYXRl
Q2FsbGJhY2s7CisgICAgVmlkZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrIHJlbGVhc2VDYWxsYmFj
azsKKyAgICBWaWRlb0RlY29kZXJEZWNvZGVDYWxsYmFjayBkZWNvZGVDYWxsYmFjazsKKyAgICBW
aWRlb0RlY29kZXJSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2sgcmVnaXN0ZXJEZWNvZGVD
b21wbGV0ZUNhbGxiYWNrOworfTsKKworc3RhdGljIFZpZGVvRGVjb2RlckNhbGxiYWNrcyYgdmlk
ZW9EZWNvZGVyQ2FsbGJhY2tzKCkgeworICAgIHN0YXRpYyBWaWRlb0RlY29kZXJDYWxsYmFja3Mg
Y2FsbGJhY2tzOworICAgIHJldHVybiBjYWxsYmFja3M7Cit9CisKK3ZvaWQgc2V0VmlkZW9EZWNv
ZGVyQ2FsbGJhY2tzKFZpZGVvRGVjb2RlckNyZWF0ZUNhbGxiYWNrIGNyZWF0ZUNhbGxiYWNrLCBW
aWRlb0RlY29kZXJSZWxlYXNlQ2FsbGJhY2sgcmVsZWFzZUNhbGxiYWNrLCBWaWRlb0RlY29kZXJE
ZWNvZGVDYWxsYmFjayBkZWNvZGVDYWxsYmFjaywgVmlkZW9EZWNvZGVyUmVnaXN0ZXJEZWNvZGVD
b21wbGV0ZUNhbGxiYWNrIHJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjaykKK3sKKyAgICBh
dXRvJiBjYWxsYmFja3MgPSB2aWRlb0RlY29kZXJDYWxsYmFja3MoKTsKKyAgICBjYWxsYmFja3Mu
Y3JlYXRlQ2FsbGJhY2sgPSBjcmVhdGVDYWxsYmFjazsKKyAgICBjYWxsYmFja3MucmVsZWFzZUNh
bGxiYWNrID0gcmVsZWFzZUNhbGxiYWNrOworICAgIGNhbGxiYWNrcy5kZWNvZGVDYWxsYmFjayA9
IGRlY29kZUNhbGxiYWNrOworICAgIGNhbGxiYWNrcy5yZWdpc3RlckRlY29kZUNvbXBsZXRlQ2Fs
bGJhY2sgPSByZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2s7Cit9CisKK1JlbW90ZVZpZGVv
RGVjb2Rlcjo6UmVtb3RlVmlkZW9EZWNvZGVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCisgICAgOiBt
X2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKK30KKwordm9pZCBSZW1vdGVWaWRlb0RlY29kZXI6
OmRlY29kZUNvbXBsZXRlKHZvaWQqIGNhbGxiYWNrLCB1aW50MzJfdCB0aW1lU3RhbXAsIENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcFJUUCkKK3sKKyAgICBh
dXRvIHZpZGVvRnJhbWUgPSBWaWRlb0ZyYW1lOjpCdWlsZGVyKCkuc2V0X3ZpZGVvX2ZyYW1lX2J1
ZmZlcihwaXhlbEJ1ZmZlclRvRnJhbWUocGl4ZWxCdWZmZXIpKQorICAgICAgICAuc2V0X3RpbWVz
dGFtcF9ydHAodGltZVN0YW1wUlRQKQorICAgICAgICAuc2V0X3RpbWVzdGFtcF9tcygwKQorLy8g
ICAgICAgIC5zZXRfcm90YXRpb24oKFZpZGVvUm90YXRpb24pUlRDVmlkZW9Sb3RhdGlvbl8wKQor
ICAgICAgICAuYnVpbGQoKTsKKyAgICB2aWRlb0ZyYW1lLnNldF90aW1lc3RhbXAodGltZVN0YW1w
KTsKKworICAgIHN0YXRpY19jYXN0PERlY29kZWRJbWFnZUNhbGxiYWNrKj4oY2FsbGJhY2spLT5E
ZWNvZGVkKHZpZGVvRnJhbWUpOworfQorCitpbnQzMl90IFJlbW90ZVZpZGVvRGVjb2Rlcjo6SW5p
dERlY29kZShjb25zdCBWaWRlb0NvZGVjKiBjb2RlY19zZXR0aW5ncywgaW50MzJfdCBudW1iZXJf
b2ZfY29yZXMpCit7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworaW50
MzJfdCBSZW1vdGVWaWRlb0RlY29kZXI6OkRlY29kZShjb25zdCBFbmNvZGVkSW1hZ2UmIGlucHV0
X2ltYWdlLCBib29sIG1pc3NpbmdfZnJhbWVzLCBpbnQ2NF90IHJlbmRlcl90aW1lX21zKQorewor
ICAgIHJldHVybiB2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5kZWNvZGVDYWxsYmFjayhtX2lkZW50
aWZpZXIsIGlucHV0X2ltYWdlLlRpbWVzdGFtcCgpLCBpbnB1dF9pbWFnZS5kYXRhKCksIGlucHV0
X2ltYWdlLnNpemUoKSk7Cit9CisKK2ludDMyX3QgUmVtb3RlVmlkZW9EZWNvZGVyOjpSZWdpc3Rl
ckRlY29kZUNvbXBsZXRlQ2FsbGJhY2soRGVjb2RlZEltYWdlQ2FsbGJhY2sqIGNhbGxiYWNrKQor
eworICAgIHJldHVybiB2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5yZWdpc3RlckRlY29kZUNvbXBs
ZXRlQ2FsbGJhY2sobV9pZGVudGlmaWVyLCBjYWxsYmFjayk7Cit9CisKK2ludDMyX3QgUmVtb3Rl
VmlkZW9EZWNvZGVyOjpSZWxlYXNlKCkKK3sKKyAgICByZXR1cm4gdmlkZW9EZWNvZGVyQ2FsbGJh
Y2tzKCkucmVsZWFzZUNhbGxiYWNrKG1faWRlbnRpZmllcik7Cit9CisKK1JlbW90ZVZpZGVvRGVj
b2RlckZhY3Rvcnk6OlJlbW90ZVZpZGVvRGVjb2RlckZhY3Rvcnkoc3RkOjp1bmlxdWVfcHRyPFZp
ZGVvRGVjb2RlckZhY3Rvcnk+JiYgaW50ZXJuYWxGYWN0b3J5KQorICAgIDogbV9pbnRlcm5hbEZh
Y3Rvcnkoc3RkOjptb3ZlKGludGVybmFsRmFjdG9yeSkpCit7Cit9CisKK3N0ZDo6dmVjdG9yPFNk
cFZpZGVvRm9ybWF0PiBSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5OjpHZXRTdXBwb3J0ZWRGb3Jt
YXRzKCkgY29uc3QKK3sKKyAgICBzdGQ6OnZlY3RvcjxTZHBWaWRlb0Zvcm1hdD4gc3VwcG9ydGVk
X2Zvcm1hdHM7CisgICAgc3VwcG9ydGVkX2Zvcm1hdHMucHVzaF9iYWNrKFNkcFZpZGVvRm9ybWF0
IHsgIkgyNjQiIH0pOworICAgIHN1cHBvcnRlZF9mb3JtYXRzLnB1c2hfYmFjayhTZHBWaWRlb0Zv
cm1hdCB7ICJWUDgiIH0pOworICAgIHJldHVybiBzdXBwb3J0ZWRfZm9ybWF0czsKK30KKworc3Rk
Ojp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4gUmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3Jl
YXRlVmlkZW9EZWNvZGVyKGNvbnN0IFNkcFZpZGVvRm9ybWF0JiBmb3JtYXQpCit7CisgICAgaWYg
KCF2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5jcmVhdGVDYWxsYmFjaykKKyAgICAgICAgcmV0dXJu
IG1faW50ZXJuYWxGYWN0b3J5LT5DcmVhdGVWaWRlb0RlY29kZXIoZm9ybWF0KTsKKworICAgIGF1
dG8gaWRlbnRpZmllciA9IHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLmNyZWF0ZUNhbGxiYWNrKGZv
cm1hdCk7CisgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbV9pbnRlcm5hbEZh
Y3RvcnktPkNyZWF0ZVZpZGVvRGVjb2Rlcihmb3JtYXQpOworCisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVyPihpZGVudGlmaWVyKTsKK30KKworc3RkOjp1bmlx
dWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RGVjb2RlckZh
Y3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0IGNvZGVjU3VwcG9ydCkKK3sKKyAgICBhdXRvIGludGVy
bmFsRmFjdG9yeSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3RvcnkoY29kZWNTdXBwb3J0
ID09IFdlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQOCA/IFtbUlRDRGVmYXVsdFZpZGVvRGVj
b2RlckZhY3RvcnkgYWxsb2NdIGluaXRdIDogW1tSVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NCBh
bGxvY10gaW5pdF0pOworICAgIGlmICh2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5jcmVhdGVDYWxs
YmFjaykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVy
RmFjdG9yeT4oc3RkOjptb3ZlKGludGVybmFsRmFjdG9yeSkpOworICAgIHJldHVybiBpbnRlcm5h
bEZhY3Rvcnk7Cit9CisKK3ZvaWQqIGNyZWF0ZUxvY2FsRGVjb2RlcihMb2NhbERlY29kZXJDYWxs
YmFjayBjYWxsYmFjaykKK3sKKyAgICBhdXRvIGRlY29kZXIgPSBbW1JUQ1ZpZGVvRGVjb2Rlckgy
NjQgYWxsb2NdIGluaXRdOworICAgIFtkZWNvZGVyIHNldENhbGxiYWNrOl4oUlRDVmlkZW9GcmFt
ZSAqZnJhbWUpIHsKKyAgICAgICAgYXV0byAqYnVmZmVyID0gKFJUQ0NWUGl4ZWxCdWZmZXIgKilm
cmFtZS5idWZmZXI7CisgICAgICAgIGNhbGxiYWNrKGJ1ZmZlci5waXhlbEJ1ZmZlciwgZnJhbWUu
dGltZVN0YW1wTnMsIGZyYW1lLnRpbWVTdGFtcCk7CisgICAgfV07CisgICAgcmV0dXJuIChfX2Jy
aWRnZV9yZXRhaW5lZCB2b2lkKilkZWNvZGVyOworfQorCit2b2lkIHJlbGVhc2VMb2NhbERlY29k
ZXIoTG9jYWxEZWNvZGVyIGxvY2FsRGVjb2RlcikKK3sKKyAgICBSVENWaWRlb0RlY29kZXJIMjY0
KiBkZWNvZGVyID0gKF9fYnJpZGdlX3RyYW5zZmVyIFJUQ1ZpZGVvRGVjb2RlckgyNjQgKikobG9j
YWxEZWNvZGVyKTsKKyAgICBbZGVjb2RlciByZWxlYXNlRGVjb2Rlcl07Cit9CisKK2ludDMyX3Qg
ZGVjb2RlRnJhbWUoTG9jYWxEZWNvZGVyIGxvY2FsRGVjb2RlciwgdWludDMyX3QgdGltZVN0YW1w
LCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBSVENWaWRlb0RlY29k
ZXJIMjY0KiBkZWNvZGVyID0gKF9fYnJpZGdlIFJUQ1ZpZGVvRGVjb2RlckgyNjQgKikobG9jYWxE
ZWNvZGVyKTsKKyAgICByZXR1cm4gW2RlY29kZXIgZGVjb2RlRGF0YTogZGF0YSBzaXplOiBzaXpl
IHRpbWVTdGFtcDogdGltZVN0YW1wXTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9SVENWaWRlb0RlY29kZXJIMjY0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVj
b2RlckgyNjQuaAppbmRleCBiMTBkMWU2YTA5OTIwZTUxZjVmNGY1NjNiNjZlZWI5ZTljZDEyMTcz
Li4yMmRjYzgwZDhjMGQ2ODJhZTgwMDEyZGVjMDVhMGYzZWVjMTZlMjVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjQuaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjQuaApAQCAtMTYsNCArMTYsNyBAQAogUlRDX09CSkNfRVhQ
T1JUCiBfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDVmlkZW9EZWNvZGVy
SDI2NCIpKSkKIEBpbnRlcmZhY2UgUlRDVmlkZW9EZWNvZGVySDI2NCA6IE5TT2JqZWN0IDxSVENW
aWRlb0RlY29kZXI+CistIChOU0ludGVnZXIpZGVjb2RlRGF0YTooY29uc3QgdWludDhfdCAqKWRh
dGEKKyAgICBzaXplOihzaXplX3Qpc2l6ZQorICAgIHRpbWVTdGFtcDoodWludDMyX3QpdGltZVN0
YW1wOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJI
MjY0Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY0Lm1tCmluZGV4IDhl
MmE3ZDljOTBmNzY2ZjlhN2Q3ZTI1OTAxNTFmNTYzNzhjMWNmZTIuLjIyZjEzNDU3YTlkZjQ2NjE0
OGIyNWZkMDNjMTkxYmEyZjBmZjBjOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
VmlkZW9EZWNvZGVySDI2NC5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2Rl
ckgyNjQubW0KQEAgLTEwMiw2ICsxMDIsMTMgQEAgdm9pZCBkZWNvbXByZXNzaW9uT3V0cHV0Q2Fs
bGJhY2sodm9pZCAqZGVjb2RlclJlZiwKICAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdCly
ZW5kZXJUaW1lTXMgewogICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKIAorICByZXR1
cm4gW3NlbGYgZGVjb2RlRGF0YTogKHVpbnQ4X3QgKilpbnB1dEltYWdlLmJ1ZmZlci5ieXRlcyBz
aXplOiBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGggdGltZVN0YW1wOiBpbnB1dEltYWdlLnRpbWVT
dGFtcF07Cit9CisKKy0gKE5TSW50ZWdlcilkZWNvZGVEYXRhOihjb25zdCB1aW50OF90ICopZGF0
YQorICAgICAgICBzaXplOihzaXplX3Qpc2l6ZQorICAgICAgICB0aW1lU3RhbXA6KHVpbnQzMl90
KXRpbWVTdGFtcCB7CisKICAgaWYgKF9lcnJvciAhPSBub0VycikgewogICAgIFJUQ19MT0coTFNf
V0FSTklORykgPDwgIkxhc3QgZnJhbWUgZGVjb2RlIGZhaWxlZC4iOwogICAgIF9lcnJvciA9IG5v
RXJyOwpAQCAtMTA5LDggKzExNiw3IEBAIHZvaWQgZGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNr
KHZvaWQgKmRlY29kZXJSZWYsCiAgIH0KIAogICBydGM6OlNjb3BlZENGVHlwZVJlZjxDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25SZWY+IGlucHV0Rm9ybWF0ID0KLSAgICAgIHJ0Yzo6U2NvcGVkQ0Yo
d2VicnRjOjpDcmVhdGVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKCh1aW50OF90ICopaW5wdXRJbWFn
ZS5idWZmZXIuYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGgpKTsKKyAgICAgIHJ0Yzo6
U2NvcGVkQ0Yod2VicnRjOjpDcmVhdGVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKGRhdGEsIHNpemUp
KTsKICAgaWYgKGlucHV0Rm9ybWF0KSB7CiAgICAgLy8gQ2hlY2sgaWYgdGhlIHZpZGVvIGZvcm1h
dCBoYXMgY2hhbmdlZCwgYW5kIHJlaW5pdGlhbGl6ZSBkZWNvZGVyIGlmCiAgICAgLy8gbmVlZGVk
LgpAQCAtMTMyLDggKzEzOCw3IEBAIHZvaWQgZGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZv
aWQgKmRlY29kZXJSZWYsCiAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKICAg
fQogICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICBpZiAoIXdl
YnJ0Yzo6SDI2NEFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoKHVpbnQ4X3QgKilpbnB1dElt
YWdlLmJ1ZmZlci5ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlucHV0SW1hZ2UuYnVmZmVyLmxlbmd0aCwKKyAgaWYgKCF3ZWJydGM6OkgyNjRB
bm5leEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVyKGRhdGEsIHNpemUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdmlkZW9Gb3JtYXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2FtcGxlQnVmZmVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21lbW9yeVBvb2wp
KSB7CkBAIC0xNDIsNyArMTQ3LDcgQEAgdm9pZCBkZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2so
dm9pZCAqZGVjb2RlclJlZiwKICAgUlRDX0RDSEVDSyhzYW1wbGVCdWZmZXIpOwogICBWVERlY29k
ZUZyYW1lRmxhZ3MgZGVjb2RlRmxhZ3MgPSBrVlREZWNvZGVGcmFtZV9FbmFibGVBc3luY2hyb25v
dXNEZWNvbXByZXNzaW9uOwogICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJhbWVEZWNvZGVQYXJhbXM+
IGZyYW1lRGVjb2RlUGFyYW1zOwotICBmcmFtZURlY29kZVBhcmFtcy5yZXNldChuZXcgUlRDRnJh
bWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCBpbnB1dEltYWdlLnRpbWVTdGFtcCkpOworICBmcmFt
ZURlY29kZVBhcmFtcy5yZXNldChuZXcgUlRDRnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCB0
aW1lU3RhbXApKTsKICAgT1NTdGF0dXMgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRl
Y29kZUZyYW1lKAogICAgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1wbGVCdWZmZXIsIGRl
Y29kZUZsYWdzLCBmcmFtZURlY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOwogI2lmIGRl
ZmluZWQoV0VCUlRDX0lPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxODQw
MWRhNTM3NDVkMjk0MTg0YzhmOWE2MDlkZmVmOTkzYjFmZTMwLi4yMmEzYWVlMzA4MmE4NGM4MzBh
NzU3MjA3YWQ3NWY3NzQxNWIzYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC05NDEsNyArOTQxLDcgQEAKIAkJNDEzQTI0NDYxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVv
RW5jb2RlclZQOS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDEzQTI0MEUxRkUxOTkwNTAwMzczRTk5IC8qIFJUQ1ZpZGVvRW5jb2RlclZQOS5oICovOyB9
OwogCQk0MTNBMjQ0NzFGRTE5OTFBMDAzNzNFOTkgLyogUlRDTWVkaWFTdHJlYW1UcmFjay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzQTI0MEYxRkUx
OTkwNjAwMzczRTk5IC8qIFJUQ01lZGlhU3RyZWFtVHJhY2suaCAqLzsgfTsKIAkJNDEzQTI0NDgx
RkUxOTkxQTAwMzczRTk5IC8qIFJUQ0ludGVydmFsUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0EyNDEwMUZFMTk5MDYwMDM3M0U5OSAvKiBS
VENJbnRlcnZhbFJhbmdlLmggKi87IH07Ci0JCTQxM0EyNDQ5MUZFMTk5MUEwMDM3M0U5OSAvKiBS
VENNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxM0EyNDExMUZFMTk5MDYwMDM3M0U5OSAvKiBSVENNYWNyb3MuaCAqLzsgfTsKKwkJNDEzQTI0
NDkxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ01hY3Jvcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzQTI0MTExRkUxOTkwNjAwMzczRTk5IC8qIFJUQ01h
Y3Jvcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTQxM0EyNDRBMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0EyNDEyMUZFMTk5
MDYwMDM3M0U5OSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uaCAqLzsgfTsKIAkJNDEzQTI0NEIx
RkUxOTkxQTAwMzczRTk5IC8qIFJUQ0F1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNBMjQxMzFGRTE5OTA3MDAzNzNFOTkgLyogUlRD
QXVkaW9Tb3VyY2UuaCAqLzsgfTsKIAkJNDEzQTI0NEMxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1J0
cEVuY29kaW5nUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEzQTI0MTQxRkUxOTkwNzAwMzczRTk5IC8qIFJUQ1J0cEVuY29kaW5nUGFy
YW1ldGVycy5oICovOyB9OwpAQCAtMTI0NSw3ICsxMjQ1LDcgQEAKIAkJNDE3OTUzQzIyMTY5ODI0
QjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTYyMjVGNzIxNjk4MUY0MDBBOTFD
OUIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaCAqLzsgfTsKIAkJNDE3OTUzQzMy
MTY5ODI0QjAwMjgyNjZCIC8qIFJUQ0gyNjRQcm9maWxlTGV2ZWxJZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExNTIxRDQyMTY5ODIxRjAwMEFCQUY3
IC8qIFJUQ0gyNjRQcm9maWxlTGV2ZWxJZC5oICovOyB9OwogCQk0MTc5NTNDNTIxNjk4MjRCMDAy
ODI2NkIgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNjIyNUYyMjE2OTgxRjMwMEE5MUM5QiAvKiBS
VENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NC5oICovOyB9OwotCQk0MTc5NTNDNjIxNjk4MjRCMDAy
ODI2NkIgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2MjI1RjMyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ1ZpZGVv
RGVjb2RlckgyNjQuaCAqLzsgfTsKKwkJNDE3OTUzQzYyMTY5ODI0QjAwMjgyNjZCIC8qIFJUQ1Zp
ZGVvRGVjb2RlckgyNjQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxNjIyNUYzMjE2OTgxRjMwMEE5MUM5QiAvKiBSVENWaWRlb0RlY29kZXJIMjY0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE3OTUz
QzcyMTY5ODI0QjAwMjgyNjZCIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjQubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTYyMjVGNDIxNjk4MUYzMDBBOTFD
OUIgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5tbSAqLzsgfTsKIAkJNDE3OTUzQzgyMTY5ODI0QjAw
MjgyNjZCIC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTYyMjVFRjIxNjk4MUYyMDBBOTFDOUIgLyog
UlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQuaCAqLzsgfTsKIAkJNDE3OTUzQzkyMTY5ODI0QjAw
MjgyNjZCIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNjIyNUVDMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRl
b0VuY29kZXJIMjY0LmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKaW5kZXggOTNjOTMwNWY0MjEwMmQ3MjZl
NzQxZTU5ZjIyNmI1ZWU0Njg5YzEyYS4uOWZlODI0YjE4NzM4ZWEwMDc4ODRmNDI2NWExZDU5YTVl
NGE1MjE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVt
b3RlVmlkZW9TYW1wbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1JlbW90ZVZpZGVvU2FtcGxlLmNwcApAQCAtNjEsNiArNjEsMTcgQEAgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZVZpZGVvU2FtcGxlPiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKE1lZGlhU2FtcGxl
JiYgc2FtcGwKICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPihu
ZXcgUmVtb3RlVmlkZW9TYW1wbGUoc3VyZmFjZSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwgc2FtcGxl
LnByZXNlbnRhdGlvblRpbWUoKSwgc2FtcGxlLnZpZGVvUm90YXRpb24oKSwgc2FtcGxlLnZpZGVv
TWlycm9yZWQoKSkpOwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IFJl
bW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgTWVk
aWFUaW1lJiYgcHJlc2VudGF0aW9uVGltZSkKK3sKKyAgICBhdXRvIHN1cmZhY2UgPSBDVlBpeGVs
QnVmZmVyR2V0SU9TdXJmYWNlKGltYWdlQnVmZmVyKTsKKyAgICBpZiAoIXN1cmZhY2UpIHsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRl
OiBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlIHJldHVybmVkIG51bGxwdHIiKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVWaWRlb1NhbXBsZT4obmV3IFJlbW90ZVZpZGVvU2FtcGxlKHN1cmZhY2UsIHNSR0JDb2xvclNw
YWNlUmVmKCksIFdURk1vdmUocHJlc2VudGF0aW9uVGltZSksIE1lZGlhU2FtcGxlOjpWaWRlb1Jv
dGF0aW9uOjpOb25lLCBmYWxzZSkpOworfQorCiBSZW1vdGVWaWRlb1NhbXBsZTo6UmVtb3RlVmlk
ZW9TYW1wbGUoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNl
LCBNZWRpYVRpbWUmJiB0aW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbiwg
Ym9vbCBtaXJyb3JlZCkKICAgICA6IG1faW9TdXJmYWNlKFdlYkNvcmU6OklPU3VyZmFjZTo6Y3Jl
YXRlRnJvbVN1cmZhY2Uoc3VyZmFjZSwgY29sb3JTcGFjZSkpCiAgICAgLCBtX3JvdGF0aW9uKHJv
dGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVt
b3RlVmlkZW9TYW1wbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90
ZVZpZGVvU2FtcGxlLmgKaW5kZXggZjAyZDRmY2I0YWI5M2Q2NmMxM2RhMDQ4YjI0YTI4MGQxNzNm
NmU4ZS4uYmQyNTVmNzk0MDA0MjcxZTNhYjRlYjI2MDI3ZTY0YTc0YTkyODQ4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5o
CkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiSU9TdXJmYWNlLmgiCiAjZW5kaWYKIAordHlw
ZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZSB7CkBAIC00Nyw2ICs0OSw3IEBAIHB1
YmxpYzoKIAogI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IGNyZWF0ZShNZWRpYVNhbXBsZSYmKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2Ft
cGxlPiBjcmVhdGUoQ1ZQaXhlbEJ1ZmZlclJlZiwgTWVkaWFUaW1lJiYgcHJlc2VudGF0aW9uVGlt
ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgSU9TdXJmYWNlUmVmIHN1cmZhY2UoKTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRy
YW5zZmVyU2Vzc2lvblZULmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9J
bWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKaW5kZXggMTZlNTU3NmRkYTFjZGU2M2YwZDdhNTNkOWE5
NTc1Nzk5NTI4MWYwMS4uM2I3NDMwZmY0YzhmZjhiZDI3NGZjNmIyZWFkN2NlNWJjNWIwZTVkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaApAQCAtNTUsNiArNTUsMTAgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxNZWRpYVNhbXBsZT4gY3JlYXRlTWVkaWFTYW1wbGUoSU9T
dXJmYWNlUmVmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBJbnRTaXplJiwgTWVkaWFTYW1wbGU6
OlZpZGVvUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSwgYm9vbCBt
aXJyb3JlZCA9IGZhbHNlKTsKICNlbmRpZgogCisjaWYgSEFWRShJT1NVUkZBQ0UpICYmICFQTEFU
Rk9STShNQUNDQVRBTFlTVCkKKyAgICBXRUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gY3JlYXRlUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmLCBjb25zdCBJbnRTaXplJik7
CisjZW5kaWYKKwogICAgIHVpbnQzMl90IHBpeGVsRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV9w
aXhlbEZvcm1hdDsgfQogCiBwcml2YXRlOgpAQCAtNjMsNyArNjcsNiBAQCBwcml2YXRlOgogI2lm
IEhBVkUoSU9TVVJGQUNFKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgQ0ZEaWN0aW9u
YXJ5UmVmIGlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25zKElPU3VyZmFjZVJlZik7
CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVDTVNhbXBsZUJ1ZmZlcihJ
T1N1cmZhY2VSZWYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IEludFNpemUmKTsKLSAgICBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmLCBj
b25zdCBJbnRTaXplJik7CiAjZW5kaWYKIAogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJl
Zj4gY29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmLCBjb25zdCBJbnRTaXpl
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuaAppbmRleCBkM2Mz
ODM5NWMwNzdmMzQ2MDRiNWJiMGY0YjQzYWUxMTAwY2RmMjMzLi4yMzllMzRhNjg1YjQxMGJjOTM4
YzE0OTE1ZTk3Y2YxODJlMDdlZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlckNvY29hLmgKQEAgLTQxLDkgKzQxLDEwIEBAIHB1YmxpYzoKICAgICBMaWJXZWJSVENQcm92
aWRlckNvY29hKCkgPSBkZWZhdWx0OwogICAgIH5MaWJXZWJSVENQcm92aWRlckNvY29hKCk7CiAK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVE
ZWNvZGVyRmFjdG9yeSgpIG92ZXJyaWRlOworCiBwcml2YXRlOgogICAgIHZvaWQgc2V0QWN0aXZl
KGJvb2wpIGZpbmFsOwotICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZh
Y3Rvcnk+IGNyZWF0ZURlY29kZXJGYWN0b3J5KCkgZmluYWw7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFjdG9yeT4gY3JlYXRlRW5jb2RlckZhY3RvcnkoKSBmaW5h
bDsKIAogICAgIHZvaWQgc2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWQoYm9vbCBhbGxvd2Vk
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0
LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcK
aW5kZXggNzQ4OTY3ZTI1MWVhOWViM2FkNGI5Yzg2Y2MzOGNhOTA4MGZlOWRhOS4uNmI4ZWI1NTk3
ZTMxYmI5NDRiMWI2ZmYxZDQyNjY4NzhmZGZlNDMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25m
aWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKQEAgLTEzOCw3ICsxMzgsNyBAQCBMSUJXRUJSVENf
TElCUkFSWV9ESVJfQ09DT0FfVE9VQ0hfTk8gPSAkKExJQldFQlJUQ19MSUJSQVJZX0RJUl9VU0Vf
T1ZFUlJJREVfRlJBTQogTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklERV9GUkFNRVdP
UktTX0RJUl9OTyA9ICQoV0VCQ09SRV9GUkFNRVdPUktTX0RJUikvV2ViQ29yZS5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9GcmFtZXdvcmtzOwogTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklE
RV9GUkFNRVdPUktTX0RJUl9ZRVMgPSAkKFdLX09WRVJSSURFX0ZSQU1FV09SS1NfRElSKTsKIAot
T1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtaWZyYW1ld29yayIkKFNES19ESVIpJChTWVNU
RU1fTElCUkFSWV9ESVIpL1ByaXZhdGVGcmFtZXdvcmtzIiAkKFVORVhQT1JURURfU1lNQk9MX0xE
RkxBR1MpICQoQVNBTl9PVEhFUl9MREZMQUdTKSAkKEZSQU1FV09SS19BTkRfTElCUkFSWV9MREZM
QUdTKSAkKFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKTsKK09USEVSX0xERkxBR1Mg
PSAkKGluaGVyaXRlZCkgLWlmcmFtZXdvcmsiJChTREtfRElSKSQoU1lTVEVNX0xJQlJBUllfRElS
KS9Qcml2YXRlRnJhbWV3b3JrcyIgJChVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTKSAkKEFTQU5f
T1RIRVJfTERGTEFHUykgJChGUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHUykgJChXS19SRUxP
Q0FUQUJMRV9GUkFNRVdPUktfTERGTEFHUykgICAtWGxpbmtlciAtLW5vLWRlbWFuZ2xlOwogCiBS
RUVYUE9SVEVEX0ZSQU1FV09SS19OQU1FUyA9IFdlYktpdExlZ2FjeTsKIFJFRVhQT1JURURfRlJB
TUVXT1JLX05BTUVTW3Nkaz1tYWNvc3gqXSA9ICQoaW5oZXJpdGVkKSBXZWJDb3JlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDA3ZDMzMDVi
ODIzOTcyZTc4N2ZmZWU3ZGI4MGUxMTRkMjI1MTEyNjYuLmYzN2YzYmQxZjFmZDRiODI3YWE4OWEz
MzE0MTQ5MjBkN2ExMTNhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKQEAgLTE3LDYgKzE3LDcgQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nl
c3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHku
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29v
a2llTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ3Vz
dG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdl
cy5pbgpAQCAtOTksNiArMTAwLDggQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ1JlbW90ZUNvZGVjcy5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggOTg2OWNmMTcxNjFmZWQ5NDQ5MmIy
ZWI2NzZhMzA5NjExN2NlNjUyZi4uNzBhZWI3YjNlZjZlMGUxYzUzNTAzNTMzYWIyOTA4MGJiOGFj
NzdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CkBAIC00OCw2ICs0OCwxNSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJNZXNzYWdlcwogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGVnYWN5Q3VzdG9tUHJvdG9jb2xN
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL0xlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL0xpYldlYlJUQ0NvZGVjc01lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L0xpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL0xpYldlYlJUQ0NvZGVjc01lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MaWJXZWJSVENDb2RlY3NQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL0xpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdl
c1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
TGliV2ViUlRDUmVtb3RlQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGliV2ViUlRDUmVtb3RlQ29kZWNzTWVzc2Fn
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGliV2Vi
UlRDUmVtb3RlQ29kZWNzTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZVJlY2Vp
dmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzUmVwbGll
cy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMTdiZGNiNWYyZGFhYTliYjFiNmFm
NGQ3NGFiNThlNTA0YTgxMjE4My4uMzg1MDI3NzQzMmUxODkzZTY0Y2QyMzE5NDAyNGY3Y2JkZDc3
MGVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjUsNiArMjUsNyBAQCBWUEFU
SCA9IFwKICAgICAkKFdlYktpdDIpL0dQVVByb2Nlc3MgXAogICAgICQoV2ViS2l0MikvR1BVUHJv
Y2Vzcy9tYWMgXAogICAgICQoV2ViS2l0MikvR1BVUHJvY2Vzcy9tZWRpYSBcCisgICAgJChXZWJL
aXQyKS9HUFVQcm9jZXNzL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2VzcyBc
CiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy9Db29raWVzIFwKICAgICAkKFdlYktpdDIp
L05ldHdvcmtQcm9jZXNzL2NhY2hlIFwKQEAgLTUxLDYgKzUyLDcgQEAgVlBBVEggPSBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvR1BVIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvR1BVL21lZGlhIFwKKyAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvR1BVL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL0ljb25EYXRhYmFzZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUg
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCkBAIC0xMDksMTIgKzEx
MSwxNCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBEcmF3aW5nQXJlYVByb3h5IFwKICAg
ICBFZGl0YWJsZUltYWdlQ29udHJvbGxlciBcCiAgICAgRXZlbnREaXNwYXRjaGVyIFwKLSAgICBM
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIgXAotICAgIExlZ2FjeUN1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5IFwKICAgICBHUFVQcm9jZXNzIFwKICAgICBHUFVQcm9jZXNzUHJveHkgXAogICAg
IEdQVVByb2Nlc3NDb25uZWN0aW9uIFwKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFwK
KyAgICBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIgXAorICAgIExlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlclByb3h5IFwKKyAgICBMaWJXZWJSVENDb2RlY3MgXAorICAgIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5IFwKICAgICBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciBcCiAgICAgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MgXAogICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2Vy
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAppbmRleCBkMDE5ZTcxNWE2YzY4MmVjNmE0MjViNWUzOTM5NzBlYTJjNzhk
NjVkLi5lOTY4MDI2MDZhNGRkMTMyNGJhMjllMGUwZTc2NjM3OWEzNjE4M2MzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vzcy5oIgogI2luY2x1ZGUg
IkdQVVByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NQcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHkuaCIKKyNpbmNsdWRlICJMaWJXZWJS
VENDb2RlY3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
IlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCkBAIC0xMTYsNiArMTE4LDE2IEBAIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBV
U0UoTElCV0VCUlRDKQorTGliV2ViUlRDQ29kZWNzUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmxpYldlYlJUQ0NvZGVjc1Byb3h5KCkKK3sKKyAgICBpZiAoIW1fbGliV2ViUlRDQ29k
ZWNzUHJveHkpCisgICAgICAgIG1fbGliV2ViUlRDQ29kZWNzUHJveHkgPSBtYWtlVW5pcXVlPExp
YldlYlJUQ0NvZGVjc1Byb3h5PigqdGhpcyk7CisKKyAgICByZXR1cm4gKm1fbGliV2ViUlRDQ29k
ZWNzUHJveHk7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0g
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCkpIHsKQEAgLTEyOCw2ICsxNDAsMTIgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0Uo
TElCV0VCUlRDKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNz
YWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAg
ICAgICBsaWJXZWJSVENDb2RlY3NQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nl
c3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYK
IH0KIAogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBj
NDA2ODVmMTY3ZDU0MGJlNWVhNzRlNjgzYWQwOTczOGI5ZGFhZDlmLi5kMzNlM2Y5NzljNjY5N2Rh
MzA0YWRjYWNiNmU2NDRhZTRhMzU5M2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTM3LDYgKzM3LDcgQEAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVQcm9jZXNzOworY2xhc3MgTGliV2ViUlRDQ29k
ZWNzUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiAKQEAgLTU5LDYgKzYwLDkgQEAgcHJpdmF0ZToK
ICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKIAogICAgIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgp
OworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQorICAgIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5JiBsaWJXZWJSVENDb2RlY3NQcm94eSgpOworI2VuZGlmCiAjaWYgUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eSYgdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpOwogI2VuZGlmCkBAIC03Niw2
ICs4MCw5IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+
IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiBVU0UoTElCV0VCUlRDKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENDb2Rl
Y3NQcm94eT4gbV9saWJXZWJSVENDb2RlY3NQcm94eTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ0NvZGVjc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk4ODAzOTdlZjgxMDliY2ZmYzUy
YjdkYjg3NTcxZjY0NmJjNDc4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaApAQCAtMCwwICsxLDY4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoTElCV0VCUlRDKSAmJiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCisjaW5jbHVkZSAiUlRDRGVjb2RlcklkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIElQ
QyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIERhdGFSZWZlcmVu
Y2U7Cit9CisKK25hbWVzcGFjZSB3ZWJydGMgewordXNpbmcgTG9jYWxEZWNvZGVyID0gdm9pZCo7
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOworCitjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eSA6IHByaXZhdGUgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4
cGxpY2l0IExpYldlYlJUQ0NvZGVjc1Byb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsK
KyAgICB+TGliV2ViUlRDQ29kZWNzUHJveHkoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQor
Citwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAgICB2
b2lkIGNyZWF0ZURlY29kZXIoUlRDRGVjb2RlcklkZW50aWZpZXIpOworICAgIHZvaWQgcmVsZWFz
ZURlY29kZXIoUlRDRGVjb2RlcklkZW50aWZpZXIpOworICAgIHZvaWQgZGVjb2RlRnJhbWUoUlRD
RGVjb2RlcklkZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJik7CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M7CisgICAgSGFzaE1hcDxSVENEZWNvZGVySWRlbnRpZmllciwgd2VicnRj
OjpMb2NhbERlY29kZXI+IG1fZGVjb2RlcnM7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdhMTMzNGRjZDBkM2FhMWRiOWQ1MDE1
NTRmMWEzMDljYzY1NzI3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwz
MiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFVTRShMSUJX
RUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3Nh
Z2VzIC0+IExpYldlYlJUQ0NvZGVjc1Byb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIENyZWF0ZURl
Y29kZXIoV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmllciBpZCkKKyAgICBSZWxlYXNlRGVjb2Rl
cihXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyIGlkKQorICAgIERlY29kZUZyYW1lKFdlYktp
dDo6UlRDRGVjb2RlcklkZW50aWZpZXIgaWQsIHVpbnQzMl90IHRpbWVTdGFtcCwgSVBDOjpEYXRh
UmVmZXJlbmNlIGRhdGEpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTVh
NDUyNDcwZDRhMDFlNjFlZDgwM2U4MTkxNTQ0ZmQ2MTI5MmIxYwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0K
QEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHkuaCIKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTGli
V2ViUlRDQ29kZWNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KKyNpbmNsdWRlIDx3ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CisKKyNpZiBVU0UoTElC
V0VCUlRDKSAmJiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworTGliV2ViUlRDQ29kZWNzUHJveHk6OkxpYldlYlJUQ0NvZGVjc1By
b3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pCisgICAgOiBtX2dwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvbikKK3sKK30KKworTGliV2ViUlRDQ29kZWNz
UHJveHk6On5MaWJXZWJSVENDb2RlY3NQcm94eSgpCit7CisgICAgZm9yIChhdXRvIGRlY29kZXIg
OiBtX2RlY29kZXJzLnZhbHVlcygpKQorICAgICAgICB3ZWJydGM6OnJlbGVhc2VMb2NhbERlY29k
ZXIoZGVjb2Rlcik7Cit9CisKK3ZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmNyZWF0ZURlY29k
ZXIoUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoIW1fZGVj
b2RlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fZGVjb2RlcnMuYWRkKGlkZW50aWZp
ZXIsIHdlYnJ0Yzo6Y3JlYXRlTG9jYWxEZWNvZGVyKF4oQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMsIHVpbnQzMl90IHRpbWVTdGFtcCkgeworICAgICAg
ICBpZiAoYXV0byBzYW1wbGUgPSBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHBp
eGVsQnVmZmVyLCBNZWRpYVRpbWUodGltZVN0YW1wTnMsIDEpKSkKKyAgICAgICAgICAgIG1fZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TGliV2Vi
UlRDQ29kZWNzOjpDb21wbGV0ZWREZWNvZGluZyB7IGlkZW50aWZpZXIsIHRpbWVTdGFtcCwgKnNh
bXBsZSB9LCAwKTsKKyAgICB9KSk7Cit9CisKK3ZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OnJl
bGVhc2VEZWNvZGVyKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNT
RVJUKG1fZGVjb2RlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIGlmIChhdXRvIGRlY29k
ZXIgPSBtX2RlY29kZXJzLnRha2UoaWRlbnRpZmllcikpCisgICAgICAgIHdlYnJ0Yzo6cmVsZWFz
ZUxvY2FsRGVjb2RlcihkZWNvZGVyKTsKK30KKwordm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6
ZGVjb2RlRnJhbWUoUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDMyX3QgdGlt
ZVN0YW1wLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit7CisgICAgQVNTRVJUKG1f
ZGVjb2RlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1dG8gZGVjb2RlciA9IG1fZGVj
b2RlcnMuZ2V0KGlkZW50aWZpZXIpOworICAgIGlmICghZGVjb2RlcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKHdlYnJ0Yzo6ZGVjb2RlRnJhbWUoZGVjb2RlciwgdGltZVN0YW1wLCBkYXRh
LmRhdGEoKSwgZGF0YS5zaXplKCkpKQorICAgICAgICBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6RmFpbGVkRGVj
b2RpbmcgeyBpZGVudGlmaWVyIH0sIDApOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZjJlOWVkN2FiNTQwMmVmNTExODhmN2U4
ZGJlMzk2YmE4YWNlMGZhZC4uNzUzZWE5N2UyZmIzMTJhZmFhNzc1ZmZlY2ZmOTY2YjdiZDk1MmQy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMjAsNiAr
MjIwLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAg
ICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6
TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlm
aWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlN0
b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDE5MTZkYjNkNjViNjVl
Y2RjNWUwMGVhN2VjMDFlZmRjNjU2NjEwZmYuLmFjZjQ5YzcxYzc2NDMwMzQwYjFhNTVmZDQ0ZWVl
MTQ1MmI0NThiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTA0LDEyICs1MDQsMTMgQEAgV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCiBXZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKK1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuY3BwCiAKIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCiBXZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmNwcAogV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAotV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dENoYW5uZWwuY3BwCitXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAgQG5v
LXVuaWZ5CiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuY3BwCiBX
ZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViU29ja2V0U3RyZWFtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGE0YWE1NWUy
YWExOWExNDY2MjU0YmJmMWJiYzcyMjg5OWI2YzYyNzguLmM3MTNiYWUzODg3YWNlZjc5ZDQzOWU5
MDFlYTdhODI4NTYwNGI5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYxLDYgKzYxLDcg
QEAgR1BVUHJvY2Vzcy9pb3MvR1BVUHJvY2Vzc0lPUy5tbQogR1BVUHJvY2Vzcy9tYWMvR1BVUHJv
Y2Vzc01hYy5tbQogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKK0dQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCiBHUFVQcm9jZXNzL0VudHJ5UG9p
bnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2aWNlRW50cnlQb2ludC5tbQogCiBQbGF0Zm9ybS9j
Zi9Nb2R1bGVDRi5jcHAKQEAgLTYzMyw3ICs2MzQsNyBAQCBFZGl0YWJsZUltYWdlQ29udHJvbGxl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiBHUFVQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBHUFVQcm9jZXNz
TWVzc2FnZVJlY2VpdmVyLmNwcAotLy9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCi0vL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcAorTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCitMaWJXZWJSVEND
b2RlY3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJl
Y2VpdmVyLmNwcAogVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZTNiOTE5MjBjOWI4YTNmMzZhMGJkMTQ4Y2E4NThkYmRkY2IzYTA4Ny4uMDA1NjZiNTc4OGIw
NTZmZjYxY2QwMTMzYjI3NmJhMDAwZTc1MTQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MTYsNiArOTE2LDcgQEAKIAkJNDFEQzQ1
OUMxRTNEQkIyODAwQjExRjUxIC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEQzQ1OUExRTNEQkIyNDAwQjEx
RjUxIC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oICovOyB9OwogCQk0MURDNDU5RjFFM0RCREE1
MDBCMTFGNTEgLyogV2ViUlRDU29ja2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MUZBRjVGMzFFM0JGRTdGMDAxQUU2NzggLyogV2ViUlRDU29ja2V0
LmggKi87IH07CiAJCTQxREU3QzZDMjIyNzhGMUUwMDUzMkI2NSAvKiBTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNTE4NTM2MjIyNzA0RjYwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCAq
LzsgfTsKKwkJNDFFMEE3Q0IyM0I2NDVDRDAwNTYxMDYwIC8qIFdlYlNvY2tldENoYW5uZWwuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTE1QUMy
MjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwICovOyB9OwogCQk0MUYwNjBF
MTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjBERDE2
NTQzMTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CiAJCTQxRkFCRDJBMUY0REUwMDEwMDZBNkM5NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNo
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUJE
MjgxRjREREZEQzAwNkE2Qzk3IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggKi87IH07CiAJ
CTQxRkFGNUY1MUUzQzA2NDkwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjQxRTNDMDY0MTAwMUFF
Njc4IC8qIFdlYlJUQ1Jlc29sdmVyLmggKi87IH07CkBAIC0zMjkxLDYgKzMyOTIsMTAgQEAKIAkJ
NDE1MUU1QzMxRkJCOTBBOTAwRTQ3RTJEIC8qIEZvcm1EYXRhUmVmZXJlbmNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1EYXRhUmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxNTc4NTMwMjEyNzZCNkYwMEREMzgwMCAvKiBjb3B5LXdlYmNv
bnRlbnQtcmVzb3VyY2VzLXRvLXByaXZhdGUtaGVhZGVycy5zaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnNoOyBwYXRoID0gImNv
cHktd2ViY29udGVudC1yZXNvdXJjZXMtdG8tcHJpdmF0ZS1oZWFkZXJzLnNoIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1N0U0QUYyMEUyRUM5ODAwQTZDMEQ3IC8qIGNvbS5nb29n
bGUubzFkYnJvd3NlcnBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uZ29vZ2xl
Lm8xZGJyb3dzZXJwbHVnaW4uc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzIx
OTg5MjNCNjEyODIwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGliV2ViUlRDQ29kZWNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxNzIxOThBMjNCNjEyODIwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGliV2ViUlRDQ29kZWNzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3MjE5OEMyM0I2MTJFODAwQUU1Njg2
IC8qIFJUQ0RlY29kZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJUQ0RlY29kZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxNzIxOThEMjNCNjJDN0MwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTc2OTAxMzIyRkRENDFCMDBCMTU3NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Byb3Zp
ZGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVBQzIyNTZCQjc0MDBE
NkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsLmNwcDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0
Q2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFEMjI1NkJC
NzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWwuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hh
bm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzMzMiw2ICszMzM3LDkgQEAK
IAkJNDFEQzQ1OUExRTNEQkIyNDAwQjExRjUxIC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaWJXZWJSVENTb2NrZXRDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFEQzQ1OUQxRTNEQkNGMDAwQjExRjUxIC8q
IFdlYlJUQ1NvY2tldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBX
ZWJSVENTb2NrZXQuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFEQzQ1QTAxRTNEQzUzQzAwQjExRjUxIC8q
IFdlYlJUQ1Jlc29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFdlYlJUQ1Jlc29sdmVyLmNwcDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFFMEE3QzYyM0I2Mzk3ODAwNTYx
MDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRTBBN0M3MjNCNjM5
NzkwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaWJX
ZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDFFMEE3QzgyM0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTGliV2ViUlRDQ29kZWNzUHJveHkubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxRjA2MEREMTY1NDMxNzUwMEYzMjgxQyAvKiBXZWJTb2NrZXRD
aGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldENo
YW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJNDFGQUJEMjgxRjREREZEQzAwNkE2Qzk3IC8qIENhY2hlU3RvcmFn
ZUVuZ2luZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlU3Rv
cmFnZUVuZ2luZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkFGNUYz
MUUzQkZFN0YwMDFBRTY3OCAvKiBXZWJSVENTb2NrZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV2ViUlRDU29ja2V0Lmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9XZWJSVENT
b2NrZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYzMjcsNiArNjMzNSw3IEBA
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTA3OTIzMTJGMjM5QjNC
MEMwMDk1OThFMiAvKiBtZWRpYSAqLywKKwkJCQk0MTcyMTk4ODIzQjYxMjYxMDBBRTU2ODYgLyog
d2VicnRjICovLAogCQkJCTJEN0U0M0MwMjM3NTJDRDkwMEVBNUNBMCAvKiBHUFVQcm9jZXNzQ29u
bmVjdGlvbi5jcHAgKi8sCiAJCQkJMkQ3RTQzQzMyMzc1MkNEOTAwRUE1Q0EwIC8qIEdQVVByb2Nl
c3NDb25uZWN0aW9uLmggKi8sCiAJCQkJMkQ3RTQzQzIyMzc1MkNEOTAwRUE1Q0EwIC8qIEdQVVBy
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLApAQCAtNjM0Miw2ICs2MzUxLDcgQEAKIAkJ
CQkyRDlGQjIwNDIzNzUyMDlEMDA0OUY5MzYgLyogaW9zICovLAogCQkJCTJEOUZCMjA2MjM3NTIw
OUQwMDQ5RjkzNiAvKiBtYWMgKi8sCiAJCQkJMDdDNzVDMTcyMzk5QTNEQjAwODhFNjVCIC8qIG1l
ZGlhICovLAorCQkJCTQxNzIxOThFMjNCNjMzQ0EwMEFFNTY4NiAvKiB3ZWJydGMgKi8sCiAJCQkJ
MkQ5RkIyMEMyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
ICovLAogCQkJCTJEOUZCMjAwMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggKi8sCiAJCQkJMkQ5RkIyMDkyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCkBAIC03MDYzLDYgKzcwNzMsMjcgQEAKIAkJ
CW5hbWUgPSB3ZWJydGM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk0MTcy
MTk4ODIzQjYxMjYxMDBBRTU2ODYgLyogd2VicnRjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0MTcyMTk4QTIzQjYxMjgyMDBBRTU2ODYgLyogTGliV2Vi
UlRDQ29kZWNzLmNwcCAqLywKKwkJCQk0MTcyMTk4OTIzQjYxMjgyMDBBRTU2ODYgLyogTGliV2Vi
UlRDQ29kZWNzLmggKi8sCisJCQkJNDE3MjE5OEQyM0I2MkM3QzAwQUU1Njg2IC8qIExpYldlYlJU
Q0NvZGVjcy5tZXNzYWdlcy5pbiAqLywKKwkJCQk0MTcyMTk4QzIzQjYxMkU4MDBBRTU2ODYgLyog
UlRDRGVjb2RlcklkZW50aWZpZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gd2VicnRjOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJNDE3MjE5OEUyM0I2MzNDQTAwQUU1Njg2
IC8qIHdlYnJ0YyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJ
CQkJNDFFMEE3QzgyM0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tICov
LAorCQkJCTQxRTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5o
ICovLAorCQkJCTQxRTBBN0M3MjNCNjM5NzkwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94
eS5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gd2VicnRjOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNDFEMTI5RDgxRjNEMTAxNDAwRDE1RTQ3IC8qIENhY2hl
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTEyMDgwLDYg
KzEyMTExLDcgQEAKIAkJCQkyREY2RkU1MjIxMkUxMTA5MDA0NjkwMzAgLyogV2ViUGFnZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlDMENFNzJBMDEyNDdFNzFEMDBCQzBFQzQgLyogV2ViUGFnZU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0JEMzkxNDEyNUJCMUE4MDBE
MkMyOUYgLyogV2ViUGFnZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTQxRTBBN0NCMjNCNjQ1Q0QwMDU2MTA2MCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDRTlDRTEwMUZBMDc2N0EwMDAxNzdERSAvKiBXZWJQYWdlVXBkYXRl
UHJlZmVyZW5jZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0QzkxQTRCNEVBMTAwQUQ1
ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQUIxRjc5NjFEMUIzNjEzMDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5hdG9y
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBlOGRhYWUw
ZjliYTg1YTI1MWI3MDY3ZGUzOGNhNGE3Njk3NDIxNTgwLi42NGE0YjRmN2RlY2EzODZiNTI3NTlh
ZmI0NzZjZWY5Zjg4ZGY4MmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzAsNiArMzAsOCBAQAogCiAjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjcy5oIgorI2luY2x1ZGUgIkxp
YldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgpAQCAtNzUsNiArNzcsMTIgQEAgdm9p
ZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkQKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgorI2lm
IFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRD
Q29kZWNzKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZDJkNDU1NDE5MzQ3NzgyMGVjMzZkOWE5OGU5NmNjY2VjNDUz
YmJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzLmNwcApAQCAtMCwwICsxLDE0OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3MuaCIKKworI2lmIFVT
RShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
KyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ0Nv
ZGVjc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRD
TWFjcm9zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorI2luY2x1
ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2Vi
S2l0L1dlYktpdFV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdWludDY0X3QgY3JlYXRlVmlkZW9EZWNvZGVyKGNv
bnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmIGZvcm1hdCkKK3sKKyAgICBpZiAoZm9ybWF0Lm5h
bWUgIT0gIkgyNjQiKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGF1dG8gZGVjb2RlcklkZW50
aWZpZXIgPSBSVENEZWNvZGVySWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisKKyAg
ICBjYWxsT25NYWluUnVuTG9vcChbZGVjb2RlcklkZW50aWZpZXJdIHsKKyAgICAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCkuY3JlYXRlRGVjb2RlcihkZWNvZGVy
SWRlbnRpZmllcik7CisgICAgfSk7CisgICAgcmV0dXJuIGRlY29kZXJJZGVudGlmaWVyLnRvVUlu
dDY0KCk7Cit9CisKK3N0YXRpYyBpbnQzMl90IHJlbGVhc2VWaWRlb0RlY29kZXIodWludDY0X3Qg
ZGVjb2RlcklkZW50aWZpZXIpCit7CisgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFtkZWNv
ZGVySWRlbnRpZmllcl0geworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJS
VENDb2RlY3MoKS5yZWxlYXNlRGVjb2RlcihtYWtlT2JqZWN0SWRlbnRpZmllcjxSVENEZWNvZGVy
SWRlbnRpZmllclR5cGU+KGRlY29kZXJJZGVudGlmaWVyKSk7CisgICAgfSk7CisgICAgcmV0dXJu
IDA7Cit9CisKK3N0YXRpYyBpbnQzMl90IGRlY29kZVZpZGVvRnJhbWUodWludDY0X3QgZGVjb2Rl
cklkZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgY29uc3QgdWludDhfdCogZGF0YSwgc2l6
ZV90IHNpemUpCit7CisgICAgaW50MzJfdCByZXN1bHQ7CisgICAgY2FsbE9uTWFpblJ1bkxvb3BB
bmRXYWl0KFtkZWNvZGVySWRlbnRpZmllciwgdGltZVN0YW1wLCBkYXRhLCBzaXplLCAmcmVzdWx0
XSB7CisgICAgICAgIHJlc3VsdCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ0Nv
ZGVjcygpLmRlY29kZUZyYW1lKG1ha2VPYmplY3RJZGVudGlmaWVyPFJUQ0RlY29kZXJJZGVudGlm
aWVyVHlwZT4oZGVjb2RlcklkZW50aWZpZXIpLCB0aW1lU3RhbXAsIGRhdGEsIHNpemUpOworICAg
IH0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbnQzMl90IHJlZ2lzdGVyRGVj
b2RlQ29tcGxldGVDYWxsYmFjayh1aW50NjRfdCBkZWNvZGVySWRlbnRpZmllciwgdm9pZCogZGVj
b2RlZEltYWdlQ2FsbGJhY2spCit7CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW2RlY29kZXJJZGVu
dGlmaWVyLCBkZWNvZGVkSW1hZ2VDYWxsYmFja10geworICAgICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5yZWdpc3RlckRlY29kZUZyYW1lQ2FsbGJhY2sobWFr
ZU9iamVjdElkZW50aWZpZXI8UlRDRGVjb2RlcklkZW50aWZpZXJUeXBlPihkZWNvZGVySWRlbnRp
ZmllciksIGRlY29kZWRJbWFnZUNhbGxiYWNrKTsKKyAgICB9KTsKKyAgICByZXR1cm4gMDsKK30K
Kwordm9pZCBMaWJXZWJSVENDb2RlY3M6OmluaXRpYWxpemVWaWRlb0RlY29kZXJDYWxsYmFja3Mo
KQoreworICAgIHdlYnJ0Yzo6c2V0VmlkZW9EZWNvZGVyQ2FsbGJhY2tzKGNyZWF0ZVZpZGVvRGVj
b2RlciwgcmVsZWFzZVZpZGVvRGVjb2RlciwgZGVjb2RlVmlkZW9GcmFtZSwgcmVnaXN0ZXJEZWNv
ZGVDb21wbGV0ZUNhbGxiYWNrKTsKK30KKwordm9pZCBMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZURl
Y29kZXIoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIpCit7CisgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkNyZWF0ZURlY29kZXIg
eyBkZWNvZGVySWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBMaWJXZWJSVENDb2RlY3M6OnJl
bGVhc2VEZWNvZGVyKFJUQ0RlY29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVyKQorewor
ICAgIEFTU0VSVChtX2RlY29kZUNhbGxiYWNrcy5jb250YWlucyhkZWNvZGVySWRlbnRpZmllcikp
OworCisgICAgbV9kZWNvZGVDYWxsYmFja3MucmVtb3ZlKGRlY29kZXJJZGVudGlmaWVyKTsKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6UmVsZWFzZURl
Y29kZXIgeyBkZWNvZGVySWRlbnRpZmllciB9LCAwKTsKK30KKworaW50MzJfdCBMaWJXZWJSVEND
b2RlY3M6OmRlY29kZUZyYW1lKFJUQ0RlY29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVy
LCB1aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKQor
eworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpEZWNv
ZGVGcmFtZSB7IGRlY29kZXJJZGVudGlmaWVyLCB0aW1lU3RhbXAsIElQQzo6RGF0YVJlZmVyZW5j
ZSB7IGRhdGEsIHNpemUgfSB9LCAwKTsKKyAgICByZXR1cm4gbV9kZWNvZGluZ0Vycm9ycy5yZW1v
dmUoZGVjb2RlcklkZW50aWZpZXIpID8gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SIDogV0VCUlRD
X1ZJREVPX0NPREVDX09LOworfQorCit2b2lkIExpYldlYlJUQ0NvZGVjczo6cmVnaXN0ZXJEZWNv
ZGVGcmFtZUNhbGxiYWNrKFJUQ0RlY29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVyLCB2
b2lkKiBkZWNvZGVkSW1hZ2VDYWxsYmFjaykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVCghbV9kZWNvZGVDYWxsYmFja3MuY29udGFpbnMoZGVjb2RlcklkZW50aWZp
ZXIpKTsKKworICAgIG1fZGVjb2RlQ2FsbGJhY2tzLmFkZChkZWNvZGVySWRlbnRpZmllciwgZGVj
b2RlZEltYWdlQ2FsbGJhY2spOworfQorCit2b2lkIExpYldlYlJUQ0NvZGVjczo6ZmFpbGVkRGVj
b2RpbmcoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIpCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIG1fZGVjb2RpbmdFcnJvcnMuYWRkKGRlY29kZXJJ
ZGVudGlmaWVyKTsKK30KKwordm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZERlY29kaW5n
KFJUQ0RlY29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVyLCB1aW50MzJfdCB0aW1lU3Rh
bXAsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYgcmVtb3RlU2FtcGxlKQoreworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICAvLyBGSVhNRTogRG8gZXJyb3IgbG9nZ2luZy4K
KyAgICBhdXRvKiBjYWxsYmFjayA9IG1fZGVjb2RlQ2FsbGJhY2tzLmdldChkZWNvZGVySWRlbnRp
Zmllcik7CisgICAgaWYgKCFjYWxsYmFjaykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFt
X2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9y
bWF0KCkgIT0gcmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpCisgICAgICAgIG1faW1hZ2VUcmFu
c2ZlclNlc3Npb24gPSBXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVt
b3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpOworCisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNy
ZWF0ZVBpeGVsQnVmZmVyKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS5zaXpl
KCkpOworICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB3ZWJydGM6OlJlbW90ZVZpZGVvRGVj
b2Rlcjo6ZGVjb2RlQ29tcGxldGUoY2FsbGJhY2ssIHRpbWVTdGFtcCwgcGl4ZWxCdWZmZXIuZ2V0
KCksIHJlbW90ZVNhbXBsZS50aW1lKCkudG9Eb3VibGUoKSk7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA3NzFiMmRmMzA4ZjJmNzIyMjU3MGVlYTJiNjc1ZGFiMzkyN2Q0
OGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSVENEZWNv
ZGVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
KworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKK30K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBMaWJXZWJSVENDb2RlY3MgOiBwcml2YXRlIElQQzo6
TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICBMaWJXZWJSVENDb2RlY3MoKSA9IGRlZmF1bHQ7CisKKyAgICBzdGF0aWMgdm9pZCBpbml0
aWFsaXplVmlkZW9EZWNvZGVyQ2FsbGJhY2tzKCk7CisKKyAgICB2b2lkIGNyZWF0ZURlY29kZXIo
UlRDRGVjb2RlcklkZW50aWZpZXIpOworICAgIHZvaWQgcmVsZWFzZURlY29kZXIoUlRDRGVjb2Rl
cklkZW50aWZpZXIpOworICAgIGludDMyX3QgZGVjb2RlRnJhbWUoUlRDRGVjb2RlcklkZW50aWZp
ZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgY29uc3QgdWludDhfdCosIHNpemVfdCk7CisgICAgdm9p
ZCByZWdpc3RlckRlY29kZUZyYW1lQ2FsbGJhY2soUlRDRGVjb2RlcklkZW50aWZpZXIsIHZvaWQq
IGRlY29kZWRJbWFnZUNhbGxiYWNrKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgdm9p
ZCBmYWlsZWREZWNvZGluZyhSVENEZWNvZGVySWRlbnRpZmllcik7CisgICAgdm9pZCBjb21wbGV0
ZWREZWNvZGluZyhSVENEZWNvZGVySWRlbnRpZmllciwgdWludDMyX3QgdGltZVN0YW1wLCBXZWJD
b3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmKTsKKworICAgIEhhc2hNYXA8UlRDRGVjb2RlcklkZW50
aWZpZXIsIHZvaWQqPiBtX2RlY29kZUNhbGxiYWNrczsKKyAgICBIYXNoU2V0PFJUQ0RlY29kZXJJ
ZGVudGlmaWVyPiBtX2RlY29kaW5nRXJyb3JzOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yYWFlOTc4NjgwZDNjM2E3ODBiOGMyNTllNDNhNWU0OGQxOTAzMTZiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IExpYldlYlJUQ0NvZGVjcyBO
b3RSZWZDb3VudGVkIHsKKyAgICBGYWlsZWREZWNvZGluZyhXZWJLaXQ6OlJUQ0RlY29kZXJJZGVu
dGlmaWVyIGlkKQorICAgIENvbXBsZXRlZERlY29kaW5nKFdlYktpdDo6UlRDRGVjb2RlcklkZW50
aWZpZXIgaWQsIHVpbnQzMl90IHRpbWVTdGFtcCwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUg
c2FtcGxlKQorfQorCisjZW5kaWYgLy8gVVNFKExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL1JUQ0RlY29kZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9SVENEZWNvZGVySWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNk
YWEzYmM1ZjkwZDViZWU5OTliYjI3YzhmMDFkMmViNzlmZGUyMDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SVENEZWNvZGVySWRlbnRpZmll
ci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVt
IFJUQ0RlY29kZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBSVENEZWNvZGVySWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8UlRDRGVjb2RlcklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCA0NjhkZjZjNzg1
ZmMzMmM1MzA3YjlmMDA4ZDBkMTYzYjA5M2ViM2JmLi5mYTE3YmNjZmNiOTgyYzZjNzc0ZmQxYjRi
NWU5NWZjZGFlOWQ1ZTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTI4LDYgKzI4
LDEwIEBACiAKICNpZiBVU0UoTElCV0VCUlRDKQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3MuaCIKKyNlbmRpZgor
CiAjaW5jbHVkZSAiTGliV2ViUlRDTmV0d29yay5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
ICNpbmNsdWRlIDx3ZWJydGMvYXBpL2FzeW5jX3Jlc29sdmVyX2ZhY3RvcnkuaD4KQEAgLTEzMSw2
ICsxMzUsMTQgQEAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1Byb3ZpZGVyOjpTdXNwZW5kYWJs
ZVNvY2tldEZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyOjoKICAgICByZXR1cm4gbWFrZVVuaXF1
ZTxSVENTb2NrZXRGYWN0b3J5PihXVEZNb3ZlKHVzZXJBZ2VudCkpOwogfQogCitzdGQ6OnVuaXF1
ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlcjo6Y3Jl
YXRlRGVjb2RlckZhY3RvcnkoKQoreworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZP
Uk0oQ09DT0EpCisgICAgTGliV2ViUlRDQ29kZWNzOjppbml0aWFsaXplVmlkZW9EZWNvZGVyQ2Fs
bGJhY2tzKCk7CisjZW5kaWYKKyAgICByZXR1cm4gTGliV2ViUlRDUHJvdmlkZXJDb2NvYTo6Y3Jl
YXRlRGVjb2RlckZhY3RvcnkoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCAwMjQ4ZWVkOTMz
MDA0YjQxYjMwMjAyNDkyNTY0N2EzZWU0MDEwZDBkLi43ZTUwMTVmZGQ3MzdmOGE3NWQ0OTQ3N2Zl
N2M2NjA0OWFkZDlkNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtNTcsNiArNTcsOSBA
QCBwcml2YXRlOgogICAgIHZvaWQgdW5yZWdpc3Rlck1ETlNOYW1lcyh1aW50NjRfdCBkb2N1bWVu
dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJNRE5TTmFtZSh1aW50NjRfdCBk
b2N1bWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaXBBZGRyZXNzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE1ETlNOYW1lT3JFcnJvciYmKT4mJikgZmluYWw7CiAgICAgdm9pZCBkaXNhYmxl
Tm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSBmaW5hbDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZURlY29kZXJGYWN0b3J5KCkgZmluYWw7
CisKIH07CiAjZWxzZQogdXNpbmcgTGliV2ViUlRDUHJvdmlkZXIgPSBXZWJDb3JlOjpMaWJXZWJS
VENQcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAx
NTEzMjcxYWMzZjk3NTE1NmY5OTQyZGFmZGYwY2MwYThjZDdlM2QzLi5mYzRjZWJjNTVmYjM5ZjI4
Nzg0NjE5YmRhODFjOWEyNTg1Nzk1ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKICNp
bmNsdWRlICJFdmVudERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgor
I2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjcy5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ05ldHdvcmsu
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlcy5oIgpAQCAtMTMxMCw2ICsxMzExLDE1IEBAIHZvaWQgV2ViUHJvY2Vz
czo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24pCiAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7CiB9CiAKKyNpZiBQ
TEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKK0xpYldlYlJUQ0NvZGVjcyYgV2ViUHJv
Y2Vzczo6bGliV2ViUlRDQ29kZWNzKCkKK3sKKyAgICBpZiAoIW1fbGliV2ViUlRDQ29kZWNzKQor
ICAgICAgICBtX2xpYldlYlJUQ0NvZGVjcyA9IG1ha2VVbmlxdWU8TGliV2ViUlRDQ29kZWNzPigp
OworICAgIHJldHVybiAqbV9saWJXZWJSVENDb2RlY3M7Cit9CisjZW5kaWYKKwogI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRFbmhhbmNlZEFjY2Vz
c2liaWxpdHkoYm9vbCBmbGFnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggYzJjZTg4YmQ2MjZmOGI4YTNjZThhOTAxZTM1ZmZkYmM0YjRjNzI4NS4uOGY5YmZlNTcxNWQ0
MjI1OWEzYTNiMzE3MDVhYzM0ZjZmMTNiMWQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCkBAIC0xMDksNiArMTA5LDcgQEAgY2xhc3MgRXZlbnREaXNwYXRjaGVyOwogY2xh
c3MgR2FtZXBhZERhdGE7CiBjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlvbjsKIGNsYXNzIEluamVj
dGVkQnVuZGxlOworY2xhc3MgTGliV2ViUlRDQ29kZWNzOwogY2xhc3MgTGliV2ViUlRDTmV0d29y
azsKIGNsYXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsKIGNsYXNzIE9iakNPYmplY3RHcmFw
aDsKQEAgLTIxOCw2ICsyMTksMTEgQEAgcHVibGljOgogICAgIEdQVVByb2Nlc3NDb25uZWN0aW9u
JiBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgIHZvaWQgZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb25DbG9zZWQoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24qKTsKICAgICBHUFVQcm9jZXNzQ29ubmVj
dGlvbiogZXhpc3RpbmdHUFVQcm9jZXNzQ29ubmVjdGlvbigpIHsgcmV0dXJuIG1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24uZ2V0KCk7IH0KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VC
UlRDKQorICAgIExpYldlYlJUQ0NvZGVjcyYgbGliV2ViUlRDQ29kZWNzKCk7CisjZW5kaWYKKwog
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogICAgIExpYldlYlJUQ05ldHdvcmsmIGxp
YldlYlJUQ05ldHdvcmsoKTsKQEAgLTUyMyw2ICs1MjksOSBAQCBwcml2YXRlOgogCiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQogICAgIFJlZlB0cjxHUFVQcm9jZXNzQ29ubmVjdGlvbj4gbV9ncHVQ
cm9jZXNzQ29ubmVjdGlvbjsKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzPiBtX2xpYldlYlJUQ0NvZGVjczsK
KyNlbmRpZgogI2VuZGlmCiAKICAgICBSZWY8V2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXI+IG1fY2Fj
aGVTdG9yYWdlUHJvdmlkZXI7CmRpZmYgLS1naXQgYS9XZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFy
ZWRkYXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2NoZW1lIGIvV2ViS2l0Lnhjd29ya3NwYWNl
L3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZQppbmRleCBiNzVmNGJk
MTk5ZDhhZTU2ZWJmZjM3N2M4ZjIyODEzMWE4ZWIzMjdiLi5lMWM5NzRjYWYzYjFhZjVmNmYwY2Zl
NTc3MDRhNTY3ZTI4M2M1MDlkIDEwMDY0NAotLS0gYS9XZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFy
ZWRkYXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2NoZW1lCQorKysgYi9XZWJLaXQueGN3b3Jr
c3BhY2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2NoZW1lCQpAQCAtNTcs
NyArNTcsNyBAQAogICAgICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQogICAgICAgICAgICAg
ICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgogICAgICAgICAgICAgICAgQmx1ZXBy
aW50SWRlbnRpZmllciA9ICJGQjM5RDBEMDEyMDBGMEUzMDAwODhFNjkiCi0gICAgICAgICAgICAg
ICBCdWlsZGFibGVOYW1lID0gImxpYkFOR0xFLmEiCisgICAgICAgICAgICAgICBCdWlsZGFibGVO
YW1lID0gImxpYkFOR0xFLXNoYXJlZC5keWxpYiIKICAgICAgICAgICAgICAgIEJsdWVwcmludE5h
bWUgPSAiQU5HTEUiCiAgICAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRh
aW5lcjpTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9BTkdMRS54Y29kZXByb2oiPgogICAgICAgICAg
ICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386447</attachid>
            <date>2019-12-27 09:02:51 -0800</date>
            <delta_ts>2019-12-27 09:11:58 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-205607-20191227180249.patch</filename>
            <type>text/plain</type>
            <size>72561</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAyY2U0ZjNmNGVhNDA0MmNiMjgyZjE5ZDYzNTU3YzE2OGYyMGJkNjZjLi40MjNj
MTNmOWMyMDRlMWVkZDVjNjI1NTg1M2U1ZGEwYWU5OGIxOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0xMi0yNyAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFJUQyBWVEIgZGVj
b2RlcnMgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1NjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cDoKKyAgICAgICAg
KiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cDoKKyAgICAgICAgKiBDb25maWd1
cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cDoKKwogMjAxOS0xMi0yNCAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IGJ1aWxkIHlhc20gZm9yIGlPUyBh
bmQgaU9TIHNpbXVsYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE0MWZkNjkyMGY1ODcwNjgyNDg4YzMzZTQz
ZTYwZjI4NGQ5MjUxZjYuLjYzZjBiMDMyYjA2YmY2MGY1YWZiYTY0NDc2ZjBkYjUzMDFjNzJlOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0xMi0yNyAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFJUQyBWVEIgZGVjb2RlcnMg
aW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA1NjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisK
IDIwMTktMTItMjQgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IElnbm9yZSBVUkwgaG9zdCBmb3Igc2NoZW1lcyB0aGF0IGFyZSBub3QgdXNpbmcgaG9zdCBpbmZv
cm1hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA3N2M0NmQ3ZjRmOWQ4YzU4Mjc5M2U4NmQ5YTAwYzc0ODU1MGFk
ODAwLi5kYjY0YWViZmZmNWY1MjA4ZjNkOWVhNDQxNDIwZjAxYTc5ZmUyNjM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDE5LTEyLTI3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUlRDIFZUQiBkZWNvZGVycyBpbiBHUFVQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2MDcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BV
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y3Jl
YXRlVmlkZW9EZWNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjcmVh
dGVEZWNvZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmg6CisKIDIwMTktMTItMjMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CiAKICAgICAgICAgd2F0Y2hPUyBidWlsZCBmaXggYXR0ZW1wdApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1Mu
ZXhwCmluZGV4IGRiMDgzYzkwODM3ZGJiNGI2YzcxMDQwNjNlNDFjM2Q1ODRkYTBhN2QuLjhmZDVj
MjcyYWQ2YTFjMzhiMjA4M2IxMWU2MzU4ZmRjZWQ4NzdlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlP
Uy5leHAKQEAgLTI2MiwzICsyNjIsOCBAQCBfX1pOSzZ3ZWJydGMyMERhdGFDaGFubmVsSW50ZXJm
YWNlMTdtYXhSZXRyYW5zbWl0c09wdEV2CiBfX1pOSzZ3ZWJydGMyMFJ0cFJlY2VpdmVySW50ZXJm
YWNlMTRkdGxzX3RyYW5zcG9ydEV2CiBfX1pOSzZ3ZWJydGMyM1BlZXJDb25uZWN0aW9uSW50ZXJm
YWNlMTZHZXRTY3RwVHJhbnNwb3J0RXYKIF9fWk5LNndlYnJ0YzIzUnRwVHJhbnNjZWl2ZXJJbnRl
cmZhY2UxN2NvZGVjX3ByZWZlcmVuY2VzRXYKK19fWk42d2VicnRjMjRzZXRWaWRlb0RlY29kZXJD
YWxsYmFja3NFUEZ5UktOU18xNFNkcFZpZGVvRm9ybWF0RUVQRml5RVBGaXlqUEtobUVQRml5UHZF
CitfX1pONndlYnJ0YzE4Y3JlYXRlTG9jYWxEZWNvZGVyRVUxM2Jsb2NrX3BvaW50ZXJGdlAxMF9f
Q1ZCdWZmZXJqakUKK19fWk42d2VicnRjMTlyZWxlYXNlTG9jYWxEZWNvZGVyRVB2CitfX1pONndl
YnJ0YzExZGVjb2RlRnJhbWVFUHZqUEtobQorX19aTjZ3ZWJydGMxOFJlbW90ZVZpZGVvRGVjb2Rl
cjE0ZGVjb2RlQ29tcGxldGVFUHZqUDEwX19DVkJ1ZmZlcmoKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9T
c2ltLmV4cAppbmRleCBkYjA4M2M5MDgzN2RiYjRiNmM3MTA0MDYzZTQxYzNkNTg0ZGEwYTdkLi44
ZmQ1YzI3MmFkNmExYzM4YjIwODNiMTFlNjM1OGZkY2VkODc3ZWUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndl
YnJ0Yy5pT1NzaW0uZXhwCkBAIC0yNjIsMyArMjYyLDggQEAgX19aTks2d2VicnRjMjBEYXRhQ2hh
bm5lbEludGVyZmFjZTE3bWF4UmV0cmFuc21pdHNPcHRFdgogX19aTks2d2VicnRjMjBSdHBSZWNl
aXZlckludGVyZmFjZTE0ZHRsc190cmFuc3BvcnRFdgogX19aTks2d2VicnRjMjNQZWVyQ29ubmVj
dGlvbkludGVyZmFjZTE2R2V0U2N0cFRyYW5zcG9ydEV2CiBfX1pOSzZ3ZWJydGMyM1J0cFRyYW5z
Y2VpdmVySW50ZXJmYWNlMTdjb2RlY19wcmVmZXJlbmNlc0V2CitfX1pONndlYnJ0YzI0c2V0Vmlk
ZW9EZWNvZGVyQ2FsbGJhY2tzRVBGeVJLTlNfMTRTZHBWaWRlb0Zvcm1hdEVFUEZpeUVQRml5alBL
aG1FUEZpeVB2RQorX19aTjZ3ZWJydGMxOGNyZWF0ZUxvY2FsRGVjb2RlckVVMTNibG9ja19wb2lu
dGVyRnZQMTBfX0NWQnVmZmVyampFCitfX1pONndlYnJ0YzE5cmVsZWFzZUxvY2FsRGVjb2RlckVQ
dgorX19aTjZ3ZWJydGMxMWRlY29kZUZyYW1lRVB2alBLaG0KK19fWk42d2VicnRjMThSZW1vdGVW
aWRlb0RlY29kZXIxNGRlY29kZUNvbXBsZXRlRVB2alAxMF9fQ1ZCdWZmZXJqCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1h
Yy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2Vi
cnRjLm1hYy5leHAKaW5kZXggZGIwODNjOTA4MzdkYmI0YjZjNzEwNDA2M2U0MWMzZDU4NGRhMGE3
ZC4uOGZkNWMyNzJhZDZhMWMzOGIyMDgzYjExZTYzNThmZGNlZDg3N2VlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMu
ZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3
ZWJydGMubWFjLmV4cApAQCAtMjYyLDMgKzI2Miw4IEBAIF9fWk5LNndlYnJ0YzIwRGF0YUNoYW5u
ZWxJbnRlcmZhY2UxN21heFJldHJhbnNtaXRzT3B0RXYKIF9fWk5LNndlYnJ0YzIwUnRwUmVjZWl2
ZXJJbnRlcmZhY2UxNGR0bHNfdHJhbnNwb3J0RXYKIF9fWk5LNndlYnJ0YzIzUGVlckNvbm5lY3Rp
b25JbnRlcmZhY2UxNkdldFNjdHBUcmFuc3BvcnRFdgogX19aTks2d2VicnRjMjNSdHBUcmFuc2Nl
aXZlckludGVyZmFjZTE3Y29kZWNfcHJlZmVyZW5jZXNFdgorX19aTjZ3ZWJydGMyNHNldFZpZGVv
RGVjb2RlckNhbGxiYWNrc0VQRnlSS05TXzE0U2RwVmlkZW9Gb3JtYXRFRVBGaXlFUEZpeWpQS2ht
RVBGaXlQdkUKK19fWk42d2VicnRjMThjcmVhdGVMb2NhbERlY29kZXJFVTEzYmxvY2tfcG9pbnRl
ckZ2UDEwX19DVkJ1ZmZlcmpqRQorX19aTjZ3ZWJydGMxOXJlbGVhc2VMb2NhbERlY29kZXJFUHYK
K19fWk42d2VicnRjMTFkZWNvZGVGcmFtZUVQdmpQS2htCitfX1pONndlYnJ0YzE4UmVtb3RlVmlk
ZW9EZWNvZGVyMTRkZWNvZGVDb21wbGV0ZUVQdmpQMTBfX0NWQnVmZmVyagpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggNmVmZmM1YWFiNTkyZjhkYTYyNDY5
Y2RmODFmNDgzNDkyMmRmYzEzYS4uOTg4NzJkZDZkYmNlNTc5NmRlYjdjNDk3YjYxYjBmZjkyMjhl
NjgyMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCkBAIC02
OSw0ICs2OSw0NiBAQCBwcml2YXRlOgogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0Vu
Y29kZXJGYWN0b3J5PiBtX2ludGVybmFsRW5jb2RlckZhY3Rvcnk7CiB9OwogCit1c2luZyBWaWRl
b0RlY29kZXJDcmVhdGVDYWxsYmFjayA9IHVpbnQ2NF90KCopKGNvbnN0IFNkcFZpZGVvRm9ybWF0
JiBmb3JtYXQpOwordXNpbmcgVmlkZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrID0gaW50MzJfdCgq
KSh1aW50NjRfdCBkZWNvZGVySWRlbnRpZmllcik7Cit1c2luZyBWaWRlb0RlY29kZXJEZWNvZGVD
YWxsYmFjayA9IGludDMyX3QoKikodWludDY0X3QgZGVjb2RlcklkZW50aWZpZXIsIHVpbnQzMl90
IHRpbWVTdGFtcCwgY29uc3QgdWludDhfdCosIHNpemVfdCBsZW5ndGgpOwordXNpbmcgVmlkZW9E
ZWNvZGVyUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrID0gaW50MzJfdCgqKSh1aW50NjRf
dCBkZWNvZGVySWRlbnRpZmllciwgdm9pZCogZGVjb2RlZEltYWdlQ2FsbGJhY2spOworCit2b2lk
IHNldFZpZGVvRGVjb2RlckNhbGxiYWNrcyhWaWRlb0RlY29kZXJDcmVhdGVDYWxsYmFjaywgVmlk
ZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrLCBWaWRlb0RlY29kZXJEZWNvZGVDYWxsYmFjaywgVmlk
ZW9EZWNvZGVyUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKTsKKworY2xhc3MgUmVtb3Rl
VmlkZW9EZWNvZGVyRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBWaWRlb0RlY29kZXJGYWN0b3J5IHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5KHN0ZDo6dW5p
cXVlX3B0cjxWaWRlb0RlY29kZXJGYWN0b3J5PiYmKTsKKyAgICB+UmVtb3RlVmlkZW9EZWNvZGVy
RmFjdG9yeSgpID0gZGVmYXVsdDsKKworcHJpdmF0ZToKKyAgICBzdGQ6OnZlY3RvcjxTZHBWaWRl
b0Zvcm1hdD4gR2V0U3VwcG9ydGVkRm9ybWF0cygpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxWaWRlb0RlY29kZXI+IENyZWF0ZVZpZGVvRGVjb2Rlcihjb25zdCBTZHBWaWRlb0Zv
cm1hdCYgZm9ybWF0KSBmaW5hbDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXJG
YWN0b3J5PiBtX2ludGVybmFsRmFjdG9yeTsKK307CisKK2NsYXNzIFJlbW90ZVZpZGVvRGVjb2Rl
ciBmaW5hbCA6IHB1YmxpYyB3ZWJydGM6OlZpZGVvRGVjb2RlciB7CitwdWJsaWM6CisgICAgZXhw
bGljaXQgUmVtb3RlVmlkZW9EZWNvZGVyKHVpbnQ2NF90IGlkZW50aWZpZXIpOworICAgIH5SZW1v
dGVWaWRlb0RlY29kZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBzdGF0aWMgdm9pZCBkZWNvZGVDb21w
bGV0ZSh2b2lkKiBjYWxsYmFjaywgdWludDMyX3QgdGltZVN0YW1wLCBDVlBpeGVsQnVmZmVyUmVm
LCB1aW50MzJfdCB0aW1lU3RhbXBSVFApOworCitwcml2YXRlOgorICAgIGludDMyX3QgSW5pdERl
Y29kZShjb25zdCBWaWRlb0NvZGVjKiwgaW50MzJfdCBudW1iZXJfb2ZfY29yZXMpIGZpbmFsOwor
ICAgIGludDMyX3QgRGVjb2RlKGNvbnN0IEVuY29kZWRJbWFnZSYsIGJvb2wgbWlzc2luZ19mcmFt
ZXMsIGludDY0X3QgcmVuZGVyX3RpbWVfbXMpIGZpbmFsOworICAgIGludDMyX3QgUmVnaXN0ZXJE
ZWNvZGVDb21wbGV0ZUNhbGxiYWNrKERlY29kZWRJbWFnZUNhbGxiYWNrKikgZmluYWw7CisgICAg
aW50MzJfdCBSZWxlYXNlKCkgZmluYWw7CisgICAgY29uc3QgY2hhciogSW1wbGVtZW50YXRpb25O
YW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlJlbW90ZVZpZGVvVG9vbEJveCI7IH0KKworICAg
IHVpbnQ2NF90IG1faWRlbnRpZmllcjsKK307CisKK3VzaW5nIExvY2FsRGVjb2RlciA9IHZvaWQq
OwordXNpbmcgTG9jYWxEZWNvZGVyQ2FsbGJhY2sgPSB2b2lkICheKShDVlBpeGVsQnVmZmVyUmVm
LCB1aW50MzJfdCB0aW1lU3RhbXAsIHVpbnQzMl90IHRpbWVTdGFtcE5zKTsKK3ZvaWQqIGNyZWF0
ZUxvY2FsRGVjb2RlcihMb2NhbERlY29kZXJDYWxsYmFjayk7Cit2b2lkIHJlbGVhc2VMb2NhbERl
Y29kZXIoTG9jYWxEZWNvZGVyKTsKK2ludDMyX3QgZGVjb2RlRnJhbWUoTG9jYWxEZWNvZGVyLCB1
aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOworCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0
L1dlYktpdFV0aWxpdGllcy5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLm1tCmluZGV4IDJmZTU3YjIwMTEwYjNl
NDU1Nzg3ZjNlNzI4YzkwMmNlNWQ2ZDQ0YzEuLmE0MmQwMjljMmE1MzkwMDVjZjk4YjE0OTllYWE5
N2M5MWY2NzdhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLm1tCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVz
Lm1tCkBAIC0yOSw3ICsyOSwxMCBAQAogI2ltcG9ydCAiV2ViUlRDL1JUQ1ZpZGVvQ29kZWNIMjY0
LmgiCiAKICNpbmNsdWRlICJhcGkvdmlkZW8vdmlkZW9fZnJhbWUuaCIKKyNpbmNsdWRlICJoZWxw
ZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIKICNpbmNsdWRlICJuYXRpdmUvc3JjL29iamNfZnJhbWVf
YnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorI2luY2x1ZGUgInNk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oIgogI2luY2x1ZGUg
InRoaXJkX3BhcnR5L2xpYnl1di9pbmNsdWRlL2xpYnl1di9jb252ZXJ0X2Zyb20uaCIKICNpbmNs
dWRlICJ3ZWJydGMvcnRjX2Jhc2UvY2hlY2tzLmgiCiAjaW5jbHVkZSAiRnJhbWV3b3JrL0hlYWRl
cnMvV2ViUlRDL1JUQ1ZpZGVvQ29kZWNGYWN0b3J5LmgiCkBAIC0xMTYsMTEgKzExOSw2IEBAIHN0
ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVu
Y29kZXJGYWN0b3J5KFdlYktpdENvCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VmlkZW9F
bmNvZGVyRmFjdG9yeVdpdGhTaW11bGNhc3Q+KHN0ZDo6bW92ZShpbnRlcm5hbEZhY3RvcnkpKTsK
IH0KIAotc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRl
V2ViS2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0IGNvZGVjU3VwcG9ydCkKLXsK
LSAgICByZXR1cm4gT2JqQ1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShjb2RlY1N1cHBvcnQg
PT0gV2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4ID8gW1tSVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeSBhbGxvY10gaW5pdF0gOiBbW1JUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0IGFs
bG9jXSBpbml0XSk7Ci19Ci0KIHN0YXRpYyBib29sIGgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2Vk
ID0gdHJ1ZTsKIHZvaWQgc2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWQoYm9vbCBhbGxvd2Vk
KQogewpAQCAtMTY4LDcgKzE2Niw2IEBAIHN0YXRpYyBib29sIENvcHlWaWRlb0ZyYW1lVG9QaXhl
bEJ1ZmZlcihjb25zdCB3ZWJydGM6Okk0MjBCdWZmZXJJbnRlcmZhY2UqIGZyYW1lCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLQogQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlckZyb21GcmFtZShj
b25zdCBWaWRlb0ZyYW1lJiBmcmFtZSwgY29uc3Qgc3RkOjpmdW5jdGlvbjxDVlBpeGVsQnVmZmVy
UmVmKHNpemVfdCwgc2l6ZV90KT4mIG1ha2VQaXhlbEJ1ZmZlcikKIHsKICAgICBpZiAoZnJhbWUu
dmlkZW9fZnJhbWVfYnVmZmVyKCktPnR5cGUoKSAhPSBWaWRlb0ZyYW1lQnVmZmVyOjpUeXBlOjpr
TmF0aXZlKSB7CkBAIC0xODgsNCArMTg1LDExNyBAQCBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyRnJvbUZyYW1lKGNvbnN0IFZpZGVvRnJhbWUmIGZyYW1lLCBjb25zdCBzdGQ6OmZ1bmN0aQog
ICAgIHJldHVybiBydGNQaXhlbEJ1ZmZlci5waXhlbEJ1ZmZlcjsKIH0KIAorc3RydWN0IFZpZGVv
RGVjb2RlckNhbGxiYWNrcyB7CisgICAgVmlkZW9EZWNvZGVyQ3JlYXRlQ2FsbGJhY2sgY3JlYXRl
Q2FsbGJhY2s7CisgICAgVmlkZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrIHJlbGVhc2VDYWxsYmFj
azsKKyAgICBWaWRlb0RlY29kZXJEZWNvZGVDYWxsYmFjayBkZWNvZGVDYWxsYmFjazsKKyAgICBW
aWRlb0RlY29kZXJSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2sgcmVnaXN0ZXJEZWNvZGVD
b21wbGV0ZUNhbGxiYWNrOworfTsKKworc3RhdGljIFZpZGVvRGVjb2RlckNhbGxiYWNrcyYgdmlk
ZW9EZWNvZGVyQ2FsbGJhY2tzKCkgeworICAgIHN0YXRpYyBWaWRlb0RlY29kZXJDYWxsYmFja3Mg
Y2FsbGJhY2tzOworICAgIHJldHVybiBjYWxsYmFja3M7Cit9CisKK3ZvaWQgc2V0VmlkZW9EZWNv
ZGVyQ2FsbGJhY2tzKFZpZGVvRGVjb2RlckNyZWF0ZUNhbGxiYWNrIGNyZWF0ZUNhbGxiYWNrLCBW
aWRlb0RlY29kZXJSZWxlYXNlQ2FsbGJhY2sgcmVsZWFzZUNhbGxiYWNrLCBWaWRlb0RlY29kZXJE
ZWNvZGVDYWxsYmFjayBkZWNvZGVDYWxsYmFjaywgVmlkZW9EZWNvZGVyUmVnaXN0ZXJEZWNvZGVD
b21wbGV0ZUNhbGxiYWNrIHJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjaykKK3sKKyAgICBh
dXRvJiBjYWxsYmFja3MgPSB2aWRlb0RlY29kZXJDYWxsYmFja3MoKTsKKyAgICBjYWxsYmFja3Mu
Y3JlYXRlQ2FsbGJhY2sgPSBjcmVhdGVDYWxsYmFjazsKKyAgICBjYWxsYmFja3MucmVsZWFzZUNh
bGxiYWNrID0gcmVsZWFzZUNhbGxiYWNrOworICAgIGNhbGxiYWNrcy5kZWNvZGVDYWxsYmFjayA9
IGRlY29kZUNhbGxiYWNrOworICAgIGNhbGxiYWNrcy5yZWdpc3RlckRlY29kZUNvbXBsZXRlQ2Fs
bGJhY2sgPSByZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2s7Cit9CisKK1JlbW90ZVZpZGVv
RGVjb2Rlcjo6UmVtb3RlVmlkZW9EZWNvZGVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCisgICAgOiBt
X2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKK30KKwordm9pZCBSZW1vdGVWaWRlb0RlY29kZXI6
OmRlY29kZUNvbXBsZXRlKHZvaWQqIGNhbGxiYWNrLCB1aW50MzJfdCB0aW1lU3RhbXAsIENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcFJUUCkKK3sKKyAgICBh
dXRvIHZpZGVvRnJhbWUgPSBWaWRlb0ZyYW1lOjpCdWlsZGVyKCkuc2V0X3ZpZGVvX2ZyYW1lX2J1
ZmZlcihwaXhlbEJ1ZmZlclRvRnJhbWUocGl4ZWxCdWZmZXIpKQorICAgICAgICAuc2V0X3RpbWVz
dGFtcF9ydHAodGltZVN0YW1wUlRQKQorICAgICAgICAuc2V0X3RpbWVzdGFtcF9tcygwKQorLy8g
ICAgICAgIC5zZXRfcm90YXRpb24oKFZpZGVvUm90YXRpb24pUlRDVmlkZW9Sb3RhdGlvbl8wKQor
ICAgICAgICAuYnVpbGQoKTsKKyAgICB2aWRlb0ZyYW1lLnNldF90aW1lc3RhbXAodGltZVN0YW1w
KTsKKworICAgIHN0YXRpY19jYXN0PERlY29kZWRJbWFnZUNhbGxiYWNrKj4oY2FsbGJhY2spLT5E
ZWNvZGVkKHZpZGVvRnJhbWUpOworfQorCitpbnQzMl90IFJlbW90ZVZpZGVvRGVjb2Rlcjo6SW5p
dERlY29kZShjb25zdCBWaWRlb0NvZGVjKiBjb2RlY19zZXR0aW5ncywgaW50MzJfdCBudW1iZXJf
b2ZfY29yZXMpCit7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworaW50
MzJfdCBSZW1vdGVWaWRlb0RlY29kZXI6OkRlY29kZShjb25zdCBFbmNvZGVkSW1hZ2UmIGlucHV0
X2ltYWdlLCBib29sIG1pc3NpbmdfZnJhbWVzLCBpbnQ2NF90IHJlbmRlcl90aW1lX21zKQorewor
ICAgIHJldHVybiB2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5kZWNvZGVDYWxsYmFjayhtX2lkZW50
aWZpZXIsIGlucHV0X2ltYWdlLlRpbWVzdGFtcCgpLCBpbnB1dF9pbWFnZS5kYXRhKCksIGlucHV0
X2ltYWdlLnNpemUoKSk7Cit9CisKK2ludDMyX3QgUmVtb3RlVmlkZW9EZWNvZGVyOjpSZWdpc3Rl
ckRlY29kZUNvbXBsZXRlQ2FsbGJhY2soRGVjb2RlZEltYWdlQ2FsbGJhY2sqIGNhbGxiYWNrKQor
eworICAgIHJldHVybiB2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5yZWdpc3RlckRlY29kZUNvbXBs
ZXRlQ2FsbGJhY2sobV9pZGVudGlmaWVyLCBjYWxsYmFjayk7Cit9CisKK2ludDMyX3QgUmVtb3Rl
VmlkZW9EZWNvZGVyOjpSZWxlYXNlKCkKK3sKKyAgICByZXR1cm4gdmlkZW9EZWNvZGVyQ2FsbGJh
Y2tzKCkucmVsZWFzZUNhbGxiYWNrKG1faWRlbnRpZmllcik7Cit9CisKK1JlbW90ZVZpZGVvRGVj
b2RlckZhY3Rvcnk6OlJlbW90ZVZpZGVvRGVjb2RlckZhY3Rvcnkoc3RkOjp1bmlxdWVfcHRyPFZp
ZGVvRGVjb2RlckZhY3Rvcnk+JiYgaW50ZXJuYWxGYWN0b3J5KQorICAgIDogbV9pbnRlcm5hbEZh
Y3Rvcnkoc3RkOjptb3ZlKGludGVybmFsRmFjdG9yeSkpCit7Cit9CisKK3N0ZDo6dmVjdG9yPFNk
cFZpZGVvRm9ybWF0PiBSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5OjpHZXRTdXBwb3J0ZWRGb3Jt
YXRzKCkgY29uc3QKK3sKKyAgICBzdGQ6OnZlY3RvcjxTZHBWaWRlb0Zvcm1hdD4gc3VwcG9ydGVk
X2Zvcm1hdHM7CisgICAgc3VwcG9ydGVkX2Zvcm1hdHMucHVzaF9iYWNrKFNkcFZpZGVvRm9ybWF0
IHsgIkgyNjQiIH0pOworICAgIHN1cHBvcnRlZF9mb3JtYXRzLnB1c2hfYmFjayhTZHBWaWRlb0Zv
cm1hdCB7ICJWUDgiIH0pOworICAgIHJldHVybiBzdXBwb3J0ZWRfZm9ybWF0czsKK30KKworc3Rk
Ojp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4gUmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3Jl
YXRlVmlkZW9EZWNvZGVyKGNvbnN0IFNkcFZpZGVvRm9ybWF0JiBmb3JtYXQpCit7CisgICAgaWYg
KCF2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5jcmVhdGVDYWxsYmFjaykKKyAgICAgICAgcmV0dXJu
IG1faW50ZXJuYWxGYWN0b3J5LT5DcmVhdGVWaWRlb0RlY29kZXIoZm9ybWF0KTsKKworICAgIGF1
dG8gaWRlbnRpZmllciA9IHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLmNyZWF0ZUNhbGxiYWNrKGZv
cm1hdCk7CisgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbV9pbnRlcm5hbEZh
Y3RvcnktPkNyZWF0ZVZpZGVvRGVjb2Rlcihmb3JtYXQpOworCisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVyPihpZGVudGlmaWVyKTsKK30KKworc3RkOjp1bmlx
dWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RGVjb2RlckZh
Y3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0IGNvZGVjU3VwcG9ydCkKK3sKKyAgICBhdXRvIGludGVy
bmFsRmFjdG9yeSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3RvcnkoY29kZWNTdXBwb3J0
ID09IFdlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQOCA/IFtbUlRDRGVmYXVsdFZpZGVvRGVj
b2RlckZhY3RvcnkgYWxsb2NdIGluaXRdIDogW1tSVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NCBh
bGxvY10gaW5pdF0pOworICAgIGlmICh2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5jcmVhdGVDYWxs
YmFjaykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVy
RmFjdG9yeT4oc3RkOjptb3ZlKGludGVybmFsRmFjdG9yeSkpOworICAgIHJldHVybiBpbnRlcm5h
bEZhY3Rvcnk7Cit9CisKK3ZvaWQqIGNyZWF0ZUxvY2FsRGVjb2RlcihMb2NhbERlY29kZXJDYWxs
YmFjayBjYWxsYmFjaykKK3sKKyAgICBhdXRvIGRlY29kZXIgPSBbW1JUQ1ZpZGVvRGVjb2Rlckgy
NjQgYWxsb2NdIGluaXRdOworICAgIFtkZWNvZGVyIHNldENhbGxiYWNrOl4oUlRDVmlkZW9GcmFt
ZSAqZnJhbWUpIHsKKyAgICAgICAgYXV0byAqYnVmZmVyID0gKFJUQ0NWUGl4ZWxCdWZmZXIgKilm
cmFtZS5idWZmZXI7CisgICAgICAgIGNhbGxiYWNrKGJ1ZmZlci5waXhlbEJ1ZmZlciwgZnJhbWUu
dGltZVN0YW1wTnMsIGZyYW1lLnRpbWVTdGFtcCk7CisgICAgfV07CisgICAgcmV0dXJuIChfX2Jy
aWRnZV9yZXRhaW5lZCB2b2lkKilkZWNvZGVyOworfQorCit2b2lkIHJlbGVhc2VMb2NhbERlY29k
ZXIoTG9jYWxEZWNvZGVyIGxvY2FsRGVjb2RlcikKK3sKKyAgICBSVENWaWRlb0RlY29kZXJIMjY0
KiBkZWNvZGVyID0gKF9fYnJpZGdlX3RyYW5zZmVyIFJUQ1ZpZGVvRGVjb2RlckgyNjQgKikobG9j
YWxEZWNvZGVyKTsKKyAgICBbZGVjb2RlciByZWxlYXNlRGVjb2Rlcl07Cit9CisKK2ludDMyX3Qg
ZGVjb2RlRnJhbWUoTG9jYWxEZWNvZGVyIGxvY2FsRGVjb2RlciwgdWludDMyX3QgdGltZVN0YW1w
LCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBSVENWaWRlb0RlY29k
ZXJIMjY0KiBkZWNvZGVyID0gKF9fYnJpZGdlIFJUQ1ZpZGVvRGVjb2RlckgyNjQgKikobG9jYWxE
ZWNvZGVyKTsKKyAgICByZXR1cm4gW2RlY29kZXIgZGVjb2RlRGF0YTogZGF0YSBzaXplOiBzaXpl
IHRpbWVTdGFtcDogdGltZVN0YW1wXTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9SVENWaWRlb0RlY29kZXJIMjY0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVj
b2RlckgyNjQuaAppbmRleCBiMTBkMWU2YTA5OTIwZTUxZjVmNGY1NjNiNjZlZWI5ZTljZDEyMTcz
Li4yMmRjYzgwZDhjMGQ2ODJhZTgwMDEyZGVjMDVhMGYzZWVjMTZlMjVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjQuaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjQuaApAQCAtMTYsNCArMTYsNyBAQAogUlRDX09CSkNfRVhQ
T1JUCiBfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDVmlkZW9EZWNvZGVy
SDI2NCIpKSkKIEBpbnRlcmZhY2UgUlRDVmlkZW9EZWNvZGVySDI2NCA6IE5TT2JqZWN0IDxSVENW
aWRlb0RlY29kZXI+CistIChOU0ludGVnZXIpZGVjb2RlRGF0YTooY29uc3QgdWludDhfdCAqKWRh
dGEKKyAgICBzaXplOihzaXplX3Qpc2l6ZQorICAgIHRpbWVTdGFtcDoodWludDMyX3QpdGltZVN0
YW1wOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJI
MjY0Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY0Lm1tCmluZGV4IDhl
MmE3ZDljOTBmNzY2ZjlhN2Q3ZTI1OTAxNTFmNTYzNzhjMWNmZTIuLjRjZTBiYzQ1ZjFlZDc2YjI1
NWI2NzI3ZjUyYzI4M2I4ZjBiZGE5OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
VmlkZW9EZWNvZGVySDI2NC5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2Rl
ckgyNjQubW0KQEAgLTEwMiw2ICsxMDIsMTMgQEAgdm9pZCBkZWNvbXByZXNzaW9uT3V0cHV0Q2Fs
bGJhY2sodm9pZCAqZGVjb2RlclJlZiwKICAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdCly
ZW5kZXJUaW1lTXMgewogICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKIAorICByZXR1
cm4gW3NlbGYgZGVjb2RlRGF0YTogKHVpbnQ4X3QgKilpbnB1dEltYWdlLmJ1ZmZlci5ieXRlcyBz
aXplOiBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGggdGltZVN0YW1wOiBpbnB1dEltYWdlLnRpbWVT
dGFtcF07Cit9CisKKy0gKE5TSW50ZWdlcilkZWNvZGVEYXRhOihjb25zdCB1aW50OF90ICopZGF0
YQorICAgICAgICBzaXplOihzaXplX3Qpc2l6ZQorICAgICAgICB0aW1lU3RhbXA6KHVpbnQzMl90
KXRpbWVTdGFtcCB7CisKICAgaWYgKF9lcnJvciAhPSBub0VycikgewogICAgIFJUQ19MT0coTFNf
V0FSTklORykgPDwgIkxhc3QgZnJhbWUgZGVjb2RlIGZhaWxlZC4iOwogICAgIF9lcnJvciA9IG5v
RXJyOwpAQCAtMTA5LDggKzExNiw3IEBAIHZvaWQgZGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNr
KHZvaWQgKmRlY29kZXJSZWYsCiAgIH0KIAogICBydGM6OlNjb3BlZENGVHlwZVJlZjxDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25SZWY+IGlucHV0Rm9ybWF0ID0KLSAgICAgIHJ0Yzo6U2NvcGVkQ0Yo
d2VicnRjOjpDcmVhdGVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKCh1aW50OF90ICopaW5wdXRJbWFn
ZS5idWZmZXIuYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGgpKTsKKyAgICAgIHJ0Yzo6
U2NvcGVkQ0Yod2VicnRjOjpDcmVhdGVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKGRhdGEsIHNpemUp
KTsKICAgaWYgKGlucHV0Rm9ybWF0KSB7CiAgICAgLy8gQ2hlY2sgaWYgdGhlIHZpZGVvIGZvcm1h
dCBoYXMgY2hhbmdlZCwgYW5kIHJlaW5pdGlhbGl6ZSBkZWNvZGVyIGlmCiAgICAgLy8gbmVlZGVk
LgpAQCAtMTMyLDggKzEzOCw3IEBAIHZvaWQgZGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZv
aWQgKmRlY29kZXJSZWYsCiAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKICAg
fQogICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICBpZiAoIXdl
YnJ0Yzo6SDI2NEFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoKHVpbnQ4X3QgKilpbnB1dElt
YWdlLmJ1ZmZlci5ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlucHV0SW1hZ2UuYnVmZmVyLmxlbmd0aCwKKyAgaWYgKCF3ZWJydGM6OkgyNjRB
bm5leEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVyKGRhdGEsIHNpemUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdmlkZW9Gb3JtYXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2FtcGxlQnVmZmVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21lbW9yeVBvb2wp
KSB7CkBAIC0xNDIsMTQgKzE0NywxNCBAQCB2b2lkIGRlY29tcHJlc3Npb25PdXRwdXRDYWxsYmFj
ayh2b2lkICpkZWNvZGVyUmVmLAogICBSVENfRENIRUNLKHNhbXBsZUJ1ZmZlcik7CiAgIFZURGVj
b2RlRnJhbWVGbGFncyBkZWNvZGVGbGFncyA9IGtWVERlY29kZUZyYW1lX0VuYWJsZUFzeW5jaHJv
bm91c0RlY29tcHJlc3Npb247CiAgIHN0ZDo6dW5pcXVlX3B0cjxSVENGcmFtZURlY29kZVBhcmFt
cz4gZnJhbWVEZWNvZGVQYXJhbXM7Ci0gIGZyYW1lRGVjb2RlUGFyYW1zLnJlc2V0KG5ldyBSVENG
cmFtZURlY29kZVBhcmFtcyhfY2FsbGJhY2ssIGlucHV0SW1hZ2UudGltZVN0YW1wKSk7CisgIGZy
YW1lRGVjb2RlUGFyYW1zLnJlc2V0KG5ldyBSVENGcmFtZURlY29kZVBhcmFtcyhfY2FsbGJhY2ss
IHRpbWVTdGFtcCkpOwogICBPU1N0YXR1cyBzdGF0dXMgPSBWVERlY29tcHJlc3Npb25TZXNzaW9u
RGVjb2RlRnJhbWUoCiAgICAgICBfZGVjb21wcmVzc2lvblNlc3Npb24sIHNhbXBsZUJ1ZmZlciwg
ZGVjb2RlRmxhZ3MsIGZyYW1lRGVjb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVsbHB0cik7CiAjaWYg
ZGVmaW5lZChXRUJSVENfSU9TKQogICAvLyBSZS1pbml0aWFsaXplIHRoZSBkZWNvZGVyIGlmIHdl
IGhhdmUgYW4gaW52YWxpZCBzZXNzaW9uIHdoaWxlIHRoZSBhcHAgaXMKICAgLy8gYWN0aXZlIGFu
ZCByZXRyeSB0aGUgZGVjb2RlIHJlcXVlc3QuCiAgIGlmIChzdGF0dXMgPT0ga1ZUSW52YWxpZFNl
c3Npb25FcnIgJiYgW3NlbGYgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0gPT0gV0VCUlRDX1ZJ
REVPX0NPREVDX09LKSB7Ci0gICAgZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1l
RGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgaW5wdXRJbWFnZS50aW1lU3RhbXApKTsKKyAgICBmcmFt
ZURlY29kZVBhcmFtcy5yZXNldChuZXcgUlRDRnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCB0
aW1lU3RhbXApKTsKICAgICBzdGF0dXMgPSBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJh
bWUoCiAgICAgICAgIF9kZWNvbXByZXNzaW9uU2Vzc2lvbiwgc2FtcGxlQnVmZmVyLCBkZWNvZGVG
bGFncywgZnJhbWVEZWNvZGVQYXJhbXMucmVsZWFzZSgpLCBudWxscHRyKTsKICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE4NDAxZGE1Mzc0NWQyOTQxODRjOGY5YTYwOWRm
ZWY5OTNiMWZlMzAuLjIxNzc5ZTM5Y2FhMzQ1MjIzZDhhNGQxOTg1ZGMyMTg4ZmFiZGY5MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2Vi
cnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk0MSw3ICs5NDEsNyBAQAogCQk0MTNB
MjQ0NjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9FbmNvZGVyVlA5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNBMjQwRTFGRTE5OTA1MDAzNzNF
OTkgLyogUlRDVmlkZW9FbmNvZGVyVlA5LmggKi87IH07CiAJCTQxM0EyNDQ3MUZFMTk5MUEwMDM3
M0U5OSAvKiBSVENNZWRpYVN0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNBMjQwRjFGRTE5OTA2MDAzNzNFOTkgLyogUlRDTWVkaWFT
dHJlYW1UcmFjay5oICovOyB9OwogCQk0MTNBMjQ0ODFGRTE5OTFBMDAzNzNFOTkgLyogUlRDSW50
ZXJ2YWxSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDEzQTI0MTAxRkUxOTkwNjAwMzczRTk5IC8qIFJUQ0ludGVydmFsUmFuZ2UuaCAqLzsgfTsK
LQkJNDEzQTI0NDkxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ01hY3Jvcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzQTI0MTExRkUxOTkwNjAwMzczRTk5
IC8qIFJUQ01hY3Jvcy5oICovOyB9OworCQk0MTNBMjQ0OTFGRTE5OTFBMDAzNzNFOTkgLyogUlRD
TWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTNBMjQxMTFGRTE5OTA2MDAzNzNFOTkgLyogUlRDTWFjcm9zLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEzQTI0NEExRkUxOTkxQTAwMzczRTk5
IC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEzQTI0MTIxRkUxOTkwNjAwMzczRTk5IC8qIFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbi5oICovOyB9OwogCQk0MTNBMjQ0QjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDQXVk
aW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxM0EyNDEzMUZFMTk5MDcwMDM3M0U5OSAvKiBSVENBdWRpb1NvdXJjZS5oICovOyB9OwogCQk0
MTNBMjQ0QzFGRTE5OTFBMDAzNzNFOTkgLyogUlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNBMjQxNDFGRTE5
OTA3MDAzNzNFOTkgLyogUlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJzLmggKi87IH07CkBAIC0xMjQ1
LDcgKzEyNDUsNyBAQAogCQk0MTc5NTNDMjIxNjk4MjRCMDAyODI2NkIgLyogUlRDRGVmYXVsdFZp
ZGVvRW5jb2RlckZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxNjIyNUY3MjE2OTgxRjQwMEE5MUM5QiAvKiBSVENEZWZhdWx0VmlkZW9FbmNv
ZGVyRmFjdG9yeS5oICovOyB9OwogCQk0MTc5NTNDMzIxNjk4MjRCMDAyODI2NkIgLyogUlRDSDI2
NFByb2ZpbGVMZXZlbElkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTE1MjFENDIxNjk4MjFGMDAwQUJBRjcgLyogUlRDSDI2NFByb2ZpbGVMZXZlbElk
LmggKi87IH07CiAJCTQxNzk1M0M1MjE2OTgyNEIwMDI4MjY2QiAvKiBSVENWaWRlb0RlY29kZXJG
YWN0b3J5SDI2NC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE2MjI1RjIyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0
LmggKi87IH07Ci0JCTQxNzk1M0M2MjE2OTgyNEIwMDI4MjY2QiAvKiBSVENWaWRlb0RlY29kZXJI
MjY0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTYy
MjVGMzIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5oICovOyB9OworCQk0
MTc5NTNDNjIxNjk4MjRCMDAyODI2NkIgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2MjI1RjMyMTY5ODFGMzAw
QTkxQzlCIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTc5NTNDNzIxNjk4MjRCMDAyODI2NkIgLyogUlRD
VmlkZW9EZWNvZGVySDI2NC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxNjIyNUY0MjE2OTgxRjMwMEE5MUM5QiAvKiBSVENWaWRlb0RlY29kZXJIMjY0
Lm1tICovOyB9OwogCQk0MTc5NTNDODIxNjk4MjRCMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVy
RmFjdG9yeUgyNjQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNjIyNUVGMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2
NC5oICovOyB9OwogCQk0MTc5NTNDOTIxNjk4MjRCMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVy
SDI2NC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2
MjI1RUMyMTY5ODFGMjAwQTkxQzlCIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjQuaCAqLzsgfTsKQEAg
LTE2MjQwLDEwICsxNjI0MCwxMCBAQAogCQkJCTQxQkU3MUNBMjE1QzQ2NDgwMEE3QjE5NiAvKiBo
YW10LmMgaW4gU291cmNlcyAqLywKIAkJCQk0MUJFNzFDQjIxNUM0NjQ4MDBBN0IxOTYgLyogaW5z
bi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFCRTcxN0IyMTVDNDU5MDAwQTdCMTk2IC8qIGludG51
bS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE3QzAzNzMyM0IyMTBDNDAwREU1RDhCIC8qIG1haW5f
bm9vcC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFCRTcxN0MyMTVDNDU5MDAwQTdCMTk2IC8qIGlu
dHRyZWUuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxQkU3MUNDMjE1QzQ2NDgwMEE3QjE5NiAvKiBs
aW5lbWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTlFQTFGMzIxNUM0OEM3MDA4MkJGRDIgLyog
bWFjaG8tb2JqZm10LmMgaW4gU291cmNlcyAqLywKKwkJCQk0MTdDMDM3MzIzQjIxMEM0MDBERTVE
OEIgLyogbWFpbl9ub29wLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MUJFNzE3RDIxNUM0NTkwMDBB
N0IxOTYgLyogbWQ1LmMgaW4gU291cmNlcyAqLywKIAkJCQk0MUJFNzE3RTIxNUM0NTkwMDBBN0Ix
OTYgLyogbWVyZ2Vzb3J0LmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTlFQTFGOTIxNUM0QTlFMDA4
MkJGRDIgLyogbW9kdWxlLmMgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAppbmRleCA5M2M5MzA1
ZjQyMTAyZDcyNmU3NDFlNTlmMjI2YjVlZTQ2ODljMTJhLi45ZmU4MjRiMTg3MzhlYTAwNzg4NGY0
MjY1YTFkNTlhNWU0YTUyMTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCkBAIC02MSw2ICs2MSwxNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUo
TWVkaWFTYW1wbGUmJiBzYW1wbAogICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlk
ZW9TYW1wbGU+KG5ldyBSZW1vdGVWaWRlb1NhbXBsZShzdXJmYWNlLCBzUkdCQ29sb3JTcGFjZVJl
ZigpLCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpLCBzYW1wbGUudmlkZW9Sb3RhdGlvbigpLCBz
YW1wbGUudmlkZW9NaXJyb3JlZCgpKSk7CiB9CiAKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRl
b1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShDVlBpeGVsQnVmZmVyUmVmIGltYWdl
QnVmZmVyLCBNZWRpYVRpbWUmJiBwcmVzZW50YXRpb25UaW1lKQoreworICAgIGF1dG8gc3VyZmFj
ZSA9IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2UoaW1hZ2VCdWZmZXIpOworICAgIGlmICghc3Vy
ZmFjZSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIlJlbW90ZVZpZGVvU2Ft
cGxlOjpjcmVhdGU6IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2UgcmV0dXJuZWQgbnVsbHB0ciIp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPihuZXcgUmVtb3RlVmlkZW9TYW1wbGUoc3VyZmFjZSwg
c1JHQkNvbG9yU3BhY2VSZWYoKSwgV1RGTW92ZShwcmVzZW50YXRpb25UaW1lKSwgTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIGZhbHNlKSk7Cit9CisKIFJlbW90ZVZpZGVvU2FtcGxl
OjpSZW1vdGVWaWRlb1NhbXBsZShJT1N1cmZhY2VSZWYgc3VyZmFjZSwgQ0dDb2xvclNwYWNlUmVm
IGNvbG9yU3BhY2UsIE1lZGlhVGltZSYmIHRpbWUsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
IHJvdGF0aW9uLCBib29sIG1pcnJvcmVkKQogICAgIDogbV9pb1N1cmZhY2UoV2ViQ29yZTo6SU9T
dXJmYWNlOjpjcmVhdGVGcm9tU3VyZmFjZShzdXJmYWNlLCBjb2xvclNwYWNlKSkKICAgICAsIG1f
cm90YXRpb24ocm90YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAppbmRleCBmMDJkNGZjYjRhYjkzZDY2YzEzZGEwNDhi
MjRhMjgwZDE3M2Y2ZThlLi5iZDI1NWY3OTQwMDQyNzFlM2FiNGViMjYwMjdlNjRhNzRhOTI4NDg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRl
b1NhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZp
ZGVvU2FtcGxlLmgKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKICNl
bmRpZgogCit0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOworCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlIHsKQEAgLTQ3LDYg
KzQ5LDcgQEAgcHVibGljOgogCiAjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKE1lZGlh
U2FtcGxlJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlVmlkZW9TYW1wbGU+IGNyZWF0ZShDVlBpeGVsQnVmZmVyUmVmLCBNZWRpYVRpbWUmJiBwcmVz
ZW50YXRpb25UaW1lKTsKICAgICBXRUJDT1JFX0VYUE9SVCBJT1N1cmZhY2VSZWYgc3VyZmFjZSgp
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaAppbmRleCAxNmU1NTc2ZGRhMWNkZTYz
ZjBkN2E1M2Q5YTk1NzU3OTk1MjgxZjAxLi4zYjc0MzBmZjRjOGZmOGJkMjc0ZmM2YjJlYWQ3Y2U1
YmM1YjBlNWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCkBAIC01NSw2ICs1NSwxMCBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPE1lZGlhU2FtcGxlPiBjcmVhdGVNZWRp
YVNhbXBsZShJT1N1cmZhY2VSZWYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IEludFNpemUmLCBN
ZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpO
b25lLCBib29sIG1pcnJvcmVkID0gZmFsc2UpOwogI2VuZGlmCiAKKyNpZiBIQVZFKElPU1VSRkFD
RSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorICAgIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VSZWYsIGNvbnN0
IEludFNpemUmKTsKKyNlbmRpZgorCiAgICAgdWludDMyX3QgcGl4ZWxGb3JtYXQoKSBjb25zdCB7
IHJldHVybiBtX3BpeGVsRm9ybWF0OyB9CiAKIHByaXZhdGU6CkBAIC02Myw3ICs2Nyw2IEBAIHBy
aXZhdGU6CiAjaWYgSEFWRShJT1NVUkZBQ0UpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICAg
ICBDRkRpY3Rpb25hcnlSZWYgaW9TdXJmYWNlUGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMoSU9T
dXJmYWNlUmVmKTsKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUNNU2Ft
cGxlQnVmZmVyKElPU3VyZmFjZVJlZiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgSW50U2l6ZSYp
OwotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlcihJT1N1
cmZhY2VSZWYsIGNvbnN0IEludFNpemUmKTsKICNlbmRpZgogCiAgICAgUmV0YWluUHRyPENNU2Ft
cGxlQnVmZmVyUmVmPiBjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYsIGNv
bnN0IEludFNpemUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5o
CmluZGV4IGQzYzM4Mzk1YzA3N2YzNDYwNGI1YmIwZjRiNDNhZTExMDBjZGYyMzMuLjIzOWUzNGE2
ODViNDEwYmM5MzhjMTQ5MTVlOTdjZjE4MmUwN2VlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29h
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyQ29jb2EuaApAQCAtNDEsOSArNDEsMTAgQEAgcHVibGljOgogICAgIExp
YldlYlJUQ1Byb3ZpZGVyQ29jb2EoKSA9IGRlZmF1bHQ7CiAgICAgfkxpYldlYlJUQ1Byb3ZpZGVy
Q29jb2EoKTsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rv
cnk+IGNyZWF0ZURlY29kZXJGYWN0b3J5KCkgb3ZlcnJpZGU7CisKIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRBY3RpdmUoYm9vbCkgZmluYWw7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6Vmlk
ZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlRGVjb2RlckZhY3RvcnkoKSBmaW5hbDsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXJGYWN0b3J5PiBjcmVhdGVFbmNvZGVyRmFj
dG9yeSgpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRIMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZChi
b29sIGFsbG93ZWQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0
aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktp
dC54Y2NvbmZpZwppbmRleCA3NDg5NjdlMjUxZWE5ZWIzYWQ0YjljODZjYzM4Y2E5MDgwZmU5ZGE5
Li42YjhlYjU1OTdlMzFiYjk0NGIxYjZmZjFkNDI2Njg3OGZkZmU0MzE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtMTM4LDcgKzEzOCw3IEBA
IExJQldFQlJUQ19MSUJSQVJZX0RJUl9DT0NPQV9UT1VDSF9OTyA9ICQoTElCV0VCUlRDX0xJQlJB
UllfRElSX1VTRV9PVkVSUklERV9GUkFNCiBMSUJXRUJSVENfTElCUkFSWV9ESVJfVVNFX09WRVJS
SURFX0ZSQU1FV09SS1NfRElSX05PID0gJChXRUJDT1JFX0ZSQU1FV09SS1NfRElSKS9XZWJDb3Jl
LmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3M7CiBMSUJXRUJSVENfTElCUkFSWV9ESVJf
VVNFX09WRVJSSURFX0ZSQU1FV09SS1NfRElSX1lFUyA9ICQoV0tfT1ZFUlJJREVfRlJBTUVXT1JL
U19ESVIpOwogCi1PVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpIC1pZnJhbWV3b3JrIiQoU0RL
X0RJUikkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJpdmF0ZUZyYW1ld29ya3MiICQoVU5FWFBPUlRF
RF9TWU1CT0xfTERGTEFHUykgJChBU0FOX09USEVSX0xERkxBR1MpICQoRlJBTUVXT1JLX0FORF9M
SUJSQVJZX0xERkxBR1MpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1MpOworT1RI
RVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtaWZyYW1ld29yayIkKFNES19ESVIpJChTWVNURU1f
TElCUkFSWV9ESVIpL1ByaXZhdGVGcmFtZXdvcmtzIiAkKFVORVhQT1JURURfU1lNQk9MX0xERkxB
R1MpICQoQVNBTl9PVEhFUl9MREZMQUdTKSAkKEZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdT
KSAkKFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAgIC1YbGlua2VyIC0tbm8tZGVt
YW5nbGU7CiAKIFJFRVhQT1JURURfRlJBTUVXT1JLX05BTUVTID0gV2ViS2l0TGVnYWN5OwogUkVF
WFBPUlRFRF9GUkFNRVdPUktfTkFNRVNbc2RrPW1hY29zeCpdID0gJChpbmhlcml0ZWQpIFdlYkNv
cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5k
ZXggMDdkMzMwNWI4MjM5NzJlNzg3ZmZlZTdkYjgwZTExNGQyMjUxMTI2Ni4uZjM3ZjNiZDFmMWZk
NGI4MjdhYTg5YTMzMTQxNDkyMGQ3YTExM2FjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTcsNiArMTcsNyBAQCAkKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3Jr
UHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLm1lc3NhZ2VzLmluCkBAIC05OSw2ICsxMDAsOCBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2Vz
LgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluCiskKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDUmVtb3RlQ29kZWNzLm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA5ODY5Y2YxNzE2
MWZlZDk0NDkyYjJlYjY3NmEzMDk2MTE3Y2U2NTJmLi43MGFlYjdiM2VmNmUwZTFjNTM1MDM1MzNh
YjI5MDgwYmI4YWM3N2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKQEAgLTQ4LDYgKzQ4LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2Vz
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MZWdhY3lDdXN0
b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
clByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGliV2ViUlRDQ29k
ZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvTGliV2ViUlRDQ29kZWNzTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGliV2ViUlRDQ29kZWNzTWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL0xpYldlYlJU
Q0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MaWJXZWJSVENDb2RlY3NQ
cm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9MaWJXZWJSVENSZW1vdGVDb2RlY3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MaWJXZWJSVENSZW1vdGVD
b2RlY3NNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9MaWJXZWJSVENSZW1vdGVDb2RlY3NNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVz
c2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxN2JkY2I1ZjJk
YWFhOWJiMWI2YWY0ZDc0YWI1OGU1MDRhODEyMTgzLi4zODUwMjc3NDMyZTE4OTNlNjRjZDIzMTk0
MDI0ZjdjYmRkNzcwZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNSw2ICsy
NSw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvR1BVUHJvY2VzcyBcCiAgICAgJChXZWJL
aXQyKS9HUFVQcm9jZXNzL21hYyBcCiAgICAgJChXZWJLaXQyKS9HUFVQcm9jZXNzL21lZGlhIFwK
KyAgICAkKFdlYktpdDIpL0dQVVByb2Nlc3Mvd2VicnRjIFwKICAgICAkKFdlYktpdDIpL05ldHdv
cmtQcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMgXAogICAg
ICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3MvY2FjaGUgXApAQCAtNTEsNiArNTIsNyBAQCBWUEFU
SCA9IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXAogICAgICQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9HUFUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEgXAorICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjIFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
TWVkaWFDYWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhU3RyZWFtIFwKQEAg
LTEwOSwxMiArMTExLDE0IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIERyYXdpbmdBcmVh
UHJveHkgXAogICAgIEVkaXRhYmxlSW1hZ2VDb250cm9sbGVyIFwKICAgICBFdmVudERpc3BhdGNo
ZXIgXAotICAgIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciBcCi0gICAgTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyUHJveHkgXAogICAgIEdQVVByb2Nlc3MgXAogICAgIEdQVVByb2Nlc3NQ
cm94eSBcCiAgICAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MgXAorICAgIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciBcCisgICAgTGVnYWN5
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgXAorICAgIExpYldlYlJUQ0NvZGVjcyBcCisgICAg
TGliV2ViUlRDQ29kZWNzUHJveHkgXAogICAgIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyIFwKICAg
ICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBcCiAgICAgTmV0d29ya0NvbnRlbnRSdWxl
TGlzdE1hbmFnZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGQwMTllNzE1YTZjNjgyZWM2YTQyNWI1ZTM5
Mzk3MGVhMmM3OGQ2NWQuLmU5NjgwMjYwNmE0ZGQxMzI0YmEyOWUwZTBlNzY2Mzc5YTM2MTgzYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJHUFVQcm9jZXNzLmgi
CiAjaW5jbHVkZSAiR1BVUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eS5oIgorI2luY2x1
ZGUgIkxpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKQEAgLTExNiw2ICsxMTgs
MTYgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6dXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0o
Q09DT0EpICYmIFVTRShMSUJXRUJSVEMpCitMaWJXZWJSVENDb2RlY3NQcm94eSYgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6bGliV2ViUlRDQ29kZWNzUHJveHkoKQoreworICAgIGlmICghbV9s
aWJXZWJSVENDb2RlY3NQcm94eSkKKyAgICAgICAgbV9saWJXZWJSVENDb2RlY3NQcm94eSA9IG1h
a2VVbmlxdWU8TGliV2ViUlRDQ29kZWNzUHJveHk+KCp0aGlzKTsKKworICAgIHJldHVybiAqbV9s
aWJXZWJSVENDb2RlY3NQcm94eTsKK30KKyNlbmRpZgorCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMTI4LDYgKzE0MCwxMiBAQCB2b2lkIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSQogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCisjaWYgUExBVEZPUk0oQ09D
T0EpICYmIFVTRShMSUJXRUJSVEMpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CisgICAgICAgIGxpYldlYlJUQ0NvZGVjc1Byb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VG
cm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyNlbmRpZgogfQogCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYg
ZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCmluZGV4IGM0MDY4NWYxNjdkNTQwYmU1ZWE3NGU2ODNhZDA5NzM4YjlkYWFkOWYuLmQzM2Uz
Zjk3OWM2Njk3ZGEzMDRhZGNhY2I2ZTY0NGFlNGEzNTkzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzcsNiAr
MzcsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nlc3M7CitjbGFzcyBM
aWJXZWJSVENDb2RlY3NQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OwogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIApAQCAtNTksNiArNjAsOSBA
QCBwcml2YXRlOgogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYsIFdl
YkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwog
CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5KCk7CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCisgICAg
TGliV2ViUlRDQ29kZWNzUHJveHkmIGxpYldlYlJUQ0NvZGVjc1Byb3h5KCk7CisjZW5kaWYKICNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5JiB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7CiAjZW5k
aWYKQEAgLTc2LDYgKzgwLDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eT4gbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OwogI2VuZGlmCisjaWYg
UExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCisgICAgc3RkOjp1bmlxdWVfcHRyPExp
YldlYlJUQ0NvZGVjc1Byb3h5PiBtX2xpYldlYlJUQ0NvZGVjc1Byb3h5OworI2VuZGlmCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTg4MDM5N2Vm
ODEwOWJjZmZjNTJiN2RiODc1NzFmNjQ2YmM0NzhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCkBAIC0wLDAg
KzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShMSUJXRUJSVEMp
ICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJN
ZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSVENEZWNvZGVySWRlbnRpZmllci5oIgorCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworY2xhc3Mg
RGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIHdlYnJ0YyB7Cit1c2luZyBMb2NhbERlY29k
ZXIgPSB2b2lkKjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M7CisKK2NsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5IDogcHJpdmF0ZSBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgTGliV2ViUlRDQ29kZWNzUHJveHkoR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYpOworICAgIH5MaWJXZWJSVENDb2RlY3NQcm94eSgpOworCisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZp
bmFsOworICAgIHZvaWQgY3JlYXRlRGVjb2RlcihSVENEZWNvZGVySWRlbnRpZmllcik7CisgICAg
dm9pZCByZWxlYXNlRGVjb2RlcihSVENEZWNvZGVySWRlbnRpZmllcik7CisgICAgdm9pZCBkZWNv
ZGVGcmFtZShSVENEZWNvZGVySWRlbnRpZmllciwgdWludDMyX3QgdGltZVN0YW1wLCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmKTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBIYXNoTWFwPFJUQ0RlY29kZXJJZGVudGlm
aWVyLCB3ZWJydGM6OkxvY2FsRGVjb2Rlcj4gbV9kZWNvZGVyczsKK307CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2ExMzM0ZGNkMGQz
YWExZGI5ZDUwMTU1NGYxYTMwOWNjNjU3MjcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDMyIEBACisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aWYgVVNFKExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworbWVzc2FnZXMgLT4gTGliV2ViUlRDQ29kZWNzUHJveHkgTm90UmVmQ291bnRlZCB7Cisg
ICAgQ3JlYXRlRGVjb2RlcihXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyIGlkKQorICAgIFJl
bGVhc2VEZWNvZGVyKFdlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXIgaWQpCisgICAgRGVjb2Rl
RnJhbWUoV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmllciBpZCwgdWludDMyX3QgdGltZVN0YW1w
LCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNWE0NTI0NzBkNGEwMWU2MWVkODAzZTgxOTE1NDRmZDYxMjkyYjFjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5tbQpAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eS5oIgorCisjaW5jbHVkZSAiRGF0
YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlICJMaWJXZWJSVENDb2RlY3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorI2luY2x1ZGUgPHdlYnJ0Yy9zZGsv
V2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KKwor
I2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitMaWJXZWJSVENDb2RlY3NQcm94eTo6TGliV2Vi
UlRDQ29kZWNzUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikKKyAg
ICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uKQoreworfQorCitMaWJX
ZWJSVENDb2RlY3NQcm94eTo6fkxpYldlYlJUQ0NvZGVjc1Byb3h5KCkKK3sKKyAgICBmb3IgKGF1
dG8gZGVjb2RlciA6IG1fZGVjb2RlcnMudmFsdWVzKCkpCisgICAgICAgIHdlYnJ0Yzo6cmVsZWFz
ZUxvY2FsRGVjb2RlcihkZWNvZGVyKTsKK30KKwordm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6
Y3JlYXRlRGVjb2RlcihSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIEFT
U0VSVCghbV9kZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9kZWNvZGVycy5h
ZGQoaWRlbnRpZmllciwgd2VicnRjOjpjcmVhdGVMb2NhbERlY29kZXIoXihDVlBpeGVsQnVmZmVy
UmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1w
KSB7CisgICAgICAgIGlmIChhdXRvIHNhbXBsZSA9IFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxl
OjpjcmVhdGUocGl4ZWxCdWZmZXIsIE1lZGlhVGltZSh0aW1lU3RhbXBOcywgMSkpKQorICAgICAg
ICAgICAgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpMaWJXZWJSVENDb2RlY3M6OkNvbXBsZXRlZERlY29kaW5nIHsgaWRlbnRpZmllciwgdGlt
ZVN0YW1wLCAqc2FtcGxlIH0sIDApOworICAgIH0pKTsKK30KKwordm9pZCBMaWJXZWJSVENDb2Rl
Y3NQcm94eTo6cmVsZWFzZURlY29kZXIoUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBBU1NFUlQobV9kZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgaWYg
KGF1dG8gZGVjb2RlciA9IG1fZGVjb2RlcnMudGFrZShpZGVudGlmaWVyKSkKKyAgICAgICAgd2Vi
cnRjOjpyZWxlYXNlTG9jYWxEZWNvZGVyKGRlY29kZXIpOworfQorCit2b2lkIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5OjpkZWNvZGVGcmFtZShSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1
aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3sKKyAg
ICBBU1NFUlQobV9kZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgYXV0byBkZWNv
ZGVyID0gbV9kZWNvZGVycy5nZXQoaWRlbnRpZmllcik7CisgICAgaWYgKCFkZWNvZGVyKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAod2VicnRjOjpkZWNvZGVGcmFtZShkZWNvZGVyLCB0aW1l
U3RhbXAsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSkpCisgICAgICAgIG1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNz
OjpGYWlsZWREZWNvZGluZyB7IGlkZW50aWZpZXIgfSwgMCk7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBmMmU5ZWQ3YWI1NDAy
ZWY1MTE4OGY3ZThkYmUzOTZiYThhY2UwZmFkLi43NTNlYTk3ZTJmYjMxMmFmYWE3NzVmZmVjZmY5
NjZiN2JkOTUyZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
QEAgLTIyMCw2ICsyMjAsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNs
YXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAogICAgICAg
ICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAgICAnV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6UlRDRGVj
b2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIn
LAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggMTkx
NmRiM2Q2NWI2NWVjZGM1ZTAwZWE3ZWMwMWVmZGM2NTY2MTBmZi4uYWNmNDljNzFjNzY0MzAzNDBi
MWE1NWZkNDRlZWUxNDUyYjQ1OGIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC01MDQsMTIgKzUwNCwxMyBA
QCBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAKIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L0xpYldlYlJUQ0NvZGVjcy5jcHAKIAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAK
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuY3BwCiBX
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCi1XZWJQcm9jZXNzL05ldHdv
cmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKK1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFu
bmVsLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsTWFu
YWdlci5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHAKIFdlYlBy
b2Nlc3MvTmV0d29yay9XZWJTb2NrZXRTdHJlYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5k
ZXggYTRhYTU1ZTJhYTE5YTE0NjYyNTRiYmYxYmJjNzIyODk5YjZjNjI3OC4uYzcxM2JhZTM4ODdh
Y2VmNzlkNDM5ZTkwMWVhN2E4Mjg1NjA0YjlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAt
NjEsNiArNjEsNyBAQCBHUFVQcm9jZXNzL2lvcy9HUFVQcm9jZXNzSU9TLm1tCiBHUFVQcm9jZXNz
L21hYy9HUFVQcm9jZXNzTWFjLm1tCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
LmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KIEdQVVByb2Nl
c3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiAK
IFBsYXRmb3JtL2NmL01vZHVsZUNGLmNwcApAQCAtNjMzLDcgKzYzNCw3IEBAIEVkaXRhYmxlSW1h
Z2VDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAKIEdQVVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
IEdQVVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCi0vL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKLS8vUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwCitMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
K0xpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKIFNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBlM2I5MTkyMGM5YjhhM2YzNmEwYmQxNDhjYTg1OGRiZGRjYjNhMDg3Li43
YTJlODFlNDIxZTRjODQ1ZDA1N2ZlZGRlN2ZjZmFmNzJlNWRlOGNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxNiw2ICs5MTYsNyBA
QAogCQk0MURDNDU5QzFFM0RCQjI4MDBCMTFGNTEgLyogTGliV2ViUlRDU29ja2V0Q2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURDNDU5QTFF
M0RCQjI0MDBCMTFGNTEgLyogTGliV2ViUlRDU29ja2V0Q2xpZW50LmggKi87IH07CiAJCTQxREM0
NTlGMUUzREJEQTUwMEIxMUY1MSAvKiBXZWJSVENTb2NrZXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUYzMUUzQkZFN0YwMDFBRTY3OCAvKiBX
ZWJSVENTb2NrZXQuaCAqLzsgfTsKIAkJNDFERTdDNkMyMjI3OEYxRTAwNTMyQjY1IC8qIFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE1MTg1MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRj
aFRhc2suY3BwICovOyB9OworCQk0MUUwQTdDQjIzQjY0NUNEMDA1NjEwNjAgLyogV2ViU29ja2V0
Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTc5MTVBQzIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi87IH07
CiAJCTQxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxRjA2MEREMTY1NDMxNzUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKIAkJNDFGQUJEMkExRjRERTAwMTAwNkE2Qzk3IC8qIENhY2hlU3RvcmFn
ZUVuZ2luZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MUZBQkQyODFGNERERkRDMDA2QTZDOTcgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUu
aCAqLzsgfTsKIAkJNDFGQUY1RjUxRTNDMDY0OTAwMUFFNjc4IC8qIFdlYlJUQ1Jlc29sdmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBRjVGNDFF
M0MwNjQxMDAxQUU2NzggLyogV2ViUlRDUmVzb2x2ZXIuaCAqLzsgfTsKQEAgLTMyOTEsNiArMzI5
MiwxMCBAQAogCQk0MTUxRTVDMzFGQkI5MEE5MDBFNDdFMkQgLyogRm9ybURhdGFSZWZlcmVuY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybURhdGFSZWZlcmVuY2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1Nzg1MzAyMTI3NkI2RjAwREQzODAwIC8q
IGNvcHktd2ViY29udGVudC1yZXNvdXJjZXMtdG8tcHJpdmF0ZS1oZWFkZXJzLnNoICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQuc2g7
IHBhdGggPSAiY29weS13ZWJjb250ZW50LXJlc291cmNlcy10by1wcml2YXRlLWhlYWRlcnMuc2gi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU3RTRBRjIwRTJFQzk4MDBBNkMwRDcg
LyogY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IGNvbS5nb29nbGUubzFkYnJvd3NlcnBsdWdpbi5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDE3MjE5ODkyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaWJXZWJSVENDb2RlY3MuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3MjE5OEEyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJU
Q0NvZGVjcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaWJXZWJS
VENDb2RlY3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTcyMTk4QzIzQjYx
MkU4MDBBRTU2ODYgLyogUlRDRGVjb2RlcklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUlRDRGVjb2RlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDE3MjE5OEQyM0I2MkM3QzAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBMaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxNzY5MDEzMjJGREQ0MUIwMEIxNTc2RCAvKiBOZXR3b3JrUlRD
UHJvdmlkZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3
b3JrUlRDUHJvdmlkZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFD
MjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWwuY3BwOyBwYXRoID0gTmV0d29y
ay9XZWJTb2NrZXRDaGFubmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3
OTE1QUQyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbC5oOyBwYXRoID0gTmV0d29yay9X
ZWJTb2NrZXRDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMzMyLDYg
KzMzMzcsOSBAQAogCQk0MURDNDU5QTFFM0RCQjI0MDBCMTFGNTEgLyogTGliV2ViUlRDU29ja2V0
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpYldlYlJUQ1NvY2tl
dENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURDNDU5RDFFM0RCQ0Yw
MDBCMTFGNTEgLyogV2ViUlRDU29ja2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFdlYlJUQ1NvY2tldC5jcHA7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9XZWJSVENT
b2NrZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURDNDVBMDFFM0RDNTND
MDBCMTFGNTEgLyogV2ViUlRDUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV2ViUlRDUmVzb2x2ZXIuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvV2Vi
UlRDUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUUwQTdDNjIz
QjYzOTc4MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TGliV2ViUlRDQ29kZWNzUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFF
MEE3QzcyM0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MUUwQTdDODIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNz
UHJveHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMaWJXZWJSVENDb2RlY3NQcm94eS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8q
IFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
V2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJLaXQyL1dlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk0MUZBQkQyODFGNERERkRDMDA2QTZDOTcgLyog
Q2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDFGQUY1RjMxRTNCRkU3RjAwMUFFNjc4IC8qIFdlYlJUQ1NvY2tldC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJSVENTb2NrZXQuaDsgcGF0aCA9IE5ldHdvcmsvd2Vi
cnRjL1dlYlJUQ1NvY2tldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjMyNyw2
ICs2MzM1LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMDc5
MjMxMkYyMzlCM0IwQzAwOTU5OEUyIC8qIG1lZGlhICovLAorCQkJCTQxNzIxOTg4MjNCNjEyNjEw
MEFFNTY4NiAvKiB3ZWJydGMgKi8sCiAJCQkJMkQ3RTQzQzAyMzc1MkNEOTAwRUE1Q0EwIC8qIEdQ
VVByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKIAkJCQkyRDdFNDNDMzIzNzUyQ0Q5MDBFQTVDQTAg
LyogR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKIAkJCQkyRDdFNDNDMjIzNzUyQ0Q5MDBFQTVD
QTAgLyogR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCkBAIC02MzQyLDYgKzYz
NTEsNyBAQAogCQkJCTJEOUZCMjA0MjM3NTIwOUQwMDQ5RjkzNiAvKiBpb3MgKi8sCiAJCQkJMkQ5
RkIyMDYyMzc1MjA5RDAwNDlGOTM2IC8qIG1hYyAqLywKIAkJCQkwN0M3NUMxNzIzOTlBM0RCMDA4
OEU2NUIgLyogbWVkaWEgKi8sCisJCQkJNDE3MjE5OEUyM0I2MzNDQTAwQUU1Njg2IC8qIHdlYnJ0
YyAqLywKIAkJCQkyRDlGQjIwQzIzNzUyMDlEMDA0OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAgKi8sCiAJCQkJMkQ5RkIyMDAyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQkyRDlGQjIwOTIzNzUyMDlEMDA0OUY5MzYgLyog
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKQEAgLTcwNjMsNiArNzA3
MywyNyBAQAogCQkJbmFtZSA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCTQxNzIxOTg4MjNCNjEyNjEwMEFFNTY4NiAvKiB3ZWJydGMgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQxNzIxOThBMjNCNjEyODIwMEFFNTY4
NiAvKiBMaWJXZWJSVENDb2RlY3MuY3BwICovLAorCQkJCTQxNzIxOTg5MjNCNjEyODIwMEFFNTY4
NiAvKiBMaWJXZWJSVENDb2RlY3MuaCAqLywKKwkJCQk0MTcyMTk4RDIzQjYyQzdDMDBBRTU2ODYg
LyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluICovLAorCQkJCTQxNzIxOThDMjNCNjEyRTgw
MEFFNTY4NiAvKiBSVENEZWNvZGVySWRlbnRpZmllci5oICovLAorCQkJKTsKKwkJCXBhdGggPSB3
ZWJydGM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk0MTcyMTk4RTIzQjYz
M0NBMDBBRTU2ODYgLyogd2VicnRjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQk0MUUwQTdDNjIzQjYzOTc4MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNz
UHJveHkuaCAqLywKKwkJCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29k
ZWNzUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJNDFFMEE3QzgyM0I2Mzk3OTAwNTYxMDYwIC8q
IExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tICovLAorCQkJKTsKKwkJCXBhdGggPSB3ZWJydGM7CisJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk0MUQxMjlEODFGM0QxMDE0MDBEMTVF
NDcgLyogQ2FjaGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApA
QCAtMTIwOTksNiArMTIxMzAsNyBAQAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxRiAvKiBX
ZWJSVENNb25pdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2
MEUxMTY1NDMxODUwMEYzMjgyQyAvKiBXZWJSVENSZXNvbHZlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViUlRDU29j
a2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxRTBBN0NCMjNCNjQ1
Q0QwMDU2MTA2MCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQx
RjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMEIxNzc5MUU3Qzg4MjEwMEU5MTIzQyAvKiBXZWJT
b2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyODdE
NEUyMjVEMUVDQjAwOUEzRTI2IC8qIFdlYlNvY2tldFRhc2tDb2NvYS5tbSBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmNwcAppbmRleCBlOGRhYWUwZjliYTg1YTI1MWI3MDY3ZGUzOGNhNGE3Njk3NDIxNTgw
Li42NGE0YjRmN2RlY2EzODZiNTI3NTlhZmI0NzZjZWY5Zjg4ZGY4MmYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcApA
QCAtMzAsNiArMzAsOCBAQAogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkxpYldlYlJU
Q0NvZGVjcy5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
IgpAQCAtNzUsNiArNzcsMTIgQEAgdm9pZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICNlbmRpZgorI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09B
KQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6TGli
V2ViUlRDQ29kZWNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVj
dGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDJkNDU1NDE5MzQ3
NzgyMGVjMzZkOWE5OGU5NmNjY2VjNDUzYmJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcApAQCAtMCwwICsx
LDE0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMaWJX
ZWJSVENDb2RlY3MuaCIKKworI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKSAm
JiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJT
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1v
dGVWaWRlb1NhbXBsZS5oPgorI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgor
I2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgorI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdWludDY0
X3QgY3JlYXRlVmlkZW9EZWNvZGVyKGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmIGZvcm1h
dCkKK3sKKyAgICBpZiAoZm9ybWF0Lm5hbWUgIT0gIkgyNjQiKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIGF1dG8gZGVjb2RlcklkZW50aWZpZXIgPSBSVENEZWNvZGVySWRlbnRpZmllcjo6Z2Vu
ZXJhdGVUaHJlYWRTYWZlKCk7CisKKyAgICBjYWxsT25NYWluUnVuTG9vcChbZGVjb2RlcklkZW50
aWZpZXJdIHsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNz
KCkuY3JlYXRlRGVjb2RlcihkZWNvZGVySWRlbnRpZmllcik7CisgICAgfSk7CisgICAgcmV0dXJu
IGRlY29kZXJJZGVudGlmaWVyLnRvVUludDY0KCk7Cit9CisKK3N0YXRpYyBpbnQzMl90IHJlbGVh
c2VWaWRlb0RlY29kZXIodWludDY0X3QgZGVjb2RlcklkZW50aWZpZXIpCit7CisgICAgY2FsbE9u
TWFpblJ1bkxvb3BBbmRXYWl0KFtkZWNvZGVySWRlbnRpZmllcl0geworICAgICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5yZWxlYXNlRGVjb2RlcihtYWtlT2Jq
ZWN0SWRlbnRpZmllcjxSVENEZWNvZGVySWRlbnRpZmllclR5cGU+KGRlY29kZXJJZGVudGlmaWVy
KSk7CisgICAgfSk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQzMl90IGRlY29kZVZp
ZGVvRnJhbWUodWludDY0X3QgZGVjb2RlcklkZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwg
Y29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCit7CisgICAgaW50MzJfdCByZXN1bHQ7
CisgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFtkZWNvZGVySWRlbnRpZmllciwgdGltZVN0
YW1wLCBkYXRhLCBzaXplLCAmcmVzdWx0XSB7CisgICAgICAgIHJlc3VsdCA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmxpYldlYlJUQ0NvZGVjcygpLmRlY29kZUZyYW1lKG1ha2VPYmplY3RJZGVu
dGlmaWVyPFJUQ0RlY29kZXJJZGVudGlmaWVyVHlwZT4oZGVjb2RlcklkZW50aWZpZXIpLCB0aW1l
U3RhbXAsIGRhdGEsIHNpemUpOworICAgIH0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0
YXRpYyBpbnQzMl90IHJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjayh1aW50NjRfdCBkZWNv
ZGVySWRlbnRpZmllciwgdm9pZCogZGVjb2RlZEltYWdlQ2FsbGJhY2spCit7CisgICAgY2FsbE9u
TWFpblJ1bkxvb3AoW2RlY29kZXJJZGVudGlmaWVyLCBkZWNvZGVkSW1hZ2VDYWxsYmFja10gewor
ICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5yZWdpc3Rl
ckRlY29kZUZyYW1lQ2FsbGJhY2sobWFrZU9iamVjdElkZW50aWZpZXI8UlRDRGVjb2RlcklkZW50
aWZpZXJUeXBlPihkZWNvZGVySWRlbnRpZmllciksIGRlY29kZWRJbWFnZUNhbGxiYWNrKTsKKyAg
ICB9KTsKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBMaWJXZWJSVENDb2RlY3M6OmluaXRpYWxp
emVWaWRlb0RlY29kZXJDYWxsYmFja3MoKQoreworICAgIHdlYnJ0Yzo6c2V0VmlkZW9EZWNvZGVy
Q2FsbGJhY2tzKGNyZWF0ZVZpZGVvRGVjb2RlciwgcmVsZWFzZVZpZGVvRGVjb2RlciwgZGVjb2Rl
VmlkZW9GcmFtZSwgcmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKTsKK30KKwordm9pZCBM
aWJXZWJSVENDb2RlY3M6OmNyZWF0ZURlY29kZXIoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVjb2Rl
cklkZW50aWZpZXIpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29k
ZWNzUHJveHk6OkNyZWF0ZURlY29kZXIgeyBkZWNvZGVySWRlbnRpZmllciB9LCAwKTsKK30KKwor
dm9pZCBMaWJXZWJSVENDb2RlY3M6OnJlbGVhc2VEZWNvZGVyKFJUQ0RlY29kZXJJZGVudGlmaWVy
IGRlY29kZXJJZGVudGlmaWVyKQoreworICAgIEFTU0VSVChtX2RlY29kZUNhbGxiYWNrcy5jb250
YWlucyhkZWNvZGVySWRlbnRpZmllcikpOworCisgICAgbV9kZWNvZGVDYWxsYmFja3MucmVtb3Zl
KGRlY29kZXJJZGVudGlmaWVyKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVH
UFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJS
VENDb2RlY3NQcm94eTo6UmVsZWFzZURlY29kZXIgeyBkZWNvZGVySWRlbnRpZmllciB9LCAwKTsK
K30KKworaW50MzJfdCBMaWJXZWJSVENDb2RlY3M6OmRlY29kZUZyYW1lKFJUQ0RlY29kZXJJZGVu
dGlmaWVyIGRlY29kZXJJZGVudGlmaWVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0IHVpbnQ4
X3QqIGRhdGEsIHNpemVfdCBzaXplKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Okxp
YldlYlJUQ0NvZGVjc1Byb3h5OjpEZWNvZGVGcmFtZSB7IGRlY29kZXJJZGVudGlmaWVyLCB0aW1l
U3RhbXAsIElQQzo6RGF0YVJlZmVyZW5jZSB7IGRhdGEsIHNpemUgfSB9LCAwKTsKKyAgICByZXR1
cm4gbV9kZWNvZGluZ0Vycm9ycy5yZW1vdmUoZGVjb2RlcklkZW50aWZpZXIpID8gV0VCUlRDX1ZJ
REVPX0NPREVDX0VSUk9SIDogV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCit2b2lkIExpYldl
YlJUQ0NvZGVjczo6cmVnaXN0ZXJEZWNvZGVGcmFtZUNhbGxiYWNrKFJUQ0RlY29kZXJJZGVudGlm
aWVyIGRlY29kZXJJZGVudGlmaWVyLCB2b2lkKiBkZWNvZGVkSW1hZ2VDYWxsYmFjaykKK3sKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghbV9kZWNvZGVDYWxsYmFja3Mu
Y29udGFpbnMoZGVjb2RlcklkZW50aWZpZXIpKTsKKworICAgIG1fZGVjb2RlQ2FsbGJhY2tzLmFk
ZChkZWNvZGVySWRlbnRpZmllciwgZGVjb2RlZEltYWdlQ2FsbGJhY2spOworfQorCit2b2lkIExp
YldlYlJUQ0NvZGVjczo6ZmFpbGVkRGVjb2RpbmcoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVjb2Rl
cklkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIG1fZGVj
b2RpbmdFcnJvcnMuYWRkKGRlY29kZXJJZGVudGlmaWVyKTsKK30KKwordm9pZCBMaWJXZWJSVEND
b2RlY3M6OmNvbXBsZXRlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVu
dGlmaWVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYg
cmVtb3RlU2FtcGxlKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICAvLyBG
SVhNRTogRG8gZXJyb3IgbG9nZ2luZy4KKyAgICBhdXRvKiBjYWxsYmFjayA9IG1fZGVjb2RlQ2Fs
bGJhY2tzLmdldChkZWNvZGVySWRlbnRpZmllcik7CisgICAgaWYgKCFjYWxsYmFjaykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gcmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0
KCkpCisgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBXZWJDb3JlOjpJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpOworCisgICAg
aWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IG1f
aW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZVBpeGVsQnVmZmVyKHJlbW90ZVNhbXBsZS5zdXJm
YWNlKCksIHJlbW90ZVNhbXBsZS5zaXplKCkpOworICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICB3ZWJydGM6OlJlbW90ZVZpZGVvRGVjb2Rlcjo6ZGVjb2RlQ29tcGxldGUoY2FsbGJhY2ssIHRp
bWVTdGFtcCwgcGl4ZWxCdWZmZXIuZ2V0KCksIHJlbW90ZVNhbXBsZS50aW1lKCkudG9Eb3VibGUo
KSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NzFiMmRmMzA4ZjJm
NzIyMjU3MGVlYTJiNjc1ZGFiMzkyN2Q0OGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaApAQCAtMCwwICsxLDY5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlICJSVENEZWNvZGVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Cisj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0
aW9uOworY2xhc3MgRGVjb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVt
b3RlVmlkZW9TYW1wbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBMaWJXZWJS
VENDb2RlY3MgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBMaWJXZWJSVENDb2RlY3MoKSA9IGRlZmF1bHQ7
CisKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplVmlkZW9EZWNvZGVyQ2FsbGJhY2tzKCk7CisK
KyAgICB2b2lkIGNyZWF0ZURlY29kZXIoUlRDRGVjb2RlcklkZW50aWZpZXIpOworICAgIHZvaWQg
cmVsZWFzZURlY29kZXIoUlRDRGVjb2RlcklkZW50aWZpZXIpOworICAgIGludDMyX3QgZGVjb2Rl
RnJhbWUoUlRDRGVjb2RlcklkZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgY29uc3QgdWlu
dDhfdCosIHNpemVfdCk7CisgICAgdm9pZCByZWdpc3RlckRlY29kZUZyYW1lQ2FsbGJhY2soUlRD
RGVjb2RlcklkZW50aWZpZXIsIHZvaWQqIGRlY29kZWRJbWFnZUNhbGxiYWNrKTsKKworICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CisKK3ByaXZhdGU6CisgICAgdm9pZCBmYWlsZWREZWNvZGluZyhSVENEZWNvZGVySWRlbnRp
Zmllcik7CisgICAgdm9pZCBjb21wbGV0ZWREZWNvZGluZyhSVENEZWNvZGVySWRlbnRpZmllciwg
dWludDMyX3QgdGltZVN0YW1wLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmKTsKKworICAg
IEhhc2hNYXA8UlRDRGVjb2RlcklkZW50aWZpZXIsIHZvaWQqPiBtX2RlY29kZUNhbGxiYWNrczsK
KyAgICBIYXNoU2V0PFJUQ0RlY29kZXJJZGVudGlmaWVyPiBtX2RlY29kaW5nRXJyb3JzOworCisg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1h
Z2VUcmFuc2ZlclNlc3Npb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJU
Q0NvZGVjcy5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWFlOTc4NjgwZDNjM2E3ODBiOGMyNTll
NDNhNWU0OGQxOTAzMTZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFVTRShMSUJX
RUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3Nh
Z2VzIC0+IExpYldlYlJUQ0NvZGVjcyBOb3RSZWZDb3VudGVkIHsKKyAgICBGYWlsZWREZWNvZGlu
ZyhXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyIGlkKQorICAgIENvbXBsZXRlZERlY29kaW5n
KFdlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXIgaWQsIHVpbnQzMl90IHRpbWVTdGFtcCwgV2Vi
Q29yZTo6UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxlKQorfQorCisjZW5kaWYgLy8gVVNFKExJQldF
QlJUQykgJiYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JUQ0RlY29kZXJJZGVudGlm
aWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SVENEZWNvZGVySWRl
bnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkYWEzYmM1ZjkwZDViZWU5OTliYjI3YzhmMDFkMmViNzlm
ZGUyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9SVENEZWNvZGVySWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJUQ0RlY29kZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1
c2luZyBSVENEZWNvZGVySWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UlRDRGVjb2Rlcklk
ZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmNwcAppbmRleCA0NjhkZjZjNzg1ZmMzMmM1MzA3YjlmMDA4ZDBkMTYzYjA5M2ViM2JmLi5m
YTE3YmNjZmNiOTgyYzZjNzc0ZmQxYjRiNWU5NWZjZGFlOWQ1ZTEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHAKQEAgLTI4LDYgKzI4LDEwIEBACiAKICNpZiBVU0UoTElCV0VCUlRDKQogCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJMaWJX
ZWJSVENDb2RlY3MuaCIKKyNlbmRpZgorCiAjaW5jbHVkZSAiTGliV2ViUlRDTmV0d29yay5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDx3ZWJydGMvYXBpL2FzeW5jX3Jlc29s
dmVyX2ZhY3RvcnkuaD4KQEAgLTEzMSw2ICsxMzUsMTQgQEAgc3RkOjp1bmlxdWVfcHRyPExpYldl
YlJUQ1Byb3ZpZGVyOjpTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVy
OjoKICAgICByZXR1cm4gbWFrZVVuaXF1ZTxSVENTb2NrZXRGYWN0b3J5PihXVEZNb3ZlKHVzZXJB
Z2VudCkpOwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5
PiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlRGVjb2RlckZhY3RvcnkoKQoreworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgTGliV2ViUlRDQ29kZWNzOjpp
bml0aWFsaXplVmlkZW9EZWNvZGVyQ2FsbGJhY2tzKCk7CisjZW5kaWYKKyAgICByZXR1cm4gTGli
V2ViUlRDUHJvdmlkZXJDb2NvYTo6Y3JlYXRlRGVjb2RlckZhY3RvcnkoKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuaAppbmRleCAwMjQ4ZWVkOTMzMDA0YjQxYjMwMjAyNDkyNTY0N2EzZWU0MDEwZDBkLi43
ZTUwMTVmZGQ3MzdmOGE3NWQ0OTQ3N2ZlN2M2NjA0OWFkZDlkNGQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuaApAQCAtNTcsNiArNTcsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgdW5yZWdpc3Rlck1E
TlNOYW1lcyh1aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVn
aXN0ZXJNRE5TTmFtZSh1aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
aXBBZGRyZXNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1ETlNOYW1lT3JFcnJvciYmKT4mJikg
ZmluYWw7CiAgICAgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSBmaW5hbDsK
KworICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0
ZURlY29kZXJGYWN0b3J5KCkgZmluYWw7CisKIH07CiAjZWxzZQogdXNpbmcgTGliV2ViUlRDUHJv
dmlkZXIgPSBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAppbmRleCAxNTEzMjcxYWMzZjk3NTE1NmY5OTQyZGFmZGYwY2MwYThj
ZDdlM2QzLi5jNGFkMzlmOTBjNzVjMWNkMTM3OWJlMjRhNjE0MjI2ZTk5ZGE2Y2FlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNjgsNiArMTY4LDEwIEBACiAj
aW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgiCiAjZW5kaWYKIAorI2lmIFVTRShM
SUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaW5j
bHVkZSAiTGliV2ViUlRDQ29kZWNzLmgiCisjZW5kaWYKKwogLy8gVGhpcyBzaG91bGQgYmUgbGVz
cyB0aGFuIHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVGhyZXNob2xkIGluIFBsdWdJbkF1
dG9TdGFydFByb3ZpZGVyLgogc3RhdGljIGNvbnN0IFNlY29uZHMgcGx1Z0luQXV0b1N0YXJ0RXhw
aXJhdGlvblRpbWVVcGRhdGVUaHJlc2hvbGQgeyAyOSAqIDI0ICogNjAgKiA2MCB9OwogCkBAIC0x
MzEwLDYgKzEzMTQsMTUgQEAgdm9pZCBXZWJQcm9jZXNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbkNs
b3NlZChHUFVQcm9jZXNzQ29ubmVjdGlvbiogY29ubmVjdGlvbikKICAgICBtX2dwdVByb2Nlc3ND
b25uZWN0aW9uID0gbnVsbHB0cjsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElC
V0VCUlRDKQorTGliV2ViUlRDQ29kZWNzJiBXZWJQcm9jZXNzOjpsaWJXZWJSVENDb2RlY3MoKQor
eworICAgIGlmICghbV9saWJXZWJSVENDb2RlY3MpCisgICAgICAgIG1fbGliV2ViUlRDQ29kZWNz
ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENDb2RlY3M+KCk7CisgICAgcmV0dXJuICptX2xpYldlYlJU
Q0NvZGVjczsKK30KKyNlbmRpZgorCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQogCiB2
b2lkIFdlYlByb2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBjMmNlODhiZDYyNmY4YjhhM2NlOGE5
MDFlMzVmZmRiYzRiNGM3Mjg1Li44ZjliZmU1NzE1ZDQyMjU5YTNhM2IzMTcwNWFjMzRmNmYxM2Ix
ZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTEwOSw2ICsxMDks
NyBAQCBjbGFzcyBFdmVudERpc3BhdGNoZXI7CiBjbGFzcyBHYW1lcGFkRGF0YTsKIGNsYXNzIEdQ
VVByb2Nlc3NDb25uZWN0aW9uOwogY2xhc3MgSW5qZWN0ZWRCdW5kbGU7CitjbGFzcyBMaWJXZWJS
VENDb2RlY3M7CiBjbGFzcyBMaWJXZWJSVENOZXR3b3JrOwogY2xhc3MgTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uOwogY2xhc3MgT2JqQ09iamVjdEdyYXBoOwpAQCAtMjE4LDYgKzIxOSwxMSBAQCBw
dWJsaWM6CiAgICAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0
aW9uKCk7CiAgICAgdm9pZCBncHVQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChHUFVQcm9jZXNzQ29u
bmVjdGlvbiopOwogICAgIEdQVVByb2Nlc3NDb25uZWN0aW9uKiBleGlzdGluZ0dQVVByb2Nlc3ND
b25uZWN0aW9uKCkgeyByZXR1cm4gbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi5nZXQoKTsgfQorCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCisgICAgTGliV2ViUlRDQ29kZWNz
JiBsaWJXZWJSVENDb2RlY3MoKTsKKyNlbmRpZgorCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQogCiAgICAgTGliV2ViUlRDTmV0d29yayYgbGliV2ViUlRDTmV0d29yaygpOwpAQCAtNTIz
LDYgKzUyOSw5IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgUmVm
UHRyPEdQVVByb2Nlc3NDb25uZWN0aW9uPiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uOworI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxMaWJX
ZWJSVENDb2RlY3M+IG1fbGliV2ViUlRDQ29kZWNzOworI2VuZGlmCiAjZW5kaWYKIAogICAgIFJl
ZjxXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcj4gbV9jYWNoZVN0b3JhZ2VQcm92aWRlcjsKZGlmZiAt
LWdpdCBhL1dlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3Vy
Y2UueGNzY2hlbWUgYi9XZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9B
bGwgU291cmNlLnhjc2NoZW1lCmluZGV4IGI3NWY0YmQxOTlkOGFlNTZlYmZmMzc3YzhmMjI4MTMx
YThlYjMyN2IuLmUxYzk3NGNhZjNiMWFmNWY2ZjBjZmU1NzcwNGE1NjdlMjgzYzUwOWQgMTAwNjQ0
Ci0tLSBhL1dlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3Vy
Y2UueGNzY2hlbWUJCisrKyBiL1dlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hl
bWVzL0FsbCBTb3VyY2UueGNzY2hlbWUJCkBAIC01Nyw3ICs1Nyw3IEBACiAgICAgICAgICAgICA8
QnVpbGRhYmxlUmVmZXJlbmNlCiAgICAgICAgICAgICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0g
InByaW1hcnkiCiAgICAgICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIkZCMzlEMEQw
MTIwMEYwRTMwMDA4OEU2OSIKLSAgICAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAibGliQU5H
TEUuYSIKKyAgICAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAibGliQU5HTEUtc2hhcmVkLmR5
bGliIgogICAgICAgICAgICAgICAgQmx1ZXByaW50TmFtZSA9ICJBTkdMRSIKICAgICAgICAgICAg
ICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFpbmVyOlNvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL0FOR0xFLnhjb2RlcHJvaiI+CiAgICAgICAgICAgICA8L0J1aWxkYWJsZVJlZmVyZW5jZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386449</attachid>
            <date>2019-12-27 09:12:02 -0800</date>
            <delta_ts>2019-12-29 07:56:40 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-205607-20191227181200.patch</filename>
            <type>text/plain</type>
            <size>68873</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAyY2U0ZjNmNGVhNDA0MmNiMjgyZjE5ZDYzNTU3YzE2OGYyMGJkNjZjLi40MjNj
MTNmOWMyMDRlMWVkZDVjNjI1NTg1M2U1ZGEwYWU5OGIxOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0xMi0yNyAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFJUQyBWVEIgZGVj
b2RlcnMgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1NjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cDoKKyAgICAgICAg
KiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cDoKKyAgICAgICAgKiBDb25maWd1
cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cDoKKwogMjAxOS0xMi0yNCAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IGJ1aWxkIHlhc20gZm9yIGlPUyBh
bmQgaU9TIHNpbXVsYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE0MWZkNjkyMGY1ODcwNjgyNDg4YzMzZTQz
ZTYwZjI4NGQ5MjUxZjYuLjYzZjBiMDMyYjA2YmY2MGY1YWZiYTY0NDc2ZjBkYjUzMDFjNzJlOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0xMi0yNyAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFJUQyBWVEIgZGVjb2RlcnMg
aW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA1NjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisK
IDIwMTktMTItMjQgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IElnbm9yZSBVUkwgaG9zdCBmb3Igc2NoZW1lcyB0aGF0IGFyZSBub3QgdXNpbmcgaG9zdCBpbmZv
cm1hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA3N2M0NmQ3ZjRmOWQ4YzU4Mjc5M2U4NmQ5YTAwYzc0ODU1MGFk
ODAwLi5kYjY0YWViZmZmNWY1MjA4ZjNkOWVhNDQxNDIwZjAxYTc5ZmUyNjM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDE5LTEyLTI3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUlRDIFZUQiBkZWNvZGVycyBpbiBHUFVQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2MDcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BV
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y3Jl
YXRlVmlkZW9EZWNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjcmVh
dGVEZWNvZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmg6CisKIDIwMTktMTItMjMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CiAKICAgICAgICAgd2F0Y2hPUyBidWlsZCBmaXggYXR0ZW1wdApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1Mu
ZXhwCmluZGV4IGRiMDgzYzkwODM3ZGJiNGI2YzcxMDQwNjNlNDFjM2Q1ODRkYTBhN2QuLjhmZDVj
MjcyYWQ2YTFjMzhiMjA4M2IxMWU2MzU4ZmRjZWQ4NzdlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlP
Uy5leHAKQEAgLTI2MiwzICsyNjIsOCBAQCBfX1pOSzZ3ZWJydGMyMERhdGFDaGFubmVsSW50ZXJm
YWNlMTdtYXhSZXRyYW5zbWl0c09wdEV2CiBfX1pOSzZ3ZWJydGMyMFJ0cFJlY2VpdmVySW50ZXJm
YWNlMTRkdGxzX3RyYW5zcG9ydEV2CiBfX1pOSzZ3ZWJydGMyM1BlZXJDb25uZWN0aW9uSW50ZXJm
YWNlMTZHZXRTY3RwVHJhbnNwb3J0RXYKIF9fWk5LNndlYnJ0YzIzUnRwVHJhbnNjZWl2ZXJJbnRl
cmZhY2UxN2NvZGVjX3ByZWZlcmVuY2VzRXYKK19fWk42d2VicnRjMjRzZXRWaWRlb0RlY29kZXJD
YWxsYmFja3NFUEZ5UktOU18xNFNkcFZpZGVvRm9ybWF0RUVQRml5RVBGaXlqUEtobUVQRml5UHZF
CitfX1pONndlYnJ0YzE4Y3JlYXRlTG9jYWxEZWNvZGVyRVUxM2Jsb2NrX3BvaW50ZXJGdlAxMF9f
Q1ZCdWZmZXJqakUKK19fWk42d2VicnRjMTlyZWxlYXNlTG9jYWxEZWNvZGVyRVB2CitfX1pONndl
YnJ0YzExZGVjb2RlRnJhbWVFUHZqUEtobQorX19aTjZ3ZWJydGMxOFJlbW90ZVZpZGVvRGVjb2Rl
cjE0ZGVjb2RlQ29tcGxldGVFUHZqUDEwX19DVkJ1ZmZlcmoKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9T
c2ltLmV4cAppbmRleCBkYjA4M2M5MDgzN2RiYjRiNmM3MTA0MDYzZTQxYzNkNTg0ZGEwYTdkLi44
ZmQ1YzI3MmFkNmExYzM4YjIwODNiMTFlNjM1OGZkY2VkODc3ZWUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndl
YnJ0Yy5pT1NzaW0uZXhwCkBAIC0yNjIsMyArMjYyLDggQEAgX19aTks2d2VicnRjMjBEYXRhQ2hh
bm5lbEludGVyZmFjZTE3bWF4UmV0cmFuc21pdHNPcHRFdgogX19aTks2d2VicnRjMjBSdHBSZWNl
aXZlckludGVyZmFjZTE0ZHRsc190cmFuc3BvcnRFdgogX19aTks2d2VicnRjMjNQZWVyQ29ubmVj
dGlvbkludGVyZmFjZTE2R2V0U2N0cFRyYW5zcG9ydEV2CiBfX1pOSzZ3ZWJydGMyM1J0cFRyYW5z
Y2VpdmVySW50ZXJmYWNlMTdjb2RlY19wcmVmZXJlbmNlc0V2CitfX1pONndlYnJ0YzI0c2V0Vmlk
ZW9EZWNvZGVyQ2FsbGJhY2tzRVBGeVJLTlNfMTRTZHBWaWRlb0Zvcm1hdEVFUEZpeUVQRml5alBL
aG1FUEZpeVB2RQorX19aTjZ3ZWJydGMxOGNyZWF0ZUxvY2FsRGVjb2RlckVVMTNibG9ja19wb2lu
dGVyRnZQMTBfX0NWQnVmZmVyampFCitfX1pONndlYnJ0YzE5cmVsZWFzZUxvY2FsRGVjb2RlckVQ
dgorX19aTjZ3ZWJydGMxMWRlY29kZUZyYW1lRVB2alBLaG0KK19fWk42d2VicnRjMThSZW1vdGVW
aWRlb0RlY29kZXIxNGRlY29kZUNvbXBsZXRlRVB2alAxMF9fQ1ZCdWZmZXJqCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1h
Yy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2Vi
cnRjLm1hYy5leHAKaW5kZXggZGIwODNjOTA4MzdkYmI0YjZjNzEwNDA2M2U0MWMzZDU4NGRhMGE3
ZC4uOGZkNWMyNzJhZDZhMWMzOGIyMDgzYjExZTYzNThmZGNlZDg3N2VlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMu
ZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3
ZWJydGMubWFjLmV4cApAQCAtMjYyLDMgKzI2Miw4IEBAIF9fWk5LNndlYnJ0YzIwRGF0YUNoYW5u
ZWxJbnRlcmZhY2UxN21heFJldHJhbnNtaXRzT3B0RXYKIF9fWk5LNndlYnJ0YzIwUnRwUmVjZWl2
ZXJJbnRlcmZhY2UxNGR0bHNfdHJhbnNwb3J0RXYKIF9fWk5LNndlYnJ0YzIzUGVlckNvbm5lY3Rp
b25JbnRlcmZhY2UxNkdldFNjdHBUcmFuc3BvcnRFdgogX19aTks2d2VicnRjMjNSdHBUcmFuc2Nl
aXZlckludGVyZmFjZTE3Y29kZWNfcHJlZmVyZW5jZXNFdgorX19aTjZ3ZWJydGMyNHNldFZpZGVv
RGVjb2RlckNhbGxiYWNrc0VQRnlSS05TXzE0U2RwVmlkZW9Gb3JtYXRFRVBGaXlFUEZpeWpQS2ht
RVBGaXlQdkUKK19fWk42d2VicnRjMThjcmVhdGVMb2NhbERlY29kZXJFVTEzYmxvY2tfcG9pbnRl
ckZ2UDEwX19DVkJ1ZmZlcmpqRQorX19aTjZ3ZWJydGMxOXJlbGVhc2VMb2NhbERlY29kZXJFUHYK
K19fWk42d2VicnRjMTFkZWNvZGVGcmFtZUVQdmpQS2htCitfX1pONndlYnJ0YzE4UmVtb3RlVmlk
ZW9EZWNvZGVyMTRkZWNvZGVDb21wbGV0ZUVQdmpQMTBfX0NWQnVmZmVyagpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggNmVmZmM1YWFiNTkyZjhkYTYyNDY5
Y2RmODFmNDgzNDkyMmRmYzEzYS4uOTg4NzJkZDZkYmNlNTc5NmRlYjdjNDk3YjYxYjBmZjkyMjhl
NjgyMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCkBAIC02
OSw0ICs2OSw0NiBAQCBwcml2YXRlOgogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0Vu
Y29kZXJGYWN0b3J5PiBtX2ludGVybmFsRW5jb2RlckZhY3Rvcnk7CiB9OwogCit1c2luZyBWaWRl
b0RlY29kZXJDcmVhdGVDYWxsYmFjayA9IHVpbnQ2NF90KCopKGNvbnN0IFNkcFZpZGVvRm9ybWF0
JiBmb3JtYXQpOwordXNpbmcgVmlkZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrID0gaW50MzJfdCgq
KSh1aW50NjRfdCBkZWNvZGVySWRlbnRpZmllcik7Cit1c2luZyBWaWRlb0RlY29kZXJEZWNvZGVD
YWxsYmFjayA9IGludDMyX3QoKikodWludDY0X3QgZGVjb2RlcklkZW50aWZpZXIsIHVpbnQzMl90
IHRpbWVTdGFtcCwgY29uc3QgdWludDhfdCosIHNpemVfdCBsZW5ndGgpOwordXNpbmcgVmlkZW9E
ZWNvZGVyUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrID0gaW50MzJfdCgqKSh1aW50NjRf
dCBkZWNvZGVySWRlbnRpZmllciwgdm9pZCogZGVjb2RlZEltYWdlQ2FsbGJhY2spOworCit2b2lk
IHNldFZpZGVvRGVjb2RlckNhbGxiYWNrcyhWaWRlb0RlY29kZXJDcmVhdGVDYWxsYmFjaywgVmlk
ZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrLCBWaWRlb0RlY29kZXJEZWNvZGVDYWxsYmFjaywgVmlk
ZW9EZWNvZGVyUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKTsKKworY2xhc3MgUmVtb3Rl
VmlkZW9EZWNvZGVyRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBWaWRlb0RlY29kZXJGYWN0b3J5IHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5KHN0ZDo6dW5p
cXVlX3B0cjxWaWRlb0RlY29kZXJGYWN0b3J5PiYmKTsKKyAgICB+UmVtb3RlVmlkZW9EZWNvZGVy
RmFjdG9yeSgpID0gZGVmYXVsdDsKKworcHJpdmF0ZToKKyAgICBzdGQ6OnZlY3RvcjxTZHBWaWRl
b0Zvcm1hdD4gR2V0U3VwcG9ydGVkRm9ybWF0cygpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxWaWRlb0RlY29kZXI+IENyZWF0ZVZpZGVvRGVjb2Rlcihjb25zdCBTZHBWaWRlb0Zv
cm1hdCYgZm9ybWF0KSBmaW5hbDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXJG
YWN0b3J5PiBtX2ludGVybmFsRmFjdG9yeTsKK307CisKK2NsYXNzIFJlbW90ZVZpZGVvRGVjb2Rl
ciBmaW5hbCA6IHB1YmxpYyB3ZWJydGM6OlZpZGVvRGVjb2RlciB7CitwdWJsaWM6CisgICAgZXhw
bGljaXQgUmVtb3RlVmlkZW9EZWNvZGVyKHVpbnQ2NF90IGlkZW50aWZpZXIpOworICAgIH5SZW1v
dGVWaWRlb0RlY29kZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBzdGF0aWMgdm9pZCBkZWNvZGVDb21w
bGV0ZSh2b2lkKiBjYWxsYmFjaywgdWludDMyX3QgdGltZVN0YW1wLCBDVlBpeGVsQnVmZmVyUmVm
LCB1aW50MzJfdCB0aW1lU3RhbXBSVFApOworCitwcml2YXRlOgorICAgIGludDMyX3QgSW5pdERl
Y29kZShjb25zdCBWaWRlb0NvZGVjKiwgaW50MzJfdCBudW1iZXJfb2ZfY29yZXMpIGZpbmFsOwor
ICAgIGludDMyX3QgRGVjb2RlKGNvbnN0IEVuY29kZWRJbWFnZSYsIGJvb2wgbWlzc2luZ19mcmFt
ZXMsIGludDY0X3QgcmVuZGVyX3RpbWVfbXMpIGZpbmFsOworICAgIGludDMyX3QgUmVnaXN0ZXJE
ZWNvZGVDb21wbGV0ZUNhbGxiYWNrKERlY29kZWRJbWFnZUNhbGxiYWNrKikgZmluYWw7CisgICAg
aW50MzJfdCBSZWxlYXNlKCkgZmluYWw7CisgICAgY29uc3QgY2hhciogSW1wbGVtZW50YXRpb25O
YW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlJlbW90ZVZpZGVvVG9vbEJveCI7IH0KKworICAg
IHVpbnQ2NF90IG1faWRlbnRpZmllcjsKK307CisKK3VzaW5nIExvY2FsRGVjb2RlciA9IHZvaWQq
OwordXNpbmcgTG9jYWxEZWNvZGVyQ2FsbGJhY2sgPSB2b2lkICheKShDVlBpeGVsQnVmZmVyUmVm
LCB1aW50MzJfdCB0aW1lU3RhbXAsIHVpbnQzMl90IHRpbWVTdGFtcE5zKTsKK3ZvaWQqIGNyZWF0
ZUxvY2FsRGVjb2RlcihMb2NhbERlY29kZXJDYWxsYmFjayk7Cit2b2lkIHJlbGVhc2VMb2NhbERl
Y29kZXIoTG9jYWxEZWNvZGVyKTsKK2ludDMyX3QgZGVjb2RlRnJhbWUoTG9jYWxEZWNvZGVyLCB1
aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOworCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0
L1dlYktpdFV0aWxpdGllcy5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLm1tCmluZGV4IDJmZTU3YjIwMTEwYjNl
NDU1Nzg3ZjNlNzI4YzkwMmNlNWQ2ZDQ0YzEuLmE0MmQwMjljMmE1MzkwMDVjZjk4YjE0OTllYWE5
N2M5MWY2NzdhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLm1tCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVz
Lm1tCkBAIC0yOSw3ICsyOSwxMCBAQAogI2ltcG9ydCAiV2ViUlRDL1JUQ1ZpZGVvQ29kZWNIMjY0
LmgiCiAKICNpbmNsdWRlICJhcGkvdmlkZW8vdmlkZW9fZnJhbWUuaCIKKyNpbmNsdWRlICJoZWxw
ZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIKICNpbmNsdWRlICJuYXRpdmUvc3JjL29iamNfZnJhbWVf
YnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorI2luY2x1ZGUgInNk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oIgogI2luY2x1ZGUg
InRoaXJkX3BhcnR5L2xpYnl1di9pbmNsdWRlL2xpYnl1di9jb252ZXJ0X2Zyb20uaCIKICNpbmNs
dWRlICJ3ZWJydGMvcnRjX2Jhc2UvY2hlY2tzLmgiCiAjaW5jbHVkZSAiRnJhbWV3b3JrL0hlYWRl
cnMvV2ViUlRDL1JUQ1ZpZGVvQ29kZWNGYWN0b3J5LmgiCkBAIC0xMTYsMTEgKzExOSw2IEBAIHN0
ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVu
Y29kZXJGYWN0b3J5KFdlYktpdENvCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VmlkZW9F
bmNvZGVyRmFjdG9yeVdpdGhTaW11bGNhc3Q+KHN0ZDo6bW92ZShpbnRlcm5hbEZhY3RvcnkpKTsK
IH0KIAotc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRl
V2ViS2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0IGNvZGVjU3VwcG9ydCkKLXsK
LSAgICByZXR1cm4gT2JqQ1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShjb2RlY1N1cHBvcnQg
PT0gV2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4ID8gW1tSVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeSBhbGxvY10gaW5pdF0gOiBbW1JUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0IGFs
bG9jXSBpbml0XSk7Ci19Ci0KIHN0YXRpYyBib29sIGgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2Vk
ID0gdHJ1ZTsKIHZvaWQgc2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWQoYm9vbCBhbGxvd2Vk
KQogewpAQCAtMTY4LDcgKzE2Niw2IEBAIHN0YXRpYyBib29sIENvcHlWaWRlb0ZyYW1lVG9QaXhl
bEJ1ZmZlcihjb25zdCB3ZWJydGM6Okk0MjBCdWZmZXJJbnRlcmZhY2UqIGZyYW1lCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLQogQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlckZyb21GcmFtZShj
b25zdCBWaWRlb0ZyYW1lJiBmcmFtZSwgY29uc3Qgc3RkOjpmdW5jdGlvbjxDVlBpeGVsQnVmZmVy
UmVmKHNpemVfdCwgc2l6ZV90KT4mIG1ha2VQaXhlbEJ1ZmZlcikKIHsKICAgICBpZiAoZnJhbWUu
dmlkZW9fZnJhbWVfYnVmZmVyKCktPnR5cGUoKSAhPSBWaWRlb0ZyYW1lQnVmZmVyOjpUeXBlOjpr
TmF0aXZlKSB7CkBAIC0xODgsNCArMTg1LDExNyBAQCBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyRnJvbUZyYW1lKGNvbnN0IFZpZGVvRnJhbWUmIGZyYW1lLCBjb25zdCBzdGQ6OmZ1bmN0aQog
ICAgIHJldHVybiBydGNQaXhlbEJ1ZmZlci5waXhlbEJ1ZmZlcjsKIH0KIAorc3RydWN0IFZpZGVv
RGVjb2RlckNhbGxiYWNrcyB7CisgICAgVmlkZW9EZWNvZGVyQ3JlYXRlQ2FsbGJhY2sgY3JlYXRl
Q2FsbGJhY2s7CisgICAgVmlkZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrIHJlbGVhc2VDYWxsYmFj
azsKKyAgICBWaWRlb0RlY29kZXJEZWNvZGVDYWxsYmFjayBkZWNvZGVDYWxsYmFjazsKKyAgICBW
aWRlb0RlY29kZXJSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2sgcmVnaXN0ZXJEZWNvZGVD
b21wbGV0ZUNhbGxiYWNrOworfTsKKworc3RhdGljIFZpZGVvRGVjb2RlckNhbGxiYWNrcyYgdmlk
ZW9EZWNvZGVyQ2FsbGJhY2tzKCkgeworICAgIHN0YXRpYyBWaWRlb0RlY29kZXJDYWxsYmFja3Mg
Y2FsbGJhY2tzOworICAgIHJldHVybiBjYWxsYmFja3M7Cit9CisKK3ZvaWQgc2V0VmlkZW9EZWNv
ZGVyQ2FsbGJhY2tzKFZpZGVvRGVjb2RlckNyZWF0ZUNhbGxiYWNrIGNyZWF0ZUNhbGxiYWNrLCBW
aWRlb0RlY29kZXJSZWxlYXNlQ2FsbGJhY2sgcmVsZWFzZUNhbGxiYWNrLCBWaWRlb0RlY29kZXJE
ZWNvZGVDYWxsYmFjayBkZWNvZGVDYWxsYmFjaywgVmlkZW9EZWNvZGVyUmVnaXN0ZXJEZWNvZGVD
b21wbGV0ZUNhbGxiYWNrIHJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjaykKK3sKKyAgICBh
dXRvJiBjYWxsYmFja3MgPSB2aWRlb0RlY29kZXJDYWxsYmFja3MoKTsKKyAgICBjYWxsYmFja3Mu
Y3JlYXRlQ2FsbGJhY2sgPSBjcmVhdGVDYWxsYmFjazsKKyAgICBjYWxsYmFja3MucmVsZWFzZUNh
bGxiYWNrID0gcmVsZWFzZUNhbGxiYWNrOworICAgIGNhbGxiYWNrcy5kZWNvZGVDYWxsYmFjayA9
IGRlY29kZUNhbGxiYWNrOworICAgIGNhbGxiYWNrcy5yZWdpc3RlckRlY29kZUNvbXBsZXRlQ2Fs
bGJhY2sgPSByZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2s7Cit9CisKK1JlbW90ZVZpZGVv
RGVjb2Rlcjo6UmVtb3RlVmlkZW9EZWNvZGVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCisgICAgOiBt
X2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKK30KKwordm9pZCBSZW1vdGVWaWRlb0RlY29kZXI6
OmRlY29kZUNvbXBsZXRlKHZvaWQqIGNhbGxiYWNrLCB1aW50MzJfdCB0aW1lU3RhbXAsIENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcFJUUCkKK3sKKyAgICBh
dXRvIHZpZGVvRnJhbWUgPSBWaWRlb0ZyYW1lOjpCdWlsZGVyKCkuc2V0X3ZpZGVvX2ZyYW1lX2J1
ZmZlcihwaXhlbEJ1ZmZlclRvRnJhbWUocGl4ZWxCdWZmZXIpKQorICAgICAgICAuc2V0X3RpbWVz
dGFtcF9ydHAodGltZVN0YW1wUlRQKQorICAgICAgICAuc2V0X3RpbWVzdGFtcF9tcygwKQorLy8g
ICAgICAgIC5zZXRfcm90YXRpb24oKFZpZGVvUm90YXRpb24pUlRDVmlkZW9Sb3RhdGlvbl8wKQor
ICAgICAgICAuYnVpbGQoKTsKKyAgICB2aWRlb0ZyYW1lLnNldF90aW1lc3RhbXAodGltZVN0YW1w
KTsKKworICAgIHN0YXRpY19jYXN0PERlY29kZWRJbWFnZUNhbGxiYWNrKj4oY2FsbGJhY2spLT5E
ZWNvZGVkKHZpZGVvRnJhbWUpOworfQorCitpbnQzMl90IFJlbW90ZVZpZGVvRGVjb2Rlcjo6SW5p
dERlY29kZShjb25zdCBWaWRlb0NvZGVjKiBjb2RlY19zZXR0aW5ncywgaW50MzJfdCBudW1iZXJf
b2ZfY29yZXMpCit7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworaW50
MzJfdCBSZW1vdGVWaWRlb0RlY29kZXI6OkRlY29kZShjb25zdCBFbmNvZGVkSW1hZ2UmIGlucHV0
X2ltYWdlLCBib29sIG1pc3NpbmdfZnJhbWVzLCBpbnQ2NF90IHJlbmRlcl90aW1lX21zKQorewor
ICAgIHJldHVybiB2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5kZWNvZGVDYWxsYmFjayhtX2lkZW50
aWZpZXIsIGlucHV0X2ltYWdlLlRpbWVzdGFtcCgpLCBpbnB1dF9pbWFnZS5kYXRhKCksIGlucHV0
X2ltYWdlLnNpemUoKSk7Cit9CisKK2ludDMyX3QgUmVtb3RlVmlkZW9EZWNvZGVyOjpSZWdpc3Rl
ckRlY29kZUNvbXBsZXRlQ2FsbGJhY2soRGVjb2RlZEltYWdlQ2FsbGJhY2sqIGNhbGxiYWNrKQor
eworICAgIHJldHVybiB2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5yZWdpc3RlckRlY29kZUNvbXBs
ZXRlQ2FsbGJhY2sobV9pZGVudGlmaWVyLCBjYWxsYmFjayk7Cit9CisKK2ludDMyX3QgUmVtb3Rl
VmlkZW9EZWNvZGVyOjpSZWxlYXNlKCkKK3sKKyAgICByZXR1cm4gdmlkZW9EZWNvZGVyQ2FsbGJh
Y2tzKCkucmVsZWFzZUNhbGxiYWNrKG1faWRlbnRpZmllcik7Cit9CisKK1JlbW90ZVZpZGVvRGVj
b2RlckZhY3Rvcnk6OlJlbW90ZVZpZGVvRGVjb2RlckZhY3Rvcnkoc3RkOjp1bmlxdWVfcHRyPFZp
ZGVvRGVjb2RlckZhY3Rvcnk+JiYgaW50ZXJuYWxGYWN0b3J5KQorICAgIDogbV9pbnRlcm5hbEZh
Y3Rvcnkoc3RkOjptb3ZlKGludGVybmFsRmFjdG9yeSkpCit7Cit9CisKK3N0ZDo6dmVjdG9yPFNk
cFZpZGVvRm9ybWF0PiBSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5OjpHZXRTdXBwb3J0ZWRGb3Jt
YXRzKCkgY29uc3QKK3sKKyAgICBzdGQ6OnZlY3RvcjxTZHBWaWRlb0Zvcm1hdD4gc3VwcG9ydGVk
X2Zvcm1hdHM7CisgICAgc3VwcG9ydGVkX2Zvcm1hdHMucHVzaF9iYWNrKFNkcFZpZGVvRm9ybWF0
IHsgIkgyNjQiIH0pOworICAgIHN1cHBvcnRlZF9mb3JtYXRzLnB1c2hfYmFjayhTZHBWaWRlb0Zv
cm1hdCB7ICJWUDgiIH0pOworICAgIHJldHVybiBzdXBwb3J0ZWRfZm9ybWF0czsKK30KKworc3Rk
Ojp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4gUmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3Jl
YXRlVmlkZW9EZWNvZGVyKGNvbnN0IFNkcFZpZGVvRm9ybWF0JiBmb3JtYXQpCit7CisgICAgaWYg
KCF2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5jcmVhdGVDYWxsYmFjaykKKyAgICAgICAgcmV0dXJu
IG1faW50ZXJuYWxGYWN0b3J5LT5DcmVhdGVWaWRlb0RlY29kZXIoZm9ybWF0KTsKKworICAgIGF1
dG8gaWRlbnRpZmllciA9IHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLmNyZWF0ZUNhbGxiYWNrKGZv
cm1hdCk7CisgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbV9pbnRlcm5hbEZh
Y3RvcnktPkNyZWF0ZVZpZGVvRGVjb2Rlcihmb3JtYXQpOworCisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVyPihpZGVudGlmaWVyKTsKK30KKworc3RkOjp1bmlx
dWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RGVjb2RlckZh
Y3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0IGNvZGVjU3VwcG9ydCkKK3sKKyAgICBhdXRvIGludGVy
bmFsRmFjdG9yeSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3RvcnkoY29kZWNTdXBwb3J0
ID09IFdlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQOCA/IFtbUlRDRGVmYXVsdFZpZGVvRGVj
b2RlckZhY3RvcnkgYWxsb2NdIGluaXRdIDogW1tSVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NCBh
bGxvY10gaW5pdF0pOworICAgIGlmICh2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5jcmVhdGVDYWxs
YmFjaykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVy
RmFjdG9yeT4oc3RkOjptb3ZlKGludGVybmFsRmFjdG9yeSkpOworICAgIHJldHVybiBpbnRlcm5h
bEZhY3Rvcnk7Cit9CisKK3ZvaWQqIGNyZWF0ZUxvY2FsRGVjb2RlcihMb2NhbERlY29kZXJDYWxs
YmFjayBjYWxsYmFjaykKK3sKKyAgICBhdXRvIGRlY29kZXIgPSBbW1JUQ1ZpZGVvRGVjb2Rlckgy
NjQgYWxsb2NdIGluaXRdOworICAgIFtkZWNvZGVyIHNldENhbGxiYWNrOl4oUlRDVmlkZW9GcmFt
ZSAqZnJhbWUpIHsKKyAgICAgICAgYXV0byAqYnVmZmVyID0gKFJUQ0NWUGl4ZWxCdWZmZXIgKilm
cmFtZS5idWZmZXI7CisgICAgICAgIGNhbGxiYWNrKGJ1ZmZlci5waXhlbEJ1ZmZlciwgZnJhbWUu
dGltZVN0YW1wTnMsIGZyYW1lLnRpbWVTdGFtcCk7CisgICAgfV07CisgICAgcmV0dXJuIChfX2Jy
aWRnZV9yZXRhaW5lZCB2b2lkKilkZWNvZGVyOworfQorCit2b2lkIHJlbGVhc2VMb2NhbERlY29k
ZXIoTG9jYWxEZWNvZGVyIGxvY2FsRGVjb2RlcikKK3sKKyAgICBSVENWaWRlb0RlY29kZXJIMjY0
KiBkZWNvZGVyID0gKF9fYnJpZGdlX3RyYW5zZmVyIFJUQ1ZpZGVvRGVjb2RlckgyNjQgKikobG9j
YWxEZWNvZGVyKTsKKyAgICBbZGVjb2RlciByZWxlYXNlRGVjb2Rlcl07Cit9CisKK2ludDMyX3Qg
ZGVjb2RlRnJhbWUoTG9jYWxEZWNvZGVyIGxvY2FsRGVjb2RlciwgdWludDMyX3QgdGltZVN0YW1w
LCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBSVENWaWRlb0RlY29k
ZXJIMjY0KiBkZWNvZGVyID0gKF9fYnJpZGdlIFJUQ1ZpZGVvRGVjb2RlckgyNjQgKikobG9jYWxE
ZWNvZGVyKTsKKyAgICByZXR1cm4gW2RlY29kZXIgZGVjb2RlRGF0YTogZGF0YSBzaXplOiBzaXpl
IHRpbWVTdGFtcDogdGltZVN0YW1wXTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9SVENWaWRlb0RlY29kZXJIMjY0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVj
b2RlckgyNjQuaAppbmRleCBiMTBkMWU2YTA5OTIwZTUxZjVmNGY1NjNiNjZlZWI5ZTljZDEyMTcz
Li4yMmRjYzgwZDhjMGQ2ODJhZTgwMDEyZGVjMDVhMGYzZWVjMTZlMjVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjQuaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjQuaApAQCAtMTYsNCArMTYsNyBAQAogUlRDX09CSkNfRVhQ
T1JUCiBfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDVmlkZW9EZWNvZGVy
SDI2NCIpKSkKIEBpbnRlcmZhY2UgUlRDVmlkZW9EZWNvZGVySDI2NCA6IE5TT2JqZWN0IDxSVENW
aWRlb0RlY29kZXI+CistIChOU0ludGVnZXIpZGVjb2RlRGF0YTooY29uc3QgdWludDhfdCAqKWRh
dGEKKyAgICBzaXplOihzaXplX3Qpc2l6ZQorICAgIHRpbWVTdGFtcDoodWludDMyX3QpdGltZVN0
YW1wOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJI
MjY0Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY0Lm1tCmluZGV4IDhl
MmE3ZDljOTBmNzY2ZjlhN2Q3ZTI1OTAxNTFmNTYzNzhjMWNmZTIuLjRjZTBiYzQ1ZjFlZDc2YjI1
NWI2NzI3ZjUyYzI4M2I4ZjBiZGE5OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
VmlkZW9EZWNvZGVySDI2NC5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2Rl
ckgyNjQubW0KQEAgLTEwMiw2ICsxMDIsMTMgQEAgdm9pZCBkZWNvbXByZXNzaW9uT3V0cHV0Q2Fs
bGJhY2sodm9pZCAqZGVjb2RlclJlZiwKICAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdCly
ZW5kZXJUaW1lTXMgewogICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKIAorICByZXR1
cm4gW3NlbGYgZGVjb2RlRGF0YTogKHVpbnQ4X3QgKilpbnB1dEltYWdlLmJ1ZmZlci5ieXRlcyBz
aXplOiBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGggdGltZVN0YW1wOiBpbnB1dEltYWdlLnRpbWVT
dGFtcF07Cit9CisKKy0gKE5TSW50ZWdlcilkZWNvZGVEYXRhOihjb25zdCB1aW50OF90ICopZGF0
YQorICAgICAgICBzaXplOihzaXplX3Qpc2l6ZQorICAgICAgICB0aW1lU3RhbXA6KHVpbnQzMl90
KXRpbWVTdGFtcCB7CisKICAgaWYgKF9lcnJvciAhPSBub0VycikgewogICAgIFJUQ19MT0coTFNf
V0FSTklORykgPDwgIkxhc3QgZnJhbWUgZGVjb2RlIGZhaWxlZC4iOwogICAgIF9lcnJvciA9IG5v
RXJyOwpAQCAtMTA5LDggKzExNiw3IEBAIHZvaWQgZGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNr
KHZvaWQgKmRlY29kZXJSZWYsCiAgIH0KIAogICBydGM6OlNjb3BlZENGVHlwZVJlZjxDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25SZWY+IGlucHV0Rm9ybWF0ID0KLSAgICAgIHJ0Yzo6U2NvcGVkQ0Yo
d2VicnRjOjpDcmVhdGVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKCh1aW50OF90ICopaW5wdXRJbWFn
ZS5idWZmZXIuYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGgpKTsKKyAgICAgIHJ0Yzo6
U2NvcGVkQ0Yod2VicnRjOjpDcmVhdGVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKGRhdGEsIHNpemUp
KTsKICAgaWYgKGlucHV0Rm9ybWF0KSB7CiAgICAgLy8gQ2hlY2sgaWYgdGhlIHZpZGVvIGZvcm1h
dCBoYXMgY2hhbmdlZCwgYW5kIHJlaW5pdGlhbGl6ZSBkZWNvZGVyIGlmCiAgICAgLy8gbmVlZGVk
LgpAQCAtMTMyLDggKzEzOCw3IEBAIHZvaWQgZGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZv
aWQgKmRlY29kZXJSZWYsCiAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKICAg
fQogICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICBpZiAoIXdl
YnJ0Yzo6SDI2NEFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoKHVpbnQ4X3QgKilpbnB1dElt
YWdlLmJ1ZmZlci5ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlucHV0SW1hZ2UuYnVmZmVyLmxlbmd0aCwKKyAgaWYgKCF3ZWJydGM6OkgyNjRB
bm5leEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVyKGRhdGEsIHNpemUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdmlkZW9Gb3JtYXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2FtcGxlQnVmZmVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21lbW9yeVBvb2wp
KSB7CkBAIC0xNDIsMTQgKzE0NywxNCBAQCB2b2lkIGRlY29tcHJlc3Npb25PdXRwdXRDYWxsYmFj
ayh2b2lkICpkZWNvZGVyUmVmLAogICBSVENfRENIRUNLKHNhbXBsZUJ1ZmZlcik7CiAgIFZURGVj
b2RlRnJhbWVGbGFncyBkZWNvZGVGbGFncyA9IGtWVERlY29kZUZyYW1lX0VuYWJsZUFzeW5jaHJv
bm91c0RlY29tcHJlc3Npb247CiAgIHN0ZDo6dW5pcXVlX3B0cjxSVENGcmFtZURlY29kZVBhcmFt
cz4gZnJhbWVEZWNvZGVQYXJhbXM7Ci0gIGZyYW1lRGVjb2RlUGFyYW1zLnJlc2V0KG5ldyBSVENG
cmFtZURlY29kZVBhcmFtcyhfY2FsbGJhY2ssIGlucHV0SW1hZ2UudGltZVN0YW1wKSk7CisgIGZy
YW1lRGVjb2RlUGFyYW1zLnJlc2V0KG5ldyBSVENGcmFtZURlY29kZVBhcmFtcyhfY2FsbGJhY2ss
IHRpbWVTdGFtcCkpOwogICBPU1N0YXR1cyBzdGF0dXMgPSBWVERlY29tcHJlc3Npb25TZXNzaW9u
RGVjb2RlRnJhbWUoCiAgICAgICBfZGVjb21wcmVzc2lvblNlc3Npb24sIHNhbXBsZUJ1ZmZlciwg
ZGVjb2RlRmxhZ3MsIGZyYW1lRGVjb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVsbHB0cik7CiAjaWYg
ZGVmaW5lZChXRUJSVENfSU9TKQogICAvLyBSZS1pbml0aWFsaXplIHRoZSBkZWNvZGVyIGlmIHdl
IGhhdmUgYW4gaW52YWxpZCBzZXNzaW9uIHdoaWxlIHRoZSBhcHAgaXMKICAgLy8gYWN0aXZlIGFu
ZCByZXRyeSB0aGUgZGVjb2RlIHJlcXVlc3QuCiAgIGlmIChzdGF0dXMgPT0ga1ZUSW52YWxpZFNl
c3Npb25FcnIgJiYgW3NlbGYgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0gPT0gV0VCUlRDX1ZJ
REVPX0NPREVDX09LKSB7Ci0gICAgZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1l
RGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgaW5wdXRJbWFnZS50aW1lU3RhbXApKTsKKyAgICBmcmFt
ZURlY29kZVBhcmFtcy5yZXNldChuZXcgUlRDRnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCB0
aW1lU3RhbXApKTsKICAgICBzdGF0dXMgPSBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJh
bWUoCiAgICAgICAgIF9kZWNvbXByZXNzaW9uU2Vzc2lvbiwgc2FtcGxlQnVmZmVyLCBkZWNvZGVG
bGFncywgZnJhbWVEZWNvZGVQYXJhbXMucmVsZWFzZSgpLCBudWxscHRyKTsKICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUu
Y3BwCmluZGV4IDkzYzkzMDVmNDIxMDJkNzI2ZTc0MWU1OWYyMjZiNWVlNDY4OWMxMmEuLjlmZTgy
NGIxODczOGVhMDA3ODg0ZjQyNjVhMWQ1OWE1ZTRhNTIxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKQEAgLTYx
LDYgKzYxLDE3IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlk
ZW9TYW1wbGU6OmNyZWF0ZShNZWRpYVNhbXBsZSYmIHNhbXBsCiAgICAgcmV0dXJuIHN0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4obmV3IFJlbW90ZVZpZGVvU2FtcGxlKHN1cmZhY2Us
IHNSR0JDb2xvclNwYWNlUmVmKCksIHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCksIHNhbXBsZS52
aWRlb1JvdGF0aW9uKCksIHNhbXBsZS52aWRlb01pcnJvcmVkKCkpKTsKIH0KIAorc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKENWUGl4
ZWxCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIE1lZGlhVGltZSYmIHByZXNlbnRhdGlvblRpbWUpCit7
CisgICAgYXV0byBzdXJmYWNlID0gQ1ZQaXhlbEJ1ZmZlckdldElPU3VyZmFjZShpbWFnZUJ1ZmZl
cik7CisgICAgaWYgKCFzdXJmYWNlKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlh
LCAiUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZTogQ1ZQaXhlbEJ1ZmZlckdldElPU3VyZmFjZSBy
ZXR1cm5lZCBudWxscHRyIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+KG5ldyBSZW1vdGVWaWRl
b1NhbXBsZShzdXJmYWNlLCBzUkdCQ29sb3JTcGFjZVJlZigpLCBXVEZNb3ZlKHByZXNlbnRhdGlv
blRpbWUpLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSwgZmFsc2UpKTsKK30KKwog
UmVtb3RlVmlkZW9TYW1wbGU6OlJlbW90ZVZpZGVvU2FtcGxlKElPU3VyZmFjZVJlZiBzdXJmYWNl
LCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwgTWVkaWFUaW1lJiYgdGltZSwgTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb24gcm90YXRpb24sIGJvb2wgbWlycm9yZWQpCiAgICAgOiBtX2lvU3Vy
ZmFjZShXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21TdXJmYWNlKHN1cmZhY2UsIGNvbG9y
U3BhY2UpKQogICAgICwgbV9yb3RhdGlvbihyb3RhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCmluZGV4IGYwMmQ0ZmNi
NGFiOTNkNjZjMTNkYTA0OGIyNGEyODBkMTczZjZlOGUuLmJkMjU1Zjc5NDAwNDI3MWUzYWI0ZWIy
NjAyN2U2NGE3NGE5Mjg0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUg
IklPU3VyZmFjZS5oIgogI2VuZGlmCiAKK3R5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4
ZWxCdWZmZXJSZWY7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVtb3RlVmlkZW9T
YW1wbGUgewpAQCAtNDcsNiArNDksNyBAQCBwdWJsaWM6CiAKICNpZiBIQVZFKElPU1VSRkFDRSkK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2Ft
cGxlPiBjcmVhdGUoTWVkaWFTYW1wbGUmJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKENWUGl4ZWxCdWZmZXJSZWYs
IE1lZGlhVGltZSYmIHByZXNlbnRhdGlvblRpbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIElPU3Vy
ZmFjZVJlZiBzdXJmYWNlKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCmluZGV4
IDE2ZTU1NzZkZGExY2RlNjNmMGQ3YTUzZDlhOTU3NTc5OTUyODFmMDEuLjNiNzQzMGZmNGM4ZmY4
YmQyNzRmYzZiMmVhZDdjZTViYzViMGU1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKQEAg
LTU1LDYgKzU1LDEwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8TWVkaWFT
YW1wbGU+IGNyZWF0ZU1lZGlhU2FtcGxlKElPU3VyZmFjZVJlZiwgY29uc3QgTWVkaWFUaW1lJiwg
Y29uc3QgSW50U2l6ZSYsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uID0gTWVkaWFTYW1wbGU6
OlZpZGVvUm90YXRpb246Ok5vbmUsIGJvb2wgbWlycm9yZWQgPSBmYWxzZSk7CiAjZW5kaWYKIAor
I2lmIEhBVkUoSU9TVVJGQUNFKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisgICAgV0VCQ09S
RV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyKElP
U3VyZmFjZVJlZiwgY29uc3QgSW50U2l6ZSYpOworI2VuZGlmCisKICAgICB1aW50MzJfdCBwaXhl
bEZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxGb3JtYXQ7IH0KIAogcHJpdmF0ZToKQEAg
LTYzLDcgKzY3LDYgQEAgcHJpdmF0ZToKICNpZiBIQVZFKElPU1VSRkFDRSkgJiYgIVBMQVRGT1JN
KE1BQ0NBVEFMWVNUKQogICAgIENGRGljdGlvbmFyeVJlZiBpb1N1cmZhY2VQaXhlbEJ1ZmZlckNy
ZWF0aW9uT3B0aW9ucyhJT1N1cmZhY2VSZWYpOwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gY3JlYXRlQ01TYW1wbGVCdWZmZXIoSU9TdXJmYWNlUmVmLCBjb25zdCBNZWRpYVRpbWUm
LCBjb25zdCBJbnRTaXplJik7Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0
ZVBpeGVsQnVmZmVyKElPU3VyZmFjZVJlZiwgY29uc3QgSW50U2l6ZSYpOwogI2VuZGlmCiAKICAg
ICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNh
bXBsZUJ1ZmZlclJlZiwgY29uc3QgSW50U2l6ZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2Eu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlckNvY29hLmgKaW5kZXggZDNjMzgzOTVjMDc3ZjM0NjA0YjViYjBmNGI0M2FlMTEw
MGNkZjIzMy4uMjM5ZTM0YTY4NWI0MTBiYzkzOGMxNDkxNWU5N2NmMTgyZTA3ZWUyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oCkBAIC00MSw5ICs0MSwxMCBA
QCBwdWJsaWM6CiAgICAgTGliV2ViUlRDUHJvdmlkZXJDb2NvYSgpID0gZGVmYXVsdDsKICAgICB+
TGliV2ViUlRDUHJvdmlkZXJDb2NvYSgpOwogCisgICAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6
VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlRGVjb2RlckZhY3RvcnkoKSBvdmVycmlkZTsKKwog
cHJpdmF0ZToKICAgICB2b2lkIHNldEFjdGl2ZShib29sKSBmaW5hbDsKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVEZWNvZGVyRmFjdG9yeSgp
IGZpbmFsOwogICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+
IGNyZWF0ZUVuY29kZXJGYWN0b3J5KCkgZmluYWw7CiAKICAgICB2b2lkIHNldEgyNjRIYXJkd2Fy
ZUVuY29kZXJBbGxvd2VkKGJvb2wgYWxsb3dlZCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29u
ZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmluZGV4IDc0ODk2N2UyNTFlYTllYjNhZDRiOWM4
NmNjMzhjYTkwODBmZTlkYTkuLjZiOGViNTU5N2UzMWJiOTQ0YjFiNmZmMWQ0MjY2ODc4ZmRmZTQz
MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29u
ZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBA
IC0xMzgsNyArMTM4LDcgQEAgTElCV0VCUlRDX0xJQlJBUllfRElSX0NPQ09BX1RPVUNIX05PID0g
JChMSUJXRUJSVENfTElCUkFSWV9ESVJfVVNFX09WRVJSSURFX0ZSQU0KIExJQldFQlJUQ19MSUJS
QVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfTk8gPSAkKFdFQkNPUkVfRlJBTUVX
T1JLU19ESVIpL1dlYkNvcmUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3JrczsKIExJQldF
QlJUQ19MSUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19P
VkVSUklERV9GUkFNRVdPUktTX0RJUik7CiAKLU9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkg
LWlmcmFtZXdvcmsiJChTREtfRElSKSQoU1lTVEVNX0xJQlJBUllfRElSKS9Qcml2YXRlRnJhbWV3
b3JrcyIgJChVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTKSAkKEFTQU5fT1RIRVJfTERGTEFHUykg
JChGUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHUykgJChXS19SRUxPQ0FUQUJMRV9GUkFNRVdP
UktfTERGTEFHUyk7CitPVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpIC1pZnJhbWV3b3JrIiQo
U0RLX0RJUikkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJpdmF0ZUZyYW1ld29ya3MiICQoVU5FWFBP
UlRFRF9TWU1CT0xfTERGTEFHUykgJChBU0FOX09USEVSX0xERkxBR1MpICQoRlJBTUVXT1JLX0FO
RF9MSUJSQVJZX0xERkxBR1MpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1MpICAg
LVhsaW5rZXIgLS1uby1kZW1hbmdsZTsKIAogUkVFWFBPUlRFRF9GUkFNRVdPUktfTkFNRVMgPSBX
ZWJLaXRMZWdhY3k7CiBSRUVYUE9SVEVEX0ZSQU1FV09SS19OQU1FU1tzZGs9bWFjb3N4Kl0gPSAk
KGluaGVyaXRlZCkgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCAwN2QzMzA1YjgyMzk3MmU3ODdmZmVlN2RiODBlMTE0ZDIyNTEx
MjY2Li5mMzdmM2JkMWYxZmQ0YjgyN2FhODlhMzMxNDE0OTIwZDdhMTEzYWMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xNyw2ICsxNyw3
IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVBy
b2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mv
d2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9O
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0lu
ZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4KQEAgLTk5LDYgKzEwMCw4IEBAICQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIubWVzc2FnZXMuCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4v
V2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MubWVz
c2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENS
ZW1vdGVDb2RlY3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR2VvbG9j
YXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2Fn
ZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CmluZGV4IDk4NjljZjE3MTYxZmVkOTQ0OTJiMmViNjc2YTMwOTYxMTdjZTY1MmYuLjcwYWViN2Iz
ZWY2ZTBlMWM1MzUwMzUzM2FiMjkwODBiYjhhYzc3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNDgsNiArNDgsMTUgQEAgJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGVnYWN5Q3VzdG9tUHJvdG9j
b2xNYW5hZ2VyTWVzc2FnZXMKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGVnYWN5Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1l
c3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9MaWJXZWJSVENDb2RlY3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MaWJXZWJSVENDb2RlY3NNZXNzYWdlcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MaWJXZWJSVENDb2Rl
Y3NNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MaWJXZWJSVENDb2RlY3NQcm94
eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L0xpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL0xpYldlYlJUQ1JlbW90ZUNvZGVjc01lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L0xpYldlYlJUQ1JlbW90ZUNvZGVjc01lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL0xpYldlYlJUQ1JlbW90ZUNvZGVjc01lc3NhZ2VzUmVwbGll
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OUE9iamVj
dE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDE3YmRjYjVmMmRhYWE5YmIxYjZhZjRkNzRhYjU4ZTUwNGE4MTIxODMuLjM4NTAyNzc0
MzJlMTg5M2U2NGNkMjMxOTQwMjRmN2NiZGQ3NzBlYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTI1LDYgKzI1LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9HUFVQcm9j
ZXNzIFwKICAgICAkKFdlYktpdDIpL0dQVVByb2Nlc3MvbWFjIFwKICAgICAkKFdlYktpdDIpL0dQ
VVByb2Nlc3MvbWVkaWEgXAorICAgICQoV2ViS2l0MikvR1BVUHJvY2Vzcy93ZWJydGMgXAogICAg
ICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3MgXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nl
c3MvQ29va2llcyBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy9jYWNoZSBcCkBAIC01
MSw2ICs1Miw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2Nh
dGlvbiBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dQVSBcCiAgICAgJChXZWJLaXQyKS9X
ZWJQcm9jZXNzL0dQVS9tZWRpYSBcCisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UgXAogICAgICQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0gXApAQCAtMTA5LDEyICsxMTEsMTQgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAgICAgRHJhd2luZ0FyZWFQcm94eSBcCiAgICAgRWRpdGFibGVJbWFnZUNvbnRyb2xsZXIgXAog
ICAgIEV2ZW50RGlzcGF0Y2hlciBcCi0gICAgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyIFwK
LSAgICBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSBcCiAgICAgR1BVUHJvY2VzcyBc
CiAgICAgR1BVUHJvY2Vzc1Byb3h5IFwKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbiBcCiAgICAg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBcCisgICAgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyIFwKKyAgICBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSBcCisgICAgTGliV2Vi
UlRDQ29kZWNzIFwKKyAgICBMaWJXZWJSVENDb2RlY3NQcm94eSBcCiAgICAgTlBPYmplY3RNZXNz
YWdlUmVjZWl2ZXIgXAogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFwKICAgICBO
ZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZDAxOWU3MTVh
NmM2ODJlYzZhNDI1YjVlMzkzOTcwZWEyYzc4ZDY1ZC4uZTk2ODAyNjA2YTRkZDEzMjRiYTI5ZTBl
MGU3NjYzNzlhMzYxODNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1
ZGUgIkdQVVByb2Nlc3MuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJHUFVQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVj
c1Byb3h5LmgiCisjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5o
IgpAQCAtMTE2LDYgKzExOCwxNiBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5JiBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1c2VyTWVkaWFDYXB0dXJlTWFuYWdlcgogfQogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKK0xpYldlYlJUQ0NvZGVj
c1Byb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsaWJXZWJSVENDb2RlY3NQcm94eSgp
Cit7CisgICAgaWYgKCFtX2xpYldlYlJUQ0NvZGVjc1Byb3h5KQorICAgICAgICBtX2xpYldlYlJU
Q0NvZGVjc1Byb3h5ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENDb2RlY3NQcm94eT4oKnRoaXMpOwor
CisgICAgcmV0dXJuICptX2xpYldlYlJUQ0NvZGVjc1Byb3h5OworfQorI2VuZGlmCisKIHZvaWQg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CkBAIC0xMjgsNiArMTQwLDEyIEBA
IHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJCiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYK
KyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKKyAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgbGliV2ViUlRDQ29kZWNzUHJveHkoKS5k
aWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggYzQwNjg1ZjE2N2Q1NDBiZTVlYTc0ZTY4M2FkMDk3
MzhiOWRhYWQ5Zi4uZDMzZTNmOTc5YzY2OTdkYTMwNGFkY2FjYjZlNjQ0YWU0YTM1OTNmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCkBAIC0zNyw2ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BV
UHJvY2VzczsKK2NsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5OwogY2xhc3MgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk7CiBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Owog
CkBAIC01OSw2ICs2MCw5IEBAIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhHUFVQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllcik7CiAKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNF
KExJQldFQlJUQykKKyAgICBMaWJXZWJSVENDb2RlY3NQcm94eSYgbGliV2ViUlRDQ29kZWNzUHJv
eHkoKTsKKyNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIHVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkoKTsKICNlbmRpZgpAQCAtNzYsNiArODAsOSBAQCBwcml2YXRlOgogI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5PiBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzUHJveHk+IG1fbGliV2ViUlRDQ29kZWNzUHJv
eHk7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY5ODgwMzk3ZWY4MTA5YmNmZmM1MmI3ZGI4NzU3MWY2NDZiYzQ3OGYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVj
c1Byb3h5LmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgVVNFKExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlJUQ0RlY29kZXJJ
ZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNz
IERlY29kZXI7CitjbGFzcyBEYXRhUmVmZXJlbmNlOworfQorCituYW1lc3BhY2Ugd2VicnRjIHsK
K3VzaW5nIExvY2FsRGVjb2RlciA9IHZvaWQqOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKKworY2xhc3MgTGliV2ViUlRDQ29kZWNz
UHJveHkgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBMaWJXZWJSVENDb2RlY3NQcm94eShH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisgICAgfkxpYldlYlJUQ0NvZGVjc1Byb3h5KCk7
CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBjcmVhdGVEZWNvZGVyKFJUQ0RlY29kZXJJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VEZWNvZGVyKFJUQ0RlY29kZXJJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGRlY29kZUZyYW1lKFJUQ0RlY29kZXJJZGVudGlmaWVyLCB1aW50MzJfdCB0
aW1lU3RhbXAsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOworCisgICAgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIEhhc2hNYXA8
UlRDRGVjb2RlcklkZW50aWZpZXIsIHdlYnJ0Yzo6TG9jYWxEZWNvZGVyPiBtX2RlY29kZXJzOwor
fTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmM3YTEzMzRkY2QwZDNhYTFkYjlkNTAxNTU0ZjFhMzA5Y2M2NTcyNzAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1By
b3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzIgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyNpZiBVU0UoTElCV0VCUlRDKSAmJiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBMaWJXZWJSVENDb2RlY3NQcm94eSBO
b3RSZWZDb3VudGVkIHsKKyAgICBDcmVhdGVEZWNvZGVyKFdlYktpdDo6UlRDRGVjb2RlcklkZW50
aWZpZXIgaWQpCisgICAgUmVsZWFzZURlY29kZXIoV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmll
ciBpZCkKKyAgICBEZWNvZGVGcmFtZShXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyIGlkLCB1
aW50MzJfdCB0aW1lU3RhbXAsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKQorfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1YTQ1MjQ3MGQ0YTAxZTYxZWQ4MDNlODE5MTU0NGZk
NjEyOTJiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1Byb3h5Lmgi
CisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJS
VENNYWNyb3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CisjaW5j
bHVkZSA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8d3Rm
L01lZGlhVGltZS5oPgorCisjaWYgVVNFKExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0xpYldlYlJUQ0Nv
ZGVjc1Byb3h5OjpMaWJXZWJSVENDb2RlY3NQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBjb25uZWN0aW9uKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rp
b24pCit7Cit9CisKK0xpYldlYlJUQ0NvZGVjc1Byb3h5Ojp+TGliV2ViUlRDQ29kZWNzUHJveHko
KQoreworICAgIGZvciAoYXV0byBkZWNvZGVyIDogbV9kZWNvZGVycy52YWx1ZXMoKSkKKyAgICAg
ICAgd2VicnRjOjpyZWxlYXNlTG9jYWxEZWNvZGVyKGRlY29kZXIpOworfQorCit2b2lkIExpYldl
YlJUQ0NvZGVjc1Byb3h5OjpjcmVhdGVEZWNvZGVyKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIpCit7CisgICAgQVNTRVJUKCFtX2RlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
KyAgICBtX2RlY29kZXJzLmFkZChpZGVudGlmaWVyLCB3ZWJydGM6OmNyZWF0ZUxvY2FsRGVjb2Rl
ciheKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1
aW50MzJfdCB0aW1lU3RhbXApIHsKKyAgICAgICAgaWYgKGF1dG8gc2FtcGxlID0gV2ViQ29yZTo6
UmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlciwgTWVkaWFUaW1lKHRpbWVTdGFt
cE5zLCAxKSkpCisgICAgICAgICAgICBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6Q29tcGxldGVkRGVjb2Rpbmcg
eyBpZGVudGlmaWVyLCB0aW1lU3RhbXAsICpzYW1wbGUgfSwgMCk7CisgICAgfSkpOworfQorCit2
b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpyZWxlYXNlRGVjb2RlcihSVENEZWNvZGVySWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIEFTU0VSVChtX2RlY29kZXJzLmNvbnRhaW5zKGlkZW50
aWZpZXIpKTsKKyAgICBpZiAoYXV0byBkZWNvZGVyID0gbV9kZWNvZGVycy50YWtlKGlkZW50aWZp
ZXIpKQorICAgICAgICB3ZWJydGM6OnJlbGVhc2VMb2NhbERlY29kZXIoZGVjb2Rlcik7Cit9CisK
K3ZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmRlY29kZUZyYW1lKFJUQ0RlY29kZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiBkYXRhKQoreworICAgIEFTU0VSVChtX2RlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIp
KTsKKyAgICBhdXRvIGRlY29kZXIgPSBtX2RlY29kZXJzLmdldChpZGVudGlmaWVyKTsKKyAgICBp
ZiAoIWRlY29kZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh3ZWJydGM6OmRlY29kZUZy
YW1lKGRlY29kZXIsIHRpbWVTdGFtcCwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKSkKKyAgICAg
ICAgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpMaWJXZWJSVENDb2RlY3M6OkZhaWxlZERlY29kaW5nIHsgaWRlbnRpZmllciB9LCAwKTsKK30K
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cmlu
ZGV4IGYyZTllZDdhYjU0MDJlZjUxMTg4ZjdlOGRiZTM5NmJhOGFjZTBmYWQuLjc1M2VhOTdlMmZi
MzEyYWZhYTc3NWZmZWNmZjk2NmI3YmQ5NTJkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQpAQCAtMjIwLDYgKzIyMCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5v
dF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVD
aGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRCcsCiAgICAg
ICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXInLAorICAgICAg
ICAnV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlN0b3Jh
Z2VBcmVhSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcicsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAppbmRleCAxOTE2ZGIzZDY1YjY1ZWNkYzVlMDBlYTdlYzAxZWZkYzY1NjYxMGZmLi5h
Y2Y0OWM3MWM3NjQzMDM0MGIxYTU1ZmQ0NGVlZTE0NTJiNDU4YjM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAg
LTUwNCwxMiArNTA0LDEzIEBAIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCitXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAogCiBXZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlSW50ZXJjZXB0
Q29udHJvbGxlci5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAK
LVdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAorV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlNvY2tldENoYW5uZWxNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFBy
b3ZpZGVyLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAppbmRleCBhNGFhNTVlMmFhMTlhMTQ2NjI1NGJiZjFiYmM3MjI4OTliNmM2
Mjc4Li5jNzEzYmFlMzg4N2FjZWY3OWQ0MzllOTAxZWE3YTgyODU2MDRiOWQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC02MSw2ICs2MSw3IEBAIEdQVVByb2Nlc3MvaW9zL0dQVVByb2Nlc3NJ
T1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMubW0KIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkuY3BwCitHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQ
cm94eS5tbQogR1BVUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvR1BVU2Vydmlj
ZUVudHJ5UG9pbnQubW0KIAogUGxhdGZvcm0vY2YvTW9kdWxlQ0YuY3BwCkBAIC02MzMsNyArNjM0
LDcgQEAgRWRpdGFibGVJbWFnZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vzc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKLS8vUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAotLy9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKK0xpYldlYlJUQ0NvZGVjc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAorTGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAogU2Vy
dmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKIFRleHRDaGVja2luZ0NvbnRy
b2xsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUzYjkxOTIwYzliOGEzZjM2YTBiZDE0OGNh
ODU4ZGJkZGNiM2EwODcuLjdhMmU4MWU0MjFlNGM4NDVkMDU3ZmVkZGU3ZmNmYWY3MmU1ZGU4Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtOTE2LDYgKzkxNiw3IEBACiAJCTQxREM0NTlDMUUzREJCMjgwMEIxMUY1MSAvKiBMaWJXZWJS
VENTb2NrZXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxREM0NTlBMUUzREJCMjQwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRDbGllbnQu
aCAqLzsgfTsKIAkJNDFEQzQ1OUYxRTNEQkRBNTAwQjExRjUxIC8qIFdlYlJUQ1NvY2tldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjMxRTNC
RkU3RjAwMUFFNjc4IC8qIFdlYlJUQ1NvY2tldC5oICovOyB9OwogCQk0MURFN0M2QzIyMjc4RjFF
MDA1MzJCNjUgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYgLyog
U2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgKi87IH07CisJCTQxRTBBN0NCMjNCNjQ1Q0QwMDU2
MTA2MCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzkxNUFDMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRD
aGFubmVsLmNwcCAqLzsgfTsKIAkJNDFGMDYwRTExNjU0MzE4NTAwRjMyODFDIC8qIFdlYlNvY2tl
dENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tldENo
YW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk0MUZBQkQyQTFGNERFMDAxMDA2QTZD
OTcgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFCRDI4MUY0RERGREMwMDZBNkM5NyAvKiBDYWNoZVN0
b3JhZ2VFbmdpbmVDYWNoZS5oICovOyB9OwogCQk0MUZBRjVGNTFFM0MwNjQ5MDAxQUU2NzggLyog
V2ViUlRDUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxRkFGNUY0MUUzQzA2NDEwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oICovOyB9
OwpAQCAtMzI5MSw2ICszMjkyLDEwIEBACiAJCTQxNTFFNUMzMUZCQjkwQTkwMEU0N0UyRCAvKiBG
b3JtRGF0YVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3Jt
RGF0YVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU3ODUzMDIx
Mjc2QjZGMDBERDM4MDAgLyogY29weS13ZWJjb250ZW50LXJlc291cmNlcy10by1wcml2YXRlLWhl
YWRlcnMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJjb3B5LXdlYmNvbnRlbnQtcmVzb3VyY2VzLXRvLXBy
aXZhdGUtaGVhZGVycy5zaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdFNEFG
MjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2IgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTcyMTk4OTIzQjYxMjgyMDBBRTU2ODYgLyogTGliV2Vi
UlRDQ29kZWNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpYldlYlJUQ0Nv
ZGVjcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTcyMTk4QTIzQjYxMjgyMDBB
RTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IExpYldlYlJUQ0NvZGVjcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxNzIxOThDMjNCNjEyRTgwMEFFNTY4NiAvKiBSVENEZWNvZGVySWRlbnRpZmllci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEZWNvZGVySWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTcyMTk4RDIzQjYyQzdDMDBBRTU2ODYgLyog
TGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpYldlYlJUQ0NvZGVjcy5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3NjkwMTMyMkZERDQxQjAwQjE1
NzZEIC8qIE5ldHdvcmtSVENQcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IE5ldHdvcmtSVENQcm92aWRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3OTE1QUMyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbC5j
cHA7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTc5MTVBRDIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsLmg7
IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMzMzIsNiArMzMzNyw5IEBACiAJCTQxREM0NTlBMUUzREJCMjQwMEIxMUY1MSAv
KiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTGliV2ViUlRDU29ja2V0Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxREM0NTlEMUUzREJDRjAwMEIxMUY1MSAvKiBXZWJSVENTb2NrZXQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViUlRDU29ja2V0LmNwcDsgcGF0aCA9IE5ldHdv
cmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxREM0NUEwMUUzREM1M0MwMEIxMUY1MSAvKiBXZWJSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJSVENSZXNvbHZlci5jcHA7IHBhdGggPSBO
ZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxRTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMaWJXZWJSVENDb2RlY3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNz
UHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRTBBN0M4MjNCNjM5NzkwMDU2MTA2MCAv
KiBMaWJXZWJSVENDb2RlY3NQcm94eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUYwNjBERDE2
NTQzMTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTQxRkFCRDI4MUY0
RERGREMwMDZBNkM5NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MUZBRjVGMzFFM0JGRTdGMDAxQUU2NzggLyogV2ViUlRDU29j
a2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlJUQ1NvY2tldC5oOyBw
YXRoID0gTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC02MzI3LDYgKzYzMzUsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKIAkJCQkwNzkyMzEyRjIzOUIzQjBDMDA5NTk4RTIgLyogbWVkaWEgKi8sCisJCQkJ
NDE3MjE5ODgyM0I2MTI2MTAwQUU1Njg2IC8qIHdlYnJ0YyAqLywKIAkJCQkyRDdFNDNDMDIzNzUy
Q0Q5MDBFQTVDQTAgLyogR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAogCQkJCTJEN0U0M0Mz
MjM3NTJDRDkwMEVBNUNBMCAvKiBHUFVQcm9jZXNzQ29ubmVjdGlvbi5oICovLAogCQkJCTJEN0U0
M0MyMjM3NTJDRDkwMEVBNUNBMCAvKiBHUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAq
LywKQEAgLTYzNDIsNiArNjM1MSw3IEBACiAJCQkJMkQ5RkIyMDQyMzc1MjA5RDAwNDlGOTM2IC8q
IGlvcyAqLywKIAkJCQkyRDlGQjIwNjIzNzUyMDlEMDA0OUY5MzYgLyogbWFjICovLAogCQkJCTA3
Qzc1QzE3MjM5OUEzREIwMDg4RTY1QiAvKiBtZWRpYSAqLywKKwkJCQk0MTcyMTk4RTIzQjYzM0NB
MDBBRTU2ODYgLyogd2VicnRjICovLAogCQkJCTJEOUZCMjBDMjM3NTIwOUQwMDQ5RjkzNiAvKiBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLywKIAkJCQkyRDlGQjIwMDIzNzUyMDlEMDA0
OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovLAogCQkJCTJEOUZCMjA5MjM3
NTIwOUQwMDQ5RjkzNiAvKiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluICov
LApAQCAtNzA2Myw2ICs3MDczLDI3IEBACiAJCQluYW1lID0gd2VicnRjOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNDE3MjE5ODgyM0I2MTI2MTAwQUU1Njg2IC8qIHdlYnJ0
YyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNDE3MjE5
OEEyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5jcHAgKi8sCisJCQkJNDE3MjE5
ODkyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5oICovLAorCQkJCTQxNzIxOThE
MjNCNjJDN0MwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4gKi8sCisJCQkJ
NDE3MjE5OEMyM0I2MTJFODAwQUU1Njg2IC8qIFJUQ0RlY29kZXJJZGVudGlmaWVyLmggKi8sCisJ
CQkpOworCQkJcGF0aCA9IHdlYnJ0YzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CisJCTQxNzIxOThFMjNCNjMzQ0EwMEFFNTY4NiAvKiB3ZWJydGMgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQxRTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAv
KiBMaWJXZWJSVENDb2RlY3NQcm94eS5oICovLAorCQkJCTQxRTBBN0M3MjNCNjM5NzkwMDU2MTA2
MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQk0MUUwQTdDODIz
QjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkubW0gKi8sCisJCQkpOworCQkJ
cGF0aCA9IHdlYnJ0YzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTQxRDEy
OUQ4MUYzRDEwMTQwMEQxNUU0NyAvKiBDYWNoZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCkBAIC0xMjA5OSw2ICsxMjEzMCw3IEBACiAJCQkJNTFGMDYwRTExNjU0
MzE4NTAwRjMyODFGIC8qIFdlYlJUQ01vbml0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODJDIC8qIFdlYlJUQ1Jlc29sdmVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYz
MjgxQyAvKiBXZWJSVENTb2NrZXRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDFFMEE3Q0IyM0I2NDVDRDAwNTYxMDYwIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDFGMDYwRTExNjU0MzE4NTAwRjMyODFDIC8qIFdlYlNvY2tldENoYW5u
ZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMwQjE3NzkxRTdDODgy
MTAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0MTI4N0Q0RTIyNUQxRUNCMDA5QTNFMjYgLyogV2ViU29ja2V0VGFza0NvY29h
Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGU4ZGFhZTBmOWJhODVhMjUxYjcwNjdk
ZTM4Y2E0YTc2OTc0MjE1ODAuLjY0YTRiNGY3ZGVjYTM4NmI1Mjc1OWFmYjQ3NmNlZjlmODhkZjgy
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJEYXRhUmVmZXJl
bmNlLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzLmgiCisjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCIKICNpbmNsdWRl
ICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmgiCkBAIC03NSw2ICs3NywxMiBAQCB2b2lkIEdQVVByb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RAogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCisjaWYgVVNFKExJQldFQlJUQykg
JiYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgp
ID09IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewor
ICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5kaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhkMmQ0NTU0MTkzNDc3ODIwZWMzNmQ5YTk4ZTk2Y2NjZWM0NTNiYmYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3MuY3BwCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjcy5oIgorCisjaWYgVVNFKExJQldFQlJUQykgJiYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkdQVVBy
b2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CisjaW5jbHVkZSA8cGFsL2NmL0NvcmVN
ZWRpYVNvZnRMaW5rLmg+CisjaW5jbHVkZSA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0
aWVzLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3N0YXRpYyB1aW50NjRfdCBjcmVhdGVWaWRlb0RlY29kZXIoY29uc3Qgd2VicnRjOjpTZHBW
aWRlb0Zvcm1hdCYgZm9ybWF0KQoreworICAgIGlmIChmb3JtYXQubmFtZSAhPSAiSDI2NCIpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgYXV0byBkZWNvZGVySWRlbnRpZmllciA9IFJUQ0RlY29k
ZXJJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKworICAgIGNhbGxPbk1haW5SdW5M
b29wKFtkZWNvZGVySWRlbnRpZmllcl0geworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5saWJXZWJSVENDb2RlY3MoKS5jcmVhdGVEZWNvZGVyKGRlY29kZXJJZGVudGlmaWVyKTsKKyAg
ICB9KTsKKyAgICByZXR1cm4gZGVjb2RlcklkZW50aWZpZXIudG9VSW50NjQoKTsKK30KKworc3Rh
dGljIGludDMyX3QgcmVsZWFzZVZpZGVvRGVjb2Rlcih1aW50NjRfdCBkZWNvZGVySWRlbnRpZmll
cikKK3sKKyAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoW2RlY29kZXJJZGVudGlmaWVyXSB7
CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ0NvZGVjcygpLnJlbGVh
c2VEZWNvZGVyKG1ha2VPYmplY3RJZGVudGlmaWVyPFJUQ0RlY29kZXJJZGVudGlmaWVyVHlwZT4o
ZGVjb2RlcklkZW50aWZpZXIpKTsKKyAgICB9KTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGlj
IGludDMyX3QgZGVjb2RlVmlkZW9GcmFtZSh1aW50NjRfdCBkZWNvZGVySWRlbnRpZmllciwgdWlu
dDMyX3QgdGltZVN0YW1wLCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkKK3sKKyAg
ICBpbnQzMl90IHJlc3VsdDsKKyAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoW2RlY29kZXJJ
ZGVudGlmaWVyLCB0aW1lU3RhbXAsIGRhdGEsIHNpemUsICZyZXN1bHRdIHsKKyAgICAgICAgcmVz
dWx0ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCkuZGVjb2RlRnJh
bWUobWFrZU9iamVjdElkZW50aWZpZXI8UlRDRGVjb2RlcklkZW50aWZpZXJUeXBlPihkZWNvZGVy
SWRlbnRpZmllciksIHRpbWVTdGFtcCwgZGF0YSwgc2l6ZSk7CisgICAgfSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworc3RhdGljIGludDMyX3QgcmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxi
YWNrKHVpbnQ2NF90IGRlY29kZXJJZGVudGlmaWVyLCB2b2lkKiBkZWNvZGVkSW1hZ2VDYWxsYmFj
aykKK3sKKyAgICBjYWxsT25NYWluUnVuTG9vcChbZGVjb2RlcklkZW50aWZpZXIsIGRlY29kZWRJ
bWFnZUNhbGxiYWNrXSB7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJU
Q0NvZGVjcygpLnJlZ2lzdGVyRGVjb2RlRnJhbWVDYWxsYmFjayhtYWtlT2JqZWN0SWRlbnRpZmll
cjxSVENEZWNvZGVySWRlbnRpZmllclR5cGU+KGRlY29kZXJJZGVudGlmaWVyKSwgZGVjb2RlZElt
YWdlQ2FsbGJhY2spOworICAgIH0pOworICAgIHJldHVybiAwOworfQorCit2b2lkIExpYldlYlJU
Q0NvZGVjczo6aW5pdGlhbGl6ZVZpZGVvRGVjb2RlckNhbGxiYWNrcygpCit7CisgICAgd2VicnRj
OjpzZXRWaWRlb0RlY29kZXJDYWxsYmFja3MoY3JlYXRlVmlkZW9EZWNvZGVyLCByZWxlYXNlVmlk
ZW9EZWNvZGVyLCBkZWNvZGVWaWRlb0ZyYW1lLCByZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJh
Y2spOworfQorCit2b2lkIExpYldlYlJUQ0NvZGVjczo6Y3JlYXRlRGVjb2RlcihSVENEZWNvZGVy
SWRlbnRpZmllciBkZWNvZGVySWRlbnRpZmllcikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6Q3JlYXRlRGVjb2RlciB7IGRlY29kZXJJZGVudGlm
aWVyIH0sIDApOworfQorCit2b2lkIExpYldlYlJUQ0NvZGVjczo6cmVsZWFzZURlY29kZXIoUlRD
RGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKG1fZGVj
b2RlQ2FsbGJhY2tzLmNvbnRhaW5zKGRlY29kZXJJZGVudGlmaWVyKSk7CisKKyAgICBtX2RlY29k
ZUNhbGxiYWNrcy5yZW1vdmUoZGVjb2RlcklkZW50aWZpZXIpOworICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpSZWxlYXNlRGVjb2RlciB7IGRlY29kZXJJ
ZGVudGlmaWVyIH0sIDApOworfQorCitpbnQzMl90IExpYldlYlJUQ0NvZGVjczo6ZGVjb2RlRnJh
bWUoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIsIHVpbnQzMl90IHRpbWVT
dGFtcCwgY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCit7CisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkRlY29kZUZyYW1lIHsgZGVjb2Rl
cklkZW50aWZpZXIsIHRpbWVTdGFtcCwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgZGF0YSwgc2l6ZSB9
IH0sIDApOworICAgIHJldHVybiBtX2RlY29kaW5nRXJyb3JzLnJlbW92ZShkZWNvZGVySWRlbnRp
ZmllcikgPyBXRUJSVENfVklERU9fQ09ERUNfRVJST1IgOiBXRUJSVENfVklERU9fQ09ERUNfT0s7
Cit9CisKK3ZvaWQgTGliV2ViUlRDQ29kZWNzOjpyZWdpc3RlckRlY29kZUZyYW1lQ2FsbGJhY2so
UlRDRGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIsIHZvaWQqIGRlY29kZWRJbWFn
ZUNhbGxiYWNrKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFt
X2RlY29kZUNhbGxiYWNrcy5jb250YWlucyhkZWNvZGVySWRlbnRpZmllcikpOworCisgICAgbV9k
ZWNvZGVDYWxsYmFja3MuYWRkKGRlY29kZXJJZGVudGlmaWVyLCBkZWNvZGVkSW1hZ2VDYWxsYmFj
ayk7Cit9CisKK3ZvaWQgTGliV2ViUlRDQ29kZWNzOjpmYWlsZWREZWNvZGluZyhSVENEZWNvZGVy
SWRlbnRpZmllciBkZWNvZGVySWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworCisgICAgbV9kZWNvZGluZ0Vycm9ycy5hZGQoZGVjb2RlcklkZW50aWZpZXIpOworfQor
Cit2b2lkIExpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRGVjb2RpbmcoUlRDRGVjb2RlcklkZW50
aWZpZXIgZGVjb2RlcklkZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKworICAgIC8vIEZJWE1FOiBEbyBlcnJvciBsb2dnaW5nLgorICAgIGF1dG8qIGNhbGxi
YWNrID0gbV9kZWNvZGVDYWxsYmFja3MuZ2V0KGRlY29kZXJJZGVudGlmaWVyKTsKKyAgICBpZiAo
IWNhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNl
c3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVT
YW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IFdl
YkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9G
b3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRv
IHBpeGVsQnVmZmVyID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlUGl4ZWxCdWZmZXIo
cmVtb3RlU2FtcGxlLnN1cmZhY2UoKSwgcmVtb3RlU2FtcGxlLnNpemUoKSk7CisgICAgaWYgKCFw
aXhlbEJ1ZmZlcikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHdlYnJ0Yzo6UmVtb3RlVmlkZW9EZWNvZGVyOjpkZWNvZGVDb21w
bGV0ZShjYWxsYmFjaywgdGltZVN0YW1wLCBwaXhlbEJ1ZmZlci5nZXQoKSwgcmVtb3RlU2FtcGxl
LnRpbWUoKS50b0RvdWJsZSgpKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDc3MWIyZGYzMDhmMmY3MjIyNTcwZWVhMmI2NzVkYWIzOTI3ZDQ4YgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVj
cy5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlJUQ0RlY29kZXJJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CisjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorCituYW1lc3BhY2UgSVBD
IHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworfQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIExpYldlYlJUQ0NvZGVjcyA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIg
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIExpYldlYlJUQ0Nv
ZGVjcygpID0gZGVmYXVsdDsKKworICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVWaWRlb0RlY29k
ZXJDYWxsYmFja3MoKTsKKworICAgIHZvaWQgY3JlYXRlRGVjb2RlcihSVENEZWNvZGVySWRlbnRp
Zmllcik7CisgICAgdm9pZCByZWxlYXNlRGVjb2RlcihSVENEZWNvZGVySWRlbnRpZmllcik7Cisg
ICAgaW50MzJfdCBkZWNvZGVGcmFtZShSVENEZWNvZGVySWRlbnRpZmllciwgdWludDMyX3QgdGlt
ZVN0YW1wLCBjb25zdCB1aW50OF90Kiwgc2l6ZV90KTsKKyAgICB2b2lkIHJlZ2lzdGVyRGVjb2Rl
RnJhbWVDYWxsYmFjayhSVENEZWNvZGVySWRlbnRpZmllciwgdm9pZCogZGVjb2RlZEltYWdlQ2Fs
bGJhY2spOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICB2b2lkIGZhaWxlZERlY29kaW5n
KFJUQ0RlY29kZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNvbXBsZXRlZERlY29kaW5nKFJUQ0Rl
Y29kZXJJZGVudGlmaWVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlJiYpOworCisgICAgSGFzaE1hcDxSVENEZWNvZGVySWRlbnRpZmllciwgdm9pZCo+IG1f
ZGVjb2RlQ2FsbGJhY2tzOworICAgIEhhc2hTZXQ8UlRDRGVjb2RlcklkZW50aWZpZXI+IG1fZGVj
b2RpbmdFcnJvcnM7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFuc2Zl
clNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhYWU5Nzg2
ODBkM2MzYTc4MGI4YzI1OWU0M2E1ZTQ4ZDE5MDMxNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzMCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjaWYgVVNFKExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworbWVzc2FnZXMgLT4gTGliV2ViUlRDQ29kZWNzIE5vdFJlZkNvdW50ZWQgewor
ICAgIEZhaWxlZERlY29kaW5nKFdlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXIgaWQpCisgICAg
Q29tcGxldGVkRGVjb2RpbmcoV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmllciBpZCwgdWludDMy
X3QgdGltZVN0YW1wLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSBzYW1wbGUpCit9CisKKyNl
bmRpZiAvLyBVU0UoTElCV0VCUlRDKSAmJiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
UlRDRGVjb2RlcklkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1JUQ0RlY29kZXJJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2RhYTNiYzVmOTBkNWJlZTk5
OWJiMjdjOGYwMWQyZWI3OWZkZTIwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JUQ0RlY29kZXJJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElk
ZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gUlRDRGVjb2RlcklkZW50
aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJUQ0RlY29kZXJJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRp
ZmllcjxSVENEZWNvZGVySWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IDQ2OGRmNmM3ODVmYzMyYzUzMDdiOWYwMDhk
MGQxNjNiMDkzZWIzYmYuLmZhMTdiY2NmY2I5ODJjNmM3NzRmZDFiNGI1ZTk1ZmNkYWU5ZDVlMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMjgsNiArMjgsMTAgQEAKIAogI2lmIFVT
RShMSUJXRUJSVEMpCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09B
KQorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjcy5oIgorI2VuZGlmCisKICNpbmNsdWRlICJMaWJX
ZWJSVENOZXR3b3JrLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPHdlYnJ0
Yy9hcGkvYXN5bmNfcmVzb2x2ZXJfZmFjdG9yeS5oPgpAQCAtMTMxLDYgKzEzNSwxNCBAQCBzdGQ6
OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlkZXI6OlN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4g
TGliV2ViUlRDUHJvdmlkZXI6OgogICAgIHJldHVybiBtYWtlVW5pcXVlPFJUQ1NvY2tldEZhY3Rv
cnk+KFdURk1vdmUodXNlckFnZW50KSk7CiB9CiAKK3N0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZp
ZGVvRGVjb2RlckZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVEZWNvZGVyRmFjdG9y
eSgpCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICBM
aWJXZWJSVENDb2RlY3M6OmluaXRpYWxpemVWaWRlb0RlY29kZXJDYWxsYmFja3MoKTsKKyNlbmRp
ZgorICAgIHJldHVybiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpjcmVhdGVEZWNvZGVyRmFjdG9y
eSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFVTRShMSUJXRUJS
VEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IDAyNDhlZWQ5MzMwMDRiNDFiMzAyMDI0OTI1
NjQ3YTNlZTQwMTBkMGQuLjdlNTAxNWZkZDczN2Y4YTc1ZDQ5NDc3ZmU3YzY2MDQ5YWRkOWQ0ZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC01Nyw2ICs1Nyw5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCB1bnJlZ2lzdGVyTUROU05hbWVzKHVpbnQ2NF90IGRvY3VtZW50SWRlbnRpZmllcikgZmlu
YWw7CiAgICAgdm9pZCByZWdpc3Rlck1ETlNOYW1lKHVpbnQ2NF90IGRvY3VtZW50SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBpcEFkZHJlc3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTUROU05h
bWVPckVycm9yJiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25u
ZWN0aW9ucygpIGZpbmFsOworCisgICAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNv
ZGVyRmFjdG9yeT4gY3JlYXRlRGVjb2RlckZhY3RvcnkoKSBmaW5hbDsKKwogfTsKICNlbHNlCiB1
c2luZyBMaWJXZWJSVENQcm92aWRlciA9IFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDE1MTMyNzFhYzNmOTc1MTU2
Zjk5NDJkYWZkZjBjYzBhOGNkN2UzZDMuLmM0YWQzOWY5MGM3NWMxY2QxMzc5YmUyNGE2MTQyMjZl
OTlkYTZjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE2
OCw2ICsxNjgsMTAgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCIKICNl
bmRpZgogCisjaWYgVVNFKExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKyNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3MuaCIKKyNlbmRpZgorCiAvLyBU
aGlzIHNob3VsZCBiZSBsZXNzIHRoYW4gcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVUaHJl
c2hvbGQgaW4gUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBw
bHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9uVGltZVVwZGF0ZVRocmVzaG9sZCB7IDI5ICogMjQgKiA2
MCAqIDYwIH07CiAKQEAgLTEzMTAsNiArMTMxNCwxNSBAQCB2b2lkIFdlYlByb2Nlc3M6OmdwdVBy
b2Nlc3NDb25uZWN0aW9uQ2xvc2VkKEdQVVByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQog
ICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOwogfQogCisjaWYgUExBVEZPUk0o
Q09DT0EpICYmIFVTRShMSUJXRUJSVEMpCitMaWJXZWJSVENDb2RlY3MmIFdlYlByb2Nlc3M6Omxp
YldlYlJUQ0NvZGVjcygpCit7CisgICAgaWYgKCFtX2xpYldlYlJUQ0NvZGVjcykKKyAgICAgICAg
bV9saWJXZWJSVENDb2RlY3MgPSBtYWtlVW5pcXVlPExpYldlYlJUQ0NvZGVjcz4oKTsKKyAgICBy
ZXR1cm4gKm1fbGliV2ViUlRDQ29kZWNzOworfQorI2VuZGlmCisKICNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5
KGJvb2wgZmxhZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGMyY2U4
OGJkNjI2ZjhiOGEzY2U4YTkwMWUzNWZmZGJjNGI0YzcyODUuLjhmOWJmZTU3MTVkNDIyNTlhM2Ez
YjMxNzA1YWMzNGY2ZjEzYjFkMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aApAQCAtMTA5LDYgKzEwOSw3IEBAIGNsYXNzIEV2ZW50RGlzcGF0Y2hlcjsKIGNsYXNzIEdhbWVw
YWREYXRhOwogY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CiBjbGFzcyBJbmplY3RlZEJ1bmRs
ZTsKK2NsYXNzIExpYldlYlJUQ0NvZGVjczsKIGNsYXNzIExpYldlYlJUQ05ldHdvcms7CiBjbGFz
cyBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb247CiBjbGFzcyBPYmpDT2JqZWN0R3JhcGg7CkBAIC0y
MTgsNiArMjE5LDExIEBAIHB1YmxpYzoKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICB2b2lkIGdwdVByb2Nlc3NDb25uZWN0aW9uQ2xv
c2VkKEdQVVByb2Nlc3NDb25uZWN0aW9uKik7CiAgICAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24qIGV4
aXN0aW5nR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSB7IHJldHVybiBtX2dwdVByb2Nlc3NDb25uZWN0
aW9uLmdldCgpOyB9CisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKKyAg
ICBMaWJXZWJSVENDb2RlY3MmIGxpYldlYlJUQ0NvZGVjcygpOworI2VuZGlmCisKICNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICAgICBMaWJXZWJSVENOZXR3b3JrJiBsaWJXZWJSVENO
ZXR3b3JrKCk7CkBAIC01MjMsNiArNTI5LDkgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKICAgICBSZWZQdHI8R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb247CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVjcz4gbV9saWJXZWJSVENDb2RlY3M7CisjZW5kaWYK
ICNlbmRpZgogCiAgICAgUmVmPFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyPiBtX2NhY2hlU3RvcmFn
ZVByb3ZpZGVyOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94
Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZSBiL1dlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJl
ZGRhdGEveGNzY2hlbWVzL0FsbCBTb3VyY2UueGNzY2hlbWUKaW5kZXggYjc1ZjRiZDE5OWQ4YWU1
NmViZmYzNzdjOGYyMjgxMzFhOGViMzI3Yi4uZTFjOTc0Y2FmM2IxYWY1ZjZmMGNmZTU3NzA0YTU2
N2UyODNjNTA5ZCAxMDA2NDQKLS0tIGEvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94
Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZQkKKysrIGIvV2ViS2l0Lnhjd29ya3NwYWNlL3hj
c2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZQkKQEAgLTU3LDcgKzU3LDcg
QEAKICAgICAgICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKICAgICAgICAgICAgICAgIEJ1aWxk
YWJsZUlkZW50aWZpZXIgPSAicHJpbWFyeSIKICAgICAgICAgICAgICAgIEJsdWVwcmludElkZW50
aWZpZXIgPSAiRkIzOUQwRDAxMjAwRjBFMzAwMDg4RTY5IgotICAgICAgICAgICAgICAgQnVpbGRh
YmxlTmFtZSA9ICJsaWJBTkdMRS5hIgorICAgICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJs
aWJBTkdMRS1zaGFyZWQuZHlsaWIiCiAgICAgICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIkFO
R0xFIgogICAgICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6U291
cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUueGNvZGVwcm9qIj4KICAgICAgICAgICAgIDwvQnVp
bGRhYmxlUmVmZXJlbmNlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386490</attachid>
            <date>2019-12-29 07:56:45 -0800</date>
            <delta_ts>2019-12-30 02:25:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205607-20191229165643.patch</filename>
            <type>text/plain</type>
            <size>85189</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAyY2U0ZjNmNGVhNDA0MmNiMjgyZjE5ZDYzNTU3YzE2OGYyMGJkNjZjLi43YmVh
NTgxOGYyZDllNmIxZThhOTg4NDM4NGVmNDY0ODM0ZDEyNGNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxOS0xMi0yOSAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFJUQyBWVEIgZGVj
b2RlcnMgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1NjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRXhwb3NlIHJlbW90ZSBkZWNvZGVyIGFiaWxpdGllcyB3aXRoIEMgbGlrZSBm
dW5jdGlvbnMuCisgICAgICAgIFRoaXMgYWxsb3dzIFdlYlByb2Nlc3MgdG8gaW1wbGVtZW50IElQ
Qy1iYXNlZCBkZWNvZGVycy4KKyAgICAgICAgRXhwb3NlIFZUQiBIMjY0IGRlY29kZXIgYXMgQyBs
aWtlIGZ1bmN0aW9ucy4KKyAgICAgICAgVGhpcyBhbGxvd3MgR1BVIHByb2Nlc3MgdG8gaW5zdGFu
dGlhdGUgd2FzaWx5IEgyNjY0IGRlY29kZXJzLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLmlPUy5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlP
U3NpbS5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHA6Cisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMubW06CisgICAg
ICAgICh3ZWJydGM6OnZpZGVvRGVjb2RlckNhbGxiYWNrcyk6CisgICAgICAgICh3ZWJydGM6OnNl
dFZpZGVvRGVjb2RlckNhbGxiYWNrcyk6CisgICAgICAgICh3ZWJydGM6OlJlbW90ZVZpZGVvRGVj
b2Rlcjo6UmVtb3RlVmlkZW9EZWNvZGVyKToKKyAgICAgICAgKHdlYnJ0Yzo6UmVtb3RlVmlkZW9E
ZWNvZGVyOjpkZWNvZGVDb21wbGV0ZSk6CisgICAgICAgICh3ZWJydGM6OlJlbW90ZVZpZGVvRGVj
b2Rlcjo6SW5pdERlY29kZSk6CisgICAgICAgICh3ZWJydGM6OlJlbW90ZVZpZGVvRGVjb2Rlcjo6
RGVjb2RlKToKKyAgICAgICAgKHdlYnJ0Yzo6UmVtb3RlVmlkZW9EZWNvZGVyOjpSZWdpc3RlckRl
Y29kZUNvbXBsZXRlQ2FsbGJhY2spOgorICAgICAgICAod2VicnRjOjpSZW1vdGVWaWRlb0RlY29k
ZXI6OlJlbGVhc2UpOgorICAgICAgICAod2VicnRjOjpSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5
OjpSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5KToKKyAgICAgICAgKHdlYnJ0Yzo6UmVtb3RlVmlk
ZW9EZWNvZGVyRmFjdG9yeTo6R2V0U3VwcG9ydGVkRm9ybWF0cyBjb25zdCk6CisgICAgICAgICh3
ZWJydGM6OlJlbW90ZVZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcik6Cisg
ICAgICAgICh3ZWJydGM6OmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5KToKKyAgICAgICAgKHdl
YnJ0Yzo6Y3JlYXRlTG9jYWxEZWNvZGVyKToKKyAgICAgICAgKHdlYnJ0Yzo6cmVsZWFzZUxvY2Fs
RGVjb2Rlcik6CisgICAgICAgICh3ZWJydGM6OmRlY29kZUZyYW1lKToKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVy
SDI2NC5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY0Lm1tOgorICAgICAgICAoLVtSVENWaWRlb0RlY29k
ZXJIMjY0IGRlY29kZTptaXNzaW5nRnJhbWVzOmNvZGVjU3BlY2lmaWNJbmZvOnJlbmRlclRpbWVN
czpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVySDI2NCBkZWNvZGVEYXRhOnNpemU6dGlt
ZVN0YW1wOl0pOgorCiAyMDE5LTEyLTI0ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBEbyBub3QgYnVpbGQgeWFzbSBmb3IgaU9TIGFuZCBpT1Mgc2ltdWxhdG9y
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYTQxZmQ2OTIwZjU4NzA2ODI0ODhjMzNlNDNlNjBmMjg0ZDkyNTFmNi4u
YmY4ZjQwYmQ2OThmOTFkZjMwOWExMzIwNGM1MWMwZDY0OTBhYjJkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDE5LTEyLTI5ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgUlRDIFZUQiBkZWNvZGVycyBpbiBHUFVQcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2MDcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcm91dGlu
ZSB0byBjcmVhdGUgYSBSZW1vdmVWaWRlb1NhbXBsZSBmcm9tIGEgcGl4ZWwgYnVmZmVyLgorICAg
ICAgICBVcGRhdGUgTGliV2ViUlRDUHJvdmlkZXIgdG8gZW5hYmxlL2Rpc2FibGUgZGVjb2Rpbmcg
aW4gR1BVIFByb2Nlc3MgYW5kIGFkZCBpbnRlcm5hbHMgQVBJLgorCisgICAgICAgIFRlc3Q6IHdl
YnJ0Yy92aWRlby1ncHVQcm9jZXNzLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1JlbW90ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2Ft
cGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2Ft
cGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6c2V0
VXNlR1BVUHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50
U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRVc2VHUFVQcm9jZXNzRm9y
V2ViUlRDKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxOS0xMi0yNCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgSWdub3JlIFVSTCBob3N0IGZvciBzY2hlbWVzIHRoYXQgYXJl
IG5vdCB1c2luZyBob3N0IGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc3YzQ2ZDdmNGY5ZDhjNTgy
NzkzZTg2ZDlhMDBjNzQ4NTUwYWQ4MDAuLmI5MDg1YTdhMTZiMjM4YzM0ODJhNmZiMjQzMmFiZjAw
YzljYjFkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTktMTItMjkgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBSVEMgVlRCIGRl
Y29kZXJzIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTYwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudCBkZWNvZGVyIGZhY3RvcnkgY2FsbGJhY2tzLgorICAgICAg
ICBJbXBsZW1lbnQgV2ViUHJvY2VzcyBjb2RlY3MgYnkgc2VuZGluZyBJUEMgZm9yIGNyZWF0aW5n
L3JlbGVhc2luZy9kZWNvZGluZyBhIGZyYW1lLgorICAgICAgICBXZWJQcm9jZXNzIHJlY2VpdmVz
IElQQyBtZXNzYWdlcyBmcm9tIEdQVSBQcm9jZXNzIHdoZW5ldmVyIGEgZnJhbWUgaXMgZGVjb2Rl
ZC4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bGliV2ViUlRDQ29kZWNzUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHku
aDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpkaWRSZWNl
aXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpMaWJXZWJSVENDb2RlY3NQcm94eTo6TGliV2ViUlRDQ29kZWNzUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3NQcm94eTo6fkxpYldlYlJUQ0NvZGVjc1Byb3h5KToK
KyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzUHJveHk6OmNyZWF0ZURlY29kZXIpOgor
ICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3NQcm94eTo6cmVsZWFzZURlY29kZXIpOgor
ICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3NQcm94eTo6ZGVjb2RlRnJhbWUpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNvdXJjZXMudHh0
OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
UmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlVmlkZW9EZWNvZGVy
KToKKyAgICAgICAgKFdlYktpdDo6cmVsZWFzZVZpZGVvRGVjb2Rlcik6CisgICAgICAgIChXZWJL
aXQ6OmRlY29kZVZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpyZWdpc3RlckRlY29kZUNv
bXBsZXRlQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OnNldFZp
ZGVvRGVjb2RlckNhbGxiYWNrcyk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6
Y3JlYXRlRGVjb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cmVsZWFz
ZURlY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmRlY29kZUZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpyZWdpc3RlckRlY29kZUZyYW1l
Q2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmZhaWxlZERlY29k
aW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGlu
Zyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1l
c3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvUlRDRGVj
b2RlcklkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1By
b3ZpZGVyOjpjcmVhdGVEZWNvZGVyRmFjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ0NvZGVj
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMTktMTItMjMgIEFs
ZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgd2F0Y2hPUyBidWls
ZCBmaXggYXR0ZW1wdApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0Nv
bmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCmluZGV4IGRiMDgzYzkwODM3ZGJi
NGI2YzcxMDQwNjNlNDFjM2Q1ODRkYTBhN2QuLjcwZmU5NjNlOTVhOGRkYmRjZDRhMTdjMGZkYzFi
NGQ4ZWE3NGIzOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25m
aWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKQEAgLTI2MiwzICsyNjIsOCBA
QCBfX1pOSzZ3ZWJydGMyMERhdGFDaGFubmVsSW50ZXJmYWNlMTdtYXhSZXRyYW5zbWl0c09wdEV2
CiBfX1pOSzZ3ZWJydGMyMFJ0cFJlY2VpdmVySW50ZXJmYWNlMTRkdGxzX3RyYW5zcG9ydEV2CiBf
X1pOSzZ3ZWJydGMyM1BlZXJDb25uZWN0aW9uSW50ZXJmYWNlMTZHZXRTY3RwVHJhbnNwb3J0RXYK
IF9fWk5LNndlYnJ0YzIzUnRwVHJhbnNjZWl2ZXJJbnRlcmZhY2UxN2NvZGVjX3ByZWZlcmVuY2Vz
RXYKK19fWk42d2VicnRjMThjcmVhdGVMb2NhbERlY29kZXJFVTEzYmxvY2tfcG9pbnRlckZ2UDEw
X19DVkJ1ZmZlcmpqRQorX19aTjZ3ZWJydGMxOXJlbGVhc2VMb2NhbERlY29kZXJFUHYKK19fWk42
d2VicnRjMTFkZWNvZGVGcmFtZUVQdmpQS2htCitfX1pONndlYnJ0YzE4UmVtb3RlVmlkZW9EZWNv
ZGVyMTRkZWNvZGVDb21wbGV0ZUVQdmpQMTBfX0NWQnVmZmVyagorX19aTjZ3ZWJydGMyNHNldFZp
ZGVvRGVjb2RlckNhbGxiYWNrc0VQRlB2UktOU18xNFNkcFZpZGVvRm9ybWF0RUVQRmlTMF9FUEZp
UzBfalBLaG1FUEZpUzBfUzBfRQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCmluZGV4IGRi
MDgzYzkwODM3ZGJiNGI2YzcxMDQwNjNlNDFjM2Q1ODRkYTBhN2QuLjcwZmU5NjNlOTVhOGRkYmRj
ZDRhMTdjMGZkYzFiNGQ4ZWE3NGIzOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAK
QEAgLTI2MiwzICsyNjIsOCBAQCBfX1pOSzZ3ZWJydGMyMERhdGFDaGFubmVsSW50ZXJmYWNlMTdt
YXhSZXRyYW5zbWl0c09wdEV2CiBfX1pOSzZ3ZWJydGMyMFJ0cFJlY2VpdmVySW50ZXJmYWNlMTRk
dGxzX3RyYW5zcG9ydEV2CiBfX1pOSzZ3ZWJydGMyM1BlZXJDb25uZWN0aW9uSW50ZXJmYWNlMTZH
ZXRTY3RwVHJhbnNwb3J0RXYKIF9fWk5LNndlYnJ0YzIzUnRwVHJhbnNjZWl2ZXJJbnRlcmZhY2Ux
N2NvZGVjX3ByZWZlcmVuY2VzRXYKK19fWk42d2VicnRjMThjcmVhdGVMb2NhbERlY29kZXJFVTEz
YmxvY2tfcG9pbnRlckZ2UDEwX19DVkJ1ZmZlcmpqRQorX19aTjZ3ZWJydGMxOXJlbGVhc2VMb2Nh
bERlY29kZXJFUHYKK19fWk42d2VicnRjMTFkZWNvZGVGcmFtZUVQdmpQS2htCitfX1pONndlYnJ0
YzE4UmVtb3RlVmlkZW9EZWNvZGVyMTRkZWNvZGVDb21wbGV0ZUVQdmpQMTBfX0NWQnVmZmVyagor
X19aTjZ3ZWJydGMyNHNldFZpZGVvRGVjb2RlckNhbGxiYWNrc0VQRlB2UktOU18xNFNkcFZpZGVv
Rm9ybWF0RUVQRmlTMF9FUEZpUzBfalBLaG1FUEZpUzBfUzBfRQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMu
ZXhwCmluZGV4IGRiMDgzYzkwODM3ZGJiNGI2YzcxMDQwNjNlNDFjM2Q1ODRkYTBhN2QuLjcwZmU5
NjNlOTVhOGRkYmRjZDRhMTdjMGZkYzFiNGQ4ZWE3NGIzOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1h
Yy5leHAKQEAgLTI2MiwzICsyNjIsOCBAQCBfX1pOSzZ3ZWJydGMyMERhdGFDaGFubmVsSW50ZXJm
YWNlMTdtYXhSZXRyYW5zbWl0c09wdEV2CiBfX1pOSzZ3ZWJydGMyMFJ0cFJlY2VpdmVySW50ZXJm
YWNlMTRkdGxzX3RyYW5zcG9ydEV2CiBfX1pOSzZ3ZWJydGMyM1BlZXJDb25uZWN0aW9uSW50ZXJm
YWNlMTZHZXRTY3RwVHJhbnNwb3J0RXYKIF9fWk5LNndlYnJ0YzIzUnRwVHJhbnNjZWl2ZXJJbnRl
cmZhY2UxN2NvZGVjX3ByZWZlcmVuY2VzRXYKK19fWk42d2VicnRjMThjcmVhdGVMb2NhbERlY29k
ZXJFVTEzYmxvY2tfcG9pbnRlckZ2UDEwX19DVkJ1ZmZlcmpqRQorX19aTjZ3ZWJydGMxOXJlbGVh
c2VMb2NhbERlY29kZXJFUHYKK19fWk42d2VicnRjMTFkZWNvZGVGcmFtZUVQdmpQS2htCitfX1pO
NndlYnJ0YzE4UmVtb3RlVmlkZW9EZWNvZGVyMTRkZWNvZGVDb21wbGV0ZUVQdmpQMTBfX0NWQnVm
ZmVyagorX19aTjZ3ZWJydGMyNHNldFZpZGVvRGVjb2RlckNhbGxiYWNrc0VQRlB2UktOU18xNFNk
cFZpZGVvRm9ybWF0RUVQRmlTMF9FUEZpUzBfalBLaG1FUEZpUzBfUzBfRQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggNmVmZmM1YWFiNTkyZjhkYTYyNDY5
Y2RmODFmNDgzNDkyMmRmYzEzYS4uNmE1OGJhMTczYTYxMzIzOTFhYTE3ODIyZDQ2YmMwNzkzNDU0
MWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCkBAIC02
OSw0ICs2OSw0NyBAQCBwcml2YXRlOgogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0Vu
Y29kZXJGYWN0b3J5PiBtX2ludGVybmFsRW5jb2RlckZhY3Rvcnk7CiB9OwogCit1c2luZyBXZWJL
aXRWaWRlb0RlY29kZXIgPSB2b2lkKjsKK3VzaW5nIFZpZGVvRGVjb2RlckNyZWF0ZUNhbGxiYWNr
ID0gV2ViS2l0VmlkZW9EZWNvZGVyKCopKGNvbnN0IFNkcFZpZGVvRm9ybWF0JiBmb3JtYXQpOwor
dXNpbmcgVmlkZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrID0gaW50MzJfdCgqKShXZWJLaXRWaWRl
b0RlY29kZXIpOwordXNpbmcgVmlkZW9EZWNvZGVyRGVjb2RlQ2FsbGJhY2sgPSBpbnQzMl90KCop
KFdlYktpdFZpZGVvRGVjb2RlciwgdWludDMyX3QgdGltZVN0YW1wLCBjb25zdCB1aW50OF90Kiwg
c2l6ZV90IGxlbmd0aCk7Cit1c2luZyBWaWRlb0RlY29kZXJSZWdpc3RlckRlY29kZUNvbXBsZXRl
Q2FsbGJhY2sgPSBpbnQzMl90KCopKFdlYktpdFZpZGVvRGVjb2Rlciwgdm9pZCogZGVjb2RlZElt
YWdlQ2FsbGJhY2spOworCit2b2lkIHNldFZpZGVvRGVjb2RlckNhbGxiYWNrcyhWaWRlb0RlY29k
ZXJDcmVhdGVDYWxsYmFjaywgVmlkZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrLCBWaWRlb0RlY29k
ZXJEZWNvZGVDYWxsYmFjaywgVmlkZW9EZWNvZGVyUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxi
YWNrKTsKKworY2xhc3MgUmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBW
aWRlb0RlY29kZXJGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW1vdGVWaWRlb0Rl
Y29kZXJGYWN0b3J5KHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXJGYWN0b3J5PiYmKTsKKyAg
ICB+UmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeSgpID0gZGVmYXVsdDsKKworcHJpdmF0ZToKKyAg
ICBzdGQ6OnZlY3RvcjxTZHBWaWRlb0Zvcm1hdD4gR2V0U3VwcG9ydGVkRm9ybWF0cygpIGNvbnN0
IGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXI+IENyZWF0ZVZpZGVvRGVj
b2Rlcihjb25zdCBTZHBWaWRlb0Zvcm1hdCYgZm9ybWF0KSBmaW5hbDsKKworICAgIHN0ZDo6dW5p
cXVlX3B0cjxWaWRlb0RlY29kZXJGYWN0b3J5PiBtX2ludGVybmFsRmFjdG9yeTsKK307CisKK2Ns
YXNzIFJlbW90ZVZpZGVvRGVjb2RlciBmaW5hbCA6IHB1YmxpYyB3ZWJydGM6OlZpZGVvRGVjb2Rl
ciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3RlVmlkZW9EZWNvZGVyKFdlYktpdFZpZGVv
RGVjb2Rlcik7CisgICAgflJlbW90ZVZpZGVvRGVjb2RlcigpID0gZGVmYXVsdDsKKworICAgIHN0
YXRpYyB2b2lkIGRlY29kZUNvbXBsZXRlKHZvaWQqIGNhbGxiYWNrLCB1aW50MzJfdCB0aW1lU3Rh
bXAsIENWUGl4ZWxCdWZmZXJSZWYsIHVpbnQzMl90IHRpbWVTdGFtcFJUUCk7CisKK3ByaXZhdGU6
CisgICAgaW50MzJfdCBJbml0RGVjb2RlKGNvbnN0IFZpZGVvQ29kZWMqLCBpbnQzMl90IG51bWJl
cl9vZl9jb3JlcykgZmluYWw7CisgICAgaW50MzJfdCBEZWNvZGUoY29uc3QgRW5jb2RlZEltYWdl
JiwgYm9vbCBtaXNzaW5nX2ZyYW1lcywgaW50NjRfdCByZW5kZXJfdGltZV9tcykgZmluYWw7Cisg
ICAgaW50MzJfdCBSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2soRGVjb2RlZEltYWdlQ2Fs
bGJhY2sqKSBmaW5hbDsKKyAgICBpbnQzMl90IFJlbGVhc2UoKSBmaW5hbDsKKyAgICBjb25zdCBj
aGFyKiBJbXBsZW1lbnRhdGlvbk5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVtb3RlVmlk
ZW9Ub29sQm94IjsgfQorCisgICAgV2ViS2l0VmlkZW9EZWNvZGVyIG1faW50ZXJuYWxEZWNvZGVy
OworfTsKKwordXNpbmcgTG9jYWxEZWNvZGVyID0gdm9pZCo7Cit1c2luZyBMb2NhbERlY29kZXJD
YWxsYmFjayA9IHZvaWQgKF4pKENWUGl4ZWxCdWZmZXJSZWYsIHVpbnQzMl90IHRpbWVTdGFtcCwg
dWludDMyX3QgdGltZVN0YW1wTnMpOwordm9pZCogY3JlYXRlTG9jYWxEZWNvZGVyKExvY2FsRGVj
b2RlckNhbGxiYWNrKTsKK3ZvaWQgcmVsZWFzZUxvY2FsRGVjb2RlcihMb2NhbERlY29kZXIpOwor
aW50MzJfdCBkZWNvZGVGcmFtZShMb2NhbERlY29kZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgY29u
c3QgdWludDhfdCosIHNpemVfdCk7CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLm1tIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMubW0KaW5kZXggMmZlNTdiMjAxMTBiM2U0NTU3ODdmM2U3MjhjOTAyY2U1ZDZk
NDRjMS4uMTIxZWRhOThkOGZmZWIwNmE5ZjMwZGUzODgxMGQ3MDVkNDA2OGIwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9X
ZWJLaXRVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMubW0KQEAgLTI5LDcgKzI5LDEwIEBA
CiAjaW1wb3J0ICJXZWJSVEMvUlRDVmlkZW9Db2RlY0gyNjQuaCIKIAogI2luY2x1ZGUgImFwaS92
aWRlby92aWRlb19mcmFtZS5oIgorI2luY2x1ZGUgImhlbHBlcnMvc2NvcGVkX2NmdHlwZXJlZi5o
IgogI2luY2x1ZGUgIm5hdGl2ZS9zcmMvb2JqY19mcmFtZV9idWZmZXIuaCIKKyNpbmNsdWRlICJy
dGNfYmFzZS90aW1lX3V0aWxzLmgiCisjaW5jbHVkZSAic2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9uYWx1X3Jld3JpdGVyLmgiCiAjaW5jbHVkZSAidGhpcmRfcGFydHkvbGlieXV2L2lu
Y2x1ZGUvbGlieXV2L2NvbnZlcnRfZnJvbS5oIgogI2luY2x1ZGUgIndlYnJ0Yy9ydGNfYmFzZS9j
aGVja3MuaCIKICNpbmNsdWRlICJGcmFtZXdvcmsvSGVhZGVycy9XZWJSVEMvUlRDVmlkZW9Db2Rl
Y0ZhY3RvcnkuaCIKQEAgLTExNiwxMSArMTE5LDYgQEAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6
VmlkZW9FbmNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnkoV2ViS2l0Q28K
ICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxWaWRlb0VuY29kZXJGYWN0b3J5V2l0aFNpbXVs
Y2FzdD4oc3RkOjptb3ZlKGludGVybmFsRmFjdG9yeSkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8
d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShX
ZWJLaXRDb2RlY1N1cHBvcnQgY29kZWNTdXBwb3J0KQotewotICAgIHJldHVybiBPYmpDVG9OYXRp
dmVWaWRlb0RlY29kZXJGYWN0b3J5KGNvZGVjU3VwcG9ydCA9PSBXZWJLaXRDb2RlY1N1cHBvcnQ6
OkgyNjRBbmRWUDggPyBbW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGFsbG9jXSBpbml0
XSA6IFtbUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQgYWxsb2NdIGluaXRdKTsKLX0KLQogc3Rh
dGljIGJvb2wgaDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWQgPSB0cnVlOwogdm9pZCBzZXRIMjY0
SGFyZHdhcmVFbmNvZGVyQWxsb3dlZChib29sIGFsbG93ZWQpCiB7CkBAIC0xNjgsNyArMTY2LDYg
QEAgc3RhdGljIGJvb2wgQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVyKGNvbnN0IHdlYnJ0Yzo6
STQyMEJ1ZmZlckludGVyZmFjZSogZnJhbWUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotCiBDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyRnJvbUZyYW1lKGNvbnN0IFZpZGVvRnJhbWUmIGZyYW1l
LCBjb25zdCBzdGQ6OmZ1bmN0aW9uPENWUGl4ZWxCdWZmZXJSZWYoc2l6ZV90LCBzaXplX3QpPiYg
bWFrZVBpeGVsQnVmZmVyKQogewogICAgIGlmIChmcmFtZS52aWRlb19mcmFtZV9idWZmZXIoKS0+
dHlwZSgpICE9IFZpZGVvRnJhbWVCdWZmZXI6OlR5cGU6OmtOYXRpdmUpIHsKQEAgLTE4OCw0ICsx
ODUsMTE3IEBAIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXJGcm9tRnJhbWUoY29uc3QgVmlk
ZW9GcmFtZSYgZnJhbWUsIGNvbnN0IHN0ZDo6ZnVuY3RpCiAgICAgcmV0dXJuIHJ0Y1BpeGVsQnVm
ZmVyLnBpeGVsQnVmZmVyOwogfQogCitzdHJ1Y3QgVmlkZW9EZWNvZGVyQ2FsbGJhY2tzIHsKKyAg
ICBWaWRlb0RlY29kZXJDcmVhdGVDYWxsYmFjayBjcmVhdGVDYWxsYmFjazsKKyAgICBWaWRlb0Rl
Y29kZXJSZWxlYXNlQ2FsbGJhY2sgcmVsZWFzZUNhbGxiYWNrOworICAgIFZpZGVvRGVjb2RlckRl
Y29kZUNhbGxiYWNrIGRlY29kZUNhbGxiYWNrOworICAgIFZpZGVvRGVjb2RlclJlZ2lzdGVyRGVj
b2RlQ29tcGxldGVDYWxsYmFjayByZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2s7Cit9Owor
CitzdGF0aWMgVmlkZW9EZWNvZGVyQ2FsbGJhY2tzJiB2aWRlb0RlY29kZXJDYWxsYmFja3MoKSB7
CisgICAgc3RhdGljIFZpZGVvRGVjb2RlckNhbGxiYWNrcyBjYWxsYmFja3M7CisgICAgcmV0dXJu
IGNhbGxiYWNrczsKK30KKwordm9pZCBzZXRWaWRlb0RlY29kZXJDYWxsYmFja3MoVmlkZW9EZWNv
ZGVyQ3JlYXRlQ2FsbGJhY2sgY3JlYXRlQ2FsbGJhY2ssIFZpZGVvRGVjb2RlclJlbGVhc2VDYWxs
YmFjayByZWxlYXNlQ2FsbGJhY2ssIFZpZGVvRGVjb2RlckRlY29kZUNhbGxiYWNrIGRlY29kZUNh
bGxiYWNrLCBWaWRlb0RlY29kZXJSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2sgcmVnaXN0
ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKQoreworICAgIGF1dG8mIGNhbGxiYWNrcyA9IHZpZGVv
RGVjb2RlckNhbGxiYWNrcygpOworICAgIGNhbGxiYWNrcy5jcmVhdGVDYWxsYmFjayA9IGNyZWF0
ZUNhbGxiYWNrOworICAgIGNhbGxiYWNrcy5yZWxlYXNlQ2FsbGJhY2sgPSByZWxlYXNlQ2FsbGJh
Y2s7CisgICAgY2FsbGJhY2tzLmRlY29kZUNhbGxiYWNrID0gZGVjb2RlQ2FsbGJhY2s7CisgICAg
Y2FsbGJhY2tzLnJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjayA9IHJlZ2lzdGVyRGVjb2Rl
Q29tcGxldGVDYWxsYmFjazsKK30KKworUmVtb3RlVmlkZW9EZWNvZGVyOjpSZW1vdGVWaWRlb0Rl
Y29kZXIoV2ViS2l0VmlkZW9EZWNvZGVyIGludGVybmFsRGVjb2RlcikKKyAgICA6IG1faW50ZXJu
YWxEZWNvZGVyKGludGVybmFsRGVjb2RlcikKK3sKK30KKwordm9pZCBSZW1vdGVWaWRlb0RlY29k
ZXI6OmRlY29kZUNvbXBsZXRlKHZvaWQqIGNhbGxiYWNrLCB1aW50MzJfdCB0aW1lU3RhbXAsIENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcFJUUCkKK3sKKyAg
ICBhdXRvIHZpZGVvRnJhbWUgPSBWaWRlb0ZyYW1lOjpCdWlsZGVyKCkuc2V0X3ZpZGVvX2ZyYW1l
X2J1ZmZlcihwaXhlbEJ1ZmZlclRvRnJhbWUocGl4ZWxCdWZmZXIpKQorICAgICAgICAuc2V0X3Rp
bWVzdGFtcF9ydHAodGltZVN0YW1wUlRQKQorICAgICAgICAuc2V0X3RpbWVzdGFtcF9tcygwKQor
ICAgICAgICAuc2V0X3JvdGF0aW9uKChWaWRlb1JvdGF0aW9uKVJUQ1ZpZGVvUm90YXRpb25fMCkK
KyAgICAgICAgLmJ1aWxkKCk7CisgICAgdmlkZW9GcmFtZS5zZXRfdGltZXN0YW1wKHRpbWVTdGFt
cCk7CisKKyAgICBzdGF0aWNfY2FzdDxEZWNvZGVkSW1hZ2VDYWxsYmFjayo+KGNhbGxiYWNrKS0+
RGVjb2RlZCh2aWRlb0ZyYW1lKTsKK30KKworaW50MzJfdCBSZW1vdGVWaWRlb0RlY29kZXI6Oklu
aXREZWNvZGUoY29uc3QgVmlkZW9Db2RlYyogY29kZWNfc2V0dGluZ3MsIGludDMyX3QgbnVtYmVy
X29mX2NvcmVzKQoreworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisKK2lu
dDMyX3QgUmVtb3RlVmlkZW9EZWNvZGVyOjpEZWNvZGUoY29uc3QgRW5jb2RlZEltYWdlJiBpbnB1
dF9pbWFnZSwgYm9vbCBtaXNzaW5nX2ZyYW1lcywgaW50NjRfdCByZW5kZXJfdGltZV9tcykKK3sK
KyAgICByZXR1cm4gdmlkZW9EZWNvZGVyQ2FsbGJhY2tzKCkuZGVjb2RlQ2FsbGJhY2sobV9pbnRl
cm5hbERlY29kZXIsIGlucHV0X2ltYWdlLlRpbWVzdGFtcCgpLCBpbnB1dF9pbWFnZS5kYXRhKCks
IGlucHV0X2ltYWdlLnNpemUoKSk7Cit9CisKK2ludDMyX3QgUmVtb3RlVmlkZW9EZWNvZGVyOjpS
ZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2soRGVjb2RlZEltYWdlQ2FsbGJhY2sqIGNhbGxi
YWNrKQoreworICAgIHJldHVybiB2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5yZWdpc3RlckRlY29k
ZUNvbXBsZXRlQ2FsbGJhY2sobV9pbnRlcm5hbERlY29kZXIsIGNhbGxiYWNrKTsKK30KKworaW50
MzJfdCBSZW1vdGVWaWRlb0RlY29kZXI6OlJlbGVhc2UoKQoreworICAgIHJldHVybiB2aWRlb0Rl
Y29kZXJDYWxsYmFja3MoKS5yZWxlYXNlQ2FsbGJhY2sobV9pbnRlcm5hbERlY29kZXIpOworfQor
CitSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5OjpSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5KHN0
ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXJGYWN0b3J5PiYmIGludGVybmFsRmFjdG9yeSkKKyAg
ICA6IG1faW50ZXJuYWxGYWN0b3J5KHN0ZDo6bW92ZShpbnRlcm5hbEZhY3RvcnkpKQoreworfQor
CitzdGQ6OnZlY3RvcjxTZHBWaWRlb0Zvcm1hdD4gUmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeTo6
R2V0U3VwcG9ydGVkRm9ybWF0cygpIGNvbnN0Cit7CisgICAgc3RkOjp2ZWN0b3I8U2RwVmlkZW9G
b3JtYXQ+IHN1cHBvcnRlZF9mb3JtYXRzOworICAgIHN1cHBvcnRlZF9mb3JtYXRzLnB1c2hfYmFj
ayhTZHBWaWRlb0Zvcm1hdCB7ICJIMjY0IiB9KTsKKyAgICBzdXBwb3J0ZWRfZm9ybWF0cy5wdXNo
X2JhY2soU2RwVmlkZW9Gb3JtYXQgeyAiVlA4IiB9KTsKKyAgICByZXR1cm4gc3VwcG9ydGVkX2Zv
cm1hdHM7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXI+IFJlbW90ZVZpZGVvRGVj
b2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcihjb25zdCBTZHBWaWRlb0Zvcm1hdCYgZm9y
bWF0KQoreworICAgIGlmICghdmlkZW9EZWNvZGVyQ2FsbGJhY2tzKCkuY3JlYXRlQ2FsbGJhY2sp
CisgICAgICAgIHJldHVybiBtX2ludGVybmFsRmFjdG9yeS0+Q3JlYXRlVmlkZW9EZWNvZGVyKGZv
cm1hdCk7CisKKyAgICBhdXRvIGlkZW50aWZpZXIgPSB2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5j
cmVhdGVDYWxsYmFjayhmb3JtYXQpOworICAgIGlmICghaWRlbnRpZmllcikKKyAgICAgICAgcmV0
dXJuIG1faW50ZXJuYWxGYWN0b3J5LT5DcmVhdGVWaWRlb0RlY29kZXIoZm9ybWF0KTsKKworICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZVZpZGVvRGVjb2Rlcj4oaWRlbnRpZmllcik7
Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0
ZVdlYktpdERlY29kZXJGYWN0b3J5KFdlYktpdENvZGVjU3VwcG9ydCBjb2RlY1N1cHBvcnQpCit7
CisgICAgYXV0byBpbnRlcm5hbEZhY3RvcnkgPSBPYmpDVG9OYXRpdmVWaWRlb0RlY29kZXJGYWN0
b3J5KGNvZGVjU3VwcG9ydCA9PSBXZWJLaXRDb2RlY1N1cHBvcnQ6OkgyNjRBbmRWUDggPyBbW1JU
Q0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGFsbG9jXSBpbml0XSA6IFtbUlRDVmlkZW9EZWNv
ZGVyRmFjdG9yeUgyNjQgYWxsb2NdIGluaXRdKTsKKyAgICBpZiAodmlkZW9EZWNvZGVyQ2FsbGJh
Y2tzKCkuY3JlYXRlQ2FsbGJhY2spCisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJl
bW90ZVZpZGVvRGVjb2RlckZhY3Rvcnk+KHN0ZDo6bW92ZShpbnRlcm5hbEZhY3RvcnkpKTsKKyAg
ICByZXR1cm4gaW50ZXJuYWxGYWN0b3J5OworfQorCit2b2lkKiBjcmVhdGVMb2NhbERlY29kZXIo
TG9jYWxEZWNvZGVyQ2FsbGJhY2sgY2FsbGJhY2spCit7CisgICAgYXV0byBkZWNvZGVyID0gW1tS
VENWaWRlb0RlY29kZXJIMjY0IGFsbG9jXSBpbml0XTsKKyAgICBbZGVjb2RlciBzZXRDYWxsYmFj
azpeKFJUQ1ZpZGVvRnJhbWUgKmZyYW1lKSB7CisgICAgICAgIGF1dG8gKmJ1ZmZlciA9IChSVEND
VlBpeGVsQnVmZmVyICopZnJhbWUuYnVmZmVyOworICAgICAgICBjYWxsYmFjayhidWZmZXIucGl4
ZWxCdWZmZXIsIGZyYW1lLnRpbWVTdGFtcE5zLCBmcmFtZS50aW1lU3RhbXApOworICAgIH1dOwor
ICAgIHJldHVybiAoX19icmlkZ2VfcmV0YWluZWQgdm9pZCopZGVjb2RlcjsKK30KKwordm9pZCBy
ZWxlYXNlTG9jYWxEZWNvZGVyKExvY2FsRGVjb2RlciBsb2NhbERlY29kZXIpCit7CisgICAgUlRD
VmlkZW9EZWNvZGVySDI2NCogZGVjb2RlciA9IChfX2JyaWRnZV90cmFuc2ZlciBSVENWaWRlb0Rl
Y29kZXJIMjY0ICopKGxvY2FsRGVjb2Rlcik7CisgICAgW2RlY29kZXIgcmVsZWFzZURlY29kZXJd
OworfQorCitpbnQzMl90IGRlY29kZUZyYW1lKExvY2FsRGVjb2RlciBsb2NhbERlY29kZXIsIHVp
bnQzMl90IHRpbWVTdGFtcCwgY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCit7Cisg
ICAgUlRDVmlkZW9EZWNvZGVySDI2NCogZGVjb2RlciA9IChfX2JyaWRnZSBSVENWaWRlb0RlY29k
ZXJIMjY0ICopKGxvY2FsRGVjb2Rlcik7CisgICAgcmV0dXJuIFtkZWNvZGVyIGRlY29kZURhdGE6
IGRhdGEgc2l6ZTogc2l6ZSB0aW1lU3RhbXA6IHRpbWVTdGFtcF07Cit9CisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NC5oIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9SVENWaWRlb0RlY29kZXJIMjY0LmgKaW5kZXggYjEwZDFlNmEwOTkyMGU1MWY1ZjRmNTYz
YjY2ZWViOWU5Y2QxMjE3My4uMjJkY2M4MGQ4YzBkNjgyYWU4MDAxMmRlYzA1YTBmM2VlYzE2ZTI1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY0LmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY0LmgKQEAgLTE2LDQgKzE2LDcg
QEAKIFJUQ19PQkpDX0VYUE9SVAogX19hdHRyaWJ1dGVfXygob2JqY19ydW50aW1lX25hbWUoIldL
X1JUQ1ZpZGVvRGVjb2RlckgyNjQiKSkpCiBAaW50ZXJmYWNlIFJUQ1ZpZGVvRGVjb2RlckgyNjQg
OiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyPgorLSAoTlNJbnRlZ2VyKWRlY29kZURhdGE6KGNv
bnN0IHVpbnQ4X3QgKilkYXRhCisgICAgc2l6ZTooc2l6ZV90KXNpemUKKyAgICB0aW1lU3RhbXA6
KHVpbnQzMl90KXRpbWVTdGFtcDsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDVmlkZW9EZWNvZGVySDI2NC5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVy
SDI2NC5tbQppbmRleCA4ZTJhN2Q5YzkwZjc2NmY5YTdkN2UyNTkwMTUxZjU2Mzc4YzFjZmUyLi40
Y2UwYmM0NWYxZWQ3NmIyNTViNjcyN2Y1MmMyODNiOGYwYmRhOTk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjQubW0KKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENWaWRlb0RlY29kZXJIMjY0Lm1tCkBAIC0xMDIsNiArMTAyLDEzIEBAIHZvaWQgZGVjb21w
cmVzc2lvbk91dHB1dENhbGxiYWNrKHZvaWQgKmRlY29kZXJSZWYsCiAgICAgICAgICByZW5kZXJU
aW1lTXM6KGludDY0X3QpcmVuZGVyVGltZU1zIHsKICAgUlRDX0RDSEVDSyhpbnB1dEltYWdlLmJ1
ZmZlcik7CiAKKyAgcmV0dXJuIFtzZWxmIGRlY29kZURhdGE6ICh1aW50OF90ICopaW5wdXRJbWFn
ZS5idWZmZXIuYnl0ZXMgc2l6ZTogaW5wdXRJbWFnZS5idWZmZXIubGVuZ3RoIHRpbWVTdGFtcDog
aW5wdXRJbWFnZS50aW1lU3RhbXBdOworfQorCistIChOU0ludGVnZXIpZGVjb2RlRGF0YTooY29u
c3QgdWludDhfdCAqKWRhdGEKKyAgICAgICAgc2l6ZTooc2l6ZV90KXNpemUKKyAgICAgICAgdGlt
ZVN0YW1wOih1aW50MzJfdCl0aW1lU3RhbXAgeworCiAgIGlmIChfZXJyb3IgIT0gbm9FcnIpIHsK
ICAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJMYXN0IGZyYW1lIGRlY29kZSBmYWlsZWQuIjsK
ICAgICBfZXJyb3IgPSBub0VycjsKQEAgLTEwOSw4ICsxMTYsNyBAQCB2b2lkIGRlY29tcHJlc3Np
b25PdXRwdXRDYWxsYmFjayh2b2lkICpkZWNvZGVyUmVmLAogICB9CiAKICAgcnRjOjpTY29wZWRD
RlR5cGVSZWY8Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmPiBpbnB1dEZvcm1hdCA9Ci0gICAg
ICBydGM6OlNjb3BlZENGKHdlYnJ0Yzo6Q3JlYXRlVmlkZW9Gb3JtYXREZXNjcmlwdGlvbigodWlu
dDhfdCAqKWlucHV0SW1hZ2UuYnVmZmVyLmJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRJbWFnZS5idWZmZXIubGVuZ3Ro
KSk7CisgICAgICBydGM6OlNjb3BlZENGKHdlYnJ0Yzo6Q3JlYXRlVmlkZW9Gb3JtYXREZXNjcmlw
dGlvbihkYXRhLCBzaXplKSk7CiAgIGlmIChpbnB1dEZvcm1hdCkgewogICAgIC8vIENoZWNrIGlm
IHRoZSB2aWRlbyBmb3JtYXQgaGFzIGNoYW5nZWQsIGFuZCByZWluaXRpYWxpemUgZGVjb2RlciBp
ZgogICAgIC8vIG5lZWRlZC4KQEAgLTEzMiw4ICsxMzgsNyBAQCB2b2lkIGRlY29tcHJlc3Npb25P
dXRwdXRDYWxsYmFjayh2b2lkICpkZWNvZGVyUmVmLAogICAgIHJldHVybiBXRUJSVENfVklERU9f
Q09ERUNfRVJST1I7CiAgIH0KICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVs
bHB0cjsKLSAgaWYgKCF3ZWJydGM6OkgyNjRBbm5leEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVyKCh1
aW50OF90ICopaW5wdXRJbWFnZS5idWZmZXIuYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGgsCisgIGlm
ICghd2VicnRjOjpIMjY0QW5uZXhCQnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcihkYXRhLCBzaXplLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZpZGVvRm9y
bWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNh
bXBsZUJ1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIF9tZW1vcnlQb29sKSkgewpAQCAtMTQyLDE0ICsxNDcsMTQgQEAgdm9pZCBkZWNvbXByZXNz
aW9uT3V0cHV0Q2FsbGJhY2sodm9pZCAqZGVjb2RlclJlZiwKICAgUlRDX0RDSEVDSyhzYW1wbGVC
dWZmZXIpOwogICBWVERlY29kZUZyYW1lRmxhZ3MgZGVjb2RlRmxhZ3MgPSBrVlREZWNvZGVGcmFt
ZV9FbmFibGVBc3luY2hyb25vdXNEZWNvbXByZXNzaW9uOwogICBzdGQ6OnVuaXF1ZV9wdHI8UlRD
RnJhbWVEZWNvZGVQYXJhbXM+IGZyYW1lRGVjb2RlUGFyYW1zOwotICBmcmFtZURlY29kZVBhcmFt
cy5yZXNldChuZXcgUlRDRnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCBpbnB1dEltYWdlLnRp
bWVTdGFtcCkpOworICBmcmFtZURlY29kZVBhcmFtcy5yZXNldChuZXcgUlRDRnJhbWVEZWNvZGVQ
YXJhbXMoX2NhbGxiYWNrLCB0aW1lU3RhbXApKTsKICAgT1NTdGF0dXMgc3RhdHVzID0gVlREZWNv
bXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAogICAgICAgX2RlY29tcHJlc3Npb25TZXNzaW9u
LCBzYW1wbGVCdWZmZXIsIGRlY29kZUZsYWdzLCBmcmFtZURlY29kZVBhcmFtcy5yZWxlYXNlKCks
IG51bGxwdHIpOwogI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKICAgLy8gUmUtaW5pdGlhbGl6ZSB0
aGUgZGVjb2RlciBpZiB3ZSBoYXZlIGFuIGludmFsaWQgc2Vzc2lvbiB3aGlsZSB0aGUgYXBwIGlz
CiAgIC8vIGFjdGl2ZSBhbmQgcmV0cnkgdGhlIGRlY29kZSByZXF1ZXN0LgogICBpZiAoc3RhdHVz
ID09IGtWVEludmFsaWRTZXNzaW9uRXJyICYmIFtzZWxmIHJlc2V0RGVjb21wcmVzc2lvblNlc3Np
b25dID09IFdFQlJUQ19WSURFT19DT0RFQ19PSykgewotICAgIGZyYW1lRGVjb2RlUGFyYW1zLnJl
c2V0KG5ldyBSVENGcmFtZURlY29kZVBhcmFtcyhfY2FsbGJhY2ssIGlucHV0SW1hZ2UudGltZVN0
YW1wKSk7CisgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1lRGVjb2RlUGFy
YW1zKF9jYWxsYmFjaywgdGltZVN0YW1wKSk7CiAgICAgc3RhdHVzID0gVlREZWNvbXByZXNzaW9u
U2Vzc2lvbkRlY29kZUZyYW1lKAogICAgICAgICBfZGVjb21wcmVzc2lvblNlc3Npb24sIHNhbXBs
ZUJ1ZmZlciwgZGVjb2RlRmxhZ3MsIGZyYW1lRGVjb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVsbHB0
cik7CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Jl
bW90ZVZpZGVvU2FtcGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Jl
bW90ZVZpZGVvU2FtcGxlLmNwcAppbmRleCA5M2M5MzA1ZjQyMTAyZDcyNmU3NDFlNTlmMjI2YjVl
ZTQ2ODljMTJhLi45ZmU4MjRiMTg3MzhlYTAwNzg4NGY0MjY1YTFkNTlhNWU0YTUyMTgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBs
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9T
YW1wbGUuY3BwCkBAIC02MSw2ICs2MSwxNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9T
YW1wbGU+IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoTWVkaWFTYW1wbGUmJiBzYW1wbAogICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+KG5ldyBSZW1vdGVWaWRl
b1NhbXBsZShzdXJmYWNlLCBzUkdCQ29sb3JTcGFjZVJlZigpLCBzYW1wbGUucHJlc2VudGF0aW9u
VGltZSgpLCBzYW1wbGUudmlkZW9Sb3RhdGlvbigpLCBzYW1wbGUudmlkZW9NaXJyb3JlZCgpKSk7
CiB9CiAKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1w
bGU6OmNyZWF0ZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBNZWRpYVRpbWUmJiBwcmVz
ZW50YXRpb25UaW1lKQoreworICAgIGF1dG8gc3VyZmFjZSA9IENWUGl4ZWxCdWZmZXJHZXRJT1N1
cmZhY2UoaW1hZ2VCdWZmZXIpOworICAgIGlmICghc3VyZmFjZSkgeworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihNZWRpYSwgIlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGU6IENWUGl4ZWxCdWZm
ZXJHZXRJT1N1cmZhY2UgcmV0dXJuZWQgbnVsbHB0ciIpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICB9CisKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxl
PihuZXcgUmVtb3RlVmlkZW9TYW1wbGUoc3VyZmFjZSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwgV1RG
TW92ZShwcmVzZW50YXRpb25UaW1lKSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUs
IGZhbHNlKSk7Cit9CisKIFJlbW90ZVZpZGVvU2FtcGxlOjpSZW1vdGVWaWRlb1NhbXBsZShJT1N1
cmZhY2VSZWYgc3VyZmFjZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIE1lZGlhVGltZSYm
IHRpbWUsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uLCBib29sIG1pcnJvcmVk
KQogICAgIDogbV9pb1N1cmZhY2UoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tU3VyZmFj
ZShzdXJmYWNlLCBjb2xvclNwYWNlKSkKICAgICAsIG1fcm90YXRpb24ocm90YXRpb24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBs
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUu
aAppbmRleCBmMDJkNGZjYjRhYjkzZDY2YzEzZGEwNDhiMjRhMjgwZDE3M2Y2ZThlLi5iZDI1NWY3
OTQwMDQyNzFlM2FiNGViMjYwMjdlNjRhNzRhOTI4NDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKQEAgLTM2LDYgKzM2
LDggQEAKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKICNlbmRpZgogCit0eXBlZGVmIHN0cnVjdCBf
X0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFJlbW90ZVZpZGVvU2FtcGxlIHsKQEAgLTQ3LDYgKzQ5LDcgQEAgcHVibGljOgogCiAjaWYg
SEFWRShJT1NVUkZBQ0UpCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKE1lZGlhU2FtcGxlJiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IGNyZWF0ZShD
VlBpeGVsQnVmZmVyUmVmLCBNZWRpYVRpbWUmJiBwcmVzZW50YXRpb25UaW1lKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBJT1N1cmZhY2VSZWYgc3VyZmFjZSgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9u
VlQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQuaAppbmRleCAxNmU1NTc2ZGRhMWNkZTYzZjBkN2E1M2Q5YTk1NzU3OTk1MjgxZjAx
Li4zYjc0MzBmZjRjOGZmOGJkMjc0ZmM2YjJlYWQ3Y2U1YmM1YjBlNWRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZU
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVC5oCkBAIC01NSw2ICs1NSwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgUmVmUHRyPE1lZGlhU2FtcGxlPiBjcmVhdGVNZWRpYVNhbXBsZShJT1N1cmZhY2VSZWYsIGNv
bnN0IE1lZGlhVGltZSYsIGNvbnN0IEludFNpemUmLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
biA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lLCBib29sIG1pcnJvcmVkID0gZmFs
c2UpOwogI2VuZGlmCiAKKyNpZiBIQVZFKElPU1VSRkFDRSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFM
WVNUKQorICAgIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVh
dGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VSZWYsIGNvbnN0IEludFNpemUmKTsKKyNlbmRpZgorCiAg
ICAgdWludDMyX3QgcGl4ZWxGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsRm9ybWF0OyB9
CiAKIHByaXZhdGU6CkBAIC02Myw3ICs2Nyw2IEBAIHByaXZhdGU6CiAjaWYgSEFWRShJT1NVUkZB
Q0UpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBDRkRpY3Rpb25hcnlSZWYgaW9TdXJm
YWNlUGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMoSU9TdXJmYWNlUmVmKTsKICAgICBSZXRhaW5Q
dHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUNNU2FtcGxlQnVmZmVyKElPU3VyZmFjZVJlZiwg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgSW50U2l6ZSYpOwotICAgIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VSZWYsIGNvbnN0IEludFNpemUm
KTsKICNlbmRpZgogCiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjb252ZXJ0Q01T
YW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYsIGNvbnN0IEludFNpemUmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IGU0OGRhMTgwODU4MzMzMmVhODUyYzA3
ZjU2ZWIxMjE5NTQ0YmY3MjguLmFmYTI5OGEwYzEyYWZmOTU4ODM4MDBjNWFiZjViZDU0ZWQxOWUx
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMzI4LDYgKzMy
OCwxNSBAQCB2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpzZXRVc2VEVExTMTAoYm9vbCB1c2VEVExT
MTApCiAgICAgbV9mYWN0b3J5LT5TZXRPcHRpb25zKG9wdGlvbnMpOwogfQogCit2b2lkIExpYldl
YlJUQ1Byb3ZpZGVyOjpzZXRVc2VHUFVQcm9jZXNzKGJvb2wgdmFsdWUpCit7CisgICAgaWYgKG1f
dXNlR1BVUHJvY2VzcyA9PSB2YWx1ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV91c2VHUFVQ
cm9jZXNzID0gdmFsdWU7CisgICAgbV9mYWN0b3J5ID0gbnVsbHB0cjsKK30KKwogcnRjOjpzY29w
ZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IExpYldlYlJUQ1Byb3Zp
ZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXIm
IG9ic2VydmVyLCBydGM6Ok5ldHdvcmtNYW5hZ2VyJiBuZXR3b3JrTWFuYWdlciwgcnRjOjpQYWNr
ZXRTb2NrZXRGYWN0b3J5JiBwYWNrZXRTb2NrZXRGYWN0b3J5LCB3ZWJydGM6OlBlZXJDb25uZWN0
aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbiwgc3RkOjp1bmlx
dWVfcHRyPHdlYnJ0Yzo6QXN5bmNSZXNvbHZlckZhY3Rvcnk+JiYgYXN5bmNSZXNvbHZlRmFjdG9y
eSkKIHsKICAgICBhdXRvJiBmYWN0b3J5QW5kVGhyZWFkcyA9IGdldFN0YXRpY0ZhY3RvcnlBbmRU
aHJlYWRzKG1fdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBlOGY5OWM3Njg0ODFhNWI1MDM0Y2JjMzVmZGEwMzBm
ZjBlOTMzYjFlLi42Nzg1OWI1MzNlMjI2MWEyZmQxM2IwZGVmY2NkOTFiZmI1ZWYxOTdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtMTE5LDYgKzExOSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEVuYWJsZUxvZ2dpbmcoYm9vbCk7CiAgICAgdm9pZCBzZXRFbmFibGVX
ZWJSVENFbmNyeXB0aW9uKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlRFRMUzEwKGJvb2wpOworICAg
IHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhib29sKTsKIAogICAgIGNsYXNzIFN1c3BlbmRhYmxlU29j
a2V0RmFjdG9yeSA6IHB1YmxpYyBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkgewogICAgIHB1Ymxp
YzoKQEAgLTE0Niw2ICsxNDcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX3N1cHBvcnRzVlA4
IHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlTG9nZ2luZyB7IHRydWUgfTsKICAgICBib29s
IG1fdXNlRFRMUzEwIHsgZmFsc2UgfTsKKyAgICBib29sIG1fdXNlR1BVUHJvY2VzcyB7IGZhbHNl
IH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2Nv
YS5oCmluZGV4IGQzYzM4Mzk1YzA3N2YzNDYwNGI1YmIwZjRiNDNhZTExMDBjZGYyMzMuLjIzOWUz
NGE2ODViNDEwYmM5MzhjMTQ5MTVlOTdjZjE4MmUwN2VlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNv
Y29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuaApAQCAtNDEsOSArNDEsMTAgQEAgcHVibGljOgogICAg
IExpYldlYlJUQ1Byb3ZpZGVyQ29jb2EoKSA9IGRlZmF1bHQ7CiAgICAgfkxpYldlYlJUQ1Byb3Zp
ZGVyQ29jb2EoKTsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZh
Y3Rvcnk+IGNyZWF0ZURlY29kZXJGYWN0b3J5KCkgb3ZlcnJpZGU7CisKIHByaXZhdGU6CiAgICAg
dm9pZCBzZXRBY3RpdmUoYm9vbCkgZmluYWw7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6
VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlRGVjb2RlckZhY3RvcnkoKSBmaW5hbDsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXJGYWN0b3J5PiBjcmVhdGVFbmNvZGVy
RmFjdG9yeSgpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRIMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dl
ZChib29sIGFsbG93ZWQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmlu
ZGV4IDdkZmNhMWExNjJhMTI3MDEzMmU5NmIyMmFhNWI2MDA1NjM4Njc3ZjAuLmM3NThkZDYwOWU3
ZDg0YTYwMmY0OGYxMjIwZTFjZTY3NjE4ZGFiNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKQEAgLTUzOCw2ICs1MzgsNyBAQCB2b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogICAgIHJ0Y1Byb3ZpZGVyLmRpc2FibGVOb25Mb2NhbGhv
c3RDb25uZWN0aW9ucygpOwogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2V0V2ViUlRDVlA4Q29kZWNFbmFibGVkKHRydWUpOwogICAgIHBhZ2Uuc2V0dGluZ3Mo
KS5zZXRXZWJSVENFbmNyeXB0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICBydGNQcm92aWRlci5zZXRV
c2VHUFVQcm9jZXNzKGZhbHNlKTsKICNlbmRpZgogCiAgICAgcGFnZS5zZXR0aW5ncygpLnNldFN0
b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGZhbHNlKTsKQEAgLTE1NTEsNiArMTU1MiwxNSBAQCB2b2lk
IEludGVybmFsczo6c2V0VXNlRFRMUzEwKGJvb2wgdXNlRFRMUzEwKQogI2VuZGlmCiB9CiAKK3Zv
aWQgSW50ZXJuYWxzOjpzZXRVc2VHUFVQcm9jZXNzRm9yV2ViUlRDKGJvb2wgdXNlR1BVUHJvY2Vz
cykKK3sKKyNpZiBVU0UoTElCV0VCUlRDKQorICAgIGF1dG8qIGRvY3VtZW50ID0gY29udGV4dERv
Y3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIGRvY3VtZW50LT5wYWdlKCktPmxpYldlYlJUQ1Byb3ZpZGVyKCkuc2V0
VXNlR1BVUHJvY2Vzcyh1c2VHUFVQcm9jZXNzKTsKKyNlbmRpZgorfQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMzRh
NTY1NWM2MTg5NDMyOTkxYTYyYjk1OTM3MTEwMjI5YjY5NmEzYS4uZjM0Njc1NGRiZjM4NzYxNTE4
YWI2YTBiMzhkZGQ5OGViY2RiNWE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBA
IC01NTksNiArNTU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlSb3RhdGlvbkZvck91dGdv
aW5nVmlkZW9Tb3VyY2VzKFJUQ1BlZXJDb25uZWN0aW9uJik7CiAgICAgdm9pZCBzZXRFbmFibGVX
ZWJSVENFbmNyeXB0aW9uKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlRFRMUzEwKGJvb2wpOworICAg
IHZvaWQgc2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhib29sKTsKICNlbmRpZgogCiAgICAgU3Ry
aW5nIGdldEltYWdlU291cmNlVVJMKEVsZW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAppbmRleCA3ZGJhOWVlYjIwZWE2NjJmNGUxODE4MWJmOTVmMmI2Mjk2NjNiOWIxLi45
OGNkNGIwMzEwZjFlYmIzZjM2MDYxZDg3ZTExN2I2NTg2OWUwOWY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCkBAIC02MzIsNiArNjMyLDcgQEAgZW51bSBDb21wb3NpdGluZ1Bv
bGljeSB7CiAgICAgW0NvbmRpdGlvbmFsPVdFQl9SVENdIHZvaWQgY2xlYXJQZWVyQ29ubmVjdGlv
bkZhY3RvcnkoKTsKICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10gdm9pZCBzZXRFbmFibGVXZWJS
VENFbmNyeXB0aW9uKGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgW0NvbmRpdGlvbmFsPVdFQl9SVENd
IHZvaWQgc2V0VXNlRFRMUzEwKGJvb2xlYW4gdXNlKTsKKyAgICBbQ29uZGl0aW9uYWw9V0VCX1JU
Q10gdm9pZCBzZXRVc2VHUFVQcm9jZXNzRm9yV2ViUlRDKGJvb2xlYW4gdXNlKTsKIAogICAgIFtD
b25kaXRpb25hbD1WSURFT10gdm9pZCBzaW11bGF0ZVN5c3RlbVNsZWVwKCk7CiAgICAgW0NvbmRp
dGlvbmFsPVZJREVPXSB2b2lkIHNpbXVsYXRlU3lzdGVtV2FrZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRleCA3NDg5NjdlMjUxZWE5ZWIzYWQ0
YjljODZjYzM4Y2E5MDgwZmU5ZGE5Li42YjhlYjU1OTdlMzFiYjk0NGIxYjZmZjFkNDI2Njg3OGZk
ZmU0MzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZp
ZwpAQCAtMTM4LDcgKzEzOCw3IEBAIExJQldFQlJUQ19MSUJSQVJZX0RJUl9DT0NPQV9UT1VDSF9O
TyA9ICQoTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklERV9GUkFNCiBMSUJXRUJSVENf
TElCUkFSWV9ESVJfVVNFX09WRVJSSURFX0ZSQU1FV09SS1NfRElSX05PID0gJChXRUJDT1JFX0ZS
QU1FV09SS1NfRElSKS9XZWJDb3JlLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3M7CiBM
SUJXRUJSVENfTElCUkFSWV9ESVJfVVNFX09WRVJSSURFX0ZSQU1FV09SS1NfRElSX1lFUyA9ICQo
V0tfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVIpOwogCi1PVEhFUl9MREZMQUdTID0gJChpbmhlcml0
ZWQpIC1pZnJhbWV3b3JrIiQoU0RLX0RJUikkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJpdmF0ZUZy
YW1ld29ya3MiICQoVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUykgJChBU0FOX09USEVSX0xERkxB
R1MpICQoRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MpICQoV0tfUkVMT0NBVEFCTEVfRlJB
TUVXT1JLX0xERkxBR1MpOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtaWZyYW1ld29y
ayIkKFNES19ESVIpJChTWVNURU1fTElCUkFSWV9ESVIpL1ByaXZhdGVGcmFtZXdvcmtzIiAkKFVO
RVhQT1JURURfU1lNQk9MX0xERkxBR1MpICQoQVNBTl9PVEhFUl9MREZMQUdTKSAkKEZSQU1FV09S
S19BTkRfTElCUkFSWV9MREZMQUdTKSAkKFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdT
KSAgIC1YbGlua2VyIC0tbm8tZGVtYW5nbGU7CiAKIFJFRVhQT1JURURfRlJBTUVXT1JLX05BTUVT
ID0gV2ViS2l0TGVnYWN5OwogUkVFWFBPUlRFRF9GUkFNRVdPUktfTkFNRVNbc2RrPW1hY29zeCpd
ID0gJChpbmhlcml0ZWQpIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMDdkMzMwNWI4MjM5NzJlNzg3ZmZlZTdkYjgwZTExNGQy
MjUxMTI2Ni4uZjM3ZjNiZDFmMWZkNGI4MjdhYTg5YTMzMTQxNDkyMGQ3YTExM2FjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTcsNiAr
MTcsNyBAQCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5H
UFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9j
ZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCkBAIC05OSw2ICsxMDAsOCBAQCAk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLm1lc3NhZ2VzLgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9GdWxsU2Ny
ZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2Vi
UlRDUmVtb3RlQ29kZWNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dl
b2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1l
c3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCA5ODY5Y2YxNzE2MWZlZDk0NDkyYjJlYjY3NmEzMDk2MTE3Y2U2NTJmLi43MGFl
YjdiM2VmNmUwZTFjNTM1MDM1MzNhYjI5MDgwYmI4YWM3N2FjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTQ4LDYgKzQ4LDE1IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL0xlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlck1lc3NhZ2VzCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL0xlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvTGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGliV2ViUlRDQ29kZWNzTWVzc2FnZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGliV2ViUlRD
Q29kZWNzTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL0xpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGliV2ViUlRDQ29kZWNz
UHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9MaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MaWJXZWJSVENSZW1vdGVDb2RlY3NNZXNz
YWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9MaWJXZWJSVENSZW1vdGVDb2RlY3NNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MaWJXZWJSVENSZW1vdGVDb2RlY3NNZXNzYWdlc1Jl
cGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3Nh
Z2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL05QT2Jq
ZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCAxN2JkY2I1ZjJkYWFhOWJiMWI2YWY0ZDc0YWI1OGU1MDRhODEyMTgzLi4zODUw
Mjc3NDMyZTE4OTNlNjRjZDIzMTk0MDI0ZjdjYmRkNzcwZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC0yNSw2ICsyNSw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvR1BV
UHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9HUFVQcm9jZXNzL21hYyBcCiAgICAgJChXZWJLaXQy
KS9HUFVQcm9jZXNzL21lZGlhIFwKKyAgICAkKFdlYktpdDIpL0dQVVByb2Nlc3Mvd2VicnRjIFwK
ICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL05ldHdvcmtQ
cm9jZXNzL0Nvb2tpZXMgXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3MvY2FjaGUgXApA
QCAtNTEsNiArNTIsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvR2Vv
bG9jYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HUFUgXAogICAgICQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEgXAorICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIFwKICAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtIFwKQEAgLTEwOSwxMiArMTExLDE0IEBAIE1FU1NBR0VfUkVDRUlWRVJT
ID0gXAogICAgIERyYXdpbmdBcmVhUHJveHkgXAogICAgIEVkaXRhYmxlSW1hZ2VDb250cm9sbGVy
IFwKICAgICBFdmVudERpc3BhdGNoZXIgXAotICAgIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
ciBcCi0gICAgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgXAogICAgIEdQVVByb2Nl
c3MgXAogICAgIEdQVVByb2Nlc3NQcm94eSBcCiAgICAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gXAog
ICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgXAorICAgIExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlciBcCisgICAgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgXAorICAgIExp
YldlYlJUQ0NvZGVjcyBcCisgICAgTGliV2ViUlRDQ29kZWNzUHJveHkgXAogICAgIE5QT2JqZWN0
TWVzc2FnZVJlY2VpdmVyIFwKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBcCiAg
ICAgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGQwMTll
NzE1YTZjNjgyZWM2YTQyNWI1ZTM5Mzk3MGVhMmM3OGQ2NWQuLmU5NjgwMjYwNmE0ZGQxMzI0YmEy
OWUwZTBlNzY2Mzc5YTM2MTgzYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTMzLDYgKzMzLDggQEAKICNp
bmNsdWRlICJHUFVQcm9jZXNzLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc01lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiR1BVUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJMaWJXZWJSVEND
b2RlY3NQcm94eS5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkuaCIKQEAgLTExNiw2ICsxMTgsMTYgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKIH0KICNl
bmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCitMaWJXZWJSVEND
b2RlY3NQcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bGliV2ViUlRDQ29kZWNzUHJv
eHkoKQoreworICAgIGlmICghbV9saWJXZWJSVENDb2RlY3NQcm94eSkKKyAgICAgICAgbV9saWJX
ZWJSVENDb2RlY3NQcm94eSA9IG1ha2VVbmlxdWU8TGliV2ViUlRDQ29kZWNzUHJveHk+KCp0aGlz
KTsKKworICAgIHJldHVybiAqbV9saWJXZWJSVENDb2RlY3NQcm94eTsKK30KKyNlbmRpZgorCiB2
b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMTI4LDYgKzE0MCwx
MiBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSQogICAgICAgICByZXR1cm47CiAgICAgfQogI2Vu
ZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCisgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGxpYldlYlJUQ0NvZGVjc1Byb3h5
KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mIHJlcGx5RW5jb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGM0MDY4NWYxNjdkNTQwYmU1ZWE3NGU2ODNh
ZDA5NzM4YjlkYWFkOWYuLmQzM2UzZjk3OWM2Njk3ZGEzMDRhZGNhY2I2ZTY0NGFlNGEzNTkzZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaApAQCAtMzcsNiArMzcsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IEdQVVByb2Nlc3M7CitjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eTsKIGNsYXNzIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTsKIApAQCAtNTksNiArNjAsOSBAQCBwcml2YXRlOgogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoR1BVUHJvY2VzcyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIpOwogCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkm
IHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCk7CisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IFVTRShMSUJXRUJSVEMpCisgICAgTGliV2ViUlRDQ29kZWNzUHJveHkmIGxpYldlYlJUQ0NvZGVj
c1Byb3h5KCk7CisjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5JiB1c2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5KCk7CiAjZW5kaWYKQEAgLTc2LDYgKzgwLDkgQEAgcHJpdmF0ZToKICNpZiBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4gbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OwogI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCisg
ICAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVjc1Byb3h5PiBtX2xpYldlYlJUQ0NvZGVj
c1Byb3h5OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mOTg4MDM5N2VmODEwOWJjZmZjNTJiN2RiODc1NzFmNjQ2YmM0NzhmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3NQcm94eS5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSVENEZWNv
ZGVySWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Citj
bGFzcyBEZWNvZGVyOworY2xhc3MgRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIHdlYnJ0
YyB7Cit1c2luZyBMb2NhbERlY29kZXIgPSB2b2lkKjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisKK2NsYXNzIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5IDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTGliV2ViUlRDQ29kZWNzUHJv
eHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOworICAgIH5MaWJXZWJSVENDb2RlY3NQcm94
eSgpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlRGVjb2RlcihSVENEZWNv
ZGVySWRlbnRpZmllcik7CisgICAgdm9pZCByZWxlYXNlRGVjb2RlcihSVENEZWNvZGVySWRlbnRp
Zmllcik7CisgICAgdm9pZCBkZWNvZGVGcmFtZShSVENEZWNvZGVySWRlbnRpZmllciwgdWludDMy
X3QgdGltZVN0YW1wLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKKworICAgIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBIYXNo
TWFwPFJUQ0RlY29kZXJJZGVudGlmaWVyLCB3ZWJydGM6OkxvY2FsRGVjb2Rlcj4gbV9kZWNvZGVy
czsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jN2ExMzM0ZGNkMGQzYWExZGI5ZDUwMTU1NGYxYTMwOWNjNjU3MjcwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMyIEBACisjIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjaWYgVVNFKExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gTGliV2ViUlRDQ29kZWNzUHJv
eHkgTm90UmVmQ291bnRlZCB7CisgICAgQ3JlYXRlRGVjb2RlcihXZWJLaXQ6OlJUQ0RlY29kZXJJ
ZGVudGlmaWVyIGlkKQorICAgIFJlbGVhc2VEZWNvZGVyKFdlYktpdDo6UlRDRGVjb2RlcklkZW50
aWZpZXIgaWQpCisgICAgRGVjb2RlRnJhbWUoV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmllciBp
ZCwgdWludDMyX3QgdGltZVN0YW1wLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3NQcm94eS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYWZhYjZhZjhkN2YwM2I3MjQyM2JiM2Y5MDJk
N2VkYTFlNmE2MDYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAtMCwwICsxLDgyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1Byb3h5
LmgiCisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9MaWJX
ZWJSVENNYWNyb3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+Cisj
aW5jbHVkZSA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8
d3RmL01lZGlhVGltZS5oPgorCisjaWYgVVNFKExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0xpYldlYlJU
Q0NvZGVjc1Byb3h5OjpMaWJXZWJSVENDb2RlY3NQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBjb25uZWN0aW9uKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5l
Y3Rpb24pCit7Cit9CisKK0xpYldlYlJUQ0NvZGVjc1Byb3h5Ojp+TGliV2ViUlRDQ29kZWNzUHJv
eHkoKQoreworICAgIGZvciAoYXV0byBkZWNvZGVyIDogbV9kZWNvZGVycy52YWx1ZXMoKSkKKyAg
ICAgICAgd2VicnRjOjpyZWxlYXNlTG9jYWxEZWNvZGVyKGRlY29kZXIpOworfQorCit2b2lkIExp
YldlYlJUQ0NvZGVjc1Byb3h5OjpjcmVhdGVEZWNvZGVyKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFtX2RlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIp
KTsKKyAgICBtX2RlY29kZXJzLmFkZChpZGVudGlmaWVyLCB3ZWJydGM6OmNyZWF0ZUxvY2FsRGVj
b2RlciheKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5z
LCB1aW50MzJfdCB0aW1lU3RhbXApIHsKKyAgICAgICAgaWYgKGF1dG8gc2FtcGxlID0gV2ViQ29y
ZTo6UmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlciwgTWVkaWFUaW1lKHRpbWVT
dGFtcE5zLCAxKSkpCisgICAgICAgICAgICBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6Q29tcGxldGVkRGVjb2Rp
bmcgeyBpZGVudGlmaWVyLCB0aW1lU3RhbXAsICpzYW1wbGUgfSwgMCk7CisgICAgfSkpOworfQor
Cit2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpyZWxlYXNlRGVjb2RlcihSVENEZWNvZGVySWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIEFTU0VSVChtX2RlY29kZXJzLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKKyAgICBpZiAoYXV0byBkZWNvZGVyID0gbV9kZWNvZGVycy50YWtlKGlkZW50
aWZpZXIpKQorICAgICAgICB3ZWJydGM6OnJlbGVhc2VMb2NhbERlY29kZXIoZGVjb2Rlcik7Cit9
CisKK3ZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmRlY29kZUZyYW1lKFJUQ0RlY29kZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiBkYXRhKQoreworICAgIEFTU0VSVChtX2RlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKKyAgICBhdXRvIGRlY29kZXIgPSBtX2RlY29kZXJzLmdldChpZGVudGlmaWVyKTsKKyAg
ICBpZiAoIWRlY29kZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh3ZWJydGM6OmRlY29k
ZUZyYW1lKGRlY29kZXIsIHRpbWVTdGFtcCwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKSkKKyAg
ICAgICAgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpMaWJXZWJSVENDb2RlY3M6OkZhaWxlZERlY29kaW5nIHsgaWRlbnRpZmllciB9LCAwKTsK
K30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CmluZGV4IGYyZTllZDdhYjU0MDJlZjUxMTg4ZjdlOGRiZTM5NmJhOGFjZTBmYWQuLjc1M2VhOTdl
MmZiMzEyYWZhYTc3NWZmZWNmZjk2NmI3YmQ5NTJkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjIwLDYgKzIyMCw3IEBAIGRlZiB0eXBlc190aGF0X2Nh
bm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3Rh
dGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRCcsCiAg
ICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXInLAorICAg
ICAgICAnV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlN0
b3JhZ2VBcmVhSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElk
ZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcics
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAppbmRleCAxOTE2ZGIzZDY1YjY1ZWNkYzVlMDBlYTdlYzAxZWZkYzY1NjYxMGZm
Li5hY2Y0OWM3MWM3NjQzMDM0MGIxYTU1ZmQ0NGVlZTE0NTJiNDU4YjM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
QEAgLTUwNCwxMiArNTA0LDEzIEBAIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
Y3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCitX
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAogCiBXZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlSW50ZXJj
ZXB0Q29udHJvbGxlci5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5j
cHAKLVdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAorV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dFByb3ZpZGVyLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dAppbmRleCBhNGFhNTVlMmFhMTlhMTQ2NjI1NGJiZjFiYmM3MjI4OTli
NmM2Mjc4Li5jNzEzYmFlMzg4N2FjZWY3OWQ0MzllOTAxZWE3YTgyODU2MDRiOWQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CkBAIC02MSw2ICs2MSw3IEBAIEdQVVByb2Nlc3MvaW9zL0dQVVByb2Nl
c3NJT1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMubW0KIEdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCitHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5tbQogR1BVUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvR1BVU2Vy
dmljZUVudHJ5UG9pbnQubW0KIAogUGxhdGZvcm0vY2YvTW9kdWxlQ0YuY3BwCkBAIC02MzMsNyAr
NjM0LDcgQEAgRWRpdGFibGVJbWFnZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vzc1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKLS8vUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAotLy9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKK0xpYldlYlJUQ0NvZGVjc1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAorTGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAog
U2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKIFRleHRDaGVja2luZ0Nv
bnRyb2xsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUzYjkxOTIwYzliOGEzZjM2YTBiZDE0
OGNhODU4ZGJkZGNiM2EwODcuLjdhMmU4MWU0MjFlNGM4NDVkMDU3ZmVkZGU3ZmNmYWY3MmU1ZGU4
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtOTE2LDYgKzkxNiw3IEBACiAJCTQxREM0NTlDMUUzREJCMjgwMEIxMUY1MSAvKiBMaWJX
ZWJSVENTb2NrZXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxREM0NTlBMUUzREJCMjQwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRDbGll
bnQuaCAqLzsgfTsKIAkJNDFEQzQ1OUYxRTNEQkRBNTAwQjExRjUxIC8qIFdlYlJUQ1NvY2tldC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjMx
RTNCRkU3RjAwMUFFNjc4IC8qIFdlYlJUQ1NvY2tldC5oICovOyB9OwogCQk0MURFN0M2QzIyMjc4
RjFFMDA1MzJCNjUgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYg
LyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgKi87IH07CisJCTQxRTBBN0NCMjNCNjQ1Q0Qw
MDU2MTA2MCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzkxNUFDMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2Nr
ZXRDaGFubmVsLmNwcCAqLzsgfTsKIAkJNDFGMDYwRTExNjU0MzE4NTAwRjMyODFDIC8qIFdlYlNv
Y2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tl
dENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk0MUZBQkQyQTFGNERFMDAxMDA2
QTZDOTcgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFCRDI4MUY0RERGREMwMDZBNkM5NyAvKiBDYWNo
ZVN0b3JhZ2VFbmdpbmVDYWNoZS5oICovOyB9OwogCQk0MUZBRjVGNTFFM0MwNjQ5MDAxQUU2Nzgg
LyogV2ViUlRDUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxRkFGNUY0MUUzQzA2NDEwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oICov
OyB9OwpAQCAtMzI5MSw2ICszMjkyLDEwIEBACiAJCTQxNTFFNUMzMUZCQjkwQTkwMEU0N0UyRCAv
KiBGb3JtRGF0YVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
b3JtRGF0YVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU3ODUz
MDIxMjc2QjZGMDBERDM4MDAgLyogY29weS13ZWJjb250ZW50LXJlc291cmNlcy10by1wcml2YXRl
LWhlYWRlcnMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJjb3B5LXdlYmNvbnRlbnQtcmVzb3VyY2VzLXRv
LXByaXZhdGUtaGVhZGVycy5zaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdF
NEFGMjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2IgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTcyMTk4OTIzQjYxMjgyMDBBRTU2ODYgLyogTGli
V2ViUlRDQ29kZWNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpYldlYlJU
Q0NvZGVjcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTcyMTk4QTIzQjYxMjgy
MDBBRTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IExpYldlYlJUQ0NvZGVjcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxNzIxOThDMjNCNjEyRTgwMEFFNTY4NiAvKiBSVENEZWNvZGVySWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEZWNvZGVySWRlbnRpZmllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTcyMTk4RDIzQjYyQzdDMDBBRTU2ODYg
LyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpYldlYlJUQ0NvZGVjcy5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3NjkwMTMyMkZERDQxQjAw
QjE1NzZEIC8qIE5ldHdvcmtSVENQcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE5ldHdvcmtSVENQcm92aWRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE3OTE1QUMyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5l
bC5jcHA7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTc5MTVBRDIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hh
bm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVs
Lmg7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTMzMzIsNiArMzMzNyw5IEBACiAJCTQxREM0NTlBMUUzREJCMjQwMEIxMUY1
MSAvKiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGliV2ViUlRDU29ja2V0Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxREM0NTlEMUUzREJDRjAwMEIxMUY1MSAvKiBXZWJSVENTb2NrZXQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViUlRDU29ja2V0LmNwcDsgcGF0aCA9IE5l
dHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxREM0NUEwMUUzREM1M0MwMEIxMUY1MSAvKiBXZWJSVENSZXNvbHZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJSVENSZXNvbHZlci5jcHA7IHBhdGgg
PSBOZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxRTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMaWJXZWJSVENDb2RlY3NQcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29k
ZWNzUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRTBBN0M4MjNCNjM5NzkwMDU2MTA2
MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExpYldl
YlJUQ0NvZGVjc1Byb3h5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUYwNjBE
RDE2NTQzMTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcDsg
cGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTQxRkFCRDI4
MUY0RERGREMwMDZBNkM5NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZBRjVGMzFFM0JGRTdGMDAxQUU2NzggLyogV2ViUlRD
U29ja2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlJUQ1NvY2tldC5o
OyBwYXRoID0gTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02MzI3LDYgKzYzMzUsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKIAkJCQkwNzkyMzEyRjIzOUIzQjBDMDA5NTk4RTIgLyogbWVkaWEgKi8sCisJ
CQkJNDE3MjE5ODgyM0I2MTI2MTAwQUU1Njg2IC8qIHdlYnJ0YyAqLywKIAkJCQkyRDdFNDNDMDIz
NzUyQ0Q5MDBFQTVDQTAgLyogR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAogCQkJCTJEN0U0
M0MzMjM3NTJDRDkwMEVBNUNBMCAvKiBHUFVQcm9jZXNzQ29ubmVjdGlvbi5oICovLAogCQkJCTJE
N0U0M0MyMjM3NTJDRDkwMEVBNUNBMCAvKiBHUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biAqLywKQEAgLTYzNDIsNiArNjM1MSw3IEBACiAJCQkJMkQ5RkIyMDQyMzc1MjA5RDAwNDlGOTM2
IC8qIGlvcyAqLywKIAkJCQkyRDlGQjIwNjIzNzUyMDlEMDA0OUY5MzYgLyogbWFjICovLAogCQkJ
CTA3Qzc1QzE3MjM5OUEzREIwMDg4RTY1QiAvKiBtZWRpYSAqLywKKwkJCQk0MTcyMTk4RTIzQjYz
M0NBMDBBRTU2ODYgLyogd2VicnRjICovLAogCQkJCTJEOUZCMjBDMjM3NTIwOUQwMDQ5RjkzNiAv
KiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLywKIAkJCQkyRDlGQjIwMDIzNzUyMDlE
MDA0OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovLAogCQkJCTJEOUZCMjA5
MjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
ICovLApAQCAtNzA2Myw2ICs3MDczLDI3IEBACiAJCQluYW1lID0gd2VicnRjOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNDE3MjE5ODgyM0I2MTI2MTAwQUU1Njg2IC8qIHdl
YnJ0YyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNDE3
MjE5OEEyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5jcHAgKi8sCisJCQkJNDE3
MjE5ODkyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5oICovLAorCQkJCTQxNzIx
OThEMjNCNjJDN0MwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4gKi8sCisJ
CQkJNDE3MjE5OEMyM0I2MTJFODAwQUU1Njg2IC8qIFJUQ0RlY29kZXJJZGVudGlmaWVyLmggKi8s
CisJCQkpOworCQkJcGF0aCA9IHdlYnJ0YzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CisJCTQxNzIxOThFMjNCNjMzQ0EwMEFFNTY4NiAvKiB3ZWJydGMgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQxRTBBN0M2MjNCNjM5NzgwMDU2MTA2
MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5oICovLAorCQkJCTQxRTBBN0M3MjNCNjM5NzkwMDU2
MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQk0MUUwQTdD
ODIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkubW0gKi8sCisJCQkpOwor
CQkJcGF0aCA9IHdlYnJ0YzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTQx
RDEyOUQ4MUYzRDEwMTQwMEQxNUU0NyAvKiBDYWNoZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xMjA5OSw2ICsxMjEzMCw3IEBACiAJCQkJNTFGMDYwRTEx
NjU0MzE4NTAwRjMyODFGIC8qIFdlYlJUQ01vbml0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODJDIC8qIFdlYlJUQ1Jlc29sdmVy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUw
MEYzMjgxQyAvKiBXZWJSVENTb2NrZXRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNDFFMEE3Q0IyM0I2NDVDRDAwNTYxMDYwIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDFGMDYwRTExNjU0MzE4NTAwRjMyODFDIC8qIFdlYlNvY2tldENo
YW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMwQjE3NzkxRTdD
ODgyMTAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0MTI4N0Q0RTIyNUQxRUNCMDA5QTNFMjYgLyogV2ViU29ja2V0VGFza0Nv
Y29hLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGU4ZGFhZTBmOWJhODVhMjUxYjcw
NjdkZTM4Y2E0YTc2OTc0MjE1ODAuLjY0YTRiNGY3ZGVjYTM4NmI1Mjc1OWFmYjQ3NmNlZjlmODhk
ZjgyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJEYXRhUmVm
ZXJlbmNlLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzLmgiCisjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNz
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCkBAIC03NSw2ICs3NywxMiBAQCB2b2lkIEdQVVByb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RAogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCisjaWYgVVNFKExJQldFQlJU
QykgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkg
eworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIyNzFkOGVmOWNjY2E0MWQ4OWZmODBiNTYyMWNmMDdiMjdmNzcyZmIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuY3BwCkBAIC0wLDAgKzEsMTcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjcy5oIgorCisjaWYgVVNFKExJQldFQlJUQykg
JiYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkdQ
VVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CisjaW5jbHVkZSA8cGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmg+CisjaW5jbHVkZSA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRp
bGl0aWVzLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3N0YXRpYyB3ZWJydGM6OldlYktpdFZpZGVvRGVjb2RlciBjcmVhdGVWaWRlb0RlY29k
ZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYgZm9ybWF0KQoreworICAgIGlmIChmb3Jt
YXQubmFtZSAhPSAiSDI2NCIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJu
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ0NvZGVjcygpLmNyZWF0ZURlY29kZXIo
KTsKK30KKworc3RhdGljIGludDMyX3QgcmVsZWFzZVZpZGVvRGVjb2Rlcih3ZWJydGM6OldlYktp
dFZpZGVvRGVjb2RlciBkZWNvZGVyKQoreworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5saWJXZWJSVENDb2RlY3MoKS5yZWxlYXNlRGVjb2Rlcigqc3RhdGljX2Nhc3Q8TGliV2Vi
UlRDQ29kZWNzOjpEZWNvZGVyKj4oZGVjb2RlcikpOworfQorCitzdGF0aWMgaW50MzJfdCBkZWNv
ZGVWaWRlb0ZyYW1lKHdlYnJ0Yzo6V2ViS2l0VmlkZW9EZWNvZGVyIGRlY29kZXIsIHVpbnQzMl90
IHRpbWVTdGFtcCwgY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCit7CisgICAgcmV0
dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ0NvZGVjcygpLmRlY29kZUZyYW1l
KCpzdGF0aWNfY2FzdDxMaWJXZWJSVENDb2RlY3M6OkRlY29kZXIqPihkZWNvZGVyKSwgdGltZVN0
YW1wLCBkYXRhLCBzaXplKTsKK30KKworc3RhdGljIGludDMyX3QgcmVnaXN0ZXJEZWNvZGVDb21w
bGV0ZUNhbGxiYWNrKHdlYnJ0Yzo6V2ViS2l0VmlkZW9EZWNvZGVyIGRlY29kZXIsIHZvaWQqIGRl
Y29kZWRJbWFnZUNhbGxiYWNrKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldl
YlJUQ0NvZGVjcygpLnJlZ2lzdGVyRGVjb2RlRnJhbWVDYWxsYmFjaygqc3RhdGljX2Nhc3Q8TGli
V2ViUlRDQ29kZWNzOjpEZWNvZGVyKj4oZGVjb2RlciksIGRlY29kZWRJbWFnZUNhbGxiYWNrKTsK
KyAgICByZXR1cm4gMDsKK30KKwordm9pZCBMaWJXZWJSVENDb2RlY3M6OnNldFZpZGVvRGVjb2Rl
ckNhbGxiYWNrcyhib29sIHVzZUdQVVByb2Nlc3MpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKworICAgIGlmICghdXNlR1BVUHJvY2VzcykgeworICAgICAgICB3ZWJydGM6OnNldFZp
ZGVvRGVjb2RlckNhbGxiYWNrcyhudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBMZXQncyBjcmVhdGUgV2ViUHJvY2VzcyBs
aWJXZWJSVENDb2RlY3Mgc2luY2UgaXQgbWF5IGJlIGNhbGxlZCBmcm9tIHZhcmlvdXMgdGhyZWFk
cy4KKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKTsKKyAgICB3
ZWJydGM6OnNldFZpZGVvRGVjb2RlckNhbGxiYWNrcyhjcmVhdGVWaWRlb0RlY29kZXIsIHJlbGVh
c2VWaWRlb0RlY29kZXIsIGRlY29kZVZpZGVvRnJhbWUsIHJlZ2lzdGVyRGVjb2RlQ29tcGxldGVD
YWxsYmFjayk7Cit9CisKK0xpYldlYlJUQ0NvZGVjczo6RGVjb2RlciogTGliV2ViUlRDQ29kZWNz
OjpjcmVhdGVEZWNvZGVyKCkKK3sKKyAgICBhdXRvIGRlY29kZXIgPSBtYWtlVW5pcXVlPERlY29k
ZXI+KCk7CisgICAgYXV0byogcmVzdWx0ID0gZGVjb2Rlci5nZXQoKTsKKyAgICBkZWNvZGVyLT5p
ZGVudGlmaWVyID0gUlRDRGVjb2RlcklkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwor
CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIGRlY29kZXIgPSBXVEZNb3ZlKGRlY29kZXIp
XSgpIG11dGFibGUgeworICAgICAgICBkZWNvZGVyLT5jb25uZWN0aW9uID0gJldlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwor
CisgICAgICAgIGF1dG8gZGVjb2RlcklkZW50aWZpZXIgPSBkZWNvZGVyLT5pZGVudGlmaWVyOwor
ICAgICAgICBkZWNvZGVyLT5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2Rl
Y3NQcm94eTo6Q3JlYXRlRGVjb2RlciB7IGRlY29kZXJJZGVudGlmaWVyIH0sIDApOworCisgICAg
ICAgIEFTU0VSVCghbV9kZWNvZGVDYWxsYmFja3MuY29udGFpbnMoZGVjb2RlcklkZW50aWZpZXIp
KTsKKyAgICAgICAgbV9kZWNvZGVDYWxsYmFja3MuYWRkKGRlY29kZXJJZGVudGlmaWVyLCBXVEZN
b3ZlKGRlY29kZXIpKTsKKyAgICB9KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitpbnQzMl90
IExpYldlYlJUQ0NvZGVjczo6cmVsZWFzZURlY29kZXIoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBMb2NrSG9sZGVyIGhvbGRlcihkZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayk7Cisg
ICAgZGVjb2Rlci5kZWNvZGVkSW1hZ2VDYWxsYmFjayA9IG51bGxwdHI7CisKKyAgICBjYWxsT25N
YWluUnVuTG9vcChbdGhpcywgZGVjb2RlcklkZW50aWZpZXIgPSBkZWNvZGVyLmlkZW50aWZpZXJd
IHsKKyAgICAgICAgQVNTRVJUKG1fZGVjb2RlQ2FsbGJhY2tzLmNvbnRhaW5zKGRlY29kZXJJZGVu
dGlmaWVyKSk7CisKKyAgICAgICAgbV9kZWNvZGVDYWxsYmFja3MucmVtb3ZlKGRlY29kZXJJZGVu
dGlmaWVyKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNz
UHJveHk6OlJlbGVhc2VEZWNvZGVyIHsgZGVjb2RlcklkZW50aWZpZXIgfSwgMCk7CisgICAgfSk7
CisgICAgcmV0dXJuIDA7Cit9CisKK2ludDMyX3QgTGliV2ViUlRDQ29kZWNzOjpkZWNvZGVGcmFt
ZShEZWNvZGVyJiBkZWNvZGVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0IHVpbnQ4X3QqIGRh
dGEsIHNpemVfdCBzaXplKQoreworICAgIGlmICghZGVjb2Rlci5jb25uZWN0aW9uIHx8IGRlY29k
ZXIuaGFzRXJyb3IpIHsKKyAgICAgICAgZGVjb2Rlci5oYXNFcnJvciA9IGZhbHNlOworICAgICAg
ICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICAgIH0KKworICAgIGRlY29kZXIu
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkRlY29kZUZy
YW1lIHsgZGVjb2Rlci5pZGVudGlmaWVyLCB0aW1lU3RhbXAsIElQQzo6RGF0YVJlZmVyZW5jZSB7
IGRhdGEsIHNpemUgfSB9LCAwKTsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOwor
fQorCit2b2lkIExpYldlYlJUQ0NvZGVjczo6cmVnaXN0ZXJEZWNvZGVGcmFtZUNhbGxiYWNrKERl
Y29kZXImIGRlY29kZXIsIHZvaWQqIGRlY29kZWRJbWFnZUNhbGxiYWNrKQoreworICAgIExvY2tI
b2xkZXIgaG9sZGVyKGRlY29kZXIuZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrKTsKKyAgICBkZWNv
ZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrID0gZGVjb2RlZEltYWdlQ2FsbGJhY2s7Cit9CisKK3Zv
aWQgTGliV2ViUlRDQ29kZWNzOjpmYWlsZWREZWNvZGluZyhSVENEZWNvZGVySWRlbnRpZmllciBk
ZWNvZGVySWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAg
aWYgKGF1dG8qIGRlY29kZXIgPSBtX2RlY29kZUNhbGxiYWNrcy5nZXQoZGVjb2RlcklkZW50aWZp
ZXIpKQorICAgICAgICBkZWNvZGVyLT5oYXNFcnJvciA9IHRydWU7Cit9CisKK3ZvaWQgTGliV2Vi
UlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGluZyhSVENEZWNvZGVySWRlbnRpZmllciBkZWNvZGVy
SWRlbnRpZmllciwgdWludDMyX3QgdGltZVN0YW1wLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBs
ZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAg
Ly8gRklYTUU6IERvIGVycm9yIGxvZ2dpbmcuCisgICAgYXV0byogZGVjb2RlciA9IG1fZGVjb2Rl
Q2FsbGJhY2tzLmdldChkZWNvZGVySWRlbnRpZmllcik7CisgICAgaWYgKCFkZWNvZGVyKQorICAg
ICAgICByZXR1cm47CisKKyAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKGRlY29kZXItPmRl
Y29kZWRJbWFnZUNhbGxiYWNrTG9jayk7CisgICAgaWYgKCFsb2NrZXIpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2spCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNm
ZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQor
ICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNl
c3Npb25WVDo6Y3JlYXRlKHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKTsKKworICAgIGlmICgh
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBtX2ltYWdl
VHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVQaXhlbEJ1ZmZlcihyZW1vdGVTYW1wbGUuc3VyZmFjZSgp
LCByZW1vdGVTYW1wbGUuc2l6ZSgpKTsKKyAgICBpZiAoIXBpeGVsQnVmZmVyKSB7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgd2Vi
cnRjOjpSZW1vdGVWaWRlb0RlY29kZXI6OmRlY29kZUNvbXBsZXRlKGRlY29kZXItPmRlY29kZWRJ
bWFnZUNhbGxiYWNrLCB0aW1lU3RhbXAsIHBpeGVsQnVmZmVyLmdldCgpLCByZW1vdGVTYW1wbGUu
dGltZSgpLnRvRG91YmxlKCkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lM2NkOGE5M2ZkMzEzOWFkMTFkMTU3NDcxM2Q1Y2VhM2FmNTA5MmFiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
LmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNF
KExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlJUQ0RlY29kZXJJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUg
PHd0Zi9Mb2NrLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNz
IERlY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJlbW90ZVZpZGVvU2Ft
cGxlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTGliV2ViUlRDQ29kZWNzIDog
cHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgTGliV2ViUlRDQ29kZWNzKCkgPSBkZWZhdWx0OworCisgICAgc3Ry
dWN0IERlY29kZXIgeworICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBwdWJs
aWM6CisgICAgICAgIFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXI7CisgICAgICAgIHZv
aWQqIGRlY29kZWRJbWFnZUNhbGxiYWNrIHsgbnVsbHB0ciB9OworICAgICAgICBMb2NrIGRlY29k
ZWRJbWFnZUNhbGxiYWNrTG9jazsKKyAgICAgICAgYm9vbCBoYXNFcnJvciB7IGZhbHNlIH07Cisg
ICAgICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb247CisgICAgfTsKKworICAg
IHN0YXRpYyB2b2lkIHNldFZpZGVvRGVjb2RlckNhbGxiYWNrcyhib29sIHVzZUdQVVByb2Nlc3Mp
OworCisgICAgRGVjb2RlciogY3JlYXRlRGVjb2RlcigpOworICAgIGludDMyX3QgcmVsZWFzZURl
Y29kZXIoRGVjb2RlciYpOworICAgIGludDMyX3QgZGVjb2RlRnJhbWUoRGVjb2RlciYsIHVpbnQz
Ml90IHRpbWVTdGFtcCwgY29uc3QgdWludDhfdCosIHNpemVfdCk7CisgICAgdm9pZCByZWdpc3Rl
ckRlY29kZUZyYW1lQ2FsbGJhY2soRGVjb2RlciYsIHZvaWQqIGRlY29kZWRJbWFnZUNhbGxiYWNr
KTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgdm9pZCBmYWlsZWREZWNvZGluZyhSVENE
ZWNvZGVySWRlbnRpZmllcik7CisgICAgdm9pZCBjb21wbGV0ZWREZWNvZGluZyhSVENEZWNvZGVy
SWRlbnRpZmllciwgdWludDMyX3QgdGltZVN0YW1wLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBs
ZSYmKTsKKworICAgIEhhc2hNYXA8UlRDRGVjb2RlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxEZWNvZGVyPj4gbV9kZWNvZGVDYWxsYmFja3M7CisgICAgSGFzaFNldDxSVENEZWNvZGVySWRl
bnRpZmllcj4gbV9kZWNvZGluZ0Vycm9yczsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJhYWU5Nzg2ODBkM2MzYTc4MGI4YzI1OWU0M2E1ZTQ4ZDE5MDMxNmIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
IyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgVVNFKExJQldFQlJUQykgJiYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gTGliV2ViUlRD
Q29kZWNzIE5vdFJlZkNvdW50ZWQgeworICAgIEZhaWxlZERlY29kaW5nKFdlYktpdDo6UlRDRGVj
b2RlcklkZW50aWZpZXIgaWQpCisgICAgQ29tcGxldGVkRGVjb2RpbmcoV2ViS2l0OjpSVENEZWNv
ZGVySWRlbnRpZmllciBpZCwgdWludDMyX3QgdGltZVN0YW1wLCBXZWJDb3JlOjpSZW1vdGVWaWRl
b1NhbXBsZSBzYW1wbGUpCit9CisKKyNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKSAmJiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUlRDRGVjb2RlcklkZW50aWZpZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JUQ0RlY29kZXJJZGVudGlmaWVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2RhYTNiYzVmOTBkNWJlZTk5OWJiMjdjOGYwMWQyZWI3OWZkZTIwMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JUQ0RlY29kZXJJ
ZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2VudW0gUlRDRGVjb2RlcklkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJUQ0RlY29kZXJJ
ZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxSVENEZWNvZGVySWRlbnRpZmllclR5cGU+Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IDQ2
OGRmNmM3ODVmYzMyYzUzMDdiOWYwMDhkMGQxNjNiMDkzZWIzYmYuLjE0MTljZmI2YWQ3YTlkNGJl
YzYyYjIxMGJkODgxMjZlZTEwOWMzMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAt
MjgsNiArMjgsMTAgQEAKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjcy5oIgor
I2VuZGlmCisKICNpbmNsdWRlICJMaWJXZWJSVENOZXR3b3JrLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvYXN5bmNfcmVzb2x2ZXJfZmFjdG9yeS5oPgpA
QCAtMTMxLDYgKzEzNSwxNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlkZXI6OlN1
c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OgogICAgIHJldHVybiBt
YWtlVW5pcXVlPFJUQ1NvY2tldEZhY3Rvcnk+KFdURk1vdmUodXNlckFnZW50KSk7CiB9CiAKK3N0
ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IExpYldlYlJUQ1Byb3Zp
ZGVyOjpjcmVhdGVEZWNvZGVyRmFjdG9yeSgpCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBQTEFURk9STShDT0NPQSkKKyAgICBMaWJXZWJSVENDb2RlY3M6OnNldFZpZGVvRGVjb2RlckNh
bGxiYWNrcyhtX3VzZUdQVVByb2Nlc3MpOworI2VuZGlmCisgICAgcmV0dXJuIExpYldlYlJUQ1By
b3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29kZXJGYWN0b3J5KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
aW5kZXggMDI0OGVlZDkzMzAwNGI0MWIzMDIwMjQ5MjU2NDdhM2VlNDAxMGQwZC4uN2U1MDE1ZmRk
NzM3ZjhhNzVkNDk0NzdmZTdjNjYwNDlhZGQ5ZDRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
QEAgLTU3LDYgKzU3LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVucmVnaXN0ZXJNRE5TTmFtZXMo
dWludDY0X3QgZG9jdW1lbnRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyTURO
U05hbWUodWludDY0X3QgZG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVz
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNRE5TTmFtZU9yRXJyb3ImJik+JiYpIGZpbmFsOwog
ICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkgZmluYWw7CisKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVEZWNvZGVy
RmFjdG9yeSgpIGZpbmFsOworCiB9OwogI2Vsc2UKIHVzaW5nIExpYldlYlJUQ1Byb3ZpZGVyID0g
V2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggMTUxMzI3MWFjM2Y5NzUxNTZmOTk0MmRhZmRmMGNjMGE4Y2Q3ZTNkMy4u
YzRhZDM5ZjkwYzc1YzFjZDEzNzliZTI0YTYxNDIyNmU5OWRhNmNhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTY4LDYgKzE2OCwxMCBAQAogI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2VuZGlmCiAKKyNpZiBVU0UoTElCV0VCUlRD
KSAmJiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorI2luY2x1ZGUgIkxp
YldlYlJUQ0NvZGVjcy5oIgorI2VuZGlmCisKIC8vIFRoaXMgc2hvdWxkIGJlIGxlc3MgdGhhbiBw
bHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9uVGltZVRocmVzaG9sZCBpbiBQbHVnSW5BdXRvU3RhcnRQ
cm92aWRlci4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25U
aW1lVXBkYXRlVGhyZXNob2xkIHsgMjkgKiAyNCAqIDYwICogNjAgfTsKIApAQCAtMTMxMCw2ICsx
MzE0LDE1IEBAIHZvaWQgV2ViUHJvY2Vzczo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCiAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlv
biA9IG51bGxwdHI7CiB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykK
K0xpYldlYlJUQ0NvZGVjcyYgV2ViUHJvY2Vzczo6bGliV2ViUlRDQ29kZWNzKCkKK3sKKyAgICBp
ZiAoIW1fbGliV2ViUlRDQ29kZWNzKQorICAgICAgICBtX2xpYldlYlJUQ0NvZGVjcyA9IG1ha2VV
bmlxdWU8TGliV2ViUlRDQ29kZWNzPigpOworICAgIHJldHVybiAqbV9saWJXZWJSVENDb2RlY3M7
Cit9CisjZW5kaWYKKwogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogdm9pZCBXZWJQ
cm9jZXNzOjpzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggYzJjZTg4YmQ2MjZmOGI4YTNjZThhOTAxZTM1ZmZk
YmM0YjRjNzI4NS4uOGY5YmZlNTcxNWQ0MjI1OWEzYTNiMzE3MDVhYzM0ZjZmMTNiMWQzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xMDksNiArMTA5LDcgQEAgY2xh
c3MgRXZlbnREaXNwYXRjaGVyOwogY2xhc3MgR2FtZXBhZERhdGE7CiBjbGFzcyBHUFVQcm9jZXNz
Q29ubmVjdGlvbjsKIGNsYXNzIEluamVjdGVkQnVuZGxlOworY2xhc3MgTGliV2ViUlRDQ29kZWNz
OwogY2xhc3MgTGliV2ViUlRDTmV0d29yazsKIGNsYXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bjsKIGNsYXNzIE9iakNPYmplY3RHcmFwaDsKQEAgLTIxOCw2ICsyMTksMTEgQEAgcHVibGljOgog
ICAgIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwog
ICAgIHZvaWQgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24q
KTsKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbiogZXhpc3RpbmdHUFVQcm9jZXNzQ29ubmVjdGlv
bigpIHsgcmV0dXJuIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uZ2V0KCk7IH0KKworI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQorICAgIExpYldlYlJUQ0NvZGVjcyYgbGliV2Vi
UlRDQ29kZWNzKCk7CisjZW5kaWYKKwogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKIAog
ICAgIExpYldlYlJUQ05ldHdvcmsmIGxpYldlYlJUQ05ldHdvcmsoKTsKQEAgLTUyMyw2ICs1Mjks
OSBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIFJlZlB0cjxHUFVQ
cm9jZXNzQ29ubmVjdGlvbj4gbV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgVVNFKExJQldFQlJUQykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29k
ZWNzPiBtX2xpYldlYlJUQ0NvZGVjczsKKyNlbmRpZgogI2VuZGlmCiAKICAgICBSZWY8V2ViQ2Fj
aGVTdG9yYWdlUHJvdmlkZXI+IG1fY2FjaGVTdG9yYWdlUHJvdmlkZXI7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDEzZDRi
NWE2MzIyNmYyMDYzYTQxOTJhZDEwMmRlMDI2MGI5ZGFhYS4uODE2MmJhYmUzZmYwZGM5YzZhMDM1
ZTVmZDE2NGVlOWNmZDIwZjI1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTEyLTI5ICB5
b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUlRD
IFZUQiBkZWNvZGVycyBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHdlYnJ0Yy92aWRlby1ncHVQcm9jZXNzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2VicnRjL3ZpZGVvLWdwdVByb2Nlc3MuaHRtbDogQWRkZWQu
CisKIDIwMTktMTItMjQgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIElnbm9yZSBVUkwgaG9zdCBmb3Igc2NoZW1lcyB0aGF0IGFyZSBub3QgdXNpbmcgaG9zdCBp
bmZvcm1hdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLWdwdVByb2Nl
c3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLWdwdVByb2Nlc3MtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjNTU1NGQ0ZWMxNmVkMWY0ZDQxOTAwOTI4OTE2ZGMwNTY1
NDk0YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tZ3B1UHJv
Y2Vzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKKworUEFTUyBCYXNpYyB2aWRlbyBl
eGNoYW5nZSAKK1BBU1MgQ2FsbCBzZXRQYXJhbWV0ZXJzIHRvIGRpc2FibGUgc2VuZGluZyBhIGdp
dmVuIGVuY29kaW5nIAorUEFTUyBDYWxsIHNldFBhcmFtZXRlcnMgdG8gcmVlbmFibGUgc2VuZGlu
ZyBhIGdpdmVuIGVuY29kaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlk
ZW8tZ3B1UHJvY2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLWdwdVByb2Nlc3Mu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kN2RkZmIyODNhY2U3NjgyYTY5MzU3NDExYTdmYjRkMTk4MjZkNDc4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLWdwdVByb2Nlc3Mu
aHRtbApAQCAtMCwwICsxLDEyOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+VmlkZW8g
ZXhjaGFuZ2UgdXNpbmcgR1BVIHByb2Nlc3M8L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPC9o
ZWFkPgorICAgIDxib2R5PgorICAgICAgICA8dmlkZW8gaWQ9InZpZGVvIiBhdXRvcGxheT0iIj48
L3ZpZGVvPgorICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI2NDAiIGhlaWdodD0i
NDgwIj48L2NhbnZhcz4KKyAgICAgICAgPHNjcmlwdCBzcmMgPSJyb3V0aW5lcy5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5h
bHMuc2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyh0cnVlKTsKKwordmlkZW8gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidmlkZW8iKTsKK2NhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjYW52YXMiKTsKKworZnVuY3Rpb24gZ3JhYkZyYW1lRGF0YSh4LCB5LCB3LCBoKQoreworICAg
IGNhbnZhcy53aWR0aCA9IHZpZGVvLnZpZGVvV2lkdGg7CisgICAgY2FudmFzLmhlaWdodCA9IHZp
ZGVvLnZpZGVvSGVpZ2h0OworCisgICAgY2FudmFzLmdldENvbnRleHQoJzJkJykuZHJhd0ltYWdl
KHZpZGVvLCB4LCB5LCB3LCBoLCB4LCB5LCB3LCBoKTsKKyAgICByZXR1cm4gY2FudmFzLmdldENv
bnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKHgsIHksIHcsIGgpLmRhdGE7Cit9CisKK2Z1bmN0aW9u
IHRlc3RJbWFnZSgpCit7CisgICAgY29uc3QgZGF0YSA9IGdyYWJGcmFtZURhdGEoMTAsIDMyNSwg
MjUwLCAxKTsKKworICAgIHZhciBpbmRleCA9IDIwOworICAgIGFzc2VydF90cnVlKGRhdGFbaW5k
ZXhdIDwgMTAwKTsKKyAgICBhc3NlcnRfdHJ1ZShkYXRhW2luZGV4ICsgMV0gPCAxMDApOworICAg
IGFzc2VydF90cnVlKGRhdGFbaW5kZXggKyAyXSA8IDEwMCk7CisKKyAgICBpbmRleCA9IDgwOwor
ICAgIGFzc2VydF90cnVlKGRhdGFbaW5kZXhdID4gMjAwKTsKKyAgICBhc3NlcnRfdHJ1ZShkYXRh
W2luZGV4ICsgMV0gPiAyMDApOworICAgIGFzc2VydF90cnVlKGRhdGFbaW5kZXggKyAyXSA+IDIw
MCk7CisKKyAgICBpbmRleCArPSA4MDsKKyAgICBhc3NlcnRfdHJ1ZShkYXRhW2luZGV4XSA+IDIw
MCk7CisgICAgYXNzZXJ0X3RydWUoZGF0YVtpbmRleCArIDFdID4gMjAwKTsKKyAgICBhc3NlcnRf
dHJ1ZShkYXRhW2luZGV4ICsgMl0gPCAxMDApOworfQorCit2YXIgcGMxLCBwYzI7Citwcm9taXNl
X3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKKworICAgIGNvbnN0
IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEo
e3ZpZGVvOiB7YWR2YW5jZWQ6IFt7d2lkdGg6e21pbjo2NDB9fSwge2hlaWdodDp7bWluOjQ4MH0g
fSBdfX0pOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBhc3NlcnRfdHJ1ZShp
bnRlcm5hbHMucGFnZU1lZGlhU3RhdGUoKS5pbmNsdWRlcygnSGFzQWN0aXZlVmlkZW9DYXB0dXJl
RGV2aWNlJyksICJVbmV4cGVjdGVkIEhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSIpOworICAg
IGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
KyAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4geworICAgICAg
ICAgICAgcGMxID0gZmlyc3RDb25uZWN0aW9uOworICAgICAgICAgICAgZmlyc3RDb25uZWN0aW9u
LmFkZFRyYWNrKGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0sIGxvY2FsU3RyZWFtKTsK
KyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIHBjMiA9IHNl
Y29uZENvbm5lY3Rpb247CisgICAgICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSAo
dHJhY2tFdmVudCkgPT4geworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHRyYWNrRXZlbnQu
dHJhY2sgaW5zdGFuY2VvZiBNZWRpYVN0cmVhbVRyYWNrKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfdHJ1ZSh0cmFja0V2ZW50LnJlY2VpdmVyIGluc3RhbmNlb2YgUlRDUnRwUmVjZWl2ZXIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKEFycmF5LmlzQXJyYXkodHJhY2tFdmVudC5zdHJl
YW1zKSwgIkFycmF5LmlzQXJyYXkoKSBzaG91bGQgcmV0dXJuIHRydWUiKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShPYmplY3QuaXNGcm96ZW4odHJhY2tFdmVudC5zdHJlYW1zKSwgIk9i
amVjdC5pc0Zyb3plbigpIHNob3VsZCByZXR1cm4gdHJ1ZSIpOworICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHModHJhY2tFdmVudC50cmFjay5pZCwgbG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFj
a3MoKVswXS5pZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0cmFja0V2ZW50LnRy
YWNrLCB0cmFja0V2ZW50LnN0cmVhbXNbMF0uZ2V0VmlkZW9UcmFja3MoKVswXSk7CisgICAgICAg
ICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAgICAgICAgICAgfTsK
KyAgICAgICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVk
IG91dCIpLCA1MDAwKTsKKyAgICB9KTsKKworICAgIHZpZGVvLnNyY09iamVjdCA9IHN0cmVhbTsK
KyAgICBhd2FpdCB2aWRlby5wbGF5KCk7CisKKyAgICB0ZXN0SW1hZ2UoKTsKK30sICJCYXNpYyB2
aWRlbyBleGNoYW5nZSIpOworCitmdW5jdGlvbiBnZXRDaXJjbGVJbWFnZURhdGEoKQoreworICAg
IHJldHVybiBncmFiRnJhbWVEYXRhKDQ1MCwgMTAwLCAxNTAsIDEwMCk7Cit9CisKK2FzeW5jIGZ1
bmN0aW9uIGNoZWNrVmlkZW9Jc1VwZGF0ZWQoc2hvdWxkQmVVcGRhdGVkLCBjb3VudCwgcmVmZXJl
bmNlRGF0YSkKK3sKKyAgICBpZiAoY291bnQgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgY291bnQg
PSAwOworICAgIGVsc2UgaWYgKGNvdW50ID49IDIwKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5y
ZWplY3QoImNoZWNrVmlkZW9Jc1VwZGF0ZWQgdGltZWQgb3V0IDoiICsgc2hvdWxkQmVVcGRhdGVk
ICsgIiAiICsgY291bnQpOworCisgICAgaWYgKHJlZmVyZW5jZURhdGEgPT09IHVuZGVmaW5lZCkK
KyAgICAgICAgcmVmZXJlbmNlRGF0YSA9IGdldENpcmNsZUltYWdlRGF0YSgpOworCisgICAgYXdh
aXQgd2FpdEZvcigyMDApOworICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRDaXJjbGVJbWFnZURhdGEo
KTsKKworICAgIGlmIChzaG91bGRCZVVwZGF0ZWQgPT09IChKU09OLnN0cmluZ2lmeShyZWZlcmVu
Y2VEYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkobmV3RGF0YSkpKQorICAgICAgICByZXR1cm47CisK
KyAgICBhd2FpdCBjaGVja1ZpZGVvSXNVcGRhdGVkKHNob3VsZEJlVXBkYXRlZCwgKytjb3VudCwg
bmV3RGF0YSk7Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0
IHNlbmRlciA9IHBjMS5nZXRTZW5kZXJzKClbMF07CisgICAgbGV0IHAgPSBzZW5kZXIuZ2V0UGFy
YW1ldGVycygpOworICAgIHAuZW5jb2RpbmdzWzBdLmFjdGl2ZSA9IGZhbHNlOworICAgIGF3YWl0
IHNlbmRlci5zZXRQYXJhbWV0ZXJzKHApOworCisgICAgYXNzZXJ0X2ZhbHNlKHNlbmRlci5nZXRQ
YXJhbWV0ZXJzKCkuZW5jb2RpbmdzWzBdLmFjdGl2ZSwgImVuY29kaW5nc1swXS5hY3RpdmUgc2hv
dWxkIGJlIGZhbHNlIik7CisKKyAgICBhd2FpdCBjaGVja1ZpZGVvSXNVcGRhdGVkKGZhbHNlKTsK
K30sICJDYWxsIHNldFBhcmFtZXRlcnMgdG8gZGlzYWJsZSBzZW5kaW5nIGEgZ2l2ZW4gZW5jb2Rp
bmciKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3Qgc2VuZGVy
ID0gcGMxLmdldFNlbmRlcnMoKVswXTsKKyAgICBsZXQgcCA9IHNlbmRlci5nZXRQYXJhbWV0ZXJz
KCk7CisgICAgcC5lbmNvZGluZ3NbMF0uYWN0aXZlID0gdHJ1ZTsKKyAgICBhd2FpdCBzZW5kZXIu
c2V0UGFyYW1ldGVycyhwKTsKKworICAgIGFzc2VydF90cnVlKHNlbmRlci5nZXRQYXJhbWV0ZXJz
KCkuZW5jb2RpbmdzWzBdLmFjdGl2ZSwgImVuY29kaW5nc1swXS5hY3RpdmUgc2hvdWxkIGJlIHRy
dWUiKTsKKworICAgIGF3YWl0IGNoZWNrVmlkZW9Jc1VwZGF0ZWQodHJ1ZSk7Cit9LCAiQ2FsbCBz
ZXRQYXJhbWV0ZXJzIHRvIHJlZW5hYmxlIHNlbmRpbmcgYSBnaXZlbiBlbmNvZGluZyIpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9DaGFuZ2VM
b2cgYi9DaGFuZ2VMb2cKaW5kZXggZDkxM2UxODAzNTNiYWMyZDI4MDIwNGY1ODQ2NDUzZWY0NTJl
MGExMy4uMzI1ZTdiMGY1ZWI3NzljNzRhMTA4NzI3YzJkM2RlYWYzZDFkN2YzNCAxMDA2NDQKLS0t
IGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTEyLTI5
ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
UlRDIFZUQiBkZWNvZGVycyBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEv
eGNzY2hlbWVzL0FsbCBTb3VyY2UueGNzY2hlbWU6CisKIDIwMTktMTItMTggIERpZWdvIFBpbm8g
R2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFJlbmRlcml6
YXRpb24gb2YgQ29uaWMgZ3JhZGllbnRzCmRpZmYgLS1naXQgYS9XZWJLaXQueGN3b3Jrc3BhY2Uv
eGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2NoZW1lIGIvV2ViS2l0Lnhjd29y
a3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZQppbmRleCBi
NzVmNGJkMTk5ZDhhZTU2ZWJmZjM3N2M4ZjIyODEzMWE4ZWIzMjdiLi5lMWM5NzRjYWYzYjFhZjVm
NmYwY2ZlNTc3MDRhNTY3ZTI4M2M1MDlkIDEwMDY0NAotLS0gYS9XZWJLaXQueGN3b3Jrc3BhY2Uv
eGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2NoZW1lCQorKysgYi9XZWJLaXQu
eGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2NoZW1lCQpA
QCAtNTcsNyArNTcsNyBAQAogICAgICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQogICAgICAg
ICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgogICAgICAgICAgICAgICAg
Qmx1ZXByaW50SWRlbnRpZmllciA9ICJGQjM5RDBEMDEyMDBGMEUzMDAwODhFNjkiCi0gICAgICAg
ICAgICAgICBCdWlsZGFibGVOYW1lID0gImxpYkFOR0xFLmEiCisgICAgICAgICAgICAgICBCdWls
ZGFibGVOYW1lID0gImxpYkFOR0xFLXNoYXJlZC5keWxpYiIKICAgICAgICAgICAgICAgIEJsdWVw
cmludE5hbWUgPSAiQU5HTEUiCiAgICAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0g
ImNvbnRhaW5lcjpTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9BTkdMRS54Y29kZXByb2oiPgogICAg
ICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386518</attachid>
            <date>2019-12-30 02:25:34 -0800</date>
            <delta_ts>2019-12-31 02:00:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205607-20191230112530.patch</filename>
            <type>text/plain</type>
            <size>82832</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBkNDk4OWU3OWYxNWNhYzE3OTNiYTE4NWNkZjE0YmI4YjUyYWI2MjY2Li44ZDQ2
NTU3NTFlZjg3ZDBjOTkxYjk0OGMwYmFlOWY4ODlkOTFiNmNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxOS0xMi0yOSAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFJUQyBWVEIgZGVj
b2RlcnMgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1NjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRXhwb3NlIHJlbW90ZSBkZWNvZGVyIGFiaWxpdGllcyB3aXRoIEMgbGlrZSBm
dW5jdGlvbnMuCisgICAgICAgIFRoaXMgYWxsb3dzIFdlYlByb2Nlc3MgdG8gaW1wbGVtZW50IElQ
Qy1iYXNlZCBkZWNvZGVycy4KKyAgICAgICAgRXhwb3NlIFZUQiBIMjY0IGRlY29kZXIgYXMgQyBs
aWtlIGZ1bmN0aW9ucy4KKyAgICAgICAgVGhpcyBhbGxvd3MgR1BVIHByb2Nlc3MgdG8gaW5zdGFu
dGlhdGUgd2FzaWx5IEgyNjY0IGRlY29kZXJzLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLmlPUy5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlP
U3NpbS5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHA6Cisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMubW06CisgICAg
ICAgICh3ZWJydGM6OnZpZGVvRGVjb2RlckNhbGxiYWNrcyk6CisgICAgICAgICh3ZWJydGM6OnNl
dFZpZGVvRGVjb2RlckNhbGxiYWNrcyk6CisgICAgICAgICh3ZWJydGM6OlJlbW90ZVZpZGVvRGVj
b2Rlcjo6UmVtb3RlVmlkZW9EZWNvZGVyKToKKyAgICAgICAgKHdlYnJ0Yzo6UmVtb3RlVmlkZW9E
ZWNvZGVyOjpkZWNvZGVDb21wbGV0ZSk6CisgICAgICAgICh3ZWJydGM6OlJlbW90ZVZpZGVvRGVj
b2Rlcjo6SW5pdERlY29kZSk6CisgICAgICAgICh3ZWJydGM6OlJlbW90ZVZpZGVvRGVjb2Rlcjo6
RGVjb2RlKToKKyAgICAgICAgKHdlYnJ0Yzo6UmVtb3RlVmlkZW9EZWNvZGVyOjpSZWdpc3RlckRl
Y29kZUNvbXBsZXRlQ2FsbGJhY2spOgorICAgICAgICAod2VicnRjOjpSZW1vdGVWaWRlb0RlY29k
ZXI6OlJlbGVhc2UpOgorICAgICAgICAod2VicnRjOjpSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5
OjpSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5KToKKyAgICAgICAgKHdlYnJ0Yzo6UmVtb3RlVmlk
ZW9EZWNvZGVyRmFjdG9yeTo6R2V0U3VwcG9ydGVkRm9ybWF0cyBjb25zdCk6CisgICAgICAgICh3
ZWJydGM6OlJlbW90ZVZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcik6Cisg
ICAgICAgICh3ZWJydGM6OmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5KToKKyAgICAgICAgKHdl
YnJ0Yzo6Y3JlYXRlTG9jYWxEZWNvZGVyKToKKyAgICAgICAgKHdlYnJ0Yzo6cmVsZWFzZUxvY2Fs
RGVjb2Rlcik6CisgICAgICAgICh3ZWJydGM6OmRlY29kZUZyYW1lKToKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVy
SDI2NC5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY0Lm1tOgorICAgICAgICAoLVtSVENWaWRlb0RlY29k
ZXJIMjY0IGRlY29kZTptaXNzaW5nRnJhbWVzOmNvZGVjU3BlY2lmaWNJbmZvOnJlbmRlclRpbWVN
czpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVySDI2NCBkZWNvZGVEYXRhOnNpemU6dGlt
ZVN0YW1wOl0pOgorCiAyMDE5LTEyLTIzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjUzODg0LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDZjMzY4YjVhNTY4ODg1ZjQzOWJhZTJkNDdkNzQ1Nzg5OWZjN2JjNWEuLjM4YzVk
MjhiMDhkMWZjMTcwOTBiNTg5NzE3YTY4N2VjYmEzMjc2ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOSBAQAorMjAxOS0xMi0yOSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IFJUQyBWVEIgZGVjb2RlcnMgaW4gR1BVUHJvY2VzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NjA3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHJvdXRpbmUgdG8g
Y3JlYXRlIGEgUmVtb3ZlVmlkZW9TYW1wbGUgZnJvbSBhIHBpeGVsIGJ1ZmZlci4KKyAgICAgICAg
VXBkYXRlIExpYldlYlJUQ1Byb3ZpZGVyIHRvIGVuYWJsZS9kaXNhYmxlIGRlY29kaW5nIGluIEdQ
VSBQcm9jZXNzIGFuZCBhZGQgaW50ZXJuYWxzIEFQSS4KKworICAgICAgICBUZXN0OiB3ZWJydGMv
dmlkZW8tZ3B1UHJvY2Vzcy5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1v
dGVWaWRlb1NhbXBsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6
Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OnNldFVzZUdQ
VVByb2Nlc3MpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJU
Qyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5pZGw6CisKIDIwMTktMTItMjkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggYWZ0ZXIgcjI1MzkzOApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA2MDkzYTQ1MTMwNGM4ODZiM2EyZTEzMTAyYjA4OTAyM2JiZDhjNmI1Li44Y2ZjMmY1
OGY3MmEwYzk0ZDY4MDc0OGFmMTg2YTUxN2FhNzdlZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5
IEBACisyMDE5LTEyLTI5ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbXBsZW1lbnQgUlRDIFZUQiBkZWNvZGVycyBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2MDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgZGVjb2RlciBm
YWN0b3J5IGNhbGxiYWNrcy4KKyAgICAgICAgSW1wbGVtZW50IFdlYlByb2Nlc3MgY29kZWNzIGJ5
IHNlbmRpbmcgSVBDIGZvciBjcmVhdGluZy9yZWxlYXNpbmcvZGVjb2RpbmcgYSBmcmFtZS4KKyAg
ICAgICAgV2ViUHJvY2VzcyByZWNlaXZlcyBJUEMgbWVzc2FnZXMgZnJvbSBHUFUgUHJvY2VzcyB3
aGVuZXZlciBhIGZyYW1lIGlzIGRlY29kZWQuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9X
ZWJLaXQueGNjb25maWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmxpYldlYlJUQ0NvZGVjc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpMaWJX
ZWJSVENDb2RlY3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkxpYldl
YlJUQ0NvZGVjc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzUHJveHk6
On5MaWJXZWJSVENDb2RlY3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVj
c1Byb3h5OjpjcmVhdGVEZWNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNz
UHJveHk6OnJlbGVhc2VEZWNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNz
UHJveHk6OmRlY29kZUZyYW1lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OmNyZWF0ZVZpZGVvRGVjb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OnJlbGVhc2VWaWRl
b0RlY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpkZWNvZGVWaWRlb0ZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6cmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktp
dDo6TGliV2ViUlRDQ29kZWNzOjpzZXRWaWRlb0RlY29kZXJDYWxsYmFja3MpOgorICAgICAgICAo
V2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZURlY29kZXIpOgorICAgICAgICAoV2ViS2l0
OjpMaWJXZWJSVENDb2RlY3M6OnJlbGVhc2VEZWNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6TGli
V2ViUlRDQ29kZWNzOjpkZWNvZGVGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0Nv
ZGVjczo6cmVnaXN0ZXJEZWNvZGVGcmFtZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6TGli
V2ViUlRDQ29kZWNzOjpmYWlsZWREZWNvZGluZyk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJU
Q0NvZGVjczo6Y29tcGxldGVkRGVjb2RpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3MuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL1JUQ0RlY29kZXJJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlRGVjb2RlckZhY3RvcnkpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpsaWJXZWJSVENDb2RlY3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oOgorCiAyMDE5LTEyLTI5ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVHdlYWsgdGhlIGZvcm1hdCBhbmQgY29tbWVudCBpbiB0aGUgY29kZSB0byBzdXBw
b3J0IG1lZGlhIGluIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKaW5kZXggZGIw
ODNjOTA4MzdkYmI0YjZjNzEwNDA2M2U0MWMzZDU4NGRhMGE3ZC4uNzBmZTk2M2U5NWE4ZGRiZGNk
NGExN2MwZmRjMWI0ZDhlYTc0YjM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cApAQCAtMjYy
LDMgKzI2Miw4IEBAIF9fWk5LNndlYnJ0YzIwRGF0YUNoYW5uZWxJbnRlcmZhY2UxN21heFJldHJh
bnNtaXRzT3B0RXYKIF9fWk5LNndlYnJ0YzIwUnRwUmVjZWl2ZXJJbnRlcmZhY2UxNGR0bHNfdHJh
bnNwb3J0RXYKIF9fWk5LNndlYnJ0YzIzUGVlckNvbm5lY3Rpb25JbnRlcmZhY2UxNkdldFNjdHBU
cmFuc3BvcnRFdgogX19aTks2d2VicnRjMjNSdHBUcmFuc2NlaXZlckludGVyZmFjZTE3Y29kZWNf
cHJlZmVyZW5jZXNFdgorX19aTjZ3ZWJydGMxOGNyZWF0ZUxvY2FsRGVjb2RlckVVMTNibG9ja19w
b2ludGVyRnZQMTBfX0NWQnVmZmVyampFCitfX1pONndlYnJ0YzE5cmVsZWFzZUxvY2FsRGVjb2Rl
ckVQdgorX19aTjZ3ZWJydGMxMWRlY29kZUZyYW1lRVB2alBLaG0KK19fWk42d2VicnRjMThSZW1v
dGVWaWRlb0RlY29kZXIxNGRlY29kZUNvbXBsZXRlRVB2alAxMF9fQ1ZCdWZmZXJqCitfX1pONndl
YnJ0YzI0c2V0VmlkZW9EZWNvZGVyQ2FsbGJhY2tzRVBGUHZSS05TXzE0U2RwVmlkZW9Gb3JtYXRF
RVBGaVMwX0VQRmlTMF9qUEtobUVQRmlTMF9TMF9FCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHAKaW5kZXggZGIwODNjOTA4MzdkYmI0YjZjNzEwNDA2M2U0MWMzZDU4NGRhMGE3ZC4uNzBmZTk2
M2U5NWE4ZGRiZGNkNGExN2MwZmRjMWI0ZDhlYTc0YjM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMu
aU9Tc2ltLmV4cApAQCAtMjYyLDMgKzI2Miw4IEBAIF9fWk5LNndlYnJ0YzIwRGF0YUNoYW5uZWxJ
bnRlcmZhY2UxN21heFJldHJhbnNtaXRzT3B0RXYKIF9fWk5LNndlYnJ0YzIwUnRwUmVjZWl2ZXJJ
bnRlcmZhY2UxNGR0bHNfdHJhbnNwb3J0RXYKIF9fWk5LNndlYnJ0YzIzUGVlckNvbm5lY3Rpb25J
bnRlcmZhY2UxNkdldFNjdHBUcmFuc3BvcnRFdgogX19aTks2d2VicnRjMjNSdHBUcmFuc2NlaXZl
ckludGVyZmFjZTE3Y29kZWNfcHJlZmVyZW5jZXNFdgorX19aTjZ3ZWJydGMxOGNyZWF0ZUxvY2Fs
RGVjb2RlckVVMTNibG9ja19wb2ludGVyRnZQMTBfX0NWQnVmZmVyampFCitfX1pONndlYnJ0YzE5
cmVsZWFzZUxvY2FsRGVjb2RlckVQdgorX19aTjZ3ZWJydGMxMWRlY29kZUZyYW1lRVB2alBLaG0K
K19fWk42d2VicnRjMThSZW1vdGVWaWRlb0RlY29kZXIxNGRlY29kZUNvbXBsZXRlRVB2alAxMF9f
Q1ZCdWZmZXJqCitfX1pONndlYnJ0YzI0c2V0VmlkZW9EZWNvZGVyQ2FsbGJhY2tzRVBGUHZSS05T
XzE0U2RwVmlkZW9Gb3JtYXRFRVBGaVMwX0VQRmlTMF9qUEtobUVQRmlTMF9TMF9FCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
Lm1hYy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGli
d2VicnRjLm1hYy5leHAKaW5kZXggZGIwODNjOTA4MzdkYmI0YjZjNzEwNDA2M2U0MWMzZDU4NGRh
MGE3ZC4uNzBmZTk2M2U5NWE4ZGRiZGNkNGExN2MwZmRjMWI0ZDhlYTc0YjM5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5t
YWMuZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9s
aWJ3ZWJydGMubWFjLmV4cApAQCAtMjYyLDMgKzI2Miw4IEBAIF9fWk5LNndlYnJ0YzIwRGF0YUNo
YW5uZWxJbnRlcmZhY2UxN21heFJldHJhbnNtaXRzT3B0RXYKIF9fWk5LNndlYnJ0YzIwUnRwUmVj
ZWl2ZXJJbnRlcmZhY2UxNGR0bHNfdHJhbnNwb3J0RXYKIF9fWk5LNndlYnJ0YzIzUGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2UxNkdldFNjdHBUcmFuc3BvcnRFdgogX19aTks2d2VicnRjMjNSdHBUcmFu
c2NlaXZlckludGVyZmFjZTE3Y29kZWNfcHJlZmVyZW5jZXNFdgorX19aTjZ3ZWJydGMxOGNyZWF0
ZUxvY2FsRGVjb2RlckVVMTNibG9ja19wb2ludGVyRnZQMTBfX0NWQnVmZmVyampFCitfX1pONndl
YnJ0YzE5cmVsZWFzZUxvY2FsRGVjb2RlckVQdgorX19aTjZ3ZWJydGMxMWRlY29kZUZyYW1lRVB2
alBLaG0KK19fWk42d2VicnRjMThSZW1vdGVWaWRlb0RlY29kZXIxNGRlY29kZUNvbXBsZXRlRVB2
alAxMF9fQ1ZCdWZmZXJqCitfX1pONndlYnJ0YzI0c2V0VmlkZW9EZWNvZGVyQ2FsbGJhY2tzRVBG
UHZSS05TXzE0U2RwVmlkZW9Gb3JtYXRFRVBGaVMwX0VQRmlTMF9qUEtobUVQRmlTMF9TMF9FCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
V2ViS2l0L1dlYktpdFV0aWxpdGllcy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaAppbmRleCA2ZWZmYzVhYWI1
OTJmOGRhNjI0NjljZGY4MWY0ODM0OTIyZGZjMTNhLi42YTU4YmExNzNhNjEzMjM5MWFhMTc4MjJk
NDZiYzA3OTM0NTQxZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0
aWVzLmgKQEAgLTY5LDQgKzY5LDQ3IEBAIHByaXZhdGU6CiAgICAgY29uc3Qgc3RkOjp1bmlxdWVf
cHRyPFZpZGVvRW5jb2RlckZhY3Rvcnk+IG1faW50ZXJuYWxFbmNvZGVyRmFjdG9yeTsKIH07CiAK
K3VzaW5nIFdlYktpdFZpZGVvRGVjb2RlciA9IHZvaWQqOwordXNpbmcgVmlkZW9EZWNvZGVyQ3Jl
YXRlQ2FsbGJhY2sgPSBXZWJLaXRWaWRlb0RlY29kZXIoKikoY29uc3QgU2RwVmlkZW9Gb3JtYXQm
IGZvcm1hdCk7Cit1c2luZyBWaWRlb0RlY29kZXJSZWxlYXNlQ2FsbGJhY2sgPSBpbnQzMl90KCop
KFdlYktpdFZpZGVvRGVjb2Rlcik7Cit1c2luZyBWaWRlb0RlY29kZXJEZWNvZGVDYWxsYmFjayA9
IGludDMyX3QoKikoV2ViS2l0VmlkZW9EZWNvZGVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0
IHVpbnQ4X3QqLCBzaXplX3QgbGVuZ3RoKTsKK3VzaW5nIFZpZGVvRGVjb2RlclJlZ2lzdGVyRGVj
b2RlQ29tcGxldGVDYWxsYmFjayA9IGludDMyX3QoKikoV2ViS2l0VmlkZW9EZWNvZGVyLCB2b2lk
KiBkZWNvZGVkSW1hZ2VDYWxsYmFjayk7CisKK3ZvaWQgc2V0VmlkZW9EZWNvZGVyQ2FsbGJhY2tz
KFZpZGVvRGVjb2RlckNyZWF0ZUNhbGxiYWNrLCBWaWRlb0RlY29kZXJSZWxlYXNlQ2FsbGJhY2ss
IFZpZGVvRGVjb2RlckRlY29kZUNhbGxiYWNrLCBWaWRlb0RlY29kZXJSZWdpc3RlckRlY29kZUNv
bXBsZXRlQ2FsbGJhY2spOworCitjbGFzcyBSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5IGZpbmFs
IDogcHVibGljIFZpZGVvRGVjb2RlckZhY3RvcnkgeworcHVibGljOgorICAgIGV4cGxpY2l0IFJl
bW90ZVZpZGVvRGVjb2RlckZhY3Rvcnkoc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2RlckZhY3Rv
cnk+JiYpOworICAgIH5SZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5KCkgPSBkZWZhdWx0OworCitw
cml2YXRlOgorICAgIHN0ZDo6dmVjdG9yPFNkcFZpZGVvRm9ybWF0PiBHZXRTdXBwb3J0ZWRGb3Jt
YXRzKCkgY29uc3QgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4gQ3Jl
YXRlVmlkZW9EZWNvZGVyKGNvbnN0IFNkcFZpZGVvRm9ybWF0JiBmb3JtYXQpIGZpbmFsOworCisg
ICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2RlckZhY3Rvcnk+IG1faW50ZXJuYWxGYWN0b3J5
OworfTsKKworY2xhc3MgUmVtb3RlVmlkZW9EZWNvZGVyIGZpbmFsIDogcHVibGljIHdlYnJ0Yzo6
VmlkZW9EZWNvZGVyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW1vdGVWaWRlb0RlY29kZXIo
V2ViS2l0VmlkZW9EZWNvZGVyKTsKKyAgICB+UmVtb3RlVmlkZW9EZWNvZGVyKCkgPSBkZWZhdWx0
OworCisgICAgc3RhdGljIHZvaWQgZGVjb2RlQ29tcGxldGUodm9pZCogY2FsbGJhY2ssIHVpbnQz
Ml90IHRpbWVTdGFtcCwgQ1ZQaXhlbEJ1ZmZlclJlZiwgdWludDMyX3QgdGltZVN0YW1wUlRQKTsK
KworcHJpdmF0ZToKKyAgICBpbnQzMl90IEluaXREZWNvZGUoY29uc3QgVmlkZW9Db2RlYyosIGlu
dDMyX3QgbnVtYmVyX29mX2NvcmVzKSBmaW5hbDsKKyAgICBpbnQzMl90IERlY29kZShjb25zdCBF
bmNvZGVkSW1hZ2UmLCBib29sIG1pc3NpbmdfZnJhbWVzLCBpbnQ2NF90IHJlbmRlcl90aW1lX21z
KSBmaW5hbDsKKyAgICBpbnQzMl90IFJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjayhEZWNv
ZGVkSW1hZ2VDYWxsYmFjayopIGZpbmFsOworICAgIGludDMyX3QgUmVsZWFzZSgpIGZpbmFsOwor
ICAgIGNvbnN0IGNoYXIqIEltcGxlbWVudGF0aW9uTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
ICJSZW1vdGVWaWRlb1Rvb2xCb3giOyB9CisKKyAgICBXZWJLaXRWaWRlb0RlY29kZXIgbV9pbnRl
cm5hbERlY29kZXI7Cit9OworCit1c2luZyBMb2NhbERlY29kZXIgPSB2b2lkKjsKK3VzaW5nIExv
Y2FsRGVjb2RlckNhbGxiYWNrID0gdm9pZCAoXikoQ1ZQaXhlbEJ1ZmZlclJlZiwgdWludDMyX3Qg
dGltZVN0YW1wLCB1aW50MzJfdCB0aW1lU3RhbXBOcyk7Cit2b2lkKiBjcmVhdGVMb2NhbERlY29k
ZXIoTG9jYWxEZWNvZGVyQ2FsbGJhY2spOwordm9pZCByZWxlYXNlTG9jYWxEZWNvZGVyKExvY2Fs
RGVjb2Rlcik7CitpbnQzMl90IGRlY29kZUZyYW1lKExvY2FsRGVjb2RlciwgdWludDMyX3QgdGlt
ZVN0YW1wLCBjb25zdCB1aW50OF90Kiwgc2l6ZV90KTsKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGls
aXRpZXMubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
V2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQppbmRleCAyZmU1N2IyMDExMGIzZTQ1NTc4N2YzZTcy
OGM5MDJjZTVkNmQ0NGMxLi4xMjFlZGE5OGQ4ZmZlYjA2YTlmMzBkZTM4ODEwZDcwNWQ0MDY4YjBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQpAQCAtMjks
NyArMjksMTAgQEAKICNpbXBvcnQgIldlYlJUQy9SVENWaWRlb0NvZGVjSDI2NC5oIgogCiAjaW5j
bHVkZSAiYXBpL3ZpZGVvL3ZpZGVvX2ZyYW1lLmgiCisjaW5jbHVkZSAiaGVscGVycy9zY29wZWRf
Y2Z0eXBlcmVmLmgiCiAjaW5jbHVkZSAibmF0aXZlL3NyYy9vYmpjX2ZyYW1lX2J1ZmZlci5oIgor
I2luY2x1ZGUgInJ0Y19iYXNlL3RpbWVfdXRpbHMuaCIKKyNpbmNsdWRlICJzZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuaCIKICNpbmNsdWRlICJ0aGlyZF9wYXJ0
eS9saWJ5dXYvaW5jbHVkZS9saWJ5dXYvY29udmVydF9mcm9tLmgiCiAjaW5jbHVkZSAid2VicnRj
L3J0Y19iYXNlL2NoZWNrcy5oIgogI2luY2x1ZGUgIkZyYW1ld29yay9IZWFkZXJzL1dlYlJUQy9S
VENWaWRlb0NvZGVjRmFjdG9yeS5oIgpAQCAtMTE2LDExICsxMTksNiBAQCBzdGQ6OnVuaXF1ZV9w
dHI8d2VicnRjOjpWaWRlb0VuY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXRFbmNvZGVyRmFjdG9y
eShXZWJLaXRDbwogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvRW5jb2RlckZhY3Rv
cnlXaXRoU2ltdWxjYXN0PihzdGQ6Om1vdmUoaW50ZXJuYWxGYWN0b3J5KSk7CiB9CiAKLXN0ZDo6
dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdERlY29k
ZXJGYWN0b3J5KFdlYktpdENvZGVjU3VwcG9ydCBjb2RlY1N1cHBvcnQpCi17Ci0gICAgcmV0dXJu
IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3RvcnkoY29kZWNTdXBwb3J0ID09IFdlYktpdENv
ZGVjU3VwcG9ydDo6SDI2NEFuZFZQOCA/IFtbUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rvcnkg
YWxsb2NdIGluaXRdIDogW1tSVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NCBhbGxvY10gaW5pdF0p
OwotfQotCiBzdGF0aWMgYm9vbCBoMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZCA9IHRydWU7CiB2
b2lkIHNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkKGJvb2wgYWxsb3dlZCkKIHsKQEAgLTE2
OCw3ICsxNjYsNiBAQCBzdGF0aWMgYm9vbCBDb3B5VmlkZW9GcmFtZVRvUGl4ZWxCdWZmZXIoY29u
c3Qgd2VicnRjOjpJNDIwQnVmZmVySW50ZXJmYWNlKiBmcmFtZQogICAgIHJldHVybiB0cnVlOwog
fQogCi0KIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXJGcm9tRnJhbWUoY29uc3QgVmlkZW9G
cmFtZSYgZnJhbWUsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248Q1ZQaXhlbEJ1ZmZlclJlZihzaXplX3Qs
IHNpemVfdCk+JiBtYWtlUGl4ZWxCdWZmZXIpCiB7CiAgICAgaWYgKGZyYW1lLnZpZGVvX2ZyYW1l
X2J1ZmZlcigpLT50eXBlKCkgIT0gVmlkZW9GcmFtZUJ1ZmZlcjo6VHlwZTo6a05hdGl2ZSkgewpA
QCAtMTg4LDQgKzE4NSwxMTcgQEAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlckZyb21GcmFt
ZShjb25zdCBWaWRlb0ZyYW1lJiBmcmFtZSwgY29uc3Qgc3RkOjpmdW5jdGkKICAgICByZXR1cm4g
cnRjUGl4ZWxCdWZmZXIucGl4ZWxCdWZmZXI7CiB9CiAKK3N0cnVjdCBWaWRlb0RlY29kZXJDYWxs
YmFja3MgeworICAgIFZpZGVvRGVjb2RlckNyZWF0ZUNhbGxiYWNrIGNyZWF0ZUNhbGxiYWNrOwor
ICAgIFZpZGVvRGVjb2RlclJlbGVhc2VDYWxsYmFjayByZWxlYXNlQ2FsbGJhY2s7CisgICAgVmlk
ZW9EZWNvZGVyRGVjb2RlQ2FsbGJhY2sgZGVjb2RlQ2FsbGJhY2s7CisgICAgVmlkZW9EZWNvZGVy
UmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrIHJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxs
YmFjazsKK307CisKK3N0YXRpYyBWaWRlb0RlY29kZXJDYWxsYmFja3MmIHZpZGVvRGVjb2RlckNh
bGxiYWNrcygpIHsKKyAgICBzdGF0aWMgVmlkZW9EZWNvZGVyQ2FsbGJhY2tzIGNhbGxiYWNrczsK
KyAgICByZXR1cm4gY2FsbGJhY2tzOworfQorCit2b2lkIHNldFZpZGVvRGVjb2RlckNhbGxiYWNr
cyhWaWRlb0RlY29kZXJDcmVhdGVDYWxsYmFjayBjcmVhdGVDYWxsYmFjaywgVmlkZW9EZWNvZGVy
UmVsZWFzZUNhbGxiYWNrIHJlbGVhc2VDYWxsYmFjaywgVmlkZW9EZWNvZGVyRGVjb2RlQ2FsbGJh
Y2sgZGVjb2RlQ2FsbGJhY2ssIFZpZGVvRGVjb2RlclJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxs
YmFjayByZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2spCit7CisgICAgYXV0byYgY2FsbGJh
Y2tzID0gdmlkZW9EZWNvZGVyQ2FsbGJhY2tzKCk7CisgICAgY2FsbGJhY2tzLmNyZWF0ZUNhbGxi
YWNrID0gY3JlYXRlQ2FsbGJhY2s7CisgICAgY2FsbGJhY2tzLnJlbGVhc2VDYWxsYmFjayA9IHJl
bGVhc2VDYWxsYmFjazsKKyAgICBjYWxsYmFja3MuZGVjb2RlQ2FsbGJhY2sgPSBkZWNvZGVDYWxs
YmFjazsKKyAgICBjYWxsYmFja3MucmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrID0gcmVn
aXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrOworfQorCitSZW1vdGVWaWRlb0RlY29kZXI6OlJl
bW90ZVZpZGVvRGVjb2RlcihXZWJLaXRWaWRlb0RlY29kZXIgaW50ZXJuYWxEZWNvZGVyKQorICAg
IDogbV9pbnRlcm5hbERlY29kZXIoaW50ZXJuYWxEZWNvZGVyKQoreworfQorCit2b2lkIFJlbW90
ZVZpZGVvRGVjb2Rlcjo6ZGVjb2RlQ29tcGxldGUodm9pZCogY2FsbGJhY2ssIHVpbnQzMl90IHRp
bWVTdGFtcCwgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1w
UlRQKQoreworICAgIGF1dG8gdmlkZW9GcmFtZSA9IFZpZGVvRnJhbWU6OkJ1aWxkZXIoKS5zZXRf
dmlkZW9fZnJhbWVfYnVmZmVyKHBpeGVsQnVmZmVyVG9GcmFtZShwaXhlbEJ1ZmZlcikpCisgICAg
ICAgIC5zZXRfdGltZXN0YW1wX3J0cCh0aW1lU3RhbXBSVFApCisgICAgICAgIC5zZXRfdGltZXN0
YW1wX21zKDApCisgICAgICAgIC5zZXRfcm90YXRpb24oKFZpZGVvUm90YXRpb24pUlRDVmlkZW9S
b3RhdGlvbl8wKQorICAgICAgICAuYnVpbGQoKTsKKyAgICB2aWRlb0ZyYW1lLnNldF90aW1lc3Rh
bXAodGltZVN0YW1wKTsKKworICAgIHN0YXRpY19jYXN0PERlY29kZWRJbWFnZUNhbGxiYWNrKj4o
Y2FsbGJhY2spLT5EZWNvZGVkKHZpZGVvRnJhbWUpOworfQorCitpbnQzMl90IFJlbW90ZVZpZGVv
RGVjb2Rlcjo6SW5pdERlY29kZShjb25zdCBWaWRlb0NvZGVjKiBjb2RlY19zZXR0aW5ncywgaW50
MzJfdCBudW1iZXJfb2ZfY29yZXMpCit7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19P
SzsKK30KKworaW50MzJfdCBSZW1vdGVWaWRlb0RlY29kZXI6OkRlY29kZShjb25zdCBFbmNvZGVk
SW1hZ2UmIGlucHV0X2ltYWdlLCBib29sIG1pc3NpbmdfZnJhbWVzLCBpbnQ2NF90IHJlbmRlcl90
aW1lX21zKQoreworICAgIHJldHVybiB2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5kZWNvZGVDYWxs
YmFjayhtX2ludGVybmFsRGVjb2RlciwgaW5wdXRfaW1hZ2UuVGltZXN0YW1wKCksIGlucHV0X2lt
YWdlLmRhdGEoKSwgaW5wdXRfaW1hZ2Uuc2l6ZSgpKTsKK30KKworaW50MzJfdCBSZW1vdGVWaWRl
b0RlY29kZXI6OlJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjayhEZWNvZGVkSW1hZ2VDYWxs
YmFjayogY2FsbGJhY2spCit7CisgICAgcmV0dXJuIHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLnJl
Z2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjayhtX2ludGVybmFsRGVjb2RlciwgY2FsbGJhY2sp
OworfQorCitpbnQzMl90IFJlbW90ZVZpZGVvRGVjb2Rlcjo6UmVsZWFzZSgpCit7CisgICAgcmV0
dXJuIHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLnJlbGVhc2VDYWxsYmFjayhtX2ludGVybmFsRGVj
b2Rlcik7Cit9CisKK1JlbW90ZVZpZGVvRGVjb2RlckZhY3Rvcnk6OlJlbW90ZVZpZGVvRGVjb2Rl
ckZhY3Rvcnkoc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2RlckZhY3Rvcnk+JiYgaW50ZXJuYWxG
YWN0b3J5KQorICAgIDogbV9pbnRlcm5hbEZhY3Rvcnkoc3RkOjptb3ZlKGludGVybmFsRmFjdG9y
eSkpCit7Cit9CisKK3N0ZDo6dmVjdG9yPFNkcFZpZGVvRm9ybWF0PiBSZW1vdGVWaWRlb0RlY29k
ZXJGYWN0b3J5OjpHZXRTdXBwb3J0ZWRGb3JtYXRzKCkgY29uc3QKK3sKKyAgICBzdGQ6OnZlY3Rv
cjxTZHBWaWRlb0Zvcm1hdD4gc3VwcG9ydGVkX2Zvcm1hdHM7CisgICAgc3VwcG9ydGVkX2Zvcm1h
dHMucHVzaF9iYWNrKFNkcFZpZGVvRm9ybWF0IHsgIkgyNjQiIH0pOworICAgIHN1cHBvcnRlZF9m
b3JtYXRzLnB1c2hfYmFjayhTZHBWaWRlb0Zvcm1hdCB7ICJWUDgiIH0pOworICAgIHJldHVybiBz
dXBwb3J0ZWRfZm9ybWF0czsKK30KKworc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4gUmVt
b3RlVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKGNvbnN0IFNkcFZpZGVv
Rm9ybWF0JiBmb3JtYXQpCit7CisgICAgaWYgKCF2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5jcmVh
dGVDYWxsYmFjaykKKyAgICAgICAgcmV0dXJuIG1faW50ZXJuYWxGYWN0b3J5LT5DcmVhdGVWaWRl
b0RlY29kZXIoZm9ybWF0KTsKKworICAgIGF1dG8gaWRlbnRpZmllciA9IHZpZGVvRGVjb2RlckNh
bGxiYWNrcygpLmNyZWF0ZUNhbGxiYWNrKGZvcm1hdCk7CisgICAgaWYgKCFpZGVudGlmaWVyKQor
ICAgICAgICByZXR1cm4gbV9pbnRlcm5hbEZhY3RvcnktPkNyZWF0ZVZpZGVvRGVjb2Rlcihmb3Jt
YXQpOworCisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVyPihp
ZGVudGlmaWVyKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFj
dG9yeT4gY3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0IGNvZGVj
U3VwcG9ydCkKK3sKKyAgICBhdXRvIGludGVybmFsRmFjdG9yeSA9IE9iakNUb05hdGl2ZVZpZGVv
RGVjb2RlckZhY3RvcnkoY29kZWNTdXBwb3J0ID09IFdlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFu
ZFZQOCA/IFtbUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgYWxsb2NdIGluaXRdIDogW1tS
VENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NCBhbGxvY10gaW5pdF0pOworICAgIGlmICh2aWRlb0Rl
Y29kZXJDYWxsYmFja3MoKS5jcmVhdGVDYWxsYmFjaykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeT4oc3RkOjptb3ZlKGludGVybmFsRmFj
dG9yeSkpOworICAgIHJldHVybiBpbnRlcm5hbEZhY3Rvcnk7Cit9CisKK3ZvaWQqIGNyZWF0ZUxv
Y2FsRGVjb2RlcihMb2NhbERlY29kZXJDYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBhdXRvIGRl
Y29kZXIgPSBbW1JUQ1ZpZGVvRGVjb2RlckgyNjQgYWxsb2NdIGluaXRdOworICAgIFtkZWNvZGVy
IHNldENhbGxiYWNrOl4oUlRDVmlkZW9GcmFtZSAqZnJhbWUpIHsKKyAgICAgICAgYXV0byAqYnVm
ZmVyID0gKFJUQ0NWUGl4ZWxCdWZmZXIgKilmcmFtZS5idWZmZXI7CisgICAgICAgIGNhbGxiYWNr
KGJ1ZmZlci5waXhlbEJ1ZmZlciwgZnJhbWUudGltZVN0YW1wTnMsIGZyYW1lLnRpbWVTdGFtcCk7
CisgICAgfV07CisgICAgcmV0dXJuIChfX2JyaWRnZV9yZXRhaW5lZCB2b2lkKilkZWNvZGVyOwor
fQorCit2b2lkIHJlbGVhc2VMb2NhbERlY29kZXIoTG9jYWxEZWNvZGVyIGxvY2FsRGVjb2RlcikK
K3sKKyAgICBSVENWaWRlb0RlY29kZXJIMjY0KiBkZWNvZGVyID0gKF9fYnJpZGdlX3RyYW5zZmVy
IFJUQ1ZpZGVvRGVjb2RlckgyNjQgKikobG9jYWxEZWNvZGVyKTsKKyAgICBbZGVjb2RlciByZWxl
YXNlRGVjb2Rlcl07Cit9CisKK2ludDMyX3QgZGVjb2RlRnJhbWUoTG9jYWxEZWNvZGVyIGxvY2Fs
RGVjb2RlciwgdWludDMyX3QgdGltZVN0YW1wLCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qg
c2l6ZSkKK3sKKyAgICBSVENWaWRlb0RlY29kZXJIMjY0KiBkZWNvZGVyID0gKF9fYnJpZGdlIFJU
Q1ZpZGVvRGVjb2RlckgyNjQgKikobG9jYWxEZWNvZGVyKTsKKyAgICByZXR1cm4gW2RlY29kZXIg
ZGVjb2RlRGF0YTogZGF0YSBzaXplOiBzaXplIHRpbWVTdGFtcDogdGltZVN0YW1wXTsKK30KKwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY0LmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjQuaAppbmRleCBiMTBkMWU2YTA5OTIw
ZTUxZjVmNGY1NjNiNjZlZWI5ZTljZDEyMTczLi4yMmRjYzgwZDhjMGQ2ODJhZTgwMDEyZGVjMDVh
MGYzZWVjMTZlMjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2Rl
ckgyNjQuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjQuaApAQCAt
MTYsNCArMTYsNyBAQAogUlRDX09CSkNfRVhQT1JUCiBfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRp
bWVfbmFtZSgiV0tfUlRDVmlkZW9EZWNvZGVySDI2NCIpKSkKIEBpbnRlcmZhY2UgUlRDVmlkZW9E
ZWNvZGVySDI2NCA6IE5TT2JqZWN0IDxSVENWaWRlb0RlY29kZXI+CistIChOU0ludGVnZXIpZGVj
b2RlRGF0YTooY29uc3QgdWludDhfdCAqKWRhdGEKKyAgICBzaXplOihzaXplX3Qpc2l6ZQorICAg
IHRpbWVTdGFtcDoodWludDMyX3QpdGltZVN0YW1wOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92
aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY0Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENW
aWRlb0RlY29kZXJIMjY0Lm1tCmluZGV4IDhlMmE3ZDljOTBmNzY2ZjlhN2Q3ZTI1OTAxNTFmNTYz
NzhjMWNmZTIuLjRjZTBiYzQ1ZjFlZDc2YjI1NWI2NzI3ZjUyYzI4M2I4ZjBiZGE5OTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NC5tbQorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjQubW0KQEAgLTEwMiw2ICsxMDIsMTMgQEAg
dm9pZCBkZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2sodm9pZCAqZGVjb2RlclJlZiwKICAgICAg
ICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJUaW1lTXMgewogICBSVENfRENIRUNLKGlu
cHV0SW1hZ2UuYnVmZmVyKTsKIAorICByZXR1cm4gW3NlbGYgZGVjb2RlRGF0YTogKHVpbnQ4X3Qg
KilpbnB1dEltYWdlLmJ1ZmZlci5ieXRlcyBzaXplOiBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGgg
dGltZVN0YW1wOiBpbnB1dEltYWdlLnRpbWVTdGFtcF07Cit9CisKKy0gKE5TSW50ZWdlcilkZWNv
ZGVEYXRhOihjb25zdCB1aW50OF90ICopZGF0YQorICAgICAgICBzaXplOihzaXplX3Qpc2l6ZQor
ICAgICAgICB0aW1lU3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcCB7CisKICAgaWYgKF9lcnJvciAh
PSBub0VycikgewogICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIkxhc3QgZnJhbWUgZGVjb2Rl
IGZhaWxlZC4iOwogICAgIF9lcnJvciA9IG5vRXJyOwpAQCAtMTA5LDggKzExNiw3IEBAIHZvaWQg
ZGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZvaWQgKmRlY29kZXJSZWYsCiAgIH0KIAogICBy
dGM6OlNjb3BlZENGVHlwZVJlZjxDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWY+IGlucHV0Rm9y
bWF0ID0KLSAgICAgIHJ0Yzo6U2NvcGVkQ0Yod2VicnRjOjpDcmVhdGVWaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uKCh1aW50OF90ICopaW5wdXRJbWFnZS5idWZmZXIuYnl0ZXMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dEltYWdlLmJ1
ZmZlci5sZW5ndGgpKTsKKyAgICAgIHJ0Yzo6U2NvcGVkQ0Yod2VicnRjOjpDcmVhdGVWaWRlb0Zv
cm1hdERlc2NyaXB0aW9uKGRhdGEsIHNpemUpKTsKICAgaWYgKGlucHV0Rm9ybWF0KSB7CiAgICAg
Ly8gQ2hlY2sgaWYgdGhlIHZpZGVvIGZvcm1hdCBoYXMgY2hhbmdlZCwgYW5kIHJlaW5pdGlhbGl6
ZSBkZWNvZGVyIGlmCiAgICAgLy8gbmVlZGVkLgpAQCAtMTMyLDggKzEzOCw3IEBAIHZvaWQgZGVj
b21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZvaWQgKmRlY29kZXJSZWYsCiAgICAgcmV0dXJuIFdF
QlJUQ19WSURFT19DT0RFQ19FUlJPUjsKICAgfQogICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVC
dWZmZXIgPSBudWxscHRyOwotICBpZiAoIXdlYnJ0Yzo6SDI2NEFubmV4QkJ1ZmZlclRvQ01TYW1w
bGVCdWZmZXIoKHVpbnQ4X3QgKilpbnB1dEltYWdlLmJ1ZmZlci5ieXRlcywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0SW1hZ2UuYnVmZmVyLmxl
bmd0aCwKKyAgaWYgKCF3ZWJydGM6OkgyNjRBbm5leEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVyKGRh
dGEsIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfdmlkZW9Gb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmc2FtcGxlQnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgX21lbW9yeVBvb2wpKSB7CkBAIC0xNDIsMTQgKzE0NywxNCBAQCB2b2lk
IGRlY29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayh2b2lkICpkZWNvZGVyUmVmLAogICBSVENfRENI
RUNLKHNhbXBsZUJ1ZmZlcik7CiAgIFZURGVjb2RlRnJhbWVGbGFncyBkZWNvZGVGbGFncyA9IGtW
VERlY29kZUZyYW1lX0VuYWJsZUFzeW5jaHJvbm91c0RlY29tcHJlc3Npb247CiAgIHN0ZDo6dW5p
cXVlX3B0cjxSVENGcmFtZURlY29kZVBhcmFtcz4gZnJhbWVEZWNvZGVQYXJhbXM7Ci0gIGZyYW1l
RGVjb2RlUGFyYW1zLnJlc2V0KG5ldyBSVENGcmFtZURlY29kZVBhcmFtcyhfY2FsbGJhY2ssIGlu
cHV0SW1hZ2UudGltZVN0YW1wKSk7CisgIGZyYW1lRGVjb2RlUGFyYW1zLnJlc2V0KG5ldyBSVENG
cmFtZURlY29kZVBhcmFtcyhfY2FsbGJhY2ssIHRpbWVTdGFtcCkpOwogICBPU1N0YXR1cyBzdGF0
dXMgPSBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWUoCiAgICAgICBfZGVjb21wcmVz
c2lvblNlc3Npb24sIHNhbXBsZUJ1ZmZlciwgZGVjb2RlRmxhZ3MsIGZyYW1lRGVjb2RlUGFyYW1z
LnJlbGVhc2UoKSwgbnVsbHB0cik7CiAjaWYgZGVmaW5lZChXRUJSVENfSU9TKQogICAvLyBSZS1p
bml0aWFsaXplIHRoZSBkZWNvZGVyIGlmIHdlIGhhdmUgYW4gaW52YWxpZCBzZXNzaW9uIHdoaWxl
IHRoZSBhcHAgaXMKICAgLy8gYWN0aXZlIGFuZCByZXRyeSB0aGUgZGVjb2RlIHJlcXVlc3QuCiAg
IGlmIChzdGF0dXMgPT0ga1ZUSW52YWxpZFNlc3Npb25FcnIgJiYgW3NlbGYgcmVzZXREZWNvbXBy
ZXNzaW9uU2Vzc2lvbl0gPT0gV0VCUlRDX1ZJREVPX0NPREVDX09LKSB7Ci0gICAgZnJhbWVEZWNv
ZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1lRGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgaW5wdXRJ
bWFnZS50aW1lU3RhbXApKTsKKyAgICBmcmFtZURlY29kZVBhcmFtcy5yZXNldChuZXcgUlRDRnJh
bWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCB0aW1lU3RhbXApKTsKICAgICBzdGF0dXMgPSBWVERl
Y29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWUoCiAgICAgICAgIF9kZWNvbXByZXNzaW9uU2Vz
c2lvbiwgc2FtcGxlQnVmZmVyLCBkZWNvZGVGbGFncywgZnJhbWVEZWNvZGVQYXJhbXMucmVsZWFz
ZSgpLCBudWxscHRyKTsKICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCmluZGV4IDkzYzkzMDVmNDIxMDJkNzI2ZTc0
MWU1OWYyMjZiNWVlNDY4OWMxMmEuLjlmZTgyNGIxODczOGVhMDA3ODg0ZjQyNjVhMWQ1OWE1ZTRh
NTIxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90
ZVZpZGVvU2FtcGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9S
ZW1vdGVWaWRlb1NhbXBsZS5jcHAKQEAgLTYxLDYgKzYxLDE3IEBAIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShNZWRpYVNhbXBsZSYm
IHNhbXBsCiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4obmV3
IFJlbW90ZVZpZGVvU2FtcGxlKHN1cmZhY2UsIHNSR0JDb2xvclNwYWNlUmVmKCksIHNhbXBsZS5w
cmVzZW50YXRpb25UaW1lKCksIHNhbXBsZS52aWRlb1JvdGF0aW9uKCksIHNhbXBsZS52aWRlb01p
cnJvcmVkKCkpKTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBSZW1v
dGVWaWRlb1NhbXBsZTo6Y3JlYXRlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIE1lZGlh
VGltZSYmIHByZXNlbnRhdGlvblRpbWUpCit7CisgICAgYXV0byBzdXJmYWNlID0gQ1ZQaXhlbEJ1
ZmZlckdldElPU3VyZmFjZShpbWFnZUJ1ZmZlcik7CisgICAgaWYgKCFzdXJmYWNlKSB7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZTog
Q1ZQaXhlbEJ1ZmZlckdldElPU3VyZmFjZSByZXR1cm5lZCBudWxscHRyIik7CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
VmlkZW9TYW1wbGU+KG5ldyBSZW1vdGVWaWRlb1NhbXBsZShzdXJmYWNlLCBzUkdCQ29sb3JTcGFj
ZVJlZigpLCBXVEZNb3ZlKHByZXNlbnRhdGlvblRpbWUpLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6Tm9uZSwgZmFsc2UpKTsKK30KKwogUmVtb3RlVmlkZW9TYW1wbGU6OlJlbW90ZVZpZGVv
U2FtcGxlKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwg
TWVkaWFUaW1lJiYgdGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb24sIGJv
b2wgbWlycm9yZWQpCiAgICAgOiBtX2lvU3VyZmFjZShXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0
ZUZyb21TdXJmYWNlKHN1cmZhY2UsIGNvbG9yU3BhY2UpKQogICAgICwgbV9yb3RhdGlvbihyb3Rh
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90
ZVZpZGVvU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVW
aWRlb1NhbXBsZS5oCmluZGV4IGYwMmQ0ZmNiNGFiOTNkNjZjMTNkYTA0OGIyNGEyODBkMTczZjZl
OGUuLmJkMjU1Zjc5NDAwNDI3MWUzYWI0ZWIyNjAyN2U2NGE3NGE5Mjg0ODggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaApA
QCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgogI2VuZGlmCiAKK3R5cGVk
ZWYgc3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxCdWZmZXJSZWY7CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGUgewpAQCAtNDcsNiArNDksNyBAQCBwdWJs
aWM6CiAKICNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUoTWVkaWFTYW1wbGUmJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBs
ZT4gY3JlYXRlKENWUGl4ZWxCdWZmZXJSZWYsIE1lZGlhVGltZSYmIHByZXNlbnRhdGlvblRpbWUp
OwogICAgIFdFQkNPUkVfRVhQT1JUIElPU3VyZmFjZVJlZiBzdXJmYWNlKCk7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVC5oCmluZGV4IDE2ZTU1NzZkZGExY2RlNjNmMGQ3YTUzZDlhOTU3
NTc5OTUyODFmMDEuLjNiNzQzMGZmNGM4ZmY4YmQyNzRmYzZiMmVhZDdjZTViYzViMGU1ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9J
bWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKQEAgLTU1LDYgKzU1LDEwIEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBSZWZQdHI8TWVkaWFTYW1wbGU+IGNyZWF0ZU1lZGlhU2FtcGxlKElPU3Vy
ZmFjZVJlZiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgSW50U2l6ZSYsIE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIGJvb2wgbWly
cm9yZWQgPSBmYWxzZSk7CiAjZW5kaWYKIAorI2lmIEhBVkUoSU9TVVJGQUNFKSAmJiAhUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyKElPU3VyZmFjZVJlZiwgY29uc3QgSW50U2l6ZSYpOwor
I2VuZGlmCisKICAgICB1aW50MzJfdCBwaXhlbEZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGl4
ZWxGb3JtYXQ7IH0KIAogcHJpdmF0ZToKQEAgLTYzLDcgKzY3LDYgQEAgcHJpdmF0ZToKICNpZiBI
QVZFKElPU1VSRkFDRSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogICAgIENGRGljdGlvbmFy
eVJlZiBpb1N1cmZhY2VQaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhJT1N1cmZhY2VSZWYpOwog
ICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQ01TYW1wbGVCdWZmZXIoSU9T
dXJmYWNlUmVmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBJbnRTaXplJik7Ci0gICAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyKElPU3VyZmFjZVJlZiwgY29u
c3QgSW50U2l6ZSYpOwogI2VuZGlmCiAKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+
IGNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiwgY29uc3QgSW50U2l6ZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggZTQ4ZGExODA4NTgz
MzMyZWE4NTJjMDdmNTZlYjEyMTk1NDRiZjcyOC4uYWZhMjk4YTBjMTJhZmY5NTg4MzgwMGM1YWJm
NWJkNTRlZDE5ZTE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBA
IC0zMjgsNiArMzI4LDE1IEBAIHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OnNldFVzZURUTFMxMChi
b29sIHVzZURUTFMxMCkKICAgICBtX2ZhY3RvcnktPlNldE9wdGlvbnMob3B0aW9ucyk7CiB9CiAK
K3ZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OnNldFVzZUdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkKK3sK
KyAgICBpZiAobV91c2VHUFVQcm9jZXNzID09IHZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3VzZUdQVVByb2Nlc3MgPSB2YWx1ZTsKKyAgICBtX2ZhY3RvcnkgPSBudWxscHRyOworfQor
CiBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGli
V2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rp
b25PYnNlcnZlciYgb2JzZXJ2ZXIsIHJ0Yzo6TmV0d29ya01hbmFnZXImIG5ldHdvcmtNYW5hZ2Vy
LCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkmIHBhY2tldFNvY2tldEZhY3RvcnksIHdlYnJ0Yzo6
UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
LCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpBc3luY1Jlc29sdmVyRmFjdG9yeT4mJiBhc3luY1Jl
c29sdmVGYWN0b3J5KQogewogICAgIGF1dG8mIGZhY3RvcnlBbmRUaHJlYWRzID0gZ2V0U3RhdGlj
RmFjdG9yeUFuZFRocmVhZHMobV91c2VOZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZlcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IGU4Zjk5Yzc2ODQ4MWE1YjUwMzRj
YmMzNWZkYTAzMGZmMGU5MzNiMWUuLjY3ODU5YjUzM2UyMjYxYTJmZDEzYjBkZWZjY2Q5MWJmYjVl
ZjE5N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC0xMTksNiArMTE5
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RW5hYmxlTG9nZ2luZyhib29sKTsKICAgICB2b2lk
IHNldEVuYWJsZVdlYlJUQ0VuY3J5cHRpb24oYm9vbCk7CiAgICAgdm9pZCBzZXRVc2VEVExTMTAo
Ym9vbCk7CisgICAgdm9pZCBzZXRVc2VHUFVQcm9jZXNzKGJvb2wpOwogCiAgICAgY2xhc3MgU3Vz
cGVuZGFibGVTb2NrZXRGYWN0b3J5IDogcHVibGljIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSB7
CiAgICAgcHVibGljOgpAQCAtMTQ2LDYgKzE0Nyw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1f
c3VwcG9ydHNWUDggeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVMb2dnaW5nIHsgdHJ1ZSB9
OwogICAgIGJvb2wgbV91c2VEVExTMTAgeyBmYWxzZSB9OworICAgIGJvb2wgbV91c2VHUFVQcm9j
ZXNzIHsgZmFsc2UgfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlckNvY29hLmgKaW5kZXggZDNjMzgzOTVjMDc3ZjM0NjA0YjViYjBmNGI0M2FlMTEwMGNk
ZjIzMy4uMjM5ZTM0YTY4NWI0MTBiYzkzOGMxNDkxNWU5N2NmMTgyZTA3ZWUyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oCkBAIC00MSw5ICs0MSwxMCBAQCBw
dWJsaWM6CiAgICAgTGliV2ViUlRDUHJvdmlkZXJDb2NvYSgpID0gZGVmYXVsdDsKICAgICB+TGli
V2ViUlRDUHJvdmlkZXJDb2NvYSgpOwogCisgICAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6Vmlk
ZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlRGVjb2RlckZhY3RvcnkoKSBvdmVycmlkZTsKKwogcHJp
dmF0ZToKICAgICB2b2lkIHNldEFjdGl2ZShib29sKSBmaW5hbDsKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVEZWNvZGVyRmFjdG9yeSgpIGZp
bmFsOwogICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IGNy
ZWF0ZUVuY29kZXJGYWN0b3J5KCkgZmluYWw7CiAKICAgICB2b2lkIHNldEgyNjRIYXJkd2FyZUVu
Y29kZXJBbGxvd2VkKGJvb2wgYWxsb3dlZCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKaW5kZXggNDcwMThiZDM2ODIyNzNiMmU5ZDA0YzhhZjAzZjRkZjA3Y2FhMjlhZS4u
MzJkM2RiMGMwMjFlMTk4OWEyNjYwM2ZjZTQ1OTRlNzY3YzM5ZWFiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTM3LDYgKzUzNyw3IEBAIHZvaWQgSW50ZXJuYWxzOjpy
ZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2UpCiAgICAgcnRjUHJvdmlkZXIuZGlzYWJs
ZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCk7CiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5zZXRXZWJSVENWUDhDb2RlY0VuYWJsZWQodHJ1ZSk7CiAgICAgcGFn
ZS5zZXR0aW5ncygpLnNldFdlYlJUQ0VuY3J5cHRpb25FbmFibGVkKHRydWUpOworICAgIHJ0Y1By
b3ZpZGVyLnNldFVzZUdQVVByb2Nlc3MoZmFsc2UpOwogI2VuZGlmCiAKICAgICBwYWdlLnNldHRp
bmdzKCkuc2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoZmFsc2UpOwpAQCAtMTU1MCw2ICsxNTUx
LDE1IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRVc2VEVExTMTAoYm9vbCB1c2VEVExTMTApCiAjZW5k
aWYKIH0KIAordm9pZCBJbnRlcm5hbHM6OnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMoYm9vbCB1
c2VHUFVQcm9jZXNzKQoreworI2lmIFVTRShMSUJXRUJSVEMpCisgICAgYXV0byogZG9jdW1lbnQg
PSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFn
ZSgpKQorICAgICAgICByZXR1cm47CisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+bGliV2ViUlRDUHJv
dmlkZXIoKS5zZXRVc2VHUFVQcm9jZXNzKHVzZUdQVVByb2Nlc3MpOworI2VuZGlmCit9CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCBmZTRhODU2MjMxYzk2NjI3NGE1M2U2NGQxM2NhZTMwMDQzYjE3YTA4Li43M2QwNDVh
MGNmMjYyNzExMjI1NDY4MjI2Yzk2YmM5MTQ0ZTlhMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTU1OCw2ICs1NTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseVJvdGF0
aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMoUlRDUGVlckNvbm5lY3Rpb24mKTsKICAgICB2b2lk
IHNldEVuYWJsZVdlYlJUQ0VuY3J5cHRpb24oYm9vbCk7CiAgICAgdm9pZCBzZXRVc2VEVExTMTAo
Ym9vbCk7CisgICAgdm9pZCBzZXRVc2VHUFVQcm9jZXNzRm9yV2ViUlRDKGJvb2wpOwogI2VuZGlm
CiAKICAgICBTdHJpbmcgZ2V0SW1hZ2VTb3VyY2VVUkwoRWxlbWVudCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGY3NTljYzljNjkxMTAyYTA3YmIyYjcwNWFlNDBhNDEw
OTQxMTc1OTEuLmVkYzUwOWUyNGZlYjI3MmVlYTk5MTkxNzQwZmI5NzI4MWFhZWQxMTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTYzMiw2ICs2MzIsNyBAQCBlbnVtIENv
bXBvc2l0aW5nUG9saWN5IHsKICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10gdm9pZCBjbGVhclBl
ZXJDb25uZWN0aW9uRmFjdG9yeSgpOwogICAgIFtDb25kaXRpb25hbD1XRUJfUlRDXSB2b2lkIHNl
dEVuYWJsZVdlYlJUQ0VuY3J5cHRpb24oYm9vbGVhbiBlbmFibGVkKTsKICAgICBbQ29uZGl0aW9u
YWw9V0VCX1JUQ10gdm9pZCBzZXRVc2VEVExTMTAoYm9vbGVhbiB1c2UpOworICAgIFtDb25kaXRp
b25hbD1XRUJfUlRDXSB2b2lkIHNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMoYm9vbGVhbiB1c2Up
OwogCiAgICAgW0NvbmRpdGlvbmFsPVZJREVPXSB2b2lkIHNpbXVsYXRlU3lzdGVtU2xlZXAoKTsK
ICAgICBbQ29uZGl0aW9uYWw9VklERU9dIHZvaWQgc2ltdWxhdGVTeXN0ZW1XYWtlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMDdkMzMw
NWI4MjM5NzJlNzg3ZmZlZTdkYjgwZTExNGQyMjUxMTI2Ni4uZjM3ZjNiZDFmMWZkNGI4MjdhYTg5
YTMzMTQxNDkyMGQ3YTExM2FjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdApAQCAtMTcsNiArMTcsNyBAQCAkKFBST0pFQ1RfRElSKS9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9D
dXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3Nh
Z2VzLmluCkBAIC05OSw2ICsxMDAsOCBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0RhdGFi
YXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDUmVtb3RlQ29kZWNzLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA5ODY5Y2YxNzE2MWZlZDk0NDky
YjJlYjY3NmEzMDk2MTE3Y2U2NTJmLi43MGFlYjdiM2VmNmUwZTFjNTM1MDM1MzNhYjI5MDgwYmI4
YWM3N2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKQEAgLTQ4LDYgKzQ4LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VzCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVz
c2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTGliV2ViUlRDQ29kZWNzTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvTGliV2ViUlRDQ29kZWNzTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvTGliV2ViUlRDQ29kZWNzTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL0xpYldlYlJUQ0NvZGVjc1By
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MaWJXZWJSVENDb2RlY3NQcm94eU1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9MaWJXZWJSVENSZW1vdGVDb2RlY3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MaWJXZWJSVENSZW1vdGVDb2RlY3NNZXNz
YWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9MaWJX
ZWJSVENSZW1vdGVDb2RlY3NNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9O
UE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZXNSZXBs
aWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxN2JkY2I1ZjJkYWFhOWJiMWI2
YWY0ZDc0YWI1OGU1MDRhODEyMTgzLi4zODUwMjc3NDMyZTE4OTNlNjRjZDIzMTk0MDI0ZjdjYmRk
NzcwZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNSw2ICsyNSw3IEBAIFZQ
QVRIID0gXAogICAgICQoV2ViS2l0MikvR1BVUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9HUFVQ
cm9jZXNzL21hYyBcCiAgICAgJChXZWJLaXQyKS9HUFVQcm9jZXNzL21lZGlhIFwKKyAgICAkKFdl
YktpdDIpL0dQVVByb2Nlc3Mvd2VicnRjIFwKICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNz
IFwKICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMgXAogICAgICQoV2ViS2l0
MikvTmV0d29ya1Byb2Nlc3MvY2FjaGUgXApAQCAtNTEsNiArNTIsNyBAQCBWUEFUSCA9IFwKICAg
ICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9HUFUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEgXAorICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjIFwKICAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvSWNvbkRhdGFiYXNlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFDYWNo
ZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhU3RyZWFtIFwKQEAgLTEwOSwxMiAr
MTExLDE0IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIERyYXdpbmdBcmVhUHJveHkgXAog
ICAgIEVkaXRhYmxlSW1hZ2VDb250cm9sbGVyIFwKICAgICBFdmVudERpc3BhdGNoZXIgXAotICAg
IExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciBcCi0gICAgTGVnYWN5Q3VzdG9tUHJvdG9jb2xN
YW5hZ2VyUHJveHkgXAogICAgIEdQVVByb2Nlc3MgXAogICAgIEdQVVByb2Nlc3NQcm94eSBcCiAg
ICAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mg
XAorICAgIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciBcCisgICAgTGVnYWN5Q3VzdG9tUHJv
dG9jb2xNYW5hZ2VyUHJveHkgXAorICAgIExpYldlYlJUQ0NvZGVjcyBcCisgICAgTGliV2ViUlRD
Q29kZWNzUHJveHkgXAogICAgIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyIFwKICAgICBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyBcCiAgICAgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFn
ZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCmluZGV4IDU0ODAzY2E4MGRhYzQzMzRlZDJlMjQ3ZmY3MjNiYzIxMjZm
YWZlNTUuLjhkNmU3OGY3MGQxOTc4MjcyNTY1NmE5OTU2NmU4YmZhM2IzOWU3MDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJHUFVQcm9jZXNzLmgiCiAjaW5jbHVk
ZSAiR1BVUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eS5oIgorI2luY2x1ZGUgIkxpYldl
YlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKQEAgLTEyNyw2ICsxMjksMTYgQEAgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IFVTRShMSUJXRUJSVEMpCitMaWJXZWJSVENDb2RlY3NQcm94eSYgR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6bGliV2ViUlRDQ29kZWNzUHJveHkoKQoreworICAgIGlmICghbV9saWJXZWJSVEND
b2RlY3NQcm94eSkKKyAgICAgICAgbV9saWJXZWJSVENDb2RlY3NQcm94eSA9IG1ha2VVbmlxdWU8
TGliV2ViUlRDQ29kZWNzUHJveHk+KCp0aGlzKTsKKworICAgIHJldHVybiAqbV9saWJXZWJSVEND
b2RlY3NQcm94eTsKK30KKyNlbmRpZgorCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgewpAQCAtMTM5LDYgKzE1MSwxMiBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSQog
ICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVT
RShMSUJXRUJSVEMpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1l
c3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Cisg
ICAgICAgIGxpYldlYlJUQ0NvZGVjc1Byb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJv
Y2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRp
ZgogfQogCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4
IDg3M2RjZWEyOTRkOTYzOGUwNjJhMGNkNmEwOTE0ZjI1MzNkYWVjNjAuLjhmYjIwZjI5NjcwMzdm
NTQ5OWQ4ZTEwMTNjNDk1NjhmMzA5OWYyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzksNiArMzksNyBAQAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nlc3M7CitjbGFzcyBMaWJXZWJSVEND
b2RlY3NQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3Mg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIApAQCAtNjMsNiArNjQsOSBAQCBwcml2YXRl
OgogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYsIFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFBBTDo6U2Vzc2lv
bklEKTsKIAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiByZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eSgpOworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRD
KQorICAgIExpYldlYlJUQ0NvZGVjc1Byb3h5JiBsaWJXZWJSVENDb2RlY3NQcm94eSgpOworI2Vu
ZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgp
OwogI2VuZGlmCkBAIC04Myw2ICs4Nyw5IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKICNlbmRp
ZgorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQorICAgIHN0ZDo6dW5pcXVl
X3B0cjxMaWJXZWJSVENDb2RlY3NQcm94eT4gbV9saWJXZWJSVENDb2RlY3NQcm94eTsKKyNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk4
ODAzOTdlZjgxMDliY2ZmYzUyYjdkYjg3NTcxZjY0NmJjNDc4ZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaApA
QCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoTElC
V0VCUlRDKSAmJiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUlRDRGVjb2RlcklkZW50aWZpZXIu
aCIKKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsK
K2NsYXNzIERhdGFSZWZlcmVuY2U7Cit9CisKK25hbWVzcGFjZSB3ZWJydGMgewordXNpbmcgTG9j
YWxEZWNvZGVyID0gdm9pZCo7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOworCitjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eSA6IHBy
aXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIGV4cGxpY2l0IExpYldlYlJUQ0NvZGVjc1Byb3h5KEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmKTsKKyAgICB+TGliV2ViUlRDQ29kZWNzUHJveHkoKTsKKworICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKTsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVy
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKKyAgICB2b2lkIGNyZWF0ZURlY29kZXIoUlRDRGVjb2RlcklkZW50aWZpZXIp
OworICAgIHZvaWQgcmVsZWFzZURlY29kZXIoUlRDRGVjb2RlcklkZW50aWZpZXIpOworICAgIHZv
aWQgZGVjb2RlRnJhbWUoUlRDRGVjb2RlcklkZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgSGFzaE1hcDxSVENEZWNvZGVy
SWRlbnRpZmllciwgd2VicnRjOjpMb2NhbERlY29kZXI+IG1fZGVjb2RlcnM7Cit9OworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdhMTMz
NGRjZDBkM2FhMWRiOWQ1MDE1NTRmMWEzMDljYzY1NzI3MAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTAsMCArMSwzMiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IExpYldlYlJUQ0NvZGVjc1Byb3h5IE5vdFJlZkNvdW50
ZWQgeworICAgIENyZWF0ZURlY29kZXIoV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmllciBpZCkK
KyAgICBSZWxlYXNlRGVjb2RlcihXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyIGlkKQorICAg
IERlY29kZUZyYW1lKFdlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXIgaWQsIHVpbnQzMl90IHRp
bWVTdGFtcCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5t
bSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHku
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2FmYWI2YWY4ZDdmMDNiNzI0MjNiYjNmOTAyZDdlZGExZTZhNjA2Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzUHJveHkubW0KQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eS5oIgorCisjaW5jbHVk
ZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aCIKKyNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorI2luY2x1ZGUgPHdlYnJ0
Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUu
aD4KKworI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitMaWJXZWJSVENDb2RlY3NQcm94eTo6
TGliV2ViUlRDQ29kZWNzUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlv
bikKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uKQoreworfQor
CitMaWJXZWJSVENDb2RlY3NQcm94eTo6fkxpYldlYlJUQ0NvZGVjc1Byb3h5KCkKK3sKKyAgICBm
b3IgKGF1dG8gZGVjb2RlciA6IG1fZGVjb2RlcnMudmFsdWVzKCkpCisgICAgICAgIHdlYnJ0Yzo6
cmVsZWFzZUxvY2FsRGVjb2RlcihkZWNvZGVyKTsKK30KKwordm9pZCBMaWJXZWJSVENDb2RlY3NQ
cm94eTo6Y3JlYXRlRGVjb2RlcihSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIEFTU0VSVCghbV9kZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9kZWNv
ZGVycy5hZGQoaWRlbnRpZmllciwgd2VicnRjOjpjcmVhdGVMb2NhbERlY29kZXIoXihDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGlt
ZVN0YW1wKSB7CisgICAgICAgIGlmIChhdXRvIHNhbXBsZSA9IFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUocGl4ZWxCdWZmZXIsIE1lZGlhVGltZSh0aW1lU3RhbXBOcywgMSkpKQor
ICAgICAgICAgICAgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6OkNvbXBsZXRlZERlY29kaW5nIHsgaWRlbnRpZmll
ciwgdGltZVN0YW1wLCAqc2FtcGxlIH0sIDApOworICAgIH0pKTsKK30KKwordm9pZCBMaWJXZWJS
VENDb2RlY3NQcm94eTo6cmVsZWFzZURlY29kZXIoUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBBU1NFUlQobV9kZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7Cisg
ICAgaWYgKGF1dG8gZGVjb2RlciA9IG1fZGVjb2RlcnMudGFrZShpZGVudGlmaWVyKSkKKyAgICAg
ICAgd2VicnRjOjpyZWxlYXNlTG9jYWxEZWNvZGVyKGRlY29kZXIpOworfQorCit2b2lkIExpYldl
YlJUQ0NvZGVjc1Byb3h5OjpkZWNvZGVGcmFtZShSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlm
aWVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkK
K3sKKyAgICBBU1NFUlQobV9kZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgYXV0
byBkZWNvZGVyID0gbV9kZWNvZGVycy5nZXQoaWRlbnRpZmllcik7CisgICAgaWYgKCFkZWNvZGVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAod2VicnRjOjpkZWNvZGVGcmFtZShkZWNvZGVy
LCB0aW1lU3RhbXAsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSkpCisgICAgICAgIG1fZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TGliV2ViUlRD
Q29kZWNzOjpGYWlsZWREZWNvZGluZyB7IGlkZW50aWZpZXIgfSwgMCk7Cit9CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBmMmU5ZWQ3
YWI1NDAyZWY1MTE4OGY3ZThkYmUzOTZiYThhY2UwZmFkLi43NTNlYTk3ZTJmYjMxMmFmYWE3NzVm
ZmVjZmY5NjZiN2JkOTUyZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKQEAgLTIyMCw2ICsyMjAsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2Fy
ZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAog
ICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAgICAnV2ViS2l0
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6
UlRDRGVjb2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5k
ZXggMTkxNmRiM2Q2NWI2NWVjZGM1ZTAwZWE3ZWMwMWVmZGM2NTY2MTBmZi4uYWNmNDljNzFjNzY0
MzAzNDBiMWE1NWZkNDRlZWUxNDUyYjQ1OGIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC01MDQsMTIgKzUw
NCwxMyBAQCBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKIAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIu
Y3BwCiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCi1XZWJQcm9jZXNz
L05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKK1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFu
bmVsTWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHAK
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRTdHJlYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKaW5kZXggYTRhYTU1ZTJhYTE5YTE0NjYyNTRiYmYxYmJjNzIyODk5YjZjNjI3OC4uYzcxM2Jh
ZTM4ODdhY2VmNzlkNDM5ZTkwMWVhN2E4Mjg1NjA0YjlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dApAQCAtNjEsNiArNjEsNyBAQCBHUFVQcm9jZXNzL2lvcy9HUFVQcm9jZXNzSU9TLm1tCiBHUFVQ
cm9jZXNzL21hYy9HUFVQcm9jZXNzTWFjLm1tCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KIEdQ
VVByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50
Lm1tCiAKIFBsYXRmb3JtL2NmL01vZHVsZUNGLmNwcApAQCAtNjMzLDcgKzYzNCw3IEBAIEVkaXRh
YmxlSW1hZ2VDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKIEdQVVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAKIEdQVVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCi0vL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKLS8vUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwCitMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAKK0xpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKIFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBlM2I5MTkyMGM5YjhhM2YzNmEwYmQxNDhjYTg1OGRiZGRjYjNh
MDg3Li43YTJlODFlNDIxZTRjODQ1ZDA1N2ZlZGRlN2ZjZmFmNzJlNWRlOGNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxNiw2ICs5
MTYsNyBAQAogCQk0MURDNDU5QzFFM0RCQjI4MDBCMTFGNTEgLyogTGliV2ViUlRDU29ja2V0Q2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURD
NDU5QTFFM0RCQjI0MDBCMTFGNTEgLyogTGliV2ViUlRDU29ja2V0Q2xpZW50LmggKi87IH07CiAJ
CTQxREM0NTlGMUUzREJEQTUwMEIxMUY1MSAvKiBXZWJSVENTb2NrZXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUYzMUUzQkZFN0YwMDFBRTY3
OCAvKiBXZWJSVENTb2NrZXQuaCAqLzsgfTsKIAkJNDFERTdDNkMyMjI3OEYxRTAwNTMyQjY1IC8q
IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE1MTg1MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2suY3BwICovOyB9OworCQk0MUUwQTdDQjIzQjY0NUNEMDA1NjEwNjAgLyogV2Vi
U29ja2V0Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTc5MTVBQzIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAg
Ki87IH07CiAJCTQxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxRjA2MEREMTY1NDMxNzUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNDFGQUJEMkExRjRERTAwMTAwNkE2Qzk3IC8qIENhY2hl
U3RvcmFnZUVuZ2luZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MUZBQkQyODFGNERERkRDMDA2QTZDOTcgLyogQ2FjaGVTdG9yYWdlRW5naW5l
Q2FjaGUuaCAqLzsgfTsKIAkJNDFGQUY1RjUxRTNDMDY0OTAwMUFFNjc4IC8qIFdlYlJUQ1Jlc29s
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZB
RjVGNDFFM0MwNjQxMDAxQUU2NzggLyogV2ViUlRDUmVzb2x2ZXIuaCAqLzsgfTsKQEAgLTMyOTEs
NiArMzI5MiwxMCBAQAogCQk0MTUxRTVDMzFGQkI5MEE5MDBFNDdFMkQgLyogRm9ybURhdGFSZWZl
cmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybURhdGFSZWZlcmVu
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1Nzg1MzAyMTI3NkI2RjAwREQz
ODAwIC8qIGNvcHktd2ViY29udGVudC1yZXNvdXJjZXMtdG8tcHJpdmF0ZS1oZWFkZXJzLnNoICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3Jp
cHQuc2g7IHBhdGggPSAiY29weS13ZWJjb250ZW50LXJlc291cmNlcy10by1wcml2YXRlLWhlYWRl
cnMuc2giOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU3RTRBRjIwRTJFQzk4MDBB
NkMwRDcgLyogY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IGNvbS5nb29nbGUubzFkYnJvd3NlcnBsdWdpbi5zYjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDE3MjE5ODkyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaWJXZWJSVENDb2RlY3MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3MjE5OEEyM0I2MTI4MjAwQUU1Njg2IC8qIExp
YldlYlJUQ0NvZGVjcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBM
aWJXZWJSVENDb2RlY3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTcyMTk4
QzIzQjYxMkU4MDBBRTU2ODYgLyogUlRDRGVjb2RlcklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRGVjb2RlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDE3MjE5OEQyM0I2MkM3QzAwQUU1Njg2IC8qIExpYldlYlJUQ0Nv
ZGVjcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzY5MDEzMjJGREQ0MUIwMEIxNTc2RCAvKiBOZXR3
b3JrUlRDUHJvdmlkZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBOZXR3b3JrUlRDUHJvdmlkZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
NzkxNUFDMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWwuY3BwOyBwYXRoID0g
TmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDE3OTE1QUQyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbC5oOyBwYXRoID0gTmV0
d29yay9XZWJTb2NrZXRDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MzMyLDYgKzMzMzcsOSBAQAogCQk0MURDNDU5QTFFM0RCQjI0MDBCMTFGNTEgLyogTGliV2ViUlRD
U29ja2V0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpYldlYlJU
Q1NvY2tldENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURDNDU5RDFF
M0RCQ0YwMDBCMTFGNTEgLyogV2ViUlRDU29ja2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYlJUQ1NvY2tldC5jcHA7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9X
ZWJSVENTb2NrZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURDNDVBMDFF
M0RDNTNDMDBCMTFGNTEgLyogV2ViUlRDUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gV2ViUlRDUmVzb2x2ZXIuY3BwOyBwYXRoID0gTmV0d29yay93ZWJy
dGMvV2ViUlRDUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUUw
QTdDNjIzQjYzOTc4MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGliV2ViUlRDQ29kZWNzUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDFFMEE3QzcyM0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MUUwQTdDODIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRD
Q29kZWNzUHJveHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMaWJXZWJSVENDb2RlY3NQcm94
eS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGMDYwREQxNjU0MzE3NTAwRjMy
ODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk0MUZBQkQyODFGNERERkRDMDA2QTZD
OTcgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDFGQUY1RjMxRTNCRkU3RjAwMUFFNjc4IC8qIFdlYlJUQ1NvY2tldC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJSVENTb2NrZXQuaDsgcGF0aCA9IE5ldHdv
cmsvd2VicnRjL1dlYlJUQ1NvY2tldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjMyNyw2ICs2MzM1LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJ
CQkJMDc5MjMxMkYyMzlCM0IwQzAwOTU5OEUyIC8qIG1lZGlhICovLAorCQkJCTQxNzIxOTg4MjNC
NjEyNjEwMEFFNTY4NiAvKiB3ZWJydGMgKi8sCiAJCQkJMkQ3RTQzQzAyMzc1MkNEOTAwRUE1Q0Ew
IC8qIEdQVVByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKIAkJCQkyRDdFNDNDMzIzNzUyQ0Q5MDBF
QTVDQTAgLyogR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKIAkJCQkyRDdFNDNDMjIzNzUyQ0Q5
MDBFQTVDQTAgLyogR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCkBAIC02MzQy
LDYgKzYzNTEsNyBAQAogCQkJCTJEOUZCMjA0MjM3NTIwOUQwMDQ5RjkzNiAvKiBpb3MgKi8sCiAJ
CQkJMkQ5RkIyMDYyMzc1MjA5RDAwNDlGOTM2IC8qIG1hYyAqLywKIAkJCQkwN0M3NUMxNzIzOTlB
M0RCMDA4OEU2NUIgLyogbWVkaWEgKi8sCisJCQkJNDE3MjE5OEUyM0I2MzNDQTAwQUU1Njg2IC8q
IHdlYnJ0YyAqLywKIAkJCQkyRDlGQjIwQzIzNzUyMDlEMDA0OUY5MzYgLyogR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAgKi8sCiAJCQkJMkQ5RkIyMDAyMzc1MjA5RDAwNDlGOTM2IC8qIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQkyRDlGQjIwOTIzNzUyMDlEMDA0OUY5
MzYgLyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKQEAgLTcwNjMs
NiArNzA3MywyNyBAQAogCQkJbmFtZSA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTQxNzIxOTg4MjNCNjEyNjEwMEFFNTY4NiAvKiB3ZWJydGMgKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQxNzIxOThBMjNCNjEyODIw
MEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MuY3BwICovLAorCQkJCTQxNzIxOTg5MjNCNjEyODIw
MEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MuaCAqLywKKwkJCQk0MTcyMTk4RDIzQjYyQzdDMDBB
RTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluICovLAorCQkJCTQxNzIxOThDMjNC
NjEyRTgwMEFFNTY4NiAvKiBSVENEZWNvZGVySWRlbnRpZmllci5oICovLAorCQkJKTsKKwkJCXBh
dGggPSB3ZWJydGM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk0MTcyMTk4
RTIzQjYzM0NBMDBBRTU2ODYgLyogd2VicnRjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQk0MUUwQTdDNjIzQjYzOTc4MDA1NjEwNjAgLyogTGliV2ViUlRD
Q29kZWNzUHJveHkuaCAqLywKKwkJCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2Vi
UlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJNDFFMEE3QzgyM0I2Mzk3OTAwNTYx
MDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tICovLAorCQkJKTsKKwkJCXBhdGggPSB3ZWJy
dGM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk0MUQxMjlEODFGM0QxMDE0
MDBEMTVFNDcgLyogQ2FjaGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtMTIwOTksNiArMTIxMzAsNyBAQAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgx
RiAvKiBXZWJSVENNb25pdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxRjA2MEUxMTY1NDMxODUwMEYzMjgyQyAvKiBXZWJSVENSZXNvbHZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2Vi
UlRDU29ja2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxRTBBN0NC
MjNCNjQ1Q0QwMDU2MTA2MCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMEIxNzc5MUU3Qzg4MjEwMEU5MTIzQyAv
KiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDEyODdENEUyMjVEMUVDQjAwOUEzRTI2IC8qIFdlYlNvY2tldFRhc2tDb2NvYS5tbSBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCBlOGRhYWUwZjliYTg1YTI1MWI3MDY3ZGUzOGNhNGE3Njk3
NDIxNTgwLi42NGE0YjRmN2RlY2EzODZiNTI3NTlhZmI0NzZjZWY5Zjg4ZGY4MmYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMzAsNiArMzAsOCBAQAogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2lu
Y2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkxp
YldlYlJUQ0NvZGVjcy5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oIgpAQCAtNzUsNiArNzcsMTIgQEAgdm9pZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgorI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JN
KENPQ09BKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdl
czo6TGliV2ViUlRDQ29kZWNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCkuZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjcxZDhl
ZjljY2NhNDFkODlmZjgwYjU2MjFjZjA3YjI3Zjc3MmZiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcApAQCAt
MCwwICsxLDE3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJMaWJXZWJSVENDb2RlY3MuaCIKKworI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGlu
ay5oPgorI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMg
d2VicnRjOjpXZWJLaXRWaWRlb0RlY29kZXIgY3JlYXRlVmlkZW9EZWNvZGVyKGNvbnN0IHdlYnJ0
Yzo6U2RwVmlkZW9Gb3JtYXQmIGZvcm1hdCkKK3sKKyAgICBpZiAoZm9ybWF0Lm5hbWUgIT0gIkgy
NjQiKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5jcmVhdGVEZWNvZGVyKCk7Cit9CisKK3N0YXRp
YyBpbnQzMl90IHJlbGVhc2VWaWRlb0RlY29kZXIod2VicnRjOjpXZWJLaXRWaWRlb0RlY29kZXIg
ZGVjb2RlcikKK3sKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRD
Q29kZWNzKCkucmVsZWFzZURlY29kZXIoKnN0YXRpY19jYXN0PExpYldlYlJUQ0NvZGVjczo6RGVj
b2Rlcio+KGRlY29kZXIpKTsKK30KKworc3RhdGljIGludDMyX3QgZGVjb2RlVmlkZW9GcmFtZSh3
ZWJydGM6OldlYktpdFZpZGVvRGVjb2RlciBkZWNvZGVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGNv
bnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5kZWNvZGVGcmFtZSgqc3RhdGljX2Nhc3Q8
TGliV2ViUlRDQ29kZWNzOjpEZWNvZGVyKj4oZGVjb2RlciksIHRpbWVTdGFtcCwgZGF0YSwgc2l6
ZSk7Cit9CisKK3N0YXRpYyBpbnQzMl90IHJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjayh3
ZWJydGM6OldlYktpdFZpZGVvRGVjb2RlciBkZWNvZGVyLCB2b2lkKiBkZWNvZGVkSW1hZ2VDYWxs
YmFjaykKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5y
ZWdpc3RlckRlY29kZUZyYW1lQ2FsbGJhY2soKnN0YXRpY19jYXN0PExpYldlYlJUQ0NvZGVjczo6
RGVjb2Rlcio+KGRlY29kZXIpLCBkZWNvZGVkSW1hZ2VDYWxsYmFjayk7CisgICAgcmV0dXJuIDA7
Cit9CisKK3ZvaWQgTGliV2ViUlRDQ29kZWNzOjpzZXRWaWRlb0RlY29kZXJDYWxsYmFja3MoYm9v
bCB1c2VHUFVQcm9jZXNzKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBp
ZiAoIXVzZUdQVVByb2Nlc3MpIHsKKyAgICAgICAgd2VicnRjOjpzZXRWaWRlb0RlY29kZXJDYWxs
YmFja3MobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgLy8gTGV0J3MgY3JlYXRlIFdlYlByb2Nlc3MgbGliV2ViUlRDQ29kZWNz
IHNpbmNlIGl0IG1heSBiZSBjYWxsZWQgZnJvbSB2YXJpb3VzIHRocmVhZHMuCisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCk7CisgICAgd2VicnRjOjpzZXRWaWRl
b0RlY29kZXJDYWxsYmFja3MoY3JlYXRlVmlkZW9EZWNvZGVyLCByZWxlYXNlVmlkZW9EZWNvZGVy
LCBkZWNvZGVWaWRlb0ZyYW1lLCByZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2spOworfQor
CitMaWJXZWJSVENDb2RlY3M6OkRlY29kZXIqIExpYldlYlJUQ0NvZGVjczo6Y3JlYXRlRGVjb2Rl
cigpCit7CisgICAgYXV0byBkZWNvZGVyID0gbWFrZVVuaXF1ZTxEZWNvZGVyPigpOworICAgIGF1
dG8qIHJlc3VsdCA9IGRlY29kZXIuZ2V0KCk7CisgICAgZGVjb2Rlci0+aWRlbnRpZmllciA9IFJU
Q0RlY29kZXJJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKworICAgIGNhbGxPbk1h
aW5SdW5Mb29wKFt0aGlzLCBkZWNvZGVyID0gV1RGTW92ZShkZWNvZGVyKV0oKSBtdXRhYmxlIHsK
KyAgICAgICAgZGVjb2Rlci0+Y29ubmVjdGlvbiA9ICZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKKworICAgICAgICBhdXRv
IGRlY29kZXJJZGVudGlmaWVyID0gZGVjb2Rlci0+aWRlbnRpZmllcjsKKyAgICAgICAgZGVjb2Rl
ci0+Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkNyZWF0
ZURlY29kZXIgeyBkZWNvZGVySWRlbnRpZmllciB9LCAwKTsKKworICAgICAgICBBU1NFUlQoIW1f
ZGVjb2RlQ2FsbGJhY2tzLmNvbnRhaW5zKGRlY29kZXJJZGVudGlmaWVyKSk7CisgICAgICAgIG1f
ZGVjb2RlQ2FsbGJhY2tzLmFkZChkZWNvZGVySWRlbnRpZmllciwgV1RGTW92ZShkZWNvZGVyKSk7
CisgICAgfSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworaW50MzJfdCBMaWJXZWJSVENDb2Rl
Y3M6OnJlbGVhc2VEZWNvZGVyKERlY29kZXImIGRlY29kZXIpCit7CisgICAgTG9ja0hvbGRlciBo
b2xkZXIoZGVjb2Rlci5kZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2spOworICAgIGRlY29kZXIuZGVj
b2RlZEltYWdlQ2FsbGJhY2sgPSBudWxscHRyOworCisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3Ro
aXMsIGRlY29kZXJJZGVudGlmaWVyID0gZGVjb2Rlci5pZGVudGlmaWVyXSB7CisgICAgICAgIEFT
U0VSVChtX2RlY29kZUNhbGxiYWNrcy5jb250YWlucyhkZWNvZGVySWRlbnRpZmllcikpOworCisg
ICAgICAgIG1fZGVjb2RlQ2FsbGJhY2tzLnJlbW92ZShkZWNvZGVySWRlbnRpZmllcik7CisgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpSZWxlYXNl
RGVjb2RlciB7IGRlY29kZXJJZGVudGlmaWVyIH0sIDApOworICAgIH0pOworICAgIHJldHVybiAw
OworfQorCitpbnQzMl90IExpYldlYlJUQ0NvZGVjczo6ZGVjb2RlRnJhbWUoRGVjb2RlciYgZGVj
b2RlciwgdWludDMyX3QgdGltZVN0YW1wLCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6
ZSkKK3sKKyAgICBpZiAoIWRlY29kZXIuY29ubmVjdGlvbiB8fCBkZWNvZGVyLmhhc0Vycm9yKSB7
CisgICAgICAgIGRlY29kZXIuaGFzRXJyb3IgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIFdFQlJU
Q19WSURFT19DT0RFQ19FUlJPUjsKKyAgICB9CisKKyAgICBkZWNvZGVyLmNvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpEZWNvZGVGcmFtZSB7IGRlY29kZXIu
aWRlbnRpZmllciwgdGltZVN0YW1wLCBJUEM6OkRhdGFSZWZlcmVuY2UgeyBkYXRhLCBzaXplIH0g
fSwgMCk7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKwordm9pZCBMaWJX
ZWJSVENDb2RlY3M6OnJlZ2lzdGVyRGVjb2RlRnJhbWVDYWxsYmFjayhEZWNvZGVyJiBkZWNvZGVy
LCB2b2lkKiBkZWNvZGVkSW1hZ2VDYWxsYmFjaykKK3sKKyAgICBMb2NrSG9sZGVyIGhvbGRlcihk
ZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayk7CisgICAgZGVjb2Rlci5kZWNvZGVkSW1h
Z2VDYWxsYmFjayA9IGRlY29kZWRJbWFnZUNhbGxiYWNrOworfQorCit2b2lkIExpYldlYlJUQ0Nv
ZGVjczo6ZmFpbGVkRGVjb2RpbmcoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZp
ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChhdXRvKiBkZWNv
ZGVyID0gbV9kZWNvZGVDYWxsYmFja3MuZ2V0KGRlY29kZXJJZGVudGlmaWVyKSkKKyAgICAgICAg
ZGVjb2Rlci0+aGFzRXJyb3IgPSB0cnVlOworfQorCit2b2lkIExpYldlYlJUQ0NvZGVjczo6Y29t
cGxldGVkRGVjb2RpbmcoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIsIHVp
bnQzMl90IHRpbWVTdGFtcCwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1w
bGUpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIC8vIEZJWE1FOiBEbyBl
cnJvciBsb2dnaW5nLgorICAgIGF1dG8qIGRlY29kZXIgPSBtX2RlY29kZUNhbGxiYWNrcy5nZXQo
ZGVjb2RlcklkZW50aWZpZXIpOworICAgIGlmICghZGVjb2RlcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxs
YmFja0xvY2spOworICAgIGlmICghbG9ja2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IWRlY29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4
ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbiA9IFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0
ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2Zl
clNlc3Npb24pIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
bi0+Y3JlYXRlUGl4ZWxCdWZmZXIocmVtb3RlU2FtcGxlLnN1cmZhY2UoKSwgcmVtb3RlU2FtcGxl
LnNpemUoKSk7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikgeworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHdlYnJ0Yzo6UmVtb3RlVmlk
ZW9EZWNvZGVyOjpkZWNvZGVDb21wbGV0ZShkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFjaywg
dGltZVN0YW1wLCBwaXhlbEJ1ZmZlci5nZXQoKSwgcmVtb3RlU2FtcGxlLnRpbWUoKS50b0RvdWJs
ZSgpKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNjZDhhOTNmZDMx
MzlhZDExZDE1NzQ3MTNkNWNlYTNhZjUwOTJhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCkBAIC0wLDAgKzEs
ODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShMSUJXRUJSVEMpICYm
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSVENEZWNvZGVySWRlbnRpZmllci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgor
CituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworfQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZTsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIExpYldlYlJUQ0NvZGVjcyA6IHByaXZhdGUgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIExpYldlYlJUQ0NvZGVjcygpID0gZGVmYXVsdDsKKworICAgIHN0cnVjdCBEZWNvZGVyIHsK
KyAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgcHVibGljOgorICAgICAgICBS
VENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyOworICAgICAgICB2b2lkKiBkZWNvZGVkSW1h
Z2VDYWxsYmFjayB7IG51bGxwdHIgfTsKKyAgICAgICAgTG9jayBkZWNvZGVkSW1hZ2VDYWxsYmFj
a0xvY2s7CisgICAgICAgIGJvb2wgaGFzRXJyb3IgeyBmYWxzZSB9OworICAgICAgICBSZWZQdHI8
SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uOworICAgIH07CisKKyAgICBzdGF0aWMgdm9pZCBz
ZXRWaWRlb0RlY29kZXJDYWxsYmFja3MoYm9vbCB1c2VHUFVQcm9jZXNzKTsKKworICAgIERlY29k
ZXIqIGNyZWF0ZURlY29kZXIoKTsKKyAgICBpbnQzMl90IHJlbGVhc2VEZWNvZGVyKERlY29kZXIm
KTsKKyAgICBpbnQzMl90IGRlY29kZUZyYW1lKERlY29kZXImLCB1aW50MzJfdCB0aW1lU3RhbXAs
IGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOworICAgIHZvaWQgcmVnaXN0ZXJEZWNvZGVGcmFtZUNh
bGxiYWNrKERlY29kZXImLCB2b2lkKiBkZWNvZGVkSW1hZ2VDYWxsYmFjayk7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OworCitwcml2YXRlOgorICAgIHZvaWQgZmFpbGVkRGVjb2RpbmcoUlRDRGVjb2RlcklkZW50aWZp
ZXIpOworICAgIHZvaWQgY29tcGxldGVkRGVjb2RpbmcoUlRDRGVjb2RlcklkZW50aWZpZXIsIHVp
bnQzMl90IHRpbWVTdGFtcCwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7CisKKyAgICBI
YXNoTWFwPFJUQ0RlY29kZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4+IG1f
ZGVjb2RlQ2FsbGJhY2tzOworICAgIEhhc2hTZXQ8UlRDRGVjb2RlcklkZW50aWZpZXI+IG1fZGVj
b2RpbmdFcnJvcnM7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFuc2Zl
clNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yYWFlOTc4NjgwZDNjM2E3ODBiOGMyNTllNDNhNWU0OGQxOTAzMTZiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IExpYldlYlJUQ0NvZGVjcyBOb3RSZWZD
b3VudGVkIHsKKyAgICBGYWlsZWREZWNvZGluZyhXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVy
IGlkKQorICAgIENvbXBsZXRlZERlY29kaW5nKFdlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXIg
aWQsIHVpbnQzMl90IHRpbWVTdGFtcCwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxl
KQorfQorCisjZW5kaWYgLy8gVVNFKExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1JUQ0RlY29kZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9SVENEZWNvZGVySWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkYWEzYmM1
ZjkwZDViZWU5OTliYjI3YzhmMDFkMmViNzlmZGUyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SVENEZWNvZGVySWRlbnRpZmllci5oCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0
Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJUQ0Rl
Y29kZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBSVENEZWNvZGVySWRlbnRpZmllciA9IE9i
amVjdElkZW50aWZpZXI8UlRDRGVjb2RlcklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCA0NjhkZjZjNzg1ZmMzMmM1
MzA3YjlmMDA4ZDBkMTYzYjA5M2ViM2JmLi5mOTgzNjIyN2U5YmU1ZjM0N2ViN2FjMzhmYjAyN2Nj
MGM4ZTIyMGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTI4LDYgKzI4LDEwIEBA
CiAKICNpZiBVU0UoTElCV0VCUlRDKQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFU
Rk9STShDT0NPQSkKKyNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3MuaCIKKyNlbmRpZgorCiAjaW5j
bHVkZSAiTGliV2ViUlRDTmV0d29yay5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNs
dWRlIDx3ZWJydGMvYXBpL2FzeW5jX3Jlc29sdmVyX2ZhY3RvcnkuaD4KQEAgLTEzMSw2ICsxMzUs
MTkgQEAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1Byb3ZpZGVyOjpTdXNwZW5kYWJsZVNvY2tl
dEZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyOjoKICAgICByZXR1cm4gbWFrZVVuaXF1ZTxSVENT
b2NrZXRGYWN0b3J5PihXVEZNb3ZlKHVzZXJBZ2VudCkpOwogfQogCisjaWYgUExBVEZPUk0oQ09D
T0EpCitzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBMaWJXZWJS
VENQcm92aWRlcjo6Y3JlYXRlRGVjb2RlckZhY3RvcnkoKQoreworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKyAgICAvLyBXZSBvbmx5IHN1cHBvcnQgZWZmaWNpZW50IHNlbmRpbmcgb2YgdmlkZW8g
ZnJhbWVzIHdpdGggSU9TVVJGQUNFCisjaWYgSEFWRShJT1NVUkZBQ0UpICYmICFQTEFURk9STShN
QUNDQVRBTFlTVCkKKyAgICBMaWJXZWJSVENDb2RlY3M6OnNldFZpZGVvRGVjb2RlckNhbGxiYWNr
cyhtX3VzZUdQVVByb2Nlc3MpOworI2VuZGlmCisjZW5kaWYKKyAgICByZXR1cm4gTGliV2ViUlRD
UHJvdmlkZXJDb2NvYTo6Y3JlYXRlRGVjb2RlckZhY3RvcnkoKTsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlk
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5oCmluZGV4IDAyNDhlZWQ5MzMwMDRiNDFiMzAyMDI0OTI1NjQ3YTNlZTQwMTBkMGQu
LjgwZjc1MjUyMjk5ZTNiNGY5YTQ2MjQ5ODFkZjA2Y2ZmYTc1MmMyYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5oCkBAIC01Nyw2ICs1NywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgdW5yZWdpc3Rl
ck1ETlNOYW1lcyh1aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQg
cmVnaXN0ZXJNRE5TTmFtZSh1aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgaXBBZGRyZXNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1ETlNOYW1lT3JFcnJvciYmKT4m
JikgZmluYWw7CiAgICAgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSBmaW5h
bDsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZp
ZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZURlY29kZXJGYWN0b3J5KCkgZmluYWw7CisjZW5kaWYK
IH07CiAjZWxzZQogdXNpbmcgTGliV2ViUlRDUHJvdmlkZXIgPSBXZWJDb3JlOjpMaWJXZWJSVENQ
cm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAxNTEz
MjcxYWMzZjk3NTE1NmY5OTQyZGFmZGYwY2MwYThjZDdlM2QzLi5jNGFkMzlmOTBjNzVjMWNkMTM3
OWJlMjRhNjE0MjI2ZTk5ZGE2Y2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCkBAIC0xNjgsNiArMTY4LDEwIEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmgiCiAjZW5kaWYKIAorI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzLmgiCisj
ZW5kaWYKKwogLy8gVGhpcyBzaG91bGQgYmUgbGVzcyB0aGFuIHBsdWdJbkF1dG9TdGFydEV4cGly
YXRpb25UaW1lVGhyZXNob2xkIGluIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyLgogc3RhdGljIGNv
bnN0IFNlY29uZHMgcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVVcGRhdGVUaHJlc2hvbGQg
eyAyOSAqIDI0ICogNjAgKiA2MCB9OwogCkBAIC0xMzEwLDYgKzEzMTQsMTUgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChHUFVQcm9jZXNzQ29ubmVjdGlvbiog
Y29ubmVjdGlvbikKICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uID0gbnVsbHB0cjsKIH0KIAor
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQorTGliV2ViUlRDQ29kZWNzJiBX
ZWJQcm9jZXNzOjpsaWJXZWJSVENDb2RlY3MoKQoreworICAgIGlmICghbV9saWJXZWJSVENDb2Rl
Y3MpCisgICAgICAgIG1fbGliV2ViUlRDQ29kZWNzID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENDb2Rl
Y3M+KCk7CisgICAgcmV0dXJuICptX2xpYldlYlJUQ0NvZGVjczsKK30KKyNlbmRpZgorCiAjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3M6OnNldEVuaGFuY2Vk
QWNjZXNzaWJpbGl0eShib29sIGZsYWcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aAppbmRleCBjMmNlODhiZDYyNmY4YjhhM2NlOGE5MDFlMzVmZmRiYzRiNGM3Mjg1Li44ZjliZmU1
NzE1ZDQyMjU5YTNhM2IzMTcwNWFjMzRmNmYxM2IxZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKQEAgLTEwOSw2ICsxMDksNyBAQCBjbGFzcyBFdmVudERpc3BhdGNoZXI7
CiBjbGFzcyBHYW1lcGFkRGF0YTsKIGNsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOwogY2xhc3Mg
SW5qZWN0ZWRCdW5kbGU7CitjbGFzcyBMaWJXZWJSVENDb2RlY3M7CiBjbGFzcyBMaWJXZWJSVENO
ZXR3b3JrOwogY2xhc3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOwogY2xhc3MgT2JqQ09iamVj
dEdyYXBoOwpAQCAtMjE4LDYgKzIxOSwxMSBAQCBwdWJsaWM6CiAgICAgR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24mIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgdm9pZCBncHVQcm9jZXNz
Q29ubmVjdGlvbkNsb3NlZChHUFVQcm9jZXNzQ29ubmVjdGlvbiopOwogICAgIEdQVVByb2Nlc3ND
b25uZWN0aW9uKiBleGlzdGluZ0dQVVByb2Nlc3NDb25uZWN0aW9uKCkgeyByZXR1cm4gbV9ncHVQ
cm9jZXNzQ29ubmVjdGlvbi5nZXQoKTsgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShM
SUJXRUJSVEMpCisgICAgTGliV2ViUlRDQ29kZWNzJiBsaWJXZWJSVENDb2RlY3MoKTsKKyNlbmRp
ZgorCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAgICAgTGliV2ViUlRDTmV0d29y
ayYgbGliV2ViUlRDTmV0d29yaygpOwpAQCAtNTIzLDYgKzUyOSw5IEBAIHByaXZhdGU6CiAKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgUmVmUHRyPEdQVVByb2Nlc3NDb25uZWN0aW9uPiBt
X2dwdVByb2Nlc3NDb25uZWN0aW9uOworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VC
UlRDKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENDb2RlY3M+IG1fbGliV2ViUlRDQ29k
ZWNzOworI2VuZGlmCiAjZW5kaWYKIAogICAgIFJlZjxXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcj4g
bV9jYWNoZVN0b3JhZ2VQcm92aWRlcjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkNzczMDI3NmYwMDA0ZjZiMmU4NDM4Mzg4
YTZjYjUzMzI4YWEyZDZlLi4zZWE4NWQ0M2QwOTYxZDhjZDkwZjI0NzhjMThjOWEzNjc1MmM1ZWE5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMTItMjkgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBSVEMgVlRCIGRlY29kZXJzIGluIEdQ
VVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTYwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2VicnRjL3ZpZGVvLWdwdVByb2Nlc3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJydGMvdmlkZW8tZ3B1UHJvY2Vzcy5odG1sOiBBZGRlZC4KKwogMjAxOS0xMi0yNyAgRGVh
biBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdMXSBBZGQgYSBwdXJl
IHZpcnR1YWwgYmFzZSBjbGFzcyBmb3IgR3JhcGhpY3NDb250ZXh0M0QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYnJ0Yy92aWRlby1ncHVQcm9jZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYnJ0Yy92aWRlby1ncHVQcm9jZXNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzU1
NTRkNGVjMTZlZDFmNGQ0MTkwMDkyODkxNmRjMDU2NTQ5NGM0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLWdwdVByb2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNiBAQAorCisKK1BBU1MgQmFzaWMgdmlkZW8gZXhjaGFuZ2UgCitQQVNTIENhbGwgc2V0UGFy
YW1ldGVycyB0byBkaXNhYmxlIHNlbmRpbmcgYSBnaXZlbiBlbmNvZGluZyAKK1BBU1MgQ2FsbCBz
ZXRQYXJhbWV0ZXJzIHRvIHJlZW5hYmxlIHNlbmRpbmcgYSBnaXZlbiBlbmNvZGluZyAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLWdwdVByb2Nlc3MuaHRtbCBiL0xheW91
dFRlc3RzL3dlYnJ0Yy92aWRlby1ncHVQcm9jZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdkZGZiMjgz
YWNlNzY4MmE2OTM1NzQxMWE3ZmI0ZDE5ODI2ZDQ3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYnJ0Yy92aWRlby1ncHVQcm9jZXNzLmh0bWwKQEAgLTAsMCArMSwxMjkgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlZpZGVvIGV4Y2hhbmdlIHVzaW5nIEdQVSBwcm9jZXNz
PC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAg
PHZpZGVvIGlkPSJ2aWRlbyIgYXV0b3BsYXk9IiI+PC92aWRlbz4KKyAgICAgICAgPGNhbnZhcyBp
ZD0iY2FudmFzIiB3aWR0aD0iNjQwIiBoZWlnaHQ9IjQ4MCI+PC9jYW52YXM+CisgICAgICAgIDxz
Y3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFVzZUdQVVByb2Nlc3NGb3JXZWJS
VEModHJ1ZSk7CisKK3ZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZpZGVvIik7Citj
YW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisKK2Z1bmN0aW9uIGdy
YWJGcmFtZURhdGEoeCwgeSwgdywgaCkKK3sKKyAgICBjYW52YXMud2lkdGggPSB2aWRlby52aWRl
b1dpZHRoOworICAgIGNhbnZhcy5oZWlnaHQgPSB2aWRlby52aWRlb0hlaWdodDsKKworICAgIGNh
bnZhcy5nZXRDb250ZXh0KCcyZCcpLmRyYXdJbWFnZSh2aWRlbywgeCwgeSwgdywgaCwgeCwgeSwg
dywgaCk7CisgICAgcmV0dXJuIGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSh4
LCB5LCB3LCBoKS5kYXRhOworfQorCitmdW5jdGlvbiB0ZXN0SW1hZ2UoKQoreworICAgIGNvbnN0
IGRhdGEgPSBncmFiRnJhbWVEYXRhKDEwLCAzMjUsIDI1MCwgMSk7CisKKyAgICB2YXIgaW5kZXgg
PSAyMDsKKyAgICBhc3NlcnRfdHJ1ZShkYXRhW2luZGV4XSA8IDEwMCk7CisgICAgYXNzZXJ0X3Ry
dWUoZGF0YVtpbmRleCArIDFdIDwgMTAwKTsKKyAgICBhc3NlcnRfdHJ1ZShkYXRhW2luZGV4ICsg
Ml0gPCAxMDApOworCisgICAgaW5kZXggPSA4MDsKKyAgICBhc3NlcnRfdHJ1ZShkYXRhW2luZGV4
XSA+IDIwMCk7CisgICAgYXNzZXJ0X3RydWUoZGF0YVtpbmRleCArIDFdID4gMjAwKTsKKyAgICBh
c3NlcnRfdHJ1ZShkYXRhW2luZGV4ICsgMl0gPiAyMDApOworCisgICAgaW5kZXggKz0gODA7Cisg
ICAgYXNzZXJ0X3RydWUoZGF0YVtpbmRleF0gPiAyMDApOworICAgIGFzc2VydF90cnVlKGRhdGFb
aW5kZXggKyAxXSA+IDIwMCk7CisgICAgYXNzZXJ0X3RydWUoZGF0YVtpbmRleCArIDJdIDwgMTAw
KTsKK30KKwordmFyIHBjMSwgcGMyOworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRp
YVBlcm1pc3Npb24odHJ1ZSk7CisKKyAgICBjb25zdCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzoge2FkdmFuY2VkOiBbe3dpZHRo
OnttaW46NjQwfX0sIHtoZWlnaHQ6e21pbjo0ODB9IH0gXX19KTsKKyAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgYXNzZXJ0X3RydWUoaW50ZXJuYWxzLnBhZ2VNZWRpYVN0YXRlKCku
aW5jbHVkZXMoJ0hhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZScpLCAiVW5leHBlY3RlZCBIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UiKTsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuZXcg
UHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGNyZWF0ZUNvbm5lY3Rpb25z
KChmaXJzdENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIHBjMSA9IGZpcnN0Q29ubmVjdGlv
bjsKKyAgICAgICAgICAgIGZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayhsb2NhbFN0cmVhbS5nZXRW
aWRlb1RyYWNrcygpWzBdLCBsb2NhbFN0cmVhbSk7CisgICAgICAgIH0sIChzZWNvbmRDb25uZWN0
aW9uKSA9PiB7CisgICAgICAgICAgICBwYzIgPSBzZWNvbmRDb25uZWN0aW9uOworICAgICAgICAg
ICAgc2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZSh0cmFja0V2ZW50LnRyYWNrIGluc3RhbmNlb2YgTWVkaWFTdHJl
YW1UcmFjayk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodHJhY2tFdmVudC5yZWNlaXZl
ciBpbnN0YW5jZW9mIFJUQ1J0cFJlY2VpdmVyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1
ZShBcnJheS5pc0FycmF5KHRyYWNrRXZlbnQuc3RyZWFtcyksICJBcnJheS5pc0FycmF5KCkgc2hv
dWxkIHJldHVybiB0cnVlIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoT2JqZWN0Lmlz
RnJvemVuKHRyYWNrRXZlbnQuc3RyZWFtcyksICJPYmplY3QuaXNGcm96ZW4oKSBzaG91bGQgcmV0
dXJuIHRydWUiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHRyYWNrRXZlbnQudHJh
Y2suaWQsIGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uaWQpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHModHJhY2tFdmVudC50cmFjaywgdHJhY2tFdmVudC5zdHJlYW1zWzBd
LmdldFZpZGVvVHJhY2tzKClbMF0pOworICAgICAgICAgICAgICAgIHJlc29sdmUodHJhY2tFdmVu
dC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0pOworICAgICAgICBzZXRU
aW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7CisgICAgfSk7CisK
KyAgICB2aWRlby5zcmNPYmplY3QgPSBzdHJlYW07CisgICAgYXdhaXQgdmlkZW8ucGxheSgpOwor
CisgICAgdGVzdEltYWdlKCk7Cit9LCAiQmFzaWMgdmlkZW8gZXhjaGFuZ2UiKTsKKworZnVuY3Rp
b24gZ2V0Q2lyY2xlSW1hZ2VEYXRhKCkKK3sKKyAgICByZXR1cm4gZ3JhYkZyYW1lRGF0YSg0NTAs
IDEwMCwgMTUwLCAxMDApOworfQorCithc3luYyBmdW5jdGlvbiBjaGVja1ZpZGVvSXNVcGRhdGVk
KHNob3VsZEJlVXBkYXRlZCwgY291bnQsIHJlZmVyZW5jZURhdGEpCit7CisgICAgaWYgKGNvdW50
ID09PSB1bmRlZmluZWQpCisgICAgICAgIGNvdW50ID0gMDsKKyAgICBlbHNlIGlmIChjb3VudCA+
PSAyMCkKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCJjaGVja1ZpZGVvSXNVcGRhdGVk
IHRpbWVkIG91dCA6IiArIHNob3VsZEJlVXBkYXRlZCArICIgIiArIGNvdW50KTsKKworICAgIGlm
IChyZWZlcmVuY2VEYXRhID09PSB1bmRlZmluZWQpCisgICAgICAgIHJlZmVyZW5jZURhdGEgPSBn
ZXRDaXJjbGVJbWFnZURhdGEoKTsKKworICAgIGF3YWl0IHdhaXRGb3IoMjAwKTsKKyAgICBjb25z
dCBuZXdEYXRhID0gZ2V0Q2lyY2xlSW1hZ2VEYXRhKCk7CisKKyAgICBpZiAoc2hvdWxkQmVVcGRh
dGVkID09PSAoSlNPTi5zdHJpbmdpZnkocmVmZXJlbmNlRGF0YSkgIT09IEpTT04uc3RyaW5naWZ5
KG5ld0RhdGEpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXdhaXQgY2hlY2tWaWRlb0lzVXBk
YXRlZChzaG91bGRCZVVwZGF0ZWQsICsrY291bnQsIG5ld0RhdGEpOworfQorCitwcm9taXNlX3Rl
c3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBzZW5kZXIgPSBwYzEuZ2V0U2VuZGVycygp
WzBdOworICAgIGxldCBwID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKKyAgICBwLmVuY29kaW5n
c1swXS5hY3RpdmUgPSBmYWxzZTsKKyAgICBhd2FpdCBzZW5kZXIuc2V0UGFyYW1ldGVycyhwKTsK
KworICAgIGFzc2VydF9mYWxzZShzZW5kZXIuZ2V0UGFyYW1ldGVycygpLmVuY29kaW5nc1swXS5h
Y3RpdmUsICJlbmNvZGluZ3NbMF0uYWN0aXZlIHNob3VsZCBiZSBmYWxzZSIpOworCisgICAgYXdh
aXQgY2hlY2tWaWRlb0lzVXBkYXRlZChmYWxzZSk7Cit9LCAiQ2FsbCBzZXRQYXJhbWV0ZXJzIHRv
IGRpc2FibGUgc2VuZGluZyBhIGdpdmVuIGVuY29kaW5nIik7CisKK3Byb21pc2VfdGVzdChhc3lu
YyAodGVzdCkgPT4geworICAgIGNvbnN0IHNlbmRlciA9IHBjMS5nZXRTZW5kZXJzKClbMF07Cisg
ICAgbGV0IHAgPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOworICAgIHAuZW5jb2RpbmdzWzBdLmFj
dGl2ZSA9IHRydWU7CisgICAgYXdhaXQgc2VuZGVyLnNldFBhcmFtZXRlcnMocCk7CisKKyAgICBh
c3NlcnRfdHJ1ZShzZW5kZXIuZ2V0UGFyYW1ldGVycygpLmVuY29kaW5nc1swXS5hY3RpdmUsICJl
bmNvZGluZ3NbMF0uYWN0aXZlIHNob3VsZCBiZSB0cnVlIik7CisKKyAgICBhd2FpdCBjaGVja1Zp
ZGVvSXNVcGRhdGVkKHRydWUpOworfSwgIkNhbGwgc2V0UGFyYW1ldGVycyB0byByZWVuYWJsZSBz
ZW5kaW5nIGEgZ2l2ZW4gZW5jb2RpbmciKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>