<?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>73225</bug_id>
          
          <creation_ts>2011-11-28 10:00:41 -0800</creation_ts>
          <short_desc>Web Inspector: put inspector agents into a vector in the InspectorController.</short_desc>
          <delta_ts>2011-12-01 12:32:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>adamk</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>509907</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-28 10:00:41 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509910</commentid>
    <comment_count>1</comment_count>
      <attachid>116773</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-28 10:04:33 -0800</bug_when>
    <thetext>Created attachment 116773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510552</commentid>
    <comment_count>2</comment_count>
      <attachid>116773</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-29 00:12:45 -0800</bug_when>
    <thetext>Comment on attachment 116773
Patch

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

&gt; Source/WebCore/ChangeLog:5
&gt; +

Please describe the change here.

&gt; Source/WebCore/ChangeLog:99
&gt; +        Web Inspector: align agent creation (factory vs constructors).

Remove this entry.

&gt; Source/WebCore/inspector/InspectorBaseAgent.h:42
&gt; +class InspectorBaseAgentInterface {

Consider moving it into its own file.

&gt; Source/WebCore/inspector/InspectorBaseAgent.h:67
&gt; +        , m_agent(static_cast&lt;T*&gt;(this))

You don&apos;t need to keep it in a field, just apply this cast in registerDispatcher.

&gt; Source/WebCore/inspector/InspectorController.h:34
&gt; +#include &quot;InspectorBaseAgent.h&quot;

Forward declaration should suffice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510558</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-29 00:22:06 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/inspector/InspectorBaseAgent.h:42
&gt; &gt; +class InspectorBaseAgentInterface {
&gt; 
&gt; Consider moving it into its own file.
&gt; 

I consider InspectorBaseAgentInterface a part of the InspectroBaseAgent. It is just a convenience way for storing all agents in the same vector while implementing double dispatch using templates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510561</commentid>
    <comment_count>4</comment_count>
      <attachid>116773</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-11-29 00:25:51 -0800</bug_when>
    <thetext>Comment on attachment 116773
Patch

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

&gt; Source/WebCore/inspector/CodeGeneratorInspector.py:1267
&gt; +            Generator.backend_setters_list.append(&quot;    void registerDispatcher(%s* %s) { m_%s = %s; }&quot; % (agent_type_name, agent_field_name, agent_field_name, agent_field_name))

backend_agent_setters_list?
registerAgent?
I&apos;d add ASSERT(!m_%s) here and m_%s = 0 in constructor.

&gt; Source/WebCore/inspector/InspectorBaseAgent.h:34
&gt; +#include &quot;InspectorBackendDispatcher.h&quot;

It is bad dependency.

&gt; Source/WebCore/inspector/InspectorBaseAgent.h:60
&gt; +        dispatcher-&gt;registerDispatcher(m_agent);

Looks like you can do static cast right here and remove m_agent member.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510576</commentid>
    <comment_count>5</comment_count>
      <attachid>116916</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-29 00:55:24 -0800</bug_when>
    <thetext>Created attachment 116916
[Patch] review comments addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510580</commentid>
    <comment_count>6</comment_count>
      <attachid>116916</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-29 01:09:00 -0800</bug_when>
    <thetext>Comment on attachment 116916
[Patch] review comments addressed.

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

&gt; Source/WebCore/inspector/InspectorController.cpp:162
&gt; +        (*it)-&gt;inspectedPageDestroyed();

You don&apos;t need this method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510599</commentid>
    <comment_count>7</comment_count>
      <attachid>116921</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-29 01:38:29 -0800</bug_when>
    <thetext>Created attachment 116921
[Patch] to land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510618</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-29 02:02:30 -0800</bug_when>
    <thetext>Committed r101345: &lt;http://trac.webkit.org/changeset/101345&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512994</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-01 12:32:09 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Committed r101345: &lt;http://trac.webkit.org/changeset/101345&gt;

This change appears to be triggering errors on the Valgrind bots:

http://build.chromium.org/p/chromium.webkit/builders/Linux%20Valgrind/builds/17144/steps/memory%20test%3A%20test_shell/logs/stdio

I&apos;ve filed a bug with details and a suggested fix: https://bugs.webkit.org/show_bug.cgi?id=73582</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116773</attachid>
            <date>2011-11-28 10:04:33 -0800</date>
            <delta_ts>2011-11-29 00:55:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73225-20111128220430.patch</filename>
            <type>text/plain</type>
            <size>65482</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRmMTg1NTQ4YzY2ODQ1
YmRkZTk3Y2YxYmE1YmM2NmY0NDQ4ZmU5Yy4uZDIyNDI0NjRlYzE5M2Y0MzdhZjczZTQ5MWQ4MDVl
YzMzYjExMmFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNyBAQAorMjAxMS0xMS0yOCAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcHV0IGluc3BlY3RvciBhZ2VudHMgaW50byBhIHZlY3RvciBpbiB0aGUgSW5zcGVjdG9yQ29u
dHJvbGxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTczMjI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weToKKyAgICAgICAgKERvbWFpbk5h
bWVGaXhlcy5nZXRfZml4ZWRfZGF0YS5SZXMpOgorICAgICAgICAoRG9tYWluTmFtZUZpeGVzKToK
KyAgICAgICAgKEdlbmVyYXRvci5nbyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpJbnNwZWN0b3JBZ2Vu
dCk6CisgICAgICAgIChXZWJDb3JlOjpQb3N0V29ya2VyTm90aWZpY2F0aW9uVG9Gcm9udGVuZFRh
c2s6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50LmNw
cDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2U6Okluc3BlY3RvckJhc2VBZ2VudElu
dGVyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2U6
On5JbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQmFzZUFnZW50SW50ZXJmYWNlOjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2U6OmNsZWFyRnJvbnRlbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlOjpyZXN0b3JlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZTo6aW5zcGVjdGVkUGFnZURlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYXNlQWdlbnQ6On5JbnNwZWN0b3JCYXNl
QWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFzZUFnZW50OjpyZWdpc3RlckRp
c3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFzZUFnZW50OjpJbnNwZWN0
b3JCYXNlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6SW5zcGVjdG9yQ1NTQWdlbnQp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25z
b2xlQWdlbnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3Bl
Y3RvckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6
aW5zcGVjdGVkUGFnZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250
cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6OnJlc3RvcmVJbnNwZWN0b3JTdGF0ZUZyb21Db29raWUpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50
OjpJbnNwZWN0b3JET01BZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6SW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6
Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
RGF0YWJhc2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEYXRhYmFzZUFn
ZW50OjpJbnNwZWN0b3JEYXRhYmFzZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yRGF0YWJhc2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6Oklu
c3BlY3RvckRlYnVnZ2VyQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpp
bnNwZWN0ZWRQYWdlRGVzdHJveWVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZpbGVTeXN0ZW1B
Z2VudDo6SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRmlsZVN5c3RlbUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Okluc3Bl
Y3RvclBhZ2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdl
bnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JSdW50aW1lQWdlbnQ6Okluc3BlY3RvclJ1bnRpbWVBZ2VudCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvcldvcmtl
ckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50OjpJbnNw
ZWN0b3JXb3JrZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VDb25zb2xlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9y
L1BhZ2VSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6
OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250
ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJSdW50aW1lQWdlbnQ6OmNyZWF0ZSk6CisKKzIwMTEtMTEtMjggIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGFsaWduIGFnZW50IGNyZWF0aW9uIChmYWN0b3J5IHZzIGNvbnN0cnVjdG9ycykuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6Y3JlYXRl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNTU0FnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZUNvbnNvbGVBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1
bnRpbWVBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6Y3JlYXRl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJDb25zb2xlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9y
L1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAgICAg
ICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyUnVudGltZUFnZW50OjpjcmVhdGUpOgorCiAyMDExLTExLTI4ICBTaW1vbiBIYXVzbWFubiAg
PHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEJ1aWxkIHN5c3RlbSBm
aXhlcyBhZ2FpbnN0IFY4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdl
bmVyYXRvckluc3BlY3Rvci5weQppbmRleCA4ODE5NmExNTdkMTcxYWFiOGYzMTcyZjU5NTZkZTUw
ZGRlMDY0MDZhLi5mNTc2NTYyODQ3MDYwNGJmYzI5YjM1YTIzOGIxNDNmNDhmMjkyNzY5IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5w
eQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5w
eQpAQCAtMTM1LDcgKzEzNSw2IEBAIGNsYXNzIERvbWFpbk5hbWVGaXhlczoKIAogICAgICAgICBj
bGFzcyBSZXMob2JqZWN0KToKICAgICAgICAgICAgIGFnZW50X3R5cGVfbmFtZSA9IGFnZW50X25h
bWVfcmVzCi0gICAgICAgICAgICBoaWRkZW4gPSBkb21haW5fbmFtZSBpbiBjbHMuaGlkZGVuX2Rv
bWFpbnMKICAgICAgICAgICAgIHNraXBfanNfYmluZCA9IGRvbWFpbl9uYW1lIGluIGNscy5za2lw
X2pzX2JpbmRfZG9tYWlucwogICAgICAgICAgICAgYWdlbnRfZmllbGRfbmFtZSA9IGZpZWxkX25h
bWVfcmVzCiAKQEAgLTE1Nyw4ICsxNTYsNyBAQCBjbGFzcyBEb21haW5OYW1lRml4ZXM6CiAgICAg
ICAgIHJldHVybiBSZXMKIAogICAgIHNraXBfanNfYmluZF9kb21haW5zID0gc2V0KFsiUnVudGlt
ZSIsICJDU1MiLCAiRE9NRGVidWdnZXIiXSkKLSAgICBoaWRkZW5fZG9tYWlucyA9IHNldChbIklu
c3BlY3RvciJdKQotICAgIGFnZW50X3R5cGVfbWFwID0geyJOZXR3b3JrIjogIkluc3BlY3RvclJl
c291cmNlQWdlbnQifQorICAgIGFnZW50X3R5cGVfbWFwID0geyJOZXR3b3JrIjogIkluc3BlY3Rv
clJlc291cmNlQWdlbnQiLCAiSW5zcGVjdG9yIjogIkluc3BlY3RvckFnZW50IiwgfQogCiAKIGNs
YXNzIENQYXJhbVR5cGUob2JqZWN0KToKQEAgLTUyMiwxMSArNTIwLDEyIEBAIHR5cGVkZWYgU3Ry
aW5nIEVycm9yU3RyaW5nOwogCiBjbGFzcyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjogcHVi
bGljIFJlZkNvdW50ZWQ8SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI+IHsKIHB1YmxpYzoKLSAg
ICBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcihJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGlu
c3BlY3RvckZyb250ZW5kQ2hhbm5lbCRjb25zdHJ1Y3RvclBhcmFtcykKKyAgICBJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlcihJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGluc3BlY3RvckZyb250
ZW5kQ2hhbm5lbCkKICAgICAgICAgOiBtX2luc3BlY3RvckZyb250ZW5kQ2hhbm5lbChpbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwpCi0kY29uc3RydWN0b3JJbml0CiAgICAgeyB9CiAKKyRzZXR0ZXJz
CisKICAgICB2b2lkIGNsZWFyRnJvbnRlbmQoKSB7IG1faW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
ID0gMDsgfQogCiAgICAgZW51bSBDb21tb25FcnJvckNvZGUgewpAQCAtNTQ1LDcgKzU0NCw2IEBA
ICRjb25zdHJ1Y3RvckluaXQKICAgICBzdGF0aWMgYm9vbCBnZXRDb21tYW5kTmFtZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIFN0cmluZyogcmVzdWx0KTsKIAogICAgIGVudW0gTWV0aG9kTmFtZXMg
ewotCiAkbWV0aG9kTmFtZXNFbnVtQ29udGVudAogfTsKIApAQCAtMTIwNSw4ICsxMjAzLDcgQEAg
Y2xhc3MgR2VuZXJhdG9yOgogICAgIGJhY2tlbmRfanNfZG9tYWluX2Rpc3BhdGNoZXJfbGlzdCA9
IFtdCiAgICAgYmFja2VuZF9qc19jYXBhYmlsaXRpZXNfbGlzdCA9IFtdCiAKLSAgICBiYWNrZW5k
X2NvbnN0cnVjdG9yX3BhcmFtX2xpc3QgPSBbXQotICAgIGJhY2tlbmRfY29uc3RydWN0b3JfaW5p
dF9saXN0ID0gW10KKyAgICBiYWNrZW5kX3NldHRlcnNfbGlzdCA9IFtdCiAgICAgYmFja2VuZF9m
aWVsZF9saXN0ID0gW10KICAgICBiYWNrZW5kX2ZvcndhcmRfbGlzdCA9IFtdCiAgICAgYmFja2Vu
ZF9pbmNsdWRlX2xpc3QgPSBbXQpAQCAtMTI2NSwxMiArMTI2Miw5IEBAIGNsYXNzIEdlbmVyYXRv
cjoKICAgICAgICAgICAgIGlmIGRvbWFpbl9kYXRhLmlzX2Rpc2FibGVkKGRlZmluZXNfbWFwKToK
ICAgICAgICAgICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAgICBpZiBkb21haW5fZGF0YS5o
aWRkZW46Ci0gICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGFnZW50X3R5cGVf
bmFtZSA9IGRvbWFpbl9kYXRhLmFnZW50X3R5cGVfbmFtZQogICAgICAgICAgICAgYWdlbnRfZmll
bGRfbmFtZSA9IGRvbWFpbl9kYXRhLmFnZW50X2ZpZWxkX25hbWUKLSAgICAgICAgICAgIEdlbmVy
YXRvci5iYWNrZW5kX2NvbnN0cnVjdG9yX3BhcmFtX2xpc3QuYXBwZW5kKCIsICVzKiAlcyIgJSAo
YWdlbnRfdHlwZV9uYW1lLCBhZ2VudF9maWVsZF9uYW1lKSkKLSAgICAgICAgICAgIEdlbmVyYXRv
ci5iYWNrZW5kX2NvbnN0cnVjdG9yX2luaXRfbGlzdC5hcHBlbmQoIiAgICAgICAgLCBtXyVzKCVz
KSIgJSAoYWdlbnRfZmllbGRfbmFtZSwgYWdlbnRfZmllbGRfbmFtZSkpCisgICAgICAgICAgICBH
ZW5lcmF0b3IuYmFja2VuZF9zZXR0ZXJzX2xpc3QuYXBwZW5kKCIgICAgdm9pZCByZWdpc3RlckRp
c3BhdGNoZXIoJXMqICVzKSB7IG1fJXMgPSAlczsgfSIgJSAoYWdlbnRfdHlwZV9uYW1lLCBhZ2Vu
dF9maWVsZF9uYW1lLCBhZ2VudF9maWVsZF9uYW1lLCBhZ2VudF9maWVsZF9uYW1lKSkKICAgICAg
ICAgICAgIEdlbmVyYXRvci5iYWNrZW5kX2ZpZWxkX2xpc3QuYXBwZW5kKCIgICAgJXMqIG1fJXM7
IiAlIChhZ2VudF90eXBlX25hbWUsIGFnZW50X2ZpZWxkX25hbWUpKQogICAgICAgICAgICAgR2Vu
ZXJhdG9yLmJhY2tlbmRfZm9yd2FyZF9saXN0LmFwcGVuZCgiY2xhc3MgJXM7IiAlIGFnZW50X3R5
cGVfbmFtZSkKICAgICAgICAgICAgIEdlbmVyYXRvci5iYWNrZW5kX2luY2x1ZGVfbGlzdC5hcHBl
bmQoIiNpbmNsdWRlIFwiJXMuaFwiIiAlIGFnZW50X3R5cGVfbmFtZSkKQEAgLTE0MjUsOCArMTQx
OSw3IEBAIGZyb250ZW5kX2hfZmlsZS53cml0ZShUZW1wbGF0ZXMuZnJvbnRlbmRfaC5zdWJzdGl0
dXRlKE5vbmUsCiAgICAgICAgICBkb21haW5DbGFzc0xpc3Q9am9pbihHZW5lcmF0b3IuZnJvbnRl
bmRfZG9tYWluX2NsYXNzX2xpbmVzLCAiIikpKQogCiBiYWNrZW5kX2hfZmlsZS53cml0ZShUZW1w
bGF0ZXMuYmFja2VuZF9oLnN1YnN0aXR1dGUoTm9uZSwKLSAgICBjb25zdHJ1Y3RvckluaXQ9am9p
bihHZW5lcmF0b3IuYmFja2VuZF9jb25zdHJ1Y3Rvcl9pbml0X2xpc3QsICJcbiIpLAotICAgIGNv
bnN0cnVjdG9yUGFyYW1zPWpvaW4oR2VuZXJhdG9yLmJhY2tlbmRfY29uc3RydWN0b3JfcGFyYW1f
bGlzdCwgIiIpLAorICAgIHNldHRlcnM9am9pbihHZW5lcmF0b3IuYmFja2VuZF9zZXR0ZXJzX2xp
c3QsICJcbiIpLAogICAgIG1ldGhvZE5hbWVzRW51bUNvbnRlbnQ9am9pbihHZW5lcmF0b3IubWV0
aG9kX25hbWVfZW51bV9saXN0LCAiXG4iKSwKICAgICBtZXRob2REZWNsYXJhdGlvbnM9am9pbihH
ZW5lcmF0b3IuYmFja2VuZF9tZXRob2RfZGVjbGFyYXRpb25fbGlzdCwgIlxuIiksCiAgICAgZmll
bGREZWNsYXJhdGlvbnM9am9pbihHZW5lcmF0b3IuYmFja2VuZF9maWVsZF9saXN0LCAiXG4iKSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCmluZGV4IDEyOWUw
NzAwYzY0M2RlZTNkOWEzMDgwZGRjNTFkYTUyM2YzN2MxOGEuLjJjYzc0YzY0YjUwZTRmZDg3ODVm
YzIwY2E5YTE2MWQ1M2IxOGQzMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckFnZW50LmNwcApAQCAtNjIsNyArNjIsNyBAQCBzdGF0aWMgY29uc3QgY2hhciBjb25zb2xl
UGFuZWxOYW1lW10gPSAiY29uc29sZSI7CiBzdGF0aWMgY29uc3QgY2hhciBwcm9maWxlc1BhbmVs
TmFtZVtdID0gInByb2ZpbGVzIjsKIAogSW5zcGVjdG9yQWdlbnQ6Okluc3BlY3RvckFnZW50KFBh
Z2UqIHBhZ2UsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSog
c3RhdGUpCi0gICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3Rh
dGUpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQWdlbnQ+KGluc3RydW1lbnRp
bmdBZ2VudHMsIHN0YXRlKQogICAgICwgbV9pbnNwZWN0ZWRQYWdlKHBhZ2UpCiAgICAgLCBtX2Zy
b250ZW5kKDApCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1h
bmFnZXIpCkBAIC0xNjQsNyArMTY0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGVy
Zm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCkKICAgICB7CiAg
ICAgICAgIGlmIChzY3JpcHRDb250ZXh0LT5pc0RvY3VtZW50KCkpIHsKLSAgICAgICAgICAgIGlm
IChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+
KHNjcmlwdENvbnRleHQpLT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+bV9pbnNwZWN0
b3JBZ2VudC5nZXQoKSkKKyAgICAgICAgICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9y
QWdlbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHNjcmlwdENvbnRleHQpLT5wYWdlKCktPmlu
c3BlY3RvckNvbnRyb2xsZXIoKS0+bV9pbnNwZWN0b3JBZ2VudCkKICAgICAgICAgICAgICAgICBp
bnNwZWN0b3JBZ2VudC0+cG9zdFdvcmtlck5vdGlmaWNhdGlvblRvRnJvbnRlbmQoKm1fd29ya2Vy
LCBtX2FjdGlvbik7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBZ2VudC5oCmluZGV4IGVjMTMxY2MwNTI4NTMxNGMyN2YxODRmZDAyYzlmZDMwOTk0
ZjZjZTcuLjg0NWIzYzI1ZDJmM2YyNGM3NzczY2QyNDliZmIxZDMxYzkxZDM1NzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDEwICs1Miwx
NCBAQCBjbGFzcyBQYWdlOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3Mg
SW5zcGVjdG9yQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50IHsKK2NsYXNzIEluc3Bl
Y3RvckFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JBZ2VudD4gewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckFnZW50KTsKIHB1YmxpYzoKLSAgICBJ
bnNwZWN0b3JBZ2VudChQYWdlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zdHJ1bWVudGlu
Z0FnZW50cyosIEluc3BlY3RvclN0YXRlKik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9yQWdlbnQ+IGNyZWF0ZShQYWdlKiBwYWdlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVj
dGVkU2NyaXB0TWFuYWdlciwgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBJbnNwZWN0b3JBZ2VudChwYWdlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIGluc3RydW1l
bnRpbmdBZ2VudHMsIHN0YXRlKSk7CisgICAgfQorCiAgICAgdmlydHVhbCB+SW5zcGVjdG9yQWdl
bnQoKTsKIAogICAgIHZvaWQgaW5zcGVjdGVkUGFnZURlc3Ryb3llZCgpOwpAQCAtOTEsNiArOTYs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JFeHRlbnNpb25BUEkoY29uc3QgU3Ry
aW5nJiBzb3VyY2UpOwogCiBwcml2YXRlOgorICAgIEluc3BlY3RvckFnZW50KFBhZ2UqLCBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqLCBJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUq
KTsKKwogICAgIHZvaWQgdW5iaW5kQWxsUmVzb3VyY2VzKCk7CiAKICNpZiBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKaW5kZXggZDQ1ODE5Y2I5OTNiNjkw
MjIyZGQwZTEwYWM0ZjY1MDk0ODc0MjM1My4uZjNmYTkyOGYxNzdjYTkyNGNjNDUxMTJmZjU4YTc4
Y2I2ODZiNTlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKQEAgLTQ4LDggKzQ4LDggQEAgbmFt
ZXNwYWNlIEFwcGxpY2F0aW9uQ2FjaGVBZ2VudFN0YXRlIHsKIHN0YXRpYyBjb25zdCBjaGFyIGFw
cGxpY2F0aW9uQ2FjaGVBZ2VudEVuYWJsZWRbXSA9ICJhcHBsaWNhdGlvbkNhY2hlQWdlbnRFbmFi
bGVkIjsKIH0KIAotSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkK
LSAgICA6IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKK0lu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0
YXRlKiBzdGF0ZSwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQpCisgICAgOiBJbnNwZWN0
b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50PihpbnN0cnVtZW50aW5n
QWdlbnRzLCBzdGF0ZSkKICAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fZnJv
bnRlbmQoMCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAppbmRleCAzYzljZWJjYmZiYjlhNTViYjg0N2Ri
N2I1N2NmODQwNmQzMmRkZDljLi5jMzE2NzQ0YzY3NGYyNjFkNzFkY2EzNjdlNGY3ZmM1Y2VjNzky
MmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiSW5z
cGVjdG9yQmFzZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDks
MTAgKzQ5LDEzIEBAIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiAKIHR5cGVkZWYgU3RyaW5nIEVy
cm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQgOiBwdWJs
aWMgSW5zcGVjdG9yQmFzZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50PiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgSW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQ
YWdlQWdlbnQqLCBJbnNwZWN0b3JTdGF0ZSopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yUGFnZUFn
ZW50KiBwYWdlQWdlbnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSwgcGFn
ZUFnZW50KSk7CisgICAgfQogICAgIH5JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoKSB7
IH0KIAogICAgIC8vIEluc3BlY3RvckJhc2VBZ2VudApAQCAtNzEsNiArNzQsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hlRm9yRnJhbWUoRXJyb3JTdHJpbmcqLCBjb25z
dCBTdHJpbmcmIGZyYW1lSWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBhcHBsaWNhdGlvbkNh
Y2hlKTsKIAogcHJpdmF0ZToKKyAgICBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7
CiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRp
b25DYWNoZShjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvTGlzdCYsIGNv
bnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUluZm8mKTsKICAgICBQYXNzUmVmUHRyPElu
c3BlY3RvckFycmF5PiBidWlsZEFycmF5Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlcyhjb25z
dCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvTGlzdCYpOwogICAgIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJj
ZShjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuY3BwCmluZGV4IGY2YTUwMWZi
NzhlYmQzNGNiMTZkODhmMjhjMWU1YzNhYzg1YmY0OWEuLjc0OTYwNzNiYTQ1NzgzMTNkYTkzY2Fi
MWQ3ZmEyYTA5N2EzZjFmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JCYXNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JCYXNlQWdlbnQuY3BwCkBAIC0zNSwxNiArMzUsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUluc3BlY3RvckJhc2VBZ2VudDo6SW5zcGVjdG9yQmFzZUFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JT
dGF0ZSkKLSAgICA6IG1faW5zdHJ1bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRzKQot
ICAgICwgbV9zdGF0ZShpbnNwZWN0b3JTdGF0ZSkKLXsKLX0KLQotSW5zcGVjdG9yQmFzZUFnZW50
Ojp+SW5zcGVjdG9yQmFzZUFnZW50KCkKLXsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JCYXNlQWdlbnQuaAppbmRleCA0N2Y5NjRiMWEzNWIwNWZmOTAzMjg3MzdkNGUw
ZjAyOTM5NTkyMzg0Li43NzVlMWU0M2NjZTA1OWI1ODczZTM2NjE1Njk3MTA4NTdjNmJiNGM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5oCkBAIC0z
MSwyNSArMzEsNDggQEAKICNpZm5kZWYgSW5zcGVjdG9yQmFzZUFnZW50X2gKICNkZWZpbmUgSW5z
cGVjdG9yQmFzZUFnZW50X2gKIAorI2luY2x1ZGUgIkluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
LmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBj
bGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiAKLWNsYXNz
IEluc3BlY3RvckJhc2VBZ2VudCB7CitjbGFzcyBJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2Ug
ewogcHVibGljOgotICAgIHZpcnR1YWwgfkluc3BlY3RvckJhc2VBZ2VudCgpOworICAgIEluc3Bl
Y3RvckJhc2VBZ2VudEludGVyZmFjZSgpIHsgfQorICAgIHZpcnR1YWwgfkluc3BlY3RvckJhc2VB
Z2VudEludGVyZmFjZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0
b3JGcm9udGVuZCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCkgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHJlc3RvcmUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVk
UGFnZURlc3Ryb3llZCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckRpc3BhdGNoZXIo
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSA9IDA7Cit9OwogCi0gICAgdmlydHVhbCB2b2lk
IHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBj
bGVhckZyb250ZW5kKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCkgPSAwOwordGVt
cGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIEluc3BlY3RvckJhc2VBZ2VudCA6IHB1YmxpYyBJbnNw
ZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2UgeworcHVibGljOgorICAgIHZpcnR1YWwgfkluc3BlY3Rv
ckJhc2VBZ2VudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRGlzcGF0Y2hlcihJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciogZGlzcGF0Y2hlcikKKyAgICB7CisgICAgICAgIGRp
c3BhdGNoZXItPnJlZ2lzdGVyRGlzcGF0Y2hlcihtX2FnZW50KTsKKyAgICB9CiAKIHByb3RlY3Rl
ZDoKLSAgICBJbnNwZWN0b3JCYXNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rv
clN0YXRlKik7CisgICAgSW5zcGVjdG9yQmFzZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSkKKyAgICAg
ICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGluZ0FnZW50cykKKyAgICAgICAg
LCBtX3N0YXRlKGluc3BlY3RvclN0YXRlKQorICAgICAgICAsIG1fYWdlbnQoc3RhdGljX2Nhc3Q8
VCo+KHRoaXMpKQorICAgIHsKKyAgICB9CiAKICAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2lu
c3RydW1lbnRpbmdBZ2VudHM7CiAgICAgSW5zcGVjdG9yU3RhdGUqIG1fc3RhdGU7CisKK3ByaXZh
dGU6CisgICAgVCogbV9hZ2VudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGU5ZDM1
YjVhYTYxMzYwM2QyZjVkYzJlZjkwZTU2YTI2MTVjZmYzM2MuLjlhYzI4ODQ4ODVlYjNmODc1Mzkz
MmNiZDA4YjIxZjIwNjFjYWJhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU0FnZW50LmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIENTU1N0eWxlUnVsZSogSW5z
cGVjdG9yQ1NTQWdlbnQ6OmFzQ1NTU3R5bGVSdWxlKENTU1J1bGUqIHJ1bGUpCiB9CiAKIEluc3Bl
Y3RvckNTU0FnZW50OjpJbnNwZWN0b3JDU1NBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluc3BlY3RvckRPTUFnZW50
KiBkb21BZ2VudCkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBzdGF0ZSkKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JDU1NBZ2VudD4oaW5z
dHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCiAgICAgLCBtX2RvbUFnZW50KGRvbUFnZW50KQogICAg
ICwgbV9sYXN0UHNldWRvU3RhdGUoMCkKICAgICAsIG1fbGFzdFN0eWxlU2hlZXRJZCgxKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAppbmRleCBhYjFkZGI2
OGU0NmI1YzE1OGMwY2QwNjE3NmNjZjcwYjEyMTNiNGNiLi42MTJhM2UwNThmMzAyM2IwNGE5M2U2
MmQzMmFlZTlhM2E0ZGMwOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ1NTQWdlbnQuaApAQCAtNTIsMTkgKzUyLDIwIEBAIGNsYXNzIE5vZGU7CiAKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogCi1jbGFzcyBJbnNwZWN0b3JDU1NBZ2VudCA6IHB1YmxpYyBJbnNwZWN0
b3JCYXNlQWdlbnQsIHB1YmxpYyBJbnNwZWN0b3JET01BZ2VudDo6RE9NTGlzdGVuZXIgeworY2xh
c3MgSW5zcGVjdG9yQ1NTQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3Rv
ckNTU0FnZW50PiwgcHVibGljIEluc3BlY3RvckRPTUFnZW50OjpET01MaXN0ZW5lciB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQ1NTQWdlbnQpOwogcHVibGljOgogICAgIHN0
YXRpYyBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0KENTU1J1bGUqKTsKICAgICBzdGF0
aWMgQ1NTU3R5bGVSdWxlKiBhc0NTU1N0eWxlUnVsZShDU1NSdWxlKik7CiAKLSAgICBJbnNwZWN0
b3JDU1NBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbnNwZWN0
b3JET01BZ2VudCopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckNTU0FnZW50PiBj
cmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
U3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckNTU0FnZW50KGluc3RydW1lbnRpbmdBZ2Vu
dHMsIHN0YXRlLCBkb21BZ2VudCkpOworICAgIH0KICAgICB+SW5zcGVjdG9yQ1NTQWdlbnQoKTsK
IAogICAgIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZShFbGVtZW50KiwgQ1NTU2VsZWN0b3I6OlBzZXVk
b1R5cGUpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCop
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7Ci0gICAgdmlydHVhbCB2b2lk
IHJlc3RvcmUoKSB7IH0KICAgICB2b2lkIHJlc2V0KCk7CiAKICAgICB2b2lkIGdldENvbXB1dGVk
U3R5bGVGb3JOb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCwgY29uc3QgUmVmUHRyPEluc3Bl
Y3RvckFycmF5PiogZm9yY2VkUHNldWRvQ2xhc3NlcywgUmVmUHRyPEluc3BlY3RvckFycmF5Piog
c3R5bGUpOwpAQCAtODEsNiArODIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRTdXBwb3J0ZWRD
U1NQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogcmVzdWx0
KTsKIAogcHJpdmF0ZToKKyAgICBJbnNwZWN0b3JDU1NBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiwgSW5zcGVjdG9yU3RhdGUqLCBJbnNwZWN0b3JET01BZ2VudCopOworCiAgICAgdHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgUmVmUHRyPEluc3BlY3RvclN0eWxlU2hlZXQ+ID4gSWRUb0luc3BlY3Rv
clN0eWxlU2hlZXQ7CiAgICAgdHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlU2hlZXQqLCBSZWZQdHI8
SW5zcGVjdG9yU3R5bGVTaGVldD4gPiBDU1NTdHlsZVNoZWV0VG9JbnNwZWN0b3JTdHlsZVNoZWV0
OwogICAgIHR5cGVkZWYgSGFzaE1hcDxOb2RlKiwgUmVmUHRyPEluc3BlY3RvclN0eWxlU2hlZXRG
b3JJbmxpbmVTdHlsZT4gPiBOb2RlVG9JbnNwZWN0b3JTdHlsZVNoZWV0OyAvLyBib2d1cyAic3R5
bGVzaGVldHMiIHdpdGggZWxlbWVudHMnIGlubGluZSBzdHlsZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggMTk3OWE2YmFk
ZDhhYmM5NTU0NDNkNDViZTJjYTQ0YTY5MGVkMDdjZi4uNjgzZDg5YWVhM2I5YzYwZDdjMzc3MjI5
M2I1MjZlZDY0N2YzNDNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIGNvbnN0IGNo
YXIgY29uc29sZU1lc3NhZ2VzRW5hYmxlZFtdID0gImNvbnNvbGVNZXNzYWdlc0VuYWJsZWQiOwog
fQogCiBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUs
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgIDogSW5z
cGVjdG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorICAgIDogSW5zcGVj
dG9yQmFzZUFnZW50PEluc3BlY3RvckNvbnNvbGVBZ2VudD4oaW5zdHJ1bWVudGluZ0FnZW50cywg
c3RhdGUpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFn
ZXIpCiAgICAgLCBtX2Zyb250ZW5kKDApCiAgICAgLCBtX3ByZXZpb3VzTWVzc2FnZSgwKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCmluZGV4
IDQxYWFlYzJjNDdmYzEwYWFlZTJiYWE3NWIyY2ViN2RjYmEzMjIyMmIuLjc2MzVhNjk2YzZhZTg3
ZWViMDM5ZGQ0NWIxYTU3OWM4NWIxZTE5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgU2Ny
aXB0UHJvZmlsZTsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKLWNsYXNzIEluc3Bl
Y3RvckNvbnNvbGVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQgeworY2xhc3MgSW5z
cGVjdG9yQ29uc29sZUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JD
b25zb2xlQWdlbnQ+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JDb25zb2xl
QWdlbnQpOwogcHVibGljOgogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA1
YzQ2OGZmMTNjYzgyZmM2YmQxYmFlMDhmZTczYTY4ZTg2Nzg2ZDYwLi40ZDljMGI3NmJhNGM0NmU0
MTQwMzhkMWZjNjEwNWNhNWQ4MjYxOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC03Myw0NSArNzMsNzkgQEAgSW5zcGVjdG9y
Q29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0b3JDbGll
bnQqIGluc3BlY3RvckMKICAgICA6IG1faW5zdHJ1bWVudGluZ0FnZW50cyhhZG9wdFB0cihuZXcg
SW5zdHJ1bWVudGluZ0FnZW50cygpKSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKElu
amVjdGVkU2NyaXB0TWFuYWdlcjo6Y3JlYXRlRm9yUGFnZSgpKQogICAgICwgbV9zdGF0ZShhZG9w
dFB0cihuZXcgSW5zcGVjdG9yU3RhdGUoaW5zcGVjdG9yQ2xpZW50KSkpCi0gICAgLCBtX2luc3Bl
Y3RvckFnZW50KGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBZ2VudChwYWdlLCBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlci5nZXQoKSwgbV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdl
dCgpKSkpCi0gICAgLCBtX3BhZ2VBZ2VudChJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmdldCgpKSkKLSAgICAsIG1fZG9tQWdlbnQoSW5zcGVjdG9yRE9NQWdlbnQ6
OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fcGFnZUFnZW50LmdldCgpLCBp
bnNwZWN0b3JDbGllbnQsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdl
dCgpKSkKLSAgICAsIG1fY3NzQWdlbnQoYWRvcHRQdHIobmV3IEluc3BlY3RvckNTU0FnZW50KG1f
aW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9kb21BZ2VudC5nZXQo
KSkpKQorICAgICwgbV9wYWdlKHBhZ2UpCisgICAgLCBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0
b3JDbGllbnQpCisgICAgLCBtX29wZW5pbmdGcm9udGVuZChmYWxzZSkKK3sKKyAgICBPd25QdHI8
SW5zcGVjdG9yQWdlbnQ+IGluc3BlY3RvckFnZW50UHRyKEluc3BlY3RvckFnZW50OjpjcmVhdGUo
cGFnZSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1faW5zdHJ1bWVudGluZ0FnZW50
cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOworICAgIG1faW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0
b3JBZ2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoaW5zcGVjdG9yQWdlbnRQdHIu
cmVsZWFzZSgpKTsKKworICAgIE93blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+IHBhZ2VBZ2VudFB0
cihJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCks
IHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7Cisg
ICAgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBwYWdlQWdlbnRQdHIuZ2V0KCk7Cisg
ICAgbV9hZ2VudHMuYXBwZW5kKHBhZ2VBZ2VudFB0ci5yZWxlYXNlKCkpOworCisgICAgT3duUHRy
PEluc3BlY3RvckRPTUFnZW50PiBkb21BZ2VudFB0cihJbnNwZWN0b3JET01BZ2VudDo6Y3JlYXRl
KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50LCBpbnNwZWN0b3JDbGllbnQs
IG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9k
b21BZ2VudCA9IGRvbUFnZW50UHRyLmdldCgpOworICAgIG1fYWdlbnRzLmFwcGVuZChkb21BZ2Vu
dFB0ci5yZWxlYXNlKCkpOworCisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckNTU0FnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2Rv
bUFnZW50KSk7CisKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgICwgbV9kYXRhYmFzZUFn
ZW50KEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMu
Z2V0KCksIG1fc3RhdGUuZ2V0KCkpKQorICAgIE93blB0cjxJbnNwZWN0b3JEYXRhYmFzZUFnZW50
PiBkYXRhYmFzZUFnZW50UHRyKEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmNyZWF0ZShtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBJbnNwZWN0b3JEYXRh
YmFzZUFnZW50KiBkYXRhYmFzZUFnZW50ID0gZGF0YWJhc2VBZ2VudFB0ci5nZXQoKTsKKyAgICBt
X2FnZW50cy5hcHBlbmQoZGF0YWJhc2VBZ2VudFB0ci5yZWxlYXNlKCkpOwogI2VuZGlmCisKICNp
ZiBFTkFCTEUoRklMRV9TWVNURU0pCi0gICAgLCBtX2ZpbGVTeXN0ZW1BZ2VudChJbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3Rh
dGUuZ2V0KCkpKQorICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6
OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKICNl
bmRpZgotICAgICwgbV9kb21TdG9yYWdlQWdlbnQoSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojpj
cmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSkKLSAgICAs
IG1fdGltZWxpbmVBZ2VudChJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSkKLSAgICAsIG1fYXBwbGljYXRpb25D
YWNoZUFnZW50KGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQobV9p
bnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3BhZ2VBZ2VudC5nZXQoKSwgbV9zdGF0ZS5nZXQo
KSkpKQotICAgICwgbV9yZXNvdXJjZUFnZW50KEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fcGFnZUFnZW50LmdldCgpLCBpbnNwZWN0
b3JDbGllbnQsIG1fc3RhdGUuZ2V0KCkpKQotICAgICwgbV9ydW50aW1lQWdlbnQoYWRvcHRQdHIo
bmV3IFBhZ2VSdW50aW1lQWdlbnQobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRl
LmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgcGFnZSwgbV9wYWdlQWdlbnQu
Z2V0KCkpKSkKLSAgICAsIG1fY29uc29sZUFnZW50KGFkb3B0UHRyKG5ldyBQYWdlQ29uc29sZUFn
ZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbnNwZWN0b3JBZ2VudC5nZXQoKSwg
bV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1fZG9tQWdlbnQu
Z2V0KCkpKSkKKyAgICBPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PiBkb21TdG9yYWdl
QWdlbnRQdHIoSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSk7CisgICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50KiBkb21TdG9yYWdlQWdlbnQgPSBkb21TdG9yYWdlQWdlbnRQdHIuZ2V0KCk7CisgICAgbV9h
Z2VudHMuYXBwZW5kKGRvbVN0b3JhZ2VBZ2VudFB0ci5yZWxlYXNlKCkpOworCisgICAgbV9hZ2Vu
dHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdl
dCgpLCBtX3N0YXRlLmdldCgpLCBwYWdlQWdlbnQpKTsKKworICAgIE93blB0cjxJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50PiByZXNvdXJjZUFnZW50UHRyKEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNy
ZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgaW5zcGVjdG9yQ2xp
ZW50LCBtX3N0YXRlLmdldCgpKSk7CisgICAgbV9yZXNvdXJjZUFnZW50ID0gcmVzb3VyY2VBZ2Vu
dFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBlbmQocmVzb3VyY2VBZ2VudFB0ci5yZWxlYXNl
KCkpOworCisgICAgT3duUHRyPEluc3BlY3RvclJ1bnRpbWVBZ2VudD4gcnVudGltZUFnZW50UHRy
KFBhZ2VSdW50aW1lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
c3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBwYWdlLCBwYWdlQWdl
bnQpKTsKKyAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQqIHJ1bnRpbWVBZ2VudCA9IHJ1bnRpbWVB
Z2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBlbmQocnVudGltZUFnZW50UHRyLnJlbGVh
c2UoKSk7CisKKyAgICBPd25QdHI8SW5zcGVjdG9yQ29uc29sZUFnZW50PiBjb25zb2xlQWdlbnRQ
dHIoUGFnZUNvbnNvbGVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9pbnNwZWN0b3JBZ2VudCwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIu
Z2V0KCksIG1fZG9tQWdlbnQpKTsKKyAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVB
Z2VudCA9IGNvbnNvbGVBZ2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoY29uc29s
ZUFnZW50UHRyLnJlbGVhc2UoKSk7CisKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikK
LSAgICAsIG1fZGVidWdnZXJBZ2VudChQYWdlRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgcGFnZSwgbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXIuZ2V0KCkpKQotICAgICwgbV9kb21EZWJ1Z2dlckFnZW50KEluc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUu
Z2V0KCksIG1fZG9tQWdlbnQuZ2V0KCksIG1fZGVidWdnZXJBZ2VudC5nZXQoKSwgbV9pbnNwZWN0
b3JBZ2VudC5nZXQoKSkpCi0gICAgLCBtX3Byb2ZpbGVyQWdlbnQoSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9jb25zb2xlQWdlbnQu
Z2V0KCksIHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgp
KSkKKyAgICBPd25QdHI8SW5zcGVjdG9yRGVidWdnZXJBZ2VudD4gZGVidWdnZXJBZ2VudFB0cihQ
YWdlRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9z
dGF0ZS5nZXQoKSwgcGFnZSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKKyAgICBt
X2RlYnVnZ2VyQWdlbnQgPSBkZWJ1Z2dlckFnZW50UHRyLmdldCgpOworICAgIG1fYWdlbnRzLmFw
cGVuZChkZWJ1Z2dlckFnZW50UHRyLnJlbGVhc2UoKSk7CisKKyAgICBtX2FnZW50cy5hcHBlbmQo
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5n
ZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9kb21BZ2VudCwgbV9kZWJ1Z2dlckFnZW50LCBtX2luc3Bl
Y3RvckFnZW50KSk7CisKKyAgICBPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gcHJvZmls
ZXJBZ2VudFB0cihJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQsIHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9wcm9maWxlckFnZW50ID0gcHJvZmlsZXJB
Z2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBlbmQocHJvZmlsZXJBZ2VudFB0ci5yZWxl
YXNlKCkpOwogI2VuZGlmCisKICNpZiBFTkFCTEUoV09SS0VSUykKLSAgICAsIG1fd29ya2VyQWdl
bnQoSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0
KCksIG1fc3RhdGUuZ2V0KCkpKQorICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JXb3JrZXJB
Z2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkp
OwogI2VuZGlmCi0gICAgLCBtX3BhZ2UocGFnZSkKLSAgICAsIG1faW5zcGVjdG9yQ2xpZW50KGlu
c3BlY3RvckNsaWVudCkKLSAgICAsIG1fb3BlbmluZ0Zyb250ZW5kKGZhbHNlKQoteworCiAgICAg
QVNTRVJUX0FSRyhpbnNwZWN0b3JDbGllbnQsIGluc3BlY3RvckNsaWVudCk7Ci0gICAgbV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgpLT5pbml0KG1faW5zcGVjdG9y
QWdlbnQuZ2V0KCkKLSAgICAgICAgLCBtX2NvbnNvbGVBZ2VudC5nZXQoKQorICAgIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+aW5pdChtX2luc3BlY3RvckFn
ZW50CisgICAgICAgICwgY29uc29sZUFnZW50CiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAg
ICAgICAgLCBtX2RhdGFiYXNlQWdlbnQuZ2V0KCkKKyAgICAgICAgLCBkYXRhYmFzZUFnZW50CiAj
ZW5kaWYKLSAgICAgICAgLCBtX2RvbVN0b3JhZ2VBZ2VudC5nZXQoKQorICAgICAgICAsIGRvbVN0
b3JhZ2VBZ2VudAogICAgICk7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAg
ICBtX3J1bnRpbWVBZ2VudC0+c2V0U2NyaXB0RGVidWdTZXJ2ZXIoJm1fZGVidWdnZXJBZ2VudC0+
c2NyaXB0RGVidWdTZXJ2ZXIoKSk7CisgICAgcnVudGltZUFnZW50LT5zZXRTY3JpcHREZWJ1Z1Nl
cnZlcigmbV9kZWJ1Z2dlckFnZW50LT5zY3JpcHREZWJ1Z1NlcnZlcigpKTsKICNlbmRpZgogfQog
CkBAIC0xMjMsMTAgKzE1Nyw5IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6On5JbnNwZWN0b3JDb250
cm9sbGVyKCkKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdGVkUGFnZURlc3Ryb3ll
ZCgpCiB7CiAgICAgZGlzY29ubmVjdEZyb250ZW5kKCk7Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRf
REVCVUdHRVIpCi0gICAgbV9kb21EZWJ1Z2dlckFnZW50LmNsZWFyKCk7Ci0gICAgbV9kZWJ1Z2dl
ckFnZW50LmNsZWFyKCk7Ci0jZW5kaWYKKyAgICBmb3IgKEFnZW50czo6aXRlcmF0b3IgaXQgPSBt
X2FnZW50cy5iZWdpbigpOyBpdCAhPSBtX2FnZW50cy5lbmQoKTsgKytpdCkKKyAgICAgICAgKCpp
dCktPmluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKTsKKwogICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLT5kaXNjb25uZWN0KCk7CiAgICAgbV9pbnNwZWN0b3JDbGllbnQtPmluc3BlY3RvckRlc3Ry
b3llZCgpOwogICAgIG1faW5zcGVjdG9yQ2xpZW50ID0gMDsKQEAgLTE2Miw2MyArMTk1LDIwIEBA
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKCkKICAgICAvLyBXZSBj
YW4gcmVjb25uZWN0IHRvIGV4aXN0aW5nIGZyb250LWVuZCAtPiB1bm11dGUgc3RhdGUuCiAgICAg
bV9zdGF0ZS0+dW5tdXRlKCk7CiAKLSAgICBtX2FwcGxpY2F0aW9uQ2FjaGVBZ2VudC0+c2V0RnJv
bnRlbmQobV9pbnNwZWN0b3JGcm9udGVuZC5nZXQoKSk7Ci0gICAgbV9wYWdlQWdlbnQtPnNldEZy
b250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwotICAgIG1fZG9tQWdlbnQtPnNldEZy
b250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwotICAgIG1fY29uc29sZUFnZW50LT5z
ZXRGcm9udGVuZChtX2luc3BlY3RvckZyb250ZW5kLmdldCgpKTsKLSAgICBtX3RpbWVsaW5lQWdl
bnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwotICAgIG1fcmVzb3Vy
Y2VBZ2VudC0+c2V0RnJvbnRlbmQobV9pbnNwZWN0b3JGcm9udGVuZC5nZXQoKSk7Ci0jaWYgRU5B
QkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgbV9kZWJ1Z2dlckFnZW50LT5zZXRGcm9udGVu
ZChtX2luc3BlY3RvckZyb250ZW5kLmdldCgpKTsKLSAgICBtX3Byb2ZpbGVyQWdlbnQtPnNldEZy
b250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwotI2VuZGlmCi0jaWYgRU5BQkxFKFNR
TF9EQVRBQkFTRSkKLSAgICBtX2RhdGFiYXNlQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9y
RnJvbnRlbmQuZ2V0KCkpOwotI2VuZGlmCi0jaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQotICAgIG1f
ZmlsZVN5c3RlbUFnZW50LT5zZXRGcm9udGVuZChtX2luc3BlY3RvckZyb250ZW5kLmdldCgpKTsK
LSNlbmRpZgotICAgIG1fZG9tU3RvcmFnZUFnZW50LT5zZXRGcm9udGVuZChtX2luc3BlY3RvckZy
b250ZW5kLmdldCgpKTsKLSNpZiBFTkFCTEUoV09SS0VSUykKLSAgICBtX3dvcmtlckFnZW50LT5z
ZXRGcm9udGVuZChtX2luc3BlY3RvckZyb250ZW5kLmdldCgpKTsKLSNlbmRpZgotICAgIG1faW5z
cGVjdG9yQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOworICAg
IEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCA9IG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCk7
CisgICAgZm9yIChBZ2VudHM6Oml0ZXJhdG9yIGl0ID0gbV9hZ2VudHMuYmVnaW4oKTsgaXQgIT0g
bV9hZ2VudHMuZW5kKCk7ICsraXQpCisgICAgICAgICgqaXQpLT5zZXRGcm9udGVuZChmcm9udGVu
ZCk7CiAKICAgICBpZiAoIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkp
CiAgICAgICAgIFNjcmlwdENvbnRyb2xsZXI6OnNldENhcHR1cmVDYWxsU3RhY2tGb3JVbmNhdWdo
dEV4Y2VwdGlvbnModHJ1ZSk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcm9udGVu
ZENyZWF0ZWQoKTsKIAogICAgIEFTU0VSVChtX2luc3BlY3RvckNsaWVudCk7Ci0gICAgbV9pbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciA9IGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlcigKLSAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQsCi0gICAgICAgIG1fYXBwbGljYXRp
b25DYWNoZUFnZW50LmdldCgpLAotICAgICAgICBtX2Nzc0FnZW50LmdldCgpLAotICAgICAgICBt
X2NvbnNvbGVBZ2VudC5nZXQoKSwKLSAgICAgICAgbV9kb21BZ2VudC5nZXQoKSwKLSNpZiBFTkFC
TEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICAgICAgbV9kb21EZWJ1Z2dlckFnZW50LmdldCgp
LAotI2VuZGlmCi0gICAgICAgIG1fZG9tU3RvcmFnZUFnZW50LmdldCgpLAotI2lmIEVOQUJMRShT
UUxfREFUQUJBU0UpCi0gICAgICAgIG1fZGF0YWJhc2VBZ2VudC5nZXQoKSwKLSNlbmRpZgotI2lm
IEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgICAgICBtX2RlYnVnZ2VyQWdlbnQuZ2V0
KCksCi0jZW5kaWYKLSNpZiBFTkFCTEUoRklMRV9TWVNURU0pCi0gICAgICAgIG1fZmlsZVN5c3Rl
bUFnZW50LmdldCgpLAotI2VuZGlmCi0gICAgICAgIG1fcmVzb3VyY2VBZ2VudC5nZXQoKSwKLSAg
ICAgICAgbV9wYWdlQWdlbnQuZ2V0KCksCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
Ci0gICAgICAgIG1fcHJvZmlsZXJBZ2VudC5nZXQoKSwKLSNlbmRpZgotICAgICAgICBtX3J1bnRp
bWVBZ2VudC5nZXQoKSwKLSAgICAgICAgbV90aW1lbGluZUFnZW50LmdldCgpCi0jaWYgRU5BQkxF
KFdPUktFUlMpCi0gICAgICAgICwgbV93b3JrZXJBZ2VudC5nZXQoKQotI2VuZGlmCi0gICAgKSk7
CisgICAgbV9pbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciA9IGFkb3B0UmVmKG5ldyBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcihtX2luc3BlY3RvckNsaWVudCkpOworCisgICAgSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIqIGRpc3BhdGNoZXIgPSBtX2luc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyLmdldCgpOworICAgIGZvciAoQWdlbnRzOjppdGVyYXRvciBpdCA9IG1fYWdlbnRzLmJlZ2lu
KCk7IGl0ICE9IG1fYWdlbnRzLmVuZCgpOyArK2l0KQorICAgICAgICAoKml0KS0+cmVnaXN0ZXJE
aXNwYXRjaGVyKGRpc3BhdGNoZXIpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
c2Nvbm5lY3RGcm9udGVuZCgpCkBAIC0yMzIsMjkgKzIyMiw5IEBAIHZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKCkKICAgICAvLyBQcmUtZGlzY29ubmVjdCBzdGF0
ZSB3aWxsIGJlIHVzZWQgdG8gcmVzdG9yZSBpbnNwZWN0b3IgYWdlbnRzLgogICAgIG1fc3RhdGUt
Pm11dGUoKTsKIAotICAgIG1faW5zcGVjdG9yQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKLSNpZiBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBtX2RlYnVnZ2VyQWdlbnQtPmNsZWFyRnJv
bnRlbmQoKTsKLSAgICBtX2RvbURlYnVnZ2VyQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBt
X3Byb2ZpbGVyQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKLSNlbmRpZgotICAgIG1fYXBwbGljYXRp
b25DYWNoZUFnZW50LT5jbGVhckZyb250ZW5kKCk7Ci0gICAgbV9jb25zb2xlQWdlbnQtPmNsZWFy
RnJvbnRlbmQoKTsKLSAgICBtX2RvbUFnZW50LT5jbGVhckZyb250ZW5kKCk7Ci0gICAgbV9jc3NB
Z2VudC0+Y2xlYXJGcm9udGVuZCgpOwotICAgIG1fdGltZWxpbmVBZ2VudC0+Y2xlYXJGcm9udGVu
ZCgpOwotICAgIG1fcmVzb3VyY2VBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwotI2lmIEVOQUJMRShT
UUxfREFUQUJBU0UpCi0gICAgbV9kYXRhYmFzZUFnZW50LT5jbGVhckZyb250ZW5kKCk7Ci0jZW5k
aWYKLSNpZiBFTkFCTEUoRklMRV9TWVNURU0pCi0gICAgbV9maWxlU3lzdGVtQWdlbnQtPmNsZWFy
RnJvbnRlbmQoKTsKLSNlbmRpZgotICAgIG1fZG9tU3RvcmFnZUFnZW50LT5jbGVhckZyb250ZW5k
KCk7Ci0gICAgbV9wYWdlQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKLSNpZiBFTkFCTEUoV09SS0VS
UykKLSAgICBtX3dvcmtlckFnZW50LT5jbGVhckZyb250ZW5kKCk7Ci0jZW5kaWYKKyAgICBmb3Ig
KEFnZW50czo6aXRlcmF0b3IgaXQgPSBtX2FnZW50cy5iZWdpbigpOyBpdCAhPSBtX2FnZW50cy5l
bmQoKTsgKytpdCkKKyAgICAgICAgKCppdCktPmNsZWFyRnJvbnRlbmQoKTsKKwogICAgIG1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+Y2xlYXJGcm9udGVuZCgp
OwogCiAgICAgbV9pbnNwZWN0b3JGcm9udGVuZC5jbGVhcigpOwpAQCAtMjk0LDI3ICsyNjQsOCBA
QCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJlc3RvcmVJbnNwZWN0b3JTdGF0ZUZyb21Db29r
aWUoY29uc3QgU3RyaW5nJiBpbnNwZWN0bwogICAgIGNvbm5lY3RGcm9udGVuZCgpOwogICAgIG1f
c3RhdGUtPmxvYWRGcm9tQ29va2llKGluc3BlY3RvclN0YXRlQ29va2llKTsKIAotICAgIG1fcGFn
ZUFnZW50LT5yZXN0b3JlKCk7Ci0gICAgbV9kb21BZ2VudC0+cmVzdG9yZSgpOwotICAgIG1fcmVz
b3VyY2VBZ2VudC0+cmVzdG9yZSgpOwotICAgIG1fdGltZWxpbmVBZ2VudC0+cmVzdG9yZSgpOwot
ICAgIG1fY29uc29sZUFnZW50LT5yZXN0b3JlKCk7Ci0gICAgbV9hcHBsaWNhdGlvbkNhY2hlQWdl
bnQtPnJlc3RvcmUoKTsKLSNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIG1fZGF0YWJhc2VB
Z2VudC0+cmVzdG9yZSgpOwotI2VuZGlmCi0jaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQotICAgIG1f
ZmlsZVN5c3RlbUFnZW50LT5yZXN0b3JlKCk7Ci0jZW5kaWYKLSAgICBtX2RvbVN0b3JhZ2VBZ2Vu
dC0+cmVzdG9yZSgpOwotI2lmIEVOQUJMRShXT1JLRVJTKQotICAgIG1fd29ya2VyQWdlbnQtPnJl
c3RvcmUoKTsKLSNlbmRpZgotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIG1f
ZGVidWdnZXJBZ2VudC0+cmVzdG9yZSgpOwotICAgIG1fcHJvZmlsZXJBZ2VudC0+cmVzdG9yZSgp
OwotI2VuZGlmCi0gICAgbV9pbnNwZWN0b3JBZ2VudC0+cmVzdG9yZSgpOworICAgIGZvciAoQWdl
bnRzOjppdGVyYXRvciBpdCA9IG1fYWdlbnRzLmJlZ2luKCk7IGl0ICE9IG1fYWdlbnRzLmVuZCgp
OyArK2l0KQorICAgICAgICAoKml0KS0+cmVzdG9yZSgpOwogfQogCiB2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OnNldFByb2Nlc3NJZChsb25nIHByb2Nlc3NJZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGY4NTVjNzE3M2QzOTAxNzhm
YTFkMDc5NjZkODBhOWVjM2U3Yzc5OTguLjViZTY2M2M4YWEzZjYwNjA0ZjUzZDY4ZDg2NzUxODM3
ZDA2MGFlZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBJbnNwZWN0b3JDb250cm9sbGVyX2gK
ICNkZWZpbmUgSW5zcGVjdG9yQ29udHJvbGxlcl9oCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JCYXNl
QWdlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0xMjAsMzAgKzEyMSwxMyBA
QCBwcml2YXRlOgogICAgIE93blB0cjxJbnN0cnVtZW50aW5nQWdlbnRzPiBtX2luc3RydW1lbnRp
bmdBZ2VudHM7CiAgICAgT3duUHRyPEluamVjdGVkU2NyaXB0TWFuYWdlcj4gbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXI7CiAgICAgT3duUHRyPEluc3BlY3RvclN0YXRlPiBtX3N0YXRlOwotICAgIE93
blB0cjxJbnNwZWN0b3JBZ2VudD4gbV9pbnNwZWN0b3JBZ2VudDsKIAotICAgIE93blB0cjxJbnNw
ZWN0b3JQYWdlQWdlbnQ+IG1fcGFnZUFnZW50OwotICAgIE93blB0cjxJbnNwZWN0b3JET01BZ2Vu
dD4gbV9kb21BZ2VudDsKLSAgICBPd25QdHI8SW5zcGVjdG9yQ1NTQWdlbnQ+IG1fY3NzQWdlbnQ7
Ci0jaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBPd25QdHI8SW5zcGVjdG9yRGF0YWJhc2VB
Z2VudD4gbV9kYXRhYmFzZUFnZW50OwotI2VuZGlmCi0jaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQot
ICAgIE93blB0cjxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ+IG1fZmlsZVN5c3RlbUFnZW50Owot
I2VuZGlmCi0gICAgT3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gbV9kb21TdG9yYWdl
QWdlbnQ7Ci0gICAgT3duUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IG1fdGltZWxpbmVBZ2Vu
dDsKLSAgICBPd25QdHI8SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50PiBtX2FwcGxpY2F0
aW9uQ2FjaGVBZ2VudDsKLSAgICBSZWZQdHI8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4gbV9yZXNv
dXJjZUFnZW50OwotICAgIE93blB0cjxJbnNwZWN0b3JSdW50aW1lQWdlbnQ+IG1fcnVudGltZUFn
ZW50OwotICAgIE93blB0cjxJbnNwZWN0b3JDb25zb2xlQWdlbnQ+IG1fY29uc29sZUFnZW50Owor
ICAgIEluc3BlY3RvckFnZW50KiBtX2luc3BlY3RvckFnZW50OworICAgIEluc3BlY3RvckRPTUFn
ZW50KiBtX2RvbUFnZW50OworICAgIEluc3BlY3RvclJlc291cmNlQWdlbnQqIG1fcmVzb3VyY2VB
Z2VudDsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBPd25QdHI8SW5zcGVj
dG9yRGVidWdnZXJBZ2VudD4gbV9kZWJ1Z2dlckFnZW50OwotICAgIE93blB0cjxJbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50PiBtX2RvbURlYnVnZ2VyQWdlbnQ7Ci0gICAgT3duUHRyPEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ+IG1fcHJvZmlsZXJBZ2VudDsKLSNlbmRpZgotI2lmIEVOQUJMRShXT1JL
RVJTKQotICAgIE93blB0cjxJbnNwZWN0b3JXb3JrZXJBZ2VudD4gbV93b3JrZXJBZ2VudDsKKyAg
ICBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBtX2RlYnVnZ2VyQWdlbnQ7CisgICAgSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudCogbV9wcm9maWxlckFnZW50OwogI2VuZGlmCiAKICAgICBSZWZQdHI8SW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXI+IG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI7CkBA
IC0xNTIsNiArMTM2LDggQEAgcHJpdmF0ZToKICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgSW5zcGVj
dG9yQ2xpZW50KiBtX2luc3BlY3RvckNsaWVudDsKICAgICBib29sIG1fb3BlbmluZ0Zyb250ZW5k
OworICAgIHR5cGVkZWYgVmVjdG9yPE93blB0cjxJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2U+
ID4gQWdlbnRzOworICAgIEFnZW50cyBtX2FnZW50czsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDFhMjUxMWVkNzQwZDVj
ZWE2MjZmMzY3N2U1Njc4MWYyYTFiYWIxNWYuLjg2MzljNTY3N2M5ZTFjYTU0NzlhNTA2YzI1Nzc3
MzM2ZDQxNWQ2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcApAQCAtMTcyLDcgKzE3Miw3IEBAIHZvaWQgUmV2YWxpZGF0ZVN0eWxlQXR0cmli
dXRlVGFzazo6b25UaW1lcihUaW1lcjxSZXZhbGlkYXRlU3R5bGVBdHRyaWJ1dGVUYXNrPiopCiB9
CiAKIEluc3BlY3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwg
SW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAgOiBJbnNw
ZWN0b3JCYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUpCisgICAg
OiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRE9NQWdlbnQ+KGluc3RydW1lbnRpbmdBZ2Vu
dHMsIGluc3BlY3RvclN0YXRlKQogICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwg
bV9jbGllbnQoY2xpZW50KQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuaAppbmRleCA1MjVmOGExYjUyOGY3YTQ4MTNiNGIwZDkwYjI0ODRlNTA5NGE4ODE2Li41MDMw
OWQ4YzM4ZTEwOWZkNTYwYTNiZmI0YzVlZmYwN2Y0ZWZlYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtODcsNyArODcsNyBAQCBzdHJ1Y3Qg
RXZlbnRMaXN0ZW5lckluZm8gewogICAgIGNvbnN0IEV2ZW50TGlzdGVuZXJWZWN0b3IgZXZlbnRM
aXN0ZW5lclZlY3RvcjsKIH07CiAKLWNsYXNzIEluc3BlY3RvckRPTUFnZW50IDogcHVibGljIElu
c3BlY3RvckJhc2VBZ2VudCB7CitjbGFzcyBJbnNwZWN0b3JET01BZ2VudCA6IHB1YmxpYyBJbnNw
ZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRE9NQWdlbnQ+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShJbnNwZWN0b3JET01BZ2VudCk7CiBwdWJsaWM6CiAgICAgc3RydWN0IERPTUxpc3RlbmVy
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50LmNwcAppbmRleCBhMzY4ZmVmZTRjZjFjM2I4ZTM0N2JlZjJlMzk2ODNkYWRlODBh
MTFkLi44M2U5Y2RhN2JiMTc3ZjA2MmRmMmI2MzZlN2FmNWVjNDU2MThjMDM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQu
Y3BwCkBAIC03NSw3ICs3NSw3IEBAIFBhc3NPd25QdHI8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dD4gSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lCiB9CiAKIEluc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIGluc3BlY3Rv
clN0YXRlLCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQsIEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQqIGRlYnVnZ2VyQWdlbnQsIEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCkKLSAgICA6
IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkK
KyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PihpbnN0
cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkKICAgICAsIG1fZG9tQWdlbnQoZG9tQWdl
bnQpCiAgICAgLCBtX2RlYnVnZ2VyQWdlbnQoZGVidWdnZXJBZ2VudCkKICAgICAsIG1faW5zcGVj
dG9yQWdlbnQoaW5zcGVjdG9yQWdlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAppbmRleCBkMmQyZjJlYjczYWEwOTE1MTJk
NjY5ZjQ3NGViMTZiYzNmZWFmM2RkLi5mNjdhOTk2N2RjNjA1MzAzMzVlNDY0OTMzZjg5ZmE4MzY2
YmU2ZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
RGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgTm9kZTsKIAogdHlwZWRl
ZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQg
OiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50LCBwdWJsaWMgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6TGlzdGVuZXIgeworY2xhc3MgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCA6IHB1YmxpYyBJ
bnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4sIHB1YmxpYyBJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50OjpMaXN0ZW5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25Q
dHI8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBJbnNwZWN0b3JTdGF0ZSosIEluc3BlY3RvckRPTUFnZW50KiwgSW5zcGVjdG9yRGVidWdnZXJB
Z2VudCosIEluc3BlY3RvckFnZW50Kik7CkBAIC03OSw5ICs3OSw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHdpbGxTZW5kWE1MSHR0cFJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQg
cGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoY29uc3QgU3RyaW5nJiBjYXRlZ29yeVR5cGUsIGNv
bnN0IFN0cmluZyYgZXZlbnROYW1lLCBib29sIHN5bmNocm9ub3VzKTsKIAotICAgIHZpcnR1YWwg
dm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBjbGVhckZyb250ZW5kKCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmUoKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgaW5zcGVjdGVkUGFnZURlc3Ryb3llZCgpIHsgY2xlYXIoKTsgfQogCiBwcml2
YXRlOgogICAgIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEluc3BlY3RvclN0YXRlKiwgSW5zcGVjdG9yRE9NQWdlbnQqLCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50KiwgSW5zcGVjdG9yQWdlbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAKaW5kZXggMmQwNjkxOGUwY2IzNzBhNzhj
ZDUyYjc4NDU4Mjc3NWFjZDRiMmUwNS4uYTNlMDIyN2FhNTM4NWU0NTY3OGI4YWQ2ZmE1OWYwNDE0
MzI5MDVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIg
ZG9tU3RvcmFnZUFnZW50RW5hYmxlZFtdID0gImRvbVN0b3JhZ2VBZ2VudEVuYWJsZWQiOwogdHlw
ZWRlZiBIYXNoTWFwPGludCwgUmVmUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZT4gPiBE
T01TdG9yYWdlUmVzb3VyY2VzTWFwOwogCiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6Okluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCi0gICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQoaW5z
dHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50PihpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKICAgICAsIG1f
ZnJvbnRlbmQoMCkKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaAppbmRleCA1ZjdlZDAy
NjM1NGQ5NGQ1ZWRlMTM4YTJkY2FmNDFjZTZlNTNkYjBlLi5lODdmZmUyMzM3ODgyZWE0Zjk4ZjA3
ZjRhNzAzZDFlYmNjZDA4NzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFN0b3Jh
Z2VBcmVhOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudCB7CitjbGFzcyBJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudD4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKaW5kZXggZDY2
YThiZGM5MGE0OTY2MWI4Yjc5YjljYjBhMTdlNTQwZmJkNzJmMi4uNDQ5YTBjZTk2NTY3ODViZGY2
OTQ5NmIxYjY5Zjg0NmU2NjQ3N2QyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcApAQCAtMjQzLDcgKzI0Myw3IEBAIHZvaWQg
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6Y2xlYXJSZXNvdXJjZXMoKQogfQogCiBJbnNwZWN0b3JE
YXRhYmFzZUFnZW50OjpJbnNwZWN0b3JEYXRhYmFzZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKLSAgICA6IEluc3Bl
Y3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKKyAgICA6IEluc3BlY3Rv
ckJhc2VBZ2VudDxJbnNwZWN0b3JEYXRhYmFzZUFnZW50PihpbnN0cnVtZW50aW5nQWdlbnRzLCBz
dGF0ZSkKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMtPnNldEluc3BlY3RvckRhdGFiYXNlQWdlbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaAppbmRleCBjNWQ0MGY4Y2I1MjM5
ZTQ2ZDllMjQwYzk5Njc4OTZmMTg3ZGJjYmNlLi41ZTA4ZmE4OWJhNzI2ZjNkNjYyNWU4YzZmZTgx
MmYzZTczYzFmZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRGF0YWJhc2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JEYXRhYmFzZUFnZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgSW5zdHJ1bWVudGluZ0Fn
ZW50czsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvckRh
dGFiYXNlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50IHsKK2NsYXNzIEluc3BlY3Rv
ckRhdGFiYXNlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckRhdGFi
YXNlQWdlbnQ+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBGcm9udGVuZFByb3ZpZGVyOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAK
aW5kZXggY2NmZWNmMGVhMzQ3NWU2YjcxMWE0YzM3OGM0MzY2MjI1OWNkM2EzZi4uY2ZlY2FlYzhi
ZjJhZjcyOGYwNTdiNDJiMzljYTE3ZWQ3NmEzNDk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtNTMsNyArNTMsNyBA
QCBzdGF0aWMgY29uc3QgY2hhciBqYXZhU2NyaXB0QnJlYWtwb2ludHNbXSA9ICJqYXZhU2NyaXB0
QnJlYWtvcGludHMiOwogY29uc3QgY2hhciogSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6YmFja3Ry
YWNlT2JqZWN0R3JvdXAgPSAiYmFja3RyYWNlLW9iamVjdC1ncm91cCI7CiAKIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKLSAgICA6IEluc3BlY3Rv
ckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkKKyAgICA6IElu
c3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JEZWJ1Z2dlckFnZW50PihpbnN0cnVtZW50aW5nQWdl
bnRzLCBpbnNwZWN0b3JTdGF0ZSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVj
dGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1fcGF1c2VkU2Ny
aXB0U3RhdGUoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudC5oCmluZGV4IGI5MDUwYzlmZGE1OWM3OTAxYTEwYjI0NzlhNzIyYTRlOTIxNjZm
N2YuLjZmOTJiYTZmMjZhNmM4MjFiMDRhNjA4ZjBiNzI5YjZkNmQ2Yzc4OTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtNTgs
NyArNTgsNyBAQCBjbGFzcyBTY3JpcHRWYWx1ZTsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJp
bmc7CiAKLWNsYXNzIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFz
ZUFnZW50LCBwdWJsaWMgU2NyaXB0RGVidWdMaXN0ZW5lciB7CitjbGFzcyBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50PiwgcHVibGljIFNjcmlwdERlYnVnTGlzdGVuZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBzdGF0aWMgY29uc3QgY2hhciogYmFja3RyYWNlT2JqZWN0R3JvdXA7CkBAIC03
Miw2ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVj
dG9yRnJvbnRlbmQqKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogICAgIHZp
cnR1YWwgdm9pZCByZXN0b3JlKCk7CisgICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFBhZ2VEZXN0
cm95ZWQoKSB7IGNsZWFyKCk7IH0KIAogICAgIHZvaWQgZGlkQ2xlYXJNYWluRnJhbWVXaW5kb3dP
YmplY3QoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZpbGVTeXN0ZW1BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50LmNwcAppbmRleCBhNjRhMWIzMzEwYWY5YzA2YjI1YjhmYjJjMDJmYjI5
OGVhNDY3NGMyLi45NmYwM2I2MGRhZjQ3Yzg4NzI2MjIxM2ViNGE3Y2VmM2Y4MWQzYWRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50LmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50
OjpyZXN0b3JlKCkKIH0KIAogSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpJbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yU3RhdGUqIHN0YXRlKQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50KGluc3RydW1lbnRp
bmdBZ2VudHMsIHN0YXRlKSwKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKSwKICAgICAgIG1fZnJvbnRl
bmQoMCksCiAgICAgICBtX2VuYWJsZWQoZmFsc2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKaW5kZXggZWZhNTU4M2UwZjVh
ZWVhMjM3YjJkMmQ4ZjA4NGI2NDkxNGJkNDQ5Ni4uMDAzYTljNTU5ZjhlMTY2MDkyYjQ5ZThmYmJh
NjU4ZGM3NDY4NTVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGaWxlU3lzdGVtQWdlbnQuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBJbnNwZWN0b3JG
cm9udGVuZDsKIGNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50
czsKIAotY2xhc3MgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50IDogcHVibGljIEluc3BlY3RvckJh
c2VBZ2VudCB7CitjbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQgOiBwdWJsaWMgSW5zcGVj
dG9yQmFzZUFnZW50PEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudD4gewogcHVibGljOgogICAgIHN0
YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudD4gY3JlYXRlKEluc3RydW1l
bnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSopOwogICAgIHZpcnR1YWwgfkluc3BlY3RvckZp
bGVTeXN0ZW1BZ2VudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcAppbmRleCA3MDYxMzYzZDEyZjUzMDM4ZTgzZTU5Y2M2OGRkMzgxM2MyZTIw
YjEzLi44YTAzODBkY2Q1MjJlMjAxNzc2NDM5YTk0ODA0MDdiMTIwZGVmYzVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMjYyLDcg
KzI2Miw3IEBAIFN0cmluZyBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlVHlwZVN0
cmluZyhjb25zdCBDYWNoZWRSZXNvdXJjZSYgY2FjaGVkCiB9CiAKIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6SW5zcGVjdG9yUGFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIFBhZ2UqIHBhZ2UsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAgOiBJbnNwZWN0b3JC
YXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUpCisgICAgOiBJbnNw
ZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUGFnZUFnZW50PihpbnN0cnVtZW50aW5nQWdlbnRzLCBp
bnNwZWN0b3JTdGF0ZSkKICAgICAsIG1fcGFnZShwYWdlKQogICAgICwgbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwgbV9mcm9udGVuZCgwKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGU2MTM0
OTgxYWIwM2Q1MmZlN2M4ZmMwODAwMTEzMTljM2YzNGExZjkuLjJmYTIxYzA2Y2NkMWIzZGE5NmQz
NjZjNzQzZGMzYTgyZWEwMzAyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmgKQEAgLTYwLDcgKzYwLDcgQEAgY2xhc3MgU2hhcmVkQnVmZmVyOwog
CiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50
IDogSW5zcGVjdG9yQmFzZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvclBhZ2VBZ2VudCA6IHB1Ymxp
YyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUGFnZUFnZW50PiB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoSW5zcGVjdG9yUGFnZUFnZW50KTsKIHB1YmxpYzoKICAgICBlbnVtIFJlc291
cmNlVHlwZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudC5jcHAKaW5kZXggYzBhZjE2YzU4NWFmODhjMThjMDYyMGI4MjgzYzk0YzhlMTlj
MjNjNS4uZWNjNmM4MWNkNGEzNDhhMTMxNjE4ZDM4MTU0M2QyNjRjZDM2OTNkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApA
QCAtNjgsNyArNjgsNyBAQCBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQQogfQogCiBJbnNwZWN0b3JQ
cm9maWxlckFnZW50OjpJbnNwZWN0b3JQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50
LCBQYWdlKiBpbnNwZWN0ZWRQYWdlLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIElu
amVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgIDogSW5zcGVj
dG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQorICAgIDog
SW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+KGluc3RydW1lbnRpbmdB
Z2VudHMsIGluc3BlY3RvclN0YXRlKQogICAgICwgbV9jb25zb2xlQWdlbnQoY29uc29sZUFnZW50
KQogICAgICwgbV9pbnNwZWN0ZWRQYWdlKGluc3BlY3RlZFBhZ2UpCiAgICAgLCBtX2luamVjdGVk
U2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAppbmRleCBiMGViMGZhMzhhY2My
MmZmM2QwZmVhOWMxODdiNGQyZTUwMGVhNzUwLi4xNDA2NGM2NjVhZjZlMGU3ZjE5Mzk3N2IwOTcx
YzE3NDdiZjQ0NzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQcm9maWxlckFnZW50LmgKQEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgU2NyaXB0UHJvZmlsZTsK
IAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvclByb2ZpbGVy
QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvclByb2Zp
bGVyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclByb2ZpbGVyQWdl
bnQ+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JQcm9maWxlckFnZW50KTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQqLCBQYWdlKiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlw
dE1hbmFnZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JS
ZXNvdXJjZUFnZW50LmNwcAppbmRleCAzODEzMjg2ZWY4OTM1OTU0ZDZiNTJmMTFhYTZkNGM5YThh
NzUwNzZiLi42YzEwMmNjZDIzZGY3MmI1ZWQwOGI4ZGZiMzU2ODYwNjJhMzIzMTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3Bw
CkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjptYWluRnJh
bWVOYXZpZ2F0ZWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIH0KIAogSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9y
Q2xpZW50KiBjbGllbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKLSAgICA6IEluc3BlY3RvckJh
c2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKKyAgICA6IEluc3BlY3RvckJhc2VB
Z2VudDxJbnNwZWN0b3JSZXNvdXJjZUFnZW50PihpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkK
ICAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAg
ICAsIG1fZnJvbnRlbmQoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudC5oCmluZGV4IGIxYjQ5ZjYzZmU5ZmY2NDk0ZGEwYjkyYjgyNjAwNTQ4
NDUyMGRhYzEuLjI4Mjg5Njc5Nzk3YjNmOGExYTdlNDFkOTk0NGZiOTdhMzJhZmJiMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaApA
QCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNzMsMTEgKzczLDExIEBAIGNsYXNzIFdlYlNvY2tl
dEhhbmRzaGFrZVJlc3BvbnNlOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xh
c3MgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQsIHB1
YmxpYyBSZWZDb3VudGVkPEluc3BlY3RvclJlc291cmNlQWdlbnQ+IHsKK2NsYXNzIEluc3BlY3Rv
clJlc291cmNlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclJlc291
cmNlQWdlbnQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JSZXNv
dXJjZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvckNsaWVudCogY2xpZW50
LCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9y
UmVzb3VyY2VBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDbGllbnQqIGNs
aWVudCwgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2VB
Z2VudCwgY2xpZW50LCBzdGF0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3Bl
Y3RvclJlc291cmNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZUFnZW50LCBjbGllbnQs
IHN0YXRlKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3Rv
ckZyb250ZW5kKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwCmluZGV4IGY0YjIxZTdiM2M4NjE2YjFmYzMwYzM1MjMyNmI2YjAxOTdj
YmMwMmMuLmU2ZGQwNmNhOGZlYTY1YzY5OWE3NWVhZTY2ODBkODU2ZWEwYzc2NDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCkBA
IC01Niw3ICs1Niw3IEBAIHN0YXRpYyBib29sIGFzQm9vbChjb25zdCBib29sKiBjb25zdCBiKQog
fQogCiBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6Okluc3BlY3RvclJ1bnRpbWVBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUs
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgIDogSW5z
cGVjdG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorICAgIDogSW5zcGVj
dG9yQmFzZUFnZW50PEluc3BlY3RvclJ1bnRpbWVBZ2VudD4oaW5zdHJ1bWVudGluZ0FnZW50cywg
c3RhdGUpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFn
ZXIpCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgLCBtX3NjcmlwdERlYnVn
U2VydmVyKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmgKaW5kZXggZWE1NDhhYzRmN2NlZGI5NTk3ZjNjOWMwNGJkNzEzYTZjZDZlZDkzNy4u
OTE0NWM2YzhhMjI3ZTllY2UwNjlmZTA3YTJjZDdlODdmZTFiMjhlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaApAQCAtNTEsNyArNTEs
NyBAQCBjbGFzcyBXb3JrZXJDb250ZXh0OwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsK
IAotY2xhc3MgSW5zcGVjdG9yUnVudGltZUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2Vu
dCB7CitjbGFzcyBJbnNwZWN0b3JSdW50aW1lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFn
ZW50PEluc3BlY3RvclJ1bnRpbWVBZ2VudD4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElu
c3BlY3RvclJ1bnRpbWVBZ2VudCk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yUnVu
dGltZUFnZW50KCk7CkBAIC03OCwxMCArNzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWxlYXNl
T2JqZWN0R3JvdXAoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKTsKICAg
ICB2b2lkIHJ1bihFcnJvclN0cmluZyopOwogCi0gICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5k
KEluc3BlY3RvckZyb250ZW5kKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQo
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZSgpIHsgfQotCiAjaWYgRU5BQkxFKEpBVkFT
Q1JJUFRfREVCVUdHRVIpCiAgICAgdm9pZCBzZXRTY3JpcHREZWJ1Z1NlcnZlcihTY3JpcHREZWJ1
Z1NlcnZlciopOwogI2lmIEVOQUJMRShXT1JLRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IDFkZGUwMDA1NDRkZWFh
ZGM1M2E4Y2FiMTk1ZjM4YmRkOGI4MWM4MWMuLmNjMjRiOWUxNGE5YTdiMWVkMWYwMGY0MGRjNGFk
ZjE4MTNlOTUwY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTQwMCw3ICs0MDAsNyBAQCB2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZChjb25zdCBTdHJpbmcmIHR5cGUp
CiB9CiAKIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0
YXRlKQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRl
KQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+KGluc3Ry
dW1lbnRpbmdBZ2VudHMsIHN0YXRlKQogICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9pZCgx
KQogICAgICwgbV9tYXhDYWxsU3RhY2tEZXB0aCg1KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggMWE1MjAzYzk4NjUwYmMxYTAw
ZmNiYzVjODRlYTVmMTVlOTcxMWIwOS4uNzhhZjAyZDM4YWEwYmViOTgzZGY5YjZkM2Y4Zjk2OWY0
MWVlZDY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiAK
IHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudCwgU2NyaXB0R0NFdmVudExpc3RlbmVyIHsK
K2NsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50
PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+LCBTY3JpcHRHQ0V2ZW50TGlzdGVuZXIgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvclRpbWVsaW5lQWdlbnQpOwogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IGNyZWF0ZShJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNw
cAppbmRleCAyNTU3NDUwNTM0MDQzZGQ3ZjFhMWQ4NTdkMTk1OGQ3OTcyOTYzZGNhLi45YjcyOTBj
OGRkOGMxNWIzNWMzNTBhNGNlMWVlNzYzMmZjZjI5ZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKQEAgLTExMSw3ICsxMTEsNyBA
QCBQYXNzT3duUHRyPEluc3BlY3RvcldvcmtlckFnZW50PiBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6
Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudAogfQogCiBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6SW5z
cGVjdG9yV29ya2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5zcGVjdG9yU3RhdGUqIGluc3BlY3RvclN0YXRlKQotICAgIDogSW5zcGVjdG9yQmFzZUFn
ZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQorICAgIDogSW5zcGVjdG9y
QmFzZUFnZW50PEluc3BlY3RvcldvcmtlckFnZW50PihpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNw
ZWN0b3JTdGF0ZSkKICAgICAsIG1faW5zcGVjdG9yRnJvbnRlbmQoMCkKIHsKICAgICBtX2luc3Ry
dW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvcldvcmtlckFnZW50KHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCBmNzU3Y2Fh
MjczM2Q0NzYyNTE5YTlkZjI3MjkwYzExZDVhZmIyMGExLi41OTZmZjE2YWYzMzVlMjU2YTVlZDky
OTI2M2MwZTEwMTAxMWY0YTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuaApAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBXb3JrZXJDb250ZXh0
UHJveHk7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JX
b3JrZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQgeworY2xhc3MgSW5zcGVjdG9y
V29ya2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvcldvcmtlckFn
ZW50PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yV29ya2VyQWdl
bnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqKTsKICAgICB+
SW5zcGVjdG9yV29ya2VyQWdlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9QYWdlQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNv
bnNvbGVBZ2VudC5oCmluZGV4IGE5MTQ3NTI3MGVmZDRhZTFlMzUxMzAwYTUxNjExZWZiOTFkMjNh
YTEuLmJiNDhmYWViYWFmYWRhZGY5NjEwNjYzZTcxZTQyOGZkNjlkOTMwYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaApAQCAtMzIsNiArMzIsNyBAQAog
I2RlZmluZSBQYWdlQ29uc29sZUFnZW50X2gKIAogI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVB
Z2VudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogCkBAIC00MywxMCArNDQsMTQgQEAgY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQ7CiBjbGFz
cyBQYWdlQ29uc29sZUFnZW50IDogcHVibGljIEluc3BlY3RvckNvbnNvbGVBZ2VudCB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNvbnNvbGVBZ2VudCk7CiBwdWJsaWM6Ci0gICAgUGFn
ZUNvbnNvbGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQWdlbnQqLCBJbnNw
ZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3RvckRPTUFnZW50Kik7
CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGFnZUNvbnNvbGVBZ2VudD4gY3JlYXRlKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckFnZW50KiBhZ2VudCwg
SW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2Ny
aXB0TWFuYWdlciwgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50KQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlQ29uc29sZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMs
IGFnZW50LCBzdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBkb21BZ2VudCkpOworICAgIH0K
ICAgICB2aXJ0dWFsIH5QYWdlQ29uc29sZUFnZW50KCk7CiAKIHByaXZhdGU6CisgICAgUGFnZUNv
bnNvbGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQWdlbnQqLCBJbnNwZWN0
b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3RvckRPTUFnZW50Kik7CiAg
ICAgdmlydHVhbCB2b2lkIGNsZWFyTWVzc2FnZXMoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFs
IHZvaWQgYWRkSW5zcGVjdGVkTm9kZShFcnJvclN0cmluZyosIGludCBub2RlSWQpOwogICAgIHZp
cnR1YWwgYm9vbCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaAppbmRleCBiNWM0MWM3ODQ2NWY5NTNhZDNlNzRlMDM3
ZWM1ODI0ZTMwYTY5ODRmLi5mZmUyOTBjYjQwMjYzNTZjODhhZmJmY2EwNDk3NTVjMTM0NTRjZjAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKQEAgLTM0
LDYgKzM0LDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCiAjaW5jbHVkZSAiSW5zcGVjdG9y
UnVudGltZUFnZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC00MiwxMCArNDMsMTUgQEAgY2xhc3MgUGFnZTsKIAogY2xhc3MgUGFn
ZVJ1bnRpbWVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JSdW50aW1lQWdlbnQgewogcHVibGljOgot
ICAgIFBhZ2VSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRl
KiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgUGFnZSosIEluc3BlY3RvclBhZ2VBZ2VudCopOwor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhZ2VSdW50aW1lQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIElu
amVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBQYWdlKiBwYWdlLCBJ
bnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgUGFnZVJ1bnRpbWVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSwgaW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLCBwYWdlLCBwYWdlQWdlbnQpKTsKKyAgICB9CiAgICAgdmlydHVh
bCB+UGFnZVJ1bnRpbWVBZ2VudCgpOwogCiBwcml2YXRlOgorICAgIFBhZ2VSdW50aW1lQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKiwgUGFnZSosIEluc3BlY3RvclBhZ2VBZ2VudCopOworCiAgICAgdmlydHVhbCBTY3JpcHRT
dGF0ZSogc2NyaXB0U3RhdGVGb3JGcmFtZUlkKGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CiAgICAg
dmlydHVhbCBTY3JpcHRTdGF0ZSogZ2V0RGVmYXVsdEluc3BlY3RlZFN0YXRlKCk7CiAgICAgUGFn
ZSogbV9pbnNwZWN0ZWRQYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckNvbnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNv
bnNvbGVBZ2VudC5oCmluZGV4IDM2MGVjYTdiOWFhZTQ4NWU3ZmVkOGYwOTkzYzk2YjcxMTUzNmRj
MmUuLjZmNjBkNDIyMGMwYmE4NWE4YWE3MmRiNjY2ZmJmZjVmZmM2NDM2N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmgKQEAgLTMyLDYgKzMyLDcg
QEAKICNkZWZpbmUgV29ya2VyQ29uc29sZUFnZW50X2gKIAogI2luY2x1ZGUgIkluc3BlY3RvckNv
bnNvbGVBZ2VudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKSAmJiBFTkFCTEUoV09SS0VSUykKIApAQCAtNDAsMTAgKzQxLDE0IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIFdvcmtlckNvbnNvbGVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0
b3JDb25zb2xlQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlckNvbnNvbGVB
Z2VudCk7CiBwdWJsaWM6Ci0gICAgV29ya2VyQ29uc29sZUFnZW50KEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIHN0YXRp
YyBQYXNzT3duUHRyPFdvcmtlckNvbnNvbGVBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IFdvcmtlckNvbnNvbGVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBz
dGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSk7CisgICAgfQogICAgIHZpcnR1YWwgfldvcmtl
ckNvbnNvbGVBZ2VudCgpOwogCiBwcml2YXRlOgorICAgIFdvcmtlckNvbnNvbGVBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIq
KTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkSW5zcGVjdGVkTm9kZShFcnJvclN0cmluZyosIGludCBu
b2RlSWQpOwogICAgIHZpcnR1YWwgYm9vbCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCk7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIuY3BwCmluZGV4IDdhMDE2YjA1MjViMDkxMzgxNDkwOWQ5MmNjMTliNTBmMmZmMmQ3MTYu
LjlmMjRkZTk2NjYyOWNjZDk1YjJhMTk1NTQ5ODUwNTk3Mjk0MjJhNDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
QEAgLTkxLDEyICs5MSwxNCBAQCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpXb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyKFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleAogICAgICwgbV9zdGF0
ZShhZG9wdFB0cihuZXcgSW5zcGVjdG9yU3RhdGUobV9zdGF0ZUNsaWVudC5nZXQoKSkpKQogICAg
ICwgbV9pbnN0cnVtZW50aW5nQWdlbnRzKGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50aW5nQWdlbnRz
KCkpKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
OjpjcmVhdGVGb3JXb3JrZXIoKSkKK3sKKwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQotICAgICwgbV9kZWJ1Z2dlckFnZW50KFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIHdvcmtlckNvbnRleHQsIG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSkKKyAgICBtX2RlYnVnZ2VyQWdlbnQgPSBXb3Jr
ZXJEZWJ1Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0
YXRlLmdldCgpLCB3b3JrZXJDb250ZXh0LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSk7
CiAjZW5kaWYKLSAgICAsIG1fcnVudGltZUFnZW50KGFkb3B0UHRyKG5ldyBXb3JrZXJSdW50aW1l
QWdlbnQobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2luamVj
dGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgd29ya2VyQ29udGV4dCkpKQotICAgICwgbV9jb25zb2xl
QWdlbnQoYWRvcHRQdHIobmV3IFdvcmtlckNvbnNvbGVBZ2VudChtX2luc3RydW1lbnRpbmdBZ2Vu
dHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSkp
Ci17CisgICAgbV9ydW50aW1lQWdlbnQgPSBXb3JrZXJSdW50aW1lQWdlbnQ6OmNyZWF0ZShtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLmdldCgpLCB3b3JrZXJDb250ZXh0KTsKKyAgICBtX2NvbnNvbGVBZ2VudCA9IFdvcmtl
ckNvbnNvbGVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0
ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpOworCiAgICAgbV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgpLT5pbml0KDAKICAgICAgICAgLCAw
CiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKQEAgLTEyMSwzNCArMTIzLDEyIEBAIHZvaWQgV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKCkKICAgICBtX3N0YXRlLT51
bm11dGUoKTsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IGFkb3B0UHRyKG5ldyBQYWdlSW5zcGVj
dG9yUHJveHkobV93b3JrZXJDb250ZXh0KSk7CiAgICAgbV9mcm9udGVuZCA9IGFkb3B0UHRyKG5l
dyBJbnNwZWN0b3JGcm9udGVuZChtX2Zyb250ZW5kQ2hhbm5lbC5nZXQoKSkpOwotICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBhZG9wdFJlZihuZXcgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIo
Ci0gICAgICAgIG1fZnJvbnRlbmRDaGFubmVsLmdldCgpLAotICAgICAgICAwLCAvLyBJbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQKLSAgICAgICAgMCwgLy8gSW5zcGVjdG9yQ1NTQWdlbnQK
LSAgICAgICAgbV9jb25zb2xlQWdlbnQuZ2V0KCksCi0gICAgICAgIDAsIC8vIEluc3BlY3RvckRP
TUFnZW50Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgICAgIDAsIC8vIElu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQKLSNlbmRpZgotICAgICAgICAwLCAvLyBJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQKLSNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgICAgICAwLCAvLyBJ
bnNwZWN0b3JEYXRhYmFzZUFnZW50Ci0jZW5kaWYKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikKLSAgICAgICAgbV9kZWJ1Z2dlckFnZW50LmdldCgpLAotI2VuZGlmCi0jaWYgRU5BQkxF
KEZJTEVfU1lTVEVNKQotICAgICAgICAwLCAvLyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQKLSNl
bmRpZgotICAgICAgICAwLCAvLyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ci0gICAgICAgIDAsIC8v
IEluc3BlY3RvclBhZ2VBZ2VudAorICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBhZG9wdFJlZihu
ZXcgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIobV9mcm9udGVuZENoYW5uZWwuZ2V0KCkpKTsK
KyAgICBtX2JhY2tlbmREaXNwYXRjaGVyLT5yZWdpc3RlckRpc3BhdGNoZXIobV9jb25zb2xlQWdl
bnQuZ2V0KCkpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgICAgICAwLCAv
LyBJbnNwZWN0b3JQcm9maWxlckFnZW50CisgICAgbV9kZWJ1Z2dlckFnZW50LT5yZWdpc3RlckRp
c3BhdGNoZXIobV9iYWNrZW5kRGlzcGF0Y2hlci5nZXQoKSk7CiAjZW5kaWYKLSAgICAgICAgbV9y
dW50aW1lQWdlbnQuZ2V0KCksCi0gICAgICAgIDAsIC8vIEluc3BlY3RvclRpbWVsaW5lQWdlbnQK
LSAgICAgICAgMCAvLyBJbnNwZWN0b3JXb3JrZXJBZ2VudAotICAgICkpOworICAgIG1fcnVudGlt
ZUFnZW50LT5yZWdpc3RlckRpc3BhdGNoZXIobV9iYWNrZW5kRGlzcGF0Y2hlci5nZXQoKSk7CiAK
ICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRIb3N0KCktPnNldEZy
b250ZW5kKG1fZnJvbnRlbmQuZ2V0KCkpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCmluZGV4
IGYxYjUzOGEyYTZmZGVkMWNhOTUwMDVmNTg5ZTMzMDg3ZDBiZGNjYTguLmQyNjlhMmZlMzZlODU2
M2EzNzZkZGM5Y2Y2YmE5MGJkZGFlNmRkNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VyUnVudGltZUFnZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKSAmJiBFTkFCTEUoV09SS0VSUykKIAogI2luY2x1ZGUgIkluc3BlY3RvclJ1bnRpbWVB
Z2VudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDEsMTAgKzQyLDE0IEBAIGNsYXNzIFdvcmtlckNvbnRleHQ7CiAKIGNsYXNzIFdv
cmtlclJ1bnRpbWVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JSdW50aW1lQWdlbnQgewogcHVibGlj
OgotICAgIFdvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9y
U3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBXb3JrZXJDb250ZXh0Kik7CisgICAgc3Rh
dGljIFBhc3NPd25QdHI8V29ya2VyUnVudGltZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgV29ya2VyQ29udGV4dCogY29u
dGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyUnVudGltZUFn
ZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIGNv
bnRleHQpKTsKKyAgICB9CiAgICAgdmlydHVhbCB+V29ya2VyUnVudGltZUFnZW50KCk7CiAKIHBy
aXZhdGU6CisgICAgV29ya2VyUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNw
ZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIFdvcmtlckNvbnRleHQqKTsKICAg
ICB2aXJ0dWFsIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZUZvckZyYW1lSWQoY29uc3QgU3RyaW5n
JiBmcmFtZUlkKTsKICAgICB2aXJ0dWFsIFNjcmlwdFN0YXRlKiBnZXREZWZhdWx0SW5zcGVjdGVk
U3RhdGUoKTsKICAgICBXb3JrZXJDb250ZXh0KiBtX3dvcmtlckNvbnRleHQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116916</attachid>
            <date>2011-11-29 00:55:24 -0800</date>
            <delta_ts>2011-11-29 01:38:19 -0800</delta_ts>
            <desc>[Patch] review comments addressed.</desc>
            <filename>bug-73225-20111129125522.patch</filename>
            <type>text/plain</type>
            <size>70782</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc2YTEwYzU5YjljZTZl
Y2VlODBhYTc4YTA3OTFiMTkzMzMzMTVmZS4uOThmMGJiMGE0MGNhYTFiODRmMWUxOGJiODVhNzY2
MTI0ZWMxZjc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAxMS0xMS0yOCAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcHV0IGluc3BlY3RvciBhZ2VudHMgaW50byBhIHZlY3RvciBpbiB0aGUgSW5zcGVjdG9yQ29u
dHJvbGxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTczMjI1CisKKyAgICAgICAgSW5zcGVjdG9yIGNvbnRyb2xsZXIgc2hvdWxkIG1haW50YWluIGFn
ZW50cyBpbiB0aGUgdmVjdG9yLCB3aGlsZSBhY2Nlc3NpbmcKKyAgICAgICAgdGhlbSB1c2luZyB0
aGUgc2FtZSBiYXNlIGFnZW50IGludGVyZmFjZS4gV2Ugc2hvdWxkIG5vdCBtYW51YWxseSBjYWxs
CisgICAgICAgIGJhc2UgYWdlbnQgbWV0aG9kcyBvbiB0aGVpciBjb25jcmV0ZSBpbnN0YW5jZXMu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weToKKyAgICAgICAgKERvbWFpbk5hbWVGaXhl
cy5nZXRfZml4ZWRfZGF0YS5SZXMpOgorICAgICAgICAoRG9tYWluTmFtZUZpeGVzKToKKyAgICAg
ICAgKEdlbmVyYXRvci5nbyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpJbnNwZWN0b3JBZ2VudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3N0V29ya2VyTm90aWZpY2F0aW9uVG9Gcm9udGVuZFRhc2s6OnBl
cmZvcm1UYXNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6
Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50LmNwcDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2U6Okluc3BlY3RvckJhc2VBZ2VudEludGVyZmFj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2U6On5JbnNw
ZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFz
ZUFnZW50SW50ZXJmYWNlOjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JCYXNlQWdlbnRJbnRlcmZhY2U6OmNsZWFyRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlOjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZTo6aW5zcGVjdGVkUGFnZURlc3Ryb3llZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYXNlQWdlbnQ6On5JbnNwZWN0b3JCYXNlQWdlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFzZUFnZW50OjpyZWdpc3RlckRpc3BhdGNo
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFzZUFnZW50OjpJbnNwZWN0b3JCYXNl
QWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6SW5zcGVjdG9yQ1NTQWdlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ1NTQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdl
bnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVj
dGVkUGFnZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
Ojpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6OnJlc3RvcmVJbnNwZWN0b3JTdGF0ZUZyb21Db29raWUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpJbnNw
ZWN0b3JET01BZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6SW5zcGVjdG9yRE9NRGVi
dWdnZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6Omluc3Bl
Y3RlZFBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJh
c2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpJ
bnNwZWN0b3JEYXRhYmFzZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0
YWJhc2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6Okluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjppbnNwZWN0
ZWRQYWdlRGVzdHJveWVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6
SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBh
Z2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50
aW1lQWdlbnQ6Okluc3BlY3RvclJ1bnRpbWVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50OjpJbnNwZWN0b3JX
b3JrZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VDb25zb2xlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VS
dW50aW1lQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OmNyZWF0
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyQ29uc29sZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJSdW50aW1lQWdlbnQ6OmNyZWF0ZSk6CisKIDIwMTEtMTEtMjggIERhdmlkIEdy
b2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYldvcmtlclJ1bkxvb3Ag
d3JhcHBlciBhcm91bmQgV29ya2VyUnVuTG9vcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ2MmU5ODg4M2JhNWIyNWJkNzgzMTVl
MjNiYWU3ZmM2N2U5OTU4YTkuLjRlOTJlYWVmYTg0ZTlmMjQzMTE3ZWRhMTUxNmJjNWZmZDRhMGY5
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEzNTYsNyArMTM1Niw3IEBACiAJCTRGNkZERDY0MTM0MURFREQwMDFGOEVFMyAv
KiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEY2RkRENjIxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VB
Z2VudC5jcHAgKi87IH07CiAJCTRGNkZERDY1MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQ
YWdlQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRGNkZERDYzMTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuaCAqLzsgfTsK
IAkJNEY3MDdBOTkxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNzA3
QTk3MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAgKi87
IH07Ci0JCTRGNzA3QTlBMTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY3
MDdBOTgxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmggKi87
IH07CisJCTRGNzA3QTlBMTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY3
MDdBOTgxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEZBM0I5MEEx
MjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGQTNCOTA4MTI1Q0QxMjEwMDMwMEJBRCAvKiBJ
bnNwZWN0b3JTdGF0ZS5jcHAgKi87IH07CiAJCTRGQTNCOTBCMTI1Q0QxMjIwMDMwMEJBRCAvKiBJ
bnNwZWN0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEZBM0I5MDkxMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmggKi87IH07
CiAJCTRGRDhEMEYyMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGRDhEMEYwMTE5QzcxOEIw
MDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNwcCAqLzsgfTsKQEAgLTE4MTAsNyArMTgxMCw3IEBA
CiAJCTdBNzRFQ0JCMTAxODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBNzRFQ0I5
MTAxODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCAqLzsgfTsKIAkJ
N0E3NEVDQkQxMDE4MzlEQTAwQkY5MzlFIC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBNzRF
Q0JDMTAxODM5REEwMEJGOTM5RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAg
Ki87IH07CiAJCTdBQTM2NUVFMTJFNzI2NTQwMERDQTI0MiAvKiBJbnNwZWN0b3JSdW50aW1lQWdl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FB
MzY1RUQxMkU3MjY1NDAwRENBMjQyIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgKi87IH07
Ci0JCTdBQTUxQjZFMTQ4M0I2MTYwMEFEMjc1MiAvKiBJbnNwZWN0b3JCYXNlQWdlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBQTUxQjZDMTQ4M0I2
MTYwMEFEMjc1MiAvKiBJbnNwZWN0b3JCYXNlQWdlbnQuaCAqLzsgfTsKKwkJN0FBNTFCNkUxNDgz
QjYxNjAwQUQyNzUyIC8qIEluc3BlY3RvckJhc2VBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FBNTFCNkMxNDgzQjYxNjAwQUQyNzUyIC8qIElu
c3BlY3RvckJhc2VBZ2VudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTdBQTUxQjZGMTQ4M0I2MTYwMEFEMjc1MiAvKiBJbnNwZWN0b3JCYXNlQWdl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FB
NTFCNkQxNDgzQjYxNjAwQUQyNzUyIC8qIEluc3BlY3RvckJhc2VBZ2VudC5jcHAgKi87IH07CiAJ
CTdBQjBCMUMwMTIxMUE2MjIwMEE3Njk0MCAvKiBJbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBQjBCMUJFMTIx
MUE2MjIwMEE3Njk0MCAvKiBJbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcCAqLzsgfTsKIAkJN0FC
MEIxQzExMjExQTYyMjAwQTc2OTQwIC8qIEluc3BlY3RvckRhdGFiYXNlQWdlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBQjBCMUJGMTIxMUE2MjIw
MEE3Njk0MCAvKiBJbnNwZWN0b3JEYXRhYmFzZUFnZW50LmggKi87IH07CkBAIC0xNDQ3Niw4ICsx
NDQ3Niw2IEBACiAJCTFDODFCOTREMEU5NzMyRDkwMDI2NkUwNyAvKiBpbnNwZWN0b3IgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTdBQTUxQjZDMTQ4M0I2
MTYwMEFEMjc1MiAvKiBJbnNwZWN0b3JCYXNlQWdlbnQuaCAqLywKLQkJCQk3QUE1MUI2RDE0ODNC
NjE2MDBBRDI3NTIgLyogSW5zcGVjdG9yQmFzZUFnZW50LmNwcCAqLywKIAkJCQkxQzgxQjk1OTBF
OTczMzA4MDAyNjZFMDcgLyogZnJvbnQtZW5kICovLAogCQkJCTQxRjA2MThEMEY1RjA2OTgwMEEw
N0VBQyAvKiBDb25zb2xlTWVzc2FnZS5jcHAgKi8sCiAJCQkJNDFGMDYxOEMwRjVGMDY5ODAwQTA3
RUFDIC8qIENvbnNvbGVNZXNzYWdlLmggKi8sCkBAIC0xNDQ5OSw2ICsxNDQ5Nyw4IEBACiAJCQkJ
NEYyRDIwNTIxMkVBRTdCMzAwNUMyODc0IC8qIEluc3BlY3RvckFnZW50LmggKi8sCiAJCQkJQjg4
NUU4RDIxMUUwNkREMjAwOUZGQkY0IC8qIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5j
cHAgKi8sCiAJCQkJQjg4NUU4RDMxMUUwNkREMjAwOUZGQkY0IC8qIEluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudC5oICovLAorCQkJCTdBQTUxQjZDMTQ4M0I2MTYwMEFEMjc1MiAvKiBJbnNw
ZWN0b3JCYXNlQWdlbnQuaCAqLywKKwkJCQk3QUE1MUI2RDE0ODNCNjE2MDBBRDI3NTIgLyogSW5z
cGVjdG9yQmFzZUFnZW50LmNwcCAqLywKIAkJCQk3QTFGMkI1MTEyNkM2MUIyMDAwNkE3RTYgLyog
SW5zcGVjdG9yQ2xpZW50LmNwcCAqLywKIAkJCQkxQzgxQjk1ODBFOTczMzA4MDAyNjZFMDcgLyog
SW5zcGVjdG9yQ2xpZW50LmggKi8sCiAJCQkJRjMzMzVCRjYxMkUwN0RDMzAwRDMzMDExIC8qIElu
c3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weSBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5CmluZGV4IDg4MTk2YTE1N2QxNzFhYWI4ZjMx
NzJmNTk1NmRlNTBkZGUwNjQwNmEuLmQwZDQxZTI1MjYwMmU4NWNhZGNmZmI0NjRmYTMwNjMyZjBh
OGRmY2YgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9y
SW5zcGVjdG9yLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9y
SW5zcGVjdG9yLnB5CkBAIC0xMzUsNyArMTM1LDYgQEAgY2xhc3MgRG9tYWluTmFtZUZpeGVzOgog
CiAgICAgICAgIGNsYXNzIFJlcyhvYmplY3QpOgogICAgICAgICAgICAgYWdlbnRfdHlwZV9uYW1l
ID0gYWdlbnRfbmFtZV9yZXMKLSAgICAgICAgICAgIGhpZGRlbiA9IGRvbWFpbl9uYW1lIGluIGNs
cy5oaWRkZW5fZG9tYWlucwogICAgICAgICAgICAgc2tpcF9qc19iaW5kID0gZG9tYWluX25hbWUg
aW4gY2xzLnNraXBfanNfYmluZF9kb21haW5zCiAgICAgICAgICAgICBhZ2VudF9maWVsZF9uYW1l
ID0gZmllbGRfbmFtZV9yZXMKIApAQCAtMTU3LDggKzE1Niw3IEBAIGNsYXNzIERvbWFpbk5hbWVG
aXhlczoKICAgICAgICAgcmV0dXJuIFJlcwogCiAgICAgc2tpcF9qc19iaW5kX2RvbWFpbnMgPSBz
ZXQoWyJSdW50aW1lIiwgIkNTUyIsICJET01EZWJ1Z2dlciJdKQotICAgIGhpZGRlbl9kb21haW5z
ID0gc2V0KFsiSW5zcGVjdG9yIl0pCi0gICAgYWdlbnRfdHlwZV9tYXAgPSB7Ik5ldHdvcmsiOiAi
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCJ9CisgICAgYWdlbnRfdHlwZV9tYXAgPSB7Ik5ldHdvcmsi
OiAiSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCIsICJJbnNwZWN0b3IiOiAiSW5zcGVjdG9yQWdlbnQi
LCB9CiAKIAogY2xhc3MgQ1BhcmFtVHlwZShvYmplY3QpOgpAQCAtNTA1LDkgKzUwMyw5IEBAICR7
ZmllbGREZWNsYXJhdGlvbnN9fTsKICNpZm5kZWYgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJf
aAogI2RlZmluZSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcl9oCiAKLSNpbmNsdWRlIDxQbGF0
Zm9ybVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01MjIsMTEgKzUyMCwxMyBAQCB0eXBlZGVmIFN0cmluZyBFcnJv
clN0cmluZzsKIAogY2xhc3MgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6IHB1YmxpYyBSZWZD
b3VudGVkPEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyPiB7CiBwdWJsaWM6Ci0gICAgSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBpbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwkY29uc3RydWN0b3JQYXJhbXMpCisgICAgSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXIoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBpbnNwZWN0b3JGcm9udGVuZENoYW5u
ZWwpCiAgICAgICAgIDogbV9pbnNwZWN0b3JGcm9udGVuZENoYW5uZWwoaW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsKQogJGNvbnN0cnVjdG9ySW5pdAogICAgIHsgfQogCiskc2V0dGVycworCiAgICAg
dm9pZCBjbGVhckZyb250ZW5kKCkgeyBtX2luc3BlY3RvckZyb250ZW5kQ2hhbm5lbCA9IDA7IH0K
IAogICAgIGVudW0gQ29tbW9uRXJyb3JDb2RlIHsKQEAgLTU0NSw3ICs1NDUsNiBAQCAkY29uc3Ry
dWN0b3JJbml0CiAgICAgc3RhdGljIGJvb2wgZ2V0Q29tbWFuZE5hbWUoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBTdHJpbmcqIHJlc3VsdCk7CiAKICAgICBlbnVtIE1ldGhvZE5hbWVzIHsKLQogJG1l
dGhvZE5hbWVzRW51bUNvbnRlbnQKIH07CiAKQEAgLTU4NSw4ICs1ODQsOCBAQCAkZmllbGREZWNs
YXJhdGlvbnMKIAogI2luY2x1ZGUgIkluc3BlY3RvckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yVmFsdWVzLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
ICRpbmNsdWRlcwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05MTYsNyArOTE1LDcgQEAgYm9v
bCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Z2V0Q29tbWFuZE5hbWUoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBTdHJpbmcqIHIKIAogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMTIwNSw3ICsxMjA0LDcgQEAgY2xhc3MgR2VuZXJhdG9yOgogICAgIGJhY2tl
bmRfanNfZG9tYWluX2Rpc3BhdGNoZXJfbGlzdCA9IFtdCiAgICAgYmFja2VuZF9qc19jYXBhYmls
aXRpZXNfbGlzdCA9IFtdCiAKLSAgICBiYWNrZW5kX2NvbnN0cnVjdG9yX3BhcmFtX2xpc3QgPSBb
XQorICAgIGJhY2tlbmRfc2V0dGVyc19saXN0ID0gW10KICAgICBiYWNrZW5kX2NvbnN0cnVjdG9y
X2luaXRfbGlzdCA9IFtdCiAgICAgYmFja2VuZF9maWVsZF9saXN0ID0gW10KICAgICBiYWNrZW5k
X2ZvcndhcmRfbGlzdCA9IFtdCkBAIC0xMjY1LDEyICsxMjY0LDEwIEBAIGNsYXNzIEdlbmVyYXRv
cjoKICAgICAgICAgICAgIGlmIGRvbWFpbl9kYXRhLmlzX2Rpc2FibGVkKGRlZmluZXNfbWFwKToK
ICAgICAgICAgICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAgICBpZiBkb21haW5fZGF0YS5o
aWRkZW46Ci0gICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGFnZW50X3R5cGVf
bmFtZSA9IGRvbWFpbl9kYXRhLmFnZW50X3R5cGVfbmFtZQogICAgICAgICAgICAgYWdlbnRfZmll
bGRfbmFtZSA9IGRvbWFpbl9kYXRhLmFnZW50X2ZpZWxkX25hbWUKLSAgICAgICAgICAgIEdlbmVy
YXRvci5iYWNrZW5kX2NvbnN0cnVjdG9yX3BhcmFtX2xpc3QuYXBwZW5kKCIsICVzKiAlcyIgJSAo
YWdlbnRfdHlwZV9uYW1lLCBhZ2VudF9maWVsZF9uYW1lKSkKLSAgICAgICAgICAgIEdlbmVyYXRv
ci5iYWNrZW5kX2NvbnN0cnVjdG9yX2luaXRfbGlzdC5hcHBlbmQoIiAgICAgICAgLCBtXyVzKCVz
KSIgJSAoYWdlbnRfZmllbGRfbmFtZSwgYWdlbnRfZmllbGRfbmFtZSkpCisgICAgICAgICAgICBH
ZW5lcmF0b3IuYmFja2VuZF9jb25zdHJ1Y3Rvcl9pbml0X2xpc3QuYXBwZW5kKCIgICAgICAgICwg
bV8lcygwKSIgJSBhZ2VudF9maWVsZF9uYW1lKQorICAgICAgICAgICAgR2VuZXJhdG9yLmJhY2tl
bmRfc2V0dGVyc19saXN0LmFwcGVuZCgiICAgIHZvaWQgcmVnaXN0ZXJBZ2VudCglcyogJXMpIHsg
QVNTRVJUKCFtXyVzKTsgbV8lcyA9ICVzOyB9IiAlIChhZ2VudF90eXBlX25hbWUsIGFnZW50X2Zp
ZWxkX25hbWUsIGFnZW50X2ZpZWxkX25hbWUsIGFnZW50X2ZpZWxkX25hbWUsIGFnZW50X2ZpZWxk
X25hbWUpKQogICAgICAgICAgICAgR2VuZXJhdG9yLmJhY2tlbmRfZmllbGRfbGlzdC5hcHBlbmQo
IiAgICAlcyogbV8lczsiICUgKGFnZW50X3R5cGVfbmFtZSwgYWdlbnRfZmllbGRfbmFtZSkpCiAg
ICAgICAgICAgICBHZW5lcmF0b3IuYmFja2VuZF9mb3J3YXJkX2xpc3QuYXBwZW5kKCJjbGFzcyAl
czsiICUgYWdlbnRfdHlwZV9uYW1lKQogICAgICAgICAgICAgR2VuZXJhdG9yLmJhY2tlbmRfaW5j
bHVkZV9saXN0LmFwcGVuZCgiI2luY2x1ZGUgXCIlcy5oXCIiICUgYWdlbnRfdHlwZV9uYW1lKQpA
QCAtMTQyNiw3ICsxNDIzLDcgQEAgZnJvbnRlbmRfaF9maWxlLndyaXRlKFRlbXBsYXRlcy5mcm9u
dGVuZF9oLnN1YnN0aXR1dGUoTm9uZSwKIAogYmFja2VuZF9oX2ZpbGUud3JpdGUoVGVtcGxhdGVz
LmJhY2tlbmRfaC5zdWJzdGl0dXRlKE5vbmUsCiAgICAgY29uc3RydWN0b3JJbml0PWpvaW4oR2Vu
ZXJhdG9yLmJhY2tlbmRfY29uc3RydWN0b3JfaW5pdF9saXN0LCAiXG4iKSwKLSAgICBjb25zdHJ1
Y3RvclBhcmFtcz1qb2luKEdlbmVyYXRvci5iYWNrZW5kX2NvbnN0cnVjdG9yX3BhcmFtX2xpc3Qs
ICIiKSwKKyAgICBzZXR0ZXJzPWpvaW4oR2VuZXJhdG9yLmJhY2tlbmRfc2V0dGVyc19saXN0LCAi
XG4iKSwKICAgICBtZXRob2ROYW1lc0VudW1Db250ZW50PWpvaW4oR2VuZXJhdG9yLm1ldGhvZF9u
YW1lX2VudW1fbGlzdCwgIlxuIiksCiAgICAgbWV0aG9kRGVjbGFyYXRpb25zPWpvaW4oR2VuZXJh
dG9yLmJhY2tlbmRfbWV0aG9kX2RlY2xhcmF0aW9uX2xpc3QsICJcbiIpLAogICAgIGZpZWxkRGVj
bGFyYXRpb25zPWpvaW4oR2VuZXJhdG9yLmJhY2tlbmRfZmllbGRfbGlzdCwgIlxuIiksCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAppbmRleCAxMjllMDcwMGM2
NDNkZWUzZDlhMzA4MGRkYzUxZGE1MjNmMzdjMThhLi5iMzhmNzZjMjI0Nzg3MWM0MDk2YTk0NmFh
ZWVjN2U0YzY0ZTQwZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JB
Z2VudC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgY29uc29sZVBhbmVs
TmFtZVtdID0gImNvbnNvbGUiOwogc3RhdGljIGNvbnN0IGNoYXIgcHJvZmlsZXNQYW5lbE5hbWVb
XSA9ICJwcm9maWxlcyI7CiAKIEluc3BlY3RvckFnZW50OjpJbnNwZWN0b3JBZ2VudChQYWdlKiBw
YWdlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRl
KQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQor
ICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckFnZW50PihpbnN0cnVtZW50aW5nQWdl
bnRzLCBzdGF0ZSkKICAgICAsIG1faW5zcGVjdGVkUGFnZShwYWdlKQogICAgICwgbV9mcm9udGVu
ZCgwKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KQpAQCAtODcsNyArODcsNyBAQCB2b2lkIEluc3BlY3RvckFnZW50OjppbnNwZWN0ZWRQYWdlRGVz
dHJveWVkKCkKICAgICBtX2luc3BlY3RlZFBhZ2UgPSAwOwogfQogCi12b2lkIEluc3BlY3RvckFn
ZW50OjpyZXN0b3JlKCkKK3ZvaWQgSW5zcGVjdG9yQWdlbnQ6OmVtaXRDb21taXRMb2FkSWZOZWVk
ZWQoKQogewogICAgIGlmIChtX2RpZENvbW1pdExvYWRGaXJlZCkKICAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkKG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1l
KCksIG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRl
cigpKTsKQEAgLTE2NCw3ICsxNjQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwZXJm
b3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0KQogICAgIHsKICAg
ICAgICAgaWYgKHNjcmlwdENvbnRleHQtPmlzRG9jdW1lbnQoKSkgewotICAgICAgICAgICAgaWYg
KEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4o
c2NyaXB0Q29udGV4dCktPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5tX2luc3BlY3Rv
ckFnZW50LmdldCgpKQorICAgICAgICAgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JB
Z2VudCA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oc2NyaXB0Q29udGV4dCktPnBhZ2UoKS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLT5tX2luc3BlY3RvckFnZW50KQogICAgICAgICAgICAgICAgIGlu
c3BlY3RvckFnZW50LT5wb3N0V29ya2VyTm90aWZpY2F0aW9uVG9Gcm9udGVuZCgqbV93b3JrZXIs
IG1fYWN0aW9uKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckFnZW50LmgKaW5kZXggZWMxMzFjYzA1Mjg1MzE0YzI3ZjE4NGZkMDJjOWZkMzA5OTRm
NmNlNy4uY2VhYzBiYzAyMDhkOWYwYTczYmE5ODg3ODVjY2E3N2UyMzg3MDQwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTEsMTAgKzUyLDE0
IEBAIGNsYXNzIFBhZ2U7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJ
bnNwZWN0b3JBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQgeworY2xhc3MgSW5zcGVj
dG9yQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckFnZW50PiB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQWdlbnQpOwogcHVibGljOgotICAgIElu
c3BlY3RvckFnZW50KFBhZ2UqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnN0cnVtZW50aW5n
QWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0
b3JBZ2VudD4gY3JlYXRlKFBhZ2UqIHBhZ2UsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLCBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IEluc3BlY3RvckFnZW50KHBhZ2UsIGluamVjdGVkU2NyaXB0TWFuYWdlciwgaW5zdHJ1bWVu
dGluZ0FnZW50cywgc3RhdGUpKTsKKyAgICB9CisKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JBZ2Vu
dCgpOwogCiAgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGVzdHJveWVkKCk7CkBAIC02OCwxMiArNzMs
MTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZy
b250ZW5kKik7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVzdG9yZSgpOwogCiAgICAgdm9pZCBkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQo
RnJhbWUqLCBET01XcmFwcGVyV29ybGQqKTsKIAogICAgIHZvaWQgZGlkQ29tbWl0TG9hZCgpOwog
ICAgIHZvaWQgZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQoKTsKKyAgICB2b2lkIGVtaXRDb21t
aXRMb2FkSWZOZWVkZWQoKTsKIAogI2lmIEVOQUJMRShXT1JLRVJTKQogICAgIGVudW0gV29ya2Vy
QWN0aW9uIHsgV29ya2VyQ3JlYXRlZCwgV29ya2VyRGVzdHJveWVkIH07CkBAIC05MSw2ICs5Niw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEluc3BlY3RvckV4dGVuc2lvbkFQSShjb25zdCBTdHJp
bmcmIHNvdXJjZSk7CiAKIHByaXZhdGU6CisgICAgSW5zcGVjdG9yQWdlbnQoUGFnZSosIEluamVj
dGVkU2NyaXB0TWFuYWdlciosIEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSop
OworCiAgICAgdm9pZCB1bmJpbmRBbGxSZXNvdXJjZXMoKTsKIAogI2lmIEVOQUJMRShKQVZBU0NS
SVBUX0RFQlVHR0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAppbmRleCBkNDU4MTljYjk5M2I2OTAy
MjJkZDBlMTBhYzRmNjUwOTQ4NzQyMzUzLi5mM2ZhOTI4ZjE3N2NhOTI0Y2M0NTExMmZmNThhNzhj
YjY4NmI1OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcApAQCAtNDgsOCArNDgsOCBAQCBuYW1l
c3BhY2UgQXBwbGljYXRpb25DYWNoZUFnZW50U3RhdGUgewogc3RhdGljIGNvbnN0IGNoYXIgYXBw
bGljYXRpb25DYWNoZUFnZW50RW5hYmxlZFtdID0gImFwcGxpY2F0aW9uQ2FjaGVBZ2VudEVuYWJs
ZWQiOwogfQogCi1JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6Okluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQot
ICAgIDogSW5zcGVjdG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3Rh
dGUqIHN0YXRlLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKKyAgICA6IEluc3BlY3Rv
ckJhc2VBZ2VudDxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+KGluc3RydW1lbnRpbmdB
Z2VudHMsIHN0YXRlKQogICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9mcm9u
dGVuZCgwKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCmluZGV4IDNjOWNlYmNiZmJiOWE1NWJiODQ3ZGI3
YjU3Y2Y4NDA2ZDMyZGRkOWMuLmMzMTY3NDRjNjc0ZjI2MWQ3MWRjYTM2N2U0ZjdmYzVjZWM3OTIy
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50LmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJJbnNw
ZWN0b3JCYXNlQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSwx
MCArNDksMTMgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAogdHlwZWRlZiBTdHJpbmcgRXJy
b3JTdHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCA6IHB1Ymxp
YyBJbnNwZWN0b3JCYXNlQWdlbnQgeworY2xhc3MgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQ+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBJbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBh
Z2VBZ2VudCosIEluc3BlY3RvclN0YXRlKik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JQYWdlQWdl
bnQqIHBhZ2VBZ2VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlLCBwYWdl
QWdlbnQpKTsKKyAgICB9CiAgICAgfkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgpIHsg
fQogCiAgICAgLy8gSW5zcGVjdG9yQmFzZUFnZW50CkBAIC03MSw2ICs3NCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVGb3JGcmFtZShFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgZnJhbWVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGFwcGxpY2F0aW9uQ2Fj
aGUpOwogCiBwcml2YXRlOgorICAgIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbnNwZWN0b3JQYWdlQWdlbnQqKTsK
ICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlv
bkNhY2hlKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0JiwgY29u
c3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNhY2hlSW5mbyYpOwogICAgIFBhc3NSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+IGJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNvbnN0
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0Jik7CiAgICAgUGFzc1JlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNl
KGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm8mKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5jcHAKaW5kZXggZjZhNTAxZmI3
OGViZDM0Y2IxNmQ4OGYyOGMxZTVjM2FjODViZjQ5YS4uNzQ5NjA3M2JhNDU3ODMxM2RhOTNjYWIx
ZDdmYTJhMDk3YTNmMWY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckJhc2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckJhc2VBZ2VudC5jcHAKQEAgLTM1LDE2ICszNSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotSW5zcGVjdG9yQmFzZUFnZW50OjpJbnNwZWN0b3JCYXNlQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIGluc3BlY3RvclN0
YXRlKQotICAgIDogbV9pbnN0cnVtZW50aW5nQWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMpCi0g
ICAgLCBtX3N0YXRlKGluc3BlY3RvclN0YXRlKQotewotfQotCi1JbnNwZWN0b3JCYXNlQWdlbnQ6
On5JbnNwZWN0b3JCYXNlQWdlbnQoKQotewotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckJhc2VBZ2VudC5oCmluZGV4IDQ3Zjk2NGIxYTM1YjA1ZmY5MDMyODczN2Q0ZTBm
MDI5Mzk1OTIzODQuLjc3M2UwNmIxNjk4NjNlYTE4OTk4ODRhZTIwODU0YTE1MTc2MDViMWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50LmgKQEAgLTMx
LDIyICszMSw0MSBAQAogI2lmbmRlZiBJbnNwZWN0b3JCYXNlQWdlbnRfaAogI2RlZmluZSBJbnNw
ZWN0b3JCYXNlQWdlbnRfaAogCisjaW5jbHVkZSAiSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIu
aCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNs
YXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIAotY2xhc3Mg
SW5zcGVjdG9yQmFzZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZSB7
CitwdWJsaWM6CisgICAgSW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlKCkgeyB9CisgICAgdmly
dHVhbCB+SW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlKCkgeyB9CisgICAgdmlydHVhbCB2b2lk
IHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGNs
ZWFyRnJvbnRlbmQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZSgpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBpbnNwZWN0ZWRQYWdlRGVzdHJveWVkKCkgeyB9CisgICAgdmlydHVhbCB2b2lk
IHJlZ2lzdGVySW5EaXNwYXRjaGVyKEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgPSAwOwor
fTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIEluc3BlY3RvckJhc2VBZ2VudCA6IHB1
YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2UgewogcHVibGljOgotICAgIHZpcnR1YWwg
fkluc3BlY3RvckJhc2VBZ2VudCgpOworICAgIHZpcnR1YWwgfkluc3BlY3RvckJhc2VBZ2VudCgp
IHsgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCByZXN0b3JlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckluRGlzcGF0Y2hl
cihJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciogZGlzcGF0Y2hlcikKKyAgICB7CisgICAgICAg
IGRpc3BhdGNoZXItPnJlZ2lzdGVyQWdlbnQoc3RhdGljX2Nhc3Q8VCo+KHRoaXMpKTsKKyAgICB9
CiAKIHByb3RlY3RlZDoKLSAgICBJbnNwZWN0b3JCYXNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50
cyosIEluc3BlY3RvclN0YXRlKik7CisgICAgSW5zcGVjdG9yQmFzZUFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JT
dGF0ZSkKKyAgICAgICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGluZ0FnZW50
cykKKyAgICAgICAgLCBtX3N0YXRlKGluc3BlY3RvclN0YXRlKQorICAgIHsKKyAgICB9CiAKICAg
ICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2VudHM7CiAgICAgSW5zcGVj
dG9yU3RhdGUqIG1fc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmNwcAppbmRleCA3ZGI2MDVjMWQxM2Y3OTRhMmJiMjcyMGQwYTRkMzBlNDMyY2Rj
ZDk3Li4yN2RmNjk1Yzc5MTZlOTIzOTRmMGM1YmQwZGQ0YWExMWNhN2E0ZDViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTE4NSw3ICsx
ODUsNyBAQCBDU1NTdHlsZVJ1bGUqIEluc3BlY3RvckNTU0FnZW50Ojphc0NTU1N0eWxlUnVsZShD
U1NSdWxlKiBydWxlKQogfQogCiBJbnNwZWN0b3JDU1NBZ2VudDo6SW5zcGVjdG9yQ1NTQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUq
IHN0YXRlLCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQpCi0gICAgOiBJbnNwZWN0b3JCYXNl
QWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdl
bnQ8SW5zcGVjdG9yQ1NTQWdlbnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQogICAgICwg
bV9kb21BZ2VudChkb21BZ2VudCkKICAgICAsIG1fbGFzdFBzZXVkb1N0YXRlKDApCiAgICAgLCBt
X2xhc3RTdHlsZVNoZWV0SWQoMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmgKaW5kZXggMmVjNGNkMTU4N2U5NDUwYTcxZjQ0ODUzMmEwOTQ2ZjFhZGQyNjVh
ZS4uOTE4ZGE2YjMyZjE0YWRmMGRhYWZlYjk0ZGZjNDljY2Q5MTllZWNkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKQEAgLTUyLDE5ICs1MiwyMCBA
QCBjbGFzcyBOb2RlOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAotY2xhc3MgSW5zcGVjdG9y
Q1NTQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50LCBwdWJsaWMgSW5zcGVjdG9yRE9N
QWdlbnQ6OkRPTUxpc3RlbmVyIHsKK2NsYXNzIEluc3BlY3RvckNTU0FnZW50IDogcHVibGljIElu
c3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JDU1NBZ2VudD4sIHB1YmxpYyBJbnNwZWN0b3JET01B
Z2VudDo6RE9NTGlzdGVuZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckNT
U0FnZW50KTsKIHB1YmxpYzoKICAgICBzdGF0aWMgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVT
aGVldChDU1NSdWxlKik7CiAgICAgc3RhdGljIENTU1N0eWxlUnVsZSogYXNDU1NTdHlsZVJ1bGUo
Q1NTUnVsZSopOwogCi0gICAgSW5zcGVjdG9yQ1NTQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEluc3BlY3RvclN0YXRlKiwgSW5zcGVjdG9yRE9NQWdlbnQqKTsKKyAgICBzdGF0aWMgUGFzc093
blB0cjxJbnNwZWN0b3JDU1NBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yRE9NQWdlbnQq
IGRvbUFnZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JD
U1NBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSwgZG9tQWdlbnQpKTsKKyAgICB9CiAg
ICAgfkluc3BlY3RvckNTU0FnZW50KCk7CiAKICAgICBib29sIGZvcmNlUHNldWRvU3RhdGUoRWxl
bWVudCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RnJv
bnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9u
dGVuZCgpOwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCkgeyB9CiAgICAgdm9pZCByZXNldCgp
OwogCiAgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlRm9yTm9kZShFcnJvclN0cmluZyosIGludCBu
b2RlSWQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGZvcmNlZFBzZXVkb0NsYXNzZXMs
IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHN0eWxlKTsKQEAgLTgxLDYgKzgyLDggQEAgcHVibGlj
OgogICAgIHZvaWQgZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcyhFcnJvclN0cmluZyosIFJlZlB0
cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCk7CiAKIHByaXZhdGU6CisgICAgSW5zcGVjdG9yQ1NT
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgSW5zcGVjdG9yRE9N
QWdlbnQqKTsKKwogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JT
dHlsZVNoZWV0PiA+IElkVG9JbnNwZWN0b3JTdHlsZVNoZWV0OwogICAgIHR5cGVkZWYgSGFzaE1h
cDxDU1NTdHlsZVNoZWV0KiwgUmVmUHRyPEluc3BlY3RvclN0eWxlU2hlZXQ+ID4gQ1NTU3R5bGVT
aGVldFRvSW5zcGVjdG9yU3R5bGVTaGVldDsKICAgICB0eXBlZGVmIEhhc2hNYXA8Tm9kZSosIFJl
ZlB0cjxJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU+ID4gTm9kZVRvSW5zcGVjdG9y
U3R5bGVTaGVldDsgLy8gYm9ndXMgInN0eWxlc2hlZXRzIiB3aXRoIGVsZW1lbnRzJyBpbmxpbmUg
c3R5bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
c29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xl
QWdlbnQuY3BwCmluZGV4IDE5NzlhNmJhZGQ4YWJjOTU1NDQzZDQ1YmUyY2E0NGE2OTBlZDA3Y2Yu
LjY4M2Q4OWFlYTNiOWM2MGQ3YzM3NzIyOTNiNTI2ZWQ2NDdmMzQzY2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC01Nyw3
ICs1Nyw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIGNvbnNvbGVNZXNzYWdlc0VuYWJsZWRbXSA9ICJj
b25zb2xlTWVzc2FnZXNFbmFibGVkIjsKIH0KIAogSW5zcGVjdG9yQ29uc29sZUFnZW50OjpJbnNw
ZWN0b3JDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVk
U2NyaXB0TWFuYWdlcikKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdl
bnRzLCBzdGF0ZSkKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JDb25zb2xlQWdl
bnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwgbV9mcm9udGVuZCgwKQogICAgICwg
bV9wcmV2aW91c01lc3NhZ2UoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCA0MWFhZWMyYzQ3ZmMxMGFhZWUyYmFhNzViMmNlYjdk
Y2JhMzIyMjJiLi43NjM1YTY5NmM2YWU4N2VlYjAzOWRkNDViMWE1NzljODViMWUxOTM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCkBA
IC01Miw3ICs1Miw3IEBAIGNsYXNzIFNjcmlwdFByb2ZpbGU7CiAKIHR5cGVkZWYgU3RyaW5nIEVy
cm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JDb25zb2xlQWdlbnQgOiBwdWJsaWMgSW5zcGVj
dG9yQmFzZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvckNvbnNvbGVBZ2VudCA6IHB1YmxpYyBJbnNw
ZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQ29uc29sZUFnZW50PiB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoSW5zcGVjdG9yQ29uc29sZUFnZW50KTsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JD
b25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHAKaW5kZXggNWM0NjhmZjEzY2M4MmZjNmJkMWJhZTA4ZmU3M2E2OGU4
Njc4NmQ2MC4uZGQ0MjZiZDY2ZTgyZjAxOWQ1YmM1ODM1NTJkYjBiZDM4MWYwZjQ2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAt
NDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckFnZW50LmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JCYXNlQWdlbnQuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JDU1NBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCkBAIC03Myw0NSArNzQsNzkgQEAgSW5zcGVjdG9y
Q29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0b3JDbGll
bnQqIGluc3BlY3RvckMKICAgICA6IG1faW5zdHJ1bWVudGluZ0FnZW50cyhhZG9wdFB0cihuZXcg
SW5zdHJ1bWVudGluZ0FnZW50cygpKSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKElu
amVjdGVkU2NyaXB0TWFuYWdlcjo6Y3JlYXRlRm9yUGFnZSgpKQogICAgICwgbV9zdGF0ZShhZG9w
dFB0cihuZXcgSW5zcGVjdG9yU3RhdGUoaW5zcGVjdG9yQ2xpZW50KSkpCi0gICAgLCBtX2luc3Bl
Y3RvckFnZW50KGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBZ2VudChwYWdlLCBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlci5nZXQoKSwgbV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdl
dCgpKSkpCi0gICAgLCBtX3BhZ2VBZ2VudChJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmdldCgpKSkKLSAgICAsIG1fZG9tQWdlbnQoSW5zcGVjdG9yRE9NQWdlbnQ6
OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fcGFnZUFnZW50LmdldCgpLCBp
bnNwZWN0b3JDbGllbnQsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdl
dCgpKSkKLSAgICAsIG1fY3NzQWdlbnQoYWRvcHRQdHIobmV3IEluc3BlY3RvckNTU0FnZW50KG1f
aW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9kb21BZ2VudC5nZXQo
KSkpKQorICAgICwgbV9wYWdlKHBhZ2UpCisgICAgLCBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0
b3JDbGllbnQpCisgICAgLCBtX29wZW5pbmdGcm9udGVuZChmYWxzZSkKK3sKKyAgICBPd25QdHI8
SW5zcGVjdG9yQWdlbnQ+IGluc3BlY3RvckFnZW50UHRyKEluc3BlY3RvckFnZW50OjpjcmVhdGUo
cGFnZSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1faW5zdHJ1bWVudGluZ0FnZW50
cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOworICAgIG1faW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0
b3JBZ2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoaW5zcGVjdG9yQWdlbnRQdHIu
cmVsZWFzZSgpKTsKKworICAgIE93blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+IHBhZ2VBZ2VudFB0
cihJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCks
IHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7Cisg
ICAgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBwYWdlQWdlbnRQdHIuZ2V0KCk7Cisg
ICAgbV9hZ2VudHMuYXBwZW5kKHBhZ2VBZ2VudFB0ci5yZWxlYXNlKCkpOworCisgICAgT3duUHRy
PEluc3BlY3RvckRPTUFnZW50PiBkb21BZ2VudFB0cihJbnNwZWN0b3JET01BZ2VudDo6Y3JlYXRl
KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50LCBpbnNwZWN0b3JDbGllbnQs
IG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9k
b21BZ2VudCA9IGRvbUFnZW50UHRyLmdldCgpOworICAgIG1fYWdlbnRzLmFwcGVuZChkb21BZ2Vu
dFB0ci5yZWxlYXNlKCkpOworCisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckNTU0FnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2Rv
bUFnZW50KSk7CisKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgICwgbV9kYXRhYmFzZUFn
ZW50KEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMu
Z2V0KCksIG1fc3RhdGUuZ2V0KCkpKQorICAgIE93blB0cjxJbnNwZWN0b3JEYXRhYmFzZUFnZW50
PiBkYXRhYmFzZUFnZW50UHRyKEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmNyZWF0ZShtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBJbnNwZWN0b3JEYXRh
YmFzZUFnZW50KiBkYXRhYmFzZUFnZW50ID0gZGF0YWJhc2VBZ2VudFB0ci5nZXQoKTsKKyAgICBt
X2FnZW50cy5hcHBlbmQoZGF0YWJhc2VBZ2VudFB0ci5yZWxlYXNlKCkpOwogI2VuZGlmCisKICNp
ZiBFTkFCTEUoRklMRV9TWVNURU0pCi0gICAgLCBtX2ZpbGVTeXN0ZW1BZ2VudChJbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3Rh
dGUuZ2V0KCkpKQorICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6
OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKICNl
bmRpZgotICAgICwgbV9kb21TdG9yYWdlQWdlbnQoSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojpj
cmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSkKLSAgICAs
IG1fdGltZWxpbmVBZ2VudChJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSkKLSAgICAsIG1fYXBwbGljYXRpb25D
YWNoZUFnZW50KGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQobV9p
bnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3BhZ2VBZ2VudC5nZXQoKSwgbV9zdGF0ZS5nZXQo
KSkpKQotICAgICwgbV9yZXNvdXJjZUFnZW50KEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fcGFnZUFnZW50LmdldCgpLCBpbnNwZWN0
b3JDbGllbnQsIG1fc3RhdGUuZ2V0KCkpKQotICAgICwgbV9ydW50aW1lQWdlbnQoYWRvcHRQdHIo
bmV3IFBhZ2VSdW50aW1lQWdlbnQobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRl
LmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgcGFnZSwgbV9wYWdlQWdlbnQu
Z2V0KCkpKSkKLSAgICAsIG1fY29uc29sZUFnZW50KGFkb3B0UHRyKG5ldyBQYWdlQ29uc29sZUFn
ZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbnNwZWN0b3JBZ2VudC5nZXQoKSwg
bV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1fZG9tQWdlbnQu
Z2V0KCkpKSkKKyAgICBPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PiBkb21TdG9yYWdl
QWdlbnRQdHIoSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSk7CisgICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50KiBkb21TdG9yYWdlQWdlbnQgPSBkb21TdG9yYWdlQWdlbnRQdHIuZ2V0KCk7CisgICAgbV9h
Z2VudHMuYXBwZW5kKGRvbVN0b3JhZ2VBZ2VudFB0ci5yZWxlYXNlKCkpOworCisgICAgbV9hZ2Vu
dHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdl
dCgpLCBtX3N0YXRlLmdldCgpLCBwYWdlQWdlbnQpKTsKKworICAgIE93blB0cjxJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50PiByZXNvdXJjZUFnZW50UHRyKEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNy
ZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgaW5zcGVjdG9yQ2xp
ZW50LCBtX3N0YXRlLmdldCgpKSk7CisgICAgbV9yZXNvdXJjZUFnZW50ID0gcmVzb3VyY2VBZ2Vu
dFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBlbmQocmVzb3VyY2VBZ2VudFB0ci5yZWxlYXNl
KCkpOworCisgICAgT3duUHRyPEluc3BlY3RvclJ1bnRpbWVBZ2VudD4gcnVudGltZUFnZW50UHRy
KFBhZ2VSdW50aW1lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
c3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBwYWdlLCBwYWdlQWdl
bnQpKTsKKyAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQqIHJ1bnRpbWVBZ2VudCA9IHJ1bnRpbWVB
Z2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBlbmQocnVudGltZUFnZW50UHRyLnJlbGVh
c2UoKSk7CisKKyAgICBPd25QdHI8SW5zcGVjdG9yQ29uc29sZUFnZW50PiBjb25zb2xlQWdlbnRQ
dHIoUGFnZUNvbnNvbGVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9pbnNwZWN0b3JBZ2VudCwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIu
Z2V0KCksIG1fZG9tQWdlbnQpKTsKKyAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVB
Z2VudCA9IGNvbnNvbGVBZ2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoY29uc29s
ZUFnZW50UHRyLnJlbGVhc2UoKSk7CisKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikK
LSAgICAsIG1fZGVidWdnZXJBZ2VudChQYWdlRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgcGFnZSwgbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXIuZ2V0KCkpKQotICAgICwgbV9kb21EZWJ1Z2dlckFnZW50KEluc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUu
Z2V0KCksIG1fZG9tQWdlbnQuZ2V0KCksIG1fZGVidWdnZXJBZ2VudC5nZXQoKSwgbV9pbnNwZWN0
b3JBZ2VudC5nZXQoKSkpCi0gICAgLCBtX3Byb2ZpbGVyQWdlbnQoSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9jb25zb2xlQWdlbnQu
Z2V0KCksIHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgp
KSkKKyAgICBPd25QdHI8SW5zcGVjdG9yRGVidWdnZXJBZ2VudD4gZGVidWdnZXJBZ2VudFB0cihQ
YWdlRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9z
dGF0ZS5nZXQoKSwgcGFnZSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKKyAgICBt
X2RlYnVnZ2VyQWdlbnQgPSBkZWJ1Z2dlckFnZW50UHRyLmdldCgpOworICAgIG1fYWdlbnRzLmFw
cGVuZChkZWJ1Z2dlckFnZW50UHRyLnJlbGVhc2UoKSk7CisKKyAgICBtX2FnZW50cy5hcHBlbmQo
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5n
ZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9kb21BZ2VudCwgbV9kZWJ1Z2dlckFnZW50LCBtX2luc3Bl
Y3RvckFnZW50KSk7CisKKyAgICBPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gcHJvZmls
ZXJBZ2VudFB0cihJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQsIHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9wcm9maWxlckFnZW50ID0gcHJvZmlsZXJB
Z2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBlbmQocHJvZmlsZXJBZ2VudFB0ci5yZWxl
YXNlKCkpOwogI2VuZGlmCisKICNpZiBFTkFCTEUoV09SS0VSUykKLSAgICAsIG1fd29ya2VyQWdl
bnQoSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0
KCksIG1fc3RhdGUuZ2V0KCkpKQorICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JXb3JrZXJB
Z2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkp
OwogI2VuZGlmCi0gICAgLCBtX3BhZ2UocGFnZSkKLSAgICAsIG1faW5zcGVjdG9yQ2xpZW50KGlu
c3BlY3RvckNsaWVudCkKLSAgICAsIG1fb3BlbmluZ0Zyb250ZW5kKGZhbHNlKQoteworCiAgICAg
QVNTRVJUX0FSRyhpbnNwZWN0b3JDbGllbnQsIGluc3BlY3RvckNsaWVudCk7Ci0gICAgbV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgpLT5pbml0KG1faW5zcGVjdG9y
QWdlbnQuZ2V0KCkKLSAgICAgICAgLCBtX2NvbnNvbGVBZ2VudC5nZXQoKQorICAgIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+aW5pdChtX2luc3BlY3RvckFn
ZW50CisgICAgICAgICwgY29uc29sZUFnZW50CiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAg
ICAgICAgLCBtX2RhdGFiYXNlQWdlbnQuZ2V0KCkKKyAgICAgICAgLCBkYXRhYmFzZUFnZW50CiAj
ZW5kaWYKLSAgICAgICAgLCBtX2RvbVN0b3JhZ2VBZ2VudC5nZXQoKQorICAgICAgICAsIGRvbVN0
b3JhZ2VBZ2VudAogICAgICk7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAg
ICBtX3J1bnRpbWVBZ2VudC0+c2V0U2NyaXB0RGVidWdTZXJ2ZXIoJm1fZGVidWdnZXJBZ2VudC0+
c2NyaXB0RGVidWdTZXJ2ZXIoKSk7CisgICAgcnVudGltZUFnZW50LT5zZXRTY3JpcHREZWJ1Z1Nl
cnZlcigmbV9kZWJ1Z2dlckFnZW50LT5zY3JpcHREZWJ1Z1NlcnZlcigpKTsKICNlbmRpZgogfQog
CkBAIC0xMjMsMTAgKzE1OCw5IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6On5JbnNwZWN0b3JDb250
cm9sbGVyKCkKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdGVkUGFnZURlc3Ryb3ll
ZCgpCiB7CiAgICAgZGlzY29ubmVjdEZyb250ZW5kKCk7Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRf
REVCVUdHRVIpCi0gICAgbV9kb21EZWJ1Z2dlckFnZW50LmNsZWFyKCk7Ci0gICAgbV9kZWJ1Z2dl
ckFnZW50LmNsZWFyKCk7Ci0jZW5kaWYKKyAgICBmb3IgKEFnZW50czo6aXRlcmF0b3IgaXQgPSBt
X2FnZW50cy5iZWdpbigpOyBpdCAhPSBtX2FnZW50cy5lbmQoKTsgKytpdCkKKyAgICAgICAgKCpp
dCktPmluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKTsKKwogICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLT5kaXNjb25uZWN0KCk7CiAgICAgbV9pbnNwZWN0b3JDbGllbnQtPmluc3BlY3RvckRlc3Ry
b3llZCgpOwogICAgIG1faW5zcGVjdG9yQ2xpZW50ID0gMDsKQEAgLTE2Miw2MyArMTk2LDIwIEBA
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKCkKICAgICAvLyBXZSBj
YW4gcmVjb25uZWN0IHRvIGV4aXN0aW5nIGZyb250LWVuZCAtPiB1bm11dGUgc3RhdGUuCiAgICAg
bV9zdGF0ZS0+dW5tdXRlKCk7CiAKLSAgICBtX2FwcGxpY2F0aW9uQ2FjaGVBZ2VudC0+c2V0RnJv
bnRlbmQobV9pbnNwZWN0b3JGcm9udGVuZC5nZXQoKSk7Ci0gICAgbV9wYWdlQWdlbnQtPnNldEZy
b250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwotICAgIG1fZG9tQWdlbnQtPnNldEZy
b250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwotICAgIG1fY29uc29sZUFnZW50LT5z
ZXRGcm9udGVuZChtX2luc3BlY3RvckZyb250ZW5kLmdldCgpKTsKLSAgICBtX3RpbWVsaW5lQWdl
bnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwotICAgIG1fcmVzb3Vy
Y2VBZ2VudC0+c2V0RnJvbnRlbmQobV9pbnNwZWN0b3JGcm9udGVuZC5nZXQoKSk7Ci0jaWYgRU5B
QkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgbV9kZWJ1Z2dlckFnZW50LT5zZXRGcm9udGVu
ZChtX2luc3BlY3RvckZyb250ZW5kLmdldCgpKTsKLSAgICBtX3Byb2ZpbGVyQWdlbnQtPnNldEZy
b250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwotI2VuZGlmCi0jaWYgRU5BQkxFKFNR
TF9EQVRBQkFTRSkKLSAgICBtX2RhdGFiYXNlQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9y
RnJvbnRlbmQuZ2V0KCkpOwotI2VuZGlmCi0jaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQotICAgIG1f
ZmlsZVN5c3RlbUFnZW50LT5zZXRGcm9udGVuZChtX2luc3BlY3RvckZyb250ZW5kLmdldCgpKTsK
LSNlbmRpZgotICAgIG1fZG9tU3RvcmFnZUFnZW50LT5zZXRGcm9udGVuZChtX2luc3BlY3RvckZy
b250ZW5kLmdldCgpKTsKLSNpZiBFTkFCTEUoV09SS0VSUykKLSAgICBtX3dvcmtlckFnZW50LT5z
ZXRGcm9udGVuZChtX2luc3BlY3RvckZyb250ZW5kLmdldCgpKTsKLSNlbmRpZgotICAgIG1faW5z
cGVjdG9yQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOworICAg
IEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCA9IG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCk7
CisgICAgZm9yIChBZ2VudHM6Oml0ZXJhdG9yIGl0ID0gbV9hZ2VudHMuYmVnaW4oKTsgaXQgIT0g
bV9hZ2VudHMuZW5kKCk7ICsraXQpCisgICAgICAgICgqaXQpLT5zZXRGcm9udGVuZChmcm9udGVu
ZCk7CiAKICAgICBpZiAoIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkp
CiAgICAgICAgIFNjcmlwdENvbnRyb2xsZXI6OnNldENhcHR1cmVDYWxsU3RhY2tGb3JVbmNhdWdo
dEV4Y2VwdGlvbnModHJ1ZSk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcm9udGVu
ZENyZWF0ZWQoKTsKIAogICAgIEFTU0VSVChtX2luc3BlY3RvckNsaWVudCk7Ci0gICAgbV9pbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciA9IGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlcigKLSAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQsCi0gICAgICAgIG1fYXBwbGljYXRp
b25DYWNoZUFnZW50LmdldCgpLAotICAgICAgICBtX2Nzc0FnZW50LmdldCgpLAotICAgICAgICBt
X2NvbnNvbGVBZ2VudC5nZXQoKSwKLSAgICAgICAgbV9kb21BZ2VudC5nZXQoKSwKLSNpZiBFTkFC
TEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICAgICAgbV9kb21EZWJ1Z2dlckFnZW50LmdldCgp
LAotI2VuZGlmCi0gICAgICAgIG1fZG9tU3RvcmFnZUFnZW50LmdldCgpLAotI2lmIEVOQUJMRShT
UUxfREFUQUJBU0UpCi0gICAgICAgIG1fZGF0YWJhc2VBZ2VudC5nZXQoKSwKLSNlbmRpZgotI2lm
IEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgICAgICBtX2RlYnVnZ2VyQWdlbnQuZ2V0
KCksCi0jZW5kaWYKLSNpZiBFTkFCTEUoRklMRV9TWVNURU0pCi0gICAgICAgIG1fZmlsZVN5c3Rl
bUFnZW50LmdldCgpLAotI2VuZGlmCi0gICAgICAgIG1fcmVzb3VyY2VBZ2VudC5nZXQoKSwKLSAg
ICAgICAgbV9wYWdlQWdlbnQuZ2V0KCksCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
Ci0gICAgICAgIG1fcHJvZmlsZXJBZ2VudC5nZXQoKSwKLSNlbmRpZgotICAgICAgICBtX3J1bnRp
bWVBZ2VudC5nZXQoKSwKLSAgICAgICAgbV90aW1lbGluZUFnZW50LmdldCgpCi0jaWYgRU5BQkxF
KFdPUktFUlMpCi0gICAgICAgICwgbV93b3JrZXJBZ2VudC5nZXQoKQotI2VuZGlmCi0gICAgKSk7
CisgICAgbV9pbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciA9IGFkb3B0UmVmKG5ldyBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcihtX2luc3BlY3RvckNsaWVudCkpOworCisgICAgSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIqIGRpc3BhdGNoZXIgPSBtX2luc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyLmdldCgpOworICAgIGZvciAoQWdlbnRzOjppdGVyYXRvciBpdCA9IG1fYWdlbnRzLmJlZ2lu
KCk7IGl0ICE9IG1fYWdlbnRzLmVuZCgpOyArK2l0KQorICAgICAgICAoKml0KS0+cmVnaXN0ZXJJ
bkRpc3BhdGNoZXIoZGlzcGF0Y2hlcik7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKCkKQEAgLTIzMiwyOSArMjIzLDkgQEAgdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoKQogICAgIC8vIFByZS1kaXNjb25uZWN0IHN0
YXRlIHdpbGwgYmUgdXNlZCB0byByZXN0b3JlIGluc3BlY3RvciBhZ2VudHMuCiAgICAgbV9zdGF0
ZS0+bXV0ZSgpOwogCi0gICAgbV9pbnNwZWN0b3JBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwotI2lm
IEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIG1fZGVidWdnZXJBZ2VudC0+Y2xlYXJG
cm9udGVuZCgpOwotICAgIG1fZG9tRGVidWdnZXJBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwotICAg
IG1fcHJvZmlsZXJBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwotI2VuZGlmCi0gICAgbV9hcHBsaWNh
dGlvbkNhY2hlQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2NvbnNvbGVBZ2VudC0+Y2xl
YXJGcm9udGVuZCgpOwotICAgIG1fZG9tQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2Nz
c0FnZW50LT5jbGVhckZyb250ZW5kKCk7Ci0gICAgbV90aW1lbGluZUFnZW50LT5jbGVhckZyb250
ZW5kKCk7Ci0gICAgbV9yZXNvdXJjZUFnZW50LT5jbGVhckZyb250ZW5kKCk7Ci0jaWYgRU5BQkxF
KFNRTF9EQVRBQkFTRSkKLSAgICBtX2RhdGFiYXNlQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKLSNl
bmRpZgotI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKLSAgICBtX2ZpbGVTeXN0ZW1BZ2VudC0+Y2xl
YXJGcm9udGVuZCgpOwotI2VuZGlmCi0gICAgbV9kb21TdG9yYWdlQWdlbnQtPmNsZWFyRnJvbnRl
bmQoKTsKLSAgICBtX3BhZ2VBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwotI2lmIEVOQUJMRShXT1JL
RVJTKQotICAgIG1fd29ya2VyQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKLSNlbmRpZgorICAgIGZv
ciAoQWdlbnRzOjppdGVyYXRvciBpdCA9IG1fYWdlbnRzLmJlZ2luKCk7IGl0ICE9IG1fYWdlbnRz
LmVuZCgpOyArK2l0KQorICAgICAgICAoKml0KS0+Y2xlYXJGcm9udGVuZCgpOworCiAgICAgbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgpLT5jbGVhckZyb250ZW5k
KCk7CiAKICAgICBtX2luc3BlY3RvckZyb250ZW5kLmNsZWFyKCk7CkBAIC0yOTQsMjcgKzI2NSw5
IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzdG9yZUluc3BlY3RvclN0YXRlRnJvbUNv
b2tpZShjb25zdCBTdHJpbmcmIGluc3BlY3RvCiAgICAgY29ubmVjdEZyb250ZW5kKCk7CiAgICAg
bV9zdGF0ZS0+bG9hZEZyb21Db29raWUoaW5zcGVjdG9yU3RhdGVDb29raWUpOwogCi0gICAgbV9w
YWdlQWdlbnQtPnJlc3RvcmUoKTsKLSAgICBtX2RvbUFnZW50LT5yZXN0b3JlKCk7Ci0gICAgbV9y
ZXNvdXJjZUFnZW50LT5yZXN0b3JlKCk7Ci0gICAgbV90aW1lbGluZUFnZW50LT5yZXN0b3JlKCk7
Ci0gICAgbV9jb25zb2xlQWdlbnQtPnJlc3RvcmUoKTsKLSAgICBtX2FwcGxpY2F0aW9uQ2FjaGVB
Z2VudC0+cmVzdG9yZSgpOwotI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgbV9kYXRhYmFz
ZUFnZW50LT5yZXN0b3JlKCk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoRklMRV9TWVNURU0pCi0gICAg
bV9maWxlU3lzdGVtQWdlbnQtPnJlc3RvcmUoKTsKLSNlbmRpZgotICAgIG1fZG9tU3RvcmFnZUFn
ZW50LT5yZXN0b3JlKCk7Ci0jaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgbV93b3JrZXJBZ2VudC0+
cmVzdG9yZSgpOwotI2VuZGlmCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAg
bV9kZWJ1Z2dlckFnZW50LT5yZXN0b3JlKCk7Ci0gICAgbV9wcm9maWxlckFnZW50LT5yZXN0b3Jl
KCk7Ci0jZW5kaWYKLSAgICBtX2luc3BlY3RvckFnZW50LT5yZXN0b3JlKCk7CisgICAgZm9yIChB
Z2VudHM6Oml0ZXJhdG9yIGl0ID0gbV9hZ2VudHMuYmVnaW4oKTsgaXQgIT0gbV9hZ2VudHMuZW5k
KCk7ICsraXQpCisgICAgICAgICgqaXQpLT5yZXN0b3JlKCk7CisgICAgbV9pbnNwZWN0b3JBZ2Vu
dC0+ZW1pdENvbW1pdExvYWRJZk5lZWRlZCgpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6OnNldFByb2Nlc3NJZChsb25nIHByb2Nlc3NJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGY4NTVjNzE3M2QzOTAxNzhmYTFkMDc5
NjZkODBhOWVjM2U3Yzc5OTguLmZlNzdhNGE0ZTBhNGVjNzA2Y2QzMjAwYjVmMDNmMDg3YWJmMDM4
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
aApAQCAtNDUsMjUgKzQ1LDE1IEBAIGNsYXNzIEluamVjdGVkU2NyaXB0TWFuYWdlcjsKIGNsYXNz
IEluc3BlY3RvckFnZW50OwogY2xhc3MgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Owog
Y2xhc3MgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI7Ci1jbGFzcyBJbnNwZWN0b3JDU1NBZ2Vu
dDsKK2NsYXNzIEluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZTsKIGNsYXNzIEluc3BlY3RvckNs
aWVudDsKLWNsYXNzIEluc3BlY3RvckNvbnNvbGVBZ2VudDsKIGNsYXNzIEluc3BlY3RvckRPTUFn
ZW50OwotY2xhc3MgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDsKLWNsYXNzIEluc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudDsKLWNsYXNzIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ7CiBjbGFzcyBJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50OwotY2xhc3MgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OwogY2xh
c3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudDsKLWNs
YXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ7CiBj
bGFzcyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OwotY2xhc3MgSW5zcGVjdG9yUnVudGltZUFnZW50
OwogY2xhc3MgSW5zcGVjdG9yU3RhdGU7Ci1jbGFzcyBJbnNwZWN0b3JTdG9yYWdlQWdlbnQ7Ci1j
bGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OwotY2xhc3MgSW5zcGVjdG9yV29ya2VyQWdlbnQ7
CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgUGFnZTsKIGNsYXNzIFBvc3RXb3Jr
ZXJOb3RpZmljYXRpb25Ub0Zyb250ZW5kVGFzazsKQEAgLTEyMCwzMCArMTEwLDEzIEBAIHByaXZh
dGU6CiAgICAgT3duUHRyPEluc3RydW1lbnRpbmdBZ2VudHM+IG1faW5zdHJ1bWVudGluZ0FnZW50
czsKICAgICBPd25QdHI8SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyPiBtX2luamVjdGVkU2NyaXB0TWFu
YWdlcjsKICAgICBPd25QdHI8SW5zcGVjdG9yU3RhdGU+IG1fc3RhdGU7Ci0gICAgT3duUHRyPElu
c3BlY3RvckFnZW50PiBtX2luc3BlY3RvckFnZW50OwogCi0gICAgT3duUHRyPEluc3BlY3RvclBh
Z2VBZ2VudD4gbV9wYWdlQWdlbnQ7Ci0gICAgT3duUHRyPEluc3BlY3RvckRPTUFnZW50PiBtX2Rv
bUFnZW50OwotICAgIE93blB0cjxJbnNwZWN0b3JDU1NBZ2VudD4gbV9jc3NBZ2VudDsKLSNpZiBF
TkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIE93blB0cjxJbnNwZWN0b3JEYXRhYmFzZUFnZW50PiBt
X2RhdGFiYXNlQWdlbnQ7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoRklMRV9TWVNURU0pCi0gICAgT3du
UHRyPEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudD4gbV9maWxlU3lzdGVtQWdlbnQ7Ci0jZW5kaWYK
LSAgICBPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PiBtX2RvbVN0b3JhZ2VBZ2VudDsK
LSAgICBPd25QdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gbV90aW1lbGluZUFnZW50OwotICAg
IE93blB0cjxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+IG1fYXBwbGljYXRpb25DYWNo
ZUFnZW50OwotICAgIFJlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZUFnZW50PiBtX3Jlc291cmNlQWdl
bnQ7Ci0gICAgT3duUHRyPEluc3BlY3RvclJ1bnRpbWVBZ2VudD4gbV9ydW50aW1lQWdlbnQ7Ci0g
ICAgT3duUHRyPEluc3BlY3RvckNvbnNvbGVBZ2VudD4gbV9jb25zb2xlQWdlbnQ7CisgICAgSW5z
cGVjdG9yQWdlbnQqIG1faW5zcGVjdG9yQWdlbnQ7CisgICAgSW5zcGVjdG9yRE9NQWdlbnQqIG1f
ZG9tQWdlbnQ7CisgICAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogbV9yZXNvdXJjZUFnZW50Owog
I2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIE93blB0cjxJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50PiBtX2RlYnVnZ2VyQWdlbnQ7Ci0gICAgT3duUHRyPEluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQ+IG1fZG9tRGVidWdnZXJBZ2VudDsKLSAgICBPd25QdHI8SW5zcGVjdG9yUHJvZmls
ZXJBZ2VudD4gbV9wcm9maWxlckFnZW50OwotI2VuZGlmCi0jaWYgRU5BQkxFKFdPUktFUlMpCi0g
ICAgT3duUHRyPEluc3BlY3RvcldvcmtlckFnZW50PiBtX3dvcmtlckFnZW50OworICAgIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQqIG1fZGVidWdnZXJBZ2VudDsKKyAgICBJbnNwZWN0b3JQcm9maWxl
ckFnZW50KiBtX3Byb2ZpbGVyQWdlbnQ7CiAjZW5kaWYKIAogICAgIFJlZlB0cjxJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlcj4gbV9pbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjsKQEAgLTE1Miw2
ICsxMjUsOCBAQCBwcml2YXRlOgogICAgIFBhZ2UqIG1fcGFnZTsKICAgICBJbnNwZWN0b3JDbGll
bnQqIG1faW5zcGVjdG9yQ2xpZW50OwogICAgIGJvb2wgbV9vcGVuaW5nRnJvbnRlbmQ7CisgICAg
dHlwZWRlZiBWZWN0b3I8T3duUHRyPEluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZT4gPiBBZ2Vu
dHM7CisgICAgQWdlbnRzIG1fYWdlbnRzOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMWEyNTExZWQ3NDBkNWNlYTYyNmYz
Njc3ZTU2NzgxZjJhMWJhYjE1Zi4uODYzOWM1Njc3YzllMWNhNTQ3OWE1MDZjMjU3NzczMzZkNDE1
ZDZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwCkBAIC0xNzIsNyArMTcyLDcgQEAgdm9pZCBSZXZhbGlkYXRlU3R5bGVBdHRyaWJ1dGVUYXNr
OjpvblRpbWVyKFRpbWVyPFJldmFsaWRhdGVTdHlsZUF0dHJpYnV0ZVRhc2s+KikKIH0KIAogSW5z
cGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0
b3JDbGllbnQqIGNsaWVudCwgSW5zcGVjdG9yU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKLSAgICA6IEluc3BlY3RvckJh
c2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkKKyAgICA6IEluc3Bl
Y3RvckJhc2VBZ2VudDxJbnNwZWN0b3JET01BZ2VudD4oaW5zdHJ1bWVudGluZ0FnZW50cywgaW5z
cGVjdG9yU3RhdGUpCiAgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCiAgICAgLCBtX2NsaWVu
dChjbGllbnQpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1h
bmFnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmlu
ZGV4IDUyNWY4YTFiNTI4ZjdhNDgxM2I0YjBkOTBiMjQ4NGU1MDk0YTg4MTYuLjUwMzA5ZDhjMzhl
MTA5ZmQ1NjBhM2JmYjRjNWVmZjA3ZjRlZmVhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC04Nyw3ICs4Nyw3IEBAIHN0cnVjdCBFdmVudExp
c3RlbmVySW5mbyB7CiAgICAgY29uc3QgRXZlbnRMaXN0ZW5lclZlY3RvciBldmVudExpc3RlbmVy
VmVjdG9yOwogfTsKIAotY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9y
QmFzZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvckRPTUFnZW50IDogcHVibGljIEluc3BlY3RvckJh
c2VBZ2VudDxJbnNwZWN0b3JET01BZ2VudD4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElu
c3BlY3RvckRPTUFnZW50KTsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgRE9NTGlzdGVuZXIgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuY3BwCmluZGV4IGEzNjhmZWZlNGNmMWMzYjhlMzQ3YmVmMmUzOTY4M2RhZGU4MGExMWQuLjgz
ZTljZGE3YmIxNzdmMDYyZGYyYjYzNmU3YWY1ZWM0NTYxOGMwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKQEAg
LTc1LDcgKzc1LDcgQEAgUGFzc093blB0cjxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PiBJbnNw
ZWN0b3JET01EZWJ1Z2dlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWUKIH0KIAogSW5zcGVjdG9yRE9N
RGVidWdnZXJBZ2VudDo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUs
IEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVi
dWdnZXJBZ2VudCwgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50KQotICAgIDogSW5zcGVj
dG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQorICAgIDog
SW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ+KGluc3RydW1lbnRp
bmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQogICAgICwgbV9kb21BZ2VudChkb21BZ2VudCkKICAg
ICAsIG1fZGVidWdnZXJBZ2VudChkZWJ1Z2dlckFnZW50KQogICAgICwgbV9pbnNwZWN0b3JBZ2Vu
dChpbnNwZWN0b3JBZ2VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCmluZGV4IGQyZDJmMmViNzNhYTA5MTUxMmQ2NjlmNDc0
ZWIxNmJjM2ZlYWYzZGQuLmY2N2E5OTY3ZGM2MDUzMDMzNWU0NjQ5MzNmODlmYTgzNjZiZTZmNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dl
ckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQuaApAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBOb2RlOwogCiB0eXBlZGVmIFN0cmlu
ZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCA6IHB1Ymxp
YyBJbnNwZWN0b3JCYXNlQWdlbnQsIHB1YmxpYyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpMaXN0
ZW5lciB7CitjbGFzcyBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50IDogcHVibGljIEluc3BlY3Rv
ckJhc2VBZ2VudDxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PiwgcHVibGljIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6Okxpc3RlbmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0
b3JET01EZWJ1Z2dlckFnZW50KTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJbnNw
ZWN0b3JET01EZWJ1Z2dlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3Bl
Y3RvclN0YXRlKiwgSW5zcGVjdG9yRE9NQWdlbnQqLCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Kiwg
SW5zcGVjdG9yQWdlbnQqKTsKQEAgLTc5LDkgKzc5LDggQEAgcHVibGljOgogICAgIHZvaWQgd2ls
bFNlbmRYTUxIdHRwUmVxdWVzdChjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBwYXVzZU9u
TmF0aXZlRXZlbnRJZk5lZWRlZChjb25zdCBTdHJpbmcmIGNhdGVnb3J5VHlwZSwgY29uc3QgU3Ry
aW5nJiBldmVudE5hbWUsIGJvb2wgc3luY2hyb25vdXMpOwogCi0gICAgdmlydHVhbCB2b2lkIHNl
dEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNsZWFy
RnJvbnRlbmQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZSgpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBpbnNwZWN0ZWRQYWdlRGVzdHJveWVkKCkgeyBjbGVhcigpOyB9CiAKIHByaXZhdGU6CiAg
ICAgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVj
dG9yU3RhdGUqLCBJbnNwZWN0b3JET01BZ2VudCosIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqLCBJ
bnNwZWN0b3JBZ2VudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAppbmRleCAyZDA2OTE4ZTBjYjM3MGE3OGNkNTJiNzg0
NTgyNzc1YWNkNGIyZTA1Li5hM2UwMjI3YWE1Mzg1ZTQ1Njc4YjhhZDZmYTU5ZjA0MTQzMjkwNWYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50LmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgY29uc3QgY2hhciBkb21TdG9y
YWdlQWdlbnRFbmFibGVkW10gPSAiZG9tU3RvcmFnZUFnZW50RW5hYmxlZCI7CiB0eXBlZGVmIEhh
c2hNYXA8aW50LCBSZWZQdHI8SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlPiA+IERPTVN0b3Jh
Z2VSZXNvdXJjZXNNYXA7CiAKIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6SW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIElu
c3BlY3RvclN0YXRlKiBzdGF0ZSkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50
aW5nQWdlbnRzLCBzdGF0ZSkKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQogICAgICwgbV9mcm9udGVu
ZCgwKQogICAgICwgbV9lbmFibGVkKGZhbHNlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCmluZGV4IDVmN2VkMDI2MzU0ZDk0
ZDVlZGUxMzhhMmRjYWY0MWNlNmU1M2RiMGUuLmU4N2ZmZTIzMzc4ODJlYTRmOThmMDdmNGE3MDNk
MWViY2NkMDg3NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgU3RvcmFnZUFyZWE7
CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAppbmRleCBkNjZhOGJkYzkw
YTQ5NjYxYjhiNzliOWNiMGExN2U1NDBmYmQ3MmYyLi40NDlhMGNlOTY1Njc4NWJkZjY5NDk2YjFi
NjlmODQ2ZTY2NDc3ZDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCkBAIC0yNDMsNyArMjQzLDcgQEAgdm9pZCBJbnNwZWN0
b3JEYXRhYmFzZUFnZW50OjpjbGVhclJlc291cmNlcygpCiB9CiAKIEluc3BlY3RvckRhdGFiYXNl
QWdlbnQ6Okluc3BlY3RvckRhdGFiYXNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQotICAgIDogSW5zcGVjdG9yQmFz
ZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorICAgIDogSW5zcGVjdG9yQmFzZUFn
ZW50PEluc3BlY3RvckRhdGFiYXNlQWdlbnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQog
ICAgICwgbV9lbmFibGVkKGZhbHNlKQogewogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oCmluZGV4IGM1ZDQwZjhjYjUyMzllNDZkOWUy
NDBjOTk2Nzg5NmYxODdkYmNiY2UuLjVlMDhmYTg5YmE3MjZmM2Q2NjI1ZThjNmZlODEyZjNlNzNj
MWZkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRh
YmFzZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFi
YXNlQWdlbnQuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwog
CiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5zcGVjdG9yRGF0YWJhc2VB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQgeworY2xhc3MgSW5zcGVjdG9yRGF0YWJh
c2VBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRGF0YWJhc2VBZ2Vu
dD4gewogcHVibGljOgogICAgIGNsYXNzIEZyb250ZW5kUHJvdmlkZXI7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBj
Y2ZlY2YwZWEzNDc1ZTZiNzExYTRjMzc4YzQzNjYyMjU5Y2QzYTNmLi5jZmVjYWVjOGJmMmFmNzI4
ZjA1N2I0MmIzOWNhMTdlZDc2YTM0OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHN0YXRp
YyBjb25zdCBjaGFyIGphdmFTY3JpcHRCcmVha3BvaW50c1tdID0gImphdmFTY3JpcHRCcmVha29w
aW50cyI7CiBjb25zdCBjaGFyKiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpiYWNrdHJhY2VPYmpl
Y3RHcm91cCA9ICJiYWNrdHJhY2Utb2JqZWN0LWdyb3VwIjsKIAogSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2Ny
aXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgIDogSW5zcGVjdG9yQmFzZUFn
ZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQorICAgIDogSW5zcGVjdG9y
QmFzZUFnZW50PEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIGlu
c3BlY3RvclN0YXRlKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKQogICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9wYXVzZWRTY3JpcHRTdGF0
ZSgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmgKaW5kZXggYjkwNTBjOWZkYTU5Yzc5MDFhMTBiMjQ3OWE3MjJhNGU5MjE2NmY3Zi4uNmY5
MmJhNmYyNmE2YzgyMWIwNGE2MDhmMGI3MjliNmQ2ZDZjNzg5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC01OCw3ICs1OCw3
IEBAIGNsYXNzIFNjcmlwdFZhbHVlOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAot
Y2xhc3MgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQs
IHB1YmxpYyBTY3JpcHREZWJ1Z0xpc3RlbmVyIHsKK2NsYXNzIEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+LCBw
dWJsaWMgU2NyaXB0RGVidWdMaXN0ZW5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5z
cGVjdG9yRGVidWdnZXJBZ2VudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBiYWNrdHJhY2VPYmplY3RHcm91cDsKQEAgLTcyLDYgKzcy
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9u
dGVuZCopOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7CiAgICAgdmlydHVhbCB2
b2lkIHJlc3RvcmUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkUGFnZURlc3Ryb3llZCgp
IHsgY2xlYXIoKTsgfQogCiAgICAgdm9pZCBkaWRDbGVhck1haW5GcmFtZVdpbmRvd09iamVjdCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5
c3RlbUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lz
dGVtQWdlbnQuY3BwCmluZGV4IGE2NGExYjMzMTBhZjljMDZiMjViOGZiMmMwMmZiMjk4ZWE0Njc0
YzIuLjk2ZjAzYjYwZGFmNDdjODg3MjYyMjEzZWI0YTdjZWYzZjgxZDNhZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3Bw
CkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlc3Rv
cmUoKQogfQogCiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6Okluc3BlY3RvckZpbGVTeXN0ZW1B
Z2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JT
dGF0ZSogc3RhdGUpCi0gICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50
cywgc3RhdGUpLAorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckZpbGVTeXN0ZW1B
Z2VudD4oaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpLAogICAgICAgbV9mcm9udGVuZCgwKSwK
ICAgICAgIG1fZW5hYmxlZChmYWxzZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaAppbmRleCBlZmE1NTgzZTBmNWFlZWEyMzdi
MmQyZDhmMDg0YjY0OTE0YmQ0NDk2Li4wMDNhOWM1NTlmOGUxNjYwOTJiNDllOGZiYmE2NThkYzc0
Njg1NWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZp
bGVTeXN0ZW1BZ2VudC5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIEluc3BlY3RvckZyb250ZW5k
OwogY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogCi1j
bGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50
IHsKK2NsYXNzIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNl
QWdlbnQ8SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NPd25QdHI8SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIEluc3BlY3RvclN0YXRlKik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCmluZGV4IDcwNjEzNjNkMTJmNTMwMzhlODNlNTljYzY4ZGQzODEzYzJlMjBiMTMuLjhh
MDM4MGRjZDUyMmUyMDE3NzY0MzlhOTQ4MDQwN2IxMjBkZWZjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0yNjIsNyArMjYyLDcg
QEAgU3RyaW5nIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VUeXBlU3RyaW5nKGNv
bnN0IENhY2hlZFJlc291cmNlJiBjYWNoZWQKIH0KIAogSW5zcGVjdG9yUGFnZUFnZW50OjpJbnNw
ZWN0b3JQYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
UGFnZSogcGFnZSwgSW5zcGVjdG9yU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlw
dE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKLSAgICA6IEluc3BlY3RvckJhc2VBZ2Vu
dChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkKKyAgICA6IEluc3BlY3RvckJh
c2VBZ2VudDxJbnNwZWN0b3JQYWdlQWdlbnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3Rv
clN0YXRlKQogICAgICwgbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdl
cihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBtX2Zyb250ZW5kKDApCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXggZTYxMzQ5ODFhYjAz
ZDUyZmU3YzhmYzA4MDAxMTMxOWMzZjM0YTFmOS4uMmZhMjFjMDZjY2QxYjNkYTk2ZDM2NmM3NDNk
YzNhODJlYTAzMDJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuaApAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiAKIHR5cGVk
ZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQgOiBJbnNw
ZWN0b3JCYXNlQWdlbnQgeworY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50IDogcHVibGljIEluc3Bl
Y3RvckJhc2VBZ2VudDxJbnNwZWN0b3JQYWdlQWdlbnQ+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShJbnNwZWN0b3JQYWdlQWdlbnQpOwogcHVibGljOgogICAgIGVudW0gUmVzb3VyY2VUeXBl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxl
ckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFn
ZW50LmNwcAppbmRleCBjMGFmMTZjNTg1YWY4OGMxOGMwNjIwYjgyODNjOTRjOGUxOWMyM2M1Li5l
Y2M2YzgxY2Q0YTM0OGExMzE2MThkMzgxNTQzZDI2NGNkMzY5M2QxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCkBAIC02OCw3
ICs2OCw3IEBAIFBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBCiB9CiAKIEluc3BlY3RvclByb2ZpbGVy
QWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQsIFBhZ2Uq
IGluc3BlY3RlZFBhZ2UsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAgOiBJbnNwZWN0b3JCYXNl
QWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUpCisgICAgOiBJbnNwZWN0
b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4oaW5zdHJ1bWVudGluZ0FnZW50cywg
aW5zcGVjdG9yU3RhdGUpCiAgICAgLCBtX2NvbnNvbGVBZ2VudChjb25zb2xlQWdlbnQpCiAgICAg
LCBtX2luc3BlY3RlZFBhZ2UoaW5zcGVjdGVkUGFnZSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCmluZGV4IGIwZWIwZmEzOGFjYzIyZmYzZDBm
ZWE5YzE4N2I0ZDJlNTAwZWE3NTAuLjE0MDY0YzY2NWFmNmUwZTdmMTkzOTc3YjA5NzFjMTc0N2Jm
NDQ3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9m
aWxlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2Zp
bGVyQWdlbnQuaApAQCAtNTUsNyArNTUsNyBAQCBjbGFzcyBTY3JpcHRQcm9maWxlOwogCiB0eXBl
ZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCA6
IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQgeworY2xhc3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvclByb2ZpbGVyQWdlbnQpOyBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0
b3JQcm9maWxlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNv
bnNvbGVBZ2VudCosIFBhZ2UqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdl
ciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwCmluZGV4IDM4MTMyODZlZjg5MzU5NTRkNmI1MmYxMWFhNmQ0YzlhOGE3NTA3NmIu
LjZjMTAyY2NkMjNkZjcyYjVlZDA4YjhkZmIzNTY4NjA2MmEzMjMxODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTUz
MCw3ICs1MzAsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Om1haW5GcmFtZU5hdmln
YXRlZChEb2N1bWVudExvYWRlciogbG9hZGVyKQogfQogCiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDbGllbnQq
IGNsaWVudCwgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50
KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PElu
c3BlY3RvclJlc291cmNlQWdlbnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQogICAgICwg
bV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9m
cm9udGVuZCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmgKaW5kZXggYjFiNDlmNjNmZTlmZjY0OTRkYTBiOTJiODI2MDA1NDg0NTIwZGFj
MS4uMjgyODk2Nzk3OTdiM2Y4YTFhN2U0MWQ5OTQ0ZmI5N2EzMmFmYmIxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCkBAIC0zNSw3
ICszNSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgogCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCkBAIC03MywxMSArNzMsMTEgQEAgY2xhc3MgV2ViU29ja2V0SGFuZHNo
YWtlUmVzcG9uc2U7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudCwgcHVibGljIFJl
ZkNvdW50ZWQ8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4geworY2xhc3MgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3RvclJlc291cmNlQWdl
bnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNw
ZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3Bl
Y3RvclN0YXRlKiBzdGF0ZSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
SW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvckNsaWVudCogY2xpZW50LCBJ
bnNwZWN0b3JTdGF0ZSogc3RhdGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEluc3BlY3RvclJlc291cmNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZUFnZW50LCBj
bGllbnQsIHN0YXRlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBwYWdlQWdlbnQsIGNsaWVudCwgc3RhdGUp
KTsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRl
bmQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50
aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVB
Z2VudC5jcHAKaW5kZXggZjRiMjFlN2IzYzg2MTZiMWZjMzBjMzUyMzI2YjZiMDE5N2NiYzAyYy4u
ZTZkZDA2Y2E4ZmVhNjVjNjk5YTc1ZWFlNjY4MGQ4NTZlYTBjNzY0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTU2LDcg
KzU2LDcgQEAgc3RhdGljIGJvb2wgYXNCb29sKGNvbnN0IGJvb2wqIGNvbnN0IGIpCiB9CiAKIElu
c3BlY3RvclJ1bnRpbWVBZ2VudDo6SW5zcGVjdG9yUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAgOiBJbnNwZWN0b3JC
YXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCisgICAgOiBJbnNwZWN0b3JCYXNl
QWdlbnQ8SW5zcGVjdG9yUnVudGltZUFnZW50PihpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkK
ICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKICNp
ZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICAsIG1fc2NyaXB0RGVidWdTZXJ2ZXIo
MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1l
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQu
aAppbmRleCBlYTU0OGFjNGY3Y2VkYjk1OTdmM2M5YzA0YmQ3MTNhNmNkNmVkOTM3Li45MTQ1YzZj
OGEyMjdlOWVjZTA2OWZlMDdhMmNkN2U4N2ZlMWIyOGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCkBAIC01MSw3ICs1MSw3IEBAIGNs
YXNzIFdvcmtlckNvbnRleHQ7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFz
cyBJbnNwZWN0b3JSdW50aW1lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50IHsKK2Ns
YXNzIEluc3BlY3RvclJ1bnRpbWVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5z
cGVjdG9yUnVudGltZUFnZW50PiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9y
UnVudGltZUFnZW50KTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JSdW50aW1lQWdl
bnQoKTsKQEAgLTc4LDEwICs3OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbGVhc2VPYmplY3RH
cm91cChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApOwogICAgIHZvaWQg
cnVuKEVycm9yU3RyaW5nKik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVj
dG9yRnJvbnRlbmQqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCkgeyB9Ci0KICNpZiBFTkFCTEUoSkFWQVNDUklQVF9E
RUJVR0dFUikKICAgICB2b2lkIHNldFNjcmlwdERlYnVnU2VydmVyKFNjcmlwdERlYnVnU2VydmVy
Kik7CiAjaWYgRU5BQkxFKFdPUktFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggMWRkZTAwMDU0NGRlYWFkYzUzYThj
YWIxOTVmMzhiZGQ4YjgxYzgxYy4uY2MyNGI5ZTE0YTlhN2IxZWQxZjAwZjQwZGM0YWRmMTgxM2U5
NTBjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVs
aW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmNwcApAQCAtNDAwLDcgKzQwMCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSkKIH0KIAog
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCi0g
ICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCisgICAg
OiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4oaW5zdHJ1bWVudGlu
Z0FnZW50cywgc3RhdGUpCiAgICAgLCBtX2Zyb250ZW5kKDApCiAgICAgLCBtX2lkKDEpCiAgICAg
LCBtX21heENhbGxTdGFja0RlcHRoKDUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCAxYTUyMDNjOTg2NTBiYzFhMDBmY2JjNWM4
NGVhNWYxNWU5NzExYjA5Li43OGFmMDJkMzhhYTBiZWI5ODNkZjliNmQzZjhmOTY5ZjQxZWVkNjdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAogdHlwZWRl
ZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQgOiBw
dWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50LCBTY3JpcHRHQ0V2ZW50TGlzdGVuZXIgeworY2xhc3Mg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVj
dG9yVGltZWxpbmVBZ2VudD4sIFNjcmlwdEdDRXZlbnRMaXN0ZW5lciB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NPd25QdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4
IDI1NTc0NTA1MzQwNDNkZDdmMWExZDg1N2QxOTU4ZDc5NzI5NjNkY2EuLjliNzI5MGM4ZGQ4YzE1
YjM1YzM1MGE0Y2UxZWU3NjMyZmNmMjlkMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcApAQCAtMTExLDcgKzExMSw3IEBAIFBhc3NP
d25QdHI8SW5zcGVjdG9yV29ya2VyQWdlbnQ+IEluc3BlY3RvcldvcmtlckFnZW50OjpjcmVhdGUo
SW5zdHJ1bWVudGluZ0FnZW50CiB9CiAKIEluc3BlY3RvcldvcmtlckFnZW50OjpJbnNwZWN0b3JX
b3JrZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNw
ZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUpCi0gICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQoaW5z
dHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdl
bnQ8SW5zcGVjdG9yV29ya2VyQWdlbnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0
YXRlKQogICAgICwgbV9pbnNwZWN0b3JGcm9udGVuZCgwKQogewogICAgIG1faW5zdHJ1bWVudGlu
Z0FnZW50cy0+c2V0SW5zcGVjdG9yV29ya2VyQWdlbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCmluZGV4IGY3NTdjYWEyNzMzZDQ3
NjI1MTlhOWRmMjcyOTBjMTFkNWFmYjIwYTEuLjU5NmZmMTZhZjMzNWUyNTZhNWVkOTI5MjYzYzBl
MTAxMDExZjRhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JXb3JrZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFdvcmtlckNvbnRleHRQcm94eTsK
IAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvcldvcmtlckFn
ZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudCB7CitjbGFzcyBJbnNwZWN0b3JXb3JrZXJB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yV29ya2VyQWdlbnQ+IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JXb3JrZXJBZ2VudD4gY3Jl
YXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSopOwogICAgIH5JbnNwZWN0
b3JXb3JrZXJBZ2VudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFn
ZW50LmgKaW5kZXggYTkxNDc1MjcwZWZkNGFlMWUzNTEzMDBhNTE2MTFlZmI5MWQyM2FhMS4uYmI0
OGZhZWJhYWZhZGFkZjk2MTA2NjNlNzFlNDI4ZmQ2OWQ5MzBiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5l
IFBhZ2VDb25zb2xlQWdlbnRfaAogCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29uc29sZUFnZW50Lmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAK
QEAgLTQzLDEwICs0NCwxNCBAQCBjbGFzcyBJbnNwZWN0b3JET01BZ2VudDsKIGNsYXNzIFBhZ2VD
b25zb2xlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQ29uc29sZUFnZW50IHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShQYWdlQ29uc29sZUFnZW50KTsKIHB1YmxpYzoKLSAgICBQYWdlQ29uc29s
ZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JBZ2VudCosIEluc3BlY3RvclN0
YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yRE9NQWdlbnQqKTsKKyAgICBz
dGF0aWMgUGFzc093blB0cjxQYWdlQ29uc29sZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQWdlbnQqIGFnZW50LCBJbnNwZWN0
b3JTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFBhZ2VDb25zb2xlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgYWdlbnQs
IHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIGRvbUFnZW50KSk7CisgICAgfQogICAgIHZp
cnR1YWwgflBhZ2VDb25zb2xlQWdlbnQoKTsKIAogcHJpdmF0ZToKKyAgICBQYWdlQ29uc29sZUFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JBZ2VudCosIEluc3BlY3RvclN0YXRl
KiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yRE9NQWdlbnQqKTsKICAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJNZXNzYWdlcyhFcnJvclN0cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBh
ZGRJbnNwZWN0ZWROb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCk7CiAgICAgdmlydHVhbCBi
b29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
UGFnZVJ1bnRpbWVBZ2VudC5oCmluZGV4IGI1YzQxYzc4NDY1Zjk1M2FkM2U3NGUwMzdlYzU4MjRl
MzBhNjk4NGYuLmZmZTI5MGNiNDAyNjM1NmM4OGFmYmZjYTA0OTc1NWMxMzQ1NGNmMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaApAQCAtMzQsNiArMzQs
NyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJJbnNwZWN0b3JSdW50aW1l
QWdlbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTQyLDEwICs0MywxNSBAQCBjbGFzcyBQYWdlOwogCiBjbGFzcyBQYWdlUnVudGlt
ZUFnZW50IDogcHVibGljIEluc3BlY3RvclJ1bnRpbWVBZ2VudCB7CiBwdWJsaWM6Ci0gICAgUGFn
ZVJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqLCBQYWdlKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7CisgICAgc3Rh
dGljIFBhc3NPd25QdHI8UGFnZVJ1bnRpbWVBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFBhZ2UqIHBhZ2UsIEluc3BlY3Rv
clBhZ2VBZ2VudCogcGFnZUFnZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBQYWdlUnVudGltZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlLCBpbmplY3RlZFNj
cmlwdE1hbmFnZXIsIHBhZ2UsIHBhZ2VBZ2VudCkpOworICAgIH0KICAgICB2aXJ0dWFsIH5QYWdl
UnVudGltZUFnZW50KCk7CiAKIHByaXZhdGU6CisgICAgUGFnZVJ1bnRpbWVBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBQ
YWdlKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7CisKICAgICB2aXJ0dWFsIFNjcmlwdFN0YXRlKiBz
Y3JpcHRTdGF0ZUZvckZyYW1lSWQoY29uc3QgU3RyaW5nJiBmcmFtZUlkKTsKICAgICB2aXJ0dWFs
IFNjcmlwdFN0YXRlKiBnZXREZWZhdWx0SW5zcGVjdGVkU3RhdGUoKTsKICAgICBQYWdlKiBtX2lu
c3BlY3RlZFBhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
Q29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFn
ZW50LmgKaW5kZXggMzYwZWNhN2I5YWFlNDg1ZTdmZWQ4ZjA5OTNjOTZiNzExNTM2ZGMyZS4uNmY2
MGQ0MjIwYzBiYTg1YThhYTcyZGI2NjZmYmZmNWZmYzY0MzY3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaApAQCAtMzIsNiArMzIsNyBAQAogI2Rl
ZmluZSBXb3JrZXJDb25zb2xlQWdlbnRfaAogCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29uc29sZUFn
ZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogI2lmIEVOQUJMRShJTlNQRUNU
T1IpICYmIEVOQUJMRShXT1JLRVJTKQogCkBAIC00MCwxMCArNDEsMTQgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgV29ya2VyQ29uc29sZUFnZW50IDogcHVibGljIEluc3BlY3RvckNvbnNv
bGVBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2VyQ29uc29sZUFnZW50KTsK
IHB1YmxpYzoKLSAgICBXb3JrZXJDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIElu
c3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAgc3RhdGljIFBhc3NP
d25QdHI8V29ya2VyQ29uc29sZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1h
bmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgV29ya2VyQ29uc29sZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlLCBp
bmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKKyAgICB9CiAgICAgdmlydHVhbCB+V29ya2VyQ29uc29s
ZUFnZW50KCk7CiAKIHByaXZhdGU6CisgICAgV29ya2VyQ29uc29sZUFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOwogICAg
IHZpcnR1YWwgdm9pZCBhZGRJbnNwZWN0ZWROb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCk7
CiAgICAgdmlydHVhbCBib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKaW5kZXggN2EwMTZiMDUyNWIwOTEzODE0OTA5ZDkyY2MxOWI1MGYyZmYyZDcxNi4uOGI1ZjRh
NzliNjc4YTY2NzM3MGQ4MDU3NTE5MDY1OTFkYzhhOTgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtOTEs
MTIgKzkxLDE0IEBAIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlckluc3BlY3RvckNv
bnRyb2xsZXIoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4CiAgICAgLCBtX3N0YXRlKGFkb3B0
UHRyKG5ldyBJbnNwZWN0b3JTdGF0ZShtX3N0YXRlQ2xpZW50LmdldCgpKSkpCiAgICAgLCBtX2lu
c3RydW1lbnRpbmdBZ2VudHMoYWRvcHRQdHIobmV3IEluc3RydW1lbnRpbmdBZ2VudHMoKSkpCiAg
ICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmNyZWF0
ZUZvcldvcmtlcigpKQoreworCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAg
LCBtX2RlYnVnZ2VyQWdlbnQoV29ya2VyRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgd29ya2VyQ29udGV4dCwgbV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKQorICAgIG1fZGVidWdnZXJBZ2VudCA9IFdvcmtlckRlYnVn
Z2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0
KCksIHdvcmtlckNvbnRleHQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKTsKICNlbmRp
ZgotICAgICwgbV9ydW50aW1lQWdlbnQoYWRvcHRQdHIobmV3IFdvcmtlclJ1bnRpbWVBZ2VudCht
X2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmdldCgpLCB3b3JrZXJDb250ZXh0KSkpCi0gICAgLCBtX2NvbnNvbGVBZ2VudChh
ZG9wdFB0cihuZXcgV29ya2VyQ29uc29sZUFnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKSkKLXsKKyAg
ICBtX3J1bnRpbWVBZ2VudCA9IFdvcmtlclJ1bnRpbWVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIu
Z2V0KCksIHdvcmtlckNvbnRleHQpOworICAgIG1fY29uc29sZUFnZW50ID0gV29ya2VyQ29uc29s
ZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgp
LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSk7CisKICAgICBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRIb3N0KCktPmluaXQoMAogICAgICAgICAsIDAKICNpZiBF
TkFCTEUoU1FMX0RBVEFCQVNFKQpAQCAtMTIxLDM0ICsxMjMsMTIgQEAgdm9pZCBXb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQogICAgIG1fc3RhdGUtPnVubXV0ZSgp
OwogICAgIG1fZnJvbnRlbmRDaGFubmVsID0gYWRvcHRQdHIobmV3IFBhZ2VJbnNwZWN0b3JQcm94
eShtX3dvcmtlckNvbnRleHQpKTsKICAgICBtX2Zyb250ZW5kID0gYWRvcHRQdHIobmV3IEluc3Bl
Y3RvckZyb250ZW5kKG1fZnJvbnRlbmRDaGFubmVsLmdldCgpKSk7Ci0gICAgbV9iYWNrZW5kRGlz
cGF0Y2hlciA9IGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcigKLSAgICAg
ICAgbV9mcm9udGVuZENoYW5uZWwuZ2V0KCksCi0gICAgICAgIDAsIC8vIEluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudAotICAgICAgICAwLCAvLyBJbnNwZWN0b3JDU1NBZ2VudAotICAgICAg
ICBtX2NvbnNvbGVBZ2VudC5nZXQoKSwKLSAgICAgICAgMCwgLy8gSW5zcGVjdG9yRE9NQWdlbnQK
LSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICAgICAgMCwgLy8gSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudAotI2VuZGlmCi0gICAgICAgIDAsIC8vIEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudAotI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgICAgIDAsIC8vIEluc3BlY3Rv
ckRhdGFiYXNlQWdlbnQKLSNlbmRpZgotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQot
ICAgICAgICBtX2RlYnVnZ2VyQWdlbnQuZ2V0KCksCi0jZW5kaWYKLSNpZiBFTkFCTEUoRklMRV9T
WVNURU0pCi0gICAgICAgIDAsIC8vIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudAotI2VuZGlmCi0g
ICAgICAgIDAsIC8vIEluc3BlY3RvclJlc291cmNlQWdlbnQKLSAgICAgICAgMCwgLy8gSW5zcGVj
dG9yUGFnZUFnZW50CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IGFkb3B0UmVmKG5ldyBJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcihtX2Zyb250ZW5kQ2hhbm5lbC5nZXQoKSkpOworICAgIG1f
Y29uc29sZUFnZW50LT5yZWdpc3RlckluRGlzcGF0Y2hlcihtX2JhY2tlbmREaXNwYXRjaGVyLmdl
dCgpKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICAgICAgMCwgLy8gSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudAorICAgIG1fZGVidWdnZXJBZ2VudC0+cmVnaXN0ZXJJbkRpc3Bh
dGNoZXIobV9iYWNrZW5kRGlzcGF0Y2hlci5nZXQoKSk7CiAjZW5kaWYKLSAgICAgICAgbV9ydW50
aW1lQWdlbnQuZ2V0KCksCi0gICAgICAgIDAsIC8vIEluc3BlY3RvclRpbWVsaW5lQWdlbnQKLSAg
ICAgICAgMCAvLyBJbnNwZWN0b3JXb3JrZXJBZ2VudAotICAgICkpOworICAgIG1fcnVudGltZUFn
ZW50LT5yZWdpc3RlckluRGlzcGF0Y2hlcihtX2JhY2tlbmREaXNwYXRjaGVyLmdldCgpKTsKIAog
ICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+c2V0RnJv
bnRlbmQobV9mcm9udGVuZC5nZXQoKSk7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKaW5kZXgg
ZjFiNTM4YTJhNmZkZWQxY2E5NTAwNWY1ODllMzMwODdkMGJkY2NhOC4uZDI2OWEyZmUzNmU4NTYz
YTM3NmRkYzljZjZiYTkwYmRkYWU2ZGQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJSdW50aW1lQWdlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2lmIEVOQUJMRShJTlNQ
RUNUT1IpICYmIEVOQUJMRShXT1JLRVJTKQogCiAjaW5jbHVkZSAiSW5zcGVjdG9yUnVudGltZUFn
ZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC00MSwxMCArNDIsMTQgQEAgY2xhc3MgV29ya2VyQ29udGV4dDsKIAogY2xhc3MgV29y
a2VyUnVudGltZUFnZW50IDogcHVibGljIEluc3BlY3RvclJ1bnRpbWVBZ2VudCB7CiBwdWJsaWM6
Ci0gICAgV29ya2VyUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JT
dGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIFdvcmtlckNvbnRleHQqKTsKKyAgICBzdGF0
aWMgUGFzc093blB0cjxXb3JrZXJSdW50aW1lQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluamVjdGVk
U2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBXb3JrZXJDb250ZXh0KiBjb250
ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJSdW50aW1lQWdl
bnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlciwgY29u
dGV4dCkpOworICAgIH0KICAgICB2aXJ0dWFsIH5Xb3JrZXJSdW50aW1lQWdlbnQoKTsKIAogcHJp
dmF0ZToKKyAgICBXb3JrZXJSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3Bl
Y3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgV29ya2VyQ29udGV4dCopOwogICAg
IHZpcnR1YWwgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlRm9yRnJhbWVJZChjb25zdCBTdHJpbmcm
IGZyYW1lSWQpOwogICAgIHZpcnR1YWwgU2NyaXB0U3RhdGUqIGdldERlZmF1bHRJbnNwZWN0ZWRT
dGF0ZSgpOwogICAgIFdvcmtlckNvbnRleHQqIG1fd29ya2VyQ29udGV4dDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116921</attachid>
            <date>2011-11-29 01:38:29 -0800</date>
            <delta_ts>2011-11-29 02:01:08 -0800</delta_ts>
            <desc>[Patch] to land</desc>
            <filename>bug-73225-20111129133826.patch</filename>
            <type>text/plain</type>
            <size>73600</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWVmOWRmYTBlNjlkZDVk
ZjY3ZjVjYWIzNmMwYjY3OTlmZjE4YjQyZS4uZGI4NzUxYWI1NmU5MjllZmM0ZTIxZmQxMjc1OTdm
YWJlMzcxZDhjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAxMS0xMS0yOCAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcHV0IGluc3BlY3RvciBhZ2VudHMgaW50byBhIHZlY3RvciBpbiB0aGUgSW5zcGVjdG9yQ29u
dHJvbGxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTczMjI1CisKKyAgICAgICAgSW5zcGVjdG9yIGNvbnRyb2xsZXIgc2hvdWxkIG1haW50YWluIGFn
ZW50cyBpbiB0aGUgdmVjdG9yLCB3aGlsZSBhY2Nlc3NpbmcKKyAgICAgICAgdGhlbSB1c2luZyB0
aGUgc2FtZSBiYXNlIGFnZW50IGludGVyZmFjZS4gV2Ugc2hvdWxkIG5vdCBtYW51YWxseSBjYWxs
CisgICAgICAgIGJhc2UgYWdlbnQgbWV0aG9kcyBvbiB0aGVpciBjb25jcmV0ZSBpbnN0YW5jZXMu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weToKKyAgICAgICAgKERvbWFpbk5hbWVGaXhl
cy5nZXRfZml4ZWRfZGF0YS5SZXMpOgorICAgICAgICAoRG9tYWluTmFtZUZpeGVzKToKKyAgICAg
ICAgKEdlbmVyYXRvci5nbyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpJbnNwZWN0b3JBZ2VudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3N0V29ya2VyTm90aWZpY2F0aW9uVG9Gcm9udGVuZFRhc2s6OnBl
cmZvcm1UYXNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6
Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50LmNwcDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2U6Okluc3BlY3RvckJhc2VBZ2VudEludGVyZmFj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2U6On5JbnNw
ZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFz
ZUFnZW50SW50ZXJmYWNlOjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JCYXNlQWdlbnRJbnRlcmZhY2U6OmNsZWFyRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlOjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZTo6aW5zcGVjdGVkUGFnZURlc3Ryb3llZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYXNlQWdlbnQ6On5JbnNwZWN0b3JCYXNlQWdlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFzZUFnZW50OjpyZWdpc3RlckRpc3BhdGNo
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFzZUFnZW50OjpJbnNwZWN0b3JCYXNl
QWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6SW5zcGVjdG9yQ1NTQWdlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ1NTQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdl
bnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVj
dGVkUGFnZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
Ojpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6OnJlc3RvcmVJbnNwZWN0b3JTdGF0ZUZyb21Db29raWUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpJbnNw
ZWN0b3JET01BZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6SW5zcGVjdG9yRE9NRGVi
dWdnZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6Omluc3Bl
Y3RlZFBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJh
c2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpJ
bnNwZWN0b3JEYXRhYmFzZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0
YWJhc2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6Okluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjppbnNwZWN0
ZWRQYWdlRGVzdHJveWVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6
SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBh
Z2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50
aW1lQWdlbnQ6Okluc3BlY3RvclJ1bnRpbWVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50OjpJbnNwZWN0b3JX
b3JrZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VDb25zb2xlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VS
dW50aW1lQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OmNyZWF0
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyQ29uc29sZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJSdW50aW1lQWdlbnQ6OmNyZWF0ZSk6CisKIDIwMTEtMTEtMjkgIFNlYW4gV2Fu
ZyAgPFh1ZXdlbi5XYW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBVcHN0cmVhbSBC
bGFja0JlcnJ5IHBvcnRpbmcgb2YgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNjJlOTg4
ODNiYTViMjViZDc4MzE1ZTIzYmFlN2ZjNjdlOTk1OGE5Li40ZTkyZWFlZmE4NGU5ZjI0MzExN2Vk
YTE1MTZiYzVmZmQ0YTBmOThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzU2LDcgKzEzNTYsNyBAQAogCQk0RjZGREQ2NDEz
NDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNkZERDYyMTM0MURFREQwMDFGOEVFMyAv
KiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwICovOyB9OwogCQk0RjZGREQ2NTEzNDFERUREMDAxRjhF
RTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0RjZGREQ2MzEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFn
ZUFnZW50LmggKi87IH07CiAJCTRGNzA3QTk5MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0RjcwN0E5NzExRUY2Nzk0MDBBQ0RBNjkgLyogSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXIuY3BwICovOyB9OwotCQk0RjcwN0E5QTExRUY2Nzk0MDBBQ0RBNjkgLyogSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRGNzA3QTk4MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlci5oICovOyB9OworCQk0RjcwN0E5QTExRUY2Nzk0MDBBQ0RBNjkgLyogSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRGNzA3QTk4MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTRGQTNCOTBBMTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkEzQjkwODEyNUNE
MTIxMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuY3BwICovOyB9OwogCQk0RkEzQjkwQjEyNUNE
MTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGQTNCOTA5MTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0
b3JTdGF0ZS5oICovOyB9OwogCQk0RkQ4RDBGMjExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NF
dmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RkQ4RDBGMDExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5jcHAgKi87IH07CkBAIC0x
ODEwLDcgKzE4MTAsNyBAQAogCQk3QTc0RUNCQjEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QTc0RUNCOTEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50LmggKi87IH07CiAJCTdBNzRFQ0JEMTAxODM5REEwMEJGOTM5RSAvKiBKU0luc3BlY3RvckZy
b250ZW5kSG9zdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QTc0RUNCQzEwMTgzOURBMDBCRjkzOUUgLyogSlNJbnNwZWN0b3JGcm9udGVu
ZEhvc3RDdXN0b20uY3BwICovOyB9OwogCQk3QUEzNjVFRTEyRTcyNjU0MDBEQ0EyNDIgLyogSW5z
cGVjdG9yUnVudGltZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdBQTM2NUVEMTJFNzI2NTQwMERDQTI0MiAvKiBJbnNwZWN0b3JSdW50aW1l
QWdlbnQuY3BwICovOyB9OwotCQk3QUE1MUI2RTE0ODNCNjE2MDBBRDI3NTIgLyogSW5zcGVjdG9y
QmFzZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QUE1MUI2QzE0ODNCNjE2MDBBRDI3NTIgLyogSW5zcGVjdG9yQmFzZUFnZW50LmggKi87IH07
CisJCTdBQTUxQjZFMTQ4M0I2MTYwMEFEMjc1MiAvKiBJbnNwZWN0b3JCYXNlQWdlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBQTUxQjZDMTQ4M0I2
MTYwMEFEMjc1MiAvKiBJbnNwZWN0b3JCYXNlQWdlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QUE1MUI2RjE0ODNCNjE2MDBBRDI3NTIgLyog
SW5zcGVjdG9yQmFzZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdBQTUxQjZEMTQ4M0I2MTYwMEFEMjc1MiAvKiBJbnNwZWN0b3JCYXNlQWdl
bnQuY3BwICovOyB9OwogCQk3QUIwQjFDMDEyMTFBNjIyMDBBNzY5NDAgLyogSW5zcGVjdG9yRGF0
YWJhc2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QUIwQjFCRTEyMTFBNjIyMDBBNzY5NDAgLyogSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5j
cHAgKi87IH07CiAJCTdBQjBCMUMxMTIxMUE2MjIwMEE3Njk0MCAvKiBJbnNwZWN0b3JEYXRhYmFz
ZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QUIwQjFCRjEyMTFBNjIyMDBBNzY5NDAgLyogSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oICovOyB9
OwpAQCAtMTQ0NzYsOCArMTQ0NzYsNiBAQAogCQkxQzgxQjk0RDBFOTczMkQ5MDAyNjZFMDcgLyog
aW5zcGVjdG9yICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk3QUE1MUI2QzE0ODNCNjE2MDBBRDI3NTIgLyogSW5zcGVjdG9yQmFzZUFnZW50LmggKi8sCi0J
CQkJN0FBNTFCNkQxNDgzQjYxNjAwQUQyNzUyIC8qIEluc3BlY3RvckJhc2VBZ2VudC5jcHAgKi8s
CiAJCQkJMUM4MUI5NTkwRTk3MzMwODAwMjY2RTA3IC8qIGZyb250LWVuZCAqLywKIAkJCQk0MUYw
NjE4RDBGNUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3NhZ2UuY3BwICovLAogCQkJCTQxRjA2
MThDMEY1RjA2OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVzc2FnZS5oICovLApAQCAtMTQ0OTksNiAr
MTQ0OTcsOCBAQAogCQkJCTRGMkQyMDUyMTJFQUU3QjMwMDVDMjg3NCAvKiBJbnNwZWN0b3JBZ2Vu
dC5oICovLAogCQkJCUI4ODVFOEQyMTFFMDZERDIwMDlGRkJGNCAvKiBJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQuY3BwICovLAogCQkJCUI4ODVFOEQzMTFFMDZERDIwMDlGRkJGNCAvKiBJ
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCAqLywKKwkJCQk3QUE1MUI2QzE0ODNCNjE2
MDBBRDI3NTIgLyogSW5zcGVjdG9yQmFzZUFnZW50LmggKi8sCisJCQkJN0FBNTFCNkQxNDgzQjYx
NjAwQUQyNzUyIC8qIEluc3BlY3RvckJhc2VBZ2VudC5jcHAgKi8sCiAJCQkJN0ExRjJCNTExMjZD
NjFCMjAwMDZBN0U2IC8qIEluc3BlY3RvckNsaWVudC5jcHAgKi8sCiAJCQkJMUM4MUI5NTgwRTk3
MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNsaWVudC5oICovLAogCQkJCUYzMzM1QkY2MTJFMDdE
QzMwMEQzMzAxMSAvKiBJbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weQppbmRleCA4ODE5
NmExNTdkMTcxYWFiOGYzMTcyZjU5NTZkZTUwZGRlMDY0MDZhLi5kMGQ0MWUyNTI2MDJlODVjYWRj
ZmZiNDY0ZmEzMDYzMmYwYThkZmNmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weQpAQCAtMTM1LDcgKzEzNSw2IEBAIGNsYXNzIERv
bWFpbk5hbWVGaXhlczoKIAogICAgICAgICBjbGFzcyBSZXMob2JqZWN0KToKICAgICAgICAgICAg
IGFnZW50X3R5cGVfbmFtZSA9IGFnZW50X25hbWVfcmVzCi0gICAgICAgICAgICBoaWRkZW4gPSBk
b21haW5fbmFtZSBpbiBjbHMuaGlkZGVuX2RvbWFpbnMKICAgICAgICAgICAgIHNraXBfanNfYmlu
ZCA9IGRvbWFpbl9uYW1lIGluIGNscy5za2lwX2pzX2JpbmRfZG9tYWlucwogICAgICAgICAgICAg
YWdlbnRfZmllbGRfbmFtZSA9IGZpZWxkX25hbWVfcmVzCiAKQEAgLTE1Nyw4ICsxNTYsNyBAQCBj
bGFzcyBEb21haW5OYW1lRml4ZXM6CiAgICAgICAgIHJldHVybiBSZXMKIAogICAgIHNraXBfanNf
YmluZF9kb21haW5zID0gc2V0KFsiUnVudGltZSIsICJDU1MiLCAiRE9NRGVidWdnZXIiXSkKLSAg
ICBoaWRkZW5fZG9tYWlucyA9IHNldChbIkluc3BlY3RvciJdKQotICAgIGFnZW50X3R5cGVfbWFw
ID0geyJOZXR3b3JrIjogIkluc3BlY3RvclJlc291cmNlQWdlbnQifQorICAgIGFnZW50X3R5cGVf
bWFwID0geyJOZXR3b3JrIjogIkluc3BlY3RvclJlc291cmNlQWdlbnQiLCAiSW5zcGVjdG9yIjog
Ikluc3BlY3RvckFnZW50IiwgfQogCiAKIGNsYXNzIENQYXJhbVR5cGUob2JqZWN0KToKQEAgLTUw
NSw5ICs1MDMsOSBAQCAke2ZpZWxkRGVjbGFyYXRpb25zfX07CiAjaWZuZGVmIEluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyX2gKICNkZWZpbmUgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJfaAog
Ci0jaW5jbHVkZSA8UGxhdGZvcm1TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTIyLDExICs1MjAsMTMgQEAgdHlw
ZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKIGNsYXNzIEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyOiBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcj4gewogcHVi
bGljOgotICAgIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbCogaW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsJGNvbnN0cnVjdG9yUGFyYW1zKQorICAgIElu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogaW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsKQogICAgICAgICA6IG1faW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KGluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCkKICRjb25zdHJ1Y3RvckluaXQKICAgICB7IH0KIAor
JHNldHRlcnMKKwogICAgIHZvaWQgY2xlYXJGcm9udGVuZCgpIHsgbV9pbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwgPSAwOyB9CiAKICAgICBlbnVtIENvbW1vbkVycm9yQ29kZSB7CkBAIC01NDUsNyAr
NTQ1LDYgQEAgJGNvbnN0cnVjdG9ySW5pdAogICAgIHN0YXRpYyBib29sIGdldENvbW1hbmROYW1l
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU3RyaW5nKiByZXN1bHQpOwogCiAgICAgZW51bSBNZXRo
b2ROYW1lcyB7Ci0KICRtZXRob2ROYW1lc0VudW1Db250ZW50CiB9OwogCkBAIC01ODUsOCArNTg0
LDggQEAgJGZpZWxkRGVjbGFyYXRpb25zCiAKICNpbmNsdWRlICJJbnNwZWN0b3JBZ2VudC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAkaW5jbHVkZXMKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTE2
LDcgKzkxNSw3IEBAIGJvb2wgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmdldENvbW1hbmRO
YW1lKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU3RyaW5nKiByCiAKICNpbmNsdWRlICJJbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKLSNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEyMDUsNyArMTIwNCw3IEBAIGNsYXNzIEdlbmVy
YXRvcjoKICAgICBiYWNrZW5kX2pzX2RvbWFpbl9kaXNwYXRjaGVyX2xpc3QgPSBbXQogICAgIGJh
Y2tlbmRfanNfY2FwYWJpbGl0aWVzX2xpc3QgPSBbXQogCi0gICAgYmFja2VuZF9jb25zdHJ1Y3Rv
cl9wYXJhbV9saXN0ID0gW10KKyAgICBiYWNrZW5kX3NldHRlcnNfbGlzdCA9IFtdCiAgICAgYmFj
a2VuZF9jb25zdHJ1Y3Rvcl9pbml0X2xpc3QgPSBbXQogICAgIGJhY2tlbmRfZmllbGRfbGlzdCA9
IFtdCiAgICAgYmFja2VuZF9mb3J3YXJkX2xpc3QgPSBbXQpAQCAtMTI2NSwxMiArMTI2NCwxMCBA
QCBjbGFzcyBHZW5lcmF0b3I6CiAgICAgICAgICAgICBpZiBkb21haW5fZGF0YS5pc19kaXNhYmxl
ZChkZWZpbmVzX21hcCk6CiAgICAgICAgICAgICAgICAgY29udGludWUKIAotICAgICAgICAgICAg
aWYgZG9tYWluX2RhdGEuaGlkZGVuOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAg
ICAgICBhZ2VudF90eXBlX25hbWUgPSBkb21haW5fZGF0YS5hZ2VudF90eXBlX25hbWUKICAgICAg
ICAgICAgIGFnZW50X2ZpZWxkX25hbWUgPSBkb21haW5fZGF0YS5hZ2VudF9maWVsZF9uYW1lCi0g
ICAgICAgICAgICBHZW5lcmF0b3IuYmFja2VuZF9jb25zdHJ1Y3Rvcl9wYXJhbV9saXN0LmFwcGVu
ZCgiLCAlcyogJXMiICUgKGFnZW50X3R5cGVfbmFtZSwgYWdlbnRfZmllbGRfbmFtZSkpCi0gICAg
ICAgICAgICBHZW5lcmF0b3IuYmFja2VuZF9jb25zdHJ1Y3Rvcl9pbml0X2xpc3QuYXBwZW5kKCIg
ICAgICAgICwgbV8lcyglcykiICUgKGFnZW50X2ZpZWxkX25hbWUsIGFnZW50X2ZpZWxkX25hbWUp
KQorICAgICAgICAgICAgR2VuZXJhdG9yLmJhY2tlbmRfY29uc3RydWN0b3JfaW5pdF9saXN0LmFw
cGVuZCgiICAgICAgICAsIG1fJXMoMCkiICUgYWdlbnRfZmllbGRfbmFtZSkKKyAgICAgICAgICAg
IEdlbmVyYXRvci5iYWNrZW5kX3NldHRlcnNfbGlzdC5hcHBlbmQoIiAgICB2b2lkIHJlZ2lzdGVy
QWdlbnQoJXMqICVzKSB7IEFTU0VSVCghbV8lcyk7IG1fJXMgPSAlczsgfSIgJSAoYWdlbnRfdHlw
ZV9uYW1lLCBhZ2VudF9maWVsZF9uYW1lLCBhZ2VudF9maWVsZF9uYW1lLCBhZ2VudF9maWVsZF9u
YW1lLCBhZ2VudF9maWVsZF9uYW1lKSkKICAgICAgICAgICAgIEdlbmVyYXRvci5iYWNrZW5kX2Zp
ZWxkX2xpc3QuYXBwZW5kKCIgICAgJXMqIG1fJXM7IiAlIChhZ2VudF90eXBlX25hbWUsIGFnZW50
X2ZpZWxkX25hbWUpKQogICAgICAgICAgICAgR2VuZXJhdG9yLmJhY2tlbmRfZm9yd2FyZF9saXN0
LmFwcGVuZCgiY2xhc3MgJXM7IiAlIGFnZW50X3R5cGVfbmFtZSkKICAgICAgICAgICAgIEdlbmVy
YXRvci5iYWNrZW5kX2luY2x1ZGVfbGlzdC5hcHBlbmQoIiNpbmNsdWRlIFwiJXMuaFwiIiAlIGFn
ZW50X3R5cGVfbmFtZSkKQEAgLTE0MjYsNyArMTQyMyw3IEBAIGZyb250ZW5kX2hfZmlsZS53cml0
ZShUZW1wbGF0ZXMuZnJvbnRlbmRfaC5zdWJzdGl0dXRlKE5vbmUsCiAKIGJhY2tlbmRfaF9maWxl
LndyaXRlKFRlbXBsYXRlcy5iYWNrZW5kX2guc3Vic3RpdHV0ZShOb25lLAogICAgIGNvbnN0cnVj
dG9ySW5pdD1qb2luKEdlbmVyYXRvci5iYWNrZW5kX2NvbnN0cnVjdG9yX2luaXRfbGlzdCwgIlxu
IiksCi0gICAgY29uc3RydWN0b3JQYXJhbXM9am9pbihHZW5lcmF0b3IuYmFja2VuZF9jb25zdHJ1
Y3Rvcl9wYXJhbV9saXN0LCAiIiksCisgICAgc2V0dGVycz1qb2luKEdlbmVyYXRvci5iYWNrZW5k
X3NldHRlcnNfbGlzdCwgIlxuIiksCiAgICAgbWV0aG9kTmFtZXNFbnVtQ29udGVudD1qb2luKEdl
bmVyYXRvci5tZXRob2RfbmFtZV9lbnVtX2xpc3QsICJcbiIpLAogICAgIG1ldGhvZERlY2xhcmF0
aW9ucz1qb2luKEdlbmVyYXRvci5iYWNrZW5kX21ldGhvZF9kZWNsYXJhdGlvbl9saXN0LCAiXG4i
KSwKICAgICBmaWVsZERlY2xhcmF0aW9ucz1qb2luKEdlbmVyYXRvci5iYWNrZW5kX2ZpZWxkX2xp
c3QsICJcbiIpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAK
aW5kZXggMTI5ZTA3MDBjNjQzZGVlM2Q5YTMwODBkZGM1MWRhNTIzZjM3YzE4YS4uZGM5MjFhMTYy
ZWU1YjgyOWJkN2RmODI0MTk0YjdhMWIwMWU5ZGJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHN0YXRpYyBjb25zdCBj
aGFyIGNvbnNvbGVQYW5lbE5hbWVbXSA9ICJjb25zb2xlIjsKIHN0YXRpYyBjb25zdCBjaGFyIHBy
b2ZpbGVzUGFuZWxOYW1lW10gPSAicHJvZmlsZXMiOwogCiBJbnNwZWN0b3JBZ2VudDo6SW5zcGVj
dG9yQWdlbnQoUGFnZSogcGFnZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlw
dE1hbmFnZXIsIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3Bl
Y3RvclN0YXRlKiBzdGF0ZSkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5n
QWdlbnRzLCBzdGF0ZSkKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JBZ2VudD4o
aW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCiAgICAgLCBtX2luc3BlY3RlZFBhZ2UocGFnZSkK
ICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVj
dGVkU2NyaXB0TWFuYWdlcikKQEAgLTc2LDE4ICs3Niw5IEBAIEluc3BlY3RvckFnZW50OjpJbnNw
ZWN0b3JBZ2VudChQYWdlKiBwYWdlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2Ny
aXB0CiBJbnNwZWN0b3JBZ2VudDo6fkluc3BlY3RvckFnZW50KCkKIHsKICAgICBtX2luc3RydW1l
bnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckFnZW50KDApOwotCi0gICAgLy8gVGhlc2Ugc2hvdWxk
IGhhdmUgYmVlbiBjbGVhcmVkIGluIGluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKS4KLSAgICBBU1NF
UlQoIW1faW5zcGVjdGVkUGFnZSk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQWdlbnQ6Omluc3BlY3Rl
ZFBhZ2VEZXN0cm95ZWQoKQotewotICAgIEFTU0VSVChtX2luc3BlY3RlZFBhZ2UpOwotICAgIG1f
aW5zcGVjdGVkUGFnZSA9IDA7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQWdlbnQ6OnJlc3RvcmUoKQor
dm9pZCBJbnNwZWN0b3JBZ2VudDo6ZW1pdENvbW1pdExvYWRJZk5lZWRlZCgpCiB7CiAgICAgaWYg
KG1fZGlkQ29tbWl0TG9hZEZpcmVkKQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENvbW1pdExvYWQobV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKSwgbV9pbnNwZWN0ZWRQ
YWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCkpOwpAQCAtMTY0LDcg
KzE1NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQpCiAgICAgewogICAgICAgICBpZiAoc2NyaXB0
Q29udGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICBpZiAoSW5zcGVjdG9yQWdlbnQq
IGluc3BlY3RvckFnZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzY3JpcHRDb250ZXh0KS0+
cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPm1faW5zcGVjdG9yQWdlbnQuZ2V0KCkpCisg
ICAgICAgICAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gc3RhdGljX2Nh
c3Q8RG9jdW1lbnQqPihzY3JpcHRDb250ZXh0KS0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVy
KCktPm1faW5zcGVjdG9yQWdlbnQpCiAgICAgICAgICAgICAgICAgaW5zcGVjdG9yQWdlbnQtPnBv
c3RXb3JrZXJOb3RpZmljYXRpb25Ub0Zyb250ZW5kKCptX3dvcmtlciwgbV9hY3Rpb24pOwogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaApp
bmRleCBlYzEzMWNjMDUyODUzMTRjMjdmMTg0ZmQwMmM5ZmQzMDk5NGY2Y2U3Li5jNWNmMTYxYmZh
NGZmYjJiNTg3MjBlYWUwM2Y5N2Y5YjIwNWE1ZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQWdlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MSwxMyArNTIsMTUgQEAgY2xhc3MgUGFnZTsK
IAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvckFnZW50IDog
cHVibGljIEluc3BlY3RvckJhc2VBZ2VudCB7CitjbGFzcyBJbnNwZWN0b3JBZ2VudCA6IHB1Ymxp
YyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQWdlbnQ+IHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbnNwZWN0b3JBZ2VudCk7CiBwdWJsaWM6Ci0gICAgSW5zcGVjdG9yQWdlbnQoUGFn
ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0
b3JTdGF0ZSopOwotICAgIHZpcnR1YWwgfkluc3BlY3RvckFnZW50KCk7CisgICAgc3RhdGljIFBh
c3NPd25QdHI8SW5zcGVjdG9yQWdlbnQ+IGNyZWF0ZShQYWdlKiBwYWdlLCBJbmplY3RlZFNjcmlw
dE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBZ2VudChwYWdlLCBpbmplY3RlZFNjcmlwdE1h
bmFnZXIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKSk7CisgICAgfQogCi0gICAgdm9pZCBp
bnNwZWN0ZWRQYWdlRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yQWdlbnQoKTsK
IAogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0OwogCkBAIC02OCwxMiArNzEsMTIgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7CiAg
ICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9y
ZSgpOwogCiAgICAgdm9pZCBkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoRnJhbWUqLCBET01X
cmFwcGVyV29ybGQqKTsKIAogICAgIHZvaWQgZGlkQ29tbWl0TG9hZCgpOwogICAgIHZvaWQgZG9t
Q29udGVudExvYWRlZEV2ZW50RmlyZWQoKTsKKyAgICB2b2lkIGVtaXRDb21taXRMb2FkSWZOZWVk
ZWQoKTsKIAogI2lmIEVOQUJMRShXT1JLRVJTKQogICAgIGVudW0gV29ya2VyQWN0aW9uIHsgV29y
a2VyQ3JlYXRlZCwgV29ya2VyRGVzdHJveWVkIH07CkBAIC05MSw2ICs5NCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEluc3BlY3RvckV4dGVuc2lvbkFQSShjb25zdCBTdHJpbmcmIHNvdXJjZSk7
CiAKIHByaXZhdGU6CisgICAgSW5zcGVjdG9yQWdlbnQoUGFnZSosIEluamVjdGVkU2NyaXB0TWFu
YWdlciosIEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSopOworCiAgICAgdm9p
ZCB1bmJpbmRBbGxSZXNvdXJjZXMoKTsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50LmNwcAppbmRleCBkNDU4MTljYjk5M2I2OTAyMjJkZDBlMTBhYzRm
NjUwOTQ4NzQyMzUzLi5mM2ZhOTI4ZjE3N2NhOTI0Y2M0NTExMmZmNThhNzhjYjY4NmI1OWExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50LmNwcApAQCAtNDgsOCArNDgsOCBAQCBuYW1lc3BhY2UgQXBwbGlj
YXRpb25DYWNoZUFnZW50U3RhdGUgewogc3RhdGljIGNvbnN0IGNoYXIgYXBwbGljYXRpb25DYWNo
ZUFnZW50RW5hYmxlZFtdID0gImFwcGxpY2F0aW9uQ2FjaGVBZ2VudEVuYWJsZWQiOwogfQogCi1J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQ
YWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQotICAgIDogSW5zcGVj
dG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJ
bnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJ
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRl
KQogICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9mcm9udGVuZCgwKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudC5oCmluZGV4IDNjOWNlYmNiZmJiOWE1NWJiODQ3ZGI3YjU3Y2Y4NDA2ZDMy
ZGRkOWMuLmMzMTY3NDRjNjc0ZjI2MWQ3MWRjYTM2N2U0ZjdmYzVjZWM3OTIyZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JCYXNlQWdl
bnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSwxMCArNDksMTMgQEAg
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAK
LWNsYXNzIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JC
YXNlQWdlbnQgeworY2xhc3MgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50IDogcHVibGlj
IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+IHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIElu
c3BlY3RvclN0YXRlKik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2Vu
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlLCBwYWdlQWdlbnQpKTsKKyAg
ICB9CiAgICAgfkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgpIHsgfQogCiAgICAgLy8g
SW5zcGVjdG9yQmFzZUFnZW50CkBAIC03MSw2ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdl
dEFwcGxpY2F0aW9uQ2FjaGVGb3JGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnJh
bWVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGFwcGxpY2F0aW9uQ2FjaGUpOwogCiBwcml2
YXRlOgorICAgIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbnNwZWN0b3JQYWdlQWdlbnQqKTsKICAgICBQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlKGNvbnN0
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0JiwgY29uc3QgQXBwbGljYXRp
b25DYWNoZUhvc3Q6OkNhY2hlSW5mbyYpOwogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+
IGJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNvbnN0IEFwcGxpY2F0aW9u
Q2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0Jik7CiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlKGNvbnN0IEFwcGxp
Y2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5jcHAKaW5kZXggZjZhNTAxZmI3OGViZDM0Y2IxNmQ4
OGYyOGMxZTVjM2FjODViZjQ5YS4uNzQ5NjA3M2JhNDU3ODMxM2RhOTNjYWIxZDdmYTJhMDk3YTNm
MWY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhc2VB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2Vu
dC5jcHAKQEAgLTM1LDE2ICszNSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zcGVj
dG9yQmFzZUFnZW50OjpJbnNwZWN0b3JCYXNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIGluc3BlY3RvclN0YXRlKQotICAgIDog
bV9pbnN0cnVtZW50aW5nQWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMpCi0gICAgLCBtX3N0YXRl
KGluc3BlY3RvclN0YXRlKQotewotfQotCi1JbnNwZWN0b3JCYXNlQWdlbnQ6On5JbnNwZWN0b3JC
YXNlQWdlbnQoKQotewotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckJhc2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJh
c2VBZ2VudC5oCmluZGV4IDQ3Zjk2NGIxYTM1YjA1ZmY5MDMyODczN2Q0ZTBmMDI5Mzk1OTIzODQu
LjgxZjA3OWJjMGQ5ODhlNjFhMzIxMzRjOWMzYTRkMTRjYmM0NTYwYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50LmgKQEAgLTMxLDIyICszMSw0MCBA
QAogI2lmbmRlZiBJbnNwZWN0b3JCYXNlQWdlbnRfaAogI2RlZmluZSBJbnNwZWN0b3JCYXNlQWdl
bnRfaAogCisjaW5jbHVkZSAiSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCIKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3Rv
clN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIAotY2xhc3MgSW5zcGVjdG9yQmFz
ZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZSB7CitwdWJsaWM6Cisg
ICAgSW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlKCkgeyB9CisgICAgdmlydHVhbCB+SW5zcGVj
dG9yQmFzZUFnZW50SW50ZXJmYWNlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5k
KEluc3BlY3RvckZyb250ZW5kKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQo
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckluRGlzcGF0Y2hlcihJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopID0gMDsKK307
CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBJbnNwZWN0b3JCYXNlQWdlbnQgOiBwdWJs
aWMgSW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5J
bnNwZWN0b3JCYXNlQWdlbnQoKTsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JCYXNlQWdlbnQoKSB7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgcmVzdG9yZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJJbkRpc3BhdGNoZXIo
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqIGRpc3BhdGNoZXIpCisgICAgeworICAgICAgICBk
aXNwYXRjaGVyLT5yZWdpc3RlckFnZW50KHN0YXRpY19jYXN0PFQqPih0aGlzKSk7CisgICAgfQog
CiBwcm90ZWN0ZWQ6Ci0gICAgSW5zcGVjdG9yQmFzZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
LCBJbnNwZWN0b3JTdGF0ZSopOworICAgIEluc3BlY3RvckJhc2VBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3Rh
dGUpCisgICAgICAgIDogbV9pbnN0cnVtZW50aW5nQWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMp
CisgICAgICAgICwgbV9zdGF0ZShpbnNwZWN0b3JTdGF0ZSkKKyAgICB7CisgICAgfQogCiAgICAg
SW5zdHJ1bWVudGluZ0FnZW50cyogbV9pbnN0cnVtZW50aW5nQWdlbnRzOwogICAgIEluc3BlY3Rv
clN0YXRlKiBtX3N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5jcHAKaW5kZXggN2RiNjA1YzFkMTNmNzk0YTJiYjI3MjBkMGE0ZDMwZTQzMmNkY2Q5
Ny4uMjdkZjY5NWM3OTE2ZTkyMzk0ZjBjNWJkMGRkNGFhMTFjYTdhNGQ1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC0xODUsNyArMTg1
LDcgQEAgQ1NTU3R5bGVSdWxlKiBJbnNwZWN0b3JDU1NBZ2VudDo6YXNDU1NTdHlsZVJ1bGUoQ1NT
UnVsZSogcnVsZSkKIH0KIAogSW5zcGVjdG9yQ1NTQWdlbnQ6Okluc3BlY3RvckNTU0FnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBz
dGF0ZSwgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50KQotICAgIDogSW5zcGVjdG9yQmFzZUFn
ZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50
PEluc3BlY3RvckNTU0FnZW50PihpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKICAgICAsIG1f
ZG9tQWdlbnQoZG9tQWdlbnQpCiAgICAgLCBtX2xhc3RQc2V1ZG9TdGF0ZSgwKQogICAgICwgbV9s
YXN0U3R5bGVTaGVldElkKDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5oCmluZGV4IDJlYzRjZDE1ODdlOTQ1MGE3MWY0NDg1MzJhMDk0NmYxYWRkMjY1YWUu
LjkxOGRhNmIzMmYxNGFkZjBkYWFmZWI5NGRmYzQ5Y2NkOTE5ZWVjZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCkBAIC01MiwxOSArNTIsMjAgQEAg
Y2xhc3MgTm9kZTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKLWNsYXNzIEluc3BlY3RvckNT
U0FnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudCwgcHVibGljIEluc3BlY3RvckRPTUFn
ZW50OjpET01MaXN0ZW5lciB7CitjbGFzcyBJbnNwZWN0b3JDU1NBZ2VudCA6IHB1YmxpYyBJbnNw
ZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQ1NTQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yRE9NQWdl
bnQ6OkRPTUxpc3RlbmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JDU1NB
Z2VudCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hl
ZXQoQ1NTUnVsZSopOwogICAgIHN0YXRpYyBDU1NTdHlsZVJ1bGUqIGFzQ1NTU3R5bGVSdWxlKENT
U1J1bGUqKTsKIAotICAgIEluc3BlY3RvckNTU0FnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJ
bnNwZWN0b3JTdGF0ZSosIEluc3BlY3RvckRPTUFnZW50Kik7CisgICAgc3RhdGljIFBhc3NPd25Q
dHI8SW5zcGVjdG9yQ1NTQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluc3BlY3RvckRPTUFnZW50KiBk
b21BZ2VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yQ1NT
QWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUsIGRvbUFnZW50KSk7CisgICAgfQogICAg
IH5JbnNwZWN0b3JDU1NBZ2VudCgpOwogCiAgICAgYm9vbCBmb3JjZVBzZXVkb1N0YXRlKEVsZW1l
bnQqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSk7Ci0gICAgdmlydHVhbCB2b2lkIHNldEZyb250
ZW5kKEluc3BlY3RvckZyb250ZW5kKikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRl
bmQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZSgpIHsgfQogICAgIHZvaWQgcmVzZXQoKTsK
IAogICAgIHZvaWQgZ2V0Q29tcHV0ZWRTdHlsZUZvck5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9k
ZUlkLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBmb3JjZWRQc2V1ZG9DbGFzc2VzLCBS
ZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBzdHlsZSk7CkBAIC04MSw2ICs4Miw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGdldFN1cHBvcnRlZENTU1Byb3BlcnRpZXMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8
SW5zcGVjdG9yQXJyYXk+KiByZXN1bHQpOwogCiBwcml2YXRlOgorICAgIEluc3BlY3RvckNTU0Fn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluc3BlY3RvckRPTUFn
ZW50Kik7CisKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9yU3R5
bGVTaGVldD4gPiBJZFRvSW5zcGVjdG9yU3R5bGVTaGVldDsKICAgICB0eXBlZGVmIEhhc2hNYXA8
Q1NTU3R5bGVTaGVldCosIFJlZlB0cjxJbnNwZWN0b3JTdHlsZVNoZWV0PiA+IENTU1N0eWxlU2hl
ZXRUb0luc3BlY3RvclN0eWxlU2hlZXQ7CiAgICAgdHlwZWRlZiBIYXNoTWFwPE5vZGUqLCBSZWZQ
dHI8SW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlPiA+IE5vZGVUb0luc3BlY3RvclN0
eWxlU2hlZXQ7IC8vIGJvZ3VzICJzdHlsZXNoZWV0cyIgd2l0aCBlbGVtZW50cycgaW5saW5lIHN0
eWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFn
ZW50LmNwcAppbmRleCAxOTc5YTZiYWRkOGFiYzk1NTQ0M2Q0NWJlMmNhNDRhNjkwZWQwN2NmLi42
ODNkODlhZWEzYjljNjBkN2MzNzcyMjkzYjUyNmVkNjQ3ZjM0M2NkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcApAQCAtNTcsNyAr
NTcsNyBAQCBzdGF0aWMgY29uc3QgY2hhciBjb25zb2xlTWVzc2FnZXNFbmFibGVkW10gPSAiY29u
c29sZU1lc3NhZ2VzRW5hYmxlZCI7CiB9CiAKIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6SW5zcGVj
dG9yQ29uc29sZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNj
cmlwdE1hbmFnZXIpCi0gICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50
cywgc3RhdGUpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQ29uc29sZUFnZW50
PihpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1f
cHJldmlvdXNNZXNzYWdlKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29uc29sZUFnZW50LmgKaW5kZXggNDFhYWVjMmM0N2ZjMTBhYWVlMmJhYTc1YjJjZWI3ZGNi
YTMyMjIyYi4uNzYzNWE2OTZjNmFlODdlZWIwMzlkZDQ1YjFhNTc5Yzg1YjFlMTkzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAt
NTIsNyArNTIsNyBAQCBjbGFzcyBTY3JpcHRQcm9maWxlOwogCiB0eXBlZGVmIFN0cmluZyBFcnJv
clN0cmluZzsKIAotY2xhc3MgSW5zcGVjdG9yQ29uc29sZUFnZW50IDogcHVibGljIEluc3BlY3Rv
ckJhc2VBZ2VudCB7CitjbGFzcyBJbnNwZWN0b3JDb25zb2xlQWdlbnQgOiBwdWJsaWMgSW5zcGVj
dG9yQmFzZUFnZW50PEluc3BlY3RvckNvbnNvbGVBZ2VudD4gewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEluc3BlY3RvckNvbnNvbGVBZ2VudCk7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQ29u
c29sZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVk
U2NyaXB0TWFuYWdlciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCmluZGV4IDVjNDY4ZmYxM2NjODJmYzZiZDFiYWUwOGZlNzNhNjhlODY3
ODZkNjAuLjExMDc2NTBkNThlOTE5YmNiZDdkYzEzZjZmNTYwODM0MDk4MTU5MjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTQx
LDYgKzQxLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JBZ2VudC5oIgogI2luY2x1ZGUgIkluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQmFzZUFnZW50LmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yQ1NTQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnQuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgpAQCAtNzMsNDUgKzc0LDc5IEBAIEluc3BlY3RvckNv
bnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50
KiBpbnNwZWN0b3JDCiAgICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoYWRvcHRQdHIobmV3IElu
c3RydW1lbnRpbmdBZ2VudHMoKSkpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihJbmpl
Y3RlZFNjcmlwdE1hbmFnZXI6OmNyZWF0ZUZvclBhZ2UoKSkKICAgICAsIG1fc3RhdGUoYWRvcHRQ
dHIobmV3IEluc3BlY3RvclN0YXRlKGluc3BlY3RvckNsaWVudCkpKQotICAgICwgbV9pbnNwZWN0
b3JBZ2VudChhZG9wdFB0cihuZXcgSW5zcGVjdG9yQWdlbnQocGFnZSwgbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXIuZ2V0KCksIG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQo
KSkpKQotICAgICwgbV9wYWdlQWdlbnQoSW5zcGVjdG9yUGFnZUFnZW50OjpjcmVhdGUobV9pbnN0
cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlci5nZXQoKSkpCi0gICAgLCBtX2RvbUFnZW50KEluc3BlY3RvckRPTUFnZW50Ojpj
cmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3BhZ2VBZ2VudC5nZXQoKSwgaW5z
cGVjdG9yQ2xpZW50LCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQo
KSkpCi0gICAgLCBtX2Nzc0FnZW50KGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JDU1NBZ2VudChtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1fZG9tQWdlbnQuZ2V0KCkp
KSkKKyAgICAsIG1fcGFnZShwYWdlKQorICAgICwgbV9pbnNwZWN0b3JDbGllbnQoaW5zcGVjdG9y
Q2xpZW50KQorICAgICwgbV9vcGVuaW5nRnJvbnRlbmQoZmFsc2UpCit7CisgICAgT3duUHRyPElu
c3BlY3RvckFnZW50PiBpbnNwZWN0b3JBZ2VudFB0cihJbnNwZWN0b3JBZ2VudDo6Y3JlYXRlKHBh
Z2UsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX2luc3RydW1lbnRpbmdBZ2VudHMu
Z2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBtX2luc3BlY3RvckFnZW50ID0gaW5zcGVjdG9y
QWdlbnRQdHIuZ2V0KCk7CisgICAgbV9hZ2VudHMuYXBwZW5kKGluc3BlY3RvckFnZW50UHRyLnJl
bGVhc2UoKSk7CisKKyAgICBPd25QdHI8SW5zcGVjdG9yUGFnZUFnZW50PiBwYWdlQWdlbnRQdHIo
SW5zcGVjdG9yUGFnZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBw
YWdlLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOworICAg
IEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gcGFnZUFnZW50UHRyLmdldCgpOworICAg
IG1fYWdlbnRzLmFwcGVuZChwYWdlQWdlbnRQdHIucmVsZWFzZSgpKTsKKworICAgIE93blB0cjxJ
bnNwZWN0b3JET01BZ2VudD4gZG9tQWdlbnRQdHIoSW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZSht
X2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgaW5zcGVjdG9yQ2xpZW50LCBt
X3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOworICAgIG1fZG9t
QWdlbnQgPSBkb21BZ2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoZG9tQWdlbnRQ
dHIucmVsZWFzZSgpKTsKKworICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JDU1NBZ2VudDo6
Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9kb21B
Z2VudCkpOworCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICAsIG1fZGF0YWJhc2VBZ2Vu
dChJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdl
dCgpLCBtX3N0YXRlLmdldCgpKSkKKyAgICBPd25QdHI8SW5zcGVjdG9yRGF0YWJhc2VBZ2VudD4g
ZGF0YWJhc2VBZ2VudFB0cihJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpjcmVhdGUobV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSk7CisgICAgSW5zcGVjdG9yRGF0YWJh
c2VBZ2VudCogZGF0YWJhc2VBZ2VudCA9IGRhdGFiYXNlQWdlbnRQdHIuZ2V0KCk7CisgICAgbV9h
Z2VudHMuYXBwZW5kKGRhdGFiYXNlQWdlbnRQdHIucmVsZWFzZSgpKTsKICNlbmRpZgorCiAjaWYg
RU5BQkxFKEZJTEVfU1lTVEVNKQotICAgICwgbV9maWxlU3lzdGVtQWdlbnQoSW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRl
LmdldCgpKSkKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50Ojpj
cmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSk7CiAjZW5k
aWYKLSAgICAsIG1fZG9tU3RvcmFnZUFnZW50KEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3Jl
YXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpCi0gICAgLCBt
X3RpbWVsaW5lQWdlbnQoSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpCi0gICAgLCBtX2FwcGxpY2F0aW9uQ2Fj
aGVBZ2VudChhZG9wdFB0cihuZXcgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KG1faW5z
dHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9wYWdlQWdlbnQuZ2V0KCksIG1fc3RhdGUuZ2V0KCkp
KSkKLSAgICAsIG1fcmVzb3VyY2VBZ2VudChJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjcmVhdGUo
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3BhZ2VBZ2VudC5nZXQoKSwgaW5zcGVjdG9y
Q2xpZW50LCBtX3N0YXRlLmdldCgpKSkKLSAgICAsIG1fcnVudGltZUFnZW50KGFkb3B0UHRyKG5l
dyBQYWdlUnVudGltZUFnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5n
ZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHBhZ2UsIG1fcGFnZUFnZW50Lmdl
dCgpKSkpCi0gICAgLCBtX2NvbnNvbGVBZ2VudChhZG9wdFB0cihuZXcgUGFnZUNvbnNvbGVBZ2Vu
dChtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5zcGVjdG9yQWdlbnQuZ2V0KCksIG1f
c3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX2RvbUFnZW50Lmdl
dCgpKSkpCisgICAgT3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gZG9tU3RvcmFnZUFn
ZW50UHRyKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOworICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dCogZG9tU3RvcmFnZUFnZW50ID0gZG9tU3RvcmFnZUFnZW50UHRyLmdldCgpOworICAgIG1fYWdl
bnRzLmFwcGVuZChkb21TdG9yYWdlQWdlbnRQdHIucmVsZWFzZSgpKTsKKworICAgIG1fYWdlbnRz
LmFwcGVuZChJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdl
bnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgbV9zdGF0ZS5nZXQoKSwgcGFnZUFnZW50KSk7CisKKyAgICBPd25QdHI8SW5zcGVjdG9yUmVz
b3VyY2VBZ2VudD4gcmVzb3VyY2VBZ2VudFB0cihJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjcmVh
dGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdlbnQsIGluc3BlY3RvckNsaWVu
dCwgbV9zdGF0ZS5nZXQoKSkpOworICAgIG1fcmVzb3VyY2VBZ2VudCA9IHJlc291cmNlQWdlbnRQ
dHIuZ2V0KCk7CisgICAgbV9hZ2VudHMuYXBwZW5kKHJlc291cmNlQWdlbnRQdHIucmVsZWFzZSgp
KTsKKworICAgIE93blB0cjxJbnNwZWN0b3JSdW50aW1lQWdlbnQ+IHJ1bnRpbWVBZ2VudFB0cihQ
YWdlUnVudGltZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0
YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgcGFnZSwgcGFnZUFnZW50
KSk7CisgICAgSW5zcGVjdG9yUnVudGltZUFnZW50KiBydW50aW1lQWdlbnQgPSBydW50aW1lQWdl
bnRQdHIuZ2V0KCk7CisgICAgbV9hZ2VudHMuYXBwZW5kKHJ1bnRpbWVBZ2VudFB0ci5yZWxlYXNl
KCkpOworCisgICAgT3duUHRyPEluc3BlY3RvckNvbnNvbGVBZ2VudD4gY29uc29sZUFnZW50UHRy
KFBhZ2VDb25zb2xlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
aW5zcGVjdG9yQWdlbnQsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdl
dCgpLCBtX2RvbUFnZW50KSk7CisgICAgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdl
bnQgPSBjb25zb2xlQWdlbnRQdHIuZ2V0KCk7CisgICAgbV9hZ2VudHMuYXBwZW5kKGNvbnNvbGVB
Z2VudFB0ci5yZWxlYXNlKCkpOworCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0g
ICAgLCBtX2RlYnVnZ2VyQWdlbnQoUGFnZURlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1l
bnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIHBhZ2UsIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLmdldCgpKSkKLSAgICAsIG1fZG9tRGVidWdnZXJBZ2VudChJbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdl
dCgpLCBtX2RvbUFnZW50LmdldCgpLCBtX2RlYnVnZ2VyQWdlbnQuZ2V0KCksIG1faW5zcGVjdG9y
QWdlbnQuZ2V0KCkpKQotICAgICwgbV9wcm9maWxlckFnZW50KEluc3BlY3RvclByb2ZpbGVyQWdl
bnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fY29uc29sZUFnZW50Lmdl
dCgpLCBwYWdlLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkp
CisgICAgT3duUHRyPEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+IGRlYnVnZ2VyQWdlbnRQdHIoUGFn
ZURlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3Rh
dGUuZ2V0KCksIHBhZ2UsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9k
ZWJ1Z2dlckFnZW50ID0gZGVidWdnZXJBZ2VudFB0ci5nZXQoKTsKKyAgICBtX2FnZW50cy5hcHBl
bmQoZGVidWdnZXJBZ2VudFB0ci5yZWxlYXNlKCkpOworCisgICAgbV9hZ2VudHMuYXBwZW5kKElu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0
KCksIG1fc3RhdGUuZ2V0KCksIG1fZG9tQWdlbnQsIG1fZGVidWdnZXJBZ2VudCwgbV9pbnNwZWN0
b3JBZ2VudCkpOworCisgICAgT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IHByb2ZpbGVy
QWdlbnRQdHIoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5nZXQoKSwgY29uc29sZUFnZW50LCBwYWdlLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVk
U2NyaXB0TWFuYWdlci5nZXQoKSkpOworICAgIG1fcHJvZmlsZXJBZ2VudCA9IHByb2ZpbGVyQWdl
bnRQdHIuZ2V0KCk7CisgICAgbV9hZ2VudHMuYXBwZW5kKHByb2ZpbGVyQWdlbnRQdHIucmVsZWFz
ZSgpKTsKICNlbmRpZgorCiAjaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgLCBtX3dvcmtlckFnZW50
KEluc3BlY3RvcldvcmtlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCBtX3N0YXRlLmdldCgpKSkKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yV29ya2VyQWdl
bnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsK
ICNlbmRpZgotICAgICwgbV9wYWdlKHBhZ2UpCi0gICAgLCBtX2luc3BlY3RvckNsaWVudChpbnNw
ZWN0b3JDbGllbnQpCi0gICAgLCBtX29wZW5pbmdGcm9udGVuZChmYWxzZSkKLXsKKwogICAgIEFT
U0VSVF9BUkcoaW5zcGVjdG9yQ2xpZW50LCBpbnNwZWN0b3JDbGllbnQpOwotICAgIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+aW5pdChtX2luc3BlY3RvckFn
ZW50LmdldCgpCi0gICAgICAgICwgbV9jb25zb2xlQWdlbnQuZ2V0KCkKKyAgICBtX2luamVjdGVk
U2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRIb3N0KCktPmluaXQobV9pbnNwZWN0b3JBZ2Vu
dAorICAgICAgICAsIGNvbnNvbGVBZ2VudAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAg
ICAgICwgbV9kYXRhYmFzZUFnZW50LmdldCgpCisgICAgICAgICwgZGF0YWJhc2VBZ2VudAogI2Vu
ZGlmCi0gICAgICAgICwgbV9kb21TdG9yYWdlQWdlbnQuZ2V0KCkKKyAgICAgICAgLCBkb21TdG9y
YWdlQWdlbnQKICAgICApOwogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAg
bV9ydW50aW1lQWdlbnQtPnNldFNjcmlwdERlYnVnU2VydmVyKCZtX2RlYnVnZ2VyQWdlbnQtPnNj
cmlwdERlYnVnU2VydmVyKCkpOworICAgIHJ1bnRpbWVBZ2VudC0+c2V0U2NyaXB0RGVidWdTZXJ2
ZXIoJm1fZGVidWdnZXJBZ2VudC0+c2NyaXB0RGVidWdTZXJ2ZXIoKSk7CiAjZW5kaWYKIH0KIApA
QCAtMTIzLDEwICsxNTgsNiBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjp+SW5zcGVjdG9yQ29udHJv
bGxlcigpCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQo
KQogewogICAgIGRpc2Nvbm5lY3RGcm9udGVuZCgpOwotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RF
QlVHR0VSKQotICAgIG1fZG9tRGVidWdnZXJBZ2VudC5jbGVhcigpOwotICAgIG1fZGVidWdnZXJB
Z2VudC5jbGVhcigpOwotI2VuZGlmCiAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmRpc2Nv
bm5lY3QoKTsKICAgICBtX2luc3BlY3RvckNsaWVudC0+aW5zcGVjdG9yRGVzdHJveWVkKCk7CiAg
ICAgbV9pbnNwZWN0b3JDbGllbnQgPSAwOwpAQCAtMTYyLDYzICsxOTMsMjAgQEAgdm9pZCBJbnNw
ZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQogICAgIC8vIFdlIGNhbiByZWNvbm5l
Y3QgdG8gZXhpc3RpbmcgZnJvbnQtZW5kIC0+IHVubXV0ZSBzdGF0ZS4KICAgICBtX3N0YXRlLT51
bm11dGUoKTsKIAotICAgIG1fYXBwbGljYXRpb25DYWNoZUFnZW50LT5zZXRGcm9udGVuZChtX2lu
c3BlY3RvckZyb250ZW5kLmdldCgpKTsKLSAgICBtX3BhZ2VBZ2VudC0+c2V0RnJvbnRlbmQobV9p
bnNwZWN0b3JGcm9udGVuZC5nZXQoKSk7Ci0gICAgbV9kb21BZ2VudC0+c2V0RnJvbnRlbmQobV9p
bnNwZWN0b3JGcm9udGVuZC5nZXQoKSk7Ci0gICAgbV9jb25zb2xlQWdlbnQtPnNldEZyb250ZW5k
KG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwotICAgIG1fdGltZWxpbmVBZ2VudC0+c2V0RnJv
bnRlbmQobV9pbnNwZWN0b3JGcm9udGVuZC5nZXQoKSk7Ci0gICAgbV9yZXNvdXJjZUFnZW50LT5z
ZXRGcm9udGVuZChtX2luc3BlY3RvckZyb250ZW5kLmdldCgpKTsKLSNpZiBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikKLSAgICBtX2RlYnVnZ2VyQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVj
dG9yRnJvbnRlbmQuZ2V0KCkpOwotICAgIG1fcHJvZmlsZXJBZ2VudC0+c2V0RnJvbnRlbmQobV9p
bnNwZWN0b3JGcm9udGVuZC5nZXQoKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoU1FMX0RBVEFCQVNF
KQotICAgIG1fZGF0YWJhc2VBZ2VudC0+c2V0RnJvbnRlbmQobV9pbnNwZWN0b3JGcm9udGVuZC5n
ZXQoKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoRklMRV9TWVNURU0pCi0gICAgbV9maWxlU3lzdGVt
QWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwotI2VuZGlmCi0g
ICAgbV9kb21TdG9yYWdlQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0
KCkpOwotI2lmIEVOQUJMRShXT1JLRVJTKQotICAgIG1fd29ya2VyQWdlbnQtPnNldEZyb250ZW5k
KG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwotI2VuZGlmCi0gICAgbV9pbnNwZWN0b3JBZ2Vu
dC0+c2V0RnJvbnRlbmQobV9pbnNwZWN0b3JGcm9udGVuZC5nZXQoKSk7CisgICAgSW5zcGVjdG9y
RnJvbnRlbmQqIGZyb250ZW5kID0gbV9pbnNwZWN0b3JGcm9udGVuZC5nZXQoKTsKKyAgICBmb3Ig
KEFnZW50czo6aXRlcmF0b3IgaXQgPSBtX2FnZW50cy5iZWdpbigpOyBpdCAhPSBtX2FnZW50cy5l
bmQoKTsgKytpdCkKKyAgICAgICAgKCppdCktPnNldEZyb250ZW5kKGZyb250ZW5kKTsKIAogICAg
IGlmICghSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9udGVuZHMoKSkKICAgICAgICAg
U2NyaXB0Q29udHJvbGxlcjo6c2V0Q2FwdHVyZUNhbGxTdGFja0ZvclVuY2F1Z2h0RXhjZXB0aW9u
cyh0cnVlKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyb250ZW5kQ3JlYXRlZCgp
OwogCiAgICAgQVNTRVJUKG1faW5zcGVjdG9yQ2xpZW50KTsKLSAgICBtX2luc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyID0gYWRvcHRSZWYobmV3IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKAot
ICAgICAgICBtX2luc3BlY3RvckNsaWVudCwKLSAgICAgICAgbV9hcHBsaWNhdGlvbkNhY2hlQWdl
bnQuZ2V0KCksCi0gICAgICAgIG1fY3NzQWdlbnQuZ2V0KCksCi0gICAgICAgIG1fY29uc29sZUFn
ZW50LmdldCgpLAotICAgICAgICBtX2RvbUFnZW50LmdldCgpLAotI2lmIEVOQUJMRShKQVZBU0NS
SVBUX0RFQlVHR0VSKQotICAgICAgICBtX2RvbURlYnVnZ2VyQWdlbnQuZ2V0KCksCi0jZW5kaWYK
LSAgICAgICAgbV9kb21TdG9yYWdlQWdlbnQuZ2V0KCksCi0jaWYgRU5BQkxFKFNRTF9EQVRBQkFT
RSkKLSAgICAgICAgbV9kYXRhYmFzZUFnZW50LmdldCgpLAotI2VuZGlmCi0jaWYgRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgICAgIG1fZGVidWdnZXJBZ2VudC5nZXQoKSwKLSNlbmRp
ZgotI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKLSAgICAgICAgbV9maWxlU3lzdGVtQWdlbnQuZ2V0
KCksCi0jZW5kaWYKLSAgICAgICAgbV9yZXNvdXJjZUFnZW50LmdldCgpLAotICAgICAgICBtX3Bh
Z2VBZ2VudC5nZXQoKSwKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICAgICAg
bV9wcm9maWxlckFnZW50LmdldCgpLAotI2VuZGlmCi0gICAgICAgIG1fcnVudGltZUFnZW50Lmdl
dCgpLAotICAgICAgICBtX3RpbWVsaW5lQWdlbnQuZ2V0KCkKLSNpZiBFTkFCTEUoV09SS0VSUykK
LSAgICAgICAgLCBtX3dvcmtlckFnZW50LmdldCgpCi0jZW5kaWYKLSAgICApKTsKKyAgICBtX2lu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyID0gYWRvcHRSZWYobmV3IEluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyKG1faW5zcGVjdG9yQ2xpZW50KSk7CisKKyAgICBJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlciogZGlzcGF0Y2hlciA9IG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuZ2V0KCk7
CisgICAgZm9yIChBZ2VudHM6Oml0ZXJhdG9yIGl0ID0gbV9hZ2VudHMuYmVnaW4oKTsgaXQgIT0g
bV9hZ2VudHMuZW5kKCk7ICsraXQpCisgICAgICAgICgqaXQpLT5yZWdpc3RlckluRGlzcGF0Y2hl
cihkaXNwYXRjaGVyKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0
RnJvbnRlbmQoKQpAQCAtMjMyLDI5ICsyMjAsOSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmRpc2Nvbm5lY3RGcm9udGVuZCgpCiAgICAgLy8gUHJlLWRpc2Nvbm5lY3Qgc3RhdGUgd2lsbCBi
ZSB1c2VkIHRvIHJlc3RvcmUgaW5zcGVjdG9yIGFnZW50cy4KICAgICBtX3N0YXRlLT5tdXRlKCk7
CiAKLSAgICBtX2luc3BlY3RvckFnZW50LT5jbGVhckZyb250ZW5kKCk7Ci0jaWYgRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgbV9kZWJ1Z2dlckFnZW50LT5jbGVhckZyb250ZW5kKCk7
Ci0gICAgbV9kb21EZWJ1Z2dlckFnZW50LT5jbGVhckZyb250ZW5kKCk7Ci0gICAgbV9wcm9maWxl
ckFnZW50LT5jbGVhckZyb250ZW5kKCk7Ci0jZW5kaWYKLSAgICBtX2FwcGxpY2F0aW9uQ2FjaGVB
Z2VudC0+Y2xlYXJGcm9udGVuZCgpOwotICAgIG1fY29uc29sZUFnZW50LT5jbGVhckZyb250ZW5k
KCk7Ci0gICAgbV9kb21BZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwotICAgIG1fY3NzQWdlbnQtPmNs
ZWFyRnJvbnRlbmQoKTsKLSAgICBtX3RpbWVsaW5lQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKLSAg
ICBtX3Jlc291cmNlQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKLSNpZiBFTkFCTEUoU1FMX0RBVEFC
QVNFKQotICAgIG1fZGF0YWJhc2VBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwotI2VuZGlmCi0jaWYg
RU5BQkxFKEZJTEVfU1lTVEVNKQotICAgIG1fZmlsZVN5c3RlbUFnZW50LT5jbGVhckZyb250ZW5k
KCk7Ci0jZW5kaWYKLSAgICBtX2RvbVN0b3JhZ2VBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwotICAg
IG1fcGFnZUFnZW50LT5jbGVhckZyb250ZW5kKCk7Ci0jaWYgRU5BQkxFKFdPUktFUlMpCi0gICAg
bV93b3JrZXJBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwotI2VuZGlmCisgICAgZm9yIChBZ2VudHM6
Oml0ZXJhdG9yIGl0ID0gbV9hZ2VudHMuYmVnaW4oKTsgaXQgIT0gbV9hZ2VudHMuZW5kKCk7ICsr
aXQpCisgICAgICAgICgqaXQpLT5jbGVhckZyb250ZW5kKCk7CisKICAgICBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRIb3N0KCktPmNsZWFyRnJvbnRlbmQoKTsKIAogICAg
IG1faW5zcGVjdG9yRnJvbnRlbmQuY2xlYXIoKTsKQEAgLTI5NCwyNyArMjYyLDkgQEAgdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpyZXN0b3JlSW5zcGVjdG9yU3RhdGVGcm9tQ29va2llKGNvbnN0
IFN0cmluZyYgaW5zcGVjdG8KICAgICBjb25uZWN0RnJvbnRlbmQoKTsKICAgICBtX3N0YXRlLT5s
b2FkRnJvbUNvb2tpZShpbnNwZWN0b3JTdGF0ZUNvb2tpZSk7CiAKLSAgICBtX3BhZ2VBZ2VudC0+
cmVzdG9yZSgpOwotICAgIG1fZG9tQWdlbnQtPnJlc3RvcmUoKTsKLSAgICBtX3Jlc291cmNlQWdl
bnQtPnJlc3RvcmUoKTsKLSAgICBtX3RpbWVsaW5lQWdlbnQtPnJlc3RvcmUoKTsKLSAgICBtX2Nv
bnNvbGVBZ2VudC0+cmVzdG9yZSgpOwotICAgIG1fYXBwbGljYXRpb25DYWNoZUFnZW50LT5yZXN0
b3JlKCk7Ci0jaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBtX2RhdGFiYXNlQWdlbnQtPnJl
c3RvcmUoKTsKLSNlbmRpZgotI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKLSAgICBtX2ZpbGVTeXN0
ZW1BZ2VudC0+cmVzdG9yZSgpOwotI2VuZGlmCi0gICAgbV9kb21TdG9yYWdlQWdlbnQtPnJlc3Rv
cmUoKTsKLSNpZiBFTkFCTEUoV09SS0VSUykKLSAgICBtX3dvcmtlckFnZW50LT5yZXN0b3JlKCk7
Ci0jZW5kaWYKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBtX2RlYnVnZ2Vy
QWdlbnQtPnJlc3RvcmUoKTsKLSAgICBtX3Byb2ZpbGVyQWdlbnQtPnJlc3RvcmUoKTsKLSNlbmRp
ZgotICAgIG1faW5zcGVjdG9yQWdlbnQtPnJlc3RvcmUoKTsKKyAgICBmb3IgKEFnZW50czo6aXRl
cmF0b3IgaXQgPSBtX2FnZW50cy5iZWdpbigpOyBpdCAhPSBtX2FnZW50cy5lbmQoKTsgKytpdCkK
KyAgICAgICAgKCppdCktPnJlc3RvcmUoKTsKKyAgICBtX2luc3BlY3RvckFnZW50LT5lbWl0Q29t
bWl0TG9hZElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0UHJv
Y2Vzc0lkKGxvbmcgcHJvY2Vzc0lkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmgKaW5kZXggZjg1NWM3MTczZDM5MDE3OGZhMWQwNzk2NmQ4MGE5ZWMz
ZTdjNzk5OC4uZmU3N2E0YTRlMGE0ZWM3MDZjZDMyMDBiNWYwM2YwODdhYmYwMzg5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC00NSwy
NSArNDUsMTUgQEAgY2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogY2xhc3MgSW5zcGVjdG9y
QWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ7CiBjbGFzcyBJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjsKLWNsYXNzIEluc3BlY3RvckNTU0FnZW50OworY2xhc3Mg
SW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlOwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwotY2xh
c3MgSW5zcGVjdG9yQ29uc29sZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQ7Ci1jbGFz
cyBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OwotY2xhc3MgSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50OwotY2xhc3MgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ7CiBjbGFzcyBJbnNwZWN0
b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50OwotY2xhc3MgSW5zcGVj
dG9yUGFnZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDsKIGNsYXNzIEluc3Bl
Y3RvclJlc291cmNlQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JSdW50aW1lQWdlbnQ7CiBjbGFzcyBJ
bnNwZWN0b3JTdGF0ZTsKLWNsYXNzIEluc3BlY3RvclN0b3JhZ2VBZ2VudDsKLWNsYXNzIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JXb3JrZXJBZ2VudDsKIGNsYXNzIElu
c3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBQYWdlOwogY2xhc3MgUG9zdFdvcmtlck5vdGlmaWNh
dGlvblRvRnJvbnRlbmRUYXNrOwpAQCAtMTIwLDMwICsxMTAsMTMgQEAgcHJpdmF0ZToKICAgICBP
d25QdHI8SW5zdHJ1bWVudGluZ0FnZW50cz4gbV9pbnN0cnVtZW50aW5nQWdlbnRzOwogICAgIE93
blB0cjxJbmplY3RlZFNjcmlwdE1hbmFnZXI+IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogICAg
IE93blB0cjxJbnNwZWN0b3JTdGF0ZT4gbV9zdGF0ZTsKLSAgICBPd25QdHI8SW5zcGVjdG9yQWdl
bnQ+IG1faW5zcGVjdG9yQWdlbnQ7CiAKLSAgICBPd25QdHI8SW5zcGVjdG9yUGFnZUFnZW50PiBt
X3BhZ2VBZ2VudDsKLSAgICBPd25QdHI8SW5zcGVjdG9yRE9NQWdlbnQ+IG1fZG9tQWdlbnQ7Ci0g
ICAgT3duUHRyPEluc3BlY3RvckNTU0FnZW50PiBtX2Nzc0FnZW50OwotI2lmIEVOQUJMRShTUUxf
REFUQUJBU0UpCi0gICAgT3duUHRyPEluc3BlY3RvckRhdGFiYXNlQWdlbnQ+IG1fZGF0YWJhc2VB
Z2VudDsKLSNlbmRpZgotI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKLSAgICBPd25QdHI8SW5zcGVj
dG9yRmlsZVN5c3RlbUFnZW50PiBtX2ZpbGVTeXN0ZW1BZ2VudDsKLSNlbmRpZgotICAgIE93blB0
cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IG1fZG9tU3RvcmFnZUFnZW50OwotICAgIE93blB0
cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBtX3RpbWVsaW5lQWdlbnQ7Ci0gICAgT3duUHRyPElu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudD4gbV9hcHBsaWNhdGlvbkNhY2hlQWdlbnQ7Ci0g
ICAgUmVmUHRyPEluc3BlY3RvclJlc291cmNlQWdlbnQ+IG1fcmVzb3VyY2VBZ2VudDsKLSAgICBP
d25QdHI8SW5zcGVjdG9yUnVudGltZUFnZW50PiBtX3J1bnRpbWVBZ2VudDsKLSAgICBPd25QdHI8
SW5zcGVjdG9yQ29uc29sZUFnZW50PiBtX2NvbnNvbGVBZ2VudDsKKyAgICBJbnNwZWN0b3JBZ2Vu
dCogbV9pbnNwZWN0b3JBZ2VudDsKKyAgICBJbnNwZWN0b3JET01BZ2VudCogbV9kb21BZ2VudDsK
KyAgICBJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiBtX3Jlc291cmNlQWdlbnQ7CiAjaWYgRU5BQkxF
KEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgT3duUHRyPEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+
IG1fZGVidWdnZXJBZ2VudDsKLSAgICBPd25QdHI8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4g
bV9kb21EZWJ1Z2dlckFnZW50OwotICAgIE93blB0cjxJbnNwZWN0b3JQcm9maWxlckFnZW50PiBt
X3Byb2ZpbGVyQWdlbnQ7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoV09SS0VSUykKLSAgICBPd25QdHI8
SW5zcGVjdG9yV29ya2VyQWdlbnQ+IG1fd29ya2VyQWdlbnQ7CisgICAgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudCogbV9kZWJ1Z2dlckFnZW50OworICAgIEluc3BlY3RvclByb2ZpbGVyQWdlbnQqIG1f
cHJvZmlsZXJBZ2VudDsKICNlbmRpZgogCiAgICAgUmVmUHRyPEluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyPiBtX2luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOwpAQCAtMTUyLDYgKzEyNSw4IEBA
IHByaXZhdGU6CiAgICAgUGFnZSogbV9wYWdlOwogICAgIEluc3BlY3RvckNsaWVudCogbV9pbnNw
ZWN0b3JDbGllbnQ7CiAgICAgYm9vbCBtX29wZW5pbmdGcm9udGVuZDsKKyAgICB0eXBlZGVmIFZl
Y3RvcjxPd25QdHI8SW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlPiA+IEFnZW50czsKKyAgICBB
Z2VudHMgbV9hZ2VudHM7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmNwcAppbmRleCAxYTI1MTFlZDc0MGQ1Y2VhNjI2ZjM2NzdlNTY3ODFm
MmExYmFiMTVmLi44NjM5YzU2NzdjOWUxY2E1NDc5YTUwNmMyNTc3NzMzNmQ0MTVkNmU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTE3
Miw3ICsxNzIsNyBAQCB2b2lkIFJldmFsaWRhdGVTdHlsZUF0dHJpYnV0ZVRhc2s6Om9uVGltZXIo
VGltZXI8UmV2YWxpZGF0ZVN0eWxlQXR0cmlidXRlVGFzaz4qKQogfQogCiBJbnNwZWN0b3JET01B
Z2VudDo6SW5zcGVjdG9yRE9NQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvckNsaWVudCog
Y2xpZW50LCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFu
YWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50KGlu
c3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQorICAgIDogSW5zcGVjdG9yQmFzZUFn
ZW50PEluc3BlY3RvckRPTUFnZW50PihpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0
ZSkKICAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fY2xpZW50KGNsaWVudCkK
ICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggNTI1Zjhh
MWI1MjhmN2E0ODEzYjRiMGQ5MGIyNDg0ZTUwOTRhODgxNi4uNTAzMDlkOGMzOGUxMDlmZDU2MGEz
YmZiNGM1ZWZmMDdmNGVmZWE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmgKQEAgLTg3LDcgKzg3LDcgQEAgc3RydWN0IEV2ZW50TGlzdGVuZXJJbmZv
IHsKICAgICBjb25zdCBFdmVudExpc3RlbmVyVmVjdG9yIGV2ZW50TGlzdGVuZXJWZWN0b3I7CiB9
OwogCi1jbGFzcyBJbnNwZWN0b3JET01BZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQg
eworY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PElu
c3BlY3RvckRPTUFnZW50PiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yRE9N
QWdlbnQpOwogcHVibGljOgogICAgIHN0cnVjdCBET01MaXN0ZW5lciB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKaW5k
ZXggYTM2OGZlZmU0Y2YxYzNiOGUzNDdiZWYyZTM5NjgzZGFkZTgwYTExZC4uODNlOWNkYTdiYjE3
N2YwNjJkZjJiNjM2ZTdhZjVlYzQ1NjE4YzAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcApAQCAtNzUsNyArNzUs
NyBAQCBQYXNzT3duUHRyPEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ+IEluc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZQogfQogCiBJbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50OjpJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5zcGVjdG9y
RE9NQWdlbnQqIGRvbUFnZW50LCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50
LCBJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQpCi0gICAgOiBJbnNwZWN0b3JCYXNlQWdl
bnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUpCisgICAgOiBJbnNwZWN0b3JC
YXNlQWdlbnQ8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4oaW5zdHJ1bWVudGluZ0FnZW50cywg
aW5zcGVjdG9yU3RhdGUpCiAgICAgLCBtX2RvbUFnZW50KGRvbUFnZW50KQogICAgICwgbV9kZWJ1
Z2dlckFnZW50KGRlYnVnZ2VyQWdlbnQpCiAgICAgLCBtX2luc3BlY3RvckFnZW50KGluc3BlY3Rv
ckFnZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50LmgKaW5kZXggZDJkMmYyZWI3M2FhMDkxNTEyZDY2OWY0NzRlYjE2YmMzZmVh
ZjNkZC4uOTI2YTNiYjU3YzdkNjdiYjlhMmM2OGRkM2IyYWY2NzJhYmNmZWNmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5o
CkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIE5vZGU7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3Ry
aW5nOwogCi1jbGFzcyBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50IDogcHVibGljIEluc3BlY3Rv
ckJhc2VBZ2VudCwgcHVibGljIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6Okxpc3RlbmVyIHsKK2Ns
YXNzIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50
PEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6TGlzdGVuZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQpOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUq
LCBJbnNwZWN0b3JET01BZ2VudCosIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqLCBJbnNwZWN0b3JB
Z2VudCopOwpAQCAtNzksOSArNzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsU2VuZFhNTEh0
dHBSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIHBhdXNlT25OYXRpdmVFdmVu
dElmTmVlZGVkKGNvbnN0IFN0cmluZyYgY2F0ZWdvcnlUeXBlLCBjb25zdCBTdHJpbmcmIGV2ZW50
TmFtZSwgYm9vbCBzeW5jaHJvbm91cyk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQo
SW5zcGVjdG9yRnJvbnRlbmQqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgp
OwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCkgeyB9CiAKIHByaXZhdGU6CiAgICAgSW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUq
LCBJbnNwZWN0b3JET01BZ2VudCosIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqLCBJbnNwZWN0b3JB
Z2VudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50LmNwcAppbmRleCAyZDA2OTE4ZTBjYjM3MGE3OGNkNTJiNzg0NTgyNzc1YWNk
NGIyZTA1Li5hM2UwMjI3YWE1Mzg1ZTQ1Njc4YjhhZDZmYTU5ZjA0MTQzMjkwNWYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
LmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgY29uc3QgY2hhciBkb21TdG9yYWdlQWdlbnRF
bmFibGVkW10gPSAiZG9tU3RvcmFnZUFnZW50RW5hYmxlZCI7CiB0eXBlZGVmIEhhc2hNYXA8aW50
LCBSZWZQdHI8SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlPiA+IERPTVN0b3JhZ2VSZXNvdXJj
ZXNNYXA7CiAKIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6SW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0
YXRlKiBzdGF0ZSkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBzdGF0ZSkKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQogICAgICwgbV9mcm9udGVuZCgwKQogICAg
ICwgbV9lbmFibGVkKGZhbHNlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCmluZGV4IDVmN2VkMDI2MzU0ZDk0ZDVlZGUxMzhh
MmRjYWY0MWNlNmU1M2RiMGUuLmU4N2ZmZTIzMzc4ODJlYTRmOThmMDdmNGE3MDNkMWViY2NkMDg3
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgU3RvcmFnZUFyZWE7CiAKIHR5cGVk
ZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQg
OiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yU3RhdGUqIHN0YXRlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAppbmRleCBkNjZhOGJkYzkwYTQ5NjYxYjhi
NzliOWNiMGExN2U1NDBmYmQ3MmYyLi40NDlhMGNlOTY1Njc4NWJkZjY5NDk2YjFiNjlmODQ2ZTY2
NDc3ZDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0
YWJhc2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRh
dGFiYXNlQWdlbnQuY3BwCkBAIC0yNDMsNyArMjQzLDcgQEAgdm9pZCBJbnNwZWN0b3JEYXRhYmFz
ZUFnZW50OjpjbGVhclJlc291cmNlcygpCiB9CiAKIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6Oklu
c3BlY3RvckRhdGFiYXNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50KGlu
c3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3Bl
Y3RvckRhdGFiYXNlQWdlbnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQogICAgICwgbV9l
bmFibGVkKGZhbHNlKQogewogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9y
RGF0YWJhc2VBZ2VudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudC5oCmluZGV4IGM1ZDQwZjhjYjUyMzllNDZkOWUyNDBjOTk2Nzg5
NmYxODdkYmNiY2UuLjVlMDhmYTg5YmE3MjZmM2Q2NjI1ZThjNmZlODEyZjNlNzNjMWZkZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
aApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogCiB0eXBlZGVm
IFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudCA6IHB1
YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQgeworY2xhc3MgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudCA6
IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRGF0YWJhc2VBZ2VudD4gewogcHVi
bGljOgogICAgIGNsYXNzIEZyb250ZW5kUHJvdmlkZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBjY2ZlY2YwZWEz
NDc1ZTZiNzExYTRjMzc4YzQzNjYyMjU5Y2QzYTNmLi5jZmVjYWVjOGJmMmFmNzI4ZjA1N2I0MmIz
OWNhMTdlZDc2YTM0OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyBjb25zdCBj
aGFyIGphdmFTY3JpcHRCcmVha3BvaW50c1tdID0gImphdmFTY3JpcHRCcmVha29waW50cyI7CiBj
b25zdCBjaGFyKiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpiYWNrdHJhY2VPYmplY3RHcm91cCA9
ICJiYWNrdHJhY2Utb2JqZWN0LWdyb3VwIjsKIAogSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6SW5z
cGVjdG9yRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdl
ciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50KGluc3Ry
dW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50
PEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0
YXRlKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KQogICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9wYXVzZWRTY3JpcHRTdGF0ZSgwKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5k
ZXggYjkwNTBjOWZkYTU5Yzc5MDFhMTBiMjQ3OWE3MjJhNGU5MjE2NmY3Zi4uMTU5MDgwM2IzZmI5
NjdhMTUyZjRjOTkwYTI1YWQxMzEyNDgxMDc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC01OCw3ICs1OCw3IEBAIGNsYXNz
IFNjcmlwdFZhbHVlOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5z
cGVjdG9yRGVidWdnZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQsIHB1YmxpYyBT
Y3JpcHREZWJ1Z0xpc3RlbmVyIHsKK2NsYXNzIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQgOiBwdWJs
aWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+LCBwdWJsaWMgU2Ny
aXB0RGVidWdMaXN0ZW5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBiYWNrdHJhY2VPYmplY3RHcm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKaW5kZXggYTY0YTFi
MzMxMGFmOWMwNmIyNWI4ZmIyYzAyZmIyOThlYTQ2NzRjMi4uOTZmMDNiNjBkYWY0N2M4ODcyNjIy
MTNlYjRhN2NlZjNmODFkM2FkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lk
IEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6cmVzdG9yZSgpCiB9CiAKIEluc3BlY3RvckZpbGVT
eXN0ZW1BZ2VudDo6SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKLSAgICA6IEluc3Bl
Y3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSksCisgICAgOiBJbnNwZWN0
b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50PihpbnN0cnVtZW50aW5nQWdlbnRz
LCBzdGF0ZSksCiAgICAgICBtX2Zyb250ZW5kKDApLAogICAgICAgbV9lbmFibGVkKGZhbHNlKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0
ZW1BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1B
Z2VudC5oCmluZGV4IGVmYTU1ODNlMGY1YWVlYTIzN2IyZDJkOGYwODRiNjQ5MTRiZDQ0OTYuLjAw
M2E5YzU1OWY4ZTE2NjA5MmI0OWU4ZmJiYTY1OGRjNzQ2ODU1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JTdGF0ZTsK
IGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiAKLWNsYXNzIEluc3BlY3RvckZpbGVTeXN0ZW1B
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQgeworY2xhc3MgSW5zcGVjdG9yRmlsZVN5
c3RlbUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQ+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JGaWxlU3lz
dGVtQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqKTsK
ICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXgg
ZTNlNTg2OWY2ODhhMWI0N2ZkZGNmMGJkYzZiZjE4MzA1MmY5ZDhiZS4uY2QzMDMzYmVkMTBmNmIw
MzllMjk1MjgxOTc3ZmIwZmM0ZDc2ZWE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTEwOCwxMiArMTA4LDYg
QEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsZWFyV2luZG93T2JqZWN0SW5X
b3JsZEltcGwoSW5zdHJ1bWVudGluZ0FnZW4KICNlbmRpZgogfQogCi12b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6aW5zcGVjdGVkUGFnZURlc3Ryb3llZEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKLXsKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGlu
c3BlY3RvckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQWdlbnQoKSkKLSAg
ICAgICAgaW5zcGVjdG9yQWdlbnQtPmluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKTsKLX0KLQogdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBOb2RlKiBub2RlLCBOb2RlKiBwYXJl
bnQpCiB7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggZDk2NmI3
NWEwYmNmNmMwMTBmMjk4M2QxMjAzM2M0Y2QwNzBhNDVhNC4uMzk1YjZkMzk2YjVjMTlmYzk5YWVj
YTg1MDEwNTk5OTliMjEzYTMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtNzcsNyArNzcsNiBAQCB0eXBlZGVmIHBh
aXI8SW5zdHJ1bWVudGluZ0FnZW50cyosIGludD4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llOwogY2xhc3MgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgdm9pZCBkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoRnJhbWUqLCBET01XcmFwcGVyV29y
bGQqKTsKLSAgICBzdGF0aWMgdm9pZCBpbnNwZWN0ZWRQYWdlRGVzdHJveWVkKFBhZ2UqKTsKIAog
ICAgIHN0YXRpYyB2b2lkIHdpbGxJbnNlcnRET01Ob2RlKERvY3VtZW50KiwgTm9kZSosIE5vZGUq
IHBhcmVudCk7CiAgICAgc3RhdGljIHZvaWQgZGlkSW5zZXJ0RE9NTm9kZShEb2N1bWVudCosIE5v
ZGUqKTsKQEAgLTIxNSw3ICsyMTQsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgc3RhdGljIHZvaWQgZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqLCBET01XcmFwcGVyV29ybGQqKTsKLSAgICBz
dGF0aWMgdm9pZCBpbnNwZWN0ZWRQYWdlRGVzdHJveWVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
Kik7CiAKICAgICBzdGF0aWMgdm9pZCB3aWxsSW5zZXJ0RE9NTm9kZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIE5vZGUqLCBOb2RlKiBwYXJlbnQpOwogICAgIHN0YXRpYyB2b2lkIGRpZEluc2Vy
dERPTU5vZGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBOb2RlKik7CkBAIC0zNjIsMTQgKzM2
MCw2IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xlYXJXaW5k
b3dPYmplY3RJbldvcmxkKEZyYW1lKiBmcmFtZSwKICNlbmRpZgogfQogCi1pbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoUGFnZSogcGFn
ZSkKLXsKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSkp
Ci0gICAgICAgIGluc3BlY3RlZFBhZ2VEZXN0cm95ZWRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMp
OwotI2VuZGlmCi19Ci0KIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bEluc2VydERPTU5vZGUoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBub2RlLCBOb2RlKiBwYXJl
bnQpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggNzA2MTM2M2QxMmY1MzAzOGU4M2U1OWNj
NjhkZDM4MTNjMmUyMGIxMy4uOGEwMzgwZGNkNTIyZTIwMTc3NjQzOWE5NDgwNDA3YjEyMGRlZmM1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKQEAgLTI2Miw3ICsyNjIsNyBAQCBTdHJpbmcgSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRS
ZXNvdXJjZVR5cGVTdHJpbmcoY29uc3QgQ2FjaGVkUmVzb3VyY2UmIGNhY2hlZAogfQogCiBJbnNw
ZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBwYWdlLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9y
U3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAg
IDogSW5zcGVjdG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRl
KQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclBhZ2VBZ2VudD4oaW5zdHJ1bWVu
dGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUpCiAgICAgLCBtX3BhZ2UocGFnZSkKICAgICAsIG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fZnJv
bnRlbmQoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
aAppbmRleCBlNjEzNDk4MWFiMDNkNTJmZTdjOGZjMDgwMDExMzE5YzNmMzRhMWY5Li4yZmEyMWMw
NmNjZDFiM2RhOTZkMzY2Yzc0M2RjM2E4MmVhMDMwMmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC02MCw3ICs2MCw3IEBAIGNsYXNzIFNo
YXJlZEJ1ZmZlcjsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKLWNsYXNzIEluc3Bl
Y3RvclBhZ2VBZ2VudCA6IEluc3BlY3RvckJhc2VBZ2VudCB7CitjbGFzcyBJbnNwZWN0b3JQYWdl
QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclBhZ2VBZ2VudD4gewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvclBhZ2VBZ2VudCk7CiBwdWJsaWM6CiAg
ICAgZW51bSBSZXNvdXJjZVR5cGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGMwYWYxNmM1ODVhZjg4YzE4YzA2MjBi
ODI4M2M5NGM4ZTE5YzIzYzUuLmVjYzZjODFjZDRhMzQ4YTEzMTYxOGQzODE1NDNkMjY0Y2QzNjkz
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxl
ckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxl
ckFnZW50PiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0EKIH0K
IAogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQq
IGNvbnNvbGVBZ2VudCwgUGFnZSogaW5zcGVjdGVkUGFnZSwgSW5zcGVjdG9yU3RhdGUqIGluc3Bl
Y3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikK
LSAgICA6IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JT
dGF0ZSkKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JQcm9maWxlckFnZW50Pihp
bnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkKICAgICAsIG1fY29uc29sZUFnZW50
KGNvbnNvbGVBZ2VudCkKICAgICAsIG1faW5zcGVjdGVkUGFnZShpbnNwZWN0ZWRQYWdlKQogICAg
ICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKaW5kZXgg
YjBlYjBmYTM4YWNjMjJmZjNkMGZlYTljMTg3YjRkMmU1MDBlYTc1MC4uMTQwNjRjNjY1YWY2ZTBl
N2YxOTM5NzdiMDk3MWMxNzQ3YmY0NDcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIFNj
cmlwdFByb2ZpbGU7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNw
ZWN0b3JQcm9maWxlckFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudCB7CitjbGFzcyBJ
bnNwZWN0b3JQcm9maWxlckFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0
b3JQcm9maWxlckFnZW50PiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5n
QWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgUGFnZSosIEluc3BlY3RvclN0YXRlKiwg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5kZXggMzgxMzI4NmVmODkzNTk1NGQ2YjUy
ZjExYWE2ZDRjOWE4YTc1MDc2Yi4uNmMxMDJjY2QyM2RmNzJiNWVkMDhiOGRmYjM1Njg2MDYyYTMy
MzE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmNwcApAQCAtNTMwLDcgKzUzMCw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudDo6bWFpbkZyYW1lTmF2aWdhdGVkKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiB9CiAKIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJlc291cmNlQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdl
bnQsIEluc3BlY3RvckNsaWVudCogY2xpZW50LCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCi0gICAg
OiBJbnNwZWN0b3JCYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCisgICAgOiBJ
bnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4oaW5zdHJ1bWVudGluZ0Fn
ZW50cywgc3RhdGUpCiAgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCiAgICAgLCBtX2NsaWVu
dChjbGllbnQpCiAgICAgLCBtX2Zyb250ZW5kKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAppbmRleCBiMWI0OWY2M2ZlOWZmNjQ5NGRh
MGI5MmI4MjYwMDU0ODQ1MjBkYWMxLi4yODI4OTY3OTc5N2IzZjhhMWE3ZTQxZDk5NDRmYjk3YTMy
YWZiYjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmgKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVu
ZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTczLDExICs3MywxMSBAQCBj
bGFzcyBXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZTsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JT
dHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvclJlc291cmNlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9y
QmFzZUFnZW50LCBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JSZXNvdXJjZUFnZW50PiB7Citj
bGFzcyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JD
bGllbnQqIGNsaWVudCwgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQorICAgIHN0YXRpYyBQYXNzT3du
UHRyPEluc3BlY3RvclJlc291cmNlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVj
dG9yQ2xpZW50KiBjbGllbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudChpbnN0cnVtZW50aW5n
QWdlbnRzLCBwYWdlQWdlbnQsIGNsaWVudCwgc3RhdGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2VB
Z2VudCwgY2xpZW50LCBzdGF0ZSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9u
dGVuZChJbnNwZWN0b3JGcm9udGVuZCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAppbmRleCBmNGIyMWU3YjNjODYxNmIxZmMzMGMz
NTIzMjZiNmIwMTk3Y2JjMDJjLi5lNmRkMDZjYThmZWE2NWM2OTlhNzVlYWU2NjgwZDg1NmVhMGM3
NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgYm9vbCBhc0Jvb2woY29uc3QgYm9v
bCogY29uc3QgYikKIH0KIAogSW5zcGVjdG9yUnVudGltZUFnZW50OjpJbnNwZWN0b3JSdW50aW1l
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
U3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdl
cikKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkK
KyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JSdW50aW1lQWdlbnQ+KGluc3RydW1l
bnRpbmdBZ2VudHMsIHN0YXRlKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKQogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgICwg
bV9zY3JpcHREZWJ1Z1NlcnZlcigwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5oCmluZGV4IGVhNTQ4YWM0ZjdjZWRiOTU5N2YzYzljMDRiZDcx
M2E2Y2Q2ZWQ5MzcuLjkxNDVjNmM4YTIyN2U5ZWNlMDY5ZmUwN2EyY2Q3ZTg3ZmUxYjI4ZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgK
QEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgV29ya2VyQ29udGV4dDsKIAogdHlwZWRlZiBTdHJpbmcg
RXJyb3JTdHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvclJ1bnRpbWVBZ2VudCA6IHB1YmxpYyBJbnNw
ZWN0b3JCYXNlQWdlbnQgeworY2xhc3MgSW5zcGVjdG9yUnVudGltZUFnZW50IDogcHVibGljIElu
c3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JSdW50aW1lQWdlbnQ+IHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShJbnNwZWN0b3JSdW50aW1lQWdlbnQpOwogcHVibGljOgogICAgIHZpcnR1YWwg
fkluc3BlY3RvclJ1bnRpbWVBZ2VudCgpOwpAQCAtNzgsMTAgKzc4LDYgQEAgcHVibGljOgogICAg
IHZvaWQgcmVsZWFzZU9iamVjdEdyb3VwKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmpl
Y3RHcm91cCk7CiAgICAgdm9pZCBydW4oRXJyb3JTdHJpbmcqKTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBj
bGVhckZyb250ZW5kKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmUoKSB7IH0KLQogI2lm
IEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIHZvaWQgc2V0U2NyaXB0RGVidWdTZXJ2
ZXIoU2NyaXB0RGVidWdTZXJ2ZXIqKTsKICNpZiBFTkFCTEUoV09SS0VSUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCAx
ZGRlMDAwNTQ0ZGVhYWRjNTNhOGNhYjE5NWYzOGJkZDhiODFjODFjLi5jYzI0YjllMTRhOWE3YjFl
ZDFmMDBmNDBkYzRhZGYxODEzZTk1MGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC00MDAsNyArNDAwLDcgQEAgdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoY29uc3Qg
U3RyaW5nJiB0eXBlKQogfQogCiBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3Bl
Y3RvclN0YXRlKiBzdGF0ZSkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5n
QWdlbnRzLCBzdGF0ZSkKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50PihpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKICAgICAsIG1fZnJvbnRlbmQoMCkK
ICAgICAsIG1faWQoMSkKICAgICAsIG1fbWF4Q2FsbFN0YWNrRGVwdGgoNSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IDFhNTIw
M2M5ODY1MGJjMWEwMGZjYmM1Yzg0ZWE1ZjE1ZTk3MTFiMDkuLjc4YWYwMmQzOGFhMGJlYjk4M2Rm
OWI2ZDNmOGY5NjlmNDFlZWQ2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBSZXNvdXJj
ZVJlc3BvbnNlOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQsIFNjcmlwdEdDRXZl
bnRMaXN0ZW5lciB7CitjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50IDogcHVibGljIEluc3Bl
Y3RvckJhc2VBZ2VudDxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiwgU2NyaXB0R0NFdmVudExpc3Rl
bmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JUaW1lbGluZUFnZW50KTsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBj
cmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
U3RhdGUqIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvcldvcmtlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5jcHAKaW5kZXggMjU1NzQ1MDUzNDA0M2RkN2YxYTFkODU3ZDE5NThkNzk3Mjk2
M2RjYS4uOWI3MjkwYzhkZDhjMTViMzVjMzUwYTRjZTFlZTc2MzJmY2YyOWQyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCkBAIC0x
MTEsNyArMTExLDcgQEAgUGFzc093blB0cjxJbnNwZWN0b3JXb3JrZXJBZ2VudD4gSW5zcGVjdG9y
V29ya2VyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnQKIH0KIAogSW5zcGVjdG9yV29y
a2VyQWdlbnQ6Okluc3BlY3RvcldvcmtlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSkKLSAgICA6IElu
c3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkKKyAg
ICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JXb3JrZXJBZ2VudD4oaW5zdHJ1bWVudGlu
Z0FnZW50cywgaW5zcGVjdG9yU3RhdGUpCiAgICAgLCBtX2luc3BlY3RvckZyb250ZW5kKDApCiB7
CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JXb3JrZXJBZ2VudCh0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgK
aW5kZXggZjc1N2NhYTI3MzNkNDc2MjUxOWE5ZGYyNzI5MGMxMWQ1YWZiMjBhMS4uNTk2ZmYxNmFm
MzM1ZTI1NmE1ZWQ5MjkyNjNjMGUxMDEwMTFmNGE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3Mg
V29ya2VyQ29udGV4dFByb3h5OwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xh
c3MgSW5zcGVjdG9yV29ya2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50IHsKK2Ns
YXNzIEluc3BlY3RvcldvcmtlckFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNw
ZWN0b3JXb3JrZXJBZ2VudD4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3Bl
Y3RvcldvcmtlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0
YXRlKik7CiAgICAgfkluc3BlY3RvcldvcmtlckFnZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaAppbmRleCBhOTE0NzUyNzBlZmQ0YWUxZTM1MTMwMGE1
MTYxMWVmYjkxZDIzYWExLi5iYjQ4ZmFlYmFhZmFkYWRmOTYxMDY2M2U3MWU0MjhmZDY5ZDkzMGI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmgKQEAgLTMy
LDYgKzMyLDcgQEAKICNkZWZpbmUgUGFnZUNvbnNvbGVBZ2VudF9oCiAKICNpbmNsdWRlICJJbnNw
ZWN0b3JDb25zb2xlQWdlbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKIApAQCAtNDMsMTAgKzQ0LDE0IEBAIGNsYXNzIEluc3BlY3RvckRP
TUFnZW50OwogY2xhc3MgUGFnZUNvbnNvbGVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JDb25zb2xl
QWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25zb2xlQWdlbnQpOwogcHVi
bGljOgotICAgIFBhZ2VDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rv
ckFnZW50KiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0
b3JET01BZ2VudCopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhZ2VDb25zb2xlQWdlbnQ+IGNy
ZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JB
Z2VudCogYWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFnZUNvbnNvbGVBZ2VudChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBhZ2VudCwgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlciwgZG9tQWdl
bnQpKTsKKyAgICB9CiAgICAgdmlydHVhbCB+UGFnZUNvbnNvbGVBZ2VudCgpOwogCiBwcml2YXRl
OgorICAgIFBhZ2VDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckFn
ZW50KiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JE
T01BZ2VudCopOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhck1lc3NhZ2VzKEVycm9yU3RyaW5nKik7
CiAgICAgdmlydHVhbCB2b2lkIGFkZEluc3BlY3RlZE5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9k
ZUlkKTsKICAgICB2aXJ0dWFsIGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKaW5kZXggYjVjNDFjNzg0NjVm
OTUzYWQzZTc0ZTAzN2VjNTgyNGUzMGE2OTg0Zi4uZmZlMjkwY2I0MDI2MzU2Yzg4YWZiZmNhMDQ5
NzU1YzEzNDU0Y2YwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VS
dW50aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVB
Z2VudC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1
ZGUgIkluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsMTAgKzQzLDE1IEBAIGNsYXNzIFBhZ2U7
CiAKIGNsYXNzIFBhZ2VSdW50aW1lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFnZW50
IHsKIHB1YmxpYzoKLSAgICBQYWdlUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJ
bnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIFBhZ2UqLCBJbnNwZWN0b3JQ
YWdlQWdlbnQqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxQYWdlUnVudGltZUFnZW50PiBjcmVh
dGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3Rh
dGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwg
UGFnZSogcGFnZSwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VSdW50aW1lQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50
cywgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlciwgcGFnZSwgcGFnZUFnZW50KSk7CisgICAg
fQogICAgIHZpcnR1YWwgflBhZ2VSdW50aW1lQWdlbnQoKTsKIAogcHJpdmF0ZToKKyAgICBQYWdl
UnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVj
dGVkU2NyaXB0TWFuYWdlciosIFBhZ2UqLCBJbnNwZWN0b3JQYWdlQWdlbnQqKTsKKwogICAgIHZp
cnR1YWwgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlRm9yRnJhbWVJZChjb25zdCBTdHJpbmcmIGZy
YW1lSWQpOwogICAgIHZpcnR1YWwgU2NyaXB0U3RhdGUqIGdldERlZmF1bHRJbnNwZWN0ZWRTdGF0
ZSgpOwogICAgIFBhZ2UqIG1faW5zcGVjdGVkUGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaAppbmRleCAzNjBlY2E3YjlhYWU0ODVlN2ZlZDhmMDk5
M2M5NmI3MTE1MzZkYzJlLi42ZjYwZDQyMjBjMGJhODVhOGFhNzJkYjY2NmZiZmY1ZmZjNjQzNjdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oCkBA
IC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFdvcmtlckNvbnNvbGVBZ2VudF9oCiAKICNpbmNsdWRl
ICJJbnNwZWN0b3JDb25zb2xlQWdlbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgRU5BQkxFKFdPUktFUlMpCiAKQEAgLTQwLDEwICs0
MSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBXb3JrZXJDb25zb2xlQWdlbnQgOiBw
dWJsaWMgSW5zcGVjdG9yQ29uc29sZUFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShX
b3JrZXJDb25zb2xlQWdlbnQpOwogcHVibGljOgotICAgIFdvcmtlckNvbnNvbGVBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIq
KTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxXb3JrZXJDb25zb2xlQWdlbnQ+IGNyZWF0ZShJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3Rh
dGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJDb25zb2xlQWdlbnQoaW5zdHJ1bWVu
dGluZ0FnZW50cywgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOworICAgIH0KICAgICB2
aXJ0dWFsIH5Xb3JrZXJDb25zb2xlQWdlbnQoKTsKIAogcHJpdmF0ZToKKyAgICBXb3JrZXJDb25z
b2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKik7CiAgICAgdmlydHVhbCB2b2lkIGFkZEluc3BlY3RlZE5vZGUoRXJyb3JT
dHJpbmcqLCBpbnQgbm9kZUlkKTsKICAgICB2aXJ0dWFsIGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5h
YmxlZCgpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA3YTAxNmIwNTI1YjA5MTM4MTQ5MDlkOTJjYzE5
YjUwZjJmZjJkNzE2Li44YjVmNGE3OWI2NzhhNjY3MzcwZDgwNTc1MTkwNjU5MWRjOGE5ODI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNv
bnRyb2xsZXIuY3BwCkBAIC05MSwxMiArOTEsMTQgQEAgV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
cjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXgK
ICAgICAsIG1fc3RhdGUoYWRvcHRQdHIobmV3IEluc3BlY3RvclN0YXRlKG1fc3RhdGVDbGllbnQu
Z2V0KCkpKSkKICAgICAsIG1faW5zdHJ1bWVudGluZ0FnZW50cyhhZG9wdFB0cihuZXcgSW5zdHJ1
bWVudGluZ0FnZW50cygpKSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKEluamVjdGVk
U2NyaXB0TWFuYWdlcjo6Y3JlYXRlRm9yV29ya2VyKCkpCit7CisKICNpZiBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikKLSAgICAsIG1fZGVidWdnZXJBZ2VudChXb3JrZXJEZWJ1Z2dlckFnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCB3b3Jr
ZXJDb250ZXh0LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpCisgICAgbV9kZWJ1Z2dl
ckFnZW50ID0gV29ya2VyRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50
cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgd29ya2VyQ29udGV4dCwgbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXIuZ2V0KCkpOwogI2VuZGlmCi0gICAgLCBtX3J1bnRpbWVBZ2VudChhZG9wdFB0cihuZXcg
V29ya2VyUnVudGltZUFnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5n
ZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHdvcmtlckNvbnRleHQpKSkKLSAg
ICAsIG1fY29uc29sZUFnZW50KGFkb3B0UHRyKG5ldyBXb3JrZXJDb25zb2xlQWdlbnQobV9pbnN0
cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFu
YWdlci5nZXQoKSkpKQoteworICAgIG1fcnVudGltZUFnZW50ID0gV29ya2VyUnVudGltZUFnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2lu
amVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgd29ya2VyQ29udGV4dCk7CisgICAgbV9jb25zb2xl
QWdlbnQgPSBXb3JrZXJDb25zb2xlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMu
Z2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKTsKKwog
ICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+aW5pdCgw
CiAgICAgICAgICwgMAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCkBAIC0xMjEsMzQgKzEyMywx
MiBAQCB2b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCgpCiAg
ICAgbV9zdGF0ZS0+dW5tdXRlKCk7CiAgICAgbV9mcm9udGVuZENoYW5uZWwgPSBhZG9wdFB0cihu
ZXcgUGFnZUluc3BlY3RvclByb3h5KG1fd29ya2VyQ29udGV4dCkpOwogICAgIG1fZnJvbnRlbmQg
PSBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRnJvbnRlbmQobV9mcm9udGVuZENoYW5uZWwuZ2V0KCkp
KTsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gYWRvcHRSZWYobmV3IEluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyKAotICAgICAgICBtX2Zyb250ZW5kQ2hhbm5lbC5nZXQoKSwKLSAgICAgICAg
MCwgLy8gSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ci0gICAgICAgIDAsIC8vIEluc3Bl
Y3RvckNTU0FnZW50Ci0gICAgICAgIG1fY29uc29sZUFnZW50LmdldCgpLAotICAgICAgICAwLCAv
LyBJbnNwZWN0b3JET01BZ2VudAotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAg
ICAgICAwLCAvLyBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ci0jZW5kaWYKLSAgICAgICAgMCwg
Ly8gSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ci0jaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAg
ICAgICAgMCwgLy8gSW5zcGVjdG9yRGF0YWJhc2VBZ2VudAotI2VuZGlmCi0jaWYgRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgICAgIG1fZGVidWdnZXJBZ2VudC5nZXQoKSwKLSNlbmRp
ZgotI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKLSAgICAgICAgMCwgLy8gSW5zcGVjdG9yRmlsZVN5
c3RlbUFnZW50Ci0jZW5kaWYKLSAgICAgICAgMCwgLy8gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudAot
ICAgICAgICAwLCAvLyBJbnNwZWN0b3JQYWdlQWdlbnQKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gYWRvcHRSZWYobmV3IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKG1fZnJvbnRlbmRDaGFu
bmVsLmdldCgpKSk7CisgICAgbV9jb25zb2xlQWdlbnQtPnJlZ2lzdGVySW5EaXNwYXRjaGVyKG1f
YmFja2VuZERpc3BhdGNoZXIuZ2V0KCkpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQotICAgICAgICAwLCAvLyBJbnNwZWN0b3JQcm9maWxlckFnZW50CisgICAgbV9kZWJ1Z2dlckFn
ZW50LT5yZWdpc3RlckluRGlzcGF0Y2hlcihtX2JhY2tlbmREaXNwYXRjaGVyLmdldCgpKTsKICNl
bmRpZgotICAgICAgICBtX3J1bnRpbWVBZ2VudC5nZXQoKSwKLSAgICAgICAgMCwgLy8gSW5zcGVj
dG9yVGltZWxpbmVBZ2VudAotICAgICAgICAwIC8vIEluc3BlY3RvcldvcmtlckFnZW50Ci0gICAg
KSk7CisgICAgbV9ydW50aW1lQWdlbnQtPnJlZ2lzdGVySW5EaXNwYXRjaGVyKG1fYmFja2VuZERp
c3BhdGNoZXIuZ2V0KCkpOwogCiAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVk
U2NyaXB0SG9zdCgpLT5zZXRGcm9udGVuZChtX2Zyb250ZW5kLmdldCgpKTsKICNpZiBFTkFCTEUo
SkFWQVNDUklQVF9ERUJVR0dFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJS
dW50aW1lQWdlbnQuaAppbmRleCBmMWI1MzhhMmE2ZmRlZDFjYTk1MDA1ZjU4OWUzMzA4N2QwYmRj
Y2E4Li5kMjY5YTJmZTM2ZTg1NjNhMzc2ZGRjOWNmNmJhOTBiZGRhZTZkZDU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCkBAIC0zNCw2ICszNCw3
IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgRU5BQkxFKFdPUktFUlMpCiAKICNpbmNsdWRl
ICJJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxLDEwICs0MiwxNCBAQCBjbGFzcyBXb3JrZXJD
b250ZXh0OwogCiBjbGFzcyBXb3JrZXJSdW50aW1lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yUnVu
dGltZUFnZW50IHsKIHB1YmxpYzoKLSAgICBXb3JrZXJSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgV29ya2Vy
Q29udGV4dCopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFdvcmtlclJ1bnRpbWVBZ2VudD4gY3Jl
YXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0
YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIs
IFdvcmtlckNvbnRleHQqIGNvbnRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IFdvcmtlclJ1bnRpbWVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSwgaW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLCBjb250ZXh0KSk7CisgICAgfQogICAgIHZpcnR1YWwgfldvcmtlclJ1
bnRpbWVBZ2VudCgpOwogCiBwcml2YXRlOgorICAgIFdvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBX
b3JrZXJDb250ZXh0Kik7CiAgICAgdmlydHVhbCBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGVGb3JG
cmFtZUlkKGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CiAgICAgdmlydHVhbCBTY3JpcHRTdGF0ZSog
Z2V0RGVmYXVsdEluc3BlY3RlZFN0YXRlKCk7CiAgICAgV29ya2VyQ29udGV4dCogbV93b3JrZXJD
b250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNDY1OTlmYzRjM2ZjYWI5MGViNDljYjAyOGNi
NTA2Y2MyMWQ0ZmFiNi4uYzA4ODEyY2Y0M2E2NWE0YWI5MzE0ZTk2NTZhZDliM2Q5N2U5ODlmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yMTAsNyArMjEwLDYgQEAgUGFnZTo6flBhZ2UoKQogCiAg
ICAgbV9lZGl0b3JDbGllbnQtPnBhZ2VEZXN0cm95ZWQoKTsKIAotICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6aW5zcGVjdGVkUGFnZURlc3Ryb3llZCh0aGlzKTsKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQogICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+aW5zcGVjdGVkUGFnZURlc3Ryb3ll
ZCgpOwogI2VuZGlmCg==
</data>
<flag name="review"
          id="116218"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>