<?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>65457</bug_id>
          
          <creation_ts>2011-08-01 02:22:19 -0700</creation_ts>
          <short_desc>Web Inspector: typing an expression in an iframe leads to multiple &quot;Unsafe JavaScript attempt to access frame...&quot; errors</short_desc>
          <delta_ts>2011-08-01 04:43:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>444597</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-08-01 02:22:19 -0700</bug_when>
    <thetext>Typing an expression in an iframe leads to multiple &quot;Unsafe JavaScript attempt to access frame...&quot; errors. This happens during console completions evaluation and should be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444601</commentid>
    <comment_count>1</comment_count>
      <attachid>102500</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-08-01 02:31:55 -0700</bug_when>
    <thetext>Created attachment 102500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444603</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-01 02:34:25 -0700</bug_when>
    <thetext>Attachment 102500 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1

Source/WebCore/inspector/InjectedScript.cpp:57:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InjectedScript.cpp:67:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorRuntimeAgent.h:63:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorRuntimeAgent.h:70:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorRuntimeAgent.cpp:65:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorRuntimeAgent.cpp:99:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InjectedScript.h:63:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InjectedScript.h:70:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 8 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444607</commentid>
    <comment_count>3</comment_count>
      <attachid>102502</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-08-01 02:35:52 -0700</bug_when>
    <thetext>Created attachment 102502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444611</commentid>
    <comment_count>4</comment_count>
      <attachid>102503</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-08-01 02:38:05 -0700</bug_when>
    <thetext>Created attachment 102503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444612</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-01 02:38:49 -0700</bug_when>
    <thetext>Attachment 102502 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1

Source/WebCore/inspector/InjectedScript.cpp:57:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InjectedScript.cpp:67:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorRuntimeAgent.h:63:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorRuntimeAgent.h:70:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorRuntimeAgent.cpp:65:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorRuntimeAgent.cpp:99:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InjectedScript.h:63:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InjectedScript.h:70:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 8 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444613</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-01 02:40:07 -0700</bug_when>
    <thetext>Attachment 102503 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1

Source/WebCore/inspector/InjectedScript.cpp:57:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InjectedScript.cpp:67:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorRuntimeAgent.h:63:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorRuntimeAgent.h:70:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorRuntimeAgent.cpp:65:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorRuntimeAgent.cpp:99:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InjectedScript.h:63:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InjectedScript.h:70:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 8 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444625</commentid>
    <comment_count>7</comment_count>
      <attachid>102503</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-01 03:07:47 -0700</bug_when>
    <thetext>Comment on attachment 102503
Patch

Please file a bug on the stack depth check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444629</commentid>
    <comment_count>8</comment_count>
      <attachid>102503</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-01 03:12:51 -0700</bug_when>
    <thetext>Comment on attachment 102503
Patch

Attachment 102503 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9287320

New failing tests:
inspector/debugger/debugger-completions-on-call-frame.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444660</commentid>
    <comment_count>9</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-08-01 04:43:24 -0700</bug_when>
    <thetext>Committed r92122: &lt;http://trac.webkit.org/changeset/92122&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102500</attachid>
            <date>2011-08-01 02:31:55 -0700</date>
            <delta_ts>2011-08-01 02:35:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65457-20110801133153.patch</filename>
            <type>text/plain</type>
            <size>30289</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIxMDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NDc4MmUzYzg4MjQ0NjI5OGQxZGEx
YmZlMjVkOTdkNzI2MTUxZDQwLi4wNzYyOTYwNTI2YTdkYTA0MDlkODAxMjEzNTExYzVmMWJiNWZi
ZjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDgtMDEgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdHlwaW5nIGFu
IGV4cHJlc3Npb24gaW4gYW4gaWZyYW1lIGxlYWRzIHRvIG11bHRpcGxlICJVbnNhZmUgSmF2YVNj
cmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZS4uLiIgZXJyb3JzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ1NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1jZC1jb21wbGV0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvbnNvbGUtY2QtY29tcGxldGlv
bnMtaWZyYW1lLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTAxICBQYXZlbCBGZWxkbWFuICA8cGZl
bGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBncm91cCBzY3JpcHRz
IGJ5IGZvbGRlciBpbiB0aGUgc2NyaXB0cyBzZWxlY3Rvci4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21wbGV0
aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ2ZjM5MGFhNGI2NjM2MzZiMWI0YWM5N2Rj
MjZhOTg0YzI2OTA4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorVGVzdCB0aGF0IGNvbXBsZXRpb25zIGluIHRoZSBjb250ZXh0IG9mIGFuIGlmcmFtZSB3
aXRoIGEgZGlmZmVyZW50IG9yaWdpbiB3aWxsIHJlc3VsdCBpbiBuYW1lcyBvZiBpdHMgZ2xvYmFs
IHZhcmlhYmxlcy4gVGVzdCBwYXNzZXMgaWYgYWxsIGdsb2JhbCB2YXJpYWJsZXMgYXJlIGZvdW5k
IGFtb25nIGNvbXBsZXRpb25zIEFORCB0aGVyZSBhcmUgTk8gY29uc29sZSBtZXNzYWdlcy4gQnVn
IDY1NDU3LgorCisKK215R2xvYmFsVmFyCitteUdsb2JhbEZ1bmN0aW9uCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxl
dGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzJkNmUwZDQzOTZkZmRlMDY5NjdhOGZhZDZjNmIzMDY2
MDMwNDJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJpbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LnNob3dDb25zb2xlUGFuZWwoKTsKKyAgICB2YXIg
c2VsZWN0b3IgPSBXZWJJbnNwZWN0b3IuY29uc29sZS5fY29udGV4dFNlbGVjdEVsZW1lbnQ7Cisg
ICAgdmFyIG9wdGlvbiA9IHNlbGVjdG9yLmZpcnN0Q2hpbGQ7CisgICAgd2hpbGUgKG9wdGlvbikg
eworICAgICAgICBpZiAob3B0aW9uLnRleHRDb250ZW50ICYmIG9wdGlvbi50ZXh0Q29udGVudC5p
bmRleE9mKCJteUlGcmFtZSIpID09PSAwKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIG9w
dGlvbiA9IG9wdGlvbi5uZXh0U2libGluZzsKKyAgICB9CisgICAgaWYgKCFvcHRpb24pIHsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxFRDogbXlJRnJhbWUgbm90IGZvdW5k
IGluIHRoZSBjb250ZXh0IGxpc3QiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBvcHRpb24uc2VsZWN0ZWQgPSB0cnVl
OworCisKKyAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5fY29tcGxldGlvbnMoIiIsICJteUdsb2Ii
LCBmYWxzZSwgY2hlY2tDb21wbGV0aW9ucy5iaW5kKHRoaXMpKTsKKyAgICBmdW5jdGlvbiBjaGVj
a0NvbXBsZXRpb25zKGNvbXBsZXRpb25zKQorICAgIHsKKyAgICAgICAgdmFyIGV4cGVjdGVkID0g
WyJteUdsb2JhbFZhciIsICJteUdsb2JhbEZ1bmN0aW9uIl07CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChjb21wbGV0
aW9ucy5pbmRleE9mKGV4cGVjdGVkW2ldKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoZXhwZWN0ZWRbaV0pOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJOT1QgRk9VTkQ6ICIgKyBleHBlY3Rl
ZFtpXSk7CisgICAgICAgIH0KKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3Nh
Z2VzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQor
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD4KK1Rlc3QgdGhhdCBjb21wbGV0aW9u
cyBpbiB0aGUgY29udGV4dCBvZiBhbiBpZnJhbWUgd2l0aCBhIGRpZmZlcmVudCBvcmlnaW4gd2ls
bAorcmVzdWx0IGluIG5hbWVzIG9mIGl0cyBnbG9iYWwgdmFyaWFibGVzLiBUZXN0IHBhc3NlcyBp
ZiBhbGwgZ2xvYmFsIHZhcmlhYmxlcworYXJlIGZvdW5kIGFtb25nIGNvbXBsZXRpb25zIEFORCB0
aGVyZSBhcmUgTk8gY29uc29sZSBtZXNzYWdlcy4KKzxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ1NyI+QnVnIDY1NDU3LjwvYT4KKzwvcD4KKzxpZnJh
bWUgbmFtZT0ibXlJRnJhbWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMvY29uc29sZS1jZC1jb21wbGV0aW9ucy1pZnJhbWUuaHRtbCIgb25sb2FkPSJydW5U
ZXN0KCkiPjwvaWZyYW1lPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY29uc29sZS1jZC1jb21wbGV0aW9u
cy1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9jb25zb2xlLWNkLWNvbXBsZXRpb25zLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyM2YzNDBi
MzMzOTE2N2JjMjRiMjljZDM5MDE1YmFkNzRmNDUxODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY29uc29sZS1jZC1jb21wbGV0
aW9ucy1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDQgQEAKKzxzY3JpcHQ+Cit2YXIgbXlHbG9iYWxW
YXIgPSAyMDExOworZnVuY3Rpb24gbXlHbG9iYWxGdW5jdGlvbigpIHsgfQorPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZWY0ODA2ZjYzZWYxZDYxZDJkYjkxMzdkZGMwNjkzMWMyMWIzNTZhNS4uNzY1
M2VlNzM0YjBkNGY0YTlhYTVlZjJiZjc1Y2NjNGJiN2I3NDNiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQyIEBACisyMDExLTA4LTAxICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHR5cGluZyBhbiBleHByZXNzaW9uIGluIGFu
IGlmcmFtZSBsZWFkcyB0byBtdWx0aXBsZSAiVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBh
Y2Nlc3MgZnJhbWUuLi4iIGVycm9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjU0NTcKKworICAgICAgICBDb25zb2xlIGNvbXBsZXRpb25zIGFyZSBu
b3cgZG9uZSB1c2luZyBldmFsdWF0aW9uIHdoaWNoIHJldHVybnMgYSBKU09OIG9iamVjdCB3aXRo
IGFsbCBwcm9wZXJ0eSBuYW1lcyByYXRoZXIgdGhhbiBhIHJlbW90ZQorICAgICAgICBvYmplY3Qu
IEFsc28gUnVudGltZS5ldmFsdWF0ZSBhbmQgUnVudGltZS5jYWxsRnVuY3Rpb25PbiBjb21tYW5k
cyB3ZXJlIGV4dGVuZGVkIHdpdGggYW4gb3B0aW9uYWwgcGFyYW1ldGVyIHRoYXQgYWxsb3dzIHRv
CisgICAgICAgIGdldCByZXN1bHQgYXMgSlNPTiB2YWx1ZS4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9j
b25zb2xlLWNkLWNvbXBsZXRpb25zLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdDo6ZXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHQ6OmNhbGxGdW5jdGlvbk9uKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICguKToKKyAgICAgICAgKCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXNCb29sKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUnVudGltZUFnZW50OjpjYWxsRnVuY3Rpb25Pbik6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlLl9jb21wbGV0aW9ucy5ldmFsdWF0ZWQuZ2V0Q29tcGxldGlvbnMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fY29tcGxldGlvbnMu
ZXZhbHVhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUu
X2NvbXBsZXRpb25zLnJlY2VpdmVkUHJvcGVydHlTZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fY29tcGxldGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5ldmFsSW5JbnNwZWN0ZWRXaW5kb3cpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
LnByb3RvdHlwZS5jYWxsRnVuY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5wcm90b3R5cGUuY2FsbEZ1bmN0aW9uSlNPTik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvdG90eXBlLnVwZGF0ZSk6CisKIDIwMTEt
MDgtMDEgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGdyb3VwIHNjcmlwdHMgYnkgZm9sZGVyIGluIHRoZSBzY3JpcHRzIHNlbGVj
dG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKaW5kZXgg
NTJiZmFkZWRlYWEzMmMzZDgyZTA5NjE0ODgzYTg4NzVjYTQxY2RlNS4uOGMyYmM3YzY1OTBlYzYz
NmFhOGIwM2JjMWRlZWNkMDQ3M2NiMzYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuY3BwCkBAIC01NCwyMSArNTQsMjMgQEAgSW5qZWN0ZWRTY3JpcHQ6Oklu
amVjdGVkU2NyaXB0KFNjcmlwdE9iamVjdCBpbmplY3RlZFNjcmlwdE9iamVjdCwgSW5zcGVjdGVk
U3RhdGUKIHsKIH0KIAotdm9pZCBJbmplY3RlZFNjcmlwdDo6ZXZhbHVhdGUoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2Jq
ZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pCit2b2lkIEluamVjdGVkU2NyaXB0OjpldmFs
dWF0ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwg
Y29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwgYm9vbCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGJv
b2wgc2VuZFJlc3VsdEJ5VmFsdWUsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJv
b2wqIHdhc1Rocm93bikKIHsKICAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV9pbmpl
Y3RlZFNjcmlwdE9iamVjdCwgImV2YWx1YXRlIik7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQoZXhwcmVzc2lvbik7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2JqZWN0R3JvdXAp
OwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGluY2x1ZGVDb21tYW5kTGluZUFQSSk7Cisg
ICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoc2VuZFJlc3VsdEJ5VmFsdWUpOwogICAgIG1ha2VF
dmFsQ2FsbChlcnJvclN0cmluZywgZnVuY3Rpb24sIHJlc3VsdCwgd2FzVGhyb3duKTsKIH0KIAot
dm9pZCBJbmplY3RlZFNjcmlwdDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNv
bnN0IFN0cmluZyYgYXJndW1lbnRzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBi
b29sKiB3YXNUaHJvd24pCit2b2lkIEluamVjdGVkU2NyaXB0OjpjYWxsRnVuY3Rpb25PbihFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBhcmd1bWVudHMsIGJvb2wgc2VuZFJlc3VsdEJ5
VmFsdWUsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93bikK
IHsKICAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV9pbmplY3RlZFNjcmlwdE9iamVj
dCwgImNhbGxGdW5jdGlvbk9uIik7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2JqZWN0
SWQpOwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGV4cHJlc3Npb24pOwogICAgIGZ1bmN0
aW9uLmFwcGVuZEFyZ3VtZW50KGFyZ3VtZW50cyk7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQoc2VuZFJlc3VsdEJ5VmFsdWUpOwogICAgIG1ha2VFdmFsQ2FsbChlcnJvclN0cmluZywgZnVu
Y3Rpb24sIHJlc3VsdCwgd2FzVGhyb3duKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuaAppbmRleCA3MGI4YzY3N2E1MzRmNTk3ZmJkNmUzYjAxNDY5NjBlZWNh
MWY2ODE1Li41ZThmZmMwODZiYzZhODMyZTc2MmNlYzRiNjAwZjE4YmQxN2E0ZTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaApAQCAtNTUsOCArNTUsMjAgQEAg
cHVibGljOgogCiAgICAgYm9vbCBoYXNOb1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pbmplY3Rl
ZFNjcmlwdE9iamVjdC5oYXNOb1ZhbHVlKCk7IH0KIAotICAgIHZvaWQgZXZhbHVhdGUoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3Jv
dXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piog
cmVzdWx0LCBib29sKiB3YXNUaHJvd24pOwotICAgIHZvaWQgY2FsbEZ1bmN0aW9uT24oRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24s
IGNvbnN0IFN0cmluZyYgYXJndW1lbnRzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0
LCBib29sKiB3YXNUaHJvd24pOworICAgIHZvaWQgZXZhbHVhdGUoRXJyb3JTdHJpbmcqLAorICAg
ICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLAorICAgICAgICAgICAgICAg
ICAgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwKKyAgICAgICAgICAgICAgICAgIGJvb2wgaW5j
bHVkZUNvbW1hbmRMaW5lQVBJLAorICAgICAgICAgICAgICAgICAgYm9vbCBzZW5kUmVzdWx0QnlW
YWx1ZSwKKyAgICAgICAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQs
CisgICAgICAgICAgICAgICAgICBib29sKiB3YXNUaHJvd24pOworICAgIHZvaWQgY2FsbEZ1bmN0
aW9uT24oRXJyb3JTdHJpbmcqLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5n
JiBvYmplY3RJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZXhwcmVz
c2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgYXJndW1lbnRzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBzZW5kUmVzdWx0QnlWYWx1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICBib29sKiB3YXNUaHJvd24pOwogICAgIHZvaWQgZXZhbHVhdGVPbkNh
bGxGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25z
dCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0
cmluZyYgb2JqZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pOwogICAgIHZvaWQgZ2V0UHJv
cGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGJvb2wgaWdub3Jl
SGFzT3duUHJvcGVydHksIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCk7CiAgICAgTm9k
ZSogbm9kZUZvck9iamVjdElkKGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCmluZGV4IDY3YmE4NDZl
ZDNhZGQxNjI4MjNkZjYxNjg1ZThmNmZjYjY3YThmMWUuLmFmN2FmZjY2YmFlYmJlM2VmOGMyNTdl
YTI0YmQ0ZmI5NmZiNzdjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTEwOCwxMCArMTA4LDEwIEBAIEluamVjdGVkU2NyaXB0
LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLy8gVGhpcyBtZXRob2QgY2Fubm90IHRocm93
LgotICAgIF93cmFwT2JqZWN0OiBmdW5jdGlvbihvYmplY3QsIG9iamVjdEdyb3VwTmFtZSkKKyAg
ICBfd3JhcE9iamVjdDogZnVuY3Rpb24ob2JqZWN0LCBvYmplY3RHcm91cE5hbWUsIGZvcmNlVmFs
dWVUeXBlKQogICAgIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgSW5q
ZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0KG9iamVjdCwgb2JqZWN0R3JvdXBOYW1lKTsKKyAgICAg
ICAgICAgIHJldHVybiBuZXcgSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0KG9iamVjdCwgb2Jq
ZWN0R3JvdXBOYW1lLCBmb3JjZVZhbHVlVHlwZSk7CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAg
ICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gaW5qZWN0
ZWRTY3JpcHQuX2Rlc2NyaWJlKGUpOwpAQCAtMTgzLDggKzE4Myw4IEBAIEluamVjdGVkU2NyaXB0
LnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0eU5hbWVz
Lmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gcHJvcGVydHlO
YW1lc1tpXTsKIAotICAgICAgICAgICAgdmFyIGdldHRlciA9IG9iamVjdFsiX19sb29rdXBHZXR0
ZXJfXyJdICYmIG9iamVjdC5fX2xvb2t1cEdldHRlcl9fKHByb3BlcnR5TmFtZSk7Ci0gICAgICAg
ICAgICB2YXIgc2V0dGVyID0gb2JqZWN0WyJfX2xvb2t1cFNldHRlcl9fIl0gJiYgb2JqZWN0Ll9f
bG9va3VwU2V0dGVyX18ocHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgIHZhciBnZXR0ZXIgPSAo
dHlwZW9mIG9iamVjdFsiX19sb29rdXBHZXR0ZXJfXyJdID09PSAiZnVuY3Rpb24iKSAmJiBvYmpl
Y3QuX19sb29rdXBHZXR0ZXJfXyhwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgdmFyIHNldHRl
ciA9ICh0eXBlb2Ygb2JqZWN0WyJfX2xvb2t1cFNldHRlcl9fIl0gPT09ICJmdW5jdGlvbiIpICYm
IG9iamVjdC5fX2xvb2t1cFNldHRlcl9fKHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICBpZiAo
Z2V0dGVyIHx8IHNldHRlcikgewogICAgICAgICAgICAgICAgIGlmIChnZXR0ZXIpIHsKICAgICAg
ICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0ge307CkBAIC0yNDYsMTIgKzI0NiwxMiBAQCBJ
bmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhw
cm9wZXJ0eU5hbWVTZXQpOwogICAgIH0sCiAKLSAgICBldmFsdWF0ZTogZnVuY3Rpb24oZXhwcmVz
c2lvbiwgb2JqZWN0R3JvdXAsIGluamVjdENvbW1hbmRMaW5lQVBJKQorICAgIGV2YWx1YXRlOiBm
dW5jdGlvbihleHByZXNzaW9uLCBvYmplY3RHcm91cCwgaW5qZWN0Q29tbWFuZExpbmVBUEksIHNl
bmRSZXN1bHRCeVZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2V2YWx1YXRlQW5k
V3JhcChJbmplY3RlZFNjcmlwdEhvc3QuZXZhbHVhdGUsIEluamVjdGVkU2NyaXB0SG9zdCwgZXhw
cmVzc2lvbiwgb2JqZWN0R3JvdXAsIGZhbHNlLCBpbmplY3RDb21tYW5kTGluZUFQSSk7CisgICAg
ICAgIHJldHVybiB0aGlzLl9ldmFsdWF0ZUFuZFdyYXAoSW5qZWN0ZWRTY3JpcHRIb3N0LmV2YWx1
YXRlLCBJbmplY3RlZFNjcmlwdEhvc3QsIGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBmYWxzZSwg
aW5qZWN0Q29tbWFuZExpbmVBUEksIHNlbmRSZXN1bHRCeVZhbHVlKTsKICAgICB9LAogCi0gICAg
Y2FsbEZ1bmN0aW9uT246IGZ1bmN0aW9uKG9iamVjdElkLCBleHByZXNzaW9uLCBhcmdzKQorICAg
IGNhbGxGdW5jdGlvbk9uOiBmdW5jdGlvbihvYmplY3RJZCwgZXhwcmVzc2lvbiwgYXJncywgc2Vu
ZFJlc3VsdEJ5VmFsdWUpCiAgICAgewogICAgICAgICB2YXIgcGFyc2VkT2JqZWN0SWQgPSB0aGlz
Ll9wYXJzZU9iamVjdElkKG9iamVjdElkKTsKICAgICAgICAgdmFyIG9iamVjdCA9IHRoaXMuX29i
amVjdEZvcklkKHBhcnNlZE9iamVjdElkKTsKQEAgLTI4NywxOCArMjg3LDE4IEBAIEluamVjdGVk
U2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm4gIkdpdmVuIGV4cHJl
c3Npb24gZG9lcyBub3QgZXZhbHVhdGUgdG8gYSBmdW5jdGlvbiI7CiAKICAgICAgICAgICAgIHJl
dHVybiB7IHdhc1Rocm93bjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IHRo
aXMuX3dyYXBPYmplY3QoZnVuYy5hcHBseShvYmplY3QsIHJlc29sdmVkQXJncyksIG9iamVjdEdy
b3VwKSB9OworICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiB0aGlzLl93cmFwT2JqZWN0KGZ1
bmMuYXBwbHkob2JqZWN0LCByZXNvbHZlZEFyZ3MpLCBvYmplY3RHcm91cCwgc2VuZFJlc3VsdEJ5
VmFsdWUpIH07CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgIHJldHVybiB7IHdh
c1Rocm93bjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhpcy5fd3JhcE9i
amVjdChlLCBvYmplY3RHcm91cCkgfTsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBfZXZhbHVh
dGVBbmRXcmFwOiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbiwgb2Jq
ZWN0R3JvdXAsIGlzRXZhbE9uQ2FsbEZyYW1lLCBpbmplY3RDb21tYW5kTGluZUFQSSkKKyAgICBf
ZXZhbHVhdGVBbmRXcmFwOiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lv
biwgb2JqZWN0R3JvdXAsIGlzRXZhbE9uQ2FsbEZyYW1lLCBpbmplY3RDb21tYW5kTGluZUFQSSwg
c2VuZFJlc3VsdEJ5VmFsdWUpCiAgICAgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgcmV0
dXJuIHsgd2FzVGhyb3duOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhp
cy5fd3JhcE9iamVjdCh0aGlzLl9ldmFsdWF0ZU9uKGV2YWxGdW5jdGlvbiwgb2JqZWN0LCBleHBy
ZXNzaW9uLCBpc0V2YWxPbkNhbGxGcmFtZSwgaW5qZWN0Q29tbWFuZExpbmVBUEkpLCBvYmplY3RH
cm91cCkgfTsKKyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhpcy5fd3JhcE9iamVjdCh0
aGlzLl9ldmFsdWF0ZU9uKGV2YWxGdW5jdGlvbiwgb2JqZWN0LCBleHByZXNzaW9uLCBpc0V2YWxP
bkNhbGxGcmFtZSwgaW5qZWN0Q29tbWFuZExpbmVBUEkpLCBvYmplY3RHcm91cCwgc2VuZFJlc3Vs
dEJ5VmFsdWUpIH07CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgIHJldHVybiB7
IHdhc1Rocm93bjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhpcy5fd3Jh
cE9iamVjdChlLCBvYmplY3RHcm91cCkgfTsKQEAgLTQ1MCwxMCArNDUwLDEwIEBAIEluamVjdGVk
U2NyaXB0LnByb3RvdHlwZSA9IHsKIAogdmFyIGluamVjdGVkU2NyaXB0ID0gbmV3IEluamVjdGVk
U2NyaXB0KCk7CiAKLUluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVj
dCwgb2JqZWN0R3JvdXBOYW1lKQorSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0ID0gZnVuY3Rp
b24ob2JqZWN0LCBvYmplY3RHcm91cE5hbWUsIGZvcmNlVmFsdWVUeXBlKQogewogICAgIHRoaXMu
dHlwZSA9IHR5cGVvZiBvYmplY3Q7Ci0gICAgaWYgKGluamVjdGVkU2NyaXB0LmlzUHJpbWl0aXZl
VmFsdWUob2JqZWN0KSB8fCBvYmplY3QgPT09IG51bGwpIHsKKyAgICBpZiAoaW5qZWN0ZWRTY3Jp
cHQuaXNQcmltaXRpdmVWYWx1ZShvYmplY3QpIHx8IG9iamVjdCA9PT0gbnVsbCB8fCBmb3JjZVZh
bHVlVHlwZSkgewogCiAgICAgICAgIC8vIFdlIGRvbid0IHNlbmQgdW5kZWZpbmVkIHZhbHVlcyBv
dmVyIEpTT04uCiAgICAgICAgIGlmICh0eXBlb2Ygb2JqZWN0ICE9PSAidW5kZWZpbmVkIikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCAyMjM1ZTQzYmI0NmQ1YmU0
OTk5Y2ZkODQ5OGY2YjgwNDY2NWQ1MjRiLi4wMGNkMTU0YTcxMGNhY2UxNGJjYTA3YTk5OGU4Mzdh
ZWQ0NjE0MDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0y
MzAsNyArMjMwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5
cGUiOiAic3RyaW5nIiwgImVudW0iOiBbIm9iamVjdCIsICJmdW5jdGlvbiIsICJ1bmRlZmluZWQi
LCAic3RyaW5nIiwgIm51bWJlciIsICJib29sZWFuIl0sICJkZXNjcmlwdGlvbiI6ICJPYmplY3Qg
dHlwZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3VidHlwZSIsICJ0eXBl
IjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJlbnVtIjogWyJhcnJheSIsICJudWxsIiwg
Im5vZGUiLCAicmVnZXhwIiwgImRhdGUiXSwgImRlc2NyaXB0aW9uIjogIk9iamVjdCBzdWJ0eXBl
IGhpbnQuIFNwZWNpZmllZCBmb3IgPGNvZGU+b2JqZWN0PC9jb2RlPiB0eXBlIHZhbHVlcyBvbmx5
LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjbGFzc05hbWUiLCAidHlwZSI6
ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiT2JqZWN0IGNsYXNz
IChjb25zdHJ1Y3RvcikgbmFtZS4gU3BlY2lmaWVkIGZvciA8Y29kZT5vYmplY3Q8L2NvZGU+IHR5
cGUgdmFsdWVzIG9ubHkuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVl
IiwgInR5cGUiOiAiYW55IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlbW90
ZSBvYmplY3QgdmFsdWUgKGluIGNhc2Ugb2YgcHJpbWl0aXZlIHZhbHVlcykuIiB9LAorICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVlIiwgInR5cGUiOiAiYW55IiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlbW90ZSBvYmplY3QgdmFsdWUgKGluIGNhc2Ugb2Yg
cHJpbWl0aXZlIHZhbHVlcyBvciBKU09OIHZhbHVlcyBpZiBpdCB3YXMgcmVxdWVzdGVkKS4iIH0s
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGVzY3JpcHRpb24iLCAidHlwZSI6ICJz
dHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3RyaW5nIHJlcHJlc2Vu
dGF0aW9uIG9mIHRoZSBvYmplY3QuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im9iamVjdElkIiwgIiRyZWYiOiAiUmVtb3RlT2JqZWN0SWQiLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiVW5pcXVlIG9iamVjdCBpZGVudGlmaWVyIChmb3Igbm9uLXByaW1pdGl2
ZSB2YWx1ZXMpLiIgfQogICAgICAgICAgICAgICAgIF0KQEAgLTI2Myw3ICsyNjMsOCBAQAogICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdEdyb3VwIiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN5bWJvbGljIGdyb3VwIG5hbWUg
dGhhdCBjYW4gYmUgdXNlZCB0byByZWxlYXNlIG11bHRpcGxlIG9iamVjdHMuIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImluY2x1ZGVDb21tYW5kTGluZUFQSSIsICJ0eXBlIjog
ImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRGV0ZXJtaW5lcyB3
aGV0aGVyIENvbW1hbmQgTGluZSBBUEkgc2hvdWxkIGJlIGF2YWlsYWJsZSBkdXJpbmcgdGhlIGV2
YWx1YXRpb24uIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvTm90UGF1c2VP
bkV4Y2VwdGlvbnMiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlNwZWNpZmllcyB3aGV0aGVyIGV2YWx1YXRpb24gc2hvdWxkIHN0b3Agb24gZXhj
ZXB0aW9ucy4gT3ZlcnJpZGVzIHNldFBhdXNlT25FeGNlcHRpb24gc3RhdGUuIiB9LAotICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3BlY2lmaWVzIGluIHdoaWNoIGZyYW1lIHRv
IHBlcmZvcm0gZXZhbHVhdGlvbi4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJm
cmFtZUlkIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIlNwZWNpZmllcyBpbiB3aGljaCBmcmFtZSB0byBwZXJmb3JtIGV2YWx1YXRpb24uIiB9LAor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbmRSZXN1bHRCeVZhbHVlIiwgInR5cGUi
OiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRo
ZSByZXN1bHQgaXMgZXhwZWN0ZWQgdG8gYmUgYSBKU09OIG9iamVjdCB3aGljaCBzaG91bGQgYmUg
c2VudCBieSB2YWx1ZS4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJy
ZXR1cm5zIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIkcmVm
IjogIlJlbW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0aW9uIHJlc3VsdC4iIH0s
CkBAIC0yNzYsNyArMjc3LDggQEAKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjogIlJlbW90ZU9i
amVjdElkIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIG9iamVjdCB0byBjYWxs
IGZ1bmN0aW9uIG9uLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmdW5jdGlv
bkRlY2xhcmF0aW9uIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkRlY2xhcmF0
aW9uIG9mIHRoZSBmdW5jdGlvbiB0byBjYWxsLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJhcmd1bWVudHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAi
Q2FsbEFyZ3VtZW50IiwgImRlc2NyaXB0aW9uIjogIkNhbGwgYXJndW1lbnQuIiB9LCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ2FsbCBhcmd1bWVudHMuIEFsbCBjYWxsIGFyZ3Vt
ZW50cyBtdXN0IGJlbG9uZyB0byB0aGUgc2FtZSBKYXZhU2NyaXB0IHdvcmxkIGFzIHRoZSB0YXJn
ZXQgb2JqZWN0LiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFyZ3VtZW50cyIs
ICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDYWxsQXJndW1lbnQiLCAiZGVz
Y3JpcHRpb24iOiAiQ2FsbCBhcmd1bWVudC4iIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJDYWxsIGFyZ3VtZW50cy4gQWxsIGNhbGwgYXJndW1lbnRzIG11c3QgYmVsb25nIHRv
IHRoZSBzYW1lIEphdmFTY3JpcHQgd29ybGQgYXMgdGhlIHRhcmdldCBvYmplY3QuIiB9LAorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbmRSZXN1bHRCeVZhbHVlIiwgInR5cGUiOiAi
Ym9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRoZSBy
ZXN1bHQgaXMgZXhwZWN0ZWQgdG8gYmUgYSBKU09OIG9iamVjdCB3aGljaCBzaG91bGQgYmUgc2Vu
dCBieSB2YWx1ZS4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1
cm5zIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIkcmVmIjog
IlJlbW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJDYWxsIHJlc3VsdC4iIH0sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCmluZGV4
IGU0M2FkYTgxMWEzZWE3YTA5MjA0MWIxODEyODA5Mzc5YzM5NmI5ZDQuLjZhMjQ1Mzk5NTVmYjYy
NDAyZmJhNzczNmE4MmNjNmFjZGRmMGQ4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCkBAIC00NSw2ICs0NSwxMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBib29sIGFzQm9vbChjb25zdCBib29sKiBjb25z
dCBiKQoreworICAgIHJldHVybiBiID8gKmIgOiBmYWxzZTsKK30KKwogSW5zcGVjdG9yUnVudGlt
ZUFnZW50OjpJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmpl
Y3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgOiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3Rl
ZFNjcmlwdE1hbmFnZXIpCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCkBAIC01Nyw3
ICs2Miw3IEBAIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6fkluc3BlY3RvclJ1bnRpbWVBZ2VudCgp
CiB7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBj
b25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5lQVBJ
LCBjb25zdCBib29sKiBjb25zdCBkb05vdFBhdXNlT25FeGNlcHRpb25zLCBjb25zdCBTdHJpbmcq
IGNvbnN0IGZyYW1lSWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdh
c1Rocm93bikKK3ZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBj
b25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5lQVBJ
LCBjb25zdCBib29sKiBjb25zdCBkb05vdFBhdXNlT25FeGNlcHRpb25zLCBjb25zdCBTdHJpbmcq
IGNvbnN0IGZyYW1lSWQsIGNvbnN0IGJvb2wqIGNvbnN0IHNlbmRSZXN1bHRCeVZhbHVlLCBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pCiB7CiAgICAgU2Ny
aXB0U3RhdGUqIHNjcmlwdFN0YXRlID0gMDsKICAgICBpZiAoZnJhbWVJZCkgewpAQCAtNzcsMTMg
KzgyLDEzIEBAIHZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwCiAgICAgQVNTRVJUKG1fc2NyaXB0RGVi
dWdTZXJ2ZXIpOwogICAgIGJvb2wgcGF1c2VTdGF0ZUNoYW5nZWQgPSBmYWxzZTsKICAgICBTY3Jp
cHREZWJ1Z1NlcnZlcjo6UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSBwcmVzZW50U3RhdGUgPSBtX3Nj
cmlwdERlYnVnU2VydmVyLT5wYXVzZU9uRXhjZXB0aW9uc1N0YXRlKCk7Ci0gICAgaWYgKGRvTm90
UGF1c2VPbkV4Y2VwdGlvbnMgJiYgKmRvTm90UGF1c2VPbkV4Y2VwdGlvbnMgJiYgcHJlc2VudFN0
YXRlICE9IFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnMpIHsKKyAgICBp
ZiAoYXNCb29sKGRvTm90UGF1c2VPbkV4Y2VwdGlvbnMpICYmIHByZXNlbnRTdGF0ZSAhPSBTY3Jp
cHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25FeGNlcHRpb25zKSB7CiAgICAgICAgIG1fc2NyaXB0
RGVidWdTZXJ2ZXItPnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoU2NyaXB0RGVidWdTZXJ2ZXI6
OkRvbnRQYXVzZU9uRXhjZXB0aW9ucyk7CiAgICAgICAgIHBhdXNlU3RhdGVDaGFuZ2VkID0gdHJ1
ZTsKICAgICB9CiAjZW5kaWYKIAotICAgIGluamVjdGVkU2NyaXB0LmV2YWx1YXRlKGVycm9yU3Ry
aW5nLCBleHByZXNzaW9uLCBvYmplY3RHcm91cCA/ICpvYmplY3RHcm91cCA6ICIiLCBpbmNsdWRl
Q29tbWFuZExpbmVBUEkgPyAqaW5jbHVkZUNvbW1hbmRMaW5lQVBJIDogZmFsc2UsIHJlc3VsdCwg
d2FzVGhyb3duKTsKKyAgICBpbmplY3RlZFNjcmlwdC5ldmFsdWF0ZShlcnJvclN0cmluZywgZXhw
cmVzc2lvbiwgb2JqZWN0R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiAiIiwgYXNCb29sKGluY2x1ZGVD
b21tYW5kTGluZUFQSSksIGFzQm9vbChzZW5kUmVzdWx0QnlWYWx1ZSksIHJlc3VsdCwgd2FzVGhy
b3duKTsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGlmIChwYXVzZVN0
YXRlQ2hhbmdlZCkKQEAgLTkxLDcgKzk2LDcgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6
OmV2YWx1YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBleHAKICNl
bmRpZgogfQogCi12b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0aW9uT24oRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJp
bmcmIGV4cHJlc3Npb24sIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNvbnN0IG9wdGlv
bmFsQXJndW1lbnRzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNU
aHJvd24pCit2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JT
dHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcm
IGV4cHJlc3Npb24sIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNvbnN0IG9wdGlvbmFs
QXJndW1lbnRzLCBjb25zdCBib29sKiBjb25zdCBzZW5kUmVzdWx0QnlWYWx1ZSwgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKQogewogICAgIEluamVjdGVk
U2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVk
U2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwogICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNO
b1ZhbHVlKCkpIHsKQEAgLTEwMSw3ICsxMDYsNyBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2Vu
dDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbgog
ICAgIFN0cmluZyBhcmd1bWVudHM7CiAgICAgaWYgKG9wdGlvbmFsQXJndW1lbnRzKQogICAgICAg
ICBhcmd1bWVudHMgPSAoKm9wdGlvbmFsQXJndW1lbnRzKS0+dG9KU09OU3RyaW5nKCk7Ci0gICAg
aW5qZWN0ZWRTY3JpcHQuY2FsbEZ1bmN0aW9uT24oZXJyb3JTdHJpbmcsIG9iamVjdElkLCBleHBy
ZXNzaW9uLCBhcmd1bWVudHMsIHJlc3VsdCwgd2FzVGhyb3duKTsKKyAgICBpbmplY3RlZFNjcmlw
dC5jYWxsRnVuY3Rpb25PbihlcnJvclN0cmluZywgb2JqZWN0SWQsIGV4cHJlc3Npb24sIGFyZ3Vt
ZW50cywgYXNCb29sKHNlbmRSZXN1bHRCeVZhbHVlKSwgcmVzdWx0LCB3YXNUaHJvd24pOwogfQog
CiB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVydGllcyhFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGJvb2wgaWdub3JlSGFzT3duUHJv
cGVydHksIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaAppbmRleCAzZTFhM2EyNjc5ZjVk
OWVkMzBkMmZiNDM2ZTBhNTI5MWQwMTAxM2EwLi42NDZkNDU1MjZkZDE1NjY5NzkxODJkOTM5MTcx
ZjRmMThjOTUyMjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJ1bnRpbWVBZ2VudC5oCkBAIC01Myw4ICs1MywyMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
SW5zcGVjdG9yUnVudGltZUFnZW50KCk7CiAKICAgICAvLyBQYXJ0IG9mIHRoZSBwcm90b2NvbC4K
LSAgICB2b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9u
LCBjb25zdCBTdHJpbmcqIGNvbnN0IG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBjb25zdCBpbmNs
dWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGNvbnN0IGRvTm90UGF1c2VPbkV4Y2VwdGlv
bnMsIGNvbnN0IFN0cmluZyogY29uc3QgZnJhbWVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4q
IHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKTsKLSAgICB2b2lkIGNhbGxGdW5jdGlvbk9uKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9u
LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBjb25zdCBvcHRpb25hbEFyZ3VtZW50cywg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKTsKKyAgICB2
b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nKiwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbiwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyogY29uc3Qgb2Jq
ZWN0R3JvdXAsCisgICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBjb25zdCBpbmNsdWRlQ29t
bWFuZExpbmVBUEksCisgICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBjb25zdCBkb05vdFBh
dXNlT25FeGNlcHRpb25zLAorICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nKiBjb25zdCBm
cmFtZUlkLAorICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCogY29uc3Qgc2VuZFJlc3VsdEJ5
VmFsdWUsCisgICAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0
LAorICAgICAgICAgICAgICAgICAgYm9vbCogd2FzVGhyb3duKTsKKyAgICB2b2lkIGNhbGxGdW5j
dGlvbk9uKEVycm9yU3RyaW5nKiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgb2JqZWN0SWQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGV4cHJl
c3Npb24sCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+KiBjb25zdCBvcHRpb25hbEFyZ3VtZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGJvb2wqIGNvbnN0IHNlbmRSZXN1bHRCeVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wqIHdhc1Rocm93bik7CiAgICAgdm9pZCByZWxlYXNlT2JqZWN0KEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7CiAgICAgdm9pZCBnZXRQcm9wZXJ0aWVzKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgYm9vbCBpZ25vcmVIYXNPd25Qcm9wZXJ0
eSwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogcmVzdWx0KTsKICAgICB2b2lkIHJlbGVhc2VPYmpl
Y3RHcm91cChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKaW5kZXgg
NmIwODA1ZjMyZWVmZWY1ZDAwZmU1MTE5MTA1OTJlNDFiNzBhMGQxZi4uMTQ1MzNhOWZlYTllNTUz
MjYwNDU4Yzg4M2Y1YTg0YWJhMWI2Yzk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBAIC00MDgsMjYgKzQwOCwzMyBAQCBXZWJJ
bnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIWV4cHJlc3Np
b25TdHJpbmcgJiYgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnBhdXNlZCkKICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5nZXRTZWxlY3RlZENhbGxGcmFtZVZhcmlh
YmxlcyhyZXBvcnRDb21wbGV0aW9ucy5iaW5kKHRoaXMpKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdGhpcy5ldmFsSW5JbnNwZWN0ZWRXaW5kb3coZXhwcmVzc2lvblN0cmluZywgImNvbXBs
ZXRpb24iLCB0cnVlLCB0cnVlLCBldmFsdWF0ZWQuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0
aGlzLmV2YWxJbkluc3BlY3RlZFdpbmRvdyhleHByZXNzaW9uU3RyaW5nLCAiY29tcGxldGlvbiIs
IHRydWUsIHRydWUsIHVuZGVmaW5lZCwgZXZhbHVhdGVkLmJpbmQodGhpcykpOwogCiAgICAgICAg
IGZ1bmN0aW9uIGV2YWx1YXRlZChyZXN1bHQsIHdhc1Rocm93bikKICAgICAgICAgewogICAgICAg
ICAgICAgaWYgKHdhc1Rocm93bikKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICByZXN1bHQuZ2V0QWxsUHJvcGVydGllcyhldmFsdWF0ZWRQcm9wZXJ0aWVzLmJpbmQodGhpcykp
OworICAgICAgICAgICAgdmFyIGdldENvbXBsZXRpb25zID0gZnVuY3Rpb24oKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIHZhciByZXN1bHRTZXQgPSB7fTsKKyAgICAgICAgICAgICAg
ICBmb3IgKHZhciBvID0gdGhpczsgbzsgbyA9IG8uX19wcm90b19fKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmFtZXMgPSBPYmplY3Qu
Z2V0T3duUHJvcGVydHlOYW1lcyhvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0U2V0W25hbWVzW2ldXSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0U2V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmVzdWx0LmNhbGxGdW5jdGlvbkpTT04oZ2V0Q29tcGxldGlvbnMsIHJlY2VpdmVkUHJvcGVydHlT
ZXQuYmluZCh0aGlzKSk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBldmFsdWF0ZWRQ
cm9wZXJ0aWVzKHByb3BlcnRpZXMpCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVkUHJvcGVydHlT
ZXQocHJvcGVydHlOYW1lcykKICAgICAgICAgewogICAgICAgICAgICAgUnVudGltZUFnZW50LnJl
bGVhc2VPYmplY3RHcm91cCgiY29tcGxldGlvbiIpOwotICAgICAgICAgICAgdmFyIHByb3BlcnR5
TmFtZXMgPSB7fTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBwcm9wZXJ0aWVzICYmIGkg
PCBwcm9wZXJ0aWVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXNb
cHJvcGVydGllc1tpXS5uYW1lXSA9IHRydWU7Ci0gICAgICAgICAgICByZXBvcnRDb21wbGV0aW9u
cy5jYWxsKHRoaXMsIHByb3BlcnR5TmFtZXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rp
b24gcmVwb3J0Q29tcGxldGlvbnMocHJvcGVydHlOYW1lcykKLSAgICAgICAgeworICAgICAgICAg
ICAgaWYgKCFwcm9wZXJ0eU5hbWVzKQorICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIHZhciBpbmNsdWRlQ29tbWFuZExpbmVBUEkgPSAoIWRvdE5vdGF0aW9uICYmICFicmFja2V0
Tm90YXRpb24pOwogICAgICAgICAgICAgaWYgKGluY2x1ZGVDb21tYW5kTGluZUFQSSkgewogICAg
ICAgICAgICAgICAgIGNvbnN0IGNvbW1hbmRMaW5lQVBJID0gWyJkaXIiLCAiZGlyeG1sIiwgImtl
eXMiLCAidmFsdWVzIiwgInByb2ZpbGUiLCAicHJvZmlsZUVuZCIsICJtb25pdG9yRXZlbnRzIiwg
InVubW9uaXRvckV2ZW50cyIsICJpbnNwZWN0IiwgImNvcHkiLCAiY2xlYXIiXTsKQEAgLTU5NSw3
ICs2MDIsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAg
ICB9CiAgICAgfSwKIAotICAgIGV2YWxJbkluc3BlY3RlZFdpbmRvdzogZnVuY3Rpb24oZXhwcmVz
c2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZG9Ob3RQYXVzZU9uRXhj
ZXB0aW9ucywgY2FsbGJhY2spCisgICAgZXZhbEluSW5zcGVjdGVkV2luZG93OiBmdW5jdGlvbihl
eHByZXNzaW9uLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBkb05vdFBhdXNl
T25FeGNlcHRpb25zLCBldmFsQXNKU09OVmFsdWUsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAg
aWYgKFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cyAmJiBXZWJJbnNwZWN0b3IucGFuZWxzLnNj
cmlwdHMucGF1c2VkKSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMu
ZXZhbHVhdGVJblNlbGVjdGVkQ2FsbEZyYW1lKGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNs
dWRlQ29tbWFuZExpbmVBUEksIGNhbGxiYWNrKTsKQEAgLTYxMiw3ICs2MTksNyBAQCBXZWJJbnNw
ZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKCFlcnJvcikK
ICAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21Q
YXlsb2FkKHJlc3VsdCksIHdhc1Rocm93bik7CiAgICAgICAgIH0KLSAgICAgICAgUnVudGltZUFn
ZW50LmV2YWx1YXRlKGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVB
UEksIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnMsIHRoaXMuX2N1cnJlbnRFdmFsdWF0aW9uQ29udGV4
dElkKCksIGV2YWxDYWxsYmFjayk7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZShleHBy
ZXNzaW9uLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBkb05vdFBhdXNlT25F
eGNlcHRpb25zLCB0aGlzLl9jdXJyZW50RXZhbHVhdGlvbkNvbnRleHRJZCgpLCBldmFsQXNKU09O
VmFsdWUsIGV2YWxDYWxsYmFjayk7CiAgICAgfSwKIAogICAgIF9lbnRlcktleVByZXNzZWQ6IGZ1
bmN0aW9uKGV2ZW50KQpAQCAtNjQzLDcgKzY1MCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmll
dy5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIHNlbGYuYWRkTWVzc2FnZShuZXcgV2ViSW5z
cGVjdG9yLkNvbnNvbGVDb21tYW5kUmVzdWx0KHJlc3VsdCwgd2FzVGhyb3duLCBjb21tYW5kTWVz
c2FnZSkpOwogICAgICAgICB9Ci0gICAgICAgIHRoaXMuZXZhbEluSW5zcGVjdGVkV2luZG93KHN0
ciwgImNvbnNvbGUiLCB0cnVlLCB1bmRlZmluZWQsIHByaW50UmVzdWx0KTsKKyAgICAgICAgdGhp
cy5ldmFsSW5JbnNwZWN0ZWRXaW5kb3coc3RyLCAiY29uc29sZSIsIHRydWUsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCBwcmludFJlc3VsdCk7CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLnVzZXJNZXRy
aWNzLkNvbnNvbGVFdmFsdWF0ZWQucmVjb3JkKCk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKaW5kZXggMzRkZDI3YTdh
OGU1Y2Q0OWEyYmJiODVjNjFkODM0MTUxZWVlNzcwNi4uYjBjZGE4Mzg0ZTczMjhhMjRiODI4MTE4
NmMwMzBlMDBhODI2YjlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTM5LDcgKzM5LDEzIEBAIFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QgPSBmdW5jdGlvbihvYmplY3RJZCwgdHlwZSwgc3VidHlwZSwgdmFsdWUsIGRl
c2NyaXB0aW9uCiAgICAgICAgIHRoaXMuX2hhc0NoaWxkcmVuID0gdHJ1ZTsKICAgICB9IGVsc2Ug
ewogICAgICAgICAvLyBQcmltaXRpdmUKLSAgICAgICAgdGhpcy5fZGVzY3JpcHRpb24gPSBkZXNj
cmlwdGlvbiB8fCAodmFsdWUgKyAiIik7CisgICAgICAgIGlmICghZGVzY3JpcHRpb24pIHsKKyAg
ICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICJvYmplY3QiICYmIHR5cGVvZiB2YWx1ZS50
b1N0cmluZyAhPT0gImZ1bmN0aW9uIikKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAodmFsdWUgKyAiIik7CisgICAgICAgIH0KKyAg
ICAgICAgdGhpcy5fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKICAgICAgICAgdGhpcy5faGFz
Q2hpbGRyZW4gPSBmYWxzZTsKICAgICB9CiB9CkBAIC0xOTQsNyArMjAwLDE3IEBAIFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAgY2FsbGJhY2soKGVy
cm9yIHx8IHdhc1Rocm93bikgPyBudWxsIDogV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9t
UGF5bG9hZChyZXN1bHQpKTsKICAgICAgICAgfQogCi0gICAgICAgIFJ1bnRpbWVBZ2VudC5jYWxs
RnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwgZnVuY3Rpb25EZWNsYXJhdGlvbi50b1N0cmluZygp
LCB1bmRlZmluZWQsIG15Y2FsbGJhY2spOworICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0
aW9uT24odGhpcy5fb2JqZWN0SWQsIGZ1bmN0aW9uRGVjbGFyYXRpb24udG9TdHJpbmcoKSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIG15Y2FsbGJhY2spOworICAgIH0sCisKKyAgICBjYWxsRnVuY3Rp
b25KU09OOiBmdW5jdGlvbihmdW5jdGlvbkRlY2xhcmF0aW9uLCBjYWxsYmFjaykKKyAgICB7Cisg
ICAgICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2soZXJyb3IsIHJlc3VsdCwgd2FzVGhyb3duKQorICAg
ICAgICB7CisgICAgICAgICAgICBjYWxsYmFjaygoZXJyb3IgfHwgd2FzVGhyb3duKSA/IG51bGwg
OiByZXN1bHQudmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgUnVudGltZUFnZW50LmNhbGxG
dW5jdGlvbk9uKHRoaXMuX29iamVjdElkLCBmdW5jdGlvbkRlY2xhcmF0aW9uLnRvU3RyaW5nKCks
IHVuZGVmaW5lZCwgdHJ1ZSwgbXljYWxsYmFjayk7CiAgICAgfSwKIAogICAgIHJlbGVhc2U6IGZ1
bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
V2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKaW5kZXggMmQ3YmEyMWEw
ODU3NWNhMzU3ZGZjMTg1M2I4NDEzMThmN2Q0MDUyMy4uNGJiYWQyOTA2NmExOTZkMjE2YmM0YmY3
ZjIxMDcwMzNkN2I3ZTZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKQEAg
LTE1OSw3ICsxNTksNyBAQCBXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJv
dG90eXBlID0gewogICAgICAgICAgICAgaWYgKCFleHByZXNzaW9uKQogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5ldmFsSW5JbnNw
ZWN0ZWRXaW5kb3coZXhwcmVzc2lvbiwgdGhpcy5fd2F0Y2hPYmplY3RHcm91cElkLCBmYWxzZSwg
dHJ1ZSwgYXBwZW5kUmVzdWx0LmJpbmQodGhpcywgZXhwcmVzc2lvbiwgaSkpOworICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuZXZhbEluSW5zcGVjdGVkV2luZG93KGV4cHJlc3Npb24s
IHRoaXMuX3dhdGNoT2JqZWN0R3JvdXBJZCwgZmFsc2UsIHRydWUsIHVuZGVmaW5lZCwgYXBwZW5k
UmVzdWx0LmJpbmQodGhpcywgZXhwcmVzc2lvbiwgaSkpOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKCFwcm9wZXJ0eUNvdW50KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102502</attachid>
            <date>2011-08-01 02:35:52 -0700</date>
            <delta_ts>2011-08-01 02:37:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65457-20110801133550.patch</filename>
            <type>text/plain</type>
            <size>30052</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIxMDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NDc4MmUzYzg4MjQ0NjI5OGQxZGEx
YmZlMjVkOTdkNzI2MTUxZDQwLi4wNzYyOTYwNTI2YTdkYTA0MDlkODAxMjEzNTExYzVmMWJiNWZi
ZjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDgtMDEgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdHlwaW5nIGFu
IGV4cHJlc3Npb24gaW4gYW4gaWZyYW1lIGxlYWRzIHRvIG11bHRpcGxlICJVbnNhZmUgSmF2YVNj
cmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZS4uLiIgZXJyb3JzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ1NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1jZC1jb21wbGV0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvbnNvbGUtY2QtY29tcGxldGlv
bnMtaWZyYW1lLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTAxICBQYXZlbCBGZWxkbWFuICA8cGZl
bGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBncm91cCBzY3JpcHRz
IGJ5IGZvbGRlciBpbiB0aGUgc2NyaXB0cyBzZWxlY3Rvci4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21wbGV0
aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ2ZjM5MGFhNGI2NjM2MzZiMWI0YWM5N2Rj
MjZhOTg0YzI2OTA4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorVGVzdCB0aGF0IGNvbXBsZXRpb25zIGluIHRoZSBjb250ZXh0IG9mIGFuIGlmcmFtZSB3
aXRoIGEgZGlmZmVyZW50IG9yaWdpbiB3aWxsIHJlc3VsdCBpbiBuYW1lcyBvZiBpdHMgZ2xvYmFs
IHZhcmlhYmxlcy4gVGVzdCBwYXNzZXMgaWYgYWxsIGdsb2JhbCB2YXJpYWJsZXMgYXJlIGZvdW5k
IGFtb25nIGNvbXBsZXRpb25zIEFORCB0aGVyZSBhcmUgTk8gY29uc29sZSBtZXNzYWdlcy4gQnVn
IDY1NDU3LgorCisKK215R2xvYmFsVmFyCitteUdsb2JhbEZ1bmN0aW9uCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxl
dGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzJkNmUwZDQzOTZkZmRlMDY5NjdhOGZhZDZjNmIzMDY2
MDMwNDJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJpbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LnNob3dDb25zb2xlUGFuZWwoKTsKKyAgICB2YXIg
c2VsZWN0b3IgPSBXZWJJbnNwZWN0b3IuY29uc29sZS5fY29udGV4dFNlbGVjdEVsZW1lbnQ7Cisg
ICAgdmFyIG9wdGlvbiA9IHNlbGVjdG9yLmZpcnN0Q2hpbGQ7CisgICAgd2hpbGUgKG9wdGlvbikg
eworICAgICAgICBpZiAob3B0aW9uLnRleHRDb250ZW50ICYmIG9wdGlvbi50ZXh0Q29udGVudC5p
bmRleE9mKCJteUlGcmFtZSIpID09PSAwKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIG9w
dGlvbiA9IG9wdGlvbi5uZXh0U2libGluZzsKKyAgICB9CisgICAgaWYgKCFvcHRpb24pIHsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxFRDogbXlJRnJhbWUgbm90IGZvdW5k
IGluIHRoZSBjb250ZXh0IGxpc3QiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBvcHRpb24uc2VsZWN0ZWQgPSB0cnVl
OworCisKKyAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5fY29tcGxldGlvbnMoIiIsICJteUdsb2Ii
LCBmYWxzZSwgY2hlY2tDb21wbGV0aW9ucy5iaW5kKHRoaXMpKTsKKyAgICBmdW5jdGlvbiBjaGVj
a0NvbXBsZXRpb25zKGNvbXBsZXRpb25zKQorICAgIHsKKyAgICAgICAgdmFyIGV4cGVjdGVkID0g
WyJteUdsb2JhbFZhciIsICJteUdsb2JhbEZ1bmN0aW9uIl07CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChjb21wbGV0
aW9ucy5pbmRleE9mKGV4cGVjdGVkW2ldKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoZXhwZWN0ZWRbaV0pOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJOT1QgRk9VTkQ6ICIgKyBleHBlY3Rl
ZFtpXSk7CisgICAgICAgIH0KKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3Nh
Z2VzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQor
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD4KK1Rlc3QgdGhhdCBjb21wbGV0aW9u
cyBpbiB0aGUgY29udGV4dCBvZiBhbiBpZnJhbWUgd2l0aCBhIGRpZmZlcmVudCBvcmlnaW4gd2ls
bAorcmVzdWx0IGluIG5hbWVzIG9mIGl0cyBnbG9iYWwgdmFyaWFibGVzLiBUZXN0IHBhc3NlcyBp
ZiBhbGwgZ2xvYmFsIHZhcmlhYmxlcworYXJlIGZvdW5kIGFtb25nIGNvbXBsZXRpb25zIEFORCB0
aGVyZSBhcmUgTk8gY29uc29sZSBtZXNzYWdlcy4KKzxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ1NyI+QnVnIDY1NDU3LjwvYT4KKzwvcD4KKzxpZnJh
bWUgbmFtZT0ibXlJRnJhbWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMvY29uc29sZS1jZC1jb21wbGV0aW9ucy1pZnJhbWUuaHRtbCIgb25sb2FkPSJydW5U
ZXN0KCkiPjwvaWZyYW1lPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY29uc29sZS1jZC1jb21wbGV0aW9u
cy1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9jb25zb2xlLWNkLWNvbXBsZXRpb25zLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyM2YzNDBi
MzMzOTE2N2JjMjRiMjljZDM5MDE1YmFkNzRmNDUxODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY29uc29sZS1jZC1jb21wbGV0
aW9ucy1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDQgQEAKKzxzY3JpcHQ+Cit2YXIgbXlHbG9iYWxW
YXIgPSAyMDExOworZnVuY3Rpb24gbXlHbG9iYWxGdW5jdGlvbigpIHsgfQorPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZWY0ODA2ZjYzZWYxZDYxZDJkYjkxMzdkZGMwNjkzMWMyMWIzNTZhNS4uNzY1
M2VlNzM0YjBkNGY0YTlhYTVlZjJiZjc1Y2NjNGJiN2I3NDNiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQyIEBACisyMDExLTA4LTAxICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHR5cGluZyBhbiBleHByZXNzaW9uIGluIGFu
IGlmcmFtZSBsZWFkcyB0byBtdWx0aXBsZSAiVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBh
Y2Nlc3MgZnJhbWUuLi4iIGVycm9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjU0NTcKKworICAgICAgICBDb25zb2xlIGNvbXBsZXRpb25zIGFyZSBu
b3cgZG9uZSB1c2luZyBldmFsdWF0aW9uIHdoaWNoIHJldHVybnMgYSBKU09OIG9iamVjdCB3aXRo
IGFsbCBwcm9wZXJ0eSBuYW1lcyByYXRoZXIgdGhhbiBhIHJlbW90ZQorICAgICAgICBvYmplY3Qu
IEFsc28gUnVudGltZS5ldmFsdWF0ZSBhbmQgUnVudGltZS5jYWxsRnVuY3Rpb25PbiBjb21tYW5k
cyB3ZXJlIGV4dGVuZGVkIHdpdGggYW4gb3B0aW9uYWwgcGFyYW1ldGVyIHRoYXQgYWxsb3dzIHRv
CisgICAgICAgIGdldCByZXN1bHQgYXMgSlNPTiB2YWx1ZS4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9j
b25zb2xlLWNkLWNvbXBsZXRpb25zLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdDo6ZXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHQ6OmNhbGxGdW5jdGlvbk9uKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICguKToKKyAgICAgICAgKCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXNCb29sKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUnVudGltZUFnZW50OjpjYWxsRnVuY3Rpb25Pbik6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlLl9jb21wbGV0aW9ucy5ldmFsdWF0ZWQuZ2V0Q29tcGxldGlvbnMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fY29tcGxldGlvbnMu
ZXZhbHVhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUu
X2NvbXBsZXRpb25zLnJlY2VpdmVkUHJvcGVydHlTZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fY29tcGxldGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5ldmFsSW5JbnNwZWN0ZWRXaW5kb3cpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
LnByb3RvdHlwZS5jYWxsRnVuY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5wcm90b3R5cGUuY2FsbEZ1bmN0aW9uSlNPTik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvdG90eXBlLnVwZGF0ZSk6CisKIDIwMTEt
MDgtMDEgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGdyb3VwIHNjcmlwdHMgYnkgZm9sZGVyIGluIHRoZSBzY3JpcHRzIHNlbGVj
dG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKaW5kZXgg
NTJiZmFkZWRlYWEzMmMzZDgyZTA5NjE0ODgzYTg4NzVjYTQxY2RlNS4uOGMyYmM3YzY1OTBlYzYz
NmFhOGIwM2JjMWRlZWNkMDQ3M2NiMzYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuY3BwCkBAIC01NCwyMSArNTQsMjMgQEAgSW5qZWN0ZWRTY3JpcHQ6Oklu
amVjdGVkU2NyaXB0KFNjcmlwdE9iamVjdCBpbmplY3RlZFNjcmlwdE9iamVjdCwgSW5zcGVjdGVk
U3RhdGUKIHsKIH0KIAotdm9pZCBJbmplY3RlZFNjcmlwdDo6ZXZhbHVhdGUoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2Jq
ZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pCit2b2lkIEluamVjdGVkU2NyaXB0OjpldmFs
dWF0ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwg
Y29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwgYm9vbCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGJv
b2wgc2VuZFJlc3VsdEJ5VmFsdWUsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJv
b2wqIHdhc1Rocm93bikKIHsKICAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV9pbmpl
Y3RlZFNjcmlwdE9iamVjdCwgImV2YWx1YXRlIik7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQoZXhwcmVzc2lvbik7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2JqZWN0R3JvdXAp
OwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGluY2x1ZGVDb21tYW5kTGluZUFQSSk7Cisg
ICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoc2VuZFJlc3VsdEJ5VmFsdWUpOwogICAgIG1ha2VF
dmFsQ2FsbChlcnJvclN0cmluZywgZnVuY3Rpb24sIHJlc3VsdCwgd2FzVGhyb3duKTsKIH0KIAot
dm9pZCBJbmplY3RlZFNjcmlwdDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNv
bnN0IFN0cmluZyYgYXJndW1lbnRzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBi
b29sKiB3YXNUaHJvd24pCit2b2lkIEluamVjdGVkU2NyaXB0OjpjYWxsRnVuY3Rpb25PbihFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBhcmd1bWVudHMsIGJvb2wgc2VuZFJlc3VsdEJ5
VmFsdWUsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93bikK
IHsKICAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV9pbmplY3RlZFNjcmlwdE9iamVj
dCwgImNhbGxGdW5jdGlvbk9uIik7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2JqZWN0
SWQpOwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGV4cHJlc3Npb24pOwogICAgIGZ1bmN0
aW9uLmFwcGVuZEFyZ3VtZW50KGFyZ3VtZW50cyk7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQoc2VuZFJlc3VsdEJ5VmFsdWUpOwogICAgIG1ha2VFdmFsQ2FsbChlcnJvclN0cmluZywgZnVu
Y3Rpb24sIHJlc3VsdCwgd2FzVGhyb3duKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuaAppbmRleCA3MGI4YzY3N2E1MzRmNTk3ZmJkNmUzYjAxNDY5NjBlZWNh
MWY2ODE1Li41ZThmZmMwODZiYzZhODMyZTc2MmNlYzRiNjAwZjE4YmQxN2E0ZTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaApAQCAtNTUsOCArNTUsMjAgQEAg
cHVibGljOgogCiAgICAgYm9vbCBoYXNOb1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pbmplY3Rl
ZFNjcmlwdE9iamVjdC5oYXNOb1ZhbHVlKCk7IH0KIAotICAgIHZvaWQgZXZhbHVhdGUoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3Jv
dXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piog
cmVzdWx0LCBib29sKiB3YXNUaHJvd24pOwotICAgIHZvaWQgY2FsbEZ1bmN0aW9uT24oRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24s
IGNvbnN0IFN0cmluZyYgYXJndW1lbnRzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0
LCBib29sKiB3YXNUaHJvd24pOworICAgIHZvaWQgZXZhbHVhdGUoRXJyb3JTdHJpbmcqLAorICAg
ICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLAorICAgICAgICAgICAgICAg
ICAgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwKKyAgICAgICAgICAgICAgICAgIGJvb2wgaW5j
bHVkZUNvbW1hbmRMaW5lQVBJLAorICAgICAgICAgICAgICAgICAgYm9vbCBzZW5kUmVzdWx0QnlW
YWx1ZSwKKyAgICAgICAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQs
CisgICAgICAgICAgICAgICAgICBib29sKiB3YXNUaHJvd24pOworICAgIHZvaWQgY2FsbEZ1bmN0
aW9uT24oRXJyb3JTdHJpbmcqLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5n
JiBvYmplY3RJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZXhwcmVz
c2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgYXJndW1lbnRzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBzZW5kUmVzdWx0QnlWYWx1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICBib29sKiB3YXNUaHJvd24pOwogICAgIHZvaWQgZXZhbHVhdGVPbkNh
bGxGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25z
dCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0
cmluZyYgb2JqZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pOwogICAgIHZvaWQgZ2V0UHJv
cGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGJvb2wgaWdub3Jl
SGFzT3duUHJvcGVydHksIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCk7CiAgICAgTm9k
ZSogbm9kZUZvck9iamVjdElkKGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCmluZGV4IDY3YmE4NDZl
ZDNhZGQxNjI4MjNkZjYxNjg1ZThmNmZjYjY3YThmMWUuLmFmN2FmZjY2YmFlYmJlM2VmOGMyNTdl
YTI0YmQ0ZmI5NmZiNzdjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTEwOCwxMCArMTA4LDEwIEBAIEluamVjdGVkU2NyaXB0
LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLy8gVGhpcyBtZXRob2QgY2Fubm90IHRocm93
LgotICAgIF93cmFwT2JqZWN0OiBmdW5jdGlvbihvYmplY3QsIG9iamVjdEdyb3VwTmFtZSkKKyAg
ICBfd3JhcE9iamVjdDogZnVuY3Rpb24ob2JqZWN0LCBvYmplY3RHcm91cE5hbWUsIGZvcmNlVmFs
dWVUeXBlKQogICAgIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgSW5q
ZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0KG9iamVjdCwgb2JqZWN0R3JvdXBOYW1lKTsKKyAgICAg
ICAgICAgIHJldHVybiBuZXcgSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0KG9iamVjdCwgb2Jq
ZWN0R3JvdXBOYW1lLCBmb3JjZVZhbHVlVHlwZSk7CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAg
ICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gaW5qZWN0
ZWRTY3JpcHQuX2Rlc2NyaWJlKGUpOwpAQCAtMTgzLDggKzE4Myw4IEBAIEluamVjdGVkU2NyaXB0
LnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0eU5hbWVz
Lmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gcHJvcGVydHlO
YW1lc1tpXTsKIAotICAgICAgICAgICAgdmFyIGdldHRlciA9IG9iamVjdFsiX19sb29rdXBHZXR0
ZXJfXyJdICYmIG9iamVjdC5fX2xvb2t1cEdldHRlcl9fKHByb3BlcnR5TmFtZSk7Ci0gICAgICAg
ICAgICB2YXIgc2V0dGVyID0gb2JqZWN0WyJfX2xvb2t1cFNldHRlcl9fIl0gJiYgb2JqZWN0Ll9f
bG9va3VwU2V0dGVyX18ocHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgIHZhciBnZXR0ZXIgPSAo
dHlwZW9mIG9iamVjdFsiX19sb29rdXBHZXR0ZXJfXyJdID09PSAiZnVuY3Rpb24iKSAmJiBvYmpl
Y3QuX19sb29rdXBHZXR0ZXJfXyhwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgdmFyIHNldHRl
ciA9ICh0eXBlb2Ygb2JqZWN0WyJfX2xvb2t1cFNldHRlcl9fIl0gPT09ICJmdW5jdGlvbiIpICYm
IG9iamVjdC5fX2xvb2t1cFNldHRlcl9fKHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICBpZiAo
Z2V0dGVyIHx8IHNldHRlcikgewogICAgICAgICAgICAgICAgIGlmIChnZXR0ZXIpIHsKICAgICAg
ICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0ge307CkBAIC0yNDYsMTIgKzI0NiwxMiBAQCBJ
bmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhw
cm9wZXJ0eU5hbWVTZXQpOwogICAgIH0sCiAKLSAgICBldmFsdWF0ZTogZnVuY3Rpb24oZXhwcmVz
c2lvbiwgb2JqZWN0R3JvdXAsIGluamVjdENvbW1hbmRMaW5lQVBJKQorICAgIGV2YWx1YXRlOiBm
dW5jdGlvbihleHByZXNzaW9uLCBvYmplY3RHcm91cCwgaW5qZWN0Q29tbWFuZExpbmVBUEksIHNl
bmRSZXN1bHRCeVZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2V2YWx1YXRlQW5k
V3JhcChJbmplY3RlZFNjcmlwdEhvc3QuZXZhbHVhdGUsIEluamVjdGVkU2NyaXB0SG9zdCwgZXhw
cmVzc2lvbiwgb2JqZWN0R3JvdXAsIGZhbHNlLCBpbmplY3RDb21tYW5kTGluZUFQSSk7CisgICAg
ICAgIHJldHVybiB0aGlzLl9ldmFsdWF0ZUFuZFdyYXAoSW5qZWN0ZWRTY3JpcHRIb3N0LmV2YWx1
YXRlLCBJbmplY3RlZFNjcmlwdEhvc3QsIGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBmYWxzZSwg
aW5qZWN0Q29tbWFuZExpbmVBUEksIHNlbmRSZXN1bHRCeVZhbHVlKTsKICAgICB9LAogCi0gICAg
Y2FsbEZ1bmN0aW9uT246IGZ1bmN0aW9uKG9iamVjdElkLCBleHByZXNzaW9uLCBhcmdzKQorICAg
IGNhbGxGdW5jdGlvbk9uOiBmdW5jdGlvbihvYmplY3RJZCwgZXhwcmVzc2lvbiwgYXJncywgc2Vu
ZFJlc3VsdEJ5VmFsdWUpCiAgICAgewogICAgICAgICB2YXIgcGFyc2VkT2JqZWN0SWQgPSB0aGlz
Ll9wYXJzZU9iamVjdElkKG9iamVjdElkKTsKICAgICAgICAgdmFyIG9iamVjdCA9IHRoaXMuX29i
amVjdEZvcklkKHBhcnNlZE9iamVjdElkKTsKQEAgLTI4NywxOCArMjg3LDE4IEBAIEluamVjdGVk
U2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm4gIkdpdmVuIGV4cHJl
c3Npb24gZG9lcyBub3QgZXZhbHVhdGUgdG8gYSBmdW5jdGlvbiI7CiAKICAgICAgICAgICAgIHJl
dHVybiB7IHdhc1Rocm93bjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IHRo
aXMuX3dyYXBPYmplY3QoZnVuYy5hcHBseShvYmplY3QsIHJlc29sdmVkQXJncyksIG9iamVjdEdy
b3VwKSB9OworICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiB0aGlzLl93cmFwT2JqZWN0KGZ1
bmMuYXBwbHkob2JqZWN0LCByZXNvbHZlZEFyZ3MpLCBvYmplY3RHcm91cCwgc2VuZFJlc3VsdEJ5
VmFsdWUpIH07CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgIHJldHVybiB7IHdh
c1Rocm93bjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhpcy5fd3JhcE9i
amVjdChlLCBvYmplY3RHcm91cCkgfTsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBfZXZhbHVh
dGVBbmRXcmFwOiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbiwgb2Jq
ZWN0R3JvdXAsIGlzRXZhbE9uQ2FsbEZyYW1lLCBpbmplY3RDb21tYW5kTGluZUFQSSkKKyAgICBf
ZXZhbHVhdGVBbmRXcmFwOiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lv
biwgb2JqZWN0R3JvdXAsIGlzRXZhbE9uQ2FsbEZyYW1lLCBpbmplY3RDb21tYW5kTGluZUFQSSwg
c2VuZFJlc3VsdEJ5VmFsdWUpCiAgICAgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgcmV0
dXJuIHsgd2FzVGhyb3duOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhp
cy5fd3JhcE9iamVjdCh0aGlzLl9ldmFsdWF0ZU9uKGV2YWxGdW5jdGlvbiwgb2JqZWN0LCBleHBy
ZXNzaW9uLCBpc0V2YWxPbkNhbGxGcmFtZSwgaW5qZWN0Q29tbWFuZExpbmVBUEkpLCBvYmplY3RH
cm91cCkgfTsKKyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhpcy5fd3JhcE9iamVjdCh0
aGlzLl9ldmFsdWF0ZU9uKGV2YWxGdW5jdGlvbiwgb2JqZWN0LCBleHByZXNzaW9uLCBpc0V2YWxP
bkNhbGxGcmFtZSwgaW5qZWN0Q29tbWFuZExpbmVBUEkpLCBvYmplY3RHcm91cCwgc2VuZFJlc3Vs
dEJ5VmFsdWUpIH07CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgIHJldHVybiB7
IHdhc1Rocm93bjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhpcy5fd3Jh
cE9iamVjdChlLCBvYmplY3RHcm91cCkgfTsKQEAgLTQ1MCwxMCArNDUwLDEwIEBAIEluamVjdGVk
U2NyaXB0LnByb3RvdHlwZSA9IHsKIAogdmFyIGluamVjdGVkU2NyaXB0ID0gbmV3IEluamVjdGVk
U2NyaXB0KCk7CiAKLUluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVj
dCwgb2JqZWN0R3JvdXBOYW1lKQorSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0ID0gZnVuY3Rp
b24ob2JqZWN0LCBvYmplY3RHcm91cE5hbWUsIGZvcmNlVmFsdWVUeXBlKQogewogICAgIHRoaXMu
dHlwZSA9IHR5cGVvZiBvYmplY3Q7Ci0gICAgaWYgKGluamVjdGVkU2NyaXB0LmlzUHJpbWl0aXZl
VmFsdWUob2JqZWN0KSB8fCBvYmplY3QgPT09IG51bGwpIHsKKyAgICBpZiAoaW5qZWN0ZWRTY3Jp
cHQuaXNQcmltaXRpdmVWYWx1ZShvYmplY3QpIHx8IG9iamVjdCA9PT0gbnVsbCB8fCBmb3JjZVZh
bHVlVHlwZSkgewogCiAgICAgICAgIC8vIFdlIGRvbid0IHNlbmQgdW5kZWZpbmVkIHZhbHVlcyBv
dmVyIEpTT04uCiAgICAgICAgIGlmICh0eXBlb2Ygb2JqZWN0ICE9PSAidW5kZWZpbmVkIikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCAyMjM1ZTQzYmI0NmQ1YmU0
OTk5Y2ZkODQ5OGY2YjgwNDY2NWQ1MjRiLi4wMGNkMTU0YTcxMGNhY2UxNGJjYTA3YTk5OGU4Mzdh
ZWQ0NjE0MDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0y
MzAsNyArMjMwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5
cGUiOiAic3RyaW5nIiwgImVudW0iOiBbIm9iamVjdCIsICJmdW5jdGlvbiIsICJ1bmRlZmluZWQi
LCAic3RyaW5nIiwgIm51bWJlciIsICJib29sZWFuIl0sICJkZXNjcmlwdGlvbiI6ICJPYmplY3Qg
dHlwZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3VidHlwZSIsICJ0eXBl
IjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJlbnVtIjogWyJhcnJheSIsICJudWxsIiwg
Im5vZGUiLCAicmVnZXhwIiwgImRhdGUiXSwgImRlc2NyaXB0aW9uIjogIk9iamVjdCBzdWJ0eXBl
IGhpbnQuIFNwZWNpZmllZCBmb3IgPGNvZGU+b2JqZWN0PC9jb2RlPiB0eXBlIHZhbHVlcyBvbmx5
LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjbGFzc05hbWUiLCAidHlwZSI6
ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiT2JqZWN0IGNsYXNz
IChjb25zdHJ1Y3RvcikgbmFtZS4gU3BlY2lmaWVkIGZvciA8Y29kZT5vYmplY3Q8L2NvZGU+IHR5
cGUgdmFsdWVzIG9ubHkuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVl
IiwgInR5cGUiOiAiYW55IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlbW90
ZSBvYmplY3QgdmFsdWUgKGluIGNhc2Ugb2YgcHJpbWl0aXZlIHZhbHVlcykuIiB9LAorICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVlIiwgInR5cGUiOiAiYW55IiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlbW90ZSBvYmplY3QgdmFsdWUgKGluIGNhc2Ugb2Yg
cHJpbWl0aXZlIHZhbHVlcyBvciBKU09OIHZhbHVlcyBpZiBpdCB3YXMgcmVxdWVzdGVkKS4iIH0s
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGVzY3JpcHRpb24iLCAidHlwZSI6ICJz
dHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3RyaW5nIHJlcHJlc2Vu
dGF0aW9uIG9mIHRoZSBvYmplY3QuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im9iamVjdElkIiwgIiRyZWYiOiAiUmVtb3RlT2JqZWN0SWQiLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiVW5pcXVlIG9iamVjdCBpZGVudGlmaWVyIChmb3Igbm9uLXByaW1pdGl2
ZSB2YWx1ZXMpLiIgfQogICAgICAgICAgICAgICAgIF0KQEAgLTI2Myw3ICsyNjMsOCBAQAogICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdEdyb3VwIiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN5bWJvbGljIGdyb3VwIG5hbWUg
dGhhdCBjYW4gYmUgdXNlZCB0byByZWxlYXNlIG11bHRpcGxlIG9iamVjdHMuIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImluY2x1ZGVDb21tYW5kTGluZUFQSSIsICJ0eXBlIjog
ImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRGV0ZXJtaW5lcyB3
aGV0aGVyIENvbW1hbmQgTGluZSBBUEkgc2hvdWxkIGJlIGF2YWlsYWJsZSBkdXJpbmcgdGhlIGV2
YWx1YXRpb24uIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvTm90UGF1c2VP
bkV4Y2VwdGlvbnMiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlNwZWNpZmllcyB3aGV0aGVyIGV2YWx1YXRpb24gc2hvdWxkIHN0b3Agb24gZXhj
ZXB0aW9ucy4gT3ZlcnJpZGVzIHNldFBhdXNlT25FeGNlcHRpb24gc3RhdGUuIiB9LAotICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3BlY2lmaWVzIGluIHdoaWNoIGZyYW1lIHRv
IHBlcmZvcm0gZXZhbHVhdGlvbi4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJm
cmFtZUlkIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIlNwZWNpZmllcyBpbiB3aGljaCBmcmFtZSB0byBwZXJmb3JtIGV2YWx1YXRpb24uIiB9LAor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbmRSZXN1bHRCeVZhbHVlIiwgInR5cGUi
OiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRo
ZSByZXN1bHQgaXMgZXhwZWN0ZWQgdG8gYmUgYSBKU09OIG9iamVjdCB3aGljaCBzaG91bGQgYmUg
c2VudCBieSB2YWx1ZS4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJy
ZXR1cm5zIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIkcmVm
IjogIlJlbW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0aW9uIHJlc3VsdC4iIH0s
CkBAIC0yNzYsNyArMjc3LDggQEAKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjogIlJlbW90ZU9i
amVjdElkIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIG9iamVjdCB0byBjYWxs
IGZ1bmN0aW9uIG9uLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmdW5jdGlv
bkRlY2xhcmF0aW9uIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkRlY2xhcmF0
aW9uIG9mIHRoZSBmdW5jdGlvbiB0byBjYWxsLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJhcmd1bWVudHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAi
Q2FsbEFyZ3VtZW50IiwgImRlc2NyaXB0aW9uIjogIkNhbGwgYXJndW1lbnQuIiB9LCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ2FsbCBhcmd1bWVudHMuIEFsbCBjYWxsIGFyZ3Vt
ZW50cyBtdXN0IGJlbG9uZyB0byB0aGUgc2FtZSBKYXZhU2NyaXB0IHdvcmxkIGFzIHRoZSB0YXJn
ZXQgb2JqZWN0LiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFyZ3VtZW50cyIs
ICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDYWxsQXJndW1lbnQiLCAiZGVz
Y3JpcHRpb24iOiAiQ2FsbCBhcmd1bWVudC4iIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJDYWxsIGFyZ3VtZW50cy4gQWxsIGNhbGwgYXJndW1lbnRzIG11c3QgYmVsb25nIHRv
IHRoZSBzYW1lIEphdmFTY3JpcHQgd29ybGQgYXMgdGhlIHRhcmdldCBvYmplY3QuIiB9LAorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbmRSZXN1bHRCeVZhbHVlIiwgInR5cGUiOiAi
Ym9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRoZSBy
ZXN1bHQgaXMgZXhwZWN0ZWQgdG8gYmUgYSBKU09OIG9iamVjdCB3aGljaCBzaG91bGQgYmUgc2Vu
dCBieSB2YWx1ZS4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1
cm5zIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIkcmVmIjog
IlJlbW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJDYWxsIHJlc3VsdC4iIH0sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCmluZGV4
IGU0M2FkYTgxMWEzZWE3YTA5MjA0MWIxODEyODA5Mzc5YzM5NmI5ZDQuLjZhMjQ1Mzk5NTVmYjYy
NDAyZmJhNzczNmE4MmNjNmFjZGRmMGQ4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCkBAIC00NSw2ICs0NSwxMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBib29sIGFzQm9vbChjb25zdCBib29sKiBjb25z
dCBiKQoreworICAgIHJldHVybiBiID8gKmIgOiBmYWxzZTsKK30KKwogSW5zcGVjdG9yUnVudGlt
ZUFnZW50OjpJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmpl
Y3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgOiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3Rl
ZFNjcmlwdE1hbmFnZXIpCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCkBAIC01Nyw3
ICs2Miw3IEBAIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6fkluc3BlY3RvclJ1bnRpbWVBZ2VudCgp
CiB7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBj
b25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5lQVBJ
LCBjb25zdCBib29sKiBjb25zdCBkb05vdFBhdXNlT25FeGNlcHRpb25zLCBjb25zdCBTdHJpbmcq
IGNvbnN0IGZyYW1lSWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdh
c1Rocm93bikKK3ZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBj
b25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5lQVBJ
LCBjb25zdCBib29sKiBjb25zdCBkb05vdFBhdXNlT25FeGNlcHRpb25zLCBjb25zdCBTdHJpbmcq
IGNvbnN0IGZyYW1lSWQsIGNvbnN0IGJvb2wqIGNvbnN0IHNlbmRSZXN1bHRCeVZhbHVlLCBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pCiB7CiAgICAgU2Ny
aXB0U3RhdGUqIHNjcmlwdFN0YXRlID0gMDsKICAgICBpZiAoZnJhbWVJZCkgewpAQCAtNzcsMTMg
KzgyLDEzIEBAIHZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwCiAgICAgQVNTRVJUKG1fc2NyaXB0RGVi
dWdTZXJ2ZXIpOwogICAgIGJvb2wgcGF1c2VTdGF0ZUNoYW5nZWQgPSBmYWxzZTsKICAgICBTY3Jp
cHREZWJ1Z1NlcnZlcjo6UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSBwcmVzZW50U3RhdGUgPSBtX3Nj
cmlwdERlYnVnU2VydmVyLT5wYXVzZU9uRXhjZXB0aW9uc1N0YXRlKCk7Ci0gICAgaWYgKGRvTm90
UGF1c2VPbkV4Y2VwdGlvbnMgJiYgKmRvTm90UGF1c2VPbkV4Y2VwdGlvbnMgJiYgcHJlc2VudFN0
YXRlICE9IFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnMpIHsKKyAgICBp
ZiAoYXNCb29sKGRvTm90UGF1c2VPbkV4Y2VwdGlvbnMpICYmIHByZXNlbnRTdGF0ZSAhPSBTY3Jp
cHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25FeGNlcHRpb25zKSB7CiAgICAgICAgIG1fc2NyaXB0
RGVidWdTZXJ2ZXItPnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoU2NyaXB0RGVidWdTZXJ2ZXI6
OkRvbnRQYXVzZU9uRXhjZXB0aW9ucyk7CiAgICAgICAgIHBhdXNlU3RhdGVDaGFuZ2VkID0gdHJ1
ZTsKICAgICB9CiAjZW5kaWYKIAotICAgIGluamVjdGVkU2NyaXB0LmV2YWx1YXRlKGVycm9yU3Ry
aW5nLCBleHByZXNzaW9uLCBvYmplY3RHcm91cCA/ICpvYmplY3RHcm91cCA6ICIiLCBpbmNsdWRl
Q29tbWFuZExpbmVBUEkgPyAqaW5jbHVkZUNvbW1hbmRMaW5lQVBJIDogZmFsc2UsIHJlc3VsdCwg
d2FzVGhyb3duKTsKKyAgICBpbmplY3RlZFNjcmlwdC5ldmFsdWF0ZShlcnJvclN0cmluZywgZXhw
cmVzc2lvbiwgb2JqZWN0R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiAiIiwgYXNCb29sKGluY2x1ZGVD
b21tYW5kTGluZUFQSSksIGFzQm9vbChzZW5kUmVzdWx0QnlWYWx1ZSksIHJlc3VsdCwgd2FzVGhy
b3duKTsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGlmIChwYXVzZVN0
YXRlQ2hhbmdlZCkKQEAgLTkxLDcgKzk2LDcgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6
OmV2YWx1YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBleHAKICNl
bmRpZgogfQogCi12b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0aW9uT24oRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJp
bmcmIGV4cHJlc3Npb24sIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNvbnN0IG9wdGlv
bmFsQXJndW1lbnRzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNU
aHJvd24pCit2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JT
dHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcm
IGV4cHJlc3Npb24sIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNvbnN0IG9wdGlvbmFs
QXJndW1lbnRzLCBjb25zdCBib29sKiBjb25zdCBzZW5kUmVzdWx0QnlWYWx1ZSwgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKQogewogICAgIEluamVjdGVk
U2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVk
U2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwogICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNO
b1ZhbHVlKCkpIHsKQEAgLTEwMSw3ICsxMDYsNyBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2Vu
dDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbgog
ICAgIFN0cmluZyBhcmd1bWVudHM7CiAgICAgaWYgKG9wdGlvbmFsQXJndW1lbnRzKQogICAgICAg
ICBhcmd1bWVudHMgPSAoKm9wdGlvbmFsQXJndW1lbnRzKS0+dG9KU09OU3RyaW5nKCk7Ci0gICAg
aW5qZWN0ZWRTY3JpcHQuY2FsbEZ1bmN0aW9uT24oZXJyb3JTdHJpbmcsIG9iamVjdElkLCBleHBy
ZXNzaW9uLCBhcmd1bWVudHMsIHJlc3VsdCwgd2FzVGhyb3duKTsKKyAgICBpbmplY3RlZFNjcmlw
dC5jYWxsRnVuY3Rpb25PbihlcnJvclN0cmluZywgb2JqZWN0SWQsIGV4cHJlc3Npb24sIGFyZ3Vt
ZW50cywgYXNCb29sKHNlbmRSZXN1bHRCeVZhbHVlKSwgcmVzdWx0LCB3YXNUaHJvd24pOwogfQog
CiB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVydGllcyhFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGJvb2wgaWdub3JlSGFzT3duUHJv
cGVydHksIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaAppbmRleCAzZTFhM2EyNjc5ZjVk
OWVkMzBkMmZiNDM2ZTBhNTI5MWQwMTAxM2EwLi42NDZkNDU1MjZkZDE1NjY5NzkxODJkOTM5MTcx
ZjRmMThjOTUyMjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJ1bnRpbWVBZ2VudC5oCkBAIC01Myw4ICs1MywyMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
SW5zcGVjdG9yUnVudGltZUFnZW50KCk7CiAKICAgICAvLyBQYXJ0IG9mIHRoZSBwcm90b2NvbC4K
LSAgICB2b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9u
LCBjb25zdCBTdHJpbmcqIGNvbnN0IG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBjb25zdCBpbmNs
dWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGNvbnN0IGRvTm90UGF1c2VPbkV4Y2VwdGlv
bnMsIGNvbnN0IFN0cmluZyogY29uc3QgZnJhbWVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4q
IHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKTsKLSAgICB2b2lkIGNhbGxGdW5jdGlvbk9uKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9u
LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBjb25zdCBvcHRpb25hbEFyZ3VtZW50cywg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKTsKKyAgICB2
b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nKiwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbiwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyogY29uc3Qgb2Jq
ZWN0R3JvdXAsCisgICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBjb25zdCBpbmNsdWRlQ29t
bWFuZExpbmVBUEksCisgICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBjb25zdCBkb05vdFBh
dXNlT25FeGNlcHRpb25zLAorICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nKiBjb25zdCBm
cmFtZUlkLAorICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCogY29uc3Qgc2VuZFJlc3VsdEJ5
VmFsdWUsCisgICAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0
LAorICAgICAgICAgICAgICAgICAgYm9vbCogd2FzVGhyb3duKTsKKyAgICB2b2lkIGNhbGxGdW5j
dGlvbk9uKEVycm9yU3RyaW5nKiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgb2JqZWN0SWQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGV4cHJl
c3Npb24sCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+KiBjb25zdCBvcHRpb25hbEFyZ3VtZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGJvb2wqIGNvbnN0IHNlbmRSZXN1bHRCeVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wqIHdhc1Rocm93bik7CiAgICAgdm9pZCByZWxlYXNlT2JqZWN0KEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7CiAgICAgdm9pZCBnZXRQcm9wZXJ0aWVzKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgYm9vbCBpZ25vcmVIYXNPd25Qcm9wZXJ0
eSwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogcmVzdWx0KTsKICAgICB2b2lkIHJlbGVhc2VPYmpl
Y3RHcm91cChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKaW5kZXgg
NmIwODA1ZjMyZWVmZWY1ZDAwZmU1MTE5MTA1OTJlNDFiNzBhMGQxZi4uYjc1MjViOGU0MWVhMGQ3
MjIwMzkwMWJmMTVhMTQyYTI2YTNiYWM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBAIC00MDgsMjYgKzQwOCwzMyBAQCBXZWJJ
bnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIWV4cHJlc3Np
b25TdHJpbmcgJiYgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnBhdXNlZCkKICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5nZXRTZWxlY3RlZENhbGxGcmFtZVZhcmlh
YmxlcyhyZXBvcnRDb21wbGV0aW9ucy5iaW5kKHRoaXMpKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdGhpcy5ldmFsSW5JbnNwZWN0ZWRXaW5kb3coZXhwcmVzc2lvblN0cmluZywgImNvbXBs
ZXRpb24iLCB0cnVlLCB0cnVlLCBldmFsdWF0ZWQuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0
aGlzLmV2YWxJbkluc3BlY3RlZFdpbmRvdyhleHByZXNzaW9uU3RyaW5nLCAiY29tcGxldGlvbiIs
IHRydWUsIHRydWUsIHVuZGVmaW5lZCwgZXZhbHVhdGVkLmJpbmQodGhpcykpOwogCiAgICAgICAg
IGZ1bmN0aW9uIGV2YWx1YXRlZChyZXN1bHQsIHdhc1Rocm93bikKICAgICAgICAgewogICAgICAg
ICAgICAgaWYgKHdhc1Rocm93bikKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICByZXN1bHQuZ2V0QWxsUHJvcGVydGllcyhldmFsdWF0ZWRQcm9wZXJ0aWVzLmJpbmQodGhpcykp
OworICAgICAgICAgICAgdmFyIGdldENvbXBsZXRpb25zID0gZnVuY3Rpb24oKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIHZhciByZXN1bHRTZXQgPSB7fTsKKyAgICAgICAgICAgICAg
ICBmb3IgKHZhciBvID0gdGhpczsgbzsgbyA9IG8uX19wcm90b19fKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmFtZXMgPSBPYmplY3Qu
Z2V0T3duUHJvcGVydHlOYW1lcyhvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0U2V0W25hbWVzW2ldXSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0U2V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmVzdWx0LmNhbGxGdW5jdGlvbkpTT04oZ2V0Q29tcGxldGlvbnMsIHJlY2VpdmVkUHJvcGVydHlO
YW1lcy5iaW5kKHRoaXMpKTsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9uIGV2YWx1YXRl
ZFByb3BlcnRpZXMocHJvcGVydGllcykKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZWRQcm9wZXJ0
eU5hbWVzKHByb3BlcnR5TmFtZXMpCiAgICAgICAgIHsKICAgICAgICAgICAgIFJ1bnRpbWVBZ2Vu
dC5yZWxlYXNlT2JqZWN0R3JvdXAoImNvbXBsZXRpb24iKTsKLSAgICAgICAgICAgIHZhciBwcm9w
ZXJ0eU5hbWVzID0ge307Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgcHJvcGVydGllcyAm
JiBpIDwgcHJvcGVydGllcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICBwcm9wZXJ0eU5h
bWVzW3Byb3BlcnRpZXNbaV0ubmFtZV0gPSB0cnVlOwotICAgICAgICAgICAgcmVwb3J0Q29tcGxl
dGlvbnMuY2FsbCh0aGlzLCBwcm9wZXJ0eU5hbWVzKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1
bmN0aW9uIHJlcG9ydENvbXBsZXRpb25zKHByb3BlcnR5TmFtZXMpCi0gICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghcHJvcGVydHlOYW1lcykKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB2YXIgaW5jbHVkZUNvbW1hbmRMaW5lQVBJID0gKCFkb3ROb3RhdGlvbiAmJiAhYnJh
Y2tldE5vdGF0aW9uKTsKICAgICAgICAgICAgIGlmIChpbmNsdWRlQ29tbWFuZExpbmVBUEkpIHsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kTGluZUFQSSA9IFsiZGlyIiwgImRpcnhtbCIs
ICJrZXlzIiwgInZhbHVlcyIsICJwcm9maWxlIiwgInByb2ZpbGVFbmQiLCAibW9uaXRvckV2ZW50
cyIsICJ1bm1vbml0b3JFdmVudHMiLCAiaW5zcGVjdCIsICJjb3B5IiwgImNsZWFyIl07CkBAIC01
OTUsNyArNjAyLDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgfQogICAgIH0sCiAKLSAgICBldmFsSW5JbnNwZWN0ZWRXaW5kb3c6IGZ1bmN0aW9uKGV4
cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGRvTm90UGF1c2VP
bkV4Y2VwdGlvbnMsIGNhbGxiYWNrKQorICAgIGV2YWxJbkluc3BlY3RlZFdpbmRvdzogZnVuY3Rp
b24oZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZG9Ob3RQ
YXVzZU9uRXhjZXB0aW9ucywgZXZhbEFzSlNPTlZhbHVlLCBjYWxsYmFjaykKICAgICB7CiAgICAg
ICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMgJiYgV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzLnBhdXNlZCkgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3Jp
cHRzLmV2YWx1YXRlSW5TZWxlY3RlZENhbGxGcmFtZShleHByZXNzaW9uLCBvYmplY3RHcm91cCwg
aW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjYWxsYmFjayk7CkBAIC02MTIsNyArNjE5LDcgQEAgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICghZXJy
b3IpCiAgICAgICAgICAgICAgICAgY2FsbGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5m
cm9tUGF5bG9hZChyZXN1bHQpLCB3YXNUaHJvd24pOwogICAgICAgICB9Ci0gICAgICAgIFJ1bnRp
bWVBZ2VudC5ldmFsdWF0ZShleHByZXNzaW9uLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRM
aW5lQVBJLCBkb05vdFBhdXNlT25FeGNlcHRpb25zLCB0aGlzLl9jdXJyZW50RXZhbHVhdGlvbkNv
bnRleHRJZCgpLCBldmFsQ2FsbGJhY2spOworICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUo
ZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZG9Ob3RQYXVz
ZU9uRXhjZXB0aW9ucywgdGhpcy5fY3VycmVudEV2YWx1YXRpb25Db250ZXh0SWQoKSwgZXZhbEFz
SlNPTlZhbHVlLCBldmFsQ2FsbGJhY2spOwogICAgIH0sCiAKICAgICBfZW50ZXJLZXlQcmVzc2Vk
OiBmdW5jdGlvbihldmVudCkKQEAgLTY0Myw3ICs2NTAsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICBzZWxmLmFkZE1lc3NhZ2UobmV3IFdl
Ykluc3BlY3Rvci5Db25zb2xlQ29tbWFuZFJlc3VsdChyZXN1bHQsIHdhc1Rocm93biwgY29tbWFu
ZE1lc3NhZ2UpKTsKICAgICAgICAgfQotICAgICAgICB0aGlzLmV2YWxJbkluc3BlY3RlZFdpbmRv
dyhzdHIsICJjb25zb2xlIiwgdHJ1ZSwgdW5kZWZpbmVkLCBwcmludFJlc3VsdCk7CisgICAgICAg
IHRoaXMuZXZhbEluSW5zcGVjdGVkV2luZG93KHN0ciwgImNvbnNvbGUiLCB0cnVlLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgcHJpbnRSZXN1bHQpOwogCiAgICAgICAgIFdlYkluc3BlY3Rvci51c2Vy
TWV0cmljcy5Db25zb2xlRXZhbHVhdGVkLnJlY29yZCgpOwogICAgIH0sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCmluZGV4IDM0ZGQy
N2E3YThlNWNkNDlhMmJiYjg1YzYxZDgzNDE1MWVlZTc3MDYuLjcwMzY2MzM1YWI5MWI2N2Y2MDAx
MjEzZTMxOWM1M2M0NDliMWE0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCkBAIC0zOSw3ICszOSw3IEBAIFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3QgPSBmdW5jdGlvbihvYmplY3RJZCwgdHlwZSwgc3VidHlwZSwgdmFsdWUs
IGRlc2NyaXB0aW9uCiAgICAgICAgIHRoaXMuX2hhc0NoaWxkcmVuID0gdHJ1ZTsKICAgICB9IGVs
c2UgewogICAgICAgICAvLyBQcmltaXRpdmUKLSAgICAgICAgdGhpcy5fZGVzY3JpcHRpb24gPSBk
ZXNjcmlwdGlvbiB8fCAodmFsdWUgKyAiIik7CisgICAgICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0g
ZGVzY3JpcHRpb24gfHwgKHZhbHVlICsgIiIpOzsKICAgICAgICAgdGhpcy5faGFzQ2hpbGRyZW4g
PSBmYWxzZTsKICAgICB9CiB9CkBAIC0xOTQsNyArMTk0LDE3IEBAIFdlYkluc3BlY3Rvci5SZW1v
dGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAgY2FsbGJhY2soKGVycm9yIHx8IHdh
c1Rocm93bikgPyBudWxsIDogV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChy
ZXN1bHQpKTsKICAgICAgICAgfQogCi0gICAgICAgIFJ1bnRpbWVBZ2VudC5jYWxsRnVuY3Rpb25P
bih0aGlzLl9vYmplY3RJZCwgZnVuY3Rpb25EZWNsYXJhdGlvbi50b1N0cmluZygpLCB1bmRlZmlu
ZWQsIG15Y2FsbGJhY2spOworICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0aW9uT24odGhp
cy5fb2JqZWN0SWQsIGZ1bmN0aW9uRGVjbGFyYXRpb24udG9TdHJpbmcoKSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIG15Y2FsbGJhY2spOworICAgIH0sCisKKyAgICBjYWxsRnVuY3Rpb25KU09OOiBm
dW5jdGlvbihmdW5jdGlvbkRlY2xhcmF0aW9uLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGZ1
bmN0aW9uIG15Y2FsbGJhY2soZXJyb3IsIHJlc3VsdCwgd2FzVGhyb3duKQorICAgICAgICB7Cisg
ICAgICAgICAgICBjYWxsYmFjaygoZXJyb3IgfHwgd2FzVGhyb3duKSA/IG51bGwgOiByZXN1bHQu
dmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgUnVudGltZUFnZW50LmNhbGxGdW5jdGlvbk9u
KHRoaXMuX29iamVjdElkLCBmdW5jdGlvbkRlY2xhcmF0aW9uLnRvU3RyaW5nKCksIHVuZGVmaW5l
ZCwgdHJ1ZSwgbXljYWxsYmFjayk7CiAgICAgfSwKIAogICAgIHJlbGVhc2U6IGZ1bmN0aW9uKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHBy
ZXNzaW9uc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKaW5kZXggMmQ3YmEyMWEwODU3NWNhMzU3
ZGZjMTg1M2I4NDEzMThmN2Q0MDUyMy4uNGJiYWQyOTA2NmExOTZkMjE2YmM0YmY3ZjIxMDcwMzNk
N2I3ZTZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9X
YXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKQEAgLTE1OSw3ICsx
NTksNyBAQCBXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgaWYgKCFleHByZXNzaW9uKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5ldmFsSW5JbnNwZWN0ZWRXaW5k
b3coZXhwcmVzc2lvbiwgdGhpcy5fd2F0Y2hPYmplY3RHcm91cElkLCBmYWxzZSwgdHJ1ZSwgYXBw
ZW5kUmVzdWx0LmJpbmQodGhpcywgZXhwcmVzc2lvbiwgaSkpOworICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmNvbnNvbGUuZXZhbEluSW5zcGVjdGVkV2luZG93KGV4cHJlc3Npb24sIHRoaXMuX3dh
dGNoT2JqZWN0R3JvdXBJZCwgZmFsc2UsIHRydWUsIHVuZGVmaW5lZCwgYXBwZW5kUmVzdWx0LmJp
bmQodGhpcywgZXhwcmVzc2lvbiwgaSkpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFwcm9w
ZXJ0eUNvdW50KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102503</attachid>
            <date>2011-08-01 02:38:05 -0700</date>
            <delta_ts>2011-08-01 03:12:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65457-20110801133803.patch</filename>
            <type>text/plain</type>
            <size>29719</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIxMDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NDc4MmUzYzg4MjQ0NjI5OGQxZGEx
YmZlMjVkOTdkNzI2MTUxZDQwLi4wNzYyOTYwNTI2YTdkYTA0MDlkODAxMjEzNTExYzVmMWJiNWZi
ZjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDgtMDEgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdHlwaW5nIGFu
IGV4cHJlc3Npb24gaW4gYW4gaWZyYW1lIGxlYWRzIHRvIG11bHRpcGxlICJVbnNhZmUgSmF2YVNj
cmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZS4uLiIgZXJyb3JzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ1NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1jZC1jb21wbGV0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvbnNvbGUtY2QtY29tcGxldGlv
bnMtaWZyYW1lLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTAxICBQYXZlbCBGZWxkbWFuICA8cGZl
bGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBncm91cCBzY3JpcHRz
IGJ5IGZvbGRlciBpbiB0aGUgc2NyaXB0cyBzZWxlY3Rvci4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21wbGV0
aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ2ZjM5MGFhNGI2NjM2MzZiMWI0YWM5N2Rj
MjZhOTg0YzI2OTA4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorVGVzdCB0aGF0IGNvbXBsZXRpb25zIGluIHRoZSBjb250ZXh0IG9mIGFuIGlmcmFtZSB3
aXRoIGEgZGlmZmVyZW50IG9yaWdpbiB3aWxsIHJlc3VsdCBpbiBuYW1lcyBvZiBpdHMgZ2xvYmFs
IHZhcmlhYmxlcy4gVGVzdCBwYXNzZXMgaWYgYWxsIGdsb2JhbCB2YXJpYWJsZXMgYXJlIGZvdW5k
IGFtb25nIGNvbXBsZXRpb25zIEFORCB0aGVyZSBhcmUgTk8gY29uc29sZSBtZXNzYWdlcy4gQnVn
IDY1NDU3LgorCisKK215R2xvYmFsVmFyCitteUdsb2JhbEZ1bmN0aW9uCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxl
dGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzJkNmUwZDQzOTZkZmRlMDY5NjdhOGZhZDZjNmIzMDY2
MDMwNDJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJpbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LnNob3dDb25zb2xlUGFuZWwoKTsKKyAgICB2YXIg
c2VsZWN0b3IgPSBXZWJJbnNwZWN0b3IuY29uc29sZS5fY29udGV4dFNlbGVjdEVsZW1lbnQ7Cisg
ICAgdmFyIG9wdGlvbiA9IHNlbGVjdG9yLmZpcnN0Q2hpbGQ7CisgICAgd2hpbGUgKG9wdGlvbikg
eworICAgICAgICBpZiAob3B0aW9uLnRleHRDb250ZW50ICYmIG9wdGlvbi50ZXh0Q29udGVudC5p
bmRleE9mKCJteUlGcmFtZSIpID09PSAwKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIG9w
dGlvbiA9IG9wdGlvbi5uZXh0U2libGluZzsKKyAgICB9CisgICAgaWYgKCFvcHRpb24pIHsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxFRDogbXlJRnJhbWUgbm90IGZvdW5k
IGluIHRoZSBjb250ZXh0IGxpc3QiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBvcHRpb24uc2VsZWN0ZWQgPSB0cnVl
OworCisKKyAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5fY29tcGxldGlvbnMoIiIsICJteUdsb2Ii
LCBmYWxzZSwgY2hlY2tDb21wbGV0aW9ucy5iaW5kKHRoaXMpKTsKKyAgICBmdW5jdGlvbiBjaGVj
a0NvbXBsZXRpb25zKGNvbXBsZXRpb25zKQorICAgIHsKKyAgICAgICAgdmFyIGV4cGVjdGVkID0g
WyJteUdsb2JhbFZhciIsICJteUdsb2JhbEZ1bmN0aW9uIl07CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChjb21wbGV0
aW9ucy5pbmRleE9mKGV4cGVjdGVkW2ldKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoZXhwZWN0ZWRbaV0pOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJOT1QgRk9VTkQ6ICIgKyBleHBlY3Rl
ZFtpXSk7CisgICAgICAgIH0KKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3Nh
Z2VzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQor
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD4KK1Rlc3QgdGhhdCBjb21wbGV0aW9u
cyBpbiB0aGUgY29udGV4dCBvZiBhbiBpZnJhbWUgd2l0aCBhIGRpZmZlcmVudCBvcmlnaW4gd2ls
bAorcmVzdWx0IGluIG5hbWVzIG9mIGl0cyBnbG9iYWwgdmFyaWFibGVzLiBUZXN0IHBhc3NlcyBp
ZiBhbGwgZ2xvYmFsIHZhcmlhYmxlcworYXJlIGZvdW5kIGFtb25nIGNvbXBsZXRpb25zIEFORCB0
aGVyZSBhcmUgTk8gY29uc29sZSBtZXNzYWdlcy4KKzxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ1NyI+QnVnIDY1NDU3LjwvYT4KKzwvcD4KKzxpZnJh
bWUgbmFtZT0ibXlJRnJhbWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMvY29uc29sZS1jZC1jb21wbGV0aW9ucy1pZnJhbWUuaHRtbCIgb25sb2FkPSJydW5U
ZXN0KCkiPjwvaWZyYW1lPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY29uc29sZS1jZC1jb21wbGV0aW9u
cy1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9jb25zb2xlLWNkLWNvbXBsZXRpb25zLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyM2YzNDBi
MzMzOTE2N2JjMjRiMjljZDM5MDE1YmFkNzRmNDUxODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY29uc29sZS1jZC1jb21wbGV0
aW9ucy1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDQgQEAKKzxzY3JpcHQ+Cit2YXIgbXlHbG9iYWxW
YXIgPSAyMDExOworZnVuY3Rpb24gbXlHbG9iYWxGdW5jdGlvbigpIHsgfQorPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZWY0ODA2ZjYzZWYxZDYxZDJkYjkxMzdkZGMwNjkzMWMyMWIzNTZhNS4uNzY1
M2VlNzM0YjBkNGY0YTlhYTVlZjJiZjc1Y2NjNGJiN2I3NDNiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQyIEBACisyMDExLTA4LTAxICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHR5cGluZyBhbiBleHByZXNzaW9uIGluIGFu
IGlmcmFtZSBsZWFkcyB0byBtdWx0aXBsZSAiVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBh
Y2Nlc3MgZnJhbWUuLi4iIGVycm9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjU0NTcKKworICAgICAgICBDb25zb2xlIGNvbXBsZXRpb25zIGFyZSBu
b3cgZG9uZSB1c2luZyBldmFsdWF0aW9uIHdoaWNoIHJldHVybnMgYSBKU09OIG9iamVjdCB3aXRo
IGFsbCBwcm9wZXJ0eSBuYW1lcyByYXRoZXIgdGhhbiBhIHJlbW90ZQorICAgICAgICBvYmplY3Qu
IEFsc28gUnVudGltZS5ldmFsdWF0ZSBhbmQgUnVudGltZS5jYWxsRnVuY3Rpb25PbiBjb21tYW5k
cyB3ZXJlIGV4dGVuZGVkIHdpdGggYW4gb3B0aW9uYWwgcGFyYW1ldGVyIHRoYXQgYWxsb3dzIHRv
CisgICAgICAgIGdldCByZXN1bHQgYXMgSlNPTiB2YWx1ZS4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9j
b25zb2xlLWNkLWNvbXBsZXRpb25zLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdDo6ZXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHQ6OmNhbGxGdW5jdGlvbk9uKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICguKToKKyAgICAgICAgKCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXNCb29sKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUnVudGltZUFnZW50OjpjYWxsRnVuY3Rpb25Pbik6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlLl9jb21wbGV0aW9ucy5ldmFsdWF0ZWQuZ2V0Q29tcGxldGlvbnMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fY29tcGxldGlvbnMu
ZXZhbHVhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUu
X2NvbXBsZXRpb25zLnJlY2VpdmVkUHJvcGVydHlTZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fY29tcGxldGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5ldmFsSW5JbnNwZWN0ZWRXaW5kb3cpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
LnByb3RvdHlwZS5jYWxsRnVuY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5wcm90b3R5cGUuY2FsbEZ1bmN0aW9uSlNPTik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvdG90eXBlLnVwZGF0ZSk6CisKIDIwMTEt
MDgtMDEgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGdyb3VwIHNjcmlwdHMgYnkgZm9sZGVyIGluIHRoZSBzY3JpcHRzIHNlbGVj
dG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKaW5kZXgg
NTJiZmFkZWRlYWEzMmMzZDgyZTA5NjE0ODgzYTg4NzVjYTQxY2RlNS4uOGMyYmM3YzY1OTBlYzYz
NmFhOGIwM2JjMWRlZWNkMDQ3M2NiMzYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuY3BwCkBAIC01NCwyMSArNTQsMjMgQEAgSW5qZWN0ZWRTY3JpcHQ6Oklu
amVjdGVkU2NyaXB0KFNjcmlwdE9iamVjdCBpbmplY3RlZFNjcmlwdE9iamVjdCwgSW5zcGVjdGVk
U3RhdGUKIHsKIH0KIAotdm9pZCBJbmplY3RlZFNjcmlwdDo6ZXZhbHVhdGUoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2Jq
ZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pCit2b2lkIEluamVjdGVkU2NyaXB0OjpldmFs
dWF0ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwg
Y29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwgYm9vbCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGJv
b2wgc2VuZFJlc3VsdEJ5VmFsdWUsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJv
b2wqIHdhc1Rocm93bikKIHsKICAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV9pbmpl
Y3RlZFNjcmlwdE9iamVjdCwgImV2YWx1YXRlIik7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQoZXhwcmVzc2lvbik7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2JqZWN0R3JvdXAp
OwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGluY2x1ZGVDb21tYW5kTGluZUFQSSk7Cisg
ICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoc2VuZFJlc3VsdEJ5VmFsdWUpOwogICAgIG1ha2VF
dmFsQ2FsbChlcnJvclN0cmluZywgZnVuY3Rpb24sIHJlc3VsdCwgd2FzVGhyb3duKTsKIH0KIAot
dm9pZCBJbmplY3RlZFNjcmlwdDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNv
bnN0IFN0cmluZyYgYXJndW1lbnRzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBi
b29sKiB3YXNUaHJvd24pCit2b2lkIEluamVjdGVkU2NyaXB0OjpjYWxsRnVuY3Rpb25PbihFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBhcmd1bWVudHMsIGJvb2wgc2VuZFJlc3VsdEJ5
VmFsdWUsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93bikK
IHsKICAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV9pbmplY3RlZFNjcmlwdE9iamVj
dCwgImNhbGxGdW5jdGlvbk9uIik7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2JqZWN0
SWQpOwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGV4cHJlc3Npb24pOwogICAgIGZ1bmN0
aW9uLmFwcGVuZEFyZ3VtZW50KGFyZ3VtZW50cyk7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQoc2VuZFJlc3VsdEJ5VmFsdWUpOwogICAgIG1ha2VFdmFsQ2FsbChlcnJvclN0cmluZywgZnVu
Y3Rpb24sIHJlc3VsdCwgd2FzVGhyb3duKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuaAppbmRleCA3MGI4YzY3N2E1MzRmNTk3ZmJkNmUzYjAxNDY5NjBlZWNh
MWY2ODE1Li41ZThmZmMwODZiYzZhODMyZTc2MmNlYzRiNjAwZjE4YmQxN2E0ZTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaApAQCAtNTUsOCArNTUsMjAgQEAg
cHVibGljOgogCiAgICAgYm9vbCBoYXNOb1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pbmplY3Rl
ZFNjcmlwdE9iamVjdC5oYXNOb1ZhbHVlKCk7IH0KIAotICAgIHZvaWQgZXZhbHVhdGUoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3Jv
dXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piog
cmVzdWx0LCBib29sKiB3YXNUaHJvd24pOwotICAgIHZvaWQgY2FsbEZ1bmN0aW9uT24oRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24s
IGNvbnN0IFN0cmluZyYgYXJndW1lbnRzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0
LCBib29sKiB3YXNUaHJvd24pOworICAgIHZvaWQgZXZhbHVhdGUoRXJyb3JTdHJpbmcqLAorICAg
ICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLAorICAgICAgICAgICAgICAg
ICAgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwKKyAgICAgICAgICAgICAgICAgIGJvb2wgaW5j
bHVkZUNvbW1hbmRMaW5lQVBJLAorICAgICAgICAgICAgICAgICAgYm9vbCBzZW5kUmVzdWx0QnlW
YWx1ZSwKKyAgICAgICAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQs
CisgICAgICAgICAgICAgICAgICBib29sKiB3YXNUaHJvd24pOworICAgIHZvaWQgY2FsbEZ1bmN0
aW9uT24oRXJyb3JTdHJpbmcqLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5n
JiBvYmplY3RJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZXhwcmVz
c2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgYXJndW1lbnRzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBzZW5kUmVzdWx0QnlWYWx1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICBib29sKiB3YXNUaHJvd24pOwogICAgIHZvaWQgZXZhbHVhdGVPbkNh
bGxGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25z
dCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0
cmluZyYgb2JqZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pOwogICAgIHZvaWQgZ2V0UHJv
cGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGJvb2wgaWdub3Jl
SGFzT3duUHJvcGVydHksIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCk7CiAgICAgTm9k
ZSogbm9kZUZvck9iamVjdElkKGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCmluZGV4IDY3YmE4NDZl
ZDNhZGQxNjI4MjNkZjYxNjg1ZThmNmZjYjY3YThmMWUuLmFmN2FmZjY2YmFlYmJlM2VmOGMyNTdl
YTI0YmQ0ZmI5NmZiNzdjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTEwOCwxMCArMTA4LDEwIEBAIEluamVjdGVkU2NyaXB0
LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLy8gVGhpcyBtZXRob2QgY2Fubm90IHRocm93
LgotICAgIF93cmFwT2JqZWN0OiBmdW5jdGlvbihvYmplY3QsIG9iamVjdEdyb3VwTmFtZSkKKyAg
ICBfd3JhcE9iamVjdDogZnVuY3Rpb24ob2JqZWN0LCBvYmplY3RHcm91cE5hbWUsIGZvcmNlVmFs
dWVUeXBlKQogICAgIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgSW5q
ZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0KG9iamVjdCwgb2JqZWN0R3JvdXBOYW1lKTsKKyAgICAg
ICAgICAgIHJldHVybiBuZXcgSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0KG9iamVjdCwgb2Jq
ZWN0R3JvdXBOYW1lLCBmb3JjZVZhbHVlVHlwZSk7CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAg
ICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gaW5qZWN0
ZWRTY3JpcHQuX2Rlc2NyaWJlKGUpOwpAQCAtMTgzLDggKzE4Myw4IEBAIEluamVjdGVkU2NyaXB0
LnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0eU5hbWVz
Lmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gcHJvcGVydHlO
YW1lc1tpXTsKIAotICAgICAgICAgICAgdmFyIGdldHRlciA9IG9iamVjdFsiX19sb29rdXBHZXR0
ZXJfXyJdICYmIG9iamVjdC5fX2xvb2t1cEdldHRlcl9fKHByb3BlcnR5TmFtZSk7Ci0gICAgICAg
ICAgICB2YXIgc2V0dGVyID0gb2JqZWN0WyJfX2xvb2t1cFNldHRlcl9fIl0gJiYgb2JqZWN0Ll9f
bG9va3VwU2V0dGVyX18ocHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgIHZhciBnZXR0ZXIgPSAo
dHlwZW9mIG9iamVjdFsiX19sb29rdXBHZXR0ZXJfXyJdID09PSAiZnVuY3Rpb24iKSAmJiBvYmpl
Y3QuX19sb29rdXBHZXR0ZXJfXyhwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgdmFyIHNldHRl
ciA9ICh0eXBlb2Ygb2JqZWN0WyJfX2xvb2t1cFNldHRlcl9fIl0gPT09ICJmdW5jdGlvbiIpICYm
IG9iamVjdC5fX2xvb2t1cFNldHRlcl9fKHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICBpZiAo
Z2V0dGVyIHx8IHNldHRlcikgewogICAgICAgICAgICAgICAgIGlmIChnZXR0ZXIpIHsKICAgICAg
ICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0ge307CkBAIC0yNDYsMTIgKzI0NiwxMiBAQCBJ
bmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhw
cm9wZXJ0eU5hbWVTZXQpOwogICAgIH0sCiAKLSAgICBldmFsdWF0ZTogZnVuY3Rpb24oZXhwcmVz
c2lvbiwgb2JqZWN0R3JvdXAsIGluamVjdENvbW1hbmRMaW5lQVBJKQorICAgIGV2YWx1YXRlOiBm
dW5jdGlvbihleHByZXNzaW9uLCBvYmplY3RHcm91cCwgaW5qZWN0Q29tbWFuZExpbmVBUEksIHNl
bmRSZXN1bHRCeVZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2V2YWx1YXRlQW5k
V3JhcChJbmplY3RlZFNjcmlwdEhvc3QuZXZhbHVhdGUsIEluamVjdGVkU2NyaXB0SG9zdCwgZXhw
cmVzc2lvbiwgb2JqZWN0R3JvdXAsIGZhbHNlLCBpbmplY3RDb21tYW5kTGluZUFQSSk7CisgICAg
ICAgIHJldHVybiB0aGlzLl9ldmFsdWF0ZUFuZFdyYXAoSW5qZWN0ZWRTY3JpcHRIb3N0LmV2YWx1
YXRlLCBJbmplY3RlZFNjcmlwdEhvc3QsIGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBmYWxzZSwg
aW5qZWN0Q29tbWFuZExpbmVBUEksIHNlbmRSZXN1bHRCeVZhbHVlKTsKICAgICB9LAogCi0gICAg
Y2FsbEZ1bmN0aW9uT246IGZ1bmN0aW9uKG9iamVjdElkLCBleHByZXNzaW9uLCBhcmdzKQorICAg
IGNhbGxGdW5jdGlvbk9uOiBmdW5jdGlvbihvYmplY3RJZCwgZXhwcmVzc2lvbiwgYXJncywgc2Vu
ZFJlc3VsdEJ5VmFsdWUpCiAgICAgewogICAgICAgICB2YXIgcGFyc2VkT2JqZWN0SWQgPSB0aGlz
Ll9wYXJzZU9iamVjdElkKG9iamVjdElkKTsKICAgICAgICAgdmFyIG9iamVjdCA9IHRoaXMuX29i
amVjdEZvcklkKHBhcnNlZE9iamVjdElkKTsKQEAgLTI4NywxOCArMjg3LDE4IEBAIEluamVjdGVk
U2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm4gIkdpdmVuIGV4cHJl
c3Npb24gZG9lcyBub3QgZXZhbHVhdGUgdG8gYSBmdW5jdGlvbiI7CiAKICAgICAgICAgICAgIHJl
dHVybiB7IHdhc1Rocm93bjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IHRo
aXMuX3dyYXBPYmplY3QoZnVuYy5hcHBseShvYmplY3QsIHJlc29sdmVkQXJncyksIG9iamVjdEdy
b3VwKSB9OworICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiB0aGlzLl93cmFwT2JqZWN0KGZ1
bmMuYXBwbHkob2JqZWN0LCByZXNvbHZlZEFyZ3MpLCBvYmplY3RHcm91cCwgc2VuZFJlc3VsdEJ5
VmFsdWUpIH07CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgIHJldHVybiB7IHdh
c1Rocm93bjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhpcy5fd3JhcE9i
amVjdChlLCBvYmplY3RHcm91cCkgfTsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBfZXZhbHVh
dGVBbmRXcmFwOiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbiwgb2Jq
ZWN0R3JvdXAsIGlzRXZhbE9uQ2FsbEZyYW1lLCBpbmplY3RDb21tYW5kTGluZUFQSSkKKyAgICBf
ZXZhbHVhdGVBbmRXcmFwOiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lv
biwgb2JqZWN0R3JvdXAsIGlzRXZhbE9uQ2FsbEZyYW1lLCBpbmplY3RDb21tYW5kTGluZUFQSSwg
c2VuZFJlc3VsdEJ5VmFsdWUpCiAgICAgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgcmV0
dXJuIHsgd2FzVGhyb3duOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhp
cy5fd3JhcE9iamVjdCh0aGlzLl9ldmFsdWF0ZU9uKGV2YWxGdW5jdGlvbiwgb2JqZWN0LCBleHBy
ZXNzaW9uLCBpc0V2YWxPbkNhbGxGcmFtZSwgaW5qZWN0Q29tbWFuZExpbmVBUEkpLCBvYmplY3RH
cm91cCkgfTsKKyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhpcy5fd3JhcE9iamVjdCh0
aGlzLl9ldmFsdWF0ZU9uKGV2YWxGdW5jdGlvbiwgb2JqZWN0LCBleHByZXNzaW9uLCBpc0V2YWxP
bkNhbGxGcmFtZSwgaW5qZWN0Q29tbWFuZExpbmVBUEkpLCBvYmplY3RHcm91cCwgc2VuZFJlc3Vs
dEJ5VmFsdWUpIH07CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgIHJldHVybiB7
IHdhc1Rocm93bjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhpcy5fd3Jh
cE9iamVjdChlLCBvYmplY3RHcm91cCkgfTsKQEAgLTQ1MCwxMCArNDUwLDEwIEBAIEluamVjdGVk
U2NyaXB0LnByb3RvdHlwZSA9IHsKIAogdmFyIGluamVjdGVkU2NyaXB0ID0gbmV3IEluamVjdGVk
U2NyaXB0KCk7CiAKLUluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVj
dCwgb2JqZWN0R3JvdXBOYW1lKQorSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0ID0gZnVuY3Rp
b24ob2JqZWN0LCBvYmplY3RHcm91cE5hbWUsIGZvcmNlVmFsdWVUeXBlKQogewogICAgIHRoaXMu
dHlwZSA9IHR5cGVvZiBvYmplY3Q7Ci0gICAgaWYgKGluamVjdGVkU2NyaXB0LmlzUHJpbWl0aXZl
VmFsdWUob2JqZWN0KSB8fCBvYmplY3QgPT09IG51bGwpIHsKKyAgICBpZiAoaW5qZWN0ZWRTY3Jp
cHQuaXNQcmltaXRpdmVWYWx1ZShvYmplY3QpIHx8IG9iamVjdCA9PT0gbnVsbCB8fCBmb3JjZVZh
bHVlVHlwZSkgewogCiAgICAgICAgIC8vIFdlIGRvbid0IHNlbmQgdW5kZWZpbmVkIHZhbHVlcyBv
dmVyIEpTT04uCiAgICAgICAgIGlmICh0eXBlb2Ygb2JqZWN0ICE9PSAidW5kZWZpbmVkIikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCAyMjM1ZTQzYmI0NmQ1YmU0
OTk5Y2ZkODQ5OGY2YjgwNDY2NWQ1MjRiLi4wMGNkMTU0YTcxMGNhY2UxNGJjYTA3YTk5OGU4Mzdh
ZWQ0NjE0MDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0y
MzAsNyArMjMwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5
cGUiOiAic3RyaW5nIiwgImVudW0iOiBbIm9iamVjdCIsICJmdW5jdGlvbiIsICJ1bmRlZmluZWQi
LCAic3RyaW5nIiwgIm51bWJlciIsICJib29sZWFuIl0sICJkZXNjcmlwdGlvbiI6ICJPYmplY3Qg
dHlwZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3VidHlwZSIsICJ0eXBl
IjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJlbnVtIjogWyJhcnJheSIsICJudWxsIiwg
Im5vZGUiLCAicmVnZXhwIiwgImRhdGUiXSwgImRlc2NyaXB0aW9uIjogIk9iamVjdCBzdWJ0eXBl
IGhpbnQuIFNwZWNpZmllZCBmb3IgPGNvZGU+b2JqZWN0PC9jb2RlPiB0eXBlIHZhbHVlcyBvbmx5
LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjbGFzc05hbWUiLCAidHlwZSI6
ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiT2JqZWN0IGNsYXNz
IChjb25zdHJ1Y3RvcikgbmFtZS4gU3BlY2lmaWVkIGZvciA8Y29kZT5vYmplY3Q8L2NvZGU+IHR5
cGUgdmFsdWVzIG9ubHkuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVl
IiwgInR5cGUiOiAiYW55IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlbW90
ZSBvYmplY3QgdmFsdWUgKGluIGNhc2Ugb2YgcHJpbWl0aXZlIHZhbHVlcykuIiB9LAorICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVlIiwgInR5cGUiOiAiYW55IiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlbW90ZSBvYmplY3QgdmFsdWUgKGluIGNhc2Ugb2Yg
cHJpbWl0aXZlIHZhbHVlcyBvciBKU09OIHZhbHVlcyBpZiBpdCB3YXMgcmVxdWVzdGVkKS4iIH0s
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGVzY3JpcHRpb24iLCAidHlwZSI6ICJz
dHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3RyaW5nIHJlcHJlc2Vu
dGF0aW9uIG9mIHRoZSBvYmplY3QuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im9iamVjdElkIiwgIiRyZWYiOiAiUmVtb3RlT2JqZWN0SWQiLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiVW5pcXVlIG9iamVjdCBpZGVudGlmaWVyIChmb3Igbm9uLXByaW1pdGl2
ZSB2YWx1ZXMpLiIgfQogICAgICAgICAgICAgICAgIF0KQEAgLTI2Myw3ICsyNjMsOCBAQAogICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdEdyb3VwIiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN5bWJvbGljIGdyb3VwIG5hbWUg
dGhhdCBjYW4gYmUgdXNlZCB0byByZWxlYXNlIG11bHRpcGxlIG9iamVjdHMuIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImluY2x1ZGVDb21tYW5kTGluZUFQSSIsICJ0eXBlIjog
ImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRGV0ZXJtaW5lcyB3
aGV0aGVyIENvbW1hbmQgTGluZSBBUEkgc2hvdWxkIGJlIGF2YWlsYWJsZSBkdXJpbmcgdGhlIGV2
YWx1YXRpb24uIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvTm90UGF1c2VP
bkV4Y2VwdGlvbnMiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlNwZWNpZmllcyB3aGV0aGVyIGV2YWx1YXRpb24gc2hvdWxkIHN0b3Agb24gZXhj
ZXB0aW9ucy4gT3ZlcnJpZGVzIHNldFBhdXNlT25FeGNlcHRpb24gc3RhdGUuIiB9LAotICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3BlY2lmaWVzIGluIHdoaWNoIGZyYW1lIHRv
IHBlcmZvcm0gZXZhbHVhdGlvbi4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJm
cmFtZUlkIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIlNwZWNpZmllcyBpbiB3aGljaCBmcmFtZSB0byBwZXJmb3JtIGV2YWx1YXRpb24uIiB9LAor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbmRSZXN1bHRCeVZhbHVlIiwgInR5cGUi
OiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRo
ZSByZXN1bHQgaXMgZXhwZWN0ZWQgdG8gYmUgYSBKU09OIG9iamVjdCB3aGljaCBzaG91bGQgYmUg
c2VudCBieSB2YWx1ZS4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJy
ZXR1cm5zIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIkcmVm
IjogIlJlbW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0aW9uIHJlc3VsdC4iIH0s
CkBAIC0yNzYsNyArMjc3LDggQEAKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjogIlJlbW90ZU9i
amVjdElkIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIG9iamVjdCB0byBjYWxs
IGZ1bmN0aW9uIG9uLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmdW5jdGlv
bkRlY2xhcmF0aW9uIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkRlY2xhcmF0
aW9uIG9mIHRoZSBmdW5jdGlvbiB0byBjYWxsLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJhcmd1bWVudHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAi
Q2FsbEFyZ3VtZW50IiwgImRlc2NyaXB0aW9uIjogIkNhbGwgYXJndW1lbnQuIiB9LCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ2FsbCBhcmd1bWVudHMuIEFsbCBjYWxsIGFyZ3Vt
ZW50cyBtdXN0IGJlbG9uZyB0byB0aGUgc2FtZSBKYXZhU2NyaXB0IHdvcmxkIGFzIHRoZSB0YXJn
ZXQgb2JqZWN0LiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFyZ3VtZW50cyIs
ICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDYWxsQXJndW1lbnQiLCAiZGVz
Y3JpcHRpb24iOiAiQ2FsbCBhcmd1bWVudC4iIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJDYWxsIGFyZ3VtZW50cy4gQWxsIGNhbGwgYXJndW1lbnRzIG11c3QgYmVsb25nIHRv
IHRoZSBzYW1lIEphdmFTY3JpcHQgd29ybGQgYXMgdGhlIHRhcmdldCBvYmplY3QuIiB9LAorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbmRSZXN1bHRCeVZhbHVlIiwgInR5cGUiOiAi
Ym9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRoZSBy
ZXN1bHQgaXMgZXhwZWN0ZWQgdG8gYmUgYSBKU09OIG9iamVjdCB3aGljaCBzaG91bGQgYmUgc2Vu
dCBieSB2YWx1ZS4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1
cm5zIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIkcmVmIjog
IlJlbW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJDYWxsIHJlc3VsdC4iIH0sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCmluZGV4
IGU0M2FkYTgxMWEzZWE3YTA5MjA0MWIxODEyODA5Mzc5YzM5NmI5ZDQuLjZhMjQ1Mzk5NTVmYjYy
NDAyZmJhNzczNmE4MmNjNmFjZGRmMGQ4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCkBAIC00NSw2ICs0NSwxMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBib29sIGFzQm9vbChjb25zdCBib29sKiBjb25z
dCBiKQoreworICAgIHJldHVybiBiID8gKmIgOiBmYWxzZTsKK30KKwogSW5zcGVjdG9yUnVudGlt
ZUFnZW50OjpJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmpl
Y3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgOiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3Rl
ZFNjcmlwdE1hbmFnZXIpCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCkBAIC01Nyw3
ICs2Miw3IEBAIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6fkluc3BlY3RvclJ1bnRpbWVBZ2VudCgp
CiB7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBj
b25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5lQVBJ
LCBjb25zdCBib29sKiBjb25zdCBkb05vdFBhdXNlT25FeGNlcHRpb25zLCBjb25zdCBTdHJpbmcq
IGNvbnN0IGZyYW1lSWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdh
c1Rocm93bikKK3ZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBj
b25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5lQVBJ
LCBjb25zdCBib29sKiBjb25zdCBkb05vdFBhdXNlT25FeGNlcHRpb25zLCBjb25zdCBTdHJpbmcq
IGNvbnN0IGZyYW1lSWQsIGNvbnN0IGJvb2wqIGNvbnN0IHNlbmRSZXN1bHRCeVZhbHVlLCBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pCiB7CiAgICAgU2Ny
aXB0U3RhdGUqIHNjcmlwdFN0YXRlID0gMDsKICAgICBpZiAoZnJhbWVJZCkgewpAQCAtNzcsMTMg
KzgyLDEzIEBAIHZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwCiAgICAgQVNTRVJUKG1fc2NyaXB0RGVi
dWdTZXJ2ZXIpOwogICAgIGJvb2wgcGF1c2VTdGF0ZUNoYW5nZWQgPSBmYWxzZTsKICAgICBTY3Jp
cHREZWJ1Z1NlcnZlcjo6UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSBwcmVzZW50U3RhdGUgPSBtX3Nj
cmlwdERlYnVnU2VydmVyLT5wYXVzZU9uRXhjZXB0aW9uc1N0YXRlKCk7Ci0gICAgaWYgKGRvTm90
UGF1c2VPbkV4Y2VwdGlvbnMgJiYgKmRvTm90UGF1c2VPbkV4Y2VwdGlvbnMgJiYgcHJlc2VudFN0
YXRlICE9IFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnMpIHsKKyAgICBp
ZiAoYXNCb29sKGRvTm90UGF1c2VPbkV4Y2VwdGlvbnMpICYmIHByZXNlbnRTdGF0ZSAhPSBTY3Jp
cHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25FeGNlcHRpb25zKSB7CiAgICAgICAgIG1fc2NyaXB0
RGVidWdTZXJ2ZXItPnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoU2NyaXB0RGVidWdTZXJ2ZXI6
OkRvbnRQYXVzZU9uRXhjZXB0aW9ucyk7CiAgICAgICAgIHBhdXNlU3RhdGVDaGFuZ2VkID0gdHJ1
ZTsKICAgICB9CiAjZW5kaWYKIAotICAgIGluamVjdGVkU2NyaXB0LmV2YWx1YXRlKGVycm9yU3Ry
aW5nLCBleHByZXNzaW9uLCBvYmplY3RHcm91cCA/ICpvYmplY3RHcm91cCA6ICIiLCBpbmNsdWRl
Q29tbWFuZExpbmVBUEkgPyAqaW5jbHVkZUNvbW1hbmRMaW5lQVBJIDogZmFsc2UsIHJlc3VsdCwg
d2FzVGhyb3duKTsKKyAgICBpbmplY3RlZFNjcmlwdC5ldmFsdWF0ZShlcnJvclN0cmluZywgZXhw
cmVzc2lvbiwgb2JqZWN0R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiAiIiwgYXNCb29sKGluY2x1ZGVD
b21tYW5kTGluZUFQSSksIGFzQm9vbChzZW5kUmVzdWx0QnlWYWx1ZSksIHJlc3VsdCwgd2FzVGhy
b3duKTsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGlmIChwYXVzZVN0
YXRlQ2hhbmdlZCkKQEAgLTkxLDcgKzk2LDcgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6
OmV2YWx1YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBleHAKICNl
bmRpZgogfQogCi12b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0aW9uT24oRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJp
bmcmIGV4cHJlc3Npb24sIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNvbnN0IG9wdGlv
bmFsQXJndW1lbnRzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNU
aHJvd24pCit2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JT
dHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcm
IGV4cHJlc3Npb24sIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNvbnN0IG9wdGlvbmFs
QXJndW1lbnRzLCBjb25zdCBib29sKiBjb25zdCBzZW5kUmVzdWx0QnlWYWx1ZSwgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKQogewogICAgIEluamVjdGVk
U2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVk
U2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwogICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNO
b1ZhbHVlKCkpIHsKQEAgLTEwMSw3ICsxMDYsNyBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2Vu
dDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbgog
ICAgIFN0cmluZyBhcmd1bWVudHM7CiAgICAgaWYgKG9wdGlvbmFsQXJndW1lbnRzKQogICAgICAg
ICBhcmd1bWVudHMgPSAoKm9wdGlvbmFsQXJndW1lbnRzKS0+dG9KU09OU3RyaW5nKCk7Ci0gICAg
aW5qZWN0ZWRTY3JpcHQuY2FsbEZ1bmN0aW9uT24oZXJyb3JTdHJpbmcsIG9iamVjdElkLCBleHBy
ZXNzaW9uLCBhcmd1bWVudHMsIHJlc3VsdCwgd2FzVGhyb3duKTsKKyAgICBpbmplY3RlZFNjcmlw
dC5jYWxsRnVuY3Rpb25PbihlcnJvclN0cmluZywgb2JqZWN0SWQsIGV4cHJlc3Npb24sIGFyZ3Vt
ZW50cywgYXNCb29sKHNlbmRSZXN1bHRCeVZhbHVlKSwgcmVzdWx0LCB3YXNUaHJvd24pOwogfQog
CiB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVydGllcyhFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGJvb2wgaWdub3JlSGFzT3duUHJv
cGVydHksIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaAppbmRleCAzZTFhM2EyNjc5ZjVk
OWVkMzBkMmZiNDM2ZTBhNTI5MWQwMTAxM2EwLi42NDZkNDU1MjZkZDE1NjY5NzkxODJkOTM5MTcx
ZjRmMThjOTUyMjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJ1bnRpbWVBZ2VudC5oCkBAIC01Myw4ICs1MywyMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
SW5zcGVjdG9yUnVudGltZUFnZW50KCk7CiAKICAgICAvLyBQYXJ0IG9mIHRoZSBwcm90b2NvbC4K
LSAgICB2b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9u
LCBjb25zdCBTdHJpbmcqIGNvbnN0IG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBjb25zdCBpbmNs
dWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGNvbnN0IGRvTm90UGF1c2VPbkV4Y2VwdGlv
bnMsIGNvbnN0IFN0cmluZyogY29uc3QgZnJhbWVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4q
IHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKTsKLSAgICB2b2lkIGNhbGxGdW5jdGlvbk9uKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9u
LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBjb25zdCBvcHRpb25hbEFyZ3VtZW50cywg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKTsKKyAgICB2
b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nKiwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbiwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyogY29uc3Qgb2Jq
ZWN0R3JvdXAsCisgICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBjb25zdCBpbmNsdWRlQ29t
bWFuZExpbmVBUEksCisgICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBjb25zdCBkb05vdFBh
dXNlT25FeGNlcHRpb25zLAorICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nKiBjb25zdCBm
cmFtZUlkLAorICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCogY29uc3Qgc2VuZFJlc3VsdEJ5
VmFsdWUsCisgICAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0
LAorICAgICAgICAgICAgICAgICAgYm9vbCogd2FzVGhyb3duKTsKKyAgICB2b2lkIGNhbGxGdW5j
dGlvbk9uKEVycm9yU3RyaW5nKiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgb2JqZWN0SWQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGV4cHJl
c3Npb24sCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+KiBjb25zdCBvcHRpb25hbEFyZ3VtZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGJvb2wqIGNvbnN0IHNlbmRSZXN1bHRCeVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wqIHdhc1Rocm93bik7CiAgICAgdm9pZCByZWxlYXNlT2JqZWN0KEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7CiAgICAgdm9pZCBnZXRQcm9wZXJ0aWVzKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgYm9vbCBpZ25vcmVIYXNPd25Qcm9wZXJ0
eSwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogcmVzdWx0KTsKICAgICB2b2lkIHJlbGVhc2VPYmpl
Y3RHcm91cChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKaW5kZXgg
NmIwODA1ZjMyZWVmZWY1ZDAwZmU1MTE5MTA1OTJlNDFiNzBhMGQxZi4uYjc1MjViOGU0MWVhMGQ3
MjIwMzkwMWJmMTVhMTQyYTI2YTNiYWM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBAIC00MDgsMjYgKzQwOCwzMyBAQCBXZWJJ
bnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIWV4cHJlc3Np
b25TdHJpbmcgJiYgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnBhdXNlZCkKICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5nZXRTZWxlY3RlZENhbGxGcmFtZVZhcmlh
YmxlcyhyZXBvcnRDb21wbGV0aW9ucy5iaW5kKHRoaXMpKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdGhpcy5ldmFsSW5JbnNwZWN0ZWRXaW5kb3coZXhwcmVzc2lvblN0cmluZywgImNvbXBs
ZXRpb24iLCB0cnVlLCB0cnVlLCBldmFsdWF0ZWQuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0
aGlzLmV2YWxJbkluc3BlY3RlZFdpbmRvdyhleHByZXNzaW9uU3RyaW5nLCAiY29tcGxldGlvbiIs
IHRydWUsIHRydWUsIHVuZGVmaW5lZCwgZXZhbHVhdGVkLmJpbmQodGhpcykpOwogCiAgICAgICAg
IGZ1bmN0aW9uIGV2YWx1YXRlZChyZXN1bHQsIHdhc1Rocm93bikKICAgICAgICAgewogICAgICAg
ICAgICAgaWYgKHdhc1Rocm93bikKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICByZXN1bHQuZ2V0QWxsUHJvcGVydGllcyhldmFsdWF0ZWRQcm9wZXJ0aWVzLmJpbmQodGhpcykp
OworICAgICAgICAgICAgdmFyIGdldENvbXBsZXRpb25zID0gZnVuY3Rpb24oKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIHZhciByZXN1bHRTZXQgPSB7fTsKKyAgICAgICAgICAgICAg
ICBmb3IgKHZhciBvID0gdGhpczsgbzsgbyA9IG8uX19wcm90b19fKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmFtZXMgPSBPYmplY3Qu
Z2V0T3duUHJvcGVydHlOYW1lcyhvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0U2V0W25hbWVzW2ldXSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0U2V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmVzdWx0LmNhbGxGdW5jdGlvbkpTT04oZ2V0Q29tcGxldGlvbnMsIHJlY2VpdmVkUHJvcGVydHlO
YW1lcy5iaW5kKHRoaXMpKTsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9uIGV2YWx1YXRl
ZFByb3BlcnRpZXMocHJvcGVydGllcykKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZWRQcm9wZXJ0
eU5hbWVzKHByb3BlcnR5TmFtZXMpCiAgICAgICAgIHsKICAgICAgICAgICAgIFJ1bnRpbWVBZ2Vu
dC5yZWxlYXNlT2JqZWN0R3JvdXAoImNvbXBsZXRpb24iKTsKLSAgICAgICAgICAgIHZhciBwcm9w
ZXJ0eU5hbWVzID0ge307Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgcHJvcGVydGllcyAm
JiBpIDwgcHJvcGVydGllcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICBwcm9wZXJ0eU5h
bWVzW3Byb3BlcnRpZXNbaV0ubmFtZV0gPSB0cnVlOwotICAgICAgICAgICAgcmVwb3J0Q29tcGxl
dGlvbnMuY2FsbCh0aGlzLCBwcm9wZXJ0eU5hbWVzKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1
bmN0aW9uIHJlcG9ydENvbXBsZXRpb25zKHByb3BlcnR5TmFtZXMpCi0gICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghcHJvcGVydHlOYW1lcykKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB2YXIgaW5jbHVkZUNvbW1hbmRMaW5lQVBJID0gKCFkb3ROb3RhdGlvbiAmJiAhYnJh
Y2tldE5vdGF0aW9uKTsKICAgICAgICAgICAgIGlmIChpbmNsdWRlQ29tbWFuZExpbmVBUEkpIHsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kTGluZUFQSSA9IFsiZGlyIiwgImRpcnhtbCIs
ICJrZXlzIiwgInZhbHVlcyIsICJwcm9maWxlIiwgInByb2ZpbGVFbmQiLCAibW9uaXRvckV2ZW50
cyIsICJ1bm1vbml0b3JFdmVudHMiLCAiaW5zcGVjdCIsICJjb3B5IiwgImNsZWFyIl07CkBAIC01
OTUsNyArNjAyLDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgfQogICAgIH0sCiAKLSAgICBldmFsSW5JbnNwZWN0ZWRXaW5kb3c6IGZ1bmN0aW9uKGV4
cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGRvTm90UGF1c2VP
bkV4Y2VwdGlvbnMsIGNhbGxiYWNrKQorICAgIGV2YWxJbkluc3BlY3RlZFdpbmRvdzogZnVuY3Rp
b24oZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZG9Ob3RQ
YXVzZU9uRXhjZXB0aW9ucywgZXZhbEFzSlNPTlZhbHVlLCBjYWxsYmFjaykKICAgICB7CiAgICAg
ICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMgJiYgV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzLnBhdXNlZCkgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3Jp
cHRzLmV2YWx1YXRlSW5TZWxlY3RlZENhbGxGcmFtZShleHByZXNzaW9uLCBvYmplY3RHcm91cCwg
aW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjYWxsYmFjayk7CkBAIC02MTIsNyArNjE5LDcgQEAgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICghZXJy
b3IpCiAgICAgICAgICAgICAgICAgY2FsbGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5m
cm9tUGF5bG9hZChyZXN1bHQpLCB3YXNUaHJvd24pOwogICAgICAgICB9Ci0gICAgICAgIFJ1bnRp
bWVBZ2VudC5ldmFsdWF0ZShleHByZXNzaW9uLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRM
aW5lQVBJLCBkb05vdFBhdXNlT25FeGNlcHRpb25zLCB0aGlzLl9jdXJyZW50RXZhbHVhdGlvbkNv
bnRleHRJZCgpLCBldmFsQ2FsbGJhY2spOworICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUo
ZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZG9Ob3RQYXVz
ZU9uRXhjZXB0aW9ucywgdGhpcy5fY3VycmVudEV2YWx1YXRpb25Db250ZXh0SWQoKSwgZXZhbEFz
SlNPTlZhbHVlLCBldmFsQ2FsbGJhY2spOwogICAgIH0sCiAKICAgICBfZW50ZXJLZXlQcmVzc2Vk
OiBmdW5jdGlvbihldmVudCkKQEAgLTY0Myw3ICs2NTAsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICBzZWxmLmFkZE1lc3NhZ2UobmV3IFdl
Ykluc3BlY3Rvci5Db25zb2xlQ29tbWFuZFJlc3VsdChyZXN1bHQsIHdhc1Rocm93biwgY29tbWFu
ZE1lc3NhZ2UpKTsKICAgICAgICAgfQotICAgICAgICB0aGlzLmV2YWxJbkluc3BlY3RlZFdpbmRv
dyhzdHIsICJjb25zb2xlIiwgdHJ1ZSwgdW5kZWZpbmVkLCBwcmludFJlc3VsdCk7CisgICAgICAg
IHRoaXMuZXZhbEluSW5zcGVjdGVkV2luZG93KHN0ciwgImNvbnNvbGUiLCB0cnVlLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgcHJpbnRSZXN1bHQpOwogCiAgICAgICAgIFdlYkluc3BlY3Rvci51c2Vy
TWV0cmljcy5Db25zb2xlRXZhbHVhdGVkLnJlY29yZCgpOwogICAgIH0sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCmluZGV4IDM0ZGQy
N2E3YThlNWNkNDlhMmJiYjg1YzYxZDgzNDE1MWVlZTc3MDYuLmE0NWQ3YzU0ZWI0MGY2Y2Q2ZGUy
MGUxNzZiZWFlNTAzYmE2NjlhMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCkBAIC0xOTQsNyArMTk0LDE3IEBAIFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAgY2FsbGJhY2soKGVy
cm9yIHx8IHdhc1Rocm93bikgPyBudWxsIDogV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9t
UGF5bG9hZChyZXN1bHQpKTsKICAgICAgICAgfQogCi0gICAgICAgIFJ1bnRpbWVBZ2VudC5jYWxs
RnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwgZnVuY3Rpb25EZWNsYXJhdGlvbi50b1N0cmluZygp
LCB1bmRlZmluZWQsIG15Y2FsbGJhY2spOworICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0
aW9uT24odGhpcy5fb2JqZWN0SWQsIGZ1bmN0aW9uRGVjbGFyYXRpb24udG9TdHJpbmcoKSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIG15Y2FsbGJhY2spOworICAgIH0sCisKKyAgICBjYWxsRnVuY3Rp
b25KU09OOiBmdW5jdGlvbihmdW5jdGlvbkRlY2xhcmF0aW9uLCBjYWxsYmFjaykKKyAgICB7Cisg
ICAgICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2soZXJyb3IsIHJlc3VsdCwgd2FzVGhyb3duKQorICAg
ICAgICB7CisgICAgICAgICAgICBjYWxsYmFjaygoZXJyb3IgfHwgd2FzVGhyb3duKSA/IG51bGwg
OiByZXN1bHQudmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgUnVudGltZUFnZW50LmNhbGxG
dW5jdGlvbk9uKHRoaXMuX29iamVjdElkLCBmdW5jdGlvbkRlY2xhcmF0aW9uLnRvU3RyaW5nKCks
IHVuZGVmaW5lZCwgdHJ1ZSwgbXljYWxsYmFjayk7CiAgICAgfSwKIAogICAgIHJlbGVhc2U6IGZ1
bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
V2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKaW5kZXggMmQ3YmEyMWEw
ODU3NWNhMzU3ZGZjMTg1M2I4NDEzMThmN2Q0MDUyMy4uNGJiYWQyOTA2NmExOTZkMjE2YmM0YmY3
ZjIxMDcwMzNkN2I3ZTZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKQEAg
LTE1OSw3ICsxNTksNyBAQCBXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJv
dG90eXBlID0gewogICAgICAgICAgICAgaWYgKCFleHByZXNzaW9uKQogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5ldmFsSW5JbnNw
ZWN0ZWRXaW5kb3coZXhwcmVzc2lvbiwgdGhpcy5fd2F0Y2hPYmplY3RHcm91cElkLCBmYWxzZSwg
dHJ1ZSwgYXBwZW5kUmVzdWx0LmJpbmQodGhpcywgZXhwcmVzc2lvbiwgaSkpOworICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuZXZhbEluSW5zcGVjdGVkV2luZG93KGV4cHJlc3Npb24s
IHRoaXMuX3dhdGNoT2JqZWN0R3JvdXBJZCwgZmFsc2UsIHRydWUsIHVuZGVmaW5lZCwgYXBwZW5k
UmVzdWx0LmJpbmQodGhpcywgZXhwcmVzc2lvbiwgaSkpOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKCFwcm9wZXJ0eUNvdW50KSB7Cg==
</data>
<flag name="review"
          id="97771"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="97774"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>