<?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>231651</bug_id>
          
          <creation_ts>2021-10-12 17:50:43 -0700</creation_ts>
          <short_desc>Stop using makeWeakPtr() in WebCore</short_desc>
          <delta_ts>2021-10-13 10:01:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>
          <dependson>231580</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dbarton</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jfernandez</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>pangle</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>rego</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
    
    <cc>tommyw</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1803590</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-12 17:50:43 -0700</bug_when>
    <thetext>Stop using makeWeakPtr() in WebCore and use WeakPtr { } directly instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803597</commentid>
    <comment_count>1</comment_count>
      <attachid>441025</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-12 18:08:21 -0700</bug_when>
    <thetext>Created attachment 441025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803622</commentid>
    <comment_count>2</comment_count>
      <attachid>441032</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-12 19:22:50 -0700</bug_when>
    <thetext>Created attachment 441032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803754</commentid>
    <comment_count>3</comment_count>
      <attachid>441032</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-13 07:24:18 -0700</bug_when>
    <thetext>Comment on attachment 441032
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.h:1171
&gt; +    WeakPtr&lt;MediaResourceLoader&gt; m_lastMediaResourceLoaderForTesting;

no more const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803758</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 07:30:10 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 441032 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441032&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.h:1171
&gt; &gt; +    WeakPtr&lt;MediaResourceLoader&gt; m_lastMediaResourceLoaderForTesting;
&gt; 
&gt; no more const?

I&apos;ll check if I can keep it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803764</commentid>
    <comment_count>5</comment_count>
      <attachid>441078</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 07:47:14 -0700</bug_when>
    <thetext>Created attachment 441078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803775</commentid>
    <comment_count>6</comment_count>
      <attachid>441078</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 08:38:03 -0700</bug_when>
    <thetext>Comment on attachment 441078
Patch

Clearing flags on attachment: 441078

Committed r284093 (242921@main): &lt;https://commits.webkit.org/242921@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803776</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 08:38:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803777</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-13 08:39:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/84199640&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441025</attachid>
            <date>2021-10-12 18:08:21 -0700</date>
            <delta_ts>2021-10-12 19:22:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231651-20211012180820.patch</filename>
            <type>text/plain</type>
            <size>225793</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRhOTE3NDE1M2EwZjI1MWEzMzg4ZjBi
OTcyOThjMGNlNmI2ZmUzZjQuLjMyZmQ2NGY5YzYyMDFhODkxNjY0MDg3MzA3M2FlYjRhODExYjJm
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFrUHRyKCkgaW4gV2ViQ29y
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjUx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYv
V2Vha1B0ci5oOgorICAgICAgICAoV1RGOjpXZWFrUHRyOjpXZWFrUHRyKToKKyAgICAgICAgKFdU
Rjo6V2Vha1B0cjo6aW1wbEZvck9iamVjdCk6CisKIDIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEZWNyZWFzZSB1c2Ugb2YgbWFrZVdlYWtQdHIo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDUwN2U4MTIwMDRiYzgzNDUwNmJiNWU1Mzg2OWY2ZDljMmI4MjE0OGIu
Ljc4MjI0YzI4NWJkZTQ2MDVkNzUxN2U5MGM3YzcwMjEyMmZmYzc4NjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0NzQgQEAKKzIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFrUHRyKCkgaW4gV2ViQ29yZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjUxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RvcCB1c2luZyBtYWtl
V2Vha1B0cigpIGluIFdlYkNvcmUgYW5kIHVzZSBXZWFrUHRyIHsgfSBkaXJlY3RseSBpbnN0ZWFk
LgorCisgICAgICAgICogZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbDo6TWFpblRocmVhZEJyaWRnZTo6TWFpblRocmVhZEJyaWRnZSk6
CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVySXRlbUxpc3Q6OmVuc3VyZUl0ZW1zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFUcmFuc2Zlckl0ZW1MaXN0OjpkaWRTZXRTdHJpbmdEYXRhKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmJ1aWxkQWNjZXNzS2V5Q2Fj
aGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbGxlY3RSYW5nZURhdGFGcm9tUmVn
aXN0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGVybWluZUFjdGl2ZVRoZW1l
Q29sb3JNZXRhRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0QWN0aXZl
U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFwcGVuZEF1
dG9mb2N1c0NhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0TWVkaWFF
bGVtZW50U2hvd2luZ1RleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFBhcnNl
cllpZWxkVG9rZW46OkRvY3VtZW50UGFyc2VyWWllbGRUb2tlbik6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6YWRkSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmF0aW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6YWRkUmVzaXplT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnVwZGF0ZU1haW5BcnRpY2xlRWxlbWVudEFmdGVyTGF5b3V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpzZXRQaWN0dXJlSW5QaWN0dXJlRWxlbWVudCk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Q29udGV4dERv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRUZW1wbGF0ZURvY3VtZW50
SG9zdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50UGFyc2VyOjpEb2N1bWVudFBhcnNlcik6CisgICAgICAgICogZG9tL0V2ZW50
TG9vcC5oOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRMb29wVGFza0dyb3VwOjpFdmVudExvb3BU
YXNrR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRMb29wVGFzazo6RXZlbnRMb29wVGFz
ayk6CisgICAgICAgICogZG9tL0V2ZW50U2VuZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dFNlbmRlcjxUPjo6ZGlzcGF0Y2hFdmVudFNvb24pOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdl
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgICogZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZ1bGxzY3JlZW5NYW5hZ2VyOjpzZXRGdWxsc2NyZWVuUmVuZGVyZXIpOgorICAgICAgICAqIGRv
bS9JZGxlQ2FsbGJhY2tDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklkbGVDYWxs
YmFja0NvbnRyb2xsZXI6OklkbGVDYWxsYmFja0NvbnRyb2xsZXIpOgorICAgICAgICAqIGRvbS9N
ZXNzYWdlUG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydDo6dmlydHVhbEhh
c1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogZG9tL1JhZGlvQnV0dG9uR3JvdXBz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhZGlvQnV0dG9uR3JvdXA6OnNldENoZWNrZWRCdXR0
b24pOgorICAgICAgICAqIGRvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpTY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAqIGRvbS9TbG90QXNzaWdubWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTbG90QXNzaWdubWVudDo6YWRkU2xvdEVsZW1lbnRCeU5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2xvdEFzc2lnbm1lbnQ6OnJlc29sdmVTbG90c0FmdGVyU2xvdE11dGF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNsb3RBc3NpZ25tZW50Ojphc3NpZ25Ub1Nsb3QpOgor
ICAgICAgICAqIGVkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3VzdG9tVW5kb1N0ZXA6OkN1c3RvbVVuZG9TdGVwKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjpzZXRQYXJlbnQpOgor
ICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVTZWxlY3Rpb246OkZyYW1lU2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcik6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6b2JzZXJ2ZVBhcmFncmFwaHMpOgor
ICAgICAgICAqIGVkaXRpbmcvaW9zL0VkaXRvcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6c2V0RGljdGF0aW9uUGhyYXNlc0FzQ2hpbGRPZkVsZW1lbnQpOgorICAgICAgICAqIGZp
bGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVy
TG9hZGVyOjpGaWxlUmVhZGVyTG9hZGVyKToKKyAgICAgICAgKiBodG1sL0N1c3RvbVBhaW50SW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tUGFpbnRJbWFnZTo6Q3VzdG9tUGFpbnRJ
bWFnZSk6CisgICAgICAgICogaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50OjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50OjpzZXRGb3JtKToKKyAg
ICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbmNob3JFbGVtZW50OjpzZXRSb290RWRpdGFibGVFbGVtZW50Rm9yU2VsZWN0aW9uT25Nb3Vz
ZURvd24pOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6c3VibWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxG
b3JtRWxlbWVudDo6cmVnaXN0ZXJGb3JtRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Rm9ybUVsZW1lbnQ6OnJlZ2lzdGVySW1nRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Rm9ybUVsZW1lbnQ6OmRlZmF1bHRCdXR0b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEZvcm1FbGVtZW50OjphZGRUb1Bhc3ROYW1lc01hcCk6CisgICAgICAgICogaHRtbC9IVE1MRnJh
bWVPd25lckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVt
ZW50OjpzZXRDb250ZW50RnJhbWUpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpIVE1MSW1hZ2VFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2Vz
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnNldFBpY3R1cmVFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnNldFNvdXJjZUVsZW1l
bnQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKToK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0lucHV0
VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpJbnB1dFR5cGUpOgorICAgICAg
ICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25PYnNlcnZlcjo6TWVkaWFTZXNzaW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIGh0bWwv
T2Zmc2NyZWVuQ2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6
c2V0UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAqIGh0bWwvVVJMU2VhcmNoUGFyYW1zLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlVSTFNlYXJjaFBhcmFtczo6VVJMU2VhcmNoUGFyYW1zKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OkhUTUxTY3JpcHRSdW5uZXIpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6RGF0ZVRpbWVFZGl0RWxlbWVudCk6CisgICAgICAgICogaHRtbC9z
aGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUJveDo6VGV4dFRy
YWNrQ3VlQm94KToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrQmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUcmFja0Jhc2U6OnNldFRyYWNrTGlzdCk6CisgICAgICAgICogaHRtbC90cmFj
ay9UcmFja0xpc3RCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpUcmFja0xpc3RCYXNlOjpzZXRP
cGFxdWVSb290T2JzZXJ2ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvck92ZXJsYXk6OnNldEdyaWRPdmVybGF5Rm9yTm9kZSk6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JET01BZ2VudDo6YmluZCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JM
YXllclRyZWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVB
Z2VudDo6YmluZFBzZXVkb0VsZW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTmV0d29ya0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdv
cmtBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1l
SWQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNvbm5lY3RUb1dvcmtl
ckluc3BlY3RvclByb3h5KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3Rh
YmxlL1RhYmxlR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6
U2xvdDo6U2xvdCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpzZXRDYWNoZWRHZW9tZXRyeUZvckxheW91
dFN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnRyeUxvYWRpbmdTdWJzdGl0dXRlRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6Y29udGVudEZpbHRlckRpZEJsb2Nr
KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRXcml0ZXI6OnNldEZyYW1lKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUxldmVsRm9yYmlkU2NvcGU6OlBhZ2VMZXZl
bEZvcmJpZFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzZXRPcGVuZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRGcmFtZVJlcXVlc3QpOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAg
ICAgKiBsb2FkZXIvTGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVy
OjpwcmVjb25uZWN0SWZOZWVkZWQpOgorICAgICAgICAqIGxvYWRlci9MaW5rUHJlbG9hZFJlc291
cmNlQ2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rUHJlbG9hZFJlc291cmNlQ2xp
ZW50OjpMaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50KToKKyAgICAgICAgKiBsb2FkZXIvTWVkaWFS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlc291cmNlTG9hZGVy
OjpNZWRpYVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXI6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvUG9s
aWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6UG9saWN5Q2hl
Y2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6CisgICAgICAgICogbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpT
dWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbik6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZTo6
c2V0R3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZTo6c2V0TWFuaWZl
c3RSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnVwZGF0
ZSk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpzZXRET01BcHBsaWNhdGlv
bkNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpzZXRDYW5k
aWRhdGVBcHBsaWNhdGlvbkNhY2hlR3JvdXApOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6bG9hZCk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2V0RG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRl
ci9pb3MvTGVnYWN5UHJldmlld0xvYWRlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVBy
ZXZpZXdMb2FkZXI6OnByZXZpZXdDb252ZXJ0ZXJEaWRTdGFydENvbnZlcnRpbmcpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvd0V4dGVuc2lvbjo6RE9NV2luZG93RXh0ZW5zaW9uKToKKyAgICAgICAgKiBwYWdlL0RPTVdp
bmRvd1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5OjpE
T01XaW5kb3dQcm9wZXJ0eSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6d2lkZ2V0Rm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OnVwZGF0ZUxhc3RTY3JvbGxiYXJVbmRlck1vdXNlKToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpGcmFtZSk6CisgICAgICAgICog
cGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVEZXN0cnVjdGlvbk9ic2VydmVyOjpvYnNlcnZlRnJhbWUpOgorICAgICAgICAqIHBhZ2UvRnJh
bWVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6RnJhbWVUcmVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlRW1iZWRk
ZWRPYmplY3QpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpsYXlvdXQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6c2V0U3VidHJlZUxheW91dFJvb3Qp
OgorICAgICAgICAqIHBhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpJbWFnZU92ZXJsYXlDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlvblF1YWRz
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjpJbnRlcnNlY3Rpb25PYnNlcnZl
cik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6b2JzZXJ2ZSk6Cisg
ICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnVwZGF0ZVJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpkb0FmdGVyVXBkYXRlUmVuZGVyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnVwZGF0ZUVsZW1lbnRzV2l0aFRleHRSZWNvZ25p
dGlvblJlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0U2VydmljZVdvcmtlckds
b2JhbFNjb3BlKToKKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmVsZW1lbnRXYXNSZW1vdmVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvaW50ZXJMb2NrQ29udHJvbGxlcjo6ZG9jdW1lbnREZXRh
Y2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmRpZEFjcXVp
cmVQb2ludGVyTG9jayk6CisgICAgICAgICogcGFnZS9RdWlya3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UXVpcmtzOjpRdWlya3MpOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtzOjp0cmlnZ2Vy
T3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsgY29uc3QpOgorICAgICAgICAqIHBhZ2UvUmVzaXpl
T2JzZXJ2YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzaXplT2JzZXJ2YXRpb246OlJl
c2l6ZU9ic2VydmF0aW9uKToKKyAgICAgICAgKiBwYWdlL1Jlc2l6ZU9ic2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc2l6ZU9ic2VydmVyOjpSZXNpemVPYnNlcnZlcik6CisgICAgICAg
IChXZWJDb3JlOjpSZXNpemVPYnNlcnZlcjo6b2JzZXJ2ZSk6CisgICAgICAgICogcGFnZS9VbmRv
SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVbmRvSXRlbTo6c2V0VW5kb01hbmFnZXIpOgor
ICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldoZWVsRXZlbnRUZXN0TW9uaXRvcjo6c2NoZWR1bGVDYWxsYmFja0NoZWNrKToKKyAgICAg
ICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpkaWRGaW5pc2hUcmFuc2l0aW9uKToKKyAgICAgICAg
KiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRDaGFuZ2VPYnNlcnZlcjo6c2V0SGlkZGVuVG91Y2hUYXJnZXQpOgorICAgICAgICAqIHBh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGFibGVB
cmVhRm9yRXZlbnRUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsYWJsZUFyZWFGb3JD
b250YWluZXJOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGV0ZXJtaW5l
V2hlZWxFdmVudFRhcmdldCk6CisgICAgICAgICogcGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJv
bGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVw
ZGF0ZURhdGFEZXRlY3RvckhpZ2hsaWdodHMpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VPdmVy
bGF5Q29udHJvbGxlcjo6ZWxlbWVudFVuZGVyTW91c2VEaWRDaGFuZ2UpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXI6OnVwZGF0ZUFuZEZldGNoTGF0Y2hpbmdTdGF0
ZUZvckZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Ob3dQbGF5aW5nTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOb3dQbGF5aW5nTWFuYWdlcjo6YWRkQ2xpZW50KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9QcmV2aWV3Q29udmVydGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByZXZp
ZXdDb252ZXJ0ZXI6OmFkZENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcmV2aWV3Q29udmVy
dGVyOjpkaWRBZGRDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpjcmVhdGVUaW1lcik6CisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpQcm9oaWJpdFNjcm9sbGluZ1doZW5DaGFuZ2luZ0NvbnRlbnRTaXplRm9yU2NvcGU6OlBy
b2hpYml0U2Nyb2xsaW5nV2hlbkNoYW5naW5nQ29udGVudFNpemVGb3JTY29wZSk6CisgICAgICAg
ICogcGxhdGZvcm0vV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0UGFy
ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjph
ZGRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNldEN1cnJlbnRTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsRW5kUGxheWJhY2spOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNlc3Npb25XaWxs
RW5kUGxheWJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Zp
bGVSZWFkZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVy
OjpkZWNvZGVBdWRpb0ZvckJ1c0NyZWF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpzZXRDbGllbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYXJlZFJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlv
bkZvclRva2VuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25Qcm94eTo6Q0RNSW5zdGFu
Y2VTZXNzaW9uUHJveHkpOgorICAgICAgICAqIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFy
a2V5L0NETUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lv
bkNsZWFyS2V5Ojp1cGRhdGVMaWNlbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNl
U2Vzc2lvbkNsZWFyS2V5OjpyZW1vdmVTZXNzaW9uRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlOjpzZXRDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0luYmFu
ZFRleHRUcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1By
aXZhdGU6OnNldENsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFj
a1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRDbGll
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRwdXREZXZpY2VN
ZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJUYXJnZXRQaWNrZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0FWUGxheWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFW
UGxheWJhY2tUYXJnZXRQaWNrZXI6OkFWUGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFy
Z2V0UGlja2VyLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQ
aWNrZXI6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpDRE1TZXNzaW9uQVZGb3VuZGF0
aW9uT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW06CisgICAgICAgICgtW1dlYkFWU2FtcGxl
QnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXIgaW5pdFdpdGhQYXJlbnQ6XSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
VmlkZW9PdXRwdXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y3JlYXRlU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0
aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldENETVNlc3Npb24pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpNZWRpYVNv
dXJjZVByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RN
U2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
V2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1S
ZXNvdXJjZU1lZGlhTG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpJbm5lckRlY29kZXI6OmhhbmRsZU1lc3NhZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpJbm5lckRlY29kZXI6OnByZXBh
cmVQaXBlbGluZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mVHJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVUcmFja3MpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVTdHJlYW1Db2xsZWN0
aW9uTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmNyZWF0ZUdTVFBsYXlCaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNy
eXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYktpdE1lZGlhQ29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRHZXRDRE1Qcm94eURlY3J5cHRpb25DbGllbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6Om1ha2VXZWJLaXRUcmFjayk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldE1hc2tMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldFJlcGxpY2FMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldEJhY2tkcm9wTGF5ZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9QcmV2aWV3Q29udmVydGVySU9TLm1tOgorICAgICAgICAoLVtXZWJQcmV2aWV3Q29u
dmVydGVyRGVsZWdhdGUgaW5pdFdpdGhEZWxlZ2F0ZTpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgICgtW1dlYkFWUGxh
eWVyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSBzZXRGdWxsc2NyZWVuSW50ZXJmYWNlOl0pOgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1b
V2ViQ29yZU1vdGlvbk1hbmFnZXIgc2VuZEFjY2VsZXJvbWV0ZXJEYXRhOl0pOgorICAgICAgICAo
LVtXZWJDb3JlTW90aW9uTWFuYWdlciBzZW5kTW90aW9uRGF0YTp3aXRoSGVhZGluZzpdKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YURldGVjdG9ySGlnaGxpZ2h0OjpEYXRhRGV0ZWN0b3JIaWdobGlnaHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6OlBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZU1hYyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYzo6c2V0VmlkZW9GdWxsc2NyZWVuTW9kZWwpOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZl
cik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6OmNvbXByZXNzZWRWaWRlb091dHB1dEJ1ZmZlckNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjb21wcmVzc2VkQXVkaW9P
dXRwdXRCdWZmZXJDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RUTUZTZW5kZXJCYWNrZW5kLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
a0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJv
dmlkZXJDb2NvYSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Db29raWVTdG9y
YWdlT2JzZXJ2ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVz
cG9uc2VHZW5lcmF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpSYW5nZVJlc3BvbnNlR2VuZXJh
dG9yOjpnaXZlUmVzcG9uc2VUb1Rhc2tJZkJ5dGVzSW5SYW5nZVJlY2VpdmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJhbmdlUmVzcG9uc2VHZW5lcmF0b3I6Ok1lZGlhUmVzb3VyY2VDbGllbnQ6Ok1l
ZGlhUmVzb3VyY2VDbGllbnQpOgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NTWltZVR5cGU6OkRPTU1pbWVUeXBlKToKKyAgICAgICAgKiBw
bHVnaW5zL0RPTU1pbWVUeXBlQXJyYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NTWltZVR5
cGVBcnJheTo6RE9NTWltZVR5cGVBcnJheSk6CisgICAgICAgICogcGx1Z2lucy9ET01QbHVnaW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NUGx1Z2luOjpET01QbHVnaW4pOgorICAgICAgICAq
IHBsdWdpbnMvRE9NUGx1Z2luQXJyYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NUGx1Z2lu
QXJyYXk6OkRPTVBsdWdpbkFycmF5KToKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvYXRpbmdPYmpl
Y3RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0aW5nT2JqZWN0OjpGbG9hdGluZ09iamVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlRmxvYXRPZmZzZXRBZGFwdGVyOjpDb21wdXRl
RmxvYXRPZmZzZXRBZGFwdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbmROZXh0RmxvYXRMb2dp
Y2FsQm90dG9tQWRhcHRlcjo6RmluZE5leHRGbG9hdExvZ2ljYWxCb3R0b21BZGFwdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZsb2F0aW5nT2JqZWN0czo6RmxvYXRpbmdPYmplY3RzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmg6CisgICAgICAgIChXZWJDb3JlOjpGbG9h
dGluZ09iamVjdDo6c2V0T3JpZ2luYXRpbmdMaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvR3Jp
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlkOjppbnNlcnQpOgorICAgICAgICAqIHJlbmRl
cmluZy9IaWdobGlnaHREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSYW5nZTo6UmVu
ZGVyUmFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9MYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFj
ay5oOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlZENsaXBEYXRhOjpDb21wb3NpdGVkQ2xp
cERhdGEpOgorICAgICAgICAqIHJlbmRlcmluZy9MZWdhY3lJbmxpbmVCb3guaDoKKyAgICAgICAg
KFdlYkNvcmU6OkxlZ2FjeUlubGluZUJveDo6TGVnYWN5SW5saW5lQm94KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdh
Y3lSb290SW5saW5lQm94OjpzZXRMaW5lQnJlYWtJbmZvKToKKyAgICAgICAgKiByZW5kZXJpbmcv
TGVnYWN5Um9vdElubGluZUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5Um9vdElubGlu
ZUJveDo6YXBwZW5kRmxvYXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlQ2FjaGVkRW5jbG9zaW5nRnJh
Z21lbnRlZEZsb3cgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpzZXRNdWx0aUNvbHVtbkZs
b3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Q29udGludWF0aW9uQ2hhaW5Ob2Rl
OjpDb250aW51YXRpb25DaGFpbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9k
ZWxPYmplY3Q6OnNldEZpcnN0TGV0dGVyUmVtYWluaW5nVGV4dCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJ1dHRvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCdXR0b246OnNl
dElubmVyUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQnV0dG9uOjpzZXRUZXh0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJFbGVtZW50OjpzZXRCYWNrZHJvcFJlbmRlcmVyKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RnJhZ21lbnRlZEZsb3c6OnVwZGF0ZUZyYWdtZW50c0ZyYWdtZW50ZWRGbG93UG9ydGlvblJlY3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckltYWdlUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2VSZXNvdXJj
ZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVQYWdpbmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpzZXRCYWNraW5nUHJvdmlkZXJMYXllcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OkJhY2tpbmdTaGFyaW5nU3RhdGU6OmFwcGVuZFNoYXJp
bmdMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmF0dGFj
aFNjcm9sbGluZ05vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXlvdXRTdGF0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXlvdXRTdGF0ZTo6cHJvcGFnYXRlTGluZUdy
aWRJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheW91dFN0YXRlOjplc3RhYmxpc2hM
aW5lR3JpZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGlzdE1hcmtlcjo6UmVuZGVyTGlzdE1hcmtlcik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzZXRJ
bm5lclJlbmRlcmVyKToKKyAgICAgICAgKFJlbmRlck1lbnVMaXN0OjpzZXRUZXh0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI6OlJl
bmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyU2Nyb2xsYmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNjcm9sbGJhcjo6
UmVuZGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OndpbGxJbnNlcnRUYWJsZVNlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OmFkZENhcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGFibGU6OnVwZGF0ZUNvbHVtbkNhY2hlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRhYmxlOjpyZWNhbGNTZWN0aW9ucyBjb25zdCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6c2V0
SW5saW5lV3JhcHBlckZvckRpc3BsYXlDb250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRleHRGcmFnbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OlJlcGFpbnRSZWdpb25BY2N1bXVsYXRvcjo6
UmVwYWludFJlZ2lvbkFjY3VtdWxhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6
OmxheWVyQ2hpbGRyZW5DaGFuZ2VkRHVyaW5nU3R5bGVDaGFuZ2UpOgorICAgICAgICAqIHJlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0hpdFRlc3RDeWNs
ZURldGVjdGlvblNjb3BlOjpTVkdIaXRUZXN0Q3ljbGVEZXRlY3Rpb25TY29wZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpjaGlsZEZsb3dTdGF0ZUNoYW5nZXNBbmRBZmZlY3Rz
UGFyZW50QmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OmRlc3Ry
b3lBbmRDbGVhblVwQW5vbnltb3VzV3JhcHBlcnMpOgorICAgICAgICAqIHJlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRyZWVCdWlsZGVyOjpCbG9jazo6ZGV0YWNoKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUcmVlQnVpbGRlcjo6Rmlyc3RMZXR0ZXI6OnVwZGF0ZVN0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpGaXJzdExldHRlcjo6Y3JlYXRlUmVuZGVyZXJzKToK
KyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVt
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6TXVsdGlDb2x1bW46
Om11bHRpQ29sdW1uRGVzY2VuZGFudEluc2VydGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVBvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRy
ZWVQb3NpdGlvbjo6Y29tcHV0ZU5leHRTaWJsaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVBvc2l0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVl
UG9zaXRpb246OlJlbmRlclRyZWVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVVcGRhdGVyR2VuZXJhdGVkQ29udGVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6R2VuZXJhdGVkQ29udGVudDo6dXBkYXRlUXVvdGVzVXBU
byk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6R2VuZXJhdGVkQ29udGVu
dDo6dXBkYXRlQmFja2Ryb3BSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6YWRkUmVmZXJlbmNpbmdFbGVtZW50KToK
KyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpT
VkdFbGVtZW50UmFyZURhdGE6OnNldENvcnJlc3BvbmRpbmdFbGVtZW50KToKKyAgICAgICAgKiBz
dmcvU1ZHVmlld0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnhyVGVzdCk6
CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrQ0RNRmFjdG9yeTo6Y3JlYXRlQ0RNKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE06
OmNyZWF0ZUluc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE1JbnN0YW5jZTo6Y3Jl
YXRlU2Vzc2lvbik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRm9udExvYWRSZXF1ZXN0Ojpsb2FkKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckdsb2JhbFNjb3BlOjppbXBvcnRTY3JpcHRzKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckdsb2JhbFNjb3BlOjpzZXRNYWluU2NyaXB0U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0V2l0aFN1YmNs
YXNzKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyTWFpblJ1bkxvb3A6OnNldEdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OmV2
YWx1YXRlU2NyaXB0SWZOZWNlc3NhcnkpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0
aW9uRGF0YWJhc2U6OlJlZ2lzdHJhdGlvbkRhdGFiYXNlKToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjph
ZGRSZWdpc3RyYXRpb24pOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OlNXU2VydmVy
V29ya2VyKToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgor
ICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6V29ya2xldFBlbmRpbmdUYXNrcyk6CisgICAgICAg
ICogeG1sL0RPTVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01QYXJzZXI6OkRPTVBh
cnNlcik6CisKIDIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBEZWNyZWFzZSB1c2Ugb2YgbWFrZVdlYWtQdHIoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvV2Vha1B0ci5oIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCmluZGV4IGY0ZTdi
MTI0NTE0ZmZiMGIwODMzZjAzZjEwODQ5Y2I2YTFhMmUxMjAuLjhiYTcyODdlOTYwNDExODAwNzZm
MDU3ZTBiNzMzN2I1MThkMzZjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJs
aWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gV2Vha1B0cihjb25zdCBXZWFrUHRyPFUsIENv
dW50ZXI+Jik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gV2Vha1B0cihXZWFrUHRyPFUsIENv
dW50ZXI+JiYpOwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJ
c1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IFdlYWtQdHIoVCogb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhy
ZWFkaW5nQXNzZXJ0aW9ucyBzaG91bGRFbmFibGVBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRo
cmVhZGluZ0Fzc2VydGlvbnM6OlllcykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSA9IHN0ZDo6ZW5h
YmxlX2lmX3Q8IUlzU21hcnRQdHI8VD46OnZhbHVlPj4gV2Vha1B0cihjb25zdCBUKiBvYmplY3Qs
IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIHNob3VsZEVuYWJsZUFzc2VydGlvbnMg
PSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQogICAgICAgICA6IG1faW1w
bChvYmplY3QgPyBpbXBsRm9yT2JqZWN0KCpvYmplY3QpIDogbnVsbHB0cikKICNpZiBBU1NFUlRf
RU5BQkxFRAogICAgICAgICAsIG1fc2hvdWxkRW5hYmxlQXNzZXJ0aW9ucyhzaG91bGRFbmFibGVB
c3NlcnRpb25zID09IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpCkBAIC0x
MTEsNyArMTExLDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3Qg
PT0gbV9pbXBsLT50ZW1wbGF0ZSBnZXQ8VD4oKSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJc1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IFdlYWtQdHIo
VCYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBzaG91bGRFbmFibGVB
c3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlzU21hcnRQdHI8VD46OnZhbHVl
ICYmICFzdGQ6OmlzX3BvaW50ZXJfdjxUPj4+IFdlYWtQdHIoY29uc3QgVCYgb2JqZWN0LCBFbmFi
bGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBzaG91bGRFbmFibGVBc3NlcnRpb25zID0gRW5h
YmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKICAgICAgICAgOiBtX2ltcGwoaW1w
bEZvck9iamVjdChvYmplY3QpKQogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgICAgICwgbV9zaG91
bGRFbmFibGVBc3NlcnRpb25zKHNob3VsZEVuYWJsZUFzc2VydGlvbnMgPT0gRW5hYmxlV2Vha1B0
clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKQEAgLTEyMSwxMSArMTIxLDExIEBAIHB1YmxpYzoK
ICAgICAgICAgQVNTRVJUKCZvYmplY3QgPT0gbV9pbXBsLT50ZW1wbGF0ZSBnZXQ8VD4oKSk7CiAg
ICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJc1NtYXJ0
UHRyPFQ+Ojp2YWx1ZT4+IFdlYWtQdHIoUmVmPFQ+JiBvYmplY3QsIEVuYWJsZVdlYWtQdHJUaHJl
YWRpbmdBc3NlcnRpb25zIHNob3VsZEVuYWJsZUFzc2VydGlvbnMgPSBFbmFibGVXZWFrUHRyVGhy
ZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lID0gc3RkOjplbmFi
bGVfaWZfdDwhSXNTbWFydFB0cjxUPjo6dmFsdWU+PiBXZWFrUHRyKGNvbnN0IFJlZjxUPiYgb2Jq
ZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBzaG91bGRFbmFibGVBc3NlcnRp
b25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKICAgICAgICAgOiBX
ZWFrUHRyKG9iamVjdC5nZXQoKSwgc2hvdWxkRW5hYmxlQXNzZXJ0aW9ucykKICAgICB7IH0KIAot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhSXNTbWFydFB0cjxUPjo6
dmFsdWU+PiBXZWFrUHRyKFJlZlB0cjxUPiYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5n
QXNzZXJ0aW9ucyBzaG91bGRFbmFibGVBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGlu
Z0Fzc2VydGlvbnM6OlllcykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lm
X3Q8IUlzU21hcnRQdHI8VD46OnZhbHVlPj4gV2Vha1B0cihjb25zdCBSZWZQdHI8VD4mIG9iamVj
dCwgRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgc2hvdWxkRW5hYmxlQXNzZXJ0aW9u
cyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpCiAgICAgICAgIDogV2Vh
a1B0cihvYmplY3QuZ2V0KCksIHNob3VsZEVuYWJsZUFzc2VydGlvbnMpCiAgICAgeyB9CiAKQEAg
LTE3Miw3ICsxNzIsNyBAQCBwcml2YXRlOgogICAgICAgICBVTlVTRURfUEFSQU0oc2hvdWxkRW5h
YmxlQXNzZXJ0aW9ucyk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gc3RhdGlj
IFdlYWtQdHJJbXBsPENvdW50ZXI+KiBpbXBsRm9yT2JqZWN0KFUmIG9iamVjdCkKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiBzdGF0aWMgV2Vha1B0ckltcGw8Q291bnRlcj4qIGltcGxGb3JPYmpl
Y3QoY29uc3QgVSYgb2JqZWN0KQogICAgIHsKICAgICAgICAgb2JqZWN0LndlYWtQdHJGYWN0b3J5
KCkuaW5pdGlhbGl6ZUlmTmVlZGVkKG9iamVjdCk7CiAgICAgICAgIHJldHVybiBvYmplY3Qud2Vh
a1B0ckZhY3RvcnkoKS5tX2ltcGwuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hh
bm5lbC5jcHAKaW5kZXggOGM5YTlkYTVkNzhjZDE0Y2EyNWI4NTY4Y2VhZjZmODFiOGNjZDQwMC4u
OGViN2U5ZWFkMjE2MGUxNzJkMGZjMzNlYWUxM2Y3ZDhmZDVjMTU5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiB9
OwogCiBCcm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjpNYWluVGhyZWFkQnJpZGdl
KEJyb2FkY2FzdENoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IG1f
YnJvYWRjYXN0Q2hhbm5lbChtYWtlV2Vha1B0cihjaGFubmVsKSkKKyAgICA6IG1fYnJvYWRjYXN0
Q2hhbm5lbChjaGFubmVsKQogICAgICwgbV9pZGVudGlmaWVyKEJyb2FkY2FzdENoYW5uZWxJZGVu
dGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkKICAgICAsIG1fbmFtZShuYW1lLmlzb2xhdGVk
Q29weSgpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0
ZW1MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAK
aW5kZXggOWZjMjdhZjMzYmU3NDBmODIyNGM3Mjk0OWNjMmUzMmQxZmM3NzliMy4uM2ZmZmFhMjJi
MWJjNmQyZDMwOWU5YjFhZjU2M2Y0OWFiZWU3NjhmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwCkBAIC04Miw3ICs4Miw3IEBAIEV4Y2VwdGlvbk9yPFJl
ZlB0cjxEYXRhVHJhbnNmZXJJdGVtPj4gRGF0YVRyYW5zZmVySXRlbUxpc3Q6OmFkZChjb25zdCBT
dHJpbmcmIGRhCiAKICAgICBtX2RhdGFUcmFuc2Zlci5zZXREYXRhRnJvbUl0ZW1MaXN0KGxvd2Vy
Y2FzZWRUeXBlLCBkYXRhKTsKICAgICBBU1NFUlQobV9pdGVtcyk7Ci0gICAgbV9pdGVtcy0+YXBw
ZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtYWtlV2Vha1B0cigqdGhpcyksIGxvd2VyY2Fz
ZWRUeXBlKSk7CisgICAgbV9pdGVtcy0+YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZSgq
dGhpcywgbG93ZXJjYXNlZFR5cGUpKTsKICAgICByZXR1cm4gbV9pdGVtcy0+bGFzdCgpLnB0cigp
OwogfQogCkBAIC05MSw3ICs5MSw3IEBAIFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBEYXRhVHJh
bnNmZXJJdGVtTGlzdDo6YWRkKFJlZjxGaWxlPiYmIGZpbGUpCiAgICAgaWYgKCFtX2RhdGFUcmFu
c2Zlci5jYW5Xcml0ZURhdGEoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBlbnN1
cmVJdGVtcygpLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobWFrZVdlYWtQdHIoKnRo
aXMpLCBmaWxlLT50eXBlKCksIGZpbGUuY29weVJlZigpKSk7CisgICAgZW5zdXJlSXRlbXMoKS5h
cHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKCp0aGlzLCBmaWxlLT50eXBlKCksIGZpbGUu
Y29weVJlZigpKSk7CiAgICAgbV9kYXRhVHJhbnNmZXIuZGlkQWRkRmlsZVRvSXRlbUxpc3QoKTsK
ICAgICByZXR1cm4gbV9pdGVtcy0+bGFzdCgpLnB0cigpOwogfQpAQCAtMTQyLDExICsxNDIsMTEg
QEAgVmVjdG9yPFJlZjxEYXRhVHJhbnNmZXJJdGVtPj4mIERhdGFUcmFuc2Zlckl0ZW1MaXN0Ojpl
bnN1cmVJdGVtcygpIGNvbnN0CiAgICAgZm9yIChhdXRvJiB0eXBlIDogbV9kYXRhVHJhbnNmZXIu
dHlwZXNGb3JJdGVtTGlzdCgpKSB7CiAgICAgICAgIGF1dG8gbG93ZXJjYXNlZFR5cGUgPSB0eXBl
LmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiAgICAgICAgIGlmIChzaG91bGRFeHBvc2VUeXBl
SW5JdGVtTGlzdChsb3dlcmNhc2VkVHlwZSkpCi0gICAgICAgICAgICBpdGVtcy5hcHBlbmQoRGF0
YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1ha2VXZWFrUHRyKCpjb25zdF9jYXN0PERhdGFUcmFuc2Zl
ckl0ZW1MaXN0Kj4odGhpcykpLCBsb3dlcmNhc2VkVHlwZSkpOworICAgICAgICAgICAgaXRlbXMu
YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZSgqY29uc3RfY2FzdDxEYXRhVHJhbnNmZXJJ
dGVtTGlzdCo+KHRoaXMpLCBsb3dlcmNhc2VkVHlwZSkpOwogICAgIH0KIAogICAgIGZvciAoYXV0
byYgZmlsZSA6IG1fZGF0YVRyYW5zZmVyLmZpbGVzKGRvY3VtZW50KCkpLmZpbGVzKCkpCi0gICAg
ICAgIGl0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobWFrZVdlYWtQdHIoKmNv
bnN0X2Nhc3Q8RGF0YVRyYW5zZmVySXRlbUxpc3QqPih0aGlzKSksIGZpbGUtPnR5cGUoKSwgZmls
ZS5jb3B5UmVmKCkpKTsKKyAgICAgICAgaXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNy
ZWF0ZSgqY29uc3RfY2FzdDxEYXRhVHJhbnNmZXJJdGVtTGlzdCo+KHRoaXMpLCBmaWxlLT50eXBl
KCksIGZpbGUuY29weVJlZigpKSk7CiAKICAgICBtX2l0ZW1zID0gV1RGTW92ZShpdGVtcyk7CiAK
QEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjpkaWRTZXRTdHJp
bmdEYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICBTdHJpbmcgbG93ZXJjYXNlZFR5cGUgPSB0
eXBlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiAgICAgcmVtb3ZlU3RyaW5nSXRlbU9mTG93
ZXJjYXNlZFR5cGUoKm1faXRlbXMsIHR5cGUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSk7CiAK
LSAgICBtX2l0ZW1zLT5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1ha2VXZWFrUHRy
KCp0aGlzKSwgbG93ZXJjYXNlZFR5cGUpKTsKKyAgICBtX2l0ZW1zLT5hcHBlbmQoRGF0YVRyYW5z
ZmVySXRlbTo6Y3JlYXRlKCp0aGlzLCBsb3dlcmNhc2VkVHlwZSkpOwogfQogCiBEb2N1bWVudCog
RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmRvY3VtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCmluZGV4IDcxNWQ1ZjA3OTZhNjVkNDcwZGE5ZWYwM2UyYmNhOTE0ZDZiMDJkZDEuLmEzZDU1
NDNkM2ZiYzU4MmI3OWQ1MTBjMWNiZDhiMmRkOTE1MzI5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcApAQCAtODk1LDcgKzg5NSw3IEBAIHZvaWQgRG9jdW1lbnQ6OmJ1aWxkQWNjZXNzS2V5Q2Fj
aGUoKQogICAgICAgICAgICAgYXV0byYga2V5ID0gZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKGFjY2Vzc2tleUF0dHIpOwogICAgICAgICAgICAgaWYgKGtleS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBtYXAuYWRkKGtleSwg
bWFrZVdlYWtQdHIoZWxlbWVudCkpOworICAgICAgICAgICAgbWFwLmFkZChrZXksIGVsZW1lbnQp
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtYXA7CiAgICAgfSgpKTsKQEAgLTI4NjcsNyAr
Mjg2Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OmNvbGxlY3RSYW5nZURhdGFGcm9tUmVnaXN0ZXIoVmVj
dG9yPFdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4mCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICBpZiAoJnJhbmdlRGF0YS0+cmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCku
dHJlZVNjb3BlKCkgIT0gJnJhbmdlRGF0YS0+cmFuZ2UtPmVuZENvbnRhaW5lcigpLnRyZWVTY29w
ZSgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcmFuZ2VzRGF0YS5h
cHBlbmQobWFrZVdlYWtQdHIocmFuZ2VEYXRhLnB0cigpKSk7CisgICAgICAgICAgICByYW5nZXNE
YXRhLmFwcGVuZChyYW5nZURhdGEuZ2V0KCkpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMzkz
MSw3ICszOTMxLDcgQEAgV2Vha1B0cjxIVE1MTWV0YUVsZW1lbnQ+IERvY3VtZW50OjpkZXRlcm1p
bmVBY3RpdmVUaGVtZUNvbG9yTWV0YUVsZW1lbnQoKQogICAgICAgICBWZWN0b3I8V2Vha1B0cjxI
VE1MTWV0YUVsZW1lbnQ+PiBtZXRhVGhlbWVDb2xvckVsZW1lbnRzOwogICAgICAgICBmb3IgKGF1
dG8mIG1ldGFFbGVtZW50IDogZGVzY2VuZGFudHNPZlR5cGU8SFRNTE1ldGFFbGVtZW50PigqdGhp
cykpIHsKICAgICAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtZXRh
RWxlbWVudC5uYW1lKCksICJ0aGVtZS1jb2xvciIpICYmIG1ldGFFbGVtZW50LmNvbnRlbnRDb2xv
cigpLmlzVmFsaWQoKSkKLSAgICAgICAgICAgICAgICBtZXRhVGhlbWVDb2xvckVsZW1lbnRzLmFw
cGVuZChtYWtlV2Vha1B0cihtZXRhRWxlbWVudCkpOworICAgICAgICAgICAgICAgIG1ldGFUaGVt
ZUNvbG9yRWxlbWVudHMuYXBwZW5kKG1ldGFFbGVtZW50KTsKICAgICAgICAgfQogICAgICAgICBt
X21ldGFUaGVtZUNvbG9yRWxlbWVudHMgPSBXVEZNb3ZlKG1ldGFUaGVtZUNvbG9yRWxlbWVudHMp
OwogICAgIH0KQEAgLTQzODAsNyArNDM4MCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNldEFjdGl2ZVNw
ZWVjaFJlY29nbml0aW9uKFNwZWVjaFJlY29nbml0aW9uKiBzcGVlY2hSZWNvZ25pdGlvbikKICAg
ICBpZiAobV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbiA9PSBzcGVlY2hSZWNvZ25pdGlvbikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbiA9IG1ha2VXZWFr
UHRyKHNwZWVjaFJlY29nbml0aW9uKTsKKyAgICBtX2FjdGl2ZVNwZWVjaFJlY29nbml0aW9uID0g
c3BlZWNoUmVjb2duaXRpb247CiAgICAgdXBkYXRlSXNQbGF5aW5nTWVkaWEoKTsKIH0KIApAQCAt
NDQ3OSw3ICs0NDc5LDcgQEAgdm9pZCBEb2N1bWVudDo6YXBwZW5kQXV0b2ZvY3VzQ2FuZGlkYXRl
KEVsZW1lbnQmIGNhbmRpZGF0ZSkKICAgICB9KTsKICAgICBpZiAoaXQgIT0gbV9hdXRvZm9jdXND
YW5kaWRhdGVzLmVuZCgpKQogICAgICAgICBtX2F1dG9mb2N1c0NhbmRpZGF0ZXMucmVtb3ZlKGl0
KTsKLSAgICBtX2F1dG9mb2N1c0NhbmRpZGF0ZXMuYXBwZW5kKG1ha2VXZWFrUHRyKGNhbmRpZGF0
ZSkpOworICAgIG1fYXV0b2ZvY3VzQ2FuZGlkYXRlcy5hcHBlbmQoY2FuZGlkYXRlKTsKIH0KIAog
dm9pZCBEb2N1bWVudDo6Zmx1c2hBdXRvZm9jdXNDYW5kaWRhdGVzKCkKQEAgLTU3OTQsNyArNTc5
NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKQogCiB2b2lk
IERvY3VtZW50OjpzZXRNZWRpYUVsZW1lbnRTaG93aW5nVGV4dFRyYWNrKGNvbnN0IEhUTUxNZWRp
YUVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9tZWRpYUVsZW1lbnRTaG93aW5nVGV4dFRyYWNr
ID0gbWFrZVdlYWtQdHIoZWxlbWVudCk7CisgICAgbV9tZWRpYUVsZW1lbnRTaG93aW5nVGV4dFRy
YWNrID0gZWxlbWVudDsKIH0KIAogdm9pZCBEb2N1bWVudDo6Y2xlYXJNZWRpYUVsZW1lbnRTaG93
aW5nVGV4dFRyYWNrKCkKQEAgLTcyNzUsNyArNzI3NSw3IEBAIHZvaWQgRG9jdW1lbnQ6OmRlY3Jl
bWVudEFjdGl2ZVBhcnNlckNvdW50KCkKIH0KIAogRG9jdW1lbnRQYXJzZXJZaWVsZFRva2VuOjpE
b2N1bWVudFBhcnNlcllpZWxkVG9rZW4oRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogbV9kb2N1
bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQog
ewogICAgIGlmICgrK2RvY3VtZW50Lm1fcGFyc2VyWWllbGRUb2tlbkNvdW50ICE9IDEpCiAgICAg
ICAgIHJldHVybjsKQEAgLTc4NzcsNyArNzg3Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxl
UmVuZGVyaW5nVXBkYXRlKE9wdGlvblNldDxSZW5kZXJpbmdVcGRhdGVTdGVwPiByZXF1ZXN0ZWRT
CiB2b2lkIERvY3VtZW50OjphZGRJbnRlcnNlY3Rpb25PYnNlcnZlcihJbnRlcnNlY3Rpb25PYnNl
cnZlciYgb2JzZXJ2ZXIpCiB7CiAgICAgQVNTRVJUKG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzLmZp
bmQoJm9ic2VydmVyKSA9PSBub3RGb3VuZCk7Ci0gICAgbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnMu
YXBwZW5kKG1ha2VXZWFrUHRyKCZvYnNlcnZlcikpOworICAgIG1faW50ZXJzZWN0aW9uT2JzZXJ2
ZXJzLmFwcGVuZCgmb2JzZXJ2ZXIpOwogfQogCiB2b2lkIERvY3VtZW50OjpyZW1vdmVJbnRlcnNl
Y3Rpb25PYnNlcnZlcihJbnRlcnNlY3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIpCkBAIC04MDgzLDcg
KzgwODMsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZhdGlvbnMo
KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChuZWVkTm90aWZ5KQotICAg
ICAgICAgICAgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJzV2l0aFBlbmRpbmdOb3RpZmljYXRpb25zLmFw
cGVuZChtYWtlV2Vha1B0cihvYnNlcnZlci5nZXQoKSkpOworICAgICAgICAgICAgaW50ZXJzZWN0
aW9uT2JzZXJ2ZXJzV2l0aFBlbmRpbmdOb3RpZmljYXRpb25zLmFwcGVuZChvYnNlcnZlci5nZXQo
KSk7CiAgICAgfQogCiAgICAgZm9yIChjb25zdCBhdXRvJiBvYnNlcnZlciA6IGludGVyc2VjdGlv
bk9ic2VydmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9ucykgewpAQCAtODExMCw3ICs4MTEwLDcg
QEAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhJiBEb2N1bWVudDo6ZW5zdXJlSW50ZXJzZWN0aW9u
T2JzZXJ2ZXJEYXRhKCkKIHZvaWQgRG9jdW1lbnQ6OmFkZFJlc2l6ZU9ic2VydmVyKFJlc2l6ZU9i
c2VydmVyJiBvYnNlcnZlcikKIHsKICAgICBpZiAoIW1fcmVzaXplT2JzZXJ2ZXJzLmNvbnRhaW5z
KCZvYnNlcnZlcikpCi0gICAgICAgIG1fcmVzaXplT2JzZXJ2ZXJzLmFwcGVuZChtYWtlV2Vha1B0
cigmb2JzZXJ2ZXIpKTsKKyAgICAgICAgbV9yZXNpemVPYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVy
KTsKIH0KIAogdm9pZCBEb2N1bWVudDo6cmVtb3ZlUmVzaXplT2JzZXJ2ZXIoUmVzaXplT2JzZXJ2
ZXImIG9ic2VydmVyKQpAQCAtODM4Nyw3ICs4Mzg3LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRl
TWFpbkFydGljbGVFbGVtZW50QWZ0ZXJMYXlvdXQoKQogICAgIH0KIAogICAgIGlmIChudW1iZXJP
ZkFydGljbGVzID09IDEpIHsKLSAgICAgICAgbV9tYWluQXJ0aWNsZUVsZW1lbnQgPSBtYWtlV2Vh
a1B0cih0YWxsZXN0QXJ0aWNsZS5nZXQoKSk7CisgICAgICAgIG1fbWFpbkFydGljbGVFbGVtZW50
ID0gdGFsbGVzdEFydGljbGU7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTg0MDEsNyAr
ODQwMSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZU1haW5BcnRpY2xlRWxlbWVudEFmdGVyTGF5
b3V0KCkKICAgICBpZiAodGFsbGVzdEFydGljbGVXaWR0aCAqIHRhbGxlc3RBcnRpY2xlSGVpZ2h0
IDwgbWluaW11bVZpZXdwb3J0QXJlYUZhY3RvciAqICh2aWV3cG9ydFNpemUud2lkdGgoKSAqIHZp
ZXdwb3J0U2l6ZS5oZWlnaHQoKSkudG9GbG9hdCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X21haW5BcnRpY2xlRWxlbWVudCA9IG1ha2VXZWFrUHRyKHRhbGxlc3RBcnRpY2xlLmdldCgpKTsK
KyAgICBtX21haW5BcnRpY2xlRWxlbWVudCA9IHRhbGxlc3RBcnRpY2xlOwogfQogCiAjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCkBAIC04OTE2LDcgKzg5MTYsNyBA
QCBIVE1MVmlkZW9FbGVtZW50KiBEb2N1bWVudDo6cGljdHVyZUluUGljdHVyZUVsZW1lbnQoKSBj
b25zdAogCiB2b2lkIERvY3VtZW50OjpzZXRQaWN0dXJlSW5QaWN0dXJlRWxlbWVudChIVE1MVmlk
ZW9FbGVtZW50KiBlbGVtZW50KQogewotICAgIG1fcGljdHVyZUluUGljdHVyZUVsZW1lbnQgPSBt
YWtlV2Vha1B0cihlbGVtZW50KTsKKyAgICBtX3BpY3R1cmVJblBpY3R1cmVFbGVtZW50ID0gZWxl
bWVudDsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGEyMjU0ZDE1OGU0Mzk2
YWE5MTdiMjU2Yjc2MDI0MWRmMDBmNjZkN2IuLmZhZjk5MWNjM2M5ODU4OWM2OTc4ZDY5MmE2YjIw
MGZmZWFjNWE2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC04NTgsNyArODU4LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaGFzQnJvd3NpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gISFmcmFt
ZSgpOyB9CiAKICAgICBEb2N1bWVudCYgY29udGV4dERvY3VtZW50KCkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRDb250ZXh0RG9jdW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KSB7IG1fY29udGV4dERvY3Vt
ZW50ID0gbWFrZVdlYWtQdHIoZG9jdW1lbnQpOyB9CisgICAgdm9pZCBzZXRDb250ZXh0RG9jdW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50KSB7IG1fY29udGV4dERvY3VtZW50ID0gZG9jdW1lbnQ7IH0K
IAogICAgIC8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGZvcndhcmRpbmcgRE9NV2luZG93IGV2ZW50
IHJlbGF0ZWQgdGFza3MgdG8gdGhlIERPTVdpbmRvdyBpZiBpdCBleGlzdHMuCiAgICAgdm9pZCBz
ZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIERPTVdyYXBwZXJXb3JsZCYpOwpAQCAtMTM0MSw3ICsxMzQxLDcgQEAgcHVibGljOgog
CiAgICAgY29uc3QgRG9jdW1lbnQqIHRlbXBsYXRlRG9jdW1lbnQoKSBjb25zdDsKICAgICBEb2N1
bWVudCYgZW5zdXJlVGVtcGxhdGVEb2N1bWVudCgpOwotICAgIHZvaWQgc2V0VGVtcGxhdGVEb2N1
bWVudEhvc3QoRG9jdW1lbnQqIHRlbXBsYXRlRG9jdW1lbnRIb3N0KSB7IG1fdGVtcGxhdGVEb2N1
bWVudEhvc3QgPSBtYWtlV2Vha1B0cih0ZW1wbGF0ZURvY3VtZW50SG9zdCk7IH0KKyAgICB2b2lk
IHNldFRlbXBsYXRlRG9jdW1lbnRIb3N0KERvY3VtZW50KiB0ZW1wbGF0ZURvY3VtZW50SG9zdCkg
eyBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0ID0gdGVtcGxhdGVEb2N1bWVudEhvc3Q7IH0KICAgICBE
b2N1bWVudCogdGVtcGxhdGVEb2N1bWVudEhvc3QoKSB7IHJldHVybiBtX3RlbXBsYXRlRG9jdW1l
bnRIb3N0LmdldCgpOyB9CiAKICAgICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFn
bWVudEZvcklubmVyT3V0ZXJIVE1MKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmNw
cAppbmRleCA3NjJkOWMwMGNmOWEyZjVjNDJhOGEzNDhhNzZhNTc3OGYwYjNmY2I3Li41MTEyZjE4
MWI2NjFjM2UzOTRjOGQyM2I0YzcyNTM4NDQ1YWNiMjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudFBhcnNlci5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogRG9j
dW1lbnRQYXJzZXI6OkRvY3VtZW50UGFyc2VyKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1f
c3RhdGUoUGFyc2VyU3RhdGU6OlBhcnNpbmcpCiAgICAgLCBtX2RvY3VtZW50V2FzTG9hZGVkQXNQ
YXJ0T2ZOYXZpZ2F0aW9uKGZhbHNlKQotICAgICwgbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1
bWVudCkpCisgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMb29wLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRM
b29wLmgKaW5kZXggYmE0NjI1YWJkNmM5Y2E3MTgxOWQzODQ1Mjc1YjBlYzZmMTM2MTM2Mi4uNDlk
MTkxNjY3ZTczOGEyYzBiNDg0NmY2YzlkOWIwMzZkYTRlMDNiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExv
b3AuaApAQCAtMTA2LDcgKzEwNiw3IEBAIGNsYXNzIEV2ZW50TG9vcFRhc2tHcm91cCA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxFdmVudExvb3BUYXNrR3JvdXA+IHsKIAogcHVibGljOgogICAgIEV2
ZW50TG9vcFRhc2tHcm91cChFdmVudExvb3AmIGV2ZW50TG9vcCkKLSAgICAgICAgOiBtX2V2ZW50
TG9vcChtYWtlV2Vha1B0cihldmVudExvb3ApKQorICAgICAgICA6IG1fZXZlbnRMb29wKGV2ZW50
TG9vcCkKICAgICB7CiAgICAgICAgIGV2ZW50TG9vcC5yZWdpc3Rlckdyb3VwKCp0aGlzKTsKICAg
ICB9CkBAIC0xOTMsNyArMTkzLDcgQEAgcHJpdmF0ZToKIAogaW5saW5lIEV2ZW50TG9vcFRhc2s6
OkV2ZW50TG9vcFRhc2soVGFza1NvdXJjZSBzb3VyY2UsIEV2ZW50TG9vcFRhc2tHcm91cCYgZ3Jv
dXApCiAgICAgOiBtX3Rhc2tTb3VyY2Uoc291cmNlKQotICAgICwgbV9ncm91cChtYWtlV2Vha1B0
cihncm91cCkpCisgICAgLCBtX2dyb3VwKGdyb3VwKQogeyB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFNlbmRlci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50U2VuZGVyLmgKaW5kZXggMGM1NjIwZjA3NzdjN2RmYjk1OWRm
N2YyMDQ3NzEwNWZhNjBhNmNmYy4uZDY5YTZlNWU5Y2I4YTljZTAxOTM4NWVjNzFhOTNjOTc3ZTVl
NDIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50U2VuZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50U2VuZGVyLmgKQEAgLTY3LDcgKzY3LDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gRXZlbnRTZW5kZXI8VD46OkV2ZW50U2VuZGVyKGNvbnN0IEF0b21TdHJp
bmcmIGV2ZW50VHlwZSkKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBFdmVudFNlbmRlcjxU
Pjo6ZGlzcGF0Y2hFdmVudFNvb24oVCYgc2VuZGVyKQogewotICAgIG1fZGlzcGF0Y2hTb29uTGlz
dC5hcHBlbmQobWFrZVdlYWtQdHIoc2VuZGVyKSk7CisgICAgbV9kaXNwYXRjaFNvb25MaXN0LmFw
cGVuZChzZW5kZXIpOwogICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX3Rp
bWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5k
ZXggZWFiYjM5YzM5NWMzYTc5MDFjMmYzMGNmZDE1ZjY2ZjdjM2FhOTJmMS4uY2YzNjExM2U1Njlh
ZTE4OGZlMmNjN2ZlNDljYmFhMTBmNjViNTNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQu
Y3BwCkBAIC05OCw3ICs5OCw3IEBAIGJvb2wgRXZlbnRUYXJnZXQ6OmFkZEV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGlmIChvcHRpb25zLnNpZ25hbCkgewotICAgICAgICBvcHRpb25z
LnNpZ25hbC0+YWRkQWxnb3JpdGhtKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBldmVu
dFR5cGUsIGxpc3RlbmVyID0gbWFrZVdlYWtQdHIobGlzdGVuZXIuZ2V0KCkpLCBjYXB0dXJlID0g
b3B0aW9ucy5jYXB0dXJlXSB7CisgICAgICAgIG9wdGlvbnMuc2lnbmFsLT5hZGRBbGdvcml0aG0o
W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGV2ZW50VHlwZSwgbGlzdGVuZXIgPSBXZWFr
UHRyIHsgbGlzdGVuZXIgfSwgY2FwdHVyZSA9IG9wdGlvbnMuY2FwdHVyZV0gewogICAgICAgICAg
ICAgaWYgKHdlYWtUaGlzICYmIGxpc3RlbmVyKQogICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5y
ZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgKmxpc3RlbmVyLCBjYXB0dXJlKTsKICAgICAg
ICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAppbmRleCBmODNl
Mjg1MjlkODE4ZjY2YTNhM2YxZDdhOThkMTJmMTNiYmYzZGVhLi5iNTQxZmE3Y2RhMTNiMzkzOGE0
YzI3YTdlNzU5NDA0N2ZhNWRjYjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFu
YWdlci5jcHAKQEAgLTU1Miw3ICs1NTIsNyBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2VyOjpzZXRG
dWxsc2NyZWVuUmVuZGVyZXIoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlcgogICAg
ICAgICBidWlsZGVyLmRlc3Ryb3koKm1fZnVsbHNjcmVlblJlbmRlcmVyKTsKICAgICBBU1NFUlQo
IW1fZnVsbHNjcmVlblJlbmRlcmVyKTsKIAotICAgIG1fZnVsbHNjcmVlblJlbmRlcmVyID0gbWFr
ZVdlYWtQdHIocmVuZGVyZXIpOworICAgIG1fZnVsbHNjcmVlblJlbmRlcmVyID0gcmVuZGVyZXI7
CiB9CiAKIFJlbmRlckZ1bGxTY3JlZW4qIEZ1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuUmVu
ZGVyZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxsYmFj
a0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxsYmFja0NvbnRyb2xs
ZXIuY3BwCmluZGV4IDc4ODI1NGQxZDg5YTFiMTk4ZDk0ODQzM2ZlNTE4NDdmMGZhZjk2YzcuLmU0
MTE2ODhiMzgzNjU2YjY3ZDk3N2EyNGNmNWI5ZDUzODQyODU3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9JZGxlQ2FsbGJhY2tDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vSWRsZUNhbGxiYWNrQ29udHJvbGxlci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogSWRsZUNhbGxiYWNrQ29udHJvbGxlcjo6SWRsZUNhbGxiYWNr
Q29udHJvbGxlcihEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KG1ha2VXZWFr
UHRyKGRvY3VtZW50KSkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiB7CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZVBvcnQuY3BwCmluZGV4IGVkYzRjMGFjNDc3YTU3OWFiNTE0NTVmOWIzZWNi
OWNhNDEzY2U5MzguLmJhM2I5NzZmOWI4ZGU3MjI1MTA2ZTlmZmE2YTE4Y2MzMjI0NWM1ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcApAQCAtMzMzLDcgKzMzMyw3IEBAIGJvb2wgTWVz
c2FnZVBvcnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogICAgICAgICBpZiAo
aXM8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
KQogICAgICAgICAgICAgd29ya2VyT3JXb3JrbGV0VGhyZWFkID0gZG93bmNhc3Q8V29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLndvcmtlck9yV29y
a2xldFRocmVhZCgpOwogCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3JlbW90ZUlkZW50aWZp
ZXIgPSBtX3JlbW90ZUlkZW50aWZpZXIsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoY29uc3RfY2Fz
dDxNZXNzYWdlUG9ydCo+KHRoaXMpKSwgd29ya2VyT3JXb3JrbGV0VGhyZWFkID0gV1RGTW92ZSh3
b3JrZXJPcldvcmtsZXRUaHJlYWQpXSgpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFtyZW1vdGVJZGVudGlmaWVyID0gbV9yZW1vdGVJZGVudGlmaWVyLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyBjb25zdF9jYXN0PE1lc3NhZ2VQb3J0Jj4oKnRoaXMpIH0sIHdvcmtlck9yV29ya2xl
dFRocmVhZCA9IFdURk1vdmUod29ya2VyT3JXb3JrbGV0VGhyZWFkKV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpzaW5nbGV0b24oKS5jaGVja1Jl
bW90ZVBvcnRGb3JBY3Rpdml0eShyZW1vdGVJZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBXVEZNb3Zl
KHdlYWtUaGlzKSwgd29ya2VyT3JXb3JrbGV0VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJPcldvcmts
ZXRUaHJlYWQpXShhdXRvIGhhc0FjdGl2aXR5KSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBp
ZiAoIXdvcmtlck9yV29ya2xldFRocmVhZCkgewogICAgICAgICAgICAgICAgICAgICBpZiAod2Vh
a1RoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFkaW9CdXR0b25Hcm91cHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhZGlvQnV0dG9uR3JvdXBzLmNwcAppbmRleCA3YTYw
MDI0NWFjODljN2I3YzNhNjIyZDdhNDY2NWZjYjU2N2U2ZjNmLi5hNWQ1MzBmOTYwMGUzYmUwMDZj
NDEyYmJkMTZjYWRjNDJmNmM4OTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFk
aW9CdXR0b25Hcm91cHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYWRpb0J1dHRvbkdy
b3Vwcy5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBSYWRpb0J1dHRvbkdyb3VwOjpzZXRDaGVj
a2VkQnV0dG9uKEhUTUxJbnB1dEVsZW1lbnQqIGJ1dHRvbikKICAgICBpZiAoaGFkQ2hlY2tlZEJ1
dHRvbiAhPSB3aWxsSGF2ZUNoZWNrZWRCdXR0b24pCiAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNh
bGNGb3JBbGxCdXR0b25zKCk7CiAKLSAgICBtX2NoZWNrZWRCdXR0b24gPSBtYWtlV2Vha1B0cihi
dXR0b24pOworICAgIG1fY2hlY2tlZEJ1dHRvbiA9IGJ1dHRvbjsKICAgICBpZiAob2xkQ2hlY2tl
ZEJ1dHRvbikKICAgICAgICAgb2xkQ2hlY2tlZEJ1dHRvbi0+c2V0Q2hlY2tlZChmYWxzZSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCmluZGV4IDBlMTE4M2JjZGNjMDhkMGQ0YWI3NDViNTYyMDVlMjUyYzEzY2QyMzguLjY4NzAw
YjZjZTUxZmJmMjA3YzNjY2E1OTc2Yzk3YjIxZmNhZDY4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC00MCw3ICs0MCw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IG1f
ZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9jdW1lbnQpKQorICAgIDogbV9kb2N1bWVudChkb2N1bWVu
dCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Nsb3RBc3NpZ25tZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TbG90QXNzaWdubWVudC5jcHAKaW5kZXggMjc0OWNl
MjBhZDVmOTE2MWQzYWM2YzA0Y2VmMTAwOWFlM2MwY2Q0YS4uNTNlNDJmY2I3NDdjNGMyODFlNWJj
YTdlYzQ2YjNmYWRkZjBlMDM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nsb3RB
c3NpZ25tZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2xvdEFzc2lnbm1lbnQuY3Bw
CkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBTbG90QXNzaWdubWVudDo6YWRkU2xvdEVsZW1lbnRC
eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgbmFtZSwgSFRNTFNsb3RFbGVtZW4KIAogICAgIHNsb3Qu
ZWxlbWVudENvdW50Kys7CiAgICAgaWYgKHNsb3QuZWxlbWVudENvdW50ID09IDEpIHsKLSAgICAg
ICAgc2xvdC5lbGVtZW50ID0gbWFrZVdlYWtQdHIoc2xvdEVsZW1lbnQpOworICAgICAgICBzbG90
LmVsZW1lbnQgPSBzbG90RWxlbWVudDsKICAgICAgICAgaWYgKHNoYWRvd1Jvb3Quc2hvdWxkRmly
ZVNsb3RjaGFuZ2VFdmVudCgpICYmIGhhc0Fzc2lnbmVkTm9kZXMoc2hhZG93Um9vdCwgc2xvdCkp
CiAgICAgICAgICAgICBzbG90RWxlbWVudC5lbnF1ZXVlU2xvdENoYW5nZUV2ZW50KCk7CiAgICAg
ICAgIHJldHVybjsKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIFNsb3RBc3NpZ25tZW50OjpyZXNv
bHZlU2xvdHNBZnRlclNsb3RNdXRhdGlvbihTaGFkb3dSb290JiBzaGFkb3dSb290LCBTbG90TQog
ICAgICAgICAgICAgICAgIGN1cnJlbnRTbG90LT5vbGRFbGVtZW50ID0gV1RGTW92ZShjdXJyZW50
U2xvdC0+ZWxlbWVudCk7CiAgICAgICAgICAgICAgICAgY3VycmVudEVsZW1lbnQtPmVucXVldWVT
bG90Q2hhbmdlRXZlbnQoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGN1cnJlbnRTbG90
LT5lbGVtZW50ID0gbWFrZVdlYWtQdHIoKmN1cnJlbnRFbGVtZW50KTsKKyAgICAgICAgICAgIGN1
cnJlbnRTbG90LT5lbGVtZW50ID0gKmN1cnJlbnRFbGVtZW50OwogICAgICAgICB9CiAgICAgfQog
CkBAIC0zNzcsMTQgKzM3NywxNCBAQCB2b2lkIFNsb3RBc3NpZ25tZW50Ojphc3NpZ25Ub1Nsb3Qo
Tm9kZSYgY2hpbGQsIGNvbnN0IEF0b21TdHJpbmcmIHNsb3ROYW1lKQogICAgIGlmIChzbG90TmFt
ZSA9PSBkZWZhdWx0U2xvdE5hbWUoKSkgewogICAgICAgICBhdXRvIGRlZmF1bHRTbG90RW50cnkg
PSBtX3Nsb3RzLmZpbmQoZGVmYXVsdFNsb3ROYW1lKCkpOwogICAgICAgICBpZiAoZGVmYXVsdFNs
b3RFbnRyeSAhPSBtX3Nsb3RzLmVuZCgpKQotICAgICAgICAgICAgZGVmYXVsdFNsb3RFbnRyeS0+
dmFsdWUtPmFzc2lnbmVkTm9kZXMuYXBwZW5kKG1ha2VXZWFrUHRyKGNoaWxkKSk7CisgICAgICAg
ICAgICBkZWZhdWx0U2xvdEVudHJ5LT52YWx1ZS0+YXNzaWduZWROb2Rlcy5hcHBlbmQoY2hpbGQp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3Nsb3Rz
LmVuc3VyZShzbG90TmFtZSwgW10gewogICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxTbG90Pigp
OwogICAgIH0pOwotICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmFzc2lnbmVkTm9kZXMu
YXBwZW5kKG1ha2VXZWFrUHRyKGNoaWxkKSk7CisgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZS0+YXNzaWduZWROb2Rlcy5hcHBlbmQoY2hpbGQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCmluZGV4IGYyODkyNzFlYzEwYTAxMTRkNTY4ODRjODA4
NDY2M2IxYjIxMzk2OTMuLjQ5MDI4N2ZkMGZkYTdiN2ZkODUxYTdhMWQyYTNhOWQ2OGZiY2E2ZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCkBAIC0zNCw3ICsz
NCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEN1c3RvbVVuZG9TdGVwOjpDdXN0b21VbmRv
U3RlcChVbmRvSXRlbSYgaXRlbSkKLSAgICA6IG1fdW5kb0l0ZW0obWFrZVdlYWtQdHIoaXRlbSkp
CisgICAgOiBtX3VuZG9JdGVtKGl0ZW0pCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
Q29tbWFuZC5jcHAKaW5kZXggZjk1YTMxYzUzOTEyZDAzYmFmZjRjYzg1NzAwMmI1YzFjZDM1OTkz
Mi4uZjg3Yzk0YWE0NGFiYjIzNmQ4NzE5YWUwZWY0NWNmZDY0NzExYWEzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTE3OCw3ICsxNzgsNyBAQCB2b2lkIEVkaXRD
b21tYW5kOjpzZXRFbmRpbmdTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uKQogdm9pZCBFZGl0Q29tbWFuZDo6c2V0UGFyZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKiBw
YXJlbnQpCiB7CiAgICAgQVNTRVJUKChwYXJlbnQgJiYgIW1fcGFyZW50KSB8fCAoIXBhcmVudCAm
JiBtX3BhcmVudCkpOwotICAgIG1fcGFyZW50ID0gbWFrZVdlYWtQdHIocGFyZW50KTsKKyAgICBt
X3BhcmVudCA9IHBhcmVudDsKICAgICBpZiAocGFyZW50KSB7CiAgICAgICAgIG1fc3RhcnRpbmdT
ZWxlY3Rpb24gPSBwYXJlbnQtPm1fZW5kaW5nU2VsZWN0aW9uOwogICAgICAgICBtX2VuZGluZ1Nl
bGVjdGlvbiA9IHBhcmVudC0+bV9lbmRpbmdTZWxlY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGMyZWI4YTdiYzQxMzIyY2E4ZDIwODQ0MzNhMjM1
ZmZlOTdiNWViYmQuLjMxOGVjOTFhM2ZlNjM2NTZmMTBlNjBjZjE5MDJlZTkyYjI1YWYzYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xNTMsNyArMTUz
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNob3VsZEFsd2F5c1VzZURpcmVjdGlvbmFsU2VsZWN0
aW9uKERvY3VtZW50KiBkb2N1bWVudCkKIH0KIAogRnJhbWVTZWxlY3Rpb246OkZyYW1lU2VsZWN0
aW9uKERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IG1fZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9j
dW1lbnQpKQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fZ3JhbnVsYXJpdHko
VGV4dEdyYW51bGFyaXR5OjpDaGFyYWN0ZXJHcmFudWxhcml0eSkKICNpZiBFTkFCTEUoVEVYVF9D
QVJFVCkKICAgICAsIG1fY2FyZXRCbGlua1RpbWVyKCp0aGlzLCAmRnJhbWVTZWxlY3Rpb246OmNh
cmV0QmxpbmtUaW1lckZpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcAppbmRleCBjNGE0ZmJhMWQwMDM0NmRmNDY3MDIz
MzA1NDM5OTRlM2ZkMTA5OTMyLi4zZWZkMjA4NDBiNmRmYzFiM2FhYzVhOTViN2FmYzNjNzQzN2M5
M2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHByaXZhdGU6CiB9OwogCiBUZXh0
TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIoRG9jdW1l
bnQmIGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCisg
ICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogewogfQogCkBAIC00ODMsMTkgKzQ4MywxOSBAQCB2
b2lkIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpvYnNlcnZlUGFyYWdyYXBocyhjb25zdCBQ
b3NpdGlvbiYgc3RhcnQsIGNvbnN0CiAgICAgICAgIGlmIChpczxFbGVtZW50PigqY29udGVudE5v
ZGUpKSB7CiAgICAgICAgICAgICBhdXRvJiBjdXJyZW50RWxlbWVudCA9IGRvd25jYXN0PEVsZW1l
bnQ+KCpjb250ZW50Tm9kZSk7CiAgICAgICAgICAgICBpZiAoIWNvbnRlbnQuaXNUZXh0Q29udGVu
dCAmJiBjYW5QZXJmb3JtVGV4dE1hbmlwdWxhdGlvbkJ5UmVwbGFjaW5nRW50aXJlVGV4dENvbnRl
bnQoY3VycmVudEVsZW1lbnQpKQotICAgICAgICAgICAgICAgIGFkZEl0ZW0oTWFuaXB1bGF0aW9u
SXRlbURhdGEgeyBQb3NpdGlvbigpLCBQb3NpdGlvbigpLCBtYWtlV2Vha1B0cihjdXJyZW50RWxl
bWVudCksIG51bGxRTmFtZSgpLCB7IE1hbmlwdWxhdGlvblRva2VuIHsgbV90b2tlbklkZW50aWZp
ZXIuZ2VuZXJhdGUoKSwgY3VycmVudEVsZW1lbnQudGV4dENvbnRlbnQoKSwgdG9rZW5JbmZvKCZj
dXJyZW50RWxlbWVudCkgfSB9IH0pOworICAgICAgICAgICAgICAgIGFkZEl0ZW0oTWFuaXB1bGF0
aW9uSXRlbURhdGEgeyBQb3NpdGlvbigpLCBQb3NpdGlvbigpLCBjdXJyZW50RWxlbWVudCwgbnVs
bFFOYW1lKCksIHsgTWFuaXB1bGF0aW9uVG9rZW4geyBtX3Rva2VuSWRlbnRpZmllci5nZW5lcmF0
ZSgpLCBjdXJyZW50RWxlbWVudC50ZXh0Q29udGVudCgpLCB0b2tlbkluZm8oJmN1cnJlbnRFbGVt
ZW50KSB9IH0gfSk7CiAKICAgICAgICAgICAgIGlmIChjdXJyZW50RWxlbWVudC5oYXNBdHRyaWJ1
dGVzKCkpIHsKICAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGF0dHJpYnV0ZSA6IGN1cnJlbnRF
bGVtZW50LmF0dHJpYnV0ZXNJdGVyYXRvcigpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChp
c0F0dHJpYnV0ZUZvclRleHRNYW5pcHVsYXRpb24oYXR0cmlidXRlLm5hbWUoKSkpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBhZGRJdGVtKE1hbmlwdWxhdGlvbkl0ZW1EYXRhIHsgUG9zaXRpb24o
KSwgUG9zaXRpb24oKSwgbWFrZVdlYWtQdHIoY3VycmVudEVsZW1lbnQpLCBhdHRyaWJ1dGUubmFt
ZSgpLCB7IE1hbmlwdWxhdGlvblRva2VuIHsgbV90b2tlbklkZW50aWZpZXIuZ2VuZXJhdGUoKSwg
YXR0cmlidXRlLnZhbHVlKCksIHRva2VuSW5mbygmY3VycmVudEVsZW1lbnQpIH0gfSB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFkZEl0ZW0oTWFuaXB1bGF0aW9uSXRlbURhdGEgeyBQb3Np
dGlvbigpLCBQb3NpdGlvbigpLCBjdXJyZW50RWxlbWVudCwgYXR0cmlidXRlLm5hbWUoKSwgeyBN
YW5pcHVsYXRpb25Ub2tlbiB7IG1fdG9rZW5JZGVudGlmaWVyLmdlbmVyYXRlKCksIGF0dHJpYnV0
ZS52YWx1ZSgpLCB0b2tlbkluZm8oJmN1cnJlbnRFbGVtZW50KSB9IH0gfSk7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxl
bWVudD4oY3VycmVudEVsZW1lbnQpKSB7CiAgICAgICAgICAgICAgICAgYXV0byYgaW5wdXQgPSBk
b3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihjdXJyZW50RWxlbWVudCk7CiAgICAgICAgICAgICAg
ICAgaWYgKHNob3VsZEV4dHJhY3RWYWx1ZUZvclRleHRNYW5pcHVsYXRpb24oaW5wdXQpKQotICAg
ICAgICAgICAgICAgICAgICBhZGRJdGVtKE1hbmlwdWxhdGlvbkl0ZW1EYXRhIHsgeyB9LCB7IH0s
IG1ha2VXZWFrUHRyKGN1cnJlbnRFbGVtZW50KSwgSFRNTE5hbWVzOjp2YWx1ZUF0dHIsIHsgTWFu
aXB1bGF0aW9uVG9rZW4geyBtX3Rva2VuSWRlbnRpZmllci5nZW5lcmF0ZSgpLCBpbnB1dC52YWx1
ZSgpLCB0b2tlbkluZm8oJmN1cnJlbnRFbGVtZW50KSB9IH0gfSk7CisgICAgICAgICAgICAgICAg
ICAgIGFkZEl0ZW0oTWFuaXB1bGF0aW9uSXRlbURhdGEgeyB7IH0sIHsgfSwgY3VycmVudEVsZW1l
bnQsIEhUTUxOYW1lczo6dmFsdWVBdHRyLCB7IE1hbmlwdWxhdGlvblRva2VuIHsgbV90b2tlbklk
ZW50aWZpZXIuZ2VuZXJhdGUoKSwgaW5wdXQudmFsdWUoKSwgdG9rZW5JbmZvKCZjdXJyZW50RWxl
bWVudCkgfSB9IH0pOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoaXNFbmNsb3Np
bmdJdGVtQm91bmRhcnlFbGVtZW50KGN1cnJlbnRFbGVtZW50KSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9pb3MvRWRpdG9ySU9TLm1tCmluZGV4IDQ5ZDIzODJhN2NjNmMwMzZjZjJjNzkwNGNkYTU3
ZTFhMmE0YWUxN2YuLjcwZjBiNzExYTlkMzViOTYyMDU4YWZiMTFiYTY4ZmZhZmI1NWZiMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KQEAgLTI3NSw3ICsyNzUsNyBA
QCB2b2lkIEVkaXRvcjo6c2V0RGljdGF0aW9uUGhyYXNlc0FzQ2hpbGRPZkVsZW1lbnQoY29uc3Qg
VmVjdG9yPFZlY3RvcjxTdHJpbmc+PiYgZAogCiAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVh
dGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIGRpY3RhdGlvblBocmFzZXNCdWlsZGVyLnRvU3Ry
aW5nKCkpKTsKIAotICAgIGF1dG8gd2Vha0VsZW1lbnQgPSBtYWtlV2Vha1B0cihlbGVtZW50KTsK
KyAgICBXZWFrUHRyIHdlYWtFbGVtZW50IHsgZWxlbWVudCB9OwogCiAgICAgLy8gV2UgbmVlZCBh
IGxheW91dCBpbiBvcmRlciB0byBhZGQgbWFya2VycyBiZWxvdy4KICAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVh
ZGVyTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5j
cHAKaW5kZXggZGNjNjEzYjg1ZDhiMWVmYzRjODhhZTcwYTU4ZDI2MTVjN2ViOTQ5Ni4uOWZhZGQw
YjY2NDVlYWVkYWE2NDI4YzViZjdjMDg3ZTdiODNjYTdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIGNvbnN0IGludCBk
ZWZhdWx0QnVmZmVyTGVuZ3RoID0gMzI3Njg7CiAKIEZpbGVSZWFkZXJMb2FkZXI6OkZpbGVSZWFk
ZXJMb2FkZXIoUmVhZFR5cGUgcmVhZFR5cGUsIEZpbGVSZWFkZXJMb2FkZXJDbGllbnQqIGNsaWVu
dCkKICAgICA6IG1fcmVhZFR5cGUocmVhZFR5cGUpCi0gICAgLCBtX2NsaWVudChtYWtlV2Vha1B0
cihjbGllbnQpKQorICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9pc1Jhd0RhdGFDb252
ZXJ0ZWQoZmFsc2UpCiAgICAgLCBtX3N0cmluZ1Jlc3VsdChlbXB0eVN0cmluZygpKQogICAgICwg
bV92YXJpYWJsZUxlbmd0aChmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Q3VzdG9tUGFpbnRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50SW1h
Z2UuY3BwCmluZGV4IDdlNzMzYjNlZGRlNGRmOWNlMjM4Mjk3OTZkM2RkNmJlZWViYjU2ZjMuLmY0
NzE5OTQ2YzU4ZTA1OWJlMzNkYjcxZDNmN2I2ZjYwOTIwYTVjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFpbnRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9DdXN0b21QYWludEltYWdlLmNwcApAQCAtNTAsOSArNTAsOSBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBDdXN0b21QYWludEltYWdlOjpDdXN0b21QYWludEltYWdlKFBhaW50V29ya2xl
dEdsb2JhbFNjb3BlOjpQYWludERlZmluaXRpb24mIGRlZmluaXRpb24sIGNvbnN0IEZsb2F0U2l6
ZSYgc2l6ZSwgUmVuZGVyRWxlbWVudCYgZWxlbWVudCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFy
Z3VtZW50cykKLSAgICA6IG1fcGFpbnREZWZpbml0aW9uKG1ha2VXZWFrUHRyKGRlZmluaXRpb24p
KQorICAgIDogbV9wYWludERlZmluaXRpb24oZGVmaW5pdGlvbikKICAgICAsIG1faW5wdXRQcm9w
ZXJ0aWVzKGRlZmluaXRpb24uaW5wdXRQcm9wZXJ0aWVzKQotICAgICwgbV9lbGVtZW50KG1ha2VX
ZWFrUHRyKGVsZW1lbnQpKQorICAgICwgbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2FyZ3Vt
ZW50cyhhcmd1bWVudHMpCiB7CiAgICAgc2V0Q29udGFpbmVyU2l6ZShzaXplKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAppbmRleCBjNjNjY2Q1MTBh
OTczMjc0ZTM5MGRhNGYzMmE4ZTBhMzVhMDJiY2IwLi40YjM1MTEyNTI3ZDY5ZDNkN2U1NjdmNGQ4
MjNkOWMxNmNlZDgwNzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRl
ZEVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAKIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudDo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50KEhUTUxGb3JtRWxlbWVudCogZm9ybSkKICAg
ICA6IG1fZm9ybShudWxscHRyKQotICAgICwgbV9mb3JtU2V0QnlQYXJzZXIobWFrZVdlYWtQdHIo
Zm9ybSkpCisgICAgLCBtX2Zvcm1TZXRCeVBhcnNlcihmb3JtKQogewogfQogCkBAIC0xNTUsNyAr
MTU1LDcgQEAgdm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OnNldEZvcm0oSFRNTEZvcm1FbGVt
ZW50KiBuZXdGb3JtKQogICAgIHdpbGxDaGFuZ2VGb3JtKCk7CiAgICAgaWYgKG1fZm9ybSkKICAg
ICAgICAgbV9mb3JtLT5yZW1vdmVGb3JtRWxlbWVudCh0aGlzKTsKLSAgICBtX2Zvcm0gPSBtYWtl
V2Vha1B0cihuZXdGb3JtKTsKKyAgICBtX2Zvcm0gPSBuZXdGb3JtOwogICAgIGlmIChuZXdGb3Jt
KQogICAgICAgICBuZXdGb3JtLT5yZWdpc3RlckZvcm1FbGVtZW50KHRoaXMpOwogICAgIGRpZENo
YW5nZUZvcm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5k
ZXggMjFkZGRkNWEwYjU3ZWJlY2E0MTY5MDE3OWJhNjdmNGY4MzYxYWE5Yy4uN2QzNjBkOTkxN2Q3
YWE3ZjUzMzczMDQzMDNjMDBlMTE3ODZmYWFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHAKQEAgLTYyNCw3ICs2MjQsNyBAQCB2b2lkIEhUTUxBbmNob3JFbGVt
ZW50OjpzZXRSb290RWRpdGFibGVFbGVtZW50Rm9yU2VsZWN0aW9uT25Nb3VzZURvd24oRWxlbWVu
dCogZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcm9vdEVkaXRhYmxlRWxlbWVudE1h
cCgpLnNldCgqdGhpcywgbWFrZVdlYWtQdHIoZWxlbWVudCkpOworICAgIHJvb3RFZGl0YWJsZUVs
ZW1lbnRNYXAoKS5zZXQoKnRoaXMsIGVsZW1lbnQpOwogICAgIG1faGFzUm9vdEVkaXRhYmxlRWxl
bWVudEZvclNlbGVjdGlvbk9uTW91c2VEb3duID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4IGFhZDgwYTdhMDhlMzlkNzJiMjMwYzY4MzU2ZWIx
MjYxNmQ4MDM4MmQuLjBlYWE1ZDM3NGJmOGUzZjg5N2IzMDMwMmE3ZjFkNTFmZjVlMmNlNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKQEAgLTQwMiw3ICs0MDIsNyBA
QCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6c3VibWl0KEV2ZW50KiBldmVudCwgYm9vbCBhY3RpdmF0
ZVN1Ym1pdEJ1dHRvbiwgYm9vbCBwcm9jZQogICAgIGlmIChtX3BsYW5uZWRGb3JtU3VibWlzc2lv
bikKICAgICAgICAgbV9wbGFubmVkRm9ybVN1Ym1pc3Npb24tPmNhbmNlbCgpOwogCi0gICAgbV9w
bGFubmVkRm9ybVN1Ym1pc3Npb24gPSBtYWtlV2Vha1B0cihmb3JtU3VibWlzc2lvbi5nZXQoKSk7
CisgICAgbV9wbGFubmVkRm9ybVN1Ym1pc3Npb24gPSBmb3JtU3VibWlzc2lvbjsKICAgICAKICAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5kaWFsb2dFbGVt
ZW50RW5hYmxlZCgpICYmIGZvcm1TdWJtaXNzaW9uLT5tZXRob2QoKSA9PSBGb3JtU3VibWlzc2lv
bjo6TWV0aG9kOjpEaWFsb2cpCiAgICAgICAgIHN1Ym1pdERpYWxvZyhXVEZNb3ZlKGZvcm1TdWJt
aXNzaW9uKSk7CkBAIC01OTQsNyArNTk0LDcgQEAgdW5zaWduZWQgSFRNTEZvcm1FbGVtZW50Ojpm
b3JtRWxlbWVudEluZGV4KEZvcm1Bc3NvY2lhdGVkRWxlbWVudCogYXNzb2NpYXRlZEVsZW0KIAog
dm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlZ2lzdGVyRm9ybUVsZW1lbnQoRm9ybUFzc29jaWF0ZWRF
bGVtZW50KiBlKQogewotICAgIG1fYXNzb2NpYXRlZEVsZW1lbnRzLmluc2VydChmb3JtRWxlbWVu
dEluZGV4KGUpLCBtYWtlV2Vha1B0cihlLT5hc0hUTUxFbGVtZW50KCkpKTsKKyAgICBtX2Fzc29j
aWF0ZWRFbGVtZW50cy5pbnNlcnQoZm9ybUVsZW1lbnRJbmRleChlKSwgZS0+YXNIVE1MRWxlbWVu
dCgpKTsKIAogICAgIGlmIChpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PihlKSkgewogICAgICAg
ICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50JiBjb250cm9sID0gZG93bmNhc3Q8SFRNTEZvcm1Db250
cm9sRWxlbWVudD4oKmUpOwpAQCAtNjUxLDcgKzY1MSw3IEBAIGJvb2wgSFRNTEZvcm1FbGVtZW50
Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKIHZvaWQg
SFRNTEZvcm1FbGVtZW50OjpyZWdpc3RlckltZ0VsZW1lbnQoSFRNTEltYWdlRWxlbWVudCogZSkK
IHsKICAgICBBU1NFUlQobV9pbWFnZUVsZW1lbnRzLmZpbmQoZSkgPT0gbm90Rm91bmQpOwotICAg
IG1faW1hZ2VFbGVtZW50cy5hcHBlbmQobWFrZVdlYWtQdHIoZSkpOworICAgIG1faW1hZ2VFbGVt
ZW50cy5hcHBlbmQoZSk7CiB9CiAKIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpyZW1vdmVJbWdFbGVt
ZW50KEhUTUxJbWFnZUVsZW1lbnQqIGUpCkBAIC03NTIsNyArNzUyLDcgQEAgSFRNTEZvcm1Db250
cm9sRWxlbWVudCogSFRNTEZvcm1FbGVtZW50OjpkZWZhdWx0QnV0dG9uKCkgY29uc3QKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50JiBjb250cm9s
ID0gZG93bmNhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oKmFzc29jaWF0ZWRFbGVtZW50KTsK
ICAgICAgICAgaWYgKGNvbnRyb2wuaXNTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkpIHsKLSAgICAg
ICAgICAgIG1fZGVmYXVsdEJ1dHRvbiA9IG1ha2VXZWFrUHRyKGNvbnRyb2wpOworICAgICAgICAg
ICAgbV9kZWZhdWx0QnV0dG9uID0gY29udHJvbDsKICAgICAgICAgICAgIHJldHVybiAmY29udHJv
bDsKICAgICAgICAgfQogICAgIH0KQEAgLTg1Miw3ICs4NTIsNyBAQCB2b2lkIEhUTUxGb3JtRWxl
bWVudDo6YWRkVG9QYXN0TmFtZXNNYXAoRm9ybU5hbWVkSXRlbSogaXRlbSwgY29uc3QgQXRvbVN0
cmluZyYgcAogI2VuZGlmCiAgICAgaWYgKHBhc3ROYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwotICAgIG1fcGFzdE5hbWVzTWFwLnNldChwYXN0TmFtZS5pbXBsKCksIG1ha2VXZWFrUHRy
KGl0ZW0tPmFzSFRNTEVsZW1lbnQoKSkpOworICAgIG1fcGFzdE5hbWVzTWFwLnNldChwYXN0TmFt
ZS5pbXBsKCksIGl0ZW0tPmFzSFRNTEVsZW1lbnQoKSk7CiB9CiAKIHZvaWQgSFRNTEZvcm1FbGVt
ZW50OjpyZW1vdmVGcm9tUGFzdE5hbWVzTWFwKEZvcm1OYW1lZEl0ZW0qIGl0ZW0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAKaW5kZXggZjJlNGI4YTZi
YWNkZTk3YWU3NzJmMGYyZmE2NmZhMDcyY2M3ZjNmYi4uMzM1NjFjZTkyZTBjNzE5OGM1ZGQ5MzY3
N2FiYWU0NTI0OWIzZjc5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVPd25lckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3du
ZXJFbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCB2b2lkIEhUTUxGcmFtZU93bmVyRWxlbWVu
dDo6c2V0Q29udGVudEZyYW1lKEZyYW1lJiBmcmFtZSkKICAgICBBU1NFUlQoIW1fY29udGVudEZy
YW1lIHx8IG1fY29udGVudEZyYW1lLT5vd25lckVsZW1lbnQoKSAhPSB0aGlzKTsKICAgICAvLyBE
aXNjb25uZWN0ZWQgZnJhbWVzIHNob3VsZCBub3QgYmUgYWxsb3dlZCB0byBsb2FkLgogICAgIEFT
U0VSVChpc0Nvbm5lY3RlZCgpKTsKLSAgICBtX2NvbnRlbnRGcmFtZSA9IG1ha2VXZWFrUHRyKGZy
YW1lKTsKKyAgICBtX2NvbnRlbnRGcmFtZSA9IGZyYW1lOwogCiAgICAgZm9yIChSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gbm9kZSA9IHRoaXM7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnRPclNoYWRv
d0hvc3ROb2RlKCkpCiAgICAgICAgIG5vZGUtPmluY3JlbWVudENvbm5lY3RlZFN1YmZyYW1lQ291
bnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGM4M2Zk
MjlkMGJhY2MzZjIxMDIyZGFhNTg4ZjQ3YmQ5OTdmYWEzOWIuLmY3OGVmMTMzNTM4ZjkwMGIzNzkw
ZTQ0ZThmYzg4ZGZjOTQyZDhiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcApAQCAtNzAsNyArNzAsNyBAQCBIVE1MSW1hZ2VFbGVtZW50OjpIVE1MSW1hZ2VFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogICAgIDog
SFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX2ltYWdlTG9hZGVyKFdURjo6
bWFrZVVuaXF1ZTxIVE1MSW1hZ2VMb2FkZXI+KCp0aGlzKSkKICAgICAsIG1fZm9ybShudWxscHRy
KQotICAgICwgbV9mb3JtU2V0QnlQYXJzZXIobWFrZVdlYWtQdHIoZm9ybSkpCisgICAgLCBtX2Zv
cm1TZXRCeVBhcnNlcihmb3JtKQogICAgICwgbV9jb21wb3NpdGVPcGVyYXRvcihDb21wb3NpdGVP
cGVyYXRvcjo6U291cmNlT3ZlcikKICAgICAsIG1faW1hZ2VEZXZpY2VQaXhlbFJhdGlvKDEuMGYp
CiB7CkBAIC00MDIsNyArNDAyLDcgQEAgTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQg
SFRNTEltYWdlRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW8KIAogICAgIGlm
ICghbV9mb3JtKSB7CiAgICAgICAgIGlmIChhdXRvKiBuZXdGb3JtID0gSFRNTEZvcm1FbGVtZW50
OjpmaW5kQ2xvc2VzdEZvcm1BbmNlc3RvcigqdGhpcykpIHsKLSAgICAgICAgICAgIG1fZm9ybSA9
IG1ha2VXZWFrUHRyKG5ld0Zvcm0pOworICAgICAgICAgICAgbV9mb3JtID0gbmV3Rm9ybTsKICAg
ICAgICAgICAgIG5ld0Zvcm0tPnJlZ2lzdGVySW1nRWxlbWVudCh0aGlzKTsKICAgICAgICAgfQog
ICAgIH0KQEAgLTQ1NSw3ICs0NTUsNyBAQCBIVE1MUGljdHVyZUVsZW1lbnQqIEhUTUxJbWFnZUVs
ZW1lbnQ6OnBpY3R1cmVFbGVtZW50KCkgY29uc3QKICAgICAKIHZvaWQgSFRNTEltYWdlRWxlbWVu
dDo6c2V0UGljdHVyZUVsZW1lbnQoSFRNTFBpY3R1cmVFbGVtZW50KiBwaWN0dXJlRWxlbWVudCkK
IHsKLSAgICBtX3BpY3R1cmVFbGVtZW50ID0gbWFrZVdlYWtQdHIocGljdHVyZUVsZW1lbnQpOwor
ICAgIG1fcGljdHVyZUVsZW1lbnQgPSBwaWN0dXJlRWxlbWVudDsKIH0KICAgICAKIHVuc2lnbmVk
IEhUTUxJbWFnZUVsZW1lbnQ6OndpZHRoKGJvb2wgaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQpA
QCAtODU3LDcgKzg1Nyw3IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0U291cmNlRWxlbWVu
dChIVE1MU291cmNlRWxlbWVudCogc291cmNlRWxlbWVudCkKIHsKICAgICBpZiAobV9zb3VyY2VF
bGVtZW50ID09IHNvdXJjZUVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3NvdXJjZUVs
ZW1lbnQgPSBtYWtlV2Vha1B0cihzb3VyY2VFbGVtZW50KTsKKyAgICBtX3NvdXJjZUVsZW1lbnQg
PSBzb3VyY2VFbGVtZW50OwogICAgIGludmFsaWRhdGVBdHRyaWJ1dGVNYXBwaW5nKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGRiMTdkZWMzYTk3
NTMxYjY2MmNkYTJkMTY0YjBlMGUyYmRmODUzY2EuLmZlZDQ0MzhmNDFmYjk0MmUxZjU5ZmMyNmU4
MmU1ZWNiNDZiMzg3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtNzI3OSw3ICs3Mjc5LDcgQEAgUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRl
cj4gSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUwKICAgICBhdXRv
IGRlc3RpbmF0aW9uID0gaXNWaWRlbygpID8gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6Vmlk
ZW8gOiBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpBdWRpbzsKICAgICBhdXRvIG1lZGlhUmVz
b3VyY2VMb2FkZXIgPSBhZG9wdFJlZigqbmV3IE1lZGlhUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnQo
KSwgKnRoaXMsIGNyb3NzT3JpZ2luKCksIGRlc3RpbmF0aW9uKSk7CiAKLSAgICBtX2xhc3RNZWRp
YVJlc291cmNlTG9hZGVyRm9yVGVzdGluZyA9IG1ha2VXZWFrUHRyKG1lZGlhUmVzb3VyY2VMb2Fk
ZXIuZ2V0KCkpOworICAgIG1fbGFzdE1lZGlhUmVzb3VyY2VMb2FkZXJGb3JUZXN0aW5nID0gbWVk
aWFSZXNvdXJjZUxvYWRlcjsKIAogICAgIHJldHVybiBtZWRpYVJlc291cmNlTG9hZGVyOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAxZGY2NzZhZjNkMTk0YWVi
MTlhZWUwNDY3MTc2NjEwYjNiYTVhMWY1Li5kZjAzODIyYmFlM2JkMjIwYzRkNjA2MmJhMTkwN2Vl
ZDViZWRkZDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTE2
OCw3ICsxMTY4LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTbGVlcERpc2Fi
bGVyPiBtX3NsZWVwRGlzYWJsZXI7CiAKLSAgICBXZWFrUHRyPGNvbnN0IE1lZGlhUmVzb3VyY2VM
b2FkZXI+IG1fbGFzdE1lZGlhUmVzb3VyY2VMb2FkZXJGb3JUZXN0aW5nOworICAgIFdlYWtQdHI8
TWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9sYXN0TWVkaWFSZXNvdXJjZUxvYWRlckZvclRlc3Rpbmc7
CiAKICAgICBzdGQ6Om9wdGlvbmFsPER5bmFtaWNSYW5nZU1vZGU+IG1fb3ZlcnJpZGVEeW5hbWlj
UmFuZ2VNb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCBmNWU3ZGIyMWU2OThiNjA2
NTIzYTZjZjA3MWJiNjFmNmM4MjdhNzFlLi4xOWQ4MGM0MWExZmM2ZTFhMGFiZGVkMTNlMDc4MTZj
MjU0ZDZlY2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTQwMiw3ICs0MDIsNyBAQCBw
dWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgSW5wdXRUeXBlKFR5cGUgdHlwZSwgSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKLSAgICAgICAg
LCBtX2VsZW1lbnQobWFrZVdlYWtQdHIoZWxlbWVudCkpIHsgfQorICAgICAgICAsIG1fZWxlbWVu
dChlbGVtZW50KSB7IH0KICAgICBIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9CiAgICAgQ2hyb21lKiBjaHJvbWUoKSBjb25zdDsKICAg
ICBEZWNpbWFsIHBhcnNlVG9OdW1iZXJPck5hTihjb25zdCBTdHJpbmcmKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IDdmNmQzOWYzZWNl
MGNmZjc1Nzk0YmVkNGFjMzRmZWQzMTY0N2Y1MTcuLjQyMjQ0ZTliOGMxYWZmZDZjNThmOGEzMTEy
ZGY3NmE4NTg5MGIzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVt
ZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk9ic2VydmVyIDog
cHVibGljIE1lZGlhU2Vzc2lvbjo6T2JzZXJ2ZXIgewogCiBwdWJsaWM6CiAgICAgTWVkaWFTZXNz
aW9uT2JzZXJ2ZXIoTWVkaWFFbGVtZW50U2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgUmVmPE1lZGlh
U2Vzc2lvbj4mIG1lZGlhU2Vzc2lvbikKLSAgICAgICAgOiBtX3Nlc3Npb24obWFrZVdlYWtQdHIo
c2Vzc2lvbikpLCBtX21lZGlhU2Vzc2lvbihtZWRpYVNlc3Npb24pCisgICAgICAgIDogbV9zZXNz
aW9uKHNlc3Npb24pLCBtX21lZGlhU2Vzc2lvbihtZWRpYVNlc3Npb24pCiAgICAgewogICAgICAg
ICBtX21lZGlhU2Vzc2lvbi0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcAppbmRleCBiMTAzMWRhMDBkZjA0MWFlNmFhMDNkMmZm
NjEyMDUyYTVmZWJhYzk5Li40ZDE2NTk2ODRkMWI2MTdjNzZkZjgxYTRiMDBmMDViN2M3ZjUwZDlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCkBAIC00MjMsNyArNDIz
LDcgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OnNldFBsYWNlaG9sZGVyQ2FudmFzKEhUTUxDYW52
YXNFbGVtZW50JiBjYW52YXMpCiB7CiAgICAgQVNTRVJUKCFtX2NvbnRleHQpOwogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9wbGFjZWhvbGRlckRhdGEtPmNhbnZhcyA9IG1ha2VX
ZWFrUHRyKGNhbnZhcyk7CisgICAgbV9wbGFjZWhvbGRlckRhdGEtPmNhbnZhcyA9IGNhbnZhczsK
ICAgICBhdXRvJiBwbGFjZWhvbGRlckNvbnRleHQgPSBkb3duY2FzdDxQbGFjZWhvbGRlclJlbmRl
cmluZ0NvbnRleHQ+KCpjYW52YXMucmVuZGVyaW5nQ29udGV4dCgpKTsKICAgICBhdXRvJiBpbWFn
ZUJ1ZmZlclBpcGUgPSBwbGFjZWhvbGRlckNvbnRleHQuaW1hZ2VCdWZmZXJQaXBlKCk7CiAgICAg
aWYgKGltYWdlQnVmZmVyUGlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJM
U2VhcmNoUGFyYW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmNw
cAppbmRleCBmNTRmNDFlMTljZjdhN2U0ZDU1NDBjNjQ2NjYyZjhlYzVmYmQzZDM3Li4yNGQ2ZjEz
YzIyYmU3NGMzODBiMGVmZTg4ZDBlM2FmMDc4M2Y2ZDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1VSTFNlYXJjaFBhcmFtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9V
UkxTZWFyY2hQYXJhbXMuY3BwCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFVSTFNlYXJjaFBhcmFtczo6VVJMU2VhcmNoUGFyYW1zKGNvbnN0IFN0cmluZyYgaW5pdCwg
RE9NVVJMKiBhc3NvY2lhdGVkVVJMKQotICAgIDogbV9hc3NvY2lhdGVkVVJMKG1ha2VXZWFrUHRy
KGFzc29jaWF0ZWRVUkwpKQorICAgIDogbV9hc3NvY2lhdGVkVVJMKGFzc29jaWF0ZWRVUkwpCiAg
ICAgLCBtX3BhaXJzKGluaXQuc3RhcnRzV2l0aCgnPycpID8gV1RGOjpVUkxQYXJzZXI6OnBhcnNl
VVJMRW5jb2RlZEZvcm0oU3RyaW5nVmlldyhpbml0KS5zdWJzdHJpbmcoMSkpIDogV1RGOjpVUkxQ
YXJzZXI6OnBhcnNlVVJMRW5jb2RlZEZvcm0oaW5pdCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCmluZGV4IDE2NTg2MzliNGVjYzU0
NTViYWQ3ZDczYjAzZjAxMDI2ZGM0YjI1MmIuLjFhMjUwMmQ3MGZmMjVlNWE0NzZjYjExMWQyYTFj
N2RkMzk0ZGNlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxT
Y3JpcHRSdW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3Jp
cHRSdW5uZXIuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIEhUTUxTY3JpcHRSdW5uZXI6OkhUTUxTY3JpcHRSdW5u
ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MU2NyaXB0UnVubmVySG9zdCYgaG9zdCkKLSAgICA6
IG1fZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9jdW1lbnQpKQorICAgIDogbV9kb2N1bWVudChkb2N1
bWVudCkKICAgICAsIG1faG9zdChob3N0KQogICAgICwgbV9zY3JpcHROZXN0aW5nTGV2ZWwoMCkK
ICAgICAsIG1faGFzU2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNoZWV0cyhmYWxzZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKaW5kZXgg
OWNiOGU5ZThlMjQ5MjhjN2ZmMTI1ODllNzdiNTdmOTFkZDJjZmY4ZS4uMTM3NzE1Y2YzNjczZjI2
MmFmNThkMjRhM2Q2NWZjZWRiZTJhODU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKQEAgLTE5MCw3ICsxOTAsNyBAQCBEYXRl
VGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyOjp+RWRpdENvbnRyb2xPd25lcigpID0g
ZGVmYXVsdDsKIAogRGF0ZVRpbWVFZGl0RWxlbWVudDo6RGF0ZVRpbWVFZGl0RWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQsIEVkaXRDb250cm9sT3duZXImIGVkaXRDb250cm9sT3duZXIpCiAgICAg
OiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQotICAgICwgbV9lZGl0Q29udHJvbE93
bmVyKG1ha2VXZWFrUHRyKGVkaXRDb250cm9sT3duZXIpKQorICAgICwgbV9lZGl0Q29udHJvbE93
bmVyKGVkaXRDb250cm9sT3duZXIpCiB7CiAgICAgbV9wbGFjZWhvbGRlckRhdGUuc2V0VG9DdXJy
ZW50TG9jYWxUaW1lKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudC5jcHAKaW5kZXggYzM2Mzc4MmYwNGY1ZmZiMmM5Y2JlNTc5ZjEz
NjdlNWQ0ZDE5NGJmZC4uMmM5NTZjYjljNDJiMjUxZTJhYzNmNTAwZTNjZDBjN2NkZmRmMGJhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBEYXRlVGltZUZpZWxkRWxlbWVudDo6RmllbGRPd25l
cjo6fkZpZWxkT3duZXIoKSA9IGRlZmF1bHQ7CiAKIERhdGVUaW1lRmllbGRFbGVtZW50OjpEYXRl
VGltZUZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3du
ZXIpCiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQotICAgICwgbV9maWVs
ZE93bmVyKG1ha2VXZWFrUHRyKGZpZWxkT3duZXIpKQorICAgICwgbV9maWVsZE93bmVyKGZpZWxk
T3duZXIpCiB7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCmluZGV4IDI2N2Y2Yzk1N2I4YjY1
MDlkYTg0MDk2YzRmMTgwMWU3NGMxYzM1MDUuLmFmYjVmMWU2Y2RlZWEzODFkMTFkYWRjY2Y2NWFh
ZjlkZjg3OWQxYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCkBA
IC03Niw3ICs3Niw3IEBAIFJlZjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50
PiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50CiAKIE1lZGlhQ29udHJvbFRl
eHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVs
ZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQogICAg
IDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKLSAgICAsIG1fbWVkaWFFbGVtZW50
KG1ha2VXZWFrUHRyKCZlbGVtZW50KSkKKyAgICAsIG1fbWVkaWFFbGVtZW50KGVsZW1lbnQpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAppbmRleCBj
ODM2Njg1ZmZmMTUxYjk5OWYxZjE1ZGYzNGRlNmNjZjQxNjZlZWMyLi4xOWZjODVjZDg5N2E3Y2Vh
ZGI0MWQ1MDI1YTc5YWI5Mjg3N2RmMTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWUuY3BwCkBAIC04Niw3ICs4Niw3IEBAIFJlZjxUZXh0VHJhY2tDdWVCb3g+IFRl
eHRUcmFja0N1ZUJveDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgVGV4dFRyYWNrQ3VlJiBj
CiAKIFRleHRUcmFja0N1ZUJveDo6VGV4dFRyYWNrQ3VlQm94KERvY3VtZW50JiBkb2N1bWVudCwg
VGV4dFRyYWNrQ3VlJiBjdWUpCiAgICAgOiBIVE1MRWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywg
ZG9jdW1lbnQpCi0gICAgLCBtX2N1ZShtYWtlV2Vha1B0cihjdWUpKQorICAgICwgbV9jdWUoY3Vl
KQogewogICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCmluZGV4IGJkYzg4YWI1MDQ2ZTkxY2ZkYzEz
MTQ0MTk3MzkwNDVkMDY4MGQyNjAuLmJhZmE0OWVlNjBkODg2Y2Y1ZDcxZTZlZGMzZmNlNjEzMGE2
ZTE0ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKQEAgLTczLDcg
KzczLDcgQEAgVHJhY2tCYXNlOjpUcmFja0Jhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgVHlwZSB0eXBlLCBjb25zdCBBdG9tU3RyaW4KIAogdm9pZCBUcmFja0Jhc2U6OnNldFRy
YWNrTGlzdChUcmFja0xpc3RCYXNlJiB0cmFja0xpc3QpCiB7Ci0gICAgbV90cmFja0xpc3QgPSBt
YWtlV2Vha1B0cih0cmFja0xpc3QpOworICAgIG1fdHJhY2tMaXN0ID0gdHJhY2tMaXN0OwogfQog
CiB2b2lkIFRyYWNrQmFzZTo6Y2xlYXJUcmFja0xpc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RyYWNrTGlzdEJhc2UuaAppbmRleCA5ZDNlNjgxZTdkZTRhNjE5NGI2ODY3MGY1NGRmNTVl
NjIyYmI5ZTJkLi40ODMzZDEzYTFlZGU1Mjk2ODg4ZjNhMzM1NWQ1YTk3MzIyODM1NWJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaApAQCAtNTksNyArNTksNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCogb3BhcXVlUm9vdCgpOwogCiAgICAgdXNpbmcgT3BhcXVlUm9v
dE9ic2VydmVyID0gV1RGOjpPYnNlcnZlcjx2b2lkKigpPjsKLSAgICB2b2lkIHNldE9wYXF1ZVJv
b3RPYnNlcnZlcihjb25zdCBPcGFxdWVSb290T2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb3BhcXVl
Um9vdE9ic2VydmVyID0gbWFrZVdlYWtQdHIob2JzZXJ2ZXIpOyB9OworICAgIHZvaWQgc2V0T3Bh
cXVlUm9vdE9ic2VydmVyKGNvbnN0IE9wYXF1ZVJvb3RPYnNlcnZlciYgb2JzZXJ2ZXIpIHsgbV9v
cGFxdWVSb290T2JzZXJ2ZXIgPSBvYnNlcnZlcjsgfTsKIAogICAgIC8vIE5lZWRzIHRvIGJlIHB1
YmxpYyBzbyB0cmFja3MgY2FuIGNhbGwgaXQKICAgICB2b2lkIHNjaGVkdWxlQ2hhbmdlRXZlbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQVBJRGlzcGF0Y2hlci5jcHAKaW5kZXggMTY4MGNkYjM1ZWIzY2M3MTg1ZTJiN2JiZGM1
NzIwODZlNDJjZjRmYy4uZGE2YjI4NDI1OWI2NjlhMzcwNWI4YzBlMTYyZDI5ZjUwNWI5NjM4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQVBJRGlzcGF0Y2hlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogdXNpbmcgRXZhbHVhdGlvbkVycm9yID0gSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRj
aGVyOjpFdmFsdWF0aW9uRXJyb3I7CiAKIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyKFBhZ2UmIGZyb250ZW5kUGFnZSkKLSAgICA6
IG1fZnJvbnRlbmRQYWdlKG1ha2VXZWFrUHRyKGZyb250ZW5kUGFnZSkpCisgICAgOiBtX2Zyb250
ZW5kUGFnZShmcm9udGVuZFBhZ2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBmMjlhN2FiZTE1MzUxODgzYWJhOWJiZjMwZTll
MzUxODc4ZDc1NjQyLi43ZDJhNWZmYmNjM2E4YTgxNDFmZmNmYmIyZTVhYmRiNjU4YTg1Yzc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC02
MDYsNyArNjA2LDcgQEAgRXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0b3JPdmVybGF5OjpzZXRH
cmlkT3ZlcmxheUZvck5vZGUoTm9kZSYgbm9kZSwgY29uc3QgSW4KIAogICAgIHJlbW92ZUdyaWRP
dmVybGF5Rm9yTm9kZShub2RlKTsKIAotICAgIG1fYWN0aXZlR3JpZE92ZXJsYXlzLmFwcGVuZCh7
IG1ha2VXZWFrUHRyKG5vZGUpLCBncmlkT3ZlcmxheUNvbmZpZyB9KTsKKyAgICBtX2FjdGl2ZUdy
aWRPdmVybGF5cy5hcHBlbmQoeyBub2RlLCBncmlkT3ZlcmxheUNvbmZpZyB9KTsKIAogICAgIHVw
ZGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDllOGRmMmVjYjAxMDQ4MzYxYjI0NGY4NTBmOWJjZWM5
OWE1MTllMTkuLmFiNzAwNDhmYTZjZDJhZTViMGMxMjAwZGNkYTc1YmExZWQ4YjY1YzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCkBAIC0zODIsNyArMzgyLDcgQEAgUHJvdG9jb2w6OkRPTTo6Tm9kZUlkIEluc3BlY3Rv
ckRPTUFnZW50OjpiaW5kKE5vZGUmIG5vZGUpCiB7CiAgICAgcmV0dXJuIG1fbm9kZVRvSWQuZW5z
dXJlKG5vZGUsIFsmXSB7CiAgICAgICAgIGF1dG8gaWQgPSBtX2xhc3ROb2RlSWQrKzsKLSAgICAg
ICAgbV9pZFRvTm9kZS5zZXQoaWQsIG1ha2VXZWFrUHRyKG5vZGUpKTsKKyAgICAgICAgbV9pZFRv
Tm9kZS5zZXQoaWQsIG5vZGUpOwogICAgICAgICByZXR1cm4gaWQ7CiAgICAgfSkuaXRlcmF0b3It
PnZhbHVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcAppbmRleCAzODAyYTM0ZjI5M2U2NWQ2NmU3
N2ViNDQzOGVjNDFiN2M3Njg3Y2Y3Li40YTZmNjMyYjZmOTcxMTQyYzQwMGM0ZGI4MDUzYjRkMGYx
OTQ2ODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckxheWVyVHJlZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcApAQCAtMzUzLDcgKzM1Myw3IEBAIFN0cmlu
ZyBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6YmluZFBzZXVkb0VsZW1lbnQoUHNldWRvRWxlbWVu
dCogcHNldWRvRWxlbWVudCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0
dXJuIG1fcHNldWRvRWxlbWVudFRvSWRNYXAuZW5zdXJlKCpwc2V1ZG9FbGVtZW50LCBbdGhpcywg
cHNldWRvRWxlbWVudF0gewogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBJZGVudGlmaWVyc0Zh
Y3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKTsKLSAgICAgICAgbV9pZFRvUHNldWRvRWxlbWVudC5z
ZXQoaWRlbnRpZmllciwgbWFrZVdlYWtQdHIocHNldWRvRWxlbWVudCkpOworICAgICAgICBtX2lk
VG9Qc2V1ZG9FbGVtZW50LnNldChpZGVudGlmaWVyLCBwc2V1ZG9FbGVtZW50KTsKICAgICAgICAg
cmV0dXJuIGlkZW50aWZpZXI7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdl
bnQuY3BwCmluZGV4IDM3NDY4NDMyNTc3ZjY0ZTNkMThiYzM2NjdjYTI5OGY0M2EzYmY1MDMuLmU3
YTRiMjkxNmI1NjZiOGM1ZWQ3MTY1OTBjMjA5ZjdhOTMzODI5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5j
cHAKQEAgLTg0MSw3ICs4NDEsNyBAQCBQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNw
ZWN0b3JOZXR3b3JrQWdlbnQ6OmVuYWJsZSgpCiAgICAgICAgICAgICBhdXRvIGlkZW50aWZpZXIg
PSBjaGFubmVsLT5wcm9ncmVzc0lkZW50aWZpZXIoKTsKICAgICAgICAgICAgIGRpZENyZWF0ZVdl
YlNvY2tldChpZGVudGlmaWVyLCB3ZWJTb2NrZXQtPnVybCgpKTsKIAotICAgICAgICAgICAgYXV0
byBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSA9IFtkb2N1bWVudCA9IG1ha2VXZWFrUHRy
KGRvY3VtZW50KV0oY29uc3QgVVJMJiB1cmwpIC0+IFN0cmluZyB7CisgICAgICAgICAgICBhdXRv
IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlID0gW2RvY3VtZW50ID0gV2Vha1B0ciB7IGRv
Y3VtZW50IH1dKGNvbnN0IFVSTCYgdXJsKSAtPiBTdHJpbmcgewogICAgICAgICAgICAgICAgIGlm
ICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7IH07CiAgICAgICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5wYWdlKCktPmNvb2tp
ZUphcigpLmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKCpkb2N1bWVudCwgdXJsKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcAppbmRleCA3MGQyMjMzOGI3N2EyMzg2YTE2ZTcyNWNmMWQ2ZmJkODA5NWE1NzNjLi5j
ODk0MDY3NTg1ZWIxZTNkYzc5Mjc2ZDlkMGU0Zjc1NjJjODRkODAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBA
IC04MzgsNyArODM4LDcgQEAgU3RyaW5nIEluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVJZChGcmFt
ZSogZnJhbWUpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBtX2Zy
YW1lVG9JZGVudGlmaWVyLmVuc3VyZShmcmFtZSwgW3RoaXMsIGZyYW1lXSB7CiAgICAgICAgIGF1
dG8gaWRlbnRpZmllciA9IElkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpOwot
ICAgICAgICBtX2lkZW50aWZpZXJUb0ZyYW1lLnNldChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cihm
cmFtZSkpOworICAgICAgICBtX2lkZW50aWZpZXJUb0ZyYW1lLnNldChpZGVudGlmaWVyLCBmcmFt
ZSk7CiAgICAgICAgIHJldHVybiBpZGVudGlmaWVyOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
V29ya2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JXb3JrZXJBZ2VudC5jcHAKaW5kZXggY2M4NjY3YzEwNGQzN2FlMjFkODAxNTQ0MGVjYWMwMWMx
Yzc0ZGM1NS4uYzEzMzc0YjE2MWVlYmJmNjc4NjBhMDAwOWJlYzE0YTM1YzUzMjk5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5jcHAKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50
Ojpjb25uZWN0VG9Xb3JrZXJJbnNwZWN0b3JQcm94eShXb3JrZXJJbnNwZWN0b3JQcm94eSYgcAog
ewogICAgIHByb3h5LmNvbm5lY3RUb1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKnRoaXMpOwog
Ci0gICAgbV9jb25uZWN0ZWRQcm94aWVzLnNldChwcm94eS5pZGVudGlmaWVyKCksIG1ha2VXZWFr
UHRyKHByb3h5KSk7CisgICAgbV9jb25uZWN0ZWRQcm94aWVzLnNldChwcm94eS5pZGVudGlmaWVy
KCksIHByb3h5KTsKIAogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT53b3JrZXJDcmVhdGVkKHBy
b3h5LmlkZW50aWZpZXIoKSwgcHJveHkudXJsKCkuc3RyaW5nKCksIHByb3h5Lm5hbWUoKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3Rh
YmxlL1RhYmxlR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL3RhYmxlL1RhYmxlR3JpZC5jcHAKaW5kZXggYmY0MzMxOGMxOGI1YzNkNjA0YTQwY2FhYWE2
Zjg2ZDQ0YWVhYTJlOS4uZDFjNTM2ZWUzZjcwYWY3YWQ1ZjAzNDIxODE1NmQzY2E0YmE0ZjZjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJs
ZS9UYWJsZUdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcApAQCAtNjgsNyArNjgsNyBAQCBUYWJsZUdyaWQ6OkNl
bGw6OkNlbGwoY29uc3QgQ29udGFpbmVyQm94JiBjZWxsQm94LCBTbG90UG9zaXRpb24gcG9zaXRp
b24sIENlbGxTcAogfQogCiBUYWJsZUdyaWQ6OlNsb3Q6OlNsb3QoQ2VsbCYgY2VsbCwgYm9vbCBp
c0NvbHVtblNwYW5uZWQsIGJvb2wgaXNSb3dTcGFubmVkKQotICAgIDogbV9jZWxsKG1ha2VXZWFr
UHRyKGNlbGwpKQorICAgIDogbV9jZWxsKGNlbGwpCiAgICAgLCBtX2lzQ29sdW1uU3Bhbm5lZChp
c0NvbHVtblNwYW5uZWQpCiAgICAgLCBtX2lzUm93U3Bhbm5lZChpc1Jvd1NwYW5uZWQpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcAppbmRleCA2
ZWM1ZGNiMjQ2NjY4NDc1NDQ2NTc1ZmVhNjA4MmU1NTQ2MTRjNWMxLi4yMmZlYmVkMTQxMDlmODNm
NWZiMjNhY2Q4MzlmNjRjYzhmZGY0YmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dEJveC5jcHAKQEAgLTU0Myw3ICs1NDMsNyBAQCBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IEJveDo6Y29sdW1uV2lkdGgoKSBjb25zdAogdm9pZCBCb3g6OnNldENhY2hl
ZEdlb21ldHJ5Rm9yTGF5b3V0U3RhdGUoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBzdGQ6OnVu
aXF1ZV9wdHI8Qm94R2VvbWV0cnk+IGdlb21ldHJ5KSBjb25zdAogewogICAgIEFTU0VSVCghbV9j
YWNoZWRMYXlvdXRTdGF0ZSk7Ci0gICAgbV9jYWNoZWRMYXlvdXRTdGF0ZSA9IG1ha2VXZWFrUHRy
KGxheW91dFN0YXRlKTsKKyAgICBtX2NhY2hlZExheW91dFN0YXRlID0gbGF5b3V0U3RhdGU7CiAg
ICAgbV9jYWNoZWRHZW9tZXRyeUZvckxheW91dFN0YXRlID0gV1RGTW92ZShnZW9tZXRyeSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGJmMTRjZWE0
YzA2OGJkNzI0MmQ1NGE5ODMwM2MxN2IxYmRmYzEzMjAuLjRiNmViNTg5MTNmM2JkMDE2YjI2MmQx
MjczZjkyYzVjNmQ0OTk2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcApAQCAtNzkyLDcgKzc5Miw3IEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OnRyeUxvYWRpbmdT
dWJzdGl0dXRlRGF0YSgpCiAgICAgaWYgKCFtX2RlZmVyTWFpblJlc291cmNlRGF0YUxvYWQgfHwg
ZnJhbWVMb2FkZXIoKS0+bG9hZHNTeW5jaHJvbm91c2x5KCkpCiAgICAgICAgIGhhbmRsZVN1YnN0
aXR1dGVEYXRhTG9hZE5vdygpOwogICAgIGVsc2UgewotICAgICAgICBhdXRvIGxvYWREYXRhID0g
W3RoaXMsIHdlYWtEYXRhTG9hZFRva2VuID0gbWFrZVdlYWtQdHIobV9kYXRhTG9hZFRva2VuKV0g
eworICAgICAgICBhdXRvIGxvYWREYXRhID0gW3RoaXMsIHdlYWtEYXRhTG9hZFRva2VuID0gV2Vh
a1B0ciB7IG1fZGF0YUxvYWRUb2tlbiB9XSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtEYXRhTG9h
ZFRva2VuKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIG1fZGF0YUxvYWRU
b2tlbi5jbGVhcigpOwpAQCAtMjQyMyw3ICsyNDIzLDcgQEAgUmVzb3VyY2VFcnJvciBEb2N1bWVu
dExvYWRlcjo6Y29udGVudEZpbHRlckRpZEJsb2NrKENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxl
cgogewogICAgIHVuYmxvY2tIYW5kbGVyLnNldFVucmVhY2hhYmxlVVJMKGRvY3VtZW50VVJMKCkp
OwogICAgIGlmICghdW5ibG9ja1JlcXVlc3REZW5pZWRTY3JpcHQuaXNFbXB0eSgpICYmIGZyYW1l
KCkpIHsKLSAgICAgICAgdW5ibG9ja0hhbmRsZXIud3JhcFdpdGhEZWNpc2lvbkhhbmRsZXIoW3Nj
cmlwdENvbnRyb2xsZXIgPSBtYWtlV2Vha1B0cihmcmFtZSgpLT5zY3JpcHQoKSksIHNjcmlwdCA9
IHVuYmxvY2tSZXF1ZXN0RGVuaWVkU2NyaXB0Lmlzb2xhdGVkQ29weSgpXShib29sIHVuYmxvY2tl
ZCkgeworICAgICAgICB1bmJsb2NrSGFuZGxlci53cmFwV2l0aERlY2lzaW9uSGFuZGxlcihbc2Ny
aXB0Q29udHJvbGxlciA9IFdlYWtQdHIgeyBmcmFtZSgpLT5zY3JpcHQoKSB9LCBzY3JpcHQgPSB1
bmJsb2NrUmVxdWVzdERlbmllZFNjcmlwdC5pc29sYXRlZENvcHkoKV0oYm9vbCB1bmJsb2NrZWQp
IHsKICAgICAgICAgICAgIGlmICghdW5ibG9ja2VkICYmIHNjcmlwdENvbnRyb2xsZXIpCiAgICAg
ICAgICAgICAgICAgc2NyaXB0Q29udHJvbGxlci0+ZXhlY3V0ZVNjcmlwdElnbm9yaW5nRXhjZXB0
aW9uKHNjcmlwdCk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50V3JpdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdy
aXRlci5jcHAKaW5kZXggODkwOTVmZTNkZTczMjg4ZTI3MzFjMTJhZjNkMjYxNjhmN2NjMzUzMC4u
MThlNWQyN2U2ZWIzN2FiMzNjMjYzMWFkNjRjNWIxNTRkYzc4YmVkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCkBAIC0zMTMsNyArMzEzLDcgQEAgdm9pZCBEb2N1
bWVudFdyaXRlcjo6c2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIHVzZXJDaG9z
ZW4pCiAKIHZvaWQgRG9jdW1lbnRXcml0ZXI6OnNldEZyYW1lKEZyYW1lJiBmcmFtZSkKIHsKLSAg
ICBtX2ZyYW1lID0gbWFrZVdlYWtQdHIoZnJhbWUpOworICAgIG1fZnJhbWUgPSBmcmFtZTsKIH0K
IAogdm9pZCBEb2N1bWVudFdyaXRlcjo6c2V0RG9jdW1lbnRXYXNMb2FkZWRBc1BhcnRPZk5hdmln
YXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZmNiMjIwMmY4
MjgxMGFmMmE0ZjhkOWU0NTFjYjU3NGZhMGE3ZmQ0My4uZjg1YTE4YmI4N2JlOThlMDExYjY4NjUw
ZDI4YjlhNTRhMjE4OTRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBA
IC0yMTcsNyArMjE3LDcgQEAgc3RhdGljIGJvb2wgaXNEb2N1bWVudFNhbmRib3hlZChGcmFtZSYg
ZnJhbWUsIFNhbmRib3hGbGFncyBtYXNrKQogY2xhc3MgUGFnZUxldmVsRm9yYmlkU2NvcGUgewog
cHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFBhZ2VMZXZlbEZvcmJpZFNjb3BlKFBhZ2UqIHBhZ2Up
Ci0gICAgICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgICAgICA6IG1fcGFnZShw
YWdlKQogICAgIHsKICAgICB9CiAKQEAgLTEwNTksNyArMTA1OSw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OnNldE9wZW5lcihGcmFtZSogb3BlbmVyKQogICAgICAgICBpZiAoYXV0byogcGFnZSA9IG1f
ZnJhbWUucGFnZSgpKQogICAgICAgICAgICAgcGFnZS0+c2V0T3BlbmVkQnlET01XaXRoT3BlbmVy
KHRydWUpOwogICAgIH0KLSAgICBtX29wZW5lciA9IG1ha2VXZWFrUHRyKG9wZW5lcik7CisgICAg
bV9vcGVuZXIgPSBvcGVuZXI7CiAKICAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpKQogICAgICAg
ICBtX2ZyYW1lLmRvY3VtZW50KCktPmluaXRTZWN1cml0eUNvbnRleHQoKTsKQEAgLTEyNzAsNyAr
MTI3MCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVx
dWVzdCYmIHJlcXVlc3QsIEV2ZW50KiBldmVudCwgUmVmCiAgICAgZWxzZQogICAgICAgICBsb2Fk
VHlwZSA9IEZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkOwogCi0gICAgYXV0byBjb21wbGV0aW9uSGFu
ZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRGcmFtZSA9IFJlZiB7IG1fZnJhbWUgfSwgZm9ybVN0YXRl
ID0gbWFrZVdlYWtQdHIoZm9ybVN0YXRlLmdldCgpKSwgZnJhbWVOYW1lID0gcmVxdWVzdC5mcmFt
ZU5hbWUoKV0geworICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVk
RnJhbWUgPSBSZWYgeyBtX2ZyYW1lIH0sIGZvcm1TdGF0ZSA9IFdlYWtQdHIgeyBmb3JtU3RhdGUg
fSwgZnJhbWVOYW1lID0gcmVxdWVzdC5mcmFtZU5hbWUoKV0gewogICAgICAgICAvLyBGSVhNRTog
SXQncyBwb3NzaWJsZSB0aGlzIHRhcmdldEZyYW1lIHdpbGwgbm90IGJlIHRoZSBzYW1lIGZyYW1l
IHRoYXQgd2FzIHRhcmdldGVkIGJ5IHRoZSBhY3R1YWwKICAgICAgICAgLy8gbG9hZCBpZiBmcmFt
ZSBuYW1lcyBoYXZlIGNoYW5nZWQuCiAgICAgICAgIEZyYW1lKiBzb3VyY2VGcmFtZSA9IGZvcm1T
dGF0ZSA/IGZvcm1TdGF0ZS0+c291cmNlRG9jdW1lbnQoKS5mcmFtZSgpIDogJm1fZnJhbWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCAx
ZDcxY2YzOTdhYmM2NGIyMjEyMmRhMThmN2E5MjA0NmE5NGQxMTViLi5mZTg2NTg3MWNlZjIxY2Nk
MzM1ZTc3OWU3ZmRhZDBjMzJkNDZhYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiBwcm90
ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRnJhbWVOZXR3b3JraW5nQ29udGV4dChGcmFtZSogZnJhbWUp
Ci0gICAgICAgIDogbV9mcmFtZShtYWtlV2Vha1B0cihmcmFtZSkpCisgICAgICAgIDogbV9mcmFt
ZShmcmFtZSkKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAK
aW5kZXggZmRkYjA3YmVlNWYwMzYyMzk4ZThlYzE0MWI2Yjk2ZjliNzM0NWJhZC4uOGZiOTE3Yjk1
MWMyZmRhNGI5OWNlMWJlNzVlNjFiMWQxNDBhYmIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5r
TG9hZGVyLmNwcApAQCAtMjE3LDcgKzIxNyw3IEBAIHZvaWQgTGlua0xvYWRlcjo6cHJlY29ubmVj
dElmTmVlZGVkKGNvbnN0IExpbmtMb2FkUGFyYW1ldGVycyYgcGFyYW1zLCBEb2N1bWVudCYKICAg
ICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShwYXJhbXMuY3Jvc3NPcmlnaW4sICJhbm9ueW1v
dXMiKSAmJiBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmlzU2FtZU9yaWdpbkRvbWFpbihTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKGhyZWYpKSkKICAgICAgICAgc3RvcmFnZUNyZWRlbnRpYWxzUG9s
aWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlOwogICAgIEFTU0VSVChkb2N1
bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpKTsKLSAgICBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+cHJlY29ubmVjdFRvKGRvY3VtZW50LmZy
YW1lKCktPmxvYWRlcigpLCBocmVmLCBzdG9yYWdlQ3JlZGVudGlhbHNQb2xpY3ksIFt3ZWFrRG9j
dW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCksIGhyZWZdKFJlc291cmNlRXJyb3IgZXJyb3Ip
IHsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+cHJlY29ubmVj
dFRvKGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpLCBocmVmLCBzdG9yYWdlQ3JlZGVudGlhbHNQ
b2xpY3ksIFt3ZWFrRG9jdW1lbnQgPSBXZWFrUHRyIHsgZG9jdW1lbnQgfSwgaHJlZl0oUmVzb3Vy
Y2VFcnJvciBlcnJvcikgewogICAgICAgICBpZiAoIXdlYWtEb2N1bWVudCkKICAgICAgICAgICAg
IHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtQcmVsb2Fk
UmVzb3VyY2VDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rUHJlbG9hZFJl
c291cmNlQ2xpZW50cy5jcHAKaW5kZXggYWI5Mzc3MzY0OTViMjhiYTc0MjhmMWJjM2Y0MTdiODAx
NTM2Y2MzNi4uZWQ4NTgyNzE5MDY3ZTBkMWE3YmNiZWNiZDUxMDI0YmM1OTk4MmQ5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtQcmVsb2FkUmVzb3VyY2VDbGllbnRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMu
Y3BwCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTGlua1ByZWxvYWRS
ZXNvdXJjZUNsaWVudDo6TGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudChMaW5rTG9hZGVyJiBsb2Fk
ZXIsIENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKIHsKLSAgICBtX2xvYWRlciA9IG1ha2VXZWFr
UHRyKGxvYWRlcik7CisgICAgbV9sb2FkZXIgPSBsb2FkZXI7CiAgICAgbV9yZXNvdXJjZSA9ICZy
ZXNvdXJjZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVz
b3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDE0OWJhOGEzMjY4YjliNjBhZGE5ZmVjYzRkNjYzYTBmNTZhNDE2OGIuLjVk
MTIwZTI0N2FjMjYyNzExNjFkZTBkYzUyMzAyNGRjOGRlMzRkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUxLDggKzUxLDggQEAgdm9p
ZCBNZWRpYVJlc291cmNlTG9hZGVyOjpyZWNvcmRSZXNwb25zZXNGb3JUZXN0aW5nKCkKIAogTWVk
aWFSZXNvdXJjZUxvYWRlcjo6TWVkaWFSZXNvdXJjZUxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQs
IEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlLCBGZXRjaE9w
dGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQogICAgIDogQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIoJmRvY3VtZW50KQotICAgICwgbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVu
dCkpCi0gICAgLCBtX2VsZW1lbnQobWFrZVdlYWtQdHIoZWxlbWVudCkpCisgICAgLCBtX2RvY3Vt
ZW50KGRvY3VtZW50KQorICAgICwgbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2Nyb3NzT3Jp
Z2luTW9kZShjcm9zc09yaWdpbk1vZGUpCiAgICAgLCBtX2Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9u
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5jcHAKaW5kZXggNDM1ZjkwNGRlNzY5NDU2ODlkNWRkNWNmMTQ0YTZmNmVhNTNjZWY5
Zi4uNjMzNzU1OTYzMjAwMTQ2MzgyODllMjgyNjA0YzU1YjBhZjQ0NTMxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCkBA
IC01Nyw3ICs1Nyw3IEBAIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpOZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlcihGcmFtZSYgZnJhbWUsIE5ldHNjYXBlUGx1CiAgICAgICAgIENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2ssCiAgICAgICAgIERlZmVyc0xv
YWRpbmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZywKICAgICAgICAgQ2FjaGluZ1BvbGljeTo6
QWxsb3dDYWNoaW5nKSkKLSAgICAsIG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkpCisgICAg
LCBtX2NsaWVudChjbGllbnQpCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAg
ICBtX3Jlc291cmNlVHlwZSA9IHsgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6T3Ro
ZXIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAppbmRleCA4N2UyNjQw
OWJkMzk5ZDU0MzVhNjY4ZGM2ODY3ZWFiZTdjZjVkNjIyLi4wNDE5ZjkwNmIyOTMxZWQxMjMyOWY3
MDhmY2EzNWMxZDc3OThkMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIu
Y3BwCkBAIC0xNzMsNyArMTczLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tlcjo6
Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QKICAgICAvLyBB
bHdheXMgYWxsb3cgUXVpY2tMb29rLWdlbmVyYXRlZCBVUkxzIGJhc2VkIG9uIHRoZSBwcm90b2Nv
bCBzY2hlbWUuCiAgICAgaWYgKCFyZXF1ZXN0LmlzTnVsbCgpICYmIGlzUXVpY2tMb29rUHJldmll
d1VSTChyZXF1ZXN0LnVybCgpKSkgewogICAgICAgICBQT0xJQ1lDSEVDS0VSX1JFTEVBU0VfTE9H
KCJjaGVja05hdmlnYXRpb25Qb2xpY3k6IGNvbnRpbnVpbmcgYmVjYXVzZSBxdWlja2xvb2stZ2Vu
ZXJhdGVkIFVSTCIpOwotICAgICAgICByZXR1cm4gZnVuY3Rpb24oV1RGTW92ZShyZXF1ZXN0KSwg
bWFrZVdlYWtQdHIoZm9ybVN0YXRlLmdldCgpKSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uOjpD
b250aW51ZUxvYWQpOworICAgICAgICByZXR1cm4gZnVuY3Rpb24oV1RGTW92ZShyZXF1ZXN0KSwg
Zm9ybVN0YXRlLmdldCgpLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb246OkNvbnRpbnVlTG9hZCk7
CiAgICAgfQogI2VuZGlmCiAKQEAgLTIyOSw3ICsyMjksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpQ
b2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdAogICAgICAgICAgICAgICAgIFBPTElDWUNIRUNLRVJfUkVMRUFTRV9MT0coImNoZWNrTmF2
aWdhdGlvblBvbGljeTogY29udGludWluZyBiZWNhdXNlIHRoaXMgaXMgYW4gaW5pdGlhbCBlbXB0
eSBkb2N1bWVudCIpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIFBPTElDWUNI
RUNLRVJfUkVMRUFTRV9MT0coImNoZWNrTmF2aWdhdGlvblBvbGljeTogY29udGludWluZyBiZWNh
dXNlIHRoaXMgcG9saWN5QWN0aW9uIGZyb20gZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uIGlzIFVzZSIpOwotICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKFdURk1vdmUo
cmVxdWVzdCksIG1ha2VXZWFrUHRyKGZvcm1TdGF0ZS5nZXQoKSksIE5hdmlnYXRpb25Qb2xpY3lE
ZWNpc2lvbjo6Q29udGludWVMb2FkKTsKKyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihXVEZN
b3ZlKHJlcXVlc3QpLCBmb3JtU3RhdGUuZ2V0KCksIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6
Q29udGludWVMb2FkKTsKICAgICAgICAgfQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICB9OwpAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNr
ZXI6OmNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24mJiBuYXZpZ2F0CiAgICAg
ICAgICAgICBmdW5jdGlvbih7IH0sIG51bGxwdHIsIHsgfSwgeyB9LCBTaG91bGRDb250aW51ZVBv
bGljeUNoZWNrOjpObyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgUG9saWN5
QWN0aW9uOjpVc2U6Ci0gICAgICAgICAgICBmdW5jdGlvbihyZXF1ZXN0LCBtYWtlV2Vha1B0cihm
b3JtU3RhdGUuZ2V0KCkpLCBmcmFtZU5hbWUsIG5hdmlnYXRpb25BY3Rpb24sIFNob3VsZENvbnRp
bnVlUG9saWN5Q2hlY2s6Olllcyk7CisgICAgICAgICAgICBmdW5jdGlvbihyZXF1ZXN0LCBmb3Jt
U3RhdGUuZ2V0KCksIGZyYW1lTmFtZSwgbmF2aWdhdGlvbkFjdGlvbiwgU2hvdWxkQ29udGludWVQ
b2xpY3lDaGVjazo6WWVzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJmcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2Fk
ZXIuY3BwCmluZGV4IDk5N2EzM2RmZjEyMmM1ZWI5ZTRhODhjMzMzMTgzZGQzMzVhNDk4NDQuLjEz
MDMwMjMzYmMzMGY2NjBmZTc0NjcwYTI5MTZiZjgxYTc2ZmI0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcApAQCAtMzcyLDcgKzM3Miw3IEBAIGJvb2wgRnJhbWVM
b2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQm
IHBsdWdpbkVsZW1lCiAgICAgICAgIGxvYWRNYW51YWxseSA9IGZhbHNlOwogI2VuZGlmCiAKLSAg
ICBhdXRvIHdlYWtSZW5kZXJlciA9IG1ha2VXZWFrUHRyKCpyZW5kZXJlcik7CisgICAgV2Vha1B0
ciB3ZWFrUmVuZGVyZXIgeyAqcmVuZGVyZXIgfTsKIAogICAgIGF1dG8gd2lkZ2V0ID0gbV9mcmFt
ZS5sb2FkZXIoKS5jbGllbnQoKS5jcmVhdGVQbHVnaW4oY29udGVudFNpemUsIHBsdWdpbkVsZW1l
bnQsIHVybCwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMsIG1pbWVUeXBlLCBsb2FkTWFudWFsbHkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZS5jcHAKaW5kZXggZGZiNGU2OTg0MmYwZGRmM2NmM2QyNTM5YTlkMDRhMTQ3ZDJlMzUyZi4u
OTZjYjA1ZTM4ZTQwMDVjMzk4OTQ3YjU1OTk1M2UzMzdiOGRkNjQ1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcApAQCAtNTQs
NyArNTQsNyBAQCBBcHBsaWNhdGlvbkNhY2hlOjp+QXBwbGljYXRpb25DYWNoZSgpCiB2b2lkIEFw
cGxpY2F0aW9uQ2FjaGU6OnNldEdyb3VwKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXApCiB7
CiAgICAgQVNTRVJUKCFtX2dyb3VwIHx8IGdyb3VwID09IG1fZ3JvdXApOwotICAgIG1fZ3JvdXAg
PSBtYWtlV2Vha1B0cihncm91cCk7CisgICAgbV9ncm91cCA9IGdyb3VwOwogfQogCiBib29sIEFw
cGxpY2F0aW9uQ2FjaGU6OmlzQ29tcGxldGUoKQpAQCAtNzcsNyArNzcsNyBAQCB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGU6OnNldE1hbmlmZXN0UmVzb3VyY2UoUmVmPEFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZT4mJiBtYW5pZgogICAgIEFTU0VSVCghbV9tYW5pZmVzdCk7CiAgICAgQVNTRVJUKG1hbmlm
ZXN0LT50eXBlKCkgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6Ok1hbmlmZXN0KTsKIAotICAg
IG1fbWFuaWZlc3QgPSBtYWtlV2Vha1B0cihtYW5pZmVzdC5nZXQoKSk7CisgICAgbV9tYW5pZmVz
dCA9IG1hbmlmZXN0OwogCiAgICAgYWRkUmVzb3VyY2UoV1RGTW92ZShtYW5pZmVzdCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmNwcAppbmRleCA0YmMyYjA5Mjc1ZjEzODIwMzY5YTk0YmUwOGZmY2I4ZDEyZmI4
Yjk4Li44OWYzYjBmMWRjMzlkNDBhNTYzODc4YWU1NWY3NmM2NzBhNzE1MDkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmNwcApAQCAtNDE3LDcgKzQxNyw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjp1
cGRhdGUoRnJhbWUmIGZyYW1lLCBBcHBsaWNhdGlvbkNhY2hlVXBkYXRlT3B0aW9uIHVwCiAgICAg
fQogCiAgICAgQVNTRVJUKCFtX2ZyYW1lKTsKLSAgICBtX2ZyYW1lID0gbWFrZVdlYWtQdHIoZnJh
bWUpOworICAgIG1fZnJhbWUgPSBmcmFtZTsKIAogICAgIHNldFVwZGF0ZVN0YXR1cyhDaGVja2lu
Zyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUhvc3QuY3BwCmluZGV4IDIzYjE1NDJmOTVhYmMzNTE1MWI2MGZlZDA3YTc5NDA5
OTBjM2Q4MTEuLjYwMzI4MTg4ODM3NWY0NGE2MjRiM2UzYjNhYWZlMDZhMzY4OTJlZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9z
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcApAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6
OmNhbkNhY2hlSW5CYWNrRm9yd2FyZENhY2hlKCkKIHZvaWQgQXBwbGljYXRpb25DYWNoZUhvc3Q6
OnNldERPTUFwcGxpY2F0aW9uQ2FjaGUoRE9NQXBwbGljYXRpb25DYWNoZSogZG9tQXBwbGljYXRp
b25DYWNoZSkKIHsKICAgICBBU1NFUlQoIW1fZG9tQXBwbGljYXRpb25DYWNoZSB8fCAhZG9tQXBw
bGljYXRpb25DYWNoZSk7Ci0gICAgbV9kb21BcHBsaWNhdGlvbkNhY2hlID0gbWFrZVdlYWtQdHIo
ZG9tQXBwbGljYXRpb25DYWNoZSk7CisgICAgbV9kb21BcHBsaWNhdGlvbkNhY2hlID0gZG9tQXBw
bGljYXRpb25DYWNoZTsKIH0KIAogdm9pZCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bm90aWZ5RE9N
QXBwbGljYXRpb25DYWNoZShjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGludCB0b3RhbCwg
aW50IGRvbmUpCkBAIC0zOTcsNyArMzk3LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6
ZGlzcGF0Y2hET01FdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGludCB0b3QKIHZv
aWQgQXBwbGljYXRpb25DYWNoZUhvc3Q6OnNldENhbmRpZGF0ZUFwcGxpY2F0aW9uQ2FjaGVHcm91
cChBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIGdyb3VwKQogewogICAgIEFTU0VSVCghbV9hcHBsaWNh
dGlvbkNhY2hlKTsKLSAgICBtX2NhbmRpZGF0ZUFwcGxpY2F0aW9uQ2FjaGVHcm91cCA9IG1ha2VX
ZWFrUHRyKGdyb3VwKTsKKyAgICBtX2NhbmRpZGF0ZUFwcGxpY2F0aW9uQ2FjaGVHcm91cCA9IGdy
b3VwOwogfQogICAgIAogdm9pZCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6c2V0QXBwbGljYXRpb25D
YWNoZShSZWZQdHI8QXBwbGljYXRpb25DYWNoZT4mJiBhcHBsaWNhdGlvbkNhY2hlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggOTMxODcxMGIwNzE2
ZGM0MTk1ZDY5MGY0NjIwZjZiZjAzZTkxNTU1OS4uYjE1OWYyOWVlOTBmZTNkZTAxOWMxMTQ5YmRh
Njk0ZTBlNmY2YjU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuY3BwCkBAIC05OCw3ICs5OCw3IEBAIENhY2hlZEltYWdlOjp+Q2FjaGVkSW1hZ2UoKQogCiB2
b2lkIENhY2hlZEltYWdlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIpCiB7Ci0g
ICAgbV9za2lwcGluZ1JldmFsaWRhdGlvbkRvY3VtZW50ID0gbWFrZVdlYWtQdHIobG9hZGVyLmRv
Y3VtZW50KCkpOworICAgIG1fc2tpcHBpbmdSZXZhbGlkYXRpb25Eb2N1bWVudCA9IGxvYWRlci5k
b2N1bWVudCgpOwogICAgIGlmIChsb2FkZXIuc2hvdWxkUGVyZm9ybUltYWdlTG9hZCh1cmwoKSkp
CiAgICAgICAgIENhY2hlZFJlc291cmNlOjpsb2FkKGxvYWRlcik7CiAgICAgZWxzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRl
eCAxM2MyYWExNzU2ZjQ4ZWZiNGFiYzFlNmM5YzFiYjBkYTcxOGJjNDY3Li5kMzMxNTM0MGViNDky
NDMwNjBkZjI3YTI0ZWIzYWQxNzhiYTkxZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHB1
YmxpYzoKICAgICAKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdDsgLy8gQ2FuIGJlIG51bGwKICAg
ICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50LmdldCgpOyB9
IC8vIENhbiBiZSBudWxsCi0gICAgdm9pZCBzZXREb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQp
IHsgbV9kb2N1bWVudCA9IG1ha2VXZWFrUHRyKGRvY3VtZW50KTsgfQorICAgIHZvaWQgc2V0RG9j
dW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KSB7IG1fZG9jdW1lbnQgPSBkb2N1bWVudDsgfQogICAg
IHZvaWQgY2xlYXJEb2N1bWVudExvYWRlcigpIHsgbV9kb2N1bWVudExvYWRlciA9IG51bGxwdHI7
IH0KIAogICAgIHZvaWQgbG9hZERvbmUoTG9hZENvbXBsZXRpb25UeXBlLCBib29sIHNob3VsZFBl
cmZvcm1Qb3N0TG9hZEFjdGlvbnMgPSB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pb3MvTGVnYWN5UHJldmlld0xvYWRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9pb3MvTGVnYWN5UHJldmlld0xvYWRlci5tbQppbmRleCBiNWFmNzdiM2E5YjZlMDkxZjlkODY4
N2E3M2UxZWRiYjc2ZTllMzg5Li5kMThiMjUyZTk3NTZjOGNlMGM5NWI2M2U3OGRkMDA5N2VmMmE1
NzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL0xlZ2FjeVByZXZpZXdM
b2FkZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9MZWdhY3lQcmV2aWV3TG9h
ZGVyLm1tCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBMZWdhY3lQcmV2aWV3TG9hZGVyOjpwcmV2
aWV3Q29udmVydGVyRGlkU3RhcnRDb252ZXJ0aW5nKFByZXZpZXdDb252ZXJ0ZXImIGMKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIHJlc291cmNlTG9hZGVyLT5kaWRSZWNlaXZlUmVzcG9u
c2UocmVzcG9uc2UsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PFBy
ZXZpZXdDb252ZXJ0ZXJDbGllbnQmPigqdGhpcykpLCBjb252ZXJ0ZXIgPSBSZWYgeyBjb252ZXJ0
ZXIgfV0geworICAgIHJlc291cmNlTG9hZGVyLT5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2Us
IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyBzdGF0aWNfY2FzdDxQcmV2aWV3Q29udmVydGVy
Q2xpZW50Jj4oKnRoaXMpIH0sIGNvbnZlcnRlciA9IFJlZiB7IGNvbnZlcnRlciB9XSB7CiAgICAg
ICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTIzNiw3ICsyMzYs
NyBAQCBMZWdhY3lQcmV2aWV3TG9hZGVyOjpMZWdhY3lQcmV2aWV3TG9hZGVyKFJlc291cmNlTG9h
ZGVyJiBsb2FkZXIsIGNvbnN0IFJlc291cmNlUgogICAgIDogbV9jb252ZXJ0ZXIgeyBQcmV2aWV3
Q29udmVydGVyOjpjcmVhdGUocmVzcG9uc2UsICp0aGlzKSB9CiAgICAgLCBtX2NsaWVudCB7IG1h
a2VDbGllbnQobG9hZGVyLCBtX2NvbnZlcnRlci0+cHJldmlld0ZpbGVOYW1lKCksIG1fY29udmVy
dGVyLT5wcmV2aWV3VVRJKCkpIH0KICAgICAsIG1fb3JpZ2luYWxEYXRhIHsgU2hhcmVkQnVmZmVy
OjpjcmVhdGUoKSB9Ci0gICAgLCBtX3Jlc291cmNlTG9hZGVyIHsgbWFrZVdlYWtQdHIobG9hZGVy
KSB9CisgICAgLCBtX3Jlc291cmNlTG9hZGVyIHsgbG9hZGVyIH0KICAgICAsIG1fc2hvdWxkRGVj
aWRlUG9saWN5QmVmb3JlTG9hZGluZyB7IGxvYWRlci5mcmFtZSgpLT5zZXR0aW5ncygpLnNob3Vs
ZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCkgfQogewogICAgIEFT
U0VSVChQcmV2aWV3Q29udmVydGVyOjpzdXBwb3J0c01JTUVUeXBlKHJlc3BvbnNlLm1pbWVUeXBl
KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmNwcAppbmRleCBj
YzQwM2FiYzgyODIwNWIzNTI5ZTM1MmFkZWI0NmNiMmJmM2QyNzUxLi40Njc1OTEzM2IyNDI2M2Rh
MmEwZTJmM2Y1YTc4YThjMTBlZWMxMmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvd0V4dGVuc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3dFeHRlbnNpb24uY3BwCkBAIC0zNyw3ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IERPTVdpbmRvd0V4dGVuc2lvbjo6RE9NV2luZG93RXh0ZW5zaW9uKERPTVdpbmRvdyogd2luZG93
LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQotICAgIDogbV93aW5kb3cobWFrZVdlYWtQdHIod2lu
ZG93KSkKKyAgICA6IG1fd2luZG93KHdpbmRvdykKICAgICAsIG1fd29ybGQod29ybGQpCiAgICAg
LCBtX3dhc0RldGFjaGVkKGZhbHNlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1By
b3BlcnR5LmNwcAppbmRleCA3YmI2MWMyM2NkMjczMzZlZDU3NjA2YTk1NzJmNTUyNjZkYzdkYzZl
Li5iYjI2ZTBkZjk2MTIxMWY4ZDYwNmYxZGM3MGU1NWUyMDcwMjhjYjE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBET01XaW5kb3dQcm9wZXJ0eTo6RE9NV2luZG93UHJvcGVydHkoRE9N
V2luZG93KiB3aW5kb3cpCi0gICAgOiBtX3dpbmRvdyhtYWtlV2Vha1B0cih3aW5kb3cpKQorICAg
IDogbV93aW5kb3cod2luZG93KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKaW5kZXggZTAwNWNlZGZmY2RlYzFkYWQ5MWFmZmU4NmVlYWIyMmQzODM1ZDk5MC4uZDVmNzkz
MjBhY2YwMTgxOTU1Yjk0ZDFmY2NjODg1ZGI2ZTljN2QwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcApAQCAtMjg5MSw3ICsyODkxLDcgQEAgc3RhdGljIFdlYWtQdHI8V2lkZ2V0
PiB3aWRnZXRGb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgaWYgKCFpczxS
ZW5kZXJXaWRnZXQ+KHRhcmdldCkgfHwgIWRvd25jYXN0PFJlbmRlcldpZGdldD4oKnRhcmdldCku
d2lkZ2V0KCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gbWFrZVdlYWtQdHIo
KmRvd25jYXN0PFJlbmRlcldpZGdldD4oKnRhcmdldCkud2lkZ2V0KCkpOworICAgIHJldHVybiAq
ZG93bmNhc3Q8UmVuZGVyV2lkZ2V0PigqdGFyZ2V0KS53aWRnZXQoKTsKIH0KIAogYm9vbCBFdmVu
dEhhbmRsZXI6OmNvbXBsZXRlV2lkZ2V0V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIGV2ZW50LCBjb25zdCBXZWFrUHRyPFdpZGdldD4mIHdpZGdldCwgY29uc3QgV2Vha1B0cjxT
Y3JvbGxhYmxlQXJlYT4mIHNjcm9sbGFibGVBcmVhKQpAQCAtNDQzMyw3ICs0NDMzLDcgQEAgdm9p
ZCBFdmVudEhhbmRsZXI6OnVwZGF0ZUxhc3RTY3JvbGxiYXJVbmRlck1vdXNlKFNjcm9sbGJhciog
c2Nyb2xsYmFyLCBTZXRPckNsZWEKICAgICAgICAgLy8gU2VuZCBtb3VzZSBlbnRlcmVkIGlmIHdl
J3JlIHNldHRpbmcgYSBuZXcgc2Nyb2xsYmFyLgogICAgICAgICBpZiAoc2Nyb2xsYmFyICYmIHNl
dE9yQ2xlYXIgPT0gU2V0T3JDbGVhckxhc3RTY3JvbGxiYXI6OlNldCkgewogICAgICAgICAgICAg
c2Nyb2xsYmFyLT5tb3VzZUVudGVyZWQoKTsKLSAgICAgICAgICAgIG1fbGFzdFNjcm9sbGJhclVu
ZGVyTW91c2UgPSBtYWtlV2Vha1B0cigqc2Nyb2xsYmFyKTsKKyAgICAgICAgICAgIG1fbGFzdFNj
cm9sbGJhclVuZGVyTW91c2UgPSAqc2Nyb2xsYmFyOwogICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgIG1fbGFzdFNjcm9sbGJhclVuZGVyTW91c2UgPSBudWxscHRyOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKaW5kZXggOGM0Mzc3Y2I5NTRhMGIxYTA4OWU1MmVmYWQ4YTQxZDkxMDU4YThmNy4u
OTYwODI3NWQ0YTQxNDRmZWQ4NjM3MjI3NzAyOTBhZDUyYjE4YzcwMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAKQEAgLTE2MCwxMiArMTYwLDEyIEBAIHN0YXRpYyBpbmxpbmUgZmxvYXQgcGFyZW50VGV4
dFpvb21GYWN0b3IoRnJhbWUqIGZyYW1lKQogCiBGcmFtZTo6RnJhbWUoUGFnZSYgcGFnZSwgSFRN
TEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNs
aWVudD4mJiBmcmFtZUxvYWRlckNsaWVudCkKICAgICA6IG1fbWFpbkZyYW1lKG93bmVyRWxlbWVu
dCA/IHBhZ2UubWFpbkZyYW1lKCkgOiAqdGhpcykKLSAgICAsIG1fcGFnZShtYWtlV2Vha1B0cihw
YWdlKSkKKyAgICAsIG1fcGFnZShwYWdlKQogICAgICwgbV9zZXR0aW5ncygmcGFnZS5zZXR0aW5n
cygpKQogICAgICwgbV90cmVlTm9kZSgqdGhpcywgcGFyZW50RnJvbU93bmVyRWxlbWVudChvd25l
ckVsZW1lbnQpKQogICAgICwgbV9sb2FkZXIobWFrZVVuaXF1ZVJlZjxGcmFtZUxvYWRlcj4oKnRo
aXMsIFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKSkKICAgICAsIG1fbmF2aWdhdGlvblNjaGVk
dWxlcihtYWtlVW5pcXVlUmVmPE5hdmlnYXRpb25TY2hlZHVsZXI+KCp0aGlzKSkKLSAgICAsIG1f
b3duZXJFbGVtZW50KG1ha2VXZWFrUHRyKG93bmVyRWxlbWVudCkpCisgICAgLCBtX293bmVyRWxl
bWVudChvd25lckVsZW1lbnQpCiAgICAgLCBtX3NjcmlwdChtYWtlVW5pcXVlUmVmPFNjcmlwdENv
bnRyb2xsZXI+KCp0aGlzKSkKICAgICAsIG1fcGFnZVpvb21GYWN0b3IocGFyZW50UGFnZVpvb21G
YWN0b3IodGhpcykpCiAgICAgLCBtX3RleHRab29tRmFjdG9yKHBhcmVudFRleHRab29tRmFjdG9y
KHRoaXMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2
ZXIuY3BwCmluZGV4IDhmM2ZlMDA0OGIxNTZmZjE2YTMxYzY2ZjM3MzhkZmMwY2RkMzc2ODQuLjMz
MWEzMGJkZTdmMzc2ZWZjN2Y3ZjZlNmFlZmEyZjdmZDNjZjI5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKQEAgLTUyLDcgKzUyLDcg
QEAgdm9pZCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXI6Om9ic2VydmVGcmFtZShGcmFtZSogZnJh
bWUpCiAgICAgaWYgKG1fZnJhbWUpCiAgICAgICAgIG1fZnJhbWUtPnJlbW92ZURlc3RydWN0aW9u
T2JzZXJ2ZXIoKnRoaXMpOwogCi0gICAgbV9mcmFtZSA9IG1ha2VXZWFrUHRyKGZyYW1lKTsKKyAg
ICBtX2ZyYW1lID0gZnJhbWU7CiAKICAgICBpZiAobV9mcmFtZSkKICAgICAgICAgbV9mcmFtZS0+
YWRkRGVzdHJ1Y3Rpb25PYnNlcnZlcigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAK
aW5kZXggNWFjOGI4NDE1M2E1NTFhZDM1OWZmOTUyZjAwYjVkOGI4NDIwMmZmYi4uYzJjN2QwZDEy
ZWQ2Y2FkNTUzN2U1NjY1OGZhOWE3MGI4YmZlMTlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVl
LmNwcApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZyYW1lVHJlZTo6
RnJhbWVUcmVlKEZyYW1lJiB0aGlzRnJhbWUsIEZyYW1lKiBwYXJlbnRGcmFtZSkKICAgICA6IG1f
dGhpc0ZyYW1lKHRoaXNGcmFtZSkKLSAgICAsIG1fcGFyZW50KG1ha2VXZWFrUHRyKHBhcmVudEZy
YW1lKSkKKyAgICAsIG1fcGFyZW50KHBhcmVudEZyYW1lKQogewogfQogCkBAIC03Myw5ICs3Myw5
IEBAIEZyYW1lKiBGcmFtZVRyZWU6OnBhcmVudCgpIGNvbnN0CiB2b2lkIEZyYW1lVHJlZTo6YXBw
ZW5kQ2hpbGQoRnJhbWUmIGNoaWxkKQogewogICAgIEFTU0VSVChjaGlsZC5wYWdlKCkgPT0gbV90
aGlzRnJhbWUucGFnZSgpKTsKLSAgICBjaGlsZC50cmVlKCkubV9wYXJlbnQgPSBtYWtlV2Vha1B0
cihtX3RoaXNGcmFtZSk7CisgICAgY2hpbGQudHJlZSgpLm1fcGFyZW50ID0gbV90aGlzRnJhbWU7
CiAgICAgV2Vha1B0cjxGcmFtZT4gb2xkTGFzdCA9IG1fbGFzdENoaWxkOwotICAgIG1fbGFzdENo
aWxkID0gbWFrZVdlYWtQdHIoY2hpbGQpOworICAgIG1fbGFzdENoaWxkID0gY2hpbGQ7CiAKICAg
ICBpZiAob2xkTGFzdCkgewogICAgICAgICBjaGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcg
PSBvbGRMYXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDVkYTMwMDQyODU3MTEw
OTVkMjFlMTkwYzNjNjk1MTIxODgyNTVlZTEuLjYwNmUwYmIzZmM4ZGViOTlkNzc5YzcwMjI2ODZl
MDUyZjZlNGE1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTMyNjksNyArMzI2
OSw3IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVFbWJlZGRlZE9iamVjdChSZW5kZXJFbWJlZGRl
ZE9iamVjdCYgZW1iZWRkZWRPYmplY3QpCiAKICAgICBhdXRvJiBlbGVtZW50ID0gZW1iZWRkZWRP
YmplY3QuZnJhbWVPd25lckVsZW1lbnQoKTsKIAotICAgIGF1dG8gd2Vha1JlbmRlcmVyID0gbWFr
ZVdlYWtQdHIoZW1iZWRkZWRPYmplY3QpOworICAgIFdlYWtQdHIgd2Vha1JlbmRlcmVyIHsgZW1i
ZWRkZWRPYmplY3QgfTsKIAogICAgIGlmIChpczxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50PihlbGVt
ZW50KSkgewogICAgICAgICBhdXRvJiBwbHVnaW5FbGVtZW50ID0gZG93bmNhc3Q8SFRNTFBsdWdJ
bkltYWdlRWxlbWVudD4oZWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXdMYXlvdXRDb250ZXh0LmNwcAppbmRleCAwYTVkMzliZTRlYjE2NDIyYzdmNTEzMWRlNzMzMzlh
NDljOWI2NjczLi5lNmRiZGIzYTA3NjU0YWM2MGViOTgwMTZkMjRjMWE3NzMyZmJkMjEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKQEAgLTIx
Niw3ICsyMTYsNyBAQCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91dCgpCiAgICAg
ICAgIGlmICghcmVuZGVyVmlldygpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxh
eW91dFJvb3QgPSBtYWtlV2Vha1B0cihzdWJ0cmVlTGF5b3V0Um9vdCgpID8gc3VidHJlZUxheW91
dFJvb3QoKSA6IHJlbmRlclZpZXcoKSk7CisgICAgICAgIGxheW91dFJvb3QgPSBzdWJ0cmVlTGF5
b3V0Um9vdCgpID8gc3VidHJlZUxheW91dFJvb3QoKSA6IHJlbmRlclZpZXcoKTsKICAgICAgICAg
bV9uZWVkc0Z1bGxSZXBhaW50ID0gaXM8UmVuZGVyVmlldz4obGF5b3V0Um9vdCkgJiYgKG1fZmly
c3RMYXlvdXQgfHwgcmVuZGVyVmlldygpLT5wcmludGluZygpKTsKICAgICAgICAgdmlldygpLndp
bGxEb0xheW91dChsYXlvdXRSb290KTsKICAgICAgICAgbV9maXJzdExheW91dCA9IGZhbHNlOwpA
QCAtNDgyLDcgKzQ4Miw3IEBAIHZvaWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6Y29udmVydFN1
YnRyZWVMYXlvdXRUb0Z1bGxMYXlvdXQoKQogCiB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6
OnNldFN1YnRyZWVMYXlvdXRSb290KFJlbmRlckVsZW1lbnQmIGxheW91dFJvb3QpCiB7Ci0gICAg
bV9zdWJ0cmVlTGF5b3V0Um9vdCA9IG1ha2VXZWFrUHRyKGxheW91dFJvb3QpOworICAgIG1fc3Vi
dHJlZUxheW91dFJvb3QgPSBsYXlvdXRSb290OwogfQogCiBib29sIEZyYW1lVmlld0xheW91dENv
bnRleHQ6OmNhblBlcmZvcm1MYXlvdXQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9JbWFnZU92ZXJsYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
SW1hZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5kZXggYmIyMzZhODkyMGIzOTMzZTAzMmJiMDNh
ODMxOTZmMTYyMzgyY2RhZi4uN2M1ODJiZTZjMmU3N2M5MThjNmMxZGRlMTc2MzkzYmI3NTRmMjJi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbWFnZU92ZXJsYXlDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3Bw
CkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZsb2F0UXVhZDsK
IAogSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcihQYWdlJiBw
YWdlKQotICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgIDogbV9wYWdlKHBhZ2Up
CiB7CiB9CiAKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpz
ZWxlY3Rpb25RdWFkc0RpZENoYW5nZShGcmFtZSYgZnJhbWUsIGNvbnN0IFZlY3RvcjwKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1faG9zdEVsZW1lbnRGb3JTZWxlY3Rpb24gPSBtYWtl
V2Vha1B0cigqb3ZlcmxheUhvc3QpOworICAgIG1faG9zdEVsZW1lbnRGb3JTZWxlY3Rpb24gPSAq
b3ZlcmxheUhvc3Q7CiAgICAgbV9zZWxlY3Rpb25RdWFkcyA9IHF1YWRzOwogICAgIG1fc2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yID0gb3ZlcmxheUhvc3RSZW5kZXJlci0+c2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKCk7CiAgICAgbV9zZWxlY3Rpb25DbGlwUmVjdCA9IG92ZXJsYXlIb3N0UmVuZGVy
ZXItPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50
ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IDNhMjMwOGFhNmE1YzQ1N2M2YTFiOTJmMTgxOWRl
NzJhMzU0MjJkZWQuLjU5N2I2NzIzNjU3OGM5ODk1MmE2YmM3NzQ0ZGFiYjJjNjM0NmVjZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCkBAIC0xMTYs
MTkgKzExNiwxOSBAQCBFeGNlcHRpb25PcjxSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+PiBJbnRl
cnNlY3Rpb25PYnNlcnZlcjo6Y3JlYXRlKERvY3VtZW50JiBkbwogfQogCiBJbnRlcnNlY3Rpb25P
YnNlcnZlcjo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8SW50
ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaz4mJiBjYWxsYmFjaywgQ29udGFpbmVyTm9kZSogcm9v
dCwgTGVuZ3RoQm94JiYgcGFyc2VkUm9vdE1hcmdpbiwgVmVjdG9yPGRvdWJsZT4mJiB0aHJlc2hv
bGRzKQotICAgIDogbV9yb290KG1ha2VXZWFrUHRyKHJvb3QpKQorICAgIDogbV9yb290KHJvb3Qp
CiAgICAgLCBtX3Jvb3RNYXJnaW4oV1RGTW92ZShwYXJzZWRSb290TWFyZ2luKSkKICAgICAsIG1f
dGhyZXNob2xkcyhXVEZNb3ZlKHRocmVzaG9sZHMpKQogICAgICwgbV9jYWxsYmFjayhXVEZNb3Zl
KGNhbGxiYWNrKSkKIHsKICAgICBpZiAoaXM8RG9jdW1lbnQ+KHJvb3QpKSB7CiAgICAgICAgIGF1
dG8mIG9ic2VydmVyRGF0YSA9IGRvd25jYXN0PERvY3VtZW50Pigqcm9vdCkuZW5zdXJlSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJEYXRhKCk7Ci0gICAgICAgIG9ic2VydmVyRGF0YS5vYnNlcnZlcnMuYXBw
ZW5kKG1ha2VXZWFrUHRyKHRoaXMpKTsKKyAgICAgICAgb2JzZXJ2ZXJEYXRhLm9ic2VydmVycy5h
cHBlbmQoKnRoaXMpOwogICAgIH0gZWxzZSBpZiAocm9vdCkgewogICAgICAgICBhdXRvJiBvYnNl
cnZlckRhdGEgPSBkb3duY2FzdDxFbGVtZW50Pigqcm9vdCkuZW5zdXJlSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJEYXRhKCk7Ci0gICAgICAgIG9ic2VydmVyRGF0YS5vYnNlcnZlcnMuYXBwZW5kKG1ha2VX
ZWFrUHRyKHRoaXMpKTsKKyAgICAgICAgb2JzZXJ2ZXJEYXRhLm9ic2VydmVycy5hcHBlbmQoKnRo
aXMpOwogICAgIH0gZWxzZSBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAg
ICAgICBtX2ltcGxpY2l0Um9vdERvY3VtZW50ID0gbWFrZVdlYWtQdHIoZnJhbWUtPm1haW5GcmFt
ZSgpLmRvY3VtZW50KCkpOworICAgICAgICBtX2ltcGxpY2l0Um9vdERvY3VtZW50ID0gZnJhbWUt
Pm1haW5GcmFtZSgpLmRvY3VtZW50KCk7CiAKICAgICBzdGQ6OnNvcnQobV90aHJlc2hvbGRzLmJl
Z2luKCksIG1fdGhyZXNob2xkcy5lbmQoKSk7CiB9CkBAIC0xNjUsOSArMTY1LDkgQEAgdm9pZCBJ
bnRlcnNlY3Rpb25PYnNlcnZlcjo6b2JzZXJ2ZShFbGVtZW50JiB0YXJnZXQpCiAgICAgaWYgKCF0
cmFja2luZ0RvY3VtZW50KCkgfHwgIW1fY2FsbGJhY2sgfHwgaXNPYnNlcnZpbmcodGFyZ2V0KSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgdGFyZ2V0LmVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVy
RGF0YSgpLnJlZ2lzdHJhdGlvbnMuYXBwZW5kKHsgbWFrZVdlYWtQdHIodGhpcyksIHN0ZDo6bnVs
bG9wdCB9KTsKKyAgICB0YXJnZXQuZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKCkucmVn
aXN0cmF0aW9ucy5hcHBlbmQoeyAqdGhpcywgc3RkOjpudWxsb3B0IH0pOwogICAgIGJvb2wgaGFk
T2JzZXJ2YXRpb25UYXJnZXRzID0gaGFzT2JzZXJ2YXRpb25UYXJnZXRzKCk7Ci0gICAgbV9vYnNl
cnZhdGlvblRhcmdldHMuYXBwZW5kKG1ha2VXZWFrUHRyKHRhcmdldCkpOworICAgIG1fb2JzZXJ2
YXRpb25UYXJnZXRzLmFwcGVuZCh0YXJnZXQpOwogCiAgICAgLy8gUGVyIHRoZSBzcGVjaWZpY2F0
aW9uLCB3ZSBzaG91bGQgZGlzcGF0Y2ggYXQgbGVhc3Qgb25lIG9ic2VydmF0aW9uIGZvciB0aGUg
dGFyZ2V0LiBGb3IgdGhpcyByZWFzb24sIHdlIG1ha2Ugc3VyZSB0byBrZWVwIHRoZQogICAgIC8v
IHRhcmdldCBhbGl2ZSB1bnRpbCB0aGlzIGZpcnN0IG9ic2VydmF0aW9uLiBUaGlzLCBpbiB0dXJu
LCB3aWxsIGtlZXAgdGhlIEludGVyc2VjdGlvbk9ic2VydmVyJ3MgSlMgd3JhcHBlciBhbGl2ZSB2
aWEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGQ3YmJjNGNiZDY4MDM3NWM0ZWE5ODVlMjZlN2FiZGNi
YjBjNmUwYWYuLjM4YzFiM2UyY2EzZDAzNTBiZTJlOTgzZWQ0ODkzY2Y2ODYzZmI2MDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcApAQCAtMTU1Miw3ICsxNTUyLDcgQEAgdm9pZCBQYWdlOjp1cGRhdGVSZW5k
ZXJpbmcoKQogICAgIFZlY3RvcjxXZWFrUHRyPERvY3VtZW50Pj4gaW5pdGlhbERvY3VtZW50czsK
ICAgICBmb3JFYWNoRG9jdW1lbnQoWyZpbml0aWFsRG9jdW1lbnRzXSAoRG9jdW1lbnQmIGRvY3Vt
ZW50KSB7CiAgICAgICAgIGRvY3VtZW50LmRvbVdpbmRvdygpLT5mcmVlemVOb3dUaW1lc3RhbXAo
KTsKLSAgICAgICAgaW5pdGlhbERvY3VtZW50cy5hcHBlbmQobWFrZVdlYWtQdHIoJmRvY3VtZW50
KSk7CisgICAgICAgIGluaXRpYWxEb2N1bWVudHMuYXBwZW5kKGRvY3VtZW50KTsKICAgICB9KTsK
IAogICAgIGF1dG8gcnVuUHJvY2Vzc2luZ1N0ZXAgPSBbJl0oUmVuZGVyaW5nVXBkYXRlU3RlcCBz
dGVwLCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoRG9jdW1lbnQmKT4mIHBlckRvY3VtZW50RnVu
Y3Rpb24pIHsKQEAgLTE2NzEsNyArMTY3MSw3IEBAIHZvaWQgUGFnZTo6ZG9BZnRlclVwZGF0ZVJl
bmRlcmluZygpCiAgICAgICAgIAogICAgICAgICBpZiAoYXBwSGlnaGxpZ2h0U3RvcmFnZS0+aGFz
VW5yZXN0b3JlZEhpZ2hsaWdodHMoKSAmJiBNb25vdG9uaWNUaW1lOjpub3coKSAtIGFwcEhpZ2hs
aWdodFN0b3JhZ2UtPmxhc3RSYW5nZVNlYXJjaFRpbWUoKSA+IDFfcykgewogICAgICAgICAgICAg
YXBwSGlnaGxpZ2h0U3RvcmFnZS0+cmVzZXRMYXN0UmFuZ2VTZWFyY2hUaW1lKCk7Ci0gICAgICAg
ICAgICBkb2N1bWVudC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6SW50ZXJuYWxB
c3luY1Rhc2ssIFt3ZWFrRG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCldIHsKKyAgICAg
ICAgICAgIGRvY3VtZW50LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpJbnRlcm5h
bEFzeW5jVGFzaywgW3dlYWtEb2N1bWVudCA9IFdlYWtQdHIgeyBkb2N1bWVudCB9XSB7CiAgICAg
ICAgICAgICAgICAgUmVmUHRyIGRvY3VtZW50IHsgd2Vha0RvY3VtZW50LmdldCgpIH07CiAgICAg
ICAgICAgICAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMzY1OCw3ICszNjU4LDcgQEAgdm9pZCBQYWdlOjp1cGRhdGVFbGVtZW50c1dpdGhUZXh0UmVj
b2duaXRpb25SZXN1bHRzKCkKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIFtlbGVtZW50LCByZXN1
bHRdIDogZWxlbWVudHNUb1VwZGF0ZSkgewotICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmV2
ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpJbnRlcm5hbEFzeW5jVGFzaywgW3Jlc3Vs
dCA9IFRleHRSZWNvZ25pdGlvblJlc3VsdCB7IHJlc3VsdCB9LCB3ZWFrRWxlbWVudCA9IG1ha2VX
ZWFrUHRyKGVsZW1lbnQuZ2V0KCkpXSB7CisgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkuZXZl
bnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkludGVybmFsQXN5bmNUYXNrLCBbcmVzdWx0
ID0gVGV4dFJlY29nbml0aW9uUmVzdWx0IHsgcmVzdWx0IH0sIHdlYWtFbGVtZW50ID0gV2Vha1B0
ciB7IGVsZW1lbnQgfV0gewogICAgICAgICAgICAgUmVmUHRyIGVsZW1lbnQgeyB3ZWFrRWxlbWVu
dC5nZXQoKSB9OwogICAgICAgICAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTM3MDQsNyArMzcwNCw3IEBAIHZvaWQgUGFnZTo6c2V0U2VydmljZVdvcmtlckds
b2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgc2VydmljZVdvcmtlckdsCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV9pc1NlcnZpY2VXb3JrZXJQ
YWdlKTsKLSAgICBtX3NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IG1ha2VXZWFrUHRyKHNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSk7CisgICAgbV9zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwCmluZGV4IDBmZDk4MjVmYWM2ZTZjYjQ2ZTBl
ZWU1YjI2N2IyZDhiZGQ3MmY4YzMuLmJmYTFiODc4ZWI4MDVjZmFiMDZkMjI5N2E5ZmJkNTc3OGUz
MGU0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5j
cHAKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIFBvaW50ZXJMb2NrQ29udHJvbGxlcjo6cmVxdWVz
dFBvaW50ZXJVbmxvY2tBbmRGb3JjZUN1cnNvclZpc2libGUoKQogdm9pZCBQb2ludGVyTG9ja0Nv
bnRyb2xsZXI6OmVsZW1lbnRXYXNSZW1vdmVkKEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgaWYg
KG1fZWxlbWVudCA9PSAmZWxlbWVudCkgewotICAgICAgICBtX2RvY3VtZW50T2ZSZW1vdmVkRWxl
bWVudFdoaWxlV2FpdGluZ0ZvclVubG9jayA9IG1ha2VXZWFrUHRyKG1fZWxlbWVudC0+ZG9jdW1l
bnQoKSk7CisgICAgICAgIG1fZG9jdW1lbnRPZlJlbW92ZWRFbGVtZW50V2hpbGVXYWl0aW5nRm9y
VW5sb2NrID0gbV9lbGVtZW50LT5kb2N1bWVudCgpOwogICAgICAgICAvLyBTZXQgZWxlbWVudCBu
dWxsIGltbWVkaWF0ZWx5IHRvIGJsb2NrIGFueSBmdXR1cmUgaW50ZXJhY3Rpb24gd2l0aCBpdAog
ICAgICAgICAvLyBpbmNsdWRpbmcgbW91c2UgZXZlbnRzIHJlY2VpdmVkIGJlZm9yZSB0aGUgdW5s
b2NrIGNvbXBsZXRlcy4KICAgICAgICAgcmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKQEAgLTEyMCw3
ICsxMjAsNyBAQCB2b2lkIFBvaW50ZXJMb2NrQ29udHJvbGxlcjo6ZG9jdW1lbnREZXRhY2hlZChE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIG1fZG9jdW1lbnRBbGxvd2VkVG9SZWxvY2tXaXRo
b3V0VXNlckdlc3R1cmUgPSBudWxscHRyOwogCiAgICAgaWYgKG1fZWxlbWVudCAmJiAmbV9lbGVt
ZW50LT5kb2N1bWVudCgpID09ICZkb2N1bWVudCkgewotICAgICAgICBtX2RvY3VtZW50T2ZSZW1v
dmVkRWxlbWVudFdoaWxlV2FpdGluZ0ZvclVubG9jayA9IG1ha2VXZWFrUHRyKG1fZWxlbWVudC0+
ZG9jdW1lbnQoKSk7CisgICAgICAgIG1fZG9jdW1lbnRPZlJlbW92ZWRFbGVtZW50V2hpbGVXYWl0
aW5nRm9yVW5sb2NrID0gbV9lbGVtZW50LT5kb2N1bWVudCgpOwogICAgICAgICByZXF1ZXN0UG9p
bnRlclVubG9jaygpOwogICAgICAgICBjbGVhckVsZW1lbnQoKTsKICAgICB9CkBAIC0xNTEsNyAr
MTUxLDcgQEAgdm9pZCBQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmRpZEFjcXVpcmVQb2ludGVyTG9j
aygpCiAgICAgZW5xdWV1ZUV2ZW50KGV2ZW50TmFtZXMoKS5wb2ludGVybG9ja2NoYW5nZUV2ZW50
LCBtX2VsZW1lbnQuZ2V0KCkpOwogICAgIG1fbG9ja1BlbmRpbmcgPSBmYWxzZTsKICAgICBtX2Zv
cmNlQ3Vyc29yVmlzaWJsZVVwb25VbmxvY2sgPSBmYWxzZTsKLSAgICBtX2RvY3VtZW50QWxsb3dl
ZFRvUmVsb2NrV2l0aG91dFVzZXJHZXN0dXJlID0gbWFrZVdlYWtQdHIobV9lbGVtZW50LT5kb2N1
bWVudCgpKTsKKyAgICBtX2RvY3VtZW50QWxsb3dlZFRvUmVsb2NrV2l0aG91dFVzZXJHZXN0dXJl
ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpOwogfQogCiB2b2lkIFBvaW50ZXJMb2NrQ29udHJvbGxl
cjo6ZGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAppbmRleCAx
YzllZTUyZDMxNDE3ZTUzMjJiYTdhMDZjMWZlODYxYmI2YzM0MDQyLi40ZjIyYWVhYjQ1NThjMzlm
ZDQ4ZTIxMmRiZjdmYTQ2MWE3MWIzY2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCkBAIC04Niw3
ICs4Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1lhaG9vTWFpbChEb2N1bWVudCYgZG9jdW1l
bnQpCiAjZW5kaWYKIAogUXVpcmtzOjpRdWlya3MoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDog
bV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCisgICAgOiBtX2RvY3VtZW50KGRvY3Vt
ZW50KQogewogfQogCkBAIC0xMjI2LDcgKzEyMjYsNyBAQCBRdWlya3M6OlN0b3JhZ2VBY2Nlc3NS
ZXN1bHQgUXVpcmtzOjp0cmlnZ2VyT3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsoRWxlbWVudCYg
ZQogCiAgICAgICAgIC8vIElmIHRoZSBjbGljayBpcyBzeW50aGV0aWMsIHRoZSB1c2VyIGhhcyBh
bHJlYWR5IGdvbmUgdGhyb3VnaCB0aGUgc3RvcmFnZSBhY2Nlc3MgZmxvdyBhbmQgd2Ugc2hvdWxk
IG5vdCByZXF1ZXN0IGFnYWluLgogICAgICAgICBpZiAoaXNTdG9yYWdlQWNjZXNzUXVpcmtEb21h
aW5BbmRFbGVtZW50KG1fZG9jdW1lbnQtPnVybCgpLCBlbGVtZW50KSAmJiBpc1N5bnRoZXRpY0Ns
aWNrID09IElzU3ludGhldGljQ2xpY2s6Ok5vKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVxdWVz
dFN0b3JhZ2VBY2Nlc3NBbmRIYW5kbGVDbGljayhbZWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1l
bnQpLCBwbGF0Zm9ybUV2ZW50LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldF0gKFNo
b3VsZERpc3BhdGNoQ2xpY2sgc2hvdWxkRGlzcGF0Y2hDbGljaykgbXV0YWJsZSB7CisgICAgICAg
ICAgICByZXR1cm4gcmVxdWVzdFN0b3JhZ2VBY2Nlc3NBbmRIYW5kbGVDbGljayhbZWxlbWVudCA9
IFdlYWtQdHIgeyBlbGVtZW50IH0sIHBsYXRmb3JtRXZlbnQsIGV2ZW50VHlwZSwgZGV0YWlsLCBy
ZWxhdGVkVGFyZ2V0XSAoU2hvdWxkRGlzcGF0Y2hDbGljayBzaG91bGREaXNwYXRjaENsaWNrKSBt
dXRhYmxlIHsKICAgICAgICAgICAgICAgICBSZWZQdHIgcHJvdGVjdGVkRWxlbWVudCB7IGVsZW1l
bnQuZ2V0KCkgfTsKICAgICAgICAgICAgICAgICBpZiAoIXByb3RlY3RlZEVsZW1lbnQpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UmVzaXplT2JzZXJ2YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZh
dGlvbi5jcHAKaW5kZXggMTU1YWIyM2YxM2FjYzVmZjM2MGNiYTc1Y2RlMjQ2YjQ2YWQ0ZDdkNi4u
MjA5NmE1ODBlNjVlY2QxMTMzMGFkMDE0MTY4NzE5N2FjMjA5OTRmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9SZXNpemVPYnNlcnZhdGlvbi5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgUmVmPFJlc2l6
ZU9ic2VydmF0aW9uPiBSZXNpemVPYnNlcnZhdGlvbjo6Y3JlYXRlKEVsZW1lbnQmIHRhcmdldCwg
UmVzaXplT2JzZXJ2ZXIKIH0KIAogUmVzaXplT2JzZXJ2YXRpb246OlJlc2l6ZU9ic2VydmF0aW9u
KEVsZW1lbnQmIGVsZW1lbnQsIFJlc2l6ZU9ic2VydmVyQm94T3B0aW9ucyBvYnNlcnZlZEJveCkK
LSAgICA6IG1fdGFyZ2V0IHsgbWFrZVdlYWtQdHIoZWxlbWVudCkgfQorICAgIDogbV90YXJnZXQg
eyBlbGVtZW50IH0KICAgICAsIG1fb2JzZXJ2ZWRCb3ggeyBvYnNlcnZlZEJveCB9CiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXIuY3BwCmluZGV4IGIzNjMwZGQ4ODBhMGZjZjlk
MThlZDkxNzQ2NzQ2OGIxNzMyNjI5MzkuLjkxYjBkOTc1YjRjOGFhMmM1MjBjMjg4OTIwZmYxMjVj
NTdjMzBiMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXIuY3BwCkBAIC00MSw3
ICs0MSw3IEBAIFJlZjxSZXNpemVPYnNlcnZlcj4gUmVzaXplT2JzZXJ2ZXI6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQsIFJlZjxSZXNpemVPYnNlcnZlCiB9CiAKIFJlc2l6ZU9ic2VydmVyOjpS
ZXNpemVPYnNlcnZlcihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxSZXNpemVPYnNlcnZlckNhbGxi
YWNrPiYmIGNhbGxiYWNrKQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkp
CisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNh
bGxiYWNrKSkKIHsKIH0KQEAgLTczLDcgKzczLDcgQEAgdm9pZCBSZXNpemVPYnNlcnZlcjo6b2Jz
ZXJ2ZShFbGVtZW50JiB0YXJnZXQsIGNvbnN0IFJlc2l6ZU9ic2VydmVyT3B0aW9ucyYgb3B0aW8K
ICAgICB9CiAKICAgICBhdXRvJiBvYnNlcnZlckRhdGEgPSB0YXJnZXQuZW5zdXJlUmVzaXplT2Jz
ZXJ2ZXJEYXRhKCk7Ci0gICAgb2JzZXJ2ZXJEYXRhLm9ic2VydmVycy5hcHBlbmQobWFrZVdlYWtQ
dHIodGhpcykpOworICAgIG9ic2VydmVyRGF0YS5vYnNlcnZlcnMuYXBwZW5kKCp0aGlzKTsKIAog
ICAgIG1fb2JzZXJ2YXRpb25zLmFwcGVuZChSZXNpemVPYnNlcnZhdGlvbjo6Y3JlYXRlKHRhcmdl
dCwgb3B0aW9ucy5ib3gpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRv
SXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmNwcAppbmRleCBmMDRhMjBh
ZjI2MGE2NDE5ZjYxYzcwMWQ1Yzc4OWM2MDA0YTZhNzUzLi5iZmI1ZDUyOTA0N2YzZTc3NmY1MjBm
NWZkYTA5MDQwNThkNDhiOWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9J
dGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmNwcApAQCAtNDEsOCAr
NDEsOCBAQCBVbmRvTWFuYWdlciogVW5kb0l0ZW06OnVuZG9NYW5hZ2VyKCkgY29uc3QKIAogdm9p
ZCBVbmRvSXRlbTo6c2V0VW5kb01hbmFnZXIoVW5kb01hbmFnZXIqIHVuZG9NYW5hZ2VyKQogewot
ICAgIG1fdW5kb01hbmFnZXIgPSBtYWtlV2Vha1B0cih1bmRvTWFuYWdlcik7Ci0gICAgbV9kb2N1
bWVudCA9IG1ha2VXZWFrUHRyKHVuZG9NYW5hZ2VyID8gJnVuZG9NYW5hZ2VyLT5kb2N1bWVudCgp
IDogbnVsbHB0cik7CisgICAgbV91bmRvTWFuYWdlciA9IHVuZG9NYW5hZ2VyOworICAgIG1fZG9j
dW1lbnQgPSB1bmRvTWFuYWdlciA/ICZ1bmRvTWFuYWdlci0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7
CiB9CiAKIHZvaWQgVW5kb0l0ZW06OmludmFsaWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCmluZGV4IDlkY2ZmNjExYTAzNWUyMWYzYjBmNTVi
YmY3OTNmZjkyNDVkNDc2MjkuLmFlNzQ0NDk1YjEwM2FkMzQ3MzVjOTQxNmVlZGE4ZjBmOWE3NTli
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAK
QEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6cmVjZWl2ZWRX
aGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiAKIHZvaWQgV2hlZWxF
dmVudFRlc3RNb25pdG9yOjpzY2hlZHVsZUNhbGxiYWNrQ2hlY2soKQogewotICAgIGVuc3VyZU9u
TWFpblRocmVhZChbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihtX3BhZ2UpXSB7CisgICAgZW5zdXJl
T25NYWluVGhyZWFkKFt3ZWFrUGFnZSA9IFdlYWtQdHIgeyBtX3BhZ2UgfV0gewogICAgICAgICBp
ZiAod2Vha1BhZ2UpCiAgICAgICAgICAgICB3ZWFrUGFnZS0+c2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGUoUmVuZGVyaW5nVXBkYXRlU3RlcDo6V2hlZWxFdmVudE1vbml0b3JDYWxsYmFja3MpOwogICAg
IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9i
c2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZl
ci5jcHAKaW5kZXggOWY4YzU2NzBjMjE1OTMxMjIzYzkxOTRmYzMzMzY1ZGJiNjlmNjkwZC4uMTM4
ZmU1ODMxZDc1NjQ2NTQzOWVhZmVjNjU3ODdlYTMxOTVlMjE5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwCkBAIC0yNTIsNyArMjUy
LDcgQEAgdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZEZpbmlzaFRyYW5zaXRpb24oY29u
c3QgRWxlbWVudCYgZWxlbWVudCwgQ1NTUHJvcGUKICAgICBMT0dfV0lUSF9TVFJFQU0oQ29udGVu
dE9ic2VydmF0aW9uLCBzdHJlYW0gPDwgImRpZEZpbmlzaFRyYW5zaXRpb246IHRyYW5zaXRpb24g
ZmluaXNoZWQgKCIgPDwgJmVsZW1lbnQgPDwgIikuIik7CiAKICAgICAvLyBpc0NvbnNpZGVyZWRB
Y3Rpb25hYmxlQ29udGVudCBtYXkgdHJpZ2dlciBzdHlsZSB1cGRhdGUgdGhyb3VnaCBOb2RlOjpj
b21wdXRlRWRpdGFiaWxpdHkuIExldCdzIGFkanVzdCB0aGUgc3RhdGUgaW4gdGhlIG5leHQgcnVu
bG9vcC4KLSAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
LCB0YXJnZXRFbGVtZW50ID0gbWFrZVdlYWtQdHIoZWxlbWVudCldIHsKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0YXJnZXRFbGVtZW50ID0gV2Vh
a1B0ciB7IGVsZW1lbnQgfV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF0YXJnZXRFbGVt
ZW50KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoaXNWaXN1YWxseUhpZGRlbigq
dGFyZ2V0RWxlbWVudCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0Nv
bnRlbnRDaGFuZ2VPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENo
YW5nZU9ic2VydmVyLmgKaW5kZXggOTc2ZDFmMDNmZGM4NTM1ZTIzZTExMmVlOGNjYTI5MWViY2Mz
MzcyZC4uNTNjNWI5OTFiMmUwN2U3YmQ2MjllZTRkMDNhNDZhMzBkODIyYmJhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmgKQEAgLTc0LDcg
Kzc0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB3aWxsTm90UHJvY2VlZFdpdGhGaXhlZE9ic2Vy
dmF0aW9uVGltZVdpbmRvdygpOwogCi0gICAgdm9pZCBzZXRIaWRkZW5Ub3VjaFRhcmdldChFbGVt
ZW50JiB0YXJnZXRFbGVtZW50KSB7IG1faGlkZGVuVG91Y2hUYXJnZXRFbGVtZW50ID0gbWFrZVdl
YWtQdHIodGFyZ2V0RWxlbWVudCk7IH0KKyAgICB2b2lkIHNldEhpZGRlblRvdWNoVGFyZ2V0KEVs
ZW1lbnQmIHRhcmdldEVsZW1lbnQpIHsgbV9oaWRkZW5Ub3VjaFRhcmdldEVsZW1lbnQgPSBXZWFr
UHRyIHsgdGFyZ2V0RWxlbWVudCB9OyB9CiAgICAgdm9pZCByZXNldEhpZGRlblRvdWNoVGFyZ2V0
KCkgeyBtX2hpZGRlblRvdWNoVGFyZ2V0RWxlbWVudCA9IHsgfTsgfQogICAgIEVsZW1lbnQqIGhp
ZGRlblRvdWNoVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9oaWRkZW5Ub3VjaFRhcmdldEVsZW1l
bnQuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRI
YW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1t
CmluZGV4IDc0OGJmYjk4OGMxNTdmYjhjNDRmZWYyYjFiZDYyYWEzYjRlMjBkNjcuLjU3ZDVhNjQ3
ZjAzMDI0MjUxY2Y5NjE2YjJjYmZhNWE0YWY3MWU5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTgzMiw3ICs4MzIsNyBAQCBzdGF0aWMgV2Vha1B0
cjxTY3JvbGxhYmxlQXJlYT4gc2Nyb2xsYWJsZUFyZWFGb3JFdmVudFRhcmdldChFbGVtZW50KiBl
dmVudFRhcmdldAogICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzU2Nyb2xsVmlldygpKQog
ICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0
PFNjcm9sbGFibGVBcmVhJj4oc3RhdGljX2Nhc3Q8U2Nyb2xsVmlldyY+KCp3aWRnZXQpKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbGFibGVBcmVhJj4oc3RhdGljX2Nhc3Q8U2Nyb2xs
VmlldyY+KCp3aWRnZXQpKTsKIH0KICAgICAKIHN0YXRpYyBib29sIGV2ZW50VGFyZ2V0SXNQbGF0
Zm9ybVdpZGdldChFbGVtZW50KiBldmVudFRhcmdldCkKQEAgLTg1NCw3ICs4NTQsNyBAQCBzdGF0
aWMgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4gc2Nyb2xsYWJsZUFyZWFGb3JDb250YWluZXJOb2Rl
KENvbnRhaW5lck5vZGUmIGNvbgogICAgIGlmICghc2Nyb2xsYWJsZUFyZWFQdHIpCiAgICAgICAg
IHJldHVybiB7IH07CiAgICAgCi0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKCpzY3JvbGxhYmxlQXJl
YVB0cik7CisgICAgcmV0dXJuICpzY3JvbGxhYmxlQXJlYVB0cjsKIH0KIAogdm9pZCBFdmVudEhh
bmRsZXI6OmRldGVybWluZVdoZWVsRXZlbnRUYXJnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50LCBSZWZQdHI8RWxlbWVudD4mIHdoZWVsRXZlbnRUYXJnZXQsIFdlYWtQdHI8
U2Nyb2xsYWJsZUFyZWE+JiBzY3JvbGxhYmxlQXJlYSwgYm9vbCYgaXNPdmVyV2lkZ2V0KQpAQCAt
ODc0LDcgKzg3NCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZXRlcm1pbmVXaGVlbEV2ZW50VGFy
Z2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVuCiAgICAgICAgIGlmIChzY3Jv
bGxhYmxlQ29udGFpbmVyKQogICAgICAgICAgICAgc2Nyb2xsYWJsZUFyZWEgPSBzY3JvbGxhYmxl
QXJlYUZvckNvbnRhaW5lck5vZGUoKnNjcm9sbGFibGVDb250YWluZXIpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBzY3JvbGxhYmxlQXJlYSA9IG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PFNj
cm9sbGFibGVBcmVhJj4oKnZpZXcpKTsKKyAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhID0gc3Rh
dGljX2Nhc3Q8U2Nyb2xsYWJsZUFyZWEmPigqdmlldyk7CiAgICAgfQogCiAgICAgTE9HX1dJVEhf
U1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIkV2ZW50SGFuZGxlcjo6ZGV0ZXJtaW5l
V2hlZWxFdmVudFRhcmdldCgpIC0gZXZlbnQgIiA8PCB3aGVlbEV2ZW50IDw8ICIgZm91bmQgc2Ny
b2xsYWJsZUFyZWEgIiA8PCBWYWx1ZU9yTnVsbChzY3JvbGxhYmxlQXJlYS5nZXQoKSkgPDwgIiwg
bGF0Y2hpbmcgc3RhdGUgaXMgIiA8PCBwYWdlLT5zY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9s
bGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJvbGxl
ck1hYy5tbQppbmRleCBlNjdlZTliMGE2ZDc3NWFmMTFiMjMxYjYyZjQ4OTZmYTBhMTkwOWQxLi4y
MmNkMzI3MzllYmYwODNkMjVmYzhiYzQxMzRlMjkwMDBjN2M4NTk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0KQEAgLTkz
LDcgKzkzLDcgQEAgdm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjp1cGRhdGVEYXRhRGV0ZWN0
b3JIaWdobGlnaHRzKGNvbnN0IEhUTUxFbGVtZW50JiBvdmUKICNlbHNlCiAgICAgICAgIGF1dG8g
aGlnaGxpZ2h0ID0gYWRvcHRDRihQQUw6OnNvZnRMaW5rX0RhdGFEZXRlY3RvcnNfRERIaWdobGln
aHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxlQW5kRGlyZWN0aW9uKG51bGxw
dHIsICZlbGVtZW50Qm91bmRzLCAxLCBtYWluRnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3Qo
KSwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwgRERIaWdobGlnaHRTdHlsZVN0YW5k
YXJkSWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMpKTsK
ICNlbmRpZgotICAgICAgICBtX2RhdGFEZXRlY3RvckNvbnRhaW5lcnNBbmRIaWdobGlnaHRzLmFw
cGVuZCh7IG1ha2VXZWFrUHRyKGVsZW1lbnQuZ2V0KCkpLCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6
OmNyZWF0ZUZvckltYWdlT3ZlcmxheSgqbV9wYWdlLCAqdGhpcywgV1RGTW92ZShoaWdobGlnaHQp
LCAqbWFrZVJhbmdlU2VsZWN0aW5nTm9kZShlbGVtZW50LmdldCgpKSkgfSk7CisgICAgICAgIG1f
ZGF0YURldGVjdG9yQ29udGFpbmVyc0FuZEhpZ2hsaWdodHMuYXBwZW5kKHsgZWxlbWVudCwgRGF0
YURldGVjdG9ySGlnaGxpZ2h0OjpjcmVhdGVGb3JJbWFnZU92ZXJsYXkoKm1fcGFnZSwgKnRoaXMs
IFdURk1vdmUoaGlnaGxpZ2h0KSwgKm1ha2VSYW5nZVNlbGVjdGluZ05vZGUoZWxlbWVudC5nZXQo
KSkpIH0pOwogICAgIH0KIH0KIApAQCAtMjIzLDcgKzIyMyw3IEBAIHZvaWQgSW1hZ2VPdmVybGF5
Q29udHJvbGxlcjo6ZWxlbWVudFVuZGVyTW91c2VEaWRDaGFuZ2UoRnJhbWUmIGZyYW1lLCBFbGVt
ZW50KiBlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2hvc3RFbGVtZW50Rm9yRGF0
YURldGVjdG9ycyA9IG1ha2VXZWFrUHRyKGltYWdlT3ZlcmxheUhvc3QuZ2V0KCkpOworICAgIG1f
aG9zdEVsZW1lbnRGb3JEYXRhRGV0ZWN0b3JzID0gaW1hZ2VPdmVybGF5SG9zdDsKICAgICBpbnN0
YWxsUGFnZU92ZXJsYXlJZk5lZWRlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyLmNwcAppbmRleCA0
NjdjYzVmMjE4ZmU4ODM1MzY2NTg3ZmZkMDY4NDQ0YzVlNzhiNzFhLi40Yjc0YmY0NzkwOTE0OTk3
YjhlNDZlZjJjZTc3YjU1ODM4ZTQwMjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJvbGxlci5jcHAKQEAgLTExOCw3
ICsxMTgsNyBAQCB2b2lkIFNjcm9sbExhdGNoaW5nQ29udHJvbGxlcjo6dXBkYXRlQW5kRmV0Y2hM
YXRjaGluZ1N0YXRlRm9yRnJhbWUoRnJhbWUmIGZyYW1lLAogICAgICAgICBpZiAoIWhhc1N0YXRl
Rm9yRnJhbWUoZnJhbWUpKSB7CiAgICAgICAgICAgICBGcmFtZVN0YXRlIHN0YXRlOwogICAgICAg
ICAgICAgc3RhdGUuZnJhbWUgPSAmZnJhbWU7Ci0gICAgICAgICAgICBzdGF0ZS53aGVlbEV2ZW50
RWxlbWVudCA9IG1ha2VXZWFrUHRyKGxhdGNoZWRFbGVtZW50LmdldCgpKTsKKyAgICAgICAgICAg
IHN0YXRlLndoZWVsRXZlbnRFbGVtZW50ID0gbGF0Y2hlZEVsZW1lbnQ7CiAgICAgICAgICAgICBp
ZiAoc2hvdWxkTGF0Y2hUb1Njcm9sbGFibGVBcmVhKGZyYW1lLCBzY3JvbGxhYmxlQXJlYS5nZXQo
KSwgbV9jdW11bGF0aXZlRXZlbnREZWx0YSkpCiAgICAgICAgICAgICAgICAgc3RhdGUuc2Nyb2xs
YWJsZUFyZWEgPSBzY3JvbGxhYmxlQXJlYTsKICAgICAgICAgICAgIHN0YXRlLmlzT3ZlcldpZGdl
dCA9IGlzT3ZlcldpZGdldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL05v
d1BsYXlpbmdNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL05vd1BsYXlpbmdN
YW5hZ2VyLmNwcAppbmRleCBhMTU4N2Y1ZmYyMjRiMThmMWM4ZWM3NmVkMGNjZThmNGM2N2ZiZmU2
Li4zMjAwZGUyM2I1NmM5NDFkZjQwYzFhZTJjYzVjMmQ1NDVkMGIxMjM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ob3dQbGF5aW5nTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTm93UGxheWluZ01hbmFnZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBA
IHZvaWQgTm93UGxheWluZ01hbmFnZXI6OmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtCiAKIHZvaWQgTm93UGxheWluZ01hbmFnZXI6OmFkZENs
aWVudChDbGllbnQmIGNsaWVudCkKIHsKLSAgICBtX2NsaWVudCA9IG1ha2VXZWFrUHRyKGNsaWVu
dCk7CisgICAgbV9jbGllbnQgPSBjbGllbnQ7CiAgICAgZW5zdXJlUmVtb3RlQ29tbWFuZExpc3Rl
bmVyQ3JlYXRlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
cmV2aWV3Q29udmVydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ByZXZpZXdDb252
ZXJ0ZXIuY3BwCmluZGV4IGRiYWNhMDRmYjA2ODI3MGM0YTQ3MWYxOWIzMjE5MDUxYzFlZjAyZWIu
LjRjYjMzMDFlN2RmNzA3MWM1ZGQ5ZmM1OWJjNTcxODVjNGU5MTQ3NjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAg
Ym9vbCBQcmV2aWV3Q29udmVydGVyOjpoYXNDbGllbnQoUHJldmlld0NvbnZlcnRlckNsaWVudCYg
Y2xpZW50KSBjb25zdAogdm9pZCBQcmV2aWV3Q29udmVydGVyOjphZGRDbGllbnQoUHJldmlld0Nv
bnZlcnRlckNsaWVudCYgY2xpZW50KQogewogICAgIEFTU0VSVCghaGFzQ2xpZW50KGNsaWVudCkp
OwotICAgIG1fY2xpZW50cy5hcHBlbmQobWFrZVdlYWtQdHIoY2xpZW50KSk7CisgICAgbV9jbGll
bnRzLmFwcGVuZChjbGllbnQpOwogICAgIGRpZEFkZENsaWVudChjbGllbnQpOwogfQogCkBAIC0x
NzUsNyArMTc1LDcgQEAgdm9pZCBQcmV2aWV3Q29udmVydGVyOjppdGVyYXRlQ2xpZW50cyhUJiYg
Y2FsbGJhY2spCiAKIHZvaWQgUHJldmlld0NvbnZlcnRlcjo6ZGlkQWRkQ2xpZW50KFByZXZpZXdD
b252ZXJ0ZXJDbGllbnQmIGNsaWVudCkKIHsKLSAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0
Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCB3ZWFrQ2xpZW50ID0gbWFr
ZVdlYWtQdHIoY2xpZW50KV0oKSB7CisgICAgUnVuTG9vcDo6Y3VycmVudCgpLmRpc3BhdGNoKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgd2Vha0NsaWVudCA9IFdlYWtQdHIg
eyBjbGllbnQgfV0oKSB7CiAgICAgICAgIGlmIChhdXRvIGNsaWVudCA9IHdlYWtDbGllbnQuZ2V0
KCkpCiAgICAgICAgICAgICByZXBsYXlUb0NsaWVudCgqY2xpZW50KTsKICAgICB9KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAppbmRleCA4YzMxZDFjMDdiNjhj
ODk2MGE2MTk2NjEyM2U3MTY1MGViOWI4YTkyLi45MzdkOWFjN2I4OWFiN2IzNzRmM2VhOTZkM2Ji
NTFiMDAwY2M2NTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
Y3BwCkBAIC0zNjcsNyArMzY3LDcgQEAgZmxvYXQgU2Nyb2xsQW5pbWF0b3I6OnBhZ2VTY2FsZUZh
Y3RvcigpIGNvbnN0CiAKIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxl
clRpbWVyPiBTY3JvbGxBbmltYXRvcjo6Y3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmIGZ1
bmN0aW9uKQogewotICAgIHJldHVybiBXVEY6Om1ha2VVbmlxdWU8U2Nyb2xsaW5nRWZmZWN0c0Nv
bnRyb2xsZXJUaW1lcj4oUnVuTG9vcDo6Y3VycmVudCgpLCBbZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1
bmN0aW9uKSwgd2Vha1Njcm9sbGFibGVBcmVhID0gbWFrZVdlYWtQdHIobV9zY3JvbGxhYmxlQXJl
YSldIHsKKyAgICByZXR1cm4gV1RGOjptYWtlVW5pcXVlPFNjcm9sbGluZ0VmZmVjdHNDb250cm9s
bGVyVGltZXI+KFJ1bkxvb3A6OmN1cnJlbnQoKSwgW2Z1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlv
biksIHdlYWtTY3JvbGxhYmxlQXJlYSA9IFdlYWtQdHIgeyBtX3Njcm9sbGFibGVBcmVhIH1dIHsK
ICAgICAgICAgaWYgKCF3ZWFrU2Nyb2xsYWJsZUFyZWEpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIGZ1bmN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmlu
ZGV4IDIzM2QyMmY3MjUyNzM2YjIyNTczZGJmZTRkNTk3NTYwZTE5YjczZmIuLjQ4NTcwOTk0OWYw
MTZiMDdlZDQ4MGIxN2ZkNDg1MjA1YzFhNDg2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFZpZXcuY3BwCkBAIC0xNTY5LDcgKzE1NjksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xs
Vmlldzo6UHJvaGliaXRTY3JvbGxpbmdXaGVuQ2hhbmdpbmdDb250ZW50U2l6ZUZvclNjb3BlPiBT
YwogfQogCiBTY3JvbGxWaWV3OjpQcm9oaWJpdFNjcm9sbGluZ1doZW5DaGFuZ2luZ0NvbnRlbnRT
aXplRm9yU2NvcGU6OlByb2hpYml0U2Nyb2xsaW5nV2hlbkNoYW5naW5nQ29udGVudFNpemVGb3JT
Y29wZShTY3JvbGxWaWV3JiBzY3JvbGxWaWV3KQotICAgIDogbV9zY3JvbGxWaWV3KG1ha2VXZWFr
UHRyKHNjcm9sbFZpZXcpKQorICAgIDogbV9zY3JvbGxWaWV3KHNjcm9sbFZpZXcpCiB7CiAgICAg
c2Nyb2xsVmlldy5pbmNyZW1lbnRQcm9oaWJpdHNTY3JvbGxpbmdXaGVuQ2hhbmdpbmdDb250ZW50
U2l6ZUNvdW50KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRn
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmNwcAppbmRleCAzYjRhMmFl
NWM4YjJkYTE0N2Q4ZmU4MmFhNjBkYzNhZjEwYTJmNTlkLi4xNWQ2YTg0MDM3MGUxNjM0NmY0NzAz
MTA2MjZjYzQ5Y2JjMGE0YTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9X
aWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5jcHAKQEAgLTUw
LDcgKzUwLDcgQEAgdm9pZCBXaWRnZXQ6OnNldFBhcmVudChTY3JvbGxWaWV3KiB2aWV3KQogICAg
IEFTU0VSVCghdmlldyB8fCAhbV9wYXJlbnQpOwogICAgIGlmICghdmlldyB8fCAhdmlldy0+aXNW
aXNpYmxlKCkpCiAgICAgICAgIHNldFBhcmVudFZpc2libGUoZmFsc2UpOwotICAgIG1fcGFyZW50
ID0gbWFrZVdlYWtQdHIodmlldyk7CisgICAgbV9wYXJlbnQgPSB2aWV3OwogICAgIGlmICh2aWV3
ICYmIHZpZXctPmlzVmlzaWJsZSgpKQogICAgICAgICBzZXRQYXJlbnRWaXNpYmxlKHRydWUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXggYWYwNDFhNGFiZmZlMjU5ZGIwYTdkMzQ5
ZmFiODNjZjFlOTkwZDE2OC4uMDNhZDQ2NjJmMmVjOWMwZWUxNzU2OWQyNDRlNDQzNzM3ZTY4OTdk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9pZCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmVuZEludGVycnVwdGlvbihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6RW5kSW50ZXIKIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjphZGRT
ZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogewogICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgc2Vzc2lvbi5sb2dJZGVudGlmaWVyKCkpOwotICAgIG1fc2Vzc2lvbnMu
YXBwZW5kKG1ha2VXZWFrUHRyKHNlc3Npb24pKTsKKyAgICBtX3Nlc3Npb25zLmFwcGVuZChzZXNz
aW9uKTsKICAgICBpZiAobV9pbnRlcnJ1cHRlZCkKICAgICAgICAgc2Vzc2lvbi5zZXRTdGF0ZShQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0ZWQpOwogCkBAIC0yODUsNyArMjg1LDcgQEAg
dm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsRW5kUGxheWJhY2so
UGxhdGZvcm1NZWRpYVNlc3Npb24mIHMKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zZXNzaW9u
cy5yZW1vdmUocGF1c2luZ1Nlc3Npb25JbmRleCk7Ci0gICAgbV9zZXNzaW9ucy5hcHBlbmQobWFr
ZVdlYWtQdHIoc2Vzc2lvbikpOworICAgIG1fc2Vzc2lvbnMuYXBwZW5kKHNlc3Npb24pOwogCiAg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAic2Vzc2lvbiBtb3ZlZCBmcm9tIGluZGV4ICIs
IHBhdXNpbmdTZXNzaW9uSW5kZXgsICIgdG8gIiwgbGFzdFBsYXlpbmdTZXNzaW9uSW5kZXgpOwog
fQpAQCAtMzA4LDcgKzMwOCw3IEBAIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpz
ZXRDdXJyZW50U2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1fc2Vzc2lvbnMucmVtb3ZlKGluZGV4KTsKLSAgICBtX3Nlc3Npb25zLmlu
c2VydCgwLCBtYWtlV2Vha1B0cihzZXNzaW9uKSk7CisgICAgbV9zZXNzaW9ucy5pbnNlcnQoMCwg
c2Vzc2lvbik7CiAgICAgCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAic2Vzc2lvbiBt
b3ZlZCBmcm9tIGluZGV4ICIsIGluZGV4LCAiIHRvIDAiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFn
ZXJDb2NvYS5tbQppbmRleCA4YjMwNGFjMmY0M2I3MjM3NjZkYTAwODE0ZTQ4NDAxODg0Y2EwZDhl
Li5iYjc4OGFmYTFlOTFmOWE0ZDNhYjM2ZTJhMGMwODEyYzk0ZTE4NzBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNz
aW9uTWFuYWdlckNvY29hLm1tCkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9pZCBNZWRpYVNlc3Npb25N
YW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsRW5kUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24m
IHNlc3MKIHsKICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsRW5k
UGxheWJhY2soc2Vzc2lvbiwgZGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyk7CiAKLSAgICBj
YWxsT25NYWluVGhyZWFkKFt3ZWFrU2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Npb24pXSB7Cisg
ICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1Nlc3Npb24gPSBXZWFrUHRyIHsgc2Vzc2lvbiB9XSB7
CiAgICAgICAgIGlmICh3ZWFrU2Vzc2lvbikKICAgICAgICAgICAgIHdlYWtTZXNzaW9uLT51cGRh
dGVNZWRpYVVzYWdlSWZDaGFuZ2VkKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL01lZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIu
Y3BwCmluZGV4IDU1ZmE5ODU3NmI1NzY2MWViMWZkMDgxYzk4MDA2ZDdhMzMxNmVlODAuLmE4NGEz
MzBlYzRiYTg2MGU4YTdhOTJmNTAyMTE4NjJiZTQ2MDJiMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdl
ckdMaWIuY3BwCkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xp
Yjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2kKIHsK
ICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsRW5kUGxheWJhY2so
c2Vzc2lvbiwgZGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyk7CiAKLSAgICBjYWxsT25NYWlu
VGhyZWFkKFt3ZWFrU2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Npb24pXSB7CisgICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1Nlc3Npb24gPSBXZWFrUHRyIHsgc2Vzc2lvbiB9XSB7CiAgICAgICAg
IGlmICh3ZWFrU2Vzc2lvbikKICAgICAgICAgICAgIHdlYWtTZXNzaW9uLT51cGRhdGVNZWRpYVVz
YWdlSWZDaGFuZ2VkKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFt
ZXIuY3BwCmluZGV4IGM0Nzk2MDYzYzc1NzEzNzRjYzViNDYxMjE2YjgwY2Y4MmUzOTE2ZTAuLmVi
YjFlZTMzZjkzZTAzZjIxOTg1MWJjZWY5ZWI4N2NjZTRmN2ZiMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRp
b0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBAIC0zNDEsNyArMzQxLDcgQEAgdm9pZCBBdWRpb0Zp
bGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRpb24oKQogICAgICAgICAgICAgcmVhZGVy
LmhhbmRsZU1lc3NhZ2UobWVzc2FnZSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgR1Jl
ZlB0cjxHc3RNZXNzYWdlPiBwcm90ZWN0TWVzc2FnZShtZXNzYWdlKTsKLSAgICAgICAgICAgIGF1
dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cihyZWFkZXIpOworICAgICAgICAgICAgV2Vha1B0ciB3
ZWFrVGhpcyB7IHJlYWRlciB9OwogICAgICAgICAgICAgcmVhZGVyLm1fcnVuTG9vcC5kaXNwYXRj
aChbd2Vha1RoaXMsIHByb3RlY3RNZXNzYWdlXSB7CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtU
aGlzKQogICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+aGFuZGxlTWVzc2FnZShwcm90ZWN0
TWVzc2FnZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1l
ci5jcHAKaW5kZXggM2RlMjNjZjk3N2ZmMDMyZDQ1MDgwYzVjY2UwMTFlNDVhMTE1YzY5OS4uNGQw
NmFhNzczMTNmYjc1NmFjMDc1NWM4NTllYWI1NzVhMzFmNzVjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQg
QXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lcjo6c2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlk
ZXJDbGllbnQqIG5ld0NsaWVuCiAKICAgICBHU1RfREVCVUcoIlNldHRpbmcgdXAgY2xpZW50ICVw
IChwcmV2aW91czogJXApIiwgbmV3Q2xpZW50LCBjbGllbnQoKSk7CiAgICAgYm9vbCBwcmV2aW91
c0NsaWVudFdhc1ZhbGlkID0gISFtX2NsaWVudDsKLSAgICBtX2NsaWVudCA9IG1ha2VXZWFrUHRy
KG5ld0NsaWVudCk7CisgICAgbV9jbGllbnQgPSBuZXdDbGllbnQ7CiAKICAgICAvLyBUaGUgdm9s
dW1lIGVsZW1lbnQgaXMgdXNlZCB0byBtdXRlIGF1ZGlvIHBsYXliYWNrIHRvd2FyZHMgdGhlCiAg
ICAgLy8gYXV0b2F1ZGlvc2luay4gVGhpcyBpcyBuZWVkZWQgdG8gYXZvaWQgZG91YmxlIHBsYXli
YWNrIG9mIGF1ZGlvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9t
YWMvU2hhcmVkUm91dGluZ0FyYml0cmF0b3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9tYWMvU2hhcmVkUm91dGluZ0FyYml0cmF0b3IubW0KaW5kZXggZGQ5NDVlYzgwN2U2NzNk
MDFmMjdjMTJhMjUxNjcwOTU4ODM1Yjg5My4uZjIyMTg2NWM0ZjE3YjBiZDFhZWRlM2JhYzg0ODg5
MDE5OTkzNjI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5tbQpAQCAtNTUsNyArNTUsNyBAQCB2
b2lkIFNoYXJlZFJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbkZvclRv
a2VuKGNvbnN0IFRva2VuJiB0b2tlbgogICAgIEFTU0VSVCghaXNJblJvdXRpbmdBcmJpdHJhdGlv
bkZvclRva2VuKHRva2VuKSk7CiAKICAgICBpZiAobV9zZXR1cEFyYml0cmF0aW9uT25nb2luZykg
ewotICAgICAgICBtX2VucXVldWVkQ2FsbGJhY2tzLmFwcGVuZChbdGhpcywgd2Vha1Rva2VuID0g
bWFrZVdlYWtQdHIodG9rZW4pLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoUm91dGlu
Z0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIERlZmF1bHRSb3V0ZUNoYW5nZWQgcm91dGVDaGFuZ2Vk
KSBtdXRhYmxlIHsKKyAgICAgICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5hcHBlbmQoW3RoaXMsIHdl
YWtUb2tlbiA9IFdlYWtQdHIgeyB0b2tlbiB9LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XSAoUm91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIERlZmF1bHRSb3V0ZUNoYW5nZWQgcm91
dGVDaGFuZ2VkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChlcnJvciA9PSBSb3V0aW5nQXJi
aXRyYXRpb25FcnJvcjo6Tm9uZSAmJiB3ZWFrVG9rZW4pCiAgICAgICAgICAgICAgICAgbV90b2tl
bnMuYWRkKCp3ZWFrVG9rZW4pOwogCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgU2hhcmVkUm91dGlu
Z0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4oY29uc3QgVG9rZW4m
IHRva2VuCiAgICAgfQogCiAgICAgbV9zZXR1cEFyYml0cmF0aW9uT25nb2luZyA9IHRydWU7Ci0g
ICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5hcHBlbmQoW3RoaXMsIHdlYWtUb2tlbiA9IG1ha2VXZWFr
UHRyKHRva2VuKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFJvdXRpbmdBcmJpdHJh
dGlvbkVycm9yIGVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkIHJvdXRlQ2hhbmdlZCkgbXV0YWJs
ZSB7CisgICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5hcHBlbmQoW3RoaXMsIHdlYWtUb2tlbiA9IFdl
YWtQdHIgeyB0b2tlbiB9LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoUm91dGluZ0Fy
Yml0cmF0aW9uRXJyb3IgZXJyb3IsIERlZmF1bHRSb3V0ZUNoYW5nZWQgcm91dGVDaGFuZ2VkKSBt
dXRhYmxlIHsKICAgICAgICAgaWYgKGVycm9yID09IFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpO
b25lICYmIHdlYWtUb2tlbikKICAgICAgICAgICAgIG1fdG9rZW5zLmFkZCgqd2Vha1Rva2VuKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RN
UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJv
eHkuY3BwCmluZGV4IDc0M2M2NWQyYmMzMWU2NjcxNTFjNzZmZTIyODRiYjBmZWYyMDA4ODkuLmZj
N2EzMWEyYTE2OTQ3MjE3MTExNjc5NmJlOTQzNmMwNjMxYTU2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKQEAgLTM5OCw3
ICszOTgsNyBAQCB2b2lkIENETUluc3RhbmNlUHJveHk6OnVucmVmQWxsS2V5c0Zyb20oY29uc3Qg
S2V5U3RvcmUmIGtleVN0b3JlKQogfQogCiBDRE1JbnN0YW5jZVNlc3Npb25Qcm94eTo6Q0RNSW5z
dGFuY2VTZXNzaW9uUHJveHkoQ0RNSW5zdGFuY2VQcm94eSYgaW5zdGFuY2UpCi0gICAgOiBtX2lu
c3RhbmNlKG1ha2VXZWFrUHRyKGluc3RhbmNlKSkKKyAgICA6IG1faW5zdGFuY2UoaW5zdGFuY2Up
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1l
ZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vu
Y3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcAppbmRleCBlZTU0YjAyYWQ3MTZk
ZTk5OTZmM2U0MGM4YTVkOTM1ZjY4M2M3ZDgxLi5kZDM0NTdiZmRlOGM5MjE4NzdkZDdiOTgyZTk5
MjFmY2MwZmVkMmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0
ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwCkBAIC00ODUsNyAr
NDg1LDcgQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleTo6dXBkYXRlTGljZW5zZShj
b25zdCBTdHJpbmcmIHNlc3Npb25JZCwgTGljZW5zZVQKICAgICBhdXRvIGRpc3BhdGNoQ2FsbGJh
Y2sgPQogICAgICAgICBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgJmNhbGxiYWNrXShi
b29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0aW9uYWw8S2V5U3RhdHVzVmVjdG9yPiYmIGNo
YW5nZWRLZXlzLCBTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBjYWxsT25N
YWluVGhyZWFkKAotICAgICAgICAgICAgICAgIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp3ZWFr
VGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHNlc3Npb25XYXNDbG9zZWQsIGNo
YW5nZWRLZXlzID0gV1RGTW92ZShjaGFuZ2VkS2V5cyksIHN1Y2NlZWRlZF0gKCkgbXV0YWJsZSB7
CisgICAgICAgICAgICAgICAgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp3ZWFrVGhpcyB9LCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBzZXNzaW9uV2FzQ2xvc2VkLCBjaGFuZ2VkS2V5cyA9
IFdURk1vdmUoY2hhbmdlZEtleXMpLCBzdWNjZWVkZWRdICgpIG11dGFibGUgewogICAgICAgICAg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwogCkBAIC01NjgsNyArNTY4LDcgQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleTo6
cmVtb3ZlU2Vzc2lvbkRhdGEoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIExpY2UKICAgICBhdXRv
IGRpc3BhdGNoQ2FsbGJhY2sgPQogICAgICAgICBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fSwgJmNhbGxiYWNrXShLZXlTdGF0dXNWZWN0b3ImJiBrZXlTdGF0dXNWZWN0b3IsIHN0ZDo6b3B0
aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYgbWVzc2FnZSwgU3VjY2Vzc1ZhbHVlIHN1Y2Nlc3Mp
IHsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoCi0gICAgICAgICAgICAgICAgW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKndlYWtUaGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KSwga2V5U3RhdHVzVmVjdG9yID0gV1RGTW92ZShrZXlTdGF0dXNWZWN0b3IpLCBtZXNzYWdlID0g
V1RGTW92ZShtZXNzYWdlKSwgc3VjY2Vzc10oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBb
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKndlYWtUaGlzIH0sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayksIGtleVN0YXR1c1ZlY3RvciA9IFdURk1vdmUoa2V5U3RhdHVzVmVjdG9yKSwgbWVzc2Fn
ZSA9IFdURk1vdmUobWVzc2FnZSksIHN1Y2Nlc3NdKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAg
ICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJp
dmF0ZS5oCmluZGV4IGM1MjI3ZTVjNzA0NDE5Nzc4ZDViMjhhNjkxMWEwNDljZTc5NGI0YjYuLjFk
ZTk4YTdmYmVjOTFlZmEwMzY0NDkwYjdiZjMxNzQwYjhhNzMwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaApAQCAtNDAs
NyArNDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJh
Y2tQcml2YXRlKTsKICAgICB9CiAKLSAgICB2b2lkIHNldENsaWVudChBdWRpb1RyYWNrUHJpdmF0
ZUNsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50ID0gbWFrZVdlYWtQdHIoY2xpZW50KTsgfQorICAg
IHZvaWQgc2V0Q2xpZW50KEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50JiBjbGllbnQpIHsgbV9jbGll
bnQgPSBjbGllbnQ7IH0KICAgICB2b2lkIGNsZWFyQ2xpZW50KCkgeyBtX2NsaWVudCA9IG51bGxw
dHI7IH0KICAgICBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9jbGllbnQuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oCmluZGV4IGY3
Y2ZmN2Q1Y2MzNGI4NTk1ZWQ1ZWY3YTVhMTljM2UwZmJiMDg3YzEuLjE5ZmJmMTE0MDA2MTZjYzU2
YWRmZDgzZDNjMjUyZTFiMzU5MThhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgKQEAgLTQyLDcgKzQy
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkluYmFuZFRleHRUcmFja1ByaXZhdGUoKSA9IGRl
ZmF1bHQ7CiAKICAgICBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBz
ZXRDbGllbnQoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50
ID0gbWFrZVdlYWtQdHIoY2xpZW50KTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9
CiAgICAgdm9pZCBjbGVhckNsaWVudCgpIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CiAKICAgICBl
bnVtIGNsYXNzIE1vZGUgOiB1aW50OF90IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCmluZGV4IDA5ZmNlOGI4NWRkZDQ2MDk0
MWI0OWY3MGE5ODRkNjRkZWQ2ODAyZjUuLjA1NDBjYWI0ZjU3NzQwNDA3ZDY5OGVkOTUzZTk5MjE3
YWViZjM5ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Zp
ZGVvVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VmlkZW9UcmFja1ByaXZhdGUuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2Ugewog
cHVibGljOgotICAgIHZvaWQgc2V0Q2xpZW50KFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50JiBjbGll
bnQpIHsgbV9jbGllbnQgPSBtYWtlV2Vha1B0cihjbGllbnQpOyB9CisgICAgdm9pZCBzZXRDbGll
bnQoVmlkZW9UcmFja1ByaXZhdGVDbGllbnQmIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsg
fQogICAgIHZvaWQgY2xlYXJDbGllbnQoKSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQogICAgIFZp
ZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2NsaWVudC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggMzc4NmM3MTE1NDMyMWU0ZWI5ZWY3YmEwMTE4MDE5
ZGEyYjYwOTI3Mi4uYzliNGY0MGVmODVjYmM4NWVjNTEwNjgzYjgxNWRiZWI2N2RmNmY4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJbmJhbmRNZXRh
ZGF0YVRleHRUcmFja1ByaXZhdGVBVkY7CiBjbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
OwogCi0vLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9yIHRoZSBXZWFrUHRyRmFjdG9yeSBz
aW5jZSB3ZSBjYWxsIG1ha2VXZWFrUHRyKCkgZnJvbSBhbm90aGVyIHRocmVhZC4KKy8vIFVzZSBl
YWdlciBpbml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQdHJGYWN0b3J5IHNpbmNlIHdlIGNvbnN0
cnVjdCBXZWFrUHRycyBvbiBhbm90aGVyIHRocmVhZC4KIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24sIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiwgcHVibGlj
IE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIEFWRkluYmFuZFRyYWNrUGFyZW50
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmluZGV4IGE0NjFj
ZDE3OTM3ODMwYTRkNDlhZGQ0MDE4YjFkODg2YzQxNzVmMGMuLjg4ZmYyNzVhNDgyYzgzNDA2OTIz
Yzk0ODljZWM4YTc0YzY1Y2E5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmgKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKIH07CiAKIGlubGluZSBT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihDbGllbnQm
IGNsaWVudCkKLSAgICA6IG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkpCisgICAgOiBtX2Ns
aWVudChjbGllbnQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJU
YXJnZXRQaWNrZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tCmlu
ZGV4IGE4MGI2OTAzNTg0ZTFhNzVlNmU0MzdhMDJiODljZGUyZjk4MzQ1NGQuLjk0NWM3ZDE2MDNj
ODZlNzU3Y2RkZGQwY2M1MjIzZTY0YTcwMjI0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNv
bnRyb2xsZXJUYXJnZXRQaWNrZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdl
dFBpY2tlci5tbQpAQCAtNTksNyArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEFWT3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OkFWT3V0cHV0RGV2aWNlTWVudUNv
bnRyb2xsZXJUYXJnZXRQaWNrZXIoQVZQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xpZW50JiBjbGll
bnQpCiAgICAgOiBBVlBsYXliYWNrVGFyZ2V0UGlja2VyKGNsaWVudCkKLSAgICAsIG1fb3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQVZPdXRwdXREZXZpY2VN
ZW51Q29udHJvbGxlckhlbHBlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazptYWtlV2Vha1B0cigq
dGhpcyldKSkKKyAgICAsIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZShhZG9w
dE5TKFtbV2ViQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlciBhbGxvY10gaW5pdFdp
dGhDYWxsYmFjazoqdGhpc10pKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlBsYXliYWNrVGFyZ2V0UGlja2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VlBsYXliYWNrVGFyZ2V0UGlja2VyLmgKaW5kZXggMTY5NDdkMjRhYzYzNDVhMTAwOWMyYTZlNDMx
MmRjMmE5OTZiMGEyOS4uMDdmYWYyYzcxMDg0MTAzYWMzZjQ3OTI5YWFlNmY4ZTk1MjRmYWVhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQVZQbGF5YmFja1RhcmdldFBpY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUGxheWJhY2tUYXJnZXRQaWNrZXIuaApA
QCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIGV4cGxpY2l0IEFWUGxheWJh
Y2tUYXJnZXRQaWNrZXIoQ2xpZW50JiBjbGllbnQpCi0gICAgICAgIDogbV9jbGllbnQobWFrZVdl
YWtQdHIoJmNsaWVudCkpCisgICAgICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgIHsKICAgICB9
CiAgICAgdmlydHVhbCB+QVZQbGF5YmFja1RhcmdldFBpY2tlcigpID0gZGVmYXVsdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNr
ZXIubW0KaW5kZXggMjliZWIwYzRjYzIwZWIxYjgxNWE1YzJhZGVlMjM2NjQ5OGE5NGQxOS4uZGI4
ODI1MTFiMWFkZWI2MWY3MTk5ZWI5MjU0Yjg4MzIyZTg5YTRlZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tl
clZpZXdUYXJnZXRQaWNrZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0KQEAg
LTcyLDcgKzcyLDcgQEAgYm9vbCBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6aXNBdmFp
bGFibGUoKQogCiBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6QVZSb3V0ZVBpY2tlclZp
ZXdUYXJnZXRQaWNrZXIoQVZQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xpZW50JiBjbGllbnQpCiAg
ICAgOiBBVlBsYXliYWNrVGFyZ2V0UGlja2VyKGNsaWVudCkKLSAgICAsIG1fcm91dGVQaWNrZXJW
aWV3RGVsZWdhdGUoYWRvcHROUyhbW1dlYkFWUm91dGVQaWNrZXJWaWV3SGVscGVyIGFsbG9jXSBp
bml0V2l0aENhbGxiYWNrOm1ha2VXZWFrUHRyKCp0aGlzKV0pKQorICAgICwgbV9yb3V0ZVBpY2tl
clZpZXdEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXIgYWxsb2Nd
IGluaXRXaXRoQ2FsbGJhY2s6KnRoaXNdKSkKIHsKICAgICBBU1NFUlQoaXNBdmFpbGFibGUoKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNl
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCmluZGV4IDY5NTNjOWYxZjFiNTg3MWRhNWY4ZDQ2
NWRlZWZkY2ViMDlmNWU0ZmEuLmU5ZjJhYTMzNWRiOWFjNTgzOTUxNWQ2MjVhMGRmMmZmNDA3M2U5
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3Rh
bmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCkBAIC00MjAsNyArNDIwLDcgQEAgdm9pZCBD
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2V0U3RvcmFnZURpcmVjdG9yeShj
b25zdCBTdHJpbmcmIHN0b3IKIFJlZlB0cjxDRE1JbnN0YW5jZVNlc3Npb24+IENETUluc3RhbmNl
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKCkKIHsKICAgICBhdXRvIHNl
c3Npb24gPSBhZG9wdFJlZigqbmV3IENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQygqdGhpcykpOwotICAgIG1fc2Vzc2lvbnMuYXBwZW5kKG1ha2VXZWFrUHRyKHNlc3Np
b24uZ2V0KCkpKTsKKyAgICBtX3Nlc3Npb25zLmFwcGVuZChzZXNzaW9uKTsKICAgICByZXR1cm4g
c2Vzc2lvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9u
QVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBmN2M4NjZjNjJjZGIwNWI1M2FlYzc4OGUzMjk5MjZl
MDBkMDlhY2FjLi5kYWRjZGZjNTU1NmVmODgwODkyMmU5ODkzOTFmNzE4N2MxNDlmNjE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2Jq
Qy5tbQpAQCAtNDQsNyArNDQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDRE1TZXNzaW9u
QVZGb3VuZGF0aW9uT2JqQzo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQyogcGFyZW50LCBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50KiBj
bGllbnQpCi0gICAgOiBtX3BhcmVudChtYWtlV2Vha1B0cigqcGFyZW50KSkKKyAgICA6IG1fcGFy
ZW50KCpwYXJlbnQpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3Nlc3Npb25JZChj
cmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tCmluZGV4IDY5OWFmOTBi
ZGUzOGI1YWRmMDg1NjkzNjFlOGYyOWY0NTcyMTJhMDguLjUyNTQ3YjU5YzE5ZmE4N2JhNDJiNjUz
NDI1NTc5YjRkMzA2MDliNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tCkBAIC02NCw3ICs2NCw3IEBAIC0gKGlk
KWluaXRXaXRoUGFyZW50OihMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciopcGFyZW50CiAg
ICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAg
ICBfcGFyZW50ID0gbWFrZVdlYWtQdHIocGFyZW50KTsKKyAgICBfcGFyZW50ID0gcGFyZW50Owog
CiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAwYTZkZmQw
ODQxYTMwNTkwOGQ5ZWJkYjAyYzJjODdhYzcwMTI0YzcwLi5mNzYyZTljZjc1NjBhNTM0NWQwMTRl
Nzc2NWU4YTY4ZWY4ZTU5MzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTQ1MCw4ICs0
NTAsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNsZWFyTWVk
aWFDYWNoZUZvck9yaWdpbnMoY29uc3QgU3RyaW5nJgogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXll
ciogcGxheWVyKQogICAgIDogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uKHBsYXllcikK
ICAgICAsIG1fdmlkZW9MYXllck1hbmFnZXIobWFrZVVuaXF1ZTxWaWRlb0xheWVyTWFuYWdlck9i
akM+KGxvZ2dlcigpLCBsb2dJZGVudGlmaWVyKCkpKQotICAgICwgbV9vYmpjT2JzZXJ2ZXIoYWRv
cHROUyhbW1dlYkNvcmVBVkZNb3ZpZU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aFBsYXllcjptYWtl
V2Vha1B0cigqdGhpcyldKSkKLSAgICAsIG1fbG9hZGVyRGVsZWdhdGUoYWRvcHROUyhbW1dlYkNv
cmVBVkZMb2FkZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhQbGF5ZXI6bWFrZVdlYWtQdHIoKnRo
aXMpXSkpCisgICAgLCBtX29iamNPYnNlcnZlcihhZG9wdE5TKFtbV2ViQ29yZUFWRk1vdmllT2Jz
ZXJ2ZXIgYWxsb2NdIGluaXRXaXRoUGxheWVyOip0aGlzXSkpCisgICAgLCBtX2xvYWRlckRlbGVn
YXRlKGFkb3B0TlMoW1tXZWJDb3JlQVZGTG9hZGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoUGxh
eWVyOip0aGlzXSkpCiAgICAgLCBtX2NhY2hlZEl0ZW1TdGF0dXMoTWVkaWFQbGF5ZXJBVlBsYXll
ckl0ZW1TdGF0dXNEb2VzTm90RXhpc3QpCiB7CiAgICAgbV9tdXRlZCA9IHBsYXllci0+bXV0ZWQo
KTsKQEAgLTI0NjgsNyArMjQ2OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgbV92aWRlb091dHB1dERlbGVnYXRlID0gYWRvcHROUyhbW1dlYkNvcmVBVkZQdWxsRGVsZWdh
dGUgYWxsb2NdIGluaXRXaXRoUGxheWVyOm1ha2VXZWFrUHRyKCp0aGlzKV0pOworICAgIG1fdmlk
ZW9PdXRwdXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJDb3JlQVZGUHVsbERlbGVnYXRlIGFsbG9j
XSBpbml0V2l0aFBsYXllcjoqdGhpc10pOwogICAgIFttX3ZpZGVvT3V0cHV0IHNldERlbGVnYXRl
Om1fdmlkZW9PdXRwdXREZWxlZ2F0ZS5nZXQoKSBxdWV1ZTpnbG9iYWxQdWxsRGVsZWdhdGVRdWV1
ZSgpXTsKIAogICAgIFttX2F2UGxheWVySXRlbSBhZGRPdXRwdXQ6bV92aWRlb091dHB1dC5nZXQo
KV07CkBAIC0yNjU1LDcgKzI2NTUsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lv
bj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlU2VzcwogICAgIGlm
ICgha2V5U3lzdGVtSXNTdXBwb3J0ZWQoa2V5U3lzdGVtKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgYXV0byBzZXNzaW9uID0gbWFrZVVuaXF1ZTxDRE1TZXNzaW9uQVZGb3VuZGF0aW9u
T2JqQz4odGhpcywgY2xpZW50KTsKLSAgICBtX3Nlc3Npb24gPSBtYWtlV2Vha1B0cigqc2Vzc2lv
bik7CisgICAgbV9zZXNzaW9uID0gKnNlc3Npb247CiAgICAgcmV0dXJuIFdURk1vdmUoc2Vzc2lv
bik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA1OWIyODM4MjMwMjk1OTRk
MTYzODgzMGI5NjdiN2ZlN2I3MzBiODAxLi4zNmYwMTNiYWU3ZjgyZjgwZjFmYjYzZGFhMGQ1ZDVk
MjdiYWRjOWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0xMjAsNyArMTIwLDcg
QEAgdm9pZCBFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpzdG9wKENNVGltZWJhc2VSZWYg
dGltZWJhc2UpCiB9CiAKIEVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OkVmZmVjdGl2ZVJh
dGVDaGFuZ2VkTGlzdGVuZXIoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDJiBj
bGllbnQsIENNVGltZWJhc2VSZWYgdGltZWJhc2UpCi0gICAgOiBtX2NsaWVudChtYWtlV2Vha1B0
cihjbGllbnQpKQorICAgIDogbV9jbGllbnQoY2xpZW50KQogewogICAgIENNTm90aWZpY2F0aW9u
Q2VudGVyUmVmIG5jID0gUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENl
bnRlcigpOwogICAgIFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihuYywgdGhp
cywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIFBBTDo6a0NNVGltZWJh
c2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlLCAwKTsKQEAgLTEx
MTAsNyArMTExMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpzZXRDRE1TZXNzaW9uKExlZ2FjeUNETVNlc3Npb24qIHNlc3NpCiAKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwogCi0gICAgbV9zZXNzaW9uID0gbWFrZVdlYWtQdHIodG9DRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDKHNlc3Npb24pKTsKKyAgICBtX3Nlc3Npb24gPSB0b0NETVNl
c3Npb25NZWRpYVNvdXJjZUFWRk9iakMoc2Vzc2lvbik7CiAKICNpZiBIQVZFKEFWU1RSRUFNU0VT
U0lPTikKICAgICBpZiAoQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbiogY2RtU3RyZWFtU2Vzc2lv
biA9IHRvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbihtX3Nlc3Npb24uZ2V0KCkpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0KaW5k
ZXggNzk2MWI0MTA1YjU5YjI2OWFiNTVhODU1NzJlYzE1OTg1ZWU4YjM5Yi4uOTI3ZDEzMDMxMWU4
ZWVjOGIwMjE1NmFjNjMyODBhOWJmOWQwODA4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tCkBAIC01NCw3ICs1NCw3IEBAIFJl
ZjxNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDPiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpj
cmVhdGUoTWVkaWFQbGF5ZXJQcml2CiB9CiAKIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6Ok1l
ZGlhU291cmNlUHJpdmF0ZUFWRk9iakMoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDJiBwYXJlbnQsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCogY2xpZW50KQotICAgIDogbV9w
bGF5ZXIobWFrZVdlYWtQdHIocGFyZW50KSkKKyAgICA6IG1fcGxheWVyKHBhcmVudCkKICAgICAs
IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1faXNFbmRlZChmYWxzZSkKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMubW0KaW5kZXggMTE0NjczMjU0YjZjMjI4ZjViZmJiOTVjNzM2YWE0NTAz
MjIwNTU4ZC4uM2EyODY3YTFhYzI0M2JiOWM5M2M5ZDZiNzBjYTU2YjAyOTQ4ZmM5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW0KQEAgLTMwNCw3ICszMDQsNyBAQCBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjcmVhdGUoTWVkaWFTb3VyY2VQcgogCiBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3Vy
Y2VQcml2YXRlQVZGT2JqQyogcGFyZW50LCBSZWY8U291cmNlQnVmZmVyUGFyc2VyPiYmIHBhcnNl
cikKICAgICA6IG1fcGFyc2VyKFdURk1vdmUocGFyc2VyKSkKLSAgICAsIG1fZXJyb3JMaXN0ZW5l
cihhZG9wdE5TKFtbV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0
aFBhcmVudDptYWtlV2Vha1B0cigqdGhpcyldKSkKKyAgICAsIG1fZXJyb3JMaXN0ZW5lcihhZG9w
dE5TKFtbV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBhcmVu
dDoqdGhpc10pKQogICAgICwgbV9hcHBlbmRRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMgZGF0YSBwYXJzZXIgcXVldWUiKSkKICAgICAsIG1fbWVkaWFT
b3VyY2UocGFyZW50KQogICAgICwgbV9tYXBJRChuZXh0TWFwSUQoKSkKQEAgLTMyMiw3ICszMjIs
NyBAQCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQwogICAgIG1fcGFyc2VyLT5zZXRMb2dnZXIobV9s
b2dnZXIuZ2V0KCksIG1fbG9nSWRlbnRpZmllcik7CiAjZW5kaWYKIAotICAgIHNvdXJjZUJ1ZmZl
ck1hcCgpLmFkZChtX21hcElELCBtYWtlV2Vha1B0cigqdGhpcykpOworICAgIHNvdXJjZUJ1ZmZl
ck1hcCgpLmFkZChtX21hcElELCAqdGhpcyk7CiB9CiAKIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjp+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQpAQCAtODc2LDcgKzg3Niw3IEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldENETVNlc3Npb24oQ0RNU2Vzc2lvbk1l
ZGlhU291cmNlQVZGT2JqQyogc2VzCiAgICAgaWYgKG1fc2Vzc2lvbikKICAgICAgICAgbV9zZXNz
aW9uLT5yZW1vdmVTb3VyY2VCdWZmZXIodGhpcyk7CiAKLSAgICBtX3Nlc3Npb24gPSBtYWtlV2Vh
a1B0cihzZXNzaW9uKTsKKyAgICBtX3Nlc3Npb24gPSBzZXNzaW9uOwogCiAgICAgaWYgKG1fc2Vz
c2lvbikgewogICAgICAgICBtX3Nlc3Npb24tPmFkZFNvdXJjZUJ1ZmZlcih0aGlzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQppbmRl
eCAwNWM4ODQ3YjI1NTczM2QyYzVkYzU1MjI3ODkyMWRmZWEzNWIwNDhmLi44ZTkwMTBkYzg2MDZh
YTAwNjZiMmY3YmRmYWE2M2E2YzMxNWIwODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2Fk
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCkBAIC0xNzMsNyArMTczLDcgQEAgV2Vh
a1B0cjxQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXI+IFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxv
YWRlcjo6Y3JlYXRlKFdlYkNvcmUKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byog
cmVzb3VyY2VQb2ludGVyID0gcmVzb3VyY2UuZ2V0KCk7CiAgICAgYXV0byBjbGllbnQgPSBhZG9w
dFJlZigqbmV3IFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlciB7IHBhcmVudCwgcmVzb3VyY2Uu
cmVsZWFzZU5vbk51bGwoKSB9KTsKLSAgICBhdXRvIHJlc3VsdCA9IG1ha2VXZWFrUHRyKGNsaWVu
dC5nZXQoKSk7CisgICAgV2Vha1B0ciByZXN1bHQgPSBjbGllbnQ7CiAKICAgICByZXNvdXJjZVBv
aW50ZXItPnNldENsaWVudChXVEZNb3ZlKGNsaWVudCkpOwogICAgIHJldHVybiByZXN1bHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1h
Z2VEZWNvZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCmluZGV4IGZiMzFjM2QxMTQ3YjI1
MDE0NjBmNDliNjdkNjBjNzYzYmZlMDIwZGQuLjlhZDE5Yjg3NmIyN2U2MGQ0ZmJhNTAzMGU2NWY4
MWU3Y2E4YTUwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCkBA
IC0zMTMsNyArMzEzLDcgQEAgdm9pZCBJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rl
cjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogewogICAgIEFTU0VSVCgmbV9y
dW5Mb29wID09ICZSdW5Mb29wOjpjdXJyZW50KCkpOwogCi0gICAgYXV0byBzY29wZUV4aXQgPSBt
YWtlU2NvcGVFeGl0KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKKyAgICBh
dXRvIHNjb3BlRXhpdCA9IG1ha2VTY29wZUV4aXQoW3Byb3RlY3RlZFRoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfV0gewogICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcm90ZWN0ZWRUaGlzLT5tX21lc3NhZ2VMb2Nr
IH07CkBAIC0zODIsNyArMzgyLDcgQEAgdm9pZCBJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVy
RGVjb2Rlcjo6cHJlcGFyZVBpcGVsaW5lKCkKICAgICAgICAgICAgIGRlY29kZXIuaGFuZGxlTWVz
c2FnZShtZXNzYWdlKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBHUmVmUHRyPEdzdE1l
c3NhZ2U+IHByb3RlY3RlZE1lc3NhZ2UobWVzc2FnZSk7Ci0gICAgICAgICAgICBhdXRvIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIoZGVjb2Rlcik7CisgICAgICAgICAgICBXZWFrUHRyIHdlYWtUaGlz
IHsgZGVjb2RlciB9OwogICAgICAgICAgICAgZGVjb2Rlci5tX3J1bkxvb3AuZGlzcGF0Y2goW3dl
YWtUaGlzLCBwcm90ZWN0ZWRNZXNzYWdlXSB7CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlz
KQogICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+aGFuZGxlTWVzc2FnZShwcm90ZWN0ZWRN
ZXNzYWdlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKaW5kZXggYThkZTY5OGIwZjlmMWQ4OWE3YWFmNmEzODgyZTIxNjA3MWVmMzJhMS4u
OTdjNGNhYTcwZGEzMTgxNTg1ZjVhY2E5ZWFiODFjZDVmYzUxYTQ2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTEwNjUsNyArMTA2NSw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlRyYWNr
KCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gdHJhY2sgPSBUcmFj
a1ByaXZhdGVUeXBlOjpjcmVhdGUobWFrZVdlYWtQdHIoKnRoaXMpLCBpLCBXVEZNb3ZlKHBhZCkp
OworICAgICAgICBhdXRvIHRyYWNrID0gVHJhY2tQcml2YXRlVHlwZTo6Y3JlYXRlKCp0aGlzLCBp
LCBXVEZNb3ZlKHBhZCkpOwogICAgICAgICBpZiAoIXRyYWNrLT50cmFja0luZGV4KCkgJiYgKHR5
cGUgPT0gVHJhY2tUeXBlOjpBdWRpbyB8fCB0eXBlID09IFRyYWNrVHlwZTo6VmlkZW8pKQogICAg
ICAgICAgICAgdHJhY2stPnNldEFjdGl2ZSh0cnVlKTsKICAgICAgICAgQVNTRVJUKHN0cmVhbUlk
ID09IHRyYWNrLT5pZCgpKTsKQEAgLTE0NDgsNyArMTQ0OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjp1cGRhdGVUcmFja3MoY29uc3QgR1JlZlB0cjxHc3RTdHJlYW1Db2xs
ZWN0aW9uCiAgICAgdW5zaWduZWQgdGV4dFRyYWNrSW5kZXggPSAwOwogCiAjZGVmaW5lIENSRUFU
RV9UUkFDSyh0eXBlLCBUeXBlKSBHX1NUTVRfU1RBUlQgeyAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICAgICAgUmVmUHRyPFR5cGUjI1RyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gdHJhY2sgPSBUeXBl
IyNUcmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShtYWtlV2Vha1B0cigqdGhpcyksIHR5cGUj
I1RyYWNrSW5kZXgsIFdURk1vdmUoc3RyZWFtKSk7IFwKKyAgICAgICAgUmVmUHRyPFR5cGUjI1Ry
YWNrUHJpdmF0ZUdTdHJlYW1lcj4gdHJhY2sgPSBUeXBlIyNUcmFja1ByaXZhdGVHU3RyZWFtZXI6
OmNyZWF0ZSgqdGhpcywgdHlwZSMjVHJhY2tJbmRleCwgV1RGTW92ZShzdHJlYW0pKTsgXAogICAg
ICAgICBhdXRvIHRyYWNrSWQgPSB0cmFjay0+aWQoKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCiAgICAgICAgIGlmICghdHlwZSMjVHJhY2tJbmRleCkgeyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIG1fd2FudGVkIyNUeXBlIyNTdHJl
YW1JZCA9IHRyYWNrSWQ7ICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTUyOCw3ICsxNTI4LDcg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVN0cmVhbUNvbGxlY3Rp
b25NZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3MKICAgICB9CiAjZW5kaWYKIAotICAgIGF1dG8gY2Fs
bGJhY2sgPSBbcGxheWVyID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjb2xsZWN0aW9uID0gV1RGTW92
ZShjb2xsZWN0aW9uKV0geworICAgIGF1dG8gY2FsbGJhY2sgPSBbcGxheWVyID0gV2Vha1B0ciB7
ICp0aGlzIH0sIGNvbGxlY3Rpb24gPSBXVEZNb3ZlKGNvbGxlY3Rpb24pXSB7CiAgICAgICAgIGlm
IChwbGF5ZXIpCiAgICAgICAgICAgICBwbGF5ZXItPnVwZGF0ZVRyYWNrcyhjb2xsZWN0aW9uKTsK
ICAgICB9OwpAQCAtMjcyOCw3ICsyNzI4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oY29uc3QgVVJMJiB1cmwpCiAgICAgQVNTRVJUKHRleHRD
b21iaW5lcik7CiAgICAgZ19vYmplY3Rfc2V0KG1fcGlwZWxpbmUuZ2V0KCksICJ0ZXh0LXN0cmVh
bS1jb21iaW5lciIsIHRleHRDb21iaW5lciwgbnVsbHB0cik7CiAKLSAgICBtX3RleHRTaW5rID0g
d2Via2l0VGV4dFNpbmtOZXcobWFrZVdlYWtQdHIoKnRoaXMpKTsKKyAgICBtX3RleHRTaW5rID0g
d2Via2l0VGV4dFNpbmtOZXcoKnRoaXMpOwogICAgIEFTU0VSVChtX3RleHRTaW5rKTsKIAogICAg
IGdfb2JqZWN0X3NldChtX3BpcGVsaW5lLmdldCgpLCAidGV4dC1zaW5rIiwgbV90ZXh0U2luay5n
ZXQoKSwgbnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmgKaW5kZXggMzQyZTkyMTUzY2VkMmNhY2EwMTAzNDBhMWNmOTdlNjBiOTY1NmJjZC4uYzRi
M2ExMWQ3ZGQxYjBiMWUzZmQzZDhhNjljMDBlMzM1ODk1NGRhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTA3LDcgKzEwNyw3IEBAIGNsYXNz
IFZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyOwogCiB2b2lkIHJlZ2lzdGVyV2ViS2l0R1N0cmVh
bWVyRWxlbWVudHMoKTsKIAotLy8gVXNlIGVhZ2VyIGluaXRpYWxpemF0aW9uIGZvciB0aGUgV2Vh
a1B0ckZhY3Rvcnkgc2luY2Ugd2UgY2FsbCBtYWtlV2Vha1B0cigpIGZyb20gYW5vdGhlciB0aHJl
YWQuCisvLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9yIHRoZSBXZWFrUHRyRmFjdG9yeSBz
aW5jZSB3ZSBjb25zdHJ1Y3QgV2Vha1B0cnMgb24gYW5vdGhlciB0aHJlYWQuCiBjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlCiAgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4KICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCmluZGV4IDllODc1NDE4NDhhZGU2
Nzc0M2MxMDhkOWYwMGMwNTVkNDEwYjcwYWEuLjg0MWQ4Yjk0NDQ5OTFkMTZiMTI5NmZkNmQ1NjEw
YzhhODhkZTAxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcApAQCAtMjg4LDcgKzI4OCw3
IEBAIENETUluc3RhbmNlU2Vzc2lvblRodW5kZXI6OkNETUluc3RhbmNlU2Vzc2lvblRodW5kZXIo
Q0RNSW5zdGFuY2VUaHVuZGVyJiBpbnN0YW5jCiAgICAgICAgIGNvbnN0IHVpbnQxNl90IGNoYWxs
ZW5nZUxlbmd0aCkgewogICAgICAgICBHU1RfREVCVUcoIkdvdCAnY2hhbGxlbmdlJyBPQ0RNIG5v
dGlmaWNhdGlvbiB3aXRoIGxlbmd0aCAlaHUiLCBjaGFsbGVuZ2VMZW5ndGgpOwogICAgICAgICBB
U1NFUlQoY2hhbGxlbmdlTGVuZ3RoID4gMCk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Nl
c3Npb24gPSBtYWtlV2Vha1B0cihzdGF0aWNfY2FzdDxDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVy
Kj4odXNlckRhdGEpKSwgYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoY2hh
bGxlbmdlLAorICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtzZXNzaW9uID0gV2Vha1B0ciB7IHN0
YXRpY19jYXN0PENETUluc3RhbmNlU2Vzc2lvblRodW5kZXIqPih1c2VyRGF0YSkgfSwgYnVmZmVy
ID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoY2hhbGxlbmdlLAogICAgICAgICAgICAg
Y2hhbGxlbmdlTGVuZ3RoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghc2Vzc2lvbikK
ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0yOTksNyArMjk5LDcgQEAgQ0RNSW5zdGFuY2VT
ZXNzaW9uVGh1bmRlcjo6Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcihDRE1JbnN0YW5jZVRodW5k
ZXImIGluc3RhbmMKICAgICAgICAgR1NUX0RFQlVHKCJHb3QgJ2tleSB1cGRhdGVkJyBPQ0RNIG5v
dGlmaWNhdGlvbiIpOwogICAgICAgICBLZXlJRFR5cGUga2V5SUQ7CiAgICAgICAgIGtleUlELmFw
cGVuZChrZXlJRERhdGEsIGtleUlETGVuZ3RoKTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
c2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PENETUluc3RhbmNlU2Vzc2lvblRodW5k
ZXIqPih1c2VyRGF0YSkpLCBrZXlJRCA9IFdURk1vdmUoa2V5SUQpXSgpIG11dGFibGUgeworICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFtzZXNzaW9uID0gV2Vha1B0ciB7IHN0YXRpY19jYXN0PENE
TUluc3RhbmNlU2Vzc2lvblRodW5kZXIqPih1c2VyRGF0YSkgfSwga2V5SUQgPSBXVEZNb3ZlKGtl
eUlEKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghc2Vzc2lvbikKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICBzZXNzaW9uLT5rZXlVcGRhdGVkQ2FsbGJhY2soV1RG
TW92ZShrZXlJRCkpOwpAQCAtMzA3LDcgKzMwNyw3IEBAIENETUluc3RhbmNlU2Vzc2lvblRodW5k
ZXI6OkNETUluc3RhbmNlU2Vzc2lvblRodW5kZXIoQ0RNSW5zdGFuY2VUaHVuZGVyJiBpbnN0YW5j
CiAgICAgfTsKICAgICBtX3RodW5kZXJTZXNzaW9uQ2FsbGJhY2tzLmtleXNfdXBkYXRlZF9jYWxs
YmFjayA9IFtdKGNvbnN0IE9wZW5DRE1TZXNzaW9uKiwgdm9pZCogdXNlckRhdGEpIHsKICAgICAg
ICAgR1NUX0RFQlVHKCJHb3QgJ2FsbCBrZXlzIHVwZGF0ZWQnIE9DRE0gbm90aWZpY2F0aW9uIik7
Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Nlc3Npb24gPSBtYWtlV2Vha1B0cihzdGF0aWNf
Y2FzdDxDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyKj4odXNlckRhdGEpKV0oKSB7CisgICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoW3Nlc3Npb24gPSBXZWFrUHRyIHsgc3RhdGljX2Nhc3Q8Q0RNSW5z
dGFuY2VTZXNzaW9uVGh1bmRlcio+KHVzZXJEYXRhKSB9XSgpIHsKICAgICAgICAgICAgIGlmICgh
c2Vzc2lvbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBzZXNzaW9uLT5r
ZXlzVXBkYXRlRG9uZUNhbGxiYWNrKCk7CkBAIC0zMTUsNyArMzE1LDcgQEAgQ0RNSW5zdGFuY2VT
ZXNzaW9uVGh1bmRlcjo6Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcihDRE1JbnN0YW5jZVRodW5k
ZXImIGluc3RhbmMKICAgICB9OwogICAgIG1fdGh1bmRlclNlc3Npb25DYWxsYmFja3MuZXJyb3Jf
bWVzc2FnZV9jYWxsYmFjayA9IFtdKE9wZW5DRE1TZXNzaW9uKiwgdm9pZCogdXNlckRhdGEsIGNv
bnN0IGNoYXIgbWVzc2FnZVtdKSB7CiAgICAgICAgIEdTVF9FUlJPUigiR290ICdlcnJvcicgT0NE
TSBub3RpZmljYXRpb246ICVzIiwgbWVzc2FnZSk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W3Nlc3Npb24gPSBtYWtlV2Vha1B0cihzdGF0aWNfY2FzdDxDRE1JbnN0YW5jZVNlc3Npb25UaHVu
ZGVyKj4odXNlckRhdGEpKSwgYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUo
bWVzc2FnZSwKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbc2Vzc2lvbiA9IFdlYWtQdHIgeyBz
dGF0aWNfY2FzdDxDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyKj4odXNlckRhdGEpIH0sIGJ1ZmZl
ciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG1lc3NhZ2UsCiAgICAgICAgICAgICBz
dHJsZW4obWVzc2FnZSkpXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCFzZXNzaW9uKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRv
ckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCmluZGV4
IDM2MWE3NzFlOWM3MDhkNDljYmVhMzk1MjhjZjQyNDIwMjI4NDdlMTkuLmM4NGZkZjA5MGRkZDY5
NGRiYTU1MmE1NzU4OTU2MWMwNmYyZmRiZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5
cHRvckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNw
cApAQCAtNDMyLDcgKzQzMiw3IEBAIGJvb2wgd2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVj
cnlwdElzRmx1c2hpbmcoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjCiBXZWFrUHRyPFdl
YkNvcmU6OkNETVByb3h5RGVjcnlwdGlvbkNsaWVudD4gd2ViS2l0TWVkaWFDb21tb25FbmNyeXB0
aW9uRGVjcnlwdEdldENETVByb3h5RGVjcnlwdGlvbkNsaWVudChXZWJLaXRNZWRpYUNvbW1vbkVu
Y3J5cHRpb25EZWNyeXB0KiBzZWxmKQogewogICAgIFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlv
bkRlY3J5cHRQcml2YXRlKiBwcml2ID0gV0VCS0lUX01FRElBX0NFTkNfREVDUllQVF9HRVRfUFJJ
VkFURShzZWxmKTsKLSAgICByZXR1cm4gbWFrZVdlYWtQdHIoKnByaXYtPmNkbVByb3h5RGVjcnlw
dGlvbkNsaWVudEltcGxlbWVudGF0aW9uKTsKKyAgICByZXR1cm4gKnByaXYtPmNkbVByb3h5RGVj
cnlwdGlvbkNsaWVudEltcGxlbWVudGF0aW9uOwogfQogCiBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VS
ZXR1cm4gY2hhbmdlU3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwgR3N0U3RhdGVDaGFuZ2UgdHJh
bnNpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXggNWI4OTY0MTRj
M2FlZDMzMWJlOWUwNTJkOGQwMTAzZTAwYjU4NWJiYS4uZDNiN2UxODIyNWVmNzgyYzVmZWRjMWIx
NTZjNDI3MTMxMzI5MDhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKQEAg
LTc4OCwxMyArNzg4LDEzIEBAIFJlZjxXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlPiBBcHBlbmRQ
aXBlbGluZTo6bWFrZVdlYktpdFRyYWNrKGludCB0cmFja0luZGV4KQogICAgIEdSZWZQdHI8R3N0
UGFkPiBwYWQoYXBwZW5kUGlwZWxpbmVUcmFjay5hcHBzaW5rUGFkKTsKICAgICBzd2l0Y2ggKGFw
cGVuZFBpcGVsaW5lVHJhY2suc3RyZWFtVHlwZSkgewogICAgIGNhc2UgU3RyZWFtVHlwZTo6QXVk
aW86IHsKLSAgICAgICAgYXV0byBzcGVjaWZpY1RyYWNrID0gQXVkaW9UcmFja1ByaXZhdGVHU3Ry
ZWFtZXI6OmNyZWF0ZShtYWtlV2Vha1B0cihtX3BsYXllclByaXZhdGUpLCB0cmFja0luZGV4LCBX
VEZNb3ZlKHBhZCksIGZhbHNlKTsKKyAgICAgICAgYXV0byBzcGVjaWZpY1RyYWNrID0gQXVkaW9U
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShtX3BsYXllclByaXZhdGUsIHRyYWNrSW5kZXgs
IFdURk1vdmUocGFkKSwgZmFsc2UpOwogICAgICAgICBnc3RyZWFtZXJUcmFjayA9IHNwZWNpZmlj
VHJhY2sucHRyKCk7CiAgICAgICAgIHRyYWNrID0gc3RhdGljX2Nhc3Q8VHJhY2tQcml2YXRlQmFz
ZSo+KHNwZWNpZmljVHJhY2sucHRyKCkpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2Fz
ZSBTdHJlYW1UeXBlOjpWaWRlbzogewotICAgICAgICBhdXRvIHNwZWNpZmljVHJhY2sgPSBWaWRl
b1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1ha2VXZWFrUHRyKG1fcGxheWVyUHJpdmF0
ZSksIHRyYWNrSW5kZXgsIFdURk1vdmUocGFkKSwgZmFsc2UpOworICAgICAgICBhdXRvIHNwZWNp
ZmljVHJhY2sgPSBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1fcGxheWVyUHJp
dmF0ZSwgdHJhY2tJbmRleCwgV1RGTW92ZShwYWQpLCBmYWxzZSk7CiAgICAgICAgIGdzdHJlYW1l
clRyYWNrID0gc3BlY2lmaWNUcmFjay5wdHIoKTsKICAgICAgICAgdHJhY2sgPSBzdGF0aWNfY2Fz
dDxUcmFja1ByaXZhdGVCYXNlKj4oc3BlY2lmaWNUcmFjay5wdHIoKSk7CiAgICAgICAgIGJyZWFr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCBiMDBiMWM4ZWJlNGZlYTkxNWRiOTc1
YThhOGZlZmQ3N2VkNmI5ZGJhLi4xNzY4ZGI0YzQ2M2U0MmMxYzZiYTBhNGIxYTE1NjcyYTNjMDdi
YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtNTU4LDggKzU1OCw4IEBAIHZv
aWQgVGV4dHVyZU1hcHBlckxheWVyOjpyZW1vdmVBbGxDaGlsZHJlbigpCiB2b2lkIFRleHR1cmVN
YXBwZXJMYXllcjo6c2V0TWFza0xheWVyKFRleHR1cmVNYXBwZXJMYXllciogbWFza0xheWVyKQog
ewogICAgIGlmIChtYXNrTGF5ZXIpIHsKLSAgICAgICAgbWFza0xheWVyLT5tX2VmZmVjdFRhcmdl
dCA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKLSAgICAgICAgbV9zdGF0ZS5tYXNrTGF5ZXIgPSBtYWtl
V2Vha1B0cigqbWFza0xheWVyKTsKKyAgICAgICAgbWFza0xheWVyLT5tX2VmZmVjdFRhcmdldCA9
ICp0aGlzOworICAgICAgICBtX3N0YXRlLm1hc2tMYXllciA9ICptYXNrTGF5ZXI7CiAgICAgfSBl
bHNlCiAgICAgICAgIG1fc3RhdGUubWFza0xheWVyID0gbnVsbHB0cjsKIH0KQEAgLTU2OCw4ICs1
NjgsOCBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0UmVwbGljYUxheWVyKFRleHR1cmVN
YXBwZXJMYXllciogcmVwbGljYUxheWVyKQogewogICAgIGlmIChyZXBsaWNhTGF5ZXIpIHsKICAg
ICAgICAgcmVwbGljYUxheWVyLT5tX2lzUmVwbGljYSA9IHRydWU7Ci0gICAgICAgIHJlcGxpY2FM
YXllci0+bV9lZmZlY3RUYXJnZXQgPSBtYWtlV2Vha1B0cigqdGhpcyk7Ci0gICAgICAgIG1fc3Rh
dGUucmVwbGljYUxheWVyID0gbWFrZVdlYWtQdHIoKnJlcGxpY2FMYXllcik7CisgICAgICAgIHJl
cGxpY2FMYXllci0+bV9lZmZlY3RUYXJnZXQgPSAqdGhpczsKKyAgICAgICAgbV9zdGF0ZS5yZXBs
aWNhTGF5ZXIgPSAqcmVwbGljYUxheWVyOwogICAgIH0gZWxzZQogICAgICAgICBtX3N0YXRlLnJl
cGxpY2FMYXllciA9IG51bGxwdHI7CiB9CkBAIC01NzgsOCArNTc4LDggQEAgdm9pZCBUZXh0dXJl
TWFwcGVyTGF5ZXI6OnNldEJhY2tkcm9wTGF5ZXIoVGV4dHVyZU1hcHBlckxheWVyKiBiYWNrZHJv
cExheWVyKQogewogICAgIGlmIChiYWNrZHJvcExheWVyKSB7CiAgICAgICAgIGJhY2tkcm9wTGF5
ZXItPm1faXNCYWNrZHJvcCA9IHRydWU7Ci0gICAgICAgIGJhY2tkcm9wTGF5ZXItPm1fZWZmZWN0
VGFyZ2V0ID0gbWFrZVdlYWtQdHIoKnRoaXMpOwotICAgICAgICBtX3N0YXRlLmJhY2tkcm9wTGF5
ZXIgPSBtYWtlV2Vha1B0cigqYmFja2Ryb3BMYXllcik7CisgICAgICAgIGJhY2tkcm9wTGF5ZXIt
Pm1fZWZmZWN0VGFyZ2V0ID0gKnRoaXM7CisgICAgICAgIG1fc3RhdGUuYmFja2Ryb3BMYXllciA9
ICpiYWNrZHJvcExheWVyOwogICAgIH0gZWxzZQogICAgICAgICBtX3N0YXRlLmJhY2tkcm9wTGF5
ZXIgPSBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uLmNwcAppbmRleCA1ZDEzNGMwOWM0ZmM5ZjNiN2I4ZjE0YTJlNjJlNjZmNmM5NzJkYWI0
Li4zYmE5M2EwM2FiYmE2MjBjM2ZiYmU1NzdkYTU5M2Q2ODhmZTVlNDQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApAQCAtNTcsNyArNTcsNyBA
QCBzdGF0aWMgY29uc3QgZG91YmxlIHRlbk1lZ2FoZXJ0eiA9IDEwMDAwMDAwOwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbihNZWRpYVBsYXllciogcGxheWVyKSAKLSAgICA6IG1f
d2Vha1RoaXMobWFrZVdlYWtQdHIodGhpcykpCisgICAgOiBtX3dlYWtUaGlzKHRoaXMpCiAgICAg
LCBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX3Zpc2libGUoZmFsc2UpCiAgICAgLCBtX2xvYWRp
bmdQcm9ncmVzcyhmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9QcmV2aWV3Q29udmVydGVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1By
ZXZpZXdDb252ZXJ0ZXJJT1MubW0KaW5kZXggMmZjZDBmY2IzODlhMDBiMmY0YmFlYWU2M2Y5MmU4
ZmUzNDdlNjliYy4uNTQ0NjUzYzQ0MDNkMjYwNDBhNTVkMjNlOTM2OTFiZmVkY2M5MmI0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ByZXZpZXdDb252ZXJ0ZXJJT1Mu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ByZXZpZXdDb252ZXJ0ZXJJT1Mu
bW0KQEAgLTUwLDcgKzUwLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRGVsZWdhdGU6KFdl
YkNvcmU6OlByZXZpZXdQbGF0Zm9ybURlbGVnYXRlJilkZWxlZ2F0ZQogICAgIGlmICghKHNlbGYg
PSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX2RlbGVnYXRlID0g
bWFrZVdlYWtQdHIoZGVsZWdhdGUpOworICAgIF9kZWxlZ2F0ZSA9IGRlbGVnYXRlOwogICAgIHJl
dHVybiBzZWxmOwogfQogCkBAIC04NCw3ICs4NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFBy
ZXZpZXdDb252ZXJ0ZXI6OlByZXZpZXdDb252ZXJ0ZXIoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIFByZXZpZXdDb252ZXJ0ZXJQcm92aWRlciYgcHJvdmlkZXIpCiAgICAgOiBtX3By
ZXZpZXdEYXRhIHsgU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSB9CiAgICAgLCBtX29yaWdpbmFsUmVz
cG9uc2UgeyByZXNwb25zZSB9Ci0gICAgLCBtX3Byb3ZpZGVyIHsgbWFrZVdlYWtQdHIocHJvdmlk
ZXIpIH0KKyAgICAsIG1fcHJvdmlkZXIgeyBwcm92aWRlciB9CiAgICAgLCBtX3BsYXRmb3JtRGVs
ZWdhdGUgeyBhZG9wdE5TKFtbV2ViUHJldmlld0NvbnZlcnRlckRlbGVnYXRlIGFsbG9jXSBpbml0
V2l0aERlbGVnYXRlOip0aGlzXSkgfQogICAgICwgbV9wbGF0Zm9ybUNvbnZlcnRlciB7IGFkb3B0
TlMoW1BBTDo6YWxsb2NRTFByZXZpZXdDb252ZXJ0ZXJJbnN0YW5jZSgpIGluaXRXaXRoQ29ubmVj
dGlvbjpuaWwgZGVsZWdhdGU6bV9wbGF0Zm9ybURlbGVnYXRlLmdldCgpIHJlc3BvbnNlOm1fb3Jp
Z2luYWxSZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkgb3B0aW9uczpuaWxdKSB9CiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQubW0KaW5kZXggYWE1MjE3ZjhhM2FkNDIzOGViNzM3ZDM3YTExZmIxNzFkZGU5
NTc2MC4uMDJlY2Y4MDNjN2UzOTVjZTRkMTdjNWNjZDY0YzkyYmUyZjlhMmIxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5tbQpAQCAtMTExLDcgKzExMSw3IEBAIC0gKFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0KilmdWxsc2NyZWVuSW50ZXJmYWNlCiAtICh2b2lkKXNldEZ1bGxzY3JlZW5J
bnRlcmZhY2U6KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KilmdWxsc2NyZWVuSW50ZXJm
YWNlCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBfZnVsbHNjcmVlbkludGVy
ZmFjZSA9IG1ha2VXZWFrUHRyKCpmdWxsc2NyZWVuSW50ZXJmYWNlKTsKKyAgICBfZnVsbHNjcmVl
bkludGVyZmFjZSA9ICpmdWxsc2NyZWVuSW50ZXJmYWNlOwogfQogCiAtICh2b2lkKXBsYXllclZp
ZXdDb250cm9sbGVyV2lsbFN0YXJ0UGljdHVyZUluUGljdHVyZTooQVZQbGF5ZXJWaWV3Q29udHJv
bGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0KaW5kZXggNTc2OWU5YTUzZjQyZmNhMmQ0
YjE4MTA0NDZkMmY4MGY1NjRmZjc1Ni4uZGIwYTgyNGYzYjRiZmZkODc0ZDNiMzAwNzJhYTQwMmI3
MmU4YzI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVN
b3Rpb25NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbQpAQCAtMjE5LDcgKzIxOSw3IEBAIC0gKHZvaWQpc2VuZEFjY2VsZXJv
bWV0ZXJEYXRhOihDTUFjY2VsZXJvbWV0ZXJEYXRhICopbmV3QWNjZWxlcmF0aW9uCiAgICAgICAg
IFZlY3RvcjxXZWFrUHRyPFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBtb3Rpb25DbGll
bnRzOwogICAgICAgICBtb3Rpb25DbGllbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9kZXZp
Y2VNb3Rpb25DbGllbnRzLmNvbXB1dGVTaXplKCkpOwogICAgICAgICBmb3IgKGF1dG8mIGNsaWVu
dCA6IG1fZGV2aWNlTW90aW9uQ2xpZW50cykKLSAgICAgICAgICAgIG1vdGlvbkNsaWVudHMudW5j
aGVja2VkQXBwZW5kKG1ha2VXZWFrUHRyKCZjbGllbnQpKTsKKyAgICAgICAgICAgIG1vdGlvbkNs
aWVudHMudW5jaGVja2VkQXBwZW5kKGNsaWVudCk7CiAKICAgICAgICAgZm9yIChhdXRvJiBjbGll
bnQgOiBtb3Rpb25DbGllbnRzKSB7CiAgICAgICAgICAgICBpZiAoY2xpZW50KQpAQCAtMjQ0LDcg
KzI0NCw3IEBAIC0gKHZvaWQpc2VuZE1vdGlvbkRhdGE6KENNRGV2aWNlTW90aW9uICopbmV3TW90
aW9uIHdpdGhIZWFkaW5nOihDTEhlYWRpbmcgKiluZXdICiAgICAgICAgIFZlY3RvcjxXZWFrUHRy
PFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBtb3Rpb25DbGllbnRzOwogICAgICAgICBt
b3Rpb25DbGllbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9kZXZpY2VNb3Rpb25DbGllbnRz
LmNvbXB1dGVTaXplKCkpOwogICAgICAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fZGV2aWNlTW90
aW9uQ2xpZW50cykKLSAgICAgICAgICAgIG1vdGlvbkNsaWVudHMudW5jaGVja2VkQXBwZW5kKG1h
a2VXZWFrUHRyKCZjbGllbnQpKTsKKyAgICAgICAgICAgIG1vdGlvbkNsaWVudHMudW5jaGVja2Vk
QXBwZW5kKGNsaWVudCk7CiAgICAgICAgIAogICAgICAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1v
dGlvbkNsaWVudHMpIHsKICAgICAgICAgICAgIGlmIChjbGllbnQpCkBAIC0yNTYsNyArMjU2LDcg
QEAgLSAodm9pZClzZW5kTW90aW9uRGF0YTooQ01EZXZpY2VNb3Rpb24gKiluZXdNb3Rpb24gd2l0
aEhlYWRpbmc6KENMSGVhZGluZyAqKW5ld0gKICAgICAgICAgVmVjdG9yPFdlYWtQdHI8V2ViQ29y
ZTo6TW90aW9uTWFuYWdlckNsaWVudD4+IG9yaWVudGF0aW9uQ2xpZW50czsKICAgICAgICAgb3Jp
ZW50YXRpb25DbGllbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9kZXZpY2VPcmllbnRhdGlv
bkNsaWVudHMuY29tcHV0ZVNpemUoKSk7CiAgICAgICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9k
ZXZpY2VPcmllbnRhdGlvbkNsaWVudHMpCi0gICAgICAgICAgICBvcmllbnRhdGlvbkNsaWVudHMu
dW5jaGVja2VkQXBwZW5kKG1ha2VXZWFrUHRyKCZjbGllbnQpKTsKKyAgICAgICAgICAgIG9yaWVu
dGF0aW9uQ2xpZW50cy51bmNoZWNrZWRBcHBlbmQoY2xpZW50KTsKICAgICAgICAgCiAgICAgICAg
IC8vIENvbXBvc2UgdGhlIHJhdyBtb3Rpb24gZGF0YSB0byBhbiBpbnRlcm1lZGlhdGUgWlhZLWJh
c2VkIDN4MyByb3RhdGlvbgogICAgICAgICAvLyBtYXRyaXggKFIpIHdoZXJlIFt6PWF0dGl0dWRl
LnlhdywgeD1hdHRpdHVkZS5waXRjaCwgeT1hdHRpdHVkZS5yb2xsXQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdobGlnaHQubW0KaW5kZXggMWE1
YTQyMWM0ZTc5ZmY4YjllYTk4OWIxNjE5Mjg0OTFmMWViYTIwYS4uM2YwNjk0MDQ2MDI5NGRjZmU4
YTgzMDI4ZDFmZDdkNDY2ZGE4NTM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tCkBAIC02Miw4ICs2Miw4IEBAIFJlZjxE
YXRhRGV0ZWN0b3JIaWdobGlnaHQ+IERhdGFEZXRlY3RvckhpZ2hsaWdodDo6Y3JlYXRlRm9ySW1h
Z2VPdmVybGF5KFBhZ2UmIHBhCiB9CiAKIERhdGFEZXRlY3RvckhpZ2hsaWdodDo6RGF0YURldGVj
dG9ySGlnaGxpZ2h0KFBhZ2UmIHBhZ2UsIERhdGFEZXRlY3RvckhpZ2hsaWdodENsaWVudCYgY2xp
ZW50LCBUeXBlIHR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4mJiBkZEhpZ2hsaWdodCwg
U2ltcGxlUmFuZ2UmJiByYW5nZSkKLSAgICA6IG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkp
Ci0gICAgLCBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCisgICAgOiBtX2NsaWVudChjbGllbnQp
CisgICAgLCBtX3BhZ2UocGFnZSkKICAgICAsIG1fcmFuZ2UoV1RGTW92ZShyYW5nZSkpCiAgICAg
LCBtX2dyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHBhZ2UuY2hyb21lKCkuY2xp
ZW50KCkuZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpKQogICAgICwgbV90eXBlKHR5cGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vz
c2lvbkludGVyZmFjZU1hYy5tbQppbmRleCAwYmEyYzkyMjlhZDlhNDRiOWUwZTA1OTU2OTQ4OTA1
MGFiZTkzYzVjLi4wMjRkMGY2NmY1Y2U4ODJmMjAxNDcyN2QxMGY1NDNiZmNmNDk1MTBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VNYWMubW0KQEAgLTUyLDcgKzUyLDcgQEAgUmVmPFBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZU1hYz4gUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjOjpjcmVhdGUoUGxheWJhY2tT
ZXMKIH0KIAogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjOjpQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VNYWMoUGxheWJhY2tTZXNzaW9uTW9kZWwmIG1vZGVsKQotICAgIDogbV9wbGF5YmFja1Nl
c3Npb25Nb2RlbChtYWtlV2Vha1B0cihtb2RlbCkpCisgICAgOiBtX3BsYXliYWNrU2Vzc2lvbk1v
ZGVsKG1vZGVsKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQppbmRleCAyNDc1YzM1YjhmMzRh
ODE2NTdhOGUxOTAwYzQ4MTkyOTM2ZmJhMGI2Li42ZDYwYjMxNzEyNzgzYjI1NDY5YmY5MThiZjU4
YWUzZWQ5MDQ0NmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KQEAgLTM5NSwxNCArMzk1LDE0IEBA
IHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bChWaWRlb0Z1bGxzY3JlZW5Nb2RlbCoKIHsKICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2Rl
bCkKICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsK
LSAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsID0gbWFrZVdlYWtQdHIobW9kZWwpOworICAgIG1f
dmlkZW9GdWxsc2NyZWVuTW9kZWwgPSBtb2RlbDsKICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5N
b2RlbCkKICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+YWRkQ2xpZW50KCp0aGlzKTsK
IH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnNldFZpZGVvRnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyKFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKiBvYnNlcnZlcikK
IHsKLSAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlciA9IG1ha2VXZWFrUHRyKG9ic2VydmVy
KTsKKyAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlciA9IG9ic2VydmVyOwogfQogCiB2b2lk
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51
bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCA5NWRhYzQxNjc4N2Zh
ZjM3MjQ2ZTQ5YTc1NjFjNmQ4MmIwNjIwNWZiLi44YzFmN2MwZTUzMTNiNmI4NTZjZDNjZGY1ZTgz
ODRmMzZiN2I1M2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tCkBAIC0xMDMsNyArMTAzLDcgQEAgUmVmUHRyPE1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGJvb2wg
aGFzQXUKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y29tcHJlc3NlZFZpZGVv
T3V0cHV0QnVmZmVyQ2FsbGJhY2sodm9pZCAqbWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIsIENN
QnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4pCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1dy
aXRlciA9IG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Kj4obWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIpKV0geworICAgIGNhbGxPbk1haW5UaHJlYWQo
W3dlYWtXcml0ZXIgPSBXZWFrUHRyIHsgc3RhdGljX2Nhc3Q8TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXIqPihtZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcikgfV0gewogICAgICAgICBpZiAod2Vh
a1dyaXRlcikKICAgICAgICAgICAgIHdlYWtXcml0ZXItPnByb2Nlc3NOZXdDb21wcmVzc2VkVmlk
ZW9TYW1wbGVCdWZmZXJzKCk7CiAgICAgfSk7CkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y29tcHJlc3NlZFZpZGVvT3V0cHV0QnVmZmVyQ2FsbGJh
Y2sodm9pZCAqbWVkaWEKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y29tcHJl
c3NlZEF1ZGlvT3V0cHV0QnVmZmVyQ2FsbGJhY2sodm9pZCAqbWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXIsIENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4pCiB7Ci0gICAgY2FsbE9uTWFpblRocmVh
ZChbd2Vha1dyaXRlciA9IG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyKj4obWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIpKV0geworICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3dlYWtXcml0ZXIgPSBXZWFrUHRyIHsgc3RhdGljX2Nhc3Q8TWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXIqPihtZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcikgfV0gewogICAgICAg
ICBpZiAod2Vha1dyaXRlcikKICAgICAgICAgICAgIHdlYWtXcml0ZXItPnByb2Nlc3NOZXdDb21w
cmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJzKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW0uY3BwCmluZGV4IGFkNjA0MmM4YmMzNDZiNTE1NTZiZGQ1ZmY4ZDllNTM1
ZWU2ODlhYWIuLjE2MjQ5ODA5NTEyMmY0ZjRiMDUyMDVlNzFmYjdjYzViOTBlNGJmOTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4gQXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbTo6Y3JlCiAgICAgYXV0byYgdHJhY2sgPSBzdHJlYW0ubV9zdHJlYW1U
cmFjay5nZXQoKTsKICAgICByZW5kZXJlci0+c2V0TG9nZ2VyKHRyYWNrLmxvZ2dlcigpLCB0cmFj
ay5sb2dJZGVudGlmaWVyKCkpOwogI2VuZGlmCi0gICAgcmVuZGVyZXItPnNldENyYXNoQ2FsbGJh
Y2soW3N0cmVhbSA9IG1ha2VXZWFrUHRyKHN0cmVhbSldIHsKKyAgICByZW5kZXJlci0+c2V0Q3Jh
c2hDYWxsYmFjayhbc3RyZWFtID0gV2Vha1B0ciB7IHN0cmVhbSB9XSB7CiAgICAgICAgIGlmIChz
dHJlYW0pCiAgICAgICAgICAgICBzdHJlYW0tPmNyZWF0ZU5ld1JlbmRlcmVyKCk7CiAgICAgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDRFRNRlNlbmRlckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEVE1GU2VuZGVyQmFja2VuZC5oCmluZGV4
IDAzYmUxMDU2ZGZhM2U3M2NlNTk1ZjE3M2IwMjYyMWEyYzJjZDgzMmQuLjUwYzhjNmUzOTU0N2Fh
YjRlMjIxYWJjZmY4ZjA2ODk3MWFhZjlmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEVE1GU2VuZGVyQmFja2VuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENEVE1GU2VuZGVyQmFja2VuZC5oCkBAIC0zOSw3ICszOSw3IEBAIEFMTE9XX1VOVVNFRF9Q
QVJBTUVURVJTX0VORAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIFVzZSBlYWdlciBpbml0
aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQdHJGYWN0b3J5IHNpbmNlIHdlIGNhbGwgbWFrZVdlYWtQ
dHIoKSBmcm9tIGFub3RoZXIgdGhyZWFkLgorLy8gVXNlIGVhZ2VyIGluaXRpYWxpemF0aW9uIGZv
ciB0aGUgV2Vha1B0ckZhY3Rvcnkgc2luY2Ugd2UgY29uc3RydWN0IFdlYWtQdHJzIG9uIGFub3Ro
ZXIgdGhyZWFkLgogY2xhc3MgTGliV2ViUlRDRFRNRlNlbmRlckJhY2tlbmQgZmluYWwgOiBwdWJs
aWMgUlRDRFRNRlNlbmRlckJhY2tlbmQsIHByaXZhdGUgd2VicnRjOjpEdG1mU2VuZGVyT2JzZXJ2
ZXJJbnRlcmZhY2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxMaWJXZWJSVENEVE1GU2VuZGVyQmFj
a2VuZCwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+IHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRl
ckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRp
YVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmNwcAppbmRleCA4MzE3MzBjMDU2
ZDc2OWZmNTdjZWMxMzAyODIzNWVhY2RjNzg4M2UzLi5hNTA1NmM4ZTZiZTEzNTk4N2EwOGVhMjYz
ZDBmOWZkMjQwNjdjZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFt
VHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EuY3BwCkBAIC0zOCw3ICszOCw3IEBAIFJlZjxN
ZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hPiBNZWRpYVN0cmVhbVRyYWNr
QXVkaW9Tb3VyY2VQcm92aWRlCiB9CiAKIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3Zp
ZGVyQ29jb2E6Ok1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmIHNvdXJjZSkKLSAgICA6IG1fY2FwdHVyZVNvdXJjZShtYWtlV2Vh
a1B0cihzb3VyY2UpKQorICAgIDogbV9jYXB0dXJlU291cmNlKHNvdXJjZSkKICAgICAsIG1fc291
cmNlKHNvdXJjZS5zb3VyY2UoKSkKIHsKICNpZiBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Db29raWVTdG9yYWdlT2JzZXJ2
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ29va2llU3RvcmFn
ZU9ic2VydmVyLmgKaW5kZXggMWJmMGM2MDViYmE3MGUxYmUzZGViYzI1MTliNGI0YTI0ODBjMTgz
Yy4uYzIyZDkzNzAzYmU0YTZjYTAxYWIzZDIyNDhmYjczZjlhMmQwZGNmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Db29raWVTdG9yYWdlT2JzZXJ2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL0Nvb2tpZVN0
b3JhZ2VPYnNlcnZlci5oCkBAIC0zNSw3ICszNSw3IEBAIE9CSkNfQ0xBU1MgV2ViQ29va2llT2Jz
ZXJ2ZXJBZGFwdGVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIFVzZSBlYWdlciBpbml0
aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQdHJGYWN0b3J5IHNpbmNlIHdlIGNhbGwgbWFrZVdlYWtQ
dHIoKSBmcm9tIGEgbm9uLW1haW4gdGhyZWFkLgorLy8gVXNlIGVhZ2VyIGluaXRpYWxpemF0aW9u
IGZvciB0aGUgV2Vha1B0ckZhY3Rvcnkgc2luY2Ugd2UgY29uc3RydWN0IFdlYWtQdHJzIG9uIGEg
bm9uLW1haW4gdGhyZWFkLgogY2xhc3MgV0VCQ09SRV9FWFBPUlQgQ29va2llU3RvcmFnZU9ic2Vy
dmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPENvb2tpZVN0b3JhZ2VPYnNlcnZlciwgV2Vha1B0
ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb29raWVTdG9yYWdlT2JzZXJ2ZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJl
c3BvbnNlR2VuZXJhdG9yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tCmluZGV4IDdhNzlkZTA5M2IwNTE0MTcwZDAzNDg5
M2UxMjNiOTAzN2ExYWE1ZTYuLjJlYzZmZDRhNGFiODljZTA4Y2Q0MDc0ODBlYjhiMzFmMGU5YzBj
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFu
Z2VSZXNwb25zZUdlbmVyYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW0KQEAgLTExMyw3ICsxMTMsNyBAQCB2
b2lkIFJhbmdlUmVzcG9uc2VHZW5lcmF0b3I6OmdpdmVSZXNwb25zZVRvVGFza0lmQnl0ZXNJblJh
bmdlUmVjZWl2ZWQoV2ViQ29yZU5TVQogICAgIGlmICghdGFza0RhdGEpCiAgICAgICAgIHJldHVy
bjsKICAgICAKLSAgICBhdXRvIGdpdmVCeXRlc1RvVGFzayA9IFt0YXNrID0gcmV0YWluUHRyKHRh
c2spLCBidWZmZXIsIHRhc2tEYXRhID0gbWFrZVdlYWtQdHIoKnRhc2tEYXRhKSwgZ2VuZXJhdG9y
ID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgYXV0byBnaXZlQnl0ZXNUb1Rhc2sgPSBbdGFz
ayA9IHJldGFpblB0cih0YXNrKSwgYnVmZmVyLCB0YXNrRGF0YSA9IFdlYWtQdHIgeyAqdGFza0Rh
dGEgfSwgZ2VuZXJhdG9yID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKICAgICAgICAgaWYgKFt0YXNrIHN0YXRlXSAhPSBOU1VSTFNlc3Npb25U
YXNrU3RhdGVSdW5uaW5nKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTQ0LDcgKzE0NCw3IEBA
IHZvaWQgUmFuZ2VSZXNwb25zZUdlbmVyYXRvcjo6Z2l2ZVJlc3BvbnNlVG9UYXNrSWZCeXRlc0lu
UmFuZ2VSZWNlaXZlZChXZWJDb3JlTlNVCiAgICAgc3dpdGNoICh0YXNrRGF0YS0+cmVzcG9uc2VT
dGF0ZSkgewogICAgIGNhc2UgRGF0YTo6VGFza0RhdGE6OlJlc3BvbnNlU3RhdGU6Ok5vdFN5bnRo
ZXNpemVkWWV0OiB7CiAgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBzeW50aGVzaXplZFJlc3BvbnNl
Rm9yUmFuZ2UoZGF0YS5vcmlnaW5hbFJlc3BvbnNlLCByYW5nZSwgZXhwZWN0ZWRDb250ZW50TGVu
Z3RoKTsKLSAgICAgICAgW3Rhc2sgcmVzb3VyY2U6bnVsbHB0ciByZWNlaXZlZFJlc3BvbnNlOnJl
c3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOltnaXZlQnl0ZXNUb1Rhc2sgPSBXVEZNb3ZlKGdpdmVC
eXRlc1RvVGFzayksIHRhc2tEYXRhID0gbWFrZVdlYWtQdHIodGFza0RhdGEpLCB0YXNrID0gcmV0
YWluUHRyKHRhc2spXSAoV2ViQ29yZTo6U2hvdWxkQ29udGludWVQb2xpY3lDaGVjayBzaG91bGRD
b250aW51ZSkgeworICAgICAgICBbdGFzayByZXNvdXJjZTpudWxscHRyIHJlY2VpdmVkUmVzcG9u
c2U6cmVzcG9uc2UgY29tcGxldGlvbkhhbmRsZXI6W2dpdmVCeXRlc1RvVGFzayA9IFdURk1vdmUo
Z2l2ZUJ5dGVzVG9UYXNrKSwgdGFza0RhdGEgPSBXZWFrUHRyIHsgdGFza0RhdGEgfSwgdGFzayA9
IHJldGFpblB0cih0YXNrKV0gKFdlYkNvcmU6OlNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2sgc2hv
dWxkQ29udGludWUpIHsKICAgICAgICAgICAgIGlmICh0YXNrRGF0YSkKICAgICAgICAgICAgICAg
ICB0YXNrRGF0YS0+cmVzcG9uc2VTdGF0ZSA9IERhdGE6OlRhc2tEYXRhOjpSZXNwb25zZVN0YXRl
OjpTZXNzaW9uQ2FsbGVkQ29tcGxldGlvbkhhbmRsZXI7CiAgICAgICAgICAgICBpZiAoc2hvdWxk
Q29udGludWUgPT0gU2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6WWVzKQpAQCAtMjA2LDcgKzIw
Niw3IEBAIGJvb2wgUmFuZ2VSZXNwb25zZUdlbmVyYXRvcjo6d2lsbEhhbmRsZVJlcXVlc3QoV2Vi
Q29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrICp0YXNrCiBjbGFzcyBSYW5nZVJlc3BvbnNlR2VuZXJh
dG9yOjpNZWRpYVJlc291cmNlQ2xpZW50IDogcHVibGljIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUNs
aWVudCB7CiBwdWJsaWM6CiAgICAgTWVkaWFSZXNvdXJjZUNsaWVudChSYW5nZVJlc3BvbnNlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFVSTCYmIHVybCkKLSAgICAgICAgOiBtX2dlbmVyYXRvcihtYWtl
V2Vha1B0cihnZW5lcmF0b3IpKQorICAgICAgICA6IG1fZ2VuZXJhdG9yKGdlbmVyYXRvcikKICAg
ICAgICAgLCBtX3VybFN0cmluZyhXVEZNb3ZlKHVybCkuc3RyaW5nKCkpIHsgfQogcHJpdmF0ZToK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAppbmRleCBhMTkyZWU3ZWVmZTQ3
NTQ2ZDlmMGZiMTUyYTllMTQ1MTMwNWI0MmQ4Li40ZWE0ZmZiNDQ2YmViYjVmZmI4OThhMjVlY2Y2
ODRmZjU3OWZhZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcApAQCAt
MzEsOSArMzEsOSBAQCBSZWY8RE9NTWltZVR5cGU+IERPTU1pbWVUeXBlOjpjcmVhdGUoTmF2aWdh
dG9yJiBuYXZpZ2F0b3IsIGNvbnN0IE1pbWVDbGFzc0luZm8mCiB9CiAKIERPTU1pbWVUeXBlOjpE
T01NaW1lVHlwZShOYXZpZ2F0b3ImIG5hdmlnYXRvciwgY29uc3QgTWltZUNsYXNzSW5mbyYgaW5m
bywgRE9NUGx1Z2luJiBlbmFibGVkUGx1Z2luKQotICAgIDogbV9uYXZpZ2F0b3IobWFrZVdlYWtQ
dHIobmF2aWdhdG9yKSkKKyAgICA6IG1fbmF2aWdhdG9yKG5hdmlnYXRvcikKICAgICAsIG1faW5m
byhpbmZvKQotICAgICwgbV9lbmFibGVkUGx1Z2luKG1ha2VXZWFrUHRyKGVuYWJsZWRQbHVnaW4p
KQorICAgICwgbV9lbmFibGVkUGx1Z2luKGVuYWJsZWRQbHVnaW4pCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlQXJyYXkuY3BwCmluZGV4IDAwNjg3Zjg0NWIyMmJk
MGQ4ZGM3MTRlNTY5NGZjZDRjYWNlOWNlOWIuLmE2ZWI0Zjk5ZjM0MTZjZjg0NDYwZmMzYjAwYjRh
NmYwMjQ1NTZkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5
cGVBcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5
LmNwcApAQCAtMzUsNyArMzUsNyBAQCBSZWY8RE9NTWltZVR5cGVBcnJheT4gRE9NTWltZVR5cGVB
cnJheTo6Y3JlYXRlKE5hdmlnYXRvciYgbmF2aWdhdG9yLCBWZWN0b3I8UmVmPAogfQogCiBET01N
aW1lVHlwZUFycmF5OjpET01NaW1lVHlwZUFycmF5KE5hdmlnYXRvciYgbmF2aWdhdG9yLCBWZWN0
b3I8UmVmPERPTU1pbWVUeXBlPj4mJiB0eXBlcykKLSAgICA6IG1fbmF2aWdhdG9yKG1ha2VXZWFr
UHRyKG5hdmlnYXRvcikpCisgICAgOiBtX25hdmlnYXRvcihuYXZpZ2F0b3IpCiAgICAgLCBtX3R5
cGVzKFdURk1vdmUodHlwZXMpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9ET01QbHVnaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uY3Bw
CmluZGV4IDlmZGJjZDNmODA5NzYxMWFiMjU2YWE5MDk4MTAxMzNmZjBmYThlYmQuLjNiOGQ0ZGY5
Zjk3OTE2ZTAwYmRlZmFhOWQ2Yzk3YmM3YTA2MzhkMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvRE9NUGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RP
TVBsdWdpbi5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIFZlY3RvcjxSZWY8RE9NTWltZVR5
cGU+PiBtYWtlTWltZVR5cGVzKE5hdmlnYXRvciYgbmF2aWdhdG9yLCBjb25zdCBQbHVnaW4KIH0K
IAogRE9NUGx1Z2luOjpET01QbHVnaW4oTmF2aWdhdG9yJiBuYXZpZ2F0b3IsIGNvbnN0IFBsdWdp
bkluZm8mIGluZm8pCi0gICAgOiBtX25hdmlnYXRvcihtYWtlV2Vha1B0cihuYXZpZ2F0b3IpKQor
ICAgIDogbV9uYXZpZ2F0b3IobmF2aWdhdG9yKQogICAgICwgbV9pbmZvKGluZm8pCiAgICAgLCBt
X21pbWVUeXBlcyhtYWtlTWltZVR5cGVzKG5hdmlnYXRvciwgaW5mbywgKnRoaXMpKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcAppbmRleCAyOTZmNGNlMTNiNTgz
ODZkMWZiMjcyZjhkYmY1MmMxOTUxYmRmOWE3Li4zZThlNGQ3ZWEyYjQ5MWFkNzRhNmRlMmE0OTc4
NjdkMWUwZmNmY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdp
bkFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmNw
cApAQCAtMzYsNyArMzYsNyBAQCBSZWY8RE9NUGx1Z2luQXJyYXk+IERPTVBsdWdpbkFycmF5Ojpj
cmVhdGUoTmF2aWdhdG9yJiBuYXZpZ2F0b3IsIFZlY3RvcjxSZWY8RE9NUAogfQogCiBET01QbHVn
aW5BcnJheTo6RE9NUGx1Z2luQXJyYXkoTmF2aWdhdG9yJiBuYXZpZ2F0b3IsIFZlY3RvcjxSZWY8
RE9NUGx1Z2luPj4mJiBwdWJsaWNseVZpc2libGVQbHVnaW5zLCBWZWN0b3I8UmVmPERPTVBsdWdp
bj4+JiYgYWRkaXRpb25hbFdlYlZpc2liaWxlUGx1Z2lucykKLSAgICA6IG1fbmF2aWdhdG9yKG1h
a2VXZWFrUHRyKG5hdmlnYXRvcikpCisgICAgOiBtX25hdmlnYXRvcihuYXZpZ2F0b3IpCiAgICAg
LCBtX3B1YmxpY2x5VmlzaWJsZVBsdWdpbnMoV1RGTW92ZShwdWJsaWNseVZpc2libGVQbHVnaW5z
KSkKICAgICAsIG1fYWRkaXRpb25hbFdlYlZpc2liaWxlUGx1Z2lucyhXVEZNb3ZlKGFkZGl0aW9u
YWxXZWJWaXNpYmlsZVBsdWdpbnMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxv
YXRpbmdPYmplY3RzLmNwcAppbmRleCBmNTk2MmFiOTQ5NjFhMzE3YTE0MjAzNDgzNGZiODNlYWNl
YmZhOTk4Li5hODJjNmNkMjgwNmJmYzAxZjExNTM0YWY0NTIyMTQyZDcxODFhYjlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmNwcApAQCAtNDksNyArNDks
NyBAQCBDT01QSUxFX0FTU0VSVChzaXplb2YoV2Vha1B0cjxMZWdhY3lSb290SW5saW5lQm94Pikg
PT0gc2l6ZW9mKHZvaWQqKSwgV2Vha1B0cl9zaAogI2VuZGlmCiAKIEZsb2F0aW5nT2JqZWN0OjpG
bG9hdGluZ09iamVjdChSZW5kZXJCb3gmIHJlbmRlcmVyKQotICAgIDogbV9yZW5kZXJlcihtYWtl
V2Vha1B0cihyZW5kZXJlcikpCisgICAgOiBtX3JlbmRlcmVyKHJlbmRlcmVyKQogICAgICwgbV9w
YWludHNGbG9hdCh0cnVlKQogICAgICwgbV9pc0Rlc2NlbmRhbnQoZmFsc2UpCiAgICAgLCBtX2lz
UGxhY2VkKGZhbHNlKQpAQCAtNjYsNyArNjYsNyBAQCBGbG9hdGluZ09iamVjdDo6RmxvYXRpbmdP
YmplY3QoUmVuZGVyQm94JiByZW5kZXJlcikKIH0KIAogRmxvYXRpbmdPYmplY3Q6OkZsb2F0aW5n
T2JqZWN0KFJlbmRlckJveCYgcmVuZGVyZXIsIFR5cGUgdHlwZSwgY29uc3QgTGF5b3V0UmVjdCYg
ZnJhbWVSZWN0LCBjb25zdCBMYXlvdXRTaXplJiBtYXJnaW5PZmZzZXQsIGJvb2wgc2hvdWxkUGFp
bnQsIGJvb2wgaXNEZXNjZW5kYW50KQotICAgIDogbV9yZW5kZXJlcihtYWtlV2Vha1B0cihyZW5k
ZXJlcikpCisgICAgOiBtX3JlbmRlcmVyKHJlbmRlcmVyKQogICAgICwgbV9mcmFtZVJlY3QoZnJh
bWVSZWN0KQogICAgICwgbV9tYXJnaW5PZmZzZXQobWFyZ2luT2Zmc2V0KQogICAgICwgbV90eXBl
KHR5cGUpCkBAIC0xNTIsNyArMTUyLDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgRmxvYXRpbmdP
YmplY3RJbnRlcnZhbCBJbnRlcnZhbFR5cGU7CiAKICAgICBDb21wdXRlRmxvYXRPZmZzZXRBZGFw
dGVyKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgcmVuZGVyZXIsIExheW91dFVuaXQgbGluZVRvcCwg
TGF5b3V0VW5pdCBsaW5lQm90dG9tLCBMYXlvdXRVbml0IG9mZnNldCkKLSAgICAgICAgOiBtX3Jl
bmRlcmVyKG1ha2VXZWFrUHRyKHJlbmRlcmVyKSkKKyAgICAgICAgOiBtX3JlbmRlcmVyKHJlbmRl
cmVyKQogICAgICAgICAsIG1fbGluZVRvcChsaW5lVG9wKQogICAgICAgICAsIG1fbGluZUJvdHRv
bShsaW5lQm90dG9tKQogICAgICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKQEAgLTIxMyw3ICsyMTMs
NyBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBGbG9hdGluZ09iamVjdEludGVydmFsIEludGVydmFs
VHlwZTsKIAogICAgIEZpbmROZXh0RmxvYXRMb2dpY2FsQm90dG9tQWRhcHRlcihjb25zdCBSZW5k
ZXJCbG9ja0Zsb3cmIHJlbmRlcmVyLCBMYXlvdXRVbml0IGJlbG93TG9naWNhbEhlaWdodCkKLSAg
ICAgICAgOiBtX3JlbmRlcmVyKG1ha2VXZWFrUHRyKHJlbmRlcmVyKSkKKyAgICAgICAgOiBtX3Jl
bmRlcmVyKHJlbmRlcmVyKQogICAgICAgICAsIG1fYmVsb3dMb2dpY2FsSGVpZ2h0KGJlbG93TG9n
aWNhbEhlaWdodCkKICAgICB7CiAgICAgfQpAQCAtMjc1LDcgKzI3NSw3IEBAIExheW91dFVuaXQg
RmxvYXRpbmdPYmplY3RzOjpmaW5kTmV4dEZsb2F0TG9naWNhbEJvdHRvbUJlbG93Rm9yQmxvY2so
TGF5b3V0VW5pdCBsCiAKIEZsb2F0aW5nT2JqZWN0czo6RmxvYXRpbmdPYmplY3RzKGNvbnN0IFJl
bmRlckJsb2NrRmxvdyYgcmVuZGVyZXIpCiAgICAgOiBtX2hvcml6b250YWxXcml0aW5nTW9kZShy
ZW5kZXJlci5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQotICAgICwgbV9yZW5kZXJlcihtYWtl
V2Vha1B0cihyZW5kZXJlcikpCisgICAgLCBtX3JlbmRlcmVyKHJlbmRlcmVyKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmgKaW5kZXggZmFjZDBiMmU1
YTM3OGIyODg1YzhjYWRhNWJlYWQ1MTI5Yjc0ZDI2My4uMjBmMzA3MzkzMjcyMGZhNWViZDE5NDM4
ZjliMzA0MjA2ZWRhYTYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zs
b2F0aW5nT2JqZWN0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG9hdGluZ09i
amVjdHMuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IENhbGxlcnMg
b2YgdGhlc2UgbWV0aG9kcyBhcmUgZGFuZ2Vyb3VzIGFuZCBzaG91bGQgYmUgYWxsb3dlZCBleHBs
aWNpdGx5IG9yIHJlbW92ZWQuCiAgICAgTGVnYWN5Um9vdElubGluZUJveCogb3JpZ2luYXRpbmdM
aW5lKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5hdGluZ0xpbmUuZ2V0KCk7IH0KICAgICB2b2lk
IGNsZWFyT3JpZ2luYXRpbmdMaW5lKCkgeyBtX29yaWdpbmF0aW5nTGluZSA9IG51bGxwdHI7IH0K
LSAgICB2b2lkIHNldE9yaWdpbmF0aW5nTGluZShMZWdhY3lSb290SW5saW5lQm94JiBsaW5lKSB7
IG1fb3JpZ2luYXRpbmdMaW5lID0gbWFrZVdlYWtQdHIobGluZSk7IH0KKyAgICB2b2lkIHNldE9y
aWdpbmF0aW5nTGluZShMZWdhY3lSb290SW5saW5lQm94JiBsaW5lKSB7IG1fb3JpZ2luYXRpbmdM
aW5lID0gbGluZTsgfQogCiAgICAgTGF5b3V0U2l6ZSBsb2NhdGlvbk9mZnNldE9mQm9yZGVyQm94
KCkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3Jp
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZC5jcHAKaW5kZXggOTFkOWZiMDBi
MzgzNmIxYjU3N2ZiMWYwODU1ZmU0M2FmODEyYTVmZC4uNTYwMmQ3YzJkNGQ1YmNhOTMyNDU0NGI3
NWFkMjJjYjI2NThlZDAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dy
aWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkLmNwcApAQCAtNjgsNyAr
NjgsNyBAQCB2b2lkIEdyaWQ6Omluc2VydChSZW5kZXJCb3gmIGNoaWxkLCBjb25zdCBHcmlkQXJl
YSYgYXJlYSkKIAogICAgIGZvciAoYXV0byByb3cgOiBhcmVhLnJvd3MpIHsKICAgICAgICAgZm9y
IChhdXRvIGNvbHVtbiA6IGFyZWEuY29sdW1ucykKLSAgICAgICAgICAgIG1fZ3JpZFtyb3ddW2Nv
bHVtbl0uYXBwZW5kKG1ha2VXZWFrUHRyKGNoaWxkKSk7CisgICAgICAgICAgICBtX2dyaWRbcm93
XVtjb2x1bW5dLmFwcGVuZChjaGlsZCk7CiAgICAgfQogCiAgICAgc2V0R3JpZEl0ZW1BcmVhKGNo
aWxkLCBhcmVhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGln
aHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5oCmluZGV4
IGU0Y2JmOWJhYmY1MmE4ZDcwMmUxNjY0ZDlhZjlhZWViMGI1NTM1NzIuLmFmMTE1ZGQzMDAwODhh
YzA5NzlkMDM2MTMxOThlNTE4YTVjZDUwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9IaWdobGlnaHREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hp
Z2hsaWdodERhdGEuaApAQCAtNDMsOCArNDMsOCBAQCBjbGFzcyBSZW5kZXJSYW5nZSB7CiBwdWJs
aWM6CiAgICAgUmVuZGVyUmFuZ2UoKSA9IGRlZmF1bHQ7CiAgICAgUmVuZGVyUmFuZ2UoUmVuZGVy
T2JqZWN0KiBzdGFydCwgUmVuZGVyT2JqZWN0KiBlbmQsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1
bnNpZ25lZCBlbmRPZmZzZXQpCi0gICAgICAgIDogbV9zdGFydChtYWtlV2Vha1B0cihzdGFydCkp
Ci0gICAgICAgICwgbV9lbmQobWFrZVdlYWtQdHIoZW5kKSkKKyAgICAgICAgOiBtX3N0YXJ0KHN0
YXJ0KQorICAgICAgICAsIG1fZW5kKGVuZCkKICAgICAgICAgLCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0
T2Zmc2V0KQogICAgICAgICAsIG1fZW5kT2Zmc2V0KGVuZE9mZnNldCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5ZXJBbmNlc3RvckNsaXBwaW5nU3RhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFjay5o
CmluZGV4IGQ3MzlhZjA4MThlYmViNGY4NDU5MWExMzJkNTVmMjEyZTIxNTI1ZDkuLjI1YmNhMjdh
MTY4NjY3YmUyNDEwY2RlZTlhYmFhOWY4OTJjNDJlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFjay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9MYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFjay5oCkBAIC00MSw3ICs0
MSw3IEBAIGNsYXNzIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOwogCiBzdHJ1Y3QgQ29tcG9zaXRlZENs
aXBEYXRhIHsKICAgICBDb21wb3NpdGVkQ2xpcERhdGEoUmVuZGVyTGF5ZXIqIGxheWVyLCBMYXlv
dXRSZWN0IHJlY3QsIGJvb2wgaXNPdmVyZmxvd1Njcm9sbEVudHJ5KQotICAgICAgICA6IGNsaXBw
aW5nTGF5ZXIobWFrZVdlYWtQdHIobGF5ZXIpKQorICAgICAgICA6IGNsaXBwaW5nTGF5ZXIobGF5
ZXIpCiAgICAgICAgICwgY2xpcFJlY3QocmVjdCkKICAgICAgICAgLCBpc092ZXJmbG93U2Nyb2xs
KGlzT3ZlcmZsb3dTY3JvbGxFbnRyeSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
TGVnYWN5SW5saW5lQm94LmgKaW5kZXggM2RhN2I1ZjgwNTQ0YjQwZmJmMGMyNGEwMWM3M2UzZjQ3
MjllM2JlYi4uZjFmNTNiZmZmZGU5YzgzNzJkYWEwYWY4NzYxNThhYzY3ZmFiOTU1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZUJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVCb3guaApAQCAtMzY3LDcgKzM2Nyw3
IEBAIHByaXZhdGU6CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBMZWdhY3lJbmxpbmVCb3go
UmVuZGVyT2JqZWN0JiByZW5kZXJlcikKLSAgICAgICAgOiBtX3JlbmRlcmVyKG1ha2VXZWFrUHRy
KHJlbmRlcmVyKSkKKyAgICAgICAgOiBtX3JlbmRlcmVyKHJlbmRlcmVyKQogICAgIHsKICAgICB9
CiAKQEAgLTM3NSw3ICszNzUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIDogbV9uZXh0T25MaW5l
KG5leHQpCiAgICAgICAgICwgbV9wcmV2aW91c09uTGluZShwcmV2aW91cykKICAgICAgICAgLCBt
X3BhcmVudChwYXJlbnQpCi0gICAgICAgICwgbV9yZW5kZXJlcihtYWtlV2Vha1B0cihyZW5kZXJl
cikpCisgICAgICAgICwgbV9yZW5kZXJlcihyZW5kZXJlcikKICAgICAgICAgLCBtX2xvZ2ljYWxX
aWR0aChsb2dpY2FsV2lkdGgpCiAgICAgICAgICwgbV90b3BMZWZ0KHRvcExlZnQpCiAgICAgICAg
ICwgbV9iaXRmaWVsZHMoZmlyc3RMaW5lLCBjb25zdHJ1Y3RlZCwgZGlydHksIGV4dHJhY3RlZCwg
aXNIb3Jpem9udGFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2Fj
eVJvb3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJ
bmxpbmVCb3guY3BwCmluZGV4IDdiYjM1ZjU5YzM4MjZlYzkzNmFjZTBiYWI0ODgxNzA0Y2UwMWFl
OTcuLjcwOTgxOTMwNGVhZTQ2NmJiOWFmZjZmODVlZjU1ZTNmMjhkOGMxYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5saW5lQm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAKQEAgLTYwNyw3
ICs2MDcsNyBAQCBCaWRpU3RhdHVzIExlZ2FjeVJvb3RJbmxpbmVCb3g6OmxpbmVCcmVha0JpZGlT
dGF0dXMoKSBjb25zdAogCiB2b2lkIExlZ2FjeVJvb3RJbmxpbmVCb3g6OnNldExpbmVCcmVha0lu
Zm8oUmVuZGVyT2JqZWN0KiBvYmplY3QsIHVuc2lnbmVkIGJyZWFrUG9zaXRpb24sIGNvbnN0IEJp
ZGlTdGF0dXMmIHN0YXR1cykKIHsKLSAgICBtX2xpbmVCcmVha09iaiA9IG1ha2VXZWFrUHRyKG9i
amVjdCk7CisgICAgbV9saW5lQnJlYWtPYmogPSBvYmplY3Q7CiAgICAgbV9saW5lQnJlYWtQb3Mg
PSBicmVha1Bvc2l0aW9uOwogICAgIG1fbGluZUJyZWFrQmlkaVN0YXR1c0VvciA9IHN0YXR1cy5l
b3I7CiAgICAgbV9saW5lQnJlYWtCaWRpU3RhdHVzTGFzdFN0cm9uZyA9IHN0YXR1cy5sYXN0U3Ry
b25nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxp
bmVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5saW5lQm94LmgK
aW5kZXggOTQ5NTBiNDQ3M2RhMTA3ZGUxZmY2OTczMDIyMDdmOGI0M2Y2ZTliYy4uZWNlZTI2NGRi
NWMzMjlmNTRmZGQwOGVmMTlhYWMwNmUwODA0MzZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5oCkBAIC0xMzUsOSArMTM1LDkgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0RpcnR5KCkpOwogICAgICAgICBpZiAobV9mbG9h
dHMpCi0gICAgICAgICAgICBtX2Zsb2F0cy0+YXBwZW5kKG1ha2VXZWFrUHRyKGZsb2F0aW5nQm94
KSk7CisgICAgICAgICAgICBtX2Zsb2F0cy0+YXBwZW5kKGZsb2F0aW5nQm94KTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgbV9mbG9hdHMgPSBtYWtlVW5pcXVlPENsZWFuTGluZUZsb2F0TGlz
dD4oMSwgbWFrZVdlYWtQdHIoZmxvYXRpbmdCb3gpKTsKKyAgICAgICAgICAgIG1fZmxvYXRzID0g
bWFrZVVuaXF1ZTxDbGVhbkxpbmVGbG9hdExpc3Q+KDEsIGZsb2F0aW5nQm94KTsKICAgICB9CiAK
ICAgICB2b2lkIHJlbW92ZUZsb2F0KFJlbmRlckJveCYgZmxvYXRpbmdCb3gpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBkNGQ5ZjJjNzE5ZWJjNDlhZGRiMmJi
ZWJmZWVjNDFhZTFiY2RjZWVlLi41MTk1ZTllMWJlOTM4NGJkNmJmZjQ2YzA1Y2ExYjRjYTFkYTI2
ZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTI2OTEs
NyArMjY5MSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnNldENhY2hlZEVuY2xvc2luZ0ZyYWdtZW50
ZWRGbG93TmVlZHNVcGRhdGUoKQogUmVuZGVyRnJhZ21lbnRlZEZsb3cqIFJlbmRlckJsb2NrOjp1
cGRhdGVDYWNoZWRFbmNsb3NpbmdGcmFnbWVudGVkRmxvdyhSZW5kZXJGcmFnbWVudGVkRmxvdyog
ZnJhZ21lbnRlZEZsb3cpIGNvbnN0CiB7CiAgICAgUmVuZGVyQmxvY2tSYXJlRGF0YSYgcmFyZURh
dGEgPSBlbnN1cmVCbG9ja1JhcmVEYXRhKCp0aGlzKTsKLSAgICByYXJlRGF0YS5tX2VuY2xvc2lu
Z0ZyYWdtZW50ZWRGbG93ID0gbWFrZVdlYWtQdHIoZnJhZ21lbnRlZEZsb3cpOworICAgIHJhcmVE
YXRhLm1fZW5jbG9zaW5nRnJhZ21lbnRlZEZsb3cgPSBmcmFnbWVudGVkRmxvdzsKIAogICAgIHJl
dHVybiBmcmFnbWVudGVkRmxvdzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrRmxvdy5jcHAKaW5kZXggN2E0ZGViNWJhMjIxNDQ3ZmFjZWYwNmMwYTVkNzQ0ZWM5MDNm
ODg0Zi4uOTE2MTBiYjAzOGFlODBjNDk3MTE0Y2E1OWIyMmEyYzc2M2UxODZhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTMzODYsNyArMzM4
Niw3IEBAIGJvb2wgUmVuZGVyQmxvY2tGbG93OjpuZWVkc0xheW91dEFmdGVyRnJhZ21lbnRSYW5n
ZUNoYW5nZSgpIGNvbnN0CiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6c2V0TXVsdGlDb2x1bW5GbG93
KFJlbmRlck11bHRpQ29sdW1uRmxvdyYgZnJhZ21lbnRlZEZsb3cpCiB7CiAgICAgQVNTRVJUKCFo
YXNSYXJlQmxvY2tGbG93RGF0YSgpIHx8ICFyYXJlQmxvY2tGbG93RGF0YSgpLT5tX211bHRpQ29s
dW1uRmxvdyk7Ci0gICAgZW5zdXJlUmFyZUJsb2NrRmxvd0RhdGEoKS5tX211bHRpQ29sdW1uRmxv
dyA9IG1ha2VXZWFrUHRyKGZyYWdtZW50ZWRGbG93KTsKKyAgICBlbnN1cmVSYXJlQmxvY2tGbG93
RGF0YSgpLm1fbXVsdGlDb2x1bW5GbG93ID0gZnJhZ21lbnRlZEZsb3c7CiB9CiAKIHZvaWQgUmVu
ZGVyQmxvY2tGbG93OjpjbGVhck11bHRpQ29sdW1uRmxvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCAxNWJjZThhMDUxYTY4
NjM4ZGViZjc3NGZmNjhiOGUwODQwMDA5OTQ2Li4xMzdmNjBlYWUzMTc1NDBiNmZlZGZmZWJhMDVl
NGQxMjMzNGM5NWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKFJlbmRlckJveE1vZGVsT2JqZWN0KTsKIC8vIDxiPjxpPjxwPkhlbGxvPC9wPjwvaT48
L2I+LiBJbiB0aGlzIGV4YW1wbGUgdGhlIDxpPiB3aWxsIGhhdmUgYSBibG9jayBhcwogLy8gaXRz
IGNvbnRpbnVhdGlvbiBidXQgdGhlIDxiPiB3aWxsIGp1c3QgaGF2ZSBhbiBpbmxpbmUgYXMgaXRz
IGNvbnRpbnVhdGlvbi4KIFJlbmRlckJveE1vZGVsT2JqZWN0OjpDb250aW51YXRpb25DaGFpbk5v
ZGU6OkNvbnRpbnVhdGlvbkNoYWluTm9kZShSZW5kZXJCb3hNb2RlbE9iamVjdCYgcmVuZGVyZXIp
Ci0gICAgOiByZW5kZXJlcihtYWtlV2Vha1B0cihyZW5kZXJlcikpCisgICAgOiByZW5kZXJlcihy
ZW5kZXJlcikKIHsKIH0KIApAQCAtMjYzNCw3ICsyNjM0LDcgQEAgUmVuZGVyVGV4dEZyYWdtZW50
KiBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Zmlyc3RMZXR0ZXJSZW1haW5pbmdUZXh0KCkgY29uc3QK
IHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnNldEZpcnN0TGV0dGVyUmVtYWluaW5nVGV4dChS
ZW5kZXJUZXh0RnJhZ21lbnQmIHJlbWFpbmluZ1RleHQpCiB7CiAgICAgQVNTRVJUKGlzRmlyc3RM
ZXR0ZXIoKSk7Ci0gICAgZmlyc3RMZXR0ZXJSZW1haW5pbmdUZXh0TWFwKCkuc2V0KHRoaXMsIG1h
a2VXZWFrUHRyKHJlbWFpbmluZ1RleHQpKTsKKyAgICBmaXJzdExldHRlclJlbWFpbmluZ1RleHRN
YXAoKS5zZXQodGhpcywgcmVtYWluaW5nVGV4dCk7CiB9CiAKIHZvaWQgUmVuZGVyQm94TW9kZWxP
YmplY3Q6OmNsZWFyRmlyc3RMZXR0ZXJSZW1haW5pbmdUZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKaW5kZXggYTA1ZWQ2M2FmMDNjMmM5ZDM1ZjdkNDM2Mzg5
NzZhMDk2N2JmNDNjNS4uMDczYWY1YzgyNDBkMzBhMDNiYTZkMDQ4ZjNjNTQyOGY0Y2RlOWUyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKQEAgLTY2LDcgKzY2
LDcgQEAgYm9vbCBSZW5kZXJCdXR0b246Omhhc0xpbmVJZkVtcHR5KCkgY29uc3QKIHZvaWQgUmVu
ZGVyQnV0dG9uOjpzZXRJbm5lclJlbmRlcmVyKFJlbmRlckJsb2NrJiBpbm5lclJlbmRlcmVyKQog
ewogICAgIEFTU0VSVCghbV9pbm5lci5nZXQoKSk7Ci0gICAgbV9pbm5lciA9IG1ha2VXZWFrUHRy
KGlubmVyUmVuZGVyZXIpOworICAgIG1faW5uZXIgPSBpbm5lclJlbmRlcmVyOwogICAgIHVwZGF0
ZUFub255bW91c0NoaWxkU3R5bGUobV9pbm5lci0+bXV0YWJsZVN0eWxlKCkpOwogfQogICAgIApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgUmVuZGVyQnV0dG9uOjpzZXRUZXh0KGNvbnN0IFN0cmlu
ZyYgc3RyKQogCiAgICAgaWYgKCFtX2J1dHRvblRleHQpIHsKICAgICAgICAgYXV0byBuZXdCdXR0
b25UZXh0ID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dEZyYWdtZW50Pihkb2N1bWVudCgpLCBz
dHIpOwotICAgICAgICBtX2J1dHRvblRleHQgPSBtYWtlV2Vha1B0cigqbmV3QnV0dG9uVGV4dCk7
CisgICAgICAgIG1fYnV0dG9uVGV4dCA9ICpuZXdCdXR0b25UZXh0OwogICAgICAgICAvLyBGSVhN
RTogVGhpcyBtdXRhdGlvbiBzaG91bGQgZ28gdGhyb3VnaCB0aGUgbm9ybWFsIFJlbmRlclRyZWVC
dWlsZGVyIHBhdGguCiAgICAgICAgIGlmIChSZW5kZXJUcmVlQnVpbGRlcjo6Y3VycmVudCgpKQog
ICAgICAgICAgICAgUmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJlbnQoKS0+YXR0YWNoKCp0aGlzLCBX
VEZNb3ZlKG5ld0J1dHRvblRleHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmNwcAppbmRleCA4M2EwZWMzOWI0OWJlMzU5NDZmZGQ5MTk0ZjdlYWI0Mjc3ODM3M2Q5
Li43NzMzNzczZDA2MTFhYTFjOTY3Njk0ZmFmMTQ3MTBkNTBjNmUxNmMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0yNDA2LDcgKzI0MDYsNyBAQCBX
ZWFrUHRyPFJlbmRlckJsb2NrRmxvdz4gUmVuZGVyRWxlbWVudDo6YmFja2Ryb3BSZW5kZXJlcigp
IGNvbnN0CiAKIHZvaWQgUmVuZGVyRWxlbWVudDo6c2V0QmFja2Ryb3BSZW5kZXJlcihSZW5kZXJC
bG9ja0Zsb3cmIHJlbmRlcmVyKQogewotICAgIGVuc3VyZVJhcmVEYXRhKCkuYmFja2Ryb3BSZW5k
ZXJlciA9IG1ha2VXZWFrUHRyKHJlbmRlcmVyKTsKKyAgICBlbnN1cmVSYXJlRGF0YSgpLmJhY2tk
cm9wUmVuZGVyZXIgPSByZW5kZXJlcjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAKaW5kZXggNGM2ZTllYTUyYWQ2OGJmOWM0
NjkzNmM5N2JhOWY5NzliM2UyZTc0Ni4uMjY1Yjg5NGYzM2YyYTEzYTQyY2RkODUwMjg5YzY4ODBj
Zjk0YWU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdt
ZW50ZWRGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21l
bnRlZEZsb3cuY3BwCkBAIC04NDYsNyArODQ2LDcgQEAgdm9pZCBSZW5kZXJGcmFnbWVudGVkRmxv
dzo6dXBkYXRlRnJhZ21lbnRzRnJhZ21lbnRlZEZsb3dQb3J0aW9uUmVjdCgpCiAKICAgICAgICAg
ZnJhZ21lbnQtPnNldEZyYWdtZW50ZWRGbG93UG9ydGlvblJlY3QoaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSA/IGZyYWdtZW50UmVjdCA6IGZyYWdtZW50UmVjdC50cmFuc3Bvc2VkUmVjdCgpKTsK
IAotICAgICAgICBtX2ZyYWdtZW50SW50ZXJ2YWxUcmVlLmFkZCh7IGxvZ2ljYWxIZWlnaHQsIGxv
Z2ljYWxIZWlnaHQgKyBmcmFnbWVudExvZ2ljYWxIZWlnaHQsIG1ha2VXZWFrUHRyKGZyYWdtZW50
KSB9KTsKKyAgICAgICAgbV9mcmFnbWVudEludGVydmFsVHJlZS5hZGQoeyBsb2dpY2FsSGVpZ2h0
LCBsb2dpY2FsSGVpZ2h0ICsgZnJhZ21lbnRMb2dpY2FsSGVpZ2h0LCBmcmFnbWVudCB9KTsKIAog
ICAgICAgICBsb2dpY2FsSGVpZ2h0ICs9IGZyYWdtZW50TG9naWNhbEhlaWdodDsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5oCmluZGV4
IDE3ZmYwNmYyZmMxMzk2N2NiOGJiNWEyZWY0ZmMyNTlmZmUzMjZiZDkuLjc1ZmI1MDM3MDMwNjlk
MGFkMTA0ODcyMzMzNTFmYjQzMTZkYzVlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5oCkBAIC0yMTUsOCArMjE1LDggQEAgcHJvdGVjdGVk
OgogICAgICAgICAKICAgICAgICAgdm9pZCBzZXRSYW5nZShSZW5kZXJGcmFnbWVudENvbnRhaW5l
ciogc3RhcnQsIFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBlbmQpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIG1fc3RhcnRGcmFnbWVudCA9IG1ha2VXZWFrUHRyKHN0YXJ0KTsKLSAgICAgICAgICAg
IG1fZW5kRnJhZ21lbnQgPSBtYWtlV2Vha1B0cihlbmQpOworICAgICAgICAgICAgbV9zdGFydEZy
YWdtZW50ID0gc3RhcnQ7CisgICAgICAgICAgICBtX2VuZEZyYWdtZW50ID0gZW5kOwogICAgICAg
ICAgICAgbV9yYW5nZUludmFsaWRhdGVkID0gdHJ1ZTsKICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaAppbmRleCAwMzQ1NWQ4NjYzNWUyYzhm
MTFmMWFjZTEwZDE1Yjg4YzQyOTMwNGNhLi42OTA0MzM1OTJjN2Y0ZWIyMmYyYWM0NTYxN2QxMDBj
ZWY1MTk5OTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVs
bFNjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVu
LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyRnVsbFNjcmVlbiI7IH0KIAogICAgIFJl
bmRlckJsb2NrKiBwbGFjZWhvbGRlcigpIHsgcmV0dXJuIG1fcGxhY2Vob2xkZXIuZ2V0KCk7IH0K
LSAgICB2b2lkIHNldFBsYWNlaG9sZGVyKFJlbmRlckJsb2NrJiBwbGFjZWhvbGRlcikgeyBtX3Bs
YWNlaG9sZGVyID0gbWFrZVdlYWtQdHIocGxhY2Vob2xkZXIpOyB9CisgICAgdm9pZCBzZXRQbGFj
ZWhvbGRlcihSZW5kZXJCbG9jayYgcGxhY2Vob2xkZXIpIHsgbV9wbGFjZWhvbGRlciA9IHBsYWNl
aG9sZGVyOyB9CiAKICAgICBzdGF0aWMgUmVuZGVyUHRyPFJlbmRlckZ1bGxTY3JlZW4+IHdyYXBO
ZXdSZW5kZXJlcihSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50Piwg
UmVuZGVyRWxlbWVudCYgcGFyZW50LCBEb2N1bWVudCYpOwogICAgIHN0YXRpYyB2b2lkIHdyYXBF
eGlzdGluZ1JlbmRlcmVyKFJlbmRlckVsZW1lbnQmLCBEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2UuY3BwCmluZGV4IDg2MmI1ZGI1
MzM1MTM4NjQ1YTEyMWU2ODk0MGZkMWFjMWQ2NThjZjkuLjhmMmU5YjYxYjQ0NDhhOGUzZGJmYjU5
ZjA0YmZlNDNhY2Y5MGE5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbWFnZVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2VSZXNvdXJjZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdm9pZCBSZW5kZXJJbWFnZVJl
c291cmNlOjppbml0aWFsaXplKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBDYWNoZWRJbWFnZSog
c3R5bGUKIHsKICAgICBBU1NFUlQoIW1fcmVuZGVyZXIpOwogICAgIEFTU0VSVCghbV9jYWNoZWRJ
bWFnZSk7Ci0gICAgbV9yZW5kZXJlciA9IG1ha2VXZWFrUHRyKHJlbmRlcmVyKTsKKyAgICBtX3Jl
bmRlcmVyID0gcmVuZGVyZXI7CiAgICAgbV9jYWNoZWRJbWFnZSA9IHN0eWxlQ2FjaGVkSW1hZ2U7
CiAgICAgbV9jYWNoZWRJbWFnZVJlbW92ZUNsaWVudElzTmVlZGVkID0gIXN0eWxlQ2FjaGVkSW1h
Z2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBhZTM3
NzJlYjYxMjU4YTlmMzE1NDI5Y2EyZDQ4NzVhOGZlYzAxNzk2Li4wMmM1YzE1Y2Y2ODc4MTkwYzVh
MmUyMjI4MjI5M2M0ZmVjZDhhODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKQEAgLTE0MTAsNyArMTQxMCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVBh
Z2luYXRpb24oKQogICAgIC8vIGxheWVycykuIFdlIHRyYWNrIGFuIGVuY2xvc2luZ1BhZ2luYXRp
b25MYXllciBpbnN0ZWFkIG9mIHVzaW5nIGEgc2ltcGxlIGJpdCwgc2luY2Ugd2Ugd2FudCB0byBi
ZSBhYmxlIHRvIGdldCBiYWNrCiAgICAgLy8gdG8gdGhhdCBsYXllciBlYXNpbHkuCiAgICAgaWYg
KHJlbmRlcmVyKCkuaXNSZW5kZXJGcmFnbWVudGVkRmxvdygpKSB7Ci0gICAgICAgIG1fZW5jbG9z
aW5nUGFnaW5hdGlvbkxheWVyID0gbWFrZVdlYWtQdHIoKnRoaXMpOworICAgICAgICBtX2VuY2xv
c2luZ1BhZ2luYXRpb25MYXllciA9ICp0aGlzOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0xNDIxLDcgKzE0MjEsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQYWdpbmF0aW9uKCkK
ICAgICAgICAgaWYgKHBhcmVudCgpLT5oYXNUcmFuc2Zvcm0oKSkKICAgICAgICAgICAgIG1fZW5j
bG9zaW5nUGFnaW5hdGlvbkxheWVyID0gbnVsbHB0cjsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgbV9lbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIgPSBtYWtlV2Vha1B0cihwYXJlbnQoKS0+ZW5j
bG9zaW5nUGFnaW5hdGlvbkxheWVyKEluY2x1ZGVDb21wb3NpdGVkUGFnaW5hdGVkTGF5ZXJzKSk7
CisgICAgICAgICAgICBtX2VuY2xvc2luZ1BhZ2luYXRpb25MYXllciA9IHBhcmVudCgpLT5lbmNs
b3NpbmdQYWdpbmF0aW9uTGF5ZXIoSW5jbHVkZUNvbXBvc2l0ZWRQYWdpbmF0ZWRMYXllcnMpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNDM1LDcgKzE0MzUsNyBAQCB2b2lkIFJlbmRl
ckxheWVyOjp1cGRhdGVQYWdpbmF0aW9uKCkKICAgICAgICAgICAgIGlmIChjb250YWluaW5nQmxv
Y2stPmxheWVyKCktPmhhc1RyYW5zZm9ybSgpKQogICAgICAgICAgICAgICAgIG1fZW5jbG9zaW5n
UGFnaW5hdGlvbkxheWVyID0gbnVsbHB0cjsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBtX2VuY2xvc2luZ1BhZ2luYXRpb25MYXllciA9IG1ha2VXZWFrUHRyKGNvbnRhaW5pbmdC
bG9jay0+bGF5ZXIoKS0+ZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyKEluY2x1ZGVDb21wb3NpdGVk
UGFnaW5hdGVkTGF5ZXJzKSk7CisgICAgICAgICAgICAgICAgbV9lbmNsb3NpbmdQYWdpbmF0aW9u
TGF5ZXIgPSBjb250YWluaW5nQmxvY2stPmxheWVyKCktPmVuY2xvc2luZ1BhZ2luYXRpb25MYXll
cihJbmNsdWRlQ29tcG9zaXRlZFBhZ2luYXRlZExheWVycyk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICB9CkBAIC0xODkwLDcgKzE4OTAsNyBAQCB2b2lkIFJlbmRlckxheWVy
OjpzZXRCYWNraW5nUHJvdmlkZXJMYXllcihSZW5kZXJMYXllciogYmFja2luZ1Byb3ZpZGVyKQog
ICAgIGlmICghcmVuZGVyZXIoKS5yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkKICAgICAgICAg
Y2xlYXJDbGlwUmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50cygpOwogCi0gICAgbV9iYWNraW5nUHJv
dmlkZXJMYXllciA9IG1ha2VXZWFrUHRyKGJhY2tpbmdQcm92aWRlcik7CisgICAgbV9iYWNraW5n
UHJvdmlkZXJMYXllciA9IGJhY2tpbmdQcm92aWRlcjsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6
ZGlzY29ubmVjdEZyb21CYWNraW5nUHJvdmlkZXJMYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDAxZTFlYjkyMDA1
Mzk1MjM1YzVkNmM5MzJkMzRiOWQ2NWQ1MzFmNTQuLjBjYjllZDMyNGE0NGNlZGZiNjZkZTE5ZTE3
NThhNjlmNDZhNTE3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNDksNyArMjQ5LDcgQEAgcHVibGljOgogICAgIHZv
aWQgYXBwZW5kU2hhcmluZ0xheWVyKFJlbmRlckxheWVyJiBsYXllcikKICAgICB7CiAgICAgICAg
IEFTU0VSVChtX2JhY2tpbmdQcm92aWRlckNhbmRpZGF0ZSk7Ci0gICAgICAgIG1fYmFja2luZ1No
YXJpbmdMYXllcnMuYXBwZW5kKG1ha2VXZWFrUHRyKGxheWVyKSk7CisgICAgICAgIG1fYmFja2lu
Z1NoYXJpbmdMYXllcnMuYXBwZW5kKGxheWVyKTsKICAgICB9CiAKICAgICBSZW5kZXJMYXllciog
dXBkYXRlQmVmb3JlRGVzY2VuZGFudFRyYXZlcnNhbChSZW5kZXJMYXllciYsIGJvb2wgd2lsbEJl
Q29tcG9zaXRlZCk7CkBAIC00NDYyLDcgKzQ0NjIsNyBAQCBTY3JvbGxpbmdOb2RlSUQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjphdHRhY2hTY3JvbGxpbmdOb2RlKFJlbmRlckxheWVyJiBsYXllciwg
UwogICAgICAgICBtX2NsaXBMYXllci0+c2V0U2Nyb2xsaW5nTm9kZUlEKG5vZGVJRCk7CiAjZW5k
aWYKIAotICAgIG1fc2Nyb2xsaW5nTm9kZVRvTGF5ZXJNYXAuYWRkKG5vZGVJRCwgbWFrZVdlYWtQ
dHIobGF5ZXIpKTsKKyAgICBtX3Njcm9sbGluZ05vZGVUb0xheWVyTWFwLmFkZChub2RlSUQsIGxh
eWVyKTsKIAogICAgIHJldHVybiBub2RlSUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5b3V0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheW91dFN0YXRlLmNwcAppbmRleCBhMTQwZWY2ZjUyZWZmYzczNWI1M2MyYzQz
YWY0Yjk1MmM4MWZlYTIwLi45N2Y5Y2NkZWVlOGVjNjEzNTJhOWUwM2UwM2Y2MWI4MWU1MzU3NGRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5b3V0U3RhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXlvdXRTdGF0ZS5jcHAK
QEAgLTIyMCw3ICsyMjAsNyBAQCB2b2lkIFJlbmRlckxheW91dFN0YXRlOjpwcm9wYWdhdGVMaW5l
R3JpZEluZm8oY29uc3QgUmVuZGVyTGF5b3V0U3RhdGUmIGFuY2VzdG9yLAogICAgIGlmIChyZW5k
ZXJlci5pc1Vuc3BsaXR0YWJsZUZvclBhZ2luYXRpb24oKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9saW5lR3JpZCA9IG1ha2VXZWFrUHRyKGFuY2VzdG9yLmxpbmVHcmlkKCkpOworICAgIG1f
bGluZUdyaWQgPSBhbmNlc3Rvci5saW5lR3JpZCgpOwogICAgIG1fbGluZUdyaWRPZmZzZXQgPSBh
bmNlc3Rvci5saW5lR3JpZE9mZnNldCgpOwogICAgIG1fbGluZUdyaWRQYWdpbmF0aW9uT3JpZ2lu
ID0gYW5jZXN0b3IubGluZUdyaWRQYWdpbmF0aW9uT3JpZ2luKCk7CiB9CkBAIC0yNDAsNyArMjQw
LDcgQEAgdm9pZCBSZW5kZXJMYXlvdXRTdGF0ZTo6ZXN0YWJsaXNoTGluZUdyaWQoY29uc3QgRnJh
bWVWaWV3TGF5b3V0Q29udGV4dDo6TGF5b3V0U3QKICAgICAgICAgICAgIGlmICghY3VycmVudEdy
aWQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBpZiAoY3VycmVudEdyaWQt
PnN0eWxlKCkubGluZUdyaWQoKSA9PSByZW5kZXJlci5zdHlsZSgpLmxpbmVHcmlkKCkpIHsKLSAg
ICAgICAgICAgICAgICBtX2xpbmVHcmlkID0gbWFrZVdlYWtQdHIoY3VycmVudEdyaWQpOworICAg
ICAgICAgICAgICAgIG1fbGluZUdyaWQgPSBjdXJyZW50R3JpZDsKICAgICAgICAgICAgICAgICBt
X2xpbmVHcmlkT2Zmc2V0ID0gY3VycmVudFN0YXRlLm1fbGluZUdyaWRPZmZzZXQ7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtMjQ4LDcgKzI0OCw3IEBAIHZvaWQg
UmVuZGVyTGF5b3V0U3RhdGU6OmVzdGFibGlzaExpbmVHcmlkKGNvbnN0IEZyYW1lVmlld0xheW91
dENvbnRleHQ6OkxheW91dFN0CiAgICAgfQogICAgIAogICAgIC8vIFdlIGRpZG4ndCBmaW5kIGFu
IGFscmVhZHktZXN0YWJsaXNoZWQgZ3JpZCB3aXRoIHRoaXMgaWRlbnRpZmllci4gT3VyIHJlbmRl
ciBvYmplY3QgZXN0YWJsaXNoZXMgdGhlIGdyaWQuCi0gICAgbV9saW5lR3JpZCA9IG1ha2VXZWFr
UHRyKHJlbmRlcmVyKTsKKyAgICBtX2xpbmVHcmlkID0gcmVuZGVyZXI7CiAgICAgbV9saW5lR3Jp
ZE9mZnNldCA9IG1fbGF5b3V0T2Zmc2V0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0SXRlbS5oCmluZGV4IDExZjg1YzM4ODBlMzNlMTFmN2Y3MmJlMDE2M2U4MGRmMmI2
ODk0NTguLjg1MGRkZWNhOGU5NDU2MDM4MGFkOTViNjUxMTFiYzdkOThhNWY5YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1
YmxpYzoKICAgICBSZW5kZXJTdHlsZSBjb21wdXRlTWFya2VyU3R5bGUoKSBjb25zdDsKIAogICAg
IFJlbmRlckxpc3RNYXJrZXIqIG1hcmtlclJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV9tYXJr
ZXIuZ2V0KCk7IH0KLSAgICB2b2lkIHNldE1hcmtlclJlbmRlcmVyKFJlbmRlckxpc3RNYXJrZXIm
IG1hcmtlcikgeyBtX21hcmtlciA9IG1ha2VXZWFrUHRyKG1hcmtlcik7IH0KKyAgICB2b2lkIHNl
dE1hcmtlclJlbmRlcmVyKFJlbmRlckxpc3RNYXJrZXImIG1hcmtlcikgeyBtX21hcmtlciA9IG1h
cmtlcjsgfQogCiAgICAgYm9vbCBpc0luUmV2ZXJzZWRPcmRlcmVkTGlzdCgpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKaW5kZXggZDJh
M2EwOGNhNzc1NDM2NzQ3ZjA3ZTBhNWMxZDZlZjhiMmFlNDRiNi4uMDFiMWIwMTNjODE1MjQ3OTQy
MzNmNTAwMTAwMTc2M2I5M2JhM2ZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmNwcApAQCAtMTQ2NSw3ICsxNDY1LDcgQEAgU3RyaW5nIGxpc3RNYXJr
ZXJUZXh0KExpc3RTdHlsZVR5cGUgdHlwZSwgaW50IHZhbHVlKQogCiBSZW5kZXJMaXN0TWFya2Vy
OjpSZW5kZXJMaXN0TWFya2VyKFJlbmRlckxpc3RJdGVtJiBsaXN0SXRlbSwgUmVuZGVyU3R5bGUm
JiBzdHlsZSkKICAgICA6IFJlbmRlckJveChsaXN0SXRlbS5kb2N1bWVudCgpLCBXVEZNb3ZlKHN0
eWxlKSwgMCkKLSAgICAsIG1fbGlzdEl0ZW0obWFrZVdlYWtQdHIobGlzdEl0ZW0pKQorICAgICwg
bV9saXN0SXRlbShsaXN0SXRlbSkKIHsKICAgICAvLyBpbml0IFJlbmRlck9iamVjdCBhdHRyaWJ1
dGVzCiAgICAgc2V0SW5saW5lKHRydWUpOyAgIC8vIG91ciBvYmplY3QgaXMgSW5saW5lCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCAxN2RmOTRlYzQw
Y2MyZTE5NjRkMDVjYTI4MzMwZDkwMTI5MGUyMDkxLi44MTU3NTMxZjg5MjYyNWZjMGZmNGY3YmUx
NDI1NTJhOTkxNmY0ZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0Ojp3aWxsQmVE
ZXN0cm95ZWQoKQogdm9pZCBSZW5kZXJNZW51TGlzdDo6c2V0SW5uZXJSZW5kZXJlcihSZW5kZXJC
bG9jayYgaW5uZXJSZW5kZXJlcikKIHsKICAgICBBU1NFUlQoIW1faW5uZXJCbG9jay5nZXQoKSk7
Ci0gICAgbV9pbm5lckJsb2NrID0gbWFrZVdlYWtQdHIoaW5uZXJSZW5kZXJlcik7CisgICAgbV9p
bm5lckJsb2NrID0gaW5uZXJSZW5kZXJlcjsKICAgICBhZGp1c3RJbm5lclN0eWxlKCk7CiB9CiAK
QEAgLTI4MCw3ICsyODAsNyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0OjpzZXRUZXh0KGNvbnN0IFN0
cmluZyYgcykKICAgICAgICAgbV9idXR0b25UZXh0LT5kaXJ0eUxpbmVCb3hlcyhmYWxzZSk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgYXV0byBuZXdCdXR0b25UZXh0ID0gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyVGV4dD4oZG9jdW1lbnQoKSwgdGV4dFRvVXNlKTsKLSAgICAgICAgbV9idXR0b25UZXh0
ID0gbWFrZVdlYWtQdHIoKm5ld0J1dHRvblRleHQpOworICAgICAgICBtX2J1dHRvblRleHQgPSAq
bmV3QnV0dG9uVGV4dDsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgbXV0YXRpb24gc2hvdWxkIGdv
IHRocm91Z2ggdGhlIG5vcm1hbCBSZW5kZXJUcmVlQnVpbGRlciBwYXRoLgogICAgICAgICBpZiAo
UmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJlbnQoKSkKICAgICAgICAgICAgIFJlbmRlclRyZWVCdWls
ZGVyOjpjdXJyZW50KCktPmF0dGFjaCgqdGhpcywgV1RGTW92ZShuZXdCdXR0b25UZXh0KSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFu
bmVyUGxhY2Vob2xkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmNwcAppbmRleCAzZmRiYmZmMjFmM2YwYmIwOGY0NjZk
Y2M5NDY0MzUwMzlkMjJlOTZkLi42ZWZjNTE1YjJlNDg5YzBjMzYxMTI0YTc3MmQ1NjdhNDJjODAy
YWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1
bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5jcHAKQEAgLTQ4LDggKzQ4LDggQEAg
UmVuZGVyUHRyPFJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyPiBSZW5kZXJNdWx0
aUNvbHVtblNwYW5uZXJQbGFjZWhvbGQKIAogUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vo
b2xkZXI6OlJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyKFJlbmRlck11bHRpQ29s
dW1uRmxvdyYgZnJhZ21lbnRlZEZsb3csIFJlbmRlckJveCYgc3Bhbm5lciwgUmVuZGVyU3R5bGUm
JiBzdHlsZSkKICAgICA6IFJlbmRlckJveChmcmFnbWVudGVkRmxvdy5kb2N1bWVudCgpLCBXVEZN
b3ZlKHN0eWxlKSwgUmVuZGVyQm94TW9kZWxPYmplY3RGbGFnKQotICAgICwgbV9zcGFubmVyKG1h
a2VXZWFrUHRyKHNwYW5uZXIpKQotICAgICwgbV9mcmFnbWVudGVkRmxvdyhtYWtlV2Vha1B0cihm
cmFnbWVudGVkRmxvdykpCisgICAgLCBtX3NwYW5uZXIoc3Bhbm5lcikKKyAgICAsIG1fZnJhZ21l
bnRlZEZsb3coZnJhZ21lbnRlZEZsb3cpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNjcm9sbGJhci5jcHAKaW5kZXggMWRmYjYzZjBmOThmNDU5YzM1N2YxOGVjMjVi
YzQxMGM1YjFkMDYyZC4uYWIxN2FlODE3NzFkODdhOGZhMThmYzQyN2Q0YzcwY2FkYzBkNzQ2NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAKQEAgLTQ0
LDcgKzQ0LDcgQEAgUmVmPFNjcm9sbGJhcj4gUmVuZGVyU2Nyb2xsYmFyOjpjcmVhdGVDdXN0b21T
Y3JvbGxiYXIoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGUKIFJlbmRlclNjcm9sbGJhcjo6UmVu
ZGVyU2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgU2Nyb2xsYmFyT3Jp
ZW50YXRpb24gb3JpZW50YXRpb24sIEVsZW1lbnQqIG93bmVyRWxlbWVudCwgRnJhbWUqIG93bmlu
Z0ZyYW1lKQogICAgIDogU2Nyb2xsYmFyKHNjcm9sbGFibGVBcmVhLCBvcmllbnRhdGlvbiwgU2Ny
b2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIsIFJlbmRlclNjcm9sbGJhclRoZW1lOjpyZW5kZXJT
Y3JvbGxiYXJUaGVtZSgpLCB0cnVlKQogICAgICwgbV9vd25lckVsZW1lbnQob3duZXJFbGVtZW50
KQotICAgICwgbV9vd25pbmdGcmFtZShtYWtlV2Vha1B0cihvd25pbmdGcmFtZSkpCisgICAgLCBt
X293bmluZ0ZyYW1lKG93bmluZ0ZyYW1lKQogewogICAgIEFTU0VSVChvd25lckVsZW1lbnQgfHwg
b3duaW5nRnJhbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApp
bmRleCBiNWRiMTFkNTkwNWFhNzBhODA5MzFhZjliZWZmNGEyMDcwYjRmMjg4Li5iZTljMTVmZjQ4
YzNkODExYjIyMjgzZGJlZWM4MTMzMTVlYzNjNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZS5jcHAKQEAgLTE3MCwyNCArMTcwLDI0IEBAIHZvaWQgUmVuZGVyVGFibGU6
OndpbGxJbnNlcnRUYWJsZVNlY3Rpb24oUmVuZGVyVGFibGVTZWN0aW9uJiBjaGlsZCwgUmVuZGVy
T2JqZWN0CiAgICAgY2FzZSBEaXNwbGF5VHlwZTo6VGFibGVIZWFkZXJHcm91cDoKICAgICAgICAg
cmVzZXRTZWN0aW9uUG9pbnRlcklmTm90QmVmb3JlKG1faGVhZCwgYmVmb3JlQ2hpbGQpOwogICAg
ICAgICBpZiAoIW1faGVhZCkKLSAgICAgICAgICAgIG1faGVhZCA9IG1ha2VXZWFrUHRyKGNoaWxk
KTsKKyAgICAgICAgICAgIG1faGVhZCA9IGNoaWxkOwogICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgIHJlc2V0U2VjdGlvblBvaW50ZXJJZk5vdEJlZm9yZShtX2ZpcnN0Qm9keSwgYmVmb3JlQ2hp
bGQpOwogICAgICAgICAgICAgaWYgKCFtX2ZpcnN0Qm9keSkKLSAgICAgICAgICAgICAgICBtX2Zp
cnN0Qm9keSA9IG1ha2VXZWFrUHRyKGNoaWxkKTsKKyAgICAgICAgICAgICAgICBtX2ZpcnN0Qm9k
eSA9IGNoaWxkOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5
cGU6OlRhYmxlRm9vdGVyR3JvdXA6CiAgICAgICAgIHJlc2V0U2VjdGlvblBvaW50ZXJJZk5vdEJl
Zm9yZShtX2Zvb3QsIGJlZm9yZUNoaWxkKTsKICAgICAgICAgaWYgKCFtX2Zvb3QpIHsKLSAgICAg
ICAgICAgIG1fZm9vdCA9IG1ha2VXZWFrUHRyKGNoaWxkKTsKKyAgICAgICAgICAgIG1fZm9vdCA9
IGNoaWxkOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgRkFMTFRIUk9V
R0g7CiAgICAgY2FzZSBEaXNwbGF5VHlwZTo6VGFibGVSb3dHcm91cDoKICAgICAgICAgcmVzZXRT
ZWN0aW9uUG9pbnRlcklmTm90QmVmb3JlKG1fZmlyc3RCb2R5LCBiZWZvcmVDaGlsZCk7CiAgICAg
ICAgIGlmICghbV9maXJzdEJvZHkpCi0gICAgICAgICAgICBtX2ZpcnN0Qm9keSA9IG1ha2VXZWFr
UHRyKGNoaWxkKTsKKyAgICAgICAgICAgIG1fZmlyc3RCb2R5ID0gY2hpbGQ7CiAgICAgICAgIGJy
ZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTk5
LDcgKzE5OSw3IEBAIHZvaWQgUmVuZGVyVGFibGU6OndpbGxJbnNlcnRUYWJsZVNlY3Rpb24oUmVu
ZGVyVGFibGVTZWN0aW9uJiBjaGlsZCwgUmVuZGVyT2JqZWN0CiB2b2lkIFJlbmRlclRhYmxlOjph
ZGRDYXB0aW9uKFJlbmRlclRhYmxlQ2FwdGlvbiYgY2FwdGlvbikKIHsKICAgICBBU1NFUlQobV9j
YXB0aW9ucy5maW5kKCZjYXB0aW9uKSA9PSBub3RGb3VuZCk7Ci0gICAgbV9jYXB0aW9ucy5hcHBl
bmQobWFrZVdlYWtQdHIoY2FwdGlvbikpOworICAgIG1fY2FwdGlvbnMuYXBwZW5kKGNhcHRpb24p
OwogfQogCiB2b2lkIFJlbmRlclRhYmxlOjpyZW1vdmVDYXB0aW9uKFJlbmRlclRhYmxlQ2FwdGlv
biYgb2xkQ2FwdGlvbikKQEAgLTk0Miw3ICs5NDIsNyBAQCB2b2lkIFJlbmRlclRhYmxlOjp1cGRh
dGVDb2x1bW5DYWNoZSgpIGNvbnN0CiAgICAgZm9yIChSZW5kZXJUYWJsZUNvbCogY29sdW1uUmVu
ZGVyZXIgPSBmaXJzdENvbHVtbigpOyBjb2x1bW5SZW5kZXJlcjsgY29sdW1uUmVuZGVyZXIgPSBj
b2x1bW5SZW5kZXJlci0+bmV4dENvbHVtbigpKSB7CiAgICAgICAgIGlmIChjb2x1bW5SZW5kZXJl
ci0+aXNUYWJsZUNvbHVtbkdyb3VwV2l0aENvbHVtbkNoaWxkcmVuKCkpCiAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgbV9jb2x1bW5SZW5kZXJlcnMuYXBwZW5kKG1ha2VXZWFrUHRyKGNv
bHVtblJlbmRlcmVyKSk7CisgICAgICAgIG1fY29sdW1uUmVuZGVyZXJzLmFwcGVuZChjb2x1bW5S
ZW5kZXJlcik7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbG9vayB0byBjb21wdXRlIHRo
ZSBlZmZlY3RpdmUgY29sdW1uIGluZGV4IHN1Y2Nlc3NpdmVseSBmcm9tIHByZXZpb3VzIHZhbHVl
cyBpbnN0ZWFkIG9mCiAgICAgICAgIC8vIGNhbGxpbmcgY29sVG9FZmZDb2woKSwgd2hpY2ggaXMg
aW4gTyhudW1FZmZDb2xzKCkpLiBBbHRob3VnaCBpdCdzIHVubGlrZWx5IHRoYXQgdGhpcyBpcyBh
IGhvdCBmdW5jdGlvbi4KICAgICAgICAgbV9lZmZlY3RpdmVDb2x1bW5JbmRleE1hcC5hZGQoY29s
dW1uUmVuZGVyZXIsIGNvbFRvRWZmQ29sKGNvbHVtbkluZGV4KSk7CkBAIC0xMDgwLDkgKzEwODAs
OSBAQCB2b2lkIFJlbmRlclRhYmxlOjpyZWNhbGNTZWN0aW9ucygpIGNvbnN0CiAgICAgICAgICAg
ICBpZiAoaXM8UmVuZGVyVGFibGVTZWN0aW9uPigqY2hpbGQpKSB7CiAgICAgICAgICAgICAgICAg
UmVuZGVyVGFibGVTZWN0aW9uJiBzZWN0aW9uID0gZG93bmNhc3Q8UmVuZGVyVGFibGVTZWN0aW9u
PigqY2hpbGQpOwogICAgICAgICAgICAgICAgIGlmICghbV9oZWFkKQotICAgICAgICAgICAgICAg
ICAgICBtX2hlYWQgPSBtYWtlV2Vha1B0cihzZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAg
bV9oZWFkID0gc2VjdGlvbjsKICAgICAgICAgICAgICAgICBlbHNlIGlmICghbV9maXJzdEJvZHkp
Ci0gICAgICAgICAgICAgICAgICAgIG1fZmlyc3RCb2R5ID0gbWFrZVdlYWtQdHIoc2VjdGlvbik7
CisgICAgICAgICAgICAgICAgICAgIG1fZmlyc3RCb2R5ID0gc2VjdGlvbjsKICAgICAgICAgICAg
ICAgICBzZWN0aW9uLnJlY2FsY0NlbGxzSWZOZWVkZWQoKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMTA5MCw5ICsxMDkwLDkgQEAgdm9pZCBSZW5kZXJUYWJsZTo6cmVj
YWxjU2VjdGlvbnMoKSBjb25zdAogICAgICAgICAgICAgaWYgKGlzPFJlbmRlclRhYmxlU2VjdGlv
bj4oKmNoaWxkKSkgewogICAgICAgICAgICAgICAgIFJlbmRlclRhYmxlU2VjdGlvbiYgc2VjdGlv
biA9IGRvd25jYXN0PFJlbmRlclRhYmxlU2VjdGlvbj4oKmNoaWxkKTsKICAgICAgICAgICAgICAg
ICBpZiAoIW1fZm9vdCkKLSAgICAgICAgICAgICAgICAgICAgbV9mb290ID0gbWFrZVdlYWtQdHIo
c2VjdGlvbik7CisgICAgICAgICAgICAgICAgICAgIG1fZm9vdCA9IHNlY3Rpb247CiAgICAgICAg
ICAgICAgICAgZWxzZSBpZiAoIW1fZmlyc3RCb2R5KQotICAgICAgICAgICAgICAgICAgICBtX2Zp
cnN0Qm9keSA9IG1ha2VXZWFrUHRyKHNlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBtX2Zp
cnN0Qm9keSA9IHNlY3Rpb247CiAgICAgICAgICAgICAgICAgc2VjdGlvbi5yZWNhbGNDZWxsc0lm
TmVlZGVkKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTExMDAsNyAr
MTEwMCw3IEBAIHZvaWQgUmVuZGVyVGFibGU6OnJlY2FsY1NlY3Rpb25zKCkgY29uc3QKICAgICAg
ICAgICAgIGlmIChpczxSZW5kZXJUYWJsZVNlY3Rpb24+KCpjaGlsZCkpIHsKICAgICAgICAgICAg
ICAgICBSZW5kZXJUYWJsZVNlY3Rpb24mIHNlY3Rpb24gPSBkb3duY2FzdDxSZW5kZXJUYWJsZVNl
Y3Rpb24+KCpjaGlsZCk7CiAgICAgICAgICAgICAgICAgaWYgKCFtX2ZpcnN0Qm9keSkKLSAgICAg
ICAgICAgICAgICAgICAgbV9maXJzdEJvZHkgPSBtYWtlV2Vha1B0cihzZWN0aW9uKTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9maXJzdEJvZHkgPSBzZWN0aW9uOwogICAgICAgICAgICAgICAgIHNl
Y3Rpb24ucmVjYWxjQ2VsbHNJZk5lZWRlZCgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggYWVkOTY2
MTE4YzExMDU0MmIyNzMzNmQxOGUyNDczN2Q4MmMxOGUxNi4uZTIwODA5YzdjNDdkNGQxMzQ3ZDNm
ODVkZGM5MjI0NmJkMmI4MDE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcApAQCAtMTgxOSw3ICsxODE5LDcgQEAgdm9pZCBSZW5kZXJUZXh0OjpzZXRJbmxpbmVXcmFw
cGVyRm9yRGlzcGxheUNvbnRlbnRzKFJlbmRlcklubGluZSogd3JhcHBlcikKICAgICAgICAgbV9o
YXNJbmxpbmVXcmFwcGVyRm9yRGlzcGxheUNvbnRlbnRzID0gZmFsc2U7CiAgICAgICAgIHJldHVy
bjsKICAgICB9Ci0gICAgaW5saW5lV3JhcHBlckZvckRpc3BsYXlDb250ZW50c01hcCgpLmFkZCh0
aGlzLCBtYWtlV2Vha1B0cih3cmFwcGVyKSk7CisgICAgaW5saW5lV3JhcHBlckZvckRpc3BsYXlD
b250ZW50c01hcCgpLmFkZCh0aGlzLCB3cmFwcGVyKTsKICAgICBtX2hhc0lubGluZVdyYXBwZXJG
b3JEaXNwbGF5Q29udGVudHMgPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dEZyYWdtZW50LmgKaW5kZXggZDI4ZmQ2NjVlMjBmZDQ2OWYxZWIwZTIwMzUx
OWQzN2Y3NGIzNTQyNS4uNThlMWRlOTNjZDgwZDE4MGZkMjRiNjM5YTk1YzM1YzBmZDgxOWJjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuaApAQCAt
NDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgZW5kKCkgY29uc3QgeyByZXR1cm4g
bV9lbmQ7IH0KIAogICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiBmaXJzdExldHRlcigpIGNvbnN0
IHsgcmV0dXJuIG1fZmlyc3RMZXR0ZXIuZ2V0KCk7IH0KLSAgICB2b2lkIHNldEZpcnN0TGV0dGVy
KFJlbmRlckJveE1vZGVsT2JqZWN0JiBmaXJzdExldHRlcikgeyBtX2ZpcnN0TGV0dGVyID0gbWFr
ZVdlYWtQdHIoZmlyc3RMZXR0ZXIpOyB9CisgICAgdm9pZCBzZXRGaXJzdExldHRlcihSZW5kZXJC
b3hNb2RlbE9iamVjdCYgZmlyc3RMZXR0ZXIpIHsgbV9maXJzdExldHRlciA9IGZpcnN0TGV0dGVy
OyB9CiAgICAgCiAgICAgUmVuZGVyQmxvY2sqIGJsb2NrRm9yQWNjb21wYW55aW5nRmlyc3RMZXR0
ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDhhMDRl
ZDkwMGU2NGJkYmZiYmZmY2ViNzIzODAzMDZmMGRhNzljZTAuLjc5OTQ1MzYwZGQxZWFlZDM0ODgx
NzBhMWY4NTU1MDU3MjExNzhiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAKQEAgLTg2NCw3ICs4NjQsNyBAQCBSZW5kZXJWaWV3OjpSZXBhaW50UmVnaW9uQWNjdW11
bGF0b3I6OlJlcGFpbnRSZWdpb25BY2N1bXVsYXRvcihSZW5kZXJWaWV3KiB2aWV3KQogICAgIG1f
d2FzQWNjdW11bGF0aW5nUmVwYWludFJlZ2lvbiA9ICEhcm9vdFJlbmRlclZpZXctPm1fYWNjdW11
bGF0ZWRSZXBhaW50UmVnaW9uOwogICAgIGlmICghbV93YXNBY2N1bXVsYXRpbmdSZXBhaW50UmVn
aW9uKQogICAgICAgICByb290UmVuZGVyVmlldy0+bV9hY2N1bXVsYXRlZFJlcGFpbnRSZWdpb24g
PSBtYWtlVW5pcXVlPFJlZ2lvbj4oKTsKLSAgICBtX3Jvb3RWaWV3ID0gbWFrZVdlYWtQdHIoKnJv
b3RSZW5kZXJWaWV3KTsKKyAgICBtX3Jvb3RWaWV3ID0gKnJvb3RSZW5kZXJWaWV3OwogfQogCiBS
ZW5kZXJWaWV3OjpSZXBhaW50UmVnaW9uQWNjdW11bGF0b3I6On5SZXBhaW50UmVnaW9uQWNjdW11
bGF0b3IoKQpAQCAtOTE3LDEyICs5MTcsMTIgQEAgdW5zaWduZWQgUmVuZGVyVmlldzo6cGFnZUNv
dW50KCkgY29uc3QKIHZvaWQgUmVuZGVyVmlldzo6bGF5ZXJDaGlsZHJlbkNoYW5nZWREdXJpbmdT
dHlsZUNoYW5nZShSZW5kZXJMYXllciYgbGF5ZXIpCiB7CiAgICAgaWYgKCFtX3N0eWxlQ2hhbmdl
TGF5ZXJNdXRhdGlvblJvb3QpIHsKLSAgICAgICAgbV9zdHlsZUNoYW5nZUxheWVyTXV0YXRpb25S
b290ID0gbWFrZVdlYWtQdHIobGF5ZXIpOworICAgICAgICBtX3N0eWxlQ2hhbmdlTGF5ZXJNdXRh
dGlvblJvb3QgPSBsYXllcjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFJlbmRlckxh
eWVyKiBjb21tb25BbmNlc3RvciA9IG1fc3R5bGVDaGFuZ2VMYXllck11dGF0aW9uUm9vdC0+Y29t
bW9uQW5jZXN0b3JXaXRoTGF5ZXIobGF5ZXIpOwotICAgIG1fc3R5bGVDaGFuZ2VMYXllck11dGF0
aW9uUm9vdCA9IG1ha2VXZWFrUHRyKGNvbW1vbkFuY2VzdG9yKTsKKyAgICBtX3N0eWxlQ2hhbmdl
TGF5ZXJNdXRhdGlvblJvb3QgPSBjb21tb25BbmNlc3RvcjsKIH0KIAogUmVuZGVyTGF5ZXIqIFJl
bmRlclZpZXc6OnRha2VTdHlsZUNoYW5nZUxheWVyVHJlZU11dGF0aW9uUm9vdCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuaApp
bmRleCBhMGI4ODdmN2JmMTBhOWVhYjNjYWVmZDc1OTk0ZDI1YWE0ZWE1YzJkLi5iOWRjMWNkNzI2
MjRkMzA4N2JmMWM3YWE0ZTQ4ODJlZDJhOTNlOWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmgKQEAgLTQ0LDcgKzQ0LDcg
QEAgcHVibGljOgogICAgIFN0cmluZyBjbG9zaW5nQnJhY2UoKSBjb25zdCB7IHJldHVybiBtX2Ns
b3NlOyB9CiAKICAgICBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvciogY2xvc2VGZW5jZVJlbmRl
cmVyKCkgY29uc3QgeyByZXR1cm4gbV9jbG9zZUZlbmNlUmVuZGVyZXIuZ2V0KCk7IH0KLSAgICB2
b2lkIHNldENsb3NlRmVuY2VSZW5kZXJlcihSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvciYgcmVu
ZGVyZXIpIHsgbV9jbG9zZUZlbmNlUmVuZGVyZXIgPSBtYWtlV2Vha1B0cihyZW5kZXJlcik7IH0K
KyAgICB2b2lkIHNldENsb3NlRmVuY2VSZW5kZXJlcihSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRv
ciYgcmVuZGVyZXIpIHsgbV9jbG9zZUZlbmNlUmVuZGVyZXIgPSByZW5kZXJlcjsgfQogCiAgICAg
dm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAppbmRleCA4YzIyZDFlNTQ2NTk4MWFmODAyMzJk
MmJlODIyMDJlNTQyMTBhZjU1Li40OWI2ZTVjZDczYjdkNDgwYzlkYmFkNzcyZmY2YzMyYTgwNTli
MGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1
cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3Vw
cG9ydC5jcHAKQEAgLTUzMSw3ICs1MzEsNyBAQCB2b2lkIFNWR1JlbmRlclN1cHBvcnQ6OnVwZGF0
ZU1hc2tlZEFuY2VzdG9yU2hvdWxkSXNvbGF0ZUJsZW5kaW5nKGNvbnN0IFJlbmRlckVsZQogCiBT
VkdIaXRUZXN0Q3ljbGVEZXRlY3Rpb25TY29wZTo6U1ZHSGl0VGVzdEN5Y2xlRGV0ZWN0aW9uU2Nv
cGUoY29uc3QgUmVuZGVyRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBtX2VsZW1lbnQgPSBtYWtl
V2Vha1B0cigmZWxlbWVudCk7CisgICAgbV9lbGVtZW50ID0gZWxlbWVudDsKICAgICBhdXRvIHJl
c3VsdCA9IHZpc2l0ZWRFbGVtZW50cygpLmFkZCgqbV9lbGVtZW50KTsKICAgICBBU1NFUlRfVU5V
U0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKaW5kZXggNDMw
YTM0MmY2M2I5Mzg0NGY0MWI3NTdiMGRmYWQ5YWFiYjI3Y2NjNC4uNTgxOGYzOGMzODk5MzYzZDY2
OGQzY2NkMzQ4ZGRjOTFiMjUzMjMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCkBAIC03MzEsNyArNzMxLDcg
QEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJUcmVlQnVpbGRlcjo6c3BsaXRBbm9ueW1vdXNCb3hlc0Fy
b3VuZENoaWxkKFJlbmRlckJveCYgcGFyZW4KIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OmNoaWxk
Rmxvd1N0YXRlQ2hhbmdlc0FuZEFmZmVjdHNQYXJlbnRCbG9jayhSZW5kZXJFbGVtZW50JiBjaGls
ZCkKIHsKICAgICBpZiAoIWNoaWxkLmlzSW5saW5lKCkpIHsKLSAgICAgICAgYXV0byBwYXJlbnQg
PSBtYWtlV2Vha1B0cihjaGlsZC5wYXJlbnQoKSk7CisgICAgICAgIFdlYWtQdHIgcGFyZW50ID0g
Y2hpbGQucGFyZW50KCk7CiAgICAgICAgIGlmIChpczxSZW5kZXJCbG9jaz4oKnBhcmVudCkpCiAg
ICAgICAgICAgICBibG9ja0J1aWxkZXIoKS5jaGlsZEJlY2FtZU5vbklubGluZShkb3duY2FzdDxS
ZW5kZXJCbG9jaz4oKnBhcmVudCksIGNoaWxkKTsKICAgICAgICAgZWxzZSBpZiAoaXM8UmVuZGVy
SW5saW5lPigqcGFyZW50KSkKQEAgLTg2Myw3ICs4NjMsNyBAQCB2b2lkIFJlbmRlclRyZWVCdWls
ZGVyOjpkZXN0cm95QW5kQ2xlYW5VcEFub255bW91c1dyYXBwZXJzKFJlbmRlck9iamVjdCYgcmVu
ZGVyZQogICAgIGNvbGxhcHNlQW5kRGVzdHJveUFub255bW91c1NpYmxpbmdzKCk7CiAKICAgICAv
LyBGSVhNRTogRG8gbm90IHRyeSB0byBjb2xsYXBzZS9jbGVhbnVwIHRoZSBhbm9ueW1vdXMgd3Jh
cHBlcnMgaW5zaWRlIGRlc3Ryb3kgKHNlZSB3ZWJraXQub3JnL2IvMTg2NzQ2KS4KLSAgICBhdXRv
IGRlc3Ryb3lSb290UGFyZW50ID0gbWFrZVdlYWtQdHIoKmRlc3Ryb3lSb290LnBhcmVudCgpKTsK
KyAgICBXZWFrUHRyIGRlc3Ryb3lSb290UGFyZW50ID0gKmRlc3Ryb3lSb290LnBhcmVudCgpOwog
ICAgIGlmICgmcmVuZGVyZXJUb0Rlc3Ryb3kgIT0gJmRlc3Ryb3lSb290KSB7CiAgICAgICAgIC8v
IERlc3Ryb3kgdGhlIGNoaWxkIHJlbmRlcmVyIGZpcnN0LCBiZWZvcmUgd2Ugc3RhcnQgdGVhcmlu
ZyBkb3duIHRoZSBhbm9ueW1vdXMgd3JhcHBlciBhbmNlc3RvciBjaGFpbi4KICAgICAgICAgZGVz
dHJveShyZW5kZXJlclRvRGVzdHJveSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJCbG9jay5jcHAKaW5kZXggNTY4
YTIyYzJjMDYyZjA3YjQ1MzY1ZjljMzE3MjA1NzU0NDE3NTEwNy4uMTZlZTBmZGVhZmM4NDZjNGQ2
NWIwZWE2NGMxNzhlMzI3N2EzYWJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcApAQCAtMjg3
LDggKzI4Nyw4IEBAIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclRyZWVCdWlsZGVyOjpC
bG9jazo6ZGV0YWNoKFJlbmRlckJsb2NrJiBwYXJlbnQsIFJlCiAKICAgICAvLyBJZiB0aGlzIGNo
aWxkIGlzIGEgYmxvY2ssIGFuZCBpZiBvdXIgcHJldmlvdXMgYW5kIG5leHQgc2libGluZ3MgYXJl
IGJvdGggYW5vbnltb3VzIGJsb2NrcwogICAgIC8vIHdpdGggaW5saW5lIGNvbnRlbnQsIHRoZW4g
d2UgY2FuIGZvbGQgdGhlIGlubGluZSBjb250ZW50IGJhY2sgdG9nZXRoZXIuCi0gICAgYXV0byBw
cmV2ID0gbWFrZVdlYWtQdHIob2xkQ2hpbGQucHJldmlvdXNTaWJsaW5nKCkpOwotICAgIGF1dG8g
bmV4dCA9IG1ha2VXZWFrUHRyKG9sZENoaWxkLm5leHRTaWJsaW5nKCkpOworICAgIFdlYWtQdHIg
cHJldiA9IG9sZENoaWxkLnByZXZpb3VzU2libGluZygpOworICAgIFdlYWtQdHIgbmV4dCA9IG9s
ZENoaWxkLm5leHRTaWJsaW5nKCk7CiAgICAgYm9vbCBjYW5NZXJnZUFub255bW91c0Jsb2NrcyA9
IGNhbkNvbGxhcHNlQW5vbnltb3VzQmxvY2sgPT0gQ2FuQ29sbGFwc2VBbm9ueW1vdXNCbG9jazo6
WWVzICYmIGNhbk1lcmdlQ29udGlndW91c0Fub255bW91c0Jsb2NrcyhvbGRDaGlsZCwgcHJldi5n
ZXQoKSwgbmV4dC5nZXQoKSk7CiAKICAgICBhdXRvIHRha2VuQ2hpbGQgPSBtX2J1aWxkZXIuZGV0
YWNoRnJvbVJlbmRlckVsZW1lbnQocGFyZW50LCBvbGRDaGlsZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxk
ZXJGaXJzdExldHRlci5jcHAKaW5kZXggNzIxNGNmMTNjNDgxNjgwNGRhNmUzODRhNGViMTZhZGRm
YWM1YjRhYy4uNjAyYzBmMjdiOWU5NDM5Y2M3MjMzNTJkODc3NzBhYjNkNjJjOTYxYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVy
Rmlyc3RMZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlQnVpbGRlckZpcnN0TGV0dGVyLmNwcApAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQg
UmVuZGVyVHJlZUJ1aWxkZXI6OkZpcnN0TGV0dGVyOjp1cGRhdGVTdHlsZShSZW5kZXJCbG9jayYg
Zmlyc3RMZXR0ZXJCbG9jaywKICAgICAgICAgICAgIHJlbWFpbmluZ1RleHQtPnNldEZpcnN0TGV0
dGVyKCpuZXdGaXJzdExldHRlcik7CiAgICAgICAgICAgICBuZXdGaXJzdExldHRlci0+c2V0Rmly
c3RMZXR0ZXJSZW1haW5pbmdUZXh0KCpyZW1haW5pbmdUZXh0KTsKICAgICAgICAgfQotICAgICAg
ICBXZWFrUHRyPFJlbmRlck9iamVjdD4gbmV4dFNpYmxpbmcgPSBtYWtlV2Vha1B0cihmaXJzdExl
dHRlci0+bmV4dFNpYmxpbmcoKSk7CisgICAgICAgIFdlYWtQdHI8UmVuZGVyT2JqZWN0PiBuZXh0
U2libGluZyA9IGZpcnN0TGV0dGVyLT5uZXh0U2libGluZygpOwogICAgICAgICBtX2J1aWxkZXIu
ZGVzdHJveSgqZmlyc3RMZXR0ZXIpOwogICAgICAgICBtX2J1aWxkZXIuYXR0YWNoKCpmaXJzdExl
dHRlckNvbnRhaW5lciwgV1RGTW92ZShuZXdGaXJzdExldHRlciksIG5leHRTaWJsaW5nLmdldCgp
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjUxLDggKzI1MSw4IEBAIHZvaWQgUmVuZGVyVHJlZUJ1
aWxkZXI6OkZpcnN0TGV0dGVyOjpjcmVhdGVSZW5kZXJlcnMoUmVuZGVyQmxvY2smIGZpcnN0TGV0
dGVyQmxvCiAgICAgICAgIH0KIAogICAgICAgICBhdXRvKiB0ZXh0Tm9kZSA9IGN1cnJlbnRUZXh0
Q2hpbGQudGV4dE5vZGUoKTsKLSAgICAgICAgYXV0byBiZWZvcmVDaGlsZCA9IG1ha2VXZWFrUHRy
KGN1cnJlbnRUZXh0Q2hpbGQubmV4dFNpYmxpbmcoKSk7Ci0gICAgICAgIGF1dG8gaW5saW5lV3Jh
cHBlckZvckRpc3BsYXlDb250ZW50cyA9IG1ha2VXZWFrUHRyKGN1cnJlbnRUZXh0Q2hpbGQuaW5s
aW5lV3JhcHBlckZvckRpc3BsYXlDb250ZW50cygpKTsKKyAgICAgICAgV2Vha1B0ciBiZWZvcmVD
aGlsZCA9IGN1cnJlbnRUZXh0Q2hpbGQubmV4dFNpYmxpbmcoKTsKKyAgICAgICAgV2Vha1B0ciBp
bmxpbmVXcmFwcGVyRm9yRGlzcGxheUNvbnRlbnRzID0gY3VycmVudFRleHRDaGlsZC5pbmxpbmVX
cmFwcGVyRm9yRGlzcGxheUNvbnRlbnRzKCk7CiAgICAgICAgIGF1dG8gaGFzSW5saW5lV3JhcHBl
ckZvckRpc3BsYXlDb250ZW50cyA9IGlubGluZVdyYXBwZXJGb3JEaXNwbGF5Q29udGVudHMuZ2V0
KCk7CiAgICAgICAgIG1fYnVpbGRlci5kZXN0cm95KGN1cnJlbnRUZXh0Q2hpbGQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxk
ZXJNdWx0aUNvbHVtbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVu
ZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5jcHAKaW5kZXggMjhmNDdkMmU5ODI4YTg5OWZmNDcz
Y2ZiNWQ3MThlMGViZDk1OWFiMS4uYzE5NDFiOTlhOWMwNjgzMTM5MDQxNzM0ZGM3Y2JkYzM2MTkw
ZmYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVCdWlsZGVyTXVsdGlDb2x1bW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1uLmNwcApAQCAtMjk1LDcgKzI5
NSw3IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6Ok11bHRpQ29sdW1uOjptdWx0aUNvbHVtbkRl
c2NlbmRhbnRJbnNlcnRlZChSZW5kZXJNdWx0aUNvCiAgICAgICAgICAgICAvLyBjb2x1bW4gc2V0
cy4KICAgICAgICAgICAgIFJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyJiBwbGFj
ZWhvbGRlciA9IGRvd25jYXN0PFJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyPigq
ZGVzY2VuZGFudCk7CiAgICAgICAgICAgICBBU1NFUlQoIWZsb3cuc3Bhbm5lck1hcCgpLmdldChw
bGFjZWhvbGRlci5zcGFubmVyKCkpKTsKLSAgICAgICAgICAgIGZsb3cuc3Bhbm5lck1hcCgpLmFk
ZChwbGFjZWhvbGRlci5zcGFubmVyKCksIG1ha2VXZWFrUHRyKGRvd25jYXN0PFJlbmRlck11bHRp
Q29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyPihkZXNjZW5kYW50KSkpOworICAgICAgICAgICAgZmxv
dy5zcGFubmVyTWFwKCkuYWRkKHBsYWNlaG9sZGVyLnNwYW5uZXIoKSwgZG93bmNhc3Q8UmVuZGVy
TXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI+KGRlc2NlbmRhbnQpKTsKICAgICAgICAgICAg
IEFTU0VSVCghcGxhY2Vob2xkZXIuZmlyc3RDaGlsZCgpKTsgLy8gVGhlcmUgc2hvdWxkIGJlIG5v
IGNoaWxkcmVuIGhlcmUsIGJ1dCBpZiB0aGVyZSBhcmUsIHdlIG91Z2h0IHRvIHNraXAgdGhlbS4K
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBkZXNjZW5kYW50ID0gcHJvY2Vzc1Bvc3NpYmxl
U3Bhbm5lckRlc2NlbmRhbnQoZmxvdywgc3VidHJlZVJvb3QsICpkZXNjZW5kYW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlUG9zaXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVQb3Np
dGlvbi5jcHAKaW5kZXggNTQ1Mzg5MjRjZjQyOTEzOTI3ZTYzNjcwNGNmYTI4N2I3MDBjMmVkNC4u
NzY5MjY2OTgwZDZhNWU1OTdlNDUxYjAxMTgwYmMxNGY3MGU2ZDEyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVQb3NpdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVQb3NpdGlvbi5j
cHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdm9pZCBSZW5kZXJUcmVlUG9zaXRpb246OmNvbXB1dGVOZXh0
U2libGluZyhjb25zdCBOb2RlJiBub2RlKQogI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgbV9uZXh0U2libGluZyA9IG1ha2VXZWFrUHRyKG5leHRTaWJsaW5nUmVuZGVyZXIobm9k
ZSkpOworICAgIG1fbmV4dFNpYmxpbmcgPSBuZXh0U2libGluZ1JlbmRlcmVyKG5vZGUpOwogICAg
IG1faGFzVmFsaWROZXh0U2libGluZyA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlUG9zaXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlUG9zaXRpb24uaAppbmRleCA4Mzg5
MGU0NTU0ZmI3N2RjM2IxMWJmODMzMjQwOTJkODYxMDNkODkxLi43Y2UyYTljYmExYTk1OGRhN2Q4
NTU2ZTJkYTg1ZThkODg5MTAwYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvdXBkYXRpbmcvUmVuZGVyVHJlZVBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVQb3NpdGlvbi5oCkBAIC0zNyw3ICszNyw3IEBAIHB1
YmxpYzoKICAgICB9CiAgICAgUmVuZGVyVHJlZVBvc2l0aW9uKFJlbmRlckVsZW1lbnQmIHBhcmVu
dCwgUmVuZGVyT2JqZWN0KiBuZXh0U2libGluZykKICAgICAgICAgOiBtX3BhcmVudChwYXJlbnQp
Ci0gICAgICAgICwgbV9uZXh0U2libGluZyhtYWtlV2Vha1B0cihuZXh0U2libGluZykpCisgICAg
ICAgICwgbV9uZXh0U2libGluZyhuZXh0U2libGluZykKICAgICAgICAgLCBtX2hhc1ZhbGlkTmV4
dFNpYmxpbmcodHJ1ZSkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyR2VuZXJhdGVkQ29udGVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXJHZW5l
cmF0ZWRDb250ZW50LmNwcAppbmRleCBjYzRhYzViNWJlZjM3MzcwOGI2MWM0ODFhOTk1YzQ5NWE5
MDg2NWE0Li5hNzk3OGZjYjU4NjY0ZGQ5Nzk2NzNmNTY5YTg4NzgyMTQ3N2E5MzBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXJH
ZW5lcmF0ZWRDb250ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZVVwZGF0ZXJHZW5lcmF0ZWRDb250ZW50LmNwcApAQCAtNjIsNyArNjIsNyBA
QCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjpHZW5lcmF0ZWRDb250ZW50Ojp1cGRhdGVRdW90ZXNV
cFRvKFJlbmRlclF1b3RlKiBsYXN0UXVvdAogICAgICAgICBhdXRvJiBxdW90ZSA9ICppdDsKICAg
ICAgICAgLy8gUXVvdGUgY2hhcmFjdGVyIGRlcGVuZHMgb24gcXVvdGUgZGVwdGggc28gd2UgY2hh
aW4gdGhlIHVwZGF0ZXMuCiAgICAgICAgIHF1b3RlLnVwZGF0ZVJlbmRlcmVyKG1fdXBkYXRlci5t
X2J1aWxkZXIsIG1fcHJldmlvdXNVcGRhdGVkUXVvdGUuZ2V0KCkpOwotICAgICAgICBtX3ByZXZp
b3VzVXBkYXRlZFF1b3RlID0gbWFrZVdlYWtQdHIocXVvdGUpOworICAgICAgICBtX3ByZXZpb3Vz
VXBkYXRlZFF1b3RlID0gcXVvdGU7CiAgICAgICAgIGlmICgmcXVvdGUgPT0gbGFzdFF1b3RlKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5MiwxMyArMTkyLDEzIEBAIHZvaWQgUmVu
ZGVyVHJlZVVwZGF0ZXI6OkdlbmVyYXRlZENvbnRlbnQ6OnVwZGF0ZUJhY2tkcm9wUmVuZGVyZXIo
UmVuZGVyRWxlbWVudCYKICAgICBlbHNlIHsKICAgICAgICAgbmV3QmFja2Ryb3BSZW5kZXJlciA9
IFdlYkNvcmU6OmNyZWF0ZVJlbmRlcmVyPFJlbmRlckJsb2NrRmxvdz4ocmVuZGVyZXIuZG9jdW1l
bnQoKSwgV1RGTW92ZShuZXdTdHlsZSkpOwogICAgICAgICBuZXdCYWNrZHJvcFJlbmRlcmVyLT5p
bml0aWFsaXplU3R5bGUoKTsKLSAgICAgICAgYmFja2Ryb3BSZW5kZXJlciA9IG1ha2VXZWFrUHRy
KG5ld0JhY2tkcm9wUmVuZGVyZXIuZ2V0KCkpOworICAgICAgICBiYWNrZHJvcFJlbmRlcmVyID0g
bmV3QmFja2Ryb3BSZW5kZXJlci5nZXQoKTsKICAgICAgICAgcmVuZGVyZXIuc2V0QmFja2Ryb3BS
ZW5kZXJlcigqYmFja2Ryb3BSZW5kZXJlcik7CiAgICAgfQogCiAgICAgLy8gVXBkYXRlIG9yIGF0
dGFjaCB0byByZW5kZXJlciBwYXJlbnQKLSAgICBhdXRvIGN1cnJlbnRQYXJlbnQgPSBtYWtlV2Vh
a1B0cihiYWNrZHJvcFJlbmRlcmVyLT5wYXJlbnQoKSk7Ci0gICAgYXV0byBuZXdQYXJlbnQgPSBt
YWtlV2Vha1B0cihyZW5kZXJlci5wYXJlbnQoKSk7CisgICAgV2Vha1B0ciBjdXJyZW50UGFyZW50
ID0gYmFja2Ryb3BSZW5kZXJlci0+cGFyZW50KCk7CisgICAgV2Vha1B0ciBuZXdQYXJlbnQgPSBy
ZW5kZXJlci5wYXJlbnQoKTsKIAogICAgIEFTU0VSVChuZXdQYXJlbnQsICJTaG91bGQgaGF2ZSBu
ZXcgcGFyZW50Iik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCA3MmQxNDY4NTVl
OGY1MDNhMTRiMjlhYzM0YjlhOTUwZGY4MDkyY2ZlLi41Y2M2ODExMzNiNWE4MTU2NDM1ZjM5ZjUy
YjE2MjM0ZGM1NjNiNDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC0zMjEsNyAr
MzIxLDcgQEAgdm9pZCBTVkdFbGVtZW50OjphZGRSZWZlcmVuY2luZ0VsZW1lbnQoU1ZHRWxlbWVu
dCYgZWxlbWVudCkKICAgICBlbnN1cmVTVkdSYXJlRGF0YSgpLmFkZFJlZmVyZW5jaW5nRWxlbWVu
dChlbGVtZW50KTsKICAgICBhdXRvJiByYXJlRGF0YU9mUmVmZXJlbmNpbmdFbGVtZW50ID0gZWxl
bWVudC5lbnN1cmVTVkdSYXJlRGF0YSgpOwogICAgIFJFTEVBU0VfQVNTRVJUKCFyYXJlRGF0YU9m
UmVmZXJlbmNpbmdFbGVtZW50LnJlZmVyZW5jZVRhcmdldCgpKTsKLSAgICByYXJlRGF0YU9mUmVm
ZXJlbmNpbmdFbGVtZW50LnNldFJlZmVyZW5jZVRhcmdldChtYWtlV2Vha1B0cigqdGhpcykpOwor
ICAgIHJhcmVEYXRhT2ZSZWZlcmVuY2luZ0VsZW1lbnQuc2V0UmVmZXJlbmNlVGFyZ2V0KCp0aGlz
KTsKIH0KIAogdm9pZCBTVkdFbGVtZW50OjpyZW1vdmVSZWZlcmVuY2luZ0VsZW1lbnQoU1ZHRWxl
bWVudCYgZWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50
UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50UmFyZURhdGEuaAppbmRl
eCBiYmZjYmIxODEzNzE0ODBhMzFlNDJkMTQ1NDAwMDI4MGNjOWJhNjllLi43OWMxZThjMmYyZDYx
NjgzMTkzM2UzODE3YmMyOTJlZTVmMGU0NTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1l
bnRSYXJlRGF0YS5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWFrSGFz
aFNldDxTVkdSZXNvdXJjZUVsZW1lbnRDbGllbnQ+JiByZWZlcmVuY2luZ0NTU0NsaWVudHMoKSBj
b25zdCB7IHJldHVybiBtX3JlZmVyZW5jaW5nQ1NTQ2xpZW50czsgfQogCiAgICAgU1ZHRWxlbWVu
dCogY29ycmVzcG9uZGluZ0VsZW1lbnQoKSB7IHJldHVybiBtX2NvcnJlc3BvbmRpbmdFbGVtZW50
LmdldCgpOyB9Ci0gICAgdm9pZCBzZXRDb3JyZXNwb25kaW5nRWxlbWVudChTVkdFbGVtZW50KiBj
b3JyZXNwb25kaW5nRWxlbWVudCkgeyBtX2NvcnJlc3BvbmRpbmdFbGVtZW50ID0gbWFrZVdlYWtQ
dHIoY29ycmVzcG9uZGluZ0VsZW1lbnQpOyB9CisgICAgdm9pZCBzZXRDb3JyZXNwb25kaW5nRWxl
bWVudChTVkdFbGVtZW50KiBjb3JyZXNwb25kaW5nRWxlbWVudCkgeyBtX2NvcnJlc3BvbmRpbmdF
bGVtZW50ID0gY29ycmVzcG9uZGluZ0VsZW1lbnQ7IH0KIAogICAgIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMqIGFuaW1hdGVkU01JTFN0eWxlUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fYW5p
bWF0ZWRTTUlMU3R5bGVQcm9wZXJ0aWVzLmdldCgpOyB9CiAgICAgTXV0YWJsZVN0eWxlUHJvcGVy
dGllcyYgZW5zdXJlQW5pbWF0ZWRTTUlMU3R5bGVQcm9wZXJ0aWVzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ZpZXdFbGVtZW50LmgKaW5kZXggYmNkNmMxODJlYmFhYTBhMDM3ZDcwOTZlNmI1YzczNzQyNTEz
YzRmMy4uYzAyMTEyMmM1MzAzNWQxNDZlZDgzNGU5OTEzYjFiZDZlOThmODM2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIHVz
aW5nIFNWR0VsZW1lbnQ6OmRlcmVmOwogCiAgICAgY29uc3QgU1ZHU1ZHRWxlbWVudCogdGFyZ2V0
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0RWxlbWVudC5nZXQoKTsgfQotICAgIHZv
aWQgc2V0VGFyZ2V0RWxlbWVudChjb25zdCBTVkdTVkdFbGVtZW50JiB0YXJnZXRFbGVtZW50KSB7
IG1fdGFyZ2V0RWxlbWVudCA9IG1ha2VXZWFrUHRyKHRhcmdldEVsZW1lbnQpOyB9CisgICAgdm9p
ZCBzZXRUYXJnZXRFbGVtZW50KGNvbnN0IFNWR1NWR0VsZW1lbnQmIHRhcmdldEVsZW1lbnQpIHsg
bV90YXJnZXRFbGVtZW50ID0gdGFyZ2V0RWxlbWVudDsgfQogICAgIHZvaWQgcmVzZXRUYXJnZXRF
bGVtZW50KCkgeyBtX3RhcmdldEVsZW1lbnQgPSBudWxscHRyOyB9CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAppbmRleCAxYWM2OTM3MThkNmUxZWI5ZTQ5NjBiNTUxODkw
MTcyYTEyNDQ5YzcyLi40ZWYxY2QxNDU2YWMwOTJjZDkzNjg5NDRlMWFhODdkMGMyMGMyYmE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBTVkdWaWV3U3BlYzo6U1ZHVmlld1NwZWMoU1ZHRWxlbWVudCYgY29udGV4
dEVsZW1lbnQpCiAgICAgOiBTVkdGaXRUb1ZpZXdCb3goJmNvbnRleHRFbGVtZW50LCBTVkdQcm9w
ZXJ0eUFjY2Vzczo6UmVhZE9ubHkpCi0gICAgLCBtX2NvbnRleHRFbGVtZW50KG1ha2VXZWFrUHRy
KGNvbnRleHRFbGVtZW50KSkKKyAgICAsIG1fY29udGV4dEVsZW1lbnQoY29udGV4dEVsZW1lbnQp
CiAgICAgLCBtX3RyYW5zZm9ybShTVkdUcmFuc2Zvcm1MaXN0OjpjcmVhdGUoJmNvbnRleHRFbGVt
ZW50LCBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZE9ubHkpKQogewogICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBvbmNlRmxhZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA4
YzdjYTllOWJmMWE4MzA3OTdlNmM1MjNiNjIyNTA2YTdiYTQ5NGMwLi5lMDkyM2Q0ZmUxMjdhMjc5
NTQ2ZDViODEwMTk1M2Y4YzM5ZDlhNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC02MjY3LDcgKzYyNjcsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8V2ViWFJUZXN0Pj4g
SW50ZXJuYWxzOjp4clRlc3QoKQogICAgICAgICBpZiAoIW5hdmlnYXRvcikKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKIAotICAgICAgICBtX3hy
VGVzdCA9IFdlYlhSVGVzdDo6Y3JlYXRlKG1ha2VXZWFrUHRyKCZOYXZpZ2F0b3JXZWJYUjo6eHIo
Km5hdmlnYXRvcikpKTsKKyAgICAgICAgbV94clRlc3QgPSBXZWJYUlRlc3Q6OmNyZWF0ZShOYXZp
Z2F0b3JXZWJYUjo6eHIoKm5hdmlnYXRvcikpOwogICAgIH0KICAgICByZXR1cm4gbV94clRlc3Qu
Z2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0
b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCmluZGV4
IGJjMzI0NmJmNmIyYzIwNjM4YmZiNDIyNWNmNzBkNTFhOGZiMzBmMDMuLjQxMWVkYmIzNTE3Yjg0
OGZhYzA2M2QxOWU4Y2Q5NWVjMDAzN2NkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a0NETUZhY3RvcnkuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBNb2NrQ0RNRmFjdG9yeTo6
c2V0U3VwcG9ydGVkUm9idXN0bmVzcyhWZWN0b3I8U3RyaW5nPiYmIHJvYnVzdG5lc3NlcykKIAog
c3RkOjp1bmlxdWVfcHRyPENETVByaXZhdGU+IE1vY2tDRE1GYWN0b3J5OjpjcmVhdGVDRE0oY29u
c3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxNb2NrQ0RNPihtYWtlV2Vha1B0
cigqdGhpcykpOworICAgIHJldHVybiBtYWtlVW5pcXVlPE1vY2tDRE0+KCp0aGlzKTsKIH0KIAog
TW9ja0NETTo6TW9ja0NETShXZWFrUHRyPE1vY2tDRE1GYWN0b3J5PiBmYWN0b3J5KQpAQCAtMTg0
LDcgKzE4NCw3IEBAIFJlZlB0cjxDRE1JbnN0YW5jZT4gTW9ja0NETTo6Y3JlYXRlSW5zdGFuY2Uo
KQogewogICAgIGlmIChtX2ZhY3RvcnkgJiYgIW1fZmFjdG9yeS0+Y2FuQ3JlYXRlSW5zdGFuY2Vz
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTW9j
a0NETUluc3RhbmNlKG1ha2VXZWFrUHRyKCp0aGlzKSkpOworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgTW9ja0NETUluc3RhbmNlKCp0aGlzKSk7CiB9CiAKIHZvaWQgTW9ja0NETTo6bG9hZEFuZElu
aXRpYWxpemUoKQpAQCAtMjg5LDcgKzI4OSw3IEBAIGNvbnN0IFN0cmluZyYgTW9ja0NETUluc3Rh
bmNlOjprZXlTeXN0ZW0oKSBjb25zdAogCiBSZWZQdHI8Q0RNSW5zdGFuY2VTZXNzaW9uPiBNb2Nr
Q0RNSW5zdGFuY2U6OmNyZWF0ZVNlc3Npb24oKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
TW9ja0NETUluc3RhbmNlU2Vzc2lvbihtYWtlV2Vha1B0cigqdGhpcykpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IE1vY2tDRE1JbnN0YW5jZVNlc3Npb24oKnRoaXMpKTsKIH0KIAogTW9ja0NE
TUluc3RhbmNlU2Vzc2lvbjo6TW9ja0NETUluc3RhbmNlU2Vzc2lvbihXZWFrUHRyPE1vY2tDRE1J
bnN0YW5jZT4mJiBpbnN0YW5jZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyRm9udExvYWRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Rm9udExvYWRSZXF1ZXN0LmNwcAppbmRleCAwOTM0MWRiODM1ODExYzQ5ODJhOTU3MTliODJkYzU4
ZjQ3MGI3NTVmLi42NGM1NWYzNTc2NGI3NWI2MmE1Y2U1NTQxYTg2ZWZkYjlhYmM5NTViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckZvbnRMb2FkUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuY3BwCkBA
IC00OSw3ICs0OSw3IEBAIFdvcmtlckZvbnRMb2FkUmVxdWVzdDo6V29ya2VyRm9udExvYWRSZXF1
ZXN0KFVSTCYmIHVybCwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSBsCiAKIHZvaWQgV29ya2VyRm9u
dExvYWRSZXF1ZXN0Ojpsb2FkKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSkK
IHsKLSAgICBtX2NvbnRleHQgPSBtYWtlV2Vha1B0cihzdGF0aWNfY2FzdDxTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kj4oJndvcmtlckdsb2JhbFNjb3BlKSk7CisgICAgbV9jb250ZXh0ID0gc3RhdGlj
X2Nhc3Q8U2NyaXB0RXhlY3V0aW9uQ29udGV4dCo+KCZ3b3JrZXJHbG9iYWxTY29wZSk7CiAKICAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fdXJsIH07CiAgICAgQVNTRVJUKHJlcXVlc3Qu
aHR0cE1ldGhvZCgpID09ICJHRVQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5jcHAKaW5kZXggMjBhNDBiYWIzMDk5MGIyYzIzYjlkNjI2NDRhNWE2ZTU1NDBl
ZTgwYy4uNDU5MDEzYzhmYTQzMjFjZmEwODVhZGY1M2ViNDAzOWU3ODk4Zjc5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTM3MCw3ICszNzAs
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXb3JrZXJHbG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscykKICAgICAgICAgewogICAgICAgICAgICAgTmFrZWRQ
dHI8SlNDOjpFeGNlcHRpb24+IGV4Y2VwdGlvbjsKICAgICAgICAgICAgIFNjcmlwdFNvdXJjZUNv
ZGUgc291cmNlQ29kZShzY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBVUkwoc2NyaXB0TG9hZGVyLT5y
ZXNwb25zZVVSTCgpKSk7Ci0gICAgICAgICAgICBzb3VyY2VQcm92aWRlciA9IG1ha2VXZWFrUHRy
KHN0YXRpY19jYXN0PFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyJj4oc291cmNlQ29kZS5wcm92
aWRlcigpKSk7CisgICAgICAgICAgICBzb3VyY2VQcm92aWRlciA9IHN0YXRpY19jYXN0PFNjcmlw
dEJ1ZmZlclNvdXJjZVByb3ZpZGVyJj4oc291cmNlQ29kZS5wcm92aWRlcigpKTsKICAgICAgICAg
ICAgIHNjcmlwdCgpLT5ldmFsdWF0ZShzb3VyY2VDb2RlLCBleGNlcHRpb24pOwogICAgICAgICAg
ICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgIHNjcmlwdCgpLT5zZXRFeGNlcHRp
b24oZXhjZXB0aW9uKTsKQEAgLTU5NCw3ICs1OTQsNyBAQCB2b2lkIFdvcmtlckdsb2JhbFNjb3Bl
OjpyZWxlYXNlTWVtb3J5SW5Xb3JrZXJzKFN5bmNocm9ub3VzIHN5bmNocm9ub3VzKQogdm9pZCBX
b3JrZXJHbG9iYWxTY29wZTo6c2V0TWFpblNjcmlwdFNvdXJjZVByb3ZpZGVyKFNjcmlwdEJ1ZmZl
clNvdXJjZVByb3ZpZGVyJiBwcm92aWRlcikKIHsKICAgICBBU1NFUlQoIW1fbWFpblNjcmlwdFNv
dXJjZVByb3ZpZGVyKTsKLSAgICBtX21haW5TY3JpcHRTb3VyY2VQcm92aWRlciA9IG1ha2VXZWFr
UHRyKHByb3ZpZGVyKTsKKyAgICBtX21haW5TY3JpcHRTb3VyY2VQcm92aWRlciA9IHByb3ZpZGVy
OwogfQogCiB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjphZGRJbXBvcnRlZFNjcmlwdFNvdXJjZVBy
b3ZpZGVyKGNvbnN0IFVSTCYgdXJsLCBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlciYgcHJvdmlk
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNj
cmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBmZjI3YjZhNmViNDQ3ZDZkYTlhZjY1NTIzZjE5
Yjc4YTVhMDZiY2U5Li5hZTZjMTg2Y2IyODRjNDFmYjNlMjI3YjYzYWJhNzZmM2U3YjRkZjA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIFdvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHRXaXRoU3ViY2xhc3MoKQogICAgIEFTU0VS
VChhc09iamVjdChtX2dsb2JhbFNjb3BlV3JhcHBlci0+Z2V0UHJvdG90eXBlRGlyZWN0KCptX3Zt
KSktPmdsb2JhbE9iamVjdCgpID09IG1fZ2xvYmFsU2NvcGVXcmFwcGVyKTsKIAogICAgIG1fY29u
c29sZUNsaWVudCA9IG1ha2VVbmlxdWU8V29ya2VyQ29uc29sZUNsaWVudD4oKm1fZ2xvYmFsU2Nv
cGUpOwotICAgIG1fZ2xvYmFsU2NvcGVXcmFwcGVyLT5zZXRDb25zb2xlQ2xpZW50KG1ha2VXZWFr
UHRyKCptX2NvbnNvbGVDbGllbnQpKTsKKyAgICBtX2dsb2JhbFNjb3BlV3JhcHBlci0+c2V0Q29u
c29sZUNsaWVudCgqbV9jb25zb2xlQ2xpZW50KTsKIH0KIAogdm9pZCBXb3JrZXJPcldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clJ1bkxvb3AuY3BwCmluZGV4IDNhY2ZmNjY4YjhlNTAyYWY0NTE4YzFiYWEzMDBjZTNkZjI0NWRm
N2YuLjZjMDJmMTMyZGZlOWY5OGI5ODc0YzZjMjQxYzI5ZDMyYmJlOGVkOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIFdvcmtl
ck1haW5SdW5Mb29wOjpXb3JrZXJNYWluUnVuTG9vcCgpCiAKIHZvaWQgV29ya2VyTWFpblJ1bkxv
b3A6OnNldEdsb2JhbFNjb3BlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlJiBnbG9iYWxTY29w
ZSkKIHsKLSAgICBtX3dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlID0gbWFrZVdlYWtQdHIoZ2xv
YmFsU2NvcGUpOworICAgIG1fd29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgPSBnbG9iYWxTY29w
ZTsKIH0KIAogdm9pZCBXb3JrZXJNYWluUnVuTG9vcDo6cG9zdFRhc2tBbmRUZXJtaW5hdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmIHRhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5jcHAKaW5kZXggMzhlMjNkYTg5NmQ1MDMxMjI2YzEyYzNjMjc3YzlkYjE5YTgz
MDZkMy4uZWY3MGFmMTdkMDA0ODFkYzIzMWVmNWE2ZjAzMzA5MmMyZTA4NjllYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMTM5LDEzICsxMzksMTMgQEAgdm9p
ZCBXb3JrZXJUaHJlYWQ6OmV2YWx1YXRlU2NyaXB0SWZOZWNlc3NhcnkoU3RyaW5nJiBleGNlcHRp
b25NZXNzYWdlKQogICAgIFdlYWtQdHI8U2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXI+IHNvdXJj
ZVByb3ZpZGVyOwogICAgIGlmIChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMud29ya2VyVHlwZSA9PSBX
b3JrZXJUeXBlOjpDbGFzc2ljKSB7CiAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29k
ZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNj
cmlwdFVSTCkpOwotICAgICAgICBzb3VyY2VQcm92aWRlciA9IG1ha2VXZWFrUHRyKHN0YXRpY19j
YXN0PFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyJj4oc291cmNlQ29kZS5wcm92aWRlcigpKSk7
CisgICAgICAgIHNvdXJjZVByb3ZpZGVyID0gc3RhdGljX2Nhc3Q8U2NyaXB0QnVmZmVyU291cmNl
UHJvdmlkZXImPihzb3VyY2VDb2RlLnByb3ZpZGVyKCkpOwogICAgICAgICBnbG9iYWxTY29wZSgp
LT5zY3JpcHQoKS0+ZXZhbHVhdGUoc291cmNlQ29kZSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOwogICAg
ICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKICAgICB9IGVsc2UgewogICAgICAgICBh
dXRvIHNjcmlwdEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpjcmVhdGUoZ2xvYmFsU2Nv
cGUoKS0+Y3JlZGVudGlhbHMoKSwgZ2xvYmFsU2NvcGUoKS0+ZGVzdGluYXRpb24oKSwgZ2xvYmFs
U2NvcGUoKS0+cmVmZXJyZXJQb2xpY3koKSk7CiAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291
cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFy
YW1zLnNjcmlwdFVSTCksIHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVs
ZSwgc2NyaXB0RmV0Y2hlci5jb3B5UmVmKCkpOwotICAgICAgICBzb3VyY2VQcm92aWRlciA9IG1h
a2VXZWFrUHRyKHN0YXRpY19jYXN0PFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyJj4oc291cmNl
Q29kZS5wcm92aWRlcigpKSk7CisgICAgICAgIHNvdXJjZVByb3ZpZGVyID0gc3RhdGljX2Nhc3Q8
U2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXImPihzb3VyY2VDb2RlLnByb3ZpZGVyKCkpOwogICAg
ICAgICBib29sIHN1Y2Nlc3MgPSBnbG9iYWxTY29wZSgpLT5zY3JpcHQoKS0+bG9hZE1vZHVsZVN5
bmNocm9ub3VzbHkoc2NyaXB0RmV0Y2hlci5nZXQoKSwgc291cmNlQ29kZSk7CiAgICAgICAgIGlm
IChzdWNjZXNzKSB7CiAgICAgICAgICAgICBpZiAoc3RkOjpvcHRpb25hbDxMb2FkYWJsZVNjcmlw
dDo6RXJyb3I+IGVycm9yID0gc2NyaXB0RmV0Y2hlci0+ZXJyb3IoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlv
bkRhdGFiYXNlLmNwcAppbmRleCBlN2RmNTE2YTcyYzk3ZTk3NmIwY2E3ODc1OGEzZGFiMWU5NDNm
YTQ1Li4xOGI3ZGE3MmM1NGVhZmZjMmM4NDUwOWE4ZDZkNjlkNjgxMTYwNDRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFi
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lz
dHJhdGlvbkRhdGFiYXNlLmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIHN0YXRpYyBSZWY8V29ya1F1
ZXVlPiByZWdpc3RyYXRpb25EYXRhYmFzZVdvcmtRdWV1ZSgpCiAKIFJlZ2lzdHJhdGlvbkRhdGFi
YXNlOjpSZWdpc3RyYXRpb25EYXRhYmFzZShSZWdpc3RyYXRpb25TdG9yZSYgc3RvcmUsIFN0cmlu
ZyYmIGRhdGFiYXNlRGlyZWN0b3J5KQogICAgIDogbV93b3JrUXVldWUocmVnaXN0cmF0aW9uRGF0
YWJhc2VXb3JrUXVldWUoKSkKLSAgICAsIG1fc3RvcmUobWFrZVdlYWtQdHIoc3RvcmUpKQorICAg
ICwgbV9zdG9yZShzdG9yZSkKICAgICAsIG1fZGF0YWJhc2VEaXJlY3RvcnkoV1RGTW92ZShkYXRh
YmFzZURpcmVjdG9yeSkpCiAgICAgLCBtX2RhdGFiYXNlRmlsZVBhdGgoRmlsZVN5c3RlbTo6cGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnksIGRhdGFiYXNlRmlsZW5h
bWUoKSkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuY3BwCmluZGV4IGNhOTlhNzA0OTNiYzM3YTA0MzhjMTU1YTRjNDk0M2UyZWRmOTY2
ZmUuLjJjZWYzZDBhODgzNzkzMDcxOWI4Mjg2NDQzNGM2M2E5MzUwN2Y0NzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0x
OTYsMTIgKzE5NiwxMiBAQCB2b2lkIFNXU2VydmVyOjphZGRSZWdpc3RyYXRpb24oc3RkOjp1bmlx
dWVfcHRyPFNXU2VydmVyUmVnaXN0cmF0aW9uPiYmIHJlZ2lzdHJhdAogICAgICAgICBtX3VuaXF1
ZVJlZ2lzdHJhdGlvbkNvdW50Kys7CiAKICAgICBpZiAocmVnaXN0cmF0aW9uLT5zZXJ2aWNlV29y
a2VyUGFnZUlkZW50aWZpZXIoKSkKLSAgICAgICAgbV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZp
ZXJUb1JlZ2lzdHJhdGlvbk1hcC5hZGQoKnJlZ2lzdHJhdGlvbi0+c2VydmljZVdvcmtlclBhZ2VJ
ZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKCpyZWdpc3RyYXRpb24pKTsKKyAgICAgICAgbV9zZXJ2
aWNlV29ya2VyUGFnZUlkZW50aWZpZXJUb1JlZ2lzdHJhdGlvbk1hcC5hZGQoKnJlZ2lzdHJhdGlv
bi0+c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCksICpyZWdpc3RyYXRpb24pOwogCiAgICAg
bV9vcmlnaW5TdG9yZS0+YWRkKHJlZ2lzdHJhdGlvbi0+a2V5KCkudG9wT3JpZ2luKCkpOwogICAg
IGF1dG8gcmVnaXN0cmF0aW9uSUQgPSByZWdpc3RyYXRpb24tPmlkZW50aWZpZXIoKTsKICAgICBB
U1NFUlQoIW1fc2NvcGVUb1JlZ2lzdHJhdGlvbk1hcC5jb250YWlucyhyZWdpc3RyYXRpb24tPmtl
eSgpKSk7Ci0gICAgbV9zY29wZVRvUmVnaXN0cmF0aW9uTWFwLnNldChyZWdpc3RyYXRpb24tPmtl
eSgpLCBtYWtlV2Vha1B0cigqcmVnaXN0cmF0aW9uKSk7CisgICAgbV9zY29wZVRvUmVnaXN0cmF0
aW9uTWFwLnNldChyZWdpc3RyYXRpb24tPmtleSgpLCAqcmVnaXN0cmF0aW9uKTsKICAgICBhdXRv
IGFkZFJlc3VsdDEgPSBtX3JlZ2lzdHJhdGlvbnMuYWRkKHJlZ2lzdHJhdGlvbklELCBXVEZNb3Zl
KHJlZ2lzdHJhdGlvbikpOwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0MSwgYWRkUmVzdWx0
MS5pc05ld0VudHJ5KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKaW5kZXggNWIyZmRkYWZhMDQzNTIwNjM2
MWYzMWI0MGE4NTMxZGQ3Njg0NzM2Ni4uMmIwNGMyODhmYzhjNjlhNGM5MDZkZWE1NDZjNjgyNDYw
NzE0MmY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlcldvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKQEAgLTUxLDkgKzUxLDkgQEAgU1dTZXJ2ZXJXb3Jr
ZXIqIFNXU2VydmVyV29ya2VyOjpleGlzdGluZ1dvcmtlckZvcklkZW50aWZpZXIoU2VydmljZVdv
cmtlcklkZW50aWYKIAogLy8gRklYTUU6IFVzZSByLXZhbHVlIHJlZmVyZW5jZXMgZm9yIHNjcmlw
dCBhbmQgY29udGVudFNlY3VyaXR5UG9saWN5CiBTV1NlcnZlcldvcmtlcjo6U1dTZXJ2ZXJXb3Jr
ZXIoU1dTZXJ2ZXImIHNlcnZlciwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwg
Y29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0LCBjb25zdCBD
ZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IENyb3NzT3Jp
Z2luRW1iZWRkZXJQb2xpY3kmIGNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3ksIFN0cmluZyYmIHJl
ZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHR5cGUsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVk
U2NyaXB0PiYmIHNjcmlwdFJlc291cmNlTWFwKQotICAgIDogbV9zZXJ2ZXIobWFrZVdlYWtQdHIo
c2VydmVyKSkKKyAgICA6IG1fc2VydmVyKHNlcnZlcikKICAgICAsIG1fcmVnaXN0cmF0aW9uS2V5
KHJlZ2lzdHJhdGlvbi5rZXkoKSkKLSAgICAsIG1fcmVnaXN0cmF0aW9uKG1ha2VXZWFrUHRyKHJl
Z2lzdHJhdGlvbikpCisgICAgLCBtX3JlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb24pCiAgICAgLCBt
X2RhdGEgeyBpZGVudGlmaWVyLCBzY3JpcHRVUkwsIFNlcnZpY2VXb3JrZXJTdGF0ZTo6UGFyc2Vk
LCB0eXBlLCByZWdpc3RyYXRpb24uaWRlbnRpZmllcigpIH0KICAgICAsIG1fc2NyaXB0KHNjcmlw
dCkKICAgICAsIG1fY2VydGlmaWNhdGVJbmZvKGNlcnRpZmljYXRlSW5mbykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IGE4MjIwNWFiYmQ3
ZTdhODAzYzVjYWRlYjY3M2JiZjkxZjU1ZDMyMWMuLjEzNmMwNTNlNTRjMTA4NjM5MmY0ZDA0Y2U3
MmU0NDI3YWYxYTYwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEds
b2JhbFNjb3BlLmNwcApAQCAtNjQsNyArNjQsNyBAQCBXb3JrbGV0R2xvYmFsU2NvcGU6Oldvcmts
ZXRHbG9iYWxTY29wZShXb3JrZXJPcldvcmtsZXRUaHJlYWQmIHRocmVhZCwgUmVmPEpTQzo6Vgog
CiBXb3JrbGV0R2xvYmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShEb2N1bWVudCYgZG9jdW1l
bnQsIFJlZjxKU0M6OlZNPiYmIHZtLCBTY3JpcHRTb3VyY2VDb2RlJiYgY29kZSkKICAgICA6IFdv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFdvcmtlclRocmVhZFR5cGU6OldvcmtsZXQsIFdURk1v
dmUodm0pLCBudWxscHRyKQotICAgICwgbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkp
CisgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV90b3BPcmlnaW4oU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZVVuaXF1ZSgpKQogICAgICwgbV91cmwoY29kZS51cmwoKSkKICAgICAsIG1f
anNSdW50aW1lRmxhZ3MoZG9jdW1lbnQuc2V0dGluZ3MoKS5qYXZhU2NyaXB0UnVudGltZUZsYWdz
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rh
c2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3Bw
CmluZGV4IDVkN2QzODQ3MmMxMmYwYTc0NjM2NmYwZDE4NDlkMjA4NTYxZTE2NWQuLmM0MWJjYWY3
NTc0ZDE3MTRhNTU2NmJiZGY1OTFmNmIzZmEwODRlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3BwCkBAIC0zMSw3ICszMSw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFdvcmtsZXRQZW5kaW5nVGFza3M6OldvcmtsZXRQZW5kaW5nVGFz
a3MoV29ya2xldCYgd29ya2xldCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSwg
aW50IGNvdW50ZXIpCi0gICAgOiBtX3dvcmtsZXQobWFrZVdlYWtQdHIod29ya2xldCkpCisgICAg
OiBtX3dvcmtsZXQod29ya2xldCkKICAgICAsIG1fcHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQog
ICAgICwgbV9jb3VudGVyKGNvdW50ZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvRE9NUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuY3BwCmluZGV4
IGYyZWE1MzVhNmZkYWUzMjQ0ZTAyNjFmYTc1MDI0YWU0OGJkZmRiYzQuLjMwNTI4MDBkMWE0MWFk
NWJmYjlhMzQ5ZWM2NTJiY2YyM2VmYWM4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9ET01QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuY3BwCkBA
IC0yNiw3ICsyNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlubGluZSBET01QYXJzZXI6
OkRPTVBhcnNlcihEb2N1bWVudCYgY29udGV4dERvY3VtZW50KQotICAgIDogbV9jb250ZXh0RG9j
dW1lbnQobWFrZVdlYWtQdHIoY29udGV4dERvY3VtZW50KSkKKyAgICA6IG1fY29udGV4dERvY3Vt
ZW50KGNvbnRleHREb2N1bWVudCkKICAgICAsIG1fc2V0dGluZ3MoY29udGV4dERvY3VtZW50LnNl
dHRpbmdzKCkpCiB7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441032</attachid>
            <date>2021-10-12 19:22:50 -0700</date>
            <delta_ts>2021-10-13 07:47:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231651-20211012192249.patch</filename>
            <type>text/plain</type>
            <size>225607</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRhOTE3NDE1M2EwZjI1MWEzMzg4ZjBi
OTcyOThjMGNlNmI2ZmUzZjQuLjMyZmQ2NGY5YzYyMDFhODkxNjY0MDg3MzA3M2FlYjRhODExYjJm
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFrUHRyKCkgaW4gV2ViQ29y
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjUx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYv
V2Vha1B0ci5oOgorICAgICAgICAoV1RGOjpXZWFrUHRyOjpXZWFrUHRyKToKKyAgICAgICAgKFdU
Rjo6V2Vha1B0cjo6aW1wbEZvck9iamVjdCk6CisKIDIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEZWNyZWFzZSB1c2Ugb2YgbWFrZVdlYWtQdHIo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDUwN2U4MTIwMDRiYzgzNDUwNmJiNWU1Mzg2OWY2ZDljMmI4MjE0OGIu
Ljc4MjI0YzI4NWJkZTQ2MDVkNzUxN2U5MGM3YzcwMjEyMmZmYzc4NjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0NzQgQEAKKzIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFrUHRyKCkgaW4gV2ViQ29yZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjUxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RvcCB1c2luZyBtYWtl
V2Vha1B0cigpIGluIFdlYkNvcmUgYW5kIHVzZSBXZWFrUHRyIHsgfSBkaXJlY3RseSBpbnN0ZWFk
LgorCisgICAgICAgICogZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbDo6TWFpblRocmVhZEJyaWRnZTo6TWFpblRocmVhZEJyaWRnZSk6
CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVySXRlbUxpc3Q6OmVuc3VyZUl0ZW1zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFUcmFuc2Zlckl0ZW1MaXN0OjpkaWRTZXRTdHJpbmdEYXRhKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmJ1aWxkQWNjZXNzS2V5Q2Fj
aGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbGxlY3RSYW5nZURhdGFGcm9tUmVn
aXN0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGVybWluZUFjdGl2ZVRoZW1l
Q29sb3JNZXRhRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0QWN0aXZl
U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFwcGVuZEF1
dG9mb2N1c0NhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0TWVkaWFF
bGVtZW50U2hvd2luZ1RleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFBhcnNl
cllpZWxkVG9rZW46OkRvY3VtZW50UGFyc2VyWWllbGRUb2tlbik6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6YWRkSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmF0aW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6YWRkUmVzaXplT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnVwZGF0ZU1haW5BcnRpY2xlRWxlbWVudEFmdGVyTGF5b3V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpzZXRQaWN0dXJlSW5QaWN0dXJlRWxlbWVudCk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Q29udGV4dERv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRUZW1wbGF0ZURvY3VtZW50
SG9zdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50UGFyc2VyOjpEb2N1bWVudFBhcnNlcik6CisgICAgICAgICogZG9tL0V2ZW50
TG9vcC5oOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRMb29wVGFza0dyb3VwOjpFdmVudExvb3BU
YXNrR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRMb29wVGFzazo6RXZlbnRMb29wVGFz
ayk6CisgICAgICAgICogZG9tL0V2ZW50U2VuZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dFNlbmRlcjxUPjo6ZGlzcGF0Y2hFdmVudFNvb24pOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdl
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgICogZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZ1bGxzY3JlZW5NYW5hZ2VyOjpzZXRGdWxsc2NyZWVuUmVuZGVyZXIpOgorICAgICAgICAqIGRv
bS9JZGxlQ2FsbGJhY2tDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklkbGVDYWxs
YmFja0NvbnRyb2xsZXI6OklkbGVDYWxsYmFja0NvbnRyb2xsZXIpOgorICAgICAgICAqIGRvbS9N
ZXNzYWdlUG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydDo6dmlydHVhbEhh
c1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogZG9tL1JhZGlvQnV0dG9uR3JvdXBz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhZGlvQnV0dG9uR3JvdXA6OnNldENoZWNrZWRCdXR0
b24pOgorICAgICAgICAqIGRvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpTY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAqIGRvbS9TbG90QXNzaWdubWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTbG90QXNzaWdubWVudDo6YWRkU2xvdEVsZW1lbnRCeU5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2xvdEFzc2lnbm1lbnQ6OnJlc29sdmVTbG90c0FmdGVyU2xvdE11dGF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNsb3RBc3NpZ25tZW50Ojphc3NpZ25Ub1Nsb3QpOgor
ICAgICAgICAqIGVkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3VzdG9tVW5kb1N0ZXA6OkN1c3RvbVVuZG9TdGVwKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjpzZXRQYXJlbnQpOgor
ICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVTZWxlY3Rpb246OkZyYW1lU2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcik6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6b2JzZXJ2ZVBhcmFncmFwaHMpOgor
ICAgICAgICAqIGVkaXRpbmcvaW9zL0VkaXRvcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6c2V0RGljdGF0aW9uUGhyYXNlc0FzQ2hpbGRPZkVsZW1lbnQpOgorICAgICAgICAqIGZp
bGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVy
TG9hZGVyOjpGaWxlUmVhZGVyTG9hZGVyKToKKyAgICAgICAgKiBodG1sL0N1c3RvbVBhaW50SW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tUGFpbnRJbWFnZTo6Q3VzdG9tUGFpbnRJ
bWFnZSk6CisgICAgICAgICogaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50OjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50OjpzZXRGb3JtKToKKyAg
ICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbmNob3JFbGVtZW50OjpzZXRSb290RWRpdGFibGVFbGVtZW50Rm9yU2VsZWN0aW9uT25Nb3Vz
ZURvd24pOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6c3VibWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxG
b3JtRWxlbWVudDo6cmVnaXN0ZXJGb3JtRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Rm9ybUVsZW1lbnQ6OnJlZ2lzdGVySW1nRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Rm9ybUVsZW1lbnQ6OmRlZmF1bHRCdXR0b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEZvcm1FbGVtZW50OjphZGRUb1Bhc3ROYW1lc01hcCk6CisgICAgICAgICogaHRtbC9IVE1MRnJh
bWVPd25lckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVt
ZW50OjpzZXRDb250ZW50RnJhbWUpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpIVE1MSW1hZ2VFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2Vz
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnNldFBpY3R1cmVFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnNldFNvdXJjZUVsZW1l
bnQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKToK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0lucHV0
VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpJbnB1dFR5cGUpOgorICAgICAg
ICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25PYnNlcnZlcjo6TWVkaWFTZXNzaW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIGh0bWwv
T2Zmc2NyZWVuQ2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6
c2V0UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAqIGh0bWwvVVJMU2VhcmNoUGFyYW1zLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlVSTFNlYXJjaFBhcmFtczo6VVJMU2VhcmNoUGFyYW1zKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OkhUTUxTY3JpcHRSdW5uZXIpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6RGF0ZVRpbWVFZGl0RWxlbWVudCk6CisgICAgICAgICogaHRtbC9z
aGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUJveDo6VGV4dFRy
YWNrQ3VlQm94KToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrQmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUcmFja0Jhc2U6OnNldFRyYWNrTGlzdCk6CisgICAgICAgICogaHRtbC90cmFj
ay9UcmFja0xpc3RCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpUcmFja0xpc3RCYXNlOjpzZXRP
cGFxdWVSb290T2JzZXJ2ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvck92ZXJsYXk6OnNldEdyaWRPdmVybGF5Rm9yTm9kZSk6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JET01BZ2VudDo6YmluZCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JM
YXllclRyZWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVB
Z2VudDo6YmluZFBzZXVkb0VsZW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTmV0d29ya0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdv
cmtBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1l
SWQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNvbm5lY3RUb1dvcmtl
ckluc3BlY3RvclByb3h5KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3Rh
YmxlL1RhYmxlR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6
U2xvdDo6U2xvdCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpzZXRDYWNoZWRHZW9tZXRyeUZvckxheW91
dFN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnRyeUxvYWRpbmdTdWJzdGl0dXRlRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6Y29udGVudEZpbHRlckRpZEJsb2Nr
KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRXcml0ZXI6OnNldEZyYW1lKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUxldmVsRm9yYmlkU2NvcGU6OlBhZ2VMZXZl
bEZvcmJpZFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzZXRPcGVuZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRGcmFtZVJlcXVlc3QpOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAg
ICAgKiBsb2FkZXIvTGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVy
OjpwcmVjb25uZWN0SWZOZWVkZWQpOgorICAgICAgICAqIGxvYWRlci9MaW5rUHJlbG9hZFJlc291
cmNlQ2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rUHJlbG9hZFJlc291cmNlQ2xp
ZW50OjpMaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50KToKKyAgICAgICAgKiBsb2FkZXIvTWVkaWFS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlc291cmNlTG9hZGVy
OjpNZWRpYVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXI6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvUG9s
aWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6UG9saWN5Q2hl
Y2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6CisgICAgICAgICogbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpT
dWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbik6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZTo6
c2V0R3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZTo6c2V0TWFuaWZl
c3RSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnVwZGF0
ZSk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpzZXRET01BcHBsaWNhdGlv
bkNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpzZXRDYW5k
aWRhdGVBcHBsaWNhdGlvbkNhY2hlR3JvdXApOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6bG9hZCk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2V0RG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRl
ci9pb3MvTGVnYWN5UHJldmlld0xvYWRlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVBy
ZXZpZXdMb2FkZXI6OnByZXZpZXdDb252ZXJ0ZXJEaWRTdGFydENvbnZlcnRpbmcpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvd0V4dGVuc2lvbjo6RE9NV2luZG93RXh0ZW5zaW9uKToKKyAgICAgICAgKiBwYWdlL0RPTVdp
bmRvd1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5OjpE
T01XaW5kb3dQcm9wZXJ0eSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6d2lkZ2V0Rm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OnVwZGF0ZUxhc3RTY3JvbGxiYXJVbmRlck1vdXNlKToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpGcmFtZSk6CisgICAgICAgICog
cGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVEZXN0cnVjdGlvbk9ic2VydmVyOjpvYnNlcnZlRnJhbWUpOgorICAgICAgICAqIHBhZ2UvRnJh
bWVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6RnJhbWVUcmVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlRW1iZWRk
ZWRPYmplY3QpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpsYXlvdXQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6c2V0U3VidHJlZUxheW91dFJvb3Qp
OgorICAgICAgICAqIHBhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpJbWFnZU92ZXJsYXlDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlvblF1YWRz
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjpJbnRlcnNlY3Rpb25PYnNlcnZl
cik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6b2JzZXJ2ZSk6Cisg
ICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnVwZGF0ZVJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpkb0FmdGVyVXBkYXRlUmVuZGVyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnVwZGF0ZUVsZW1lbnRzV2l0aFRleHRSZWNvZ25p
dGlvblJlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0U2VydmljZVdvcmtlckds
b2JhbFNjb3BlKToKKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmVsZW1lbnRXYXNSZW1vdmVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvaW50ZXJMb2NrQ29udHJvbGxlcjo6ZG9jdW1lbnREZXRh
Y2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmRpZEFjcXVp
cmVQb2ludGVyTG9jayk6CisgICAgICAgICogcGFnZS9RdWlya3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UXVpcmtzOjpRdWlya3MpOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtzOjp0cmlnZ2Vy
T3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsgY29uc3QpOgorICAgICAgICAqIHBhZ2UvUmVzaXpl
T2JzZXJ2YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzaXplT2JzZXJ2YXRpb246OlJl
c2l6ZU9ic2VydmF0aW9uKToKKyAgICAgICAgKiBwYWdlL1Jlc2l6ZU9ic2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc2l6ZU9ic2VydmVyOjpSZXNpemVPYnNlcnZlcik6CisgICAgICAg
IChXZWJDb3JlOjpSZXNpemVPYnNlcnZlcjo6b2JzZXJ2ZSk6CisgICAgICAgICogcGFnZS9VbmRv
SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVbmRvSXRlbTo6c2V0VW5kb01hbmFnZXIpOgor
ICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldoZWVsRXZlbnRUZXN0TW9uaXRvcjo6c2NoZWR1bGVDYWxsYmFja0NoZWNrKToKKyAgICAg
ICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpkaWRGaW5pc2hUcmFuc2l0aW9uKToKKyAgICAgICAg
KiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRDaGFuZ2VPYnNlcnZlcjo6c2V0SGlkZGVuVG91Y2hUYXJnZXQpOgorICAgICAgICAqIHBh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGFibGVB
cmVhRm9yRXZlbnRUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsYWJsZUFyZWFGb3JD
b250YWluZXJOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGV0ZXJtaW5l
V2hlZWxFdmVudFRhcmdldCk6CisgICAgICAgICogcGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJv
bGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVw
ZGF0ZURhdGFEZXRlY3RvckhpZ2hsaWdodHMpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VPdmVy
bGF5Q29udHJvbGxlcjo6ZWxlbWVudFVuZGVyTW91c2VEaWRDaGFuZ2UpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXI6OnVwZGF0ZUFuZEZldGNoTGF0Y2hpbmdTdGF0
ZUZvckZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Ob3dQbGF5aW5nTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOb3dQbGF5aW5nTWFuYWdlcjo6YWRkQ2xpZW50KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9QcmV2aWV3Q29udmVydGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByZXZp
ZXdDb252ZXJ0ZXI6OmFkZENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcmV2aWV3Q29udmVy
dGVyOjpkaWRBZGRDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpjcmVhdGVUaW1lcik6CisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpQcm9oaWJpdFNjcm9sbGluZ1doZW5DaGFuZ2luZ0NvbnRlbnRTaXplRm9yU2NvcGU6OlBy
b2hpYml0U2Nyb2xsaW5nV2hlbkNoYW5naW5nQ29udGVudFNpemVGb3JTY29wZSk6CisgICAgICAg
ICogcGxhdGZvcm0vV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0UGFy
ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjph
ZGRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNldEN1cnJlbnRTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsRW5kUGxheWJhY2spOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNlc3Npb25XaWxs
RW5kUGxheWJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Zp
bGVSZWFkZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVy
OjpkZWNvZGVBdWRpb0ZvckJ1c0NyZWF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpzZXRDbGllbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYXJlZFJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlv
bkZvclRva2VuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25Qcm94eTo6Q0RNSW5zdGFu
Y2VTZXNzaW9uUHJveHkpOgorICAgICAgICAqIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFy
a2V5L0NETUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lv
bkNsZWFyS2V5Ojp1cGRhdGVMaWNlbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNl
U2Vzc2lvbkNsZWFyS2V5OjpyZW1vdmVTZXNzaW9uRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlOjpzZXRDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0luYmFu
ZFRleHRUcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1By
aXZhdGU6OnNldENsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFj
a1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRDbGll
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRwdXREZXZpY2VN
ZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJUYXJnZXRQaWNrZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0FWUGxheWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFW
UGxheWJhY2tUYXJnZXRQaWNrZXI6OkFWUGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFy
Z2V0UGlja2VyLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQ
aWNrZXI6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpDRE1TZXNzaW9uQVZGb3VuZGF0
aW9uT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW06CisgICAgICAgICgtW1dlYkFWU2FtcGxl
QnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXIgaW5pdFdpdGhQYXJlbnQ6XSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
VmlkZW9PdXRwdXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y3JlYXRlU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0
aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldENETVNlc3Npb24pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpNZWRpYVNv
dXJjZVByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RN
U2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
V2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1S
ZXNvdXJjZU1lZGlhTG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpJbm5lckRlY29kZXI6OmhhbmRsZU1lc3NhZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpJbm5lckRlY29kZXI6OnByZXBh
cmVQaXBlbGluZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mVHJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVUcmFja3MpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVTdHJlYW1Db2xsZWN0
aW9uTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmNyZWF0ZUdTVFBsYXlCaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNy
eXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYktpdE1lZGlhQ29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRHZXRDRE1Qcm94eURlY3J5cHRpb25DbGllbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6Om1ha2VXZWJLaXRUcmFjayk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldE1hc2tMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldFJlcGxpY2FMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldEJhY2tkcm9wTGF5ZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9QcmV2aWV3Q29udmVydGVySU9TLm1tOgorICAgICAgICAoLVtXZWJQcmV2aWV3Q29u
dmVydGVyRGVsZWdhdGUgaW5pdFdpdGhEZWxlZ2F0ZTpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgICgtW1dlYkFWUGxh
eWVyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSBzZXRGdWxsc2NyZWVuSW50ZXJmYWNlOl0pOgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1b
V2ViQ29yZU1vdGlvbk1hbmFnZXIgc2VuZEFjY2VsZXJvbWV0ZXJEYXRhOl0pOgorICAgICAgICAo
LVtXZWJDb3JlTW90aW9uTWFuYWdlciBzZW5kTW90aW9uRGF0YTp3aXRoSGVhZGluZzpdKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YURldGVjdG9ySGlnaGxpZ2h0OjpEYXRhRGV0ZWN0b3JIaWdobGlnaHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6OlBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZU1hYyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYzo6c2V0VmlkZW9GdWxsc2NyZWVuTW9kZWwpOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZl
cik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6OmNvbXByZXNzZWRWaWRlb091dHB1dEJ1ZmZlckNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjb21wcmVzc2VkQXVkaW9P
dXRwdXRCdWZmZXJDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RUTUZTZW5kZXJCYWNrZW5kLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
a0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJv
dmlkZXJDb2NvYSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Db29raWVTdG9y
YWdlT2JzZXJ2ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVz
cG9uc2VHZW5lcmF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpSYW5nZVJlc3BvbnNlR2VuZXJh
dG9yOjpnaXZlUmVzcG9uc2VUb1Rhc2tJZkJ5dGVzSW5SYW5nZVJlY2VpdmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJhbmdlUmVzcG9uc2VHZW5lcmF0b3I6Ok1lZGlhUmVzb3VyY2VDbGllbnQ6Ok1l
ZGlhUmVzb3VyY2VDbGllbnQpOgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NTWltZVR5cGU6OkRPTU1pbWVUeXBlKToKKyAgICAgICAgKiBw
bHVnaW5zL0RPTU1pbWVUeXBlQXJyYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NTWltZVR5
cGVBcnJheTo6RE9NTWltZVR5cGVBcnJheSk6CisgICAgICAgICogcGx1Z2lucy9ET01QbHVnaW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NUGx1Z2luOjpET01QbHVnaW4pOgorICAgICAgICAq
IHBsdWdpbnMvRE9NUGx1Z2luQXJyYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NUGx1Z2lu
QXJyYXk6OkRPTVBsdWdpbkFycmF5KToKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvYXRpbmdPYmpl
Y3RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0aW5nT2JqZWN0OjpGbG9hdGluZ09iamVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlRmxvYXRPZmZzZXRBZGFwdGVyOjpDb21wdXRl
RmxvYXRPZmZzZXRBZGFwdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbmROZXh0RmxvYXRMb2dp
Y2FsQm90dG9tQWRhcHRlcjo6RmluZE5leHRGbG9hdExvZ2ljYWxCb3R0b21BZGFwdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZsb2F0aW5nT2JqZWN0czo6RmxvYXRpbmdPYmplY3RzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmg6CisgICAgICAgIChXZWJDb3JlOjpGbG9h
dGluZ09iamVjdDo6c2V0T3JpZ2luYXRpbmdMaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvR3Jp
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlkOjppbnNlcnQpOgorICAgICAgICAqIHJlbmRl
cmluZy9IaWdobGlnaHREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSYW5nZTo6UmVu
ZGVyUmFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9MYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFj
ay5oOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlZENsaXBEYXRhOjpDb21wb3NpdGVkQ2xp
cERhdGEpOgorICAgICAgICAqIHJlbmRlcmluZy9MZWdhY3lJbmxpbmVCb3guaDoKKyAgICAgICAg
KFdlYkNvcmU6OkxlZ2FjeUlubGluZUJveDo6TGVnYWN5SW5saW5lQm94KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdh
Y3lSb290SW5saW5lQm94OjpzZXRMaW5lQnJlYWtJbmZvKToKKyAgICAgICAgKiByZW5kZXJpbmcv
TGVnYWN5Um9vdElubGluZUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5Um9vdElubGlu
ZUJveDo6YXBwZW5kRmxvYXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlQ2FjaGVkRW5jbG9zaW5nRnJh
Z21lbnRlZEZsb3cgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpzZXRNdWx0aUNvbHVtbkZs
b3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Q29udGludWF0aW9uQ2hhaW5Ob2Rl
OjpDb250aW51YXRpb25DaGFpbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9k
ZWxPYmplY3Q6OnNldEZpcnN0TGV0dGVyUmVtYWluaW5nVGV4dCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJ1dHRvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCdXR0b246OnNl
dElubmVyUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQnV0dG9uOjpzZXRUZXh0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJFbGVtZW50OjpzZXRCYWNrZHJvcFJlbmRlcmVyKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RnJhZ21lbnRlZEZsb3c6OnVwZGF0ZUZyYWdtZW50c0ZyYWdtZW50ZWRGbG93UG9ydGlvblJlY3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckltYWdlUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2VSZXNvdXJj
ZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVQYWdpbmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpzZXRCYWNraW5nUHJvdmlkZXJMYXllcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OkJhY2tpbmdTaGFyaW5nU3RhdGU6OmFwcGVuZFNoYXJp
bmdMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmF0dGFj
aFNjcm9sbGluZ05vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXlvdXRTdGF0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXlvdXRTdGF0ZTo6cHJvcGFnYXRlTGluZUdy
aWRJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheW91dFN0YXRlOjplc3RhYmxpc2hM
aW5lR3JpZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGlzdE1hcmtlcjo6UmVuZGVyTGlzdE1hcmtlcik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzZXRJ
bm5lclJlbmRlcmVyKToKKyAgICAgICAgKFJlbmRlck1lbnVMaXN0OjpzZXRUZXh0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI6OlJl
bmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyU2Nyb2xsYmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNjcm9sbGJhcjo6
UmVuZGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OndpbGxJbnNlcnRUYWJsZVNlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OmFkZENhcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGFibGU6OnVwZGF0ZUNvbHVtbkNhY2hlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRhYmxlOjpyZWNhbGNTZWN0aW9ucyBjb25zdCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6c2V0
SW5saW5lV3JhcHBlckZvckRpc3BsYXlDb250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRleHRGcmFnbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OlJlcGFpbnRSZWdpb25BY2N1bXVsYXRvcjo6
UmVwYWludFJlZ2lvbkFjY3VtdWxhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6
OmxheWVyQ2hpbGRyZW5DaGFuZ2VkRHVyaW5nU3R5bGVDaGFuZ2UpOgorICAgICAgICAqIHJlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0hpdFRlc3RDeWNs
ZURldGVjdGlvblNjb3BlOjpTVkdIaXRUZXN0Q3ljbGVEZXRlY3Rpb25TY29wZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpjaGlsZEZsb3dTdGF0ZUNoYW5nZXNBbmRBZmZlY3Rz
UGFyZW50QmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OmRlc3Ry
b3lBbmRDbGVhblVwQW5vbnltb3VzV3JhcHBlcnMpOgorICAgICAgICAqIHJlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRyZWVCdWlsZGVyOjpCbG9jazo6ZGV0YWNoKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUcmVlQnVpbGRlcjo6Rmlyc3RMZXR0ZXI6OnVwZGF0ZVN0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpGaXJzdExldHRlcjo6Y3JlYXRlUmVuZGVyZXJzKToK
KyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVt
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6TXVsdGlDb2x1bW46
Om11bHRpQ29sdW1uRGVzY2VuZGFudEluc2VydGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVBvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRy
ZWVQb3NpdGlvbjo6Y29tcHV0ZU5leHRTaWJsaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVBvc2l0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVl
UG9zaXRpb246OlJlbmRlclRyZWVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVVcGRhdGVyR2VuZXJhdGVkQ29udGVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6R2VuZXJhdGVkQ29udGVudDo6dXBkYXRlUXVvdGVzVXBU
byk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6R2VuZXJhdGVkQ29udGVu
dDo6dXBkYXRlQmFja2Ryb3BSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6YWRkUmVmZXJlbmNpbmdFbGVtZW50KToK
KyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpT
VkdFbGVtZW50UmFyZURhdGE6OnNldENvcnJlc3BvbmRpbmdFbGVtZW50KToKKyAgICAgICAgKiBz
dmcvU1ZHVmlld0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnhyVGVzdCk6
CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrQ0RNRmFjdG9yeTo6Y3JlYXRlQ0RNKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE06
OmNyZWF0ZUluc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE1JbnN0YW5jZTo6Y3Jl
YXRlU2Vzc2lvbik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRm9udExvYWRSZXF1ZXN0Ojpsb2FkKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckdsb2JhbFNjb3BlOjppbXBvcnRTY3JpcHRzKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckdsb2JhbFNjb3BlOjpzZXRNYWluU2NyaXB0U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0V2l0aFN1YmNs
YXNzKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyTWFpblJ1bkxvb3A6OnNldEdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OmV2
YWx1YXRlU2NyaXB0SWZOZWNlc3NhcnkpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0
aW9uRGF0YWJhc2U6OlJlZ2lzdHJhdGlvbkRhdGFiYXNlKToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjph
ZGRSZWdpc3RyYXRpb24pOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OlNXU2VydmVy
V29ya2VyKToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgor
ICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6V29ya2xldFBlbmRpbmdUYXNrcyk6CisgICAgICAg
ICogeG1sL0RPTVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01QYXJzZXI6OkRPTVBh
cnNlcik6CisKIDIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBEZWNyZWFzZSB1c2Ugb2YgbWFrZVdlYWtQdHIoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvV2Vha1B0ci5oIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCmluZGV4IGY0ZTdi
MTI0NTE0ZmZiMGIwODMzZjAzZjEwODQ5Y2I2YTFhMmUxMjAuLjhiYTcyODdlOTYwNDExODAwNzZm
MDU3ZTBiNzMzN2I1MThkMzZjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJs
aWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gV2Vha1B0cihjb25zdCBXZWFrUHRyPFUsIENv
dW50ZXI+Jik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gV2Vha1B0cihXZWFrUHRyPFUsIENv
dW50ZXI+JiYpOwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJ
c1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IFdlYWtQdHIoVCogb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhy
ZWFkaW5nQXNzZXJ0aW9ucyBzaG91bGRFbmFibGVBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRo
cmVhZGluZ0Fzc2VydGlvbnM6OlllcykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSA9IHN0ZDo6ZW5h
YmxlX2lmX3Q8IUlzU21hcnRQdHI8VD46OnZhbHVlPj4gV2Vha1B0cihjb25zdCBUKiBvYmplY3Qs
IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIHNob3VsZEVuYWJsZUFzc2VydGlvbnMg
PSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQogICAgICAgICA6IG1faW1w
bChvYmplY3QgPyBpbXBsRm9yT2JqZWN0KCpvYmplY3QpIDogbnVsbHB0cikKICNpZiBBU1NFUlRf
RU5BQkxFRAogICAgICAgICAsIG1fc2hvdWxkRW5hYmxlQXNzZXJ0aW9ucyhzaG91bGRFbmFibGVB
c3NlcnRpb25zID09IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpCkBAIC0x
MTEsNyArMTExLDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3Qg
PT0gbV9pbXBsLT50ZW1wbGF0ZSBnZXQ8VD4oKSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJc1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IFdlYWtQdHIo
VCYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBzaG91bGRFbmFibGVB
c3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlzU21hcnRQdHI8VD46OnZhbHVl
ICYmICFzdGQ6OmlzX3BvaW50ZXJfdjxUPj4+IFdlYWtQdHIoY29uc3QgVCYgb2JqZWN0LCBFbmFi
bGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBzaG91bGRFbmFibGVBc3NlcnRpb25zID0gRW5h
YmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKICAgICAgICAgOiBtX2ltcGwoaW1w
bEZvck9iamVjdChvYmplY3QpKQogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgICAgICwgbV9zaG91
bGRFbmFibGVBc3NlcnRpb25zKHNob3VsZEVuYWJsZUFzc2VydGlvbnMgPT0gRW5hYmxlV2Vha1B0
clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKQEAgLTEyMSwxMSArMTIxLDExIEBAIHB1YmxpYzoK
ICAgICAgICAgQVNTRVJUKCZvYmplY3QgPT0gbV9pbXBsLT50ZW1wbGF0ZSBnZXQ8VD4oKSk7CiAg
ICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJc1NtYXJ0
UHRyPFQ+Ojp2YWx1ZT4+IFdlYWtQdHIoUmVmPFQ+JiBvYmplY3QsIEVuYWJsZVdlYWtQdHJUaHJl
YWRpbmdBc3NlcnRpb25zIHNob3VsZEVuYWJsZUFzc2VydGlvbnMgPSBFbmFibGVXZWFrUHRyVGhy
ZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lID0gc3RkOjplbmFi
bGVfaWZfdDwhSXNTbWFydFB0cjxUPjo6dmFsdWU+PiBXZWFrUHRyKGNvbnN0IFJlZjxUPiYgb2Jq
ZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBzaG91bGRFbmFibGVBc3NlcnRp
b25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKICAgICAgICAgOiBX
ZWFrUHRyKG9iamVjdC5nZXQoKSwgc2hvdWxkRW5hYmxlQXNzZXJ0aW9ucykKICAgICB7IH0KIAot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhSXNTbWFydFB0cjxUPjo6
dmFsdWU+PiBXZWFrUHRyKFJlZlB0cjxUPiYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5n
QXNzZXJ0aW9ucyBzaG91bGRFbmFibGVBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGlu
Z0Fzc2VydGlvbnM6OlllcykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lm
X3Q8IUlzU21hcnRQdHI8VD46OnZhbHVlPj4gV2Vha1B0cihjb25zdCBSZWZQdHI8VD4mIG9iamVj
dCwgRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgc2hvdWxkRW5hYmxlQXNzZXJ0aW9u
cyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpCiAgICAgICAgIDogV2Vh
a1B0cihvYmplY3QuZ2V0KCksIHNob3VsZEVuYWJsZUFzc2VydGlvbnMpCiAgICAgeyB9CiAKQEAg
LTE3Miw3ICsxNzIsNyBAQCBwcml2YXRlOgogICAgICAgICBVTlVTRURfUEFSQU0oc2hvdWxkRW5h
YmxlQXNzZXJ0aW9ucyk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gc3RhdGlj
IFdlYWtQdHJJbXBsPENvdW50ZXI+KiBpbXBsRm9yT2JqZWN0KFUmIG9iamVjdCkKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiBzdGF0aWMgV2Vha1B0ckltcGw8Q291bnRlcj4qIGltcGxGb3JPYmpl
Y3QoY29uc3QgVSYgb2JqZWN0KQogICAgIHsKICAgICAgICAgb2JqZWN0LndlYWtQdHJGYWN0b3J5
KCkuaW5pdGlhbGl6ZUlmTmVlZGVkKG9iamVjdCk7CiAgICAgICAgIHJldHVybiBvYmplY3Qud2Vh
a1B0ckZhY3RvcnkoKS5tX2ltcGwuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hh
bm5lbC5jcHAKaW5kZXggOGM5YTlkYTVkNzhjZDE0Y2EyNWI4NTY4Y2VhZjZmODFiOGNjZDQwMC4u
OGViN2U5ZWFkMjE2MGUxNzJkMGZjMzNlYWUxM2Y3ZDhmZDVjMTU5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiB9
OwogCiBCcm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjpNYWluVGhyZWFkQnJpZGdl
KEJyb2FkY2FzdENoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IG1f
YnJvYWRjYXN0Q2hhbm5lbChtYWtlV2Vha1B0cihjaGFubmVsKSkKKyAgICA6IG1fYnJvYWRjYXN0
Q2hhbm5lbChjaGFubmVsKQogICAgICwgbV9pZGVudGlmaWVyKEJyb2FkY2FzdENoYW5uZWxJZGVu
dGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkKICAgICAsIG1fbmFtZShuYW1lLmlzb2xhdGVk
Q29weSgpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0
ZW1MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAK
aW5kZXggOWZjMjdhZjMzYmU3NDBmODIyNGM3Mjk0OWNjMmUzMmQxZmM3NzliMy4uYTI1YjkwYzg3
ZGFmMDY2YzdhOWM1NDU0YWQ0YmRkMDA5YzIyMjkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwCkBAIC04Miw3ICs4Miw3IEBAIEV4Y2VwdGlvbk9yPFJl
ZlB0cjxEYXRhVHJhbnNmZXJJdGVtPj4gRGF0YVRyYW5zZmVySXRlbUxpc3Q6OmFkZChjb25zdCBT
dHJpbmcmIGRhCiAKICAgICBtX2RhdGFUcmFuc2Zlci5zZXREYXRhRnJvbUl0ZW1MaXN0KGxvd2Vy
Y2FzZWRUeXBlLCBkYXRhKTsKICAgICBBU1NFUlQobV9pdGVtcyk7Ci0gICAgbV9pdGVtcy0+YXBw
ZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtYWtlV2Vha1B0cigqdGhpcyksIGxvd2VyY2Fz
ZWRUeXBlKSk7CisgICAgbV9pdGVtcy0+YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZSgq
dGhpcywgbG93ZXJjYXNlZFR5cGUpKTsKICAgICByZXR1cm4gbV9pdGVtcy0+bGFzdCgpLnB0cigp
OwogfQogCkBAIC05MSw3ICs5MSw3IEBAIFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBEYXRhVHJh
bnNmZXJJdGVtTGlzdDo6YWRkKFJlZjxGaWxlPiYmIGZpbGUpCiAgICAgaWYgKCFtX2RhdGFUcmFu
c2Zlci5jYW5Xcml0ZURhdGEoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBlbnN1
cmVJdGVtcygpLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobWFrZVdlYWtQdHIoKnRo
aXMpLCBmaWxlLT50eXBlKCksIGZpbGUuY29weVJlZigpKSk7CisgICAgZW5zdXJlSXRlbXMoKS5h
cHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKCp0aGlzLCBmaWxlLT50eXBlKCksIGZpbGUu
Y29weVJlZigpKSk7CiAgICAgbV9kYXRhVHJhbnNmZXIuZGlkQWRkRmlsZVRvSXRlbUxpc3QoKTsK
ICAgICByZXR1cm4gbV9pdGVtcy0+bGFzdCgpLnB0cigpOwogfQpAQCAtMTQyLDExICsxNDIsMTEg
QEAgVmVjdG9yPFJlZjxEYXRhVHJhbnNmZXJJdGVtPj4mIERhdGFUcmFuc2Zlckl0ZW1MaXN0Ojpl
bnN1cmVJdGVtcygpIGNvbnN0CiAgICAgZm9yIChhdXRvJiB0eXBlIDogbV9kYXRhVHJhbnNmZXIu
dHlwZXNGb3JJdGVtTGlzdCgpKSB7CiAgICAgICAgIGF1dG8gbG93ZXJjYXNlZFR5cGUgPSB0eXBl
LmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiAgICAgICAgIGlmIChzaG91bGRFeHBvc2VUeXBl
SW5JdGVtTGlzdChsb3dlcmNhc2VkVHlwZSkpCi0gICAgICAgICAgICBpdGVtcy5hcHBlbmQoRGF0
YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1ha2VXZWFrUHRyKCpjb25zdF9jYXN0PERhdGFUcmFuc2Zl
ckl0ZW1MaXN0Kj4odGhpcykpLCBsb3dlcmNhc2VkVHlwZSkpOworICAgICAgICAgICAgaXRlbXMu
YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZSgqdGhpcywgbG93ZXJjYXNlZFR5cGUpKTsK
ICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGZpbGUgOiBtX2RhdGFUcmFuc2Zlci5maWxlcyhkb2N1
bWVudCgpKS5maWxlcygpKQotICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6
Y3JlYXRlKG1ha2VXZWFrUHRyKCpjb25zdF9jYXN0PERhdGFUcmFuc2Zlckl0ZW1MaXN0Kj4odGhp
cykpLCBmaWxlLT50eXBlKCksIGZpbGUuY29weVJlZigpKSk7CisgICAgICAgIGl0ZW1zLmFwcGVu
ZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUoKnRoaXMsIGZpbGUtPnR5cGUoKSwgZmlsZS5jb3B5
UmVmKCkpKTsKIAogICAgIG1faXRlbXMgPSBXVEZNb3ZlKGl0ZW1zKTsKIApAQCAtMTkxLDcgKzE5
MSw3IEBAIHZvaWQgRGF0YVRyYW5zZmVySXRlbUxpc3Q6OmRpZFNldFN0cmluZ0RhdGEoY29uc3Qg
U3RyaW5nJiB0eXBlKQogICAgIFN0cmluZyBsb3dlcmNhc2VkVHlwZSA9IHR5cGUuY29udmVydFRv
QVNDSUlMb3dlcmNhc2UoKTsKICAgICByZW1vdmVTdHJpbmdJdGVtT2ZMb3dlcmNhc2VkVHlwZSgq
bV9pdGVtcywgdHlwZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpKTsKIAotICAgIG1faXRlbXMt
PmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobWFrZVdlYWtQdHIoKnRoaXMpLCBsb3dl
cmNhc2VkVHlwZSkpOworICAgIG1faXRlbXMtPmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVh
dGUoKnRoaXMsIGxvd2VyY2FzZWRUeXBlKSk7CiB9CiAKIERvY3VtZW50KiBEYXRhVHJhbnNmZXJJ
dGVtTGlzdDo6ZG9jdW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNzE1
ZDVmMDc5NmE2NWQ0NzBkYTllZjAzZTJiY2E5MTRkNmIwMmRkMS4uNmVhMWJkZmQ2OGZhZTczZTQz
ZWUxODA4MDM4MjFkZjNmN2E2ODRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04OTUs
NyArODk1LDcgQEAgdm9pZCBEb2N1bWVudDo6YnVpbGRBY2Nlc3NLZXlDYWNoZSgpCiAgICAgICAg
ICAgICBhdXRvJiBrZXkgPSBlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
YWNjZXNza2V5QXR0cik7CiAgICAgICAgICAgICBpZiAoa2V5LmlzRW1wdHkoKSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIG1hcC5hZGQoa2V5LCBtYWtlV2Vha1B0cihl
bGVtZW50KSk7CisgICAgICAgICAgICBtYXAuYWRkKGtleSwgZWxlbWVudCk7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1hcDsKICAgICB9KCkpOwpAQCAtMjg2Nyw3ICsyODY3LDcgQEAgdm9p
ZCBEb2N1bWVudDo6Y29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3RlcihWZWN0b3I8V2Vha1B0cjxI
aWdobGlnaHRSYW5nZURhdGE+PiYKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIGlmICgmcmFuZ2VEYXRhLT5yYW5nZS0+c3RhcnRDb250YWluZXIoKS50cmVlU2NvcGUoKSAh
PSAmcmFuZ2VEYXRhLT5yYW5nZS0+ZW5kQ29udGFpbmVyKCkudHJlZVNjb3BlKCkpCiAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICByYW5nZXNEYXRhLmFwcGVuZChtYWtlV2Vh
a1B0cihyYW5nZURhdGEucHRyKCkpKTsKKyAgICAgICAgICAgIHJhbmdlc0RhdGEuYXBwZW5kKHJh
bmdlRGF0YS5nZXQoKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0zOTMxLDcgKzM5MzEsNyBA
QCBXZWFrUHRyPEhUTUxNZXRhRWxlbWVudD4gRG9jdW1lbnQ6OmRldGVybWluZUFjdGl2ZVRoZW1l
Q29sb3JNZXRhRWxlbWVudCgpCiAgICAgICAgIFZlY3RvcjxXZWFrUHRyPEhUTUxNZXRhRWxlbWVu
dD4+IG1ldGFUaGVtZUNvbG9yRWxlbWVudHM7CiAgICAgICAgIGZvciAoYXV0byYgbWV0YUVsZW1l
bnQgOiBkZXNjZW5kYW50c09mVHlwZTxIVE1MTWV0YUVsZW1lbnQ+KCp0aGlzKSkgewogICAgICAg
ICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1ldGFFbGVtZW50Lm5hbWUo
KSwgInRoZW1lLWNvbG9yIikgJiYgbWV0YUVsZW1lbnQuY29udGVudENvbG9yKCkuaXNWYWxpZCgp
KQotICAgICAgICAgICAgICAgIG1ldGFUaGVtZUNvbG9yRWxlbWVudHMuYXBwZW5kKG1ha2VXZWFr
UHRyKG1ldGFFbGVtZW50KSk7CisgICAgICAgICAgICAgICAgbWV0YVRoZW1lQ29sb3JFbGVtZW50
cy5hcHBlbmQobWV0YUVsZW1lbnQpOwogICAgICAgICB9CiAgICAgICAgIG1fbWV0YVRoZW1lQ29s
b3JFbGVtZW50cyA9IFdURk1vdmUobWV0YVRoZW1lQ29sb3JFbGVtZW50cyk7CiAgICAgfQpAQCAt
NDM4MCw3ICs0MzgwLDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0QWN0aXZlU3BlZWNoUmVjb2duaXRp
b24oU3BlZWNoUmVjb2duaXRpb24qIHNwZWVjaFJlY29nbml0aW9uKQogICAgIGlmIChtX2FjdGl2
ZVNwZWVjaFJlY29nbml0aW9uID09IHNwZWVjaFJlY29nbml0aW9uKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX2FjdGl2ZVNwZWVjaFJlY29nbml0aW9uID0gbWFrZVdlYWtQdHIoc3BlZWNoUmVj
b2duaXRpb24pOworICAgIG1fYWN0aXZlU3BlZWNoUmVjb2duaXRpb24gPSBzcGVlY2hSZWNvZ25p
dGlvbjsKICAgICB1cGRhdGVJc1BsYXlpbmdNZWRpYSgpOwogfQogCkBAIC00NDc5LDcgKzQ0Nzks
NyBAQCB2b2lkIERvY3VtZW50OjphcHBlbmRBdXRvZm9jdXNDYW5kaWRhdGUoRWxlbWVudCYgY2Fu
ZGlkYXRlKQogICAgIH0pOwogICAgIGlmIChpdCAhPSBtX2F1dG9mb2N1c0NhbmRpZGF0ZXMuZW5k
KCkpCiAgICAgICAgIG1fYXV0b2ZvY3VzQ2FuZGlkYXRlcy5yZW1vdmUoaXQpOwotICAgIG1fYXV0
b2ZvY3VzQ2FuZGlkYXRlcy5hcHBlbmQobWFrZVdlYWtQdHIoY2FuZGlkYXRlKSk7CisgICAgbV9h
dXRvZm9jdXNDYW5kaWRhdGVzLmFwcGVuZChjYW5kaWRhdGUpOwogfQogCiB2b2lkIERvY3VtZW50
OjpmbHVzaEF1dG9mb2N1c0NhbmRpZGF0ZXMoKQpAQCAtNTc5NCw3ICs1Nzk0LDcgQEAgdm9pZCBE
b2N1bWVudDo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpCiAKIHZvaWQgRG9jdW1lbnQ6OnNl
dE1lZGlhRWxlbWVudFNob3dpbmdUZXh0VHJhY2soY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxl
bWVudCkKIHsKLSAgICBtX21lZGlhRWxlbWVudFNob3dpbmdUZXh0VHJhY2sgPSBtYWtlV2Vha1B0
cihlbGVtZW50KTsKKyAgICBtX21lZGlhRWxlbWVudFNob3dpbmdUZXh0VHJhY2sgPSBlbGVtZW50
OwogfQogCiB2b2lkIERvY3VtZW50OjpjbGVhck1lZGlhRWxlbWVudFNob3dpbmdUZXh0VHJhY2so
KQpAQCAtNzI3NSw3ICs3Mjc1LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGVjcmVtZW50QWN0aXZlUGFy
c2VyQ291bnQoKQogfQogCiBEb2N1bWVudFBhcnNlcllpZWxkVG9rZW46OkRvY3VtZW50UGFyc2Vy
WWllbGRUb2tlbihEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KG1ha2VXZWFr
UHRyKGRvY3VtZW50KSkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiB7CiAgICAgaWYgKCsr
ZG9jdW1lbnQubV9wYXJzZXJZaWVsZFRva2VuQ291bnQgIT0gMSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNzg3Nyw3ICs3ODc3LDcgQEAgdm9pZCBEb2N1bWVudDo6c2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGUoT3B0aW9uU2V0PFJlbmRlcmluZ1VwZGF0ZVN0ZXA+IHJlcXVlc3RlZFMKIHZvaWQgRG9jdW1l
bnQ6OmFkZEludGVyc2VjdGlvbk9ic2VydmVyKEludGVyc2VjdGlvbk9ic2VydmVyJiBvYnNlcnZl
cikKIHsKICAgICBBU1NFUlQobV9pbnRlcnNlY3Rpb25PYnNlcnZlcnMuZmluZCgmb2JzZXJ2ZXIp
ID09IG5vdEZvdW5kKTsKLSAgICBtX2ludGVyc2VjdGlvbk9ic2VydmVycy5hcHBlbmQobWFrZVdl
YWtQdHIoJm9ic2VydmVyKSk7CisgICAgbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnMuYXBwZW5kKG9i
c2VydmVyKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6cmVtb3ZlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIo
SW50ZXJzZWN0aW9uT2JzZXJ2ZXImIG9ic2VydmVyKQpAQCAtODA4Myw3ICs4MDgzLDcgQEAgdm9p
ZCBEb2N1bWVudDo6dXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25zKCkKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgICAgICBpZiAobmVlZE5vdGlmeSkKLSAgICAgICAgICAgIGludGVy
c2VjdGlvbk9ic2VydmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9ucy5hcHBlbmQobWFrZVdlYWtQ
dHIob2JzZXJ2ZXIuZ2V0KCkpKTsKKyAgICAgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyc1dp
dGhQZW5kaW5nTm90aWZpY2F0aW9ucy5hcHBlbmQob2JzZXJ2ZXIpOwogICAgIH0KIAogICAgIGZv
ciAoY29uc3QgYXV0byYgb2JzZXJ2ZXIgOiBpbnRlcnNlY3Rpb25PYnNlcnZlcnNXaXRoUGVuZGlu
Z05vdGlmaWNhdGlvbnMpIHsKQEAgLTgxMTAsNyArODExMCw3IEBAIEludGVyc2VjdGlvbk9ic2Vy
dmVyRGF0YSYgRG9jdW1lbnQ6OmVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyRGF0YSgpCiB2b2lk
IERvY3VtZW50OjphZGRSZXNpemVPYnNlcnZlcihSZXNpemVPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7
CiAgICAgaWYgKCFtX3Jlc2l6ZU9ic2VydmVycy5jb250YWlucygmb2JzZXJ2ZXIpKQotICAgICAg
ICBtX3Jlc2l6ZU9ic2VydmVycy5hcHBlbmQobWFrZVdlYWtQdHIoJm9ic2VydmVyKSk7CisgICAg
ICAgIG1fcmVzaXplT2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7CiB9CiAKIHZvaWQgRG9jdW1l
bnQ6OnJlbW92ZVJlc2l6ZU9ic2VydmVyKFJlc2l6ZU9ic2VydmVyJiBvYnNlcnZlcikKQEAgLTgz
ODcsNyArODM4Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZU1haW5BcnRpY2xlRWxlbWVudEFm
dGVyTGF5b3V0KCkKICAgICB9CiAKICAgICBpZiAobnVtYmVyT2ZBcnRpY2xlcyA9PSAxKSB7Ci0g
ICAgICAgIG1fbWFpbkFydGljbGVFbGVtZW50ID0gbWFrZVdlYWtQdHIodGFsbGVzdEFydGljbGUu
Z2V0KCkpOworICAgICAgICBtX21haW5BcnRpY2xlRWxlbWVudCA9IHRhbGxlc3RBcnRpY2xlOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04NDAxLDcgKzg0MDEsNyBAQCB2b2lkIERvY3Vt
ZW50Ojp1cGRhdGVNYWluQXJ0aWNsZUVsZW1lbnRBZnRlckxheW91dCgpCiAgICAgaWYgKHRhbGxl
c3RBcnRpY2xlV2lkdGggKiB0YWxsZXN0QXJ0aWNsZUhlaWdodCA8IG1pbmltdW1WaWV3cG9ydEFy
ZWFGYWN0b3IgKiAodmlld3BvcnRTaXplLndpZHRoKCkgKiB2aWV3cG9ydFNpemUuaGVpZ2h0KCkp
LnRvRmxvYXQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9tYWluQXJ0aWNsZUVsZW1lbnQg
PSBtYWtlV2Vha1B0cih0YWxsZXN0QXJ0aWNsZS5nZXQoKSk7CisgICAgbV9tYWluQXJ0aWNsZUVs
ZW1lbnQgPSB0YWxsZXN0QXJ0aWNsZTsKIH0KIAogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQpAQCAtODkxNiw3ICs4OTE2LDcgQEAgSFRNTFZpZGVvRWxlbWVudCog
RG9jdW1lbnQ6OnBpY3R1cmVJblBpY3R1cmVFbGVtZW50KCkgY29uc3QKIAogdm9pZCBEb2N1bWVu
dDo6c2V0UGljdHVyZUluUGljdHVyZUVsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCogZWxlbWVudCkK
IHsKLSAgICBtX3BpY3R1cmVJblBpY3R1cmVFbGVtZW50ID0gbWFrZVdlYWtQdHIoZWxlbWVudCk7
CisgICAgbV9waWN0dXJlSW5QaWN0dXJlRWxlbWVudCA9IGVsZW1lbnQ7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAppbmRleCBhMjI1NGQxNThlNDM5NmFhOTE3YjI1NmI3NjAyNDFkZjAw
ZjY2ZDdiLi5mYWY5OTFjYzNjOTg1ODljNjk3OGQ2OTJhNmIyMDBmZmVhYzVhNmQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaApAQCAtODU4LDcgKzg1OCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0Jy
b3dzaW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuICEhZnJhbWUoKTsgfQogCiAgICAgRG9jdW1l
bnQmIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29udGV4dERvY3VtZW50
KERvY3VtZW50JiBkb2N1bWVudCkgeyBtX2NvbnRleHREb2N1bWVudCA9IG1ha2VXZWFrUHRyKGRv
Y3VtZW50KTsgfQorICAgIHZvaWQgc2V0Q29udGV4dERvY3VtZW50KERvY3VtZW50JiBkb2N1bWVu
dCkgeyBtX2NvbnRleHREb2N1bWVudCA9IGRvY3VtZW50OyB9CiAKICAgICAvLyBIZWxwZXIgZnVu
Y3Rpb25zIGZvciBmb3J3YXJkaW5nIERPTVdpbmRvdyBldmVudCByZWxhdGVkIHRhc2tzIHRvIHRo
ZSBET01XaW5kb3cgaWYgaXQgZXhpc3RzLgogICAgIHZvaWQgc2V0V2luZG93QXR0cmlidXRlRXZl
bnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBET01XcmFwcGVyV29y
bGQmKTsKQEAgLTEzNDEsNyArMTM0MSw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IERvY3VtZW50
KiB0ZW1wbGF0ZURvY3VtZW50KCkgY29uc3Q7CiAgICAgRG9jdW1lbnQmIGVuc3VyZVRlbXBsYXRl
RG9jdW1lbnQoKTsKLSAgICB2b2lkIHNldFRlbXBsYXRlRG9jdW1lbnRIb3N0KERvY3VtZW50KiB0
ZW1wbGF0ZURvY3VtZW50SG9zdCkgeyBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0ID0gbWFrZVdlYWtQ
dHIodGVtcGxhdGVEb2N1bWVudEhvc3QpOyB9CisgICAgdm9pZCBzZXRUZW1wbGF0ZURvY3VtZW50
SG9zdChEb2N1bWVudCogdGVtcGxhdGVEb2N1bWVudEhvc3QpIHsgbV90ZW1wbGF0ZURvY3VtZW50
SG9zdCA9IHRlbXBsYXRlRG9jdW1lbnRIb3N0OyB9CiAgICAgRG9jdW1lbnQqIHRlbXBsYXRlRG9j
dW1lbnRIb3N0KCkgeyByZXR1cm4gbV90ZW1wbGF0ZURvY3VtZW50SG9zdC5nZXQoKTsgfQogCiAg
ICAgUmVmPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGb3JJbm5lck91dGVySFRN
TCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNlci5jcHAKaW5kZXggNzYyZDljMDBjZjlh
MmY1YzQyYThhMzQ4YTc2YTU3NzhmMGIzZmNiNy4uNTExMmYxODFiNjYxYzNlMzk0YzhkMjNiNGM3
MjUzODQ0NWFjYjIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0z
NCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIERvY3VtZW50UGFyc2VyOjpEb2N1bWVu
dFBhcnNlcihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX3N0YXRlKFBhcnNlclN0YXRlOjpQ
YXJzaW5nKQogICAgICwgbV9kb2N1bWVudFdhc0xvYWRlZEFzUGFydE9mTmF2aWdhdGlvbihmYWxz
ZSkKLSAgICAsIG1fZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9jdW1lbnQpKQorICAgICwgbV9kb2N1
bWVudChkb2N1bWVudCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TG9vcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5oCmluZGV4IGJhNDYyNWFi
ZDZjOWNhNzE4MTlkMzg0NTI3NWIwZWM2ZjEzNjEzNjIuLjQ5ZDE5MTY2N2U3MzhhMmMwYjQ4NDZm
NmM5ZDliMDM2ZGE0ZTAzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExv
b3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMb29wLmgKQEAgLTEwNiw3ICsxMDYs
NyBAQCBjbGFzcyBFdmVudExvb3BUYXNrR3JvdXAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RXZl
bnRMb29wVGFza0dyb3VwPiB7CiAKIHB1YmxpYzoKICAgICBFdmVudExvb3BUYXNrR3JvdXAoRXZl
bnRMb29wJiBldmVudExvb3ApCi0gICAgICAgIDogbV9ldmVudExvb3AobWFrZVdlYWtQdHIoZXZl
bnRMb29wKSkKKyAgICAgICAgOiBtX2V2ZW50TG9vcChldmVudExvb3ApCiAgICAgewogICAgICAg
ICBldmVudExvb3AucmVnaXN0ZXJHcm91cCgqdGhpcyk7CiAgICAgfQpAQCAtMTkzLDcgKzE5Myw3
IEBAIHByaXZhdGU6CiAKIGlubGluZSBFdmVudExvb3BUYXNrOjpFdmVudExvb3BUYXNrKFRhc2tT
b3VyY2Ugc291cmNlLCBFdmVudExvb3BUYXNrR3JvdXAmIGdyb3VwKQogICAgIDogbV90YXNrU291
cmNlKHNvdXJjZSkKLSAgICAsIG1fZ3JvdXAobWFrZVdlYWtQdHIoZ3JvdXApKQorICAgICwgbV9n
cm91cChncm91cCkKIHsgfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRTZW5kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dFNlbmRlci5oCmluZGV4IDBjNTYyMGYwNzc3YzdkZmI5NTlkZjdmMjA0NzcxMDVmYTYwYTZjZmMu
LmQ2OWE2ZTVlOWNiOGE5Y2UwMTkzODVlYzcxYTkzYzk3N2U1ZTQyMTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFNlbmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFNlbmRlci5oCkBAIC02Nyw3ICs2Nyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IEV2ZW50
U2VuZGVyPFQ+OjpFdmVudFNlbmRlcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUpCiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgRXZlbnRTZW5kZXI8VD46OmRpc3BhdGNoRXZlbnRTb29u
KFQmIHNlbmRlcikKIHsKLSAgICBtX2Rpc3BhdGNoU29vbkxpc3QuYXBwZW5kKG1ha2VXZWFrUHRy
KHNlbmRlcikpOworICAgIG1fZGlzcGF0Y2hTb29uTGlzdC5hcHBlbmQoc2VuZGVyKTsKICAgICBp
ZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMF9z
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCmluZGV4IGVhYmIzOWMzOTVjM2E3OTAx
YzJmMzBjZmQxNWY2NmY3YzNhYTkyZjEuLmNmMzYxMTNlNTY5YWUxODhmZTJjYzdmZTQ5Y2JhYTEw
ZjY1YjUzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtOTgsNyArOTgsNyBA
QCBib29sIEV2ZW50VGFyZ2V0OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21TdHJpbmcmIGV2
ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBp
ZiAob3B0aW9ucy5zaWduYWwpIHsKLSAgICAgICAgb3B0aW9ucy5zaWduYWwtPmFkZEFsZ29yaXRo
bShbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgZXZlbnRUeXBlLCBsaXN0ZW5lciA9IG1h
a2VXZWFrUHRyKGxpc3RlbmVyLmdldCgpKSwgY2FwdHVyZSA9IG9wdGlvbnMuY2FwdHVyZV0gewor
ICAgICAgICBvcHRpb25zLnNpZ25hbC0+YWRkQWxnb3JpdGhtKFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCBldmVudFR5cGUsIGxpc3RlbmVyID0gV2Vha1B0ciB7IGxpc3RlbmVyIH0sIGNh
cHR1cmUgPSBvcHRpb25zLmNhcHR1cmVdIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBs
aXN0ZW5lcikKICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihl
dmVudFR5cGUsICpsaXN0ZW5lciwgY2FwdHVyZSk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKaW5kZXggZjgzZTI4NTI5ZDgxOGY2NmEzYTNmMWQ3
YTk4ZDEyZjEzYmJmM2RlYS4uYjU0MWZhN2NkYTEzYjM5MzhhNGMyN2E3ZTc1OTQwNDdmYTVkY2Iy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCkBAIC01NTIsNyAr
NTUyLDcgQEAgdm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6c2V0RnVsbHNjcmVlblJlbmRlcmVyKFJl
bmRlclRyZWVCdWlsZGVyJiBidWlsZGVyLCBSZW5kZXIKICAgICAgICAgYnVpbGRlci5kZXN0cm95
KCptX2Z1bGxzY3JlZW5SZW5kZXJlcik7CiAgICAgQVNTRVJUKCFtX2Z1bGxzY3JlZW5SZW5kZXJl
cik7CiAKLSAgICBtX2Z1bGxzY3JlZW5SZW5kZXJlciA9IG1ha2VXZWFrUHRyKHJlbmRlcmVyKTsK
KyAgICBtX2Z1bGxzY3JlZW5SZW5kZXJlciA9IHJlbmRlcmVyOwogfQogCiBSZW5kZXJGdWxsU2Ny
ZWVuKiBGdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlblJlbmRlcmVyKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JZGxlQ2FsbGJhY2tDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9JZGxlQ2FsbGJhY2tDb250cm9sbGVyLmNwcAppbmRleCA3ODgyNTRk
MWQ4OWExYjE5OGQ5NDg0MzNmZTUxODQ3ZjBmYWY5NmM3Li5lNDExNjg4YjM4MzY1NmI2N2Q5Nzdh
MjRjZjViOWQ1Mzg0Mjg1N2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vSWRsZUNh
bGxiYWNrQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxsYmFj
a0NvbnRyb2xsZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IElkbGVDYWxsYmFja0NvbnRyb2xsZXI6OklkbGVDYWxsYmFja0NvbnRyb2xsZXIoRG9jdW1lbnQm
IGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCisgICAg
OiBtX2RvY3VtZW50KGRvY3VtZW50KQogewogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZVBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNw
cAppbmRleCBlZGM0YzBhYzQ3N2E1NzlhYjUxNDU1ZjliM2VjYjljYTQxM2NlOTM4Li44ZGEyMDc2
MTgzMWY3MjIzYzhiMzRiNzFiZGFmNjUzNjIxNmFlMTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdl
UG9ydC5jcHAKQEAgLTMzMyw3ICszMzMsNyBAQCBib29sIE1lc3NhZ2VQb3J0Ojp2aXJ0dWFsSGFz
UGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKICAgICAgICAgaWYgKGlzPFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKICAgICAgICAgICAgIHdvcmtl
ck9yV29ya2xldFRocmVhZCA9IGRvd25jYXN0PFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPigq
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS53b3JrZXJPcldvcmtsZXRUaHJlYWQoKTsKIAotICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFtyZW1vdGVJZGVudGlmaWVyID0gbV9yZW1vdGVJZGVudGlm
aWVyLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKGNvbnN0X2Nhc3Q8TWVzc2FnZVBvcnQqPih0aGlz
KSksIHdvcmtlck9yV29ya2xldFRocmVhZCA9IFdURk1vdmUod29ya2VyT3JXb3JrbGV0VGhyZWFk
KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcmVtb3RlSWRlbnRpZmll
ciA9IG1fcmVtb3RlSWRlbnRpZmllciwgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd29y
a2VyT3JXb3JrbGV0VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJPcldvcmtsZXRUaHJlYWQpXSgpIG11
dGFibGUgewogICAgICAgICAgICAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRv
bigpLmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KHJlbW90ZUlkZW50aWZpZXIsIFt3ZWFrVGhp
cyA9IFdURk1vdmUod2Vha1RoaXMpLCB3b3JrZXJPcldvcmtsZXRUaHJlYWQgPSBXVEZNb3ZlKHdv
cmtlck9yV29ya2xldFRocmVhZCldKGF1dG8gaGFzQWN0aXZpdHkpIG11dGFibGUgewogICAgICAg
ICAgICAgICAgIGlmICghd29ya2VyT3JXb3JrbGV0VGhyZWFkKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmICh3ZWFrVGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYWRpb0J1
dHRvbkdyb3Vwcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFkaW9CdXR0b25Hcm91cHMuY3Bw
CmluZGV4IDdhNjAwMjQ1YWM4OWM3YjdjM2E2MjJkN2E0NjY1ZmNiNTY3ZTZmM2YuLmE1ZDUzMGY5
NjAwZTNiZTAwNmM0MTJiYmQxNmNhZGM0MmY2Yzg5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYWRpb0J1dHRvbkdyb3Vwcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jh
ZGlvQnV0dG9uR3JvdXBzLmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lkIFJhZGlvQnV0dG9uR3Jv
dXA6OnNldENoZWNrZWRCdXR0b24oSFRNTElucHV0RWxlbWVudCogYnV0dG9uKQogICAgIGlmICho
YWRDaGVja2VkQnV0dG9uICE9IHdpbGxIYXZlQ2hlY2tlZEJ1dHRvbikKICAgICAgICAgc2V0TmVl
ZHNTdHlsZVJlY2FsY0ZvckFsbEJ1dHRvbnMoKTsKIAotICAgIG1fY2hlY2tlZEJ1dHRvbiA9IG1h
a2VXZWFrUHRyKGJ1dHRvbik7CisgICAgbV9jaGVja2VkQnV0dG9uID0gYnV0dG9uOwogICAgIGlm
IChvbGRDaGVja2VkQnV0dG9uKQogICAgICAgICBvbGRDaGVja2VkQnV0dG9uLT5zZXRDaGVja2Vk
KGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlci5jcHAKaW5kZXggMGUxMTgzYmNkY2MwOGQwZDRhYjc0NWI1NjIwNWUyNTJjMTNj
ZDIzOC4uNjg3MDBiNmNlNTFmYmYyMDdjM2NjYTU5NzZjOTdiMjFmY2FkNjgzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAg
LTQwLDcgKzQwLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyOjpTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoRG9jdW1lbnQmIGRvY3VtZW50
KQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCisgICAgOiBtX2RvY3Vt
ZW50KGRvY3VtZW50KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2xv
dEFzc2lnbm1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nsb3RBc3NpZ25tZW50LmNwcApp
bmRleCAyNzQ5Y2UyMGFkNWY5MTYxZDNhYzZjMDRjZWYxMDA5YWUzYzBjZDRhLi41M2U0MmZjYjc0
N2M0YzI4MWU1YmNhN2VjNDZiM2ZhZGRmMGUwMzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2xvdEFzc2lnbm1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TbG90QXNz
aWdubWVudC5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIFNsb3RBc3NpZ25tZW50OjphZGRT
bG90RWxlbWVudEJ5TmFtZShjb25zdCBBdG9tU3RyaW5nJiBuYW1lLCBIVE1MU2xvdEVsZW1lbgog
CiAgICAgc2xvdC5lbGVtZW50Q291bnQrKzsKICAgICBpZiAoc2xvdC5lbGVtZW50Q291bnQgPT0g
MSkgewotICAgICAgICBzbG90LmVsZW1lbnQgPSBtYWtlV2Vha1B0cihzbG90RWxlbWVudCk7Cisg
ICAgICAgIHNsb3QuZWxlbWVudCA9IHNsb3RFbGVtZW50OwogICAgICAgICBpZiAoc2hhZG93Um9v
dC5zaG91bGRGaXJlU2xvdGNoYW5nZUV2ZW50KCkgJiYgaGFzQXNzaWduZWROb2RlcyhzaGFkb3dS
b290LCBzbG90KSkKICAgICAgICAgICAgIHNsb3RFbGVtZW50LmVucXVldWVTbG90Q2hhbmdlRXZl
bnQoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgU2xvdEFzc2ln
bm1lbnQ6OnJlc29sdmVTbG90c0FmdGVyU2xvdE11dGF0aW9uKFNoYWRvd1Jvb3QmIHNoYWRvd1Jv
b3QsIFNsb3RNCiAgICAgICAgICAgICAgICAgY3VycmVudFNsb3QtPm9sZEVsZW1lbnQgPSBXVEZN
b3ZlKGN1cnJlbnRTbG90LT5lbGVtZW50KTsKICAgICAgICAgICAgICAgICBjdXJyZW50RWxlbWVu
dC0+ZW5xdWV1ZVNsb3RDaGFuZ2VFdmVudCgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
Y3VycmVudFNsb3QtPmVsZW1lbnQgPSBtYWtlV2Vha1B0cigqY3VycmVudEVsZW1lbnQpOworICAg
ICAgICAgICAgY3VycmVudFNsb3QtPmVsZW1lbnQgPSAqY3VycmVudEVsZW1lbnQ7CiAgICAgICAg
IH0KICAgICB9CiAKQEAgLTM3NywxNCArMzc3LDE0IEBAIHZvaWQgU2xvdEFzc2lnbm1lbnQ6OmFz
c2lnblRvU2xvdChOb2RlJiBjaGlsZCwgY29uc3QgQXRvbVN0cmluZyYgc2xvdE5hbWUpCiAgICAg
aWYgKHNsb3ROYW1lID09IGRlZmF1bHRTbG90TmFtZSgpKSB7CiAgICAgICAgIGF1dG8gZGVmYXVs
dFNsb3RFbnRyeSA9IG1fc2xvdHMuZmluZChkZWZhdWx0U2xvdE5hbWUoKSk7CiAgICAgICAgIGlm
IChkZWZhdWx0U2xvdEVudHJ5ICE9IG1fc2xvdHMuZW5kKCkpCi0gICAgICAgICAgICBkZWZhdWx0
U2xvdEVudHJ5LT52YWx1ZS0+YXNzaWduZWROb2Rlcy5hcHBlbmQobWFrZVdlYWtQdHIoY2hpbGQp
KTsKKyAgICAgICAgICAgIGRlZmF1bHRTbG90RW50cnktPnZhbHVlLT5hc3NpZ25lZE5vZGVzLmFw
cGVuZChjaGlsZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBhdXRvIGFkZFJlc3Vs
dCA9IG1fc2xvdHMuZW5zdXJlKHNsb3ROYW1lLCBbXSB7CiAgICAgICAgIHJldHVybiBtYWtlVW5p
cXVlPFNsb3Q+KCk7CiAgICAgfSk7Ci0gICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+YXNz
aWduZWROb2Rlcy5hcHBlbmQobWFrZVdlYWtQdHIoY2hpbGQpKTsKKyAgICBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlLT5hc3NpZ25lZE5vZGVzLmFwcGVuZChjaGlsZCk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAKaW5kZXggZjI4OTI3MWVjMTBhMDEx
NGQ1Njg4NGM4MDg0NjYzYjFiMjEzOTY5My4uNDkwMjg3ZmQwZmRhN2I3ZmQ4NTFhN2ExZDJhM2E5
ZDY4ZmJjYTZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRv
U3RlcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAK
QEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ3VzdG9tVW5kb1N0ZXA6
OkN1c3RvbVVuZG9TdGVwKFVuZG9JdGVtJiBpdGVtKQotICAgIDogbV91bmRvSXRlbShtYWtlV2Vh
a1B0cihpdGVtKSkKKyAgICA6IG1fdW5kb0l0ZW0oaXRlbSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCBmOTVhMzFjNTM5MTJkMDNiYWZmNGNjODU3MDAy
YjVjMWNkMzU5OTMyLi5mODdjOTRhYTQ0YWJiMjM2ZDg3MTlhZTBlZjQ1Y2ZkNjQ3MTFhYTM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMTc4LDcgKzE3OCw3IEBA
IHZvaWQgRWRpdENvbW1hbmQ6OnNldEVuZGluZ1NlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBzZWxlY3Rpb24pCiB2b2lkIEVkaXRDb21tYW5kOjpzZXRQYXJlbnQoQ29tcG9zaXRlRWRp
dENvbW1hbmQqIHBhcmVudCkKIHsKICAgICBBU1NFUlQoKHBhcmVudCAmJiAhbV9wYXJlbnQpIHx8
ICghcGFyZW50ICYmIG1fcGFyZW50KSk7Ci0gICAgbV9wYXJlbnQgPSBtYWtlV2Vha1B0cihwYXJl
bnQpOworICAgIG1fcGFyZW50ID0gcGFyZW50OwogICAgIGlmIChwYXJlbnQpIHsKICAgICAgICAg
bV9zdGFydGluZ1NlbGVjdGlvbiA9IHBhcmVudC0+bV9lbmRpbmdTZWxlY3Rpb247CiAgICAgICAg
IG1fZW5kaW5nU2VsZWN0aW9uID0gcGFyZW50LT5tX2VuZGluZ1NlbGVjdGlvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYzJlYjhhN2JjNDEzMjJjYThk
MjA4NDQzM2EyMzVmZmU5N2I1ZWJiZC4uMzE4ZWM5MWEzZmU2MzY1NmYxMGU2MGNmMTkwMmVlOTJi
MjVhZjNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAg
LTE1Myw3ICsxNTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkQWx3YXlzVXNlRGlyZWN0
aW9uYWxTZWxlY3Rpb24oRG9jdW1lbnQqIGRvY3VtZW50KQogfQogCiBGcmFtZVNlbGVjdGlvbjo6
RnJhbWVTZWxlY3Rpb24oRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChtYWtl
V2Vha1B0cihkb2N1bWVudCkpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9n
cmFudWxhcml0eShUZXh0R3JhbnVsYXJpdHk6OkNoYXJhY3RlckdyYW51bGFyaXR5KQogI2lmIEVO
QUJMRShURVhUX0NBUkVUKQogICAgICwgbV9jYXJldEJsaW5rVGltZXIoKnRoaXMsICZGcmFtZVNl
bGVjdGlvbjo6Y2FyZXRCbGlua1RpbWVyRmlyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGM0YTRmYmExZDAw
MzQ2ZGY0NjcwMjMzMDU0Mzk5NGUzZmQxMDk5MzIuLjNlZmQyMDg0MGI2ZGZjMWIzYWFjNWE5NWI3
YWZjM2M3NDM3YzkzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1h
bmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgcHJpdmF0ZToK
IH07CiAKIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlcihEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KG1ha2VXZWFrUHRyKGRv
Y3VtZW50KSkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiB7CiB9CiAKQEAgLTQ4MywxOSAr
NDgzLDE5IEBAIHZvaWQgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Om9ic2VydmVQYXJhZ3Jh
cGhzKGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QKICAgICAgICAgaWYgKGlzPEVsZW1lbnQ+
KCpjb250ZW50Tm9kZSkpIHsKICAgICAgICAgICAgIGF1dG8mIGN1cnJlbnRFbGVtZW50ID0gZG93
bmNhc3Q8RWxlbWVudD4oKmNvbnRlbnROb2RlKTsKICAgICAgICAgICAgIGlmICghY29udGVudC5p
c1RleHRDb250ZW50ICYmIGNhblBlcmZvcm1UZXh0TWFuaXB1bGF0aW9uQnlSZXBsYWNpbmdFbnRp
cmVUZXh0Q29udGVudChjdXJyZW50RWxlbWVudCkpCi0gICAgICAgICAgICAgICAgYWRkSXRlbShN
YW5pcHVsYXRpb25JdGVtRGF0YSB7IFBvc2l0aW9uKCksIFBvc2l0aW9uKCksIG1ha2VXZWFrUHRy
KGN1cnJlbnRFbGVtZW50KSwgbnVsbFFOYW1lKCksIHsgTWFuaXB1bGF0aW9uVG9rZW4geyBtX3Rv
a2VuSWRlbnRpZmllci5nZW5lcmF0ZSgpLCBjdXJyZW50RWxlbWVudC50ZXh0Q29udGVudCgpLCB0
b2tlbkluZm8oJmN1cnJlbnRFbGVtZW50KSB9IH0gfSk7CisgICAgICAgICAgICAgICAgYWRkSXRl
bShNYW5pcHVsYXRpb25JdGVtRGF0YSB7IFBvc2l0aW9uKCksIFBvc2l0aW9uKCksIGN1cnJlbnRF
bGVtZW50LCBudWxsUU5hbWUoKSwgeyBNYW5pcHVsYXRpb25Ub2tlbiB7IG1fdG9rZW5JZGVudGlm
aWVyLmdlbmVyYXRlKCksIGN1cnJlbnRFbGVtZW50LnRleHRDb250ZW50KCksIHRva2VuSW5mbygm
Y3VycmVudEVsZW1lbnQpIH0gfSB9KTsKIAogICAgICAgICAgICAgaWYgKGN1cnJlbnRFbGVtZW50
Lmhhc0F0dHJpYnV0ZXMoKSkgewogICAgICAgICAgICAgICAgIGZvciAoYXV0byYgYXR0cmlidXRl
IDogY3VycmVudEVsZW1lbnQuYXR0cmlidXRlc0l0ZXJhdG9yKCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGlzQXR0cmlidXRlRm9yVGV4dE1hbmlwdWxhdGlvbihhdHRyaWJ1dGUubmFtZSgp
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGFkZEl0ZW0oTWFuaXB1bGF0aW9uSXRlbURhdGEg
eyBQb3NpdGlvbigpLCBQb3NpdGlvbigpLCBtYWtlV2Vha1B0cihjdXJyZW50RWxlbWVudCksIGF0
dHJpYnV0ZS5uYW1lKCksIHsgTWFuaXB1bGF0aW9uVG9rZW4geyBtX3Rva2VuSWRlbnRpZmllci5n
ZW5lcmF0ZSgpLCBhdHRyaWJ1dGUudmFsdWUoKSwgdG9rZW5JbmZvKCZjdXJyZW50RWxlbWVudCkg
fSB9IH0pOworICAgICAgICAgICAgICAgICAgICAgICAgYWRkSXRlbShNYW5pcHVsYXRpb25JdGVt
RGF0YSB7IFBvc2l0aW9uKCksIFBvc2l0aW9uKCksIGN1cnJlbnRFbGVtZW50LCBhdHRyaWJ1dGUu
bmFtZSgpLCB7IE1hbmlwdWxhdGlvblRva2VuIHsgbV90b2tlbklkZW50aWZpZXIuZ2VuZXJhdGUo
KSwgYXR0cmlidXRlLnZhbHVlKCksIHRva2VuSW5mbygmY3VycmVudEVsZW1lbnQpIH0gfSB9KTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChpczxI
VE1MSW5wdXRFbGVtZW50PihjdXJyZW50RWxlbWVudCkpIHsKICAgICAgICAgICAgICAgICBhdXRv
JiBpbnB1dCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGN1cnJlbnRFbGVtZW50KTsKICAg
ICAgICAgICAgICAgICBpZiAoc2hvdWxkRXh0cmFjdFZhbHVlRm9yVGV4dE1hbmlwdWxhdGlvbihp
bnB1dCkpCi0gICAgICAgICAgICAgICAgICAgIGFkZEl0ZW0oTWFuaXB1bGF0aW9uSXRlbURhdGEg
eyB7IH0sIHsgfSwgbWFrZVdlYWtQdHIoY3VycmVudEVsZW1lbnQpLCBIVE1MTmFtZXM6OnZhbHVl
QXR0ciwgeyBNYW5pcHVsYXRpb25Ub2tlbiB7IG1fdG9rZW5JZGVudGlmaWVyLmdlbmVyYXRlKCks
IGlucHV0LnZhbHVlKCksIHRva2VuSW5mbygmY3VycmVudEVsZW1lbnQpIH0gfSB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgYWRkSXRlbShNYW5pcHVsYXRpb25JdGVtRGF0YSB7IHsgfSwgeyB9LCBj
dXJyZW50RWxlbWVudCwgSFRNTE5hbWVzOjp2YWx1ZUF0dHIsIHsgTWFuaXB1bGF0aW9uVG9rZW4g
eyBtX3Rva2VuSWRlbnRpZmllci5nZW5lcmF0ZSgpLCBpbnB1dC52YWx1ZSgpLCB0b2tlbkluZm8o
JmN1cnJlbnRFbGVtZW50KSB9IH0gfSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlm
IChpc0VuY2xvc2luZ0l0ZW1Cb3VuZGFyeUVsZW1lbnQoY3VycmVudEVsZW1lbnQpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KaW5kZXggNDlkMjM4MmE3Y2M2YzAzNmNm
MmM3OTA0Y2RhNTdlMWEyYTRhZTE3Zi4uNzBmMGI3MTFhOWQzNWI5NjIwNThhZmIxMWJhNjhmZmFm
YjU1ZmIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQpAQCAtMjc1
LDcgKzI3NSw3IEBAIHZvaWQgRWRpdG9yOjpzZXREaWN0YXRpb25QaHJhc2VzQXNDaGlsZE9mRWxl
bWVudChjb25zdCBWZWN0b3I8VmVjdG9yPFN0cmluZz4+JiBkCiAKICAgICBlbGVtZW50LmFwcGVu
ZENoaWxkKGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29udGV4dCwgZGljdGF0aW9uUGhyYXNlc0J1
aWxkZXIudG9TdHJpbmcoKSkpOwogCi0gICAgYXV0byB3ZWFrRWxlbWVudCA9IG1ha2VXZWFrUHRy
KGVsZW1lbnQpOworICAgIFdlYWtQdHIgd2Vha0VsZW1lbnQgeyBlbGVtZW50IH07CiAKICAgICAv
LyBXZSBuZWVkIGEgbGF5b3V0IGluIG9yZGVyIHRvIGFkZCBtYXJrZXJzIGJlbG93LgogICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVh
ZGVyTG9hZGVyLmNwcAppbmRleCBkY2M2MTNiODVkOGIxZWZjNGM4OGFlNzBhNThkMjYxNWM3ZWI5
NDk2Li45ZmFkZDBiNjY0NWVhZWRhYTY0MjhjNWJmN2MwODdlN2I4M2NhN2I2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKQEAgLTU2LDcgKzU2LDcgQEAg
Y29uc3QgaW50IGRlZmF1bHRCdWZmZXJMZW5ndGggPSAzMjc2ODsKIAogRmlsZVJlYWRlckxvYWRl
cjo6RmlsZVJlYWRlckxvYWRlcihSZWFkVHlwZSByZWFkVHlwZSwgRmlsZVJlYWRlckxvYWRlckNs
aWVudCogY2xpZW50KQogICAgIDogbV9yZWFkVHlwZShyZWFkVHlwZSkKLSAgICAsIG1fY2xpZW50
KG1ha2VXZWFrUHRyKGNsaWVudCkpCisgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX2lz
UmF3RGF0YUNvbnZlcnRlZChmYWxzZSkKICAgICAsIG1fc3RyaW5nUmVzdWx0KGVtcHR5U3RyaW5n
KCkpCiAgICAgLCBtX3ZhcmlhYmxlTGVuZ3RoKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9DdXN0b21QYWludEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ3Vz
dG9tUGFpbnRJbWFnZS5jcHAKaW5kZXggN2U3MzNiM2VkZGU0ZGY5Y2UyMzgyOTc5NmQzZGQ2YmVl
ZWJiNTZmMy4uZjQ3MTk5NDZjNThlMDU5YmUzM2RiNzFkM2Y3YjZmNjA5MjBhNWNhYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludEltYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50SW1hZ2UuY3BwCkBAIC01MCw5ICs1MCw5IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIEN1c3RvbVBhaW50SW1hZ2U6OkN1c3RvbVBhaW50SW1hZ2Uo
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OlBhaW50RGVmaW5pdGlvbiYgZGVmaW5pdGlvbiwgY29u
c3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJFbGVtZW50JiBlbGVtZW50LCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgYXJndW1lbnRzKQotICAgIDogbV9wYWludERlZmluaXRpb24obWFrZVdlYWtQdHIo
ZGVmaW5pdGlvbikpCisgICAgOiBtX3BhaW50RGVmaW5pdGlvbihkZWZpbml0aW9uKQogICAgICwg
bV9pbnB1dFByb3BlcnRpZXMoZGVmaW5pdGlvbi5pbnB1dFByb3BlcnRpZXMpCi0gICAgLCBtX2Vs
ZW1lbnQobWFrZVdlYWtQdHIoZWxlbWVudCkpCisgICAgLCBtX2VsZW1lbnQoZWxlbWVudCkKICAg
ICAsIG1fYXJndW1lbnRzKGFyZ3VtZW50cykKIHsKICAgICBzZXRDb250YWluZXJTaXplKHNpemUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCmluZGV4
IGM2M2NjZDUxMGE5NzMyNzRlMzkwZGE0ZjMyYThlMGEzNWEwMmJjYjAuLjRiMzUxMTI1MjdkNjlk
M2Q3ZTU2N2Y0ZDgyM2Q5YzE2Y2VkODA3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zv
cm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToKIAogRm9y
bUFzc29jaWF0ZWRFbGVtZW50OjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQoSFRNTEZvcm1FbGVtZW50
KiBmb3JtKQogICAgIDogbV9mb3JtKG51bGxwdHIpCi0gICAgLCBtX2Zvcm1TZXRCeVBhcnNlciht
YWtlV2Vha1B0cihmb3JtKSkKKyAgICAsIG1fZm9ybVNldEJ5UGFyc2VyKGZvcm0pCiB7CiB9CiAK
QEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6c2V0Rm9ybShI
VE1MRm9ybUVsZW1lbnQqIG5ld0Zvcm0pCiAgICAgd2lsbENoYW5nZUZvcm0oKTsKICAgICBpZiAo
bV9mb3JtKQogICAgICAgICBtX2Zvcm0tPnJlbW92ZUZvcm1FbGVtZW50KHRoaXMpOwotICAgIG1f
Zm9ybSA9IG1ha2VXZWFrUHRyKG5ld0Zvcm0pOworICAgIG1fZm9ybSA9IG5ld0Zvcm07CiAgICAg
aWYgKG5ld0Zvcm0pCiAgICAgICAgIG5ld0Zvcm0tPnJlZ2lzdGVyRm9ybUVsZW1lbnQodGhpcyk7
CiAgICAgZGlkQ2hhbmdlRm9ybSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcAppbmRleCAyMWRkZGQ1YTBiNTdlYmVjYTQxNjkwMTc5YmE2N2Y0ZjgzNjFhYTljLi43
ZDM2MGQ5OTE3ZDdhYTdmNTMzNzMwNDMwM2MwMGUxMTc4NmZhYWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtNjI0LDcgKzYyNCw3IEBAIHZvaWQgSFRN
TEFuY2hvckVsZW1lbnQ6OnNldFJvb3RFZGl0YWJsZUVsZW1lbnRGb3JTZWxlY3Rpb25Pbk1vdXNl
RG93bihFbGVtZW50KiBlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICByb290RWRpdGFi
bGVFbGVtZW50TWFwKCkuc2V0KCp0aGlzLCBtYWtlV2Vha1B0cihlbGVtZW50KSk7CisgICAgcm9v
dEVkaXRhYmxlRWxlbWVudE1hcCgpLnNldCgqdGhpcywgZWxlbWVudCk7CiAgICAgbV9oYXNSb290
RWRpdGFibGVFbGVtZW50Rm9yU2VsZWN0aW9uT25Nb3VzZURvd24gPSB0cnVlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggYWFkODBhN2EwOGUzOWQ3MmIy
MzBjNjgzNTZlYjEyNjE2ZDgwMzgyZC4uMGVhYTVkMzc0YmY4ZTNmODk3YjMwMzAyYTdmMWQ1MWZm
NWUyY2U0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtNDAy
LDcgKzQwMiw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpzdWJtaXQoRXZlbnQqIGV2ZW50LCBi
b29sIGFjdGl2YXRlU3VibWl0QnV0dG9uLCBib29sIHByb2NlCiAgICAgaWYgKG1fcGxhbm5lZEZv
cm1TdWJtaXNzaW9uKQogICAgICAgICBtX3BsYW5uZWRGb3JtU3VibWlzc2lvbi0+Y2FuY2VsKCk7
CiAKLSAgICBtX3BsYW5uZWRGb3JtU3VibWlzc2lvbiA9IG1ha2VXZWFrUHRyKGZvcm1TdWJtaXNz
aW9uLmdldCgpKTsKKyAgICBtX3BsYW5uZWRGb3JtU3VibWlzc2lvbiA9IGZvcm1TdWJtaXNzaW9u
OwogICAgIAogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmRpYWxvZ0VsZW1lbnRFbmFibGVkKCkgJiYgZm9ybVN1Ym1pc3Npb24tPm1ldGhvZCgpID09IEZv
cm1TdWJtaXNzaW9uOjpNZXRob2Q6OkRpYWxvZykKICAgICAgICAgc3VibWl0RGlhbG9nKFdURk1v
dmUoZm9ybVN1Ym1pc3Npb24pKTsKQEAgLTU5NCw3ICs1OTQsNyBAQCB1bnNpZ25lZCBIVE1MRm9y
bUVsZW1lbnQ6OmZvcm1FbGVtZW50SW5kZXgoRm9ybUFzc29jaWF0ZWRFbGVtZW50KiBhc3NvY2lh
dGVkRWxlbQogCiB2b2lkIEhUTUxGb3JtRWxlbWVudDo6cmVnaXN0ZXJGb3JtRWxlbWVudChGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQqIGUpCiB7Ci0gICAgbV9hc3NvY2lhdGVkRWxlbWVudHMuaW5zZXJ0
KGZvcm1FbGVtZW50SW5kZXgoZSksIG1ha2VXZWFrUHRyKGUtPmFzSFRNTEVsZW1lbnQoKSkpOwor
ICAgIG1fYXNzb2NpYXRlZEVsZW1lbnRzLmluc2VydChmb3JtRWxlbWVudEluZGV4KGUpLCBlLT5h
c0hUTUxFbGVtZW50KCkpOwogCiAgICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGUp
KSB7CiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGNvbnRyb2wgPSBkb3duY2FzdDxI
VE1MRm9ybUNvbnRyb2xFbGVtZW50PigqZSk7CkBAIC02NTEsNyArNjUxLDcgQEAgYm9vbCBIVE1M
Rm9ybUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBj
b25zdAogdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlZ2lzdGVySW1nRWxlbWVudChIVE1MSW1hZ2VF
bGVtZW50KiBlKQogewogICAgIEFTU0VSVChtX2ltYWdlRWxlbWVudHMuZmluZChlKSA9PSBub3RG
b3VuZCk7Ci0gICAgbV9pbWFnZUVsZW1lbnRzLmFwcGVuZChtYWtlV2Vha1B0cihlKSk7CisgICAg
bV9pbWFnZUVsZW1lbnRzLmFwcGVuZChlKTsKIH0KIAogdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJl
bW92ZUltZ0VsZW1lbnQoSFRNTEltYWdlRWxlbWVudCogZSkKQEAgLTc1Miw3ICs3NTIsNyBAQCBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50KiBIVE1MRm9ybUVsZW1lbnQ6OmRlZmF1bHRCdXR0b24oKSBj
b25zdAogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQmIGNvbnRyb2wgPSBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqYXNzb2NpYXRl
ZEVsZW1lbnQpOwogICAgICAgICBpZiAoY29udHJvbC5pc1N1Y2Nlc3NmdWxTdWJtaXRCdXR0b24o
KSkgewotICAgICAgICAgICAgbV9kZWZhdWx0QnV0dG9uID0gbWFrZVdlYWtQdHIoY29udHJvbCk7
CisgICAgICAgICAgICBtX2RlZmF1bHRCdXR0b24gPSBjb250cm9sOwogICAgICAgICAgICAgcmV0
dXJuICZjb250cm9sOwogICAgICAgICB9CiAgICAgfQpAQCAtODUyLDcgKzg1Miw3IEBAIHZvaWQg
SFRNTEZvcm1FbGVtZW50OjphZGRUb1Bhc3ROYW1lc01hcChGb3JtTmFtZWRJdGVtKiBpdGVtLCBj
b25zdCBBdG9tU3RyaW5nJiBwCiAjZW5kaWYKICAgICBpZiAocGFzdE5hbWUuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47Ci0gICAgbV9wYXN0TmFtZXNNYXAuc2V0KHBhc3ROYW1lLmltcGwoKSwg
bWFrZVdlYWtQdHIoaXRlbS0+YXNIVE1MRWxlbWVudCgpKSk7CisgICAgbV9wYXN0TmFtZXNNYXAu
c2V0KHBhc3ROYW1lLmltcGwoKSwgaXRlbS0+YXNIVE1MRWxlbWVudCgpKTsKIH0KIAogdm9pZCBI
VE1MRm9ybUVsZW1lbnQ6OnJlbW92ZUZyb21QYXN0TmFtZXNNYXAoRm9ybU5hbWVkSXRlbSogaXRl
bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcAppbmRl
eCBmMmU0YjhhNmJhY2RlOTdhZTc3MmYwZjJmYTY2ZmEwNzJjYzdmM2ZiLi4zMzU2MWNlOTJlMGM3
MTk4YzVkZDkzNjc3YWJhZTQ1MjQ5YjNmNzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVPd25lckVsZW1lbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgSFRNTEZyYW1l
T3duZXJFbGVtZW50OjpzZXRDb250ZW50RnJhbWUoRnJhbWUmIGZyYW1lKQogICAgIEFTU0VSVCgh
bV9jb250ZW50RnJhbWUgfHwgbV9jb250ZW50RnJhbWUtPm93bmVyRWxlbWVudCgpICE9IHRoaXMp
OwogICAgIC8vIERpc2Nvbm5lY3RlZCBmcmFtZXMgc2hvdWxkIG5vdCBiZSBhbGxvd2VkIHRvIGxv
YWQuCiAgICAgQVNTRVJUKGlzQ29ubmVjdGVkKCkpOwotICAgIG1fY29udGVudEZyYW1lID0gbWFr
ZVdlYWtQdHIoZnJhbWUpOworICAgIG1fY29udGVudEZyYW1lID0gZnJhbWU7CiAKICAgICBmb3Ig
KFJlZlB0cjxDb250YWluZXJOb2RlPiBub2RlID0gdGhpczsgbm9kZTsgbm9kZSA9IG5vZGUtPnBh
cmVudE9yU2hhZG93SG9zdE5vZGUoKSkKICAgICAgICAgbm9kZS0+aW5jcmVtZW50Q29ubmVjdGVk
U3ViZnJhbWVDb3VudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAK
aW5kZXggYzgzZmQyOWQwYmFjYzNmMjEwMjJkYWE1ODhmNDdiZDk5N2ZhYTM5Yi4uZjc4ZWYxMzM1
MzhmOTAwYjM3OTBlNDRlOGZjODhkZmM5NDJkOGJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIEhUTUxJbWFnZUVsZW1lbnQ6OkhU
TUxJbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtCiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1faW1hZ2VM
b2FkZXIoV1RGOjptYWtlVW5pcXVlPEhUTUxJbWFnZUxvYWRlcj4oKnRoaXMpKQogICAgICwgbV9m
b3JtKG51bGxwdHIpCi0gICAgLCBtX2Zvcm1TZXRCeVBhcnNlcihtYWtlV2Vha1B0cihmb3JtKSkK
KyAgICAsIG1fZm9ybVNldEJ5UGFyc2VyKGZvcm0pCiAgICAgLCBtX2NvbXBvc2l0ZU9wZXJhdG9y
KENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyKQogICAgICwgbV9pbWFnZURldmljZVBpeGVs
UmF0aW8oMS4wZikKIHsKQEAgLTQwMiw3ICs0MDIsNyBAQCBOb2RlOjpJbnNlcnRlZEludG9BbmNl
c3RvclJlc3VsdCBIVE1MSW1hZ2VFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRp
bwogCiAgICAgaWYgKCFtX2Zvcm0pIHsKICAgICAgICAgaWYgKGF1dG8qIG5ld0Zvcm0gPSBIVE1M
Rm9ybUVsZW1lbnQ6OmZpbmRDbG9zZXN0Rm9ybUFuY2VzdG9yKCp0aGlzKSkgewotICAgICAgICAg
ICAgbV9mb3JtID0gbWFrZVdlYWtQdHIobmV3Rm9ybSk7CisgICAgICAgICAgICBtX2Zvcm0gPSBu
ZXdGb3JtOwogICAgICAgICAgICAgbmV3Rm9ybS0+cmVnaXN0ZXJJbWdFbGVtZW50KHRoaXMpOwog
ICAgICAgICB9CiAgICAgfQpAQCAtNDU1LDcgKzQ1NSw3IEBAIEhUTUxQaWN0dXJlRWxlbWVudCog
SFRNTEltYWdlRWxlbWVudDo6cGljdHVyZUVsZW1lbnQoKSBjb25zdAogICAgIAogdm9pZCBIVE1M
SW1hZ2VFbGVtZW50OjpzZXRQaWN0dXJlRWxlbWVudChIVE1MUGljdHVyZUVsZW1lbnQqIHBpY3R1
cmVFbGVtZW50KQogewotICAgIG1fcGljdHVyZUVsZW1lbnQgPSBtYWtlV2Vha1B0cihwaWN0dXJl
RWxlbWVudCk7CisgICAgbV9waWN0dXJlRWxlbWVudCA9IHBpY3R1cmVFbGVtZW50OwogfQogICAg
IAogdW5zaWduZWQgSFRNTEltYWdlRWxlbWVudDo6d2lkdGgoYm9vbCBpZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMpCkBAIC04NTcsNyArODU3LDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRT
b3VyY2VFbGVtZW50KEhUTUxTb3VyY2VFbGVtZW50KiBzb3VyY2VFbGVtZW50KQogewogICAgIGlm
IChtX3NvdXJjZUVsZW1lbnQgPT0gc291cmNlRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwotICAg
IG1fc291cmNlRWxlbWVudCA9IG1ha2VXZWFrUHRyKHNvdXJjZUVsZW1lbnQpOworICAgIG1fc291
cmNlRWxlbWVudCA9IHNvdXJjZUVsZW1lbnQ7CiAgICAgaW52YWxpZGF0ZUF0dHJpYnV0ZU1hcHBp
bmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXgg
ZGIxN2RlYzNhOTc1MzFiNjYyY2RhMmQxNjRiMGUwZTJiZGY4NTNjYS4uZmVkNDQzOGY0MWZiOTQy
ZTFmNTlmYzI2ZTgyZTVlY2I0NmIzODc3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCkBAIC03Mjc5LDcgKzcyNzksNyBAQCBSZWZQdHI8UGxhdGZvcm1NZWRpYVJl
c291cmNlTG9hZGVyPiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckNyZWF0ZVJlc291cmNl
TAogICAgIGF1dG8gZGVzdGluYXRpb24gPSBpc1ZpZGVvKCkgPyBGZXRjaE9wdGlvbnM6OkRlc3Rp
bmF0aW9uOjpWaWRlbyA6IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkF1ZGlvOwogICAgIGF1
dG8gbWVkaWFSZXNvdXJjZUxvYWRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZXNvdXJjZUxvYWRl
cihkb2N1bWVudCgpLCAqdGhpcywgY3Jvc3NPcmlnaW4oKSwgZGVzdGluYXRpb24pKTsKIAotICAg
IG1fbGFzdE1lZGlhUmVzb3VyY2VMb2FkZXJGb3JUZXN0aW5nID0gbWFrZVdlYWtQdHIobWVkaWFS
ZXNvdXJjZUxvYWRlci5nZXQoKSk7CisgICAgbV9sYXN0TWVkaWFSZXNvdXJjZUxvYWRlckZvclRl
c3RpbmcgPSBtZWRpYVJlc291cmNlTG9hZGVyOwogCiAgICAgcmV0dXJuIG1lZGlhUmVzb3VyY2VM
b2FkZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDFkZjY3
NmFmM2QxOTRhZWIxOWFlZTA0NjcxNzY2MTBiM2JhNWExZjUuLmRmMDM4MjJiYWUzYmQyMjBjNGQ2
MDYyYmExOTA3ZWVkNWJlZGRkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCkBAIC0xMTY4LDcgKzExNjgsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNsZWVwRGlzYWJsZXI+IG1fc2xlZXBEaXNhYmxlcjsKIAotICAgIFdlYWtQdHI8Y29uc3QgTWVk
aWFSZXNvdXJjZUxvYWRlcj4gbV9sYXN0TWVkaWFSZXNvdXJjZUxvYWRlckZvclRlc3Rpbmc7Cisg
ICAgV2Vha1B0cjxNZWRpYVJlc291cmNlTG9hZGVyPiBtX2xhc3RNZWRpYVJlc291cmNlTG9hZGVy
Rm9yVGVzdGluZzsKIAogICAgIHN0ZDo6b3B0aW9uYWw8RHluYW1pY1JhbmdlTW9kZT4gbV9vdmVy
cmlkZUR5bmFtaWNSYW5nZU1vZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGY1ZTdk
YjIxZTY5OGI2MDY1MjNhNmNmMDcxYmI2MWY2YzgyN2E3MWUuLjE5ZDgwYzQxYTFmYzZlMWEwYWJk
ZWQxM2UwNzgxNmMyNTRkNmVjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtNDAyLDcg
KzQwMiw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBJbnB1dFR5cGUoVHlw
ZSB0eXBlLCBIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogICAgICAgICA6IG1fdHlwZSh0eXBl
KQotICAgICAgICAsIG1fZWxlbWVudChtYWtlV2Vha1B0cihlbGVtZW50KSkgeyB9CisgICAgICAg
ICwgbV9lbGVtZW50KGVsZW1lbnQpIHsgfQogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQo
KSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KICAgICBDaHJvbWUqIGNocm9tZSgp
IGNvbnN0OwogICAgIERlY2ltYWwgcGFyc2VUb051bWJlck9yTmFOKGNvbnN0IFN0cmluZyYpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXgg
N2Y2ZDM5ZjNlY2UwY2ZmNzU3OTRiZWQ0YWMzNGZlZDMxNjQ3ZjUxNy4uNDIyNDRlOWI4YzFhZmZk
NmM1OGY4YTMxMTJkZjc2YTg1ODkwYjNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlh
RWxlbWVudFNlc3Npb24uY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgY2xhc3MgTWVkaWFTZXNzaW9u
T2JzZXJ2ZXIgOiBwdWJsaWMgTWVkaWFTZXNzaW9uOjpPYnNlcnZlciB7CiAKIHB1YmxpYzoKICAg
ICBNZWRpYVNlc3Npb25PYnNlcnZlcihNZWRpYUVsZW1lbnRTZXNzaW9uJiBzZXNzaW9uLCBjb25z
dCBSZWY8TWVkaWFTZXNzaW9uPiYgbWVkaWFTZXNzaW9uKQotICAgICAgICA6IG1fc2Vzc2lvbiht
YWtlV2Vha1B0cihzZXNzaW9uKSksIG1fbWVkaWFTZXNzaW9uKG1lZGlhU2Vzc2lvbikKKyAgICAg
ICAgOiBtX3Nlc3Npb24oc2Vzc2lvbiksIG1fbWVkaWFTZXNzaW9uKG1lZGlhU2Vzc2lvbikKICAg
ICB7CiAgICAgICAgIG1fbWVkaWFTZXNzaW9uLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCmluZGV4IGIxMDMxZGEwMGRmMDQx
YWU2YWEwM2QyZmY2MTIwNTJhNWZlYmFjOTkuLjRkMTY1OTY4NGQxYjYxN2M3NmRmODFhNGIwMGYw
NWI3YzdmNTBkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2Fu
dmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKQEAg
LTQyMyw3ICs0MjMsNyBAQCB2b2lkIE9mZnNjcmVlbkNhbnZhczo6c2V0UGxhY2Vob2xkZXJDYW52
YXMoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhcykKIHsKICAgICBBU1NFUlQoIW1fY29udGV4dCk7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX3BsYWNlaG9sZGVyRGF0YS0+Y2Fu
dmFzID0gbWFrZVdlYWtQdHIoY2FudmFzKTsKKyAgICBtX3BsYWNlaG9sZGVyRGF0YS0+Y2FudmFz
ID0gY2FudmFzOwogICAgIGF1dG8mIHBsYWNlaG9sZGVyQ29udGV4dCA9IGRvd25jYXN0PFBsYWNl
aG9sZGVyUmVuZGVyaW5nQ29udGV4dD4oKmNhbnZhcy5yZW5kZXJpbmdDb250ZXh0KCkpOwogICAg
IGF1dG8mIGltYWdlQnVmZmVyUGlwZSA9IHBsYWNlaG9sZGVyQ29udGV4dC5pbWFnZUJ1ZmZlclBp
cGUoKTsKICAgICBpZiAoaW1hZ2VCdWZmZXJQaXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9VUkxTZWFyY2hQYXJhbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFy
Y2hQYXJhbXMuY3BwCmluZGV4IGY1NGY0MWUxOWNmN2E3ZTRkNTU0MGM2NDY2NjJmOGVjNWZiZDNk
MzcuLjI0ZDZmMTNjMjJiZTc0YzM4MGIwZWZlODhkMGUzYWYwNzgzZjZkMTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1VSTFNlYXJjaFBhcmFtcy5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogVVJMU2VhcmNoUGFyYW1zOjpVUkxTZWFyY2hQYXJhbXMoY29uc3QgU3Ry
aW5nJiBpbml0LCBET01VUkwqIGFzc29jaWF0ZWRVUkwpCi0gICAgOiBtX2Fzc29jaWF0ZWRVUkwo
bWFrZVdlYWtQdHIoYXNzb2NpYXRlZFVSTCkpCisgICAgOiBtX2Fzc29jaWF0ZWRVUkwoYXNzb2Np
YXRlZFVSTCkKICAgICAsIG1fcGFpcnMoaW5pdC5zdGFydHNXaXRoKCc/JykgPyBXVEY6OlVSTFBh
cnNlcjo6cGFyc2VVUkxFbmNvZGVkRm9ybShTdHJpbmdWaWV3KGluaXQpLnN1YnN0cmluZygxKSkg
OiBXVEY6OlVSTFBhcnNlcjo6cGFyc2VVUkxFbmNvZGVkRm9ybShpbml0KSkKIHsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKaW5kZXggMTY1
ODYzOWI0ZWNjNTQ1NWJhZDdkNzNiMDNmMDEwMjZkYzRiMjUyYi4uMWEyNTAyZDcwZmYyNWU1YTQ3
NmNiMTExZDJhMWM3ZGQzOTRkY2UwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogSFRNTFNjcmlwdFJ1bm5lcjo6SFRN
TFNjcmlwdFJ1bm5lcihEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxTY3JpcHRSdW5uZXJIb3N0JiBo
b3N0KQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCisgICAgOiBtX2Rv
Y3VtZW50KGRvY3VtZW50KQogICAgICwgbV9ob3N0KGhvc3QpCiAgICAgLCBtX3NjcmlwdE5lc3Rp
bmdMZXZlbCgwKQogICAgICwgbV9oYXNTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKGZhbHNl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50
LmNwcAppbmRleCA5Y2I4ZTllOGUyNDkyOGM3ZmYxMjU4OWU3N2I1N2Y5MWRkMmNmZjhlLi4xMzc3
MTVjZjM2NzNmMjYyYWY1OGQyNGEzZDY1ZmNlZGJlMmE4NTdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAtMTkwLDcgKzE5
MCw3IEBAIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkVkaXRDb250cm9sT3duZXI6On5FZGl0Q29udHJv
bE93bmVyKCkgPSBkZWZhdWx0OwogCiBEYXRlVGltZUVkaXRFbGVtZW50OjpEYXRlVGltZUVkaXRF
bGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRWRpdENvbnRyb2xPd25lciYgZWRpdENvbnRyb2xP
d25lcikKICAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCi0gICAgLCBtX2Vk
aXRDb250cm9sT3duZXIobWFrZVdlYWtQdHIoZWRpdENvbnRyb2xPd25lcikpCisgICAgLCBtX2Vk
aXRDb250cm9sT3duZXIoZWRpdENvbnRyb2xPd25lcikKIHsKICAgICBtX3BsYWNlaG9sZGVyRGF0
ZS5zZXRUb0N1cnJlbnRMb2NhbFRpbWUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcAppbmRleCBjMzYzNzgyZjA0ZjVmZmIy
YzljYmU1NzlmMTM2N2U1ZDRkMTk0YmZkLi4yYzk1NmNiOWM0MmIyNTFlMmFjM2Y1MDBlM2NkMGM3
Y2RmZGYwYmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIERhdGVUaW1lRmllbGRFbGVtZW50
OjpGaWVsZE93bmVyOjp+RmllbGRPd25lcigpID0gZGVmYXVsdDsKIAogRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25l
ciYgZmllbGRPd25lcikKICAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCi0g
ICAgLCBtX2ZpZWxkT3duZXIobWFrZVdlYWtQdHIoZmllbGRPd25lcikpCisgICAgLCBtX2ZpZWxk
T3duZXIoZmllbGRPd25lcikKIHsKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFj
a3MoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKaW5kZXggMjY3
ZjZjOTU3YjhiNjUwOWRhODQwOTZjNGYxODAxZTc0YzFjMzUwNS4uYWZiNWYxZTZjZGVlYTM4MWQx
MWRhZGNjZjY1YWFmOWRmODc5ZDFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgUmVmPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQKIAogTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxNZWRpYUVsZW1lbnQmIGVs
ZW1lbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQotICAgICwgbV9t
ZWRpYUVsZW1lbnQobWFrZVdlYWtQdHIoJmVsZW1lbnQpKQorICAgICwgbV9tZWRpYUVsZW1lbnQo
ZWxlbWVudCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUu
Y3BwCmluZGV4IGM4MzY2ODVmZmYxNTFiOTk5ZjFmMTVkZjM0ZGU2Y2NmNDE2NmVlYzIuLjE5ZmM4
NWNkODk3YTdjZWFkYjQxZDUwMjVhNzlhYjkyODc3ZGYxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgUmVmPFRleHRUcmFj
a0N1ZUJveD4gVGV4dFRyYWNrQ3VlQm94OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBUZXh0
VHJhY2tDdWUmIGMKIAogVGV4dFRyYWNrQ3VlQm94OjpUZXh0VHJhY2tDdWVCb3goRG9jdW1lbnQm
IGRvY3VtZW50LCBUZXh0VHJhY2tDdWUmIGN1ZSkKICAgICA6IEhUTUxFbGVtZW50KEhUTUxOYW1l
czo6ZGl2VGFnLCBkb2N1bWVudCkKLSAgICAsIG1fY3VlKG1ha2VXZWFrUHRyKGN1ZSkpCisgICAg
LCBtX2N1ZShjdWUpCiB7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKaW5kZXggYmRjODhhYjUw
NDZlOTFjZmRjMTMxNDQxOTczOTA0NWQwNjgwZDI2MC4uYmFmYTQ5ZWU2MGQ4ODZjZjVkNzFlNmVk
YzNmY2U2MTMwYTZlMTRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
cmFja0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNw
cApAQCAtNzMsNyArNzMsNyBAQCBUcmFja0Jhc2U6OlRyYWNrQmFzZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBUeXBlIHR5cGUsIGNvbnN0IEF0b21TdHJpbgogCiB2b2lkIFRyYWNr
QmFzZTo6c2V0VHJhY2tMaXN0KFRyYWNrTGlzdEJhc2UmIHRyYWNrTGlzdCkKIHsKLSAgICBtX3Ry
YWNrTGlzdCA9IG1ha2VXZWFrUHRyKHRyYWNrTGlzdCk7CisgICAgbV90cmFja0xpc3QgPSB0cmFj
a0xpc3Q7CiB9CiAKIHZvaWQgVHJhY2tCYXNlOjpjbGVhclRyYWNrTGlzdCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oCmluZGV4IDlkM2U2ODFlN2RlNGE2MTk0YjY4
NjcwZjU0ZGY1NWU2MjJiYjllMmQuLjQ4MzNkMTNhMWVkZTUyOTY4ODhmM2EzMzU1ZDVhOTczMjI4
MzU1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oCkBAIC01
OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkKiBvcGFxdWVSb290KCk7CiAKICAgICB1c2lu
ZyBPcGFxdWVSb290T2JzZXJ2ZXIgPSBXVEY6Ok9ic2VydmVyPHZvaWQqKCk+OwotICAgIHZvaWQg
c2V0T3BhcXVlUm9vdE9ic2VydmVyKGNvbnN0IE9wYXF1ZVJvb3RPYnNlcnZlciYgb2JzZXJ2ZXIp
IHsgbV9vcGFxdWVSb290T2JzZXJ2ZXIgPSBtYWtlV2Vha1B0cihvYnNlcnZlcik7IH07CisgICAg
dm9pZCBzZXRPcGFxdWVSb290T2JzZXJ2ZXIoY29uc3QgT3BhcXVlUm9vdE9ic2VydmVyJiBvYnNl
cnZlcikgeyBtX29wYXF1ZVJvb3RPYnNlcnZlciA9IG9ic2VydmVyOyB9OwogCiAgICAgLy8gTmVl
ZHMgdG8gYmUgcHVibGljIHNvIHRyYWNrcyBjYW4gY2FsbCBpdAogICAgIHZvaWQgc2NoZWR1bGVD
aGFuZ2VFdmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAppbmRleCAxNjgwY2RiMzVlYjNjYzcx
ODVlMmI3YmJkYzU3MjA4NmU0MmNmNGZjLi5kYTZiMjg0MjU5YjY2OWEzNzA1YjhjMGUxNjJkMjlm
NTA1Yjk2Mzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB1c2luZyBFdmFsdWF0aW9uRXJyb3IgPSBJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25FcnJvcjsKIAogSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoUGFnZSYgZnJvbnRlbmRQ
YWdlKQotICAgIDogbV9mcm9udGVuZFBhZ2UobWFrZVdlYWtQdHIoZnJvbnRlbmRQYWdlKSkKKyAg
ICA6IG1fZnJvbnRlbmRQYWdlKGZyb250ZW5kUGFnZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCmluZGV4IGYyOWE3YWJlMTUzNTE4ODNh
YmE5YmJmMzBlOWUzNTE4NzhkNzU2NDIuLjdkMmE1ZmZiY2MzYThhODE0MWZmY2ZiYjJlNWFiZGI2
NThhODVjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3Zlcmxh
eS5jcHAKQEAgLTYwNiw3ICs2MDYsNyBAQCBFcnJvclN0cmluZ09yPHZvaWQ+IEluc3BlY3Rvck92
ZXJsYXk6OnNldEdyaWRPdmVybGF5Rm9yTm9kZShOb2RlJiBub2RlLCBjb25zdCBJbgogCiAgICAg
cmVtb3ZlR3JpZE92ZXJsYXlGb3JOb2RlKG5vZGUpOwogCi0gICAgbV9hY3RpdmVHcmlkT3Zlcmxh
eXMuYXBwZW5kKHsgbWFrZVdlYWtQdHIobm9kZSksIGdyaWRPdmVybGF5Q29uZmlnIH0pOworICAg
IG1fYWN0aXZlR3JpZE92ZXJsYXlzLmFwcGVuZCh7IG5vZGUsIGdyaWRPdmVybGF5Q29uZmlnIH0p
OwogCiAgICAgdXBkYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggOWU4ZGYyZWNiMDEwNDgzNjFiMjQ0
Zjg1MGY5YmNlYzk5YTUxOWUxOS4uYWI3MDA0OGZhNmNkMmFlNWIwYzEyMDBkY2RhNzViYTFlZDhi
NjVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKQEAgLTM4Miw3ICszODIsNyBAQCBQcm90b2NvbDo6RE9NOjpOb2Rl
SWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmJpbmQoTm9kZSYgbm9kZSkKIHsKICAgICByZXR1cm4gbV9u
b2RlVG9JZC5lbnN1cmUobm9kZSwgWyZdIHsKICAgICAgICAgYXV0byBpZCA9IG1fbGFzdE5vZGVJ
ZCsrOwotICAgICAgICBtX2lkVG9Ob2RlLnNldChpZCwgbWFrZVdlYWtQdHIobm9kZSkpOworICAg
ICAgICBtX2lkVG9Ob2RlLnNldChpZCwgbm9kZSk7CiAgICAgICAgIHJldHVybiBpZDsKICAgICB9
KS5pdGVyYXRvci0+dmFsdWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IDM4MDJhMzRm
MjkzZTY1ZDY2ZTc3ZWI0NDM4ZWM0MWI3Yzc2ODdjZjcuLjRhNmY2MzJiNmY5NzExNDJjNDAwYzRk
YjgwNTNiNGQwZjE5NDY4NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCkBAIC0zNTMsNyArMzUz
LDcgQEAgU3RyaW5nIEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpiaW5kUHNldWRvRWxlbWVudChQ
c2V1ZG9FbGVtZW50KiBwc2V1ZG9FbGVtZW50KQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKICAgICByZXR1cm4gbV9wc2V1ZG9FbGVtZW50VG9JZE1hcC5lbnN1cmUoKnBzZXVkb0VsZW1l
bnQsIFt0aGlzLCBwc2V1ZG9FbGVtZW50XSB7CiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IElk
ZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpOwotICAgICAgICBtX2lkVG9Qc2V1
ZG9FbGVtZW50LnNldChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cihwc2V1ZG9FbGVtZW50KSk7Cisg
ICAgICAgIG1faWRUb1BzZXVkb0VsZW1lbnQuc2V0KGlkZW50aWZpZXIsIHBzZXVkb0VsZW1lbnQp
OwogICAgICAgICByZXR1cm4gaWRlbnRpZmllcjsKICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5l
dHdvcmtBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ck5ldHdvcmtBZ2VudC5jcHAKaW5kZXggMzc0Njg0MzI1NzdmNjRlM2QxOGJjMzY2N2NhMjk4ZjQz
YTNiZjUwMy4uZTdhNGIyOTE2YjU2NmI4YzVlZDcxNjU5MGMyMDlmN2E5MzM4MjlmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0
d29ya0FnZW50LmNwcApAQCAtODQxLDcgKzg0MSw3IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09y
PHZvaWQ+IEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZW5hYmxlKCkKICAgICAgICAgICAgIGF1dG8g
aWRlbnRpZmllciA9IGNoYW5uZWwtPnByb2dyZXNzSWRlbnRpZmllcigpOwogICAgICAgICAgICAg
ZGlkQ3JlYXRlV2ViU29ja2V0KGlkZW50aWZpZXIsIHdlYlNvY2tldC0+dXJsKCkpOwogCi0gICAg
ICAgICAgICBhdXRvIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlID0gW2RvY3VtZW50ID0g
bWFrZVdlYWtQdHIoZG9jdW1lbnQpXShjb25zdCBVUkwmIHVybCkgLT4gU3RyaW5nIHsKKyAgICAg
ICAgICAgIGF1dG8gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUgPSBbZG9jdW1lbnQgPSBX
ZWFrUHRyIHsgZG9jdW1lbnQgfV0oY29uc3QgVVJMJiB1cmwpIC0+IFN0cmluZyB7CiAgICAgICAg
ICAgICAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQtPnBh
Z2UoKS0+Y29va2llSmFyKCkuY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoKmRvY3VtZW50
LCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDcwZDIyMzM4Yjc3YTIzODZhMTZlNzI1Y2YxZDZmYmQ4
MDk1YTU3M2MuLmM4OTQwNjc1ODVlYjFlM2RjNzkyNzZkOWQwZTRmNzU2MmM4NGQ4MDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VB
Z2VudC5jcHAKQEAgLTgzOCw3ICs4MzgsNyBAQCBTdHJpbmcgSW5zcGVjdG9yUGFnZUFnZW50Ojpm
cmFtZUlkKEZyYW1lKiBmcmFtZSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAg
cmV0dXJuIG1fZnJhbWVUb0lkZW50aWZpZXIuZW5zdXJlKGZyYW1lLCBbdGhpcywgZnJhbWVdIHsK
ICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gSWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVu
dGlmaWVyKCk7Ci0gICAgICAgIG1faWRlbnRpZmllclRvRnJhbWUuc2V0KGlkZW50aWZpZXIsIG1h
a2VXZWFrUHRyKGZyYW1lKSk7CisgICAgICAgIG1faWRlbnRpZmllclRvRnJhbWUuc2V0KGlkZW50
aWZpZXIsIGZyYW1lKTsKICAgICAgICAgcmV0dXJuIGlkZW50aWZpZXI7CiAgICAgfSkuaXRlcmF0
b3ItPnZhbHVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvcldvcmtlckFnZW50LmNwcAppbmRleCBjYzg2NjdjMTA0ZDM3YWUyMWQ4MDE1
NDQwZWNhYzAxYzFjNzRkYzU1Li5jMTMzNzRiMTYxZWViYmY2Nzg2MGEwMDA5YmVjMTRhMzVjNTMy
OTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
cldvcmtlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvcldvcmtlckFnZW50LmNwcApAQCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgSW5zcGVjdG9y
V29ya2VyQWdlbnQ6OmNvbm5lY3RUb1dvcmtlckluc3BlY3RvclByb3h5KFdvcmtlckluc3BlY3Rv
clByb3h5JiBwCiB7CiAgICAgcHJveHkuY29ubmVjdFRvV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
cigqdGhpcyk7CiAKLSAgICBtX2Nvbm5lY3RlZFByb3hpZXMuc2V0KHByb3h5LmlkZW50aWZpZXIo
KSwgbWFrZVdlYWtQdHIocHJveHkpKTsKKyAgICBtX2Nvbm5lY3RlZFByb3hpZXMuc2V0KHByb3h5
LmlkZW50aWZpZXIoKSwgcHJveHkpOwogCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPndvcmtl
ckNyZWF0ZWQocHJveHkuaWRlbnRpZmllcigpLCBwcm94eS51cmwoKS5zdHJpbmcoKSwgcHJveHku
bmFtZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcAppbmRleCBiZjQzMzE4YzE4YjVjM2Q2
MDRhNDBjYWFhYTZmODZkNDRhZWFhMmU5Li5kMWM1MzZlZTNmNzBhZjdhZDVmMDM0MjE4MTU2ZDNj
YTRiYTRmNmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL3RhYmxlL1RhYmxlR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdyaWQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIFRh
YmxlR3JpZDo6Q2VsbDo6Q2VsbChjb25zdCBDb250YWluZXJCb3gmIGNlbGxCb3gsIFNsb3RQb3Np
dGlvbiBwb3NpdGlvbiwgQ2VsbFNwCiB9CiAKIFRhYmxlR3JpZDo6U2xvdDo6U2xvdChDZWxsJiBj
ZWxsLCBib29sIGlzQ29sdW1uU3Bhbm5lZCwgYm9vbCBpc1Jvd1NwYW5uZWQpCi0gICAgOiBtX2Nl
bGwobWFrZVdlYWtQdHIoY2VsbCkpCisgICAgOiBtX2NlbGwoY2VsbCkKICAgICAsIG1faXNDb2x1
bW5TcGFubmVkKGlzQ29sdW1uU3Bhbm5lZCkKICAgICAsIG1faXNSb3dTcGFubmVkKGlzUm93U3Bh
bm5lZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xh
eW91dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3gu
Y3BwCmluZGV4IDZlYzVkY2IyNDY2Njg0NzU0NDY1NzVmZWE2MDgyZTU1NDYxNGM1YzEuLjIyZmVi
ZWQxNDEwOWY4M2Y1ZmIyM2FjZDgzOWY2NGNjOGZkZjRiYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcApAQCAtNTQzLDcgKzU0Myw3IEBAIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gQm94Ojpjb2x1bW5XaWR0aCgpIGNvbnN0CiB2b2lkIEJv
eDo6c2V0Q2FjaGVkR2VvbWV0cnlGb3JMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSYgbGF5b3V0U3Rh
dGUsIHN0ZDo6dW5pcXVlX3B0cjxCb3hHZW9tZXRyeT4gZ2VvbWV0cnkpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKCFtX2NhY2hlZExheW91dFN0YXRlKTsKLSAgICBtX2NhY2hlZExheW91dFN0YXRlID0g
bWFrZVdlYWtQdHIobGF5b3V0U3RhdGUpOworICAgIG1fY2FjaGVkTGF5b3V0U3RhdGUgPSBsYXlv
dXRTdGF0ZTsKICAgICBtX2NhY2hlZEdlb21ldHJ5Rm9yTGF5b3V0U3RhdGUgPSBXVEZNb3ZlKGdl
b21ldHJ5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5k
ZXggYmYxNGNlYTRjMDY4YmQ3MjQyZDU0YTk4MzAzYzE3YjFiZGZjMTMyMC4uNGI2ZWI1ODkxM2Yz
YmQwMTZiMjYyZDEyNzNmOTJjNWM2ZDQ5OTYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCkBAIC03OTIsNyArNzkyLDcgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6
dHJ5TG9hZGluZ1N1YnN0aXR1dGVEYXRhKCkKICAgICBpZiAoIW1fZGVmZXJNYWluUmVzb3VyY2VE
YXRhTG9hZCB8fCBmcmFtZUxvYWRlcigpLT5sb2Fkc1N5bmNocm9ub3VzbHkoKSkKICAgICAgICAg
aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGF1dG8g
bG9hZERhdGEgPSBbdGhpcywgd2Vha0RhdGFMb2FkVG9rZW4gPSBtYWtlV2Vha1B0cihtX2RhdGFM
b2FkVG9rZW4pXSB7CisgICAgICAgIGF1dG8gbG9hZERhdGEgPSBbdGhpcywgd2Vha0RhdGFMb2Fk
VG9rZW4gPSBXZWFrUHRyIHsgbV9kYXRhTG9hZFRva2VuIH1dIHsKICAgICAgICAgICAgIGlmICgh
d2Vha0RhdGFMb2FkVG9rZW4pCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
bV9kYXRhTG9hZFRva2VuLmNsZWFyKCk7CkBAIC0yNDIzLDcgKzI0MjMsNyBAQCBSZXNvdXJjZUVy
cm9yIERvY3VtZW50TG9hZGVyOjpjb250ZW50RmlsdGVyRGlkQmxvY2soQ29udGVudEZpbHRlclVu
YmxvY2tIYW5kbGVyCiB7CiAgICAgdW5ibG9ja0hhbmRsZXIuc2V0VW5yZWFjaGFibGVVUkwoZG9j
dW1lbnRVUkwoKSk7CiAgICAgaWYgKCF1bmJsb2NrUmVxdWVzdERlbmllZFNjcmlwdC5pc0VtcHR5
KCkgJiYgZnJhbWUoKSkgewotICAgICAgICB1bmJsb2NrSGFuZGxlci53cmFwV2l0aERlY2lzaW9u
SGFuZGxlcihbc2NyaXB0Q29udHJvbGxlciA9IG1ha2VXZWFrUHRyKGZyYW1lKCktPnNjcmlwdCgp
KSwgc2NyaXB0ID0gdW5ibG9ja1JlcXVlc3REZW5pZWRTY3JpcHQuaXNvbGF0ZWRDb3B5KCldKGJv
b2wgdW5ibG9ja2VkKSB7CisgICAgICAgIHVuYmxvY2tIYW5kbGVyLndyYXBXaXRoRGVjaXNpb25I
YW5kbGVyKFtzY3JpcHRDb250cm9sbGVyID0gV2Vha1B0ciB7IGZyYW1lKCktPnNjcmlwdCgpIH0s
IHNjcmlwdCA9IHVuYmxvY2tSZXF1ZXN0RGVuaWVkU2NyaXB0Lmlzb2xhdGVkQ29weSgpXShib29s
IHVuYmxvY2tlZCkgewogICAgICAgICAgICAgaWYgKCF1bmJsb2NrZWQgJiYgc2NyaXB0Q29udHJv
bGxlcikKICAgICAgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5leGVjdXRlU2NyaXB0SWdu
b3JpbmdFeGNlcHRpb24oc2NyaXB0KTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50V3JpdGVyLmNwcAppbmRleCA4OTA5NWZlM2RlNzMyODhlMjczMWMxMmFmM2QyNjE2
OGY3Y2MzNTMwLi4xOGU1ZDI3ZTZlYjM3YWIzM2MyNjMxYWQ2NGM1YjE1NGRjNzhiZWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKQEAgLTMxMyw3ICszMTMsNyBA
QCB2b2lkIERvY3VtZW50V3JpdGVyOjpzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIG5hbWUsIGJv
b2wgdXNlckNob3NlbikKIAogdm9pZCBEb2N1bWVudFdyaXRlcjo6c2V0RnJhbWUoRnJhbWUmIGZy
YW1lKQogewotICAgIG1fZnJhbWUgPSBtYWtlV2Vha1B0cihmcmFtZSk7CisgICAgbV9mcmFtZSA9
IGZyYW1lOwogfQogCiB2b2lkIERvY3VtZW50V3JpdGVyOjpzZXREb2N1bWVudFdhc0xvYWRlZEFz
UGFydE9mTmF2aWdhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRl
eCBmY2IyMjAyZjgyODEwYWYyYTRmOGQ5ZTQ1MWNiNTc0ZmEwYTdmZDQzLi5mODVhMThiYjg3YmU5
OGUwMTFiNjg2NTBkMjhiOWE1NGEyMTg5NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKQEAgLTIxNyw3ICsyMTcsNyBAQCBzdGF0aWMgYm9vbCBpc0RvY3VtZW50U2FuZGJv
eGVkKEZyYW1lJiBmcmFtZSwgU2FuZGJveEZsYWdzIG1hc2spCiBjbGFzcyBQYWdlTGV2ZWxGb3Ji
aWRTY29wZSB7CiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgUGFnZUxldmVsRm9yYmlkU2NvcGUo
UGFnZSogcGFnZSkKLSAgICAgICAgOiBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCisgICAgICAg
IDogbV9wYWdlKHBhZ2UpCiAgICAgewogICAgIH0KIApAQCAtMTA1OSw3ICsxMDU5LDcgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6c2V0T3BlbmVyKEZyYW1lKiBvcGVuZXIpCiAgICAgICAgIGlmIChhdXRv
KiBwYWdlID0gbV9mcmFtZS5wYWdlKCkpCiAgICAgICAgICAgICBwYWdlLT5zZXRPcGVuZWRCeURP
TVdpdGhPcGVuZXIodHJ1ZSk7CiAgICAgfQotICAgIG1fb3BlbmVyID0gbWFrZVdlYWtQdHIob3Bl
bmVyKTsKKyAgICBtX29wZW5lciA9IG9wZW5lcjsKIAogICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50
KCkpCiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+aW5pdFNlY3VyaXR5Q29udGV4dCgpOwpA
QCAtMTI3MCw3ICsxMjcwLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZEZyYW1lUmVxdWVzdChG
cmFtZUxvYWRSZXF1ZXN0JiYgcmVxdWVzdCwgRXZlbnQqIGV2ZW50LCBSZWYKICAgICBlbHNlCiAg
ICAgICAgIGxvYWRUeXBlID0gRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQ7CiAKLSAgICBhdXRvIGNv
bXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZEZyYW1lID0gUmVmIHsgbV9mcmFtZSB9
LCBmb3JtU3RhdGUgPSBtYWtlV2Vha1B0cihmb3JtU3RhdGUuZ2V0KCkpLCBmcmFtZU5hbWUgPSBy
ZXF1ZXN0LmZyYW1lTmFtZSgpXSB7CisgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlz
LCBwcm90ZWN0ZWRGcmFtZSA9IFJlZiB7IG1fZnJhbWUgfSwgZm9ybVN0YXRlID0gV2Vha1B0ciB7
IGZvcm1TdGF0ZSB9LCBmcmFtZU5hbWUgPSByZXF1ZXN0LmZyYW1lTmFtZSgpXSB7CiAgICAgICAg
IC8vIEZJWE1FOiBJdCdzIHBvc3NpYmxlIHRoaXMgdGFyZ2V0RnJhbWUgd2lsbCBub3QgYmUgdGhl
IHNhbWUgZnJhbWUgdGhhdCB3YXMgdGFyZ2V0ZWQgYnkgdGhlIGFjdHVhbAogICAgICAgICAvLyBs
b2FkIGlmIGZyYW1lIG5hbWVzIGhhdmUgY2hhbmdlZC4KICAgICAgICAgRnJhbWUqIHNvdXJjZUZy
YW1lID0gZm9ybVN0YXRlID8gZm9ybVN0YXRlLT5zb3VyY2VEb2N1bWVudCgpLmZyYW1lKCkgOiAm
bV9mcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oCmluZGV4IDFkNzFjZjM5N2FiYzY0YjIyMTIyZGExOGY3YTkyMDQ2YTk0ZDExNWIuLmZlODY1
ODcxY2VmMjFjY2QzMzVlNzc5ZTdmZGFkMGMzMmQ0NmFjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJs
aWM6CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0KEZy
YW1lKiBmcmFtZSkKLSAgICAgICAgOiBtX2ZyYW1lKG1ha2VXZWFrUHRyKGZyYW1lKSkKKyAgICAg
ICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5r
TG9hZGVyLmNwcAppbmRleCBmZGRiMDdiZWU1ZjAzNjIzOThlOGVjMTQxYjZiOTZmOWI3MzQ1YmFk
Li44ZmI5MTdiOTUxYzJmZGE0Yjk5Y2UxYmU3NWU2MWIxZDE0MGFiYjI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC0yMTcsNyArMjE3LDcgQEAgdm9pZCBMaW5rTG9hZGVy
OjpwcmVjb25uZWN0SWZOZWVkZWQoY29uc3QgTGlua0xvYWRQYXJhbWV0ZXJzJiBwYXJhbXMsIERv
Y3VtZW50JgogICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHBhcmFtcy5jcm9zc09yaWdp
biwgImFub255bW91cyIpICYmIGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lT3JpZ2lu
RG9tYWluKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoaHJlZikpKQogICAgICAgICBzdG9yYWdlQ3Jl
ZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAgICAg
QVNTRVJUKGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpLm5ldHdvcmtpbmdDb250ZXh0KCkpOwot
ICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5wcmVjb25uZWN0VG8o
ZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCksIGhyZWYsIHN0b3JhZ2VDcmVkZW50aWFsc1BvbGlj
eSwgW3dlYWtEb2N1bWVudCA9IG1ha2VXZWFrUHRyKGRvY3VtZW50KSwgaHJlZl0oUmVzb3VyY2VF
cnJvciBlcnJvcikgeworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgp
LT5wcmVjb25uZWN0VG8oZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCksIGhyZWYsIHN0b3JhZ2VD
cmVkZW50aWFsc1BvbGljeSwgW3dlYWtEb2N1bWVudCA9IFdlYWtQdHIgeyBkb2N1bWVudCB9LCBo
cmVmXShSZXNvdXJjZUVycm9yIGVycm9yKSB7CiAgICAgICAgIGlmICghd2Vha0RvY3VtZW50KQog
ICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtQcmVsb2FkUmVzb3VyY2VDbGllbnRzLmNwcAppbmRleCBhYjkzNzczNjQ5NWIyOGJhNzQyOGYx
YmMzZjQxN2I4MDE1MzZjYzM2Li5lZDg1ODI3MTkwNjdlMGQxYTdiY2JlY2JkNTEwMjRiYzU5OTgy
ZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua1ByZWxvYWRSZXNvdXJj
ZUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rUHJlbG9hZFJlc291
cmNlQ2xpZW50cy5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBM
aW5rUHJlbG9hZFJlc291cmNlQ2xpZW50OjpMaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50KExpbmtM
b2FkZXImIGxvYWRlciwgQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKQogewotICAgIG1fbG9hZGVy
ID0gbWFrZVdlYWtQdHIobG9hZGVyKTsKKyAgICBtX2xvYWRlciA9IGxvYWRlcjsKICAgICBtX3Jl
c291cmNlID0gJnJlc291cmNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFS
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMTQ5YmE4YTMyNjhiOWI2MGFkYTlmZWNjNGQ2NjNhMGY1
NmE0MTY4Yi4uNWQxMjBlMjQ3YWMyNjI3MTE2MWRlMGRjNTIzMDI0ZGM4ZGUzNGQ2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcApAQCAtNTEsOCAr
NTEsOCBAQCB2b2lkIE1lZGlhUmVzb3VyY2VMb2FkZXI6OnJlY29yZFJlc3BvbnNlc0ZvclRlc3Rp
bmcoKQogCiBNZWRpYVJlc291cmNlTG9hZGVyOjpNZWRpYVJlc291cmNlTG9hZGVyKERvY3VtZW50
JiBkb2N1bWVudCwgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgU3RyaW5nJiBjcm9zc09yaWdpbk1v
ZGUsIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiAgICAgOiBDb250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCi0gICAgLCBtX2RvY3VtZW50KG1ha2VXZWFr
UHRyKGRvY3VtZW50KSkKLSAgICAsIG1fZWxlbWVudChtYWtlV2Vha1B0cihlbGVtZW50KSkKKyAg
ICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAs
IG1fY3Jvc3NPcmlnaW5Nb2RlKGNyb3NzT3JpZ2luTW9kZSkKICAgICAsIG1fZGVzdGluYXRpb24o
ZGVzdGluYXRpb24pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyLmNwcAppbmRleCA0MzVmOTA0ZGU3Njk0NTY4OWQ1ZGQ1Y2YxNDRh
NmY2ZWE1M2NlZjlmLi42MzM3NTU5NjMyMDAxNDYzODI4OWUyODI2MDRjNTViMGFmNDQ1MzEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlci5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6Ok5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKEZyYW1lJiBmcmFtZSwgTmV0c2NhcGVQbHUKICAgICAg
ICAgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjaywKICAgICAg
ICAgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLAogICAgICAgICBDYWNo
aW5nUG9saWN5OjpBbGxvd0NhY2hpbmcpKQotICAgICwgbV9jbGllbnQobWFrZVdlYWtQdHIoY2xp
ZW50KSkKKyAgICAsIG1fY2xpZW50KGNsaWVudCkKIHsKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRF
TlNJT05TKQogICAgIG1fcmVzb3VyY2VUeXBlID0geyBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3Vy
Y2VUeXBlOjpPdGhlciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGlj
eUNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCmlu
ZGV4IDg3ZTI2NDA5YmQzOTlkNTQzNWE2NjhkYzY4NjdlYWJlN2NmNWQ2MjIuLmQwODA1Nzk1YWYy
MWQzOWZjNjg1OGQ0YWMwMTY4NzQ1ZjAxMWZlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5jcHAKQEAgLTE3Myw3ICsxNzMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpQb2xp
Y3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dAogICAgIC8vIEFsd2F5cyBhbGxvdyBRdWlja0xvb2stZ2VuZXJhdGVkIFVSTHMgYmFzZWQgb24g
dGhlIHByb3RvY29sIHNjaGVtZS4KICAgICBpZiAoIXJlcXVlc3QuaXNOdWxsKCkgJiYgaXNRdWlj
a0xvb2tQcmV2aWV3VVJMKHJlcXVlc3QudXJsKCkpKSB7CiAgICAgICAgIFBPTElDWUNIRUNLRVJf
UkVMRUFTRV9MT0coImNoZWNrTmF2aWdhdGlvblBvbGljeTogY29udGludWluZyBiZWNhdXNlIHF1
aWNrbG9vay1nZW5lcmF0ZWQgVVJMIik7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbihXVEZNb3Zl
KHJlcXVlc3QpLCBtYWtlV2Vha1B0cihmb3JtU3RhdGUuZ2V0KCkpLCBOYXZpZ2F0aW9uUG9saWN5
RGVjaXNpb246OkNvbnRpbnVlTG9hZCk7CisgICAgICAgIHJldHVybiBmdW5jdGlvbihXVEZNb3Zl
KHJlcXVlc3QpLCBmb3JtU3RhdGUsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6Q29udGludWVM
b2FkKTsKICAgICB9CiAjZW5kaWYKIApAQCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OlBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0CiAgICAgICAgICAgICAgICAgUE9MSUNZQ0hFQ0tFUl9SRUxFQVNFX0xPRygiY2hl
Y2tOYXZpZ2F0aW9uUG9saWN5OiBjb250aW51aW5nIGJlY2F1c2UgdGhpcyBpcyBhbiBpbml0aWFs
IGVtcHR5IGRvY3VtZW50Iik7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgUE9M
SUNZQ0hFQ0tFUl9SRUxFQVNFX0xPRygiY2hlY2tOYXZpZ2F0aW9uUG9saWN5OiBjb250aW51aW5n
IGJlY2F1c2UgdGhpcyBwb2xpY3lBY3Rpb24gZnJvbSBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24gaXMgVXNlIik7Ci0gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oV1RG
TW92ZShyZXF1ZXN0KSwgbWFrZVdlYWtQdHIoZm9ybVN0YXRlLmdldCgpKSwgTmF2aWdhdGlvblBv
bGljeURlY2lzaW9uOjpDb250aW51ZUxvYWQpOworICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9u
KFdURk1vdmUocmVxdWVzdCksIGZvcm1TdGF0ZSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uOjpD
b250aW51ZUxvYWQpOwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIH07CkBAIC0yNzIsNyArMjcyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tl
cjo6Y2hlY2tOZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbiYmIG5hdmlnYXQKICAgICAg
ICAgICAgIGZ1bmN0aW9uKHsgfSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNob3VsZENvbnRpbnVlUG9s
aWN5Q2hlY2s6Ok5vKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBQb2xpY3lB
Y3Rpb246OlVzZToKLSAgICAgICAgICAgIGZ1bmN0aW9uKHJlcXVlc3QsIG1ha2VXZWFrUHRyKGZv
cm1TdGF0ZS5nZXQoKSksIGZyYW1lTmFtZSwgbmF2aWdhdGlvbkFjdGlvbiwgU2hvdWxkQ29udGlu
dWVQb2xpY3lDaGVjazo6WWVzKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uKHJlcXVlc3QsIGZvcm1T
dGF0ZSwgZnJhbWVOYW1lLCBuYXZpZ2F0aW9uQWN0aW9uLCBTaG91bGRDb250aW51ZVBvbGljeUNo
ZWNrOjpZZXMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZy
YW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAK
aW5kZXggOTk3YTMzZGZmMTIyYzVlYjllNGE4OGMzMzMxODNkZDMzNWE0OTg0NC4uMTMwMzAyMzNi
YzMwZjY2MGZlNzQ2NzBhMjkxNmJmODFhNzZmYjQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0zNzIsNyArMzcyLDcgQEAgYm9vbCBGcmFtZUxvYWRlcjo6
U3ViZnJhbWVMb2FkZXI6OmxvYWRQbHVnaW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgcGx1Z2lu
RWxlbWUKICAgICAgICAgbG9hZE1hbnVhbGx5ID0gZmFsc2U7CiAjZW5kaWYKIAotICAgIGF1dG8g
d2Vha1JlbmRlcmVyID0gbWFrZVdlYWtQdHIoKnJlbmRlcmVyKTsKKyAgICBXZWFrUHRyIHdlYWtS
ZW5kZXJlciB7ICpyZW5kZXJlciB9OwogCiAgICAgYXV0byB3aWRnZXQgPSBtX2ZyYW1lLmxvYWRl
cigpLmNsaWVudCgpLmNyZWF0ZVBsdWdpbihjb250ZW50U2l6ZSwgcGx1Z2luRWxlbWVudCwgdXJs
LCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcywgbWltZVR5cGUsIGxvYWRNYW51YWxseSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNw
cAppbmRleCBkZmI0ZTY5ODQyZjBkZGYzY2YzZDI1MzlhOWQwNGExNDdkMmUzNTJmLi45NmNiMDVl
MzhlNDAwNWMzOTg5NDdiNTU5OTUzZTMzN2I4ZGQ2NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwCkBAIC01NCw3ICs1NCw3
IEBAIEFwcGxpY2F0aW9uQ2FjaGU6On5BcHBsaWNhdGlvbkNhY2hlKCkKIHZvaWQgQXBwbGljYXRp
b25DYWNoZTo6c2V0R3JvdXAoQXBwbGljYXRpb25DYWNoZUdyb3VwKiBncm91cCkKIHsKICAgICBB
U1NFUlQoIW1fZ3JvdXAgfHwgZ3JvdXAgPT0gbV9ncm91cCk7Ci0gICAgbV9ncm91cCA9IG1ha2VX
ZWFrUHRyKGdyb3VwKTsKKyAgICBtX2dyb3VwID0gZ3JvdXA7CiB9CiAKIGJvb2wgQXBwbGljYXRp
b25DYWNoZTo6aXNDb21wbGV0ZSgpCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgQXBwbGljYXRpb25D
YWNoZTo6c2V0TWFuaWZlc3RSZXNvdXJjZShSZWY8QXBwbGljYXRpb25DYWNoZVJlc291cmNlPiYm
IG1hbmlmCiAgICAgQVNTRVJUKCFtX21hbmlmZXN0KTsKICAgICBBU1NFUlQobWFuaWZlc3QtPnR5
cGUoKSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFuaWZlc3QpOwogCi0gICAgbV9tYW5p
ZmVzdCA9IG1ha2VXZWFrUHRyKG1hbmlmZXN0LmdldCgpKTsKKyAgICBtX21hbmlmZXN0ID0gbWFu
aWZlc3Q7CiAKICAgICBhZGRSZXNvdXJjZShXVEZNb3ZlKG1hbmlmZXN0KSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3Vw
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3Jv
dXAuY3BwCmluZGV4IDRiYzJiMDkyNzVmMTM4MjAzNjlhOTRiZTA4ZmZjYjhkMTJmYjhiOTguLjg5
ZjNiMGYxZGMzOWQ0MGE1NjM4NzhhZTU1Zjc2YzY3MGE3MTUwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3Bw
CkBAIC00MTcsNyArNDE3LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnVwZGF0ZShG
cmFtZSYgZnJhbWUsIEFwcGxpY2F0aW9uQ2FjaGVVcGRhdGVPcHRpb24gdXAKICAgICB9CiAKICAg
ICBBU1NFUlQoIW1fZnJhbWUpOwotICAgIG1fZnJhbWUgPSBtYWtlV2Vha1B0cihmcmFtZSk7Cisg
ICAgbV9mcmFtZSA9IGZyYW1lOwogCiAgICAgc2V0VXBkYXRlU3RhdHVzKENoZWNraW5nKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlSG9zdC5jcHAKaW5kZXggMjNiMTU0MmY5NWFiYzM1MTUxYjYwZmVkMDdhNzk0MDk5MGMzZDgx
MS4uNjAzMjgxODg4Mzc1ZjQ0YTYyNGIzZTNiM2FhZmUwNmEzNjg5MmVlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3Qu
Y3BwCkBAIC0zMDUsNyArMzA1LDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Y2FuQ2Fj
aGVJbkJhY2tGb3J3YXJkQ2FjaGUoKQogdm9pZCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6c2V0RE9N
QXBwbGljYXRpb25DYWNoZShET01BcHBsaWNhdGlvbkNhY2hlKiBkb21BcHBsaWNhdGlvbkNhY2hl
KQogewogICAgIEFTU0VSVCghbV9kb21BcHBsaWNhdGlvbkNhY2hlIHx8ICFkb21BcHBsaWNhdGlv
bkNhY2hlKTsKLSAgICBtX2RvbUFwcGxpY2F0aW9uQ2FjaGUgPSBtYWtlV2Vha1B0cihkb21BcHBs
aWNhdGlvbkNhY2hlKTsKKyAgICBtX2RvbUFwcGxpY2F0aW9uQ2FjaGUgPSBkb21BcHBsaWNhdGlv
bkNhY2hlOwogfQogCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0Ojpub3RpZnlET01BcHBsaWNh
dGlvbkNhY2hlKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgaW50IHRvdGFsLCBpbnQgZG9u
ZSkKQEAgLTM5Nyw3ICszOTcsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpkaXNwYXRj
aERPTUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgaW50IHRvdAogdm9pZCBBcHBs
aWNhdGlvbkNhY2hlSG9zdDo6c2V0Q2FuZGlkYXRlQXBwbGljYXRpb25DYWNoZUdyb3VwKEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cCogZ3JvdXApCiB7CiAgICAgQVNTRVJUKCFtX2FwcGxpY2F0aW9uQ2Fj
aGUpOwotICAgIG1fY2FuZGlkYXRlQXBwbGljYXRpb25DYWNoZUdyb3VwID0gbWFrZVdlYWtQdHIo
Z3JvdXApOworICAgIG1fY2FuZGlkYXRlQXBwbGljYXRpb25DYWNoZUdyb3VwID0gZ3JvdXA7CiB9
CiAgICAgCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpzZXRBcHBsaWNhdGlvbkNhY2hlKFJl
ZlB0cjxBcHBsaWNhdGlvbkNhY2hlPiYmIGFwcGxpY2F0aW9uQ2FjaGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRleCA5MzE4NzEwYjA3MTZkYzQxOTVk
NjkwZjQ2MjBmNmJmMDNlOTE1NTU5Li5iMTU5ZjI5ZWU5MGZlM2RlMDE5YzExNDliZGE2OTRlMGU2
ZjZiNTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAK
QEAgLTk4LDcgKzk4LDcgQEAgQ2FjaGVkSW1hZ2U6On5DYWNoZWRJbWFnZSgpCiAKIHZvaWQgQ2Fj
aGVkSW1hZ2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGxvYWRlcikKIHsKLSAgICBtX3Nr
aXBwaW5nUmV2YWxpZGF0aW9uRG9jdW1lbnQgPSBtYWtlV2Vha1B0cihsb2FkZXIuZG9jdW1lbnQo
KSk7CisgICAgbV9za2lwcGluZ1JldmFsaWRhdGlvbkRvY3VtZW50ID0gbG9hZGVyLmRvY3VtZW50
KCk7CiAgICAgaWYgKGxvYWRlci5zaG91bGRQZXJmb3JtSW1hZ2VMb2FkKHVybCgpKSkKICAgICAg
ICAgQ2FjaGVkUmVzb3VyY2U6OmxvYWQobG9hZGVyKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4IDEzYzJh
YTE3NTZmNDhlZmI0YWJjMWU2YzljMWJiMGRhNzE4YmM0NjcuLmQzMzE1MzQwZWI0OTI0MzA2MGRm
MjdhMjRlYjNhZDE3OGJhOTFkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCkBAIC0xMzcsNyArMTM3LDcgQEAgcHVibGljOgog
ICAgIAogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OyAvLyBDYW4gYmUgbnVsbAogICAgIERvY3Vt
ZW50KiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7IH0gLy8gQ2Fu
IGJlIG51bGwKLSAgICB2b2lkIHNldERvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCkgeyBtX2Rv
Y3VtZW50ID0gbWFrZVdlYWtQdHIoZG9jdW1lbnQpOyB9CisgICAgdm9pZCBzZXREb2N1bWVudChE
b2N1bWVudCogZG9jdW1lbnQpIHsgbV9kb2N1bWVudCA9IGRvY3VtZW50OyB9CiAgICAgdm9pZCBj
bGVhckRvY3VtZW50TG9hZGVyKCkgeyBtX2RvY3VtZW50TG9hZGVyID0gbnVsbHB0cjsgfQogCiAg
ICAgdm9pZCBsb2FkRG9uZShMb2FkQ29tcGxldGlvblR5cGUsIGJvb2wgc2hvdWxkUGVyZm9ybVBv
c3RMb2FkQWN0aW9ucyA9IHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2lvcy9MZWdhY3lQcmV2aWV3TG9hZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9M
ZWdhY3lQcmV2aWV3TG9hZGVyLm1tCmluZGV4IGI1YWY3N2IzYTliNmUwOTFmOWQ4Njg3YTczZTFl
ZGJiNzZlOWUzODkuLmQxOGIyNTJlOTc1NmM4Y2UwYzk1YjYzZTc4ZGQwMDk3ZWYyYTU3MzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pb3MvTGVnYWN5UHJldmlld0xvYWRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL0xlZ2FjeVByZXZpZXdMb2FkZXIubW0K
QEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIExlZ2FjeVByZXZpZXdMb2FkZXI6OnByZXZpZXdDb252
ZXJ0ZXJEaWRTdGFydENvbnZlcnRpbmcoUHJldmlld0NvbnZlcnRlciYgYwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgcmVzb3VyY2VMb2FkZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNw
b25zZSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoc3RhdGljX2Nhc3Q8UHJldmlld0Nv
bnZlcnRlckNsaWVudCY+KCp0aGlzKSksIGNvbnZlcnRlciA9IFJlZiB7IGNvbnZlcnRlciB9XSB7
CisgICAgcmVzb3VyY2VMb2FkZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSwgW3RoaXMs
IHdlYWtUaGlzID0gV2Vha1B0ciB7IHN0YXRpY19jYXN0PFByZXZpZXdDb252ZXJ0ZXJDbGllbnQm
PigqdGhpcykgfSwgY29udmVydGVyID0gUmVmIHsgY29udmVydGVyIH1dIHsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjM2LDcgKzIzNiw3IEBAIExl
Z2FjeVByZXZpZXdMb2FkZXI6OkxlZ2FjeVByZXZpZXdMb2FkZXIoUmVzb3VyY2VMb2FkZXImIGxv
YWRlciwgY29uc3QgUmVzb3VyY2VSCiAgICAgOiBtX2NvbnZlcnRlciB7IFByZXZpZXdDb252ZXJ0
ZXI6OmNyZWF0ZShyZXNwb25zZSwgKnRoaXMpIH0KICAgICAsIG1fY2xpZW50IHsgbWFrZUNsaWVu
dChsb2FkZXIsIG1fY29udmVydGVyLT5wcmV2aWV3RmlsZU5hbWUoKSwgbV9jb252ZXJ0ZXItPnBy
ZXZpZXdVVEkoKSkgfQogICAgICwgbV9vcmlnaW5hbERhdGEgeyBTaGFyZWRCdWZmZXI6OmNyZWF0
ZSgpIH0KLSAgICAsIG1fcmVzb3VyY2VMb2FkZXIgeyBtYWtlV2Vha1B0cihsb2FkZXIpIH0KKyAg
ICAsIG1fcmVzb3VyY2VMb2FkZXIgeyBsb2FkZXIgfQogICAgICwgbV9zaG91bGREZWNpZGVQb2xp
Y3lCZWZvcmVMb2FkaW5nIHsgbG9hZGVyLmZyYW1lKCktPnNldHRpbmdzKCkuc2hvdWxkRGVjaWRl
UG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKSB9CiB7CiAgICAgQVNTRVJUKFBy
ZXZpZXdDb252ZXJ0ZXI6OnN1cHBvcnRzTUlNRVR5cGUocmVzcG9uc2UubWltZVR5cGUoKSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uY3BwCmluZGV4IGNjNDAzYWJj
ODI4MjA1YjM1MjllMzUyYWRlYjQ2Y2IyYmYzZDI3NTEuLjQ2NzU5MTMzYjI0MjYzZGEyYTBlMmYz
ZjVhNzhhOGMxMGVlYzEyZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93RXh0ZW5zaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVu
c2lvbi5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRE9NV2lu
ZG93RXh0ZW5zaW9uOjpET01XaW5kb3dFeHRlbnNpb24oRE9NV2luZG93KiB3aW5kb3csIERPTVdy
YXBwZXJXb3JsZCYgd29ybGQpCi0gICAgOiBtX3dpbmRvdyhtYWtlV2Vha1B0cih3aW5kb3cpKQor
ICAgIDogbV93aW5kb3cod2luZG93KQogICAgICwgbV93b3JsZCh3b3JsZCkKICAgICAsIG1fd2Fz
RGV0YWNoZWQoZmFsc2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvd1Byb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHku
Y3BwCmluZGV4IDdiYjYxYzIzY2QyNzMzNmVkNTc2MDZhOTU3MmY1NTI2NmRjN2RjNmUuLmJiMjZl
MGRmOTYxMjExZjhkNjA2ZjFkYzcwZTU1ZTIwNzAyOGNiMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93UHJvcGVydHkuY3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIERPTVdpbmRvd1Byb3BlcnR5OjpET01XaW5kb3dQcm9wZXJ0eShET01XaW5kb3cq
IHdpbmRvdykKLSAgICA6IG1fd2luZG93KG1ha2VXZWFrUHRyKHdpbmRvdykpCisgICAgOiBtX3dp
bmRvdyh3aW5kb3cpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRl
eCBlMDA1Y2VkZmZjZGVjMWRhZDkxYWZmZTg2ZWVhYjIyZDM4MzVkOTkwLi5kNWY3OTMyMGFjZjAx
ODE5NTViOTRkMWZjY2M4ODVkYjZlOWM3ZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCkBAIC0yODkxLDcgKzI4OTEsNyBAQCBzdGF0aWMgV2Vha1B0cjxXaWRnZXQ+IHdpZGdl
dEZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKICAgICBpZiAoIWlzPFJlbmRlcldp
ZGdldD4odGFyZ2V0KSB8fCAhZG93bmNhc3Q8UmVuZGVyV2lkZ2V0PigqdGFyZ2V0KS53aWRnZXQo
KSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBtYWtlV2Vha1B0cigqZG93bmNh
c3Q8UmVuZGVyV2lkZ2V0PigqdGFyZ2V0KS53aWRnZXQoKSk7CisgICAgcmV0dXJuICpkb3duY2Fz
dDxSZW5kZXJXaWRnZXQ+KCp0YXJnZXQpLndpZGdldCgpOwogfQogCiBib29sIEV2ZW50SGFuZGxl
cjo6Y29tcGxldGVXaWRnZXRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZl
bnQsIGNvbnN0IFdlYWtQdHI8V2lkZ2V0PiYgd2lkZ2V0LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFi
bGVBcmVhPiYgc2Nyb2xsYWJsZUFyZWEpCkBAIC00NDMzLDcgKzQ0MzMsNyBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6dXBkYXRlTGFzdFNjcm9sbGJhclVuZGVyTW91c2UoU2Nyb2xsYmFyKiBzY3JvbGxi
YXIsIFNldE9yQ2xlYQogICAgICAgICAvLyBTZW5kIG1vdXNlIGVudGVyZWQgaWYgd2UncmUgc2V0
dGluZyBhIG5ldyBzY3JvbGxiYXIuCiAgICAgICAgIGlmIChzY3JvbGxiYXIgJiYgc2V0T3JDbGVh
ciA9PSBTZXRPckNsZWFyTGFzdFNjcm9sbGJhcjo6U2V0KSB7CiAgICAgICAgICAgICBzY3JvbGxi
YXItPm1vdXNlRW50ZXJlZCgpOwotICAgICAgICAgICAgbV9sYXN0U2Nyb2xsYmFyVW5kZXJNb3Vz
ZSA9IG1ha2VXZWFrUHRyKCpzY3JvbGxiYXIpOworICAgICAgICAgICAgbV9sYXN0U2Nyb2xsYmFy
VW5kZXJNb3VzZSA9ICpzY3JvbGxiYXI7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9s
YXN0U2Nyb2xsYmFyVW5kZXJNb3VzZSA9IG51bGxwdHI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cAppbmRleCA4YzQzNzdjYjk1NGEwYjFhMDg5ZTUyZWZhZDhhNDFkOTEwNThhOGY3Li45NjA4Mjc1
ZDRhNDE0NGZlZDg2MzcyMjc3MDI5MGFkNTJiMThjNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApA
QCAtMTYwLDEyICsxNjAsMTIgQEAgc3RhdGljIGlubGluZSBmbG9hdCBwYXJlbnRUZXh0Wm9vbUZh
Y3RvcihGcmFtZSogZnJhbWUpCiAKIEZyYW1lOjpGcmFtZShQYWdlJiBwYWdlLCBIVE1MRnJhbWVP
d25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYm
IGZyYW1lTG9hZGVyQ2xpZW50KQogICAgIDogbV9tYWluRnJhbWUob3duZXJFbGVtZW50ID8gcGFn
ZS5tYWluRnJhbWUoKSA6ICp0aGlzKQotICAgICwgbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQor
ICAgICwgbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3NldHRpbmdzKCZwYWdlLnNldHRpbmdzKCkpCiAg
ICAgLCBtX3RyZWVOb2RlKCp0aGlzLCBwYXJlbnRGcm9tT3duZXJFbGVtZW50KG93bmVyRWxlbWVu
dCkpCiAgICAgLCBtX2xvYWRlcihtYWtlVW5pcXVlUmVmPEZyYW1lTG9hZGVyPigqdGhpcywgV1RG
TW92ZShmcmFtZUxvYWRlckNsaWVudCkpKQogICAgICwgbV9uYXZpZ2F0aW9uU2NoZWR1bGVyKG1h
a2VVbmlxdWVSZWY8TmF2aWdhdGlvblNjaGVkdWxlcj4oKnRoaXMpKQotICAgICwgbV9vd25lckVs
ZW1lbnQobWFrZVdlYWtQdHIob3duZXJFbGVtZW50KSkKKyAgICAsIG1fb3duZXJFbGVtZW50KG93
bmVyRWxlbWVudCkKICAgICAsIG1fc2NyaXB0KG1ha2VVbmlxdWVSZWY8U2NyaXB0Q29udHJvbGxl
cj4oKnRoaXMpKQogICAgICwgbV9wYWdlWm9vbUZhY3RvcihwYXJlbnRQYWdlWm9vbUZhY3Rvcih0
aGlzKSkKICAgICAsIG1fdGV4dFpvb21GYWN0b3IocGFyZW50VGV4dFpvb21GYWN0b3IodGhpcykp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAK
aW5kZXggOGYzZmUwMDQ4YjE1NmZmMTZhMzFjNjZmMzczOGRmYzBjZGQzNzY4NC4uMzMxYTMwYmRl
N2YzNzZlZmM3ZjdmNmU2YWVmYTJmN2ZkM2NmMjk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcApAQCAtNTIsNyArNTIsNyBAQCB2b2lk
IEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcjo6b2JzZXJ2ZUZyYW1lKEZyYW1lKiBmcmFtZSkKICAg
ICBpZiAobV9mcmFtZSkKICAgICAgICAgbV9mcmFtZS0+cmVtb3ZlRGVzdHJ1Y3Rpb25PYnNlcnZl
cigqdGhpcyk7CiAKLSAgICBtX2ZyYW1lID0gbWFrZVdlYWtQdHIoZnJhbWUpOworICAgIG1fZnJh
bWUgPSBmcmFtZTsKIAogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICBtX2ZyYW1lLT5hZGREZXN0
cnVjdGlvbk9ic2VydmVyKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAppbmRleCA1
YWM4Yjg0MTUzYTU1MWFkMzU5ZmY5NTJmMDBiNWQ4Yjg0MjAyZmZiLi5jMmM3ZDBkMTJlZDZjYWQ1
NTM3ZTU2NjU4ZmE5YTcwYjhiZmUxOWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCkBA
IC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRnJhbWVUcmVlOjpGcmFtZVRy
ZWUoRnJhbWUmIHRoaXNGcmFtZSwgRnJhbWUqIHBhcmVudEZyYW1lKQogICAgIDogbV90aGlzRnJh
bWUodGhpc0ZyYW1lKQotICAgICwgbV9wYXJlbnQobWFrZVdlYWtQdHIocGFyZW50RnJhbWUpKQor
ICAgICwgbV9wYXJlbnQocGFyZW50RnJhbWUpCiB7CiB9CiAKQEAgLTczLDkgKzczLDkgQEAgRnJh
bWUqIEZyYW1lVHJlZTo6cGFyZW50KCkgY29uc3QKIHZvaWQgRnJhbWVUcmVlOjphcHBlbmRDaGls
ZChGcmFtZSYgY2hpbGQpCiB7CiAgICAgQVNTRVJUKGNoaWxkLnBhZ2UoKSA9PSBtX3RoaXNGcmFt
ZS5wYWdlKCkpOwotICAgIGNoaWxkLnRyZWUoKS5tX3BhcmVudCA9IG1ha2VXZWFrUHRyKG1fdGhp
c0ZyYW1lKTsKKyAgICBjaGlsZC50cmVlKCkubV9wYXJlbnQgPSBtX3RoaXNGcmFtZTsKICAgICBX
ZWFrUHRyPEZyYW1lPiBvbGRMYXN0ID0gbV9sYXN0Q2hpbGQ7Ci0gICAgbV9sYXN0Q2hpbGQgPSBt
YWtlV2Vha1B0cihjaGlsZCk7CisgICAgbV9sYXN0Q2hpbGQgPSBjaGlsZDsKIAogICAgIGlmIChv
bGRMYXN0KSB7CiAgICAgICAgIGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG9sZExh
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNWRhMzAwNDI4NTcxMTA5NWQyMWUx
OTBjM2M2OTUxMjE4ODI1NWVlMS4uNjA2ZTBiYjNmYzhkZWI5OWQ3NzljNzAyMjY4NmUwNTJmNmU0
YTU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzI2OSw3ICszMjY5LDcgQEAg
dm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUVtYmVkZGVkT2JqZWN0KFJlbmRlckVtYmVkZGVkT2JqZWN0
JiBlbWJlZGRlZE9iamVjdCkKIAogICAgIGF1dG8mIGVsZW1lbnQgPSBlbWJlZGRlZE9iamVjdC5m
cmFtZU93bmVyRWxlbWVudCgpOwogCi0gICAgYXV0byB3ZWFrUmVuZGVyZXIgPSBtYWtlV2Vha1B0
cihlbWJlZGRlZE9iamVjdCk7CisgICAgV2Vha1B0ciB3ZWFrUmVuZGVyZXIgeyBlbWJlZGRlZE9i
amVjdCB9OwogCiAgICAgaWYgKGlzPEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ+KGVsZW1lbnQpKSB7
CiAgICAgICAgIGF1dG8mIHBsdWdpbkVsZW1lbnQgPSBkb3duY2FzdDxIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50PihlbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3TGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91
dENvbnRleHQuY3BwCmluZGV4IDBhNWQzOWJlNGViMTY0MjJjN2Y1MTMxZGU3MzMzOWE0OWM5YjY2
NzMuLmU2ZGJkYjNhMDc2NTRhYzYwZWI5ODAxNmQyNGMxYTc3MzJmYmQyMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcApAQCAtMjE2LDcgKzIx
Niw3IEBAIHZvaWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0KCkKICAgICAgICAgaWYg
KCFyZW5kZXJWaWV3KCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbGF5b3V0Um9v
dCA9IG1ha2VXZWFrUHRyKHN1YnRyZWVMYXlvdXRSb290KCkgPyBzdWJ0cmVlTGF5b3V0Um9vdCgp
IDogcmVuZGVyVmlldygpKTsKKyAgICAgICAgbGF5b3V0Um9vdCA9IHN1YnRyZWVMYXlvdXRSb290
KCkgPyBzdWJ0cmVlTGF5b3V0Um9vdCgpIDogcmVuZGVyVmlldygpOwogICAgICAgICBtX25lZWRz
RnVsbFJlcGFpbnQgPSBpczxSZW5kZXJWaWV3PihsYXlvdXRSb290KSAmJiAobV9maXJzdExheW91
dCB8fCByZW5kZXJWaWV3KCktPnByaW50aW5nKCkpOwogICAgICAgICB2aWV3KCkud2lsbERvTGF5
b3V0KGxheW91dFJvb3QpOwogICAgICAgICBtX2ZpcnN0TGF5b3V0ID0gZmFsc2U7CkBAIC00ODIs
NyArNDgyLDcgQEAgdm9pZCBGcmFtZVZpZXdMYXlvdXRDb250ZXh0Ojpjb252ZXJ0U3VidHJlZUxh
eW91dFRvRnVsbExheW91dCgpCiAKIHZvaWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6c2V0U3Vi
dHJlZUxheW91dFJvb3QoUmVuZGVyRWxlbWVudCYgbGF5b3V0Um9vdCkKIHsKLSAgICBtX3N1YnRy
ZWVMYXlvdXRSb290ID0gbWFrZVdlYWtQdHIobGF5b3V0Um9vdCk7CisgICAgbV9zdWJ0cmVlTGF5
b3V0Um9vdCA9IGxheW91dFJvb3Q7CiB9CiAKIGJvb2wgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6
Y2FuUGVyZm9ybUxheW91dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ltYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbWFnZU92
ZXJsYXlDb250cm9sbGVyLmNwcAppbmRleCBiYjIzNmE4OTIwYjM5MzNlMDMyYmIwM2E4MzE5NmYx
NjIzODJjZGFmLi43YzU4MmJlNmMyZTc3YzkxOGM2YzFkZGUxNzYzOTNiYjc1NGYyMmIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKQEAgLTQ5
LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRmxvYXRRdWFkOwogCiBJbWFn
ZU92ZXJsYXlDb250cm9sbGVyOjpJbWFnZU92ZXJsYXlDb250cm9sbGVyKFBhZ2UmIHBhZ2UpCi0g
ICAgOiBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCisgICAgOiBtX3BhZ2UocGFnZSkKIHsKIH0K
IApAQCAtOTYsNyArOTYsNyBAQCB2b2lkIEltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlv
blF1YWRzRGlkQ2hhbmdlKEZyYW1lJiBmcmFtZSwgY29uc3QgVmVjdG9yPAogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgbV9ob3N0RWxlbWVudEZvclNlbGVjdGlvbiA9IG1ha2VXZWFrUHRy
KCpvdmVybGF5SG9zdCk7CisgICAgbV9ob3N0RWxlbWVudEZvclNlbGVjdGlvbiA9ICpvdmVybGF5
SG9zdDsKICAgICBtX3NlbGVjdGlvblF1YWRzID0gcXVhZHM7CiAgICAgbV9zZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IgPSBvdmVybGF5SG9zdFJlbmRlcmVyLT5zZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoKTsKICAgICBtX3NlbGVjdGlvbkNsaXBSZWN0ID0gb3ZlcmxheUhvc3RSZW5kZXJlci0+YWJz
b2x1dGVCb3VuZGluZ0JveFJlY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
SW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rp
b25PYnNlcnZlci5jcHAKaW5kZXggM2EyMzA4YWE2YTVjNDU3YzZhMWI5MmYxODE5ZGU3MmEzNTQy
MmRlZC4uNTk3YjY3MjM2NTc4Yzk4OTUyYTZiYzc3NDRkYWJiMmM2MzQ2ZWNmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAKQEAgLTExNiwxOSArMTE2
LDE5IEBAIEV4Y2VwdGlvbk9yPFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4+IEludGVyc2VjdGlv
bk9ic2VydmVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvCiB9CiAKIEludGVyc2VjdGlvbk9ic2VydmVy
OjpJbnRlcnNlY3Rpb25PYnNlcnZlcihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxJbnRlcnNlY3Rp
b25PYnNlcnZlckNhbGxiYWNrPiYmIGNhbGxiYWNrLCBDb250YWluZXJOb2RlKiByb290LCBMZW5n
dGhCb3gmJiBwYXJzZWRSb290TWFyZ2luLCBWZWN0b3I8ZG91YmxlPiYmIHRocmVzaG9sZHMpCi0g
ICAgOiBtX3Jvb3QobWFrZVdlYWtQdHIocm9vdCkpCisgICAgOiBtX3Jvb3Qocm9vdCkKICAgICAs
IG1fcm9vdE1hcmdpbihXVEZNb3ZlKHBhcnNlZFJvb3RNYXJnaW4pKQogICAgICwgbV90aHJlc2hv
bGRzKFdURk1vdmUodGhyZXNob2xkcykpCiAgICAgLCBtX2NhbGxiYWNrKFdURk1vdmUoY2FsbGJh
Y2spKQogewogICAgIGlmIChpczxEb2N1bWVudD4ocm9vdCkpIHsKICAgICAgICAgYXV0byYgb2Jz
ZXJ2ZXJEYXRhID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpyb290KS5lbnN1cmVJbnRlcnNlY3Rpb25P
YnNlcnZlckRhdGEoKTsKLSAgICAgICAgb2JzZXJ2ZXJEYXRhLm9ic2VydmVycy5hcHBlbmQobWFr
ZVdlYWtQdHIodGhpcykpOworICAgICAgICBvYnNlcnZlckRhdGEub2JzZXJ2ZXJzLmFwcGVuZCgq
dGhpcyk7CiAgICAgfSBlbHNlIGlmIChyb290KSB7CiAgICAgICAgIGF1dG8mIG9ic2VydmVyRGF0
YSA9IGRvd25jYXN0PEVsZW1lbnQ+KCpyb290KS5lbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlckRh
dGEoKTsKLSAgICAgICAgb2JzZXJ2ZXJEYXRhLm9ic2VydmVycy5hcHBlbmQobWFrZVdlYWtQdHIo
dGhpcykpOworICAgICAgICBvYnNlcnZlckRhdGEub2JzZXJ2ZXJzLmFwcGVuZCgqdGhpcyk7CiAg
ICAgfSBlbHNlIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIG1f
aW1wbGljaXRSb290RG9jdW1lbnQgPSBtYWtlV2Vha1B0cihmcmFtZS0+bWFpbkZyYW1lKCkuZG9j
dW1lbnQoKSk7CisgICAgICAgIG1faW1wbGljaXRSb290RG9jdW1lbnQgPSBmcmFtZS0+bWFpbkZy
YW1lKCkuZG9jdW1lbnQoKTsKIAogICAgIHN0ZDo6c29ydChtX3RocmVzaG9sZHMuYmVnaW4oKSwg
bV90aHJlc2hvbGRzLmVuZCgpKTsKIH0KQEAgLTE2NSw5ICsxNjUsOSBAQCB2b2lkIEludGVyc2Vj
dGlvbk9ic2VydmVyOjpvYnNlcnZlKEVsZW1lbnQmIHRhcmdldCkKICAgICBpZiAoIXRyYWNraW5n
RG9jdW1lbnQoKSB8fCAhbV9jYWxsYmFjayB8fCBpc09ic2VydmluZyh0YXJnZXQpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICB0YXJnZXQuZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKCku
cmVnaXN0cmF0aW9ucy5hcHBlbmQoeyBtYWtlV2Vha1B0cih0aGlzKSwgc3RkOjpudWxsb3B0IH0p
OworICAgIHRhcmdldC5lbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEoKS5yZWdpc3RyYXRp
b25zLmFwcGVuZCh7ICp0aGlzLCBzdGQ6Om51bGxvcHQgfSk7CiAgICAgYm9vbCBoYWRPYnNlcnZh
dGlvblRhcmdldHMgPSBoYXNPYnNlcnZhdGlvblRhcmdldHMoKTsKLSAgICBtX29ic2VydmF0aW9u
VGFyZ2V0cy5hcHBlbmQobWFrZVdlYWtQdHIodGFyZ2V0KSk7CisgICAgbV9vYnNlcnZhdGlvblRh
cmdldHMuYXBwZW5kKHRhcmdldCk7CiAKICAgICAvLyBQZXIgdGhlIHNwZWNpZmljYXRpb24sIHdl
IHNob3VsZCBkaXNwYXRjaCBhdCBsZWFzdCBvbmUgb2JzZXJ2YXRpb24gZm9yIHRoZSB0YXJnZXQu
IEZvciB0aGlzIHJlYXNvbiwgd2UgbWFrZSBzdXJlIHRvIGtlZXAgdGhlCiAgICAgLy8gdGFyZ2V0
IGFsaXZlIHVudGlsIHRoaXMgZmlyc3Qgb2JzZXJ2YXRpb24uIFRoaXMsIGluIHR1cm4sIHdpbGwg
a2VlcCB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIncyBKUyB3cmFwcGVyIGFsaXZlIHZpYQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKaW5kZXggZDdiYmM0Y2JkNjgwMzc1YzRlYTk4NWUyNmU3YWJkY2JiMGM2ZTBh
Zi4uMzhjMWIzZTJjYTNkMDM1MGJlMmU5ODNlZDQ4OTNjZjY4NjNmYjYwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCkBAIC0xNTUyLDcgKzE1NTIsNyBAQCB2b2lkIFBhZ2U6OnVwZGF0ZVJlbmRlcmluZygp
CiAgICAgVmVjdG9yPFdlYWtQdHI8RG9jdW1lbnQ+PiBpbml0aWFsRG9jdW1lbnRzOwogICAgIGZv
ckVhY2hEb2N1bWVudChbJmluaXRpYWxEb2N1bWVudHNdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsK
ICAgICAgICAgZG9jdW1lbnQuZG9tV2luZG93KCktPmZyZWV6ZU5vd1RpbWVzdGFtcCgpOwotICAg
ICAgICBpbml0aWFsRG9jdW1lbnRzLmFwcGVuZChtYWtlV2Vha1B0cigmZG9jdW1lbnQpKTsKKyAg
ICAgICAgaW5pdGlhbERvY3VtZW50cy5hcHBlbmQoZG9jdW1lbnQpOwogICAgIH0pOwogCiAgICAg
YXV0byBydW5Qcm9jZXNzaW5nU3RlcCA9IFsmXShSZW5kZXJpbmdVcGRhdGVTdGVwIHN0ZXAsIGNv
bnN0IFdURjo6RnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYgcGVyRG9jdW1lbnRGdW5jdGlvbikg
ewpAQCAtMTY3MSw3ICsxNjcxLDcgQEAgdm9pZCBQYWdlOjpkb0FmdGVyVXBkYXRlUmVuZGVyaW5n
KCkKICAgICAgICAgCiAgICAgICAgIGlmIChhcHBIaWdobGlnaHRTdG9yYWdlLT5oYXNVbnJlc3Rv
cmVkSGlnaGxpZ2h0cygpICYmIE1vbm90b25pY1RpbWU6Om5vdygpIC0gYXBwSGlnaGxpZ2h0U3Rv
cmFnZS0+bGFzdFJhbmdlU2VhcmNoVGltZSgpID4gMV9zKSB7CiAgICAgICAgICAgICBhcHBIaWdo
bGlnaHRTdG9yYWdlLT5yZXNldExhc3RSYW5nZVNlYXJjaFRpbWUoKTsKLSAgICAgICAgICAgIGRv
Y3VtZW50LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpJbnRlcm5hbEFzeW5jVGFz
aywgW3dlYWtEb2N1bWVudCA9IG1ha2VXZWFrUHRyKGRvY3VtZW50KV0geworICAgICAgICAgICAg
ZG9jdW1lbnQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkludGVybmFsQXN5bmNU
YXNrLCBbd2Vha0RvY3VtZW50ID0gV2Vha1B0ciB7IGRvY3VtZW50IH1dIHsKICAgICAgICAgICAg
ICAgICBSZWZQdHIgZG9jdW1lbnQgeyB3ZWFrRG9jdW1lbnQuZ2V0KCkgfTsKICAgICAgICAgICAg
ICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0zNjU4
LDcgKzM2NTgsNyBAQCB2b2lkIFBhZ2U6OnVwZGF0ZUVsZW1lbnRzV2l0aFRleHRSZWNvZ25pdGlv
blJlc3VsdHMoKQogICAgIH0KIAogICAgIGZvciAoYXV0byYgW2VsZW1lbnQsIHJlc3VsdF0gOiBl
bGVtZW50c1RvVXBkYXRlKSB7Ci0gICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkuZXZlbnRMb29w
KCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkludGVybmFsQXN5bmNUYXNrLCBbcmVzdWx0ID0gVGV4
dFJlY29nbml0aW9uUmVzdWx0IHsgcmVzdWx0IH0sIHdlYWtFbGVtZW50ID0gbWFrZVdlYWtQdHIo
ZWxlbWVudC5nZXQoKSldIHsKKyAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS5ldmVudExvb3Ao
KS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6SW50ZXJuYWxBc3luY1Rhc2ssIFtyZXN1bHQgPSBUZXh0
UmVjb2duaXRpb25SZXN1bHQgeyByZXN1bHQgfSwgd2Vha0VsZW1lbnQgPSBXZWFrUHRyIHsgZWxl
bWVudCB9XSB7CiAgICAgICAgICAgICBSZWZQdHIgZWxlbWVudCB7IHdlYWtFbGVtZW50LmdldCgp
IH07CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMzcwNCw3ICszNzA0LDcgQEAgdm9pZCBQYWdlOjpzZXRTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBzZXJ2aWNlV29ya2VyR2wKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2lzU2VydmljZVdvcmtlclBhZ2UpOwot
ICAgIG1fc2VydmljZVdvcmtlckdsb2JhbFNjb3BlID0gbWFrZVdlYWtQdHIoc2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlKTsKKyAgICBtX3NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bv
aW50ZXJMb2NrQ29udHJvbGxlci5jcHAKaW5kZXggMGZkOTgyNWZhYzZlNmNiNDZlMGVlZTViMjY3
YjJkOGJkZDcyZjhjMy4uYmZhMWI4NzhlYjgwNWNmYWIwNmQyMjk3YTlmYmQ1Nzc4ZTMwZTRlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcApAQCAt
MTA2LDcgKzEwNiw3IEBAIHZvaWQgUG9pbnRlckxvY2tDb250cm9sbGVyOjpyZXF1ZXN0UG9pbnRl
clVubG9ja0FuZEZvcmNlQ3Vyc29yVmlzaWJsZSgpCiB2b2lkIFBvaW50ZXJMb2NrQ29udHJvbGxl
cjo6ZWxlbWVudFdhc1JlbW92ZWQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBpZiAobV9lbGVt
ZW50ID09ICZlbGVtZW50KSB7Ci0gICAgICAgIG1fZG9jdW1lbnRPZlJlbW92ZWRFbGVtZW50V2hp
bGVXYWl0aW5nRm9yVW5sb2NrID0gbWFrZVdlYWtQdHIobV9lbGVtZW50LT5kb2N1bWVudCgpKTsK
KyAgICAgICAgbV9kb2N1bWVudE9mUmVtb3ZlZEVsZW1lbnRXaGlsZVdhaXRpbmdGb3JVbmxvY2sg
PSBtX2VsZW1lbnQtPmRvY3VtZW50KCk7CiAgICAgICAgIC8vIFNldCBlbGVtZW50IG51bGwgaW1t
ZWRpYXRlbHkgdG8gYmxvY2sgYW55IGZ1dHVyZSBpbnRlcmFjdGlvbiB3aXRoIGl0CiAgICAgICAg
IC8vIGluY2x1ZGluZyBtb3VzZSBldmVudHMgcmVjZWl2ZWQgYmVmb3JlIHRoZSB1bmxvY2sgY29t
cGxldGVzLgogICAgICAgICByZXF1ZXN0UG9pbnRlclVubG9jaygpOwpAQCAtMTIwLDcgKzEyMCw3
IEBAIHZvaWQgUG9pbnRlckxvY2tDb250cm9sbGVyOjpkb2N1bWVudERldGFjaGVkKERvY3VtZW50
JiBkb2N1bWVudCkKICAgICAgICAgbV9kb2N1bWVudEFsbG93ZWRUb1JlbG9ja1dpdGhvdXRVc2Vy
R2VzdHVyZSA9IG51bGxwdHI7CiAKICAgICBpZiAobV9lbGVtZW50ICYmICZtX2VsZW1lbnQtPmRv
Y3VtZW50KCkgPT0gJmRvY3VtZW50KSB7Ci0gICAgICAgIG1fZG9jdW1lbnRPZlJlbW92ZWRFbGVt
ZW50V2hpbGVXYWl0aW5nRm9yVW5sb2NrID0gbWFrZVdlYWtQdHIobV9lbGVtZW50LT5kb2N1bWVu
dCgpKTsKKyAgICAgICAgbV9kb2N1bWVudE9mUmVtb3ZlZEVsZW1lbnRXaGlsZVdhaXRpbmdGb3JV
bmxvY2sgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCk7CiAgICAgICAgIHJlcXVlc3RQb2ludGVyVW5s
b2NrKCk7CiAgICAgICAgIGNsZWFyRWxlbWVudCgpOwogICAgIH0KQEAgLTE1MSw3ICsxNTEsNyBA
QCB2b2lkIFBvaW50ZXJMb2NrQ29udHJvbGxlcjo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCkKICAg
ICBlbnF1ZXVlRXZlbnQoZXZlbnROYW1lcygpLnBvaW50ZXJsb2NrY2hhbmdlRXZlbnQsIG1fZWxl
bWVudC5nZXQoKSk7CiAgICAgbV9sb2NrUGVuZGluZyA9IGZhbHNlOwogICAgIG1fZm9yY2VDdXJz
b3JWaXNpYmxlVXBvblVubG9jayA9IGZhbHNlOwotICAgIG1fZG9jdW1lbnRBbGxvd2VkVG9SZWxv
Y2tXaXRob3V0VXNlckdlc3R1cmUgPSBtYWtlV2Vha1B0cihtX2VsZW1lbnQtPmRvY3VtZW50KCkp
OworICAgIG1fZG9jdW1lbnRBbGxvd2VkVG9SZWxvY2tXaXRob3V0VXNlckdlc3R1cmUgPSBtX2Vs
ZW1lbnQtPmRvY3VtZW50KCk7CiB9CiAKIHZvaWQgUG9pbnRlckxvY2tDb250cm9sbGVyOjpkaWRO
b3RBY3F1aXJlUG9pbnRlckxvY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9R
dWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCmluZGV4IDFjOWVlNTJk
MzE0MTdlNTMyMmJhN2EwNmMxZmU4NjFiYjZjMzQwNDIuLjRmMjJhZWFiNDU1OGMzOWZkNDhlMjEy
ZGJmN2ZhNDYxYTcxYjNjZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKQEAgLTg2LDcgKzg2LDcg
QEAgc3RhdGljIGlubGluZSBib29sIGlzWWFob29NYWlsKERvY3VtZW50JiBkb2N1bWVudCkKICNl
bmRpZgogCiBRdWlya3M6OlF1aXJrcyhEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBtX2RvY3Vt
ZW50KG1ha2VXZWFrUHRyKGRvY3VtZW50KSkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiB7
CiB9CiAKQEAgLTEyMjYsNyArMTIyNiw3IEBAIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBR
dWlya3M6OnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyayhFbGVtZW50JiBlCiAKICAg
ICAgICAgLy8gSWYgdGhlIGNsaWNrIGlzIHN5bnRoZXRpYywgdGhlIHVzZXIgaGFzIGFscmVhZHkg
Z29uZSB0aHJvdWdoIHRoZSBzdG9yYWdlIGFjY2VzcyBmbG93IGFuZCB3ZSBzaG91bGQgbm90IHJl
cXVlc3QgYWdhaW4uCiAgICAgICAgIGlmIChpc1N0b3JhZ2VBY2Nlc3NRdWlya0RvbWFpbkFuZEVs
ZW1lbnQobV9kb2N1bWVudC0+dXJsKCksIGVsZW1lbnQpICYmIGlzU3ludGhldGljQ2xpY2sgPT0g
SXNTeW50aGV0aWNDbGljazo6Tm8pIHsKLSAgICAgICAgICAgIHJldHVybiByZXF1ZXN0U3RvcmFn
ZUFjY2Vzc0FuZEhhbmRsZUNsaWNrKFtlbGVtZW50ID0gbWFrZVdlYWtQdHIoZWxlbWVudCksIHBs
YXRmb3JtRXZlbnQsIGV2ZW50VHlwZSwgZGV0YWlsLCByZWxhdGVkVGFyZ2V0XSAoU2hvdWxkRGlz
cGF0Y2hDbGljayBzaG91bGREaXNwYXRjaENsaWNrKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHJl
dHVybiByZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrKFtlbGVtZW50ID0gV2Vha1B0
ciB7IGVsZW1lbnQgfSwgcGxhdGZvcm1FdmVudCwgZXZlbnRUeXBlLCBkZXRhaWwsIHJlbGF0ZWRU
YXJnZXRdIChTaG91bGREaXNwYXRjaENsaWNrIHNob3VsZERpc3BhdGNoQ2xpY2spIG11dGFibGUg
ewogICAgICAgICAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRFbGVtZW50IHsgZWxlbWVudC5nZXQo
KSB9OwogICAgICAgICAgICAgICAgIGlmICghcHJvdGVjdGVkRWxlbWVudCkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVP
YnNlcnZhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmF0aW9uLmNw
cAppbmRleCAxNTVhYjIzZjEzYWNjNWZmMzYwY2JhNzVjZGUyNDZiNDZhZDRkN2Q2Li4yMDk2YTU4
MGU2NWVjZDExMzMwYWQwMTQxNjg3MTk3YWMyMDk5NGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1Jlc2l6ZU9ic2VydmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Jlc2l6ZU9ic2VydmF0aW9uLmNwcApAQCAtMzksNyArMzksNyBAQCBSZWY8UmVzaXplT2JzZXJ2
YXRpb24+IFJlc2l6ZU9ic2VydmF0aW9uOjpjcmVhdGUoRWxlbWVudCYgdGFyZ2V0LCBSZXNpemVP
YnNlcnZlcgogfQogCiBSZXNpemVPYnNlcnZhdGlvbjo6UmVzaXplT2JzZXJ2YXRpb24oRWxlbWVu
dCYgZWxlbWVudCwgUmVzaXplT2JzZXJ2ZXJCb3hPcHRpb25zIG9ic2VydmVkQm94KQotICAgIDog
bV90YXJnZXQgeyBtYWtlV2Vha1B0cihlbGVtZW50KSB9CisgICAgOiBtX3RhcmdldCB7IGVsZW1l
bnQgfQogICAgICwgbV9vYnNlcnZlZEJveCB7IG9ic2VydmVkQm94IH0KIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9SZXNpemVPYnNlcnZlci5jcHAKaW5kZXggYjM2MzBkZDg4MGEwZmNmOWQxOGVkOTE3
NDY3NDY4YjE3MzI2MjkzOS4uOTFiMGQ5NzViNGM4YWEyYzUyMGMyODg5MjBmZjEyNWM1N2MzMGIz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZlci5jcHAKQEAgLTQxLDcgKzQxLDcg
QEAgUmVmPFJlc2l6ZU9ic2VydmVyPiBSZXNpemVPYnNlcnZlcjo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgUmVmPFJlc2l6ZU9ic2VydmUKIH0KIAogUmVzaXplT2JzZXJ2ZXI6OlJlc2l6ZU9i
c2VydmVyKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2s+JiYg
Y2FsbGJhY2spCi0gICAgOiBtX2RvY3VtZW50KG1ha2VXZWFrUHRyKGRvY3VtZW50KSkKKyAgICA6
IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX2NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2sp
KQogewogfQpAQCAtNzMsNyArNzMsNyBAQCB2b2lkIFJlc2l6ZU9ic2VydmVyOjpvYnNlcnZlKEVs
ZW1lbnQmIHRhcmdldCwgY29uc3QgUmVzaXplT2JzZXJ2ZXJPcHRpb25zJiBvcHRpbwogICAgIH0K
IAogICAgIGF1dG8mIG9ic2VydmVyRGF0YSA9IHRhcmdldC5lbnN1cmVSZXNpemVPYnNlcnZlckRh
dGEoKTsKLSAgICBvYnNlcnZlckRhdGEub2JzZXJ2ZXJzLmFwcGVuZChtYWtlV2Vha1B0cih0aGlz
KSk7CisgICAgb2JzZXJ2ZXJEYXRhLm9ic2VydmVycy5hcHBlbmQoKnRoaXMpOwogCiAgICAgbV9v
YnNlcnZhdGlvbnMuYXBwZW5kKFJlc2l6ZU9ic2VydmF0aW9uOjpjcmVhdGUodGFyZ2V0LCBvcHRp
b25zLmJveCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uY3BwCmluZGV4IGYwNGEyMGFmMjYwYTY0
MTlmNjFjNzAxZDVjNzg5YzYwMDRhNmE3NTMuLmJmYjVkNTI5MDQ3ZjNlNzc2ZjUyMGY1ZmRhMDkw
NDA1OGQ0OGI5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uY3BwCkBAIC00MSw4ICs0MSw4IEBA
IFVuZG9NYW5hZ2VyKiBVbmRvSXRlbTo6dW5kb01hbmFnZXIoKSBjb25zdAogCiB2b2lkIFVuZG9J
dGVtOjpzZXRVbmRvTWFuYWdlcihVbmRvTWFuYWdlciogdW5kb01hbmFnZXIpCiB7Ci0gICAgbV91
bmRvTWFuYWdlciA9IG1ha2VXZWFrUHRyKHVuZG9NYW5hZ2VyKTsKLSAgICBtX2RvY3VtZW50ID0g
bWFrZVdlYWtQdHIodW5kb01hbmFnZXIgPyAmdW5kb01hbmFnZXItPmRvY3VtZW50KCkgOiBudWxs
cHRyKTsKKyAgICBtX3VuZG9NYW5hZ2VyID0gdW5kb01hbmFnZXI7CisgICAgbV9kb2N1bWVudCA9
IHVuZG9NYW5hZ2VyID8gJnVuZG9NYW5hZ2VyLT5kb2N1bWVudCgpIDogbnVsbHB0cjsKIH0KIAog
dm9pZCBVbmRvSXRlbTo6aW52YWxpZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVs
RXZlbnRUZXN0TW9uaXRvci5jcHAKaW5kZXggOWRjZmY2MTFhMDM1ZTIxZjNiMGY1NWJiZjc5M2Zm
OTI0NWQ0NzYyOS4uYWU3NDQ0OTViMTAzYWQzNDczNWM5NDE2ZWVkYThmMGY5YTc1OWJiMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcApAQCAtMTI2
LDcgKzEyNiw3IEBAIHZvaWQgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpyZWNlaXZlZFdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKIAogdm9pZCBXaGVlbEV2ZW50VGVz
dE1vbml0b3I6OnNjaGVkdWxlQ2FsbGJhY2tDaGVjaygpCiB7Ci0gICAgZW5zdXJlT25NYWluVGhy
ZWFkKFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKG1fcGFnZSldIHsKKyAgICBlbnN1cmVPbk1haW5U
aHJlYWQoW3dlYWtQYWdlID0gV2Vha1B0ciB7IG1fcGFnZSB9XSB7CiAgICAgICAgIGlmICh3ZWFr
UGFnZSkKICAgICAgICAgICAgIHdlYWtQYWdlLT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZShSZW5k
ZXJpbmdVcGRhdGVTdGVwOjpXaGVlbEV2ZW50TW9uaXRvckNhbGxiYWNrcyk7CiAgICAgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcApp
bmRleCA5ZjhjNTY3MGMyMTU5MzEyMjNjOTE5NGZjMzMzNjVkYmI2OWY2OTBkLi4xMzhmZTU4MzFk
NzU2NDY1NDM5ZWFmZWM2NTc4N2VhMzE5NWUyMTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAKQEAgLTI1Miw3ICsyNTIsNyBAQCB2
b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZGlkRmluaXNoVHJhbnNpdGlvbihjb25zdCBFbGVt
ZW50JiBlbGVtZW50LCBDU1NQcm9wZQogICAgIExPR19XSVRIX1NUUkVBTShDb250ZW50T2JzZXJ2
YXRpb24sIHN0cmVhbSA8PCAiZGlkRmluaXNoVHJhbnNpdGlvbjogdHJhbnNpdGlvbiBmaW5pc2hl
ZCAoIiA8PCAmZWxlbWVudCA8PCAiKS4iKTsKIAogICAgIC8vIGlzQ29uc2lkZXJlZEFjdGlvbmFi
bGVDb250ZW50IG1heSB0cmlnZ2VyIHN0eWxlIHVwZGF0ZSB0aHJvdWdoIE5vZGU6OmNvbXB1dGVF
ZGl0YWJpbGl0eS4gTGV0J3MgYWRqdXN0IHRoZSBzdGF0ZSBpbiB0aGUgbmV4dCBydW5sb29wLgot
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRhcmdl
dEVsZW1lbnQgPSBtYWtlV2Vha1B0cihlbGVtZW50KV0geworICAgIGNhbGxPbk1haW5UaHJlYWQo
W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRhcmdldEVsZW1lbnQgPSBXZWFrUHRyIHsg
ZWxlbWVudCB9XSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXRhcmdldEVsZW1lbnQpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChpc1Zpc3VhbGx5SGlkZGVuKCp0YXJnZXRF
bGVtZW50KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENo
YW5nZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2Jz
ZXJ2ZXIuaAppbmRleCA5NzZkMWYwM2ZkYzg1MzVlMjNlMTEyZWU4Y2NhMjkxZWJjYzMzNzJkLi4z
ZmI2YTgzYjM2MmMxNTE0ODBlN2ZiYzIyZmM1MzI2YzdkZTliMzg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaApAQCAtNzQsNyArNzQsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHdpbGxOb3RQcm9jZWVkV2l0aEZpeGVkT2JzZXJ2YXRpb25U
aW1lV2luZG93KCk7CiAKLSAgICB2b2lkIHNldEhpZGRlblRvdWNoVGFyZ2V0KEVsZW1lbnQmIHRh
cmdldEVsZW1lbnQpIHsgbV9oaWRkZW5Ub3VjaFRhcmdldEVsZW1lbnQgPSBtYWtlV2Vha1B0cih0
YXJnZXRFbGVtZW50KTsgfQorICAgIHZvaWQgc2V0SGlkZGVuVG91Y2hUYXJnZXQoRWxlbWVudCYg
dGFyZ2V0RWxlbWVudCkgeyBtX2hpZGRlblRvdWNoVGFyZ2V0RWxlbWVudCA9IHRhcmdldEVsZW1l
bnQ7IH0KICAgICB2b2lkIHJlc2V0SGlkZGVuVG91Y2hUYXJnZXQoKSB7IG1faGlkZGVuVG91Y2hU
YXJnZXRFbGVtZW50ID0geyB9OyB9CiAgICAgRWxlbWVudCogaGlkZGVuVG91Y2hUYXJnZXQoKSBj
b25zdCB7IHJldHVybiBtX2hpZGRlblRvdWNoVGFyZ2V0RWxlbWVudC5nZXQoKTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KaW5kZXggNzQ4YmZiOTg4YzE1
N2ZiOGM0NGZlZjJiMWJkNjJhYTNiNGUyMGQ2Ny4uNTdkNWE2NDdmMDMwMjQyNTFjZjk2MTZiMmNi
ZmE1YTRhZjcxZTlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRI
YW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1h
Yy5tbQpAQCAtODMyLDcgKzgzMiw3IEBAIHN0YXRpYyBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiBz
Y3JvbGxhYmxlQXJlYUZvckV2ZW50VGFyZ2V0KEVsZW1lbnQqIGV2ZW50VGFyZ2V0CiAgICAgaWYg
KCF3aWRnZXQgfHwgIXdpZGdldC0+aXNTY3JvbGxWaWV3KCkpCiAgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICByZXR1cm4gbWFrZVdlYWtQdHIoc3RhdGljX2Nhc3Q8U2Nyb2xsYWJsZUFyZWEmPihz
dGF0aWNfY2FzdDxTY3JvbGxWaWV3Jj4oKndpZGdldCkpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8U2Nyb2xsYWJsZUFyZWEmPihzdGF0aWNfY2FzdDxTY3JvbGxWaWV3Jj4oKndpZGdldCkpOwog
fQogICAgIAogc3RhdGljIGJvb2wgZXZlbnRUYXJnZXRJc1BsYXRmb3JtV2lkZ2V0KEVsZW1lbnQq
IGV2ZW50VGFyZ2V0KQpAQCAtODU0LDcgKzg1NCw3IEBAIHN0YXRpYyBXZWFrUHRyPFNjcm9sbGFi
bGVBcmVhPiBzY3JvbGxhYmxlQXJlYUZvckNvbnRhaW5lck5vZGUoQ29udGFpbmVyTm9kZSYgY29u
CiAgICAgaWYgKCFzY3JvbGxhYmxlQXJlYVB0cikKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAK
LSAgICByZXR1cm4gbWFrZVdlYWtQdHIoKnNjcm9sbGFibGVBcmVhUHRyKTsKKyAgICByZXR1cm4g
KnNjcm9sbGFibGVBcmVhUHRyOwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6ZGV0ZXJtaW5lV2hl
ZWxFdmVudFRhcmdldChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFJlZlB0
cjxFbGVtZW50PiYgd2hlZWxFdmVudFRhcmdldCwgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mIHNj
cm9sbGFibGVBcmVhLCBib29sJiBpc092ZXJXaWRnZXQpCkBAIC04NzQsNyArODc0LDcgQEAgdm9p
ZCBFdmVudEhhbmRsZXI6OmRldGVybWluZVdoZWVsRXZlbnRUYXJnZXQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW4KICAgICAgICAgaWYgKHNjcm9sbGFibGVDb250YWluZXIpCiAg
ICAgICAgICAgICBzY3JvbGxhYmxlQXJlYSA9IHNjcm9sbGFibGVBcmVhRm9yQ29udGFpbmVyTm9k
ZSgqc2Nyb2xsYWJsZUNvbnRhaW5lcik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNjcm9s
bGFibGVBcmVhID0gbWFrZVdlYWtQdHIoc3RhdGljX2Nhc3Q8U2Nyb2xsYWJsZUFyZWEmPigqdmll
dykpOworICAgICAgICAgICAgc2Nyb2xsYWJsZUFyZWEgPSBzdGF0aWNfY2FzdDxTY3JvbGxhYmxl
QXJlYSY+KCp2aWV3KTsKICAgICB9CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hp
bmcsIHN0cmVhbSA8PCAiRXZlbnRIYW5kbGVyOjpkZXRlcm1pbmVXaGVlbEV2ZW50VGFyZ2V0KCkg
LSBldmVudCAiIDw8IHdoZWVsRXZlbnQgPDwgIiBmb3VuZCBzY3JvbGxhYmxlQXJlYSAiIDw8IFZh
bHVlT3JOdWxsKHNjcm9sbGFibGVBcmVhLmdldCgpKSA8PCAiLCBsYXRjaGluZyBzdGF0ZSBpcyAi
IDw8IHBhZ2UtPnNjcm9sbExhdGNoaW5nQ29udHJvbGxlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tCmluZGV4IGU2N2Vl
OWIwYTZkNzc1YWYxMWIyMzFiNjJmNDg5NmZhMGExOTA5ZDEuLjIyY2QzMjczOWViZjA4M2QyNWZj
OGJjNDEzNGUyOTAwMGM3Yzg1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvSW1hZ2VPdmVybGF5Q29udHJvbGxlck1hYy5tbQpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIElt
YWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVwZGF0ZURhdGFEZXRlY3RvckhpZ2hsaWdodHMoY29uc3Qg
SFRNTEVsZW1lbnQmIG92ZQogI2Vsc2UKICAgICAgICAgYXV0byBoaWdobGlnaHQgPSBhZG9wdENG
KFBBTDo6c29mdExpbmtfRGF0YURldGVjdG9yc19EREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0lu
VmlzaWJsZVJlY3RXaXRoU3R5bGVBbmREaXJlY3Rpb24obnVsbHB0ciwgJmVsZW1lbnRCb3VuZHMs
IDEsIG1haW5GcmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdCgpLCBEREhpZ2hsaWdodFN0eWxl
QnViYmxlU3RhbmRhcmQgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29uQXJyb3csIFlFUywg
TlNXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUykpOwogI2VuZGlmCi0gICAgICAgIG1f
ZGF0YURldGVjdG9yQ29udGFpbmVyc0FuZEhpZ2hsaWdodHMuYXBwZW5kKHsgbWFrZVdlYWtQdHIo
ZWxlbWVudC5nZXQoKSksIERhdGFEZXRlY3RvckhpZ2hsaWdodDo6Y3JlYXRlRm9ySW1hZ2VPdmVy
bGF5KCptX3BhZ2UsICp0aGlzLCBXVEZNb3ZlKGhpZ2hsaWdodCksICptYWtlUmFuZ2VTZWxlY3Rp
bmdOb2RlKGVsZW1lbnQuZ2V0KCkpKSB9KTsKKyAgICAgICAgbV9kYXRhRGV0ZWN0b3JDb250YWlu
ZXJzQW5kSGlnaGxpZ2h0cy5hcHBlbmQoeyBlbGVtZW50LCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6
OmNyZWF0ZUZvckltYWdlT3ZlcmxheSgqbV9wYWdlLCAqdGhpcywgV1RGTW92ZShoaWdobGlnaHQp
LCAqbWFrZVJhbmdlU2VsZWN0aW5nTm9kZShlbGVtZW50LmdldCgpKSkgfSk7CiAgICAgfQogfQog
CkBAIC0yMjMsNyArMjIzLDcgQEAgdm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjplbGVtZW50
VW5kZXJNb3VzZURpZENoYW5nZShGcmFtZSYgZnJhbWUsIEVsZW1lbnQqIGUKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIG1faG9zdEVsZW1lbnRGb3JEYXRhRGV0ZWN0b3JzID0gbWFrZVdl
YWtQdHIoaW1hZ2VPdmVybGF5SG9zdC5nZXQoKSk7CisgICAgbV9ob3N0RWxlbWVudEZvckRhdGFE
ZXRlY3RvcnMgPSBpbWFnZU92ZXJsYXlIb3N0OwogICAgIGluc3RhbGxQYWdlT3ZlcmxheUlmTmVl
ZGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbExhdGNoaW5nQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDQ2N2NjNWYyMThmZTg4MzUzNjY1
ODdmZmQwNjg0NDRjNWU3OGI3MWEuLjRiNzRiZjQ3OTA5MTQ5OTdiOGU0NmVmMmNlNzdiNTU4Mzhl
NDAyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExh
dGNoaW5nQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIHZvaWQgU2Ny
b2xsTGF0Y2hpbmdDb250cm9sbGVyOjp1cGRhdGVBbmRGZXRjaExhdGNoaW5nU3RhdGVGb3JGcmFt
ZShGcmFtZSYgZnJhbWUsCiAgICAgICAgIGlmICghaGFzU3RhdGVGb3JGcmFtZShmcmFtZSkpIHsK
ICAgICAgICAgICAgIEZyYW1lU3RhdGUgc3RhdGU7CiAgICAgICAgICAgICBzdGF0ZS5mcmFtZSA9
ICZmcmFtZTsKLSAgICAgICAgICAgIHN0YXRlLndoZWVsRXZlbnRFbGVtZW50ID0gbWFrZVdlYWtQ
dHIobGF0Y2hlZEVsZW1lbnQuZ2V0KCkpOworICAgICAgICAgICAgc3RhdGUud2hlZWxFdmVudEVs
ZW1lbnQgPSBsYXRjaGVkRWxlbWVudDsKICAgICAgICAgICAgIGlmIChzaG91bGRMYXRjaFRvU2Ny
b2xsYWJsZUFyZWEoZnJhbWUsIHNjcm9sbGFibGVBcmVhLmdldCgpLCBtX2N1bXVsYXRpdmVFdmVu
dERlbHRhKSkKICAgICAgICAgICAgICAgICBzdGF0ZS5zY3JvbGxhYmxlQXJlYSA9IHNjcm9sbGFi
bGVBcmVhOwogICAgICAgICAgICAgc3RhdGUuaXNPdmVyV2lkZ2V0ID0gaXNPdmVyV2lkZ2V0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTm93UGxheWluZ01hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTm93UGxheWluZ01hbmFnZXIuY3BwCmluZGV4IGEx
NTg3ZjVmZjIyNGIxOGYxYzhlYzc2ZWQwY2NlOGY0YzY3ZmJmZTYuLjMyMDBkZTIzYjU2Yzk0MWRm
NDBjMWFlMmNjNWMyZDU0NWQwYjEyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL05vd1BsYXlpbmdNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9O
b3dQbGF5aW5nTWFuYWdlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBOb3dQbGF5aW5nTWFu
YWdlcjo6ZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpSZW0KIAogdm9pZCBOb3dQbGF5aW5nTWFuYWdlcjo6YWRkQ2xpZW50KENsaWVudCYgY2xpZW50
KQogewotICAgIG1fY2xpZW50ID0gbWFrZVdlYWtQdHIoY2xpZW50KTsKKyAgICBtX2NsaWVudCA9
IGNsaWVudDsKICAgICBlbnN1cmVSZW1vdGVDb21tYW5kTGlzdGVuZXJDcmVhdGVkKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJldmlld0NvbnZlcnRlci5jcHAKaW5kZXggZGJh
Y2EwNGZiMDY4MjcwYzRhNDcxZjE5YjMyMTkwNTFjMWVmMDJlYi4uNGNiMzMwMWU3ZGY3MDcxYzVk
ZDlmYzU5YmM1NzE4NWM0ZTkxNDc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUHJldmlld0NvbnZlcnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJl
dmlld0NvbnZlcnRlci5jcHAKQEAgLTEzNCw3ICsxMzQsNyBAQCBib29sIFByZXZpZXdDb252ZXJ0
ZXI6Omhhc0NsaWVudChQcmV2aWV3Q29udmVydGVyQ2xpZW50JiBjbGllbnQpIGNvbnN0CiB2b2lk
IFByZXZpZXdDb252ZXJ0ZXI6OmFkZENsaWVudChQcmV2aWV3Q29udmVydGVyQ2xpZW50JiBjbGll
bnQpCiB7CiAgICAgQVNTRVJUKCFoYXNDbGllbnQoY2xpZW50KSk7Ci0gICAgbV9jbGllbnRzLmFw
cGVuZChtYWtlV2Vha1B0cihjbGllbnQpKTsKKyAgICBtX2NsaWVudHMuYXBwZW5kKGNsaWVudCk7
CiAgICAgZGlkQWRkQ2xpZW50KGNsaWVudCk7CiB9CiAKQEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lk
IFByZXZpZXdDb252ZXJ0ZXI6Oml0ZXJhdGVDbGllbnRzKFQmJiBjYWxsYmFjaykKIAogdm9pZCBQ
cmV2aWV3Q29udmVydGVyOjpkaWRBZGRDbGllbnQoUHJldmlld0NvbnZlcnRlckNsaWVudCYgY2xp
ZW50KQogewotICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IFJlZiB7ICp0aGlzIH0sIHdlYWtDbGllbnQgPSBtYWtlV2Vha1B0cihjbGllbnQpXSgp
IHsKKyAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9LCB3ZWFrQ2xpZW50ID0gV2Vha1B0ciB7IGNsaWVudCB9XSgpIHsKICAg
ICAgICAgaWYgKGF1dG8gY2xpZW50ID0gd2Vha0NsaWVudC5nZXQoKSkKICAgICAgICAgICAgIHJl
cGxheVRvQ2xpZW50KCpjbGllbnQpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IDhjMzFkMWMwN2I2OGM4OTYwYTYxOTY2MTIzZTcxNjUw
ZWI5YjhhOTIuLjkzN2Q5YWM3Yjg5YWI3YjM3NGYzZWE5NmQzYmI1MWIwMDBjYzY1MTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTM2Nyw3ICszNjcs
NyBAQCBmbG9hdCBTY3JvbGxBbmltYXRvcjo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKIAogc3Rk
Ojp1bmlxdWVfcHRyPFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyVGltZXI+IFNjcm9sbEFuaW1h
dG9yOjpjcmVhdGVUaW1lcihGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiB7Ci0gICAgcmV0
dXJuIFdURjo6bWFrZVVuaXF1ZTxTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlclRpbWVyPihSdW5M
b29wOjpjdXJyZW50KCksIFtmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pLCB3ZWFrU2Nyb2xs
YWJsZUFyZWEgPSBtYWtlV2Vha1B0cihtX3Njcm9sbGFibGVBcmVhKV0geworICAgIHJldHVybiBX
VEY6Om1ha2VVbmlxdWU8U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXJUaW1lcj4oUnVuTG9vcDo6
Y3VycmVudCgpLCBbZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKSwgd2Vha1Njcm9sbGFibGVB
cmVhID0gV2Vha1B0ciB7IG1fc2Nyb2xsYWJsZUFyZWEgfV0gewogICAgICAgICBpZiAoIXdlYWtT
Y3JvbGxhYmxlQXJlYSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZnVuY3Rpb24oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMjMzZDIyZjcyNTI3MzZi
MjI1NzNkYmZlNGQ1OTc1NjBlMTliNzNmYi4uNDg1NzA5OTQ5ZjAxNmIwN2VkNDgwYjE3ZmQ0ODUy
MDVjMWE0ODZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTE1
NjksNyArMTU2OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxWaWV3OjpQcm9oaWJpdFNjcm9s
bGluZ1doZW5DaGFuZ2luZ0NvbnRlbnRTaXplRm9yU2NvcGU+IFNjCiB9CiAKIFNjcm9sbFZpZXc6
OlByb2hpYml0U2Nyb2xsaW5nV2hlbkNoYW5naW5nQ29udGVudFNpemVGb3JTY29wZTo6UHJvaGli
aXRTY3JvbGxpbmdXaGVuQ2hhbmdpbmdDb250ZW50U2l6ZUZvclNjb3BlKFNjcm9sbFZpZXcmIHNj
cm9sbFZpZXcpCi0gICAgOiBtX3Njcm9sbFZpZXcobWFrZVdlYWtQdHIoc2Nyb2xsVmlldykpCisg
ICAgOiBtX3Njcm9sbFZpZXcoc2Nyb2xsVmlldykKIHsKICAgICBzY3JvbGxWaWV3LmluY3JlbWVu
dFByb2hpYml0c1Njcm9sbGluZ1doZW5DaGFuZ2luZ0NvbnRlbnRTaXplQ291bnQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9XaWRnZXQuY3BwCmluZGV4IDNiNGEyYWU1YzhiMmRhMTQ3ZDhmZTgyYWE2
MGRjM2FmMTBhMmY1OWQuLjE1ZDZhODQwMzcwZTE2MzQ2ZjQ3MDMxMDYyNmNjNDljYmMwYTRhMmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmNwcApAQCAtNTAsNyArNTAsNyBAQCB2b2lkIFdp
ZGdldDo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHZpZXcpCiAgICAgQVNTRVJUKCF2aWV3IHx8ICFt
X3BhcmVudCk7CiAgICAgaWYgKCF2aWV3IHx8ICF2aWV3LT5pc1Zpc2libGUoKSkKICAgICAgICAg
c2V0UGFyZW50VmlzaWJsZShmYWxzZSk7Ci0gICAgbV9wYXJlbnQgPSBtYWtlV2Vha1B0cih2aWV3
KTsKKyAgICBtX3BhcmVudCA9IHZpZXc7CiAgICAgaWYgKHZpZXcgJiYgdmlldy0+aXNWaXNpYmxl
KCkpCiAgICAgICAgIHNldFBhcmVudFZpc2libGUodHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcAppbmRleCBhZjA0MWE0YWJmZmUyNTlkYjBhN2QzNDlmYWI4M2NmMWU5OTBkMTY4Li4w
M2FkNDY2MmYyZWM5YzBlZTE3NTY5ZDI0NGU0NDM3MzdlNjg5N2QzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCB2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlcjo6ZW5kSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcgog
dm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmFkZFNlc3Npb24oUGxhdGZvcm1NZWRp
YVNlc3Npb24mIHNlc3Npb24pCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBzZXNz
aW9uLmxvZ0lkZW50aWZpZXIoKSk7Ci0gICAgbV9zZXNzaW9ucy5hcHBlbmQobWFrZVdlYWtQdHIo
c2Vzc2lvbikpOworICAgIG1fc2Vzc2lvbnMuYXBwZW5kKHNlc3Npb24pOwogICAgIGlmIChtX2lu
dGVycnVwdGVkKQogICAgICAgICBzZXNzaW9uLnNldFN0YXRlKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpJbnRlcnJ1cHRlZCk7CiAKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lv
biYgcwogICAgICAgICByZXR1cm47CiAKICAgICBtX3Nlc3Npb25zLnJlbW92ZShwYXVzaW5nU2Vz
c2lvbkluZGV4KTsKLSAgICBtX3Nlc3Npb25zLmFwcGVuZChtYWtlV2Vha1B0cihzZXNzaW9uKSk7
CisgICAgbV9zZXNzaW9ucy5hcHBlbmQoc2Vzc2lvbik7CiAKICAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIsICJzZXNzaW9uIG1vdmVkIGZyb20gaW5kZXggIiwgcGF1c2luZ1Nlc3Npb25JbmRl
eCwgIiB0byAiLCBsYXN0UGxheWluZ1Nlc3Npb25JbmRleCk7CiB9CkBAIC0zMDgsNyArMzA4LDcg
QEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldEN1cnJlbnRTZXNzaW9uKFBs
YXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW8KICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zZXNz
aW9ucy5yZW1vdmUoaW5kZXgpOwotICAgIG1fc2Vzc2lvbnMuaW5zZXJ0KDAsIG1ha2VXZWFrUHRy
KHNlc3Npb24pKTsKKyAgICBtX3Nlc3Npb25zLmluc2VydCgwLCBzZXNzaW9uKTsKICAgICAKICAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJzZXNzaW9uIG1vdmVkIGZyb20gaW5kZXggIiwg
aW5kZXgsICIgdG8gMCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCmluZGV4IDhi
MzA0YWMyZjQzYjcyMzc2NmRhMDA4MTRlNDg0MDE4ODRjYTBkOGUuLmJiNzg4YWZhMWU5MWY5YTRk
M2FiMzZlMmEwYzA4MTJjOTRlMTg3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0K
QEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2Vzc2lv
bldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2VzcwogewogICAgIFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhzZXNzaW9uLCBk
ZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3dl
YWtTZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vzc2lvbildIHsKKyAgICBjYWxsT25NYWluVGhyZWFk
KFt3ZWFrU2Vzc2lvbiA9IFdlYWtQdHIgeyBzZXNzaW9uIH1dIHsKICAgICAgICAgaWYgKHdlYWtT
ZXNzaW9uKQogICAgICAgICAgICAgd2Vha1Nlc3Npb24tPnVwZGF0ZU1lZGlhVXNhZ2VJZkNoYW5n
ZWQoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vZ2xpYi9NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi5jcHAKaW5kZXggNTVmYTk4NTc2
YjU3NjYxZWIxZmQwODFjOTgwMDZkN2EzMzE2ZWU4MC4uYTg0YTMzMGVjNGJhODYwZThhN2E5MmY1
MDIxMTg2MmJlNDYwMmIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ2xpYi9NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ2xpYi9NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi5jcHAKQEAgLTIwMSw3
ICsyMDEsNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpzZXNzaW9uV2lsbEVuZFBs
YXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaQogewogICAgIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhzZXNzaW9uLCBkZWxheUNhbGxp
bmdVcGRhdGVOb3dQbGF5aW5nKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtTZXNzaW9u
ID0gbWFrZVdlYWtQdHIoc2Vzc2lvbildIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrU2Vz
c2lvbiA9IFdlYWtQdHIgeyBzZXNzaW9uIH1dIHsKICAgICAgICAgaWYgKHdlYWtTZXNzaW9uKQog
ICAgICAgICAgICAgd2Vha1Nlc3Npb24tPnVwZGF0ZU1lZGlhVXNhZ2VJZkNoYW5nZWQoKTsKICAg
ICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKaW5kZXggYzQ3OTYw
NjNjNzU3MTM3NGNjNWI0NjEyMTZiODBjZjgyZTM5MTZlMC4uZWJiMWVlMzNmOTNlMDNmMjE5ODUx
YmNlZjllYjg3Y2NlNGY3ZmIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1l
ci5jcHAKQEAgLTM0MSw3ICszNDEsNyBAQCB2b2lkIEF1ZGlvRmlsZVJlYWRlcjo6ZGVjb2RlQXVk
aW9Gb3JCdXNDcmVhdGlvbigpCiAgICAgICAgICAgICByZWFkZXIuaGFuZGxlTWVzc2FnZShtZXNz
YWdlKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBHUmVmUHRyPEdzdE1lc3NhZ2U+IHBy
b3RlY3RNZXNzYWdlKG1lc3NhZ2UpOwotICAgICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKHJlYWRlcik7CisgICAgICAgICAgICBXZWFrUHRyIHdlYWtUaGlzIHsgcmVhZGVyIH07
CiAgICAgICAgICAgICByZWFkZXIubV9ydW5Mb29wLmRpc3BhdGNoKFt3ZWFrVGhpcywgcHJvdGVj
dE1lc3NhZ2VdIHsKICAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAg
ICAgICAgIHdlYWtUaGlzLT5oYW5kbGVNZXNzYWdlKHByb3RlY3RNZXNzYWdlLmdldCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1Nv
dXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcAppbmRleCAzZGUyM2Nm
OTc3ZmYwMzJkNDUwODBjNWNjZTAxMWU0NWExMTVjNjk5Li40ZDA2YWE3NzMxM2ZiNzU2YWMwNzU1
Yzg1OWVhYjU3NWEzMWY3NWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJH
U3RyZWFtZXIuY3BwCkBAIC0yMDgsNyArMjA4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVy
R1N0cmVhbWVyOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogbmV3Q2xpZW4K
IAogICAgIEdTVF9ERUJVRygiU2V0dGluZyB1cCBjbGllbnQgJXAgKHByZXZpb3VzOiAlcCkiLCBu
ZXdDbGllbnQsIGNsaWVudCgpKTsKICAgICBib29sIHByZXZpb3VzQ2xpZW50V2FzVmFsaWQgPSAh
IW1fY2xpZW50OwotICAgIG1fY2xpZW50ID0gbWFrZVdlYWtQdHIobmV3Q2xpZW50KTsKKyAgICBt
X2NsaWVudCA9IG5ld0NsaWVudDsKIAogICAgIC8vIFRoZSB2b2x1bWUgZWxlbWVudCBpcyB1c2Vk
IHRvIG11dGUgYXVkaW8gcGxheWJhY2sgdG93YXJkcyB0aGUKICAgICAvLyBhdXRvYXVkaW9zaW5r
LiBUaGlzIGlzIG5lZWRlZCB0byBhdm9pZCBkb3VibGUgcGxheWJhY2sgb2YgYXVkaW8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJi
aXRyYXRvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0
aW5nQXJiaXRyYXRvci5tbQppbmRleCBkZDk0NWVjODA3ZTY3M2QwMWYyN2MxMmEyNTE2NzA5NTg4
MzViODkzLi5mMjIxODY1YzRmMTdiMGJkMWFlZGUzYmFjODQ4ODkwMTk5OTM2MjhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91dGluZ0FyYml0
cmF0b3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJv
dXRpbmdBcmJpdHJhdG9yLm1tCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgU2hhcmVkUm91dGluZ0Fy
Yml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4oY29uc3QgVG9rZW4mIHRv
a2VuCiAgICAgQVNTRVJUKCFpc0luUm91dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4odG9rZW4pKTsK
IAogICAgIGlmIChtX3NldHVwQXJiaXRyYXRpb25PbmdvaW5nKSB7Ci0gICAgICAgIG1fZW5xdWV1
ZWRDYWxsYmFja3MuYXBwZW5kKFt0aGlzLCB3ZWFrVG9rZW4gPSBtYWtlV2Vha1B0cih0b2tlbiks
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChSb3V0aW5nQXJiaXRyYXRpb25FcnJvciBl
cnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCByb3V0ZUNoYW5nZWQpIG11dGFibGUgeworICAgICAg
ICBtX2VucXVldWVkQ2FsbGJhY2tzLmFwcGVuZChbdGhpcywgd2Vha1Rva2VuID0gV2Vha1B0ciB7
IHRva2VuIH0sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChSb3V0aW5nQXJiaXRyYXRp
b25FcnJvciBlcnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCByb3V0ZUNoYW5nZWQpIG11dGFibGUg
ewogICAgICAgICAgICAgaWYgKGVycm9yID09IFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpOb25l
ICYmIHdlYWtUb2tlbikKICAgICAgICAgICAgICAgICBtX3Rva2Vucy5hZGQoKndlYWtUb2tlbik7
CiAKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBTaGFyZWRSb3V0aW5nQXJiaXRyYXRvcjo6YmVnaW5S
b3V0aW5nQXJiaXRyYXRpb25Gb3JUb2tlbihjb25zdCBUb2tlbiYgdG9rZW4KICAgICB9CiAKICAg
ICBtX3NldHVwQXJiaXRyYXRpb25PbmdvaW5nID0gdHJ1ZTsKLSAgICBtX2VucXVldWVkQ2FsbGJh
Y2tzLmFwcGVuZChbdGhpcywgd2Vha1Rva2VuID0gbWFrZVdlYWtQdHIodG9rZW4pLCBjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXSAoUm91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIERl
ZmF1bHRSb3V0ZUNoYW5nZWQgcm91dGVDaGFuZ2VkKSBtdXRhYmxlIHsKKyAgICBtX2VucXVldWVk
Q2FsbGJhY2tzLmFwcGVuZChbdGhpcywgd2Vha1Rva2VuID0gV2Vha1B0ciB7IHRva2VuIH0sIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChSb3V0aW5nQXJiaXRyYXRpb25FcnJvciBlcnJv
ciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCByb3V0ZUNoYW5nZWQpIG11dGFibGUgewogICAgICAgICBp
ZiAoZXJyb3IgPT0gUm91dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUgJiYgd2Vha1Rva2VuKQog
ICAgICAgICAgICAgbV90b2tlbnMuYWRkKCp3ZWFrVG9rZW4pOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKaW5kZXggNzQzYzY1
ZDJiYzMxZTY2NzE1MWM3NmZlMjI4NGJiMGZlZjIwMDg4OS4uZmM3YTMxYTJhMTY5NDcyMTcxMTE2
Nzk2YmU5NDM2YzA2MzFhNTZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcApAQCAtMzk4LDcgKzM5OCw3IEBAIHZvaWQgQ0RN
SW5zdGFuY2VQcm94eTo6dW5yZWZBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYga2V5U3RvcmUp
CiB9CiAKIENETUluc3RhbmNlU2Vzc2lvblByb3h5OjpDRE1JbnN0YW5jZVNlc3Npb25Qcm94eShD
RE1JbnN0YW5jZVByb3h5JiBpbnN0YW5jZSkKLSAgICA6IG1faW5zdGFuY2UobWFrZVdlYWtQdHIo
aW5zdGFuY2UpKQorICAgIDogbV9pbnN0YW5jZShpbnN0YW5jZSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xl
YXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJr
ZXkvQ0RNQ2xlYXJLZXkuY3BwCmluZGV4IGVlNTRiMDJhZDcxNmRlOTk5NmYzZTQwYzhhNWQ5MzVm
NjgzYzdkODEuLmRkMzQ1N2JmZGU4YzkyMTg3N2RkN2I5ODJlOTkyMWZjYzBmZWQyZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NE
TUNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAKQEAgLTQ4NSw3ICs0ODUsNyBAQCB2b2lkIENETUlu
c3RhbmNlU2Vzc2lvbkNsZWFyS2V5Ojp1cGRhdGVMaWNlbnNlKGNvbnN0IFN0cmluZyYgc2Vzc2lv
bklkLCBMaWNlbnNlVAogICAgIGF1dG8gZGlzcGF0Y2hDYWxsYmFjayA9CiAgICAgICAgIFt3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCAmY2FsbGJhY2tdKGJvb2wgc2Vzc2lvbldhc0Nsb3Nl
ZCwgc3RkOjpvcHRpb25hbDxLZXlTdGF0dXNWZWN0b3I+JiYgY2hhbmdlZEtleXMsIFN1Y2Nlc3NW
YWx1ZSBzdWNjZWVkZWQpIHsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoCi0gICAgICAg
ICAgICAgICAgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKndlYWtUaGlzKSwgY2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKSwgc2Vzc2lvbldhc0Nsb3NlZCwgY2hhbmdlZEtleXMgPSBXVEZNb3Zl
KGNoYW5nZWRLZXlzKSwgc3VjY2VlZGVkXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBb
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKndlYWtUaGlzIH0sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayksIHNlc3Npb25XYXNDbG9zZWQsIGNoYW5nZWRLZXlzID0gV1RGTW92ZShjaGFuZ2VkS2V5
cyksIHN1Y2NlZWRlZF0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghd2Vh
a1RoaXMpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTU2OCw3ICs1Njgs
NyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5OjpyZW1vdmVTZXNzaW9uRGF0YShj
b25zdCBTdHJpbmcmIHNlc3Npb25JZCwgTGljZQogICAgIGF1dG8gZGlzcGF0Y2hDYWxsYmFjayA9
CiAgICAgICAgIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCAmY2FsbGJhY2tdKEtleVN0
YXR1c1ZlY3RvciYmIGtleVN0YXR1c1ZlY3Rvciwgc3RkOjpvcHRpb25hbDxSZWY8U2hhcmVkQnVm
ZmVyPj4mJiBtZXNzYWdlLCBTdWNjZXNzVmFsdWUgc3VjY2VzcykgewogICAgICAgICAgICAgY2Fs
bE9uTWFpblRocmVhZCgKLSAgICAgICAgICAgICAgICBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
d2Vha1RoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBrZXlTdGF0dXNWZWN0b3Ig
PSBXVEZNb3ZlKGtleVN0YXR1c1ZlY3RvciksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBz
dWNjZXNzXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqd2Vha1RoaXMgfSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwga2V5U3RhdHVzVmVj
dG9yID0gV1RGTW92ZShrZXlTdGF0dXNWZWN0b3IpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdl
KSwgc3VjY2Vzc10oKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKaW5kZXggYzUyMjdl
NWM3MDQ0MTk3NzhkNWIyOGE2OTExYTA0OWNlNzk0YjRiNi4uMWRlOThhN2ZiZWM5MWVmYTAzNjQ0
OTBiN2JmMzE3NDBiOGE3MzBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja1ByaXZhdGUpOwogICAgIH0K
IAotICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50JiBjbGllbnQpIHsg
bV9jbGllbnQgPSBtYWtlV2Vha1B0cihjbGllbnQpOyB9CisgICAgdm9pZCBzZXRDbGllbnQoQXVk
aW9UcmFja1ByaXZhdGVDbGllbnQmIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAg
IHZvaWQgY2xlYXJDbGllbnQoKSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQogICAgIEF1ZGlvVHJh
Y2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVu
dC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgKaW5kZXggZjdjZmY3ZDVjYzM0Yjg1OTVlZDVl
ZjdhNWExOWMzZTBmYmIwODdjMS4uMTlmYmYxMTQwMDYxNmNjNTZhZGZkODNkM2MyNTJlMWIzNTkx
OGFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0luYmFuZFRleHRUcmFja1ByaXZhdGUuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsKIAogICAgIEluYmFu
ZFRleHRUcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fY2xpZW50LmdldCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldENsaWVudChJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQ2xpZW50JiBjbGllbnQpIHsgbV9jbGllbnQgPSBtYWtlV2Vha1B0cihjbGll
bnQpOyB9CisgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChJbmJhbmRUZXh0VHJhY2tQcml2YXRl
Q2xpZW50JiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICB2b2lkIGNsZWFyQ2xp
ZW50KCkgeyBtX2NsaWVudCA9IG51bGxwdHI7IH0KIAogICAgIGVudW0gY2xhc3MgTW9kZSA6IHVp
bnQ4X3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlk
ZW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVv
VHJhY2tQcml2YXRlLmgKaW5kZXggMDlmY2U4Yjg1ZGRkNDYwOTQxYjQ5ZjcwYTk4NGQ2NGRlZDY4
MDJmNS4uMDU0MGNhYjRmNTc3NDA0MDdkNjk4ZWQ5NTNlOTkyMTdhZWJmMzllZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5o
CkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVmlkZW9UcmFj
a1ByaXZhdGUgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZSB7CiBwdWJsaWM6Ci0gICAgdm9pZCBz
ZXRDbGllbnQoVmlkZW9UcmFja1ByaXZhdGVDbGllbnQmIGNsaWVudCkgeyBtX2NsaWVudCA9IG1h
a2VXZWFrUHRyKGNsaWVudCk7IH0KKyAgICB2b2lkIHNldENsaWVudChWaWRlb1RyYWNrUHJpdmF0
ZUNsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgdm9pZCBjbGVhckNs
aWVudCgpIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CiAgICAgVmlkZW9UcmFja1ByaXZhdGVDbGll
bnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aAppbmRleCAzNzg2YzcxMTU0MzIxZTRlYjllZjdiYTAxMTgwMTlkYTJiNjA5MjcyLi5jOWI0ZjQw
ZWY4NWNiYzg1ZWM1MTA2ODNiODE1ZGJlYjY3ZGY2Zjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC00Miw3ICs0Miw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0
ZUFWRjsKIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY7CiAKLS8vIFVzZSBlYWdlciBp
bml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQdHJGYWN0b3J5IHNpbmNlIHdlIGNhbGwgbWFrZVdl
YWtQdHIoKSBmcm9tIGFub3RoZXIgdGhyZWFkLgorLy8gVXNlIGVhZ2VyIGluaXRpYWxpemF0aW9u
IGZvciB0aGUgV2Vha1B0ckZhY3Rvcnkgc2luY2Ugd2UgY29uc3RydWN0IFdlYWtQdHJzIG9uIGFu
b3RoZXIgdGhyZWFkLgogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbiwgV2Vha1B0
ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+LCBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlLCBwdWJsaWMgQVZGSW5iYW5kVHJhY2tQYXJlbnQKICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKaW5kZXggYTQ2MWNkMTc5Mzc4MzBhNGQ0OWFkZDQw
MThiMWQ4ODZjNDE3NWYwYy4uODhmZjI3NWE0ODJjODM0MDY5MjNjOTQ4OWNlYzhhNzRjNjVjYTkw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaApAQCAt
ODcsNyArODcsNyBAQCBwcml2YXRlOgogfTsKIAogaW5saW5lIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKENsaWVudCYgY2xpZW50KQotICAgIDogbV9j
bGllbnQobWFrZVdlYWtQdHIoY2xpZW50KSkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0KaW5kZXggYTgwYjY5MDM1ODRlMWE3
NWU2ZTQzN2EwMmI4OWNkZTJmOTgzNDU0ZC4uOTQ1YzdkMTYwM2M4NmU3NTdjZGRkZDBjYzUyMjNl
NjRhNzAyMjQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tl
ci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tCkBAIC01OSw3
ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQVZPdXRwdXREZXZpY2VNZW51Q29udHJv
bGxlclRhcmdldFBpY2tlcjo6QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tl
cihBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQmIGNsaWVudCkKICAgICA6IEFWUGxheWJh
Y2tUYXJnZXRQaWNrZXIoY2xpZW50KQotICAgICwgbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
ckRlbGVnYXRlKGFkb3B0TlMoW1tXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVy
IGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOm1ha2VXZWFrUHRyKCp0aGlzKV0pKQorICAgICwgbV9v
dXRwdXREZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlKGFkb3B0TlMoW1tXZWJBVk91dHB1dERl
dmljZU1lbnVDb250cm9sbGVySGVscGVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOip0aGlzXSkp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0FWUGxheWJhY2tUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUGxheWJhY2tUYXJnZXRQaWNr
ZXIuaAppbmRleCAxNjk0N2QyNGFjNjM0NWExMDA5YzJhNmU0MzEyZGMyYTk5NmIwYTI5Li4wN2Zh
ZjJjNzEwODQxMDNhYzNmNDc5MjlhYWU2ZjhlOTUyNGZhZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlBsYXliYWNrVGFy
Z2V0UGlja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQVZQbGF5YmFja1RhcmdldFBpY2tlci5oCkBAIC01MSw3ICs1MSw3IEBAIHB1
YmxpYzoKICAgICB9OwogCiAgICAgZXhwbGljaXQgQVZQbGF5YmFja1RhcmdldFBpY2tlcihDbGll
bnQmIGNsaWVudCkKLSAgICAgICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cigmY2xpZW50KSkKKyAg
ICAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgewogICAgIH0KICAgICB2aXJ0dWFsIH5BVlBs
YXliYWNrVGFyZ2V0UGlja2VyKCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdU
YXJnZXRQaWNrZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5tbQppbmRleCAyOWJlYjBj
NGNjMjBlYjFiODE1YTVjMmFkZWUyMzY2NDk4YTk0ZDE5Li5kYjg4MjUxMWIxYWRlYjYxZjcxOTll
YjkyNTRiODgzMjJlODlhNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5tbQpAQCAtNzIsNyArNzIsNyBAQCBib29s
IEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjppc0F2YWlsYWJsZSgpCiAKIEFWUm91dGVQ
aWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcihBVlBs
YXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQmIGNsaWVudCkKICAgICA6IEFWUGxheWJhY2tUYXJn
ZXRQaWNrZXIoY2xpZW50KQotICAgICwgbV9yb3V0ZVBpY2tlclZpZXdEZWxlZ2F0ZShhZG9wdE5T
KFtbV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6bWFr
ZVdlYWtQdHIoKnRoaXMpXSkpCisgICAgLCBtX3JvdXRlUGlja2VyVmlld0RlbGVnYXRlKGFkb3B0
TlMoW1tXZWJBVlJvdXRlUGlja2VyVmlld0hlbHBlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazoq
dGhpc10pKQogewogICAgIEFTU0VSVChpc0F2YWlsYWJsZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3Rh
bmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakMubW0KaW5kZXggNjk1M2M5ZjFmMWI1ODcxZGE1ZjhkNDY1ZGVlZmRjZWIwOWY1ZTRmYS4u
ZTlmMmFhMzM1ZGI5YWM1ODM5NTE1ZDYyNWEwZGYyZmY0MDczZTk1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW0KQEAgLTQyMCw3ICs0MjAsNyBAQCB2b2lkIENETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDOjpzZXRTdG9yYWdlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgc3Rvcgog
UmVmUHRyPENETUluc3RhbmNlU2Vzc2lvbj4gQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakM6OmNyZWF0ZVNlc3Npb24oKQogewogICAgIGF1dG8gc2Vzc2lvbiA9IGFkb3B0UmVmKCpu
ZXcgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDKCp0aGlzKSk7Ci0g
ICAgbV9zZXNzaW9ucy5hcHBlbmQobWFrZVdlYWtQdHIoc2Vzc2lvbi5nZXQoKSkpOworICAgIG1f
c2Vzc2lvbnMuYXBwZW5kKHNlc3Npb24pOwogICAgIHJldHVybiBzZXNzaW9uOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1t
CmluZGV4IGY3Yzg2NmM2MmNkYjA1YjUzYWVjNzg4ZTMyOTkyNmUwMGQwOWFjYWMuLmRhZGNkZmM1
NTU2ZWY4ODA4OTIyZTk4OTM5MWY3MTg3YzE0OWY2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCkBAIC00NCw3ICs0NCw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpD
RE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDKiBwYXJlbnQsIExlZ2FjeUNETVNlc3Npb25DbGllbnQqIGNsaWVudCkKLSAgICA6IG1fcGFy
ZW50KG1ha2VXZWFrUHRyKCpwYXJlbnQpKQorICAgIDogbV9wYXJlbnQoKnBhcmVudCkKICAgICAs
IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fc2Vzc2lvbklkKGNyZWF0ZUNhbm9uaWNhbFVVSURT
dHJpbmcoKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0KaW5kZXggNjk5YWY5MGJkZTM4YjVhZGYwODU2OTM2MWU4
ZjI5ZjQ1NzIxMmEwOC4uNTI1NDdiNTljMTlmYTg3YmE0MmI2NTM0MjU1NzliNGQzMDYwOWI1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIubW0KQEAgLTY0LDcgKzY0LDcgQEAgLSAoaWQpaW5pdFdpdGhQYXJlbnQ6KExv
Y2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKilwYXJlbnQKICAgICBpZiAoIShzZWxmID0gW3N1
cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9wYXJlbnQgPSBtYWtlV2Vh
a1B0cihwYXJlbnQpOworICAgIF9wYXJlbnQgPSBwYXJlbnQ7CiAKICAgICByZXR1cm4gc2VsZjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDBhNmRmZDA4NDFhMzA1OTA4ZDllYmRiMDJj
MmM4N2FjNzAxMjRjNzAuLmY3NjJlOWNmNzU2MGE1MzQ1ZDAxNGU3NzY1ZThhNjhlZjhlNTkzMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNDUwLDggKzQ1MCw4IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhj
b25zdCBTdHJpbmcmCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24ocGxheWVyKQogICAgICwgbV92aWRlb0xheWVy
TWFuYWdlcihtYWtlVW5pcXVlPFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4obG9nZ2VyKCksIGxvZ0lk
ZW50aWZpZXIoKSkpCi0gICAgLCBtX29iamNPYnNlcnZlcihhZG9wdE5TKFtbV2ViQ29yZUFWRk1v
dmllT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoUGxheWVyOm1ha2VXZWFrUHRyKCp0aGlzKV0pKQot
ICAgICwgbV9sb2FkZXJEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQ29yZUFWRkxvYWRlckRlbGVnYXRl
IGFsbG9jXSBpbml0V2l0aFBsYXllcjptYWtlV2Vha1B0cigqdGhpcyldKSkKKyAgICAsIG1fb2Jq
Y09ic2VydmVyKGFkb3B0TlMoW1tXZWJDb3JlQVZGTW92aWVPYnNlcnZlciBhbGxvY10gaW5pdFdp
dGhQbGF5ZXI6KnRoaXNdKSkKKyAgICAsIG1fbG9hZGVyRGVsZWdhdGUoYWRvcHROUyhbW1dlYkNv
cmVBVkZMb2FkZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhQbGF5ZXI6KnRoaXNdKSkKICAgICAs
IG1fY2FjaGVkSXRlbVN0YXR1cyhNZWRpYVBsYXllckFWUGxheWVySXRlbVN0YXR1c0RvZXNOb3RF
eGlzdCkKIHsKICAgICBtX211dGVkID0gcGxheWVyLT5tdXRlZCgpOwpAQCAtMjQ2OCw3ICsyNDY4
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRl
b091dHB1dCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3ZpZGVvT3V0cHV0RGVs
ZWdhdGUgPSBhZG9wdE5TKFtbV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhQ
bGF5ZXI6bWFrZVdlYWtQdHIoKnRoaXMpXSk7CisgICAgbV92aWRlb091dHB1dERlbGVnYXRlID0g
YWRvcHROUyhbW1dlYkNvcmVBVkZQdWxsRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoUGxheWVyOip0
aGlzXSk7CiAgICAgW21fdmlkZW9PdXRwdXQgc2V0RGVsZWdhdGU6bV92aWRlb091dHB1dERlbGVn
YXRlLmdldCgpIHF1ZXVlOmdsb2JhbFB1bGxEZWxlZ2F0ZVF1ZXVlKCldOwogCiAgICAgW21fYXZQ
bGF5ZXJJdGVtIGFkZE91dHB1dDptX3ZpZGVvT3V0cHV0LmdldCgpXTsKQEAgLTI2NTUsNyArMjY1
NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxMZWdhY3lDRE1TZXNzaW9uPiBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVTZXNzCiAgICAgaWYgKCFrZXlTeXN0ZW1Jc1N1cHBv
cnRlZChrZXlTeXN0ZW0pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIHNlc3Np
b24gPSBtYWtlVW5pcXVlPENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDPih0aGlzLCBjbGllbnQp
OwotICAgIG1fc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKCpzZXNzaW9uKTsKKyAgICBtX3Nlc3Npb24g
PSAqc2Vzc2lvbjsKICAgICByZXR1cm4gV1RGTW92ZShzZXNzaW9uKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCmluZGV4IDU5YjI4MzgyMzAyOTU5NGQxNjM4ODMwYjk2N2I3ZmU3Yjcz
MGI4MDEuLjM2ZjAxM2JhZTdmODJmODBmMWZiNjNkYWEwZDVkNWQyN2JhZGM5ZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEVmZmVjdGl2ZVJh
dGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3AoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSkKIH0KIAogRWZm
ZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcihN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMmIGNsaWVudCwgQ01UaW1lYmFzZVJl
ZiB0aW1lYmFzZSkKLSAgICA6IG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkpCisgICAgOiBt
X2NsaWVudChjbGllbnQpCiB7CiAgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBQQUw6
OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7CiAgICAgUEFMOjpD
TU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0
aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZl
Y3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UsIDApOwpAQCAtMTExMCw3ICsxMTEwLDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldENETVNlc3Npb24oTGVn
YWN5Q0RNU2Vzc2lvbiogc2Vzc2kKIAogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAK
LSAgICBtX3Nlc3Npb24gPSBtYWtlV2Vha1B0cih0b0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akMoc2Vzc2lvbikpOworICAgIG1fc2Vzc2lvbiA9IHRvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZG
T2JqQyhzZXNzaW9uKTsKIAogI2lmIEhBVkUoQVZTVFJFQU1TRVNTSU9OKQogICAgIGlmIChDRE1T
ZXNzaW9uQVZTdHJlYW1TZXNzaW9uKiBjZG1TdHJlYW1TZXNzaW9uID0gdG9DRE1TZXNzaW9uQVZT
dHJlYW1TZXNzaW9uKG1fc2Vzc2lvbi5nZXQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQppbmRleCA3OTYxYjQxMDViNTliMjY5
YWI1NWE4NTU3MmVjMTU5ODVlZThiMzliLi45MjdkMTMwMzExZThlZWM4YjAyMTU2YWM2MzI4MGE5
YmY5ZDA4MDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNl
UHJpdmF0ZUFWRk9iakMubW0KQEAgLTU0LDcgKzU0LDcgQEAgUmVmPE1lZGlhU291cmNlUHJpdmF0
ZUFWRk9iakM+IE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZShNZWRpYVBsYXllclBy
aXYKIH0KIAogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzo6TWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQyhNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMmIHBhcmVudCwgTWVkaWFT
b3VyY2VQcml2YXRlQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3BsYXllcihtYWtlV2Vha1B0cihw
YXJlbnQpKQorICAgIDogbV9wbGF5ZXIocGFyZW50KQogICAgICwgbV9jbGllbnQoY2xpZW50KQog
ICAgICwgbV9pc0VuZGVkKGZhbHNlKQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpp
bmRleCAxMTQ2NzMyNTRiNmMyMjhmNWJmYmI5NWM3MzZhYTQ1MDMyMjA1NThkLi4zYTI4NjdhMWFj
MjQzYmI5YzkzYzlkNmI3MGNhNTZiMDI5NDhmYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtMzA0LDcgKzMwNCw3
IEBAIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OmNyZWF0ZShNZWRpYVNvdXJjZVByCiAKIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDKiBw
YXJlbnQsIFJlZjxTb3VyY2VCdWZmZXJQYXJzZXI+JiYgcGFyc2VyKQogICAgIDogbV9wYXJzZXIo
V1RGTW92ZShwYXJzZXIpKQotICAgICwgbV9lcnJvckxpc3RlbmVyKGFkb3B0TlMoW1tXZWJBVlNh
bXBsZUJ1ZmZlckVycm9yTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50Om1ha2VXZWFrUHRy
KCp0aGlzKV0pKQorICAgICwgbV9lcnJvckxpc3RlbmVyKGFkb3B0TlMoW1tXZWJBVlNhbXBsZUJ1
ZmZlckVycm9yTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50Oip0aGlzXSkpCiAgICAgLCBt
X2FwcGVuZFF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
QyBkYXRhIHBhcnNlciBxdWV1ZSIpKQogICAgICwgbV9tZWRpYVNvdXJjZShwYXJlbnQpCiAgICAg
LCBtX21hcElEKG5leHRNYXBJRCgpKQpAQCAtMzIyLDcgKzMyMiw3IEBAIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRpYVNvdXJjZVByaXZh
dGVBVkZPYmpDCiAgICAgbV9wYXJzZXItPnNldExvZ2dlcihtX2xvZ2dlci5nZXQoKSwgbV9sb2dJ
ZGVudGlmaWVyKTsKICNlbmRpZgogCi0gICAgc291cmNlQnVmZmVyTWFwKCkuYWRkKG1fbWFwSUQs
IG1ha2VXZWFrUHRyKCp0aGlzKSk7CisgICAgc291cmNlQnVmZmVyTWFwKCkuYWRkKG1fbWFwSUQs
ICp0aGlzKTsKIH0KIAogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6On5Tb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQygpCkBAIC04NzYsNyArODc2LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6c2V0Q0RNU2Vzc2lvbihDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKiBz
ZXMKICAgICBpZiAobV9zZXNzaW9uKQogICAgICAgICBtX3Nlc3Npb24tPnJlbW92ZVNvdXJjZUJ1
ZmZlcih0aGlzKTsKIAotICAgIG1fc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Npb24pOworICAg
IG1fc2Vzc2lvbiA9IHNlc3Npb247CiAKICAgICBpZiAobV9zZXNzaW9uKSB7CiAgICAgICAgIG1f
c2Vzc2lvbi0+YWRkU291cmNlQnVmZmVyKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNl
TG9hZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCmluZGV4IDA1Yzg4NDdiMjU1NzMzZDJj
NWRjNTUyMjc4OTIxZGZlYTM1YjA0OGYuLjhlOTAxMGRjODYwNmFhMDA2NmIyZjdiZGZhYTYzYTZj
MzE1YjA4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVz
b3VyY2VMb2FkZXIubW0KQEAgLTE3Myw3ICsxNzMsNyBAQCBXZWFrUHRyPFBsYXRmb3JtUmVzb3Vy
Y2VNZWRpYUxvYWRlcj4gUGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyOjpjcmVhdGUoV2ViQ29y
ZQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvKiByZXNvdXJjZVBvaW50ZXIgPSBy
ZXNvdXJjZS5nZXQoKTsKICAgICBhdXRvIGNsaWVudCA9IGFkb3B0UmVmKCpuZXcgUGxhdGZvcm1S
ZXNvdXJjZU1lZGlhTG9hZGVyIHsgcGFyZW50LCByZXNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpIH0p
OwotICAgIGF1dG8gcmVzdWx0ID0gbWFrZVdlYWtQdHIoY2xpZW50LmdldCgpKTsKKyAgICBXZWFr
UHRyIHJlc3VsdCA9IGNsaWVudDsKIAogICAgIHJlc291cmNlUG9pbnRlci0+c2V0Q2xpZW50KFdU
Rk1vdmUoY2xpZW50KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVj
b2RlckdTdHJlYW1lci5jcHAKaW5kZXggZmIzMWMzZDExNDdiMjUwMTQ2MGY0OWI2N2Q2MGM3NjNi
ZmUwMjBkZC4uOWFkMTliODc2YjI3ZTYwZDRmYmE1MDMwZTY1ZjgxZTdjYThhNTA2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVj
b2RlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHAKQEAgLTMxMyw3ICszMTMsNyBAQCB2
b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6SW5uZXJEZWNvZGVyOjpoYW5kbGVNZXNzYWdlKEdz
dE1lc3NhZ2UqIG1lc3NhZ2UpCiB7CiAgICAgQVNTRVJUKCZtX3J1bkxvb3AgPT0gJlJ1bkxvb3A6
OmN1cnJlbnQoKSk7CiAKLSAgICBhdXRvIHNjb3BlRXhpdCA9IG1ha2VTY29wZUV4aXQoW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0geworICAgIGF1dG8gc2NvcGVFeGl0ID0gbWFr
ZVNjb3BlRXhpdChbcHJvdGVjdGVkVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAg
IGlmICghcHJvdGVjdGVkVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IHByb3RlY3RlZFRoaXMtPm1fbWVzc2FnZUxvY2sgfTsKQEAgLTM4Miw3ICszODIs
NyBAQCB2b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6SW5uZXJEZWNvZGVyOjpwcmVwYXJlUGlw
ZWxpbmUoKQogICAgICAgICAgICAgZGVjb2Rlci5oYW5kbGVNZXNzYWdlKG1lc3NhZ2UpOwogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIEdSZWZQdHI8R3N0TWVzc2FnZT4gcHJvdGVjdGVkTWVz
c2FnZShtZXNzYWdlKTsKLSAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cihk
ZWNvZGVyKTsKKyAgICAgICAgICAgIFdlYWtQdHIgd2Vha1RoaXMgeyBkZWNvZGVyIH07CiAgICAg
ICAgICAgICBkZWNvZGVyLm1fcnVuTG9vcC5kaXNwYXRjaChbd2Vha1RoaXMsIHByb3RlY3RlZE1l
c3NhZ2VdIHsKICAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAgICAg
ICAgIHdlYWtUaGlzLT5oYW5kbGVNZXNzYWdlKHByb3RlY3RlZE1lc3NhZ2UuZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBhOGRl
Njk4YjBmOWYxZDg5YTdhYWY2YTM4ODJlMjE2MDcxZWYzMmExLi45N2M0Y2FhNzBkYTMxODE1ODVm
NWFjYTllYWI4MWNkNWZjNTFhNDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTA2NSw3ICsxMDY1LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mVHJhY2soKQogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgYXV0byB0cmFjayA9IFRyYWNrUHJpdmF0ZVR5cGU6OmNyZWF0
ZShtYWtlV2Vha1B0cigqdGhpcyksIGksIFdURk1vdmUocGFkKSk7CisgICAgICAgIGF1dG8gdHJh
Y2sgPSBUcmFja1ByaXZhdGVUeXBlOjpjcmVhdGUoKnRoaXMsIGksIFdURk1vdmUocGFkKSk7CiAg
ICAgICAgIGlmICghdHJhY2stPnRyYWNrSW5kZXgoKSAmJiAodHlwZSA9PSBUcmFja1R5cGU6OkF1
ZGlvIHx8IHR5cGUgPT0gVHJhY2tUeXBlOjpWaWRlbykpCiAgICAgICAgICAgICB0cmFjay0+c2V0
QWN0aXZlKHRydWUpOwogICAgICAgICBBU1NFUlQoc3RyZWFtSWQgPT0gdHJhY2stPmlkKCkpOwpA
QCAtMTQ0OCw3ICsxNDQ4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVw
ZGF0ZVRyYWNrcyhjb25zdCBHUmVmUHRyPEdzdFN0cmVhbUNvbGxlY3Rpb24KICAgICB1bnNpZ25l
ZCB0ZXh0VHJhY2tJbmRleCA9IDA7CiAKICNkZWZpbmUgQ1JFQVRFX1RSQUNLKHR5cGUsIFR5cGUp
IEdfU1RNVF9TVEFSVCB7ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBSZWZQdHI8VHlw
ZSMjVHJhY2tQcml2YXRlR1N0cmVhbWVyPiB0cmFjayA9IFR5cGUjI1RyYWNrUHJpdmF0ZUdTdHJl
YW1lcjo6Y3JlYXRlKG1ha2VXZWFrUHRyKCp0aGlzKSwgdHlwZSMjVHJhY2tJbmRleCwgV1RGTW92
ZShzdHJlYW0pKTsgXAorICAgICAgICBSZWZQdHI8VHlwZSMjVHJhY2tQcml2YXRlR1N0cmVhbWVy
PiB0cmFjayA9IFR5cGUjI1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKCp0aGlzLCB0eXBl
IyNUcmFja0luZGV4LCBXVEZNb3ZlKHN0cmVhbSkpOyBcCiAgICAgICAgIGF1dG8gdHJhY2tJZCA9
IHRyYWNrLT5pZCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAg
aWYgKCF0eXBlIyNUcmFja0luZGV4KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogICAgICAgICAgICAgbV93YW50ZWQjI1R5cGUjI1N0cmVhbUlkID0gdHJhY2tJZDsgICAg
ICAgICAgICAgICAgICAgICBcCkBAIC0xNTI4LDcgKzE1MjgsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlU3RyZWFtQ29sbGVjdGlvbk1lc3NhZ2UoR3N0TWVzc2Fn
ZSogbWVzcwogICAgIH0KICNlbmRpZgogCi0gICAgYXV0byBjYWxsYmFjayA9IFtwbGF5ZXIgPSBt
YWtlV2Vha1B0cigqdGhpcyksIGNvbGxlY3Rpb24gPSBXVEZNb3ZlKGNvbGxlY3Rpb24pXSB7Cisg
ICAgYXV0byBjYWxsYmFjayA9IFtwbGF5ZXIgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY29sbGVjdGlv
biA9IFdURk1vdmUoY29sbGVjdGlvbildIHsKICAgICAgICAgaWYgKHBsYXllcikKICAgICAgICAg
ICAgIHBsYXllci0+dXBkYXRlVHJhY2tzKGNvbGxlY3Rpb24pOwogICAgIH07CkBAIC0yNzI4LDcg
KzI3MjgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxh
eUJpbihjb25zdCBVUkwmIHVybCkKICAgICBBU1NFUlQodGV4dENvbWJpbmVyKTsKICAgICBnX29i
amVjdF9zZXQobV9waXBlbGluZS5nZXQoKSwgInRleHQtc3RyZWFtLWNvbWJpbmVyIiwgdGV4dENv
bWJpbmVyLCBudWxscHRyKTsKIAotICAgIG1fdGV4dFNpbmsgPSB3ZWJraXRUZXh0U2lua05ldyht
YWtlV2Vha1B0cigqdGhpcykpOworICAgIG1fdGV4dFNpbmsgPSB3ZWJraXRUZXh0U2lua05ldygq
dGhpcyk7CiAgICAgQVNTRVJUKG1fdGV4dFNpbmspOwogCiAgICAgZ19vYmplY3Rfc2V0KG1fcGlw
ZWxpbmUuZ2V0KCksICJ0ZXh0LXNpbmsiLCBtX3RleHRTaW5rLmdldCgpLCBudWxscHRyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCAzNDJlOTIx
NTNjZWQyY2FjYTAxMDM0MGExY2Y5N2U2MGI5NjU2YmNkLi5jNGIzYTExZDdkZDFiMGIxZTNmZDNk
OGE2OWMwMGUzMzU4OTU0ZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5oCkBAIC0xMDcsNyArMTA3LDcgQEAgY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVH
U3RyZWFtZXI7CiAKIHZvaWQgcmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cygpOwogCi0v
LyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9yIHRoZSBXZWFrUHRyRmFjdG9yeSBzaW5jZSB3
ZSBjYWxsIG1ha2VXZWFrUHRyKCkgZnJvbSBhbm90aGVyIHRocmVhZC4KKy8vIFVzZSBlYWdlciBp
bml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQdHJGYWN0b3J5IHNpbmNlIHdlIGNvbnN0cnVjdCBX
ZWFrUHRycyBvbiBhbm90aGVyIHRocmVhZC4KIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKICAgICAsIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIsIFdlYWtQdHJGYWN0b3J5
SW5pdGlhbGl6YXRpb246OkVhZ2VyPgogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1U
aHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9l
bWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggOWU4NzU0MTg0OGFkZTY3NzQzYzEwOGQ5ZjAwYzA1NWQ0
MTBiNzBhYS4uODQxZDhiOTQ0NDk5MWQxNmIxMjk2ZmQ2ZDU2MTBjOGE4OGRlMDE4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1U
aHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0yODgsNyArMjg4LDcgQEAgQ0RNSW5zdGFuY2VTZXNz
aW9uVGh1bmRlcjo6Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcihDRE1JbnN0YW5jZVRodW5kZXIm
IGluc3RhbmMKICAgICAgICAgY29uc3QgdWludDE2X3QgY2hhbGxlbmdlTGVuZ3RoKSB7CiAgICAg
ICAgIEdTVF9ERUJVRygiR290ICdjaGFsbGVuZ2UnIE9DRE0gbm90aWZpY2F0aW9uIHdpdGggbGVu
Z3RoICVodSIsIGNoYWxsZW5nZUxlbmd0aCk7CiAgICAgICAgIEFTU0VSVChjaGFsbGVuZ2VMZW5n
dGggPiAwKTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbc2Vzc2lvbiA9IG1ha2VXZWFrUHRy
KHN0YXRpY19jYXN0PENETUluc3RhbmNlU2Vzc2lvblRodW5kZXIqPih1c2VyRGF0YSkpLCBidWZm
ZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShjaGFsbGVuZ2UsCisgICAgICAgIGNh
bGxPbk1haW5UaHJlYWQoW3Nlc3Npb24gPSBXZWFrUHRyIHsgc3RhdGljX2Nhc3Q8Q0RNSW5zdGFu
Y2VTZXNzaW9uVGh1bmRlcio+KHVzZXJEYXRhKSB9LCBidWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRC
dWZmZXI6OmNyZWF0ZShjaGFsbGVuZ2UsCiAgICAgICAgICAgICBjaGFsbGVuZ2VMZW5ndGgpXSgp
IG11dGFibGUgewogICAgICAgICAgICAgaWYgKCFzZXNzaW9uKQogICAgICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTI5OSw3ICsyOTksNyBAQCBDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpDRE1J
bnN0YW5jZVNlc3Npb25UaHVuZGVyKENETUluc3RhbmNlVGh1bmRlciYgaW5zdGFuYwogICAgICAg
ICBHU1RfREVCVUcoIkdvdCAna2V5IHVwZGF0ZWQnIE9DRE0gbm90aWZpY2F0aW9uIik7CiAgICAg
ICAgIEtleUlEVHlwZSBrZXlJRDsKICAgICAgICAga2V5SUQuYXBwZW5kKGtleUlERGF0YSwga2V5
SURMZW5ndGgpOwotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtzZXNzaW9uID0gbWFrZVdlYWtQ
dHIoc3RhdGljX2Nhc3Q8Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcio+KHVzZXJEYXRhKSksIGtl
eUlEID0gV1RGTW92ZShrZXlJRCldKCkgbXV0YWJsZSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3Nlc3Npb24gPSBXZWFrUHRyIHsgc3RhdGljX2Nhc3Q8Q0RNSW5zdGFuY2VTZXNzaW9uVGh1
bmRlcio+KHVzZXJEYXRhKSB9LCBrZXlJRCA9IFdURk1vdmUoa2V5SUQpXSgpIG11dGFibGUgewog
ICAgICAgICAgICAgaWYgKCFzZXNzaW9uKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIHNlc3Npb24tPmtleVVwZGF0ZWRDYWxsYmFjayhXVEZNb3ZlKGtleUlEKSk7CkBAIC0z
MDcsNyArMzA3LDcgQEAgQ0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6Q0RNSW5zdGFuY2VTZXNz
aW9uVGh1bmRlcihDRE1JbnN0YW5jZVRodW5kZXImIGluc3RhbmMKICAgICB9OwogICAgIG1fdGh1
bmRlclNlc3Npb25DYWxsYmFja3Mua2V5c191cGRhdGVkX2NhbGxiYWNrID0gW10oY29uc3QgT3Bl
bkNETVNlc3Npb24qLCB2b2lkKiB1c2VyRGF0YSkgewogICAgICAgICBHU1RfREVCVUcoIkdvdCAn
YWxsIGtleXMgdXBkYXRlZCcgT0NETSBub3RpZmljYXRpb24iKTsKLSAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PENETUluc3RhbmNlU2Vz
c2lvblRodW5kZXIqPih1c2VyRGF0YSkpXSgpIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
c2Vzc2lvbiA9IFdlYWtQdHIgeyBzdGF0aWNfY2FzdDxDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVy
Kj4odXNlckRhdGEpIH1dKCkgewogICAgICAgICAgICAgaWYgKCFzZXNzaW9uKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHNlc3Npb24tPmtleXNVcGRhdGVEb25lQ2FsbGJh
Y2soKTsKQEAgLTMxNSw3ICszMTUsNyBAQCBDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpDRE1J
bnN0YW5jZVNlc3Npb25UaHVuZGVyKENETUluc3RhbmNlVGh1bmRlciYgaW5zdGFuYwogICAgIH07
CiAgICAgbV90aHVuZGVyU2Vzc2lvbkNhbGxiYWNrcy5lcnJvcl9tZXNzYWdlX2NhbGxiYWNrID0g
W10oT3BlbkNETVNlc3Npb24qLCB2b2lkKiB1c2VyRGF0YSwgY29uc3QgY2hhciBtZXNzYWdlW10p
IHsKICAgICAgICAgR1NUX0VSUk9SKCJHb3QgJ2Vycm9yJyBPQ0RNIG5vdGlmaWNhdGlvbjogJXMi
LCBtZXNzYWdlKTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbc2Vzc2lvbiA9IG1ha2VXZWFr
UHRyKHN0YXRpY19jYXN0PENETUluc3RhbmNlU2Vzc2lvblRodW5kZXIqPih1c2VyRGF0YSkpLCBi
dWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShtZXNzYWdlLAorICAgICAgICBj
YWxsT25NYWluVGhyZWFkKFtzZXNzaW9uID0gV2Vha1B0ciB7IHN0YXRpY19jYXN0PENETUluc3Rh
bmNlU2Vzc2lvblRodW5kZXIqPih1c2VyRGF0YSkgfSwgYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVk
QnVmZmVyOjpjcmVhdGUobWVzc2FnZSwKICAgICAgICAgICAgIHN0cmxlbihtZXNzYWdlKSldKCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXNlc3Npb24pCiAgICAgICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKaW5kZXggMzYxYTc3MWU5YzcwOGQ0OWNi
ZWEzOTUyOGNmNDI0MjAyMjg0N2UxOS4uYzg0ZmRmMDkwZGRkNjk0ZGJhNTUyYTU3NTg5NTYxYzA2
ZjJmZGJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktp
dENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCkBAIC00MzIsNyArNDMyLDcg
QEAgYm9vbCB3ZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0SXNGbHVzaGluZyhXZWJL
aXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWMKIFdlYWtQdHI8V2ViQ29yZTo6Q0RNUHJveHlEZWNy
eXB0aW9uQ2xpZW50PiB3ZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0R2V0Q0RNUHJv
eHlEZWNyeXB0aW9uQ2xpZW50KFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHQqIHNl
bGYpCiB7CiAgICAgV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdFByaXZhdGUqIHBy
aXYgPSBXRUJLSVRfTUVESUFfQ0VOQ19ERUNSWVBUX0dFVF9QUklWQVRFKHNlbGYpOwotICAgIHJl
dHVybiBtYWtlV2Vha1B0cigqcHJpdi0+Y2RtUHJveHlEZWNyeXB0aW9uQ2xpZW50SW1wbGVtZW50
YXRpb24pOworICAgIHJldHVybiAqcHJpdi0+Y2RtUHJveHlEZWNyeXB0aW9uQ2xpZW50SW1wbGVt
ZW50YXRpb247CiB9CiAKIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiBjaGFuZ2VTdGF0ZShH
c3RFbGVtZW50KiBlbGVtZW50LCBHc3RTdGF0ZUNoYW5nZSB0cmFuc2l0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCA1Yjg5NjQxNGMzYWVkMzMxYmU5ZTA1MmQ4ZDAx
MDNlMDBiNTg1YmJhLi5kM2I3ZTE4MjI1ZWY3ODJjNWZlZGMxYjE1NmM0MjcxMzEzMjkwOGM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtNzg4LDEzICs3ODgsMTMgQEAg
UmVmPFdlYkNvcmU6OlRyYWNrUHJpdmF0ZUJhc2U+IEFwcGVuZFBpcGVsaW5lOjptYWtlV2ViS2l0
VHJhY2soaW50IHRyYWNrSW5kZXgpCiAgICAgR1JlZlB0cjxHc3RQYWQ+IHBhZChhcHBlbmRQaXBl
bGluZVRyYWNrLmFwcHNpbmtQYWQpOwogICAgIHN3aXRjaCAoYXBwZW5kUGlwZWxpbmVUcmFjay5z
dHJlYW1UeXBlKSB7CiAgICAgY2FzZSBTdHJlYW1UeXBlOjpBdWRpbzogewotICAgICAgICBhdXRv
IHNwZWNpZmljVHJhY2sgPSBBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1ha2VX
ZWFrUHRyKG1fcGxheWVyUHJpdmF0ZSksIHRyYWNrSW5kZXgsIFdURk1vdmUocGFkKSwgZmFsc2Up
OworICAgICAgICBhdXRvIHNwZWNpZmljVHJhY2sgPSBBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
cjo6Y3JlYXRlKG1fcGxheWVyUHJpdmF0ZSwgdHJhY2tJbmRleCwgV1RGTW92ZShwYWQpLCBmYWxz
ZSk7CiAgICAgICAgIGdzdHJlYW1lclRyYWNrID0gc3BlY2lmaWNUcmFjay5wdHIoKTsKICAgICAg
ICAgdHJhY2sgPSBzdGF0aWNfY2FzdDxUcmFja1ByaXZhdGVCYXNlKj4oc3BlY2lmaWNUcmFjay5w
dHIoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFN0cmVhbVR5cGU6OlZpZGVv
OiB7Ci0gICAgICAgIGF1dG8gc3BlY2lmaWNUcmFjayA9IFZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjpjcmVhdGUobWFrZVdlYWtQdHIobV9wbGF5ZXJQcml2YXRlKSwgdHJhY2tJbmRleCwgV1RG
TW92ZShwYWQpLCBmYWxzZSk7CisgICAgICAgIGF1dG8gc3BlY2lmaWNUcmFjayA9IFZpZGVvVHJh
Y2tQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUobV9wbGF5ZXJQcml2YXRlLCB0cmFja0luZGV4LCBX
VEZNb3ZlKHBhZCksIGZhbHNlKTsKICAgICAgICAgZ3N0cmVhbWVyVHJhY2sgPSBzcGVjaWZpY1Ry
YWNrLnB0cigpOwogICAgICAgICB0cmFjayA9IHN0YXRpY19jYXN0PFRyYWNrUHJpdmF0ZUJhc2Uq
PihzcGVjaWZpY1RyYWNrLnB0cigpKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
TGF5ZXIuY3BwCmluZGV4IGIwMGIxYzhlYmU0ZmVhOTE1ZGI5NzVhOGE4ZmVmZDc3ZWQ2YjlkYmEu
LjE3NjhkYjRjNDYzZTQyYzFjNmJhMGE0YjFhMTU2NzJhM2MwN2JiYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTGF5ZXIuY3BwCkBAIC01NTgsOCArNTU4LDggQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5
ZXI6OnJlbW92ZUFsbENoaWxkcmVuKCkKIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpzZXRNYXNr
TGF5ZXIoVGV4dHVyZU1hcHBlckxheWVyKiBtYXNrTGF5ZXIpCiB7CiAgICAgaWYgKG1hc2tMYXll
cikgewotICAgICAgICBtYXNrTGF5ZXItPm1fZWZmZWN0VGFyZ2V0ID0gbWFrZVdlYWtQdHIoKnRo
aXMpOwotICAgICAgICBtX3N0YXRlLm1hc2tMYXllciA9IG1ha2VXZWFrUHRyKCptYXNrTGF5ZXIp
OworICAgICAgICBtYXNrTGF5ZXItPm1fZWZmZWN0VGFyZ2V0ID0gKnRoaXM7CisgICAgICAgIG1f
c3RhdGUubWFza0xheWVyID0gKm1hc2tMYXllcjsKICAgICB9IGVsc2UKICAgICAgICAgbV9zdGF0
ZS5tYXNrTGF5ZXIgPSBudWxscHRyOwogfQpAQCAtNTY4LDggKzU2OCw4IEBAIHZvaWQgVGV4dHVy
ZU1hcHBlckxheWVyOjpzZXRSZXBsaWNhTGF5ZXIoVGV4dHVyZU1hcHBlckxheWVyKiByZXBsaWNh
TGF5ZXIpCiB7CiAgICAgaWYgKHJlcGxpY2FMYXllcikgewogICAgICAgICByZXBsaWNhTGF5ZXIt
Pm1faXNSZXBsaWNhID0gdHJ1ZTsKLSAgICAgICAgcmVwbGljYUxheWVyLT5tX2VmZmVjdFRhcmdl
dCA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKLSAgICAgICAgbV9zdGF0ZS5yZXBsaWNhTGF5ZXIgPSBt
YWtlV2Vha1B0cigqcmVwbGljYUxheWVyKTsKKyAgICAgICAgcmVwbGljYUxheWVyLT5tX2VmZmVj
dFRhcmdldCA9ICp0aGlzOworICAgICAgICBtX3N0YXRlLnJlcGxpY2FMYXllciA9ICpyZXBsaWNh
TGF5ZXI7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fc3RhdGUucmVwbGljYUxheWVyID0gbnVsbHB0
cjsKIH0KQEAgLTU3OCw4ICs1NzgsOCBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0QmFj
a2Ryb3BMYXllcihUZXh0dXJlTWFwcGVyTGF5ZXIqIGJhY2tkcm9wTGF5ZXIpCiB7CiAgICAgaWYg
KGJhY2tkcm9wTGF5ZXIpIHsKICAgICAgICAgYmFja2Ryb3BMYXllci0+bV9pc0JhY2tkcm9wID0g
dHJ1ZTsKLSAgICAgICAgYmFja2Ryb3BMYXllci0+bV9lZmZlY3RUYXJnZXQgPSBtYWtlV2Vha1B0
cigqdGhpcyk7Ci0gICAgICAgIG1fc3RhdGUuYmFja2Ryb3BMYXllciA9IG1ha2VXZWFrUHRyKCpi
YWNrZHJvcExheWVyKTsKKyAgICAgICAgYmFja2Ryb3BMYXllci0+bV9lZmZlY3RUYXJnZXQgPSAq
dGhpczsKKyAgICAgICAgbV9zdGF0ZS5iYWNrZHJvcExheWVyID0gKmJhY2tkcm9wTGF5ZXI7CiAg
ICAgfSBlbHNlCiAgICAgICAgIG1fc3RhdGUuYmFja2Ryb3BMYXllciA9IG51bGxwdHI7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCmluZGV4IDVk
MTM0YzA5YzRmYzlmM2I3YjhmMTRhMmU2MmU2NmY2Yzk3MmRhYjQuLjNiYTkzYTAzYWJiYTYyMGMz
ZmJiZTU3N2RhNTkzZDY4OGZlNWU0NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb24uY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBjb25zdCBkb3Vi
bGUgdGVuTWVnYWhlcnR6ID0gMTAwMDAwMDA7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uKE1lZGlhUGxheWVyKiBwbGF5ZXIpIAotICAgIDogbV93ZWFrVGhpcyhtYWtlV2Vha1B0
cih0aGlzKSkKKyAgICA6IG1fd2Vha1RoaXModGhpcykKICAgICAsIG1fcGxheWVyKHBsYXllcikK
ICAgICAsIG1fdmlzaWJsZShmYWxzZSkKICAgICAsIG1fbG9hZGluZ1Byb2dyZXNzKGZhbHNlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ByZXZpZXdDb252ZXJ0ZXJJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUHJldmlld0NvbnZlcnRlcklPUy5t
bQppbmRleCAyZmNkMGZjYjM4OWEwMGIyZjRiYWVhZTYzZjkyZThmZTM0N2U2OWJjLi41NDQ2NTNj
NDQwM2QyNjA0MGE1NWQyM2U5MzY5MWJmZWRjYzkyYjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUHJldmlld0NvbnZlcnRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUHJldmlld0NvbnZlcnRlcklPUy5tbQpAQCAtNTAsNyArNTAsNyBA
QCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhEZWxlZ2F0ZTooV2ViQ29yZTo6UHJldmlld1BsYXRm
b3JtRGVsZWdhdGUmKWRlbGVnYXRlCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAg
ICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfZGVsZWdhdGUgPSBtYWtlV2Vha1B0cihkZWxlZ2F0
ZSk7CisgICAgX2RlbGVnYXRlID0gZGVsZWdhdGU7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKQEAg
LTg0LDcgKzg0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUHJldmlld0NvbnZlcnRlcjo6UHJl
dmlld0NvbnZlcnRlcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUHJldmlld0Nv
bnZlcnRlclByb3ZpZGVyJiBwcm92aWRlcikKICAgICA6IG1fcHJldmlld0RhdGEgeyBTaGFyZWRC
dWZmZXI6OmNyZWF0ZSgpIH0KICAgICAsIG1fb3JpZ2luYWxSZXNwb25zZSB7IHJlc3BvbnNlIH0K
LSAgICAsIG1fcHJvdmlkZXIgeyBtYWtlV2Vha1B0cihwcm92aWRlcikgfQorICAgICwgbV9wcm92
aWRlciB7IHByb3ZpZGVyIH0KICAgICAsIG1fcGxhdGZvcm1EZWxlZ2F0ZSB7IGFkb3B0TlMoW1tX
ZWJQcmV2aWV3Q29udmVydGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoRGVsZWdhdGU6KnRoaXNd
KSB9CiAgICAgLCBtX3BsYXRmb3JtQ29udmVydGVyIHsgYWRvcHROUyhbUEFMOjphbGxvY1FMUHJl
dmlld0NvbnZlcnRlckluc3RhbmNlKCkgaW5pdFdpdGhDb25uZWN0aW9uOm5pbCBkZWxlZ2F0ZTpt
X3BsYXRmb3JtRGVsZWdhdGUuZ2V0KCkgcmVzcG9uc2U6bV9vcmlnaW5hbFJlc3BvbnNlLm5zVVJM
UmVzcG9uc2UoKSBvcHRpb25zOm5pbF0pIH0KIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRl
eCBhYTUyMTdmOGEzYWQ0MjM4ZWI3MzdkMzdhMTFmYjE3MWRkZTk1NzYwLi4wMmVjZjgwM2M3ZTM5
NWNlNGQxN2M1Y2NkNjRjOTJiZTJmOWEyYjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBA
IC0xMTEsNyArMTExLDcgQEAgLSAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQqKWZ1bGxz
Y3JlZW5JbnRlcmZhY2UKIC0gKHZvaWQpc2V0RnVsbHNjcmVlbkludGVyZmFjZTooVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQqKWZ1bGxzY3JlZW5JbnRlcmZhY2UKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwotICAgIF9mdWxsc2NyZWVuSW50ZXJmYWNlID0gbWFrZVdlYWtQdHIo
KmZ1bGxzY3JlZW5JbnRlcmZhY2UpOworICAgIF9mdWxsc2NyZWVuSW50ZXJmYWNlID0gKmZ1bGxz
Y3JlZW5JbnRlcmZhY2U7CiB9CiAKIC0gKHZvaWQpcGxheWVyVmlld0NvbnRyb2xsZXJXaWxsU3Rh
cnRQaWN0dXJlSW5QaWN0dXJlOihBVlBsYXllclZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0Nv
bnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlci5tbQppbmRleCA1NzY5ZTlhNTNmNDJmY2EyZDRiMTgxMDQ0NmQyZjgwZjU2NGZm
NzU2Li5kYjBhODI0ZjNiNGJmZmQ4NzRkM2IzMDA3MmFhNDAyYjcyZThjMjkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCkBA
IC0yMTksNyArMjE5LDcgQEAgLSAodm9pZClzZW5kQWNjZWxlcm9tZXRlckRhdGE6KENNQWNjZWxl
cm9tZXRlckRhdGEgKiluZXdBY2NlbGVyYXRpb24KICAgICAgICAgVmVjdG9yPFdlYWtQdHI8V2Vi
Q29yZTo6TW90aW9uTWFuYWdlckNsaWVudD4+IG1vdGlvbkNsaWVudHM7CiAgICAgICAgIG1vdGlv
bkNsaWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtX2RldmljZU1vdGlvbkNsaWVudHMuY29t
cHV0ZVNpemUoKSk7CiAgICAgICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9kZXZpY2VNb3Rpb25D
bGllbnRzKQotICAgICAgICAgICAgbW90aW9uQ2xpZW50cy51bmNoZWNrZWRBcHBlbmQobWFrZVdl
YWtQdHIoJmNsaWVudCkpOworICAgICAgICAgICAgbW90aW9uQ2xpZW50cy51bmNoZWNrZWRBcHBl
bmQoY2xpZW50KTsKIAogICAgICAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1vdGlvbkNsaWVudHMp
IHsKICAgICAgICAgICAgIGlmIChjbGllbnQpCkBAIC0yNDQsNyArMjQ0LDcgQEAgLSAodm9pZClz
ZW5kTW90aW9uRGF0YTooQ01EZXZpY2VNb3Rpb24gKiluZXdNb3Rpb24gd2l0aEhlYWRpbmc6KENM
SGVhZGluZyAqKW5ld0gKICAgICAgICAgVmVjdG9yPFdlYWtQdHI8V2ViQ29yZTo6TW90aW9uTWFu
YWdlckNsaWVudD4+IG1vdGlvbkNsaWVudHM7CiAgICAgICAgIG1vdGlvbkNsaWVudHMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShtX2RldmljZU1vdGlvbkNsaWVudHMuY29tcHV0ZVNpemUoKSk7CiAg
ICAgICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9kZXZpY2VNb3Rpb25DbGllbnRzKQotICAgICAg
ICAgICAgbW90aW9uQ2xpZW50cy51bmNoZWNrZWRBcHBlbmQobWFrZVdlYWtQdHIoJmNsaWVudCkp
OworICAgICAgICAgICAgbW90aW9uQ2xpZW50cy51bmNoZWNrZWRBcHBlbmQoY2xpZW50KTsKICAg
ICAgICAgCiAgICAgICAgIGZvciAoYXV0byYgY2xpZW50IDogbW90aW9uQ2xpZW50cykgewogICAg
ICAgICAgICAgaWYgKGNsaWVudCkKQEAgLTI1Niw3ICsyNTYsNyBAQCAtICh2b2lkKXNlbmRNb3Rp
b25EYXRhOihDTURldmljZU1vdGlvbiAqKW5ld01vdGlvbiB3aXRoSGVhZGluZzooQ0xIZWFkaW5n
ICopbmV3SAogICAgICAgICBWZWN0b3I8V2Vha1B0cjxXZWJDb3JlOjpNb3Rpb25NYW5hZ2VyQ2xp
ZW50Pj4gb3JpZW50YXRpb25DbGllbnRzOwogICAgICAgICBvcmllbnRhdGlvbkNsaWVudHMucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5jb21wdXRlU2l6
ZSgpKTsKICAgICAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2RldmljZU9yaWVudGF0aW9uQ2xp
ZW50cykKLSAgICAgICAgICAgIG9yaWVudGF0aW9uQ2xpZW50cy51bmNoZWNrZWRBcHBlbmQobWFr
ZVdlYWtQdHIoJmNsaWVudCkpOworICAgICAgICAgICAgb3JpZW50YXRpb25DbGllbnRzLnVuY2hl
Y2tlZEFwcGVuZChjbGllbnQpOwogICAgICAgICAKICAgICAgICAgLy8gQ29tcG9zZSB0aGUgcmF3
IG1vdGlvbiBkYXRhIHRvIGFuIGludGVybWVkaWF0ZSBaWFktYmFzZWQgM3gzIHJvdGF0aW9uCiAg
ICAgICAgIC8vIG1hdHJpeCAoUikgd2hlcmUgW3o9YXR0aXR1ZGUueWF3LCB4PWF0dGl0dWRlLnBp
dGNoLCB5PWF0dGl0dWRlLnJvbGxdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbQppbmRleCAxYTVhNDIxYzRlNzlmZjhiOWVhOTg5
YjE2MTkyODQ5MWYxZWJhMjBhLi4zZjA2OTQwNDYwMjk0ZGNmZThhODMwMjhkMWZkN2Q0NjZkYTg1
Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9y
SGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0
b3JIaWdobGlnaHQubW0KQEAgLTYyLDggKzYyLDggQEAgUmVmPERhdGFEZXRlY3RvckhpZ2hsaWdo
dD4gRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpjcmVhdGVGb3JJbWFnZU92ZXJsYXkoUGFnZSYgcGEK
IH0KIAogRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpEYXRhRGV0ZWN0b3JIaWdobGlnaHQoUGFnZSYg
cGFnZSwgRGF0YURldGVjdG9ySGlnaGxpZ2h0Q2xpZW50JiBjbGllbnQsIFR5cGUgdHlwZSwgUmV0
YWluUHRyPERESGlnaGxpZ2h0UmVmPiYmIGRkSGlnaGxpZ2h0LCBTaW1wbGVSYW5nZSYmIHJhbmdl
KQotICAgIDogbV9jbGllbnQobWFrZVdlYWtQdHIoY2xpZW50KSkKLSAgICAsIG1fcGFnZShtYWtl
V2Vha1B0cihwYWdlKSkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fcGFnZShwYWdl
KQogICAgICwgbV9yYW5nZShXVEZNb3ZlKHJhbmdlKSkKICAgICAsIG1fZ3JhcGhpY3NMYXllcihH
cmFwaGljc0xheWVyOjpjcmVhdGUocGFnZS5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVy
RmFjdG9yeSgpLCAqdGhpcykpCiAgICAgLCBtX3R5cGUodHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1t
CmluZGV4IDBiYTJjOTIyOWFkOWE0NGI5ZTBlMDU5NTY5NDg5MDUwYWJlOTNjNWMuLjAyNGQwZjY2
ZjVjZTg4MmYyMDE0NzI3ZDEwZjU0M2JmY2Y0OTUxMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbQpA
QCAtNTIsNyArNTIsNyBAQCBSZWY8UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjPiBQbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2VNYWM6OmNyZWF0ZShQbGF5YmFja1NlcwogfQogCiBQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VNYWM6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYyhQbGF5YmFja1Nl
c3Npb25Nb2RlbCYgbW9kZWwpCi0gICAgOiBtX3BsYXliYWNrU2Vzc2lvbk1vZGVsKG1ha2VXZWFr
UHRyKG1vZGVsKSkKKyAgICA6IG1fcGxheWJhY2tTZXNzaW9uTW9kZWwobW9kZWwpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjLm1tCmluZGV4IDI0NzVjMzViOGYzNGE4MTY1N2E4ZTE5MDBjNDgxOTI5
MzZmYmEwYjYuLjZkNjBiMzE3MTI3ODNiMjU0NjliZjkxOGJmNThhZTNlZDkwNDQ2YjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbQpAQCAtMzk1LDE0ICszOTUsMTQgQEAgdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWM6OnNldFZpZGVvRnVsbHNjcmVlbk1vZGVsKFZpZGVvRnVsbHNjcmVlbk1v
ZGVsKgogewogICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQogICAgICAgICBtX3ZpZGVv
RnVsbHNjcmVlbk1vZGVsLT5yZW1vdmVDbGllbnQoKnRoaXMpOwotICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuTW9kZWwgPSBtYWtlV2Vha1B0cihtb2RlbCk7CisgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2Rl
bCA9IG1vZGVsOwogICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQogICAgICAgICBtX3Zp
ZGVvRnVsbHNjcmVlbk1vZGVsLT5hZGRDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU1hYzo6c2V0VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIoVmlk
ZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogewotICAgIG1fZnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyID0gbWFrZVdlYWtQdHIob2JzZXJ2ZXIpOworICAgIG1fZnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyID0gb2JzZXJ2ZXI7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlTWFjOjpzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSBtb2RlLCBib29sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tCmluZGV4IDk1ZGFjNDE2Nzg3ZmFmMzcyNDZlNDlhNzU2MWM2ZDgy
YjA2MjA1ZmIuLjhjMWY3YzBlNTMxM2I2Yjg1NmNkM2NkZjVlODM4NGYzNmI3YjUzZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0K
QEAgLTEwMyw3ICsxMDMsNyBAQCBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUoYm9vbCBoYXNBdQogCiB2b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjb21wcmVzc2VkVmlkZW9PdXRwdXRCdWZmZXJDYWxsYmFj
ayh2b2lkICptZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJU
b2tlbikKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrV3JpdGVyID0gbWFrZVdlYWtQdHIo
c3RhdGljX2Nhc3Q8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIqPihtZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcikpXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1dyaXRlciA9IFdlYWtQ
dHIgeyBzdGF0aWNfY2FzdDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcio+KG1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyKSB9XSB7CiAgICAgICAgIGlmICh3ZWFrV3JpdGVyKQogICAgICAgICAg
ICAgd2Vha1dyaXRlci0+cHJvY2Vzc05ld0NvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcnMoKTsK
ICAgICB9KTsKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyOjpjb21wcmVzc2VkVmlkZW9PdXRwdXRCdWZmZXJDYWxsYmFjayh2b2lkICptZWRpYQogCiB2
b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjb21wcmVzc2VkQXVkaW9PdXRwdXRCdWZm
ZXJDYWxsYmFjayh2b2lkICptZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwgQ01CdWZmZXJRdWV1
ZVRyaWdnZXJUb2tlbikKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrV3JpdGVyID0gbWFr
ZVdlYWtQdHIoc3RhdGljX2Nhc3Q8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIqPihtZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcikpXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1dyaXRl
ciA9IFdlYWtQdHIgeyBzdGF0aWNfY2FzdDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcio+KG1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKSB9XSB7CiAgICAgICAgIGlmICh3ZWFrV3JpdGVyKQog
ICAgICAgICAgICAgd2Vha1dyaXRlci0+cHJvY2Vzc05ld0NvbXByZXNzZWRBdWRpb1NhbXBsZUJ1
ZmZlcnMoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAK
aW5kZXggYWQ2MDQyYzhiYzM0NmI1MTU1NmJkZDVmZjhkOWU1MzVlZTY4OWFhYi4uMTYyNDk4MDk1
MTIyZjRmNGIwNTIwNWU3MWZiN2NjNWI5MGU0YmY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyPiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpj
cmUKICAgICBhdXRvJiB0cmFjayA9IHN0cmVhbS5tX3N0cmVhbVRyYWNrLmdldCgpOwogICAgIHJl
bmRlcmVyLT5zZXRMb2dnZXIodHJhY2subG9nZ2VyKCksIHRyYWNrLmxvZ0lkZW50aWZpZXIoKSk7
CiAjZW5kaWYKLSAgICByZW5kZXJlci0+c2V0Q3Jhc2hDYWxsYmFjayhbc3RyZWFtID0gbWFrZVdl
YWtQdHIoc3RyZWFtKV0geworICAgIHJlbmRlcmVyLT5zZXRDcmFzaENhbGxiYWNrKFtzdHJlYW0g
PSBXZWFrUHRyIHsgc3RyZWFtIH1dIHsKICAgICAgICAgaWYgKHN0cmVhbSkKICAgICAgICAgICAg
IHN0cmVhbS0+Y3JlYXRlTmV3UmVuZGVyZXIoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEVE1GU2Vu
ZGVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ0RUTUZTZW5kZXJCYWNrZW5kLmgKaW5kZXggMDNiZTEwNTZkZmEzZTczY2U1
OTVmMTczYjAyNjIxYTJjMmNkODMyZC4uNTBjOGM2ZTM5NTQ3YWFiNGUyMjFhYmNmZjhmMDY4OTcx
YWFmOWZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ0RUTUZTZW5kZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RUTUZTZW5kZXJCYWNr
ZW5kLmgKQEAgLTM5LDcgKzM5LDcgQEAgQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gVXNlIGVhZ2VyIGluaXRpYWxpemF0aW9uIGZvciB0aGUg
V2Vha1B0ckZhY3Rvcnkgc2luY2Ugd2UgY2FsbCBtYWtlV2Vha1B0cigpIGZyb20gYW5vdGhlciB0
aHJlYWQuCisvLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9yIHRoZSBXZWFrUHRyRmFjdG9y
eSBzaW5jZSB3ZSBjb25zdHJ1Y3QgV2Vha1B0cnMgb24gYW5vdGhlciB0aHJlYWQuCiBjbGFzcyBM
aWJXZWJSVENEVE1GU2VuZGVyQmFja2VuZCBmaW5hbCA6IHB1YmxpYyBSVENEVE1GU2VuZGVyQmFj
a2VuZCwgcHJpdmF0ZSB3ZWJydGM6OkR0bWZTZW5kZXJPYnNlcnZlckludGVyZmFjZSwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPExpYldlYlJUQ0RUTUZTZW5kZXJCYWNrZW5kLCBXZWFrUHRyRmFjdG9y
eUluaXRpYWxpemF0aW9uOjpFYWdlcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQ29jb2EuY3BwCmluZGV4IDgzMTczMGMwNTZkNzY5ZmY1N2NlYzEzMDI4MjM1
ZWFjZGM3ODgzZTMuLmE1MDU2YzhlNmJlMTM1OTg3YTA4ZWEyNjNkMGY5ZmQyNDA2N2NkNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0
cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJv
dmlkZXJDb2NvYS5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgUmVmPE1lZGlhU3RyZWFtVHJhY2tBdWRp
b1NvdXJjZVByb3ZpZGVyQ29jb2E+IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGUK
IH0KIAogTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6TWVkaWFTdHJl
YW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYg
c291cmNlKQotICAgIDogbV9jYXB0dXJlU291cmNlKG1ha2VXZWFrUHRyKHNvdXJjZSkpCisgICAg
OiBtX2NhcHR1cmVTb3VyY2Uoc291cmNlKQogICAgICwgbV9zb3VyY2Uoc291cmNlLnNvdXJjZSgp
KQogewogI2lmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL0Nvb2tpZVN0b3JhZ2VPYnNlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Db29raWVTdG9yYWdlT2JzZXJ2ZXIuaAppbmRleCAx
YmYwYzYwNWJiYTcwZTFiZTNkZWJjMjUxOWI0YjRhMjQ4MGMxODNjLi5jMjJkOTM3MDNiZTRhNmNh
MDFhYjNkMjI0OGZiNzNmOWEyZDBkY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL0Nvb2tpZVN0b3JhZ2VPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ29va2llU3RvcmFnZU9ic2VydmVyLmgKQEAg
LTM1LDcgKzM1LDcgQEAgT0JKQ19DTEFTUyBXZWJDb29raWVPYnNlcnZlckFkYXB0ZXI7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gVXNlIGVhZ2VyIGluaXRpYWxpemF0aW9uIGZvciB0aGUg
V2Vha1B0ckZhY3Rvcnkgc2luY2Ugd2UgY2FsbCBtYWtlV2Vha1B0cigpIGZyb20gYSBub24tbWFp
biB0aHJlYWQuCisvLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9yIHRoZSBXZWFrUHRyRmFj
dG9yeSBzaW5jZSB3ZSBjb25zdHJ1Y3QgV2Vha1B0cnMgb24gYSBub24tbWFpbiB0aHJlYWQuCiBj
bGFzcyBXRUJDT1JFX0VYUE9SVCBDb29raWVTdG9yYWdlT2JzZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8Q29va2llU3RvcmFnZU9ic2VydmVyLCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0
aW9uOjpFYWdlcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKENvb2tpZVN0b3JhZ2VPYnNlcnZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5l
cmF0b3IubW0KaW5kZXggN2E3OWRlMDkzYjA1MTQxNzBkMDM0ODkzZTEyM2I5MDM3YTFhYTVlNi4u
MmVjNmZkNGE0YWI4OWNlMDhjZDQwNzQ4MGViOGIzMWYwZTljMGM2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9y
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VSZXNw
b25zZUdlbmVyYXRvci5tbQpAQCAtMTEzLDcgKzExMyw3IEBAIHZvaWQgUmFuZ2VSZXNwb25zZUdl
bmVyYXRvcjo6Z2l2ZVJlc3BvbnNlVG9UYXNrSWZCeXRlc0luUmFuZ2VSZWNlaXZlZChXZWJDb3Jl
TlNVCiAgICAgaWYgKCF0YXNrRGF0YSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGF1dG8g
Z2l2ZUJ5dGVzVG9UYXNrID0gW3Rhc2sgPSByZXRhaW5QdHIodGFzayksIGJ1ZmZlciwgdGFza0Rh
dGEgPSBtYWtlV2Vha1B0cigqdGFza0RhdGEpLCBnZW5lcmF0b3IgPSBtYWtlV2Vha1B0cigqdGhp
cyldIHsKKyAgICBhdXRvIGdpdmVCeXRlc1RvVGFzayA9IFt0YXNrID0gcmV0YWluUHRyKHRhc2sp
LCBidWZmZXIsIHRhc2tEYXRhID0gV2Vha1B0ciB7ICp0YXNrRGF0YSB9LCBnZW5lcmF0b3IgPSBX
ZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
ICAgICBpZiAoW3Rhc2sgc3RhdGVdICE9IE5TVVJMU2Vzc2lvblRhc2tTdGF0ZVJ1bm5pbmcpCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBSYW5nZVJlc3BvbnNl
R2VuZXJhdG9yOjpnaXZlUmVzcG9uc2VUb1Rhc2tJZkJ5dGVzSW5SYW5nZVJlY2VpdmVkKFdlYkNv
cmVOU1UKICAgICBzd2l0Y2ggKHRhc2tEYXRhLT5yZXNwb25zZVN0YXRlKSB7CiAgICAgY2FzZSBE
YXRhOjpUYXNrRGF0YTo6UmVzcG9uc2VTdGF0ZTo6Tm90U3ludGhlc2l6ZWRZZXQ6IHsKICAgICAg
ICAgYXV0byByZXNwb25zZSA9IHN5bnRoZXNpemVkUmVzcG9uc2VGb3JSYW5nZShkYXRhLm9yaWdp
bmFsUmVzcG9uc2UsIHJhbmdlLCBleHBlY3RlZENvbnRlbnRMZW5ndGgpOwotICAgICAgICBbdGFz
ayByZXNvdXJjZTpudWxscHRyIHJlY2VpdmVkUmVzcG9uc2U6cmVzcG9uc2UgY29tcGxldGlvbkhh
bmRsZXI6W2dpdmVCeXRlc1RvVGFzayA9IFdURk1vdmUoZ2l2ZUJ5dGVzVG9UYXNrKSwgdGFza0Rh
dGEgPSBtYWtlV2Vha1B0cih0YXNrRGF0YSksIHRhc2sgPSByZXRhaW5QdHIodGFzayldIChXZWJD
b3JlOjpTaG91bGRDb250aW51ZVBvbGljeUNoZWNrIHNob3VsZENvbnRpbnVlKSB7CisgICAgICAg
IFt0YXNrIHJlc291cmNlOm51bGxwdHIgcmVjZWl2ZWRSZXNwb25zZTpyZXNwb25zZSBjb21wbGV0
aW9uSGFuZGxlcjpbZ2l2ZUJ5dGVzVG9UYXNrID0gV1RGTW92ZShnaXZlQnl0ZXNUb1Rhc2spLCB0
YXNrRGF0YSA9IFdlYWtQdHIgeyB0YXNrRGF0YSB9LCB0YXNrID0gcmV0YWluUHRyKHRhc2spXSAo
V2ViQ29yZTo6U2hvdWxkQ29udGludWVQb2xpY3lDaGVjayBzaG91bGRDb250aW51ZSkgewogICAg
ICAgICAgICAgaWYgKHRhc2tEYXRhKQogICAgICAgICAgICAgICAgIHRhc2tEYXRhLT5yZXNwb25z
ZVN0YXRlID0gRGF0YTo6VGFza0RhdGE6OlJlc3BvbnNlU3RhdGU6OlNlc3Npb25DYWxsZWRDb21w
bGV0aW9uSGFuZGxlcjsKICAgICAgICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9PSBTaG91bGRD
b250aW51ZVBvbGljeUNoZWNrOjpZZXMpCkBAIC0yMDYsNyArMjA2LDcgQEAgYm9vbCBSYW5nZVJl
c3BvbnNlR2VuZXJhdG9yOjp3aWxsSGFuZGxlUmVxdWVzdChXZWJDb3JlTlNVUkxTZXNzaW9uRGF0
YVRhc2sgKnRhc2sKIGNsYXNzIFJhbmdlUmVzcG9uc2VHZW5lcmF0b3I6Ok1lZGlhUmVzb3VyY2VD
bGllbnQgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICBNZWRpYVJlc291cmNlQ2xpZW50KFJhbmdlUmVzcG9uc2VHZW5lcmF0b3ImIGdlbmVyYXRvciwg
VVJMJiYgdXJsKQotICAgICAgICA6IG1fZ2VuZXJhdG9yKG1ha2VXZWFrUHRyKGdlbmVyYXRvcikp
CisgICAgICAgIDogbV9nZW5lcmF0b3IoZ2VuZXJhdG9yKQogICAgICAgICAsIG1fdXJsU3RyaW5n
KFdURk1vdmUodXJsKS5zdHJpbmcoKSkgeyB9CiBwcml2YXRlOgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvRE9NTWltZVR5cGUuY3BwCmluZGV4IGExOTJlZTdlZWZlNDc1NDZkOWYwZmIxNTJhOWUxNDUx
MzA1YjQyZDguLjRlYTRmZmI0NDZiZWJiNWZmYjg5OGEyNWVjZjY4NGZmNTc5ZmFkMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3BwCkBAIC0zMSw5ICszMSw5IEBAIFJlZjxE
T01NaW1lVHlwZT4gRE9NTWltZVR5cGU6OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRvciwgY29u
c3QgTWltZUNsYXNzSW5mbyYKIH0KIAogRE9NTWltZVR5cGU6OkRPTU1pbWVUeXBlKE5hdmlnYXRv
ciYgbmF2aWdhdG9yLCBjb25zdCBNaW1lQ2xhc3NJbmZvJiBpbmZvLCBET01QbHVnaW4mIGVuYWJs
ZWRQbHVnaW4pCi0gICAgOiBtX25hdmlnYXRvcihtYWtlV2Vha1B0cihuYXZpZ2F0b3IpKQorICAg
IDogbV9uYXZpZ2F0b3IobmF2aWdhdG9yKQogICAgICwgbV9pbmZvKGluZm8pCi0gICAgLCBtX2Vu
YWJsZWRQbHVnaW4obWFrZVdlYWtQdHIoZW5hYmxlZFBsdWdpbikpCisgICAgLCBtX2VuYWJsZWRQ
bHVnaW4oZW5hYmxlZFBsdWdpbikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9N
TWltZVR5cGVBcnJheS5jcHAKaW5kZXggMDA2ODdmODQ1YjIyYmQwZDhkYzcxNGU1Njk0ZmNkNGNh
Y2U5Y2U5Yi4uYTZlYjRmOTlmMzQxNmNmODQ0NjBmYzNiMDBiNGE2ZjAyNDU1NmRjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlQXJyYXkuY3BwCkBAIC0zNSw3ICszNSw3
IEBAIFJlZjxET01NaW1lVHlwZUFycmF5PiBET01NaW1lVHlwZUFycmF5OjpjcmVhdGUoTmF2aWdh
dG9yJiBuYXZpZ2F0b3IsIFZlY3RvcjxSZWY8CiB9CiAKIERPTU1pbWVUeXBlQXJyYXk6OkRPTU1p
bWVUeXBlQXJyYXkoTmF2aWdhdG9yJiBuYXZpZ2F0b3IsIFZlY3RvcjxSZWY8RE9NTWltZVR5cGU+
PiYmIHR5cGVzKQotICAgIDogbV9uYXZpZ2F0b3IobWFrZVdlYWtQdHIobmF2aWdhdG9yKSkKKyAg
ICA6IG1fbmF2aWdhdG9yKG5hdmlnYXRvcikKICAgICAsIG1fdHlwZXMoV1RGTW92ZSh0eXBlcykp
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbi5jcHAKaW5kZXggOWZkYmNkM2Y4MDk3
NjExYWIyNTZhYTkwOTgxMDEzM2ZmMGZhOGViZC4uM2I4ZDRkZjlmOTc5MTZlMDBiZGVmYWE5ZDZj
OTdiYzdhMDYzOGQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVn
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luLmNwcApAQCAtNDgs
NyArNDgsNyBAQCBzdGF0aWMgVmVjdG9yPFJlZjxET01NaW1lVHlwZT4+IG1ha2VNaW1lVHlwZXMo
TmF2aWdhdG9yJiBuYXZpZ2F0b3IsIGNvbnN0IFBsdWdpbgogfQogCiBET01QbHVnaW46OkRPTVBs
dWdpbihOYXZpZ2F0b3ImIG5hdmlnYXRvciwgY29uc3QgUGx1Z2luSW5mbyYgaW5mbykKLSAgICA6
IG1fbmF2aWdhdG9yKG1ha2VXZWFrUHRyKG5hdmlnYXRvcikpCisgICAgOiBtX25hdmlnYXRvcihu
YXZpZ2F0b3IpCiAgICAgLCBtX2luZm8oaW5mbykKICAgICAsIG1fbWltZVR5cGVzKG1ha2VNaW1l
VHlwZXMobmF2aWdhdG9yLCBpbmZvLCAqdGhpcykpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
RE9NUGx1Z2luQXJyYXkuY3BwCmluZGV4IDI5NmY0Y2UxM2I1ODM4NmQxZmIyNzJmOGRiZjUyYzE5
NTFiZGY5YTcuLjNlOGU0ZDdlYTJiNDkxYWQ3NGE2ZGUyYTQ5Nzg2N2QxZTBmY2ZjYmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luQXJyYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luQXJyYXkuY3BwCkBAIC0zNiw3ICszNiw3IEBA
IFJlZjxET01QbHVnaW5BcnJheT4gRE9NUGx1Z2luQXJyYXk6OmNyZWF0ZShOYXZpZ2F0b3ImIG5h
dmlnYXRvciwgVmVjdG9yPFJlZjxET01QCiB9CiAKIERPTVBsdWdpbkFycmF5OjpET01QbHVnaW5B
cnJheShOYXZpZ2F0b3ImIG5hdmlnYXRvciwgVmVjdG9yPFJlZjxET01QbHVnaW4+PiYmIHB1Ymxp
Y2x5VmlzaWJsZVBsdWdpbnMsIFZlY3RvcjxSZWY8RE9NUGx1Z2luPj4mJiBhZGRpdGlvbmFsV2Vi
VmlzaWJpbGVQbHVnaW5zKQotICAgIDogbV9uYXZpZ2F0b3IobWFrZVdlYWtQdHIobmF2aWdhdG9y
KSkKKyAgICA6IG1fbmF2aWdhdG9yKG5hdmlnYXRvcikKICAgICAsIG1fcHVibGljbHlWaXNpYmxl
UGx1Z2lucyhXVEZNb3ZlKHB1YmxpY2x5VmlzaWJsZVBsdWdpbnMpKQogICAgICwgbV9hZGRpdGlv
bmFsV2ViVmlzaWJpbGVQbHVnaW5zKFdURk1vdmUoYWRkaXRpb25hbFdlYlZpc2liaWxlUGx1Z2lu
cykpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmpl
Y3RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG9hdGluZ09iamVjdHMuY3BwCmlu
ZGV4IGY1OTYyYWI5NDk2MWEzMTdhMTQyMDM0ODM0ZmI4M2VhY2ViZmE5OTguLmE4MmM2Y2QyODA2
YmZjMDFmMTE1MzRhZjQ1MjIxNDJkNzE4MWFiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9GbG9hdGluZ09iamVjdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9GbG9hdGluZ09iamVjdHMuY3BwCkBAIC00OSw3ICs0OSw3IEBAIENPTVBJTEVfQVNTRVJU
KHNpemVvZihXZWFrUHRyPExlZ2FjeVJvb3RJbmxpbmVCb3g+KSA9PSBzaXplb2Yodm9pZCopLCBX
ZWFrUHRyX3NoCiAjZW5kaWYKIAogRmxvYXRpbmdPYmplY3Q6OkZsb2F0aW5nT2JqZWN0KFJlbmRl
ckJveCYgcmVuZGVyZXIpCi0gICAgOiBtX3JlbmRlcmVyKG1ha2VXZWFrUHRyKHJlbmRlcmVyKSkK
KyAgICA6IG1fcmVuZGVyZXIocmVuZGVyZXIpCiAgICAgLCBtX3BhaW50c0Zsb2F0KHRydWUpCiAg
ICAgLCBtX2lzRGVzY2VuZGFudChmYWxzZSkKICAgICAsIG1faXNQbGFjZWQoZmFsc2UpCkBAIC02
Niw3ICs2Niw3IEBAIEZsb2F0aW5nT2JqZWN0OjpGbG9hdGluZ09iamVjdChSZW5kZXJCb3gmIHJl
bmRlcmVyKQogfQogCiBGbG9hdGluZ09iamVjdDo6RmxvYXRpbmdPYmplY3QoUmVuZGVyQm94JiBy
ZW5kZXJlciwgVHlwZSB0eXBlLCBjb25zdCBMYXlvdXRSZWN0JiBmcmFtZVJlY3QsIGNvbnN0IExh
eW91dFNpemUmIG1hcmdpbk9mZnNldCwgYm9vbCBzaG91bGRQYWludCwgYm9vbCBpc0Rlc2NlbmRh
bnQpCi0gICAgOiBtX3JlbmRlcmVyKG1ha2VXZWFrUHRyKHJlbmRlcmVyKSkKKyAgICA6IG1fcmVu
ZGVyZXIocmVuZGVyZXIpCiAgICAgLCBtX2ZyYW1lUmVjdChmcmFtZVJlY3QpCiAgICAgLCBtX21h
cmdpbk9mZnNldChtYXJnaW5PZmZzZXQpCiAgICAgLCBtX3R5cGUodHlwZSkKQEAgLTE1Miw3ICsx
NTIsNyBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBGbG9hdGluZ09iamVjdEludGVydmFsIEludGVy
dmFsVHlwZTsKIAogICAgIENvbXB1dGVGbG9hdE9mZnNldEFkYXB0ZXIoY29uc3QgUmVuZGVyQmxv
Y2tGbG93JiByZW5kZXJlciwgTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0
b20sIExheW91dFVuaXQgb2Zmc2V0KQotICAgICAgICA6IG1fcmVuZGVyZXIobWFrZVdlYWtQdHIo
cmVuZGVyZXIpKQorICAgICAgICA6IG1fcmVuZGVyZXIocmVuZGVyZXIpCiAgICAgICAgICwgbV9s
aW5lVG9wKGxpbmVUb3ApCiAgICAgICAgICwgbV9saW5lQm90dG9tKGxpbmVCb3R0b20pCiAgICAg
ICAgICwgbV9vZmZzZXQob2Zmc2V0KQpAQCAtMjEzLDcgKzIxMyw3IEBAIHB1YmxpYzoKICAgICB0
eXBlZGVmIEZsb2F0aW5nT2JqZWN0SW50ZXJ2YWwgSW50ZXJ2YWxUeXBlOwogCiAgICAgRmluZE5l
eHRGbG9hdExvZ2ljYWxCb3R0b21BZGFwdGVyKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgcmVuZGVy
ZXIsIExheW91dFVuaXQgYmVsb3dMb2dpY2FsSGVpZ2h0KQotICAgICAgICA6IG1fcmVuZGVyZXIo
bWFrZVdlYWtQdHIocmVuZGVyZXIpKQorICAgICAgICA6IG1fcmVuZGVyZXIocmVuZGVyZXIpCiAg
ICAgICAgICwgbV9iZWxvd0xvZ2ljYWxIZWlnaHQoYmVsb3dMb2dpY2FsSGVpZ2h0KQogICAgIHsK
ICAgICB9CkBAIC0yNzUsNyArMjc1LDcgQEAgTGF5b3V0VW5pdCBGbG9hdGluZ09iamVjdHM6OmZp
bmROZXh0RmxvYXRMb2dpY2FsQm90dG9tQmVsb3dGb3JCbG9jayhMYXlvdXRVbml0IGwKIAogRmxv
YXRpbmdPYmplY3RzOjpGbG9hdGluZ09iamVjdHMoY29uc3QgUmVuZGVyQmxvY2tGbG93JiByZW5k
ZXJlcikKICAgICA6IG1faG9yaXpvbnRhbFdyaXRpbmdNb2RlKHJlbmRlcmVyLmlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkpCi0gICAgLCBtX3JlbmRlcmVyKG1ha2VXZWFrUHRyKHJlbmRlcmVyKSkK
KyAgICAsIG1fcmVuZGVyZXIocmVuZGVyZXIpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9GbG9hdGluZ09iamVjdHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9GbG9hdGluZ09iamVjdHMuaAppbmRleCBmYWNkMGIyZTVhMzc4YjI4ODVjOGNhZGE1YmVh
ZDUxMjliNzRkMjYzLi4yMGYzMDczOTMyNzIwZmE1ZWJkMTk0MzhmOWIzMDQyMDZlZGFhNjM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5oCkBAIC05MCw3ICs5
MCw3IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogQ2FsbGVycyBvZiB0aGVzZSBtZXRob2RzIGFy
ZSBkYW5nZXJvdXMgYW5kIHNob3VsZCBiZSBhbGxvd2VkIGV4cGxpY2l0bHkgb3IgcmVtb3ZlZC4K
ICAgICBMZWdhY3lSb290SW5saW5lQm94KiBvcmlnaW5hdGluZ0xpbmUoKSBjb25zdCB7IHJldHVy
biBtX29yaWdpbmF0aW5nTGluZS5nZXQoKTsgfQogICAgIHZvaWQgY2xlYXJPcmlnaW5hdGluZ0xp
bmUoKSB7IG1fb3JpZ2luYXRpbmdMaW5lID0gbnVsbHB0cjsgfQotICAgIHZvaWQgc2V0T3JpZ2lu
YXRpbmdMaW5lKExlZ2FjeVJvb3RJbmxpbmVCb3gmIGxpbmUpIHsgbV9vcmlnaW5hdGluZ0xpbmUg
PSBtYWtlV2Vha1B0cihsaW5lKTsgfQorICAgIHZvaWQgc2V0T3JpZ2luYXRpbmdMaW5lKExlZ2Fj
eVJvb3RJbmxpbmVCb3gmIGxpbmUpIHsgbV9vcmlnaW5hdGluZ0xpbmUgPSBsaW5lOyB9CiAKICAg
ICBMYXlvdXRTaXplIGxvY2F0aW9uT2Zmc2V0T2ZCb3JkZXJCb3goKSBjb25zdAogICAgIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9HcmlkLmNwcAppbmRleCA5MWQ5ZmIwMGIzODM2YjFiNTc3ZmIxZjA4NTVm
ZTQzYWY4MTJhNWZkLi41NjAyZDdjMmQ0ZDViY2E5MzI0NTQ0Yjc1YWQyMmNiMjY1OGVkMDJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0dyaWQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgR3JpZDo6
aW5zZXJ0KFJlbmRlckJveCYgY2hpbGQsIGNvbnN0IEdyaWRBcmVhJiBhcmVhKQogCiAgICAgZm9y
IChhdXRvIHJvdyA6IGFyZWEucm93cykgewogICAgICAgICBmb3IgKGF1dG8gY29sdW1uIDogYXJl
YS5jb2x1bW5zKQotICAgICAgICAgICAgbV9ncmlkW3Jvd11bY29sdW1uXS5hcHBlbmQobWFrZVdl
YWtQdHIoY2hpbGQpKTsKKyAgICAgICAgICAgIG1fZ3JpZFtyb3ddW2NvbHVtbl0uYXBwZW5kKGNo
aWxkKTsKICAgICB9CiAKICAgICBzZXRHcmlkSXRlbUFyZWEoY2hpbGQsIGFyZWEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmgKaW5kZXggZTRjYmY5YmFiZjUyYThkNzAy
ZTE2NjRkOWFmOWFlZWIwYjU1MzU3Mi4uYWYxMTVkZDMwMDA4OGFjMDk3OWQwMzYxMzE5OGU1MThh
NWNkNTA0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5oCkBAIC00
Myw4ICs0Myw4IEBAIGNsYXNzIFJlbmRlclJhbmdlIHsKIHB1YmxpYzoKICAgICBSZW5kZXJSYW5n
ZSgpID0gZGVmYXVsdDsKICAgICBSZW5kZXJSYW5nZShSZW5kZXJPYmplY3QqIHN0YXJ0LCBSZW5k
ZXJPYmplY3QqIGVuZCwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCkK
LSAgICAgICAgOiBtX3N0YXJ0KG1ha2VXZWFrUHRyKHN0YXJ0KSkKLSAgICAgICAgLCBtX2VuZCht
YWtlV2Vha1B0cihlbmQpKQorICAgICAgICA6IG1fc3RhcnQoc3RhcnQpCisgICAgICAgICwgbV9l
bmQoZW5kKQogICAgICAgICAsIG1fc3RhcnRPZmZzZXQoc3RhcnRPZmZzZXQpCiAgICAgICAgICwg
bV9lbmRPZmZzZXQoZW5kT2Zmc2V0KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFjay5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xheWVyQW5jZXN0b3JDbGlwcGluZ1N0YWNrLmgKaW5kZXggZDczOWFmMDgxOGVi
ZWI0Zjg0NTkxYTEzMmQ1NWYyMTJlMjE1MjVkOS4uMjViY2EyN2ExNjg2NjdiZTI0MTBjZGVlOWFi
YWE5Zjg5MmM0MmVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheWVy
QW5jZXN0b3JDbGlwcGluZ1N0YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xh
eWVyQW5jZXN0b3JDbGlwcGluZ1N0YWNrLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgU2Nyb2xs
aW5nQ29vcmRpbmF0b3I7CiAKIHN0cnVjdCBDb21wb3NpdGVkQ2xpcERhdGEgewogICAgIENvbXBv
c2l0ZWRDbGlwRGF0YShSZW5kZXJMYXllciogbGF5ZXIsIExheW91dFJlY3QgcmVjdCwgYm9vbCBp
c092ZXJmbG93U2Nyb2xsRW50cnkpCi0gICAgICAgIDogY2xpcHBpbmdMYXllcihtYWtlV2Vha1B0
cihsYXllcikpCisgICAgICAgIDogY2xpcHBpbmdMYXllcihsYXllcikKICAgICAgICAgLCBjbGlw
UmVjdChyZWN0KQogICAgICAgICAsIGlzT3ZlcmZsb3dTY3JvbGwoaXNPdmVyZmxvd1Njcm9sbEVu
dHJ5KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJ
bmxpbmVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVCb3guaApp
bmRleCAzZGE3YjVmODA1NDRiNDBmYmYwYzI0YTAxYzczZTNmNDcyOWUzYmViLi5mMWY1M2JmZmZk
ZTljODM3MmRhYTBhZjg3NjE1OGFjNjdmYWI5NTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xlZ2FjeUlubGluZUJveC5oCkBAIC0zNjcsNyArMzY3LDcgQEAgcHJpdmF0ZToKIAogcHJv
dGVjdGVkOgogICAgIGV4cGxpY2l0IExlZ2FjeUlubGluZUJveChSZW5kZXJPYmplY3QmIHJlbmRl
cmVyKQotICAgICAgICA6IG1fcmVuZGVyZXIobWFrZVdlYWtQdHIocmVuZGVyZXIpKQorICAgICAg
ICA6IG1fcmVuZGVyZXIocmVuZGVyZXIpCiAgICAgewogICAgIH0KIApAQCAtMzc1LDcgKzM3NSw3
IEBAIHByb3RlY3RlZDoKICAgICAgICAgOiBtX25leHRPbkxpbmUobmV4dCkKICAgICAgICAgLCBt
X3ByZXZpb3VzT25MaW5lKHByZXZpb3VzKQogICAgICAgICAsIG1fcGFyZW50KHBhcmVudCkKLSAg
ICAgICAgLCBtX3JlbmRlcmVyKG1ha2VXZWFrUHRyKHJlbmRlcmVyKSkKKyAgICAgICAgLCBtX3Jl
bmRlcmVyKHJlbmRlcmVyKQogICAgICAgICAsIG1fbG9naWNhbFdpZHRoKGxvZ2ljYWxXaWR0aCkK
ICAgICAgICAgLCBtX3RvcExlZnQodG9wTGVmdCkKICAgICAgICAgLCBtX2JpdGZpZWxkcyhmaXJz
dExpbmUsIGNvbnN0cnVjdGVkLCBkaXJ0eSwgZXh0cmFjdGVkLCBpc0hvcml6b250YWwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAKaW5kZXgg
N2JiMzVmNTljMzgyNmVjOTM2YWNlMGJhYjQ4ODE3MDRjZTAxYWU5Ny4uNzA5ODE5MzA0ZWFlNDY2
YmI5YWZmNmY4NWVmNTVlM2YyOGQ4YzFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MZWdhY3lSb290SW5saW5lQm94LmNwcApAQCAtNjA3LDcgKzYwNyw3IEBAIEJpZGlTdGF0
dXMgTGVnYWN5Um9vdElubGluZUJveDo6bGluZUJyZWFrQmlkaVN0YXR1cygpIGNvbnN0CiAKIHZv
aWQgTGVnYWN5Um9vdElubGluZUJveDo6c2V0TGluZUJyZWFrSW5mbyhSZW5kZXJPYmplY3QqIG9i
amVjdCwgdW5zaWduZWQgYnJlYWtQb3NpdGlvbiwgY29uc3QgQmlkaVN0YXR1cyYgc3RhdHVzKQog
ewotICAgIG1fbGluZUJyZWFrT2JqID0gbWFrZVdlYWtQdHIob2JqZWN0KTsKKyAgICBtX2xpbmVC
cmVha09iaiA9IG9iamVjdDsKICAgICBtX2xpbmVCcmVha1BvcyA9IGJyZWFrUG9zaXRpb247CiAg
ICAgbV9saW5lQnJlYWtCaWRpU3RhdHVzRW9yID0gc3RhdHVzLmVvcjsKICAgICBtX2xpbmVCcmVh
a0JpZGlTdGF0dXNMYXN0U3Ryb25nID0gc3RhdHVzLmxhc3RTdHJvbmc7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guaAppbmRleCA5NDk1MGI0NDczZGEx
MDdkZTFmZjY5NzMwMjIwN2Y4YjQzZjZlOWJjLi5lY2VlMjY0ZGI1YzMyOWY1NGZkZDA4ZWYxOWFh
YzA2ZTA4MDQzNmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5
Um9vdElubGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290
SW5saW5lQm94LmgKQEAgLTEzNSw5ICsxMzUsOSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBB
U1NFUlQoIWlzRGlydHkoKSk7CiAgICAgICAgIGlmIChtX2Zsb2F0cykKLSAgICAgICAgICAgIG1f
ZmxvYXRzLT5hcHBlbmQobWFrZVdlYWtQdHIoZmxvYXRpbmdCb3gpKTsKKyAgICAgICAgICAgIG1f
ZmxvYXRzLT5hcHBlbmQoZmxvYXRpbmdCb3gpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBt
X2Zsb2F0cyA9IG1ha2VVbmlxdWU8Q2xlYW5MaW5lRmxvYXRMaXN0PigxLCBtYWtlV2Vha1B0cihm
bG9hdGluZ0JveCkpOworICAgICAgICAgICAgbV9mbG9hdHMgPSBtYWtlVW5pcXVlPENsZWFuTGlu
ZUZsb2F0TGlzdD4oMSwgZmxvYXRpbmdCb3gpOwogICAgIH0KIAogICAgIHZvaWQgcmVtb3ZlRmxv
YXQoUmVuZGVyQm94JiBmbG9hdGluZ0JveCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCmluZGV4IGQ0ZDlmMmM3MTllYmM0OWFkZGIyYmJlYmZlZWM0MWFlMWJjZGNlZWUu
LjUxOTVlOWUxYmU5Mzg0YmQ2YmZmNDZjMDVjYTFiNGNhMWRhMjZmMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMjY5MSw3ICsyNjkxLDcgQEAgdm9pZCBS
ZW5kZXJCbG9jazo6c2V0Q2FjaGVkRW5jbG9zaW5nRnJhZ21lbnRlZEZsb3dOZWVkc1VwZGF0ZSgp
CiBSZW5kZXJGcmFnbWVudGVkRmxvdyogUmVuZGVyQmxvY2s6OnVwZGF0ZUNhY2hlZEVuY2xvc2lu
Z0ZyYWdtZW50ZWRGbG93KFJlbmRlckZyYWdtZW50ZWRGbG93KiBmcmFnbWVudGVkRmxvdykgY29u
c3QKIHsKICAgICBSZW5kZXJCbG9ja1JhcmVEYXRhJiByYXJlRGF0YSA9IGVuc3VyZUJsb2NrUmFy
ZURhdGEoKnRoaXMpOwotICAgIHJhcmVEYXRhLm1fZW5jbG9zaW5nRnJhZ21lbnRlZEZsb3cgPSBt
YWtlV2Vha1B0cihmcmFnbWVudGVkRmxvdyk7CisgICAgcmFyZURhdGEubV9lbmNsb3NpbmdGcmFn
bWVudGVkRmxvdyA9IGZyYWdtZW50ZWRGbG93OwogCiAgICAgcmV0dXJuIGZyYWdtZW50ZWRGbG93
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRl
eCA3YTRkZWI1YmEyMjE0NDdmYWNlZjA2YzBhNWQ3NDRlYzkwM2Y4ODRmLi45MTYxMGJiMDM4YWU4
MGM0OTcxMTRjYTU5YjIyYTJjNzYzZTE4NmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMzM4Niw3ICszMzg2LDcgQEAgYm9vbCBSZW5kZXJC
bG9ja0Zsb3c6Om5lZWRzTGF5b3V0QWZ0ZXJGcmFnbWVudFJhbmdlQ2hhbmdlKCkgY29uc3QKIHZv
aWQgUmVuZGVyQmxvY2tGbG93OjpzZXRNdWx0aUNvbHVtbkZsb3coUmVuZGVyTXVsdGlDb2x1bW5G
bG93JiBmcmFnbWVudGVkRmxvdykKIHsKICAgICBBU1NFUlQoIWhhc1JhcmVCbG9ja0Zsb3dEYXRh
KCkgfHwgIXJhcmVCbG9ja0Zsb3dEYXRhKCktPm1fbXVsdGlDb2x1bW5GbG93KTsKLSAgICBlbnN1
cmVSYXJlQmxvY2tGbG93RGF0YSgpLm1fbXVsdGlDb2x1bW5GbG93ID0gbWFrZVdlYWtQdHIoZnJh
Z21lbnRlZEZsb3cpOworICAgIGVuc3VyZVJhcmVCbG9ja0Zsb3dEYXRhKCkubV9tdWx0aUNvbHVt
bkZsb3cgPSBmcmFnbWVudGVkRmxvdzsKIH0KIAogdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmNsZWFy
TXVsdGlDb2x1bW5GbG93KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDE1YmNlOGEwNTFhNjg2MzhkZWJmNzc0ZmY2OGI4ZTA4
NDAwMDk5NDYuLjEzN2Y2MGVhZTMxNzU0MGI2ZmVkZmZlYmEwNWU0ZDEyMzM0Yzk1YjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApA
QCAtODQsNyArODQsNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoUmVuZGVyQm94TW9k
ZWxPYmplY3QpOwogLy8gPGI+PGk+PHA+SGVsbG88L3A+PC9pPjwvYj4uIEluIHRoaXMgZXhhbXBs
ZSB0aGUgPGk+IHdpbGwgaGF2ZSBhIGJsb2NrIGFzCiAvLyBpdHMgY29udGludWF0aW9uIGJ1dCB0
aGUgPGI+IHdpbGwganVzdCBoYXZlIGFuIGlubGluZSBhcyBpdHMgY29udGludWF0aW9uLgogUmVu
ZGVyQm94TW9kZWxPYmplY3Q6OkNvbnRpbnVhdGlvbkNoYWluTm9kZTo6Q29udGludWF0aW9uQ2hh
aW5Ob2RlKFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJlcikKLSAgICA6IHJlbmRlcmVyKG1h
a2VXZWFrUHRyKHJlbmRlcmVyKSkKKyAgICA6IHJlbmRlcmVyKHJlbmRlcmVyKQogewogfQogCkBA
IC0yNjM0LDcgKzI2MzQsNyBAQCBSZW5kZXJUZXh0RnJhZ21lbnQqIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpmaXJzdExldHRlclJlbWFpbmluZ1RleHQoKSBjb25zdAogdm9pZCBSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6c2V0Rmlyc3RMZXR0ZXJSZW1haW5pbmdUZXh0KFJlbmRlclRleHRGcmFnbWVudCYg
cmVtYWluaW5nVGV4dCkKIHsKICAgICBBU1NFUlQoaXNGaXJzdExldHRlcigpKTsKLSAgICBmaXJz
dExldHRlclJlbWFpbmluZ1RleHRNYXAoKS5zZXQodGhpcywgbWFrZVdlYWtQdHIocmVtYWluaW5n
VGV4dCkpOworICAgIGZpcnN0TGV0dGVyUmVtYWluaW5nVGV4dE1hcCgpLnNldCh0aGlzLCByZW1h
aW5pbmdUZXh0KTsKIH0KIAogdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2xlYXJGaXJzdExl
dHRlclJlbWFpbmluZ1RleHQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJ1dHRvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9u
LmNwcAppbmRleCBhMDVlZDYzYWYwM2MyYzlkMzVmN2Q0MzYzODk3NmEwOTY3YmY0M2M1Li4wNzNh
ZjVjODI0MGQzMGEwM2JhNmQwNDhmM2M1NDI4ZjRjZGU5ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcApAQCAtNjYsNyArNjYsNyBAQCBib29sIFJlbmRlckJ1
dHRvbjo6aGFzTGluZUlmRW1wdHkoKSBjb25zdAogdm9pZCBSZW5kZXJCdXR0b246OnNldElubmVy
UmVuZGVyZXIoUmVuZGVyQmxvY2smIGlubmVyUmVuZGVyZXIpCiB7CiAgICAgQVNTRVJUKCFtX2lu
bmVyLmdldCgpKTsKLSAgICBtX2lubmVyID0gbWFrZVdlYWtQdHIoaW5uZXJSZW5kZXJlcik7Cisg
ICAgbV9pbm5lciA9IGlubmVyUmVuZGVyZXI7CiAgICAgdXBkYXRlQW5vbnltb3VzQ2hpbGRTdHls
ZShtX2lubmVyLT5tdXRhYmxlU3R5bGUoKSk7CiB9CiAgICAgCkBAIC0xMDMsNyArMTAzLDcgQEAg
dm9pZCBSZW5kZXJCdXR0b246OnNldFRleHQoY29uc3QgU3RyaW5nJiBzdHIpCiAKICAgICBpZiAo
IW1fYnV0dG9uVGV4dCkgewogICAgICAgICBhdXRvIG5ld0J1dHRvblRleHQgPSBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJUZXh0RnJhZ21lbnQ+KGRvY3VtZW50KCksIHN0cik7Ci0gICAgICAgIG1fYnV0
dG9uVGV4dCA9IG1ha2VXZWFrUHRyKCpuZXdCdXR0b25UZXh0KTsKKyAgICAgICAgbV9idXR0b25U
ZXh0ID0gKm5ld0J1dHRvblRleHQ7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIG11dGF0aW9uIHNo
b3VsZCBnbyB0aHJvdWdoIHRoZSBub3JtYWwgUmVuZGVyVHJlZUJ1aWxkZXIgcGF0aC4KICAgICAg
ICAgaWYgKFJlbmRlclRyZWVCdWlsZGVyOjpjdXJyZW50KCkpCiAgICAgICAgICAgICBSZW5kZXJU
cmVlQnVpbGRlcjo6Y3VycmVudCgpLT5hdHRhY2goKnRoaXMsIFdURk1vdmUobmV3QnV0dG9uVGV4
dCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDgz
YTBlYzM5YjQ5YmUzNTk0NmZkZDkxOTRmN2VhYjQyNzc4MzczZDkuLjc3MzM3NzNkMDYxMWFhMWM5
Njc2OTRmYWYxNDcxMGQ1MGM2ZTE2YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5jcHAKQEAgLTI0MDYsNyArMjQwNiw3IEBAIFdlYWtQdHI8UmVuZGVyQmxvY2tG
bG93PiBSZW5kZXJFbGVtZW50OjpiYWNrZHJvcFJlbmRlcmVyKCkgY29uc3QKIAogdm9pZCBSZW5k
ZXJFbGVtZW50OjpzZXRCYWNrZHJvcFJlbmRlcmVyKFJlbmRlckJsb2NrRmxvdyYgcmVuZGVyZXIp
CiB7Ci0gICAgZW5zdXJlUmFyZURhdGEoKS5iYWNrZHJvcFJlbmRlcmVyID0gbWFrZVdlYWtQdHIo
cmVuZGVyZXIpOworICAgIGVuc3VyZVJhcmVEYXRhKCkuYmFja2Ryb3BSZW5kZXJlciA9IHJlbmRl
cmVyOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RnJhZ21lbnRlZEZsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdt
ZW50ZWRGbG93LmNwcAppbmRleCA0YzZlOWVhNTJhZDY4YmY5YzQ2OTM2Yzk3YmE5Zjk3OWIzZTJl
NzQ2Li4yNjViODk0ZjMzZjJhMTNhNDJjZGQ4NTAyODljNjg4MGNmOTRhZTljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAKQEAgLTg0
Niw3ICs4NDYsNyBAQCB2b2lkIFJlbmRlckZyYWdtZW50ZWRGbG93Ojp1cGRhdGVGcmFnbWVudHNG
cmFnbWVudGVkRmxvd1BvcnRpb25SZWN0KCkKIAogICAgICAgICBmcmFnbWVudC0+c2V0RnJhZ21l
bnRlZEZsb3dQb3J0aW9uUmVjdChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZnJhZ21lbnRS
ZWN0IDogZnJhZ21lbnRSZWN0LnRyYW5zcG9zZWRSZWN0KCkpOwogCi0gICAgICAgIG1fZnJhZ21l
bnRJbnRlcnZhbFRyZWUuYWRkKHsgbG9naWNhbEhlaWdodCwgbG9naWNhbEhlaWdodCArIGZyYWdt
ZW50TG9naWNhbEhlaWdodCwgbWFrZVdlYWtQdHIoZnJhZ21lbnQpIH0pOworICAgICAgICBtX2Zy
YWdtZW50SW50ZXJ2YWxUcmVlLmFkZCh7IGxvZ2ljYWxIZWlnaHQsIGxvZ2ljYWxIZWlnaHQgKyBm
cmFnbWVudExvZ2ljYWxIZWlnaHQsIGZyYWdtZW50IH0pOwogCiAgICAgICAgIGxvZ2ljYWxIZWln
aHQgKz0gZnJhZ21lbnRMb2dpY2FsSGVpZ2h0OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmgKaW5kZXggMTdmZjA2ZjJmYzEzOTY3Y2I4
YmI1YTJlZjRmYzI1OWZmZTMyNmJkOS4uNzVmYjUwMzcwMzA2OWQwYWQxMDQ4NzIzMzM1MWZiNDMx
NmRjNWU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdt
ZW50ZWRGbG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50
ZWRGbG93LmgKQEAgLTIxNSw4ICsyMTUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIAogICAgICAg
ICB2b2lkIHNldFJhbmdlKFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBzdGFydCwgUmVuZGVyRnJh
Z21lbnRDb250YWluZXIqIGVuZCkKICAgICAgICAgewotICAgICAgICAgICAgbV9zdGFydEZyYWdt
ZW50ID0gbWFrZVdlYWtQdHIoc3RhcnQpOwotICAgICAgICAgICAgbV9lbmRGcmFnbWVudCA9IG1h
a2VXZWFrUHRyKGVuZCk7CisgICAgICAgICAgICBtX3N0YXJ0RnJhZ21lbnQgPSBzdGFydDsKKyAg
ICAgICAgICAgIG1fZW5kRnJhZ21lbnQgPSBlbmQ7CiAgICAgICAgICAgICBtX3JhbmdlSW52YWxp
ZGF0ZWQgPSB0cnVlOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRnVsbFNjcmVlbi5oCmluZGV4IDAzNDU1ZDg2NjM1ZTJjOGYxMWYxYWNlMTBkMTViODhjNDI5
MzA0Y2EuLjY5MDQzMzU5MmM3ZjRlYjIyZjJhYzQ1NjE3ZDEwMGNlZjUxOTk5MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaApAQCAtNDAsNyArNDAsNyBA
QCBwdWJsaWM6CiAgICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICJSZW5kZXJGdWxsU2NyZWVuIjsgfQogCiAgICAgUmVuZGVyQmxvY2sqIHBsYWNlaG9s
ZGVyKCkgeyByZXR1cm4gbV9wbGFjZWhvbGRlci5nZXQoKTsgfQotICAgIHZvaWQgc2V0UGxhY2Vo
b2xkZXIoUmVuZGVyQmxvY2smIHBsYWNlaG9sZGVyKSB7IG1fcGxhY2Vob2xkZXIgPSBtYWtlV2Vh
a1B0cihwbGFjZWhvbGRlcik7IH0KKyAgICB2b2lkIHNldFBsYWNlaG9sZGVyKFJlbmRlckJsb2Nr
JiBwbGFjZWhvbGRlcikgeyBtX3BsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7IH0KIAogICAgIHN0
YXRpYyBSZW5kZXJQdHI8UmVuZGVyRnVsbFNjcmVlbj4gd3JhcE5ld1JlbmRlcmVyKFJlbmRlclRy
ZWVCdWlsZGVyJiwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+LCBSZW5kZXJFbGVtZW50JiBwYXJl
bnQsIERvY3VtZW50Jik7CiAgICAgc3RhdGljIHZvaWQgd3JhcEV4aXN0aW5nUmVuZGVyZXIoUmVu
ZGVyRWxlbWVudCYsIERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW1hZ2VSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW1hZ2VSZXNvdXJjZS5jcHAKaW5kZXggODYyYjVkYjUzMzUxMzg2NDVhMTIxZTY4OTQw
ZmQxYWMxZDY1OGNmOS4uOGYyZTliNjFiNDQ0OGE4ZTNkYmZiNTlmMDRiZmU0M2FjZjkwYTkwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlLmNw
cApAQCAtNDUsNyArNDUsNyBAQCB2b2lkIFJlbmRlckltYWdlUmVzb3VyY2U6OmluaXRpYWxpemUo
UmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIENhY2hlZEltYWdlKiBzdHlsZQogewogICAgIEFTU0VS
VCghbV9yZW5kZXJlcik7CiAgICAgQVNTRVJUKCFtX2NhY2hlZEltYWdlKTsKLSAgICBtX3JlbmRl
cmVyID0gbWFrZVdlYWtQdHIocmVuZGVyZXIpOworICAgIG1fcmVuZGVyZXIgPSByZW5kZXJlcjsK
ICAgICBtX2NhY2hlZEltYWdlID0gc3R5bGVDYWNoZWRJbWFnZTsKICAgICBtX2NhY2hlZEltYWdl
UmVtb3ZlQ2xpZW50SXNOZWVkZWQgPSAhc3R5bGVDYWNoZWRJbWFnZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGFlMzc3MmViNjEyNThhOWYzMTU0Mjlj
YTJkNDg3NWE4ZmVjMDE3OTYuLjAyYzVjMTVjZjY4NzgxOTBjNWEyZTIyMjgyMjkzYzRmZWNkOGE4
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTQxMCw3
ICsxNDEwLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlUGFnaW5hdGlvbigpCiAgICAgLy8g
bGF5ZXJzKS4gV2UgdHJhY2sgYW4gZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyIGluc3RlYWQgb2Yg
dXNpbmcgYSBzaW1wbGUgYml0LCBzaW5jZSB3ZSB3YW50IHRvIGJlIGFibGUgdG8gZ2V0IGJhY2sK
ICAgICAvLyB0byB0aGF0IGxheWVyIGVhc2lseS4KICAgICBpZiAocmVuZGVyZXIoKS5pc1JlbmRl
ckZyYWdtZW50ZWRGbG93KCkpIHsKLSAgICAgICAgbV9lbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIg
PSBtYWtlV2Vha1B0cigqdGhpcyk7CisgICAgICAgIG1fZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVy
ID0gKnRoaXM7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE0MjEsNyArMTQyMSw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVBhZ2luYXRpb24oKQogICAgICAgICBpZiAocGFyZW50
KCktPmhhc1RyYW5zZm9ybSgpKQogICAgICAgICAgICAgbV9lbmNsb3NpbmdQYWdpbmF0aW9uTGF5
ZXIgPSBudWxscHRyOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2VuY2xvc2luZ1BhZ2lu
YXRpb25MYXllciA9IG1ha2VXZWFrUHRyKHBhcmVudCgpLT5lbmNsb3NpbmdQYWdpbmF0aW9uTGF5
ZXIoSW5jbHVkZUNvbXBvc2l0ZWRQYWdpbmF0ZWRMYXllcnMpKTsKKyAgICAgICAgICAgIG1fZW5j
bG9zaW5nUGFnaW5hdGlvbkxheWVyID0gcGFyZW50KCktPmVuY2xvc2luZ1BhZ2luYXRpb25MYXll
cihJbmNsdWRlQ29tcG9zaXRlZFBhZ2luYXRlZExheWVycyk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTE0MzUsNyArMTQzNSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVBhZ2lu
YXRpb24oKQogICAgICAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9jay0+bGF5ZXIoKS0+aGFzVHJh
bnNmb3JtKCkpCiAgICAgICAgICAgICAgICAgbV9lbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIgPSBu
dWxscHRyOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fZW5jbG9zaW5nUGFn
aW5hdGlvbkxheWVyID0gbWFrZVdlYWtQdHIoY29udGFpbmluZ0Jsb2NrLT5sYXllcigpLT5lbmNs
b3NpbmdQYWdpbmF0aW9uTGF5ZXIoSW5jbHVkZUNvbXBvc2l0ZWRQYWdpbmF0ZWRMYXllcnMpKTsK
KyAgICAgICAgICAgICAgICBtX2VuY2xvc2luZ1BhZ2luYXRpb25MYXllciA9IGNvbnRhaW5pbmdC
bG9jay0+bGF5ZXIoKS0+ZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyKEluY2x1ZGVDb21wb3NpdGVk
UGFnaW5hdGVkTGF5ZXJzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0K
QEAgLTE4OTAsNyArMTg5MCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEJhY2tpbmdQcm92aWRl
ckxheWVyKFJlbmRlckxheWVyKiBiYWNraW5nUHJvdmlkZXIpCiAgICAgaWYgKCFyZW5kZXJlcigp
LnJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpKQogICAgICAgICBjbGVhckNsaXBSZWN0c0luY2x1
ZGluZ0Rlc2NlbmRhbnRzKCk7CiAKLSAgICBtX2JhY2tpbmdQcm92aWRlckxheWVyID0gbWFrZVdl
YWtQdHIoYmFja2luZ1Byb3ZpZGVyKTsKKyAgICBtX2JhY2tpbmdQcm92aWRlckxheWVyID0gYmFj
a2luZ1Byb3ZpZGVyOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpkaXNjb25uZWN0RnJvbUJhY2tp
bmdQcm92aWRlckxheWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMDFlMWViOTIwMDUzOTUyMzVjNWQ2YzkzMmQzNGI5
ZDY1ZDUzMWY1NC4uMGNiOWVkMzI0YTQ0Y2VkZmI2NmRlMTllMTc1OGE2OWY0NmE1MTc2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKQEAgLTI0OSw3ICsyNDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmRTaGFyaW5nTGF5
ZXIoUmVuZGVyTGF5ZXImIGxheWVyKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fYmFja2luZ1By
b3ZpZGVyQ2FuZGlkYXRlKTsKLSAgICAgICAgbV9iYWNraW5nU2hhcmluZ0xheWVycy5hcHBlbmQo
bWFrZVdlYWtQdHIobGF5ZXIpKTsKKyAgICAgICAgbV9iYWNraW5nU2hhcmluZ0xheWVycy5hcHBl
bmQobGF5ZXIpOwogICAgIH0KIAogICAgIFJlbmRlckxheWVyKiB1cGRhdGVCZWZvcmVEZXNjZW5k
YW50VHJhdmVyc2FsKFJlbmRlckxheWVyJiwgYm9vbCB3aWxsQmVDb21wb3NpdGVkKTsKQEAgLTQ0
NjIsNyArNDQ2Miw3IEBAIFNjcm9sbGluZ05vZGVJRCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmF0
dGFjaFNjcm9sbGluZ05vZGUoUmVuZGVyTGF5ZXImIGxheWVyLCBTCiAgICAgICAgIG1fY2xpcExh
eWVyLT5zZXRTY3JvbGxpbmdOb2RlSUQobm9kZUlEKTsKICNlbmRpZgogCi0gICAgbV9zY3JvbGxp
bmdOb2RlVG9MYXllck1hcC5hZGQobm9kZUlELCBtYWtlV2Vha1B0cihsYXllcikpOworICAgIG1f
c2Nyb2xsaW5nTm9kZVRvTGF5ZXJNYXAuYWRkKG5vZGVJRCwgbGF5ZXIpOwogCiAgICAgcmV0dXJu
IG5vZGVJRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXlvdXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5b3V0U3Rh
dGUuY3BwCmluZGV4IGExNDBlZjZmNTJlZmZjNzM1YjUzYzJjNDNhZjRiOTUyYzgxZmVhMjAuLjk3
ZjljY2RlZWU4ZWM2MTM1MmE5ZTAzZTAzZjYxYjgxZTUzNTc0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheW91dFN0YXRlLmNwcApAQCAtMjIwLDcgKzIyMCw3IEBA
IHZvaWQgUmVuZGVyTGF5b3V0U3RhdGU6OnByb3BhZ2F0ZUxpbmVHcmlkSW5mbyhjb25zdCBSZW5k
ZXJMYXlvdXRTdGF0ZSYgYW5jZXN0b3IsCiAgICAgaWYgKHJlbmRlcmVyLmlzVW5zcGxpdHRhYmxl
Rm9yUGFnaW5hdGlvbigpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2xpbmVHcmlkID0gbWFr
ZVdlYWtQdHIoYW5jZXN0b3IubGluZUdyaWQoKSk7CisgICAgbV9saW5lR3JpZCA9IGFuY2VzdG9y
LmxpbmVHcmlkKCk7CiAgICAgbV9saW5lR3JpZE9mZnNldCA9IGFuY2VzdG9yLmxpbmVHcmlkT2Zm
c2V0KCk7CiAgICAgbV9saW5lR3JpZFBhZ2luYXRpb25PcmlnaW4gPSBhbmNlc3Rvci5saW5lR3Jp
ZFBhZ2luYXRpb25PcmlnaW4oKTsKIH0KQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIFJlbmRlckxh
eW91dFN0YXRlOjplc3RhYmxpc2hMaW5lR3JpZChjb25zdCBGcmFtZVZpZXdMYXlvdXRDb250ZXh0
OjpMYXlvdXRTdAogICAgICAgICAgICAgaWYgKCFjdXJyZW50R3JpZCkKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGlmIChjdXJyZW50R3JpZC0+c3R5bGUoKS5saW5lR3JpZCgp
ID09IHJlbmRlcmVyLnN0eWxlKCkubGluZUdyaWQoKSkgewotICAgICAgICAgICAgICAgIG1fbGlu
ZUdyaWQgPSBtYWtlV2Vha1B0cihjdXJyZW50R3JpZCk7CisgICAgICAgICAgICAgICAgbV9saW5l
R3JpZCA9IGN1cnJlbnRHcmlkOwogICAgICAgICAgICAgICAgIG1fbGluZUdyaWRPZmZzZXQgPSBj
dXJyZW50U3RhdGUubV9saW5lR3JpZE9mZnNldDsKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CkBAIC0yNDgsNyArMjQ4LDcgQEAgdm9pZCBSZW5kZXJMYXlvdXRTdGF0ZTo6
ZXN0YWJsaXNoTGluZUdyaWQoY29uc3QgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6TGF5b3V0U3QK
ICAgICB9CiAgICAgCiAgICAgLy8gV2UgZGlkbid0IGZpbmQgYW4gYWxyZWFkeS1lc3RhYmxpc2hl
ZCBncmlkIHdpdGggdGhpcyBpZGVudGlmaWVyLiBPdXIgcmVuZGVyIG9iamVjdCBlc3RhYmxpc2hl
cyB0aGUgZ3JpZC4KLSAgICBtX2xpbmVHcmlkID0gbWFrZVdlYWtQdHIocmVuZGVyZXIpOworICAg
IG1fbGluZUdyaWQgPSByZW5kZXJlcjsKICAgICBtX2xpbmVHcmlkT2Zmc2V0ID0gbV9sYXlvdXRP
ZmZzZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmgKaW5k
ZXggMTFmODVjMzg4MGUzM2UxMWY3ZjcyYmUwMTYzZTgwZGYyYjY4OTQ1OC4uODUwZGRlY2E4ZTk0
NTYwMzgwYWQ5NWI2NTExMWJjN2Q5OGE1ZjliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RJdGVtLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIFJlbmRlclN0
eWxlIGNvbXB1dGVNYXJrZXJTdHlsZSgpIGNvbnN0OwogCiAgICAgUmVuZGVyTGlzdE1hcmtlciog
bWFya2VyUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBtX21hcmtlci5nZXQoKTsgfQotICAgIHZv
aWQgc2V0TWFya2VyUmVuZGVyZXIoUmVuZGVyTGlzdE1hcmtlciYgbWFya2VyKSB7IG1fbWFya2Vy
ID0gbWFrZVdlYWtQdHIobWFya2VyKTsgfQorICAgIHZvaWQgc2V0TWFya2VyUmVuZGVyZXIoUmVu
ZGVyTGlzdE1hcmtlciYgbWFya2VyKSB7IG1fbWFya2VyID0gbWFya2VyOyB9CiAKICAgICBib29s
IGlzSW5SZXZlcnNlZE9yZGVyZWRMaXN0KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAppbmRleCBkMmEzYTA4Y2E3NzU0MzY3NDdmMDdl
MGE1YzFkNmVmOGIyYWU0NGI2Li4wMWIxYjAxM2M4MTUyNDc5NDIzM2Y1MDAxMDAxNzYzYjkzYmEz
ZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3Bw
CkBAIC0xNDY1LDcgKzE0NjUsNyBAQCBTdHJpbmcgbGlzdE1hcmtlclRleHQoTGlzdFN0eWxlVHlw
ZSB0eXBlLCBpbnQgdmFsdWUpCiAKIFJlbmRlckxpc3RNYXJrZXI6OlJlbmRlckxpc3RNYXJrZXIo
UmVuZGVyTGlzdEl0ZW0mIGxpc3RJdGVtLCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIDogUmVu
ZGVyQm94KGxpc3RJdGVtLmRvY3VtZW50KCksIFdURk1vdmUoc3R5bGUpLCAwKQotICAgICwgbV9s
aXN0SXRlbShtYWtlV2Vha1B0cihsaXN0SXRlbSkpCisgICAgLCBtX2xpc3RJdGVtKGxpc3RJdGVt
KQogewogICAgIC8vIGluaXQgUmVuZGVyT2JqZWN0IGF0dHJpYnV0ZXMKICAgICBzZXRJbmxpbmUo
dHJ1ZSk7ICAgLy8gb3VyIG9iamVjdCBpcyBJbmxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IDE3ZGY5NGVjNDBjYzJlMTk2NGQwNWNhMjgzMzBk
OTAxMjkwZTIwOTEuLjgxNTc1MzFmODkyNjI1ZmMwZmY0ZjdiZTE0MjU1MmE5OTE2ZjRmNzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMTA1LDcg
KzEwNSw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OndpbGxCZURlc3Ryb3llZCgpCiB2b2lkIFJl
bmRlck1lbnVMaXN0OjpzZXRJbm5lclJlbmRlcmVyKFJlbmRlckJsb2NrJiBpbm5lclJlbmRlcmVy
KQogewogICAgIEFTU0VSVCghbV9pbm5lckJsb2NrLmdldCgpKTsKLSAgICBtX2lubmVyQmxvY2sg
PSBtYWtlV2Vha1B0cihpbm5lclJlbmRlcmVyKTsKKyAgICBtX2lubmVyQmxvY2sgPSBpbm5lclJl
bmRlcmVyOwogICAgIGFkanVzdElubmVyU3R5bGUoKTsKIH0KIApAQCAtMjgwLDcgKzI4MCw3IEBA
IHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNldFRleHQoY29uc3QgU3RyaW5nJiBzKQogICAgICAgICBt
X2J1dHRvblRleHQtPmRpcnR5TGluZUJveGVzKGZhbHNlKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBhdXRvIG5ld0J1dHRvblRleHQgPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0Pihkb2N1bWVu
dCgpLCB0ZXh0VG9Vc2UpOwotICAgICAgICBtX2J1dHRvblRleHQgPSBtYWtlV2Vha1B0cigqbmV3
QnV0dG9uVGV4dCk7CisgICAgICAgIG1fYnV0dG9uVGV4dCA9ICpuZXdCdXR0b25UZXh0OwogICAg
ICAgICAvLyBGSVhNRTogVGhpcyBtdXRhdGlvbiBzaG91bGQgZ28gdGhyb3VnaCB0aGUgbm9ybWFs
IFJlbmRlclRyZWVCdWlsZGVyIHBhdGguCiAgICAgICAgIGlmIChSZW5kZXJUcmVlQnVpbGRlcjo6
Y3VycmVudCgpKQogICAgICAgICAgICAgUmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJlbnQoKS0+YXR0
YWNoKCp0aGlzLCBXVEZNb3ZlKG5ld0J1dHRvblRleHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vo
b2xkZXIuY3BwCmluZGV4IDNmZGJiZmYyMWYzZjBiYjA4ZjQ2NmRjYzk0NjQzNTAzOWQyMmU5NmQu
LjZlZmM1MTViMmU0ODljMGMzNjExMjRhNzcyZDU2N2E0MmM4MDJhZWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bh
bm5lclBsYWNlaG9sZGVyLmNwcApAQCAtNDgsOCArNDgsOCBAQCBSZW5kZXJQdHI8UmVuZGVyTXVs
dGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI+IFJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNl
aG9sZAogCiBSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlcjo6UmVuZGVyTXVsdGlD
b2x1bW5TcGFubmVyUGxhY2Vob2xkZXIoUmVuZGVyTXVsdGlDb2x1bW5GbG93JiBmcmFnbWVudGVk
RmxvdywgUmVuZGVyQm94JiBzcGFubmVyLCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIDogUmVu
ZGVyQm94KGZyYWdtZW50ZWRGbG93LmRvY3VtZW50KCksIFdURk1vdmUoc3R5bGUpLCBSZW5kZXJC
b3hNb2RlbE9iamVjdEZsYWcpCi0gICAgLCBtX3NwYW5uZXIobWFrZVdlYWtQdHIoc3Bhbm5lcikp
Ci0gICAgLCBtX2ZyYWdtZW50ZWRGbG93KG1ha2VXZWFrUHRyKGZyYWdtZW50ZWRGbG93KSkKKyAg
ICAsIG1fc3Bhbm5lcihzcGFubmVyKQorICAgICwgbV9mcmFnbWVudGVkRmxvdyhmcmFnbWVudGVk
RmxvdykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNjcm9sbGJhci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFy
LmNwcAppbmRleCAxZGZiNjNmMGY5OGY0NTljMzU3ZjE4ZWMyNWJjNDEwYzViMWQwNjJkLi5hYjE3
YWU4MTc3MWQ4N2E4ZmExOGZjNDI3ZDRjNzBjYWRjMGQ3NDY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcApAQCAtNDQsNyArNDQsNyBAQCBSZWY8U2Ny
b2xsYmFyPiBSZW5kZXJTY3JvbGxiYXI6OmNyZWF0ZUN1c3RvbVNjcm9sbGJhcihTY3JvbGxhYmxl
QXJlYSYgc2Nyb2xsYWJsZQogUmVuZGVyU2Nyb2xsYmFyOjpSZW5kZXJTY3JvbGxiYXIoU2Nyb2xs
YWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgRWxlbWVudCogb3duZXJFbGVtZW50LCBGcmFtZSogb3duaW5nRnJhbWUpCiAgICAgOiBTY3Jv
bGxiYXIoc2Nyb2xsYWJsZUFyZWEsIG9yaWVudGF0aW9uLCBTY3JvbGxiYXJDb250cm9sU2l6ZTo6
UmVndWxhciwgUmVuZGVyU2Nyb2xsYmFyVGhlbWU6OnJlbmRlclNjcm9sbGJhclRoZW1lKCksIHRy
dWUpCiAgICAgLCBtX293bmVyRWxlbWVudChvd25lckVsZW1lbnQpCi0gICAgLCBtX293bmluZ0Zy
YW1lKG1ha2VXZWFrUHRyKG93bmluZ0ZyYW1lKSkKKyAgICAsIG1fb3duaW5nRnJhbWUob3duaW5n
RnJhbWUpCiB7CiAgICAgQVNTRVJUKG93bmVyRWxlbWVudCB8fCBvd25pbmdGcmFtZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IGI1ZGIxMWQ1OTA1YWE3
MGE4MDkzMWFmOWJlZmY0YTIwNzBiNGYyODguLmJlOWMxNWZmNDhjM2Q4MTFiMjIyODNkYmVlYzgx
MzMxNWVjM2M0ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApA
QCAtMTcwLDI0ICsxNzAsMjQgQEAgdm9pZCBSZW5kZXJUYWJsZTo6d2lsbEluc2VydFRhYmxlU2Vj
dGlvbihSZW5kZXJUYWJsZVNlY3Rpb24mIGNoaWxkLCBSZW5kZXJPYmplY3QKICAgICBjYXNlIERp
c3BsYXlUeXBlOjpUYWJsZUhlYWRlckdyb3VwOgogICAgICAgICByZXNldFNlY3Rpb25Qb2ludGVy
SWZOb3RCZWZvcmUobV9oZWFkLCBiZWZvcmVDaGlsZCk7CiAgICAgICAgIGlmICghbV9oZWFkKQot
ICAgICAgICAgICAgbV9oZWFkID0gbWFrZVdlYWtQdHIoY2hpbGQpOworICAgICAgICAgICAgbV9o
ZWFkID0gY2hpbGQ7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgcmVzZXRTZWN0aW9uUG9p
bnRlcklmTm90QmVmb3JlKG1fZmlyc3RCb2R5LCBiZWZvcmVDaGlsZCk7CiAgICAgICAgICAgICBp
ZiAoIW1fZmlyc3RCb2R5KQotICAgICAgICAgICAgICAgIG1fZmlyc3RCb2R5ID0gbWFrZVdlYWtQ
dHIoY2hpbGQpOworICAgICAgICAgICAgICAgIG1fZmlyc3RCb2R5ID0gY2hpbGQ7CiAgICAgICAg
IH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEaXNwbGF5VHlwZTo6VGFibGVGb290ZXJHcm91
cDoKICAgICAgICAgcmVzZXRTZWN0aW9uUG9pbnRlcklmTm90QmVmb3JlKG1fZm9vdCwgYmVmb3Jl
Q2hpbGQpOwogICAgICAgICBpZiAoIW1fZm9vdCkgewotICAgICAgICAgICAgbV9mb290ID0gbWFr
ZVdlYWtQdHIoY2hpbGQpOworICAgICAgICAgICAgbV9mb290ID0gY2hpbGQ7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIERpc3Bs
YXlUeXBlOjpUYWJsZVJvd0dyb3VwOgogICAgICAgICByZXNldFNlY3Rpb25Qb2ludGVySWZOb3RC
ZWZvcmUobV9maXJzdEJvZHksIGJlZm9yZUNoaWxkKTsKICAgICAgICAgaWYgKCFtX2ZpcnN0Qm9k
eSkKLSAgICAgICAgICAgIG1fZmlyc3RCb2R5ID0gbWFrZVdlYWtQdHIoY2hpbGQpOworICAgICAg
ICAgICAgbV9maXJzdEJvZHkgPSBjaGlsZDsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBS
ZW5kZXJUYWJsZTo6d2lsbEluc2VydFRhYmxlU2VjdGlvbihSZW5kZXJUYWJsZVNlY3Rpb24mIGNo
aWxkLCBSZW5kZXJPYmplY3QKIHZvaWQgUmVuZGVyVGFibGU6OmFkZENhcHRpb24oUmVuZGVyVGFi
bGVDYXB0aW9uJiBjYXB0aW9uKQogewogICAgIEFTU0VSVChtX2NhcHRpb25zLmZpbmQoJmNhcHRp
b24pID09IG5vdEZvdW5kKTsKLSAgICBtX2NhcHRpb25zLmFwcGVuZChtYWtlV2Vha1B0cihjYXB0
aW9uKSk7CisgICAgbV9jYXB0aW9ucy5hcHBlbmQoY2FwdGlvbik7CiB9CiAKIHZvaWQgUmVuZGVy
VGFibGU6OnJlbW92ZUNhcHRpb24oUmVuZGVyVGFibGVDYXB0aW9uJiBvbGRDYXB0aW9uKQpAQCAt
OTQyLDcgKzk0Miw3IEBAIHZvaWQgUmVuZGVyVGFibGU6OnVwZGF0ZUNvbHVtbkNhY2hlKCkgY29u
c3QKICAgICBmb3IgKFJlbmRlclRhYmxlQ29sKiBjb2x1bW5SZW5kZXJlciA9IGZpcnN0Q29sdW1u
KCk7IGNvbHVtblJlbmRlcmVyOyBjb2x1bW5SZW5kZXJlciA9IGNvbHVtblJlbmRlcmVyLT5uZXh0
Q29sdW1uKCkpIHsKICAgICAgICAgaWYgKGNvbHVtblJlbmRlcmVyLT5pc1RhYmxlQ29sdW1uR3Jv
dXBXaXRoQ29sdW1uQ2hpbGRyZW4oKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBt
X2NvbHVtblJlbmRlcmVycy5hcHBlbmQobWFrZVdlYWtQdHIoY29sdW1uUmVuZGVyZXIpKTsKKyAg
ICAgICAgbV9jb2x1bW5SZW5kZXJlcnMuYXBwZW5kKGNvbHVtblJlbmRlcmVyKTsKICAgICAgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCBsb29rIHRvIGNvbXB1dGUgdGhlIGVmZmVjdGl2ZSBjb2x1bW4g
aW5kZXggc3VjY2Vzc2l2ZWx5IGZyb20gcHJldmlvdXMgdmFsdWVzIGluc3RlYWQgb2YKICAgICAg
ICAgLy8gY2FsbGluZyBjb2xUb0VmZkNvbCgpLCB3aGljaCBpcyBpbiBPKG51bUVmZkNvbHMoKSku
IEFsdGhvdWdoIGl0J3MgdW5saWtlbHkgdGhhdCB0aGlzIGlzIGEgaG90IGZ1bmN0aW9uLgogICAg
ICAgICBtX2VmZmVjdGl2ZUNvbHVtbkluZGV4TWFwLmFkZChjb2x1bW5SZW5kZXJlciwgY29sVG9F
ZmZDb2woY29sdW1uSW5kZXgpKTsKQEAgLTEwODAsOSArMTA4MCw5IEBAIHZvaWQgUmVuZGVyVGFi
bGU6OnJlY2FsY1NlY3Rpb25zKCkgY29uc3QKICAgICAgICAgICAgIGlmIChpczxSZW5kZXJUYWJs
ZVNlY3Rpb24+KCpjaGlsZCkpIHsKICAgICAgICAgICAgICAgICBSZW5kZXJUYWJsZVNlY3Rpb24m
IHNlY3Rpb24gPSBkb3duY2FzdDxSZW5kZXJUYWJsZVNlY3Rpb24+KCpjaGlsZCk7CiAgICAgICAg
ICAgICAgICAgaWYgKCFtX2hlYWQpCi0gICAgICAgICAgICAgICAgICAgIG1faGVhZCA9IG1ha2VX
ZWFrUHRyKHNlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBtX2hlYWQgPSBzZWN0aW9uOwog
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFtX2ZpcnN0Qm9keSkKLSAgICAgICAgICAgICAgICAg
ICAgbV9maXJzdEJvZHkgPSBtYWtlV2Vha1B0cihzZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAg
ICAgbV9maXJzdEJvZHkgPSBzZWN0aW9uOwogICAgICAgICAgICAgICAgIHNlY3Rpb24ucmVjYWxj
Q2VsbHNJZk5lZWRlZCgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0x
MDkwLDkgKzEwOTAsOSBAQCB2b2lkIFJlbmRlclRhYmxlOjpyZWNhbGNTZWN0aW9ucygpIGNvbnN0
CiAgICAgICAgICAgICBpZiAoaXM8UmVuZGVyVGFibGVTZWN0aW9uPigqY2hpbGQpKSB7CiAgICAg
ICAgICAgICAgICAgUmVuZGVyVGFibGVTZWN0aW9uJiBzZWN0aW9uID0gZG93bmNhc3Q8UmVuZGVy
VGFibGVTZWN0aW9uPigqY2hpbGQpOwogICAgICAgICAgICAgICAgIGlmICghbV9mb290KQotICAg
ICAgICAgICAgICAgICAgICBtX2Zvb3QgPSBtYWtlV2Vha1B0cihzZWN0aW9uKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9mb290ID0gc2VjdGlvbjsKICAgICAgICAgICAgICAgICBlbHNlIGlmICgh
bV9maXJzdEJvZHkpCi0gICAgICAgICAgICAgICAgICAgIG1fZmlyc3RCb2R5ID0gbWFrZVdlYWtQ
dHIoc2VjdGlvbik7CisgICAgICAgICAgICAgICAgICAgIG1fZmlyc3RCb2R5ID0gc2VjdGlvbjsK
ICAgICAgICAgICAgICAgICBzZWN0aW9uLnJlY2FsY0NlbGxzSWZOZWVkZWQoKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTEwMCw3ICsxMTAwLDcgQEAgdm9pZCBSZW5k
ZXJUYWJsZTo6cmVjYWxjU2VjdGlvbnMoKSBjb25zdAogICAgICAgICAgICAgaWYgKGlzPFJlbmRl
clRhYmxlU2VjdGlvbj4oKmNoaWxkKSkgewogICAgICAgICAgICAgICAgIFJlbmRlclRhYmxlU2Vj
dGlvbiYgc2VjdGlvbiA9IGRvd25jYXN0PFJlbmRlclRhYmxlU2VjdGlvbj4oKmNoaWxkKTsKICAg
ICAgICAgICAgICAgICBpZiAoIW1fZmlyc3RCb2R5KQotICAgICAgICAgICAgICAgICAgICBtX2Zp
cnN0Qm9keSA9IG1ha2VXZWFrUHRyKHNlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBtX2Zp
cnN0Qm9keSA9IHNlY3Rpb247CiAgICAgICAgICAgICAgICAgc2VjdGlvbi5yZWNhbGNDZWxsc0lm
TmVlZGVkKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAppbmRleCBhZWQ5NjYxMThjMTEwNTQyYjI3MzM2ZDE4
ZTI0NzM3ZDgyYzE4ZTE2Li5lMjA4MDljN2M0N2Q0ZDEzNDdkM2Y4NWRkYzkyMjQ2YmQyYjgwMThk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0xODE5LDcgKzE4
MTksNyBAQCB2b2lkIFJlbmRlclRleHQ6OnNldElubGluZVdyYXBwZXJGb3JEaXNwbGF5Q29udGVu
dHMoUmVuZGVySW5saW5lKiB3cmFwcGVyKQogICAgICAgICBtX2hhc0lubGluZVdyYXBwZXJGb3JE
aXNwbGF5Q29udGVudHMgPSBmYWxzZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpbmxp
bmVXcmFwcGVyRm9yRGlzcGxheUNvbnRlbnRzTWFwKCkuYWRkKHRoaXMsIG1ha2VXZWFrUHRyKHdy
YXBwZXIpKTsKKyAgICBpbmxpbmVXcmFwcGVyRm9yRGlzcGxheUNvbnRlbnRzTWFwKCkuYWRkKHRo
aXMsIHdyYXBwZXIpOwogICAgIG1faGFzSW5saW5lV3JhcHBlckZvckRpc3BsYXlDb250ZW50cyA9
IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21l
bnQuaAppbmRleCBkMjhmZDY2NWUyMGZkNDY5ZjFlYjBlMjAzNTE5ZDM3Zjc0YjM1NDI1Li41OGUx
ZGU5M2NkODBkMTgwZmQyNGI2MzlhOTVjMzVjMGZkODE5YmMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCBlbmQoKSBjb25zdCB7IHJldHVybiBtX2VuZDsgfQogCiAgICAgUmVu
ZGVyQm94TW9kZWxPYmplY3QqIGZpcnN0TGV0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdExl
dHRlci5nZXQoKTsgfQotICAgIHZvaWQgc2V0Rmlyc3RMZXR0ZXIoUmVuZGVyQm94TW9kZWxPYmpl
Y3QmIGZpcnN0TGV0dGVyKSB7IG1fZmlyc3RMZXR0ZXIgPSBtYWtlV2Vha1B0cihmaXJzdExldHRl
cik7IH0KKyAgICB2b2lkIHNldEZpcnN0TGV0dGVyKFJlbmRlckJveE1vZGVsT2JqZWN0JiBmaXJz
dExldHRlcikgeyBtX2ZpcnN0TGV0dGVyID0gZmlyc3RMZXR0ZXI7IH0KICAgICAKICAgICBSZW5k
ZXJCbG9jayogYmxvY2tGb3JBY2NvbXBhbnlpbmdGaXJzdExldHRlcigpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggOGEwNGVkOTAwZTY0YmRiZmJiZmZjZWI3
MjM4MDMwNmYwZGE3OWNlMC4uNzk5NDUzNjBkZDFlYWVkMzQ4ODE3MGExZjg1NTUwNTcyMTE3OGI4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtODY0LDcgKzg2
NCw3IEBAIFJlbmRlclZpZXc6OlJlcGFpbnRSZWdpb25BY2N1bXVsYXRvcjo6UmVwYWludFJlZ2lv
bkFjY3VtdWxhdG9yKFJlbmRlclZpZXcqIHZpZXcpCiAgICAgbV93YXNBY2N1bXVsYXRpbmdSZXBh
aW50UmVnaW9uID0gISFyb290UmVuZGVyVmlldy0+bV9hY2N1bXVsYXRlZFJlcGFpbnRSZWdpb247
CiAgICAgaWYgKCFtX3dhc0FjY3VtdWxhdGluZ1JlcGFpbnRSZWdpb24pCiAgICAgICAgIHJvb3RS
ZW5kZXJWaWV3LT5tX2FjY3VtdWxhdGVkUmVwYWludFJlZ2lvbiA9IG1ha2VVbmlxdWU8UmVnaW9u
PigpOwotICAgIG1fcm9vdFZpZXcgPSBtYWtlV2Vha1B0cigqcm9vdFJlbmRlclZpZXcpOworICAg
IG1fcm9vdFZpZXcgPSAqcm9vdFJlbmRlclZpZXc7CiB9CiAKIFJlbmRlclZpZXc6OlJlcGFpbnRS
ZWdpb25BY2N1bXVsYXRvcjo6flJlcGFpbnRSZWdpb25BY2N1bXVsYXRvcigpCkBAIC05MTcsMTIg
KzkxNywxMiBAQCB1bnNpZ25lZCBSZW5kZXJWaWV3OjpwYWdlQ291bnQoKSBjb25zdAogdm9pZCBS
ZW5kZXJWaWV3OjpsYXllckNoaWxkcmVuQ2hhbmdlZER1cmluZ1N0eWxlQ2hhbmdlKFJlbmRlckxh
eWVyJiBsYXllcikKIHsKICAgICBpZiAoIW1fc3R5bGVDaGFuZ2VMYXllck11dGF0aW9uUm9vdCkg
ewotICAgICAgICBtX3N0eWxlQ2hhbmdlTGF5ZXJNdXRhdGlvblJvb3QgPSBtYWtlV2Vha1B0cihs
YXllcik7CisgICAgICAgIG1fc3R5bGVDaGFuZ2VMYXllck11dGF0aW9uUm9vdCA9IGxheWVyOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUmVuZGVyTGF5ZXIqIGNvbW1vbkFuY2VzdG9y
ID0gbV9zdHlsZUNoYW5nZUxheWVyTXV0YXRpb25Sb290LT5jb21tb25BbmNlc3RvcldpdGhMYXll
cihsYXllcik7Ci0gICAgbV9zdHlsZUNoYW5nZUxheWVyTXV0YXRpb25Sb290ID0gbWFrZVdlYWtQ
dHIoY29tbW9uQW5jZXN0b3IpOworICAgIG1fc3R5bGVDaGFuZ2VMYXllck11dGF0aW9uUm9vdCA9
IGNvbW1vbkFuY2VzdG9yOwogfQogCiBSZW5kZXJMYXllciogUmVuZGVyVmlldzo6dGFrZVN0eWxl
Q2hhbmdlTGF5ZXJUcmVlTXV0YXRpb25Sb290KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5oCmluZGV4IGEwYjg4N2Y3YmYxMGE5
ZWFiM2NhZWZkNzU5OTRkMjVhYTRlYTVjMmQuLmI5ZGMxY2Q3MjYyNGQzMDg3YmYxYzdhYTRlNDg4
MmVkMmE5M2U5ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MRmVuY2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxGZW5jZWQuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgU3Ry
aW5nIGNsb3NpbmdCcmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xvc2U7IH0KIAogICAgIFJlbmRl
ck1hdGhNTEZlbmNlZE9wZXJhdG9yKiBjbG9zZUZlbmNlUmVuZGVyZXIoKSBjb25zdCB7IHJldHVy
biBtX2Nsb3NlRmVuY2VSZW5kZXJlci5nZXQoKTsgfQotICAgIHZvaWQgc2V0Q2xvc2VGZW5jZVJl
bmRlcmVyKFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yJiByZW5kZXJlcikgeyBtX2Nsb3NlRmVu
Y2VSZW5kZXJlciA9IG1ha2VXZWFrUHRyKHJlbmRlcmVyKTsgfQorICAgIHZvaWQgc2V0Q2xvc2VG
ZW5jZVJlbmRlcmVyKFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yJiByZW5kZXJlcikgeyBtX2Ns
b3NlRmVuY2VSZW5kZXJlciA9IHJlbmRlcmVyOyB9CiAKICAgICB2b2lkIHVwZGF0ZUZyb21FbGVt
ZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1
cHBvcnQuY3BwCmluZGV4IDhjMjJkMWU1NDY1OTgxYWY4MDIzMmQyYmU4MjIwMmU1NDIxMGFmNTUu
LjQ5YjZlNWNkNzNiN2Q0ODBjOWRiYWQ3NzJmZjZjMzJhODA1OWIwY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcApAQCAtNTMxLDcg
KzUzMSw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6dXBkYXRlTWFza2VkQW5jZXN0b3JTaG91
bGRJc29sYXRlQmxlbmRpbmcoY29uc3QgUmVuZGVyRWxlCiAKIFNWR0hpdFRlc3RDeWNsZURldGVj
dGlvblNjb3BlOjpTVkdIaXRUZXN0Q3ljbGVEZXRlY3Rpb25TY29wZShjb25zdCBSZW5kZXJFbGVt
ZW50JiBlbGVtZW50KQogewotICAgIG1fZWxlbWVudCA9IG1ha2VXZWFrUHRyKCZlbGVtZW50KTsK
KyAgICBtX2VsZW1lbnQgPSBlbGVtZW50OwogICAgIGF1dG8gcmVzdWx0ID0gdmlzaXRlZEVsZW1l
bnRzKCkuYWRkKCptX2VsZW1lbnQpOwogICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQu
aXNOZXdFbnRyeSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcAppbmRleCA0MzBhMzQyZjYzYjkzODQ0ZjQxYjc1
N2IwZGZhZDlhYWJiMjdjY2M0Li41ODE4ZjM4YzM4OTkzNjNkNjY4ZDNjY2QzNDhkZGM5MWIyNTMy
MzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlQnVpbGRlci5jcHAKQEAgLTczMSw3ICs3MzEsNyBAQCBSZW5kZXJPYmplY3QqIFJl
bmRlclRyZWVCdWlsZGVyOjpzcGxpdEFub255bW91c0JveGVzQXJvdW5kQ2hpbGQoUmVuZGVyQm94
JiBwYXJlbgogdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6Y2hpbGRGbG93U3RhdGVDaGFuZ2VzQW5k
QWZmZWN0c1BhcmVudEJsb2NrKFJlbmRlckVsZW1lbnQmIGNoaWxkKQogewogICAgIGlmICghY2hp
bGQuaXNJbmxpbmUoKSkgewotICAgICAgICBhdXRvIHBhcmVudCA9IG1ha2VXZWFrUHRyKGNoaWxk
LnBhcmVudCgpKTsKKyAgICAgICAgV2Vha1B0ciBwYXJlbnQgPSBjaGlsZC5wYXJlbnQoKTsKICAg
ICAgICAgaWYgKGlzPFJlbmRlckJsb2NrPigqcGFyZW50KSkKICAgICAgICAgICAgIGJsb2NrQnVp
bGRlcigpLmNoaWxkQmVjYW1lTm9uSW5saW5lKGRvd25jYXN0PFJlbmRlckJsb2NrPigqcGFyZW50
KSwgY2hpbGQpOwogICAgICAgICBlbHNlIGlmIChpczxSZW5kZXJJbmxpbmU+KCpwYXJlbnQpKQpA
QCAtODYzLDcgKzg2Myw3IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OmRlc3Ryb3lBbmRDbGVh
blVwQW5vbnltb3VzV3JhcHBlcnMoUmVuZGVyT2JqZWN0JiByZW5kZXJlCiAgICAgY29sbGFwc2VB
bmREZXN0cm95QW5vbnltb3VzU2libGluZ3MoKTsKIAogICAgIC8vIEZJWE1FOiBEbyBub3QgdHJ5
IHRvIGNvbGxhcHNlL2NsZWFudXAgdGhlIGFub255bW91cyB3cmFwcGVycyBpbnNpZGUgZGVzdHJv
eSAoc2VlIHdlYmtpdC5vcmcvYi8xODY3NDYpLgotICAgIGF1dG8gZGVzdHJveVJvb3RQYXJlbnQg
PSBtYWtlV2Vha1B0cigqZGVzdHJveVJvb3QucGFyZW50KCkpOworICAgIFdlYWtQdHIgZGVzdHJv
eVJvb3RQYXJlbnQgPSAqZGVzdHJveVJvb3QucGFyZW50KCk7CiAgICAgaWYgKCZyZW5kZXJlclRv
RGVzdHJveSAhPSAmZGVzdHJveVJvb3QpIHsKICAgICAgICAgLy8gRGVzdHJveSB0aGUgY2hpbGQg
cmVuZGVyZXIgZmlyc3QsIGJlZm9yZSB3ZSBzdGFydCB0ZWFyaW5nIGRvd24gdGhlIGFub255bW91
cyB3cmFwcGVyIGFuY2VzdG9yIGNoYWluLgogICAgICAgICBkZXN0cm95KHJlbmRlcmVyVG9EZXN0
cm95KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlQnVpbGRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcAppbmRleCA1NjhhMjJjMmMwNjJmMDdiNDUzNjVm
OWMzMTcyMDU3NTQ0MTc1MTA3Li4xNmVlMGZkZWFmYzg0NmM0ZDY1YjBlYTY0YzE3OGUzMjc3YTNh
YmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZUJ1aWxkZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVCdWlsZGVyQmxvY2suY3BwCkBAIC0yODcsOCArMjg3LDggQEAgUmVuZGVy
UHRyPFJlbmRlck9iamVjdD4gUmVuZGVyVHJlZUJ1aWxkZXI6OkJsb2NrOjpkZXRhY2goUmVuZGVy
QmxvY2smIHBhcmVudCwgUmUKIAogICAgIC8vIElmIHRoaXMgY2hpbGQgaXMgYSBibG9jaywgYW5k
IGlmIG91ciBwcmV2aW91cyBhbmQgbmV4dCBzaWJsaW5ncyBhcmUgYm90aCBhbm9ueW1vdXMgYmxv
Y2tzCiAgICAgLy8gd2l0aCBpbmxpbmUgY29udGVudCwgdGhlbiB3ZSBjYW4gZm9sZCB0aGUgaW5s
aW5lIGNvbnRlbnQgYmFjayB0b2dldGhlci4KLSAgICBhdXRvIHByZXYgPSBtYWtlV2Vha1B0cihv
bGRDaGlsZC5wcmV2aW91c1NpYmxpbmcoKSk7Ci0gICAgYXV0byBuZXh0ID0gbWFrZVdlYWtQdHIo
b2xkQ2hpbGQubmV4dFNpYmxpbmcoKSk7CisgICAgV2Vha1B0ciBwcmV2ID0gb2xkQ2hpbGQucHJl
dmlvdXNTaWJsaW5nKCk7CisgICAgV2Vha1B0ciBuZXh0ID0gb2xkQ2hpbGQubmV4dFNpYmxpbmco
KTsKICAgICBib29sIGNhbk1lcmdlQW5vbnltb3VzQmxvY2tzID0gY2FuQ29sbGFwc2VBbm9ueW1v
dXNCbG9jayA9PSBDYW5Db2xsYXBzZUFub255bW91c0Jsb2NrOjpZZXMgJiYgY2FuTWVyZ2VDb250
aWd1b3VzQW5vbnltb3VzQmxvY2tzKG9sZENoaWxkLCBwcmV2LmdldCgpLCBuZXh0LmdldCgpKTsK
IAogICAgIGF1dG8gdGFrZW5DaGlsZCA9IG1fYnVpbGRlci5kZXRhY2hGcm9tUmVuZGVyRWxlbWVu
dChwYXJlbnQsIG9sZENoaWxkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckZpcnN0TGV0dGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckZpcnN0TGV0dGVyLmNwcApp
bmRleCA3MjE0Y2YxM2M0ODE2ODA0ZGE2ZTM4NGE0ZWIxNmFkZGZhYzViNGFjLi4wNTBlYTQ1Nzhl
ZDdhMDVlMjllNDc1YzkxZGE5MWVlYjBlY2M5MDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyRmly
c3RMZXR0ZXIuY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6
Rmlyc3RMZXR0ZXI6OnVwZGF0ZVN0eWxlKFJlbmRlckJsb2NrJiBmaXJzdExldHRlckJsb2NrLAog
ICAgICAgICAgICAgcmVtYWluaW5nVGV4dC0+c2V0Rmlyc3RMZXR0ZXIoKm5ld0ZpcnN0TGV0dGVy
KTsKICAgICAgICAgICAgIG5ld0ZpcnN0TGV0dGVyLT5zZXRGaXJzdExldHRlclJlbWFpbmluZ1Rl
eHQoKnJlbWFpbmluZ1RleHQpOwogICAgICAgICB9Ci0gICAgICAgIFdlYWtQdHI8UmVuZGVyT2Jq
ZWN0PiBuZXh0U2libGluZyA9IG1ha2VXZWFrUHRyKGZpcnN0TGV0dGVyLT5uZXh0U2libGluZygp
KTsKKyAgICAgICAgV2Vha1B0ciBuZXh0U2libGluZyA9IGZpcnN0TGV0dGVyLT5uZXh0U2libGlu
ZygpOwogICAgICAgICBtX2J1aWxkZXIuZGVzdHJveSgqZmlyc3RMZXR0ZXIpOwogICAgICAgICBt
X2J1aWxkZXIuYXR0YWNoKCpmaXJzdExldHRlckNvbnRhaW5lciwgV1RGTW92ZShuZXdGaXJzdExl
dHRlciksIG5leHRTaWJsaW5nLmdldCgpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjUxLDggKzI1
MSw4IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OkZpcnN0TGV0dGVyOjpjcmVhdGVSZW5kZXJl
cnMoUmVuZGVyQmxvY2smIGZpcnN0TGV0dGVyQmxvCiAgICAgICAgIH0KIAogICAgICAgICBhdXRv
KiB0ZXh0Tm9kZSA9IGN1cnJlbnRUZXh0Q2hpbGQudGV4dE5vZGUoKTsKLSAgICAgICAgYXV0byBi
ZWZvcmVDaGlsZCA9IG1ha2VXZWFrUHRyKGN1cnJlbnRUZXh0Q2hpbGQubmV4dFNpYmxpbmcoKSk7
Ci0gICAgICAgIGF1dG8gaW5saW5lV3JhcHBlckZvckRpc3BsYXlDb250ZW50cyA9IG1ha2VXZWFr
UHRyKGN1cnJlbnRUZXh0Q2hpbGQuaW5saW5lV3JhcHBlckZvckRpc3BsYXlDb250ZW50cygpKTsK
KyAgICAgICAgV2Vha1B0ciBiZWZvcmVDaGlsZCA9IGN1cnJlbnRUZXh0Q2hpbGQubmV4dFNpYmxp
bmcoKTsKKyAgICAgICAgV2Vha1B0ciBpbmxpbmVXcmFwcGVyRm9yRGlzcGxheUNvbnRlbnRzID0g
Y3VycmVudFRleHRDaGlsZC5pbmxpbmVXcmFwcGVyRm9yRGlzcGxheUNvbnRlbnRzKCk7CiAgICAg
ICAgIGF1dG8gaGFzSW5saW5lV3JhcHBlckZvckRpc3BsYXlDb250ZW50cyA9IGlubGluZVdyYXBw
ZXJGb3JEaXNwbGF5Q29udGVudHMuZ2V0KCk7CiAgICAgICAgIG1fYnVpbGRlci5kZXN0cm95KGN1
cnJlbnRUZXh0Q2hpbGQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5jcHAKaW5k
ZXggMjhmNDdkMmU5ODI4YTg5OWZmNDczY2ZiNWQ3MThlMGViZDk1OWFiMS4uYzE5NDFiOTlhOWMw
NjgzMTM5MDQxNzM0ZGM3Y2JkYzM2MTkwZmYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTXVsdGlDb2x1bW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck11bHRp
Q29sdW1uLmNwcApAQCAtMjk1LDcgKzI5NSw3IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6Ok11
bHRpQ29sdW1uOjptdWx0aUNvbHVtbkRlc2NlbmRhbnRJbnNlcnRlZChSZW5kZXJNdWx0aUNvCiAg
ICAgICAgICAgICAvLyBjb2x1bW4gc2V0cy4KICAgICAgICAgICAgIFJlbmRlck11bHRpQ29sdW1u
U3Bhbm5lclBsYWNlaG9sZGVyJiBwbGFjZWhvbGRlciA9IGRvd25jYXN0PFJlbmRlck11bHRpQ29s
dW1uU3Bhbm5lclBsYWNlaG9sZGVyPigqZGVzY2VuZGFudCk7CiAgICAgICAgICAgICBBU1NFUlQo
IWZsb3cuc3Bhbm5lck1hcCgpLmdldChwbGFjZWhvbGRlci5zcGFubmVyKCkpKTsKLSAgICAgICAg
ICAgIGZsb3cuc3Bhbm5lck1hcCgpLmFkZChwbGFjZWhvbGRlci5zcGFubmVyKCksIG1ha2VXZWFr
UHRyKGRvd25jYXN0PFJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyPihkZXNjZW5k
YW50KSkpOworICAgICAgICAgICAgZmxvdy5zcGFubmVyTWFwKCkuYWRkKHBsYWNlaG9sZGVyLnNw
YW5uZXIoKSwgZG93bmNhc3Q8UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI+KGRl
c2NlbmRhbnQpKTsKICAgICAgICAgICAgIEFTU0VSVCghcGxhY2Vob2xkZXIuZmlyc3RDaGlsZCgp
KTsgLy8gVGhlcmUgc2hvdWxkIGJlIG5vIGNoaWxkcmVuIGhlcmUsIGJ1dCBpZiB0aGVyZSBhcmUs
IHdlIG91Z2h0IHRvIHNraXAgdGhlbS4KICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBkZXNj
ZW5kYW50ID0gcHJvY2Vzc1Bvc3NpYmxlU3Bhbm5lckRlc2NlbmRhbnQoZmxvdywgc3VidHJlZVJv
b3QsICpkZXNjZW5kYW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3VwZGF0aW5nL1JlbmRlclRyZWVQb3NpdGlvbi5jcHAKaW5kZXggNTQ1Mzg5MjRjZjQyOTEzOTI3
ZTYzNjcwNGNmYTI4N2I3MDBjMmVkNC4uNzY5MjY2OTgwZDZhNWU1OTdlNDUxYjAxMTgwYmMxNGY3
MGU2ZDEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVQb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVQb3NpdGlvbi5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdm9pZCBSZW5kZXJU
cmVlUG9zaXRpb246OmNvbXB1dGVOZXh0U2libGluZyhjb25zdCBOb2RlJiBub2RlKQogI2VuZGlm
CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgbV9uZXh0U2libGluZyA9IG1ha2VXZWFrUHRy
KG5leHRTaWJsaW5nUmVuZGVyZXIobm9kZSkpOworICAgIG1fbmV4dFNpYmxpbmcgPSBuZXh0U2li
bGluZ1JlbmRlcmVyKG5vZGUpOwogICAgIG1faGFzVmFsaWROZXh0U2libGluZyA9IHRydWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlUG9zaXRpb24uaAppbmRleCA4Mzg5MGU0NTU0ZmI3N2RjM2IxMWJmODMzMjQwOTJkODYxMDNk
ODkxLi43Y2UyYTljYmExYTk1OGRhN2Q4NTU2ZTJkYTg1ZThkODg5MTAwYmE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVBvc2l0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVQb3NpdGlv
bi5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgUmVuZGVyVHJlZVBvc2l0
aW9uKFJlbmRlckVsZW1lbnQmIHBhcmVudCwgUmVuZGVyT2JqZWN0KiBuZXh0U2libGluZykKICAg
ICAgICAgOiBtX3BhcmVudChwYXJlbnQpCi0gICAgICAgICwgbV9uZXh0U2libGluZyhtYWtlV2Vh
a1B0cihuZXh0U2libGluZykpCisgICAgICAgICwgbV9uZXh0U2libGluZyhuZXh0U2libGluZykK
ICAgICAgICAgLCBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcodHJ1ZSkKICAgICB7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRh
dGVyR2VuZXJhdGVkQ29udGVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZVVwZGF0ZXJHZW5lcmF0ZWRDb250ZW50LmNwcAppbmRleCBjYzRhYzViNWJl
ZjM3MzcwOGI2MWM0ODFhOTk1YzQ5NWE5MDg2NWE0Li5hNzk3OGZjYjU4NjY0ZGQ5Nzk2NzNmNTY5
YTg4NzgyMTQ3N2E5MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXJHZW5lcmF0ZWRDb250ZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXJHZW5lcmF0ZWRDb250
ZW50LmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjpHZW5lcmF0
ZWRDb250ZW50Ojp1cGRhdGVRdW90ZXNVcFRvKFJlbmRlclF1b3RlKiBsYXN0UXVvdAogICAgICAg
ICBhdXRvJiBxdW90ZSA9ICppdDsKICAgICAgICAgLy8gUXVvdGUgY2hhcmFjdGVyIGRlcGVuZHMg
b24gcXVvdGUgZGVwdGggc28gd2UgY2hhaW4gdGhlIHVwZGF0ZXMuCiAgICAgICAgIHF1b3RlLnVw
ZGF0ZVJlbmRlcmVyKG1fdXBkYXRlci5tX2J1aWxkZXIsIG1fcHJldmlvdXNVcGRhdGVkUXVvdGUu
Z2V0KCkpOwotICAgICAgICBtX3ByZXZpb3VzVXBkYXRlZFF1b3RlID0gbWFrZVdlYWtQdHIocXVv
dGUpOworICAgICAgICBtX3ByZXZpb3VzVXBkYXRlZFF1b3RlID0gcXVvdGU7CiAgICAgICAgIGlm
ICgmcXVvdGUgPT0gbGFzdFF1b3RlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5
MiwxMyArMTkyLDEzIEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OkdlbmVyYXRlZENvbnRlbnQ6
OnVwZGF0ZUJhY2tkcm9wUmVuZGVyZXIoUmVuZGVyRWxlbWVudCYKICAgICBlbHNlIHsKICAgICAg
ICAgbmV3QmFja2Ryb3BSZW5kZXJlciA9IFdlYkNvcmU6OmNyZWF0ZVJlbmRlcmVyPFJlbmRlckJs
b2NrRmxvdz4ocmVuZGVyZXIuZG9jdW1lbnQoKSwgV1RGTW92ZShuZXdTdHlsZSkpOwogICAgICAg
ICBuZXdCYWNrZHJvcFJlbmRlcmVyLT5pbml0aWFsaXplU3R5bGUoKTsKLSAgICAgICAgYmFja2Ry
b3BSZW5kZXJlciA9IG1ha2VXZWFrUHRyKG5ld0JhY2tkcm9wUmVuZGVyZXIuZ2V0KCkpOworICAg
ICAgICBiYWNrZHJvcFJlbmRlcmVyID0gbmV3QmFja2Ryb3BSZW5kZXJlci5nZXQoKTsKICAgICAg
ICAgcmVuZGVyZXIuc2V0QmFja2Ryb3BSZW5kZXJlcigqYmFja2Ryb3BSZW5kZXJlcik7CiAgICAg
fQogCiAgICAgLy8gVXBkYXRlIG9yIGF0dGFjaCB0byByZW5kZXJlciBwYXJlbnQKLSAgICBhdXRv
IGN1cnJlbnRQYXJlbnQgPSBtYWtlV2Vha1B0cihiYWNrZHJvcFJlbmRlcmVyLT5wYXJlbnQoKSk7
Ci0gICAgYXV0byBuZXdQYXJlbnQgPSBtYWtlV2Vha1B0cihyZW5kZXJlci5wYXJlbnQoKSk7Cisg
ICAgV2Vha1B0ciBjdXJyZW50UGFyZW50ID0gYmFja2Ryb3BSZW5kZXJlci0+cGFyZW50KCk7Cisg
ICAgV2Vha1B0ciBuZXdQYXJlbnQgPSByZW5kZXJlci5wYXJlbnQoKTsKIAogICAgIEFTU0VSVChu
ZXdQYXJlbnQsICJTaG91bGQgaGF2ZSBuZXcgcGFyZW50Iik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVt
ZW50LmNwcAppbmRleCA3MmQxNDY4NTVlOGY1MDNhMTRiMjlhYzM0YjlhOTUwZGY4MDkyY2ZlLi41
Y2M2ODExMzNiNWE4MTU2NDM1ZjM5ZjUyYjE2MjM0ZGM1NjNiNDIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0VsZW1lbnQuY3BwCkBAIC0zMjEsNyArMzIxLDcgQEAgdm9pZCBTVkdFbGVtZW50OjphZGRSZWZl
cmVuY2luZ0VsZW1lbnQoU1ZHRWxlbWVudCYgZWxlbWVudCkKICAgICBlbnN1cmVTVkdSYXJlRGF0
YSgpLmFkZFJlZmVyZW5jaW5nRWxlbWVudChlbGVtZW50KTsKICAgICBhdXRvJiByYXJlRGF0YU9m
UmVmZXJlbmNpbmdFbGVtZW50ID0gZWxlbWVudC5lbnN1cmVTVkdSYXJlRGF0YSgpOwogICAgIFJF
TEVBU0VfQVNTRVJUKCFyYXJlRGF0YU9mUmVmZXJlbmNpbmdFbGVtZW50LnJlZmVyZW5jZVRhcmdl
dCgpKTsKLSAgICByYXJlRGF0YU9mUmVmZXJlbmNpbmdFbGVtZW50LnNldFJlZmVyZW5jZVRhcmdl
dChtYWtlV2Vha1B0cigqdGhpcykpOworICAgIHJhcmVEYXRhT2ZSZWZlcmVuY2luZ0VsZW1lbnQu
c2V0UmVmZXJlbmNlVGFyZ2V0KCp0aGlzKTsKIH0KIAogdm9pZCBTVkdFbGVtZW50OjpyZW1vdmVS
ZWZlcmVuY2luZ0VsZW1lbnQoU1ZHRWxlbWVudCYgZWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGVtZW50UmFyZURhdGEuaAppbmRleCBiYmZjYmIxODEzNzE0ODBhMzFlNDJkMTQ1NDAwMDI4
MGNjOWJhNjllLi43OWMxZThjMmYyZDYxNjgzMTkzM2UzODE3YmMyOTJlZTVmMGU0NTFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnRSYXJlRGF0YS5oCkBAIC02MSw3ICs2MSw3IEBAIHB1
YmxpYzoKICAgICBjb25zdCBXZWFrSGFzaFNldDxTVkdSZXNvdXJjZUVsZW1lbnRDbGllbnQ+JiBy
ZWZlcmVuY2luZ0NTU0NsaWVudHMoKSBjb25zdCB7IHJldHVybiBtX3JlZmVyZW5jaW5nQ1NTQ2xp
ZW50czsgfQogCiAgICAgU1ZHRWxlbWVudCogY29ycmVzcG9uZGluZ0VsZW1lbnQoKSB7IHJldHVy
biBtX2NvcnJlc3BvbmRpbmdFbGVtZW50LmdldCgpOyB9Ci0gICAgdm9pZCBzZXRDb3JyZXNwb25k
aW5nRWxlbWVudChTVkdFbGVtZW50KiBjb3JyZXNwb25kaW5nRWxlbWVudCkgeyBtX2NvcnJlc3Bv
bmRpbmdFbGVtZW50ID0gbWFrZVdlYWtQdHIoY29ycmVzcG9uZGluZ0VsZW1lbnQpOyB9CisgICAg
dm9pZCBzZXRDb3JyZXNwb25kaW5nRWxlbWVudChTVkdFbGVtZW50KiBjb3JyZXNwb25kaW5nRWxl
bWVudCkgeyBtX2NvcnJlc3BvbmRpbmdFbGVtZW50ID0gY29ycmVzcG9uZGluZ0VsZW1lbnQ7IH0K
IAogICAgIE11dGFibGVTdHlsZVByb3BlcnRpZXMqIGFuaW1hdGVkU01JTFN0eWxlUHJvcGVydGll
cygpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0ZWRTTUlMU3R5bGVQcm9wZXJ0aWVzLmdldCgpOyB9
CiAgICAgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgZW5zdXJlQW5pbWF0ZWRTTUlMU3R5bGVQcm9w
ZXJ0aWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKaW5kZXggYmNkNmMxODJlYmFh
YTBhMDM3ZDcwOTZlNmI1YzczNzQyNTEzYzRmMy4uYzAyMTEyMmM1MzAzNWQxNDZlZDgzNGU5OTEz
YjFiZDZlOThmODM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKQEAgLTM4LDcg
KzM4LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFNWR0VsZW1lbnQ6OmRlcmVmOwogCiAgICAgY29u
c3QgU1ZHU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0
RWxlbWVudC5nZXQoKTsgfQotICAgIHZvaWQgc2V0VGFyZ2V0RWxlbWVudChjb25zdCBTVkdTVkdF
bGVtZW50JiB0YXJnZXRFbGVtZW50KSB7IG1fdGFyZ2V0RWxlbWVudCA9IG1ha2VXZWFrUHRyKHRh
cmdldEVsZW1lbnQpOyB9CisgICAgdm9pZCBzZXRUYXJnZXRFbGVtZW50KGNvbnN0IFNWR1NWR0Vs
ZW1lbnQmIHRhcmdldEVsZW1lbnQpIHsgbV90YXJnZXRFbGVtZW50ID0gdGFyZ2V0RWxlbWVudDsg
fQogICAgIHZvaWQgcmVzZXRUYXJnZXRFbGVtZW50KCkgeyBtX3RhcmdldEVsZW1lbnQgPSBudWxs
cHRyOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmll
d1NwZWMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAppbmRleCAxYWM2
OTM3MThkNmUxZWI5ZTQ5NjBiNTUxODkwMTcyYTEyNDQ5YzcyLi40ZWYxY2QxNDU2YWMwOTJjZDkz
Njg5NDRlMWFhODdkMGMyMGMyYmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld1NwZWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKQEAg
LTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTVkdWaWV3U3BlYzo6U1ZHVmll
d1NwZWMoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQpCiAgICAgOiBTVkdGaXRUb1ZpZXdCb3go
JmNvbnRleHRFbGVtZW50LCBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZE9ubHkpCi0gICAgLCBtX2Nv
bnRleHRFbGVtZW50KG1ha2VXZWFrUHRyKGNvbnRleHRFbGVtZW50KSkKKyAgICAsIG1fY29udGV4
dEVsZW1lbnQoY29udGV4dEVsZW1lbnQpCiAgICAgLCBtX3RyYW5zZm9ybShTVkdUcmFuc2Zvcm1M
aXN0OjpjcmVhdGUoJmNvbnRleHRFbGVtZW50LCBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZE9ubHkp
KQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCA4YzdjYTllOWJmMWE4MzA3OTdlNmM1MjNiNjIyNTA2YTdi
YTQ5NGMwLi5lMDkyM2Q0ZmUxMjdhMjc5NTQ2ZDViODEwMTk1M2Y4YzM5ZDlhNDExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC02MjY3LDcgKzYyNjcsNyBAQCBFeGNlcHRp
b25PcjxSZWZQdHI8V2ViWFJUZXN0Pj4gSW50ZXJuYWxzOjp4clRlc3QoKQogICAgICAgICBpZiAo
IW5hdmlnYXRvcikKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNz
RXJyb3IgfTsKIAotICAgICAgICBtX3hyVGVzdCA9IFdlYlhSVGVzdDo6Y3JlYXRlKG1ha2VXZWFr
UHRyKCZOYXZpZ2F0b3JXZWJYUjo6eHIoKm5hdmlnYXRvcikpKTsKKyAgICAgICAgbV94clRlc3Qg
PSBXZWJYUlRlc3Q6OmNyZWF0ZShOYXZpZ2F0b3JXZWJYUjo6eHIoKm5hdmlnYXRvcikpOwogICAg
IH0KICAgICByZXR1cm4gbV94clRlc3QuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja0NETUZhY3RvcnkuY3BwCmluZGV4IGJjMzI0NmJmNmIyYzIwNjM4YmZiNDIyNWNmNzBkNTFh
OGZiMzBmMDMuLjQxMWVkYmIzNTE3Yjg0OGZhYzA2M2QxOWU4Y2Q5NWVjMDAzN2NkNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCkBAIC0xMDUsNyArMTA1LDcg
QEAgdm9pZCBNb2NrQ0RNRmFjdG9yeTo6c2V0U3VwcG9ydGVkUm9idXN0bmVzcyhWZWN0b3I8U3Ry
aW5nPiYmIHJvYnVzdG5lc3NlcykKIAogc3RkOjp1bmlxdWVfcHRyPENETVByaXZhdGU+IE1vY2tD
RE1GYWN0b3J5OjpjcmVhdGVDRE0oY29uc3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gbWFrZVVu
aXF1ZTxNb2NrQ0RNPihtYWtlV2Vha1B0cigqdGhpcykpOworICAgIHJldHVybiBtYWtlVW5pcXVl
PE1vY2tDRE0+KCp0aGlzKTsKIH0KIAogTW9ja0NETTo6TW9ja0NETShXZWFrUHRyPE1vY2tDRE1G
YWN0b3J5PiBmYWN0b3J5KQpAQCAtMTg0LDcgKzE4NCw3IEBAIFJlZlB0cjxDRE1JbnN0YW5jZT4g
TW9ja0NETTo6Y3JlYXRlSW5zdGFuY2UoKQogewogICAgIGlmIChtX2ZhY3RvcnkgJiYgIW1fZmFj
dG9yeS0+Y2FuQ3JlYXRlSW5zdGFuY2VzKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgTW9ja0NETUluc3RhbmNlKG1ha2VXZWFrUHRyKCp0aGlzKSkp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTW9ja0NETUluc3RhbmNlKCp0aGlzKSk7CiB9CiAK
IHZvaWQgTW9ja0NETTo6bG9hZEFuZEluaXRpYWxpemUoKQpAQCAtMjg5LDcgKzI4OSw3IEBAIGNv
bnN0IFN0cmluZyYgTW9ja0NETUluc3RhbmNlOjprZXlTeXN0ZW0oKSBjb25zdAogCiBSZWZQdHI8
Q0RNSW5zdGFuY2VTZXNzaW9uPiBNb2NrQ0RNSW5zdGFuY2U6OmNyZWF0ZVNlc3Npb24oKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgTW9ja0NETUluc3RhbmNlU2Vzc2lvbihtYWtlV2Vha1B0
cigqdGhpcykpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1vY2tDRE1JbnN0YW5jZVNlc3Np
b24oKnRoaXMpKTsKIH0KIAogTW9ja0NETUluc3RhbmNlU2Vzc2lvbjo6TW9ja0NETUluc3RhbmNl
U2Vzc2lvbihXZWFrUHRyPE1vY2tDRE1JbnN0YW5jZT4mJiBpbnN0YW5jZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmNwcAppbmRleCAwOTM0MWRi
ODM1ODExYzQ5ODJhOTU3MTliODJkYzU4ZjQ3MGI3NTVmLi43NzQxNmVjMDdkN2I2OGIxMjhlMjk2
MWVkYzVkNjQwZDA0ZDRiZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckZvbnRMb2FkUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJGb250TG9hZFJlcXVlc3QuY3BwCkBAIC00OSw3ICs0OSw3IEBAIFdvcmtlckZvbnRMb2FkUmVx
dWVzdDo6V29ya2VyRm9udExvYWRSZXF1ZXN0KFVSTCYmIHVybCwgTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZSBsCiAKIHZvaWQgV29ya2VyRm9udExvYWRSZXF1ZXN0Ojpsb2FkKFdvcmtlckdsb2JhbFNj
b3BlJiB3b3JrZXJHbG9iYWxTY29wZSkKIHsKLSAgICBtX2NvbnRleHQgPSBtYWtlV2Vha1B0cihz
dGF0aWNfY2FzdDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Kj4oJndvcmtlckdsb2JhbFNjb3BlKSk7
CisgICAgbV9jb250ZXh0ID0gd29ya2VyR2xvYmFsU2NvcGU7CiAKICAgICBSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCB7IG1fdXJsIH07CiAgICAgQVNTRVJUKHJlcXVlc3QuaHR0cE1ldGhvZCgpID09
ICJHRVQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAK
aW5kZXggMjBhNDBiYWIzMDk5MGIyYzIzYjlkNjI2NDRhNWE2ZTU1NDBlZTgwYy4uNDU5MDEzYzhm
YTQzMjFjZmEwODVhZGY1M2ViNDAzOWU3ODk4Zjc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTM3MCw3ICszNzAsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBXb3JrZXJHbG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgdXJscykKICAgICAgICAgewogICAgICAgICAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRp
b24+IGV4Y2VwdGlvbjsKICAgICAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShz
Y3JpcHRMb2FkZXItPnNjcmlwdCgpLCBVUkwoc2NyaXB0TG9hZGVyLT5yZXNwb25zZVVSTCgpKSk7
Ci0gICAgICAgICAgICBzb3VyY2VQcm92aWRlciA9IG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PFNj
cmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyJj4oc291cmNlQ29kZS5wcm92aWRlcigpKSk7CisgICAg
ICAgICAgICBzb3VyY2VQcm92aWRlciA9IHN0YXRpY19jYXN0PFNjcmlwdEJ1ZmZlclNvdXJjZVBy
b3ZpZGVyJj4oc291cmNlQ29kZS5wcm92aWRlcigpKTsKICAgICAgICAgICAgIHNjcmlwdCgpLT5l
dmFsdWF0ZShzb3VyY2VDb2RlLCBleGNlcHRpb24pOwogICAgICAgICAgICAgaWYgKGV4Y2VwdGlv
bikgewogICAgICAgICAgICAgICAgIHNjcmlwdCgpLT5zZXRFeGNlcHRpb24oZXhjZXB0aW9uKTsK
QEAgLTU5NCw3ICs1OTQsNyBAQCB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjpyZWxlYXNlTWVtb3J5
SW5Xb3JrZXJzKFN5bmNocm9ub3VzIHN5bmNocm9ub3VzKQogdm9pZCBXb3JrZXJHbG9iYWxTY29w
ZTo6c2V0TWFpblNjcmlwdFNvdXJjZVByb3ZpZGVyKFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVy
JiBwcm92aWRlcikKIHsKICAgICBBU1NFUlQoIW1fbWFpblNjcmlwdFNvdXJjZVByb3ZpZGVyKTsK
LSAgICBtX21haW5TY3JpcHRTb3VyY2VQcm92aWRlciA9IG1ha2VXZWFrUHRyKHByb3ZpZGVyKTsK
KyAgICBtX21haW5TY3JpcHRTb3VyY2VQcm92aWRlciA9IHByb3ZpZGVyOwogfQogCiB2b2lkIFdv
cmtlckdsb2JhbFNjb3BlOjphZGRJbXBvcnRlZFNjcmlwdFNvdXJjZVByb3ZpZGVyKGNvbnN0IFVS
TCYgdXJsLCBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlciYgcHJvdmlkZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmNwcAppbmRleCBmZjI3YjZhNmViNDQ3ZDZkYTlhZjY1NTIzZjE5Yjc4YTVhMDZiY2U5Li5h
ZTZjMTg2Y2IyODRjNDFmYjNlMjI3YjYzYWJhNzZmM2U3YjRkZjA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
ci5jcHAKQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXI6OmluaXRTY3JpcHRXaXRoU3ViY2xhc3MoKQogICAgIEFTU0VSVChhc09iamVjdChtX2ds
b2JhbFNjb3BlV3JhcHBlci0+Z2V0UHJvdG90eXBlRGlyZWN0KCptX3ZtKSktPmdsb2JhbE9iamVj
dCgpID09IG1fZ2xvYmFsU2NvcGVXcmFwcGVyKTsKIAogICAgIG1fY29uc29sZUNsaWVudCA9IG1h
a2VVbmlxdWU8V29ya2VyQ29uc29sZUNsaWVudD4oKm1fZ2xvYmFsU2NvcGUpOwotICAgIG1fZ2xv
YmFsU2NvcGVXcmFwcGVyLT5zZXRDb25zb2xlQ2xpZW50KG1ha2VXZWFrUHRyKCptX2NvbnNvbGVD
bGllbnQpKTsKKyAgICBtX2dsb2JhbFNjb3BlV3JhcHBlci0+c2V0Q29uc29sZUNsaWVudCgqbV9j
b25zb2xlQ2xpZW50KTsKIH0KIAogdm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
Ojppbml0U2NyaXB0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
UnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCmlu
ZGV4IDNhY2ZmNjY4YjhlNTAyYWY0NTE4YzFiYWEzMDBjZTNkZjI0NWRmN2YuLjZjMDJmMTMyZGZl
OWY5OGI5ODc0YzZjMjQxYzI5ZDMyYmJlOGVkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJSdW5Mb29wLmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIFdvcmtlck1haW5SdW5Mb29wOjpX
b3JrZXJNYWluUnVuTG9vcCgpCiAKIHZvaWQgV29ya2VyTWFpblJ1bkxvb3A6OnNldEdsb2JhbFNj
b3BlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlJiBnbG9iYWxTY29wZSkKIHsKLSAgICBtX3dv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlID0gbWFrZVdlYWtQdHIoZ2xvYmFsU2NvcGUpOworICAg
IG1fd29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgPSBnbG9iYWxTY29wZTsKIH0KIAogdm9pZCBX
b3JrZXJNYWluUnVuTG9vcDo6cG9zdFRhc2tBbmRUZXJtaW5hdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6VGFzayYmIHRhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAK
aW5kZXggMzhlMjNkYTg5NmQ1MDMxMjI2YzEyYzNjMjc3YzlkYjE5YTgzMDZkMy4uZWY3MGFmMTdk
MDA0ODFkYzIzMWVmNWE2ZjAzMzA5MmMyZTA4NjllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyVGhyZWFkLmNwcApAQCAtMTM5LDEzICsxMzksMTMgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6
OmV2YWx1YXRlU2NyaXB0SWZOZWNlc3NhcnkoU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQogICAg
IFdlYWtQdHI8U2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXI+IHNvdXJjZVByb3ZpZGVyOwogICAg
IGlmIChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMud29ya2VyVHlwZSA9PSBXb3JrZXJUeXBlOjpDbGFz
c2ljKSB7CiAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShtX3N0YXJ0dXBEYXRh
LT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNjcmlwdFVSTCkpOwotICAg
ICAgICBzb3VyY2VQcm92aWRlciA9IG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PFNjcmlwdEJ1ZmZl
clNvdXJjZVByb3ZpZGVyJj4oc291cmNlQ29kZS5wcm92aWRlcigpKSk7CisgICAgICAgIHNvdXJj
ZVByb3ZpZGVyID0gc3RhdGljX2Nhc3Q8U2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXImPihzb3Vy
Y2VDb2RlLnByb3ZpZGVyKCkpOwogICAgICAgICBnbG9iYWxTY29wZSgpLT5zY3JpcHQoKS0+ZXZh
bHVhdGUoc291cmNlQ29kZSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOwogICAgICAgICBmaW5pc2hlZEV2
YWx1YXRpbmdTY3JpcHQoKTsKICAgICB9IGVsc2UgewogICAgICAgICBhdXRvIHNjcmlwdEZldGNo
ZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpjcmVhdGUoZ2xvYmFsU2NvcGUoKS0+Y3JlZGVudGlh
bHMoKSwgZ2xvYmFsU2NvcGUoKS0+ZGVzdGluYXRpb24oKSwgZ2xvYmFsU2NvcGUoKS0+cmVmZXJy
ZXJQb2xpY3koKSk7CiAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShtX3N0YXJ0
dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNjcmlwdFVSTCks
IHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgc2NyaXB0RmV0Y2hl
ci5jb3B5UmVmKCkpOwotICAgICAgICBzb3VyY2VQcm92aWRlciA9IG1ha2VXZWFrUHRyKHN0YXRp
Y19jYXN0PFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyJj4oc291cmNlQ29kZS5wcm92aWRlcigp
KSk7CisgICAgICAgIHNvdXJjZVByb3ZpZGVyID0gc3RhdGljX2Nhc3Q8U2NyaXB0QnVmZmVyU291
cmNlUHJvdmlkZXImPihzb3VyY2VDb2RlLnByb3ZpZGVyKCkpOwogICAgICAgICBib29sIHN1Y2Nl
c3MgPSBnbG9iYWxTY29wZSgpLT5zY3JpcHQoKS0+bG9hZE1vZHVsZVN5bmNocm9ub3VzbHkoc2Ny
aXB0RmV0Y2hlci5nZXQoKSwgc291cmNlQ29kZSk7CiAgICAgICAgIGlmIChzdWNjZXNzKSB7CiAg
ICAgICAgICAgICBpZiAoc3RkOjpvcHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6RXJyb3I+IGVycm9y
ID0gc2NyaXB0RmV0Y2hlci0+ZXJyb3IoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcApp
bmRleCBlN2RmNTE2YTcyYzk3ZTk3NmIwY2E3ODc1OGEzZGFiMWU5NDNmYTQ1Li4xOGI3ZGE3MmM1
NGVhZmZjMmM4NDUwOWE4ZDZkNjlkNjgxMTYwNDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNl
LmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIHN0YXRpYyBSZWY8V29ya1F1ZXVlPiByZWdpc3RyYXRp
b25EYXRhYmFzZVdvcmtRdWV1ZSgpCiAKIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjpSZWdpc3RyYXRp
b25EYXRhYmFzZShSZWdpc3RyYXRpb25TdG9yZSYgc3RvcmUsIFN0cmluZyYmIGRhdGFiYXNlRGly
ZWN0b3J5KQogICAgIDogbV93b3JrUXVldWUocmVnaXN0cmF0aW9uRGF0YWJhc2VXb3JrUXVldWUo
KSkKLSAgICAsIG1fc3RvcmUobWFrZVdlYWtQdHIoc3RvcmUpKQorICAgICwgbV9zdG9yZShzdG9y
ZSkKICAgICAsIG1fZGF0YWJhc2VEaXJlY3RvcnkoV1RGTW92ZShkYXRhYmFzZURpcmVjdG9yeSkp
CiAgICAgLCBtX2RhdGFiYXNlRmlsZVBhdGgoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnksIGRhdGFiYXNlRmlsZW5hbWUoKSkpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmlu
ZGV4IGNhOTlhNzA0OTNiYzM3YTA0MzhjMTU1YTRjNDk0M2UyZWRmOTY2ZmUuLjJjZWYzZDBhODgz
NzkzMDcxOWI4Mjg2NDQzNGM2M2E5MzUwN2Y0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0xOTYsMTIgKzE5NiwxMiBA
QCB2b2lkIFNXU2VydmVyOjphZGRSZWdpc3RyYXRpb24oc3RkOjp1bmlxdWVfcHRyPFNXU2VydmVy
UmVnaXN0cmF0aW9uPiYmIHJlZ2lzdHJhdAogICAgICAgICBtX3VuaXF1ZVJlZ2lzdHJhdGlvbkNv
dW50Kys7CiAKICAgICBpZiAocmVnaXN0cmF0aW9uLT5zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZp
ZXIoKSkKLSAgICAgICAgbV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXJUb1JlZ2lzdHJhdGlv
bk1hcC5hZGQoKnJlZ2lzdHJhdGlvbi0+c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCksIG1h
a2VXZWFrUHRyKCpyZWdpc3RyYXRpb24pKTsKKyAgICAgICAgbV9zZXJ2aWNlV29ya2VyUGFnZUlk
ZW50aWZpZXJUb1JlZ2lzdHJhdGlvbk1hcC5hZGQoKnJlZ2lzdHJhdGlvbi0+c2VydmljZVdvcmtl
clBhZ2VJZGVudGlmaWVyKCksICpyZWdpc3RyYXRpb24pOwogCiAgICAgbV9vcmlnaW5TdG9yZS0+
YWRkKHJlZ2lzdHJhdGlvbi0+a2V5KCkudG9wT3JpZ2luKCkpOwogICAgIGF1dG8gcmVnaXN0cmF0
aW9uSUQgPSByZWdpc3RyYXRpb24tPmlkZW50aWZpZXIoKTsKICAgICBBU1NFUlQoIW1fc2NvcGVU
b1JlZ2lzdHJhdGlvbk1hcC5jb250YWlucyhyZWdpc3RyYXRpb24tPmtleSgpKSk7Ci0gICAgbV9z
Y29wZVRvUmVnaXN0cmF0aW9uTWFwLnNldChyZWdpc3RyYXRpb24tPmtleSgpLCBtYWtlV2Vha1B0
cigqcmVnaXN0cmF0aW9uKSk7CisgICAgbV9zY29wZVRvUmVnaXN0cmF0aW9uTWFwLnNldChyZWdp
c3RyYXRpb24tPmtleSgpLCAqcmVnaXN0cmF0aW9uKTsKICAgICBhdXRvIGFkZFJlc3VsdDEgPSBt
X3JlZ2lzdHJhdGlvbnMuYWRkKHJlZ2lzdHJhdGlvbklELCBXVEZNb3ZlKHJlZ2lzdHJhdGlvbikp
OwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0MSwgYWRkUmVzdWx0MS5pc05ld0VudHJ5KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJXb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlcldvcmtlci5jcHAKaW5kZXggNWIyZmRkYWZhMDQzNTIwNjM2MWYzMWI0MGE4NTMxZGQ3
Njg0NzM2Ni4uMmIwNGMyODhmYzhjNjlhNGM5MDZkZWE1NDZjNjgyNDYwNzE0MmY1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
cldvcmtlci5jcHAKQEAgLTUxLDkgKzUxLDkgQEAgU1dTZXJ2ZXJXb3JrZXIqIFNXU2VydmVyV29y
a2VyOjpleGlzdGluZ1dvcmtlckZvcklkZW50aWZpZXIoU2VydmljZVdvcmtlcklkZW50aWYKIAog
Ly8gRklYTUU6IFVzZSByLXZhbHVlIHJlZmVyZW5jZXMgZm9yIHNjcmlwdCBhbmQgY29udGVudFNl
Y3VyaXR5UG9saWN5CiBTV1NlcnZlcldvcmtlcjo6U1dTZXJ2ZXJXb3JrZXIoU1dTZXJ2ZXImIHNl
cnZlciwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgY29uc3QgVVJMJiBzY3Jp
cHRVUkwsIGNvbnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0LCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8m
IGNlcnRpZmljYXRlSW5mbywgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3kmIGNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyUG9saWN5LCBX
b3JrZXJUeXBlIHR5cGUsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hN
YXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmIHNjcmlw
dFJlc291cmNlTWFwKQotICAgIDogbV9zZXJ2ZXIobWFrZVdlYWtQdHIoc2VydmVyKSkKKyAgICA6
IG1fc2VydmVyKHNlcnZlcikKICAgICAsIG1fcmVnaXN0cmF0aW9uS2V5KHJlZ2lzdHJhdGlvbi5r
ZXkoKSkKLSAgICAsIG1fcmVnaXN0cmF0aW9uKG1ha2VXZWFrUHRyKHJlZ2lzdHJhdGlvbikpCisg
ICAgLCBtX3JlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb24pCiAgICAgLCBtX2RhdGEgeyBpZGVudGlm
aWVyLCBzY3JpcHRVUkwsIFNlcnZpY2VXb3JrZXJTdGF0ZTo6UGFyc2VkLCB0eXBlLCByZWdpc3Ry
YXRpb24uaWRlbnRpZmllcigpIH0KICAgICAsIG1fc2NyaXB0KHNjcmlwdCkKICAgICAsIG1fY2Vy
dGlmaWNhdGVJbmZvKGNlcnRpZmljYXRlSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0
cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IGE4MjIwNWFiYmQ3ZTdhODAzYzVjYWRlYjY3
M2JiZjkxZjU1ZDMyMWMuLjEzNmMwNTNlNTRjMTA4NjM5MmY0ZDA0Y2U3MmU0NDI3YWYxYTYwNTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcApA
QCAtNjQsNyArNjQsNyBAQCBXb3JrbGV0R2xvYmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShX
b3JrZXJPcldvcmtsZXRUaHJlYWQmIHRocmVhZCwgUmVmPEpTQzo6VgogCiBXb3JrbGV0R2xvYmFs
U2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxKU0M6OlZN
PiYmIHZtLCBTY3JpcHRTb3VyY2VDb2RlJiYgY29kZSkKICAgICA6IFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlKFdvcmtlclRocmVhZFR5cGU6OldvcmtsZXQsIFdURk1vdmUodm0pLCBudWxscHRy
KQotICAgICwgbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCisgICAgLCBtX2RvY3Vt
ZW50KGRvY3VtZW50KQogICAgICwgbV90b3BPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVu
aXF1ZSgpKQogICAgICwgbV91cmwoY29kZS51cmwoKSkKICAgICAsIG1fanNSdW50aW1lRmxhZ3Mo
ZG9jdW1lbnQuc2V0dGluZ3MoKS5qYXZhU2NyaXB0UnVudGltZUZsYWdzKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3BwCmluZGV4IDVkN2QzODQ3
MmMxMmYwYTc0NjM2NmYwZDE4NDlkMjA4NTYxZTE2NWQuLmM0MWJjYWY3NTc0ZDE3MTRhNTU2NmJi
ZGY1OTFmNmIzZmEwODRlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dv
cmtsZXRQZW5kaW5nVGFza3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXRQZW5kaW5nVGFza3MuY3BwCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFdvcmtsZXRQZW5kaW5nVGFza3M6OldvcmtsZXRQZW5kaW5nVGFza3MoV29ya2xldCYgd29y
a2xldCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSwgaW50IGNvdW50ZXIpCi0g
ICAgOiBtX3dvcmtsZXQobWFrZVdlYWtQdHIod29ya2xldCkpCisgICAgOiBtX3dvcmtsZXQod29y
a2xldCkKICAgICAsIG1fcHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQogICAgICwgbV9jb3VudGVy
KGNvdW50ZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuY3BwCmluZGV4IGYyZWE1MzVhNmZkYWUz
MjQ0ZTAyNjFmYTc1MDI0YWU0OGJkZmRiYzQuLjMwNTI4MDBkMWE0MWFkNWJmYjlhMzQ5ZWM2NTJi
Y2YyM2VmYWM4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuY3BwCkBAIC0yNiw3ICsyNiw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlubGluZSBET01QYXJzZXI6OkRPTVBhcnNlcihEb2N1
bWVudCYgY29udGV4dERvY3VtZW50KQotICAgIDogbV9jb250ZXh0RG9jdW1lbnQobWFrZVdlYWtQ
dHIoY29udGV4dERvY3VtZW50KSkKKyAgICA6IG1fY29udGV4dERvY3VtZW50KGNvbnRleHREb2N1
bWVudCkKICAgICAsIG1fc2V0dGluZ3MoY29udGV4dERvY3VtZW50LnNldHRpbmdzKCkpCiB7CiB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441078</attachid>
            <date>2021-10-13 07:47:14 -0700</date>
            <delta_ts>2021-10-13 08:38:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231651-20211013074714.patch</filename>
            <type>text/plain</type>
            <size>225131</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDBjNjBkMTlhYTE1ZTg1ODJmMDEyMjE4
ZWY5ZGRjYTIzMzhhZDBjNDYuLjZiYzNlZTE1NzcxOGI1YjM0Njc0ZmZmMjRlNGRkYzg1MjNiN2Jh
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFrUHRyKCkgaW4gV2ViQ29y
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjUx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIHd0
Zi9XZWFrUHRyLmg6CisgICAgICAgIChXVEY6OldlYWtQdHI6OldlYWtQdHIpOgorICAgICAgICAo
V1RGOjpXZWFrUHRyOjppbXBsRm9yT2JqZWN0KToKKwogMjAyMS0xMC0xMiAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBzdGQ6OnZhcmlh
bnQgaW5zdGVhZCBvZiBXVEY6OlZhcmlhbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MjY4NTMzNTM1ODZmOGJk
NDQ4NzI0ODIzMTViNmVlYTJiODdlY2NjLi44YTNjYjZlYTczOGY1NzZmNjdjMjM2Y2JkYTE3ZjUw
MDEzNGRhNzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDc0IEBACisyMDIxLTEwLTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcCB1c2luZyBtYWtlV2Vh
a1B0cigpIGluIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTY1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4u
CisKKyAgICAgICAgU3RvcCB1c2luZyBtYWtlV2Vha1B0cigpIGluIFdlYkNvcmUgYW5kIHVzZSBX
ZWFrUHRyIHsgfSBkaXJlY3RseSBpbnN0ZWFkLgorCisgICAgICAgICogZG9tL0Jyb2FkY2FzdENo
YW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6TWFpblRocmVh
ZEJyaWRnZTo6TWFpblRocmVhZEJyaWRnZSk6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0
ZW1MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmVuc3VyZUl0ZW1zIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0OjpkaWRTZXRTdHJp
bmdEYXRhKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmJ1aWxkQWNjZXNzS2V5Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmNvbGxlY3RSYW5nZURhdGFGcm9tUmVnaXN0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmRldGVybWluZUFjdGl2ZVRoZW1lQ29sb3JNZXRhRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c2V0QWN0aXZlU3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmFwcGVuZEF1dG9mb2N1c0NhbmRpZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c2V0TWVkaWFFbGVtZW50U2hvd2luZ1RleHRUcmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudFBhcnNlcllpZWxkVG9rZW46OkRvY3VtZW50UGFyc2VyWWll
bGRUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUludGVyc2VjdGlvbk9i
c2VydmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkUmVzaXplT2JzZXJ2
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZU1haW5BcnRpY2xlRWxlbWVu
dEFmdGVyTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRQaWN0dXJlSW5Q
aWN0dXJlRWxlbWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6c2V0Q29udGV4dERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpzZXRUZW1wbGF0ZURvY3VtZW50SG9zdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50
UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50UGFyc2VyOjpEb2N1bWVudFBh
cnNlcik6CisgICAgICAgICogZG9tL0V2ZW50TG9vcC5oOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRMb29wVGFza0dyb3VwOjpFdmVudExvb3BUYXNrR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRMb29wVGFzazo6RXZlbnRMb29wVGFzayk6CisgICAgICAgICogZG9tL0V2ZW50U2VuZGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFNlbmRlcjxUPjo6ZGlzcGF0Y2hFdmVudFNvb24p
OgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgICogZG9tL0Z1bGxzY3JlZW5NYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjpzZXRGdWxsc2Ny
ZWVuUmVuZGVyZXIpOgorICAgICAgICAqIGRvbS9JZGxlQ2FsbGJhY2tDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklkbGVDYWxsYmFja0NvbnRyb2xsZXI6OklkbGVDYWxsYmFja0Nv
bnRyb2xsZXIpOgorICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZXNzYWdlUG9ydDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAg
ICAgICogZG9tL1JhZGlvQnV0dG9uR3JvdXBzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhZGlv
QnV0dG9uR3JvdXA6OnNldENoZWNrZWRCdXR0b24pOgorICAgICAgICAqIGRvbS9TY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyOjpTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAqIGRv
bS9TbG90QXNzaWdubWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTbG90QXNzaWdubWVudDo6
YWRkU2xvdEVsZW1lbnRCeU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6U2xvdEFzc2lnbm1lbnQ6
OnJlc29sdmVTbG90c0FmdGVyU2xvdE11dGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNsb3RB
c3NpZ25tZW50Ojphc3NpZ25Ub1Nsb3QpOgorICAgICAgICAqIGVkaXRpbmcvQ3VzdG9tVW5kb1N0
ZXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tVW5kb1N0ZXA6OkN1c3RvbVVuZG9TdGVw
KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRDb21tYW5kOjpzZXRQYXJlbnQpOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OkZyYW1lU2VsZWN0aW9u
KToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpUZXh0TWFuaXB1bGF0
aW9uQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlcjo6b2JzZXJ2ZVBhcmFncmFwaHMpOgorICAgICAgICAqIGVkaXRpbmcvaW9zL0VkaXRvcklP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6c2V0RGljdGF0aW9uUGhyYXNlc0FzQ2hp
bGRPZkVsZW1lbnQpOgorICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyTG9hZGVyOjpGaWxlUmVhZGVyTG9hZGVyKToKKyAg
ICAgICAgKiBodG1sL0N1c3RvbVBhaW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3Vz
dG9tUGFpbnRJbWFnZTo6Q3VzdG9tUGFpbnRJbWFnZSk6CisgICAgICAgICogaHRtbC9Gb3JtQXNz
b2NpYXRlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVt
ZW50OjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29j
aWF0ZWRFbGVtZW50OjpzZXRGb3JtKToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpzZXRSb290RWRpdGFi
bGVFbGVtZW50Rm9yU2VsZWN0aW9uT25Nb3VzZURvd24pOgorICAgICAgICAqIGh0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6c3VibWl0
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6cmVnaXN0ZXJGb3JtRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OnJlZ2lzdGVySW1nRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmRlZmF1bHRCdXR0b24gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50OjphZGRUb1Bhc3ROYW1lc01h
cCk6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50OjpzZXRDb250ZW50RnJhbWUpOgorICAgICAg
ICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1h
Z2VFbGVtZW50OjpIVE1MSW1hZ2VFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFn
ZUVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJ
bWFnZUVsZW1lbnQ6OnNldFBpY3R1cmVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJ
bWFnZUVsZW1lbnQ6OnNldFNvdXJjZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllckNyZWF0ZVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlOjpJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25PYnNlcnZlcjo6TWVkaWFTZXNzaW9u
T2JzZXJ2ZXIpOgorICAgICAgICAqIGh0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2V0UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAg
ICAqIGh0bWwvVVJMU2VhcmNoUGFyYW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVSTFNlYXJj
aFBhcmFtczo6VVJMU2VhcmNoUGFyYW1zKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MU2Ny
aXB0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OkhUTUxT
Y3JpcHRSdW5uZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6RGF0ZVRpbWVFZGl0
RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRF
bGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFja0N1ZUJveDo6VGV4dFRyYWNrQ3VlQm94KToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL1RyYWNrQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja0Jhc2U6OnNldFRyYWNr
TGlzdCk6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpUcmFja0xpc3RCYXNlOjpzZXRPcGFxdWVSb290T2JzZXJ2ZXIpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnNldEdyaWRPdmVybGF5Rm9y
Tm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YmluZCk6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6YmluZFBzZXVkb0VsZW1lbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lSWQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
V29ya2VyQWdlbnQ6OmNvbm5lY3RUb1dvcmtlckluc3BlY3RvclByb3h5KToKKyAgICAgICAgKiBs
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlR3JpZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6U2xvdDo6U2xvdCk6CisgICAgICAgICogbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94
OjpzZXRDYWNoZWRHZW9tZXRyeUZvckxheW91dFN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBsb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6
OnRyeUxvYWRpbmdTdWJzdGl0dXRlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExv
YWRlcjo6Y29udGVudEZpbHRlckRpZEJsb2NrKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRX
cml0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRXcml0ZXI6OnNldEZyYW1lKToK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZUxldmVsRm9yYmlkU2NvcGU6OlBhZ2VMZXZlbEZvcmJpZFNjb3BlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpzZXRPcGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmxvYWRGcmFtZVJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpwcmVjb25uZWN0SWZOZWVkZWQpOgorICAgICAg
ICAqIGxvYWRlci9MaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50cy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50OjpMaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50
KToKKyAgICAgICAgKiBsb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVJlc291cmNlTG9hZGVyOjpNZWRpYVJlc291cmNlTG9hZGVyKToKKyAgICAg
ICAgKiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyKToKKyAgICAgICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyOjpjaGVja05ld1dp
bmRvd1BvbGljeSk6CisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbik6Cisg
ICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZTo6c2V0R3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbGljYXRpb25DYWNoZTo6c2V0TWFuaWZlc3RSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OnVwZGF0ZSk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9u
Q2FjaGVIb3N0OjpzZXRET01BcHBsaWNhdGlvbkNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGxpY2F0aW9uQ2FjaGVIb3N0OjpzZXRDYW5kaWRhdGVBcHBsaWNhdGlvbkNhY2hlR3JvdXApOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRJbWFnZTo6bG9hZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2V0
RG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9pb3MvTGVnYWN5UHJldmlld0xvYWRlci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVByZXZpZXdMb2FkZXI6OnByZXZpZXdDb252ZXJ0ZXJE
aWRTdGFydENvbnZlcnRpbmcpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd0V4dGVuc2lvbjo6RE9NV2luZG93RXh0ZW5z
aW9uKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5OjpET01XaW5kb3dQcm9wZXJ0eSk6CisgICAgICAgICog
cGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d2lkZ2V0Rm9yRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZUxhc3RTY3JvbGxiYXJV
bmRlck1vdXNlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lOjpGcmFtZSk6CisgICAgICAgICogcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyOjpvYnNlcnZl
RnJhbWUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVHJlZTo6RnJhbWVUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6YXBw
ZW5kQ2hpbGQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6dXBkYXRlRW1iZWRkZWRPYmplY3QpOgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3TGF5b3V0Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXdMYXlv
dXRDb250ZXh0OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29u
dGV4dDo6c2V0U3VidHJlZUxheW91dFJvb3QpOgorICAgICAgICAqIHBhZ2UvSW1hZ2VPdmVybGF5
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU92ZXJsYXlDb250cm9sbGVy
OjpJbWFnZU92ZXJsYXlDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3Zlcmxh
eUNvbnRyb2xsZXI6OnNlbGVjdGlvblF1YWRzRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0lu
dGVyc2VjdGlvbk9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9i
c2VydmVyOjpJbnRlcnNlY3Rpb25PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNl
Y3Rpb25PYnNlcnZlcjo6b2JzZXJ2ZSk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OnVwZGF0ZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlOjpkb0FmdGVyVXBkYXRlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnVw
ZGF0ZUVsZW1lbnRzV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c2V0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiBwYWdlL1Bv
aW50ZXJMb2NrQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2ludGVyTG9ja0Nv
bnRyb2xsZXI6OmVsZW1lbnRXYXNSZW1vdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBvaW50ZXJM
b2NrQ29udHJvbGxlcjo6ZG9jdW1lbnREZXRhY2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb2lu
dGVyTG9ja0NvbnRyb2xsZXI6OmRpZEFjcXVpcmVQb2ludGVyTG9jayk6CisgICAgICAgICogcGFn
ZS9RdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtzOjpRdWlya3MpOgorICAgICAg
ICAoV2ViQ29yZTo6UXVpcmtzOjp0cmlnZ2VyT3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsgY29u
c3QpOgorICAgICAgICAqIHBhZ2UvUmVzaXplT2JzZXJ2YXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzaXplT2JzZXJ2YXRpb246OlJlc2l6ZU9ic2VydmF0aW9uKToKKyAgICAgICAgKiBw
YWdlL1Jlc2l6ZU9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc2l6ZU9ic2VydmVy
OjpSZXNpemVPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNpemVPYnNlcnZlcjo6b2Jz
ZXJ2ZSk6CisgICAgICAgICogcGFnZS9VbmRvSXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpV
bmRvSXRlbTo6c2V0VW5kb01hbmFnZXIpOgorICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudFRlc3RN
b25pdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnRUZXN0TW9uaXRvcjo6c2No
ZWR1bGVDYWxsYmFja0NoZWNrKToKKyAgICAgICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2Jz
ZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpkaWRG
aW5pc2hUcmFuc2l0aW9uKToKKyAgICAgICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6c2V0SGlkZGVu
VG91Y2hUYXJnZXQpOgorICAgICAgICAqIHBhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OnNjcm9sbGFibGVBcmVhRm9yRXZlbnRUYXJnZXQpOgorICAgICAgICAo
V2ViQ29yZTo6c2Nyb2xsYWJsZUFyZWFGb3JDb250YWluZXJOb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6ZGV0ZXJtaW5lV2hlZWxFdmVudFRhcmdldCk6CisgICAgICAgICog
cGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVwZGF0ZURhdGFEZXRlY3RvckhpZ2hsaWdodHMpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6ZWxlbWVudFVuZGVyTW91
c2VEaWRDaGFuZ2UpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXI6
OnVwZGF0ZUFuZEZldGNoTGF0Y2hpbmdTdGF0ZUZvckZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9Ob3dQbGF5aW5nTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3dQbGF5aW5nTWFu
YWdlcjo6YWRkQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QcmV2aWV3Q29udmVydGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlByZXZpZXdDb252ZXJ0ZXI6OmFkZENsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpQcmV2aWV3Q29udmVydGVyOjpkaWRBZGRDbGllbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdG9yOjpjcmVhdGVUaW1lcik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpQcm9oaWJpdFNjcm9sbGluZ1doZW5DaGFu
Z2luZ0NvbnRlbnRTaXplRm9yU2NvcGU6OlByb2hpYml0U2Nyb2xsaW5nV2hlbkNoYW5naW5nQ29u
dGVudFNpemVGb3JTY29wZSk6CisgICAgICAgICogcGxhdGZvcm0vV2lkZ2V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldpZGdldDo6c2V0UGFyZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjphZGRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldEN1cnJlbnRT
ZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6
OnNlc3Npb25XaWxsRW5kUGxheWJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dsaWIv
TWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlckdMaWI6OnNlc3Npb25XaWxsRW5kUGxheWJhY2spOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpkZWNvZGVBdWRpb0ZvckJ1c0NyZWF0aW9uKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdT
dHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVh
bWVyOjpzZXRDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0
aW5nQXJiaXRyYXRvci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFJvdXRpbmdBcmJpdHJh
dG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbkZvclRva2VuKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0
YW5jZVNlc3Npb25Qcm94eTo6Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHkpOgorICAgICAgICAqIHBs
YXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5Ojp1cGRhdGVMaWNlbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5OjpyZW1vdmVTZXNzaW9u
RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpzZXRDbGllbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNr
ZXI6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUGxheWJhY2tUYXJnZXRQaWNr
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFWUGxheWJhY2tUYXJnZXRQaWNrZXI6OkFWUGxheWJh
Y2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0
UGlja2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZG
b3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRp
b25PYmpDOjpDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
bW06CisgICAgICAgICgtW1dlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXIgaW5p
dFdpdGhQYXJlbnQ6XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlU2Vzc2lvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6RWZmZWN0aXZl
UmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldENE
TVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNv
dXJjZVByaXZhdGVBVkZPYmpDOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFt
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpJbm5lckRl
Y29kZXI6OmhhbmRsZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyR1N0
cmVhbWVyOjpJbm5lckRlY29kZXI6OnByZXBhcmVQaXBlbGluZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXll
ck9mVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojp1cGRhdGVUcmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpoYW5kbGVTdHJlYW1Db2xsZWN0aW9uTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4pOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5k
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6Q0RN
SW5zdGFuY2VTZXNzaW9uVGh1bmRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcDoK
KyAgICAgICAgKHdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHRHZXRDRE1Qcm94eURl
Y3J5cHRpb25DbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvQXBwZW5kUGlwZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6
Om1ha2VXZWJLaXRUcmFjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5
ZXI6OnNldE1hc2tMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6
OnNldFJlcGxpY2FMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6
OnNldEJhY2tkcm9wTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZv
dW5kYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QcmV2aWV3Q29udmVydGVySU9TLm1t
OgorICAgICAgICAoLVtXZWJQcmV2aWV3Q29udmVydGVyRGVsZWdhdGUgaW5pdFdpdGhEZWxlZ2F0
ZTpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQubW06CisgICAgICAgICgtW1dlYkFWUGxheWVyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSBzZXRG
dWxsc2NyZWVuSW50ZXJmYWNlOl0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgc2VuZEFjY2Vs
ZXJvbWV0ZXJEYXRhOl0pOgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFuYWdlciBzZW5kTW90
aW9uRGF0YTp3aXRoSGVhZGluZzpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRGF0YURldGVj
dG9ySGlnaGxpZ2h0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdG9ySGlnaGxpZ2h0
OjpEYXRhRGV0ZWN0b3JIaWdobGlnaHQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VNYWM6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYyk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0VmlkZW9GdWxsc2NyZWVuTW9k
ZWwpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRW
aWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNvbXByZXNzZWRWaWRlb091
dHB1dEJ1ZmZlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyOjpjb21wcmVzc2VkQXVkaW9PdXRwdXRCdWZmZXJDYWxsYmFjayk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpjcmVhdGVS
ZW5kZXJlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ0RUTUZTZW5kZXJCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6TWVk
aWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYSk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jb2NvYS9Db29raWVTdG9yYWdlT2JzZXJ2ZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW06CisgICAgICAgIChX
ZWJDb3JlOjpSYW5nZVJlc3BvbnNlR2VuZXJhdG9yOjpnaXZlUmVzcG9uc2VUb1Rhc2tJZkJ5dGVz
SW5SYW5nZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlUmVzcG9uc2VHZW5lcmF0
b3I6Ok1lZGlhUmVzb3VyY2VDbGllbnQ6Ok1lZGlhUmVzb3VyY2VDbGllbnQpOgorICAgICAgICAq
IHBsdWdpbnMvRE9NTWltZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NTWltZVR5cGU6
OkRPTU1pbWVUeXBlKToKKyAgICAgICAgKiBwbHVnaW5zL0RPTU1pbWVUeXBlQXJyYXkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NTWltZVR5cGVBcnJheTo6RE9NTWltZVR5cGVBcnJheSk6Cisg
ICAgICAgICogcGx1Z2lucy9ET01QbHVnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NUGx1
Z2luOjpET01QbHVnaW4pOgorICAgICAgICAqIHBsdWdpbnMvRE9NUGx1Z2luQXJyYXkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NUGx1Z2luQXJyYXk6OkRPTVBsdWdpbkFycmF5KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZs
b2F0aW5nT2JqZWN0OjpGbG9hdGluZ09iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wdXRl
RmxvYXRPZmZzZXRBZGFwdGVyOjpDb21wdXRlRmxvYXRPZmZzZXRBZGFwdGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbmROZXh0RmxvYXRMb2dpY2FsQm90dG9tQWRhcHRlcjo6RmluZE5leHRGbG9h
dExvZ2ljYWxCb3R0b21BZGFwdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0aW5nT2JqZWN0
czo6RmxvYXRpbmdPYmplY3RzKToKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvYXRpbmdPYmplY3Rz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdGluZ09iamVjdDo6c2V0T3JpZ2luYXRpbmdMaW5l
KToKKyAgICAgICAgKiByZW5kZXJpbmcvR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlk
OjppbnNlcnQpOgorICAgICAgICAqIHJlbmRlcmluZy9IaWdobGlnaHREYXRhLmg6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJSYW5nZTo6UmVuZGVyUmFuZ2UpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9MYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFjay5oOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlZENsaXBEYXRhOjpDb21wb3NpdGVkQ2xpcERhdGEpOgorICAgICAgICAqIHJlbmRlcmluZy9M
ZWdhY3lJbmxpbmVCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUlubGluZUJveDo6TGVn
YWN5SW5saW5lQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lSb290SW5saW5lQm94OjpzZXRMaW5lQnJlYWtJ
bmZvKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5oOgorICAgICAg
ICAoV2ViQ29yZTo6TGVnYWN5Um9vdElubGluZUJveDo6YXBwZW5kRmxvYXQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6dXBkYXRlQ2FjaGVkRW5jbG9zaW5nRnJhZ21lbnRlZEZsb3cgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2tGbG93OjpzZXRNdWx0aUNvbHVtbkZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9i
amVjdDo6Q29udGludWF0aW9uQ2hhaW5Ob2RlOjpDb250aW51YXRpb25DaGFpbk5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnNldEZpcnN0TGV0dGVyUmVtYWlu
aW5nVGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCdXR0b246OnNldElubmVyUmVuZGVyZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQnV0dG9uOjpzZXRUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzZXRCYWNrZHJv
cFJlbmRlcmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRnJhZ21lbnRlZEZsb3c6OnVwZGF0ZUZyYWdtZW50
c0ZyYWdtZW50ZWRGbG93UG9ydGlvblJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJG
cmFnbWVudGVkRmxvdy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySW1hZ2VSZXNvdXJjZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1
cGRhdGVQYWdpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzZXRCYWNr
aW5nUHJvdmlkZXJMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OkJhY2tp
bmdTaGFyaW5nU3RhdGU6OmFwcGVuZFNoYXJpbmdMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmF0dGFjaFNjcm9sbGluZ05vZGUpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXlvdXRTdGF0ZTo6cHJvcGFnYXRlTGluZUdyaWRJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheW91dFN0YXRlOjplc3RhYmxpc2hMaW5lR3JpZCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxpc3RJdGVtLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtlcjo6UmVuZGVyTGlzdE1hcmtl
cik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzZXRJbm5lclJlbmRlcmVyKToKKyAgICAgICAgKFJlbmRl
ck1lbnVMaXN0OjpzZXRUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1
bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTXVsdGlD
b2x1bW5TcGFubmVyUGxhY2Vob2xkZXI6OlJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9s
ZGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNjcm9sbGJhcjo6UmVuZGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6
OndpbGxJbnNlcnRUYWJsZVNlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6
OmFkZENhcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OnVwZGF0ZUNvbHVt
bkNhY2hlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpyZWNhbGNTZWN0
aW9ucyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6c2V0SW5saW5lV3JhcHBlckZvckRpc3BsYXlDb250ZW50
cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6
OlJlcGFpbnRSZWdpb25BY2N1bXVsYXRvcjo6UmVwYWludFJlZ2lvbkFjY3VtdWxhdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmxheWVyQ2hpbGRyZW5DaGFuZ2VkRHVyaW5nU3R5
bGVDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2Vk
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0hpdFRlc3RDeWNsZURldGVjdGlvblNjb3BlOjpTVkdIaXRUZXN0Q3lj
bGVEZXRlY3Rpb25TY29wZSk6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpjaGls
ZEZsb3dTdGF0ZUNoYW5nZXNBbmRBZmZlY3RzUGFyZW50QmxvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OmRlc3Ryb3lBbmRDbGVhblVwQW5vbnltb3VzV3JhcHBlcnMp
OgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpCbG9jazo6ZGV0YWNoKToK
KyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6Rmlyc3RMZXR0ZXI6
OnVwZGF0ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpGaXJz
dExldHRlcjo6Y3JlYXRlUmVuZGVyZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUcmVlQnVpbGRlcjo6TXVsdGlDb2x1bW46Om11bHRpQ29sdW1uRGVzY2VuZGFudEluc2VydGVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVBvc2l0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVQb3NpdGlvbjo6Y29tcHV0ZU5leHRTaWJsaW5n
KToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVBvc2l0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlUG9zaXRpb246OlJlbmRlclRyZWVQb3NpdGlvbik6
CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyR2VuZXJhdGVk
Q29udGVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6R2VuZXJh
dGVkQ29udGVudDo6dXBkYXRlUXVvdGVzVXBUbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
cmVlVXBkYXRlcjo6R2VuZXJhdGVkQ29udGVudDo6dXBkYXRlQmFja2Ryb3BSZW5kZXJlcik6Cisg
ICAgICAgICogc3ZnL1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVu
dDo6YWRkUmVmZXJlbmNpbmdFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudFJhcmVE
YXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50UmFyZURhdGE6OnNldENvcnJlc3Bv
bmRpbmdFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHVmlld0VsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OlNW
R1ZpZXdTcGVjKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OnhyVGVzdCk6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFj
dG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6Y3JlYXRlQ0RNKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE06OmNyZWF0ZUluc3RhbmNlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tDRE1JbnN0YW5jZTo6Y3JlYXRlU2Vzc2lvbik6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRm9u
dExvYWRSZXF1ZXN0Ojpsb2FkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjppbXBvcnRTY3JpcHRz
KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjpzZXRNYWluU2NyaXB0U291
cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyOjppbml0U2NyaXB0V2l0aFN1YmNsYXNzKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
clJ1bkxvb3AuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWFpblJ1bkxvb3A6OnNldEds
b2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OmV2YWx1YXRlU2NyaXB0SWZOZWNlc3NhcnkpOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0aW9uRGF0YWJhc2U6OlJlZ2lzdHJhdGlvbkRhdGFi
YXNlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjphZGRSZWdpc3RyYXRpb24pOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXJXb3JrZXI6OlNXU2VydmVyV29ya2VyKToKKyAgICAgICAgKiB3b3JrbGV0cy9X
b3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNj
b3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6V29y
a2xldFBlbmRpbmdUYXNrcyk6CisgICAgICAgICogeG1sL0RPTVBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01QYXJzZXI6OkRPTVBhcnNlcik6CisKIDIwMjEtMTAtMTMgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIENy
YXNoIGluIFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c291cmNlU2V0dXAg
d2hlbiBsb2FkaW5nIHJlZGRpdCB2aWRlbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vh
a1B0ci5oIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCmluZGV4IGY0ZTdiMTI0NTE0ZmZiMGIw
ODMzZjAzZjEwODQ5Y2I2YTFhMmUxMjAuLjhiYTcyODdlOTYwNDExODAwNzZmMDU3ZTBiNzMzN2I1
MThkMzZjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVT4gV2Vha1B0cihjb25zdCBXZWFrUHRyPFUsIENvdW50ZXI+Jik7CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gV2Vha1B0cihXZWFrUHRyPFUsIENvdW50ZXI+JiYpOwog
Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJc1NtYXJ0UHRyPFQ+
Ojp2YWx1ZT4+IFdlYWtQdHIoVCogb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0
aW9ucyBzaG91bGRFbmFibGVBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2Vy
dGlvbnM6OlllcykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlz
U21hcnRQdHI8VD46OnZhbHVlPj4gV2Vha1B0cihjb25zdCBUKiBvYmplY3QsIEVuYWJsZVdlYWtQ
dHJUaHJlYWRpbmdBc3NlcnRpb25zIHNob3VsZEVuYWJsZUFzc2VydGlvbnMgPSBFbmFibGVXZWFr
UHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQogICAgICAgICA6IG1faW1wbChvYmplY3QgPyBp
bXBsRm9yT2JqZWN0KCpvYmplY3QpIDogbnVsbHB0cikKICNpZiBBU1NFUlRfRU5BQkxFRAogICAg
ICAgICAsIG1fc2hvdWxkRW5hYmxlQXNzZXJ0aW9ucyhzaG91bGRFbmFibGVBc3NlcnRpb25zID09
IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpCkBAIC0xMTEsNyArMTExLDcg
QEAgcHVibGljOgogICAgICAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QgPT0gbV9pbXBsLT50
ZW1wbGF0ZSBnZXQ8VD4oKSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgPSBzdGQ6
OmVuYWJsZV9pZl90PCFJc1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IFdlYWtQdHIoVCYgb2JqZWN0LCBF
bmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBzaG91bGRFbmFibGVBc3NlcnRpb25zID0g
RW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlzU21hcnRQdHI8VD46OnZhbHVlICYmICFzdGQ6Omlz
X3BvaW50ZXJfdjxUPj4+IFdlYWtQdHIoY29uc3QgVCYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhy
ZWFkaW5nQXNzZXJ0aW9ucyBzaG91bGRFbmFibGVBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRo
cmVhZGluZ0Fzc2VydGlvbnM6OlllcykKICAgICAgICAgOiBtX2ltcGwoaW1wbEZvck9iamVjdChv
YmplY3QpKQogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgICAgICwgbV9zaG91bGRFbmFibGVBc3Nl
cnRpb25zKHNob3VsZEVuYWJsZUFzc2VydGlvbnMgPT0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fz
c2VydGlvbnM6OlllcykKQEAgLTEyMSwxMSArMTIxLDExIEBAIHB1YmxpYzoKICAgICAgICAgQVNT
RVJUKCZvYmplY3QgPT0gbV9pbXBsLT50ZW1wbGF0ZSBnZXQ8VD4oKSk7CiAgICAgfQogCi0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJc1NtYXJ0UHRyPFQ+Ojp2YWx1
ZT4+IFdlYWtQdHIoUmVmPFQ+JiBvYmplY3QsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRp
b25zIHNob3VsZEVuYWJsZUFzc2VydGlvbnMgPSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0
aW9uczo6WWVzKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhSXNT
bWFydFB0cjxUPjo6dmFsdWU+PiBXZWFrUHRyKGNvbnN0IFJlZjxUPiYgb2JqZWN0LCBFbmFibGVX
ZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBzaG91bGRFbmFibGVBc3NlcnRpb25zID0gRW5hYmxl
V2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKICAgICAgICAgOiBXZWFrUHRyKG9iamVj
dC5nZXQoKSwgc2hvdWxkRW5hYmxlQXNzZXJ0aW9ucykKICAgICB7IH0KIAotICAgIHRlbXBsYXRl
PHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhSXNTbWFydFB0cjxUPjo6dmFsdWU+PiBXZWFr
UHRyKFJlZlB0cjxUPiYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBz
aG91bGRFbmFibGVBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6
OlllcykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlzU21hcnRQ
dHI8VD46OnZhbHVlPj4gV2Vha1B0cihjb25zdCBSZWZQdHI8VD4mIG9iamVjdCwgRW5hYmxlV2Vh
a1B0clRocmVhZGluZ0Fzc2VydGlvbnMgc2hvdWxkRW5hYmxlQXNzZXJ0aW9ucyA9IEVuYWJsZVdl
YWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpCiAgICAgICAgIDogV2Vha1B0cihvYmplY3Qu
Z2V0KCksIHNob3VsZEVuYWJsZUFzc2VydGlvbnMpCiAgICAgeyB9CiAKQEAgLTE3Miw3ICsxNzIs
NyBAQCBwcml2YXRlOgogICAgICAgICBVTlVTRURfUEFSQU0oc2hvdWxkRW5hYmxlQXNzZXJ0aW9u
cyk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gc3RhdGljIFdlYWtQdHJJbXBs
PENvdW50ZXI+KiBpbXBsRm9yT2JqZWN0KFUmIG9iamVjdCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPiBzdGF0aWMgV2Vha1B0ckltcGw8Q291bnRlcj4qIGltcGxGb3JPYmplY3QoY29uc3QgVSYg
b2JqZWN0KQogICAgIHsKICAgICAgICAgb2JqZWN0LndlYWtQdHJGYWN0b3J5KCkuaW5pdGlhbGl6
ZUlmTmVlZGVkKG9iamVjdCk7CiAgICAgICAgIHJldHVybiBvYmplY3Qud2Vha1B0ckZhY3Rvcnko
KS5tX2ltcGwuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0
Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKaW5k
ZXggOGM5YTlkYTVkNzhjZDE0Y2EyNWI4NTY4Y2VhZjZmODFiOGNjZDQwMC4uOGViN2U5ZWFkMjE2
MGUxNzJkMGZjMzNlYWUxM2Y3ZDhmZDVjMTU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNh
c3RDaGFubmVsLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiB9OwogCiBCcm9hZGNh
c3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjpNYWluVGhyZWFkQnJpZGdlKEJyb2FkY2FzdENo
YW5uZWwmIGNoYW5uZWwsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IG1fYnJvYWRjYXN0Q2hh
bm5lbChtYWtlV2Vha1B0cihjaGFubmVsKSkKKyAgICA6IG1fYnJvYWRjYXN0Q2hhbm5lbChjaGFu
bmVsKQogICAgICwgbV9pZGVudGlmaWVyKEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyOjpnZW5l
cmF0ZVRocmVhZFNhZmUoKSkKICAgICAsIG1fbmFtZShuYW1lLmlzb2xhdGVkQ29weSgpKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAKaW5kZXggOWZjMjdh
ZjMzYmU3NDBmODIyNGM3Mjk0OWNjMmUzMmQxZmM3NzliMy4uYTI1YjkwYzg3ZGFmMDY2YzdhOWM1
NDU0YWQ0YmRkMDA5YzIyMjkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlckl0ZW1MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbUxpc3QuY3BwCkBAIC04Miw3ICs4Miw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtPj4gRGF0YVRyYW5zZmVySXRlbUxpc3Q6OmFkZChjb25zdCBTdHJpbmcmIGRhCiAK
ICAgICBtX2RhdGFUcmFuc2Zlci5zZXREYXRhRnJvbUl0ZW1MaXN0KGxvd2VyY2FzZWRUeXBlLCBk
YXRhKTsKICAgICBBU1NFUlQobV9pdGVtcyk7Ci0gICAgbV9pdGVtcy0+YXBwZW5kKERhdGFUcmFu
c2Zlckl0ZW06OmNyZWF0ZShtYWtlV2Vha1B0cigqdGhpcyksIGxvd2VyY2FzZWRUeXBlKSk7Cisg
ICAgbV9pdGVtcy0+YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZSgqdGhpcywgbG93ZXJj
YXNlZFR5cGUpKTsKICAgICByZXR1cm4gbV9pdGVtcy0+bGFzdCgpLnB0cigpOwogfQogCkBAIC05
MSw3ICs5MSw3IEBAIFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBEYXRhVHJhbnNmZXJJdGVtTGlz
dDo6YWRkKFJlZjxGaWxlPiYmIGZpbGUpCiAgICAgaWYgKCFtX2RhdGFUcmFuc2Zlci5jYW5Xcml0
ZURhdGEoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBlbnN1cmVJdGVtcygpLmFw
cGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobWFrZVdlYWtQdHIoKnRoaXMpLCBmaWxlLT50
eXBlKCksIGZpbGUuY29weVJlZigpKSk7CisgICAgZW5zdXJlSXRlbXMoKS5hcHBlbmQoRGF0YVRy
YW5zZmVySXRlbTo6Y3JlYXRlKCp0aGlzLCBmaWxlLT50eXBlKCksIGZpbGUuY29weVJlZigpKSk7
CiAgICAgbV9kYXRhVHJhbnNmZXIuZGlkQWRkRmlsZVRvSXRlbUxpc3QoKTsKICAgICByZXR1cm4g
bV9pdGVtcy0+bGFzdCgpLnB0cigpOwogfQpAQCAtMTQyLDExICsxNDIsMTEgQEAgVmVjdG9yPFJl
ZjxEYXRhVHJhbnNmZXJJdGVtPj4mIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjplbnN1cmVJdGVtcygp
IGNvbnN0CiAgICAgZm9yIChhdXRvJiB0eXBlIDogbV9kYXRhVHJhbnNmZXIudHlwZXNGb3JJdGVt
TGlzdCgpKSB7CiAgICAgICAgIGF1dG8gbG93ZXJjYXNlZFR5cGUgPSB0eXBlLmNvbnZlcnRUb0FT
Q0lJTG93ZXJjYXNlKCk7CiAgICAgICAgIGlmIChzaG91bGRFeHBvc2VUeXBlSW5JdGVtTGlzdChs
b3dlcmNhc2VkVHlwZSkpCi0gICAgICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRl
bTo6Y3JlYXRlKG1ha2VXZWFrUHRyKCpjb25zdF9jYXN0PERhdGFUcmFuc2Zlckl0ZW1MaXN0Kj4o
dGhpcykpLCBsb3dlcmNhc2VkVHlwZSkpOworICAgICAgICAgICAgaXRlbXMuYXBwZW5kKERhdGFU
cmFuc2Zlckl0ZW06OmNyZWF0ZSgqdGhpcywgbG93ZXJjYXNlZFR5cGUpKTsKICAgICB9CiAKICAg
ICBmb3IgKGF1dG8mIGZpbGUgOiBtX2RhdGFUcmFuc2Zlci5maWxlcyhkb2N1bWVudCgpKS5maWxl
cygpKQotICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1ha2VX
ZWFrUHRyKCpjb25zdF9jYXN0PERhdGFUcmFuc2Zlckl0ZW1MaXN0Kj4odGhpcykpLCBmaWxlLT50
eXBlKCksIGZpbGUuY29weVJlZigpKSk7CisgICAgICAgIGl0ZW1zLmFwcGVuZChEYXRhVHJhbnNm
ZXJJdGVtOjpjcmVhdGUoKnRoaXMsIGZpbGUtPnR5cGUoKSwgZmlsZS5jb3B5UmVmKCkpKTsKIAog
ICAgIG1faXRlbXMgPSBXVEZNb3ZlKGl0ZW1zKTsKIApAQCAtMTkxLDcgKzE5MSw3IEBAIHZvaWQg
RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmRpZFNldFN0cmluZ0RhdGEoY29uc3QgU3RyaW5nJiB0eXBl
KQogICAgIFN0cmluZyBsb3dlcmNhc2VkVHlwZSA9IHR5cGUuY29udmVydFRvQVNDSUlMb3dlcmNh
c2UoKTsKICAgICByZW1vdmVTdHJpbmdJdGVtT2ZMb3dlcmNhc2VkVHlwZSgqbV9pdGVtcywgdHlw
ZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpKTsKIAotICAgIG1faXRlbXMtPmFwcGVuZChEYXRh
VHJhbnNmZXJJdGVtOjpjcmVhdGUobWFrZVdlYWtQdHIoKnRoaXMpLCBsb3dlcmNhc2VkVHlwZSkp
OworICAgIG1faXRlbXMtPmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUoKnRoaXMsIGxv
d2VyY2FzZWRUeXBlKSk7CiB9CiAKIERvY3VtZW50KiBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZG9j
dW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDZmNGQ4YWIxZjRmMjAw
YjA2YWM2ZTcwYzQzYWQ0YmFlOTQ4NmU2MS4uOGRlNjE3NDFlZmVkMzYzMzExMWQzN2VjZWQ4MWI1
OTQ3YWQ4MTI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04OTgsNyArODk4LDcgQEAg
dm9pZCBEb2N1bWVudDo6YnVpbGRBY2Nlc3NLZXlDYWNoZSgpCiAgICAgICAgICAgICBhdXRvJiBr
ZXkgPSBlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYWNjZXNza2V5QXR0
cik7CiAgICAgICAgICAgICBpZiAoa2V5LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIG1hcC5hZGQoa2V5LCBtYWtlV2Vha1B0cihlbGVtZW50KSk7Cisg
ICAgICAgICAgICBtYXAuYWRkKGtleSwgZWxlbWVudCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIG1hcDsKICAgICB9KCkpOwpAQCAtMjg3MCw3ICsyODcwLDcgQEAgdm9pZCBEb2N1bWVudDo6
Y29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3RlcihWZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRSYW5n
ZURhdGE+PiYKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIGlmICgmcmFu
Z2VEYXRhLT5yYW5nZS0+c3RhcnRDb250YWluZXIoKS50cmVlU2NvcGUoKSAhPSAmcmFuZ2VEYXRh
LT5yYW5nZS0+ZW5kQ29udGFpbmVyKCkudHJlZVNjb3BlKCkpCiAgICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICByYW5nZXNEYXRhLmFwcGVuZChtYWtlV2Vha1B0cihyYW5nZURh
dGEucHRyKCkpKTsKKyAgICAgICAgICAgIHJhbmdlc0RhdGEuYXBwZW5kKHJhbmdlRGF0YS5nZXQo
KSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0zOTQxLDcgKzM5NDEsNyBAQCBXZWFrUHRyPEhU
TUxNZXRhRWxlbWVudD4gRG9jdW1lbnQ6OmRldGVybWluZUFjdGl2ZVRoZW1lQ29sb3JNZXRhRWxl
bWVudCgpCiAgICAgICAgIFZlY3RvcjxXZWFrUHRyPEhUTUxNZXRhRWxlbWVudD4+IG1ldGFUaGVt
ZUNvbG9yRWxlbWVudHM7CiAgICAgICAgIGZvciAoYXV0byYgbWV0YUVsZW1lbnQgOiBkZXNjZW5k
YW50c09mVHlwZTxIVE1MTWV0YUVsZW1lbnQ+KCp0aGlzKSkgewogICAgICAgICAgICAgaWYgKGVx
dWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1ldGFFbGVtZW50Lm5hbWUoKSwgInRoZW1lLWNv
bG9yIikgJiYgbWV0YUVsZW1lbnQuY29udGVudENvbG9yKCkuaXNWYWxpZCgpKQotICAgICAgICAg
ICAgICAgIG1ldGFUaGVtZUNvbG9yRWxlbWVudHMuYXBwZW5kKG1ha2VXZWFrUHRyKG1ldGFFbGVt
ZW50KSk7CisgICAgICAgICAgICAgICAgbWV0YVRoZW1lQ29sb3JFbGVtZW50cy5hcHBlbmQobWV0
YUVsZW1lbnQpOwogICAgICAgICB9CiAgICAgICAgIG1fbWV0YVRoZW1lQ29sb3JFbGVtZW50cyA9
IFdURk1vdmUobWV0YVRoZW1lQ29sb3JFbGVtZW50cyk7CiAgICAgfQpAQCAtNDM5MCw3ICs0Mzkw
LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0QWN0aXZlU3BlZWNoUmVjb2duaXRpb24oU3BlZWNoUmVj
b2duaXRpb24qIHNwZWVjaFJlY29nbml0aW9uKQogICAgIGlmIChtX2FjdGl2ZVNwZWVjaFJlY29n
bml0aW9uID09IHNwZWVjaFJlY29nbml0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Fj
dGl2ZVNwZWVjaFJlY29nbml0aW9uID0gbWFrZVdlYWtQdHIoc3BlZWNoUmVjb2duaXRpb24pOwor
ICAgIG1fYWN0aXZlU3BlZWNoUmVjb2duaXRpb24gPSBzcGVlY2hSZWNvZ25pdGlvbjsKICAgICB1
cGRhdGVJc1BsYXlpbmdNZWRpYSgpOwogfQogCkBAIC00NDg5LDcgKzQ0ODksNyBAQCB2b2lkIERv
Y3VtZW50OjphcHBlbmRBdXRvZm9jdXNDYW5kaWRhdGUoRWxlbWVudCYgY2FuZGlkYXRlKQogICAg
IH0pOwogICAgIGlmIChpdCAhPSBtX2F1dG9mb2N1c0NhbmRpZGF0ZXMuZW5kKCkpCiAgICAgICAg
IG1fYXV0b2ZvY3VzQ2FuZGlkYXRlcy5yZW1vdmUoaXQpOwotICAgIG1fYXV0b2ZvY3VzQ2FuZGlk
YXRlcy5hcHBlbmQobWFrZVdlYWtQdHIoY2FuZGlkYXRlKSk7CisgICAgbV9hdXRvZm9jdXNDYW5k
aWRhdGVzLmFwcGVuZChjYW5kaWRhdGUpOwogfQogCiB2b2lkIERvY3VtZW50OjpmbHVzaEF1dG9m
b2N1c0NhbmRpZGF0ZXMoKQpAQCAtNTgwNCw3ICs1ODA0LDcgQEAgdm9pZCBEb2N1bWVudDo6Y2Fw
dGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpCiAKIHZvaWQgRG9jdW1lbnQ6OnNldE1lZGlhRWxlbWVu
dFNob3dpbmdUZXh0VHJhY2soY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKIHsKLSAg
ICBtX21lZGlhRWxlbWVudFNob3dpbmdUZXh0VHJhY2sgPSBtYWtlV2Vha1B0cihlbGVtZW50KTsK
KyAgICBtX21lZGlhRWxlbWVudFNob3dpbmdUZXh0VHJhY2sgPSBlbGVtZW50OwogfQogCiB2b2lk
IERvY3VtZW50OjpjbGVhck1lZGlhRWxlbWVudFNob3dpbmdUZXh0VHJhY2soKQpAQCAtNzI4NSw3
ICs3Mjg1LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGVjcmVtZW50QWN0aXZlUGFyc2VyQ291bnQoKQog
fQogCiBEb2N1bWVudFBhcnNlcllpZWxkVG9rZW46OkRvY3VtZW50UGFyc2VyWWllbGRUb2tlbihE
b2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KG1ha2VXZWFrUHRyKGRvY3VtZW50
KSkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiB7CiAgICAgaWYgKCsrZG9jdW1lbnQubV9w
YXJzZXJZaWVsZFRva2VuQ291bnQgIT0gMSkKICAgICAgICAgcmV0dXJuOwpAQCAtNzg4Nyw3ICs3
ODg3LDcgQEAgdm9pZCBEb2N1bWVudDo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoT3B0aW9uU2V0
PFJlbmRlcmluZ1VwZGF0ZVN0ZXA+IHJlcXVlc3RlZFMKIHZvaWQgRG9jdW1lbnQ6OmFkZEludGVy
c2VjdGlvbk9ic2VydmVyKEludGVyc2VjdGlvbk9ic2VydmVyJiBvYnNlcnZlcikKIHsKICAgICBB
U1NFUlQobV9pbnRlcnNlY3Rpb25PYnNlcnZlcnMuZmluZCgmb2JzZXJ2ZXIpID09IG5vdEZvdW5k
KTsKLSAgICBtX2ludGVyc2VjdGlvbk9ic2VydmVycy5hcHBlbmQobWFrZVdlYWtQdHIoJm9ic2Vy
dmVyKSk7CisgICAgbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKIH0K
IAogdm9pZCBEb2N1bWVudDo6cmVtb3ZlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoSW50ZXJzZWN0aW9u
T2JzZXJ2ZXImIG9ic2VydmVyKQpAQCAtODA5Myw3ICs4MDkzLDcgQEAgdm9pZCBEb2N1bWVudDo6
dXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25zKCkKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICBpZiAobmVlZE5vdGlmeSkKLSAgICAgICAgICAgIGludGVyc2VjdGlvbk9ic2Vy
dmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9ucy5hcHBlbmQobWFrZVdlYWtQdHIob2JzZXJ2ZXIu
Z2V0KCkpKTsKKyAgICAgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyc1dpdGhQZW5kaW5nTm90
aWZpY2F0aW9ucy5hcHBlbmQob2JzZXJ2ZXIpOwogICAgIH0KIAogICAgIGZvciAoY29uc3QgYXV0
byYgb2JzZXJ2ZXIgOiBpbnRlcnNlY3Rpb25PYnNlcnZlcnNXaXRoUGVuZGluZ05vdGlmaWNhdGlv
bnMpIHsKQEAgLTgxMjAsNyArODEyMCw3IEBAIEludGVyc2VjdGlvbk9ic2VydmVyRGF0YSYgRG9j
dW1lbnQ6OmVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyRGF0YSgpCiB2b2lkIERvY3VtZW50Ojph
ZGRSZXNpemVPYnNlcnZlcihSZXNpemVPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CiAgICAgaWYgKCFt
X3Jlc2l6ZU9ic2VydmVycy5jb250YWlucygmb2JzZXJ2ZXIpKQotICAgICAgICBtX3Jlc2l6ZU9i
c2VydmVycy5hcHBlbmQobWFrZVdlYWtQdHIoJm9ic2VydmVyKSk7CisgICAgICAgIG1fcmVzaXpl
T2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZVJl
c2l6ZU9ic2VydmVyKFJlc2l6ZU9ic2VydmVyJiBvYnNlcnZlcikKQEAgLTgzOTcsNyArODM5Nyw3
IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZU1haW5BcnRpY2xlRWxlbWVudEFmdGVyTGF5b3V0KCkK
ICAgICB9CiAKICAgICBpZiAobnVtYmVyT2ZBcnRpY2xlcyA9PSAxKSB7Ci0gICAgICAgIG1fbWFp
bkFydGljbGVFbGVtZW50ID0gbWFrZVdlYWtQdHIodGFsbGVzdEFydGljbGUuZ2V0KCkpOworICAg
ICAgICBtX21haW5BcnRpY2xlRWxlbWVudCA9IHRhbGxlc3RBcnRpY2xlOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC04NDExLDcgKzg0MTEsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVN
YWluQXJ0aWNsZUVsZW1lbnRBZnRlckxheW91dCgpCiAgICAgaWYgKHRhbGxlc3RBcnRpY2xlV2lk
dGggKiB0YWxsZXN0QXJ0aWNsZUhlaWdodCA8IG1pbmltdW1WaWV3cG9ydEFyZWFGYWN0b3IgKiAo
dmlld3BvcnRTaXplLndpZHRoKCkgKiB2aWV3cG9ydFNpemUuaGVpZ2h0KCkpLnRvRmxvYXQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9tYWluQXJ0aWNsZUVsZW1lbnQgPSBtYWtlV2Vha1B0
cih0YWxsZXN0QXJ0aWNsZS5nZXQoKSk7CisgICAgbV9tYWluQXJ0aWNsZUVsZW1lbnQgPSB0YWxs
ZXN0QXJ0aWNsZTsKIH0KIAogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQpAQCAtODkyNiw3ICs4OTI2LDcgQEAgSFRNTFZpZGVvRWxlbWVudCogRG9jdW1lbnQ6OnBp
Y3R1cmVJblBpY3R1cmVFbGVtZW50KCkgY29uc3QKIAogdm9pZCBEb2N1bWVudDo6c2V0UGljdHVy
ZUluUGljdHVyZUVsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBtX3Bp
Y3R1cmVJblBpY3R1cmVFbGVtZW50ID0gbWFrZVdlYWtQdHIoZWxlbWVudCk7CisgICAgbV9waWN0
dXJlSW5QaWN0dXJlRWxlbWVudCA9IGVsZW1lbnQ7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAppbmRleCA2NGRhODdiZGNkOTU5NDYwN2Y1NjAxNzgwMWE0OGJhNWZiYzczZGZmLi41ZDIw
M2FiYWM4Yjk0ZDdkZWQ0ZjcyNjc5YmEzMzk2MzUyMDgzZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aApAQCAtODY3LDcgKzg2Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0Jyb3dzaW5nQ29udGV4
dCgpIGNvbnN0IHsgcmV0dXJuICEhZnJhbWUoKTsgfQogCiAgICAgRG9jdW1lbnQmIGNvbnRleHRE
b2N1bWVudCgpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29udGV4dERvY3VtZW50KERvY3VtZW50JiBk
b2N1bWVudCkgeyBtX2NvbnRleHREb2N1bWVudCA9IG1ha2VXZWFrUHRyKGRvY3VtZW50KTsgfQor
ICAgIHZvaWQgc2V0Q29udGV4dERvY3VtZW50KERvY3VtZW50JiBkb2N1bWVudCkgeyBtX2NvbnRl
eHREb2N1bWVudCA9IGRvY3VtZW50OyB9CiAKICAgICAvLyBIZWxwZXIgZnVuY3Rpb25zIGZvciBm
b3J3YXJkaW5nIERPTVdpbmRvdyBldmVudCByZWxhdGVkIHRhc2tzIHRvIHRoZSBET01XaW5kb3cg
aWYgaXQgZXhpc3RzLgogICAgIHZvaWQgc2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihj
b25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBET01XcmFwcGVyV29ybGQmKTsKQEAgLTEz
NDcsNyArMTM0Nyw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IERvY3VtZW50KiB0ZW1wbGF0ZURv
Y3VtZW50KCkgY29uc3Q7CiAgICAgRG9jdW1lbnQmIGVuc3VyZVRlbXBsYXRlRG9jdW1lbnQoKTsK
LSAgICB2b2lkIHNldFRlbXBsYXRlRG9jdW1lbnRIb3N0KERvY3VtZW50KiB0ZW1wbGF0ZURvY3Vt
ZW50SG9zdCkgeyBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0ID0gbWFrZVdlYWtQdHIodGVtcGxhdGVE
b2N1bWVudEhvc3QpOyB9CisgICAgdm9pZCBzZXRUZW1wbGF0ZURvY3VtZW50SG9zdChEb2N1bWVu
dCogdGVtcGxhdGVEb2N1bWVudEhvc3QpIHsgbV90ZW1wbGF0ZURvY3VtZW50SG9zdCA9IHRlbXBs
YXRlRG9jdW1lbnRIb3N0OyB9CiAgICAgRG9jdW1lbnQqIHRlbXBsYXRlRG9jdW1lbnRIb3N0KCkg
eyByZXR1cm4gbV90ZW1wbGF0ZURvY3VtZW50SG9zdC5nZXQoKTsgfQogCiAgICAgUmVmPERvY3Vt
ZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGb3JJbm5lck91dGVySFRNTCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudFBhcnNlci5jcHAKaW5kZXggNzYyZDljMDBjZjlhMmY1YzQyYThhMzQ4
YTc2YTU3NzhmMGIzZmNiNy4uNTExMmYxODFiNjYxYzNlMzk0YzhkMjNiNGM3MjUzODQ0NWFjYjIw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0zNCw3ICszNCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIERvY3VtZW50UGFyc2VyOjpEb2N1bWVudFBhcnNlcihEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX3N0YXRlKFBhcnNlclN0YXRlOjpQYXJzaW5nKQogICAg
ICwgbV9kb2N1bWVudFdhc0xvYWRlZEFzUGFydE9mTmF2aWdhdGlvbihmYWxzZSkKLSAgICAsIG1f
ZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9jdW1lbnQpKQorICAgICwgbV9kb2N1bWVudChkb2N1bWVu
dCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5oCmluZGV4IGJhNDYyNWFiZDZjOWNhNzE4MTlk
Mzg0NTI3NWIwZWM2ZjEzNjEzNjIuLjQ5ZDE5MTY2N2U3MzhhMmMwYjQ4NDZmNmM5ZDliMDM2ZGE0
ZTAzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExvb3AuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMb29wLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBjbGFzcyBF
dmVudExvb3BUYXNrR3JvdXAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RXZlbnRMb29wVGFza0dy
b3VwPiB7CiAKIHB1YmxpYzoKICAgICBFdmVudExvb3BUYXNrR3JvdXAoRXZlbnRMb29wJiBldmVu
dExvb3ApCi0gICAgICAgIDogbV9ldmVudExvb3AobWFrZVdlYWtQdHIoZXZlbnRMb29wKSkKKyAg
ICAgICAgOiBtX2V2ZW50TG9vcChldmVudExvb3ApCiAgICAgewogICAgICAgICBldmVudExvb3Au
cmVnaXN0ZXJHcm91cCgqdGhpcyk7CiAgICAgfQpAQCAtMTkzLDcgKzE5Myw3IEBAIHByaXZhdGU6
CiAKIGlubGluZSBFdmVudExvb3BUYXNrOjpFdmVudExvb3BUYXNrKFRhc2tTb3VyY2Ugc291cmNl
LCBFdmVudExvb3BUYXNrR3JvdXAmIGdyb3VwKQogICAgIDogbV90YXNrU291cmNlKHNvdXJjZSkK
LSAgICAsIG1fZ3JvdXAobWFrZVdlYWtQdHIoZ3JvdXApKQorICAgICwgbV9ncm91cChncm91cCkK
IHsgfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRTZW5kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFNlbmRlci5oCmlu
ZGV4IDBjNTYyMGYwNzc3YzdkZmI5NTlkZjdmMjA0NzcxMDVmYTYwYTZjZmMuLmQ2OWE2ZTVlOWNi
OGE5Y2UwMTkzODVlYzcxYTkzYzk3N2U1ZTQyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFNlbmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFNlbmRlci5o
CkBAIC02Nyw3ICs2Nyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IEV2ZW50U2VuZGVyPFQ+OjpF
dmVudFNlbmRlcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUpCiAKIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IHZvaWQgRXZlbnRTZW5kZXI8VD46OmRpc3BhdGNoRXZlbnRTb29uKFQmIHNlbmRlcikK
IHsKLSAgICBtX2Rpc3BhdGNoU29vbkxpc3QuYXBwZW5kKG1ha2VXZWFrUHRyKHNlbmRlcikpOwor
ICAgIG1fZGlzcGF0Y2hTb29uTGlzdC5hcHBlbmQoc2VuZGVyKTsKICAgICBpZiAoIW1fdGltZXIu
aXNBY3RpdmUoKSkKICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMF9zKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXQuY3BwCmluZGV4IGVhYmIzOWMzOTVjM2E3OTAxYzJmMzBjZmQxNWY2
NmY3YzNhYTkyZjEuLmNmMzYxMTNlNTY5YWUxODhmZTJjYzdmZTQ5Y2JhYTEwZjY1YjUzYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtOTgsNyArOTgsNyBAQCBib29sIEV2ZW50
VGFyZ2V0OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgUmVm
PEV2ZW50TGlzdGVuZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAob3B0aW9ucy5z
aWduYWwpIHsKLSAgICAgICAgb3B0aW9ucy5zaWduYWwtPmFkZEFsZ29yaXRobShbd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgZXZlbnRUeXBlLCBsaXN0ZW5lciA9IG1ha2VXZWFrUHRyKGxp
c3RlbmVyLmdldCgpKSwgY2FwdHVyZSA9IG9wdGlvbnMuY2FwdHVyZV0geworICAgICAgICBvcHRp
b25zLnNpZ25hbC0+YWRkQWxnb3JpdGhtKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBl
dmVudFR5cGUsIGxpc3RlbmVyID0gV2Vha1B0ciB7IGxpc3RlbmVyIH0sIGNhcHR1cmUgPSBvcHRp
b25zLmNhcHR1cmVdIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBsaXN0ZW5lcikKICAg
ICAgICAgICAgICAgICB3ZWFrVGhpcy0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsICps
aXN0ZW5lciwgY2FwdHVyZSk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2Ny
ZWVuTWFuYWdlci5jcHAKaW5kZXggZjgzZTI4NTI5ZDgxOGY2NmEzYTNmMWQ3YTk4ZDEyZjEzYmJm
M2RlYS4uYjU0MWZhN2NkYTEzYjM5MzhhNGMyN2E3ZTc1OTQwNDdmYTVkY2IyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCkBAIC01NTIsNyArNTUyLDcgQEAgdm9p
ZCBGdWxsc2NyZWVuTWFuYWdlcjo6c2V0RnVsbHNjcmVlblJlbmRlcmVyKFJlbmRlclRyZWVCdWls
ZGVyJiBidWlsZGVyLCBSZW5kZXIKICAgICAgICAgYnVpbGRlci5kZXN0cm95KCptX2Z1bGxzY3Jl
ZW5SZW5kZXJlcik7CiAgICAgQVNTRVJUKCFtX2Z1bGxzY3JlZW5SZW5kZXJlcik7CiAKLSAgICBt
X2Z1bGxzY3JlZW5SZW5kZXJlciA9IG1ha2VXZWFrUHRyKHJlbmRlcmVyKTsKKyAgICBtX2Z1bGxz
Y3JlZW5SZW5kZXJlciA9IHJlbmRlcmVyOwogfQogCiBSZW5kZXJGdWxsU2NyZWVuKiBGdWxsc2Ny
ZWVuTWFuYWdlcjo6ZnVsbHNjcmVlblJlbmRlcmVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9JZGxlQ2FsbGJhY2tDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9JZGxlQ2FsbGJhY2tDb250cm9sbGVyLmNwcAppbmRleCA3ODgyNTRkMWQ4OWExYjE5OGQ5
NDg0MzNmZTUxODQ3ZjBmYWY5NmM3Li5lNDExNjg4YjM4MzY1NmI2N2Q5NzdhMjRjZjViOWQ1Mzg0
Mjg1N2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vSWRsZUNhbGxiYWNrQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxsYmFja0NvbnRyb2xsZXIu
Y3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIElkbGVDYWxsYmFj
a0NvbnRyb2xsZXI6OklkbGVDYWxsYmFja0NvbnRyb2xsZXIoRG9jdW1lbnQmIGRvY3VtZW50KQot
ICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCisgICAgOiBtX2RvY3VtZW50
KGRvY3VtZW50KQogewogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2Fn
ZVBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAppbmRleCBlZGM0
YzBhYzQ3N2E1NzlhYjUxNDU1ZjliM2VjYjljYTQxM2NlOTM4Li44ZGEyMDc2MTgzMWY3MjIzYzhi
MzRiNzFiZGFmNjUzNjIxNmFlMTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVz
c2FnZVBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKQEAg
LTMzMyw3ICszMzMsNyBAQCBib29sIE1lc3NhZ2VQb3J0Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3QKICAgICAgICAgaWYgKGlzPFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPigq
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKICAgICAgICAgICAgIHdvcmtlck9yV29ya2xldFRo
cmVhZCA9IGRvd25jYXN0PFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KS53b3JrZXJPcldvcmtsZXRUaHJlYWQoKTsKIAotICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFtyZW1vdGVJZGVudGlmaWVyID0gbV9yZW1vdGVJZGVudGlmaWVyLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKGNvbnN0X2Nhc3Q8TWVzc2FnZVBvcnQqPih0aGlzKSksIHdvcmtlck9y
V29ya2xldFRocmVhZCA9IFdURk1vdmUod29ya2VyT3JXb3JrbGV0VGhyZWFkKV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcmVtb3RlSWRlbnRpZmllciA9IG1fcmVtb3Rl
SWRlbnRpZmllciwgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd29ya2VyT3JXb3JrbGV0
VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJPcldvcmtsZXRUaHJlYWQpXSgpIG11dGFibGUgewogICAg
ICAgICAgICAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLmNoZWNrUmVt
b3RlUG9ydEZvckFjdGl2aXR5KHJlbW90ZUlkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IFdURk1vdmUo
d2Vha1RoaXMpLCB3b3JrZXJPcldvcmtsZXRUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlck9yV29ya2xl
dFRocmVhZCldKGF1dG8gaGFzQWN0aXZpdHkpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGlm
ICghd29ya2VyT3JXb3JrbGV0VGhyZWFkKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh3ZWFr
VGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYWRpb0J1dHRvbkdyb3Vwcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFkaW9CdXR0b25Hcm91cHMuY3BwCmluZGV4IDdhNjAw
MjQ1YWM4OWM3YjdjM2E2MjJkN2E0NjY1ZmNiNTY3ZTZmM2YuLmE1ZDUzMGY5NjAwZTNiZTAwNmM0
MTJiYmQxNmNhZGM0MmY2Yzg5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYWRp
b0J1dHRvbkdyb3Vwcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhZGlvQnV0dG9uR3Jv
dXBzLmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lkIFJhZGlvQnV0dG9uR3JvdXA6OnNldENoZWNr
ZWRCdXR0b24oSFRNTElucHV0RWxlbWVudCogYnV0dG9uKQogICAgIGlmIChoYWRDaGVja2VkQnV0
dG9uICE9IHdpbGxIYXZlQ2hlY2tlZEJ1dHRvbikKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2Fs
Y0ZvckFsbEJ1dHRvbnMoKTsKIAotICAgIG1fY2hlY2tlZEJ1dHRvbiA9IG1ha2VXZWFrUHRyKGJ1
dHRvbik7CisgICAgbV9jaGVja2VkQnV0dG9uID0gYnV0dG9uOwogICAgIGlmIChvbGRDaGVja2Vk
QnV0dG9uKQogICAgICAgICBvbGRDaGVja2VkQnV0dG9uLT5zZXRDaGVja2VkKGZhbHNlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKaW5kZXggMGUxMTgzYmNkY2MwOGQwZDRhYjc0NWI1NjIwNWUyNTJjMTNjZDIzOC4uNjg3MDBi
NmNlNTFmYmYyMDdjM2NjYTU5NzZjOTdiMjFmY2FkNjgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTQwLDcgKzQwLDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpT
Y3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogbV9k
b2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2xvdEFzc2lnbm1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nsb3RBc3NpZ25tZW50LmNwcAppbmRleCAyNzQ5Y2Uy
MGFkNWY5MTYxZDNhYzZjMDRjZWYxMDA5YWUzYzBjZDRhLi41M2U0MmZjYjc0N2M0YzI4MWU1YmNh
N2VjNDZiM2ZhZGRmMGUwMzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2xvdEFz
c2lnbm1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TbG90QXNzaWdubWVudC5jcHAK
QEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIFNsb3RBc3NpZ25tZW50OjphZGRTbG90RWxlbWVudEJ5
TmFtZShjb25zdCBBdG9tU3RyaW5nJiBuYW1lLCBIVE1MU2xvdEVsZW1lbgogCiAgICAgc2xvdC5l
bGVtZW50Q291bnQrKzsKICAgICBpZiAoc2xvdC5lbGVtZW50Q291bnQgPT0gMSkgewotICAgICAg
ICBzbG90LmVsZW1lbnQgPSBtYWtlV2Vha1B0cihzbG90RWxlbWVudCk7CisgICAgICAgIHNsb3Qu
ZWxlbWVudCA9IHNsb3RFbGVtZW50OwogICAgICAgICBpZiAoc2hhZG93Um9vdC5zaG91bGRGaXJl
U2xvdGNoYW5nZUV2ZW50KCkgJiYgaGFzQXNzaWduZWROb2RlcyhzaGFkb3dSb290LCBzbG90KSkK
ICAgICAgICAgICAgIHNsb3RFbGVtZW50LmVucXVldWVTbG90Q2hhbmdlRXZlbnQoKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgU2xvdEFzc2lnbm1lbnQ6OnJlc29s
dmVTbG90c0FmdGVyU2xvdE11dGF0aW9uKFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QsIFNsb3RNCiAg
ICAgICAgICAgICAgICAgY3VycmVudFNsb3QtPm9sZEVsZW1lbnQgPSBXVEZNb3ZlKGN1cnJlbnRT
bG90LT5lbGVtZW50KTsKICAgICAgICAgICAgICAgICBjdXJyZW50RWxlbWVudC0+ZW5xdWV1ZVNs
b3RDaGFuZ2VFdmVudCgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgY3VycmVudFNsb3Qt
PmVsZW1lbnQgPSBtYWtlV2Vha1B0cigqY3VycmVudEVsZW1lbnQpOworICAgICAgICAgICAgY3Vy
cmVudFNsb3QtPmVsZW1lbnQgPSAqY3VycmVudEVsZW1lbnQ7CiAgICAgICAgIH0KICAgICB9CiAK
QEAgLTM3NywxNCArMzc3LDE0IEBAIHZvaWQgU2xvdEFzc2lnbm1lbnQ6OmFzc2lnblRvU2xvdChO
b2RlJiBjaGlsZCwgY29uc3QgQXRvbVN0cmluZyYgc2xvdE5hbWUpCiAgICAgaWYgKHNsb3ROYW1l
ID09IGRlZmF1bHRTbG90TmFtZSgpKSB7CiAgICAgICAgIGF1dG8gZGVmYXVsdFNsb3RFbnRyeSA9
IG1fc2xvdHMuZmluZChkZWZhdWx0U2xvdE5hbWUoKSk7CiAgICAgICAgIGlmIChkZWZhdWx0U2xv
dEVudHJ5ICE9IG1fc2xvdHMuZW5kKCkpCi0gICAgICAgICAgICBkZWZhdWx0U2xvdEVudHJ5LT52
YWx1ZS0+YXNzaWduZWROb2Rlcy5hcHBlbmQobWFrZVdlYWtQdHIoY2hpbGQpKTsKKyAgICAgICAg
ICAgIGRlZmF1bHRTbG90RW50cnktPnZhbHVlLT5hc3NpZ25lZE5vZGVzLmFwcGVuZChjaGlsZCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fc2xvdHMu
ZW5zdXJlKHNsb3ROYW1lLCBbXSB7CiAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFNsb3Q+KCk7
CiAgICAgfSk7Ci0gICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+YXNzaWduZWROb2Rlcy5h
cHBlbmQobWFrZVdlYWtQdHIoY2hpbGQpKTsKKyAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVl
LT5hc3NpZ25lZE5vZGVzLmFwcGVuZChjaGlsZCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXN0b21VbmRvU3RlcC5jcHAKaW5kZXggZjI4OTI3MWVjMTBhMDExNGQ1Njg4NGM4MDg0
NjYzYjFiMjEzOTY5My4uNDkwMjg3ZmQwZmRhN2I3ZmQ4NTFhN2ExZDJhM2E5ZDY4ZmJjYTZlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAKQEAgLTM0LDcgKzM0
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ3VzdG9tVW5kb1N0ZXA6OkN1c3RvbVVuZG9T
dGVwKFVuZG9JdGVtJiBpdGVtKQotICAgIDogbV91bmRvSXRlbShtYWtlV2Vha1B0cihpdGVtKSkK
KyAgICA6IG1fdW5kb0l0ZW0oaXRlbSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmNwcAppbmRleCBmMzQwMTQzNTlmZjdjZGJkODU3Y2ZkY2RiYmE5YjI0ZjI5MTAxYTY0
Li42MjQ3NmEyYWEyMGZjNmRkYjEzZGZjNWY0NjkxMDkxNjYxYjFiNGFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMTc4LDcgKzE3OCw3IEBAIHZvaWQgRWRpdENv
bW1hbmQ6OnNldEVuZGluZ1NlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24pCiB2b2lkIEVkaXRDb21tYW5kOjpzZXRQYXJlbnQoQ29tcG9zaXRlRWRpdENvbW1hbmQqIHBh
cmVudCkKIHsKICAgICBBU1NFUlQoKHBhcmVudCAmJiAhbV9wYXJlbnQpIHx8ICghcGFyZW50ICYm
IG1fcGFyZW50KSk7Ci0gICAgbV9wYXJlbnQgPSBtYWtlV2Vha1B0cihwYXJlbnQpOworICAgIG1f
cGFyZW50ID0gcGFyZW50OwogICAgIGlmIChwYXJlbnQpIHsKICAgICAgICAgbV9zdGFydGluZ1Nl
bGVjdGlvbiA9IHBhcmVudC0+bV9lbmRpbmdTZWxlY3Rpb247CiAgICAgICAgIG1fZW5kaW5nU2Vs
ZWN0aW9uID0gcGFyZW50LT5tX2VuZGluZ1NlbGVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggNzEzNjk5NTQ5MDVmOWYyZjFkOGUxY2RlMDYwZTQx
ZGNhZWNhMTQxMy4uNTFmMDJmMjIxNTRiMTAyNmZjOTY0ZjUxZjZmYWU2YzI2NDI2ZGJiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTE1Myw3ICsxNTMs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkQWx3YXlzVXNlRGlyZWN0aW9uYWxTZWxlY3Rp
b24oRG9jdW1lbnQqIGRvY3VtZW50KQogfQogCiBGcmFtZVNlbGVjdGlvbjo6RnJhbWVTZWxlY3Rp
b24oRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1
bWVudCkpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9ncmFudWxhcml0eShU
ZXh0R3JhbnVsYXJpdHk6OkNoYXJhY3RlckdyYW51bGFyaXR5KQogI2lmIEVOQUJMRShURVhUX0NB
UkVUKQogICAgICwgbV9jYXJldEJsaW5rVGltZXIoKnRoaXMsICZGcmFtZVNlbGVjdGlvbjo6Y2Fy
ZXRCbGlua1RpbWVyRmlyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGM0YTRmYmExZDAwMzQ2ZGY0NjcwMjMz
MDU0Mzk5NGUzZmQxMDk5MzIuLjNlZmQyMDg0MGI2ZGZjMWIzYWFjNWE5NWI3YWZjM2M3NDM3Yzkz
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXIuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgcHJpdmF0ZToKIH07CiAKIFRleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcihEb2N1bWVu
dCYgZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KG1ha2VXZWFrUHRyKGRvY3VtZW50KSkKKyAg
ICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiB7CiB9CiAKQEAgLTQ4MywxOSArNDgzLDE5IEBAIHZv
aWQgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Om9ic2VydmVQYXJhZ3JhcGhzKGNvbnN0IFBv
c2l0aW9uJiBzdGFydCwgY29uc3QKICAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCpjb250ZW50Tm9k
ZSkpIHsKICAgICAgICAgICAgIGF1dG8mIGN1cnJlbnRFbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVu
dD4oKmNvbnRlbnROb2RlKTsKICAgICAgICAgICAgIGlmICghY29udGVudC5pc1RleHRDb250ZW50
ICYmIGNhblBlcmZvcm1UZXh0TWFuaXB1bGF0aW9uQnlSZXBsYWNpbmdFbnRpcmVUZXh0Q29udGVu
dChjdXJyZW50RWxlbWVudCkpCi0gICAgICAgICAgICAgICAgYWRkSXRlbShNYW5pcHVsYXRpb25J
dGVtRGF0YSB7IFBvc2l0aW9uKCksIFBvc2l0aW9uKCksIG1ha2VXZWFrUHRyKGN1cnJlbnRFbGVt
ZW50KSwgbnVsbFFOYW1lKCksIHsgTWFuaXB1bGF0aW9uVG9rZW4geyBtX3Rva2VuSWRlbnRpZmll
ci5nZW5lcmF0ZSgpLCBjdXJyZW50RWxlbWVudC50ZXh0Q29udGVudCgpLCB0b2tlbkluZm8oJmN1
cnJlbnRFbGVtZW50KSB9IH0gfSk7CisgICAgICAgICAgICAgICAgYWRkSXRlbShNYW5pcHVsYXRp
b25JdGVtRGF0YSB7IFBvc2l0aW9uKCksIFBvc2l0aW9uKCksIGN1cnJlbnRFbGVtZW50LCBudWxs
UU5hbWUoKSwgeyBNYW5pcHVsYXRpb25Ub2tlbiB7IG1fdG9rZW5JZGVudGlmaWVyLmdlbmVyYXRl
KCksIGN1cnJlbnRFbGVtZW50LnRleHRDb250ZW50KCksIHRva2VuSW5mbygmY3VycmVudEVsZW1l
bnQpIH0gfSB9KTsKIAogICAgICAgICAgICAgaWYgKGN1cnJlbnRFbGVtZW50Lmhhc0F0dHJpYnV0
ZXMoKSkgewogICAgICAgICAgICAgICAgIGZvciAoYXV0byYgYXR0cmlidXRlIDogY3VycmVudEVs
ZW1lbnQuYXR0cmlidXRlc0l0ZXJhdG9yKCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGlz
QXR0cmlidXRlRm9yVGV4dE1hbmlwdWxhdGlvbihhdHRyaWJ1dGUubmFtZSgpKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGFkZEl0ZW0oTWFuaXB1bGF0aW9uSXRlbURhdGEgeyBQb3NpdGlvbigp
LCBQb3NpdGlvbigpLCBtYWtlV2Vha1B0cihjdXJyZW50RWxlbWVudCksIGF0dHJpYnV0ZS5uYW1l
KCksIHsgTWFuaXB1bGF0aW9uVG9rZW4geyBtX3Rva2VuSWRlbnRpZmllci5nZW5lcmF0ZSgpLCBh
dHRyaWJ1dGUudmFsdWUoKSwgdG9rZW5JbmZvKCZjdXJyZW50RWxlbWVudCkgfSB9IH0pOworICAg
ICAgICAgICAgICAgICAgICAgICAgYWRkSXRlbShNYW5pcHVsYXRpb25JdGVtRGF0YSB7IFBvc2l0
aW9uKCksIFBvc2l0aW9uKCksIGN1cnJlbnRFbGVtZW50LCBhdHRyaWJ1dGUubmFtZSgpLCB7IE1h
bmlwdWxhdGlvblRva2VuIHsgbV90b2tlbklkZW50aWZpZXIuZ2VuZXJhdGUoKSwgYXR0cmlidXRl
LnZhbHVlKCksIHRva2VuSW5mbygmY3VycmVudEVsZW1lbnQpIH0gfSB9KTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVt
ZW50PihjdXJyZW50RWxlbWVudCkpIHsKICAgICAgICAgICAgICAgICBhdXRvJiBpbnB1dCA9IGRv
d25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGN1cnJlbnRFbGVtZW50KTsKICAgICAgICAgICAgICAg
ICBpZiAoc2hvdWxkRXh0cmFjdFZhbHVlRm9yVGV4dE1hbmlwdWxhdGlvbihpbnB1dCkpCi0gICAg
ICAgICAgICAgICAgICAgIGFkZEl0ZW0oTWFuaXB1bGF0aW9uSXRlbURhdGEgeyB7IH0sIHsgfSwg
bWFrZVdlYWtQdHIoY3VycmVudEVsZW1lbnQpLCBIVE1MTmFtZXM6OnZhbHVlQXR0ciwgeyBNYW5p
cHVsYXRpb25Ub2tlbiB7IG1fdG9rZW5JZGVudGlmaWVyLmdlbmVyYXRlKCksIGlucHV0LnZhbHVl
KCksIHRva2VuSW5mbygmY3VycmVudEVsZW1lbnQpIH0gfSB9KTsKKyAgICAgICAgICAgICAgICAg
ICAgYWRkSXRlbShNYW5pcHVsYXRpb25JdGVtRGF0YSB7IHsgfSwgeyB9LCBjdXJyZW50RWxlbWVu
dCwgSFRNTE5hbWVzOjp2YWx1ZUF0dHIsIHsgTWFuaXB1bGF0aW9uVG9rZW4geyBtX3Rva2VuSWRl
bnRpZmllci5nZW5lcmF0ZSgpLCBpbnB1dC52YWx1ZSgpLCB0b2tlbkluZm8oJmN1cnJlbnRFbGVt
ZW50KSB9IH0gfSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChpc0VuY2xvc2lu
Z0l0ZW1Cb3VuZGFyeUVsZW1lbnQoY3VycmVudEVsZW1lbnQpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2lvcy9FZGl0b3JJT1MubW0KaW5kZXggNDlkMjM4MmE3Y2M2YzAzNmNmMmM3OTA0Y2RhNTdl
MWEyYTRhZTE3Zi4uNzBmMGI3MTFhOWQzNWI5NjIwNThhZmIxMWJhNjhmZmFmYjU1ZmIxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQpAQCAtMjc1LDcgKzI3NSw3IEBA
IHZvaWQgRWRpdG9yOjpzZXREaWN0YXRpb25QaHJhc2VzQXNDaGlsZE9mRWxlbWVudChjb25zdCBW
ZWN0b3I8VmVjdG9yPFN0cmluZz4+JiBkCiAKICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0
ZUZyYWdtZW50RnJvbVRleHQoY29udGV4dCwgZGljdGF0aW9uUGhyYXNlc0J1aWxkZXIudG9TdHJp
bmcoKSkpOwogCi0gICAgYXV0byB3ZWFrRWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQpOwor
ICAgIFdlYWtQdHIgd2Vha0VsZW1lbnQgeyBlbGVtZW50IH07CiAKICAgICAvLyBXZSBuZWVkIGEg
bGF5b3V0IGluIG9yZGVyIHRvIGFkZCBtYXJrZXJzIGJlbG93LgogICAgIGRvY3VtZW50KCkudXBk
YXRlTGF5b3V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFk
ZXJMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNw
cAppbmRleCBkY2M2MTNiODVkOGIxZWZjNGM4OGFlNzBhNThkMjYxNWM3ZWI5NDk2Li45ZmFkZDBi
NjY0NWVhZWRhYTY0MjhjNWJmN2MwODdlN2I4M2NhN2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgY29uc3QgaW50IGRl
ZmF1bHRCdWZmZXJMZW5ndGggPSAzMjc2ODsKIAogRmlsZVJlYWRlckxvYWRlcjo6RmlsZVJlYWRl
ckxvYWRlcihSZWFkVHlwZSByZWFkVHlwZSwgRmlsZVJlYWRlckxvYWRlckNsaWVudCogY2xpZW50
KQogICAgIDogbV9yZWFkVHlwZShyZWFkVHlwZSkKLSAgICAsIG1fY2xpZW50KG1ha2VXZWFrUHRy
KGNsaWVudCkpCisgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX2lzUmF3RGF0YUNvbnZl
cnRlZChmYWxzZSkKICAgICAsIG1fc3RyaW5nUmVzdWx0KGVtcHR5U3RyaW5nKCkpCiAgICAgLCBt
X3ZhcmlhYmxlTGVuZ3RoKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9D
dXN0b21QYWludEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFpbnRJbWFn
ZS5jcHAKaW5kZXggN2U3MzNiM2VkZGU0ZGY5Y2UyMzgyOTc5NmQzZGQ2YmVlZWJiNTZmMy4uZjQ3
MTk5NDZjNThlMDU5YmUzM2RiNzFkM2Y3YjZmNjA5MjBhNWNhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9DdXN0b21QYWludEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0N1c3RvbVBhaW50SW1hZ2UuY3BwCkBAIC01MCw5ICs1MCw5IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIEN1c3RvbVBhaW50SW1hZ2U6OkN1c3RvbVBhaW50SW1hZ2UoUGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGU6OlBhaW50RGVmaW5pdGlvbiYgZGVmaW5pdGlvbiwgY29uc3QgRmxvYXRTaXpl
JiBzaXplLCBSZW5kZXJFbGVtZW50JiBlbGVtZW50LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYXJn
dW1lbnRzKQotICAgIDogbV9wYWludERlZmluaXRpb24obWFrZVdlYWtQdHIoZGVmaW5pdGlvbikp
CisgICAgOiBtX3BhaW50RGVmaW5pdGlvbihkZWZpbml0aW9uKQogICAgICwgbV9pbnB1dFByb3Bl
cnRpZXMoZGVmaW5pdGlvbi5pbnB1dFByb3BlcnRpZXMpCi0gICAgLCBtX2VsZW1lbnQobWFrZVdl
YWtQdHIoZWxlbWVudCkpCisgICAgLCBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fYXJndW1l
bnRzKGFyZ3VtZW50cykKIHsKICAgICBzZXRDb250YWluZXJTaXplKHNpemUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCmluZGV4IGM2M2NjZDUxMGE5
NzMyNzRlMzkwZGE0ZjMyYThlMGEzNWEwMmJjYjAuLjRiMzUxMTI1MjdkNjlkM2Q3ZTU2N2Y0ZDgy
M2Q5YzE2Y2VkODA3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29j
aWF0ZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVk
RWxlbWVudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToKIAogRm9ybUFzc29jaWF0ZWRF
bGVtZW50OjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQoSFRNTEZvcm1FbGVtZW50KiBmb3JtKQogICAg
IDogbV9mb3JtKG51bGxwdHIpCi0gICAgLCBtX2Zvcm1TZXRCeVBhcnNlcihtYWtlV2Vha1B0cihm
b3JtKSkKKyAgICAsIG1fZm9ybVNldEJ5UGFyc2VyKGZvcm0pCiB7CiB9CiAKQEAgLTE1NSw3ICsx
NTUsNyBAQCB2b2lkIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6c2V0Rm9ybShIVE1MRm9ybUVsZW1l
bnQqIG5ld0Zvcm0pCiAgICAgd2lsbENoYW5nZUZvcm0oKTsKICAgICBpZiAobV9mb3JtKQogICAg
ICAgICBtX2Zvcm0tPnJlbW92ZUZvcm1FbGVtZW50KHRoaXMpOwotICAgIG1fZm9ybSA9IG1ha2VX
ZWFrUHRyKG5ld0Zvcm0pOworICAgIG1fZm9ybSA9IG5ld0Zvcm07CiAgICAgaWYgKG5ld0Zvcm0p
CiAgICAgICAgIG5ld0Zvcm0tPnJlZ2lzdGVyRm9ybUVsZW1lbnQodGhpcyk7CiAgICAgZGlkQ2hh
bmdlRm9ybSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRl
eCAyMWRkZGQ1YTBiNTdlYmVjYTQxNjkwMTc5YmE2N2Y0ZjgzNjFhYTljLi43ZDM2MGQ5OTE3ZDdh
YTdmNTMzNzMwNDMwM2MwMGUxMTc4NmZhYWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmNwcApAQCAtNjI0LDcgKzYyNCw3IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1l
bnQ6OnNldFJvb3RFZGl0YWJsZUVsZW1lbnRGb3JTZWxlY3Rpb25Pbk1vdXNlRG93bihFbGVtZW50
KiBlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICByb290RWRpdGFibGVFbGVtZW50TWFw
KCkuc2V0KCp0aGlzLCBtYWtlV2Vha1B0cihlbGVtZW50KSk7CisgICAgcm9vdEVkaXRhYmxlRWxl
bWVudE1hcCgpLnNldCgqdGhpcywgZWxlbWVudCk7CiAgICAgbV9oYXNSb290RWRpdGFibGVFbGVt
ZW50Rm9yU2VsZWN0aW9uT25Nb3VzZURvd24gPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggZDU3YmM1Zjk0OTc1OWViZmNjMDAwYTcyYjE3OTcz
OGZmZTFiMDJhZS4uMjNlNDlhYTNkMTk0OTE0NmRlZWFmN2EyZDZjZmNkNGNhMjE4YWI1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtNDAyLDcgKzQwMiw3IEBA
IHZvaWQgSFRNTEZvcm1FbGVtZW50OjpzdWJtaXQoRXZlbnQqIGV2ZW50LCBib29sIGFjdGl2YXRl
U3VibWl0QnV0dG9uLCBib29sIHByb2NlCiAgICAgaWYgKG1fcGxhbm5lZEZvcm1TdWJtaXNzaW9u
KQogICAgICAgICBtX3BsYW5uZWRGb3JtU3VibWlzc2lvbi0+Y2FuY2VsKCk7CiAKLSAgICBtX3Bs
YW5uZWRGb3JtU3VibWlzc2lvbiA9IG1ha2VXZWFrUHRyKGZvcm1TdWJtaXNzaW9uLmdldCgpKTsK
KyAgICBtX3BsYW5uZWRGb3JtU3VibWlzc2lvbiA9IGZvcm1TdWJtaXNzaW9uOwogICAgIAogICAg
IGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRpYWxvZ0VsZW1l
bnRFbmFibGVkKCkgJiYgZm9ybVN1Ym1pc3Npb24tPm1ldGhvZCgpID09IEZvcm1TdWJtaXNzaW9u
OjpNZXRob2Q6OkRpYWxvZykKICAgICAgICAgc3VibWl0RGlhbG9nKFdURk1vdmUoZm9ybVN1Ym1p
c3Npb24pKTsKQEAgLTU5NCw3ICs1OTQsNyBAQCB1bnNpZ25lZCBIVE1MRm9ybUVsZW1lbnQ6OmZv
cm1FbGVtZW50SW5kZXgoRm9ybUFzc29jaWF0ZWRFbGVtZW50KiBhc3NvY2lhdGVkRWxlbQogCiB2
b2lkIEhUTUxGb3JtRWxlbWVudDo6cmVnaXN0ZXJGb3JtRWxlbWVudChGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQqIGUpCiB7Ci0gICAgbV9hc3NvY2lhdGVkRWxlbWVudHMuaW5zZXJ0KGZvcm1FbGVtZW50
SW5kZXgoZSksIG1ha2VXZWFrUHRyKGUtPmFzSFRNTEVsZW1lbnQoKSkpOworICAgIG1fYXNzb2Np
YXRlZEVsZW1lbnRzLmluc2VydChmb3JtRWxlbWVudEluZGV4KGUpLCBlLT5hc0hUTUxFbGVtZW50
KCkpOwogCiAgICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGUpKSB7CiAgICAgICAg
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGNvbnRyb2wgPSBkb3duY2FzdDxIVE1MRm9ybUNvbnRy
b2xFbGVtZW50PigqZSk7CkBAIC02NTEsNyArNjUxLDcgQEAgYm9vbCBIVE1MRm9ybUVsZW1lbnQ6
OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdAogdm9pZCBI
VE1MRm9ybUVsZW1lbnQ6OnJlZ2lzdGVySW1nRWxlbWVudChIVE1MSW1hZ2VFbGVtZW50KiBlKQog
ewogICAgIEFTU0VSVChtX2ltYWdlRWxlbWVudHMuZmluZChlKSA9PSBub3RGb3VuZCk7Ci0gICAg
bV9pbWFnZUVsZW1lbnRzLmFwcGVuZChtYWtlV2Vha1B0cihlKSk7CisgICAgbV9pbWFnZUVsZW1l
bnRzLmFwcGVuZChlKTsKIH0KIAogdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlbW92ZUltZ0VsZW1l
bnQoSFRNTEltYWdlRWxlbWVudCogZSkKQEAgLTc1Miw3ICs3NTIsNyBAQCBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50KiBIVE1MRm9ybUVsZW1lbnQ6OmRlZmF1bHRCdXR0b24oKSBjb25zdAogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGNvbnRyb2wg
PSBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqYXNzb2NpYXRlZEVsZW1lbnQpOwog
ICAgICAgICBpZiAoY29udHJvbC5pc1N1Y2Nlc3NmdWxTdWJtaXRCdXR0b24oKSkgewotICAgICAg
ICAgICAgbV9kZWZhdWx0QnV0dG9uID0gbWFrZVdlYWtQdHIoY29udHJvbCk7CisgICAgICAgICAg
ICBtX2RlZmF1bHRCdXR0b24gPSBjb250cm9sOwogICAgICAgICAgICAgcmV0dXJuICZjb250cm9s
OwogICAgICAgICB9CiAgICAgfQpAQCAtODUyLDcgKzg1Miw3IEBAIHZvaWQgSFRNTEZvcm1FbGVt
ZW50OjphZGRUb1Bhc3ROYW1lc01hcChGb3JtTmFtZWRJdGVtKiBpdGVtLCBjb25zdCBBdG9tU3Ry
aW5nJiBwCiAjZW5kaWYKICAgICBpZiAocGFzdE5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47Ci0gICAgbV9wYXN0TmFtZXNNYXAuc2V0KHBhc3ROYW1lLmltcGwoKSwgbWFrZVdlYWtQdHIo
aXRlbS0+YXNIVE1MRWxlbWVudCgpKSk7CisgICAgbV9wYXN0TmFtZXNNYXAuc2V0KHBhc3ROYW1l
LmltcGwoKSwgaXRlbS0+YXNIVE1MRWxlbWVudCgpKTsKIH0KIAogdm9pZCBIVE1MRm9ybUVsZW1l
bnQ6OnJlbW92ZUZyb21QYXN0TmFtZXNNYXAoRm9ybU5hbWVkSXRlbSogaXRlbSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcAppbmRleCBmMmU0YjhhNmJh
Y2RlOTdhZTc3MmYwZjJmYTY2ZmEwNzJjYzdmM2ZiLi4zMzU2MWNlOTJlMGM3MTk4YzVkZDkzNjc3
YWJhZTQ1MjQ5YjNmNzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZU93bmVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25l
ckVsZW1lbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgSFRNTEZyYW1lT3duZXJFbGVtZW50
OjpzZXRDb250ZW50RnJhbWUoRnJhbWUmIGZyYW1lKQogICAgIEFTU0VSVCghbV9jb250ZW50RnJh
bWUgfHwgbV9jb250ZW50RnJhbWUtPm93bmVyRWxlbWVudCgpICE9IHRoaXMpOwogICAgIC8vIERp
c2Nvbm5lY3RlZCBmcmFtZXMgc2hvdWxkIG5vdCBiZSBhbGxvd2VkIHRvIGxvYWQuCiAgICAgQVNT
RVJUKGlzQ29ubmVjdGVkKCkpOwotICAgIG1fY29udGVudEZyYW1lID0gbWFrZVdlYWtQdHIoZnJh
bWUpOworICAgIG1fY29udGVudEZyYW1lID0gZnJhbWU7CiAKICAgICBmb3IgKFJlZlB0cjxDb250
YWluZXJOb2RlPiBub2RlID0gdGhpczsgbm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudE9yU2hhZG93
SG9zdE5vZGUoKSkKICAgICAgICAgbm9kZS0+aW5jcmVtZW50Q29ubmVjdGVkU3ViZnJhbWVDb3Vu
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggYzgzZmQy
OWQwYmFjYzNmMjEwMjJkYWE1ODhmNDdiZDk5N2ZhYTM5Yi4uZjc4ZWYxMzM1MzhmOTAwYjM3OTBl
NDRlOGZjODhkZmM5NDJkOGJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIEhUTUxJbWFnZUVsZW1lbnQ6OkhUTUxJbWFnZUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAgOiBI
VE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1faW1hZ2VMb2FkZXIoV1RGOjpt
YWtlVW5pcXVlPEhUTUxJbWFnZUxvYWRlcj4oKnRoaXMpKQogICAgICwgbV9mb3JtKG51bGxwdHIp
Ci0gICAgLCBtX2Zvcm1TZXRCeVBhcnNlcihtYWtlV2Vha1B0cihmb3JtKSkKKyAgICAsIG1fZm9y
bVNldEJ5UGFyc2VyKGZvcm0pCiAgICAgLCBtX2NvbXBvc2l0ZU9wZXJhdG9yKENvbXBvc2l0ZU9w
ZXJhdG9yOjpTb3VyY2VPdmVyKQogICAgICwgbV9pbWFnZURldmljZVBpeGVsUmF0aW8oMS4wZikK
IHsKQEAgLTQwMiw3ICs0MDIsNyBAQCBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBI
VE1MSW1hZ2VFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpbwogCiAgICAgaWYg
KCFtX2Zvcm0pIHsKICAgICAgICAgaWYgKGF1dG8qIG5ld0Zvcm0gPSBIVE1MRm9ybUVsZW1lbnQ6
OmZpbmRDbG9zZXN0Rm9ybUFuY2VzdG9yKCp0aGlzKSkgewotICAgICAgICAgICAgbV9mb3JtID0g
bWFrZVdlYWtQdHIobmV3Rm9ybSk7CisgICAgICAgICAgICBtX2Zvcm0gPSBuZXdGb3JtOwogICAg
ICAgICAgICAgbmV3Rm9ybS0+cmVnaXN0ZXJJbWdFbGVtZW50KHRoaXMpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtNDU1LDcgKzQ1NSw3IEBAIEhUTUxQaWN0dXJlRWxlbWVudCogSFRNTEltYWdlRWxl
bWVudDo6cGljdHVyZUVsZW1lbnQoKSBjb25zdAogICAgIAogdm9pZCBIVE1MSW1hZ2VFbGVtZW50
OjpzZXRQaWN0dXJlRWxlbWVudChIVE1MUGljdHVyZUVsZW1lbnQqIHBpY3R1cmVFbGVtZW50KQog
ewotICAgIG1fcGljdHVyZUVsZW1lbnQgPSBtYWtlV2Vha1B0cihwaWN0dXJlRWxlbWVudCk7Cisg
ICAgbV9waWN0dXJlRWxlbWVudCA9IHBpY3R1cmVFbGVtZW50OwogfQogICAgIAogdW5zaWduZWQg
SFRNTEltYWdlRWxlbWVudDo6d2lkdGgoYm9vbCBpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMpCkBA
IC04NTcsNyArODU3LDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRTb3VyY2VFbGVtZW50
KEhUTUxTb3VyY2VFbGVtZW50KiBzb3VyY2VFbGVtZW50KQogewogICAgIGlmIChtX3NvdXJjZUVs
ZW1lbnQgPT0gc291cmNlRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIG1fc291cmNlRWxl
bWVudCA9IG1ha2VXZWFrUHRyKHNvdXJjZUVsZW1lbnQpOworICAgIG1fc291cmNlRWxlbWVudCA9
IHNvdXJjZUVsZW1lbnQ7CiAgICAgaW52YWxpZGF0ZUF0dHJpYnV0ZU1hcHBpbmcoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYmY0YTViYjE3MTA1
N2Q1YjVjMWY0YmJlY2YxY2ZmNzc3OWRkM2ZjMS4uNGU5ZTEyNjUwMzQ5ZTUzY2FiNzliZDk4MDhk
NmFkYzBhYjNkYTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC03Mjc5LDcgKzcyNzksNyBAQCBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
PiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTAogICAgIGF1dG8g
ZGVzdGluYXRpb24gPSBpc1ZpZGVvKCkgPyBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpWaWRl
byA6IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkF1ZGlvOwogICAgIGF1dG8gbWVkaWFSZXNv
dXJjZUxvYWRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZXNvdXJjZUxvYWRlcihkb2N1bWVudCgp
LCAqdGhpcywgY3Jvc3NPcmlnaW4oKSwgZGVzdGluYXRpb24pKTsKIAotICAgIG1fbGFzdE1lZGlh
UmVzb3VyY2VMb2FkZXJGb3JUZXN0aW5nID0gbWFrZVdlYWtQdHIobWVkaWFSZXNvdXJjZUxvYWRl
ci5nZXQoKSk7CisgICAgbV9sYXN0TWVkaWFSZXNvdXJjZUxvYWRlckZvclRlc3RpbmcgPSBtZWRp
YVJlc291cmNlTG9hZGVyLmdldCgpOwogCiAgICAgcmV0dXJuIG1lZGlhUmVzb3VyY2VMb2FkZXI7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCBmNWU3ZGIyMWU2OThiNjA2NTIzYTZjZjA3
MWJiNjFmNmM4MjdhNzFlLi4xOWQ4MGM0MWExZmM2ZTFhMGFiZGVkMTNlMDc4MTZjMjU0ZDZlY2I4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTQwMiw3ICs0MDIsNyBAQCBwdWJsaWM6CiBw
cm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgSW5wdXRUeXBlKFR5cGUgdHlwZSwgSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKLSAgICAgICAgLCBtX2VsZW1l
bnQobWFrZVdlYWtQdHIoZWxlbWVudCkpIHsgfQorICAgICAgICAsIG1fZWxlbWVudChlbGVtZW50
KSB7IH0KICAgICBIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9l
bGVtZW50LmdldCgpOyB9CiAgICAgQ2hyb21lKiBjaHJvbWUoKSBjb25zdDsKICAgICBEZWNpbWFs
IHBhcnNlVG9OdW1iZXJPck5hTihjb25zdCBTdHJpbmcmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IDI5MWVmOWEwMjgxMDJmMzJhZWMz
NmM4OWM4NmFkYjRlYzcwZmU1NzQuLmE4OWI4NDg4MDRmNWY3NWM0NDVjMGViZTU3ZGQyZmE2MTFi
ZGRhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcApA
QCAtMTI1LDcgKzEyNSw3IEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk9ic2VydmVyIDogcHVibGljIE1l
ZGlhU2Vzc2lvbjo6T2JzZXJ2ZXIgewogCiBwdWJsaWM6CiAgICAgTWVkaWFTZXNzaW9uT2JzZXJ2
ZXIoTWVkaWFFbGVtZW50U2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgUmVmPE1lZGlhU2Vzc2lvbj4m
IG1lZGlhU2Vzc2lvbikKLSAgICAgICAgOiBtX3Nlc3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikp
LCBtX21lZGlhU2Vzc2lvbihtZWRpYVNlc3Npb24pCisgICAgICAgIDogbV9zZXNzaW9uKHNlc3Np
b24pLCBtX21lZGlhU2Vzc2lvbihtZWRpYVNlc3Npb24pCiAgICAgewogICAgICAgICBtX21lZGlh
U2Vzc2lvbi0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zm
c2NyZWVuQ2FudmFzLmNwcAppbmRleCBiMTAzMWRhMDBkZjA0MWFlNmFhMDNkMmZmNjEyMDUyYTVm
ZWJhYzk5Li40ZDE2NTk2ODRkMWI2MTdjNzZkZjgxYTRiMDBmMDViN2M3ZjUwZDlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCkBAIC00MjMsNyArNDIzLDcgQEAgdm9p
ZCBPZmZzY3JlZW5DYW52YXM6OnNldFBsYWNlaG9sZGVyQ2FudmFzKEhUTUxDYW52YXNFbGVtZW50
JiBjYW52YXMpCiB7CiAgICAgQVNTRVJUKCFtX2NvbnRleHQpOwogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7Ci0gICAgbV9wbGFjZWhvbGRlckRhdGEtPmNhbnZhcyA9IG1ha2VXZWFrUHRyKGNh
bnZhcyk7CisgICAgbV9wbGFjZWhvbGRlckRhdGEtPmNhbnZhcyA9IGNhbnZhczsKICAgICBhdXRv
JiBwbGFjZWhvbGRlckNvbnRleHQgPSBkb3duY2FzdDxQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQ+KCpjYW52YXMucmVuZGVyaW5nQ29udGV4dCgpKTsKICAgICBhdXRvJiBpbWFnZUJ1ZmZlclBp
cGUgPSBwbGFjZWhvbGRlckNvbnRleHQuaW1hZ2VCdWZmZXJQaXBlKCk7CiAgICAgaWYgKGltYWdl
QnVmZmVyUGlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFy
YW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmNwcAppbmRleCA2
NjNiODNjNDU4NjQ5ODExYTA0ODRiYzA4ZTdhNTQzZTAwOWJiMzM3Li4wNjA1OGE1YTY4ZWRmNGUx
ZDMwNDQ4OTAxNTkwNTQ1ZjFkNzY4Mzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1VSTFNlYXJjaFBhcmFtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFyY2hQ
YXJhbXMuY3BwCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFVSTFNl
YXJjaFBhcmFtczo6VVJMU2VhcmNoUGFyYW1zKGNvbnN0IFN0cmluZyYgaW5pdCwgRE9NVVJMKiBh
c3NvY2lhdGVkVVJMKQotICAgIDogbV9hc3NvY2lhdGVkVVJMKG1ha2VXZWFrUHRyKGFzc29jaWF0
ZWRVUkwpKQorICAgIDogbV9hc3NvY2lhdGVkVVJMKGFzc29jaWF0ZWRVUkwpCiAgICAgLCBtX3Bh
aXJzKGluaXQuc3RhcnRzV2l0aCgnPycpID8gV1RGOjpVUkxQYXJzZXI6OnBhcnNlVVJMRW5jb2Rl
ZEZvcm0oU3RyaW5nVmlldyhpbml0KS5zdWJzdHJpbmcoMSkpIDogV1RGOjpVUkxQYXJzZXI6OnBh
cnNlVVJMRW5jb2RlZEZvcm0oaW5pdCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCmluZGV4IDE2NTg2MzliNGVjYzU0NTViYWQ3ZDcz
YjAzZjAxMDI2ZGM0YjI1MmIuLjFhMjUwMmQ3MGZmMjVlNWE0NzZjYjExMWQyYTFjN2RkMzk0ZGNl
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5u
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIu
Y3BwCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKIEhUTUxTY3JpcHRSdW5uZXI6OkhUTUxTY3JpcHRSdW5uZXIoRG9jdW1l
bnQmIGRvY3VtZW50LCBIVE1MU2NyaXB0UnVubmVySG9zdCYgaG9zdCkKLSAgICA6IG1fZG9jdW1l
bnQobWFrZVdlYWtQdHIoZG9jdW1lbnQpKQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAg
ICAsIG1faG9zdChob3N0KQogICAgICwgbV9zY3JpcHROZXN0aW5nTGV2ZWwoMCkKICAgICAsIG1f
aGFzU2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNoZWV0cyhmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKaW5kZXggOWNiOGU5ZThl
MjQ5MjhjN2ZmMTI1ODllNzdiNTdmOTFkZDJjZmY4ZS4uMTM3NzE1Y2YzNjczZjI2MmFmNThkMjRh
M2Q2NWZjZWRiZTJhODU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKQEAgLTE5MCw3ICsxOTAsNyBAQCBEYXRlVGltZUVkaXRF
bGVtZW50OjpFZGl0Q29udHJvbE93bmVyOjp+RWRpdENvbnRyb2xPd25lcigpID0gZGVmYXVsdDsK
IAogRGF0ZVRpbWVFZGl0RWxlbWVudDo6RGF0ZVRpbWVFZGl0RWxlbWVudChEb2N1bWVudCYgZG9j
dW1lbnQsIEVkaXRDb250cm9sT3duZXImIGVkaXRDb250cm9sT3duZXIpCiAgICAgOiBIVE1MRGl2
RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQotICAgICwgbV9lZGl0Q29udHJvbE93bmVyKG1ha2VX
ZWFrUHRyKGVkaXRDb250cm9sT3duZXIpKQorICAgICwgbV9lZGl0Q29udHJvbE93bmVyKGVkaXRD
b250cm9sT3duZXIpCiB7CiAgICAgbV9wbGFjZWhvbGRlckRhdGUuc2V0VG9DdXJyZW50TG9jYWxU
aW1lKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZp
ZWxkRWxlbWVudC5jcHAKaW5kZXggYzM2Mzc4MmYwNGY1ZmZiMmM5Y2JlNTc5ZjEzNjdlNWQ0ZDE5
NGJmZC4uMmM5NTZjYjljNDJiMjUxZTJhYzNmNTAwZTNjZDBjN2NkZmRmMGJhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcApA
QCAtNTMsNyArNTMsNyBAQCBEYXRlVGltZUZpZWxkRWxlbWVudDo6RmllbGRPd25lcjo6fkZpZWxk
T3duZXIoKSA9IGRlZmF1bHQ7CiAKIERhdGVUaW1lRmllbGRFbGVtZW50OjpEYXRlVGltZUZpZWxk
RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCiAgICAg
OiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQotICAgICwgbV9maWVsZE93bmVyKG1h
a2VXZWFrUHRyKGZpZWxkT3duZXIpKQorICAgICwgbV9maWVsZE93bmVyKGZpZWxkT3duZXIpCiB7
CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRl
eHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCmluZGV4IDI2N2Y2Yzk1N2I4YjY1MDlkYTg0MDk2
YzRmMTgwMWU3NGMxYzM1MDUuLmFmYjVmMWU2Y2RlZWEzODFkMTFkYWRjY2Y2NWFhZjlkZjg3OWQx
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRl
eHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCkBAIC03Niw3ICs3
Niw3IEBAIFJlZjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PiBNZWRpYUNv
bnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50CiAKIE1lZGlhQ29udHJvbFRleHRUcmFja0Nv
bnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQogICAgIDogSFRNTERp
dkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKLSAgICAsIG1fbWVkaWFFbGVtZW50KG1ha2VXZWFr
UHRyKCZlbGVtZW50KSkKKyAgICAsIG1fbWVkaWFFbGVtZW50KGVsZW1lbnQpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAppbmRleCBjODM2Njg1ZmZm
MTUxYjk5OWYxZjE1ZGYzNGRlNmNjZjQxNjZlZWMyLi4xOWZjODVjZDg5N2E3Y2VhZGI0MWQ1MDI1
YTc5YWI5Mjg3N2RmMTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tD
dWUuY3BwCkBAIC04Niw3ICs4Niw3IEBAIFJlZjxUZXh0VHJhY2tDdWVCb3g+IFRleHRUcmFja0N1
ZUJveDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgVGV4dFRyYWNrQ3VlJiBjCiAKIFRleHRU
cmFja0N1ZUJveDo6VGV4dFRyYWNrQ3VlQm94KERvY3VtZW50JiBkb2N1bWVudCwgVGV4dFRyYWNr
Q3VlJiBjdWUpCiAgICAgOiBIVE1MRWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQp
Ci0gICAgLCBtX2N1ZShtYWtlV2Vha1B0cihjdWUpKQorICAgICwgbV9jdWUoY3VlKQogewogICAg
IHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UcmFja0Jhc2UuY3BwCmluZGV4IGJkYzg4YWI1MDQ2ZTkxY2ZkYzEzMTQ0MTk3Mzkw
NDVkMDY4MGQyNjAuLmJhZmE0OWVlNjBkODg2Y2Y1ZDcxZTZlZGMzZmNlNjEzMGE2ZTE0ZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKQEAgLTczLDcgKzczLDcgQEAg
VHJhY2tCYXNlOjpUcmFja0Jhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVHlw
ZSB0eXBlLCBjb25zdCBBdG9tU3RyaW4KIAogdm9pZCBUcmFja0Jhc2U6OnNldFRyYWNrTGlzdChU
cmFja0xpc3RCYXNlJiB0cmFja0xpc3QpCiB7Ci0gICAgbV90cmFja0xpc3QgPSBtYWtlV2Vha1B0
cih0cmFja0xpc3QpOworICAgIG1fdHJhY2tMaXN0ID0gdHJhY2tMaXN0OwogfQogCiB2b2lkIFRy
YWNrQmFzZTo6Y2xlYXJUcmFja0xpc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UcmFja0xpc3RCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNr
TGlzdEJhc2UuaAppbmRleCA5ZDNlNjgxZTdkZTRhNjE5NGI2ODY3MGY1NGRmNTVlNjIyYmI5ZTJk
Li40ODMzZDEzYTFlZGU1Mjk2ODg4ZjNhMzM1NWQ1YTk3MzIyODM1NWJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCogb3BhcXVlUm9vdCgpOwogCiAgICAgdXNpbmcgT3BhcXVlUm9vdE9ic2VydmVy
ID0gV1RGOjpPYnNlcnZlcjx2b2lkKigpPjsKLSAgICB2b2lkIHNldE9wYXF1ZVJvb3RPYnNlcnZl
cihjb25zdCBPcGFxdWVSb290T2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb3BhcXVlUm9vdE9ic2Vy
dmVyID0gbWFrZVdlYWtQdHIob2JzZXJ2ZXIpOyB9OworICAgIHZvaWQgc2V0T3BhcXVlUm9vdE9i
c2VydmVyKGNvbnN0IE9wYXF1ZVJvb3RPYnNlcnZlciYgb2JzZXJ2ZXIpIHsgbV9vcGFxdWVSb290
T2JzZXJ2ZXIgPSBvYnNlcnZlcjsgfTsKIAogICAgIC8vIE5lZWRzIHRvIGJlIHB1YmxpYyBzbyB0
cmFja3MgY2FuIGNhbGwgaXQKICAgICB2b2lkIHNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHAKaW5kZXggMTY4MGNkYjM1ZWIzY2M3MTg1ZTJiN2JiZGM1NzIwODZlNDJj
ZjRmYy4uZGE2YjI4NDI1OWI2NjlhMzcwNWI4YzBlMTYyZDI5ZjUwNWI5NjM4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNp
bmcgRXZhbHVhdGlvbkVycm9yID0gSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpFdmFs
dWF0aW9uRXJyb3I7CiAKIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6SW5zcGVjdG9y
RnJvbnRlbmRBUElEaXNwYXRjaGVyKFBhZ2UmIGZyb250ZW5kUGFnZSkKLSAgICA6IG1fZnJvbnRl
bmRQYWdlKG1ha2VXZWFrUHRyKGZyb250ZW5kUGFnZSkpCisgICAgOiBtX2Zyb250ZW5kUGFnZShm
cm9udGVuZFBhZ2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JPdmVybGF5LmNwcAppbmRleCBmMjlhN2FiZTE1MzUxODgzYWJhOWJiZjMwZTllMzUxODc4ZDc1
NjQyLi43ZDJhNWZmYmNjM2E4YTgxNDFmZmNmYmIyZTVhYmRiNjU4YTg1Yzc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC02MDYsNyArNjA2
LDcgQEAgRXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0b3JPdmVybGF5OjpzZXRHcmlkT3Zlcmxh
eUZvck5vZGUoTm9kZSYgbm9kZSwgY29uc3QgSW4KIAogICAgIHJlbW92ZUdyaWRPdmVybGF5Rm9y
Tm9kZShub2RlKTsKIAotICAgIG1fYWN0aXZlR3JpZE92ZXJsYXlzLmFwcGVuZCh7IG1ha2VXZWFr
UHRyKG5vZGUpLCBncmlkT3ZlcmxheUNvbmZpZyB9KTsKKyAgICBtX2FjdGl2ZUdyaWRPdmVybGF5
cy5hcHBlbmQoeyBub2RlLCBncmlkT3ZlcmxheUNvbmZpZyB9KTsKIAogICAgIHVwZGF0ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRP
TUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCmluZGV4IDZkMzFjODFmZGUxMjgwZDI0NTM5YjljOWZiMmUwMjg5N2NhYjM5NTEu
LmQyYzBjYjZjZmQxODRmMTU4YzRhNjJkOGJlMmVmYjU3NTAxOTJjM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBA
IC0zODIsNyArMzgyLDcgQEAgUHJvdG9jb2w6OkRPTTo6Tm9kZUlkIEluc3BlY3RvckRPTUFnZW50
OjpiaW5kKE5vZGUmIG5vZGUpCiB7CiAgICAgcmV0dXJuIG1fbm9kZVRvSWQuZW5zdXJlKG5vZGUs
IFsmXSB7CiAgICAgICAgIGF1dG8gaWQgPSBtX2xhc3ROb2RlSWQrKzsKLSAgICAgICAgbV9pZFRv
Tm9kZS5zZXQoaWQsIG1ha2VXZWFrUHRyKG5vZGUpKTsKKyAgICAgICAgbV9pZFRvTm9kZS5zZXQo
aWQsIG5vZGUpOwogICAgICAgICByZXR1cm4gaWQ7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JM
YXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckxheWVyVHJlZUFnZW50LmNwcAppbmRleCAzODAyYTM0ZjI5M2U2NWQ2NmU3N2ViNDQzOGVj
NDFiN2M3Njg3Y2Y3Li40YTZmNjMyYjZmOTcxMTQyYzQwMGM0ZGI4MDUzYjRkMGYxOTQ2ODU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVy
VHJlZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckxheWVyVHJlZUFnZW50LmNwcApAQCAtMzUzLDcgKzM1Myw3IEBAIFN0cmluZyBJbnNwZWN0
b3JMYXllclRyZWVBZ2VudDo6YmluZFBzZXVkb0VsZW1lbnQoUHNldWRvRWxlbWVudCogcHNldWRv
RWxlbWVudCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIG1fcHNl
dWRvRWxlbWVudFRvSWRNYXAuZW5zdXJlKCpwc2V1ZG9FbGVtZW50LCBbdGhpcywgcHNldWRvRWxl
bWVudF0gewogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNy
ZWF0ZUlkZW50aWZpZXIoKTsKLSAgICAgICAgbV9pZFRvUHNldWRvRWxlbWVudC5zZXQoaWRlbnRp
ZmllciwgbWFrZVdlYWtQdHIocHNldWRvRWxlbWVudCkpOworICAgICAgICBtX2lkVG9Qc2V1ZG9F
bGVtZW50LnNldChpZGVudGlmaWVyLCBwc2V1ZG9FbGVtZW50KTsKICAgICAgICAgcmV0dXJuIGlk
ZW50aWZpZXI7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmlu
ZGV4IDg0YjE2MzcwMTRlZjU2ZGFlOGJjZWYwZDcyNDk1NjJkMjBkMGRkZGEuLjQ0ZTA4NGEyODg0
MmZiYzU2Mjg5Mzc2MWQ3MWU0Yzc0Mjc0ZWJiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTg0
MSw3ICs4NDEsNyBAQCBQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0b3JOZXR3
b3JrQWdlbnQ6OmVuYWJsZSgpCiAgICAgICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBjaGFubmVs
LT5wcm9ncmVzc0lkZW50aWZpZXIoKTsKICAgICAgICAgICAgIGRpZENyZWF0ZVdlYlNvY2tldChp
ZGVudGlmaWVyLCB3ZWJTb2NrZXQtPnVybCgpKTsKIAotICAgICAgICAgICAgYXV0byBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSA9IFtkb2N1bWVudCA9IG1ha2VXZWFrUHRyKGRvY3VtZW50
KV0oY29uc3QgVVJMJiB1cmwpIC0+IFN0cmluZyB7CisgICAgICAgICAgICBhdXRvIGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlID0gW2RvY3VtZW50ID0gV2Vha1B0ciB7IGRvY3VtZW50IH1d
KGNvbnN0IFVSTCYgdXJsKSAtPiBTdHJpbmcgewogICAgICAgICAgICAgICAgIGlmICghZG9jdW1l
bnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IH07
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5wYWdlKCktPmNvb2tpZUphcigpLmNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKCpkb2N1bWVudCwgdXJsKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApp
bmRleCA3MGQyMjMzOGI3N2EyMzg2YTE2ZTcyNWNmMWQ2ZmJkODA5NWE1NzNjLi5jODk0MDY3NTg1
ZWIxZTNkYzc5Mjc2ZDlkMGU0Zjc1NjJjODRkODAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC04MzgsNyAr
ODM4LDcgQEAgU3RyaW5nIEluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVJZChGcmFtZSogZnJhbWUp
CiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBtX2ZyYW1lVG9JZGVu
dGlmaWVyLmVuc3VyZShmcmFtZSwgW3RoaXMsIGZyYW1lXSB7CiAgICAgICAgIGF1dG8gaWRlbnRp
ZmllciA9IElkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpOwotICAgICAgICBt
X2lkZW50aWZpZXJUb0ZyYW1lLnNldChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cihmcmFtZSkpOwor
ICAgICAgICBtX2lkZW50aWZpZXJUb0ZyYW1lLnNldChpZGVudGlmaWVyLCBmcmFtZSk7CiAgICAg
ICAgIHJldHVybiBpZGVudGlmaWVyOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJB
Z2VudC5jcHAKaW5kZXggY2M4NjY3YzEwNGQzN2FlMjFkODAxNTQ0MGVjYWMwMWMxYzc0ZGM1NS4u
YzEzMzc0YjE2MWVlYmJmNjc4NjBhMDAwOWJlYzE0YTM1YzUzMjk5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5j
cHAKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50Ojpjb25uZWN0
VG9Xb3JrZXJJbnNwZWN0b3JQcm94eShXb3JrZXJJbnNwZWN0b3JQcm94eSYgcAogewogICAgIHBy
b3h5LmNvbm5lY3RUb1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKnRoaXMpOwogCi0gICAgbV9j
b25uZWN0ZWRQcm94aWVzLnNldChwcm94eS5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKHByb3h5
KSk7CisgICAgbV9jb25uZWN0ZWRQcm94aWVzLnNldChwcm94eS5pZGVudGlmaWVyKCksIHByb3h5
KTsKIAogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT53b3JrZXJDcmVhdGVkKHByb3h5LmlkZW50
aWZpZXIoKSwgcHJveHkudXJsKCkuc3RyaW5nKCksIHByb3h5Lm5hbWUoKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxl
R3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxl
L1RhYmxlR3JpZC5jcHAKaW5kZXggYmY0MzMxOGMxOGI1YzNkNjA0YTQwY2FhYWE2Zjg2ZDQ0YWVh
YTJlOS4uZDFjNTM2ZWUzZjcwYWY3YWQ1ZjAzNDIxODE1NmQzY2E0YmE0ZjZjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdy
aWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFi
bGUvVGFibGVHcmlkLmNwcApAQCAtNjgsNyArNjgsNyBAQCBUYWJsZUdyaWQ6OkNlbGw6OkNlbGwo
Y29uc3QgQ29udGFpbmVyQm94JiBjZWxsQm94LCBTbG90UG9zaXRpb24gcG9zaXRpb24sIENlbGxT
cAogfQogCiBUYWJsZUdyaWQ6OlNsb3Q6OlNsb3QoQ2VsbCYgY2VsbCwgYm9vbCBpc0NvbHVtblNw
YW5uZWQsIGJvb2wgaXNSb3dTcGFubmVkKQotICAgIDogbV9jZWxsKG1ha2VXZWFrUHRyKGNlbGwp
KQorICAgIDogbV9jZWxsKGNlbGwpCiAgICAgLCBtX2lzQ29sdW1uU3Bhbm5lZChpc0NvbHVtblNw
YW5uZWQpCiAgICAgLCBtX2lzUm93U3Bhbm5lZChpc1Jvd1NwYW5uZWQpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcAppbmRleCA2ZWM1ZGNiMjQ2
NjY4NDc1NDQ2NTc1ZmVhNjA4MmU1NTQ2MTRjNWMxLi4yMmZlYmVkMTQxMDlmODNmNWZiMjNhY2Q4
MzlmNjRjYzhmZGY0YmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVl
L0xheW91dEJveC5jcHAKQEAgLTU0Myw3ICs1NDMsNyBAQCBzdGQ6Om9wdGlvbmFsPExheW91dFVu
aXQ+IEJveDo6Y29sdW1uV2lkdGgoKSBjb25zdAogdm9pZCBCb3g6OnNldENhY2hlZEdlb21ldHJ5
Rm9yTGF5b3V0U3RhdGUoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBzdGQ6OnVuaXF1ZV9wdHI8
Qm94R2VvbWV0cnk+IGdlb21ldHJ5KSBjb25zdAogewogICAgIEFTU0VSVCghbV9jYWNoZWRMYXlv
dXRTdGF0ZSk7Ci0gICAgbV9jYWNoZWRMYXlvdXRTdGF0ZSA9IG1ha2VXZWFrUHRyKGxheW91dFN0
YXRlKTsKKyAgICBtX2NhY2hlZExheW91dFN0YXRlID0gbGF5b3V0U3RhdGU7CiAgICAgbV9jYWNo
ZWRHZW9tZXRyeUZvckxheW91dFN0YXRlID0gV1RGTW92ZShnZW9tZXRyeSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDhiOTk4NmE3ZDg5NWM0MjJj
NTdhYmMwYjg0OWM3ODM4MTgyMTBkMWUuLjQ2MDA2MGMxODk3ZWUxNjk3YjhkYzdlYmMzMmRmODg1
NmJjZmE4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAt
NzkyLDcgKzc5Miw3IEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OnRyeUxvYWRpbmdTdWJzdGl0dXRl
RGF0YSgpCiAgICAgaWYgKCFtX2RlZmVyTWFpblJlc291cmNlRGF0YUxvYWQgfHwgZnJhbWVMb2Fk
ZXIoKS0+bG9hZHNTeW5jaHJvbm91c2x5KCkpCiAgICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRh
TG9hZE5vdygpOwogICAgIGVsc2UgewotICAgICAgICBhdXRvIGxvYWREYXRhID0gW3RoaXMsIHdl
YWtEYXRhTG9hZFRva2VuID0gbWFrZVdlYWtQdHIobV9kYXRhTG9hZFRva2VuKV0geworICAgICAg
ICBhdXRvIGxvYWREYXRhID0gW3RoaXMsIHdlYWtEYXRhTG9hZFRva2VuID0gV2Vha1B0ciB7IG1f
ZGF0YUxvYWRUb2tlbiB9XSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtEYXRhTG9hZFRva2VuKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIG1fZGF0YUxvYWRUb2tlbi5jbGVh
cigpOwpAQCAtMjQyMyw3ICsyNDIzLDcgQEAgUmVzb3VyY2VFcnJvciBEb2N1bWVudExvYWRlcjo6
Y29udGVudEZpbHRlckRpZEJsb2NrKENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcgogewogICAg
IHVuYmxvY2tIYW5kbGVyLnNldFVucmVhY2hhYmxlVVJMKGRvY3VtZW50VVJMKCkpOwogICAgIGlm
ICghdW5ibG9ja1JlcXVlc3REZW5pZWRTY3JpcHQuaXNFbXB0eSgpICYmIGZyYW1lKCkpIHsKLSAg
ICAgICAgdW5ibG9ja0hhbmRsZXIud3JhcFdpdGhEZWNpc2lvbkhhbmRsZXIoW3NjcmlwdENvbnRy
b2xsZXIgPSBtYWtlV2Vha1B0cihmcmFtZSgpLT5zY3JpcHQoKSksIHNjcmlwdCA9IHVuYmxvY2tS
ZXF1ZXN0RGVuaWVkU2NyaXB0Lmlzb2xhdGVkQ29weSgpXShib29sIHVuYmxvY2tlZCkgeworICAg
ICAgICB1bmJsb2NrSGFuZGxlci53cmFwV2l0aERlY2lzaW9uSGFuZGxlcihbc2NyaXB0Q29udHJv
bGxlciA9IFdlYWtQdHIgeyBmcmFtZSgpLT5zY3JpcHQoKSB9LCBzY3JpcHQgPSB1bmJsb2NrUmVx
dWVzdERlbmllZFNjcmlwdC5pc29sYXRlZENvcHkoKV0oYm9vbCB1bmJsb2NrZWQpIHsKICAgICAg
ICAgICAgIGlmICghdW5ibG9ja2VkICYmIHNjcmlwdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAg
ICAgc2NyaXB0Q29udHJvbGxlci0+ZXhlY3V0ZVNjcmlwdElnbm9yaW5nRXhjZXB0aW9uKHNjcmlw
dCk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50V3JpdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAK
aW5kZXggNDMyYmQxMmIzMmNlOGMwZjc0YjIwZjExZjNmMjg5ZThkZTdjNzFiMi4uYTA2NjY3YzE5
MzQ0N2FmMGI0Yjk0ZjNlMDE3YWY1N2VjNjE2NDJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRXcml0ZXIuY3BwCkBAIC0zMTQsNyArMzE0LDcgQEAgdm9pZCBEb2N1bWVudFdyaXRl
cjo6c2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIHVzZXJDaG9zZW4pCiAKIHZv
aWQgRG9jdW1lbnRXcml0ZXI6OnNldEZyYW1lKEZyYW1lJiBmcmFtZSkKIHsKLSAgICBtX2ZyYW1l
ID0gbWFrZVdlYWtQdHIoZnJhbWUpOworICAgIG1fZnJhbWUgPSBmcmFtZTsKIH0KIAogdm9pZCBE
b2N1bWVudFdyaXRlcjo6c2V0RG9jdW1lbnRXYXNMb2FkZWRBc1BhcnRPZk5hdmlnYXRpb24oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMGQ3ZTJmNWVmN2ZmMGI1M2U5
OWNiYzI4OWUwMDRlYzU5OWU3NjFlYi4uOGY4MTc3Y2UxNGY5NWI2NDYwOGM3MWY2ODIzZjc4OGFi
ZDUyOTBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yMTcsNyAr
MjE3LDcgQEAgc3RhdGljIGJvb2wgaXNEb2N1bWVudFNhbmRib3hlZChGcmFtZSYgZnJhbWUsIFNh
bmRib3hGbGFncyBtYXNrKQogY2xhc3MgUGFnZUxldmVsRm9yYmlkU2NvcGUgewogcHJvdGVjdGVk
OgogICAgIGV4cGxpY2l0IFBhZ2VMZXZlbEZvcmJpZFNjb3BlKFBhZ2UqIHBhZ2UpCi0gICAgICAg
IDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgICAgICA6IG1fcGFnZShwYWdlKQogICAg
IHsKICAgICB9CiAKQEAgLTEwNTksNyArMTA1OSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnNldE9w
ZW5lcihGcmFtZSogb3BlbmVyKQogICAgICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFn
ZSgpKQogICAgICAgICAgICAgcGFnZS0+c2V0T3BlbmVkQnlET01XaXRoT3BlbmVyKHRydWUpOwog
ICAgIH0KLSAgICBtX29wZW5lciA9IG1ha2VXZWFrUHRyKG9wZW5lcik7CisgICAgbV9vcGVuZXIg
PSBvcGVuZXI7CiAKICAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpKQogICAgICAgICBtX2ZyYW1l
LmRvY3VtZW50KCktPmluaXRTZWN1cml0eUNvbnRleHQoKTsKQEAgLTEyNzAsNyArMTI3MCw3IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJl
cXVlc3QsIEV2ZW50KiBldmVudCwgUmVmCiAgICAgZWxzZQogICAgICAgICBsb2FkVHlwZSA9IEZy
YW1lTG9hZFR5cGU6OlN0YW5kYXJkOwogCi0gICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0
aGlzLCBwcm90ZWN0ZWRGcmFtZSA9IFJlZiB7IG1fZnJhbWUgfSwgZm9ybVN0YXRlID0gbWFrZVdl
YWtQdHIoZm9ybVN0YXRlLmdldCgpKSwgZnJhbWVOYW1lID0gcmVxdWVzdC5mcmFtZU5hbWUoKV0g
eworICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBS
ZWYgeyBtX2ZyYW1lIH0sIGZvcm1TdGF0ZSA9IFdlYWtQdHIgeyBmb3JtU3RhdGUgfSwgZnJhbWVO
YW1lID0gcmVxdWVzdC5mcmFtZU5hbWUoKV0gewogICAgICAgICAvLyBGSVhNRTogSXQncyBwb3Nz
aWJsZSB0aGlzIHRhcmdldEZyYW1lIHdpbGwgbm90IGJlIHRoZSBzYW1lIGZyYW1lIHRoYXQgd2Fz
IHRhcmdldGVkIGJ5IHRoZSBhY3R1YWwKICAgICAgICAgLy8gbG9hZCBpZiBmcmFtZSBuYW1lcyBo
YXZlIGNoYW5nZWQuCiAgICAgICAgIEZyYW1lKiBzb3VyY2VGcmFtZSA9IGZvcm1TdGF0ZSA/IGZv
cm1TdGF0ZS0+c291cmNlRG9jdW1lbnQoKS5mcmFtZSgpIDogJm1fZnJhbWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCAxZDcxY2YzOTdh
YmM2NGIyMjEyMmRhMThmN2E5MjA0NmE5NGQxMTViLi5mZTg2NTg3MWNlZjIxY2NkMzM1ZTc3OWU3
ZmRhZDBjMzJkNDZhYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAg
ICAgZXhwbGljaXQgRnJhbWVOZXR3b3JraW5nQ29udGV4dChGcmFtZSogZnJhbWUpCi0gICAgICAg
IDogbV9mcmFtZShtYWtlV2Vha1B0cihmcmFtZSkpCisgICAgICAgIDogbV9mcmFtZShmcmFtZSkK
ICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggZmRk
YjA3YmVlNWYwMzYyMzk4ZThlYzE0MWI2Yjk2ZjliNzM0NWJhZC4uOGZiOTE3Yjk1MWMyZmRhNGI5
OWNlMWJlNzVlNjFiMWQxNDBhYmIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNw
cApAQCAtMjE3LDcgKzIxNyw3IEBAIHZvaWQgTGlua0xvYWRlcjo6cHJlY29ubmVjdElmTmVlZGVk
KGNvbnN0IExpbmtMb2FkUGFyYW1ldGVycyYgcGFyYW1zLCBEb2N1bWVudCYKICAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShwYXJhbXMuY3Jvc3NPcmlnaW4sICJhbm9ueW1vdXMiKSAmJiBk
b2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmlzU2FtZU9yaWdpbkRvbWFpbihTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKGhyZWYpKSkKICAgICAgICAgc3RvcmFnZUNyZWRlbnRpYWxzUG9saWN5ID0gU3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlOwogICAgIEFTU0VSVChkb2N1bWVudC5mcmFt
ZSgpLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpKTsKLSAgICBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+cHJlY29ubmVjdFRvKGRvY3VtZW50LmZyYW1lKCktPmxv
YWRlcigpLCBocmVmLCBzdG9yYWdlQ3JlZGVudGlhbHNQb2xpY3ksIFt3ZWFrRG9jdW1lbnQgPSBt
YWtlV2Vha1B0cihkb2N1bWVudCksIGhyZWZdKFJlc291cmNlRXJyb3IgZXJyb3IpIHsKKyAgICBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+cHJlY29ubmVjdFRvKGRvY3Vt
ZW50LmZyYW1lKCktPmxvYWRlcigpLCBocmVmLCBzdG9yYWdlQ3JlZGVudGlhbHNQb2xpY3ksIFt3
ZWFrRG9jdW1lbnQgPSBXZWFrUHRyIHsgZG9jdW1lbnQgfSwgaHJlZl0oUmVzb3VyY2VFcnJvciBl
cnJvcikgewogICAgICAgICBpZiAoIXdlYWtEb2N1bWVudCkKICAgICAgICAgICAgIHJldHVybjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtQcmVsb2FkUmVzb3VyY2VD
bGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rUHJlbG9hZFJlc291cmNlQ2xp
ZW50cy5jcHAKaW5kZXggYWI5Mzc3MzY0OTViMjhiYTc0MjhmMWJjM2Y0MTdiODAxNTM2Y2MzNi4u
ZWQ4NTgyNzE5MDY3ZTBkMWE3YmNiZWNiZDUxMDI0YmM1OTk4MmQ5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtQcmVsb2FkUmVzb3VyY2VDbGllbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMuY3BwCkBAIC0z
Myw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTGlua1ByZWxvYWRSZXNvdXJjZUNs
aWVudDo6TGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudChMaW5rTG9hZGVyJiBsb2FkZXIsIENhY2hl
ZFJlc291cmNlJiByZXNvdXJjZSkKIHsKLSAgICBtX2xvYWRlciA9IG1ha2VXZWFrUHRyKGxvYWRl
cik7CisgICAgbV9sb2FkZXIgPSBsb2FkZXI7CiAgICAgbV9yZXNvdXJjZSA9ICZyZXNvdXJjZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IDE0OWJhOGEzMjY4YjliNjBhZGE5ZmVjYzRkNjYzYTBmNTZhNDE2OGIuLjVkMTIwZTI0N2Fj
MjYyNzExNjFkZTBkYzUyMzAyNGRjOGRlMzRkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUxLDggKzUxLDggQEAgdm9pZCBNZWRpYVJl
c291cmNlTG9hZGVyOjpyZWNvcmRSZXNwb25zZXNGb3JUZXN0aW5nKCkKIAogTWVkaWFSZXNvdXJj
ZUxvYWRlcjo6TWVkaWFSZXNvdXJjZUxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQsIEVsZW1lbnQm
IGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlLCBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uIGRlc3RpbmF0aW9uKQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIo
JmRvY3VtZW50KQotICAgICwgbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCi0gICAg
LCBtX2VsZW1lbnQobWFrZVdlYWtQdHIoZWxlbWVudCkpCisgICAgLCBtX2RvY3VtZW50KGRvY3Vt
ZW50KQorICAgICwgbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2Nyb3NzT3JpZ2luTW9kZShj
cm9zc09yaWdpbk1vZGUpCiAgICAgLCBtX2Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5j
cHAKaW5kZXggNDM1ZjkwNGRlNzY5NDU2ODlkNWRkNWNmMTQ0YTZmNmVhNTNjZWY5Zi4uNjMzNzU1
OTYzMjAwMTQ2MzgyODllMjgyNjA0YzU1YjBhZjQ0NTMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCkBAIC01Nyw3ICs1
Nyw3IEBAIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlcihGcmFtZSYgZnJhbWUsIE5ldHNjYXBlUGx1CiAgICAgICAgIENvbnRlbnRTZWN1cml0eVBv
bGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2ssCiAgICAgICAgIERlZmVyc0xvYWRpbmdQb2xp
Y3k6OkFsbG93RGVmZXJzTG9hZGluZywKICAgICAgICAgQ2FjaGluZ1BvbGljeTo6QWxsb3dDYWNo
aW5nKSkKLSAgICAsIG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkpCisgICAgLCBtX2NsaWVu
dChjbGllbnQpCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBtX3Jlc291
cmNlVHlwZSA9IHsgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6T3RoZXIgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAppbmRleCA4N2UyNjQwOWJkMzk5ZDU0
MzVhNjY4ZGM2ODY3ZWFiZTdjZjVkNjIyLi5kMDgwNTc5NWFmMjFkMzlmYzY4NThkNGFjMDE2ODc0
NWYwMTFmZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCkBAIC0x
NzMsNyArMTczLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZp
Z2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QKICAgICAvLyBBbHdheXMgYWxs
b3cgUXVpY2tMb29rLWdlbmVyYXRlZCBVUkxzIGJhc2VkIG9uIHRoZSBwcm90b2NvbCBzY2hlbWUu
CiAgICAgaWYgKCFyZXF1ZXN0LmlzTnVsbCgpICYmIGlzUXVpY2tMb29rUHJldmlld1VSTChyZXF1
ZXN0LnVybCgpKSkgewogICAgICAgICBQT0xJQ1lDSEVDS0VSX1JFTEVBU0VfTE9HKCJjaGVja05h
dmlnYXRpb25Qb2xpY3k6IGNvbnRpbnVpbmcgYmVjYXVzZSBxdWlja2xvb2stZ2VuZXJhdGVkIFVS
TCIpOwotICAgICAgICByZXR1cm4gZnVuY3Rpb24oV1RGTW92ZShyZXF1ZXN0KSwgbWFrZVdlYWtQ
dHIoZm9ybVN0YXRlLmdldCgpKSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uOjpDb250aW51ZUxv
YWQpOworICAgICAgICByZXR1cm4gZnVuY3Rpb24oV1RGTW92ZShyZXF1ZXN0KSwgZm9ybVN0YXRl
LCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb246OkNvbnRpbnVlTG9hZCk7CiAgICAgfQogI2VuZGlm
CiAKQEAgLTIyOSw3ICsyMjksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyOjpj
aGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdAogICAgICAgICAg
ICAgICAgIFBPTElDWUNIRUNLRVJfUkVMRUFTRV9MT0coImNoZWNrTmF2aWdhdGlvblBvbGljeTog
Y29udGludWluZyBiZWNhdXNlIHRoaXMgaXMgYW4gaW5pdGlhbCBlbXB0eSBkb2N1bWVudCIpOwog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIFBPTElDWUNIRUNLRVJfUkVMRUFTRV9M
T0coImNoZWNrTmF2aWdhdGlvblBvbGljeTogY29udGludWluZyBiZWNhdXNlIHRoaXMgcG9saWN5
QWN0aW9uIGZyb20gZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIGlzIFVz
ZSIpOwotICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKFdURk1vdmUocmVxdWVzdCksIG1ha2VX
ZWFrUHRyKGZvcm1TdGF0ZS5nZXQoKSksIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6Q29udGlu
dWVMb2FkKTsKKyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihXVEZNb3ZlKHJlcXVlc3QpLCBm
b3JtU3RhdGUsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6Q29udGludWVMb2FkKTsKICAgICAg
ICAgfQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9OwpAQCAtMjcyLDcgKzI3
Miw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXI6OmNoZWNrTmV3V2luZG93UG9s
aWN5KE5hdmlnYXRpb25BY3Rpb24mJiBuYXZpZ2F0CiAgICAgICAgICAgICBmdW5jdGlvbih7IH0s
IG51bGxwdHIsIHsgfSwgeyB9LCBTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpObyk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgUG9saWN5QWN0aW9uOjpVc2U6Ci0gICAgICAg
ICAgICBmdW5jdGlvbihyZXF1ZXN0LCBtYWtlV2Vha1B0cihmb3JtU3RhdGUuZ2V0KCkpLCBmcmFt
ZU5hbWUsIG5hdmlnYXRpb25BY3Rpb24sIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Olllcyk7
CisgICAgICAgICAgICBmdW5jdGlvbihyZXF1ZXN0LCBmb3JtU3RhdGUsIGZyYW1lTmFtZSwgbmF2
aWdhdGlvbkFjdGlvbiwgU2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6WWVzKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IDk5N2EzM2RmZjEyMmM1
ZWI5ZTRhODhjMzMzMTgzZGQzMzVhNDk4NDQuLjEzMDMwMjMzYmMzMGY2NjBmZTc0NjcwYTI5MTZi
ZjgxYTc2ZmI0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcApA
QCAtMzcyLDcgKzM3Miw3IEBAIGJvb2wgRnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpsb2Fk
UGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIHBsdWdpbkVsZW1lCiAgICAgICAgIGxvYWRN
YW51YWxseSA9IGZhbHNlOwogI2VuZGlmCiAKLSAgICBhdXRvIHdlYWtSZW5kZXJlciA9IG1ha2VX
ZWFrUHRyKCpyZW5kZXJlcik7CisgICAgV2Vha1B0ciB3ZWFrUmVuZGVyZXIgeyAqcmVuZGVyZXIg
fTsKIAogICAgIGF1dG8gd2lkZ2V0ID0gbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jcmVhdGVQ
bHVnaW4oY29udGVudFNpemUsIHBsdWdpbkVsZW1lbnQsIHVybCwgcGFyYW1OYW1lcywgcGFyYW1W
YWx1ZXMsIG1pbWVUeXBlLCBsb2FkTWFudWFsbHkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAKaW5kZXggZGZiNGU2OTg0MmYw
ZGRmM2NmM2QyNTM5YTlkMDRhMTQ3ZDJlMzUyZi4uOTZjYjA1ZTM4ZTQwMDVjMzk4OTQ3YjU1OTk1
M2UzMzdiOGRkNjQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlLmNwcApAQCAtNTQsNyArNTQsNyBAQCBBcHBsaWNhdGlvbkNhY2hl
Ojp+QXBwbGljYXRpb25DYWNoZSgpCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGU6OnNldEdyb3VwKEFw
cGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXApCiB7CiAgICAgQVNTRVJUKCFtX2dyb3VwIHx8IGdy
b3VwID09IG1fZ3JvdXApOwotICAgIG1fZ3JvdXAgPSBtYWtlV2Vha1B0cihncm91cCk7CisgICAg
bV9ncm91cCA9IGdyb3VwOwogfQogCiBib29sIEFwcGxpY2F0aW9uQ2FjaGU6OmlzQ29tcGxldGUo
KQpAQCAtNzcsNyArNzcsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGU6OnNldE1hbmlmZXN0UmVz
b3VyY2UoUmVmPEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4mJiBtYW5pZgogICAgIEFTU0VSVCgh
bV9tYW5pZmVzdCk7CiAgICAgQVNTRVJUKG1hbmlmZXN0LT50eXBlKCkgJiBBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2U6Ok1hbmlmZXN0KTsKIAotICAgIG1fbWFuaWZlc3QgPSBtYWtlV2Vha1B0ciht
YW5pZmVzdC5nZXQoKSk7CisgICAgbV9tYW5pZmVzdCA9IG1hbmlmZXN0OwogCiAgICAgYWRkUmVz
b3VyY2UoV1RGTW92ZShtYW5pZmVzdCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCA0YmMyYjA5
Mjc1ZjEzODIwMzY5YTk0YmUwOGZmY2I4ZDEyZmI4Yjk4Li44OWYzYjBmMWRjMzlkNDBhNTYzODc4
YWU1NWY3NmM2NzBhNzE1MDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNDE3LDcgKzQxNyw3IEBA
IHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjp1cGRhdGUoRnJhbWUmIGZyYW1lLCBBcHBsaWNh
dGlvbkNhY2hlVXBkYXRlT3B0aW9uIHVwCiAgICAgfQogCiAgICAgQVNTRVJUKCFtX2ZyYW1lKTsK
LSAgICBtX2ZyYW1lID0gbWFrZVdlYWtQdHIoZnJhbWUpOworICAgIG1fZnJhbWUgPSBmcmFtZTsK
IAogICAgIHNldFVwZGF0ZVN0YXR1cyhDaGVja2luZyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCmluZGV4IDIz
YjE1NDJmOTVhYmMzNTE1MWI2MGZlZDA3YTc5NDA5OTBjM2Q4MTEuLjYwMzI4MTg4ODM3NWY0NGE2
MjRiM2UzYjNhYWZlMDZhMzY4OTJlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcApAQCAtMzA1LDcgKzMwNSw3
IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6OmNhbkNhY2hlSW5CYWNrRm9yd2FyZENhY2hl
KCkKIHZvaWQgQXBwbGljYXRpb25DYWNoZUhvc3Q6OnNldERPTUFwcGxpY2F0aW9uQ2FjaGUoRE9N
QXBwbGljYXRpb25DYWNoZSogZG9tQXBwbGljYXRpb25DYWNoZSkKIHsKICAgICBBU1NFUlQoIW1f
ZG9tQXBwbGljYXRpb25DYWNoZSB8fCAhZG9tQXBwbGljYXRpb25DYWNoZSk7Ci0gICAgbV9kb21B
cHBsaWNhdGlvbkNhY2hlID0gbWFrZVdlYWtQdHIoZG9tQXBwbGljYXRpb25DYWNoZSk7CisgICAg
bV9kb21BcHBsaWNhdGlvbkNhY2hlID0gZG9tQXBwbGljYXRpb25DYWNoZTsKIH0KIAogdm9pZCBB
cHBsaWNhdGlvbkNhY2hlSG9zdDo6bm90aWZ5RE9NQXBwbGljYXRpb25DYWNoZShjb25zdCBBdG9t
U3RyaW5nJiBldmVudFR5cGUsIGludCB0b3RhbCwgaW50IGRvbmUpCkBAIC0zOTcsNyArMzk3LDcg
QEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6ZGlzcGF0Y2hET01FdmVudChjb25zdCBBdG9t
U3RyaW5nJiBldmVudFR5cGUsIGludCB0b3QKIHZvaWQgQXBwbGljYXRpb25DYWNoZUhvc3Q6OnNl
dENhbmRpZGF0ZUFwcGxpY2F0aW9uQ2FjaGVHcm91cChBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIGdy
b3VwKQogewogICAgIEFTU0VSVCghbV9hcHBsaWNhdGlvbkNhY2hlKTsKLSAgICBtX2NhbmRpZGF0
ZUFwcGxpY2F0aW9uQ2FjaGVHcm91cCA9IG1ha2VXZWFrUHRyKGdyb3VwKTsKKyAgICBtX2NhbmRp
ZGF0ZUFwcGxpY2F0aW9uQ2FjaGVHcm91cCA9IGdyb3VwOwogfQogICAgIAogdm9pZCBBcHBsaWNh
dGlvbkNhY2hlSG9zdDo6c2V0QXBwbGljYXRpb25DYWNoZShSZWZQdHI8QXBwbGljYXRpb25DYWNo
ZT4mJiBhcHBsaWNhdGlvbkNhY2hlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRJbWFnZS5jcHAKaW5kZXggOTMxODcxMGIwNzE2ZGM0MTk1ZDY5MGY0NjIwZjZiZjAzZTkxNTU1
OS4uYjE1OWYyOWVlOTBmZTNkZTAxOWMxMTQ5YmRhNjk0ZTBlNmY2YjU0MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC05OCw3ICs5OCw3IEBAIENh
Y2hlZEltYWdlOjp+Q2FjaGVkSW1hZ2UoKQogCiB2b2lkIENhY2hlZEltYWdlOjpsb2FkKENhY2hl
ZFJlc291cmNlTG9hZGVyJiBsb2FkZXIpCiB7Ci0gICAgbV9za2lwcGluZ1JldmFsaWRhdGlvbkRv
Y3VtZW50ID0gbWFrZVdlYWtQdHIobG9hZGVyLmRvY3VtZW50KCkpOworICAgIG1fc2tpcHBpbmdS
ZXZhbGlkYXRpb25Eb2N1bWVudCA9IGxvYWRlci5kb2N1bWVudCgpOwogICAgIGlmIChsb2FkZXIu
c2hvdWxkUGVyZm9ybUltYWdlTG9hZCh1cmwoKSkpCiAgICAgICAgIENhY2hlZFJlc291cmNlOjps
b2FkKGxvYWRlcik7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRleCAxM2MyYWExNzU2ZjQ4ZWZiNGFiYzFlNmM5
YzFiYjBkYTcxOGJjNDY3Li5kMzMxNTM0MGViNDkyNDMwNjBkZjI3YTI0ZWIzYWQxNzhiYTkxZDk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHB1YmxpYzoKICAgICAKICAgICBGcmFtZSogZnJh
bWUoKSBjb25zdDsgLy8gQ2FuIGJlIG51bGwKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25z
dCB7IHJldHVybiBtX2RvY3VtZW50LmdldCgpOyB9IC8vIENhbiBiZSBudWxsCi0gICAgdm9pZCBz
ZXREb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpIHsgbV9kb2N1bWVudCA9IG1ha2VXZWFrUHRy
KGRvY3VtZW50KTsgfQorICAgIHZvaWQgc2V0RG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KSB7
IG1fZG9jdW1lbnQgPSBkb2N1bWVudDsgfQogICAgIHZvaWQgY2xlYXJEb2N1bWVudExvYWRlcigp
IHsgbV9kb2N1bWVudExvYWRlciA9IG51bGxwdHI7IH0KIAogICAgIHZvaWQgbG9hZERvbmUoTG9h
ZENvbXBsZXRpb25UeXBlLCBib29sIHNob3VsZFBlcmZvcm1Qb3N0TG9hZEFjdGlvbnMgPSB0cnVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pb3MvTGVnYWN5UHJldmlld0xv
YWRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pb3MvTGVnYWN5UHJldmlld0xvYWRlci5t
bQppbmRleCBiNWFmNzdiM2E5YjZlMDkxZjlkODY4N2E3M2UxZWRiYjc2ZTllMzg5Li5kMThiMjUy
ZTk3NTZjOGNlMGM5NWI2M2U3OGRkMDA5N2VmMmE1NzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvaW9zL0xlZ2FjeVByZXZpZXdMb2FkZXIubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2lvcy9MZWdhY3lQcmV2aWV3TG9hZGVyLm1tCkBAIC0xMTksNyArMTE5LDcgQEAg
dm9pZCBMZWdhY3lQcmV2aWV3TG9hZGVyOjpwcmV2aWV3Q29udmVydGVyRGlkU3RhcnRDb252ZXJ0
aW5nKFByZXZpZXdDb252ZXJ0ZXImIGMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHJl
c291cmNlTG9hZGVyLT5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UsIFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PFByZXZpZXdDb252ZXJ0ZXJDbGllbnQmPigqdGhp
cykpLCBjb252ZXJ0ZXIgPSBSZWYgeyBjb252ZXJ0ZXIgfV0geworICAgIHJlc291cmNlTG9hZGVy
LT5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIg
eyBzdGF0aWNfY2FzdDxQcmV2aWV3Q29udmVydGVyQ2xpZW50Jj4oKnRoaXMpIH0sIGNvbnZlcnRl
ciA9IFJlZiB7IGNvbnZlcnRlciB9XSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICByZXR1cm47CiAKQEAgLTIzNiw3ICsyMzYsNyBAQCBMZWdhY3lQcmV2aWV3TG9hZGVyOjpM
ZWdhY3lQcmV2aWV3TG9hZGVyKFJlc291cmNlTG9hZGVyJiBsb2FkZXIsIGNvbnN0IFJlc291cmNl
UgogICAgIDogbV9jb252ZXJ0ZXIgeyBQcmV2aWV3Q29udmVydGVyOjpjcmVhdGUocmVzcG9uc2Us
ICp0aGlzKSB9CiAgICAgLCBtX2NsaWVudCB7IG1ha2VDbGllbnQobG9hZGVyLCBtX2NvbnZlcnRl
ci0+cHJldmlld0ZpbGVOYW1lKCksIG1fY29udmVydGVyLT5wcmV2aWV3VVRJKCkpIH0KICAgICAs
IG1fb3JpZ2luYWxEYXRhIHsgU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSB9Ci0gICAgLCBtX3Jlc291
cmNlTG9hZGVyIHsgbWFrZVdlYWtQdHIobG9hZGVyKSB9CisgICAgLCBtX3Jlc291cmNlTG9hZGVy
IHsgbG9hZGVyIH0KICAgICAsIG1fc2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZyB7IGxv
YWRlci5mcmFtZSgpLT5zZXR0aW5ncygpLnNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdR
dWlja0xvb2tQcmV2aWV3KCkgfQogewogICAgIEFTU0VSVChQcmV2aWV3Q29udmVydGVyOjpzdXBw
b3J0c01JTUVUeXBlKHJlc3BvbnNlLm1pbWVUeXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93RXh0ZW5zaW9uLmNwcAppbmRleCBjYzQwM2FiYzgyODIwNWIzNTI5ZTM1MmFkZWI0
NmNiMmJmM2QyNzUxLi40Njc1OTEzM2IyNDI2M2RhMmEwZTJmM2Y1YTc4YThjMTBlZWMxMmZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uY3BwCkBAIC0zNyw3ICsz
Nyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERPTVdpbmRvd0V4dGVuc2lvbjo6RE9NV2lu
ZG93RXh0ZW5zaW9uKERPTVdpbmRvdyogd2luZG93LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQot
ICAgIDogbV93aW5kb3cobWFrZVdlYWtQdHIod2luZG93KSkKKyAgICA6IG1fd2luZG93KHdpbmRv
dykKICAgICAsIG1fd29ybGQod29ybGQpCiAgICAgLCBtX3dhc0RldGFjaGVkKGZhbHNlKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAppbmRleCA3YmI2MWMyM2Nk
MjczMzZlZDU3NjA2YTk1NzJmNTUyNjZkYzdkYzZlLi5iYjI2ZTBkZjk2MTIxMWY4ZDYwNmYxZGM3
MGU1NWUyMDcwMjhjYjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
d1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5
LmNwcApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBET01XaW5kb3dQ
cm9wZXJ0eTo6RE9NV2luZG93UHJvcGVydHkoRE9NV2luZG93KiB3aW5kb3cpCi0gICAgOiBtX3dp
bmRvdyhtYWtlV2Vha1B0cih3aW5kb3cpKQorICAgIDogbV93aW5kb3cod2luZG93KQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggN2Y5ZDhlYzQ1NGMwMzVmMjAy
NTljZTg5ODI0YzY1N2Y1YWYxZTJmMi4uNDZkOWZmOGM4NmZlMDg0MWIzOTI2Y2M4ZjM4MzdmYzMw
Yzg0ZTNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjg5Miw3ICsy
ODkyLDcgQEAgc3RhdGljIFdlYWtQdHI8V2lkZ2V0PiB3aWRnZXRGb3JFbGVtZW50KGNvbnN0IEVs
ZW1lbnQmIGVsZW1lbnQpCiAgICAgaWYgKCFpczxSZW5kZXJXaWRnZXQ+KHRhcmdldCkgfHwgIWRv
d25jYXN0PFJlbmRlcldpZGdldD4oKnRhcmdldCkud2lkZ2V0KCkpCiAgICAgICAgIHJldHVybiB7
IH07CiAKLSAgICByZXR1cm4gbWFrZVdlYWtQdHIoKmRvd25jYXN0PFJlbmRlcldpZGdldD4oKnRh
cmdldCkud2lkZ2V0KCkpOworICAgIHJldHVybiAqZG93bmNhc3Q8UmVuZGVyV2lkZ2V0PigqdGFy
Z2V0KS53aWRnZXQoKTsKIH0KIAogYm9vbCBFdmVudEhhbmRsZXI6OmNvbXBsZXRlV2lkZ2V0V2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBjb25zdCBXZWFrUHRyPFdp
ZGdldD4mIHdpZGdldCwgY29uc3QgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mIHNjcm9sbGFibGVB
cmVhKQpAQCAtNDQzNCw3ICs0NDM0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZUxhc3RT
Y3JvbGxiYXJVbmRlck1vdXNlKFNjcm9sbGJhciogc2Nyb2xsYmFyLCBTZXRPckNsZWEKICAgICAg
ICAgLy8gU2VuZCBtb3VzZSBlbnRlcmVkIGlmIHdlJ3JlIHNldHRpbmcgYSBuZXcgc2Nyb2xsYmFy
LgogICAgICAgICBpZiAoc2Nyb2xsYmFyICYmIHNldE9yQ2xlYXIgPT0gU2V0T3JDbGVhckxhc3RT
Y3JvbGxiYXI6OlNldCkgewogICAgICAgICAgICAgc2Nyb2xsYmFyLT5tb3VzZUVudGVyZWQoKTsK
LSAgICAgICAgICAgIG1fbGFzdFNjcm9sbGJhclVuZGVyTW91c2UgPSBtYWtlV2Vha1B0cigqc2Ny
b2xsYmFyKTsKKyAgICAgICAgICAgIG1fbGFzdFNjcm9sbGJhclVuZGVyTW91c2UgPSAqc2Nyb2xs
YmFyOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG1fbGFzdFNjcm9sbGJhclVuZGVyTW91
c2UgPSBudWxscHRyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggZmQzMzM2OGFkMjFk
YzU1OTY3NGIzYTdhNjhkMjMzNGNlNGYxMzM5Yy4uOGUwYTE5YTY2NGU2MmI3YzNlZTRkY2Y4OGJl
NzdhYjViYTI3MzdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTE2MSwxMiArMTYxLDEyIEBA
IHN0YXRpYyBpbmxpbmUgZmxvYXQgcGFyZW50VGV4dFpvb21GYWN0b3IoRnJhbWUqIGZyYW1lKQog
CiBGcmFtZTo6RnJhbWUoUGFnZSYgcGFnZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVs
ZW1lbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiBmcmFtZUxvYWRlckNsaWVudCkK
ICAgICA6IG1fbWFpbkZyYW1lKG93bmVyRWxlbWVudCA/IHBhZ2UubWFpbkZyYW1lKCkgOiAqdGhp
cykKLSAgICAsIG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKKyAgICAsIG1fcGFnZShwYWdlKQog
ICAgICwgbV9zZXR0aW5ncygmcGFnZS5zZXR0aW5ncygpKQogICAgICwgbV90cmVlTm9kZSgqdGhp
cywgcGFyZW50RnJvbU93bmVyRWxlbWVudChvd25lckVsZW1lbnQpKQogICAgICwgbV9sb2FkZXIo
bWFrZVVuaXF1ZVJlZjxGcmFtZUxvYWRlcj4oKnRoaXMsIFdURk1vdmUoZnJhbWVMb2FkZXJDbGll
bnQpKSkKICAgICAsIG1fbmF2aWdhdGlvblNjaGVkdWxlcihtYWtlVW5pcXVlUmVmPE5hdmlnYXRp
b25TY2hlZHVsZXI+KCp0aGlzKSkKLSAgICAsIG1fb3duZXJFbGVtZW50KG1ha2VXZWFrUHRyKG93
bmVyRWxlbWVudCkpCisgICAgLCBtX293bmVyRWxlbWVudChvd25lckVsZW1lbnQpCiAgICAgLCBt
X3NjcmlwdChtYWtlVW5pcXVlUmVmPFNjcmlwdENvbnRyb2xsZXI+KCp0aGlzKSkKICAgICAsIG1f
cGFnZVpvb21GYWN0b3IocGFyZW50UGFnZVpvb21GYWN0b3IodGhpcykpCiAgICAgLCBtX3RleHRa
b29tRmFjdG9yKHBhcmVudFRleHRab29tRmFjdG9yKHRoaXMpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IDhmM2ZlMDA0OGIxNTZm
ZjE2YTMxYzY2ZjM3MzhkZmMwY2RkMzc2ODQuLjMzMWEzMGJkZTdmMzc2ZWZjN2Y3ZjZlNmFlZmEy
ZjdmZDNjZjI5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRGVzdHJ1Y3Rp
b25PYnNlcnZlci5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgdm9pZCBGcmFtZURlc3RydWN0aW9uT2Jz
ZXJ2ZXI6Om9ic2VydmVGcmFtZShGcmFtZSogZnJhbWUpCiAgICAgaWYgKG1fZnJhbWUpCiAgICAg
ICAgIG1fZnJhbWUtPnJlbW92ZURlc3RydWN0aW9uT2JzZXJ2ZXIoKnRoaXMpOwogCi0gICAgbV9m
cmFtZSA9IG1ha2VXZWFrUHRyKGZyYW1lKTsKKyAgICBtX2ZyYW1lID0gZnJhbWU7CiAKICAgICBp
ZiAobV9mcmFtZSkKICAgICAgICAgbV9mcmFtZS0+YWRkRGVzdHJ1Y3Rpb25PYnNlcnZlcigqdGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5kZXggNWFjOGI4NDE1M2E1NTFhZDM1OWZm
OTUyZjAwYjVkOGI4NDIwMmZmYi4uYzJjN2QwZDEyZWQ2Y2FkNTUzN2U1NjY1OGZhOWE3MGI4YmZl
MTlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcApAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIEZyYW1lVHJlZTo6RnJhbWVUcmVlKEZyYW1lJiB0aGlzRnJhbWUs
IEZyYW1lKiBwYXJlbnRGcmFtZSkKICAgICA6IG1fdGhpc0ZyYW1lKHRoaXNGcmFtZSkKLSAgICAs
IG1fcGFyZW50KG1ha2VXZWFrUHRyKHBhcmVudEZyYW1lKSkKKyAgICAsIG1fcGFyZW50KHBhcmVu
dEZyYW1lKQogewogfQogCkBAIC03Myw5ICs3Myw5IEBAIEZyYW1lKiBGcmFtZVRyZWU6OnBhcmVu
dCgpIGNvbnN0CiB2b2lkIEZyYW1lVHJlZTo6YXBwZW5kQ2hpbGQoRnJhbWUmIGNoaWxkKQogewog
ICAgIEFTU0VSVChjaGlsZC5wYWdlKCkgPT0gbV90aGlzRnJhbWUucGFnZSgpKTsKLSAgICBjaGls
ZC50cmVlKCkubV9wYXJlbnQgPSBtYWtlV2Vha1B0cihtX3RoaXNGcmFtZSk7CisgICAgY2hpbGQu
dHJlZSgpLm1fcGFyZW50ID0gbV90aGlzRnJhbWU7CiAgICAgV2Vha1B0cjxGcmFtZT4gb2xkTGFz
dCA9IG1fbGFzdENoaWxkOwotICAgIG1fbGFzdENoaWxkID0gbWFrZVdlYWtQdHIoY2hpbGQpOwor
ICAgIG1fbGFzdENoaWxkID0gY2hpbGQ7CiAKICAgICBpZiAob2xkTGFzdCkgewogICAgICAgICBj
aGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcgPSBvbGRMYXN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IDFhMTg5Nzc0YzcwMGE5ZjkyZWRmMzcyYjE1ZWY3OTIwMTc3MmVmMGEu
LmI4NjdjMDhkNjhjNjBjMGIzYzczMzdhNmNjMjU5OWI1M2I4MTgzYTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTMyNzAsNyArMzI3MCw3IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRh
dGVFbWJlZGRlZE9iamVjdChSZW5kZXJFbWJlZGRlZE9iamVjdCYgZW1iZWRkZWRPYmplY3QpCiAK
ICAgICBhdXRvJiBlbGVtZW50ID0gZW1iZWRkZWRPYmplY3QuZnJhbWVPd25lckVsZW1lbnQoKTsK
IAotICAgIGF1dG8gd2Vha1JlbmRlcmVyID0gbWFrZVdlYWtQdHIoZW1iZWRkZWRPYmplY3QpOwor
ICAgIFdlYWtQdHIgd2Vha1JlbmRlcmVyIHsgZW1iZWRkZWRPYmplY3QgfTsKIAogICAgIGlmIChp
czxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50PihlbGVtZW50KSkgewogICAgICAgICBhdXRvJiBwbHVn
aW5FbGVtZW50ID0gZG93bmNhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudD4oZWxlbWVudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcAppbmRleCAw
YTVkMzliZTRlYjE2NDIyYzdmNTEzMWRlNzMzMzlhNDljOWI2NjczLi5lNmRiZGIzYTA3NjU0YWM2
MGViOTgwMTZkMjRjMWE3NzMyZmJkMjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIEZyYW1lVmll
d0xheW91dENvbnRleHQ6OmxheW91dCgpCiAgICAgICAgIGlmICghcmVuZGVyVmlldygpKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxheW91dFJvb3QgPSBtYWtlV2Vha1B0cihzdWJ0
cmVlTGF5b3V0Um9vdCgpID8gc3VidHJlZUxheW91dFJvb3QoKSA6IHJlbmRlclZpZXcoKSk7Cisg
ICAgICAgIGxheW91dFJvb3QgPSBzdWJ0cmVlTGF5b3V0Um9vdCgpID8gc3VidHJlZUxheW91dFJv
b3QoKSA6IHJlbmRlclZpZXcoKTsKICAgICAgICAgbV9uZWVkc0Z1bGxSZXBhaW50ID0gaXM8UmVu
ZGVyVmlldz4obGF5b3V0Um9vdCkgJiYgKG1fZmlyc3RMYXlvdXQgfHwgcmVuZGVyVmlldygpLT5w
cmludGluZygpKTsKICAgICAgICAgdmlldygpLndpbGxEb0xheW91dChsYXlvdXRSb290KTsKICAg
ICAgICAgbV9maXJzdExheW91dCA9IGZhbHNlOwpAQCAtNDgyLDcgKzQ4Miw3IEBAIHZvaWQgRnJh
bWVWaWV3TGF5b3V0Q29udGV4dDo6Y29udmVydFN1YnRyZWVMYXlvdXRUb0Z1bGxMYXlvdXQoKQog
CiB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OnNldFN1YnRyZWVMYXlvdXRSb290KFJlbmRl
ckVsZW1lbnQmIGxheW91dFJvb3QpCiB7Ci0gICAgbV9zdWJ0cmVlTGF5b3V0Um9vdCA9IG1ha2VX
ZWFrUHRyKGxheW91dFJvb3QpOworICAgIG1fc3VidHJlZUxheW91dFJvb3QgPSBsYXlvdXRSb290
OwogfQogCiBib29sIEZyYW1lVmlld0xheW91dENvbnRleHQ6OmNhblBlcmZvcm1MYXlvdXQoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbWFnZU92ZXJsYXlDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxlci5jcHAK
aW5kZXggYmIyMzZhODkyMGIzOTMzZTAzMmJiMDNhODMxOTZmMTYyMzgyY2RhZi4uN2M1ODJiZTZj
MmU3N2M5MThjNmMxZGRlMTc2MzkzYmI3NTRmMjJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9JbWFnZU92ZXJsYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIEZsb2F0UXVhZDsKIAogSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6
SW1hZ2VPdmVybGF5Q29udHJvbGxlcihQYWdlJiBwYWdlKQotICAgIDogbV9wYWdlKG1ha2VXZWFr
UHRyKHBhZ2UpKQorICAgIDogbV9wYWdlKHBhZ2UpCiB7CiB9CiAKQEAgLTk2LDcgKzk2LDcgQEAg
dm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpzZWxlY3Rpb25RdWFkc0RpZENoYW5nZShGcmFt
ZSYgZnJhbWUsIGNvbnN0IFZlY3RvcjwKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1f
aG9zdEVsZW1lbnRGb3JTZWxlY3Rpb24gPSBtYWtlV2Vha1B0cigqb3ZlcmxheUhvc3QpOworICAg
IG1faG9zdEVsZW1lbnRGb3JTZWxlY3Rpb24gPSAqb3ZlcmxheUhvc3Q7CiAgICAgbV9zZWxlY3Rp
b25RdWFkcyA9IHF1YWRzOwogICAgIG1fc2VsZWN0aW9uQmFja2dyb3VuZENvbG9yID0gb3Zlcmxh
eUhvc3RSZW5kZXJlci0+c2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CiAgICAgbV9zZWxlY3Rp
b25DbGlwUmVjdCA9IG92ZXJsYXlIb3N0UmVuZGVyZXItPmFic29sdXRlQm91bmRpbmdCb3hSZWN0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4
IDNhMjMwOGFhNmE1YzQ1N2M2YTFiOTJmMTgxOWRlNzJhMzU0MjJkZWQuLjU5N2I2NzIzNjU3OGM5
ODk1MmE2YmM3NzQ0ZGFiYjJjNjM0NmVjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50
ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCkBAIC0xMTYsMTkgKzExNiwxOSBAQCBFeGNlcHRpb25PcjxS
ZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+PiBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6Y3JlYXRlKERv
Y3VtZW50JiBkbwogfQogCiBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6SW50ZXJzZWN0aW9uT2JzZXJ2
ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaz4m
JiBjYWxsYmFjaywgQ29udGFpbmVyTm9kZSogcm9vdCwgTGVuZ3RoQm94JiYgcGFyc2VkUm9vdE1h
cmdpbiwgVmVjdG9yPGRvdWJsZT4mJiB0aHJlc2hvbGRzKQotICAgIDogbV9yb290KG1ha2VXZWFr
UHRyKHJvb3QpKQorICAgIDogbV9yb290KHJvb3QpCiAgICAgLCBtX3Jvb3RNYXJnaW4oV1RGTW92
ZShwYXJzZWRSb290TWFyZ2luKSkKICAgICAsIG1fdGhyZXNob2xkcyhXVEZNb3ZlKHRocmVzaG9s
ZHMpKQogICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsKICAgICBpZiAoaXM8
RG9jdW1lbnQ+KHJvb3QpKSB7CiAgICAgICAgIGF1dG8mIG9ic2VydmVyRGF0YSA9IGRvd25jYXN0
PERvY3VtZW50Pigqcm9vdCkuZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKCk7Ci0gICAg
ICAgIG9ic2VydmVyRGF0YS5vYnNlcnZlcnMuYXBwZW5kKG1ha2VXZWFrUHRyKHRoaXMpKTsKKyAg
ICAgICAgb2JzZXJ2ZXJEYXRhLm9ic2VydmVycy5hcHBlbmQoKnRoaXMpOwogICAgIH0gZWxzZSBp
ZiAocm9vdCkgewogICAgICAgICBhdXRvJiBvYnNlcnZlckRhdGEgPSBkb3duY2FzdDxFbGVtZW50
Pigqcm9vdCkuZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKCk7Ci0gICAgICAgIG9ic2Vy
dmVyRGF0YS5vYnNlcnZlcnMuYXBwZW5kKG1ha2VXZWFrUHRyKHRoaXMpKTsKKyAgICAgICAgb2Jz
ZXJ2ZXJEYXRhLm9ic2VydmVycy5hcHBlbmQoKnRoaXMpOwogICAgIH0gZWxzZSBpZiAoYXV0byog
ZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAgICAgICBtX2ltcGxpY2l0Um9vdERvY3VtZW50
ID0gbWFrZVdlYWtQdHIoZnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkpOworICAgICAgICBt
X2ltcGxpY2l0Um9vdERvY3VtZW50ID0gZnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCk7CiAK
ICAgICBzdGQ6OnNvcnQobV90aHJlc2hvbGRzLmJlZ2luKCksIG1fdGhyZXNob2xkcy5lbmQoKSk7
CiB9CkBAIC0xNjUsOSArMTY1LDkgQEAgdm9pZCBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6b2JzZXJ2
ZShFbGVtZW50JiB0YXJnZXQpCiAgICAgaWYgKCF0cmFja2luZ0RvY3VtZW50KCkgfHwgIW1fY2Fs
bGJhY2sgfHwgaXNPYnNlcnZpbmcodGFyZ2V0KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdGFy
Z2V0LmVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyRGF0YSgpLnJlZ2lzdHJhdGlvbnMuYXBwZW5k
KHsgbWFrZVdlYWtQdHIodGhpcyksIHN0ZDo6bnVsbG9wdCB9KTsKKyAgICB0YXJnZXQuZW5zdXJl
SW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKCkucmVnaXN0cmF0aW9ucy5hcHBlbmQoeyAqdGhpcywg
c3RkOjpudWxsb3B0IH0pOwogICAgIGJvb2wgaGFkT2JzZXJ2YXRpb25UYXJnZXRzID0gaGFzT2Jz
ZXJ2YXRpb25UYXJnZXRzKCk7Ci0gICAgbV9vYnNlcnZhdGlvblRhcmdldHMuYXBwZW5kKG1ha2VX
ZWFrUHRyKHRhcmdldCkpOworICAgIG1fb2JzZXJ2YXRpb25UYXJnZXRzLmFwcGVuZCh0YXJnZXQp
OwogCiAgICAgLy8gUGVyIHRoZSBzcGVjaWZpY2F0aW9uLCB3ZSBzaG91bGQgZGlzcGF0Y2ggYXQg
bGVhc3Qgb25lIG9ic2VydmF0aW9uIGZvciB0aGUgdGFyZ2V0LiBGb3IgdGhpcyByZWFzb24sIHdl
IG1ha2Ugc3VyZSB0byBrZWVwIHRoZQogICAgIC8vIHRhcmdldCBhbGl2ZSB1bnRpbCB0aGlzIGZp
cnN0IG9ic2VydmF0aW9uLiBUaGlzLCBpbiB0dXJuLCB3aWxsIGtlZXAgdGhlIEludGVyc2VjdGlv
bk9ic2VydmVyJ3MgSlMgd3JhcHBlciBhbGl2ZSB2aWEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDFk
ZTkxZGM3ZThmNWViOGVkMGQ2YjY2Y2I0MDY4NTNmMjhlNDg0ZGUuLjAwNjEzZmE2ODc2YTZiZTZh
OTI2MTMzMjE2MWU0OTY4MjJhZjQxODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTU1Myw3ICsx
NTUzLDcgQEAgdm9pZCBQYWdlOjp1cGRhdGVSZW5kZXJpbmcoKQogICAgIFZlY3RvcjxXZWFrUHRy
PERvY3VtZW50Pj4gaW5pdGlhbERvY3VtZW50czsKICAgICBmb3JFYWNoRG9jdW1lbnQoWyZpbml0
aWFsRG9jdW1lbnRzXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGRvY3VtZW50LmRv
bVdpbmRvdygpLT5mcmVlemVOb3dUaW1lc3RhbXAoKTsKLSAgICAgICAgaW5pdGlhbERvY3VtZW50
cy5hcHBlbmQobWFrZVdlYWtQdHIoJmRvY3VtZW50KSk7CisgICAgICAgIGluaXRpYWxEb2N1bWVu
dHMuYXBwZW5kKGRvY3VtZW50KTsKICAgICB9KTsKIAogICAgIGF1dG8gcnVuUHJvY2Vzc2luZ1N0
ZXAgPSBbJl0oUmVuZGVyaW5nVXBkYXRlU3RlcCBzdGVwLCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZv
aWQoRG9jdW1lbnQmKT4mIHBlckRvY3VtZW50RnVuY3Rpb24pIHsKQEAgLTE2NzIsNyArMTY3Miw3
IEBAIHZvaWQgUGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZygpCiAgICAgICAgIAogICAgICAg
ICBpZiAoYXBwSGlnaGxpZ2h0U3RvcmFnZS0+aGFzVW5yZXN0b3JlZEhpZ2hsaWdodHMoKSAmJiBN
b25vdG9uaWNUaW1lOjpub3coKSAtIGFwcEhpZ2hsaWdodFN0b3JhZ2UtPmxhc3RSYW5nZVNlYXJj
aFRpbWUoKSA+IDFfcykgewogICAgICAgICAgICAgYXBwSGlnaGxpZ2h0U3RvcmFnZS0+cmVzZXRM
YXN0UmFuZ2VTZWFyY2hUaW1lKCk7Ci0gICAgICAgICAgICBkb2N1bWVudC5ldmVudExvb3AoKS5x
dWV1ZVRhc2soVGFza1NvdXJjZTo6SW50ZXJuYWxBc3luY1Rhc2ssIFt3ZWFrRG9jdW1lbnQgPSBt
YWtlV2Vha1B0cihkb2N1bWVudCldIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmV2ZW50TG9vcCgp
LnF1ZXVlVGFzayhUYXNrU291cmNlOjpJbnRlcm5hbEFzeW5jVGFzaywgW3dlYWtEb2N1bWVudCA9
IFdlYWtQdHIgeyBkb2N1bWVudCB9XSB7CiAgICAgICAgICAgICAgICAgUmVmUHRyIGRvY3VtZW50
IHsgd2Vha0RvY3VtZW50LmdldCgpIH07CiAgICAgICAgICAgICAgICAgaWYgKCFkb2N1bWVudCkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzY1OSw3ICszNjU5LDcgQEAgdm9pZCBQ
YWdlOjp1cGRhdGVFbGVtZW50c1dpdGhUZXh0UmVjb2duaXRpb25SZXN1bHRzKCkKICAgICB9CiAK
ICAgICBmb3IgKGF1dG8mIFtlbGVtZW50LCByZXN1bHRdIDogZWxlbWVudHNUb1VwZGF0ZSkgewot
ICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291
cmNlOjpJbnRlcm5hbEFzeW5jVGFzaywgW3Jlc3VsdCA9IFRleHRSZWNvZ25pdGlvblJlc3VsdCB7
IHJlc3VsdCB9LCB3ZWFrRWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQuZ2V0KCkpXSB7Cisg
ICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3Vy
Y2U6OkludGVybmFsQXN5bmNUYXNrLCBbcmVzdWx0ID0gVGV4dFJlY29nbml0aW9uUmVzdWx0IHsg
cmVzdWx0IH0sIHdlYWtFbGVtZW50ID0gV2Vha1B0ciB7IGVsZW1lbnQgfV0gewogICAgICAgICAg
ICAgUmVmUHRyIGVsZW1lbnQgeyB3ZWFrRWxlbWVudC5nZXQoKSB9OwogICAgICAgICAgICAgaWYg
KCFlbGVtZW50KQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTM3MDUsNyArMzcwNSw3IEBA
IHZvaWQgUGFnZTo6c2V0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSYgc2VydmljZVdvcmtlckdsCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
ICAgICBBU1NFUlQobV9pc1NlcnZpY2VXb3JrZXJQYWdlKTsKLSAgICBtX3NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSA9IG1ha2VXZWFrUHRyKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSk7CisgICAg
bV9zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU7CiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0Nv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIu
Y3BwCmluZGV4IDBmZDk4MjVmYWM2ZTZjYjQ2ZTBlZWU1YjI2N2IyZDhiZGQ3MmY4YzMuLmJmYTFi
ODc4ZWI4MDVjZmFiMDZkMjI5N2E5ZmJkNTc3OGUzMGU0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lk
IFBvaW50ZXJMb2NrQ29udHJvbGxlcjo6cmVxdWVzdFBvaW50ZXJVbmxvY2tBbmRGb3JjZUN1cnNv
clZpc2libGUoKQogdm9pZCBQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmVsZW1lbnRXYXNSZW1vdmVk
KEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgaWYgKG1fZWxlbWVudCA9PSAmZWxlbWVudCkgewot
ICAgICAgICBtX2RvY3VtZW50T2ZSZW1vdmVkRWxlbWVudFdoaWxlV2FpdGluZ0ZvclVubG9jayA9
IG1ha2VXZWFrUHRyKG1fZWxlbWVudC0+ZG9jdW1lbnQoKSk7CisgICAgICAgIG1fZG9jdW1lbnRP
ZlJlbW92ZWRFbGVtZW50V2hpbGVXYWl0aW5nRm9yVW5sb2NrID0gbV9lbGVtZW50LT5kb2N1bWVu
dCgpOwogICAgICAgICAvLyBTZXQgZWxlbWVudCBudWxsIGltbWVkaWF0ZWx5IHRvIGJsb2NrIGFu
eSBmdXR1cmUgaW50ZXJhY3Rpb24gd2l0aCBpdAogICAgICAgICAvLyBpbmNsdWRpbmcgbW91c2Ug
ZXZlbnRzIHJlY2VpdmVkIGJlZm9yZSB0aGUgdW5sb2NrIGNvbXBsZXRlcy4KICAgICAgICAgcmVx
dWVzdFBvaW50ZXJVbmxvY2soKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFBvaW50ZXJMb2Nr
Q29udHJvbGxlcjo6ZG9jdW1lbnREZXRhY2hlZChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAg
IG1fZG9jdW1lbnRBbGxvd2VkVG9SZWxvY2tXaXRob3V0VXNlckdlc3R1cmUgPSBudWxscHRyOwog
CiAgICAgaWYgKG1fZWxlbWVudCAmJiAmbV9lbGVtZW50LT5kb2N1bWVudCgpID09ICZkb2N1bWVu
dCkgewotICAgICAgICBtX2RvY3VtZW50T2ZSZW1vdmVkRWxlbWVudFdoaWxlV2FpdGluZ0ZvclVu
bG9jayA9IG1ha2VXZWFrUHRyKG1fZWxlbWVudC0+ZG9jdW1lbnQoKSk7CisgICAgICAgIG1fZG9j
dW1lbnRPZlJlbW92ZWRFbGVtZW50V2hpbGVXYWl0aW5nRm9yVW5sb2NrID0gbV9lbGVtZW50LT5k
b2N1bWVudCgpOwogICAgICAgICByZXF1ZXN0UG9pbnRlclVubG9jaygpOwogICAgICAgICBjbGVh
ckVsZW1lbnQoKTsKICAgICB9CkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBQb2ludGVyTG9ja0Nv
bnRyb2xsZXI6OmRpZEFjcXVpcmVQb2ludGVyTG9jaygpCiAgICAgZW5xdWV1ZUV2ZW50KGV2ZW50
TmFtZXMoKS5wb2ludGVybG9ja2NoYW5nZUV2ZW50LCBtX2VsZW1lbnQuZ2V0KCkpOwogICAgIG1f
bG9ja1BlbmRpbmcgPSBmYWxzZTsKICAgICBtX2ZvcmNlQ3Vyc29yVmlzaWJsZVVwb25VbmxvY2sg
PSBmYWxzZTsKLSAgICBtX2RvY3VtZW50QWxsb3dlZFRvUmVsb2NrV2l0aG91dFVzZXJHZXN0dXJl
ID0gbWFrZVdlYWtQdHIobV9lbGVtZW50LT5kb2N1bWVudCgpKTsKKyAgICBtX2RvY3VtZW50QWxs
b3dlZFRvUmVsb2NrV2l0aG91dFVzZXJHZXN0dXJlID0gbV9lbGVtZW50LT5kb2N1bWVudCgpOwog
fQogCiB2b2lkIFBvaW50ZXJMb2NrQ29udHJvbGxlcjo6ZGlkTm90QWNxdWlyZVBvaW50ZXJMb2Nr
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAppbmRleCAxYzllZTUyZDMxNDE3ZTUzMjJiYTdhMDZjMWZl
ODYxYmI2YzM0MDQyLi40ZjIyYWVhYjQ1NThjMzlmZDQ4ZTIxMmRiZjdmYTQ2MWE3MWIzY2U0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9RdWlya3MuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc1lhaG9vTWFpbChEb2N1bWVudCYgZG9jdW1lbnQpCiAjZW5kaWYKIAogUXVpcmtzOjpRdWly
a3MoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1
bWVudCkpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogewogfQogCkBAIC0xMjI2LDcgKzEy
MjYsNyBAQCBRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQgUXVpcmtzOjp0cmlnZ2VyT3B0aW9u
YWxTdG9yYWdlQWNjZXNzUXVpcmsoRWxlbWVudCYgZQogCiAgICAgICAgIC8vIElmIHRoZSBjbGlj
ayBpcyBzeW50aGV0aWMsIHRoZSB1c2VyIGhhcyBhbHJlYWR5IGdvbmUgdGhyb3VnaCB0aGUgc3Rv
cmFnZSBhY2Nlc3MgZmxvdyBhbmQgd2Ugc2hvdWxkIG5vdCByZXF1ZXN0IGFnYWluLgogICAgICAg
ICBpZiAoaXNTdG9yYWdlQWNjZXNzUXVpcmtEb21haW5BbmRFbGVtZW50KG1fZG9jdW1lbnQtPnVy
bCgpLCBlbGVtZW50KSAmJiBpc1N5bnRoZXRpY0NsaWNrID09IElzU3ludGhldGljQ2xpY2s6Ok5v
KSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVxdWVzdFN0b3JhZ2VBY2Nlc3NBbmRIYW5kbGVDbGlj
ayhbZWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQpLCBwbGF0Zm9ybUV2ZW50LCBldmVudFR5
cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldF0gKFNob3VsZERpc3BhdGNoQ2xpY2sgc2hvdWxkRGlz
cGF0Y2hDbGljaykgbXV0YWJsZSB7CisgICAgICAgICAgICByZXR1cm4gcmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NBbmRIYW5kbGVDbGljayhbZWxlbWVudCA9IFdlYWtQdHIgeyBlbGVtZW50IH0sIHBsYXRm
b3JtRXZlbnQsIGV2ZW50VHlwZSwgZGV0YWlsLCByZWxhdGVkVGFyZ2V0XSAoU2hvdWxkRGlzcGF0
Y2hDbGljayBzaG91bGREaXNwYXRjaENsaWNrKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBS
ZWZQdHIgcHJvdGVjdGVkRWxlbWVudCB7IGVsZW1lbnQuZ2V0KCkgfTsKICAgICAgICAgICAgICAg
ICBpZiAoIXByb3RlY3RlZEVsZW1lbnQpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2YXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZhdGlvbi5jcHAKaW5kZXggMTU1YWIyM2YxM2Fj
YzVmZjM2MGNiYTc1Y2RlMjQ2YjQ2YWQ0ZDdkNi4uMjA5NmE1ODBlNjVlY2QxMTMzMGFkMDE0MTY4
NzE5N2FjMjA5OTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNl
cnZhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZhdGlvbi5j
cHAKQEAgLTM5LDcgKzM5LDcgQEAgUmVmPFJlc2l6ZU9ic2VydmF0aW9uPiBSZXNpemVPYnNlcnZh
dGlvbjo6Y3JlYXRlKEVsZW1lbnQmIHRhcmdldCwgUmVzaXplT2JzZXJ2ZXIKIH0KIAogUmVzaXpl
T2JzZXJ2YXRpb246OlJlc2l6ZU9ic2VydmF0aW9uKEVsZW1lbnQmIGVsZW1lbnQsIFJlc2l6ZU9i
c2VydmVyQm94T3B0aW9ucyBvYnNlcnZlZEJveCkKLSAgICA6IG1fdGFyZ2V0IHsgbWFrZVdlYWtQ
dHIoZWxlbWVudCkgfQorICAgIDogbV90YXJnZXQgeyBlbGVtZW50IH0KICAgICAsIG1fb2JzZXJ2
ZWRCb3ggeyBvYnNlcnZlZEJveCB9CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc2l6ZU9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2
ZXIuY3BwCmluZGV4IGIzNjMwZGQ4ODBhMGZjZjlkMThlZDkxNzQ2NzQ2OGIxNzMyNjI5MzkuLjkx
YjBkOTc1YjRjOGFhMmM1MjBjMjg4OTIwZmYxMjVjNTdjMzBiMzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUmVzaXplT2JzZXJ2ZXIuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFJlZjxSZXNpemVPYnNlcnZl
cj4gUmVzaXplT2JzZXJ2ZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxSZXNpemVP
YnNlcnZlCiB9CiAKIFJlc2l6ZU9ic2VydmVyOjpSZXNpemVPYnNlcnZlcihEb2N1bWVudCYgZG9j
dW1lbnQsIFJlZjxSZXNpemVPYnNlcnZlckNhbGxiYWNrPiYmIGNhbGxiYWNrKQotICAgIDogbV9k
b2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50
KQogICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsKIH0KQEAgLTczLDcgKzcz
LDcgQEAgdm9pZCBSZXNpemVPYnNlcnZlcjo6b2JzZXJ2ZShFbGVtZW50JiB0YXJnZXQsIGNvbnN0
IFJlc2l6ZU9ic2VydmVyT3B0aW9ucyYgb3B0aW8KICAgICB9CiAKICAgICBhdXRvJiBvYnNlcnZl
ckRhdGEgPSB0YXJnZXQuZW5zdXJlUmVzaXplT2JzZXJ2ZXJEYXRhKCk7Ci0gICAgb2JzZXJ2ZXJE
YXRhLm9ic2VydmVycy5hcHBlbmQobWFrZVdlYWtQdHIodGhpcykpOworICAgIG9ic2VydmVyRGF0
YS5vYnNlcnZlcnMuYXBwZW5kKCp0aGlzKTsKIAogICAgIG1fb2JzZXJ2YXRpb25zLmFwcGVuZChS
ZXNpemVPYnNlcnZhdGlvbjo6Y3JlYXRlKHRhcmdldCwgb3B0aW9ucy5ib3gpKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1VuZG9JdGVtLmNwcAppbmRleCBmMDRhMjBhZjI2MGE2NDE5ZjYxYzcwMWQ1Yzc4OWM2MDA0
YTZhNzUzLi5iZmI1ZDUyOTA0N2YzZTc3NmY1MjBmNWZkYTA5MDQwNThkNDhiOWEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1VuZG9JdGVtLmNwcApAQCAtNDEsOCArNDEsOCBAQCBVbmRvTWFuYWdlciogVW5kb0l0
ZW06OnVuZG9NYW5hZ2VyKCkgY29uc3QKIAogdm9pZCBVbmRvSXRlbTo6c2V0VW5kb01hbmFnZXIo
VW5kb01hbmFnZXIqIHVuZG9NYW5hZ2VyKQogewotICAgIG1fdW5kb01hbmFnZXIgPSBtYWtlV2Vh
a1B0cih1bmRvTWFuYWdlcik7Ci0gICAgbV9kb2N1bWVudCA9IG1ha2VXZWFrUHRyKHVuZG9NYW5h
Z2VyID8gJnVuZG9NYW5hZ2VyLT5kb2N1bWVudCgpIDogbnVsbHB0cik7CisgICAgbV91bmRvTWFu
YWdlciA9IHVuZG9NYW5hZ2VyOworICAgIG1fZG9jdW1lbnQgPSB1bmRvTWFuYWdlciA/ICZ1bmRv
TWFuYWdlci0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7CiB9CiAKIHZvaWQgVW5kb0l0ZW06OmludmFs
aWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1v
bml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3Bw
CmluZGV4IDlkY2ZmNjExYTAzNWUyMWYzYjBmNTViYmY3OTNmZjkyNDVkNDc2MjkuLmFlNzQ0NDk1
YjEwM2FkMzQ3MzVjOTQxNmVlZGE4ZjBmOWE3NTliYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcjo6cmVjZWl2ZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgZXZlbnQpCiAKIHZvaWQgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpzY2hlZHVsZUNh
bGxiYWNrQ2hlY2soKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChbd2Vha1BhZ2UgPSBtYWtl
V2Vha1B0cihtX3BhZ2UpXSB7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFt3ZWFrUGFnZSA9IFdl
YWtQdHIgeyBtX3BhZ2UgfV0gewogICAgICAgICBpZiAod2Vha1BhZ2UpCiAgICAgICAgICAgICB3
ZWFrUGFnZS0+c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoUmVuZGVyaW5nVXBkYXRlU3RlcDo6V2hl
ZWxFdmVudE1vbml0b3JDYWxsYmFja3MpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAKaW5kZXggOWY4YzU2NzBjMjE1OTMx
MjIzYzkxOTRmYzMzMzY1ZGJiNjlmNjkwZC4uMTM4ZmU1ODMxZDc1NjQ2NTQzOWVhZmVjNjU3ODdl
YTMxOTVlMjE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENo
YW5nZU9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hh
bmdlT2JzZXJ2ZXIuY3BwCkBAIC0yNTIsNyArMjUyLDcgQEAgdm9pZCBDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXI6OmRpZEZpbmlzaFRyYW5zaXRpb24oY29uc3QgRWxlbWVudCYgZWxlbWVudCwgQ1NTUHJv
cGUKICAgICBMT0dfV0lUSF9TVFJFQU0oQ29udGVudE9ic2VydmF0aW9uLCBzdHJlYW0gPDwgImRp
ZEZpbmlzaFRyYW5zaXRpb246IHRyYW5zaXRpb24gZmluaXNoZWQgKCIgPDwgJmVsZW1lbnQgPDwg
IikuIik7CiAKICAgICAvLyBpc0NvbnNpZGVyZWRBY3Rpb25hYmxlQ29udGVudCBtYXkgdHJpZ2dl
ciBzdHlsZSB1cGRhdGUgdGhyb3VnaCBOb2RlOjpjb21wdXRlRWRpdGFiaWxpdHkuIExldCdzIGFk
anVzdCB0aGUgc3RhdGUgaW4gdGhlIG5leHQgcnVubG9vcC4KLSAgICBjYWxsT25NYWluVGhyZWFk
KFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0YXJnZXRFbGVtZW50ID0gbWFrZVdlYWtQ
dHIoZWxlbWVudCldIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCB0YXJnZXRFbGVtZW50ID0gV2Vha1B0ciB7IGVsZW1lbnQgfV0gewogICAgICAg
ICBpZiAoIXdlYWtUaGlzIHx8ICF0YXJnZXRFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBpZiAoaXNWaXN1YWxseUhpZGRlbigqdGFyZ2V0RWxlbWVudCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmgKaW5kZXggOTc2ZDFm
MDNmZGM4NTM1ZTIzZTExMmVlOGNjYTI5MWViY2MzMzcyZC4uM2ZiNmE4M2IzNjJjMTUxNDgwZTdm
YmMyMmZjNTMyNmM3ZGU5YjM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3Mv
Q29udGVudENoYW5nZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29u
dGVudENoYW5nZU9ic2VydmVyLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCB3aWxsTm90UHJvY2VlZFdpdGhGaXhlZE9ic2VydmF0aW9uVGltZVdpbmRvdygpOwogCi0gICAg
dm9pZCBzZXRIaWRkZW5Ub3VjaFRhcmdldChFbGVtZW50JiB0YXJnZXRFbGVtZW50KSB7IG1faGlk
ZGVuVG91Y2hUYXJnZXRFbGVtZW50ID0gbWFrZVdlYWtQdHIodGFyZ2V0RWxlbWVudCk7IH0KKyAg
ICB2b2lkIHNldEhpZGRlblRvdWNoVGFyZ2V0KEVsZW1lbnQmIHRhcmdldEVsZW1lbnQpIHsgbV9o
aWRkZW5Ub3VjaFRhcmdldEVsZW1lbnQgPSB0YXJnZXRFbGVtZW50OyB9CiAgICAgdm9pZCByZXNl
dEhpZGRlblRvdWNoVGFyZ2V0KCkgeyBtX2hpZGRlblRvdWNoVGFyZ2V0RWxlbWVudCA9IHsgfTsg
fQogICAgIEVsZW1lbnQqIGhpZGRlblRvdWNoVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9oaWRk
ZW5Ub3VjaFRhcmdldEVsZW1lbnQuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IDc0OGJmYjk4OGMxNTdmYjhjNDRmZWYyYjFiZDYyYWEz
YjRlMjBkNjcuLjU3ZDVhNjQ3ZjAzMDI0MjUxY2Y5NjE2YjJjYmZhNWE0YWY3MWU5ZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTgzMiw3ICs4MzIs
NyBAQCBzdGF0aWMgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4gc2Nyb2xsYWJsZUFyZWFGb3JFdmVu
dFRhcmdldChFbGVtZW50KiBldmVudFRhcmdldAogICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQt
PmlzU2Nyb2xsVmlldygpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIG1ha2VX
ZWFrUHRyKHN0YXRpY19jYXN0PFNjcm9sbGFibGVBcmVhJj4oc3RhdGljX2Nhc3Q8U2Nyb2xsVmll
dyY+KCp3aWRnZXQpKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbGFibGVBcmVhJj4o
c3RhdGljX2Nhc3Q8U2Nyb2xsVmlldyY+KCp3aWRnZXQpKTsKIH0KICAgICAKIHN0YXRpYyBib29s
IGV2ZW50VGFyZ2V0SXNQbGF0Zm9ybVdpZGdldChFbGVtZW50KiBldmVudFRhcmdldCkKQEAgLTg1
NCw3ICs4NTQsNyBAQCBzdGF0aWMgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4gc2Nyb2xsYWJsZUFy
ZWFGb3JDb250YWluZXJOb2RlKENvbnRhaW5lck5vZGUmIGNvbgogICAgIGlmICghc2Nyb2xsYWJs
ZUFyZWFQdHIpCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgCi0gICAgcmV0dXJuIG1ha2VXZWFr
UHRyKCpzY3JvbGxhYmxlQXJlYVB0cik7CisgICAgcmV0dXJuICpzY3JvbGxhYmxlQXJlYVB0cjsK
IH0KIAogdm9pZCBFdmVudEhhbmRsZXI6OmRldGVybWluZVdoZWVsRXZlbnRUYXJnZXQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBSZWZQdHI8RWxlbWVudD4mIHdoZWVsRXZl
bnRUYXJnZXQsIFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+JiBzY3JvbGxhYmxlQXJlYSwgYm9vbCYg
aXNPdmVyV2lkZ2V0KQpAQCAtODc0LDcgKzg3NCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZXRl
cm1pbmVXaGVlbEV2ZW50VGFyZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVu
CiAgICAgICAgIGlmIChzY3JvbGxhYmxlQ29udGFpbmVyKQogICAgICAgICAgICAgc2Nyb2xsYWJs
ZUFyZWEgPSBzY3JvbGxhYmxlQXJlYUZvckNvbnRhaW5lck5vZGUoKnNjcm9sbGFibGVDb250YWlu
ZXIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzY3JvbGxhYmxlQXJlYSA9IG1ha2VXZWFr
UHRyKHN0YXRpY19jYXN0PFNjcm9sbGFibGVBcmVhJj4oKnZpZXcpKTsKKyAgICAgICAgICAgIHNj
cm9sbGFibGVBcmVhID0gc3RhdGljX2Nhc3Q8U2Nyb2xsYWJsZUFyZWEmPigqdmlldyk7CiAgICAg
fQogCiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIkV2ZW50
SGFuZGxlcjo6ZGV0ZXJtaW5lV2hlZWxFdmVudFRhcmdldCgpIC0gZXZlbnQgIiA8PCB3aGVlbEV2
ZW50IDw8ICIgZm91bmQgc2Nyb2xsYWJsZUFyZWEgIiA8PCBWYWx1ZU9yTnVsbChzY3JvbGxhYmxl
QXJlYS5nZXQoKSkgPDwgIiwgbGF0Y2hpbmcgc3RhdGUgaXMgIiA8PCBwYWdlLT5zY3JvbGxMYXRj
aGluZ0NvbnRyb2xsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9J
bWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvSW1h
Z2VPdmVybGF5Q29udHJvbGxlck1hYy5tbQppbmRleCBlNjdlZTliMGE2ZDc3NWFmMTFiMjMxYjYy
ZjQ4OTZmYTBhMTkwOWQxLi4yMmNkMzI3MzllYmYwODNkMjVmYzhiYzQxMzRlMjkwMDBjN2M4NTk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9s
bGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRy
b2xsZXJNYWMubW0KQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVy
Ojp1cGRhdGVEYXRhRGV0ZWN0b3JIaWdobGlnaHRzKGNvbnN0IEhUTUxFbGVtZW50JiBvdmUKICNl
bHNlCiAgICAgICAgIGF1dG8gaGlnaGxpZ2h0ID0gYWRvcHRDRihQQUw6OnNvZnRMaW5rX0RhdGFE
ZXRlY3RvcnNfRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxl
QW5kRGlyZWN0aW9uKG51bGxwdHIsICZlbGVtZW50Qm91bmRzLCAxLCBtYWluRnJhbWVWaWV3LT52
aXNpYmxlQ29udGVudFJlY3QoKSwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwgRERI
aWdobGlnaHRTdHlsZVN0YW5kYXJkSWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5h
dHVyYWwsIE5PLCBZRVMpKTsKICNlbmRpZgotICAgICAgICBtX2RhdGFEZXRlY3RvckNvbnRhaW5l
cnNBbmRIaWdobGlnaHRzLmFwcGVuZCh7IG1ha2VXZWFrUHRyKGVsZW1lbnQuZ2V0KCkpLCBEYXRh
RGV0ZWN0b3JIaWdobGlnaHQ6OmNyZWF0ZUZvckltYWdlT3ZlcmxheSgqbV9wYWdlLCAqdGhpcywg
V1RGTW92ZShoaWdobGlnaHQpLCAqbWFrZVJhbmdlU2VsZWN0aW5nTm9kZShlbGVtZW50LmdldCgp
KSkgfSk7CisgICAgICAgIG1fZGF0YURldGVjdG9yQ29udGFpbmVyc0FuZEhpZ2hsaWdodHMuYXBw
ZW5kKHsgZWxlbWVudCwgRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpjcmVhdGVGb3JJbWFnZU92ZXJs
YXkoKm1fcGFnZSwgKnRoaXMsIFdURk1vdmUoaGlnaGxpZ2h0KSwgKm1ha2VSYW5nZVNlbGVjdGlu
Z05vZGUoZWxlbWVudC5nZXQoKSkpIH0pOwogICAgIH0KIH0KIApAQCAtMjIzLDcgKzIyMyw3IEBA
IHZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6ZWxlbWVudFVuZGVyTW91c2VEaWRDaGFuZ2Uo
RnJhbWUmIGZyYW1lLCBFbGVtZW50KiBlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBt
X2hvc3RFbGVtZW50Rm9yRGF0YURldGVjdG9ycyA9IG1ha2VXZWFrUHRyKGltYWdlT3ZlcmxheUhv
c3QuZ2V0KCkpOworICAgIG1faG9zdEVsZW1lbnRGb3JEYXRhRGV0ZWN0b3JzID0gaW1hZ2VPdmVy
bGF5SG9zdDsKICAgICBpbnN0YWxsUGFnZU92ZXJsYXlJZk5lZWRlZCgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ0NvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdDb250
cm9sbGVyLmNwcAppbmRleCA0NjdjYzVmMjE4ZmU4ODM1MzY2NTg3ZmZkMDY4NDQ0YzVlNzhiNzFh
Li40Yjc0YmY0NzkwOTE0OTk3YjhlNDZlZjJjZTc3YjU1ODM4ZTQwMjI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJv
bGxlci5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lkIFNjcm9sbExhdGNoaW5nQ29udHJvbGxl
cjo6dXBkYXRlQW5kRmV0Y2hMYXRjaGluZ1N0YXRlRm9yRnJhbWUoRnJhbWUmIGZyYW1lLAogICAg
ICAgICBpZiAoIWhhc1N0YXRlRm9yRnJhbWUoZnJhbWUpKSB7CiAgICAgICAgICAgICBGcmFtZVN0
YXRlIHN0YXRlOwogICAgICAgICAgICAgc3RhdGUuZnJhbWUgPSAmZnJhbWU7Ci0gICAgICAgICAg
ICBzdGF0ZS53aGVlbEV2ZW50RWxlbWVudCA9IG1ha2VXZWFrUHRyKGxhdGNoZWRFbGVtZW50Lmdl
dCgpKTsKKyAgICAgICAgICAgIHN0YXRlLndoZWVsRXZlbnRFbGVtZW50ID0gbGF0Y2hlZEVsZW1l
bnQ7CiAgICAgICAgICAgICBpZiAoc2hvdWxkTGF0Y2hUb1Njcm9sbGFibGVBcmVhKGZyYW1lLCBz
Y3JvbGxhYmxlQXJlYS5nZXQoKSwgbV9jdW11bGF0aXZlRXZlbnREZWx0YSkpCiAgICAgICAgICAg
ICAgICAgc3RhdGUuc2Nyb2xsYWJsZUFyZWEgPSBzY3JvbGxhYmxlQXJlYTsKICAgICAgICAgICAg
IHN0YXRlLmlzT3ZlcldpZGdldCA9IGlzT3ZlcldpZGdldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL05vd1BsYXlpbmdNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL05vd1BsYXlpbmdNYW5hZ2VyLmNwcAppbmRleCBhMTU4N2Y1ZmYyMjRiMThmMWM4ZWM3
NmVkMGNjZThmNGM2N2ZiZmU2Li4zMjAwZGUyM2I1NmM5NDFkZjQwYzFhZTJjYzVjMmQ1NDVkMGIx
MjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ob3dQbGF5aW5nTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTm93UGxheWluZ01hbmFnZXIuY3Bw
CkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgTm93UGxheWluZ01hbmFnZXI6OmRpZFJlY2VpdmVSZW1v
dGVDb250cm9sQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtCiAKIHZvaWQgTm93UGxh
eWluZ01hbmFnZXI6OmFkZENsaWVudChDbGllbnQmIGNsaWVudCkKIHsKLSAgICBtX2NsaWVudCA9
IG1ha2VXZWFrUHRyKGNsaWVudCk7CisgICAgbV9jbGllbnQgPSBjbGllbnQ7CiAgICAgZW5zdXJl
UmVtb3RlQ29tbWFuZExpc3RlbmVyQ3JlYXRlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QcmV2aWV3Q29udmVydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3BwCmluZGV4IGRiYWNhMDRmYjA2ODI3MGM0YTQ3MWYx
OWIzMjE5MDUxYzFlZjAyZWIuLjRjYjMzMDFlN2RmNzA3MWM1ZGQ5ZmM1OWJjNTcxODVjNGU5MTQ3
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3BwCkBA
IC0xMzQsNyArMTM0LDcgQEAgYm9vbCBQcmV2aWV3Q29udmVydGVyOjpoYXNDbGllbnQoUHJldmll
d0NvbnZlcnRlckNsaWVudCYgY2xpZW50KSBjb25zdAogdm9pZCBQcmV2aWV3Q29udmVydGVyOjph
ZGRDbGllbnQoUHJldmlld0NvbnZlcnRlckNsaWVudCYgY2xpZW50KQogewogICAgIEFTU0VSVCgh
aGFzQ2xpZW50KGNsaWVudCkpOwotICAgIG1fY2xpZW50cy5hcHBlbmQobWFrZVdlYWtQdHIoY2xp
ZW50KSk7CisgICAgbV9jbGllbnRzLmFwcGVuZChjbGllbnQpOwogICAgIGRpZEFkZENsaWVudChj
bGllbnQpOwogfQogCkBAIC0xNzUsNyArMTc1LDcgQEAgdm9pZCBQcmV2aWV3Q29udmVydGVyOjpp
dGVyYXRlQ2xpZW50cyhUJiYgY2FsbGJhY2spCiAKIHZvaWQgUHJldmlld0NvbnZlcnRlcjo6ZGlk
QWRkQ2xpZW50KFByZXZpZXdDb252ZXJ0ZXJDbGllbnQmIGNsaWVudCkKIHsKLSAgICBSdW5Mb29w
OjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
LCB3ZWFrQ2xpZW50ID0gbWFrZVdlYWtQdHIoY2xpZW50KV0oKSB7CisgICAgUnVuTG9vcDo6Y3Vy
cmVudCgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgd2Vh
a0NsaWVudCA9IFdlYWtQdHIgeyBjbGllbnQgfV0oKSB7CiAgICAgICAgIGlmIChhdXRvIGNsaWVu
dCA9IHdlYWtDbGllbnQuZ2V0KCkpCiAgICAgICAgICAgICByZXBsYXlUb0NsaWVudCgqY2xpZW50
KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApp
bmRleCA4YzMxZDFjMDdiNjhjODk2MGE2MTk2NjEyM2U3MTY1MGViOWI4YTkyLi45MzdkOWFjN2I4
OWFiN2IzNzRmM2VhOTZkM2JiNTFiMDAwY2M2NTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0b3IuY3BwCkBAIC0zNjcsNyArMzY3LDcgQEAgZmxvYXQgU2Nyb2xsQW5p
bWF0b3I6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CiAKIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxp
bmdFZmZlY3RzQ29udHJvbGxlclRpbWVyPiBTY3JvbGxBbmltYXRvcjo6Y3JlYXRlVGltZXIoRnVu
Y3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogewotICAgIHJldHVybiBXVEY6Om1ha2VVbmlxdWU8
U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXJUaW1lcj4oUnVuTG9vcDo6Y3VycmVudCgpLCBbZnVu
Y3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKSwgd2Vha1Njcm9sbGFibGVBcmVhID0gbWFrZVdlYWtQ
dHIobV9zY3JvbGxhYmxlQXJlYSldIHsKKyAgICByZXR1cm4gV1RGOjptYWtlVW5pcXVlPFNjcm9s
bGluZ0VmZmVjdHNDb250cm9sbGVyVGltZXI+KFJ1bkxvb3A6OmN1cnJlbnQoKSwgW2Z1bmN0aW9u
ID0gV1RGTW92ZShmdW5jdGlvbiksIHdlYWtTY3JvbGxhYmxlQXJlYSA9IFdlYWtQdHIgeyBtX3Nj
cm9sbGFibGVBcmVhIH1dIHsKICAgICAgICAgaWYgKCF3ZWFrU2Nyb2xsYWJsZUFyZWEpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGZ1bmN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbFZpZXcuY3BwCmluZGV4IDIzM2QyMmY3MjUyNzM2YjIyNTczZGJmZTRkNTk3NTYwZTE5
YjczZmIuLjQ4NTcwOTk0OWYwMTZiMDdlZDQ4MGIxN2ZkNDg1MjA1YzFhNDg2Y2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC0xNTY5LDcgKzE1NjksNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8U2Nyb2xsVmlldzo6UHJvaGliaXRTY3JvbGxpbmdXaGVuQ2hhbmdpbmdDb250
ZW50U2l6ZUZvclNjb3BlPiBTYwogfQogCiBTY3JvbGxWaWV3OjpQcm9oaWJpdFNjcm9sbGluZ1do
ZW5DaGFuZ2luZ0NvbnRlbnRTaXplRm9yU2NvcGU6OlByb2hpYml0U2Nyb2xsaW5nV2hlbkNoYW5n
aW5nQ29udGVudFNpemVGb3JTY29wZShTY3JvbGxWaWV3JiBzY3JvbGxWaWV3KQotICAgIDogbV9z
Y3JvbGxWaWV3KG1ha2VXZWFrUHRyKHNjcm9sbFZpZXcpKQorICAgIDogbV9zY3JvbGxWaWV3KHNj
cm9sbFZpZXcpCiB7CiAgICAgc2Nyb2xsVmlldy5pbmNyZW1lbnRQcm9oaWJpdHNTY3JvbGxpbmdX
aGVuQ2hhbmdpbmdDb250ZW50U2l6ZUNvdW50KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9XaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0
LmNwcAppbmRleCAzYjRhMmFlNWM4YjJkYTE0N2Q4ZmU4MmFhNjBkYzNhZjEwYTJmNTlkLi4xNWQ2
YTg0MDM3MGUxNjM0NmY0NzAzMTA2MjZjYzQ5Y2JjMGE0YTJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1dpZGdldC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBXaWRnZXQ6OnNldFBhcmVudChTY3Jv
bGxWaWV3KiB2aWV3KQogICAgIEFTU0VSVCghdmlldyB8fCAhbV9wYXJlbnQpOwogICAgIGlmICgh
dmlldyB8fCAhdmlldy0+aXNWaXNpYmxlKCkpCiAgICAgICAgIHNldFBhcmVudFZpc2libGUoZmFs
c2UpOwotICAgIG1fcGFyZW50ID0gbWFrZVdlYWtQdHIodmlldyk7CisgICAgbV9wYXJlbnQgPSB2
aWV3OwogICAgIGlmICh2aWV3ICYmIHZpZXctPmlzVmlzaWJsZSgpKQogICAgICAgICBzZXRQYXJl
bnRWaXNpYmxlKHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXggYWYwNDFh
NGFiZmZlMjU5ZGIwYTdkMzQ5ZmFiODNjZjFlOTkwZDE2OC4uMDNhZDQ2NjJmMmVjOWMwZWUxNzU2
OWQyNDRlNDQzNzM3ZTY4OTdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0xNzYs
NyArMTc2LDcgQEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmVuZEludGVycnVw
dGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXIKIHZvaWQgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjphZGRTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQog
ewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgc2Vzc2lvbi5sb2dJZGVudGlmaWVyKCkp
OwotICAgIG1fc2Vzc2lvbnMuYXBwZW5kKG1ha2VXZWFrUHRyKHNlc3Npb24pKTsKKyAgICBtX3Nl
c3Npb25zLmFwcGVuZChzZXNzaW9uKTsKICAgICBpZiAobV9pbnRlcnJ1cHRlZCkKICAgICAgICAg
c2Vzc2lvbi5zZXRTdGF0ZShQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0ZWQpOwogCkBA
IC0yODUsNyArMjg1LDcgQEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Np
b25XaWxsRW5kUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mIHMKICAgICAgICAgcmV0dXJu
OwogCiAgICAgbV9zZXNzaW9ucy5yZW1vdmUocGF1c2luZ1Nlc3Npb25JbmRleCk7Ci0gICAgbV9z
ZXNzaW9ucy5hcHBlbmQobWFrZVdlYWtQdHIoc2Vzc2lvbikpOworICAgIG1fc2Vzc2lvbnMuYXBw
ZW5kKHNlc3Npb24pOwogCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAic2Vzc2lvbiBt
b3ZlZCBmcm9tIGluZGV4ICIsIHBhdXNpbmdTZXNzaW9uSW5kZXgsICIgdG8gIiwgbGFzdFBsYXlp
bmdTZXNzaW9uSW5kZXgpOwogfQpAQCAtMzA4LDcgKzMwOCw3IEBAIHZvaWQgUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjpzZXRDdXJyZW50U2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYg
c2Vzc2lvCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc2Vzc2lvbnMucmVtb3ZlKGluZGV4KTsK
LSAgICBtX3Nlc3Npb25zLmluc2VydCgwLCBtYWtlV2Vha1B0cihzZXNzaW9uKSk7CisgICAgbV9z
ZXNzaW9ucy5pbnNlcnQoMCwgc2Vzc2lvbik7CiAgICAgCiAgICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSLCAic2Vzc2lvbiBtb3ZlZCBmcm9tIGluZGV4ICIsIGluZGV4LCAiIHRvIDAiKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vz
c2lvbk1hbmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQppbmRleCA4YjMwNGFjMmY0M2I3MjM3NjZkYTAw
ODE0ZTQ4NDAxODg0Y2EwZDhlLi5iYjc4OGFmYTFlOTFmOWE0ZDNhYjM2ZTJhMGMwODEyYzk0ZTE4
NzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCkBAIC0yNDUsNyArMjQ1LDcgQEAg
dm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsRW5kUGxheWJhY2soUGxh
dGZvcm1NZWRpYVNlc3Npb24mIHNlc3MKIHsKICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNlc3Npb25XaWxsRW5kUGxheWJhY2soc2Vzc2lvbiwgZGVsYXlDYWxsaW5nVXBkYXRlTm93
UGxheWluZyk7CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrU2Vzc2lvbiA9IG1ha2VXZWFr
UHRyKHNlc3Npb24pXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1Nlc3Npb24gPSBXZWFr
UHRyIHsgc2Vzc2lvbiB9XSB7CiAgICAgICAgIGlmICh3ZWFrU2Vzc2lvbikKICAgICAgICAgICAg
IHdlYWtTZXNzaW9uLT51cGRhdGVNZWRpYVVzYWdlSWZDaGFuZ2VkKCk7CiAgICAgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL01lZGlhU2Vzc2lvbk1h
bmFnZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvTWVkaWFT
ZXNzaW9uTWFuYWdlckdMaWIuY3BwCmluZGV4IDU1ZmE5ODU3NmI1NzY2MWViMWZkMDgxYzk4MDA2
ZDdhMzMxNmVlODAuLmE4NGEzMzBlYzRiYTg2MGU4YTdhOTJmNTAyMTE4NjJiZTQ2MDJiMWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvTWVkaWFTZXNzaW9u
TWFuYWdlckdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIv
TWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuY3BwCkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBNZWRp
YVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYgc2Vzc2kKIHsKICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Np
b25XaWxsRW5kUGxheWJhY2soc2Vzc2lvbiwgZGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyk7
CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrU2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Np
b24pXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1Nlc3Npb24gPSBXZWFrUHRyIHsgc2Vz
c2lvbiB9XSB7CiAgICAgICAgIGlmICh3ZWFrU2Vzc2lvbikKICAgICAgICAgICAgIHdlYWtTZXNz
aW9uLT51cGRhdGVNZWRpYVVzYWdlSWZDaGFuZ2VkKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRp
b0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IGM0Nzk2MDYzYzc1NzEzNzRjYzViNDYxMjE2
YjgwY2Y4MmUzOTE2ZTAuLmViYjFlZTMzZjkzZTAzZjIxOTg1MWJjZWY5ZWI4N2NjZTRmN2ZiMjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRp
b0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBAIC0zNDEsNyArMzQx
LDcgQEAgdm9pZCBBdWRpb0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRpb24oKQog
ICAgICAgICAgICAgcmVhZGVyLmhhbmRsZU1lc3NhZ2UobWVzc2FnZSk7CiAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgR1JlZlB0cjxHc3RNZXNzYWdlPiBwcm90ZWN0TWVzc2FnZShtZXNzYWdl
KTsKLSAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cihyZWFkZXIpOworICAg
ICAgICAgICAgV2Vha1B0ciB3ZWFrVGhpcyB7IHJlYWRlciB9OwogICAgICAgICAgICAgcmVhZGVy
Lm1fcnVuTG9vcC5kaXNwYXRjaChbd2Vha1RoaXMsIHByb3RlY3RNZXNzYWdlXSB7CiAgICAgICAg
ICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+aGFu
ZGxlTWVzc2FnZShwcm90ZWN0TWVzc2FnZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3Vy
Y2VQcm92aWRlckdTdHJlYW1lci5jcHAKaW5kZXggM2RlMjNjZjk3N2ZmMDMyZDQ1MDgwYzVjY2Uw
MTFlNDVhMTE1YzY5OS4uNGQwNmFhNzczMTNmYjc1NmFjMDc1NWM4NTllYWI1NzVhMzFmNzVjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
U291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcApAQCAtMjA4
LDcgKzIwOCw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lcjo6c2V0Q2xpZW50
KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqIG5ld0NsaWVuCiAKICAgICBHU1RfREVCVUcoIlNl
dHRpbmcgdXAgY2xpZW50ICVwIChwcmV2aW91czogJXApIiwgbmV3Q2xpZW50LCBjbGllbnQoKSk7
CiAgICAgYm9vbCBwcmV2aW91c0NsaWVudFdhc1ZhbGlkID0gISFtX2NsaWVudDsKLSAgICBtX2Ns
aWVudCA9IG1ha2VXZWFrUHRyKG5ld0NsaWVudCk7CisgICAgbV9jbGllbnQgPSBuZXdDbGllbnQ7
CiAKICAgICAvLyBUaGUgdm9sdW1lIGVsZW1lbnQgaXMgdXNlZCB0byBtdXRlIGF1ZGlvIHBsYXli
YWNrIHRvd2FyZHMgdGhlCiAgICAgLy8gYXV0b2F1ZGlvc2luay4gVGhpcyBpcyBuZWVkZWQgdG8g
YXZvaWQgZG91YmxlIHBsYXliYWNrIG9mIGF1ZGlvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91dGluZ0FyYml0cmF0b3IubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91dGluZ0FyYml0cmF0b3IubW0KaW5k
ZXggZGQ5NDVlYzgwN2U2NzNkMDFmMjdjMTJhMjUxNjcwOTU4ODM1Yjg5My4uZjIyMTg2NWM0ZjE3
YjBiZDFhZWRlM2JhYzg0ODg5MDE5OTkzNjI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9yLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5tbQpA
QCAtNTUsNyArNTUsNyBAQCB2b2lkIFNoYXJlZFJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRp
bmdBcmJpdHJhdGlvbkZvclRva2VuKGNvbnN0IFRva2VuJiB0b2tlbgogICAgIEFTU0VSVCghaXNJ
blJvdXRpbmdBcmJpdHJhdGlvbkZvclRva2VuKHRva2VuKSk7CiAKICAgICBpZiAobV9zZXR1cEFy
Yml0cmF0aW9uT25nb2luZykgewotICAgICAgICBtX2VucXVldWVkQ2FsbGJhY2tzLmFwcGVuZChb
dGhpcywgd2Vha1Rva2VuID0gbWFrZVdlYWtQdHIodG9rZW4pLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXSAoUm91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIERlZmF1bHRSb3V0ZUNo
YW5nZWQgcm91dGVDaGFuZ2VkKSBtdXRhYmxlIHsKKyAgICAgICAgbV9lbnF1ZXVlZENhbGxiYWNr
cy5hcHBlbmQoW3RoaXMsIHdlYWtUb2tlbiA9IFdlYWtQdHIgeyB0b2tlbiB9LCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSAoUm91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIERlZmF1
bHRSb3V0ZUNoYW5nZWQgcm91dGVDaGFuZ2VkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChl
cnJvciA9PSBSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6Tm9uZSAmJiB3ZWFrVG9rZW4pCiAgICAg
ICAgICAgICAgICAgbV90b2tlbnMuYWRkKCp3ZWFrVG9rZW4pOwogCkBAIC05Myw3ICs5Myw3IEBA
IHZvaWQgU2hhcmVkUm91dGluZ0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9y
VG9rZW4oY29uc3QgVG9rZW4mIHRva2VuCiAgICAgfQogCiAgICAgbV9zZXR1cEFyYml0cmF0aW9u
T25nb2luZyA9IHRydWU7Ci0gICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5hcHBlbmQoW3RoaXMsIHdl
YWtUb2tlbiA9IG1ha2VXZWFrUHRyKHRva2VuKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0gKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkIHJv
dXRlQ2hhbmdlZCkgbXV0YWJsZSB7CisgICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5hcHBlbmQoW3Ro
aXMsIHdlYWtUb2tlbiA9IFdlYWtQdHIgeyB0b2tlbiB9LCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXSAoUm91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIERlZmF1bHRSb3V0ZUNoYW5n
ZWQgcm91dGVDaGFuZ2VkKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGVycm9yID09IFJvdXRpbmdB
cmJpdHJhdGlvbkVycm9yOjpOb25lICYmIHdlYWtUb2tlbikKICAgICAgICAgICAgIG1fdG9rZW5z
LmFkZCgqd2Vha1Rva2VuKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCmluZGV4IDc0M2M2NWQyYmMzMWU2NjcxNTFjNzZmZTIy
ODRiYjBmZWYyMDA4ODkuLmZjN2EzMWEyYTE2OTQ3MjE3MTExNjc5NmJlOTQzNmMwNjMxYTU2Yzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Q
cm94eS5jcHAKQEAgLTM5OCw3ICszOTgsNyBAQCB2b2lkIENETUluc3RhbmNlUHJveHk6OnVucmVm
QWxsS2V5c0Zyb20oY29uc3QgS2V5U3RvcmUmIGtleVN0b3JlKQogfQogCiBDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eTo6Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHkoQ0RNSW5zdGFuY2VQcm94eSYgaW5z
dGFuY2UpCi0gICAgOiBtX2luc3RhbmNlKG1ha2VXZWFrUHRyKGluc3RhbmNlKSkKKyAgICA6IG1f
aW5zdGFuY2UoaW5zdGFuY2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcApp
bmRleCBlZTU0YjAyYWQ3MTZkZTk5OTZmM2U0MGM4YTVkOTM1ZjY4M2M3ZDgxLi5kZDM0NTdiZmRl
OGM5MjE4NzdkZDdiOTgyZTk5MjFmY2MwZmVkMmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJL
ZXkuY3BwCkBAIC00ODUsNyArNDg1LDcgQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktl
eTo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgTGljZW5zZVQKICAgICBh
dXRvIGRpc3BhdGNoQ2FsbGJhY2sgPQogICAgICAgICBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRo
aXMgfSwgJmNhbGxiYWNrXShib29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0aW9uYWw8S2V5
U3RhdHVzVmVjdG9yPiYmIGNoYW5nZWRLZXlzLCBTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSB7CiAg
ICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKAotICAgICAgICAgICAgICAgIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp3ZWFrVGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHNl
c3Npb25XYXNDbG9zZWQsIGNoYW5nZWRLZXlzID0gV1RGTW92ZShjaGFuZ2VkS2V5cyksIHN1Y2Nl
ZWRlZF0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgW3dlYWtUaGlzID0gV2Vha1B0ciB7
ICp3ZWFrVGhpcyB9LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBzZXNzaW9uV2FzQ2xv
c2VkLCBjaGFuZ2VkS2V5cyA9IFdURk1vdmUoY2hhbmdlZEtleXMpLCBzdWNjZWVkZWRdICgpIG11
dGFibGUgewogICAgICAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01NjgsNyArNTY4LDcgQEAgdm9pZCBDRE1JbnN0YW5j
ZVNlc3Npb25DbGVhcktleTo6cmVtb3ZlU2Vzc2lvbkRhdGEoY29uc3QgU3RyaW5nJiBzZXNzaW9u
SWQsIExpY2UKICAgICBhdXRvIGRpc3BhdGNoQ2FsbGJhY2sgPQogICAgICAgICBbd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgJmNhbGxiYWNrXShLZXlTdGF0dXNWZWN0b3ImJiBrZXlTdGF0
dXNWZWN0b3IsIHN0ZDo6b3B0aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYgbWVzc2FnZSwgU3Vj
Y2Vzc1ZhbHVlIHN1Y2Nlc3MpIHsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoCi0gICAg
ICAgICAgICAgICAgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKndlYWtUaGlzKSwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKSwga2V5U3RhdHVzVmVjdG9yID0gV1RGTW92ZShrZXlTdGF0dXNW
ZWN0b3IpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgc3VjY2Vzc10oKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgICAgICBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKndlYWtUaGlzIH0sIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayksIGtleVN0YXR1c1ZlY3RvciA9IFdURk1vdmUoa2V5U3Rh
dHVzVmVjdG9yKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHN1Y2Nlc3NdKCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCmluZGV4IGM1MjI3ZTVjNzA0NDE5Nzc4ZDViMjhhNjkx
MWEwNDljZTc5NGI0YjYuLjFkZTk4YTdmYmVjOTFlZmEwMzY0NDkwYjdiZjMxNzQwYjhhNzMwYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFj
a1ByaXZhdGUuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEF1ZGlvVHJhY2tQcml2YXRlKTsKICAgICB9CiAKLSAgICB2b2lkIHNldENsaWVu
dChBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50ID0gbWFrZVdlYWtQ
dHIoY2xpZW50KTsgfQorICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50
JiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICB2b2lkIGNsZWFyQ2xpZW50KCkg
eyBtX2NsaWVudCA9IG51bGxwdHI7IH0KICAgICBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xp
ZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jbGllbnQuZ2V0KCk7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZS5oCmluZGV4IGY3Y2ZmN2Q1Y2MzNGI4NTk1ZWQ1ZWY3YTVhMTljM2UwZmJiMDg3YzEu
LjE5ZmJmMTE0MDA2MTZjYzU2YWRmZDgzZDNjMjUyZTFiMzU5MThhYzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkluYmFuZFRleHRU
cmFja1ByaXZhdGUoKSA9IGRlZmF1bHQ7CiAKICAgICBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xp
ZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCYg
Y2xpZW50KSB7IG1fY2xpZW50ID0gbWFrZVdlYWtQdHIoY2xpZW50KTsgfQorICAgIHZpcnR1YWwg
dm9pZCBzZXRDbGllbnQoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCYgY2xpZW50KSB7IG1f
Y2xpZW50ID0gY2xpZW50OyB9CiAgICAgdm9pZCBjbGVhckNsaWVudCgpIHsgbV9jbGllbnQgPSBu
dWxscHRyOyB9CiAKICAgICBlbnVtIGNsYXNzIE1vZGUgOiB1aW50OF90IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCmluZGV4
IDA5ZmNlOGI4NWRkZDQ2MDk0MWI0OWY3MGE5ODRkNjRkZWQ2ODAyZjUuLjA1NDBjYWI0ZjU3NzQw
NDA3ZDY5OGVkOTUzZTk5MjE3YWViZjM5ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaApAQCAtMzUsNyArMzUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlIDogcHVibGljIFRy
YWNrUHJpdmF0ZUJhc2UgewogcHVibGljOgotICAgIHZvaWQgc2V0Q2xpZW50KFZpZGVvVHJhY2tQ
cml2YXRlQ2xpZW50JiBjbGllbnQpIHsgbV9jbGllbnQgPSBtYWtlV2Vha1B0cihjbGllbnQpOyB9
CisgICAgdm9pZCBzZXRDbGllbnQoVmlkZW9UcmFja1ByaXZhdGVDbGllbnQmIGNsaWVudCkgeyBt
X2NsaWVudCA9IGNsaWVudDsgfQogICAgIHZvaWQgY2xlYXJDbGllbnQoKSB7IG1fY2xpZW50ID0g
bnVsbHB0cjsgfQogICAgIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggMzc4NmM3MTE1NDMy
MWU0ZWI5ZWY3YmEwMTE4MDE5ZGEyYjYwOTI3Mi4uYzliNGY0MGVmODVjYmM4NWVjNTEwNjgzYjgx
NWRiZWI2N2RmNmY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY7CiBjbGFzcyBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGOwogCi0vLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9yIHRo
ZSBXZWFrUHRyRmFjdG9yeSBzaW5jZSB3ZSBjYWxsIG1ha2VXZWFrUHRyKCkgZnJvbSBhbm90aGVy
IHRocmVhZC4KKy8vIFVzZSBlYWdlciBpbml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQdHJGYWN0
b3J5IHNpbmNlIHdlIGNvbnN0cnVjdCBXZWFrUHRycyBvbiBhbm90aGVyIHRocmVhZC4KIGNsYXNz
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24sIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRp
b246OkVhZ2VyPiwgcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIEFW
RkluYmFuZFRyYWNrUGFyZW50CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBwcml2
YXRlIExvZ2dlckhlbHBlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5oCmluZGV4IGE0NjFjZDE3OTM3ODMwYTRkNDlhZGQ0MDE4YjFkODg2YzQxNzVmMGMuLjg4
ZmYyNzVhNDgyYzgzNDA2OTIzYzk0ODljZWM4YTc0YzY1Y2E5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0
ZToKIH07CiAKIGlubGluZSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcihDbGllbnQmIGNsaWVudCkKLSAgICA6IG1fY2xpZW50KG1ha2VXZWFrUHRyKGNs
aWVudCkpCisgICAgOiBtX2NsaWVudChjbGllbnQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVy
VGFyZ2V0UGlja2VyLm1tCmluZGV4IGE4MGI2OTAzNTg0ZTFhNzVlNmU0MzdhMDJiODljZGUyZjk4
MzQ1NGQuLjk0NWM3ZDE2MDNjODZlNzU3Y2RkZGQwY2M1MjIzZTY0YTcwMjI0NGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRwdXREZXZpY2VN
ZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbQpAQCAtNTksNyArNTksNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OkFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIoQVZQbGF5YmFja1RhcmdldFBp
Y2tlcjo6Q2xpZW50JiBjbGllbnQpCiAgICAgOiBBVlBsYXliYWNrVGFyZ2V0UGlja2VyKGNsaWVu
dCkKLSAgICAsIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZShhZG9wdE5TKFtb
V2ViQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlciBhbGxvY10gaW5pdFdpdGhDYWxs
YmFjazptYWtlV2Vha1B0cigqdGhpcyldKSkKKyAgICAsIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhl
bHBlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazoqdGhpc10pKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlBs
YXliYWNrVGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVlBsYXliYWNrVGFyZ2V0UGlja2VyLmgKaW5kZXggMTY5NDdkMjRh
YzYzNDVhMTAwOWMyYTZlNDMxMmRjMmE5OTZiMGEyOS4uMDdmYWYyYzcxMDg0MTAzYWMzZjQ3OTI5
YWFlNmY4ZTk1MjRmYWVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZQbGF5YmFja1RhcmdldFBpY2tlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUGxheWJh
Y2tUYXJnZXRQaWNrZXIuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAg
IGV4cGxpY2l0IEFWUGxheWJhY2tUYXJnZXRQaWNrZXIoQ2xpZW50JiBjbGllbnQpCi0gICAgICAg
IDogbV9jbGllbnQobWFrZVdlYWtQdHIoJmNsaWVudCkpCisgICAgICAgIDogbV9jbGllbnQoY2xp
ZW50KQogICAgIHsKICAgICB9CiAgICAgdmlydHVhbCB+QVZQbGF5YmFja1RhcmdldFBpY2tlcigp
ID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBp
Y2tlclZpZXdUYXJnZXRQaWNrZXIubW0KaW5kZXggMjliZWIwYzRjYzIwZWIxYjgxNWE1YzJhZGVl
MjM2NjQ5OGE5NGQxOS4uZGI4ODI1MTFiMWFkZWI2MWY3MTk5ZWI5MjU0Yjg4MzIyZTg5YTRlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdU
YXJnZXRQaWNrZXIubW0KQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBBVlJvdXRlUGlja2VyVmlld1Rh
cmdldFBpY2tlcjo6aXNBdmFpbGFibGUoKQogCiBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tl
cjo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIoQVZQbGF5YmFja1RhcmdldFBpY2tlcjo6
Q2xpZW50JiBjbGllbnQpCiAgICAgOiBBVlBsYXliYWNrVGFyZ2V0UGlja2VyKGNsaWVudCkKLSAg
ICAsIG1fcm91dGVQaWNrZXJWaWV3RGVsZWdhdGUoYWRvcHROUyhbW1dlYkFWUm91dGVQaWNrZXJW
aWV3SGVscGVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOm1ha2VXZWFrUHRyKCp0aGlzKV0pKQor
ICAgICwgbV9yb3V0ZVBpY2tlclZpZXdEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQVZSb3V0ZVBpY2tl
clZpZXdIZWxwZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6KnRoaXNdKSkKIHsKICAgICBBU1NF
UlQoaXNBdmFpbGFibGUoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCmluZGV4IDY5NTNj
OWYxZjFiNTg3MWRhNWY4ZDQ2NWRlZWZkY2ViMDlmNWU0ZmEuLmU5ZjJhYTMzNWRiOWFjNTgzOTUx
NWQ2MjVhMGRmMmZmNDA3M2U5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCkBAIC00MjAs
NyArNDIwLDcgQEAgdm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2V0
U3RvcmFnZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHN0b3IKIFJlZlB0cjxDRE1JbnN0YW5jZVNl
c3Npb24+IENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpjcmVhdGVTZXNzaW9u
KCkKIHsKICAgICBhdXRvIHNlc3Npb24gPSBhZG9wdFJlZigqbmV3IENETUluc3RhbmNlU2Vzc2lv
bkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQygqdGhpcykpOwotICAgIG1fc2Vzc2lvbnMuYXBwZW5k
KG1ha2VXZWFrUHRyKHNlc3Npb24uZ2V0KCkpKTsKKyAgICBtX3Nlc3Npb25zLmFwcGVuZChzZXNz
aW9uKTsKICAgICByZXR1cm4gc2Vzc2lvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBmN2M4NjZjNjJjZGIw
NWI1M2FlYzc4OGUzMjk5MjZlMDBkMDlhY2FjLi5kYWRjZGZjNTU1NmVmODgwODkyMmU5ODkzOTFm
NzE4N2MxNDlmNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNz
aW9uQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNDQsNyArNDQsNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlv
bk9iakMoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyogcGFyZW50LCBMZWdhY3lD
RE1TZXNzaW9uQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3BhcmVudChtYWtlV2Vha1B0cigqcGFy
ZW50KSkKKyAgICA6IG1fcGFyZW50KCpwYXJlbnQpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAg
ICAgLCBtX3Nlc3Npb25JZChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9M
b2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
Lm1tCmluZGV4IDY5OWFmOTBiZGUzOGI1YWRmMDg1NjkzNjFlOGYyOWY0NTcyMTJhMDguLjUyNTQ3
YjU5YzE5ZmE4N2JhNDJiNjUzNDI1NTc5YjRkMzA2MDliNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tCkBAIC02
NCw3ICs2NCw3IEBAIC0gKGlkKWluaXRXaXRoUGFyZW50OihMb2NhbFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllciopcGFyZW50CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAg
IHJldHVybiBuaWw7CiAKLSAgICBfcGFyZW50ID0gbWFrZVdlYWtQdHIocGFyZW50KTsKKyAgICBf
cGFyZW50ID0gcGFyZW50OwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQppbmRleCAwYTZkZmQwODQxYTMwNTkwOGQ5ZWJkYjAyYzJjODdhYzcwMTI0YzcwLi5mNzYy
ZTljZjc1NjBhNTM0NWQwMTRlNzc2NWU4YTY4ZWY4ZTU5MzAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KQEAgLTQ1MCw4ICs0NTAsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMoY29uc3QgU3RyaW5nJgogTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQyhNZWRpYVBsYXllciogcGxheWVyKQogICAgIDogTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uKHBsYXllcikKICAgICAsIG1fdmlkZW9MYXllck1hbmFnZXIobWFrZVVuaXF1ZTxW
aWRlb0xheWVyTWFuYWdlck9iakM+KGxvZ2dlcigpLCBsb2dJZGVudGlmaWVyKCkpKQotICAgICwg
bV9vYmpjT2JzZXJ2ZXIoYWRvcHROUyhbW1dlYkNvcmVBVkZNb3ZpZU9ic2VydmVyIGFsbG9jXSBp
bml0V2l0aFBsYXllcjptYWtlV2Vha1B0cigqdGhpcyldKSkKLSAgICAsIG1fbG9hZGVyRGVsZWdh
dGUoYWRvcHROUyhbW1dlYkNvcmVBVkZMb2FkZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhQbGF5
ZXI6bWFrZVdlYWtQdHIoKnRoaXMpXSkpCisgICAgLCBtX29iamNPYnNlcnZlcihhZG9wdE5TKFtb
V2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoUGxheWVyOip0aGlzXSkpCisg
ICAgLCBtX2xvYWRlckRlbGVnYXRlKGFkb3B0TlMoW1tXZWJDb3JlQVZGTG9hZGVyRGVsZWdhdGUg
YWxsb2NdIGluaXRXaXRoUGxheWVyOip0aGlzXSkpCiAgICAgLCBtX2NhY2hlZEl0ZW1TdGF0dXMo
TWVkaWFQbGF5ZXJBVlBsYXllckl0ZW1TdGF0dXNEb2VzTm90RXhpc3QpCiB7CiAgICAgbV9tdXRl
ZCA9IHBsYXllci0+bXV0ZWQoKTsKQEAgLTI0NjgsNyArMjQ2OCw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQoKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgbV92aWRlb091dHB1dERlbGVnYXRlID0gYWRvcHROUyhbW1dl
YkNvcmVBVkZQdWxsRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoUGxheWVyOm1ha2VXZWFrUHRyKCp0
aGlzKV0pOworICAgIG1fdmlkZW9PdXRwdXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJDb3JlQVZG
UHVsbERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFBsYXllcjoqdGhpc10pOwogICAgIFttX3ZpZGVv
T3V0cHV0IHNldERlbGVnYXRlOm1fdmlkZW9PdXRwdXREZWxlZ2F0ZS5nZXQoKSBxdWV1ZTpnbG9i
YWxQdWxsRGVsZWdhdGVRdWV1ZSgpXTsKIAogICAgIFttX2F2UGxheWVySXRlbSBhZGRPdXRwdXQ6
bV92aWRlb091dHB1dC5nZXQoKV07CkBAIC0yNjU1LDcgKzI2NTUsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8TGVnYWN5Q0RNU2Vzc2lvbj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
Y3JlYXRlU2VzcwogICAgIGlmICgha2V5U3lzdGVtSXNTdXBwb3J0ZWQoa2V5U3lzdGVtKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBzZXNzaW9uID0gbWFrZVVuaXF1ZTxDRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQz4odGhpcywgY2xpZW50KTsKLSAgICBtX3Nlc3Npb24gPSBt
YWtlV2Vha1B0cigqc2Vzc2lvbik7CisgICAgbV9zZXNzaW9uID0gKnNlc3Npb247CiAgICAgcmV0
dXJuIFdURk1vdmUoc2Vzc2lvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRl
eCA1OWIyODM4MjMwMjk1OTRkMTYzODgzMGI5NjdiN2ZlN2I3MzBiODAxLi4zNmYwMTNiYWU3Zjgy
ZjgwZjFmYjYzZGFhMGQ1ZDVkMjdiYWRjOWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
CkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpz
dG9wKENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiB9CiAKIEVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlz
dGVuZXI6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXIoTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDJiBjbGllbnQsIENNVGltZWJhc2VSZWYgdGltZWJhc2UpCi0gICAgOiBt
X2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQorICAgIDogbV9jbGllbnQoY2xpZW50KQogewog
ICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0gUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRl
ckdldERlZmF1bHRMb2NhbENlbnRlcigpOwogICAgIFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJB
ZGRMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJh
Y2ssIFBBTDo6a0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRp
bWViYXNlLCAwKTsKQEAgLTExMTAsNyArMTExMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRDRE1TZXNzaW9uKExlZ2FjeUNETVNlc3Npb24qIHNlc3Np
CiAKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogCi0gICAgbV9zZXNzaW9uID0gbWFr
ZVdlYWtQdHIodG9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKHNlc3Npb24pKTsKKyAgICBt
X3Nlc3Npb24gPSB0b0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMoc2Vzc2lvbik7CiAKICNp
ZiBIQVZFKEFWU1RSRUFNU0VTU0lPTikKICAgICBpZiAoQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lv
biogY2RtU3RyZWFtU2Vzc2lvbiA9IHRvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbihtX3Nlc3Np
b24uZ2V0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJp
dmF0ZUFWRk9iakMubW0KaW5kZXggNzk2MWI0MTA1YjU5YjI2OWFiNTVhODU1NzJlYzE1OTg1ZWU4
YjM5Yi4uOTI3ZDEzMDMxMWU4ZWVjOGIwMjE1NmFjNjMyODBhOWJmOWQwODA4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tCkBA
IC01NCw3ICs1NCw3IEBAIFJlZjxNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDPiBNZWRpYVNvdXJj
ZVByaXZhdGVBVkZPYmpDOjpjcmVhdGUoTWVkaWFQbGF5ZXJQcml2CiB9CiAKIE1lZGlhU291cmNl
UHJpdmF0ZUFWRk9iakM6Ok1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMoTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDJiBwYXJlbnQsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCog
Y2xpZW50KQotICAgIDogbV9wbGF5ZXIobWFrZVdlYWtQdHIocGFyZW50KSkKKyAgICA6IG1fcGxh
eWVyKHBhcmVudCkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1faXNFbmRlZChmYWxz
ZSkKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggMTE0NjczMjU0YjZjMjI4
ZjViZmJiOTVjNzM2YWE0NTAzMjIwNTU4ZC4uM2EyODY3YTFhYzI0M2JiOWM5M2M5ZDZiNzBjYTU2
YjAyOTQ4ZmM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTMwNCw3ICszMDQsNyBAQCBSZWY8U291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM+IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjcmVhdGUoTWVkaWFT
b3VyY2VQcgogCiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyogcGFyZW50LCBSZWY8U291cmNlQnVm
ZmVyUGFyc2VyPiYmIHBhcnNlcikKICAgICA6IG1fcGFyc2VyKFdURk1vdmUocGFyc2VyKSkKLSAg
ICAsIG1fZXJyb3JMaXN0ZW5lcihhZG9wdE5TKFtbV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3Rl
bmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDptYWtlV2Vha1B0cigqdGhpcyldKSkKKyAgICAsIG1f
ZXJyb3JMaXN0ZW5lcihhZG9wdE5TKFtbV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIGFs
bG9jXSBpbml0V2l0aFBhcmVudDoqdGhpc10pKQogICAgICwgbV9hcHBlbmRRdWV1ZShXb3JrUXVl
dWU6OmNyZWF0ZSgiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMgZGF0YSBwYXJzZXIgcXVldWUi
KSkKICAgICAsIG1fbWVkaWFTb3VyY2UocGFyZW50KQogICAgICwgbV9tYXBJRChuZXh0TWFwSUQo
KSkKQEAgLTMyMiw3ICszMjIsNyBAQCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQwogICAgIG1fcGFy
c2VyLT5zZXRMb2dnZXIobV9sb2dnZXIuZ2V0KCksIG1fbG9nSWRlbnRpZmllcik7CiAjZW5kaWYK
IAotICAgIHNvdXJjZUJ1ZmZlck1hcCgpLmFkZChtX21hcElELCBtYWtlV2Vha1B0cigqdGhpcykp
OworICAgIHNvdXJjZUJ1ZmZlck1hcCgpLmFkZChtX21hcElELCAqdGhpcyk7CiB9CiAKIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQpAQCAt
ODc2LDcgKzg3Niw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldENETVNl
c3Npb24oQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyogc2VzCiAgICAgaWYgKG1fc2Vzc2lv
bikKICAgICAgICAgbV9zZXNzaW9uLT5yZW1vdmVTb3VyY2VCdWZmZXIodGhpcyk7CiAKLSAgICBt
X3Nlc3Npb24gPSBtYWtlV2Vha1B0cihzZXNzaW9uKTsKKyAgICBtX3Nlc3Npb24gPSBzZXNzaW9u
OwogCiAgICAgaWYgKG1fc2Vzc2lvbikgewogICAgICAgICBtX3Nlc3Npb24tPmFkZFNvdXJjZUJ1
ZmZlcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNv
dXJjZUxvYWRlci5tbQppbmRleCAwNWM4ODQ3YjI1NTczM2QyYzVkYzU1MjI3ODkyMWRmZWEzNWIw
NDhmLi44ZTkwMTBkYzg2MDZhYTAwNjZiMmY3YmRmYWE2M2E2YzMxNWIwODhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJD
b3JlQVZGUmVzb3VyY2VMb2FkZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCkBAIC0x
NzMsNyArMTczLDcgQEAgV2Vha1B0cjxQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXI+IFBsYXRm
b3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6Y3JlYXRlKFdlYkNvcmUKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgYXV0byogcmVzb3VyY2VQb2ludGVyID0gcmVzb3VyY2UuZ2V0KCk7CiAgICAg
YXV0byBjbGllbnQgPSBhZG9wdFJlZigqbmV3IFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlciB7
IHBhcmVudCwgcmVzb3VyY2UucmVsZWFzZU5vbk51bGwoKSB9KTsKLSAgICBhdXRvIHJlc3VsdCA9
IG1ha2VXZWFrUHRyKGNsaWVudC5nZXQoKSk7CisgICAgV2Vha1B0ciByZXN1bHQgPSBjbGllbnQ7
CiAKICAgICByZXNvdXJjZVBvaW50ZXItPnNldENsaWVudChXVEZNb3ZlKGNsaWVudCkpOwogICAg
IHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCmlu
ZGV4IGZiMzFjM2QxMTQ3YjI1MDE0NjBmNDliNjdkNjBjNzYzYmZlMDIwZGQuLjlhZDE5Yjg3NmIy
N2U2MGQ0ZmJhNTAzMGU2NWY4MWU3Y2E4YTUwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29k
ZXJHU3RyZWFtZXIuY3BwCkBAIC0zMTMsNyArMzEzLDcgQEAgdm9pZCBJbWFnZURlY29kZXJHU3Ry
ZWFtZXI6OklubmVyRGVjb2Rlcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQog
ewogICAgIEFTU0VSVCgmbV9ydW5Mb29wID09ICZSdW5Mb29wOjpjdXJyZW50KCkpOwogCi0gICAg
YXV0byBzY29wZUV4aXQgPSBtYWtlU2NvcGVFeGl0KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyldIHsKKyAgICBhdXRvIHNjb3BlRXhpdCA9IG1ha2VTY29wZUV4aXQoW3Byb3RlY3Rl
ZFRoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcm90ZWN0ZWRU
aGlzLT5tX21lc3NhZ2VMb2NrIH07CkBAIC0zODIsNyArMzgyLDcgQEAgdm9pZCBJbWFnZURlY29k
ZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6cHJlcGFyZVBpcGVsaW5lKCkKICAgICAgICAgICAg
IGRlY29kZXIuaGFuZGxlTWVzc2FnZShtZXNzYWdlKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICBHUmVmUHRyPEdzdE1lc3NhZ2U+IHByb3RlY3RlZE1lc3NhZ2UobWVzc2FnZSk7Ci0gICAg
ICAgICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoZGVjb2Rlcik7CisgICAgICAgICAg
ICBXZWFrUHRyIHdlYWtUaGlzIHsgZGVjb2RlciB9OwogICAgICAgICAgICAgZGVjb2Rlci5tX3J1
bkxvb3AuZGlzcGF0Y2goW3dlYWtUaGlzLCBwcm90ZWN0ZWRNZXNzYWdlXSB7CiAgICAgICAgICAg
ICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+aGFuZGxl
TWVzc2FnZShwcm90ZWN0ZWRNZXNzYWdlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggOWI5MGE3Zjc0YWQ0MGY0ZjRhNDY2ODg4
ZTMzN2VhM2RmZmY2YTg4Yi4uZjg4MGU2MTVhMjcwMDFkZWFmNmUxODk5NGUzNzZmOWVlZTg3Mzdh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
QEAgLTEwNTYsNyArMTA1Niw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpu
b3RpZnlQbGF5ZXJPZlRyYWNrKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAg
IGF1dG8gdHJhY2sgPSBUcmFja1ByaXZhdGVUeXBlOjpjcmVhdGUobWFrZVdlYWtQdHIoKnRoaXMp
LCBpLCBXVEZNb3ZlKHBhZCkpOworICAgICAgICBhdXRvIHRyYWNrID0gVHJhY2tQcml2YXRlVHlw
ZTo6Y3JlYXRlKCp0aGlzLCBpLCBXVEZNb3ZlKHBhZCkpOwogICAgICAgICBpZiAoIXRyYWNrLT50
cmFja0luZGV4KCkgJiYgKHR5cGUgPT0gVHJhY2tUeXBlOjpBdWRpbyB8fCB0eXBlID09IFRyYWNr
VHlwZTo6VmlkZW8pKQogICAgICAgICAgICAgdHJhY2stPnNldEFjdGl2ZSh0cnVlKTsKICAgICAg
ICAgQVNTRVJUKHN0cmVhbUlkID09IHRyYWNrLT5pZCgpKTsKQEAgLTE0MzksNyArMTQzOSw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVUcmFja3MoY29uc3QgR1Jl
ZlB0cjxHc3RTdHJlYW1Db2xsZWN0aW9uCiAgICAgdW5zaWduZWQgdGV4dFRyYWNrSW5kZXggPSAw
OwogCiAjZGVmaW5lIENSRUFURV9UUkFDSyh0eXBlLCBUeXBlKSBHX1NUTVRfU1RBUlQgeyAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgUmVmUHRyPFR5cGUjI1RyYWNrUHJpdmF0ZUdTdHJl
YW1lcj4gdHJhY2sgPSBUeXBlIyNUcmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShtYWtlV2Vh
a1B0cigqdGhpcyksIHR5cGUjI1RyYWNrSW5kZXgsIFdURk1vdmUoc3RyZWFtKSk7IFwKKyAgICAg
ICAgUmVmUHRyPFR5cGUjI1RyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gdHJhY2sgPSBUeXBlIyNUcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZSgqdGhpcywgdHlwZSMjVHJhY2tJbmRleCwgV1RGTW92
ZShzdHJlYW0pKTsgXAogICAgICAgICBhdXRvIHRyYWNrSWQgPSB0cmFjay0+aWQoKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIGlmICghdHlwZSMjVHJhY2tJbmRl
eCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIG1f
d2FudGVkIyNUeXBlIyNTdHJlYW1JZCA9IHRyYWNrSWQ7ICAgICAgICAgICAgICAgICAgICAgXApA
QCAtMTUxOSw3ICsxNTE5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Omhh
bmRsZVN0cmVhbUNvbGxlY3Rpb25NZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3MKICAgICB9CiAjZW5k
aWYKIAotICAgIGF1dG8gY2FsbGJhY2sgPSBbcGxheWVyID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBj
b2xsZWN0aW9uID0gV1RGTW92ZShjb2xsZWN0aW9uKV0geworICAgIGF1dG8gY2FsbGJhY2sgPSBb
cGxheWVyID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNvbGxlY3Rpb24gPSBXVEZNb3ZlKGNvbGxlY3Rp
b24pXSB7CiAgICAgICAgIGlmIChwbGF5ZXIpCiAgICAgICAgICAgICBwbGF5ZXItPnVwZGF0ZVRy
YWNrcyhjb2xsZWN0aW9uKTsKICAgICB9OwpAQCAtMjczMCw3ICsyNzMwLDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oY29uc3QgVVJMJiB1cmwp
CiAgICAgQVNTRVJUKHRleHRDb21iaW5lcik7CiAgICAgZ19vYmplY3Rfc2V0KG1fcGlwZWxpbmUu
Z2V0KCksICJ0ZXh0LXN0cmVhbS1jb21iaW5lciIsIHRleHRDb21iaW5lciwgbnVsbHB0cik7CiAK
LSAgICBtX3RleHRTaW5rID0gd2Via2l0VGV4dFNpbmtOZXcobWFrZVdlYWtQdHIoKnRoaXMpKTsK
KyAgICBtX3RleHRTaW5rID0gd2Via2l0VGV4dFNpbmtOZXcoKnRoaXMpOwogICAgIEFTU0VSVCht
X3RleHRTaW5rKTsKIAogICAgIGdfb2JqZWN0X3NldChtX3BpcGVsaW5lLmdldCgpLCAidGV4dC1z
aW5rIiwgbV90ZXh0U2luay5nZXQoKSwgbnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggYWQ1ZjMwM2I1ZjJjYmU2NjJhMGYwNTcyYzk5
YmM0MGJhNWY4OGUzYy4uNTI4NWMwNGIwZmEwN2FiZDlkOTM5YWYxYzVjNzNkMzcyNGY1MGQ5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTA3
LDcgKzEwNyw3IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyOwogCiB2b2lkIHJl
Z2lzdGVyV2ViS2l0R1N0cmVhbWVyRWxlbWVudHMoKTsKIAotLy8gVXNlIGVhZ2VyIGluaXRpYWxp
emF0aW9uIGZvciB0aGUgV2Vha1B0ckZhY3Rvcnkgc2luY2Ugd2UgY2FsbCBtYWtlV2Vha1B0cigp
IGZyb20gYW5vdGhlciB0aHJlYWQuCisvLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9yIHRo
ZSBXZWFrUHRyRmFjdG9yeSBzaW5jZSB3ZSBjb25zdHJ1Y3QgV2Vha1B0cnMgb24gYW5vdGhlciB0
aHJlYWQuCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlCiAgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdl
cj4KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCmlu
ZGV4IGJiOGVhMDk5OGIyNzQ2ZGU5ODE0YzJmYjA2NjU4MGU4NDRmYjM3NDguLmM3NTRlMGZmYWEz
ODVhMmQ1Y2Y2NDg5YjVjMmViNmNiZDk3ZWVkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNw
cApAQCAtMjg5LDcgKzI4OSw3IEBAIENETUluc3RhbmNlU2Vzc2lvblRodW5kZXI6OkNETUluc3Rh
bmNlU2Vzc2lvblRodW5kZXIoQ0RNSW5zdGFuY2VUaHVuZGVyJiBpbnN0YW5jCiAgICAgICAgIGNv
bnN0IHVpbnQxNl90IGNoYWxsZW5nZUxlbmd0aCkgewogICAgICAgICBHU1RfREVCVUcoIkdvdCAn
Y2hhbGxlbmdlJyBPQ0RNIG5vdGlmaWNhdGlvbiB3aXRoIGxlbmd0aCAlaHUiLCBjaGFsbGVuZ2VM
ZW5ndGgpOwogICAgICAgICBBU1NFUlQoY2hhbGxlbmdlTGVuZ3RoID4gMCk7Ci0gICAgICAgIGNh
bGxPbk1haW5UaHJlYWQoW3Nlc3Npb24gPSBtYWtlV2Vha1B0cihzdGF0aWNfY2FzdDxDRE1JbnN0
YW5jZVNlc3Npb25UaHVuZGVyKj4odXNlckRhdGEpKSwgYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVk
QnVmZmVyOjpjcmVhdGUoY2hhbGxlbmdlLAorICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtzZXNz
aW9uID0gV2Vha1B0ciB7IHN0YXRpY19jYXN0PENETUluc3RhbmNlU2Vzc2lvblRodW5kZXIqPih1
c2VyRGF0YSkgfSwgYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoY2hhbGxl
bmdlLAogICAgICAgICAgICAgY2hhbGxlbmdlTGVuZ3RoKV0oKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGlmICghc2Vzc2lvbikKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0zMDAsNyArMzAw
LDcgQEAgQ0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRl
cihDRE1JbnN0YW5jZVRodW5kZXImIGluc3RhbmMKICAgICAgICAgR1NUX0RFQlVHKCJHb3QgJ2tl
eSB1cGRhdGVkJyBPQ0RNIG5vdGlmaWNhdGlvbiIpOwogICAgICAgICBLZXlJRFR5cGUga2V5SUQ7
CiAgICAgICAgIGtleUlELmFwcGVuZChrZXlJRERhdGEsIGtleUlETGVuZ3RoKTsKLSAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PENETUlu
c3RhbmNlU2Vzc2lvblRodW5kZXIqPih1c2VyRGF0YSkpLCBrZXlJRCA9IFdURk1vdmUoa2V5SUQp
XSgpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtzZXNzaW9uID0gV2Vha1B0
ciB7IHN0YXRpY19jYXN0PENETUluc3RhbmNlU2Vzc2lvblRodW5kZXIqPih1c2VyRGF0YSkgfSwg
a2V5SUQgPSBXVEZNb3ZlKGtleUlEKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghc2Vz
c2lvbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBzZXNzaW9uLT5rZXlV
cGRhdGVkQ2FsbGJhY2soV1RGTW92ZShrZXlJRCkpOwpAQCAtMzA4LDcgKzMwOCw3IEBAIENETUlu
c3RhbmNlU2Vzc2lvblRodW5kZXI6OkNETUluc3RhbmNlU2Vzc2lvblRodW5kZXIoQ0RNSW5zdGFu
Y2VUaHVuZGVyJiBpbnN0YW5jCiAgICAgfTsKICAgICBtX3RodW5kZXJTZXNzaW9uQ2FsbGJhY2tz
LmtleXNfdXBkYXRlZF9jYWxsYmFjayA9IFtdKGNvbnN0IE9wZW5DRE1TZXNzaW9uKiwgdm9pZCog
dXNlckRhdGEpIHsKICAgICAgICAgR1NUX0RFQlVHKCJHb3QgJ2FsbCBrZXlzIHVwZGF0ZWQnIE9D
RE0gbm90aWZpY2F0aW9uIik7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Nlc3Npb24gPSBt
YWtlV2Vha1B0cihzdGF0aWNfY2FzdDxDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyKj4odXNlckRh
dGEpKV0oKSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Nlc3Npb24gPSBXZWFrUHRyIHsg
c3RhdGljX2Nhc3Q8Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcio+KHVzZXJEYXRhKSB9XSgpIHsK
ICAgICAgICAgICAgIGlmICghc2Vzc2lvbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICBzZXNzaW9uLT5rZXlzVXBkYXRlRG9uZUNhbGxiYWNrKCk7CkBAIC0zMTYsNyArMzE2
LDcgQEAgQ0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRl
cihDRE1JbnN0YW5jZVRodW5kZXImIGluc3RhbmMKICAgICB9OwogICAgIG1fdGh1bmRlclNlc3Np
b25DYWxsYmFja3MuZXJyb3JfbWVzc2FnZV9jYWxsYmFjayA9IFtdKE9wZW5DRE1TZXNzaW9uKiwg
dm9pZCogdXNlckRhdGEsIGNvbnN0IGNoYXIgbWVzc2FnZVtdKSB7CiAgICAgICAgIEdTVF9FUlJP
UigiR290ICdlcnJvcicgT0NETSBub3RpZmljYXRpb246ICVzIiwgbWVzc2FnZSk7Ci0gICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoW3Nlc3Npb24gPSBtYWtlV2Vha1B0cihzdGF0aWNfY2FzdDxDRE1J
bnN0YW5jZVNlc3Npb25UaHVuZGVyKj4odXNlckRhdGEpKSwgYnVmZmVyID0gV2ViQ29yZTo6U2hh
cmVkQnVmZmVyOjpjcmVhdGUobWVzc2FnZSwKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbc2Vz
c2lvbiA9IFdlYWtQdHIgeyBzdGF0aWNfY2FzdDxDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyKj4o
dXNlckRhdGEpIH0sIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG1lc3Nh
Z2UsCiAgICAgICAgICAgICBzdHJsZW4obWVzc2FnZSkpXSgpIG11dGFibGUgewogICAgICAgICAg
ICAgaWYgKCFzZXNzaW9uKQogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JH
U3RyZWFtZXIuY3BwCmluZGV4IDM2MWE3NzFlOWM3MDhkNDljYmVhMzk1MjhjZjQyNDIwMjI4NDdl
MTkuLmM4NGZkZjA5MGRkZDY5NGRiYTU1MmE1NzU4OTU2MWMwNmYyZmRiZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29t
bW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVj
cnlwdG9yR1N0cmVhbWVyLmNwcApAQCAtNDMyLDcgKzQzMiw3IEBAIGJvb2wgd2ViS2l0TWVkaWFD
b21tb25FbmNyeXB0aW9uRGVjcnlwdElzRmx1c2hpbmcoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0
aW9uRGVjCiBXZWFrUHRyPFdlYkNvcmU6OkNETVByb3h5RGVjcnlwdGlvbkNsaWVudD4gd2ViS2l0
TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdEdldENETVByb3h5RGVjcnlwdGlvbkNsaWVudChX
ZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KiBzZWxmKQogewogICAgIFdlYktpdE1l
ZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHRQcml2YXRlKiBwcml2ID0gV0VCS0lUX01FRElBX0NF
TkNfREVDUllQVF9HRVRfUFJJVkFURShzZWxmKTsKLSAgICByZXR1cm4gbWFrZVdlYWtQdHIoKnBy
aXYtPmNkbVByb3h5RGVjcnlwdGlvbkNsaWVudEltcGxlbWVudGF0aW9uKTsKKyAgICByZXR1cm4g
KnByaXYtPmNkbVByb3h5RGVjcnlwdGlvbkNsaWVudEltcGxlbWVudGF0aW9uOwogfQogCiBzdGF0
aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gY2hhbmdlU3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwg
R3N0U3RhdGVDaGFuZ2UgdHJhbnNpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5j
cHAKaW5kZXggMmNhYjhiMTlkMTQzZTc4YmQyMjdmMjI0YzY0YmUwNTE3MDdiYTcwZi4uNzQ5N2Nk
MDExYTg3NjUxYTQ4NjAyOWIyMmQ3MjBhMjhkNDdmMzEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBl
bmRQaXBlbGluZS5jcHAKQEAgLTc1NiwxMyArNzU2LDEzIEBAIFJlZjxXZWJDb3JlOjpUcmFja1By
aXZhdGVCYXNlPiBBcHBlbmRQaXBlbGluZTo6bWFrZVdlYktpdFRyYWNrKGludCB0cmFja0luZGV4
KQogICAgIEdSZWZQdHI8R3N0UGFkPiBwYWQoYXBwZW5kUGlwZWxpbmVUcmFjay5hcHBzaW5rUGFk
KTsKICAgICBzd2l0Y2ggKGFwcGVuZFBpcGVsaW5lVHJhY2suc3RyZWFtVHlwZSkgewogICAgIGNh
c2UgU3RyZWFtVHlwZTo6QXVkaW86IHsKLSAgICAgICAgYXV0byBzcGVjaWZpY1RyYWNrID0gQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShtYWtlV2Vha1B0cihtX3BsYXllclByaXZh
dGUpLCB0cmFja0luZGV4LCBXVEZNb3ZlKHBhZCksIGZhbHNlKTsKKyAgICAgICAgYXV0byBzcGVj
aWZpY1RyYWNrID0gQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShtX3BsYXllclBy
aXZhdGUsIHRyYWNrSW5kZXgsIFdURk1vdmUocGFkKSwgZmFsc2UpOwogICAgICAgICBnc3RyZWFt
ZXJUcmFjayA9IHNwZWNpZmljVHJhY2sucHRyKCk7CiAgICAgICAgIHRyYWNrID0gc3RhdGljX2Nh
c3Q8VHJhY2tQcml2YXRlQmFzZSo+KHNwZWNpZmljVHJhY2sucHRyKCkpOwogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgY2FzZSBTdHJlYW1UeXBlOjpWaWRlbzogewotICAgICAgICBhdXRvIHNw
ZWNpZmljVHJhY2sgPSBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1ha2VXZWFr
UHRyKG1fcGxheWVyUHJpdmF0ZSksIHRyYWNrSW5kZXgsIFdURk1vdmUocGFkKSwgZmFsc2UpOwor
ICAgICAgICBhdXRvIHNwZWNpZmljVHJhY2sgPSBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6
Y3JlYXRlKG1fcGxheWVyUHJpdmF0ZSwgdHJhY2tJbmRleCwgV1RGTW92ZShwYWQpLCBmYWxzZSk7
CiAgICAgICAgIGdzdHJlYW1lclRyYWNrID0gc3BlY2lmaWNUcmFjay5wdHIoKTsKICAgICAgICAg
dHJhY2sgPSBzdGF0aWNfY2FzdDxUcmFja1ByaXZhdGVCYXNlKj4oc3BlY2lmaWNUcmFjay5wdHIo
KSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCBiMDBi
MWM4ZWJlNGZlYTkxNWRiOTc1YThhOGZlZmQ3N2VkNmI5ZGJhLi4xNzY4ZGI0YzQ2M2U0MmMxYzZi
YTBhNGIxYTE1NjcyYTNjMDdiYmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAt
NTU4LDggKzU1OCw4IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpyZW1vdmVBbGxDaGlsZHJl
bigpCiB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0TWFza0xheWVyKFRleHR1cmVNYXBwZXJM
YXllciogbWFza0xheWVyKQogewogICAgIGlmIChtYXNrTGF5ZXIpIHsKLSAgICAgICAgbWFza0xh
eWVyLT5tX2VmZmVjdFRhcmdldCA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKLSAgICAgICAgbV9zdGF0
ZS5tYXNrTGF5ZXIgPSBtYWtlV2Vha1B0cigqbWFza0xheWVyKTsKKyAgICAgICAgbWFza0xheWVy
LT5tX2VmZmVjdFRhcmdldCA9ICp0aGlzOworICAgICAgICBtX3N0YXRlLm1hc2tMYXllciA9ICpt
YXNrTGF5ZXI7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fc3RhdGUubWFza0xheWVyID0gbnVsbHB0
cjsKIH0KQEAgLTU2OCw4ICs1NjgsOCBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0UmVw
bGljYUxheWVyKFRleHR1cmVNYXBwZXJMYXllciogcmVwbGljYUxheWVyKQogewogICAgIGlmIChy
ZXBsaWNhTGF5ZXIpIHsKICAgICAgICAgcmVwbGljYUxheWVyLT5tX2lzUmVwbGljYSA9IHRydWU7
Ci0gICAgICAgIHJlcGxpY2FMYXllci0+bV9lZmZlY3RUYXJnZXQgPSBtYWtlV2Vha1B0cigqdGhp
cyk7Ci0gICAgICAgIG1fc3RhdGUucmVwbGljYUxheWVyID0gbWFrZVdlYWtQdHIoKnJlcGxpY2FM
YXllcik7CisgICAgICAgIHJlcGxpY2FMYXllci0+bV9lZmZlY3RUYXJnZXQgPSAqdGhpczsKKyAg
ICAgICAgbV9zdGF0ZS5yZXBsaWNhTGF5ZXIgPSAqcmVwbGljYUxheWVyOwogICAgIH0gZWxzZQog
ICAgICAgICBtX3N0YXRlLnJlcGxpY2FMYXllciA9IG51bGxwdHI7CiB9CkBAIC01NzgsOCArNTc4
LDggQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldEJhY2tkcm9wTGF5ZXIoVGV4dHVyZU1h
cHBlckxheWVyKiBiYWNrZHJvcExheWVyKQogewogICAgIGlmIChiYWNrZHJvcExheWVyKSB7CiAg
ICAgICAgIGJhY2tkcm9wTGF5ZXItPm1faXNCYWNrZHJvcCA9IHRydWU7Ci0gICAgICAgIGJhY2tk
cm9wTGF5ZXItPm1fZWZmZWN0VGFyZ2V0ID0gbWFrZVdlYWtQdHIoKnRoaXMpOwotICAgICAgICBt
X3N0YXRlLmJhY2tkcm9wTGF5ZXIgPSBtYWtlV2Vha1B0cigqYmFja2Ryb3BMYXllcik7CisgICAg
ICAgIGJhY2tkcm9wTGF5ZXItPm1fZWZmZWN0VGFyZ2V0ID0gKnRoaXM7CisgICAgICAgIG1fc3Rh
dGUuYmFja2Ryb3BMYXllciA9ICpiYWNrZHJvcExheWVyOwogICAgIH0gZWxzZQogICAgICAgICBt
X3N0YXRlLmJhY2tkcm9wTGF5ZXIgPSBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAppbmRleCA1ZDEzNGMwOWM0ZmM5ZjNiN2I4ZjE0
YTJlNjJlNjZmNmM5NzJkYWI0Li4zYmE5M2EwM2FiYmE2MjBjM2ZiYmU1NzdkYTU5M2Q2ODhmZTVl
NDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNw
cApAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHRlbk1lZ2FoZXJ0eiA9IDEw
MDAwMDAwOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZv
dW5kYXRpb246Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbihNZWRpYVBsYXllciog
cGxheWVyKSAKLSAgICA6IG1fd2Vha1RoaXMobWFrZVdlYWtQdHIodGhpcykpCisgICAgOiBtX3dl
YWtUaGlzKHRoaXMpCiAgICAgLCBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX3Zpc2libGUoZmFs
c2UpCiAgICAgLCBtX2xvYWRpbmdQcm9ncmVzcyhmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9QcmV2aWV3Q29udmVydGVySU9TLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ByZXZpZXdDb252ZXJ0ZXJJT1MubW0KaW5kZXggMmZjZDBmY2IzODlh
MDBiMmY0YmFlYWU2M2Y5MmU4ZmUzNDdlNjliYy4uNTQ0NjUzYzQ0MDNkMjYwNDBhNTVkMjNlOTM2
OTFiZmVkY2M5MmI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1By
ZXZpZXdDb252ZXJ0ZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1By
ZXZpZXdDb252ZXJ0ZXJJT1MubW0KQEAgLTUwLDcgKzUwLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoRGVsZWdhdGU6KFdlYkNvcmU6OlByZXZpZXdQbGF0Zm9ybURlbGVnYXRlJilkZWxlZ2F0
ZQogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwog
Ci0gICAgX2RlbGVnYXRlID0gbWFrZVdlYWtQdHIoZGVsZWdhdGUpOworICAgIF9kZWxlZ2F0ZSA9
IGRlbGVnYXRlOwogICAgIHJldHVybiBzZWxmOwogfQogCkBAIC04NCw3ICs4NCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIFByZXZpZXdDb252ZXJ0ZXI6OlByZXZpZXdDb252ZXJ0ZXIoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFByZXZpZXdDb252ZXJ0ZXJQcm92aWRlciYgcHJv
dmlkZXIpCiAgICAgOiBtX3ByZXZpZXdEYXRhIHsgU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSB9CiAg
ICAgLCBtX29yaWdpbmFsUmVzcG9uc2UgeyByZXNwb25zZSB9Ci0gICAgLCBtX3Byb3ZpZGVyIHsg
bWFrZVdlYWtQdHIocHJvdmlkZXIpIH0KKyAgICAsIG1fcHJvdmlkZXIgeyBwcm92aWRlciB9CiAg
ICAgLCBtX3BsYXRmb3JtRGVsZWdhdGUgeyBhZG9wdE5TKFtbV2ViUHJldmlld0NvbnZlcnRlckRl
bGVnYXRlIGFsbG9jXSBpbml0V2l0aERlbGVnYXRlOip0aGlzXSkgfQogICAgICwgbV9wbGF0Zm9y
bUNvbnZlcnRlciB7IGFkb3B0TlMoW1BBTDo6YWxsb2NRTFByZXZpZXdDb252ZXJ0ZXJJbnN0YW5j
ZSgpIGluaXRXaXRoQ29ubmVjdGlvbjpuaWwgZGVsZWdhdGU6bV9wbGF0Zm9ybURlbGVnYXRlLmdl
dCgpIHJlc3BvbnNlOm1fb3JpZ2luYWxSZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkgb3B0aW9uczpu
aWxdKSB9CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggYWE1MjE3ZjhhM2FkNDIzOGVi
NzM3ZDM3YTExZmIxNzFkZGU5NTc2MC4uMDJlY2Y4MDNjN2UzOTVjZTRkMTdjNWNjZDY0YzkyYmUy
ZjlhMmIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAtMTExLDcgKzExMSw3IEBAIC0g
KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KilmdWxsc2NyZWVuSW50ZXJmYWNlCiAtICh2
b2lkKXNldEZ1bGxzY3JlZW5JbnRlcmZhY2U6KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
KilmdWxsc2NyZWVuSW50ZXJmYWNlCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAg
ICBfZnVsbHNjcmVlbkludGVyZmFjZSA9IG1ha2VXZWFrUHRyKCpmdWxsc2NyZWVuSW50ZXJmYWNl
KTsKKyAgICBfZnVsbHNjcmVlbkludGVyZmFjZSA9ICpmdWxsc2NyZWVuSW50ZXJmYWNlOwogfQog
CiAtICh2b2lkKXBsYXllclZpZXdDb250cm9sbGVyV2lsbFN0YXJ0UGljdHVyZUluUGljdHVyZToo
QVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0KaW5kZXgg
NTc2OWU5YTUzZjQyZmNhMmQ0YjE4MTA0NDZkMmY4MGY1NjRmZjc1Ni4uZGIwYTgyNGYzYjRiZmZk
ODc0ZDNiMzAwNzJhYTQwMmI3MmU4YzI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQpAQCAtMjE5LDcgKzIxOSw3IEBAIC0g
KHZvaWQpc2VuZEFjY2VsZXJvbWV0ZXJEYXRhOihDTUFjY2VsZXJvbWV0ZXJEYXRhICopbmV3QWNj
ZWxlcmF0aW9uCiAgICAgICAgIFZlY3RvcjxXZWFrUHRyPFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJD
bGllbnQ+PiBtb3Rpb25DbGllbnRzOwogICAgICAgICBtb3Rpb25DbGllbnRzLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkobV9kZXZpY2VNb3Rpb25DbGllbnRzLmNvbXB1dGVTaXplKCkpOwogICAgICAg
ICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fZGV2aWNlTW90aW9uQ2xpZW50cykKLSAgICAgICAgICAg
IG1vdGlvbkNsaWVudHMudW5jaGVja2VkQXBwZW5kKG1ha2VXZWFrUHRyKCZjbGllbnQpKTsKKyAg
ICAgICAgICAgIG1vdGlvbkNsaWVudHMudW5jaGVja2VkQXBwZW5kKGNsaWVudCk7CiAKICAgICAg
ICAgZm9yIChhdXRvJiBjbGllbnQgOiBtb3Rpb25DbGllbnRzKSB7CiAgICAgICAgICAgICBpZiAo
Y2xpZW50KQpAQCAtMjQ0LDcgKzI0NCw3IEBAIC0gKHZvaWQpc2VuZE1vdGlvbkRhdGE6KENNRGV2
aWNlTW90aW9uICopbmV3TW90aW9uIHdpdGhIZWFkaW5nOihDTEhlYWRpbmcgKiluZXdICiAgICAg
ICAgIFZlY3RvcjxXZWFrUHRyPFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBtb3Rpb25D
bGllbnRzOwogICAgICAgICBtb3Rpb25DbGllbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9k
ZXZpY2VNb3Rpb25DbGllbnRzLmNvbXB1dGVTaXplKCkpOwogICAgICAgICBmb3IgKGF1dG8mIGNs
aWVudCA6IG1fZGV2aWNlTW90aW9uQ2xpZW50cykKLSAgICAgICAgICAgIG1vdGlvbkNsaWVudHMu
dW5jaGVja2VkQXBwZW5kKG1ha2VXZWFrUHRyKCZjbGllbnQpKTsKKyAgICAgICAgICAgIG1vdGlv
bkNsaWVudHMudW5jaGVja2VkQXBwZW5kKGNsaWVudCk7CiAgICAgICAgIAogICAgICAgICBmb3Ig
KGF1dG8mIGNsaWVudCA6IG1vdGlvbkNsaWVudHMpIHsKICAgICAgICAgICAgIGlmIChjbGllbnQp
CkBAIC0yNTYsNyArMjU2LDcgQEAgLSAodm9pZClzZW5kTW90aW9uRGF0YTooQ01EZXZpY2VNb3Rp
b24gKiluZXdNb3Rpb24gd2l0aEhlYWRpbmc6KENMSGVhZGluZyAqKW5ld0gKICAgICAgICAgVmVj
dG9yPFdlYWtQdHI8V2ViQ29yZTo6TW90aW9uTWFuYWdlckNsaWVudD4+IG9yaWVudGF0aW9uQ2xp
ZW50czsKICAgICAgICAgb3JpZW50YXRpb25DbGllbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
bV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMuY29tcHV0ZVNpemUoKSk7CiAgICAgICAgIGZvciAo
YXV0byYgY2xpZW50IDogbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMpCi0gICAgICAgICAgICBv
cmllbnRhdGlvbkNsaWVudHMudW5jaGVja2VkQXBwZW5kKG1ha2VXZWFrUHRyKCZjbGllbnQpKTsK
KyAgICAgICAgICAgIG9yaWVudGF0aW9uQ2xpZW50cy51bmNoZWNrZWRBcHBlbmQoY2xpZW50KTsK
ICAgICAgICAgCiAgICAgICAgIC8vIENvbXBvc2UgdGhlIHJhdyBtb3Rpb24gZGF0YSB0byBhbiBp
bnRlcm1lZGlhdGUgWlhZLWJhc2VkIDN4MyByb3RhdGlvbgogICAgICAgICAvLyBtYXRyaXggKFIp
IHdoZXJlIFt6PWF0dGl0dWRlLnlhdywgeD1hdHRpdHVkZS5waXRjaCwgeT1hdHRpdHVkZS5yb2xs
XQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3Rvckhp
Z2hsaWdodC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdo
bGlnaHQubW0KaW5kZXggMWE1YTQyMWM0ZTc5ZmY4YjllYTk4OWIxNjE5Mjg0OTFmMWViYTIwYS4u
M2YwNjk0MDQ2MDI5NGRjZmU4YTgzMDI4ZDFmZDdkNDY2ZGE4NTM5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tCkBAIC02
Miw4ICs2Miw4IEBAIFJlZjxEYXRhRGV0ZWN0b3JIaWdobGlnaHQ+IERhdGFEZXRlY3RvckhpZ2hs
aWdodDo6Y3JlYXRlRm9ySW1hZ2VPdmVybGF5KFBhZ2UmIHBhCiB9CiAKIERhdGFEZXRlY3Rvckhp
Z2hsaWdodDo6RGF0YURldGVjdG9ySGlnaGxpZ2h0KFBhZ2UmIHBhZ2UsIERhdGFEZXRlY3Rvckhp
Z2hsaWdodENsaWVudCYgY2xpZW50LCBUeXBlIHR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJl
Zj4mJiBkZEhpZ2hsaWdodCwgU2ltcGxlUmFuZ2UmJiByYW5nZSkKLSAgICA6IG1fY2xpZW50KG1h
a2VXZWFrUHRyKGNsaWVudCkpCi0gICAgLCBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCisgICAg
OiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3BhZ2UocGFnZSkKICAgICAsIG1fcmFuZ2UoV1RG
TW92ZShyYW5nZSkpCiAgICAgLCBtX2dyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllcjo6Y3JlYXRl
KHBhZ2UuY2hyb21lKCkuY2xpZW50KCkuZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpKQog
ICAgICwgbV90eXBlKHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbQppbmRleCAwYmEyYzkyMjlhZDlh
NDRiOWUwZTA1OTU2OTQ4OTA1MGFiZTkzYzVjLi4wMjRkMGY2NmY1Y2U4ODJmMjAxNDcyN2QxMGY1
NDNiZmNmNDk1MTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0KQEAgLTUyLDcgKzUyLDcgQEAgUmVm
PFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYz4gUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFj
OjpjcmVhdGUoUGxheWJhY2tTZXMKIH0KIAogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjOjpQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMoUGxheWJhY2tTZXNzaW9uTW9kZWwmIG1vZGVsKQot
ICAgIDogbV9wbGF5YmFja1Nlc3Npb25Nb2RlbChtYWtlV2Vha1B0cihtb2RlbCkpCisgICAgOiBt
X3BsYXliYWNrU2Vzc2lvbk1vZGVsKG1vZGVsKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQpp
bmRleCAyNDc1YzM1YjhmMzRhODE2NTdhOGUxOTAwYzQ4MTkyOTM2ZmJhMGI2Li42ZDYwYjMxNzEy
NzgzYjI1NDY5YmY5MThiZjU4YWUzZWQ5MDQ0NmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KQEAg
LTM5NSwxNCArMzk1LDE0IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRW
aWRlb0Z1bGxzY3JlZW5Nb2RlbChWaWRlb0Z1bGxzY3JlZW5Nb2RlbCoKIHsKICAgICBpZiAobV92
aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+cmVt
b3ZlQ2xpZW50KCp0aGlzKTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsID0gbWFrZVdlYWtQ
dHIobW9kZWwpOworICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwgPSBtb2RlbDsKICAgICBpZiAo
bV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+
YWRkQ2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6
OnNldFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9i
c2VydmVyKiBvYnNlcnZlcikKIHsKLSAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlciA9IG1h
a2VXZWFrUHRyKG9ic2VydmVyKTsKKyAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlciA9IG9i
c2VydmVyOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0TW9kZShI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9vbCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpp
bmRleCA5NWRhYzQxNjc4N2ZhZjM3MjQ2ZTQ5YTc1NjFjNmQ4MmIwNjIwNWZiLi44YzFmN2MwZTUz
MTNiNmI4NTZjZDNjZGY1ZTgzODRmMzZiN2I1M2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2Nv
YS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC0xMDMsNyArMTAzLDcgQEAg
UmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6Y3JlYXRlKGJvb2wgaGFzQXUKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6Y29tcHJlc3NlZFZpZGVvT3V0cHV0QnVmZmVyQ2FsbGJhY2sodm9pZCAqbWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXIsIENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4pCiB7Ci0gICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1dyaXRlciA9IG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyKj4obWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIpKV0geworICAg
IGNhbGxPbk1haW5UaHJlYWQoW3dlYWtXcml0ZXIgPSBXZWFrUHRyIHsgc3RhdGljX2Nhc3Q8TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXIqPihtZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcikgfV0g
ewogICAgICAgICBpZiAod2Vha1dyaXRlcikKICAgICAgICAgICAgIHdlYWtXcml0ZXItPnByb2Nl
c3NOZXdDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXJzKCk7CiAgICAgfSk7CkBAIC0xMTEsNyAr
MTExLDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y29tcHJlc3NlZFZpZGVv
T3V0cHV0QnVmZmVyQ2FsbGJhY2sodm9pZCAqbWVkaWEKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcjo6Y29tcHJlc3NlZEF1ZGlvT3V0cHV0QnVmZmVyQ2FsbGJhY2sodm9pZCAqbWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXIsIENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4pCiB7Ci0g
ICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1dyaXRlciA9IG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0
PE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKj4obWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIp
KV0geworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtXcml0ZXIgPSBXZWFrUHRyIHsgc3RhdGlj
X2Nhc3Q8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIqPihtZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcikgfV0gewogICAgICAgICBpZiAod2Vha1dyaXRlcikKICAgICAgICAgICAgIHdlYWtXcml0
ZXItPnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJzKCk7CiAgICAgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCmluZGV4IGFkNjA0MmM4YmMzNDZi
NTE1NTZiZGQ1ZmY4ZDllNTM1ZWU2ODlhYWIuLjE2MjQ5ODA5NTEyMmY0ZjRiMDUyMDVlNzFmYjdj
YzViOTBlNGJmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCkBA
IC01Nyw3ICs1Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcj4gQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6Y3JlCiAgICAgYXV0byYgdHJhY2sg
PSBzdHJlYW0ubV9zdHJlYW1UcmFjay5nZXQoKTsKICAgICByZW5kZXJlci0+c2V0TG9nZ2VyKHRy
YWNrLmxvZ2dlcigpLCB0cmFjay5sb2dJZGVudGlmaWVyKCkpOwogI2VuZGlmCi0gICAgcmVuZGVy
ZXItPnNldENyYXNoQ2FsbGJhY2soW3N0cmVhbSA9IG1ha2VXZWFrUHRyKHN0cmVhbSldIHsKKyAg
ICByZW5kZXJlci0+c2V0Q3Jhc2hDYWxsYmFjayhbc3RyZWFtID0gV2Vha1B0ciB7IHN0cmVhbSB9
XSB7CiAgICAgICAgIGlmIChzdHJlYW0pCiAgICAgICAgICAgICBzdHJlYW0tPmNyZWF0ZU5ld1Jl
bmRlcmVyKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRFRNRlNlbmRlckJhY2tlbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEVE1GU2Vu
ZGVyQmFja2VuZC5oCmluZGV4IDAzYmUxMDU2ZGZhM2U3M2NlNTk1ZjE3M2IwMjYyMWEyYzJjZDgz
MmQuLjUwYzhjNmUzOTU0N2FhYjRlMjIxYWJjZmY4ZjA2ODk3MWFhZjlmYjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENE
VE1GU2VuZGVyQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEVE1GU2VuZGVyQmFja2VuZC5oCkBAIC0zOSw3ICszOSw3
IEBAIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LS8vIFVzZSBlYWdlciBpbml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQdHJGYWN0b3J5IHNpbmNl
IHdlIGNhbGwgbWFrZVdlYWtQdHIoKSBmcm9tIGFub3RoZXIgdGhyZWFkLgorLy8gVXNlIGVhZ2Vy
IGluaXRpYWxpemF0aW9uIGZvciB0aGUgV2Vha1B0ckZhY3Rvcnkgc2luY2Ugd2UgY29uc3RydWN0
IFdlYWtQdHJzIG9uIGFub3RoZXIgdGhyZWFkLgogY2xhc3MgTGliV2ViUlRDRFRNRlNlbmRlckJh
Y2tlbmQgZmluYWwgOiBwdWJsaWMgUlRDRFRNRlNlbmRlckJhY2tlbmQsIHByaXZhdGUgd2VicnRj
OjpEdG1mU2VuZGVyT2JzZXJ2ZXJJbnRlcmZhY2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxMaWJX
ZWJSVENEVE1GU2VuZGVyQmFja2VuZCwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFn
ZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNr
QXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmNw
cAppbmRleCA4MzE3MzBjMDU2ZDc2OWZmNTdjZWMxMzAyODIzNWVhY2RjNzg4M2UzLi5hNTA1NmM4
ZTZiZTEzNTk4N2EwOGVhMjYzZDBmOWZkMjQwNjdjZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNl
UHJvdmlkZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EuY3BwCkBAIC0z
OCw3ICszOCw3IEBAIFJlZjxNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
PiBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlCiB9CiAKIE1lZGlhU3RyZWFtVHJh
Y2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6Ok1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVBy
b3ZpZGVyQ29jb2EoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHNvdXJjZSkKLSAgICA6IG1fY2Fw
dHVyZVNvdXJjZShtYWtlV2Vha1B0cihzb3VyY2UpKQorICAgIDogbV9jYXB0dXJlU291cmNlKHNv
dXJjZSkKICAgICAsIG1fc291cmNlKHNvdXJjZS5zb3VyY2UoKSkKIHsKICNpZiBVU0UoTElCV0VC
UlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9D
b29raWVTdG9yYWdlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y29jb2EvQ29va2llU3RvcmFnZU9ic2VydmVyLmgKaW5kZXggMWJmMGM2MDViYmE3MGUxYmUzZGVi
YzI1MTliNGI0YTI0ODBjMTgzYy4uYzIyZDkzNzAzYmU0YTZjYTAxYWIzZDIyNDhmYjczZjlhMmQw
ZGNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9D
b29raWVTdG9yYWdlT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL0Nvb2tpZVN0b3JhZ2VPYnNlcnZlci5oCkBAIC0zNSw3ICszNSw3IEBAIE9CSkNf
Q0xBU1MgV2ViQ29va2llT2JzZXJ2ZXJBZGFwdGVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LS8vIFVzZSBlYWdlciBpbml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQdHJGYWN0b3J5IHNpbmNl
IHdlIGNhbGwgbWFrZVdlYWtQdHIoKSBmcm9tIGEgbm9uLW1haW4gdGhyZWFkLgorLy8gVXNlIGVh
Z2VyIGluaXRpYWxpemF0aW9uIGZvciB0aGUgV2Vha1B0ckZhY3Rvcnkgc2luY2Ugd2UgY29uc3Ry
dWN0IFdlYWtQdHJzIG9uIGEgbm9uLW1haW4gdGhyZWFkLgogY2xhc3MgV0VCQ09SRV9FWFBPUlQg
Q29va2llU3RvcmFnZU9ic2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPENvb2tpZVN0b3Jh
Z2VPYnNlcnZlciwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+IHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb29raWVT
dG9yYWdlT2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tCmluZGV4IDdhNzlk
ZTA5M2IwNTE0MTcwZDAzNDg5M2UxMjNiOTAzN2ExYWE1ZTYuLjJlYzZmZDRhNGFiODljZTA4Y2Q0
MDc0ODBlYjhiMzFmMGU5YzBjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvUmFuZ2VSZXNwb25zZUdlbmVyYXRvci5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW0KQEAg
LTExMyw3ICsxMTMsNyBAQCB2b2lkIFJhbmdlUmVzcG9uc2VHZW5lcmF0b3I6OmdpdmVSZXNwb25z
ZVRvVGFza0lmQnl0ZXNJblJhbmdlUmVjZWl2ZWQoV2ViQ29yZU5TVQogICAgIGlmICghdGFza0Rh
dGEpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBhdXRvIGdpdmVCeXRlc1RvVGFzayA9IFt0
YXNrID0gcmV0YWluUHRyKHRhc2spLCBidWZmZXIsIHRhc2tEYXRhID0gbWFrZVdlYWtQdHIoKnRh
c2tEYXRhKSwgZ2VuZXJhdG9yID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgYXV0byBnaXZl
Qnl0ZXNUb1Rhc2sgPSBbdGFzayA9IHJldGFpblB0cih0YXNrKSwgYnVmZmVyLCB0YXNrRGF0YSA9
IFdlYWtQdHIgeyAqdGFza0RhdGEgfSwgZ2VuZXJhdG9yID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsK
ICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAgaWYgKFt0YXNrIHN0YXRl
XSAhPSBOU1VSTFNlc3Npb25UYXNrU3RhdGVSdW5uaW5nKQogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgUmFuZ2VSZXNwb25zZUdlbmVyYXRvcjo6Z2l2ZVJlc3Bv
bnNlVG9UYXNrSWZCeXRlc0luUmFuZ2VSZWNlaXZlZChXZWJDb3JlTlNVCiAgICAgc3dpdGNoICh0
YXNrRGF0YS0+cmVzcG9uc2VTdGF0ZSkgewogICAgIGNhc2UgRGF0YTo6VGFza0RhdGE6OlJlc3Bv
bnNlU3RhdGU6Ok5vdFN5bnRoZXNpemVkWWV0OiB7CiAgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBz
eW50aGVzaXplZFJlc3BvbnNlRm9yUmFuZ2UoZGF0YS5vcmlnaW5hbFJlc3BvbnNlLCByYW5nZSwg
ZXhwZWN0ZWRDb250ZW50TGVuZ3RoKTsKLSAgICAgICAgW3Rhc2sgcmVzb3VyY2U6bnVsbHB0ciBy
ZWNlaXZlZFJlc3BvbnNlOnJlc3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOltnaXZlQnl0ZXNUb1Rh
c2sgPSBXVEZNb3ZlKGdpdmVCeXRlc1RvVGFzayksIHRhc2tEYXRhID0gbWFrZVdlYWtQdHIodGFz
a0RhdGEpLCB0YXNrID0gcmV0YWluUHRyKHRhc2spXSAoV2ViQ29yZTo6U2hvdWxkQ29udGludWVQ
b2xpY3lDaGVjayBzaG91bGRDb250aW51ZSkgeworICAgICAgICBbdGFzayByZXNvdXJjZTpudWxs
cHRyIHJlY2VpdmVkUmVzcG9uc2U6cmVzcG9uc2UgY29tcGxldGlvbkhhbmRsZXI6W2dpdmVCeXRl
c1RvVGFzayA9IFdURk1vdmUoZ2l2ZUJ5dGVzVG9UYXNrKSwgdGFza0RhdGEgPSBXZWFrUHRyIHsg
dGFza0RhdGEgfSwgdGFzayA9IHJldGFpblB0cih0YXNrKV0gKFdlYkNvcmU6OlNob3VsZENvbnRp
bnVlUG9saWN5Q2hlY2sgc2hvdWxkQ29udGludWUpIHsKICAgICAgICAgICAgIGlmICh0YXNrRGF0
YSkKICAgICAgICAgICAgICAgICB0YXNrRGF0YS0+cmVzcG9uc2VTdGF0ZSA9IERhdGE6OlRhc2tE
YXRhOjpSZXNwb25zZVN0YXRlOjpTZXNzaW9uQ2FsbGVkQ29tcGxldGlvbkhhbmRsZXI7CiAgICAg
ICAgICAgICBpZiAoc2hvdWxkQ29udGludWUgPT0gU2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6
WWVzKQpAQCAtMjA2LDcgKzIwNiw3IEBAIGJvb2wgUmFuZ2VSZXNwb25zZUdlbmVyYXRvcjo6d2ls
bEhhbmRsZVJlcXVlc3QoV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrICp0YXNrCiBjbGFzcyBS
YW5nZVJlc3BvbnNlR2VuZXJhdG9yOjpNZWRpYVJlc291cmNlQ2xpZW50IDogcHVibGljIFBsYXRm
b3JtTWVkaWFSZXNvdXJjZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgTWVkaWFSZXNvdXJjZUNsaWVu
dChSYW5nZVJlc3BvbnNlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFVSTCYmIHVybCkKLSAgICAgICAg
OiBtX2dlbmVyYXRvcihtYWtlV2Vha1B0cihnZW5lcmF0b3IpKQorICAgICAgICA6IG1fZ2VuZXJh
dG9yKGdlbmVyYXRvcikKICAgICAgICAgLCBtX3VybFN0cmluZyhXVEZNb3ZlKHVybCkuc3RyaW5n
KCkpIHsgfQogcHJpdmF0ZToKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9E
T01NaW1lVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcApp
bmRleCBhMTkyZWU3ZWVmZTQ3NTQ2ZDlmMGZiMTUyYTllMTQ1MTMwNWI0MmQ4Li40ZWE0ZmZiNDQ2
YmViYjVmZmI4OThhMjVlY2Y2ODRmZjU3OWZhZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RP
TU1pbWVUeXBlLmNwcApAQCAtMzEsOSArMzEsOSBAQCBSZWY8RE9NTWltZVR5cGU+IERPTU1pbWVU
eXBlOjpjcmVhdGUoTmF2aWdhdG9yJiBuYXZpZ2F0b3IsIGNvbnN0IE1pbWVDbGFzc0luZm8mCiB9
CiAKIERPTU1pbWVUeXBlOjpET01NaW1lVHlwZShOYXZpZ2F0b3ImIG5hdmlnYXRvciwgY29uc3Qg
TWltZUNsYXNzSW5mbyYgaW5mbywgRE9NUGx1Z2luJiBlbmFibGVkUGx1Z2luKQotICAgIDogbV9u
YXZpZ2F0b3IobWFrZVdlYWtQdHIobmF2aWdhdG9yKSkKKyAgICA6IG1fbmF2aWdhdG9yKG5hdmln
YXRvcikKICAgICAsIG1faW5mbyhpbmZvKQotICAgICwgbV9lbmFibGVkUGx1Z2luKG1ha2VXZWFr
UHRyKGVuYWJsZWRQbHVnaW4pKQorICAgICwgbV9lbmFibGVkUGx1Z2luKGVuYWJsZWRQbHVnaW4p
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGVB
cnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlQXJyYXkuY3BwCmlu
ZGV4IDAwNjg3Zjg0NWIyMmJkMGQ4ZGM3MTRlNTY5NGZjZDRjYWNlOWNlOWIuLmE2ZWI0Zjk5ZjM0
MTZjZjg0NDYwZmMzYjAwYjRhNmYwMjQ1NTZkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9ET01NaW1lVHlwZUFycmF5LmNwcApAQCAtMzUsNyArMzUsNyBAQCBSZWY8RE9NTWltZVR5cGVB
cnJheT4gRE9NTWltZVR5cGVBcnJheTo6Y3JlYXRlKE5hdmlnYXRvciYgbmF2aWdhdG9yLCBWZWN0
b3I8UmVmPAogfQogCiBET01NaW1lVHlwZUFycmF5OjpET01NaW1lVHlwZUFycmF5KE5hdmlnYXRv
ciYgbmF2aWdhdG9yLCBWZWN0b3I8UmVmPERPTU1pbWVUeXBlPj4mJiB0eXBlcykKLSAgICA6IG1f
bmF2aWdhdG9yKG1ha2VXZWFrUHRyKG5hdmlnYXRvcikpCisgICAgOiBtX25hdmlnYXRvcihuYXZp
Z2F0b3IpCiAgICAgLCBtX3R5cGVzKFdURk1vdmUodHlwZXMpKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9ET01QbHVnaW4uY3BwCmluZGV4IDlmZGJjZDNmODA5NzYxMWFiMjU2YWE5MDk4MTAxMzNm
ZjBmYThlYmQuLjNiOGQ0ZGY5Zjk3OTE2ZTAwYmRlZmFhOWQ2Yzk3YmM3YTA2MzhkMDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbi5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIFZl
Y3RvcjxSZWY8RE9NTWltZVR5cGU+PiBtYWtlTWltZVR5cGVzKE5hdmlnYXRvciYgbmF2aWdhdG9y
LCBjb25zdCBQbHVnaW4KIH0KIAogRE9NUGx1Z2luOjpET01QbHVnaW4oTmF2aWdhdG9yJiBuYXZp
Z2F0b3IsIGNvbnN0IFBsdWdpbkluZm8mIGluZm8pCi0gICAgOiBtX25hdmlnYXRvcihtYWtlV2Vh
a1B0cihuYXZpZ2F0b3IpKQorICAgIDogbV9uYXZpZ2F0b3IobmF2aWdhdG9yKQogICAgICwgbV9p
bmZvKGluZm8pCiAgICAgLCBtX21pbWVUeXBlcyhtYWtlTWltZVR5cGVzKG5hdmlnYXRvciwgaW5m
bywgKnRoaXMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVn
aW5BcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcApp
bmRleCAyOTZmNGNlMTNiNTgzODZkMWZiMjcyZjhkYmY1MmMxOTUxYmRmOWE3Li4zZThlNGQ3ZWEy
YjQ5MWFkNzRhNmRlMmE0OTc4NjdkMWUwZmNmY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L0RPTVBsdWdpbkFycmF5LmNwcApAQCAtMzYsNyArMzYsNyBAQCBSZWY8RE9NUGx1Z2luQXJyYXk+
IERPTVBsdWdpbkFycmF5OjpjcmVhdGUoTmF2aWdhdG9yJiBuYXZpZ2F0b3IsIFZlY3RvcjxSZWY8
RE9NUAogfQogCiBET01QbHVnaW5BcnJheTo6RE9NUGx1Z2luQXJyYXkoTmF2aWdhdG9yJiBuYXZp
Z2F0b3IsIFZlY3RvcjxSZWY8RE9NUGx1Z2luPj4mJiBwdWJsaWNseVZpc2libGVQbHVnaW5zLCBW
ZWN0b3I8UmVmPERPTVBsdWdpbj4+JiYgYWRkaXRpb25hbFdlYlZpc2liaWxlUGx1Z2lucykKLSAg
ICA6IG1fbmF2aWdhdG9yKG1ha2VXZWFrUHRyKG5hdmlnYXRvcikpCisgICAgOiBtX25hdmlnYXRv
cihuYXZpZ2F0b3IpCiAgICAgLCBtX3B1YmxpY2x5VmlzaWJsZVBsdWdpbnMoV1RGTW92ZShwdWJs
aWNseVZpc2libGVQbHVnaW5zKSkKICAgICAsIG1fYWRkaXRpb25hbFdlYlZpc2liaWxlUGx1Z2lu
cyhXVEZNb3ZlKGFkZGl0aW9uYWxXZWJWaXNpYmlsZVBsdWdpbnMpKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmNwcAppbmRleCBmNTk2MmFiOTQ5NjFhMzE3
YTE0MjAzNDgzNGZiODNlYWNlYmZhOTk4Li5hODJjNmNkMjgwNmJmYzAxZjExNTM0YWY0NTIyMTQy
ZDcxODFhYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdP
YmplY3RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3Rz
LmNwcApAQCAtNDksNyArNDksNyBAQCBDT01QSUxFX0FTU0VSVChzaXplb2YoV2Vha1B0cjxMZWdh
Y3lSb290SW5saW5lQm94PikgPT0gc2l6ZW9mKHZvaWQqKSwgV2Vha1B0cl9zaAogI2VuZGlmCiAK
IEZsb2F0aW5nT2JqZWN0OjpGbG9hdGluZ09iamVjdChSZW5kZXJCb3gmIHJlbmRlcmVyKQotICAg
IDogbV9yZW5kZXJlcihtYWtlV2Vha1B0cihyZW5kZXJlcikpCisgICAgOiBtX3JlbmRlcmVyKHJl
bmRlcmVyKQogICAgICwgbV9wYWludHNGbG9hdCh0cnVlKQogICAgICwgbV9pc0Rlc2NlbmRhbnQo
ZmFsc2UpCiAgICAgLCBtX2lzUGxhY2VkKGZhbHNlKQpAQCAtNjYsNyArNjYsNyBAQCBGbG9hdGlu
Z09iamVjdDo6RmxvYXRpbmdPYmplY3QoUmVuZGVyQm94JiByZW5kZXJlcikKIH0KIAogRmxvYXRp
bmdPYmplY3Q6OkZsb2F0aW5nT2JqZWN0KFJlbmRlckJveCYgcmVuZGVyZXIsIFR5cGUgdHlwZSwg
Y29uc3QgTGF5b3V0UmVjdCYgZnJhbWVSZWN0LCBjb25zdCBMYXlvdXRTaXplJiBtYXJnaW5PZmZz
ZXQsIGJvb2wgc2hvdWxkUGFpbnQsIGJvb2wgaXNEZXNjZW5kYW50KQotICAgIDogbV9yZW5kZXJl
cihtYWtlV2Vha1B0cihyZW5kZXJlcikpCisgICAgOiBtX3JlbmRlcmVyKHJlbmRlcmVyKQogICAg
ICwgbV9mcmFtZVJlY3QoZnJhbWVSZWN0KQogICAgICwgbV9tYXJnaW5PZmZzZXQobWFyZ2luT2Zm
c2V0KQogICAgICwgbV90eXBlKHR5cGUpCkBAIC0xNTIsNyArMTUyLDcgQEAgcHVibGljOgogICAg
IHR5cGVkZWYgRmxvYXRpbmdPYmplY3RJbnRlcnZhbCBJbnRlcnZhbFR5cGU7CiAKICAgICBDb21w
dXRlRmxvYXRPZmZzZXRBZGFwdGVyKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgcmVuZGVyZXIsIExh
eW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tLCBMYXlvdXRVbml0IG9mZnNl
dCkKLSAgICAgICAgOiBtX3JlbmRlcmVyKG1ha2VXZWFrUHRyKHJlbmRlcmVyKSkKKyAgICAgICAg
OiBtX3JlbmRlcmVyKHJlbmRlcmVyKQogICAgICAgICAsIG1fbGluZVRvcChsaW5lVG9wKQogICAg
ICAgICAsIG1fbGluZUJvdHRvbShsaW5lQm90dG9tKQogICAgICAgICAsIG1fb2Zmc2V0KG9mZnNl
dCkKQEAgLTIxMyw3ICsyMTMsNyBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBGbG9hdGluZ09iamVj
dEludGVydmFsIEludGVydmFsVHlwZTsKIAogICAgIEZpbmROZXh0RmxvYXRMb2dpY2FsQm90dG9t
QWRhcHRlcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIHJlbmRlcmVyLCBMYXlvdXRVbml0IGJlbG93
TG9naWNhbEhlaWdodCkKLSAgICAgICAgOiBtX3JlbmRlcmVyKG1ha2VXZWFrUHRyKHJlbmRlcmVy
KSkKKyAgICAgICAgOiBtX3JlbmRlcmVyKHJlbmRlcmVyKQogICAgICAgICAsIG1fYmVsb3dMb2dp
Y2FsSGVpZ2h0KGJlbG93TG9naWNhbEhlaWdodCkKICAgICB7CiAgICAgfQpAQCAtMjc1LDcgKzI3
NSw3IEBAIExheW91dFVuaXQgRmxvYXRpbmdPYmplY3RzOjpmaW5kTmV4dEZsb2F0TG9naWNhbEJv
dHRvbUJlbG93Rm9yQmxvY2soTGF5b3V0VW5pdCBsCiAKIEZsb2F0aW5nT2JqZWN0czo6RmxvYXRp
bmdPYmplY3RzKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgcmVuZGVyZXIpCiAgICAgOiBtX2hvcml6
b250YWxXcml0aW5nTW9kZShyZW5kZXJlci5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQotICAg
ICwgbV9yZW5kZXJlcihtYWtlV2Vha1B0cihyZW5kZXJlcikpCisgICAgLCBtX3JlbmRlcmVyKHJl
bmRlcmVyKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxv
YXRpbmdPYmplY3RzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3Rz
LmgKaW5kZXggZmFjZDBiMmU1YTM3OGIyODg1YzhjYWRhNWJlYWQ1MTI5Yjc0ZDI2My4uMjBmMzA3
MzkzMjcyMGZhNWViZDE5NDM4ZjliMzA0MjA2ZWRhYTYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9GbG9hdGluZ09iamVjdHMuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gRklYTUU6IENhbGxlcnMgb2YgdGhlc2UgbWV0aG9kcyBhcmUgZGFuZ2Vyb3VzIGFuZCBzaG91
bGQgYmUgYWxsb3dlZCBleHBsaWNpdGx5IG9yIHJlbW92ZWQuCiAgICAgTGVnYWN5Um9vdElubGlu
ZUJveCogb3JpZ2luYXRpbmdMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5hdGluZ0xpbmUu
Z2V0KCk7IH0KICAgICB2b2lkIGNsZWFyT3JpZ2luYXRpbmdMaW5lKCkgeyBtX29yaWdpbmF0aW5n
TGluZSA9IG51bGxwdHI7IH0KLSAgICB2b2lkIHNldE9yaWdpbmF0aW5nTGluZShMZWdhY3lSb290
SW5saW5lQm94JiBsaW5lKSB7IG1fb3JpZ2luYXRpbmdMaW5lID0gbWFrZVdlYWtQdHIobGluZSk7
IH0KKyAgICB2b2lkIHNldE9yaWdpbmF0aW5nTGluZShMZWdhY3lSb290SW5saW5lQm94JiBsaW5l
KSB7IG1fb3JpZ2luYXRpbmdMaW5lID0gbGluZTsgfQogCiAgICAgTGF5b3V0U2l6ZSBsb2NhdGlv
bk9mZnNldE9mQm9yZGVyQm94KCkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZC5j
cHAKaW5kZXggOTFkOWZiMDBiMzgzNmIxYjU3N2ZiMWYwODU1ZmU0M2FmODEyYTVmZC4uNTYwMmQ3
YzJkNGQ1YmNhOTMyNDU0NGI3NWFkMjJjYjI2NThlZDAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0dyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9H
cmlkLmNwcApAQCAtNjgsNyArNjgsNyBAQCB2b2lkIEdyaWQ6Omluc2VydChSZW5kZXJCb3gmIGNo
aWxkLCBjb25zdCBHcmlkQXJlYSYgYXJlYSkKIAogICAgIGZvciAoYXV0byByb3cgOiBhcmVhLnJv
d3MpIHsKICAgICAgICAgZm9yIChhdXRvIGNvbHVtbiA6IGFyZWEuY29sdW1ucykKLSAgICAgICAg
ICAgIG1fZ3JpZFtyb3ddW2NvbHVtbl0uYXBwZW5kKG1ha2VXZWFrUHRyKGNoaWxkKSk7CisgICAg
ICAgICAgICBtX2dyaWRbcm93XVtjb2x1bW5dLmFwcGVuZChjaGlsZCk7CiAgICAgfQogCiAgICAg
c2V0R3JpZEl0ZW1BcmVhKGNoaWxkLCBhcmVhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGln
aGxpZ2h0RGF0YS5oCmluZGV4IGU0Y2JmOWJhYmY1MmE4ZDcwMmUxNjY0ZDlhZjlhZWViMGI1NTM1
NzIuLmFmMTE1ZGQzMDAwODhhYzA5NzlkMDM2MTMxOThlNTE4YTVjZDUwNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaApAQCAtNDMsOCArNDMsOCBAQCBjbGFzcyBS
ZW5kZXJSYW5nZSB7CiBwdWJsaWM6CiAgICAgUmVuZGVyUmFuZ2UoKSA9IGRlZmF1bHQ7CiAgICAg
UmVuZGVyUmFuZ2UoUmVuZGVyT2JqZWN0KiBzdGFydCwgUmVuZGVyT2JqZWN0KiBlbmQsIHVuc2ln
bmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQpCi0gICAgICAgIDogbV9zdGFydCht
YWtlV2Vha1B0cihzdGFydCkpCi0gICAgICAgICwgbV9lbmQobWFrZVdlYWtQdHIoZW5kKSkKKyAg
ICAgICAgOiBtX3N0YXJ0KHN0YXJ0KQorICAgICAgICAsIG1fZW5kKGVuZCkKICAgICAgICAgLCBt
X3N0YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0KQogICAgICAgICAsIG1fZW5kT2Zmc2V0KGVuZE9mZnNl
dCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5ZXJBbmNl
c3RvckNsaXBwaW5nU3RhY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXllckFuY2Vz
dG9yQ2xpcHBpbmdTdGFjay5oCmluZGV4IGQ3MzlhZjA4MThlYmViNGY4NDU5MWExMzJkNTVmMjEy
ZTIxNTI1ZDkuLjI1YmNhMjdhMTY4NjY3YmUyNDEwY2RlZTlhYmFhOWY4OTJjNDJlZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFj
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXllckFuY2VzdG9yQ2xpcHBpbmdT
dGFjay5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOwogCiBz
dHJ1Y3QgQ29tcG9zaXRlZENsaXBEYXRhIHsKICAgICBDb21wb3NpdGVkQ2xpcERhdGEoUmVuZGVy
TGF5ZXIqIGxheWVyLCBMYXlvdXRSZWN0IHJlY3QsIGJvb2wgaXNPdmVyZmxvd1Njcm9sbEVudHJ5
KQotICAgICAgICA6IGNsaXBwaW5nTGF5ZXIobWFrZVdlYWtQdHIobGF5ZXIpKQorICAgICAgICA6
IGNsaXBwaW5nTGF5ZXIobGF5ZXIpCiAgICAgICAgICwgY2xpcFJlY3QocmVjdCkKICAgICAgICAg
LCBpc092ZXJmbG93U2Nyb2xsKGlzT3ZlcmZsb3dTY3JvbGxFbnRyeSkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lQm94LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lQm94LmgKaW5kZXggM2RhN2I1ZjgwNTQ0YjQw
ZmJmMGMyNGEwMWM3M2UzZjQ3MjllM2JlYi4uZjFmNTNiZmZmZGU5YzgzNzJkYWEwYWY4NzYxNThh
YzY3ZmFiOTU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlu
bGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVCb3gu
aApAQCAtMzY3LDcgKzM2Nyw3IEBAIHByaXZhdGU6CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNp
dCBMZWdhY3lJbmxpbmVCb3goUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKLSAgICAgICAgOiBtX3Jl
bmRlcmVyKG1ha2VXZWFrUHRyKHJlbmRlcmVyKSkKKyAgICAgICAgOiBtX3JlbmRlcmVyKHJlbmRl
cmVyKQogICAgIHsKICAgICB9CiAKQEAgLTM3NSw3ICszNzUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIDogbV9uZXh0T25MaW5lKG5leHQpCiAgICAgICAgICwgbV9wcmV2aW91c09uTGluZShwcmV2
aW91cykKICAgICAgICAgLCBtX3BhcmVudChwYXJlbnQpCi0gICAgICAgICwgbV9yZW5kZXJlciht
YWtlV2Vha1B0cihyZW5kZXJlcikpCisgICAgICAgICwgbV9yZW5kZXJlcihyZW5kZXJlcikKICAg
ICAgICAgLCBtX2xvZ2ljYWxXaWR0aChsb2dpY2FsV2lkdGgpCiAgICAgICAgICwgbV90b3BMZWZ0
KHRvcExlZnQpCiAgICAgICAgICwgbV9iaXRmaWVsZHMoZmlyc3RMaW5lLCBjb25zdHJ1Y3RlZCwg
ZGlydHksIGV4dHJhY3RlZCwgaXNIb3Jpem9udGFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guY3BwCmluZGV4IDdiYjM1ZjU5YzM4MjZlYzkzNmFj
ZTBiYWI0ODgxNzA0Y2UwMWFlOTcuLjcwOTgxOTMwNGVhZTQ2NmJiOWFmZjZmODVlZjU1ZTNmMjhk
OGMxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5s
aW5lQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGlu
ZUJveC5jcHAKQEAgLTYwNyw3ICs2MDcsNyBAQCBCaWRpU3RhdHVzIExlZ2FjeVJvb3RJbmxpbmVC
b3g6OmxpbmVCcmVha0JpZGlTdGF0dXMoKSBjb25zdAogCiB2b2lkIExlZ2FjeVJvb3RJbmxpbmVC
b3g6OnNldExpbmVCcmVha0luZm8oUmVuZGVyT2JqZWN0KiBvYmplY3QsIHVuc2lnbmVkIGJyZWFr
UG9zaXRpb24sIGNvbnN0IEJpZGlTdGF0dXMmIHN0YXR1cykKIHsKLSAgICBtX2xpbmVCcmVha09i
aiA9IG1ha2VXZWFrUHRyKG9iamVjdCk7CisgICAgbV9saW5lQnJlYWtPYmogPSBvYmplY3Q7CiAg
ICAgbV9saW5lQnJlYWtQb3MgPSBicmVha1Bvc2l0aW9uOwogICAgIG1fbGluZUJyZWFrQmlkaVN0
YXR1c0VvciA9IHN0YXR1cy5lb3I7CiAgICAgbV9saW5lQnJlYWtCaWRpU3RhdHVzTGFzdFN0cm9u
ZyA9IHN0YXR1cy5sYXN0U3Ryb25nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdh
Y3lSb290SW5saW5lQm94LmgKaW5kZXggOTQ5NTBiNDQ3M2RhMTA3ZGUxZmY2OTczMDIyMDdmOGI0
M2Y2ZTliYy4uZWNlZTI2NGRiNWMzMjlmNTRmZGQwOGVmMTlhYWMwNmUwODA0MzZlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5oCkBAIC0xMzUs
OSArMTM1LDkgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0RpcnR5KCkpOwog
ICAgICAgICBpZiAobV9mbG9hdHMpCi0gICAgICAgICAgICBtX2Zsb2F0cy0+YXBwZW5kKG1ha2VX
ZWFrUHRyKGZsb2F0aW5nQm94KSk7CisgICAgICAgICAgICBtX2Zsb2F0cy0+YXBwZW5kKGZsb2F0
aW5nQm94KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9mbG9hdHMgPSBtYWtlVW5pcXVl
PENsZWFuTGluZUZsb2F0TGlzdD4oMSwgbWFrZVdlYWtQdHIoZmxvYXRpbmdCb3gpKTsKKyAgICAg
ICAgICAgIG1fZmxvYXRzID0gbWFrZVVuaXF1ZTxDbGVhbkxpbmVGbG9hdExpc3Q+KDEsIGZsb2F0
aW5nQm94KTsKICAgICB9CiAKICAgICB2b2lkIHJlbW92ZUZsb2F0KFJlbmRlckJveCYgZmxvYXRp
bmdCb3gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBmMTQ0
OTgxNDU2ZmZmODg0MWNkYjE0ODVjYmU2NWZjNDhiMjY5NmY2Li43YmE4ZDM2NGVkMGZkNGQwMTE2
MWU3MTUzYzk0YzZkM2E4NDMwOTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKQEAgLTI2OTEsNyArMjY5MSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnNldENhY2hl
ZEVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93TmVlZHNVcGRhdGUoKQogUmVuZGVyRnJhZ21lbnRlZEZs
b3cqIFJlbmRlckJsb2NrOjp1cGRhdGVDYWNoZWRFbmNsb3NpbmdGcmFnbWVudGVkRmxvdyhSZW5k
ZXJGcmFnbWVudGVkRmxvdyogZnJhZ21lbnRlZEZsb3cpIGNvbnN0CiB7CiAgICAgUmVuZGVyQmxv
Y2tSYXJlRGF0YSYgcmFyZURhdGEgPSBlbnN1cmVCbG9ja1JhcmVEYXRhKCp0aGlzKTsKLSAgICBy
YXJlRGF0YS5tX2VuY2xvc2luZ0ZyYWdtZW50ZWRGbG93ID0gbWFrZVdlYWtQdHIoZnJhZ21lbnRl
ZEZsb3cpOworICAgIHJhcmVEYXRhLm1fZW5jbG9zaW5nRnJhZ21lbnRlZEZsb3cgPSBmcmFnbWVu
dGVkRmxvdzsKIAogICAgIHJldHVybiBmcmFnbWVudGVkRmxvdzsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggN2E0ZGViNWJhMjIxNDQ3ZmFj
ZWYwNmMwYTVkNzQ0ZWM5MDNmODg0Zi4uOTE2MTBiYjAzOGFlODBjNDk3MTE0Y2E1OWIyMmEyYzc2
M2UxODZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKQEAgLTMzODYsNyArMzM4Niw3IEBAIGJvb2wgUmVuZGVyQmxvY2tGbG93OjpuZWVkc0xheW91
dEFmdGVyRnJhZ21lbnRSYW5nZUNoYW5nZSgpIGNvbnN0CiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6
c2V0TXVsdGlDb2x1bW5GbG93KFJlbmRlck11bHRpQ29sdW1uRmxvdyYgZnJhZ21lbnRlZEZsb3cp
CiB7CiAgICAgQVNTRVJUKCFoYXNSYXJlQmxvY2tGbG93RGF0YSgpIHx8ICFyYXJlQmxvY2tGbG93
RGF0YSgpLT5tX211bHRpQ29sdW1uRmxvdyk7Ci0gICAgZW5zdXJlUmFyZUJsb2NrRmxvd0RhdGEo
KS5tX211bHRpQ29sdW1uRmxvdyA9IG1ha2VXZWFrUHRyKGZyYWdtZW50ZWRGbG93KTsKKyAgICBl
bnN1cmVSYXJlQmxvY2tGbG93RGF0YSgpLm1fbXVsdGlDb2x1bW5GbG93ID0gZnJhZ21lbnRlZEZs
b3c7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpjbGVhck11bHRpQ29sdW1uRmxvdygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApp
bmRleCA3NGI5ZWQzNjk1ZTBjNTdlMGZkOGQ0OWQ4YmRkZDc1OGU0ZTQzMTBkLi5iMWQ0Yzg2ODcx
ZDE5ZDM0OTRlYTM1OGVhMWJiMTZkM2U2NDI0MmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJlbmRlckJveE1vZGVsT2JqZWN0KTsKIC8vIDxiPjxp
PjxwPkhlbGxvPC9wPjwvaT48L2I+LiBJbiB0aGlzIGV4YW1wbGUgdGhlIDxpPiB3aWxsIGhhdmUg
YSBibG9jayBhcwogLy8gaXRzIGNvbnRpbnVhdGlvbiBidXQgdGhlIDxiPiB3aWxsIGp1c3QgaGF2
ZSBhbiBpbmxpbmUgYXMgaXRzIGNvbnRpbnVhdGlvbi4KIFJlbmRlckJveE1vZGVsT2JqZWN0OjpD
b250aW51YXRpb25DaGFpbk5vZGU6OkNvbnRpbnVhdGlvbkNoYWluTm9kZShSZW5kZXJCb3hNb2Rl
bE9iamVjdCYgcmVuZGVyZXIpCi0gICAgOiByZW5kZXJlcihtYWtlV2Vha1B0cihyZW5kZXJlcikp
CisgICAgOiByZW5kZXJlcihyZW5kZXJlcikKIHsKIH0KIApAQCAtMjYzNSw3ICsyNjM1LDcgQEAg
UmVuZGVyVGV4dEZyYWdtZW50KiBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Zmlyc3RMZXR0ZXJSZW1h
aW5pbmdUZXh0KCkgY29uc3QKIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnNldEZpcnN0TGV0
dGVyUmVtYWluaW5nVGV4dChSZW5kZXJUZXh0RnJhZ21lbnQmIHJlbWFpbmluZ1RleHQpCiB7CiAg
ICAgQVNTRVJUKGlzRmlyc3RMZXR0ZXIoKSk7Ci0gICAgZmlyc3RMZXR0ZXJSZW1haW5pbmdUZXh0
TWFwKCkuc2V0KHRoaXMsIG1ha2VXZWFrUHRyKHJlbWFpbmluZ1RleHQpKTsKKyAgICBmaXJzdExl
dHRlclJlbWFpbmluZ1RleHRNYXAoKS5zZXQodGhpcywgcmVtYWluaW5nVGV4dCk7CiB9CiAKIHZv
aWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNsZWFyRmlyc3RMZXR0ZXJSZW1haW5pbmdUZXh0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKaW5kZXggYTA1ZWQ2M2Fm
MDNjMmM5ZDM1ZjdkNDM2Mzg5NzZhMDk2N2JmNDNjNS4uMDczYWY1YzgyNDBkMzBhMDNiYTZkMDQ4
ZjNjNTQyOGY0Y2RlOWUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJ1dHRvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRv
bi5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgYm9vbCBSZW5kZXJCdXR0b246Omhhc0xpbmVJZkVtcHR5
KCkgY29uc3QKIHZvaWQgUmVuZGVyQnV0dG9uOjpzZXRJbm5lclJlbmRlcmVyKFJlbmRlckJsb2Nr
JiBpbm5lclJlbmRlcmVyKQogewogICAgIEFTU0VSVCghbV9pbm5lci5nZXQoKSk7Ci0gICAgbV9p
bm5lciA9IG1ha2VXZWFrUHRyKGlubmVyUmVuZGVyZXIpOworICAgIG1faW5uZXIgPSBpbm5lclJl
bmRlcmVyOwogICAgIHVwZGF0ZUFub255bW91c0NoaWxkU3R5bGUobV9pbm5lci0+bXV0YWJsZVN0
eWxlKCkpOwogfQogICAgIApAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgUmVuZGVyQnV0dG9uOjpz
ZXRUZXh0KGNvbnN0IFN0cmluZyYgc3RyKQogCiAgICAgaWYgKCFtX2J1dHRvblRleHQpIHsKICAg
ICAgICAgYXV0byBuZXdCdXR0b25UZXh0ID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dEZyYWdt
ZW50Pihkb2N1bWVudCgpLCBzdHIpOwotICAgICAgICBtX2J1dHRvblRleHQgPSBtYWtlV2Vha1B0
cigqbmV3QnV0dG9uVGV4dCk7CisgICAgICAgIG1fYnV0dG9uVGV4dCA9ICpuZXdCdXR0b25UZXh0
OwogICAgICAgICAvLyBGSVhNRTogVGhpcyBtdXRhdGlvbiBzaG91bGQgZ28gdGhyb3VnaCB0aGUg
bm9ybWFsIFJlbmRlclRyZWVCdWlsZGVyIHBhdGguCiAgICAgICAgIGlmIChSZW5kZXJUcmVlQnVp
bGRlcjo6Y3VycmVudCgpKQogICAgICAgICAgICAgUmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJlbnQo
KS0+YXR0YWNoKCp0aGlzLCBXVEZNb3ZlKG5ld0J1dHRvblRleHQpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCAyN2Y5ZDRlMzM4NjkzOGZhM2FmOGIw
YThhNmEwMTkzYmM0YTBkNDUzLi5hNGQyZGU2Y2NjZGNkODBjNGVjODIyNzNhZGI3NDE3NWQ1ZmE3
ZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0y
NDA3LDcgKzI0MDcsNyBAQCBXZWFrUHRyPFJlbmRlckJsb2NrRmxvdz4gUmVuZGVyRWxlbWVudDo6
YmFja2Ryb3BSZW5kZXJlcigpIGNvbnN0CiAKIHZvaWQgUmVuZGVyRWxlbWVudDo6c2V0QmFja2Ry
b3BSZW5kZXJlcihSZW5kZXJCbG9ja0Zsb3cmIHJlbmRlcmVyKQogewotICAgIGVuc3VyZVJhcmVE
YXRhKCkuYmFja2Ryb3BSZW5kZXJlciA9IG1ha2VXZWFrUHRyKHJlbmRlcmVyKTsKKyAgICBlbnN1
cmVSYXJlRGF0YSgpLmJhY2tkcm9wUmVuZGVyZXIgPSByZW5kZXJlcjsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAKaW5kZXgg
NGM2ZTllYTUyYWQ2OGJmOWM0NjkzNmM5N2JhOWY5NzliM2UyZTc0Ni4uMjY1Yjg5NGYzM2YyYTEz
YTQyY2RkODUwMjg5YzY4ODBjZjk0YWU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwCkBAIC04NDYsNyArODQ2LDcgQEAgdm9pZCBS
ZW5kZXJGcmFnbWVudGVkRmxvdzo6dXBkYXRlRnJhZ21lbnRzRnJhZ21lbnRlZEZsb3dQb3J0aW9u
UmVjdCgpCiAKICAgICAgICAgZnJhZ21lbnQtPnNldEZyYWdtZW50ZWRGbG93UG9ydGlvblJlY3Qo
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGZyYWdtZW50UmVjdCA6IGZyYWdtZW50UmVjdC50
cmFuc3Bvc2VkUmVjdCgpKTsKIAotICAgICAgICBtX2ZyYWdtZW50SW50ZXJ2YWxUcmVlLmFkZCh7
IGxvZ2ljYWxIZWlnaHQsIGxvZ2ljYWxIZWlnaHQgKyBmcmFnbWVudExvZ2ljYWxIZWlnaHQsIG1h
a2VXZWFrUHRyKGZyYWdtZW50KSB9KTsKKyAgICAgICAgbV9mcmFnbWVudEludGVydmFsVHJlZS5h
ZGQoeyBsb2dpY2FsSGVpZ2h0LCBsb2dpY2FsSGVpZ2h0ICsgZnJhZ21lbnRMb2dpY2FsSGVpZ2h0
LCBmcmFnbWVudCB9KTsKIAogICAgICAgICBsb2dpY2FsSGVpZ2h0ICs9IGZyYWdtZW50TG9naWNh
bEhlaWdodDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRnJhZ21lbnRlZEZsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFn
bWVudGVkRmxvdy5oCmluZGV4IDE3ZmYwNmYyZmMxMzk2N2NiOGJiNWEyZWY0ZmMyNTlmZmUzMjZi
ZDkuLjc1ZmI1MDM3MDMwNjlkMGFkMTA0ODcyMzMzNTFmYjQzMTZkYzVlN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5oCkBAIC0yMTUsOCAr
MjE1LDggQEAgcHJvdGVjdGVkOgogICAgICAgICAKICAgICAgICAgdm9pZCBzZXRSYW5nZShSZW5k
ZXJGcmFnbWVudENvbnRhaW5lciogc3RhcnQsIFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBlbmQp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIG1fc3RhcnRGcmFnbWVudCA9IG1ha2VXZWFrUHRyKHN0
YXJ0KTsKLSAgICAgICAgICAgIG1fZW5kRnJhZ21lbnQgPSBtYWtlV2Vha1B0cihlbmQpOworICAg
ICAgICAgICAgbV9zdGFydEZyYWdtZW50ID0gc3RhcnQ7CisgICAgICAgICAgICBtX2VuZEZyYWdt
ZW50ID0gZW5kOwogICAgICAgICAgICAgbV9yYW5nZUludmFsaWRhdGVkID0gdHJ1ZTsKICAgICAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNj
cmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaAppbmRl
eCAwMzQ1NWQ4NjYzNWUyYzhmMTFmMWFjZTEwZDE1Yjg4YzQyOTMwNGNhLi42OTA0MzM1OTJjN2Y0
ZWIyMmYyYWM0NTYxN2QxMDBjZWY1MTk5OTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGdWxsU2NyZWVuLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIGNvbnN0
IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyRnVsbFNj
cmVlbiI7IH0KIAogICAgIFJlbmRlckJsb2NrKiBwbGFjZWhvbGRlcigpIHsgcmV0dXJuIG1fcGxh
Y2Vob2xkZXIuZ2V0KCk7IH0KLSAgICB2b2lkIHNldFBsYWNlaG9sZGVyKFJlbmRlckJsb2NrJiBw
bGFjZWhvbGRlcikgeyBtX3BsYWNlaG9sZGVyID0gbWFrZVdlYWtQdHIocGxhY2Vob2xkZXIpOyB9
CisgICAgdm9pZCBzZXRQbGFjZWhvbGRlcihSZW5kZXJCbG9jayYgcGxhY2Vob2xkZXIpIHsgbV9w
bGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyOyB9CiAKICAgICBzdGF0aWMgUmVuZGVyUHRyPFJlbmRl
ckZ1bGxTY3JlZW4+IHdyYXBOZXdSZW5kZXJlcihSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiwgUmVuZGVyRWxlbWVudCYgcGFyZW50LCBEb2N1bWVudCYpOwogICAg
IHN0YXRpYyB2b2lkIHdyYXBFeGlzdGluZ1JlbmRlcmVyKFJlbmRlckVsZW1lbnQmLCBEb2N1bWVu
dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlUmVz
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2Uu
Y3BwCmluZGV4IDg2MmI1ZGI1MzM1MTM4NjQ1YTEyMWU2ODk0MGZkMWFjMWQ2NThjZjkuLjhmMmU5
YjYxYjQ0NDhhOGUzZGJmYjU5ZjA0YmZlNDNhY2Y5MGE5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2VSZXNvdXJjZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAg
dm9pZCBSZW5kZXJJbWFnZVJlc291cmNlOjppbml0aWFsaXplKFJlbmRlckVsZW1lbnQmIHJlbmRl
cmVyLCBDYWNoZWRJbWFnZSogc3R5bGUKIHsKICAgICBBU1NFUlQoIW1fcmVuZGVyZXIpOwogICAg
IEFTU0VSVCghbV9jYWNoZWRJbWFnZSk7Ci0gICAgbV9yZW5kZXJlciA9IG1ha2VXZWFrUHRyKHJl
bmRlcmVyKTsKKyAgICBtX3JlbmRlcmVyID0gcmVuZGVyZXI7CiAgICAgbV9jYWNoZWRJbWFnZSA9
IHN0eWxlQ2FjaGVkSW1hZ2U7CiAgICAgbV9jYWNoZWRJbWFnZVJlbW92ZUNsaWVudElzTmVlZGVk
ID0gIXN0eWxlQ2FjaGVkSW1hZ2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAppbmRleCBhZTM3NzJlYjYxMjU4YTlmMzE1NDI5Y2EyZDQ4NzVhOGZlYzAxNzk2Li4w
MmM1YzE1Y2Y2ODc4MTkwYzVhMmUyMjI4MjI5M2M0ZmVjZDhhODBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTE0MTAsNyArMTQxMCw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZVBhZ2luYXRpb24oKQogICAgIC8vIGxheWVycykuIFdlIHRyYWNrIGFu
IGVuY2xvc2luZ1BhZ2luYXRpb25MYXllciBpbnN0ZWFkIG9mIHVzaW5nIGEgc2ltcGxlIGJpdCwg
c2luY2Ugd2Ugd2FudCB0byBiZSBhYmxlIHRvIGdldCBiYWNrCiAgICAgLy8gdG8gdGhhdCBsYXll
ciBlYXNpbHkuCiAgICAgaWYgKHJlbmRlcmVyKCkuaXNSZW5kZXJGcmFnbWVudGVkRmxvdygpKSB7
Ci0gICAgICAgIG1fZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyID0gbWFrZVdlYWtQdHIoKnRoaXMp
OworICAgICAgICBtX2VuY2xvc2luZ1BhZ2luYXRpb25MYXllciA9ICp0aGlzOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC0xNDIxLDcgKzE0MjEsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1
cGRhdGVQYWdpbmF0aW9uKCkKICAgICAgICAgaWYgKHBhcmVudCgpLT5oYXNUcmFuc2Zvcm0oKSkK
ICAgICAgICAgICAgIG1fZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyID0gbnVsbHB0cjsKICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgbV9lbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIgPSBtYWtlV2Vh
a1B0cihwYXJlbnQoKS0+ZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyKEluY2x1ZGVDb21wb3NpdGVk
UGFnaW5hdGVkTGF5ZXJzKSk7CisgICAgICAgICAgICBtX2VuY2xvc2luZ1BhZ2luYXRpb25MYXll
ciA9IHBhcmVudCgpLT5lbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIoSW5jbHVkZUNvbXBvc2l0ZWRQ
YWdpbmF0ZWRMYXllcnMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNDM1LDcgKzE0
MzUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQYWdpbmF0aW9uKCkKICAgICAgICAgICAg
IGlmIChjb250YWluaW5nQmxvY2stPmxheWVyKCktPmhhc1RyYW5zZm9ybSgpKQogICAgICAgICAg
ICAgICAgIG1fZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyID0gbnVsbHB0cjsKICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBtX2VuY2xvc2luZ1BhZ2luYXRpb25MYXllciA9IG1ha2VX
ZWFrUHRyKGNvbnRhaW5pbmdCbG9jay0+bGF5ZXIoKS0+ZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVy
KEluY2x1ZGVDb21wb3NpdGVkUGFnaW5hdGVkTGF5ZXJzKSk7CisgICAgICAgICAgICAgICAgbV9l
bmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIgPSBjb250YWluaW5nQmxvY2stPmxheWVyKCktPmVuY2xv
c2luZ1BhZ2luYXRpb25MYXllcihJbmNsdWRlQ29tcG9zaXRlZFBhZ2luYXRlZExheWVycyk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0xODkwLDcgKzE4OTAsNyBA
QCB2b2lkIFJlbmRlckxheWVyOjpzZXRCYWNraW5nUHJvdmlkZXJMYXllcihSZW5kZXJMYXllciog
YmFja2luZ1Byb3ZpZGVyKQogICAgIGlmICghcmVuZGVyZXIoKS5yZW5kZXJUcmVlQmVpbmdEZXN0
cm95ZWQoKSkKICAgICAgICAgY2xlYXJDbGlwUmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50cygpOwog
Ci0gICAgbV9iYWNraW5nUHJvdmlkZXJMYXllciA9IG1ha2VXZWFrUHRyKGJhY2tpbmdQcm92aWRl
cik7CisgICAgbV9iYWNraW5nUHJvdmlkZXJMYXllciA9IGJhY2tpbmdQcm92aWRlcjsKIH0KIAog
dm9pZCBSZW5kZXJMYXllcjo6ZGlzY29ubmVjdEZyb21CYWNraW5nUHJvdmlkZXJMYXllcigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
CmluZGV4IDAxZTFlYjkyMDA1Mzk1MjM1YzVkNmM5MzJkMzRiOWQ2NWQ1MzFmNTQuLjBjYjllZDMy
NGE0NGNlZGZiNjZkZTE5ZTE3NThhNjlmNDZhNTE3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNDksNyArMjQ5LDcg
QEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kU2hhcmluZ0xheWVyKFJlbmRlckxheWVyJiBsYXll
cikKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2JhY2tpbmdQcm92aWRlckNhbmRpZGF0ZSk7Ci0g
ICAgICAgIG1fYmFja2luZ1NoYXJpbmdMYXllcnMuYXBwZW5kKG1ha2VXZWFrUHRyKGxheWVyKSk7
CisgICAgICAgIG1fYmFja2luZ1NoYXJpbmdMYXllcnMuYXBwZW5kKGxheWVyKTsKICAgICB9CiAK
ICAgICBSZW5kZXJMYXllciogdXBkYXRlQmVmb3JlRGVzY2VuZGFudFRyYXZlcnNhbChSZW5kZXJM
YXllciYsIGJvb2wgd2lsbEJlQ29tcG9zaXRlZCk7CkBAIC00NDYyLDcgKzQ0NjIsNyBAQCBTY3Jv
bGxpbmdOb2RlSUQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphdHRhY2hTY3JvbGxpbmdOb2RlKFJl
bmRlckxheWVyJiBsYXllciwgUwogICAgICAgICBtX2NsaXBMYXllci0+c2V0U2Nyb2xsaW5nTm9k
ZUlEKG5vZGVJRCk7CiAjZW5kaWYKIAotICAgIG1fc2Nyb2xsaW5nTm9kZVRvTGF5ZXJNYXAuYWRk
KG5vZGVJRCwgbWFrZVdlYWtQdHIobGF5ZXIpKTsKKyAgICBtX3Njcm9sbGluZ05vZGVUb0xheWVy
TWFwLmFkZChub2RlSUQsIGxheWVyKTsKIAogICAgIHJldHVybiBub2RlSUQ7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5b3V0U3RhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheW91dFN0YXRlLmNwcAppbmRleCBhMTQwZWY2
ZjUyZWZmYzczNWI1M2MyYzQzYWY0Yjk1MmM4MWZlYTIwLi45N2Y5Y2NkZWVlOGVjNjEzNTJhOWUw
M2UwM2Y2MWI4MWU1MzU3NGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5b3V0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXlvdXRTdGF0ZS5jcHAKQEAgLTIyMCw3ICsyMjAsNyBAQCB2b2lkIFJlbmRlckxheW91dFN0
YXRlOjpwcm9wYWdhdGVMaW5lR3JpZEluZm8oY29uc3QgUmVuZGVyTGF5b3V0U3RhdGUmIGFuY2Vz
dG9yLAogICAgIGlmIChyZW5kZXJlci5pc1Vuc3BsaXR0YWJsZUZvclBhZ2luYXRpb24oKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9saW5lR3JpZCA9IG1ha2VXZWFrUHRyKGFuY2VzdG9yLmxp
bmVHcmlkKCkpOworICAgIG1fbGluZUdyaWQgPSBhbmNlc3Rvci5saW5lR3JpZCgpOwogICAgIG1f
bGluZUdyaWRPZmZzZXQgPSBhbmNlc3Rvci5saW5lR3JpZE9mZnNldCgpOwogICAgIG1fbGluZUdy
aWRQYWdpbmF0aW9uT3JpZ2luID0gYW5jZXN0b3IubGluZUdyaWRQYWdpbmF0aW9uT3JpZ2luKCk7
CiB9CkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBSZW5kZXJMYXlvdXRTdGF0ZTo6ZXN0YWJsaXNo
TGluZUdyaWQoY29uc3QgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6TGF5b3V0U3QKICAgICAgICAg
ICAgIGlmICghY3VycmVudEdyaWQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBpZiAoY3VycmVudEdyaWQtPnN0eWxlKCkubGluZUdyaWQoKSA9PSByZW5kZXJlci5zdHlsZSgp
LmxpbmVHcmlkKCkpIHsKLSAgICAgICAgICAgICAgICBtX2xpbmVHcmlkID0gbWFrZVdlYWtQdHIo
Y3VycmVudEdyaWQpOworICAgICAgICAgICAgICAgIG1fbGluZUdyaWQgPSBjdXJyZW50R3JpZDsK
ICAgICAgICAgICAgICAgICBtX2xpbmVHcmlkT2Zmc2V0ID0gY3VycmVudFN0YXRlLm1fbGluZUdy
aWRPZmZzZXQ7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtMjQ4
LDcgKzI0OCw3IEBAIHZvaWQgUmVuZGVyTGF5b3V0U3RhdGU6OmVzdGFibGlzaExpbmVHcmlkKGNv
bnN0IEZyYW1lVmlld0xheW91dENvbnRleHQ6OkxheW91dFN0CiAgICAgfQogICAgIAogICAgIC8v
IFdlIGRpZG4ndCBmaW5kIGFuIGFscmVhZHktZXN0YWJsaXNoZWQgZ3JpZCB3aXRoIHRoaXMgaWRl
bnRpZmllci4gT3VyIHJlbmRlciBvYmplY3QgZXN0YWJsaXNoZXMgdGhlIGdyaWQuCi0gICAgbV9s
aW5lR3JpZCA9IG1ha2VXZWFrUHRyKHJlbmRlcmVyKTsKKyAgICBtX2xpbmVHcmlkID0gcmVuZGVy
ZXI7CiAgICAgbV9saW5lR3JpZE9mZnNldCA9IG1fbGF5b3V0T2Zmc2V0OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oCmluZGV4IDExZjg1YzM4ODBlMzNlMTFm
N2Y3MmJlMDE2M2U4MGRmMmI2ODk0NTguLjg1MGRkZWNhOGU5NDU2MDM4MGFkOTViNjUxMTFiYzdk
OThhNWY5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oCkBA
IC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJTdHlsZSBjb21wdXRlTWFya2VyU3R5
bGUoKSBjb25zdDsKIAogICAgIFJlbmRlckxpc3RNYXJrZXIqIG1hcmtlclJlbmRlcmVyKCkgY29u
c3QgeyByZXR1cm4gbV9tYXJrZXIuZ2V0KCk7IH0KLSAgICB2b2lkIHNldE1hcmtlclJlbmRlcmVy
KFJlbmRlckxpc3RNYXJrZXImIG1hcmtlcikgeyBtX21hcmtlciA9IG1ha2VXZWFrUHRyKG1hcmtl
cik7IH0KKyAgICB2b2lkIHNldE1hcmtlclJlbmRlcmVyKFJlbmRlckxpc3RNYXJrZXImIG1hcmtl
cikgeyBtX21hcmtlciA9IG1hcmtlcjsgfQogCiAgICAgYm9vbCBpc0luUmV2ZXJzZWRPcmRlcmVk
TGlzdCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdE1hcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5jcHAKaW5kZXggZDJhM2EwOGNhNzc1NDM2NzQ3ZjA3ZTBhNWMxZDZlZjhiMmFlNDRiNi4u
MDFiMWIwMTNjODE1MjQ3OTQyMzNmNTAwMTAwMTc2M2I5M2JhM2ZkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcApAQCAtMTQ2NSw3ICsxNDY1LDcg
QEAgU3RyaW5nIGxpc3RNYXJrZXJUZXh0KExpc3RTdHlsZVR5cGUgdHlwZSwgaW50IHZhbHVlKQog
CiBSZW5kZXJMaXN0TWFya2VyOjpSZW5kZXJMaXN0TWFya2VyKFJlbmRlckxpc3RJdGVtJiBsaXN0
SXRlbSwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlckJveChsaXN0SXRlbS5kb2N1
bWVudCgpLCBXVEZNb3ZlKHN0eWxlKSwgMCkKLSAgICAsIG1fbGlzdEl0ZW0obWFrZVdlYWtQdHIo
bGlzdEl0ZW0pKQorICAgICwgbV9saXN0SXRlbShsaXN0SXRlbSkKIHsKICAgICAvLyBpbml0IFJl
bmRlck9iamVjdCBhdHRyaWJ1dGVzCiAgICAgc2V0SW5saW5lKHRydWUpOyAgIC8vIG91ciBvYmpl
Y3QgaXMgSW5saW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNw
cAppbmRleCAxMDJjNGVlMTZjMGQxYWQ0ZDgxNTdmODFiZTQ2NjZiZjQzZDE2ODNiLi4wZjUxMTY1
Y2VhYjdkYTZmZmE1M2VjZTZjOGJkNWIwYjk2OTA0MWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIFJlbmRl
ck1lbnVMaXN0Ojp3aWxsQmVEZXN0cm95ZWQoKQogdm9pZCBSZW5kZXJNZW51TGlzdDo6c2V0SW5u
ZXJSZW5kZXJlcihSZW5kZXJCbG9jayYgaW5uZXJSZW5kZXJlcikKIHsKICAgICBBU1NFUlQoIW1f
aW5uZXJCbG9jay5nZXQoKSk7Ci0gICAgbV9pbm5lckJsb2NrID0gbWFrZVdlYWtQdHIoaW5uZXJS
ZW5kZXJlcik7CisgICAgbV9pbm5lckJsb2NrID0gaW5uZXJSZW5kZXJlcjsKICAgICBhZGp1c3RJ
bm5lclN0eWxlKCk7CiB9CiAKQEAgLTI4MSw3ICsyODEsNyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0
OjpzZXRUZXh0KGNvbnN0IFN0cmluZyYgcykKICAgICAgICAgbV9idXR0b25UZXh0LT5kaXJ0eUxp
bmVCb3hlcyhmYWxzZSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byBuZXdCdXR0b25UZXh0
ID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dD4oZG9jdW1lbnQoKSwgdGV4dFRvVXNlKTsKLSAg
ICAgICAgbV9idXR0b25UZXh0ID0gbWFrZVdlYWtQdHIoKm5ld0J1dHRvblRleHQpOworICAgICAg
ICBtX2J1dHRvblRleHQgPSAqbmV3QnV0dG9uVGV4dDsKICAgICAgICAgLy8gRklYTUU6IFRoaXMg
bXV0YXRpb24gc2hvdWxkIGdvIHRocm91Z2ggdGhlIG5vcm1hbCBSZW5kZXJUcmVlQnVpbGRlciBw
YXRoLgogICAgICAgICBpZiAoUmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJlbnQoKSkKICAgICAgICAg
ICAgIFJlbmRlclRyZWVCdWlsZGVyOjpjdXJyZW50KCktPmF0dGFjaCgqdGhpcywgV1RGTW92ZShu
ZXdCdXR0b25UZXh0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmNwcAppbmRleCAzZmRi
YmZmMjFmM2YwYmIwOGY0NjZkY2M5NDY0MzUwMzlkMjJlOTZkLi42ZWZjNTE1YjJlNDg5YzBjMzYx
MTI0YTc3MmQ1NjdhNDJjODAyYWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5jcHAK
QEAgLTQ4LDggKzQ4LDggQEAgUmVuZGVyUHRyPFJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNl
aG9sZGVyPiBSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGQKIAogUmVuZGVyTXVsdGlD
b2x1bW5TcGFubmVyUGxhY2Vob2xkZXI6OlJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9s
ZGVyKFJlbmRlck11bHRpQ29sdW1uRmxvdyYgZnJhZ21lbnRlZEZsb3csIFJlbmRlckJveCYgc3Bh
bm5lciwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlckJveChmcmFnbWVudGVkRmxv
dy5kb2N1bWVudCgpLCBXVEZNb3ZlKHN0eWxlKSwgUmVuZGVyQm94TW9kZWxPYmplY3RGbGFnKQot
ICAgICwgbV9zcGFubmVyKG1ha2VXZWFrUHRyKHNwYW5uZXIpKQotICAgICwgbV9mcmFnbWVudGVk
RmxvdyhtYWtlV2Vha1B0cihmcmFnbWVudGVkRmxvdykpCisgICAgLCBtX3NwYW5uZXIoc3Bhbm5l
cikKKyAgICAsIG1fZnJhZ21lbnRlZEZsb3coZnJhZ21lbnRlZEZsb3cpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAKaW5kZXggMWRmYjYzZjBm
OThmNDU5YzM1N2YxOGVjMjViYzQxMGM1YjFkMDYyZC4uYWIxN2FlODE3NzFkODdhOGZhMThmYzQy
N2Q0YzcwY2FkYzBkNzQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNjcm9sbGJhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNj
cm9sbGJhci5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgUmVmPFNjcm9sbGJhcj4gUmVuZGVyU2Nyb2xs
YmFyOjpjcmVhdGVDdXN0b21TY3JvbGxiYXIoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGUKIFJl
bmRlclNjcm9sbGJhcjo6UmVuZGVyU2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxl
QXJlYSwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIEVsZW1lbnQqIG93bmVyRWxl
bWVudCwgRnJhbWUqIG93bmluZ0ZyYW1lKQogICAgIDogU2Nyb2xsYmFyKHNjcm9sbGFibGVBcmVh
LCBvcmllbnRhdGlvbiwgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIsIFJlbmRlclNjcm9s
bGJhclRoZW1lOjpyZW5kZXJTY3JvbGxiYXJUaGVtZSgpLCB0cnVlKQogICAgICwgbV9vd25lckVs
ZW1lbnQob3duZXJFbGVtZW50KQotICAgICwgbV9vd25pbmdGcmFtZShtYWtlV2Vha1B0cihvd25p
bmdGcmFtZSkpCisgICAgLCBtX293bmluZ0ZyYW1lKG93bmluZ0ZyYW1lKQogewogICAgIEFTU0VS
VChvd25lckVsZW1lbnQgfHwgb3duaW5nRnJhbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmNwcAppbmRleCBiNWRiMTFkNTkwNWFhNzBhODA5MzFhZjliZWZmNGEyMDcw
YjRmMjg4Li5iZTljMTVmZjQ4YzNkODExYjIyMjgzZGJlZWM4MTMzMTVlYzNjNGVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKQEAgLTE3MCwyNCArMTcwLDI0IEBA
IHZvaWQgUmVuZGVyVGFibGU6OndpbGxJbnNlcnRUYWJsZVNlY3Rpb24oUmVuZGVyVGFibGVTZWN0
aW9uJiBjaGlsZCwgUmVuZGVyT2JqZWN0CiAgICAgY2FzZSBEaXNwbGF5VHlwZTo6VGFibGVIZWFk
ZXJHcm91cDoKICAgICAgICAgcmVzZXRTZWN0aW9uUG9pbnRlcklmTm90QmVmb3JlKG1faGVhZCwg
YmVmb3JlQ2hpbGQpOwogICAgICAgICBpZiAoIW1faGVhZCkKLSAgICAgICAgICAgIG1faGVhZCA9
IG1ha2VXZWFrUHRyKGNoaWxkKTsKKyAgICAgICAgICAgIG1faGVhZCA9IGNoaWxkOwogICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgIHJlc2V0U2VjdGlvblBvaW50ZXJJZk5vdEJlZm9yZShtX2Zp
cnN0Qm9keSwgYmVmb3JlQ2hpbGQpOwogICAgICAgICAgICAgaWYgKCFtX2ZpcnN0Qm9keSkKLSAg
ICAgICAgICAgICAgICBtX2ZpcnN0Qm9keSA9IG1ha2VXZWFrUHRyKGNoaWxkKTsKKyAgICAgICAg
ICAgICAgICBtX2ZpcnN0Qm9keSA9IGNoaWxkOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlRm9vdGVyR3JvdXA6CiAgICAgICAgIHJlc2V0U2Vj
dGlvblBvaW50ZXJJZk5vdEJlZm9yZShtX2Zvb3QsIGJlZm9yZUNoaWxkKTsKICAgICAgICAgaWYg
KCFtX2Zvb3QpIHsKLSAgICAgICAgICAgIG1fZm9vdCA9IG1ha2VXZWFrUHRyKGNoaWxkKTsKKyAg
ICAgICAgICAgIG1fZm9vdCA9IGNoaWxkOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgY2FzZSBEaXNwbGF5VHlwZTo6VGFibGVSb3dHcm91
cDoKICAgICAgICAgcmVzZXRTZWN0aW9uUG9pbnRlcklmTm90QmVmb3JlKG1fZmlyc3RCb2R5LCBi
ZWZvcmVDaGlsZCk7CiAgICAgICAgIGlmICghbV9maXJzdEJvZHkpCi0gICAgICAgICAgICBtX2Zp
cnN0Qm9keSA9IG1ha2VXZWFrUHRyKGNoaWxkKTsKKyAgICAgICAgICAgIG1fZmlyc3RCb2R5ID0g
Y2hpbGQ7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgUmVuZGVyVGFibGU6OndpbGxJbnNl
cnRUYWJsZVNlY3Rpb24oUmVuZGVyVGFibGVTZWN0aW9uJiBjaGlsZCwgUmVuZGVyT2JqZWN0CiB2
b2lkIFJlbmRlclRhYmxlOjphZGRDYXB0aW9uKFJlbmRlclRhYmxlQ2FwdGlvbiYgY2FwdGlvbikK
IHsKICAgICBBU1NFUlQobV9jYXB0aW9ucy5maW5kKCZjYXB0aW9uKSA9PSBub3RGb3VuZCk7Ci0g
ICAgbV9jYXB0aW9ucy5hcHBlbmQobWFrZVdlYWtQdHIoY2FwdGlvbikpOworICAgIG1fY2FwdGlv
bnMuYXBwZW5kKGNhcHRpb24pOwogfQogCiB2b2lkIFJlbmRlclRhYmxlOjpyZW1vdmVDYXB0aW9u
KFJlbmRlclRhYmxlQ2FwdGlvbiYgb2xkQ2FwdGlvbikKQEAgLTk0Miw3ICs5NDIsNyBAQCB2b2lk
IFJlbmRlclRhYmxlOjp1cGRhdGVDb2x1bW5DYWNoZSgpIGNvbnN0CiAgICAgZm9yIChSZW5kZXJU
YWJsZUNvbCogY29sdW1uUmVuZGVyZXIgPSBmaXJzdENvbHVtbigpOyBjb2x1bW5SZW5kZXJlcjsg
Y29sdW1uUmVuZGVyZXIgPSBjb2x1bW5SZW5kZXJlci0+bmV4dENvbHVtbigpKSB7CiAgICAgICAg
IGlmIChjb2x1bW5SZW5kZXJlci0+aXNUYWJsZUNvbHVtbkdyb3VwV2l0aENvbHVtbkNoaWxkcmVu
KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbV9jb2x1bW5SZW5kZXJlcnMuYXBw
ZW5kKG1ha2VXZWFrUHRyKGNvbHVtblJlbmRlcmVyKSk7CisgICAgICAgIG1fY29sdW1uUmVuZGVy
ZXJzLmFwcGVuZChjb2x1bW5SZW5kZXJlcik7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
bG9vayB0byBjb21wdXRlIHRoZSBlZmZlY3RpdmUgY29sdW1uIGluZGV4IHN1Y2Nlc3NpdmVseSBm
cm9tIHByZXZpb3VzIHZhbHVlcyBpbnN0ZWFkIG9mCiAgICAgICAgIC8vIGNhbGxpbmcgY29sVG9F
ZmZDb2woKSwgd2hpY2ggaXMgaW4gTyhudW1FZmZDb2xzKCkpLiBBbHRob3VnaCBpdCdzIHVubGlr
ZWx5IHRoYXQgdGhpcyBpcyBhIGhvdCBmdW5jdGlvbi4KICAgICAgICAgbV9lZmZlY3RpdmVDb2x1
bW5JbmRleE1hcC5hZGQoY29sdW1uUmVuZGVyZXIsIGNvbFRvRWZmQ29sKGNvbHVtbkluZGV4KSk7
CkBAIC0xMDgwLDkgKzEwODAsOSBAQCB2b2lkIFJlbmRlclRhYmxlOjpyZWNhbGNTZWN0aW9ucygp
IGNvbnN0CiAgICAgICAgICAgICBpZiAoaXM8UmVuZGVyVGFibGVTZWN0aW9uPigqY2hpbGQpKSB7
CiAgICAgICAgICAgICAgICAgUmVuZGVyVGFibGVTZWN0aW9uJiBzZWN0aW9uID0gZG93bmNhc3Q8
UmVuZGVyVGFibGVTZWN0aW9uPigqY2hpbGQpOwogICAgICAgICAgICAgICAgIGlmICghbV9oZWFk
KQotICAgICAgICAgICAgICAgICAgICBtX2hlYWQgPSBtYWtlV2Vha1B0cihzZWN0aW9uKTsKKyAg
ICAgICAgICAgICAgICAgICAgbV9oZWFkID0gc2VjdGlvbjsKICAgICAgICAgICAgICAgICBlbHNl
IGlmICghbV9maXJzdEJvZHkpCi0gICAgICAgICAgICAgICAgICAgIG1fZmlyc3RCb2R5ID0gbWFr
ZVdlYWtQdHIoc2VjdGlvbik7CisgICAgICAgICAgICAgICAgICAgIG1fZmlyc3RCb2R5ID0gc2Vj
dGlvbjsKICAgICAgICAgICAgICAgICBzZWN0aW9uLnJlY2FsY0NlbGxzSWZOZWVkZWQoKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTA5MCw5ICsxMDkwLDkgQEAgdm9p
ZCBSZW5kZXJUYWJsZTo6cmVjYWxjU2VjdGlvbnMoKSBjb25zdAogICAgICAgICAgICAgaWYgKGlz
PFJlbmRlclRhYmxlU2VjdGlvbj4oKmNoaWxkKSkgewogICAgICAgICAgICAgICAgIFJlbmRlclRh
YmxlU2VjdGlvbiYgc2VjdGlvbiA9IGRvd25jYXN0PFJlbmRlclRhYmxlU2VjdGlvbj4oKmNoaWxk
KTsKICAgICAgICAgICAgICAgICBpZiAoIW1fZm9vdCkKLSAgICAgICAgICAgICAgICAgICAgbV9m
b290ID0gbWFrZVdlYWtQdHIoc2VjdGlvbik7CisgICAgICAgICAgICAgICAgICAgIG1fZm9vdCA9
IHNlY3Rpb247CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIW1fZmlyc3RCb2R5KQotICAgICAg
ICAgICAgICAgICAgICBtX2ZpcnN0Qm9keSA9IG1ha2VXZWFrUHRyKHNlY3Rpb24pOworICAgICAg
ICAgICAgICAgICAgICBtX2ZpcnN0Qm9keSA9IHNlY3Rpb247CiAgICAgICAgICAgICAgICAgc2Vj
dGlvbi5yZWNhbGNDZWxsc0lmTmVlZGVkKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBi
cmVhazsKQEAgLTExMDAsNyArMTEwMCw3IEBAIHZvaWQgUmVuZGVyVGFibGU6OnJlY2FsY1NlY3Rp
b25zKCkgY29uc3QKICAgICAgICAgICAgIGlmIChpczxSZW5kZXJUYWJsZVNlY3Rpb24+KCpjaGls
ZCkpIHsKICAgICAgICAgICAgICAgICBSZW5kZXJUYWJsZVNlY3Rpb24mIHNlY3Rpb24gPSBkb3du
Y2FzdDxSZW5kZXJUYWJsZVNlY3Rpb24+KCpjaGlsZCk7CiAgICAgICAgICAgICAgICAgaWYgKCFt
X2ZpcnN0Qm9keSkKLSAgICAgICAgICAgICAgICAgICAgbV9maXJzdEJvZHkgPSBtYWtlV2Vha1B0
cihzZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgbV9maXJzdEJvZHkgPSBzZWN0aW9uOwog
ICAgICAgICAgICAgICAgIHNlY3Rpb24ucmVjYWxjQ2VsbHNJZk5lZWRlZCgpOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAKaW5kZXggZjgyNTRjZDcxMjhkYjJhNDE0NDNiMzU5MGNhYzQ3M2ViMDMzN2M4Mi4uNWY3
N2U1MTBjZWVjNDliN2Q0ZTMyYzI3ZTM0ZGM0NDAzYjllM2IxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMTgyMCw3ICsxODIwLDcgQEAgdm9pZCBSZW5kZXJU
ZXh0OjpzZXRJbmxpbmVXcmFwcGVyRm9yRGlzcGxheUNvbnRlbnRzKFJlbmRlcklubGluZSogd3Jh
cHBlcikKICAgICAgICAgbV9oYXNJbmxpbmVXcmFwcGVyRm9yRGlzcGxheUNvbnRlbnRzID0gZmFs
c2U7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgaW5saW5lV3JhcHBlckZvckRpc3BsYXlD
b250ZW50c01hcCgpLmFkZCh0aGlzLCBtYWtlV2Vha1B0cih3cmFwcGVyKSk7CisgICAgaW5saW5l
V3JhcHBlckZvckRpc3BsYXlDb250ZW50c01hcCgpLmFkZCh0aGlzLCB3cmFwcGVyKTsKICAgICBt
X2hhc0lubGluZVdyYXBwZXJGb3JEaXNwbGF5Q29udGVudHMgPSB0cnVlOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmgKaW5kZXggZDI4ZmQ2NjVl
MjBmZDQ2OWYxZWIwZTIwMzUxOWQzN2Y3NGIzNTQyNS4uNThlMWRlOTNjZDgwZDE4MGZkMjRiNjM5
YTk1YzM1YzBmZDgxOWJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRGcmFnbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0RnJhZ21lbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgZW5k
KCkgY29uc3QgeyByZXR1cm4gbV9lbmQ7IH0KIAogICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiBm
aXJzdExldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RMZXR0ZXIuZ2V0KCk7IH0KLSAgICB2
b2lkIHNldEZpcnN0TGV0dGVyKFJlbmRlckJveE1vZGVsT2JqZWN0JiBmaXJzdExldHRlcikgeyBt
X2ZpcnN0TGV0dGVyID0gbWFrZVdlYWtQdHIoZmlyc3RMZXR0ZXIpOyB9CisgICAgdm9pZCBzZXRG
aXJzdExldHRlcihSZW5kZXJCb3hNb2RlbE9iamVjdCYgZmlyc3RMZXR0ZXIpIHsgbV9maXJzdExl
dHRlciA9IGZpcnN0TGV0dGVyOyB9CiAgICAgCiAgICAgUmVuZGVyQmxvY2sqIGJsb2NrRm9yQWNj
b21wYW55aW5nRmlyc3RMZXR0ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCmluZGV4IDhhMDRlZDkwMGU2NGJkYmZiYmZmY2ViNzIzODAzMDZmMGRhNzljZTAuLjc5
OTQ1MzYwZGQxZWFlZDM0ODgxNzBhMWY4NTU1MDU3MjExNzhiODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTg2NCw3ICs4NjQsNyBAQCBSZW5kZXJWaWV3OjpS
ZXBhaW50UmVnaW9uQWNjdW11bGF0b3I6OlJlcGFpbnRSZWdpb25BY2N1bXVsYXRvcihSZW5kZXJW
aWV3KiB2aWV3KQogICAgIG1fd2FzQWNjdW11bGF0aW5nUmVwYWludFJlZ2lvbiA9ICEhcm9vdFJl
bmRlclZpZXctPm1fYWNjdW11bGF0ZWRSZXBhaW50UmVnaW9uOwogICAgIGlmICghbV93YXNBY2N1
bXVsYXRpbmdSZXBhaW50UmVnaW9uKQogICAgICAgICByb290UmVuZGVyVmlldy0+bV9hY2N1bXVs
YXRlZFJlcGFpbnRSZWdpb24gPSBtYWtlVW5pcXVlPFJlZ2lvbj4oKTsKLSAgICBtX3Jvb3RWaWV3
ID0gbWFrZVdlYWtQdHIoKnJvb3RSZW5kZXJWaWV3KTsKKyAgICBtX3Jvb3RWaWV3ID0gKnJvb3RS
ZW5kZXJWaWV3OwogfQogCiBSZW5kZXJWaWV3OjpSZXBhaW50UmVnaW9uQWNjdW11bGF0b3I6On5S
ZXBhaW50UmVnaW9uQWNjdW11bGF0b3IoKQpAQCAtOTE3LDEyICs5MTcsMTIgQEAgdW5zaWduZWQg
UmVuZGVyVmlldzo6cGFnZUNvdW50KCkgY29uc3QKIHZvaWQgUmVuZGVyVmlldzo6bGF5ZXJDaGls
ZHJlbkNoYW5nZWREdXJpbmdTdHlsZUNoYW5nZShSZW5kZXJMYXllciYgbGF5ZXIpCiB7CiAgICAg
aWYgKCFtX3N0eWxlQ2hhbmdlTGF5ZXJNdXRhdGlvblJvb3QpIHsKLSAgICAgICAgbV9zdHlsZUNo
YW5nZUxheWVyTXV0YXRpb25Sb290ID0gbWFrZVdlYWtQdHIobGF5ZXIpOworICAgICAgICBtX3N0
eWxlQ2hhbmdlTGF5ZXJNdXRhdGlvblJvb3QgPSBsYXllcjsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIFJlbmRlckxheWVyKiBjb21tb25BbmNlc3RvciA9IG1fc3R5bGVDaGFuZ2VMYXll
ck11dGF0aW9uUm9vdC0+Y29tbW9uQW5jZXN0b3JXaXRoTGF5ZXIobGF5ZXIpOwotICAgIG1fc3R5
bGVDaGFuZ2VMYXllck11dGF0aW9uUm9vdCA9IG1ha2VXZWFrUHRyKGNvbW1vbkFuY2VzdG9yKTsK
KyAgICBtX3N0eWxlQ2hhbmdlTGF5ZXJNdXRhdGlvblJvb3QgPSBjb21tb25BbmNlc3RvcjsKIH0K
IAogUmVuZGVyTGF5ZXIqIFJlbmRlclZpZXc6OnRha2VTdHlsZUNoYW5nZUxheWVyVHJlZU11dGF0
aW9uUm9vdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTEZlbmNlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxGZW5jZWQuaAppbmRleCBhMGI4ODdmN2JmMTBhOWVhYjNjYWVmZDc1OTk0ZDI1YWE0
ZWE1YzJkLi5iOWRjMWNkNzI2MjRkMzA4N2JmMWM3YWE0ZTQ4ODJlZDJhOTNlOWUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2Vk
LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBjbG9zaW5nQnJhY2UoKSBj
b25zdCB7IHJldHVybiBtX2Nsb3NlOyB9CiAKICAgICBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRv
ciogY2xvc2VGZW5jZVJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV9jbG9zZUZlbmNlUmVuZGVy
ZXIuZ2V0KCk7IH0KLSAgICB2b2lkIHNldENsb3NlRmVuY2VSZW5kZXJlcihSZW5kZXJNYXRoTUxG
ZW5jZWRPcGVyYXRvciYgcmVuZGVyZXIpIHsgbV9jbG9zZUZlbmNlUmVuZGVyZXIgPSBtYWtlV2Vh
a1B0cihyZW5kZXJlcik7IH0KKyAgICB2b2lkIHNldENsb3NlRmVuY2VSZW5kZXJlcihSZW5kZXJN
YXRoTUxGZW5jZWRPcGVyYXRvciYgcmVuZGVyZXIpIHsgbV9jbG9zZUZlbmNlUmVuZGVyZXIgPSBy
ZW5kZXJlcjsgfQogCiAgICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAppbmRleCA4YzIy
ZDFlNTQ2NTk4MWFmODAyMzJkMmJlODIyMDJlNTQyMTBhZjU1Li40OWI2ZTVjZDczYjdkNDgwYzlk
YmFkNzcyZmY2YzMyYTgwNTliMGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAgLTUzMSw3ICs1MzEsNyBAQCB2b2lkIFNWR1Jl
bmRlclN1cHBvcnQ6OnVwZGF0ZU1hc2tlZEFuY2VzdG9yU2hvdWxkSXNvbGF0ZUJsZW5kaW5nKGNv
bnN0IFJlbmRlckVsZQogCiBTVkdIaXRUZXN0Q3ljbGVEZXRlY3Rpb25TY29wZTo6U1ZHSGl0VGVz
dEN5Y2xlRGV0ZWN0aW9uU2NvcGUoY29uc3QgUmVuZGVyRWxlbWVudCYgZWxlbWVudCkKIHsKLSAg
ICBtX2VsZW1lbnQgPSBtYWtlV2Vha1B0cigmZWxlbWVudCk7CisgICAgbV9lbGVtZW50ID0gZWxl
bWVudDsKICAgICBhdXRvIHJlc3VsdCA9IHZpc2l0ZWRFbGVtZW50cygpLmFkZCgqbV9lbGVtZW50
KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWls
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVp
bGRlci5jcHAKaW5kZXggOWNlNTE2Yjg2NzNmMzc3NDc0NDExYWYyYjA4NDMwYmFlNWRkMTQ3NC4u
NjQxM2JhYWU0YmYzZjc2YmEzZTYwNTdjZDkxZGY1OGUyMTEzMGNhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3Bw
CkBAIC03MzIsNyArNzMyLDcgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJUcmVlQnVpbGRlcjo6c3Bs
aXRBbm9ueW1vdXNCb3hlc0Fyb3VuZENoaWxkKFJlbmRlckJveCYgcGFyZW4KIHZvaWQgUmVuZGVy
VHJlZUJ1aWxkZXI6OmNoaWxkRmxvd1N0YXRlQ2hhbmdlc0FuZEFmZmVjdHNQYXJlbnRCbG9jayhS
ZW5kZXJFbGVtZW50JiBjaGlsZCkKIHsKICAgICBpZiAoIWNoaWxkLmlzSW5saW5lKCkpIHsKLSAg
ICAgICAgYXV0byBwYXJlbnQgPSBtYWtlV2Vha1B0cihjaGlsZC5wYXJlbnQoKSk7CisgICAgICAg
IFdlYWtQdHIgcGFyZW50ID0gY2hpbGQucGFyZW50KCk7CiAgICAgICAgIGlmIChpczxSZW5kZXJC
bG9jaz4oKnBhcmVudCkpCiAgICAgICAgICAgICBibG9ja0J1aWxkZXIoKS5jaGlsZEJlY2FtZU5v
bklubGluZShkb3duY2FzdDxSZW5kZXJCbG9jaz4oKnBhcmVudCksIGNoaWxkKTsKICAgICAgICAg
ZWxzZSBpZiAoaXM8UmVuZGVySW5saW5lPigqcGFyZW50KSkKQEAgLTg2NCw3ICs4NjQsNyBAQCB2
b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpkZXN0cm95QW5kQ2xlYW5VcEFub255bW91c1dyYXBwZXJz
KFJlbmRlck9iamVjdCYgcmVuZGVyZQogICAgIGNvbGxhcHNlQW5kRGVzdHJveUFub255bW91c1Np
YmxpbmdzKCk7CiAKICAgICAvLyBGSVhNRTogRG8gbm90IHRyeSB0byBjb2xsYXBzZS9jbGVhbnVw
IHRoZSBhbm9ueW1vdXMgd3JhcHBlcnMgaW5zaWRlIGRlc3Ryb3kgKHNlZSB3ZWJraXQub3JnL2Iv
MTg2NzQ2KS4KLSAgICBhdXRvIGRlc3Ryb3lSb290UGFyZW50ID0gbWFrZVdlYWtQdHIoKmRlc3Ry
b3lSb290LnBhcmVudCgpKTsKKyAgICBXZWFrUHRyIGRlc3Ryb3lSb290UGFyZW50ID0gKmRlc3Ry
b3lSb290LnBhcmVudCgpOwogICAgIGlmICgmcmVuZGVyZXJUb0Rlc3Ryb3kgIT0gJmRlc3Ryb3lS
b290KSB7CiAgICAgICAgIC8vIERlc3Ryb3kgdGhlIGNoaWxkIHJlbmRlcmVyIGZpcnN0LCBiZWZv
cmUgd2Ugc3RhcnQgdGVhcmluZyBkb3duIHRoZSBhbm9ueW1vdXMgd3JhcHBlciBhbmNlc3RvciBj
aGFpbi4KICAgICAgICAgZGVzdHJveShyZW5kZXJlclRvRGVzdHJveSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJCbG9jay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJC
bG9jay5jcHAKaW5kZXggNTY4YTIyYzJjMDYyZjA3YjQ1MzY1ZjljMzE3MjA1NzU0NDE3NTEwNy4u
MTZlZTBmZGVhZmM4NDZjNGQ2NWIwZWE2NGMxNzhlMzI3N2EzYWJmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyQmxvY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRl
ckJsb2NrLmNwcApAQCAtMjg3LDggKzI4Nyw4IEBAIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJl
bmRlclRyZWVCdWlsZGVyOjpCbG9jazo6ZGV0YWNoKFJlbmRlckJsb2NrJiBwYXJlbnQsIFJlCiAK
ICAgICAvLyBJZiB0aGlzIGNoaWxkIGlzIGEgYmxvY2ssIGFuZCBpZiBvdXIgcHJldmlvdXMgYW5k
IG5leHQgc2libGluZ3MgYXJlIGJvdGggYW5vbnltb3VzIGJsb2NrcwogICAgIC8vIHdpdGggaW5s
aW5lIGNvbnRlbnQsIHRoZW4gd2UgY2FuIGZvbGQgdGhlIGlubGluZSBjb250ZW50IGJhY2sgdG9n
ZXRoZXIuCi0gICAgYXV0byBwcmV2ID0gbWFrZVdlYWtQdHIob2xkQ2hpbGQucHJldmlvdXNTaWJs
aW5nKCkpOwotICAgIGF1dG8gbmV4dCA9IG1ha2VXZWFrUHRyKG9sZENoaWxkLm5leHRTaWJsaW5n
KCkpOworICAgIFdlYWtQdHIgcHJldiA9IG9sZENoaWxkLnByZXZpb3VzU2libGluZygpOworICAg
IFdlYWtQdHIgbmV4dCA9IG9sZENoaWxkLm5leHRTaWJsaW5nKCk7CiAgICAgYm9vbCBjYW5NZXJn
ZUFub255bW91c0Jsb2NrcyA9IGNhbkNvbGxhcHNlQW5vbnltb3VzQmxvY2sgPT0gQ2FuQ29sbGFw
c2VBbm9ueW1vdXNCbG9jazo6WWVzICYmIGNhbk1lcmdlQ29udGlndW91c0Fub255bW91c0Jsb2Nr
cyhvbGRDaGlsZCwgcHJldi5nZXQoKSwgbmV4dC5nZXQoKSk7CiAKICAgICBhdXRvIHRha2VuQ2hp
bGQgPSBtX2J1aWxkZXIuZGV0YWNoRnJvbVJlbmRlckVsZW1lbnQocGFyZW50LCBvbGRDaGlsZCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZUJ1aWxkZXJGaXJzdExldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRlci5jcHAKaW5kZXggNzIxNGNmMTNjNDgxNjgw
NGRhNmUzODRhNGViMTZhZGRmYWM1YjRhYy4uMDUwZWE0NTc4ZWQ3YTA1ZTI5ZTQ3NWM5MWRhOTFl
ZWIwZWNjOTA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVCdWlsZGVyRmlyc3RMZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckZpcnN0TGV0dGVyLmNwcApAQCAtMTkz
LDcgKzE5Myw3IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OkZpcnN0TGV0dGVyOjp1cGRhdGVT
dHlsZShSZW5kZXJCbG9jayYgZmlyc3RMZXR0ZXJCbG9jaywKICAgICAgICAgICAgIHJlbWFpbmlu
Z1RleHQtPnNldEZpcnN0TGV0dGVyKCpuZXdGaXJzdExldHRlcik7CiAgICAgICAgICAgICBuZXdG
aXJzdExldHRlci0+c2V0Rmlyc3RMZXR0ZXJSZW1haW5pbmdUZXh0KCpyZW1haW5pbmdUZXh0KTsK
ICAgICAgICAgfQotICAgICAgICBXZWFrUHRyPFJlbmRlck9iamVjdD4gbmV4dFNpYmxpbmcgPSBt
YWtlV2Vha1B0cihmaXJzdExldHRlci0+bmV4dFNpYmxpbmcoKSk7CisgICAgICAgIFdlYWtQdHIg
bmV4dFNpYmxpbmcgPSBmaXJzdExldHRlci0+bmV4dFNpYmxpbmcoKTsKICAgICAgICAgbV9idWls
ZGVyLmRlc3Ryb3koKmZpcnN0TGV0dGVyKTsKICAgICAgICAgbV9idWlsZGVyLmF0dGFjaCgqZmly
c3RMZXR0ZXJDb250YWluZXIsIFdURk1vdmUobmV3Rmlyc3RMZXR0ZXIpLCBuZXh0U2libGluZy5n
ZXQoKSk7CiAgICAgICAgIHJldHVybjsKQEAgLTI1MSw4ICsyNTEsOCBAQCB2b2lkIFJlbmRlclRy
ZWVCdWlsZGVyOjpGaXJzdExldHRlcjo6Y3JlYXRlUmVuZGVyZXJzKFJlbmRlckJsb2NrJiBmaXJz
dExldHRlckJsbwogICAgICAgICB9CiAKICAgICAgICAgYXV0byogdGV4dE5vZGUgPSBjdXJyZW50
VGV4dENoaWxkLnRleHROb2RlKCk7Ci0gICAgICAgIGF1dG8gYmVmb3JlQ2hpbGQgPSBtYWtlV2Vh
a1B0cihjdXJyZW50VGV4dENoaWxkLm5leHRTaWJsaW5nKCkpOwotICAgICAgICBhdXRvIGlubGlu
ZVdyYXBwZXJGb3JEaXNwbGF5Q29udGVudHMgPSBtYWtlV2Vha1B0cihjdXJyZW50VGV4dENoaWxk
LmlubGluZVdyYXBwZXJGb3JEaXNwbGF5Q29udGVudHMoKSk7CisgICAgICAgIFdlYWtQdHIgYmVm
b3JlQ2hpbGQgPSBjdXJyZW50VGV4dENoaWxkLm5leHRTaWJsaW5nKCk7CisgICAgICAgIFdlYWtQ
dHIgaW5saW5lV3JhcHBlckZvckRpc3BsYXlDb250ZW50cyA9IGN1cnJlbnRUZXh0Q2hpbGQuaW5s
aW5lV3JhcHBlckZvckRpc3BsYXlDb250ZW50cygpOwogICAgICAgICBhdXRvIGhhc0lubGluZVdy
YXBwZXJGb3JEaXNwbGF5Q29udGVudHMgPSBpbmxpbmVXcmFwcGVyRm9yRGlzcGxheUNvbnRlbnRz
LmdldCgpOwogICAgICAgICBtX2J1aWxkZXIuZGVzdHJveShjdXJyZW50VGV4dENoaWxkKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVC
dWlsZGVyTXVsdGlDb2x1bW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVCdWlsZGVyTXVsdGlDb2x1bW4uY3BwCmluZGV4IDI4ZjQ3ZDJlOTgyOGE4OTlm
ZjQ3M2NmYjVkNzE4ZTBlYmQ5NTlhYjEuLmMxOTQxYjk5YTljMDY4MzEzOTA0MTczNGRjN2NiZGMz
NjE5MGZmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5jcHAKQEAgLTI5NSw3
ICsyOTUsNyBAQCB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpNdWx0aUNvbHVtbjo6bXVsdGlDb2x1
bW5EZXNjZW5kYW50SW5zZXJ0ZWQoUmVuZGVyTXVsdGlDbwogICAgICAgICAgICAgLy8gY29sdW1u
IHNldHMuCiAgICAgICAgICAgICBSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlciYg
cGxhY2Vob2xkZXIgPSBkb3duY2FzdDxSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRl
cj4oKmRlc2NlbmRhbnQpOwogICAgICAgICAgICAgQVNTRVJUKCFmbG93LnNwYW5uZXJNYXAoKS5n
ZXQocGxhY2Vob2xkZXIuc3Bhbm5lcigpKSk7Ci0gICAgICAgICAgICBmbG93LnNwYW5uZXJNYXAo
KS5hZGQocGxhY2Vob2xkZXIuc3Bhbm5lcigpLCBtYWtlV2Vha1B0cihkb3duY2FzdDxSZW5kZXJN
dWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlcj4oZGVzY2VuZGFudCkpKTsKKyAgICAgICAgICAg
IGZsb3cuc3Bhbm5lck1hcCgpLmFkZChwbGFjZWhvbGRlci5zcGFubmVyKCksIGRvd25jYXN0PFJl
bmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyPihkZXNjZW5kYW50KSk7CiAgICAgICAg
ICAgICBBU1NFUlQoIXBsYWNlaG9sZGVyLmZpcnN0Q2hpbGQoKSk7IC8vIFRoZXJlIHNob3VsZCBi
ZSBubyBjaGlsZHJlbiBoZXJlLCBidXQgaWYgdGhlcmUgYXJlLCB3ZSBvdWdodCB0byBza2lwIHRo
ZW0uCiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgZGVzY2VuZGFudCA9IHByb2Nlc3NQb3Nz
aWJsZVNwYW5uZXJEZXNjZW5kYW50KGZsb3csIHN1YnRyZWVSb290LCAqZGVzY2VuZGFudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVBv
c2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
UG9zaXRpb24uY3BwCmluZGV4IDU0NTM4OTI0Y2Y0MjkxMzkyN2U2MzY3MDRjZmEyODdiNzAwYzJl
ZDQuLjc2OTI2Njk4MGQ2YTVlNTk3ZTQ1MWIwMTE4MGJjMTRmNzBlNmQxMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlUG9zaXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlUG9zaXRp
b24uY3BwCkBAIC00NSw3ICs0NSw3IEBAIHZvaWQgUmVuZGVyVHJlZVBvc2l0aW9uOjpjb21wdXRl
TmV4dFNpYmxpbmcoY29uc3QgTm9kZSYgbm9kZSkKICNlbmRpZgogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIG1fbmV4dFNpYmxpbmcgPSBtYWtlV2Vha1B0cihuZXh0U2libGluZ1JlbmRlcmVy
KG5vZGUpKTsKKyAgICBtX25leHRTaWJsaW5nID0gbmV4dFNpYmxpbmdSZW5kZXJlcihub2RlKTsK
ICAgICBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcgPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVBvc2l0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVBvc2l0aW9uLmgKaW5kZXgg
ODM4OTBlNDU1NGZiNzdkYzNiMTFiZjgzMzI0MDkyZDg2MTAzZDg5MS4uN2NlMmE5Y2JhMWE5NThk
YTdkODU1NmUyZGE4NWU4ZDg4OTEwMGJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlUG9zaXRpb24uaApAQCAtMzcsNyArMzcsNyBA
QCBwdWJsaWM6CiAgICAgfQogICAgIFJlbmRlclRyZWVQb3NpdGlvbihSZW5kZXJFbGVtZW50JiBw
YXJlbnQsIFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmcpCiAgICAgICAgIDogbV9wYXJlbnQocGFy
ZW50KQotICAgICAgICAsIG1fbmV4dFNpYmxpbmcobWFrZVdlYWtQdHIobmV4dFNpYmxpbmcpKQor
ICAgICAgICAsIG1fbmV4dFNpYmxpbmcobmV4dFNpYmxpbmcpCiAgICAgICAgICwgbV9oYXNWYWxp
ZE5leHRTaWJsaW5nKHRydWUpCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlckdlbmVyYXRlZENvbnRlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVy
R2VuZXJhdGVkQ29udGVudC5jcHAKaW5kZXggY2M0YWM1YjViZWYzNzM3MDhiNjFjNDgxYTk5NWM0
OTVhOTA4NjVhNC4uYTc5NzhmY2I1ODY2NGRkOTc5NjczZjU2OWE4ODc4MjE0NzdhOTMwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRh
dGVyR2VuZXJhdGVkQ29udGVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyR2VuZXJhdGVkQ29udGVudC5jcHAKQEAgLTYyLDcgKzYy
LDcgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6R2VuZXJhdGVkQ29udGVudDo6dXBkYXRlUXVv
dGVzVXBUbyhSZW5kZXJRdW90ZSogbGFzdFF1b3QKICAgICAgICAgYXV0byYgcXVvdGUgPSAqaXQ7
CiAgICAgICAgIC8vIFF1b3RlIGNoYXJhY3RlciBkZXBlbmRzIG9uIHF1b3RlIGRlcHRoIHNvIHdl
IGNoYWluIHRoZSB1cGRhdGVzLgogICAgICAgICBxdW90ZS51cGRhdGVSZW5kZXJlcihtX3VwZGF0
ZXIubV9idWlsZGVyLCBtX3ByZXZpb3VzVXBkYXRlZFF1b3RlLmdldCgpKTsKLSAgICAgICAgbV9w
cmV2aW91c1VwZGF0ZWRRdW90ZSA9IG1ha2VXZWFrUHRyKHF1b3RlKTsKKyAgICAgICAgbV9wcmV2
aW91c1VwZGF0ZWRRdW90ZSA9IHF1b3RlOwogICAgICAgICBpZiAoJnF1b3RlID09IGxhc3RRdW90
ZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xOTIsMTMgKzE5MiwxMyBAQCB2b2lk
IFJlbmRlclRyZWVVcGRhdGVyOjpHZW5lcmF0ZWRDb250ZW50Ojp1cGRhdGVCYWNrZHJvcFJlbmRl
cmVyKFJlbmRlckVsZW1lbnQmCiAgICAgZWxzZSB7CiAgICAgICAgIG5ld0JhY2tkcm9wUmVuZGVy
ZXIgPSBXZWJDb3JlOjpjcmVhdGVSZW5kZXJlcjxSZW5kZXJCbG9ja0Zsb3c+KHJlbmRlcmVyLmRv
Y3VtZW50KCksIFdURk1vdmUobmV3U3R5bGUpKTsKICAgICAgICAgbmV3QmFja2Ryb3BSZW5kZXJl
ci0+aW5pdGlhbGl6ZVN0eWxlKCk7Ci0gICAgICAgIGJhY2tkcm9wUmVuZGVyZXIgPSBtYWtlV2Vh
a1B0cihuZXdCYWNrZHJvcFJlbmRlcmVyLmdldCgpKTsKKyAgICAgICAgYmFja2Ryb3BSZW5kZXJl
ciA9IG5ld0JhY2tkcm9wUmVuZGVyZXIuZ2V0KCk7CiAgICAgICAgIHJlbmRlcmVyLnNldEJhY2tk
cm9wUmVuZGVyZXIoKmJhY2tkcm9wUmVuZGVyZXIpOwogICAgIH0KIAogICAgIC8vIFVwZGF0ZSBv
ciBhdHRhY2ggdG8gcmVuZGVyZXIgcGFyZW50Ci0gICAgYXV0byBjdXJyZW50UGFyZW50ID0gbWFr
ZVdlYWtQdHIoYmFja2Ryb3BSZW5kZXJlci0+cGFyZW50KCkpOwotICAgIGF1dG8gbmV3UGFyZW50
ID0gbWFrZVdlYWtQdHIocmVuZGVyZXIucGFyZW50KCkpOworICAgIFdlYWtQdHIgY3VycmVudFBh
cmVudCA9IGJhY2tkcm9wUmVuZGVyZXItPnBhcmVudCgpOworICAgIFdlYWtQdHIgbmV3UGFyZW50
ID0gcmVuZGVyZXIucGFyZW50KCk7CiAKICAgICBBU1NFUlQobmV3UGFyZW50LCAiU2hvdWxkIGhh
dmUgbmV3IHBhcmVudCIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKaW5kZXggNzJkMTQ2
ODU1ZThmNTAzYTE0YjI5YWMzNGI5YTk1MGRmODA5MmNmZS4uNWNjNjgxMTMzYjVhODE1NjQzNWYz
OWY1MmIxNjIzNGRjNTYzYjQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcApAQCAtMzIx
LDcgKzMyMSw3IEBAIHZvaWQgU1ZHRWxlbWVudDo6YWRkUmVmZXJlbmNpbmdFbGVtZW50KFNWR0Vs
ZW1lbnQmIGVsZW1lbnQpCiAgICAgZW5zdXJlU1ZHUmFyZURhdGEoKS5hZGRSZWZlcmVuY2luZ0Vs
ZW1lbnQoZWxlbWVudCk7CiAgICAgYXV0byYgcmFyZURhdGFPZlJlZmVyZW5jaW5nRWxlbWVudCA9
IGVsZW1lbnQuZW5zdXJlU1ZHUmFyZURhdGEoKTsKICAgICBSRUxFQVNFX0FTU0VSVCghcmFyZURh
dGFPZlJlZmVyZW5jaW5nRWxlbWVudC5yZWZlcmVuY2VUYXJnZXQoKSk7Ci0gICAgcmFyZURhdGFP
ZlJlZmVyZW5jaW5nRWxlbWVudC5zZXRSZWZlcmVuY2VUYXJnZXQobWFrZVdlYWtQdHIoKnRoaXMp
KTsKKyAgICByYXJlRGF0YU9mUmVmZXJlbmNpbmdFbGVtZW50LnNldFJlZmVyZW5jZVRhcmdldCgq
dGhpcyk7CiB9CiAKIHZvaWQgU1ZHRWxlbWVudDo6cmVtb3ZlUmVmZXJlbmNpbmdFbGVtZW50KFNW
R0VsZW1lbnQmIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxl
bWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudFJhcmVEYXRhLmgK
aW5kZXggYmJmY2JiMTgxMzcxNDgwYTMxZTQyZDE0NTQwMDAyODBjYzliYTY5ZS4uNzljMWU4YzJm
MmQ2MTY4MzE5MzNlMzgxN2JjMjkyZWU1ZjBlNDUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGVtZW50UmFyZURhdGEuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2Vh
a0hhc2hTZXQ8U1ZHUmVzb3VyY2VFbGVtZW50Q2xpZW50PiYgcmVmZXJlbmNpbmdDU1NDbGllbnRz
KCkgY29uc3QgeyByZXR1cm4gbV9yZWZlcmVuY2luZ0NTU0NsaWVudHM7IH0KIAogICAgIFNWR0Vs
ZW1lbnQqIGNvcnJlc3BvbmRpbmdFbGVtZW50KCkgeyByZXR1cm4gbV9jb3JyZXNwb25kaW5nRWxl
bWVudC5nZXQoKTsgfQotICAgIHZvaWQgc2V0Q29ycmVzcG9uZGluZ0VsZW1lbnQoU1ZHRWxlbWVu
dCogY29ycmVzcG9uZGluZ0VsZW1lbnQpIHsgbV9jb3JyZXNwb25kaW5nRWxlbWVudCA9IG1ha2VX
ZWFrUHRyKGNvcnJlc3BvbmRpbmdFbGVtZW50KTsgfQorICAgIHZvaWQgc2V0Q29ycmVzcG9uZGlu
Z0VsZW1lbnQoU1ZHRWxlbWVudCogY29ycmVzcG9uZGluZ0VsZW1lbnQpIHsgbV9jb3JyZXNwb25k
aW5nRWxlbWVudCA9IGNvcnJlc3BvbmRpbmdFbGVtZW50OyB9CiAKICAgICBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzKiBhbmltYXRlZFNNSUxTdHlsZVByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBt
X2FuaW1hdGVkU01JTFN0eWxlUHJvcGVydGllcy5nZXQoKTsgfQogICAgIE11dGFibGVTdHlsZVBy
b3BlcnRpZXMmIGVuc3VyZUFuaW1hdGVkU01JTFN0eWxlUHJvcGVydGllcygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWaWV3RWxlbWVudC5oCmluZGV4IGJjZDZjMTgyZWJhYWEwYTAzN2Q3MDk2ZTZiNWM3Mzc0
MjUxM2M0ZjMuLmMwMjExMjJjNTMwMzVkMTQ2ZWQ4MzRlOTkxM2IxYmQ2ZTk4ZjgzNmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAg
ICB1c2luZyBTVkdFbGVtZW50OjpkZXJlZjsKIAogICAgIGNvbnN0IFNWR1NWR0VsZW1lbnQqIHRh
cmdldEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldEVsZW1lbnQuZ2V0KCk7IH0KLSAg
ICB2b2lkIHNldFRhcmdldEVsZW1lbnQoY29uc3QgU1ZHU1ZHRWxlbWVudCYgdGFyZ2V0RWxlbWVu
dCkgeyBtX3RhcmdldEVsZW1lbnQgPSBtYWtlV2Vha1B0cih0YXJnZXRFbGVtZW50KTsgfQorICAg
IHZvaWQgc2V0VGFyZ2V0RWxlbWVudChjb25zdCBTVkdTVkdFbGVtZW50JiB0YXJnZXRFbGVtZW50
KSB7IG1fdGFyZ2V0RWxlbWVudCA9IHRhcmdldEVsZW1lbnQ7IH0KICAgICB2b2lkIHJlc2V0VGFy
Z2V0RWxlbWVudCgpIHsgbV90YXJnZXRFbGVtZW50ID0gbnVsbHB0cjsgfQogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKaW5kZXggMWFjNjkzNzE4ZDZlMWViOWU0OTYwYjU1
MTg5MDE3MmExMjQ0OWM3Mi4uNGVmMWNkMTQ1NmFjMDkyY2Q5MzY4OTQ0ZTFhYTg3ZDBjMjBjMmJh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogU1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKFNWR0VsZW1lbnQmIGNv
bnRleHRFbGVtZW50KQogICAgIDogU1ZHRml0VG9WaWV3Qm94KCZjb250ZXh0RWxlbWVudCwgU1ZH
UHJvcGVydHlBY2Nlc3M6OlJlYWRPbmx5KQotICAgICwgbV9jb250ZXh0RWxlbWVudChtYWtlV2Vh
a1B0cihjb250ZXh0RWxlbWVudCkpCisgICAgLCBtX2NvbnRleHRFbGVtZW50KGNvbnRleHRFbGVt
ZW50KQogICAgICwgbV90cmFuc2Zvcm0oU1ZHVHJhbnNmb3JtTGlzdDo6Y3JlYXRlKCZjb250ZXh0
RWxlbWVudCwgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRPbmx5KSkKIHsKICAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgb25jZUZsYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5k
ZXggZWM3NDZjZTVjNzdmMWE3YzE1MjJmMWJhMjJkYTE4ZDFjZmQ2MjAwMy4uMTIwZjI0ODVmMTFj
ODU4NjAxNDQxMTBmNmIxZDMzYTBjZDNiNDBiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcApAQCAtNjI2OCw3ICs2MjY4LDcgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPFdlYlhSVGVz
dD4+IEludGVybmFsczo6eHJUZXN0KCkKICAgICAgICAgaWYgKCFuYXZpZ2F0b3IpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CiAKLSAgICAgICAg
bV94clRlc3QgPSBXZWJYUlRlc3Q6OmNyZWF0ZShtYWtlV2Vha1B0cigmTmF2aWdhdG9yV2ViWFI6
OnhyKCpuYXZpZ2F0b3IpKSk7CisgICAgICAgIG1feHJUZXN0ID0gV2ViWFJUZXN0OjpjcmVhdGUo
TmF2aWdhdG9yV2ViWFI6OnhyKCpuYXZpZ2F0b3IpKTsKICAgICB9CiAgICAgcmV0dXJuIG1feHJU
ZXN0LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RN
RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcApp
bmRleCBiYzMyNDZiZjZiMmMyMDYzOGJmYjQyMjVjZjcwZDUxYThmYjMwZjAzLi40MTFlZGJiMzUx
N2I4NDhmYWMwNjNkMTllOGNkOTVlYzAwMzdjZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tDRE1GYWN0b3J5LmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgTW9ja0NETUZhY3Rv
cnk6OnNldFN1cHBvcnRlZFJvYnVzdG5lc3MoVmVjdG9yPFN0cmluZz4mJiByb2J1c3RuZXNzZXMp
CiAKIHN0ZDo6dW5pcXVlX3B0cjxDRE1Qcml2YXRlPiBNb2NrQ0RNRmFjdG9yeTo6Y3JlYXRlQ0RN
KGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8TW9ja0NETT4obWFrZVdl
YWtQdHIoKnRoaXMpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxNb2NrQ0RNPigqdGhpcyk7CiB9
CiAKIE1vY2tDRE06Ok1vY2tDRE0oV2Vha1B0cjxNb2NrQ0RNRmFjdG9yeT4gZmFjdG9yeSkKQEAg
LTE4NCw3ICsxODQsNyBAQCBSZWZQdHI8Q0RNSW5zdGFuY2U+IE1vY2tDRE06OmNyZWF0ZUluc3Rh
bmNlKCkKIHsKICAgICBpZiAobV9mYWN0b3J5ICYmICFtX2ZhY3RvcnktPmNhbkNyZWF0ZUluc3Rh
bmNlcygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IE1vY2tDRE1JbnN0YW5jZShtYWtlV2Vha1B0cigqdGhpcykpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE1vY2tDRE1JbnN0YW5jZSgqdGhpcykpOwogfQogCiB2b2lkIE1vY2tDRE06OmxvYWRB
bmRJbml0aWFsaXplKCkKQEAgLTI4OSw3ICsyODksNyBAQCBjb25zdCBTdHJpbmcmIE1vY2tDRE1J
bnN0YW5jZTo6a2V5U3lzdGVtKCkgY29uc3QKIAogUmVmUHRyPENETUluc3RhbmNlU2Vzc2lvbj4g
TW9ja0NETUluc3RhbmNlOjpjcmVhdGVTZXNzaW9uKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE1vY2tDRE1JbnN0YW5jZVNlc3Npb24obWFrZVdlYWtQdHIoKnRoaXMpKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBNb2NrQ0RNSW5zdGFuY2VTZXNzaW9uKCp0aGlzKSk7CiB9CiAKIE1v
Y2tDRE1JbnN0YW5jZVNlc3Npb246Ok1vY2tDRE1JbnN0YW5jZVNlc3Npb24oV2Vha1B0cjxNb2Nr
Q0RNSW5zdGFuY2U+JiYgaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckZvbnRMb2FkUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckZvbnRMb2FkUmVxdWVzdC5jcHAKaW5kZXggMDkzNDFkYjgzNTgxMWM0OTgyYTk1NzE5Yjgy
ZGM1OGY0NzBiNzU1Zi4uNzc0MTZlYzA3ZDdiNjhiMTI4ZTI5NjFlZGM1ZDY0MGQwNGQ0YmQ0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmNw
cApAQCAtNDksNyArNDksNyBAQCBXb3JrZXJGb250TG9hZFJlcXVlc3Q6OldvcmtlckZvbnRMb2Fk
UmVxdWVzdChVUkwmJiB1cmwsIExvYWRlZEZyb21PcGFxdWVTb3VyY2UgbAogCiB2b2lkIFdvcmtl
ckZvbnRMb2FkUmVxdWVzdDo6bG9hZChXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2Nv
cGUpCiB7Ci0gICAgbV9jb250ZXh0ID0gbWFrZVdlYWtQdHIoc3RhdGljX2Nhc3Q8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCo+KCZ3b3JrZXJHbG9iYWxTY29wZSkpOworICAgIG1fY29udGV4dCA9IHdv
cmtlckdsb2JhbFNjb3BlOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBtX3VybCB9
OwogICAgIEFTU0VSVChyZXF1ZXN0Lmh0dHBNZXRob2QoKSA9PSAiR0VUIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IDJlMGVlMWJiNzUzNmVk
ODMxNDZjZWYzOGIwMmM4NmU4M2Q3OTVlYTIuLmNjZGZlMmUzOTc1YzA5ZGIyYWViYjMxMTg5ODYw
YjNkYzZhNjkyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuY3BwCkBAIC0zNzEsNyArMzcxLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV29ya2VyR2xvYmFs
U2NvcGU6OmltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMpCiAgICAgICAg
IHsKICAgICAgICAgICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiBleGNlcHRpb247CiAgICAg
ICAgICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUoc2NyaXB0TG9hZGVyLT5zY3JpcHQo
KSwgVVJMKHNjcmlwdExvYWRlci0+cmVzcG9uc2VVUkwoKSkpOwotICAgICAgICAgICAgc291cmNl
UHJvdmlkZXIgPSBtYWtlV2Vha1B0cihzdGF0aWNfY2FzdDxTY3JpcHRCdWZmZXJTb3VyY2VQcm92
aWRlciY+KHNvdXJjZUNvZGUucHJvdmlkZXIoKSkpOworICAgICAgICAgICAgc291cmNlUHJvdmlk
ZXIgPSBzdGF0aWNfY2FzdDxTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlciY+KHNvdXJjZUNvZGUu
cHJvdmlkZXIoKSk7CiAgICAgICAgICAgICBzY3JpcHQoKS0+ZXZhbHVhdGUoc291cmNlQ29kZSwg
ZXhjZXB0aW9uKTsKICAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKICAgICAgICAgICAgICAg
ICBzY3JpcHQoKS0+c2V0RXhjZXB0aW9uKGV4Y2VwdGlvbik7CkBAIC01OTUsNyArNTk1LDcgQEAg
dm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6cmVsZWFzZU1lbW9yeUluV29ya2VycyhTeW5jaHJvbm91
cyBzeW5jaHJvbm91cykKIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OnNldE1haW5TY3JpcHRTb3Vy
Y2VQcm92aWRlcihTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlciYgcHJvdmlkZXIpCiB7CiAgICAg
QVNTRVJUKCFtX21haW5TY3JpcHRTb3VyY2VQcm92aWRlcik7Ci0gICAgbV9tYWluU2NyaXB0U291
cmNlUHJvdmlkZXIgPSBtYWtlV2Vha1B0cihwcm92aWRlcik7CisgICAgbV9tYWluU2NyaXB0U291
cmNlUHJvdmlkZXIgPSBwcm92aWRlcjsKIH0KIAogdm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6YWRk
SW1wb3J0ZWRTY3JpcHRTb3VyY2VQcm92aWRlcihjb25zdCBVUkwmIHVybCwgU2NyaXB0QnVmZmVy
U291cmNlUHJvdmlkZXImIHByb3ZpZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggZmYyN2I2
YTZlYjQ0N2Q2ZGE5YWY2NTUyM2YxOWI3OGE1YTA2YmNlOS4uYWU2YzE4NmNiMjg0YzQxZmIzZTIy
N2I2M2FiYTc2ZjNlN2I0ZGYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC01MTksNyArNTE5
LDcgQEAgdm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0V2l0
aFN1YmNsYXNzKCkKICAgICBBU1NFUlQoYXNPYmplY3QobV9nbG9iYWxTY29wZVdyYXBwZXItPmdl
dFByb3RvdHlwZURpcmVjdCgqbV92bSkpLT5nbG9iYWxPYmplY3QoKSA9PSBtX2dsb2JhbFNjb3Bl
V3JhcHBlcik7CiAKICAgICBtX2NvbnNvbGVDbGllbnQgPSBtYWtlVW5pcXVlPFdvcmtlckNvbnNv
bGVDbGllbnQ+KCptX2dsb2JhbFNjb3BlKTsKLSAgICBtX2dsb2JhbFNjb3BlV3JhcHBlci0+c2V0
Q29uc29sZUNsaWVudChtYWtlV2Vha1B0cigqbV9jb25zb2xlQ2xpZW50KSk7CisgICAgbV9nbG9i
YWxTY29wZVdyYXBwZXItPnNldENvbnNvbGVDbGllbnQoKm1fY29uc29sZUNsaWVudCk7CiB9CiAK
IHZvaWQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcAppbmRleCAzYWNmZjY2OGI4ZTUwMmFm
NDUxOGMxYmFhMzAwY2UzZGYyNDVkZjdmLi42YzAyZjEzMmRmZTlmOThiOTg3NGM2YzI0MWMyOWQz
MmJiZThlZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxv
b3AuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKQEAg
LTI4MSw3ICsyODEsNyBAQCBXb3JrZXJNYWluUnVuTG9vcDo6V29ya2VyTWFpblJ1bkxvb3AoKQog
CiB2b2lkIFdvcmtlck1haW5SdW5Mb29wOjpzZXRHbG9iYWxTY29wZShXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZSYgZ2xvYmFsU2NvcGUpCiB7Ci0gICAgbV93b3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZSA9IG1ha2VXZWFrUHRyKGdsb2JhbFNjb3BlKTsKKyAgICBtX3dvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlID0gZ2xvYmFsU2NvcGU7CiB9CiAKIHZvaWQgV29ya2VyTWFpblJ1bkxvb3A6OnBv
c3RUYXNrQW5kVGVybWluYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDM4ZTIzZGE4OTZkNTAz
MTIyNmMxMmMzYzI3N2M5ZGIxOWE4MzA2ZDMuLmVmNzBhZjE3ZDAwNDgxZGMyMzFlZjVhNmYwMzMw
OTJjMmUwODY5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAg
LTEzOSwxMyArMTM5LDEzIEBAIHZvaWQgV29ya2VyVGhyZWFkOjpldmFsdWF0ZVNjcmlwdElmTmVj
ZXNzYXJ5KFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkKICAgICBXZWFrUHRyPFNjcmlwdEJ1ZmZl
clNvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92aWRlcjsKICAgICBpZiAobV9zdGFydHVwRGF0YS0+
cGFyYW1zLndvcmtlclR5cGUgPT0gV29ya2VyVHlwZTo6Q2xhc3NpYykgewogICAgICAgICBTY3Jp
cHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwgVVJMKG1f
c3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKTsKLSAgICAgICAgc291cmNlUHJvdmlkZXIg
PSBtYWtlV2Vha1B0cihzdGF0aWNfY2FzdDxTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlciY+KHNv
dXJjZUNvZGUucHJvdmlkZXIoKSkpOworICAgICAgICBzb3VyY2VQcm92aWRlciA9IHN0YXRpY19j
YXN0PFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyJj4oc291cmNlQ29kZS5wcm92aWRlcigpKTsK
ICAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmV2YWx1YXRlKHNvdXJjZUNvZGUsICZl
eGNlcHRpb25NZXNzYWdlKTsKICAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgYXV0byBzY3JpcHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0
Y2hlcjo6Y3JlYXRlKGdsb2JhbFNjb3BlKCktPmNyZWRlbnRpYWxzKCksIGdsb2JhbFNjb3BlKCkt
PmRlc3RpbmF0aW9uKCksIGdsb2JhbFNjb3BlKCktPnJlZmVycmVyUG9saWN5KCkpOwogICAgICAg
ICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwg
VVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpLCB7IH0sIEpTQzo6U291cmNlUHJv
dmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUsIHNjcmlwdEZldGNoZXIuY29weVJlZigpKTsKLSAgICAg
ICAgc291cmNlUHJvdmlkZXIgPSBtYWtlV2Vha1B0cihzdGF0aWNfY2FzdDxTY3JpcHRCdWZmZXJT
b3VyY2VQcm92aWRlciY+KHNvdXJjZUNvZGUucHJvdmlkZXIoKSkpOworICAgICAgICBzb3VyY2VQ
cm92aWRlciA9IHN0YXRpY19jYXN0PFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyJj4oc291cmNl
Q29kZS5wcm92aWRlcigpKTsKICAgICAgICAgYm9vbCBzdWNjZXNzID0gZ2xvYmFsU2NvcGUoKS0+
c2NyaXB0KCktPmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KHNjcmlwdEZldGNoZXIuZ2V0KCksIHNv
dXJjZUNvZGUpOwogICAgICAgICBpZiAoc3VjY2VzcykgewogICAgICAgICAgICAgaWYgKHN0ZDo6
b3B0aW9uYWw8TG9hZGFibGVTY3JpcHQ6OkVycm9yPiBlcnJvciA9IHNjcmlwdEZldGNoZXItPmVy
cm9yKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAKaW5kZXggZTdkZjUxNmE3MmM5N2U5
NzZiMGNhNzg3NThhM2RhYjFlOTQzZmE0NS4uMThiN2RhNzJjNTRlYWZmYzJjODQ1MDlhOGQ2ZDY5
ZDY4MTE2MDQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAKQEAgLTE2NCw3ICsxNjQs
NyBAQCBzdGF0aWMgUmVmPFdvcmtRdWV1ZT4gcmVnaXN0cmF0aW9uRGF0YWJhc2VXb3JrUXVldWUo
KQogCiBSZWdpc3RyYXRpb25EYXRhYmFzZTo6UmVnaXN0cmF0aW9uRGF0YWJhc2UoUmVnaXN0cmF0
aW9uU3RvcmUmIHN0b3JlLCBTdHJpbmcmJiBkYXRhYmFzZURpcmVjdG9yeSkKICAgICA6IG1fd29y
a1F1ZXVlKHJlZ2lzdHJhdGlvbkRhdGFiYXNlV29ya1F1ZXVlKCkpCi0gICAgLCBtX3N0b3JlKG1h
a2VXZWFrUHRyKHN0b3JlKSkKKyAgICAsIG1fc3RvcmUoc3RvcmUpCiAgICAgLCBtX2RhdGFiYXNl
RGlyZWN0b3J5KFdURk1vdmUoZGF0YWJhc2VEaXJlY3RvcnkpKQogICAgICwgbV9kYXRhYmFzZUZp
bGVQYXRoKEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2RhdGFiYXNlRGly
ZWN0b3J5LCBkYXRhYmFzZUZpbGVuYW1lKCkpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCBjYTk5YTcwNDkzYmMzN2Ew
NDM4YzE1NWE0YzQ5NDNlMmVkZjk2NmZlLi4yY2VmM2QwYTg4Mzc5MzA3MTliODI4NjQ0MzRjNjNh
OTM1MDdmNDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmNwcApAQCAtMTk2LDEyICsxOTYsMTIgQEAgdm9pZCBTV1NlcnZlcjo6YWRk
UmVnaXN0cmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjxTV1NlcnZlclJlZ2lzdHJhdGlvbj4mJiByZWdp
c3RyYXQKICAgICAgICAgbV91bmlxdWVSZWdpc3RyYXRpb25Db3VudCsrOwogCiAgICAgaWYgKHJl
Z2lzdHJhdGlvbi0+c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCkpCi0gICAgICAgIG1fc2Vy
dmljZVdvcmtlclBhZ2VJZGVudGlmaWVyVG9SZWdpc3RyYXRpb25NYXAuYWRkKCpyZWdpc3RyYXRp
b24tPnNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cigqcmVnaXN0cmF0
aW9uKSk7CisgICAgICAgIG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyVG9SZWdpc3RyYXRp
b25NYXAuYWRkKCpyZWdpc3RyYXRpb24tPnNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcigpLCAq
cmVnaXN0cmF0aW9uKTsKIAogICAgIG1fb3JpZ2luU3RvcmUtPmFkZChyZWdpc3RyYXRpb24tPmtl
eSgpLnRvcE9yaWdpbigpKTsKICAgICBhdXRvIHJlZ2lzdHJhdGlvbklEID0gcmVnaXN0cmF0aW9u
LT5pZGVudGlmaWVyKCk7CiAgICAgQVNTRVJUKCFtX3Njb3BlVG9SZWdpc3RyYXRpb25NYXAuY29u
dGFpbnMocmVnaXN0cmF0aW9uLT5rZXkoKSkpOwotICAgIG1fc2NvcGVUb1JlZ2lzdHJhdGlvbk1h
cC5zZXQocmVnaXN0cmF0aW9uLT5rZXkoKSwgbWFrZVdlYWtQdHIoKnJlZ2lzdHJhdGlvbikpOwor
ICAgIG1fc2NvcGVUb1JlZ2lzdHJhdGlvbk1hcC5zZXQocmVnaXN0cmF0aW9uLT5rZXkoKSwgKnJl
Z2lzdHJhdGlvbik7CiAgICAgYXV0byBhZGRSZXN1bHQxID0gbV9yZWdpc3RyYXRpb25zLmFkZChy
ZWdpc3RyYXRpb25JRCwgV1RGTW92ZShyZWdpc3RyYXRpb24pKTsKICAgICBBU1NFUlRfVU5VU0VE
KGFkZFJlc3VsdDEsIGFkZFJlc3VsdDEuaXNOZXdFbnRyeSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCmlu
ZGV4IDViMmZkZGFmYTA0MzUyMDYzNjFmMzFiNDBhODUzMWRkNzY4NDczNjYuLjJiMDRjMjg4ZmM4
YzY5YTRjOTA2ZGVhNTQ2YzY4MjQ2MDcxNDJmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCkBAIC01MSw5
ICs1MSw5IEBAIFNXU2VydmVyV29ya2VyKiBTV1NlcnZlcldvcmtlcjo6ZXhpc3RpbmdXb3JrZXJG
b3JJZGVudGlmaWVyKFNlcnZpY2VXb3JrZXJJZGVudGlmCiAKIC8vIEZJWE1FOiBVc2Ugci12YWx1
ZSByZWZlcmVuY2VzIGZvciBzY3JpcHQgYW5kIGNvbnRlbnRTZWN1cml0eVBvbGljeQogU1dTZXJ2
ZXJXb3JrZXI6OlNXU2VydmVyV29ya2VyKFNXU2VydmVyJiBzZXJ2ZXIsIFNXU2VydmVyUmVnaXN0
cmF0aW9uJiByZWdpc3RyYXRpb24sIGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTY3JpcHRC
dWZmZXImIHNjcmlwdCwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5
UG9saWN5LCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5JiBjcm9zc09yaWdpbkVtYmVk
ZGVyUG9saWN5LCBTdHJpbmcmJiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB0eXBlLCBTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJiBzY3JpcHRSZXNvdXJjZU1hcCkKLSAgICA6
IG1fc2VydmVyKG1ha2VXZWFrUHRyKHNlcnZlcikpCisgICAgOiBtX3NlcnZlcihzZXJ2ZXIpCiAg
ICAgLCBtX3JlZ2lzdHJhdGlvbktleShyZWdpc3RyYXRpb24ua2V5KCkpCi0gICAgLCBtX3JlZ2lz
dHJhdGlvbihtYWtlV2Vha1B0cihyZWdpc3RyYXRpb24pKQorICAgICwgbV9yZWdpc3RyYXRpb24o
cmVnaXN0cmF0aW9uKQogICAgICwgbV9kYXRhIHsgaWRlbnRpZmllciwgc2NyaXB0VVJMLCBTZXJ2
aWNlV29ya2VyU3RhdGU6OlBhcnNlZCwgdHlwZSwgcmVnaXN0cmF0aW9uLmlkZW50aWZpZXIoKSB9
CiAgICAgLCBtX3NjcmlwdChzY3JpcHQpCiAgICAgLCBtX2NlcnRpZmljYXRlSW5mbyhjZXJ0aWZp
Y2F0ZUluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xv
YmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3Bl
LmNwcAppbmRleCBhODIyMDVhYmJkN2U3YTgwM2M1Y2FkZWI2NzNiYmY5MWY1NWQzMjFjLi4xMzZj
MDUzZTU0YzEwODYzOTJmNGQwNGNlNzJlNDQyN2FmMWE2MDU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgV29y
a2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUoV29ya2VyT3JXb3JrbGV0VGhyZWFk
JiB0aHJlYWQsIFJlZjxKU0M6OlYKIAogV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFs
U2NvcGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8SlNDOjpWTT4mJiB2bSwgU2NyaXB0U291cmNl
Q29kZSYmIGNvZGUpCiAgICAgOiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShXb3JrZXJUaHJl
YWRUeXBlOjpXb3JrbGV0LCBXVEZNb3ZlKHZtKSwgbnVsbHB0cikKLSAgICAsIG1fZG9jdW1lbnQo
bWFrZVdlYWtQdHIoZG9jdW1lbnQpKQorICAgICwgbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAs
IG1fdG9wT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUoKSkKICAgICAsIG1fdXJs
KGNvZGUudXJsKCkpCiAgICAgLCBtX2pzUnVudGltZUZsYWdzKGRvY3VtZW50LnNldHRpbmdzKCku
amF2YVNjcmlwdFJ1bnRpbWVGbGFncygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0UGVuZGluZ1Rhc2tzLmNwcAppbmRleCA1ZDdkMzg0NzJjMTJmMGE3NDYzNjZmMGQxODQ5
ZDIwODU2MWUxNjVkLi5jNDFiY2FmNzU3NGQxNzE0YTU1NjZiYmRmNTkxZjZiM2ZhMDg0ZWY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcApA
QCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXb3JrbGV0UGVuZGluZ1Rh
c2tzOjpXb3JrbGV0UGVuZGluZ1Rhc2tzKFdvcmtsZXQmIHdvcmtsZXQsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UsIGludCBjb3VudGVyKQotICAgIDogbV93b3JrbGV0KG1ha2VX
ZWFrUHRyKHdvcmtsZXQpKQorICAgIDogbV93b3JrbGV0KHdvcmtsZXQpCiAgICAgLCBtX3Byb21p
c2UoV1RGTW92ZShwcm9taXNlKSkKICAgICAsIG1fY291bnRlcihjb3VudGVyKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL0RPTVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvRE9NUGFyc2VyLmNwcAppbmRleCBmMmVhNTM1YTZmZGFlMzI0NGUwMjYxZmE3NTAyNGFlNDhi
ZGZkYmM0Li4zMDUyODAwZDFhNDFhZDViZmI5YTM0OWVjNjUyYmNmMjNlZmFjODBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvRE9NUGFyc2VyLmNwcApAQCAtMjYsNyArMjYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBpbmxpbmUgRE9NUGFyc2VyOjpET01QYXJzZXIoRG9jdW1lbnQmIGNvbnRleHREb2N1bWVu
dCkKLSAgICA6IG1fY29udGV4dERvY3VtZW50KG1ha2VXZWFrUHRyKGNvbnRleHREb2N1bWVudCkp
CisgICAgOiBtX2NvbnRleHREb2N1bWVudChjb250ZXh0RG9jdW1lbnQpCiAgICAgLCBtX3NldHRp
bmdzKGNvbnRleHREb2N1bWVudC5zZXR0aW5ncygpKQogewogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>